<?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>Harden</name>
	<version>0.0.1</version>
    <mincmsversion>2.2.4</mincmsversion>
	<help><![CDATA[CjxzdHJvbmc+V2hhdCBpcyB0aGUgcHVycG9zZSBvZiB0aGUgbW9kdWxlPzwvc3Ryb25nPjxici8+ClRoaXMgbW9kdWxlIHNlZWtzIHRvIGhhcmRlbiBzZXZlcmFsIHNlY3V0aXJ5IGFzcGVjdHMgb2YgdGhlIGNvcmUgQ01TIE1hZGUgU2ltcGxlLiBUaGluZ3MgbGlrZSBwcmV2ZW50aW5nIApicnV0ZWZvcmNlIGF0dGFja3MgdG8gdGhlIGFkbWluLXNlY3Rpb24uIE1ha2luZyBzdXJlIHBhc3N3b3JkIGFyZSByZXBsYWNlcyByZWd1bGFyeSBhbmQgaGF2ZSBhIGNlcnRhaW4KY29tcGxleGl0eS4KCjxzdHJvbmc+SG93IGRvIEkgdXNlIHRoaW5nIG1vZHVsZT88L3N0cm9uZz48YnIvPgpBZnRlciBpbnN0YWxsaW5nIHRoZSBtb2R1bGUsIGFjY2VzcyBpdCdzIGFkbWluaXN0cmF0aXZlIGludGVyZmFjZSBhbmQgc2V0IHVwIHRoZSBkZXNpcmVkIG9wdGlvbnMgZm9yCmhhcmRlbmluZyBzZWN1cml0eS4KPGJyLz4KWW91IGNhbiBhbHNvIChhdCBzb21lIHBvaW50KSBjaG9vc2UgdG8gc2F2ZSB0aGUgY3VycmVudCBzZXR0aW5ncyB0byBhIGZpbGUgb3IgbG9hZCBhIHByZXZpb3VzbHkgc2F2ZWQgc2V0dGluZ3MuCgoKCgoK]]></help>
	<about><![CDATA[PGJyIC8+QXV0aG9yOiBNb3J0ZW4gUG91bHNlbiAmbHQ7bW9ydGVuQHBvdWxzZW4ub3JnJmd0OzxiciAvPjxiciAvPlZlcnNpb246IDAuMC4xPGJyIC8+PGJyIC8+Q2hhbmdlIEhpc3Rvcnk6PGJyIC8+PHVsCiAgPGxpPjAuMS4wIC0gSW5pdGlhbCByZWxlYXNlPC9saT4KPC91bD48YnIgLz4=]]></about>
	<description><![CDATA[-- Missing Languagestring: moddescription --]]></description>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmlmICghZnVuY3Rpb25fZXhpc3RzKCJjbXNtcyIpKSBleGl0OwoKaWYgKCEkdGhpcy0+VmlzaWJsZVRvQWRtaW5Vc2VyKCkpIGV4aXQ7CmVjaG8gIjxzdHJvbmc+UGxlYXNlIG5vdGUgdGhhdCB0aGlzIG1vZHVsZSBpcyBpbiBmYWlybHkgZWFybHkgc3RhZ2VzIG9mIGRldmVsb3BtZW50LiBNYW55IHRoaW5ncyBhcmUgbm90IHRocm91Z2hseSB0ZXN0ZWQsIGFuZCBhIGxvdCBvZiB0aGluZ3MgYXJlIG5vdCB0cmFuc2xhdGVkLiI7CiR0YWI9IiI7CmlmIChpc3NldCgkcGFyYW1zWyJ0YWIiXSkpICR0YWI9JHBhcmFtc1sidGFiIl07CmlmIChpc3NldCgkX1JFUVVFU1RbInRhYiJdKSkgJHRhYj0kX1JFUVVFU1RbInRhYiJdOwplY2hvICR0aGlzLT5TdGFydFRhYkhlYWRlcnMoKTsKICBlY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoInVzZXJzIiwkdGhpcy0+TGFuZygidXNlcnN0YWIiKSwoJHRhYj09InVzZXJzIikpOwogIGVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcigibG9naW5zIiwkdGhpcy0+TGFuZygibG9naW5zdGFiIiksKCR0YWI9PSJsb2dpbnMiKSk7CiAgZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCJmaWxlcyIsJHRoaXMtPkxhbmcoImZpbGVzdGFiIiksKCR0YWI9PSJmaWxlcyIpKTsKICAvL2VjaG8gJHRoaXMtPlNldFRhYkhlYWRlcigic2V0dGluZ3MiLCR0aGlzLT5MYW5nKCJzZXR0aW5nc3RhYiIpLCgkdGFiPT0ic2V0dGluZ3MiKSk7CiAgZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCJsb2ciLCR0aGlzLT5MYW5nKCJsb2d0YWIiKSwoJHRhYj09ImxvZyIpKTsKCiAgZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCJzZXR0aW5ncyIsJHRoaXMtPkxhbmcoInNldHRpbmdzdGFiIiksKCR0YWI9PSJzZXR0aW5ncyIpKTsKICBlY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoInByZWZsaWdodCIsJHRoaXMtPkxhbmcoInByZWZsaWdodHRhYiIpLCgkdGFiPT0icHJlZmxpZ2h0IikpOwplY2hvICR0aGlzLT5FbmRUYWJIZWFkZXJzKCk7CgplY2hvICR0aGlzLT5TdGFydFRhYkNvbnRlbnQoKTsKZWNobyAkdGhpcy0+U3RhcnRUYWIoInVzZXJzIik7CmluY2x1ZGVfb25jZShkaXJuYW1lKF9fZmlsZV9fKS4iL3RhYi51c2Vycy5waHAiKTsKZWNobyAkdGhpcy0+RW5kVGFiKCk7CgplY2hvICR0aGlzLT5TdGFydFRhYigibG9naW5zIik7CmluY2x1ZGVfb25jZShkaXJuYW1lKF9fZmlsZV9fKS4iL3RhYi5sb2dpbnMucGhwIik7CmVjaG8gJHRoaXMtPkVuZFRhYigpOwoKZWNobyAkdGhpcy0+U3RhcnRUYWIoImZpbGVzIik7CmluY2x1ZGVfb25jZShkaXJuYW1lKF9fZmlsZV9fKS4iL3RhYi5maWxlcy5waHAiKTsKZWNobyAkdGhpcy0+RW5kVGFiKCk7CgplY2hvICR0aGlzLT5TdGFydFRhYigibG9nIik7CmluY2x1ZGVfb25jZShkaXJuYW1lKF9fZmlsZV9fKS4iL3RhYi5sb2cucGhwIik7CmVjaG8gJHRoaXMtPkVuZFRhYigpOwoKZWNobyAkdGhpcy0+U3RhcnRUYWIoInNldHRpbmdzIik7CmluY2x1ZGVfb25jZShkaXJuYW1lKF9fZmlsZV9fKS4iL3RhYi5zZXR0aW5ncy5waHAiKTsKZWNobyAkdGhpcy0+RW5kVGFiKCk7CgplY2hvICR0aGlzLT5TdGFydFRhYigicHJlZmxpZ2h0Iik7CmluY2x1ZGVfb25jZShkaXJuYW1lKF9fZmlsZV9fKS4iL3RhYi5wcmVmbGlnaHQucGhwIik7CmVjaG8gJHRoaXMtPkVuZFRhYigpOwoKZWNobyAkdGhpcy0+RW5kVGFiQ29udGVudCgpOwoKZWNobyAkdGhpcy0+TmVvUHJvY2Vzc1RlbXBsYXRlKCJhZG1pbl9leHBvcnQudHBsIik7Cgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.exportsettings.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KaWYgKCFmdW5jdGlvbl9leGlzdHMoImNtc21zIikpIGV4aXQ7DQoNCmlmICghJHRoaXMtPlZpc2libGVUb0FkbWluVXNlcigpKSBleGl0Ow0KDQokZmlsZV9uYW1lID0gImhhcmRlbl9zZXR0aW5nc18iLmRhdGUoImpuWSIpLiIueG1sIjsNCmhlYWRlcignQ29udGVudC1EaXNwb3NpdGlvbjogYXR0YWNobWVudDtmaWxlbmFtZT0nIC4gJGZpbGVfbmFtZSk7DQpoZWFkZXIoJ0NvbnRlbnQtVHlwZTogdGV4dC94bWwnKTsNCg0KJHhtbD1uZXcgU2ltcGxlWE1MRWxlbWVudCgiPHNldHRpbmdzPjwvc2V0dGluZ3M+Iik7DQokeG1sLT5hZGRDaGlsZCgidmVyc2lvbiIsJHRoaXMtPkdldFZlcnNpb24oKSk7DQokeG1sLT5hZGRDaGlsZCgibW9kdWxlIiwiSGFyZGVuIFNlY3VyaXR5ICIuJHRoaXMtPkdldFZlcnNpb24oKSk7DQokdXNlcnM9JHhtbC0+YWRkQ2hpbGQoInVzZXJzIik7DQokdXNlcnMtPmFkZENoaWxkKCJlbmFibGV1c2VycyIsJHRoaXMtPnByZigiZW5hYmxldXNlcnMiKSk7DQoNCmVjaG8gJHhtbC0+YXNYTUwoKTsNCmRpZSgpOw==]]></data>
	</file>
	<file>
	  <filename>/action.importsettings.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KaWYgKCFmdW5jdGlvbl9leGlzdHMoImNtc21zIikpIGV4aXQ7DQoNCmlmICghJHRoaXMtPlZpc2libGVUb0FkbWluVXNlcigpKSBleGl0Ow0KDQovL3ByaW50X3IoJF9GSUxFU1skaWQuImltcG9ydGZpbGUiXSk7DQokZmlsZT1maWxlX2dldF9jb250ZW50cygkX0ZJTEVTWyRpZC4iaW1wb3J0ZmlsZSJdWyJ0bXBfbmFtZSJdKTsNCg0KJHhtbD1zaW1wbGV4bWxfbG9hZF9zdHJpbmcoJGZpbGUpOw0KDQplY2hvICI8cHJlPiIucHJpbnRfcigkeG1sKS4iPC9wcmU+Ijs=]]></data>
	</file>
	<file>
	  <filename>/action.newpassword.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCmlmICghZnVuY3Rpb25fZXhpc3RzKCJjbXNtcyIpKSBleGl0Ow0KcmVxdWlyZV9vbmNlKCIuLi9saWIvaW5jbHVkZS5waHAiKTsNCiR1cmxleHQ9Jz8nLkNNU19TRUNVUkVfUEFSQU1fTkFNRS4nPScuJF9TRVNTSU9OW0NNU19VU0VSX0tFWV07DQokdXJsPSJteWFjY291bnQucGhwIi4kdXJsZXh0LiImbTFfYWxyZWFkeXJlZGlyZWN0aW5nPTEiOw0KJHNtYXJ0eS0+YXNzaWduKCdteWFjY291bnRsaW5rJywgJHVybCk7DQoNCmlmIChpc3NldCgkcGFyYW1zWyJwd21lc3NhZ2UiXSkpIHsNCiAgJHNtYXJ0eS0+YXNzaWduKCdwd21lc3NhZ2UnLCAkcGFyYW1zWyJwd21lc3NhZ2UiXSk7DQp9DQokc21hcnR5LT5hc3NpZ24oJ215YWNjb3VudGxpbmsnLCAkdXJsKTsNCg0KDQoNCmVjaG8gJHRoaXMtPk5lb1Byb2Nlc3NUZW1wbGF0ZSgibmV3cGFzc3dvcmQudHBsIik7DQoNCg0KPz4=]]></data>
	</file>
	<file>
	  <filename>/action.saveloginssettings.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCmlmICghZnVuY3Rpb25fZXhpc3RzKCJjbXNtcyIpKSBleGl0Ow0KaWYgKCEkdGhpcy0+VmlzaWJsZVRvQWRtaW5Vc2VyKCkpIGV4aXQ7DQoNCiR0aGlzLT5OZW9TYXZlVmFsdWVzKCRwYXJhbXMsYXJyYXkoDQogICJlbmFibGVsb2dpbnMiLA0KICAiYmxvY2tvbmlwIiwNCiAgImJsb2Nrb251c2VybmFtZSIsDQogICJhdHRlbXB0cGVyaW9kIiwNCiAgIm1heGF0dGVtcHRzIiwNCiAgImJsb2NrZm9yIiwNCiAgImJsb2NrbWVzc2FnZSINCiksDQogICJyZW1vdmUiKTsNCg0KJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCxhcnJheSgidGFiIj0+ImxvZ2lucyIsIm1vZHVsZV9tZXNzYWdlIj0+JHRoaXMtPkxhbmcoImxvZ2luc3NldHRpbmdzc2F2ZWQiKSkpOw0K]]></data>
	</file>
	<file>
	  <filename>/action.savesettings.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCmlmICghZnVuY3Rpb25fZXhpc3RzKCJjbXNtcyIpKSBleGl0Ow0KaWYgKCEkdGhpcy0+VmlzaWJsZVRvQWRtaW5Vc2VyKCkpIGV4aXQ7DQoNCiR0aGlzLT5OZW9TYXZlVmFsdWVzKCRwYXJhbXMsYXJyYXkoDQogICJxdWFyYW50aW5lZGlyIg0KICAvKiJlbmFibGVsb2dpbnMiLA0KICAiYmxvY2tvbmlwIiwNCiAgImJsb2Nrb251c2VybmFtZSIsDQogICJhdHRlbXB0cGVyaW9kIiwNCiAgIm1heGF0dGVtcHRzIiwNCiAgImJsb2NrZm9yIiwNCiAgImJsb2NrbWVzc2FnZSIqLw0KKSwNCiAgInJlbW92ZSIpOw0KDQokdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkLGFycmF5KCJ0YWIiPT4ic2V0dGluZ3MiLCJtb2R1bGVfbWVzc2FnZSI9PiR0aGlzLT5MYW5nKCJzZXR0aW5nc3NhdmVkIikpKTsNCg==]]></data>
	</file>
	<file>
	  <filename>/action.saveuserssettings.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCmlmICghZnVuY3Rpb25fZXhpc3RzKCJjbXNtcyIpKSBleGl0Ow0KaWYgKCEkdGhpcy0+VmlzaWJsZVRvQWRtaW5Vc2VyKCkpIGV4aXQ7DQoNCiR0aGlzLT5OZW9TYXZlVmFsdWVzKCRwYXJhbXMsYXJyYXkoDQogICJlbmFibGV1c2VycyIsDQogICJmb3JjZWNoYW5nZXB3IiwNCiAgImNoYW5nZXB3ZXZlcnkiLA0KICAiZm9yY2Vjb21wbGV4cHciLA0KICAiZm9yY2Vib3RoY2FzZXMiLA0KICAiZm9yY2VudW1iZXIiLA0KICAiZm9yY2VzcGVjaWFsIiwNCiAgInB3bWlubGVuZ3RoIiwNCiAgInBhc3N3b3JkbWVzc2FnZSINCg0KKSwNCiAgInJlbW92ZSIpOw0KDQokdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkLGFycmF5KCJ0YWIiPT4idXNlcnMiLCJtb2R1bGVfbWVzc2FnZSI9PiR0aGlzLT5MYW5nKCJ1c2Vyc3NldHRpbmdzc2F2ZWQiKSkpOw0K]]></data>
	</file>
	<file>
	  <filename>/class.neodb.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCi8vdmVyc2lvbiAxLjIuMA0KLy8xLjIuMCAtIGFkZGVkIEV4ZWN1dGVTUUwtbWV0aG9kDQppZiAoIWZ1bmN0aW9uX2V4aXN0cygiaXNfYXNzb2MiKSkgew0KICAgIGZ1bmN0aW9uIGlzX2Fzc29jKCRhcnJheSkgew0KICAgICAgICByZXR1cm4gKGlzX2FycmF5KCRhcnJheSkgJiYgMCAhPT0gY291bnQoYXJyYXlfZGlmZl9rZXkoJGFycmF5LCBhcnJheV9rZXlzKGFycmF5X2tleXMoJGFycmF5KSkpKSk7DQogICAgfQ0KfQ0KDQppZighY2xhc3NfZXhpc3RzKCJOZW9EQiIpKSB7DQogIGNsYXNzIE5lb0RCDQogIHsNCg0KICAgIHZhciAkX2RiID0gZmFsc2U7DQogICAgdmFyICRfdGFibGVuYW1lID0gZmFsc2U7DQogICAgdmFyICRfZmVhdHVyZXMgPSBmYWxzZTsNCiAgICB2YXIgJF9lY2hvZXJyb3JzID0gZmFsc2U7DQogICAgdmFyICRfZWNob3NxbCA9IGZhbHNlOw0KICAgIHZhciAkX2V4cGFuZGNvbHVtbiA9IGZhbHNlOw0KICAgIHZhciAkX2lkZmllbGRuYW1lID0gImlkIjsNCg0KICAgIGZ1bmN0aW9uIF9fY29uc3RydWN0KCR0YWJsZW5hbWUsICRmZWF0dXJlcyA9IGFycmF5KCkpDQogICAgew0KICAgICAgJHRoaXMtPkluaXRpYWxpemUoJHRhYmxlbmFtZSwgJGZlYXR1cmVzKTsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBOZW9EYigpDQogICAgew0KICAgICAgaWYgKCR0aGlzLT5fZGIgIT09IGZhbHNlKSByZXR1cm4gJHRoaXMtPl9kYjsNCiAgICAgICR0aGlzLT5fZGIgPSBjbXNtcygpLT5HZXREQigpOw0KICAgICAgcmV0dXJuICR0aGlzLT5fZGI7DQogICAgfQ0KDQogICAgZnVuY3Rpb24gSW5pdGlhbGl6ZSgkdGFibGVuYW1lLCAkZmVhdHVyZXMgPSBhcnJheSgpKQ0KICAgIHsNCiAgICAgICR0aGlzLT5fdGFibGVuYW1lID0gJHRhYmxlbmFtZTsNCiAgICAgICR0aGlzLT5fZmVhdHVyZXMgPSAkZmVhdHVyZXM7DQogICAgfQ0KDQogICAgZnVuY3Rpb24gQ3JlYXRlVGFibGUoJGNvbHVtbnMsICRkb3NlcSA9IHRydWUpDQogICAgew0KICAgICAgJGRiID0gJHRoaXMtPk5lb0RiKCk7DQoNCiAgICAgICRkaWN0ID0gJGRiLT5OZXdEYXRhRGljdGlvbmFyeSgkZGIpOw0KICAgICAgLyokZmxkcyA9ICINCiAgICAgICAgbmV3c19pZCBJIEtFWSwNCiAgICAgICAgbmV3c19jYXRlZ29yeV9pZCBJLA0KICAgICAgICBuZXdzX3RpdGxlIEMoMjU1KSwNCiAgICAgICAgbmV3c19kYXRhIFgsDQogICAgICAgIG5ld3NfZGF0ZSAiIC4gQ01TX0FET0RCX0RUIC4gIiwNCiAgICAgICAgc3VtbWFyeSBYLA0KICAgICAgICBzdGFydF90aW1lICIgLiBDTVNfQURPREJfRFQgLiAiLA0KICAgICAgICBlbmRfdGltZSAiIC4gQ01TX0FET0RCX0RUIC4gIiwNCiAgICAgICAgc3RhdHVzIEMoMjUpLA0KICAgICAgICBpY29uIEMoMjU1KSwNCiAgICAgICAgY3JlYXRlX2RhdGUgIiAuIENNU19BRE9EQl9EVCAuICIsDQogICAgICAgIG1vZGlmaWVkX2RhdGUgIiAuIENNU19BRE9EQl9EVCAuICIsDQogICAgICAgIGF1dGhvcl9pZCBJLA0KICAgICAgICAgICAgICBuZXdzX2V4dHJhIEMoMjU1KSwNCiAgICAgICAgICAgICAgbmV3c191cmwgQygyNTUpDQogICAgICAiOyAvLyBpY29uIGlzIG5vIGxvbmdlciB1c2VkLg0KICAgICAgKi8NCiAgICAgICR0YWJvcHRhcnJheSA9IGFycmF5KCdteXNxbCcgPT4gJ1RZUEU9TXlJU0FNJyk7DQogICAgICBpZiAoaXNfYXJyYXkoJGNvbHVtbnMpKSB7DQogICAgICAgICRjb2x1bW5zID0gaW1wbG9kZSgiLCIsICRjb2x1bW5zKTsNCiAgICAgIH0NCiAgICAgICRjb2x1bW5zID0gJHRoaXMtPl9pZGZpZWxkbmFtZSAuICIgSSBLRVksICIgLiAkY29sdW1uczsNCiAgICAgIC8vZWNobyAkY29sdW1uczsNCiAgICAgICRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkgLiAkdGhpcy0+X3RhYmxlbmFtZSwgJGNvbHVtbnMsICR0YWJvcHRhcnJheSk7DQogICAgICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7DQogICAgICBpZiAoJGRvc2VxKSB7DQogICAgICAgICRkYi0+Q3JlYXRlU2VxdWVuY2UoY21zX2RiX3ByZWZpeCgpIC4gJHRoaXMtPl90YWJsZW5hbWUgLiAiX3NlcSIpOw0KICAgICAgfQ0KICAgIH0NCg0KICAgIGZ1bmN0aW9uIERlc3Ryb3lUYWJsZSgpDQogICAgew0KICAgICAgJGRiID0gJHRoaXMtPk5lb0RiKCk7DQogICAgICAkZGljdCA9ICRkYi0+TmV3RGF0YURpY3Rpb25hcnkoJGRiKTsNCiAgICAgICRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpIC4gJHRoaXMtPl90YWJsZW5hbWUpOw0KICAgICAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOw0KICAgICAgJGRiLT5Ecm9wU2VxdWVuY2UoY21zX2RiX3ByZWZpeCgpIC4gJHRoaXMtPl90YWJsZW5hbWUgLiAiX3NlcSIpOw0KICAgIH0NCg0KICAgIGZ1bmN0aW9uIERvZXNUYWJsZUV4aXN0KCkNCiAgICB7DQogICAgICAkZGIgPSAkdGhpcy0+TmVvRGIoKTsNCiAgICAgICRzcWwgPSAiU0VMRUNUICogRlJPTSAiIC4gY21zX2RiX3ByZWZpeCgpIC4gJHRoaXMtPl90YWJsZW5hbWU7DQogICAgICAkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHNxbCk7DQogICAgICBpZiAoISRkYnJlc3VsdCkgcmV0dXJuIGZhbHNlOw0KICAgICAgcmV0dXJuIHRydWU7DQogICAgfQ0KDQogICAgZnVuY3Rpb24gQWRkQ29sdW1uKCRjb2x1bW4pDQogICAgew0KICAgICAgJGRiID0gJHRoaXMtPk5lb0RiKCk7DQogICAgICAkZGljdCA9ICRkYi0+TmV3RGF0YURpY3Rpb25hcnkoJGRiKTsNCiAgICAgICRzcWxhcnJheSA9ICRkaWN0LT5BZGRDb2x1bW5TUUwoY21zX2RiX3ByZWZpeCgpIC4gJHRoaXMtPl90YWJsZW5hbWUsICRjb2x1bW4vKiJuZXdzX3VybCBDKDI1NSkiKi8pOw0KICAgICAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOw0KDQogICAgfQ0KDQogICAgZnVuY3Rpb24gUmVtb3ZlQ29sdW1uKCRjb2x1bW4pDQogICAgew0KICAgICAgJGRiID0gJHRoaXMtPk5lb0RiKCk7DQogICAgICAkZGljdCA9ICRkYi0+TmV3RGF0YURpY3Rpb25hcnkoJGRiKTsNCiAgICAgICRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wQ29sdW1uU1FMKGNtc19kYl9wcmVmaXgoKSAuICR0aGlzLT5fdGFibGVuYW1lLCAkY29sdW1uLyoibmV3c191cmwgQygyNTUpIiovKTsNCiAgICAgICRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsNCiAgICB9DQoNCg0KICAgIGZ1bmN0aW9uIERvZXNDb2x1bW5FeGlzdCgkY29sdW1ubmFtZSkNCiAgICB7DQogICAgICAkZGIgPSAkdGhpcy0+TmVvRGIoKTsNCg0KICAgICAgJHNxbCA9ICJTRUxFQ1QgIiAuICRjb2x1bW5uYW1lIC4gIiBGUk9NICIgLiBjbXNfZGJfcHJlZml4KCkgLiAkdGhpcy0+X3RhYmxlbmFtZSAuICIgV0hFUkUgMT0xIjsNCiAgICAgIC8vJHZhbHVlcz1hcnJheSgkaWQpOw0KICAgICAgJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRzcWwpOw0KICAgICAgaWYgKCRkYnJlc3VsdD09bnVsbCkgcmV0dXJuIGZhbHNlOw0KICAgICAgcmV0dXJuIHRydWU7DQogICAgfQ0KDQogICAgZnVuY3Rpb24gR2V0UU0oJGNvdW50KQ0KICAgIHsNCiAgICAgICRzaWducyA9ICIiOw0KICAgICAgZm9yICgkaSA9IDA7ICRpIDwgJGNvdW50OyAkaSsrKSB7DQogICAgICAgIGlmICgkc2lnbnMgIT0gIiIpICRzaWducyAuPSAiLCI7DQogICAgICAgICRzaWducyAuPSAiPyI7DQogICAgICB9DQogICAgICByZXR1cm4gJHNpZ25zOw0KICAgIH0NCg0KICAgIGZ1bmN0aW9uIENvbGxhcHNWYXJzKCR2YXJzID0gYXJyYXkoKSkNCiAgICB7DQogICAgICByZXR1cm4gc2VyaWFsaXplKCR2YXJzKTsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBFeHBhbmRWYXJzKCR2YXIgPSAiIikNCiAgICB7DQogICAgICByZXR1cm4gdW5zZXJpYWxpemUoJHZhcik7DQogICAgfQ0KDQogICAgZnVuY3Rpb24gRXhwYW5kQ29sdW1uKCRyb3csICRjb2x1bW4pDQogICAgew0KICAgICAgJHZhcnMgPSAkdGhpcy0+RXhwYW5kVmFycygkcm93WyRjb2x1bW5dKTsNCiAgICAgIGlmIChpc19hcnJheSgkdmFycykpIHsNCiAgICAgICAgZm9yZWFjaCAoJHZhcnMgYXMgJG5hbWUgPT4gJHZhbHVlKSB7DQogICAgICAgICAgJHJvd1skbmFtZV0gPSAkdmFsdWU7DQogICAgICAgIH0NCiAgICAgIH0NCiAgICAgIHJldHVybiAkcm93Ow0KICAgIH0NCg0KICAgIGZ1bmN0aW9uIEFkZFJvdygkbmV3dmFsdWVzLCAkcHZhbHVlcyA9IGFycmF5KCkpDQogICAgew0KICAgICAgJGRiID0gJHRoaXMtPk5lb0RiKCk7DQoNCiAgICAgICRuZXdpZCA9ICRkYi0+R2VuSUQoY21zX2RiX3ByZWZpeCgpIC4gJHRoaXMtPl90YWJsZW5hbWUgLiAiX3NlcSIpOw0KICAgICAgJGtleXMgPSBhcnJheSgkdGhpcy0+X2lkZmllbGRuYW1lKTsNCiAgICAgICR2YWx1ZXMgPSBhcnJheSgkbmV3aWQpOw0KDQogICAgICBpZiAoZW1wdHkoJHB2YWx1ZXMpKSB7DQoNCiAgICAgICAgZm9yZWFjaCAoJG5ld3ZhbHVlcyBhcyAka2V5ID0+ICR2YWx1ZSkgew0KICAgICAgICAgICRrZXlzW10gPSAka2V5Ow0KICAgICAgICAgICR2YWx1ZXNbXSA9ICR2YWx1ZTsNCiAgICAgICAgfQ0KICAgICAgfSBlbHNlIHsNCiAgICAgICAgZm9yZWFjaCAoJG5ld3ZhbHVlcyBhcyAka2V5KSB7DQogICAgICAgICAgaWYgKGlzc2V0KCRwdmFsdWVzWyRrZXldKSkgew0KICAgICAgICAgICAgJGtleXNbXSA9ICRrZXk7DQogICAgICAgICAgICAkdmFsdWVzW10gPSAkcHZhbHVlc1ska2V5XTsNCiAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgIH0NCiAgICAgIC8vcHJpbnRfcigka2V5cyk7DQogICAgICAkc2lnbnMgPSAkdGhpcy0+R2V0UU0oY291bnQoJGtleXMpKTsNCiAgICAgIC8vJHNxbD0iU0VMRUNUICIuJGNvbHVtbm5hbWUuIiBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiR0aGlzLT5fdGFibGVuYW1lLiIgV0hFUkUgMT0xIjsNCiAgICAgICRzcWwgPSAiSU5TRVJUIElOVE8gIiAuIGNtc19kYl9wcmVmaXgoKSAuICR0aGlzLT5fdGFibGVuYW1lIC4gIiAoIiAuIGltcGxvZGUoIiwiLCAka2V5cykgLiAiKSBWQUxVRVMgKCIgLiAkc2lnbnMgLiAiKSI7DQogICAgICAkdGhpcy0+VGhpc0VjaG8oIkFkZFJvdy1zcWwiLCAic3FsIiwgJHNxbCk7DQogICAgICAkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHNxbCwgJHZhbHVlcyk7DQogICAgICBpZiAoJGRicmVzdWx0PT1udWxsKSB7DQogICAgICAgICR0aGlzLT5UaGlzRWNobygiQWRkUm93LWVycm9yIiwgImVycm9yIiwgJGRiLT5FcnJvck1zZygpKTsNCiAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgfQ0KDQogICAgICByZXR1cm4gJG5ld2lkOyAvL29yIGZhbHNlDQogICAgfQ0KDQoNCiAgICBmdW5jdGlvbiBfcHJlcGFyZWNyaXRlcmlhKCRjcml0ZXJpYSA9IGFycmF5KCksICRwYXJhbXMgPSBhcnJheSgpKQ0KICAgIHsNCiAgICAgICRyZXN1bHQgPSBhcnJheSgic3FsIiA9PiAiIiwgInBhcmFtcyIgPT4gJHBhcmFtcyk7DQogICAgICBpZiAoIWVtcHR5KCRjcml0ZXJpYSkpIHsNCiAgICAgICAgaWYgKGlzX2FycmF5KCRjcml0ZXJpYSkpIHsNCiAgICAgICAgICAkcGFyYW1zID0gYXJyYXkoKTsNCiAgICAgICAgICAkcHN0cmluZz0iIjsNCiAgICAgICAgICBmb3JlYWNoICgkY3JpdGVyaWEgYXMgJGtleSA9PiAkdmFsdWUpIHsNCiAgICAgICAgICAgIGlmICgkcHN0cmluZyA9PSAiIikgew0KICAgICAgICAgICAgICAkcHN0cmluZyA9ICIgV0hFUkUgIiAuICRrZXkgLiAiPT8iOw0KICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgJHBzdHJpbmcgLj0gIiBBTkQgIiAuICRrZXkgLiAiPT8iOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8kcHN0cmluZy49DQogICAgICAgICAgICAkcGFyYW1zW10gPSAkdmFsdWU7DQogICAgICAgICAgfQ0KICAgICAgICAgICRyZXN1bHRbInNxbCJdID0gJHBzdHJpbmc7DQogICAgICAgICAgJHJlc3VsdFsicGFyYW1zIl0gPSBhcnJheV9tZXJnZSgkcmVzdWx0WyJwYXJhbXMiXSwgJHBhcmFtcyk7DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgJHJlc3VsdFsic3FsIl0gPSAkY3JpdGVyaWE7DQogICAgICAgIH0NCg0KICAgICAgfQ0KICAgICAgcmV0dXJuICRyZXN1bHQ7DQogICAgfQ0KDQogICAgZnVuY3Rpb24gX3ByZXBhcmVzb3J0aW5nKCRzb3J0aW5nID0gYXJyYXkoKSwgJHBhcmFtcyA9IGFycmF5KCkpDQogICAgew0KICAgICAgJHJlc3VsdCA9IGFycmF5KCJzcWwiID0+ICIiLCAicGFyYW1zIiA9PiAkcGFyYW1zKTsNCiAgICAgIGlmICghZW1wdHkoJHNvcnRpbmcpKSB7DQogICAgICAgIGlmIChpc19hcnJheSgkc29ydGluZykpIHsNCiAgICAgICAgICAkcHN0cmluZz0iIjsNCiAgICAgICAgICBmb3JlYWNoICgkc29ydGluZyBhcyAka2V5KSB7DQogICAgICAgICAgICBpZiAoJHBzdHJpbmcgPT0gIiIpIHsNCiAgICAgICAgICAgICAgJHBzdHJpbmcgPSAiT1JERVIgQlkgIiAuICRrZXk7DQogICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAkcHN0cmluZyAuPSAiLCIgLiAka2V5Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8kcHN0cmluZy49DQogICAgICAgICAgICAkcmVzdWx0WyJzcWwiXSA9ICRwc3RyaW5nOw0KICAgICAgICAgIH0NCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAkcmVzdWx0WyJzcWwiXSA9ICRzb3J0aW5nOw0KICAgICAgICB9DQogICAgICB9DQogICAgICByZXR1cm4gJHJlc3VsdDsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBFeGVjdXRlU1FMKCRzcWwsJHZhbHVlcz1hcnJheSgpKSB7DQogICAgICAkZGIgPSAkdGhpcy0+TmVvRGIoKTsNCiAgICAgICR0aGlzLT5UaGlzRWNobygiVXBkYXRlUm93LXNxbCIsICJzcWwiLCAkc3FsKTsNCiAgICAgICRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkc3FsLCAkdmFsdWVzKTsNCiAgICAgIGlmICgkZGJyZXN1bHQ9PW51bGwpIHsNCiAgICAgICAgJHRoaXMtPlRoaXNFY2hvKCJFeGVjdXRlU1FMLWVycm9yIiwgImVycm9yIiwgJGRiLT5FcnJvck1zZygpKTsNCiAgICAgICAgLy9kaWUoKTsNCiAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgfQ0KICAgICAgcmV0dXJuICRkYnJlc3VsdDsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBVcGRhdGVSb3coJGlkLCAkbmV3dmFsdWVzLCAkcHZhbHVlcyA9IGFycmF5KCksICRlbXB0eW1pc3NpbmcgPSBmYWxzZSkNCiAgICB7DQoNCiAgICAgICRkYiA9ICR0aGlzLT5OZW9EYigpOw0KDQogICAgICAkc2V0dGluZ3MgPSBhcnJheSgpOw0KICAgICAgJHZhbHVlcyA9IGFycmF5KCk7DQogICAgICBpZiAoZW1wdHkoJHB2YWx1ZXMpKSB7DQogICAgICAgIGZvcmVhY2ggKCRuZXd2YWx1ZXMgYXMgJGNvbHVtbiA9PiAkbmV3dmFsdWUpIHsNCiAgICAgICAgICAkc2V0dGluZ3NbXSA9ICRjb2x1bW4gLiAiPT8iOw0KICAgICAgICAgICR2YWx1ZXNbXSA9ICRuZXd2YWx1ZTsNCiAgICAgICAgfQ0KICAgICAgfSBlbHNlIHsNCiAgICAgICAgZm9yZWFjaCAoJG5ld3ZhbHVlcyBhcyAkY29sdW1uKSB7DQogICAgICAgICAgaWYgKGlzc2V0KCRwdmFsdWVzWyRjb2x1bW5dKSkgew0KICAgICAgICAgICAgJHNldHRpbmdzW10gPSAkY29sdW1uIC4gIj0/IjsNCiAgICAgICAgICAgICR2YWx1ZXNbXSA9ICRwdmFsdWVzWyRjb2x1bW5dOw0KICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICBpZiAoJGVtcHR5bWlzc2luZykgew0KICAgICAgICAgICAgICAkc2V0dGluZ3NbXSA9ICRjb2x1bW4gLiAiPT8iOw0KICAgICAgICAgICAgICAkdmFsdWVzW10gPSAiIjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgIH0NCiAgICAgICRzZXR0aW5ncyA9IGltcGxvZGUoIiwiLCAkc2V0dGluZ3MpOw0KICAgICAgJHZhbHVlcyA9IGFycmF5X21lcmdlKCR2YWx1ZXMsIGFycmF5KCRpZCkpOw0KICAgICAgJHNxbCA9ICJVUERBVEUgIiAuIGNtc19kYl9wcmVmaXgoKSAuICR0aGlzLT5fdGFibGVuYW1lIC4gIiBTRVQgIiAuICRzZXR0aW5ncyAuICIgV0hFUkUgIiAuICR0aGlzLT5faWRmaWVsZG5hbWUgLiAiPT8iOw0KICAgICAgJHRoaXMtPlRoaXNFY2hvKCJVcGRhdGVSb3ctc3FsIiwgInNxbCIsICRzcWwpOw0KICAgICAgLy9lY2hvICRzcWw7ZGllKCk7DQogICAgICAkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHNxbCwgJHZhbHVlcyk7DQogICAgICBpZiAoJGRicmVzdWx0PT1udWxsKSB7DQogICAgICAgICR0aGlzLT5UaGlzRWNobygiVXBkYXRlUm93LWVycm9yIiwgImVycm9yIiwgJGRiLT5FcnJvck1zZygpKTsNCiAgICAgICAgLy9kaWUoKTsNCiAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgfQ0KICAgICAgcmV0dXJuICRkYnJlc3VsdDsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBVcGRhdGVSb3dzKCRuZXd2YWx1ZXMsICRjcml0ZXJpYSA9ICIiLCAkcHZhbHVlcyA9IGFycmF5KCkpDQogICAgew0KDQoNCiAgICAgICRkYiA9ICR0aGlzLT5OZW9EYigpOw0KDQogICAgICAkc2V0dGluZ3MgPSBhcnJheSgpOw0KICAgICAgJHZhbHVlcyA9IGFycmF5KCk7DQoNCiAgICAgIGlmIChlbXB0eSgkcHZhbHVlcykpIHsNCiAgICAgICAgZm9yZWFjaCAoJG5ld3ZhbHVlcyBhcyAkY29sdW1uID0+ICRuZXd2YWx1ZSkgew0KICAgICAgICAgICRzZXR0aW5nc1tdID0gJGNvbHVtbiAuICI9PyI7DQogICAgICAgICAgJHZhbHVlc1tdID0gJG5ld3ZhbHVlOw0KICAgICAgICB9DQogICAgICB9IGVsc2Ugew0KICAgICAgICBmb3JlYWNoICgkbmV3dmFsdWVzIGFzICRjb2x1bW4pIHsNCiAgICAgICAgICBpZiAoaXNzZXQoJHB2YWx1ZXNbJGNvbHVtbl0pKSB7DQogICAgICAgICAgICAkc2V0dGluZ3NbXSA9ICRjb2x1bW4gLiAiPT8iOw0KICAgICAgICAgICAgJHZhbHVlc1tdID0gJHB2YWx1ZXNbJGNvbHVtbl07DQogICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICB9DQoNCiAgICAgIC8qICAgIGZvcmVhY2goJG5ld3ZhbHVlcyBhcyAkY29sdW1uPT4kbmV3dmFsdWUpIHsNCiAgICAgICAgICAgICRzZXR0aW5nc1tdPSRjb2x1bW4uIj0/IjsNCiAgICAgICAgICAgICR2YWx1ZXNbXT0kbmV3dmFsdWU7DQogICAgICAgICAgfQ0KICAgICAgICAgICRzZXR0aW5ncz1pbXBsb2RlKCIsIiwkc2V0dGluZ3MpOw0KICAgICAgKi8NCg0KICAgICAgJHNxbCA9ICJVUERBVEUgIiAuIGNtc19kYl9wcmVmaXgoKSAuICR0aGlzLT5fdGFibGVuYW1lIC4gIiBTRVQgIiAuICRzZXR0aW5nczsNCiAgICAgICRwY3JpdCA9ICR0aGlzLT5fcHJlcGFyZWNyaXRlcmlhKCRjcml0ZXJpYSwgJHZhbHVlcyk7DQoNCiAgICAgICR0aGlzLT5UaGlzRWNobygiVXBkYXRlUm93cy1zcWwiLCAic3FsIiwgJHNxbCAuICRwY3JpdFsic3FsIl0pOw0KICAgICAgLy9lY2hvICRzcWwuJHBjcml0WyJzcWwiXTtwcmludF9yKCRwY3JpdFsicGFyYW1zIl0pO2RpZSgpOw0KICAgICAgJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRzcWwgLiAkcGNyaXRbInNxbCJdLCAkcGNyaXRbInBhcmFtcyJdKTsNCg0KDQovLyAgICAkZGJyZXN1bHQ9JGRiLT5FeGVjdXRlKCRzcWwsJHZhbHVlcyk7DQogICAgICBpZiAoJGRicmVzdWx0PT1udWxsKSB7DQogICAgICAgICR0aGlzLT5UaGlzRWNobygiVXBkYXRlUm93LWVycm9yIiwgImVycm9yIiwgJGRiLT5FcnJvck1zZygpKTsNCiAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgfQ0KICAgICAgcmV0dXJuICRkYnJlc3VsdDsNCiAgICB9DQoNCg0KICAgIGZ1bmN0aW9uIERlbGV0ZVJvdygkaWQpDQogICAgew0KICAgICAgJGRiID0gJHRoaXMtPk5lb0RiKCk7DQoNCiAgICAgICRzcWwgPSAiREVMRVRFIEZST00gIiAuIGNtc19kYl9wcmVmaXgoKSAuICR0aGlzLT5fdGFibGVuYW1lIC4gIiBXSEVSRSAiIC4gJHRoaXMtPl9pZGZpZWxkbmFtZSAuICI9PyI7DQogICAgICAkdmFsdWVzID0gYXJyYXkoJGlkKTsNCiAgICAgICR0aGlzLT5UaGlzRWNobygiRGVsZXRlUm93LXNxbCIsICJzcWwiLCAkc3FsKTsNCiAgICAgICRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkc3FsLCAkdmFsdWVzKTsNCiAgICAgIC8vaWYgKCEkcmVzdWx0KSAkdGhpcy0+RXJyb3IoImZ1bmN0aW9uIERlbGV0ZUVudGl0eTogZXJyb3IgZGVsZXRpbmcgZW50aXR5IixmYWxzZSxhcnJheSgiaWQiPT4kaWQpKTsNCiAgICAgIGlmICgkZGJyZXN1bHQ9PW51bGwpIHsNCiAgICAgICAgJHRoaXMtPlRoaXNFY2hvKCJEZWxldGVSb3ctZXJyb3IiLCAiZXJyb3IiLCAkZGItPkVycm9yTXNnKCkpOw0KICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICB9DQogICAgICByZXR1cm4gJGRicmVzdWx0Ow0KICAgIH0NCg0KICAgIGZ1bmN0aW9uIERlbGV0ZVJvd3MoJGNyaXRlcmlhID0gYXJyYXkoKSkNCiAgICB7DQogICAgICAkZGIgPSAkdGhpcy0+TmVvRGIoKTsNCiAgICAgICRzcWwgPSAiREVMRVRFIEZST00gIiAuIGNtc19kYl9wcmVmaXgoKSAuICR0aGlzLT5fdGFibGVuYW1lOw0KICAgICAgJHBjcml0ID0gJHRoaXMtPl9wcmVwYXJlY3JpdGVyaWEoJGNyaXRlcmlhKTsNCg0KICAgICAgJHRoaXMtPlRoaXNFY2hvKCJEZWxldGVSb3dzLXNxbCIsICJzcWwiLCAkc3FsIC4gJHBjcml0WyJzcWwiXSk7DQogICAgICAkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHNxbCAuICRwY3JpdFsic3FsIl0sICRwY3JpdFsicGFyYW1zIl0pOw0KICAgICAgaWYgKCRkYnJlc3VsdD09bnVsbCkgew0KICAgICAgICAkdGhpcy0+VGhpc0VjaG8oIkRlbGV0ZVJvd3MtZXJyb3IiLCAiZXJyb3IiLCAkZGItPkVycm9yTXNnKCkpOw0KICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICB9DQoNCiAgICAgIC8vJHZhbHVlcz1hcnJheSgkaWQpOw0KICAgICAgLy8kZGJyZXN1bHQ9JGRiLT5FeGVjdXRlKCRzcWwsJHZhbHVlcyk7DQogICAgICAvL2lmICghJHJlc3VsdCkgJHRoaXMtPkVycm9yKCJmdW5jdGlvbiBEZWxldGVFbnRpdHk6IGVycm9yIGRlbGV0aW5nIGVudGl0eSIsZmFsc2UsYXJyYXkoImlkIj0+JGlkKSk7DQogICAgICByZXR1cm4gJGRicmVzdWx0Ow0KICAgIH0NCg0KICAgIGZ1bmN0aW9uIEdldFJvd0J5SUQoJGlkKQ0KICAgIHsNCiAgICAgIHJldHVybiAkdGhpcy0+R2V0Um93KCRpZCk7DQogICAgfQ0KDQogICAgZnVuY3Rpb24gR2V0Um93KCRpZCkNCiAgICB7DQogICAgICAkZGIgPSAkdGhpcy0+TmVvRGIoKTsNCg0KICAgICAgJHNxbCA9ICJTRUxFQ1QgKiBGUk9NICIgLiBjbXNfZGJfcHJlZml4KCkgLiAkdGhpcy0+X3RhYmxlbmFtZSAuICIgV0hFUkUgIiAuICR0aGlzLT5faWRmaWVsZG5hbWUgLiAiPT8iOw0KICAgICAgJHZhbHVlcyA9IGFycmF5KCRpZCk7DQogICAgICAkdGhpcy0+VGhpc0VjaG8oIkdldFJvdy1zcWwiLCAic3FsIiwgJHNxbCk7DQoNCiAgICAgICRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkc3FsLCAkdmFsdWVzKTsNCiAgICAgIGlmICgoJGRicmVzdWx0PT1udWxsKSB8fCAoJGRicmVzdWx0LT5SZWNvcmRDb3VudCgpID09IDApKSB7DQogICAgICAgICR0aGlzLT5UaGlzRWNobygiR2V0Um93LWVycm9yIiwgImVycm9yIiwgJGRiLT5FcnJvck1zZygpKTsNCiAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgfQ0KICAgICAgJHJlc3VsdCA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKTsNCiAgICAgIHJldHVybiAkcmVzdWx0Ow0KDQogICAgfQ0KDQogICAgZnVuY3Rpb24gR2V0T25lUm93KCRjcml0ZXJpYSA9IGFycmF5KCksICRmYWlsaWZtdWx0aXBsZSA9IGZhbHNlKQ0KICAgIHsNCg0KICAgICAgJGRiID0gJHRoaXMtPk5lb0RiKCk7DQoNCiAgICAgICRzcWwgPSAiU0VMRUNUICogRlJPTSAiIC4gY21zX2RiX3ByZWZpeCgpIC4gJHRoaXMtPl90YWJsZW5hbWUgLiAiICI7DQogICAgICAvKiRwYXJhbXM9YXJyYXkoKTsNCiAgICAgICRzdHJpbmc9IiI7Ki8NCg0KICAgICAgJHBjcml0ID0gJHRoaXMtPl9wcmVwYXJlY3JpdGVyaWEoJGNyaXRlcmlhKTsNCg0KICAgICAgJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRzcWwgLiAkcGNyaXRbInNxbCJdLCAkcGNyaXRbInBhcmFtcyJdKTsNCg0KICAgICAgaWYgKCgkZGJyZXN1bHQ9PW51bGwpIHx8ICgkZGJyZXN1bHQtPlJlY29yZENvdW50KCkgPT0gMCkpIHsNCiAgICAgICAgJHRoaXMtPlRoaXNFY2hvKCJHZXRPbmVSb3ctZXJyb3IiLCAiZXJyb3IiLCAkZGItPkVycm9yTXNnKCkpOw0KICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICB9DQogICAgICBpZiAoJGZhaWxpZm11bHRpcGxlICYmICgkZGJyZXN1bHQtPlJlY29yZENvdW50KCkgPiAxKSkgew0KICAgICAgICAkdGhpcy0+VGhpc0VjaG8oIk1vcmUgdGhhbiBvbmUgcm93IHJldHVybmVkIiwgImVycm9yIik7DQogICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgIH0NCg0KICAgICAgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKTsNCg0KICAgICAgLy9lY2hvIGNvdW50KCRyZXN1bHQpOw0KICAgICAgcmV0dXJuICRyb3c7DQogICAgfQ0KDQogICAgZnVuY3Rpb24gR2V0Um93cygkY3JpdGVyaWEgPSBhcnJheSgpLCAkc29ydGluZyA9IGFycmF5KCkpDQogICAgew0KICAgICAgJGRiID0gJHRoaXMtPk5lb0RiKCk7DQoNCiAgICAgICRzcWwgPSAiU0VMRUNUICogRlJPTSAiIC4gY21zX2RiX3ByZWZpeCgpIC4gJHRoaXMtPl90YWJsZW5hbWUgLiAiICI7DQoNCiAgICAgICRwY3JpdCA9ICR0aGlzLT5fcHJlcGFyZWNyaXRlcmlhKCRjcml0ZXJpYSk7DQogICAgICAkcHNvcnQgPSAkdGhpcy0+X3ByZXBhcmVzb3J0aW5nKCRzb3J0aW5nLCAkcGNyaXRbInBhcmFtcyJdKTsNCg0KICAgICAgJHNxbCA9ICRzcWwgLiAkcGNyaXRbInNxbCJdIC4gIiAiIC4gJHBzb3J0WyJzcWwiXTsNCiAgICAgICR0aGlzLT5UaGlzRWNobygiR2V0Um93QnlJRC1zcWwiLCAic3FsIiwgJHNxbCk7DQogICAgICAkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHNxbCwgJHBzb3J0WyJwYXJhbXMiXSk7DQoNCg0KICAgICAgaWYgKCRkYnJlc3VsdD09bnVsbCkgew0KICAgICAgICAkdGhpcy0+VGhpc0VjaG8oIkdldFJvd3MtZXJyb3IiLCAiZXJyb3IiLCAkZGItPkVycm9yTXNnKCkpOw0KICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICB9DQoNCiAgICAgIGlmICgkZGJyZXN1bHQtPlJlY29yZENvdW50KCkgPT0gMCkgew0KICAgICAgICByZXR1cm4gYXJyYXkoKTsNCiAgICAgIH0NCg0KICAgICAgJHJlc3VsdCA9IGFycmF5KCk7DQogICAgICB3aGlsZSAoJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSkgew0KICAgICAgICAkcmVzdWx0W10gPSAkcm93Ow0KICAgICAgfQ0KDQogICAgICAvL2VjaG8gY291bnQoJHJlc3VsdCk7DQogICAgICByZXR1cm4gJHJlc3VsdDsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBHZXRSb3dzU1FMKCRzcWwsICRwYXJhbXMgPSBhcnJheSgpKQ0KICAgIHsNCiAgICAgICRkYiA9ICR0aGlzLT5OZW9EYigpOw0KDQogICAgICAkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHNxbCwgJHBhcmFtcyk7DQoNCiAgICAgIGlmICgkZGJyZXN1bHQ9PW51bGwpIHsNCiAgICAgICAgJHRoaXMtPlRoaXNFY2hvKCJHZXRSb3dzU1FMLWVycm9yIiwgImVycm9yIiwgJGRiLT5FcnJvck1zZygpKTsNCiAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgfQ0KICAgICAgaWYgKCRkYnJlc3VsdC0+UmVjb3JkQ291bnQoKSA9PSAwKSB7DQogICAgICAgIHJldHVybiBhcnJheSgpOw0KICAgICAgfQ0KICAgICAgJHJlc3VsdCA9IGFycmF5KCk7DQogICAgICB3aGlsZSAoJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSkgew0KICAgICAgICAkcmVzdWx0W10gPSAkcm93Ow0KICAgICAgfQ0KDQogICAgICByZXR1cm4gJHJlc3VsdDsNCiAgICB9DQoNCg0KICAgIGZ1bmN0aW9uIEdldE9uZVJvd1NRTCgkc3FsLCAkcGFyYW1zID0gYXJyYXkoKSwgJGZhaWxpZm11bHRpcGxlID0gZmFsc2UpDQogICAgew0KDQogICAgfQ0KDQogICAgZnVuY3Rpb24gUm93Q291bnQoJGNyaXRlcmlhID0gYXJyYXkoKSkNCiAgICB7DQogICAgICAkZGIgPSAkdGhpcy0+TmVvRGIoKTsNCg0KICAgICAgJHNxbCA9ICJTRUxFQ1QgKiBGUk9NICIgLiBjbXNfZGJfcHJlZml4KCkgLiAkdGhpcy0+X3RhYmxlbmFtZSAuICIgIjsNCg0KICAgICAgJHBjcml0ID0gJHRoaXMtPl9wcmVwYXJlY3JpdGVyaWEoJGNyaXRlcmlhKTsNCg0KICAgICAgJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRzcWwgLiAkcGNyaXRbInNxbCJdLCAkcGNyaXRbInBhcmFtcyJdKTsNCg0KICAgICAgaWYgKCEkZGJyZXN1bHQpIHsNCiAgICAgICAgJHRoaXMtPlRoaXNFY2hvKCJSb3dDb3VudC1lcnJvciIsICJlcnJvciIsICRkYi0+RXJyb3JNc2coKSk7DQogICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgIH0NCg0KICAgICAgcmV0dXJuICRkYnJlc3VsdC0+UmVjb3JkQ291bnQoKTsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBSb3dDb3VudFNRTCgkc3FsLCAkcGFyYW1zID0gYXJyYXkoKSkNCiAgICB7DQogICAgICAkZGIgPSAkdGhpcy0+TmVvRGIoKTsNCg0KICAgICAgJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRzcWwsICRwYXJhbXMpOw0KDQogICAgICBpZiAoISRkYnJlc3VsdCkgew0KICAgICAgICAkdGhpcy0+VGhpc0VjaG8oIlJvd0NvdW50U1FMLWVycm9yIiwgImVycm9yIiwgJGRiLT5FcnJvck1zZygpKTsNCiAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgfQ0KDQogICAgICByZXR1cm4gJGRicmVzdWx0LT5SZWNvcmRDb3VudCgpOw0KICAgIH0NCg0KICAgIGZ1bmN0aW9uIEVjaG9FcnJvcnMoJHN0YXRlID0gdHJ1ZSkNCiAgICB7DQogICAgICAkdGhpcy0+X2VjaG9lcnJvcnMgPSAkc3RhdGU7DQogICAgfQ0KDQogICAgZnVuY3Rpb24gRWNob1NRTCgkc3RhdGUgPSB0cnVlKQ0KICAgIHsNCiAgICAgICR0aGlzLT5fZWNob3NxbCA9ICRzdGF0ZTsNCiAgICB9DQoNCg0KICAgIGZ1bmN0aW9uIFRoaXNFY2hvKCRtZXNzYWdlLCAkdHlwZSA9ICJlcnJvciIsICRhZGRpdGlvbmFsZXJyb3IgPSAiIikNCiAgICB7DQogICAgICBzd2l0Y2ggKCR0eXBlKSB7DQogICAgICAgIGNhc2UgImVycm9yIiA6IHsNCiAgICAgICAgICBpZiAoISR0aGlzLT5fZWNob2Vycm9ycykgcmV0dXJuOw0KICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIGNhc2UgInNxbCIgOiB7DQogICAgICAgICAgaWYgKCEkdGhpcy0+X2VjaG9zcWwpIHJldHVybjsNCiAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgfQ0KICAgICAgaWYgKCRhZGRpdGlvbmFsZXJyb3IgIT0gIiIpIHsNCiAgICAgICAgJG1lc3NhZ2UgLj0gIiAmcXVvdDsiIC4gJGFkZGl0aW9uYWxlcnJvciAuICImcXVvdDsiOw0KICAgICAgfQ0KICAgICAgZWNobyAiPHN0cm9uZz4iIC4gX19GSUxFX18gLiAiOiAiIC4gJG1lc3NhZ2UgLiAiICgiIC4gJHR5cGUgLiAiKTwvc3Ryb25nPiI7DQogICAgfQ0KICB9DQp9DQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/Harden.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiNBIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlDQojKGMpMjAwNCBieSBUZWQgS3VscCAod2lzaHlAdXNlcnMuc2YubmV0KQ0KI1RoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vY21zbWFkZXNpbXBsZS5zZi5uZXQNCiMNCiNUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KI2l0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3INCiMoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KIw0KI1RoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KI2J1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mDQojTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQ0KI0dOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UNCiNhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQ0KI0ZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0ENCg0KLyokbmVvbW9kdWxlPWRpcm5hbWUoZGlybmFtZShfX0ZJTEVfXykpLiIvTmVvTW9kdWxlL05lb01vZHVsZS5tb2R1bGUucGhwIjsNCmlmIChmaWxlX2V4aXN0cygkbmVvbW9kdWxlKSkgew0KICByZXF1aXJlX29uY2UoJG5lb21vZHVsZSk7DQp9IGVsc2Ugew0KICBlY2hvICI8ZGl2IHN0eWxlPSdiYWNrZ3JvdW5kLWNvbG9yOnJlZDsgZm9udC13ZWlnaHQ6IGJvbGQnPldhcm5pbmcsIE5lb1VwbG9hZC1tb2R1bGUgZGVwZW5kcyBvbiB0aGUgTmVvTW9kdWxlLW1vZHVsZSB3aGljaCBoYXMgdG8gYmUgaW5zdGFsbGVkIHByaW9yIHRvIHRoaXM8L2Rpdj4iOw0KICBleGl0Ow0KfQ0KKi8NCg0KDQoNCmluY2x1ZGVfb25jZShkaXJuYW1lKF9fRklMRV9fKSAuICIvY2xhc3MubmVvZGIucGhwIik7DQpjbGFzcyBIYXJkZW4gZXh0ZW5kcyBDbXNNb2R1bGUgew0KICAgIHZhciAkX2xvZ2luZGIgPSBmYWxzZTsNCiAgICB2YXIgJF91c2VyZGIgPSBmYWxzZTsNCiAgICB2YXIgJF9sb2dkYiA9IGZhbHNlOw0KICAvL3ZhciAkaWQ7DQogIC8qZnVuY3Rpb24gR2V0TmFtZSgpIHsgcmV0dXJuIk5lb1VwZGF0ZSI7DQogIH0qLw0KDQogIHB1YmxpYyBmdW5jdGlvbiBJbml0aWFsaXplQWRtaW4oKSB7DQogICAgXENNU01TXEhvb2tNYW5hZ2VyOjphZGRfaG9vaygnQ29yZTo6TG9naW5QcmUnLCBbICR0aGlzLCAnQ2hlY2tCcnV0ZUZvcmNlJyBdICk7DQogICAgLy9cQ01TTVNcSG9va01hbmFnZXI6OmFkZF9ob29rKCdDb3JlOjpMb2dpblByZUZvcm0nLCBbICR0aGlzLCAnTG9naW5QcmVGb3JtJyBdICk7DQogICAgXENNU01TXEhvb2tNYW5hZ2VyOjphZGRfaG9vaygnYWRtaW5fYWRkX2Zvb3RlcnRleHQnLCBbICR0aGlzLCAnUmVndWxhckhvdXNlS2VlcGluZycgXSApOw0KICAgIFxDTVNNU1xIb29rTWFuYWdlcjo6YWRkX2hvb2soJ0NvcmU6OkxvZ2luRmFpbGVkJywgWyAkdGhpcywgJ0xvZ2luRmFpbGVkJyBdICk7DQogICAgXENNU01TXEhvb2tNYW5hZ2VyOjphZGRfaG9vaygnQ29yZTo6RWRpdFVzZXJQcmUnLCBbICR0aGlzLCAnQ2hlY2tQYXNzd29yZFN0cmVuZ3RoJyBdICk7DQogICAgXENNU01TXEhvb2tNYW5hZ2VyOjphZGRfaG9vaygnQ29yZTo6RWRpdFVzZXJQb3N0JywgWyAkdGhpcywgJ1VwZGF0ZVVzZXInIF0gKTsNCg0KICAgIC8qXENNU01TXEhvb2tNYW5hZ2VyOjphZGRfaG9vaygnQ29yZTo6TG9naW5QcmUnLGZ1bmN0aW9uKCR1c2VyKSB7DQogICAgICAvL2F1ZGl0KCcnLCdOZXcgQ29tbWVudCBDcmVhdGVkJywkY29tbWVudF9hdXRob3IpOw0KICAgICAgZWNobyAiSGkgbG9naW5nIjsNCiAgICAgIGRpZSgpOw0KICAgIH0pOyovDQogICAgLy9lY2hvICJoaSI7ZGllKCk7DQogIH0NCg0KICBwdWJsaWMgZnVuY3Rpb24gQ2hlY2tQYXNzd29yZFN0cmVuZ3RoKCR1c2VyKQ0KICB7DQoNCiAgICBpZiAoJHRoaXMtPnByZigiZW5hYmxldXNlcnMiKSA9PSAiMSIpIHsNCiAgICAgIC8qJHVpZCA9IGdldF91c2VyaWQoKTsNCiAgICAgICR1ZGIgPSAkdGhpcy0+R2V0VXNlckRCKCk7DQogICAgICAkdXNlciA9ICR1ZGItPkdldE9uZVJvdyhhcnJheSgidXNlcmlkIiA9PiAkdWlkKSk7Ki8NCiAgICAgIC8vcHJpbnRfcigkdXNlclsidXNlciJdLT5wYXNzd29yZCk7ZGllKCk7DQogICAgICAkcGFzc3dvcmQ9JHVzZXJbInVzZXIiXS0+cGFzc3dvcmQ7DQogICAgICAkcHdtZXNzYWdlPWFycmF5KCk7DQogICAgICBpZiAoJHRoaXMtPnByZigiZm9yY2Vjb21wbGV4cHciKSA9PSAxKSB7DQoNCiAgICAgICAgaWYgKHN0cmxlbigkcGFzc3dvcmQpIDwgJHRoaXMtPnByZigicHdtaW5sZW5ndGgiKSkgew0KICAgICAgICAgICRwd21lc3NhZ2VbXSA9ICJQYXNzd29yZCBzaG91bGQgYmUgYXQgbGVhc3QgIiAuICR0aGlzLT5wcmYoInB3bWlubGVuZ3RoIikgLiAiIGNoYXJzIGxvbmchIjsNCiAgICAgICAgICAvLyR0aGlzLT5SZWRpcmVjdCgibTFfIiwgIm5ld3Bhc3N3b3JkIiwgJycsIGFycmF5KCJhbHJlYWR5cmVkaXJlY3RpbmciID0+IDEsICJwd21lc3NhZ2UiID0+ICRwd21lc3NhZ2UpKTsNCiAgICAgICAgfQ0KDQogICAgICAgIGlmICgkdGhpcy0+cHJmKCJmb3JjZWJvdGhjYXNlcyIpPT0xKSB7DQogICAgICAgICAgaWYgKCFwcmVnX21hdGNoKCIjW0EtWl0rIyIsICRwYXNzd29yZCkpIHsNCiAgICAgICAgICAgICRwd21lc3NhZ2VbXSA9ICJQYXNzd29yZCBzaG91bGQgY29udGFpbiBib3RoIHVwcGVyIGFuZCBsb3dlciBjYXNlIGNoYXJzIjsNCiAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgaWYgKCFwcmVnX21hdGNoKCIjW2Etel0rIyIsICRwYXNzd29yZCkpIHsNCiAgICAgICAgICAgICAgJHB3bWVzc2FnZVtdID0gIlBhc3N3b3JkIHNob3VsZCBjb250YWluIGJvdGggdXBwZXIgYW5kIGxvd2VyIGNhc2UgY2hhcnMiOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIGlmICgkdGhpcy0+cHJmKCJmb3JjZW51bWJlciIpPT0xKSB7DQogICAgICAgICAgaWYgKCFwcmVnX21hdGNoKCIjWzAtOV0rIyIsICRwYXNzd29yZCkpIHsNCiAgICAgICAgICAgICRwd21lc3NhZ2VbXSA9ICJQYXNzd29yZCBtdXN0IGluY2x1ZGUgYXQgbGVhc3Qgb25lIG51bWJlciEiOw0KICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQoNCiAgICAgIH0NCiAgICAgIGlmIChjb3VudCgkcHdtZXNzYWdlKT4wKSB7DQogICAgICAgICRwd21lc3NhZ2U9aW1wbG9kZSgiPGJyLz4iLCRwd21lc3NhZ2UpOw0KICAgICAgICAkdGhpcy0+UmVkaXJlY3QoIm0xXyIsICJuZXdwYXNzd29yZCIsICcnLCBhcnJheSgiYWxyZWFkeXJlZGlyZWN0aW5nIiA9PiAxLCAicHdtZXNzYWdlIiA9PiAkcHdtZXNzYWdlKSk7DQogICAgICB9DQoNCg0KICAgfQ0KICB9DQoNCiAgZnVuY3Rpb24gRXhwaXJlTG9naW5zKCkgew0KICAgICRsZGI9JHRoaXMtPkdldExvZ2luREIoKTsNCiAgICAkc3FsID0gIkRFTEVURSBGUk9NICIgLiBjbXNfZGJfcHJlZml4KCkgLiAkbGRiLT5fdGFibGVuYW1lIC4gIiBXSEVSRSBsYXRlc3RhdHRlbXB0PD8iOw0KDQogICAgLy9lY2hvICRzcWwuJHBjcml0WyJzcWwiXTtwcmludF9yKCRwY3JpdFsicGFyYW1zIl0pO2RpZSgpOw0KICAgICRkYnJlc3VsdCA9ICRsZGItPkV4ZWN1dGVTUUwoJHNxbCxhcnJheSh0aW1lKCktJHRoaXMtPnByZigiYXR0ZW1wdHBlcmlvZCIsMzYwMCoyNCkqNjApKTsNCiAgICAkZGJyZXN1bHQgPSAkbGRiLT5FeGVjdXRlU1FMKCRzcWwsYXJyYXkodGltZSgpLSR0aGlzLT5wcmYoImJsb2NrZm9yIiwzNjAwKjI0KSo2MCkpOw0KDQoNCiAgfQ0KDQogIHB1YmxpYyBmdW5jdGlvbiBDaGVja0JydXRlRm9yY2UoJHVzZXIpIHsNCiAgICBpZiAoJHRoaXMtPnByZigiZW5hYmxlbG9naW5zIikhPSIxIikgcmV0dXJuOw0KICAgICRpcD0kdGhpcy0+Z2V0UmVhbFVzZXJJcCgpOw0KICAgICRsZGI9JHRoaXMtPkdldExvZ2luREIoKTsNCiAgICAkdGhpcy0+RXhwaXJlTG9naW5zKCk7DQogICAgLy8kbGRiLT5FY2hvRXJyb3JzKCk7JGxkYi0+RWNob1NRTCgpOw0KICAgIC8vQ2hlY2sgSVANCiAgICAkbG9naW49ICRsZGItPkdldE9uZVJvdyhhcnJheSgiaXAiPT4kaXApKTsNCg0KICAgIGlmICgkbG9naW49PT1mYWxzZSkgew0KLy8gICAgICBlY2hvICJoIjsNCiAgICAgICRsb2dpbj0gJGxkYi0+R2V0T25lUm93KGFycmF5KCJ1c2VybmFtZSI9PiR1c2VyWyJ1c2VyIl0pKTsNCiAgICB9DQogIC8vICBlY2hvICRpcDsNCiAgICAvL3ByaW50X3IoJGxvZ2luKTsNCiAgICAvL2RpZSgpOw0KICAgIGlmICgkbG9naW4hPT1mYWxzZSkgew0KICAgICAgLy9lY2hvICJoaSI7ZGllKCk7DQogICAgICBpZiAoJGxvZ2luWyJjb3VudCJdPj0oJHRoaXMtPnByZigibWF4YXR0ZW1wdHMiKSkpIHsNCiAgICAgICAgJHRoaXMtPkxvZygibG9naW4gYmxvY2tlZCBmcm9tICIgLiAkaXAgLiAiICgiIC4gZ2V0aG9zdGJ5YWRkcigkaXApIC4gIikgdXNpbmcgdXNlcm5hbWUgIiAuICR1c2VyWyJ1c2VyIl0pOw0KICAgICAgICBlY2hvICR0aGlzLT5wcmYoImJsb2NrbWVzc2FnZSIpOw0KICAgICAgICBkaWUoKTsNCiAgICAgIH0NCiAgICB9DQoNCiAgICAvL1NlZW1zIHRvIGJlIG9rOyBhbGxvd2luZyBhY2Nlc3MNCg0KICB9DQoNCg0KcHVibGljIGZ1bmN0aW9uIExvZ2luRmFpbGVkKCR1c2VyKSB7DQogIGlmICgkdGhpcy0+cHJmKCJlbmFibGVsb2dpbnMiKSE9IjEiKSByZXR1cm47DQogICRpcD0kdGhpcy0+Z2V0UmVhbFVzZXJJcCgpOw0KICAkbGRiPSR0aGlzLT5HZXRMb2dpbkRCKCk7DQogICR0aGlzLT5FeHBpcmVMb2dpbnMoKTsNCg0KICAvLyRsZGItPkVjaG9FcnJvcnMoKTsNCiAgLy8kbGRiLT5FY2hvU1FMKCk7DQoNCiAgJGxvZ2luPSAkbGRiLT5HZXRPbmVSb3coYXJyYXkoImlwIj0+JGlwKSk7DQogIGlmICgkbG9naW49PT1mYWxzZSkgew0KICAgICRsb2dpbj0gJGxkYi0+R2V0T25lUm93KGFycmF5KCJ1c2VybmFtZSI9PiR1c2VyKSk7DQogIH0NCiAgaWYgKCRsb2dpbiE9PWZhbHNlKSB7DQogICAgaWYgKCRsb2dpblsiY291bnQiXT4oJHRoaXMtPnByZigibWF4YXR0ZW1wdHMiKSkpIHsNCiAgICAgICR0aGlzLT5Mb2coImxvZ2luIGJsb2NrZWQgZnJvbSAiIC4gJGlwIC4gIiAoIiAuIGdldGhvc3RieWFkZHIoJGlwKSAuICIpIHVzaW5nIHVzZXJuYW1lICIgLiAkdXNlcik7DQogICAgICBlY2hvICR0aGlzLT5wcmYoImJsb2NrbWVzc2FnZSIpOw0KICAgICAgZGllKCk7DQogICAgfSBlbHNlIHsNCiAgICAgIGlmICgkbG9naW5bImxhdGVzdGF0dGVtcHQiXT4odGltZSgpLSgkdGhpcy0+cHJmKCJhdHRlbXB0cGVyaW9kIikqNjApKSkgew0KICAgICAgICAkbGRiLT5VcGRhdGVSb3coJGxvZ2luWyJpZCJdLGFycmF5KCJjb3VudCI9PiRsb2dpblsiY291bnQiXSsxKSk7DQogICAgICB9DQogICAgfQ0KICB9IGVsc2Ugew0KICAgIC8vaW5zZXJ0IHVzZXINCiAgICAkdXNlcm5hbWU9JHVzZXJbInVzZXIiXTsNCiAgICAvL2RpZSgpOw0KICAgIGlmICgkdGhpcy0+cHJmKCJibG9ja29uaXAiKSE9MSkgJGlwPSIiOw0KICAgIGlmICgkdGhpcy0+cHJmKCJibG9ja29udXNlcm5hbWUiKSE9MSkgJHVzZXJuYW1lPSIiOw0KDQogICAgJGxkYi0+QWRkUm93KGFycmF5KA0KICAgICAgLy8iMSIsIC8vVHlwZQ0KICAgICAgImlwIj0+JGlwLCAvL0lQDQogICAgICAidXNlcm5hbWUiPT4kdXNlcm5hbWUsIC8vVXNlcm5hbWUNCiAgICAgICJjb3VudCI9PjEsIC8vY291bnQNCiAgICAgICJsYXRlc3RhdHRlbXB0Ij0+dGltZSgpIC8vdGltZXN0YW1wDQogICAgKSk7DQogICAgLy9kaWUoKTsNCiAgfQ0KDQogIC8vZWNobyAiZmFpbGVkISI7DQogICAgLy9kaWUoKTsNCn0NCg0KICBwdWJsaWMgZnVuY3Rpb24gUmVndWxhckhvdXNlS2VlcGluZygpIHsNCiAgICAvL3ByaW50X3IoJF9SRVFVRVNUKTtkaWUoKTsNCiAgICAvL2VjaG8gImZvb3RlciI7DQogICAgLy9kaWUoKTsNCiAgICAvL3JldHVybjsNCiAgICBpZiAoJHRoaXMtPnByZigiZW5hYmxldXNlcnMiKT09IjEiKSB7DQogICAgICAkdWlkID0gZ2V0X3VzZXJpZCgpOw0KICAgICAgJHVkYiA9ICR0aGlzLT5HZXRVc2VyREIoKTsNCiAgICAgICR1c2VyID0gJHVkYi0+R2V0T25lUm93KGFycmF5KCJ1c2VyaWQiID0+ICR1aWQpKTsNCg0KDQogICAgICBpZiAoJHRoaXMtPnByZigiZm9yY2VjaGFuZ2VwdyIpID09ICIxIikgew0KDQogICAgICAgIC8vcHJpbnRfcigkdXNlcik7DQogICAgICAgIC8vZWNobyB0aW1lKCkgLSAkdGhpcy0+cHJmKCJjaGFuZ2Vwd2V2ZXJ5Iik7DQogICAgICAgIGlmICghJHVzZXIgfHwgKCR1c2VyWyJsYXN0Y2hhbmdlIl0gPCAodGltZSgpIC0gJHRoaXMtPnByZigiY2hhbmdlcHdldmVyeSIpKSkpIHsNCiAgICAgICAgICAkcHdtZXNzYWdlID0gIiI7DQogICAgICAgICAgaWYgKGlzc2V0KCRfUkVRVUVTVFsic3VibWl0X2FjY291bnQiXSkpIHsNCiAgICAgICAgICAgICRwd21lc3NhZ2UgPSAkdGhpcy0+Q2hlY2tQYXNzd29yZCgkX1JFUVVFU1RbInBhc3N3b3JkIl0sICRfUkVRVUVTVFsicGFzc3dvcmRhZ2FpbiJdKTsNCiAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgaWYgKCFpc3NldCgkX1JFUVVFU1RbIm0xX2FscmVhZHlyZWRpcmVjdGluZyJdKSkgew0KDQogICAgICAgICAgICAgIC8qcHJpbnRfcigkX1JFUVVFU1QpOw0KICAgICAgICAgICAgICBkaWUoKTsqLw0KICAgICAgICAgICAgICAvL2lmICghaXNzZXQoJHBhcmFtc1siYWxyZWFkeXJlZGlyZWN0aW5nIl0pKSB7DQogICAgICAgICAgICAgICR0aGlzLT5SZWRpcmVjdCgibTFfIiwgIm5ld3Bhc3N3b3JkIiwgJycsIGFycmF5KCJhbHJlYWR5cmVkaXJlY3RpbmciID0+IDEsICJwd21lc3NhZ2UiID0+ICRwd21lc3NhZ2UpKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICB9DQogICAgICAgICAgaWYgKCRwd21lc3NhZ2UgIT0gIiIpIHsNCiAgICAgICAgICAgICR0aGlzLT5SZWRpcmVjdCgibTFfIiwgIm5ld3Bhc3N3b3JkIiwgJycsIGFycmF5KCJhbHJlYWR5cmVkaXJlY3RpbmciID0+IDEsICJwd21lc3NhZ2UiID0+ICRwd21lc3NhZ2UpKTsNCiAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgIH0NCiAgICB9DQogIH0NCg0KICBmdW5jdGlvbiBDaGVja1Bhc3N3b3JkKCRwYXNzd29yZCwkcGFzc3dvcmRhZ2Fpbikgew0KICAgIHJldHVybjsNCiAgICAvL2VjaG8gImhpIjtkaWUoKTsNCiAgICBpZiAoJHBhc3N3b3JkPT0iIikgew0KICAgICAgcmV0dXJuICJZb3Ugc2hvdWxkIHByb3ZpZGUgYSBuZXcgcGFzc3dvcmQhIjsNCiAgICB9DQogICAgaWYgKCRwYXNzd29yZCE9JHBhc3N3b3JkYWdhaW4pIHsNCiAgICAgIHJldHVybiAiUGFzc3dvcmRzIHNob3VsZCBiZSBpZGVudGljYWwhIjsNCiAgICB9DQoNCg0KICAgIGlmICgkdGhpcy0+cHJmKCJmb3JjZWNvbXBsZXhwdyIpPT0xKSB7DQoNCiAgICAgIGlmIChzdHJsZW4oJHBhc3N3b3JkPCR0aGlzLT5wcmYoInB3bWlubGVuZ3RoIikpKSB7DQogICAgICAgIHJldHVybiAiUGFzc3dvcmQgc2hvdWxkIGJlIGF0IGxlYXN0ICIuJHRoaXMtPnByZigicHdtaW5sZW5ndGgiKS4iIGNoYXJzIGxvbmchIjsNCiAgICAgIH0NCg0KICAgIH0NCiAgICAvL3B3bWlubGVuZ3RoDQogICAgLy9mb3JjZWJvdGhjYXNlcw0KICAgIC8vZm9yY2VudW1iZXINCiAgICAvL2ZvcmNlc3BlY2lhbA0KICAgIHJldHVybiAiIjsNCiAgfQ0KDQogIHB1YmxpYyBmdW5jdGlvbiBVcGRhdGVVc2VyKCR1c2VyKSB7DQogICAgJHVpZD1nZXRfdXNlcmlkKCk7DQogICAgJHVkYj0kdGhpcy0+R2V0VXNlckRCKCk7DQogICAgJHVzZXI9ICR1ZGItPkdldE9uZVJvdyhhcnJheSgidXNlcmlkIj0+JHVpZCkpOw0KICAgIGlmICghJHVzZXIpIHsNCiAgICAgIC8qInVzZXJpZCBJIiwNCiAgICAgICAgICAgICJsYXN0Y2hhbmdlIEkiLA0KICAgICAgICAgICAgInB3MSBDKDMyKSIsDQogICAgICAgICAgICAicHcyIEMoMzIpIiwNCiAgICAgICAgICAgICJwdzMgQygzMikiLCovDQogICAgICAkdWRiLT5BZGRSb3coYXJyYXkoInVzZXJpZCI9PiR1aWQsImxhc3RjaGFuZ2UiPT50aW1lKCkpKTsNCiAgICB9IGVsc2Ugew0KICAgICAgJHVkYi0+VXBkYXRlUm93KCR1aWQsYXJyYXkoImxhc3RjaGFuZ2UiPT50aW1lKCkpKTsNCiAgICB9DQogIH0NCg0KDQoNCg0KDQogIGZ1bmN0aW9uIEdldEZyaWVuZGx5TmFtZSgpIHsNCiAgICByZXR1cm4gJHRoaXMtPkxhbmcoImZyaWVuZGx5bmFtZSIpOw0KICB9DQoNCiAgZnVuY3Rpb24gSXNQbHVnaW5Nb2R1bGUoKSB7DQogICAgcmV0dXJuIGZhbHNlOw0KICB9DQoNCiAgZnVuY3Rpb24gR2V0VmVyc2lvbigpIHsNCiAgICByZXR1cm4gJzAuMC4xJzsNCiAgfQ0KDQogIC8qZnVuY3Rpb24gR2V0RGVwZW5kZW5jaWVzKCkgew0KICAgIC8vJ1RodW1ibmFpbHMnPT4nMC4xLjEnLCcNCiAgICByZXR1cm4gYXJyYXkoIk5lb01vZHVsZSI9PiIwLjcuMCIpOw0KICB9Ki8NCg0KICBmdW5jdGlvbiBNaW5pbXVtQ01TVmVyc2lvbigpIHsNCiAgICByZXR1cm4gJzIuMi40JzsNCiAgfQ0KDQogIGZ1bmN0aW9uIEdldEFkbWluRGVzY3JpcHRpb24oKSB7DQogICAgcmV0dXJuICR0aGlzLT5MYW5nKCdtb2RkZXNjcmlwdGlvbicpOw0KICB9DQoNCiAgZnVuY3Rpb24gSGFzQWRtaW4oKSB7DQogICAgcmV0dXJuIHRydWU7DQogIH0NCg0KICBmdW5jdGlvbiBHZXRBZG1pblNlY3Rpb24oKSB7DQogICAgcmV0dXJuICdzaXRlYWRtaW4nOw0KICB9DQoNCiAgZnVuY3Rpb24gSW5zdGFsbFBvc3RNZXNzYWdlKCkgew0KICAgIHJldHVybiAkdGhpcy0+TGFuZygncG9zdGluc3RhbGwnKTsNCiAgfQ0KDQogIGZ1bmN0aW9uIFVuaW5zdGFsbFBvc3RNZXNzYWdlKCkgew0KICAgIHJldHVybiAkdGhpcy0+TGFuZygncG9zdHVuaW5zdGFsbCcpOw0KICB9DQoNCiAgZnVuY3Rpb24gVmlzaWJsZVRvQWRtaW5Vc2VyKCkgew0KICAgIHJldHVybiAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpOw0KICB9DQoNCiAgZnVuY3Rpb24gR2V0SGVscCgkbGFuZz0nZW5fVVMnKSB7DQogICAgcmV0dXJuICR0aGlzLT5MYW5nKCdoZWxwJyk7DQogIH0NCg0KICBmdW5jdGlvbiBHZXRBdXRob3IoKSB7DQogICAgcmV0dXJuICdNb3J0ZW4gUG91bHNlbic7DQogIH0NCg0KICBmdW5jdGlvbiBHZXRBdXRob3JFbWFpbCgpIHsNCiAgICByZXR1cm4gJ21vcnRlbkBwb3Vsc2VuLm9yZyc7DQogIH0NCg0KICBmdW5jdGlvbiBHZXRDaGFuZ2VMb2coKSB7DQogICAgcmV0dXJuICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoImNoYW5nZWxvZy50cGwiKTsNCiAgfQ0KDQogIGZ1bmN0aW9uIGdldFJlYWxVc2VySXAoKXsNCiAgICBzd2l0Y2godHJ1ZSl7DQogICAgICBjYXNlICghZW1wdHkoJF9TRVJWRVJbJ0hUVFBfWF9SRUFMX0lQJ10pKSA6IHJldHVybiAkX1NFUlZFUlsnSFRUUF9YX1JFQUxfSVAnXTsNCiAgICAgIGNhc2UgKCFlbXB0eSgkX1NFUlZFUlsnSFRUUF9DTElFTlRfSVAnXSkpIDogcmV0dXJuICRfU0VSVkVSWydIVFRQX0NMSUVOVF9JUCddOw0KICAgICAgY2FzZSAoIWVtcHR5KCRfU0VSVkVSWydIVFRQX1hfRk9SV0FSREVEX0ZPUiddKSkgOiByZXR1cm4gJF9TRVJWRVJbJ0hUVFBfWF9GT1JXQVJERURfRk9SJ107DQogICAgICBkZWZhdWx0IDogcmV0dXJuICRfU0VSVkVSWydSRU1PVEVfQUREUiddOw0KICAgIH0NCiAgfQ0KDQogIGZ1bmN0aW9uIEdldExvZ2luREIoKSB7DQoNCiAgICAgIGlmICgkdGhpcy0+X2xvZ2luZGIgIT09IGZhbHNlKSByZXR1cm4gJHRoaXMtPl9sb2dpbmRiOw0KICAgICAgJHRoaXMtPl9sb2dpbmRiID0gbmV3IE5lb0RCKCJtb2R1bGVfaGFyZGVuX2xvZ2lucyIpOw0KICAgICAgLy8kdGhpcy0+X3NuaXBkYi0+RWNob0Vycm9ycyh0cnVlKTsNCiAgICAgIGlmICghJHRoaXMtPl9sb2dpbmRiLT5Eb2VzVGFibGVFeGlzdCgpKSB7DQogICAgICAgICR0aGlzLT5fbG9naW5kYi0+Q3JlYXRlVGFibGUoDQogICAgICAgICAgYXJyYXkoDQogICAgICAgICAgICAvLyJ0eXBlIEkiLCAvLzE9aXAsIDI9dXNlcm5hbWUNCiAgICAgICAgICAgICJpcCBDKDIwKSIsDQogICAgICAgICAgICAidXNlcm5hbWUgQygxMjgpIiwNCiAgICAgICAgICAgICJjb3VudCBJIiwNCiAgICAgICAgICAgICJsYXRlc3RhdHRlbXB0IEkiLA0KDQogICAgICAgICAgKQ0KICAgICAgICApOw0KICAgICAgfQ0KDQogICAgICAvL0ZvciBmdXR1cmUgdXBkYXRlcw0KICAgICAgLyppZiAoISR0aGlzLT5fbG9naW5kYi0+RG9lc0NvbHVtbkV4aXN0KCJjYXRlZ29yeSIpKSB7DQoNCiAgICAgICAgJHRoaXMtPl9sb2dpbmRiLT5BZGRDb2x1bW4oImNhdGVnb3J5IEMoMzIpIik7DQogICAgICB9Ki8NCg0KDQogICAgICByZXR1cm4gJHRoaXMtPl9sb2dpbmRiOw0KICAgIH0NCg0KICAgIGZ1bmN0aW9uIEdldFVzZXJEQigpIHsNCiAgICAvL2VjaG8gImhpIjsNCiAgICAgIGlmICgkdGhpcy0+X3VzZXJkYiAhPT0gZmFsc2UpIHJldHVybiAkdGhpcy0+X3VzZXJkYjsNCiAgICAgIC8vZWNobyAiaGkiOw0KICAgICAgJHRoaXMtPl91c2VyZGIgPSBuZXcgTmVvREIoIm1vZHVsZV9oYXJkZW5fdXNlcnMiKTsNCiAgICAgIC8vJHRoaXMtPl9zbmlwZGItPkVjaG9FcnJvcnModHJ1ZSk7DQogICAgICBpZiAoISR0aGlzLT5fdXNlcmRiLT5Eb2VzVGFibGVFeGlzdCgpKSB7DQogICAgICAgICR0aGlzLT5fdXNlcmRiLT5DcmVhdGVUYWJsZSgNCiAgICAgICAgICBhcnJheSgNCiAgICAgICAgICAgICJ1c2VyaWQgSSIsDQogICAgICAgICAgICAibGFzdGNoYW5nZSBJIiwNCiAgICAgICAgICAgICJwdzEgQygzMikiLA0KICAgICAgICAgICAgInB3MiBDKDMyKSIsDQogICAgICAgICAgICAicHczIEMoMzIpIiwNCiAgICAgICAgICAgIC8qImNhdGVnb3J5IEMoMzIpIiwNCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiBYIiwNCiAgICAgICAgICAgICJjb250ZW50IFgiLA0KICAgICAgICAgICAgImFjdGl2ZSBJIiwNCiAgICAgICAgICAgICJ3eXNpd3lnYWxsb3dlZCBJIiwNCiAgICAgICAgICAgICJzbWFydHlwcm9jZXNzIEkiLA0KICAgICAgICAgICAgImNyZWF0ZWQgSSIsDQogICAgICAgICAgICAidXBkYXRlZCBJIiovDQogICAgICAgICAgKQ0KICAgICAgICApOw0KDQogICAgICB9DQoNCiAgICAgIC8vRm9yIGZ1dHVyZSB1cGRhdGVzDQogICAgICAvKmlmICghJHRoaXMtPl91c2VyZGItPkRvZXNDb2x1bW5FeGlzdCgiY2F0ZWdvcnkiKSkgew0KDQogICAgICAgICR0aGlzLT5fdXNlcmRiLT5BZGRDb2x1bW4oImNhdGVnb3J5IEMoMzIpIik7DQogICAgICB9Ki8NCg0KDQogICAgICByZXR1cm4gJHRoaXMtPl91c2VyZGI7DQoNCiAgICB9DQoNCiAgZnVuY3Rpb24gR2V0TG9nREIoKQ0KICB7DQogICAgaWYgKCR0aGlzLT5fbG9nZGIgIT09IGZhbHNlKSByZXR1cm4gJHRoaXMtPl9sb2dkYjsNCiAgICAkdGhpcy0+X2xvZ2RiID0gbmV3IE5lb0RCKCJtb2R1bGVfaGFyZGVuX2xvZyIpOw0KICAgIC8vJHRoaXMtPl9zbmlwZGItPkVjaG9FcnJvcnModHJ1ZSk7DQogICAgaWYgKCEkdGhpcy0+X2xvZ2RiLT5Eb2VzVGFibGVFeGlzdCgpKSB7DQogICAgICAkdGhpcy0+X2xvZ2RiLT5DcmVhdGVUYWJsZSgNCiAgICAgICAgYXJyYXkoDQogICAgICAgICAgInRpbWVzdGFtcCBJIiwNCiAgICAgICAgICAibWVzc2FnZSBDKDEyOCkiLA0KICAgICAgICAgICJsZXZlbCBJIg0KICAgICAgICApDQogICAgICApOw0KICAgIH0NCiAgICByZXR1cm4gJHRoaXMtPl9sb2dkYjsNCiAgfQ0KDQogIGZ1bmN0aW9uIFBydW5lTG9nKCkgew0KICAgICRsb2dkYj0kdGhpcy0+R2V0TG9nREIoKTsNCiAgICAkc3FsID0gIkRFTEVURSBGUk9NICIgLiBjbXNfZGJfcHJlZml4KCkgLiAkbG9nZGItPl90YWJsZW5hbWUgLiAiIFdIRVJFIHRpbWVzdGFtcDw/IjsNCg0KICAgIC8vZWNobyAkc3FsLiRwY3JpdFsic3FsIl07cHJpbnRfcigkcGNyaXRbInBhcmFtcyJdKTtkaWUoKTsNCiAgICAkZGJyZXN1bHQgPSAkbG9nZGItPkV4ZWN1dGVTUUwoJHNxbCxhcnJheSh0aW1lKCktJHRoaXMtPnByZigibG9nbGlmZSIsMzYwMCoyNCkpKTsNCg0KICB9DQoNCiAgZnVuY3Rpb24gTG9nKCRtZXNzYWdlLCRsZXZlbD0xKSB7DQogICAgJGxvZ2RiPSR0aGlzLT5HZXRMb2dEQigpOw0KICAgICRsb2dkYi0+QWRkUm93KGFycmF5KCJ0aW1lc3RhbXAiPT50aW1lKCksIm1lc3NhZ2UiPT4kbWVzc2FnZSwibGV2ZWwiPT4kbGV2ZWwpKTsNCg0KDQogIH0NCg0KDQogIC8qZnVuY3Rpb24gTmVvU21hcnR5QXNzaWduUHJlZnMoJHByZWZlcmVuY2VzLCRwcmVmaXg9IiIpIHsNCiAgICBpZiAoIWlzX2FycmF5KCRwcmVmZXJlbmNlcykpIHsNCiAgICAgICR0aGlzLT5zbWFydHktPmFzc2lnbigkcHJlZml4LiRwcmVmZXJlbmNlcywkdGhpcy0+R2V0UHJlZmVyZW5jZSgkcHJlZmVyZW5jZXMpKTsNCiAgICAgIHJldHVybjsNCiAgICB9DQogICAgaWYgKCFpc19hc3NvYygkcHJlZmVyZW5jZXMpKSB7DQogICAgICBmb3JlYWNoICgkcHJlZmVyZW5jZXMgYXMgJHByZWZlcmVuY2UpIHsNCiAgICAgICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCRwcmVmaXguJHByZWZlcmVuY2UsJHRoaXMtPkdldFByZWZlcmVuY2UoJHByZWZlcmVuY2UpKTsNCiAgICAgIH0NCiAgICB9IGVsc2Ugew0KICAgICAgZm9yZWFjaCAoJHByZWZlcmVuY2VzIGFzICRwcmVmZXJlbmNlPT4kZGVmYXVsdCkgew0KICAgICAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJHByZWZpeC4kcHJlZmVyZW5jZSwkdGhpcy0+R2V0UHJlZmVyZW5jZSgkcHJlZmVyZW5jZSwkZGVmYXVsdCkpOw0KICAgICAgfQ0KICAgIH0NCg0KICB9Ki8NCg0KICBmdW5jdGlvbiBOZW9TYXZlVmFsdWVzKCRwYXJhbXMsJHZhbHVlcywkaGFuZGxldW5zZXQ9ImNsZWFyIikgew0KICAgIC8vZWNobyAiaGkiO2RpZSgpOw0KICAgIGlmICghaXNfYXJyYXkoJHZhbHVlcykpIHsNCiAgICAgIGlmIChpc3NldCgkcGFyYW1zWyR2YWx1ZXNdKSkgew0KICAgICAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgkdmFsdWVzLCRwYXJhbXNbJHZhbHVlc10pOw0KICAgICAgfSBlbHNlIHsNCiAgICAgICAgc3dpdGNoICgkaGFuZGxldW5zZXQpIHsNCiAgICAgICAgICBjYXNlICJjbGVhciIgOiAkdGhpcy0+U2V0UHJlZmVyZW5jZSgkdmFsdWVzLCIiKTsgYnJlYWs7DQogICAgICAgICAgY2FzZSAicmVtb3ZlIiA6ICR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCR2YWx1ZXMpOyBicmVhazsNCiAgICAgICAgICBkZWZhdWx0IDoNCiAgICAgICAgfQ0KDQogICAgICB9DQogICAgICByZXR1cm47DQogICAgfQ0KICAgIGZvcmVhY2goJHZhbHVlcyBhcyAkdmFsdWUpIHsNCiAgICAgIC8vZWNobyAiaGkiLiRwYXJhbXNbJHZhbHVlXTsgZGllKCk7DQogICAgICBpZiAoaXNzZXQoJHBhcmFtc1skdmFsdWVdKSkgew0KICAgICAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgkdmFsdWUsJHBhcmFtc1skdmFsdWVdKTsNCiAgICAgIH0gZWxzZSB7DQoNCiAgICAgICAgc3dpdGNoICgkaGFuZGxldW5zZXQpIHsNCiAgICAgICAgICBjYXNlICJjbGVhciIgOiAkdGhpcy0+U2V0UHJlZmVyZW5jZSgkdmFsdWUsIiIpOyBicmVhazsNCiAgICAgICAgICBjYXNlICJyZW1vdmUiIDogJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoJHZhbHVlKTsgYnJlYWs7DQogICAgICAgICAgZGVmYXVsdCA6DQogICAgICAgIH0NCiAgICAgIH0NCiAgICB9DQogIH0NCg0KICBmdW5jdGlvbiBwcmYoJHByZWZlcmVuY2VuYW1lLCAkZGVmYXVsdHZhbHVlPSIiKSB7DQogICAgcmV0dXJuICR0aGlzLT5HZXRQcmVmZXJlbmNlKCRwcmVmZXJlbmNlbmFtZSwkZGVmYXVsdHZhbHVlKTsNCiAgfQ0KDQogIC8vVGVtcGxhdGUgZnVuY3Rpb25zLCB2ZXJzaW9uIDEuMC4wDQogIGZ1bmN0aW9uIE5lb1Byb2Nlc3NUZW1wbGF0ZSgkZmlsZW5hbWUpIHsNCiAgICBpZiAoZmlsZV9leGlzdHMoZGlybmFtZShfX0ZJTEVfXykuIi90ZW1wbGF0ZXMvIi4kZmlsZW5hbWUpKSB7DQogICAgICAkZGF0YT1maWxlX2dldF9jb250ZW50cyhkaXJuYW1lKF9fRklMRV9fKS4iL3RlbXBsYXRlcy8iLiRmaWxlbmFtZSk7DQogICAgICAvL2VjaG8gImRhdGE6Ii4kZGF0YTsNCiAgICAgIHJldHVybiAkdGhpcy0+TmVvUHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoJGRhdGEpOw0KICAgIH0gZWxzZSB7DQogICAgICBlY2hvICJJbnZhbGlkIHRlbXBsYXRlIGZpbGVuYW1lOiAiLiRmaWxlbmFtZTsNCiAgICB9DQogICAgcmV0dXJuICIiOw0KICB9DQogIGZ1bmN0aW9uIE5lb1Byb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCRkYXRhKSB7DQogICAgJHNtYXJ0eT1TbWFydHlfQ01TOjpnZXRfaW5zdGFuY2UoKTsNCiAgICByZXR1cm4gJHNtYXJ0eS0+ZmV0Y2goInN0cmluZzoiLiRkYXRhKTsNCg0KICB9DQoNCn0=]]></data>
	</file>
	<file>
	  <filename>/lang/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/en_US.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbImZyaWVuZGx5bmFtZSJdPSJIYXJkZW4gU2VjdXJpdHkiOwoKJGxhbmdbInVzZXJzdGFiIl09IlVzZXJzIjsKJGxhbmdbImxvZ2luc3RhYiJdPSJMb2dpbnMiOwokbGFuZ1siZmlsZXN0YWIiXT0iRmlsZXMiOwokbGFuZ1sibG9ndGFiIl09IkxvZyI7CgokbGFuZ1siZW5hYmxldXNlcnNjb250cm9sIl09IkVuYWJsZSB1c2VycyBjb250cm9sIjsKJGxhbmdbInN1Ym1pdHVzZXJzIl09IlNhdmUgdXNlcnMgc2V0dGluZ3MiOwokbGFuZ1sidXNlcnNzZXR0aW5nc3NhdmVkIl09IlVzZXJzIHNldHRpbmdzIHNhdmVkIjsKJGxhbmdbInVzZXJzc2V0dGluZ3MiXT0iVXNlciBzZXR0aW5ncyI7CiRsYW5nWyJmb3JjZWNoYW5nZXB3Il09IkZvcmNlIGNoYW5nZSBvZiBwYXNzd29yZCI7CiRsYW5nWyJldmVyeSJdPSJldmVyeSI7CiRsYW5nWyJkYXlzIl09ImRheXMiOwokbGFuZ1sid2VlayJdPSJ3ZWVrIjsKJGxhbmdbIndlZWtzIl09IndlZWtzIjsKJGxhbmdbIm1vbnRocyJdPSJtb250aHMiOwokbGFuZ1siZm9yY2Vjb21wbGV4cHciXT0iRm9yY2UgY29tcGxleCBwYXNzd29yZCI7CiRsYW5nWyJmb3JjZWJvdGhjYXNlcyJdPSJGb3JjZSBib3RoIHVwcGVyY2FzZSBhbmQgbG93ZXJjYXNlIjsKJGxhbmdbImZvcmNlbnVtYmVyIl09IkZvcmNlIG51bWJlciI7CiRsYW5nWyJmb3JjZXNwZWNpYWwiXT0iRm9yY2Ugc3BlY2lhbCBjaGFyIjsKJGxhbmdbInB3bWlubGVuZ3RoIl09IlBhc3N3b3JkIG1pbmltdW0gbGVuZ3RoIjsKJGxhbmdbInBhc3N3b3JkbWVzc2FnZSJdPSJQYXNzd29yZCBtZXNzYWdlIjsKCgoKJGxhbmdbImVuYWJsZWxvZ2luc2NvbnRyb2wiXT0iRW5hYmxlIGxvZ2lucyBjb250cm9sIjsKJGxhbmdbInN1Ym1pdGxvZ2lucyJdPSJTYXZlIGxvZ2lucyBzZXR0aW5ncyI7CiRsYW5nWyJsb2dpbnNzZXR0aW5nc3NhdmVkIl09IkxvZ2lucyBzZXR0aW5ncyBzYXZlZCI7CiRsYW5nWyJsb2dpbnNzZXR0aW5ncyJdPSJMb2dpbnMgc2V0dGluZ3MiOwoKJGxhbmdbImJsb2Nrb25pcCJdPSJCbG9jayBvbiBhdHRlbXB0cyBmcm9tIHNhbWUgSVAtbnVtZXIiOwokbGFuZ1siYmxvY2tvbnVzZXJuYW1lIl09IkJsb2NrIG9uIGF0dGVtcHRzIHVzaW5nIHNhbWUgdXNlcm5hbWUiOwokbGFuZ1sibWF4YXR0ZW1wdHMiXT0iYXR0ZW1wdHMgd2l0aGluIjsKJGxhbmdbImF0dGVtcHRwZXJpb2QiXT0id2l0aGluIGEgcGVyaW9kIG9mICI7CiRsYW5nWyJtaW51dGVzIl09Im1pbnV0ZXMiOwokbGFuZ1siYmxvY2tmb3IiXT0iQmxvY2sgZnVydGhlciBhdHRlbXB0cyBmb3IgIjsKJGxhbmdbImJsb2NrbG9naW5zYWZ0ZXIiXT0iQmxvY2sgbG9naW5zIGFmdGVyIjsKJGxhbmdbImJsb2NrbWVzc2FnZSJdPSJTaG93IHRoaXMgbWVzc2FnZSBhZnRlciBhIGJsb2NrZWQgYXR0ZW1wdCI7CgoKJGxhbmdbImVuYWJsZWZpbGVzY29udHJvbCJdPSJFbmFibGUgZmlsZXMgY29udHJvbCI7CiRsYW5nWyJzdWJtaXRmaWxlcyJdPSJTYXZlIGZpbGVzIHNldHRpbmdzIjsKJGxhbmdbImZpbGVzc2V0dGluZ3NzYXZlZCJdPSJGaWxlcyBzZXR0aW5ncyBzYXZlZCI7CiRsYW5nWyJmaWxlc3NldHRpbmdzIl09ImZpbGVzIHNldHRpbmdzIjsKCiRsYW5nWyJlbmFibGVsb2ciXT0iRW5hYmxlIGxvZyI7CiRsYW5nWyJzdWJtaXRsb2ciXT0iU2F2ZSBsb2cgc2V0dGluZ3MiOwokbGFuZ1sibG9nc2V0dGluZ3NzYXZlZCJdPSJMb2cgc2V0dGluZ3Mgc2F2ZWQiOwokbGFuZ1sibG9nc2V0dGluZ3MiXT0iTG9nIHNldHRpbmdzIjsKCgokbGFuZ1siZXhwb3J0c2V0dGluZ3MiXT0iRXhwb3J0IHNldHRpbmdzIjsKJGxhbmdbImltcG9ydHNldHRpbmdzIl09IkltcG9ydCBzZXR0aW5ncyI7CiRsYW5nWyJpbXBvcnRjb25maXJtIl09IkFyZSB5b3Ugc3VyZSB5b3Ugd2lzaCB0byBpbXBvcnQsIG92ZXJ3cml0aW5nIGFsbCBsb2NhbCBzZXR0aW5ncz8iOwoKCiRsYW5nWyJzZXR0aW5nc3RhYiJdPSJTZXR0aW5ncyI7CiRsYW5nWyJzZXR0aW5nc3NhdmVkIl09IlNldHRpbmdzIHNhdmVkIjsKJGxhbmdbInNhdmVzZXR0aW5ncyJdPSJTYXZlIHNldHRpbmdzIjsKJGxhbmdbInF1YXJhbnRpbmVkaXIiXT0iUXVhcmFudGluZSBkaXIiOwokbGFuZ1sicXVhcmFudGluZWRpcmhlbHAiXT0iRGlyIGZvciBvcHRpb25hbGx5IG1vdmluZyBzdXNwaWNpb3VzIGZpbGVzLCBzaG91bGQgcHJlZmVyYWJseSBiZSBvdXRzaWRlIHdlYnNlcnZlciBzY29wZSI7CgokbGFuZ1sicHJlZmxpZ2h0dGFiIl09IlByZWZsaWdodCI7CgoKCgokbGFuZ1siaGVscCJdPSIKPHN0cm9uZz5XaGF0IGlzIHRoZSBwdXJwb3NlIG9mIHRoZSBtb2R1bGU/PC9zdHJvbmc+PGJyLz4KVGhpcyBtb2R1bGUgc2Vla3MgdG8gaGFyZGVuIHNldmVyYWwgc2VjdXRpcnkgYXNwZWN0cyBvZiB0aGUgY29yZSBDTVMgTWFkZSBTaW1wbGUuIFRoaW5ncyBsaWtlIHByZXZlbnRpbmcgCmJydXRlZm9yY2UgYXR0YWNrcyB0byB0aGUgYWRtaW4tc2VjdGlvbi4gTWFraW5nIHN1cmUgcGFzc3dvcmQgYXJlIHJlcGxhY2VzIHJlZ3VsYXJ5IGFuZCBoYXZlIGEgY2VydGFpbgpjb21wbGV4aXR5LgoKPHN0cm9uZz5Ib3cgZG8gSSB1c2UgdGhpbmcgbW9kdWxlPzwvc3Ryb25nPjxici8+CkFmdGVyIGluc3RhbGxpbmcgdGhlIG1vZHVsZSwgYWNjZXNzIGl0J3MgYWRtaW5pc3RyYXRpdmUgaW50ZXJmYWNlIGFuZCBzZXQgdXAgdGhlIGRlc2lyZWQgb3B0aW9ucyBmb3IKaGFyZGVuaW5nIHNlY3VyaXR5Lgo8YnIvPgpZb3UgY2FuIGFsc28gKGF0IHNvbWUgcG9pbnQpIGNob29zZSB0byBzYXZlIHRoZSBjdXJyZW50IHNldHRpbmdzIHRvIGEgZmlsZSBvciBsb2FkIGEgcHJldmlvdXNseSBzYXZlZCBzZXR0aW5ncy4KCgoKCgoiOwoKPz4K]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KaWYgKCFmdW5jdGlvbl9leGlzdHMoImNtc21zIikpIHJldHVybjsNCg0KLy8kdGhpcy0+Q3JlYXRlUGVybWlzc2lvbihIYXJkZW46OlBFUk1fTU9ESUZZLCdNb2RpZnkgU25pcHBldHMnKTs=]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KaWYgKCFmdW5jdGlvbl9leGlzdHMoImNtc21zIikpIHJldHVybjsNCiR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlcygpOw0KLy8kdGhpcy0+UmVtb3ZlUGVybWlzc2lvbihTbmlwcGV0OjpQRVJNX01PRElGWSk7]]></data>
	</file>
	<file>
	  <filename>/moduleinfo.ini</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[W21vZHVsZV0KbmFtZSA9ICJIYXJkZW4iCnZlcnNpb24gPSAiMC4wLjEiCmF1dGhvciA9ICJNb3J0ZW4gUG91bHNlbiIKYXV0aG9yZW1haWwgPSAibW9ydGVuQHBvdWxzZW4ub3JnIgptaW5jbXN2ZXJzaW9uID0gIjIuMi40IgpsYXp5bG9hZGFkbWluID0gMApsYXp5bG9hZGZyb250ZW5kID0gMAo=]]></data>
	</file>
	<file>
	  <filename>/tab.files.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCmlmICghZnVuY3Rpb25fZXhpc3RzKCJjbXNtcyIpKSBleGl0Ow0KDQppZiAoISR0aGlzLT5WaXNpYmxlVG9BZG1pblVzZXIoKSkgZXhpdDsNCg0KDQoNCg0KPz4NCjxmaWVsZHNldD4NCjxsZWdlbmQ+Y29uZmlnLnBocCBjb3BpZXM8L2xlZ2VuZD4NCiAgPD9waHANCiRjb25maWc9Y21zbXMoKS0+R2V0Q29uZmlnKCk7DQokcGF0dGVybj0kY29uZmlnWyJyb290X3BhdGgiXS4iLypjb25maWcqLioiOw0KICBmb3JlYWNoIChnbG9iKCRwYXR0ZXJuKSBhcyAkZmlsZW5hbWUpIHsNCiAgICAvL2VjaG8gIiRmaWxlbmFtZSBzaXplICIgLiBmaWxlc2l6ZSgkY29uZmlnWyJyb290X3BhdGgiXS4iLyIuJGZpbGVuYW1lKSAuICJcbiI7DQogJGZpbGU9c3RyX2lyZXBsYWNlKCRjb25maWdbInJvb3RfcGF0aCJdLCIiLCRmaWxlbmFtZSk7DQogICAgJGZpbGU9c3RyX2lyZXBsYWNlKCIvIiwiIiwkZmlsZSk7DQogaWYgKCRmaWxlIT0iY29uZmlnLnBocCIpIHsNCiAgIGVjaG8gJGZpbGUuIjxici8+IjsNCiB9DQogIH0NCg0KICA/Pg0KPC9maWVsZHNldD4=]]></data>
	</file>
	<file>
	  <filename>/tab.log.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCmlmICghZnVuY3Rpb25fZXhpc3RzKCJjbXNtcyIpKSBleGl0Ow0KDQppZiAoISR0aGlzLT5WaXNpYmxlVG9BZG1pblVzZXIoKSkgZXhpdDs=]]></data>
	</file>
	<file>
	  <filename>/tab.logins.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCmlmICghZnVuY3Rpb25fZXhpc3RzKCJjbXNtcyIpKSBleGl0Ow0KDQppZiAoISR0aGlzLT5WaXNpYmxlVG9BZG1pblVzZXIoKSkgZXhpdDsNCg0KDQokc21hcnR5LT5hc3NpZ24oJ2FpZCcsICRpZCk7DQokc21hcnR5LT5hc3NpZ24oJ21vZCcsICR0aGlzKTsNCg0KLyokc21hcnR5LT5hc3NpZ24oJ2Zvcm1zdGFydCcsICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAnc2F2ZXVzZXJzc2V0dGluZ3MnLCAkcmV0dXJuaWQsICdQT1NUJywgJ211bHRpcGFydC9mb3JtLWRhdGEnKSk7DQokc21hcnR5LT5hc3NpZ24oJ2Zvcm1lbmQnLCAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsNCiovDQovKiR0aGlzLT5OZW9TbWFydHlBc3NpZ25QcmVmcygNCiAgYXJyYXkoDQogICAgImVuYWJsZXVzZXJzIiwNCiAgICAiIg0KICApDQopOyovDQoNCg0KZWNobyAkdGhpcy0+TmVvUHJvY2Vzc1RlbXBsYXRlKCJhZG1pbl90YWJfbG9naW5zLnRwbCIpOw0KDQoNCiR0aGlzLT5FeHBpcmVMb2dpbnMoKTsNCiRsZGI9JHRoaXMtPkdldExvZ2luREIoKTsNCg0KaWYgKGlzc2V0KCRwYXJhbXNbImZvcmdldGxvZ2luIl0pKSB7DQogICRsZGItPkRlbGV0ZVJvdygkcGFyYW1zWyJmb3JnZXRsb2dpbiJdKTsNCn0NCg0KDQovLyRsZGItPkVjaG9TUUwoKTsNCiRsb2dpbnM9JGxkYi0+R2V0Um93cygpOw0KLy9lY2hvIGNvdW50KCRsb2dpbnMpOw0KDQplY2hvICI8ZmllbGRzZXQ+PGxlZ2VuZD5SZWNvcmRlZCBhdHRlbXB0czwvbGVnZW5kPiI7DQplY2hvICI8dGFibGUgd2lkdGg9JzEwMCUnPiI7DQplY2hvICI8dHI+PHRoPklQPC90aD48dGg+SG9zdDwvdGg+PHRoPnVzZXJuYW1lPC90aD48dGg+Q291bnQ8L3RoPjx0aD5MYXRlc3QgYXR0ZW1wdDwvdGg+PHRoPlRvb2xzPC90aD48L3RyPiI7DQpmb3JlYWNoKCRsb2dpbnMgYXMgJGxvZ2luKSB7DQogIGlmICgkbG9naW5bImNvdW50Il0+PSR0aGlzLT5wcmYoIm1heGF0dGVtcHRzIikpIHsNCiAgICBlY2hvICI8dHIgc3R5bGU9J2NvbG9yOnJlZCc+IjsNCiAgfSBlbHNlIHsNCiAgICBlY2hvICI8dHIgc3R5bGU9J2NvbG9yOiNEQUE1MjAnPiI7DQogIH0NCiAgZWNobyAiPHRkPiI7DQogIGVjaG8gJGxvZ2luWyJpcCJdOw0KICBlY2hvICI8L3RkPjx0ZD4iOw0KICBlY2hvIGdldGhvc3RieWFkZHIoJGxvZ2luWyJpcCJdKTsNCiAgZWNobyAiPC90ZD48dGQ+IjsNCiAgZWNobyAkbG9naW5bInVzZXJuYW1lIl07DQogIGVjaG8gIjwvdGQ+PHRkPiI7DQogIGVjaG8gJGxvZ2luWyJjb3VudCJdOw0KICBlY2hvICI8L3RkPjx0ZD4iOw0KICBlY2hvIGRhdGUoInIiLCRsb2dpblsibGF0ZXN0YXR0ZW1wdCJdKTsNCiAgJGFnbz1yb3VuZCgodGltZSgpLSRsb2dpblsibGF0ZXN0YXR0ZW1wdCJdKS8oMzYwMCoyNCkpOw0KICBpZiAoJGFnbz4wKSB7DQogICAgJGFnby49IiBkYXlzIGFnbyI7DQogIH0gZWxzZSB7DQogICAgJGFnbz1yb3VuZCgodGltZSgpLSRsb2dpblsibGF0ZXN0YXR0ZW1wdCJdKS8oMzYwMCkpOw0KICAgIGlmICgkYWdvPjApIHsNCiAgICAgICRhZ28uPSIgaG91cnMgYWdvIjsNCiAgICB9IGVsc2Ugew0KICAgICAgJGFnbz1yb3VuZCgodGltZSgpLSRsb2dpblsibGF0ZXN0YXR0ZW1wdCJdKS82MCk7DQogICAgICBpZiAoJGFnbz4wKSB7DQogICAgICAgICRhZ28uPSIgbWludXRlcyBhZ28iOw0KICAgICAgfSBlbHNlIHsNCiAgICAgICAgJGFnbz0odGltZSgpLSRsb2dpblsibGF0ZXN0YXR0ZW1wdCJdKS4iIHNlY29uZHMgYWdvIjsNCiAgICAgIH0NCiAgICB9DQoNCiAgfQ0KICBlY2hvICIgKCIuJGFnby4iKSI7DQogIGVjaG8gIjwvdGQ+PHRkPiI7DQoNCiAgJHRvb2xzPSIiOw0KICAvL2Z1bmN0aW9uIENyZWF0ZUxpbmsoJGlkLCAkYWN0aW9uLCAkcmV0dXJuaWQ9JycsICRjb250ZW50cz0nJywgJHBhcmFtcz1hcnJheSgpLA0KLy8gICAgICAgICAgICAgICAgICAgICAgJHdhcm5fbWVzc2FnZT0nJywgJG9ubHlocmVmPWZhbHNlLCAkaW5saW5lPWZhbHNlLCAkYWRkdHRleHQ9JycsDQogIC8vICAgICAgICAgICAgICAgICAgICAkdGFyZ2V0Y29udGVudG9ubHk9ZmFsc2UsICRwcmV0dHl1cmw9JycpDQogICR0b29scy49JHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCJkZWZhdWx0YWRtaW4iLCcnLCJmb3JnZXQiLGFycmF5KCJ0YWIiPT4ibG9naW5zIiwiZm9yZ2V0bG9naW4iPT4kbG9naW5bImlkIl0pKTsNCg0KICBlY2hvICR0b29sczsNCiAgZWNobyAiPC90ZD4iOw0KICBlY2hvICI8L3RyPiI7DQp9DQoNCmVjaG8gIjwvdGFibGU+IjsNCmVjaG8gIjwvZmllbGRzZXQ+IjsNCg0K]]></data>
	</file>
	<file>
	  <filename>/tab.preflight.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCmlmICghZnVuY3Rpb25fZXhpc3RzKCJjbXNtcyIpKSBleGl0Ow0KDQppZiAoISR0aGlzLT5WaXNpYmxlVG9BZG1pblVzZXIoKSkgZXhpdDsNCg0KZWNobyAkX1NFUlZFUlsnUkVNT1RFX0FERFInXS4iIHZzLiAiLiR0aGlzLT5nZXRSZWFsVXNlcklwKCk7]]></data>
	</file>
	<file>
	  <filename>/tab.settings.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCmlmICghZnVuY3Rpb25fZXhpc3RzKCJjbXNtcyIpKSBleGl0Ow0KDQppZiAoISR0aGlzLT5WaXNpYmxlVG9BZG1pblVzZXIoKSkgZXhpdDsNCiRzbWFydHktPmFzc2lnbignYWlkJywgJGlkKTsNCiRzbWFydHktPmFzc2lnbignbW9kJywgJHRoaXMpOw0KDQoNCmVjaG8gJHRoaXMtPk5lb1Byb2Nlc3NUZW1wbGF0ZSgiYWRtaW5fdGFiX3NldHRpbmdzLnRwbCIpOw==]]></data>
	</file>
	<file>
	  <filename>/tab.users.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCmlmICghZnVuY3Rpb25fZXhpc3RzKCJjbXNtcyIpKSBleGl0Ow0KDQppZiAoISR0aGlzLT5WaXNpYmxlVG9BZG1pblVzZXIoKSkgZXhpdDsNCg0KDQokc21hcnR5LT5hc3NpZ24oJ2FpZCcsICRpZCk7DQokc21hcnR5LT5hc3NpZ24oJ21vZCcsICR0aGlzKTsNCg0KaWYgKCR0aGlzLT5wcmYoInBhc3N3b3JkbWVzc2FnZSIpPT0iIikgew0KICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgicGFzc3dvcmRtZXNzYWdlIixmaWxlX2dldF9jb250ZW50cyhkaXJuYW1lKF9fRklMRV9fKS4iL3RlbXBsYXRlcy9uZXdwYXNzd29yZGRlZmF1bHQudHBsIikpOw0KfQ0KLyokc21hcnR5LT5hc3NpZ24oJ2Zvcm1zdGFydCcsICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAnc2F2ZXVzZXJzc2V0dGluZ3MnLCAkcmV0dXJuaWQsICdQT1NUJywgJ211bHRpcGFydC9mb3JtLWRhdGEnKSk7DQokc21hcnR5LT5hc3NpZ24oJ2Zvcm1lbmQnLCAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsNCiovDQovKiR0aGlzLT5OZW9TbWFydHlBc3NpZ25QcmVmcygNCiAgYXJyYXkoDQogICAgImVuYWJsZXVzZXJzIiwNCiAgICAiIg0KICApDQopOyovDQoNCg0KZWNobyAkdGhpcy0+TmVvUHJvY2Vzc1RlbXBsYXRlKCJhZG1pbl90YWJfdXNlcnMudHBsIik7DQoNCg==]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/admineditprofile.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmb3Jtc3RhcnR9Cgp7JHN0YXJ0dGFic30KCnskc3RhcnRtYWludGFifQoKCgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZHVsZS0+TGFuZygibmFtZSIpfTwvcD4KCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskbmFtZWlucHV0fTwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+Cgk8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kdWxlLT5MYW5nKCJhY3RpdmUiKX08L3A+Cgk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGFjdGl2ZWlucHV0fTwvcD4KPC9kaXY+CgoKCnskZW5kbWFpbnRhYn0KCnskc3RhcnR3aGF0dGFifQo8ZmllbGRzZXQgaWQ9ImRiZHVtcGZpZWxkc2V0Ij4KPGxlZ2VuZD4geyRtb2R1bGUtPkxhbmcoImRiYmFja3VwIil9PC9sZWdlbmQ+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+Cgk8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kdWxlLT5MYW5nKCJkb2RiZHVtcCIpfTwvcD4KCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskZG9kYmR1bXBpbnB1dH08L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZHVsZS0+TGFuZygiZ3ppcGR1bXAiKX08L3A+Cgk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGd6aXBkdW1waW5wdXR9PC9wPgo8L2Rpdj4KPC9maWVsZHNldD4KCjxmaWVsZHNldCBpZD0iZmlsZXNkdW1wZmllbGRzZXQiPgo8bGVnZW5kPnskbW9kdWxlLT5MYW5nKCJmaWxlc2JhY2t1cCIpfTwvbGVnZW5kPgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZHVsZS0+TGFuZygiZG9iYWNrdXBmaWxlcyIpfTwvcD4KCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskZG9iYWNrdXBmaWxlc2lucHV0fTwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+Cgk8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kdWxlLT5MYW5nKCJmaWxlc2RpciIpfTwvcD4KCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskZmlsZXNkaXJpbnB1dH08L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZHVsZS0+TGFuZygiZmlsZXNmb3JtYXQiKX08L3A+Cgk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGZpbGVzZm9ybWF0aW5wdXR9PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2R1bGUtPkxhbmcoImZpbGVzbmFtZSIpfTwvcD4KCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskZmlsZXNuYW1laW5wdXR9PC9wPgo8L2Rpdj4KPC9maWVsZHNldD4KCjxmaWVsZHNldCBpZD0ic3RhdGljZmlsZXNmaWVsZHNldCI+CjxsZWdlbmQ+eyRtb2R1bGUtPkxhbmcoInN0YXRpY2JhY2t1cCIpfTwvbGVnZW5kPgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZHVsZS0+TGFuZygiZG9zdGF0aWNmaWxlcyIpfTwvcD4KCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskZG9zdGF0aWNmaWxlc2lucHV0fTwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+Cgk8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kdWxlLT5MYW5nKCJvbmx5Y29udGVudCIpfTwvcD4KCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskb25seWNvbnRlbnRpbnB1dH08YnIvPnskbW9kdWxlLT5MYW5nKCJvbmx5Y29udGVudGhlbHAiKX08L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZHVsZS0+TGFuZygiaW5jbHVkZWluYWN0aXZlIil9PC9wPgoJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbmNsdWRlaW5hY3RpdmVpbnB1dH08L3A+CjwvZGl2Pgp7Kgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZHVsZS0+TGFuZygiaW5jbHVkZXN0eWxlc2hlZXRzIil9PC9wPgoJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbmNsdWRlc3R5bGVzaGVldHNpbnB1dH08L3A+CjwvZGl2PgoqfQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZHVsZS0+TGFuZygic3RhdGljZm9ybWF0Iil9PC9wPgoJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRzdGF0aWNmb3JtYXR0aW5wdXR9PC9wPgo8L2Rpdj4KCjwvZmllbGRzZXQ+CgoKeyRlbmR3aGF0dGFifQoKeyRzdGFydHdoZW50YWJ9Cgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZHVsZS0+TGFuZygiZG9zY2hlZHVsZWRiYWNrdXAiKX08L3A+Cgk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGRvc2NoZWR1bGVkYmFja3VwaW5wdXR9PC9wPgo8L2Rpdj4KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+Cgk8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kdWxlLT5MYW5nKCJiYWNrdXBldmVyeSIpfTwvcD4KCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskYmFja3VwZXZlcnlpbnB1dH08L3A+CjwvZGl2PgoKCgp7JGVuZHdoZW50YWJ9Cgp7JHN0YXJ0d2hlcmV0YWJ9CgoKPGZpZWxkc2V0IGlkPSJmdHBmaWVsZHNldCI+CjxsZWdlbmQ+eyRtb2R1bGUtPkxhbmcoImZ0cHVwbG9hZCIpfTwvbGVnZW5kPgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZHVsZS0+TGFuZygiZnRwdXBsb2FkIil9PC9wPgoJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRkb2Z0cHVwbG9hZGlucHV0fTwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+Cgk8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kdWxlLT5MYW5nKCJmdHBzZXJ2ZXIiKX08L3A+Cgk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGZ0cHNlcnZlcmlucHV0fTwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+Cgk8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kdWxlLT5MYW5nKCJmdHB1c2VybmFtZSIpfTwvcD4KCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskZnRwdXNlcm5hbWVpbnB1dH08L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZHVsZS0+TGFuZygiZnRwcGFzc3dvcmQiKX08L3A+Cgk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGZ0cHBhc3N3b3JkaW5wdXR9PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2R1bGUtPkxhbmcoImZ0cHBhdGgiKX08L3A+Cgk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGZ0cHBhdGhpbnB1dH08L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZHVsZS0+TGFuZygiZnRwcGFzc2l2ZSIpfTwvcD4KCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskZnRwcGFzc2l2ZWlucHV0fTwvcD4KPC9kaXY+CnskdGVzdGZ0cGJ1dHRvbn0KPC9maWVsZHNldD4KCjxmaWVsZHNldCBpZD0ibWFpbGZpZWxkc2V0Ij4KPGxlZ2VuZD57JG1vZHVsZS0+TGFuZygibWFpbGZpbGVzIil9PC9sZWdlbmQ+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+Cgk8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kdWxlLT5MYW5nKCJkb21haWxmaWxlcyIpfTwvcD4KCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskZG9tYWlsaW5wdXR9PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2R1bGUtPkxhbmcoIm1haWxhZGRyZXNzZXMiKX08L3A+Cgk8cCBjbGFzcz0icGFnZWlucHV0Ij57JG1haWxhZGRyZXNzZXNpbnB1dH08L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZHVsZS0+TGFuZygiZnJvbWFkZHJlc3MiKX08L3A+Cgk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGZyb21hZGRyZXNzaW5wdXR9PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2R1bGUtPkxhbmcoIm1haWxzdWJqZWN0Iil9PC9wPgoJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRtYWlsc3ViamVjdGlucHV0fTxici8+eyRtb2R1bGUtPkxhbmcoIm1haWxzdWJqZWN0aGVscCIpfTwvcD4KPC9kaXY+CjwvZmllbGRzZXQ+Cgo8ZmllbGRzZXQgaWQ9ImxvY2FsZmllbGRzZXQiPgo8bGVnZW5kPnskbW9kdWxlLT5MYW5nKCJsb2NhbHN0b3JlIil9PC9sZWdlbmQ+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+Cgk8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kdWxlLT5MYW5nKCJsb2NhbHN0b3JlIil9PC9wPgoJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRkb2xvY2Fsc3RvcmVpbnB1dH08L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZHVsZS0+TGFuZygiYWJzb2x1dGVwYXRoIil9PC9wPgoJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRhYnNvbHV0ZXBhdGhpbnB1dH08L3A+CjwvZGl2Pgo8L2ZpZWxkc2V0PgoKeyRlbmR3aGVyZXRhYn0KeyRzdGFydHJlcG9ydHRhYn0KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+Cgk8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kdWxlLT5MYW5nKCJtYWlscmVwb3J0Iil9PC9wPgoJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRtYWlscmVwb3J0aW5wdXR9PC9wPgo8L2Rpdj4KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+Cgk8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kdWxlLT5MYW5nKCJyZXBvcnRtYWlsYWRkcmVzcyIpfTwvcD4KCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskcmVwb3J0bWFpbGFkZHJlc3NpbnB1dH08L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZHVsZS0+TGFuZygiZGV0YWlsbGV2ZWwiKX08L3A+Cgk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGRldGFpbGxldmVsaW5wdXR9PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2R1bGUtPkxhbmcoInJlY2VudHJlcG9ydCIpfTwvcD4KCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskcmVjZW50cmVwb3J0aW5wdXR9PC9wPgo8L2Rpdj4KCnskZW5kcmVwb3J0dGFifQp7JGVuZHRhYnN9CgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCTxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPgoJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRzdWJtaXR9eyRhcHBseX17JGNhbmNlbH08L3A+CjwvZGl2PgoKeyRmb3JtZW5kfQoKCg==]]></data>
	</file>
	<file>
	  <filename>/templates/adminlistprofiles.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0icGFnZW9wdGlvbnMiPgoJPHAgY2xhc3M9InBhZ2VvcHRpb25zIj57JGFkZGxpbmt9PC9wPgo8L2Rpdj4KCntpZiAkaXRlbWNvdW50ID4gMH0KCjx0YWJsZSBjZWxsc3BhY2luZz0iMCIgY2xhc3M9InBhZ2V0YWJsZSI+Cgk8dGhlYWQ+CgkJPHRyPgkJCQoJCQk8dGg+eyRtb2R1bGUtPkxhbmcoInByb2ZpbGVuYW1lIil9PC90aD4KICAgICAgPHRoPnskbW9kdWxlLT5MYW5nKCJsYXN0cGVyZm9ybWVkIil9PC90aD4KCQkJPHRoIGNsYXNzPSJwYWdlaWNvbiI+eyRtb2R1bGUtPkxhbmcoImFjdGl2ZSIpfTwvdGg+CgkJCTx0aCBjbGFzcz0icGFnZWljb24iIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlciI+eyRtb2R1bGUtPkxhbmcoImFjdGlvbnMiKX08L3RoPgoJCTwvdHI+Cgk8L3RoZWFkPgoJPHRib2R5Pgp7Zm9yZWFjaCBmcm9tPSRpdGVtcyBpdGVtPWVudHJ5fQp7Y3ljbGUgdmFsdWVzPSJyb3cxLHJvdzIiIGFzc2lnbj1yb3djbGFzc30KCQk8dHIgY2xhc3M9Inskcm93Y2xhc3N9IiBvbm1vdXNlb3Zlcj0idGhpcy5jbGFzc05hbWU9J3skcm93Y2xhc3N9aG92ZXInOyIgb25tb3VzZW91dD0idGhpcy5jbGFzc05hbWU9J3skcm93Y2xhc3N9JzsiPgoJCQk8dGQ+eyRlbnRyeS0+bmFtZX08L3RkPgogICAgICA8dGQ+eyRlbnRyeS0+bGFzdHBlcmZvcm1lZH08L3RkPgoJCQk8dGQgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyIj57JGVudHJ5LT5hY3RpdmVsaW5rfTwvdGQ+CiAgICAgIDx0ZCBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXIiPgogICAgICA8dGFibGU+PHRyPgogICAgICA8dGQgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyIj57JGVudHJ5LT5lZGl0bGlua308L3RkPgoJCQk8dGQgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyIj57JGVudHJ5LT5jb3B5bGlua308L3RkPgoJCQk8dGQgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyIj57JGVudHJ5LT5kZWxldGVsaW5rfTwvdGQ+CiAgICAgIDx0ZCBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXIiPnskZW50cnktPnJ1bmxpbmt9PC90ZD4KICAgICAgPHRkIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlciI+eyRlbnRyeS0+cmVzZXRwZXJmb3JtZWRsaW5rfTwvdGQ+CgogICAgICA8L3RyPjwvdGFibGU+CgkJPC90cj4Key9mb3JlYWNofQoJPC90Ym9keT4KPC90YWJsZT4Key9pZn0KCg==]]></data>
	</file>
	<file>
	  <filename>/templates/admin_export.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGZpZWxkc2V0Pg0KICAgIDxsZWdlbmQ+RXhwb3J0IHNldHRpbmdzPC9sZWdlbmQ+DQogICAge2Zvcm1fc3RhcnQgYWN0aW9uPSJleHBvcnRzZXR0aW5ncyJ9DQogICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhaWR9c3VibWl0IiB2YWx1ZT0ieyRtb2QtPmxhbmcoImV4cG9ydHNldHRpbmdzIil9Ii8+DQogICAge2Zvcm1fZW5kfQ0KPC9maWVsZHNldD4NCg0KPGZpZWxkc2V0Pg0KICAgIDxsZWdlbmQ+SW1wb3J0IHNldHRpbmdzPC9sZWdlbmQ+DQogICAge2Zvcm1fc3RhcnQgYWN0aW9uPSJpbXBvcnRzZXR0aW5ncyIgZm9ybS1vbnN1Ym1pdD0icmV0dXJuIGNvbmZpcm0oJ3skbW9kLT5MYW5nKCJpbXBvcnRjb25maXJtIil9Jyk7In0NCiAgICA8aW5wdXQgdHlwZT0iZmlsZSIgbmFtZT0ieyRhaWR9aW1wb3J0ZmlsZSIgYWNjZXB0PSIueG1sIi8+DQogICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhaWR9c3VibWl0IiB2YWx1ZT0ieyRtb2QtPmxhbmcoImltcG9ydHNldHRpbmdzIil9Ii8+DQogICAge2Zvcm1fZW5kfQ0KPC9maWVsZHNldD4NCg0K]]></data>
	</file>
	<file>
	  <filename>/templates/admin_tab_files.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/templates/admin_tab_log.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/templates/admin_tab_logins.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyokZm9ybXN0YXJ0Kn0NCg0Ke2Zvcm1fc3RhcnQgYWN0aW9uPSJzYXZlbG9naW5zc2V0dGluZ3MifQ0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgICA8cCBjbGFzcz0icGFnZXRleHQiPg0KICAgICAgICA8bGFiZWwgZm9yPSJmbGQxMSI+eyRtb2QtPmxhbmcoImVuYWJsZWxvZ2luc2NvbnRyb2wiKX06PC9sYWJlbD4geypjbXNfaGVscCBrZXk9J2hlbHBfYXJ0aWNsZV91c2VleHBpcnknIHRpdGxlPSR1c2VleHBpcmF0aW9udGV4dCp9DQogICAgPC9wPg0KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPg0KICAgICAgICA8aW5wdXQgaWQ9ImZsZDExIiB0eXBlPSJjaGVja2JveCIgdmFsdWU9IjEiIG5hbWU9InskYWlkfWVuYWJsZWxvZ2lucyIge2lmICRtb2QtPnByZigiZW5hYmxlbG9naW5zIikgPT0gMX1jaGVja2VkPSJjaGVja2VkInsvaWZ9IGNsYXNzPSJwYWdlY2hlY2tib3giIC8+DQogICAgPC9wPg0KPC9kaXY+DQoNCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij4NCg0KICAgIDwvcD4NCiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4NCiAgICAgICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhaWR9c3VibWl0IiB2YWx1ZT0ieyRtb2QtPmxhbmcoInN1Ym1pdHVzZXJzIil9Ii8+DQogICAgPC9wPg0KPC9kaXY+DQoNCjxmaWVsZHNldCB7aWYgJG1vZC0+cHJmKCJlbmFibGVsb2dpbnMiKSAhPSAxfWRpc2FibGVkey9pZn0+DQogICAgPGxlZ2VuZD57JG1vZC0+bGFuZygibG9naW5zc2V0dGluZ3MiKX08L2xlZ2VuZD4NCg0KICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+DQogICAgICAgICAgICB7JG1vZC0+bGFuZygiYmxvY2tsb2dpbnNhZnRlciIpfToNCiAgICAgICAgPC9wPg0KDQogICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPg0KDQogICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbGVuZ3RoPSI0IiB2YWx1ZT0ieyRtb2QtPnByZigibWF4YXR0ZW1wdHMiKX0iIG5hbWU9InskYWlkfW1heGF0dGVtcHRzIj4NCiAgICAgICAgICAgIDxici8+DQogICAgICAgICAgICB7JG1vZC0+TGFuZygibWF4YXR0ZW1wdHMiKX0NCiAgICAgICAgICAgIDxici8+DQoNCiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBsZW5ndGg9IjQiIHZhbHVlPSJ7JG1vZC0+cHJmKCJhdHRlbXB0cGVyaW9kIil9IiBuYW1lPSJ7JGFpZH1hdHRlbXB0cGVyaW9kIj57JG1vZC0+TGFuZygibWludXRlcyIpfQ0KICAgICAgICAgICAgPGJyLz4NCg0KICAgICAgICAgICAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiB2YWx1ZT0iMSIgbmFtZT0ieyRhaWR9YmxvY2tvbmlwIiB7aWYgJG1vZC0+cHJmKCJibG9ja29uaXAiKSA9PSAxfWNoZWNrZWQ9ImNoZWNrZWQiey9pZn0gY2xhc3M9InBhZ2VjaGVja2JveCIgLz57JG1vZC0+TGFuZygiYmxvY2tvbmlwIil9DQogICAgICAgICAgICA8YnIvPg0KICAgICAgICAgICAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiB2YWx1ZT0iMSIgbmFtZT0ieyRhaWR9YmxvY2tvbnVzZXJuYW1lIiB7aWYgJG1vZC0+cHJmKCJibG9ja29udXNlcm5hbWUiKSA9PSAxfWNoZWNrZWQ9ImNoZWNrZWQiey9pZn0gY2xhc3M9InBhZ2VjaGVja2JveCIgLz57JG1vZC0+TGFuZygiYmxvY2tvbnVzZXJuYW1lIil9DQogICAgICAgICAgICA8YnIvPg0KICAgICAgICAgICAgeyRtb2QtPkxhbmcoImJsb2NrZm9yIil9DQogICAgICAgICAgICA8YnIvPg0KICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGxlbmd0aD0iNCIgdmFsdWU9InskbW9kLT5wcmYoImJsb2NrZm9yIil9IiBuYW1lPSJ7JGFpZH1ibG9ja2ZvciI+eyRtb2QtPkxhbmcoIm1pbnV0ZXMiKX0NCg0KICAgICAgICA8L3A+DQogICAgPC9kaXY+DQoNCiAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPg0KICAgICAgICAgICAgeyRtb2QtPmxhbmcoImJsb2NrbWVzc2FnZSIpfSB7KmNtc19oZWxwIGtleT0naGVscF9hcnRpY2xlX3VzZWV4cGlyeScgdGl0bGU9JHVzZWV4cGlyYXRpb250ZXh0Kn0NCiAgICAgICAgPC9wPg0KICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4NCiAgICAgICAgICAgIDx0ZXh0YXJlYSBuYW1lPSJ7JGFpZH1ibG9ja21lc3NhZ2UiIGNvbHM9IjQwIiByb3dzPSI4Ij57JG1vZC0+cHJmKCJibG9ja21lc3NhZ2UiKX08L3RleHRhcmVhPg0KICAgICAgICA8L3A+DQogICAgPC9kaXY+DQoNCg0KDQo8L2ZpZWxkc2V0Pg0KDQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+DQoNCiAgICA8L3A+DQogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+DQogICAgICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWlkfXN1Ym1pdCIgdmFsdWU9InskbW9kLT5sYW5nKCJzdWJtaXRsb2dpbnMiKX0iLz4NCiAgICA8L3A+DQo8L2Rpdj4NCg0KDQp7KiRmb3JtZW5kKn0NCntmb3JtX2VuZH0NCg==]]></data>
	</file>
	<file>
	  <filename>/templates/admin_tab_settings.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2Zvcm1fc3RhcnQgYWN0aW9uPSJzYXZlc2V0dGluZ3MifQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJPHAgY2xhc3M9InBhZ2V0ZXh0Ij4KCQk8bGFiZWwgZm9yPSJmbGQxMSI+eyRtb2QtPmxhbmcoInF1YXJhbnRpbmVkaXIiKX06PC9sYWJlbD4geypjbXNfaGVscCBrZXk9J2hlbHBfYXJ0aWNsZV91c2VleHBpcnknIHRpdGxlPSR1c2VleHBpcmF0aW9udGV4dCp9Cgk8L3A+Cgk8cCBjbGFzcz0icGFnZWlucHV0Ij4KCQk8aW5wdXQgdHlwZT0idGV4dCIgbGVuZ3RoPSIzMiIgdmFsdWU9InskbW9kLT5wcmYoInF1YXJhbnRpbmVkaXIiKX0iIG5hbWU9InskYWlkfXF1YXJhbnRpbmVkaXIiPnskbW9kLT5sYW5nKCJxdWFyYW50aW5lZGlyaGVscCIpfQoJPC9wPgo8L2Rpdj4KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+Cgk8cCBjbGFzcz0icGFnZXRleHQiPgoKCTwvcD4KCTxwIGNsYXNzPSJwYWdlaW5wdXQiPgoJCTxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWlkfXN1Ym1pdCIgdmFsdWU9InskbW9kLT5sYW5nKCJzYXZlc2V0dGluZ3MiKX0iLz4KCTwvcD4KPC9kaXY+CgoKCntmb3JtX2VuZH0K]]></data>
	</file>
	<file>
	  <filename>/templates/admin_tab_users.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyokZm9ybXN0YXJ0Kn0NCg0Ke2Zvcm1fc3RhcnQgYWN0aW9uPSJzYXZldXNlcnNzZXR0aW5ncyJ9DQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+DQogICAgICAgIDxsYWJlbCBmb3I9ImZsZDExIj57JG1vZC0+bGFuZygiZW5hYmxldXNlcnNjb250cm9sIil9OjwvbGFiZWw+IHsqY21zX2hlbHAga2V5PSdoZWxwX2FydGljbGVfdXNlZXhwaXJ5JyB0aXRsZT0kdXNlZXhwaXJhdGlvbnRleHQqfQ0KICAgIDwvcD4NCiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4NCiAgICAgICAgPGlucHV0IGlkPSJmbGQxMSIgdHlwZT0iY2hlY2tib3giIHZhbHVlPSIxIiBuYW1lPSJ7JGFpZH1lbmFibGV1c2VycyIge2lmICRtb2QtPnByZigiZW5hYmxldXNlcnMiKSA9PSAxfWNoZWNrZWQ9ImNoZWNrZWQiey9pZn0gY2xhc3M9InBhZ2VjaGVja2JveCIgLz4NCiAgICA8L3A+DQo8L2Rpdj4NCg0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgICA8cCBjbGFzcz0icGFnZXRleHQiPg0KDQogICAgPC9wPg0KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPg0KICAgICAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFpZH1zdWJtaXQiIHZhbHVlPSJ7JG1vZC0+bGFuZygic3VibWl0dXNlcnMiKX0iLz4NCiAgICA8L3A+DQo8L2Rpdj4NCg0KPGZpZWxkc2V0IHtpZiAkbW9kLT5wcmYoImVuYWJsZXVzZXJzIikgIT0gMX1kaXNhYmxlZHsvaWZ9Pg0KICAgIDxsZWdlbmQ+eyRtb2QtPmxhbmcoInVzZXJzc2V0dGluZ3MiKX08L2xlZ2VuZD4NCg0KICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+DQogICAgICAgICAgICA8bGFiZWw+eyRtb2QtPmxhbmcoImZvcmNlY2hhbmdlcHciKX06PC9sYWJlbD4geypjbXNfaGVscCBrZXk9J2hlbHBfYXJ0aWNsZV91c2VleHBpcnknIHRpdGxlPSR1c2VleHBpcmF0aW9udGV4dCp9DQogICAgICAgIDwvcD4NCiAgICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+DQogICAgICAgICAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIHZhbHVlPSIxIiBuYW1lPSJ7JGFpZH1mb3JjZWNoYW5nZXB3IiB7aWYgJG1vZC0+cHJmKCJmb3JjZWNoYW5nZXB3IikgPT0gMX1jaGVja2VkPSJjaGVja2VkInsvaWZ9IGNsYXNzPSJwYWdlY2hlY2tib3giIC8+DQogICAgICAgICAgICB7JG1vZC0+bGFuZygiZXZlcnkiKX0NCiAgICAgICAgICAgIHthc3NpZ24gdmFyPSJzZXQiIHZhbHVlPSRtb2QtPnByZigiY2hhbmdlcHdldmVyeSIpfQ0KICAgICAgICAgICAgPHNlbGVjdCBuYW1lPSJ7JGFpZH1jaGFuZ2Vwd2V2ZXJ5Ij4NCiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIzMDAiIHtpZiAkc2V0PT0zMDB9c2VsZWN0ZWR7L2lmfT41IG1pbnV0ZXMgKGZvciB0ZXN0aW5nKTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjYwNDgwMCIge2lmICRzZXQ9PTYwNDgwMH1zZWxlY3RlZHsvaWZ9PndlZWs8L29wdGlvbj4NCiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIxMjA5NjAwIiB7aWYgJHNldD09MTIwOTYwMH1zZWxlY3RlZHsvaWZ9PjIgd2Vla3M8L29wdGlvbj4NCiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIyNTkyMDAwIiB7aWYgJHNldD09MjU5MjAwMH1zZWxlY3RlZHsvaWZ9PjMwIGRheXM8L29wdGlvbj4NCiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSI1MTg0MDAwIiB7aWYgJHNldD09NTE4NDAwMH1zZWxlY3RlZHsvaWZ9PjYwIGRheXM8L29wdGlvbj4NCiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIxMDM2ODAwMCIge2lmICRzZXQ9PTEwMzY4MDAwfXNlbGVjdGVkey9pZn0+MTIwIGRheXM8L29wdGlvbj4NCiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIzMTUzNjAwMCIge2lmICRzZXQ9PTMxNTM2MDAwfXNlbGVjdGVkey9pZn0+MzY1IGRheXM8L29wdGlvbj4NCiAgICAgICAgICAgIDwvc2VsZWN0Pg0KICAgICAgICA8L3A+DQogICAgPC9kaXY+DQoNCiAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPg0KICAgICAgICAgICAgPGxhYmVsID57JG1vZC0+bGFuZygiZm9yY2Vjb21wbGV4cHciKX06PC9sYWJlbD4geypjbXNfaGVscCBrZXk9J2hlbHBfYXJ0aWNsZV91c2VleHBpcnknIHRpdGxlPSR1c2VleHBpcmF0aW9udGV4dCp9DQogICAgICAgIDwvcD4NCiAgICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+DQogICAgICAgICAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIHZhbHVlPSIxIiBuYW1lPSJ7JGFpZH1mb3JjZWNvbXBsZXhwdyIge2lmICRtb2QtPnByZigiZm9yY2Vjb21wbGV4cHciKSA9PSAxfWNoZWNrZWQ9ImNoZWNrZWQiey9pZn0gY2xhc3M9InBhZ2VjaGVja2JveCIgLz4NCiAgICAgICAgICAgIDxici8+DQogICAgICAgICAgICAmbmJzcDsmbmJzcDsgJm5ic3A7Jm5ic3A7eyRtb2QtPmxhbmcoInB3bWlubGVuZ3RoIil9DQogICAgICAgICAgICB7YXNzaWduIHZhcj0ic2V0IiB2YWx1ZT0kbW9kLT5wcmYoInB3bWlubGVuZ3RoIil9DQogICAgICAgICAgICA8c2VsZWN0IG5hbWU9InskYWlkfXB3bWlubGVuZ3RoIj4NCiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSI1IiB7aWYgJHNldD09NX1zZWxlY3RlZHsvaWZ9PjU8L29wdGlvbj4NCiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSI4IiB7aWYgJHNldD09OH1zZWxlY3RlZHsvaWZ9Pjg8L29wdGlvbj4NCiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIxMCIge2lmICRzZXQ9PTEwfXNlbGVjdGVkey9pZn0+MTA8L29wdGlvbj4NCiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIxMiIge2lmICRzZXQ9PTEyfXNlbGVjdGVkey9pZn0+MTI8L29wdGlvbj4NCiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIxNiIge2lmICRzZXQ9PTE2fXNlbGVjdGVkey9pZn0+MTY8L29wdGlvbj4NCiAgICAgICAgICAgIDwvc2VsZWN0Pg0KICAgICAgICAgICAgPGJyLz4NCiAgICAgICAgICAgICZuYnNwOyZuYnNwOyAmbmJzcDsmbmJzcDs8aW5wdXQgdHlwZT0iY2hlY2tib3giIHZhbHVlPSIxIiBuYW1lPSJ7JGFpZH1mb3JjZWJvdGhjYXNlcyIge2lmICRtb2QtPnByZigiZm9yY2Vib3RoY2FzZXMiKSA9PSAxfWNoZWNrZWQ9ImNoZWNrZWQiey9pZn0gY2xhc3M9InBhZ2VjaGVja2JveCIgLz57JG1vZC0+bGFuZygiZm9yY2Vib3RoY2FzZXMiKX0NCiAgICAgICAgICAgIDxici8+DQogICAgICAgICAgICAmbmJzcDsmbmJzcDsgJm5ic3A7Jm5ic3A7PGlucHV0IHR5cGU9ImNoZWNrYm94IiB2YWx1ZT0iMSIgbmFtZT0ieyRhaWR9Zm9yY2VudW1iZXIiIHtpZiAkbW9kLT5wcmYoImZvcmNlbnVtYmVyIikgPT0gMX1jaGVja2VkPSJjaGVja2VkInsvaWZ9IGNsYXNzPSJwYWdlY2hlY2tib3giIC8+eyRtb2QtPmxhbmcoImZvcmNlbnVtYmVyIil9DQogICAgICAgICAgICA8YnIvPg0KICAgICAgICAgICAgJm5ic3A7Jm5ic3A7IHsqJm5ic3A7PGlucHV0IHR5cGU9ImNoZWNrYm94IiB2YWx1ZT0iMSIgbmFtZT0ieyRhaWR9Zm9yY2VzcGVjaWFsIiB7aWYgJG1vZC0+cHJmKCJmb3JjZXNwZWNpYWwiKSA9PSAxfWNoZWNrZWQ9ImNoZWNrZWQiey9pZn0gY2xhc3M9InBhZ2VjaGVja2JveCIgLz57JG1vZC0+bGFuZygiZm9yY2VzcGVjaWFsIil9Kn0NCiAgICAgICAgPC9wPg0KICAgIDwvZGl2Pg0KDQogICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij4NCiAgICAgICAgICAgIHskbW9kLT5sYW5nKCJwYXNzd29yZG1lc3NhZ2UiKX0geypjbXNfaGVscCBrZXk9J2hlbHBfYXJ0aWNsZV91c2VleHBpcnknIHRpdGxlPSR1c2VleHBpcmF0aW9udGV4dCp9DQogICAgICAgIDwvcD4NCiAgICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+DQogICAgICAgICAgICA8dGV4dGFyZWEgbmFtZT0ieyRhaWR9cGFzc3dvcmRtZXNzYWdlIiBjb2xzPSI0MCIgcm93cz0iOCI+eyRtb2QtPnByZigicGFzc3dvcmRtZXNzYWdlIil9PC90ZXh0YXJlYT4NCiAgICAgICAgPC9wPg0KICAgIDwvZGl2Pg0KDQoNCg0KPC9maWVsZHNldD4NCg0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgICA8cCBjbGFzcz0icGFnZXRleHQiPg0KDQogICAgPC9wPg0KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPg0KICAgICAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFpZH1zdWJtaXQiIHZhbHVlPSJ7JG1vZC0+bGFuZygic3VibWl0dXNlcnMiKX0iLz4NCiAgICA8L3A+DQo8L2Rpdj4NCg0KDQp7KiRmb3JtZW5kKn0NCntmb3JtX2VuZH0NCg==]]></data>
	</file>
	<file>
	  <filename>/templates/changelog.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHVsCiAgPGxpPjAuMS4wIC0gSW5pdGlhbCByZWxlYXNlPC9saT4KPC91bD4=]]></data>
	</file>
	<file>
	  <filename>/templates/donations.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRkb25hdGlvbnN0ZXh0fQo8YnIvPjxici8+Cjxmb3JtIGFjdGlvbj0iaHR0cHM6Ly93d3cucGF5cGFsLmNvbS9jZ2ktYmluL3dlYnNjciIgbWV0aG9kPSJwb3N0Ij4KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY21kIiB2YWx1ZT0iX3MteGNsaWNrIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaG9zdGVkX2J1dHRvbl9pZCIgdmFsdWU9Ijg2NTc2ODciPgo8aW5wdXQgdHlwZT0iaW1hZ2UiIHNyYz0iaHR0cHM6Ly93d3cucGF5cGFsLmNvbS9lbl9VUy9pL2J0bi9idG5fZG9uYXRlX0xHLmdpZiIgYm9yZGVyPSIwIiBuYW1lPSJzdWJtaXQiIGFsdD0iUGF5UGFsIC0gVGhlIHNhZmVyLCBlYXNpZXIgd2F5IHRvIHBheSBvbmxpbmUhIj4KPGltZyBhbHQ9IiIgYm9yZGVyPSIwIiBzcmM9Imh0dHBzOi8vd3d3LnBheXBhbC5jb20vZW5fVVMvaS9zY3IvcGl4ZWwuZ2lmIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj4KPC9mb3JtPgo8YnIvPjxici8+Cgp7JGZvcm1zdGFydH0KeyRoaWRlc3VibWl0fQp7JGZvcm1lbmR9Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBEVU1NWSBIVE1MIEZJTEUgLS0+]]></data>
	</file>
	<file>
	  <filename>/templates/newpassworddefault.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[DQp7aWYgaXNzZXQoJHB3bWVzc2FnZSl9IE1lc3NhZ2U6IHskcHdtZXNzYWdlfTxici8+ey9pZn0NCjxici8+DQpZb3VyIHBhc3N3b3JkIGlzIGR1ZSBmb3IgYW4gdXBkYXRlLCBwbGVhc2UgY2xpY2sgaGVyZSB0byBhY2Nlc3MgeW91ciBhY2NvdW50IHBhZ2UgYW5kIHVwZGF0ZSB0aGUgcGFzc3dvcmQ6IDxhIGhyZWY9InskbXlhY2NvdW50bGlua30iPk15IGFjY291bnQ8L2E+DQo8YnIvPg0KUGxlYXNlIG5vdGUgdGhhdCBhZnRlciBjaGFuZ2luZyB0aGUgcGFzc3dvcmQsIHlvdSB3aWxsIGJlIGxvZ2dlZCBvdXQgb2YgdGhlIHN5c3RlbSBhbmQgc2hvdWxkIGxvZyBiYWNrIGluIGFnYWluIHVzaW5nIHRoZSBuZXcgcGFzc3dvcmQuDQo8YnIvPg0KPGJyLz5UaGFuayB5b3Uh]]></data>
	</file>
	<file>
	  <filename>/todo.txt</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Y2hlY2sgcGVybWlzc2lvbnMgb2YgY29uZmlnLnBocA0KY2hlY2sgYWx0ZXJuYXRlIGFkbWluLWRpcg0KY2hlY2sgaHRhY2Nlc3MgZm9yIHZhcmlvdXMgc2VjIGhhcmRlbmluZ3MNCg0K]]></data>
	</file>
</module>
