<?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>FeuFacebook</name>
	<version>0.9</version>
  <mincmsversion>1.8</mincmsversion>
	<help><![CDATA[PGgzPlVzYWdlPC9oMz4KICAgIDxwPkNyZWF0ZSBhbiBhcHBsaWNhdGlvbiBvbiBmYWNlYm9vayBwYWdlcyA8YSBocmVmPSJodHRwOi8vd3d3LmZhY2Vib29rLmNvbS9kZXZlbG9wZXJzLyI+d3d3LmZhY2Vib29rLmNvbS9kZXZlbG9wZXJzLzwvYT4uPC9wPgo8cD5JbnNlcnQge2Ntc19tb2R1bGUgbW9kdWxlPSdGZXVGYWNlYm9vayd9IG9uIHlvdXIgcGFnZSBvciB0ZW1wbGF0ZS48L3A+CjxwPlRPRE88L3A+CjxoMz5aJmFhY3V0ZTt2aXNsb3N0aTwvaDM+PHVsPjxsaT5Gcm9udEVuZFVzZXJzID0mZ3Q7IDEuMTA8L2xpPjxsaT5DdXN0b21Db250ZW50ID0mZ3Q7IDEuNzwvbGk+PGxpPkNHRXh0ZW5zaW9ucyA9Jmd0OyAxLjE5PC9saT48L3VsPjxoMz5QYXJhbWV0cmU8L2gzPjx1bD48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBsYW5nPSJlbl9VUyIgLSBQYXJhbWV0ZXIgJnNjYXJvbjtwZWNpZmlrdWplLCBhayZ5YWN1dGU7IGphenlrIHNhIG0mYWFjdXRlOyBwb3XFvmnFpSBwcmUgem9icmF6ZW5pZS4gTmllIHYmc2Nhcm9uO2V0a3kgbW9kdWx5IHRvIHBvZHBvcnVqJnVhY3V0ZTssIGFsZWJvIHBvdHJlYnVqJnVhY3V0ZTsuPC9saT48L3VsPg==]]></help>
	<about><![CDATA[PGJyIC8+QXV0b3I6IEt1em1hbnkgJmx0O3pkZW5vQGt1em1hbnkuYml6Jmd0OzxiciAvPjxiciAvPlZlcnppYTogMC45PGJyIC8+PGJyIC8+SGlzdCZvYWN1dGU7cmlhIHptaWVuOjxiciAvPjx1bD4KPGxpPlZlcnNpb24gMS4wIFNlcHRlbWJlciAxLCAyMDEwLiBGaXJzdCByZWxlYXNlIDwvbGk+CjwvdWw+PGJyIC8+]]></about>
	<description><![CDATA[This module is for incorporating Facebook Connect into your CMSMS site. Requires FrontEndUsers Module]]></description>
	<requires>
	  <requiredname>FrontEndUsers</requiredname>
	  <requiredversion>1.10</requiredversion>
	</requires>
	<requires>
	  <requiredname>CustomContent</requiredname>
	  <requiredversion>1.7</requiredversion>
	</requires>
	<requires>
	  <requiredname>CGExtensions</requiredname>
	  <requiredversion>1.19</requiredversion>
	</requires>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/action.admin_optionstab_edit.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCiMgTW9kdWxlOiBGZXVGYWNlYm9vawojIFpkZW5vIEt1em1hbnkgKHpkZW5vQGt1em1hbnkuYml6KQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA5IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9za2VsZXRvbi8KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgppZiAoIWlzc2V0KCRnQ21zKSkgZXhpdDsKCmlmICghJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMnKSkgewogICAgJHRoaXMtPlNldEVycm9yKCR0aGlzLT5MYW5nKCdub19wZXJtaXNpb24nKSk7CiAgICAkdGhpcy0+U2V0Q3VycmVudFRhYignb3B0aW9ucycpOwogICAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKfQoKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2ZiX2FwaV9pZCcsJHBhcmFtc1snZmJfYXBpX2lkJ10pOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnZmJfc2VjcmV0X2tleScsJHBhcmFtc1snZmJfc2VjcmV0X2tleSddKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2ZiX2xvZ2luX3Nlc3Npb24nLCRwYXJhbXNbJ2ZiX2xvZ2luX3Nlc3Npb24nXSk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdmYl9sb2dpbl9zdGF0dXMnLCRwYXJhbXNbJ2ZiX2xvZ2luX3N0YXR1cyddKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2ZiX2xvZ2luX2Nvb2tpZScsJHBhcmFtc1snZmJfbG9naW5fY29va2llJ10pOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnZmJfbG9naW5feGZibWwnLCRwYXJhbXNbJ2ZiX2xvZ2luX3hmYm1sJ10pOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnZmJfdXNlcm5hbWUnLCRwYXJhbXNbJ2ZiX3VzZXJuYW1lJ10pOwoKJHRoaXMtPlNldE1lc3NhZ2UoJHRoaXMtPkxhbmcoJ29wdGlvbnN1cGRhdGVkJykpOwoKJHRoaXMtPlNldEN1cnJlbnRUYWIoJ29wdGlvbnMnKTsKJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKPz4K]]></data>
	</file>
	<file>
	  <filename>/action.default.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBGZXUgRmFjZWJvb2sKIyBaZGVubyBLdXptYW55ICh6ZGVub0BrdXptYW55LmJpeikKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwOSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIyBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvc2tlbGV0b24vCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKaWYgKCFpc3NldCgkZ0NtcykpCiAgICBleGl0OwokdWlkID0gMDsKJGluZm8gPSBhcnJheSgpOwokbmFtZSA9ICcnOwokbG9naW5fdGVtcGxhdGUgPSAnJzsKLy8gaW5pdCBmYWNlYm9vawokZmIgPSAkdGhpcy0+ZmFjZWJvb2tfY2xpZW50KCk7CiRmYl91aWQgPSAkZmItPmdldFVzZXIoKTsKCiRmZXUgPSBjZ2VfdXRpbHM6OmdldF9tb2R1bGUoJ0Zyb250RW5kVXNlcnMnKTsKCmlmICgkZmJfdWlkKSB7CgogICAgLy8gaW5pdCBGRVUKICAgICR1c2VybmFtZSA9ICRmZXUtPkdldFVzZXJJRCgkZmJfdWlkKTsKICAgICRmYl91c2VybmFtZSA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdmYl91c2VybmFtZScsICcnKTsKCiAgICAvLyBkaXJ0eSBoYWNrIEZFVQogICAgaWYoJGZldS0+R2V0UHJlZmVyZW5jZSgnYXV0aF9tb2R1bGUnKT09ICR0aGlzLT5HZXROYW1lKCkpewogICAgICAgICR1aWQgPSAkZmV1LT5Mb2dnZWRJbklkKCk7CiAgICB9ZWxzZXsKICAgICAgICAkZmV1LT5TZXRQcmVmZXJlbmNlKCdhdXRoX21vZHVsZScsICR0aGlzLT5HZXROYW1lKCkpOwogICAgICAgICR1aWQgPSAkZmV1LT5Mb2dnZWRJbklkKCk7CiAgICAgICAgJGZldS0+U2V0UHJlZmVyZW5jZSgnYXV0aF9tb2R1bGUnLCAnX19CVUlMVElOX18nKTsKICAgIH0KICAgIC8vIGltcG9ydCBmcm9tIGZhY2Vib29rCiAgICBpZiAoISR1c2VybmFtZSAmJiAkZmJfdXNlcm5hbWUpIHsKICAgICAgICAkaW5mbyA9ICR0aGlzLT5mYWNlYm9va19nZXRfZmllbGRzKCRmYl91aWQpOwogICAgICAgICRuYW1lID0gJGluZm9bJ25hbWUnXTsKICAgICAgICAgICAgJGZldS0+U2V0VXNlclByb3BlcnR5RnVsbCgkZmJfdXNlcm5hbWUsICRpbmZvWyduYW1lJ10sICR1aWQpOwogICAgfQoKICAgIC8vIGlmIGV4aXN0IGZldSB1c2VyCiAgICBpZigkdWlkKXsKICAgICAgICBpZigkZmJfdXNlcm5hbWUpewogICAgICAgICAgICAvL2VjaG8gJG5hbWU7CiAgICAgICAgICAgICRuYW1lID0gJG5hbWU/JG5hbWU6JGZldS0+R2V0VXNlclByb3BlcnR5RnVsbCgkZmJfdXNlcm5hbWUsJHVpZCk7CiAgICAgICAgICAgICRzbWFydHktPmFzc2lnbigndXNlcm5hbWUnLCAkbmFtZSk7CiAgICAgICAgfQogICAgICAgICRzbWFydHktPmFzc2lnbigndXJsX2xvZ291dCcsICRmYi0+Z2V0TG9nb3V0VXJsKCkpOyAgICAgICAgCiAgICAgICAgJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfbG9nZ2VkaW4nLCAkZmV1LT5MYW5nKCdwcm9tcHRfbG9nb3V0JykpOwogICAgICAgICRzbWFydHktPmFzc2lnbignbG9nb3V0JywgJGZldS0+TGFuZygnbG9nb3V0JykpOwogICAgICAgICRzbWFydHktPmFzc2lnbignbG9nb3V0X2luZm8nLCAkZmV1LT5MYW5nKCdsb2dvdXRfaW5mbycpKTsKICAgICAgICAkc21hcnR5LT5hc3NpZ24oJ3VpZCcsJHVpZCk7CiAgICAgICAgJGxvZ291dF90ZW1wbGF0ZSA9ICAkZmV1LT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YWJhc2UoJ2ZldXNlcnNfbG9nb3V0Zm9ybScpOwogICAgICAgICRzbWFydHktPmFzc2lnbigndGVtcGxhdGVfbG9nb3V0JywgJGxvZ291dF90ZW1wbGF0ZSk7CiAgICB9Cn0KLy8gbG9hZCBzbWFydHkgZmI6bG9naW4gcHJlZmVyZW5jZXMKaWYgKCEkdWlkKSB7CiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2ZiX2FwaV9pZCcsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdmYl9hcGlfaWQnKSk7CiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2ZiX3NlY3JldF9rZXknLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZmJfc2VjcmV0X2tleScpKTsKICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignZmJfbG9naW5fc2Vzc2lvbicsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdmYl9sb2dpbl9zZXNzaW9uJykpOwogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmYl9sb2dpbl9zdGF0dXMnLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZmJfbG9naW5fc3RhdHVzJykpOwogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmYl9sb2dpbl9jb29raWUnLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZmJfbG9naW5fY29va2llJykpOwogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmYl9sb2dpbl94ZmJtbCcsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdmYl9sb2dpbl94ZmJtbCcpKTsKICAgICRzbWFydHktPmFzc2lnbigndWlkJywnJyk7ICRsb2dpbl90ZW1wbGF0ZSA9ICAkZmV1LT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgne2Ntc19tb2R1bGUgbW9kdWxlPSJGcm9udEVuZFVzZXJzIiBmb3JtPSJsb2dpbiJ9Jyk7CiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RlbXBsYXRlX2xvZ2luJywgJGxvZ2luX3RlbXBsYXRlKTsKICAgIAp9CgokdGVtcGxhdGUgPSAnYnV0dG9uX3RlbXBsYXRlJyAuICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdjdXJyZW50X2J1dHRvbl90ZW1wbGF0ZScpOwppZiAoaXNzZXQoJHBhcmFtc1sndGVtcGxhdGUnXSkpIHsKICAgICR0ZW1wbGF0ZSA9ICdidXR0b25fdGVtcGxhdGUnIC4gJHBhcmFtc1sndGVtcGxhdGUnXTsKfQplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YWJhc2UoJHRlbXBsYXRlKTsKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBGZXVGYWNlYm9vawojIFpkZW5vIEt1em1hbnkgKHpkZW5vQGt1em1hbnkuYml6KQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA5IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9za2VsZXRvbi8KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgppZiAoIWlzc2V0KCRnQ21zKSkKICAgIGV4aXQ7CgokZmV1ID0gY2dlX3V0aWxzOjpnZXRfbW9kdWxlKCdGcm9udEVuZFVzZXJzJyk7CgppZiAoISRmZXUtPkdldFByZWZlcmVuY2UoJ2F1dG9fY3JlYXRlX3Vua25vd24nKSkgewogICAgZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkdGhpcy0+TGFuZygnZW5hYmxlJykgLiAnICInIC4gJGZldS0+TGFuZygncHJvbXB0X2F1dG9fY3JlYXRlX3Vua25vd24nKSAuICciICgnLiRmZXUtPkdldEZyaWVuZGx5TmFtZSgpLicpJyk7Cn0KaWYgKCRmZXUtPkdldFByZWZlcmVuY2UoJ3VzZXJuYW1lX2lzX2VtYWlsJykpIHsKICAgIGVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJ2Rpc2FibGUnKSAuICc6ICInIC4gJGZldS0+TGFuZygncHJvbXB0X3VzZXJuYW1lX2lzX2VtYWlsJykuJyIgKCcuJGZldS0+R2V0RnJpZW5kbHlOYW1lKCkuJyknKTsKfQppZiAoISR0aGlzLT5HZXRQcmVmZXJlbmNlKCdmYl9hcGlfaWQnKSkgewogICAgZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkdGhpcy0+TGFuZygnZmlsbCcpIC4gJzogIicgLiAkdGhpcy0+TGFuZygnZmJfYXBpX2lkJykuJyIgKCcuJHRoaXMtPkdldEZyaWVuZGx5TmFtZSgpLicpJyk7Cn0KaWYgKCEkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZmJfc2VjcmV0X2tleScpKSB7CiAgICBlY2hvICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5MYW5nKCdmaWxsJykgLiAnOiAiJyAuICR0aGlzLT5MYW5nKCdmYl9zZWNyZXRfa2V5JykuJyIgKCcuJHRoaXMtPkdldEZyaWVuZGx5TmFtZSgpLicpJyk7Cn0KCgoKCiMjIFRBQiBIRUFERVJTIGZyb20gQ0dFCmVjaG8gJHRoaXMtPlN0YXJ0VGFiSGVhZGVycygpOwppZiAoJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFRlbXBsYXRlcycpKSB7CiAgICBlY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ2J1dHRvbl90ZW1wbGF0ZScsICR0aGlzLT5MYW5nKCdidXR0b25fdGVtcGxhdGUnKSk7Cn0KCgppZiAoJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMnKSkgewogICAgZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdvcHRpb25zJywgJHRoaXMtPkxhbmcoJ29wdGlvbnMnKSk7Cn0KZWNobyAkdGhpcy0+RW5kVGFiSGVhZGVycygpOwoKIwojVGhlIGNvbnRlbnQgb2YgdGhlIHRhYnMKIwplY2hvICR0aGlzLT5TdGFydFRhYkNvbnRlbnQoKTsKaWYgKCR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBUZW1wbGF0ZXMnKSkgewogICAgZWNobyAkdGhpcy0+U3RhcnRUYWIoJ2J1dHRvbl90ZW1wbGF0ZScpOwogICAgZWNobyAnPGgzPicgLiAkdGhpcy0+TGFuZygnYnV0dG9uX3RlbXBsYXRlJykgLiAnPC9oMz4nOwogICAgZWNobyAkdGhpcy0+U2hvd1RlbXBsYXRlTGlzdCgkaWQsICRyZXR1cm5pZCwgJ2J1dHRvbl90ZW1wbGF0ZScsCiAgICAgICAgICAgICdkZWZhdWx0X2J1dHRvbl90ZW1wbGF0ZScsCiAgICAgICAgICAgICdidXR0b25fdGVtcGxhdGUnLAogICAgICAgICAgICAnY3VycmVudF9idXR0b25fdGVtcGxhdGUnLAogICAgICAgICAgICAkdGhpcy0+TGFuZygnYWRkZWRpdF9idXR0b25fdGVtcGxhdGUnKSwgJycpOwogICAgZWNobyAkdGhpcy0+RW5kVGFiKCk7Cn0KCgoKaWYgKCR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBTaXRlIFByZWZlcmVuY2VzJykpIHsKICAgIGVjaG8gJHRoaXMtPlN0YXJ0VGFiKCdvcHRpb25zJywgJHBhcmFtcyk7CiAgICBpbmNsdWRlKGRpcm5hbWUoX19GSUxFX18pIC4gJy9mdW5jdGlvbi5hZG1pbl9vcHRpb25zdGFiLnBocCcpOwogICAgZWNobyAkdGhpcy0+RW5kVGFiKCk7Cn0KZWNobyAkdGhpcy0+RW5kVGFiQ29udGVudCgpOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/FeuFacebook.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBGZXVGYWNlYm9vawojIFpkZW5vIEt1em1hbnkgKHpkZW5vQGt1em1hbnkuYml6KQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA5IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9za2VsZXRvbi8KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiRjZ2V4dGVuc2lvbnMgPSBjbXNfam9pbl9wYXRoKCRnQ21zLT5jb25maWdbJ3Jvb3RfcGF0aCddLCAnbW9kdWxlcycsCiAgICAgICAgICAgICAgICAnQ0dFeHRlbnNpb25zJywgJ0NHRXh0ZW5zaW9ucy5tb2R1bGUucGhwJyk7CmlmICghaXNfcmVhZGFibGUoJGNnZXh0ZW5zaW9ucykpIHsKICAgIGVjaG8gJzxoMT48Zm9udCBjb2xvcj0icmVkIj5FUlJPUjogVGhlIENHRXh0ZW5zaW9ucyBtb2R1bGUgY291bGQgbm90IGJlIGZvdW5kLjwvZm9udD48L2gxPic7CiAgICByZXR1cm47Cn0KcmVxdWlyZV9vbmNlKCRjZ2V4dGVuc2lvbnMpOwpyZXF1aXJlX29uY2UgZGlybmFtZShfX0ZJTEVfXykgLiAnL2xpYi9mYWNlYm9vay5waHAnOwoKY2xhc3MgRmV1RmFjZWJvb2sgZXh0ZW5kcyBDR0V4dGVuc2lvbnMgewogICAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgIEZldUZhY2Vib29rKCkgLS0gQ29uc3RydWN0b3IKICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCgogICAgZnVuY3Rpb24gX19jb25zdHJ1Y3QoKSB7CiAgICAgICAgcGFyZW50OjpDTVNNb2R1bGUoKTsKICAgIH0KCiAgICBmdW5jdGlvbiBHZXROYW1lKCkgewogICAgICAgIHJldHVybiAnRmV1RmFjZWJvb2snOwogICAgfQoKICAgIGZ1bmN0aW9uIEdldEZyaWVuZGx5TmFtZSgpIHsKICAgICAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ2ZyaWVuZGx5bmFtZScpOwogICAgfQoKICAgIGZ1bmN0aW9uIEdldFZlcnNpb24oKSB7CiAgICAgICAgcmV0dXJuICcwLjknOwogICAgfQoKICAgIGZ1bmN0aW9uIEdldEhlbHAoKSB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5MYW5nKCdoZWxwJyk7CiAgICB9CgogICAgZnVuY3Rpb24gR2V0QXV0aG9yKCkgewogICAgICAgIHJldHVybiAnS3V6bWFueSc7CiAgICB9CgogICAgZnVuY3Rpb24gR2V0QXV0aG9yRW1haWwoKSB7CiAgICAgICAgcmV0dXJuICd6ZGVub0BrdXptYW55LmJpeic7CiAgICB9CgogICAgZnVuY3Rpb24gR2V0Q2hhbmdlTG9nKCkgewogICAgICAgIHJldHVybiAkdGhpcy0+TGFuZygnY2hhbmdlbG9nJyk7CiAgICB9CgogICAgZnVuY3Rpb24gSXNQbHVnaW5Nb2R1bGUoKSB7CiAgICAgICAgcmV0dXJuIHRydWU7CiAgICB9CgogICAgZnVuY3Rpb24gSGFzQWRtaW4oKSB7CiAgICAgICAgcmV0dXJuIHRydWU7CiAgICB9CgogICAgZnVuY3Rpb24gR2V0QWRtaW5TZWN0aW9uKCkgewogICAgICAgIHJldHVybiAndXNlcnNncm91cHMnOwogICAgfQoKICAgIGZ1bmN0aW9uIEdldEFkbWluRGVzY3JpcHRpb24oKSB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5MYW5nKCdtb2RkZXNjcmlwdGlvbicpOwogICAgfQoKICAgIGZ1bmN0aW9uIFZpc2libGVUb0FkbWluVXNlcigpIHsKICAgICAgICByZXR1cm4gJHRoaXMtPkNoZWNrUGVybWlzc2lvbignVXNlIEZldUZhY2Vib29rJyk7CiAgICB9CgogICAgZnVuY3Rpb24gR2V0RGVwZW5kZW5jaWVzKCkgewogICAgICAgIHJldHVybiBhcnJheSgnRnJvbnRFbmRVc2VycycgPT4gJzEuMTAnLCAnQ3VzdG9tQ29udGVudCcgPT4gJzEuNycsICdDR0V4dGVuc2lvbnMnID0+ICcxLjE5Jyk7CiAgICB9CgogICAgZnVuY3Rpb24gTWluaW11bUNNU1ZlcnNpb24oKSB7CiAgICAgICAgcmV0dXJuICIxLjgiOwogICAgfQoKICAgIGZ1bmN0aW9uIFNldFBhcmFtZXRlcnMoKSB7CiAgICAgICAgJHRoaXMtPlJlc3RyaWN0VW5rbm93blBhcmFtcygpOwogICAgICAgICR0aGlzLT5SZWdpc3Rlck1vZHVsZVBsdWdpbigpOwogICAgfQoKICAgIGZ1bmN0aW9uIEdldEV2ZW50RGVzY3JpcHRpb24oJGV2ZW50bmFtZSkgewogICAgICAgIHJldHVybiAkdGhpcy0+TGFuZygnZXZlbnRfaW5mb18nIC4gJGV2ZW50bmFtZSk7CiAgICB9CgogICAgZnVuY3Rpb24gR2V0RXZlbnRIZWxwKCRldmVudG5hbWUpIHsKICAgICAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ2V2ZW50X2hlbHBfJyAuICRldmVudG5hbWUpOwogICAgfQoKICAgIGZ1bmN0aW9uIEluc3RhbGxQb3N0TWVzc2FnZSgpIHsKICAgICAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ3Bvc3RpbnN0YWxsJyk7CiAgICB9CgogICAgZnVuY3Rpb24gVW5pbnN0YWxsUG9zdE1lc3NhZ2UoKSB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5MYW5nKCdwb3N0dW5pbnN0YWxsJyk7CiAgICB9CgogICAgZnVuY3Rpb24gVW5pbnN0YWxsUHJlTWVzc2FnZSgpIHsKICAgICAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ3JlYWxseV91bmluc3RhbGwnKTsKICAgIH0KCiAgICBmdW5jdGlvbiBmYWNlYm9va19jbGllbnQoKSB7CiAgICAgICAgLy8gQ3JlYXRlIG91ciBBcHBsaWNhdGlvbiBpbnN0YW5jZS4gICAgICAgIAogICAgICAgIHN0YXRpYyAkZmFjZWJvb2sgPSBudWxsOwogICAgICAgIGlmICgkZmFjZWJvb2sgPT09IG51bGwpIHsKICAgICAgICAgICAgJGZhY2Vib29rID0gbmV3IEZhY2Vib29rKGFycmF5KAogICAgICAgICAgICAgICAgICAgICAgICAnYXBwSWQnID0+ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCJmYl9hcGlfaWQiKSwKICAgICAgICAgICAgICAgICAgICAgICAgJ3NlY3JldCcgPT4gJHRoaXMtPkdldFByZWZlcmVuY2UoImZiX3NlY3JldF9rZXkiKSwKICAgICAgICAgICAgICAgICAgICAgICAgJ2Nvb2tpZScgPT4gdHJ1ZSwKICAgICAgICAgICAgICAgICAgICApKTsKICAgICAgICB9CgogICAgICAgIGlmICghJGZhY2Vib29rKSB7CiAgICAgICAgICAgIGVycm9yX2xvZygiZXJyb3IgZ2V0dGluZyBmYWNlYm9vayBjbGllbnQiKTsKICAgICAgICB9CgogICAgICAgIEZhY2Vib29rOjokQ1VSTF9PUFRTW0NVUkxPUFRfU1NMX1ZFUklGWVBFRVJdID0gZmFsc2U7CiAgICAgICAgRmFjZWJvb2s6OiRDVVJMX09QVFNbQ1VSTE9QVF9TU0xfVkVSSUZZSE9TVF0gPSAyOwoKICAgICAgICByZXR1cm4gJGZhY2Vib29rOwogICAgfQoKICAgIC8qKgogICAgICogR2V0IGZpZWxkcyBmcm9tIGZhY2Vib29rCiAgICAgKiBAcGFyYW0gaW50ICRmYl91aWQKICAgICAqIEBwYXJhbSBhcnJheSAkZmllbGRzCiAgICAgKiBAcmV0dXJuIGFycmF5CiAgICAgKi8KICAgIGZ1bmN0aW9uIGZhY2Vib29rX2dldF9maWVsZHMoJGZiX3VpZCkgewogICAgICAgICB0cnkgewogICAgICAgICAgICAkaW5mb3MgPSAkdGhpcy0+ZmFjZWJvb2tfY2xpZW50KCktPmFwaSgnL21lJyk7CgogICAgICAgICAgICBpZiAoZW1wdHkoJGluZm9zKSkgewogICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuICRpbmZvczsKICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gJGUpIHsKICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgfQogICAgfQoKICAgIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICBHZXRDb25zdW1lcgogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KCiAgICBwdWJsaWMgZnVuY3Rpb24gR2V0RmV1QXV0aENvbnN1bWVyKCkgewogICAgICAgICRjb25zdW1lciA9IG5ldyBmZXVfZmFjZWJvb2tfY29uc3VtZXI7CiAgICAgICAgcmV0dXJuICRjb25zdW1lcjsKICAgIH0KCn0KPz4K]]></data>
	</file>
	<file>
	  <filename>/function.admin_accounts.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBGZXVGYWNlYm9vawojIFpkZW5vIEt1em1hbnkgKHpkZW5vQGt1em1hbnkuYml6KQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA5IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9za2VsZXRvbi8KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgppZiAoIWlzc2V0KCRnQ21zKSkKICAgIGV4aXQ7CmVjaG8gJHRoaXMtPlN0YXJ0VGFiKCdhY2NvdW50cycsICRwYXJhbXMpOwoKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdudW1saW5rcycsICR0aGlzLT5jb3VudGxpbmtzKCkpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2l0ZW1zJywgJHRoaXMtPmdldGFsbGxpbmtzKCRpZCwgJHJldHVybmlkKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignbGlua3RpdGxlJywgJHRoaXMtPkxhbmcoJ2xpbmt0aXRsZScpKTsKCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnYWRtaW5fYWNjb3VudHMudHBsJyk7CmVjaG8gJHRoaXMtPkVuZFRhYigpOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/function.admin_optionstab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBGZXVGYWNlYm9vawojIFpkZW5vIEt1em1hbnkgKHpkZW5vQGt1em1hbnkuYml6KQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA5IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9za2VsZXRvbi8KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgppZiAoIWlzc2V0KCRnQ21zKSkgZXhpdDsKCiRzbWFydHktPmFzc2lnbignc3RhcnRmb3JtJywgJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsICdhZG1pbl9vcHRpb25zdGFiX2VkaXQnLCAkcmV0dXJuaWQsJ2dldCcpKTsKJHNtYXJ0eS0+YXNzaWduKCdlbmRmb3JtJywgJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CiRzbWFydHktPmFzc2lnbignc3VibWl0JywgJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ29wdGlvbnNzdWJtaXRidXR0b24nLCAkdGhpcy0+TGFuZygnc3VibWl0JykpKTsKCiR0aGlzLT5zbWFydHktPmFzc2lnbignZmJfYXBpX2lkJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdmYl9hcGlfaWQnLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZmJfYXBpX2lkJyksICcnKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignZmJfc2VjcmV0X2tleScsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnZmJfc2VjcmV0X2tleScsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdmYl9zZWNyZXRfa2V5JyksICcnKSk7CgokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2ZiX2xvZ2luX3Nlc3Npb24nLCAkdGhpcy0+Q3JlYXRlSW5wdXRZZXNOb0Ryb3Bkb3duKCRpZCwgJ2ZiX2xvZ2luX3Nlc3Npb24nLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZmJfbG9naW5fc2Vzc2lvbicpKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignZmJfbG9naW5fc3RhdHVzJywgJHRoaXMtPkNyZWF0ZUlucHV0WWVzTm9Ecm9wZG93bigkaWQsICdmYl9sb2dpbl9zdGF0dXMnLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZmJfbG9naW5fc3RhdHVzJykpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmYl9sb2dpbl9jb29raWUnLCAkdGhpcy0+Q3JlYXRlSW5wdXRZZXNOb0Ryb3Bkb3duKCRpZCwgJ2ZiX2xvZ2luX2Nvb2tpZScsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdmYl9sb2dpbl9jb29raWUnKSkpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2ZiX2xvZ2luX3hmYm1sJywgJHRoaXMtPkNyZWF0ZUlucHV0WWVzTm9Ecm9wZG93bigkaWQsICdmYl9sb2dpbl94ZmJtbCcsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdmYl9sb2dpbl94ZmJtbCcpKSk7CgokY29udGVudG9wcyA9ICYgJGdDbXMtPkdldENvbnRlbnRPcGVyYXRpb25zKCk7CiRzbWFydHktPmFzc2lnbigncmVkaXJlY3RfcGFnZV9hZnRlcl9sb2dpbicsCiAgICAgICAgJGNvbnRlbnRvcHMtPkNyZWF0ZUhpZXJhcmNoeURyb3Bkb3duKCcnLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgncmVkaXJlY3RfcGFnZV9hZnRlcl9sb2dpbicpLAogICAgICAgICAgICAgICAgJGlkIC4gJ3JlZGlyZWN0X3BhZ2VfYWZ0ZXJfbG9naW4nLCAxKSk7CgoKJGZldSA9ICR0aGlzLT5HZXRNb2R1bGVJbnN0YW5jZSgnRnJvbnRFbmRVc2VycycpOwokcHJvcGVydGllc19kZWYgPSAkZmV1LT5HZXRQcm9wZXJ0eURlZm5zKCk7CiRwcm9wZXJ0aWVzID0gYXJyYXkoKTsKJHByb3BlcnRpZXNbJHRoaXMtPkxhbmcoJ25vbmUnKV0gPSAnJzsKaWYgKCRwcm9wZXJ0aWVzX2RlZikgewogICAgZm9yZWFjaCAoJHByb3BlcnRpZXNfZGVmIGFzICRrZXkgPT4gJHZhbHVlKSB7CiAgICAgICAgJHByb3BlcnRpZXNbJHZhbHVlWyJwcm9tcHQiXV0gPSAkdmFsdWVbIm5hbWUiXTsKICAgIH0KfQoKJHNlbGVjdGVkID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2ZiX3VzZXJuYW1lJywnJyk7CiRzbWFydHktPmFzc2lnbignZmJfdXNlcm5hbWUnLAogICAgICAgICR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ2ZiX3VzZXJuYW1lJywgJHByb3BlcnRpZXMsIC0xLCAkc2VsZWN0ZWQpKTsKCgovLyBEaXNwbGF5IHRoZSBwb3B1bGF0ZWQgdGVtcGxhdGUKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdhZG1pbnByZWZzLnRwbCcpOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/images/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPg0KPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHhtbG5zOmZiPSJodHRwOi8vd3d3LmZhY2Vib29rLmNvbS8yMDA4L2ZibWwiPg0KPGJvZHk+DQo8ZGl2IGlkPSJjb21tZW50c19wb3N0Ij4NCiAgPGgzPkxlYXZlIGEgY29tbWVudDo8L2gzPg0KICA8Zm9ybSBtZXRob2Q9IlBPU1QiPg0KICA8ZGl2IGlkPSJ1c2VyIj4NCiAgICBOYW1lOiA8aW5wdXQgbmFtZT0ibmFtZSIgc2l6ZT0iMjciPjxiciAvPg0KICAgIDxmYjpsb2dpbi1idXR0b24gb25sb2dpbj0idXBkYXRlX3VzZXJfYm94KCk7Ij48L2ZiOmxvZ2luLWJ1dHRvbj4NCiAgPC9kaXY+DQogICA8dGV4dGFyZWEgbmFtZT0iY29tbWVudCIgcm93cz0iNSIgY29scz0iMzAiPjwvdGV4dGFyZWE+IDxiciAvPg0KICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTdWJtaXQgQ29tbWVudCI+DQogIDwvZm9ybT4NCjwvZGl2Pg0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg0KZnVuY3Rpb24gdXBkYXRlX3VzZXJfYm94KCkgew0KDQogIHZhciB1c2VyX2JveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1c2VyIik7DQoNCiAgLy8gYWRkIGluIHNvbWUgWEZCTUwuIG5vdGUgdGhhdCB3ZSBzZXQgdXNleW91PWZhbHNlIHNvIGl0IGRvZXNuJ3QgZGlzcGxheSAieW91Ig0KICB1c2VyX2JveC5pbm5lckhUTUwgPQ0KICAgICAgIjxzcGFuPiINCiAgICArICI8ZmI6cHJvZmlsZS1waWMgdWlkPWxvZ2dlZGludXNlciBmYWNlYm9vay1sb2dvPXRydWU+PC9mYjpwcm9maWxlLXBpYz4iDQogICAgKyAiV2VsY29tZSwgPGZiOm5hbWUgdWlkPWxvZ2dlZGludXNlciB1c2V5b3U9ZmFsc2U+PC9mYjpuYW1lPi4gWW91IGFyZSBzaWduZWQgaW4gd2l0aCB5b3VyIEZhY2Vib29rIGFjY291bnQuIg0KICAgICsgIjwvc3Bhbj4iOw0KDQogIC8vIGJlY2F1c2UgdGhpcyBpcyBYRkJNTCwgd2UgbmVlZCB0byB0ZWxsIEZhY2Vib29rIHRvIHJlLXByb2Nlc3MgdGhlIGRvY3VtZW50IA0KICBGQi5YRkJNTC5Ib3N0LnBhcnNlRG9tVHJlZSgpOw0KfQ0KPC9zY3JpcHQ+DQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwOi8vc3RhdGljLmFrLmNvbm5lY3QuZmFjZWJvb2suY29tL2pzL2FwaV9saWIvdjAuNC9GZWF0dXJlTG9hZGVyLmpzLnBocCI+PC9zY3JpcHQ+DQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+DQogICBGQi5pbml0KCJlYTNlODBhNTM4NTMyMDI3ZmRjM2IyZWJiMWM4ZmIwMyIsInhkX3JlY2VpdmVyLmh0bSIpOw0KPC9zY3JpcHQ+DQo8L2JvZHk+DQo8L2h0bWw+]]></data>
	</file>
	<file>
	  <filename>/lang/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/en_US.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[IDw/cGhwCiRsYW5nWydmcmllbmRseW5hbWUnXSA9ICdGZXVGYWNlYm9vayBNb2R1bGUnOwokbGFuZ1snbW9kZGVzY3JpcHRpb24nXSA9ICdUaGlzIG1vZHVsZSBpcyBmb3IgaW5jb3Jwb3JhdGluZyBGYWNlYm9vayBDb25uZWN0IGludG8geW91ciBDTVNNUyBzaXRlLiBSZXF1aXJlcyBGcm9udEVuZFVzZXJzIE1vZHVsZSc7CiRsYW5nWydvcHRpb25zdXBkYXRlZCddID0gJ1NldHRpbmdzIHVwZGF0ZWQnOwokbGFuZ1snbm9fcGVybWlzaW9uJ10gPSAnWW91IGRvIG5vdCBoYXZlIHRoZSBuZWNlc3NhcnkgcmlnaHRzIGZvciB0aGUgbWFuYWdlbWVudCBvZiB0aGlzIHNlY3Rpb24uJzsKCiNpbnN0YWxsLCB1bmluc3RhbGwsIGV0Yy4KJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAnRmV1RmFjZWJvb2sgTW9kdWxlIGluc3RhbGxlZC4nIDsKJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICdGZXVGYWNlYm9vayBNb2R1bGUgdW5pbnN0YWxsZWQuJzsKJGxhbmdbJ3JlYWxseV91bmluc3RhbGwnXSA9ICdSZWFsbHk/IFlvdVwncmUgc3VyZSB5b3Ugd2FudCB0byB1bmluc3RhbGwgdGhpcyBtb2R1bGU/JzsKJGxhbmdbJ3VuaW5zdGFsbGVkJ10gPSAnTW9kdWxlIFVuaW5zdGFsbGVkLic7CiRsYW5nWydpbnN0YWxsZWQnXSA9ICdNb2R1bGUgdmVyc2lvbiAlcyBpbnN0YWxsZWQuJzsKJGxhbmdbJ3ByZWZzdXBkYXRlZCddID0gJ01vZHVsZSBwcmVmZXJlbmNlcyB1cGRhdGVkLic7CiRsYW5nWyd1cGdyYWRlZCddID0gJ01vZHVsZSB1cGdyYWRlZCB0byB2ZXJzaW9uICVzLic7CgojIyMjIEFETUlOICMjIyMKJGxhbmdbJ2VuYWJsZSddID0gJ0VuYWJsZSc7CiRsYW5nWydkaXNhYmxlJ10gPSAnRGlzYWJsZSc7CiRsYW5nWydmaWxsJ10gPSAnRmlsbCc7CgojIyMjIE9QVElPTlMgIyMjIwokbGFuZ1snc3VibWl0J10gPSAnU3VibWl0JzsKJGxhbmdbJ29wdGlvbnMnXSA9ICdTZXR0aW5ncyc7CiRsYW5nWydnZW5lcmFsX29wdGlvbnMnXSA9ICdHZW5lcmFsIFNldHRpbmdzJzsKJGxhbmdbJ2ZhY2Vib29rX29wdGlvbnMnXSA9ICdGYWNlYm9vayBzZXR0aW5ncyc7CiRsYW5nWydmYl9hcGlfaWQnXSA9ICdBcHBsaWNhdGlvbiBJRCc7CiRsYW5nWydmYl9zZWNyZXRfa2V5J10gPSAnQXBsaWNhdGlvbiBzZXJjcmV0IGtleSc7CiRsYW5nWydmYl9sb2dpbl9zZXNzaW9uJ10gPSAnRG9uXCd0IHJlZmV0Y2ggdGhlIHNlc3Npb24gd2hlbiBQSFAgYWxyZWFkeSBoYXMgaXQnOwokbGFuZ1snZmJfbG9naW5fc3RhdHVzJ10gPSAnQ2hlY2sgbG9naW4gc3RhdHVzJzsKJGxhbmdbJ2ZiX2xvZ2luX2Nvb2tpZSddID0gJ0VuYWJsZSBjb29raWVzIHRvIGFsbG93IHRoZSBzZXJ2ZXIgdG8gYWNjZXNzIHRoZSBzZXNzaW9uJzsKJGxhbmdbJ2ZiX2xvZ2luX3hmYm1sJ10gPSAnUGFyc2UgWEZCTUwnOwokbGFuZ1sncmVkaXJlY3RfcGFnZV9hZnRlcl9sb2dpbiddID0gJ1JlZGlyZWN0IHBhZ2UgYWZ0ZXIgbG9naW4nOwokbGFuZ1snYWxsb3dfZmV1X2dyb3VwcyddID0gJ0FsbG93IGdyb3VwcyBmcm9tIEZFVSBtb2R1bGUnOwoKIyMjIyBURU1QTEFURVMgIyMjIwokbGFuZ1snYnV0dG9uX3RlbXBsYXRlJ10gPSAnQnV0dG9uIHRlbXBsYXRlJzsKJGxhbmdbJ2FkZGVkaXRfYnV0dG9uX3RlbXBsYXRlJ10gPSAnQWRkL0VkaXQgYnV0dG9uIHRlbXBsYXRlJzsKCiMjIyMgTU9EVUxFICMjIyMKJGxhbmdbJ25vbmUnXSA9ICdOb25lJzsKJGxhbmdbJ3VzZXJuYW1lJ10gPSAnVXNlcm5hbWUnOwokbGFuZ1snbG9nb3V0J10gPSAnTG9nb3V0JzsKJGxhbmdbJ2luZm9fbG9nb3V0J10gPSAnTG9nb3V0JzsKJGxhbmdbJ3BpY19iaWcnXSA9ICdCaWcgcHJvZmlsZSBwaWN0dXJlJzsKJGxhbmdbJ2ZhY2Vib29rX2ltcG9ydF91c2VyX2luZm8nXSA9ICdJbXBvcnQgdXNlciBpbmZvIGZyb20gZmFjZWJvb2snOwoKI25vdGlmaWNhdGlvbnMKJGxhbmdbJ2FjY2Vzc2RlbmllZCddID0gJ0FjY2VzcyBEZW5pZWQuIFBsZWFzZSBjaGVjayB5b3VyIHBlcm1pc3Npb25zLic7CiRsYW5nWydlcnJvciddID0gJ0Vycm9yISBBbiBlcnJvciBvY2N1cnJlZC4nOwokbGFuZ1snc2V0dGluZ3NfdXBkYXRlZCddID0gIllvdXIgc2V0dGluZ3MgaGF2ZSBiZWVuIHNhdmVkLiI7CiRsYW5nWydmZWVkX3JlZ2lzdGVyZWQnXSA9ICJZb3VyIG9uZSBsaW5lIHN0b3J5IGZlZWQgaGFzIGJlZW4gcmVnaXN0ZXJlZC4iOwoKI2NoYW5nZWxvZyBhbmQgaGVscAokbGFuZ1snY2hhbmdlbG9nJ10gPSAnPHVsPgo8bGk+VmVyc2lvbiAxLjAgU2VwdGVtYmVyIDEsIDIwMTAuIEZpcnN0IHJlbGVhc2UgPC9saT4KPC91bD4nOwokbGFuZ1snaGVscCddID0gJzxoMz5Vc2FnZTwvaDM+CiAgICA8cD5DcmVhdGUgYW4gYXBwbGljYXRpb24gb24gZmFjZWJvb2sgcGFnZXMgPGEgaHJlZj0iaHR0cDovL3d3dy5mYWNlYm9vay5jb20vZGV2ZWxvcGVycy8iPnd3dy5mYWNlYm9vay5jb20vZGV2ZWxvcGVycy88L2E+LjwvcD4KPHA+SW5zZXJ0IHtjbXNfbW9kdWxlIG1vZHVsZT1cJ0ZldUZhY2Vib29rXCd9IG9uIHlvdXIgcGFnZSBvciB0ZW1wbGF0ZS48L3A+CjxwPlRPRE88L3A+Cic7CgojdGFicwokbGFuZ1sndGFiX3NldHRpbmdzJ10gPSAiU2V0dGluZ3MiOwoKPz4K]]></data>
	</file>
	<file>
	  <filename>/lib/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/class.feu_facebook_consumer.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMDggYnkgUm9iZXJ0IENhbXBiZWxsIAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIGFsbG93IGEgc2Vjb25kYXJ5IHR5cGUgb2YgCiMgIGF1dGhlbnRpY2F0aW9uIHRvIHRoZSBGRVUgbW9kdWxlLiAgVGhpcyBhZGRvbiBhbGxvd3MgdXNpbmcgdGhlIGFwYWNoZQojICBCQVNJQyBhdXRoZW50aWNhdGlvbi4KIyAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmNsYXNzIGZldV9mYWNlYm9va19jb25zdW1lciBpbXBsZW1lbnRzIGZldV9hdXRoX2NvbnN1bWVyCnsKICBwdWJsaWMgZnVuY3Rpb24gaXNfYXV0aGVudGljYXRlZCgpCiAgewogICAgICAgJGZldWZhY2Vib29rID0gY2dlX3V0aWxzOjpnZXRfbW9kdWxlKCdGZXVGYWNlYm9vaycpIDsKICAgICAgICRmYiA9ICRmZXVmYWNlYm9vay0+ZmFjZWJvb2tfY2xpZW50KCk7CiAgICAgICAkZmJfdWlkID0gJGZiLT5nZXRVc2VyKCk7CiAgICAgICBpZigkZmJfdWlkKSByZXR1cm4gVFJVRTsKCiAgICByZXR1cm4gRkFMU0U7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2NhcGFiaWxpdGllcygpCiAgewogICAgJHJlcyA9IGFycmF5KCk7CiAgICAkcmVzW10gPSBmZXVfYXV0aF9jb25zdW1lcjo6Q0FQQUJJTElUWV9MT0dJTjsKICAgICRyZXNbXSA9IGZldV9hdXRoX2NvbnN1bWVyOjpDQVBBQklMSVRZX0xPR09VVDsKICAgICRyZXNbXSA9IGZldV9hdXRoX2NvbnN1bWVyOjpDQVBBQklMSVRZX1VTRVNURENIQU5HRVNFVFRJTkdTOwogICAgcmV0dXJuICRyZXM7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gaGFzX2NhcGFiaWxpdHkoJGZsYWcpCiAgewogICAgaWYoIGluX2FycmF5KCRmbGFnLCR0aGlzLT5nZXRfY2FwYWJpbGl0aWVzKCkpICkKICAgICAgcmV0dXJuIFRSVUU7CiAgICByZXR1cm4gRkFMU0U7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2xvZ2luX2Rpc3BsYXkoJGlkLCRyZXR1cm5pZCwkcGFyYW1zKQogIHsKICAgICRtb2QgPSBjZ2VfdXRpbHM6OmdldF9tb2R1bGUoJ0ZldUZhY2Vib29rJyk7CiAgICAkdHh0ID0gJG1vZC0+RG9BY3Rpb24oJ2RlZmF1bHQnLCRpZCwkcGFyYW1zLCRyZXR1cm5pZCk7CiAgICByZXR1cm4gJHR4dDsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBnZXRfbG9nb3V0X2Rpc3BsYXkoJGlkLCRyZXR1cm5pZCwkcGFyYW1zKQogIHsKICAgICRtb2QgPSBjZ2VfdXRpbHM6OmdldF9tb2R1bGUoJ0Zyb250RW5kVXNlcnMnKTsKICAgIHJldHVybiAkbW9kLT5Eb0FjdGlvbignbG9nb3V0JywkaWQsJHBhcmFtcywkcmV0dXJuaWQpOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIGdldF9jaGFuZ2VzZXR0aW5nc19kaXNwbGF5KCRpZCwkcmV0dXJuaWQsJHBhcmFtcykKICB7CiAgICAvLyB3ZSdyZSBnb25uYSBjaGVhdCBhbmQgdXNlIHRoZSBGRVUgc3RhbmRhcmQgY2hhbmdlc2V0dGluZ3MgZm9ybS4KICAgICRmZXUgPSBjZ2VfdXRpbHM6OmdldF9tb2R1bGUoJ0Zyb250RW5kVXNlcnMnKTsKICAgICRmZXUtPkRvQWN0aW9uKCdjaGFuZ2VzZXR0aW5ncycsJGlkLCRwYXJhbXMsJHJldHVybmlkKTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBnZXRfdXNlcl9pbmZvKCkKICB7CiAgICBkaWUoJ2dldF9zZXJ2ZXJfaW5mbyBub3QgaW1wbGVtZW50ZWQnKTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBnZXRfY29ubmVjdGluZ19wcm9wZXJ0eV9uYW1lKCkKICB7CiAgICByZXR1cm4gc2VsZjo6UFJPUEVSVFlfVVNFUk5BTUU7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3VuaXF1ZV9pZGVudGlmaWVyKCkKICB7CiAgICAkZmV1ZmFjZWJvb2sgPSBjZ2VfdXRpbHM6OmdldF9tb2R1bGUoJ0ZldUZhY2Vib29rJykgOwogICAgJGZiID0gJGZldWZhY2Vib29rLT5mYWNlYm9va19jbGllbnQoKTsKICAgICRmYl91aWQgPSAkZmItPmdldFVzZXIoKTsKICAgICRpbmZvID0gJGZldWZhY2Vib29rLT5mYWNlYm9va19nZXRfZmllbGRzKCRmYl91aWQpOwogICAgaWYoaXNTZXQoJGluZm9bImlkIl0pKSAgcmV0dXJuICRpbmZvWyJpZCJdOwogICAgcmV0dXJuIEZBTFNFOwogIH0KfQoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/facebook.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmlmICghZnVuY3Rpb25fZXhpc3RzKCdjdXJsX2luaXQnKSkgewogIHRocm93IG5ldyBFeGNlcHRpb24oJ0ZhY2Vib29rIG5lZWRzIHRoZSBDVVJMIFBIUCBleHRlbnNpb24uJyk7Cn0KaWYgKCFmdW5jdGlvbl9leGlzdHMoJ2pzb25fZGVjb2RlJykpIHsKICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdGYWNlYm9vayBuZWVkcyB0aGUgSlNPTiBQSFAgZXh0ZW5zaW9uLicpOwp9CgovKioKICogVGhyb3duIHdoZW4gYW4gQVBJIGNhbGwgcmV0dXJucyBhbiBleGNlcHRpb24uCiAqCiAqIEBhdXRob3IgTmFpdGlrIFNoYWggPG5haXRpa0BmYWNlYm9vay5jb20+CiAqLwpjbGFzcyBGYWNlYm9va0FwaUV4Y2VwdGlvbiBleHRlbmRzIEV4Y2VwdGlvbgp7CiAgLyoqCiAgICogVGhlIHJlc3VsdCBmcm9tIHRoZSBBUEkgc2VydmVyIHRoYXQgcmVwcmVzZW50cyB0aGUgZXhjZXB0aW9uIGluZm9ybWF0aW9uLgogICAqLwogIHByb3RlY3RlZCAkcmVzdWx0OwoKICAvKioKICAgKiBNYWtlIGEgbmV3IEFQSSBFeGNlcHRpb24gd2l0aCB0aGUgZ2l2ZW4gcmVzdWx0LgogICAqCiAgICogQHBhcmFtIEFycmF5ICRyZXN1bHQgdGhlIHJlc3VsdCBmcm9tIHRoZSBBUEkgc2VydmVyCiAgICovCiAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRyZXN1bHQpIHsKICAgICR0aGlzLT5yZXN1bHQgPSAkcmVzdWx0OwoKICAgICRjb2RlID0gaXNzZXQoJHJlc3VsdFsnZXJyb3JfY29kZSddKSA/ICRyZXN1bHRbJ2Vycm9yX2NvZGUnXSA6IDA7CiAgICAkbXNnICA9IGlzc2V0KCRyZXN1bHRbJ2Vycm9yJ10pCiAgICAgICAgICAgICAgPyAkcmVzdWx0WydlcnJvciddWydtZXNzYWdlJ10gOiAkcmVzdWx0WydlcnJvcl9tc2cnXTsKICAgIHBhcmVudDo6X19jb25zdHJ1Y3QoJG1zZywgJGNvZGUpOwogIH0KCiAgLyoqCiAgICogUmV0dXJuIHRoZSBhc3NvY2lhdGVkIHJlc3VsdCBvYmplY3QgcmV0dXJuZWQgYnkgdGhlIEFQSSBzZXJ2ZXIuCiAgICoKICAgKiBAcmV0dXJucyBBcnJheSB0aGUgcmVzdWx0IGZyb20gdGhlIEFQSSBzZXJ2ZXIKICAgKi8KICBwdWJsaWMgZnVuY3Rpb24gZ2V0UmVzdWx0KCkgewogICAgcmV0dXJuICR0aGlzLT5yZXN1bHQ7CiAgfQoKICAvKioKICAgKiBSZXR1cm5zIHRoZSBhc3NvY2lhdGVkIHR5cGUgZm9yIHRoZSBlcnJvci4gVGhpcyB3aWxsIGRlZmF1bHQgdG8KICAgKiAnRXhjZXB0aW9uJyB3aGVuIGEgdHlwZSBpcyBub3QgYXZhaWxhYmxlLgogICAqCiAgICogQHJldHVybiBTdHJpbmcKICAgKi8KICBwdWJsaWMgZnVuY3Rpb24gZ2V0VHlwZSgpIHsKICAgIHJldHVybgogICAgICBpc3NldCgkdGhpcy0+cmVzdWx0WydlcnJvciddKSAmJiBpc3NldCgkdGhpcy0+cmVzdWx0WydlcnJvciddWyd0eXBlJ10pCiAgICAgID8gJHRoaXMtPnJlc3VsdFsnZXJyb3InXVsndHlwZSddCiAgICAgIDogJ0V4Y2VwdGlvbic7CiAgfQoKICAvKioKICAgKiBUbyBtYWtlIGRlYnVnZ2luZyBlYXNpZXIuCiAgICoKICAgKiBAcmV0dXJucyBTdHJpbmcgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgZXJyb3IKICAgKi8KICBwdWJsaWMgZnVuY3Rpb24gX190b1N0cmluZygpIHsKICAgICRzdHIgPSAkdGhpcy0+Z2V0VHlwZSgpIC4gJzogJzsKICAgIGlmICgkdGhpcy0+Y29kZSAhPSAwKSB7CiAgICAgICRzdHIgLj0gJHRoaXMtPmNvZGUgLiAnOiAnOwogICAgfQogICAgcmV0dXJuICRzdHIgLiAkdGhpcy0+bWVzc2FnZTsKICB9Cn0KCi8qKgogKiBQcm92aWRlcyBhY2Nlc3MgdG8gdGhlIEZhY2Vib29rIFBsYXRmb3JtLgogKgogKiBAYXV0aG9yIE5haXRpayBTaGFoIDxuYWl0aWtAZmFjZWJvb2suY29tPgogKi8KY2xhc3MgRmFjZWJvb2sKewogIC8qKgogICAqIFZlcnNpb24uCiAgICovCiAgY29uc3QgVkVSU0lPTiA9ICcyLjEuMSc7CgogIC8qKgogICAqIERlZmF1bHQgb3B0aW9ucyBmb3IgY3VybC4KICAgKi8KICBwdWJsaWMgc3RhdGljICRDVVJMX09QVFMgPSBhcnJheSgKICAgIENVUkxPUFRfQ09OTkVDVFRJTUVPVVQgPT4gMTAsCiAgICBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSID0+IHRydWUsCiAgICBDVVJMT1BUX1RJTUVPVVQgICAgICAgID0+IDYwLAogICAgQ1VSTE9QVF9VU0VSQUdFTlQgICAgICA9PiAnZmFjZWJvb2stcGhwLTIuMCcsCiAgKTsKCiAgLyoqCiAgICogTGlzdCBvZiBxdWVyeSBwYXJhbWV0ZXJzIHRoYXQgZ2V0IGF1dG9tYXRpY2FsbHkgZHJvcHBlZCB3aGVuIHJlYnVpbGRpbmcKICAgKiB0aGUgY3VycmVudCBVUkwuCiAgICovCiAgcHJvdGVjdGVkIHN0YXRpYyAkRFJPUF9RVUVSWV9QQVJBTVMgPSBhcnJheSgKICAgICdzZXNzaW9uJywKICAgICdzaWduZWRfcmVxdWVzdCcsCiAgKTsKCiAgLyoqCiAgICogTWFwcyBhbGlhc2VzIHRvIEZhY2Vib29rIGRvbWFpbnMuCiAgICovCiAgcHVibGljIHN0YXRpYyAkRE9NQUlOX01BUCA9IGFycmF5KAogICAgJ2FwaScgICAgICA9PiAnaHR0cHM6Ly9hcGkuZmFjZWJvb2suY29tLycsCiAgICAnYXBpX3JlYWQnID0+ICdodHRwczovL2FwaS1yZWFkLmZhY2Vib29rLmNvbS8nLAogICAgJ2dyYXBoJyAgICA9PiAnaHR0cHM6Ly9ncmFwaC5mYWNlYm9vay5jb20vJywKICAgICd3d3cnICAgICAgPT4gJ2h0dHBzOi8vd3d3LmZhY2Vib29rLmNvbS8nLAogICk7CgogIC8qKgogICAqIFRoZSBBcHBsaWNhdGlvbiBJRC4KICAgKi8KICBwcm90ZWN0ZWQgJGFwcElkOwoKICAvKioKICAgKiBUaGUgQXBwbGljYXRpb24gQVBJIFNlY3JldC4KICAgKi8KICBwcm90ZWN0ZWQgJGFwaVNlY3JldDsKCiAgLyoqCiAgICogVGhlIGFjdGl2ZSB1c2VyIHNlc3Npb24sIGlmIG9uZSBpcyBhdmFpbGFibGUuCiAgICovCiAgcHJvdGVjdGVkICRzZXNzaW9uOwoKICAvKioKICAgKiBUaGUgZGF0YSBmcm9tIHRoZSBzaWduZWRfcmVxdWVzdCB0b2tlbi4KICAgKi8KICBwcm90ZWN0ZWQgJHNpZ25lZFJlcXVlc3Q7CgogIC8qKgogICAqIEluZGljYXRlcyB0aGF0IHdlIGFscmVhZHkgbG9hZGVkIHRoZSBzZXNzaW9uIGFzIGJlc3QgYXMgd2UgY291bGQuCiAgICovCiAgcHJvdGVjdGVkICRzZXNzaW9uTG9hZGVkID0gZmFsc2U7CgogIC8qKgogICAqIEluZGljYXRlcyBpZiBDb29raWUgc3VwcG9ydCBzaG91bGQgYmUgZW5hYmxlZC4KICAgKi8KICBwcm90ZWN0ZWQgJGNvb2tpZVN1cHBvcnQgPSBmYWxzZTsKCiAgLyoqCiAgICogQmFzZSBkb21haW4gZm9yIHRoZSBDb29raWUuCiAgICovCiAgcHJvdGVjdGVkICRiYXNlRG9tYWluID0gJyc7CgogIC8qKgogICAqIEluZGljYXRlcyBpZiB0aGUgQ1VSTCBiYXNlZCBAIHN5bnRheCBmb3IgZmlsZSB1cGxvYWRzIGlzIGVuYWJsZWQuCiAgICovCiAgcHJvdGVjdGVkICRmaWxlVXBsb2FkU3VwcG9ydCA9IGZhbHNlOwoKICAvKioKICAgKiBJbml0aWFsaXplIGEgRmFjZWJvb2sgQXBwbGljYXRpb24uCiAgICoKICAgKiBUaGUgY29uZmlndXJhdGlvbjoKICAgKiAtIGFwcElkOiB0aGUgYXBwbGljYXRpb24gSUQKICAgKiAtIHNlY3JldDogdGhlIGFwcGxpY2F0aW9uIHNlY3JldAogICAqIC0gY29va2llOiAob3B0aW9uYWwpIGJvb2xlYW4gdHJ1ZSB0byBlbmFibGUgY29va2llIHN1cHBvcnQKICAgKiAtIGRvbWFpbjogKG9wdGlvbmFsKSBkb21haW4gZm9yIHRoZSBjb29raWUKICAgKiAtIGZpbGVVcGxvYWQ6IChvcHRpb25hbCkgYm9vbGVhbiBpbmRpY2F0aW5nIGlmIGZpbGUgdXBsb2FkcyBhcmUgZW5hYmxlZAogICAqCiAgICogQHBhcmFtIEFycmF5ICRjb25maWcgdGhlIGFwcGxpY2F0aW9uIGNvbmZpZ3VyYXRpb24KICAgKi8KICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJGNvbmZpZykgewogICAgJHRoaXMtPnNldEFwcElkKCRjb25maWdbJ2FwcElkJ10pOwogICAgJHRoaXMtPnNldEFwaVNlY3JldCgkY29uZmlnWydzZWNyZXQnXSk7CiAgICBpZiAoaXNzZXQoJGNvbmZpZ1snY29va2llJ10pKSB7CiAgICAgICR0aGlzLT5zZXRDb29raWVTdXBwb3J0KCRjb25maWdbJ2Nvb2tpZSddKTsKICAgIH0KICAgIGlmIChpc3NldCgkY29uZmlnWydkb21haW4nXSkpIHsKICAgICAgJHRoaXMtPnNldEJhc2VEb21haW4oJGNvbmZpZ1snZG9tYWluJ10pOwogICAgfQogICAgaWYgKGlzc2V0KCRjb25maWdbJ2ZpbGVVcGxvYWQnXSkpIHsKICAgICAgJHRoaXMtPnNldEZpbGVVcGxvYWRTdXBwb3J0KCRjb25maWdbJ2ZpbGVVcGxvYWQnXSk7CiAgICB9CiAgfQoKICAvKioKICAgKiBTZXQgdGhlIEFwcGxpY2F0aW9uIElELgogICAqCiAgICogQHBhcmFtIFN0cmluZyAkYXBwSWQgdGhlIEFwcGxpY2F0aW9uIElECiAgICovCiAgcHVibGljIGZ1bmN0aW9uIHNldEFwcElkKCRhcHBJZCkgewogICAgJHRoaXMtPmFwcElkID0gJGFwcElkOwogICAgcmV0dXJuICR0aGlzOwogIH0KCiAgLyoqCiAgICogR2V0IHRoZSBBcHBsaWNhdGlvbiBJRC4KICAgKgogICAqIEByZXR1cm4gU3RyaW5nIHRoZSBBcHBsaWNhdGlvbiBJRAogICAqLwogIHB1YmxpYyBmdW5jdGlvbiBnZXRBcHBJZCgpIHsKICAgIHJldHVybiAkdGhpcy0+YXBwSWQ7CiAgfQoKICAvKioKICAgKiBTZXQgdGhlIEFQSSBTZWNyZXQuCiAgICoKICAgKiBAcGFyYW0gU3RyaW5nICRhcHBJZCB0aGUgQVBJIFNlY3JldAogICAqLwogIHB1YmxpYyBmdW5jdGlvbiBzZXRBcGlTZWNyZXQoJGFwaVNlY3JldCkgewogICAgJHRoaXMtPmFwaVNlY3JldCA9ICRhcGlTZWNyZXQ7CiAgICByZXR1cm4gJHRoaXM7CiAgfQoKICAvKioKICAgKiBHZXQgdGhlIEFQSSBTZWNyZXQuCiAgICoKICAgKiBAcmV0dXJuIFN0cmluZyB0aGUgQVBJIFNlY3JldAogICAqLwogIHB1YmxpYyBmdW5jdGlvbiBnZXRBcGlTZWNyZXQoKSB7CiAgICByZXR1cm4gJHRoaXMtPmFwaVNlY3JldDsKICB9CgogIC8qKgogICAqIFNldCB0aGUgQ29va2llIFN1cHBvcnQgc3RhdHVzLgogICAqCiAgICogQHBhcmFtIEJvb2xlYW4gJGNvb2tpZVN1cHBvcnQgdGhlIENvb2tpZSBTdXBwb3J0IHN0YXR1cwogICAqLwogIHB1YmxpYyBmdW5jdGlvbiBzZXRDb29raWVTdXBwb3J0KCRjb29raWVTdXBwb3J0KSB7CiAgICAkdGhpcy0+Y29va2llU3VwcG9ydCA9ICRjb29raWVTdXBwb3J0OwogICAgcmV0dXJuICR0aGlzOwogIH0KCiAgLyoqCiAgICogR2V0IHRoZSBDb29raWUgU3VwcG9ydCBzdGF0dXMuCiAgICoKICAgKiBAcmV0dXJuIEJvb2xlYW4gdGhlIENvb2tpZSBTdXBwb3J0IHN0YXR1cwogICAqLwogIHB1YmxpYyBmdW5jdGlvbiB1c2VDb29raWVTdXBwb3J0KCkgewogICAgcmV0dXJuICR0aGlzLT5jb29raWVTdXBwb3J0OwogIH0KCiAgLyoqCiAgICogU2V0IHRoZSBiYXNlIGRvbWFpbiBmb3IgdGhlIENvb2tpZS4KICAgKgogICAqIEBwYXJhbSBTdHJpbmcgJGRvbWFpbiB0aGUgYmFzZSBkb21haW4KICAgKi8KICBwdWJsaWMgZnVuY3Rpb24gc2V0QmFzZURvbWFpbigkZG9tYWluKSB7CiAgICAkdGhpcy0+YmFzZURvbWFpbiA9ICRkb21haW47CiAgICByZXR1cm4gJHRoaXM7CiAgfQoKICAvKioKICAgKiBHZXQgdGhlIGJhc2UgZG9tYWluIGZvciB0aGUgQ29va2llLgogICAqCiAgICogQHJldHVybiBTdHJpbmcgdGhlIGJhc2UgZG9tYWluCiAgICovCiAgcHVibGljIGZ1bmN0aW9uIGdldEJhc2VEb21haW4oKSB7CiAgICByZXR1cm4gJHRoaXMtPmJhc2VEb21haW47CiAgfQoKICAvKioKICAgKiBTZXQgdGhlIGZpbGUgdXBsb2FkIHN1cHBvcnQgc3RhdHVzLgogICAqCiAgICogQHBhcmFtIFN0cmluZyAkZG9tYWluIHRoZSBiYXNlIGRvbWFpbgogICAqLwogIHB1YmxpYyBmdW5jdGlvbiBzZXRGaWxlVXBsb2FkU3VwcG9ydCgkZmlsZVVwbG9hZFN1cHBvcnQpIHsKICAgICR0aGlzLT5maWxlVXBsb2FkU3VwcG9ydCA9ICRmaWxlVXBsb2FkU3VwcG9ydDsKICAgIHJldHVybiAkdGhpczsKICB9CgogIC8qKgogICAqIEdldCB0aGUgZmlsZSB1cGxvYWQgc3VwcG9ydCBzdGF0dXMuCiAgICoKICAgKiBAcmV0dXJuIFN0cmluZyB0aGUgYmFzZSBkb21haW4KICAgKi8KICBwdWJsaWMgZnVuY3Rpb24gdXNlRmlsZVVwbG9hZFN1cHBvcnQoKSB7CiAgICByZXR1cm4gJHRoaXMtPmZpbGVVcGxvYWRTdXBwb3J0OwogIH0KCiAgLyoqCiAgICogR2V0IHRoZSBkYXRhIGZyb20gYSBzaWduZWRfcmVxdWVzdCB0b2tlbgogICAqCiAgICogQHJldHVybiBTdHJpbmcgdGhlIGJhc2UgZG9tYWluCiAgICovCiAgcHVibGljIGZ1bmN0aW9uIGdldFNpZ25lZFJlcXVlc3QoKSB7CiAgICBpZiAoISR0aGlzLT5zaWduZWRSZXF1ZXN0KSB7CiAgICAgIGlmIChpc3NldCgkX1JFUVVFU1RbJ3NpZ25lZF9yZXF1ZXN0J10pKSB7CiAgICAgICAgJHRoaXMtPnNpZ25lZFJlcXVlc3QgPSAkdGhpcy0+cGFyc2VTaWduZWRSZXF1ZXN0KAogICAgICAgICAgJF9SRVFVRVNUWydzaWduZWRfcmVxdWVzdCddKTsKICAgICAgfQogICAgfQogICAgcmV0dXJuICR0aGlzLT5zaWduZWRSZXF1ZXN0OwogIH0KCiAgLyoqCiAgICogU2V0IHRoZSBTZXNzaW9uLgogICAqCiAgICogQHBhcmFtIEFycmF5ICRzZXNzaW9uIHRoZSBzZXNzaW9uCiAgICogQHBhcmFtIEJvb2xlYW4gJHdyaXRlX2Nvb2tpZSBpbmRpY2F0ZSBpZiBhIGNvb2tpZSBzaG91bGQgYmUgd3JpdHRlbi4gdGhpcwogICAqIHZhbHVlIGlzIGlnbm9yZWQgaWYgY29va2llIHN1cHBvcnQgaGFzIGJlZW4gZGlzYWJsZWQuCiAgICovCiAgcHVibGljIGZ1bmN0aW9uIHNldFNlc3Npb24oJHNlc3Npb249bnVsbCwgJHdyaXRlX2Nvb2tpZT10cnVlKSB7CiAgICAkc2Vzc2lvbiA9ICR0aGlzLT52YWxpZGF0ZVNlc3Npb25PYmplY3QoJHNlc3Npb24pOwogICAgJHRoaXMtPnNlc3Npb25Mb2FkZWQgPSB0cnVlOwogICAgJHRoaXMtPnNlc3Npb24gPSAkc2Vzc2lvbjsKICAgIGlmICgkd3JpdGVfY29va2llKSB7CiAgICAgICR0aGlzLT5zZXRDb29raWVGcm9tU2Vzc2lvbigkc2Vzc2lvbik7CiAgICB9CiAgICByZXR1cm4gJHRoaXM7CiAgfQoKICAvKioKICAgKiBHZXQgdGhlIHNlc3Npb24gb2JqZWN0LiBUaGlzIHdpbGwgYXV0b21hdGljYWxseSBsb29rIGZvciBhIHNpZ25lZCBzZXNzaW9uCiAgICogc2VudCB2aWEgdGhlIHNpZ25lZF9yZXF1ZXN0LCBDb29raWUgb3IgUXVlcnkgUGFyYW1ldGVycyBpZiBuZWVkZWQuCiAgICoKICAgKiBAcmV0dXJuIEFycmF5IHRoZSBzZXNzaW9uCiAgICovCiAgcHVibGljIGZ1bmN0aW9uIGdldFNlc3Npb24oKSB7CiAgICBpZiAoISR0aGlzLT5zZXNzaW9uTG9hZGVkKSB7CiAgICAgICRzZXNzaW9uID0gbnVsbDsKICAgICAgJHdyaXRlX2Nvb2tpZSA9IHRydWU7CgogICAgICAvLyB0cnkgbG9hZGluZyBzZXNzaW9uIGZyb20gc2lnbmVkX3JlcXVlc3QgaW4gJF9SRVFVRVNUCiAgICAgICRzaWduZWRSZXF1ZXN0ID0gJHRoaXMtPmdldFNpZ25lZFJlcXVlc3QoKTsKICAgICAgaWYgKCRzaWduZWRSZXF1ZXN0KSB7CiAgICAgICAgLy8gc2lnIGlzIGdvb2QsIHVzZSB0aGUgc2lnbmVkUmVxdWVzdAogICAgICAgICRzZXNzaW9uID0gJHRoaXMtPmNyZWF0ZVNlc3Npb25Gcm9tU2lnbmVkUmVxdWVzdCgkc2lnbmVkUmVxdWVzdCk7CiAgICAgIH0KCiAgICAgIC8vIHRyeSBsb2FkaW5nIHNlc3Npb24gZnJvbSAkX1JFUVVFU1QKICAgICAgaWYgKCEkc2Vzc2lvbiAmJiBpc3NldCgkX1JFUVVFU1RbJ3Nlc3Npb24nXSkpIHsKICAgICAgICAkc2Vzc2lvbiA9IGpzb25fZGVjb2RlKAogICAgICAgICAgZ2V0X21hZ2ljX3F1b3Rlc19ncGMoKQogICAgICAgICAgICA/IHN0cmlwc2xhc2hlcygkX1JFUVVFU1RbJ3Nlc3Npb24nXSkKICAgICAgICAgICAgOiAkX1JFUVVFU1RbJ3Nlc3Npb24nXSwKICAgICAgICAgIHRydWUKICAgICAgICApOwogICAgICAgICRzZXNzaW9uID0gJHRoaXMtPnZhbGlkYXRlU2Vzc2lvbk9iamVjdCgkc2Vzc2lvbik7CiAgICAgIH0KCiAgICAgIC8vIHRyeSBsb2FkaW5nIHNlc3Npb24gZnJvbSBjb29raWUgaWYgbmVjZXNzYXJ5CiAgICAgIGlmICghJHNlc3Npb24gJiYgJHRoaXMtPnVzZUNvb2tpZVN1cHBvcnQoKSkgewogICAgICAgICRjb29raWVOYW1lID0gJHRoaXMtPmdldFNlc3Npb25Db29raWVOYW1lKCk7CiAgICAgICAgaWYgKGlzc2V0KCRfQ09PS0lFWyRjb29raWVOYW1lXSkpIHsKICAgICAgICAgICRzZXNzaW9uID0gYXJyYXkoKTsKICAgICAgICAgIHBhcnNlX3N0cih0cmltKAogICAgICAgICAgICBnZXRfbWFnaWNfcXVvdGVzX2dwYygpCiAgICAgICAgICAgICAgPyBzdHJpcHNsYXNoZXMoJF9DT09LSUVbJGNvb2tpZU5hbWVdKQogICAgICAgICAgICAgIDogJF9DT09LSUVbJGNvb2tpZU5hbWVdLAogICAgICAgICAgICAnIicKICAgICAgICAgICksICRzZXNzaW9uKTsKICAgICAgICAgICRzZXNzaW9uID0gJHRoaXMtPnZhbGlkYXRlU2Vzc2lvbk9iamVjdCgkc2Vzc2lvbik7CiAgICAgICAgICAvLyB3cml0ZSBvbmx5IGlmIHdlIG5lZWQgdG8gZGVsZXRlIGEgaW52YWxpZCBzZXNzaW9uIGNvb2tpZQogICAgICAgICAgJHdyaXRlX2Nvb2tpZSA9IGVtcHR5KCRzZXNzaW9uKTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgICR0aGlzLT5zZXRTZXNzaW9uKCRzZXNzaW9uLCAkd3JpdGVfY29va2llKTsKICAgIH0KCiAgICByZXR1cm4gJHRoaXMtPnNlc3Npb247CiAgfQoKICAvKioKICAgKiBHZXQgdGhlIFVJRCBmcm9tIHRoZSBzZXNzaW9uLgogICAqCiAgICogQHJldHVybiBTdHJpbmcgdGhlIFVJRCBpZiBhdmFpbGFibGUKICAgKi8KICBwdWJsaWMgZnVuY3Rpb24gZ2V0VXNlcigpIHsKICAgICRzZXNzaW9uID0gJHRoaXMtPmdldFNlc3Npb24oKTsKICAgIHJldHVybiAkc2Vzc2lvbiA/ICRzZXNzaW9uWyd1aWQnXSA6IG51bGw7CiAgfQoKICAvKioKICAgKiBHZXRzIGEgT0F1dGggYWNjZXNzIHRva2VuLgogICAqCiAgICogQHJldHVybiBTdHJpbmcgdGhlIGFjY2VzcyB0b2tlbgogICAqLwogIHB1YmxpYyBmdW5jdGlvbiBnZXRBY2Nlc3NUb2tlbigpIHsKICAgICRzZXNzaW9uID0gJHRoaXMtPmdldFNlc3Npb24oKTsKICAgIC8vIGVpdGhlciB1c2VyIHNlc3Npb24gc2lnbmVkLCBvciBhcHAgc2lnbmVkCiAgICBpZiAoJHNlc3Npb24pIHsKICAgICAgcmV0dXJuICRzZXNzaW9uWydhY2Nlc3NfdG9rZW4nXTsKICAgIH0gZWxzZSB7CiAgICAgIHJldHVybiAkdGhpcy0+Z2V0QXBwSWQoKSAuJ3wnLiAkdGhpcy0+Z2V0QXBpU2VjcmV0KCk7CiAgICB9CiAgfQoKICAvKioKICAgKiBHZXQgYSBMb2dpbiBVUkwgZm9yIHVzZSB3aXRoIHJlZGlyZWN0cy4gQnkgZGVmYXVsdCwgZnVsbCBwYWdlIHJlZGlyZWN0IGlzCiAgICogYXNzdW1lZC4gSWYgeW91IGFyZSB1c2luZyB0aGUgZ2VuZXJhdGVkIFVSTCB3aXRoIGEgd2luZG93Lm9wZW4oKSBjYWxsIGluCiAgICogSmF2YVNjcmlwdCwgeW91IGNhbiBwYXNzIGluIGRpc3BsYXk9cG9wdXAgYXMgcGFydCBvZiB0aGUgJHBhcmFtcy4KICAgKgogICAqIFRoZSBwYXJhbWV0ZXJzOgogICAqIC0gbmV4dDogdGhlIHVybCB0byBnbyB0byBhZnRlciBhIHN1Y2Nlc3NmdWwgbG9naW4KICAgKiAtIGNhbmNlbF91cmw6IHRoZSB1cmwgdG8gZ28gdG8gYWZ0ZXIgdGhlIHVzZXIgY2FuY2VscwogICAqIC0gcmVxX3Blcm1zOiBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiByZXF1ZXN0ZWQgZXh0ZW5kZWQgcGVybXMKICAgKiAtIGRpc3BsYXk6IGNhbiBiZSAicGFnZSIgKGRlZmF1bHQsIGZ1bGwgcGFnZSkgb3IgInBvcHVwIgogICAqCiAgICogQHBhcmFtIEFycmF5ICRwYXJhbXMgcHJvdmlkZSBjdXN0b20gcGFyYW1ldGVycwogICAqIEByZXR1cm4gU3RyaW5nIHRoZSBVUkwgZm9yIHRoZSBsb2dpbiBmbG93CiAgICovCiAgcHVibGljIGZ1bmN0aW9uIGdldExvZ2luVXJsKCRwYXJhbXM9YXJyYXkoKSkgewogICAgJGN1cnJlbnRVcmwgPSAkdGhpcy0+Z2V0Q3VycmVudFVybCgpOwogICAgcmV0dXJuICR0aGlzLT5nZXRVcmwoCiAgICAgICd3d3cnLAogICAgICAnbG9naW4ucGhwJywKICAgICAgYXJyYXlfbWVyZ2UoYXJyYXkoCiAgICAgICAgJ2FwaV9rZXknICAgICAgICAgPT4gJHRoaXMtPmdldEFwcElkKCksCiAgICAgICAgJ2NhbmNlbF91cmwnICAgICAgPT4gJGN1cnJlbnRVcmwsCiAgICAgICAgJ2Rpc3BsYXknICAgICAgICAgPT4gJ3BhZ2UnLAogICAgICAgICdmYmNvbm5lY3QnICAgICAgID0+IDEsCiAgICAgICAgJ25leHQnICAgICAgICAgICAgPT4gJGN1cnJlbnRVcmwsCiAgICAgICAgJ3JldHVybl9zZXNzaW9uJyAgPT4gMSwKICAgICAgICAnc2Vzc2lvbl92ZXJzaW9uJyA9PiAzLAogICAgICAgICd2JyAgICAgICAgICAgICAgID0+ICcxLjAnLAogICAgICApLCAkcGFyYW1zKQogICAgKTsKICB9CgogIC8qKgogICAqIEdldCBhIExvZ291dCBVUkwgc3VpdGFibGUgZm9yIHVzZSB3aXRoIHJlZGlyZWN0cy4KICAgKgogICAqIFRoZSBwYXJhbWV0ZXJzOgogICAqIC0gbmV4dDogdGhlIHVybCB0byBnbyB0byBhZnRlciBhIHN1Y2Nlc3NmdWwgbG9nb3V0CiAgICoKICAgKiBAcGFyYW0gQXJyYXkgJHBhcmFtcyBwcm92aWRlIGN1c3RvbSBwYXJhbWV0ZXJzCiAgICogQHJldHVybiBTdHJpbmcgdGhlIFVSTCBmb3IgdGhlIGxvZ291dCBmbG93CiAgICovCiAgcHVibGljIGZ1bmN0aW9uIGdldExvZ291dFVybCgkcGFyYW1zPWFycmF5KCkpIHsKICAgIHJldHVybiAkdGhpcy0+Z2V0VXJsKAogICAgICAnd3d3JywKICAgICAgJ2xvZ291dC5waHAnLAogICAgICBhcnJheV9tZXJnZShhcnJheSgKICAgICAgICAnbmV4dCcgICAgICAgICA9PiAkdGhpcy0+Z2V0Q3VycmVudFVybCgpLAogICAgICAgICdhY2Nlc3NfdG9rZW4nID0+ICR0aGlzLT5nZXRBY2Nlc3NUb2tlbigpLAogICAgICApLCAkcGFyYW1zKQogICAgKTsKICB9CgogIC8qKgogICAqIEdldCBhIGxvZ2luIHN0YXR1cyBVUkwgdG8gZmV0Y2ggdGhlIHN0YXR1cyBmcm9tIGZhY2Vib29rLgogICAqCiAgICogVGhlIHBhcmFtZXRlcnM6CiAgICogLSBva19zZXNzaW9uOiB0aGUgVVJMIHRvIGdvIHRvIGlmIGEgc2Vzc2lvbiBpcyBmb3VuZAogICAqIC0gbm9fc2Vzc2lvbjogdGhlIFVSTCB0byBnbyB0byBpZiB0aGUgdXNlciBpcyBub3QgY29ubmVjdGVkCiAgICogLSBub191c2VyOiB0aGUgVVJMIHRvIGdvIHRvIGlmIHRoZSB1c2VyIGlzIG5vdCBzaWduZWQgaW50byBmYWNlYm9vawogICAqCiAgICogQHBhcmFtIEFycmF5ICRwYXJhbXMgcHJvdmlkZSBjdXN0b20gcGFyYW1ldGVycwogICAqIEByZXR1cm4gU3RyaW5nIHRoZSBVUkwgZm9yIHRoZSBsb2dvdXQgZmxvdwogICAqLwogIHB1YmxpYyBmdW5jdGlvbiBnZXRMb2dpblN0YXR1c1VybCgkcGFyYW1zPWFycmF5KCkpIHsKICAgIHJldHVybiAkdGhpcy0+Z2V0VXJsKAogICAgICAnd3d3JywKICAgICAgJ2V4dGVybi9sb2dpbl9zdGF0dXMucGhwJywKICAgICAgYXJyYXlfbWVyZ2UoYXJyYXkoCiAgICAgICAgJ2FwaV9rZXknICAgICAgICAgPT4gJHRoaXMtPmdldEFwcElkKCksCiAgICAgICAgJ25vX3Nlc3Npb24nICAgICAgPT4gJHRoaXMtPmdldEN1cnJlbnRVcmwoKSwKICAgICAgICAnbm9fdXNlcicgICAgICAgICA9PiAkdGhpcy0+Z2V0Q3VycmVudFVybCgpLAogICAgICAgICdva19zZXNzaW9uJyAgICAgID0+ICR0aGlzLT5nZXRDdXJyZW50VXJsKCksCiAgICAgICAgJ3Nlc3Npb25fdmVyc2lvbicgPT4gMywKICAgICAgKSwgJHBhcmFtcykKICAgICk7CiAgfQoKICAvKioKICAgKiBNYWtlIGFuIEFQSSBjYWxsLgogICAqCiAgICogQHBhcmFtIEFycmF5ICRwYXJhbXMgdGhlIEFQSSBjYWxsIHBhcmFtZXRlcnMKICAgKiBAcmV0dXJuIHRoZSBkZWNvZGVkIHJlc3BvbnNlCiAgICovCiAgcHVibGljIGZ1bmN0aW9uIGFwaSgvKiBwb2x5bW9ycGhpYyAqLykgewogICAgJGFyZ3MgPSBmdW5jX2dldF9hcmdzKCk7CiAgICBpZiAoaXNfYXJyYXkoJGFyZ3NbMF0pKSB7CiAgICAgIHJldHVybiAkdGhpcy0+X3Jlc3RzZXJ2ZXIoJGFyZ3NbMF0pOwogICAgfSBlbHNlIHsKICAgICAgcmV0dXJuIGNhbGxfdXNlcl9mdW5jX2FycmF5KGFycmF5KCR0aGlzLCAnX2dyYXBoJyksICRhcmdzKTsKICAgIH0KICB9CgogIC8qKgogICAqIEludm9rZSB0aGUgb2xkIHJlc3RzZXJ2ZXIucGhwIGVuZHBvaW50LgogICAqCiAgICogQHBhcmFtIEFycmF5ICRwYXJhbXMgbWV0aG9kIGNhbGwgb2JqZWN0CiAgICogQHJldHVybiB0aGUgZGVjb2RlZCByZXNwb25zZSBvYmplY3QKICAgKiBAdGhyb3dzIEZhY2Vib29rQXBpRXhjZXB0aW9uCiAgICovCiAgcHJvdGVjdGVkIGZ1bmN0aW9uIF9yZXN0c2VydmVyKCRwYXJhbXMpIHsKICAgIC8vIGdlbmVyaWMgYXBwbGljYXRpb24gbGV2ZWwgcGFyYW1ldGVycwogICAgJHBhcmFtc1snYXBpX2tleSddID0gJHRoaXMtPmdldEFwcElkKCk7CiAgICAkcGFyYW1zWydmb3JtYXQnXSA9ICdqc29uLXN0cmluZ3MnOwoKICAgICRyZXN1bHQgPSBqc29uX2RlY29kZSgkdGhpcy0+X29hdXRoUmVxdWVzdCgKICAgICAgJHRoaXMtPmdldEFwaVVybCgkcGFyYW1zWydtZXRob2QnXSksCiAgICAgICRwYXJhbXMKICAgICksIHRydWUpOwoKICAgIC8vIHJlc3VsdHMgYXJlIHJldHVybmVkLCBlcnJvcnMgYXJlIHRocm93bgogICAgaWYgKGlzX2FycmF5KCRyZXN1bHQpICYmIGlzc2V0KCRyZXN1bHRbJ2Vycm9yX2NvZGUnXSkpIHsKICAgICAgdGhyb3cgbmV3IEZhY2Vib29rQXBpRXhjZXB0aW9uKCRyZXN1bHQpOwogICAgfQogICAgcmV0dXJuICRyZXN1bHQ7CiAgfQoKICAvKioKICAgKiBJbnZva2UgdGhlIEdyYXBoIEFQSS4KICAgKgogICAqIEBwYXJhbSBTdHJpbmcgJHBhdGggdGhlIHBhdGggKHJlcXVpcmVkKQogICAqIEBwYXJhbSBTdHJpbmcgJG1ldGhvZCB0aGUgaHR0cCBtZXRob2QgKGRlZmF1bHQgJ0dFVCcpCiAgICogQHBhcmFtIEFycmF5ICRwYXJhbXMgdGhlIHF1ZXJ5L3Bvc3QgZGF0YQogICAqIEByZXR1cm4gdGhlIGRlY29kZWQgcmVzcG9uc2Ugb2JqZWN0CiAgICogQHRocm93cyBGYWNlYm9va0FwaUV4Y2VwdGlvbgogICAqLwogIHByb3RlY3RlZCBmdW5jdGlvbiBfZ3JhcGgoJHBhdGgsICRtZXRob2Q9J0dFVCcsICRwYXJhbXM9YXJyYXkoKSkgewogICAgaWYgKGlzX2FycmF5KCRtZXRob2QpICYmIGVtcHR5KCRwYXJhbXMpKSB7CiAgICAgICRwYXJhbXMgPSAkbWV0aG9kOwogICAgICAkbWV0aG9kID0gJ0dFVCc7CiAgICB9CiAgICAkcGFyYW1zWydtZXRob2QnXSA9ICRtZXRob2Q7IC8vIG1ldGhvZCBvdmVycmlkZSBhcyB3ZSBhbHdheXMgZG8gYSBQT1NUCgogICAgJHJlc3VsdCA9IGpzb25fZGVjb2RlKCR0aGlzLT5fb2F1dGhSZXF1ZXN0KAogICAgICAkdGhpcy0+Z2V0VXJsKCdncmFwaCcsICRwYXRoKSwKICAgICAgJHBhcmFtcwogICAgKSwgdHJ1ZSk7CgogICAgLy8gcmVzdWx0cyBhcmUgcmV0dXJuZWQsIGVycm9ycyBhcmUgdGhyb3duCiAgICBpZiAoaXNfYXJyYXkoJHJlc3VsdCkgJiYgaXNzZXQoJHJlc3VsdFsnZXJyb3InXSkpIHsKICAgICAgJGUgPSBuZXcgRmFjZWJvb2tBcGlFeGNlcHRpb24oJHJlc3VsdCk7CiAgICAgIGlmICgkZS0+Z2V0VHlwZSgpID09PSAnT0F1dGhFeGNlcHRpb24nKSB7CiAgICAgICAgJHRoaXMtPnNldFNlc3Npb24obnVsbCk7CiAgICAgIH0KICAgICAgdGhyb3cgJGU7CiAgICB9CiAgICByZXR1cm4gJHJlc3VsdDsKICB9CgogIC8qKgogICAqIE1ha2UgYSBPQXV0aCBSZXF1ZXN0CiAgICoKICAgKiBAcGFyYW0gU3RyaW5nICRwYXRoIHRoZSBwYXRoIChyZXF1aXJlZCkKICAgKiBAcGFyYW0gQXJyYXkgJHBhcmFtcyB0aGUgcXVlcnkvcG9zdCBkYXRhCiAgICogQHJldHVybiB0aGUgZGVjb2RlZCByZXNwb25zZSBvYmplY3QKICAgKiBAdGhyb3dzIEZhY2Vib29rQXBpRXhjZXB0aW9uCiAgICovCiAgcHJvdGVjdGVkIGZ1bmN0aW9uIF9vYXV0aFJlcXVlc3QoJHVybCwgJHBhcmFtcykgewogICAgaWYgKCFpc3NldCgkcGFyYW1zWydhY2Nlc3NfdG9rZW4nXSkpIHsKICAgICAgJHBhcmFtc1snYWNjZXNzX3Rva2VuJ10gPSAkdGhpcy0+Z2V0QWNjZXNzVG9rZW4oKTsKICAgIH0KCiAgICAvLyBqc29uX2VuY29kZSBhbGwgcGFyYW1zIHZhbHVlcyB0aGF0IGFyZSBub3Qgc3RyaW5ncwogICAgZm9yZWFjaCAoJHBhcmFtcyBhcyAka2V5ID0+ICR2YWx1ZSkgewogICAgICBpZiAoIWlzX3N0cmluZygkdmFsdWUpKSB7CiAgICAgICAgJHBhcmFtc1ska2V5XSA9IGpzb25fZW5jb2RlKCR2YWx1ZSk7CiAgICAgIH0KICAgIH0KICAgIHJldHVybiAkdGhpcy0+bWFrZVJlcXVlc3QoJHVybCwgJHBhcmFtcyk7CiAgfQoKICAvKioKICAgKiBNYWtlcyBhbiBIVFRQIHJlcXVlc3QuIFRoaXMgbWV0aG9kIGNhbiBiZSBvdmVycmlkZW4gYnkgc3ViY2xhc3NlcyBpZgogICAqIGRldmVsb3BlcnMgd2FudCB0byBkbyBmYW5jaWVyIHRoaW5ncyBvciB1c2Ugc29tZXRoaW5nIG90aGVyIHRoYW4gY3VybCB0bwogICAqIG1ha2UgdGhlIHJlcXVlc3QuCiAgICoKICAgKiBAcGFyYW0gU3RyaW5nICR1cmwgdGhlIFVSTCB0byBtYWtlIHRoZSByZXF1ZXN0IHRvCiAgICogQHBhcmFtIEFycmF5ICRwYXJhbXMgdGhlIHBhcmFtZXRlcnMgdG8gdXNlIGZvciB0aGUgUE9TVCBib2R5CiAgICogQHBhcmFtIEN1cmxIYW5kbGVyICRjaCBvcHRpb25hbCBpbml0aWFsaXplZCBjdXJsIGhhbmRsZQogICAqIEByZXR1cm4gU3RyaW5nIHRoZSByZXNwb25zZSB0ZXh0CiAgICovCiAgcHJvdGVjdGVkIGZ1bmN0aW9uIG1ha2VSZXF1ZXN0KCR1cmwsICRwYXJhbXMsICRjaD1udWxsKSB7CiAgICBpZiAoISRjaCkgewogICAgICAkY2ggPSBjdXJsX2luaXQoKTsKICAgIH0KCiAgICAkb3B0cyA9IHNlbGY6OiRDVVJMX09QVFM7CiAgICBpZiAoJHRoaXMtPnVzZUZpbGVVcGxvYWRTdXBwb3J0KCkpIHsKICAgICAgJG9wdHNbQ1VSTE9QVF9QT1NURklFTERTXSA9ICRwYXJhbXM7CiAgICB9IGVsc2UgewogICAgICAkb3B0c1tDVVJMT1BUX1BPU1RGSUVMRFNdID0gaHR0cF9idWlsZF9xdWVyeSgkcGFyYW1zLCBudWxsLCAnJicpOwogICAgfQogICAgJG9wdHNbQ1VSTE9QVF9VUkxdID0gJHVybDsKCiAgICAvLyBkaXNhYmxlIHRoZSAnRXhwZWN0OiAxMDAtY29udGludWUnIGJlaGF2aW91ci4gVGhpcyBjYXVzZXMgQ1VSTCB0byB3YWl0CiAgICAvLyBmb3IgMiBzZWNvbmRzIGlmIHRoZSBzZXJ2ZXIgZG9lcyBub3Qgc3VwcG9ydCB0aGlzIGhlYWRlci4KICAgIGlmIChpc3NldCgkb3B0c1tDVVJMT1BUX0hUVFBIRUFERVJdKSkgewogICAgICAkZXhpc3RpbmdfaGVhZGVycyA9ICRvcHRzW0NVUkxPUFRfSFRUUEhFQURFUl07CiAgICAgICRleGlzdGluZ19oZWFkZXJzW10gPSAnRXhwZWN0Oic7CiAgICAgICRvcHRzW0NVUkxPUFRfSFRUUEhFQURFUl0gPSAkZXhpc3RpbmdfaGVhZGVyczsKICAgIH0gZWxzZSB7CiAgICAgICRvcHRzW0NVUkxPUFRfSFRUUEhFQURFUl0gPSBhcnJheSgnRXhwZWN0OicpOwogICAgfQoKICAgIGN1cmxfc2V0b3B0X2FycmF5KCRjaCwgJG9wdHMpOwogICAgJHJlc3VsdCA9IGN1cmxfZXhlYygkY2gpOwogICAgaWYgKCRyZXN1bHQgPT09IGZhbHNlKSB7CiAgICAgICRlID0gbmV3IEZhY2Vib29rQXBpRXhjZXB0aW9uKGFycmF5KAogICAgICAgICdlcnJvcl9jb2RlJyA9PiBjdXJsX2Vycm5vKCRjaCksCiAgICAgICAgJ2Vycm9yJyAgICAgID0+IGFycmF5KAogICAgICAgICAgJ21lc3NhZ2UnID0+IGN1cmxfZXJyb3IoJGNoKSwKICAgICAgICAgICd0eXBlJyAgICA9PiAnQ3VybEV4Y2VwdGlvbicsCiAgICAgICAgKSwKICAgICAgKSk7CiAgICAgIGN1cmxfY2xvc2UoJGNoKTsKICAgICAgdGhyb3cgJGU7CiAgICB9CiAgICBjdXJsX2Nsb3NlKCRjaCk7CiAgICByZXR1cm4gJHJlc3VsdDsKICB9CgogIC8qKgogICAqIFRoZSBuYW1lIG9mIHRoZSBDb29raWUgdGhhdCBjb250YWlucyB0aGUgc2Vzc2lvbi4KICAgKgogICAqIEByZXR1cm4gU3RyaW5nIHRoZSBjb29raWUgbmFtZQogICAqLwogIHByb3RlY3RlZCBmdW5jdGlvbiBnZXRTZXNzaW9uQ29va2llTmFtZSgpIHsKICAgIHJldHVybiAnZmJzXycgLiAkdGhpcy0+Z2V0QXBwSWQoKTsKICB9CgogIC8qKgogICAqIFNldCBhIEpTIENvb2tpZSBiYXNlZCBvbiB0aGUgX3Bhc3NlZCBpbl8gc2Vzc2lvbi4gSXQgZG9lcyBub3QgdXNlIHRoZQogICAqIGN1cnJlbnRseSBzdG9yZWQgc2Vzc2lvbiAtLSB5b3UgbmVlZCB0byBleHBsaWNpdGx5IHBhc3MgaXQgaW4uCiAgICoKICAgKiBAcGFyYW0gQXJyYXkgJHNlc3Npb24gdGhlIHNlc3Npb24gdG8gdXNlIGZvciBzZXR0aW5nIHRoZSBjb29raWUKICAgKi8KICBwdWJsaWMgZnVuY3Rpb24gc2V0Q29va2llRnJvbVNlc3Npb24oJHNlc3Npb249bnVsbCkgewogICAgaWYgKCEkdGhpcy0+dXNlQ29va2llU3VwcG9ydCgpKSB7CiAgICAgIHJldHVybjsKICAgIH0KCiAgICAkY29va2llTmFtZSA9ICR0aGlzLT5nZXRTZXNzaW9uQ29va2llTmFtZSgpOwogICAgJHZhbHVlID0gJ2RlbGV0ZWQnOwogICAgJGV4cGlyZXMgPSB0aW1lKCkgLSAzNjAwOwogICAgJGRvbWFpbiA9ICR0aGlzLT5nZXRCYXNlRG9tYWluKCk7CiAgICBpZiAoJHNlc3Npb24pIHsKICAgICAgJHZhbHVlID0gJyInIC4gaHR0cF9idWlsZF9xdWVyeSgkc2Vzc2lvbiwgbnVsbCwgJyYnKSAuICciJzsKICAgICAgaWYgKGlzc2V0KCRzZXNzaW9uWydiYXNlX2RvbWFpbiddKSkgewogICAgICAgICRkb21haW4gPSAkc2Vzc2lvblsnYmFzZV9kb21haW4nXTsKICAgICAgfQogICAgICAkZXhwaXJlcyA9ICRzZXNzaW9uWydleHBpcmVzJ107CiAgICB9CgogICAgLy8gcHJlcGVuZCBkb3QgaWYgYSBkb21haW4gaXMgZm91bmQKICAgIGlmICgkZG9tYWluKSB7CiAgICAgICRkb21haW4gPSAnLicgLiAkZG9tYWluOwogICAgfQoKICAgIC8vIGlmIGFuIGV4aXN0aW5nIGNvb2tpZSBpcyBub3Qgc2V0LCB3ZSBkb250IG5lZWQgdG8gZGVsZXRlIGl0CiAgICBpZiAoJHZhbHVlID09ICdkZWxldGVkJyAmJiBlbXB0eSgkX0NPT0tJRVskY29va2llTmFtZV0pKSB7CiAgICAgIHJldHVybjsKICAgIH0KCiAgICBpZiAoaGVhZGVyc19zZW50KCkpIHsKICAgICAgc2VsZjo6ZXJyb3JMb2coJ0NvdWxkIG5vdCBzZXQgY29va2llLiBIZWFkZXJzIGFscmVhZHkgc2VudC4nKTsKCiAgICAvLyBpZ25vcmUgZm9yIGNvZGUgY292ZXJhZ2UgYXMgd2Ugd2lsbCBuZXZlciBiZSBhYmxlIHRvIHNldGNvb2tpZSBpbiBhIENMSQogICAgLy8gZW52aXJvbm1lbnQKICAgIC8vIEBjb2RlQ292ZXJhZ2VJZ25vcmVTdGFydAogICAgfSBlbHNlIHsKICAgICAgc2V0Y29va2llKCRjb29raWVOYW1lLCAkdmFsdWUsICRleHBpcmVzLCAnLycsICRkb21haW4pOwogICAgfQogICAgLy8gQGNvZGVDb3ZlcmFnZUlnbm9yZUVuZAogIH0KCiAgLyoqCiAgICogVmFsaWRhdGVzIGEgc2Vzc2lvbl92ZXJzaW9uPTMgc3R5bGUgc2Vzc2lvbiBvYmplY3QuCiAgICoKICAgKiBAcGFyYW0gQXJyYXkgJHNlc3Npb24gdGhlIHNlc3Npb24gb2JqZWN0CiAgICogQHJldHVybiBBcnJheSB0aGUgc2Vzc2lvbiBvYmplY3QgaWYgaXQgdmFsaWRhdGVzLCBudWxsIG90aGVyd2lzZQogICAqLwogIHByb3RlY3RlZCBmdW5jdGlvbiB2YWxpZGF0ZVNlc3Npb25PYmplY3QoJHNlc3Npb24pIHsKICAgIC8vIG1ha2Ugc3VyZSBzb21lIGVzc2VudGlhbCBmaWVsZHMgZXhpc3QKICAgIGlmIChpc19hcnJheSgkc2Vzc2lvbikgJiYKICAgICAgICBpc3NldCgkc2Vzc2lvblsndWlkJ10pICYmCiAgICAgICAgaXNzZXQoJHNlc3Npb25bJ2FjY2Vzc190b2tlbiddKSAmJgogICAgICAgIGlzc2V0KCRzZXNzaW9uWydzaWcnXSkpIHsKICAgICAgLy8gdmFsaWRhdGUgdGhlIHNpZ25hdHVyZQogICAgICAkc2Vzc2lvbl93aXRob3V0X3NpZyA9ICRzZXNzaW9uOwogICAgICB1bnNldCgkc2Vzc2lvbl93aXRob3V0X3NpZ1snc2lnJ10pOwogICAgICAkZXhwZWN0ZWRfc2lnID0gc2VsZjo6Z2VuZXJhdGVTaWduYXR1cmUoCiAgICAgICAgJHNlc3Npb25fd2l0aG91dF9zaWcsCiAgICAgICAgJHRoaXMtPmdldEFwaVNlY3JldCgpCiAgICAgICk7CiAgICAgIGlmICgkc2Vzc2lvblsnc2lnJ10gIT0gJGV4cGVjdGVkX3NpZykgewogICAgICAgIHNlbGY6OmVycm9yTG9nKCdHb3QgaW52YWxpZCBzZXNzaW9uIHNpZ25hdHVyZSBpbiBjb29raWUuJyk7CiAgICAgICAgJHNlc3Npb24gPSBudWxsOwogICAgICB9CiAgICAgIC8vIGNoZWNrIGV4cGlyeSB0aW1lCiAgICB9IGVsc2UgewogICAgICAkc2Vzc2lvbiA9IG51bGw7CiAgICB9CiAgICByZXR1cm4gJHNlc3Npb247CiAgfQoKICAvKioKICAgKiBSZXR1cm5zIHNvbWV0aGluZyB0aGF0IGxvb2tzIGxpa2Ugb3VyIEpTIHNlc3Npb24gb2JqZWN0IGZyb20gdGhlCiAgICogc2lnbmVkIHRva2VuJ3MgZGF0YQogICAqCiAgICogVE9ETzogTnVrZSB0aGlzIG9uY2UgdGhlIGxvZ2luIGZsb3cgdXNlcyBPQXV0aDIKICAgKgogICAqIEBwYXJhbSBBcnJheSB0aGUgb3V0cHV0IG9mIGdldFNpZ25lZFJlcXVlc3QKICAgKiBAcmV0dXJuIEFycmF5IFNvbWV0aGluZyB0aGF0IHdpbGwgd29yayBhcyBhIHNlc3Npb24KICAgKi8KICBwcm90ZWN0ZWQgZnVuY3Rpb24gY3JlYXRlU2Vzc2lvbkZyb21TaWduZWRSZXF1ZXN0KCRkYXRhKSB7CiAgICBpZiAoIWlzc2V0KCRkYXRhWydvYXV0aF90b2tlbiddKSkgewogICAgICByZXR1cm4gbnVsbDsKICAgIH0KCiAgICAkc2Vzc2lvbiA9IGFycmF5KAogICAgICAndWlkJyAgICAgICAgICA9PiAkZGF0YVsndXNlcl9pZCddLAogICAgICAnYWNjZXNzX3Rva2VuJyA9PiAkZGF0YVsnb2F1dGhfdG9rZW4nXSwKICAgICAgJ2V4cGlyZXMnICAgICAgPT4gJGRhdGFbJ2V4cGlyZXMnXSwKICAgICk7CgogICAgLy8gcHV0IGEgcmVhbCBzaWcsIHNvIHRoYXQgdmFsaWRhdGVTaWduYXR1cmUgd29ya3MKICAgICRzZXNzaW9uWydzaWcnXSA9IHNlbGY6OmdlbmVyYXRlU2lnbmF0dXJlKAogICAgICAkc2Vzc2lvbiwKICAgICAgJHRoaXMtPmdldEFwaVNlY3JldCgpCiAgICApOwoKICAgIHJldHVybiAkc2Vzc2lvbjsKICB9CgogIC8qKgogICAqIFBhcnNlcyBhIHNpZ25lZF9yZXF1ZXN0IGFuZCB2YWxpZGF0ZXMgdGhlIHNpZ25hdHVyZS4KICAgKiBUaGVuIHNhdmVzIGl0IGluICR0aGlzLT5zaWduZWRfZGF0YQogICAqCiAgICogQHBhcmFtIFN0cmluZyBBIHNpZ25lZCB0b2tlbgogICAqIEBwYXJhbSBCb29sZWFuIFNob3VsZCB3ZSByZW1vdmUgdGhlIHBhcnRzIG9mIHRoZSBwYXlsb2FkIHRoYXQKICAgKiAgICAgICAgICAgICAgICBhcmUgdXNlZCBieSB0aGUgYWxnb3JpdGhtPwogICAqIEByZXR1cm4gQXJyYXkgdGhlIHBheWxvYWQgaW5zaWRlIGl0IG9yIG51bGwgaWYgdGhlIHNpZyBpcyB3cm9uZwogICAqLwogIHByb3RlY3RlZCBmdW5jdGlvbiBwYXJzZVNpZ25lZFJlcXVlc3QoJHNpZ25lZF9yZXF1ZXN0KSB7CiAgICBsaXN0KCRlbmNvZGVkX3NpZywgJHBheWxvYWQpID0gZXhwbG9kZSgnLicsICRzaWduZWRfcmVxdWVzdCwgMik7CgogICAgLy8gZGVjb2RlIHRoZSBkYXRhCiAgICAkc2lnID0gc2VsZjo6YmFzZTY0VXJsRGVjb2RlKCRlbmNvZGVkX3NpZyk7CiAgICAkZGF0YSA9IGpzb25fZGVjb2RlKHNlbGY6OmJhc2U2NFVybERlY29kZSgkcGF5bG9hZCksIHRydWUpOwoKICAgIGlmIChzdHJ0b3VwcGVyKCRkYXRhWydhbGdvcml0aG0nXSkgIT09ICdITUFDLVNIQTI1NicpIHsKICAgICAgc2VsZjo6ZXJyb3JMb2coJ1Vua25vd24gYWxnb3JpdGhtLiBFeHBlY3RlZCBITUFDLVNIQTI1NicpOwogICAgICByZXR1cm4gbnVsbDsKICAgIH0KCiAgICAvLyBjaGVjayBzaWcKICAgICRleHBlY3RlZF9zaWcgPSBoYXNoX2htYWMoJ3NoYTI1NicsICRwYXlsb2FkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+Z2V0QXBpU2VjcmV0KCksICRyYXcgPSB0cnVlKTsKICAgIGlmICgkc2lnICE9PSAkZXhwZWN0ZWRfc2lnKSB7CiAgICAgIHNlbGY6OmVycm9yTG9nKCdCYWQgU2lnbmVkIEpTT04gc2lnbmF0dXJlIScpOwogICAgICByZXR1cm4gbnVsbDsKICAgIH0KCiAgICByZXR1cm4gJGRhdGE7CiAgfQoKICAvKioKICAgKiBCdWlsZCB0aGUgVVJMIGZvciBhcGkgZ2l2ZW4gcGFyYW1ldGVycy4KICAgKgogICAqIEBwYXJhbSAkbWV0aG9kIFN0cmluZyB0aGUgbWV0aG9kIG5hbWUuCiAgICogQHJldHVybiBTdHJpbmcgdGhlIFVSTCBmb3IgdGhlIGdpdmVuIHBhcmFtZXRlcnMKICAgKi8KICBwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0QXBpVXJsKCRtZXRob2QpIHsKICAgIHN0YXRpYyAkUkVBRF9PTkxZX0NBTExTID0KICAgICAgYXJyYXkoJ2FkbWluLmdldGFsbG9jYXRpb24nID0+IDEsCiAgICAgICAgICAgICdhZG1pbi5nZXRhcHBwcm9wZXJ0aWVzJyA9PiAxLAogICAgICAgICAgICAnYWRtaW4uZ2V0YmFubmVkdXNlcnMnID0+IDEsCiAgICAgICAgICAgICdhZG1pbi5nZXRsaXZlc3RyZWFtdmlhbGluaycgPT4gMSwKICAgICAgICAgICAgJ2FkbWluLmdldG1ldHJpY3MnID0+IDEsCiAgICAgICAgICAgICdhZG1pbi5nZXRyZXN0cmljdGlvbmluZm8nID0+IDEsCiAgICAgICAgICAgICdhcHBsaWNhdGlvbi5nZXRwdWJsaWNpbmZvJyA9PiAxLAogICAgICAgICAgICAnYXV0aC5nZXRhcHBwdWJsaWNrZXknID0+IDEsCiAgICAgICAgICAgICdhdXRoLmdldHNlc3Npb24nID0+IDEsCiAgICAgICAgICAgICdhdXRoLmdldHNpZ25lZHB1YmxpY3Nlc3Npb25kYXRhJyA9PiAxLAogICAgICAgICAgICAnY29tbWVudHMuZ2V0JyA9PiAxLAogICAgICAgICAgICAnY29ubmVjdC5nZXR1bmNvbm5lY3RlZGZyaWVuZHNjb3VudCcgPT4gMSwKICAgICAgICAgICAgJ2Rhc2hib2FyZC5nZXRhY3Rpdml0eScgPT4gMSwKICAgICAgICAgICAgJ2Rhc2hib2FyZC5nZXRjb3VudCcgPT4gMSwKICAgICAgICAgICAgJ2Rhc2hib2FyZC5nZXRnbG9iYWxuZXdzJyA9PiAxLAogICAgICAgICAgICAnZGFzaGJvYXJkLmdldG5ld3MnID0+IDEsCiAgICAgICAgICAgICdkYXNoYm9hcmQubXVsdGlnZXRjb3VudCcgPT4gMSwKICAgICAgICAgICAgJ2Rhc2hib2FyZC5tdWx0aWdldG5ld3MnID0+IDEsCiAgICAgICAgICAgICdkYXRhLmdldGNvb2tpZXMnID0+IDEsCiAgICAgICAgICAgICdldmVudHMuZ2V0JyA9PiAxLAogICAgICAgICAgICAnZXZlbnRzLmdldG1lbWJlcnMnID0+IDEsCiAgICAgICAgICAgICdmYm1sLmdldGN1c3RvbXRhZ3MnID0+IDEsCiAgICAgICAgICAgICdmZWVkLmdldGFwcGZyaWVuZHN0b3JpZXMnID0+IDEsCiAgICAgICAgICAgICdmZWVkLmdldHJlZ2lzdGVyZWR0ZW1wbGF0ZWJ1bmRsZWJ5aWQnID0+IDEsCiAgICAgICAgICAgICdmZWVkLmdldHJlZ2lzdGVyZWR0ZW1wbGF0ZWJ1bmRsZXMnID0+IDEsCiAgICAgICAgICAgICdmcWwubXVsdGlxdWVyeScgPT4gMSwKICAgICAgICAgICAgJ2ZxbC5xdWVyeScgPT4gMSwKICAgICAgICAgICAgJ2ZyaWVuZHMuYXJlZnJpZW5kcycgPT4gMSwKICAgICAgICAgICAgJ2ZyaWVuZHMuZ2V0JyA9PiAxLAogICAgICAgICAgICAnZnJpZW5kcy5nZXRhcHB1c2VycycgPT4gMSwKICAgICAgICAgICAgJ2ZyaWVuZHMuZ2V0bGlzdHMnID0+IDEsCiAgICAgICAgICAgICdmcmllbmRzLmdldG11dHVhbGZyaWVuZHMnID0+IDEsCiAgICAgICAgICAgICdnaWZ0cy5nZXQnID0+IDEsCiAgICAgICAgICAgICdncm91cHMuZ2V0JyA9PiAxLAogICAgICAgICAgICAnZ3JvdXBzLmdldG1lbWJlcnMnID0+IDEsCiAgICAgICAgICAgICdpbnRsLmdldHRyYW5zbGF0aW9ucycgPT4gMSwKICAgICAgICAgICAgJ2xpbmtzLmdldCcgPT4gMSwKICAgICAgICAgICAgJ25vdGVzLmdldCcgPT4gMSwKICAgICAgICAgICAgJ25vdGlmaWNhdGlvbnMuZ2V0JyA9PiAxLAogICAgICAgICAgICAncGFnZXMuZ2V0aW5mbycgPT4gMSwKICAgICAgICAgICAgJ3BhZ2VzLmlzYWRtaW4nID0+IDEsCiAgICAgICAgICAgICdwYWdlcy5pc2FwcGFkZGVkJyA9PiAxLAogICAgICAgICAgICAncGFnZXMuaXNmYW4nID0+IDEsCiAgICAgICAgICAgICdwZXJtaXNzaW9ucy5jaGVja2F2YWlsYWJsZWFwaWFjY2VzcycgPT4gMSwKICAgICAgICAgICAgJ3Blcm1pc3Npb25zLmNoZWNrZ3JhbnRlZGFwaWFjY2VzcycgPT4gMSwKICAgICAgICAgICAgJ3Bob3Rvcy5nZXQnID0+IDEsCiAgICAgICAgICAgICdwaG90b3MuZ2V0YWxidW1zJyA9PiAxLAogICAgICAgICAgICAncGhvdG9zLmdldHRhZ3MnID0+IDEsCiAgICAgICAgICAgICdwcm9maWxlLmdldGluZm8nID0+IDEsCiAgICAgICAgICAgICdwcm9maWxlLmdldGluZm9vcHRpb25zJyA9PiAxLAogICAgICAgICAgICAnc3RyZWFtLmdldCcgPT4gMSwKICAgICAgICAgICAgJ3N0cmVhbS5nZXRjb21tZW50cycgPT4gMSwKICAgICAgICAgICAgJ3N0cmVhbS5nZXRmaWx0ZXJzJyA9PiAxLAogICAgICAgICAgICAndXNlcnMuZ2V0aW5mbycgPT4gMSwKICAgICAgICAgICAgJ3VzZXJzLmdldGxvZ2dlZGludXNlcicgPT4gMSwKICAgICAgICAgICAgJ3VzZXJzLmdldHN0YW5kYXJkaW5mbycgPT4gMSwKICAgICAgICAgICAgJ3VzZXJzLmhhc2FwcHBlcm1pc3Npb24nID0+IDEsCiAgICAgICAgICAgICd1c2Vycy5pc2FwcHVzZXInID0+IDEsCiAgICAgICAgICAgICd1c2Vycy5pc3ZlcmlmaWVkJyA9PiAxLAogICAgICAgICAgICAndmlkZW8uZ2V0dXBsb2FkbGltaXRzJyA9PiAxKTsKICAgICRuYW1lID0gJ2FwaSc7CiAgICBpZiAoaXNzZXQoJFJFQURfT05MWV9DQUxMU1tzdHJ0b2xvd2VyKCRtZXRob2QpXSkpIHsKICAgICAgJG5hbWUgPSAnYXBpX3JlYWQnOwogICAgfQogICAgcmV0dXJuIHNlbGY6OmdldFVybCgkbmFtZSwgJ3Jlc3RzZXJ2ZXIucGhwJyk7CiAgfQoKICAvKioKICAgKiBCdWlsZCB0aGUgVVJMIGZvciBnaXZlbiBkb21haW4gYWxpYXMsIHBhdGggYW5kIHBhcmFtZXRlcnMuCiAgICoKICAgKiBAcGFyYW0gJG5hbWUgU3RyaW5nIHRoZSBuYW1lIG9mIHRoZSBkb21haW4KICAgKiBAcGFyYW0gJHBhdGggU3RyaW5nIG9wdGlvbmFsIHBhdGggKHdpdGhvdXQgYSBsZWFkaW5nIHNsYXNoKQogICAqIEBwYXJhbSAkcGFyYW1zIEFycmF5IG9wdGlvbmFsIHF1ZXJ5IHBhcmFtZXRlcnMKICAgKiBAcmV0dXJuIFN0cmluZyB0aGUgVVJMIGZvciB0aGUgZ2l2ZW4gcGFyYW1ldGVycwogICAqLwogIHByb3RlY3RlZCBmdW5jdGlvbiBnZXRVcmwoJG5hbWUsICRwYXRoPScnLCAkcGFyYW1zPWFycmF5KCkpIHsKICAgICR1cmwgPSBzZWxmOjokRE9NQUlOX01BUFskbmFtZV07CiAgICBpZiAoJHBhdGgpIHsKICAgICAgaWYgKCRwYXRoWzBdID09PSAnLycpIHsKICAgICAgICAkcGF0aCA9IHN1YnN0cigkcGF0aCwgMSk7CiAgICAgIH0KICAgICAgJHVybCAuPSAkcGF0aDsKICAgIH0KICAgIGlmICgkcGFyYW1zKSB7CiAgICAgICR1cmwgLj0gJz8nIC4gaHR0cF9idWlsZF9xdWVyeSgkcGFyYW1zLCBudWxsLCAnJicpOwogICAgfQogICAgcmV0dXJuICR1cmw7CiAgfQoKICAvKioKICAgKiBSZXR1cm5zIHRoZSBDdXJyZW50IFVSTCwgc3RyaXBwaW5nIGl0IG9mIGtub3duIEZCIHBhcmFtZXRlcnMgdGhhdCBzaG91bGQKICAgKiBub3QgcGVyc2lzdC4KICAgKgogICAqIEByZXR1cm4gU3RyaW5nIHRoZSBjdXJyZW50IFVSTAogICAqLwogIHByb3RlY3RlZCBmdW5jdGlvbiBnZXRDdXJyZW50VXJsKCkgewogICAgJHByb3RvY29sID0gaXNzZXQoJF9TRVJWRVJbJ0hUVFBTJ10pICYmICRfU0VSVkVSWydIVFRQUyddID09ICdvbicKICAgICAgPyAnaHR0cHM6Ly8nCiAgICAgIDogJ2h0dHA6Ly8nOwogICAgJGN1cnJlbnRVcmwgPSAkcHJvdG9jb2wgLiAkX1NFUlZFUlsnSFRUUF9IT1NUJ10gLiAkX1NFUlZFUlsnUkVRVUVTVF9VUkknXTsKICAgICRwYXJ0cyA9IHBhcnNlX3VybCgkY3VycmVudFVybCk7CgogICAgLy8gZHJvcCBrbm93biBmYiBwYXJhbXMKICAgICRxdWVyeSA9ICcnOwogICAgaWYgKCFlbXB0eSgkcGFydHNbJ3F1ZXJ5J10pKSB7CiAgICAgICRwYXJhbXMgPSBhcnJheSgpOwogICAgICBwYXJzZV9zdHIoJHBhcnRzWydxdWVyeSddLCAkcGFyYW1zKTsKICAgICAgZm9yZWFjaChzZWxmOjokRFJPUF9RVUVSWV9QQVJBTVMgYXMgJGtleSkgewogICAgICAgIHVuc2V0KCRwYXJhbXNbJGtleV0pOwogICAgICB9CiAgICAgIGlmICghZW1wdHkoJHBhcmFtcykpIHsKICAgICAgICAkcXVlcnkgPSAnPycgLiBodHRwX2J1aWxkX3F1ZXJ5KCRwYXJhbXMsIG51bGwsICcmJyk7CiAgICAgIH0KICAgIH0KCiAgICAvLyB1c2UgcG9ydCBpZiBub24gZGVmYXVsdAogICAgJHBvcnQgPQogICAgICBpc3NldCgkcGFydHNbJ3BvcnQnXSkgJiYKICAgICAgKCgkcHJvdG9jb2wgPT09ICdodHRwOi8vJyAmJiAkcGFydHNbJ3BvcnQnXSAhPT0gODApIHx8CiAgICAgICAoJHByb3RvY29sID09PSAnaHR0cHM6Ly8nICYmICRwYXJ0c1sncG9ydCddICE9PSA0NDMpKQogICAgICA/ICc6JyAuICRwYXJ0c1sncG9ydCddIDogJyc7CgogICAgLy8gcmVidWlsZAogICAgcmV0dXJuICRwcm90b2NvbCAuICRwYXJ0c1snaG9zdCddIC4gJHBvcnQgLiAkcGFydHNbJ3BhdGgnXSAuICRxdWVyeTsKICB9CgogIC8qKgogICAqIEdlbmVyYXRlIGEgc2lnbmF0dXJlIGZvciB0aGUgZ2l2ZW4gcGFyYW1zIGFuZCBzZWNyZXQuCiAgICoKICAgKiBAcGFyYW0gQXJyYXkgJHBhcmFtcyB0aGUgcGFyYW1ldGVycyB0byBzaWduCiAgICogQHBhcmFtIFN0cmluZyAkc2VjcmV0IHRoZSBzZWNyZXQgdG8gc2lnbiB3aXRoCiAgICogQHJldHVybiBTdHJpbmcgdGhlIGdlbmVyYXRlZCBzaWduYXR1cmUKICAgKi8KICBwcm90ZWN0ZWQgc3RhdGljIGZ1bmN0aW9uIGdlbmVyYXRlU2lnbmF0dXJlKCRwYXJhbXMsICRzZWNyZXQpIHsKICAgIC8vIHdvcmsgd2l0aCBzb3J0ZWQgZGF0YQogICAga3NvcnQoJHBhcmFtcyk7CgogICAgLy8gZ2VuZXJhdGUgdGhlIGJhc2Ugc3RyaW5nCiAgICAkYmFzZV9zdHJpbmcgPSAnJzsKICAgIGZvcmVhY2goJHBhcmFtcyBhcyAka2V5ID0+ICR2YWx1ZSkgewogICAgICAkYmFzZV9zdHJpbmcgLj0gJGtleSAuICc9JyAuICR2YWx1ZTsKICAgIH0KICAgICRiYXNlX3N0cmluZyAuPSAkc2VjcmV0OwoKICAgIHJldHVybiBtZDUoJGJhc2Vfc3RyaW5nKTsKICB9CgogIC8qKgogICAqIFByaW50cyB0byB0aGUgZXJyb3IgbG9nIGlmIHlvdSBhcmVuJ3QgaW4gY29tbWFuZCBsaW5lIG1vZGUuCiAgICoKICAgKiBAcGFyYW0gU3RyaW5nIGxvZyBtZXNzYWdlCiAgICovCiAgcHJvdGVjdGVkIHN0YXRpYyBmdW5jdGlvbiBlcnJvckxvZygkbXNnKSB7CiAgICAvLyBkaXNhYmxlIGVycm9yIGxvZyBpZiB3ZSBhcmUgcnVubmluZyBpbiBhIENMSSBlbnZpcm9ubWVudAogICAgLy8gQGNvZGVDb3ZlcmFnZUlnbm9yZVN0YXJ0CiAgICBpZiAocGhwX3NhcGlfbmFtZSgpICE9ICdjbGknKSB7CiAgICAgIGVycm9yX2xvZygkbXNnKTsKICAgIH0KICAgIC8vIHVuY29tbWVudCB0aGlzIGlmIHlvdSB3YW50IHRvIHNlZSB0aGUgZXJyb3JzIG9uIHRoZSBwYWdlCiAgICAvLyBwcmludCAnZXJyb3JfbG9nOiAnLiRtc2cuIlxuIjsKICAgIC8vIEBjb2RlQ292ZXJhZ2VJZ25vcmVFbmQKICB9CgogIC8qKgogICAqIEJhc2U2NCBlbmNvZGluZyB0aGF0IGRvZXNuJ3QgbmVlZCB0byBiZSB1cmxlbmNvZGUoKWVkLgogICAqIEV4YWN0bHkgdGhlIHNhbWUgYXMgYmFzZTY0X2VuY29kZSBleGNlcHQgaXQgdXNlcwogICAqICAgLSBpbnN0ZWFkIG9mICsKICAgKiAgIF8gaW5zdGVhZCBvZiAvCiAgICoKICAgKiBAcGFyYW0gU3RyaW5nIGJhc2U2NFVybEVuY29kZWRlZCBzdHJpbmcKICAgKi8KICBwcm90ZWN0ZWQgc3RhdGljIGZ1bmN0aW9uIGJhc2U2NFVybERlY29kZSgkaW5wdXQpIHsKICAgIHJldHVybiBiYXNlNjRfZGVjb2RlKHN0cnRyKCRpbnB1dCwgJy1fJywgJysvJykpOwogIH0KfQo=]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBGZXVGYWNlYm9vawojIFpkZW5vIEt1em1hbnkgKHpkZW5vQGt1em1hbnkuYml6KQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA5IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9za2VsZXRvbi8KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgppZiAoIWlzc2V0KCRnQ21zKSkgZXhpdDsKCgokZGIgPSYgJGdDbXMtPkdldERiKCk7CgokdGhpcy0+U2V0UHJlZmVyZW5jZSgnZmJfYXBpX2lkJywgJycpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnZmJfc2VjcmV0X2tleScsICcnKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2ZiX2xvZ2luX3Nlc3Npb24nLCAnJyk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdmYl9sb2dpbl9zdGF0dXMnLCAnJyk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdmYl9sb2dpbl9jb29raWUnLCAnMScpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnZmJfbG9naW5feGZibWwnLCAnMScpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgncmVkaXJlY3RfcGFnZV9hZnRlcl9sb2dpbicsICcnKTsKCiMgU2V0dXAgYnV0dG9uIHRlbXBsYXRlCiRmbiA9IGNtc19qb2luX3BhdGgoZGlybmFtZShfX0ZJTEVfXyksJ3RlbXBsYXRlcycsJ29yaWdfYnV0dG9uX3RlbXBsYXRlLnRwbCcpOwppZiggZmlsZV9leGlzdHMoICRmbiApICkKewoJJHRlbXBsYXRlID0gZmlsZV9nZXRfY29udGVudHMoICRmbiApOwoJJHRoaXMtPlNldFByZWZlcmVuY2UoJ2RlZmF1bHRfYnV0dG9uX3RlbXBsYXRlJywkdGVtcGxhdGUpOwoJJHRoaXMtPlNldFRlbXBsYXRlKCdidXR0b25fdGVtcGxhdGVTYW1wbGUnLCR0ZW1wbGF0ZSk7CgkkdGhpcy0+U2V0UHJlZmVyZW5jZSgnY3VycmVudF9idXR0b25fdGVtcGxhdGUnLCdTYW1wbGUnKTsKfQoKCiR0aGlzLT5DcmVhdGVQZXJtaXNzaW9uKCdVc2UgRmV1RmFjZWJvb2snLCAnVXNlIEZldUZhY2Vib29rJyk7CiR0aGlzLT5BdWRpdCggMCwgJHRoaXMtPkxhbmcoJ2ZyaWVuZGx5bmFtZScpLCAkdGhpcy0+TGFuZygnaW5zdGFsbGVkJywkdGhpcy0+R2V0VmVyc2lvbigpKSk7Cgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpCiAgICBleGl0OwoKJGRiID0gJiAkZ0Ntcy0+R2V0RGIoKTsKCiR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCk7CiR0aGlzLT5SZW1vdmVQZXJtaXNzaW9uKCdVc2UgRmV1RmFjZWJvb2snKTsKCiR0aGlzLT5BdWRpdCgwLCAkdGhpcy0+TGFuZygnZnJpZW5kbHluYW1lJyksICR0aGlzLT5MYW5nKCd1bmluc3RhbGxlZCcpKTsKPz4=]]></data>
	</file>
	<file>
	  <filename>/method.upgrade.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/adminprefs.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRzdGFydGZvcm19CjxmaWVsZHNldD4KICAgIDxsZWdlbmQ+eyRtb2QtPkxhbmcoJ2ZhY2Vib29rX29wdGlvbnMnKX08L2xlZ2VuZD4KICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnZmJfYXBpX2lkJyl9OjwvcD4KICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgICAgICAgICAgICAgeyRmYl9hcGlfaWR9CiAgICAgICAgPC9wPgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ2ZiX3NlY3JldF9rZXknKX06PC9wPgogICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICAgICAgICAgICAgICB7JGZiX3NlY3JldF9rZXl9CiAgICAgICAgPC9wPgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ2ZiX2xvZ2luX3Nlc3Npb24nKX06PC9wPgogICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICAgICAgICAgICAgICB7JGZiX2xvZ2luX3Nlc3Npb259CiAgICAgICAgPC9wPgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ2ZiX2xvZ2luX3N0YXR1cycpfTo8L3A+CiAgICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgICAgICAgICAgICAgIHskZmJfbG9naW5fc3RhdHVzfQogICAgICAgIDwvcD4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdmYl9sb2dpbl9jb29raWUnKX06PC9wPgogICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICAgICAgICAgICAgICB7JGZiX2xvZ2luX2Nvb2tpZX0KICAgICAgICA8L3A+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnZmJfbG9naW5feGZibWwnKX06PC9wPgogICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICAgICAgICAgICAgICB7JGZiX2xvZ2luX3hmYm1sfQogICAgICAgIDwvcD4KICAgIDwvZGl2Pgo8L2ZpZWxkc2V0Pgo8ZmllbGRzZXQ+CiAgICA8bGVnZW5kPnskbW9kLT5MYW5nKCdmYWNlYm9va19pbXBvcnRfdXNlcl9pbmZvJyl9PC9sZWdlbmQ+CiAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3VzZXJuYW1lJyl9OjwvcD4KICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgICAgICAgICAgICAgeyRmYl91c2VybmFtZX0KICAgICAgICA8L3A+CiAgICA8L2Rpdj4KPC9maWVsZHNldD4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRzdWJtaXR9PC9wPgo8L2Rpdj4KeyRlbmRmb3JtfQo=]]></data>
	</file>
	<file>
	  <filename>/templates/admin_accounts.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHA+VGhlcmUgYXJlIGN1cnJlbnRseSA8c3Ryb25nPnskbnVtbGlua3N9PC9zdHJvbmc+IGFjY291bnQgbGlua3MuPC9wPgo8cD5QYWdlOiA8L3A+Cjx0YWJsZSBjZWxsc3BhY2luZz0iMCIgY2xhc3M9InBhZ2V0YWJsZSI+Cgk8dGhlYWQ+CgkJPHRyPgoJCQk8dGg+eyRsaW5rdGl0bGV9PC90aD4KCQkJPHRoIGNsYXNzPSJwYWdlaWNvbiI+Jm5ic3A7PC90aD4KCQkJPCEtLTx0aCBjbGFzcz0icGFnZWljb24iPjxhIGhyZWY9ImphdmFzY3JpcHQ6c2VsZWN0QWxsKCk7Ij57JHNlbGVjdHRleHR9PC9hPjwvdGg+LS0+CgkJPC90cj4KCTwvdGhlYWQ+Cgk8dGJvZHk+Cgl7Zm9yZWFjaCBmcm9tPSRpdGVtcyBpdGVtPWVudHJ5fQogICAgICAgICAgICAgICAgPHRyIGNsYXNzPSJ7JGVudHJ5LT5yb3djbGFzc30iIG9ubW91c2VvdmVyPSJ0aGlzLmNsYXNzTmFtZT0neyRlbnRyeS0+cm93Y2xhc3N9aG92ZXInOyIgb25tb3VzZW91dD0idGhpcy5jbGFzc05hbWU9J3skZW50cnktPnJvd2NsYXNzfSc7Ij4KCQkJPHRkPnskZW50cnktPmZldV9uYW1lfSAoeyRlbnRyeS0+ZmV1X2lkfSkgLT4geyRlbnRyeS0+bmFtZX0gKHskZW50cnktPmZiX2lkfSk8L3RkPgoJCQk8dGQ+eyRlbnRyeS0+ZGVsZXRlbGlua308L3RkPgoJCTwvdHI+Cgl7L2ZvcmVhY2h9Cgk8L3Rib2R5Pgo8L3RhYmxlPg==]]></data>
	</file>
	<file>
	  <filename>/templates/orig_button_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmICRjY3VzZXItPmxvZ2dlZGluKCkgb3IgJHVpZH0KeyR0ZW1wbGF0ZV9sb2dvdXR9CntlbHNlfQp7JHRlbXBsYXRlX2xvZ2lufQoKPGRpdiBpZD0iZmItcm9vdCI+PC9kaXY+Cgp7bGl0ZXJhbH0gICAgPHNjcmlwdD4KICAgICAgd2luZG93LmZiQXN5bmNJbml0ID0gZnVuY3Rpb24oKSB7CiAgICAgICAgRkIuaW5pdCh7CiAgICAgICAgey9saXRlcmFsfQogICAgICAgICAgYXBwSWQgICA6ICd7JGZiX2FwaV9pZH0nLAogICAgICAgICAgc2Vzc2lvbiA6IHtpZiAkZmJfbG9naW5fc2Vzc2lvbn10cnVle2Vsc2V9ZmFsc2V7L2lmfSwgLy8gZG9uJ3QgcmVmZXRjaCB0aGUgc2Vzc2lvbiB3aGVuIFBIUCBhbHJlYWR5IGhhcyBpdAogICAgICAgICAgc3RhdHVzICA6IHtpZiAkZmJfbG9naW5fc3RhdHVzfXRydWV7ZWxzZX1mYWxzZXsvaWZ9LCAvLyBjaGVjayBsb2dpbiBzdGF0dXMKICAgICAgICAgIGNvb2tpZSAgOiB7aWYgJGZiX2xvZ2luX2Nvb2tpZX10cnVle2Vsc2V9ZmFsc2V7L2lmfSwgLy8gZW5hYmxlIGNvb2tpZXMgdG8gYWxsb3cgdGhlIHNlcnZlciB0byBhY2Nlc3MgdGhlIHNlc3Npb24KICAgICAgICAgIHhmYm1sICAgOiB7aWYgJGZiX2xvZ2luX3hmYm1sfXRydWV7ZWxzZX1mYWxzZXsvaWZ9IC8vIHBhcnNlIFhGQk1MCiAgICAgICAgIHtsaXRlcmFsfQogICAgICAgIH0pOwoKICAgICAgICAvLyB3aGVuZXZlciB0aGUgdXNlciBsb2dzIGluLCB3ZSByZWZyZXNoIHRoZSBwYWdlCiAgICAgICAgRkIuRXZlbnQuc3Vic2NyaWJlKCdhdXRoLmxvZ2luJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7CiAgICAgICAgfSk7CiAgICAgIH07CgogICAgICAoZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTsKICAgICAgICB7L2xpdGVyYWx9ZS5zcmMgPSBkb2N1bWVudC5sb2NhdGlvbi5wcm90b2NvbCArICcvL2Nvbm5lY3QuZmFjZWJvb2submV0L3skbGFuZ30vYWxsLmpzJzt7bGl0ZXJhbH0KICAgICAgICBlLmFzeW5jID0gdHJ1ZTsKICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmItcm9vdCcpLmFwcGVuZENoaWxkKGUpOwogICAgICB9KCkpOwo8L3NjcmlwdD4KCnsvbGl0ZXJhbH0KPGZiOmxvZ2luLWJ1dHRvbj48L2ZiOmxvZ2luLWJ1dHRvbj4KCnsvaWZ9IA==]]></data>
	</file>
</module>
