<?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>Skeleton</name>
	<version>1.6</version>
  <mincmsversion>1.0</mincmsversion>
	<help>PGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+CjxwPk5vdGhpbmcuIEl0J3MgZGVzaWduZWQgdG8gYmUgYSBzdGFydGluZyBwb2ludCBmb3IgeW91IHRvIGRldmVsb3AgeW91ciBvd24gbW9kdWxlcy48L3A+CjxoMz5Ib3cgRG8gSSBVc2UgSXQ8L2gzPgo8cD5XZWxsLCB5b3UgY291bGQgYWN0dWFsbHkgaW5zdGFsbCBpdCBieSBwbGFjaW5nIHRoZSBtb2R1bGUgaW4gYSBwYWdlIG9yIHRlbXBsYXRlIHVzaW5nIHRoZQpzbWFydHkgdGFnICYjMTIzO2Ntc19tb2R1bGUgbW9kdWxlPSdTa2VsZXRvbid9PC9wPgo8cD5Zb3Ugd291bGQgYmUgd2lzZXIsIGhvd2V2ZXIsIHRvIHVzZSB0aGUgbW9kdWxlIGFzIGEgc3RhcnRpbmcgcG9pbnQsIGFuZCBlZGl0aW5nIHRoZSBjb2RlIHRvIGRvCndoYXRldmVyIGl0IGlzIHlvdSBhcmUgd2FudGluZyB0byBkby48L3A+CjxoMz5TdXBwb3J0PC9oMz4KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPgo8dWw+CjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlLCBGQVFzLCBvciB0byBmaWxlIGEgQnVnIFJlcG9ydCwgcGxlYXNlIHZpc2l0IHRoZSBNb2R1bGUgRm9yZ2UKPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9za2VsZXRvbi8iPlNrZWxldG9uIFBhZ2U8L2E+LjwvbGk+CjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyI+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uPC9saT4KPGxpPlRoZSBhdXRob3IsIFNqRywgY2FuIG9mdGVuIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXMiPkNNUyBJUkMgQ2hhbm5lbDwvYT4uPC9saT4KPGxpPkxhc3RseSwgeW91IG1heSBoYXZlIHNvbWUgc3VjY2VzcyBlbWFpbGluZyB0aGUgYXV0aG9yIGRpcmVjdGx5LjwvbGk+ICAKPC91bD4KPHA+QXMgcGVyIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgYXMtaXMuIFBsZWFzZSByZWFkIHRoZSB0ZXh0Cm9mIHRoZSBsaWNlbnNlIGZvciB0aGUgZnVsbCBkaXNjbGFpbWVyLjwvcD4KCjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPgo8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMDgsIFNhbXVlbCBHb2xkc3RlaW4gPGEgaHJlZj0ibWFpbHRvOnNqZ0BjbXNtb2R1bGVzLmNvbSI+Jmx0O3NqZ0BjbXNtb2R1bGVzLmNvbSZndDs8L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+CjxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+CjxoMz5QYXJhbWV0ZXJzPC9oMz48dWw+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gbGFuZz0iZW5fVVMiIC0gUGFyYW1ldGVyIGlzIHVzZWQgdG8gc3BlY2lmeSB3aGF0IGxhbmd1YWdlIHRvIHVzZSBmb3IgZGlzcGxheSBvbiB0aGUgZnJvbnRlbmQuIE5vdCBhbGwgbW9kdWxlcyBzdXBwb3J0IG9yIG5lZWQgdGhpcy48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IHNrZWxldG9uX2lkPSItMSIgLSBJbnRlcm5hbGx5IGlkZW50aWZpZXIgZm9yIHNlbGVjdGluZyByZWNvcmRzPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBtb2R1bGVfbWVzc2FnZT0iIiAtIEludGVybmFsbHkgdXNlZCBwYXJhbWV0ZXIgZm9yIHBhc3NpbmcgbWVzc2FnZXMgdG8gdXNlcjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZGVzY3JpcHRpb249IiIgLSBJbnRlcm5hbCBwYXJhbWV0ZXIgdXNlZCB3aGVuIGNyZWF0aW5nIGEgbmV3IHJlY29yZDwvbGk+PC91bD4=</help>
	<about>PGJyIC8+QXV0aG9yOiBTakcgJmx0O3NqZ0BjbXNtb2R1bGVzLmNvbSZndDs8YnIgLz48YnIgLz5WZXJzaW9uOiAxLjY8YnIgLz48YnIgLz5DaGFuZ2UgSGlzdG9yeTo8YnIgLz48dWw+CjxsaT5WZXJzaW9uIDEuNiwgTm92IDIwMDggU2pHLCBhZGRlZCBwYXJhbWV0ZXIgc2FuaXRpemluZyBmb3IgTnVubzwvbGk+CjxsaT5WZXJzaW9uIDEuNSwgSnVseSAyMDA3IFNqRwo8dWw+CiAgIDxsaT5BZGRlZCBhY3R1YWwgZGF0YWJhc2UgYXBwLjwvbGk+CiAgIDxsaT5NYWRlIEFkbWluIHRhYmJlZCBmb3IgaW50ZXJlc3QuPC9saT4KICAgPGxpPlVwZGF0ZWQgTWluaW11bSBhbmQgTWF4aW11bSBDTVMgdmVyc2lvbnMuPC9saT4KPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMS40LCBKdW5lIDIwMDYgKGNhbGd1eTEwMDApLiAKICA8dWw+CiAgICA8bGk+UmVwbGFjZWQgRGlzcGxheUFkbWluTmF2IHdpdGggYSBzaW5nbGUgdGFiPC9saT4KICAgIDxsaT5SZXBsYWNlZCBjYWxsIHRvIERvQWN0aW9uIHdpdGggYSBSZWRpcmVjdDwvbGk+CiAgICA8bGk+Q2hhbmdlZCBtaW5pbXVtIGNtcyB2ZXJzaW9uIHRvIDEuMC1zdm48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDEuMy4gSnVuZSAyMDA2IChzamcpLiAKICA8dWw+CiAgICA8bGk+U3BsaXQgb3V0IGluc3RhbGwsIHVwZ3JhZGUsIGFuZCB1bmluc3RhbGwgbWV0aG9kczwvbGk+CiAgICA8bGk+QWRkZWQgRXZlbnRzPC9saT4KICAgIDxsaT5BZGRlZCByZWZlcmVuY2VzIHRvIHByZXR0eSB1cmxzIGFuZCByb3V0ZSByZWdpc3RyYXRpb248L2xpPgogICAgPGxpPmNvcnJlY3RlZCBsYW5ndWFnZSBmaWxlIGRpcmVjdG9yeSBzdHJ1Y3R1cmU8L2xpPgogICAgPGxpPmFkZGVkIG1vcmUgY29tbWVudHM8L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDEuMi4gMjkgRGVjZW1iZXIgMjAwNS4gRml4ZXMgdG8gYnVncyBwb2ludGVkIG91dCBieSBQYXRyaWNrIExvc2NobWlkdC4gVXBkYXRlcyB0byBiZSBjb3JyZWN0IGZvciBDTVMgTWFkZSBTaW1wbGUgdmVyc2lvbnMgMC4xMS54LjwvbGk+CjxsaT5WZXJzaW9uIDEuMS4gMTEgU2VwdGVtYmVyIDIwMDUuIENsZWFuZWQgdXAgcmVmZXJlbmNlcyB0aGF0IGNhdXNlZCBwcm9ibGVtcyBmb3IgUEhQIDQuNC54IG9yIDUuMC41LjwvbGk+CjxsaT5WZXJzaW9uIDEuMC4gNiBBdWd1c3QgMjAwNS4gSW5pdGlhbCBSZWxlYXNlLjwvbGk+PC91bD48YnIgLz4=</about>
	<description>This module is a skeleton module that does nothing.</description>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/action.add_edit.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCi8qKg0KICoNCiAqIFRoaXMgaXMgYW4gZXhhbXBsZSBvZiBhIG1ldGhvZCB0byBhZGQNCiAqIGRhdGFiYXNlIGRhdGEgb24gcGFnZSB1c2luZyBhIHRlbXBsYXRlLg0KICoNCiAqIElmIHRoZSAic2tlbGV0b25faWQiIHBhcmFtZXRlciBpcyBzZXQsIHRoaXMgcGFnZSB3aWxsDQogKiBhbGxvdyB5b3UgdG8gZWRpdCB0aGF0IHJlY29yZC4gT3RoZXJ3aXNlLCBpdCB3aWxsIGxldCB5b3UNCiAqIGFkZCBhIG5ldyByZWNvcmQgLg0KICoNCiAqIE5vdGUgdGhhdCBpdCB1c2VzIGEgdGVtcGxhdGUsIGFuZCBpcyB0aHVzIHZlcnkgcG93ZXJmdWwsDQogKiBldmVuIGlmIGl0J3Mgc2ltcGxlLg0KICovDQoNCi8qKg0KICogRm9yIHNlcGFyYXRlZCBtZXRob2RzLCB5b3UnbGwgYWx3YXlzIHdhbnQgdG8gc3RhcnQgd2l0aCB0aGUgZm9sbG93aW5nDQogKiBsaW5lIHdoaWNoIGNoZWNrIHRvIG1ha2Ugc3VyZSB0aGF0IG1ldGhvZCB3YXMgY2FsbGVkIGZyb20gdGhlIG1vZHVsZQ0KICogQVBJLCBhbmQgdGhhdCBldmVyeXRoaW5nJ3Mgc2FmZSB0byBjb250aW51ZToNCiAqLw0KaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7DQoNCi8vIGRvbid0IHRydXN0IHRoYXQgdGhpcyB3YXMgc2FmZSwganVzdCBiZWNhdXNlIHRoZSBsaW5rIGlzIGhpZGRlbiBpZiB0aGUgb3B0aW9uIGlzIG9mZiENCi8vIGFsd2F5cyBjb2RlIGRlZmVuc2l2ZWx5ISBUaGVyZSBhcmUgYmVhc3RpZXMgdGhhdCBsdXJrIGFuZCB0aGluZ3MgZ28gYnVtcCBpbiB0aGUgbmlnaHQuDQppZiAoISAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnYWxsb3dfYWRkJywxKSA9PSAxKSBleGl0Ow0KDQovKioNCiAqIEFmdGVyIHRoaXMsIHRoZSBjb2RlIGlzIGlkZW50aWNhbCB0byB0aGUgY29kZSB0aGF0IHdvdWxkIG90aGVyd2lzZSBiZQ0KICogd3JhcHBlZCBpbiB0aGUgYWN0aW9uLg0KICovDQoNCi8vIGdldCBvdXIgcmVjb3JkcyBmcm9tIHRoZSBkYXRhYmFzZQ0KJGRiID0gJiRnQ21zLT5HZXREYigpOw0KDQppZiAoaXNzZXQoJHBhcmFtc1snc2tlbGV0b25faWQnXSkpDQogICB7DQogICAkcXVlcnkgPSAnU0VMRUNUIHNrZWxldG9uX2lkLCBkZXNjcmlwdGlvbiBmcm9tICcuY21zX2RiX3ByZWZpeCgpLg0KICAgICAgJ21vZHVsZV9za2VsZXRvbiB3aGVyZSBza2VsZXRvbl9pZCA9ID8nOw0KICAgJHJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJHBhcmFtc1snc2tlbGV0b25faWQnXSkpOw0KDQogICBpZiAoJHJlc3VsdCAhPT0gZmFsc2UpDQogICAgICB7DQogICAgICAkcm93PSRyZXN1bHQtPkZldGNoUm93KCk7DQogICAgICAkc2lkID0gJHJvd1snc2tlbGV0b25faWQnXTsgLy8gc3R1cGlkIC0tIHdlJ3JlIHBhc3NpbmcgdGhlIHBhcmFtLCBhbmQgdGhlbiB1c2luZyB0aGUgZGF0YWJhc2UgdmVyc2lvbi4NCiAgICAgICRkZXNjID0gJHJvd1snZGVzY3JpcHRpb24nXTsNCiAgICAgIH0NCiAgIGVsc2UNCiAgICAgIHsNCiAgICAgIC8vIHllYWgsIHRoYXQncyBncmFjZWZ1bCA6KA0KICAgICAgZWNobyAiRGF0YWJhc2UgZXJyb3IhIjsNCiAgICAgIGV4aXQ7DQogICAgICB9DQogICB9DQplbHNlDQogICB7DQogICAkc2lkID0gLTE7DQogICAkZGVzYyA9ICcnOw0KICAgfQ0KDQokc21hcnR5LT5hc3NpZ24oJ3N0YXJ0X2Zvcm0nLCAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwgJ3NhdmVfcmVjb3JkJywgJHJldHVybmlkKSk7DQokc21hcnR5LT5hc3NpZ24oJ3RpdGxlX2Rlc2NyaXB0aW9uJywkdGhpcy0+TGFuZygndGl0bGVfZGVzY3JpcHRpb24nKSk7DQokc21hcnR5LT5hc3NpZ24oJ2lucHV0X2Rlc2NyaXB0aW9uJywkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwnZGVzY3JpcHRpb24nLCRkZXNjKSk7DQovLyBwYXNzIGEgaGlkZGVuIGtleSB2YWx1ZSBhbG9uZyB3aXRoIHRoZSBzdWJtaXQgYnV0dG9uDQokc21hcnR5LT5hc3NpZ24oJ3N1Ym1pdCcsICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsJ3NrZWxldG9uX2lkJywkc2lkKS4kdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnc3VibWl0JywgJHRoaXMtPkxhbmcoJ3N1Ym1pdCcpKSk7DQokc21hcnR5LT5hc3NpZ24oJ2VuZF9mb3JtJywgJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7DQoNCg0KLy8gRGlzcGxheSB0aGUgcG9wdWxhdGVkIHRlbXBsYXRlDQplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2FkZF9lZGl0LnRwbCcpOw0KDQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.default.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyoqCiAqCiAqIFRoaXMgaXMgYW4gZXhhbXBsZSBvZiBhIHNpbXBsZSBtZXRob2QgdG8gZGlzcGxheQogKiBkYXRhYmFzZSBkYXRhIG9uIHBhZ2UgdXNpbmcgYSB0ZW1wbGF0ZS4KICoKICogSWYgdGhlICJza2VsZXRvbl9pZCIgcGFyYW1ldGVyIGlzIHNldCwgdGhpcyBwYWdlIHdpbGwKICogZGlzcGxheSBvbmx5IHRoYXQgc2luZ2xlIHJlY29yZC4gT3RoZXJ3aXNlLCBpdCB3aWxsIGRpc3BsYXkKICogb25lIHBhZ2Ugd29ydGggb2YgcmVjb3Jkcy4gVGhpcyBpcyByZWFsbHkgc2lsbHkgaW4gdGhpcyBjYXNlLAogKiBiZWNhdXNlIHRoZSB2aWV3IGlzIGlkZW50aWNhbC4gSWYgeW91IGhhdmUgYSBtb3JlIGNvbXBsZXgKICogcmVjb3JkIHRob3VnaCwgeW91IGNvdWxkIGRvIHNvbWV0aGluZyB1c2VmdWwuCiAqCiAqIE5vdGUgdGhhdCBpdCB1c2VzIGEgdGVtcGxhdGUsIGFuZCBpcyB0aHVzIHZlcnkgcG93ZXJmdWwsCiAqIGV2ZW4gaWYgaXQncyBzaW1wbGUuCiAqLwoKLyoqCiAqIEZvciBzZXBhcmF0ZWQgbWV0aG9kcywgeW91J2xsIGFsd2F5cyB3YW50IHRvIHN0YXJ0IHdpdGggdGhlIGZvbGxvd2luZwogKiBsaW5lIHdoaWNoIGNoZWNrIHRvIG1ha2Ugc3VyZSB0aGF0IG1ldGhvZCB3YXMgY2FsbGVkIGZyb20gdGhlIG1vZHVsZQogKiBBUEksIGFuZCB0aGF0IGV2ZXJ5dGhpbmcncyBzYWZlIHRvIGNvbnRpbnVlOgogKi8gCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKLyoqCiAqIEFmdGVyIHRoaXMsIHRoZSBjb2RlIGlzIGlkZW50aWNhbCB0byB0aGUgY29kZSB0aGF0IHdvdWxkIG90aGVyd2lzZSBiZQogKiB3cmFwcGVkIGluIHRoZSBhY3Rpb24uCiAqLwoKLy8gZ2V0IG91ciByZWNvcmRzIGZyb20gdGhlIGRhdGFiYXNlCiRkYiA9ICYkZ0Ntcy0+R2V0RGIoKTsKCiRxdWVyeSA9ICdTRUxFQ1Qgc2tlbGV0b25faWQsIGRlc2NyaXB0aW9uIGZyb20gJy5jbXNfZGJfcHJlZml4KCkuCiAgICdtb2R1bGVfc2tlbGV0b24nOwoKaWYgKGlzc2V0KCRwYXJhbXNbJ3NrZWxldG9uX2lkJ10pKQogICB7CiAgIC8vICpBTFdBWVMqIHVzZSBwYXJhbWV0ZXJpemVkIHF1ZXJpZXMgd2l0aCB1c2VyLXByb3ZpZGVkIGlucHV0CiAgIC8vIHRvIHByZXZlbnQgU1FMLUluamVjdGlvbiBhdHRhY2tzIQogICAkcXVlcnkgLj0gJyB3aGVyZSBza2VsZXRvbl9pZCA9ID8nOwogICAkcmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkcGFyYW1zWydza2VsZXRvbl9pZCddKSk7CiAgIH0KZWxzZQogICB7CiAgIC8vIHdlJ3JlIG5vdCBnZXR0aW5nIGEgc3BlY2lmaWMgcmVjb3JkLCBzbyBzaG93ICdlbSBhbGwuIFByb2JhYmx5IHNob3VsZCBwYWdpbmF0ZS4KICAgJHJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnkpOwogICB9CiAgIAokcmVjb3JkcyA9IGFycmF5KCk7CndoaWxlICgkcmVzdWx0ICE9PSBmYWxzZSAmJiAkcm93PSRyZXN1bHQtPkZldGNoUm93KCkpCiAgIHsKICAgLy8gY3JlYXRlIGEgbmV3IG9iamVjdCBmb3IgZXZlcnkgcmVjb3JkIHRoYXQgd2UgcmV0cmlldmUKICAgJHJlYyA9IG5ldyBzdGRDbGFzcygpOwogICAkcmVjLT5pZCA9ICRyb3dbJ3NrZWxldG9uX2lkJ107CiAgICRyZWMtPm5hbWUgPSAkcm93WydkZXNjcmlwdGlvbiddOwogICAvLyBjcmVhdGUgYXR0cmlidXRlcyBmb3IgcmVuZGVyaW5nICJ2aWV3IiBsaW5rcyBmb3IgdGhlIG9iamVjdC4KICAgLy8gJGlkIGFuZCAkcmV0dXJuaWQgYXJlIHByZWRlZmluZWQgZm9yIHVzIGJ5IHRoZSBtb2R1bGUgQVBJCiAgICRyZWMtPnZpZXcgPSAkdGhpcy0+Q3JlYXRlRnJvbnRlbmRMaW5rKCRpZCwgJHJldHVybmlkLCAnZGVmYXVsdCcsICR0aGlzLT5MYW5nKCdsaW5rX3ZpZXcnKSwKICAgICAgYXJyYXkoJ3NrZWxldG9uX2lkJz0+JHJlYy0+aWQpKTsKICAgJHJlYy0+ZWRpdCA9ICR0aGlzLT5DcmVhdGVGcm9udGVuZExpbmsoJGlkLCAkcmV0dXJuaWQsICdhZGRfZWRpdCcsICR0aGlzLT5MYW5nKCdlZGl0JyksCiAgICAgIGFycmF5KCdza2VsZXRvbl9pZCc9PiRyZWMtPmlkKSk7CiAgIGFycmF5X3B1c2goJHJlY29yZHMsJHJlYyk7CiAgIH0KCi8vIEV4cG9zZSB0aGUgbGlzdCB0byBzbWFydHkuIFVzZSAiYnlfcmVmIiB0byBzYXZlIG1lbW9yeS4KJHRoaXMtPnNtYXJ0eS0+YXNzaWduX2J5X3JlZigncmVjb3JkcycsJHJlY29yZHMpOwoKLy8gYW5kIGEgY291bnQgb2YgcmVjb3JkcwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX251bV9yZWNvcmRzJywkdGhpcy0+TGFuZygndGl0bGVfbnVtX3JlY29yZHMnLGFycmF5KGNvdW50KCRyZWNvcmRzKSkpKTsKCmlmICgkdGhpcy0+R2V0UHJlZmVyZW5jZSgnYWxsb3dfYWRkJywxKSA9PSAxKQogICB7CiAgICR0aGlzLT5zbWFydHktPmFzc2lnbignYWRkJywgJHRoaXMtPkNyZWF0ZUZyb250ZW5kTGluaygkaWQsICRyZXR1cm5pZCwgJ2FkZF9lZGl0JywKICAgICAgJHRoaXMtPkxhbmcoJ2FkZF9yZWNvcmQnKSkpOwoKICAgfQplbHNlCiAgIHsKICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdhZGQnLCAnJyk7CiAgIH0KCmlmIChpc3NldCgkcGFyYW1zWydtb2R1bGVfbWVzc2FnZSddKSkKICAgewogICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ21vZHVsZV9tZXNzYWdlJywkcGFyYW1zWydtb2R1bGVfbWVzc2FnZSddKTsKICAgfQplbHNlCiAgIHsKICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdtb2R1bGVfbWVzc2FnZScsJycpOwogICB9CgovLyBEaXNwbGF5IHRoZSBwb3B1bGF0ZWQgdGVtcGxhdGUKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdza2VsZXRvbl9saXN0LnRwbCcpOwoKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyoqCiAqIERpc3BsYXlBZG1pblBhbmVsKCRpZCwgJHBhcmFtcywgJHJldHVybmlkLCAkbWVzc2FnZSkKICogTk9UIFBBUlQgT0YgVEhFIE1PRFVMRSBBUEkKICogCiAqIFRoaXMgaXMgYW4gZXhhbXBsZSBvZiBhIHNpbXBsZSBtZXRob2QgdG8gcHJlc2VudCBhbiBBZG1pbgogKiBwYW5lbC4KICogCiAqIEl0IHNldHMgc21hcnR5IHRhZyB2YWx1ZXMsIGFuZCB0aGVuIGNhbGxzIHRoZQogKiBjb2RlIG5lY2Vzc2FyeSB0byByZW5kZXIgdGhlIHRlbXBsYXRlLiAgIAogKi8KCi8qKgogKiBGb3Igc2VwYXJhdGVkIG1ldGhvZHMsIHlvdSdsbCBhbHdheXMgd2FudCB0byBzdGFydCB3aXRoIHRoZSBmb2xsb3dpbmcKICogbGluZSB3aGljaCBjaGVjayB0byBtYWtlIHN1cmUgdGhhdCBtZXRob2Qgd2FzIGNhbGxlZCBmcm9tIHRoZSBtb2R1bGUKICogQVBJLCBhbmQgdGhhdCBldmVyeXRoaW5nJ3Mgc2FmZSB0byBjb250aW51ZToKICovIAppZiAoIWlzc2V0KCRnQ21zKSkgZXhpdDsKCgovKiogCiAqIEZvciBzZXBhcmF0ZWQgbWV0aG9kcywgeW91IHdvbid0IGJlIGFibGUgdG8gZG8gcGVybWlzc2lvbiBjaGVja3MgaW4KICogdGhlIERvQWN0aW9uIG1ldGhvZCwgc28geW91J2xsIG5lZWQgdG8gZG8gdGhlbSBhcyBuZWVkZWQgaW4geW91cgogKiBtZXRob2Q6CiovIAppZiAoISAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdVc2UgU2tlbGV0b24nKSkgewogIHJldHVybiAkdGhpcy0+RGlzcGxheUVycm9yUGFnZSgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCwkdGhpcy0+TGFuZygnYWNjZXNzZGVuaWVkJykpOwp9CgovKioKICogQWZ0ZXIgdGhpcywgdGhlIGNvZGUgaXMgaWRlbnRpY2FsIHRvIHRoZSBjb2RlIHRoYXQgd291bGQgb3RoZXJ3aXNlIGJlCiAqIHdyYXBwZWQgaW4gdGhlIERpc3BsYXlBZG1pblBhbmVsKCkgbWV0aG9kIGluIHRoZSBtb2R1bGUgYm9keS4KICovCiAKLy8gVGFiIEluZnJhc3RydWN0dXJlIGZvciBBZG1pbiBBcmVhIC0tIGNyZWF0ZSB0d28gdGFicywgb25lIG9mIHdoaWNoCi8vIGlzIG9ubHkgYWNjZXNzaWJsZSBpZiBwZXJtaXNzaW9ucyBhcmUgcmlnaHQKaWYgKEZBTFNFID09IGVtcHR5KCRwYXJhbXNbJ2FjdGl2ZV90YWInXSkpCiAgewogICAgJHRhYiA9ICRwYXJhbXNbJ2FjdGl2ZV90YWInXTsKICB9IGVsc2UgewogICR0YWIgPSAnJzsKIH0KCiR0YWJfaGVhZGVyID0gJHRoaXMtPlN0YXJ0VGFiSGVhZGVycygpIC4KICAgJHRoaXMtPlNldFRhYkhlYWRlcignZ2VuZXJhbCcsJHRoaXMtPkxhbmcoJ3RpdGxlX2dlbmVyYWwnKSwoJ2dlbmVyYWwnID09ICR0YWIpP3RydWU6ZmFsc2UpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3N0YXJ0X2dlbmVyYWxfdGFiJywkdGhpcy0+U3RhcnRUYWIoJ2dlbmVyYWwnLCAkcGFyYW1zKSk7CgoKaWYgKCR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ1NldCBTa2VsZXRvbiBQcmVmcycpKQogICB7CiAgICR0YWJfaGVhZGVyIC49ICR0aGlzLT5TZXRUYWJIZWFkZXIoJ3ByZWZzJywkdGhpcy0+TGFuZygndGl0bGVfbW9kX3ByZWZzJyksCiAgICAgICgncHJlZnMnID09ICR0YWIpP3RydWU6ZmFsc2UpOwogICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3N0YXJ0X3ByZWZzX3RhYicsJHRoaXMtPlN0YXJ0VGFiKCdwcmVmcycsICRwYXJhbXMpKTsKICAgfQplbHNlCiAgIHsKICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzdGFydF9wcmVmc190YWInLCcnKTsKICAgfQoKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0YWJzX3N0YXJ0JywkdGFiX2hlYWRlci4kdGhpcy0+RW5kVGFiSGVhZGVycygpLiR0aGlzLT5TdGFydFRhYkNvbnRlbnQoKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbigndGFiX2VuZCcsJHRoaXMtPkVuZFRhYigpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0YWJzX2VuZCcsJHRoaXMtPkVuZFRhYkNvbnRlbnQoKSk7CgovLyBDb250ZW50IGRlZmluZXMgYW5kIEZvcm0gc3R1ZmYgZm9yIHRoZSBhZG1pbgoKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd3ZWxjb21lX3RleHQnLCR0aGlzLT5MYW5nKCd3ZWxjb21lX3RleHQnKSk7Cgokc21hcnR5LT5hc3NpZ24oJ3N0YXJ0X2Zvcm0nLCAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwgJ3NhdmVfYWRtaW5fcHJlZnMnLCAkcmV0dXJuaWQpKTsKJHNtYXJ0eS0+YXNzaWduKCd0aXRsZV9hbGxvd19hZGQnLCR0aGlzLT5MYW5nKCd0aXRsZV9hbGxvd19hZGQnKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRfYWxsb3dfYWRkJywkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsICdhbGxvd19hZGQnLCAxLAogICAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnYWxsb3dfYWRkJywnMCcpKS4gJHRoaXMtPkxhbmcoJ3RpdGxlX2FsbG93X2FkZF9oZWxwJykpOwokc21hcnR5LT5hc3NpZ24oJ3N1Ym1pdCcsICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdzdWJtaXQnLCBsYW5nKCdzdWJtaXQnKSkpOwoKJHNtYXJ0eS0+YXNzaWduKCdlbmRfZm9ybScsICR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwoKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdhZG1pbnBhbmVsLnRwbCcpOwovKioKICogWW91IG1pZ2h0IGFsc28gd2FudCB0byBsb29rIGF0IG90aGVyIG1vZHVsZXMgdGhhdCBoYXZlIGRvbmUgdGhpcyA6KQogKiAgKE5ld3MgYW5kIFF1ZXN0aW9ucyBhcmUgZ29vZCBleGFtcGxlcykKICovCgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.save_admin_prefs.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyoqCiAqIE5PVCBQQVJUIE9GIFRIRSBNT0RVTEUgQVBJCiAqIAogKiBUaGlzIGlzIGFuIGV4YW1wbGUgb2YgYSBzaW1wbGUgbWV0aG9kIHRvIHNhdmUgQWRtaW4KICogcHJlZnMuCiAqLwoKLyoqCiAqIEZvciBzZXBhcmF0ZWQgbWV0aG9kcywgeW91J2xsIGFsd2F5cyB3YW50IHRvIHN0YXJ0IHdpdGggdGhlIGZvbGxvd2luZwogKiBsaW5lIHdoaWNoIGNoZWNrIHRvIG1ha2Ugc3VyZSB0aGF0IG1ldGhvZCB3YXMgY2FsbGVkIGZyb20gdGhlIG1vZHVsZQogKiBBUEksIGFuZCB0aGF0IGV2ZXJ5dGhpbmcncyBzYWZlIHRvIGNvbnRpbnVlOgogKi8gCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKLyoqIAogKiBGb3Igc2VwYXJhdGVkIG1ldGhvZHMsIHlvdSB3b24ndCBiZSBhYmxlIHRvIGRvIHBlcm1pc3Npb24gY2hlY2tzIGluCiAqIHRoZSBEb0FjdGlvbiBtZXRob2QsIHNvIHlvdSdsbCBuZWVkIHRvIGRvIHRoZW0gYXMgbmVlZGVkIGluIHlvdXIKICogbWV0aG9kOgogKi8gCmlmICghICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ1VzZSBTa2VsZXRvbicpKSB7CiAgcmV0dXJuICR0aGlzLT5EaXNwbGF5RXJyb3JQYWdlKCRpZCwgJHBhcmFtcywgJHJldHVybmlkLCR0aGlzLT5MYW5nKCdhY2Nlc3NkZW5pZWQnKSk7Cn0KCQovKioKICogQWZ0ZXIgdGhpcywgdGhlIGNvZGUgaXMgaWRlbnRpY2FsIHRvIHRoZSBjb2RlIHRoYXQgd291bGQgb3RoZXJ3aXNlIGJlCiAqIHdyYXBwZWQgaW4gdGhlIERpc3BsYXlBZG1pblByZWZzKCkgbWV0aG9kIGluIHRoZSBtb2R1bGUgYm9keS4KICovCgoKCi8vIHNldCBvdXIgcHJlZmVyZW5jZQokdGhpcy0+U2V0UHJlZmVyZW5jZSgnYWxsb3dfYWRkJywgaXNzZXQoJHBhcmFtc1snYWxsb3dfYWRkJ10pPyRwYXJhbXNbJ2FsbG93X2FkZCddOicwJyk7CgovLyBzZW5kIGFuIGV2ZW50IHRvIGFueSBzdWJzY3JpYmluZyB1c2VyIHRhZ3Mgb3IgbW9kdWxlcwokcGFybXMgPSBhcnJheSgpOwokcGFybXNbJ2FsbG93X2FkZCddID0gKGlzc2V0KCRwYXJhbXNbJ2FsbG93X2FkZCddKT90cnVlOmZhbHNlKTsKJHRoaXMtPlNlbmRFdmVudCgnT25Ta2VsZXRvblByZWZlcmVuY2VDaGFuZ2UnLCRwYXJtcyk7CgovLyB3cml0ZSB0byB0aGUgYWRtaW4gbG9nCiR0aGlzLT5BdWRpdCggMCwgJHRoaXMtPkxhbmcoJ2ZyaWVuZGx5bmFtZScpLCAkdGhpcy0+TGFuZygncHJlZnN1cGRhdGVkJykgKTsKCi8vIHNldCB0aGUgYWN0aXZlIHRhYiwgYW5kIGEgbWVzc2FnZSB0byBkaXNwbGF5CiRwYXJhbXMgPSBhcnJheSgndGFiX21lc3NhZ2UnPT4gJ3ByZWZzdXBkYXRlZCcsICdhY3RpdmVfdGFiJyA9PiAncHJlZnMnKTsKCi8vIHJlZGlyZWN0IGJhY2sgdG8gZGVmYXVsdCBhZG1pbiBwYWdlCiR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAkcmV0dXJuaWQsICRwYXJhbXMpOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.save_record.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCi8qKg0KICoNCiAqIFRoaXMgaXMgYW4gZXhhbXBsZSBvZiBhIG1ldGhvZCB0byBzYXZlDQogKiBkYXRhYmFzZSBkYXRhLg0KICoNCiAqIElmIHRoZSAic2tlbGV0b25faWQiIHBhcmFtZXRlciBpcyAtMSwgaXQncyBhIG5ldyByZWNvcmQuDQogKiBPdGhlcndpc2UsIHdlJ3JlIHVwZGF0aW5nIGFuIG9sZCByZWNvcmQuDQoNCiAqLw0KDQovKioNCiAqIEZvciBzZXBhcmF0ZWQgbWV0aG9kcywgeW91J2xsIGFsd2F5cyB3YW50IHRvIHN0YXJ0IHdpdGggdGhlIGZvbGxvd2luZw0KICogbGluZSB3aGljaCBjaGVjayB0byBtYWtlIHN1cmUgdGhhdCBtZXRob2Qgd2FzIGNhbGxlZCBmcm9tIHRoZSBtb2R1bGUNCiAqIEFQSSwgYW5kIHRoYXQgZXZlcnl0aGluZydzIHNhZmUgdG8gY29udGludWU6DQogKi8NCmlmICghaXNzZXQoJGdDbXMpKSBleGl0Ow0KDQovLyBkb24ndCB0cnVzdCB0aGF0IHRoaXMgd2FzIHNhZmUsIGp1c3QgYmVjYXVzZSB0aGUgbGluayBpcyBoaWRkZW4gaWYgdGhlIG9wdGlvbiBpcyBvZmYhDQovLyBhbHdheXMgY29kZSBkZWZlbnNpdmVseSEgVGhlcmUgYXJlIGJlYXN0aWVzIHRoYXQgbHVyayBhbmQgdGhpbmdzIGdvIGJ1bXAgaW4gdGhlIG5pZ2h0Lg0KaWYgKCEgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2FsbG93X2FkZCcsMSkgPT0gMSkgZXhpdDsNCg0KLyoqDQogKiBBZnRlciB0aGlzLCB0aGUgY29kZSBpcyBpZGVudGljYWwgdG8gdGhlIGNvZGUgdGhhdCB3b3VsZCBvdGhlcndpc2UgYmUNCiAqIHdyYXBwZWQgaW4gdGhlIGFjdGlvbi4NCiAqLw0KDQovLyBnZXQgb3VyIHJlY29yZHMgZnJvbSB0aGUgZGF0YWJhc2UNCiRkYiA9ICYkZ0Ntcy0+R2V0RGIoKTsNCg0KaWYgKGlzc2V0KCRwYXJhbXNbJ3NrZWxldG9uX2lkJ10pICYmICRwYXJhbXNbJ3NrZWxldG9uX2lkJ10gIT0gLTEpDQogICB7DQogICAkcXVlcnkgPSAnVVBEQVRFICcuY21zX2RiX3ByZWZpeCgpLg0KICAgICAgJ21vZHVsZV9za2VsZXRvbiBzZXQgZGVzY3JpcHRpb249PyB3aGVyZSBza2VsZXRvbl9pZCA9ID8nOw0KICAgJHJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJHBhcmFtc1snZGVzY3JpcHRpb24nXSwkcGFyYW1zWydza2VsZXRvbl9pZCddKSk7DQogICAkcGFyYW1zWydtb2R1bGVfbWVzc2FnZSddID0gJHRoaXMtPkxhbmcoJ3VwZGF0ZWRfcmVjb3JkJyk7DQogICB9DQplbHNlDQogICB7DQogICAvLyB1c2UgdGhlIHNlcXVlbmNlIHRvIGdldCBhIGZyZXNoIElEDQogICAkc2lkID0gJGRiLT5HZW5JRChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9za2VsZXRvbl9zZXEnKTsNCiAgICRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLmNtc19kYl9wcmVmaXgoKS4NCiAgICAgICdtb2R1bGVfc2tlbGV0b24gKHNrZWxldG9uX2lkLCBkZXNjcmlwdGlvbikgVkFMVUVTICg/LD8pJzsNCiAgICRyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRzaWQsJHBhcmFtc1snZGVzY3JpcHRpb24nXSkpOw0KICAgJHBhcmFtc1snbW9kdWxlX21lc3NhZ2UnXSA9ICR0aGlzLT5MYW5nKCdhZGRlZF9yZWNvcmQnKTsNCiAgIH0NCg0KaWYgKCRyZXN1bHQgPT09IGZhbHNlKQ0KICAgew0KICAgLy8geWVhaCwgdGhhdCdzIGdyYWNlZnVsIDooDQogICBlY2hvICJEYXRhYmFzZSBlcnJvciEiOw0KICAgZXhpdDsNCiAgIH0NCg0KdW5zZXQoJHBhcmFtc1snc2tlbGV0b25faWQnXSk7DQovLyBzZXQgYSBtZXNzYWdlIGFuZCByZXR1cm4gdG8gdGhlIHBhZ2UuDQokdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdCcsICRyZXR1cm5pZCwgJHBhcmFtcyk7DQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/images/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/images/icon.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhIAAgAPcAAO3t7evr6/v7++7u7vHx8fz8/C8vL+np6RYWFkRERO/v7+rq6jg4OEBAQObm5vb29ikpKezs7PDw8ENDQ0tLSzU1NS0tLfj4+DExMfLy8h0dHUhISGdnZywsLCcnJx4eHgwMDA8PDwYGBklJSfn5+Q0NDVVVVVFRUWJiYl9fXzQ0ND4+PvPz8zMzM+Pj4xcXFzk5OSAgIE1NTRsbGyMjIxkZGQ4ODhISEhUVFQcHBwkJCQgICE9PTxoaGnx8fOfn58nJydnZ2VRUVFBQUHt7e29vb0JCQkxMTF1dXQQEBBMTE3Z2dlNTU2xsbC4uLrGxsTAwMDo6OkVFRTs7OzIyMiYmJisrKxwcHCEhIX19fbi4uMDAwMPDw/r6+kFBQcbGxhgYGJGRkWVlZZqamrm5uUpKSlxcXD8/P2RkZHJyclJSUn9/fz09Paampvf390dHR93d3VtbW5aWlhAQEN/f3yoqKuXl5Wtrazc3NyUlJQAAAAUFBf39/eTk5EZGRsLCws3NzdDQ0GFhYdPT0+Dg4KysrAMDA4WFhVlZWc7OzrOzs8rKyujo6K6urpycnJCQkF5eXq2trZ6entTU1NHR0YSEhCIiInNzc2BgYCgoKKKiom5ubnV1dZWVlVZWVqurq2hoaGNjY7y8vB8fH3BwcMHBwY2NjfX19aGhoVdXV+Li4qCgoBEREXh4eMvLy21tbU5OTmlpadzc3LKysrCwsPT09DY2NpmZmVpaWiQkJNfX14CAgK+vr8fHx4ODg5+fnwsLC1hYWGZmZtXV1QoKCv7+/hQUFJubm+Hh4bu7u7S0tHd3d35+fo+Pj5KSktbW1piYmHR0dDw8PI6OjpOTk8/Pz4yMjNjY2IaGhnp6etvb28XFxdra2sjIyNLS0qqqqqmpqb+/v2pqaoGBgbe3t4KCgr6+vqSkpImJiXFxcYeHhwEBAYiIiAICAqioqKOjo8TExLW1taenp6WlpYuLi8zMzJSUlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAgACAAAAj/APMgGPiix5UPBlL4cqTlT6RAq3Zx8AOFxoceNWqA0TDjBQ5LN5Ik0VFiDg4EHVCMAado0S1eyqy9EgKjwygESuaEoMJDxhtcStbpULKRRp1Uh6ipawTknJYvnYQ1MIBhChsruZxAWhKLAygLBqh4sBJlSJY7JxKsEKNFXqNujxp8mFOixhskpDRBu7PEFKkiRZKiYxZGmAEsPSAwIPKETJAsM0KUAKHDQKFw6cJMmqSFVqEwt765OtDJ0oeOeaQhOTZLFQcENnLswRJNzhgi44AQgqMrQoYnlSLFc2QGyosSODyYcLSNAK4ke3JgWNMqTx13khrBcxAAQJBPkcjB/7KFZNMlFMGQtOLFRUGzOCiaEJHBysYNFFySfXER4MCwei74gMcGENRggBdChGKKLow8QAYRTYyQxw0l5KADA20Ash93fTgwiCBMxKADMMZAUAEFaQQxAAv2yHACLGqYwAMGWGBRRBCA2EHHAAco8AUoo9yQSQUtWGGBEdggowABT6gw1w5JiACCFRPAsAUyP1AyAAAsKCINA1N0gMAOIoSgRAJwSKAAFxZAkEADHdwAwh6ZICIHAA4AEQGevqCxARgivACBBS1M4QkhAyzgwDGQUOCHFFRMYYsSUEgywA9cdDeIM3F8gEMHFXiARRUGqLHjAgNksUM7euhhCDAQrP/gxBIE/FAKAAP0UQkDDXhhhQ17iLBDCVAEQkAAAaxxEAIgGNIqDmX4MMwBWwwgwTXZcHDCDCLkQAwrV0DAAxwEEJCBMhvcsQEeLdBAjAg0LAHEAqIAoMAzbYgRQwgxqLDCGQkIcYksGZBwgSgTVFADCAhQsYIHM5zxBwCKdOeCHAxkMkECHfSAQwwYmECHBBcIsMUETlTRbBIaHLGBAWMMoMkACiQSih+IqKBDtzvU0UAKB0RAggAH/GKEF1fYAEIOCJyARhZ2/AJABppwwAkbIdgQggZOmPGGOA4IzccpkySAQQVghHCDDTGAcsggqADwwzvTHEFDD7lsMIIUgsD/UEYiClxQjBvacGLACgxUgcAVHrRQRB+fBLCAK6FYUEUDiMBQQxVSYDBBNRI8MPgC5qRAgwYW4BGFEWwwocofERBQihBSpOCJB8ZooIIMMqTSBwEkFHABAJQ0c0QLL8ywAhqQoAAINwoA0MYaawxhiQYxGFAGBWygMUAGAhTQBZ60oGDCBHWMUkETzixihwKMPCFJLDBY0AEDG5xRRhRpZMBCAQUQAAAWIAt2GOAII1ABBCgAjSAEYEWByMIQNsYBMQihLEboxAUeID4BsABZT2gBBKhAgRMwgRSJKJcbqrEMJpiAGZvwgwVGEAc1rOIBFwig8CIwADikQAMecEIw0NLgg1JIIAMPoMQ0dvEITOABAwxAAg+MIIcHBI8PYzvAAVxQiQpAQQUMiEMYFhG7B+DrE2k4QwUSwAEKUGAChbhAF8LHh1rY4QcBQMUbEuCFKTQgGkAIgARqQYgtmMIMPPBEE9QgBRlQoBcPEEAXAPgARhxgAWQYAQxGMIITNGEeATBXBMhwhxRgwgeCiEIDhlAOF7BAALAUAAkk54BkYAIDDWCCGIpAj5FFbxZEuAQnNmGCV4yhFwcAgARiWQA3HEByovBBAo5ghiUs4xHeCAgAOw==]]></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[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ1BlZGFudGljIFNrZWxldG9uIE1vZHVsZSc7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ1Bvc3QgSW5zdGFsbCBNZXNzYWdlLCBlLmcuLCBCZSBzdXJlIHRvIHNldCAiVXNlIFNrZWxldG9ucyIgcGVybWlzc2lvbnMgdG8gdXNlIHRoaXMgbW9kdWxlISc7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnUG9zdCBVbmluc3RhbGwgTWVzc2FnZSwgZS5nLiwgIkN1cnNlcyEgRm9pbGVkIEFnYWluISInOwokbGFuZ1sncmVhbGx5X3VuaW5zdGFsbCddID0gJ1JlYWxseT8gWW91XCdyZSBzdXJlIHlvdSB3YW50IHRvIHVuaW5zdGFsbCB0aGlzIGZpbmUgbW9kdWxlPyc7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHVsZSBVbmluc3RhbGxlZC4nOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnTW9kdWxlIHZlcnNpb24gJXMgaW5zdGFsbGVkLic7CiRsYW5nWydwcmVmc3VwZGF0ZWQnXSA9ICdNb2R1bGUgcHJlZmVyZW5jZXMgdXBkYXRlZC4nOwokbGFuZ1snc3VibWl0J10gPSAnU2F2ZSc7CiRsYW5nWydhY2Nlc3NkZW5pZWQnXSA9ICdBY2Nlc3MgRGVuaWVkLiBQbGVhc2UgY2hlY2sgeW91ciBwZXJtaXNzaW9ucy4nOwokbGFuZ1snZXJyb3InXSA9ICdFcnJvciEnOwokbGFuZ1snbGlua192aWV3J10gPSAnVmlldyBSZWNvcmQnOwokbGFuZ1snZWRpdCddID0gJ0VkaXQgUmVjb3JkJzsKJGxhbmdbJ3RpdGxlX251bV9yZWNvcmRzJ10gPSAnJXMgcmVjb3JkcyBmb3VuZC4nOwokbGFuZ1snYWRkX3JlY29yZCddID0gJ0FkZCBhIFJlY29yZCc7CiRsYW5nWydhZGRlZF9yZWNvcmQnXSA9ICdBZGRlZCByZWNvcmQuJzsKJGxhbmdbJ3VwZGF0ZWRfcmVjb3JkJ10gPSAnUmVjb3JkIHVwZGF0ZWQuJzsKJGxhbmdbJ3VwZ3JhZGVkJ10gPSAnTW9kdWxlIHVwZ3JhZGVkIHRvIHZlcnNpb24gJXMuJzsKJGxhbmdbJ3RpdGxlX2FsbG93X2FkZCddID0gJ1VzZXJzIG1heSBhZGQgcmVjb3Jkcz8nOwokbGFuZ1sndGl0bGVfYWxsb3dfYWRkX2hlbHAnXSA9ICdDbGljayBoZXJlIHRvIGFsbG93IHVzZXJzIHRvIGFkZCByZWNvcmRzLic7CiRsYW5nWyd0aXRsZV9tb2RfcHJlZnMnXSA9ICdNb2R1bGUgUHJlZmVyZW5jZXMnOwokbGFuZ1sndGl0bGVfZ2VuZXJhbCddID0gJ0dlbmVyYWwgSW5mbyc7CiRsYW5nWyd0aXRsZV9kZXNjcmlwdGlvbiddID0gJ0Rlc2NyaXB0aW9uJzsKJGxhbmdbJ3RpdGxlX21vZF9hZG1pbiddID0gJ01vZHVsZSBBZG1pbiBQYW5lbCc7CiRsYW5nWydoZWxwX3NrZWxldG9uX2lkJ10gPSAnSW50ZXJuYWxseSBpZGVudGlmaWVyIGZvciBzZWxlY3RpbmcgcmVjb3Jkcyc7CiRsYW5nWydoZWxwX2Rlc2NyaXB0aW9uJ10gPSAnSW50ZXJuYWwgcGFyYW1ldGVyIHVzZWQgd2hlbiBjcmVhdGluZyBhIG5ldyByZWNvcmQnOwokbGFuZ1snaGVscF9tb2R1bGVfbWVzc2FnZSddID0gJ0ludGVybmFsbHkgdXNlZCBwYXJhbWV0ZXIgZm9yIHBhc3NpbmcgbWVzc2FnZXMgdG8gdXNlcic7CiRsYW5nWydldmVudF9pbmZvX09uU2tlbGV0b25QcmVmZXJlbmNlQ2hhbmdlJ10gPSAnQW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gIHRoZSBwcmVmZXJlbmNlcyB0byB0aGUgU2tlbGV0b24gTW9kdWxlIGdldCBjaGFuZ2VkJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Ta2VsZXRvblByZWZlcmVuY2VDaGFuZ2UnXSA9ICc8cD5BbiBldmVudCBnZW5lcmF0ZWQgd2hlbiB0aGUgcHJlZmVyZW5jZXMgdG8gdGhlIFNrZWxldG9uIE1vZHVsZSBnZXQgY2hhbmdlZDwvcD4KPGg0PlBhcmFtZXRlcnM8L2g0Pgo8dWw+CjxsaT48ZW0+YWxsb3dfYWRkPC9lbT4gLSBUaGUgbmV3IHNldHRpbmcgb2YgdGhlICJBbGxvdyBBZGQiIHByZWZlcmVuY2U7IGJvb2xlYW48L2xpPgo8L3VsPiAKJzsKCiRsYW5nWydtb2RkZXNjcmlwdGlvbiddID0gJ1RoaXMgbW9kdWxlIGlzIGEgc2tlbGV0b24gbW9kdWxlIHRoYXQgZG9lcyBub3RoaW5nLic7CiRsYW5nWyd3ZWxjb21lX3RleHQnXSA9ICc8cD5XZWxjb21lIHRvIHRoZSBQZWRhbnRpYyBTa2VsZXRvbiBNb2R1bGUgYWRtaW4gc2VjdGlvbi4gU29tZXRoaW5nIGVsc2Ugd291bGQgcHJvYmFibHkgZ28gaGVyZSBpZiB0aGUgbW9kdWxlIGFjdHVhbGx5IGRpZCBzb21ldGhpbmcuIEFkZCBpdCB0byB5b3VyIGZyb250LWVuZCBwYWdlcyB3aXRoIGEge2Ntc19tb2R1bGUgbW9kdWxlPVwnU2tlbGV0b25cJ308L3A+JzsKJGxhbmdbJ2NoYW5nZWxvZyddID0gJzx1bD4KPGxpPlZlcnNpb24gMS42LCBOb3YgMjAwOCBTakcsIGFkZGVkIHBhcmFtZXRlciBzYW5pdGl6aW5nIGZvciBOdW5vPC9saT4KPGxpPlZlcnNpb24gMS41LCBKdWx5IDIwMDcgU2pHCjx1bD4KICAgPGxpPkFkZGVkIGFjdHVhbCBkYXRhYmFzZSBhcHAuPC9saT4KICAgPGxpPk1hZGUgQWRtaW4gdGFiYmVkIGZvciBpbnRlcmVzdC48L2xpPgogICA8bGk+VXBkYXRlZCBNaW5pbXVtIGFuZCBNYXhpbXVtIENNUyB2ZXJzaW9ucy48L2xpPgo8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAxLjQsIEp1bmUgMjAwNiAoY2FsZ3V5MTAwMCkuIAogIDx1bD4KICAgIDxsaT5SZXBsYWNlZCBEaXNwbGF5QWRtaW5OYXYgd2l0aCBhIHNpbmdsZSB0YWI8L2xpPgogICAgPGxpPlJlcGxhY2VkIGNhbGwgdG8gRG9BY3Rpb24gd2l0aCBhIFJlZGlyZWN0PC9saT4KICAgIDxsaT5DaGFuZ2VkIG1pbmltdW0gY21zIHZlcnNpb24gdG8gMS4wLXN2bjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMS4zLiBKdW5lIDIwMDYgKHNqZykuIAogIDx1bD4KICAgIDxsaT5TcGxpdCBvdXQgaW5zdGFsbCwgdXBncmFkZSwgYW5kIHVuaW5zdGFsbCBtZXRob2RzPC9saT4KICAgIDxsaT5BZGRlZCBFdmVudHM8L2xpPgogICAgPGxpPkFkZGVkIHJlZmVyZW5jZXMgdG8gcHJldHR5IHVybHMgYW5kIHJvdXRlIHJlZ2lzdHJhdGlvbjwvbGk+CiAgICA8bGk+Y29ycmVjdGVkIGxhbmd1YWdlIGZpbGUgZGlyZWN0b3J5IHN0cnVjdHVyZTwvbGk+CiAgICA8bGk+YWRkZWQgbW9yZSBjb21tZW50czwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMS4yLiAyOSBEZWNlbWJlciAyMDA1LiBGaXhlcyB0byBidWdzIHBvaW50ZWQgb3V0IGJ5IFBhdHJpY2sgTG9zY2htaWR0LiBVcGRhdGVzIHRvIGJlIGNvcnJlY3QgZm9yIENNUyBNYWRlIFNpbXBsZSB2ZXJzaW9ucyAwLjExLnguPC9saT4KPGxpPlZlcnNpb24gMS4xLiAxMSBTZXB0ZW1iZXIgMjAwNS4gQ2xlYW5lZCB1cCByZWZlcmVuY2VzIHRoYXQgY2F1c2VkIHByb2JsZW1zIGZvciBQSFAgNC40Lnggb3IgNS4wLjUuPC9saT4KPGxpPlZlcnNpb24gMS4wLiA2IEF1Z3VzdCAyMDA1LiBJbml0aWFsIFJlbGVhc2UuPC9saT48L3VsPic7CiRsYW5nWydoZWxwJ10gPSAnPGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+CjxwPk5vdGhpbmcuIEl0XCdzIGRlc2lnbmVkIHRvIGJlIGEgc3RhcnRpbmcgcG9pbnQgZm9yIHlvdSB0byBkZXZlbG9wIHlvdXIgb3duIG1vZHVsZXMuPC9wPgo8aDM+SG93IERvIEkgVXNlIEl0PC9oMz4KPHA+V2VsbCwgeW91IGNvdWxkIGFjdHVhbGx5IGluc3RhbGwgaXQgYnkgcGxhY2luZyB0aGUgbW9kdWxlIGluIGEgcGFnZSBvciB0ZW1wbGF0ZSB1c2luZyB0aGUKc21hcnR5IHRhZyAmIzEyMztjbXNfbW9kdWxlIG1vZHVsZT1cJ1NrZWxldG9uXCd9PC9wPgo8cD5Zb3Ugd291bGQgYmUgd2lzZXIsIGhvd2V2ZXIsIHRvIHVzZSB0aGUgbW9kdWxlIGFzIGEgc3RhcnRpbmcgcG9pbnQsIGFuZCBlZGl0aW5nIHRoZSBjb2RlIHRvIGRvCndoYXRldmVyIGl0IGlzIHlvdSBhcmUgd2FudGluZyB0byBkby48L3A+CjxoMz5TdXBwb3J0PC9oMz4KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPgo8dWw+CjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlLCBGQVFzLCBvciB0byBmaWxlIGEgQnVnIFJlcG9ydCwgcGxlYXNlIHZpc2l0IHRoZSBNb2R1bGUgRm9yZ2UKPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9za2VsZXRvbi8iPlNrZWxldG9uIFBhZ2U8L2E+LjwvbGk+CjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyI+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uPC9saT4KPGxpPlRoZSBhdXRob3IsIFNqRywgY2FuIG9mdGVuIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXMiPkNNUyBJUkMgQ2hhbm5lbDwvYT4uPC9saT4KPGxpPkxhc3RseSwgeW91IG1heSBoYXZlIHNvbWUgc3VjY2VzcyBlbWFpbGluZyB0aGUgYXV0aG9yIGRpcmVjdGx5LjwvbGk+ICAKPC91bD4KPHA+QXMgcGVyIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgYXMtaXMuIFBsZWFzZSByZWFkIHRoZSB0ZXh0Cm9mIHRoZSBsaWNlbnNlIGZvciB0aGUgZnVsbCBkaXNjbGFpbWVyLjwvcD4KCjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPgo8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMDgsIFNhbXVlbCBHb2xkc3RlaW4gPGEgaHJlZj0ibWFpbHRvOnNqZ0BjbXNtb2R1bGVzLmNvbSI+Jmx0O3NqZ0BjbXNtb2R1bGVzLmNvbSZndDs8L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+CjxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+Cic7Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNrZWxldG9uIC0gYSBwZWRhbnRpYyAic3RhcnRpbmcgcG9pbnQiIG1vZHVsZQojIFZlcnNpb246IDEuNSwgU2pHCiMgTWV0aG9kOiBJbnN0YWxsCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA4IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9za2VsZXRvbi8KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKLyoqCiAqIEZvciBzZXBhcmF0ZWQgbWV0aG9kcywgeW91J2xsIGFsd2F5cyB3YW50IHRvIHN0YXJ0IHdpdGggdGhlIGZvbGxvd2luZwogKiBsaW5lIHdoaWNoIGNoZWNrIHRvIG1ha2Ugc3VyZSB0aGF0IG1ldGhvZCB3YXMgY2FsbGVkIGZyb20gdGhlIG1vZHVsZQogKiBBUEksIGFuZCB0aGF0IGV2ZXJ5dGhpbmcncyBzYWZlIHRvIGNvbnRpbnVlOgogKi8gCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKCi8qKiAKICogQWZ0ZXIgdGhpcywgdGhlIGNvZGUgaXMgaWRlbnRpY2FsIHRvIHRoZSBjb2RlIHRoYXQgd291bGQgb3RoZXJ3aXNlIGJlCiAqIHdyYXBwZWQgaW4gdGhlIEluc3RhbGwoKSBtZXRob2QgaW4gdGhlIG1vZHVsZSBib2R5LgogKi8KCiRkYiA9JiAkZ0Ntcy0+R2V0RGIoKTsKCi8vIG15c3FsLXNwZWNpZmljLCBidXQgaWdub3JlZCBieSBvdGhlciBkYXRhYmFzZQokdGFib3B0YXJyYXkgPSBhcnJheSggJ215c3FsJyA9PiAnVFlQRT1NeUlTQU0nICk7CgokZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCAkZGIgKTsKCi8vIHRhYmxlIHNjaGVtYSBkZXNjcmlwdGlvbgokZmxkcyA9ICIKICAgICAgICAgc2tlbGV0b25faWQgSSBLRVksCgkgZGVzY3JpcHRpb24gQyg4MCkKIjsKCQkJCi8vIGNyZWF0ZSBpdC4gVGhpcyBzaG91bGQgZG8gZXJyb3IgY2hlY2tpbmcsIGJ1dCBJJ20gYSBsYXp5IHNvZC4KJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKCBjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9za2VsZXRvbiIsCgkJCQkgICAkZmxkcywgCgkJCQkgICAkdGFib3B0YXJyYXkpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgovLyBjcmVhdGUgYSBzZXF1ZW5jZQokZGItPkNyZWF0ZVNlcXVlbmNlKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3NrZWxldG9uX3NlcSIpOwoKLy8gY3JlYXRlIGEgcGVybWlzc2lvbgokdGhpcy0+Q3JlYXRlUGVybWlzc2lvbignVXNlIFNrZWxldG9uJywgJ1VzZSBTa2VsZXRvbicpOwokdGhpcy0+Q3JlYXRlUGVybWlzc2lvbignU2V0IFNrZWxldG9uIFByZWZzJywnU2V0IFNrZWxldG9uIFByZWZzJyk7CgovLyBjcmVhdGUgYSBwcmVmZXJlbmNlCiR0aGlzLT5TZXRQcmVmZXJlbmNlKCJhbGxvd19hZGQiLCB0cnVlKTsKCi8vIHJlZ2lzdGVyIGFuIGV2ZW50IHRoYXQgdGhlIFNrZWxldG9uIHdpbGwgaXNzdWUuIE90aGVyIG1vZHVsZXMKLy8gb3IgdXNlciB0YWdzIHdpbGwgYmUgYWJsZSB0byBzdWJzY3JpYmUgdG8gdGhpcyBldmVudCwgYW5kIHRyaWdnZXIKLy8gb3RoZXIgYWN0aW9ucyB3aGVuIGl0IGdldHMgY2FsbGVkLgokdGhpcy0+Q3JlYXRlRXZlbnQoICdPblNrZWxldG9uUHJlZmVyZW5jZUNoYW5nZScgKTsKCi8vIHB1dCBtZW50aW9uIGludG8gdGhlIGFkbWluIGxvZwokdGhpcy0+QXVkaXQoIDAsIAoJICAgICAgJHRoaXMtPkxhbmcoJ2ZyaWVuZGx5bmFtZScpLCAKCSAgICAgICR0aGlzLT5MYW5nKCdpbnN0YWxsZWQnLCAkdGhpcy0+R2V0VmVyc2lvbigpKSApOwoKCSAgICAgIAo/Pg==]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNrZWxldG9uIC0gYSBwZWRhbnRpYyAic3RhcnRpbmcgcG9pbnQiIG1vZHVsZQojIFZlcnNpb246IDEuMywgU2pHCiMgTWV0aG9kOiBVbmluc3RhbGwKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL3NrZWxldG9uLwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgovKioKICogRm9yIHNlcGFyYXRlZCBtZXRob2RzLCB5b3UnbGwgYWx3YXlzIHdhbnQgdG8gc3RhcnQgd2l0aCB0aGUgZm9sbG93aW5nCiAqIGxpbmUgd2hpY2ggY2hlY2sgdG8gbWFrZSBzdXJlIHRoYXQgbWV0aG9kIHdhcyBjYWxsZWQgZnJvbSB0aGUgbW9kdWxlCiAqIEFQSSwgYW5kIHRoYXQgZXZlcnl0aGluZydzIHNhZmUgdG8gY29udGludWU6CiAqLyAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgoKLyoqIAogKiBBZnRlciB0aGlzLCB0aGUgY29kZSBpcyBpZGVudGljYWwgdG8gdGhlIGNvZGUgdGhhdCB3b3VsZCBvdGhlcndpc2UgYmUKICogd3JhcHBlZCBpbiB0aGUgVW5pbnN0YWxsKCkgbWV0aG9kIGluIHRoZSBtb2R1bGUgYm9keS4KICovCgokZGIgPSYgJGdDbXMtPkdldERiKCk7CgovLyByZW1vdmUgdGhlIGRhdGFiYXNlIHRhYmxlCiRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoICRkYiApOwokc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKCBjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9za2VsZXRvbiIgKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKLy8gcmVtb3ZlIHRoZSBzZXF1ZW5jZQokZGItPkRyb3BTZXF1ZW5jZSggY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfc2tlbGV0b25fc2VxIiApOwoKLy8gcmVtb3ZlIHRoZSBwZXJtaXNzaW9ucwokdGhpcy0+UmVtb3ZlUGVybWlzc2lvbignVXNlIFNrZWxldG9uJyk7CiR0aGlzLT5SZW1vdmVQZXJtaXNzaW9uKCdTZXQgU2tlbGV0b24gUHJlZnMnKTsKCi8vIHJlbW92ZSB0aGUgcHJlZmVyZW5jZQokdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgiYWxsb3dfYWRkIik7CgovLyByZW1vdmUgdGhlIGV2ZW50CiR0aGlzLT5SZW1vdmVFdmVudCggJ09uU2tlbGV0b25QcmVmZXJlbmNlQ2hhbmdlJyApOwoKLy8gcHV0IG1lbnRpb24gaW50byB0aGUgYWRtaW4gbG9nCiR0aGlzLT5BdWRpdCggMCwgJHRoaXMtPkxhbmcoJ2ZyaWVuZGx5bmFtZScpLCAkdGhpcy0+TGFuZygndW5pbnN0YWxsZWQnKSk7Cgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/method.upgrade.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNrZWxldG9uIC0gYSBwZWRhbnRpYyAic3RhcnRpbmcgcG9pbnQiIG1vZHVsZQojIFZlcnNpb246IDEuNSwgU2pHCiMgTWV0aG9kOiBVcGdyYWRlCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA4IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9za2VsZXRvbi8KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKLyoqCiAqIEZvciBzZXBhcmF0ZWQgbWV0aG9kcywgeW91J2xsIGFsd2F5cyB3YW50IHRvIHN0YXJ0IHdpdGggdGhlIGZvbGxvd2luZwogKiBsaW5lIHdoaWNoIGNoZWNrIHRvIG1ha2Ugc3VyZSB0aGF0IG1ldGhvZCB3YXMgY2FsbGVkIGZyb20gdGhlIG1vZHVsZQogKiBBUEksIGFuZCB0aGF0IGV2ZXJ5dGhpbmcncyBzYWZlIHRvIGNvbnRpbnVlOgoqLyAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgoKLyoqCiAqIEFmdGVyIHRoaXMsIHRoZSBjb2RlIGlzIGlkZW50aWNhbCB0byB0aGUgY29kZSB0aGF0IHdvdWxkIG90aGVyd2lzZSBiZQogKiB3cmFwcGVkIGluIHRoZSBVcGdyYWRlKCkgbWV0aG9kIGluIHRoZSBtb2R1bGUgYm9keS4KICovCgokY3VycmVudF92ZXJzaW9uID0gJG9sZHZlcnNpb247CnN3aXRjaCgkY3VycmVudF92ZXJzaW9uKQp7CiAgLy8gd2UgYXJlIG5vdyAxLjAgYW5kIHdhbnQgdG8gdXBncmFkZSB0byBsYXRlc3QKIGNhc2UgIjEuMCI6CiAgIC8vZG8gbWFnaWMKIGNhc2UgIjEuMSI6CiAgIC8vYW5kIHRoaXMgaXMgaGVyZSBmb3IgdGhlIG5leHQgdmVyc2lvbgogY2FzZSAiMS4yIjoKIGNhc2UgIjEuMyI6CiBjYXNlICIxLjQiOgogY2FzZSAiMS41IjoKfQoKLy8gcHV0IG1lbnRpb24gaW50byB0aGUgYWRtaW4gbG9nCiR0aGlzLT5BdWRpdCggMCwgCgkgICAgICAkdGhpcy0+TGFuZygnZnJpZW5kbHluYW1lJyksIAoJICAgICAgJHRoaXMtPkxhbmcoJ3VwZ3JhZGVkJywgJHRoaXMtPkdldFZlcnNpb24oKSkpOwoKLy9ub3RlOiBtb2R1bGUgYXBpIGhhbmRsZXMgc2VuZGluZyBnZW5lcmljIGV2ZW50IG9mIG1vZHVsZSB1cGdyYWRlZCBoZXJlCj8+]]></data>
	</file>
	<file>
	  <filename>/Skeleton.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyoqCiAqCiAqICBOT1RFUyBGT1IgVEhFIEFTUElSSU5HLCBVTkVYUEVSSUVOQ0VELCBPUiBGT1JHRVRGVUwgTU9EVUxFIERFVkVMT1BFUgogKgogKiBBcyBvbmUgb2YgdGhlIGxhdHRlciwgSSBwdXQgdG9nZXRoZXIgdGhlc2Ugbm90ZXMgdG8gaGVscCBtZSB3aGVuIEkgbmVlZAogKiB0byBzdGFydCB3b3JrIG9uIGEgbmV3IG1vZHVsZS4gSSB0YWtlIHRoaXMgU2tlbGV0b24gZmlsZSwgZGVsZXRlIG1vc3Qgb2YKICogdGhlIGNvbW1lbnRzLCBhbmQgY3VzdG9taXplIGl0IHRvIGRvIHdoYXRldmVyIGl0IGlzIEkgbmVlZCBkb25lLgogKgogKiBLZWVwIGluIG1pbmQgdGhhdCB0aGUgbW9kdWxlIGludGVyZmFjZSBoYXMgYSBodWdlIG51bWJlciBvZiBob29rcwogKiBhdmFpbGFibGUgdG8gY29udHJvbCBtYW55LCBtYW55IGFzcGVjdHMgb2YgaG93IENNUyBNYWRlIFNpbXBsZSB3b3Jrcy4KICogVGhpcyBtb2R1bGUgZG9lcyBub3QgZXZlbiBiZWdpbiB0byBzY3JhdGNoIHRoZSBzdXJmYWNlLCBleGNlcHQsCiAqIHBlcmhhcHMsIGFzIGFuIGV4YW1wbGUgb2YgYSAicGx1Zy1pbiIgdHlwZSBtb2R1bGUuIFRoZXJlIGFyZQogKiBtYW55IGZ1bmN0aW9uYWwgaG9va3MgZm9yIG1vZGlmeWluZyB1c2VycywgZ3JvdXBzLCBjb250ZW50LCB0ZW1wbGF0ZXMsCiAqIGdsb2JhbCBjb250ZW50IGJsb2Nrcywgb24gaW5zZXJ0aW9uLCBkZWxldGlvbiwgY2hhbmdlLCBhbmQgbXVjaCwgbXVjaCBtb3JlLgogKiBGb3IgdGhlIGRlZmluaXRpdmUgbGlzdCBvZiB0aGVzZSBmdW5jdGlvbnMsIGxvb2sgYXQgdGhlIGJhc2UgY2xhc3M6CiAqIAogKiBDTVNfUk9PVC9saWIvY2xhc3Nlcy9jbGFzcy5tb2R1bGUuaW5jLnBocAogKiAKICogSXQncyBnb29kIHJlYWRpbicsIGFuZCBpdCB0ZWxscyB5b3UgZXZlcnl0aGluZyB5b3UgbmVlZCB0byBrbm93LiBJCiAqIGxlYXJuIHNvbWV0aGluZyBuZXcgZXZlcnkgdGltZSBJIGxvb2sgYXQgaXQuCiAqIAogKiBGdXJ0aGVybW9yZSwgd2hlbiB0aGlzIFNrZWxldG9uIG1vZHVsZSB3YXMgc3RhcnRlZCwgdGhlcmUgd2FzIGEgcGF1Y2l0eQogKiBvZiBkb2N1bWVudGF0aW9uIG9uIHRoZSBDTVMgTWFkZSBTaW1wbGUgc2l0ZS4gVGhpcyBpcyBubyBsb25nZXIgdGhlCiAqIGNhc2UuIEF1dG9tYXRpYyBBUEkgZG9jdW1lbnRhdGlvbiBjYW4gYmUgZm91bmQgYXQKICogaHR0cDovL2Ntc21hZGVzaW1wbGUub3JnL2FwaWRvYy9DTVMvQ01TTW9kdWxlLmh0bWwKICoKICogQWxzbywgYSBjb250aW51b3VzbHkgaW1wcm92aW5nIGRvY3VtZW50YXRpb24gcHJvamVjdCBjYW4gYmUgZm91bmQKICogYXQgaHR0cDovL3dpa2kuY21zbWFkZXNpbXBsZS5vcmcvaW5kZXgucGhwL0NyZWF0aW5nX01vZHVsZXMKICogCiAqIDEuIERpcmVjdG9yeSBTdHJ1Y3R1cmUKICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogKiAKICogVW5kZXJuZWF0aCB0aGlzIGN1cnJlbnQgZGlyZWN0b3J5LCB0aGVyZSBhcmUgImxhbmciIGFuZCAidGVtcGxhdGVzIgogKiBkaXJlY3Rvcmllcy4gVGhlIG1hZ2ljIG9mIHRoZSBDTVMgbW9kdWxlIGludGVyZmFjZSBzeXN0ZW0gaXMgc3VjaAogKiB0aGF0IGZpbGVzIHdpdGhpbiB0aG9zZSBkaXJlY3RvcmllcyBhcmUgYXV0b21hdGljYWxseSBhdmFpbGFibGUgdG8KICogeW91ciBtb2R1bGUsIHBhcnRpY3VsYXJseSB3aGVuIGl0IGNvbWVzIHRvIGxvY2FsaXphdGlvbiBhbmQKICogc21hcnR5IHRlbXBsYXRlcy4KICogCiAqIDIuIExvY2FsaXphdGlvbgogKiAtLS0tLS0tLS0tLS0tLS0KICogCiAqIEluIHRoZSAibGFuZyIgZGlyZWN0b3J5LCB5b3UgY2FuIGNyZWF0ZSB5b3VyIGxhbmd1YWdlIGZpbGVzLgogKiBOb3RlIHRoYXQgdGhlIG5ld2VzdCBzdHJ1Y3R1cmUgaW52b2x2ZXMgYSBkaXJlY3RvcnkgcGVyIGxhbmd1YWdlLAogKiB3aXRoIHRoZSBkZWZhdWx0IGxhbmd1YWdlIGluIHRoZSB0b3AgbGV2ZWwsIHNvLCBmb3IgZXhhbXBsZSwKICogaWYgeW91J3JlIHdyaXRpbmcgdGhlIG1vZHVsZSBpbiBVUyBFbmdsaXNoLCB5b3VyIFVTIEVuZ2xpc2gKICogbGFuZ3VhZ2UgZmlsZXMgd291bGQgYmUgaW4gbGFuZy9lbl9VUy5waHAsIHdoaWxlIHlvdXIKICogU3dlZGlzaCBsYW5ndWFnZSBmaWxlcyB3b3VsZCBiZSBpbiBsYW5nL2V4dC9zdl9TRS5waHAuCiAqIAogKiBSZWFkIG1vcmUgYWJvdXQgbG9jYWxpemF0aW9uIGF0CiAqIGh0dHA6Ly93aWtpLmNtc21hZGVzaW1wbGUub3JnL2luZGV4LnBocC9DcmVhdGluZ19Nb2R1bGVzI0VuYWJsZV90cmFuc2xhdGlvbnNfZnJvbV90aGVfVHJhbnNsYXRpb25fQ2VudGVyCiAqIAogKiBGb3IgZWFjaCBsb2NhbGl6ZWQgd29yZCwgY3JlYXRlIGFuIGVudHJ5IGluIHRoYXQgZmlsZSBvZiB0aGUgZm9ybToKICogCiAqICRsYW5nWyd3b3JkJ10gPSAnTG9jYWxpemVkIFZlcnNpb24gb2YgV29yZCc7CiAqIAogKiBOb3csIHdpdGhpbmcgeW91ciBtb2R1bGUsIGFueSB0aW1lIHlvdSB3YW50IGEgbG9jYWxpemVkIHZlcnNpb24gb2YgdGhlCiAqIHdvcmQsIHlvdSBzaW1wbHkgcmVmZXIgdG86CiAqCiAqICR0aGlzLT5MYW5nKCd3b3JkJykKICogCiAqIFN1YnN0aXR1dGlvbiBpcyBhbHNvIHBvc3NpYmxlIGZvciB5b3VyIGxvY2FsaXplZCBwaHJhc2UuIFNheSB5b3Ugd2FudCB0bwogKiBpbmNsdWRlIGEgbnVtYmVyIGluIGEgc3RyaW5nLiBZb3UgY291bGQgdGhlbiB1c2Ugc3ludGF4IGxpa2U6CiAqIAogKiAkbGFuZ1snbnVtYmVyX3BocmFzZSddID0gJ0xvY2FsaXplZCBWZXJzaW9uIGhhcyAlcyBudW1iZXJzLic7CiAqIAogKiBhbmQgaW4geW91ciBjb2RlLCByZWZlciB0byAKICogCiAqICR0aGlzLT5MYW5nKCdudW1iZXJfcGhyYXNlJywgJG51bWJlcikKICogCiAqIHdoZXJlIHRoZSB2YWx1ZSBvZiB0aGUgdmFyaWFibGUgJG51bWJlciB3aWxsIHJlcGxhY2UgdGhlICVzIGluCiAqIHRoZSBsb2NhbGl6ZWQgc3RyaW5nLgogKiAKICogMy4gVGVtcGxhdGVzCiAqIC0tLS0tLS0tLS0tLQogKiAKICogU21hcnR5IGlzIGJ1aWx0LWluIHRvIHRoZSBtb2R1bGUgQVBJLiBUZW1wbGF0ZXMgYXJlIGFzc3VtZWQgdG8gYmUgaW4gdGhlCiAqICJ0ZW1wbGF0ZXMiIGRpcmVjdG9yeSBvZiB0aGUgbW9kdWxlLiBTZWUgdGhlIERpc3BsYXlBZG1pblByZWZzIG1ldGhvZAogKiBiZWxvdyAob3IgdGhlIGZpbGUgbWV0aG9kLmFkbWluX3ByZWZzLnBocCkuCiAqIAogKiBOb3dhZGF5cyBpdHMgYmV0dGVyIHRvIGNyZWF0ZSB0ZW1wbGF0ZXMgaW4gdGhlIGRhdGFiYXNlIHNvIHlvdSBjYW4gZ2l2ZQogKiB1c2VycyB0aGUgYWJpbGl0eSB0byBtb2RpZnkgdGVtcGxhdGVzIGFzIHRoZXkgd2lzaC4gVGFrZSBhIGxvb2sgYXQgTmV3cwogKiBtb2R1bGUgdG8gZ2V0IHBpY3R1cmUgb2YgaG93IGl0cyBkb25lLgogKiAKICogNC4gQWRtaW4gSWNvbnMKICogLS0tLS0tLS0tLS0tLS0KICogCiAqIElmIHlvdXIgbW9kdWxlIGhhcyBhbiBBZG1pbiBwYW5lbCwgYW5kIHlvdSdkIGxpa2UgdG8gZ2l2ZSBpdCBhIGN1c3RvbQogKiBpY29uLCBzaW1wbHkgY3JlYXRlIGEgZGlyZWN0b3J5IGNhbGxlZCAiaW1hZ2VzIiBhbmQgcGxhY2UgeW91ciBpY29uIGluCiAqIHRoYXQgZGlyZWN0b3J5IHdpdGggdGhlIG5hbWUgImljb24uZ2lmIiBUaGlzIGlzIG9ubHkgZ3VhcmFudGVlZCB0byB3b3JrCiAqIHdpdGggdGhlIGRlZmF1bHQgYWRtaW4gdGhlbWUuCiAqIAogKiA1LiBTZXBhcmF0aW9uIG9mIEZpbGVzCiAqIC0tLS0tLS0tLS0tLS0tCiAqIAogKiBXaXRoIHRoZSByZWxlYXNlIG9mIENNUyBNYWRlIFNpbXBsZSAwLjEyIG9yIHRoZXJlYWJvdXRzLCBpdCBiZWNhbWUKICogcG9zc2libGUgdG8gc3BsaXQgYSBsb3Qgb2YgdGhlIG1vZHVsZSBmdW5jdGlvbmFsaXR5IGludG8gc2VwYXJhdGUgZmlsZXMsIHJhdGhlcgogKiB0aGFuIHJlcXVpcmluZyBhbGwgb2YgdGhlIG1vZHVsZSB0byBiZSBpbXBsZW1lbnRlZCBpbiBvbmUgYmlnIG1vbm9saXRoaWMKICogY2h1bmsuIFRoaXMgcmVkdWNlcyB0aGUgb3ZlcmFsbCBtZW1vcnkgZm9vdHByaW50IG9mIHRoZSBtb2R1bGUsIHdoaWNoCiAqIGJlY29tZXMgaW1wb3J0YW50IGZvciBodWdlIG1vZHVsZXMuCiAqIAogKiBUaGlzIGlzIGRlc2NyaWJlZCBpbiBtb3JlIGRldGFpbCBiZWxvdyBpbiB0aGUgU2VwYXJhYmxlIE1ldGhvZHMgY29tbWVudAogKiBhcyB3ZWxsIGFzIHRoZSBjb21tZW50IGZvciB0aGUgRG9BY3Rpb24uCiAqIAogKiBOb3RlIHRoYXQgeW91IGRvIG5vdCBoYXZlIHRvIHNwbGl0IHlvdXIgbW9kdWxlIGludG8gbXVsdGlwbGUgZmlsZXMuIEl0J3MKICogeW91ciBjaG9pY2UhIElmIHlvdXIgbW9kdWxlIGlzIHNtYWxsLCBpdCdzIHByb2JhYmx5IG5vdCBuZWNlc3NhcnkuIFRoZW4gYWdhaW4sCiAqIGdvb2QgY29kaW5nIChmb3IgYSBub25jb21waWxlZCBsYW5ndWFnZSwgYW55d2F5KSBzdWdnZXN0cyB0aGF0IHlvdSBkb24ndAogKiBpbmNsdWRlIGEgYnVuY2ggb2YgZXh0cmFuZW91cyBjb2RlIGVhY2ggdGltZSB5b3VyIG1vZHVsZSBsb2Fkcy4gSW4gdGhlCiAqIGVuZCwgaXQncyB5b3VyIGNhbGwuCiAqIAogKiA2LiBFdmVudHMgLyBFdmVudCBIb29rcwogKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogKiAKICogVGhpcyBpcyBhbiBleGNpdGluZyBuZXcgZmVhdHVyZSB0aGF0J3MgYmVlbiBhZGRlZCB0byB0aGUgQ01TIE1hZGUgU2ltcGxlCiAqIGNvcmUuIEl0IGFsbG93cyBtb2R1bGVzIHRvIGNyZWF0IGV2ZW50cywgaXNzdWUgZXZlbnRzLCBhbmQgc3Vic2NyaWJlIHRvCiAqIGV2ZW50cy4gV2hhdCB0aGlzIGRvZXMgaXMgZW5hYmxlIGFuIHVucHJlY2VkZW50ZWQgZGVncmVlIG9mIGZsZXhpYmlsaXR5CiAqIGFuZCBpbnRlcmFjdGlvbiBiZXR3ZWVuIG1vZHVsZXMuIFlvdSdsbCBzZWUgZWxlbWVudHMgb2YgdGhpcyBzcHJpbmtsZWQKICogdGhyb3VnaG91dCB0aGlzIGZpbGUuCiAqIAogKiA3LiBJbnB1dCBwYXJhbWV0ZXIgc2FuaXRhemluZwogKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogKiAKICogU3RhcnRpbmcgZnJvbSAxLjEgdmVyc2lvbiBvZiBjbXNtcyBtb2R1bGUgZGV2ZWxvcGVycyBhcmUgdXJnZWQgdG8gdGFrZSBjbG9zZXIKICogbG9vayBvZiB3aGF0IHBhcmFtZXRlcnMgdGhlaXIgbW9kdWxlIGFjY2VwdHMgYW5kIGhvdyB0aGV5IGFyZSBzYW5pdGF6ZWQuCiAqIAogKiBGZXcgbmV3IGFwaSBmdW5jdGlvbnMgYXJlIGludHJvZHVjZWQsIGFsbCBwYXJhbWV0ZXJzIHNob3VsZCBiZSBtYXBwZWQgZm9yCiAqIGV2ZXJ5dGhpbmcgdG8gd29yayBzbW9vdGhseS4gVXNlICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdwYXJhbW5hbWUnLFRZUEUpOyAKICogdG8gY2xlYW4geW91ciBpbnB1dCBwYXJhbWV0ZXJzIChwb3NzaWJsZSB0eXBlcyBhcmUgQ0xFQU5fSU5ULCBDTEVBTl9TVFJJTkcsCiAqIENMRUFOX0ZMT0FULCBDTEVBTl9TVFJJTkcpCiAqLwoKCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBTa2VsZXRvbiAtIGEgcGVkYW50aWMgInN0YXJ0aW5nIHBvaW50IiBtb2R1bGUKIyBWZXJzaW9uOiAxLjQsIFNqRwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9za2VsZXRvbi8KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLyoqCiAqIFlvdXIgaW5pdGlhbCBDbGFzcyBkZWNsYXJhdGlvbi4gVGhpcyBmaWxlJ3MgbmFtZSBtdXN0CiAqIGJlICJbY2xhc3MncyBuYW1lXS5tb2R1bGUucGhwIiwgb3IsIGluIHRoaXMgY2FzZSwKICogU2tlbGV0b24ubW9kdWxlLnBocAogKi8gCgoKLyoqCiAqIFNrZWxldG9uIGV4YW1wbGUgY2xhc3MKICoKICogQGF1dGhvciBZb3VyIE5hbWUKICogQHNpbmNlIDEuMAogKiBAdmVyc2lvbiAkUmV2aXNpb246IDM4MjcgJAogKiBAbW9kaWZpZWRieSAkTGFzdENoYW5nZWRCeTogd2lzaHkgJAogKiBAbGFzdG1vZGlmaWVkICREYXRlOiAyMDA3LTAzLTEyIDExOjU2OjE2ICswMjAwIChNb24sIDEyIE1hciAyMDA3KSAkCiAqIEBsaWNlbnNlIEdQTAogKiovCmNsYXNzIFNrZWxldG9uIGV4dGVuZHMgQ01TTW9kdWxlCnsKICAKICAvKioKICAgKiBHZXROYW1lKCkKICAgKiBtdXN0IHJldHVybiB0aGUgZXhhY3QgY2xhc3MgbmFtZSBvZiB0aGUgbW9kdWxlLgogICAqIElmIHRoZXNlIGRvIG5vdCBtYXRjaCwgYmFkIHRoaW5ncyBoYXBwZW4uCiAgICoKICAgKiBUaGlzIGlzIHRoZSBuYW1lIHRoYXQncyBzaG93biBpbiB0aGUgbWFpbiBNb2R1bGVzCiAgICogcGFnZSBpbiB0aGUgQWRtaW4uCiAgICoKICAgKiBJZiB5b3Ugd2FudCB0byBiZSBzYWZlLCB5b3UgY2FuIGp1c3QgcmVwbGFjZSB0aGUgYm9keQogICAqIG9mIHRoaXMgZnVuY3Rpb24gd2l0aDoKICAgKiByZXR1cm4gZ2V0X2NsYXNzKCR0aGlzKTsgCiAgICogQHJldHVybiBzdHJpbmcgY2xhc3MgbmFtZQogICAqLwogIGZ1bmN0aW9uIEdldE5hbWUoKQogIHsKICAgIHJldHVybiAnU2tlbGV0b24nOwogIH0KICAKICAvKioKICAgKiBHZXRGcmllbmRseU5hbWUoKQogICAqIFRoaXMgY2FuIHJldHVybiBhbnkgc3RyaW5nLCBwcmVmZXJhYmx5IGEgbG9jYWxpemVkIG5hbWUKICAgKiBvZiB0aGUgbW9kdWxlLiBUaGlzIGlzIHRoZSBuYW1lIHRoYXQncyBzaG93biBpbiB0aGUKICAgKiBBZG1pbiBNZW51cyBhbmQgc2VjdGlvbiBwYWdlcyAoaWYgdGhlIG1vZHVsZSBoYXMgYW4gYWRtaW4KICAgKiBjb21wb25lbnQpLgogICAqICAgCiAgICogU2VlIHRoZSBub3RlIG9uIGxvY2FsaXphdGlvbiBhdCB0aGUgdG9wIG9mIHRoaXMgZmlsZS4KICAgKiBAcmV0dXJuIHN0cmluZyBGcmllbmRseSBuYW1lIGZvciB0aGUgbW9kdWxlCiAgICovCiAgZnVuY3Rpb24gR2V0RnJpZW5kbHlOYW1lKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ2ZyaWVuZGx5bmFtZScpOwogIH0KCiAgCiAgLyoqCiAgICogR2V0VmVyc2lvbigpCiAgICogVGhpcyBjYW4gcmV0dXJuIGFueSBzdHJpbmcsIHByZWZlcmFibHkgYSBudW1iZXIgb3IKICAgKiBzb21ldGhpbmcgdGhhdCBtYWtlcyBzZW5zZSBmb3IgZGVzaWduYXRpbmcgYSB2ZXJzaW9uLgogICAqIFRoZSBDTVMgd2lsbCB1c2UgdGhpcyB0byBpZGVudGlmeSB3aGV0aGVyIG9yIG5vdAogICAqIHRoZSBpbnN0YWxsZWQgdmVyc2lvbiBvZiB0aGUgbW9kdWxlIGlzIGN1cnJlbnQsIGFuZAogICAqIHRoZSBtb2R1bGUgd2lsbCB1c2UgaXQgdG8gZmlndXJlIG91dCBob3cgdG8gdXBncmFkZQogICAqIGl0c2VsZiBpZiByZXF1ZXN0ZWQuCSAgIAogICAqIEByZXR1cm4gc3RyaW5nIHZlcnNpb24gbnVtYmVyIChjYW4gYmUgc29tZXRoaW5nIGxpa2UgMS40cmMxKQogICAqLwogIGZ1bmN0aW9uIEdldFZlcnNpb24oKQogIHsKICAgIHJldHVybiAnMS42JzsKICB9CiAgCiAgLyoqCiAgICogR2V0SGVscCgpCiAgICogVGhpcyByZXR1cm5zIEhUTUwgaW5mb3JtYXRpb24gb24gdGhlIG1vZHVsZS4KICAgKiBUeXBpY2FsbHksIHlvdSdsbCB3YW50IHRvIGluY2x1ZGUgaW5mb3JtYXRpb24gb24gaG93IHRvCiAgICogdXNlIHRoZSBtb2R1bGUuCiAgICoKICAgKiBTZWUgdGhlIG5vdGUgb24gbG9jYWxpemF0aW9uIGF0IHRoZSB0b3Agb2YgdGhpcyBmaWxlLgogICAqIEByZXR1cm4gc3RyaW5nIEhlbHAgZm9yIHRoaXMgbW9kdWxlCiAgICovCiAgZnVuY3Rpb24gR2V0SGVscCgpCiAgewogICAgcmV0dXJuICR0aGlzLT5MYW5nKCdoZWxwJyk7CiAgfQogIAogIC8qKgogICAqIEdldEF1dGhvcigpCiAgICogVGhpcyByZXR1cm5zIGEgc3RyaW5nIHRoYXQgaXMgcHJlc2VudGVkIGluIHRoZSBNb2R1bGUKICAgKiBBZG1pbiBpZiB5b3UgY2xpY2sgb24gdGhlICJBYm91dCIgbGluay4KICAgKiBAcmV0dXJuIHN0cmluZyBBdXRob3IgbmFtZQogICAqLwogIGZ1bmN0aW9uIEdldEF1dGhvcigpCiAgewogICAgcmV0dXJuICdTakcnOwogIH0KCiAgLyoqCiAgICogR2V0QXV0aG9yRW1haWwoKQogICAqIFRoaXMgcmV0dXJucyBhIHN0cmluZyB0aGF0IGlzIHByZXNlbnRlZCBpbiB0aGUgTW9kdWxlCiAgICogQWRtaW4gaWYgeW91IGNsaWNrIG9uIHRoZSAiQWJvdXQiIGxpbmsuIEl0IGhlbHBzIHVzZXJzCiAgICogb2YgeW91ciBtb2R1bGUgZ2V0IGluIHRvdWNoIHdpdGggeW91IHRvIHNlbmQgYnVnIHJlcG9ydHMsCiAgICogcXVlc3Rpb25zLCBjYXNlcyBvZiBiZWVyLCBhbmQvb3IgbGFyZ2Ugc3VtcyBvZiBtb25leS4KICAgKiBAcmV0dXJuIHN0cmluZyBBdXRob3JzIGVtYWlsCiAgICovCiAgZnVuY3Rpb24gR2V0QXV0aG9yRW1haWwoKQogIHsKICAgIHJldHVybiAnc2pnQGNtc21vZHVsZXMuY29tJzsKICB9CiAgCiAgLyoqCiAgICogR2V0Q2hhbmdlTG9nKCkKICAgKiBUaGlzIHJldHVybnMgYSBzdHJpbmcgdGhhdCBpcyBwcmVzZW50ZWQgaW4gdGhlIG1vZHVsZQogICAqIEFkbWluIGlmIHlvdSBjbGljayBvbiB0aGUgQWJvdXQgbGluay4gSXQgaGVscHMgdXNlcnMKICAgKiBmaWd1cmUgb3V0IHdoYXQncyBjaGFuZ2VkIGJldHdlZW4gcmVsZWFzZXMuCiAgICogU2VlIHRoZSBub3RlIG9uIGxvY2FsaXphdGlvbiBhdCB0aGUgdG9wIG9mIHRoaXMgZmlsZS4KICAgKiBAcmV0dXJuIHN0cmluZyBDaGFuZ2VMb2cgZm9yIHRoaXMgbW9kdWxlCiAgICovCiAgZnVuY3Rpb24gR2V0Q2hhbmdlTG9nKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ2NoYW5nZWxvZycpOwogIH0KICAKICAvKioKICAgKiBJc1BsdWdpbk1vZHVsZSgpCiAgICogVGhpcyBmdW5jdGlvbiByZXR1cm5zIHRydWUgb3IgZmFsc2UsIGRlcGVuZGluZyB1cG9uCiAgICogd2hldGhlciB1c2VycyBjYW4gaW5jbHVkZSB0aGUgbW9kdWxlIGluIGEgcGFnZSBvcgogICAqIHRlbXBsYXRlIHVzaW5nIGEgc21hcnR5IHRhZyBvZiB0aGUgZm9ybQogICAqIHtjbXNfbW9kdWxlIG1vZHVsZT0nU2tlbGV0b24nIHBhcmFtMT12YWwgcGFyYW0yPXZhbC4uLn0KICAgKiAKICAgKiBJZiB5b3VyIG1vZHVsZSBkb2VzIG5vdCBnZXQgaW5jbHVkZWQgaW4gcGFnZXMgb3IKICAgKiB0ZW1wbGF0ZXMsIHJldHVybiAiZmFsc2UiIGhlcmUuCiAgICogQHJldHVybiBib29sIFRydWUgaWYgdGhpcyBtb2R1bGUgY2FuIGJlIGluY2x1ZGVkIGluIHBhZ2UgYW5kIG9yIHRlbXBsYXRlCiAgICovCiAgZnVuY3Rpb24gSXNQbHVnaW5Nb2R1bGUoKQogIHsKICAgIHJldHVybiB0cnVlOwogIH0KCiAgLyoqCiAgICogSGFzQWRtaW4oKQogICAqIFRoaXMgZnVuY3Rpb24gcmV0dXJucyBhIGJvb2xlYW4gdmFsdWUsIGRlcGVuZGluZyBvbgogICAqIHdoZXRoZXIgeW91ciBtb2R1bGUgYWRkcyBhbnl0aGluZyB0byB0aGUgQWRtaW4gYXJlYSBvZgogICAqIHRoZSBzaXRlLiBGb3IgdGhlIHJlc3Qgb2YgdGhlc2UgY29tbWVudHMsIEknbGwgYmUgY2FsbGluZwogICAqIHRoZSBhZG1pbiBwYXJ0IG9mIHlvdXIgbW9kdWxlIHRoZSAiQWRtaW4gUGFuZWwiIGZvcgogICAqIHdhbnQgb2YgYSBiZXR0ZXIgdGVybS4KICAgKiBAcmV0dXJuIGJvb2wgVHJ1ZSBpZiB0aGlzIG1vZHVsZSBoYXMgYWRtaW4gYXJlYQogICAqLwogIGZ1bmN0aW9uIEhhc0FkbWluKCkKICB7CiAgICByZXR1cm4gdHJ1ZTsKICB9CgogIC8qKgogICAqIEdldEFkbWluU2VjdGlvbigpCiAgICogSWYgeW91ciBtb2R1bGUgaGFzIGFuIEFkbWluIFBhbmVsLCB5b3UgY2FuIHNwZWNpZnkKICAgKiB3aGljaCBBZG1pbiBTZWN0aW9uIChvciB0b3AtbGV2ZWwgQWRtaW4gTWVudSkgaXQgc2hvd3MKICAgKiB1cCBpbi4gVGhpcyBtZXRob2QgcmV0dXJucyBhIHN0cmluZyB0byBzcGVjaWZ5IHRoYXQKICAgKiBzZWN0aW9uLiBWYWxpZCByZXR1cm4gdmFsdWVzIGFyZToKICAgKiAKICAgKiBtYWluICAgICAgICAtIHRoZSBNYWluIG1lbnUgdGFiLgogICAqIGNvbnRlbnQgICAgIC0gdGhlIENvbnRlbnQgbWVudQogICAqIGxheW91dCAgICAgIC0gdGhlIExheW91dCBtZW51CiAgICogdXNlcnNncm91cHMgLSB0aGUgVXNlcnMgYW5kIEdyb3VwcyBtZW51CiAgICogZXh0ZW5zaW9ucyAgLSB0aGUgRXh0ZW5zaW9ucyBtZW51ICh0aGlzIGlzIHRoZSBkZWZhdWx0KQogICAqIHNpdGVhZG1pbiAgIC0gdGhlIFNpdGUgQWRtaW4gbWVudQogICAqIHZpZXdzaXRlICAgIC0gdGhlIFZpZXcgU2l0ZSBtZW51IHRhYgogICAqIGxvZ291dCAgICAgIC0gdGhlIExvZ291dCBtZW51IHRhYgogICAqCiAgICogTm90ZSB0aGF0IGlmIHlvdSBwbGFjZSB5b3VyIG1vZHVsZSBpbiB0aGUgbWFpbiwKICAgKiB2aWV3c2l0ZSwgb3IgbG9nb3V0IHNlY3Rpb25zLCBpdCB3aWxsIHNob3cgdXAgaW4gdGhlCiAgICogbWVudXMsIGJ1dCB3aWxsIG5vdCBiZSB2aXNpYmxlIGluIGFueSB0b3AtbGV2ZWwKICAgKiBzZWN0aW9uIHBhZ2VzLgogICAqIEByZXR1cm4gc3RyaW5nIFdoaWNoIGFkbWluIHNlY3Rpb24gdGhpcyBtb2R1bGUgYmVsb25ncyB0bwogICAqLwogIGZ1bmN0aW9uIEdldEFkbWluU2VjdGlvbigpCiAgewogICAgcmV0dXJuICdleHRlbnNpb25zJzsKICB9CgogIC8qKgogICAqIEdldEFkbWluRGVzY3JpcHRpb24oKQogICAqIElmIHlvdXIgbW9kdWxlIGRvZXMgaGF2ZSBhbiBBZG1pbiBQYW5lbCwgeW91CiAgICogY2FuIGhhdmUgaXQgcmV0dXJuIGEgZGVzY3JpcHRpb24gc3RyaW5nIHRoYXQgZ2V0cyBzaG93bgogICAqIGluIHRoZSBBZG1pbiBTZWN0aW9uIHBhZ2UgdGhhdCBjb250YWlucyB0aGUgbW9kdWxlLgogICAqCiAgICogU2VlIHRoZSBub3RlIG9uIGxvY2FsaXphdGlvbiBhdCB0aGUgdG9wIG9mIHRoaXMgZmlsZS4KICAgKiBAcmV0dXJuIHN0cmluZyBNb2R1bGUgZGVzY3JpcHRpb24KICAgKi8KICBmdW5jdGlvbiBHZXRBZG1pbkRlc2NyaXB0aW9uKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ21vZGRlc2NyaXB0aW9uJyk7CiAgfQoKICAvKioKICAgKiBWaXNpYmxlVG9BZG1pblVzZXIoKQogICAqIElmIHlvdXIgbW9kdWxlIGRvZXMgaGF2ZSBhbiBBZG1pbiBQYW5lbCwgeW91CiAgICogY2FuIGNvbnRyb2wgd2hldGhlciBvciBub3QgaXQncyBkaXNwbGF5ZWQgYnkgdGhlIGJvb2xlYW4KICAgKiB0aGF0IGlzIHJldHVybmVkIGJ5IHRoaXMgbWV0aG9kLiBUaGlzIGlzIHByaW1hcmlseSB1c2VkCiAgICogdG8gaGlkZSBtb2R1bGVzIGZyb20gYWRtaW5zIHdobyBsYWNrIHBlcm1pc3Npb24gdG8gdXNlCiAgICogdGhlbS4KICAgKiBJbiB0aGlzIGNhc2UsIHRoZSBtb2R1bGUgd2lsbCBvbmx5IGJlIHZpc2libGUgdG8gYWRtaW5zCiAgICogd2hvIGhhdmUgIlVzZSBTa2VsZXRvbiIgcGVybWlzc2lvbnMuCiAgICogQHJldHVybiBib29sIFRydWUgaWYgdGhpcyBtb2R1bGUgaXMgc2hvd24gdG8gY3VycmVudCB1c2VyCiAgICovCiAgZnVuY3Rpb24gVmlzaWJsZVRvQWRtaW5Vc2VyKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPkNoZWNrUGVybWlzc2lvbignVXNlIFNrZWxldG9uJyk7CiAgfQogIAogIC8qKgogICAqIEdldERlcGVuZGVuY2llcygpCiAgICogWW91ciBtb2R1bGUgbWF5IG5lZWQgYW5vdGhlciBtb2R1bGUgdG8gYWxyZWFkeSBiZSBpbnN0YWxsZWQKICAgKiBiZWZvcmUgeW91IGNhbiBpbnN0YWxsIGl0LgogICAqIFRoaXMgbWV0aG9kIHJldHVybnMgYSBsaXN0IG9mIHRob3NlIGRlcGVuZGVuY2llcyBhbmQKICAgKiBtaW5pbXVtIHZlcnNpb24gbnVtYmVycyB0aGF0IHRoaXMgbW9kdWxlIHJlcXVpcmVzLgogICAqCiAgICogSXQgc2hvdWxkIHJldHVybiBhbiBoYXNoLCBlZy4KICAgKiByZXR1cm4gYXJyYXkoJ3NvbWVtb2R1bGUnPT4nMS4wJywgJ290aGVybW9kdWxlJz0+JzEuMScpOwogICAqIEByZXR1cm4gaGFzaCBIYXNoIG9mIG90aGVyIG1vZHVsZXMgdGhpcyBtb2R1bGUgZGVwZW5kcyBvbgogICAqLwogIGZ1bmN0aW9uIEdldERlcGVuZGVuY2llcygpCiAgewogICAgcmV0dXJuIGFycmF5KCk7CiAgfQoKICAvKioKICAgKiBNaW5pbXVtQ01TVmVyc2lvbigpCiAgICogWW91ciBtb2R1bGUgbWF5IHJlcXVpcmUgZnVuY3Rpb25zIG9yIG9iamVjdHMgZnJvbQogICAqIGEgc3BlY2lmaWMgdmVyc2lvbiBvZiBDTVMgTWFkZSBTaW1wbGUuCiAgICogRXZlciBzaW5jZSB2ZXJzaW9uIDAuMTEsIHlvdSBjYW4gc3BlY2lmeSB3aGljaCBtaW5pbXVtCiAgICogQ01TIE1TIHZlcnNpb24gaXMgcmVxdWlyZWQgZm9yIHlvdXIgbW9kdWxlLCB3aGljaCB3aWxsCiAgICogcHJldmVudCBpdCBmcm9tIGJlaW5nIGluc3RhbGxlZCBieSBhIHZlcnNpb24gb2YgQ01TIHRoYXQKICAgKiBjYW4ndCBydW4gaXQuCiAgICogCiAgICogVGhpcyBtZXRob2QgcmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRpbmcgdGhlCiAgICogbWluaW11bSB2ZXJzaW9uIHRoYXQgdGhpcyBtb2R1bGUgcmVxdWlyZXMuCiAgICogQHJldHVybiBzdHJpbmcgTWluaW11bSBjbXMgdmVyc2lvbiB0aGlzIG1vZHVsZSBzaG91bGQgd29yayBvbgogICAqLwogIGZ1bmN0aW9uIE1pbmltdW1DTVNWZXJzaW9uKCkKICB7CiAgICByZXR1cm4gIjEuMCI7CiAgfQogIAogIC8qKgogICAqIE1heGltdW1DTVNWZXJzaW9uKCkKICAgKiBZb3UgbWF5IHdhbnQgdG8gcHJldmVudCBwZW9wbGUgZnJvbSB1c2luZyB5b3VyIG1vZHVsZSBpbgogICAqIGZ1dHVyZSB2ZXJzaW9ucyBvZiBDTVMgTWFkZSBTaW1wbGUsIGVzcGVjaWFsbHkgaWYgeW91CiAgICogdGhpbmsgQVBJIGZlYXR1cmVzIHlvdSB1c2UgbWF5IGNoYW5nZSAtLSBhZnRlciBhbGwsIHlvdQogICAqIG5ldmVyIHJlYWxseSBrbm93IGhvdyB0aGUgQ01TIE1TIEFQSSBjb3VsZCBldm9sdmUuCiAgICogCiAgICogU28sIHRvIHByZXZlbnQgcGVvcGxlIGZyb20gZmxvb2RpbmcgeW91IHdpdGggYnVnIHJlcG9ydHMKICAgKiB3aGVuIGEgbmV3IHZlcnNpb24gb2YgQ01TIE1TIGlzIHJlbGVhc2VkLCB5b3UgY2FuIHNpbXBseQogICAqIHJlc3RyaWN0IHRoZSB2ZXJzaW9uLiBUaGVuLCBvZiBjb3Vyc2UsIHRoZSBvbnVzIGlzIG9uIHlvdQogICAqIHRvIHJlbGVhc2UgYSBuZXcgdmVyc2lvbiBvZiB5b3VyIG1vZHVsZSB3aGVuIGEgbmV3IHZlcnNpb24KICAgKiBvZiB0aGUgQ01TIGlzIHJlbGVhc2VkLi4uCiAgICogCiAgICogVGhpcyBtZXRob2QgcmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRpbmcgdGhlCiAgICogbWF4aW11bSB2ZXJzaW9uIHRoYXQgdGhpcyBtb2R1bGUgc3VwcG9ydHMuCiAgICoKICAgKiBJdCBjYW4gYWxzbyBiZSBhIG1ham9yIHBhaW4gaWYgeW91IGRvbid0IGhhdmUgdGltZSB0bwogICAqIHVwZGF0ZSB5b3VyIG1vZHVsZXMgZXZlcnkgdGltZSBhIG5ldyByZWxlYXNlIG9mIENNU01TIGNvbWVzCiAgICogb3V0LCBoZW5jZSB0aGlzIGlzIGNvbW1lbnRlZCBvdXQgaGVyZS4KICAgKi8KICAKICAvKgogIGZ1bmN0aW9uIE1heGltdW1DTVNWZXJzaW9uKCkKICB7CiAgICByZXR1cm4gIjEuNSI7CiAgfQogICovCgogIC8qKgogICAqIFNldFBhcmFtZXRlcnMoKQogICAqIFRoaXMgZnVuY3Rpb24gZW5hYmxlcyB5b3UgdG8gCiAgICogMSkgY3JlYXRlIG1hcHBpbmdzIGZvciB5b3VyIG1vZHVsZSB3aGVuIHVzaW5nICJQcmV0dHkgVXJscyIuCiAgICogMikgaW1wb3NlIHNlY3VyaXR5IGJ5IGNvbnRyb2xsaW5nIGluY29taW5nIHBhcmFtZXRlcnMKICAgKgogICAqIFByZXR0eSBVUkxTOgogICAqIFR5cGljYWxseSwgbW9kdWxlcyBjcmVhdGUgaW50ZXJuYWwgbGlua3MgdGhhdCBoYXZlCiAgICogYmlnIHVnbHkgc3RyaW5ncyBhbG9uZyB0aGUgbGluZXMgb2Y6CiAgICogaW5kZXgucGhwP21hY3Q9TW9kTmFtZSxjbnRudDAxLGFjdGlvbk5hbWUsMCZjbnRudDAxcGFyYW0xPTEmY250bnQwMXBhcmFtMj0yJmNudG50MDFyZXR1cm5pZD0zCiAgICoKICAgKiBZb3UgbWlnaHQgcHJlZmVyIHRoZXNlIHRvIGxvb2sgbGlrZToKICAgKiAvTW9kdWxlRnVuY3Rpb24vMi8zCiAgICoKICAgKiBUbyBkbyB0aGlzLCB5b3UgaGF2ZSB0byByZWdpc3RlciByb3V0ZXMgYW5kIG1hcAogICAqIHlvdXIgcGFyYW1ldGVycyBpbiBhIHdheSB0aGF0IHRoZSBBUEkgd2lsbCBiZSBhYmxlCiAgICogdG8gdW5kZXJzdGFuZC4KICAgKgogICAqIEFsc28gbm90ZSB0aGF0IGFueSBjYWxscyB0byBDcmVhdGVMaW5rIHdpbGwgbmVlZCB0bwogICAqIGJlIHVwZGF0ZWQgdG8gcGFzcyB0aGUgcHJldHR5IHVybCBwYXJhbWV0ZXIuCiAgICoKICAgKiBTZWN1cml0eToKICAgKiBCeSB1c2luZyB0aGUgUmVzdHJpY3RVbmtub3duUGFyYW1zIGZ1bmN0aW9uLCB5b3VyIG1vZHVsZSB3aWxsIG5vdAogICAqIHJlY2VpdmUgYW55IHBhcmFtZXRlcnMgb3RoZXIgdGhhbiB0aGUgb25lcyB5b3UgZGVjbGFyZSBoZXJlLgogICAqIEZ1cnRoZXJtb3JlLCB0aGUgcGFyYW1ldGVycyB5b3VyIG1vZHVsZSBkb2VzIHJlY2VpdmUgd2lsbCBiZSBmaWx0ZXJlZAogICAqIGFjY29yZGluZyB0byB0aGUgcnVsZXMgeW91IHNldCBoZXJlLgogICAqLyAKCiAgZnVuY3Rpb24gU2V0UGFyYW1ldGVycygpCiAgewoKICAkdGhpcy0+UmVzdHJpY3RVbmtub3duUGFyYW1zKCk7CiAgCiAgLy8gc3ludGF4IGZvciBjcmVhdGluZyBhIHBhcmFtZXRlciBpcyBwYXJhbWV0ZXIgbmFtZSwgZGVmYXVsdCB2YWx1ZSwgZGVzY3JpcHRpb24KICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdza2VsZXRvbl9pZCcsIC0xLCAkdGhpcy0+TGFuZygnaGVscF9za2VsZXRvbl9pZCcpKTsKICAvLyBza2VsZXRvbl9pZCBtdXN0IGJlIGFuIGludGVnZXIKICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnc2tlbGV0b25faWQnLENMRUFOX0lOVCk7CgogICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ21vZHVsZV9tZXNzYWdlJywnJywkdGhpcy0+TGFuZygnaGVscF9tb2R1bGVfbWVzc2FnZScpKTsKICAvLyBtb2R1bGVfbWVzc2FnZSBtdXN0IGJlIGEgc3RyaW5nCiAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ21vZHVsZV9tZXNzYWdlJyxDTEVBTl9TVFJJTkcpOwoKICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdkZXNjcmlwdGlvbicsJycsJHRoaXMtPkxhbmcoJ2hlbHBfZGVzY3JpcHRpb24nKSk7CiAgLy8gZGVzY3JpcHRpb24gbXVzdCBiZSBhIHN0cmluZwogICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdkZXNjcmlwdGlvbicsQ0xFQU5fU1RSSU5HKTsKICAgIC8qCiAgICAvLyBGb3Igdmlld2luZyBhIHBpY3R1cmUKICAgICR0aGlzLT5SZWdpc3RlclJvdXRlKCcvc2tlbGV0b25cLyg/UDxudW1lcmljX3BhcmFtX25hbWU+WzAtOV0rKVwvKD9QPHN0cmluZ19wYXJhbV9uYW1lPlthLXpBLVpdKylcLyg/UDxyZXR1cm5pZD5bMC05XSspJC8nLAoJCQkgYXJyYXkoJ2FjdGlvbic9PidkZWZhdWx0JykpOwoKICAgIC8vIG5vdywgYW55IHVybCB0aGF0IGxvb2tzIGxpa2U6CiAgICAvLyAgICAvc2tlbGV0b24vMy9mb28vNQogICAgLy8gd2lsbCBjYWxsIHRoZSBkZWZhdWx0IGFjdGlvbiwgd2l0aDoKICAgIC8vICAgICBwYXJhbXNbJ251bWVyaWNfcGFyYW1fbmFtZSddIHNldCB0byAzCiAgICAvLyAgICAgcGFyYW1zWydzdHJpbmdfcGFyYW1fbmFtZSddIHNldCB0byAiZm9vIgogICAgLy8gICAgYW5kIHJldHVybmlkIHNldCB0byA1CiAgICAqLwoKICB9CgogIC8qKgogICAqIEdldEV2ZW50RGVzY3JpcHRpb24oKQogICAqIElmIHlvdXIgbW9kdWxlIGNhbiBjcmVhdGUgZXZlbnRzLCB5b3Ugd2lsbCBuZWVkCiAgICogdG8gcHJvdmlkZSB0aGUgQVBJIHdpdGggZG9jdW1lbnRhdGlvbiBvZiB3aGF0CiAgICogdGhhdCBldmVudCBkb2VzLiBUaGlzIG1ldGhvZCB3cmFwcyB1cCBhIHNpbXBsZQogICAqIHJldHVybiBvZiB0aGUgbG9jYWxpemVkIGRlc2NyaXB0aW9uLgogICAqIEBwYXJhbSBzdHJpbmcgRXZlbnRuYW1lCiAgICogQHJldHVybiBzdHJpbmcgRGVzY3JpcHRpb24gZm9yIGV2ZW50IAogICAqLwogIGZ1bmN0aW9uIEdldEV2ZW50RGVzY3JpcHRpb24gKCAkZXZlbnRuYW1lICkKICB7CiAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ2V2ZW50X2luZm9fJy4kZXZlbnRuYW1lICk7CiAgfQogIAogIC8qKgogICAqIEdldEV2ZW50SGVscCgpCiAgICogSWYgeW91ciBtb2R1bGUgY2FuIGNyZWF0ZSBldmVudHMsIHlvdSB3aWxsIG5lZWQKICAgKiB0byBwcm92aWRlIHRoZSBBUEkgd2l0aCBkb2N1bWVudGF0aW9uIG9mIGhvdyB0bwogICAqIHVzZSB0aGUgZXZlbnQuIFRoaXMgbWV0aG9kIHdyYXBzIHVwIGEgc2ltcGxlCiAgICogcmV0dXJuIG9mIHRoZSBsb2NhbGl6ZWQgZGVzY3JpcHRpb24uCiAgICogQHBhcmFtIHN0cmluZyBFdmVudG5hbWUKICAgKiBAcmV0dXJuIHN0cmluZyBIZWxwIGZvciBldmVudAogICAqLwogIGZ1bmN0aW9uIEdldEV2ZW50SGVscCAoICRldmVudG5hbWUgKQogIHsKICAgIHJldHVybiAkdGhpcy0+TGFuZygnZXZlbnRfaGVscF8nLiRldmVudG5hbWUgKTsKICB9CgogIC8qKgogICAqIEluc3RhbGxQb3N0TWVzc2FnZSgpCiAgICogQWZ0ZXIgaW5zdGFsbGF0aW9uLCB0aGVyZSBtYXkgYmUgdGhpbmdzIHlvdSB3YW50IHRvCiAgICogY29tbXVuaWNhdGUgdG8geW91ciBhZG1pbi4gVGhpcyBmdW5jdGlvbiByZXR1cm5zIGEKICAgKiBzdHJpbmcgd2hpY2ggd2lsbCBiZSBkaXNwbGF5ZWQuCiAgICogCiAgICogU2VlIHRoZSBub3RlIG9uIGxvY2FsaXphdGlvbiBhdCB0aGUgdG9wIG9mIHRoaXMgZmlsZS4KICAgKiBAcmV0dXJuIHN0cmluZyBNZXNzYWdlIHRvIGJlIHNob3duIGFmdGVyIGluc3RhbGxhdGlvbgogICAqLwogIGZ1bmN0aW9uIEluc3RhbGxQb3N0TWVzc2FnZSgpCiAgewogICAgcmV0dXJuICR0aGlzLT5MYW5nKCdwb3N0aW5zdGFsbCcpOwogIH0KCiAgLyoqCiAgICogVW5pbnN0YWxsUG9zdE1lc3NhZ2UoKQogICAqIEFmdGVyIHJlbW92aW5nIGEgbW9kdWxlLCB0aGVyZSBtYXkgYmUgdGhpbmdzIHlvdSB3YW50IHRvCiAgICogY29tbXVuaWNhdGUgdG8geW91ciBhZG1pbi4gVGhpcyBmdW5jdGlvbiByZXR1cm5zIGEKICAgKiBzdHJpbmcgd2hpY2ggd2lsbCBiZSBkaXNwbGF5ZWQuCiAgICoKICAgKiBTZWUgdGhlIG5vdGUgb24gbG9jYWxpemF0aW9uIGF0IHRoZSB0b3Agb2YgdGhpcyBmaWxlLgogICAqIEByZXR1cm4gc3RyaW5nIE1lc3NhZ2UgdG8gYmUgc2hvd24gYWZ0ZXIgdW5pbnN0YWxsYXRpb24KICAgKi8KICBmdW5jdGlvbiBVbmluc3RhbGxQb3N0TWVzc2FnZSgpCiAgewogICAgcmV0dXJuICR0aGlzLT5MYW5nKCdwb3N0dW5pbnN0YWxsJyk7CiAgfQoKICAvKioKICAgKiBVbmluc3RhbGxQcmVNZXNzYWdlKCkKICAgKiBUaGlzIGFsbG93cyB5b3UgdG8gZGlzcGxheSBhIG1lc3NhZ2UgYWxvbmcgd2l0aCBhIFllcy9ObyBkaWFsb2cgYm94LiBJZiB0aGUgdXNlciByZXNwb25kcwogICAqIGluIHRoZSBhZmZpcm1hdGl2ZSB0byB5b3VyIG1lc3NhZ2UsIHRoZSB1bmluc3RhbGwgd2lsbCBwcm9jZWVkLiBJZiB0aGV5IHJlc3BvbmQgaW4gdGhlCiAgICogbmVnYXRpdmUsIHRoZSB1bmluc3RhbGwgd2lsbCBiZSBjYW5jZWxlZC4gVGh1cywgeW91ciBtZXNzYWdlIHNob3VsZCBiZSBvZiB0aGUgZm9ybQogICAqICJBbGwgbW9kdWxlIGRhdGEgd2lsbCBiZSBkZWxldGVkLiBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gdW5pbnN0YWxsIHRoaXMgbW9kdWxlPyIKICAgKgogICAqIElmIHlvdSBkb24ndCB3YW50IHRoZSBkaWFsb2csIGhhdmUgdGhpcyBtZXRob2QgcmV0dXJuIGEgRkFMU0UsIHdoaWNoIHdpbGwgY2F1c2UgdGhlCiAgICogbW9kdWxlIHRvIHVuaW5zdGFsbCBpbW1lZGlhdGVseSBpZiB0aGUgdXNlciBjbGlja3MgdGhlICJ1bmluc3RhbGwiIGxpbmsuCiAgICogQHJldHVybiBzdHJpbmcgTWVzc2FnZSB0byBiZSBzaG93biBiZWZvcmUgdW5pbnN0YWxsYXRpb24KICAgKi8KICBmdW5jdGlvbiBVbmluc3RhbGxQcmVNZXNzYWdlKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ3JlYWxseV91bmluc3RhbGwnKTsKICB9CiAgCiAgLyoqCiAgICogWW91ciBtZXRob2RzIGhlcmUKICAgKiAKICAgKiBUaGlzIHdvdWxkIGJlIGEgZ29vZCBwbGFjZSB0byBkZWZpbmUgc29tZSBnZW5lcmFsIG1ldGhvZHMgZm9yIHlvdXIgbW9kdWxlCiAgICogCiAgICogSXRzIGEgZ29vZCBwcmFjdGljZSB0byBoYXZlIHVuZGVyc2NvcmUgaW4gZnJvbnQgb2YgeW91ciBvd24gbWV0aG9kcwogICAqLwogIGZ1bmN0aW9uIF9TZXRTdGF0dXMoJG9pZCwgJHN0YXR1cykgewogICAgLy8uLi4KICB9CgogIC8qKgogICAqIERvQWN0aW9uKCRhY3Rpb24sICRpZCwgJHBhcmFtcywgJHJldHVybmlkKQogICAqIFRoaXMgaXMgdGhlIG1haW4gZnVuY3Rpb24gdGhhdCBnZXRzIGNhbGxlZCBpZiB5b3VyIG1vZHVsZQogICAqIGlzIGEgcGx1Zy1pbiB0eXBlIG1vZHVsZS4KICAgKiAKICAgKiBJbiBnZW5lcmFsLCB5b3UnbGwgd2FudCB0byBjYWxsIHZhcmlvdXMgZGlmZmVyZW50CiAgICogbWV0aG9kcywgZGVwZW5kaW5nIHVwb24gdGhlIHJlcXVlc3RlZCAiYWN0aW9uLiIKICAgKiAgIAogICAqIFRoZXJlIGFyZSB0d28gYnVpbHQtaW4gYWN0aW9uczogImRlZmF1bHQiIHdoaWNoIGdldHMKICAgKiBjYWxsZWQgaWYgdGhlIG1vZHVsZSBpcyBhY2Nlc3NlZCBmcm9tIGEgcGFnZSBvciB0ZW1wbGF0ZSwKICAgKiBhbmQgImRlZmF1bHRhZG1pbiIgd2hpY2ggZ2V0cyBjYWxsZWQgZnJvbSB0aGUgQWRtaW4KICAgKiBwYW5lbC4KICAgKiAgIAogICAqIFRoZSBBY3Rpb24gY2FuIGJlIG92ZXJyaWRkZW4gYnkgcGFzc2luZyBhIGRpZmZlcmVudAogICAqIGFjdGlvbiBlaXRoZXIgaW4geW91ciB0YWcsIGUuZy4sCiAgICoge2Ntc19tb2R1bGUgbW9kdWxlPSdTa2VsZXRvbicgYWN0aW9uPSdzb21ldGhpbmcnfQogICAqIG9yIGJ5IHBhc3NpbmcgaXQgaW4gYSBsaW5rIGNyZWF0ZSBieSB0aGUgQ3JlYXRlTGluawogICAqIG1ldGhvZC4gCiAgICoKICAgKiBTaW1pbGFyIHRvIHRoZSBTZXBhcmFibGUgTWV0aG9kcyBkZXNjcmliZWQgYWJvdmUsCiAgICogeW91IGNhbiBhY3R1YWxseSByZW1vdmUgYWxsIG9mIHRoZSBhY3Rpb25zIGludG8gc2VwYXJhdGUKICAgKiBmaWxlcyBhcyB3ZWxsLiBXaGVuIHRoZSBtb2R1bGUgQVBJIGNhbGxzIHlvdXIgbW9kdWxlCiAgICogd2l0aCBhbiBhY3Rpb24sIGl0IGNoZWNrcyBmaXJzdCB0byBzZWUgaWYgdGhlIERvQWN0aW9uIG1ldGhvZAogICAqIGV4aXN0cy4gSWYgaXQgZG9lcywgaXQgZ2V0cyB1c2VkIG5vcm1hbGx5LiBJZiBpdCBkb2Vzbid0IGV4aXN0cywKICAgKiB0aGUgZmlsZSBjb3JyZXNwb25kaW5nIHRvIHRoYXQgbWV0aG9kIGdldHMgbG9hZGVkIGFuZCBjYWxsZWQuCiAgICogCiAgICogRm9yIGV4YW1wbGUsIHRoZSBkZWZhdWx0IG1ldGhvZCB3b3VsZCBlaXRoZXIgYmUgYWNjZXNzZWQKICAgKiB2aWEgdGhlIERvQWN0aW9uIG1ldGhvZCBiZWluZyBjYWxsZWQgd2l0aCBhbiBhY3Rpb24gb2YgJ2RlZmF1bHQnLCBvciwKICAgKiBpZiBubyBEb0FjdGlvbiBtZXRob2QgZXhpc3RzIGluIHRoZSBtb2R1bGUsIHRoZSBBUEkgd291bGQKICAgKiBleGVjdXRlIHRoZSBmaWxlIG5hbWVkICJhY3Rpb24uZGVmYXVsdC5waHAiIGluIHRoaXMgbW9kdWxlCiAgICogZGlyZWN0b3J5LgogICAqIAogICAqIEFzIHdpdGggdGhlIG90aGVyIFNlcGFyYWJsZSBNZXRob2RzIGFib3ZlLCBJJ20gbGVhdmluZwogICAqIHRoZSBtZXRob2RzIGluIHRoaXMgbWFpbiBmaWxlLCBidXQgY29tbWVudGluZyB0aGVtIG91dCwKICAgKiBhbmQgZG9pbmcgdGhlIGltcGxlbWVudGF0aW9uIGluIHRoZSBzZXBhcmF0ZSBmaWxlcy4KICAgKiAKICAgKiBZb3UgY2FuIGltcGxlbWVudCB5b3VyIG1vZHVsZSBlaXRoZXIgd2F5LCAKICAgKi8KICAvKiogCiAgICogY29tbWVudGVkIG91dCwgYWxsIG5lZWRlZCBhY3Rpb25zIGFyZSBkZWZpbmVkIGluIHNlcGVyYXRlCiAgICogZmlsZXMKICBmdW5jdGlvbiBEb0FjdGlvbigkYWN0aW9uLCAkaWQsICRwYXJhbXMsICRyZXR1cm5pZD0tMSkKICB7CiAgICBzd2l0Y2ggKCRhY3Rpb24pIHsKICAgIGNhc2UgJ2RlZmF1bHQnOgogICAgICB7CgkvLyB0aGlzIGlzIHRoZSBwbHVnLWluIHNpZGUsIGkuZS4sIG5vbi1BZG1pbgoJJHRoaXMtPkRpc3BsYXlNb2R1bGVPdXRwdXQoJGFjdGlvbiwgJGlkLCAkcGFyYW1zKTsKCWJyZWFrOwogICAgICB9CiAgICBjYXNlICdkZWZhdWx0YWRtaW4nOgogICAgICB7CgkvLyBvbmx5IGxldCBwZW9wbGUgYWNjZXNzIG1vZHVsZSBwcmVmZXJlbmNlcyBpZiB0aGV5IGhhdmUgcGVybWlzc2lvbgoJaWYgKCR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ1VzZSBTa2VsZXRvbicpKQoJICB7CgkgICAgJHRoaXMtPkRpc3BsYXlBZG1pblBhbmVsKCRpZCwgJHBhcmFtcywgJHJldHVybmlkKTsKCSAgfQoJZWxzZQoJICB7CgkgICAgJHRoaXMtPkRpc3BsYXlFcnJvclBhZ2UoJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQsCgkJCQkgICAgJHRoaXMtPkxhbmcoJ2FjY2Vzc2RlbmllZCcpKTsKCSAgfQoJYnJlYWs7CiAgICAgIH0KICAgIGNhc2UgJ3NhdmVfYWRtaW5fcHJlZnMnOgogICAgICB7CgkvLyBvbmx5IGxldCBwZW9wbGUgc2F2ZSBtb2R1bGUgcHJlZmVyZW5jZXMgaWYgdGhleSBoYXZlIHBlcm1pc3Npb24KCQoJaWYgKCR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ1VzZSBTa2VsZXRvbicpKQoJICB7CgkgICAgJHRoaXMtPlNhdmVBZG1pblByZWZzKCRpZCwgJHBhcmFtcywgJHJldHVybmlkKTsKCSAgfQoJYnJlYWs7CiAgICAgIH0KICAgIH0KICB9CiAgKi8KCn0gLy9lbmQgY2xhc3MKPz4K]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/add_edit.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRzdGFydF9mb3JtfQo8ZGl2IGNsYXNzPSJmb3JtX3JvdyI+CiAgIDxzcGFuIGNsYXNzPSJmaWVsZF90aXRsZSI+eyR0aXRsZV9kZXNjcmlwdGlvbn08L3NwYW4+CiAgIDxzcGFuIGNsYXNzPSJmaWVsZF9pbnB1dCI+eyRpbnB1dF9kZXNjcmlwdGlvbn08L3NwYW4+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJmb3JtX3JvdyI+CiAgIDxzcGFuIGNsYXNzPSJmaWVsZF90aXRsZSI+PC9zcGFuPgogICA8c3BhbiBjbGFzcz0iZmllbGRfaW5wdXQiPnskc3VibWl0fTwvc3Bhbj4KPC9kaXY+CnskZW5kX2Zvcm19]]></data>
	</file>
	<file>
	  <filename>/templates/adminpanel.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyR0YWJzX3N0YXJ0fQogICB7JHN0YXJ0X2dlbmVyYWxfdGFifQogICAgICB7JHdlbGNvbWVfdGV4dH0KICAgeyR0YWJfZW5kfQogICB7JHN0YXJ0X3ByZWZzX3RhYn0KICAgICAge2lmICRzdGFydF9wcmVmc190YWIgIT0gJyd9CiAgICAgIHskc3RhcnRfZm9ybX0KICAgICAgCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICAgIAkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX2FsbG93X2FkZH06PC9wPgogICAgICAJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfYWxsb3dfYWRkfTwvcD4KICAgICAgCTwvZGl2PgogICAgICAJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgICAgCQk8cCBjbGFzcz0icGFnZXRleHQiPiZuYnNwOzwvcD4KICAgICAgCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JHN1Ym1pdH08L3A+CiAgICAgIAk8L2Rpdj4KICAgICAgeyRlbmRfZm9ybX0KICAgICAgey9pZn0KICAgeyR0YWJfZW5kfQp7JHRhYnNfZW5kfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/error.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskdGl0bGVfZXJyb3J9PC9oMz4KPHA+eyRhZG1pbl9uYXZ9PC9wPgp7aWYgJG1lc3NhZ2UhPScnfTxwPnskbWVzc2FnZX08L3A+ey9pZn0=]]></data>
	</file>
	<file>
	  <filename>/templates/skeleton_list.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmIGlzc2V0KCRtb2R1bGVfbWVzc2FnZSl9PGgyPnskbW9kdWxlX21lc3NhZ2V8ZXNjYXBlfTwvaDI+ey9pZn0NCjxoMz57JHRpdGxlX251bV9yZWNvcmRzfTwvaDM+DQp7Zm9yZWFjaCBmcm9tPSRyZWNvcmRzIGl0ZW09ZW50cnl9DQogICA8ZGl2PnskZW50cnktPmlkfTogeyRlbnRyeS0+bmFtZX0gKHskZW50cnktPnZpZXd9fHskZW50cnktPmVkaXR9KSA8L2Rpdj4NCnsvZm9yZWFjaH0NCg0Ke2lmICRhZGQgIT0gJyd9PGRpdj57JGFkZH08L2Rpdj57L2lmfQ==]]></data>
	</file>
</module>
