<?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>DocumentSearch</name>
	<version>1.4.4</version>
  <mincmsversion>1.11</mincmsversion>
	<help><![CDATA[PGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+CjxwPlRoaXMgbW9kdWxlIGFsbG93cyBmb3IgdGhlIHVwbG9hZGluZyBvZiBQREYsIERPQyBhbmQgRE9DWCBmaWxlcyB3aXRoIHRoZSBpbnRlbnRpb24gb2YgaGF2aW5nIHRoZSBkb2N1bWVudHMgY29udGVudCBleHRyYWN0ZWQgYW5kIGFkZGVkIHRvIHRoZSBkYXRhYmFzZSBtYWtpbmcgdGhlIGNvbnRlbnQgc2VhcmNoYWJsZSB2aWEgQ01TTVMgc2VhcmNoIG1vZHVsZS4gVGhlIHVwbG9hZGVkIGZpbGVzIGNhbiBhbHNvIGJlIGxpc3RlZCBvbiB0aGUgZnJvbnQgZW5kLjwvcD4KPGgzPkhvdyBEbyBJIFVzZSBJdDwvaDM+CjxwPlNpbXBseSBwbGFjZSB0aGUgbW9kdWxlIGluIGEgcGFnZSBvciB0ZW1wbGF0ZSB1c2luZyB0aGUgc21hcnR5IHRhZyA8Y29kZT57RG9jdW1lbnRTZWFyY2h9PC9jb2RlPjwvcD4KPGgzPlN1cHBvcnQ8L2gzPgo8cD5UaGlzIG1vZHVsZSBkb2VzIG5vdCBpbmNsdWRlIGNvbW1lcmNpYWwgc3VwcG9ydC4gSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+Cjx1bD4KPGxpPkZvciB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBtb2R1bGUsIEZBUXMsIG9yIHRvIGZpbGUgYSBCdWcgUmVwb3J0LCBwbGVhc2UgdmlzaXQgdGhlIE1vZHVsZSBGb3JnZQo8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2RvY3VtZW50c2VhcmNoLyI+RG9jdW1lbnQgU2VhcmNoIFBhZ2U8L2E+LjwvbGk+CjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyI+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uPC9saT4KPGxpPlRoZSBhdXRob3IsIG9saXZlcnNlZGRvbiwgY2FuIG9mdGVuIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXMiPkNNUyBJUkMgQ2hhbm5lbDwvYT4uPC9saT4KPGxpPkxhc3RseSwgeW91IG1heSBoYXZlIHNvbWUgc3VjY2VzcyBlbWFpbGluZyB0aGUgYXV0aG9yIGRpcmVjdGx5LjwvbGk+ICAKPC91bD4KPHA+QXMgcGVyIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgYXMtaXMuIFBsZWFzZSByZWFkIHRoZSB0ZXh0IG9mIHRoZSBsaWNlbnNlIGZvciB0aGUgZnVsbCBkaXNjbGFpbWVyLjwvcD4KCjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPgo8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMTMsIE9saXZlciBTZWRkb24gPGEgaHJlZj0ibWFpbHRvOm9saXZlckB0aHJlZWZvbGQuY28udWsiPiZsdDtvbGl2ZXJAdGhyZWVmb2xkLmNvLnVrJmd0OzwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4KPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCI+R05VIFB1YmxpYyBMaWNlbnNlPC9hPi4gWW91IG11c3QgYWdyZWUgdG8gdGhpcyBsaWNlbnNlIGJlZm9yZSB1c2luZyB0aGUgbW9kdWxlLjwvcD4KPGgzPlBhcmFtZXRlcnM8L2gzPjx1bD48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBsYW5nPSJlbl9VUyIgLSBQYXJhbWV0ZXIgaXMgdXNlZCB0byBzcGVjaWZ5IHdoYXQgbGFuZ3VhZ2UgdG8gdXNlIGZvciBkaXNwbGF5IG9uIHRoZSBmcm9udGVuZC4gTm90IGFsbCBtb2R1bGVzIHN1cHBvcnQgb3IgbmVlZCB0aGlzLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gY2F0ZWdvcnk9IkdlbmVyYWwiIC0gV2hpY2ggY2F0ZWdvcnkgdG8gZGlzcGxheSBkb2N1bWVudHMgZnJvbS48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IHNvcnRieT0iZGF0ZSIgLSBGaWVsZCB0byBzb3J0IGJ5LiBPcHRpb25zIGFyZTogImRhdGUiLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gc29ydGRlc2M9InRydWUiIC0gU29ydCBuZXdzIGl0ZW1zIGluIGRlc2NlbmRpbmcgZGF0ZSBvcmRlciByYXRoZXIgdGhhbiBhc2NlbmRpbmcuPC9saT48L3VsPg==]]></help>
	<about><![CDATA[PGJyIC8+QXV0aG9yOiBvbGl2ZXJzZWRkb24gJmx0O29saXZlckB0aHJlZWZvbGQuY28udWsmZ3Q7PGJyIC8+PGJyIC8+VmVyc2lvbjogMS40LjQ8YnIgLz48YnIgLz5DaGFuZ2UgSGlzdG9yeTo8YnIgLz48dWw+CjxsaT5WZXJzaW9uIDEuMCAzMCBKYW51YXJ5IDIwMTMuIEluaXRpYWwgUmVsZWFzZS48L2xpPgo8bGk+VmVyc2lvbiAxLjEgMzAgSmFudWFyeSAyMDEzLiBGaXggZm9yIGJ1ZyAjODg3NS48L2xpPgo8bGk+VmVyc2lvbiAxLjIgMzAgSmFudWFyeSAyMDEzLiBGaXggdG8gc2VhcmNoIHJlc3VsdHMgVVJMLCBtaXNzaW5nIGRvY3VtZW50c2VhcmNoIGRpcmVjdG9yeS48L2xpPgo8bGk+VmVyc2lvbiAxLjMgMzEgSmFudWFyeSAyMDEzLiBBZGRlZCBzb3J0YnkgYW5kIHNvcnRkZXNjIHBhcmFtZXRlcnMgcGx1cyB0d2Vha2VkIHRlbXBsYXRlLjwvbGk+CjxsaT5WZXJzaW9uIDEuMy4xIDcgRmVicnVhcnkgMjAxMy4gQnVnIGZpeCAjODkxMSBhbmQgYWRkZWQgZmlsZSBpY29ucyB0byBmcm9udCBlbmQgdGVtcGxhdGUuPC9saT4KPGxpPlZlcnNpb24gMS40IDI0IEZlYnJ1YXJ5IDIwMTMuIEFkZGVkIHRlbXBsYXRlIHRhYiB0byBlbmFibGUgZWRpdGluZyBvZiBvdXRwdXQgYW5kIGlmIG5vIG5hbWUgaXMgc3BlY2lmaWVkIHRoZSBkb2N1bWVudHMgZmlsZSBuYW1lIHdpbGwgYmUgdXNlZCBieSBkZWZhdWx0LCBtaW51cyBleHRlbnNpb24gYW5kIGFueSBfIHJlcGxhY2VkIGJ5IHNwYWNlcyBhbmQgcGVyIGZlYXR1cmUgcmVxdWVzdHMgIzg5NDEgYW5kICM4OTQyLiBNYWRlIGNhdGVnb3J5IG5hbWUgYXBwZWFyIGluIGFkbWluIHRhYmxlIHJhdGhlciB0aGFuIElELjwvbGk+CjxsaT5WZXJzaW9uIDEuNC4xIDI1IEZlYnJ1YXJ5IDIwMTMuIFVzaW5nIHdoYXQgYXBwZWFycyB0byBiZSBhIG1vcmUgcmVsaWFibGUgcGRmMnRleHQgY2xhc3MuPC9saT4KPGxpPlZlcnNpb24gMS40LjIgMjYgRmVicnVhcnkgMjAxMy4gQnVnIGZpeGVzIGFuZCBhIGhhbmRmdWwgb2YgbmV3IGZlYXR1cmVzLjwvbGk+CjxsaT5WZXJzaW9uIDEuNC4zIDI4IEZlYnJ1YXJ5IDIwMTMuIEJldHRlciBjb252ZXJzaW9uIG9mIG5vbiBzdGFuZGFyZCBjaGFyYWN0ZXJzLjwvbGk+CjxsaT5WZXJzaW9uIDEuNC40IDI4IEp1bmUgMjAxMy4gQnVnIGZpeGVzIGFuZCByZW1vdmVkIFN0YXR1cyBkcm9wZG93biBhbmQgYWRkZWQgc3VwcG9ydCBmb3IgUlRGIGFuZCBUWFQgZG9jcy48L2xpPgo8L3VsPjxiciAvPg==]]></about>
	<description><![CDATA[This module extracts the contents of PDF, DOC, DOCX, RTF and TXT files and adds the content to the database making the documents content searchable, with a link reference to the original document for downloading/viewing.]]></description>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/action.addcategory.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IERvY3VtZW50U2VhcmNoIChjKSAyMDEzIGJ5IE9saXZlciBTZWRkb24gCiMgICAgICAgICAob2xpdmVyQHRocmVlZm9sZC5jby51aykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gcHJvdmlkZSBQREYgYW5kIFdvcmQgZG9jdW1lbnQKIyAgY29udGVudCBzZWFyY2hhYmlsaXR5LgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiAoIWlzc2V0KCRnQ21zKSkgZXhpdDsKaWYgKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdVc2UgRG9jdW1lbnQgU2VhcmNoJykpIHJldHVybjsKCiRwYXJlbnQgPSAtMTsKaWYoIGlzc2V0KCRwYXJhbXNbJ3BhcmVudCddKSkKICB7CiAgICAkcGFyZW50ID0gKGludCkkcGFyYW1zWydwYXJlbnQnXTsKICB9CmlmIChpc3NldCgkcGFyYW1zWydjYW5jZWwnXSkpCnsKICAkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkKTsKfQoKJG5hbWUgPSAnJzsKaWYgKGlzc2V0KCRwYXJhbXNbJ25hbWUnXSkpCnsKICAkbmFtZSA9IHRyaW0oJHBhcmFtc1snbmFtZSddKTsKICBpZiAoJG5hbWUgIT0gJycpCiAgICB7CiAgICAgICRxdWVyeSA9ICdTRUxFQ1QgZG9jdW1lbnRzZWFyY2hfY2F0ZWdvcnlfaWQgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2RvY3VtZW50c2VhcmNoX2NhdGVnb3JpZXMgV0hFUkUgcGFyZW50X2lkID0gPyBBTkQgZG9jdW1lbnRzZWFyY2hfY2F0ZWdvcnlfbmFtZSA9ID8nOwogICAgICAkdG1wID0gJGRiLT5HZXRPbmUoJHF1ZXJ5LGFycmF5KCRwYXJlbnQsJG5hbWUpKTsKICAgICAgaWYoICR0bXAgKQoJewoJICBlY2hvICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5MYW5nKCdlcnJvcl9kdXBsaWNhdGVuYW1lJykpOwoJfQogICAgICBlbHNlCgl7CgkgICRjYXRpZCA9ICRkYi0+R2VuSUQoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZG9jdW1lbnRzZWFyY2hfY2F0ZWdvcmllc19zZXEiKTsKCSAgJHRpbWUgPSAkZGItPkRCVGltZVN0YW1wKHRpbWUoKSk7CgkgICRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2RvY3VtZW50c2VhcmNoX2NhdGVnb3JpZXMgKGRvY3VtZW50c2VhcmNoX2NhdGVnb3J5X2lkLCBkb2N1bWVudHNlYXJjaF9jYXRlZ29yeV9uYW1lLCBwYXJlbnRfaWQsIGNyZWF0ZV9kYXRlLCBtb2RpZmllZF9kYXRlKSBWQUxVRVMgKD8sPyw/LCcuJHRpbWUuJywnLiR0aW1lLicpJzsKCSAgJHBhcm1zID0gYXJyYXkoJGNhdGlkLCRuYW1lLCRwYXJlbnQpOwoJICAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCAkcGFybXMpOwoJICBkb2N1bWVudHNlYXJjaF9hZG1pbl9vcHM6OlVwZGF0ZUhpZXJhcmNoeVBvc2l0aW9ucygpOwoJICBAJHRoaXMtPlNlbmRFdmVudCgnRG9jdW1lbnRTZWFyY2hDYXRlZ29yeUFkZGVkJywgYXJyYXkoJ2NhdGVnb3J5X2lkJyA9PiAkY2F0aWQsICduYW1lJyA9PiAkbmFtZSkpOwoJICAvLyBwdXQgbWVudGlvbiBpbnRvIHRoZSBhZG1pbiBsb2cKCSAgYXVkaXQoJGNhdGlkLCAnRG9jdW1lbnQgU2VhcmNoIGNhdGVnb3J5OiAnLiRjYXRpZCwgJyBDYXRlZ29yeSBhZGRlZCcpOwoJICAKCSAgJHBhcmFtcyA9IGFycmF5KCd0YWJfbWVzc2FnZSc9PiAnY2F0ZWdvcnlhZGRlZCcsICdhY3RpdmVfdGFiJyA9PiAnY2F0ZWdvcmllcycpOwoJICAkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkLCAkcGFyYW1zKTsKCX0KICAgIH0KICBlbHNlCiAgICB7CiAgICAgIGVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJ25vbmFtZWdpdmVuJykpOwogICAgfQp9CgojRGlzcGxheSB0ZW1wbGF0ZQokc21hcnR5LT5hc3NpZ24oJ3N0YXJ0Zm9ybScsICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAnYWRkY2F0ZWdvcnknLCAkcmV0dXJuaWQpKTsKJHNtYXJ0eS0+YXNzaWduKCdlbmRmb3JtJywgJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CiRzbWFydHktPmFzc2lnbignbmFtZXRleHQnLCAkdGhpcy0+TGFuZygnbmFtZScpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dG5hbWUnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ25hbWUnLCAkbmFtZSwgMjAsIDI1NSkpOwokc21hcnR5LT5hc3NpZ24oJ2hpZGRlbicsICcnKTsKJHNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnc3VibWl0JywgbGFuZygnc3VibWl0JykpKTsKJHNtYXJ0eS0+YXNzaWduKCdjYW5jZWwnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnY2FuY2VsJywgbGFuZygnY2FuY2VsJykpKTsKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdlZGl0Y2F0ZWdvcnkudHBsJyk7Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.add_edit.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IERvY3VtZW50U2VhcmNoIChjKSAyMDEzIGJ5IE9saXZlciBTZWRkb24gCiMgICAgICAgICAob2xpdmVyQHRocmVlZm9sZC5jby51aykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gcHJvdmlkZSBQREYgYW5kIFdvcmQgZG9jdW1lbnQKIyAgY29udGVudCBzZWFyY2hhYmlsaXR5LgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQ0KaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7Cg0KLy8gZ2V0IG91ciByZWNvcmRzIGZyb20gdGhlIGRhdGFiYXNlDQokZGIgPSAkZ0Ntcy0+R2V0RGIoKTsNCg0KaWYgKGlzc2V0KCRwYXJhbXNbJ2RvY3VtZW50c2VhcmNoX2lkJ10pKSB7DQoJJHF1ZXJ5ID0gJ1NFTEVDVCBkb2N1bWVudHNlYXJjaF9pZCwgbmFtZSwgY29udGVudCwgZG9jdW1lbnRzZWFyY2hfY2F0ZWdvcnlfaWQsIGxvY2F0aW9uLCBhdXRob3IsIGRvY3VtZW50X2RhdGUgZnJvbSAnLmNtc19kYl9wcmVmaXgoKS4NCiAgICAJJ21vZHVsZV9kb2N1bWVudHNlYXJjaCB3aGVyZSBkb2N1bWVudHNlYXJjaF9pZCA9ID8nOw0KCSRyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRwYXJhbXNbJ2RvY3VtZW50c2VhcmNoX2lkJ10pKTsNCg0KCWlmICgkcmVzdWx0ICE9PSBmYWxzZSkgew0KCQkvLyBsb2FkIGluIHRoZSByZWNvcmQgaWYgdGhlcmUgd2FzIG5vIGVycm9yDQogICAgCSRyb3c9JHJlc3VsdC0+RmV0Y2hSb3coKTsNCiAgICAJJHNpZCA9ICRyb3dbJ2RvY3VtZW50c2VhcmNoX2lkJ107IC8vIHN0dXBpZCAtLSB3ZSdyZSBwYXNzaW5nIHRoZSBwYXJhbSwgYW5kIHRoZW4gdXNpbmcgdGhlIGRhdGFiYXNlIHZlcnNpb24uDQogICAgCSRuYW1lID0gJHJvd1snbmFtZSddOw0KICAgIAkkY2F0ZWdvcnkgPSAkcm93Wydkb2N1bWVudHNlYXJjaF9jYXRlZ29yeV9pZCddOwoNCgkJLy8gd2UgZGVjb2RlIHRoaXMgbmV4dCBvbmUsIGJlY2F1c2UgaXQgZ2V0cyBzdG9yZWQgZW5jb2RlZCwgYW5kIHRoZSBDcmVhdGVUZXh0QXJlYSBBUEkgZW5jb2RlcyBhcyB3ZWxsLCBzbw0KCQkvLyBpZiB3ZSBkaWRuJ3QgZGVjb2RlIGl0LCB3ZSdkIGdldCBkb3VibGUgZW5jb2RpbmcuDQogICAgCSRjb250ZW50ID0gaHRtbF9lbnRpdHlfZGVjb2RlKCRyb3dbJ2NvbnRlbnQnXSk7IA0KICAgIAkkbG9jYXRpb24gPSAkcm93Wydsb2NhdGlvbiddOw0KICAgIAkkYXV0aG9yID0gJHJvd1snYXV0aG9yJ107DQogICAgCSRwb3N0ZGF0ZSA9ICRyb3dbJ2RvY3VtZW50X2RhdGUnXTsKCgkJJHVzZWRjYXRlZ29yeSA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdkZWZhdWx0X2NhdGVnb3J5JywgJycpOwoJCWlmIChpc3NldCgkY2F0ZWdvcnkpKQl7CgkJCSR1c2VkY2F0ZWdvcnkgPSAkY2F0ZWdvcnk7CgkJfQoNCiAgICB9IGVsc2Ugew0KICAgIAkvLyB5ZWFoLCB0aGF0J3MgZ3JhY2VmdWwgOigNCiAgICAJZWNobyAiRGF0YWJhc2UgZXJyb3IhIjsNCiAgICAJZXhpdDsNCiAgICB9DQp9IGVsc2Ugew0KCS8vIGlmIHdlIGRpZG4ndCByZXRyaWV2ZSBhIHJlY29yZCwgc2V0IHNvbWUgZGVmYXVsdCB2YWx1ZXMNCgkkc2lkID0gLTE7DQoJJG5hbWUgPSAnJzsNCgkkY29udGVudCA9ICcnOw0KCSRsb2NhdGlvbiA9ICcnOw0KCSRhdXRob3IgPSAnJzsNCgkkdXNlZGNhdGVnb3J5ID0gJyc7CgkkcG9zdGRhdGUgPSB0aW1lKCk7DQp9CgokY2F0ZWdvcnlsaXN0ID0gYXJyYXkoKTsKJHF1ZXJ5ID0gIlNFTEVDVCAqIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9kb2N1bWVudHNlYXJjaF9jYXRlZ29yaWVzIE9SREVSIEJZIGhpZXJhcmNoeSI7CiRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnkpOwogICAgCndoaWxlICgkZGJyZXN1bHQgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSkgewoJJGNhdGVnb3J5bGlzdFskcm93Wydkb2N1bWVudHNlYXJjaF9jYXRlZ29yeV9uYW1lJ11dID0gJHJvd1snZG9jdW1lbnRzZWFyY2hfY2F0ZWdvcnlfaWQnXTsKfQoKCiRvbmNoYW5nZXRleHQ9J29uY2hhbmdlPSJkb2N1bWVudCcuJGlkLidtb2R1bGVmb3JtXzEuc3VibWl0KCkiJzsKDQovLyBzZXQgdXAgZm9ybSBmb3IgU21hcnR5DQokc21hcnR5LT5hc3NpZ24oJ3N0YXJ0X2Zvcm0nLCR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCdzYXZlX3JlY29yZCcsJHJldHVybmlkLCdwb3N0JywnbXVsdGlwYXJ0L2Zvcm0tZGF0YScsZmFsc2UsJycsJHBhcmFtcykpOwoNCi8vIGdpdmUgU21hcnR5IHRyYW5zbGF0ZWQgZmllbGQgdGl0bGVzIA0KJHNtYXJ0eS0+YXNzaWduKCd0aXRsZV9uYW1lJywkdGhpcy0+TGFuZygndGl0bGVfbmFtZScpKTsNCiRzbWFydHktPmFzc2lnbigndGl0bGVfYXV0aG9yJywkdGhpcy0+TGFuZygndGl0bGVfYXV0aG9yJykpOw0KJHNtYXJ0eS0+YXNzaWduKCd0aXRsZV9jb250ZW50JywkdGhpcy0+TGFuZygndGl0bGVfY29udGVudCcpKTsNCiRzbWFydHktPmFzc2lnbigndGl0bGVfbG9jYXRpb25maWxlJywkdGhpcy0+TGFuZygndGl0bGVfbG9jYXRpb24nKSk7DQokc21hcnR5LT5hc3NpZ24oJ3RpdGxlX2xvY2F0aW9uZmlsZWVkaXQnLCR0aGlzLT5MYW5nKCd0aXRsZV9sb2NhdGlvbmVkaXQnKSk7CiRzbWFydHktPmFzc2lnbignY2F0ZWdvcnl0ZXh0JywgJHRoaXMtPkxhbmcoJ2NhdGVnb3J5JykpOwokc21hcnR5LT5hc3NpZ24oJ3Bvc3RkYXRldGV4dCcsICR0aGlzLT5MYW5nKCdwb3N0ZGF0ZScpKTsKJHNtYXJ0eS0+YXNzaWduKCdwb3N0ZGF0ZXByZWZpeCcsICRpZC4ncG9zdGRhdGVfJyk7DQokc21hcnR5LT5hc3NpZ24oJ2lucHV0X25hbWUnLCR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCduYW1lJywkbmFtZSwgMzApKTsNCiRzbWFydHktPmFzc2lnbignaW5wdXRfYXV0aG9yJywkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwnYXV0aG9yJywkYXV0aG9yLCAzMCkpOw0KJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9jb250ZW50JywkdGhpcy0+Q3JlYXRlVGV4dEFyZWEodHJ1ZSwgJGlkLCAkY29udGVudCwgJ2NvbnRlbnQnLCAnJywgJycsICcnLCAnJywgNDAsIDUpKTsNCiRzbWFydHktPmFzc2lnbignaW5wdXRfbG9jYXRpb25maWxlJywkdGhpcy0+Q3JlYXRlRmlsZVVwbG9hZElucHV0KCRpZCwnbG9jYXRpb25maWxlJykpOwokc21hcnR5LT5hc3NpZ24oJ3Bvc3RkYXRlJywgJHBvc3RkYXRlKTsKJHNtYXJ0eS0+YXNzaWduKCdsb2NhdGlvbicsJGxvY2F0aW9uKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dGNhdGVnb3J5JywgJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnY2F0ZWdvcnknLCAkY2F0ZWdvcnlsaXN0LCAtMSwgJHVzZWRjYXRlZ29yeSwgJG9uY2hhbmdldGV4dCkpOw0KJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9sb2NhdGlvbicsJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwnbG9jYXRpb24nLCRsb2NhdGlvbikpOw0KJHNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCdkb2N1bWVudHNlYXJjaF9pZCcsJHNpZCkuJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ3N1Ym1pdCcsICR0aGlzLT5MYW5nKCdzdWJtaXQnKSkpOw0KJHNtYXJ0eS0+YXNzaWduKCdjYW5jZWwnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnY2FuY2VsJywgJHRoaXMtPkxhbmcoJ2NhbmNlbCcpKSk7DQokc21hcnR5LT5hc3NpZ24oJ2VuZF9mb3JtJywgJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7Cg0KLy8gRGlzcGxheSB0aGUgcG9wdWxhdGVkIHRlbXBsYXRlDQplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2FkZF9lZGl0LnRwbCcpOw0KDQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.default.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLy8gQkVHSU5fTElDRU5TRQovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi8vIE1vZHVsZTogRG9jdW1lbnRTZWFyY2ggKGMpIDIwMTMgYnkgT2xpdmVyIFNlZGRvbgovLyAob2xpdmVyQHRocmVlZm9sZC5jby51aykKLy8gQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gcHJvdmlkZSBQREYgYW5kIFdvcmQgZG9jdW1lbnQKLy8gY29udGVudCBzZWFyY2hhYmlsaXR5LgoKLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQovLyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQovLyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwoKLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKLy8gVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLy8gaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLy8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKLy8gKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KCi8vIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAovLyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKLy8gaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwovLyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KLy8gc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KCi8vIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAovLyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgovLyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCi8vIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi8vIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi8vIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCi8vIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCi8vIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLy8gRU5EX0xJQ0VOU0UKZXJyb3JfbG9nKCJEb2N1bWVudCBzZWFyY2ggZGVmYXVsdCIpOwoKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgokaW4gPSAnJzsKZm9yZWFjaCAoJHBhcmFtcyBhcyAkZmZpZWxkID0+ICRmdmFsdWUpIHsKICAgICRpbiAuPSAiIFskZmZpZWxkXT0kZnZhbHVlLCAiOwp9CmVycm9yX2xvZygkaW4pOwovLyBnZXQgb3VyIHJlY29yZHMgZnJvbSB0aGUgZGF0YWJhc2UKJGRiID0gJGdDbXMtPkdldERiKCk7CiRkYi0+ZGVidWc9dHJ1ZTsKJHF1ZXJ5ID0gJ1NFTEVDVCBkb2N1bWVudHNlYXJjaF9pZCwgbmFtZSwgY29udGVudCwgbG9jYXRpb24sIGF1dGhvciwgZG9jdW1lbnRfZGF0ZSwgJyAuCgknKHNlbGVjdCBkb2N1bWVudHNlYXJjaF9jYXRlZ29yeV9uYW1lIGZyb20gJy4gY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZG9jdW1lbnRzZWFyY2hfY2F0ZWdvcmllcyBiIHdoZXJlIGEuZG9jdW1lbnRzZWFyY2hfY2F0ZWdvcnlfaWQgPWIuZG9jdW1lbnRzZWFyY2hfY2F0ZWdvcnlfaWQpIGFzIGRvY3VtZW50c2VhcmNoX2NhdGVnb3J5X25hbWUgJy4KCSAnZnJvbSAnLmNtc19kYl9wcmVmaXgoKSAuJ21vZHVsZV9kb2N1bWVudHNlYXJjaCBhICc7Cgokb3JkZXI9IiI7CgppZiAoaXNzZXQoJHBhcmFtc1snc29ydGJ5J10pKSB7CgoJc3dpdGNoICgkcGFyYW1zWydzb3J0YnknXSkgewoJCWNhc2UgJ2RhdGUnOgoJCQkkb3JkZXIgPSAiIE9SREVSIEJZIGRvY3VtZW50X2RhdGUgIjsKCQkJYnJlYWs7CgkJY2FzZSAncmFuZG9tJzoKCQkJJG9yZGVyID0gIiBPUkRFUiBCWSBSQU5EKCkgIjsKCQkJYnJlYWs7CgkgICAgY2FzZSAnbmFtZSc6CgkgICAgCSRvcmRlciA9ICIgT1JERVIgQlkgbmFtZSAiOwoJICAgIAlicmVhazsKCX0gLy8gc3dpdGNoCi8vIGRlc2NlbmRpbmcgb3JkZXIgb25seSB3aGVuICJzb3J0YnkiIGlzIHNldAoJaWYgKGlzc2V0KCRwYXJhbXNbJ3NvcnRkZXNjJ10pICYmCgkoc3RydG9sb3dlcigkcGFyYW1zWydzb3J0ZGVzYyddKSA9PSAndHJ1ZScpKSB7CgkJJG9yZGVyIC49JyBkZXNjICc7Cn0KfQppZiAoaXNzZXQoJHBhcmFtc1snZG9jdW1lbnRzZWFyY2hfaWQnXSkpIHsKICAgIC8vICpBTFdBWVMqIHVzZSBwYXJhbWV0ZXJpemVkIHF1ZXJpZXMgd2l0aCB1c2VyLXByb3ZpZGVkIGlucHV0CiAgICAvLyB0byBwcmV2ZW50IFNRTC1JbmplY3Rpb24gYXR0YWNrcyEKICAgICRxdWVyeSAuPSAnIHdoZXJlIGRvY3VtZW50c2VhcmNoX2lkID0gPyc7CiAgICAkZGJyZXN1bHQgPSAkZGItPkdldFJvdygkcXVlcnksIGFycmF5KCRwYXJhbXNbJ2RvY3VtZW50c2VhcmNoX2lkJ10pKTsKICAgICRtb2RlID0gJ2RldGFpbCc7IC8vIHdlJ3JlIHZpZXdpbmcgYSBzaW5nbGUgcmVjb3JkCgp9ZWxzZWlmIChpc3NldCgkcGFyYW1zWydjYXRlZ29yeSddKSkgewogICAgJGNhdF9pZCA9ICRkYi0+R2V0T25lKCdTRUxFQ1QgZG9jdW1lbnRzZWFyY2hfY2F0ZWdvcnlfaWQgZnJvbSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9kb2N1bWVudHNlYXJjaF9jYXRlZ29yaWVzIHdoZXJlIGxvd2VyKGRvY3VtZW50c2VhcmNoX2NhdGVnb3J5X25hbWUpID0gbG93ZXIoPykgJywgYXJyYXkoJHBhcmFtc1snY2F0ZWdvcnknXSkpOwogICAgZXJyb3JfbG9nKCJjYXRlZ29yeV9pZCA9JGNhdF9pZCIpOwogICAgaWYgKCRjYXRfaWQpIHsKICAgICAgICAkcXVlcnkgLj0gIiB3aGVyZSBkb2N1bWVudHNlYXJjaF9jYXRlZ29yeV9pZCAgPSA/ICRvcmRlciI7CiAgICAgICAgZXJyb3JfbG9nKCJxdWVyeT0kcXVlcnkiKTsKICAgICAgICAkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkY2F0X2lkKSk7CiAgICB9CiAgICAkbW9kZSA9ICdzdW1tYXJ5JzsKfWVsc2UgewogICAgLy8gd2UncmUgbm90IGdldHRpbmcgYSBzcGVjaWZpYyByZWNvcmQsIHNvIHNob3cgJ2VtIGFsbC4gUHJvYmFibHkgc2hvdWxkIHBhZ2luYXRlLgoJJHF1ZXJ5IC49JG9yZGVyOwogICAgJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSk7CiAgICAkbW9kZSA9ICdzdW1tYXJ5JzsgLy8gd2UncmUgdmlld2luZyBhIGxpc3Qgb2YgcmVjb3Jkcwp9Ci8vIGlmIGRldGFpbCAtIHNob3cgdGhlIGRvY3VtZW50CmlmICgkbW9kZSA9PSAnZGV0YWlsJykgewogICAgJGRlc3QgPSBjbXNfam9pbl9wYXRoKCRjb25maWdbJ3VwbG9hZHNfcGF0aCddLCAnZG9jdW1lbnRzZWFyY2gnLCAnaWQnIC4gJGRicmVzdWx0Wydkb2N1bWVudHNlYXJjaF9pZCddLCAkZGJyZXN1bHRbJ2xvY2F0aW9uJ10pOwogICAgJGZpbGVfcGFydHMgPSBwYXRoaW5mbygkZGVzdCk7CiAgICAkY29udGVudCA9IGZpbGVfZ2V0X2NvbnRlbnRzKCRkZXN0KTsKCiAgICAkbWltZSA9ICJ0ZXh0L3BsYWluIjsKICAgIHN3aXRjaCAoJGZpbGVfcGFydHNbJ2V4dGVuc2lvbiddKSB7CiAgICAgICAgY2FzZSAncGRmJyA6ICRtaW1lID0gImFwcGxpY2F0aW9uL3BkZiI7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgJ2dpZicgOiAkbWltZSA9ICJpbWFnZS9naWYiOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICdwbmcnIDogJG1pbWUgPSAiaW1hZ2UvcG5nIjsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAnanBnJyA6ICRtaW1lID0gImltYWdlL2pwZWciOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICdqcGVnJyA6ICRtaW1lID0gImltYWdlL2pwZWciOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICdydGYnIDogJG1pbWUgPSAidGV4dC9ydGYiOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICd4bHMnIDoKICAgICAgICBjYXNlICd4bHN4JyA6JG1pbWUgPSAiYXBwbGljYXRpb24vbXNleGNlbCI7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgJ2RvYycgOgogICAgICAgIGNhc2UgJ2RvY3gnIDokbWltZSA9ICJhcHBsaWNhdGlvbi9tc3dvcmQiOwogICAgICAgICAgICBicmVhazsKICAgIH0KICAgIC8vIGtpbGwgYW55IG91dHB1dCB0aGF0IG1heSBoYXZlIGhhcHBlbmVkIGFscmVhZHkuCiAgICAkaGFuZGxlcnMgPSBvYl9saXN0X2hhbmRsZXJzKCk7CiAgICBmb3IgKCRjbnQgPSAwOyAkY250IDwgc2l6ZW9mKCRoYW5kbGVycyk7ICRjbnQrKykgewogICAgICAgb2JfZW5kX2NsZWFuKCk7CiAgICB9CiAgICBoZWFkZXIoJ0NvbnRlbnQtdHlwZTogJyAuICRtaW1lKTsKICAgIGhlYWRlcignQ29udGVudC1kaXNwb3NpdGlvbjogaW5saW5lOyBmaWxlbmFtZT0iJyAuICRkYnJlc3VsdFsnbG9jYXRpb24nXSAuICciJyk7CiAgICBlY2hvICRjb250ZW50OwoKICAgIGV4aXQ7Cn0KLyoqCiRyZWNvcmRzID0gYXJyYXkoKTsKd2hpbGUgKCRyZXN1bHQgIT09IGZhbHNlICYmICRyb3cgPSAkcmVzdWx0LT5GZXRjaFJvdygpKSB7CiAgICAvLyBjcmVhdGUgYSBuZXcgb2JqZWN0IGZvciBldmVyeSByZWNvcmQgdGhhdCB3ZSByZXRyaWV2ZQogICAgJHJlYyA9IG5ldyBzdGRDbGFzcygpOwogICAgJHJlYy0+aWQgPSAkcm93Wydkb2N1bWVudHNlYXJjaF9pZCddOwogICAgJHJlYy0+bmFtZSA9ICRyb3dbJ25hbWUnXTsKICAgICRyZWMtPmNvbnRlbnQgPSAkcm93Wydjb250ZW50J107CiAgICAkcmVjLT5sb2NhdGlvbiA9ICRyb3dbJ2xvY2F0aW9uJ107CiAgICAkcmVjLT5hdXRob3IgPSAkcm93WydhdXRob3InXTsKICAgICRyZWMtPmRvY3VtZW50ZGF0ZSA9ICRyb3dbJ2RvY3VtZW50X2RhdGUnXTsKICAgIC8vIGNyZWF0ZSBhdHRyaWJ1dGVzIGZvciByZW5kZXJpbmcgInZpZXciIGxpbmtzIGZvciB0aGUgb2JqZWN0LgogICAgLy8gJGlkIGFuZCAkcmV0dXJuaWQgYXJlIHByZWRlZmluZWQgZm9yIHVzIGJ5IHRoZSBtb2R1bGUgQVBJCiAgICAvLyB0aGF0IGxhc3QgcGFyYW1ldGVyIGlzIHRoZSBQcmV0dHkgVVJMIGxpbmsKICAgICRyZWMtPnZpZXcgPSAkdGhpcy0+Q3JlYXRlRnJvbnRlbmRMaW5rKCRpZCwgJHJldHVybmlkLCAnZGVmYXVsdCcsICR0aGlzLT5MYW5nKCdsaW5rX3ZpZXcnKSwKICAgICAgICBhcnJheSgnZG9jdW1lbnRzZWFyY2hfaWQnID0+ICRyZWMtPmlkKSwgJycsIGZhbHNlLCB0cnVlLCAnJywgZmFsc2UsICdkb2N1bWVudHNlYXJjaC92aWV3LycgLiAkcmVjLT5pZCAuICcvJyAuICRyZXR1cm5pZCk7CiAgICAkcmVjLT5lZGl0ID0gJHRoaXMtPkNyZWF0ZUZyb250ZW5kTGluaygkaWQsICRyZXR1cm5pZCwgJ2FkZF9lZGl0JywgJHRoaXMtPkxhbmcoJ2VkaXQnKSwKICAgICAgICBhcnJheSgnZG9jdW1lbnRzZWFyY2hfaWQnID0+ICRyZWMtPmlkKSwgJycsIGZhbHNlLCB0cnVlLCAnJywgZmFsc2UsICdkb2N1bWVudHNlYXJjaC9lZGl0LycgLiAkcmVjLT5pZCAuICcvJyAuICRyZXR1cm5pZCk7CiAgICBhcnJheV9wdXNoKCRyZWNvcmRzLCAkcmVjKTsKCiAgICAkZmlsZW5hbWUgPSAkcmVjLT5sb2NhdGlvbjsKICAgICRleHQgPSBzdWJzdHIoc3RycmNocigkZmlsZW5hbWUsICcuJyksIDEpOwogICAgJGV4dCA9IHN0cnRvdXBwZXIoJGV4dCk7CiAgICAkbW9kdWxlUGF0aCA9ICR0aGlzLT5HZXRNb2R1bGVVUkxQYXRoKCk7CiAgICAkaWNvbnBhdGggPSAkbW9kdWxlUGF0aCAuICcvaW1hZ2VzL2FwcGljb25zLycgLiAkZXh0IC4gJ2ljb24uZ2lmJzsKICAgICRpY29uZmlsZSA9ICc8aW1nIHNyYz0iJyAuICRpY29ucGF0aCAuICciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgYWx0PSInIC4gJGZpbGVuYW1lIC4gJyIgLz4nOwogICAgLy8gJHNtYXJ0eS0+YXNzaWduKCdpY29uZmlsZScsICRpY29uZmlsZSk7CiAgICAkcmVjLT5kb2N1bWVudGljb24gPSAkaWNvbmZpbGU7Cn0KCiRlbnRyeWFycmF5ID0gYXJyYXkoKTsKJHF1ZXJ5MSA9ICIKICAgICAgICAgICAgU0VMRUNUCiAgICAgICAgICAgICAgICBtZC4qLAogICAgICAgICAgICAgICAgbWRjLmRvY3VtZW50c2VhcmNoX2NhdGVnb3J5X25hbWUsCiAgICAgICAgICAgICAgICBtZGMubG9uZ19uYW1lCiAgICAgICAgICAgIEZST00gIiAuCmNtc19kYl9wcmVmaXgoKSAuICJtb2R1bGVfZG9jdW1lbnRzZWFyY2ggbWQKICAgICAgICAgICAgTEVGVCBPVVRFUiBKT0lOICIgLiBjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlX2RvY3VtZW50c2VhcmNoX2NhdGVnb3JpZXMgbWRjCiAgICAgICAgICAgIE9OIG1kYy5kb2N1bWVudHNlYXJjaF9jYXRlZ29yeV9pZCA9IG1kLmRvY3VtZW50c2VhcmNoX2NhdGVnb3J5X2lkCiAgICAgICAgIjsKCiRxdWVyeTIgPSAiCiAgICAgICAgICAgIFNFTEVDVCBjb3VudChtZC5kb2N1bWVudHNlYXJjaF9pZCkgYXMgY291bnQKICAgICAgICAgICAgRlJPTSAiIC4KY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9kb2N1bWVudHNlYXJjaCBtZAogICAgICAgICAgICBMRUZUIE9VVEVSIEpPSU4gIiAuIGNtc19kYl9wcmVmaXgoKSAuICJtb2R1bGVfZG9jdW1lbnRzZWFyY2hfY2F0ZWdvcmllcyBtZGMKICAgICAgICAgICAgT04gbWRjLmRvY3VtZW50c2VhcmNoX2NhdGVnb3J5X2lkID0gbWQuZG9jdW1lbnRzZWFyY2hfY2F0ZWdvcnlfaWQKICAgICAgICAiOwoKaWYgKGlzc2V0KCRwYXJhbXNbJ2NhdGVnb3J5X2lkJ10pKSB7CiAgICAkcXVlcnkxIC49ICJBTkQgKCBtZGMuZG9jdW1lbnRzZWFyY2hfY2F0ZWdvcnlfaWQgPSAnIiAuIChpbnQpJHBhcmFtc1snY2F0ZWdvcnlfaWQnXSAuICInICkgQU5EICI7CiAgICAkcXVlcnkyIC49ICJBTkQgKCBtZGMuZG9jdW1lbnRzZWFyY2hfY2F0ZWdvcnlfaWQgPSAnIiAuIChpbnQpJHBhcmFtc1snY2F0ZWdvcnlfaWQnXSAuICInICkgQU5EICI7Cn1lbHNlIGlmIChpc3NldCgkcGFyYW1zWyJjYXRlZ29yeSJdKSAmJiAkcGFyYW1zWyJjYXRlZ29yeSJdICE9ICcnICYmICRwYXJhbXNbImNhdGVnb3J5Il0gIT0gJ25vbmUnKSB7CiAgICAkY2F0ZWdvcnkgPSBjbXNfaHRtbF9lbnRpdHlfZGVjb2RlKHRyaW0oJHBhcmFtc1snY2F0ZWdvcnknXSkpOwogICAgJGNhdGVnb3JpZXMgPSBleHBsb2RlKCcsJywgJGNhdGVnb3J5KTsKICAgICRxdWVyeTEgLj0gIkFORCAoIjsKICAgICRxdWVyeTIgLj0gIkFORCAoIjsKICAgICRjb3VudCA9IDA7CiAgICBmb3JlYWNoICgkY2F0ZWdvcmllcyBhcyAkb25lY2F0KSB7CiAgICAgICAgaWYgKCRjb3VudCA+IDApIHsKICAgICAgICAgICAgJHF1ZXJ5MSAuPSAnIE9SICc7CiAgICAgICAgICAgICRxdWVyeTIgLj0gJyBPUiAnOwogICAgICAgIH0KICAgICAgICBpZiAoc3RycG9zKCRvbmVjYXQsICd8JykgIT09IGZhbHNlIHx8IHN0cnBvcygkb25lY2F0LCAnKicpICE9PSBmYWxzZSkgewogICAgICAgICAgICAkdG1wID0gJGRiLT5xc3RyKHRyaW0oc3RyX3JlcGxhY2UoJyonLCAnJScsIHN0cl9yZXBsYWNlKCInIiwgJ18nLCAkb25lY2F0KSkpKTsKICAgICAgICAgICAgJHF1ZXJ5MSAuPSAidXBwZXIobWRjLmxvbmdfbmFtZSkgbGlrZSB1cHBlcih7JHRtcH0pIjsKICAgICAgICAgICAgJHF1ZXJ5MiAuPSAidXBwZXIobWRjLmxvbmdfbmFtZSkgbGlrZSB1cHBlcih7JHRtcH0pIjsKICAgICAgICB9ZWxzZSB7CiAgICAgICAgICAgICR0bXAgPSAkZGItPnFzdHIodHJpbShzdHJfcmVwbGFjZSgiJyIsICdfJywgJG9uZWNhdCkpKTsKICAgICAgICAgICAgJHF1ZXJ5MSAuPSAibWRjLmRvY3VtZW50c2VhcmNoX2NhdGVnb3J5X25hbWUgPSB7JHRtcH0iOwogICAgICAgICAgICAkcXVlcnkyIC49ICJtZGMuZG9jdW1lbnRzZWFyY2hfY2F0ZWdvcnlfbmFtZSA9IHskdG1wfSI7CiAgICAgICAgfQogICAgICAgICRjb3VudCsrOwogICAgfQogICAgJHF1ZXJ5MSAuPSAiKSAiOwogICAgJHF1ZXJ5MiAuPSAiKSAiOwp9Cgokc29ydHJhbmRvbSA9IGZhbHNlOwppZiAoaXNzZXQoJHBhcmFtc1snc29ydGJ5J10pKSB7CiAgICBpZiAoJHBhcmFtc1snc29ydGJ5J10gPT0gJ2RhdGUnKSB7CiAgICAgICAgJHF1ZXJ5MSAuPSAiT1JERVIgQlkgZG9jdW1lbnRfZGF0ZSAiOwogICAgfWVsc2UgaWYgKCRwYXJhbXNbJ3NvcnRieSddID09ICdyYW5kb20nKSB7CiAgICAgICAgJHF1ZXJ5MSAuPSAiT1JERVIgQlkgUkFORCgpICI7CiAgICAgICAgJHNvcnRyYW5kb20gPSB0cnVlOwogICAgfWVsc2UgewogICAgICAgICRxdWVyeTEgLj0gIk9SREVSIEJZIG1kLiIgLiBzdHJfcmVwbGFjZSgiJyIsICcnLCBzdHJfcmVwbGFjZSgnOycsICcnLCAkZGItPnFzdHIoJHBhcmFtc1snc29ydGJ5J10pKSkgLiAiICI7CiAgICB9Cn1lbHNlIHsKICAgICRxdWVyeTEgLj0gIk9SREVSIEJZIGRvY3VtZW50c2VhcmNoX2NhdGVnb3J5X2lkICI7Cn0KaWYgKCRzb3J0cmFuZG9tID09IGZhbHNlKSB7CiAgICBpZiAoaXNzZXQoJHBhcmFtc1snc29ydGRlc2MnXSkgJiYKICAgICAgICAgICAgKHN0cnRvbG93ZXIoJHBhcmFtc1snc29ydGRlc2MnXSkgPT0gJ3RydWUnKSkgewogICAgICAgICRxdWVyeTEgLj0gImRlc2MiOwogICAgfWVsc2UgewogICAgICAgICRxdWVyeTEgLj0gImFzYyI7CiAgICB9Cn0KKi8KLy8kZGJyZXN1bHQgPSAnJzsKLy8kZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5MSk7CgovLyRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnkpOwp3aGlsZSAoJGRicmVzdWx0ICYmICEkZGJyZXN1bHQtPkVPRikgewogICAgJHJvdyA9ICRkYnJlc3VsdC0+ZmllbGRzOwogICAgJG9uZXJvdyA9IG5ldyBzdGRDbGFzcygpOwoKICAgICRvbmVyb3ctPmlkID0gJHJvd1snZG9jdW1lbnRzZWFyY2hfaWQnXTsKICAgICRvbmVyb3ctPnRpdGxlID0gJHJvd1snbmFtZSddOwogICAgJG9uZXJvdy0+c3VtbWFyeSA9ICh0cmltKCRyb3dbJ2NvbnRlbnQnXSkgIT0gJzxici8+Jz8kcm93Wydjb250ZW50J106JycpOwogICAgJG9uZXJvdy0+bG9jYXRpb24gPSAkcm93Wydsb2NhdGlvbiddOwogICAgJG9uZXJvdy0+Y2F0ZWdvcnkgPSAkcm93Wydkb2N1bWVudHNlYXJjaF9jYXRlZ29yeV9uYW1lJ107CiAgICAkb25lcm93LT5hdXRob3IgPSAkcm93WydhdXRob3InXTsKICAgICRvbmVyb3ctPmRvY3VtZW50ZGF0ZSA9ICRyb3dbJ2RvY3VtZW50X2RhdGUnXTsKCiAgICAkZmlsZW5hbWUgPSAkb25lcm93LT5sb2NhdGlvbjsKICAgICRleHQgPSBzdWJzdHIoc3RycmNocigkZmlsZW5hbWUsICcuJyksIDEpOwogICAgJGV4dCA9IHN0cnRvdXBwZXIoJGV4dCk7CiAgICAkbW9kdWxlUGF0aCA9ICR0aGlzLT5HZXRNb2R1bGVVUkxQYXRoKCk7CiAgICAkaWNvbnBhdGggPSAkbW9kdWxlUGF0aCAuICcvaW1hZ2VzL2FwcGljb25zLycgLiAkZXh0IC4gJ2ljb24uZ2lmJzsKICAgICRpY29uZmlsZSA9ICc8aW1nIHNyYz0iJyAuICRpY29ucGF0aCAuICciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgYWx0PSInIC4gJGZpbGVuYW1lIC4gJyIgLz4nOwogICAgJHNtYXJ0eS0+YXNzaWduKCdpY29uZmlsZScsICRpY29uZmlsZSk7CiAgICAkb25lcm93LT5kb2N1bWVudGljb24gPSAkaWNvbmZpbGU7CgogICAgJHNlbmR0b2RldGFpbCA9IGFycmF5KCdkb2N1bWVudHNlYXJjaGlkJyA9PiAkcm93Wydkb2N1bWVudHNlYXJjaF9pZCddKTsKICAgIGlmIChpc3NldCgkcGFyYW1zWydzaG93YWxsJ10pKSB7CiAgICAgICAgJHNlbmR0b2RldGFpbFsnc2hvd2FsbCddID0gJHBhcmFtc1snc2hvd2FsbCddOwogICAgfQogICAgaWYgKGlzc2V0KCRwYXJhbXNbJ2RldGFpbHBhZ2UnXSkpIHsKICAgICAgICAkc2VuZHRvZGV0YWlsWydvcmlnaWQnXSA9ICRyZXR1cm5pZDsKICAgIH0KICAgIGlmIChpc3NldCgkcGFyYW1zWydkZXRhaWx0ZW1wbGF0ZSddKSkgewogICAgICAgICRzZW5kdG9kZXRhaWxbJ2RldGFpbHRlbXBsYXRlJ10gPSAkcGFyYW1zWydkZXRhaWx0ZW1wbGF0ZSddOwogICAgfQoKICAgICRwcmV0dHl1cmwgPSAkcm93Wydsb2NhdGlvbiddOwogICAgaWYgKCRwcmV0dHl1cmwgPT0gJycpIHsKICAgICAgICAkYWxpYXNlZF90aXRsZSA9IG11bmdlX3N0cmluZ190b191cmwoJHJvd1snbmFtZSddKTsKICAgICAgICAkcHJldHR5dXJsID0gJ2RvY3VtZW50c2VhcmNoLycgLiAkcm93Wydkb2N1bWVudHNlYXJjaF9pZCddIC4gJy8nIC4gKCRkZXRhaWxwYWdlICE9ICcnPyRkZXRhaWxwYWdlOiRyZXR1cm5pZCkgLiAiLyRhbGlhc2VkX3RpdGxlIjsKICAgICAgICBpZiAoaXNzZXQoJHNlbmR0b2RldGFpbFsnZGV0YWlsdGVtcGxhdGUnXSkpIHsKICAgICAgICAgICAgJHByZXR0eXVybCAuPSAnL2QsJyAuICRzZW5kdG9kZXRhaWxbJ2RldGFpbHRlbXBsYXRlJ107CiAgICAgICAgfQogICAgfQoKICAgIGlmIChpc3NldCgkcGFyYW1zWydsYW5nJ10pKSB7CiAgICAgICAgJHNlbmR0b2RldGFpbFsnbGFuZyddID0gJHBhcmFtc1snbGFuZyddOwogICAgfQoKICAgIGlmIChpc3NldCgkcGFyYW1zWydjYXRlZ29yeV9pZCddKSkgewogICAgICAgICRzZW5kdG9kZXRhaWxbJ2NhdGVnb3J5X2lkJ10gPSAkcGFyYW1zWydjYXRlZ29yeV9pZCddOwogICAgfQoKICAgIGlmIChpc3NldCgkcGFyYW1zWydwYWdlbGltaXQnXSkpIHsKICAgICAgICAkc2VuZHRvZGV0YWlsWydwYWdlbGltaXQnXSA9ICRwYXJhbXNbJ3BhZ2VsaW1pdCddOwogICAgfQoKICAgICRvbmVyb3ctPmxpbmsgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdkZXRhaWwnLCAkZGV0YWlscGFnZSAhPSAnJz8kZGV0YWlscGFnZTokcmV0dXJuaWQsICcnLCAkc2VuZHRvZGV0YWlsLCAnJywgdHJ1ZSwgZmFsc2UsICcnLCB0cnVlLCAkcHJldHR5dXJsKTsKICAgICRvbmVyb3ctPnRpdGxlbGluayA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2RldGFpbCcsICRkZXRhaWxwYWdlICE9ICcnPyRkZXRhaWxwYWdlOiRyZXR1cm5pZCwgJHJvd1snbmFtZSddLCAkc2VuZHRvZGV0YWlsLCAnJywgZmFsc2UsIGZhbHNlLCAnJywgdHJ1ZSwgJHByZXR0eXVybCk7CiAgICAkb25lcm93LT5tb3JlbGluayA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2RldGFpbCcsICRkZXRhaWxwYWdlICE9ICcnPyRkZXRhaWxwYWdlOiRyZXR1cm5pZCwgJG1vcmV0ZXh0LCAkc2VuZHRvZGV0YWlsLCAnJywgZmFsc2UsIGZhbHNlLCAnJywgdHJ1ZSwgJHByZXR0eXVybCk7CiAgICAkb25lcm93LT5tb3JldXJsID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnZGV0YWlsJywgJGRldGFpbHBhZ2UgIT0gJyc/JGRldGFpbHBhZ2U6JHJldHVybmlkLCAkbW9yZXRleHQsICRzZW5kdG9kZXRhaWwsICcnLCB0cnVlLCBmYWxzZSwgJycsIHRydWUsICRwcmV0dHl1cmwpOwogICAgJG9uZXJvdy0+cG9zdGRhdGUgPSAkcm93Wydkb2N1bWVudF9kYXRlJ107CgogICAgJGVudHJ5YXJyYXlbXSA9ICRvbmVyb3c7CiAgICAkZGJyZXN1bHQtPk1vdmVOZXh0KCk7Cn0KCiRjb25maWcgPSBjbXNtcygpLT5HZXRDb25maWcoKTsKJHNtYXJ0eS0+YXNzaWduKCdyb290X3BhdGgnLCAkY29uZmlnWydyb290X3BhdGgnXSk7CiRzbWFydHktPmFzc2lnbigncm9vdF91cmwnLCAkY29uZmlnWydyb290X3VybCddKTsKJHNtYXJ0eS0+YXNzaWduKCd1cGxvYWRzX3BhdGgnLCAkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSk7CiRzbWFydHktPmFzc2lnbignaXRlbWNvdW50JywgY291bnQoJGVudHJ5YXJyYXkpKTsKJHNtYXJ0eS0+YXNzaWduKCdpdGVtcycsICRlbnRyeWFycmF5KTsKJHNtYXJ0eS0+YXNzaWduKCdjYXRlZ29yeV9sYWJlbCcsICR0aGlzLT5MYW5nKCdjYXRlZ29yeV9sYWJlbCcpKTsKJHNtYXJ0eS0+YXNzaWduKCdhdXRob3JfbGFiZWwnLCAkdGhpcy0+TGFuZygnYXV0aG9yX2xhYmVsJykpOwoKJGNhdE5hbWUgPSAnJzsKaWYgKGlzc2V0KCRwYXJhbXNbJ2NhdGVnb3J5J10pKSB7CiAgICAkY2F0TmFtZSA9ICRwYXJhbXNbJ2NhdGVnb3J5J107Cn1lbHNlIGlmIChpc3NldCgkcGFyYW1zWydjYXRlZ29yeV9pZCddKSkgewogICAgJGNhdE5hbWUgPSAkZGItPkdldE9uZSgnU0VMRUNUIGRvY3VtZW50c2VhcmNoX2NhdGVnb3J5X25hbWUgRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9kb2N1bWVudHNlYXJjaF9jYXRlZ29yaWVzIHdoZXJlIGRvY3VtZW50c2VhcmNoX2NhdGVnb3J5X2lkPT8nLCBhcnJheSgkcGFyYW1zWydjYXRlZ29yeV9pZCddKSk7Cn0KJHNtYXJ0eS0+YXNzaWduKCdjYXRlZ29yeV9uYW1lJywgJGNhdE5hbWUpOwoKdW5zZXQoJHBhcmFtc1sncGFnZW51bWJlciddKTsKJGl0ZW1zID0gZG9jdW1lbnRzZWFyY2hfb3BzOjpnZXRfY2F0ZWdvcmllcygkaWQsICRwYXJhbXMsICRyZXR1cm5pZCk7CiRzbWFydHktPmFzc2lnbignY291bnQnLCBjb3VudCgkaXRlbXMpKTsKJHNtYXJ0eS0+YXNzaWduKCdjYXRzJywgJGl0ZW1zKTsKLy8gRXhwb3NlIHRoZSBsaXN0IHRvIHNtYXJ0eS4KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdyZWNvcmRzJywgJHJlY29yZHMpOwovLyBUZWxsIFNtYXJ0eSB3aGljaCBtb2RlIHdlJ3JlIGluCiR0aGlzLT5zbWFydHktPmFzc2lnbignbW9kZScsICRtb2RlKTsKLy8gYW5kIGEgY291bnQgb2YgcmVjb3JkcwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX251bV9yZWNvcmRzJywgJHRoaXMtPkxhbmcoJ3RpdGxlX251bV9yZWNvcmRzJywgYXJyYXkoY291bnQoJHJlY29yZHMpKSkpOwoKJGNhdE5hbWUgPSAnJzsKaWYgKGlzc2V0KCRwYXJhbXNbJ2NhdGVnb3J5J10pKSB7CiAgICAkY2F0TmFtZSA9ICRwYXJhbXNbJ2NhdGVnb3J5J107Cn0gZWxzZSBpZiAoaXNzZXQoJHBhcmFtc1snY2F0ZWdvcnlfaWQnXSkpIHsKICAgICRjYXROYW1lID0gJGRiLT5HZXRPbmUoJ1NFTEVDVCBkb2N1bWVudHNlYXJjaF9jYXRlZ29yeV9uYW1lIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfZG9jdW1lbnRzZWFyY2hfY2F0ZWdvcmllcyB3aGVyZSBkb2N1bWVudHNlYXJjaF9jYXRlZ29yeV9pZD0/JywgYXJyYXkoJHBhcmFtc1snY2F0ZWdvcnlfaWQnXSkpOwp9CiRzbWFydHktPmFzc2lnbignY2F0ZWdvcnlfbmFtZScsICRjYXROYW1lKTsKCmlmIChpc3NldCgkcGFyYW1zWydtb2R1bGVfbWVzc2FnZSddKSkgewogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdtb2R1bGVfbWVzc2FnZScsICRwYXJhbXNbJ21vZHVsZV9tZXNzYWdlJ10pOwp9ZWxzZSB7CiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ21vZHVsZV9tZXNzYWdlJywgJycpOwp9Ci8vIERpc3BsYXkgdGhlIHBvcHVsYXRlZCB0ZW1wbGF0ZQovLyBlY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJGRldGFpbFNhbXBsZSk7Ci8vIGVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCRkZXRhaWxTYW1wbGUpOwokY2FjaGVfaWQgPSAnfGNnYicgLiBtZDUoc2VyaWFsaXplKCRwYXJhbXMpIC4gJHNob3dkcmFmdCk7CiRjb21waWxlX2lkID0gJyc7CiR0ZW1wbGF0ZSA9ICdkZXRhaWxTYW1wbGUnOwplY2hvICRzbWFydHktPmZldGNoKCR0aGlzLT5HZXREYXRhYmFzZVJlc291cmNlKCR0ZW1wbGF0ZSksICRjYWNoZV9pZCwgJGNvbXBpbGVfaWQpOwoKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IERvY3VtZW50U2VhcmNoIChjKSAyMDEzIGJ5IE9saXZlciBTZWRkb24gCiMgICAgICAgICAob2xpdmVyQHRocmVlZm9sZC5jby51aykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gcHJvdmlkZSBQREYgYW5kIFdvcmQgZG9jdW1lbnQKIyAgY29udGVudCBzZWFyY2hhYmlsaXR5LgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiAoIWlzc2V0KCRnQ21zKSkgZXhpdDsKCmlmICghICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ1VzZSBEb2N1bWVudCBTZWFyY2gnKSkgewogIHJldHVybiAkdGhpcy0+RGlzcGxheUVycm9yUGFnZSgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCwkdGhpcy0+TGFuZygnYWNjZXNzZGVuaWVkJykpOwp9CgplY2hvICR0aGlzLT5TdGFydFRhYkhlYWRlcnMoKTsKaWYgKEZBTFNFID09IGVtcHR5KCRwYXJhbXNbJ2FjdGl2ZV90YWInXSkpCiAgewogICAgJHRhYiA9ICRwYXJhbXNbJ2FjdGl2ZV90YWInXTsKICB9IGVsc2UgewogICR0YWIgPSAnJzsKIH0KCmlmICgkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdVc2UgRG9jdW1lbnQgU2VhcmNoJykpCiAgIHsKICAgZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdkb2N1bWVudCcsJHRoaXMtPkxhbmcoJ3RhYl9kb2N1bWVudCcpLCAoJ2RvY3VtZW50JyA9PSAkdGFiKT90cnVlOmZhbHNlKTsKICAgZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdjYXRlZ29yaWVzJywkdGhpcy0+TGFuZygndGFiX2NhdGVnb3JpZXMnKSwgKCdjYXRlZ29yaWVzJyA9PSAkdGFiKT90cnVlOmZhbHNlKTsKICAgZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCd0ZW1wbGF0ZXMnLCR0aGlzLT5MYW5nKCd0YWJfdGVtcGxhdGVzJyksICgndGVtcGxhdGVzJyA9PSAkdGFiKT90cnVlOmZhbHNlKTsKICAgfQplY2hvICR0aGlzLT5FbmRUYWJIZWFkZXJzKCk7CgoKZWNobyAkdGhpcy0+U3RhcnRUYWJDb250ZW50KCk7CmlmICgkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdVc2UgRG9jdW1lbnQgU2VhcmNoJykgKQogIHsKICAgIGVjaG8gJHRoaXMtPlN0YXJ0VGFiKCdkb2N1bWVudCcsICRwYXJhbXMpOwogICAgaW5jbHVkZShkaXJuYW1lKF9fRklMRV9fKS4nL2Z1bmN0aW9uLmFkbWluX2RvY3VtZW50dGFiLnBocCcpOwogICAgZWNobyAkdGhpcy0+RW5kVGFiKCk7CiAgICBlY2hvICR0aGlzLT5TdGFydFRhYignY2F0ZWdvcmllcycsICRwYXJhbXMpOwogICAgaW5jbHVkZShkaXJuYW1lKF9fRklMRV9fKS4nL2Z1bmN0aW9uLmFkbWluX2NhdGVnb3JpZXN0YWIucGhwJyk7CiAgICBlY2hvICR0aGlzLT5FbmRUYWIoKTsKICAgIGVjaG8gJHRoaXMtPlN0YXJ0VGFiKCd0ZW1wbGF0ZXMnLCAkcGFyYW1zKTsKICAgIGluY2x1ZGUoZGlybmFtZShfX0ZJTEVfXykuJy9mdW5jdGlvbi5hZG1pbl90ZW1wbGF0ZXRhYi5waHAnKTsKICAgIGVjaG8gJHRoaXMtPkVuZFRhYigpOwogIH0KCmVjaG8gJHRoaXMtPkVuZFRhYkNvbnRlbnQoKTsKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.deletecategory.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IERvY3VtZW50U2VhcmNoIChjKSAyMDEzIGJ5IE9saXZlciBTZWRkb24gCiMgICAgICAgICAob2xpdmVyQHRocmVlZm9sZC5jby51aykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gcHJvdmlkZSBQREYgYW5kIFdvcmQgZG9jdW1lbnQKIyAgY29udGVudCBzZWFyY2hhYmlsaXR5LgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiAoIWlzc2V0KCRnQ21zKSkgZXhpdDsKaWYgKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdVc2UgRG9jdW1lbnQgU2VhcmNoJykpIHJldHVybjsKCgkkY2F0aWQgPSAnJzsKCWlmIChpc3NldCgkcGFyYW1zWydjYXRpZCddKSkKCXsKCQkkY2F0aWQgPSAkcGFyYW1zWydjYXRpZCddOwoJfQoKLy8gR2V0IHRoZSBjYXRlZ29yeSBkZXRhaWxzCiRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZG9jdW1lbnRzZWFyY2hfY2F0ZWdvcmllcwogICAgICAgICAgIFdIRVJFIGRvY3VtZW50c2VhcmNoX2NhdGVnb3J5X2lkID0gPyc7CiRyb3cgPSAkZGItPkdldFJvdyggJHF1ZXJ5LCBhcnJheSggJGNhdGlkICkgKTsKCgkvL05vdyByZW1vdmUgdGhlIGNhdGVnb3J5CgkkcXVlcnkgPSAiREVMRVRFIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9kb2N1bWVudHNlYXJjaF9jYXRlZ29yaWVzIFdIRVJFIGRvY3VtZW50c2VhcmNoX2NhdGVnb3J5X2lkID0gPyI7CgkkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkY2F0aWQpKTsKCi8vQW5kIHJlbW92ZSBpdCBmcm9tIGFueSBhcnRpY2xlcwokcXVlcnkgPSAiVVBEQVRFICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZG9jdW1lbnRzZWFyY2ggU0VUIGRvY3VtZW50c2VhcmNoX2NhdGVnb3J5X2lkID0gLTEgV0hFUkUgZG9jdW1lbnRzZWFyY2hfY2F0ZWdvcnlfaWQgPSA/IjsKCSRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRjYXRpZCkpOwoJCkAkdGhpcy0+U2VuZEV2ZW50KCdDYXRlZ29yeURlbGV0ZWQnLCBhcnJheSgnY2F0ZWdvcnlfaWQnID0+ICRjYXRpZCwgJ25hbWUnID0+ICRyb3dbJ2RvY3VtZW50c2VhcmNoX2NhdGVnb3J5X25hbWUnXSkpOwoJICAvLyBwdXQgbWVudGlvbiBpbnRvIHRoZSBhZG1pbiBsb2cKCSAgYXVkaXQoJGNhdGlkLCAnQ2F0ZWdvcnk6ICcuJGNhdGlkLCAnIENhdGVnb3J5IGRlbGV0ZWQnKTsKCmRvY3VtZW50c2VhcmNoX2FkbWluX29wczo6VXBkYXRlSGllcmFyY2h5UG9zaXRpb25zKCk7CgoJJHBhcmFtcyA9IGFycmF5KCd0YWJfbWVzc2FnZSc9PiAnY2F0ZWdvcnlkZWxldGVkJywgJ2FjdGl2ZV90YWInID0+ICdjYXRlZ29yaWVzJyk7CgkkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkLCAkcGFyYW1zKTsKPz4K]]></data>
	</file>
	<file>
	  <filename>/action.deletedocument.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IERvY3VtZW50U2VhcmNoIChjKSAyMDEzIGJ5IE9saXZlciBTZWRkb24gCiMgICAgICAgICAob2xpdmVyQHRocmVlZm9sZC5jby51aykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gcHJvdmlkZSBQREYgYW5kIFdvcmQgZG9jdW1lbnQKIyAgY29udGVudCBzZWFyY2hhYmlsaXR5LgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiAoIWlzc2V0KCRnQ21zKSkgZXhpdDsKCmlmICghJHRoaXMtPkNoZWNrUGVybWlzc2lvbignVXNlIERvY3VtZW50IFNlYXJjaCcpKQogIHsKICAgIGVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJ25lZWRwZXJtaXNzaW9uJywgYXJyYXkoJ1VzZSBEb2N1bWVudCBTZWFyY2gnKSkpOwogICAgcmV0dXJuOwogIH0KCiRkb2N1bWVudGlkID0gJyc7CmlmIChpc3NldCgkcGFyYW1zWydkb2N1bWVudHNlYXJjaF9pZCddKSkKICB7CiAgICAkZG9jdW1lbnRpZCA9ICRwYXJhbXNbJ2RvY3VtZW50c2VhcmNoX2lkJ107CiAgfQoKZG9jdW1lbnRzZWFyY2hfYWRtaW5fb3BzOjpkZWxldGVfZG9jdW1lbnQoJGRvY3VtZW50aWQpOwoKJHBhcmFtcyA9IGFycmF5KCd0YWJfbWVzc2FnZSc9PiAnZG9jdW1lbnRkZWxldGVkJywgJ2FjdGl2ZV90YWInID0+ICdnZW5lcmFsJyk7CiR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAkcmV0dXJuaWQsICRwYXJhbXMpOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.editcategory.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IERvY3VtZW50U2VhcmNoIChjKSAyMDEzIGJ5IE9saXZlciBTZWRkb24gCiMgICAgICAgICAob2xpdmVyQHRocmVlZm9sZC5jby51aykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gcHJvdmlkZSBQREYgYW5kIFdvcmQgZG9jdW1lbnQKIyAgY29udGVudCBzZWFyY2hhYmlsaXR5LgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiAoIWlzc2V0KCRnQ21zKSkgZXhpdDsKaWYgKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdVc2UgRG9jdW1lbnQgU2VhcmNoJykpIHJldHVybjsKCmlmIChpc3NldCgkcGFyYW1zWydjYW5jZWwnXSkpCiAgewogICAgJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCk7CiAgfQoKJGNhdGlkID0gJyc7CmlmIChpc3NldCgkcGFyYW1zWydjYXRpZCddKSkKICB7CiAgICAkY2F0aWQgPSAkcGFyYW1zWydjYXRpZCddOwogIH0KCgokcGFyZW50aWQgPSAnLTEnOwppZiAoaXNzZXQoJHBhcmFtc1sncGFyZW50J10pKQogIHsKICAgICRwYXJlbnRpZCA9IChpbnQpJHBhcmFtc1sncGFyZW50J107CiAgfQoKJG9yaWduYW1lID0gJyc7CmlmIChpc3NldCgkcGFyYW1zWydvcmlnbmFtZSddKSkKICB7CiAgICAkb3JpZ25hbWUgPSAkcGFyYW1zWydvcmlnbmFtZSddOwogIH0KCiRuYW1lID0gJyc7CmlmIChpc3NldCgkcGFyYW1zWyduYW1lJ10pKQogIHsKICAgICRuYW1lID0gdHJpbSgkcGFyYW1zWyduYW1lJ10pOwogICAgaWYgKCRuYW1lICE9ICcnKQogICAgICB7CgkkcXVlcnkgPSAnU0VMRUNUIGRvY3VtZW50c2VhcmNoX2NhdGVnb3J5X2lkIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9kb2N1bWVudHNlYXJjaF9jYXRlZ29yaWVzIFdIRVJFIGRvY3VtZW50c2VhcmNoX2NhdGVnb3J5X25hbWUgPSA/IEFORCBkb2N1bWVudHNlYXJjaF9jYXRlZ29yeV9pZCAhPSA/JzsKCSR0bXAgPSAkZGItPkdldE9uZSgkcXVlcnksYXJyYXkoJHBhcmVudGlkLCRuYW1lLCRjYXRpZCkpOwoJaWYoICR0bXAgKQoJICB7CgkgICAgZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkdGhpcy0+TGFuZygnZXJyb3JfZHVwbGljYXRlbmFtZScpKTsKCSAgfQoJZWxzZQoJICB7CgkgICAgJHF1ZXJ5ID0gJ1VQREFURSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2RvY3VtZW50c2VhcmNoX2NhdGVnb3JpZXMgU0VUIGRvY3VtZW50c2VhcmNoX2NhdGVnb3J5X25hbWUgPSA/LCBwYXJlbnRfaWQgPSA/LCBtb2RpZmllZF9kYXRlID0gJy4kZGItPkRCVGltZVN0YW1wKHRpbWUoKSkuJyBXSEVSRSBkb2N1bWVudHNlYXJjaF9jYXRlZ29yeV9pZCA9ID8nOwoJICAgICRwYXJtcyA9IGFycmF5KCRuYW1lLCRwYXJlbnRpZCk7CgkgICAgJHBhcm1zW10gPSAkY2F0aWQ7CgkgICAgJGRiLT5FeGVjdXRlKCRxdWVyeSwgJHBhcm1zKTsKCSAgICBkb2N1bWVudHNlYXJjaF9hZG1pbl9vcHM6OlVwZGF0ZUhpZXJhcmNoeVBvc2l0aW9ucygpOwoJICAgIEAkdGhpcy0+U2VuZEV2ZW50KCdOZXdzQ2F0ZWdvcnlFZGl0ZWQnLCBhcnJheSgnY2F0ZWdvcnlfaWQnID0+ICRjYXRpZCwgJ25hbWUnID0+ICRuYW1lLCAnb3JpZ25hbWUnID0+ICRvcmlnbmFtZSkpOwoJCQkgIC8vIHB1dCBtZW50aW9uIGludG8gdGhlIGFkbWluIGxvZwoJICBhdWRpdCgkY2F0aWQsICdOZXdzIGNhdGVnb3J5OiAnLiRjYXRpZCwgJyBDYXRlZ29yeSBlZGl0ZWQnKTsKCSAgICAkcGFyYW1zID0gYXJyYXkoJ3RhYl9tZXNzYWdlJz0+ICdjYXRlZ29yeXVwZGF0ZWQnLCAnYWN0aXZlX3RhYicgPT4gJ2NhdGVnb3JpZXMnKTsKCSAgICAkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkLCAkcGFyYW1zKTsJCQoJICB9CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJCWVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJ25vbmFtZWdpdmVuJykpOwogICAgICB9CiAgfQogZWxzZQogICB7CiAgICAgJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9kb2N1bWVudHNlYXJjaF9jYXRlZ29yaWVzIFdIRVJFIGRvY3VtZW50c2VhcmNoX2NhdGVnb3J5X2lkID0gPyc7CiAgICAgJHJvdyA9ICRkYi0+R2V0Um93KCRxdWVyeSwgYXJyYXkoJGNhdGlkKSk7CgogICAgIGlmICgkcm93KQogICAgICAgewoJICRuYW1lID0gJHJvd1snZG9jdW1lbnRzZWFyY2hfY2F0ZWdvcnlfbmFtZSddOwoJICRwYXJlbnRpZCA9IChpbnQpJHJvd1sncGFyZW50X2lkJ107CiAgICAgICB9CiAgIH0KCgojRGlzcGxheSB0ZW1wbGF0ZQokc21hcnR5LT5hc3NpZ24oJ3N0YXJ0Zm9ybScsICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAnZWRpdGNhdGVnb3J5JywgJHJldHVybmlkKSk7CiRzbWFydHktPmFzc2lnbignZW5kZm9ybScsICR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwokc21hcnR5LT5hc3NpZ24oJ25hbWV0ZXh0JywgJHRoaXMtPkxhbmcoJ25hbWUnKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRuYW1lJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICduYW1lJywgJG5hbWUsIDIwLCAyNTUpKTsKJHNtYXJ0eS0+YXNzaWduKCdoaWRkZW4nLCAKCQkgICAgICAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnY2F0aWQnLCAkY2F0aWQpLgoJCSAgICAgICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsJ29yaWduYW1lJywkbmFtZSkpOwokc21hcnR5LT5hc3NpZ24oJ3N1Ym1pdCcsICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdzdWJtaXQnLCBsYW5nKCdzdWJtaXQnKSkpOwokc21hcnR5LT5hc3NpZ24oJ2NhbmNlbCcsICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdjYW5jZWwnLCBsYW5nKCdjYW5jZWwnKSkpOwplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2VkaXRjYXRlZ29yeS50cGwnKTsKPz4K]]></data>
	</file>
	<file>
	  <filename>/action.save_record.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IERvY3VtZW50U2VhcmNoIChjKSAyMDEzIGJ5IE9saXZlciBTZWRkb24gCiMgICAgICAgICAob2xpdmVyQHRocmVlZm9sZC5jby51aykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gcHJvdmlkZSBQREYgYW5kIFdvcmQgZG9jdW1lbnQKIyAgY29udGVudCBzZWFyY2hhYmlsaXR5LgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQ0KaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7DQoKaW5jbHVkZShkaXJuYW1lKF9fRklMRV9fKS4nL2xpYi9jbGFzcy5wZGYydGV4dC5waHAnKTsKDQovLyBnZXQgb3VyIHJlY29yZHMgZnJvbSB0aGUgZGF0YWJhc2UNCiRkYiA9ICRnQ21zLT5HZXREYigpOw0KCmlmIChpc3NldCgkcGFyYW1zWydjYW5jZWwnXSkpIHsKCSR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAkcmV0dXJuaWQpOwp9Cg0KaWYgKGlzc2V0KCRwYXJhbXNbJ2RvY3VtZW50c2VhcmNoX2lkJ10pICYmICRwYXJhbXNbJ2RvY3VtZW50c2VhcmNoX2lkJ10gIT0gLTEpIHsKCgkvLyB3ZSByZWNlaXZlZCBhIGRvY3VtZW50c2VhcmNoX2lkIHRoYXQgd2FzIG5vdCAtMSwgd2hpY2ggbWVhbnMgd2UncmUgdXBkYXRpbmcgYW4NCgkvLyBleGlzdGluZyByZWNvcmQuIFNvIHdlIGlzc3VlIGEgU1FMIFVwZGF0ZQoKCWlmICggIWlzc2V0KCRfRklMRVNbJGlkIC4nbG9jYXRpb25maWxlJ11bJ25hbWUnXSkgfHwgJF9GSUxFU1skaWQgLidsb2NhdGlvbmZpbGUnXVsnbmFtZSddID09ICcnICkgewoKCQkkcG9zdGRhdGUgPSB0aW1lKCk7CgkJaWYgKGlzc2V0KCRwYXJhbXNbJ3Bvc3RkYXRlX01vbnRoJ10pKSB7CgkJCSRwb3N0ZGF0ZSA9IG1rdGltZSgkcGFyYW1zWydwb3N0ZGF0ZV9Ib3VyJ10sICRwYXJhbXNbJ3Bvc3RkYXRlX01pbnV0ZSddLCAkcGFyYW1zWydwb3N0ZGF0ZV9TZWNvbmQnXSwgJHBhcmFtc1sncG9zdGRhdGVfTW9udGgnXSwgJHBhcmFtc1sncG9zdGRhdGVfRGF5J10sICRwYXJhbXNbJ3Bvc3RkYXRlX1llYXInXSk7CgkJfQoJCQoJCS8vSWYgbm8gbmFtZSBpcyBnaXZlIG1ha2UgZmlsZSBuYW1lIHRoZSBkZWZhdWx0IG5hbWUKCQlpZiAoJHBhcmFtc1snbmFtZSddID09ICcnKSB7CgkJCSR0bXBuYW1lID0gJHBhcmFtc1snbG9jYXRpb24nXTsKICAgIAkJCSRleHQgPSBzdWJzdHIoc3RycmNocigkdG1wbmFtZSwgJy4nKSwgMSk7CgkJCSR0bXBleHQgPSAnLicgLiAkZXh0OwoJCQkkY2xlYW5uYW1lID0gc3RyX3JlcGxhY2UoJ18nLCAiICIsICR0bXBuYW1lKTsKCQkJJGNsZWFubmFtZSA9IHN0cl9yZXBsYWNlKCR0bXBleHQsICIiLCAkY2xlYW5uYW1lKTsKCQkJJHBhcmFtc1snbmFtZSddID0gJGNsZWFubmFtZTsKCQl9CgogICAgCQkkZG9jdW1lbnRpZCA9ICRwYXJhbXNbJ2RvY3VtZW50c2VhcmNoX2lkJ107DQoJCSRxdWVyeSA9ICdVUERBVEUgJy5jbXNfZGJfcHJlZml4KCkuDQogICAgCQknbW9kdWxlX2RvY3VtZW50c2VhcmNoIHNldCBuYW1lPT8sIGRvY3VtZW50c2VhcmNoX2NhdGVnb3J5X2lkPT8sIGF1dGhvcj0/LCBkb2N1bWVudF9kYXRlPT8gd2hlcmUgZG9jdW1lbnRzZWFyY2hfaWQgPSA/JzsNCgkJJHJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJHBhcmFtc1snbmFtZSddLCRwYXJhbXNbJ2NhdGVnb3J5J10sJHBhcmFtc1snYXV0aG9yJ10sdHJpbSgkZGItPkRCVGltZVN0YW1wKCRwb3N0ZGF0ZSksICInIiksJHBhcmFtc1snZG9jdW1lbnRzZWFyY2hfaWQnXSkpOwoKCX0gZWxzZSB7CgoJCSRwb3N0ZGF0ZSA9IHRpbWUoKTsKCQlpZiAoaXNzZXQoJHBhcmFtc1sncG9zdGRhdGVfTW9udGgnXSkpIHsKCQkJJHBvc3RkYXRlID0gbWt0aW1lKCRwYXJhbXNbJ3Bvc3RkYXRlX0hvdXInXSwgJHBhcmFtc1sncG9zdGRhdGVfTWludXRlJ10sICRwYXJhbXNbJ3Bvc3RkYXRlX1NlY29uZCddLCAkcGFyYW1zWydwb3N0ZGF0ZV9Nb250aCddLCAkcGFyYW1zWydwb3N0ZGF0ZV9EYXknXSwgJHBhcmFtc1sncG9zdGRhdGVfWWVhciddKTsKCQl9CgogICAgCSRkb2N1bWVudGlkID0gJHBhcmFtc1snZG9jdW1lbnRzZWFyY2hfaWQnXTsKCiAgICAJLy8gY2hlY2sgdG8gc2VlIGlmIGEgZmlsZSBoYXMgYmVlbiBzZWxlY3RlZAogICAgCSRjb25maWcgPSBjbXNtcygpLT5HZXRDb25maWcoKTsKICAgIAkkZmllbGRuYW1lID0gJGlkIC4nbG9jYXRpb25maWxlJzsKICAgIAkkbW9kID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdEb2N1bWVudFNlYXJjaCcpOwogICAgCSRwID0gY21zX2pvaW5fcGF0aCgkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSwnZG9jdW1lbnRzZWFyY2gnKTsKICAgIAlpZiAoIWlzX2RpcigkcCkpIHsKICAgICAgCQkkcmVzID0gQG1rZGlyKCRwKTsKICAgICAgCQlpZiggJHJlcyA9PT0gRkFMU0UgKSB7CgkJCQkkdGhpcy0+RGlzcGxheUVycm9yUGFnZSgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCwKCQkJCQkkdGhpcy0+TGFuZygnZXJyb3JfbWtkaXInKSk7CgkgICAgCQlyZXR1cm4gRkFMU0U7CiAgICAgIAkJfQogICAgCX0KCiAgICAJJHAgPSBjbXNfam9pbl9wYXRoKCRjb25maWdbJ3VwbG9hZHNfcGF0aCddLCdkb2N1bWVudHNlYXJjaCcsJ2lkJy4kZG9jdW1lbnRpZCk7CiAgICAJaWYgKCFpc19kaXIoJHApKSB7CiAgICAgIAkJaWYoIEBta2RpcigkcCkgPT09IEZBTFNFICkgewoJCQkJJHRoaXMtPkRpc3BsYXlFcnJvclBhZ2UoJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQsCgkJCQkJJHRoaXMtPkxhbmcoJ2Vycm9yX21rZGlyJykpOwoJICAgIAkJcmV0dXJuIEZBTFNFOwogICAgICAJCX0KICAgIAl9CgogICAgCSRmaWxlbmFtZSA9IGJhc2VuYW1lKCRfRklMRVNbJGZpZWxkbmFtZV1bJ25hbWUnXSk7CiAgICAJJGRlc3QgPSBjbXNfam9pbl9wYXRoKCRjb25maWdbJ3VwbG9hZHNfcGF0aCddLCdkb2N1bWVudHNlYXJjaCcsJ2lkJy4kZG9jdW1lbnRpZCwkZmlsZW5hbWUpOwogICAgCSRwYXJhbXNbJ2xvY2F0aW9uJ10gPSAkZmlsZW5hbWU7CgogICAgCS8vIEdldCB0aGUgZmlsZXMgZXh0ZW5zaW9uCiAgICAJJGV4dCA9IHN1YnN0cihzdHJyY2hyKCRmaWxlbmFtZSwgJy4nKSwgMSk7CgogICAgCS8vIGNvbXBhcmUgaXQgYWdhaW5zdCB0aGUgJ2FsbG93ZWQgZXh0ZW50aW9ucycKICAgIAkkZXh0cyA9IGV4cGxvZGUoJywnLCRtb2QtPkdldFByZWZlcmVuY2UoJ2FsbG93ZWRfdXBsb2FkX3R5cGVzJywnJykpOwogICAgCWlmKCAhaW5fYXJyYXkoICRleHQsICRleHRzICkgKSB7CgkJCSR0aGlzLT5EaXNwbGF5RXJyb3JQYWdlKCRpZCwgJHBhcmFtcywgJHJldHVybmlkLAoJCQkJJHRoaXMtPkxhbmcoJ2Vycm9yX2ludmFsaWRmaWxldHlwZScpKTsKCQkJcmV0dXJuIEZBTFNFOwogICAgICAJfQoKICAgIAlpZiggQGNtc19tb3ZlX3VwbG9hZGVkX2ZpbGUoJF9GSUxFU1skZmllbGRuYW1lXVsndG1wX25hbWUnXSwgJGRlc3QpID09PSBGQUxTRSApIHsKCQkJJHRoaXMtPkRpc3BsYXlFcnJvclBhZ2UoJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQsCgkJCQkkdGhpcy0+TGFuZygnZXJyb3JfbW92ZWZpbGUnKSk7CgkJCXJldHVybiBGQUxTRTsKICAgICAgCX0KICAgICAgICBpZiAoJGV4dCA9PSAncGRmJykgewoJCQkkb2JqZWN0ID0gbmV3IFRDaGVzdGVyX1BkZjJUZXh0KCRkZXN0KTsKCQkJJHBkZkNvbnRlbnQgPSAkb2JqZWN0LT5nZXRDb250ZW50cygpOwoJCQkkcGFyYW1zWydjb250ZW50J10gPSBpY29udignSVNPLTg4NTktMScsICdVVEYtOC8vVFJBTlNMSVQnLCAkcGRmQ29udGVudCk7CgkJfSBlbHNlaWYgKCRleHQgPT0gJ2RvY3gnKSB7CgkJCWZ1bmN0aW9uIGRvY3gydGV4dCgkZmlsZW5hbWVkb2N4KSB7CiAgICAJCQlyZXR1cm4gcmVhZFppcHBlZFhNTCgkZmlsZW5hbWVkb2N4LCAid29yZC9kb2N1bWVudC54bWwiKTsKCQkJfQoJCQlmdW5jdGlvbiByZWFkWmlwcGVkWE1MKCRhcmNoaXZlRmlsZSwgJGRhdGFGaWxlKSB7CiAgICAJCQkvLyBDcmVhdGUgbmV3IFpJUCBhcmNoaXZlCiAgICAJCQkkemlwID0gbmV3IFppcEFyY2hpdmU7CgogICAgCQkJLy8gT3BlbiByZWNlaXZlZCBhcmNoaXZlIGZpbGUKICAgIAkJCWlmICh0cnVlID09PSAkemlwLT5vcGVuKCRhcmNoaXZlRmlsZSkpIHsKICAgICAgICAJCQkvLyBJZiBkb25lLCBzZWFyY2ggZm9yIHRoZSBkYXRhIGZpbGUgaW4gdGhlIGFyY2hpdmUKICAgICAgICAJCQlpZiAoKCRpbmRleCA9ICR6aXAtPmxvY2F0ZU5hbWUoJGRhdGFGaWxlKSkgIT09IGZhbHNlKSB7CiAgICAgICAgICAgIAkJCS8vIElmIGZvdW5kLCByZWFkIGl0IHRvIHRoZSBzdHJpbmcKICAgICAgICAgICAgCQkJJGRhdGEgPSAkemlwLT5nZXRGcm9tSW5kZXgoJGluZGV4KTsKICAgICAgICAgICAgCQkJLy8gQ2xvc2UgYXJjaGl2ZSBmaWxlCiAgICAgICAgICAgIAkJCSR6aXAtPmNsb3NlKCk7CiAgICAgICAgICAgIAkJCS8vIExvYWQgWE1MIGZyb20gYSBzdHJpbmcKICAgICAgICAgICAgCQkJLy8gU2tpcCBlcnJvcnMgYW5kIHdhcm5pbmdzCiAgICAgICAgICAgIAkJCSR4bWwgPSBET01Eb2N1bWVudDo6bG9hZFhNTCgkZGF0YSwgTElCWE1MX05PRU5UIHwgTElCWE1MX1hJTkNMVURFIHwgTElCWE1MX05PRVJST1IgfCBMSUJYTUxfTk9XQVJOSU5HKTsKICAgICAgICAgICAgCQkJLy8gUmV0dXJuIGRhdGEgd2l0aG91dCBYTUwgZm9ybWF0dGluZyB0YWdzCiAgICAgICAgICAgIAkJCXJldHVybiBzdHJpcF90YWdzKCR4bWwtPnNhdmVYTUwoKSk7CiAgICAgICAgCQkJfQogICAgICAgIAkJCSR6aXAtPmNsb3NlKCk7CiAgICAJCQl9CiAgICAJCQkvLyBJbiBjYXNlIG9mIGZhaWx1cmUgcmV0dXJuIGVtcHR5IHN0cmluZwogICAgCQkJcmV0dXJuICIiOwoJCQl9CgkJCSRwYXJhbXNbJ2NvbnRlbnQnXSA9IGRvY3gydGV4dCgkZGVzdCk7CgkJfSBlbHNlaWYgKCRleHQgPT0gJ2RvYycpIHsKCQkJZnVuY3Rpb24gcGFyc2VXb3JkKCR1c2VyRG9jKSB7CgkJCQkkZmlsZUhhbmRsZSA9IGZvcGVuKCR1c2VyRG9jLCAiciIpOwoJCQkJJGxpbmUgPSBAZnJlYWQoJGZpbGVIYW5kbGUsIGZpbGVzaXplKCR1c2VyRG9jKSk7ICAgCgkJCQkkbGluZXMgPSBleHBsb2RlKGNocigweDBEKSwkbGluZSk7CgkJCQkkb3V0dGV4dCA9ICIiOwoJCQkJZm9yZWFjaCgkbGluZXMgYXMgJHRoaXNsaW5lKSB7CgkJCQkJJHBvcyA9IHN0cnBvcygkdGhpc2xpbmUsIGNocigweDAwKSk7CgkJCQkJaWYgKCgkcG9zICE9PSBGQUxTRSl8fChzdHJsZW4oJHRoaXNsaW5lKT09MCkpIHsKCQkJCQl9IGVsc2UgewoJCQkJCQkkb3V0dGV4dCAuPSAkdGhpc2xpbmUuIiAiOwoJCQkJCX0KCQkJCX0KCQkJCSRvdXR0ZXh0ID0gcHJlZ19yZXBsYWNlKCIvW15hLXpBLVowLTlcc1wsXC5cLVxuXHJcdEBcL1xfXChcKV0vIiwiIiwkb3V0dGV4dCk7CgkJCQlyZXR1cm4gJG91dHRleHQ7CgkJCX0gCgkJCSRwYXJhbXNbJ2NvbnRlbnQnXSA9IHBhcnNlV29yZCgkZGVzdCk7CgkJfSBlbHNlaWYgKCRleHQgPT0gJ3J0ZicpIHsKCQkJZnVuY3Rpb24gcGFyc2VXb3JkKCR1c2VyRG9jKSB7CgkJCQkkZmlsZUhhbmRsZSA9IGZvcGVuKCR1c2VyRG9jLCAiciIpOwoJCQkJJGxpbmUgPSBAZnJlYWQoJGZpbGVIYW5kbGUsIGZpbGVzaXplKCR1c2VyRG9jKSk7ICAgCgkJCQkkbGluZXMgPSBleHBsb2RlKGNocigweDBEKSwkbGluZSk7CgkJCQkkb3V0dGV4dCA9ICIiOwoJCQkJZm9yZWFjaCgkbGluZXMgYXMgJHRoaXNsaW5lKSB7CgkJCQkJJHBvcyA9IHN0cnBvcygkdGhpc2xpbmUsIGNocigweDAwKSk7CgkJCQkJaWYgKCgkcG9zICE9PSBGQUxTRSl8fChzdHJsZW4oJHRoaXNsaW5lKT09MCkpIHsKCQkJCQl9IGVsc2UgewoJCQkJCQkkb3V0dGV4dCAuPSAkdGhpc2xpbmUuIiAiOwoJCQkJCX0KCQkJCX0KCQkJCSRvdXR0ZXh0ID0gcHJlZ19yZXBsYWNlKCIvW15hLXpBLVowLTlcc1wsXC5cLVxuXHJcdEBcL1xfXChcKV0vIiwiIiwkb3V0dGV4dCk7CgkJCQlyZXR1cm4gJG91dHRleHQ7CgkJCX0gCgkJCSRwYXJhbXNbJ2NvbnRlbnQnXSA9IHBhcnNlV29yZCgkZGVzdCk7CgkJfSBlbHNlaWYgKCRleHQgPT0gJ3R4dCcpIHsKCQkJJHBhcmFtc1snY29udGVudCddID0gZmlsZV9nZXRfY29udGVudHMoJGRlc3QpOwoJCX0KICAgICAgICAKDQoJCSRxdWVyeSA9ICdVUERBVEUgJy5jbXNfZGJfcHJlZml4KCkuDQogICAgCQknbW9kdWxlX2RvY3VtZW50c2VhcmNoIHNldCBuYW1lPT8sIGNvbnRlbnQ9PywgZG9jdW1lbnRzZWFyY2hfY2F0ZWdvcnlfaWQ9PywgbG9jYXRpb249PywgYXV0aG9yPT8sIGRvY3VtZW50X2RhdGU9PyB3aGVyZSBkb2N1bWVudHNlYXJjaF9pZCA9ID8nOw0KCQkkcmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkcGFyYW1zWyduYW1lJ10sJHBhcmFtc1snY29udGVudCddLCRwYXJhbXNbJ2NhdGVnb3J5J10sJHBhcmFtc1snbG9jYXRpb24nXSwkcGFyYW1zWydhdXRob3InXSwnOTk5OScsJHBhcmFtc1snZG9jdW1lbnRzZWFyY2hfaWQnXSkpOwoKCQkvLyBNYWtlIGNvbnRlbnQgYWNjZXNzaWJsZSB0byB0aGUgc2VhcmNoIG1vZHVsZQoJCSRzZWFyY2ggPSAkdGhpcy0+R2V0TW9kdWxlSW5zdGFuY2UoJ1NlYXJjaCcpOwoJCSRzZWFyY2hOYW1lID0gJHBhcmFtc1snbmFtZSddIC4gJHBhcmFtc1snY29udGVudCddOwoJCWlmKCAkc2VhcmNoICkgewoJCQkkc2VhcmNoLT5BZGRXb3JkcyggJHRoaXMtPkdldG5hbWUoKSwgJHBhcmFtc1snZG9jdW1lbnRzZWFyY2hfaWQnXSwgJ2RvY3VtZW50c2VhcmNoJywgJHNlYXJjaE5hbWUsIE5VTEwpOwoJCX0KCX0KCSRwYXJhbXMgPSBhcnJheSgndGFiX21lc3NhZ2UnPT4gJ3VwZGF0ZWRfcmVjb3JkJywgJ2FjdGl2ZV90YWInID0+ICdkb2N1bWVudCcpOwoJJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCwgJHBhcmFtcyk7Cg0KfSBlbHNlIHsKDQoJLy8gd2UgcmVjZWl2ZWQgbm8gZG9jdW1lbnRzZWFyY2hfaWQgb3Igb25lIHRoYXQgd2FzIC0xLCB3aGljaCBtZWFucyB3ZSdyZSBjcmVhdGluZw0KCS8vIGEgbmV3IHJlY29yZC4gU28gd2UgaXNzdWUgYSBTUUwgSW5zZXJ0LiBCdXQgZmlyc3QsIHdlIHVzZSB0aGUgc2VxdWVuY2UgdG8gZ2V0IGEgZnJlc2ggSUQKCglpZiAoICFpc3NldCgkX0ZJTEVTWyRpZCAuJ2xvY2F0aW9uZmlsZSddWyduYW1lJ10pIHx8ICRfRklMRVNbJGlkIC4nbG9jYXRpb25maWxlJ11bJ25hbWUnXSA9PSAnJyApIHsKCgkJZWNobyAkdGhpcy0+RGlzcGxheUVycm9yUGFnZSgkaWQsICYkcGFyYW1zLCAkcmV0dXJuX2lkLCAkdGhpcy0+TGFuZygndXBsb2FkZXJyb3InKSk7CgoJfSBlbHNlIHsKCgkJJHBvc3RkYXRlID0gdGltZSgpOwoJCWlmIChpc3NldCgkcGFyYW1zWydwb3N0ZGF0ZV9Nb250aCddKSkgewoJCQkkcG9zdGRhdGUgPSBta3RpbWUoJHBhcmFtc1sncG9zdGRhdGVfSG91ciddLCAkcGFyYW1zWydwb3N0ZGF0ZV9NaW51dGUnXSwgJHBhcmFtc1sncG9zdGRhdGVfU2Vjb25kJ10sICRwYXJhbXNbJ3Bvc3RkYXRlX01vbnRoJ10sICRwYXJhbXNbJ3Bvc3RkYXRlX0RheSddLCAkcGFyYW1zWydwb3N0ZGF0ZV9ZZWFyJ10pOwoJCX0KDQogICAgCSRzaWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2RvY3VtZW50c2VhcmNoX3NlcScpOwogICAgCSRkb2N1bWVudGlkID0gJHBhcmFtc1snZG9jdW1lbnRzZWFyY2hfaWQnXTsKCiAgICAJJGNvbmZpZyA9IGNtc21zKCktPkdldENvbmZpZygpOwoJCSRmaWVsZG5hbWUgPSAkaWQgLidsb2NhdGlvbmZpbGUnOwogICAgCSRtb2QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0RvY3VtZW50U2VhcmNoJyk7CiAgICAJJHAgPSBjbXNfam9pbl9wYXRoKCRjb25maWdbJ3VwbG9hZHNfcGF0aCddLCdkb2N1bWVudHNlYXJjaCcpOwogICAgCWlmICghaXNfZGlyKCRwKSkgewogICAgICAJCSRyZXMgPSBAbWtkaXIoJHApOwogICAgICAJCQlpZiggJHJlcyA9PT0gRkFMU0UgKSB7CgkJCQkJJHRoaXMtPkRpc3BsYXlFcnJvclBhZ2UoJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQsCgkJCQkgICAJCSR0aGlzLT5MYW5nKCdlcnJvcl9ta2RpcicpKTsKCSAgICAJCQlyZXR1cm4gRkFMU0U7CiAgICAgIAkJCX0KICAgIAl9CgogICAgCSRwID0gY21zX2pvaW5fcGF0aCgkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSwnZG9jdW1lbnRzZWFyY2gnLCdpZCcuJHNpZCk7CiAgICAJaWYgKCFpc19kaXIoJHApKSB7CiAgICAgIAkJaWYoIEBta2RpcigkcCkgPT09IEZBTFNFICkgewoJCQkJJHRoaXMtPkRpc3BsYXlFcnJvclBhZ2UoJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQsCgkJCQkgICAJJHRoaXMtPkxhbmcoJ2Vycm9yX21rZGlyJykpOwoJICAgIAkJcmV0dXJuIEZBTFNFOwogICAgICAJCX0KICAgIAl9CgogICAgCSRmaWxlbmFtZSA9IGJhc2VuYW1lKCRfRklMRVNbJGZpZWxkbmFtZV1bJ25hbWUnXSk7CiAgICAJJGRlc3QgPSBjbXNfam9pbl9wYXRoKCRjb25maWdbJ3VwbG9hZHNfcGF0aCddLCdkb2N1bWVudHNlYXJjaCcsJ2lkJy4kc2lkLCRmaWxlbmFtZSk7CiAgICAJJHBhcmFtc1snbG9jYXRpb24nXSA9ICRmaWxlbmFtZTsKCiAgICAJLy8gR2V0IHRoZSBmaWxlcyBleHRlbnNpb24KICAgIAkkZXh0ID0gc3Vic3RyKHN0cnJjaHIoJGZpbGVuYW1lLCAnLicpLCAxKTsKCiAgICAJLy8gY29tcGFyZSBpdCBhZ2FpbnN0IHRoZSAnYWxsb3dlZCBleHRlbnRpb25zJwogICAgCSRleHRzID0gZXhwbG9kZSgnLCcsJG1vZC0+R2V0UHJlZmVyZW5jZSgnYWxsb3dlZF91cGxvYWRfdHlwZXMnLCcnKSk7CiAgICAJaWYoICFpbl9hcnJheSggJGV4dCwgJGV4dHMgKSApIHsKCQkJJHRoaXMtPkRpc3BsYXlFcnJvclBhZ2UoJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQsCgkJCQkkdGhpcy0+TGFuZygnZXJyb3JfaW52YWxpZGZpbGV0eXBlJykpOwoJCQlyZXR1cm4gRkFMU0U7CiAgICAgIAl9CgogICAgCWlmKCBAY21zX21vdmVfdXBsb2FkZWRfZmlsZSgkX0ZJTEVTWyRmaWVsZG5hbWVdWyd0bXBfbmFtZSddLCAkZGVzdCkgPT09IEZBTFNFICkgewoJCQkkdGhpcy0+RGlzcGxheUVycm9yUGFnZSgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCwKCQkJCSR0aGlzLT5MYW5nKCdlcnJvcl9tb3ZlZmlsZScpKTsKCQkJcmV0dXJuIEZBTFNFOwogICAgICAJfQogICAgICAgIGlmICgkZXh0ID09ICdwZGYnKSB7CgkJCSRvYmplY3QgPSBuZXcgVENoZXN0ZXJfUGRmMlRleHQoJGRlc3QpOwoJCQkkcGRmQ29udGVudCA9ICRvYmplY3QtPmdldENvbnRlbnRzKCk7CgkJCSRwYXJhbXNbJ2NvbnRlbnQnXSA9IGljb252KCdJU08tODg1OS0xJywgJ1VURi04Ly9UUkFOU0xJVCcsICRwZGZDb250ZW50KTsKCQl9IGVsc2VpZiAoJGV4dCA9PSAnZG9jeCcpIHsKCQkJZnVuY3Rpb24gZG9jeDJ0ZXh0KCRmaWxlbmFtZWRvY3gpIHsKICAgIAkJCXJldHVybiByZWFkWmlwcGVkWE1MKCRmaWxlbmFtZWRvY3gsICJ3b3JkL2RvY3VtZW50LnhtbCIpOwoJCQl9CgkJCWZ1bmN0aW9uIHJlYWRaaXBwZWRYTUwoJGFyY2hpdmVGaWxlLCAkZGF0YUZpbGUpIHsKICAgIAkJCS8vIENyZWF0ZSBuZXcgWklQIGFyY2hpdmUKICAgIAkJCSR6aXAgPSBuZXcgWmlwQXJjaGl2ZTsKCiAgICAJCQkvLyBPcGVuIHJlY2VpdmVkIGFyY2hpdmUgZmlsZQogICAgCQkJaWYgKHRydWUgPT09ICR6aXAtPm9wZW4oJGFyY2hpdmVGaWxlKSkgewogICAgICAgIAkJCS8vIElmIGRvbmUsIHNlYXJjaCBmb3IgdGhlIGRhdGEgZmlsZSBpbiB0aGUgYXJjaGl2ZQogICAgICAgIAkJCWlmICgoJGluZGV4ID0gJHppcC0+bG9jYXRlTmFtZSgkZGF0YUZpbGUpKSAhPT0gZmFsc2UpIHsKICAgICAgICAgICAgCQkJLy8gSWYgZm91bmQsIHJlYWQgaXQgdG8gdGhlIHN0cmluZwogICAgICAgICAgICAJCQkkZGF0YSA9ICR6aXAtPmdldEZyb21JbmRleCgkaW5kZXgpOwogICAgICAgICAgICAJCQkvLyBDbG9zZSBhcmNoaXZlIGZpbGUKICAgICAgICAgICAgCQkJJHppcC0+Y2xvc2UoKTsKICAgICAgICAgICAgCQkJLy8gTG9hZCBYTUwgZnJvbSBhIHN0cmluZwogICAgICAgICAgICAJCQkvLyBTa2lwIGVycm9ycyBhbmQgd2FybmluZ3MKICAgICAgICAgICAgCQkJJHhtbCA9IERPTURvY3VtZW50Ojpsb2FkWE1MKCRkYXRhLCBMSUJYTUxfTk9FTlQgfCBMSUJYTUxfWElOQ0xVREUgfCBMSUJYTUxfTk9FUlJPUiB8IExJQlhNTF9OT1dBUk5JTkcpOwogICAgICAgICAgICAJCQkvLyBSZXR1cm4gZGF0YSB3aXRob3V0IFhNTCBmb3JtYXR0aW5nIHRhZ3MKICAgICAgICAgICAgCQkJcmV0dXJuIHN0cmlwX3RhZ3MoJHhtbC0+c2F2ZVhNTCgpKTsKICAgICAgICAJCQl9CiAgICAgICAgCQkJJHppcC0+Y2xvc2UoKTsKICAgIAkJCX0KICAgIAkJCS8vIEluIGNhc2Ugb2YgZmFpbHVyZSByZXR1cm4gZW1wdHkgc3RyaW5nCiAgICAJCQlyZXR1cm4gIiI7CgkJCX0KCQkJJHBhcmFtc1snY29udGVudCddID0gZG9jeDJ0ZXh0KCRkZXN0KTsKCQl9IGVsc2VpZiAoJGV4dCA9PSAnZG9jJykgewoJCQlmdW5jdGlvbiBwYXJzZVdvcmQoJHVzZXJEb2MpIHsKCQkJCSRmaWxlSGFuZGxlID0gZm9wZW4oJHVzZXJEb2MsICJyIik7CgkJCQkkbGluZSA9IEBmcmVhZCgkZmlsZUhhbmRsZSwgZmlsZXNpemUoJHVzZXJEb2MpKTsgICAKCQkJCSRsaW5lcyA9IGV4cGxvZGUoY2hyKDB4MEQpLCRsaW5lKTsKCQkJCSRvdXR0ZXh0ID0gIiI7CgkJCQlmb3JlYWNoKCRsaW5lcyBhcyAkdGhpc2xpbmUpIHsKCQkJCQkkcG9zID0gc3RycG9zKCR0aGlzbGluZSwgY2hyKDB4MDApKTsKCQkJCQlpZiAoKCRwb3MgIT09IEZBTFNFKXx8KHN0cmxlbigkdGhpc2xpbmUpPT0wKSkgewoJCQkJCX0gZWxzZSB7CgkJCQkJCSRvdXR0ZXh0IC49ICR0aGlzbGluZS4iICI7CgkJCQkJfQoJCQkJfQoJCQkJJG91dHRleHQgPSBwcmVnX3JlcGxhY2UoIi9bXmEtekEtWjAtOVxzXCxcLlwtXG5cclx0QFwvXF9cKFwpXS8iLCIiLCRvdXR0ZXh0KTsKCQkJCXJldHVybiAkb3V0dGV4dDsKCQkJfSAKCQkJJHBhcmFtc1snY29udGVudCddID0gcGFyc2VXb3JkKCRkZXN0KTsKCQl9IGVsc2VpZiAoJGV4dCA9PSAncnRmJykgewoJCQlmdW5jdGlvbiBwYXJzZVdvcmQoJHVzZXJEb2MpIHsKCQkJCSRmaWxlSGFuZGxlID0gZm9wZW4oJHVzZXJEb2MsICJyIik7CgkJCQkkbGluZSA9IEBmcmVhZCgkZmlsZUhhbmRsZSwgZmlsZXNpemUoJHVzZXJEb2MpKTsgICAKCQkJCSRsaW5lcyA9IGV4cGxvZGUoY2hyKDB4MEQpLCRsaW5lKTsKCQkJCSRvdXR0ZXh0ID0gIiI7CgkJCQlmb3JlYWNoKCRsaW5lcyBhcyAkdGhpc2xpbmUpIHsKCQkJCQkkcG9zID0gc3RycG9zKCR0aGlzbGluZSwgY2hyKDB4MDApKTsKCQkJCQlpZiAoKCRwb3MgIT09IEZBTFNFKXx8KHN0cmxlbigkdGhpc2xpbmUpPT0wKSkgewoJCQkJCX0gZWxzZSB7CgkJCQkJCSRvdXR0ZXh0IC49ICR0aGlzbGluZS4iICI7CgkJCQkJfQoJCQkJfQoJCQkJJG91dHRleHQgPSBwcmVnX3JlcGxhY2UoIi9bXmEtekEtWjAtOVxzXCxcLlwtXG5cclx0QFwvXF9cKFwpXS8iLCIiLCRvdXR0ZXh0KTsKCQkJCXJldHVybiAkb3V0dGV4dDsKCQkJfSAKCQkJJHBhcmFtc1snY29udGVudCddID0gcGFyc2VXb3JkKCRkZXN0KTsKCQl9IGVsc2VpZiAoJGV4dCA9PSAndHh0JykgewoJCQkkcGFyYW1zWydjb250ZW50J10gPSBmaWxlX2dldF9jb250ZW50cygkZGVzdCk7CgkJfQoJCQoJCWlmICgkcGFyYW1zWyduYW1lJ10gPT0gJycpIHsKCQkJJHRtcG5hbWUgPSAkcGFyYW1zWydsb2NhdGlvbiddOwoJCQkkdG1wZXh0ID0gJy4nIC4gJGV4dDsKCQkJJGNsZWFubmFtZSA9IHN0cl9yZXBsYWNlKCdfJywgIiAiLCAkdG1wbmFtZSk7CgkJCSRjbGVhbm5hbWUgPSBzdHJfcmVwbGFjZSgkdG1wZXh0LCAiIiwgJGNsZWFubmFtZSk7CgkJCSRwYXJhbXNbJ25hbWUnXSA9ICRjbGVhbm5hbWU7CgkJfQoNCgkJJHF1ZXJ5ID0gJ0lOU0VSVCBJTlRPICcuY21zX2RiX3ByZWZpeCgpLg0KICAgIAkJJ21vZHVsZV9kb2N1bWVudHNlYXJjaCAoZG9jdW1lbnRzZWFyY2hfaWQsIG5hbWUsIGNvbnRlbnQsIGRvY3VtZW50c2VhcmNoX2NhdGVnb3J5X2lkLCBsb2NhdGlvbiwgYXV0aG9yLCBkb2N1bWVudF9kYXRlKSBWQUxVRVMgKD8sPyw/LD8sPyw/LD8pJzsNCgkJJHJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJHNpZCwkcGFyYW1zWyduYW1lJ10sJHBhcmFtc1snY29udGVudCddLCRwYXJhbXNbJ2NhdGVnb3J5J10sJHBhcmFtc1snbG9jYXRpb24nXSwkcGFyYW1zWydhdXRob3InXSx0cmltKCRkYi0+REJUaW1lU3RhbXAoJHBvc3RkYXRlKSwgIiciKSkpOwoKCQkvLyBNYWtlIGNvbnRlbnQgYWNjZXNzaWJsZSB0byB0aGUgc2VhcmNoIG1vZHVsZQoJCSRzZWFyY2ggPSAkdGhpcy0+R2V0TW9kdWxlSW5zdGFuY2UoJ1NlYXJjaCcpOwoJCSRzZWFyY2hOYW1lID0gJHBhcmFtc1snbmFtZSddIC4gJHBhcmFtc1snY29udGVudCddOwoJCWlmKCAkc2VhcmNoICkgewoJCQkkc2VhcmNoLT5BZGRXb3JkcyggJHRoaXMtPkdldG5hbWUoKSwgJHNpZCwgJ2RvY3VtZW50c2VhcmNoJywgJHNlYXJjaE5hbWUsIE5VTEwpOwoJCX0KCQkkcGFyYW1zID0gYXJyYXkoJ3RhYl9tZXNzYWdlJz0+ICdhZGRlZF9yZWNvcmQnLCAnYWN0aXZlX3RhYicgPT4gJ2RvY3VtZW50Jyk7CgkJJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCwgJHBhcmFtcyk7Cgl9DQp9DQoNCmlmICgkcmVzdWx0ID09PSBmYWxzZSkgew0KCS8vIHllYWgsIHRoYXQncyBncmFjZWZ1bCA6KA0KCWVjaG8gIkRhdGFiYXNlIGVycm9yISI7DQoJZXhpdDsNCn0KDQp1bnNldCgkcGFyYW1zWydkb2N1bWVudHNlYXJjaF9pZCddKTsNCj8+]]></data>
	</file>
	<file>
	  <filename>/DocumentSearch.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IERvY3VtZW50U2VhcmNoIChjKSAyMDEzIGJ5IE9saXZlciBTZWRkb24gCiMgICAgICAgICAob2xpdmVyQHRocmVlZm9sZC5jby51aykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gcHJvdmlkZSBQREYgYW5kIFdvcmQgZG9jdW1lbnQKIyAgY29udGVudCBzZWFyY2hhYmlsaXR5LgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKY2xhc3MgRG9jdW1lbnRTZWFyY2ggZXh0ZW5kcyBDTVNNb2R1bGUKewoKICBmdW5jdGlvbiBHZXROYW1lKCkKICB7CiAgICByZXR1cm4gJ0RvY3VtZW50U2VhcmNoJzsKICB9CgogIGZ1bmN0aW9uIEdldEZyaWVuZGx5TmFtZSgpCiAgewogICAgcmV0dXJuICR0aGlzLT5MYW5nKCdmcmllbmRseW5hbWUnKTsKICB9CgogIGZ1bmN0aW9uIEdldFZlcnNpb24oKQogIHsKICAgIHJldHVybiAnMS40LjQnOwogIH0KCiAgZnVuY3Rpb24gR2V0SGVscCgpCiAgewogICAgcmV0dXJuICR0aGlzLT5MYW5nKCdoZWxwJyk7CiAgfQoKICBmdW5jdGlvbiBHZXRBdXRob3IoKQogIHsKICAgIHJldHVybiAnb2xpdmVyc2VkZG9uJzsKICB9CgogIGZ1bmN0aW9uIEdldEF1dGhvckVtYWlsKCkKICB7CiAgICByZXR1cm4gJ29saXZlckB0aHJlZWZvbGQuY28udWsnOwogIH0KCiAgZnVuY3Rpb24gR2V0Q2hhbmdlTG9nKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ2NoYW5nZWxvZycpOwogIH0KCiAgZnVuY3Rpb24gSXNQbHVnaW5Nb2R1bGUoKQogIHsKICAgIHJldHVybiB0cnVlOwogIH0KCiAgZnVuY3Rpb24gSGFzQWRtaW4oKQogIHsKICAgIHJldHVybiB0cnVlOwogIH0KCiAgZnVuY3Rpb24gR2V0QWRtaW5TZWN0aW9uKCkKICB7CiAgICByZXR1cm4gJ2NvbnRlbnQnOwogIH0KCiAgZnVuY3Rpb24gR2V0QWRtaW5EZXNjcmlwdGlvbigpCiAgewogICAgcmV0dXJuICR0aGlzLT5MYW5nKCdtb2RkZXNjcmlwdGlvbicpOwogIH0KCiAgZnVuY3Rpb24gVmlzaWJsZVRvQWRtaW5Vc2VyKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPkNoZWNrUGVybWlzc2lvbignVXNlIERvY3VtZW50IFNlYXJjaCcpOwogIH0KCiAgZnVuY3Rpb24gR2V0RGFzaGJvYXJkT3V0cHV0KCkgCiAgewoJJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKCgkkcmNvdW50ID0gJGRiLT5HZXRPbmUoJ3NlbGVjdCBjb3VudCgqKSBmcm9tICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZG9jdW1lbnRzZWFyY2gnKTsKCQogICAgcmV0dXJuICR0aGlzLT5MYW5nKCdkYXNoX3JlY29yZF9jb3VudCcsJHJjb3VudCk7CiAgfQoKICBmdW5jdGlvbiBEaXNwbGF5RXJyb3JQYWdlKCRpZCwgJiRwYXJhbXMsICRyZXR1cm5faWQsICRtZXNzYWdlPScnKQogICAgewoJCSR0aGlzLT5zbWFydHktPmFzc2lnbigndGl0bGVfZXJyb3InLCAkdGhpcy0+TGFuZygnZXJyb3InKSk7CgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduX2J5X3JlZignbWVzc2FnZScsICRtZXNzYWdlKTsKCiAgICAgICAgLy8gRGlzcGxheSB0aGUgcG9wdWxhdGVkIHRlbXBsYXRlCiAgICAgICAgZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdlcnJvci50cGwnKTsKICAgIH0KCiAgZnVuY3Rpb24gR2V0RGVwZW5kZW5jaWVzKCkKICB7CiAgICByZXR1cm4gYXJyYXkoKTsKICB9CgogIGZ1bmN0aW9uIE1pbmltdW1DTVNWZXJzaW9uKCkKICB7CiAgICByZXR1cm4gIjEuMTEiOwogIH0KCiAgZnVuY3Rpb24gTWF4aW11bUNNU1ZlcnNpb24oKQogIHsKICAgIHJldHVybiAiMS4xNSI7CiAgfQoKICBmdW5jdGlvbiBJbml0aWFsaXplQWRtaW4oKQoJewoJICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdjYXRlZ29yeScsICdHZW5lcmFsJywgJHRoaXMtPkxhbmcoJ2hlbHBfY2F0ZWdvcnknKSk7CgkgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ3NvcnRieScsICdkYXRlJywgJHRoaXMtPkxhbmcoJ2hlbHBfc29ydGJ5JykpOwoJICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdzb3J0ZGVzYycsICd0cnVlJywgJHRoaXMtPkxhbmcoJ2hlbHBfc29ydGRlc2MnKSk7Cgl9CgogIGZ1bmN0aW9uIEluaXRpYWxpemVGcm9udGVuZCgpCiAgewogICR0aGlzLT5SZWdpc3Rlck1vZHVsZVBsdWdpbigpOwogICAKCSR0aGlzLT5SZWdpc3RlclJvdXRlKCcvZG9jdW1lbnRzZWFyY2hcL3ZpZXdcLyg/UDxkb2N1bWVudHNlYXJjaF9pZD5bMC05XSspXC8oP1A8cmV0dXJuaWQ+WzAtOV0rKSQvJyxhcnJheSgnYWN0aW9uJz0+J2RlZmF1bHQnKSk7ICAKCQoJJGdDbXMgPSBjbXNtcygpOwoJJGNvbnRlbnRvcHMgPSAkZ0Ntcy0+R2V0Q29udGVudE9wZXJhdGlvbnMoKTsKCSRyZXR1cm5pZCA9ICRjb250ZW50b3BzLT5HZXREZWZhdWx0Q29udGVudCgpOwoJLy8gVGhlIHByZXZpb3VzIHRocmVlIGxpbmVzIGFyZSB0byBnZXQgYSByZXR1cm5pZDsgbWFueSBtb2R1bGVzLCBsaWtlIE5ld3MsIGhhdmUgYSBkZWZhdWx0CgkvLyBwYWdlIGluIHdoaWNoIHRvIGRpc3BsYXkgZGV0YWlsIHZpZXdzLiBJbiB0aGF0IGNhc2UsIHRoZSBwYWdlX2lkIHdvdWxkIGJlIHVzZWQgZm9yIHJldHVybmlkLgoJCgkvLyBUaGUgbmV4dCB0aHJlZSBsaW5lcyBhcmUgd2hlcmUgd2UgbWFwIHRoZSBVUkwgdG8gb3VyIGRldGFpbCBwYWdlLgoJJHBhcm1zID0gYXJyYXkoJ2FjdGlvbic9PidkZWZhdWx0JywnZG9jdW1lbnRzZWFyY2hfaWQnPT4xLCdyZXR1cm5pZCc9PiRyZXR1cm5pZCk7Cgkkcm91dGUgPSBuZXcgQ21zUm91dGUoJ3RoaXMvaXMvaW5zYW5lbHkvZ3JlYXQvc3R1ZmYnLCR0aGlzLT5HZXROYW1lKCksJHBhcm1zLFRSVUUpOwoJY21zX3JvdXRlX21hbmFnZXI6OnJlZ2lzdGVyKCRyb3V0ZSk7CgkKICAKICAgLy8gRG9uJ3QgYWxsb3cgcGFyYW1ldGVycyBvdGhlciB0aGFuIHRoZSBvbmVzIHlvdSd2ZSBleHBsaWNpdGx5IGRlZmluZWQKICAgJHRoaXMtPlJlc3RyaWN0VW5rbm93blBhcmFtcygpOwogIAogICAvLyBzeW50YXggZm9yIGNyZWF0aW5nIGEgcGFyYW1ldGVyIGlzIHBhcmFtZXRlciBuYW1lLCBkZWZhdWx0IHZhbHVlLCBkZXNjcmlwdGlvbgogICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdkb2N1bWVudHNlYXJjaF9pZCcsIC0xLCAkdGhpcy0+TGFuZygnaGVscF9kb2N1bWVudHNlYXJjaF9pZCcpKTsKCiAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdkb2N1bWVudHNlYXJjaF9pZCcsQ0xFQU5fSU5UKTsKCiAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ21vZHVsZV9tZXNzYWdlJywnJywkdGhpcy0+TGFuZygnaGVscF9tb2R1bGVfbWVzc2FnZScpKTsKICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ21vZHVsZV9tZXNzYWdlJyxDTEVBTl9TVFJJTkcpOwoKICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignbmFtZScsJycsJHRoaXMtPkxhbmcoJ2hlbHBfZGVzY3JpcHRpb24nKSk7CiAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCduYW1lJyxDTEVBTl9TVFJJTkcpOwoKICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignY29udGVudCcsJycsJHRoaXMtPkxhbmcoJ2hlbHBfZXhwbGFuYXRpb24nKSk7CiAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdjb250ZW50JyxDTEVBTl9TVFJJTkcpOwoKICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignbG9jYXRpb24nLCcnLCR0aGlzLT5MYW5nKCdoZWxwX2V4cGxhbmF0aW9uJykpOwogICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnbG9jYXRpb24nLENMRUFOX1NUUklORyk7CgogICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdhdXRob3InLCcnLCR0aGlzLT5MYW5nKCdoZWxwX2F1dGhvcicpKTsKICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2F1dGhvcicsQ0xFQU5fU1RSSU5HKTsKCiAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdjYW5jZWwnLENMRUFOX1NUUklORyk7CiAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdleHRlbnNpb24nLENMRUFOX1NUUklORyk7CiAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdpY29ucGF0aCcsQ0xFQU5fU1RSSU5HKTsKCiAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2NhdGVnb3J5JywgJ0dlbmVyYWwnLCAkdGhpcy0+bGFuZygnaGVscGNhdGVnb3J5dGV4dCcpKTsKICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2NhdGVnb3J5JyxDTEVBTl9TVFJJTkcpOwoKICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignc29ydGJ5JywgJ2RvY3VtZW50X2RhdGUnLCAkdGhpcy0+bGFuZygnaGVscHNvcnRieScpKTsKICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3NvcnRieScsQ0xFQU5fU1RSSU5HKTsKCiAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ3NvcnRkZXNjJywgJ3RydWUnLCAkdGhpcy0+bGFuZygnaGVscHNvcnRkZXNjJykpOwogICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnc29ydGRlc2MnLENMRUFOX1NUUklORyk7CgogICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgncG9zdGRhdGUnLENMRUFOX1NUUklORyk7CiAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdwb3N0ZGF0ZV9Ib3VyJyxDTEVBTl9TVFJJTkcpOwogICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgncG9zdGRhdGVfTWludXRlJyxDTEVBTl9TVFJJTkcpOwogICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgncG9zdGRhdGVfU2Vjb25kJyxDTEVBTl9TVFJJTkcpOwogICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgncG9zdGRhdGVfTW9udGgnLENMRUFOX1NUUklORyk7CiAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdwb3N0ZGF0ZV9EYXknLENMRUFOX1NUUklORyk7CiAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdwb3N0ZGF0ZV9ZZWFyJyxDTEVBTl9TVFJJTkcpOwoKICAKICB9CgogIGZ1bmN0aW9uIEdldEV2ZW50RGVzY3JpcHRpb24gKCAkZXZlbnRuYW1lICkKICB7CiAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ2V2ZW50X2luZm9fJy4kZXZlbnRuYW1lICk7CiAgfQoKICBmdW5jdGlvbiBHZXRFdmVudEhlbHAgKCAkZXZlbnRuYW1lICkKICB7CiAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ2V2ZW50X2hlbHBfJy4kZXZlbnRuYW1lICk7CiAgfQoKICBmdW5jdGlvbiBJbnN0YWxsUG9zdE1lc3NhZ2UoKQogIHsKICAgIHJldHVybiAkdGhpcy0+TGFuZygncG9zdGluc3RhbGwnKTsKICB9CgogIGZ1bmN0aW9uIFVuaW5zdGFsbFBvc3RNZXNzYWdlKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ3Bvc3R1bmluc3RhbGwnKTsKICB9CgogIGZ1bmN0aW9uIFVuaW5zdGFsbFByZU1lc3NhZ2UoKQogIHsKICAgIHJldHVybiAkdGhpcy0+TGFuZygncmVhbGx5X3VuaW5zdGFsbCcpOwogIH0KCgoJZnVuY3Rpb24gU2VhcmNoUmVzdWx0KCRyZXR1cm5pZCwgJGFydGljbGVpZCwgJGF0dHIgPSAnJykgewoJCSRkb2N1bWVudGlkID0gJHBhcmFtc1snZG9jdW1lbnRzZWFyY2hfaWQnXTsNCgkJaWYgKCFlbXB0eSgkZG9jdW1lbnRpZCkpICRyZXR1cm5pZCA9ICRkb2N1bWVudGlkOw0KCQkkcmVzdWx0ID0gYXJyYXkoKTsNCgkJaWYgKCRhdHRyID09ICdkb2N1bWVudHNlYXJjaCcpIHsNCgkJCSRkYiAgPSBjbXNtcygpLT5HZXREYigpOw0KCQkJJHEgPSAnU0VMRUNUICogRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9kb2N1bWVudHNlYXJjaCBXSEVSRSBkb2N1bWVudHNlYXJjaF9pZCA9ID8nOw0KCQkJJHJvdyA9ICRkYi0+R2V0Um93KCRxLCBhcnJheSgkYXJ0aWNsZWlkKSApOw0KCQkJaWYgKCRyb3cpIHsNCgkJCQkkcmVzdWx0WzBdID0gdXRmOF9lbmNvZGUoaHRtbF9lbnRpdHlfZGVjb2RlKCR0aGlzLT5HZXRGcmllbmRseU5hbWUoKSkpOw0KCQkJCSRyZXN1bHRbMV0gPSAkcm93WyduYW1lJ107CgkJCQkkcHJldHR5dXJsID0gJ3VwbG9hZHMvZG9jdW1lbnRzZWFyY2gvaWQnLiRyb3dbJ2RvY3VtZW50c2VhcmNoX2lkJ10uJy8nLiRyb3dbJ2xvY2F0aW9uJ107CgkJCQkkcmVzdWx0WzJdID0gJHRoaXMtPkNyZWF0ZUxpbmsoJ2NudG50MDEnLCAnZGVmYXVsdCcsICRyZXR1cm5pZCwgJHJvd1snbmFtZSddLCANCgkJCQkgICAgICAgYXJyYXkoJ2RvY3VtZW50c2VhcmNoX2lkJyA9PiAkcm93Wydkb2N1bWVudHNlYXJjaF9pZCddKSwNCgkJCQkgICAgICAgJycsIHRydWUsIHRydWUsICcnLCB0cnVlLCAkcHJldHR5dXJsKTsNCgkJCX0NCgkJfQ0KCQlyZXR1cm4gJHJlc3VsdDsNCgl9CgoKCWZ1bmN0aW9uIFNlYXJjaFJlaW5kZXgoJiRtb2R1bGUpIHsKCQkkZGIgPSBjbXNtcygpLT5HZXREYigpOwoKCQkkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2RvY3VtZW50c2VhcmNoIE9SREVSIEJZIGRvY3VtZW50c2VhcmNoX2lkJzsKCQkkcmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSk7CgoJCXdoaWxlICgkcmVzdWx0ICYmICEkcmVzdWx0LT5FT0YpIHsKCQkJJG1vZHVsZS0+QWRkV29yZHMoJHRoaXMtPkdldG5hbWUoKSwgJHJlc3VsdC0+ZmllbGRzWydkb2N1bWVudHNlYXJjaF9pZCddLCAnZG9jdW1lbnRzZWFyY2gnLCAkcmVzdWx0LT5maWVsZHNbJ2NvbnRlbnQnXSwgTlVMTCk7CgkJCSRyZXN1bHQtPk1vdmVOZXh0KCk7CgkJfQoJfQoKCXB1YmxpYyBmdW5jdGlvbiBEb0FjdGlvbiAoJGFjdGlvbiwgJGlkLCAkcGFyYW1zLCAkcmV0dXJuX2lkID0gLTEpIHsKCQlzd2l0Y2ggKCRhY3Rpb24pIHsJCgkJCWNhc2UgJ3VwZGF0ZXRlbXBsYXRlJzogewoJCQkJLy8gY2hlY2sgcGVybWlzc2lvbnMgYWdhaW4KCQkJCWlmICgkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uICgnTW9kaWZ5IFRlbXBsYXRlcycpKSB7CgkJCQkJaWYgKGlzc2V0ICgkcGFyYW1zWydkZWZhdWx0YnV0dG9uJ10pKSB7CgkJCQkJCSRmbiA9IGRpcm5hbWUoX19GSUxFX18pLicvdGVtcGxhdGVzL2RvY3VtZW50c2VhcmNoX2xpc3QudHBsJzsKCQkJCQkJaWYoIGZpbGVfZXhpc3RzKCRmbikgKSB7CgkJCQkJCQkkdGVtcGxhdGUgPSBAZmlsZV9nZXRfY29udGVudHMoJGZuKTsKCQkJCQkJCSR0aGlzLT5TZXRUZW1wbGF0ZSggJ2RldGFpbFNhbXBsZScsICR0ZW1wbGF0ZSk7CgkJCQkJCX0KCQkJCQl9IGVsc2UgewoJCQkJCQkkdGhpcy0+U2V0VGVtcGxhdGUgKCdkZXRhaWxTYW1wbGUnLCAkcGFyYW1zWyd0ZW1wbGF0ZWNvbnRlbnQnXSk7CgkJCQkJfQoJICAJCQkJJHBhcmFtcyA9IGFycmF5KCd0YWJfbWVzc2FnZSc9PiAndGVtcGxhdGV1cGRhdGVkJywgJ2FjdGl2ZV90YWInID0+ICd0ZW1wbGF0ZXMnKTsKCSAgCQkJCSR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAkcmV0dXJuaWQsICRwYXJhbXMpOwoJCQkJfQoJCQl9CgoJCQlkZWZhdWx0OgoJCQkJcGFyZW50OjpEb0FjdGlvbiggJGFjdGlvbiwgJGlkLCAkcGFyYW1zLCAkcmV0dXJuX2lkICk7CgkJCQlicmVhazsKCQl9Cgl9CgoKCgp9IC8vZW5kIGNsYXNzCj8+]]></data>
	</file>
	<file>
	  <filename>/function.admin_categoriestab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IERvY3VtZW50U2VhcmNoIChjKSAyMDEzIGJ5IE9saXZlciBTZWRkb24gCiMgICAgICAgICAob2xpdmVyQHRocmVlZm9sZC5jby51aykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gcHJvdmlkZSBQREYgYW5kIFdvcmQgZG9jdW1lbnQKIyAgY29udGVudCBzZWFyY2hhYmlsaXR5LgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CmlmKCAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbignVXNlIERvY3VtZW50IFNlYXJjaCcpICkgcmV0dXJuOwoJCgkjUHV0IHRvZ2V0aGVyIGEgbGlzdCBvZiBjdXJyZW50IGNhdGVnb3JpZXMuLi4KCSRlbnRyeWFycmF5ID0gYXJyYXkoKTsKCQoJJHF1ZXJ5ID0gIlNFTEVDVCAqIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9kb2N1bWVudHNlYXJjaF9jYXRlZ29yaWVzIE9SREVSIEJZIGhpZXJhcmNoeSI7CgkkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsKCQoJJHJvd2NsYXNzID0gJ3JvdzEnOwoJCgl3aGlsZSAoJGRicmVzdWx0ICYmICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpCgl7CgkJJG9uZXJvdyA9IG5ldyBzdGRDbGFzcygpOwoJCgkJJGRlcHRoID0gY291bnQocHJlZ19zcGxpdCgnL1wuLycsICRyb3dbJ2hpZXJhcmNoeSddKSk7CgkKCQkkb25lcm93LT5pZCA9ICRyb3dbJ2RvY3VtZW50c2VhcmNoX2NhdGVnb3J5X2lkJ107CgkJJG9uZXJvdy0+bmFtZSA9IHN0cl9yZXBlYXQoJyZuYnNwOyZndDsmbmJzcDsnLCAkZGVwdGgtMSkuJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnZWRpdGNhdGVnb3J5JywgJHJldHVybmlkLCAkcm93Wydkb2N1bWVudHNlYXJjaF9jYXRlZ29yeV9uYW1lJ10sIGFycmF5KCdjYXRpZCc9PiRyb3dbJ2RvY3VtZW50c2VhcmNoX2NhdGVnb3J5X2lkJ10pKTsKCQoJCSRvbmVyb3ctPmVkaXRsaW5rID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnZWRpdGNhdGVnb3J5JywgJHJldHVybmlkLCAkZ0Ntcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2VkaXQuZ2lmJywgJHRoaXMtPkxhbmcoJ2VkaXQnKSwnJywnJywnc3lzdGVtaWNvbicpLCBhcnJheSgnY2F0aWQnPT4kcm93Wydkb2N1bWVudHNlYXJjaF9jYXRlZ29yeV9pZCddKSk7CgkJJG9uZXJvdy0+ZGVsZXRlbGluayA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2RlbGV0ZWNhdGVnb3J5JywgJHJldHVybmlkLCAkZ0Ntcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2RlbGV0ZS5naWYnLCAkdGhpcy0+TGFuZygnZGVsZXRlJyksJycsJycsJ3N5c3RlbWljb24nKSwgYXJyYXkoJ2NhdGlkJz0+JHJvd1snZG9jdW1lbnRzZWFyY2hfY2F0ZWdvcnlfaWQnXSksICR0aGlzLT5MYW5nKCdhcmV5b3VzdXJlJykpOwoJCgkJJG9uZXJvdy0+cm93Y2xhc3MgPSAkcm93Y2xhc3M7CgoJCSRlbnRyeWFycmF5W10gPSAkb25lcm93OwoJCgkJKCRyb3djbGFzcz09InJvdzEiPyRyb3djbGFzcz0icm93MiI6JHJvd2NsYXNzPSJyb3cxIik7Cgl9CgkKCSRzbWFydHktPmFzc2lnbl9ieV9yZWYoJ2l0ZW1zJywgJGVudHJ5YXJyYXkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpdGVtY291bnQnLCBjb3VudCgkZW50cnlhcnJheSkpOwoJCgkjU2V0dXAgbGlua3MKCSRzbWFydHktPmFzc2lnbignYWRkbGluaycsICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2FkZGNhdGVnb3J5JywgJHJldHVybmlkLCAkdGhpcy0+TGFuZygnYWRkY2F0ZWdvcnknKSwgYXJyYXkoKSwgJycsIGZhbHNlLCBmYWxzZSwgJ2NsYXNzPSJwYWdlb3B0aW9ucyInKSk7Cgkkc21hcnR5LT5hc3NpZ24oJ2FkZGxpbmsnLCAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdhZGRjYXRlZ29yeScsICRyZXR1cm5pZCwgJGdDbXMtPnZhcmlhYmxlc1snYWRtaW50aGVtZSddLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9uZXdmb2xkZXIuZ2lmJywgJHRoaXMtPkxhbmcoJ2FkZGNhdGVnb3J5JyksJycsJycsJ3N5c3RlbWljb24nKSwgYXJyYXkoKSwgJycsIGZhbHNlLCBmYWxzZSwgJycpIC4nICcuICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2FkZGNhdGVnb3J5JywgJHJldHVybmlkLCAkdGhpcy0+TGFuZygnYWRkY2F0ZWdvcnknKSwgYXJyYXkoKSwgJycsIGZhbHNlLCBmYWxzZSwgJ2NsYXNzPSJwYWdlb3B0aW9ucyInKSk7CgkKCSRzbWFydHktPmFzc2lnbignY2F0ZWdvcnl0ZXh0JywgJHRoaXMtPkxhbmcoJ2NhdGVnb3J5JykpOwoJCgkjRGlzcGxheSB0ZW1wbGF0ZQoJZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdjYXRlZ29yeWxpc3QudHBsJyk7CgkKLy8gRU9GCj8+]]></data>
	</file>
	<file>
	  <filename>/function.admin_documenttab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IERvY3VtZW50U2VhcmNoIChjKSAyMDEzIGJ5IE9saXZlciBTZWRkb24KIyAgICAgICAgIChvbGl2ZXJAdGhyZWVmb2xkLmNvLnVrKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIFBERiBhbmQgV29yZCBkb2N1bWVudAojICBjb250ZW50IHNlYXJjaGFiaWxpdHkuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7Cgokc21hcnR5LT5hc3NpZ24oJ2Zvcm1zdGFydCcsJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsJ2RlZmF1bHRhZG1pbicsJHJldHVybmlkKSk7CgppZiAoaXNzZXQoJHBhcmFtc1snc3VibWl0X21hc3NkZWxldGUnXSkgKSB7CglpZiggaXNzZXQoJHBhcmFtc1snc2VsJ10pICYmIGlzX2FycmF5KCRwYXJhbXNbJ3NlbCddKSAmJiBjb3VudCgkcGFyYW1zWydzZWwnXSkgPiAwICkgewoJCWZvcmVhY2goICRwYXJhbXNbJ3NlbCddIGFzICRkb2N1bWVudHNlYXJjaF9kb2N1bWVudF9pZCApIHsKCQkJZG9jdW1lbnRzZWFyY2hfYWRtaW5fb3BzOjpkZWxldGVfZG9jdW1lbnQoICRkb2N1bWVudHNlYXJjaF9kb2N1bWVudF9pZCApOwoJCQkkcGFyYW1zID0gYXJyYXkoJ3RhYl9tZXNzYWdlJz0+ICdkZWxldGVfbXVsdGlwbGUnLCAnYWN0aXZlX3RhYicgPT4gJ2RvY3VtZW50Jyk7CgkJCSR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAkcmV0dXJuaWQsICRwYXJhbXMpOwoJCX0KCX0KfQoKJGRiID0gJGdDbXMtPkdldERiKCk7CgokcXVlcnkgPSdTRUxFQ1QgYS5kb2N1bWVudHNlYXJjaF9pZCwgYS5uYW1lLCBjb250ZW50LCBiLmRvY3VtZW50c2VhcmNoX2NhdGVnb3J5X25hbWUgYXMgZG9jdW1lbnRzZWFyY2hfY2F0ZWdvcnlfaWQsIGxvY2F0aW9uIGZyb20gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9kb2N1bWVudHNlYXJjaCBhLCAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2RvY3VtZW50c2VhcmNoX2NhdGVnb3JpZXMgYic7CiRxdWVyeSAuPSAgJyB3aGVyZSBhLmRvY3VtZW50c2VhcmNoX2NhdGVnb3J5X2lkPWIuZG9jdW1lbnRzZWFyY2hfY2F0ZWdvcnlfaWQnOwoKaWYgKGlzc2V0KCRwYXJhbXNbJ2RvY3VtZW50c2VhcmNoX2lkJ10pKSB7CiAgIC8vICpBTFdBWVMqIHVzZSBwYXJhbWV0ZXJpemVkIHF1ZXJpZXMgd2l0aCB1c2VyLXByb3ZpZGVkIGlucHV0CiAgIC8vIHRvIHByZXZlbnQgU1FMLUluamVjdGlvbiBhdHRhY2tzIQogICAkcXVlcnkgLj0gJyBhbmQgYS5kb2N1bWVudHNlYXJjaF9pZCA9ID8nOwogICAkcmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkcGFyYW1zWydkb2N1bWVudHNlYXJjaF9pZCddKSk7CiAgICRtb2RlID0gJ2RldGFpbCc7IC8vIHdlJ3JlIHZpZXdpbmcgYSBzaW5nbGUgcmVjb3JkCn0gZWxzZSB7CiAgIC8vIHdlJ3JlIG5vdCBnZXR0aW5nIGEgc3BlY2lmaWMgcmVjb3JkLCBzbyBzaG93ICdlbSBhbGwuIFByb2JhYmx5IHNob3VsZCBwYWdpbmF0ZS4KICBpZiAoaXNzZXQoJHBhcmFtc1snY2F0ZWdvcnknXSkgJiYgKCRwYXJhbXNbJ2NhdGVnb3J5J10gPiAwKSkgewoJJHF1ZXJ5IC49ICcgYW5kIGEuZG9jdW1lbnRzZWFyY2hfY2F0ZWdvcnlfaWQgPT8nOwoJJHJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJHBhcmFtc1snY2F0ZWdvcnknXSkpOwogIH0gZWxzZSB7CgkkcGFyYW1zWydjYXRlZ29yeSddPScnOwoJJHJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnkpOwogIH0KICAkbW9kZSA9ICdzdW1tYXJ5JzsgLy8gd2UncmUgdmlld2luZyBhIGxpc3Qgb2YgcmVjb3Jkcwp9CgokY2F0ZWdvcnlsaXN0ID0gYXJyYXkoKTsKJHF1ZXJ5ID0gIlNFTEVDVCAqIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9kb2N1bWVudHNlYXJjaF9jYXRlZ29yaWVzIE9SREVSIEJZIGhpZXJhcmNoeSI7CiRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnkpOwoKd2hpbGUgKCRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKSB7CgkkY2F0ZWdvcnlsaXN0WyRyb3dbJ2RvY3VtZW50c2VhcmNoX2NhdGVnb3J5X25hbWUnXV0gPSAkcm93Wydkb2N1bWVudHNlYXJjaF9jYXRlZ29yeV9pZCddOwp9CgokdXNlZGNhdGVnb3J5ID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2RlZmF1bHRfY2F0ZWdvcnknLCAnJyk7CmlmIChpc3NldCgkY2F0ZWdvcnkpKQl7CgkkdXNlZGNhdGVnb3J5ID0gJGNhdGVnb3J5Owp9Cgokb25jaGFuZ2V0ZXh0PSdpZD0iY2F0ZWdvcnkiJzsKCiRyb3djbGFzcyA9ICdyb3cxJzsKCiRyZWNvcmRzID0gYXJyYXkoKTsKd2hpbGUgKCRyZXN1bHQgIT09IGZhbHNlICYmICRyb3c9JHJlc3VsdC0+RmV0Y2hSb3coKSkgewoJLy8gY3JlYXRlIGEgbmV3IG9iamVjdCBmb3IgZXZlcnkgcmVjb3JkIHRoYXQgd2UgcmV0cmlldmUKCSRyZWMgPSBuZXcgc3RkQ2xhc3MoKTsKICAgICRyZWMtPnJvd2NsYXNzID0gJHJvd2NsYXNzOwoJJHJlYy0+aWQgPSAkcm93Wydkb2N1bWVudHNlYXJjaF9pZCddOwoJJHJlYy0+bmFtZSA9ICRyb3dbJ25hbWUnXTsKCSRyZWMtPmNvbnRlbnQgPSAkcm93Wydjb250ZW50J107CgkkcmVjLT5sb2NhdGlvbiA9ICRyb3dbJ2xvY2F0aW9uJ107CgkkcmVjLT5jYXRlZ29yeSA9ICRyb3dbJ2RvY3VtZW50c2VhcmNoX2NhdGVnb3J5X2lkJ107CgkkcmVjLT5zZWxlY3QgPSAkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsJ3NlbFtdJywkcm93Wydkb2N1bWVudHNlYXJjaF9pZCddKTsKCSRyZWMtPmVkaXRsaW5rID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnYWRkX2VkaXQnLCAkcmV0dXJuaWQsICRnQ21zLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vZWRpdC5naWYnLCAkdGhpcy0+TGFuZygnZWRpdCcpLCcnLCcnLCdzeXN0ZW1pY29uJyksIGFycmF5KCdkb2N1bWVudHNlYXJjaF9pZCc9PiRyZWMtPmlkKSk7CgkkcmVjLT5kZWxldGVsaW5rID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnZGVsZXRlZG9jdW1lbnQnLCAkcmV0dXJuaWQsICRnQ21zLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vZGVsZXRlLmdpZicsICR0aGlzLT5MYW5nKCdkZWxldGUnKSwnJywnJywnc3lzdGVtaWNvbicpLCBhcnJheSgnZG9jdW1lbnRzZWFyY2hfaWQnPT4kcmVjLT5pZCksICR0aGlzLT5MYW5nKCdhcmV5b3VzdXJlJykpOwoJYXJyYXlfcHVzaCgkcmVjb3JkcywkcmVjKTsKICAgIAogICAgKCRyb3djbGFzcz09InJvdzEiPyRyb3djbGFzcz0icm93MiI6JHJvd2NsYXNzPSJyb3cxIik7Cn0KCi8vIEV4cG9zZSB0aGUgbGlzdCB0byBzbWFydHkuCiR0aGlzLT5zbWFydHktPmFzc2lnbigncmVjb3JkcycsJHJlY29yZHMpOwokc21hcnR5LT5hc3NpZ24oJ3JlY29yZGNvdW50JywgY291bnQoJHJlY29yZHMpKTsKCi8vIFRlbGwgU21hcnR5IHdoaWNoIG1vZGUgd2UncmUgaW4KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdtb2RlJywkbW9kZSk7CgovLyBhbmQgYSBjb3VudCBvZiByZWNvcmRzCiR0aGlzLT5zbWFydHktPmFzc2lnbigndGl0bGVfbnVtX3JlY29yZHMnLCR0aGlzLT5MYW5nKCd0aXRsZV9udW1fcmVjb3JkcycsYXJyYXkoY291bnQoJHJlY29yZHMpKSkpOwoKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdhZGQnLCAkdGhpcy0+Q3JlYXRlRnJvbnRlbmRMaW5rKCRpZCwgJHJldHVybmlkLCAnYWRkX2VkaXQnLCAkdGhpcy0+TGFuZygnYWRkX3JlY29yZCcpLCBhcnJheSgpLCAnJywgZmFsc2UsdHJ1ZSwgJycsIGZhbHNlKSk7CgokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2NhdGVnb3J5JywkdGhpcy0+Q3JlYXRlSW5wdXREcm9wRG93bigkaWQsICdjYXRlZ29yeScsICRjYXRlZ29yeWxpc3QsIC0xLCAkdXNlZGNhdGVnb3J5LCAkb25jaGFuZ2V0ZXh0KSk7CgovLyBDb250ZW50IGRlZmluZXMgYW5kIEZvcm0gc3R1ZmYgZm9yIHRoZSBhZG1pbgokc21hcnR5LT5hc3NpZ24oJ2Zvcm1lbmQnLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwokc21hcnR5LT5hc3NpZ24oJ3N1Ym1pdF9tYXNzZGVsZXRlJywgJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwnc3VibWl0X21hc3NkZWxldGUnLCR0aGlzLT5MYW5nKCdkZWxldGVfc2VsZWN0ZWQnKSwgJycsJycsJHRoaXMtPkxhbmcoJ2FyZXlvdXN1cmVfZGVsZXRlbXVsdGlwbGUnKSkpOwoKLy8gdHJhbnNsYXRlZCBzdHJpbmdzCiRzbWFydHktPmFzc2lnbigndGl0bGVfYWxsb3dfYWRkJywkdGhpcy0+TGFuZygndGl0bGVfYWxsb3dfYWRkJykpOwokc21hcnR5LT5hc3NpZ24oJ3dlbGNvbWV0ZXh0JywkdGhpcy0+TGFuZygnd2VsY29tZXRleHQnKSk7CiRzbWFydHktPmFzc2lnbignaWR0ZXh0JywkdGhpcy0+TGFuZygnaWR0ZXh0JykpOwokc21hcnR5LT5hc3NpZ24oJ25hbWV0ZXh0JywkdGhpcy0+TGFuZygnbmFtZXRleHQnKSk7CiRzbWFydHktPmFzc2lnbignZmlsZXRleHQnLCR0aGlzLT5MYW5nKCdmaWxldGV4dCcpKTsKJHNtYXJ0eS0+YXNzaWduKCdjYXRlZ29yeXRleHQnLCR0aGlzLT5MYW5nKCdjYXRlZ29yeXRleHQnKSk7CiRzbWFydHktPmFzc2lnbignc2VsZWN0dGV4dCcsJHRoaXMtPkxhbmcoJ3NlbGVjdHRleHQnKSk7CiRzbWFydHktPmFzc2lnbignZmlsdGVydGV4dCcsICR0aGlzLT5MYW5nKCdmaWx0ZXJ0ZXh0JykpOwokc21hcnR5LT5hc3NpZ24oJ2ZpbHRlcmFsbHRleHQnLCAkdGhpcy0+TGFuZygnZmlsdGVyYWxsdGV4dCcpKTsKCmlmIChpc3NldCgkcGFyYW1zWydtb2R1bGVfbWVzc2FnZSddKSkgewoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdtb2R1bGVfbWVzc2FnZScsJHBhcmFtc1snbW9kdWxlX21lc3NhZ2UnXSk7Cn0gZWxzZSB7CgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ21vZHVsZV9tZXNzYWdlJywnJyk7Cn0KZWNobyAkc3VibWl0X21hc3NkZWxldGU7CgplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2FkbWlucGFuZWwudHBsJyk7Cgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/function.admin_templatetab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IERvY3VtZW50U2VhcmNoIChjKSAyMDEzIGJ5IE9saXZlciBTZWRkb24gCiMgICAgICAgICAob2xpdmVyQHRocmVlZm9sZC5jby51aykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gcHJvdmlkZSBQREYgYW5kIFdvcmQgZG9jdW1lbnQKIyAgY29udGVudCBzZWFyY2hhYmlsaXR5LgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQokc21hcnR5LT5hc3NpZ24oJ3N0YXJ0Zm9ybScsJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCAoJGlkLCAndXBkYXRldGVtcGxhdGUnKSk7CiRzbWFydHktPmFzc2lnbignZW5kZm9ybScsJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CiRzbWFydHktPmFzc2lnbignZGVmYXVsdF9kZXRhaWxfdGVtcGxhdGUnLAoJCSR0aGlzLT5DcmVhdGVUZXh0QXJlYSAoZmFsc2UsICRpZCwgJHRoaXMtPkdldFRlbXBsYXRlKCdkZXRhaWxTYW1wbGUnKSwKCQkJCSAgICAgICAndGVtcGxhdGVjb250ZW50JywnJykpOwokc21hcnR5LT5hc3NpZ24oJ3N1Ym1pdCcsJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0ICgkaWQsICdzdWJtaXRidXR0b24nLCR0aGlzLT5MYW5nICgnc3VibWl0JykpKTsgCiRzbWFydHktPmFzc2lnbignZGVmYXVsdCcsJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0ICgkaWQsICdkZWZhdWx0YnV0dG9uJywgJHRoaXMtPkxhbmcgKCdkZWZhdWx0JyksICcnLCAnJywgCgkJCQkJCSAgICAgJHRoaXMtPkxhbmcoJ3Jlc3RvcmVkZWZhdWx0c2NvbmZpcm0nKSkpOwokc21hcnR5LT5hc3NpZ24oJ3RlbXBsYXRldGV4dCcsICR0aGlzLT5MYW5nKCd0ZW1wbGF0ZXRleHQnKSk7CgplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2VkaXR0ZW1wbGF0ZXMudHBsJyk7CgojIEVPRgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/images/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/images/appicons/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/images/appicons/DOCicon.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhEAAQAIcAAAAAAIAAAACAAICAAAAAgIAAgACAgMDAwMDcwKbK8AEyeCg+bTZKZDdLZQgviwU2ggg8iAZCmwlLsiFMmjpamDJbtipitzhhrjppuE1qp0BmtERquVVtpF11q2d+s0JuxEl0zFJ3ylV7zl99w1h+0XeKnGCBzWeK1XeR1XyX2Hij63ul6Hyk6ZOit5WkuZamu5movoOc2oCe5ouk3ZyrwJCu1p243p6434Cn54Gn54Sr5oWs5oml6Yit5Yqu5Iyv5I+x45Or5pGx4pWz4pW04pm24KW0yqa2y6i2zaq5z6G63aS73aW83Ku60a260K290q6+1K+836q+8bDA1rHB17LC2LrF1LfI9MnS4sfa+Mnb+crb+Mzd+M7e+M7e+dbc6tDg+dLh+tLi+tPi+tPi+9bk+tbk+9fl+tfl+9zi9Njl+tnm+9rm+9rn+9zo+93p+9/q++Hq++Hr++Ls++Hs/OLs/OTt/OXt/Obu/Ofv/Ojv/Ojw/enw/Onw/enx/e30/e/0/e/1/fb29vb29/f39/Dy+vL2/vP3/vT3/vP4/vT4/f///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/78KCgpICAgP8AAAD/AP//AAAA//8A/wD//////yH5BAAAAP8ALAAAAAAQABAAAAj1AAkJrEJlCpQnTZIgOWJkkMAgQXjISHGCRIgPFg79odFAEKEgi0KKDCkBESAXVjrykBLDxBcTaTjMkKAoUIsGOGWkiTEizYY0GUpIqFHDD5MlDVAsQrEhyoQZFLBESFSDDx0lDE4s8rChw4MKCxZFMFQDDxwbDEQs4kDhyoMHThZBAFTDzpsiDEAscnCh0AMNIR8QjcNmCAMMI0cq0FPHTRkgDCxImByhMoQHCoiiCeODgUBCMPb02ZPnjhw3Z8Z42eFZ4Is5dYjKrtFlS47WhFywabNGjRkyYLhoycICdwsxN4oQEfKjhw4cK1TgZkC9uvXqAQEAOw==]]></data>
	</file>
	<file>
	  <filename>/images/appicons/DOCXicon.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhEAAQAIcAAAAAAIAAAACAAICAAAAAgIAAgACAgMDAwMDcwKbK8AEyeCg+bTZKZDdLZQgviwU2ggg8iAZCmwlLsiFMmjpamDJbtipitzhhrjppuE1qp0BmtERquVVtpF11q2d+s0JuxEl0zFJ3ylV7zl99w1h+0XeKnGCBzWeK1XeR1XyX2Hij63ul6Hyk6ZOit5WkuZamu5movoOc2oCe5ouk3ZyrwJCu1p243p6434Cn54Gn54Sr5oWs5oml6Yit5Yqu5Iyv5I+x45Or5pGx4pWz4pW04pm24KW0yqa2y6i2zaq5z6G63aS73aW83Ku60a260K290q6+1K+836q+8bDA1rHB17LC2LrF1LfI9MnS4sfa+Mnb+crb+Mzd+M7e+M7e+dbc6tDg+dLh+tLi+tPi+tPi+9bk+tbk+9fl+tfl+9zi9Njl+tnm+9rm+9rn+9zo+93p+9/q++Hq++Hr++Ls++Hs/OLs/OTt/OXt/Obu/Ofv/Ojv/Ojw/enw/Onw/enx/e30/e/0/e/1/fb29vb29/f39/Dy+vL2/vP3/vT3/vP4/vT4/f///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/78KCgpICAgP8AAAD/AP//AAAA//8A/wD//////yH5BAAAAP8ALAAAAAAQABAAAAj1AAkJrEJlCpQnTZIgOWJkkMAgQXjISHGCRIgPFg79odFAEKEgi0KKDCkBESAXVjrykBLDxBcTaTjMkKAoUIsGOGWkiTEizYY0GUpIqFHDD5MlDVAsQrEhyoQZFLBESFSDDx0lDE4s8rChw4MKCxZFMFQDDxwbDEQs4kDhyoMHThZBAFTDzpsiDEAscnCh0AMNIR8QjcNmCAMMI0cq0FPHTRkgDCxImByhMoQHCoiiCeODgUBCMPb02ZPnjhw3Z8Z42eFZ4Is5dYjKrtFlS47WhFywabNGjRkyYLhoycICdwsxN4oQEfKjhw4cK1TgZkC9uvXqAQEAOw==]]></data>
	</file>
	<file>
	  <filename>/images/appicons/PDFicon.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhEAAQAIcAAAAAAIAAAACAAICAAAAAgIAAgACAgMDAwMDcwKbK8B0dHSQkJD4+PnJydHNzdXV1eH9/gYEFB4sBA6sCBdsBBNcaHdsaHt08O+kBBe4BBPUBBPoBBP8BBf8FCf8HC/8MEP8NEv8TGP8WGv8bH/8iJf8oK/svM/8yNf83Ov84O/8+QN9PTtNSU9NlaedISOdJSulMTeNbW+1TU/9CRf9JTf9UV+JeYOFwceVxcep9fP9iZP9rbf91d/59gIGBhYiIjYqKjYyMjqmpqaqqqqiorKysrK2tra+vr7Gxsba2tre3t7KyuLu7u7y8vL29vb6+vr+/v7q6wLy8wr6+xtuEhti2ueWNj+aPkOianemqquqqq+q8vsDAwMHBwcXFxcbGxsfHx8PDy8jIyMvLy8zMzM3Nzc7OztDQ0NHR0dLS0tPT09TU1NXV1djY2NnZ2dra2tvb29zb29zc3N3d3d7e3t/f3+vT1ujb2+/a3ODg4OHh4eLi4uPi4+Tk5OXl5ebm5ufn5+/i5ejo6Onp6erq6uvr6+zs7O3t7e7u7uTt8Ont8e/w8vHx8fLy8vPz8/T09PX19fb29vf39/D///v7+////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/78KCgpICAgP8AAAD/AP//AAAA//8A/wD//////yH5BAAAAP8ALAAAAAAQABAAAAjxACUJXIPESBGDRYocySOwoaQnYaZIibKEyI86RuAI7LGjBo0ZKlKcMGHBB6U6QjTyQEFCBAgPHDRgmNCA0skifXSUGBHiQ4cNGShIAPLAAYQgaSpIWMp0aYQ/Y7wwEdOkYZc1ZM7QYREnT5s0YNwksZqHzZxHK/gY8gPHjB4kVvu8MXTnApZHiPysAVTEKiA9kHIouqIlkqA3g/oK7GKIkB0YWbK8cCGDCiPFkro0chRjC55FkxJVaUEIc5dANqw4KgTIT543ZeaYvoGDUR89ctqgOXNADWYolSQdIvRnT+40X9QMaeiEwYLn0J8rYKAkIAA7]]></data>
	</file>
	<file>
	  <filename>/images/appicons/UFOicon.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhEAAQAIcAAAAAAIAAAACAAICAAAAAgIAAgACAgMDAwMDcwKbK8AgICFVVVQAAmQAA/wCAAAD//4AAAP8AAP/MM///AIaGhpmZmcvLy8zMzOfn1vf39////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/78KCgpICAgP8AAAD/AP//AAAA//8A/wD//////yH5BAAAAP8ALAAAAAAQABAAAAh8ACkIHEiwQoaDBylgWMiQYYUFCDNQ0ECxYsUKGiAmtMjx4QKNEwmKVGABpAYKDCQwWMlSQcaNKFnKdGlyIkcNGGjC1DAhAMUGOHVKPKkhQAQNDR40yPlyqE2fGgQIYFqzYUOhExVo3cq1qc2bFkFeGEu27FiNH9OqXXswIAA7]]></data>
	</file>
	<file>
	  <filename>/images/icon.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhIAAgAPcAAGWJwtbZ65CGvVtlrK7G45612kev3UZirUpAl1ac0VI2kIWSxYuMwU08lEK14mOKxE2m10NXpo2+4D9PoUdFmkSz4G5iqVA4kTFgrovB42yJwkyo2Uaw3kBNoGGOxmqZzDVcq4G74U86k2GCv2V9uzNerF+RyHaq11yUy2KMxTRdrHyo1Lev01M1j3Z+urTM5WeGwShstlyTyvL2+vTz+F+FwTlXpzxSpFUyjS1msmiDvyVxui9lsZ2eyzdZqYSWyFYxjFguilmc0CpqtCZuuFwqh1Se0ViZzlabz1Oe0lWd0Vab0EVHnFOf00ZGm1Kh1ERInUJLn1Gh1E2n2EhDmVCj1VmXzVmYzlCk1j1Roz5Qoks/lklCmFCi1TtUpThYqEqq2kit3ViYzlqWzDpVplOg01eazz1So0+k1kms3FKg1E48lFGi1FQ0jjZaqkw+lkNJnUuq2k+k10NKnleazkw9lUhEmUqr206m10pBl0BOoUFMn1uVy0up2k47lDVbqk+l10qq21A5kk6l10yp2kJKnoiQxFcwi3u53y9jsFosiSlrtZq73VmYzYNUn0NJnkmt3CtptFmMxlUzjkWx4Ju53FSSyszJ4ixos0Z2umyTyXBfp57H5ZLB41aQyHu84efr9cLg8Ze/4P7+/nSUyHCQxq2+3WV2tlmZzmtxsmqCvtXT54GZymp+u93d7XGMwyhtt5fK52KUy157umKYzXam1L3U6Xql0uDj8HGw2oifzfT5/GGNxWGNxtvg72uf0J2v1rbD4Geo12+k0m+t2V2SyTpWppy/4Oby+lOGw3h4tX1+upScyqzR6tTm89nm89rq9VqQyFgvi1OTy8PF4FduszxTpJi935igzMvg8GeFwMTX68zZ7FqVzGBToczo9a7L5TZaqWCPx8vn9WiEv5fF5OLq9Zuy1zh3vForiGFfqClrtl5ZpWpjqoy/4pK94EVLn2qBvWd6uUBosUhrskxyt5mdylktiVktim+y3GWHwoa43TpxuIdaol8jg////yH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChNYWNpbnRvc2gpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjRGNjJCMjA4NjAyNzExRTI5MkNFQ0E2QzFBRkVFMUJCIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjRGNjJCMjA5NjAyNzExRTI5MkNFQ0E2QzFBRkVFMUJCIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6OEMxOERFN0Y2MDI2MTFFMjkyQ0VDQTZDMUFGRUUxQkIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6OEMxOERFODA2MDI2MTFFMjkyQ0VDQTZDMUFGRUUxQkIiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4B//79/Pv6+fj39vX08/Lx8O/u7ezr6uno5+bl5OPi4eDf3t3c29rZ2NfW1dTT0tHQz87NzMvKycjHxsXEw8LBwL++vby7urm4t7a1tLOysbCvrq2sq6qpqKempaSjoqGgn56dnJuamZiXlpWUk5KRkI+OjYyLiomIh4aFhIOCgYB/fn18e3p5eHd2dXRzcnFwb25tbGtqaWhnZmVkY2JhYF9eXVxbWllYV1ZVVFNSUVBPTk1MS0pJSEdGRURDQkFAPz49PDs6OTg3NjU0MzIxMC8uLSwrKikoJyYlJCMiISAfHh0cGxoZGBcWFRQTEhEQDw4NDAsKCQgHBgUEAwIBAAAh+QQAAAAAACwAAAAAIAAgAAAI/wD7CRxIsKDBgwWNJGlS5omULlXQAMIzZcqGPmAC3UkTxoABDhwoVajgoKTAJQmUKGyi5gmbKljkDIJgkVAcMBshdfwocqTAI2aQLFGpsOFDmHIoWuxzc2OYjiApCbRyRcwRoSlXtnyIRSJNizcDpdHpUSCfbmOoHqGDVeVChy9jDqq4wSZOjgKLyUDBJ20jq0GzLjQKUaLSixkFmjChl29ftWxRumXpEiaamTUFihO3+IQECe7cZQiRSwhQoUSTEEZKUWAKXh7EifpHu/a/cYiqXpWs1WGXrgIfPEiR4prt4xnSXlnbVqsUNgIBSH/AiPa7X8P2QaM9itjjv6cFM/8UCAOGPgCVaDNK0cvDB2e0m+3lIyzEp3xCImcVqIOcNhgF0FbJcMStQBsytMhSjm3f5HbaEgLFo4oOOgT4TwHSATBcNrTVcsw/u3DSSSj/xIIKVVb144g8JLQIDG3njCBjDTXYQtsK2/wDjiSSRHOCJ55YIuQ0jviThTVekPEDbay48QcIKmDwAm3JEPDPMx+gM8QiMcBCBBE77OCPP3pokcUZC9D2wxc++ODGPObQlkkpM9A2AwG3aLlOl0SMGUUHekxgCG0LkGGMDV+8Qhs3JZSgQTC2vcBPJFvGMCYUc0SxBwO0GXIGktWAQpsuTqpQAj0amEKbJjlggkkkYzr/wQQUUHD6Tw8uuMAMLrT5csAXByxwAJSz0EZKIonwkMOYVNhBgRMCHFdbAKd4EQEL/6xiDzbU/BNAPRhggOyYCOTBBRXR2kbDJfYMYOYZA7BAQ22utAJlCeGOWccbW+ThzSYWBNwOO/AU8megZqqjzDKpRNBmOE+qMKYIfjTAb7nn2iHrrJnuAegEWnya5KFsujHmBRcI4sca+25RbrPPzgqHwR6DnMUNSJKB6JgtKKBAyhQ3sC/GMMsKxSOafmzmDUmOicMkbfT8syAisHyxuVTEDAUcHQP67pjSHALE0234DPTKLWPtrNGPGPzxmIrcE0TYZEt9tsUuq70xppqOHllEEekogk/YY0PdM8oqW5130TKP6fjjkEcueeQBAQA7]]></data>
	</file>
	<file>
	  <filename>/images/icon@2x.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhQABAAPcAALaz1nuUyIi84ElCmEBNoC5lsUJKnkyo2WWJwuz1+8jI4czC3VKg1Gij00aw34Ko1ESy4E86kzFhrlguilp9vImbymF0tne13T9OoaSkzmOKxM3h8Fac0Ih9t93r9UdFmktAl008lFI2kEev3WGOxs7Z7Keo0KrU7F+QyIOEvZzE47XJ5DNerFA4kdHd702m11OGwjVcq0K14lhrsVGJxVyUy7jA3TlXp2aGwUJosYOx2XKk00Virdzl8p273VM1j8bN5aq73GmDv3uDvVyTyjxSpKXC4ePy+TdZqW6czsjL4zhYqGuAvbrd8CVxulYxjPP0+bvc756byHyr15vI5kRUpFUyjf7+/lsqhyhstmKMxZ2r00+Mx77K5PH4/KTO6ZnL6CpqtF6YzdfZ63ui0GSZzZq22k2OyIa53yZuuDpWpidtt9rt+GSDv0RZp8TO5l6h0l93uFosicrG4JLG5jJutmlmrFSe0UVHnFWd0Vab0FmYzlabz1Oe0liZzlOf002n2FKh1EZGmz5QokRInVmXzVCj1VCk1ks/lj1Ro1qWzEit3TtUpVuVy1eazleaz0qq2jpVpliYzkuq2lOg0zVbqlmYzUqr21Ci1Ums3ENJnlGi1FQ0jk6l10+k1kw+lkhDmT1So0+k10pBl0FMn048lENJnUw9lU6m10+l1047lEup2l2SyVqVzClrtStptDxTpEqq2zZaqjZaqWWHwmGNxlUzjjRdqytos0mt3GGNxWiEvy9jsGqCvl6SyVcwjFgvi2eFwH5Nm1+PyGCPxylrtixns8/g72iFwJqx18zk809XpXFvsXx2tcTG4FyXzIqPw5GNwVmd0U9dqVJ2uFB9veHg719ws8Lf8Ofs9aTJ5qrF410ohmKd0M7k8j5So0hwtm6KwnKNxdHZ69Lc7U9nr2x/vGd/vFqZzkeBwE+BwLHZ7rrT6a/M5pay2Lav05W+3/Dx+Mfi8j1Wpk9PoINvr4+228TX687T6GKVy2iRyDtfrT9erIdaol8jg////yH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChNYWNpbnRvc2gpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjRGNjJCMjBDNjAyNzExRTI5MkNFQ0E2QzFBRkVFMUJCIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjRGNjJCMjBENjAyNzExRTI5MkNFQ0E2QzFBRkVFMUJCIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NEY2MkIyMEE2MDI3MTFFMjkyQ0VDQTZDMUFGRUUxQkIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NEY2MkIyMEI2MDI3MTFFMjkyQ0VDQTZDMUFGRUUxQkIiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4B//79/Pv6+fj39vX08/Lx8O/u7ezr6uno5+bl5OPi4eDf3t3c29rZ2NfW1dTT0tHQz87NzMvKycjHxsXEw8LBwL++vby7urm4t7a1tLOysbCvrq2sq6qpqKempaSjoqGgn56dnJuamZiXlpWUk5KRkI+OjYyLiomIh4aFhIOCgYB/fn18e3p5eHd2dXRzcnFwb25tbGtqaWhnZmVkY2JhYF9eXVxbWllYV1ZVVFNSUVBPTk1MS0pJSEdGRURDQkFAPz49PDs6OTg3NjU0MzIxMC8uLSwrKikoJyYlJCMiISAfHh0cGxoZGBcWFRQTEhEQDw4NDAsKCQgHBgUEAwIBAAAh+QQAAAAAACwAAAAAQABAAAAI/wD7CRxIsKDBgwgTKlzIsKHDhwrv3OnT588fSgwCadyEyZChQ55EpeqE6gWgkwcOrFo1CRKkWJcuZcq0qOaImyMc6HQAoadPGUCDEuSQR+LEihg1bvR4CKTITiZPAkrJsuVLmZly1VyEc6dOnz+BEtTDgWhRiRUvZtzY8eOhpyWlUq16FatWrl13gu0pg+AjPnrImkWblpLSQBzdhhyJSupUlZOswpR5F29Or2AJ+nH0FzDZPGePqj3ctmlIklFRrozsMubMynm/QiC4R5KfzX8DlwVN2GJStkwXo5arkqXLyTO34rzsgGAhS3tq3+6sm6hRiqOVJjb9NPVjuldfK/+/2XygIkWFnke/zZkP4N2hC69FXBok49RzWSPPanMEwUaNtHJeetHZhptn8PV20WHbOXUfcasd59pdBNVQA4ABoqeedO0hyFtvv2lU32lxybWaZFgRxAoRRFgIoIAaQmdgh4J9iF129AUHF37FoUiQL6wEyeKFLw4InXR+UFfjdWnNlyN3I3lHFWsEoeDLlUK2SGQjA27IHnUJouXbfIkp9iBKxRE0DApsYpmlixlqWOCXCA4m2oLalSZciVMRRAwxw6xppZsrwplhekfaRuNn8SHl5IiiDAcIQbWQQMKfgqIARhScdtrEp5+eQMcF0shI53t23hhimQ6SRJAWWuj/Uimmwyjzz6245porG3TAkSh77lXXqEVONhjSq7DCWumlturq7K4XILregR7GN2aeTBGkwbbJxlqLN8+Ge+sVaHQ554HCnqUqmZgQhMC73Ca7gbjiXnHBoRsqqqSdooXo7rvwcjsvrt7sYPAUOmjjwbMJNFBkjEjSGOa6BOFACy0AwzvwrRvISkKgw+QDjxfOftEihjDmC2ydw1aMw8sYA3xMrhsku+yfUySgqxcNDLlll78uyi9BuyATzMsWYzwzrsdo0K3HJOjgrApBrthiAwJ8ccI6J4BxARwR51ZjHgQJIUTRRyO99K3HIBBvsrK2oys2VwIphgokO3sEGGBz/7hv2WafjTYOLuTadsBOJ7uDsw0Qg0IZG4fLRrSmUktQL5gHLnjhTMcM8LaJR/6PDmuys7M8eeN6Ajro/boZQUzEnnng5OTqAswZByx3rvDU8kCuR+jwjC/dCLDwP1SI0Qq+iRJkTuyyZ147ri6knXTuRuiqgi7b5GoPm1aicDcaPj+MqEDCCGPB+uvH4X4cJeRaAgVxUGD//feboasPMKyQaxIwCGAAaUDAAtKACwhE4BkWmD5/+CMRoYAFLBjBiEhEQg1vyNUbkCCLSlQiBjG4xS1YQMLf5eoBvPBBroxQB1y84hVhcIUripGFLKxhDWnIoRN2uEMHOnAQg4BgEf8kSEEgaHAJSEDCLDr4QRGyQH+5IoMEyKCrezwABi2EYQxnaEMc5jANPfQhBoAYRCHCwoi4esMNloDEJC7xgzHwX670IQFwxONZHjACGdLxwjDEkIZd/KIP/UEADBiSjBBUQq6AcMEbrLGNSwSHs6rBAgmIg17/MAIMXOhHGQISh4M0ACkIUMhDDkKRuAJCBS+oBkciURYV0FUPJEBCFoQjG5hMgjFcqEUZ1jCUBhDlKEupgFwpgYirbOUNeNADXSUDhE7MQQBsUC91GGOXvNziIAmhiWAGkxSjLCaulGDGCVbwBltwVhuYGMIRsiAHOKhAEKCgK3cU4J7XxAUnB4n/B0IQwhTd/OYccqUAICbCjPOIpa66kEQldhCa7pQANcaRqxXw4p4YxeYgBYGHjvrTFMEcKK4UYMpBfOMa1HTWOR6ZRB7ww4PQJGE4ctUFCfDiphgtgDEG+YEPCIKjHjWFSG8VjwyY4KgmcEa4tsBKR1pgDAq4xhubqNBbBUECWLXpRe85SFCAoqc+5SghFoDJZwHBDRSMhBuikasMDGEG5bgGNK6QK3FUMqta5cUgBzAAr341rGQta65sMI0iDBEWbgCAYP+Bj33U8q5ZHSQIRjEKvnq1p4EVrDWgUQWDCrEKUijrGMoB0VpG1oeIQAQIJltZr2ZWXFAAQAqWQcqS/x60CMx4ba6ukIFyTDWmtRzkKT7xidSydgD16IByl8vcZtiBHt4UZW1NedBB2CEaGXjHO0wghRRMY40N/a0TB1mKEJxiuMVdLWVb+9ewevSfARXmdBGZiG8g04JqaCUbwwvTGAwyAqpQRXnRa9zJWvay7n1vfOVryDEaNBSHTWt+XQnJDg6yBRHIsIDNS2D1Vrav7f3pewHqTXBO18EHhbA58avfNiLhwi2IsYY3fN7iqva4fgUrUPsJ3xIP07aJiHAyKTxIERg5xhiecSlqbOPjgvivIg7qgn9M3XIms5WD/MEPjCwCJCcZwAPusJMRnOCPxtfEpaSvitMaiUHagv8TnNgyl72sZPMSt8AfznGCeTzlUTYYkSqe4CCtYAVbvFnLXO6yjDUc5jurlrIH1jFQzezjE3sWwoP8xROeUOg3x1nOil50gBuNZ/aGuKM8JvE3qYzIQQIDGL/QNKENDWdQhzrDABYwk40L6Sf3NMr9VPU3LT3ICRgb1prmdKFrDWo6M5rDd/ZwpH896R6vuraDlIO2j41sZdP603NGcp0JfOM8IxjY/uzzILGABW3LwdgTeHWyZ31oW4t7xtBucq/JHGVKB3OQ3GB3u93N7VhvutPMDreoaTzcUvv616g2M8C5EXCBE7zgskZ4nBN971wvmdzqPTCUd0yIQZr85CgPT7nKV87ylrv85TCPeUAAADs=]]></data>
	</file>
	<file>
	  <filename>/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/lang/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/en_US.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0RvY3VtZW50IFNlYXJjaCc7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ0JlIHN1cmUgdG8gc2V0ICJVc2UgRG9jdW1lbnQgU2VhcmNoIiBwZXJtaXNzaW9ucyB0byB1c2UgdGhpcyBtb2R1bGUhJzsKJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICdTb3JyeSwgaXRcJ3Mgbm90IHlvdSwgaXRcJ3MgbWUuJzsKJGxhbmdbJ3JlYWxseV91bmluc3RhbGwnXSA9ICdSZWFsbHk/IFlvdVwncmUgc3VyZSB5b3Ugd2FudCB0byB1bmluc3RhbGwgdGhpcyBzdXBlciBmaW5lIG1vZHVsZT8nOwokbGFuZ1sndW5pbnN0YWxsZWQnXSA9ICdNb2R1bGUgVW5pbnN0YWxsZWQuJzsKJGxhbmdbJ2luc3RhbGxlZCddID0gJ01vZHVsZSB2ZXJzaW9uICVzIGluc3RhbGxlZC4nOwokbGFuZ1sncHJlZnN1cGRhdGVkJ10gPSAnTW9kdWxlIHByZWZlcmVuY2VzIHVwZGF0ZWQuJzsKJGxhbmdbJ3N1Ym1pdCddID0gJ1NhdmUnOwokbGFuZ1snY2FuY2VsJ10gPSAnQ2FuY2VsJzsKJGxhbmdbJ2RlZmF1bHQnXSA9ICdSZXN0b3JlIGRlZmF1bHQgdGVtcGxhdGUnOwokbGFuZ1sncmVzdG9yZWRlZmF1bHRzY29uZmlybSddID0gJ0RvIHlvdSByZWFsbHkgd2FudCB0byByZXN0b3JlIHRoZSBkZWZhdWx0IHRlbXBsYXRlPyc7CiRsYW5nWydhY2Nlc3NkZW5pZWQnXSA9ICdBY2Nlc3MgRGVuaWVkLiBQbGVhc2UgY2hlY2sgeW91ciBwZXJtaXNzaW9ucy4nOwokbGFuZ1snZXJyb3InXSA9ICdFcnJvciEnOwokbGFuZ1snZXJyb3JfZHVwbGljYXRlbmFtZSddID0gJ1RoaXMgY2F0ZWdvcnkgbmFtZSBhbHJlYWR5IGV4aXN0cyEnOwokbGFuZ1snZXJyb3JfaW52YWxpZGZpbGV0eXBlJ10gPSAnVGhpcyBmaWxlIHR5cGUgaXMgbm90IGFsbG93ZWQhIE9ubHkgUERGLCBET0MgYW5kIERPQ1ggZmlsZXMgY2FuIGJlIHVwbG9hZGVkLic7CiRsYW5nWydlcnJvcl9ta2RpciddID0gJ0Vycm9yIG1ha2luZyB0aGUgZGlyZWN0b3J5LCBjaGVjayB5b3VyIHBlcm1pc3Npb25zIGFuZCB0cnkgYWdhaW4uISc7CiRsYW5nWydlcnJvcl9tb3ZlZmlsZSddID0gJ0Vycm9yIG1vdmluZyB0aGUgZmlsZSwgY2hlY2sgeW91ciBwZXJtaXNzaW9ucyBhbmQgdHJ5IGFnYWluLiEnOwokbGFuZ1snbGlua192aWV3J10gPSAnVmlldyc7CiRsYW5nWydlZGl0J10gPSAnRWRpdCc7CiRsYW5nWydpZHRleHQnXSA9ICdJRCc7CiRsYW5nWyduYW1ldGV4dCddID0gJ05hbWUnOwokbGFuZ1sndGVtcGxhdGV0ZXh0J10gPSAnRGV0YWlsIHRlbXBsYXRlJzsKJGxhbmdbJ2ZpbGV0ZXh0J10gPSAnRmlsZSc7CiRsYW5nWyd0aXRsZV9hdXRob3InXSA9ICdBdXRob3InOwokbGFuZ1sncG9zdGRhdGUnXSA9ICdEb2N1bWVudCBkYXRlJzsKJGxhbmdbJ2NhdGVnb3J5dGV4dCddID0gJ0NhdGVnb3J5JzsKJGxhbmdbJ2NhdGVnb3J5J10gPSAnQ2F0ZWdvcnknOwokbGFuZ1snbmFtZSddID0gJ0NhdGVnb3J5IG5hbWUnOwokbGFuZ1snc2VsZWN0dGV4dCddID0gJ1NlbGVjdCc7CiRsYW5nWyd0aXRsZV9udW1fcmVjb3JkcyddID0gJyVzIGRvY3VtZW50cyBmb3VuZC4nOwokbGFuZ1snYWRkX3JlY29yZCddID0gJ0FkZCBhIGRvY3VtZW50JzsKJGxhbmdbJ2FkZGVkX3JlY29yZCddID0gJ0RvY3VtZW50IGFkZGVkJzsKJGxhbmdbJ2FkZGNhdGVnb3J5J10gPSAnQWRkIGEgY2F0ZWdvcnknOwokbGFuZ1sndXBsb2FkZXJyb3InXSA9ICdBIGRvY3VtZW50IG11c3QgYmUgc2VsZWN0ZWQhJzsKJGxhbmdbJ2NhdGVnb3J5dXBkYXRlZCddID0gJ0NhdGVnb3J5IHVwZGF0ZWQnOwokbGFuZ1snY2F0ZWdvcnlhZGRlZCddID0gJ0NhdGVnb3J5IGFkZGVkJzsKJGxhbmdbJ2NhdGVnb3J5ZGVsZXRlZCddID0gJ0NhdGVnb3J5IGRlbGV0ZWQnOwokbGFuZ1snZGVsZXRlX3NlbGVjdGVkJ10gPSAnRGVsZXRlIHNlbGVjdGVkIGRvY3VtZW50cyc7CiRsYW5nWydhcmV5b3VzdXJlX2RlbGV0ZW11bHRpcGxlJ10gPSAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSBhbGwgb2YgdGhlc2UgZG9jdW1lbnRzP1xuVGhpcyBhY3Rpb24gY2Fubm90IGJlIHVuZG9uZSEnOwokbGFuZ1snZGVsZXRlX211bHRpcGxlJ10gPSAnRG9jdW1lbnRzIGRlbGV0ZWQnOwokbGFuZ1sndXBkYXRlZF9yZWNvcmQnXSA9ICdEb2N1bWVudCB1cGRhdGVkJzsKJGxhbmdbJ2ZpbHRlcnRleHQnXSA9ICdGaWx0ZXIgYnk6JzsKJGxhbmdbJ2ZpbHRlcmFsbHRleHQnXSA9ICdTaG93IGFsbCc7CiRsYW5nWyd0ZW1wbGF0ZXVwZGF0ZWQnXSA9ICdUZW1wbGF0ZSB1cGRhdGVkJzsKJGxhbmdbJ3VwZ3JhZGVkJ10gPSAnTW9kdWxlIHVwZ3JhZGVkIHRvIHZlcnNpb24gJXMuJzsKJGxhbmdbJ3RpdGxlX2dlbmVyYWwnXSA9ICdEb2N1bWVudCBsaXN0JzsKJGxhbmdbJ3RpdGxlX2FsbG93X2FkZCddID0gJ1VzZXJzIG1heSBhZGQgcmVjb3Jkcz8nOwokbGFuZ1sndGl0bGVfYWxsb3dfYWRkX2hlbHAnXSA9ICdDbGljayBoZXJlIHRvIGFsbG93IHVzZXJzIHRvIGFkZCByZWNvcmRzLic7CiRsYW5nWyd0aXRsZV9tb2RfcHJlZnMnXSA9ICdQcmVmZXJlbmNlcyc7CiRsYW5nWyd0aXRsZV9tb2RfYWRtaW4nXSA9ICdBZG1pbiBQYW5lbCc7CiRsYW5nWyd0aXRsZV9uYW1lJ10gPSAnRmlsZSBuYW1lJzsKJGxhbmdbJ3RpdGxlX2xvY2F0aW9uJ10gPSAnU2VsZWN0IGRvY3VtZW50JzsKJGxhbmdbJ3RpdGxlX2xvY2F0aW9uZWRpdCddID0gJ1JlcGxhY2UgY3VycmVudCBkb2N1bWVudCc7CiRsYW5nWyd0YWJfZG9jdW1lbnQnXSA9ICdEb2N1bWVudHMnOwokbGFuZ1sndGFiX2NhdGVnb3JpZXMnXSA9ICdDYXRlZ29yaWVzJzsKJGxhbmdbJ3RhYl90ZW1wbGF0ZXMnXSA9ICdUZW1wbGF0ZXMnOwokbGFuZ1snYXJleW91c3VyZSddID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGU/JzsKJGxhbmdbJ2Rhc2hfcmVjb3JkX2NvdW50J10gPSAnVGhpcyBtb2R1bGUgaGFuZGxlcyAlcyBkb2N1bWVudHMnOwokbGFuZ1snYWxlcnRfbm9fcmVjb3JkcyddID0gJ1RoZXJlIGhhdmUgbm90IGJlZW4gYW55IGRvY3VtZW50cyBhZGRlZCBpbiB0aGUgRG9jdW1lbnQgU2VhcmNoIG1vZHVsZSEnOwokbGFuZ1snaGVscF9kb2N1bWVudHNlYXJjaF9pZCddID0gJ0ludGVybmFsbHkgaWRlbnRpZmllciBmb3Igc2VsZWN0aW5nIGRvY3VtZW50cyc7CiRsYW5nWydoZWxwX2Rlc2NyaXB0aW9uJ10gPSAnSW50ZXJuYWwgcGFyYW1ldGVyIHVzZWQgdG8gcGFzcyBkZXNjcmlwdGlvbiBpbmZvIHdoZW4gY3JlYXRpbmcgb3IgZWRpdGluZyBhIGRvY3VtZW50JzsKJGxhbmdbJ2hlbHBfZXhwbGFuYXRpb24nXSA9ICdJbnRlcm5hbCBwYXJhbWV0ZXIgdXNlZCB0byBwYXNzIGV4cGxhbmF0aW9uIGluZm8gd2hlbiBjcmVhdGluZyBvciBlZGl0aW5nIGEgZG9jdW1lbnQnOwokbGFuZ1snaGVscF9tb2R1bGVfbWVzc2FnZSddID0gJ0ludGVybmFsbHkgdXNlZCBwYXJhbWV0ZXIgZm9yIHBhc3NpbmcgbWVzc2FnZXMgdG8gdXNlcic7CiRsYW5nWydoZWxwX2NhdGVnb3J5J10gPSAnV2hpY2ggY2F0ZWdvcnkgdG8gZGlzcGxheSBkb2N1bWVudHMgZnJvbS4nOwokbGFuZ1snaGVscF9zb3J0YnknXSA9ICdGaWVsZCB0byBzb3J0IGJ5LiBPcHRpb25zIGFyZTogImRhdGUiLic7CiRsYW5nWydoZWxwX3NvcnRkZXNjJ10gPSAnU29ydCBuZXdzIGl0ZW1zIGluIGRlc2NlbmRpbmcgZGF0ZSBvcmRlciByYXRoZXIgdGhhbiBhc2NlbmRpbmcuJzsKCiRsYW5nWydtb2RkZXNjcmlwdGlvbiddID0gJ1RoaXMgbW9kdWxlIGV4dHJhY3RzIHRoZSBjb250ZW50cyBvZiBQREYsIERPQywgRE9DWCwgUlRGIGFuZCBUWFQgZmlsZXMgYW5kIGFkZHMgdGhlIGNvbnRlbnQgdG8gdGhlIGRhdGFiYXNlIG1ha2luZyB0aGUgZG9jdW1lbnRzIGNvbnRlbnQgc2VhcmNoYWJsZSwgd2l0aCBhIGxpbmsgcmVmZXJlbmNlIHRvIHRoZSBvcmlnaW5hbCBkb2N1bWVudCBmb3IgZG93bmxvYWRpbmcvdmlld2luZy4nOwokbGFuZ1snY2hhbmdlbG9nJ10gPSAnPHVsPgo8bGk+VmVyc2lvbiAxLjAgMzAgSmFudWFyeSAyMDEzLiBJbml0aWFsIFJlbGVhc2UuPC9saT4KPGxpPlZlcnNpb24gMS4xIDMwIEphbnVhcnkgMjAxMy4gRml4IGZvciBidWcgIzg4NzUuPC9saT4KPGxpPlZlcnNpb24gMS4yIDMwIEphbnVhcnkgMjAxMy4gRml4IHRvIHNlYXJjaCByZXN1bHRzIFVSTCwgbWlzc2luZyBkb2N1bWVudHNlYXJjaCBkaXJlY3RvcnkuPC9saT4KPGxpPlZlcnNpb24gMS4zIDMxIEphbnVhcnkgMjAxMy4gQWRkZWQgc29ydGJ5IGFuZCBzb3J0ZGVzYyBwYXJhbWV0ZXJzIHBsdXMgdHdlYWtlZCB0ZW1wbGF0ZS48L2xpPgo8bGk+VmVyc2lvbiAxLjMuMSA3IEZlYnJ1YXJ5IDIwMTMuIEJ1ZyBmaXggIzg5MTEgYW5kIGFkZGVkIGZpbGUgaWNvbnMgdG8gZnJvbnQgZW5kIHRlbXBsYXRlLjwvbGk+CjxsaT5WZXJzaW9uIDEuNCAyNCBGZWJydWFyeSAyMDEzLiBBZGRlZCB0ZW1wbGF0ZSB0YWIgdG8gZW5hYmxlIGVkaXRpbmcgb2Ygb3V0cHV0IGFuZCBpZiBubyBuYW1lIGlzIHNwZWNpZmllZCB0aGUgZG9jdW1lbnRzIGZpbGUgbmFtZSB3aWxsIGJlIHVzZWQgYnkgZGVmYXVsdCwgbWludXMgZXh0ZW5zaW9uIGFuZCBhbnkgXyByZXBsYWNlZCBieSBzcGFjZXMgYW5kIHBlciBmZWF0dXJlIHJlcXVlc3RzICM4OTQxIGFuZCAjODk0Mi4gTWFkZSBjYXRlZ29yeSBuYW1lIGFwcGVhciBpbiBhZG1pbiB0YWJsZSByYXRoZXIgdGhhbiBJRC48L2xpPgo8bGk+VmVyc2lvbiAxLjQuMSAyNSBGZWJydWFyeSAyMDEzLiBVc2luZyB3aGF0IGFwcGVhcnMgdG8gYmUgYSBtb3JlIHJlbGlhYmxlIHBkZjJ0ZXh0IGNsYXNzLjwvbGk+CjxsaT5WZXJzaW9uIDEuNC4yIDI2IEZlYnJ1YXJ5IDIwMTMuIEJ1ZyBmaXhlcyBhbmQgYSBoYW5kZnVsIG9mIG5ldyBmZWF0dXJlcy48L2xpPgo8bGk+VmVyc2lvbiAxLjQuMyAyOCBGZWJydWFyeSAyMDEzLiBCZXR0ZXIgY29udmVyc2lvbiBvZiBub24gc3RhbmRhcmQgY2hhcmFjdGVycy48L2xpPgo8bGk+VmVyc2lvbiAxLjQuNCAyOCBKdW5lIDIwMTMuIEJ1ZyBmaXhlcyBhbmQgcmVtb3ZlZCBTdGF0dXMgZHJvcGRvd24gYW5kIGFkZGVkIHN1cHBvcnQgZm9yIFJURiBhbmQgVFhUIGRvY3MuPC9saT4KPC91bD4nOwokbGFuZ1snaGVscCddID0gJzxoMz5XaGF0IERvZXMgVGhpcyBEbz88L2gzPgo8cD5UaGlzIG1vZHVsZSBhbGxvd3MgZm9yIHRoZSB1cGxvYWRpbmcgb2YgUERGLCBET0MgYW5kIERPQ1ggZmlsZXMgd2l0aCB0aGUgaW50ZW50aW9uIG9mIGhhdmluZyB0aGUgZG9jdW1lbnRzIGNvbnRlbnQgZXh0cmFjdGVkIGFuZCBhZGRlZCB0byB0aGUgZGF0YWJhc2UgbWFraW5nIHRoZSBjb250ZW50IHNlYXJjaGFibGUgdmlhIENNU01TIHNlYXJjaCBtb2R1bGUuIFRoZSB1cGxvYWRlZCBmaWxlcyBjYW4gYWxzbyBiZSBsaXN0ZWQgb24gdGhlIGZyb250IGVuZC48L3A+CjxoMz5Ib3cgRG8gSSBVc2UgSXQ8L2gzPgo8cD5TaW1wbHkgcGxhY2UgdGhlIG1vZHVsZSBpbiBhIHBhZ2Ugb3IgdGVtcGxhdGUgdXNpbmcgdGhlIHNtYXJ0eSB0YWcgPGNvZGU+e0RvY3VtZW50U2VhcmNofTwvY29kZT48L3A+CjxoMz5TdXBwb3J0PC9oMz4KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPgo8dWw+CjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlLCBGQVFzLCBvciB0byBmaWxlIGEgQnVnIFJlcG9ydCwgcGxlYXNlIHZpc2l0IHRoZSBNb2R1bGUgRm9yZ2UKPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9kb2N1bWVudHNlYXJjaC8iPkRvY3VtZW50IFNlYXJjaCBQYWdlPC9hPi48L2xpPgo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LjwvbGk+CjxsaT5UaGUgYXV0aG9yLCBvbGl2ZXJzZWRkb24sIGNhbiBvZnRlbiBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaXJjOi8vaXJjLmZyZWVub2RlLm5ldC8jY21zIj5DTVMgSVJDIENoYW5uZWw8L2E+LjwvbGk+CjxsaT5MYXN0bHksIHlvdSBtYXkgaGF2ZSBzb21lIHN1Y2Nlc3MgZW1haWxpbmcgdGhlIGF1dGhvciBkaXJlY3RseS48L2xpPiAgCjwvdWw+CjxwPkFzIHBlciB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkIGFzLWlzLiBQbGVhc2UgcmVhZCB0aGUgdGV4dCBvZiB0aGUgbGljZW5zZSBmb3IgdGhlIGZ1bGwgZGlzY2xhaW1lci48L3A+Cgo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDEzLCBPbGl2ZXIgU2VkZG9uIDxhIGhyZWY9Im1haWx0bzpvbGl2ZXJAdGhyZWVmb2xkLmNvLnVrIj4mbHQ7b2xpdmVyQHRocmVlZm9sZC5jby51ayZndDs8L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+CjxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+Cic7Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/class.documentsearch_admin_ops.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IERvY3VtZW50U2VhcmNoIChjKSAyMDEzIGJ5IE9saXZlciBTZWRkb24gCiMgICAgICAgICAob2xpdmVyQHRocmVlZm9sZC5jby51aykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gcHJvdmlkZSBQREYgYW5kIFdvcmQgZG9jdW1lbnQKIyAgY29udGVudCBzZWFyY2hhYmlsaXR5LgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKY2xhc3MgZG9jdW1lbnRzZWFyY2hfYWRtaW5fb3BzIHsKCglwcm90ZWN0ZWQgZnVuY3Rpb24gX19jb25zdHJ1Y3QoKSB7fQoKCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZGVsZXRlX2RvY3VtZW50KCRkb2N1bWVudGlkKSB7CiAgICAJCSRkYiA9IGNtc21zKCktPkdldERiKCk7CgogICAgCQkvL05vdyByZW1vdmUgdGhlIGRvY3VtZW50CiAgICAJCSRxdWVyeSA9ICJERUxFVEUgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2RvY3VtZW50c2VhcmNoIFdIRVJFIGRvY3VtZW50c2VhcmNoX2lkID0gPyI7CiAgICAJCSRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRkb2N1bWVudGlkKSk7CgkgICAgIAkkcXVlcnkgPSAiREVMRVRFIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9kb2N1bWVudHNlYXJjaF9jYXRlZ29yaWVzX2xpbmsgV0hFUkUgZG9jdW1lbnRzZWFyY2hfaWQgPSA/IjsKCQkgICAgJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGRvY3VtZW50aWQpKTsKCiAgICAJCS8vIGRlbGV0ZSBhbnkgZmlsZXMuLi4KICAgIAkJLy8kY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnOwogICAgCQkkbXlkaXJlY3RvcnkgPSAnLi4vdXBsb2Fkcy9kb2N1bWVudHNlYXJjaC9pZCcuJGRvY3VtZW50aWQ7CgogICAgCQlkb2N1bWVudHNlYXJjaF9hZG1pbl9vcHM6OnJlY3Vyc2l2ZV9yZW1vdmVfZGlyZWN0b3J5KCRteWRpcmVjdG9yeSk7CiAgICAKICAgIAkJZG9jdW1lbnRzZWFyY2hfYWRtaW5fb3BzOjpkZWxldGVfc3RhdGljX3JvdXRlKCRkb2N1bWVudGlkKTsKICAgIAogICAgCQkvL1VwZGF0ZSBzZWFyY2ggaW5kZXgKICAgIAkJJG1vZCA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnRG9jdW1lbnRTZWFyY2gnKTsKICAgIAkJJG1vZHVsZSA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnU2VhcmNoJyk7CiAgICAJCWlmICgkbW9kdWxlICE9IEZBTFNFKSB7CgkJCSRtb2R1bGUtPkRlbGV0ZVdvcmRzKCRtb2QtPkdldE5hbWUoKSwgJGRvY3VtZW50aWQsICdkb2N1bWVudHNlYXJjaCcpOwogICAgICAJfQogICAgCiAgICAJCUAkbW9kLT5TZW5kRXZlbnQoJ1NlYXJjaERvY3VtZW50RGVsZXRlZCcsIGFycmF5KCdkb2N1bWVudHNlYXJjaF9pZCcgPT4gJGRvY3VtZW50aWQpKTsKCQkvLyBwdXQgbWVudGlvbiBpbnRvIHRoZSBhZG1pbiBsb2cKCQlhdWRpdCgkZG9jdW1lbnRpZCwgJ0RvY3VtZW50IFNlYXJjaDogJy4kZG9jdW1lbnRpZCwgJ0RvY3VtZW50IGRlbGV0ZWQnKTsKCX0KCglwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHJlY3Vyc2l2ZV9yZW1vdmVfZGlyZWN0b3J5KCRkaXJlY3RvcnksICRlbXB0eT1GQUxTRSkgewogICAgCS8vIGlmIHRoZSBwYXRoIGhhcyBhIHNsYXNoIGF0IHRoZSBlbmQgd2UgcmVtb3ZlIGl0IGhlcmUKICAgIAlpZihzdWJzdHIoJGRpcmVjdG9yeSwtMSkgPT0gJy8nKSB7CiAgICAgICAgCSRkaXJlY3RvcnkgPSBzdWJzdHIoJGRpcmVjdG9yeSwwLC0xKTsKICAgIAl9CgogICAgCS8vIGlmIHRoZSBwYXRoIGlzIG5vdCB2YWxpZCBvciBpcyBub3QgYSBkaXJlY3RvcnkgLi4uCiAgICAJaWYoIWZpbGVfZXhpc3RzKCRkaXJlY3RvcnkpIHx8ICFpc19kaXIoJGRpcmVjdG9yeSkpIHsKICAgICAgICAJLy8gLi4uIHdlIHJldHVybiBmYWxzZSBhbmQgZXhpdCB0aGUgZnVuY3Rpb24KICAgICAgICAJcmV0dXJuIEZBTFNFOwoKICAgIAkvLyAuLi4gaWYgdGhlIHBhdGggaXMgbm90IHJlYWRhYmxlCiAgICAJfSBlbHNlaWYoIWlzX3JlYWRhYmxlKCRkaXJlY3RvcnkpKSB7CiAgICAgICAgCS8vIC4uLiB3ZSByZXR1cm4gZmFsc2UgYW5kIGV4aXQgdGhlIGZ1bmN0aW9uCiAgICAgICAgCXJldHVybiBGQUxTRTsKCiAgICAJLy8gLi4uIGVsc2UgaWYgdGhlIHBhdGggaXMgcmVhZGFibGUKICAgIAl9IGVsc2UgewoKICAgICAgICAJLy8gd2Ugb3BlbiB0aGUgZGlyZWN0b3J5CiAgICAgICAgCSRoYW5kbGUgPSBvcGVuZGlyKCRkaXJlY3RvcnkpOwoKICAgICAgICAJLy8gYW5kIHNjYW4gdGhyb3VnaCB0aGUgaXRlbXMgaW5zaWRlCiAgICAgICAgCXdoaWxlIChGQUxTRSAhPT0gKCRpdGVtID0gcmVhZGRpcigkaGFuZGxlKSkpIHsKICAgICAgICAgICAgCS8vIGlmIHRoZSBmaWxlcG9pbnRlciBpcyBub3QgdGhlIGN1cnJlbnQgZGlyZWN0b3J5CiAgICAgICAgICAgIAkvLyBvciB0aGUgcGFyZW50IGRpcmVjdG9yeQogICAgICAgICAgICAJaWYoJGl0ZW0gIT0gJy4nICYmICRpdGVtICE9ICcuLicpIHsKICAgICAgICAgICAgICAgIAkvLyB3ZSBidWlsZCB0aGUgbmV3IHBhdGggdG8gZGVsZXRlCiAgICAgICAgICAgICAgICAJJHBhdGggPSAkZGlyZWN0b3J5LicvJy4kaXRlbTsKCiAgICAgICAgICAgICAgICAJLy8gaWYgdGhlIG5ldyBwYXRoIGlzIGEgZGlyZWN0b3J5CiAgICAgICAgICAgICAgICAJaWYoaXNfZGlyKCRwYXRoKSkgewogICAgICAgICAgICAgICAgICAgIAkvLyB3ZSBjYWxsIHRoaXMgZnVuY3Rpb24gd2l0aCB0aGUgbmV3IHBhdGgKICAgICAgICAgICAgICAgICAgICAJcmVjdXJzaXZlX3JlbW92ZV9kaXJlY3RvcnkoJHBhdGgpOwoKICAgICAgICAgICAgICAgIAkvLyBpZiB0aGUgbmV3IHBhdGggaXMgYSBmaWxlCiAgICAgICAgICAgICAgICAJfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAJLy8gd2UgcmVtb3ZlIHRoZSBmaWxlCiAgICAgICAgICAgICAgICAgICAgCXVubGluaygkcGF0aCk7CiAgICAgICAgICAgICAgICAJfQogICAgICAgICAgICAJfQogICAgICAgIAl9CiAgICAgICAgCS8vIGNsb3NlIHRoZSBkaXJlY3RvcnkKICAgICAgICAJY2xvc2VkaXIoJGhhbmRsZSk7CgogICAgICAgIAkvLyBpZiB0aGUgb3B0aW9uIHRvIGVtcHR5IGlzIG5vdCBzZXQgdG8gdHJ1ZQogICAgICAgIAlpZigkZW1wdHkgPT0gRkFMU0UpIHsKICAgICAgICAgICAgCS8vIHRyeSB0byBkZWxldGUgdGhlIG5vdyBlbXB0eSBkaXJlY3RvcnkKICAgICAgICAgICAgCWlmKCFybWRpcigkZGlyZWN0b3J5KSkgewogICAgICAgICAgICAgICAgCS8vIHJldHVybiBmYWxzZSBpZiBub3QgcG9zc2libGUKICAgICAgICAgICAgICAgIAlyZXR1cm4gRkFMU0U7CiAgICAgICAgICAgIAl9CiAgICAgICAgCX0KICAgICAgICAJLy8gcmV0dXJuIHN1Y2Nlc3MKICAgICAgICAJcmV0dXJuIFRSVUU7CiAgICAJfQoJfQoKCXN0YXRpYyBwdWJsaWMgZnVuY3Rpb24gVXBkYXRlSGllcmFyY2h5UG9zaXRpb25zKCkgewogICAgCSRkYiA9IGNtc21zKCktPkdldERiKCk7CgogICAgCSRxdWVyeSA9ICJTRUxFQ1QgZG9jdW1lbnRzZWFyY2hfY2F0ZWdvcnlfaWQsIGRvY3VtZW50c2VhcmNoX2NhdGVnb3J5X25hbWUgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2RvY3VtZW50c2VhcmNoX2NhdGVnb3JpZXMiOwogICAgCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnkpOwogICAgCXdoaWxlICgkZGJyZXN1bHQgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSkgewoJCQkkY3VycmVudF9oaWVyYXJjaHlfcG9zaXRpb24gPSAiIjsKCQkJJGN1cnJlbnRfbG9uZ19uYW1lID0gJHJvd1snZG9jdW1lbnRzZWFyY2hfY2F0ZWdvcnlfbmFtZSddOwoJCQkkY29udGVudF9pZCA9ICRyb3dbJ2RvY3VtZW50c2VhcmNoX2NhdGVnb3J5X2lkJ107CgkJCSRjdXJyZW50X3BhcmVudF9pZCA9ICRyb3dbJ2RvY3VtZW50c2VhcmNoX2NhdGVnb3J5X2lkJ107CgkJCSRjb3VudCA9IDA7CgkgIAoJCQl3aGlsZSAoJGN1cnJlbnRfcGFyZW50X2lkID4gLTEpIHsKCSAgICAJCSRxdWVyeSA9ICJTRUxFQ1QgZG9jdW1lbnRzZWFyY2hfY2F0ZWdvcnlfaWQsIGRvY3VtZW50c2VhcmNoX2NhdGVnb3J5X25hbWUsIHBhcmVudF9pZCBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZG9jdW1lbnRzZWFyY2hfY2F0ZWdvcmllcyBXSEVSRSBkb2N1bWVudHNlYXJjaF9jYXRlZ29yeV9pZCA9ID8iOwoJICAgIAkJJHJvdzIgPSAkZGItPkdldFJvdygkcXVlcnksIGFycmF5KCRjdXJyZW50X3BhcmVudF9pZCkpOwoJICAgIAkJaWYgKCRyb3cyKSB7CgkJCQkJJGN1cnJlbnRfaGllcmFyY2h5X3Bvc2l0aW9uID0gc3RyX3BhZCgkcm93MlsnZG9jdW1lbnRzZWFyY2hfY2F0ZWdvcnlfaWQnXSwgNSwgJzAnLCBTVFJfUEFEX0xFRlQpIC4gIi4iIC4gJGN1cnJlbnRfaGllcmFyY2h5X3Bvc2l0aW9uOwoJCQkJCSRjdXJyZW50X2xvbmdfbmFtZSA9ICRyb3cyWydkb2N1bWVudHNlYXJjaF9jYXRlZ29yeV9uYW1lJ107CgkJCQkJJGN1cnJlbnRfcGFyZW50X2lkID0gJHJvdzJbJ3BhcmVudF9pZCddOwoJCQkJCSRjb3VudCsrOwoJICAgICAgCQl9IGVsc2UgewoJCQkJCSRjdXJyZW50X3BhcmVudF9pZCA9IDA7CgkgICAgICAJCX0KCSAgCQl9CgkgIAoJCQlpZiAoc3RybGVuKCRjdXJyZW50X2hpZXJhcmNoeV9wb3NpdGlvbikgPiAwKSB7CgkgICAgCQkkY3VycmVudF9oaWVyYXJjaHlfcG9zaXRpb24gPSBzdWJzdHIoJGN1cnJlbnRfaGllcmFyY2h5X3Bvc2l0aW9uLCAwLCBzdHJsZW4oJGN1cnJlbnRfaGllcmFyY2h5X3Bvc2l0aW9uKSAtIDEpOwoJICAJCX0KCSAgCgkJCWlmIChzdHJsZW4oJGN1cnJlbnRfbG9uZ19uYW1lKSA+IDApIHsKCSAgICAJCSRjdXJyZW50X2xvbmdfbmFtZSA9IHN1YnN0cigkY3VycmVudF9sb25nX25hbWUsIDAsIHN0cmxlbigkY3VycmVudF9sb25nX25hbWUpIC0gMyk7CgkgIAkJfQoJICAKCQkJJHF1ZXJ5ID0gIlVQREFURSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2RvY3VtZW50c2VhcmNoX2NhdGVnb3JpZXMgU0VUIGhpZXJhcmNoeSA9ID8sIGxvbmdfbmFtZSA9ID8gV0hFUkUgZG9jdW1lbnRzZWFyY2hfY2F0ZWdvcnlfaWQgPSA/IjsKCQkJJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGN1cnJlbnRfaGllcmFyY2h5X3Bvc2l0aW9uLCAkY3VycmVudF9sb25nX25hbWUsICRjb250ZW50X2lkKSk7CiAgICAgIAl9Cgl9CgoJc3RhdGljIHB1YmxpYyBmdW5jdGlvbiBkZWxldGVfc3RhdGljX3JvdXRlKCRkb2N1bWVudHNlYXJjaF9kb2N1bWVudF9pZCkgewogICAgCXJldHVybiBjbXNfcm91dGVfbWFuYWdlcjo6ZGVsX3N0YXRpYygnJywnRG9jdW1lbnRTZWFyY2gnLCRkb2N1bWVudHNlYXJjaF9kb2N1bWVudF9pZCk7CiAgCX0KCiAgCXN0YXRpYyBwdWJsaWMgZnVuY3Rpb24gcmVnaXN0ZXJfc3RhdGljX3JvdXRlKCRkb2N1bWVudHNlYXJjaF91cmwsJGRvY3VtZW50c2VhcmNoX2RvY3VtZW50X2lkLCRkZXRhaWxwYWdlID0gJycpIHsKICAgIAlpZiggJGRldGFpbHBhZ2UgPD0gMCApIHsKCQkJJGdDbXMgPSBjbXNtcygpOwoJCQkkbW9kdWxlID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdEb2N1bWVudFNlYXJjaCcpOwoJCQkkZGV0YWlscGFnZSA9ICRtb2R1bGUtPkdldFByZWZlcmVuY2UoJ2RldGFpbF9yZXR1cm5pZCcsLTEpOwoJCQlpZiggJGRldGFpbHBhZ2UgPT0gLTEgKSB7CgkgICAgCQkkZGV0YWlscGFnZSA9ICRnQ21zLT5HZXRDb250ZW50T3BlcmF0aW9ucygpLT5HZXREZWZhdWx0Q29udGVudCgpOwoJICAJCX0KICAgICAgCX0KICAgIAkkcGFybXMgPSBhcnJheSgnYWN0aW9uJz0+J2RldGFpbCcsJ3JldHVybmlkJz0+JGRldGFpbHBhZ2UsCgkJCSdkb2N1bWVudGlkJz0+JGRvY3VtZW50c2VhcmNoX2RvY3VtZW50X2lkKTsKCiAgICAJJHJvdXRlID0gQ21zUm91dGU6Om5ld19idWlsZGVyKCRkb2N1bWVudHNlYXJjaF91cmwsJ0RvY3VtZW50U2VhcmNoJywkZG9jdW1lbnRzZWFyY2hfZG9jdW1lbnRfaWQsJHBhcm1zLFRSVUUpOwogICAgCXJldHVybiBjbXNfcm91dGVfbWFuYWdlcjo6YWRkX3N0YXRpYygkcm91dGUpOwogIAl9Cgp9IC8vIGVuZCBvZiBjbGFzcwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/class.documentsearch_ops.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IERvY3VtZW50U2VhcmNoIChjKSAyMDEzIGJ5IE9saXZlciBTZWRkb24gCiMgICAgICAgICAob2xpdmVyQHRocmVlZm9sZC5jby51aykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gcHJvdmlkZSBQREYgYW5kIFdvcmQgZG9jdW1lbnQKIyAgY29udGVudCBzZWFyY2hhYmlsaXR5LgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKZmluYWwgY2xhc3MgZG9jdW1lbnRzZWFyY2hfb3BzIHsKCglwcm90ZWN0ZWQgZnVuY3Rpb24gX19jb25zdHJ1Y3QoKSB7fQoKCXByaXZhdGUgc3RhdGljICRfY2F0ZWdvcmllc19sb2FkZWQ7Cglwcml2YXRlIHN0YXRpYyAkX2NhY2hlZF9jYXRlZ29yaWVzOwoKCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X2NhdGVnb3JpZXMoJGlkLCRwYXJhbXMsJHJldHVybmlkPS0xKSB7CiAgICAJJHRtcCA9IHNlbGY6OmdldF9hbGxfY2F0ZWdvcmllcygpOwogICAgCWlmKCAhY291bnQoJHRtcCkgKSByZXR1cm47CgogICAgCSRjYXRpbmZvID0gYXJyYXkoKTsKICAgIAlpZiggIWlzc2V0KCRwYXJhbXNbJ2NhdGVnb3J5J10pIHx8ICRwYXJhbXNbJ2NhdGVnb3J5J10gPT0gJycgKSB7CgkgIAkJJGNhdGluZm8gPSAkdG1wOwogICAgCX0gZWxzZSB7CgkgIAkJJGNhdGVnb3JpZXMgPSBleHBsb2RlKCcsJywgJHBhcmFtc1snY2F0ZWdvcnknXSk7CgkgIAkJZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJHRtcCk7ICRpKysgKSB7CgkgICAgCWlmKCAhY291bnQoJGNhdGVnb3JpZXMpIHx8IGluX2FycmF5KCR0bXBbJGldWydkb2N1bWVudHNlYXJjaF9jYXRlZ29yeV9uYW1lJ10sJGNhdGVnb3JpZXMpICkgewoJCSAgCQkkY2F0aW5mb1tdID0gJHRtcFskaV07CgkgICAgCX0KCSAgCX0KICAgIH0KCiAgICB1bnNldCgkdG1wKTsKICAgIGlmKCAhY291bnQoJGNhdGluZm8pICkgcmV0dXJuOwoKICAgICRjYXRfaWRzID0gYXJyYXkoKTsKICAgIGZvciggJGkgPSAwOyAkaSA8IGNvdW50KCRjYXRpbmZvKTsgJGkrKyApIHsKCSAgJGNhdF9pZHNbXSA9ICRjYXRpbmZvWyRpXVsnZG9jdW1lbnRzZWFyY2hfY2F0ZWdvcnlfaWQnXTsKICAgIH0KICAgIHNvcnQoJGNhdF9pZHMpOwogICAgJGNhdF9pZHMgPSBhcnJheV91bmlxdWUoJGNhdF9pZHMpOwoKICAgIC8vIGdldCBjb3VudHMuCiAgICAkZGVwdGggPSAxOwogICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKICAgICRjb3VudHMgPSBhcnJheSgpOyAgewogICAgICAkcTIgPSAnU0VMRUNUIGRvY3VtZW50c2VhcmNoX2NhdGVnb3J5X2lkLENPVU5UKGRvY3VtZW50c2VhcmNoX2lkKSBBUyBjbnQgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2RvY3VtZW50c2VhcmNoIFdIRVJFIGRvY3VtZW50c2VhcmNoX2NhdGVnb3J5X2lkIElOICgnOwogICAgICAkcTIgLj0gaW1wbG9kZSgnLCcsJGNhdF9pZHMpLicpJzsKICAgICAgJHEyIC49ICcgR1JPVVAgQlkgZG9jdW1lbnRzZWFyY2hfY2F0ZWdvcnlfaWQnOwogICAgICAkdG1wID0gJGRiLT5HZXRBcnJheSgkcTIpOwogICAgICBpZiggY291bnQoJHRtcCkgKQl7CgkgICAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJHRtcCk7ICRpKysgKSB7CgkgICAgICAkY291bnRzWyR0bXBbJGldWydkb2N1bWVudHNlYXJjaF9jYXRlZ29yeV9pZCddXSA9ICR0bXBbJGldWydjbnQnXTsKCSAgICB9CgkgIH0KICAgIH0KCiAgICAkcm93Y291bnRlcj0wOwogICAgJGl0ZW1zID0gYXJyYXkoKTsKICAgICRkZXB0aCA9IDE7CiAgICBmb3IoICRpID0gMDsgJGkgPCBjb3VudCgkY2F0aW5mbyk7ICRpKysgKSB7CgkgICRyb3cgPSYgJGNhdGluZm9bJGldOwoJICAkcm93WydpbmRleCddID0gJHJvd2NvdW50ZXIrKzsKCSAgJHJvd1snY291bnQnXSA9IChpc3NldCgkY291bnRzWyRyb3dbJ2RvY3VtZW50c2VhcmNoX2NhdGVnb3J5X2lkJ11dKSk/JGNvdW50c1skcm93Wydkb2N1bWVudHNlYXJjaF9jYXRlZ29yeV9pZCddXTowOwoJICAkcm93WydwcmV2ZGVwdGgnXSA9ICRkZXB0aDsKCSAgJGRlcHRoID0gY291bnQoZXhwbG9kZSgnLicsICRyb3dbJ2hpZXJhcmNoeSddKSk7CgkgICRyb3dbJ2RlcHRoJ109JGRlcHRoOwoKCSAgLy8gY2hhbmdlcyBzbyB0aGF0IHBhcmFtZXRlcnMgc3VwcGxpZWQgdG8gdGhlIHRhZwoJICAvLyBnZXRzIGNhcnJpZWQgZG93biB0aHJvdWdoIHRoZSBsaW5rcwoJICAvLyBzY3JldyBwcmV0dHkgdXJscwoJICAkcGFybXMgPSAkcGFyYW1zOwoJICB1bnNldCgkcGFybXNbJ2Jyb3dzZWNhdCddKTsKCSAgdW5zZXQoJHBhcm1zWydjYXRlZ29yeSddKTsKCSAgJHBhcm1zWydjYXRlZ29yeV9pZCddID0gJHJvd1snZG9jdW1lbnRzZWFyY2hfY2F0ZWdvcnlfaWQnXTsKCgkgICRwYWdlaWQgPSAoaXNzZXQoJHBhcmFtc1snZGV0YWlscGFnZSddKSAmJiAkcGFyYW1zWydkZXRhaWxwYWdlJ10hPScnKT8kcGFyYW1zWydkZXRhaWxwYWdlJ106JHJldHVybmlkOwoJICAkbW9kID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdEb2N1bWVudFNlYXJjaCcpOwoJICAkcm93Wyd1cmwnXSA9ICRtb2QtPkNyZWF0ZUxpbmsoJGlkLCdzdW1tYXJ5JywkcGFnZWlkLCRyb3dbJ2RvY3VtZW50c2VhcmNoX2NhdGVnb3J5X25hbWUnXSwkcGFybXMsJycsdHJ1ZSk7CgkgICRpdGVtc1tdID0gJHJvdzsKICAgIH0KICAgIHJldHVybiAkaXRlbXM7CiAgfQoKCglwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9hbGxfY2F0ZWdvcmllcygpIHsKICAgIAlpZiggIXNlbGY6OiRfY2F0ZWdvcmllc19sb2FkZWQgKSB7CgkJCSRkYiA9IGNtc21zKCktPkdldERiKCk7CgkJCSRxdWVyeSA9ICJTRUxFQ1QgKiBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZG9jdW1lbnRzZWFyY2hfY2F0ZWdvcmllcyBPUkRFUiBCWSBoaWVyYXJjaHkiOwoJCQkkZGJyZXN1bHQgPSAkZGItPkdldEFycmF5KCRxdWVyeSk7CgkJCWlmKCAkZGJyZXN1bHQgKSB7CgkgICAgCQlzZWxmOjokX2NhY2hlZF9jYXRlZ29yaWVzID0gJGRicmVzdWx0OwoJICAJCX0KCQkJc2VsZjo6JF9jYXRlZ29yaWVzX2xvYWRlZCA9IFRSVUU7CiAgICAgIAl9CiAgICAJcmV0dXJuIHNlbGY6OiRfY2FjaGVkX2NhdGVnb3JpZXM7Cgl9CgoKCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X2NhdGVnb3J5X2xpc3QoKSB7CiAgICAJc2VsZjo6Z2V0X2FsbF9jYXRlZ29yaWVzKCk7CiAgICAJJGNhdGVnb3J5bGlzdCA9IGFycmF5KCk7CiAgICAJZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoc2VsZjo6JF9jYWNoZWRfY2F0ZWdvcmllcyk7ICRpKysgKSB7CgkJCSRyb3cgPSBzZWxmOjokX2NhY2hlZF9jYXRlZ29yaWVzWyRpXTsKCQkJJGNhdGVnb3J5bGlzdFskcm93Wydsb25nX25hbWUnXV0gPSAkcm93Wydkb2N1bWVudHNlYXJjaF9jYXRlZ29yeV9pZCddOwogICAgICAJfQoKICAgIAlyZXR1cm4gJGNhdGVnb3J5bGlzdDsKICAJfQoKCiAgCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X2NhdGVnb3J5X25hbWVzX2J5X2lkKCkgewogICAgCXNlbGY6OmdldF9hbGxfY2F0ZWdvcmllcygpOwogICAgCSRsaXN0ID0gYXJyYXkoKTsKICAgIAlmb3IoICRpID0gMDsgJGkgPCBjb3VudChzZWxmOjokX2NhY2hlZF9jYXRlZ29yaWVzKTsgJGkrKyApIHsKCQkJJGxpc3Rbc2VsZjo6JF9jYWNoZWRfY2F0ZWdvcmllc1skaV1bJ2RvY3VtZW50c2VhcmNoX2NhdGVnb3J5X2lkJ11dID0gc2VsZjo6JF9jYWNoZWRfY2F0ZWdvcmllc1skaV1bJ2RvY3VtZW50c2VhcmNoX2NhdGVnb3J5X25hbWUnXTsKICAgICAgCX0KICAgIAlyZXR1cm4gJGxpc3Q7CiAgCX0KCiAgCiAgCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X2NhdGVnb3J5X25hbWVfZnJvbV9pZCgkaWQpIHsKICAgIAlzZWxmOjpnZXRfYWxsX2NhdGVnb3JpZXMoKTsKICAgIAlmb3IoICRpID0gMDsgJGkgPCBjb3VudChzZWxmOjokX2NhY2hlZF9jYXRlZ29yaWVzKTsgJGkrKyApIHsKCQkJaWYoICRpZCA9PSBzZWxmOjokX2NhY2hlZF9jYXRlZ29yaWVzWyRpXVsnZG9jdW1lbnRzZWFyY2hfY2F0ZWdvcnlfaWQnXSApIHsKCSAgICAJCXJldHVybiBzZWxmOjokX2NhY2hlZF9jYXRlZ29yaWVzWyRpXVsnZG9jdW1lbnRzZWFyY2hfY2F0ZWdvcnlfbmFtZSddOwoJICAJCX0KICAgICAgCX0KICAJfQoKCglzdGF0aWMgcHJpdmF0ZSBmdW5jdGlvbiAmZ2V0X2FydGljbGVfZnJvbV9yb3coJHJvdywkZ2V0X2ZpZWxkcyA9ICdQVUJMSUMnKSB7CiAgICAJaWYoICFpc19hcnJheSgkcm93KSApIHJldHVybjsKICAgIAkkYXJ0aWNsZSA9IG5ldyBkb2N1bWVudHNlYXJjaF9hcnRpY2xlOwogICAgCWZvcmVhY2goICRyb3cgYXMgJGtleSA9PiAkdmFsdWUgKSB7CgkJCXN3aXRjaCggJGtleSApIHsKCSAgCQljYXNlICdkb2N1bWVudHNlYXJjaF9pZCc6CgkgICAgCQkkYXJ0aWNsZS0+aWQgPSAkdmFsdWU7CgkgICAgCQlicmVhazsKCgkgIAkJY2FzZSAnZG9jdW1lbnRzZWFyY2hfY2F0ZWdvcnlfaWQnOgoJICAgIAkJJGFydGljbGUtPmNhdGVnb3J5X2lkID0gJHZhbHVlOwoJICAgIAkJYnJlYWs7CgoJICAJCWNhc2UgJ2RvY3VtZW50c2VhcmNoX3RpdGxlJzoKCSAgICAJCSRhcnRpY2xlLT50aXRsZSA9ICR2YWx1ZTsKCSAgICAJCWJyZWFrOwoKCSAgCQljYXNlICdkb2N1bWVudHNlYXJjaF9kYXRhJzoKCSAgICAJCSRhcnRpY2xlLT5jb250ZW50ID0gJHZhbHVlOwoJICAgIAkJYnJlYWs7CgoJICAJCWNhc2UgJ2RvY3VtZW50c2VhcmNoX2RhdGUnOgoJICAgIAkJJGFydGljbGUtPnBvc3RkYXRlID0gJHZhbHVlOwoJICAgIAkJYnJlYWs7CgoJICAJCWNhc2UgJ3N1bW1hcnknOgoJICAgIAkJJGFydGljbGUtPnN1bW1hcnkgPSAkdmFsdWU7CgoJICAJCWNhc2UgJ3N0YXJ0X3RpbWUnOgoJICAgIAkJJGFydGljbGUtPnN0YXJ0ZGF0ZSA9ICR2YWx1ZTsKCSAgICAJCWJyZWFrOwoKCSAgCQljYXNlICdlbmRfdGltZSc6CgkgICAgCQkkYXJ0aWNsZS0+ZW5kZGF0ZSA9ICR2YWx1ZTsKCSAgICAJCWJyZWFrOwoKCSAgCQljYXNlICdjcmVhdGVfZGF0ZSc6CgkgICAgCQkkYXJ0aWNsZS0+Y3JlYXRlX2RhdGUgPSAkdmFsdWU7CgkgICAgCQlicmVhazsKCgkgIAkJY2FzZSAnbW9kaWZpZWRfZGF0ZSc6CgkgICAgCQkkYXJ0aWNsZS0+bW9kaWZpZWRfZGF0ZSA9ICR2YWx1ZTsKCSAgICAJCWJyZWFrOwoKCSAgCQljYXNlICdhdXRob3JfaWQnOgoJICAgIAkJJGFydGljbGUtPmF1dGhvcl9pZCA9ICR2YWx1ZTsKCSAgICAJCWJyZWFrOwoKCSAgCQljYXNlICdkb2N1bWVudHNlYXJjaF9leHRyYSc6CgkgICAgCQkkYXJ0aWNsZS0+ZXh0cmEgPSAkdmFsdWU7CgkgICAgCQlicmVhazsKCgkgIAkJY2FzZSAnZG9jdW1lbnRzZWFyY2hfdXJsJzoKCSAgICAJCSRhcnRpY2xlLT5kb2N1bWVudHNlYXJjaF91cmwgPSAkdmFsdWU7CgkgICAgCQlicmVhazsKCgkgIAkJY2FzZSAncG9zdGRhdGVfTW9udGgnOgoJICAgIAkJJG5ld3MtPnBvc3RkYXRlID0gbWt0aW1lKCRwYXJhbXNbJ3Bvc3RkYXRlX0hvdXInXSwgJHBhcmFtc1sncG9zdGRhdGVfTWludXRlJ10sICRwYXJhbXNbJ3Bvc3RkYXRlX1NlY29uZCddLCAkcGFyYW1zWydwb3N0ZGF0ZV9Nb250aCddLCAkcGFyYW1zWydwb3N0ZGF0ZV9EYXknXSwgJHBhcmFtc1sncG9zdGRhdGVfWWVhciddKTsKCSAgICAJCWJyZWFrOwoJICAJCX0KCQl9CgogICAgCWlmKCAkZ2V0X2ZpZWxkcyAmJiAkZ2V0X2ZpZWxkcyAhPSAnTk9ORScgJiYgJGFydGljbGUtPmlkICkgewoJCQlzZWxmOjpwcmVsb2FkRmllbGREYXRhKCRhcnRpY2xlLT5pZCk7CgkJCSRmaWVsZHMgPSBzZWxmOjpnZXRfZmllbGRzKCRhcnRpY2xlLT5pZCk7CgkJCWlmKCBjb3VudCgkZmllbGRzKSApIHsKCSAgICAJCWZvcmVhY2goICRmaWVsZHMgYXMgJGZpZWxkICkgewoJCQkJCSRhcnRpY2xlLT5zZXRfZmllbGQoJGZpZWxkKTsKCSAgICAgIAkJfQoJICAJCX0KCQl9CgogICAgCXJldHVybiAkYXJ0aWNsZTsKCX0KCglzdGF0aWMgcHVibGljIGZ1bmN0aW9uICZnZXRfbGF0ZXN0X2FydGljbGUoJGZvcl9kaXNwbGF5ID0gVFJVRSkgewogICAgCSRkYiA9IGNtc21zKCktPkdldERiKCk7CiAgICAJJG5vdyA9ICRkYi0+RGJUaW1lU3RhbXAodGltZSgpKTsKICAgIAkkcXVlcnkgPSAiU0VMRUNUIG1uLiosIG1kYy5kb2N1bWVudHNlYXJjaF9jYXRlZ29yeV9uYW1lIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9kb2N1bWVudHNlYXJjaCBtZCBMRUZUIE9VVEVSIEpPSU4gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9kb2N1bWVudHNlYXJjaF9jYXRlZ29yaWVzIG1kYyBPTiBtZGMuZG9jdW1lbnRzZWFyY2hfY2F0ZWdvcnlfaWQgPSBtZC5kb2N1bWVudHNlYXJjaF9jYXRlZ29yeV9pZCBXSEVSRSAiOwogICAgCSRxdWVyeSAuPSAiKCIuJGRiLT5JZk51bGwoJ3N0YXJ0X3RpbWUnLCRkYi0+REJUaW1lU3RhbXAoMSkpLiIgPCAkbm93KSBBTkQgIjsKICAgIAkkcXVlcnkgLj0gIigoIi4kZGItPklmTnVsbCgnZW5kX3RpbWUnLCRkYi0+REJUaW1lU3RhbXAoMSkpLiIgPSAiLiRkYi0+REJUaW1lU3RhbXAoMSkuIikgT1IgKGVuZF90aW1lID4gJG5vdykpICI7CiAgICAJJHF1ZXJ5IC49ICdPUkRFUiBCWSBkb2N1bWVudHNlYXJjaF9kYXRlIERFU0MgTElNSVQgMSc7CiAgICAJJHJvdyA9ICRkYi0+R2V0Um93KCRxdWVyeSk7CgogICAgCXJldHVybiBzZWxmOjpnZXRfYXJ0aWNsZV9mcm9tX3Jvdygkcm93LCgkZm9yX2Rpc3BsYXkpPydQVUJMSUMnOidBTEwnKTsgICAgCgl9CgoKCXN0YXRpYyBwdWJsaWMgZnVuY3Rpb24gJmdldF9hcnRpY2xlX2J5X2lkKCRhcnRpY2xlX2lkLCRmb3JfZGlzcGxheSA9IFRSVUUsJGFsbG93X2V4cGlyZWQgPSBGQUxTRSkgewogICAgCSRkYiA9IGNtc21zKCktPkdldERiKCk7CiAgICAJJHF1ZXJ5ID0gJ1NFTEVDVCBtbi4qLCBtZGMuZG9jdW1lbnRzZWFyY2hfY2F0ZWdvcnlfbmFtZSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZG9jdW1lbnRzZWFyY2ggbWQgCiAgICAgICAgCUxFRlQgT1VURVIgSk9JTiAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2RvY3VtZW50c2VhcmNoX2NhdGVnb3JpZXMgbWRjIE9OIG1kYy5kb2N1bWVudHNlYXJjaF9jYXRlZ29yeV9pZCA9IG1kLmRvY3VtZW50c2VhcmNoX2NhdGVnb3J5X2lkIAogICAgICAgICAgICBXSEVSRSBkb2N1bWVudHNlYXJjaF9pZCA9ID8KICAgICAgICAgICAgQU5EICgnLiRkYi0+aWZOdWxsKCdzdGFydF90aW1lJywkZGItPkRiVGltZVN0YW1wKDEpKS4nIDwgTk9XKCkpJzsKICAgIAlpZiggISRhbGxvd19leHBpcmVkICkgewogICAgICAJCSRxdWVyeSAuPSAnQU5EICgoJy4kZGItPmlmTnVsbCgnZW5kX3RpbWUnLCRkYi0+RGJUaW1lU3RhbXAoMSkpLicgPSAnLiRkYi0+RGJUaW1lU3RhbXAoMSkuJykgT1IgKGVuZF90aW1lID4gTk9XKCkpKSc7CiAgICAJfQogICAgCSRyb3cgPSAkZGItPkdldFJvdygkcXVlcnksIGFycmF5KCRhcnRpY2xlX2lkKSk7CgogICAgCSRyZXMgPSBudWxsOwogICAgCWlmKCAhJHJvdyApIHJldHVybiAkcmVzOwogICAgCiAgICAJcmV0dXJuIHNlbGY6OmdldF9hcnRpY2xlX2Zyb21fcm93KCRyb3csKCRmb3JfZGlzcGxheSk/J1BVQkxJQyc6J0FMTCcpOyAgICAKICAJfQoKCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gcHJlbG9hZEZpZWxkRGF0YSgkaWRzKSB7CiAgICAJaWYoICFpc19hcnJheSgkaWRzKSAmJiBpc19udW1lcmljKCRpZHMpICkgewoJCQkkaWRzID0gYXJyYXkoJGlkcyk7CiAgICAgIAl9CgogICAgCSR0bXAgPSBhcnJheSgpOwogICAgCWZvciggJGkgPSAwOyAkaSA8IGNvdW50KCRpZHMpOyAkaSsrICkgewoJCQkkbiA9IChpbnQpJGlkc1skaV07CgkJCWlmKCAkbiA8IDAgKSBjb250aW51ZTsKCQkJaWYoIGlzX2FycmF5KHNlbGY6OiRfY2FjaGVkX2ZpZWxkdmFscykgJiYgaXNzZXQoc2VsZjo6JF9jYWNoZWRfZmllbGR2YWxzWyRuXSkgKSBjb250aW51ZTsgCgkJCSR0bXBbXSA9ICRuOwogICAgICAJfQogICAgCWlmKCAhaXNfYXJyYXkoJHRtcCkgfHwgIWNvdW50KCR0bXApICkgcmV0dXJuOwogICAgCXNvcnQoJHRtcCk7CiAgICAJJGlkbGlzdCA9IGFycmF5X3VuaXF1ZSgkdG1wKTsKCiAgICAJJGZpZWxkZGVmcyA9IHNlbGY6OmdldF9maWVsZGRlZnMoKTsKICAgIAlpZiggIWNvdW50KCRmaWVsZGRlZnMpICkgcmV0dXJuOwoKICAgIAkkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAgCSRxdWVyeSA9ICdTRUxFQ1QgQS5kb2N1bWVudHNlYXJjaF9pZCxBLmZpZWxkZGVmX2lkLEEudmFsdWUgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2RvY3VtZW50c2VhcmNoX2ZpZWxkdmFscyBBCiAgICAgICAgCUlOTkVSIEpPSU4gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9kb2N1bWVudHNlYXJjaF9maWVsZGRlZnMgQgogICAgICAgICAgICBPTiBBLmZpZWxkZGVmX2lkID0gQi5pZAogICAgICAgICAgICBXSEVSRSBkb2N1bWVudHNlYXJjaF9pZCBJTiAoJy5pbXBsb2RlKCcsJywkaWRsaXN0KS4nKSAKICAgICAgICAgICAgT1JERVIgQlkgQS5kb2N1bWVudHNlYXJjaF9pZCxCLml0ZW1fb3JkZXInOwogICAgCSRkYnIgPSAkZGItPkdldEFycmF5KCRxdWVyeSk7CiAgICAJaWYoICEkZGJyICkgcmV0dXJuOwoKICAgIAkvLyBpbml0aWFsaXphdGlvbi4KICAgIAlpZiggIWlzX2FycmF5KHNlbGY6OiRfY2FjaGVkX2ZpZWxkdmFscykgKSBzZWxmOjokX2NhY2hlZF9maWVsZHZhbHMgPSBhcnJheSgpOwogICAgCWZvcmVhY2goICRpZGxpc3QgYXMgJGRvY3VtZW50c2VhcmNoX2lkICkgewoJCQlpZiggaXNzZXQoc2VsZjo6JF9jYWNoZWRfZmllbGR2YWxzWyRkb2N1bWVudHNlYXJjaF9pZF0pICkgY29udGludWU7CgogCQkJc2VsZjo6JF9jYWNoZWRfZmllbGR2YWxzWyRkb2N1bWVudHNlYXJjaF9pZF0gPSBhcnJheSgpOwogCQkJZm9yZWFjaCggJGZpZWxkZGVmcyBhcyAkZmllbGQgKSB7CiAJICAgIAkJJG9iaiA9IG5ldyBkb2N1bWVudHNlYXJjaF9maWVsZDsKIAkgICAgCQlmb3JlYWNoKCAkZmllbGQgYXMgJGsgPT4gJHYgKSB7CgkJCQkJJG9iai0+JGsgPSAkdjsKCSAgICAgIAkJfQogCSAgICAJCXNlbGY6OiRfY2FjaGVkX2ZpZWxkdmFsc1skZG9jdW1lbnRzZWFyY2hfaWRdWyRmaWVsZFsnaWQnXV0gPSAkb2JqOwogCSAgCQl9CiAgICAgIAl9CgogICAgCS8vIGZpbGwgd2l0aCB2YWx1ZXMuCiAgICAJZm9yZWFjaCggJGRiciBhcyAkcm93ICkgewoJCQkkZG9jdW1lbnRzZWFyY2hfaWQgPSAkcm93Wydkb2N1bWVudHNlYXJjaF9pZCddOwoJCQkkZmxkZGVmX2lkID0gJHJvd1snZmllbGRkZWZfaWQnXTsKCQkJJHZhbHVlID0gJHJvd1sndmFsdWUnXTsKCgkJCWlmKCAhaXNzZXQoc2VsZjo6JF9jYWNoZWRfZmllbGR2YWxzWyRkb2N1bWVudHNlYXJjaF9pZF1bJGZsZGRlZl9pZF0pICkgY29udGludWU7CgkJCXNlbGY6OiRfY2FjaGVkX2ZpZWxkdmFsc1skZG9jdW1lbnRzZWFyY2hfaWRdWyRmbGRkZWZfaWRdLT52YWx1ZSA9ICR2YWx1ZTsKICAgICAgCX0KICAJfQoKCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X2ZpZWxkcygkZG9jdW1lbnRzZWFyY2hfaWQsJHB1YmxpY19vbmx5ID0gdHJ1ZSwkZmlsbGVkX29ubHkgPSBGQUxTRSkgewogICAgCWlmKCAkZG9jdW1lbnRzZWFyY2hfaWQgPD0gMCApIHJldHVybjsKICAgIAlpZiggIWlzc2V0KHNlbGY6OiRfY2FjaGVkX2ZpZWxkdmFsc1skZG9jdW1lbnRzZWFyY2hfaWRdKSApIHJldHVybjsKCiAgICAJJHJlc3VsdHMgPSBhcnJheSgpOwogICAgCWZvcmVhY2goIHNlbGY6OiRfY2FjaGVkX2ZpZWxkdmFsc1skZG9jdW1lbnRzZWFyY2hfaWRdIGFzICRmaWQgPT4gJGRhdGEgKSB7CgkJCWlmKCAhJHB1YmxpY19vbmx5IHx8ICRkYXRhLT5wdWJsaWMgKSB7CgkgICAgCQlpZiggISRmaWxsZWRfb25seSB8fCAoaXNzZXQoJGRhdGEtPnZhbHVlKSAmJiAkZGF0YS0+dmFsdWUgIT0gJycpICkgewoJICAgICAgCQkJJHJlc3VsdHNbJGRhdGEtPm5hbWVdID0gJGRhdGE7CgkgICAgCQl9CgkgIAkJfQogICAgICAJfQogICAgCXJldHVybiAkcmVzdWx0czsKICAJfQp9IC8vIGVuZCBvZiBjbGFzcwoKIwojIEVPRgojCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.pdf2text.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCi8qKg0KICogQ29weXJpZ2h0IDIwMDksIFRob21hcyBDaGVzdGVyDQogKg0KICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7DQogKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuDQogKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQNCiAqDQogKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wDQogKg0KICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQ0KICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywNCiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLg0KICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZA0KICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuDQogKg0KICogQHBhY2thZ2UgUGRmMlRleHQNCiAqIEBhdXRob3IgVGhvbWFzIENoZXN0ZXINCiAqIEBsaW5rIGh0dHBzOi8vbGF1bmNocGFkLm5ldC9wZGYydGV4dCBQZGYyVGV4dCBQcm9qZWN0DQogKiBAY29weXJpZ2h0IENvcHlyaWdodCAyMDA5LCBUaG9tYXMgQ2hlc3Rlcg0KICogQGxpY2Vuc2UgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMA0KICogQHZlcnNpb24gMS4xLjANCiAqLw0KDQovKioNCiAqIEludGVyZmFjZSBkZXNjcmliaW5nIHRoZSB0eXBlcyBvZiBkYXRhIGFuZCBtZXRhZGF0YSB0aGF0DQogKiBhcmUgYXZhaWxhYmxlIGZyb20gdGhlIHBkZjJ0ZXh0IG9iamVjdC4NCiAqIEBhY2Nlc3MgcHVibGljDQogKiBAcGFja2FnZSBQZGYyVGV4dA0KICogQGF1dGhvciBUaG9tYXMgQ2hlc3Rlcg0KICovDQppbnRlcmZhY2UgVENoZXN0ZXJfaVBERkluZm8NCnsNCiAgICAvKioNCiAgICAgKiBUaGUgZG9jdW1lbnQncyB0aXRsZS4NCiAgICAgKiBAcmV0dXJuIHN0cmluZw0KICAgICAqIEBhY2Nlc3MgcHVibGljDQogICAgICovDQogICAgcHVibGljIGZ1bmN0aW9uIGdldFRpdGxlKCk7DQoNCiAgICAvKioNCiAgICAgKiBUaGUgbmFtZSBvZiB0aGUgcGVyc29uIHdobyBjcmVhdGVkIHRoZSBkb2N1bWVudC4NCiAgICAgKiBAcmV0dXJuIHN0cmluZw0KICAgICAqIEBhY2Nlc3MgcHVibGljDQogICAgICovDQogICAgcHVibGljIGZ1bmN0aW9uIGdldEF1dGhvcigpOw0KDQogICAgLyoqDQogICAgICogVGhlIHN1YmplY3Qgb2YgdGhlIGRvY3VtZW50Lg0KICAgICAqIEByZXR1cm4gc3RyaW5nDQogICAgICogQGFjY2VzcyBwdWJsaWMNCiAgICAgKi8NCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0U3ViamVjdCgpOw0KDQogICAgLyoqDQogICAgICogS2V5d29yZHMgYXNzb2NpYXRlZCB3aXRoIHRoZSBkb2N1bWVudC4NCiAgICAgKiBAcmV0dXJuIHN0cmluZw0KICAgICAqIEBhY2Nlc3MgcHVibGljDQogICAgICovDQogICAgcHVibGljIGZ1bmN0aW9uIGdldEtleXdvcmRzKCk7DQoNCiAgICAvKioNCiAgICAgKiBUaGUgbmFtZSBvZiB0aGUgYXBwbGljYXRpb24gdGhhdCBvcmlnaW5hbGx5IGNyZWF0ZWQgdGhlIGRvY3VtZW50DQogICAgICogYmVmb3JlIGl0IHdhcyBjb252ZXJ0ZWQgdG8gUERGIGZvcm1hdC4NCiAgICAgKiBAcmV0dXJuIHN0cmluZw0KICAgICAqIEBhY2Nlc3MgcHVibGljDQogICAgICovDQogICAgcHVibGljIGZ1bmN0aW9uIGdldENyZWF0b3IoKTsNCg0KICAgIC8qKg0KICAgICAqIFRoZSBuYW1lIG9mIHRoZSBhcHBsaWNhdGlvbiB0aGF0IGNvbnZlcnRlZCB0aGUgb3JpZ2luYWwgZG9jdW1lbnQNCiAgICAgKiBpbnRvIFBERiBmb3JtYXQuDQogICAgICogQHJldHVybiBzdHJpbmcNCiAgICAgKiBAYWNjZXNzIHB1YmxpYw0KICAgICAqLw0KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRQcm9kdWNlcigpOw0KDQogICAgLyoqDQogICAgICogVGhlIGh1bWFuLXJlYWRhYmxlIGRhdGUgYW5kIHRpbWUgd2hlbiB0aGUgUERGIHdhcyBjcmVhdGVkLg0KICAgICAqIEByZXR1cm4gc3RyaW5nDQogICAgICogQGFjY2VzcyBwdWJsaWMNCiAgICAgKi8NCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0Q3JlYXRpb25EYXRlKCk7DQoNCiAgICAvKioNCiAgICAgKiBUaGUgaHVtYW4tcmVhZGFibGUgZGF0ZSBhbmQgdGltZSBvZiB0aGUgbW9zdCByZWNlbnQgbW9kaWZpY2F0aW9uLg0KICAgICAqIEByZXR1cm4gc3RyaW5nDQogICAgICogQGFjY2VzcyBwdWJsaWMNCiAgICAgKi8NCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0TW9kRGF0ZSgpOw0KDQogICAgLyoqDQogICAgICogVGhlIHRleHR1YWwgY29udGVudHMgb2YgdGhlIFBERiBmaWxlLg0KICAgICAqIEByZXR1cm4gc3RyaW5nDQogICAgICogQGFjY2VzcyBwdWJsaWMNCiAgICAgKi8NCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0Q29udGVudHMoKTsNCn0NCg0KLyoqDQogKiBJbnRlcmZhY2UgZGVzY3JpYmluZyB0aGUgdHlwZXMgb2Ygc3RydWN0dXJhbCBkYXRhIHRoYXQNCiAqIGlzIGF2YWlsYWJsZSBmcm9tIHRoZSBwZGYydGV4dCBvYmplY3QuDQogKiBAYWNjZXNzIHB1YmxpYw0KICogQHBhY2thZ2UgUGRmMlRleHQNCiAqIEBhdXRob3IgVGhvbWFzIENoZXN0ZXINCiAqLw0KaW50ZXJmYWNlIFRDaGVzdGVyX2lQREZTdHJ1Y3R1cmUNCnsNCiAgICAvKioNCiAgICAgKiBSZXRyaWV2ZXMgdGhlIHBhcnNlZCBIZWFkZXIgc2VjdGlvbiBvZiB0aGUgUERGIGZpbGUuDQogICAgICogQHJldHVybiBzdHJpbmcNCiAgICAgKiBAYWNjZXNzIHB1YmxpYw0KICAgICAqLw0KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRIZWFkZXIoKTsNCg0KICAgIC8qKg0KICAgICAqIFJldHJpZXZlcyB0aGUgcGFyc2VkIFRyYWlsZXIgc2VjdGlvbiBvZiB0aGUgUERGIGZpbGUuDQogICAgICogQHJldHVybiBzdHJpbmcNCiAgICAgKiBAYWNjZXNzIHB1YmxpYw0KICAgICAqLw0KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRUcmFpbGVyKCk7DQoNCiAgICAvKioNCiAgICAgKiBSZXRyaWV2ZXMgdGhlIHBhcnNlZCBCb2R5IHNlY3Rpb24gb2YgdGhlIFBERiBmaWxlLg0KICAgICAqIEByZXR1cm4gc3RyaW5nDQogICAgICogQGFjY2VzcyBwdWJsaWMNCiAgICAgKi8NCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0Qm9keSgpOw0KDQogICAgLyoqDQogICAgICogUmV0cmlldmVzIHRoZSBwYXJzZWQgQ3Jvc3MtUmVmZXJlbmNlIHNlY3Rpb24gb2YgdGhlIFBERiBmaWxlLg0KICAgICAqIEByZXR1cm4gc3RyaW5nDQogICAgICogQGFjY2VzcyBwdWJsaWMNCiAgICAgKi8NCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0WHJlZigpOw0KfQ0KDQovKioNCiAqIENsYXNzIHdyYXBwZXIgYXJvdW5kIGFuIGFycmF5IG9mIGtleS92YWx1ZSBwYWlycw0KICogSGVyZSBpcyBhbiBleGFtcGxlOg0KICogPGNvZGU+DQogKiA8P3BocA0KICogICAgICRiYWcgPSBuZXcgVENoZXN0ZXJfU3RydWN0dXJlQmFnKCk7IC8vIENyZWF0ZXMgbmV3IGJhZw0KICogICAgICRiYWctPnRpdGxlID0gIk15IFRpdGxlIjsgICAgICAgICAgIC8vIEtleS92YWx1ZSAidGl0bGUiID09PiAiTXkgVGl0bGUiDQogKiAgICAgJHRpdGxlID0gJGJhZy0+dGl0bGU7ICAgICAgICAgICAgICAgLy8gR2V0ICJNeSBUaXRsZSIgdXNpbmcgInRpdGxlIiBrZXkNCiAqICAgICAkbmFtZSA9ICRiYWctPm5hbWU7ICAgICAgICAgICAgICAgICAvLyBFcnJvciAtIGtleSBkb2VzIG5vdCBleGlzdA0KICogPz4NCiAqIDwvY29kZT4NCiAqIEBhY2Nlc3MgcHVibGljDQogKiBAcGFja2FnZSBQZGYyVGV4dA0KICogQGF1dGhvciBUaG9tYXMgQ2hlc3Rlcg0KICovDQpjbGFzcyBUQ2hlc3Rlcl9TdHJ1Y3R1cmVCYWcNCnsNCiAgICAvKioNCiAgICAgKiBJbnRlcm5hbCBzdG9yZWQgaXMgaW1wbGVtZW50ZWQgYXMga2V5L3ZhbHVlIHBhaXJzDQogICAgICogQHZhciBhcnJheQ0KICAgICAqIEBhY2Nlc3MgcHJpdmF0ZQ0KICAgICAqLw0KICAgIHByaXZhdGUgJF9kYXRhID0gYXJyYXkoKTsNCiAgICANCiAgICAvKioNCiAgICAgKiBEZWZhdWx0IGNvbnN0cnVjdG9yDQogICAgICogQGFjY2VzcyBwdWJsaWMNCiAgICAgKi8NCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoKQ0KICAgIHsNCiAgICAgICAgLy8gUmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2UuDQogICAgfQ0KICAgIA0KICAgIC8qKg0KICAgICAqIEFkZCBhIGtleS92YWx1ZSBwYWlyIHRvIHRoZSBjb2xsZWN0aW9uLCBpZiB0aGUNCiAgICAgKiBrZXkgYWxyZWFkeSBleGlzdHMsIGl0cyB2YWx1ZSB3aWxsIGJlIG92ZXJ3cml0dGVuLg0KICAgICAqIEBwYXJhbSBzdHJpbmcgJG5hbWUgS2V5IHRvIGFzc29jaWF0ZSB3aXRoIHZhbHVlDQogICAgICogQHBhcmFtIG1peGVkICR2YWx1ZSBWYWx1ZSB0byBzdG9yZQ0KICAgICAqIEByZXR1cm4gdm9pZA0KICAgICAqIEBhY2Nlc3MgcHVibGljDQogICAgICovDQogICAgcHVibGljIGZ1bmN0aW9uIF9fc2V0KCRuYW1lLCAkdmFsdWUpDQogICAgew0KICAgICAgICAkdGhpcy0+X2RhdGFbJG5hbWVdID0gJHZhbHVlOw0KICAgIH0NCiAgICANCiAgICAvKioNCiAgICAgKiBSZXRyaWV2ZXMgYSB2YWx1ZSBmb3IgYSBzcGVjaWZpZWQga2V5LCBpZiB0aGUga2V5DQogICAgICogZG9lcyBub3QgZXhpc3QgYW4gZXJyb3Igd2lsbCBiZSB0cmlnZ2VyZWQuDQogICAgICogQHBhcmFtICRuYW1lIEtleSB0byByZXRyaWV2ZSB2YWx1ZSBmb3INCiAgICAgKiBAcmV0dXJuIG1peGVkIFZhbHVlIGFzc29jaWF0ZWQgd2l0aCBrZXkgb3IgbnVsbCBpZiBlcnJvciBvY2N1cnJlZA0KICAgICAqIEBhY2Nlc3MgcHVibGljDQogICAgICovDQogICAgcHVibGljIGZ1bmN0aW9uIF9fZ2V0KCRuYW1lKQ0KICAgIHsNCiAgICAgICAgaWYgKGFycmF5X2tleV9leGlzdHMoJG5hbWUsICR0aGlzLT5fZGF0YSkpIHsNCiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+X2RhdGFbJG5hbWVdOw0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICAvLyBBbiB1bmRlZmluZWQgYXJyYXkga2V5IHdpbGwgdHJpZ2dlciBhbiBlcnJvcg0KICAgICAgICAkdHJhY2UgPSBkZWJ1Z19iYWNrdHJhY2UoKTsNCiAgICAgICAgdHJpZ2dlcl9lcnJvcigNCiAgICAgICAgICAgICJVbmRlZmluZWQgcHJvcGVydHkgdmlhIF9fZ2V0KCk6ICIgLiAkbmFtZSAuDQogICAgICAgICAgICAiIGluICIgLiAkdHJhY2VbMF1bJ2ZpbGUnXSAuICIgb24gbGluZSAiIC4NCiAgICAgICAgICAgICR0cmFjZVswXVsnbGluZSddLA0KICAgICAgICAgICAgRV9VU0VSX05PVElDRQ0KICAgICAgICApOw0KICAgICAgICANCiAgICAgICAgcmV0dXJuIG51bGw7DQogICAgfQ0KICAgIA0KfQ0KDQovKioNCiAqIENsYXNzIHRvIGV4dHJhY3QgdGV4dCBjb250ZW50cyBhbmQgbWV0YWRhdGEgb3V0IG9mIGEgZG9jdW1lbnQgdGhhdCB3YXMNCiAqIGNyZWF0ZWQgdXNpbmcgdGhlIEFkb2JlIFBvcnRhYmxlIERvY3VtZW50IEZvcm1hdC4NCiAqDQogKiBXQVJOSU5HOiBUaGUgUERGIDEuNCBzcGVjaWZpY2F0aW9uIGFsbG93cyBpbmNyZW1lbnRhbCB1cGRhdGVzDQogKiB0byB0aGUgUERGIHdoaWNoIGNvdWxkIHJlc3VsdCBpbiBhcHBlYXJhbmNlIG9mIG11bHRpcGxlIGJvZHksIGNyb3NzLQ0KICogcmVmZXJlbmNlLCBhbmQgdHJhaWxlciBzZWN0aW9ucy4gVGhpcyBjbGFzcyBoYXMgbm90IGJlZW4gdGVzdGVkIHVzaW5nDQogKiBzdWNoIGEgUERGIGZpbGUgYW5kIHRoZSBvdXRwdXQgb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2VzIGlzIHVua25vd24uIEl0DQogKiBpcyBhc3N1bWVkIHRoaXMgaW5jcmVtZW50YWwgdXBkYXRpbmcgaXMgdGhlIGV4Y2VwdGlvbg0KICogcmF0aGVyIHRoYW4gdGhlIG5vcm0uDQogKiANCiAqIE5PVEU6IEVuY3J5cHRpb24gb2YgUERGJ3MgaXMgbm90IHN1cHBvcnRlZCwgY29udGVudCBhbmQgbWV0YWRhdGEgd2lsbA0KICogbm90IGJlIGF2YWlsYWJsZS4NCiAqDQogKiBIZXJlIGlzIGFuIGV4YW1wbGUgc2hvd2luZyBob3cgdG8gZ2V0IHRoZSBjb250ZW50cyBhbmQgbWV0YWRhdGE6DQogKiA8Y29kZT4NCiAqICAgICRvYmplY3QgICA9IG5ldyBUQ2hlc3Rlcl9QZGYyVGV4dCgiZG9jdW1lbnQxLnBkZiIpOw0KICogICAgaWYgKCR0cmFpbGVyLT5lbmNyeXB0ID09PSBmYWxzZSkgew0KICogICAgICAgICRjb250ZW50cyA9ICRvYmplY3QtPmdldENvbnRlbnQoKTsNCiAqICAgICAgICAkdGl0bGUgICAgPSAkb2JqZWN0LT5nZXRUaXRsZSgpOw0KICogICAgICAgICRhdXRob3IgICA9ICRvYmplY3QtPmdldEF1dGhvcigpOw0KICogICAgICAgICRzdWJqZWN0ICA9ICRvYmplY3QtPmdldFN1YmplY3QoKTsNCiAqICAgICAgICAka2V5d29yZHMgPSAkb2JqZWN0LT5nZXRLZXl3b3JkcygpOw0KICogICAgICAgICRjcmVhdG9yICA9ICRvYmplY3QtPmdldENyZWF0b3IoKTsNCiAqICAgICAgICAkcHJvZHVjZXIgPSAkb2JqZWN0LT5nZXRQcm9kdWNlcigpOw0KICogICAgICAgICRjcmVhdGVkICA9ICRvYmplY3QtPmdldENyZWF0aW9uRGF0ZSgpOw0KICogICAgICAgICRtb2RpZmllZCA9ICRvYmplY3QtPmdldE1vZERhdGUoKTsNCiAqICAgIH0NCiAqIDwvY29kZT4gDQogKiBAbGluayBodHRwOi8vd3d3LmFkb2JlLmNvbS9kZXZuZXQvcGRmL3BkZl9yZWZlcmVuY2UuaHRtbCBQREYgUmVmZXJlbmNlDQogKiBAYWNjZXNzIHB1YmxpYw0KICogQHBhY2thZ2UgUGRmMlRleHQNCiAqIEBhdXRob3IgVGhvbWFzIENoZXN0ZXINCiAqLw0KY2xhc3MgVENoZXN0ZXJfUGRmMlRleHQgaW1wbGVtZW50cyBUQ2hlc3Rlcl9pUERGSW5mbywgVENoZXN0ZXJfaVBERlN0cnVjdHVyZQ0Kew0KICAgIC8qKg0KICAgICAqIFRoZSBQREYgdGl0bGUgZnJvbSB0aGUgbWV0YWRhdGENCiAgICAgKiBAdmFyIHN0cmluZw0KICAgICAqIEBhY2Nlc3MgcHJpdmF0ZQ0KICAgICAqLw0KICAgIHByaXZhdGUgJF90aXRsZSAgICAgICAgPSAiIjsNCg0KICAgIC8qKg0KICAgICAqIFRoZSBQREYgYXV0aG9yIGZyb20gdGhlIG1ldGFkYXRhDQogICAgICogQHZhciBzdHJpbmcNCiAgICAgKiBAYWNjZXNzIHByaXZhdGUNCiAgICAgKi8NCiAgICBwcml2YXRlICRfYXV0aG9yICAgICAgID0gIiI7DQoNCiAgICAvKioNCiAgICAgKiBUaGUgUERGIHN1YmplY3QgZnJvbSB0aGUgbWV0YWRhdGENCiAgICAgKiBAdmFyIHN0cmluZw0KICAgICAqIEBhY2Nlc3MgcHJpdmF0ZQ0KICAgICAqLw0KICAgIHByaXZhdGUgJF9zdWJqZWN0ICAgICAgPSAiIjsNCg0KICAgIC8qKg0KICAgICAqIFRoZSBQREYga2V5d29yZHMgZnJvbSB0aGUgbWV0YWRhdGENCiAgICAgKiBAdmFyIHN0cmluZw0KICAgICAqIEBhY2Nlc3MgcHJpdmF0ZQ0KICAgICAqLw0KICAgIHByaXZhdGUgJF9rZXl3b3JkcyAgICAgPSAiIjsNCg0KICAgIC8qKg0KICAgICAqIFRoZSBQREYga2V5d29yZHMgZnJvbSB0aGUgbWV0YWRhdGEgb2YgQXBwbGUgZ2VuZXJhdGVkIFBERidzDQogICAgICogQHZhciBzdHJpbmcNCiAgICAgKiBAYWNjZXNzIHByaXZhdGUNCiAgICAgKi8NCiAgICBwcml2YXRlICRfYWFwbEtleXdvcmRzID0gIiI7DQoNCiAgICAvKioNCiAgICAgKiBUaGUgUERGIGNyZWF0b3IgZnJvbSB0aGUgbWV0YWRhdGENCiAgICAgKiBAdmFyIHN0cmluZw0KICAgICAqIEBhY2Nlc3MgcHJpdmF0ZQ0KICAgICAqLw0KICAgIHByaXZhdGUgJF9jcmVhdG9yICAgICAgPSAiIjsNCg0KICAgIC8qKg0KICAgICAqIFRoZSBQREYgcHJvZHVjZXIgZnJvbSB0aGUgbWV0YWRhdGENCiAgICAgKiBAdmFyIHN0cmluZw0KICAgICAqIEBhY2Nlc3MgcHJpdmF0ZQ0KICAgICAqLw0KICAgIHByaXZhdGUgJF9wcm9kdWNlciAgICAgPSAiIjsNCg0KICAgIC8qKg0KICAgICAqIFRoZSBQREYgY3JlYXRpb24gZGF0ZSBmcm9tIHRoZSBtZXRhZGF0YQ0KICAgICAqIEB2YXIgc3RyaW5nDQogICAgICogQGFjY2VzcyBwcml2YXRlDQogICAgICovDQogICAgcHJpdmF0ZSAkX2NyZWF0aW9uRGF0ZSA9ICIiOw0KDQogICAgLyoqDQogICAgICogVGhlIFBERiBsYXN0IG1vZGlmaWNhdGlvbiBkYXRlIHRpdGxlIGZyb20gdGhlIG1ldGFkYXRhDQogICAgICogQHZhciBzdHJpbmcNCiAgICAgKiBAYWNjZXNzIHByaXZhdGUNCiAgICAgKi8NCiAgICBwcml2YXRlICRfbW9kRGF0ZSAgICAgID0gIiI7DQoNCiAgICAvKioNCiAgICAgKiBUaGUgUERGIHRleHQgY29udGVudCBmcm9tIHRoZSBib2R5IHNlY3Rpb24NCiAgICAgKiBAdmFyIHN0cmluZw0KICAgICAqIEBhY2Nlc3MgcHJpdmF0ZQ0KICAgICAqLw0KICAgIHByaXZhdGUgJF9jb250ZW50cyAgICAgPSAiIjsNCiAgICANCiAgICAvKioNCiAgICAgKiBUaGUgY29udGVudHMgb2YgdGhlIFBERiBoZWFkZXIgc2VjdGlvbg0KICAgICAqIEB2YXIgVENoZXN0ZXJfU3RydWN0dXJlQmFnDQogICAgICogQGFjY2VzcyBwcml2YXRlDQogICAgICovDQogICAgcHJpdmF0ZSAkX2JhZ0hlYWRlciAgICA9ICIiOw0KDQogICAgLyoqDQogICAgICogVGhlIGNvbnRlbnRzIG9mIHRoZSBQREYgdHJhaWxlciBzZWN0aW9uDQogICAgICogQHZhciBUQ2hlc3Rlcl9TdHJ1Y3R1cmVCYWcNCiAgICAgKiBAYWNjZXNzIHByaXZhdGUNCiAgICAgKi8NCiAgICBwcml2YXRlICRfYmFnVHJhaWxlciAgID0gIiI7DQoNCiAgICAvKioNCiAgICAgKiBUaGUgY29udGVudHMgb2YgdGhlIFBERiBib2R5IHNlY3Rpb24NCiAgICAgKiBAdmFyIFRDaGVzdGVyX1N0cnVjdHVyZUJhZw0KICAgICAqIEBhY2Nlc3MgcHJpdmF0ZQ0KICAgICAqLw0KICAgIHByaXZhdGUgJF9iYWdCb2R5ICAgICAgPSAiIjsNCg0KICAgIC8qKg0KICAgICAqIFRoZSBjb250ZW50cyBvZiB0aGUgUERGIGNyb3NzIHJlZmVyZW5jZSBzZWN0aW9uDQogICAgICogQHZhciBUQ2hlc3Rlcl9TdHJ1Y3R1cmVCYWcNCiAgICAgKiBAYWNjZXNzIHByaXZhdGUNCiAgICAgKi8NCiAgICBwcml2YXRlICRfYmFnWHJlZiAgICAgID0gIiI7DQoNCiAgICAvKioNCiAgICAgKiBBcnJheSBvZiBwYXJzZWQgb2JqZWN0cyBmcm9tIHRoZSBQREYgYm9keS4gRWFjaCBvYmplY3QgaXMgYW4NCiAgICAgKiBhcnJheSB3aXRoIHRoZSBmb2xsb3dpbmcga2V5czogJ2tleScsICdkaWN0aW9uYXJ5JywgJ3N0cmVhbScNCiAgICAgKiAnY29udGVudHMnLCAncHJvYmFibGVUZXh0Jy4NCiAgICAgKiBAdmFyIGFycmF5DQogICAgICogQGFjY2VzcyBwcml2YXRlDQogICAgICovDQogICAgcHJpdmF0ZSAkX2FyeU9iamVjdHMgICA9IG51bGw7DQoNCiAgICAvKioNCiAgICAgKiBBcnJheSBvZiBwYXJzZWQgaW5mbyBvYmplY3RzIGZyb20gdGhlIFBERiB0cmFpbGVyLiBUaGUgUERGDQogICAgICogc3BlY2lmaWNhdGlvbiBkZWZpbmVzIHRoZSBmb2xsb3dpbmcgYXMga2V5czogJ1NpemUnLCAnUHJldicsDQogICAgICogJ1Jvb3QnLCAnRW5jcnlwdCcsICdJbmZvJywgJ0lEJy4gJ0lEJyBpcyBhY3R1YWxseSB0cmVhdGVkIGFzDQogICAgICogJ0lEMScgYW5kICdJRDInIGluIHRoZSBjb2RlLg0KICAgICAqIEB2YXIgYXJyYXkNCiAgICAgKiBAYWNjZXNzIHByaXZhdGUNCiAgICAgKi8NCiAgICBwcml2YXRlICRfYXJ5SW5mb0tleXMgID0gbnVsbDsNCg0KICAgIC8qKg0KICAgICAqIFRoZSBQREYgZmlsZSBiZWluZyBwYXJzZWQNCiAgICAgKiBAdmFyIHN0cmluZw0KICAgICAqIEBhY2Nlc3MgcHJpdmF0ZQ0KICAgICAqLw0KICAgIHByaXZhdGUgJF9maWxlTmFtZSAgICAgPSAiIjsNCg0KICAgIC8qKg0KICAgICAqIFRoZSBjdXJyZW50IGxpbmUgcmVhZCBmcm9tIHRoZSBQREYgZmlsZQ0KICAgICAqIEB2YXIgaW50ZWdlcg0KICAgICAqIEBhY2Nlc3MgcHJpdmF0ZQ0KICAgICAqLw0KICAgIHByaXZhdGUgJF9maWxlTGluZSAgICAgPSAwOw0KDQogICAgLyoqDQogICAgICogQ29udGFpbnMgdGhlIGN1cnJlbnQgbGluZSByZWFkIGZyb20gdGhlIGlucHV0DQogICAgICogQHZhciBzdHJpbmcNCiAgICAgKiBAYWNjZXNzIHByaXZhdGUNCiAgICAgKiBAdXNlcyBfcmVhZExpbmUoKSBwb3B1bGF0ZWQgdGhyb3VnaCB0aGlzIGZ1bmN0aW9uDQogICAgICovDQogICAgcHJpdmF0ZSAkX2ZpbGVCdWZmZXIgICA9ICIiOw0KDQogICAgLyoqDQogICAgICogRmlsZSBoYW5kbGUgdXNlZCBieSBQSFAgZmlsZSBwcm9jZXNzaW5nIGZ1bmN0aW9ucw0KICAgICAqIEB2YXIgaW50ZWdlcg0KICAgICAqIEBhY2Nlc3MgcHJpdmF0ZQ0KICAgICAqLw0KICAgIHByaXZhdGUgJF9maWxlSGFuZGxlICAgPSAwOw0KDQogICAgLyoqDQogICAgICogQ2xhc3MgY29uc3RydWN0b3INCiAgICAgKiBAcGFyYW0gc3RyaW5nICRmaWxlbmFtZSBOYW1lIGFuZCBwYXRoIG9mIFBERiBmaWxlDQogICAgICogQGFjY2VzcyBwdWJsaWMNCiAgICAgKi8NCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJGZpbGVuYW1lKQ0KICAgIHsNCiAgICAgICAgLy8gV2l0aG91dCB0aGlzIHNldHRpbmcsIHRyeWluZyB0byBwYXJzZSBXaW5kb3dzIGNyZWF0ZWQgUERGJ3Mgb24gTWFjL1VuaXgNCiAgICAgICAgLy8gb3IgdmljZSB2ZXJzYSB3aWxsIG5vdCB3b3JrIGNvcnJlY3RseS4NCiAgICAgICAgaW5pX3NldCgnYXV0b19kZXRlY3RfbGluZV9lbmRpbmdzJywgdHJ1ZSk7DQoNCiAgICAgICAgLy8gV2UgYXJlIGdvaW5nIHRvIHN1cHByZXNzIGVycm9ycyB3aGlsZSBleGVjdXRpbmcgY2VydGFpbiBjb2RlIHN0YXRlbWVudHMNCiAgICAgICAgLy8gYnV0IHdlIHN0aWxsIHdhbnQgdG8gcHJlc2VydmUgYW55IGVycm9ycyBmb3Igb3V0cHV0Lg0KICAgICAgICBpbmlfc2V0KCd0cmFja19lcnJvcnMnLCB0cnVlKTsNCg0KICAgICAgICAkdGhpcy0+X2JhZ0hlYWRlciAgPSBuZXcgVENoZXN0ZXJfU3RydWN0dXJlQmFnKCk7DQogICAgICAgICR0aGlzLT5fYmFnVHJhaWxlciA9IG5ldyBUQ2hlc3Rlcl9TdHJ1Y3R1cmVCYWcoKTsNCiAgICAgICAgJHRoaXMtPl9iYWdCb2R5ICAgID0gbmV3IFRDaGVzdGVyX1N0cnVjdHVyZUJhZygpOw0KICAgICAgICAkdGhpcy0+X2JhZ1hyZWYgICAgPSBuZXcgVENoZXN0ZXJfU3RydWN0dXJlQmFnKCk7DQogICAgICAgIA0KICAgICAgICAkdGhpcy0+X2JhZ0hlYWRlci0+dHlwZSAgICA9ICJoZWFkZXIiOw0KICAgICAgICAkdGhpcy0+X2JhZ1RyYWlsZXItPnR5cGUgICA9ICJ0cmFpbGVyIjsNCiAgICAgICAgJHRoaXMtPl9iYWdCb2R5LT50eXBlICAgICAgPSAiYm9keSI7DQogICAgICAgICR0aGlzLT5fYmFnWHJlZi0+dHlwZSAgICAgID0gInhyZWYiOw0KICAgICAgICANCiAgICAgICAgJHRoaXMtPl9hcnlPYmplY3RzICAgPSBhcnJheSgpOw0KICAgICAgICAkdGhpcy0+X2FyeUluZm9LZXlzICA9IGFycmF5KCk7DQogICAgICAgIA0KICAgICAgICAkdGhpcy0+X2JhZ1RyYWlsZXItPnNpemUgICAgICA9IDA7DQogICAgICAgICR0aGlzLT5fYmFnVHJhaWxlci0+cHJldiAgICAgID0gMDsNCiAgICAgICAgJHRoaXMtPl9iYWdUcmFpbGVyLT5yb290ICAgICAgPSAiIjsNCiAgICAgICAgJHRoaXMtPl9iYWdUcmFpbGVyLT5lbmNyeXB0ICAgPSAiIjsNCiAgICAgICAgJHRoaXMtPl9iYWdUcmFpbGVyLT5pbmZvICAgICAgPSAiIjsNCiAgICAgICAgJHRoaXMtPl9iYWdUcmFpbGVyLT5pZDEgICAgICAgPSAiIjsNCiAgICAgICAgJHRoaXMtPl9iYWdUcmFpbGVyLT5pZDIgICAgICAgPSAiIjsNCiAgICAgICAgJHRoaXMtPl9iYWdUcmFpbGVyLT5zdGFydFhyZWYgPSAwOw0KICAgICAgICAkdGhpcy0+X2JhZ1RyYWlsZXItPmVuY3J5cHRlZCA9IGZhbHNlOw0KICAgICAgICAkdGhpcy0+X2JhZ1RyYWlsZXItPmVvZiAgICAgICA9ICIlJUVPRiI7DQogICAgICAgIA0KICAgICAgICAkcGF0dGVybkhlYWRlciAgPSAiL14lUERGLShcZCtcLlxkKykkLyI7DQogICAgICAgICRwYXR0ZXJuT2JqZWN0ICA9ICIvXihcZCsgXGQrKSBvYmpccyooPDwuKj4+KSooc3RyZWFtKSovIjsNCiAgICAgICAgJHBhdHRlcm5UcmFpbGVyID0gIi9eKHRyYWlsZXIpJC8iOw0KICAgICAgICAkcGF0dGVyblhyZWYgICAgPSAiL14oeHJlZikkLyI7DQogICAgDQogICAgICAgICR0aGlzLT5fc2VlbkhlYWRlciAgPSBmYWxzZTsNCiAgICAgICAgJHRoaXMtPl9zZWVuVHJhaWxlciA9IGZhbHNlOw0KICAgIA0KICAgICAgICAkdGhpcy0+X2ZpbGVOYW1lICAgPSAkZmlsZW5hbWU7DQogICAgICAgICR0aGlzLT5fZmlsZUxpbmUgICA9IDA7DQogICAgICAgICR0aGlzLT5fZmlsZUJ1ZmZlciA9ICIiOw0KICAgIA0KICAgICAgICAkdGhpcy0+X2ZpbGVIYW5kbGUgPSBAZm9wZW4oJGZpbGVuYW1lLCAiciIpOw0KICAgICAgICBpZiAoJHRoaXMtPl9maWxlSGFuZGxlKSB7DQogICAgICAgICAgICB3aGlsZSAoIWZlb2YoJHRoaXMtPl9maWxlSGFuZGxlKSkgew0KICAgICAgICAgICAgICAgICR0aGlzLT5fcmVhZExpbmUoKTsNCiAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICBpZiAoMSA9PSBwcmVnX21hdGNoKCRwYXR0ZXJuSGVhZGVyLCB0cmltKCR0aGlzLT5fZmlsZUJ1ZmZlciksICRtYXRjaGVzKSANCiAgICAgICAgICAgICAgICAgICAgJiYgISR0aGlzLT5fc2VlbkhlYWRlcikNCiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPl9wcm9jZXNzUERGSGVhZGVyKCRtYXRjaGVzKTsNCiAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICBpZiAoMSA9PSBwcmVnX21hdGNoKCRwYXR0ZXJuT2JqZWN0LCB0cmltKCR0aGlzLT5fZmlsZUJ1ZmZlciksICRtYXRjaGVzKSkgICAgDQogICAgICAgICAgICAgICAgICAgICR0aGlzLT5fcHJvY2Vzc1BERkJvZHkoJG1hdGNoZXMpOw0KICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgIGlmICgxID09IHByZWdfbWF0Y2goJHBhdHRlcm5YcmVmLCB0cmltKCR0aGlzLT5fZmlsZUJ1ZmZlciksICRtYXRjaGVzKSkgICAgDQogICAgICAgICAgICAgICAgICAgICR0aGlzLT5fcHJvY2Vzc1BERlhyZWYoJG1hdGNoZXMpOw0KDQogICAgICAgICAgICAgICAgaWYgKDEgPT0gcHJlZ19tYXRjaCgkcGF0dGVyblRyYWlsZXIsIHRyaW0oJHRoaXMtPl9maWxlQnVmZmVyKSwgJG1hdGNoZXMpIA0KICAgICAgICAgICAgICAgICAgICAmJiAhJHRoaXMtPl9zZWVuVHJhaWxlcikNCiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPl9wcm9jZXNzUERGVHJhaWxlcigkbWF0Y2hlcyk7DQogICAgICAgICAgICAgICAgDQogICAgICAgICAgICB9DQogICAgICAgICAgICBmY2xvc2UoJHRoaXMtPl9maWxlSGFuZGxlKTsNCiAgICAgICAgICAgIA0KICAgICAgICAgICAgJHRoaXMtPl9wcm9jZXNzUERGSW5mb0Jsb2NrKCk7DQogICAgICAgICAgICAkdGhpcy0+X3Byb2Nlc3NDb250ZW50cygpOw0KICAgICAgICB9DQogICAgfSANCg0KICAgIC8qKg0KICAgICAqIFN1cHBvcnRzIHRoZSBpUERGSW5mbyBpbnRlcmZhY2UNCiAgICAgKiBAcmV0dXJuIHN0cmluZw0KICAgICAqIEBzZWUgVENoZXN0ZXJfaVBERkluZm86OmdldFRpdGxlKCkNCiAgICAgKiBAYWNjZXNzIHB1YmxpYw0KICAgICAqLw0KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRUaXRsZSgpICAgICAgICANCiAgICB7IA0KICAgICAgICByZXR1cm4gJHRoaXMtPl90aXRsZTsgICAgICAgIA0KICAgIH0NCiAgICANCiAgICAvKioNCiAgICAgKiBTdXBwb3J0cyB0aGUgaVBERkluZm8gaW50ZXJmYWNlDQogICAgICogQHJldHVybiBzdHJpbmcNCiAgICAgKiBAc2VlIFRDaGVzdGVyX2lQREZJbmZvOjpnZXRBdXRob3IoKQ0KICAgICAqIEBhY2Nlc3MgcHVibGljDQogICAgICovDQogICAgcHVibGljIGZ1bmN0aW9uIGdldEF1dGhvcigpICAgICAgIA0KICAgIHsgDQogICAgICAgIHJldHVybiAkdGhpcy0+X2F1dGhvcjsgICAgICAgDQogICAgfQ0KICAgIA0KICAgIC8qKg0KICAgICAqIFN1cHBvcnRzIHRoZSBpUERGSW5mbyBpbnRlcmZhY2UNCiAgICAgKiBAcmV0dXJuIHN0cmluZw0KICAgICAqIEBzZWUgVENoZXN0ZXJfaVBERkluZm86OmdldFN1YmplY3QoKQ0KICAgICAqIEBhY2Nlc3MgcHVibGljDQogICAgICovDQogICAgcHVibGljIGZ1bmN0aW9uIGdldFN1YmplY3QoKSAgICAgIA0KICAgIHsgDQogICAgICAgIHJldHVybiAkdGhpcy0+X3N1YmplY3Q7ICAgICAgDQogICAgfQ0KICAgIA0KICAgIC8qKg0KICAgICAqIFN1cHBvcnRzIHRoZSBpUERGSW5mbyBpbnRlcmZhY2UNCiAgICAgKiBAcmV0dXJuIHN0cmluZw0KICAgICAqIEBzZWUgVENoZXN0ZXJfaVBERkluZm86OmdldEtleXdvcmRzKCkNCiAgICAgKiBAYWNjZXNzIHB1YmxpYw0KICAgICAqLw0KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRLZXl3b3JkcygpICAgICANCiAgICB7IA0KICAgICAgICByZXR1cm4gJHRoaXMtPl9rZXl3b3JkczsgICAgIA0KICAgIH0NCiAgICANCiAgICAvKioNCiAgICAgKiBTdXBwb3J0cyB0aGUgaVBERkluZm8gaW50ZXJmYWNlDQogICAgICogQHJldHVybiBzdHJpbmcNCiAgICAgKiBAc2VlIFRDaGVzdGVyX2lQREZJbmZvOjpnZXRDcmVhdG9yKCkNCiAgICAgKiBAYWNjZXNzIHB1YmxpYw0KICAgICAqLw0KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRDcmVhdG9yKCkgICAgICANCiAgICB7IA0KICAgICAgICByZXR1cm4gJHRoaXMtPl9jcmVhdG9yOyAgICAgIA0KICAgIH0NCiAgICANCiAgICAvKioNCiAgICAgKiBTdXBwb3J0cyB0aGUgaVBERkluZm8gaW50ZXJmYWNlDQogICAgICogQHJldHVybiBzdHJpbmcNCiAgICAgKiBAc2VlIFRDaGVzdGVyX2lQREZJbmZvOjpnZXRQcm9kdWNlcigpDQogICAgICogQGFjY2VzcyBwdWJsaWMNCiAgICAgKi8NCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0UHJvZHVjZXIoKSAgICAgDQogICAgeyANCiAgICAgICAgcmV0dXJuICR0aGlzLT5fcHJvZHVjZXI7ICAgICANCiAgICB9DQogICAgDQogICAgLyoqDQogICAgICogU3VwcG9ydHMgdGhlIGlQREZJbmZvIGludGVyZmFjZQ0KICAgICAqIEByZXR1cm4gc3RyaW5nDQogICAgICogQHNlZSBUQ2hlc3Rlcl9pUERGSW5mbzo6Z2V0Q3JlYXRpb25EYXRlKCkNCiAgICAgKiBAYWNjZXNzIHB1YmxpYw0KICAgICAqLw0KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRDcmVhdGlvbkRhdGUoKSANCiAgICB7IA0KICAgICAgICByZXR1cm4gJHRoaXMtPl9jcmVhdGlvbkRhdGU7IA0KICAgIH0NCiAgICANCiAgICAvKioNCiAgICAgKiBTdXBwb3J0cyB0aGUgaVBERkluZm8gaW50ZXJmYWNlDQogICAgICogQHJldHVybiBzdHJpbmcNCiAgICAgKiBAc2VlIFRDaGVzdGVyX2lQREZJbmZvOjpnZXRNb2REYXRlKCkNCiAgICAgKiBAYWNjZXNzIHB1YmxpYw0KICAgICAqLw0KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRNb2REYXRlKCkgICAgICANCiAgICB7IA0KICAgICAgICByZXR1cm4gJHRoaXMtPl9tb2REYXRlOyAgICAgIA0KICAgIH0NCiAgICANCiAgICAvKioNCiAgICAgKiBTdXBwb3J0cyB0aGUgaVBERkluZm8gaW50ZXJmYWNlDQogICAgICogQHJldHVybiBzdHJpbmcNCiAgICAgKiBAc2VlIFRDaGVzdGVyX2lQREZJbmZvOjpnZXRDb250ZW50cygpDQogICAgICogQGFjY2VzcyBwdWJsaWMNCiAgICAgKi8NCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0Q29udGVudHMoKSAgICAgDQogICAgeyANCiAgICAgICAgcmV0dXJuICR0aGlzLT5fY29udGVudHM7ICAgICANCiAgICB9DQogICAgDQogICAgLyoqDQogICAgICogU3VwcG9ydHMgdGhlIGlQREZTdHJ1Y3R1cmUgaW50ZXJmYWNlDQogICAgICogQHJldHVybiBzdHJpbmcNCiAgICAgKiBAc2VlIFRDaGVzdGVyX2lQREZTdHJ1Y3R1cmU6OmdldEhlYWRlcigpDQogICAgICogQGFjY2VzcyBwdWJsaWMNCiAgICAgKi8NCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0SGVhZGVyKCkgICAgICAgDQogICAgew0KICAgICAgICByZXR1cm4gJHRoaXMtPl9iYWdIZWFkZXI7ICAgIA0KICAgIH0NCiAgICANCiAgICAvKioNCiAgICAgKiBTdXBwb3J0cyB0aGUgaVBERlN0cnVjdHVyZSBpbnRlcmZhY2UNCiAgICAgKiBAcmV0dXJuIHN0cmluZw0KICAgICAqIEBzZWUgVENoZXN0ZXJfaVBERlN0cnVjdHVyZTo6Z2V0VHJhaWxlcigpDQogICAgICogQGFjY2VzcyBwdWJsaWMNCiAgICAgKi8NCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0VHJhaWxlcigpICAgICAgDQogICAgeyANCiAgICAgICAgcmV0dXJuICR0aGlzLT5fYmFnVHJhaWxlcjsgICANCiAgICB9DQogICAgDQogICAgLyoqDQogICAgICogU3VwcG9ydHMgdGhlIGlQREZTdHJ1Y3R1cmUgaW50ZXJmYWNlDQogICAgICogQHJldHVybiBzdHJpbmcNCiAgICAgKiBAc2VlIFRDaGVzdGVyX2lQREZTdHJ1Y3R1cmU6OmdldEJvZHkoKQ0KICAgICAqIEBhY2Nlc3MgcHVibGljDQogICAgICovDQogICAgcHVibGljIGZ1bmN0aW9uIGdldEJvZHkoKSAgICAgDQogICAgeyANCiAgICAgICAgcmV0dXJuICR0aGlzLT5fYmFnQm9keTsgICAgICANCiAgICB9DQogICAgDQogICAgLyoqDQogICAgICogU3VwcG9ydHMgdGhlIGlQREZTdHJ1Y3R1cmUgaW50ZXJmYWNlDQogICAgICogQHJldHVybiBzdHJpbmcNCiAgICAgKiBAc2VlIFRDaGVzdGVyX2lQREZTdHJ1Y3R1cmU6OmdldFhyZWYoKQ0KICAgICAqIEBhY2Nlc3MgcHVibGljDQogICAgICovDQogICAgcHVibGljIGZ1bmN0aW9uIGdldFhyZWYoKSAgICAgICAgIA0KICAgIHsgDQogICAgICAgIHJldHVybiAkdGhpcy0+X2JhZ1hyZWY7ICAgICAgDQogICAgfQ0KDQogICAgLyoqDQogICAgICogUHJvY2Vzc2VzIHRoZSBQREYgZmlsZSBoZWFkZXIsIHdoaWNoIGNvbnNpc3RzIG9mIGEgc2luZ2xlDQogICAgICogbGluZSB3aXRoIGEgZm9ybWF0IGxpa2U6ICVQREY/Iy4jDQogICAgICogQHJldHVybiB2b2lkDQogICAgICogQGFjY2VzcyBwcml2YXRlDQogICAgICovDQogICAgcHJpdmF0ZSBmdW5jdGlvbiBfcHJvY2Vzc1BERkhlYWRlcigkbWF0Y2hlcykNCiAgICB7DQogICAgICAgIC8vZWNobyAiXG5QREYgSGVhZGVyXG4iOw0KICAgICAgICAkdGhpcy0+X2JhZ0hlYWRlci0+aGVhZGVyICA9ICRtYXRjaGVzWzBdOyAvLyBtYXRjaGVkIGxpbmUNCiAgICAgICAgJHRoaXMtPl9iYWdIZWFkZXItPnZlcnNpb24gPSAkbWF0Y2hlc1sxXTsgLy8gdmVyc2lvbiBwYXJ0IG9ubHkNCiAgICAgICAgJHRoaXMtPl9zZWVuSGVhZGVyID0gdHJ1ZTsNCiAgICB9DQoNCiAgICAvKioNCiAgICAgKiBQcm9jZXNzZXMgdGhlIFBERiBmaWxlIGJvZHksIHdoaWNoIGNvbnNpc3RzIG9mIGEgc2VyaWVzDQogICAgICogb2Ygb2JqZWN0IGJsb2NrcyBsaWtlOiBvYmogLi4uIGVuZG9iai4gVGhlICdvYmonIHRhZyBtYXkNCiAgICAgKiBjb250YWluIG1ldGFkYXRhIGNvbnRhaW5lZCBiZXR3ZWVuICc8PCcgYW5kICc+PicgZGVsaW1pdGVycy4NCiAgICAgKiBBbHNvIHRoZSBvYmplY3QgbWF5IGNvbnRhaW4gYW4gZW1iZWRkZWQgc3RyZWFtIG9iamVjdA0KICAgICAqIHdoaWNoIHdpbGwgYmUgZGVsaW1pdGVkIGJ5ICdzdHJlYW0nIGFuZCAnZW5kc3RyZWFtJyB0YWdzLg0KICAgICAqIEByZXR1cm4gdm9pZA0KICAgICAqIEBhY2Nlc3MgcHJpdmF0ZQ0KICAgICAqLw0KICAgIHByaXZhdGUgZnVuY3Rpb24gX3Byb2Nlc3NQREZCb2R5KCRtYXRjaGVzKQ0KICAgIHsNCiAgICAgICAgLy9lY2hvICJcblBERiBCb2R5XG4iOw0KDQogICAgICAgICRrZXkgICAgICAgICAgPSAkbWF0Y2hlc1sxXTsNCiAgICAgICAgJGRpY3Rpb25hcnkgICA9ICIiOw0KICAgICAgICAkc3RyZWFtICAgICAgID0gIiI7DQogICAgICAgICRjb250ZW50cyAgICAgPSAiIjsNCiAgICAgICAgJHByb2JhYmxlVGV4dCA9IGZhbHNlOw0KICAgICAgICANCiAgICAgICAgJGNvbnRlbnRzID0gJHRoaXMtPl9yZWFkVG9FbmRPZkJsb2NrKCIvXmVuZG9iaiQvIik7DQogICAgICAgIA0KICAgICAgICAvL2VjaG8gImNvbnRlbnRzOjogIiAuIGh0bWxlbnRpdGllcygkY29udGVudHMpIC4gIlxuIjsNCiAgICAgICAgDQogICAgICAgICRzdGFydElkeCA9IHN0cnBvcygkY29udGVudHMsICI8PCIsIDApOw0KICAgICAgICAkc3RvcElkeCAgPSBzdHJwb3MoJGNvbnRlbnRzLCAiPj4iLCAkc3RhcnRJZHgpICsgMjsNCiAgICAgIA0KICAgICAgICAvLyBQYXJzZSBvdXQgb2JqZWN0IG1ldGFkYXRhLCBpZiBpdCBleGlzdHMgIA0KICAgICAgICBpZiAoJHN0YXJ0SWR4ICE9PSBmYWxzZSAmJiAkc3RvcElkeCAhPT0gZmFsc2UpDQogICAgICAgICAgICAkZGljdGlvbmFyeSA9IHN1YnN0cigkY29udGVudHMsICRzdGFydElkeCwgJHN0b3BJZHggLSAkc3RhcnRJZHgpOw0KICAgICAgICANCiAgICAgICAgJHN0YXJ0SWR4ID0gc3RycG9zKCRjb250ZW50cywgInN0cmVhbSIsIDApICsgc3RybGVuKCJzdHJlYW0iKTsNCiAgICAgICAgJHN0b3BJZHggID0gc3RycG9zKCRjb250ZW50cywgImVuZHN0cmVhbSIsIDApOw0KICAgICAgICANCiAgICAgICAgLy8gRGV0ZXJtaW5lIGlmIHRoZSBvYmplY3QgY29udGFpbnMgYW4gZW1iZWRkZWQgc3RyZWFtIG9iamVjdA0KICAgICAgICBpZiAoJHN0YXJ0SWR4ICE9PSBmYWxzZSAmJiAkc3RvcElkeCAhPT0gZmFsc2UpDQogICAgICAgICAgICAkc3RyZWFtID0gc3Vic3RyKCRjb250ZW50cywgJHN0YXJ0SWR4LCAkc3RvcElkeCAtICRzdGFydElkeCk7DQoNCiAgICAgICAgLy8gT2JqZWN0IGRvZXMgbm90IGNvbnRhaW4gYW4gZW1iZWRkZWQgc3RyZWFtIG9iamVjdCAgICAgICAgDQogICAgICAgIGlmICgkc3RyZWFtICE9ICIiKSB7DQogICAgICAgICAgICAkY29udGVudHMgICA9ICR0aGlzLT5fZ2V0U3RyZWFtRGF0YSgkZGljdGlvbmFyeSwgJHN0cmVhbSk7DQoNCiAgICAgICAgICAgIC8vIFRoaXMgaGV1cmlzdGljIGFzc3VtZXMgdGhhdCBpZiB0aGUgZGVjb2RlZCBjb250ZW50cyBhcmUgcmVndWxhcg0KICAgICAgICAgICAgLy8gcmVhZGFibGUgdGV4dCB0aGVuIHdpdGhpbiB0aGUgZmlyc3QgMjYgY2hhcmFjdGVycyB3ZSB3b3VsZCBleHBlY3QNCiAgICAgICAgICAgIC8vIHRvIHNlZSBhdCBsZWFzdCBvbmUgc3BhY2UgY2hhcmFjdGVyLg0KICAgICAgICAgICAgaWYgKCRjb250ZW50cyAhPSAiIiAmJiANCiAgICAgICAgICAgICAgICBzdHJwb3Moc3Vic3RyKCRjb250ZW50cywgMCwgMjYpLCAiICIpICE9PSBmYWxzZSkNCiAgICAgICAgICAgICAgJHByb2JhYmxlVGV4dCA9IHRydWU7DQogICAgICAgICAgICBlbHNlDQogICAgICAgICAgICAgICRwcm9iYWJsZVRleHQgPSBmYWxzZTsNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgIC8vIE9iamVjdCBjb250YWlucyBhbiBlbWJlZGRlZCBzdHJlYW0gb2JqZWN0IHNvIHdlIHdhbnQgdG8gZWxpbWluYXRlDQogICAgICAgICAgICAvLyBhbnkgbm9uLXRleHQgY29udGFpbmluZyBvYmplY3RzIHN1Y2ggYXMgaW1hZ2VzDQogICAgICAgICAgICAkY29udGVudHMgPSAkdGhpcy0+X2dldFN0cmVhbUVtYmVkZGVkRGF0YSgNCiAgICAgICAgICAgICAgICBzdWJzdHIoJGNvbnRlbnRzLCBzdHJsZW4oJGRpY3Rpb25hcnkpKSwgZmFsc2UNCiAgICAgICAgICAgICk7DQogICAgICAgICAgICAkcHJvYmFibGVUZXh0ID0gISgkY29udGVudHMgPT09IGZhbHNlICYmICR0aGlzLT5fYmFnVHJhaWxlci0+ZW5jcnlwdCA9PT0gZmFsc2UpOw0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICAkdGhpcy0+X2FyeU9iamVjdHNbXSA9IGFycmF5KA0KICAgICAgICAgICAgImtleSIgICAgICAgICAgPT4gJGtleSwgDQogICAgICAgICAgICAiZGljdGlvbmFyeSIgICA9PiAkZGljdGlvbmFyeSwgDQogICAgICAgICAgICAic3RyZWFtIiAgICAgICA9PiAkc3RyZWFtLA0KICAgICAgICAgICAgImNvbnRlbnRzIiAgICAgPT4gJGNvbnRlbnRzLA0KICAgICAgICAgICAgInByb2JhYmxlVGV4dCIgPT4gJHByb2JhYmxlVGV4dA0KICAgICAgICApOw0KICAgIA0KICAgICAgICAkdGhpcy0+X2JhZ0JvZHktPm9iamVjdHMgPSAkdGhpcy0+X2FyeU9iamVjdHM7DQogICAgfQ0KDQogICAgLyoqDQogICAgICogUHJvY2Vzc2VzIHRoZSBQREYgY3Jvc3MgcmVmZXJlbmNlIHNlY3Rpb24sIHdob3NlIHN0YXJ0IGlzDQogICAgICogaWRlbnRpZmllZCBieSBhIGxpbmUgY29udGFpbmluZyBvbmx5IHRoZSB0YWc6IHhyZWYuDQogICAgICogQHJldHVybiB2b2lkDQogICAgICogQGFjY2VzcyBwcml2YXRlDQogICAgICovDQogICAgcHJpdmF0ZSBmdW5jdGlvbiBfcHJvY2Vzc1BERlhyZWYoJG1hdGNoZXMpDQogICAgew0KICAgICAgICAvL2VjaG8gIlxuUERGIFhyZWZcbiI7DQogICAgfQ0KDQogICAgLyoqDQogICAgICogUHJvY2Vzc2VzIHRoZSBQREYgdHJhaWxlciBzZWN0aW9uLCB3aG9zZSBzdGFydCBpcw0KICAgICAqIGlkZW50aWZpZWQgYnkgYSBsaW5lIGNvbnRhaW5pbmcgb25seSB0aGUgdGFnOiAndHJhaWxlcicNCiAgICAgKiBhbmQgZ29lcyB1bnRpbCB0aGUgJyUlRU9GJyB0YWcuDQogICAgICogQHJldHVybiB2b2lkDQogICAgICogQGFjY2VzcyBwcml2YXRlDQogICAgICovDQogICAgcHJpdmF0ZSBmdW5jdGlvbiBfcHJvY2Vzc1BERlRyYWlsZXIoJG1hdGNoZXMpDQogICAgew0KICAgICAgICAvL2VjaG8gIlxuUERGIFRyYWlsZXJcbiI7DQogICAgICAgIA0KICAgICAgICAkY29udGVudHMgPSAkdGhpcy0+X3JlYWRUb0VuZE9mQmxvY2soIi9eKCUlRU9GKSQvIik7DQogICAgICAgIA0KICAgICAgICAkc3RhcnRJZHggPSBzdHJwb3MoJGNvbnRlbnRzLCAiPDwiLCAwKTsNCiAgICAgICAgJHN0b3BJZHggID0gc3RycG9zKCRjb250ZW50cywgIj4+IiwgMCkgKyBzdHJsZW4oIj4+Iik7DQogICAgICAgIA0KICAgICAgICAkdGhpcy0+X2JhZ1RyYWlsZXItPmRpY3Rpb25hcnkgPSBzdWJzdHIoDQogICAgICAgICAgICAkY29udGVudHMsICRzdGFydElkeCwgJHN0b3BJZHggLSAkc3RhcnRJZHgNCiAgICAgICAgKTsNCiAgICANCiAgICAgICAgJHBhdHRlcm5JZCA9ICIvXC9JRFxzezAsMX1cW1xzezAsMX08KFxkfFx3Kyk+XHN7MCwxfTwoXGR8XHcrKT5cc3swLDF9XF0vIjsNCiAgICANCiAgICAgICAgaWYgKDEgPT0gcHJlZ19tYXRjaCgkcGF0dGVybklkLCAkdGhpcy0+X2JhZ1RyYWlsZXItPmRpY3Rpb25hcnksICRtYXRjaGVzKSkgew0KICAgICAgICAgICAgJHRoaXMtPl9iYWdUcmFpbGVyLT5pZDEgPSAkbWF0Y2hlc1sxXTsNCiAgICAgICAgICAgICR0aGlzLT5fYmFnVHJhaWxlci0+aWQyID0gJG1hdGNoZXNbMl07DQogICAgICAgIH0NCiAgICANCiAgICAgICAgJHBhdHRlcm5Sb290ICAgPSAiL1wvUm9vdFxzezAsMX0oXGQrXHN7MCwxfVxkKylcc3swLDF9Ui8iOw0KICAgIA0KICAgICAgICBpZiAoMSA9PSBwcmVnX21hdGNoKCRwYXR0ZXJuUm9vdCwgJHRoaXMtPl9iYWdUcmFpbGVyLT5kaWN0aW9uYXJ5LCAkbWF0Y2hlcykpDQogICAgICAgICAgICAkdGhpcy0+X2JhZ1RyYWlsZXItPnJvb3QgPSAkbWF0Y2hlc1sxXTsNCiAgICANCiAgICAgICAgJHBhdHRlcm5JbmZvICAgPSAiL1wvSW5mb1xzezAsMX0oXGQrXHN7MCwxfVxkKylcc3swLDF9Ui8iOw0KICAgIA0KICAgICAgICBpZiAoMSA9PSBwcmVnX21hdGNoKCRwYXR0ZXJuSW5mbywgJHRoaXMtPl9iYWdUcmFpbGVyLT5kaWN0aW9uYXJ5LCAkbWF0Y2hlcykpDQogICAgICAgICAgICAkdGhpcy0+X2JhZ1RyYWlsZXItPmluZm8gPSAkbWF0Y2hlc1sxXTsNCiAgICAgICAgDQogICAgICAgICRwYXR0ZXJuU2l6ZSAgID0gIi9cL1NpemVcc3swLDF9KFxkKylcc3swLDF9LyI7DQogICAgICAgIA0KICAgICAgICBpZiAoMSA9PSBwcmVnX21hdGNoKCRwYXR0ZXJuU2l6ZSwgJHRoaXMtPl9iYWdUcmFpbGVyLT5kaWN0aW9uYXJ5LCAkbWF0Y2hlcykpDQogICAgICAgICAgICAkdGhpcy0+X2JhZ1RyYWlsZXItPnNpemUgPSAkbWF0Y2hlc1sxXTsNCg0KICAgICAgICAkcGF0dGVyblByZXYgICA9ICIvXC9QcmV2XHN7MCwxfShcZCspXHN7MCwxfS8iOw0KICAgICAgICANCiAgICAgICAgaWYgKDEgPT0gcHJlZ19tYXRjaCgkcGF0dGVyblByZXYsICR0aGlzLT5fYmFnVHJhaWxlci0+ZGljdGlvbmFyeSwgJG1hdGNoZXMpKQ0KICAgICAgICAgICAgJHRoaXMtPl9iYWdUcmFpbGVyLT5wcmV2ID0gJG1hdGNoZXNbMV07DQoNCiAgICAgICAgJHBhdHRlcm5FbmNyeXB0ID0gIi9cL0VuY3J5cHQvIjsNCiAgICAgICAgDQogICAgICAgIGlmICgxID09IHByZWdfbWF0Y2goJHBhdHRlcm5FbmNyeXB0LCAkY29udGVudHMsICRtYXRjaGVzKSkNCiAgICAgICAgICAgICR0aGlzLT5fYmFnVHJhaWxlci0+ZW5jcnlwdCA9IHRydWU7DQoNCiAgICAgICAgJHBhdHRlcm5TdGFydFhyZWYgPSAiL3N0YXJ0eHJlZlxzKihcZCspXHMqJSVFT0YvIjsNCiAgICAgICAgDQogICAgICAgIGlmICgxID09IHByZWdfbWF0Y2goJHBhdHRlcm5TdGFydFhyZWYsICRjb250ZW50cywgJG1hdGNoZXMpKQ0KICAgICAgICAgICAgJHRoaXMtPl9iYWdUcmFpbGVyLT5zdGFydFhyZWYgPSAkbWF0Y2hlc1sxXTsNCg0KICAgICAgICAkdGhpcy0+X3NlZW5UcmFpbGVyID0gdHJ1ZTsNCiAgICB9DQoNCiAgICAvKioNCiAgICAgKiBQYXJzZXMgb3V0IHRoZSBQREYgbWV0YWRhdGEgc2VjdGlvbi4gVGhlIGluZm8gYmxvY2tzIGNhbg0KICAgICAqIGVpdGhlciBiZSBzdG9yZWQgaW5saW5lIG9yIGNvbnRhaW4gYW4gaW5kaXJlY3Qgb2JqZWN0DQogICAgICogcmVmZXJlbmNlLiBJbiBpbmRpcmVjdCByZWZlcmVuY2Ugd2lsbCBiZSB1c2VkIGFzIGEga2V5DQogICAgICogaW50byB0aGUgb2JqZWN0IGFycmF5IHRvIGdldCB0aGUgY29udGVudHMsIG90aGVyd2lzZSB0aGUNCiAgICAgKiBpbmxpbmUgY29udGVudCB3aWxsIGJlIHBhcnNlZCBvdXQuDQogICAgICogQHJldHVybiB2b2lkDQogICAgICogQGFjY2VzcyBwcml2YXRlDQogICAgICovDQogICAgcHJpdmF0ZSBmdW5jdGlvbiBfcHJvY2Vzc1BERkluZm9CbG9jaygpDQogICAgew0KICAgICAgICAkaW5mbyA9ICR0aGlzLT5fYmFnVHJhaWxlci0+aW5mbzsNCiAgICAgICAgDQogICAgICAgIGlmICgkaW5mbyA9PSAiIikNCiAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgDQogICAgICAgICRkYXRhID0gJHRoaXMtPl9nZXRDb250ZW50QmxvY2tCeUlkKCRpbmZvLCBmYWxzZSk7DQogICAgICAgIA0KICAgICAgICAkZGF0YSA9IHN0cl9yZXBsYWNlKCJcKCIsICJbIiwgJGRhdGEpOw0KICAgICAgICAkZGF0YSA9IHN0cl9yZXBsYWNlKCJcKSIsICJdIiwgJGRhdGEpOw0KICAgICAgICAgICAgICAgIA0KICAgICAgICAkcGF0dGVyblRpdGxlID0gIi9cL1RpdGxlXHN7MCwxfShcZCtcc3swLDF9XGQrKVxzezAsMX1SLyI7DQogICAgICAgIA0KICAgICAgICBpZiAoMSA9PSBwcmVnX21hdGNoKCRwYXR0ZXJuVGl0bGUsICRkYXRhLCAkbWF0Y2hlcykpIHsNCiAgICAgICAgICAgICR0aGlzLT5fYXJ5SW5mb0tleXNbXSA9ICRtYXRjaGVzWzFdOw0KICAgICAgICAgICAgJHRoaXMtPl90aXRsZSA9ICR0aGlzLT5fZ2V0Q29udGVudEJsb2NrQnlJZCgkbWF0Y2hlc1sxXSwgdHJ1ZSk7DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAkcGF0dGVyblRpdGxlID0gIi9cL1RpdGxlXCgoW14pXSspXCkvIjsNCiAgICAgICAgICAgIGlmICgxID09IHByZWdfbWF0Y2goJHBhdHRlcm5UaXRsZSwgJGRhdGEsICRtYXRjaGVzKSkgew0KICAgICAgICAgICAgICAgICR0aGlzLT5fYXJ5SW5mb0tleXNbXSA9ICRpbmZvOw0KICAgICAgICAgICAgICAgICR0aGlzLT5fdGl0bGUgPSAkbWF0Y2hlc1sxXTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICAgICAgDQogICAgICAgICRwYXR0ZXJuQXV0aG9yID0gIi9cL0F1dGhvclxzezAsMX0oXGQrXHN7MCwxfVxkKylcc3swLDF9Ui8iOw0KICAgICAgICANCiAgICAgICAgaWYgKDEgPT0gcHJlZ19tYXRjaCgkcGF0dGVybkF1dGhvciwgJGRhdGEsICRtYXRjaGVzKSkgew0KICAgICAgICAgICAgJHRoaXMtPl9hcnlJbmZvS2V5c1tdID0gJG1hdGNoZXNbMV07DQogICAgICAgICAgICAkdGhpcy0+X2F1dGhvciA9ICR0aGlzLT5fZ2V0Q29udGVudEJsb2NrQnlJZCgkbWF0Y2hlc1sxXSwgdHJ1ZSk7DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAkcGF0dGVybkF1dGhvciA9ICIvXC9BdXRob3JcKChbXildKylcKS8iOw0KICAgICAgICAgICAgaWYgKDEgPT0gcHJlZ19tYXRjaCgkcGF0dGVybkF1dGhvciwgJGRhdGEsICRtYXRjaGVzKSkgew0KICAgICAgICAgICAgICAgICR0aGlzLT5fYXJ5SW5mb0tleXNbXSA9ICRpbmZvOw0KICAgICAgICAgICAgICAgICR0aGlzLT5fYXV0aG9yID0gJG1hdGNoZXNbMV07DQogICAgICAgICAgICB9ICAgICAgICAgICAgDQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgICRwYXR0ZXJuU3ViamVjdCA9ICIvXC9TdWJqZWN0XHN7MCwxfShcZCtcc3swLDF9XGQrKVxzezAsMX1SLyI7DQogICAgICAgIA0KICAgICAgICBpZiAoMSA9PSBwcmVnX21hdGNoKCRwYXR0ZXJuU3ViamVjdCwgJGRhdGEsICRtYXRjaGVzKSkgew0KICAgICAgICAgICAgJHRoaXMtPl9hcnlJbmZvS2V5c1tdID0gJG1hdGNoZXNbMV07DQogICAgICAgICAgICAkdGhpcy0+X3N1YmplY3QgPSAkdGhpcy0+X2dldENvbnRlbnRCbG9ja0J5SWQoJG1hdGNoZXNbMV0sIHRydWUpOw0KICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgJHBhdHRlcm5TdWJqZWN0ID0gIi9cL1N1YmplY3RcKChbXildKylcKS8iOw0KICAgICAgICAgICAgaWYgKDEgPT0gcHJlZ19tYXRjaCgkcGF0dGVyblN1YmplY3QsICRkYXRhLCAkbWF0Y2hlcykpIHsNCiAgICAgICAgICAgICAgICAkdGhpcy0+X2FyeUluZm9LZXlzW10gPSAkaW5mbzsNCiAgICAgICAgICAgICAgICAkdGhpcy0+X3N1YmplY3QgPSAkbWF0Y2hlc1sxXTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgJHBhdHRlcm5Qcm9kdWNlciA9ICIvXC9Qcm9kdWNlclxzezAsMX0oXGQrXHN7MCwxfVxkKylcc3swLDF9Ui8iOw0KICAgICAgICANCiAgICAgICAgaWYgKDEgPT0gcHJlZ19tYXRjaCgkcGF0dGVyblByb2R1Y2VyLCAkZGF0YSwgJG1hdGNoZXMpKSB7DQogICAgICAgICAgICAkdGhpcy0+X2FyeUluZm9LZXlzW10gPSAkbWF0Y2hlc1sxXTsNCiAgICAgICAgICAgICR0aGlzLT5fcHJvZHVjZXIgPSAkdGhpcy0+X2dldENvbnRlbnRCbG9ja0J5SWQoJG1hdGNoZXNbMV0sIHRydWUpOw0KICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgJHBhdHRlcm5Qcm9kdWNlciA9ICIvXC9Qcm9kdWNlclwoKFteKV0rKVwpLyI7DQogICAgICAgICAgICBpZiAoMSA9PSBwcmVnX21hdGNoKCRwYXR0ZXJuUHJvZHVjZXIsICRkYXRhLCAkbWF0Y2hlcykpIHsNCiAgICAgICAgICAgICAgICAkdGhpcy0+X2FyeUluZm9LZXlzW10gPSAkaW5mbzsNCiAgICAgICAgICAgICAgICAkdGhpcy0+X3Byb2R1Y2VyID0gJG1hdGNoZXNbMV07DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgICRwYXR0ZXJuQ3JlYXRvciA9ICIvXC9DcmVhdG9yXHN7MCwxfShcZCtcc3swLDF9XGQrKVxzezAsMX1SLyI7DQogICAgICAgIA0KICAgICAgICBpZiAoMSA9PSBwcmVnX21hdGNoKCRwYXR0ZXJuQ3JlYXRvciwgJGRhdGEsICRtYXRjaGVzKSkgew0KICAgICAgICAgICAgJHRoaXMtPl9hcnlJbmZvS2V5c1tdID0gJG1hdGNoZXNbMV07DQogICAgICAgICAgICAkdGhpcy0+X2NyZWF0b3IgPSAkdGhpcy0+X2dldENvbnRlbnRCbG9ja0J5SWQoJG1hdGNoZXNbMV0sIHRydWUpOw0KICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgJHBhdHRlcm5DcmVhdG9yID0gIi9cL0NyZWF0b3JcKChbXildKylcKS8iOw0KICAgICAgICAgICAgaWYgKDEgPT0gcHJlZ19tYXRjaCgkcGF0dGVybkNyZWF0b3IsICRkYXRhLCAkbWF0Y2hlcykpIHsNCiAgICAgICAgICAgICAgICAkdGhpcy0+X2FyeUluZm9LZXlzW10gPSAkaW5mbzsNCiAgICAgICAgICAgICAgICAkdGhpcy0+X2NyZWF0b3IgPSAkbWF0Y2hlc1sxXTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgLy8gQ3JlYXRpb24gZGF0ZSBsb29rcyBsaWtlOiAiKEQ6MjAwOTA5MjIxOTEyMDVaMDAnMDAnKSINCiAgICAgICAgJHBhdHRlcm5DcmVhdGlvbkRhdGUgPSAiL1wvQ3JlYXRpb25EYXRlXHN7MCwxfShcZCtcc3swLDF9XGQrKVxzezAsMX1SLyI7DQogICAgICAgIA0KICAgICAgICBpZiAoMSA9PSBwcmVnX21hdGNoKCRwYXR0ZXJuQ3JlYXRpb25EYXRlLCAkZGF0YSwgJG1hdGNoZXMpKSB7DQogICAgICAgICAgICAkdGhpcy0+X2FyeUluZm9LZXlzW10gPSAkbWF0Y2hlc1sxXTsNCiAgICAgICAgICAgICR0aGlzLT5fY3JlYXRpb25EYXRlID0gJHRoaXMtPl9nZXRDb250ZW50QmxvY2tCeUlkKCRtYXRjaGVzWzFdLCB0cnVlKTsNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICRwYXR0ZXJuQ3JlYXRpb25EYXRlID0gIi9cL0NyZWF0aW9uRGF0ZVwoKFteKV0rKVwpLyI7DQogICAgICAgICAgICBpZiAoMSA9PSBwcmVnX21hdGNoKCRwYXR0ZXJuQ3JlYXRpb25EYXRlLCAkZGF0YSwgJG1hdGNoZXMpKSB7DQogICAgICAgICAgICAgICAgJHRoaXMtPl9hcnlJbmZvS2V5c1tdID0gJGluZm87DQogICAgICAgICAgICAgICAgJHRoaXMtPl9jcmVhdGlvbkRhdGUgPSAkbWF0Y2hlc1sxXTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgLy8gTW9kaWZpY2F0aW9uIGRhdGUgbG9va3MgbGlrZTogIihEOjIwMDkwOTIyMTkxMjA1WjAwJzAwJykiDQogICAgICAgICRwYXR0ZXJuTW9kRGF0ZSA9ICIvXC9Nb2REYXRlXHN7MCwxfShcZCtcc3swLDF9XGQrKVxzezAsMX1SLyI7DQogICAgICAgIA0KICAgICAgICBpZiAoMSA9PSBwcmVnX21hdGNoKCRwYXR0ZXJuTW9kRGF0ZSwgJGRhdGEsICRtYXRjaGVzKSkgew0KICAgICAgICAgICAgJHRoaXMtPl9hcnlJbmZvS2V5c1tdID0gJG1hdGNoZXNbMV07DQogICAgICAgICAgICAkdGhpcy0+X21vZERhdGUgPSAkdGhpcy0+X2dldENvbnRlbnRCbG9ja0J5SWQoJG1hdGNoZXNbMV0sIHRydWUpOw0KICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgJHBhdHRlcm5Nb2REYXRlID0gIi9cL01vZERhdGVcKChbXildKylcKS8iOw0KICAgICAgICAgICAgaWYgKDEgPT0gcHJlZ19tYXRjaCgkcGF0dGVybk1vZERhdGUsICRkYXRhLCAkbWF0Y2hlcykpIHsNCiAgICAgICAgICAgICAgICAkdGhpcy0+X2FyeUluZm9LZXlzW10gPSAkaW5mbzsNCiAgICAgICAgICAgICAgICAkdGhpcy0+X21vZERhdGUgPSAkbWF0Y2hlc1sxXTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgLy8gS2V5d29yZHMgbG9vayBsaWtlOiAiKGtleXdvcmQxLCBrZXl3b3JkMiwga2V5d29yZDMpIg0KICAgICAgICAkcGF0dGVybktleXdvcmRzID0gIi9cL0tleXdvcmRzXHN7MCwxfShcZCtcc3swLDF9XGQrKVxzezAsMX1SLyI7DQogICAgICAgIA0KICAgICAgICBpZiAoMSA9PSBwcmVnX21hdGNoKCRwYXR0ZXJuS2V5d29yZHMsICRkYXRhLCAkbWF0Y2hlcykpIHsNCiAgICAgICAgICAgICR0aGlzLT5fYXJ5SW5mb0tleXNbXSA9ICRtYXRjaGVzWzFdOw0KICAgICAgICAgICAgJHRoaXMtPl9rZXl3b3JkcyA9ICR0aGlzLT5fZ2V0Q29udGVudEJsb2NrQnlJZCgkbWF0Y2hlc1sxXSwgdHJ1ZSk7DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAkcGF0dGVybktleXdvcmRzID0gIi9cL0tleXdvcmRzXCgoW14pXSspXCkvIjsNCiAgICAgICAgICAgIGlmICgxID09IHByZWdfbWF0Y2goJHBhdHRlcm5LZXl3b3JkcywgJGRhdGEsICRtYXRjaGVzKSkgew0KICAgICAgICAgICAgICAgICR0aGlzLT5fYXJ5SW5mb0tleXNbXSA9ICRpbmZvOw0KICAgICAgICAgICAgICAgICR0aGlzLT5fa2V5d29yZHMgPSAkbWF0Y2hlc1sxXTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIC8vIEFBUEwga2V5d29yZHMgbG9vayBsaWtlOiAiWyAoa2V5d29yZDEpIChrZXl3b3JkMikgKGtleXdvcmQzKSBdIg0KICAgICAgICAkcGF0dGVybkFhcGxLZXl3b3JkcyA9ICIvXC9BQVBMXDpLZXl3b3Jkc1xzezAsMX0oXGQrXHN7MCwxfVxkKylcc3swLDF9Ui8iOw0KICAgICAgICANCiAgICAgICAgaWYgKDEgPT0gcHJlZ19tYXRjaCgkcGF0dGVybkFhcGxLZXl3b3JkcywgJGRhdGEsICRtYXRjaGVzKSkgew0KICAgICAgICAgICAgJHRoaXMtPl9hcnlJbmZvS2V5c1tdID0gJG1hdGNoZXNbMV07DQogICAgICAgICAgICAkdGhpcy0+X2FhcGxLZXl3b3JkcyA9ICR0aGlzLT5fZ2V0Q29udGVudEJsb2NrQnlJZCgkbWF0Y2hlc1sxXSwgdHJ1ZSk7DQogICAgICAgIH0NCg0KICAgIH0NCg0KICAgIC8qKg0KICAgICAqIExvb3BzIHRocm91Z2ggdGhlIGludGVybmFsIGFycmF5IG9mIG9iamVjdHMgYW5kIGlmDQogICAgICogb2JqZWN0IGlzIGlkZW50aWZpZWQgYXMgcHJvYmFibHkgY29udGFpbmluZyB0ZXh0IHRoZW4NCiAgICAgKiBpdHMgdmFsdWUgaXMgYWRkZWQgdG8gdGhlIHBhcnNlZCBjb250ZW50cyB2YXJpYWJsZS4gQXQNCiAgICAgKiB0aGUgZW5kIG9mIHRoaXMgcm91dGluZSwgdGhlIFBERiBjb250ZW50cyB3aWxsIGhhdmUgYWxsDQogICAgICogYmVlbiBjb25zb2xpZGF0ZWQgdG8gdGhlIGZpbmFsIG91dHB1dCB2YXJpYWJsZXMuDQogICAgICogQHJldHVybiB2b2lkDQogICAgICogQGFjY2VzcyBwcml2YXRlDQogICAgICovDQogICAgcHJpdmF0ZSBmdW5jdGlvbiBfcHJvY2Vzc0NvbnRlbnRzKCkNCiAgICB7DQogICAgICAgICRjb250ZW50cyAgPSAiIjsNCiAgICAgICAgZm9yZWFjaCAoJHRoaXMtPl9iYWdCb2R5LT5vYmplY3RzIGFzICRvYmopIHsNCiAgICAgICAgICAgICRpc0luZm9LZXkgPSBmYWxzZTsNCiAgICAgICAgICAgIGZvcmVhY2ggKCR0aGlzLT5fYXJ5SW5mb0tleXMgYXMgJGluZm9LZXkpDQogICAgICAgICAgICAgICAgaWYgKCRpbmZvS2V5ID09ICRvYmpbJ2tleSddKQ0KICAgICAgICAgICAgICAgICAgICAkaXNJbmZvS2V5ID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICBpZiAoJG9ialsncHJvYmFibGVUZXh0J10gPT0gdHJ1ZSAmJiAhJGlzSW5mb0tleSkNCiAgICAgICAgICAgICAgICAkY29udGVudHMgLj0gJG9ialsnY29udGVudHMnXTsNCiAgICAgICAgfSAgICAgICAgDQogICAgICAgICR0aGlzLT5fY29udGVudHMgPSAkY29udGVudHM7DQogICAgfQ0KDQogICAgLyoqDQogICAgICogU2VhcmNoZXMgdGhlIGludGVybmFsIGFycmF5IG9mIG9iamVjdHMgZm9yIHRoZSBzcGVjaWZpZWQNCiAgICAgKiBpZCBhbmQgcmV0dXJucyBlaXRoZXIgdGhlIGNvbnRlbnQgb3IgZGljdGlvbmFyeSB2YWx1ZXMNCiAgICAgKiBhc3NvY2lhdGVkIHdpdGggdGhhdCBvYmplY3QuDQogICAgICogQHBhcmFtICRpZCBJZCBvZiBvYmplY3QgdG8gZ2V0IHZhbHVlcyBmb3INCiAgICAgKiBAcGFyYW0gJHdhbnRDb250ZW50IFRydWUsIHJldHVybnMgY29udGVudHMsIGVsc2UgcmV0dXJucyBkaWN0aW9uYXJ5DQogICAgICogQHJldHVybiBzdHJpbmcNCiAgICAgKiBAYWNjZXNzIHByaXZhdGUNCiAgICAgKi8NCiAgICBwcml2YXRlIGZ1bmN0aW9uIF9nZXRDb250ZW50QmxvY2tCeUlkKCRpZCwgJHdhbnRDb250ZW50KQ0KICAgIHsNCiAgICAgICAgZm9yZWFjaCAoJHRoaXMtPl9iYWdCb2R5LT5vYmplY3RzIGFzICRvYmopDQogICAgICAgICAgICBpZiAoJG9ialsna2V5J10gPT0gJGlkKQ0KICAgICAgICAgICAgICAgIGlmICgkd2FudENvbnRlbnQpDQogICAgICAgICAgICAgICAgICAgIHJldHVybiAkb2JqWydjb250ZW50cyddOw0KICAgICAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICRvYmpbJ2RpY3Rpb25hcnknXTsNCiAgICAgICAgcmV0dXJuICIiOw0KICAgIH0NCg0KICAgIC8qKg0KICAgICAqIFByb2Nlc3NlcyBhIHN0cmVhbSBjb250YWluZWQgd2l0aGluIGFuIG9iamVjdA0KICAgICAqIEBwYXJhbSAkaGVhZGVyIEVuY2xvc2luZyBvYmplY3QncyBtZXRhZGF0YQ0KICAgICAqIEBwYXJhbSAkZGF0YSBTdHJlYW0gb2JqZWN0IHRvIHBhcnNlDQogICAgICogQHJldHVybiBtaXhlZCBGYWxzZSBpZiBzdHJlYW0gZm9ybWF0IG5vdCBoYW5kbGVkIG90aGVyd2lzZSBjb250ZW50cyBvZiBzdHJlYW0NCiAgICAgKiBAYWNjZXNzIHByaXZhdGUNCiAgICAgKi8NCiAgICBwcml2YXRlIGZ1bmN0aW9uIF9nZXRTdHJlYW1EYXRhKCRoZWFkZXIsICRkYXRhKQ0KICAgIHsNCiAgICAgICAgLy8gTm9uLXRleHQgc3RyZWFtIG9iamVjdHMgc3VjaCBhcyBpbWFnZXMNCiAgICAgICAgaWYgKHN0cnBvcygkaGVhZGVyLCAiL0RldmljZSIsIDApICE9PSBmYWxzZSB8fA0KICAgICAgICAgICAgc3RycG9zKCRoZWFkZXIsICIvSW1hZ2UiLCAwKSAhPT0gZmFsc2UgfHwNCiAgICAgICAgICAgIHN0cnBvcygkaGVhZGVyLCAiL01ldGFkYXRhIiwgMCkgIT09IGZhbHNlIHx8DQogICAgICAgICAgICBzdHJwb3MoJGhlYWRlciwgIi9Db2xvclNwYWNlIiwgMCkgIT09IGZhbHNlKSANCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsgLy8gIioqIERldmljZXxJbWFnZXxNZXRhZGF0YSAqKiINCg0KICAgICAgICAvLyBFbmNvZGluZ3Mgd2UgYXJlIG5vdCBhYmxlIHRvIHBhcnNlIHlldAkNCiAgICAgICAgaWYgKHN0cnBvcygkaGVhZGVyLCAiL0FTQ0lJSGV4RGVjb2RlIiwgMCkgIT09IGZhbHNlIHx8DQogICAgICAgICAgICBzdHJwb3MoJGhlYWRlciwgIi9BU0NJSTg1RGVjb2RlIiwgMCkgIT09IGZhbHNlIHx8DQogICAgICAgICAgICBzdHJwb3MoJGhlYWRlciwgIi9MWldEZWNvZGUiLCAwKSAhPT0gZmFsc2UgfHwNCiAgICAgICAgICAgIHN0cnBvcygkaGVhZGVyLCAiL1J1bkxlbmd0aERlY29kZSIsIDApICE9PSBmYWxzZSB8fA0KICAgICAgICAgICAgc3RycG9zKCRoZWFkZXIsICIvQ0NJVFRGYXhEZWNvZGUiLCAwKSAhPT0gZmFsc2UgfHwNCiAgICAgICAgICAgIHN0cnBvcygkaGVhZGVyLCAiL0RDVERlY29kZSIsIDApICE9PSBmYWxzZSkNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsgLy8gIioqIFVuaGFuZGxlZCBFbmNvZGluZyAqKiINCiAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAvLyBGaWx0ZXIgb3V0IFBERiBoaW50IHRhYmxlcw0KICAgICAgICBpZiAoMSA9PSBwcmVnX21hdGNoKCIvXC9bTFNdXHN7MCwxfVxkKy8iLCAkaGVhZGVyLCAkbWF0Y2hlcykpIHsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsgLy8iKiogSElOVCBUQUJMRSAqKiI7DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIC8vIEZpbHRlciBvdXQgZm9udCBwcm9ncmFtIGluZm9ybWF0aW9uDQogICAgICAgIGlmICgxID09IHByZWdfbWF0Y2goIi9cL0xlbmd0aFsxMjNdXHN7MCwxfVxkKy8iLCAkaGVhZGVyLCAkbWF0Y2hlcykgfHwNCiAgICAgICAgICAgIDEgPT0gcHJlZ19tYXRjaCgiL1wvU3VidHlwZVwvVHlwZTFDLyIsICRoZWFkZXIsICRtYXRjaGVzKSB8fA0KICAgICAgICAgICAgMSA9PSBwcmVnX21hdGNoKCIvXC9TdWJ0eXBlXC9DSURGb250VHlwZTBDLyIsICRoZWFkZXIsICRtYXRjaGVzKSkNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsgLy8iKiogRk9OVCBQUk9HUkFNICoqIjsgIA0KDQogICAgICAgIC8vIFBERiBpcyBlbmNyeXB0ZWQNCiAgICAgICAgaWYgKCR0aGlzLT5fYmFnVHJhaWxlci0+ZW5jcnlwdCA9PSB0cnVlKQ0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOyAvLyIqKiBFTkNSWVBURUQgKioiOw0KDQogICAgICAgIGlmIChzdHJwb3MoJGhlYWRlciwgIi9GbGF0ZURlY29kZSIsIDApID09PSBmYWxzZSkgew0KICAgICAgICAgICAgLy8gU3RyZWFtIGlzIHBsYWluIHRleHQNCiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+X2dldFN0cmVhbUVtYmVkZGVkRGF0YSgkZGF0YSwgZmFsc2UpOw0KICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgLy8gU3RyZWFtIGlzIGNvbXByZXNzZWQgdGV4dCB1c2luZyB6bGliIChpLmUuIEZsYXRlRGVjb2RlKSANCiAgICAgICAgICAgICRzdGFydFBvcyA9IDE7ICAvLyBBc3N1bWUgb25lIGxpbmUgc3RyZWFtIHRhZyBzZXBhcmF0b3INCiAgICAgICAgICAgICRlbmRQb3MgPSAxOyAgICAvLyBBc3N1bWUgb25lIGxpbmUgZW5kc3RyZWFtIHRhZyBzZXBhcmF0b3INCiAgICAgICAgICAgICRsZW5ndGggPSAwOw0KDQogICAgICAgICAgICAvLyBDaGVjayBmb3IgQ2FycmlhZ2UgUmV0dXJuICsgTGluZSBGZWVkIGFmdGVyIHN0cmVhbSB0YWcNCiAgICAgICAgICAgIGlmIChzdWJzdHIoJGRhdGEsIDAsIDEpID09ICJcciIgJiYgc3Vic3RyKCRkYXRhLCAxLCAxKSA9PSAiXG4iKQ0KICAgICAgICAgICAgICAgICRzdGFydFBvcyA9IDI7DQoNCiAgICAgICAgICAgIC8vIENoZWNrIGZvciBDYXJyaWFnZSBSZXR1cm4gKyBMaW5lIEZlZWQgYmVmb3JlIGVuZHN0cmVhbSB0YWcNCiAgICAgICAgICAgIGlmIChzdWJzdHIoJGRhdGEsIC0yLCAxKSA9PSAiXHIiICYmIHN1YnN0cigkZGF0YSwgLTEsIDEpID09ICJcbiIpDQogICAgICAgICAgICAgICAgJGVuZFBvcyA9IDI7ICAgIA0KDQogICAgICAgICAgICAvLyBJZiB0aGUgbGVuZ3RoIGlzIGFuIGluZGlyZWN0IG9iamVjdCByZWZlcmVuY2UgdGhhdCBoYXMgYSBmb3JtYXQNCiAgICAgICAgICAgIC8vIGxpa2UgIi9MZW5ndGggIyAjIFIiIHdoZXJlICMgIyBpcyB0aGUga2V5IG9mIHRoZSByZWZlcmVuY2VkDQogICAgICAgICAgICAvLyBvYmplY3Qgd2hvc2UgY29udGVudHMgY29udGFpbiB0aGUgc3RyZWFtIGxlbmd0aCB2YWx1ZS4gSW4gdGhpcyANCiAgICAgICAgICAgIC8vIGNhc2Ugd2Ugd2lsbCBqdXN0IHRha2UgdGhlIHNob3J0Y3V0IGV2YWx1YXRpb24gb2YgdGhlIGxlbmd0aCB1c2luZw0KICAgICAgICAgICAgLy8gc3RyZWFtL2VuZHN0cmVhbSBwb3NpdGlvbnMgYW5kIHJlbW92aW5nIHRoZSBsZWFkaW5nIHNlcGFyYXRvcnMuIE5PVEU6DQogICAgICAgICAgICAvLyB0aGVyZSBkb2VzIG5vdCBhcHBlYXIgdG8gYmUgdHJhaWxpbmcgc2VwYXJhdG9ycyB1c2VkIGhlcmUgc28gd2UgYXJlDQogICAgICAgICAgICAvLyBpZ25vcmluZyB0aGUgZW5kcG9zIGNhbGN1bGF0aW9uIGluIHRoZSBsZW5ndGguDQogICAgICAgICAgICBpZiAoMSA9PSBwcmVnX21hdGNoKCIvXC9MZW5ndGhcc3swLDF9XGQrXHN7MCwxfVxkK1xzezAsMX1SLyIsICRoZWFkZXIsICRtYXRjaGVzKSkgew0KICAgICAgICAgICAgICAgICRsZW5ndGggPSBzdHJsZW4oJGRhdGEpIC0gJHN0YXJ0UG9zOw0KICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAvLyBBIGRpcmVjdCBsZW5ndGggdmFsdWUgaXMgc3RvcmVkIGluIHRoZSBoZWFkZXIgYW5kIGhhcyBhIGZvcm1hdA0KICAgICAgICAgICAgICAgIC8vIGxpa2U6ICIvTGVuZ3RoICMiDQogICAgICAgICAgICAgICAgcHJlZ19tYXRjaCgiL1wvTGVuZ3RoXHN7MCwxfShcZCspLyIsICRoZWFkZXIsICRtYXRjaGVzKTsNCiAgICAgICAgICAgICAgICAkbGVuZ3RoID0gJG1hdGNoZXNbMV07DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICRwaHBfZXJyb3Jtc2cgPSAiIjsNCiAgICAgICAgICAgICRjb250ZW50cyA9IEBnenVuY29tcHJlc3Moc3Vic3RyKCRkYXRhLCAkc3RhcnRQb3MsICRsZW5ndGgpKTsNCg0KICAgICAgICAgICAgaWYgKCRwaHBfZXJyb3Jtc2cgIT0gIiIpIHsNCiAgICAgICAgICAgICAgICBlY2hvICJXYXJuaW5nOiAiIC4gaHRtbGVudGl0aWVzKCRwaHBfZXJyb3Jtc2cpIC4gIiBpbiAiIA0KICAgICAgICAgICAgICAgICAgICAuIGh0bWxlbnRpdGllcyhfX0ZJTEVfXykgLiAiIG5lYXIgbGluZSAiIA0KICAgICAgICAgICAgICAgICAgICAuIGh0bWxlbnRpdGllcyhfX0xJTkVfXykgLiAiXG4iOw0KICAgICAgICAgICAgICAgIC8vZWNobyAiREVCVUc6IEhlYWRlciAgOiAiIC4gaHRtbGVudGl0aWVzKCRoZWFkZXIpIC4gIlxuIjsNCiAgICAgICAgICAgICAgICAvL2VjaG8gIkRFQlVHOiBMZW5ndGggIDogIiAuIGh0bWxlbnRpdGllcygkbGVuZ3RoKSAuICJcbiI7DQogICAgICAgICAgICAgICAgLy9lY2hvICJERUJVRzogU3RhcnRQb3M6ICIgLiBodG1sZW50aXRpZXMoJHN0YXJ0UG9zKSAuICJcbiI7DQogICAgICAgICAgICAgICAgLy9lY2hvICJERUJVRzogRW5kUG9zICA6ICIgLiBodG1sZW50aXRpZXMoJGVuZFBvcykgLiAiXG4iOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAvL2VjaG8gIkRFQlVHOlVuY29tcHJlc3NlZCBDb250ZW50czogIiAuIGh0bWxlbnRpdGllcygkY29udGVudHMpIC4gIlxuXG4iOw0KDQogICAgICAgICAgICByZXR1cm4gJHRoaXMtPl9nZXRTdHJlYW1FbWJlZGRlZERhdGEoJGNvbnRlbnRzLCB0cnVlKTsNCiAgICAgICAgfQ0KICAgIH0NCg0KICAgIC8qKg0KICAgICAqIFBhcnNlcyB0aGUgY29udGVudHMgb3V0IG9mIHN0cmVhbSBvYmplY3QuIElmIHN0cmVhbSBvYmplY3QgaXMNCiAgICAgKiBjb21wcmVzc2VkIHRoZW4gaXQgbXVzdCBiZSB1bmNvbXByZXNzZWQgZmlyc3QgYmVmb3JlIGNhbGxpbmcNCiAgICAgKiB0aGlzIGZ1bmN0aW9uLg0KICAgICAqIEBwYXJhbSAkZGF0YSBTdHJlYW0gZGF0YSB0byBwYXJzZQ0KICAgICAqIEBwYXJhbSAkd2FzQ29tcHJlc3NlZCBJbmRpY2F0ZXMgdGhhdCBzdHJlYW0gZGF0YSB3YXMgdW5jb21wcmVzc2VkDQogICAgICogQHJldHVybiBzdHJpbmcNCiAgICAgKiBAYWNjZXNzIHByaXZhdGUNCiAgICAgKi8NCiAgICBwcml2YXRlIGZ1bmN0aW9uIF9nZXRTdHJlYW1FbWJlZGRlZERhdGEoJGRhdGEsICR3YXNDb21wcmVzc2VkID0gdHJ1ZSkNCiAgICB7DQogICAgICAgICRjaGFyICAgICAgPSAiIjsNCiAgICAgICAgJHBhcmVuICAgICA9IGZhbHNlOw0KICAgICAgICAkcmVzdWx0cyAgID0gIiI7DQogICAgICAgICR0akZvbGxvd3MgPSBmYWxzZTsNCg0KICAgICAgICAvLyBQYXJlbnRoZXNlcyBhcmUgdXNlZCB0byBkZWxpbWl0IHRleHQgc3RyZWFtcywgYnV0IHRob3NlIHRleHQNCiAgICAgICAgLy8gc3RyZWFtcyBtYXkgYWxzbyBjb250YWluIGVtYmVkZGVkIHBhcmVudGhlc2VzLiBXZSB3YW50IHRvDQogICAgICAgIC8vIHJlcGxhY2UgdGhlIGVtYmVkZGVkIHBhcmVudGVzZXMgd2l0aCBicmFja2V0cyBzbyBvdXIgbWF0Y2gNCiAgICAgICAgLy8gZXhwcmVzc2lvbiBpcyBub3QgYWZmZWN0ZWQuDQogICAgICAgICRkYXRhID0gc3RyX3JlcGxhY2UoIlwoIiwgIlsiLCAkZGF0YSk7DQogICAgICAgICRkYXRhID0gc3RyX3JlcGxhY2UoIlwpIiwgIl0iLCAkZGF0YSk7DQoNCiAgICAgICAgLy9lY2hvICJERUJVRzogU3RyZWFtOiAiIC4gaHRtbGVudGl0aWVzKCRkYXRhKSAuICJcbiI7DQoNCiAgICAgICAgJHJlZyA9ICIvKFwoW14oKV0rXCkpL2ltIjsNCg0KICAgICAgICBpZiAoMCA8IHByZWdfbWF0Y2hfYWxsKCRyZWcsICRkYXRhLCAkbWF0Y2hlcykpIHsNCiAgICAgICAgICAgIGZvcmVhY2ggKCRtYXRjaGVzWzBdIGFzICRlbnRyeSkgew0KICAgICAgICAgICAgICAgIC8vZWNobyAiREVCVUc6IE1hdGNoOiAiIC4gaHRtbGVudGl0aWVzKCRlbnRyeSkgLiAiXG4iOw0KICAgICAgICAgICAgICAgICRyZXN1bHRzIC49IHN1YnN0cigkZW50cnksIDEsIC0xKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIC8vZWNobyAiREVCVUc6U3RyZWFtIEVtYmVkZGVkIERhdGE6IHt7IiAuIGh0bWxlbnRpdGllcygkcmVzdWx0cykgLiAifX1cblxuIjsNCg0KICAgICAgICByZXR1cm4gJHJlc3VsdHM7DQogICAgfQ0KDQogICAgLyoqDQogICAgICogUmVhZHMgbGluZXMgaW50byBhIGJ1ZmZlciB1bnRpbCBhIGxpbmUgaXMgcmVhZCB0aGF0DQogICAgICogY29udGFpbnMgdGhlIHNwZWNpZmllZCBzdG9wIHBhdHRlcm4uIFRoZSByZXR1cm5lZA0KICAgICAqIHJlc3VsdHMgd2lsbCBjb250YWluIHRoZSBzdG9wIHBhdHRlcm4gbWF0Y2hlZCB0ZXh0DQogICAgICogYXMgd2VsbC4NCiAgICAgKiBAcGFyYW0gJHBhdHRlcm5TdG9wIFJlZ2V4IHBhdHRlcm4gdGhhdCBpZGVudGlmaWVzIGVuZCBvZiBibG9jaw0KICAgICAqIEByZXR1cm4gc3RyaW5nDQogICAgICogQGFjY2VzcyBwcml2YXRlDQogICAgICovDQogICAgcHJpdmF0ZSBmdW5jdGlvbiBfcmVhZFRvRW5kT2ZCbG9jaygkcGF0dGVyblN0b3ApDQogICAgew0KICAgICAgICAkYnVmZmVyID0gIiI7DQoNCiAgICAgICAgZG8gew0KICAgICAgICAgICAgJGJ1ZmZlciAuPSAkdGhpcy0+X2ZpbGVCdWZmZXI7DQogICAgICAgICAgICANCiAgICAgICAgICAgIGlmICgxID09IHByZWdfbWF0Y2goJHBhdHRlcm5TdG9wLCB0cmltKCR0aGlzLT5fZmlsZUJ1ZmZlciksICRtYXRjaGVzKSkNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIA0KICAgICAgICB9IHdoaWxlICgkdGhpcy0+X3JlYWRMaW5lKCkpOw0KICAgICAgICANCiAgICAgICAgcmV0dXJuICRidWZmZXI7DQogICAgICAgIA0KICAgIH0NCg0KICAgIC8qKg0KICAgICAqIFJlYWRzIGEgc2luZ2xlIGxpbmUgb2YgaW5wdXQgaW50byBhbiBpbnRlcm5hbCBidWZmZXINCiAgICAgKiBAYWNjZXNzIHByaXZhdGUNCiAgICAgKiBAcmV0dXJuIGludGVnZXIgMSBpZiBhIGxpbmUgd2FzIHJlYWQsIDAgaWYgZW5kIG9mIGZpbGUNCiAgICAgKi8NCiAgICBwcml2YXRlIGZ1bmN0aW9uIF9yZWFkTGluZSgpDQogICAgew0KICAgICAgICBpZiAoIWZlb2YoJHRoaXMtPl9maWxlSGFuZGxlKSkgew0KICAgICAgICAgICAgJHRoaXMtPl9maWxlQnVmZmVyID0gZmdldHMoJHRoaXMtPl9maWxlSGFuZGxlKTsNCiAgICAgICAgICAgICR0aGlzLT5fZmlsZUxpbmUrKzsNCiAgICAgICAgICAgIC8vZWNobyBodG1sZW50aXRpZXMoJHRoaXMtPl9maWxlQnVmZmVyKTsNCiAgICAgICAgICAgIHJldHVybiAxOw0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICByZXR1cm4gMDsNCiAgICB9DQogICAgDQp9Cj8+]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IERvY3VtZW50U2VhcmNoIChjKSAyMDEzIGJ5IE9saXZlciBTZWRkb24gCiMgICAgICAgICAob2xpdmVyQHRocmVlZm9sZC5jby51aykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gcHJvdmlkZSBQREYgYW5kIFdvcmQgZG9jdW1lbnQKIyAgY29udGVudCBzZWFyY2hhYmlsaXR5LgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgokZGIgPSAkdGhpcy0+R2V0RGIoKTsKJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSggJGRiICk7CiRmbGRzID0gIgogICAgIGRvY3VtZW50c2VhcmNoX2lkIEkgS0VZLAoJIGRvY3VtZW50c2VhcmNoX2NhdGVnb3J5X2lkIEksCgkgZG9jdW1lbnRzZWFyY2hfY2F0ZWdvcnlfbmFtZSBDKDI1NSksCgkgbmFtZSBDKDI1NSksCgkgY29udGVudCBYLAoJIGxvY2F0aW9uIEMoMjU1KSwKCSBhdXRob3IgQygyNTUpLAoJIGRvY3VtZW50X2RhdGUgIiAuIENNU19BRE9EQl9EVCAuICIKIjsKCiR0YWJvcHRhcnJheSA9IGFycmF5KCAnbXlzcWwnID0+ICdUWVBFPU15SVNBTScgKTsKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKCBjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9kb2N1bWVudHNlYXJjaCIsCgkJCQkgICAkZmxkcywgJHRhYm9wdGFycmF5KTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwokZGItPkNyZWF0ZVNlcXVlbmNlKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2RvY3VtZW50c2VhcmNoX3NlcSIpOwoKJGZsZHMgPSAiCglkb2N1bWVudHNlYXJjaF9jYXRlZ29yeV9pZCBJIEtFWSwKCWRvY3VtZW50c2VhcmNoX2NhdGVnb3J5X25hbWUgQygyNTUpLAoJcGFyZW50X2lkIEksCgloaWVyYXJjaHkgQygyNTUpLAoJbG9uZ19uYW1lIFgsCgljcmVhdGVfZGF0ZSBULAoJbW9kaWZpZWRfZGF0ZSBUCiI7CgokdGFib3B0YXJyYXkgPSBhcnJheSgnbXlzcWwnID0+ICdUWVBFPU15SVNBTScpOwokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZG9jdW1lbnRzZWFyY2hfY2F0ZWdvcmllcyIsIAoJCSRmbGRzLCAkdGFib3B0YXJyYXkpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CiRkYi0+Q3JlYXRlU2VxdWVuY2UoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZG9jdW1lbnRzZWFyY2hfY2F0ZWdvcmllc19zZXEiKTsKCi8vIGNyZWF0ZSBhIHBlcm1pc3Npb24KJHRoaXMtPkNyZWF0ZVBlcm1pc3Npb24oJ1VzZSBEb2N1bWVudCBTZWFyY2gnLCAnVXNlIERvY3VtZW50IFNlYXJjaCcpOwoKLy8gY3JlYXRlIGEgcHJlZmVyZW5jZQokdGhpcy0+U2V0UHJlZmVyZW5jZSgiYWxsb3dfYWRkIiwgdHJ1ZSk7CgojIE90aGVyIHByZWZlcmVuY2VzCiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdhbGxvd2VkX3VwbG9hZF90eXBlcycsJ3BkZixkb2MsZG9jeCxydGYsdHh0Jyk7CgojIFNldHVwIEdlbmVyYWwgY2F0ZWdvcnkKJGNhdGlkID0gJGRiLT5HZW5JRChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9kb2N1bWVudHNlYXJjaF9jYXRlZ29yaWVzX3NlcSIpOwokcXVlcnkgPSAnSU5TRVJUIElOVE8gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9kb2N1bWVudHNlYXJjaF9jYXRlZ29yaWVzIChkb2N1bWVudHNlYXJjaF9jYXRlZ29yeV9pZCwgZG9jdW1lbnRzZWFyY2hfY2F0ZWdvcnlfbmFtZSwgcGFyZW50X2lkLCBjcmVhdGVfZGF0ZSwgbW9kaWZpZWRfZGF0ZSkgVkFMVUVTICg/LD8sPywnLiRkYi0+REJUaW1lU3RhbXAodGltZSgpKS4nLCcuJGRiLT5EQlRpbWVTdGFtcCh0aW1lKCkpLicpJzsKJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGNhdGlkLCAnR2VuZXJhbCcsIC0xKSk7Cg0KIyBTZXR1cCBkZXRhaWwgdGVtcGxhdGUNCiRmbiA9IGRpcm5hbWUoX19GSUxFX18pLkRJUkVDVE9SWV9TRVBBUkFUT1IuDQogICd0ZW1wbGF0ZXMnLkRJUkVDVE9SWV9TRVBBUkFUT1IuJ2RvY3VtZW50c2VhcmNoX2xpc3QudHBsJzsNCmlmKCBmaWxlX2V4aXN0cyggJGZuICkgKSB7DQogICAgJHRlbXBsYXRlID0gQGZpbGVfZ2V0X2NvbnRlbnRzKCRmbik7DQogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2RlZmF1bHRfZGV0YWlsX3RlbXBsYXRlX2NvbnRlbnRzJywkdGVtcGxhdGUpOw0KICAgICR0aGlzLT5TZXRUZW1wbGF0ZSgnZGV0YWlsU2FtcGxlJywkdGVtcGxhdGUpOw0KICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdjdXJyZW50X2RldGFpbF90ZW1wbGF0ZScsJ0RlZmF1bHQnKTsNCn0KCiMgSW5kZXhlcwokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlSW5kZXhTUUwoY21zX2RiX3ByZWZpeCgpLidkb2N1bWVudF9wb3N0ZGF0ZScsIGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2RvY3VtZW50c2VhcmNoJywgJ2RvY3VtZW50X2RhdGUnKTsKCi8vIHJlZ2lzdGVyIGFuIGV2ZW50IHRoYXQgdGhlIERvY3VtZW50IFNlYXJjaCB3aWxsIGlzc3VlLiBPdGhlciBtb2R1bGVzCi8vIG9yIHVzZXIgdGFncyB3aWxsIGJlIGFibGUgdG8gc3Vic2NyaWJlIHRvIHRoaXMgZXZlbnQsIGFuZCB0cmlnZ2VyCi8vIG90aGVyIGFjdGlvbnMgd2hlbiBpdCBnZXRzIGNhbGxlZC4KJHRoaXMtPkNyZWF0ZUV2ZW50KCAnT25Eb2N1bWVudFNlYXJjaFByZWZlcmVuY2VDaGFuZ2UnICk7CgovLyBwdXQgbWVudGlvbiBpbnRvIHRoZSBhZG1pbiBsb2cKJHRoaXMtPkF1ZGl0KCAwLCAKCSAgICAgICR0aGlzLT5MYW5nKCdmcmllbmRseW5hbWUnKSwgCgkgICAgICAkdGhpcy0+TGFuZygnaW5zdGFsbGVkJywgJHRoaXMtPkdldFZlcnNpb24oKSkgKTsKCgkgICAgICAKPz4=]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IERvY3VtZW50U2VhcmNoIChjKSAyMDEzIGJ5IE9saXZlciBTZWRkb24gCiMgICAgICAgICAob2xpdmVyQHRocmVlZm9sZC5jby51aykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gcHJvdmlkZSBQREYgYW5kIFdvcmQgZG9jdW1lbnQKIyAgY29udGVudCBzZWFyY2hhYmlsaXR5LgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgokZGIgPSAkdGhpcy0+R2V0RGIoKTsKJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSggJGRiICk7Cgokc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKCBjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9kb2N1bWVudHNlYXJjaCIgKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTCggY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZG9jdW1lbnRzZWFyY2hfY2F0ZWdvcmllcyIgKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKJG15ZGlyZWN0b3J5ID0gJy4uL3VwbG9hZHMvZG9jdW1lbnRzZWFyY2gnOwoKcmVjdXJzaXZlX3JlbW92ZV9kaXJlY3RvcnkoJG15ZGlyZWN0b3J5KTsKCgpmdW5jdGlvbiByZWN1cnNpdmVfcmVtb3ZlX2RpcmVjdG9yeSgkZGlyZWN0b3J5LCAkZW1wdHk9RkFMU0UpCnsKICAgIC8vIGlmIHRoZSBwYXRoIGhhcyBhIHNsYXNoIGF0IHRoZSBlbmQgd2UgcmVtb3ZlIGl0IGhlcmUKICAgIGlmKHN1YnN0cigkZGlyZWN0b3J5LC0xKSA9PSAnLycpCiAgICB7CiAgICAgICAgJGRpcmVjdG9yeSA9IHN1YnN0cigkZGlyZWN0b3J5LDAsLTEpOwogICAgfQoKICAgIC8vIGlmIHRoZSBwYXRoIGlzIG5vdCB2YWxpZCBvciBpcyBub3QgYSBkaXJlY3RvcnkgLi4uCiAgICBpZighZmlsZV9leGlzdHMoJGRpcmVjdG9yeSkgfHwgIWlzX2RpcigkZGlyZWN0b3J5KSkKICAgIHsKICAgICAgICAvLyAuLi4gd2UgcmV0dXJuIGZhbHNlIGFuZCBleGl0IHRoZSBmdW5jdGlvbgogICAgICAgIHJldHVybiBGQUxTRTsKCiAgICAvLyAuLi4gaWYgdGhlIHBhdGggaXMgbm90IHJlYWRhYmxlCiAgICB9ZWxzZWlmKCFpc19yZWFkYWJsZSgkZGlyZWN0b3J5KSkKICAgIHsKICAgICAgICAvLyAuLi4gd2UgcmV0dXJuIGZhbHNlIGFuZCBleGl0IHRoZSBmdW5jdGlvbgogICAgICAgIHJldHVybiBGQUxTRTsKCiAgICAvLyAuLi4gZWxzZSBpZiB0aGUgcGF0aCBpcyByZWFkYWJsZQogICAgfWVsc2V7CgogICAgICAgIC8vIHdlIG9wZW4gdGhlIGRpcmVjdG9yeQogICAgICAgICRoYW5kbGUgPSBvcGVuZGlyKCRkaXJlY3RvcnkpOwoKICAgICAgICAvLyBhbmQgc2NhbiB0aHJvdWdoIHRoZSBpdGVtcyBpbnNpZGUKICAgICAgICB3aGlsZSAoRkFMU0UgIT09ICgkaXRlbSA9IHJlYWRkaXIoJGhhbmRsZSkpKQogICAgICAgIHsKICAgICAgICAgICAgLy8gaWYgdGhlIGZpbGVwb2ludGVyIGlzIG5vdCB0aGUgY3VycmVudCBkaXJlY3RvcnkKICAgICAgICAgICAgLy8gb3IgdGhlIHBhcmVudCBkaXJlY3RvcnkKICAgICAgICAgICAgaWYoJGl0ZW0gIT0gJy4nICYmICRpdGVtICE9ICcuLicpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIC8vIHdlIGJ1aWxkIHRoZSBuZXcgcGF0aCB0byBkZWxldGUKICAgICAgICAgICAgICAgICRwYXRoID0gJGRpcmVjdG9yeS4nLycuJGl0ZW07CgogICAgICAgICAgICAgICAgLy8gaWYgdGhlIG5ldyBwYXRoIGlzIGEgZGlyZWN0b3J5CiAgICAgICAgICAgICAgICBpZihpc19kaXIoJHBhdGgpKSAKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAvLyB3ZSBjYWxsIHRoaXMgZnVuY3Rpb24gd2l0aCB0aGUgbmV3IHBhdGgKICAgICAgICAgICAgICAgICAgICByZWN1cnNpdmVfcmVtb3ZlX2RpcmVjdG9yeSgkcGF0aCk7CgogICAgICAgICAgICAgICAgLy8gaWYgdGhlIG5ldyBwYXRoIGlzIGEgZmlsZQogICAgICAgICAgICAgICAgfWVsc2V7CiAgICAgICAgICAgICAgICAgICAgLy8gd2UgcmVtb3ZlIHRoZSBmaWxlCiAgICAgICAgICAgICAgICAgICAgdW5saW5rKCRwYXRoKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAvLyBjbG9zZSB0aGUgZGlyZWN0b3J5CiAgICAgICAgY2xvc2VkaXIoJGhhbmRsZSk7CgogICAgICAgIC8vIGlmIHRoZSBvcHRpb24gdG8gZW1wdHkgaXMgbm90IHNldCB0byB0cnVlCiAgICAgICAgaWYoJGVtcHR5ID09IEZBTFNFKQogICAgICAgIHsKICAgICAgICAgICAgLy8gdHJ5IHRvIGRlbGV0ZSB0aGUgbm93IGVtcHR5IGRpcmVjdG9yeQogICAgICAgICAgICBpZighcm1kaXIoJGRpcmVjdG9yeSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIC8vIHJldHVybiBmYWxzZSBpZiBub3QgcG9zc2libGUKICAgICAgICAgICAgICAgIHJldHVybiBGQUxTRTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAvLyByZXR1cm4gc3VjY2VzcwogICAgICAgIHJldHVybiBUUlVFOwogICAgfQp9CgovLyByZW1vdmUgdGhlIHNlcXVlbmNlcwokZGItPkRyb3BTZXF1ZW5jZSggY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZG9jdW1lbnRzZWFyY2hfc2VxIiApOwokZGItPkRyb3BTZXF1ZW5jZSggY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZG9jdW1lbnRzZWFyY2hfY2F0ZWdvcmllc19zZXEiICk7CgovLyByZW1vdmUgdGhlIHBlcm1pc3Npb25zCiR0aGlzLT5SZW1vdmVQZXJtaXNzaW9uKCdVc2UgRG9jdW1lbnQgU2VhcmNoJyk7CiR0aGlzLT5SZW1vdmVQZXJtaXNzaW9uKCdTZXQgRG9jdW1lbnQgU2VhcmNoIFByZWZzJyk7CgovLyByZW1vdmUgdGhlIHByZWZlcmVuY2UKJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoImFsbG93X2FkZCIpOwoKLy8gcmVtb3ZlIHRoZSBldmVudAokdGhpcy0+UmVtb3ZlRXZlbnQoICdPbkRvY3VtZW50U2VhcmNoUHJlZmVyZW5jZUNoYW5nZScgKTsKCi8vIHB1dCBtZW50aW9uIGludG8gdGhlIGFkbWluIGxvZwokdGhpcy0+QXVkaXQoIDAsICR0aGlzLT5MYW5nKCdmcmllbmRseW5hbWUnKSwgJHRoaXMtPkxhbmcoJ3VuaW5zdGFsbGVkJykpOwoKPz4=]]></data>
	</file>
	<file>
	  <filename>/method.upgrade.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IERvY3VtZW50U2VhcmNoIChjKSAyMDEzIGJ5IE9saXZlciBTZWRkb24gCiMgICAgICAgICAob2xpdmVyQHRocmVlZm9sZC5jby51aykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gcHJvdmlkZSBQREYgYW5kIFdvcmQgZG9jdW1lbnQKIyAgY29udGVudCBzZWFyY2hhYmlsaXR5LgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgokY3VycmVudF92ZXJzaW9uID0gJG9sZHZlcnNpb247CiRkYiA9JiAkdGhpcy0+R2V0RGIoKTsKCnN3aXRjaCgkY3VycmVudF92ZXJzaW9uKSB7CiAgLy8gd2UgYXJlIG5vdyAxLjAgYW5kIHdhbnQgdG8gdXBncmFkZSB0byBsYXRlc3QKIGNhc2UgIjEuMCI6CiBjYXNlICIxLjEiOgogY2FzZSAiMS4yIjoKCSRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoJGRiKTsKCSRzcWxhcnJheSA9ICRkaWN0LT5BZGRDb2x1bW5TUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZG9jdW1lbnRzZWFyY2giLCAiZG9jdW1lbnRfZGF0ZSAiIC4gQ01TX0FET0RCX0RUIC4iIik7CgkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgkkY3VycmVudF92ZXJzaW9uID0gIjEuMyI7CiBjYXNlICIxLjMiOgogY2FzZSAiMS4zLjEiOgoJJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSgkZGIpOwoJJHNxbGFycmF5ID0gJGRpY3QtPkFkZENvbHVtblNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9kb2N1bWVudHNlYXJjaCIsICJkb2N1bWVudHNlYXJjaF9jYXRlZ29yeV9uYW1lIEMoMjU1KSIpOwoJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOw0KCSRmbiA9IGRpcm5hbWUoX19GSUxFX18pLkRJUkVDVE9SWV9TRVBBUkFUT1IuDQogIAkndGVtcGxhdGVzJy5ESVJFQ1RPUllfU0VQQVJBVE9SLidkb2N1bWVudHNlYXJjaF9saXN0LnRwbCc7DQoJaWYoIGZpbGVfZXhpc3RzKCAkZm4gKSApIHsNCiAgICAJJHRlbXBsYXRlID0gQGZpbGVfZ2V0X2NvbnRlbnRzKCRmbik7DQogICAgCSR0aGlzLT5TZXRQcmVmZXJlbmNlKCdkZWZhdWx0X2RldGFpbF90ZW1wbGF0ZV9jb250ZW50cycsJHRlbXBsYXRlKTsNCiAgICAJJHRoaXMtPlNldFRlbXBsYXRlKCdkZXRhaWxTYW1wbGUnLCR0ZW1wbGF0ZSk7DQogICAgCSR0aGlzLT5TZXRQcmVmZXJlbmNlKCdjdXJyZW50X2RldGFpbF90ZW1wbGF0ZScsJ0RlZmF1bHQnKTsNCgl9CgkkY3VycmVudF92ZXJzaW9uID0gIjEuNCI7CiBjYXNlICIxLjQiOgogY2FzZSAiMS40LjEiOgogY2FzZSAiMS40LjIiOgogY2FzZSAiMS40LjMiOgoJJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSgkZGIpOwoJJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTCggY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZG9jdW1lbnRzZWFyY2hfc3RhdHVzIiApOwoJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoJJGRiLT5Ecm9wU2VxdWVuY2UoIGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2RvY3VtZW50c2VhcmNoX3N0YXR1c19zZXEiICk7CgkkY3VycmVudF92ZXJzaW9uID0gIjEuNC40IjsKfQoKLy8gcHV0IG1lbnRpb24gaW50byB0aGUgYWRtaW4gbG9nCiR0aGlzLT5BdWRpdCggMCwgCgkgICAgICAkdGhpcy0+TGFuZygnZnJpZW5kbHluYW1lJyksIAoJICAgICAgJHRoaXMtPkxhbmcoJ3VwZ3JhZGVkJywgJHRoaXMtPkdldFZlcnNpb24oKSkpOwoKLy9ub3RlOiBtb2R1bGUgYXBpIGhhbmRsZXMgc2VuZGluZyBnZW5lcmljIGV2ZW50IG9mIG1vZHVsZSB1cGdyYWRlZCBoZXJlCj8+]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/add_edit.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmIGlzc2V0KCRlcnJvcil9CiAgPGgzPjxmb250IGNvbG9yPSJyZWQiPnskZXJyb3J9PC9mb250PjwvaDM+CntlbHNlfQogIHtpZiBpc3NldCgkbWVzc2FnZSl9CiAgICA8aDM+eyRtZXNzYWdlfTwvaDM+CiAgey9pZn0Key9pZn0KeyRzdGFydF9mb3JtfQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJPHAgY2xhc3M9InBhZ2V0ZXh0Ij4qeyRjYXRlZ29yeXRleHR9OjwvcD4KCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRjYXRlZ29yeX08L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICA8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfbmFtZX08L3A+CiAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfbmFtZX08L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICA8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfYXV0aG9yfTwvcD4KICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9hdXRob3J9PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAge2lmICRsb2NhdGlvbiAhPSAnJ30KICAgICAgPHA+Jm5ic3A7PC9wPgogICAgICA8cD48c3BhbiBjbGFzcz0icGFnZXRleHQiPkN1cnJlbnQgZmlsZTo8L3NwYW4+IHskbG9jYXRpb259PC9wPgogICB7L2lmfQo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAge2lmICRsb2NhdGlvbiAhPSAnJ308cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfbG9jYXRpb25maWxlZWRpdH08L3A+e2Vsc2V9PHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX2xvY2F0aW9uZmlsZX08L3A+ey9pZn0KICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9sb2NhdGlvbmZpbGV9PC9wPgogICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2xvY2F0aW9ufTwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+Cgk8cCBjbGFzcz0icGFnZXRleHQiPnskcG9zdGRhdGV0ZXh0fTo8L3A+Cgk8cCBjbGFzcz0icGFnZWlucHV0Ij57aHRtbF9zZWxlY3RfZGF0ZSBwcmVmaXg9JHBvc3RkYXRlcHJlZml4IHRpbWU9JHBvc3RkYXRlIHN0YXJ0X3llYXI9Ii0xMCIgZW5kX3llYXI9IisxNSJ9IHtodG1sX3NlbGVjdF90aW1lIHByZWZpeD0kcG9zdGRhdGVwcmVmaXggdGltZT0kcG9zdGRhdGV9PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij48L3NwYW4+CiAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskY2FuY2VsfXskc3VibWl0fTwvcD4KPC9kaXY+CnskZW5kX2Zvcm19]]></data>
	</file>
	<file>
	  <filename>/templates/adminpanel.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmIGlzc2V0KCRlcnJvcil9Cgk8aDM+PGZvbnQgY29sb3I9InJlZCI+eyRlcnJvcn08L2ZvbnQ+PC9oMz4Ke2Vsc2V9Cgl7aWYgaXNzZXQoJG1lc3NhZ2UpfQogICAgCTxoMz57JG1lc3NhZ2V9PC9oMz4KCXsvaWZ9CnsvaWZ9Cgp7bGl0ZXJhbH0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgovLzwhW0NEQVRBWwpmdW5jdGlvbiBzZWxlY3RBbGwoKSB7CiAgY2hlY2tib3hlcyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpbnB1dCIpOwogIGZvciAoaT0wOyBpPGNoZWNrYm94ZXMubGVuZ3RoIDsgaSsrKQogICAgewogICAgICBpZiAoY2hlY2tib3hlc1tpXS50eXBlID09ICJjaGVja2JveCIpIGNoZWNrYm94ZXNbaV0uY2hlY2tlZD0hY2hlY2tib3hlc1tpXS5jaGVja2VkOwogICAgfQp9CiQoZnVuY3Rpb24oKSB7CgkkKCIjY2F0ZWdvcnkiKS5wcmVwZW5kKCI8b3B0aW9uIHZhbHVlPScnPnsvbGl0ZXJhbH17JGZpbHRlcmFsbHRleHR9e2xpdGVyYWx9PC9vcHRpb24+IikudmFsKCcnKTsKCSQoIiNjYXRlZ29yeSIpLmNoYW5nZShmdW5jdGlvbiAoKSB7CgkJc3ggPSAkKCJpbnB1dFtuYW1lPV9zeF9dIikudmFsKCk7CgkJcz0nL2FkbWluL21vZHVsZWludGVyZmFjZS5waHA/bW9kdWxlPURvY3VtZW50U2VhcmNoJl9zeF89JytzeDsKCQljYXQ9ICQoIiNjYXRlZ29yeSBvcHRpb246c2VsZWN0ZWQiKS52YWwoKTsKCQlkPSd7L2xpdGVyYWx9eyRhY3Rpb25pZH17bGl0ZXJhbH1jYXRlZ29yeT0nK2NhdDsKIAkJcyA9IHMrJyAjcmVjb3Jkcyc7CgkJJCgiI3JlY29yZHMiKS5sb2FkKHMsIGQsIGZ1bmN0aW9uKCl7CgkJfSk7Cgl9KTsKfSk7Ci8vXV0+Cjwvc2NyaXB0Pgp7L2xpdGVyYWx9CnskdGFic19zdGFydH0KCXskc3RhcnRfZ2VuZXJhbF90YWJ9CgkJeyR3ZWxjb21lX3RleHR9CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRmaWx0ZXJ0ZXh0fSB7JGNhdGVnb3J5fTwvcD4KCQl7JGZvcm1zdGFydH0KCQk8ZGl2IGlkPSJyZWNvcmRzIj4KCQkJe2lmIGlzc2V0KCRtb2R1bGVfbWVzc2FnZSl9PGgyPnskbW9kdWxlX21lc3NhZ2V8ZXNjYXBlfTwvaDI+ey9pZn0KCQkJPGgzPnskdGl0bGVfbnVtX3JlY29yZHN9PC9oMz4KCQl7aWYgJGFkZCAhPSAnJ308ZGl2PnskYWRkfTwvZGl2PnsvaWZ9CiAgICAgCQk8dGFibGUgY2VsbHNwYWNpbmc9IjAiIGNsYXNzPSJwYWdldGFibGUiPgoJCQkJPHRoZWFkPgogICAgICAgCQkJCTx0cj4KICAgICAgICAgCQkJCTx0aD57JGlkdGV4dH08L3RoPgogICAgICAgICAJCQkJPHRoPnskbmFtZXRleHR9PC90aD4KICAgICAgICAgCQkJCTx0aD57JGZpbGV0ZXh0fTwvdGg+CgkJCQkJCTx0aD57JGNhdGVnb3J5dGV4dH08L3RoPgogICAgICAgICAJCQkJPHRoIGNsYXNzPSJwYWdlaWNvbiI+Jm5ic3A7PC90aD4KCQkJCQkJPHRoIGNsYXNzPSJwYWdlaWNvbiI+Jm5ic3A7PC90aD4KCQkJCQkJPCEtLTx0aCBjbGFzcz0icGFnZWljb24iPjxhIGhyZWY9ImphdmFzY3JpcHQ6c2VsZWN0QWxsKCk7Ij57JHNlbGVjdHRleHR9PC9hPjwvdGg+LS0+CiAgICAgICAJCQkJPC90cj4KCQkJCTwvdGhlYWQ+CgkJCQk8dGJvZHk+CgkJCQl7Zm9yZWFjaCBmcm9tPSRyZWNvcmRzIGl0ZW09ZW50cnl9CiAgICAgICAJCQkJPHRyIGNsYXNzPSJ7JGVudHJ5LT5yb3djbGFzc30iPgogICAgICAgICAJCQkJPHRkPnskZW50cnktPmlkfTwvdGQ+CiAgICAgICAgIAkJCQk8dGQ+eyRlbnRyeS0+bmFtZX08L3RkPgogICAgICAgICAJCQkJPHRkPnskZW50cnktPmxvY2F0aW9ufTwvdGQ+CgkJCQkJCTx0ZD57JGVudHJ5LT5jYXRlZ29yeX08L3RkPgoJCQkJCQk8dGQ+eyRlbnRyeS0+ZWRpdGxpbmt9PC90ZD4KCQkJCQkJPHRkPnskZW50cnktPmRlbGV0ZWxpbmt9PC90ZD4KCQkJCQkJPCEtLTx0ZD57JGVudHJ5LT5zZWxlY3R9PC90ZD4tLT4KICAgICAgIAkJCQk8L3RyPgoJCQkJey9mb3JlYWNofQoJCQkJPC90Ym9keT4KICAgICAJCTwvdGFibGU+CgkJPC9kaXY+CgkJe2lmICRhZGQgIT0gJyd9PGRpdj57JGFkZH08L2Rpdj57L2lmfQoJCXtpZiAkcmVjb3JkY291bnQgPiAwfQogIAkJCTxkaXYgY2xhc3M9InBhZ2VvcHRpb25zIiBzdHlsZT0iZmxvYXQ6IHJpZ2h0OyI+CiAgICAJCQkJe2lmIGlzc2V0KCRzdWJtaXRfbWFzc2RlbGV0ZSl9eyRzdWJtaXRfbWFzc2RlbGV0ZX17L2lmfQogIAkJCTwvZGl2PgoJCQk8ZGl2IHN0eWxlPSJjbGVhcjpib3RoIj48L2Rpdj4KCQl7L2lmfQoJCXskZm9ybWVuZH0KCXskdGFiX2VuZH0KeyR0YWJzX2VuZH0=]]></data>
	</file>
	<file>
	  <filename>/templates/categorylist.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmICRpdGVtY291bnQgPiAwfQo8dGFibGUgY2VsbHNwYWNpbmc9IjAiIGNsYXNzPSJwYWdldGFibGUiPgoJPHRoZWFkPgoJCTx0cj4KCQkJPHRoPnskY2F0ZWdvcnl0ZXh0fTwvdGg+CgkJCTx0aCBjbGFzcz0icGFnZWljb24iPiZuYnNwOzwvdGg+CgkJCTx0aCBjbGFzcz0icGFnZWljb24iPiZuYnNwOzwvdGg+CgkJPC90cj4KCTwvdGhlYWQ+Cgk8dGJvZHk+Cntmb3JlYWNoIGZyb209JGl0ZW1zIGl0ZW09ZW50cnl9CgkJPHRyIGNsYXNzPSJ7JGVudHJ5LT5yb3djbGFzc30iPgoJCQk8dGQ+eyRlbnRyeS0+bmFtZX08L3RkPgoJCQk8dGQ+eyRlbnRyeS0+ZWRpdGxpbmt9PC90ZD4KCQkJPHRkPnskZW50cnktPmRlbGV0ZWxpbmt9PC90ZD4KCQk8L3RyPgp7L2ZvcmVhY2h9Cgk8L3Rib2R5Pgo8L3RhYmxlPgp7L2lmfQoKPGRpdiBjbGFzcz0icGFnZW9wdGlvbnMiPjxwIGNsYXNzPSJwYWdlb3B0aW9ucyI+eyRhZGRsaW5rfTwvcD48L2Rpdj4K]]></data>
	</file>
	<file>
	  <filename>/templates/documentsearch_list.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmIGlzc2V0KCRtb2R1bGVfbWVzc2FnZSl9PGgyPnskbW9kdWxlX21lc3NhZ2V8ZXNjYXBlfTwvaDI+ey9pZn0Ke2lmICRjYXRlZ29yeV9uYW1lICE9ICcnfQoJPHAgY2xhc3M9InRpdGxlIj57JGNhdGVnb3J5X25hbWV9PC9wPgp7L2lmfQ0Ke2ZvcmVhY2ggZnJvbT0kaXRlbXMgaXRlbT1lbnRyeX0KCXtpZiAkY2F0ZWdvcnlfbmFtZSAhPSAnJ30KCQl7aWYgJGVudHJ5LT5jYXRlZ29yeSA9PSAkY2F0ZWdvcnlfbmFtZX0NCgkJCTxkaXYgY2xhc3M9ImRvY3VtZW50TGlzdCI+CgkJCQl7aWYgJGVudHJ5LT5kb2N1bWVudGljb24gbmUgJyd9PHNwYW4gY2xhc3M9ImRvY3VtZW50SWNvbiI+eyRlbnRyeS0+ZG9jdW1lbnRpY29ufTwvc3Bhbj57L2lmfQoJCQkJe2lmICRlbnRyeS0+dGl0bGUgbmUgJyd9PHNwYW4gY2xhc3M9ImRvY3VtZW50VGl0bGUiPnskZW50cnktPnRpdGxlfTwvc3Bhbj57L2lmfQoJCQkJe2lmICRlbnRyeS0+YXV0aG9yIG5lICcnfTxzcGFuIGNsYXNzPSJkb2N1bWVudEF1dGhvciI+eyRlbnRyeS0+YXV0aG9yfTwvc3Bhbj57L2lmfQoJCQkJe2lmICRlbnRyeS0+ZG9jdW1lbnRkYXRlIG5lICcnfTxzcGFuIGNsYXNzPSJkb2N1bWVudERhdGUiPnskZW50cnktPmRvY3VtZW50ZGF0ZXxkYXRlX2Zvcm1hdH08L3NwYW4+ey9pZn0KCQkJCXtpZiAkZW50cnktPmxvY2F0aW9uIG5lICcnfTxzcGFuIGNsYXNzPSJkb2N1bWVudExpbmsiPjxhIGhyZWY9InVwbG9hZHMvZG9jdW1lbnRzZWFyY2gvaWR7JGVudHJ5LT5pZH0veyRlbnRyeS0+bG9jYXRpb259IiB0aXRsZT0iTGluayB0byB0aGUgeyRlbnRyeS0+bmFtZX0gZG9jdW1lbnQiPkRvd25sb2FkICZyYXF1bzs8L2E+PC9zcGFuPnsvaWZ9CgkJCTwvZGl2PgoJCXsvaWZ9Cgl7ZWxzZX0NCgkJPGRpdiBjbGFzcz0iZG9jdW1lbnRMaXN0Ij4KCQkJe2lmICRlbnRyeS0+ZG9jdW1lbnRpY29uIG5lICcnfTxzcGFuIGNsYXNzPSJkb2N1bWVudEljb24iPnskZW50cnktPmRvY3VtZW50aWNvbn08L3NwYW4+ey9pZn0KCQkJe2lmICRlbnRyeS0+dGl0bGUgbmUgJyd9PHNwYW4gY2xhc3M9ImRvY3VtZW50VGl0bGUiPnskZW50cnktPnRpdGxlfTwvc3Bhbj57L2lmfQoJCQl7aWYgJGVudHJ5LT5hdXRob3IgbmUgJyd9PHNwYW4gY2xhc3M9ImRvY3VtZW50QXV0aG9yIj57JGVudHJ5LT5hdXRob3J9PC9zcGFuPnsvaWZ9CgkJCXtpZiAkZW50cnktPmRvY3VtZW50ZGF0ZSBuZSAnJ308c3BhbiBjbGFzcz0iZG9jdW1lbnREYXRlIj57JGVudHJ5LT5kb2N1bWVudGRhdGV8ZGF0ZV9mb3JtYXR9PC9zcGFuPnsvaWZ9CgkJCXtpZiAkZW50cnktPmxvY2F0aW9uIG5lICcnfTxzcGFuIGNsYXNzPSJkb2N1bWVudExpbmsiPjxhIGhyZWY9InVwbG9hZHMvZG9jdW1lbnRzZWFyY2gvaWR7JGVudHJ5LT5pZH0veyRlbnRyeS0+bG9jYXRpb259IiB0aXRsZT0iTGluayB0byB0aGUgeyRlbnRyeS0+bmFtZX0gZG9jdW1lbnQiPkRvd25sb2FkICZyYXF1bzs8L2E+PC9zcGFuPnsvaWZ9CgkJPC9kaXY+Cgl7L2lmfQ0Key9mb3JlYWNofQ==]]></data>
	</file>
	<file>
	  <filename>/templates/editcategory.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRzdGFydGZvcm19Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+KnskbmFtZXRleHR9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0bmFtZX08L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij4mbmJzcDs8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRoaWRkZW59eyRzdWJtaXR9eyRjYW5jZWx9PC9wPgoJPC9kaXY+CnskZW5kZm9ybX0K]]></data>
	</file>
	<file>
	  <filename>/templates/edittemplates.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRzdGFydGZvcm19Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+KnskdGVtcGxhdGV0ZXh0fTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRkZWZhdWx0X2RldGFpbF90ZW1wbGF0ZX08YnIgLz57JGRlZmF1bHR9PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaGlkZGVufXskc3VibWl0fTwvcD4KCTwvZGl2Pgp7JGVuZGZvcm19]]></data>
	</file>
	<file>
	  <filename>/templates/error.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskdGl0bGVfZXJyb3J9PC9oMz4Ke2lmICRtZXNzYWdlIT0nJ308cD57JG1lc3NhZ2V9PC9wPnsvaWZ9CntpZiAkcmV0dXJubGluayE9Jyd9PHA+eyRyZXR1cm5saW5rfTwvcD57L2lmfQ==]]></data>
	</file>
</module>
