<?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>XtendedLinks</name>
	<version>0.0.3</version>
  <mincmsversion>1.0.6</mincmsversion>
	<help>Cgk8aDM+V2hhdCBEb2VzIFRoaXMgRG8/PC9oMz4KCTxwPlRoaXMgbW9kdWxlIGhhbmRsZSBhIGxpbmtzIGxpYnJhcnkgdGhhdCBjYW4gYmUgbGlua2VkIHdpdGggbXVsdGlwbGUgcGFnZXMgYW5kIGNhdGVnb3JpZXMgdHJvdWdoIE1vZHVsZVh0ZW5kZXI8L3A+CgkKCTxoMz5Ib3cgRG8gSSBVc2UgSXQ8L2gzPgoJCgk8cD5UbyBpbmNsdWRlIHRoaXMgbW9kdWxlIG9uIGEgcGFnZSwgdXNlIHRoZSB0YWcge2Ntc19tb2R1bGUgbW9kdWxlPSJYdGVuZGVkTGlua3MifTwvcD4KCQoJPGgzPldoYXQgUGFyYW1ldGVycyBEb2VzIEl0IFRha2U8L2gzPgoJCgk8cD4KCQoJPHVsPgoJCTxsaT48Yj5jdXJyZW50cGFnZTwvYj4gLSBJZiB5b3Ugc2V0IHRoYXQsIGl0IHdpbGwgb25seSBzaG93IHRoZSBjdXJyZW50IHBhZ2UgcmVsYXRlZCBsaW5rcy48L2xpPgoJCTxsaT48Yj5wYWdlczwvYj4gLSBQdXQgdGhlIGxpc3Qgb2YgYWxsIHJlbGF0ZWQgcGFnZXMgKHBhZ2UgaWQpIChzZXBhcmF0ZSBieSBhIGNvbW1hKSB0aGF0IHRoZSBsaXN0IG11c3Qgc2hvdy48L2xpPgoJCTxsaT48Yj5jYXRlZ29yeTwvYj4gLSBJZiB5b3Ugc2V0IHRoYXQsIGl0IHdpbGwgb25seSBzaG93IHRoZSBjYXRlZ29yeSAocHV0IHRoZSBjYXRlZ29yeSBpZCkgcmVsYXRlZCBsaW5rcy48L2xpPgoJCTxsaT48Yj5jYXRlZ29yaWVzPC9iPiAtIFB1dCB0aGUgbGlzdCBvZiBhbGwgcmVsYXRlZCBjYXRlZ29yaWVzIChjYXRlZ29yeSBpZCkgKHNlcGFyYXRlIGJ5IGEgY29tbWEpIHRoYXQgdGhlIGxpc3QgbXVzdCBzaG93LjwvbGk+CgkJPGxpPjxiPm1heF9pdGVtczwvYj4gLSBPbmx5IHNob3cgdGhlIFggbGFzdCBpdGVtcy48L2xpPgoJPC91bD4KCQoJPC9wPgoKCTxoMz5TdXBwb3J0PC9oMz4KCTxwPkFzIHBlciB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkIGFzLWlzLiBQbGVhc2UgcmVhZCB0aGUgdGV4dCBvZiB0aGUgbGljZW5zZSBmb3IgdGhlIGZ1bGwgZGlzY2xhaW1lci48L3A+Cgk8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4KCTxwPkNvcHlyaWdodCAmY29weTsgMjAwNywgQmVuamFtaW4gTWFnaXRzIDxhIGhyZWY9Im1haWx0bzpiZW5qYW1pbi5tYWdpdHNAZ21haWwuY29tIj4mbHQ7YmVuamFtaW4ubWFnaXRzQGdtYWlsLmNvbSZndDs8L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+Cgk8cD5UaGlzIG1vZHVsZSBoYXMgYmVlbiByZWxlYXNlZCB1bmRlciB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5HTlUgUHVibGljIExpY2Vuc2U8L2E+LiBZb3UgbXVzdCBhZ3JlZSB0byB0aGlzIGxpY2Vuc2UgYmVmb3JlIHVzaW5nIHRoZSBtb2R1bGUuPC9wPjxoMz5EZXBlbmRlbmNpZXM8L2gzPjx1bD48bGk+TW9kdWxlWHRlbmRlciA9Jmd0OyAwLjAuMi40PC9saT48L3VsPjxoMz5QYXJhbWV0ZXJzPC9oMz48dWw+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gbGFuZz0iZW5fVVMiIC0gUGFyYW1ldGVyIGlzIHVzZWQgdG8gc3BlY2lmeSB3aGF0IGxhbmd1YWdlIHRvIHVzZSBmb3IgZGlzcGxheSBvbiB0aGUgZnJvbnRlbmQuIE5vdCBhbGwgbW9kdWxlcyBzdXBwb3J0IG9yIG5lZWQgdGhpcy48L2xpPjwvdWw+</help>
	<about>PGJyIC8+QXV0aG9yOiBCZW5qYW1pbiBNYWdpdHMgJmx0O2JlbmphbWluLm1hZ2l0c0BnbWFpbC5jb20mZ3Q7PGJyIC8+PGJyIC8+VmVyc2lvbjogMC4wLjM8YnIgLz48YnIgLz5DaGFuZ2UgSGlzdG9yeTo8YnIgLz4KCTx1bD4KCQk8bGk+VmVyc2lvbiAwLjAuMSAtIDAxIE9jdG9iZXIgMjAwNy4gSW5pdGlhbCBSZWxlYXNlLgoJCTxsaT5WZXJzaW9uIDAuMC4yIC0gMTEgT2N0b2JlciAyMDA3LiBCdWdzIGZpeGVzICYgTW9kdWxlIFh0ZW5kZXIgaW50ZWdyYXRpb248L2xpPgoJCTxsaT5WZXJzaW9uIDAuMC4zIC0gMTUgT2N0b2JlciAyMDA3LiBPcmRlcmluZyBmaWVsZCBhZGRlZDwvbGk+Cgk8L3VsPgo8YnIgLz4=</about>
	<requires>
	  <requiredname>ModuleXtender</requiredname>
	  <requiredversion>0.0.2.4</requiredversion>
	</requires>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/action.AddEdit.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgokbW9kdWxleHRlbmRlciA9ICRnQ21zLT5tb2R1bGVzWydNb2R1bGVYdGVuZGVyJ11bJ29iamVjdCddOwovKgppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoIiIpKQp7CglyZXR1cm4gJHRoaXMtPkRpc3BsYXlFcnJvclBhZ2UoJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQsJHRoaXMtPkxhbmcoJ2FjY2Vzc2RlbmllZCcpKTsKfQoqLwovLyBJZiBjYW5jZWwsIHJldHVybiBob21lLi4uCgppZiAoaXNzZXQoJHBhcmFtc1snY2FuY2VsJ10pKQp7CgkkcGFyYW1zID0gYXJyYXkoCgkJCgkJJ2FjdGl2ZV90YWInID0+ICdMaW5rcycKCQkKCQkpOwkJCgkKCSR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAkcmV0dXJuaWQsICRwYXJhbXMpOwp9CgovLyBJZiBmb3JtIGlzIHN1Ym1pdHRlZC4uLgoKaWYgKGlzc2V0KCRwYXJhbXNbJ2lucHV0X3N1Ym1pdHRlZCddKSkKewoKCS8qIFdlIGNoZWNrIGZpZWxkcyAqLwoJCglpZihlbXB0eSgkcGFyYW1zWyd0aXRsZSddKSkKCXsKCQkKCQllY2hvICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5MYW5nKCdlcnJvcl90aXRsZScpKTsKCQkKCQkkZXJyb3JzVHJ1ZT1UcnVlOwoJCQoJfQoJZWxzZWlmKCBlbXB0eSgkcGFyYW1zWyd1cmwnXSkgb3Igc3Vic3RyKCRwYXJhbXNbJ3VybCddLDAsNykgIT0gJ2h0dHA6Ly8nICkKCXsKCQkKCQllY2hvICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5MYW5nKCdlcnJvcl91cmwnKSk7CgkJCgkJJGVycm9yc1RydWU9VHJ1ZTsKCQkKCX0KCQoJCgkKCWlmKCEkZXJyb3JzVHJ1ZSkgLyogSWYgdGhlcmUgaXMgbm8gZXJyb3Igd2UgcHJvY2VzcyB0aGUgZm9ybSAqLwoJewoJCQoJCQoJCS8vaWYgKCFpc3NldCgkcGFyYW1zWydpdGVtX2lkJ10pKSAvKiBFZGl0IEl0ZW0gKi8gCgkJaWYgKCRwYXJhbXNbJ2l0ZW1faWQnXSA9PSAnJykKCQl7CQkJCgkJCQoJCQkkZGJJZCA9ICRkYi0+R2VuSUQoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfeHRlbmRlZGxpbmtzX3NlcSIpOwoJCQkKCQkJJGl0ZW1faWQgPSAkZGJJZDsKCQkJCgkJCSRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3h0ZW5kZWRsaW5rcyBTRVQgaWQgPSA/LCB0aXRsZSA9ID8sIHVybCA9ID8sIGRlc2NyaXB0aW9uID0gPywgcG9zaXRpb24gPSA/ICc7CgkJCQoJCQkkZGJEYXRhID0gYXJyYXkoCgkJCQkJCQkgJGRiSWQKCQkJCQkJCSwkcGFyYW1zWyd0aXRsZSddCgkJCQkJCQksJHBhcmFtc1sndXJsJ10KCQkJCQkJCSwkcGFyYW1zWydkZXNjcmlwdGlvbiddCgkJCQkJCQksJHBhcmFtc1sncG9zaXRpb24nXQoJCQkJCQkJKTsKCQkJCgkJCSRkYi0+RXhlY3V0ZSgkcXVlcnksICRkYkRhdGEpOwoJCQkKCQkJLy9AJHRoaXMtPlNlbmRFdmVudCgnTmV3TGlua0FkZGVkJywgYXJyYXkoJ2lkJyA9PiAkZGJJZCwgJ3VybCcgPT4gJHBhcmFtc1sndXJsJ10pKTsKCQkJCgkJCSRmdXR1cmVwYXJhbXMgPSBhcnJheSgndGFiX21lc3NhZ2UnPT4gJ2l0ZW1hZGRlZCcsICdhY3RpdmVfdGFiJyA9PiAnTGlua3MnKTsKCQoJCX0KCQllbHNlIC8qIEFkZCBJdGVtICovCgkJewoJCQkKCQkJJGl0ZW1faWQgPSAkcGFyYW1zWydpdGVtX2lkJ107CgkJCQoJCQkkcXVlcnkgPSAnVVBEQVRFICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfeHRlbmRlZGxpbmtzIFNFVCB0aXRsZSA9ID8sIHVybCA9ID8gLCBkZXNjcmlwdGlvbiA9ID8sIHBvc2l0aW9uID0gPyBXSEVSRSBpZCA9ID8nOwoJCgkJCSRkYkRhdGEgPSBhcnJheSgKCQkJCQkJCSAkcGFyYW1zWyd0aXRsZSddCgkJCQkJCQksJHBhcmFtc1sndXJsJ10KCQkJCQkJCSwkcGFyYW1zWydkZXNjcmlwdGlvbiddCgkJCQkJCQksJHBhcmFtc1sncG9zaXRpb24nXQoJCQkJCQkJLCRwYXJhbXNbJ2l0ZW1faWQnXQoJCQkJCQkJKTsKCQkJCgkJCSRkYi0+RXhlY3V0ZSgkcXVlcnksICRkYkRhdGEpOwoJCQkJCQkKCQkJLy9AJHRoaXMtPlNlbmRFdmVudCgnTGlua1VwZGF0ZWQnLCBhcnJheSgnaWQnID0+ICRpZCwgJ3VybCcgPT4gJHBhcmFtc1sndXJsJ10pKTsKCQkKCQkJJGZ1dHVyZXBhcmFtcyA9IGFycmF5KCd0YWJfbWVzc2FnZSc9PiAnaXRlbW1vZGlmaWVkJywgJ2FjdGl2ZV90YWInID0+ICdMaW5rcycpOwoJCQkKCQl9CgkJCgkJLy8gRW5jb2RlIHJlbGF0aW9ucwoJCQkKCQlpZiAoJG1vZHVsZXh0ZW5kZXItPmlzWHRlbmRlZE1vZHVsZSgkdGhpcy0+Z2V0TmFtZSgpKSkKCQl7CgkJCSRtb2R1bGV4dGVuZGVyLT5nZXRGb3JtSW5wdXQoJHRoaXMtPmdldE5hbWUoKSwgJGl0ZW1faWQsICRwYXJhbXMpOwoJCX0KCQkKCQkvL3ByaW50X3IoJHBhcmFtcyk7CgkJCgkJaWYgKGlzc2V0KCRwYXJhbXNbJ2lucHV0X3N1Ym1pdHRlZCddKSkKCQl7CQoJCQkkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkLCAkZnV0dXJlcGFyYW1zKTsKCQl9CgkJCgkJLy8kdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkLCAkcGFyYW1zKTsKCX0KCQp9Ci8vZWxzZQovL3sKCS8vIERpc3BsYXkgRm9ybQoJCgkvKiBXZSBkZWZpbmUgdmFsdWVzICovCgkKCWlmIChpc3NldCgkcGFyYW1zWydpdGVtX2lkJ10pKQoJewoJCSRmb3Jtcm93ID0gJHRoaXMtPkdldEl0ZW1JbmZvcygkcGFyYW1zWydpdGVtX2lkJ10pOwoJfQoJZWxzZWlmIChpc3NldCgkaXRlbV9pZCkpCgl7CgkJJGZvcm1yb3cgPSAkdGhpcy0+R2V0SXRlbUluZm9zKCRpdGVtX2lkKTsKCX0KCQoJLy8gU3RhcnQgRm9ybQoJCQoJCSR0aGlzLT5zbWFydHktPmFzc2lnbignZm9ybV9zdGFydCcsJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsICdBZGRFZGl0JywgJHJldHVybmlkKSk7CgkKCQkvKgoJCSoqIEZpZWxkcyAoMS5MYWJlbCAvIDIuRmllbGQpCgkJKi8KCQkKCQkJLy8xLkxhYmVsCgkJCSR0aGlzLT5zbWFydHktPmFzc2lnbignZmllbGRfdGl0bGVfbGFiZWwnLCR0aGlzLT5MYW5nKCdmaWVsZF90aXRsZV9sYWJlbCcpKTsKCQkJLy8yLkZpZWxkCgkJCSR0aGlzLT5zbWFydHktPmFzc2lnbignZmllbGRfdGl0bGVfbmFtZScsJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICd0aXRsZScsICRmb3Jtcm93Wyd0aXRsZSddLCA1MCkpOwoJCQkKCQkJLy8xLkxhYmVsCgkJCSR0aGlzLT5zbWFydHktPmFzc2lnbignZmllbGRfdXJsX2xhYmVsJywkdGhpcy0+TGFuZygnZmllbGRfdXJsX2xhYmVsJykpOwoJCQkvLzIuRmllbGQKCQkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmaWVsZF91cmxfbmFtZScsJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICd1cmwnLCAkZm9ybXJvd1sndXJsJ10sIDUwKSk7CgkJCQoJCQkvLzEuTGFiZWwKCQkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmaWVsZF9wb3NpdGlvbl9sYWJlbCcsJHRoaXMtPkxhbmcoJ2ZpZWxkX3Bvc2l0aW9uX2xhYmVsJykpOwoJCQkvLzIuRmllbGQKCQkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmaWVsZF9wb3NpdGlvbl9uYW1lJywkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ3Bvc2l0aW9uJywgJGZvcm1yb3dbJ3Bvc2l0aW9uJ10sIDEwKSk7CgkJCQoJCQkvLzEuTGFiZWwKCQkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmaWVsZF9kZXNjcmlwdGlvbl9sYWJlbCcsJHRoaXMtPkxhbmcoJ2ZpZWxkX2Rlc2NyaXB0aW9uX2xhYmVsJykpOwoJCQkvLzIuRmllbGQKCQkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmaWVsZF9kZXNjcmlwdGlvbl9uYW1lJywgJHRoaXMtPkNyZWF0ZVRleHRBcmVhKHRydWUsICRpZCwgICRmb3Jtcm93WydkZXNjcmlwdGlvbiddLCAnZGVzY3JpcHRpb24nLCAnJywgJycsICcnLCAnJywgJzgwJywgJzUnKSk7CgkKCQkvKgoJCSoqIEhpZGRlbiBmaWVsZHMKCQkqLwoJCQoJCQlpZiAoaXNzZXQoJHBhcmFtc1snaXRlbV9pZCddKSkKCQkJewoJCQkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdpdGVtX2lkJywkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnaXRlbV9pZCcsICRwYXJhbXNbJ2l0ZW1faWQnXSkpOwoJCQl9CgkJCQoJCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X3N1Ym1pdHRlZCcsJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ2lucHV0X3N1Ym1pdHRlZCcsICcnKSk7CgkJCgkJLyoKCQkqKiBCdXR0b25zCgkJKi8KCQkKCQkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdjYW5jZWwnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnY2FuY2VsJywgJHRoaXMtPkxhbmcoJ2FjdGlvbl9jYW5jZWwnKSkpOwoJCQkKCQkJLyoKCQkJaWYoIGlzc2V0KCRwYXJhbXNbJ2l0ZW1faWQnXSkgKQoJCQl7CgkJCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2FwcGx5X2J1dHRvbicsJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ2FwcGx5JywgJHRoaXMtPkxhbmcoJ2FjdGlvbl9hcHBseScpKSk7CQoJCQl9CgkJCSovCgkJCQoJCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3N1Ym1pdF9idXR0b24nLCR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdzdWJtaXQnLCAkdGhpcy0+TGFuZygnYWN0aW9uX3N1Ym1pdCcpKSk7CgkKCQkvKgoJCSoqIE1vZHVsZSBYdGVuZGVyIFBhcnQKCQkqLwoJCQoJCQlpZiAoJG1vZHVsZXh0ZW5kZXItPmlzWHRlbmRlZE1vZHVsZSgkdGhpcy0+Z2V0TmFtZSgpKSkKCQkJewoJCQkJaWYgKCFpc3NldCgkaXRlbV9pZCkgJiYgaXNzZXQoJHBhcmFtc1snaXRlbV9pZCddKSkKCQkJCXsKCQkJCQkkaXRlbV9pZCA9ICRwYXJhbXNbJ2l0ZW1faWQnXTsKCQkJCX0KCQkJCQoJCQkJCgkJCQkKCQkJCSR0aGlzLT5zbWFydHktPmFzc2lnbigneHRlbmRlZF9mb3JtJywgJG1vZHVsZXh0ZW5kZXItPlh0ZW5kTW9kdWxlRm9ybSgkdGhpcy0+Z2V0TmFtZSgpLCAkaXRlbV9pZCwgJGlkKSk7CgkJCX0KCQkJCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2Zvcm1fZW5kJywkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKCS8vRW5kIEZvcm0KCQoJLy9Qcm9jZXNzIHRlbXBsYXRlCgllY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2FkbWluQWRkRWRpdC50cGwnKTsKLy99Cj8+]]></data>
	</file>
	<file>
	  <filename>/action.default.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgppZiAoaXNzZXQoJF9SRVFVRVNUWydtYWN0J10pICYmIHN0cnBvcygkX1JFUVVFU1RbJ21hY3QnXSwgJ0xpbmtzJykgIT09IGZhbHNlICYmIHN0cnBvcygkX1JFUVVFU1RbJ21hY3QnXSwgJ2RldGFpbHMnKSAhPT0gZmFsc2UpCnsKCQkvLyBEbyBub3RoaW5nCn0KZWxzZSAKewoKCSRpdGVtc2xpc3QgPSAkdGhpcy0+R2V0TGlzdCgkaWQsICRyZXR1cm5pZCwgJHBhcmFtcyk7CgkKCSR0aGlzLT5zbWFydHktPmFzc2lnbl9ieV9yZWYoJ2l0ZW1zJywgJGl0ZW1zbGlzdCApOwoKCSR0aGlzLT5zbWFydHktPmFzc2lnbignaXRlbWNvdW50JywgY291bnQoICRpdGVtc2xpc3QgKSApOwoJCglpZiAoIWlzc2V0KCRwYXJhbXNbJ3RlbXBsYXRlJ10pIHx8ICEkdGhpcy0+R2V0VGVtcGxhdGUoJHBhcmFtc1sndGVtcGxhdGUnXSkpCgl7CgkJZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGFiYXNlKCdkaXNwbGF5X2xpc3QnKTsKCX0KCWVsc2UgCgl7CgkJZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGFiYXNlKCRwYXJhbXNbJ3RlbXBsYXRlJ10pOwoJfQkKfQoKCj8+]]></data>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7Ci8qCmlmICghICR0aGlzLT5DaGVja0FjY2VzcygpKQoJewoJcmV0dXJuICR0aGlzLT5EaXNwbGF5RXJyb3JQYWdlKCRpZCwgJHBhcmFtcywgJHJldHVybmlkLCR0aGlzLT5MYW5nKCdhY2Nlc3NkZW5pZWQnKSk7Cgl9CiovCiR0YWJzID0gYXJyYXkgKAoJJ2xpbmtzJyA9PiBmYWxzZSwKCSdsaXN0X3RlbXBsYXRlJyA9PiBmYWxzZQopOwoKaWYgKGlzc2V0KCRwYXJhbXNbJ2FjdGl2ZV90YWInXSkpCnsKCSR0YWJzWyRwYXJhbXNbJ2FjdGl2ZV90YWInXV0gPSB0cnVlOwp9CgkKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0YWJfaGVhZGVycycsJHRoaXMtPlN0YXJ0VGFiSGVhZGVycygpLgoJJHRoaXMtPlNldFRhYkhlYWRlcignbGlua3MnLCR0aGlzLT5MYW5nKCd0aXRsZV9saW5rcycpICwgJHRhYnNbJ2xpbmtzJ10gKS4KCSR0aGlzLT5TZXRUYWJIZWFkZXIoJ2xpc3RfdGVtcGxhdGUnLCR0aGlzLT5MYW5nKCd0aXRsZV90ZW1wbGF0ZWxpc3QnKSAsICR0YWJzWydsaXN0X3RlbXBsYXRlJ10pLgoJJHRoaXMtPkVuZFRhYkhlYWRlcnMoKS4kdGhpcy0+U3RhcnRUYWJDb250ZW50KCkpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2VuZF90YWInLCR0aGlzLT5FbmRUYWIoKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbigndGFiX2Zvb3RlcnMnLCR0aGlzLT5FbmRUYWJDb250ZW50KCkpOwoKLy8gU3RhcnQgTGlua3MgVGFiCgoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9zZWN0aW9uJywnTGlua3MnKTsKCQoJLy9UZXh0IGZvciB0YWJsZSBoZWFkZXIKCSR0aGlzLT5zbWFydHktPmFzc2lnbignaGVhZGVyJywgJHRoaXMtPkxhbmcoJ2hlYWRlcicpKTsKCQoJLy8KCSRlbnRyeWFycmF5ID0gYXJyYXkoKTsKCQoJJHF1ZXJ5ID0gIgoJCVNFTEVDVCAKCQkJICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfeHRlbmRlZGxpbmtzLiogCgkJRlJPTSAKCQkJIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV94dGVuZGVkbGlua3MKCQlPUkRFUiBCWQoJCQkiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3h0ZW5kZWRsaW5rcy5pZCBERVNDCgkJIjsKCgkKCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnkpOwoJCgkkcm93Y2xhc3MgPSAncm93MSc7CgkKCXdoaWxlICgkZGJyZXN1bHQgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSkKCXsKCQkkb25lcm93ID0gbmV3IHN0ZENsYXNzKCk7CgkKCQkkb25lcm93LT5pZCA9ICRyb3dbJ2lkJ107CgkJLy9JdGVtIG5hbWUKCQkkb25lcm93LT5uYW1lID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnQWRkRWRpdCcsICRyZXR1cm5pZCwgJHJvd1sndGl0bGUnXSwgYXJyYXkoJ2l0ZW1faWQnPT4kcm93WydpZCddKSk7CgkJLy9JdGVtIGVkaXQgbGluawoJCSRvbmVyb3ctPmVkaXRsaW5rID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnQWRkRWRpdCcsICRyZXR1cm5pZCwgJGdDbXMtPnZhcmlhYmxlc1snYWRtaW50aGVtZSddLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9lZGl0LmdpZicsICR0aGlzLT5MYW5nKCdlZGl0cXVvdGUnKSwnJywnJywnc3lzdGVtaWNvbicpLCBhcnJheSgnaXRlbV9pZCc9PiRyb3dbJ2lkJ10pKTsKCQkvL0l0ZW0gZGVsZXRlIGxpbmsKCQkkb25lcm93LT5kZWxldGVsaW5rID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnRGVsZXRlJywgJHJldHVybmlkLCAkZ0Ntcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2RlbGV0ZS5naWYnLCAkdGhpcy0+TGFuZygnZGVsZXRlJyksJycsJycsJ3N5c3RlbWljb24nKSwgYXJyYXkoJ2l0ZW1faWQnPT4kcm93WydpZCddKSwgJHRoaXMtPkxhbmcoJ2NvbmZpcm1fZGVsZXRlJykpOwoJCS8vSXRlbSByb3cgY2xhc3MKCQkkb25lcm93LT5yb3djbGFzcyA9ICRyb3djbGFzczsKCgkJJGVudHJ5YXJyYXlbXSA9ICRvbmVyb3c7CgkKCQkoJHJvd2NsYXNzPT0icm93MSI/JHJvd2NsYXNzPSJyb3cyIjokcm93Y2xhc3M9InJvdzEiKTsKCQkKCX0KCQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduX2J5X3JlZignaXRlbXMnLCAkZW50cnlhcnJheSk7CgkKCSR0aGlzLT5zbWFydHktPmFzc2lnbignaXRlbWNvdW50JywgY291bnQoJGVudHJ5YXJyYXkpKTsKCQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdhZGRpdGVtJywkdGhpcy0+Q3JlYXRlTGluaygkaWQsJ0FkZEVkaXQnLCAnJywgJHRoaXMtPkxhbmcoJ2FkZF9uZXdfaXRlbScpLGFycmF5KCkpKTsKCQkJCQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdhZGRpdGVtbGluaycsJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCdBZGRFZGl0JywgJycsJGdDbXMtPnZhcmlhYmxlc1snYWRtaW50aGVtZSddLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9uZXdvYmplY3QuZ2lmJywgJHRoaXMtPkxhbmcoJ2FkZF9uZXdfcXVvdGUnKSwnJywnJywnc3lzdGVtaWNvbicpLCBhcnJheSgpKSk7CgkJCQkJCgovL0VuZCBsaW5rcyBUYWIKCi8vU3RhcnQgdGVtcGxhdGVzIFRhYgoKICAgIC8vIFRFTVBMQVRFUyBMSVNUCiAgICAKICAgICR0ZW1wbGF0ZV9saXN0ID0gJHRoaXMtPkxpc3RUZW1wbGF0ZXMoKTsKICAgIAkKCSRyb3djbGFzcyA9ICdyb3cxJzsKCQoJJHRlbXBsYXRlcyA9IGFycmF5KCk7CgkKCWZvcmVhY2ggKCR0ZW1wbGF0ZV9saXN0IGFzICR0ZW1wbGF0ZSkKCXsKCQkkb25lcm93ID0gbmV3IHN0ZENsYXNzKCk7CgkJCgkJJG9uZXJvdy0+bmFtZSA9ICR0ZW1wbGF0ZTsJCgkJCgkJaWYgKCR0ZW1wbGF0ZSAhPSAnZGlzcGxheV9kZXRhaWxzJyAmJiAkdGVtcGxhdGUgIT0gJ2Rpc3BsYXlfbGlzdCcgKQoJCXsKCQkJJG9uZXJvdy0+ZGVsZXRlbGluayA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2RlbGV0ZVRlbXBsYXRlJywgJHJldHVybmlkLCAkZ0Ntcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2RlbGV0ZS5naWYnLCAkdGhpcy0+TGFuZygnZGVsZXRlVGVtcGxhdGUnKSwnJywnJywnc3lzdGVtaWNvbicpLCBhcnJheSgndGVtcGxhdGUnPT4kdGVtcGxhdGUpLCAkdGhpcy0+TGFuZygnYXJleW91c3VyZScpKTsKCQl9CgkKCQkkb25lcm93LT5lZGl0bGluayA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ21hbmFnZVRlbXBsYXRlJywgJHJldHVybmlkLCAkZ0Ntcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2VkaXQuZ2lmJywgJHRoaXMtPkxhbmcoJ2VkaXRUZW1wbGF0ZScpLCcnLCcnLCdzeXN0ZW1pY29uJyksIGFycmF5KCd0ZW1wbGF0ZSc9PiR0ZW1wbGF0ZSkpOwoJCQoJCSRvbmVyb3ctPnJvd2NsYXNzID0gJHJvd2NsYXNzOwoJCQkJCgkJJHRlbXBsYXRlc1tdID0gJG9uZXJvdzsKCQkKCQkoJHJvd2NsYXNzPT0icm93MSI/JHJvd2NsYXNzPSJyb3cyIjokcm93Y2xhc3M9InJvdzEiKTsKCX0KCQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduX2J5X3JlZigndGVtcGxhdGVzJywgJHRlbXBsYXRlcyk7CgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RlbXBsYXRlc19jb3VudCcsIGNvdW50KCR0ZW1wbGF0ZXMpKTsKCSR0aGlzLT5zbWFydHktPmFzc2lnbigndGl0bGVfdGVtcGxhdGUnLCAkdGhpcy0+TGFuZygndGl0bGVfdGVtcGxhdGVsaXN0JykpOwoJCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2FkZHRlbXBsYXRlbGluaycsJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCdtYW5hZ2VUZW1wbGF0ZScsICcnLCAkdGhpcy0+TGFuZygnYWN0aW9uX2FkZF90ZW1wbGF0ZScpLGFycmF5KCkpKTsKCQkJCQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdhZGR0ZW1wbGF0ZWljb24nLCR0aGlzLT5DcmVhdGVMaW5rKCRpZCwnbWFuYWdlVGVtcGxhdGUnLCAnJywkZ0Ntcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL25ld29iamVjdC5naWYnLCAkdGhpcy0+TGFuZygnYWN0aW9uX2FkZF90ZW1wbGF0ZScpLCcnLCcnLCdzeXN0ZW1pY29uJyksIGFycmF5KCkpKTsKCQovL0VuZCB0ZW1wbGF0ZXMgVGFiCgokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3N0YXJ0X2xpbmtzX3RhYicsJHRoaXMtPlN0YXJ0VGFiKCdsaW5rcycpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzdGFydF9saXN0X3RlbXBsYXRlX3RhYicsJHRoaXMtPlN0YXJ0VGFiKCdsaXN0X3RlbXBsYXRlJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX3NlY3Rpb24nLCdkZWZhdWx0YWRtaW4nKTsKCgplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2FkbWlucGFuZWwudHBsJyk7Cj8+]]></data>
	</file>
	<file>
	  <filename>/action.Delete.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7Ci8qCmlmICghICR0aGlzLT5DaGVja0FjY2VzcygiIikpCnsKCXJldHVybiAkdGhpcy0+RGlzcGxheUVycm9yUGFnZSgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCwkdGhpcy0+TGFuZygnYWNjZXNzZGVuaWVkJykpOwp9CiovCgppZiAoaXNzZXQoJHBhcmFtc1snaXRlbV9pZCddKSkKewoKCSRxdWVyeSA9ICJERUxFVEUgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3h0ZW5kZWRsaW5rcyBXSEVSRSBpZCA9ID8iOwoJCgkkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkcGFyYW1zWydpdGVtX2lkJ10pKTsKCQoJJHRoaXMtPlNlbmRFdmVudCgnTGlua0RlbGV0ZWQnLCBhcnJheSgnaWQnID0+ICRwYXJhbXNbJ2l0ZW1faWQnXSkpOwoJCgkkbW9kdWxleHRlbmRlciA9ICRnQ21zLT5tb2R1bGVzWydNb2R1bGVYdGVuZGVyJ11bJ29iamVjdCddOwkKCQoJaWYgKCRtb2R1bGV4dGVuZGVyLT5pc1h0ZW5kZWRNb2R1bGUoJHRoaXMtPmdldE5hbWUoKSkpCgl7CgkJJG1vZHVsZXh0ZW5kZXItPmRlbGV0ZVJlbGF0aW9ucygkdGhpcy0+Z2V0TmFtZSgpLCAkcGFyYW1zWydpdGVtX2lkJ10pOwoJfQoJCgkkcGFyYW1zID0gYXJyYXkoJ3RhYl9tZXNzYWdlJz0+ICdxdW90ZWRlbGV0ZWQnLCAnYWN0aXZlX3RhYicgPT4gJ0xpbmtzJyk7CgkKCSR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAkcmV0dXJuaWQsICRwYXJhbXMpOwoJCn0KZWxzZSAKewoKCWVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJ25vaWRmb3VuZCcpKTsKCn0KPz4=]]></data>
	</file>
	<file>
	  <filename>/action.deleteTemplate.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoIiIpKQoJewoJcmV0dXJuICR0aGlzLT5EaXNwbGF5RXJyb3JQYWdlKCRpZCwgJHBhcmFtcywgJHJldHVybmlkLCR0aGlzLT5MYW5nKCdhY2Nlc3NkZW5pZWQnKSk7Cgl9CgovKiAtPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LQoKICAgQ29kZSBmb3IgRG9jdW1lbnRzTGlicmFyeSAibWFuYWdlQ2F0ZWdvcmllcyIgYWRtaW4gYWN0aW9uCiAgIAogICAtPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LQogICAKICAgVHlwaWNhbGx5LCB0aGlzIHdpbGwgZGlzcGxheSBzb21ldGhpbmcgZnJvbSBhIHRlbXBsYXRlCiAgIG9yIGRvIHNvbWUgb3RoZXIgdGFzay4KICAgCiovCgppZiAoaXNzZXQoJHBhcmFtc1sndGVtcGxhdGUnXSkpCnsKCSR0aGlzLT5EZWxldGVUZW1wbGF0ZSgkcGFyYW1zWyd0ZW1wbGF0ZSddKTsKCQoJJHBhcmFtcyA9IGFycmF5KCdhY3RpdmVfdGFiJyA9PiAnbGlzdF90ZW1wbGF0ZScpOwoJJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCwgJHBhcmFtcyk7Cgp9CmVsc2UgCnsKCQllY2hvICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5MYW5nKCdub2lkZm91bmQnKSk7Cn0KCj8+]]></data>
	</file>
	<file>
	  <filename>/action.manageTemplate.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgovKiAtPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LQoKICAgQ29kZSBmb3IgRG9jdW1lbnRzTGlicmFyeSAibWFuYWdlVGVtcGxhdGUiIGFkbWluIGFjdGlvbgogICAKICAgLT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS0KICAgCiAgIFR5cGljYWxseSwgdGhpcyB3aWxsIGRpc3BsYXkgc29tZXRoaW5nIGZyb20gYSB0ZW1wbGF0ZQogICBvciBkbyBzb21lIG90aGVyIHRhc2suCiAgIAoqLwoKLy8gUk9DSyBBTkQgTE9BRAppZiAoaXNzZXQoJHBhcmFtc1sndGVtcGxhdGUnXSkgJiYgJHBhcmFtc1sndGVtcGxhdGUnXSAhPSAnJykKewoJJHRpdGxlID0gJHBhcmFtc1sndGVtcGxhdGUnXTsKCQoJaWYgKGlzc2V0KCRwYXJhbXNbJ3N1Ym1pdGJ1dHRvbiddKSB8fCBpc3NldCgkcGFyYW1zWydhcHBseWJ1dHRvbiddKSkKCXsKCQkkdGhpcy0+U2V0VGVtcGxhdGUoJHBhcmFtc1sndGVtcGxhdGUnXSwgJHBhcmFtc1sndGVtcGxhdGVkZXRhaWxzJ10pOwoJCQoJCWlmIChpc3NldCgkcGFyYW1zWydzdWJtaXRidXR0b24nXSkpCgkJewoJCQkJJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCwgYXJyYXkoJ2FjdGl2ZV90YWInID0+ICdsaXN0X3RlbXBsYXRlJykpOwoJCX0KCX0KfQplbHNlIAp7CgkkdGl0bGUgPSAnJzsKfQoKLy8gREVUQUlMUwoJCQoJCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2Zvcm1fc3RhcnQnLCAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwgJ21hbmFnZVRlbXBsYXRlJywgJHJldHVybmlkKSk7CgkKCQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV90ZW1wbGF0ZScsICR0aGlzLT5MYW5nKCdmaWVsZF9uYW1lX2xhYmVsJykpOwoJCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X3RlbXBsYXRlJywkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ3RlbXBsYXRlJywgJHRpdGxlLCA1MCkpOwoJCglpZiAoaXNzZXQoJHBhcmFtc1sncmVzdG9yZWxpc3QnXSkpCgl7CgkJJHRlbXBsYXRlY29kZSA9ICR0aGlzLT5HZXRUZW1wbGF0ZUZyb21GaWxlKCd0ZW1wbGF0ZS5saXN0Jyk7Cgl9CQoJZWxzZWlmIChpc3NldCgkcGFyYW1zWydyZXN0b3JlZGV0YWlscyddKSkKCXsKCQkkdGVtcGxhdGVjb2RlID0gJHRoaXMtPkdldFRlbXBsYXRlRnJvbUZpbGUoJ3RlbXBsYXRlLmRldGFpbHMnKTsKCX0KCWVsc2VpZiAoaXNzZXQoJHBhcmFtc1sndGVtcGxhdGUnXSkgJiYgJHBhcmFtc1sndGVtcGxhdGUnXSAhPSAnJykKCXsKCQkkdGVtcGxhdGVjb2RlID0gJHRoaXMtPkdldFRlbXBsYXRlKCRwYXJhbXNbJ3RlbXBsYXRlJ10pOwoJfQoJZWxzZWlmIChpc3NldCgkcGFyYW1zWyd0ZW1wbGF0ZWRldGFpbHMnXSkpCgl7CgkJJHRlbXBsYXRlY29kZSA9ICRwYXJhbXNbJ3RlbXBsYXRlZGV0YWlscyddOwoJfQoJZWxzZSAKCXsKCQkkdGVtcGxhdGVjb2RlID0gJyc7Cgl9CgkKCSR0aGlzLT5zbWFydHktPmFzc2lnbignY29kZV90ZW1wbGF0ZScsICR0aGlzLT5MYW5nKCdmaWVsZF9jb2RlX2xhYmVsJykpOwoJCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RleHRhcmVhX3RlbXBsYXRlJywgJHRoaXMtPkNyZWF0ZVRleHRBcmVhKHRydWUsICRpZCwgJHRlbXBsYXRlY29kZSwgJ3RlbXBsYXRlZGV0YWlscycsICdwYWdlYmlndGV4dGFyZWEnLCAnJywnJywgJycsIDkwLCAxNSwgJ0VkaXRBcmVhJykpOwoJCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2Zvcm1fZGV0YWlsc19zdWJtaXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnc3VibWl0YnV0dG9uJywgJHRoaXMtPkxhbmcoJ2FjdGlvbl9zdWJtaXRfdGVtcGxhdGUnKSkpOwoJCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2Zvcm1fZGV0YWlsc19hcHBseScsICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdhcHBseWJ1dHRvbicsICR0aGlzLT5MYW5nKCdhY3Rpb25fYXBwbHlfdGVtcGxhdGUnKSkpOwoJCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2Zvcm1fZGV0YWlsc19yZXN0b3JlbGlzdCcsICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdyZXN0b3JlbGlzdCcsICR0aGlzLT5MYW5nKCdhY3Rpb25fcmVzdG9yZV9saXN0JykpKTsKCQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmb3JtX2RldGFpbHNfcmVzdG9yZWRldGFpbHMnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAncmVzdG9yZWRldGFpbHMnLCAkdGhpcy0+TGFuZygnYWN0aW9uX3Jlc3RvcmVfZGV0YWlscycpKSk7CgoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmb3JtX2VuZCcsJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CgoJZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdtYW5hZ2V0ZW1wbGF0ZS50cGwnKTsKCQo/Pg==]]></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[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ1h0ZW5kZWQgTGlua3MnOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdQb3N0IEluc3RhbGwgTWVzc2FnZS4nOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ1Bvc3QgVW5pbnN0YWxsIE1lc3NhZ2UsIGUuZy4sICJDdXJzZXMhIEZvaWxlZCBBZ2FpbiEiJzsKJGxhbmdbJ3JlYWxseV91bmluc3RhbGwnXSA9ICdSZWFsbHk/IEFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byB1bnNpbnN0YWxsIHRoaXMgZmluZSBtb2R1bGU/JzsKJGxhbmdbJ3VuaW5zdGFsbGVkJ10gPSAnTW9kdWxlIFVuaW5zdGFsbGVkLic7CiRsYW5nWydpbnN0YWxsZWQnXSA9ICdNb2R1bGUgdmVyc2lvbiAlcyBpbnN0YWxsZWQuJzsKJGxhbmdbJ3VwZ3JhZGVkJ10gPSAnTW9kdWxlIHVwZ3JhZGVkIHRvIHZlcnNpb24gJXMuJzsKJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnTGlua3MgYWxsb3dzJzsKCiRsYW5nWydpdGVtYWRkZWQnXSA9ICdMaW5rIGhhcyBiZWVuIGFkZGVkJzsKJGxhbmdbJ21vZGlmaWVkJ10gPSAnTGluayB1cGRhdGVkJzsKJGxhbmdbJ2FyZXlvdXN1cmUnXSA9ICdBcmUgeW91IHN1cmU/JzsKCiRsYW5nWydlcnJvciddID0gJ0Vycm9yISc7CiRsYW5kWydhZG1pbl90aXRsZSddID0gJ1VzZWZ1bGwgTGlua3MgQWRtaW4gUGFuZWwnOwokbGFuZ1snYWRtaW5kZXNjcmlwdGlvbiddID0gJyc7CiRsYW5nWydhY2Nlc3NkZW5pZWQnXSA9ICdBY2Nlc3MgRGVuaWVkLiBQbGVhc2UgY2hlY2sgeW91ciBwZXJtaXNzaW9ucy4nOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdQb3N0IEluc3RhbGwgTWVzc2FnZSwgKGUuZy4sIEJlIHN1cmUgdG8gc2V0ICIiIHBlcm1pc3Npb25zIHRvIHVzZSB0aGlzIG1vZHVsZSEpJzsKJGxhbmdbJ0xpbmtzJ10gPSAnTGlua3MnOwokbGFuZ1snVGVtcGxhdGVMaXN0J10gPSAnVGVtcGxhdGUgTGlzdCc7CiRsYW5nWydUZW1wbGF0ZUZlYXR1cmVCb3gnXSA9ICdUZW1wbGF0ZSBGZWF0dXJlIEJveCc7CiRsYW5nWydSZWxhdGlvbnMnXSA9ICdSZWxhdGlvbnMnOwokbGFuZ1snU2V0dGluZ3MnXSA9ICdTZXR0aW5ncyc7CiRsYW5nWyd0aXRsZV9saW5rcyddID0gJ0xpbmtzJzsKJGxhbmdbJ3RpdGxlX3RlbXBsYXRlbGlzdCddID0gJ1RlbXBsYXRlIExpc3QnOwokbGFuZ1sndGl0bGVfdGVtcGxhdGVmZWF0dXJlYm94J10gPSAnVGVtcGxhdGUgRmVhdHVyZSBCb3gnOwokbGFuZ1sndGl0bGVfcmVsYXRpb25zJ10gPSAnUmVsYXRpb25zJzsKJGxhbmdbJ3RpdGxlX3NldHRpbmdzJ10gPSAnU2V0dGluZ3MnOwoKCiRsYW5nWydhZGRfbmV3X2l0ZW0nXSA9ICdBZGQgbGluayc7CgokbGFuZ1snZmllbGRfdGl0bGVfbGFiZWwnXSA9ICdMaW5rIE5hbWUnOwokbGFuZ1snZmllbGRfdXJsX2xhYmVsJ10gPSAnVVJMJzsKJGxhbmdbJ2ZpZWxkX2Rlc2NyaXB0aW9uX2xhYmVsJ10gPSAnRGVzY3JpcHRpb24nOwokbGFuZ1snZmllbGRfbmFtZV9sYWJlbCddID0gJ05hbWUnOwokbGFuZ1snZmllbGRfY29kZV9sYWJlbCddID0gJ0NvZGUnOwokbGFuZ1snZmllbGRfcG9zaXRpb25fbGFiZWwnXSA9ICdQb3NpdGlvbic7CgokbGFuZ1snYWN0aW9uX2VkaXQnXSA9ICdFZGl0IExpbmsnOwokbGFuZ1snYWN0aW9uX2FkZCddID0gJ0FkZCBMaW5rJzsKJGxhbmdbJ2FjdGlvbl9zdWJtaXQnXSA9ICdTdWJtaXQnOwokbGFuZ1snYWN0aW9uX2NhbmNlbCddID0gJ0NhbmNlbCc7CiRsYW5nWydhY3Rpb25fYXBwbHknXSA9ICdBcHBseSc7CiRsYW5nWydhY3Rpb25fYWRkX3RlbXBsYXRlJ10gPSAnQWRkIHRlbXBsYXRlJzsKJGxhbmdbJ2FjdGlvbl9zdWJtaXRfdGVtcGxhdGUnXSA9ICdTdWJtaXQnOwokbGFuZ1snYWN0aW9uX2FwcGx5X3RlbXBsYXRlJ10gPSAnVXBkYXRlIHRlbXBsYXRlJzsKJGxhbmdbJ2FjdGlvbl9kZWxldGVfdGVtcGxhdGUnXSA9ICdBcHBseSc7CiRsYW5nWydhY3Rpb25fcmVzdG9yZV9saXN0J10gPSAnUmVzdG9yZSBMaXN0JzsKJGxhbmdbJ2FjdGlvbl9yZXN0b3JlX2RldGFpbHMnXSA9ICdSZXN0b3JlIERldGFpbHMnOwoKCgokbGFuZ1snY29uZmlybV9kZWxldGUnXSA9ICdBcmUgeW91IHN1cmU/JzsKCiRsYW5nWydoZWFkZXInXSA9ICdMaW5rcyc7CgoKJGxhbmdbJ2Vycm9yX3RpdGxlJ10gPSAnVGhlIGZpZWxkICJ0aXRsZSIgaXMgbm90IGZpbGxlZCBwcm9wZXJseSc7CiRsYW5nWydlcnJvcl91cmwnXSA9ICdUaGUgZmllbGQgIlVSTCIgaXMgbm90IGZpbGxlZCBwcm9wZXJseSc7CgoKJGxhbmdbJ2NoYW5nZWxvZyddID0gJwoJPHVsPgoJCTxsaT5WZXJzaW9uIDAuMC4xIC0gMDEgT2N0b2JlciAyMDA3LiBJbml0aWFsIFJlbGVhc2UuCgkJPGxpPlZlcnNpb24gMC4wLjIgLSAxMSBPY3RvYmVyIDIwMDcuIEJ1Z3MgZml4ZXMgJiBNb2R1bGUgWHRlbmRlciBpbnRlZ3JhdGlvbjwvbGk+CgkJPGxpPlZlcnNpb24gMC4wLjMgLSAxNSBPY3RvYmVyIDIwMDcuIE9yZGVyaW5nIGZpZWxkIGFkZGVkPC9saT4KCTwvdWw+Cic7CiRsYW5nWydoZWxwJ10gPSAnCgk8aDM+V2hhdCBEb2VzIFRoaXMgRG8/PC9oMz4KCTxwPlRoaXMgbW9kdWxlIGhhbmRsZSBhIGxpbmtzIGxpYnJhcnkgdGhhdCBjYW4gYmUgbGlua2VkIHdpdGggbXVsdGlwbGUgcGFnZXMgYW5kIGNhdGVnb3JpZXMgdHJvdWdoIE1vZHVsZVh0ZW5kZXI8L3A+CgkKCTxoMz5Ib3cgRG8gSSBVc2UgSXQ8L2gzPgoJCgk8cD5UbyBpbmNsdWRlIHRoaXMgbW9kdWxlIG9uIGEgcGFnZSwgdXNlIHRoZSB0YWcge2Ntc19tb2R1bGUgbW9kdWxlPSJYdGVuZGVkTGlua3MifTwvcD4KCQoJPGgzPldoYXQgUGFyYW1ldGVycyBEb2VzIEl0IFRha2U8L2gzPgoJCgk8cD4KCQoJPHVsPgoJCTxsaT48Yj5jdXJyZW50cGFnZTwvYj4gLSBJZiB5b3Ugc2V0IHRoYXQsIGl0IHdpbGwgb25seSBzaG93IHRoZSBjdXJyZW50IHBhZ2UgcmVsYXRlZCBsaW5rcy48L2xpPgoJCTxsaT48Yj5wYWdlczwvYj4gLSBQdXQgdGhlIGxpc3Qgb2YgYWxsIHJlbGF0ZWQgcGFnZXMgKHBhZ2UgaWQpIChzZXBhcmF0ZSBieSBhIGNvbW1hKSB0aGF0IHRoZSBsaXN0IG11c3Qgc2hvdy48L2xpPgoJCTxsaT48Yj5jYXRlZ29yeTwvYj4gLSBJZiB5b3Ugc2V0IHRoYXQsIGl0IHdpbGwgb25seSBzaG93IHRoZSBjYXRlZ29yeSAocHV0IHRoZSBjYXRlZ29yeSBpZCkgcmVsYXRlZCBsaW5rcy48L2xpPgoJCTxsaT48Yj5jYXRlZ29yaWVzPC9iPiAtIFB1dCB0aGUgbGlzdCBvZiBhbGwgcmVsYXRlZCBjYXRlZ29yaWVzIChjYXRlZ29yeSBpZCkgKHNlcGFyYXRlIGJ5IGEgY29tbWEpIHRoYXQgdGhlIGxpc3QgbXVzdCBzaG93LjwvbGk+CgkJPGxpPjxiPm1heF9pdGVtczwvYj4gLSBPbmx5IHNob3cgdGhlIFggbGFzdCBpdGVtcy48L2xpPgoJPC91bD4KCQoJPC9wPgoKCTxoMz5TdXBwb3J0PC9oMz4KCTxwPkFzIHBlciB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkIGFzLWlzLiBQbGVhc2UgcmVhZCB0aGUgdGV4dCBvZiB0aGUgbGljZW5zZSBmb3IgdGhlIGZ1bGwgZGlzY2xhaW1lci48L3A+Cgk8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4KCTxwPkNvcHlyaWdodCAmY29weTsgMjAwNywgQmVuamFtaW4gTWFnaXRzIDxhIGhyZWY9Im1haWx0bzpiZW5qYW1pbi5tYWdpdHNAZ21haWwuY29tIj4mbHQ7YmVuamFtaW4ubWFnaXRzQGdtYWlsLmNvbSZndDs8L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+Cgk8cD5UaGlzIG1vZHVsZSBoYXMgYmVlbiByZWxlYXNlZCB1bmRlciB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5HTlUgUHVibGljIExpY2Vuc2U8L2E+LiBZb3UgbXVzdCBhZ3JlZSB0byB0aGlzIGxpY2Vuc2UgYmVmb3JlIHVzaW5nIHRoZSBtb2R1bGUuPC9wPic7Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIEluc3RhbGwoKQoJICAgV2hlbiB5b3VyIG1vZHVsZSBpcyBpbnN0YWxsZWQsIHlvdSBtYXkgbmVlZCB0byBkbyBzb21lCgkgICBzZXR1cC4gVHlwaWNhbCB0aGluZ3MgdGhhdCBoYXBwZW4gaGVyZSBhcmUgdGhlIGNyZWF0aW9uCgkgICBhbmQgcHJlcG9wdWxhdGlvbiBvZiBkYXRhYmFzZSB0YWJsZXMsIGRhdGFiYXNlIHNlcXVlbmNlcywKCSAgIHBlcm1pc3Npb25zLCBwcmVmZXJlbmNlcywgZXRjLgoJICAgCSAgIAoJICAgRm9yIGluZm9ybWF0aW9uIG9uIHRoZSBjcmVhdGlvbiBvZiBkYXRhYmFzZSB0YWJsZXMsCgkgICBjaGVjayBvdXQgdGhlIEFET0RCIERhdGEgRGljdGlvbmFyeSBwYWdlIGF0CgkgICBodHRwOi8vcGhwbGVucy5jb20vbGVucy9hZG9kYi9kb2NzLWRhdGFkaWN0Lmh0bQoJICAgCgkgICBUaGlzIGZ1bmN0aW9uIGNhbiByZXR1cm4gYSBzdHJpbmcgaW4gY2FzZSBvZiBhbnkgZXJyb3IsCgkgICBhbmQgQ01TIHdpbGwgbm90IGNvbnNpZGVyIHRoZSBtb2R1bGUgaW5zdGFsbGVkLgoJICAgU3VjY2Vzc2Z1bCBpbnN0YWxscyBzaG91bGQgcmV0dXJuIEZBTFNFIG9yIG5vdGhpbmcgYXQgYWxsLgoJICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoJCQoJCS8vIFR5cGljYWwgRGF0YWJhc2UgSW5pdGlhbGl6YXRpb24KCQkkZGIgPSYgJGdDbXMtPkdldERiKCk7CgkJCgkJLy8gbXlzcWwtc3BlY2lmaWMsIGJ1dCBpZ25vcmVkIGJ5IG90aGVyIGRhdGFiYXNlCgkJJHRhYm9wdGFycmF5ID0gYXJyYXkoJ215c3FsJyA9PiAnVFlQRT1NeUlTQU0nKTsKCQkkZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCRkYik7CgkJCiAgICAgICAgLy8gdGFibGUgc2NoZW1hIGRlc2NyaXB0aW9uCiAgICAgICAgJGZsZHMgPSAiCgkJCWlkIEkgS0VZLAoJCQl0aXRsZSBDKDI1NSksCgkJCXVybCBDKDI1NSksCgkJCXBvc2l0aW9uIEMoMjU1KSwKCQkJZGVzY3JpcHRpb24gWEwKCQkJIjsKCgkJLy8gY3JlYXRlIGl0LiBUaGlzIHNob3VsZCBkbyBlcnJvciBjaGVja2luZywgYnV0IEknbSBhIGxhenkgc29kLgoJCQoJCSRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV94dGVuZGVkbGlua3MiLCAkZmxkcywgJHRhYm9wdGFycmF5KTsKCQkKCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgkJCgkJJHRoaXMtPlNldFRlbXBsYXRlKCdkaXNwbGF5X2xpc3QnLCAkdGhpcy0+R2V0VGVtcGxhdGVGcm9tRmlsZSgndGVtcGxhdGUubGlzdCcpKTsKCQkKCQkkdGhpcy0+U2V0VGVtcGxhdGUoJ3JlbGF0ZWRfbGlzdCcsICR0aGlzLT5HZXRUZW1wbGF0ZUZyb21GaWxlKCd0ZW1wbGF0ZS5saXN0JykpOwoJCQoJCS8vIGNyZWF0ZSBhIHNlcXVlbmNlCgkJCgkJJGRiLT5DcmVhdGVTZXF1ZW5jZShjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV94dGVuZGVkbGlua3Nfc2VxIik7CgkJCgkJLy8gcHV0IG1lbnRpb24gaW50byB0aGUgYWRtaW4gbG9nCgkJJHRoaXMtPkF1ZGl0KCAwLCAkdGhpcy0+TGFuZygnZnJpZW5kbHluYW1lJyksICR0aGlzLT5MYW5nKCdpbnN0YWxsZWQnLCR0aGlzLT5HZXRWZXJzaW9uKCkpKTsKCQkKPz4=]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIFVuaW5zdGFsbCgpCgkgICBTb21ldGltZXMsIGFuIGV4Y2VwdGlvbmFsbHkgdW5lbmxpZ2h0ZW5lZCBvciBpZ25vcmFudAoJICAgYWRtaW4gd2lsbCB3aXNoIHRvIHVuaW5zdGFsbCB5b3VyIG1vZHVsZS4gV2hpbGUgaXQKCSAgIHdvdWxkIGJlIGJlc3QgdG8gbGF5IGludG8gdGhlc2UgaWRpb3RzIHdpdGggYSBjbHVlc3RpY2ssCgkgICB3ZSB3aWxsIGRvIHRoZSBtYWduYW5pbW91cyB0aGluZyBhbmQgcmVtb3ZlIHRoZSBtb2R1bGUKCSAgIGFuZCBjbGVhbiB1cCB0aGUgZGF0YWJhc2UsIHBlcm1pc3Npb25zLCBhbmQgcHJlZmVyZW5jZXMKCSAgIHRoYXQgYXJlIHNwZWNpZmljIHRvIGl0LgoJICAgVGhpcyBpcyB0aGUgbWV0aG9kIHdoZXJlIHdlIGRvIHRoaXMuCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgoJCQoJCS8vIFR5cGljYWwgRGF0YWJhc2UgUmVtb3ZhbAoJCSRkYiA9JiAkZ0Ntcy0+R2V0RGIoKTsKCQkKCQkvLyByZW1vdmUgdGhlIGRhdGFiYXNlIHRhYmxlCgkJJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSggJGRiICk7CgkJJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTCggY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfeHRlbmRlZGxpbmtzIiApOwoJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgkJLy8gcmVtb3ZlIHRoZSBzZXF1ZW5jZQoJCSRkYi0+RHJvcFNlcXVlbmNlKCBjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV94dGVuZGVkbGlua3Nfc2VxIiApOwoJCS8qCgkJLy8gcmVtb3ZlIHRoZSBkYXRhYmFzZSB0YWJsZQoJCSRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoICRkYiApOwoJCSRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoIGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3h0ZW5kZWRsaW5rc19vcHRpb25zIiApOwoJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgkJLy8gcmVtb3ZlIHRoZSBzZXF1ZW5jZQoJCSRkYi0+RHJvcFNlcXVlbmNlKCBjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV94dGVuZGVkbGlua3Nfb3B0aW9uc19zZXEiICk7CgkJCgkJLy8gcmVtb3ZlIHRoZSBkYXRhYmFzZSB0YWJsZQoJCSRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoICRkYiApOwoJCSRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoIGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3h0ZW5kZWRsaW5rc19yZWxhdGlvbnMiICk7CgkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKCQkvLyByZW1vdmUgdGhlIHNlcXVlbmNlCgkJJGRiLT5Ecm9wU2VxdWVuY2UoIGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3h0ZW5kZWRsaW5rc19yZWxhdGlvbnNfc2VxIiApOwoJCQoJCS8vIHJlbW92ZSB0aGUgZGF0YWJhc2UgdGFibGUKCQkkZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCAkZGIgKTsKCQkkc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKCBjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV94dGVuZGVkbGlua3NfY2F0ZWdvcmllcyIgKTsKCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgoJCS8vIHJlbW92ZSB0aGUgc2VxdWVuY2UKCQkkZGItPkRyb3BTZXF1ZW5jZSggY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfeHRlbmRlZGxpbmtzX2NhdGVnb3JpZXNfc2VxIiApOwoJCSovCgkJCgkJLy8gcmVtb3ZlIHRoZSBwZXJtaXNzaW9ucwoJCQoJCQoJCS8vIHB1dCBtZW50aW9uIGludG8gdGhlIGFkbWluIGxvZwoJCSR0aGlzLT5BdWRpdCggMCwgJHRoaXMtPkxhbmcoJ2ZyaWVuZGx5bmFtZScpLCAkdGhpcy0+TGFuZygndW5pbnN0YWxsZWQnKSk7Cgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/method.upgrade.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIFVwZ3JhZGUoKQoJICAgSWYgeW91ciBtb2R1bGUgdmVyc2lvbiBudW1iZXIgZG9lcyBub3QgbWF0Y2ggdGhlIHZlcnNpb24KCSAgIG51bWJlciBvZiB0aGUgaW5zdGFsbGVkIG1vZHVsZSwgdGhlIENNUyBBZG1pbiB3aWxsIGdpdmUKCSAgIHlvdSBhIGNoYW5jZSB0byB1cGdyYWRlIHRoZSBtb2R1bGUuIFRoaXMgaXMgdGhlIGZ1bmN0aW9uCgkgICB0aGF0IGFjdHVhbGx5IGhhbmRsZXMgdGhlIHVwZ3JhZGUuCgkgICBJZGVhbGx5LCB0aGlzIGZ1bmN0aW9uIHNob3VsZCBoYW5kbGUgdXBncmFkZXMgaW5jcmVtZW50YWxseSwKCSAgIHNvIHlvdSBjb3VsZCB1cGdyYWRlIGZyb20gdmVyc2lvbiAwLjAuMSB0byAxMC41Ljcgd2l0aAoJICAgYSBzaW5nbGUgY2FsbC4gRm9yIGEgZ3JlYXQgZXhhbXBsZSBvZiB0aGlzLCBzZWUgdGhlIE5ld3MKCSAgIG1vZHVsZSBpbiB0aGUgc3RhbmRhcmQgQ01TIGluc3RhbGwuCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgkJJGN1cnJlbnRfdmVyc2lvbiA9ICRvbGR2ZXJzaW9uOwoJCXN3aXRjaCgkY3VycmVudF92ZXJzaW9uKQoJCXsKCQkJY2FzZSAiMS4wIjoKCQkJICAgICBicmVhazsKCQkJY2FzZSAiMS4xIjoKCQkJICAgICBicmVhazsKCQl9CgkJCgkJLy8gcHV0IG1lbnRpb24gaW50byB0aGUgYWRtaW4gbG9nCgkJJHRoaXMtPkF1ZGl0KCAwLCAkdGhpcy0+TGFuZygnZnJpZW5kbHluYW1lJyksICR0aGlzLT5MYW5nKCd1cGdyYWRlZCcsJHRoaXMtPkdldFZlcnNpb24oKSkpOwoKPz4=]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/adminAddEdit.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmb3JtX3N0YXJ0fQoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskZmllbGRfdGl0bGVfbGFiZWx9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGZpZWxkX3RpdGxlX25hbWV9PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskZmllbGRfdXJsX2xhYmVsfTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRmaWVsZF91cmxfbmFtZX08L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRmaWVsZF9wb3NpdGlvbl9sYWJlbH06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskZmllbGRfcG9zaXRpb25fbmFtZX08L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRmaWVsZF9kZXNjcmlwdGlvbl9sYWJlbH06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskZmllbGRfZGVzY3JpcHRpb25fbmFtZX08L3A+CjwvZGl2PgoKCgp7JGlucHV0X3N1Ym1pdHRlZH0KCntpZiAkaXRlbV9pZH0KCXskaXRlbV9pZH0Key9pZn0KCjxici8+CjxkaXY+eyR4dGVuZGVkX2Zvcm19PC9kaXY+Cgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskc3VibWl0X2J1dHRvbn17JGFwcGx5X2J1dHRvbn17JGNhbmNlbH08L3A+CjwvZGl2Pgp7JGZvcm1fZW5kfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/adminpanel.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyR0YWJfaGVhZGVyc30KCgl7JHN0YXJ0X2xpbmtzX3RhYn0KCQkKCQk8ZGl2IGNsYXNzPSJwYWdlb3B0aW9ucyI+CgkJCTxwIGNsYXNzPSJwYWdlb3B0aW9ucyI+eyRhZGRpdGVtbGlua30geyRhZGRpdGVtfTwvcD4KCQk8L2Rpdj4KCQkKCQl7aWYgJGl0ZW1jb3VudCA+IDB9CgkJCTx0YWJsZSBjZWxsc3BhY2luZz0iMCIgY2xhc3M9InBhZ2V0YWJsZSI+CgkJCQk8dGhlYWQ+CgkJCQkJPHRyPgoJCQkJCQk8dGg+eyRoZWFkZXJ9PC90aD4KCQkJCQkJPHRoIGNsYXNzPSJwYWdlaWNvbiI+Jm5ic3A7PC90aD4KCQkJCQkJPHRoIGNsYXNzPSJwYWdlaWNvbiI+Jm5ic3A7PC90aD4KCQkJCQk8L3RyPgoJCQkJPC90aGVhZD4KCQkJCTx0Ym9keT4KCQkJe2ZvcmVhY2ggZnJvbT0kaXRlbXMgaXRlbT1lbnRyeX0KCQkJCQk8dHIgY2xhc3M9InskZW50cnktPnJvd2NsYXNzfSIgb25tb3VzZW92ZXI9InRoaXMuY2xhc3NOYW1lPSd7JGVudHJ5LT5yb3djbGFzc31ob3Zlcic7IiBvbm1vdXNlb3V0PSJ0aGlzLmNsYXNzTmFtZT0neyRlbnRyeS0+cm93Y2xhc3N9JzsiPgoJCQkJCQk8dGQ+eyRlbnRyeS0+bmFtZX08L3RkPgoJCQkJCQk8dGQgd2lkdGg9IjMwIj57JGVudHJ5LT5lZGl0bGlua308L3RkPgoJCQkJCQk8dGQgd2lkdGg9IjMwIj57JGVudHJ5LT5kZWxldGVsaW5rfTwvdGQ+CgkJCQkJPC90cj4KCQkJey9mb3JlYWNofQoJCQkJPC90Ym9keT4KCQkJPC90YWJsZT4KCQl7L2lmfQoJCQoJeyRlbmRfdGFifQoJCgl7JHN0YXJ0X2xpc3RfdGVtcGxhdGVfdGFifQoJCQoJCTxkaXYgY2xhc3M9InBhZ2VvcHRpb25zIj4KCQkJPHAgY2xhc3M9InBhZ2VvcHRpb25zIj57JGFkZHRlbXBsYXRlaWNvbn0geyRhZGR0ZW1wbGF0ZWxpbmt9PC9wPgoJCTwvZGl2PgoJCQoJCXtpZiAkdGVtcGxhdGVzX2NvdW50ID4gMH0KCQk8dGFibGUgY2VsbHNwYWNpbmc9IjAiIGNsYXNzPSJwYWdldGFibGUiPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPnskdGl0bGVfdGVtcGxhdGV9PC90aD4KCQkJCQk8dGggY2xhc3M9InBhZ2VpY29uIj4mbmJzcDs8L3RoPgoJCQkJCTx0aCBjbGFzcz0icGFnZWljb24iPiZuYnNwOzwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHk+CgkJe2ZvcmVhY2ggZnJvbT0kdGVtcGxhdGVzIGl0ZW09ZW50cnl9CgkJCQk8dHIgY2xhc3M9InskZW50cnktPnJvd2NsYXNzfSIgb25tb3VzZW92ZXI9InRoaXMuY2xhc3NOYW1lPSd7JGVudHJ5LT5yb3djbGFzc31ob3Zlcic7IiBvbm1vdXNlb3V0PSJ0aGlzLmNsYXNzTmFtZT0neyRlbnRyeS0+cm93Y2xhc3N9JzsiPgoJCQkJCTx0ZD57JGVudHJ5LT5uYW1lfTwvdGQ+CgkJCQkJPHRkPnskZW50cnktPmVkaXRsaW5rfTwvdGQ+CgkJCQkJPHRkPnskZW50cnktPmRlbGV0ZWxpbmt9PC90ZD4KCQkJCTwvdHI+CgkJey9mb3JlYWNofQoJCQk8L3Rib2R5PgoJCTwvdGFibGU+CgkJCgkJPGRpdiBjbGFzcz0icGFnZW9wdGlvbnMiPgoJCQk8cCBjbGFzcz0icGFnZW9wdGlvbnMiPnskYWRkdGVtcGxhdGVpY29ufSB7JGFkZHRlbXBsYXRlbGlua308L3A+CgkJPC9kaXY+CgkJCgkJey9pZn0KCQkKCXskZW5kX3RhYn0KCnskdGFiX2Zvb3RlcnN9CgoK]]></data>
	</file>
	<file>
	  <filename>/templates/Display.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmICRpdGVtY291bnQgPiAwfQoJPGRpdiBpZD0ibGlua3MiPgoJe2ZvcmVhY2ggZnJvbT0kaXRlbXMgaXRlbT1lbnRyeX0KCQk8ZGl2IGNsYXNzPSJsaW5rIj4KCQkJPGRpdj48YSBocmVmPSJ7JGVudHJ5LT51cmx9IiB0YXJnZXQ9Il9ibGFuayI+eyRlbnRyeS0+dGl0bGV9PC9hPjwvZGl2PgkKCQkJCgkJCXtpZiAkZW50cnktPmRlc2NyaXB0aW9ufQoJCQkJPGRpdiBjbGFzcz0iZGVzY3JpcHRpb24iPgoJCQkJCXskZW50cnktPmRlc2NyaXB0aW9ufQoJCQkJPC9kaXY+CgkJCXsvaWZ9CgkJPC9kaXY+Cgl7L2ZvcmVhY2h9Cgk8L2Rpdj4Key9pZn0=]]></data>
	</file>
	<file>
	  <filename>/templates/error.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskdGl0bGVfZXJyb3J9PC9oMz4Ke2lmICRtZXNzYWdlIT0nJ308cD57JG1lc3NhZ2V9PC9wPnsvaWZ9]]></data>
	</file>
	<file>
	  <filename>/templates/managetemplate.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmb3JtX3N0YXJ0fQoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfdGVtcGxhdGV9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3RlbXBsYXRlfTwvcD4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRjb2RlX3RlbXBsYXRlfTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyR0ZXh0YXJlYV90ZW1wbGF0ZX08L3A+CjwvZGl2PgoKCgl7JGZvcm1fZGV0YWlsc19zdWJtaXR9Cgl7JGZvcm1fZGV0YWlsc19hcHBseX0KCXskZm9ybV9kZXRhaWxzX3Jlc3RvcmVsaXN0fQoJeyRmb3JtX2RldGFpbHNfcmVzdG9yZWRldGFpbHN9Cgp7JGZvcm1fZW5kfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/template.list.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmICRpdGVtY291bnQgPiAwfQoKCTxkaXYgaWQ9Ilh0ZW5kZWRMaW5rcyI+CgkKCQk8dWw+CgkJCgkJe2ZvcmVhY2ggZnJvbT0kaXRlbXMgaXRlbT1pdGVtfQoJCQoJCQk8bGk+CgkJCQoJCQkJPGRpdiBjbGFzcz0idGl0bGUiPnskaXRlbS0+dGl0bGV9PC9kaXY+CgkJCQkKCQkJCXtpZiAkaXRlbS0+ZGVzY3JpcHRpb24gbmUgIiJ9CgkJCQkJPGRpdiBjbGFzcz0ic3VtbWFyeSI+eyRpdGVtLT5kZXNjcmlwdGlvbn08L2Rpdj4KCQkJCXsvaWZ9CgkJCQkKCQkJCTxhIGhyZWY9InskaXRlbS0+dXJsfSIgdGFyZ2V0PSJfYmxhbmsiPnskaXRlbS0+dXJsfTwvYT4KCQkJCQoJCQk8L2xpPgoJCQkKCQl7L2ZvcmVhY2h9CgkJCgkJPC91bD4KCQkKCTwvZGl2PgoJCnsvaWZ9]]></data>
	</file>
	<file>
	  <filename>/templates/template.related.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmICRpdGVtY291bnQgPiAwfQoKCTxkaXYgaWQ9Ilh0ZW5kZWRMaW5rcyI+CgkKCQk8dWw+CgkJCgkJe2ZvcmVhY2ggZnJvbT0kaXRlbXMgaXRlbT1pdGVtfQoJCQoJCQk8bGk+CgkJCQoJCQkJPGRpdiBjbGFzcz0idGl0bGUiPjxhIGhyZWY9InskaXRlbS0+dXJsfSIgdGFyZ2V0PSJfYmxhbmsiPnskaXRlbS0+dGl0bGV9PC9hPjwvZGl2PgoJCQkJCgkJCQl7aWYgJGl0ZW0tPmRlc2NyaXB0aW9uIG5lICIifQoJCQkJCTxkaXYgY2xhc3M9InN1bW1hcnkiPnskaXRlbS0+ZGVzY3JpcHRpb259PC9kaXY+CgkJCQl7L2lmfQoJCQkJCgkJCTwvbGk+CgkJCQoJCXsvZm9yZWFjaH0KCQkKCQk8L3VsPgoJCQoJPC9kaXY+CgkKey9pZn0=]]></data>
	</file>
	<file>
	  <filename>/XtendedLinks.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IExpbmtzIC0gCiMgVmVyc2lvbjogMC4wLjIsIEJlbmphbWluIE1hZ2l0cwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA3IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMgVGhpcyBmaWxlIG9yaWdpbmFsbHkgY3JlYXRlZCBieSBNb2R1bGVNYWtlciBtb2R1bGUsIHZlcnNpb24gMC4zLjEKIyBDb3B5cmlnaHQgKGMpIDIwMDcgYnkgU2FtdWVsIEdvbGRzdGVpbiAoc2pnQGNtc21hZGVzaW1wbGUub3JnKSAKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIEZvciBIZWxwIGJ1aWxkaW5nIG1vZHVsZXM6CiMgLSBSZWFkIHRoZSBEb2N1bWVudGF0aW9uIGFzIGl0IGJlY29tZXMgYXZhaWxhYmxlIGF0CiMgICBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnLwojIC0gQ2hlY2sgb3V0IHRoZSBTa2VsZXRvbiBNb2R1bGUgZm9yIGEgY29tbWVudGVkIGV4YW1wbGUKIyAtIExvb2sgYXQgb3RoZXIgbW9kdWxlcywgYW5kIGxlYXJuIGZyb20gdGhlIHNvdXJjZQojIC0gQ2hlY2sgb3V0IHRoZSBmb3J1bXMgYXQgaHR0cDovL2ZvcnVtcy5jbXNtYWRlc2ltcGxlLm9yZwojIC0gQ2hhdCB3aXRoIGRldmVsb3BlcnMgb24gdGhlICNjbXMgSVJDIGNoYW5uZWwKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KY2xhc3MgWHRlbmRlZExpbmtzIGV4dGVuZHMgQ01TTW9kdWxlCnsKCglmdW5jdGlvbiBHZXROYW1lKCkKCXsKCQlyZXR1cm4gJ1h0ZW5kZWRMaW5rcyc7Cgl9CgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIEdldEZyaWVuZGx5TmFtZSgpCgkgICBUaGlzIGNhbiByZXR1cm4gYW55IHN0cmluZywgcHJlZmVyYWJseSBhIGxvY2FsaXplZCBuYW1lCgkgICBvZiB0aGUgbW9kdWxlLiBUaGlzIGlzIHRoZSBuYW1lIHRoYXQncyBzaG93biBpbiB0aGUKCSAgIEFkbWluIE1lbnVzIGFuZCBzZWN0aW9uIHBhZ2VzIChpZiB0aGUgbW9kdWxlIGhhcyBhbiBhZG1pbgoJICAgY29tcG9uZW50KS4KCSAgIAoJICAgU2VlIHRoZSBub3RlIG9uIGxvY2FsaXphdGlvbiBhdCB0aGUgdG9wIG9mIHRoaXMgZmlsZS4KCSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCWZ1bmN0aW9uIEdldEZyaWVuZGx5TmFtZSgpCgl7CgkJcmV0dXJuICR0aGlzLT5MYW5nKCdmcmllbmRseW5hbWUnKTsKCX0KCgkKCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkgICBHZXRWZXJzaW9uKCkKCSAgIFRoaXMgY2FuIHJldHVybiBhbnkgc3RyaW5nLCBwcmVmZXJhYmx5IGEgbnVtYmVyIG9yCgkgICBzb21ldGhpbmcgdGhhdCBtYWtlcyBzZW5zZSBmb3IgZGVzaWduYXRpbmcgYSB2ZXJzaW9uLgoJICAgVGhlIENNUyB3aWxsIHVzZSB0aGlzIHRvIGlkZW50aWZ5IHdoZXRoZXIgb3Igbm90CgkgICB0aGUgaW5zdGFsbGVkIHZlcnNpb24gb2YgdGhlIG1vZHVsZSBpcyBjdXJyZW50LCBhbmQKCSAgIHRoZSBtb2R1bGUgd2lsbCB1c2UgaXQgdG8gZmlndXJlIG91dCBob3cgdG8gdXBncmFkZQoJICAgaXRzZWxmIGlmIHJlcXVlc3RlZC4JICAgCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCglmdW5jdGlvbiBHZXRWZXJzaW9uKCkKCXsKCQlyZXR1cm4gJzAuMC4zJzsKCX0KCgkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJICAgR2V0SGVscCgpCgkgICBUaGlzIHJldHVybnMgSFRNTCBpbmZvcm1hdGlvbiBvbiB0aGUgbW9kdWxlLgoJICAgVHlwaWNhbGx5LCB5b3UnbGwgd2FudCB0byBpbmNsdWRlIGluZm9ybWF0aW9uIG9uIGhvdyB0bwoJICAgdXNlIHRoZSBtb2R1bGUuCgkgICAKCSAgIFNlZSB0aGUgbm90ZSBvbiBsb2NhbGl6YXRpb24gYXQgdGhlIHRvcCBvZiB0aGlzIGZpbGUuCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCglmdW5jdGlvbiBHZXRIZWxwKCkKCXsKCQlyZXR1cm4gJHRoaXMtPkxhbmcoJ2hlbHAnKTsKCX0KCgkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJICAgR2V0QXV0aG9yKCkKCSAgIFRoaXMgcmV0dXJucyBhIHN0cmluZyB0aGF0IGlzIHByZXNlbnRlZCBpbiB0aGUgTW9kdWxlCgkgICBBZG1pbiBpZiB5b3UgY2xpY2sgb24gdGhlICJBYm91dCIgbGluay4KCSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCWZ1bmN0aW9uIEdldEF1dGhvcigpCgl7CgkJcmV0dXJuICdCZW5qYW1pbiBNYWdpdHMnOwoJfQoKCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkgICBHZXRBdXRob3JFbWFpbCgpCgkgICBUaGlzIHJldHVybnMgYSBzdHJpbmcgdGhhdCBpcyBwcmVzZW50ZWQgaW4gdGhlIE1vZHVsZQoJICAgQWRtaW4gaWYgeW91IGNsaWNrIG9uIHRoZSAiQWJvdXQiIGxpbmsuIEl0IGhlbHBzIHVzZXJzCgkgICBvZiB5b3VyIG1vZHVsZSBnZXQgaW4gdG91Y2ggd2l0aCB5b3UgdG8gc2VuZCBidWcgcmVwb3J0cywKCSAgIHF1ZXN0aW9ucywgY2FzZXMgb2YgYmVlciwgYW5kL29yIGxhcmdlIHN1bXMgb2YgbW9uZXkuCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCglmdW5jdGlvbiBHZXRBdXRob3JFbWFpbCgpCgl7CgkJcmV0dXJuICdiZW5qYW1pbi5tYWdpdHNAZ21haWwuY29tJzsKCX0KCgkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJICAgR2V0Q2hhbmdlTG9nKCkKCSAgIFRoaXMgcmV0dXJucyBhIHN0cmluZyB0aGF0IGlzIHByZXNlbnRlZCBpbiB0aGUgbW9kdWxlCgkgICBBZG1pbiBpZiB5b3UgY2xpY2sgb24gdGhlIEFib3V0IGxpbmsuIEl0IGhlbHBzIHVzZXJzCgkgICBmaWd1cmUgb3V0IHdoYXQncyBjaGFuZ2VkIGJldHdlZW4gcmVsZWFzZXMuCgkgICBTZWUgdGhlIG5vdGUgb24gbG9jYWxpemF0aW9uIGF0IHRoZSB0b3Agb2YgdGhpcyBmaWxlLgoJICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoJZnVuY3Rpb24gR2V0Q2hhbmdlTG9nKCkKCXsKCQlyZXR1cm4gJHRoaXMtPkxhbmcoJ2NoYW5nZWxvZycpOwoJfQoKCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkgICBJc1BsdWdpbk1vZHVsZSgpCgkgICBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdHJ1ZSBvciBmYWxzZSwgZGVwZW5kaW5nIHVwb24KCSAgIHdoZXRoZXIgdXNlcnMgY2FuIGluY2x1ZGUgdGhlIG1vZHVsZSBpbiBhIHBhZ2Ugb3IKCSAgIHRlbXBsYXRlIHVzaW5nIGEgc21hcnR5IHRhZyBvZiB0aGUgZm9ybQoJICAge2Ntc19tb2R1bGUgbW9kdWxlPSdMaW5rcycgcGFyYW0xPXZhbCBwYXJhbTI9dmFsLi4ufQoJICAgCgkgICBJZiB5b3VyIG1vZHVsZSBkb2VzIG5vdCBnZXQgaW5jbHVkZWQgaW4gcGFnZXMgb3IKCSAgIHRlbXBsYXRlcywgcmV0dXJuICJmYWxzZSIgaGVyZS4KCSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCWZ1bmN0aW9uIElzUGx1Z2luTW9kdWxlKCkKCXsKCQlyZXR1cm4gdHJ1ZTsKCX0KCgkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJICAgSGFzQWRtaW4oKQoJICAgVGhpcyBmdW5jdGlvbiByZXR1cm5zIGEgYm9vbGVhbiB2YWx1ZSwgZGVwZW5kaW5nIG9uCgkgICB3aGV0aGVyIHlvdXIgbW9kdWxlIGFkZHMgYW55dGhpbmcgdG8gdGhlIEFkbWluIGFyZWEgb2YKCSAgIHRoZSBzaXRlLiBGb3IgdGhlIHJlc3Qgb2YgdGhlc2UgY29tbWVudHMsIEknbGwgYmUgY2FsbGluZwoJICAgdGhlIGFkbWluIHBhcnQgb2YgeW91ciBtb2R1bGUgdGhlICJBZG1pbiBQYW5lbCIgZm9yCgkgICB3YW50IG9mIGEgYmV0dGVyIHRlcm0uCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCglmdW5jdGlvbiBIYXNBZG1pbigpCgl7CgkJcmV0dXJuIHRydWU7Cgl9CgoKCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkgICBHZXRBZG1pblNlY3Rpb24oKQoJICAgSWYgeW91ciBtb2R1bGUgaGFzIGFuIEFkbWluIFBhbmVsLCB5b3UgY2FuIHNwZWNpZnkKCSAgIHdoaWNoIEFkbWluIFNlY3Rpb24gKG9yIHRvcC1sZXZlbCBBZG1pbiBNZW51KSBpdCBzaG93cwoJICAgdXAgaW4uIFRoaXMgbWV0aG9kIHJldHVybnMgYSBzdHJpbmcgdG8gc3BlY2lmeSB0aGF0CgkgICBzZWN0aW9uLiBWYWxpZCByZXR1cm4gdmFsdWVzIGFyZToKCgkgICBtYWluICAgICAgICAtIHRoZSBNYWluIG1lbnUgdGFiLgoJICAgY29udGVudCAgICAgLSB0aGUgQ29udGVudCBtZW51CgkgICBsYXlvdXQgICAgICAtIHRoZSBMYXlvdXQgbWVudQoJICAgdXNlcnNncm91cHMgLSB0aGUgVXNlcnMgYW5kIEdyb3VwcyBtZW51CgkgICBleHRlbnNpb25zICAtIHRoZSBFeHRlbnNpb25zIG1lbnUgKHRoaXMgaXMgdGhlIGRlZmF1bHQpCgkgICBzaXRlYWRtaW4gICAtIHRoZSBTaXRlIEFkbWluIG1lbnUKCSAgIHZpZXdzaXRlICAgIC0gdGhlIFZpZXcgU2l0ZSBtZW51IHRhYgoJICAgbG9nb3V0ICAgICAgLSB0aGUgTG9nb3V0IG1lbnUgdGFiCgkgICAKCSAgIE5vdGUgdGhhdCBpZiB5b3UgcGxhY2UgeW91ciBtb2R1bGUgaW4gdGhlIG1haW4sCgkgICB2aWV3c2l0ZSwgb3IgbG9nb3V0IHNlY3Rpb25zLCBpdCB3aWxsIHNob3cgdXAgaW4gdGhlCgkgICBtZW51cywgYnV0IHdpbGwgbm90IGJlIHZpc2libGUgaW4gYW55IHRvcC1sZXZlbAoJICAgc2VjdGlvbiBwYWdlcy4KCSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCWZ1bmN0aW9uIEdldEFkbWluU2VjdGlvbigpCgl7CgkJcmV0dXJuICdjb250ZW50JzsKCX0KCgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIEdldEFkbWluRGVzY3JpcHRpb24oKQoJICAgSWYgeW91ciBtb2R1bGUgZG9lcyBoYXZlIGFuIEFkbWluIFBhbmVsLCB5b3UKCSAgIGNhbiBoYXZlIGl0IHJldHVybiBhIGRlc2NyaXB0aW9uIHN0cmluZyB0aGF0IGdldHMgc2hvd24KCSAgIGluIHRoZSBBZG1pbiBTZWN0aW9uIHBhZ2UgdGhhdCBjb250YWlucyB0aGUgbW9kdWxlLgoJICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoJZnVuY3Rpb24gR2V0QWRtaW5EZXNjcmlwdGlvbigpCgl7CgkJcmV0dXJuICR0aGlzLT5MYW5nKCdhZG1pbmRlc2NyaXB0aW9uJyk7Cgl9CgoKCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkgICBWaXNpYmxlVG9BZG1pblVzZXIoKQoJICAgSWYgeW91ciBtb2R1bGUgZG9lcyBoYXZlIGFuIEFkbWluIFBhbmVsLCB5b3UKCSAgIGNhbiBjb250cm9sIHdoZXRoZXIgb3Igbm90IGl0J3MgZGlzcGxheWVkIGJ5IHRoZSBib29sZWFuCgkgICB0aGF0IGlzIHJldHVybmVkIGJ5IHRoaXMgbWV0aG9kLiBUaGlzIGlzIHByaW1hcmlseSB1c2VkCgkgICB0byBoaWRlIG1vZHVsZXMgZnJvbSBhZG1pbnMgd2hvIGxhY2sgcGVybWlzc2lvbiB0byB1c2UKCSAgIHRoZW0uCgkgICAKCSAgIFR5cGljYWxseSwgeW91J2xsIHVzZSBzb21lIHBlcm1pc3Npb24gdG8gc2V0IHRoaXMKCSAgIChlLmcuLCAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdTb21lIFBlcm1pc3Npb24nKTsgKQoJICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoJZnVuY3Rpb24gVmlzaWJsZVRvQWRtaW5Vc2VyKCkKCXsKICAgICAgICByZXR1cm4gdHJ1ZTsKCX0KCQoKCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkgICBDaGVja0FjY2VzcygpCgkgICBUaGlzIHdyYXBwZXIgZnVuY3Rpb24gd2lsbCBjaGVjayBhZ2FpbnN0IHRoZSBzcGVjaWZpZWQgcGVybWlzc2lvbiwKCSAgIGFuZCBkaXNwbGF5IGFuIGVycm9yIHBhZ2UgaWYgdGhlIHVzZXIgZG9lc24ndCBoYXZlIGFkZXF1YXRlIHBlcm1pc3Npb25zLgoJICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoJZnVuY3Rpb24gQ2hlY2tBY2Nlc3MoJHBlcm0gPSAnJykKCXsKCQlyZXR1cm4gJHRoaXMtPkNoZWNrUGVybWlzc2lvbigkcGVybSk7Cgl9CgkKCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkgICBEaXNwbGF5RXJyb3JQYWdlKCkKCSAgIFRoaXMgaXMgYSBzaW1wbGUgZnVuY3Rpb24gZm9yIGdlbmVyYXRpbmcgZXJyb3IgcGFnZXMuCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgICBmdW5jdGlvbiBEaXNwbGF5RXJyb3JQYWdlKCRpZCwgJiRwYXJhbXMsICRyZXR1cm5faWQsICRtZXNzYWdlPScnKQogICAgewoJCSR0aGlzLT5zbWFydHktPmFzc2lnbigndGl0bGVfZXJyb3InLCAkdGhpcy0+TGFuZygnZXJyb3InKSk7CgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduX2J5X3JlZignbWVzc2FnZScsICRtZXNzYWdlKTsKCiAgICAgICAgLy8gRGlzcGxheSB0aGUgcG9wdWxhdGVkIHRlbXBsYXRlCiAgICAgICAgZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdlcnJvci50cGwnKTsKICAgIH0KCQoKCgkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJICAgR2V0RGVwZW5kZW5jaWVzKCkKCSAgIFlvdXIgbW9kdWxlIG1heSBuZWVkIGFub3RoZXIgbW9kdWxlIHRvIGFscmVhZHkgYmUgaW5zdGFsbGVkCgkgICBiZWZvcmUgeW91IGNhbiBpbnN0YWxsIGl0LgoJICAgVGhpcyBtZXRob2QgcmV0dXJucyBhIGxpc3Qgb2YgdGhvc2UgZGVwZW5kZW5jaWVzIGFuZAoJICAgbWluaW11bSB2ZXJzaW9uIG51bWJlcnMgdGhhdCB0aGlzIG1vZHVsZSByZXF1aXJlcy4KCSAgIAoJICAgSXQgc2hvdWxkIHJldHVybiBhbiBoYXNoLCBlZy4KCSAgIHJldHVybiBhcnJheSgnc29tZW1vZHVsZSc9PicxLjAnLCAnb3RoZXJtb2R1bGUnPT4nMS4xJyk7CgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCglmdW5jdGlvbiBHZXREZXBlbmRlbmNpZXMoKQoJewoJCXJldHVybiBhcnJheSgnTW9kdWxlWHRlbmRlcic9PicwLjAuMi40Jyk7Cgl9CgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIE1pbmltdW1DTVNWZXJzaW9uKCkKCSAgIFlvdXIgbW9kdWxlIG1heSByZXF1aXJlIGZ1bmN0aW9ucyBvciBvYmplY3RzIGZyb20KCSAgIGEgc3BlY2lmaWMgdmVyc2lvbiBvZiBDTVMgTWFkZSBTaW1wbGUuCgkgICBFdmVyIHNpbmNlIHZlcnNpb24gMC4xMSwgeW91IGNhbiBzcGVjaWZ5IHdoaWNoIG1pbmltdW0KCSAgIENNUyBNUyB2ZXJzaW9uIGlzIHJlcXVpcmVkIGZvciB5b3VyIG1vZHVsZSwgd2hpY2ggd2lsbAoJICAgcHJldmVudCBpdCBmcm9tIGJlaW5nIGluc3RhbGxlZCBieSBhIHZlcnNpb24gb2YgQ01TIHRoYXQKCSAgIGNhbid0IHJ1biBpdC4KCSAgIAoJICAgVGhpcyBtZXRob2QgcmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRpbmcgdGhlCgkgICBtaW5pbXVtIHZlcnNpb24gdGhhdCB0aGlzIG1vZHVsZSByZXF1aXJlcy4KCSAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCglmdW5jdGlvbiBNaW5pbXVtQ01TVmVyc2lvbigpCgl7CgkJcmV0dXJuICIxLjAuNiI7Cgl9CgoKCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkgICBNYXhpbXVtQ01TVmVyc2lvbigpCgkgICBZb3UgbWF5IHdhbnQgdG8gcHJldmVudCBwZW9wbGUgZnJvbSB1c2luZyB5b3VyIG1vZHVsZSBpbgoJICAgZnV0dXJlIHZlcnNpb25zIG9mIENNUyBNYWRlIFNpbXBsZSwgZXNwZWNpYWxseSBpZiB5b3UKCSAgIHRoaW5rIEFQSSBmZWF0dXJlcyB5b3UgdXNlIG1heSBjaGFuZ2UgLS0gYWZ0ZXIgYWxsLCB5b3UKCSAgIG5ldmVyIHJlYWxseSBrbm93IGhvdyB0aGUgQ01TIE1TIEFQSSBjb3VsZCBldm9sdmUuCgkgICAKCSAgIFNvLCB0byBwcmV2ZW50IHBlb3BsZSBmcm9tIGZsb29kaW5nIHlvdSB3aXRoIGJ1ZyByZXBvcnRzCgkgICB3aGVuIGEgbmV3IHZlcnNpb24gb2YgQ01TIE1TIGlzIHJlbGVhc2VkLCB5b3UgY2FuIHNpbXBseQoJICAgcmVzdHJpY3QgdGhlIHZlcnNpb24uIFRoZW4sIG9mIGNvdXJzZSwgdGhlIG9udXMgaXMgb24geW91CgkgICB0byByZWxlYXNlIGEgbmV3IHZlcnNpb24gb2YgeW91ciBtb2R1bGUgd2hlbiBhIG5ldyB2ZXJzaW9uCgkgICBvZiB0aGUgQ01TIGlzIHJlbGVhc2VkLi4uCgkgICAKCSAgIFRoaXMgbWV0aG9kIHJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZQoJICAgbWF4aW11bSB2ZXJzaW9uIHRoYXQgdGhpcyBtb2R1bGUgc3VwcG9ydHMuCgkgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoJZnVuY3Rpb24gTWF4aW11bUNNU1ZlcnNpb24oKQoJewoJCXJldHVybiAiMS4xLjQuMSI7Cgl9CgoKCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkgICBJbnN0YWxsUG9zdE1lc3NhZ2UoKQoJICAgQWZ0ZXIgaW5zdGFsbGF0aW9uLCB0aGVyZSBtYXkgYmUgdGhpbmdzIHlvdSB3YW50IHRvCgkgICBjb21tdW5pY2F0ZSB0byB5b3VyIGFkbWluLiBUaGlzIGZ1bmN0aW9uIHJldHVybnMgYQoJICAgc3RyaW5nIHdoaWNoIHdpbGwgYmUgZGlzcGxheWVkLgoJICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoJZnVuY3Rpb24gSW5zdGFsbFBvc3RNZXNzYWdlKCkKCXsKCQlyZXR1cm4gJHRoaXMtPkxhbmcoJ3Bvc3RpbnN0YWxsJyk7Cgl9CgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIFVuaW5zdGFsbFBvc3RNZXNzYWdlKCkKCSAgIEFmdGVyIHJlbW92aW5nIGEgbW9kdWxlLCB0aGVyZSBtYXkgYmUgdGhpbmdzIHlvdSB3YW50IHRvCgkgICBjb21tdW5pY2F0ZSB0byB5b3VyIGFkbWluLiBUaGlzIGZ1bmN0aW9uIHJldHVybnMgYQoJICAgc3RyaW5nIHdoaWNoIHdpbGwgYmUgZGlzcGxheWVkLgoJICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoJZnVuY3Rpb24gVW5pbnN0YWxsUG9zdE1lc3NhZ2UoKQoJewoJCXJldHVybiAkdGhpcy0+TGFuZygncG9zdHVuaW5zdGFsbCcpOwoJfQoKCgoKCS8qKgoJICogVW5pbnN0YWxsUHJlTWVzc2FnZSgpCgkgKiBUaGlzIGFsbG93cyB5b3UgdG8gZGlzcGxheSBhIG1lc3NhZ2UgYWxvbmcgd2l0aCBhIFllcy9ObyBkaWFsb2cgYm94LiBJZiB0aGUgdXNlciByZXNwb25kcwoJICogaW4gdGhlIGFmZmlybWF0aXZlIHRvIHlvdXIgbWVzc2FnZSwgdGhlIHVuaW5zdGFsbCB3aWxsIHByb2NlZWQuIElmIHRoZXkgcmVzcG9uZCBpbiB0aGUKCSAqIG5lZ2F0aXZlLCB0aGUgdW5pbnN0YWxsIHdpbGwgYmUgY2FuY2VsZWQuIFRodXMsIHlvdXIgbWVzc2FnZSBzaG91bGQgYmUgb2YgdGhlIGZvcm0KCSAqICJBbGwgbW9kdWxlIGRhdGEgd2lsbCBiZSBkZWxldGVkLiBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gdW5pbnN0YWxsIHRoaXMgbW9kdWxlPyIKCSAqCgkgKiBJZiB5b3UgZG9uJ3Qgd2FudCB0aGUgZGlhbG9nLCBoYXZlIHRoaXMgbWV0aG9kIHJldHVybiBhIEZBTFNFLCB3aGljaCB3aWxsIGNhdXNlIHRoZQoJICogbW9kdWxlIHRvIHVuaW5zdGFsbCBpbW1lZGlhdGVseSBpZiB0aGUgdXNlciBjbGlja3MgdGhlICJ1bmluc3RhbGwiIGxpbmsuCgkgKi8KCWZ1bmN0aW9uIFVuaW5zdGFsbFByZU1lc3NhZ2UoKQoJewoJCXJldHVybiAkdGhpcy0+TGFuZygncmVhbGx5X3VuaW5zdGFsbCcpOwoJfQoJCgkvKioKCSAqIEdldExpc3QoKQoJICogUmV0dXJucyBhbiBhcnJheSBjb250YWluaW5nIGl0ZW1zCgkgKgoJICogQHJldHVybiBhcnJheQoJICovCgkKCWZ1bmN0aW9uIEdldExpc3QoICRpZCwgJHJldHVybmlkLCAkcGFyYW1zICkKCXsKCQkKCQlnbG9iYWwgJGdDbXM7CgkJCgkJLy8gVVNFIFBBUkFNUwoJCQoJCS8vIFBBR0VTCgkJCgkJJHBhZ2VzID0gYXJyYXkoKTsKCQkKCQlpZiAoaXNzZXQoJHBhcmFtc1snY3VycmVudHBhZ2UnXSkpCgkJewoJCQkkcGFnZXNbXSA9ICRnQ21zLT52YXJpYWJsZXNbJ2NvbnRlbnRfaWQnXTsKCQl9CgkJCgkJaWYgKGlzc2V0KCRwYXJhbXNbJ3BhZ2VzJ10pKQoJCXsKCQkJJHBhZ2VzID0gYXJyYXlfbWVyZ2UoJHBhZ2VzLCAkdGhpcy0+YXJyYXlVbnNlcmlhbGlzZSgkcGFyYW1zWydwYWdlcyddKSk7CQoJCX0KCQkKCQkvLyBDQVRFR09SSUVTCgkKCQkkY2F0ZWdvcmllcyA9IGFycmF5KCk7CgkJCgkJaWYgKGlzc2V0KCRwYXJhbXNbJ2NhdGVnb3J5J10pKQoJCXsKCQkJJGNhdGVnb3JpZXNbXSA9IGlzc2V0KCRwYXJhbXNbJ2NhdGVnb3J5J10pOwoJCX0KCQkKCQkKCQlpZiAoaXNzZXQoJHBhcmFtc1snY2F0ZWdvcmllcyddKSkKCQl7CgkJCSRjYXRlZ29yaWVzID0gYXJyYXlfbWVyZ2UoJGNhdGVnb3JpZXMsICR0aGlzLT5hcnJheVVuc2VyaWFsaXNlKCRwYXJhbXNbJ2NhdGVnb3JpZXMnXSkpOwkKCQl9CgkJCgkJaWYgKGlzc2V0KCRwYXJhbXNbJ21heF9pdGVtcyddKSkKCQl7CgkJCSRtYXhfaXRlbXMgPSAkcGFyYW1zWydtYXhfaXRlbXMnXTsKCQl9CgkJZWxzZSAKCQl7CgkJCSAkbWF4X2l0ZW1zID0gMDsKCQl9CgkJCgkJJGZpbHRlcnMgPSBhcnJheSgpOwoJCQoJCWlmIChpc3NldCgkcGFyYW1zWyd5ZWFyJ10pKQoJCXsKCQkJJGZpbHRlcnNbJ3llYXInXSA9ICRwYXJhbXNbJ3llYXInXTsKCQl9CgkJCQoJCQoJCS8vIEVORCBPRiBQQVJBTVMKCQkKCQkkZGIgPSYgJHRoaXMtPkdldERiKCk7CgkJCgkJaWYgKGNvdW50KCRwYWdlcykgPiAwIHx8IGNvdW50KCRjYXRlZ29yaWVzKSA+IDApCgkJewkKCQkKCQkJJHF1ZXJ5ID0gIlNFTEVDVCAqIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9tb2R1bGV4dGVuZGVyX3JlbGF0aW9uc19saW5rIAoJCQkKCQkJTEVGVCBKT0lOICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfeHRlbmRlZGxpbmtzCgkJCQoJCQlPTgoJCQkKCQkJIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV94dGVuZGVkbGlua3MuaWQgPSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX21vZHVsZXh0ZW5kZXJfcmVsYXRpb25zX2xpbmsubW9kdWxlX2lkCgkJCQoJCQlBTkQgbW9kdWxlbmFtZSA9ICciLiR0aGlzLT5HZXROYW1lKCkuIiciOwoJCQoJCQoJCQkkcXVlcnkgLj0gJyBXSEVSRSAnOwoJCQkKCQkJCgkJCS8vIFBhZ2VzIGZpbHRlcgoJCQkKCQkJaWYgKGNvdW50KCRwYWdlcykgPiAwKQoJCQl7CgkJCQkkcXVlcnkgLj0gIihyZWxfY29kZSA9ICdwYWdlcycgQU5EICgiOwoJCQkJCgkJCQkkZmlyc3QgPSAwOwoJCQkJCgkJCQlmb3JlYWNoICgkcGFnZXMgYXMgJHBhZ2VpZCkKCQkJCXsJCQkKCQkJCQlpZiAoISRmaXJzdCkKCQkJCQl7CgkJCQkJCSRxdWVyeSAuPSAncmVsX2lkID0gJy4kcGFnZWlkOwoJCQkJCX0KCQkJCQllbHNlIAoJCQkJCXsKCQkJCQkJJHF1ZXJ5IC49ICcgT1IgcmVsX2lkID0nLiRwYWdlaWQ7CgkJCQkJfQoJCQkJCQkKCQkJCQkkZmlyc3QrKzsJCQkJCgkJCQl9CgkJCQkKCQkJCSRxdWVyeSAuPSAiKSkiOwoJCQl9CgkJCQoJCQlpZiAoY291bnQoJHBhZ2VzKSA+IDAgJiYgY291bnQoJGNhdGVnb3JpZXMpID4gMCkKCQkJewoJCQkJJHF1ZXJ5IC49ICcgT1IgJzsKCQkJfQoJCQkKCQkJaWYgKGNvdW50KCRjYXRlZ29yaWVzKSA+IDApCgkJCXsKCQkJCSRxdWVyeSAuPSAiKHJlbF9jb2RlID0gJ29wdGlvbnMnIEFORCAoIjsKCQkJCQoJCQkJJGZpcnN0ID0gMDsKCQkJCQoJCQkJZm9yZWFjaCAoJGNhdGVnb3JpZXMgYXMgJG9wdGlvbmlkKQoJCQkJewkJCQoJCQkJCWlmICghJGZpcnN0KQoJCQkJCXsKCQkJCQkJJHF1ZXJ5IC49ICdyZWxfaWQgPSAnLiRvcHRpb25pZDsKCQkJCQl9CgkJCQkJZWxzZSAKCQkJCQl7CgkJCQkJCSRxdWVyeSAuPSAnIE9SIHJlbF9pZCA9Jy4kb3B0aW9uaWQ7CgkJCQkJfQoJCQkJCQoJCQkJCSRmaXJzdCsrOwoJCQkJfQoJCQkJCgkJCQkkcXVlcnkgLj0gIikpIjsKCQkJfQoJCQkKCQkJCgkJCSRxdWVyeSAuPSAiIE9SREVSIEJZIHBvc2l0aW9uIEFTQyAiOwkKCQkJCgkJCS8vZGllICgnPHByZT4nLiRxdWVyeS4nPC9wcmU+Jyk7CgkJCQoJCX0KCQllbHNlIAoJCXsKCQkJCgkJCSRxdWVyeSA9ICJTRUxFQ1QgKiBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfeHRlbmRlZGxpbmtzICBPUkRFUiBCWSBwb3NpdGlvbiBBU0MiOwoJCQkKCQl9CgkJCgkJLy9lY2hvICc8cHJlPicuJHF1ZXJ5Lic8L3ByZT4nOwkKCQkKCQkkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsKCQkKCQkkbGlzdCA9IGFycmF5KCk7CgkJCgkJd2hpbGUgKCRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKQoJCXsKCQkJJGl0ZW1PYmplY3QgPSBuZXcgc3RkQ2xhc3MoKTsKCQkJCgkJCSRpdGVtT2JqZWN0LT5pZD0kcm93WydpZCddOwoJCQkKCQkJJGl0ZW1PYmplY3QtPnRpdGxlPSRyb3dbJ3RpdGxlJ107CgkJCQoJCQkkaXRlbU9iamVjdC0+dXJsPSRyb3dbJ3VybCddOwoJCQkKCQkJJGl0ZW1PYmplY3QtPmRlc2NyaXB0aW9uPSRyb3dbJ2Rlc2NyaXB0aW9uJ107CgkJCQoJCQlpZiAoJHJvd1snaWQnXSAhPSAnJykKCQkJewoJCQkJJGxpc3RbXSA9ICRpdGVtT2JqZWN0OwoJCQl9CgkJfQoKCQlyZXR1cm4gJGxpc3Q7CgoJfQoJCgkvKioKCSAqIEdldEl0ZW1JbmZvcygpCgkgKiBSZXR1cm5zIERCIGZpZWxkIHZhbHVlCgkgKiAKCSAqIEBwYXJhbSBudW1lcmljICRpZAoJICogQHBhcmFtIGFycmF5ICRzZWxlY3Ryb3cKCSAqIEByZXR1cm4gc3RyaW5nCgkgKi8KCWZ1bmN0aW9uIEdldEl0ZW1JbmZvcyAoJGlkLCAkc2VsZWN0cm93ID0gYXJyYXkoKSkKCXsKCQkkZGIgPSYgJHRoaXMtPkdldERiKCk7CgkJCgkJJHF1ZXJ5ID0gIlNFTEVDVCAqIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV94dGVuZGVkbGlua3MgV0hFUkUgaWQgPSA/IjsKCQkJCQoJCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRpZCkpOwoJCQoJCXdoaWxlICgkZGJyZXN1bHQgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSkKCQl7CgkJCWlmIChjb3VudCgkc2VsZWN0cm93KSA+IDApCgkJCXsKCQkJCWZvcmVhY2ggKCRzZWxlY3Ryb3cgYXMgJGNvbCkgewkKCQkJCQkkYXJyYXlbJGNvbF0gPSAkcm93WyRjb2xdOwoJCQkJfQoJCQkJcmV0dXJuICRhcnJheTsgCgkJCQkKCQkJfQoJCQllbHNlIAoJCQl7CgkJCQlyZXR1cm4gJHJvdzsKCQkJfQoJCQkKCQl9CQkJCgl9CgkKCS8qKgoJICogRW50ZXIgZGVzY3JpcHRpb24gaGVyZS4uLgoJICoKCSAqIEBwYXJhbSB1bmtub3duX3R5cGUgJHN0cmluZwoJICogQHBhcmFtIHVua25vd25fdHlwZSAkdHlwZQoJICogQHJldHVybiB1bmtub3duCgkgKi8KCWZ1bmN0aW9uIGFycmF5VW5zZXJpYWxpc2UgKCRzdHJpbmcsICR0eXBlPScnKQoJewoJCS8vIFRoaXMgZnVuY3Rpb24gdW5zZXJpYWxpc2UgYW4gYXJyYXkgZ2l2ZW4gbGlrZSBhIHN0cmluZwoKCQkkYXJyYXkxID0gc3BsaXQoJywnLCAkc3RyaW5nKTsKCQkKCQlpZiAoJHR5cGUgPT0gJ2Fzc29jJykKCQl7CgkJCSRhcnJheTIgPSBhcnJheSgpOwoJCQkKCQkJZm9yZWFjaCAoJGFycmF5MSBhcyAkc3ViYXJyYXkpCgkJCXsKCQkJCSR0bXBhcnJheSA9IGFycmF5KCk7CgkJCQkkdG1wYXJyYXkgPSBzcGxpdCgnPT4nLCAkc3ViYXJyYXkpOwoJCQkJJGFycmF5Mlt0cmltKCR0bXBhcnJheVswXSldID0gdHJpbSgkdG1wYXJyYXlbMV0pOwoJCQl9CgkJfQoJCWVsc2UgCgkJewoJCQkkYXJyYXkyID0gJGFycmF5MTsKCQl9CgkKCQlyZXR1cm4gJGFycmF5MjsKCX0KCQoJZnVuY3Rpb24gWHRlbmRlZE1vZHVsZSAoKQoJewoJCXJldHVybiBmYWxzZTsKCX0KCQp9Cgo/Pgo=]]></data>
	</file>
</module>
