<?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>RBSWorldPay</name>
	<version>1.0.1</version>
  <mincmsversion>1.8.1</mincmsversion>
	<help><![CDATA[VE9ETzxoMz5EZXBlbmRlbmNpZXM8L2gzPjx1bD48bGk+Q0dFeHRlbnNpb25zID0mZ3Q7IDEuMTkuNDwvbGk+PGxpPkNHUGF5bWVudEdhdGV3YXlCYXNlID0mZ3Q7IDEuMC44PC9saT48L3VsPjxoMz5QYXJhbWV0ZXJzPC9oMz48dWw+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gbGFuZz0iZW5fVVMiIC0gUGFyYW1ldGVyIGlzIHVzZWQgdG8gc3BlY2lmeSB3aGF0IGxhbmd1YWdlIHRvIHVzZSBmb3IgZGlzcGxheSBvbiB0aGUgZnJvbnRlbmQuIE5vdCBhbGwgbW9kdWxlcyBzdXBwb3J0IG9yIG5lZWQgdGhpcy48L2xpPjwvdWw+]]></help>
	<about><![CDATA[PGJyIC8+QXV0aG9yOiBSb2JlcnQgQ2FtcGJlbGwgJmx0O2NhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcmZ3Q7PGJyIC8+PGJyIC8+VmVyc2lvbjogMS4wLjE8YnIgLz48YnIgLz5DaGFuZ2UgSGlzdG9yeTo8YnIgLz48dWw+CiAgPGxpPnYxLjAgLSBJbml0aWFsIFJlbGVhc2UuPC9saT4KICA8bGk+djEuMC4xIC0gTm93IHN1cHBvcnQgbWl4ZWQgcHJvZHVjdCBhbmQgcGF5bWVudCBzdWJzY3JpcHRpb25zLjwvbGk+CjwvdWw+PGJyIC8+]]></about>
	<description><![CDATA[A Payment gateway to work with Calguys Ecommerce suite that interacts with <a href="http://www.rbsworldpay.com/">RBS WorldPay</a>]]></description>
	<requires>
	  <requiredname>CGExtensions</requiredname>
	  <requiredversion>1.19.4</requiredversion>
	</requires>
	<requires>
	  <requiredname>CGPaymentGatewayBase</requiredname>
	  <requiredversion>1.0.8</requiredversion>
	</requires>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/action.admin_saveprefs.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFJCU1dvcmxkUGF5IChjKSAyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIHByb3ZpZGUgdGhlIGFiaWxpdHkgdG8gcHJvY2VzcwojICBwYXltZW50cyBtYWRlIHVzaW5nIHRoZSBFLWNvbW1lcmNlIHN1aXRlIHRocm91Z2ggUkJTIFdvcmxkcGF5CiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBTaXRlIFByZWZlcmVuY2VzJykgKSByZXR1cm47CgokdGhpcy0+U2V0Q3VycmVudFRhYigncHJlZnMnKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2luc3RhbGxhdGlvbl9pZCcsdHJpbSgkcGFyYW1zWydpbnN0YWxsYXRpb25faWQnXSkpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgncHJvZF9tb2RlJywoaW50KSRwYXJhbXNbJ3Byb2RfbW9kZSddKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ3Rlc3RfcGFyYW0nLHRyaW0oJHBhcmFtc1sndGVzdF9wYXJhbSddKSk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCd0aW1lbGltaXQnLChpbnQpJHBhcmFtc1sndGltZWxpbWl0J10pOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnbWQ1c2VjcmV0Jyx0cmltKCRwYXJhbXNbJ3NlY3JldCddKSk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdjYWxsYmFja3B3Jyx0cmltKCRwYXJhbXNbJ2NhbGxiYWNrcHcnXSkpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgndHpvZmZzZXQnLChpbnQpJHBhcmFtc1sndHpvZmZzZXQnXSk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdhbGxvd19zdWJzY3InLChpbnQpJHBhcmFtc1snYWxsb3dfc3Vic2NyJ10pOwokdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFJCU1dvcmxkUGF5IChjKSAyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIHByb3ZpZGUgdGhlIGFiaWxpdHkgdG8gcHJvY2VzcwojICBwYXltZW50cyBtYWRlIHVzaW5nIHRoZSBFLWNvbW1lcmNlIHN1aXRlIHRocm91Z2ggUkJTIFdvcmxkcGF5CiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKZWNobyAkdGhpcy0+U3RhcnRUYWJIZWFkZXJzKCk7CmlmKCAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgVGVtcGxhdGVzJykgKQogIHsKICAgIGVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcigndGVtcGxhdGUnLCR0aGlzLT5MYW5nKCdmb3JtX3RlbXBsYXRlJykpOwogICAgZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdyZXR1cm5fdGVtcGxhdGUnLCR0aGlzLT5MYW5nKCdyZXR1cm5fdGVtcGxhdGUnKSk7CiAgfQppZiggJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMnKSApCiAgewogICAgZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdwcmVmcycsJHRoaXMtPkxhbmcoJ3ByZWZlcmVuY2VzJykpOwogIH0KZWNobyAkdGhpcy0+RW5kVGFiSGVhZGVycygpOwoKZWNobyAkdGhpcy0+U3RhcnRUYWJDb250ZW50KCk7CmlmKCAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgVGVtcGxhdGVzJykgKQogIHsKICAgIGVjaG8gJHRoaXMtPlN0YXJ0VGFiKCd0ZW1wbGF0ZScsJHBhcmFtcyk7CiAgICBpbmNsdWRlKGRpcm5hbWUoX19GSUxFX18pLicvZnVuY3Rpb24uZm9ybV90ZW1wbGF0ZV90YWIucGhwJyk7CiAgICBlY2hvICR0aGlzLT5FbmRUYWIoKTsKCiAgICBlY2hvICR0aGlzLT5TdGFydFRhYigncmV0dXJuX3RlbXBsYXRlJywkcGFyYW1zKTsKICAgIGluY2x1ZGUoZGlybmFtZShfX0ZJTEVfXykuJy9mdW5jdGlvbi5yZXR1cm5fdGVtcGxhdGVfdGFiLnBocCcpOwogICAgZWNobyAkdGhpcy0+RW5kVGFiKCk7CiAgfQppZiggJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMnKSApCiAgewogICAgZWNobyAkdGhpcy0+U3RhcnRUYWIoJ3ByZWZzJywkcGFyYW1zKTsKICAgIGluY2x1ZGUoZGlybmFtZShfX0ZJTEVfXykuJy9mdW5jdGlvbi5wcmVmc190YWIucGhwJyk7CiAgICBlY2hvICR0aGlzLT5FbmRUYWIoKTsKICB9CmVjaG8gJHRoaXMtPkVuZFRhYkNvbnRlbnQoKTsKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/action.notify.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFJCU1dvcmxkUGF5IChjKSAyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIHByb3ZpZGUgdGhlIGFiaWxpdHkgdG8gcHJvY2VzcwojICBwYXltZW50cyBtYWRlIHVzaW5nIHRoZSBFLWNvbW1lcmNlIHN1aXRlIHRocm91Z2ggUkJTIFdvcmxkcGF5CiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKZGVidWdfdG9fbG9nKCctLS0gUkJTIFdvcmxkcGF5IG5vdGlmaWNhdGlvbiAtLS0tJyk7CmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKCi8vIHRlbXBvcmFyaWx5IHN0b3JlIHBvc3QgaW5mb3JtYXRpb24gaW4gYW4gZW5jcnlwdGVkIG1hbm5lcgovLyBpbiB0aGUgbW9kdWxlIGRpcmVjdG9yeS4KJGVrZXkgPSBtZDUoJGNvbmZpZ1sncm9vdF91cmwnXS4nOicuJGNvbmZpZy0+cm9vdFsncGF0aCddLic6cmJzd29ybGRwYXknKTsKJGVkYXRhID0gc2VyaWFsaXplKCRfUE9TVCk7CiRlZGF0YSA9IGJhc2U2NF9lbmNvZGUoY2dlX2VuY3J5cHQ6OmVuY3J5cHQoJGVrZXksJGVkYXRhKSk7CiRmbiA9ICR0aGlzLT5HZXRNb2R1bGVQYXRoKCkuJy8ucGRhdGEuZGF0JzsKJGZoID0gZm9wZW4oJGZuLCdhJyk7CmZ3cml0ZSggJGZoLCAnLS0tIHNlcGFyYXRvciAtLS0nKTsKZndyaXRlKCAkZmgsICRlZGF0YSApOwpmY2xvc2UoICRmaCApOwoKJHJlcXVpcmVkX3BhcmFtcyA9IGFycmF5KCk7CiRyZXF1aXJlZF9wYXJhbXNbJ2NhbGxiYWNrUFcnXSA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdjYWxsYmFja3B3Jyk7CiRyZXF1aXJlZF9wYXJhbXNbJ2luc3RJZCddID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2luc3RhbGxhdGlvbl9pZCcpOwokcmVxdWlyZWRfcGFyYW1zWydjYXJ0SWQnXSA9ICcqKkFOWVRISU5HKionOwokcmVxdWlyZWRfcGFyYW1zWyd0cmFuc0lkJ10gPSAnKipBTllUSElORyoqJzsKJHJlcXVpcmVkX3BhcmFtc1snYW1vdW50J10gPSAnKipBTllUSElORyoqJzsKJHJlcXVpcmVkX3BhcmFtc1sndHJhbnNTdGF0dXMnXSA9ICcqKkFOWVRISU5HKionOwokcmVxdWlyZWRfcGFyYW1zWydhdXRoQW1vdW50J10gPSAnKipBTllUSElORyoqJzsKJHJlcXVpcmVkX3BhcmFtc1snYXV0aEN1cnJlbmN5J10gPSAnKipBTllUSElORyoqJzsKJHJlcXVpcmVkX3BhcmFtc1snYXV0aENvc3QnXSA9ICcqKkFOWVRISU5HKionOwokcmVxdWlyZWRfcGFyYW1zWydhdXRoTW9kZSddID0gJyoqQU5ZVEhJTkcqKic7CiRyZXF1aXJlZF9wYXJhbXNbJ2lwQWRkcmVzcyddID0gJyoqQU5ZVEhJTkcqKic7CgovLyBkbyBiYXNpYyBzZWN1cml0eSB2YWxpZGF0aW9uLgpmb3JlYWNoKCAkcmVxdWlyZWRfcGFyYW1zIGFzICRrZXkgPT4gJHZhbHVlICkKewogIGlmKCAhaXNzZXQoJF9QT1NUWyRrZXldKSApCiAgICB7CiAgICAgICR0aGlzLT5BdWRpdCgnJywkdGhpcy0+R2V0TmFtZSgpLicgbm90aWZ5JywKCQkgICAkdGhpcy0+TGFuZygnZXJyb3JfaW52YWxpZF9ub3RpZmljYXRpb24nKS4iICgka2V5IG5vdGZvdW5kKSIpOwogICAgICByZXR1cm47CiAgICB9CiAgaWYoICR2YWx1ZSAhPSAnKipBTllUSElORyoqJyAmJiAkX1BPU1RbJGtleV0gIT0gJHZhbHVlICkKICAgIHsKICAgICAgJHRoaXMtPkF1ZGl0KCcnLCR0aGlzLT5HZXROYW1lKCkuJyBub3RpZnknLCR0aGlzLT5MYW5nKCdlcnJvcl9pbnZhbGlkX25vdGlmaWNhdGlvbicpLiIgeyRrZXl9Iik7CiAgICAgIHJldHVybjsKICAgIH0KfQoKLy8gTm93IHNlZSBpZiB3ZSBjYW4gZ2V0IHRoZSBvcmRlciBpbmZvcm1hdGlvbgpsaXN0KCRpbnZvaWNlLCRvcmRlcl9pZCwka2V5KSA9IGV4cGxvZGUoJzo6JywkX1BPU1RbJ2NhcnRJZCddLDMpOwokdHhuX2lkID0gdHJpbSgkX1BPU1RbJ3RyYW5zSWQnXSk7CiRzdGF0dXMgPSB0cmltKCRfUE9TVFsndHJhbnNTdGF0dXMnXSk7CiRhdXRoQW1vdW50ID0gKGZsb2F0KSRfUE9TVFsnYXV0aEFtb3VudCddOwokYXV0aEN1cnJlbmN5ID0gKGZsb2F0KSRfUE9TVFsnYXV0aEN1cnJlbmN5J107CiRpcF9hZGRyZXNzID0gdHJpbSgkX1BPU1RbJ2lwQWRkcmVzcyddKTsKJGZ1dHVyZV9wYXlfaWQgPSAnJzsKaWYoIGlzc2V0KCRfUE9TVFsnZnV0dXJlUGF5SWQnXSkgKQogIHsKICAgICRmdXR1cmVfcGF5X2lkID0gdHJpbSgkX1BPU1RbJ2Z1dHVyZVBheUlkJ10pOwogIH0KCmlmKCAkYXV0aEN1cnJlbmN5ICE9IGNnX2Vjb21tOjpnZXRfY3VycmVuY3lfY29kZSgpICkKICB7CiAgICAvLyBiYWQgY3VycmVuY3ksIGJ1dCBub3QgbXVjaCB3ZSBjYW4gZG8gYWJvdXQgaXQgeWV0LgogICAgJHRoaXMtPkF1ZGl0KCRvcmRlcl9pZCwkdGhpcy0+R2V0TmFtZSgpLicgbm90aWZ5JywKCQkgJHRoaXMtPkxhbmcoJ2Vycm9yX2ludmFsaWRfY3VycmVuY3knLCRhdXRoQ3VycmVuY3kpKTsKICB9Cgokb3N0YXR1cyA9IFBBWU1FTlRfU1RBVFVTX0FQUFJPVkVEOwpzd2l0Y2goJHN0YXR1cykKICB7CiAgY2FzZSAnQyc6CiAgICAkb3N0YXR1cyA9IFBBWU1FTlRfU1RBVFVTX0NBTkNFTExFRDsKICAgIGJyZWFrOwoKICBjYXNlICdZJzoKICAgIGJyZWFrOwoKICBkZWZhdWx0OgogICAgJG9zdGF0dXMgPSBQQVlNRU5UX1NUQVRVU19FUlJPUjsKICAgIGJyZWFrOwogIH0KCgppZiggISR0aGlzLT5SZXN0b3JlU3RhdGUoJGtleSkgKQogIHsKICAgIC8vIHByb2JsZW0gcmVzdG9yaW5nIHN0YXRlIChrZXkgaW52YWxpZD8pCiAgICAkdGhpcy0+QXVkaXQoJycsJHRoaXMtPkdldE5hbWUoKS4nIG5vdGlmeScsCgkJICR0aGlzLT5MYW5nKCdlcnJvcl9pbnZhbGlkX25vdGlmaWNhdGlvbicpLiIgLSBSZXN0b3JpbmcgU3RhdGUiKTsKICAgIHJldHVybjsKICB9CgovLyB2YWxpZGF0ZSB0aGUgaXAgYWRkcmVzcwovLyBjYW4ndCBjaGVjayB0aGlzIG5vdyBJJ20gYmVoaW5kIGEgc3VibmV0LgovLyBpZiggaXNzZXQoJHRoaXMtPl9kYXRhWydpcF9hZGRyZXNzJ10pICYmICR0aGlzLT5fZGF0YVsnaXBfYWRkcmVzcyddICE9ICRpcF9hZGRyZXNzICkKLy8gICB7Ci8vICAgICAvLyBzcG9vZmluZyBhdHRhY2s/Ci8vICAgICBkZWJ1Z190b19sb2coJ3Nwb29maW5nOiAnLiR0aGlzLT5fZGF0YVsnaXBfYWRkcmVzcyddLicgdnMgJy4kaXBfYWRkcmVzcyk7Ci8vICAgICAkdGhpcy0+QXVkaXQoJycsJHRoaXMtPkdldE5hbWUoKS4nIG5vdGlmeScsCi8vIAkJICR0aGlzLT5MYW5nKCdlcnJvcl9pbnZhbGlkX25vdGlmaWNhdGlvbicpLiIgLSBTcG9vZmluZz8iKTsKLy8gICAgIHJldHVybjsKLy8gICB9CgovLyBzZW5kIHRoZSB0cmFuc2FjdGlvbiBpbmZvIHRvIHRoZSBvcmRlciBwcm9jZXNzb3IKJHRyYW5zYWN0aW9uID0gbmV3IGNncGdiX2FzeW5jX3RyYW5zYWN0aW9uKCRvcmRlcl9pZCwkYXV0aEFtb3VudCk7CiR0cmFuc2FjdGlvbi0+c2V0X3N0YXR1cygkb3N0YXR1cyk7CiR0cmFuc2FjdGlvbi0+c2V0X2lkKCR0eG5faWQpOwovLyR0cmFuc2FjdGlvbi0+c2V0X3VzZXJfaWQoJHVpZCk7CmlmKCAkZnV0dXJlX3BheV9pZCApCiAgewogICAgJHRyYW5zYWN0aW9uLT5zZXRfb3RoZXJfdmFsKCdGdXR1cmVQYXkgSUQnLCRmdXR1cmVfcGF5X2lkKTsKICB9CiR0aGlzLT5zZW5kX3RyYW5zYWN0aW9uX25vdGlmaWNhdGlvbigkdHJhbnNhY3Rpb24pOwoKLy8gbm93IHdlJ3JlIGRvbmUgd2l0aCB0aGUgZ2F0ZXdheSBkYXRhLgokdXJsID0gJHRoaXMtPl9kYXRhWydkZXN0aW5hdGlvbiddLicmY250bnQwMWRhdGFrZXk9Jy4ka2V5OwokdGhpcy0+UmVzZXQoKTsKJHRoaXMtPlNhdmVTdGF0ZSh0cnVlLCRrZXkpOyAvLyBzYXZlIGFuIGVtcHR5IHN0YXRlLgoKJHNtYXJ0eS0+YXNzaWduKCd0cmFuc2FjdGlvbicsJHRyYW5zYWN0aW9uKTsKJHNtYXJ0eS0+YXNzaWduKCdyZXR1cm5fdXJsJywkdXJsKTsKJHNtYXJ0eS0+YXNzaWduKCdyYXdfc3RhdHVzJywkc3RhdHVzKTsKJHNtYXJ0eS0+YXNzaWduKCdzdGF0dXMnLCRvc3RhdHVzKTsKJHNtYXJ0eS0+YXNzaWduKCdhbW91bnQnLCRhdXRoQW1vdW50KTsKJHNtYXJ0eS0+YXNzaWduKCdjdXJyZW5jeScsJGF1dGhDdXJyZW5jeSk7CiRzbWFydHktPmFzc2lnbigndHJhbnNhY3Rpb25faWQnLCR0eG5faWQpOwplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YWJhc2UoJ3JldHVybl90ZW1wbGF0ZScpOwoKIwojIEVPRgojCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.process_payment.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFJCU1dvcmxkUGF5IChjKSAyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIHByb3ZpZGUgdGhlIGFiaWxpdHkgdG8gcHJvY2VzcwojICBwYXltZW50cyBtYWRlIHVzaW5nIHRoZSBFLWNvbW1lcmNlIHN1aXRlIHRocm91Z2ggUkJTIFdvcmxkcGF5CiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/action.return.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFJCU1dvcmxkUGF5IChjKSAyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIHByb3ZpZGUgdGhlIGFiaWxpdHkgdG8gcHJvY2VzcwojICBwYXltZW50cyBtYWRlIHVzaW5nIHRoZSBFLWNvbW1lcmNlIHN1aXRlIHRocm91Z2ggUkJTIFdvcmxkcGF5CiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwokY29uZmlnID0gJGdDbXMtPkdldENvbmZpZygpOwoka2V5ID0gJyc7CgpkZWJ1Z19kaXNwbGF5KCRwYXJhbXMpOwppZiggaXNzZXQoJHBhcmFtc1sna2V5J10pICkKICB7CiAgICAka2V5ID0gdHJpbSgkcGFyYW1zWydrZXknXSk7CiAgfQppZiggaXNzZXQoJF9HRVRbJ2tleSddKSApCiAgewogICAgJGtleSA9IHRyaW0oJF9HRVRbJ2tleSddKTsKICB9CgovLyBGaW5kIG91dCB3aGVyZSB0byByZWRpcmVjdCB0by4KJHRoaXMtPlJlc3RvcmVTdGF0ZSgka2V5KTsKJHVybCA9ICR0aGlzLT5fZGF0YVsnZGVzdGluYXRpb24nXTsKJHVybCA9IGh0bWxfZW50aXR5X2RlY29kZSgkdXJsKTsKJHRoaXMtPlNhdmVTdGF0ZSh0cnVlLCRrZXkpOyAvLyBzYXZlIGl0IHdpdGggdGhlIHNhbWUga2V5LgokdXJsIC49ICImY250bnQwMWRhdGFrZXk9JGtleSI7CnJlZGlyZWN0KCR1cmwpOwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/changelog.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHVsPgogIDxsaT52MS4wIC0gSW5pdGlhbCBSZWxlYXNlLjwvbGk+CiAgPGxpPnYxLjAuMSAtIE5vdyBzdXBwb3J0IG1peGVkIHByb2R1Y3QgYW5kIHBheW1lbnQgc3Vic2NyaXB0aW9ucy48L2xpPgo8L3VsPg==]]></data>
	</file>
	<file>
	  <filename>/doc/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/doc/COPYING</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ICAgICAgICAgICAgICAgICAgICBHTlUgR0VORVJBTCBQVUJMSUMgTElDRU5TRQogICAgICAgICAgICAgICAgICAgICAgIFZlcnNpb24gMywgMjkgSnVuZSAyMDA3CgogQ29weXJpZ2h0IChDKSAyMDA3IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiA8aHR0cDovL2ZzZi5vcmcvPgogRXZlcnlvbmUgaXMgcGVybWl0dGVkIHRvIGNvcHkgYW5kIGRpc3RyaWJ1dGUgdmVyYmF0aW0gY29waWVzCiBvZiB0aGlzIGxpY2Vuc2UgZG9jdW1lbnQsIGJ1dCBjaGFuZ2luZyBpdCBpcyBub3QgYWxsb3dlZC4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcmVhbWJsZQoKICBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaXMgYSBmcmVlLCBjb3B5bGVmdCBsaWNlbnNlIGZvcgpzb2Z0d2FyZSBhbmQgb3RoZXIga2luZHMgb2Ygd29ya3MuCgogIFRoZSBsaWNlbnNlcyBmb3IgbW9zdCBzb2Z0d2FyZSBhbmQgb3RoZXIgcHJhY3RpY2FsIHdvcmtzIGFyZSBkZXNpZ25lZAp0byB0YWtlIGF3YXkgeW91ciBmcmVlZG9tIHRvIHNoYXJlIGFuZCBjaGFuZ2UgdGhlIHdvcmtzLiAgQnkgY29udHJhc3QsCnRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBpcyBpbnRlbmRlZCB0byBndWFyYW50ZWUgeW91ciBmcmVlZG9tIHRvCnNoYXJlIGFuZCBjaGFuZ2UgYWxsIHZlcnNpb25zIG9mIGEgcHJvZ3JhbS0tdG8gbWFrZSBzdXJlIGl0IHJlbWFpbnMgZnJlZQpzb2Z0d2FyZSBmb3IgYWxsIGl0cyB1c2Vycy4gIFdlLCB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB1c2UgdGhlCkdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3N0IG9mIG91ciBzb2Z0d2FyZTsgaXQgYXBwbGllcyBhbHNvIHRvCmFueSBvdGhlciB3b3JrIHJlbGVhc2VkIHRoaXMgd2F5IGJ5IGl0cyBhdXRob3JzLiAgWW91IGNhbiBhcHBseSBpdCB0bwp5b3VyIHByb2dyYW1zLCB0b28uCgogIFdoZW4gd2Ugc3BlYWsgb2YgZnJlZSBzb2Z0d2FyZSwgd2UgYXJlIHJlZmVycmluZyB0byBmcmVlZG9tLCBub3QKcHJpY2UuICBPdXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZXMgYXJlIGRlc2lnbmVkIHRvIG1ha2Ugc3VyZSB0aGF0IHlvdQpoYXZlIHRoZSBmcmVlZG9tIHRvIGRpc3RyaWJ1dGUgY29waWVzIG9mIGZyZWUgc29mdHdhcmUgKGFuZCBjaGFyZ2UgZm9yCnRoZW0gaWYgeW91IHdpc2gpLCB0aGF0IHlvdSByZWNlaXZlIHNvdXJjZSBjb2RlIG9yIGNhbiBnZXQgaXQgaWYgeW91CndhbnQgaXQsIHRoYXQgeW91IGNhbiBjaGFuZ2UgdGhlIHNvZnR3YXJlIG9yIHVzZSBwaWVjZXMgb2YgaXQgaW4gbmV3CmZyZWUgcHJvZ3JhbXMsIGFuZCB0aGF0IHlvdSBrbm93IHlvdSBjYW4gZG8gdGhlc2UgdGhpbmdzLgoKICBUbyBwcm90ZWN0IHlvdXIgcmlnaHRzLCB3ZSBuZWVkIHRvIHByZXZlbnQgb3RoZXJzIGZyb20gZGVueWluZyB5b3UKdGhlc2UgcmlnaHRzIG9yIGFza2luZyB5b3UgdG8gc3VycmVuZGVyIHRoZSByaWdodHMuICBUaGVyZWZvcmUsIHlvdSBoYXZlCmNlcnRhaW4gcmVzcG9uc2liaWxpdGllcyBpZiB5b3UgZGlzdHJpYnV0ZSBjb3BpZXMgb2YgdGhlIHNvZnR3YXJlLCBvciBpZgp5b3UgbW9kaWZ5IGl0OiByZXNwb25zaWJpbGl0aWVzIHRvIHJlc3BlY3QgdGhlIGZyZWVkb20gb2Ygb3RoZXJzLgoKICBGb3IgZXhhbXBsZSwgaWYgeW91IGRpc3RyaWJ1dGUgY29waWVzIG9mIHN1Y2ggYSBwcm9ncmFtLCB3aGV0aGVyCmdyYXRpcyBvciBmb3IgYSBmZWUsIHlvdSBtdXN0IHBhc3Mgb24gdG8gdGhlIHJlY2lwaWVudHMgdGhlIHNhbWUKZnJlZWRvbXMgdGhhdCB5b3UgcmVjZWl2ZWQuICBZb3UgbXVzdCBtYWtlIHN1cmUgdGhhdCB0aGV5LCB0b28sIHJlY2VpdmUKb3IgY2FuIGdldCB0aGUgc291cmNlIGNvZGUuICBBbmQgeW91IG11c3Qgc2hvdyB0aGVtIHRoZXNlIHRlcm1zIHNvIHRoZXkKa25vdyB0aGVpciByaWdodHMuCgogIERldmVsb3BlcnMgdGhhdCB1c2UgdGhlIEdOVSBHUEwgcHJvdGVjdCB5b3VyIHJpZ2h0cyB3aXRoIHR3byBzdGVwczoKKDEpIGFzc2VydCBjb3B5cmlnaHQgb24gdGhlIHNvZnR3YXJlLCBhbmQgKDIpIG9mZmVyIHlvdSB0aGlzIExpY2Vuc2UKZ2l2aW5nIHlvdSBsZWdhbCBwZXJtaXNzaW9uIHRvIGNvcHksIGRpc3RyaWJ1dGUgYW5kL29yIG1vZGlmeSBpdC4KCiAgRm9yIHRoZSBkZXZlbG9wZXJzJyBhbmQgYXV0aG9ycycgcHJvdGVjdGlvbiwgdGhlIEdQTCBjbGVhcmx5IGV4cGxhaW5zCnRoYXQgdGhlcmUgaXMgbm8gd2FycmFudHkgZm9yIHRoaXMgZnJlZSBzb2Z0d2FyZS4gIEZvciBib3RoIHVzZXJzJyBhbmQKYXV0aG9ycycgc2FrZSwgdGhlIEdQTCByZXF1aXJlcyB0aGF0IG1vZGlmaWVkIHZlcnNpb25zIGJlIG1hcmtlZCBhcwpjaGFuZ2VkLCBzbyB0aGF0IHRoZWlyIHByb2JsZW1zIHdpbGwgbm90IGJlIGF0dHJpYnV0ZWQgZXJyb25lb3VzbHkgdG8KYXV0aG9ycyBvZiBwcmV2aW91cyB2ZXJzaW9ucy4KCiAgU29tZSBkZXZpY2VzIGFyZSBkZXNpZ25lZCB0byBkZW55IHVzZXJzIGFjY2VzcyB0byBpbnN0YWxsIG9yIHJ1bgptb2RpZmllZCB2ZXJzaW9ucyBvZiB0aGUgc29mdHdhcmUgaW5zaWRlIHRoZW0sIGFsdGhvdWdoIHRoZSBtYW51ZmFjdHVyZXIKY2FuIGRvIHNvLiAgVGhpcyBpcyBmdW5kYW1lbnRhbGx5IGluY29tcGF0aWJsZSB3aXRoIHRoZSBhaW0gb2YKcHJvdGVjdGluZyB1c2VycycgZnJlZWRvbSB0byBjaGFuZ2UgdGhlIHNvZnR3YXJlLiAgVGhlIHN5c3RlbWF0aWMKcGF0dGVybiBvZiBzdWNoIGFidXNlIG9jY3VycyBpbiB0aGUgYXJlYSBvZiBwcm9kdWN0cyBmb3IgaW5kaXZpZHVhbHMgdG8KdXNlLCB3aGljaCBpcyBwcmVjaXNlbHkgd2hlcmUgaXQgaXMgbW9zdCB1bmFjY2VwdGFibGUuICBUaGVyZWZvcmUsIHdlCmhhdmUgZGVzaWduZWQgdGhpcyB2ZXJzaW9uIG9mIHRoZSBHUEwgdG8gcHJvaGliaXQgdGhlIHByYWN0aWNlIGZvciB0aG9zZQpwcm9kdWN0cy4gIElmIHN1Y2ggcHJvYmxlbXMgYXJpc2Ugc3Vic3RhbnRpYWxseSBpbiBvdGhlciBkb21haW5zLCB3ZQpzdGFuZCByZWFkeSB0byBleHRlbmQgdGhpcyBwcm92aXNpb24gdG8gdGhvc2UgZG9tYWlucyBpbiBmdXR1cmUgdmVyc2lvbnMKb2YgdGhlIEdQTCwgYXMgbmVlZGVkIHRvIHByb3RlY3QgdGhlIGZyZWVkb20gb2YgdXNlcnMuCgogIEZpbmFsbHksIGV2ZXJ5IHByb2dyYW0gaXMgdGhyZWF0ZW5lZCBjb25zdGFudGx5IGJ5IHNvZnR3YXJlIHBhdGVudHMuClN0YXRlcyBzaG91bGQgbm90IGFsbG93IHBhdGVudHMgdG8gcmVzdHJpY3QgZGV2ZWxvcG1lbnQgYW5kIHVzZSBvZgpzb2Z0d2FyZSBvbiBnZW5lcmFsLXB1cnBvc2UgY29tcHV0ZXJzLCBidXQgaW4gdGhvc2UgdGhhdCBkbywgd2Ugd2lzaCB0bwphdm9pZCB0aGUgc3BlY2lhbCBkYW5nZXIgdGhhdCBwYXRlbnRzIGFwcGxpZWQgdG8gYSBmcmVlIHByb2dyYW0gY291bGQKbWFrZSBpdCBlZmZlY3RpdmVseSBwcm9wcmlldGFyeS4gIFRvIHByZXZlbnQgdGhpcywgdGhlIEdQTCBhc3N1cmVzIHRoYXQKcGF0ZW50cyBjYW5ub3QgYmUgdXNlZCB0byByZW5kZXIgdGhlIHByb2dyYW0gbm9uLWZyZWUuCgogIFRoZSBwcmVjaXNlIHRlcm1zIGFuZCBjb25kaXRpb25zIGZvciBjb3B5aW5nLCBkaXN0cmlidXRpb24gYW5kCm1vZGlmaWNhdGlvbiBmb2xsb3cuCgogICAgICAgICAgICAgICAgICAgICAgIFRFUk1TIEFORCBDT05ESVRJT05TCgogIDAuIERlZmluaXRpb25zLgoKICAiVGhpcyBMaWNlbnNlIiByZWZlcnMgdG8gdmVyc2lvbiAzIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4KCiAgIkNvcHlyaWdodCIgYWxzbyBtZWFucyBjb3B5cmlnaHQtbGlrZSBsYXdzIHRoYXQgYXBwbHkgdG8gb3RoZXIga2luZHMgb2YKd29ya3MsIHN1Y2ggYXMgc2VtaWNvbmR1Y3RvciBtYXNrcy4KCiAgIlRoZSBQcm9ncmFtIiByZWZlcnMgdG8gYW55IGNvcHlyaWdodGFibGUgd29yayBsaWNlbnNlZCB1bmRlciB0aGlzCkxpY2Vuc2UuICBFYWNoIGxpY2Vuc2VlIGlzIGFkZHJlc3NlZCBhcyAieW91Ii4gICJMaWNlbnNlZXMiIGFuZAoicmVjaXBpZW50cyIgbWF5IGJlIGluZGl2aWR1YWxzIG9yIG9yZ2FuaXphdGlvbnMuCgogIFRvICJtb2RpZnkiIGEgd29yayBtZWFucyB0byBjb3B5IGZyb20gb3IgYWRhcHQgYWxsIG9yIHBhcnQgb2YgdGhlIHdvcmsKaW4gYSBmYXNoaW9uIHJlcXVpcmluZyBjb3B5cmlnaHQgcGVybWlzc2lvbiwgb3RoZXIgdGhhbiB0aGUgbWFraW5nIG9mIGFuCmV4YWN0IGNvcHkuICBUaGUgcmVzdWx0aW5nIHdvcmsgaXMgY2FsbGVkIGEgIm1vZGlmaWVkIHZlcnNpb24iIG9mIHRoZQplYXJsaWVyIHdvcmsgb3IgYSB3b3JrICJiYXNlZCBvbiIgdGhlIGVhcmxpZXIgd29yay4KCiAgQSAiY292ZXJlZCB3b3JrIiBtZWFucyBlaXRoZXIgdGhlIHVubW9kaWZpZWQgUHJvZ3JhbSBvciBhIHdvcmsgYmFzZWQKb24gdGhlIFByb2dyYW0uCgogIFRvICJwcm9wYWdhdGUiIGEgd29yayBtZWFucyB0byBkbyBhbnl0aGluZyB3aXRoIGl0IHRoYXQsIHdpdGhvdXQKcGVybWlzc2lvbiwgd291bGQgbWFrZSB5b3UgZGlyZWN0bHkgb3Igc2Vjb25kYXJpbHkgbGlhYmxlIGZvcgppbmZyaW5nZW1lbnQgdW5kZXIgYXBwbGljYWJsZSBjb3B5cmlnaHQgbGF3LCBleGNlcHQgZXhlY3V0aW5nIGl0IG9uIGEKY29tcHV0ZXIgb3IgbW9kaWZ5aW5nIGEgcHJpdmF0ZSBjb3B5LiAgUHJvcGFnYXRpb24gaW5jbHVkZXMgY29weWluZywKZGlzdHJpYnV0aW9uICh3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uKSwgbWFraW5nIGF2YWlsYWJsZSB0byB0aGUKcHVibGljLCBhbmQgaW4gc29tZSBjb3VudHJpZXMgb3RoZXIgYWN0aXZpdGllcyBhcyB3ZWxsLgoKICBUbyAiY29udmV5IiBhIHdvcmsgbWVhbnMgYW55IGtpbmQgb2YgcHJvcGFnYXRpb24gdGhhdCBlbmFibGVzIG90aGVyCnBhcnRpZXMgdG8gbWFrZSBvciByZWNlaXZlIGNvcGllcy4gIE1lcmUgaW50ZXJhY3Rpb24gd2l0aCBhIHVzZXIgdGhyb3VnaAphIGNvbXB1dGVyIG5ldHdvcmssIHdpdGggbm8gdHJhbnNmZXIgb2YgYSBjb3B5LCBpcyBub3QgY29udmV5aW5nLgoKICBBbiBpbnRlcmFjdGl2ZSB1c2VyIGludGVyZmFjZSBkaXNwbGF5cyAiQXBwcm9wcmlhdGUgTGVnYWwgTm90aWNlcyIKdG8gdGhlIGV4dGVudCB0aGF0IGl0IGluY2x1ZGVzIGEgY29udmVuaWVudCBhbmQgcHJvbWluZW50bHkgdmlzaWJsZQpmZWF0dXJlIHRoYXQgKDEpIGRpc3BsYXlzIGFuIGFwcHJvcHJpYXRlIGNvcHlyaWdodCBub3RpY2UsIGFuZCAoMikKdGVsbHMgdGhlIHVzZXIgdGhhdCB0aGVyZSBpcyBubyB3YXJyYW50eSBmb3IgdGhlIHdvcmsgKGV4Y2VwdCB0byB0aGUKZXh0ZW50IHRoYXQgd2FycmFudGllcyBhcmUgcHJvdmlkZWQpLCB0aGF0IGxpY2Vuc2VlcyBtYXkgY29udmV5IHRoZQp3b3JrIHVuZGVyIHRoaXMgTGljZW5zZSwgYW5kIGhvdyB0byB2aWV3IGEgY29weSBvZiB0aGlzIExpY2Vuc2UuICBJZgp0aGUgaW50ZXJmYWNlIHByZXNlbnRzIGEgbGlzdCBvZiB1c2VyIGNvbW1hbmRzIG9yIG9wdGlvbnMsIHN1Y2ggYXMgYQptZW51LCBhIHByb21pbmVudCBpdGVtIGluIHRoZSBsaXN0IG1lZXRzIHRoaXMgY3JpdGVyaW9uLgoKICAxLiBTb3VyY2UgQ29kZS4KCiAgVGhlICJzb3VyY2UgY29kZSIgZm9yIGEgd29yayBtZWFucyB0aGUgcHJlZmVycmVkIGZvcm0gb2YgdGhlIHdvcmsKZm9yIG1ha2luZyBtb2RpZmljYXRpb25zIHRvIGl0LiAgIk9iamVjdCBjb2RlIiBtZWFucyBhbnkgbm9uLXNvdXJjZQpmb3JtIG9mIGEgd29yay4KCiAgQSAiU3RhbmRhcmQgSW50ZXJmYWNlIiBtZWFucyBhbiBpbnRlcmZhY2UgdGhhdCBlaXRoZXIgaXMgYW4gb2ZmaWNpYWwKc3RhbmRhcmQgZGVmaW5lZCBieSBhIHJlY29nbml6ZWQgc3RhbmRhcmRzIGJvZHksIG9yLCBpbiB0aGUgY2FzZSBvZgppbnRlcmZhY2VzIHNwZWNpZmllZCBmb3IgYSBwYXJ0aWN1bGFyIHByb2dyYW1taW5nIGxhbmd1YWdlLCBvbmUgdGhhdAppcyB3aWRlbHkgdXNlZCBhbW9uZyBkZXZlbG9wZXJzIHdvcmtpbmcgaW4gdGhhdCBsYW5ndWFnZS4KCiAgVGhlICJTeXN0ZW0gTGlicmFyaWVzIiBvZiBhbiBleGVjdXRhYmxlIHdvcmsgaW5jbHVkZSBhbnl0aGluZywgb3RoZXIKdGhhbiB0aGUgd29yayBhcyBhIHdob2xlLCB0aGF0IChhKSBpcyBpbmNsdWRlZCBpbiB0aGUgbm9ybWFsIGZvcm0gb2YKcGFja2FnaW5nIGEgTWFqb3IgQ29tcG9uZW50LCBidXQgd2hpY2ggaXMgbm90IHBhcnQgb2YgdGhhdCBNYWpvcgpDb21wb25lbnQsIGFuZCAoYikgc2VydmVzIG9ubHkgdG8gZW5hYmxlIHVzZSBvZiB0aGUgd29yayB3aXRoIHRoYXQKTWFqb3IgQ29tcG9uZW50LCBvciB0byBpbXBsZW1lbnQgYSBTdGFuZGFyZCBJbnRlcmZhY2UgZm9yIHdoaWNoIGFuCmltcGxlbWVudGF0aW9uIGlzIGF2YWlsYWJsZSB0byB0aGUgcHVibGljIGluIHNvdXJjZSBjb2RlIGZvcm0uICBBCiJNYWpvciBDb21wb25lbnQiLCBpbiB0aGlzIGNvbnRleHQsIG1lYW5zIGEgbWFqb3IgZXNzZW50aWFsIGNvbXBvbmVudAooa2VybmVsLCB3aW5kb3cgc3lzdGVtLCBhbmQgc28gb24pIG9mIHRoZSBzcGVjaWZpYyBvcGVyYXRpbmcgc3lzdGVtCihpZiBhbnkpIG9uIHdoaWNoIHRoZSBleGVjdXRhYmxlIHdvcmsgcnVucywgb3IgYSBjb21waWxlciB1c2VkIHRvCnByb2R1Y2UgdGhlIHdvcmssIG9yIGFuIG9iamVjdCBjb2RlIGludGVycHJldGVyIHVzZWQgdG8gcnVuIGl0LgoKICBUaGUgIkNvcnJlc3BvbmRpbmcgU291cmNlIiBmb3IgYSB3b3JrIGluIG9iamVjdCBjb2RlIGZvcm0gbWVhbnMgYWxsCnRoZSBzb3VyY2UgY29kZSBuZWVkZWQgdG8gZ2VuZXJhdGUsIGluc3RhbGwsIGFuZCAoZm9yIGFuIGV4ZWN1dGFibGUKd29yaykgcnVuIHRoZSBvYmplY3QgY29kZSBhbmQgdG8gbW9kaWZ5IHRoZSB3b3JrLCBpbmNsdWRpbmcgc2NyaXB0cyB0bwpjb250cm9sIHRob3NlIGFjdGl2aXRpZXMuICBIb3dldmVyLCBpdCBkb2VzIG5vdCBpbmNsdWRlIHRoZSB3b3JrJ3MKU3lzdGVtIExpYnJhcmllcywgb3IgZ2VuZXJhbC1wdXJwb3NlIHRvb2xzIG9yIGdlbmVyYWxseSBhdmFpbGFibGUgZnJlZQpwcm9ncmFtcyB3aGljaCBhcmUgdXNlZCB1bm1vZGlmaWVkIGluIHBlcmZvcm1pbmcgdGhvc2UgYWN0aXZpdGllcyBidXQKd2hpY2ggYXJlIG5vdCBwYXJ0IG9mIHRoZSB3b3JrLiAgRm9yIGV4YW1wbGUsIENvcnJlc3BvbmRpbmcgU291cmNlCmluY2x1ZGVzIGludGVyZmFjZSBkZWZpbml0aW9uIGZpbGVzIGFzc29jaWF0ZWQgd2l0aCBzb3VyY2UgZmlsZXMgZm9yCnRoZSB3b3JrLCBhbmQgdGhlIHNvdXJjZSBjb2RlIGZvciBzaGFyZWQgbGlicmFyaWVzIGFuZCBkeW5hbWljYWxseQpsaW5rZWQgc3VicHJvZ3JhbXMgdGhhdCB0aGUgd29yayBpcyBzcGVjaWZpY2FsbHkgZGVzaWduZWQgdG8gcmVxdWlyZSwKc3VjaCBhcyBieSBpbnRpbWF0ZSBkYXRhIGNvbW11bmljYXRpb24gb3IgY29udHJvbCBmbG93IGJldHdlZW4gdGhvc2UKc3VicHJvZ3JhbXMgYW5kIG90aGVyIHBhcnRzIG9mIHRoZSB3b3JrLgoKICBUaGUgQ29ycmVzcG9uZGluZyBTb3VyY2UgbmVlZCBub3QgaW5jbHVkZSBhbnl0aGluZyB0aGF0IHVzZXJzCmNhbiByZWdlbmVyYXRlIGF1dG9tYXRpY2FsbHkgZnJvbSBvdGhlciBwYXJ0cyBvZiB0aGUgQ29ycmVzcG9uZGluZwpTb3VyY2UuCgogIFRoZSBDb3JyZXNwb25kaW5nIFNvdXJjZSBmb3IgYSB3b3JrIGluIHNvdXJjZSBjb2RlIGZvcm0gaXMgdGhhdApzYW1lIHdvcmsuCgogIDIuIEJhc2ljIFBlcm1pc3Npb25zLgoKICBBbGwgcmlnaHRzIGdyYW50ZWQgdW5kZXIgdGhpcyBMaWNlbnNlIGFyZSBncmFudGVkIGZvciB0aGUgdGVybSBvZgpjb3B5cmlnaHQgb24gdGhlIFByb2dyYW0sIGFuZCBhcmUgaXJyZXZvY2FibGUgcHJvdmlkZWQgdGhlIHN0YXRlZApjb25kaXRpb25zIGFyZSBtZXQuICBUaGlzIExpY2Vuc2UgZXhwbGljaXRseSBhZmZpcm1zIHlvdXIgdW5saW1pdGVkCnBlcm1pc3Npb24gdG8gcnVuIHRoZSB1bm1vZGlmaWVkIFByb2dyYW0uICBUaGUgb3V0cHV0IGZyb20gcnVubmluZyBhCmNvdmVyZWQgd29yayBpcyBjb3ZlcmVkIGJ5IHRoaXMgTGljZW5zZSBvbmx5IGlmIHRoZSBvdXRwdXQsIGdpdmVuIGl0cwpjb250ZW50LCBjb25zdGl0dXRlcyBhIGNvdmVyZWQgd29yay4gIFRoaXMgTGljZW5zZSBhY2tub3dsZWRnZXMgeW91cgpyaWdodHMgb2YgZmFpciB1c2Ugb3Igb3RoZXIgZXF1aXZhbGVudCwgYXMgcHJvdmlkZWQgYnkgY29weXJpZ2h0IGxhdy4KCiAgWW91IG1heSBtYWtlLCBydW4gYW5kIHByb3BhZ2F0ZSBjb3ZlcmVkIHdvcmtzIHRoYXQgeW91IGRvIG5vdApjb252ZXksIHdpdGhvdXQgY29uZGl0aW9ucyBzbyBsb25nIGFzIHlvdXIgbGljZW5zZSBvdGhlcndpc2UgcmVtYWlucwppbiBmb3JjZS4gIFlvdSBtYXkgY29udmV5IGNvdmVyZWQgd29ya3MgdG8gb3RoZXJzIGZvciB0aGUgc29sZSBwdXJwb3NlCm9mIGhhdmluZyB0aGVtIG1ha2UgbW9kaWZpY2F0aW9ucyBleGNsdXNpdmVseSBmb3IgeW91LCBvciBwcm92aWRlIHlvdQp3aXRoIGZhY2lsaXRpZXMgZm9yIHJ1bm5pbmcgdGhvc2Ugd29ya3MsIHByb3ZpZGVkIHRoYXQgeW91IGNvbXBseSB3aXRoCnRoZSB0ZXJtcyBvZiB0aGlzIExpY2Vuc2UgaW4gY29udmV5aW5nIGFsbCBtYXRlcmlhbCBmb3Igd2hpY2ggeW91IGRvCm5vdCBjb250cm9sIGNvcHlyaWdodC4gIFRob3NlIHRodXMgbWFraW5nIG9yIHJ1bm5pbmcgdGhlIGNvdmVyZWQgd29ya3MKZm9yIHlvdSBtdXN0IGRvIHNvIGV4Y2x1c2l2ZWx5IG9uIHlvdXIgYmVoYWxmLCB1bmRlciB5b3VyIGRpcmVjdGlvbgphbmQgY29udHJvbCwgb24gdGVybXMgdGhhdCBwcm9oaWJpdCB0aGVtIGZyb20gbWFraW5nIGFueSBjb3BpZXMgb2YKeW91ciBjb3B5cmlnaHRlZCBtYXRlcmlhbCBvdXRzaWRlIHRoZWlyIHJlbGF0aW9uc2hpcCB3aXRoIHlvdS4KCiAgQ29udmV5aW5nIHVuZGVyIGFueSBvdGhlciBjaXJjdW1zdGFuY2VzIGlzIHBlcm1pdHRlZCBzb2xlbHkgdW5kZXIKdGhlIGNvbmRpdGlvbnMgc3RhdGVkIGJlbG93LiAgU3VibGljZW5zaW5nIGlzIG5vdCBhbGxvd2VkOyBzZWN0aW9uIDEwCm1ha2VzIGl0IHVubmVjZXNzYXJ5LgoKICAzLiBQcm90ZWN0aW5nIFVzZXJzJyBMZWdhbCBSaWdodHMgRnJvbSBBbnRpLUNpcmN1bXZlbnRpb24gTGF3LgoKICBObyBjb3ZlcmVkIHdvcmsgc2hhbGwgYmUgZGVlbWVkIHBhcnQgb2YgYW4gZWZmZWN0aXZlIHRlY2hub2xvZ2ljYWwKbWVhc3VyZSB1bmRlciBhbnkgYXBwbGljYWJsZSBsYXcgZnVsZmlsbGluZyBvYmxpZ2F0aW9ucyB1bmRlciBhcnRpY2xlCjExIG9mIHRoZSBXSVBPIGNvcHlyaWdodCB0cmVhdHkgYWRvcHRlZCBvbiAyMCBEZWNlbWJlciAxOTk2LCBvcgpzaW1pbGFyIGxhd3MgcHJvaGliaXRpbmcgb3IgcmVzdHJpY3RpbmcgY2lyY3VtdmVudGlvbiBvZiBzdWNoCm1lYXN1cmVzLgoKICBXaGVuIHlvdSBjb252ZXkgYSBjb3ZlcmVkIHdvcmssIHlvdSB3YWl2ZSBhbnkgbGVnYWwgcG93ZXIgdG8gZm9yYmlkCmNpcmN1bXZlbnRpb24gb2YgdGVjaG5vbG9naWNhbCBtZWFzdXJlcyB0byB0aGUgZXh0ZW50IHN1Y2ggY2lyY3VtdmVudGlvbgppcyBlZmZlY3RlZCBieSBleGVyY2lzaW5nIHJpZ2h0cyB1bmRlciB0aGlzIExpY2Vuc2Ugd2l0aCByZXNwZWN0IHRvCnRoZSBjb3ZlcmVkIHdvcmssIGFuZCB5b3UgZGlzY2xhaW0gYW55IGludGVudGlvbiB0byBsaW1pdCBvcGVyYXRpb24gb3IKbW9kaWZpY2F0aW9uIG9mIHRoZSB3b3JrIGFzIGEgbWVhbnMgb2YgZW5mb3JjaW5nLCBhZ2FpbnN0IHRoZSB3b3JrJ3MKdXNlcnMsIHlvdXIgb3IgdGhpcmQgcGFydGllcycgbGVnYWwgcmlnaHRzIHRvIGZvcmJpZCBjaXJjdW12ZW50aW9uIG9mCnRlY2hub2xvZ2ljYWwgbWVhc3VyZXMuCgogIDQuIENvbnZleWluZyBWZXJiYXRpbSBDb3BpZXMuCgogIFlvdSBtYXkgY29udmV5IHZlcmJhdGltIGNvcGllcyBvZiB0aGUgUHJvZ3JhbSdzIHNvdXJjZSBjb2RlIGFzIHlvdQpyZWNlaXZlIGl0LCBpbiBhbnkgbWVkaXVtLCBwcm92aWRlZCB0aGF0IHlvdSBjb25zcGljdW91c2x5IGFuZAphcHByb3ByaWF0ZWx5IHB1Ymxpc2ggb24gZWFjaCBjb3B5IGFuIGFwcHJvcHJpYXRlIGNvcHlyaWdodCBub3RpY2U7CmtlZXAgaW50YWN0IGFsbCBub3RpY2VzIHN0YXRpbmcgdGhhdCB0aGlzIExpY2Vuc2UgYW5kIGFueQpub24tcGVybWlzc2l2ZSB0ZXJtcyBhZGRlZCBpbiBhY2NvcmQgd2l0aCBzZWN0aW9uIDcgYXBwbHkgdG8gdGhlIGNvZGU7CmtlZXAgaW50YWN0IGFsbCBub3RpY2VzIG9mIHRoZSBhYnNlbmNlIG9mIGFueSB3YXJyYW50eTsgYW5kIGdpdmUgYWxsCnJlY2lwaWVudHMgYSBjb3B5IG9mIHRoaXMgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBQcm9ncmFtLgoKICBZb3UgbWF5IGNoYXJnZSBhbnkgcHJpY2Ugb3Igbm8gcHJpY2UgZm9yIGVhY2ggY29weSB0aGF0IHlvdSBjb252ZXksCmFuZCB5b3UgbWF5IG9mZmVyIHN1cHBvcnQgb3Igd2FycmFudHkgcHJvdGVjdGlvbiBmb3IgYSBmZWUuCgogIDUuIENvbnZleWluZyBNb2RpZmllZCBTb3VyY2UgVmVyc2lvbnMuCgogIFlvdSBtYXkgY29udmV5IGEgd29yayBiYXNlZCBvbiB0aGUgUHJvZ3JhbSwgb3IgdGhlIG1vZGlmaWNhdGlvbnMgdG8KcHJvZHVjZSBpdCBmcm9tIHRoZSBQcm9ncmFtLCBpbiB0aGUgZm9ybSBvZiBzb3VyY2UgY29kZSB1bmRlciB0aGUKdGVybXMgb2Ygc2VjdGlvbiA0LCBwcm92aWRlZCB0aGF0IHlvdSBhbHNvIG1lZXQgYWxsIG9mIHRoZXNlIGNvbmRpdGlvbnM6CgogICAgYSkgVGhlIHdvcmsgbXVzdCBjYXJyeSBwcm9taW5lbnQgbm90aWNlcyBzdGF0aW5nIHRoYXQgeW91IG1vZGlmaWVkCiAgICBpdCwgYW5kIGdpdmluZyBhIHJlbGV2YW50IGRhdGUuCgogICAgYikgVGhlIHdvcmsgbXVzdCBjYXJyeSBwcm9taW5lbnQgbm90aWNlcyBzdGF0aW5nIHRoYXQgaXQgaXMKICAgIHJlbGVhc2VkIHVuZGVyIHRoaXMgTGljZW5zZSBhbmQgYW55IGNvbmRpdGlvbnMgYWRkZWQgdW5kZXIgc2VjdGlvbgogICAgNy4gIFRoaXMgcmVxdWlyZW1lbnQgbW9kaWZpZXMgdGhlIHJlcXVpcmVtZW50IGluIHNlY3Rpb24gNCB0bwogICAgImtlZXAgaW50YWN0IGFsbCBub3RpY2VzIi4KCiAgICBjKSBZb3UgbXVzdCBsaWNlbnNlIHRoZSBlbnRpcmUgd29yaywgYXMgYSB3aG9sZSwgdW5kZXIgdGhpcwogICAgTGljZW5zZSB0byBhbnlvbmUgd2hvIGNvbWVzIGludG8gcG9zc2Vzc2lvbiBvZiBhIGNvcHkuICBUaGlzCiAgICBMaWNlbnNlIHdpbGwgdGhlcmVmb3JlIGFwcGx5LCBhbG9uZyB3aXRoIGFueSBhcHBsaWNhYmxlIHNlY3Rpb24gNwogICAgYWRkaXRpb25hbCB0ZXJtcywgdG8gdGhlIHdob2xlIG9mIHRoZSB3b3JrLCBhbmQgYWxsIGl0cyBwYXJ0cywKICAgIHJlZ2FyZGxlc3Mgb2YgaG93IHRoZXkgYXJlIHBhY2thZ2VkLiAgVGhpcyBMaWNlbnNlIGdpdmVzIG5vCiAgICBwZXJtaXNzaW9uIHRvIGxpY2Vuc2UgdGhlIHdvcmsgaW4gYW55IG90aGVyIHdheSwgYnV0IGl0IGRvZXMgbm90CiAgICBpbnZhbGlkYXRlIHN1Y2ggcGVybWlzc2lvbiBpZiB5b3UgaGF2ZSBzZXBhcmF0ZWx5IHJlY2VpdmVkIGl0LgoKICAgIGQpIElmIHRoZSB3b3JrIGhhcyBpbnRlcmFjdGl2ZSB1c2VyIGludGVyZmFjZXMsIGVhY2ggbXVzdCBkaXNwbGF5CiAgICBBcHByb3ByaWF0ZSBMZWdhbCBOb3RpY2VzOyBob3dldmVyLCBpZiB0aGUgUHJvZ3JhbSBoYXMgaW50ZXJhY3RpdmUKICAgIGludGVyZmFjZXMgdGhhdCBkbyBub3QgZGlzcGxheSBBcHByb3ByaWF0ZSBMZWdhbCBOb3RpY2VzLCB5b3VyCiAgICB3b3JrIG5lZWQgbm90IG1ha2UgdGhlbSBkbyBzby4KCiAgQSBjb21waWxhdGlvbiBvZiBhIGNvdmVyZWQgd29yayB3aXRoIG90aGVyIHNlcGFyYXRlIGFuZCBpbmRlcGVuZGVudAp3b3Jrcywgd2hpY2ggYXJlIG5vdCBieSB0aGVpciBuYXR1cmUgZXh0ZW5zaW9ucyBvZiB0aGUgY292ZXJlZCB3b3JrLAphbmQgd2hpY2ggYXJlIG5vdCBjb21iaW5lZCB3aXRoIGl0IHN1Y2ggYXMgdG8gZm9ybSBhIGxhcmdlciBwcm9ncmFtLAppbiBvciBvbiBhIHZvbHVtZSBvZiBhIHN0b3JhZ2Ugb3IgZGlzdHJpYnV0aW9uIG1lZGl1bSwgaXMgY2FsbGVkIGFuCiJhZ2dyZWdhdGUiIGlmIHRoZSBjb21waWxhdGlvbiBhbmQgaXRzIHJlc3VsdGluZyBjb3B5cmlnaHQgYXJlIG5vdAp1c2VkIHRvIGxpbWl0IHRoZSBhY2Nlc3Mgb3IgbGVnYWwgcmlnaHRzIG9mIHRoZSBjb21waWxhdGlvbidzIHVzZXJzCmJleW9uZCB3aGF0IHRoZSBpbmRpdmlkdWFsIHdvcmtzIHBlcm1pdC4gIEluY2x1c2lvbiBvZiBhIGNvdmVyZWQgd29yawppbiBhbiBhZ2dyZWdhdGUgZG9lcyBub3QgY2F1c2UgdGhpcyBMaWNlbnNlIHRvIGFwcGx5IHRvIHRoZSBvdGhlcgpwYXJ0cyBvZiB0aGUgYWdncmVnYXRlLgoKICA2LiBDb252ZXlpbmcgTm9uLVNvdXJjZSBGb3Jtcy4KCiAgWW91IG1heSBjb252ZXkgYSBjb3ZlcmVkIHdvcmsgaW4gb2JqZWN0IGNvZGUgZm9ybSB1bmRlciB0aGUgdGVybXMKb2Ygc2VjdGlvbnMgNCBhbmQgNSwgcHJvdmlkZWQgdGhhdCB5b3UgYWxzbyBjb252ZXkgdGhlCm1hY2hpbmUtcmVhZGFibGUgQ29ycmVzcG9uZGluZyBTb3VyY2UgdW5kZXIgdGhlIHRlcm1zIG9mIHRoaXMgTGljZW5zZSwKaW4gb25lIG9mIHRoZXNlIHdheXM6CgogICAgYSkgQ29udmV5IHRoZSBvYmplY3QgY29kZSBpbiwgb3IgZW1ib2RpZWQgaW4sIGEgcGh5c2ljYWwgcHJvZHVjdAogICAgKGluY2x1ZGluZyBhIHBoeXNpY2FsIGRpc3RyaWJ1dGlvbiBtZWRpdW0pLCBhY2NvbXBhbmllZCBieSB0aGUKICAgIENvcnJlc3BvbmRpbmcgU291cmNlIGZpeGVkIG9uIGEgZHVyYWJsZSBwaHlzaWNhbCBtZWRpdW0KICAgIGN1c3RvbWFyaWx5IHVzZWQgZm9yIHNvZnR3YXJlIGludGVyY2hhbmdlLgoKICAgIGIpIENvbnZleSB0aGUgb2JqZWN0IGNvZGUgaW4sIG9yIGVtYm9kaWVkIGluLCBhIHBoeXNpY2FsIHByb2R1Y3QKICAgIChpbmNsdWRpbmcgYSBwaHlzaWNhbCBkaXN0cmlidXRpb24gbWVkaXVtKSwgYWNjb21wYW5pZWQgYnkgYQogICAgd3JpdHRlbiBvZmZlciwgdmFsaWQgZm9yIGF0IGxlYXN0IHRocmVlIHllYXJzIGFuZCB2YWxpZCBmb3IgYXMKICAgIGxvbmcgYXMgeW91IG9mZmVyIHNwYXJlIHBhcnRzIG9yIGN1c3RvbWVyIHN1cHBvcnQgZm9yIHRoYXQgcHJvZHVjdAogICAgbW9kZWwsIHRvIGdpdmUgYW55b25lIHdobyBwb3NzZXNzZXMgdGhlIG9iamVjdCBjb2RlIGVpdGhlciAoMSkgYQogICAgY29weSBvZiB0aGUgQ29ycmVzcG9uZGluZyBTb3VyY2UgZm9yIGFsbCB0aGUgc29mdHdhcmUgaW4gdGhlCiAgICBwcm9kdWN0IHRoYXQgaXMgY292ZXJlZCBieSB0aGlzIExpY2Vuc2UsIG9uIGEgZHVyYWJsZSBwaHlzaWNhbAogICAgbWVkaXVtIGN1c3RvbWFyaWx5IHVzZWQgZm9yIHNvZnR3YXJlIGludGVyY2hhbmdlLCBmb3IgYSBwcmljZSBubwogICAgbW9yZSB0aGFuIHlvdXIgcmVhc29uYWJsZSBjb3N0IG9mIHBoeXNpY2FsbHkgcGVyZm9ybWluZyB0aGlzCiAgICBjb252ZXlpbmcgb2Ygc291cmNlLCBvciAoMikgYWNjZXNzIHRvIGNvcHkgdGhlCiAgICBDb3JyZXNwb25kaW5nIFNvdXJjZSBmcm9tIGEgbmV0d29yayBzZXJ2ZXIgYXQgbm8gY2hhcmdlLgoKICAgIGMpIENvbnZleSBpbmRpdmlkdWFsIGNvcGllcyBvZiB0aGUgb2JqZWN0IGNvZGUgd2l0aCBhIGNvcHkgb2YgdGhlCiAgICB3cml0dGVuIG9mZmVyIHRvIHByb3ZpZGUgdGhlIENvcnJlc3BvbmRpbmcgU291cmNlLiAgVGhpcwogICAgYWx0ZXJuYXRpdmUgaXMgYWxsb3dlZCBvbmx5IG9jY2FzaW9uYWxseSBhbmQgbm9uY29tbWVyY2lhbGx5LCBhbmQKICAgIG9ubHkgaWYgeW91IHJlY2VpdmVkIHRoZSBvYmplY3QgY29kZSB3aXRoIHN1Y2ggYW4gb2ZmZXIsIGluIGFjY29yZAogICAgd2l0aCBzdWJzZWN0aW9uIDZiLgoKICAgIGQpIENvbnZleSB0aGUgb2JqZWN0IGNvZGUgYnkgb2ZmZXJpbmcgYWNjZXNzIGZyb20gYSBkZXNpZ25hdGVkCiAgICBwbGFjZSAoZ3JhdGlzIG9yIGZvciBhIGNoYXJnZSksIGFuZCBvZmZlciBlcXVpdmFsZW50IGFjY2VzcyB0byB0aGUKICAgIENvcnJlc3BvbmRpbmcgU291cmNlIGluIHRoZSBzYW1lIHdheSB0aHJvdWdoIHRoZSBzYW1lIHBsYWNlIGF0IG5vCiAgICBmdXJ0aGVyIGNoYXJnZS4gIFlvdSBuZWVkIG5vdCByZXF1aXJlIHJlY2lwaWVudHMgdG8gY29weSB0aGUKICAgIENvcnJlc3BvbmRpbmcgU291cmNlIGFsb25nIHdpdGggdGhlIG9iamVjdCBjb2RlLiAgSWYgdGhlIHBsYWNlIHRvCiAgICBjb3B5IHRoZSBvYmplY3QgY29kZSBpcyBhIG5ldHdvcmsgc2VydmVyLCB0aGUgQ29ycmVzcG9uZGluZyBTb3VyY2UKICAgIG1heSBiZSBvbiBhIGRpZmZlcmVudCBzZXJ2ZXIgKG9wZXJhdGVkIGJ5IHlvdSBvciBhIHRoaXJkIHBhcnR5KQogICAgdGhhdCBzdXBwb3J0cyBlcXVpdmFsZW50IGNvcHlpbmcgZmFjaWxpdGllcywgcHJvdmlkZWQgeW91IG1haW50YWluCiAgICBjbGVhciBkaXJlY3Rpb25zIG5leHQgdG8gdGhlIG9iamVjdCBjb2RlIHNheWluZyB3aGVyZSB0byBmaW5kIHRoZQogICAgQ29ycmVzcG9uZGluZyBTb3VyY2UuICBSZWdhcmRsZXNzIG9mIHdoYXQgc2VydmVyIGhvc3RzIHRoZQogICAgQ29ycmVzcG9uZGluZyBTb3VyY2UsIHlvdSByZW1haW4gb2JsaWdhdGVkIHRvIGVuc3VyZSB0aGF0IGl0IGlzCiAgICBhdmFpbGFibGUgZm9yIGFzIGxvbmcgYXMgbmVlZGVkIHRvIHNhdGlzZnkgdGhlc2UgcmVxdWlyZW1lbnRzLgoKICAgIGUpIENvbnZleSB0aGUgb2JqZWN0IGNvZGUgdXNpbmcgcGVlci10by1wZWVyIHRyYW5zbWlzc2lvbiwgcHJvdmlkZWQKICAgIHlvdSBpbmZvcm0gb3RoZXIgcGVlcnMgd2hlcmUgdGhlIG9iamVjdCBjb2RlIGFuZCBDb3JyZXNwb25kaW5nCiAgICBTb3VyY2Ugb2YgdGhlIHdvcmsgYXJlIGJlaW5nIG9mZmVyZWQgdG8gdGhlIGdlbmVyYWwgcHVibGljIGF0IG5vCiAgICBjaGFyZ2UgdW5kZXIgc3Vic2VjdGlvbiA2ZC4KCiAgQSBzZXBhcmFibGUgcG9ydGlvbiBvZiB0aGUgb2JqZWN0IGNvZGUsIHdob3NlIHNvdXJjZSBjb2RlIGlzIGV4Y2x1ZGVkCmZyb20gdGhlIENvcnJlc3BvbmRpbmcgU291cmNlIGFzIGEgU3lzdGVtIExpYnJhcnksIG5lZWQgbm90IGJlCmluY2x1ZGVkIGluIGNvbnZleWluZyB0aGUgb2JqZWN0IGNvZGUgd29yay4KCiAgQSAiVXNlciBQcm9kdWN0IiBpcyBlaXRoZXIgKDEpIGEgImNvbnN1bWVyIHByb2R1Y3QiLCB3aGljaCBtZWFucyBhbnkKdGFuZ2libGUgcGVyc29uYWwgcHJvcGVydHkgd2hpY2ggaXMgbm9ybWFsbHkgdXNlZCBmb3IgcGVyc29uYWwsIGZhbWlseSwKb3IgaG91c2Vob2xkIHB1cnBvc2VzLCBvciAoMikgYW55dGhpbmcgZGVzaWduZWQgb3Igc29sZCBmb3IgaW5jb3Jwb3JhdGlvbgppbnRvIGEgZHdlbGxpbmcuICBJbiBkZXRlcm1pbmluZyB3aGV0aGVyIGEgcHJvZHVjdCBpcyBhIGNvbnN1bWVyIHByb2R1Y3QsCmRvdWJ0ZnVsIGNhc2VzIHNoYWxsIGJlIHJlc29sdmVkIGluIGZhdm9yIG9mIGNvdmVyYWdlLiAgRm9yIGEgcGFydGljdWxhcgpwcm9kdWN0IHJlY2VpdmVkIGJ5IGEgcGFydGljdWxhciB1c2VyLCAibm9ybWFsbHkgdXNlZCIgcmVmZXJzIHRvIGEKdHlwaWNhbCBvciBjb21tb24gdXNlIG9mIHRoYXQgY2xhc3Mgb2YgcHJvZHVjdCwgcmVnYXJkbGVzcyBvZiB0aGUgc3RhdHVzCm9mIHRoZSBwYXJ0aWN1bGFyIHVzZXIgb3Igb2YgdGhlIHdheSBpbiB3aGljaCB0aGUgcGFydGljdWxhciB1c2VyCmFjdHVhbGx5IHVzZXMsIG9yIGV4cGVjdHMgb3IgaXMgZXhwZWN0ZWQgdG8gdXNlLCB0aGUgcHJvZHVjdC4gIEEgcHJvZHVjdAppcyBhIGNvbnN1bWVyIHByb2R1Y3QgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoZSBwcm9kdWN0IGhhcyBzdWJzdGFudGlhbApjb21tZXJjaWFsLCBpbmR1c3RyaWFsIG9yIG5vbi1jb25zdW1lciB1c2VzLCB1bmxlc3Mgc3VjaCB1c2VzIHJlcHJlc2VudAp0aGUgb25seSBzaWduaWZpY2FudCBtb2RlIG9mIHVzZSBvZiB0aGUgcHJvZHVjdC4KCiAgIkluc3RhbGxhdGlvbiBJbmZvcm1hdGlvbiIgZm9yIGEgVXNlciBQcm9kdWN0IG1lYW5zIGFueSBtZXRob2RzLApwcm9jZWR1cmVzLCBhdXRob3JpemF0aW9uIGtleXMsIG9yIG90aGVyIGluZm9ybWF0aW9uIHJlcXVpcmVkIHRvIGluc3RhbGwKYW5kIGV4ZWN1dGUgbW9kaWZpZWQgdmVyc2lvbnMgb2YgYSBjb3ZlcmVkIHdvcmsgaW4gdGhhdCBVc2VyIFByb2R1Y3QgZnJvbQphIG1vZGlmaWVkIHZlcnNpb24gb2YgaXRzIENvcnJlc3BvbmRpbmcgU291cmNlLiAgVGhlIGluZm9ybWF0aW9uIG11c3QKc3VmZmljZSB0byBlbnN1cmUgdGhhdCB0aGUgY29udGludWVkIGZ1bmN0aW9uaW5nIG9mIHRoZSBtb2RpZmllZCBvYmplY3QKY29kZSBpcyBpbiBubyBjYXNlIHByZXZlbnRlZCBvciBpbnRlcmZlcmVkIHdpdGggc29sZWx5IGJlY2F1c2UKbW9kaWZpY2F0aW9uIGhhcyBiZWVuIG1hZGUuCgogIElmIHlvdSBjb252ZXkgYW4gb2JqZWN0IGNvZGUgd29yayB1bmRlciB0aGlzIHNlY3Rpb24gaW4sIG9yIHdpdGgsIG9yCnNwZWNpZmljYWxseSBmb3IgdXNlIGluLCBhIFVzZXIgUHJvZHVjdCwgYW5kIHRoZSBjb252ZXlpbmcgb2NjdXJzIGFzCnBhcnQgb2YgYSB0cmFuc2FjdGlvbiBpbiB3aGljaCB0aGUgcmlnaHQgb2YgcG9zc2Vzc2lvbiBhbmQgdXNlIG9mIHRoZQpVc2VyIFByb2R1Y3QgaXMgdHJhbnNmZXJyZWQgdG8gdGhlIHJlY2lwaWVudCBpbiBwZXJwZXR1aXR5IG9yIGZvciBhCmZpeGVkIHRlcm0gKHJlZ2FyZGxlc3Mgb2YgaG93IHRoZSB0cmFuc2FjdGlvbiBpcyBjaGFyYWN0ZXJpemVkKSwgdGhlCkNvcnJlc3BvbmRpbmcgU291cmNlIGNvbnZleWVkIHVuZGVyIHRoaXMgc2VjdGlvbiBtdXN0IGJlIGFjY29tcGFuaWVkCmJ5IHRoZSBJbnN0YWxsYXRpb24gSW5mb3JtYXRpb24uICBCdXQgdGhpcyByZXF1aXJlbWVudCBkb2VzIG5vdCBhcHBseQppZiBuZWl0aGVyIHlvdSBub3IgYW55IHRoaXJkIHBhcnR5IHJldGFpbnMgdGhlIGFiaWxpdHkgdG8gaW5zdGFsbAptb2RpZmllZCBvYmplY3QgY29kZSBvbiB0aGUgVXNlciBQcm9kdWN0IChmb3IgZXhhbXBsZSwgdGhlIHdvcmsgaGFzCmJlZW4gaW5zdGFsbGVkIGluIFJPTSkuCgogIFRoZSByZXF1aXJlbWVudCB0byBwcm92aWRlIEluc3RhbGxhdGlvbiBJbmZvcm1hdGlvbiBkb2VzIG5vdCBpbmNsdWRlIGEKcmVxdWlyZW1lbnQgdG8gY29udGludWUgdG8gcHJvdmlkZSBzdXBwb3J0IHNlcnZpY2UsIHdhcnJhbnR5LCBvciB1cGRhdGVzCmZvciBhIHdvcmsgdGhhdCBoYXMgYmVlbiBtb2RpZmllZCBvciBpbnN0YWxsZWQgYnkgdGhlIHJlY2lwaWVudCwgb3IgZm9yCnRoZSBVc2VyIFByb2R1Y3QgaW4gd2hpY2ggaXQgaGFzIGJlZW4gbW9kaWZpZWQgb3IgaW5zdGFsbGVkLiAgQWNjZXNzIHRvIGEKbmV0d29yayBtYXkgYmUgZGVuaWVkIHdoZW4gdGhlIG1vZGlmaWNhdGlvbiBpdHNlbGYgbWF0ZXJpYWxseSBhbmQKYWR2ZXJzZWx5IGFmZmVjdHMgdGhlIG9wZXJhdGlvbiBvZiB0aGUgbmV0d29yayBvciB2aW9sYXRlcyB0aGUgcnVsZXMgYW5kCnByb3RvY29scyBmb3IgY29tbXVuaWNhdGlvbiBhY3Jvc3MgdGhlIG5ldHdvcmsuCgogIENvcnJlc3BvbmRpbmcgU291cmNlIGNvbnZleWVkLCBhbmQgSW5zdGFsbGF0aW9uIEluZm9ybWF0aW9uIHByb3ZpZGVkLAppbiBhY2NvcmQgd2l0aCB0aGlzIHNlY3Rpb24gbXVzdCBiZSBpbiBhIGZvcm1hdCB0aGF0IGlzIHB1YmxpY2x5CmRvY3VtZW50ZWQgKGFuZCB3aXRoIGFuIGltcGxlbWVudGF0aW9uIGF2YWlsYWJsZSB0byB0aGUgcHVibGljIGluCnNvdXJjZSBjb2RlIGZvcm0pLCBhbmQgbXVzdCByZXF1aXJlIG5vIHNwZWNpYWwgcGFzc3dvcmQgb3Iga2V5IGZvcgp1bnBhY2tpbmcsIHJlYWRpbmcgb3IgY29weWluZy4KCiAgNy4gQWRkaXRpb25hbCBUZXJtcy4KCiAgIkFkZGl0aW9uYWwgcGVybWlzc2lvbnMiIGFyZSB0ZXJtcyB0aGF0IHN1cHBsZW1lbnQgdGhlIHRlcm1zIG9mIHRoaXMKTGljZW5zZSBieSBtYWtpbmcgZXhjZXB0aW9ucyBmcm9tIG9uZSBvciBtb3JlIG9mIGl0cyBjb25kaXRpb25zLgpBZGRpdGlvbmFsIHBlcm1pc3Npb25zIHRoYXQgYXJlIGFwcGxpY2FibGUgdG8gdGhlIGVudGlyZSBQcm9ncmFtIHNoYWxsCmJlIHRyZWF0ZWQgYXMgdGhvdWdoIHRoZXkgd2VyZSBpbmNsdWRlZCBpbiB0aGlzIExpY2Vuc2UsIHRvIHRoZSBleHRlbnQKdGhhdCB0aGV5IGFyZSB2YWxpZCB1bmRlciBhcHBsaWNhYmxlIGxhdy4gIElmIGFkZGl0aW9uYWwgcGVybWlzc2lvbnMKYXBwbHkgb25seSB0byBwYXJ0IG9mIHRoZSBQcm9ncmFtLCB0aGF0IHBhcnQgbWF5IGJlIHVzZWQgc2VwYXJhdGVseQp1bmRlciB0aG9zZSBwZXJtaXNzaW9ucywgYnV0IHRoZSBlbnRpcmUgUHJvZ3JhbSByZW1haW5zIGdvdmVybmVkIGJ5CnRoaXMgTGljZW5zZSB3aXRob3V0IHJlZ2FyZCB0byB0aGUgYWRkaXRpb25hbCBwZXJtaXNzaW9ucy4KCiAgV2hlbiB5b3UgY29udmV5IGEgY29weSBvZiBhIGNvdmVyZWQgd29yaywgeW91IG1heSBhdCB5b3VyIG9wdGlvbgpyZW1vdmUgYW55IGFkZGl0aW9uYWwgcGVybWlzc2lvbnMgZnJvbSB0aGF0IGNvcHksIG9yIGZyb20gYW55IHBhcnQgb2YKaXQuICAoQWRkaXRpb25hbCBwZXJtaXNzaW9ucyBtYXkgYmUgd3JpdHRlbiB0byByZXF1aXJlIHRoZWlyIG93bgpyZW1vdmFsIGluIGNlcnRhaW4gY2FzZXMgd2hlbiB5b3UgbW9kaWZ5IHRoZSB3b3JrLikgIFlvdSBtYXkgcGxhY2UKYWRkaXRpb25hbCBwZXJtaXNzaW9ucyBvbiBtYXRlcmlhbCwgYWRkZWQgYnkgeW91IHRvIGEgY292ZXJlZCB3b3JrLApmb3Igd2hpY2ggeW91IGhhdmUgb3IgY2FuIGdpdmUgYXBwcm9wcmlhdGUgY29weXJpZ2h0IHBlcm1pc3Npb24uCgogIE5vdHdpdGhzdGFuZGluZyBhbnkgb3RoZXIgcHJvdmlzaW9uIG9mIHRoaXMgTGljZW5zZSwgZm9yIG1hdGVyaWFsIHlvdQphZGQgdG8gYSBjb3ZlcmVkIHdvcmssIHlvdSBtYXkgKGlmIGF1dGhvcml6ZWQgYnkgdGhlIGNvcHlyaWdodCBob2xkZXJzIG9mCnRoYXQgbWF0ZXJpYWwpIHN1cHBsZW1lbnQgdGhlIHRlcm1zIG9mIHRoaXMgTGljZW5zZSB3aXRoIHRlcm1zOgoKICAgIGEpIERpc2NsYWltaW5nIHdhcnJhbnR5IG9yIGxpbWl0aW5nIGxpYWJpbGl0eSBkaWZmZXJlbnRseSBmcm9tIHRoZQogICAgdGVybXMgb2Ygc2VjdGlvbnMgMTUgYW5kIDE2IG9mIHRoaXMgTGljZW5zZTsgb3IKCiAgICBiKSBSZXF1aXJpbmcgcHJlc2VydmF0aW9uIG9mIHNwZWNpZmllZCByZWFzb25hYmxlIGxlZ2FsIG5vdGljZXMgb3IKICAgIGF1dGhvciBhdHRyaWJ1dGlvbnMgaW4gdGhhdCBtYXRlcmlhbCBvciBpbiB0aGUgQXBwcm9wcmlhdGUgTGVnYWwKICAgIE5vdGljZXMgZGlzcGxheWVkIGJ5IHdvcmtzIGNvbnRhaW5pbmcgaXQ7IG9yCgogICAgYykgUHJvaGliaXRpbmcgbWlzcmVwcmVzZW50YXRpb24gb2YgdGhlIG9yaWdpbiBvZiB0aGF0IG1hdGVyaWFsLCBvcgogICAgcmVxdWlyaW5nIHRoYXQgbW9kaWZpZWQgdmVyc2lvbnMgb2Ygc3VjaCBtYXRlcmlhbCBiZSBtYXJrZWQgaW4KICAgIHJlYXNvbmFibGUgd2F5cyBhcyBkaWZmZXJlbnQgZnJvbSB0aGUgb3JpZ2luYWwgdmVyc2lvbjsgb3IKCiAgICBkKSBMaW1pdGluZyB0aGUgdXNlIGZvciBwdWJsaWNpdHkgcHVycG9zZXMgb2YgbmFtZXMgb2YgbGljZW5zb3JzIG9yCiAgICBhdXRob3JzIG9mIHRoZSBtYXRlcmlhbDsgb3IKCiAgICBlKSBEZWNsaW5pbmcgdG8gZ3JhbnQgcmlnaHRzIHVuZGVyIHRyYWRlbWFyayBsYXcgZm9yIHVzZSBvZiBzb21lCiAgICB0cmFkZSBuYW1lcywgdHJhZGVtYXJrcywgb3Igc2VydmljZSBtYXJrczsgb3IKCiAgICBmKSBSZXF1aXJpbmcgaW5kZW1uaWZpY2F0aW9uIG9mIGxpY2Vuc29ycyBhbmQgYXV0aG9ycyBvZiB0aGF0CiAgICBtYXRlcmlhbCBieSBhbnlvbmUgd2hvIGNvbnZleXMgdGhlIG1hdGVyaWFsIChvciBtb2RpZmllZCB2ZXJzaW9ucyBvZgogICAgaXQpIHdpdGggY29udHJhY3R1YWwgYXNzdW1wdGlvbnMgb2YgbGlhYmlsaXR5IHRvIHRoZSByZWNpcGllbnQsIGZvcgogICAgYW55IGxpYWJpbGl0eSB0aGF0IHRoZXNlIGNvbnRyYWN0dWFsIGFzc3VtcHRpb25zIGRpcmVjdGx5IGltcG9zZSBvbgogICAgdGhvc2UgbGljZW5zb3JzIGFuZCBhdXRob3JzLgoKICBBbGwgb3RoZXIgbm9uLXBlcm1pc3NpdmUgYWRkaXRpb25hbCB0ZXJtcyBhcmUgY29uc2lkZXJlZCAiZnVydGhlcgpyZXN0cmljdGlvbnMiIHdpdGhpbiB0aGUgbWVhbmluZyBvZiBzZWN0aW9uIDEwLiAgSWYgdGhlIFByb2dyYW0gYXMgeW91CnJlY2VpdmVkIGl0LCBvciBhbnkgcGFydCBvZiBpdCwgY29udGFpbnMgYSBub3RpY2Ugc3RhdGluZyB0aGF0IGl0IGlzCmdvdmVybmVkIGJ5IHRoaXMgTGljZW5zZSBhbG9uZyB3aXRoIGEgdGVybSB0aGF0IGlzIGEgZnVydGhlcgpyZXN0cmljdGlvbiwgeW91IG1heSByZW1vdmUgdGhhdCB0ZXJtLiAgSWYgYSBsaWNlbnNlIGRvY3VtZW50IGNvbnRhaW5zCmEgZnVydGhlciByZXN0cmljdGlvbiBidXQgcGVybWl0cyByZWxpY2Vuc2luZyBvciBjb252ZXlpbmcgdW5kZXIgdGhpcwpMaWNlbnNlLCB5b3UgbWF5IGFkZCB0byBhIGNvdmVyZWQgd29yayBtYXRlcmlhbCBnb3Zlcm5lZCBieSB0aGUgdGVybXMKb2YgdGhhdCBsaWNlbnNlIGRvY3VtZW50LCBwcm92aWRlZCB0aGF0IHRoZSBmdXJ0aGVyIHJlc3RyaWN0aW9uIGRvZXMKbm90IHN1cnZpdmUgc3VjaCByZWxpY2Vuc2luZyBvciBjb252ZXlpbmcuCgogIElmIHlvdSBhZGQgdGVybXMgdG8gYSBjb3ZlcmVkIHdvcmsgaW4gYWNjb3JkIHdpdGggdGhpcyBzZWN0aW9uLCB5b3UKbXVzdCBwbGFjZSwgaW4gdGhlIHJlbGV2YW50IHNvdXJjZSBmaWxlcywgYSBzdGF0ZW1lbnQgb2YgdGhlCmFkZGl0aW9uYWwgdGVybXMgdGhhdCBhcHBseSB0byB0aG9zZSBmaWxlcywgb3IgYSBub3RpY2UgaW5kaWNhdGluZwp3aGVyZSB0byBmaW5kIHRoZSBhcHBsaWNhYmxlIHRlcm1zLgoKICBBZGRpdGlvbmFsIHRlcm1zLCBwZXJtaXNzaXZlIG9yIG5vbi1wZXJtaXNzaXZlLCBtYXkgYmUgc3RhdGVkIGluIHRoZQpmb3JtIG9mIGEgc2VwYXJhdGVseSB3cml0dGVuIGxpY2Vuc2UsIG9yIHN0YXRlZCBhcyBleGNlcHRpb25zOwp0aGUgYWJvdmUgcmVxdWlyZW1lbnRzIGFwcGx5IGVpdGhlciB3YXkuCgogIDguIFRlcm1pbmF0aW9uLgoKICBZb3UgbWF5IG5vdCBwcm9wYWdhdGUgb3IgbW9kaWZ5IGEgY292ZXJlZCB3b3JrIGV4Y2VwdCBhcyBleHByZXNzbHkKcHJvdmlkZWQgdW5kZXIgdGhpcyBMaWNlbnNlLiAgQW55IGF0dGVtcHQgb3RoZXJ3aXNlIHRvIHByb3BhZ2F0ZSBvcgptb2RpZnkgaXQgaXMgdm9pZCwgYW5kIHdpbGwgYXV0b21hdGljYWxseSB0ZXJtaW5hdGUgeW91ciByaWdodHMgdW5kZXIKdGhpcyBMaWNlbnNlIChpbmNsdWRpbmcgYW55IHBhdGVudCBsaWNlbnNlcyBncmFudGVkIHVuZGVyIHRoZSB0aGlyZApwYXJhZ3JhcGggb2Ygc2VjdGlvbiAxMSkuCgogIEhvd2V2ZXIsIGlmIHlvdSBjZWFzZSBhbGwgdmlvbGF0aW9uIG9mIHRoaXMgTGljZW5zZSwgdGhlbiB5b3VyCmxpY2Vuc2UgZnJvbSBhIHBhcnRpY3VsYXIgY29weXJpZ2h0IGhvbGRlciBpcyByZWluc3RhdGVkIChhKQpwcm92aXNpb25hbGx5LCB1bmxlc3MgYW5kIHVudGlsIHRoZSBjb3B5cmlnaHQgaG9sZGVyIGV4cGxpY2l0bHkgYW5kCmZpbmFsbHkgdGVybWluYXRlcyB5b3VyIGxpY2Vuc2UsIGFuZCAoYikgcGVybWFuZW50bHksIGlmIHRoZSBjb3B5cmlnaHQKaG9sZGVyIGZhaWxzIHRvIG5vdGlmeSB5b3Ugb2YgdGhlIHZpb2xhdGlvbiBieSBzb21lIHJlYXNvbmFibGUgbWVhbnMKcHJpb3IgdG8gNjAgZGF5cyBhZnRlciB0aGUgY2Vzc2F0aW9uLgoKICBNb3Jlb3ZlciwgeW91ciBsaWNlbnNlIGZyb20gYSBwYXJ0aWN1bGFyIGNvcHlyaWdodCBob2xkZXIgaXMKcmVpbnN0YXRlZCBwZXJtYW5lbnRseSBpZiB0aGUgY29weXJpZ2h0IGhvbGRlciBub3RpZmllcyB5b3Ugb2YgdGhlCnZpb2xhdGlvbiBieSBzb21lIHJlYXNvbmFibGUgbWVhbnMsIHRoaXMgaXMgdGhlIGZpcnN0IHRpbWUgeW91IGhhdmUKcmVjZWl2ZWQgbm90aWNlIG9mIHZpb2xhdGlvbiBvZiB0aGlzIExpY2Vuc2UgKGZvciBhbnkgd29yaykgZnJvbSB0aGF0CmNvcHlyaWdodCBob2xkZXIsIGFuZCB5b3UgY3VyZSB0aGUgdmlvbGF0aW9uIHByaW9yIHRvIDMwIGRheXMgYWZ0ZXIKeW91ciByZWNlaXB0IG9mIHRoZSBub3RpY2UuCgogIFRlcm1pbmF0aW9uIG9mIHlvdXIgcmlnaHRzIHVuZGVyIHRoaXMgc2VjdGlvbiBkb2VzIG5vdCB0ZXJtaW5hdGUgdGhlCmxpY2Vuc2VzIG9mIHBhcnRpZXMgd2hvIGhhdmUgcmVjZWl2ZWQgY29waWVzIG9yIHJpZ2h0cyBmcm9tIHlvdSB1bmRlcgp0aGlzIExpY2Vuc2UuICBJZiB5b3VyIHJpZ2h0cyBoYXZlIGJlZW4gdGVybWluYXRlZCBhbmQgbm90IHBlcm1hbmVudGx5CnJlaW5zdGF0ZWQsIHlvdSBkbyBub3QgcXVhbGlmeSB0byByZWNlaXZlIG5ldyBsaWNlbnNlcyBmb3IgdGhlIHNhbWUKbWF0ZXJpYWwgdW5kZXIgc2VjdGlvbiAxMC4KCiAgOS4gQWNjZXB0YW5jZSBOb3QgUmVxdWlyZWQgZm9yIEhhdmluZyBDb3BpZXMuCgogIFlvdSBhcmUgbm90IHJlcXVpcmVkIHRvIGFjY2VwdCB0aGlzIExpY2Vuc2UgaW4gb3JkZXIgdG8gcmVjZWl2ZSBvcgpydW4gYSBjb3B5IG9mIHRoZSBQcm9ncmFtLiAgQW5jaWxsYXJ5IHByb3BhZ2F0aW9uIG9mIGEgY292ZXJlZCB3b3JrCm9jY3VycmluZyBzb2xlbHkgYXMgYSBjb25zZXF1ZW5jZSBvZiB1c2luZyBwZWVyLXRvLXBlZXIgdHJhbnNtaXNzaW9uCnRvIHJlY2VpdmUgYSBjb3B5IGxpa2V3aXNlIGRvZXMgbm90IHJlcXVpcmUgYWNjZXB0YW5jZS4gIEhvd2V2ZXIsCm5vdGhpbmcgb3RoZXIgdGhhbiB0aGlzIExpY2Vuc2UgZ3JhbnRzIHlvdSBwZXJtaXNzaW9uIHRvIHByb3BhZ2F0ZSBvcgptb2RpZnkgYW55IGNvdmVyZWQgd29yay4gIFRoZXNlIGFjdGlvbnMgaW5mcmluZ2UgY29weXJpZ2h0IGlmIHlvdSBkbwpub3QgYWNjZXB0IHRoaXMgTGljZW5zZS4gIFRoZXJlZm9yZSwgYnkgbW9kaWZ5aW5nIG9yIHByb3BhZ2F0aW5nIGEKY292ZXJlZCB3b3JrLCB5b3UgaW5kaWNhdGUgeW91ciBhY2NlcHRhbmNlIG9mIHRoaXMgTGljZW5zZSB0byBkbyBzby4KCiAgMTAuIEF1dG9tYXRpYyBMaWNlbnNpbmcgb2YgRG93bnN0cmVhbSBSZWNpcGllbnRzLgoKICBFYWNoIHRpbWUgeW91IGNvbnZleSBhIGNvdmVyZWQgd29yaywgdGhlIHJlY2lwaWVudCBhdXRvbWF0aWNhbGx5CnJlY2VpdmVzIGEgbGljZW5zZSBmcm9tIHRoZSBvcmlnaW5hbCBsaWNlbnNvcnMsIHRvIHJ1biwgbW9kaWZ5IGFuZApwcm9wYWdhdGUgdGhhdCB3b3JrLCBzdWJqZWN0IHRvIHRoaXMgTGljZW5zZS4gIFlvdSBhcmUgbm90IHJlc3BvbnNpYmxlCmZvciBlbmZvcmNpbmcgY29tcGxpYW5jZSBieSB0aGlyZCBwYXJ0aWVzIHdpdGggdGhpcyBMaWNlbnNlLgoKICBBbiAiZW50aXR5IHRyYW5zYWN0aW9uIiBpcyBhIHRyYW5zYWN0aW9uIHRyYW5zZmVycmluZyBjb250cm9sIG9mIGFuCm9yZ2FuaXphdGlvbiwgb3Igc3Vic3RhbnRpYWxseSBhbGwgYXNzZXRzIG9mIG9uZSwgb3Igc3ViZGl2aWRpbmcgYW4Kb3JnYW5pemF0aW9uLCBvciBtZXJnaW5nIG9yZ2FuaXphdGlvbnMuICBJZiBwcm9wYWdhdGlvbiBvZiBhIGNvdmVyZWQKd29yayByZXN1bHRzIGZyb20gYW4gZW50aXR5IHRyYW5zYWN0aW9uLCBlYWNoIHBhcnR5IHRvIHRoYXQKdHJhbnNhY3Rpb24gd2hvIHJlY2VpdmVzIGEgY29weSBvZiB0aGUgd29yayBhbHNvIHJlY2VpdmVzIHdoYXRldmVyCmxpY2Vuc2VzIHRvIHRoZSB3b3JrIHRoZSBwYXJ0eSdzIHByZWRlY2Vzc29yIGluIGludGVyZXN0IGhhZCBvciBjb3VsZApnaXZlIHVuZGVyIHRoZSBwcmV2aW91cyBwYXJhZ3JhcGgsIHBsdXMgYSByaWdodCB0byBwb3NzZXNzaW9uIG9mIHRoZQpDb3JyZXNwb25kaW5nIFNvdXJjZSBvZiB0aGUgd29yayBmcm9tIHRoZSBwcmVkZWNlc3NvciBpbiBpbnRlcmVzdCwgaWYKdGhlIHByZWRlY2Vzc29yIGhhcyBpdCBvciBjYW4gZ2V0IGl0IHdpdGggcmVhc29uYWJsZSBlZmZvcnRzLgoKICBZb3UgbWF5IG5vdCBpbXBvc2UgYW55IGZ1cnRoZXIgcmVzdHJpY3Rpb25zIG9uIHRoZSBleGVyY2lzZSBvZiB0aGUKcmlnaHRzIGdyYW50ZWQgb3IgYWZmaXJtZWQgdW5kZXIgdGhpcyBMaWNlbnNlLiAgRm9yIGV4YW1wbGUsIHlvdSBtYXkKbm90IGltcG9zZSBhIGxpY2Vuc2UgZmVlLCByb3lhbHR5LCBvciBvdGhlciBjaGFyZ2UgZm9yIGV4ZXJjaXNlIG9mCnJpZ2h0cyBncmFudGVkIHVuZGVyIHRoaXMgTGljZW5zZSwgYW5kIHlvdSBtYXkgbm90IGluaXRpYXRlIGxpdGlnYXRpb24KKGluY2x1ZGluZyBhIGNyb3NzLWNsYWltIG9yIGNvdW50ZXJjbGFpbSBpbiBhIGxhd3N1aXQpIGFsbGVnaW5nIHRoYXQKYW55IHBhdGVudCBjbGFpbSBpcyBpbmZyaW5nZWQgYnkgbWFraW5nLCB1c2luZywgc2VsbGluZywgb2ZmZXJpbmcgZm9yCnNhbGUsIG9yIGltcG9ydGluZyB0aGUgUHJvZ3JhbSBvciBhbnkgcG9ydGlvbiBvZiBpdC4KCiAgMTEuIFBhdGVudHMuCgogIEEgImNvbnRyaWJ1dG9yIiBpcyBhIGNvcHlyaWdodCBob2xkZXIgd2hvIGF1dGhvcml6ZXMgdXNlIHVuZGVyIHRoaXMKTGljZW5zZSBvZiB0aGUgUHJvZ3JhbSBvciBhIHdvcmsgb24gd2hpY2ggdGhlIFByb2dyYW0gaXMgYmFzZWQuICBUaGUKd29yayB0aHVzIGxpY2Vuc2VkIGlzIGNhbGxlZCB0aGUgY29udHJpYnV0b3IncyAiY29udHJpYnV0b3IgdmVyc2lvbiIuCgogIEEgY29udHJpYnV0b3IncyAiZXNzZW50aWFsIHBhdGVudCBjbGFpbXMiIGFyZSBhbGwgcGF0ZW50IGNsYWltcwpvd25lZCBvciBjb250cm9sbGVkIGJ5IHRoZSBjb250cmlidXRvciwgd2hldGhlciBhbHJlYWR5IGFjcXVpcmVkIG9yCmhlcmVhZnRlciBhY3F1aXJlZCwgdGhhdCB3b3VsZCBiZSBpbmZyaW5nZWQgYnkgc29tZSBtYW5uZXIsIHBlcm1pdHRlZApieSB0aGlzIExpY2Vuc2UsIG9mIG1ha2luZywgdXNpbmcsIG9yIHNlbGxpbmcgaXRzIGNvbnRyaWJ1dG9yIHZlcnNpb24sCmJ1dCBkbyBub3QgaW5jbHVkZSBjbGFpbXMgdGhhdCB3b3VsZCBiZSBpbmZyaW5nZWQgb25seSBhcyBhCmNvbnNlcXVlbmNlIG9mIGZ1cnRoZXIgbW9kaWZpY2F0aW9uIG9mIHRoZSBjb250cmlidXRvciB2ZXJzaW9uLiAgRm9yCnB1cnBvc2VzIG9mIHRoaXMgZGVmaW5pdGlvbiwgImNvbnRyb2wiIGluY2x1ZGVzIHRoZSByaWdodCB0byBncmFudApwYXRlbnQgc3VibGljZW5zZXMgaW4gYSBtYW5uZXIgY29uc2lzdGVudCB3aXRoIHRoZSByZXF1aXJlbWVudHMgb2YKdGhpcyBMaWNlbnNlLgoKICBFYWNoIGNvbnRyaWJ1dG9yIGdyYW50cyB5b3UgYSBub24tZXhjbHVzaXZlLCB3b3JsZHdpZGUsIHJveWFsdHktZnJlZQpwYXRlbnQgbGljZW5zZSB1bmRlciB0aGUgY29udHJpYnV0b3IncyBlc3NlbnRpYWwgcGF0ZW50IGNsYWltcywgdG8KbWFrZSwgdXNlLCBzZWxsLCBvZmZlciBmb3Igc2FsZSwgaW1wb3J0IGFuZCBvdGhlcndpc2UgcnVuLCBtb2RpZnkgYW5kCnByb3BhZ2F0ZSB0aGUgY29udGVudHMgb2YgaXRzIGNvbnRyaWJ1dG9yIHZlcnNpb24uCgogIEluIHRoZSBmb2xsb3dpbmcgdGhyZWUgcGFyYWdyYXBocywgYSAicGF0ZW50IGxpY2Vuc2UiIGlzIGFueSBleHByZXNzCmFncmVlbWVudCBvciBjb21taXRtZW50LCBob3dldmVyIGRlbm9taW5hdGVkLCBub3QgdG8gZW5mb3JjZSBhIHBhdGVudAooc3VjaCBhcyBhbiBleHByZXNzIHBlcm1pc3Npb24gdG8gcHJhY3RpY2UgYSBwYXRlbnQgb3IgY292ZW5hbnQgbm90IHRvCnN1ZSBmb3IgcGF0ZW50IGluZnJpbmdlbWVudCkuICBUbyAiZ3JhbnQiIHN1Y2ggYSBwYXRlbnQgbGljZW5zZSB0byBhCnBhcnR5IG1lYW5zIHRvIG1ha2Ugc3VjaCBhbiBhZ3JlZW1lbnQgb3IgY29tbWl0bWVudCBub3QgdG8gZW5mb3JjZSBhCnBhdGVudCBhZ2FpbnN0IHRoZSBwYXJ0eS4KCiAgSWYgeW91IGNvbnZleSBhIGNvdmVyZWQgd29yaywga25vd2luZ2x5IHJlbHlpbmcgb24gYSBwYXRlbnQgbGljZW5zZSwKYW5kIHRoZSBDb3JyZXNwb25kaW5nIFNvdXJjZSBvZiB0aGUgd29yayBpcyBub3QgYXZhaWxhYmxlIGZvciBhbnlvbmUKdG8gY29weSwgZnJlZSBvZiBjaGFyZ2UgYW5kIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGlzIExpY2Vuc2UsIHRocm91Z2ggYQpwdWJsaWNseSBhdmFpbGFibGUgbmV0d29yayBzZXJ2ZXIgb3Igb3RoZXIgcmVhZGlseSBhY2Nlc3NpYmxlIG1lYW5zLAp0aGVuIHlvdSBtdXN0IGVpdGhlciAoMSkgY2F1c2UgdGhlIENvcnJlc3BvbmRpbmcgU291cmNlIHRvIGJlIHNvCmF2YWlsYWJsZSwgb3IgKDIpIGFycmFuZ2UgdG8gZGVwcml2ZSB5b3Vyc2VsZiBvZiB0aGUgYmVuZWZpdCBvZiB0aGUKcGF0ZW50IGxpY2Vuc2UgZm9yIHRoaXMgcGFydGljdWxhciB3b3JrLCBvciAoMykgYXJyYW5nZSwgaW4gYSBtYW5uZXIKY29uc2lzdGVudCB3aXRoIHRoZSByZXF1aXJlbWVudHMgb2YgdGhpcyBMaWNlbnNlLCB0byBleHRlbmQgdGhlIHBhdGVudApsaWNlbnNlIHRvIGRvd25zdHJlYW0gcmVjaXBpZW50cy4gICJLbm93aW5nbHkgcmVseWluZyIgbWVhbnMgeW91IGhhdmUKYWN0dWFsIGtub3dsZWRnZSB0aGF0LCBidXQgZm9yIHRoZSBwYXRlbnQgbGljZW5zZSwgeW91ciBjb252ZXlpbmcgdGhlCmNvdmVyZWQgd29yayBpbiBhIGNvdW50cnksIG9yIHlvdXIgcmVjaXBpZW50J3MgdXNlIG9mIHRoZSBjb3ZlcmVkIHdvcmsKaW4gYSBjb3VudHJ5LCB3b3VsZCBpbmZyaW5nZSBvbmUgb3IgbW9yZSBpZGVudGlmaWFibGUgcGF0ZW50cyBpbiB0aGF0CmNvdW50cnkgdGhhdCB5b3UgaGF2ZSByZWFzb24gdG8gYmVsaWV2ZSBhcmUgdmFsaWQuCgogIElmLCBwdXJzdWFudCB0byBvciBpbiBjb25uZWN0aW9uIHdpdGggYSBzaW5nbGUgdHJhbnNhY3Rpb24gb3IKYXJyYW5nZW1lbnQsIHlvdSBjb252ZXksIG9yIHByb3BhZ2F0ZSBieSBwcm9jdXJpbmcgY29udmV5YW5jZSBvZiwgYQpjb3ZlcmVkIHdvcmssIGFuZCBncmFudCBhIHBhdGVudCBsaWNlbnNlIHRvIHNvbWUgb2YgdGhlIHBhcnRpZXMKcmVjZWl2aW5nIHRoZSBjb3ZlcmVkIHdvcmsgYXV0aG9yaXppbmcgdGhlbSB0byB1c2UsIHByb3BhZ2F0ZSwgbW9kaWZ5Cm9yIGNvbnZleSBhIHNwZWNpZmljIGNvcHkgb2YgdGhlIGNvdmVyZWQgd29yaywgdGhlbiB0aGUgcGF0ZW50IGxpY2Vuc2UKeW91IGdyYW50IGlzIGF1dG9tYXRpY2FsbHkgZXh0ZW5kZWQgdG8gYWxsIHJlY2lwaWVudHMgb2YgdGhlIGNvdmVyZWQKd29yayBhbmQgd29ya3MgYmFzZWQgb24gaXQuCgogIEEgcGF0ZW50IGxpY2Vuc2UgaXMgImRpc2NyaW1pbmF0b3J5IiBpZiBpdCBkb2VzIG5vdCBpbmNsdWRlIHdpdGhpbgp0aGUgc2NvcGUgb2YgaXRzIGNvdmVyYWdlLCBwcm9oaWJpdHMgdGhlIGV4ZXJjaXNlIG9mLCBvciBpcwpjb25kaXRpb25lZCBvbiB0aGUgbm9uLWV4ZXJjaXNlIG9mIG9uZSBvciBtb3JlIG9mIHRoZSByaWdodHMgdGhhdCBhcmUKc3BlY2lmaWNhbGx5IGdyYW50ZWQgdW5kZXIgdGhpcyBMaWNlbnNlLiAgWW91IG1heSBub3QgY29udmV5IGEgY292ZXJlZAp3b3JrIGlmIHlvdSBhcmUgYSBwYXJ0eSB0byBhbiBhcnJhbmdlbWVudCB3aXRoIGEgdGhpcmQgcGFydHkgdGhhdCBpcwppbiB0aGUgYnVzaW5lc3Mgb2YgZGlzdHJpYnV0aW5nIHNvZnR3YXJlLCB1bmRlciB3aGljaCB5b3UgbWFrZSBwYXltZW50CnRvIHRoZSB0aGlyZCBwYXJ0eSBiYXNlZCBvbiB0aGUgZXh0ZW50IG9mIHlvdXIgYWN0aXZpdHkgb2YgY29udmV5aW5nCnRoZSB3b3JrLCBhbmQgdW5kZXIgd2hpY2ggdGhlIHRoaXJkIHBhcnR5IGdyYW50cywgdG8gYW55IG9mIHRoZQpwYXJ0aWVzIHdobyB3b3VsZCByZWNlaXZlIHRoZSBjb3ZlcmVkIHdvcmsgZnJvbSB5b3UsIGEgZGlzY3JpbWluYXRvcnkKcGF0ZW50IGxpY2Vuc2UgKGEpIGluIGNvbm5lY3Rpb24gd2l0aCBjb3BpZXMgb2YgdGhlIGNvdmVyZWQgd29yawpjb252ZXllZCBieSB5b3UgKG9yIGNvcGllcyBtYWRlIGZyb20gdGhvc2UgY29waWVzKSwgb3IgKGIpIHByaW1hcmlseQpmb3IgYW5kIGluIGNvbm5lY3Rpb24gd2l0aCBzcGVjaWZpYyBwcm9kdWN0cyBvciBjb21waWxhdGlvbnMgdGhhdApjb250YWluIHRoZSBjb3ZlcmVkIHdvcmssIHVubGVzcyB5b3UgZW50ZXJlZCBpbnRvIHRoYXQgYXJyYW5nZW1lbnQsCm9yIHRoYXQgcGF0ZW50IGxpY2Vuc2Ugd2FzIGdyYW50ZWQsIHByaW9yIHRvIDI4IE1hcmNoIDIwMDcuCgogIE5vdGhpbmcgaW4gdGhpcyBMaWNlbnNlIHNoYWxsIGJlIGNvbnN0cnVlZCBhcyBleGNsdWRpbmcgb3IgbGltaXRpbmcKYW55IGltcGxpZWQgbGljZW5zZSBvciBvdGhlciBkZWZlbnNlcyB0byBpbmZyaW5nZW1lbnQgdGhhdCBtYXkKb3RoZXJ3aXNlIGJlIGF2YWlsYWJsZSB0byB5b3UgdW5kZXIgYXBwbGljYWJsZSBwYXRlbnQgbGF3LgoKICAxMi4gTm8gU3VycmVuZGVyIG9mIE90aGVycycgRnJlZWRvbS4KCiAgSWYgY29uZGl0aW9ucyBhcmUgaW1wb3NlZCBvbiB5b3UgKHdoZXRoZXIgYnkgY291cnQgb3JkZXIsIGFncmVlbWVudCBvcgpvdGhlcndpc2UpIHRoYXQgY29udHJhZGljdCB0aGUgY29uZGl0aW9ucyBvZiB0aGlzIExpY2Vuc2UsIHRoZXkgZG8gbm90CmV4Y3VzZSB5b3UgZnJvbSB0aGUgY29uZGl0aW9ucyBvZiB0aGlzIExpY2Vuc2UuICBJZiB5b3UgY2Fubm90IGNvbnZleSBhCmNvdmVyZWQgd29yayBzbyBhcyB0byBzYXRpc2Z5IHNpbXVsdGFuZW91c2x5IHlvdXIgb2JsaWdhdGlvbnMgdW5kZXIgdGhpcwpMaWNlbnNlIGFuZCBhbnkgb3RoZXIgcGVydGluZW50IG9ibGlnYXRpb25zLCB0aGVuIGFzIGEgY29uc2VxdWVuY2UgeW91IG1heQpub3QgY29udmV5IGl0IGF0IGFsbC4gIEZvciBleGFtcGxlLCBpZiB5b3UgYWdyZWUgdG8gdGVybXMgdGhhdCBvYmxpZ2F0ZSB5b3UKdG8gY29sbGVjdCBhIHJveWFsdHkgZm9yIGZ1cnRoZXIgY29udmV5aW5nIGZyb20gdGhvc2UgdG8gd2hvbSB5b3UgY29udmV5CnRoZSBQcm9ncmFtLCB0aGUgb25seSB3YXkgeW91IGNvdWxkIHNhdGlzZnkgYm90aCB0aG9zZSB0ZXJtcyBhbmQgdGhpcwpMaWNlbnNlIHdvdWxkIGJlIHRvIHJlZnJhaW4gZW50aXJlbHkgZnJvbSBjb252ZXlpbmcgdGhlIFByb2dyYW0uCgogIDEzLiBVc2Ugd2l0aCB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLgoKICBOb3R3aXRoc3RhbmRpbmcgYW55IG90aGVyIHByb3Zpc2lvbiBvZiB0aGlzIExpY2Vuc2UsIHlvdSBoYXZlCnBlcm1pc3Npb24gdG8gbGluayBvciBjb21iaW5lIGFueSBjb3ZlcmVkIHdvcmsgd2l0aCBhIHdvcmsgbGljZW5zZWQKdW5kZXIgdmVyc2lvbiAzIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaW50byBhIHNpbmdsZQpjb21iaW5lZCB3b3JrLCBhbmQgdG8gY29udmV5IHRoZSByZXN1bHRpbmcgd29yay4gIFRoZSB0ZXJtcyBvZiB0aGlzCkxpY2Vuc2Ugd2lsbCBjb250aW51ZSB0byBhcHBseSB0byB0aGUgcGFydCB3aGljaCBpcyB0aGUgY292ZXJlZCB3b3JrLApidXQgdGhlIHNwZWNpYWwgcmVxdWlyZW1lbnRzIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsCnNlY3Rpb24gMTMsIGNvbmNlcm5pbmcgaW50ZXJhY3Rpb24gdGhyb3VnaCBhIG5ldHdvcmsgd2lsbCBhcHBseSB0byB0aGUKY29tYmluYXRpb24gYXMgc3VjaC4KCiAgMTQuIFJldmlzZWQgVmVyc2lvbnMgb2YgdGhpcyBMaWNlbnNlLgoKICBUaGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIG1heSBwdWJsaXNoIHJldmlzZWQgYW5kL29yIG5ldyB2ZXJzaW9ucyBvZgp0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZnJvbSB0aW1lIHRvIHRpbWUuICBTdWNoIG5ldyB2ZXJzaW9ucyB3aWxsCmJlIHNpbWlsYXIgaW4gc3Bpcml0IHRvIHRoZSBwcmVzZW50IHZlcnNpb24sIGJ1dCBtYXkgZGlmZmVyIGluIGRldGFpbCB0bwphZGRyZXNzIG5ldyBwcm9ibGVtcyBvciBjb25jZXJucy4KCiAgRWFjaCB2ZXJzaW9uIGlzIGdpdmVuIGEgZGlzdGluZ3Vpc2hpbmcgdmVyc2lvbiBudW1iZXIuICBJZiB0aGUKUHJvZ3JhbSBzcGVjaWZpZXMgdGhhdCBhIGNlcnRhaW4gbnVtYmVyZWQgdmVyc2lvbiBvZiB0aGUgR05VIEdlbmVyYWwKUHVibGljIExpY2Vuc2UgIm9yIGFueSBsYXRlciB2ZXJzaW9uIiBhcHBsaWVzIHRvIGl0LCB5b3UgaGF2ZSB0aGUKb3B0aW9uIG9mIGZvbGxvd2luZyB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZWl0aGVyIG9mIHRoYXQgbnVtYmVyZWQKdmVyc2lvbiBvciBvZiBhbnkgbGF0ZXIgdmVyc2lvbiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKRm91bmRhdGlvbi4gIElmIHRoZSBQcm9ncmFtIGRvZXMgbm90IHNwZWNpZnkgYSB2ZXJzaW9uIG51bWJlciBvZiB0aGUKR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsIHlvdSBtYXkgY2hvb3NlIGFueSB2ZXJzaW9uIGV2ZXIgcHVibGlzaGVkCmJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCgogIElmIHRoZSBQcm9ncmFtIHNwZWNpZmllcyB0aGF0IGEgcHJveHkgY2FuIGRlY2lkZSB3aGljaCBmdXR1cmUKdmVyc2lvbnMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGNhbiBiZSB1c2VkLCB0aGF0IHByb3h5J3MKcHVibGljIHN0YXRlbWVudCBvZiBhY2NlcHRhbmNlIG9mIGEgdmVyc2lvbiBwZXJtYW5lbnRseSBhdXRob3JpemVzIHlvdQp0byBjaG9vc2UgdGhhdCB2ZXJzaW9uIGZvciB0aGUgUHJvZ3JhbS4KCiAgTGF0ZXIgbGljZW5zZSB2ZXJzaW9ucyBtYXkgZ2l2ZSB5b3UgYWRkaXRpb25hbCBvciBkaWZmZXJlbnQKcGVybWlzc2lvbnMuICBIb3dldmVyLCBubyBhZGRpdGlvbmFsIG9ibGlnYXRpb25zIGFyZSBpbXBvc2VkIG9uIGFueQphdXRob3Igb3IgY29weXJpZ2h0IGhvbGRlciBhcyBhIHJlc3VsdCBvZiB5b3VyIGNob29zaW5nIHRvIGZvbGxvdyBhCmxhdGVyIHZlcnNpb24uCgogIDE1LiBEaXNjbGFpbWVyIG9mIFdhcnJhbnR5LgoKICBUSEVSRSBJUyBOTyBXQVJSQU5UWSBGT1IgVEhFIFBST0dSQU0sIFRPIFRIRSBFWFRFTlQgUEVSTUlUVEVEIEJZCkFQUExJQ0FCTEUgTEFXLiAgRVhDRVBUIFdIRU4gT1RIRVJXSVNFIFNUQVRFRCBJTiBXUklUSU5HIFRIRSBDT1BZUklHSFQKSE9MREVSUyBBTkQvT1IgT1RIRVIgUEFSVElFUyBQUk9WSURFIFRIRSBQUk9HUkFNICJBUyBJUyIgV0lUSE9VVCBXQVJSQU5UWQpPRiBBTlkgS0lORCwgRUlUSEVSIEVYUFJFU1NFRCBPUiBJTVBMSUVELCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgpQVVJQT1NFLiAgVEhFIEVOVElSRSBSSVNLIEFTIFRPIFRIRSBRVUFMSVRZIEFORCBQRVJGT1JNQU5DRSBPRiBUSEUgUFJPR1JBTQpJUyBXSVRIIFlPVS4gIFNIT1VMRCBUSEUgUFJPR1JBTSBQUk9WRSBERUZFQ1RJVkUsIFlPVSBBU1NVTUUgVEhFIENPU1QgT0YKQUxMIE5FQ0VTU0FSWSBTRVJWSUNJTkcsIFJFUEFJUiBPUiBDT1JSRUNUSU9OLgoKICAxNi4gTGltaXRhdGlvbiBvZiBMaWFiaWxpdHkuCgogIElOIE5PIEVWRU5UIFVOTEVTUyBSRVFVSVJFRCBCWSBBUFBMSUNBQkxFIExBVyBPUiBBR1JFRUQgVE8gSU4gV1JJVElORwpXSUxMIEFOWSBDT1BZUklHSFQgSE9MREVSLCBPUiBBTlkgT1RIRVIgUEFSVFkgV0hPIE1PRElGSUVTIEFORC9PUiBDT05WRVlTClRIRSBQUk9HUkFNIEFTIFBFUk1JVFRFRCBBQk9WRSwgQkUgTElBQkxFIFRPIFlPVSBGT1IgREFNQUdFUywgSU5DTFVESU5HIEFOWQpHRU5FUkFMLCBTUEVDSUFMLCBJTkNJREVOVEFMIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBBUklTSU5HIE9VVCBPRiBUSEUKVVNFIE9SIElOQUJJTElUWSBUTyBVU0UgVEhFIFBST0dSQU0gKElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gTE9TUyBPRgpEQVRBIE9SIERBVEEgQkVJTkcgUkVOREVSRUQgSU5BQ0NVUkFURSBPUiBMT1NTRVMgU1VTVEFJTkVEIEJZIFlPVSBPUiBUSElSRApQQVJUSUVTIE9SIEEgRkFJTFVSRSBPRiBUSEUgUFJPR1JBTSBUTyBPUEVSQVRFIFdJVEggQU5ZIE9USEVSIFBST0dSQU1TKSwKRVZFTiBJRiBTVUNIIEhPTERFUiBPUiBPVEhFUiBQQVJUWSBIQVMgQkVFTiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgpTVUNIIERBTUFHRVMuCgogIDE3LiBJbnRlcnByZXRhdGlvbiBvZiBTZWN0aW9ucyAxNSBhbmQgMTYuCgogIElmIHRoZSBkaXNjbGFpbWVyIG9mIHdhcnJhbnR5IGFuZCBsaW1pdGF0aW9uIG9mIGxpYWJpbGl0eSBwcm92aWRlZAphYm92ZSBjYW5ub3QgYmUgZ2l2ZW4gbG9jYWwgbGVnYWwgZWZmZWN0IGFjY29yZGluZyB0byB0aGVpciB0ZXJtcywKcmV2aWV3aW5nIGNvdXJ0cyBzaGFsbCBhcHBseSBsb2NhbCBsYXcgdGhhdCBtb3N0IGNsb3NlbHkgYXBwcm94aW1hdGVzCmFuIGFic29sdXRlIHdhaXZlciBvZiBhbGwgY2l2aWwgbGlhYmlsaXR5IGluIGNvbm5lY3Rpb24gd2l0aCB0aGUKUHJvZ3JhbSwgdW5sZXNzIGEgd2FycmFudHkgb3IgYXNzdW1wdGlvbiBvZiBsaWFiaWxpdHkgYWNjb21wYW5pZXMgYQpjb3B5IG9mIHRoZSBQcm9ncmFtIGluIHJldHVybiBmb3IgYSBmZWUuCgogICAgICAgICAgICAgICAgICAgICBFTkQgT0YgVEVSTVMgQU5EIENPTkRJVElPTlMKCiAgICAgICAgICAgIEhvdyB0byBBcHBseSBUaGVzZSBUZXJtcyB0byBZb3VyIE5ldyBQcm9ncmFtcwoKICBJZiB5b3UgZGV2ZWxvcCBhIG5ldyBwcm9ncmFtLCBhbmQgeW91IHdhbnQgaXQgdG8gYmUgb2YgdGhlIGdyZWF0ZXN0CnBvc3NpYmxlIHVzZSB0byB0aGUgcHVibGljLCB0aGUgYmVzdCB3YXkgdG8gYWNoaWV2ZSB0aGlzIGlzIHRvIG1ha2UgaXQKZnJlZSBzb2Z0d2FyZSB3aGljaCBldmVyeW9uZSBjYW4gcmVkaXN0cmlidXRlIGFuZCBjaGFuZ2UgdW5kZXIgdGhlc2UgdGVybXMuCgogIFRvIGRvIHNvLCBhdHRhY2ggdGhlIGZvbGxvd2luZyBub3RpY2VzIHRvIHRoZSBwcm9ncmFtLiAgSXQgaXMgc2FmZXN0CnRvIGF0dGFjaCB0aGVtIHRvIHRoZSBzdGFydCBvZiBlYWNoIHNvdXJjZSBmaWxlIHRvIG1vc3QgZWZmZWN0aXZlbHkKc3RhdGUgdGhlIGV4Y2x1c2lvbiBvZiB3YXJyYW50eTsgYW5kIGVhY2ggZmlsZSBzaG91bGQgaGF2ZSBhdCBsZWFzdAp0aGUgImNvcHlyaWdodCIgbGluZSBhbmQgYSBwb2ludGVyIHRvIHdoZXJlIHRoZSBmdWxsIG5vdGljZSBpcyBmb3VuZC4KCiAgICA8b25lIGxpbmUgdG8gZ2l2ZSB0aGUgcHJvZ3JhbSdzIG5hbWUgYW5kIGEgYnJpZWYgaWRlYSBvZiB3aGF0IGl0IGRvZXMuPgogICAgQ29weXJpZ2h0IChDKSA8eWVhcj4gIDxuYW1lIG9mIGF1dGhvcj4KCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQogICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCiAgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgoKICAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCgogICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKICAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgoKQWxzbyBhZGQgaW5mb3JtYXRpb24gb24gaG93IHRvIGNvbnRhY3QgeW91IGJ5IGVsZWN0cm9uaWMgYW5kIHBhcGVyIG1haWwuCgogIElmIHRoZSBwcm9ncmFtIGRvZXMgdGVybWluYWwgaW50ZXJhY3Rpb24sIG1ha2UgaXQgb3V0cHV0IGEgc2hvcnQKbm90aWNlIGxpa2UgdGhpcyB3aGVuIGl0IHN0YXJ0cyBpbiBhbiBpbnRlcmFjdGl2ZSBtb2RlOgoKICAgIDxwcm9ncmFtPiAgQ29weXJpZ2h0IChDKSA8eWVhcj4gIDxuYW1lIG9mIGF1dGhvcj4KICAgIFRoaXMgcHJvZ3JhbSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFk7IGZvciBkZXRhaWxzIHR5cGUgYHNob3cgdycuCiAgICBUaGlzIGlzIGZyZWUgc29mdHdhcmUsIGFuZCB5b3UgYXJlIHdlbGNvbWUgdG8gcmVkaXN0cmlidXRlIGl0CiAgICB1bmRlciBjZXJ0YWluIGNvbmRpdGlvbnM7IHR5cGUgYHNob3cgYycgZm9yIGRldGFpbHMuCgpUaGUgaHlwb3RoZXRpY2FsIGNvbW1hbmRzIGBzaG93IHcnIGFuZCBgc2hvdyBjJyBzaG91bGQgc2hvdyB0aGUgYXBwcm9wcmlhdGUKcGFydHMgb2YgdGhlIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuICBPZiBjb3Vyc2UsIHlvdXIgcHJvZ3JhbSdzIGNvbW1hbmRzCm1pZ2h0IGJlIGRpZmZlcmVudDsgZm9yIGEgR1VJIGludGVyZmFjZSwgeW91IHdvdWxkIHVzZSBhbiAiYWJvdXQgYm94Ii4KCiAgWW91IHNob3VsZCBhbHNvIGdldCB5b3VyIGVtcGxveWVyIChpZiB5b3Ugd29yayBhcyBhIHByb2dyYW1tZXIpIG9yIHNjaG9vbCwKaWYgYW55LCB0byBzaWduIGEgImNvcHlyaWdodCBkaXNjbGFpbWVyIiBmb3IgdGhlIHByb2dyYW0sIGlmIG5lY2Vzc2FyeS4KRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gdGhpcywgYW5kIGhvdyB0byBhcHBseSBhbmQgZm9sbG93IHRoZSBHTlUgR1BMLCBzZWUKPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgoKICBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZG9lcyBub3QgcGVybWl0IGluY29ycG9yYXRpbmcgeW91ciBwcm9ncmFtCmludG8gcHJvcHJpZXRhcnkgcHJvZ3JhbXMuICBJZiB5b3VyIHByb2dyYW0gaXMgYSBzdWJyb3V0aW5lIGxpYnJhcnksIHlvdQptYXkgY29uc2lkZXIgaXQgbW9yZSB1c2VmdWwgdG8gcGVybWl0IGxpbmtpbmcgcHJvcHJpZXRhcnkgYXBwbGljYXRpb25zIHdpdGgKdGhlIGxpYnJhcnkuICBJZiB0aGlzIGlzIHdoYXQgeW91IHdhbnQgdG8gZG8sIHVzZSB0aGUgR05VIExlc3NlciBHZW5lcmFsClB1YmxpYyBMaWNlbnNlIGluc3RlYWQgb2YgdGhpcyBMaWNlbnNlLiAgQnV0IGZpcnN0LCBwbGVhc2UgcmVhZAo8aHR0cDovL3d3dy5nbnUub3JnL3BoaWxvc29waHkvd2h5LW5vdC1sZ3BsLmh0bWw+Lgo=]]></data>
	</file>
	<file>
	  <filename>/function.form_template_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFJCU1dvcmxkUGF5IChjKSAyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIHByb3ZpZGUgdGhlIGFiaWxpdHkgdG8gcHJvY2VzcwojICBwYXltZW50cyBtYWRlIHVzaW5nIHRoZSBFLWNvbW1lcmNlIHN1aXRlIHRocm91Z2ggUkJTIFdvcmxkcGF5CiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKZWNobyAkdGhpcy0+R2V0U2luZ2xlVGVtcGxhdGVGb3JtKCR0aGlzLCRpZCwkcmV0dXJuaWQsJ2Zvcm1fdGVtcGxhdGUnLAoJCQkJICAndGVtcGxhdGUnLAoJCQkJICAkdGhpcy0+TGFuZygnZm9ybV90ZW1wbGF0ZScpLAoJCQkJICAnb3JpZ19mb3JtX3RlbXBsYXRlLnRwbCcpOwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/function.prefs_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFJCU1dvcmxkUGF5IChjKSAyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIHByb3ZpZGUgdGhlIGFiaWxpdHkgdG8gcHJvY2VzcwojICBwYXltZW50cyBtYWRlIHVzaW5nIHRoZSBFLWNvbW1lcmNlIHN1aXRlIHRocm91Z2ggUkJTIFdvcmxkcGF5CiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKJHByZXR0eV91cmwgPSAkdGhpcy0+R2V0TmFtZSgpLicvbm90aWZ5JzsKJHRoZV9yZXR1cm5pZCA9ICRnQ21zLT5HZXRDb250ZW50T3BlcmF0aW9ucygpLT5HZXREZWZhdWx0Q29udGVudCgpOwokbm90aWZ5X3VybCA9ICR0aGlzLT5DcmVhdGVVUkwoJGlkLCdub3RpZnknLCR0aGVfcmV0dXJuaWQsYXJyYXkoKSxmYWxzZSwkcHJldHR5X3VybCk7CiRzbWFydHktPmFzc2lnbignbm90aWZ5X3VybCcsJG5vdGlmeV91cmwpOwoKJHNtYXJ0eS0+YXNzaWduKCdmb3Jtc3RhcnQnLAoJCSR0aGlzLT5DR0NyZWF0ZUZvcm1TdGFydCgkaWQsJ2FkbWluX3NhdmVwcmVmcycsJHJldHVybmlkKSk7CiRzbWFydHktPmFzc2lnbignZm9ybWVuZCcsJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CiRzbWFydHktPmFzc2lnbignaW5zdGFsbGF0aW9uX2lkJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaW5zdGFsbGF0aW9uX2lkJykpOwokc21hcnR5LT5hc3NpZ24oJ3Byb2RfbW9kZScsJHRoaXMtPkdldFByZWZlcmVuY2UoJ3Byb2RfbW9kZScsMCkpOwokc21hcnR5LT5hc3NpZ24oJ3Rlc3RfcGFyYW0nLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCd0ZXN0X3BhcmFtJywxKSk7CiRvcHRzID0gYXJyYXkoJzAnPT4kdGhpcy0+TGFuZygnbm8nKSwKCSAgICAgICcxJz0+JHRoaXMtPkxhbmcoJ3llcycpKTsKJHNtYXJ0eS0+YXNzaWduKCd5ZXNubycsJG9wdHMpOwokdGVzdF9vcHRzID0gYXJyYXkoKTsKJHRlc3Rfb3B0c1snMCddID0gJHRoaXMtPkxhbmcoJ3Rlc3Rfbm9uZScpOwokdGVzdF9vcHRzWydSRUZVU0VEJ10gPSAkdGhpcy0+TGFuZygndGVzdF9yZWZ1c2VkJyk7CiR0ZXN0X29wdHNbJ0FVVEhPUklaRUQnXSA9ICR0aGlzLT5MYW5nKCd0ZXN0X2F1dGhvcml6ZWQnKTsKJHRlc3Rfb3B0c1snRVJST1InXSA9ICR0aGlzLT5MYW5nKCd0ZXN0X2Vycm9yJyk7CiR0ZXN0X29wdHNbJ0NBUFRVUkVEJ10gPSAkdGhpcy0+TGFuZygndGVzdF9jYXB0dXJlZCcpOwokc21hcnR5LT5hc3NpZ24oJ3Rlc3Rfb3B0cycsJHRlc3Rfb3B0cyk7CiR0aW1lX29wdHMgPSBhcnJheSgpOwokdGltZV9vcHRzWy0xXSA9ICR0aGlzLT5MYW5nKCd0aW1lX3VubGltaXRlZCcpOwokdGltZV9vcHRzWzVdID0gJHRoaXMtPkxhbmcoJ3RpbWVfNW0nKTsKJHRpbWVfb3B0c1sxNV0gPSAkdGhpcy0+TGFuZygndGltZV8xNW0nKTsKJHRpbWVfb3B0c1szMF0gPSAkdGhpcy0+TGFuZygndGltZV8zMG0nKTsKJHRpbWVfb3B0c1s2MF0gPSAkdGhpcy0+TGFuZygndGltZV82MG0nKTsKJHRpbWVfb3B0c1sxMjBdID0gJHRoaXMtPkxhbmcoJ3RpbWVfMTIwbScpOwokdGltZV9vcHRzWzM2MF0gPSAkdGhpcy0+TGFuZygndGltZV8zNjBtJyk7CiRzbWFydHktPmFzc2lnbigndGltZV9vcHRzJywkdGltZV9vcHRzKTsKJHNtYXJ0eS0+YXNzaWduKCd0aW1lbGltaXQnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCd0aW1lbGltaXQnLDYwKSk7CiRzbWFydHktPmFzc2lnbignc2VjcmV0JywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbWQ1c2VjcmV0JykpOwokc21hcnR5LT5hc3NpZ24oJ2NhbGxiYWNrcHcnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdjYWxsYmFja3B3JykpOwoKJG9mZnNldHMgPSBhcnJheSgpOwpmb3IoICRuID0gLTEyOyAkbiA8IDEzOyAkbisrICkKICB7CiAgICAkb2Zmc2V0c1skbl0gPSAkbjsKICB9CiRzbWFydHktPmFzc2lnbigndHpfb2Zmc2V0cycsJG9mZnNldHMpOwokc21hcnR5LT5hc3NpZ24oJ3R6b2Zmc2V0JywkdGhpcy0+R2V0UHJlZmVyZW5jZSgndHpvZmZzZXQnLDApKTsKJHNtYXJ0eS0+YXNzaWduKCdhbGxvd19zdWJzY3InLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdhbGxvd19zdWJzY3InLDApKTsKCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgncHJlZnNfdGFiLnRwbCcpOwojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/function.return_template_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFJCU1dvcmxkUGF5IChjKSAyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIHByb3ZpZGUgdGhlIGFiaWxpdHkgdG8gcHJvY2VzcwojICBwYXltZW50cyBtYWRlIHVzaW5nIHRoZSBFLWNvbW1lcmNlIHN1aXRlIHRocm91Z2ggUkJTIFdvcmxkcGF5CiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKCiR0bXAgPSAkdGhpcy0+R2V0U2luZ2xlVGVtcGxhdGVGb3JtKCR0aGlzLCRpZCwkcmV0dXJuaWQsJ3JldHVybl90ZW1wbGF0ZScsCgkJCQkgICAgJ3JldHVybl90ZW1wbGF0ZScsCgkJCQkgICAgJHRoaXMtPkxhbmcoJ3JldHVybl90ZW1wbGF0ZScpLAoJCQkJICAgICdvcmlnX3JldHVybl90ZW1wbGF0ZS50cGwnLAoJCQkJICAgICR0aGlzLT5MYW5nKCdpbmZvX3JldHVybl90ZW1wbGF0ZScpKTsKZWNobyAkdG1wOwoKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/images/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/images/AMEX.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhKwAoALMAAOz28sfb47DN3Z/F2Iu8y4OmxW+nwV2avE2VtEKOszSIqyF4owtumwBmmQVZkwAAACH5BAQUAP8ALAAAAAArACgAAAT/8MlJq70Yj827/2DoSUNjnmiqrixKtnAMv3Jt03be4nrvPiWf0MQb6orGGzDpQzJjzuduuVAsGNVFg2FdeL9f7DUbznK1DZIiMBC43YqNgC2nt930eTvwxivSQAMHDggAgwYBBA4KBAwJCAQGCwiTBgcCXJaEAAkOBAALAQmAbAsGDAEIDqEKiwQNBASpCAIJCwcJuQCYpwEKWJi1gACnCA0GCQcKVggKBQ0ItKd/B8gKBsQOB8fOlAzCEgELCQQJDA4FigcEC68GsggHxAq4pwcMCAW2DgMBDg7gHgQoEABRgUvEAgwMcKChHDcE3AAgcIAgIksBJh4QRYqAqnwF2wpAikcgpMmQCd6FjIbSQQKT1wqcAjTAwYl/Nhno1Nng385zDnaeELpFZ04GTtZ4IOeGQ1OnUOV0cEJrXDMFE70sUyCgma1I4y5dNVCgSgKqjQhsqMLgFKJJtwQsy7Xh1ToBXgoMQNvgUaJFoMYxIPBLi0xHl5TdKmcFLQO9xfC1lWhKlIJmavkMuMJmG1W5WxER5kqYYb8B+ZYhQK2AXIFlB5IK6NDIwGy5sNzYfnpnQLrZAwhEkbJiOPEUxo+fSK6cZnMoS55PCSK9ePTqKpgr1348g/fv4CVEAAA7]]></data>
	</file>
	<file>
	  <filename>/images/badge_pill_white.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/images/diners.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/images/ELV.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhKAAoAMQAAP////7x7vDw8P/e1c7s9eDh4f/Kva7f7szMzP6ynJLQ6P2bhHfJ5LGxsVq42/5zUJKSknGdq4F1oX19fWWEj/1LIwCZzEh/kv8zAACMxv8jADBuhAJ7rQRbgBkZGQAAACH5BAUUABIALAAAAAAoACgAAAX/oCQJhGKeaKquKSGO5kHMdG3fOO04igSYgKBwSCwaiw5O48AgHJ9Qo4BzcTCi2KigEOnwsuDiFtG1BgmymgxQQLgRBcDAQDcEinM62XsFMDIWgYJXEB4fhxAACxoYGBUJRAYVjQt7Zn6AghYZhIeIAAYYGqMLRA+jFW5lfX+am4SGnwAVjBgPd0EBpxoJbatBrZqcAIWeiQCnjRUDQpKjA758wJmCw8WyCbXLQgmiy9GXwRYMB2vXH8cDtRiQQQuiD2O/mIIHQ+fHAbSND7m7C/Kk0QtkTwg+IYv4BXHGLmA4ak4MxkLHTRuzbhqWOWRFbYcCAcQmHpNDKyOkRRoe/wzYOE2YAycH/dWCtOtWAHAcXcIUKURXrQUD9kFiOTBQhpchjQ3pxi/BPgMAiIrbhDRmkAGNHD3wBlUqtUBVeQoJug7eHa/17onNlTArryBoCapVurTs26g4W8oFmRSRgL8Ls2ZtF9eCFQf2znmYwFhmo5S4CmeY7KCvp0OOzcLNW9QorMuHPHATXGqzpZzCPoMWHRgVVNPzpr6y7Ik1yVEqhXidzPsogAmgPfX8N4QoAQYpyAFAAIGx8wkj5SRIwEw35zDYHSrAzp1o1L/gw4sfT/5vGwQUOjCwcGDMm/fw48uH36BBhw0CJiOoz7+///8A+gfBBh1QIEEDHHRwAScFDDbo4IMQRsjgBR0o+AIEFFao4YYcdujhhhsY+MKIJJZo4oknhgAAOw==]]></data>
	</file>
	<file>
	  <filename>/images/icon.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/images/JCB.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/images/mastercard.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhPgAoALMAAP758NfZ3aqywu2ZA5Wbo7x2gc57CnGBmtE/KFdmh21ZRsUAJn0NNgYjUgYXSA4ODiwAAAAAPgAoAAAI/gAfCBxIsKDBgwgTKkRIoKHDhxAjSpxIsSJEgQQcNNjIsaPHjx0diBw5cqNGkCg7HsCYsqXLlzA5rnxAIKbNmzBn1oR50mPPBiV9kuQpk2VMBwySMvgJU4FTBTd1ukTKYIHVq1eTplRgwMCAr2AHdIXaUirKqljTqmXQkWvYt28NkAVp1idatXixsvUKt29YuXSNhsxLGCsCv4jfzi1K0+PdwoQRSOab2K8Bj3UbPIYM+XBlxJcZ79zIufDn02Dn1t1c2rDk1wgoowYbuoFZ1q0Le579d+PtBbCBS+Ysm3dl30atFgAAoMCCAMwREC4gALb12MuZA/hsAECAAVCl/jqwKoB5gewB0DuH3rx8gOfmFwiYX775efbbsxcYwJxAc/C2sTQefOmxV4ACBfgHQHkCHGgedAVAxwB0AUAnVlcN1VcfhfV9FZ6AVlVIAHTl3UehfwEgoMCCK3oH4YITbgeWABUyB6GFClgIoHgLMLCgfwIAaZ93DBzgnX8OCnDAAec1F+OMzQEJnQEWUinjh42Nt2KCAOQYQInu3eeddyumd1555Nn4ZXPQKWhAfdp5GGBjDSygQHUIMtDgnQEQoGSF6XnJwJ3eJUiAVQocUKEAXvp55358+hnhAMjRiZtVjyWVlXCxXXehV12F2tVXovIVWl254WXcaWStlipnfLutqppgmr3qGmyr0jYrnRzZilVxuQIo2keX5gbsbIvNOVpHxUI2aLC1qURrSM3ixVYDbs0GWGC8gqQpZ0t5lG1i26KUWUpKaZouUx85VapcyZo7LU700ntuvfjGdG++/Ka0b78AS0vTkgQXbPDBCCes8MIGL+TwwxA/HBAAOw==]]></data>
	</file>
	<file>
	  <filename>/images/SOLO.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhKAAyALMAAP////Hj8eHD4dKm0sKEwrVqta1araNGo6EzkpkzmZQplP8AAHQndF0gXSwPLAAAACH5BAUUAAsALAAAAAAoADIAAAT/cK2Dqr04ay1XUkkojmRpmspSgGfrtsrBvt9c2y4iv0pMCIKAUDAw1F463Aj0Gw6eg6BwsGslTwrC1Njrgg4FAUDwOV1NAwC1B0toAyvTWRQTypSoRJqgnIcOAQJVNHQEAHwkfgmBbIQkWQBxInMKAwGDJgwNDpwNDEuWg2cKBQAGeAkHDA+srawOnyKMk4OzJw2uuayxCgYBpyFXpKZ4B7itnZyuvEQswlGoq6+xItIPDSHDwGdwqA6tMSSqDjiHIEm9l1it2I4JQOd3li3WqCjzCehRLccOSwdF8JAKEOwOvFuvRvgaI9DXgXwGBURLmK0UAGIl0j1EdxBFK2qL/y4ielRAnT4yLb7BGiHGXEYtBXvApEeORMuRoFCiAwTMEaCLkkgEGBCPhQCcZbAYuviwxIFIRT9oafrBgICg2RaqUZKFYMw/LocB6OZFKwBMskaOwpfA4kUiBH5cFMmVLUQbQ0F0nct3LtKsLr8CRtSrZd+rXAENSIQJkqReUYAMWMF1kdcRiiARZTGj0SNfgnAokqrmDg9IZPqgzRokoOcbB94QsLI6296jBg7oPmCggKXS9kYvaRtFiPFAR03TtkeHDW8DuY/QEA6jizvBKDxbT2o7eO0QBAYQkBE7YILoVcVTZYzqyY/ZQMQY+fWhZBCUJagHIFBAxpMeT5QkgksAwBComkBhBOELZVBIVFgXBuZXW1ypwBFFbL8AUUB/uD1hRm1hTJGKFEbER0ZJgayHWU8m6DaDiuLYkwJz17mQggQUbKDjjhwsEAEAOw==]]></data>
	</file>
	<file>
	  <filename>/images/VISA.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/images/visa_debit.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/lang/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/en_US.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0EKJGxhbmdbJ2FsbG93X3N1YnNjcmlwdGlvbnMnXSA9ICdBbGxvdyBTdWJzY3JpcHRpb25zJzsKCiNCCgoKI0MKJGxhbmdbJ2NhbGxiYWNrX3Bhc3N3b3JkJ10gPSAnUGF5bWVudCBSZXNwb25zZSBQYXNzd29yZCc7CiRsYW5nWydjbGlja190b19jb250aW51ZSddID0gJ0NsaWNrIG9uIHRoaXMgbGluayAob3IgdHlwZSBpdCBpbnRvIHlvdXIgYnJvd3NlciB3aW5kb3cpIHRvIGNvbnRpbnVlJzsKCiNECgoKI0UKJGxhbmdbJ2Vycm9yX2ludmFsaWRfYW1vdW50J10gPSAnQW4gaW5jb3JyZWN0IChvciBpbmNvbXBsZXRlKSBhbW91bnQgb2YgJXMgd2FzIGF1dGhvcml6ZWQgZm9yIG9yZGVyICVkJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRfY3VycmVuY3knXSA9ICdSZWNlaXZlZCBhdXRoZW50aWNhdGlvbiBpbiBpbnZhbGlkIGN1cnJlbmN5OiAlcyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkX25vdGlmaWNhdGlvbiddID0gJ1JlY2VpdmVkIGFuIGludmFsaWQgbm90aWZpY2F0aW9uJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRfb3JkZXJpZCddID0gJ0ludmFsaWQgT3JkZXIgSWQnOwokbGFuZ1snZXJyb3JfcGF5bWVudF9kZWNsaW5lZCddID0gJ1RoZSBwYXltZW50IGhhcyBiZWVuIGRlY2xpbmVkJzsKCiNGCiRsYW5nWydmb3JtX3RlbXBsYXRlJ10gPSAnRm9ybSBUZW1wbGF0ZSc7CiRsYW5nWydmcmllbmRseW5hbWUnXSA9ICdSQlMgV29ybGRwYXkgUGF5bWVudCBHYXRld2F5JzsKCiNHCgoKI0gKJGxhbmdbJ2hlbHAnXSA9IDw8PEVPVApUT0RPCkVPVDsKCiNJCiRsYW5nWydpbmZvX2FjY2VwdGVkX3BheW1lbnQnXSA9ICdBY2NlcHRlZCBwYXltZW50IG9mICUuMmYnOwokbGFuZ1snaW5mb19jYW5jZWxsZWRfcGF5bWVudCddID0gJ09yZGVyIGNhbmNlbGxlZCc7CiRsYW5nWydpbmZvX2NsZWFyX2NhcnQnXSA9ICdTdWJtaXR0aW5nIHRoaXMgZm9ybSB3aWxsIGNsZWFyIHlvdXIgY2FydCBhbmQgcmVkaXJlY3QgeW91IHRvIHRoZSBSQlMgd29ybGRwYXkgc2l0ZSB0byBjb250aW51ZSB0aGUgcGF5bWVudCBwcm9jZXNzLic7CiRsYW5nWydpbmZvX3R6b2Zmc2V0J10gPSAnU3BlY2lmeSB0aGUgbnVtYmVyIG9mIGhvdXJzIGRpZmZlcmVuY2UgYmV0d2VlbiB5b3VyIHNlcnZlciBhbmQgdGhlIFJCUyBXb3JsZHBheSBTZXJ2ZXJzLiAgVGhpcyBpcyB1c2VkIGZvciB0aGUgdGltZSBsaW1pdGVkIHRyYW5zYWN0aW9uIHNlY3VyaXR5IG1lY2hhbmlzbS4gIFRoaXMgZnVuY3Rpb25hbGl0eSByZXF1aXJlcyB0aGUgYmNhZGQgYW5kIGJjbXVsdCBmdW5jdGlvbnMgaW4gUEhQLic7CiRsYW5nWydpbmZvX3Jic19zZXR0aW5ncyddID0gJ0luIFJCUyBXb3JsZHBheSBTZXR0aW5ncyBjb3B5IHRoZSBhYm92ZSB0ZXh0IGluaHRvIHRoZSAmcXVvdDtQYXltZW50IFJlc3BvbnNlIFVSTCZxdW90OyBmaWVsZC4gIEFkZGl0aW9uYWxseSwgZW5zdXJlIHRvIGNoZWNrIHRoZSAmcXVvdDtQYXltZW50IFJlc3BvbnNlIGVuYWJsZWQmcXVvdDsgYW5kICZxdW90O0VuYWJsZSB0aGUgU2hvcHBlciBSZXNwb25zZSZxdW90OyBjaGVja2JveGVzLic7CiRsYW5nWydpbmZvX3JldHVybl90ZW1wbGF0ZSddID0gJ1RoZSByZXR1cm4gdGVtcGxhdGUgaXMgdXNlZCB0byBnZW5lcmF0ZSBhIG1lc3NhZ2Ugd2l0aCBhIGxpbmsgdGhhdCB0aGUgY3VzdG9tZXIgY2FuIGNsaWNrIG9uIHRvIGNvbnRpbnVlIHNob3BwaW5nIG9uIHlvdXIgd2ViIHNpdGUnOwokbGFuZ1snaW5zdGFsbGF0aW9uX2lkJ10gPSAnUkJTIFdvcmxkcGF5IEluc3RhbGxhdGlvbiBJRCc7CgojSgoKCiNLCgoKI0wKCgojTQokbGFuZ1snbWQ1X3NlY3JldCddID0gJ01ENSBTZWNyZXQgS2V5JzsKJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnQSBQYXltZW50IGdhdGV3YXkgdG8gd29yayB3aXRoIENhbGd1eXMgRWNvbW1lcmNlIHN1aXRlIHRoYXQgaW50ZXJhY3RzIHdpdGggPGEgaHJlZj0iaHR0cDovL3d3dy5yYnN3b3JsZHBheS5jb20vIj5SQlMgV29ybGRQYXk8L2E+JzsKCiNOCiRsYW5nWydubyddID0gJ05vJzsKJGxhbmdbJ25vdGlmeV91cmwnXSA9ICdQYXltZW50IFJlc3BvbnNlIFVSTCc7CgojTwoKCiNQCiRsYW5nWydwcmVmZXJlbmNlcyddID0gJ1ByZWZlcmVuY2VzJzsKJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAnVGhlIFJCUyBXb3JsZHBheSBtb2R1bGUgaGFzIGJlZW4gaW5zdGFsbGVkLCBwbGVhc2UgY29uZmlndXJlIHRoZSBtb2R1bGUsIGFuZCBzZWxlY3QgaXQgYXMgYSBwYXltZW50IGdhdGV3YXkgd2l0aGluIHRoZSBDR0Vjb21tZXJjZUJhc2UgYWRtaW4gcGFuZWwnOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ1RoZSBSQlMgV29ybGRwYXkgbW9kdWxlIGNvbmZpZ3VyYXRpb24gaGFzIGJlZW4gdW5pbnN0YWxvbGVkLiAgWW91IG1heSBub3cgcmVtb3ZlIHRoZSBmaWxlcyc7CiRsYW5nWydwcm9kdWN0aW9uX21vZGUnXSA9ICdFbmFibGUgUHJvZHVjdGlvbiBNb2RlJzsKCiNRCgoKI1IKJGxhbmdbJ3JlYWxseV91bmluc3RhbGwnXSA9ICdBcmUgeW91IHN1cmUgeW91IHdvdWxkIGxpa2UgdG8gdW5pbnN0YWxsIHRoaXMgbW9kdWxlPyc7CiRsYW5nWydyZXR1cm5fdGVtcGxhdGUnXSA9ICdSZXR1cm4gVGVtcGxhdGUnOwoKI1MKJGxhbmdbJ3Nob3BwZXJfY2FuY2VsbGVkJ10gPSAnV2UgYXJlIHNvcnJ5IHRvIGhlYXJlIHRoYXQgeW91IGNhbmNlbGxlZCB0aGUgdHJhbnNhY3Rpb24uIFdlIGhvcGUgaXQgd2FzIGEgbWlub3IgaXNzdWUuICBJZiB5b3Ugd291bGQgbGlrZSB0byBjb250aW51ZSBzaG9wcGluZyBwbGVhc2UgY2xpY2sgb24gdGhlIGxpbmsgYmVsb3cnOwokbGFuZ1snc2hvcHBlcl9wYWlkJ10gPSAnVGhhbmsgeW91IHZlcnkgbXVjaCBmb3IgeW91ciBwYXltZW50LiAgVG8gY29udGludWUgc2hvcHBpbmcgcGxlYXNlIGNsaWNrIG9uIHRoZSBsaW5rIGJlbG93JzsKJGxhbmdbJ3N1Ym1pdCddID0gJ1N1Ym1pdCc7CgojVAokbGFuZ1sndGVzdF9hdXRob3JpemVkJ10gPSAnVHJhbnNhY3Rpb24gQXV0aG9yaXplZCc7CiRsYW5nWyd0ZXN0X2NhcHR1cmVkJ10gPSAnVHJhbnNhY3Rpb24gQ2FwdHVyZWQnOwokbGFuZ1sndGVzdF9lcnJvciddID0gJ1RyYW5zYWN0aW9uIEVycm9yJzsKJGxhbmdbJ3Rlc3Rfbm9uZSddID0gJ05vbmUgKExpdmUgTW9kZSknOwokbGFuZ1sndGVzdF9yZWZ1c2VkJ10gPSAnVHJhbnNhY3Rpb24gUmVmdXNlZCc7CiRsYW5nWyd0ZXN0X3BhcmFtJ10gPSAnVGVzdCBUcmFuc2FjdGlvbiBUeXBlJzsKJGxhbmdbJ3RpbWVfdW5saW1pdGVkJ10gPSAnVW5saW1pdGVkJzsKJGxhbmdbJ3RpbWVfNW0nXSA9ICc1IE1pbnV0ZXMnOwokbGFuZ1sndGltZV8xNW0nXSA9ICcxNSBNaW51dGVzJzsKJGxhbmdbJ3RpbWVfMzBtJ10gPSAnMzAgTWludXRlcyc7CiRsYW5nWyd0aW1lXzYwbSddID0gJzYwIE1pbnV0ZXMnOwokbGFuZ1sndGltZV8xMjBtJ10gPSAnMiBIb3Vycyc7CiRsYW5nWyd0aW1lXzM2MG0nXSA9ICc2IEhvdXJzJzsKJGxhbmdbJ3RyYW5zYWN0aW9uX2NvbXBsZXRlJ10gPSAnVHJhbnNhY3Rpb24gQ29tcGxldGUnOwokbGFuZ1sndHJhbnNhY3Rpb25fdGltZWxpbWl0J10gPSAnVHJhbnNhY3Rpb24gVGltZWxpbWl0JzsKJGxhbmdbJ3R6X29mZnNldCddID0gJ1RpbWUgWm9uZSBPZmZzZXQgKGhvdXJzKSc7CgojVQoKI1YKCgojVwokbGFuZ1snd2VsY29tZV9iYWNrJ10gPSAnV2VsY29tZSBCYWNrJzsKCiNYCgoKI1kKJGxhbmdbJ3llcyddID0gJ1llcyc7CgojWgoKPz4=]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFJCU1dvcmxkUGF5IChjKSAyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIHByb3ZpZGUgdGhlIGFiaWxpdHkgdG8gcHJvY2VzcwojICBwYXltZW50cyBtYWRlIHVzaW5nIHRoZSBFLWNvbW1lcmNlIHN1aXRlIHRocm91Z2ggUkJTIFdvcmxkcGF5CiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCiRmbiA9IGRpcm5hbWUoX19GSUxFX18pLicvdGVtcGxhdGVzL29yaWdfZm9ybV90ZW1wbGF0ZS50cGwnOwokZGF0YSA9IGZpbGVfZ2V0X2NvbnRlbnRzKCRmbik7CiR0aGlzLT5TZXRUZW1wbGF0ZSgnZm9ybV90ZW1wbGF0ZScsJGRhdGEpOwoKJGZuID0gZGlybmFtZShfX0ZJTEVfXykuJy90ZW1wbGF0ZXMvb3JpZ19yZXR1cm5fdGVtcGxhdGUudHBsJzsKJGRhdGEgPSBmaWxlX2dldF9jb250ZW50cygkZm4pOwokdGhpcy0+U2V0VGVtcGxhdGUoJ3JldHVybl90ZW1wbGF0ZScsJGRhdGEpOwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFJCU1dvcmxkUGF5IChjKSAyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIHByb3ZpZGUgdGhlIGFiaWxpdHkgdG8gcHJvY2VzcwojICBwYXltZW50cyBtYWRlIHVzaW5nIHRoZSBFLWNvbW1lcmNlIHN1aXRlIHRocm91Z2ggUkJTIFdvcmxkcGF5CiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoKTsKJHRoaXMtPkRlbGV0ZVRlbXBsYXRlKCk7CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/RBSWorldPay.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFJCU1dvcmxkUGF5IChjKSAyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIHByb3ZpZGUgdGhlIGFiaWxpdHkgdG8gcHJvY2VzcwojICBwYXltZW50cyBtYWRlIHVzaW5nIHRoZSBFLWNvbW1lcmNlIHN1aXRlIHRocm91Z2ggUkJTIFdvcmxkcGF5CiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCiRjZ3BheW1lbnRnYXRld2F5YmFzZSA9IGNtc19qb2luX3BhdGgoJGdDbXMtPmNvbmZpZ1sncm9vdF9wYXRoJ10sJ21vZHVsZXMnLAoJJ0NHUGF5bWVudEdhdGV3YXlCYXNlJywnQ0dQYXltZW50R2F0ZXdheUJhc2UubW9kdWxlLnBocCcpOwppZiggIWlzX3JlYWRhYmxlKCAkY2dwYXltZW50Z2F0ZXdheWJhc2UgKSApCnsKCWVjaG8gJzxoMT48Zm9udCBjb2xvcj0icmVkIj5FUlJPUjogVGhlIENHUGF5bWVudEdhdGV3YXlCYXNlIG1vZHVsZSBjb3VsZCBub3QgYmUgZm91bmQuICBQbGVhc2UgaW5zdGFsbCBpdDwvZm9udD48L2gxPic7CglyZXR1cm47Cn0KaWYoICFjbGFzc19leGlzdHMoJ0NHUGF5bWVudEdhdGV3YXlCYXNlJykgKQp7CiAgcmVxdWlyZV9vbmNlKCRjZ3BheW1lbnRnYXRld2F5YmFzZSk7Cn0KCmNsYXNzIFJCU1dvcmxkUGF5IGV4dGVuZHMgQ0dQYXltZW50R2F0ZXdheUJhc2UKewogIHZhciAkX2RhdGE7CgogIGNvbnN0IFRFU1RfVVJMID0gJ2h0dHBzOi8vc2VjdXJlLXRlc3Qud3AzLnJic3dvcmxkcGF5LmNvbS93Y2MvcHVyY2hhc2UnOwogIGNvbnN0IFBST0RfVVJMID0gJ2h0dHBzOi8vc2VjdXJlLndwMy5yYnN3b3JsZHBheS5jb20vd2NjL3B1cmNoYXNlJzsKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgQ29uc3RydWN0b3IoKQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIF9fY29uc3RydWN0KCkKICB7CiAgICBwYXJlbnQ6Ol9fY29uc3RydWN0KCk7CiAgICAkdGhpcy0+X2RhdGEgPSBhcnJheSgpOwogIH0KCgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIEdldE5hbWUoKQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIEdldE5hbWUoKQogIHsKICAgIHJldHVybiAnUkJTV29ybGRQYXknOwogIH0KCiAgCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgR2V0RnJpZW5kbHlOYW1lKCkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBHZXRGcmllbmRseU5hbWUoKQogIHsKICAgIHJldHVybiAkdGhpcy0+TGFuZygnZnJpZW5kbHluYW1lJyk7CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgR2V0VmVyc2lvbigpCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gR2V0VmVyc2lvbigpCiAgewogICAgcmV0dXJuICcxLjAuMSc7CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgR2V0SGVscCgpCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gR2V0SGVscCgpCiAgewogICAgcmV0dXJuICR0aGlzLT5MYW5nKCdoZWxwJyk7CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgR2V0QXV0aG9yKCkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBHZXRBdXRob3IoKQogIHsKICAgIHJldHVybiAnUm9iZXJ0IENhbXBiZWxsJzsKICB9CgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBHZXRBdXRob3JFbWFpbCgpCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gR2V0QXV0aG9yRW1haWwoKQogIHsKICAgIHJldHVybiAnY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZyc7CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgR2V0Q2hhbmdlTG9nKCkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBHZXRDaGFuZ2VMb2coKQogIHsKICAgIHJldHVybiBAZmlsZV9nZXRfY29udGVudHMoZGlybmFtZShfX0ZJTEVfXykuJy9jaGFuZ2Vsb2cuaW5jJyk7CiAgfQoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBJc1BsdWdpbk1vZHVsZSgpCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gSXNQbHVnaW5Nb2R1bGUoKQogIHsKICAgIHJldHVybiB0cnVlOwogIH0KCgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIEhhc0FkbWluKCkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBIYXNBZG1pbigpCiAgewogICAgcmV0dXJuIHRydWU7CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgR2V0QWRtaW5TZWN0aW9uKCkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBHZXRBZG1pblNlY3Rpb24oKQogIHsKICAgIHJldHVybiAnZWNvbW1lcmNlJzsKICB9CgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBHZXRBZG1pbkRlc2NyaXB0aW9uKCkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBHZXRBZG1pbkRlc2NyaXB0aW9uKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ21vZGRlc2NyaXB0aW9uJyk7CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgVmlzaWJsZVRvQWRtaW5Vc2VyKCkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBWaXNpYmxlVG9BZG1pblVzZXIoKQogIHsKICAgIHJldHVybiAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpIHx8CiAgICAgICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBUZW1wbGF0ZXMnKTsKICB9CgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBHZXREZXBlbmRlbmNpZXMoKQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIEdldERlcGVuZGVuY2llcygpCiAgewogICAgcmV0dXJuIGFycmF5KCdDR0V4dGVuc2lvbnMnPT4nMS4xOS40JywKCQkgJ0NHUGF5bWVudEdhdGV3YXlCYXNlJz0+JzEuMC44Jyk7CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgTWluaW11bUNNU1ZlcnNpb24oKQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIE1pbmltdW1DTVNWZXJzaW9uKCkKICB7CiAgICByZXR1cm4gIjEuOC4xIjsKICB9CgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBTZXRQYXJhbWV0ZXJzKCkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBTZXRQYXJhbWV0ZXJzKCkKICB7CiAgICAkdGhpcy0+UmVnaXN0ZXJNb2R1bGVQbHVnaW4oKTsKICAgICR0aGlzLT5SZXN0cmljdFVua25vd25QYXJhbXMoKTsKCiAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgna2V5JyxDTEVBTl9TVFJJTkcpOwogICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoQ0xFQU5fUkVHRVhQLicvZ2NfLiovJyxDTEVBTl9TVFJJTkcpOwoKICAgIGdsb2JhbCAkZ0NtczsKICAgICRyZXR1cm5faWQgPSAkZ0Ntcy0+R2V0Q29udGVudE9wZXJhdGlvbnMoKS0+R2V0RGVmYXVsdENvbnRlbnQoKTsKICAgICR0aGlzLT5SZWdpc3RlclJvdXRlKCcvJy4kdGhpcy0+R2V0TmFtZSgpLidcL25vdGlmeSQvJywKCQkJIGFycmF5KCdhY3Rpb24nPT4nbm90aWZ5JywncmV0dXJuX2lkJz0+JHJldHVybl9pZCkpOwoJCQkgLy8JCQkgYXJyYXkoJ2FjdGlvbic9Pidub3RpZnknLCdyZXR1cm5faWQnPT4kcmV0dXJuX2lkLCdzaG93dGVtcGxhdGUnPT4nZmFsc2UnKSk7CiAgICAkdGhpcy0+UmVnaXN0ZXJSb3V0ZSgnLycuJHRoaXMtPkdldE5hbWUoKS4nXC9yZXR1cm4kLycsCgkJCSBhcnJheSgnYWN0aW9uJz0+J3JldHVybicsJ3JldHVybl9pZCc9PiRyZXR1cm5faWQpKTsKICAgICR0aGlzLT5SZWdpc3RlclJvdXRlKCcvJy4kdGhpcy0+R2V0TmFtZSgpLidcL2NvbnRpbnVlLycsCgkJCSBhcnJheSgnYWN0aW9uJz0+J2NvbnRpbnVlJywncmV0dXJuX2lkJz0+JHJldHVybl9pZCkpOwogIH0KCgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIEluc3RhbGxwb3N0bWVzc2FnZSgpCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gSW5zdGFsbFBvc3RNZXNzYWdlKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ3Bvc3RpbnN0YWxsJyk7CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgVW5pbnN0YWxsUG9zdE1lc3NhZ2UoKQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIFVuaW5zdGFsbFBvc3RNZXNzYWdlKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ3Bvc3R1bmluc3RhbGwnKTsKICB9CgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBVbmluc3RhbGxQcmVNZXNzYWdlKCkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBVbmluc3RhbGxQcmVNZXNzYWdlKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ3JlYWxseV91bmluc3RhbGwnKTsKICB9CgogIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAgLy8gQmVnaW4gbWV0aG9kcyByZXF1aXJlZCBmb3IgcGF5bWVudCBnYXRld2F5cwogIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBSZXF1aXJlc0NyZWRpdENhcmRJbmZvKCkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBSZXF1aXJlc0NyZWRpdENhcmRJbmZvKCkKICB7CiAgICByZXR1cm4gZmFsc2U7CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgUmVxdWlyZXNTU0woKQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIFJlcXVpcmVzU1NMKCkKICB7CiAgICByZXR1cm4gZmFsc2U7CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgUmVxdWlyZXNTaGlwcGluZ0luZm8oKQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIFJlcXVpcmVzU2hpcHBpbmdJbmZvKCkKICB7CiAgICByZXR1cm4gZmFsc2U7CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgUmVxdWlyZXNCaWxsaW5nSW5mbygpCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gUmVxdWlyZXNCaWxsaW5nSW5mbygpCiAgewogICAgcmV0dXJuIGZhbHNlOwogIH0KCgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgU2F2ZVN0YXRlKCkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBTYXZlU3RhdGUoJGVuY3J5cHQgPSBmYWxzZSwka2V5ID0gJycpCiAgewogICAgJHRpbWVsaW1pdCA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCd0aW1lbGltaXQnLDYwKSo2MDsKICAgICRkYXRhc3RvcmUgPSBuZXcgY2dlX2RhdGFzdG9yZSgkdGltZWxpbWl0KTsKCiAgICBpZiggJGtleSA9PSAnJyApCiAgICAgIHsKCSRrZXkgPSBzdHJfc2h1ZmZsZShtZDUoc2Vzc2lvbl9pZCgpLnRpbWUoKSkpOwogICAgICB9CgogICAgLy8gbm9ybWFsbHkgd2Ugd291bGQgdXNlIHRoZSBzZXNzaW9uX2lkIGFzIGEgc2FsdCBmb3IgdGhlIG1kNSBzdHJpbmcKICAgIC8vIGJ1dCBiZWNhdXNlIFJCUyBXb3JsZHBheSBQT1NUUyB0byBvdXIgbm90aWZ5IHBhZ2UsIGFuZCB0aGF0IGlzCiAgICAvLyB3aGF0IGRpc3BsYXlzIHRoZSBzaG9wcGVyIHJlc3VsdC4uLiB3ZSBjYW4ndCByZWx5IG9uIHRoZSBzZXNzaW9uCgogICAgJHJhdyA9IHNlcmlhbGl6ZSgkdGhpcy0+X2RhdGEpOwogICAgJGVuYyA9IGNnZV9lbmNyeXB0OjplbmNyeXB0KCRrZXksJHJhdyk7CiAgICAkZGF0YXN0b3JlLT5zdG9yZShiYXNlNjRfZW5jb2RlKCRlbmMpLCdyYnN3b3JsZHBheScsJGtleSk7CiAgICByZXR1cm4gJGtleTsKICB9CgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBSZXN0b3JlU3RhdGUoKQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIFJlc3RvcmVTdGF0ZSgka2V5ID0gJycpCiAgewogICAgJHRpbWVsaW1pdCA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCd0aW1lbGltaXQnLDYwKSo2MDsKICAgICRkYXRhc3RvcmUgPSBuZXcgY2dlX2RhdGFzdG9yZSgkdGltZWxpbWl0KTsKCiAgICBpZiggJGtleSA9PSAnJyApCiAgICAgIHsKCSRrZXkgPSBzdHJfc2h1ZmZsZShtZDUoc2Vzc2lvbl9pZCgpLnRpbWUoKSkpOwogICAgICB9CgogICAgJHRtcCA9ICRkYXRhc3RvcmUtPmdldCgncmJzd29ybGRwYXknLCRrZXkpOwogICAgaWYoICEkdG1wICkgCiAgICAgIHsKCWRpZSgnY291bGQgbm90IGdldCBkYXRhIGZvciAnLiRrZXkpOwoJcmV0dXJuIEZBTFNFOwogICAgICB9CgogICAgJGVuYyA9IGJhc2U2NF9kZWNvZGUoJHRtcCk7CiAgICAkcmF3ID0gY2dlX2VuY3J5cHQ6OmRlY3J5cHQoJGtleSwkZW5jKTsKICAgIGlmKCAkcmF3ID09PSBGQUxTRSApIHJldHVybiBGQUxTRTsKCiAgICAkdGhpcy0+X2RhdGEgPSB1bnNlcmlhbGl6ZSgkcmF3KTsKICAgICRkYXRhc3RvcmUtPmVyYXNlKCdyYnN3b3JsZHBheScsJGtleSk7CiAgICByZXR1cm4gVFJVRTsKICB9CgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBTZXRQYXltZW50SWQoKQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIHB1YmxpYyBmdW5jdGlvbiBTZXRQYXltZW50SWQoJHBheW1lbnRfaWQpCiAgewogICAgJHRoaXMtPl9kYXRhWydwYXltZW50X2lkJ10gPSAkcGF5bWVudF9pZDsKICB9CgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBHZXRQYXltZW50SWQoKQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIHB1YmxpYyBmdW5jdGlvbiBHZXRQYXltZW50SWQoKQogIHsKICAgIGlmKCAhaXNzZXQoJHRoaXMtPl9kYXRhWydwYXltZW50X2lkJ10pICkgcmV0dXJuIEZBTFNFOwogICAgcmV0dXJuICR0aGlzLT5fZGF0YVsncGF5bWVudF9pZCddOwogIH0KCgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIFNldENyZWRpdENhcmRJbmZvKCkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBTZXRDcmVkaXRDYXJkSW5mbygkY2N0eXBlLCRjY251bWJlciwkY2NleHAsJGNjdmNvZGUpCiAgewogICAgcmV0dXJuIFRSVUU7CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgU2V0Q3VycmVuY3lDb2RlKCkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBTZXRDdXJyZW5jeUNvZGUoJGNvZGUgPSAnVVNEJykKICB7CiAgICAkdGhpcy0+X2RhdGFbJ2N1cnJlbmN5Y29kZSddID0gc3RydG91cHBlcigkY29kZSk7CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgU2V0V2VpZ2h0VW5pdHMoKQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIFNldFdlaWdodFVuaXRzKCR1bml0cyA9ICdsYnMnKQogIHsKICAgICR0aGlzLT5fZGF0YVsnd2VpZ2h0dW5pdHMnXSA9ICR1bml0czsKICB9CgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBTZXREZXN0aW5hdGlvbigpCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gU2V0RGVzdGluYXRpb24oJHVybCkKICB7CiAgICAkdGhpcy0+X2RhdGFbJ2Rlc3RpbmF0aW9uJ10gPSAkdXJsOwogIH0KICAgIAoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBBZGRJdGVtKCkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBBZGRJdGVtKCRuYW1lLCRudW1iZXIsJHF1YW50aXR5LCR3ZWlnaHQsJGFtb3VudCwkdGF4ID0gJycpCiAgewogICAgJG5hbWUgPSBzdHJpcF90YWdzKCRuYW1lKTsKICAgICRuYW1lID0gcHJlZ19yZXBsYWNlKCcvXCYuKlw7LycsJycsJG5hbWUpOwogICAgJG5hbWUgPSB0cmltKCRuYW1lKTsKICAgIGlmKCAhaXNzZXQoJHRoaXMtPl9kYXRhWydpdGVtcyddKSApCiAgICAgIHsKCSR0aGlzLT5fZGF0YVsnaXRlbXMnXSA9IGFycmF5KCk7CiAgICAgIH0KCiAgICBpZiggIWlzc2V0KCR0aGlzLT5faXRlbXNbJG5hbWVdKSApCiAgICAgIHsKCSR0aGlzLT5fZGF0YVsnaXRlbXMnXVskbmFtZV0gPSBhcnJheSgnbmFtZSc9PiRuYW1lLAoJCQkJCSAgICAgJ251bWJlcic9PiRudW1iZXIsCgkJCQkJICAgICAncXVhbnRpdHknPT4kcXVhbnRpdHksCgkJCQkJICAgICAnd2VpZ2h0Jz0+JHdlaWdodCwKCQkJCQkgICAgICdhbW91bnQnPT4kYW1vdW50KTsKCWlmKCFlbXB0eSgkdGF4KSkKCSAgewoJICAgICR0aGlzLT5fZGF0YVsnaXRlbXMnXVskbmFtZV1bJ3RheCddID0gJHRheDsKCSAgfQogICAgICB9CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgU2V0T3JkZXJPYmplY3QoKQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIFNldE9yZGVyT2JqZWN0KG9yZGVyc19vcmRlciYgJG9yZGVyKQogIHsKICAgICR0aGlzLT5fZGF0YVsnb3JkZXJfb2JqJ10gPSAkb3JkZXI7CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgU2V0T3JkZXJEZXNjcmlwdGlvbigpCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gU2V0T3JkZXJEZXNjcmlwdGlvbigkdHh0KQogIHsKICAgICR0aGlzLT5fZGF0YVsnZGVzY3JpcHRpb24nXSA9IHN1YnN0cigkdHh0LDAsMjU1KTsKICB9CgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBTZXRPcmRlclRheEFtb3VudCgpCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gU2V0T3JkZXJUYXhBbW91bnQoJHRheCkKICB7CiAgICAkdGhpcy0+X2RhdGFbJ29yZGVydGF4J10gPSAkdGF4OwogIH0KCgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIFNldE9yZGVyU2hpcHBpbmcoKQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIFNldE9yZGVyU2hpcHBpbmcoJHNoaXBwaW5nKQogIHsKICAgICR0aGlzLT5fZGF0YVsnb3JkZXJzaGlwcGluZyddID0gJHNoaXBwaW5nOwogIH0KCgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBTZXRJbnZvaWNlKCkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBTZXRJbnZvaWNlKCRpbnZvaWNlKQogIHsKICAgICR0aGlzLT5fZGF0YVsnaW52b2ljZSddID0gc3Vic3RyKCRpbnZvaWNlLC0yMCk7CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgU2V0T3JkZXJJRCgpCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gU2V0T3JkZXJJRCgkb3JkZXJpZCkKICB7CiAgICAkdGhpcy0+X2RhdGFbJ29yZGVyaWQnXSA9ICRvcmRlcmlkOwogIH0KCgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIFNldFN0YXR1cygpCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gU2V0U3RhdHVzKCRzdGF0dXMpCiAgewogICAgc3dpdGNoKCRzdGF0dXMpCiAgICAgIHsKICAgICAgY2FzZSBQQVlNRU5UX1NUQVRVU19BUFBST1ZFRDoKICAgICAgY2FzZSBQQVlNRU5UX1NUQVRVU19ERUNMSU5FRDoKICAgICAgY2FzZSBQQVlNRU5UX1NUQVRVU19FUlJPUjoKICAgICAgY2FzZSBQQVlNRU5UX1NUQVRVU19DQU5DRUxMRUQ6CiAgICAgIGNhc2UgUEFZTUVOVF9TVEFUVVNfT1RIRVI6CiAgICAgIGNhc2UgUEFZTUVOVF9TVEFUVVNfUEVORElORzoKCSR0aGlzLT5fZGF0YVsnc3RhdHVzJ10gPSAkc3RhdHVzOwoJYnJlYWs7CiAgICAgIH0KICB9CgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBTZXRUcmFuc2FjdGlvbklkKCkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBTZXRUcmFuc2FjdGlvbklkKCR0aWQpCiAgewogICAgJHRoaXMtPl9kYXRhWyd0cmFuc2FjdGlvbl9pZCddID0gJHRpZDsKICB9CgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBTZXRFcnJvcigpCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gU2V0RXJyb3IoJG1lc3NhZ2UpCiAgewogICAgJHRoaXMtPl9kYXRhWydzdGF0dXMnXSA9IFBBWU1FTlRfU1RBVFVTX0VSUk9SOwogICAgJHRoaXMtPl9kYXRhWydlcnJvcl9tZXNzYWdlJ10gPSAkbWVzc2FnZTsKICB9CgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBTZXRDYW5jZWxsZWQoKQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIFNldENhbmNlbGxlZCgkbWVzc2FnZSA9ICcnKQogIHsKICAgICR0aGlzLT5fZGF0YVsnc3RhdHVzJ10gPSBQQVlNRU5UX1NUQVRVU19DQU5DRUxMRUQ7CiAgICBpZiggJG1lc3NhZ2UgKQogICAgICB7CgkkdGhpcy0+X2RhdGFbJ2Vycm9yX21lc3NhZ2UnXSA9ICRtZXNzYWdlOwogICAgICB9CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgUmVzZXQoKQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIFJlc2V0KCkKICB7CiAgICAkdGhpcy0+X2RhdGEgPSBhcnJheSgpOwogIH0KCgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIFNldERlY2xpbmVkKCkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBTZXREZWNsaW5lZCgkbWVzc2FnZSkKICB7CiAgICAkdGhpcy0+X2RhdGFbJ3N0YXR1cyddID0gUEFZTUVOVF9TVEFUVVNfREVDTElORUQ7CiAgICAkdGhpcy0+X2RhdGFbJ2Vycm9yX21lc3NhZ2UnXSA9ICR0aGlzLT5MYW5nKCdlcnJvcl9wYXltZW50X2RlY2xpbmVkJyk7CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgR2V0VHJhbnNhY3Rpb25TdGF0dXMoKQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIEdldFRyYW5zYWN0aW9uU3RhdHVzKCkKICB7CiAgICBpZiggaXNzZXQoJHRoaXMtPl9kYXRhWydzdGF0dXMnXSkgKQogICAgICByZXR1cm4gJHRoaXMtPl9kYXRhWydzdGF0dXMnXTsKICAgIHJldHVybiBGQUxTRTsKICB9CgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBHZXRUcmFuc2FjdGlvbklkKCkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBHZXRUcmFuc2FjdGlvbklkKCkKICB7CiAgICBpZiggaXNzZXQoJHRoaXMtPl9kYXRhWyd0cmFuc2FjdGlvbl9pZCddKSApCiAgICAgIHJldHVybiAkdGhpcy0+X2RhdGFbJ3RyYW5zYWN0aW9uX2lkJ107CiAgICByZXR1cm4gRkFMU0U7CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgR2V0TWVzc2FnZSgpCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gR2V0TWVzc2FnZSgpCiAgewogICAgaWYoIGlzc2V0KCR0aGlzLT5fZGF0YVsnZXJyb3JfbWVzc2FnZSddKSApCiAgICAgIHJldHVybiAkdGhpcy0+X2RhdGFbJ2Vycm9yX21lc3NhZ2UnXTsKICAgIHJldHVybiBGQUxTRTsKICB9CgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBGaW5pc2hUcmFuc2FjdGlvbigpCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gRmluaXNoVHJhbnNhY3Rpb24oKQogIHsKICAgIGlmKCAhaXNzZXQoJHRoaXMtPl9kYXRhWydkZXN0aW5hdGlvbiddKSApIHJldHVybiBGQUxTRTsKICAgICRrZXkgPSAkdGhpcy0+U2F2ZVN0YXRlKHRydWUpOwogICAgJHVybCA9ICR0aGlzLT5fZGF0YVsnZGVzdGluYXRpb24nXTsKICAgICR1cmwgPSBodG1sX2VudGl0eV9kZWNvZGUoJHVybCk7CiAgICAkdXJsIC49ICImY250bnQwMWRhdGFrZXk9JGtleSI7CgogICAgcmVkaXJlY3QoJHVybCk7CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgQ2hlY2tJbmZvKCkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBDaGVja0luZm8oKQogIHsKICAgICR0bXAgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaW5zdGFsbGF0aW9uX2lkJyk7CiAgICBpZiggJHRtcCA9PSAnJyApIHJldHVybiBGQUxTRTsKCiAgICBpZiggIWlzc2V0KCR0aGlzLT5fZGF0YVsnb3JkZXJfb2JqJ10pICkgcmV0dXJuIEZBTFNFOwogICAgcmV0dXJuIFRSVUU7CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgR2V0VVJMKCkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBHZXRVUkwoKQogIHsKICAgICRwcm9kX21vZGUgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgncHJvZF9tb2RlJywwKTsKICAgIGlmKCAkcHJvZF9tb2RlICkKICAgICAgewoJcmV0dXJuIHNlbGY6OlBST0RfVVJMOwogICAgICB9CiAgICByZXR1cm4gc2VsZjo6VEVTVF9VUkw7CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgR2V0Rm9ybSgpCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gR2V0Rm9ybSgkcmV0dXJuaWQpCiAgewogICAgZ2xvYmFsICRnQ21zOwogICAgJGNvbmZpZyA9ICRnQ21zLT5HZXRDb25maWcoKTsKICAgIAogICAgaWYoICEkdGhpcy0+Q2hlY2tJbmZvKCkgKSByZXR1cm4gRkFMU0U7CgogICAgLy8gY2FsY3VsYXRlIGFuIGFtb3VudAogICAgJG9yZGVyID0mICR0aGlzLT5fZGF0YVsnb3JkZXJfb2JqJ107CiAgICAkYW1vdW50ID0gJG9yZGVyLT5nZXRfdG90YWwoKTsKCiAgICAkdGhpcy0+X2RhdGFbJ2lwX2FkZHJlc3MnXSA9IGNnZV91dGlsczo6Z2V0X3JlYWxfaXAoKTsKICAgICRrZXkgPSAkdGhpcy0+U2F2ZVN0YXRlKHRydWUpOwogICAgJHBhcm1zID0gYXJyYXkoKTsKICAgICRwYXJtc1snZml4Q29udGFjdCddID0gMTsKICAgICRwYXJtc1snaGlkZUN1cnJlbmN5J10gPSAxOwogICAgJHBhcm1zWydpbnN0SWQnXSA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdpbnN0YWxsYXRpb25faWQnKTsKICAgICRwYXJtc1snY2FydElkJ10gPSAkdGhpcy0+X2RhdGFbJ2ludm9pY2UnXS4nOjonLiR0aGlzLT5fZGF0YVsnb3JkZXJpZCddLic6OicuJGtleTsKICAgICRwYXJtc1snY3VycmVuY3knXSA9ICR0aGlzLT5fZGF0YVsnY3VycmVuY3ljb2RlJ107CiAgICAkcGFybXNbJ2Ftb3VudCddID0gbnVtYmVyX2Zvcm1hdCgkYW1vdW50LDIsJy4nLCcnKTsKICAgICRwYXJtc1snZGVzYyddID0gJHRoaXMtPl9kYXRhWydkZXNjcmlwdGlvbiddOwogICAgJHRpbWVsaW1pdCA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCd0aW1lbGltaXQnLDYwKTsKICAgIGlmKCAkdGltZWxpbWl0ID4gMCApCiAgICAgIHsKCSR0aW1lcGFydHMgPSBleHBsb2RlKCIgIixtaWNyb3RpbWUoKSk7CgkkY3VycmVudHRpbWUgPSBiY2FkZCgoJHRpbWVwYXJ0c1swXSoxMDAwKSxiY211bCgkdGltZXBhcnRzWzFdLDEwMDApKTsKCgkkdHpvZmZzZXQgID0gKGludCkkdGhpcy0+R2V0UHJlZmVyZW5jZSgndHpvZmZzZXQnLDApICogNjA7IC8vIG1pbnV0ZXMuCgkkc3RhcnR0aW1lID0gYmNhZGQoJGN1cnJlbnR0aW1lLGJjbXVsKCR0em9mZnNldCw2MDAwMCkpOwoJJGVuZHRpbWUgPSBiY2FkZCgkc3RhcnR0aW1lLGJjbXVsKCR0aW1lbGltaXQsNjAwMDApKTsKCS8vJHBhcm1zWydhdXRoVmFsaWRGcm9tJ10gPSAkc3RhcnR0aW1lOwoJJHBhcm1zWydhdXRoVmFsaWRUbyddID0gJGVuZHRpbWU7CiAgICAgIH0KICAgIGlmKCBpc3NldCgkdGhpcy0+X2RhdGFbJ2JpbGxpbmdfYWRkcmVzcyddKSApCiAgICAgIHsKCSRhZGRyZXNzID0mICR0aGlzLT5fZGF0YVsnYmlsbGluZ19hZGRyZXNzJ107Cgkkc3RyID0gJGFkZHJlc3MtPmdldF9sYXN0bmFtZSgpLicsICcuJGFkZHJlc3MtPmdldF9maXJzdG5hbWUoKTsKCSRwYXJtc1snbmFtZSddID0gc3Vic3RyKCRzdHIsMCw0MCk7Cgkkc3RyID0gJGFkZHJlc3MtPmdldF9hZGRyZXNzMSgpOwoJaWYoICRhZGRyZXNzLT5nZXRfYWRkcmVzczIoKSApCgkgICRzdHIgLj0gJyAnLiRhZGRyZXNzLT5nZXRfYWRkcmVzczIoKTsKCSRzdHIgLj0gJyAnLiRhZGRyZXNzLT5nZXRfY2l0eSgpOwoJaWYoICRhZGRyZXNzLT5nZXRfc3RhdGUoKSApCgkgICRzdHIgLj0gJywgJy4kYWRkcmVzcy0+Z2V0X3N0YXRlKCk7CgkkcGFybXNbJ2FkZHJlc3MnXSA9IHN1YnN0cigkc3RyLDAsMjU0KTsKCWlmKCAkYWRkcmVzcy0+Z2V0X3Bvc3RhbCgpICkKCSAgJHBhcm1zWydwb3N0Y29kZSddID0gJGFkZHJlc3MtPmdldF9wb3N0YWwoKTsKCSRwYXJtc1snY291bnRyeSddID0gJGFkZHJlc3MtPmdldF9jb3VudHJ5KCk7CgkkcGFybXNbJ3RlbCddID0gc3Vic3RyKCRhZGRyZXNzLT5nZXRfcGhvbmUoKSwwLDMwKTsKCSRwYXJtc1snZW1haWwnXSA9IHN1YnN0cigkYWRkcmVzcy0+Z2V0X2VtYWlsKCksMCw4MCk7Cgkkc3RyID0gJGFkZHJlc3MtPmdldF9maXJzdG5hbWUoKS4nICcuJGFkZHJlc3MtPmdldF9sYXN0bmFtZSgpOwogICAgICB9CgogICAgLy8gZmluZCBhbiBpdGVtIHdpdGggYSBzdWJzY3JpcHRpb24KICAgICRzdWJzY3JfaXRlbSA9ICcnOwogICAgZm9yKCAkaSA9IDA7ICRpIDwgJG9yZGVyLT5jb3VudF9kZXN0aW5hdGlvbnMoKTsgJGkrKyApCiAgICAgIHsKCSRzaGlwcGluZyA9JiAkb3JkZXItPmdldF9zaGlwcGluZygkaSk7Cglmb3IoICRqID0gMDsgJGogPCAkc2hpcHBpbmctPmNvdW50X2FsbF9pdGVtcygpOyAkaisrICkKCSAgewoJICAgICRpdGVtID0mICRzaGlwcGluZy0+Z2V0X2l0ZW0oJGopOwoJICAgIGlmKCAkaXRlbS0+aXNfc3Vic2NyaXB0aW9uKCkgKQoJICAgICAgewoJCWlmKCAkc3Vic2NyX2l0ZW0gIT0gJycgKQoJCSAgewoJCSAgICAvLyBvb3BzIHdlIGdvdCBhIHByb2JsZW0uCgkJICAgIHJldHVybiBGQUxTRTsKCQkgIH0KCQkkc3Vic2NyX2l0ZW0gPSAkaXRlbTsKCSAgICAgIH0KCSAgfQogICAgICB9CiAgICBpZiggJHN1YnNjcl9pdGVtICkKICAgICAgewoJJHBhcm1zWydmdXR1cmVQYXlUeXBlJ10gPSAncmVndWxhcic7CgkkcGFybXNbJ29wdGlvbiddID0gJzAnOwoJJHBhcm1zWydub3JtYWxBbW91bnQnXSA9IG51bWJlcl9mb3JtYXQoJHN1YnNjcl9pdGVtLT5nZXRfbmV0X3ByaWNlKCksMiwnLicsJycpOwoJJHBhcm1zWydzdGFydERlbGF5VW5pdCddID0gJzMnOwoJJHBhcm1zWydzdGFydERlbGF5TXVsdCddID0gJzEnOwoJc3dpdGNoKCAkc3Vic2NyX2l0ZW0tPmdldF9zdWJzY3JfcGF5cGVyaW9kKCkgKQoJICB7CgkgIGNhc2UgJ21vbnRobHknOgoJICAgICRwYXJtc1snaW50ZXJ2YWxVbml0J10gPSAnMyc7CgkgICAgJHBhcm1zWydpbnRlcnZhbE11bHQnXSA9ICcxJzsKCSAgICBicmVhazsKCSAgY2FzZSAncXVhcnRlcmx5JzoKCSAgICAkcGFybXNbJ2ludGVydmFsVW5pdCddID0gJzMnOwoJICAgICRwYXJtc1snaW50ZXJ2YWxNdWx0J10gPSAnMyc7CgkgICAgYnJlYWs7OwoJICBjYXNlICdzZW1pYW51YWxseSc6CgkgICAgJHBhcm1zWydpbnRlcnZhbFVuaXQnXSA9ICczJzsKCSAgICAkcGFybXNbJ2ludGVydmFsTXVsdCddID0gJzYnOwoJICAgIGJyZWFrOwoJICBjYXNlICd5ZWFybHknOgoJICAgICRwYXJtc1snaW50ZXJ2YWxVbml0J10gPSAnNCc7CgkgICAgJHBhcm1zWydpbnRlcnZhbE11bHQnXSA9ICcxJzsKCSAgICBicmVhazsKCSAgfQogICAgICB9CiAgICAKICAgICRwcm9kX21vZGUgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgncHJvZF9tb2RlJywwKTsKICAgICR0ZXN0bW9kZSA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCd0ZXN0X3BhcmFtJywnMCcpOwogICAgaWYoICEkcHJvZF9tb2RlICkKICAgICAgewoJJHBhcm1zWyd0ZXN0TW9kZSddID0gMTAwOwoJaWYoICR0ZXN0bW9kZSAhPSAnMCcgKQoJICB7CgkgICAgJHBhcm1zWyduYW1lJ10gPSAkdGVzdG1vZGU7CgkgIH0KICAgICAgfQoKLy8gICAgIC8vIGdldCBhIG5vdGlmeSBVUkwKLy8gICAgICR1cmwgPSAkdGhpcy0+R2V0TmFtZSgpLicvbm90aWZ5JzsKLy8gICAgICR0bXAgPSBhcnJheSgna2V5Jz0+JGtleSk7Ci8vICAgICAkdXJsID0gJHRoaXMtPkNyZWF0ZVVSTCgnY250bnQwMScsJ25vdGlmeScsJHJldHVybmlkLCR0bXAsZmFsc2UsJHVybCk7Ci8vICAgICBpZiggJGNvbmZpZ1sndXJsX3Jld3JpdGluZyddICE9ICdub25lJyApCi8vICAgICAgIHsKLy8gCSR1cmwgLj0gIj9rZXk9Ii4ka2V5OwovLyAgICAgICB9Ci8vICAgICAkcGFybXNbJ01DX2NhbGxiYWNrJ10gPSAkdXJsOwoKCi8vICAgICAkdXJsID0gJHRoaXMtPkdldE5hbWUoKS4nL3JldHVybic7Ci8vICAgICAkdG1wID0gYXJyYXkoJ2tleSc9PiRrZXkpOwovLyAgICAgJHVybCA9ICR0aGlzLT5DcmVhdGVVUkwoJ2NudG50MDEnLCdyZXR1cm4nLCRyZXR1cm5pZCwkdG1wLGZhbHNlLCR1cmwpOwovLyAgICAgaWYoICRjb25maWdbJ3VybF9yZXdyaXRpbmcnXSAhPSAnbm9uZScgKQovLyAgICAgICB7Ci8vIAkkdXJsIC49ICI/a2V5PSIuJGtleTsKLy8gICAgICAgfQovLyAgICAgJHBhcm1zWydDX3JldHVybl91cmwnXSA9ICR1cmw7CiAgICAKICAgICRzZWNyZXQgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbWQ1c2VjcmV0Jyk7CiAgICBpZiggJHNlY3JldCApCiAgICAgIHsKCSRwYXJtc1snc2lnbmF0dXJlRmllbGRzJ10gPSAnYW1vdW50Omluc3RJZDpjYXJ0SWQnOwoJJHN0ciA9IGltcGxvZGUoJzonLGFycmF5KCRzZWNyZXQsCgkJCQkgJHBhcm1zWydhbW91bnQnXSwkcGFybXNbJ2luc3RJZCddLAoJCQkJICRwYXJtc1snY2FydElkJ10pKTsKCSRwYXJtc1snc2lnbmF0dXJlJ10gPSBtZDUoJHN0cik7CiAgICAgIH0KCiAgICAvLyBnaXZlIGV2ZXJ5dGhpbmcgdG8gc21hcnR5CiAgICAkc21hcnR5ID0mICRnQ21zLT5HZXRTbWFydHkoKTsKICAgICRzbWFydHktPmFzc2lnbignaW5wdXRwYXJtcycsJHBhcm1zKTsKICAgICRzbWFydHktPmFzc2lnbigkdGhpcy0+R2V0TmFtZSgpLCR0aGlzKTsKICAgICRzbWFydHktPmFzc2lnbigndXJsJywkdGhpcy0+R2V0VVJMKCkpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdpbWFnZV91cmwnLAoJCSAgICAkY29uZmlnWydyb290X3VybCddLicvbW9kdWxlcy8nLiR0aGlzLT5HZXROYW1lKCkuJy9pbWFnZXMvaWNvbi5naWYnKTsKICAgIHJldHVybiAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGFiYXNlKCdmb3JtX3RlbXBsYXRlJyk7CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgU2V0QmlsbGluZ0FkZHJlc3MoKQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIHB1YmxpYyBmdW5jdGlvbiBTZXRCaWxsaW5nQWRkcmVzcygkYmlsbGluZ19hZGR5KQogIHsKICAgIGlmKCAhJGJpbGxpbmdfYWRkeSBpbnN0YW5jZW9mIGNnZV9hZGRyZXNzICkKICAgICAgewoJcmV0dXJuIEZBTFNFOwogICAgICB9CiAgICAkdGhpcy0+X2RhdGFbJ2JpbGxpbmdfYWRkcmVzcyddID0gJGJpbGxpbmdfYWRkeTsKICB9CgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBTZXRTaGlwcGluZ0FkZHJlc3MoKQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIHB1YmxpYyBmdW5jdGlvbiBTZXRTaGlwcGluZ0FkZHJlc3MoJHNoaXBwaW5nX2FkZHkpCiAgewogICAgaWYoICEkc2hpcHBpbmdfYWRkeSBpbnN0YW5jZW9mIGNnZV9hZGRyZXNzICkKICAgICAgewoJcmV0dXJuIEZBTFNFOwogICAgICB9CiAgICAkdGhpcy0+X2RhdGFbJ3NoaXBwaW5nX2FkZHJlc3MnXSA9ICRzaGlwcGluZ19hZGR5OwogIH0KCgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIEdldFRyYW5zYWN0aW9uQW1vdW50KCkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBwdWJsaWMgZnVuY3Rpb24gR2V0VHJhbnNhY3Rpb25BbW91bnQoKQogIHsKICAgIGlmKCBpc3NldCgkdGhpcy0+X2RhdGFbJ2Ftb3VudCddKSApCiAgICAgIHJldHVybiAkdGhpcy0+X2RhdGFbJ2Ftb3VudCddOwogICAgcmV0dXJuIEZBTFNFOwogIH0KCgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIGdldF9jYXJ0aXRlbV9wb2xpY3koKQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIHB1YmxpYyBmdW5jdGlvbiBnZXRfY2FydGl0ZW1fcG9saWN5KCkKICB7CiAgICAkcG9saWN5ID0gbmV3IGNnX2Vjb21tX2NhcnRpdGVtX3BvbGljeTsKICAgICRwb2xpY3ktPnNldF9tYXhfc3Vic2NyaXB0aW9ucygkdGhpcy0+R2V0UHJlZmVyZW5jZSgnYWxsb3dfc3Vic2NyJywwKSk7CiAgICAkcG9saWN5LT5zZXRfbWl4ZWRfc3Vic2NyaXB0aW9ucyhUUlVFKTsKICAgIHJldHVybiAkcG9saWN5OwogIH0KfSAvLyBjbGFzcwo=]]></data>
	</file>
	<file>
	  <filename>/skeleton.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFJCU1dvcmxkUGF5IChjKSAyMDEwIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIHByb3ZpZGUgdGhlIGFiaWxpdHkgdG8gcHJvY2VzcwojICBwYXltZW50cyBtYWRlIHVzaW5nIHRoZSBFLWNvbW1lcmNlIHN1aXRlIHRocm91Z2ggUkJTIFdvcmxkcGF5CiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/orig_form_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogZm9ybSB0ZW1wbGF0ZSAqfQo8Zm9ybSBtZXRob2Q9InBvc3QiIGFjdGlvbj0ieyR1cmx9IiBjbHNzcz0icmJzX3dvcmxkcGF5X2Zvcm0iPgp7Zm9yZWFjaCBmcm9tPSRpbnB1dHBhcm1zIGtleT0nbmFtZScgaXRlbT0ndmFsdWUnfQogIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InskbmFtZX0iIHZhbHVlPSJ7JHZhbHVlfSIvPgp7L2ZvcmVhY2h9CjxpbnB1dCB0eXBlPSJpbWFnZSIgc3JjPSJ7JGltYWdlX3VybH0iIG5hbWU9InN1Ym1pdCIvPgo8L2Zvcm0+Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/orig_return_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogcmV0dXJuIHRlbXBsYXRlCiAgIHRoaXMgdmlldyBpcyBmZXRjaGVkIEZST00gUkJTIFdvcmxkcGF5CiAgIGFmdGVyIHRoZSBwYXltZW50IGlzIGNvbXBsZXRlZC4KICAgY2Fubm90IHJlbHkgb24gc2Vzc2lvbiBpbmZvcm1hdGlvbiBvciBkaXNwbGF5CiAgIHRoZSBjb250ZW50cyBvZiB0aGUgY2FydCBvciBhbnl0aGluZyAKKn0KPGgzPnskbW9kLT5MYW5nKCd3ZWxjb21lX2JhY2snKX08L2gzPgp7aWYgJHJhd19zdGF0dXMgPT0gJ1knfQo8cD57JG1vZC0+TGFuZygnc2hvcHBlcl9wYWlkJyl9PC9wPgp7ZWxzZX0KPHA+eyRtb2QtPkxhbmcoJ3Nob3BwZXJfY2FuY2VsbGVkJyl9PC9wPgp7L2lmfQo8cD57JG1vZC0+TGFuZygnY2xpY2tfdG9fY29udGludWUnKX06IDxhIGNsYXNzPSJyZXR1cm5fbGluayIgaHJlZj0ieyRyZXR1cm5fdXJsfSI+eyRyZXR1cm5fdXJsfTwvYT48L3A+Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/prefs_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmb3Jtc3RhcnR9CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdub3RpZnlfdXJsJyl9OjwvcD4KIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogeyo8c3BhbiBzdHlsZT0iY29sb3I6IGJsdWU7Ij4mbHQ7d3BkaXNwbGF5IGl0bT1NQ19jYWxsYmFjay1wcGUgZW1wdHk9Inskbm90aWZ5X3VybH0iJmd0Ozwvc3Bhbj4qfQogPHNwYW4gc3R5bGU9ImNvbG9yOiBibHVlOyI+eyRub3RpZnlfdXJsfTwvc3Bhbj4KIDxici8+CiB7JG1vZC0+TGFuZygnaW5mb19yYnNfc2V0dGluZ3MnKX0KIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdpbnN0YWxsYXRpb25faWQnKX06PC9wPgogPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWluc3RhbGxhdGlvbl9pZCIgc2l6ZT0iMjAiIG1heGxlbmd0aD0iNTAiIHZhbHVlPSJ7JGluc3RhbGxhdGlvbl9pZH0iLz4KIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdtZDVfc2VjcmV0Jyl9OjwvcD4KIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1zZWNyZXQiIHNpemU9IjE2IiBtYXhsZW5ndGg9IjE2IiB2YWx1ZT0ieyRzZWNyZXR9Ii8+CiA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnY2FsbGJhY2tfcGFzc3dvcmQnKX06PC9wPgogPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWNhbGxiYWNrcHciIHNpemU9IjE2IiBtYXhsZW5ndGg9IjE2IiB2YWx1ZT0ieyRjYWxsYmFja3B3fSIvPgogPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3R6X29mZnNldCcpfTo8L3A+CiA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgPHNlbGVjdCBuYW1lPSJ7JGFjdGlvbmlkfXR6b2Zmc2V0Ij4KICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSR0el9vZmZzZXRzIHNlbGVjdGVkPSR0em9mZnNldH0KICAgPC9zZWxlY3Q+CiAgIDxici8+CiAgIHskbW9kLT5MYW5nKCdpbmZvX3R6b2Zmc2V0Jyl9CiA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnYWxsb3dfc3Vic2NyaXB0aW9ucycpfTo8L3A+CiA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgPHNlbGVjdCBuYW1lPSJ7JGFjdGlvbmlkfWFsbG93X3N1YnNjciI+CiAgICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSR5ZXNubyBzZWxlY3RlZD0kYWxsb3dfc3Vic2NyfQogICA8L3NlbGVjdD4KIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCd0cmFuc2FjdGlvbl90aW1lbGltaXQnKX06PC9wPgogPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgIDxzZWxlY3QgbmFtZT0ieyRhY3Rpb25pZH10aW1lbGltaXQiPgogICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JHRpbWVfb3B0cyBzZWxlY3RlZD0kdGltZWxpbWl0fQogICA8L3NlbGVjdD4KIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9kdWN0aW9uX21vZGUnKX06PC9wPgogPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgIDxzZWxlY3QgbmFtZT0ieyRhY3Rpb25pZH1wcm9kX21vZGUiPgogICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JHllc25vIHNlbGVjdGVkPSRwcm9kX21vZGV9CiAgIDwvc2VsZWN0PgogPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Rlc3RfcGFyYW0nKX06PC9wPgogPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgIDxzZWxlY3QgbmFtZT0ieyRhY3Rpb25pZH10ZXN0X3BhcmFtIj4KICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSR0ZXN0X29wdHMgc2VsZWN0ZWQ9JHRlc3RfcGFyYW19CiAgIDwvc2VsZWN0PgogPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KIDxwIGNsYXNzPSJwYWdldGV4dCI+PC9wPgogPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9c3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSIvPgogPC9wPgo8L2Rpdj4KeyRmb3JtZW5kfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/return_template_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
</module>
