<?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>Lytebox</name>
	<version>0.2.1beta1</version>
  <mincmsversion>1.2.0</mincmsversion>
	<help>ICAgIDxoMz5XaGF0IGRvZXMgdGhpcyBkbz88L2gzPgogICAgPHA+QSBzaW1wbGUgd3JhcHBlciB0byB0aGUgTHl0ZWJveCBKYXZhU2NyaXB0IGNsYXNzLjwvcD4KICAgIDxoMz5Ib3cgRG8gSSBVc2UgSXQ8L2gzPgogICAgPG9sPgogICAgICAgIDxsaT48c3Ryb25nPkluY2x1ZGUgc3R5bGVzaGVldCAoYW5kIGphdmFzY2lwdCk8L3N0cm9uZz4KICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgIEluIHRoZSBwYWdlIHdoZXJlIHlvdSB3YW50IHVzZSB0aGlzIG1vZHVsZSwgYWRkIHRoaXMgdG8gdGhlIHBhZ2UgbWV0YWRhdGE6PGJyIC8+CiAgICAgICAgICAgICAgICAgICAgPGNvZGU+e3N0eWxlc2hlZXQgbmFtZT0nTW9kdWxlOiBMeXRlYm94JyBtZWRpYT0nc2NyZWVuJ308L2NvZGU+CiAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgPGxpPk9yIHlvdSBjYW4gYXR0YWNoIHRoZSBzdHlsZXNoZWV0ICZxdW90O01vZHVsZTogTHl0ZWJveCZxdW90OyB0byB5b3VyIHRlbXBsYXRlLjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgWW91IGNhbiBwdXQgdGhlIEphdmFTY3JpcHQgYWxzbyBpbnRvIHRoZSBwYWdlIG1ldGFkYXRhIHdpdGg6PGJyIC8+CiAgICAgICAgICAgICAgICAgICAgPGNvZGU+e0x5dGVib3ggYWN0aW9uPSdnZXRzY3JpcHRsaW5rJ308L2NvZGU+PGJyIC8+CiAgICAgICAgICAgICAgICAgICAgKGFsbCBwYXJhbXMgZm9yIHRoZSBMeXRlYm94IEpTIHlvdSBtdXN0IHNldCBpbiB0aGlzIHRhZywgb3RoZXJ3aWVzZSBpbiB0aGUgdGFnIGZvciB0aGUgZmlyc3QgaW1hZ2UpCiAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICA8L3VsPgogICAgICAgIDwvbGk+CiAgICAgICAgPGxpPjxzdHJvbmc+SW1hZ2UgQ29udGVudCBFeGFtcGxlczwvc3Ryb25nPgogICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICA8bGk+PGVtPlNpbmdsZSBJbWFnZSBFeGFtcGxlIChwdXQgdGhpcyBpbiB5b3VyIHBhZ2UgY29udGVudCk6PC9lbT48YnIgLz4KICAgICAgICAgICAgICAgICAgICA8Y29kZT57THl0ZWJveCBocmVmPSd1cGxvYWRzL2ltYWdlcy9pbWFnZS0xLmpwZycgdGl0bGU9J0ltYWdlIERlc2NyaXB0aW9uJyB0ZXh0PSdJbWFnZSAjMSd9PC9jb2RlPgogICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgIDxsaT48ZW0+R3JvdXBlZCBJbWFnZXMgRXhhbXBsZSAocHV0IHRoaXMgaW4geW91ciBwYWdlIGNvbnRlbnQpOjwvZW0+PGJyIC8+CiAgICAgICAgICAgICAgICAgICAgPGNvZGU+e0x5dGVib3ggaHJlZj0ndXBsb2Fkcy9pbWFnZXMvaW1hZ2UtMS5qcGcnIGdyb3VwPSd2YWNhdGlvbicgdGl0bGU9J01vbSBhbmQgRGFkJyB0ZXh0PSdNb20gYW5kIERhZCd9PC9jb2RlPjxiciAvPgogICAgICAgICAgICAgICAgICAgIDxjb2RlPntMeXRlYm94IGhyZWY9J3VwbG9hZHMvaW1hZ2VzL2ltYWdlLTIuanBnJyBncm91cD0ndmFjYXRpb24nIHRpdGxlPSdNeSBTaXN0ZXInIHRleHQ9J015IFNpc3Rlcid9PC9jb2RlPgogICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgIDxsaT48ZW0+U2xpZGVzaG93IEV4YW1wbGUgKHB1dCB0aGlzIGluIHlvdXIgcGFnZSBjb250ZW50KTo8L2VtPjxiciAvPgogICAgICAgICAgICAgICAgICAgIDxjb2RlPntMeXRlYm94IGhyZWY9J3VwbG9hZHMvaW1hZ2VzL2ltYWdlLTEuanBnJyBncm91cD0ndmFjYXRpb24nIGRpc3BsYXk9J3Nob3cnIHRpdGxlPSdNb20gYW5kIERhZCcgdGV4dD0nTW9tIGFuZCBEYWQnfTwvY29kZT48YnIgLz4KICAgICAgICAgICAgICAgICAgICA8Y29kZT57THl0ZWJveCBocmVmPSd1cGxvYWRzL2ltYWdlcy9pbWFnZS0yLmpwZycgZ3JvdXA9J3ZhY2F0aW9uJyBkaXNwbGF5PSdzaG93JyB0aXRsZT0nTXkgU2lzdGVyJyB0ZXh0PSdNeSBTaXN0ZXInfTwvY29kZT4KICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgIDwvdWw+CiAgICAgICAgPC9saT4KICAgICAgICA8bGk+PHN0cm9uZz5IVE1MIENvbnRlbnQgRXhhbXBsZXM8L3N0cm9uZz4KICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgICAgPGxpPjxlbT5TaW5nbGUgRXhhbXBsZSAocHV0IHRoaXMgaW4geW91ciBwYWdlIGNvbnRlbnQpOjwvZW0+PGJyIC8+CiAgICAgICAgICAgICAgICAgICAgICAgIDxjb2RlPntMeXRlYm94IGhyZWY9J2h0dHA6Ly93d3cuZ29vZ2xlLmNvbS8nIGRpc3BsYXk9J2ZyYW1lJyB0aXRsZT0nU2VhcmNoIEdvb2dsZScgdGV4dD0nR29vZ2xlIFNlYXJjaCd9PC9jb2RlPgogICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgIDxsaT48ZW0+R3JvdXBlZCBFeGFtcGxlIChwdXQgdGhpcyBpbiB5b3VyIHBhZ2UgY29udGVudCk6PC9lbT48YnIgLz4KICAgICAgICAgICAgICAgICAgICA8Y29kZT57THl0ZWJveCBocmVmPSdjYXRhbG9nMS5odG0nIGdyb3VwPSdjYXRhbG9nJyBkaXNwbGF5PSdmcmFtZScgdGl0bGU9J1N1bW1lciBDYXRhbG9nJyB0ZXh0PSdTdW1tZXIgQ2F0YWxvZyd9PC9jb2RlPjxiciAvPgogICAgICAgICAgICAgICAgICAgIDxjb2RlPntMeXRlYm94IGhyZWY9J2NhdGFsb2cyLmh0bScgZ3JvdXA9J2NhdGFsb2cnIGRpc3BsYXk9J2ZyYW1lJyB0aXRsZT0nV2ludGVyIENhdGFsb2cnIHRleHQ9J1dpbnRlciBDYXRhbG9nJ308L2NvZGU+CiAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICA8L3VsPgogICAgICAgIDwvbGk+CiAgICAgICAgPGxpPjxzdHJvbmc+VXNlIHRodW1ibmFpbHM8L3N0cm9uZz4KICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgICAgPGxpPjxlbT5TaW5nbGUgSW1hZ2UgRXhhbXBsZSAocHV0IHRoaXMgaW4geW91ciBwYWdlIGNvbnRlbnQpOjwvZW0+PGJyIC8+CiAgICAgICAgICAgICAgICAgICAgPGNvZGU+e0x5dGVib3ggaHJlZj0ndXBsb2Fkcy9pbWFnZXMvaW1hZ2UtMS5qcGcnIHRpdGxlPSdJbWFnZSBEZXNjcmlwdGlvbicgdGV4dD0nSW1hZ2UgIzEnIHRodW1ic3JjPSd1cGxvYWRzL2ltYWdlcy9pbWFnZS0xLXRodW1iLmpwZycgYWx0PSdJbWFnZSAjMSd9PC9jb2RlPgogICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgIDxsaT48ZW0+R3JvdXBlZCBJbWFnZXMgRXhhbXBsZSAocHV0IHRoaXMgaW4geW91ciBwYWdlIGNvbnRlbnQpOjwvZW0+PGJyIC8+CiAgICAgICAgICAgICAgICAgICAgPGNvZGU+e0x5dGVib3ggaHJlZj0ndXBsb2Fkcy9pbWFnZXMvaW1hZ2UtMS5qcGcnIGdyb3VwPSd2YWNhdGlvbicgdGl0bGU9J01vbSBhbmQgRGFkJyB0ZXh0PSdNb20gYW5kIERhZCcgdGh1bWJzcmM9J3VwbG9hZHMvaW1hZ2VzL2ltYWdlLTEtdGh1bWIuanBnJyB0aHVtYmFsdD0nTW9tIGFuZCBEYWQnfTwvY29kZT48YnIgLz4KICAgICAgICAgICAgICAgICAgICA8Y29kZT57THl0ZWJveCBocmVmPSd1cGxvYWRzL2ltYWdlcy9pbWFnZS0yLmpwZycgZ3JvdXA9J3ZhY2F0aW9uJyB0aXRsZT0nTXkgU2lzdGVyJyB0ZXh0PSdNeSBTaXN0ZXInIHRodW1ic3JjPSd1cGxvYWRzL2ltYWdlcy9pbWFnZS0yLXRodW1iLmpwZycgdGh1bWJhbHQ9J015IFNpc3Rlcid9PC9jb2RlPgogICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgIDxsaT48ZW0+U2xpZGVzaG93IEV4YW1wbGUgKHB1dCB0aGlzIGluIHlvdXIgcGFnZSBjb250ZW50KTo8L2VtPjxiciAvPgogICAgICAgICAgICAgICAgICAgIDxjb2RlPntMeXRlYm94IGhyZWY9J3VwbG9hZHMvaW1hZ2VzL2ltYWdlLTEuanBnJyBncm91cD0ndmFjYXRpb24nIGRpc3BsYXk9J3Nob3cnIHRpdGxlPSdNb20gYW5kIERhZCcgdGV4dD0nTW9tIGFuZCBEYWQnfTwvY29kZT48YnIgLz4KICAgICAgICAgICAgICAgICAgICA8Y29kZT57THl0ZWJveCBocmVmPSd1cGxvYWRzL2ltYWdlcy9pbWFnZS0yLmpwZycgZ3JvdXA9J3ZhY2F0aW9uJyBkaXNwbGF5PSdzaG93JyB0aXRsZT0nTXkgU2lzdGVyJyB0ZXh0PSdNeSBTaXN0ZXInfTwvY29kZT4KICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgIDwvdWw+CiAgICAgICAgPC9saT4KICAgICAgICA8bGk+PHN0cm9uZz5TZXQgYWRkaXRpb25hbCBwYXJhbWV0ZXJzIGZvciB0aGUgTHl0ZWJveCBqYXZhc2NyaXB0PC9zdHJvbmc+CiAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICAgIDxsaT48ZW0+U2luZ2xlIEV4YW1wbGUgKHB1dCB0aGlzIGluIHlvdXIgcGFnZSBjb250ZW50KTo8L2VtPjxiciAvPgogICAgICAgICAgICAgICAgICAgIDxjb2RlPntMeXRlYm94IGhyZWY9J3VwbG9hZHMvaW1hZ2VzL2ltYWdlLTEuanBnJyB0aGVtZT0nYmx1ZSd9PC9jb2RlPgogICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgIDxsaT48ZW0+R3JvdXBlZCBFeGFtcGxlIChwdXQgdGhpcyBpbiB5b3VyIHBhZ2UgY29udGVudCk6PC9lbT48YnIgLz4KICAgICAgICAgICAgICAgICAgICA8Y29kZT57THl0ZWJveCBocmVmPSd1cGxvYWRzL2ltYWdlcy9pbWFnZS0xLmpwZycgZ3JvdXA9J3ZhY2F0aW9uJyBkaXNwbGF5PSdzaG93JyBhdXRvRW5kPScwJ308L2NvZGU+PGJyIC8+CiAgICAgICAgICAgICAgICAgICAgPGNvZGU+e0x5dGVib3ggaHJlZj0ndXBsb2Fkcy9pbWFnZXMvaW1hZ2UtMi5qcGcnIGdyb3VwPSd2YWNhdGlvbicgZGlzcGxheT0nc2hvdyd9PC9jb2RlPgogICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgPC91bD4KICAgICAgICA8L2xpPgogICAgPC9vbD4KICAgIDxjaXRlPihEZXNjcmlwdGlvbiBpcyB0YWtlbiBmcm9tIHRoZSA8YSBocmVmPSJodHRwOi8vZG9sZW0uY29tL2x5dGVib3gvIj5MeXRlYm94IGhvbWVwYWdlPC9hPi4pPC9jaXRlPgogICAgPGgzPlN1cHBvcnQ8L2gzPgogICAgPHA+UGxlYXNlIHJlYWQgdGhlIHRleHQgb2YgdGhlIGxpY2Vuc2UgaW5zaWRlIHRoZSBzb3VyY2UgY29kZSBmb3IgdGhlIGZ1bGwgZGlzY2xhaW1lci48L3A+CiAgICA8cD5Gb3IgYWRkaXRpb25hbCBoZWxwIHlvdSBjYW4gYWxzbyB0cnkgdG8gYXNrIGEgcXVlc3Rpb24gaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZy8iPkNNU01TIGZvcnVtPC9hPi48L3A+CiAgICA8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4KICAgIDx1bD4KICAgICAgICA8bGk+PHN0cm9uZz5MeXRlYm94IENNU01TIG1vZHVsZTwvc3Ryb25nPgogICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICA8bGk+Q29weXJpZ2h0IMKpIDIwMDgsIENhcnN0ZW4gV2llZG1hbm4gJmx0OzxhIGhyZWY9Im1haWx0bzpjYXJzdGVuX3N0dGd0QGdteC5kZSI+Y2Fyc3Rlbl9zdHRndEBnbXguZGU8L2E+Jmd0Oy4gQWxsIHJpZ2h0cyByZXNlcnZlZC48L2xpPgogICAgICAgICAgICAgICAgPGxpPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmZyZWVic2Qub3JnL2NvcHlyaWdodC9mcmVlYnNkLWxpY2Vuc2UuaHRtbCI+RnJlZUJTRCBMaWNlbnNlPC9hPi4gWW91IG11c3QgYWdyZWUgdG8gdGhpcyBsaWNlbnNlIGJlZm9yZSB1c2luZyB0aGUgbW9kdWxlLjwvbGk+CiAgICAgICAgICAgIDwvdWw+CiAgICAgICAgPC9saT4KICAgICAgICA8bGk+PHN0cm9uZz5MeXRlYm94IEphdmFTY3JpcHQgY2xhc3M8L3N0cm9uZz4KICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgICAgPGxpPkF1dGhvcjogTWFya3VzIEYuIEhheTwvbGk+CiAgICAgICAgICAgICAgICA8bGk+V2Vic2l0ZTogPGEgaHJlZj0iaHR0cDovL2RvbGVtLmNvbS9seXRlYm94LyI+aHR0cDovL2RvbGVtLmNvbS9seXRlYm94LzwvYT48L2xpPgogICAgICAgICAgICAgICAgPGxpPkxpY2Vuc2U6IDxhIGhyZWY9Imh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LzMuMC8iPkNyZWF0aXZlIENvbW1vbnMgQXR0cmlidXRpb24gMy4wIExpY2Vuc2U8L2E+PC9saT4KICAgICAgICAgICAgPC91bD4KICAgICAgICA8L2xpPgogICAgPC91bD48aDM+UGFyYW1ldGVyczwvaDM+PHVsPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGNvbmZpZz0iaW50ZXJuYWwgdXNhZ2UiIC0gPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBwYXVzZU9uUHJldkNsaWNrPSIxIiAtIDEgdG8gcGF1c2UgdGhlIHNsaWRlc2hvdyB3aGVuIHRoZSAmcXVvdDtQcmV2JnF1b3Q7IGJ1dHRvbiBpcyBjbGlja2VkPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBwYXVzZU9uTmV4dENsaWNrPSIwIiAtIDEgdG8gcGF1c2UgdGhlIHNsaWRlc2hvdyB3aGVuIHRoZSAmcXVvdDtOZXh0JnF1b3Q7IGJ1dHRvbiBpcyBjbGlja2VkPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBhdXRvRW5kPSIxIiAtIDEgdG8gYXV0b21hdGljYWxseSBjbG9zZSBMeXRlYm94IGFmdGVyIHRoZSBsYXN0IGltYWdlIGlzIHJlYWNoZWQsIDAgdG8ga2VlcCBvcGVuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBzaG93UGxheVBhdXNlPSIxIiAtIDEgdG8gZGlzcGxheSBwYXVzZS9wbGF5IGJ1dHRvbnMgbmV4dCB0byBjbG9zZSBidXR0b24sIDAgdG8gaGlkZTwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gc2hvd0RldGFpbHM9IjEiIC0gMSB0byBkaXNwbGF5IGltYWdlIGRldGFpbHMgKGNhcHRpb24sIGNvdW50KSwgMCB0byBoaWRlPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBzaG93Q2xvc2U9IjEiIC0gMSB0byBkaXNwbGF5IHRoZSBDbG9zZSBidXR0b24sIDAgdG8gaGlkZTwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gc2hvd05hdmlnYXRpb249IjEiIC0gMSB0byBkaXNwbGF5IE5leHQvUHJldiBidXR0b25zL3RleHQgZHVyaW5nIHNsaWRlc2hvdywgMCB0byBoaWRlPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBzbGlkZUludGVydmFsPSI0MDAwIiAtIENoYW5nZSB2YWx1ZSAobWlsbGlzZWNvbmRzKSB0byBpbmNyZWFzZS9kZWNyZWFzZSB0aGUgdGltZSBiZXR3ZWVuICZxdW90O3NsaWRlcyZxdW90OyAoMTAwMDAgPSAxMCBzZWNvbmRzKTwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gYm9yZGVyU2l6ZT0iMTIiIC0gaWYgeW91IGFkanVzdCB0aGUgcGFkZGluZyBpbiB0aGUgQ1NTLCB5b3Ugd2lsbCBuZWVkIHRvIHVwZGF0ZSB0aGlzIHZhcmlhYmxlIC0tIG90aGVyd2lzZSwgbGVhdmUgdGhpcyBhbG9uZS4uLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZG9BbmltYXRpb25zPSIxIiAtIGNvbnRyb2xzIHdoZXRoZXIgb3Igbm90ICZxdW90O2FuaW1hdGUmcXVvdDsgTHl0ZWJveCwgaS5lLiByZXNpemUgdHJhbnNpdGlvbiBiZXR3ZWVuIGltYWdlcywgZmFkZSBpbi9vdXQgZWZmZWN0cywgZXRjLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gYXV0b1Jlc2l6ZT0iMSIgLSBjb250cm9scyB3aGV0aGVyIG9yIG5vdCBpbWFnZXMgc2hvdWxkIGJlIHJlc2l6ZWQgaWYgbGFyZ2VyIHRoYW4gdGhlIGJyb3dzZXIgd2luZG93IGRpbWVuc2lvbnM8L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IG5hdlR5cGU9IjEiIC0gMSA9ICZxdW90O1ByZXYvTmV4dCZxdW90OyBidXR0b25zIG9uIHRvcCBsZWZ0IGFuZCBsZWZ0IChkZWZhdWx0KSwgMiA9ICZxdW90OyZsdDsmbHQ7IHByZXYgfCBuZXh0ICZndDsmZ3Q7JnF1b3Q7IGxpbmtzIG5leHQgdG8gaW1hZ2UgbnVtYmVyPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBtYXhPcGFjaXR5PSI4MCIgLSBoaWdoZXIgb3BhY2l0eSA9IGRhcmtlciBvdmVybGF5LCBsb3dlciBvcGFjaXR5ID0gbGlnaHRlciBvdmVybGF5PC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiByZXNpemVTcGVlZD0iOCIgLSBjb250cm9scyB0aGUgc3BlZWQgb2YgdGhlIGltYWdlIHJlc2l6aW5nICgxPXNsb3dlc3QgYW5kIDEwPWZhc3Rlc3QpPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBvdXRlckJvcmRlcj0iMSIgLSBjb250cm9scyB3aGV0aGVyIHRvIHNob3cgdGhlIG91dGVyIGdyZXkgKG9yIHRoZW1lKSBib3JkZXI8L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGhpZGVGbGFzaD0iMSIgLSBjb250cm9scyB3aGV0aGVyIG9yIG5vdCBGbGFzaCBvYmplY3RzIHNob3VsZCBiZSBoaWRkZW48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IHRoZW1lPSJncmV5IiAtIHRoZW1lczogZ3JleSAoZGVmYXVsdCksIHJlZCwgZ3JlZW4sIGJsdWUsIGdvbGQ8L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IHRodW1iZXh0cmE9IiIgLSBhbnkgZXh0cmEgYXR0cmlidXRlKHMpIHlvdSB3YW50IGdpdmUgdGhlIElNRyBlbGVtZW50PC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiB0aHVtYmFsdD0iYmFzZW5hbWUoJHRodW1ic3JjKSIgLSB0aGlzIGlzIHRleHQgdG8gYmUgZGlzcGxheWVkIGluIHBsYWNlIG9mIGFuIGltYWdlPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiB0aHVtYnNyYz0iIiAtIGluZGljYXRlcyB0aGUgVVJJIHRvIHJlZmVyZW5jZSB0aGUgdGh1bWJuYWlsPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiB0ZXh0PSJiYXNlbmFtZSgkaHJlZikiIC0gdGV4dCBmb3IgdGhlIGh5cGVybGluazwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZXh0cmE9IiIgLSBhbnkgZXh0cmEgYXR0cmlidXRlKHMpIHlvdSB3YW50IGdpdmUgdGhlIEEgZWxlbWVudDwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gdGl0bGU9ImJhc2VuYW1lKCRocmVmKSIgLSB0aGlzIGF0dHJpYnV0ZSBzdWdnZXN0cyBhIHRpdGxlIChhZHZpc29yeSBvbmx5KSBmb3IgdGhlIGRlc3RpbmF0aW9uIHJlc291cmNlPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBmcmFtZWF0dHI9IndpZHRoOiA0MDBweDsgaGVpZ2h0OiA0MDBweDsgc2Nyb2xsaW5nOiBhdXRvOyIgLSBjb250cm9scyB0aGUgd2lkdGgsIGhlaWdodCBhbmQgc2Nyb2xsaW5nIG9mIHRoZSB3aW5kb3c8L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGdyb3VwPSIiIC0gaWYgeW91IHdhbnQgZ3JvdXAgMiBvciBtb3JlIGh5cGVybGluaywgZ2l2ZSB0aGUgZ3JvdXAgYSBuYW1lPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBkaXNwbGF5PSJib3giIC0gaHlwZXJsaW5rKHMpIGFyZSBzaG93ZWQgYXMgYm94LCBzaG93IG9yIGZyYW1lPC9saT48bGk+aHJlZj0iIiAtIHRoaXMgYXR0cmlidXRlIGluZGljYXRlcyB0aGUgVVJJIHRvIGJlIGxvYWRlZCB3aGVuIHRoZSBoeXBlcmxpbmsgaXMgYWN0aXZhdGVkPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBsYW5nPSJlbl9VUyIgLSBQYXJhbWV0ZXIgaXMgdXNlZCB0byBzcGVjaWZ5IHdoYXQgbGFuZ3VhZ2UgdG8gdXNlIGZvciBkaXNwbGF5IG9uIHRoZSBmcm9udGVuZC4gTm90IGFsbCBtb2R1bGVzIHN1cHBvcnQgb3IgbmVlZCB0aGlzLjwvbGk+PC91bD4=</help>
	<about>PGJyIC8+QXV0aG9yOiBDYXJzdGVuIFdpZWRtYW5uICZsdDtjYXJzdGVuX3N0dGd0QGdteC5kZSZndDs8YnIgLz48YnIgLz5WZXJzaW9uOiAwLjIuMWJldGExPGJyIC8+PGJyIC8+Q2hhbmdlIEhpc3Rvcnk6PGJyIC8+ICAgIDx1bD4KICAgICAgICA8bGk+VmVyc2lvbiAwLjIuMWJldGExCiAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICAgIDxsaT5pdCdzIG5vdyBwb3NzaWJsZSB0byB1c2UgdXJpIHBhcmFtcyBmb3IgTHl0ZWZyYW1lIHRvZ2VodGVyIHdpdGggYSB3eXNpd3lnIGVkaXRvcjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+YWRkIGFjdGlvbiAnZ2V0c2NyaXB0bGluaycgaWYgeW91IGp1c3QgbmVlZCB0aGUgbGluayBmb3IgaW5jbHVkdW5nIHRoZSBKYXZhU2NyaXB0PC9saT4KICAgICAgICAgICAgPC91bD4KICAgICAgICA8L2xpPgogICAgICAgIDxsaT5WZXJzaW9uIDAuMS4wZGV2MQogICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICA8bGk+SW5pdGlhbCBSZWxlYXNlPC9saT4KICAgICAgICAgICAgICAgIDxsaT5MeXRlYm94IHYzLjIyPC9saT4KICAgICAgICAgICAgPC91bD4KICAgICAgICA8L2xpPgogICAgPC91bD48YnIgLz4=</about>
	<description>A simple wrapper to the Lytebox JavaScript class.</description>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/action.default.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qIHZpbTogc2V0IGV4cGFuZHRhYiB0YWJzdG9wPTQgc2hpZnR3aWR0aD00IHNvZnR0YWJzdG9wPTQ6ICovCgovKioKICogTHl0ZWJveCBtb2R1bGUgZm9yIENNU01TIC0gQSBzaW1wbGUgd3JhcHBlciB0byB0aGUgTHl0ZWJveCBKYXZhU2NyaXB0IGNsYXNzLgogKgogKiBQSFAgdmVyc2lvbnMgNCBhbmQgNQogKgogKiBMSUNFTlNFOgogKiBDb3B5cmlnaHQgKGMpIDIwMDgsIENhcnN0ZW4gV2llZG1hbm4KICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KICoKICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwogKiBhcmUgbWV0OgogKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CiAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KICoKICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBVVRIT1IgT1IgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCiAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCiAqIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBVVRIT1IgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQogKiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAogKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUwogKiBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKICogSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKICogTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQogKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCiAqIFNVQ0ggREFNQUdFLgogKgogKiBAY2F0ZWdvcnkgICBNb2R1bGVzCiAqIEBwYWNrYWdlICAgIEx5dGVib3gKICogQGF1dGhvciAgICAgQ2Fyc3RlbiBXaWVkbWFubiA8Y2Fyc3Rlbl9zdHRndEBnbXguZGU+CiAqIEBjb3B5cmlnaHQgIDIwMDggQ2Fyc3RlbiBXaWVkbWFubgogKiBAbGljZW5zZSAgICBodHRwOi8vd3d3LmZyZWVic2Qub3JnL2NvcHlyaWdodC9mcmVlYnNkLWxpY2Vuc2UuaHRtbCBGcmVlQlNEIExpY2Vuc2UKICogQHZlcnNpb24gICAgU1ZOOiAkSWQ6IGFjdGlvbi5kZWZhdWx0LnBocCAxNCAyMDA4LTA2LTEwIDEwOjAyOjEwWiB3aWVkbWFubiAkCiAqIEBsaW5rICAgICAgIGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvTHl0ZWJveAogKi8KCmlmICghaXNzZXQoJGdDbXMpKSB7CiAgICBleGl0Owp9CgppZiAoIWNsYXNzX2V4aXN0cygnTHl0ZWJveF9BY3Rpb25EZWZhdWx0JykpIHsKICAgIC8qKgogICAgICogRGVmYXVsdCBhY3Rpb24gZnJvbSB0aGUgTHl0ZWJveCBtb2R1bGUuCiAgICAgKgogICAgICogVXNhZ2U6CiAgICAgKiA8b2w+CiAgICAgKiAgICAgPGxpPgogICAgICogICAgICAgICA8dWw+CiAgICAgKiAgICAgICAgICAgICA8bGk+CiAgICAgKiAgICAgICAgICAgICAgICAgSW4gdGhlIHBhZ2Ugd2hlcmUgeW91IHdhbnQgdXNlIHRoaXMgbW9kdWxlLCBhZGQgdGhpcyB0byB0aGUgcGFnZSBtZXRhZGF0YTo8YnIgLz4KICAgICAqICAgICAgICAgICAgICAgICA8c2FtcD57c3R5bGVzaGVldCBuYW1lPSdNb2R1bGU6IEx5dGVib3gnIG1lZGlhPSdzY3JlZW4nfTwvc2FtcD4KICAgICAqICAgICAgICAgICAgIDwvbGk+CiAgICAgKiAgICAgICAgICAgICA8bGk+T3IgeW91IGNhbiBhdHRhY2ggdGhlIHN0eWxlc2hlZXQgJnF1b3Q7TW9kdWxlOiBMeXRlYm94JnF1b3Q7IHRvIHlvdXIgdGVtcGxhdGUuPC9saT4KICAgICAqICAgICAgICAgPC91bD4KICAgICAqICAgICA8L2xpPgogICAgICogICAgIDxsaT48Yj5JbWFnZSBDb250ZW50IEV4YW1wbGVzPC9iPgogICAgICogICAgICAgICA8dWw+CiAgICAgKiAgICAgICAgICAgICA8bGk+U2luZ2xlIEltYWdlIEV4YW1wbGUgKHB1dCB0aGlzIGluIHlvdXIgcGFnZSBjb250ZW50KTo8YnIgLz4KICAgICAqICAgICAgICAgICAgICAgICA8c2FtcD57THl0ZWJveCBocmVmPSd1cGxvYWRzL2ltYWdlcy9pbWFnZS0xLmpwZycgdGl0bGU9J0ltYWdlIERlc2NyaXB0aW9uJyB0ZXh0PSdJbWFnZSAjMSd9PC9zYW1wPgogICAgICogICAgICAgICAgICAgPC9saT4KICAgICAqICAgICAgICAgICAgIDxsaT5Hcm91cGVkIEltYWdlcyBFeGFtcGxlIChwdXQgdGhpcyBpbiB5b3VyIHBhZ2UgY29udGVudCk6PGJyIC8+CiAgICAgKiAgICAgICAgICAgICAgICAgPHNhbXA+e0x5dGVib3ggaHJlZj0ndXBsb2Fkcy9pbWFnZXMvaW1hZ2UtMS5qcGcnIGdyb3VwPSd2YWNhdGlvbicgdGl0bGU9J01vbSBhbmQgRGFkJyB0ZXh0PSdNb20gYW5kIERhZCd9PC9zYW1wPjxiciAvPgogICAgICogICAgICAgICAgICAgICAgIDxzYW1wPntMeXRlYm94IGhyZWY9J3VwbG9hZHMvaW1hZ2VzL2ltYWdlLTIuanBnJyBncm91cD0ndmFjYXRpb24nIHRpdGxlPSdNeSBTaXN0ZXInIHRleHQ9J015IFNpc3Rlcid9PC9jb2RlPgogICAgICogICAgICAgICAgICAgPC9saT4KICAgICAqICAgICAgICAgICAgIDxsaT5TbGlkZXNob3cgRXhhbXBsZSAocHV0IHRoaXMgaW4geW91ciBwYWdlIGNvbnRlbnQpOjxiciAvPgogICAgICogICAgICAgICAgICAgICAgIDxzYW1wPntMeXRlYm94IGhyZWY9J3VwbG9hZHMvaW1hZ2VzL2ltYWdlLTEuanBnJyBncm91cD0ndmFjYXRpb24nIGRpc3BsYXk9J3Nob3cnIHRpdGxlPSdNb20gYW5kIERhZCcgdGV4dD0nTW9tIGFuZCBEYWQnfTwvc2FtcD48YnIgLz4KICAgICAqICAgICAgICAgICAgICAgICA8c2FtcD57THl0ZWJveCBocmVmPSd1cGxvYWRzL2ltYWdlcy9pbWFnZS0yLmpwZycgZ3JvdXA9J3ZhY2F0aW9uJyBkaXNwbGF5PSdzaG93JyB0aXRsZT0nTXkgU2lzdGVyJyB0ZXh0PSdNeSBTaXN0ZXInfTwvc2FtcD4KICAgICAqICAgICAgICAgICAgIDwvbGk+CiAgICAgKiAgICAgICAgIDwvdWw+CiAgICAgKiAgICAgPC9saT4KICAgICAqIDwvb2w+CiAgICAgKgogICAgICogKERlc2NyaXB0aW9uIGlzIHRha2VuIGZyb20gdGhlIHtAbGluayBodHRwOi8vZG9sZW0uY29tL2x5dGVib3gvIEx5dGVib3ggaG9tZXBhZ2V9LikKICAgICAqCiAgICAgKiBAY2F0ZWdvcnkgICBNb2R1bGVzCiAgICAgKiBAcGFja2FnZSAgICBMeXRlYm94CiAgICAgKiBAYXV0aG9yICAgICBDYXJzdGVuIFdpZWRtYW5uIDxjYXJzdGVuX3N0dGd0QGdteC5kZT4KICAgICAqIEBsaWNlbnNlICAgIGh0dHA6Ly93d3cuZnJlZWJzZC5vcmcvY29weXJpZ2h0L2ZyZWVic2QtbGljZW5zZS5odG1sICBGcmVlQlNEIExpY2Vuc2UKICAgICAqIEB2ZXJzaW9uICAgIFJlbGVhc2U6IDAuMi4xYmV0YTEKICAgICAqIEBsaW5rICAgICAgIGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvTHl0ZWJveAogICAgICogQHNlZSAgICAgICAgTHl0ZWJveAogICAgICovCiAgICBjbGFzcyBMeXRlYm94X0FjdGlvbkRlZmF1bHQgZXh0ZW5kcyBMeXRlYm94CiAgICB7CiAgICAgICAgLyoqCiAgICAgICAgICogY29udGFpbnMgdGhlIGFjdGlvbiB0byBwZXJmb3JtCiAgICAgICAgICoKICAgICAgICAgKiBAdmFyIHN0cmluZwogICAgICAgICAqIEBhY2Nlc3MgcHJvdGVjdGVkCiAgICAgICAgICovCiAgICAgICAgdmFyICRuYW1lOwoKICAgICAgICAvKioKICAgICAgICAgKiBjb250YWlucyB0aGUgbW9kdWxlIGlkCiAgICAgICAgICoKICAgICAgICAgKiBAdmFyIHN0cmluZwogICAgICAgICAqIEBhY2Nlc3MgcHJvdGVjdGVkCiAgICAgICAgICovCiAgICAgICAgdmFyICRpZDsKCiAgICAgICAgLyoqCiAgICAgICAgICogY29udGFpbnMgdGhlIG1vZHVsZSBwYXJhbWV0ZXJzCiAgICAgICAgICoKICAgICAgICAgKiBAdmFyIGFycmF5CiAgICAgICAgICogQGFjY2VzcyBwcm90ZWN0ZWQKICAgICAgICAgKi8KICAgICAgICB2YXIgJHBhcmFtczsKCiAgICAgICAgLyoqCiAgICAgICAgICogY29udGFpbnMgdGhlIG1vZHVsZSByZXR1cm5pZAogICAgICAgICAqCiAgICAgICAgICogQHZhciBzdHJpbmcKICAgICAgICAgKiBAYWNjZXNzIHByb3RlY3RlZAogICAgICAgICAqLwogICAgICAgIHZhciAkcmV0dXJuaWQ7CgogICAgICAgIC8qKgogICAgICAgICAqIEx5dGVib3hfQWN0aW9uRGVmYXVsdCgpCiAgICAgICAgICoKICAgICAgICAgKiBAcGFyYW0gc3RyaW5nICYkbmFtZSAgICAgTmFtZSBvZiB0aGUgYWN0aW9uIHRvIHBlcmZvcm0KICAgICAgICAgKiBAcGFyYW0gc3RyaW5nICYkaWQgICAgICAgdGhlIGlkIGZvciB0aGlzIG1vZHVsZQogICAgICAgICAqIEBwYXJhbSBhcnJheSAgJiRwYXJhbXMgICB0aGUgcGFyYW1ldGVycyB0YXJnZXRlZCBmb3IgdGhpcyBtb2R1bGUKICAgICAgICAgKiBAcGFyYW0gc3RyaW5nICYkcmV0dXJuaWQgdGhlIHJldHVybmlkIGZvciB0aGlzIG1vZHVsZQogICAgICAgICAqCiAgICAgICAgICogQHVzZXMgTHl0ZWJveCgpCiAgICAgICAgICogQHVzZXMgJG5hbWUKICAgICAgICAgKiBAdXNlcyAkaWQKICAgICAgICAgKiBAdXNlcyAkcGFyYW1zCiAgICAgICAgICogQHVzZXMgJHJldHVybmlkCiAgICAgICAgICogQHVzZXMgJGNvdW50Y2FsbHMKICAgICAgICAgKgogICAgICAgICAqIEByZXR1cm4gdm9pZAogICAgICAgICAqIEBhY2Nlc3MgcHVibGljCiAgICAgICAgICovCiAgICAgICAgZnVuY3Rpb24gTHl0ZWJveF9BY3Rpb25EZWZhdWx0KCYkbmFtZSwgJiRpZCwgJiRwYXJhbXMsICYkcmV0dXJuaWQpCiAgICAgICAgewogICAgICAgICAgICBwYXJlbnQ6Okx5dGVib3goKTsKCiAgICAgICAgICAgICR0aGlzLT5uYW1lICAgICA9JiAkbmFtZTsKICAgICAgICAgICAgJHRoaXMtPmlkICAgICAgID0mICRpZDsKICAgICAgICAgICAgJHRoaXMtPnBhcmFtcyAgID0mICRwYXJhbXM7CiAgICAgICAgICAgICR0aGlzLT5yZXR1cm5pZCA9JiAkcmV0dXJuaWQ7CiAgICAgICAgfQoKICAgICAgICAvKioKICAgICAgICAgKiBEb3VibGVFbnRpdGllc0RlY29kZSgpCiAgICAgICAgICoKICAgICAgICAgKiBAcGFyYW0gc3RyaW5nICR2YWx1ZSBzdHJpbmcgd2hpY2ggY2FuIGNvbnRhaW4gZG91YmxlIGVuY29kZWQgZW50aXRpZXMKICAgICAgICAgKgogICAgICAgICAqIEByZXR1cm4gc3RyaW5nIHN0cmluZyB3aXRoIGRvdWJsZSBlbmNvZGVkIGVudGl0aWVzIHJlcGxhY2VkIHdpdGggbm9ybWFsIGVudGl0aWVzCiAgICAgICAgICogQGFjY2VzcyBwcm90ZWN0ZWQKICAgICAgICAgKi8KICAgICAgICBmdW5jdGlvbiBEb3VibGVFbnRpdGllc0RlY29kZSgkdmFsdWUpCiAgICAgICAgewogICAgICAgICAgICAkdHJhbnMgPSBhcnJheSgKICAgICAgICAgICAgICAgICcmYW1wO3F1b3Q7JyA9PiAnJnF1b3Q7JywKICAgICAgICAgICAgICAgICcmYW1wOyMzOTsnICA9PiAnJiMzOTsnLAogICAgICAgICAgICAgICAgJyZhbXA7bHQ7JyAgID0+ICcmbHQ7JywKICAgICAgICAgICAgICAgICcmYW1wO2d0OycgICA9PiAnJmd0OycsCiAgICAgICAgICAgICAgICAnJmFtcDthbXA7JyAgPT4gJyZhbXA7JywKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJHZhbHVlID0gc3RydHIoJHZhbHVlLCAkdHJhbnMpOwogICAgICAgICAgICAKICAgICAgICAgICAgcmV0dXJuICR2YWx1ZTsKICAgICAgICB9CgogICAgICAgIC8qKgogICAgICAgICAqIERvQWN0aW9uKCkKICAgICAgICAgKgogICAgICAgICAqIEB1c2VzIENyZWF0ZUZyb250ZW5kTGluaygpCiAgICAgICAgICogQHVzZXMgUHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoKQogICAgICAgICAqIEB1c2VzIERvdWJsZUVudGl0aWVzRGVjb2RlKCkKICAgICAgICAgKiBAdXNlcyAkY29uZmlnCiAgICAgICAgICogQHVzZXMgJHNtYXJ0eQogICAgICAgICAqIEB1c2VzICRpZAogICAgICAgICAqIEB1c2VzICRyZXR1cm5pZAogICAgICAgICAqIEB1c2VzICRwYXJhbXMKICAgICAgICAgKiBAdXNlcyAkY291bnRjYWxscwogICAgICAgICAqCiAgICAgICAgICogQHJldHVybiBzdHJpbmcKICAgICAgICAgKiBAYWNjZXNzIHB1YmxpYwogICAgICAgICAqLwogICAgICAgIGZ1bmN0aW9uIERvQWN0aW9uKCkKICAgICAgICB7CiAgICAgICAgICAgIC8qCiAgICAgICAgICAgICAqIGxvYWQgdGhlIEphdmFzY3JpcHQKICAgICAgICAgICAgICovCiAgICAgICAgICAgIGlmICgwIDwgJHRoaXMtPmNvdW50Y2FsbHMpIHsKICAgICAgICAgICAgICAgICR0aGlzLT5zbWFydHktPmNsZWFyX2Fzc2lnbignTHl0ZWJveF9sb2Fkc2NyaXB0Jyk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAvKgogICAgICAgICAgICAgICAgICogY3JlYXRlIGphdmFzY3JpcHQgY29uZmlndXJhdGlvbgogICAgICAgICAgICAgICAgICovCiAgICAgICAgICAgICAgICAkc2NyaXB0cGFyYW1zID0gYXJyYXkoKTsKCiAgICAgICAgICAgICAgICAvKiBMeXRlYm94IEdsb2JhbCBDb25maWd1cmF0aW9uICovCiAgICAgICAgICAgICAgICAkc2NyaXB0cGFyYW1zWzBdID0gZW1wdHkoJHRoaXMtPnBhcmFtc1sndGhlbWUnXSkgPyAnZ3JleScgOiB0cmltKCR0aGlzLT5wYXJhbXNbJ3RoZW1lJ10pOwogICAgICAgICAgICAgICAgJHNjcmlwdHBhcmFtc1sxXSA9ICFpc3NldCgkdGhpcy0+cGFyYW1zWydoaWRlRmxhc2gnXSkgPyAxIDogJHRoaXMtPnBhcmFtc1snaGlkZUZsYXNoJ107CiAgICAgICAgICAgICAgICAkc2NyaXB0cGFyYW1zWzJdID0gIWlzc2V0KCR0aGlzLT5wYXJhbXNbJ291dGVyQm9yZGVyJ10pID8gMSA6ICR0aGlzLT5wYXJhbXNbJ291dGVyQm9yZGVyJ107CiAgICAgICAgICAgICAgICAkc2NyaXB0cGFyYW1zWzNdID0gIWlzc2V0KCR0aGlzLT5wYXJhbXNbJ3Jlc2l6ZVNwZWVkJ10pID8gOCA6ICR0aGlzLT5wYXJhbXNbJ3Jlc2l6ZVNwZWVkJ107CiAgICAgICAgICAgICAgICAkc2NyaXB0cGFyYW1zWzRdID0gIWlzc2V0KCR0aGlzLT5wYXJhbXNbJ21heE9wYWNpdHknXSkgPyA4MCA6ICR0aGlzLT5wYXJhbXNbJ21heE9wYWNpdHknXTsKICAgICAgICAgICAgICAgICRzY3JpcHRwYXJhbXNbNV0gPSAhaXNzZXQoJHRoaXMtPnBhcmFtc1snbmF2VHlwZSddKSA/IDEgOiAkdGhpcy0+cGFyYW1zWyduYXZUeXBlJ107CiAgICAgICAgICAgICAgICAkc2NyaXB0cGFyYW1zWzZdID0gIWlzc2V0KCR0aGlzLT5wYXJhbXNbJ2F1dG9SZXNpemUnXSkgPyAxIDogJHRoaXMtPnBhcmFtc1snYXV0b1Jlc2l6ZSddOwogICAgICAgICAgICAgICAgJHNjcmlwdHBhcmFtc1s3XSA9ICFpc3NldCgkdGhpcy0+cGFyYW1zWydkb0FuaW1hdGlvbnMnXSkgPyAxIDogJHRoaXMtPnBhcmFtc1snZG9BbmltYXRpb25zJ107CiAgICAgICAgICAgICAgICAkc2NyaXB0cGFyYW1zWzhdID0gIWlzc2V0KCR0aGlzLT5wYXJhbXNbJ2JvcmRlclNpemUnXSkgPyAxMiA6ICR0aGlzLT5wYXJhbXNbJ2JvcmRlclNpemUnXTsKCiAgICAgICAgICAgICAgICAvKiBMeXRlYm94IFNsaWRlc2hvdyBPcHRpb25zICovCiAgICAgICAgICAgICAgICAkc2NyaXB0cGFyYW1zWzldICA9ICFpc3NldCgkdGhpcy0+cGFyYW1zWydzbGlkZUludGVydmFsJ10pID8gNDAwMCA6ICR0aGlzLT5wYXJhbXNbJ3NsaWRlSW50ZXJ2YWwnXTsKICAgICAgICAgICAgICAgICRzY3JpcHRwYXJhbXNbMTBdID0gIWlzc2V0KCR0aGlzLT5wYXJhbXNbJ3Nob3dOYXZpZ2F0aW9uJ10pID8gMSA6ICR0aGlzLT5wYXJhbXNbJ3Nob3dOYXZpZ2F0aW9uJ107CiAgICAgICAgICAgICAgICAkc2NyaXB0cGFyYW1zWzExXSA9ICFpc3NldCgkdGhpcy0+cGFyYW1zWydzaG93Q2xvc2UnXSkgPyAxIDogJHRoaXMtPnBhcmFtc1snc2hvd0Nsb3NlJ107CiAgICAgICAgICAgICAgICAkc2NyaXB0cGFyYW1zWzEyXSA9ICFpc3NldCgkdGhpcy0+cGFyYW1zWydzaG93RGV0YWlscyddKSA/IDEgOiAkdGhpcy0+cGFyYW1zWydzaG93RGV0YWlscyddOwogICAgICAgICAgICAgICAgJHNjcmlwdHBhcmFtc1sxM10gPSAhaXNzZXQoJHRoaXMtPnBhcmFtc1snc2hvd1BsYXlQYXVzZSddKSA/IDEgOiAkdGhpcy0+cGFyYW1zWydzaG93UGxheVBhdXNlJ107CiAgICAgICAgICAgICAgICAkc2NyaXB0cGFyYW1zWzE0XSA9ICFpc3NldCgkdGhpcy0+cGFyYW1zWydhdXRvRW5kJ10pID8gMSA6ICR0aGlzLT5wYXJhbXNbJ2F1dG9FbmQnXTsKICAgICAgICAgICAgICAgICRzY3JpcHRwYXJhbXNbMTVdID0gIWlzc2V0KCR0aGlzLT5wYXJhbXNbJ3BhdXNlT25OZXh0Q2xpY2snXSkgPyAwIDogJHRoaXMtPnBhcmFtc1sncGF1c2VPbk5leHRDbGljayddOwogICAgICAgICAgICAgICAgJHNjcmlwdHBhcmFtc1sxNl0gPSAhaXNzZXQoJHRoaXMtPnBhcmFtc1sncGF1c2VPblByZXZDbGljayddKSA/IDEgOiAkdGhpcy0+cGFyYW1zWydwYXVzZU9uUHJldkNsaWNrJ107CgogICAgICAgICAgICAgICAgJHNjcmlwdHBhcmFtcyA9IGJhc2U2NF9lbmNvZGUoaW1wbG9kZSgnLCcsICRzY3JpcHRwYXJhbXMpKTsKICAgICAgICAgICAgICAgICRzY3JpcHRwYXJhbXMgPSBhcnJheSgKICAgICAgICAgICAgICAgICAgICAnY29uZmlnJyA9PiAkc2NyaXB0cGFyYW1zLAogICAgICAgICAgICAgICAgICAgICdzaG93dGVtcGxhdGUnID0+ICdmYWxzZScsCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgIC8qCiAgICAgICAgICAgICAgICAgKiBjcmVhdGUgamF2YXNjcmlwdCBsaW5rCiAgICAgICAgICAgICAgICAgKi8KICAgICAgICAgICAgICAgICRzY3JpcHRsaW5rICAgPSAkdGhpcy0+Q3JlYXRlRnJvbnRlbmRMaW5rKCR0aGlzLT5pZCwgJHRoaXMtPnJldHVybmlkLCAnZ2V0anMnLCAnJywgJHNjcmlwdHBhcmFtcywgJycsIHRydWUsIHRydWUsICcnLCB0cnVlLCAnJyk7CiAgICAgICAgICAgICAgICAkc2NyaXB0bGluayAgID0gbHRyaW0oc3RyX3JlcGxhY2UoJHRoaXMtPmNvbmZpZ1sncm9vdF91cmwnXSwgJycsICRzY3JpcHRsaW5rKSwgJy8nKTsKICAgICAgICAgICAgICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignTHl0ZWJveF9sb2Fkc2NyaXB0JywgIjxzY3JpcHQgdHlwZT1cInRleHQvamF2YXNjcmlwdFwiIHNyYz1cInskc2NyaXB0bGlua31cIj48L3NjcmlwdD5cbiIpOwogICAgICAgICAgICB9CgogICAgICAgICAgICAvKgogICAgICAgICAgICAgKiBzZXQgcGFyYW1zIGZvciB0aGUgaHlwZXJsaW5rCiAgICAgICAgICAgICAqLwogICAgICAgICAgICBpZiAoZW1wdHkoJHRoaXMtPnBhcmFtc1snaHJlZiddKSkgewogICAgICAgICAgICAgICAgcmV0dXJuICcnOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdMeXRlYm94X2hyZWYnLCB0cmltKCR0aGlzLT5Eb3VibGVFbnRpdGllc0RlY29kZSgkdGhpcy0+cGFyYW1zWydocmVmJ10pKSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICR0aGlzLT5zbWFydHktPmNsZWFyX2Fzc2lnbignTHl0ZWJveF9mcmFtZWF0dHInKTsKICAgICAgICAgICAgaWYgKGVtcHR5KCR0aGlzLT5wYXJhbXNbJ2Rpc3BsYXknXSkpIHsKICAgICAgICAgICAgICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignTHl0ZWJveF9kaXNwbGF5JywgJ2x5dGVib3gnKTsKICAgICAgICAgICAgfSBlbHNlaWYgKCdmcmFtZScgPT0gJHRoaXMtPnBhcmFtc1snZGlzcGxheSddKSB7CiAgICAgICAgICAgICAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ0x5dGVib3hfZGlzcGxheScsICdseXRlZnJhbWUnKTsKCiAgICAgICAgICAgICAgICBpZiAoZW1wdHkoJHRoaXMtPnBhcmFtc1snZnJhbWVhdHRyJ10pKSB7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdMeXRlYm94X2ZyYW1lYXR0cicsICd3aWR0aDogNDAwcHg7IGhlaWdodDogNDAwcHg7IHNjcm9sbGluZzogYXV0bzsnKTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdMeXRlYm94X2ZyYW1lYXR0cicsIHRyaW0oJHRoaXMtPnBhcmFtc1snZnJhbWVhdHRyJ10pKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBlbHNlaWYgKCdzaG93JyA9PSAkdGhpcy0+cGFyYW1zWydkaXNwbGF5J10pIHsKICAgICAgICAgICAgICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignTHl0ZWJveF9kaXNwbGF5JywgJ2x5dGVzaG93Jyk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ0x5dGVib3hfZGlzcGxheScsICdseXRlYm94Jyk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmIChlbXB0eSgkdGhpcy0+cGFyYW1zWydncm91cCddKSkgewogICAgICAgICAgICAgICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdMeXRlYm94X2dyb3VwJywgJycpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdMeXRlYm94X2dyb3VwJywgJ1snLnRyaW0oJHRoaXMtPnBhcmFtc1snZ3JvdXAnXSkuJ10nKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKGVtcHR5KCR0aGlzLT5wYXJhbXNbJ3RleHQnXSkpIHsKICAgICAgICAgICAgICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignTHl0ZWJveF90ZXh0JywgYmFzZW5hbWUoJHRoaXMtPnBhcmFtc1snaHJlZiddKSk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ0x5dGVib3hfdGV4dCcsIHRyaW0oJHRoaXMtPnBhcmFtc1sndGV4dCddKSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmIChlbXB0eSgkdGhpcy0+cGFyYW1zWyd0aXRsZSddKSkgewogICAgICAgICAgICAgICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdMeXRlYm94X3RpdGxlJywgYmFzZW5hbWUoJHRoaXMtPnBhcmFtc1snaHJlZiddKSk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ0x5dGVib3hfdGl0bGUnLCB0cmltKCR0aGlzLT5wYXJhbXNbJ3RpdGxlJ10pKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKGVtcHR5KCR0aGlzLT5wYXJhbXNbJ2V4dHJhJ10pKSB7CiAgICAgICAgICAgICAgICAkdGhpcy0+c21hcnR5LT5jbGVhcl9hc3NpZ24oJ0x5dGVib3hfZXh0cmEnKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignTHl0ZWJveF9leHRyYScsIHRyaW0oJHRoaXMtPnBhcmFtc1snZXh0cmEnXSkpOwogICAgICAgICAgICB9CgogICAgICAgICAgICAvKgogICAgICAgICAgICAgKiBzZXQgcGFyYW1zIGZvciB0aGUgdGh1bWJuYWlsCiAgICAgICAgICAgICAqLwogICAgICAgICAgICBpZiAoZW1wdHkoJHRoaXMtPnBhcmFtc1sndGh1bWJzcmMnXSkpIHsKICAgICAgICAgICAgICAgICR0aGlzLT5zbWFydHktPmNsZWFyX2Fzc2lnbignTHl0ZWJveF90aHVtYnNyYycpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdMeXRlYm94X3RodW1ic3JjJywgdHJpbSgkdGhpcy0+RG91YmxlRW50aXRpZXNEZWNvZGUoJHRoaXMtPnBhcmFtc1sndGh1bWJzcmMnXSkpKTsKCiAgICAgICAgICAgICAgICBpZiAoZW1wdHkoJHRoaXMtPnBhcmFtc1sndGh1bWJhbHQnXSkpIHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ0x5dGVib3hfdGh1bWJhbHQnLCBiYXNlbmFtZSgkdGhpcy0+cGFyYW1zWyd0aHVtYnNyYyddKSk7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignTHl0ZWJveF90aHVtYmFsdCcsIHRyaW0oJHRoaXMtPnBhcmFtc1snZXh0cmEnXSkpOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmIChlbXB0eSgkdGhpcy0+cGFyYW1zWyd0aHVtYmV4dHJhJ10pKSB7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnNtYXJ0eS0+Y2xlYXJfYXNzaWduKCdMeXRlYm94X3RodW1iZXh0cmEnKTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdMeXRlYm94X3RodW1iZXh0cmEnLCB0cmltKCR0aGlzLT5wYXJhbXNbJ3RodW1iZXh0cmEnXSkpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICAvKgogICAgICAgICAgICAgKiBvdXRwdXQgdGhlIGh5cGVybGluawogICAgICAgICAgICAgKi8KICAgICAgICAgICAgJHRlbXBsYXRlID0gJ3tpZiBpc3NldCgkTHl0ZWJveF9sb2Fkc2NyaXB0KX17JEx5dGVib3hfbG9hZHNjcmlwdH17L2lmfTxhIGhyZWY9InskTHl0ZWJveF9ocmVmfSIgcmVsPSJ7JEx5dGVib3hfZGlzcGxheX17JEx5dGVib3hfZ3JvdXB9IntpZiBpc3NldCgkTHl0ZWJveF9mcmFtZWF0dHIpfSByZXY9InskTHl0ZWJveF9mcmFtZWF0dHJ9InsvaWZ9IHRpdGxlPSJ7JEx5dGVib3hfdGl0bGV9IntpZiBpc3NldCgkTHl0ZWJveF9leHRyYSl9IHskTHl0ZWJveF9leHRyYX17L2lmfT57aWYgaXNzZXQoJEx5dGVib3hfdGh1bWJzcmMpfTxpbWcgc3JjPSJ7JEx5dGVib3hfdGh1bWJzcmN9IiB0aXRsZT0ieyRMeXRlYm94X3RpdGxlfSIgYWx0PSJ7JEx5dGVib3hfdGh1bWJhbHR9IntpZiBpc3NldCgkTHl0ZWJveF90aHVtYmV4dHJhKX0geyRMeXRlYm94X3RodW1iZXh0cmF9ey9pZn0gLz57L2lmfXskTHl0ZWJveF90ZXh0fTwvYT4nOwogICAgICAgICAgICAkb3V0cHV0ICAgPSAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoJHRlbXBsYXRlKTsKCiAgICAgICAgICAgIGVjaG8gIlxuIi4kb3V0cHV0LiJcbiI7CgogICAgICAgICAgICAkdGhpcy0+Y291bnRjYWxscysrOwogICAgICAgIH0KICAgIH0KfQoKJGFjdGlvbiA9IG5ldyBMeXRlYm94X0FjdGlvbkRlZmF1bHQoJG5hbWUsICRpZCwgJHBhcmFtcywgJHJldHVybmlkKTsKJGFjdGlvbi0+RG9BY3Rpb24oKTsKCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.getjs.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qIHZpbTogc2V0IGV4cGFuZHRhYiB0YWJzdG9wPTQgc2hpZnR3aWR0aD00IHNvZnR0YWJzdG9wPTQ6ICovCgovKioKICogTHl0ZWJveCBtb2R1bGUgZm9yIENNU01TIC0gQSBzaW1wbGUgd3JhcHBlciB0byB0aGUgTHl0ZWJveCBKYXZhU2NyaXB0IGNsYXNzLgogKgogKiBQSFAgdmVyc2lvbnMgNCBhbmQgNQogKgogKiBMSUNFTlNFOgogKiBDb3B5cmlnaHQgKGMpIDIwMDgsIENhcnN0ZW4gV2llZG1hbm4KICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KICoKICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwogKiBhcmUgbWV0OgogKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CiAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KICoKICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBVVRIT1IgT1IgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCiAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCiAqIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBVVRIT1IgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQogKiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAogKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUwogKiBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKICogSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKICogTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQogKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCiAqIFNVQ0ggREFNQUdFLgogKgogKiBAY2F0ZWdvcnkgICBNb2R1bGVzCiAqIEBwYWNrYWdlICAgIEx5dGVib3gKICogQGF1dGhvciAgICAgQ2Fyc3RlbiBXaWVkbWFubiA8Y2Fyc3Rlbl9zdHRndEBnbXguZGU+CiAqIEBjb3B5cmlnaHQgIDIwMDggQ2Fyc3RlbiBXaWVkbWFubgogKiBAbGljZW5zZSAgICBodHRwOi8vd3d3LmZyZWVic2Qub3JnL2NvcHlyaWdodC9mcmVlYnNkLWxpY2Vuc2UuaHRtbCBGcmVlQlNEIExpY2Vuc2UKICogQHZlcnNpb24gICAgU1ZOOiAkSWQ6IGFjdGlvbi5nZXRqcy5waHAgMTQgMjAwOC0wNi0xMCAxMDowMjoxMFogd2llZG1hbm4gJAogKiBAbGluayAgICAgICBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2x5dGVib3gKICovCgppZiAoIWlzc2V0KCRnQ21zKSkgewogICAgZXhpdDsKfQoKLyoqCiAqIEdldEpTIGFjdGlvbiBmcm9tIHRoZSBMeXRlYm94IG1vZHVsZS4KICoKICogWW91IGNhbiBjYWxsIHRoaXMgYWN0aW9uIHdpdGggYSBmcm9udGVuZCBsaW5rICh7QGxpbmsgQ3JlYXRlRnJvbnRlbmRMaW5rKCl9KS4KICogSnVzdCBtYWtlIHN1cmUsIHlvdSBzZXQgJHRhcmdldGNvbnRlbnRvbmx5IHRvIHRydWUuCiAqCiAqIFlvdSBuZWVkIHR3byBlbnRyaWVzIGluIHRoZSAkcGFyYW1zIGFycmF5OgogKiAtICdzaG93dGVtcGxhdGUnID0+ICdmYWxzZScKICogLSAnY29uZmlnJyA9PiAkc2NyaXB0cGFyYW1zCiAqCiAqIHtAbGluayAkc2NyaXB0cGFyYW1zfSBpcyBhIGNvbW1hIHNlcGFyYXRlZCwgYmFzZTY0ZW5jb2RlZCBzdHJpbmcsIHdpdGggb25seSB0aGUgdmFsdWVzCiAqIGZvciB0aGUgc2V0dGluZ3MgaW4gdGhpcyBvcmRlciAoeW91IG11c3QgZ2l2ZSBhbGwgc2V0dGluZ3MpOgogKiAxLiB0aGVtZQogKiAyLiBoaWRlRmxhc2gKICogMy4gb3V0ZXJCb3JkZXIKICogNC4gcmVzaXplU3BlZWQKICogNS4gbWF4T3BhY2l0eQogKiA2LiBuYXZUeXBlCiAqIDcuIGF1dG9SZXNpemUKICogOC4gZG9BbmltYXRpb25zCiAqIDkuIGJvcmRlclNpemUKICogMTAuIHNsaWRlSW50ZXJ2YWwKICogMTEuIHNob3dOYXZpZ2F0aW9uCiAqIDEyLiBzaG93Q2xvc2UKICogMTMuIHNob3dEZXRhaWxzCiAqIDE0LiBzaG93UGxheVBhdXNlCiAqIDE1LiBhdXRvRW5kCiAqIDE2LiBwYXVzZU9uTmV4dENsaWNrCiAqIDE3LiB0aGlzLnBhdXNlT25QcmV2Q2xpY2sKICoKICogQGNhdGVnb3J5ICAgTW9kdWxlcwogKiBAcGFja2FnZSAgICBMeXRlYm94CiAqIEBhdXRob3IgICAgIENhcnN0ZW4gV2llZG1hbm4gPGNhcnN0ZW5fc3R0Z3RAZ214LmRlPgogKiBAbGljZW5zZSAgICBodHRwOi8vd3d3LmZyZWVic2Qub3JnL2NvcHlyaWdodC9mcmVlYnNkLWxpY2Vuc2UuaHRtbCAgRnJlZUJTRCBMaWNlbnNlCiAqIEB2ZXJzaW9uICAgIFJlbGVhc2U6IDAuMi4xYmV0YTEKICogQGxpbmsgICAgICAgaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9seXRlYm94CiAqIEBzZWUgICAgICAgIEx5dGVib3gKICovCmNsYXNzIEx5dGVib3hfQWN0aW9uR2V0SlMgZXh0ZW5kcyBMeXRlYm94CnsKICAgIC8qKgogICAgICogY29udGFpbnMgdGhlIGFjdGlvbiB0byBwZXJmb3JtCiAgICAgKgogICAgICogQHZhciBzdHJpbmcKICAgICAqIEBhY2Nlc3MgcHJvdGVjdGVkCiAgICAgKi8KICAgIHZhciAkbmFtZTsKCiAgICAvKioKICAgICAqIGNvbnRhaW5zIHRoZSBtb2R1bGUgaWQKICAgICAqCiAgICAgKiBAdmFyIHN0cmluZwogICAgICogQGFjY2VzcyBwcm90ZWN0ZWQKICAgICAqLwogICAgdmFyICRpZDsKCiAgICAvKioKICAgICAqIGNvbnRhaW5zIHRoZSBtb2R1bGUgcGFyYW1ldGVycwogICAgICoKICAgICAqIEB2YXIgYXJyYXkKICAgICAqIEBhY2Nlc3MgcHJvdGVjdGVkCiAgICAgKi8KICAgIHZhciAkcGFyYW1zOwoKICAgIC8qKgogICAgICogY29udGFpbnMgdGhlIG1vZHVsZSByZXR1cm5pZAogICAgICoKICAgICAqIEB2YXIgc3RyaW5nCiAgICAgKiBAYWNjZXNzIHByb3RlY3RlZAogICAgICovCiAgICB2YXIgJHJldHVybmlkOwoKICAgIC8qKgogICAgICogTHl0ZWJveF9BY3Rpb25HZXRKUygpCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAmJG5hbWUgICAgIE5hbWUgb2YgdGhlIGFjdGlvbiB0byBwZXJmb3JtCiAgICAgKiBAcGFyYW0gc3RyaW5nICYkaWQgICAgICAgdGhlIGlkIGZvciB0aGlzIG1vZHVsZQogICAgICogQHBhcmFtIGFycmF5ICAmJHBhcmFtcyAgIHRoZSBwYXJhbWV0ZXJzIHRhcmdldGVkIGZvciB0aGlzIG1vZHVsZQogICAgICogQHBhcmFtIHN0cmluZyAmJHJldHVybmlkIHRoZSByZXR1cm5pZCBmb3IgdGhpcyBtb2R1bGUKICAgICAqCiAgICAgKiBAdXNlcyBMeXRlYm94KCkKICAgICAqIEB1c2VzICRuYW1lCiAgICAgKiBAdXNlcyAkaWQKICAgICAqIEB1c2VzICRwYXJhbXMKICAgICAqIEB1c2VzICRyZXR1cm5pZAogICAgICoKICAgICAqIEByZXR1cm4gdm9pZAogICAgICogQGFjY2VzcyBwdWJsaWMKICAgICAqLwogICAgZnVuY3Rpb24gTHl0ZWJveF9BY3Rpb25HZXRKUygmJG5hbWUsICYkaWQsICYkcGFyYW1zLCAmJHJldHVybmlkKQogICAgewogICAgICAgIHBhcmVudDo6THl0ZWJveCgpOwoKICAgICAgICAkdGhpcy0+bmFtZSAgICAgPSYgJG5hbWU7CiAgICAgICAgJHRoaXMtPmlkICAgICAgID0mICRpZDsKICAgICAgICAkdGhpcy0+cGFyYW1zICAgPSYgJHBhcmFtczsKICAgICAgICAkdGhpcy0+cmV0dXJuaWQgPSYgJHJldHVybmlkOwogICAgfQoKICAgIC8qKgogICAgICogR2V0SmF2YXNjcmlwdCgpCiAgICAgKgogICAgICogQGF1dGhvciAgTWFya3VzIEYuIEhheQogICAgICogQGxpY2Vuc2UgaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnkvMy4wLyBDcmVhdGl2ZSBDb21tb25zIEF0dHJpYnV0aW9uIDMuMCBMaWNlbnNlCiAgICAgKiBAdmVyc2lvbiBSZWxlYXNlOiAzLjIyCiAgICAgKiBAbGluayAgICBodHRwOi8vZG9sZW0uY29tL2x5dGVib3gvCiAgICAgKgogICAgICogQHJldHVybiBzdHJpbmcgdGhlIEphY2FTY3JpcHQgY29udGVudAogICAgICogQGFjY2VzcyBwcm90ZWN0ZWQKICAgICAqLwogICAgZnVuY3Rpb24gR2V0SmF2YXNjcmlwdCgpCiAgICB7CiAgICAgICAgJGpzY29udGVudCA9IDw8PEVPVApBcnJheS5wcm90b3R5cGUucmVtb3ZlRHVwbGljYXRlcyA9IGZ1bmN0aW9uICgpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCB0aGlzLmxlbmd0aDsgaSsrKSB7IGlmICh0aGlzW2ldWzBdID09IHRoaXNbaS0xXVswXSkgeyB0aGlzLnNwbGljZShpLDEpOyB9IH0gfQpBcnJheS5wcm90b3R5cGUuZW1wdHkgPSBmdW5jdGlvbiAoKSB7IGZvciAodmFyIGkgPSAwOyBpIDw9IHRoaXMubGVuZ3RoOyBpKyspIHsgdGhpcy5zaGlmdCgpOyB9IH0KU3RyaW5nLnByb3RvdHlwZS50cmltID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpcy5yZXBsYWNlKC9eXFxzK3xcXHMrXCQvZywgJycpOyB9CgpmdW5jdGlvbiBMeXRlQm94KCkgewogICAgLyoqKiBTdGFydCBHbG9iYWwgQ29uZmlndXJhdGlvbiAqKiovCiAgICAgICAgdGhpcy50aGVtZSAgICAgICAgICAgICAgPSAnJXMnOyAgIC8vIHRoZW1lczogZ3JleSAoZGVmYXVsdCksIHJlZCwgZ3JlZW4sIGJsdWUsIGdvbGQKICAgICAgICB0aGlzLmhpZGVGbGFzaCAgICAgICAgICA9ICVzOyAgICAgLy8gY29udHJvbHMgd2hldGhlciBvciBub3QgRmxhc2ggb2JqZWN0cyBzaG91bGQgYmUgaGlkZGVuCiAgICAgICAgdGhpcy5vdXRlckJvcmRlciAgICAgICAgPSAlczsgICAgIC8vIGNvbnRyb2xzIHdoZXRoZXIgdG8gc2hvdyB0aGUgb3V0ZXIgZ3JleSAob3IgdGhlbWUpIGJvcmRlcgogICAgICAgIHRoaXMucmVzaXplU3BlZWQgICAgICAgID0gJWQ7ICAgICAgICAvLyBjb250cm9scyB0aGUgc3BlZWQgb2YgdGhlIGltYWdlIHJlc2l6aW5nICgxPXNsb3dlc3QgYW5kIDEwPWZhc3Rlc3QpCiAgICAgICAgdGhpcy5tYXhPcGFjaXR5ICAgICAgICAgPSAlZDsgICAgICAgLy8gaGlnaGVyIG9wYWNpdHkgPSBkYXJrZXIgb3ZlcmxheSwgbG93ZXIgb3BhY2l0eSA9IGxpZ2h0ZXIgb3ZlcmxheQogICAgICAgIHRoaXMubmF2VHlwZSAgICAgICAgICAgID0gJWQ7ICAgICAgICAvLyAxID0gIlByZXYvTmV4dCIgYnV0dG9ucyBvbiB0b3AgbGVmdCBhbmQgbGVmdCAoZGVmYXVsdCksIDIgPSAiPDwgcHJldiB8IG5leHQgPj4iIGxpbmtzIG5leHQgdG8gaW1hZ2UgbnVtYmVyCiAgICAgICAgdGhpcy5hdXRvUmVzaXplICAgICAgICAgPSAlczsgICAgIC8vIGNvbnRyb2xzIHdoZXRoZXIgb3Igbm90IGltYWdlcyBzaG91bGQgYmUgcmVzaXplZCBpZiBsYXJnZXIgdGhhbiB0aGUgYnJvd3NlciB3aW5kb3cgZGltZW5zaW9ucwogICAgICAgIHRoaXMuZG9BbmltYXRpb25zICAgICAgID0gJXM7ICAgICAvLyBjb250cm9scyB3aGV0aGVyIG9yIG5vdCAiYW5pbWF0ZSIgTHl0ZWJveCwgaS5lLiByZXNpemUgdHJhbnNpdGlvbiBiZXR3ZWVuIGltYWdlcywgZmFkZSBpbi9vdXQgZWZmZWN0cywgZXRjLgogICAgICAgIHRoaXMuYm9yZGVyU2l6ZSAgICAgICAgID0gJWQ7ICAgICAgIC8vIGlmIHlvdSBhZGp1c3QgdGhlIHBhZGRpbmcgaW4gdGhlIENTUywgeW91IHdpbGwgbmVlZCB0byB1cGRhdGUgdGhpcyB2YXJpYWJsZSAtLSBvdGhlcndpc2UsIGxlYXZlIHRoaXMgYWxvbmUuLi4KICAgIC8qKiogRW5kIEdsb2JhbCBDb25maWd1cmF0aW9uICoqKi8KCiAgICAvKioqIENvbmZpZ3VyZSBTbGlkZXNob3cgT3B0aW9ucyAqKiovCiAgICAgICAgdGhpcy5zbGlkZUludGVydmFsICAgICAgPSAlZDsgICAgIC8vIENoYW5nZSB2YWx1ZSAobWlsbGlzZWNvbmRzKSB0byBpbmNyZWFzZS9kZWNyZWFzZSB0aGUgdGltZSBiZXR3ZWVuICJzbGlkZXMiICgxMDAwMCA9IDEwIHNlY29uZHMpCiAgICAgICAgdGhpcy5zaG93TmF2aWdhdGlvbiAgICAgPSAlczsgICAgIC8vIHRydWUgdG8gZGlzcGxheSBOZXh0L1ByZXYgYnV0dG9ucy90ZXh0IGR1cmluZyBzbGlkZXNob3csIGZhbHNlIHRvIGhpZGUKICAgICAgICB0aGlzLnNob3dDbG9zZSAgICAgICAgICA9ICVzOyAgICAgLy8gdHJ1ZSB0byBkaXNwbGF5IHRoZSBDbG9zZSBidXR0b24sIGZhbHNlIHRvIGhpZGUKICAgICAgICB0aGlzLnNob3dEZXRhaWxzICAgICAgICA9ICVzOyAgICAgLy8gdHJ1ZSB0byBkaXNwbGF5IGltYWdlIGRldGFpbHMgKGNhcHRpb24sIGNvdW50KSwgZmFsc2UgdG8gaGlkZQogICAgICAgIHRoaXMuc2hvd1BsYXlQYXVzZSAgICAgID0gJXM7ICAgICAvLyB0cnVlIHRvIGRpc3BsYXkgcGF1c2UvcGxheSBidXR0b25zIG5leHQgdG8gY2xvc2UgYnV0dG9uLCBmYWxzZSB0byBoaWRlCiAgICAgICAgdGhpcy5hdXRvRW5kICAgICAgICAgICAgPSAlczsgICAgIC8vIHRydWUgdG8gYXV0b21hdGljYWxseSBjbG9zZSBMeXRlYm94IGFmdGVyIHRoZSBsYXN0IGltYWdlIGlzIHJlYWNoZWQsIGZhbHNlIHRvIGtlZXAgb3BlbgogICAgICAgIHRoaXMucGF1c2VPbk5leHRDbGljayAgID0gJXM7ICAgIC8vIHRydWUgdG8gcGF1c2UgdGhlIHNsaWRlc2hvdyB3aGVuIHRoZSAiTmV4dCIgYnV0dG9uIGlzIGNsaWNrZWQKICAgICAgICB0aGlzLnBhdXNlT25QcmV2Q2xpY2sgICA9ICVzOyAgICAgLy8gdHJ1ZSB0byBwYXVzZSB0aGUgc2xpZGVzaG93IHdoZW4gdGhlICJQcmV2IiBidXR0b24gaXMgY2xpY2tlZAogICAgLyoqKiBFbmQgU2xpZGVzaG93IENvbmZpZ3VyYXRpb24gKioqLwoKICAgIGlmKHRoaXMucmVzaXplU3BlZWQgPiAxMCkgeyB0aGlzLnJlc2l6ZVNwZWVkID0gMTA7IH0KICAgIGlmKHRoaXMucmVzaXplU3BlZWQgPCAxKSB7IHJlc2l6ZVNwZWVkID0gMTsgfQogICAgdGhpcy5yZXNpemVEdXJhdGlvbiA9ICgxMSAtIHRoaXMucmVzaXplU3BlZWQpICogMC4xNTsKICAgIHRoaXMucmVzaXplV1RpbWVyQXJyYXkgICAgICA9IG5ldyBBcnJheSgpOwogICAgdGhpcy5yZXNpemVXVGltZXJDb3VudCAgICAgID0gMDsKICAgIHRoaXMucmVzaXplSFRpbWVyQXJyYXkgICAgICA9IG5ldyBBcnJheSgpOwogICAgdGhpcy5yZXNpemVIVGltZXJDb3VudCAgICAgID0gMDsKICAgIHRoaXMuc2hvd0NvbnRlbnRUaW1lckFycmF5ICA9IG5ldyBBcnJheSgpOwogICAgdGhpcy5zaG93Q29udGVudFRpbWVyQ291bnQgID0gMDsKICAgIHRoaXMub3ZlcmxheVRpbWVyQXJyYXkgICAgICA9IG5ldyBBcnJheSgpOwogICAgdGhpcy5vdmVybGF5VGltZXJDb3VudCAgICAgID0gMDsKICAgIHRoaXMuaW1hZ2VUaW1lckFycmF5ICAgICAgICA9IG5ldyBBcnJheSgpOwogICAgdGhpcy5pbWFnZVRpbWVyQ291bnQgICAgICAgID0gMDsKICAgIHRoaXMudGltZXJJREFycmF5ICAgICAgICAgICA9IG5ldyBBcnJheSgpOwogICAgdGhpcy50aW1lcklEQ291bnQgICAgICAgICAgID0gMDsKICAgIHRoaXMuc2xpZGVzaG93SURBcnJheSAgICAgICA9IG5ldyBBcnJheSgpOwogICAgdGhpcy5zbGlkZXNob3dJRENvdW50ICAgICAgID0gMDsKICAgIHRoaXMuaW1hZ2VBcnJheSAgPSBuZXcgQXJyYXkoKTsKICAgIHRoaXMuYWN0aXZlSW1hZ2UgPSBudWxsOwogICAgdGhpcy5zbGlkZUFycmF5ICA9IG5ldyBBcnJheSgpOwogICAgdGhpcy5hY3RpdmVTbGlkZSA9IG51bGw7CiAgICB0aGlzLmZyYW1lQXJyYXkgID0gbmV3IEFycmF5KCk7CiAgICB0aGlzLmFjdGl2ZUZyYW1lID0gbnVsbDsKICAgIHRoaXMuY2hlY2tGcmFtZSgpOwogICAgdGhpcy5pc1NsaWRlc2hvdyA9IGZhbHNlOwogICAgdGhpcy5pc0x5dGVmcmFtZSA9IGZhbHNlOwogICAgLypAY2Nfb24KICAgICAgICAvKkBpZiAoQF9qc2NyaXB0KQogICAgICAgICAgICB0aGlzLmllID0gKGRvY3VtZW50LmFsbCAmJiAhd2luZG93Lm9wZXJhKSA/IHRydWUgOiBmYWxzZTsKICAgICAgICAvKkBlbHNlIEAqLwogICAgICAgICAgICB0aGlzLmllID0gZmFsc2U7CiAgICAgICAgLypAZW5kCiAgICBAKi8KICAgIHRoaXMuaWU3ID0gKHRoaXMuaWUgJiYgd2luZG93LlhNTEh0dHBSZXF1ZXN0KTsKICAgIHRoaXMuaW5pdGlhbGl6ZSgpOwp9Ckx5dGVCb3gucHJvdG90eXBlLmluaXRpYWxpemUgPSBmdW5jdGlvbigpIHsKICAgIHRoaXMudXBkYXRlTHl0ZWJveEl0ZW1zKCk7CiAgICB2YXIgb2JqQm9keSA9IHRoaXMuZG9jLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJib2R5IikuaXRlbSgwKTsKICAgIGlmICh0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJPdmVybGF5JykpIHsKICAgICAgICBvYmpCb2R5LnJlbW92ZUNoaWxkKHRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKCJsYk92ZXJsYXkiKSk7CiAgICAgICAgb2JqQm9keS5yZW1vdmVDaGlsZCh0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgibGJNYWluIikpOwogICAgfQogICAgdmFyIG9iak92ZXJsYXkgPSB0aGlzLmRvYy5jcmVhdGVFbGVtZW50KCJkaXYiKTsKICAgICAgICBvYmpPdmVybGF5LnNldEF0dHJpYnV0ZSgnaWQnLCdsYk92ZXJsYXknKTsKICAgICAgICBvYmpPdmVybGF5LnNldEF0dHJpYnV0ZSgodGhpcy5pZSA/ICdjbGFzc05hbWUnIDogJ2NsYXNzJyksIHRoaXMudGhlbWUpOwogICAgICAgIGlmICgodGhpcy5pZSAmJiAhdGhpcy5pZTcpIHx8ICh0aGlzLmllNyAmJiB0aGlzLmRvYy5jb21wYXRNb2RlID09ICdCYWNrQ29tcGF0JykpIHsKICAgICAgICAgICAgb2JqT3ZlcmxheS5zdHlsZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7CiAgICAgICAgfQogICAgICAgIG9iak92ZXJsYXkuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKICAgICAgICBvYmpCb2R5LmFwcGVuZENoaWxkKG9iak92ZXJsYXkpOwogICAgdmFyIG9iakx5dGVib3ggPSB0aGlzLmRvYy5jcmVhdGVFbGVtZW50KCJkaXYiKTsKICAgICAgICBvYmpMeXRlYm94LnNldEF0dHJpYnV0ZSgnaWQnLCdsYk1haW4nKTsKICAgICAgICBvYmpMeXRlYm94LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAgICAgICAgb2JqQm9keS5hcHBlbmRDaGlsZChvYmpMeXRlYm94KTsKICAgIHZhciBvYmpPdXRlckNvbnRhaW5lciA9IHRoaXMuZG9jLmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgICAgIG9iak91dGVyQ29udGFpbmVyLnNldEF0dHJpYnV0ZSgnaWQnLCdsYk91dGVyQ29udGFpbmVyJyk7CiAgICAgICAgb2JqT3V0ZXJDb250YWluZXIuc2V0QXR0cmlidXRlKCh0aGlzLmllID8gJ2NsYXNzTmFtZScgOiAnY2xhc3MnKSwgdGhpcy50aGVtZSk7CiAgICAgICAgb2JqTHl0ZWJveC5hcHBlbmRDaGlsZChvYmpPdXRlckNvbnRhaW5lcik7CiAgICB2YXIgb2JqSWZyYW1lQ29udGFpbmVyID0gdGhpcy5kb2MuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiAgICAgICAgb2JqSWZyYW1lQ29udGFpbmVyLnNldEF0dHJpYnV0ZSgnaWQnLCdsYklmcmFtZUNvbnRhaW5lcicpOwogICAgICAgIG9iaklmcmFtZUNvbnRhaW5lci5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwogICAgICAgIG9iak91dGVyQ29udGFpbmVyLmFwcGVuZENoaWxkKG9iaklmcmFtZUNvbnRhaW5lcik7CiAgICB2YXIgb2JqSWZyYW1lID0gdGhpcy5kb2MuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CiAgICAgICAgb2JqSWZyYW1lLnNldEF0dHJpYnV0ZSgnaWQnLCdsYklmcmFtZScpOwogICAgICAgIG9iaklmcmFtZS5zZXRBdHRyaWJ1dGUoJ25hbWUnLCdsYklmcmFtZScpOwogICAgICAgIG9iaklmcmFtZS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwogICAgICAgIG9iaklmcmFtZUNvbnRhaW5lci5hcHBlbmRDaGlsZChvYmpJZnJhbWUpOwogICAgdmFyIG9iakltYWdlQ29udGFpbmVyID0gdGhpcy5kb2MuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiAgICAgICAgb2JqSW1hZ2VDb250YWluZXIuc2V0QXR0cmlidXRlKCdpZCcsJ2xiSW1hZ2VDb250YWluZXInKTsKICAgICAgICBvYmpPdXRlckNvbnRhaW5lci5hcHBlbmRDaGlsZChvYmpJbWFnZUNvbnRhaW5lcik7CiAgICB2YXIgb2JqTHl0ZWJveEltYWdlID0gdGhpcy5kb2MuY3JlYXRlRWxlbWVudCgiaW1nIik7CiAgICAgICAgb2JqTHl0ZWJveEltYWdlLnNldEF0dHJpYnV0ZSgnaWQnLCdsYkltYWdlJyk7CiAgICAgICAgb2JqSW1hZ2VDb250YWluZXIuYXBwZW5kQ2hpbGQob2JqTHl0ZWJveEltYWdlKTsKICAgIHZhciBvYmpMb2FkaW5nID0gdGhpcy5kb2MuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiAgICAgICAgb2JqTG9hZGluZy5zZXRBdHRyaWJ1dGUoJ2lkJywnbGJMb2FkaW5nJyk7CiAgICAgICAgb2JqT3V0ZXJDb250YWluZXIuYXBwZW5kQ2hpbGQob2JqTG9hZGluZyk7CiAgICB2YXIgb2JqRGV0YWlsc0NvbnRhaW5lciA9IHRoaXMuZG9jLmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgICAgIG9iakRldGFpbHNDb250YWluZXIuc2V0QXR0cmlidXRlKCdpZCcsJ2xiRGV0YWlsc0NvbnRhaW5lcicpOwogICAgICAgIG9iakRldGFpbHNDb250YWluZXIuc2V0QXR0cmlidXRlKCh0aGlzLmllID8gJ2NsYXNzTmFtZScgOiAnY2xhc3MnKSwgdGhpcy50aGVtZSk7CiAgICAgICAgb2JqTHl0ZWJveC5hcHBlbmRDaGlsZChvYmpEZXRhaWxzQ29udGFpbmVyKTsKICAgIHZhciBvYmpEZXRhaWxzRGF0YSA9dGhpcy5kb2MuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiAgICAgICAgb2JqRGV0YWlsc0RhdGEuc2V0QXR0cmlidXRlKCdpZCcsJ2xiRGV0YWlsc0RhdGEnKTsKICAgICAgICBvYmpEZXRhaWxzRGF0YS5zZXRBdHRyaWJ1dGUoKHRoaXMuaWUgPyAnY2xhc3NOYW1lJyA6ICdjbGFzcycpLCB0aGlzLnRoZW1lKTsKICAgICAgICBvYmpEZXRhaWxzQ29udGFpbmVyLmFwcGVuZENoaWxkKG9iakRldGFpbHNEYXRhKTsKICAgIHZhciBvYmpEZXRhaWxzID0gdGhpcy5kb2MuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiAgICAgICAgb2JqRGV0YWlscy5zZXRBdHRyaWJ1dGUoJ2lkJywnbGJEZXRhaWxzJyk7CiAgICAgICAgb2JqRGV0YWlsc0RhdGEuYXBwZW5kQ2hpbGQob2JqRGV0YWlscyk7CiAgICB2YXIgb2JqQ2FwdGlvbiA9IHRoaXMuZG9jLmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKICAgICAgICBvYmpDYXB0aW9uLnNldEF0dHJpYnV0ZSgnaWQnLCdsYkNhcHRpb24nKTsKICAgICAgICBvYmpEZXRhaWxzLmFwcGVuZENoaWxkKG9iakNhcHRpb24pOwogICAgdmFyIG9iakhvdmVyTmF2ID0gdGhpcy5kb2MuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiAgICAgICAgb2JqSG92ZXJOYXYuc2V0QXR0cmlidXRlKCdpZCcsJ2xiSG92ZXJOYXYnKTsKICAgICAgICBvYmpJbWFnZUNvbnRhaW5lci5hcHBlbmRDaGlsZChvYmpIb3Zlck5hdik7CiAgICB2YXIgb2JqQm90dG9tTmF2ID0gdGhpcy5kb2MuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiAgICAgICAgb2JqQm90dG9tTmF2LnNldEF0dHJpYnV0ZSgnaWQnLCdsYkJvdHRvbU5hdicpOwogICAgICAgIG9iakRldGFpbHNEYXRhLmFwcGVuZENoaWxkKG9iakJvdHRvbU5hdik7CiAgICB2YXIgb2JqUHJldiA9IHRoaXMuZG9jLmNyZWF0ZUVsZW1lbnQoImEiKTsKICAgICAgICBvYmpQcmV2LnNldEF0dHJpYnV0ZSgnaWQnLCdsYlByZXYnKTsKICAgICAgICBvYmpQcmV2LnNldEF0dHJpYnV0ZSgodGhpcy5pZSA/ICdjbGFzc05hbWUnIDogJ2NsYXNzJyksIHRoaXMudGhlbWUpOwogICAgICAgIG9ialByZXYuc2V0QXR0cmlidXRlKCdocmVmJywnIycpOwogICAgICAgIG9iakhvdmVyTmF2LmFwcGVuZENoaWxkKG9ialByZXYpOwogICAgdmFyIG9iak5leHQgPSB0aGlzLmRvYy5jcmVhdGVFbGVtZW50KCJhIik7CiAgICAgICAgb2JqTmV4dC5zZXRBdHRyaWJ1dGUoJ2lkJywnbGJOZXh0Jyk7CiAgICAgICAgb2JqTmV4dC5zZXRBdHRyaWJ1dGUoKHRoaXMuaWUgPyAnY2xhc3NOYW1lJyA6ICdjbGFzcycpLCB0aGlzLnRoZW1lKTsKICAgICAgICBvYmpOZXh0LnNldEF0dHJpYnV0ZSgnaHJlZicsJyMnKTsKICAgICAgICBvYmpIb3Zlck5hdi5hcHBlbmRDaGlsZChvYmpOZXh0KTsKICAgIHZhciBvYmpOdW1iZXJEaXNwbGF5ID0gdGhpcy5kb2MuY3JlYXRlRWxlbWVudCgic3BhbiIpOwogICAgICAgIG9iak51bWJlckRpc3BsYXkuc2V0QXR0cmlidXRlKCdpZCcsJ2xiTnVtYmVyRGlzcGxheScpOwogICAgICAgIG9iakRldGFpbHMuYXBwZW5kQ2hpbGQob2JqTnVtYmVyRGlzcGxheSk7CiAgICB2YXIgb2JqTmF2RGlzcGxheSA9IHRoaXMuZG9jLmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKICAgICAgICBvYmpOYXZEaXNwbGF5LnNldEF0dHJpYnV0ZSgnaWQnLCdsYk5hdkRpc3BsYXknKTsKICAgICAgICBvYmpOYXZEaXNwbGF5LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAgICAgICAgb2JqRGV0YWlscy5hcHBlbmRDaGlsZChvYmpOYXZEaXNwbGF5KTsKICAgIHZhciBvYmpDbG9zZSA9IHRoaXMuZG9jLmNyZWF0ZUVsZW1lbnQoImEiKTsKICAgICAgICBvYmpDbG9zZS5zZXRBdHRyaWJ1dGUoJ2lkJywnbGJDbG9zZScpOwogICAgICAgIG9iakNsb3NlLnNldEF0dHJpYnV0ZSgodGhpcy5pZSA/ICdjbGFzc05hbWUnIDogJ2NsYXNzJyksIHRoaXMudGhlbWUpOwogICAgICAgIG9iakNsb3NlLnNldEF0dHJpYnV0ZSgnaHJlZicsJyMnKTsKICAgICAgICBvYmpCb3R0b21OYXYuYXBwZW5kQ2hpbGQob2JqQ2xvc2UpOwogICAgdmFyIG9ialBhdXNlID0gdGhpcy5kb2MuY3JlYXRlRWxlbWVudCgiYSIpOwogICAgICAgIG9ialBhdXNlLnNldEF0dHJpYnV0ZSgnaWQnLCdsYlBhdXNlJyk7CiAgICAgICAgb2JqUGF1c2Uuc2V0QXR0cmlidXRlKCh0aGlzLmllID8gJ2NsYXNzTmFtZScgOiAnY2xhc3MnKSwgdGhpcy50aGVtZSk7CiAgICAgICAgb2JqUGF1c2Uuc2V0QXR0cmlidXRlKCdocmVmJywnIycpOwogICAgICAgIG9ialBhdXNlLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAgICAgICAgb2JqQm90dG9tTmF2LmFwcGVuZENoaWxkKG9ialBhdXNlKTsKICAgIHZhciBvYmpQbGF5ID0gdGhpcy5kb2MuY3JlYXRlRWxlbWVudCgiYSIpOwogICAgICAgIG9ialBsYXkuc2V0QXR0cmlidXRlKCdpZCcsJ2xiUGxheScpOwogICAgICAgIG9ialBsYXkuc2V0QXR0cmlidXRlKCh0aGlzLmllID8gJ2NsYXNzTmFtZScgOiAnY2xhc3MnKSwgdGhpcy50aGVtZSk7CiAgICAgICAgb2JqUGxheS5zZXRBdHRyaWJ1dGUoJ2hyZWYnLCcjJyk7CiAgICAgICAgb2JqUGxheS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwogICAgICAgIG9iakJvdHRvbU5hdi5hcHBlbmRDaGlsZChvYmpQbGF5KTsKfTsKTHl0ZUJveC5wcm90b3R5cGUudXBkYXRlTHl0ZWJveEl0ZW1zID0gZnVuY3Rpb24oKSB7CiAgICB2YXIgYW5jaG9ycyA9ICh0aGlzLmlzRnJhbWUpID8gd2luZG93LnBhcmVudC5mcmFtZXNbd2luZG93Lm5hbWVdLmRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdhJykgOiBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnYScpOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhbmNob3JzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgdmFyIGFuY2hvciA9IGFuY2hvcnNbaV07CiAgICAgICAgdmFyIHJlbEF0dHJpYnV0ZSA9IFN0cmluZyhhbmNob3IuZ2V0QXR0cmlidXRlKCdyZWwnKSk7CiAgICAgICAgaWYgKGFuY2hvci5nZXRBdHRyaWJ1dGUoJ2hyZWYnKSkgewogICAgICAgICAgICBpZiAocmVsQXR0cmlidXRlLnRvTG93ZXJDYXNlKCkubWF0Y2goJ2x5dGVib3gnKSkgewogICAgICAgICAgICAgICAgYW5jaG9yLm9uY2xpY2sgPSBmdW5jdGlvbiAoKSB7IG15THl0ZWJveC5zdGFydCh0aGlzLCBmYWxzZSwgZmFsc2UpOyByZXR1cm4gZmFsc2U7IH0KICAgICAgICAgICAgfSBlbHNlIGlmIChyZWxBdHRyaWJ1dGUudG9Mb3dlckNhc2UoKS5tYXRjaCgnbHl0ZXNob3cnKSkgewogICAgICAgICAgICAgICAgYW5jaG9yLm9uY2xpY2sgPSBmdW5jdGlvbiAoKSB7IG15THl0ZWJveC5zdGFydCh0aGlzLCB0cnVlLCBmYWxzZSk7IHJldHVybiBmYWxzZTsgfQogICAgICAgICAgICB9IGVsc2UgaWYgKHJlbEF0dHJpYnV0ZS50b0xvd2VyQ2FzZSgpLm1hdGNoKCdseXRlZnJhbWUnKSkgewogICAgICAgICAgICAgICAgYW5jaG9yLm9uY2xpY2sgPSBmdW5jdGlvbiAoKSB7IG15THl0ZWJveC5zdGFydCh0aGlzLCBmYWxzZSwgdHJ1ZSk7IHJldHVybiBmYWxzZTsgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQp9OwpMeXRlQm94LnByb3RvdHlwZS5zdGFydCA9IGZ1bmN0aW9uKGltYWdlTGluaywgZG9TbGlkZSwgZG9GcmFtZSkgewogICAgaWYgKHRoaXMuaWUgJiYgIXRoaXMuaWU3KSB7IHRoaXMudG9nZ2xlU2VsZWN0cygnaGlkZScpOyB9CiAgICBpZiAodGhpcy5oaWRlRmxhc2gpIHsgdGhpcy50b2dnbGVGbGFzaCgnaGlkZScpOyB9CiAgICB0aGlzLmlzTHl0ZWZyYW1lID0gKGRvRnJhbWUgPyB0cnVlIDogZmFsc2UpOwogICAgdmFyIHBhZ2VTaXplICAgID0gdGhpcy5nZXRQYWdlU2l6ZSgpOwogICAgdmFyIG9iak92ZXJsYXkgID0gdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoJ2xiT3ZlcmxheScpOwogICAgdmFyIG9iakJvZHkgICAgID0gdGhpcy5kb2MuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImJvZHkiKS5pdGVtKDApOwogICAgb2JqT3ZlcmxheS5zdHlsZS5oZWlnaHQgPSBwYWdlU2l6ZVsxXSArICJweCI7CiAgICBvYmpPdmVybGF5LnN0eWxlLmRpc3BsYXkgPSAnJzsKICAgIHRoaXMuYXBwZWFyKCdsYk92ZXJsYXknLCAodGhpcy5kb0FuaW1hdGlvbnMgPyAwIDogdGhpcy5tYXhPcGFjaXR5KSk7CiAgICB2YXIgYW5jaG9ycyA9ICh0aGlzLmlzRnJhbWUpID8gd2luZG93LnBhcmVudC5mcmFtZXNbd2luZG93Lm5hbWVdLmRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdhJykgOiBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnYScpOwogICAgaWYgKHRoaXMuaXNMeXRlZnJhbWUpIHsKICAgICAgICB0aGlzLmZyYW1lQXJyYXkgPSBbXTsKICAgICAgICB0aGlzLmZyYW1lTnVtID0gMDsKICAgICAgICBpZiAoKGltYWdlTGluay5nZXRBdHRyaWJ1dGUoJ3JlbCcpID09ICdseXRlZnJhbWUnKSkgewogICAgICAgICAgICB2YXIgcmV2ID0gaW1hZ2VMaW5rLmdldEF0dHJpYnV0ZSgncmV2Jyk7CiAgICAgICAgICAgIHRoaXMuZnJhbWVBcnJheS5wdXNoKG5ldyBBcnJheShpbWFnZUxpbmsuZ2V0QXR0cmlidXRlKCdocmVmJyksIGltYWdlTGluay5nZXRBdHRyaWJ1dGUoJ3RpdGxlJyksIChyZXYgPT0gbnVsbCB8fCByZXYgPT0gJycgPyAnd2lkdGg6IDQwMHB4OyBoZWlnaHQ6IDQwMHB4OyBzY3JvbGxpbmc6IGF1dG87JyA6IHJldikpKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBpZiAoaW1hZ2VMaW5rLmdldEF0dHJpYnV0ZSgncmVsJykuaW5kZXhPZignbHl0ZWZyYW1lJykgIT0gLTEpIHsKICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYW5jaG9ycy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICAgICAgICAgIHZhciBhbmNob3IgPSBhbmNob3JzW2ldOwogICAgICAgICAgICAgICAgICAgIGlmIChhbmNob3IuZ2V0QXR0cmlidXRlKCdocmVmJykgJiYgKGFuY2hvci5nZXRBdHRyaWJ1dGUoJ3JlbCcpID09IGltYWdlTGluay5nZXRBdHRyaWJ1dGUoJ3JlbCcpKSkgewogICAgICAgICAgICAgICAgICAgICAgICB2YXIgcmV2ID0gYW5jaG9yLmdldEF0dHJpYnV0ZSgncmV2Jyk7CiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZnJhbWVBcnJheS5wdXNoKG5ldyBBcnJheShhbmNob3IuZ2V0QXR0cmlidXRlKCdocmVmJyksIGFuY2hvci5nZXRBdHRyaWJ1dGUoJ3RpdGxlJyksIChyZXYgPT0gbnVsbCB8fCByZXYgPT0gJycgPyAnd2lkdGg6IDQwMHB4OyBoZWlnaHQ6IDQwMHB4OyBzY3JvbGxpbmc6IGF1dG87JyA6IHJldikpKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB0aGlzLmZyYW1lQXJyYXkucmVtb3ZlRHVwbGljYXRlcygpOwogICAgICAgICAgICAgICAgd2hpbGUodGhpcy5mcmFtZUFycmF5W3RoaXMuZnJhbWVOdW1dWzBdICE9IGltYWdlTGluay5nZXRBdHRyaWJ1dGUoJ2hyZWYnKSkgeyB0aGlzLmZyYW1lTnVtKys7IH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0gZWxzZSB7CiAgICAgICAgdGhpcy5pbWFnZUFycmF5ID0gW107CiAgICAgICAgdGhpcy5pbWFnZU51bSA9IDA7CiAgICAgICAgdGhpcy5zbGlkZUFycmF5ID0gW107CiAgICAgICAgdGhpcy5zbGlkZU51bSA9IDA7CiAgICAgICAgaWYgKChpbWFnZUxpbmsuZ2V0QXR0cmlidXRlKCdyZWwnKSA9PSAnbHl0ZWJveCcpKSB7CiAgICAgICAgICAgIHRoaXMuaW1hZ2VBcnJheS5wdXNoKG5ldyBBcnJheShpbWFnZUxpbmsuZ2V0QXR0cmlidXRlKCdocmVmJyksIGltYWdlTGluay5nZXRBdHRyaWJ1dGUoJ3RpdGxlJykpKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBpZiAoaW1hZ2VMaW5rLmdldEF0dHJpYnV0ZSgncmVsJykuaW5kZXhPZignbHl0ZWJveCcpICE9IC0xKSB7CiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFuY2hvcnMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgICAgICAgICB2YXIgYW5jaG9yID0gYW5jaG9yc1tpXTsKICAgICAgICAgICAgICAgICAgICBpZiAoYW5jaG9yLmdldEF0dHJpYnV0ZSgnaHJlZicpICYmIChhbmNob3IuZ2V0QXR0cmlidXRlKCdyZWwnKSA9PSBpbWFnZUxpbmsuZ2V0QXR0cmlidXRlKCdyZWwnKSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pbWFnZUFycmF5LnB1c2gobmV3IEFycmF5KGFuY2hvci5nZXRBdHRyaWJ1dGUoJ2hyZWYnKSwgYW5jaG9yLmdldEF0dHJpYnV0ZSgndGl0bGUnKSkpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHRoaXMuaW1hZ2VBcnJheS5yZW1vdmVEdXBsaWNhdGVzKCk7CiAgICAgICAgICAgICAgICB3aGlsZSh0aGlzLmltYWdlQXJyYXlbdGhpcy5pbWFnZU51bV1bMF0gIT0gaW1hZ2VMaW5rLmdldEF0dHJpYnV0ZSgnaHJlZicpKSB7IHRoaXMuaW1hZ2VOdW0rKzsgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChpbWFnZUxpbmsuZ2V0QXR0cmlidXRlKCdyZWwnKS5pbmRleE9mKCdseXRlc2hvdycpICE9IC0xKSB7CiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFuY2hvcnMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgICAgICAgICB2YXIgYW5jaG9yID0gYW5jaG9yc1tpXTsKICAgICAgICAgICAgICAgICAgICBpZiAoYW5jaG9yLmdldEF0dHJpYnV0ZSgnaHJlZicpICYmIChhbmNob3IuZ2V0QXR0cmlidXRlKCdyZWwnKSA9PSBpbWFnZUxpbmsuZ2V0QXR0cmlidXRlKCdyZWwnKSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zbGlkZUFycmF5LnB1c2gobmV3IEFycmF5KGFuY2hvci5nZXRBdHRyaWJ1dGUoJ2hyZWYnKSwgYW5jaG9yLmdldEF0dHJpYnV0ZSgndGl0bGUnKSkpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHRoaXMuc2xpZGVBcnJheS5yZW1vdmVEdXBsaWNhdGVzKCk7CiAgICAgICAgICAgICAgICB3aGlsZSh0aGlzLnNsaWRlQXJyYXlbdGhpcy5zbGlkZU51bV1bMF0gIT0gaW1hZ2VMaW5rLmdldEF0dHJpYnV0ZSgnaHJlZicpKSB7IHRoaXMuc2xpZGVOdW0rKzsgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgdmFyIG9iamVjdCA9IHRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKCdsYk1haW4nKTsKICAgICAgICBvYmplY3Quc3R5bGUudG9wID0gKHRoaXMuZ2V0UGFnZVNjcm9sbCgpICsgKHBhZ2VTaXplWzNdIC8gMTUpKSArICJweCI7CiAgICAgICAgb2JqZWN0LnN0eWxlLmRpc3BsYXkgPSAnJzsKICAgIGlmICghdGhpcy5vdXRlckJvcmRlcikgewogICAgICAgIHRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKCdsYk91dGVyQ29udGFpbmVyJykuc3R5bGUuYm9yZGVyID0gJ25vbmUnOwogICAgICAgIHRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKCdsYkRldGFpbHNDb250YWluZXInKS5zdHlsZS5ib3JkZXIgPSAnbm9uZSc7CiAgICB9IGVsc2UgewogICAgICAgIHRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKCdsYk91dGVyQ29udGFpbmVyJykuc3R5bGUuYm9yZGVyQm90dG9tID0gJyc7CiAgICAgICAgdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoJ2xiT3V0ZXJDb250YWluZXInKS5zZXRBdHRyaWJ1dGUoKHRoaXMuaWUgPyAnY2xhc3NOYW1lJyA6ICdjbGFzcycpLCB0aGlzLnRoZW1lKTsKICAgIH0KICAgIHRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKCdsYk92ZXJsYXknKS5vbmNsaWNrID0gZnVuY3Rpb24oKSB7IG15THl0ZWJveC5lbmQoKTsgcmV0dXJuIGZhbHNlOyB9CiAgICB0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJNYWluJykub25jbGljayA9IGZ1bmN0aW9uKGUpIHsKICAgICAgICB2YXIgZSA9IGU7CiAgICAgICAgaWYgKCFlKSB7CiAgICAgICAgICAgIGlmICh3aW5kb3cucGFyZW50LmZyYW1lc1t3aW5kb3cubmFtZV0gJiYgKHBhcmVudC5kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnZnJhbWVzZXQnKS5sZW5ndGggPD0gMCkpIHsKICAgICAgICAgICAgICAgIGUgPSB3aW5kb3cucGFyZW50LndpbmRvdy5ldmVudDsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIGUgPSB3aW5kb3cuZXZlbnQ7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgdmFyIGlkID0gKGUudGFyZ2V0ID8gZS50YXJnZXQuaWQgOiBlLnNyY0VsZW1lbnQuaWQpOwogICAgICAgIGlmIChpZCA9PSAnbGJNYWluJykgeyBteUx5dGVib3guZW5kKCk7IHJldHVybiBmYWxzZTsgfQogICAgfQogICAgdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoJ2xiQ2xvc2UnKS5vbmNsaWNrID0gZnVuY3Rpb24oKSB7IG15THl0ZWJveC5lbmQoKTsgcmV0dXJuIGZhbHNlOyB9CiAgICB0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJQYXVzZScpLm9uY2xpY2sgPSBmdW5jdGlvbigpIHsgbXlMeXRlYm94LnRvZ2dsZVBsYXlQYXVzZSgibGJQYXVzZSIsICJsYlBsYXkiKTsgcmV0dXJuIGZhbHNlOyB9CiAgICB0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJQbGF5Jykub25jbGljayA9IGZ1bmN0aW9uKCkgeyBteUx5dGVib3gudG9nZ2xlUGxheVBhdXNlKCJsYlBsYXkiLCAibGJQYXVzZSIpOyByZXR1cm4gZmFsc2U7IH0KICAgIHRoaXMuaXNTbGlkZXNob3cgPSBkb1NsaWRlOwogICAgdGhpcy5pc1BhdXNlZCA9ICh0aGlzLnNsaWRlTnVtICE9IDAgPyB0cnVlIDogZmFsc2UpOwogICAgaWYgKHRoaXMuaXNTbGlkZXNob3cgJiYgdGhpcy5zaG93UGxheVBhdXNlICYmIHRoaXMuaXNQYXVzZWQpIHsKICAgICAgICB0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJQbGF5Jykuc3R5bGUuZGlzcGxheSA9ICcnOwogICAgICAgIHRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKCdsYlBhdXNlJykuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKICAgIH0KICAgIGlmICh0aGlzLmlzTHl0ZWZyYW1lKSB7CiAgICAgICAgdGhpcy5jaGFuZ2VDb250ZW50KHRoaXMuZnJhbWVOdW0pOwogICAgfSBlbHNlIHsKICAgICAgICBpZiAodGhpcy5pc1NsaWRlc2hvdykgewogICAgICAgICAgICB0aGlzLmNoYW5nZUNvbnRlbnQodGhpcy5zbGlkZU51bSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgdGhpcy5jaGFuZ2VDb250ZW50KHRoaXMuaW1hZ2VOdW0pOwogICAgICAgIH0KICAgIH0KfTsKTHl0ZUJveC5wcm90b3R5cGUuY2hhbmdlQ29udGVudCA9IGZ1bmN0aW9uKGltYWdlTnVtKSB7CiAgICBpZiAodGhpcy5pc1NsaWRlc2hvdykgewogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5zbGlkZXNob3dJRENvdW50OyBpKyspIHsgd2luZG93LmNsZWFyVGltZW91dCh0aGlzLnNsaWRlc2hvd0lEQXJyYXlbaV0pOyB9CiAgICB9CiAgICB0aGlzLmFjdGl2ZUltYWdlID0gdGhpcy5hY3RpdmVTbGlkZSA9IHRoaXMuYWN0aXZlRnJhbWUgPSBpbWFnZU51bTsKICAgIGlmICghdGhpcy5vdXRlckJvcmRlcikgewogICAgICAgIHRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKCdsYk91dGVyQ29udGFpbmVyJykuc3R5bGUuYm9yZGVyID0gJ25vbmUnOwogICAgICAgIHRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKCdsYkRldGFpbHNDb250YWluZXInKS5zdHlsZS5ib3JkZXIgPSAnbm9uZSc7CiAgICB9IGVsc2UgewogICAgICAgIHRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKCdsYk91dGVyQ29udGFpbmVyJykuc3R5bGUuYm9yZGVyQm90dG9tID0gJyc7CiAgICAgICAgdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoJ2xiT3V0ZXJDb250YWluZXInKS5zZXRBdHRyaWJ1dGUoKHRoaXMuaWUgPyAnY2xhc3NOYW1lJyA6ICdjbGFzcycpLCB0aGlzLnRoZW1lKTsKICAgIH0KICAgIHRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKCdsYkxvYWRpbmcnKS5zdHlsZS5kaXNwbGF5ID0gJyc7CiAgICB0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJJbWFnZScpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAgICB0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJJZnJhbWUnKS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwogICAgdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoJ2xiUHJldicpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAgICB0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJOZXh0Jykuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKICAgIHRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKCdsYklmcmFtZUNvbnRhaW5lcicpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAgICB0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJEZXRhaWxzQ29udGFpbmVyJykuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKICAgIHRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKCdsYk51bWJlckRpc3BsYXknKS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwogICAgaWYgKHRoaXMubmF2VHlwZSA9PSAyIHx8IHRoaXMuaXNMeXRlZnJhbWUpIHsKICAgICAgICBvYmplY3QgPSB0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJOYXZEaXNwbGF5Jyk7CiAgICAgICAgb2JqZWN0LmlubmVySFRNTCA9ICcmbmJzcDsmbmJzcDsmbmJzcDs8c3BhbiBpZD0ibGJQcmV2Ml9PZmYiIHN0eWxlPSJkaXNwbGF5OiBub25lOyIgY2xhc3M9IicgKyB0aGlzLnRoZW1lICsgJyI+JmxhcXVvOyBwcmV2PC9zcGFuPjxhIGhyZWY9IiMiIGlkPSJsYlByZXYyIiBjbGFzcz0iJyArIHRoaXMudGhlbWUgKyAnIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPiZsYXF1bzsgcHJldjwvYT4gPGIgaWQ9ImxiU3BhY2VyIiBjbGFzcz0iJyArIHRoaXMudGhlbWUgKyAnIj58fDwvYj4gPHNwYW4gaWQ9ImxiTmV4dDJfT2ZmIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiIGNsYXNzPSInICsgdGhpcy50aGVtZSArICciPm5leHQgJnJhcXVvOzwvc3Bhbj48YSBocmVmPSIjIiBpZD0ibGJOZXh0MiIgY2xhc3M9IicgKyB0aGlzLnRoZW1lICsgJyIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij5uZXh0ICZyYXF1bzs8L2E+JzsKICAgICAgICBvYmplY3Quc3R5bGUuZGlzcGxheSA9ICdub25lJzsKICAgIH0KICAgIGlmICh0aGlzLmlzTHl0ZWZyYW1lKSB7CiAgICAgICAgdmFyIGlmcmFtZSA9IG15THl0ZWJveC5kb2MuZ2V0RWxlbWVudEJ5SWQoJ2xiSWZyYW1lJyk7CiAgICAgICAgdmFyIHN0eWxlcyA9IHRoaXMuZnJhbWVBcnJheVt0aGlzLmFjdGl2ZUZyYW1lXVsyXTsKICAgICAgICB2YXIgYVN0eWxlcyA9IHN0eWxlcy5zcGxpdCgnOycpOwogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYVN0eWxlcy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICBpZiAoYVN0eWxlc1tpXS5pbmRleE9mKCd3aWR0aDonKSA+PSAwKSB7CiAgICAgICAgICAgICAgICB2YXIgdyA9IGFTdHlsZXNbaV0ucmVwbGFjZSgnd2lkdGg6JywgJycpOwogICAgICAgICAgICAgICAgaWZyYW1lLndpZHRoID0gdy50cmltKCk7CiAgICAgICAgICAgIH0gZWxzZSBpZiAoYVN0eWxlc1tpXS5pbmRleE9mKCdoZWlnaHQ6JykgPj0gMCkgewogICAgICAgICAgICAgICAgdmFyIGggPSBhU3R5bGVzW2ldLnJlcGxhY2UoJ2hlaWdodDonLCAnJyk7CiAgICAgICAgICAgICAgICBpZnJhbWUuaGVpZ2h0ID0gaC50cmltKCk7CiAgICAgICAgICAgIH0gZWxzZSBpZiAoYVN0eWxlc1tpXS5pbmRleE9mKCdzY3JvbGxpbmc6JykgPj0gMCkgewogICAgICAgICAgICAgICAgdmFyIHMgPSBhU3R5bGVzW2ldLnJlcGxhY2UoJ3Njcm9sbGluZzonLCAnJyk7CiAgICAgICAgICAgICAgICBpZnJhbWUuc2Nyb2xsaW5nID0gcy50cmltKCk7CiAgICAgICAgICAgIH0gZWxzZSBpZiAoYVN0eWxlc1tpXS5pbmRleE9mKCdib3JkZXI6JykgPj0gMCkgewogICAgICAgICAgICAgICAgLy8gTm90IGltcGxlbWVudGVkIHlldCwgYXMgdGhlcmUgYXJlIGNyb3NzLXBsYXRmb3JtIGlzc3VlcyB3aXRoIHNldHRpbmcgdGhlIGJvcmRlciAoZnJvbSBhIEdVSSBzdGFuZHBvaW50KQogICAgICAgICAgICAgICAgLy92YXIgYiA9IGFTdHlsZXNbaV0ucmVwbGFjZSgnYm9yZGVyOicsICcnKTsKICAgICAgICAgICAgICAgIC8vaWZyYW1lLnN0eWxlLmJvcmRlciA9IGIudHJpbSgpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHRoaXMucmVzaXplQ29udGFpbmVyKHBhcnNlSW50KGlmcmFtZS53aWR0aCksIHBhcnNlSW50KGlmcmFtZS5oZWlnaHQpKTsKICAgIH0gZWxzZSB7CiAgICAgICAgaW1nUHJlbG9hZGVyID0gbmV3IEltYWdlKCk7CiAgICAgICAgaW1nUHJlbG9hZGVyLm9ubG9hZCA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgICB2YXIgaW1hZ2VXaWR0aCA9IGltZ1ByZWxvYWRlci53aWR0aDsKICAgICAgICAgICAgdmFyIGltYWdlSGVpZ2h0ID0gaW1nUHJlbG9hZGVyLmhlaWdodDsKICAgICAgICAgICAgaWYgKG15THl0ZWJveC5hdXRvUmVzaXplKSB7CiAgICAgICAgICAgICAgICB2YXIgcGFnZXNpemUgPSBteUx5dGVib3guZ2V0UGFnZVNpemUoKTsKICAgICAgICAgICAgICAgIHZhciB4ID0gcGFnZXNpemVbMl0gLSAxNTA7CiAgICAgICAgICAgICAgICB2YXIgeSA9IHBhZ2VzaXplWzNdIC0gMTUwOwogICAgICAgICAgICAgICAgaWYgKGltYWdlV2lkdGggPiB4KSB7CiAgICAgICAgICAgICAgICAgICAgaW1hZ2VIZWlnaHQgPSBNYXRoLnJvdW5kKGltYWdlSGVpZ2h0ICogKHggLyBpbWFnZVdpZHRoKSk7CiAgICAgICAgICAgICAgICAgICAgaW1hZ2VXaWR0aCA9IHg7CiAgICAgICAgICAgICAgICAgICAgaWYgKGltYWdlSGVpZ2h0ID4geSkgewogICAgICAgICAgICAgICAgICAgICAgICBpbWFnZVdpZHRoID0gTWF0aC5yb3VuZChpbWFnZVdpZHRoICogKHkgLyBpbWFnZUhlaWdodCkpOwogICAgICAgICAgICAgICAgICAgICAgICBpbWFnZUhlaWdodCA9IHk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpbWFnZUhlaWdodCA+IHkpIHsKICAgICAgICAgICAgICAgICAgICBpbWFnZVdpZHRoID0gTWF0aC5yb3VuZChpbWFnZVdpZHRoICogKHkgLyBpbWFnZUhlaWdodCkpOwogICAgICAgICAgICAgICAgICAgIGltYWdlSGVpZ2h0ID0geTsKICAgICAgICAgICAgICAgICAgICBpZiAoaW1hZ2VXaWR0aCA+IHgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgaW1hZ2VIZWlnaHQgPSBNYXRoLnJvdW5kKGltYWdlSGVpZ2h0ICogKHggLyBpbWFnZVdpZHRoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIGltYWdlV2lkdGggPSB4OwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICB2YXIgbGJJbWFnZSA9IG15THl0ZWJveC5kb2MuZ2V0RWxlbWVudEJ5SWQoJ2xiSW1hZ2UnKQogICAgICAgICAgICBsYkltYWdlLnNyYyA9IChteUx5dGVib3guaXNTbGlkZXNob3cgPyBteUx5dGVib3guc2xpZGVBcnJheVtteUx5dGVib3guYWN0aXZlU2xpZGVdWzBdIDogbXlMeXRlYm94LmltYWdlQXJyYXlbbXlMeXRlYm94LmFjdGl2ZUltYWdlXVswXSk7CiAgICAgICAgICAgIGxiSW1hZ2Uud2lkdGggPSBpbWFnZVdpZHRoOwogICAgICAgICAgICBsYkltYWdlLmhlaWdodCA9IGltYWdlSGVpZ2h0OwogICAgICAgICAgICBteUx5dGVib3gucmVzaXplQ29udGFpbmVyKGltYWdlV2lkdGgsIGltYWdlSGVpZ2h0KTsKICAgICAgICAgICAgaW1nUHJlbG9hZGVyLm9ubG9hZCA9IGZ1bmN0aW9uKCkge307CiAgICAgICAgfQogICAgICAgIGltZ1ByZWxvYWRlci5zcmMgPSAodGhpcy5pc1NsaWRlc2hvdyA/IHRoaXMuc2xpZGVBcnJheVt0aGlzLmFjdGl2ZVNsaWRlXVswXSA6IHRoaXMuaW1hZ2VBcnJheVt0aGlzLmFjdGl2ZUltYWdlXVswXSk7CiAgICB9Cn07Ckx5dGVCb3gucHJvdG90eXBlLnJlc2l6ZUNvbnRhaW5lciA9IGZ1bmN0aW9uKGltZ1dpZHRoLCBpbWdIZWlnaHQpIHsKICAgIHRoaXMud0N1ciA9IHRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKCdsYk91dGVyQ29udGFpbmVyJykub2Zmc2V0V2lkdGg7CiAgICB0aGlzLmhDdXIgPSB0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJPdXRlckNvbnRhaW5lcicpLm9mZnNldEhlaWdodDsKICAgIHRoaXMueFNjYWxlID0gKChpbWdXaWR0aCAgKyAodGhpcy5ib3JkZXJTaXplICogMikpIC8gdGhpcy53Q3VyKSAqIDEwMDsKICAgIHRoaXMueVNjYWxlID0gKChpbWdIZWlnaHQgICsgKHRoaXMuYm9yZGVyU2l6ZSAqIDIpKSAvIHRoaXMuaEN1cikgKiAxMDA7CiAgICB2YXIgd0RpZmYgPSAodGhpcy53Q3VyIC0gdGhpcy5ib3JkZXJTaXplICogMikgLSBpbWdXaWR0aDsKICAgIHZhciBoRGlmZiA9ICh0aGlzLmhDdXIgLSB0aGlzLmJvcmRlclNpemUgKiAyKSAtIGltZ0hlaWdodDsKICAgIGlmICghKGhEaWZmID09IDApKSB7CiAgICAgICAgdGhpcy5oRG9uZSA9IGZhbHNlOwogICAgICAgIHRoaXMucmVzaXplSCgnbGJPdXRlckNvbnRhaW5lcicsIHRoaXMuaEN1ciwgaW1nSGVpZ2h0ICsgdGhpcy5ib3JkZXJTaXplKjIsIHRoaXMuZ2V0UGl4ZWxSYXRlKHRoaXMuaEN1ciwgaW1nSGVpZ2h0KSk7CiAgICB9IGVsc2UgewogICAgICAgIHRoaXMuaERvbmUgPSB0cnVlOwogICAgfQogICAgaWYgKCEod0RpZmYgPT0gMCkpIHsKICAgICAgICB0aGlzLndEb25lID0gZmFsc2U7CiAgICAgICAgdGhpcy5yZXNpemVXKCdsYk91dGVyQ29udGFpbmVyJywgdGhpcy53Q3VyLCBpbWdXaWR0aCArIHRoaXMuYm9yZGVyU2l6ZSoyLCB0aGlzLmdldFBpeGVsUmF0ZSh0aGlzLndDdXIsIGltZ1dpZHRoKSk7CiAgICB9IGVsc2UgewogICAgICAgIHRoaXMud0RvbmUgPSB0cnVlOwogICAgfQogICAgaWYgKChoRGlmZiA9PSAwKSAmJiAod0RpZmYgPT0gMCkpIHsKICAgICAgICBpZiAodGhpcy5pZSl7IHRoaXMucGF1c2UoMjUwKTsgfSBlbHNlIHsgdGhpcy5wYXVzZSgxMDApOyB9CiAgICB9CiAgICB0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJQcmV2Jykuc3R5bGUuaGVpZ2h0ID0gaW1nSGVpZ2h0ICsgInB4IjsKICAgIHRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKCdsYk5leHQnKS5zdHlsZS5oZWlnaHQgPSBpbWdIZWlnaHQgKyAicHgiOwogICAgdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoJ2xiRGV0YWlsc0NvbnRhaW5lcicpLnN0eWxlLndpZHRoID0gKGltZ1dpZHRoICsgKHRoaXMuYm9yZGVyU2l6ZSAqIDIpICsgKHRoaXMuaWUgJiYgdGhpcy5kb2MuY29tcGF0TW9kZSA9PSAiQmFja0NvbXBhdCIgJiYgdGhpcy5vdXRlckJvcmRlciA/IDIgOiAwKSkgKyAicHgiOwogICAgdGhpcy5zaG93Q29udGVudCgpOwp9OwpMeXRlQm94LnByb3RvdHlwZS5zaG93Q29udGVudCA9IGZ1bmN0aW9uKCkgewogICAgaWYgKHRoaXMud0RvbmUgJiYgdGhpcy5oRG9uZSkgewogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5zaG93Q29udGVudFRpbWVyQ291bnQ7IGkrKykgeyB3aW5kb3cuY2xlYXJUaW1lb3V0KHRoaXMuc2hvd0NvbnRlbnRUaW1lckFycmF5W2ldKTsgfQogICAgICAgIGlmICh0aGlzLm91dGVyQm9yZGVyKSB7CiAgICAgICAgICAgIHRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKCdsYk91dGVyQ29udGFpbmVyJykuc3R5bGUuYm9yZGVyQm90dG9tID0gJ25vbmUnOwogICAgICAgIH0KICAgICAgICB0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJMb2FkaW5nJykuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKICAgICAgICBpZiAodGhpcy5pc0x5dGVmcmFtZSkgewogICAgICAgICAgICB0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJJZnJhbWUnKS5zdHlsZS5kaXNwbGF5ID0gJyc7CiAgICAgICAgICAgIHRoaXMuYXBwZWFyKCdsYklmcmFtZScsICh0aGlzLmRvQW5pbWF0aW9ucyA/IDAgOiAxMDApKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICB0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJJbWFnZScpLnN0eWxlLmRpc3BsYXkgPSAnJzsKICAgICAgICAgICAgdGhpcy5hcHBlYXIoJ2xiSW1hZ2UnLCAodGhpcy5kb0FuaW1hdGlvbnMgPyAwIDogMTAwKSk7CiAgICAgICAgICAgIHRoaXMucHJlbG9hZE5laWdoYm9ySW1hZ2VzKCk7CiAgICAgICAgfQogICAgICAgIGlmICh0aGlzLmlzU2xpZGVzaG93KSB7CiAgICAgICAgICAgIGlmKHRoaXMuYWN0aXZlU2xpZGUgPT0gKHRoaXMuc2xpZGVBcnJheS5sZW5ndGggLSAxKSkgewogICAgICAgICAgICAgICAgaWYgKHRoaXMuYXV0b0VuZCkgewogICAgICAgICAgICAgICAgICAgIHRoaXMuc2xpZGVzaG93SURBcnJheVt0aGlzLnNsaWRlc2hvd0lEQ291bnQrK10gPSBzZXRUaW1lb3V0KCJteUx5dGVib3guZW5kKCdzbGlkZXNob3cnKSIsIHRoaXMuc2xpZGVJbnRlcnZhbCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuaXNQYXVzZWQpIHsKICAgICAgICAgICAgICAgICAgICB0aGlzLnNsaWRlc2hvd0lEQXJyYXlbdGhpcy5zbGlkZXNob3dJRENvdW50KytdID0gc2V0VGltZW91dCgibXlMeXRlYm94LmNoYW5nZUNvbnRlbnQoIisodGhpcy5hY3RpdmVTbGlkZSsxKSsiKSIsIHRoaXMuc2xpZGVJbnRlcnZhbCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoJ2xiSG92ZXJOYXYnKS5zdHlsZS5kaXNwbGF5ID0gKHRoaXMuc2hvd05hdmlnYXRpb24gJiYgdGhpcy5uYXZUeXBlID09IDEgPyAnJyA6ICdub25lJyk7CiAgICAgICAgICAgIHRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKCdsYkNsb3NlJykuc3R5bGUuZGlzcGxheSA9ICh0aGlzLnNob3dDbG9zZSA/ICcnIDogJ25vbmUnKTsKICAgICAgICAgICAgdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoJ2xiRGV0YWlscycpLnN0eWxlLmRpc3BsYXkgPSAodGhpcy5zaG93RGV0YWlscyA/ICcnIDogJ25vbmUnKTsKICAgICAgICAgICAgdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoJ2xiUGF1c2UnKS5zdHlsZS5kaXNwbGF5ID0gKHRoaXMuc2hvd1BsYXlQYXVzZSAmJiAhdGhpcy5pc1BhdXNlZCA/ICcnIDogJ25vbmUnKTsKICAgICAgICAgICAgdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoJ2xiUGxheScpLnN0eWxlLmRpc3BsYXkgPSAodGhpcy5zaG93UGxheVBhdXNlICYmICF0aGlzLmlzUGF1c2VkID8gJ25vbmUnIDogJycpOwogICAgICAgICAgICB0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJOYXZEaXNwbGF5Jykuc3R5bGUuZGlzcGxheSA9ICh0aGlzLnNob3dOYXZpZ2F0aW9uICYmIHRoaXMubmF2VHlwZSA9PSAyID8gJycgOiAnbm9uZScpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKCdsYkhvdmVyTmF2Jykuc3R5bGUuZGlzcGxheSA9ICh0aGlzLm5hdlR5cGUgPT0gMSAmJiAhdGhpcy5pc0x5dGVmcmFtZSA/ICcnIDogJ25vbmUnKTsKICAgICAgICAgICAgaWYgKCh0aGlzLm5hdlR5cGUgPT0gMiAmJiAhdGhpcy5pc0x5dGVmcmFtZSAmJiB0aGlzLmltYWdlQXJyYXkubGVuZ3RoID4gMSkgfHwgKHRoaXMuZnJhbWVBcnJheS5sZW5ndGggPiAxICYmIHRoaXMuaXNMeXRlZnJhbWUpKSB7CiAgICAgICAgICAgICAgICB0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJOYXZEaXNwbGF5Jykuc3R5bGUuZGlzcGxheSA9ICcnOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoJ2xiTmF2RGlzcGxheScpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoJ2xiQ2xvc2UnKS5zdHlsZS5kaXNwbGF5ID0gJyc7CiAgICAgICAgICAgIHRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKCdsYkRldGFpbHMnKS5zdHlsZS5kaXNwbGF5ID0gJyc7CiAgICAgICAgICAgIHRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKCdsYlBhdXNlJykuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKICAgICAgICAgICAgdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoJ2xiUGxheScpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAgICAgICAgfQogICAgICAgIHRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKCdsYkltYWdlQ29udGFpbmVyJykuc3R5bGUuZGlzcGxheSA9ICh0aGlzLmlzTHl0ZWZyYW1lID8gJ25vbmUnIDogJycpOwogICAgICAgIHRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKCdsYklmcmFtZUNvbnRhaW5lcicpLnN0eWxlLmRpc3BsYXkgPSAodGhpcy5pc0x5dGVmcmFtZSA/ICcnIDogJ25vbmUnKTsKICAgICAgICB0cnkgewogICAgICAgICAgICB0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJJZnJhbWUnKS5zcmMgPSB0aGlzLmZyYW1lQXJyYXlbdGhpcy5hY3RpdmVGcmFtZV1bMF07CiAgICAgICAgfSBjYXRjaChlKSB7IH0KICAgIH0gZWxzZSB7CiAgICAgICAgdGhpcy5zaG93Q29udGVudFRpbWVyQXJyYXlbdGhpcy5zaG93Q29udGVudFRpbWVyQ291bnQrK10gPSBzZXRUaW1lb3V0KCJteUx5dGVib3guc2hvd0NvbnRlbnQoKSIsIDIwMCk7CiAgICB9Cn07Ckx5dGVCb3gucHJvdG90eXBlLnVwZGF0ZURldGFpbHMgPSBmdW5jdGlvbigpIHsKICAgIHZhciBvYmplY3QgPSB0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJDYXB0aW9uJyk7CiAgICB2YXIgc1RpdGxlID0gKHRoaXMuaXNTbGlkZXNob3cgPyB0aGlzLnNsaWRlQXJyYXlbdGhpcy5hY3RpdmVTbGlkZV1bMV0gOiAodGhpcy5pc0x5dGVmcmFtZSA/IHRoaXMuZnJhbWVBcnJheVt0aGlzLmFjdGl2ZUZyYW1lXVsxXSA6IHRoaXMuaW1hZ2VBcnJheVt0aGlzLmFjdGl2ZUltYWdlXVsxXSkpOwogICAgb2JqZWN0LnN0eWxlLmRpc3BsYXkgPSAnJzsKICAgIG9iamVjdC5pbm5lckhUTUwgPSAoc1RpdGxlID09IG51bGwgPyAnJyA6IHNUaXRsZSk7CiAgICB0aGlzLnVwZGF0ZU5hdigpOwogICAgdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoJ2xiRGV0YWlsc0NvbnRhaW5lcicpLnN0eWxlLmRpc3BsYXkgPSAnJzsKICAgIG9iamVjdCA9IHRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKCdsYk51bWJlckRpc3BsYXknKTsKICAgIGlmICh0aGlzLmlzU2xpZGVzaG93ICYmIHRoaXMuc2xpZGVBcnJheS5sZW5ndGggPiAxKSB7CiAgICAgICAgb2JqZWN0LnN0eWxlLmRpc3BsYXkgPSAnJzsKICAgICAgICBvYmplY3QuaW5uZXJIVE1MID0gIkltYWdlICIgKyBldmFsKHRoaXMuYWN0aXZlU2xpZGUgKyAxKSArICIgb2YgIiArIHRoaXMuc2xpZGVBcnJheS5sZW5ndGg7CiAgICAgICAgdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoJ2xiTmF2RGlzcGxheScpLnN0eWxlLmRpc3BsYXkgPSAodGhpcy5uYXZUeXBlID09IDIgJiYgdGhpcy5zaG93TmF2aWdhdGlvbiA/ICcnIDogJ25vbmUnKTsKICAgIH0gZWxzZSBpZiAodGhpcy5pbWFnZUFycmF5Lmxlbmd0aCA+IDEgJiYgIXRoaXMuaXNMeXRlZnJhbWUpIHsKICAgICAgICBvYmplY3Quc3R5bGUuZGlzcGxheSA9ICcnOwogICAgICAgIG9iamVjdC5pbm5lckhUTUwgPSAiSW1hZ2UgIiArIGV2YWwodGhpcy5hY3RpdmVJbWFnZSArIDEpICsgIiBvZiAiICsgdGhpcy5pbWFnZUFycmF5Lmxlbmd0aDsKICAgICAgICB0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJOYXZEaXNwbGF5Jykuc3R5bGUuZGlzcGxheSA9ICh0aGlzLm5hdlR5cGUgPT0gMiA/ICcnIDogJ25vbmUnKTsKICAgIH0gZWxzZSBpZiAodGhpcy5mcmFtZUFycmF5Lmxlbmd0aCA+IDEgJiYgdGhpcy5pc0x5dGVmcmFtZSkgewogICAgICAgIG9iamVjdC5zdHlsZS5kaXNwbGF5ID0gJyc7CiAgICAgICAgb2JqZWN0LmlubmVySFRNTCA9ICJQYWdlICIgKyBldmFsKHRoaXMuYWN0aXZlRnJhbWUgKyAxKSArICIgb2YgIiArIHRoaXMuZnJhbWVBcnJheS5sZW5ndGg7CiAgICAgICAgdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoJ2xiTmF2RGlzcGxheScpLnN0eWxlLmRpc3BsYXkgPSAnJzsKICAgIH0gZWxzZSB7CiAgICAgICAgdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoJ2xiTmF2RGlzcGxheScpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAgICB9CiAgICB0aGlzLmFwcGVhcignbGJEZXRhaWxzQ29udGFpbmVyJywgKHRoaXMuZG9BbmltYXRpb25zID8gMCA6IDEwMCkpOwp9OwpMeXRlQm94LnByb3RvdHlwZS51cGRhdGVOYXYgPSBmdW5jdGlvbigpIHsKICAgIGlmICh0aGlzLmlzU2xpZGVzaG93KSB7CiAgICAgICAgaWYgKHRoaXMuYWN0aXZlU2xpZGUgIT0gMCkgewogICAgICAgICAgICB2YXIgb2JqZWN0ID0gKHRoaXMubmF2VHlwZSA9PSAyID8gdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoJ2xiUHJldjInKSA6IHRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKCdsYlByZXYnKSk7CiAgICAgICAgICAgICAgICBvYmplY3Quc3R5bGUuZGlzcGxheSA9ICcnOwogICAgICAgICAgICAgICAgb2JqZWN0Lm9uY2xpY2sgPSBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAgICBpZiAobXlMeXRlYm94LnBhdXNlT25QcmV2Q2xpY2spIHsgbXlMeXRlYm94LnRvZ2dsZVBsYXlQYXVzZSgibGJQYXVzZSIsICJsYlBsYXkiKTsgfQogICAgICAgICAgICAgICAgICAgIG15THl0ZWJveC5jaGFuZ2VDb250ZW50KG15THl0ZWJveC5hY3RpdmVTbGlkZSAtIDEpOyByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgaWYgKHRoaXMubmF2VHlwZSA9PSAyKSB7IHRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKCdsYlByZXYyX09mZicpLnN0eWxlLmRpc3BsYXkgPSAnJzsgfQogICAgICAgIH0KICAgICAgICBpZiAodGhpcy5hY3RpdmVTbGlkZSAhPSAodGhpcy5zbGlkZUFycmF5Lmxlbmd0aCAtIDEpKSB7CiAgICAgICAgICAgIHZhciBvYmplY3QgPSAodGhpcy5uYXZUeXBlID09IDIgPyB0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJOZXh0MicpIDogdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoJ2xiTmV4dCcpKTsKICAgICAgICAgICAgICAgIG9iamVjdC5zdHlsZS5kaXNwbGF5ID0gJyc7CiAgICAgICAgICAgICAgICBvYmplY3Qub25jbGljayA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgIGlmIChteUx5dGVib3gucGF1c2VPbk5leHRDbGljaykgeyBteUx5dGVib3gudG9nZ2xlUGxheVBhdXNlKCJsYlBhdXNlIiwgImxiUGxheSIpOyB9CiAgICAgICAgICAgICAgICAgICAgbXlMeXRlYm94LmNoYW5nZUNvbnRlbnQobXlMeXRlYm94LmFjdGl2ZVNsaWRlICsgMSk7IHJldHVybiBmYWxzZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBpZiAodGhpcy5uYXZUeXBlID09IDIpIHsgdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoJ2xiTmV4dDJfT2ZmJykuc3R5bGUuZGlzcGxheSA9ICcnOyB9CiAgICAgICAgfQogICAgfSBlbHNlIGlmICh0aGlzLmlzTHl0ZWZyYW1lKSB7CiAgICAgICAgaWYodGhpcy5hY3RpdmVGcmFtZSAhPSAwKSB7CiAgICAgICAgICAgIHZhciBvYmplY3QgPSB0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJQcmV2MicpOwogICAgICAgICAgICAgICAgb2JqZWN0LnN0eWxlLmRpc3BsYXkgPSAnJzsKICAgICAgICAgICAgICAgIG9iamVjdC5vbmNsaWNrID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgICAgbXlMeXRlYm94LmNoYW5nZUNvbnRlbnQobXlMeXRlYm94LmFjdGl2ZUZyYW1lIC0gMSk7IHJldHVybiBmYWxzZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgICB0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJQcmV2Ml9PZmYnKS5zdHlsZS5kaXNwbGF5ID0gJyc7CiAgICAgICAgfQogICAgICAgIGlmKHRoaXMuYWN0aXZlRnJhbWUgIT0gKHRoaXMuZnJhbWVBcnJheS5sZW5ndGggLSAxKSkgewogICAgICAgICAgICB2YXIgb2JqZWN0ID0gdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoJ2xiTmV4dDInKTsKICAgICAgICAgICAgICAgIG9iamVjdC5zdHlsZS5kaXNwbGF5ID0gJyc7CiAgICAgICAgICAgICAgICBvYmplY3Qub25jbGljayA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgIG15THl0ZWJveC5jaGFuZ2VDb250ZW50KG15THl0ZWJveC5hY3RpdmVGcmFtZSArIDEpOyByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoJ2xiTmV4dDJfT2ZmJykuc3R5bGUuZGlzcGxheSA9ICcnOwogICAgICAgIH0KICAgIH0gZWxzZSB7CiAgICAgICAgaWYodGhpcy5hY3RpdmVJbWFnZSAhPSAwKSB7CiAgICAgICAgICAgIHZhciBvYmplY3QgPSAodGhpcy5uYXZUeXBlID09IDIgPyB0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJQcmV2MicpIDogdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoJ2xiUHJldicpKTsKICAgICAgICAgICAgICAgIG9iamVjdC5zdHlsZS5kaXNwbGF5ID0gJyc7CiAgICAgICAgICAgICAgICBvYmplY3Qub25jbGljayA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgIG15THl0ZWJveC5jaGFuZ2VDb250ZW50KG15THl0ZWJveC5hY3RpdmVJbWFnZSAtIDEpOyByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgaWYgKHRoaXMubmF2VHlwZSA9PSAyKSB7IHRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKCdsYlByZXYyX09mZicpLnN0eWxlLmRpc3BsYXkgPSAnJzsgfQogICAgICAgIH0KICAgICAgICBpZih0aGlzLmFjdGl2ZUltYWdlICE9ICh0aGlzLmltYWdlQXJyYXkubGVuZ3RoIC0gMSkpIHsKICAgICAgICAgICAgdmFyIG9iamVjdCA9ICh0aGlzLm5hdlR5cGUgPT0gMiA/IHRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKCdsYk5leHQyJykgOiB0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJOZXh0JykpOwogICAgICAgICAgICAgICAgb2JqZWN0LnN0eWxlLmRpc3BsYXkgPSAnJzsKICAgICAgICAgICAgICAgIG9iamVjdC5vbmNsaWNrID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgICAgbXlMeXRlYm94LmNoYW5nZUNvbnRlbnQobXlMeXRlYm94LmFjdGl2ZUltYWdlICsgMSk7IHJldHVybiBmYWxzZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBpZiAodGhpcy5uYXZUeXBlID09IDIpIHsgdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoJ2xiTmV4dDJfT2ZmJykuc3R5bGUuZGlzcGxheSA9ICcnOyB9CiAgICAgICAgfQogICAgfQogICAgdGhpcy5lbmFibGVLZXlib2FyZE5hdigpOwp9OwpMeXRlQm94LnByb3RvdHlwZS5lbmFibGVLZXlib2FyZE5hdiA9IGZ1bmN0aW9uKCkgeyBkb2N1bWVudC5vbmtleWRvd24gPSB0aGlzLmtleWJvYXJkQWN0aW9uOyB9OwpMeXRlQm94LnByb3RvdHlwZS5kaXNhYmxlS2V5Ym9hcmROYXYgPSBmdW5jdGlvbigpIHsgZG9jdW1lbnQub25rZXlkb3duID0gJyc7IH07Ckx5dGVCb3gucHJvdG90eXBlLmtleWJvYXJkQWN0aW9uID0gZnVuY3Rpb24oZSkgewogICAgdmFyIGtleWNvZGUgPSBrZXkgPSBlc2NhcGUgPSBudWxsOwogICAga2V5Y29kZSA9IChlID09IG51bGwpID8gZXZlbnQua2V5Q29kZSA6IGUud2hpY2g7CiAgICBrZXkgICAgID0gU3RyaW5nLmZyb21DaGFyQ29kZShrZXljb2RlKS50b0xvd2VyQ2FzZSgpOwogICAgZXNjYXBlICA9IChlID09IG51bGwpID8gMjcgOiBlLkRPTV9WS19FU0NBUEU7CiAgICBpZiAoKGtleSA9PSAneCcpIHx8IChrZXkgPT0gJ2MnKSB8fCAoa2V5Y29kZSA9PSBlc2NhcGUpKSB7CiAgICAgICAgbXlMeXRlYm94LmVuZCgpOwogICAgfSBlbHNlIGlmICgoa2V5ID09ICdwJykgfHwgKGtleWNvZGUgPT0gMzcpKSB7CiAgICAgICAgaWYgKG15THl0ZWJveC5pc1NsaWRlc2hvdykgewogICAgICAgICAgICBpZihteUx5dGVib3guYWN0aXZlU2xpZGUgIT0gMCkgewogICAgICAgICAgICAgICAgbXlMeXRlYm94LmRpc2FibGVLZXlib2FyZE5hdigpOwogICAgICAgICAgICAgICAgbXlMeXRlYm94LmNoYW5nZUNvbnRlbnQobXlMeXRlYm94LmFjdGl2ZVNsaWRlIC0gMSk7CiAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgaWYgKG15THl0ZWJveC5pc0x5dGVmcmFtZSkgewogICAgICAgICAgICBpZihteUx5dGVib3guYWN0aXZlRnJhbWUgIT0gMCkgewogICAgICAgICAgICAgICAgbXlMeXRlYm94LmRpc2FibGVLZXlib2FyZE5hdigpOwogICAgICAgICAgICAgICAgbXlMeXRlYm94LmNoYW5nZUNvbnRlbnQobXlMeXRlYm94LmFjdGl2ZUZyYW1lIC0gMSk7CiAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBpZihteUx5dGVib3guYWN0aXZlSW1hZ2UgIT0gMCkgewogICAgICAgICAgICAgICAgbXlMeXRlYm94LmRpc2FibGVLZXlib2FyZE5hdigpOwogICAgICAgICAgICAgICAgbXlMeXRlYm94LmNoYW5nZUNvbnRlbnQobXlMeXRlYm94LmFjdGl2ZUltYWdlIC0gMSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9IGVsc2UgaWYgKChrZXkgPT0gJ24nKSB8fCAoa2V5Y29kZSA9PSAzOSkpIHsKICAgICAgICBpZiAobXlMeXRlYm94LmlzU2xpZGVzaG93KSB7CiAgICAgICAgICAgIGlmKG15THl0ZWJveC5hY3RpdmVTbGlkZSAhPSAobXlMeXRlYm94LnNsaWRlQXJyYXkubGVuZ3RoIC0gMSkpIHsKICAgICAgICAgICAgICAgIG15THl0ZWJveC5kaXNhYmxlS2V5Ym9hcmROYXYoKTsKICAgICAgICAgICAgICAgIG15THl0ZWJveC5jaGFuZ2VDb250ZW50KG15THl0ZWJveC5hY3RpdmVTbGlkZSArIDEpOwogICAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIGlmIChteUx5dGVib3guaXNMeXRlZnJhbWUpIHsKICAgICAgICAgICAgaWYobXlMeXRlYm94LmFjdGl2ZUZyYW1lICE9IChteUx5dGVib3guZnJhbWVBcnJheS5sZW5ndGggLSAxKSkgewogICAgICAgICAgICAgICAgbXlMeXRlYm94LmRpc2FibGVLZXlib2FyZE5hdigpOwogICAgICAgICAgICAgICAgbXlMeXRlYm94LmNoYW5nZUNvbnRlbnQobXlMeXRlYm94LmFjdGl2ZUZyYW1lICsgMSk7CiAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBpZihteUx5dGVib3guYWN0aXZlSW1hZ2UgIT0gKG15THl0ZWJveC5pbWFnZUFycmF5Lmxlbmd0aCAtIDEpKSB7CiAgICAgICAgICAgICAgICBteUx5dGVib3guZGlzYWJsZUtleWJvYXJkTmF2KCk7CiAgICAgICAgICAgICAgICBteUx5dGVib3guY2hhbmdlQ29udGVudChteUx5dGVib3guYWN0aXZlSW1hZ2UgKyAxKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KfTsKTHl0ZUJveC5wcm90b3R5cGUucHJlbG9hZE5laWdoYm9ySW1hZ2VzID0gZnVuY3Rpb24oKSB7CiAgICBpZiAodGhpcy5pc1NsaWRlc2hvdykgewogICAgICAgIGlmICgodGhpcy5zbGlkZUFycmF5Lmxlbmd0aCAtIDEpID4gdGhpcy5hY3RpdmVTbGlkZSkgewogICAgICAgICAgICBwcmVsb2FkTmV4dEltYWdlID0gbmV3IEltYWdlKCk7CiAgICAgICAgICAgIHByZWxvYWROZXh0SW1hZ2Uuc3JjID0gdGhpcy5zbGlkZUFycmF5W3RoaXMuYWN0aXZlU2xpZGUgKyAxXVswXTsKICAgICAgICB9CiAgICAgICAgaWYodGhpcy5hY3RpdmVTbGlkZSA+IDApIHsKICAgICAgICAgICAgcHJlbG9hZFByZXZJbWFnZSA9IG5ldyBJbWFnZSgpOwogICAgICAgICAgICBwcmVsb2FkUHJldkltYWdlLnNyYyA9IHRoaXMuc2xpZGVBcnJheVt0aGlzLmFjdGl2ZVNsaWRlIC0gMV1bMF07CiAgICAgICAgfQogICAgfSBlbHNlIHsKICAgICAgICBpZiAoKHRoaXMuaW1hZ2VBcnJheS5sZW5ndGggLSAxKSA+IHRoaXMuYWN0aXZlSW1hZ2UpIHsKICAgICAgICAgICAgcHJlbG9hZE5leHRJbWFnZSA9IG5ldyBJbWFnZSgpOwogICAgICAgICAgICBwcmVsb2FkTmV4dEltYWdlLnNyYyA9IHRoaXMuaW1hZ2VBcnJheVt0aGlzLmFjdGl2ZUltYWdlICsgMV1bMF07CiAgICAgICAgfQogICAgICAgIGlmKHRoaXMuYWN0aXZlSW1hZ2UgPiAwKSB7CiAgICAgICAgICAgIHByZWxvYWRQcmV2SW1hZ2UgPSBuZXcgSW1hZ2UoKTsKICAgICAgICAgICAgcHJlbG9hZFByZXZJbWFnZS5zcmMgPSB0aGlzLmltYWdlQXJyYXlbdGhpcy5hY3RpdmVJbWFnZSAtIDFdWzBdOwogICAgICAgIH0KICAgIH0KfTsKTHl0ZUJveC5wcm90b3R5cGUudG9nZ2xlUGxheVBhdXNlID0gZnVuY3Rpb24oaGlkZUlELCBzaG93SUQpIHsKICAgIGlmICh0aGlzLmlzU2xpZGVzaG93ICYmIGhpZGVJRCA9PSAibGJQYXVzZSIpIHsKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuc2xpZGVzaG93SURDb3VudDsgaSsrKSB7IHdpbmRvdy5jbGVhclRpbWVvdXQodGhpcy5zbGlkZXNob3dJREFycmF5W2ldKTsgfQogICAgfQogICAgdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoaGlkZUlEKS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwogICAgdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoc2hvd0lEKS5zdHlsZS5kaXNwbGF5ID0gJyc7CiAgICBpZiAoaGlkZUlEID09ICJsYlBsYXkiKSB7CiAgICAgICAgdGhpcy5pc1BhdXNlZCA9IGZhbHNlOwogICAgICAgIGlmICh0aGlzLmFjdGl2ZVNsaWRlID09ICh0aGlzLnNsaWRlQXJyYXkubGVuZ3RoIC0gMSkpIHsKICAgICAgICAgICAgdGhpcy5lbmQoKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICB0aGlzLmNoYW5nZUNvbnRlbnQodGhpcy5hY3RpdmVTbGlkZSArIDEpOwogICAgICAgIH0KICAgIH0gZWxzZSB7CiAgICAgICAgdGhpcy5pc1BhdXNlZCA9IHRydWU7CiAgICB9Cn07Ckx5dGVCb3gucHJvdG90eXBlLmVuZCA9IGZ1bmN0aW9uKGNhbGxlcikgewogICAgdmFyIGNsb3NlQ2xpY2sgPSAoY2FsbGVyID09ICdzbGlkZXNob3cnID8gZmFsc2UgOiB0cnVlKTsKICAgIGlmICh0aGlzLmlzU2xpZGVzaG93ICYmIHRoaXMuaXNQYXVzZWQgJiYgIWNsb3NlQ2xpY2spIHsgcmV0dXJuOyB9CiAgICB0aGlzLmRpc2FibGVLZXlib2FyZE5hdigpOwogICAgdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoJ2xiTWFpbicpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAgICB0aGlzLmZhZGUoJ2xiT3ZlcmxheScsICh0aGlzLmRvQW5pbWF0aW9ucyA/IHRoaXMubWF4T3BhY2l0eSA6IDApKTsKICAgIHRoaXMudG9nZ2xlU2VsZWN0cygndmlzaWJsZScpOwogICAgaWYgKHRoaXMuaGlkZUZsYXNoKSB7IHRoaXMudG9nZ2xlRmxhc2goJ3Zpc2libGUnKTsgfQogICAgaWYgKHRoaXMuaXNTbGlkZXNob3cpIHsKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuc2xpZGVzaG93SURDb3VudDsgaSsrKSB7IHdpbmRvdy5jbGVhclRpbWVvdXQodGhpcy5zbGlkZXNob3dJREFycmF5W2ldKTsgfQogICAgfQogICAgaWYgKHRoaXMuaXNMeXRlZnJhbWUpIHsKICAgICAgICAgdGhpcy5pbml0aWFsaXplKCk7CiAgICB9Cn07Ckx5dGVCb3gucHJvdG90eXBlLmNoZWNrRnJhbWUgPSBmdW5jdGlvbigpIHsKICAgIGlmICh3aW5kb3cucGFyZW50LmZyYW1lc1t3aW5kb3cubmFtZV0gJiYgKHBhcmVudC5kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnZnJhbWVzZXQnKS5sZW5ndGggPD0gMCkpIHsKICAgICAgICB0aGlzLmlzRnJhbWUgPSB0cnVlOwogICAgICAgIHRoaXMubHl0ZWJveCA9ICJ3aW5kb3cucGFyZW50LiIgKyB3aW5kb3cubmFtZSArICIubXlMeXRlYm94IjsKICAgICAgICB0aGlzLmRvYyA9IHBhcmVudC5kb2N1bWVudDsKICAgIH0gZWxzZSB7CiAgICAgICAgdGhpcy5pc0ZyYW1lID0gZmFsc2U7CiAgICAgICAgdGhpcy5seXRlYm94ID0gIm15THl0ZWJveCI7CiAgICAgICAgdGhpcy5kb2MgPSBkb2N1bWVudDsKICAgIH0KfTsKTHl0ZUJveC5wcm90b3R5cGUuZ2V0UGl4ZWxSYXRlID0gZnVuY3Rpb24oY3VyLCBpbWcpIHsKICAgIHZhciBkaWZmID0gKGltZyA+IGN1cikgPyBpbWcgLSBjdXIgOiBjdXIgLSBpbWc7CiAgICBpZiAoZGlmZiA+PSAwICYmIGRpZmYgPD0gMTAwKSB7IHJldHVybiAxMDsgfQogICAgaWYgKGRpZmYgPiAxMDAgJiYgZGlmZiA8PSAyMDApIHsgcmV0dXJuIDE1OyB9CiAgICBpZiAoZGlmZiA+IDIwMCAmJiBkaWZmIDw9IDMwMCkgeyByZXR1cm4gMjA7IH0KICAgIGlmIChkaWZmID4gMzAwICYmIGRpZmYgPD0gNDAwKSB7IHJldHVybiAyNTsgfQogICAgaWYgKGRpZmYgPiA0MDAgJiYgZGlmZiA8PSA1MDApIHsgcmV0dXJuIDMwOyB9CiAgICBpZiAoZGlmZiA+IDUwMCAmJiBkaWZmIDw9IDYwMCkgeyByZXR1cm4gMzU7IH0KICAgIGlmIChkaWZmID4gNjAwICYmIGRpZmYgPD0gNzAwKSB7IHJldHVybiA0MDsgfQogICAgaWYgKGRpZmYgPiA3MDApIHsgcmV0dXJuIDQ1OyB9Cn07Ckx5dGVCb3gucHJvdG90eXBlLmFwcGVhciA9IGZ1bmN0aW9uKGlkLCBvcGFjaXR5KSB7CiAgICB2YXIgb2JqZWN0ID0gdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoaWQpLnN0eWxlOwogICAgb2JqZWN0Lm9wYWNpdHkgPSAob3BhY2l0eSAvIDEwMCk7CiAgICBvYmplY3QuTW96T3BhY2l0eSA9IChvcGFjaXR5IC8gMTAwKTsKICAgIG9iamVjdC5LaHRtbE9wYWNpdHkgPSAob3BhY2l0eSAvIDEwMCk7CiAgICBvYmplY3QuZmlsdGVyID0gImFscGhhKG9wYWNpdHk9IiArIChvcGFjaXR5ICsgMTApICsgIikiOwogICAgaWYgKG9wYWNpdHkgPT0gMTAwICYmIChpZCA9PSAnbGJJbWFnZScgfHwgaWQgPT0gJ2xiSWZyYW1lJykpIHsKICAgICAgICB0cnkgeyBvYmplY3QucmVtb3ZlQXR0cmlidXRlKCJmaWx0ZXIiKTsgfSBjYXRjaChlKSB7fSAgIC8qIEZpeCBhZGRlZCBmb3IgSUUgQWxwaGEgT3BhY2l0eSBGaWx0ZXIgYnVnLiAqLwogICAgICAgIHRoaXMudXBkYXRlRGV0YWlscygpOwogICAgfSBlbHNlIGlmIChvcGFjaXR5ID49IHRoaXMubWF4T3BhY2l0eSAmJiBpZCA9PSAnbGJPdmVybGF5JykgewogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5vdmVybGF5VGltZXJDb3VudDsgaSsrKSB7IHdpbmRvdy5jbGVhclRpbWVvdXQodGhpcy5vdmVybGF5VGltZXJBcnJheVtpXSk7IH0KICAgICAgICByZXR1cm47CiAgICB9IGVsc2UgaWYgKG9wYWNpdHkgPj0gMTAwICYmIGlkID09ICdsYkRldGFpbHNDb250YWluZXInKSB7CiAgICAgICAgdHJ5IHsgb2JqZWN0LnJlbW92ZUF0dHJpYnV0ZSgiZmlsdGVyIik7IH0gY2F0Y2goZSkge30gICAvKiBGaXggYWRkZWQgZm9yIElFIEFscGhhIE9wYWNpdHkgRmlsdGVyIGJ1Zy4gKi8KICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuaW1hZ2VUaW1lckNvdW50OyBpKyspIHsgd2luZG93LmNsZWFyVGltZW91dCh0aGlzLmltYWdlVGltZXJBcnJheVtpXSk7IH0KICAgICAgICB0aGlzLmRvYy5nZXRFbGVtZW50QnlJZCgnbGJPdmVybGF5Jykuc3R5bGUuaGVpZ2h0ID0gdGhpcy5nZXRQYWdlU2l6ZSgpWzFdICsgInB4IjsKICAgIH0gZWxzZSB7CiAgICAgICAgaWYgKGlkID09ICdsYk92ZXJsYXknKSB7CiAgICAgICAgICAgIHRoaXMub3ZlcmxheVRpbWVyQXJyYXlbdGhpcy5vdmVybGF5VGltZXJDb3VudCsrXSA9IHNldFRpbWVvdXQoIm15THl0ZWJveC5hcHBlYXIoJyIgKyBpZCArICInLCAiICsgKG9wYWNpdHkrMjApICsgIikiLCAxKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICB0aGlzLmltYWdlVGltZXJBcnJheVt0aGlzLmltYWdlVGltZXJDb3VudCsrXSA9IHNldFRpbWVvdXQoIm15THl0ZWJveC5hcHBlYXIoJyIgKyBpZCArICInLCAiICsgKG9wYWNpdHkrMTApICsgIikiLCAxKTsKICAgICAgICB9CiAgICB9Cn07Ckx5dGVCb3gucHJvdG90eXBlLmZhZGUgPSBmdW5jdGlvbihpZCwgb3BhY2l0eSkgewogICAgdmFyIG9iamVjdCA9IHRoaXMuZG9jLmdldEVsZW1lbnRCeUlkKGlkKS5zdHlsZTsKICAgIG9iamVjdC5vcGFjaXR5ID0gKG9wYWNpdHkgLyAxMDApOwogICAgb2JqZWN0Lk1vek9wYWNpdHkgPSAob3BhY2l0eSAvIDEwMCk7CiAgICBvYmplY3QuS2h0bWxPcGFjaXR5ID0gKG9wYWNpdHkgLyAxMDApOwogICAgb2JqZWN0LmZpbHRlciA9ICJhbHBoYShvcGFjaXR5PSIgKyBvcGFjaXR5ICsgIikiOwogICAgaWYgKG9wYWNpdHkgPD0gMCkgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIG9iamVjdC5kaXNwbGF5ID0gJ25vbmUnOwogICAgICAgIH0gY2F0Y2goZXJyKSB7IH0KICAgIH0gZWxzZSBpZiAoaWQgPT0gJ2xiT3ZlcmxheScpIHsKICAgICAgICB0aGlzLm92ZXJsYXlUaW1lckFycmF5W3RoaXMub3ZlcmxheVRpbWVyQ291bnQrK10gPSBzZXRUaW1lb3V0KCJteUx5dGVib3guZmFkZSgnIiArIGlkICsgIicsICIgKyAob3BhY2l0eS0yMCkgKyAiKSIsIDEpOwogICAgfSBlbHNlIHsKICAgICAgICB0aGlzLnRpbWVySURBcnJheVt0aGlzLnRpbWVySURDb3VudCsrXSA9IHNldFRpbWVvdXQoIm15THl0ZWJveC5mYWRlKCciICsgaWQgKyAiJywgIiArIChvcGFjaXR5LTEwKSArICIpIiwgMSk7CiAgICB9Cn07Ckx5dGVCb3gucHJvdG90eXBlLnJlc2l6ZVcgPSBmdW5jdGlvbihpZCwgY3VyVywgbWF4VywgcGl4ZWxyYXRlLCBzcGVlZCkgewogICAgaWYgKCF0aGlzLmhEb25lKSB7CiAgICAgICAgdGhpcy5yZXNpemVXVGltZXJBcnJheVt0aGlzLnJlc2l6ZVdUaW1lckNvdW50KytdID0gc2V0VGltZW91dCgibXlMeXRlYm94LnJlc2l6ZVcoJyIgKyBpZCArICInLCAiICsgY3VyVyArICIsICIgKyBtYXhXICsgIiwgIiArIHBpeGVscmF0ZSArICIpIiwgMTAwKTsKICAgICAgICByZXR1cm47CiAgICB9CiAgICB2YXIgb2JqZWN0ID0gdGhpcy5kb2MuZ2V0RWxlbWVudEJ5SWQoaWQpOwogICAgdmFyIHRpbWVyID0gc3BlZWQgPyBzcGVlZCA6ICh0aGlzLnJlc2l6ZUR1cmF0aW9uLzIpOwogICAgdmFyIG5ld1cgPSAodGhpcy5kb0FuaW1hdGlvbnMgPyBjdXJXIDogbWF4Vyk7CiAgICBvYmplY3Quc3R5bGUud2lkdGggPSAobmV3VykgKyAicHgiOwogICAgaWYgKG5ld1cgPCBtYXhXKSB7CiAgICAgICAgbmV3VyArPSAobmV3VyArIHBpeGVscmF0ZSA+PSBtYXhXKSA/IChtYXhXIC0gbmV3VykgOiBwaXhlbHJhdGU7CiAgICB9IGVsc2UgaWYgKG5ld1cgPiBtYXhXKSB7CiAgICAgICAgbmV3VyAtPSAobmV3VyAtIHBpeGVscmF0ZSA8PSBtYXhXKSA/IChuZXdXIC0gbWF4VykgOiBwaXhlbHJhdGU7CiAgICB9CiAgICB0aGlzLnJlc2l6ZVdUaW1lckFycmF5W3RoaXMucmVzaXplV1RpbWVyQ291bnQrK10gPSBzZXRUaW1lb3V0KCJteUx5dGVib3gucmVzaXplVygnIiArIGlkICsgIicsICIgKyBuZXdXICsgIiwgIiArIG1heFcgKyAiLCAiICsgcGl4ZWxyYXRlICsgIiwgIiArICh0aW1lciswLjAyKSArICIpIiwgdGltZXIrMC4wMik7CiAgICBpZiAocGFyc2VJbnQob2JqZWN0LnN0eWxlLndpZHRoKSA9PSBtYXhXKSB7CiAgICAgICAgdGhpcy53RG9uZSA9IHRydWU7CiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLnJlc2l6ZVdUaW1lckNvdW50OyBpKyspIHsgd2luZG93LmNsZWFyVGltZW91dCh0aGlzLnJlc2l6ZVdUaW1lckFycmF5W2ldKTsgfQogICAgfQp9OwpMeXRlQm94LnByb3RvdHlwZS5yZXNpemVIID0gZnVuY3Rpb24oaWQsIGN1ckgsIG1heEgsIHBpeGVscmF0ZSwgc3BlZWQpIHsKICAgIHZhciB0aW1lciA9IHNwZWVkID8gc3BlZWQgOiAodGhpcy5yZXNpemVEdXJhdGlvbi8yKTsKICAgIHZhciBvYmplY3QgPSB0aGlzLmRvYy5nZXRFbGVtZW50QnlJZChpZCk7CiAgICB2YXIgbmV3SCA9ICh0aGlzLmRvQW5pbWF0aW9ucyA/IGN1ckggOiBtYXhIKTsKICAgIG9iamVjdC5zdHlsZS5oZWlnaHQgPSAobmV3SCkgKyAicHgiOwogICAgaWYgKG5ld0ggPCBtYXhIKSB7CiAgICAgICAgbmV3SCArPSAobmV3SCArIHBpeGVscmF0ZSA+PSBtYXhIKSA/IChtYXhIIC0gbmV3SCkgOiBwaXhlbHJhdGU7CiAgICB9IGVsc2UgaWYgKG5ld0ggPiBtYXhIKSB7CiAgICAgICAgbmV3SCAtPSAobmV3SCAtIHBpeGVscmF0ZSA8PSBtYXhIKSA/IChuZXdIIC0gbWF4SCkgOiBwaXhlbHJhdGU7CiAgICB9CiAgICB0aGlzLnJlc2l6ZUhUaW1lckFycmF5W3RoaXMucmVzaXplSFRpbWVyQ291bnQrK10gPSBzZXRUaW1lb3V0KCJteUx5dGVib3gucmVzaXplSCgnIiArIGlkICsgIicsICIgKyBuZXdIICsgIiwgIiArIG1heEggKyAiLCAiICsgcGl4ZWxyYXRlICsgIiwgIiArICh0aW1lcisuMDIpICsgIikiLCB0aW1lcisuMDIpOwogICAgaWYgKHBhcnNlSW50KG9iamVjdC5zdHlsZS5oZWlnaHQpID09IG1heEgpIHsKICAgICAgICB0aGlzLmhEb25lID0gdHJ1ZTsKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMucmVzaXplSFRpbWVyQ291bnQ7IGkrKykgeyB3aW5kb3cuY2xlYXJUaW1lb3V0KHRoaXMucmVzaXplSFRpbWVyQXJyYXlbaV0pOyB9CiAgICB9Cn07Ckx5dGVCb3gucHJvdG90eXBlLmdldFBhZ2VTY3JvbGwgPSBmdW5jdGlvbigpIHsKICAgIGlmIChzZWxmLnBhZ2VZT2Zmc2V0KSB7CiAgICAgICAgcmV0dXJuIHRoaXMuaXNGcmFtZSA/IHBhcmVudC5wYWdlWU9mZnNldCA6IHNlbGYucGFnZVlPZmZzZXQ7CiAgICB9IGVsc2UgaWYgKHRoaXMuZG9jLmRvY3VtZW50RWxlbWVudCAmJiB0aGlzLmRvYy5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wKXsKICAgICAgICByZXR1cm4gdGhpcy5kb2MuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcDsKICAgIH0gZWxzZSBpZiAoZG9jdW1lbnQuYm9keSkgewogICAgICAgIHJldHVybiB0aGlzLmRvYy5ib2R5LnNjcm9sbFRvcDsKICAgIH0KfTsKTHl0ZUJveC5wcm90b3R5cGUuZ2V0UGFnZVNpemUgPSBmdW5jdGlvbigpIHsKICAgIHZhciB4U2Nyb2xsLCB5U2Nyb2xsLCB3aW5kb3dXaWR0aCwgd2luZG93SGVpZ2h0OwogICAgaWYgKHdpbmRvdy5pbm5lckhlaWdodCAmJiB3aW5kb3cuc2Nyb2xsTWF4WSkgewogICAgICAgIHhTY3JvbGwgPSB0aGlzLmRvYy5zY3JvbGxXaWR0aDsKICAgICAgICB5U2Nyb2xsID0gKHRoaXMuaXNGcmFtZSA/IHBhcmVudC5pbm5lckhlaWdodCA6IHNlbGYuaW5uZXJIZWlnaHQpICsgKHRoaXMuaXNGcmFtZSA/IHBhcmVudC5zY3JvbGxNYXhZIDogc2VsZi5zY3JvbGxNYXhZKTsKICAgIH0gZWxzZSBpZiAodGhpcy5kb2MuYm9keS5zY3JvbGxIZWlnaHQgPiB0aGlzLmRvYy5ib2R5Lm9mZnNldEhlaWdodCl7CiAgICAgICAgeFNjcm9sbCA9IHRoaXMuZG9jLmJvZHkuc2Nyb2xsV2lkdGg7CiAgICAgICAgeVNjcm9sbCA9IHRoaXMuZG9jLmJvZHkuc2Nyb2xsSGVpZ2h0OwogICAgfSBlbHNlIHsKICAgICAgICB4U2Nyb2xsID0gdGhpcy5kb2MuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImh0bWwiKS5pdGVtKDApLm9mZnNldFdpZHRoOwogICAgICAgIHlTY3JvbGwgPSB0aGlzLmRvYy5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaHRtbCIpLml0ZW0oMCkub2Zmc2V0SGVpZ2h0OwogICAgICAgIHhTY3JvbGwgPSAoeFNjcm9sbCA8IHRoaXMuZG9jLmJvZHkub2Zmc2V0V2lkdGgpID8gdGhpcy5kb2MuYm9keS5vZmZzZXRXaWR0aCA6IHhTY3JvbGw7CiAgICAgICAgeVNjcm9sbCA9ICh5U2Nyb2xsIDwgdGhpcy5kb2MuYm9keS5vZmZzZXRIZWlnaHQpID8gdGhpcy5kb2MuYm9keS5vZmZzZXRIZWlnaHQgOiB5U2Nyb2xsOwogICAgfQogICAgaWYgKHNlbGYuaW5uZXJIZWlnaHQpIHsKICAgICAgICB3aW5kb3dXaWR0aCA9ICh0aGlzLmlzRnJhbWUpID8gcGFyZW50LmlubmVyV2lkdGggOiBzZWxmLmlubmVyV2lkdGg7CiAgICAgICAgd2luZG93SGVpZ2h0ID0gKHRoaXMuaXNGcmFtZSkgPyBwYXJlbnQuaW5uZXJIZWlnaHQgOiBzZWxmLmlubmVySGVpZ2h0OwogICAgfSBlbHNlIGlmIChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQgJiYgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCkgewogICAgICAgIHdpbmRvd1dpZHRoID0gdGhpcy5kb2MuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoOwogICAgICAgIHdpbmRvd0hlaWdodCA9IHRoaXMuZG9jLmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQ7CiAgICB9IGVsc2UgaWYgKGRvY3VtZW50LmJvZHkpIHsKICAgICAgICB3aW5kb3dXaWR0aCA9IHRoaXMuZG9jLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJodG1sIikuaXRlbSgwKS5jbGllbnRXaWR0aDsKICAgICAgICB3aW5kb3dIZWlnaHQgPSB0aGlzLmRvYy5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaHRtbCIpLml0ZW0oMCkuY2xpZW50SGVpZ2h0OwogICAgICAgIHdpbmRvd1dpZHRoID0gKHdpbmRvd1dpZHRoID09IDApID8gdGhpcy5kb2MuYm9keS5jbGllbnRXaWR0aCA6IHdpbmRvd1dpZHRoOwogICAgICAgIHdpbmRvd0hlaWdodCA9ICh3aW5kb3dIZWlnaHQgPT0gMCkgPyB0aGlzLmRvYy5ib2R5LmNsaWVudEhlaWdodCA6IHdpbmRvd0hlaWdodDsKICAgIH0KICAgIHZhciBwYWdlSGVpZ2h0ID0gKHlTY3JvbGwgPCB3aW5kb3dIZWlnaHQpID8gd2luZG93SGVpZ2h0IDogeVNjcm9sbDsKICAgIHZhciBwYWdlV2lkdGggPSAoeFNjcm9sbCA8IHdpbmRvd1dpZHRoKSA/IHdpbmRvd1dpZHRoIDogeFNjcm9sbDsKICAgIHJldHVybiBuZXcgQXJyYXkocGFnZVdpZHRoLCBwYWdlSGVpZ2h0LCB3aW5kb3dXaWR0aCwgd2luZG93SGVpZ2h0KTsKfTsKTHl0ZUJveC5wcm90b3R5cGUudG9nZ2xlRmxhc2ggPSBmdW5jdGlvbihzdGF0ZSkgewogICAgdmFyIG9iamVjdHMgPSB0aGlzLmRvYy5nZXRFbGVtZW50c0J5VGFnTmFtZSgib2JqZWN0Iik7CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IG9iamVjdHMubGVuZ3RoOyBpKyspIHsKICAgICAgICBvYmplY3RzW2ldLnN0eWxlLnZpc2liaWxpdHkgPSAoc3RhdGUgPT0gImhpZGUiKSA/ICdoaWRkZW4nIDogJ3Zpc2libGUnOwogICAgfQogICAgdmFyIGVtYmVkcyA9IHRoaXMuZG9jLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJlbWJlZCIpOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbWJlZHMubGVuZ3RoOyBpKyspIHsKICAgICAgICBlbWJlZHNbaV0uc3R5bGUudmlzaWJpbGl0eSA9IChzdGF0ZSA9PSAiaGlkZSIpID8gJ2hpZGRlbicgOiAndmlzaWJsZSc7CiAgICB9CiAgICBpZiAodGhpcy5pc0ZyYW1lKSB7CiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwYXJlbnQuZnJhbWVzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICBvYmplY3RzID0gcGFyZW50LmZyYW1lc1tpXS53aW5kb3cuZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIm9iamVjdCIpOwogICAgICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBvYmplY3RzLmxlbmd0aDsgaisrKSB7CiAgICAgICAgICAgICAgICAgICAgb2JqZWN0c1tqXS5zdHlsZS52aXNpYmlsaXR5ID0gKHN0YXRlID09ICJoaWRlIikgPyAnaGlkZGVuJyA6ICd2aXNpYmxlJzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBjYXRjaChlKSB7IH0KICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgIGVtYmVkcyA9IHBhcmVudC5mcmFtZXNbaV0ud2luZG93LmRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJlbWJlZCIpOwogICAgICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBlbWJlZHMubGVuZ3RoOyBqKyspIHsKICAgICAgICAgICAgICAgICAgICBlbWJlZHNbal0uc3R5bGUudmlzaWJpbGl0eSA9IChzdGF0ZSA9PSAiaGlkZSIpID8gJ2hpZGRlbicgOiAndmlzaWJsZSc7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gY2F0Y2goZSkgeyB9CiAgICAgICAgfQogICAgfQp9OwpMeXRlQm94LnByb3RvdHlwZS50b2dnbGVTZWxlY3RzID0gZnVuY3Rpb24oc3RhdGUpIHsKICAgIHZhciBzZWxlY3RzID0gdGhpcy5kb2MuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNlbGVjdCIpOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzZWxlY3RzLmxlbmd0aDsgaSsrICkgewogICAgICAgIHNlbGVjdHNbaV0uc3R5bGUudmlzaWJpbGl0eSA9IChzdGF0ZSA9PSAiaGlkZSIpID8gJ2hpZGRlbicgOiAndmlzaWJsZSc7CiAgICB9CiAgICBpZiAodGhpcy5pc0ZyYW1lKSB7CiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwYXJlbnQuZnJhbWVzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICBzZWxlY3RzID0gcGFyZW50LmZyYW1lc1tpXS53aW5kb3cuZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNlbGVjdCIpOwogICAgICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBzZWxlY3RzLmxlbmd0aDsgaisrKSB7CiAgICAgICAgICAgICAgICAgICAgc2VsZWN0c1tqXS5zdHlsZS52aXNpYmlsaXR5ID0gKHN0YXRlID09ICJoaWRlIikgPyAnaGlkZGVuJyA6ICd2aXNpYmxlJzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBjYXRjaChlKSB7IH0KICAgICAgICB9CiAgICB9Cn07Ckx5dGVCb3gucHJvdG90eXBlLnBhdXNlID0gZnVuY3Rpb24obnVtYmVyTWlsbGlzKSB7CiAgICB2YXIgbm93ID0gbmV3IERhdGUoKTsKICAgIHZhciBleGl0VGltZSA9IG5vdy5nZXRUaW1lKCkgKyBudW1iZXJNaWxsaXM7CiAgICB3aGlsZSAodHJ1ZSkgewogICAgICAgIG5vdyA9IG5ldyBEYXRlKCk7CiAgICAgICAgaWYgKG5vdy5nZXRUaW1lKCkgPiBleGl0VGltZSkgeyByZXR1cm47IH0KICAgIH0KfTsKaWYgKHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKSB7CiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsaW5pdEx5dGVib3gsZmFsc2UpOwp9IGVsc2UgaWYgKHdpbmRvdy5hdHRhY2hFdmVudCkgewogICAgd2luZG93LmF0dGFjaEV2ZW50KCJvbmxvYWQiLGluaXRMeXRlYm94KTsKfSBlbHNlIHsKICAgIHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpIHtpbml0THl0ZWJveCgpO30KfQpmdW5jdGlvbiBpbml0THl0ZWJveCgpIHsgbXlMeXRlYm94ID0gbmV3IEx5dGVCb3goKTsgfQpFT1Q7CgogICAgICAgIHJldHVybiB1dGY4X2VuY29kZSgkanNjb250ZW50KTsKICAgIH0KCiAgICAvKioKICAgICAqIERvQWN0aW9uKCkKICAgICAqCiAgICAgKiBAdXNlcyBQcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgpCiAgICAgKiBAdXNlcyAkcGFyYW1zCiAgICAgKgogICAgICogQHJldHVybiBzdHJpbmcKICAgICAqIEBhY2Nlc3MgcHVibGljCiAgICAgKi8KICAgIGZ1bmN0aW9uIERvQWN0aW9uKCkKICAgIHsKICAgICAgICBpZiAoZW1wdHkoJHRoaXMtPnBhcmFtc1snY29uZmlnJ10pKSB7CiAgICAgICAgICAgIGV4aXQ7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJHNjcmlwdHBhcmFtcyA9IGV4cGxvZGUoJywnLCBiYXNlNjRfZGVjb2RlKCR0aGlzLT5wYXJhbXNbJ2NvbmZpZyddKSk7CgogICAgICAgICAgICAvKgogICAgICAgICAgICAgKiBhZGp1c3QgYm9vbGVhbiB2YWx1ZXMKICAgICAgICAgICAgICovCiAgICAgICAgICAgIC8qIEx5dGVib3ggR2xvYmFsIENvbmZpZ3VyYXRpb24gKi8KICAgICAgICAgICAgJHNjcmlwdHBhcmFtc1sxXSA9ICEkc2NyaXB0cGFyYW1zWzFdID8gJ2ZhbHNlJyA6ICd0cnVlJzsKICAgICAgICAgICAgJHNjcmlwdHBhcmFtc1syXSA9ICEkc2NyaXB0cGFyYW1zWzJdID8gJ2ZhbHNlJyA6ICd0cnVlJzsKICAgICAgICAgICAgJHNjcmlwdHBhcmFtc1s2XSA9ICEkc2NyaXB0cGFyYW1zWzZdID8gJ2ZhbHNlJyA6ICd0cnVlJzsKICAgICAgICAgICAgJHNjcmlwdHBhcmFtc1s3XSA9ICEkc2NyaXB0cGFyYW1zWzddID8gJ2ZhbHNlJyA6ICd0cnVlJzsKCiAgICAgICAgICAgIC8qIEx5dGVib3ggU2xpZGVzaG93IE9wdGlvbnMgKi8KICAgICAgICAgICAgJHNjcmlwdHBhcmFtc1sxMF0gPSAhJHNjcmlwdHBhcmFtc1sxMF0gPyAnZmFsc2UnIDogJ3RydWUnOwogICAgICAgICAgICAkc2NyaXB0cGFyYW1zWzExXSA9ICEkc2NyaXB0cGFyYW1zWzExXSA/ICdmYWxzZScgOiAndHJ1ZSc7CiAgICAgICAgICAgICRzY3JpcHRwYXJhbXNbMTJdID0gISRzY3JpcHRwYXJhbXNbMTJdID8gJ2ZhbHNlJyA6ICd0cnVlJzsKICAgICAgICAgICAgJHNjcmlwdHBhcmFtc1sxM10gPSAhJHNjcmlwdHBhcmFtc1sxM10gPyAnZmFsc2UnIDogJ3RydWUnOwogICAgICAgICAgICAkc2NyaXB0cGFyYW1zWzE0XSA9ICEkc2NyaXB0cGFyYW1zWzE0XSA/ICdmYWxzZScgOiAndHJ1ZSc7CiAgICAgICAgICAgICRzY3JpcHRwYXJhbXNbMTVdID0gISRzY3JpcHRwYXJhbXNbMTVdID8gJ2ZhbHNlJyA6ICd0cnVlJzsKICAgICAgICAgICAgJHNjcmlwdHBhcmFtc1sxNl0gPSAhJHNjcmlwdHBhcmFtc1sxNl0gPyAnZmFsc2UnIDogJ3RydWUnOwogICAgICAgIH0KCiAgICAgICAgLyoKICAgICAgICAgKiBvdXRwdXQgdGhlIHN0eWxlc2hlZXQKICAgICAgICAgKi8KICAgICAgICB3aGlsZSAoQG9iX2VuZF9jbGVhbigpKTsKCiAgICAgICAgJGdtZGF0ZSA9IGdtZGF0ZSgnRCwgZCBNIFkgSDppOnMnKS4nIEdNVCc7CiAgICAgICAgaGVhZGVyKCJFeHBpcmVzOiB7JGdtZGF0ZX0iKTsKICAgICAgICBoZWFkZXIoIkRhdGU6IHskZ21kYXRlfSIpOwogICAgICAgIGhlYWRlcigiTGFzdC1Nb2RpZmllZDogeyRnbWRhdGV9Iik7CiAgICAgICAgaGVhZGVyKCdDYWNoZS1Db250cm9sOiBuby1jYWNoZSwgbXVzdC1yZXZhbGlkYXRlJyk7CiAgICAgICAgaGVhZGVyKCdQcmFnbWE6IG5vLWNhY2hlJyk7CiAgICAgICAgaGVhZGVyKCdDb250ZW50LVR5cGU6IHRleHQvamF2YXNjcmlwdDsgY2hhcnNldD11dGYtOCcpOwogICAgICAgIGhlYWRlcignQ29udGVudC1EaXNwb3NpdGlvbjogaW5saW5lOyBmaWxlbmFtZT0ibHl0ZWJveC5qcyInKTsKCiAgICAgICAgdnByaW50ZigkdGhpcy0+R2V0SmF2YXNjcmlwdCgpLCAkc2NyaXB0cGFyYW1zKTsKICAgICAgICBleGl0OwogICAgfQp9CgokYWN0aW9uID0gbmV3IEx5dGVib3hfQWN0aW9uR2V0SlMoJG5hbWUsICRpZCwgJHBhcmFtcywgJHJldHVybmlkKTsKJGFjdGlvbi0+RG9BY3Rpb24oKTsKCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.getscriptlink.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qIHZpbTogc2V0IGV4cGFuZHRhYiB0YWJzdG9wPTQgc2hpZnR3aWR0aD00IHNvZnR0YWJzdG9wPTQ6ICovCgovKioKICogTHl0ZWJveCBtb2R1bGUgZm9yIENNU01TIC0gQSBzaW1wbGUgd3JhcHBlciB0byB0aGUgTHl0ZWJveCBKYXZhU2NyaXB0IGNsYXNzLgogKgogKiBQSFAgdmVyc2lvbnMgNCBhbmQgNQogKgogKiBMSUNFTlNFOgogKiBDb3B5cmlnaHQgKGMpIDIwMDgsIENhcnN0ZW4gV2llZG1hbm4KICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KICoKICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwogKiBhcmUgbWV0OgogKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CiAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KICoKICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBVVRIT1IgT1IgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCiAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCiAqIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBVVRIT1IgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQogKiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAogKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUwogKiBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKICogSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKICogTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQogKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCiAqIFNVQ0ggREFNQUdFLgogKgogKiBAY2F0ZWdvcnkgICBNb2R1bGVzCiAqIEBwYWNrYWdlICAgIEx5dGVib3gKICogQGF1dGhvciAgICAgQ2Fyc3RlbiBXaWVkbWFubiA8Y2Fyc3Rlbl9zdHRndEBnbXguZGU+CiAqIEBjb3B5cmlnaHQgIDIwMDggQ2Fyc3RlbiBXaWVkbWFubgogKiBAbGljZW5zZSAgICBodHRwOi8vd3d3LmZyZWVic2Qub3JnL2NvcHlyaWdodC9mcmVlYnNkLWxpY2Vuc2UuaHRtbCBGcmVlQlNEIExpY2Vuc2UKICogQHZlcnNpb24gICAgU1ZOOiAkSWQ6IGFjdGlvbi5nZXRzY3JpcHRsaW5rLnBocCAxNCAyMDA4LTA2LTEwIDEwOjAyOjEwWiB3aWVkbWFubiAkCiAqIEBsaW5rICAgICAgIGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvTHl0ZWJveAogKi8KCmlmICghaXNzZXQoJGdDbXMpKSB7CiAgICBleGl0Owp9CgovKioKICogR2V0U2NyaXB0TGluayBhY3Rpb24gZnJvbSB0aGUgTHl0ZWJveCBtb2R1bGUuCiAqCiAqIFVzYWdlOgogKiB7THl0ZWJveCBhY3Rpb249J2dldHNjcmlwdGxpbmsnfQogKgogKiBAY2F0ZWdvcnkgICBNb2R1bGVzCiAqIEBwYWNrYWdlICAgIEx5dGVib3gKICogQGF1dGhvciAgICAgQ2Fyc3RlbiBXaWVkbWFubiA8Y2Fyc3Rlbl9zdHRndEBnbXguZGU+CiAqIEBsaWNlbnNlICAgIGh0dHA6Ly93d3cuZnJlZWJzZC5vcmcvY29weXJpZ2h0L2ZyZWVic2QtbGljZW5zZS5odG1sICBGcmVlQlNEIExpY2Vuc2UKICogQHZlcnNpb24gICAgUmVsZWFzZTogMC4yLjFiZXRhMQogKiBAbGluayAgICAgICBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL0x5dGVib3gKICogQHNlZSAgICAgICAgTHl0ZWJveAogKi8KY2xhc3MgTHl0ZWJveF9BY3Rpb25HZXRTY3JpcHRMaW5rIGV4dGVuZHMgTHl0ZWJveAp7CiAgICAvKioKICAgICAqIGNvbnRhaW5zIHRoZSBhY3Rpb24gdG8gcGVyZm9ybQogICAgICoKICAgICAqIEB2YXIgc3RyaW5nCiAgICAgKiBAYWNjZXNzIHByb3RlY3RlZAogICAgICovCiAgICB2YXIgJG5hbWU7CgogICAgLyoqCiAgICAgKiBjb250YWlucyB0aGUgbW9kdWxlIGlkCiAgICAgKgogICAgICogQHZhciBzdHJpbmcKICAgICAqIEBhY2Nlc3MgcHJvdGVjdGVkCiAgICAgKi8KICAgIHZhciAkaWQ7CgogICAgLyoqCiAgICAgKiBjb250YWlucyB0aGUgbW9kdWxlIHBhcmFtZXRlcnMKICAgICAqCiAgICAgKiBAdmFyIGFycmF5CiAgICAgKiBAYWNjZXNzIHByb3RlY3RlZAogICAgICovCiAgICB2YXIgJHBhcmFtczsKCiAgICAvKioKICAgICAqIGNvbnRhaW5zIHRoZSBtb2R1bGUgcmV0dXJuaWQKICAgICAqCiAgICAgKiBAdmFyIHN0cmluZwogICAgICogQGFjY2VzcyBwcm90ZWN0ZWQKICAgICAqLwogICAgdmFyICRyZXR1cm5pZDsKCiAgICAvKioKICAgICAqIEx5dGVib3hfR2V0U2NyaXB0TGluaygpCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAmJG5hbWUgICAgIE5hbWUgb2YgdGhlIGFjdGlvbiB0byBwZXJmb3JtCiAgICAgKiBAcGFyYW0gc3RyaW5nICYkaWQgICAgICAgdGhlIGlkIGZvciB0aGlzIG1vZHVsZQogICAgICogQHBhcmFtIGFycmF5ICAmJHBhcmFtcyAgIHRoZSBwYXJhbWV0ZXJzIHRhcmdldGVkIGZvciB0aGlzIG1vZHVsZQogICAgICogQHBhcmFtIHN0cmluZyAmJHJldHVybmlkIHRoZSByZXR1cm5pZCBmb3IgdGhpcyBtb2R1bGUKICAgICAqCiAgICAgKiBAdXNlcyBMeXRlYm94KCkKICAgICAqIEB1c2VzICRuYW1lCiAgICAgKiBAdXNlcyAkaWQKICAgICAqIEB1c2VzICRwYXJhbXMKICAgICAqIEB1c2VzICRyZXR1cm5pZAogICAgICoKICAgICAqIEByZXR1cm4gdm9pZAogICAgICogQGFjY2VzcyBwdWJsaWMKICAgICAqLwogICAgZnVuY3Rpb24gTHl0ZWJveF9TY3JpcHRMaW5rKCYkbmFtZSwgJiRpZCwgJiRwYXJhbXMsICYkcmV0dXJuaWQpCiAgICB7CiAgICAgICAgcGFyZW50OjpMeXRlYm94KCk7CgogICAgICAgICR0aGlzLT5uYW1lICAgICA9JiAkbmFtZTsKICAgICAgICAkdGhpcy0+aWQgICAgICAgPSYgJGlkOwogICAgICAgICR0aGlzLT5wYXJhbXMgICA9JiAkcGFyYW1zOwogICAgICAgICR0aGlzLT5yZXR1cm5pZCA9JiAkcmV0dXJuaWQ7CiAgICB9CgogICAgLyoqCiAgICAgKiBEb0FjdGlvbigpCiAgICAgKgogICAgICogQHVzZXMgQ3JlYXRlRnJvbnRlbmRMaW5rKCkKICAgICAqIEB1c2VzIFByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCkKICAgICAqIEB1c2VzICRjb25maWcKICAgICAqIEB1c2VzICRzbWFydHkKICAgICAqIEB1c2VzICRpZAogICAgICogQHVzZXMgJHJldHVybmlkCiAgICAgKiBAdXNlcyAkcGFyYW1zCiAgICAgKiBAdXNlcyAkY291bnRjYWxscwogICAgICoKICAgICAqIEByZXR1cm4gc3RyaW5nCiAgICAgKiBAYWNjZXNzIHB1YmxpYwogICAgICovCiAgICBmdW5jdGlvbiBEb0FjdGlvbigpCiAgICB7CiAgICAgICAgaWYgKDAgPCAkdGhpcy0+Y291bnRjYWxscykgewogICAgICAgICAgICAkdGhpcy0+c21hcnR5LT5jbGVhcl9hc3NpZ24oJ0x5dGVib3hfbG9hZHNjcmlwdCcpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIC8qCiAgICAgICAgICAgICAqIGNyZWF0ZSBqYXZhc2NyaXB0IGNvbmZpZ3VyYXRpb24KICAgICAgICAgICAgICovCiAgICAgICAgICAgICRzY3JpcHRwYXJhbXMgPSBhcnJheSgpOwoKICAgICAgICAgICAgLyogTHl0ZWJveCBHbG9iYWwgQ29uZmlndXJhdGlvbiAqLwogICAgICAgICAgICAkc2NyaXB0cGFyYW1zWzBdID0gZW1wdHkoJHRoaXMtPnBhcmFtc1sndGhlbWUnXSkgPyAnZ3JleScgOiB0cmltKCR0aGlzLT5wYXJhbXNbJ3RoZW1lJ10pOwogICAgICAgICAgICAkc2NyaXB0cGFyYW1zWzFdID0gIWlzc2V0KCR0aGlzLT5wYXJhbXNbJ2hpZGVGbGFzaCddKSA/IDEgOiAkdGhpcy0+cGFyYW1zWydoaWRlRmxhc2gnXTsKICAgICAgICAgICAgJHNjcmlwdHBhcmFtc1syXSA9ICFpc3NldCgkdGhpcy0+cGFyYW1zWydvdXRlckJvcmRlciddKSA/IDEgOiAkdGhpcy0+cGFyYW1zWydvdXRlckJvcmRlciddOwogICAgICAgICAgICAkc2NyaXB0cGFyYW1zWzNdID0gIWlzc2V0KCR0aGlzLT5wYXJhbXNbJ3Jlc2l6ZVNwZWVkJ10pID8gOCA6ICR0aGlzLT5wYXJhbXNbJ3Jlc2l6ZVNwZWVkJ107CiAgICAgICAgICAgICRzY3JpcHRwYXJhbXNbNF0gPSAhaXNzZXQoJHRoaXMtPnBhcmFtc1snbWF4T3BhY2l0eSddKSA/IDgwIDogJHRoaXMtPnBhcmFtc1snbWF4T3BhY2l0eSddOwogICAgICAgICAgICAkc2NyaXB0cGFyYW1zWzVdID0gIWlzc2V0KCR0aGlzLT5wYXJhbXNbJ25hdlR5cGUnXSkgPyAxIDogJHRoaXMtPnBhcmFtc1snbmF2VHlwZSddOwogICAgICAgICAgICAkc2NyaXB0cGFyYW1zWzZdID0gIWlzc2V0KCR0aGlzLT5wYXJhbXNbJ2F1dG9SZXNpemUnXSkgPyAxIDogJHRoaXMtPnBhcmFtc1snYXV0b1Jlc2l6ZSddOwogICAgICAgICAgICAkc2NyaXB0cGFyYW1zWzddID0gIWlzc2V0KCR0aGlzLT5wYXJhbXNbJ2RvQW5pbWF0aW9ucyddKSA/IDEgOiAkdGhpcy0+cGFyYW1zWydkb0FuaW1hdGlvbnMnXTsKICAgICAgICAgICAgJHNjcmlwdHBhcmFtc1s4XSA9ICFpc3NldCgkdGhpcy0+cGFyYW1zWydib3JkZXJTaXplJ10pID8gMTIgOiAkdGhpcy0+cGFyYW1zWydib3JkZXJTaXplJ107CgogICAgICAgICAgICAvKiBMeXRlYm94IFNsaWRlc2hvdyBPcHRpb25zICovCiAgICAgICAgICAgICRzY3JpcHRwYXJhbXNbOV0gID0gIWlzc2V0KCR0aGlzLT5wYXJhbXNbJ3NsaWRlSW50ZXJ2YWwnXSkgPyA0MDAwIDogJHRoaXMtPnBhcmFtc1snc2xpZGVJbnRlcnZhbCddOwogICAgICAgICAgICAkc2NyaXB0cGFyYW1zWzEwXSA9ICFpc3NldCgkdGhpcy0+cGFyYW1zWydzaG93TmF2aWdhdGlvbiddKSA/IDEgOiAkdGhpcy0+cGFyYW1zWydzaG93TmF2aWdhdGlvbiddOwogICAgICAgICAgICAkc2NyaXB0cGFyYW1zWzExXSA9ICFpc3NldCgkdGhpcy0+cGFyYW1zWydzaG93Q2xvc2UnXSkgPyAxIDogJHRoaXMtPnBhcmFtc1snc2hvd0Nsb3NlJ107CiAgICAgICAgICAgICRzY3JpcHRwYXJhbXNbMTJdID0gIWlzc2V0KCR0aGlzLT5wYXJhbXNbJ3Nob3dEZXRhaWxzJ10pID8gMSA6ICR0aGlzLT5wYXJhbXNbJ3Nob3dEZXRhaWxzJ107CiAgICAgICAgICAgICRzY3JpcHRwYXJhbXNbMTNdID0gIWlzc2V0KCR0aGlzLT5wYXJhbXNbJ3Nob3dQbGF5UGF1c2UnXSkgPyAxIDogJHRoaXMtPnBhcmFtc1snc2hvd1BsYXlQYXVzZSddOwogICAgICAgICAgICAkc2NyaXB0cGFyYW1zWzE0XSA9ICFpc3NldCgkdGhpcy0+cGFyYW1zWydhdXRvRW5kJ10pID8gMSA6ICR0aGlzLT5wYXJhbXNbJ2F1dG9FbmQnXTsKICAgICAgICAgICAgJHNjcmlwdHBhcmFtc1sxNV0gPSAhaXNzZXQoJHRoaXMtPnBhcmFtc1sncGF1c2VPbk5leHRDbGljayddKSA/IDAgOiAkdGhpcy0+cGFyYW1zWydwYXVzZU9uTmV4dENsaWNrJ107CiAgICAgICAgICAgICRzY3JpcHRwYXJhbXNbMTZdID0gIWlzc2V0KCR0aGlzLT5wYXJhbXNbJ3BhdXNlT25QcmV2Q2xpY2snXSkgPyAxIDogJHRoaXMtPnBhcmFtc1sncGF1c2VPblByZXZDbGljayddOwoKICAgICAgICAgICAgJHNjcmlwdHBhcmFtcyA9IGJhc2U2NF9lbmNvZGUoaW1wbG9kZSgnLCcsICRzY3JpcHRwYXJhbXMpKTsKICAgICAgICAgICAgJHNjcmlwdHBhcmFtcyA9IGFycmF5KAogICAgICAgICAgICAgICAgJ2NvbmZpZycgPT4gJHNjcmlwdHBhcmFtcywKICAgICAgICAgICAgICAgICdzaG93dGVtcGxhdGUnID0+ICdmYWxzZScsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAvKgogICAgICAgICAgICAgKiBjcmVhdGUgamF2YXNjcmlwdCBsaW5rCiAgICAgICAgICAgICAqLwogICAgICAgICAgICAkc2NyaXB0bGluayAgID0gJHRoaXMtPkNyZWF0ZUZyb250ZW5kTGluaygkdGhpcy0+aWQsICR0aGlzLT5yZXR1cm5pZCwgJ2dldGpzJywgJycsICRzY3JpcHRwYXJhbXMsICcnLCB0cnVlLCB0cnVlLCAnJywgdHJ1ZSwgJycpOwogICAgICAgICAgICAkc2NyaXB0bGluayAgID0gbHRyaW0oc3RyX3JlcGxhY2UoJHRoaXMtPmNvbmZpZ1sncm9vdF91cmwnXSwgJycsICRzY3JpcHRsaW5rKSwgJy8nKTsKICAgICAgICAgICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdMeXRlYm94X2xvYWRzY3JpcHQnLCAiXG48c2NyaXB0IHR5cGU9XCJ0ZXh0L2phdmFzY3JpcHRcIiBzcmM9XCJ7JHNjcmlwdGxpbmt9XCI+PC9zY3JpcHQ+XG4iKTsKICAgICAgICB9CgogICAgICAgIC8qCiAgICAgICAgICogb3V0cHV0IHRoZSBoeXBlcmxpbmsKICAgICAgICAgKi8KICAgICAgICAkdGVtcGxhdGUgPSAne2lmIGlzc2V0KCRMeXRlYm94X2xvYWRzY3JpcHQpfXskTHl0ZWJveF9sb2Fkc2NyaXB0fXsvaWZ9JzsKICAgICAgICAkb3V0cHV0ICAgPSAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoJHRlbXBsYXRlKTsKCiAgICAgICAgZWNobyAkb3V0cHV0OwoKICAgICAgICAkdGhpcy0+Y291bnRjYWxscysrOwogICAgfQp9CgokYWN0aW9uID0gbmV3IEx5dGVib3hfQWN0aW9uR2V0U2NyaXB0TGluaygkbmFtZSwgJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQpOwokYWN0aW9uLT5Eb0FjdGlvbigpOwoKPz4K]]></data>
	</file>
	<file>
	  <filename>/images/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/images/blank.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==]]></data>
	</file>
	<file>
	  <filename>/images/close_blue.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/images/close_gold.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/images/close_green.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAEAAAAAUCAYAAAA9djs/AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAABUpJREFUWIXlmG1sU1UYx39nYniZsTdoIq+uJisKiWuVDBjbsruJidGYdchYigktWyAKIR0JL34xu5MvCF8aMTGEjHWJhN5qpPODGkPoFhkjAVwJojHo1kUiLwHXiSjbgMcPt7RcaUGMhGT8k/vhnv8553+e/33Oc3qqRER4iFHwoBfwf6LnZM+98zJO4FruElWqJHIgkpOPHIiIKlXiWu6ytY8LA4obioUFCBWIWqDEjJs2PnIwImqBEioRSpHihuIMd18MiCfjEk/GZeivofsxvQ0un8sKvg6hHmEJohYqicStTIjEI6IWKuGlNF+LsBBx+axMUCJWEewa6CLUG6Lzh04A3NPcGDUG3rleAPQ2ne5kN7I1f80M94Vp/qKZ4avDmTb/C35Cr4bQJmkApK6mCHwWsOmEXg2hP6NjHDRojbfmnDuX7uHvD1PRWIFMEZhBtqKdA/W7orG+kT2f7EEeF5iW5m4AZ0BdVfS09zABIHYqRl1HHY5JDoKlQbTJGrHvYqSupLJqY8BI3tiJnYqxat8q3NPdGF4DbZJG6FCIjiMdpC6niPljAHjDXrr7uwlWBDPjtImWOVy3NPzz/TinOvOLpbF43mLMHSYNmxuQIYHpaWIWyFmh7dM2eAJ46hZz0sGbO0zK5pZZRdCxxSGOLQ7pO9OXN9WqdlYJwfw7pqi1SBxbHDL0pz3tb44buDQgIiIEkaqdVRn+1v4tX7YIQSR+On4Pm0AkeigqqkwJryG8jbAux/MWwiuIKlMSPRTNjC2InYgxPDxMYH4Az0xPfrtH82dA8lKSwbODeOd60SZrNi4wPwAjEEtYGVBUWET3qW5iJ6x3W/9raY0bd/34NtSX12PuMFG/KTgHTMzx/AJq2Pry9eX1mbEFiWQCRsFb4r2zyjUsE3IgeTEJo+DUnLdxzqlOGIXUZWs7hVeGcTzioO6DOvTtOl0/dmU7X7c0qt+vRjUpVJPC6DT+jQfUl9fTtKIJLuQIfiJwEZpWNNmCB5hwU/Suro+R1wBupLnrd+f0Z3WS25M0f9xMxzcdVJ+spn1NO4HKQMYAf6Uf55NOq/8c/S4Ls2AeNmnb1wYzsQL+J2ZD2742lry4hIbFDZnmAudUJ4xAoj9xZ4U7FEHP0x5rjp9vnyPRn4AR8MzObi9tikZ4TZi+rX0wAkbEsIh0EQyUBzCWGhhLDfS5+p3XBZi9Jr7NPmSWQAm5M6AEZIbg2+zD7DWzBnhLvTAGoc6QreqnrqRIDNwS0LW0CTmgFWq4Z7rpPNxpG5O6kiLUGcLxqAN9np5pyxjn9FA1p4rBXwezBowB93A7MY+Y+Db5kOcEFgGFWBX/JPA50Jd+fwxYDDJb8G3yYR6xTJigFWq0LGuhdW8rnnUeAi8HSP2RInwgjFaokQwnLaV0Bhh7DdsC9Od19BKd0KoQ1e9Uo2/WCSwJABDrjTF4YZD2De1ohVaxa97VTPJ8Er1EJ3k+Sfe33dQuqs0aMALhr8N0neiy6Rhv2nUBen7qwbfRh8wQ8JA96o6BGlSsblzN7vBupECgMs2VgYwKvo0+ZoVnZe8C7V+1i3u1W6hBqEFq362VvtPZY7FqQ1WGu/VpCbdk+sQTcdsc7tVu2X9ov+3ICn4YlCJfkVCDOF53iH+bX4YuW0dhS7glpwY1+Y9f11qXUIGwDeEjhJWIqlASPWodddGjUVGVSmhC2IXwHsIixLXW+iU4Pu4Ca4stE95IB38sauOjx6KiKpSwDKEcKV57n+8CDwKu9S4r+OPRnHz0uGWCa/04vA3eRE9/zz3zmcvQw4px9Y/Qf8HfjJhm7C1L3swAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/images/close_grey.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAEAAAAAUCAYAAAA9djs/AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAABghJREFUWIXlmG1IU28fxz9bptMTzNQxMwRlucSHmZoVa/YcQhEIJY6MjBKFehXWEoPonS8Wvoqi3liUoj0iQURIIqixYJDa1gpxGSGuaTHa7Jyjc/eL2JHd2tP/3/9/g/cXzovz+17X9fv9vnzPdZ1zVJFIJML/MdT/6wL+JEZGRn6fjywTVFVVRcrKyiI9PT1L8j09PZGysrJIVVVVTHxZOKC6uprx8XHi4+Npbm6mt7c3hn/27BnNzc0kJCTg9Xqprq5WOFUk8uf3gPfv3wOg1+tJSEj408vHwGq14vV60ev1rFixgkAgwMzMDC0tLezcuZPe3l6ampoQBAGtVsvs7Cx+v5/s7Gw6OzsXBHj37h0Oh4M3b94oxW/fvp3c3FwAbt68yfj4OBcuXPhuMUNDQzx58gRJkpRYUVERFRUVaDQaAERRpLu7OyZPRUUFWVlZ9PX10dfXt+TaS+V1uVwcP34cjUaDXq9HpVIBMDU1RSgU4tChQ9y7dw9BEEhLSwNgfn4en8+HJEm0tbURB+B2u2lvb0ej0VBaWopGo+H169fMzMwoyWZnZ2Ma+2+43W7u3LnDmjVrOHDgAImJiQwMDPDixQu+fPnCkSNHALh9+zZerxez2azMi7pkbm4OSZIoKSkhOTn5u7miyM/Px263Y7PZCAQC6HQ6RVS/38/9+/fRarWkpqaiVn972n0+H7IsY7fbycvL+yZAR0cHKpWKEydOkJGRAcDu3btjkv1MgIcPHyprJCYmApCdnc3Vq1d5+fIl+/btIyUlBY/Hg8FgYP/+/QDs2rVLGR8Oh5EkiQ0bNmAwGH4qAMC2bdsUEVQqFenp6ajVajIzM2PGhcNhJiYmCAaD2O12ysvLAVAPDw8TCAQoLi5Wml8Ksix/V4BPnz4xOTlJbm6u0kwUJSUlSJLE0NAQAIIg4Ha7GR4eBogZH3XA/Pz8LzUfRXl5OXa7nUAgwPT0NCtXrlx0TU5OLmoeQD0+Po4kSRQUFPwwyY8c4Pf7kSQJrVa7iEtOTkaSJILBIACHDx9GrVZz+fJlLl26pOwFsOAAu91OfX099fX1PHr06JdEsFgsWK1WpqeniY+PX3QFAgGsVisWiyVmXlw4HEaWZX52GMzNzSHL8pJcJBJBlmXC4fBPufXr19PS0kJHRwf9/f28evWKuro6LBYL0VosFouyaeXk5PySAP39/XR1daHT6YiPj1/E6/V6urq6KC0tjRFBvXr1akRRZGxs7IcJZFlGFMUluczMTERRZHR0dBE3NjaGKIqsXbtWiSUlJVFXV8fFixcRRZHOzk7gm8iiKGI2m6msrKSyslI5hX6EgYEBzp07h16vx2g0LvkI5OTkoNPpsNlsDAwMLAiwceNGZFmmu7ubUCikEKFQCK/Xq9zPzs5+1wGCIJCRkcHg4GDMnFAoRHd3N3FxceTl5SmxKLKyssjJyWFiYgJAccDv7AGDg4PYbDaysrIoLCwkMTERtVrN6OgofX19eDwe1Go1SUlJFBUVkZ6ejs1mY3BwEIA4QRA4ePAg7e3tnDp1ir179xIMBunp6UEQBG7cuAEsOKC9vT2mgMLCQkwmE8eOHaOpqQmbzcaePXsAeP78OR8/fuT06dMIggDAtWvX8Pl8mEwmfD4fTqeTLVu2AAsOePr0qbJpRlFTU7Oo+bdv33LmzBl0Oh1Go1E56lwuF5OTk9TW1nLr1i08Hg/FxcUAmEwmnE4nZ8+eXXgPqKmpIS0tjQcPHtDW1gaA2WymtrZWSRZ1QJSP4ujRo5hMJkwmEy0tLVy5coW7d+8CYDAYOH/+PFu3blXGazQaPnz4gNPpRBAEduzYwcmTJ4EFBzx+/HhRs0sJYDQaKSgowOVy8fXrV1atWsXIyAg+n4/W1lY2b95McXExjY2NeDwe8vPzCQQC+P1+TCYTRqPxn3kV/rdRX1+Py+UiJSWFz58/09rayqZNmxTe4XDQ2NhIamoqU1NT5Ofnc/369W/kP/iB9q+ioaEhYjabIw6HY0ne4XBEzGZzpKGhISa+LBwQxejoKOvWrfstflkJ8FewLP4H/B38ByyimuGWL9tfAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/images/close_red.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAEAAAAAUCAYAAAA9djs/AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAABUpJREFUWIXlmG1oU1cYx3+n7VadSq74stWXJdNep4WtURhDneSG9YswZ8oo4bIPjVQF59Tu42DDFIV9XHwpMqSYjg17I4w4Bm4oa7tRnczRrpvYmqjJpLYV0dS5RHH67ENvY1rTqOhe6P5wPuT5n3Of8/zvef6cGyUiwv8YRf/2Bp4kEh0dj87LBMEOXZeNSklXS0tevqulRTYqJTt0fVR8QpyAnbpOXyzGVBH2mSbdkcgovtuy2GeaTBPht1iMnbqe5ZTIk/eAdFsbAKVuN8Wa9qQfPwofLVpEMhZjCVAK9AFXlOKdgwd5ye/nF8ui0TSZKcJc4CZwFnhe13n/7Nl7HnCjrY3zPh+dStGpFD1uN0PRaDZRzDDoVKrgZq6Gw3RrGr1eL71eL93Tp5MMBLiTSmXn3Eml7stzwxasPxjMxseOfLh4/DjJeBwHMNUWYAEwQ4RG0+SL9etpNE1mibAQmARMA6YAyXiciydOUAJwNRqlp7qaYoeD2du2UaJpXI1GuZWz8VtAplDx0Sg969YxpbISZzBIsabRHwrR19xMJpVisS3mGZ+P6+3tlG3bll2n7FPyp51jdm0tpS5XQbEB5q9YwRbLYq/fT58IC+y4DhSLcKypiTmAEyi2uQvAH0qx1bKYv3z5sAm2OhzS6nDI9c7OcU3mlMcjRwt45vdOp7Q6HHL72rW869IXLoiIyFGQUx5Pls+df277djkKcrW1ddw8+XA6EpFNSkkQ5HOQljzjM5APQTYpJacjkezaooFolN+HhpgVCDDN7R5X7UInIJ1IcC2ZRPP5KBnT87MDATJA/0g7OZ1cam9nwP6dO/+2nePuA9/9aFTU1LDFshhUiiTwVJ4RY9gbtlgWFTU12bVFV7q6SAOzfL6CSW4C6XG4G4kEaaAkz7EtdblIA2m7nV4Oh7ntcNBeXc23hsFlu/9hWIA0cMzrxVIKSyl+DQYfrACwpKaG1XV19AFP5xkDwOq6OpbkFA9QMpL0QarfYnwB7trc7YfgZhsGbyQSnKyvJ97cTNLr5bUDB9ADgawA5bW1TLXFnGkYD9jZMHosiyNNTTgZLngsXMCRpib0qioW+/3ZeNFkl4sMMNjVVTBBoRaY7naTAQbyPGOwq4sMoOW019OaxqpwmDWdnWSAH+y3PGKCCwIBlgaDLA0Gee4hBOixLPaaJi4RlpG/BZYB80XYY5r0WNY9AV7w+UgDJ0Oh0a6fSnE5p6BCJ6BU05hSWcnpw4dHr0mlOBkKccfhYI5dSG6OmW43MzweBpNJ4F4LPIoH9FoWe0yTChFWAJPt+E9ABDgJCPAMsApw2SL02iKUlGoar2zfzncNDXzidlMZCHAzleLncJhJmsbWRCIrQAZoH9OTLsPAaRgYoRCfer2EDYPKQGB4c9EoQ8kkbx44QKltdt/U15NKJHAaBkOJBGfb23lx7dqsABmgMxzmfI43AHjyeEF/Rwe7TZO5Iizl3ofNCSCpFNUbNvDl/v0UieCxuRXATRF2myYfzJs3fA/wBINMdbnoCIX4uqEBgIq1a6nKSTpigiP8CF4HnLYIb7e28lV9PW27dgFQVlnJW6EQFTkGW6Rp9CcSnGloYJLDQUVtLWtCoawAaeBEc/N9xeYToGzlShaXl9Mbi3Ed0IDjdvH1lkV5TQ0LqqrY5ffzowivAteAS0BFeTllK1f+PVfhfxp7dZ2eeJxngUGleM+yWJjj9ucOHeJjv58yES4BS8rLeTcWGyYf6cbxH0ajrstmpSSec8nJRTwSkc1KSeOYr8EJI4CIyEBHxyPzE6IFHgcT4v+Ax8FfyEaXwPSt6YIAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/images/loading.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/images/next_blue.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhPwAgAOYAAP////H1+/L1+/H0+vD0+vDz+eXr+OPp9uHo9dfh9NPd8MvY8crX8MnW78jV7sfU7cbT7MXS68TR6sPQ6sHP6bfI6LDE6q/D6a3B56q+5Ka64Jax45Sv4ZKt35Cr3Y6p24yn2oql2Iij1oah1ISf0nmb2nSW1W+T2G+R0WqMzGKK1WiJymSIzmGGzF+H01mBzVZ9ylN6x055zFB3xE10wUpxv0ZuvDpsyjdoxzZkvi5jxzZiti9hwCpfxCZbwCdZuSJXvCRWtidWsR5TuBpPtRZLsRJHrQ5Dqgk/pv///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEHAEkALAAAAAA/ACAAAAf/gElJAISFhoeIiYqLjIiDjZCRkpOUlZaXmJmam5ydnp+goaKjpKWmp6ihOhaFGzoLAK46s7MAJzcGhAY3JwAqtMAboD04CYQcPQwAyCUczhwAAjguhC44AgAXzi49zRzKnz4+MgEAHT4N5uiIGD4Y7RiH5+miQPYmAB5ADvn7iS88eLxApI+fqCEwWAzJ8GHIAwANh0j8YOiAxAOIGj4URSTGgBw/WhCBAAAEERQgQJAsVIEIkQqITK4MVWQGAAVFckYAEKLIzkMEgsyYEYTAoZ4/QxmhQUiDESMSAIiAiiiFEQQIjKQ4NDWqqCM1Cq04MgHAiCMrRqgdAWDCEbZmOskaOltWFBIbhQrsoACABJK/gAsI2WFoh5AChfzyTcW4sWMAgCP/fUy5suXLmDNr3kzpEWdGgj4zCgQAOw==]]></data>
	</file>
	<file>
	  <filename>/images/next_gold.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhPwAgAOYAAP////n57/j47/f37/b27/T03/Hx3+/v3+7uz+joz+rqv+jov+fnv+Xlv+Tkv+Liv+Dgv9/fv93dv9/fn9zcv93dn9vbr9ran9bWn9TUf9HRf8/Pn87Of8vLf8jIf8XFf8bGX8LCf8TET7+/f76+X7y8f7+/P7m5f7q6P7e3X7S0T6+vX7CwT7GxP7CwL62tP6urX6+vD6ioP6mpD6qqAKOjP5+fP6SkAJqaP56eAJ2dD5qaH5aWP5eXAJOTD5KSAI2NL4yMD4yMAISEH4WFAH9/AHl5AHNzAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEHAEgALAAAAAA/ACAAAAf/gEhIAISFhoeIiYqLjIiDjZCRkpOUlZaXmJmam5ydnp+goaKjpKWmp6ihNBOFGTQKAK40s7MAIjEFhAUxIgAmtMAZoDczCIQaNwsAyCAazhoAATMohCgzAQAVzig3zRrKnzk5LtgcOQwA5uiHFzkX7ReH6qM99SQAHT0N+PqJLTo6WiDKt0/UjxcqfmDw8MMBAIY/InowZCCiAUQMHYoSIkPADh8shDwA8EFIig8fRhayIESIBUQlVYYiUgNAAiI4IQAIQUTnoQFBatQIMuAQT5+hitggtKFIkQgARjxFtKLIgQNFVhySClWUERyFYBiRAKCEERgl0pYAIMHI2rJjOQ2ZJSvqCI9CBIBQAHDiiN+/BIYAMQRkCIFCffemWsy4MYC/kP06nky5suXLmDNrpvRoMyNBnhkFAgA7]]></data>
	</file>
	<file>
	  <filename>/images/next_green.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhPwAgAOYAAP///+/27+/17+/07+/z79/v39/r39/p38/lz8/fz7/ev7/bv7/cv7/Zv7/Yv7/Wv7/Uv7/Tv7/Rv7/Pv6/Mr5/On5/Ln5/Jn5/En5+8n3+9f3+6f3+3f3+zf3+wf3+tf3+pf3+mf3+jf3+gf1+oX1+gX0+lT1+YX1+QXz+cP0+TT1+MXz+XP0+OTz+NPz+JPz+EPy+KLz9+Pz96Pz90Pw+EDz9wPw99DwB8AB9vHw9xDy9kLwB1AABvAA9lDwBoAB9YHw9eDwBiAABbAABUAABOAABHAABBAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEHAEgALAAAAAA/ACAAAAf/gEhIAISFhoeIiYqLjIiDjZCRkpOUlZaXmJmam5ydnp+goaKjpKWmp6ihOBWFGjgKAK44s7MAJjUFhAU1JgAptMAaoDw3CIQbPAwAyCQbzhsAATcshCw3AQAWziw8zRvKnz09MdgcPQsA5uiHFz0X7ReH6qM/9SUAHT8N+PqJLjo6XCDKt0+UkBcqhGDwIMQBAIZCInowZCCiAUQMHYoaAkNADh8thjwA8GHIiQ8fRhaiMGQIBUQlVYYiIgNAAiI4IQAAQUTnoQFBZMgIMuAQT5+hiswglKFIkQgAQjxFhKLIgQNFUBySClWUERqFVhiRAECEkRUi0ooAIMHI2rJjOQ2ZJSvqiI1CBHZMADDiiN+/BIDsMLQDCIFCffemWsy4MYC/kP06nky5suXLmDNrpvRoMyNBnhkFAgA7]]></data>
	</file>
	<file>
	  <filename>/images/next_grey.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhPwAgAOYAAP////f39/b29vX19fT09PPz8+/v7+zs7Onp6ebm5t/f397e3tzc3Nra2tjY2NfX19XV1dPT09HR0dDQ0M3NzcrKysXFxcDAwL29vby8vLm5ubW1tbKysq+vr6ysrKurq6ioqKSkpKOjo6GhoaCgoJubm5WVlZKSkpGRkZCQkI2NjYuLi4iIiIeHh4KCgoGBgXx8fHp6enZ2dnV1dXNzc3JycnFxcWxsbGhoaGZmZmVlZWFhYV9fX1paWldXV1FRUUlJSUNDQ////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEHAEIALAAAAAA/ACAAAAf/gEJCAISFhoeIiYqLjIiDjZCRkpOUlZaXmJmam5ydnp+goaKjpKWmp6ihLxOFFy8KAK4vs7MAICwGhAYsIAAktMAXoDEuCYQZMQsAyB4ZzhkAAS4lhCUuAQAUziUxzRnKnzQ0KgIAGjQM5uiIFTQV7RWH5+miN/YiABs3Dfn7iSkzZqRApI+fKB0rTOiwwEGHAwANdUjkYOiAxAOIGj4UxaPFgBo4UPB4AKADjxIdOpAsRIEHDwqITK4M5eMFAAU+ckIA8MHHzkMEdszaQeBQz5+hfsAghOHHjwi2niI68QMBgh8nDoGQKgqIjEIqgEgAEAKIihBoQwCQAEQtWbGGOMqOFRXERqECOViNCMK3b4EeOQzl6FGg0F5WqRIrXgwAiOPHjxlLnky5suXLmDNTeqSZkaDOjAIBADs=]]></data>
	</file>
	<file>
	  <filename>/images/next_red.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhPwAgAOYAAP////nv7/vv7/bv7/jv7/nf3/Tf3/Df3/TPz+vPz/C/v/K/v+6/v+u/v+a/v+m/v+S/v+K/v9+/v92/v+Cvr+yfn+mfn+Wfn96fn9Ofn+Z/f+F/f9x/f9h/f9N/f85/f8l/f8R/f8B/f7t/f9pfX85fX8JfX7ZfX7BfX9xPT8JPT7tPT9k/P9M/P8Q/P70/P7U/P64/P6c/P6A/P5k/P8cvL5AvL6kfH9APD8cPD4gfH7YPD6MPD5oPD80AAMQAALoAALEAAKcAAJ0AAJQAAIoAAIEAAHcAAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEHAEgALAAAAAA/ACAAAAf/gEhIAISFhoeIiYqLjIiDjZCRkpOUlZaXmJmam5ydnp+goaKjpKWmp6ihPhWFGj4LAK4+s7MAKTgFhAU4KQAstMAaoD85CIQbPwoAyCQbzhsAAjkthC05AgAWzi0/zRvKn0BANdgcQAwA5uiHF0AX7ReH6qNB9SUAHUEN+PqJLjs7XCDKt0+UkBcqhGDwIOQBAIZCInowZCCiAUQMHYoaAiPADR4rhjgA8GGIiQ8fRhaiMGQIBUQlVYYiEgNAAiI4IQAAQUTnIQI9YsToQeAQT5+hisgglKFIkQgAQjxFdKLIgQNFThySClWUkRmFUBiRAECEERQi0ooAIMHI2rJjOQ2ZJSvqCI1CA2xMADDiiN+/A3TYMGRDx4BCffemWsy4MYC/kP06nky5suXLmDNrpvRoMyNBnhkFAgA7]]></data>
	</file>
	<file>
	  <filename>/images/pause_blue.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAEAAAAAUCAYAAAA9djs/AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAABKJJREFUWIXlmH9MVXUUwD/3vnsfPng8UAETRSAzxg9/VC8jsVr+3NQlE1On1dailpS2ajpdy7XpWkZlo036pc5Ny9SYilloxTAkJqbmy/zJZASpiD9AcRTnPvrjwYXL4z3ItTnybPePe8655573ud9zzvf7lNbW1lbuYFFvdwK3W7TbncCtipq+wU/nLX+2R1tX6bMAAPpFpaEoCqqq0HTxmMUWEpWKato8AWP0aQC6bkNVFRRF8bPZda0NTvAY2ujscvPG6bDxYJKLpyYPxp3k8nPOWFTB+qUpJMWFWfTP5f7OoVON/Pp5ukU/Orscd5KLdUtSALh+U3hzfSXFR68CkBQXytJ5CbiTXOTvquHjXTXdJtk1bru0A1C7AaBpakA4Fj8Rg9iBIWQ+EkNt/V/sLK1j36F69r7nZkhUiOm4o7SOa9f/ZmPRn7ydPcISxDC8iBh+wUUMDMNr3i/KO0nFyQaenhILwA+/XMbpsAHg9fpizBwfY3lvMLHrNnOZdxW93dYzAOGuAU5eyhwGgPvecJZ/eoqC/edZNCvBdPy65Dwiwt6DdSybn4grtKN6DMNARLoBIBhGB5iff7vM2ORIls1PBCAnM86M4wMgZGZEMzY5spcANFQlQAloNrM/BBO1a5LhDhsigtfb8eVqLjVT5qnniYxorjY2s6/ikiVIbwEMitQo89Sbz3eG2A7g32xL7JoNXbdh121+Nl3z6e1a8DanighXGpspP36FbcW1vP/VGUSEye5o02nd7ipEhFeyEhnUX+ezwnOWIIYEAdCpNN5dmIzDDtmrDzN3RQXlx6/4AZiz4iDxs4uIn13Emq1ngwOwa9h1Dbvd/0fqmua7uoHTWTQRA8/Za2S94WuG4aEauTmppCSEm05f7qtm4gNRDI1xkPXYYD7Ycobj5xpJTfQ1St8KCNQDOvTpqQMoy3+UFetOsO3HGkqPXWLN4lHMmTAUr7cVEYMnJwwlLsbh80/pHzR5XQ+8zO323pWAJiKkJrpY9UIaAONGRlkctnz/B1cbm4kdGEKZp54hUf0QET7ZUUneq/d1AtBzCQC4wnQ+XDyK7BnxTFxcwupNJ9oAtK2Ax2P9cggIQAs2BdptwWNoIoKznxrwpV8UnUNEyC84TX7BaVNfWFrDyufTiHDqhDlURARPZQMjh0cA4KlsQEQIc3QM4oYbLUQ4dQDS7o7goeRIDnjqgVvsAUHGoN42BnsxBayjqrNUX2ii5MhFFs4awTs5Y0z95qIqcnIr2H2glgVTE5g3aRiFP9Uw7bVicrJG0HCjhc1FVYgYvJh5j/ncsrVHqb7QxPgx0VRfuEnJkYtMHxfbCYDBpu+q2H+0zpLH8mdSAwDQgmyEbKiKitJTCbSIIIZ//QJ8tP0ULSLMnxJv0S+YmsDreYfI23qCBVMTmJExhE1vPcyqDR5WrvdtSUcOj2TtEjfjR3c0U2eojcraRooPn8cVpjN3Uhy5L99vAmgRYeMe/8YXGEDgnaCu+eD01AOUvnocVtM3MH3mbBPAroKtlsPQlGmZKG0l8G1hwf/zMPTNzu0BbXv37OhVjD67Av4rueP/ELnjAfwDgHL1POVd5jsAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/images/pause_gold.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAEAAAAAUCAYAAAA9djs/AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAABAxJREFUWIXlmM1rE10Uh5+USVOstIOYGiKYmEXRFvuRgKAuOlUqBb/6Cm7cdFx1af6E9D+IdKUgTndC1aZ+oOjCBKUlIrFvIC0GTNNqS2gXbdWgM1OtiyGTTtOk8UWQvv3BLOaec88997nn3syNbX19fZ1drJq/ncDflvC3E/ivGhiwlbTdvLm+rW2zdiwAAKcTbDaoqYFcrnrbRu1oAHa7MUlb6YIjCEUAlSSMjBR72+2NOJ0Szc1BnE6pxDkSEZGkKKLYYWmPRiWWlmJcuWIts5ERG05nF5IUBUDXV3jzRmZhYQwAUWynoyOM0ymRSoWYmhrcMsnNcTdPshKArWwWP02D+noPPp9MPp8lkxkmmx2jr2+G+nqv6ZjJKOTzq0xPhzlxQrEE0XXQtNLgmmbYCopG+1hcjHHkyHUAPn6MIAgiAD9+GP4+X79l3IrJV1jl3wKwb5+XtrYQAPv3S7x+fY10WqGzM2Q6vn+voGmQyUQIBFaorRVN29paeQBra8X3T59iuFxdBAJhAI4dC5lxCgAOH5ZxuaRq5v9HtkDN5lWy20U0zUiooC9fsszNxfB6+/n6dZWZmYglSLUV4HB4mJuLkc0a/TdCLAD4+bNywhslCAYEu728TdjmlKvRNMjnV5ifjzI9rTAxEULTwOPpM53evQujaRAIhHA4PCQSYUuQaiugq0sBGnn06B8ePJCYn4+atgKA+/e7GRqyMTRkIx4PVUy+MMFyAApPJQmaBgsL/3L3bjcADkcjp0/fweksHnTJpMKhQ5doaPDS3CwzMTHI4uIkTU2GT7UVcPCghCxnefkySCo1zMxMN729d2htlU0Ara39NDR4AXC7pW0BlCvzSjYLAFWFpqZ2enqMVfV4rIMmkwqfP6+yZ4+X2dkoe/d6UVWIx8NcuKCYAFS1NLiqWgEAOBwivb0KnZ1Bbt/uJBoNmQBUFY4elUtyKJu8YEyw3BlQzmbx03UQBLHsoImEgq7D+PgNxsdvmO2pVISenhXq6kQEQUTXIZebxOUyqiKXm6QQu6Dv3w1/gAMHOnC7u5idjQHGFtB1+J2byXYAqvoV2GqVClpezpJOxzh58jrnzxf3fSKhcO/eNaamIvj9Mm1tMsnkGLduSZw6FeTbtxUSCQVVhePHg2a/x4+DLC9n8fkkM3ZLyyUTgKrC27cKHz5ELXmcORPaMr9KZV71h5CuWw+qjXr1Koyug98vW9r9fpnR0SCxWBi/X6alpY+rV0d58SLEs2fGx4zb3c7lyyF8PsnsV1srsrSUJZ0epK6ukfb2fi5eDJsAdB3i8eGSPMoBqKYCtgNg26nX4YEBG+fOFQE8fGi9DJ09W7Q9ffo/vQw9eVLe9vx5dTF2bAX8Ke36P0R2PYBf6lysE2b9C7oAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/images/pause_green.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAEAAAAAUCAYAAAA9djs/AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAA9JJREFUWIXlmE9oHFUcxz8TQ4ItZaeiJ8WdQqkHxd2QHBSqO3MICoZmc9KDuBMaVPSwc9CDh9ApUtCCMKlWrVjyghA8ubPgpRZ0plFRaMlEDFgqZntSD5pZ/4A7Wp+H2cz+zXajgRDzhXeY9/293/vO7/1+v9m3ipRSsocxsNMCdhqDOy3g30IZUzrm5GV5U64duzYAANwFKMR5fL2Nu7M+341rwu4OwBCNl9wK14QBZVZhY6inVPKLebw1r6uxekol+D7omNfP6yiznWmnzCro5/XkOfwjJL+YT/bLns0me9kf2zRraR6bYqhpbIVrwiA1SB9MY46ZVH6usHBlgXJQZu2lNbSDWmIoLguq1SrOJQfxuGj18idQ6+K9VufqyIs8/nc+xaNFANxVF3VYjckbsX1htIB2m9buqTuG+c8ZMEgE2gENe9wGQD+kM704jfhSYD9qJ4biCwERuMsu4bEQ9Va14eUvIOriPapzdfjf+OQO53COOQDY43bDz43Y3hw10Q/rvVVvYCMA3ZKk3xKg1ipeHVbjk2sSXvmpgr/qUxgpUK1WcQO31UvE5hnQ5Du9P42/6uOuxOs7glgD/u4tuAUbKT7cg7tJCQwQQfhLiHfVQ3wmsEs2RJC/P58YOR85EIH9mE36QBrngtPqpc8MEE8JUrekmDozhX5ax7vqNch6BhivGijHFZTjCnbZ7q1+uMdLbqUHrHy7gvGyAUBqX4r5wjzZu7MN4Z8IJu+bRLtdw3zA5OQHJwmuB2TTdZs+e4B+j07ldAXrPYuFpQWMrwzmn57HfNhs9ICHCmh3aLH9Eb23+m34CgxSg4yWwTHjU9Xvbd1UeILqehVN1fBWvbhB1cD50EE8L2KjPksAQN2nIp4RWI9YjLw4gv2+HQegXgLmUbNDw6bYriaoDqmbbiouCohgzp1jzp1L5t1PXUIzRN2vxn0jgmAtIHsozopgLYCIRpcHwt9je4CsliV3JIf/tR+T9RJgKzeTXgHoxTVhsNspbaDyYwX/ik8xX8R5tlH34qJg+rVp3M9dzHETUzcpXyqjv6BjTVmEv4Vx4GpgTVjJOutti8oPFfSMnviefHAyJuslIC4IvMBr0WE/aXcX2E8J9PgZEcNA5qyc7IbiG0WJgVy+ttzBpSZSMjOTSZ5LSyWZmclIDCQGMjOTkaWlUoe/9BNpiYFMTaRk4ZWCXP91XUop5QlxIlnbPrqBUSRvITmH5B0ko7RyDpLXkZxt5dqh7NbrsDKmwHM0MuBM22VohsY94dz/9TL0Zg/u3f5c7NoM2C7s+T9E9nwA/gF4+O4BwphdfgAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/images/pause_grey.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAEAAAAAUCAYAAAA9djs/AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAABFdJREFUWIXlmF9IU28Yxz8b+5MtUFGom+aJMYUoGSKsxqAop2RMBbsq0JtB6FUXIULgxW6GeNHNELqKIiJhkQsK0l04UUFKRdFD3jQSCXbRn4XBeV+ndhE77Ti31u/3g/DX9+48z/M+e97v8z3Pe96Z9vb29viLYf7TBfxpWP50Af8Uzc3NBbY3b9780rcfh5YAgOPHj2MymTCbzXz48KFsXz4ONQFWqxWz2YzJZDrQlyOgFCzhcFh/sNvtKIqC1+tFUZSC4OHhYXp7ezlx4oTB/uDBA96/f8/Q0JDBHg6Hqauro7e3FwBN04jH46yvrwM/utTW1oaiKCSTSZLJ5IFF7s+bv8liBFgslqI+Q5wQgqqqKpqamvjy5QuLi4usrKxw+/Ztqqur9cDFxUW+fv3K7Ows3d3dhiTb29sIIQqSCyHY3t7Wnx89ekQqlcLn8wGgqip2ux2AbDaLEIKmpiaqqqpKFr2fgIO6XLYChBAcO3aMy5cvA+B0OhkbG+P169e0trbqgfPz8wghWFpaor29nYqKit8m4O3bt7hcLq5evQrApUuX9Dw7OzsIIfB4PLhcrrIIsNlsmEymf/UKmIUQSCl1g91uRwhBNpvVbZ8+fUJVVTweD5lMhpWVFUMSKWVRAvJzOxwOVFXV1+eTmFPA7u7uL7b9ExaLBavVitVqLeqzWEqPOYsQgkwmw/r6Oh8/fiSRSCCE4OzZs3rQ5OQkQgiuXLnC2toar169wuv16v5yFXD9+nVGR0eJRqPU19cTDAZpaGgAfipgZGREjw8GgwSDwaLF5xRwUJdzM+CXr4CUknfv3hGJRIAfXenp6eHkyZN60NTUFGfOnKGmpgav18v4+DgbGxs4nU7gR/fyO52DlNKgpIaGBiKRCI8fP2ZmZobV1VVCoRB+v5+dnR2klPj9fmprawFwu90liy8l81LkGAjQNM0wqU+fPm0ISCaTfP78mcrKSlRVpbq6Gk3TePHiBX19ffpGNU0rSK5pWgExR48eJRQK0dLSwuDgIE+ePMHv95PNZtE0DZ/PV1BD0eJLTPqyTwEpJTabreiPJhIJpJTE43Hi8bhun52dpaenB4fDgc1mQ0pJKpXi1KlTAKRSKXK5c/j27RsOhwMARVFwu92sra0B6Ar4nRlQ6hQom4CDupRDOp1mYWGBzs5Obt68qdsnJye5e/cuc3NzBAIBLly4wPT0NAMDA3R1dbG1tUUikUDTNNrb2/V19+7dI51O09jYqOc+d+4cgK6AiYkJlpeXDXXcuHHjwPpKybzUN4KBACmlYVDl4+nTp0gpaWlpMdgDgQDRaJRYLEYgEOD8+fPcuXOHhw8fcv/+fQBcLhe3bt2isbFRX3fkyBE2NzdZWFjA4XBw8eJF+vv7gZ8KePnyZUEdxQgo1eVyj0HTYb0ONzc3c+3aNX2TY2NjhstQR0eHTs6zZ8/+n5ehWCxW1Pf8+fOychxaBfxX+Ov/EPnrCfgO/GLx1Cs7v1AAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/images/pause_red.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAEAAAAAUCAYAAAA9djs/AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAA8JJREFUWIXlmN1r5GQUxn+p046ywqTsUFi/JstSXRXsFAT3ZrcZ8MKbtbPg/bxlwRsvmj8h8x+kggiC9p2r9a6Zq71YxAmC9cY2VUulsrtBa1sKCxnXzrTdXepFk0zmK52KUGofCEPOOTnveZ885yQZ5fDw8JBzjKHTLuC0kTrtAv4tbitKl+3LQMxJvk6cWQIA8oDCkYx/PIEvjjNNwDCtTXYileCLY2hJUQiPFVXlfrHI41qtZ/CKqtJ03S77uq6z1EN2S4rCuq5H5898n/vFYrTeWj4frbVlmsRriR/9MAyMBL8n8cWRagLpXI4xIdj3PLYrFbarVd59+JC0pkWBO1Lyd73OhmUxLmVbkgOg2SN5MygixFqxSN1xeGl2FoBHts2QqgLwJIgfK5Xa1k1CkgJCX3/6jpBqAGlN4zXTBOCCrrM6M8OGlFwJbAC/S0kD2LBtLvs+qaBwgD2g0SN5A0jHzrcch9GpKS5bFgCvmmaU50kQnxWC0ZhqkpC0yYFboAnsxw2qShN4Gt+I57HpOGRLJR7X62zZdluSfforIJ6bXI5Nx2E7uD5O4tMg/tkxBceR4oiEXjIPfccNuaFd4C/fZ6dW44GULJsmu8BYsRgF/WpZ7AKvmybkcvwS3MEQe8Buj+S7gS/EhJQcZDJ8e+sW3+g6O7FZcxDE3ysUuKMo3FEUfo4psBfCDfYjIDySkGoAjZUVNgsFAEYyGa7NzzOaz0dBq1JyaXqaC5rGK0KwXC7zyHW5GMQktUCcgDFd50PP4wfD4LdKBa9Q4Mb8PONCRC0wXirxYjADsse0wjBHEu83A4YYYAY0gezEBNeDu/pyx6JrUlKv19E0jT9rNV7QNJrAsmXxfjAMk4bgQYdtRFW5ISVvGQZfT07yvWkyLkTUAleE6KqhH5I2OTABDeBQVfsu6gbDb3FujsW5uci+attc933SqgqqSgPYcV3GAlXsuO6RKmJ9vh/GA9l8notTU/zhOEBrCJ5kBiRtMpXga4vrGlQx+J7HuuPw3uwsH8T63pWS6swMa7ZNXgjeFIKfqlW+0nWuGQZ7vo8rJfvApGFE1901DHzPQ9P1KPcb09NA6zG4JCUPOt5D9D6zYJDH4HFPgVQjgYDvLIsG8I4Qbfa8ECwYBjXLIi8EV4tFPlpY4J5pcrdcBuDSxAQ3TRMtpqznVJVtz2OtXOb5TIa3SyVuBsSGClisVLrqSCIgSQGDEKCc1c/h24rCJ7QI+JT2j6GPaRHwOf/Tj6HPEnxfDJjjzCrgv8K5/0Pk3BPwD7hoZTZfcvSOAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/images/play_blue.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAEAAAAAUCAYAAAA9djs/AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAABCRJREFUWIXll21MlWUYx3/3c87hcCAO8nY6ikOUyRRxtLQ2pehDE+fSZklzw4otMM1yspZrc7S10dLGnJPamGPNVcvmG8miD2ClGToQXC3e4kSAvIooEEeNU/d9Th+OnDjhOTzgBzvrv90fnuu6/vd9Xf/neq49t/B4PB7+x9AedAIPGiEvwL4jLVwd+mPO/JAXoL51hNScCk6c658TP+QFMGgC5RHkFn1HUXnbrPm6BMgoqPetzN2NFH7koLF93OfPL2kjo6Be14GZuxtp773jZ3PeUWTubiS/pE2XfSqEAIPRTLh1PvuPNpL9Zq2uPCahSwApJbZoA69unM9TGdGcbRwmb38T/TdcACilkFLOuM+Z2uuMOV18Uu3frlERBnZsWkBdywhnaq/77PuPdTLmdLF3a1LgAjSBpgmssXZi7Cmcu9xD+ks19A1P6ClNvwD2WBOvb07i/YKlFL+SgpSSiguDgH4BTn8/iJSSmsvXGb/jH/9y9gJs84wcPtUFQP/wBKfPD7BpTRzLkiID7imEQNM0wkxGHrLGYl+8kt/6naRvq6KuZWzGnPQJoBRKKd9zVIQBqRRut/cXQimFnOK/F/qGJ7jUfJNnM22MOl2cbRieFrPvxSX0DN3m8Kku9pa1YjEL3ng+OXgBQqAJgdlkxGwyEhFuIXHRcjyahaydVXz5w7Xg/KDeu5BSMuJ0UdcywsnzAxw83oGUknWr4wF9HfBxVTdSSvbkJPNwjInyqu5pMetWJ7A6NYryr7q42HSDvPWJLEwID16AJhCaICzM4FuWCAtJKWnYFiwm5+1q9pQ2B+bPXL5XgKaOUbYU1VF4+Ce6B5yUvJZGWnIUoE+AL77p4elH41iYYGFLlp2mjlFausanxRW+sITR8QksYZD/TOBvfxLibgeYTEa/ZTAI3EqCxytSIBhnPAFQUrFisZXi7ekArF0Z5+9XbpQM/Akc/7aXsXEXifHhXGq6ycKEcJRUHKnspLTwEb/YNelxKKlYnjQPa6Rpxtwmh6DZZPDZ3Erxq6OZv1y3qTy4gY1rbQH5ugSQUhIZrk0rfBIzdcDn1d72L6twUFbh8Nmravso3r6C6H8VKqX0mznBIPDOgTCTt5Rbzt9xtP1MjNVM/WebmR9nDsrXLUCwhCYFOPBpi5/9iQwbSfYILvx4jZ3PLeXArn/e9rGabnaVNPD1xX5ys5Nndd5UaJqG0ARGo8bQYB8d7a08uWoRZw9l6uLrFEChlDugXyk3UireO9rkZ9+Xl87YrT+RUpGbvcjPl5udzFulV/jwxC/3ECD4eVMxOQOudjro7+1iz7ZVfLBjmS4ugAj16/DWd69Qea6dedZIjr6TyYbH42fF19UB/2kIQWqyjZpDWdhjw2ZPD/UOqG4YYf1jsXPmh7wA94uQvw7fL/4GI9O46Clck28AAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/images/play_gold.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAEAAAAAUCAYAAAA9djs/AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAA8pJREFUWIXllzFsE1cYx3/n+HASJcYegqlE7IvUJiYDsYKCBEPrRLJYgpqlUjth1E4ZaFYGVBcYOjCYAZYMGIaKKghcBAghQW2phEbEDhiRgBUZO5IjBErkEFvBdwlmOJzYNXZeYKBW/9Ib7nvfd+/7/9//vdNJhUKhwP8Yhs/dwOdG3Qtw7doxFhdTH11f9wKkUv9w/PiXTE398VH1dS+AJEnAKqOjP3D9+rEt1wsJMDYmrY9g0MK9e0O8ehVanw+F3IyNSUILBoMWMpmHZTFNyxAMWgiF3ELxUkgSGI1gNhe4ceM3zp7tF+qjCCEBVBVk2UFX1y/YbEMkk39y+3Y/uVzyfaN6zmZIJALkckvMzPjL4rJswen0kU6HSSQC6/HJyRFyuSV6evxUgySBwQBWK9hsMD0d4tSpr8hk5kSoiQtgMins2eNj//4A+/adR1UhHtebXV0VE+DZswCqColEEFXNlM05nSNs2+YgEvEBkM0mefr0Anb7YaxWV3UCBl0EWQazGRQFFhZmOXnSSTL596Y9CQugaRvPsmxBVWFtTX8WccDycpK5uTCKcphsdonnz4MVOX19fhYXU0xO+rh71wtsx+Xy1Xxv0QGyrI/GRrDbwWhc4fTpr3n8uPblKCxALpchnQ4xMxPg/n0fqgoOxxAg5oCpKT+qCnv3+jCZHESjlbZWlCHa2r4hEvGTSoXp7h6htVWpTaDEAcXR1AQdHbBzZ4Fz577nypWfqtdvyh6d3Pz8Iy5d6ufmzSMsLCQZGDhPW5tuTREHxGIB7PZvMZsVOju9zM8/4uXLhxV5fX0+stklJGk7LteISHtlDiiOhgZ4+xYKBTAYql/QRpEF8nnYsaMHj0ffNYfDXTavaXpONcRiAV6/XqK5WSGVCtHSopDPw8SEn0OHAmW57e1u8nmw2VyYTJZNeyt1QBFrazA7CysrRo4e/Z3u7u+q1gsJoGlgNFoqiBexulp+R/wb0WgATYPx8TOMj59Zjz95EsTjydDYWE5U0/R3ikCSNj6FAMvLEI9Dc7OFEydimM3tNeuFHVCLYNEBd+74yuIdHW6sVoV4PMyBAz8zOLhx7qPRAJcvH2F6Okhvr3dL65WieAk2NMCLF/rO797dy/BwRKhe2AG1dqTogFu3fi2Lezzw5k0GTaOCZG+vl6tXRwiH/RVzW3FA8Qgkk5BOSxw8+CODg6NixYBU77/DFy8O8ODBX7S0NOH1XqCrq/p5/xCEHPDfRoFdu75geHiC1tba5/1DqHsHxONjdHZubddLUfcCfCrq/nf4U/EOChqCzBTag5oAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/images/play_green.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAEAAAAAUCAYAAAA9djs/AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAA55JREFUWIXlmE9oHGUYxn+ziYmtjRkbQSvEHWkCrZVkzcUeNJkFg4iULGKwAWEnNAfBQ0dvEUqnlEAPFib1UCHWfBUJJD04gSJqQWclapY2dRNIIRBxt1AriO2MKDHjynjYTbLrujuT9lAXH5jL++f73veZ531hRvJ93+d/jMi9LuBeo+4JGH1vlNxPuTvOr3sC5q/N0/FyB9NfTN9Rft0TIEUk8n6eobeHGJ0Y3XZ+KAKkY9LmI4/JJKYS2D/Ym371nIp0TAp1oTwmk7mZKbM5fzjIYzLqOTWUvaKDJvDbfE69f4r4m/FQdZSmB2MdojujHO89TqIjwWxmlvjZONnb2YL/z0JMEMQVgeu6mF+ZZXb5fhmj1yC1kkJcEZt2fVYvxL9oUhURoAF4FFDATtt0vtbJ9Z+vh2otHAEeKC0KRr+BeFUw+cokeCDSxWLzhZggiHkBHljfWThrTplPf04nuiuK8YkBQPZWlvPfnicZSxJ7LFb9UKnYRTPQBhyA1Rur7Bvax9y1ucCaQiugtEG5WS7Y8kWDR6ACsr9kSS2nSD6dxHVdrIxVEWMOmORu5jAuGmhCozXSivGCUfvgBrYIaAZ2AU/CWtMavSO9TM/VXo6hFeD86mCv2IivBcbHBniQ6EoU/CEUYH5uggfGSwbRlijmZ5WyTnQn6HuiD/NTk9RyCr1PR2lTah9cqoCNpwXoAn+vz+G3DjPy7kjV9NAKWFxdJH4yzvDZYbI/ZplMThJ7vCjNEDtAfCkYeGoA5WEF7aDG4uoimVymIs44ZOA6Lq0Nrej9enBtESoJaAYagb8KIVJD9QXdGHwDsA7dSjemVnhr6gG13B8wAsIWuLddFFnBXrZRdiuwDuZFE/GGKItV96uwDrG9MeSdcnBtpQRsIA8sQOPvjUydmWLw4GDV9HAEeCA3yZWNl15YYwTEJQEejFvjjFvjm3ZrzsLRHOQH/tGox9Z+CULpCADcAtIgPyiz9OES7bvba6aHVkDNGS8qwPjIKDOrXSrKIwqphRRHE0cxX9+ae3FJMHx6GOsbC61f2959pdhQwH3A98BV6Hmmh4V3FkKlh1ZAzTdSVMCJD06U25Pg/OaAB9rzWplL69fQz+iYM2YlAdtRwAYBSyCtSBxJHmFiZCJkMuDXOeIn4z7P4u84tMOfuTyz7fxwCvgPw8dnT+ce0qfTtD9Ue97/DZLv1/cPkQtXLzDYU33LB6HuCbhb1P3n8N3ib8CbMDCJxCViAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/images/play_grey.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAEAAAAAUCAYAAAA9djs/AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAA+9JREFUWIXlmE0odG8Yxn9zGMOYiFlgoZlQNBnZIKNZ+SgiYqU0NkrWVjaUjWwMskJJk50FCyQKyTDJRz4mLIgSUhiJc85g3sXbTCavmcO7eP/T/6pT59zPfT3nvq9znefpHJXP5/PxP4bwrwv414h4AYaHh7m5ufkxP+IFODw8pL6+nqWlpR/xI14AQRB4f3+no6OD0dHRb/OjlSR1d3cHzjUaDUajkaKiIoxGIwDj4+Ocn5/T2dkZdq7e3l6am5tJTU0NxERRZGBggNTUVJqbm8PGP0KlUqHRaNDpdIyMjOB2u+nr61PSFqDQAZIkERcXR0lJCVlZWezt7TEyMsL9/T0AXq8XSZLCzrO9vc3j4yNra2tB8djYWKxWKycnJ2xvbwfiMzMzPD4+UlFR8XUDgoAgCKSkpGA0GtnY2KCpqYnb21slrSkXQKfTUVpaSkNDA3V1dUiSxObmJqBcAJfLhSRJ7Ozs8PLyEjRmsVjQarXMzc0BcHd3x/r6OmazmbS0tC/nVKlUqFQq1Go1SUlJmEwmLi8vaWxsxO12h61JsQCyLAeuNRoNkiTx+voKgCzLYQW4u7vD7XaTn5+Px+Nhb2/vU05NTQ3X19fMzs7icDgQBCHk04ffAgiCgFqtRq1WExcXR3Z2NtHR0bS0tLC6uhqSr1gAj8fD8fExTqeTqakpJEnCbDYDyhywsLCAJElUVlai0+mYn5//lJOXl4fBYGB+fp7Dw0OsVivJycmhGxCEgAP8h1arxWQyYTAYaG9vZ3Bw8Gu+gv6RZZnT01N6enoYHh7m6uoKm81Geno6AK+vr0EO+ROWl5fJzc1Fr9dTVFTE6ekpFxcXn/Kqq6vxeDxERUVRWloatraPr8DHQxAE3t7efjcpfN2mol1AFEUMBkNgJTaZTEHjsiwjiuKX/JWVFe7v70lMTMTtdpOUlIQoiszMzNDW1haUm5OTgyiKZGRkoNVqw9bmXwRjYmICsbe3N/b393l+fmZgYIDi4uIv+YoEkGWZmJiYT4374fV6QzpgcXERWZaZnp5meno6EF9bW8NmsxEfH//pfl6vV0lpAIE1AODh4YHd3V0SEhJwOBzo9fqQXMUOCNWg3wETExNBcbPZTEpKCltbW9TW1tLa2hoYW1hYwG6343Q6KS8v/9b9PsK/BkRFRXFxccHBwQGFhYXY7XZFfMUOCPVE/A4YGxsLittsNp6enpBlmbKysqCx8vJyhoaGmJyc/CTAdxzg3wWOjo44OzvDZrMFCR0WvghHV1eXz2Kx+Kqqqnwul+vbfEUO+K8jMzOT/v7+sFvmn6Dy+SL7h8jm5iYFBQU/5ke8AH+LiP8c/lv8Ajp5n+J0+x2EAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/images/play_red.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAEAAAAAUCAYAAAA9djs/AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAA4xJREFUWIXlmE9oFGcYxn+zppb8KfmEWIya7liMxoJNahUvoru04Km4F0FP2aAUSg/OwUtKwVEvuTm5FIqHjJeAenAj0npzBoQorWlmqRJT/0yipiXVOkNkptHV8ZDZuLsxOxM92KUPfId95332e99nn/eFWSkIgoD/MRLvuoB3jZoX4KfeXh5PTLwxv+YFsK9c4fv168mfPv1G/JoXICFJBIUCP+zfz8Xe3qXz4ySNSNL8sYTgdibDjGHMPx9PpRiRpFgXWkLgj46WxZ47DpYQjKdSseKlkIB6YG0QcK6vjx/T6Vh1FBFLAB94kUzScuQIDZkMfw0NkU+nmbVtAJ6GOVGY1nWeuC73Na0svkwIVqoqf5sm07o+H7+jKDxxXdZU5Fc2kADagE+AvGHQ196OOzkZp7V4AngAssxHqkq7rrNuYAAPuB8W+28xJwKTuj7Hy+UoOE7Zs9WKwotkkpuqCoBv29inTiG6u2ns6lr0O6XwvAesBLYBD2/d4lhHB5OXL0fWFNsBs6UkIfCBQvh5lmgHeLbNlGnS0t3NjOvyZy63IKdd03g8McFNVWUkm6XQ3My6UJBqDSSA5eFpAj4DGnyfvp07uRGxHGM7YMZxmDYM7uo6o6qKB3yYyQBzAkQ5YEzT8IANqoqUTHL9NbZelcnQtGsXv2sa90yTNkWhQZYj60sw54DiaQK2Ah1BwIl9+zh/8GBVbiQ8YMqyuJBOc6mnh4e2zecDA6wIrRlnBG7oOi179tAoy6zNZpmyLP6pWIYAm1QV13UpNDezQVEia0vwagRKjwQ8K+ZUWdB1kTcwZ++Wzk52hL/amoqtHDUCY7qO67rIsswDw6BelvGB3zSNL0qWHkBrKoUPrOjqYrkQkbVJvHJAEQXgF2Cmro7Dg4Ns3Lt3UX4sATwgEGJB40VEjcBouPyG+/sZ7u+fj1/P5djhOLxf0ahH+c6phtIlCPAIGAYaheB4Ps8HbW1V+bEdUK2gogPMioWVTKUQssy4abL90CF2l8y9pesM9fQwlsvRmc0u6b5SFEdgGXAb+BX4dMsWvr52LRY/tgOiBPCAn48eLYt/CfiOgwdsrmiyM5vlnKJgaNoCAZbqgARgAWOSxFcHDrD75MmYbCCocQym08G3EHxXXx/8cebMkvmxHPBfhhQEyK2tfHP1Ko0R874Iv7b/ELlz9iwfV9nyUah5Ad4WNf86/LZ4Cd5FOYTT5KnPAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/images/prev_blue.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhPwAgAOYAAP////L1+/H0+/Dz+uTr+OHn9Nji9Nfh9NXf8tPd8NHb7svY8crX8MnW78jV7sfU7cbT7MXS68TR6sPQ6sHP6brK6rbH57LD463B56zA5qq+5Km945614pqy3pax45Sv4ZKt35Cr3Y6p24yn2omn34ql2Iij1oah1ISf0nyd3Hmb2neVz2+T2GyR1mGGzF+H01yE0FmBzVZ9ylV6wlN6x055zE10wUdzxUpxv0Ryy0Rvw0ZuvDpsykFsvz1rxDNlxDZkvi5jxy9hwDJhuipfxCtdvCZbwCtatCdZuSJXvB5TuCBSshpPtRxOrxZLsRJHrQ5Dqgk/pv///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEHAFIALAAAAAA/ACAAAAf/gACCg4SFhoeIiYqGUlKLj5CRj46SlZaXmJmam5ydnp+goaKjpKWmp6ipm0GsPCwLgh6sQTwpAYILs7MLJEEGgwZBJKJEOR8qREQEAB9EKh8vRC2CDEQvH9gfBAfOg8gHokYwghhGIAAgRg2CNUaCDeaGNT+DPzWjSTGCFUkhACFJHAAQ4EOIIAf9DHFIkgFAhiQcRim58UDDDSUIAIiYKKOIEg2CHigZqUTGIAElAchQImAUk5dMkGwQNIKJDiBMOgyCwITGiBEzB7lgwtMFKSc9IkQgVMJJhARIB0VwUuKQBSdDnFgg9cSGIRNPJAAAa0KQhCdlDy15sqQUFByGSU5AmQBgwJEmBQBMeHui74m8glZAWVEqyg5DKKJQEHQhygwAFKJInrxYkIIoClRp3sx50OTPUTqLHk26tOnTqFOr7kRpNaJGgQAAOw==]]></data>
	</file>
	<file>
	  <filename>/images/prev_gold.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhPwAgAOYAAP////r67/n57/j47/f37/T03+7u3+/vz+7uz+rqz+rqv+joz+jov+fnv+Xlz+Xlv+Tkv+Liv+Dgv9/fv9/fr93dv9zcv9nZr9ran9jYn9bWn9PTr9TUn9TUf9LSj9HRf87Of8/Pb8zMj8vLf8jIf8rKX8XFf8bGX8LCf8TET7+/f7y8f8DAT7m5f7q6P7Ozb7a2P7GxP7CwT7CwL62tP6+vH6+vD6ioP6qqAKamL6WlH6SkD6SkAKGhL5+fP56eT5qaP5ubL56eD56eAJqaH5aWP5iYD5iYAJSUH5OTD5KSAImJH4yMAIeHD4WFAIGBD4CAAHl5AHNzAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEHAFMALAAAAAA/ACAAAAf/gACCg4SFhoeIiYqGU1OLj5CRj46SlZaXmJmam5ydnp+goaKjpKWmp6ipmzisNikKgh2sODYlAYIKs7MKITgHgwc4IaI8NR8nPDwFAB88Jx8uPCyCDDwuH9gfBQjOg8gIokMwghhDIAAgQw2CM0OCDeaGMzuDOzOjRzGCFEcjACNHHgAQoEOIoAf9DHk4kgFAhiMeRinJAUFDDiUJAJCYSMOIEg2CICgZqYTGoAElAdBQMmAUk5dMknAQZIJJDyJMRAyKwOSGCRMzB8lgwlMGKSdBJEgghMKJhAVIB0lwguLQBSdInFwgBcWHIRVQJgAAq0LQBChlDzWB0qRUFCCGSVZEqQCAwJInBgBUeLui74q8gl5EeVFKShFDLaRYELRByg8AFqRInrxYkAMpDlRp3sx50OTPUjqLHk26tOnTqFOr7kRpNaJGgQAAOw==]]></data>
	</file>
	<file>
	  <filename>/images/prev_green.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhPwAgAOYAAP///+/27+/37+/17+/079/u39/o38/mz8/lz8/hz8/fz8/bz7/ev7/bv7/cv7/Zv7/Yv7/Wv7/Uv7/Tv7/Qv7/Rv6/Qr6/Kr6/Er5/Jn5/Gn5/En5/Cn4+9j3+9f4+3j3+6f3+3f3+zf3+wf2+1b3+tf3+qf3+nf3+kf3+gf1+tX1+oX0+lT2+Yb0+gTz+XP0+OTz+TPz+NPz+JPz+EPy+KL099Tz97Px+GHy9/Lz92Py96Lz9xPw+EDx96Hy90Lw93Dx9wHwB8AA9xDx9qHwB1AA9rDwBvAA9mDx9fHwBoAABiAA9aDwBcAA9UDwBVAABQAABJAABCAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEHAFMALAAAAAA/ACAAAAf/gACCg4SFhoeIiYqGU1OLj5CRj46SlZaXmJmam5ydnp+goaKjpKWmp6ipm0KsPSwMgh6sQj0qAoIMs7MMJEIHgwdCJKJFOCArRUUFACBFKyAvRS6CDkUvINggBQjOg8gIokcxghlHIQAhRw2CNUeCDeaGNUCDQDWjSjKCFkoiACJKHgAI4GOIoAf9DHVQogGABiUdRi3JAWFDjiUJAIyYOMPIkg2CICwZuWTGoAElAcxYMmBUk5dNkHAQVKLJjiBNPgyK0IRGiRIzB8FowhMGqSc/JEggZOKJBAVIB0l4YuLQhSdEnlwgBeWGoRNQJgAAe0LQBChlDzGBwqRUFB2GSVBEqQCAQBInBgBUeIuiL4q8glpEaVFKCg9DKaRQEIRBig0AFKRInrxY0AIpC1Rp3sx50OTPUjqLHk26tOnTqFOr7kRpNaJGgQAAOw==]]></data>
	</file>
	<file>
	  <filename>/images/prev_grey.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhPwAgAOYAAP////f39/b29vX19fT09O7u7ujo6Ofn5+bm5uLi4t/f397e3tzc3Nra2tjY2NfX19XV1dPT09HR0dDQ0MrKysjIyMXFxcTExMPDw8DAwL6+vry8vLm5ubi4uLW1tbKysrCwsK+vr6ysrKurq6ioqKSkpKOjo6GhoZubm5iYmJaWlpGRkZCQkI2NjYuLi4qKioiIiIeHh4GBgX5+fn19fXx8fHt7e3p6enZ2dnV1dXNzc3JycnFxcW5ubmxsbGtra2hoaGVlZV9fX1tbW1dXV1RUVFFRUUlJSUNDQ////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEHAEkALAAAAAA/ACAAAAf/gACCg4SFhoeIiYqGSUmLj5CRj46SlZaXmJmam5ydnp+goaKjpKWmp6ipmzKsMCQKghmsMjAgAYIKs7MKHTIHgwcyHaI3LxsiNzcFABs3IhsoNyaCCzcoG9gbBQjOg8gIojoqghQ6HAAcOgyCLTqCDOaGLTaDNi2jPiyCEj4eAB4+GgAQMCOHoAb9DGnwUQFABR8aRgWR4cCCjCAJAHyY6KJHEAuCHAQZGcTFoAElAbgIMmCUkJdCgGAQFEJIjR1Czgl6ICRGiBAzB60QwnMFKSI4IEAgNIIIBAVIB0EgMuIQBSI/iFAgZaSGIRJGIgAAS0JQBCNlDw0xMqTUERyGSUockQCAgJAiBgBIeFuib4m8glIcSVEKCQ9DJ5BMEHQBCQ0AE5BInrz4HZJ1qjJr3izoiOfPnjmLHk26tOnTqFOr7kRpNaJGgQAAOw==]]></data>
	</file>
	<file>
	  <filename>/images/prev_red.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhPwAgAOYAAP////rv7/nv7/zv7/fv7/jf3+/f3/bPz/TPz+7Pz+vPz+XPz/C/v/K/v+6/v+u/v+m/v+a/v+G/v+S/v9+/v92/v+evr92vr9Svr+Wfn+Kfn92fn9qfn92Pj9SPj+Z/f+F/f9x/f9h/f9J/f81/f8l/f8R/f79/f7p/f+Nvb7dvb+BfX9pfX9xPT9ZPT7tPT6BPT9M/P8s/P8Q/P7w/P7Q/P6Y/P58/P5g/P8cvL7YvL64vL6cvL8sfH7ofH6gfH6AfH9APD48fH74PD7YPD6sPD6IPD80AAJAPD8QAAIcPD7oAALEAAKYAAJwAAJMAAIkAAIAAAHYAAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEHAFMALAAAAAA/ACAAAAf/gACCg4SFhoeIiYqGU1OLj5CRj46SlZaXmJmam5ydnp+goaKjpKWmp6ipm0esQS0Ngh+sR0ErA4INs7MNKUcHgwdHKaJJPSAsSUkFACBJLCAxSS6CDEkxINggBQjOg8gIoksyghlLIQAhSw6COUuCDuaGOUODQzmjTDOCFkwiACJMHgAI4IOIoAf9DHVgogGABiYdRjXRAWGDjiYJAIyYSKNIkw2CIDQZ2YTGIAElAdBoImCUk5dOjHAQRMLJjh9OPAyK4KQGCRIzB71wwvMFqSc8JkwgVOLJBAVIB014UuLQhSdAnlwgBcWGIRNQJAAAa0KQBChlDyGBgqRUlBuGSU5EoQCAgBAlBgBQeHui74m8glREUVFKCg5DKKRUEIRBCgwAFaRInrxY0AIpC1Rp3sx50OTPUjqLHk26tOnTqFOr7kRpNaJGgQAAOw==]]></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[PD9waHAKCi8qIHZpbTogc2V0IGV4cGFuZHRhYiB0YWJzdG9wPTQgc2hpZnR3aWR0aD00IHNvZnR0YWJzdG9wPTQ6ICovCi8qIEBjaGFyc2V0PXV0Zi04ICovCgovKioKICogTHl0ZWJveCBtb2R1bGUgZm9yIENNU01TIC0gQSBzaW1wbGUgd3JhcHBlciB0byB0aGUgTHl0ZWJveCBKYXZhU2NyaXB0IGNsYXNzLgogKgogKiBQSFAgdmVyc2lvbnMgNCBhbmQgNQogKgogKiBMSUNFTlNFOgogKiBDb3B5cmlnaHQgKGMpIDIwMDgsIENhcnN0ZW4gV2llZG1hbm4KICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KICoKICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwogKiBhcmUgbWV0OgogKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CiAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KICoKICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBVVRIT1IgT1IgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCiAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCiAqIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBVVRIT1IgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQogKiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAogKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUwogKiBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKICogSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKICogTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQogKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCiAqIFNVQ0ggREFNQUdFLgogKgogKiBAY2F0ZWdvcnkgICBNb2R1bGVzCiAqIEBwYWNrYWdlICAgIEx5dGVib3gKICogQGF1dGhvciAgICAgQ2Fyc3RlbiBXaWVkbWFubiA8Y2Fyc3Rlbl9zdHRndEBnbXguZGU+CiAqIEBjb3B5cmlnaHQgIDIwMDggQ2Fyc3RlbiBXaWVkbWFubgogKiBAbGljZW5zZSAgICBodHRwOi8vd3d3LmZyZWVic2Qub3JnL2NvcHlyaWdodC9mcmVlYnNkLWxpY2Vuc2UuaHRtbCBGcmVlQlNEIExpY2Vuc2UKICogQHZlcnNpb24gICAgU1ZOOiAkSWQ6IGVuX1VTLnBocCAxNCAyMDA4LTA2LTEwIDEwOjAyOjEwWiB3aWVkbWFubiAkCiAqIEBsaW5rICAgICAgIGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvTHl0ZWJveAogKi8KCiRsYW5nWydmcmllbmRseW5hbWUnXSAgICAgICAgICAgPSAnTHl0ZWJveCc7CiRsYW5nWydwb3N0aW5zdGFsbCddICAgICAgICAgICAgPSAnVGhlIEx5dGVib3ggbW9kdWxlIGlzIGluc3RhbGxlZC4gUGxlYXNlIHJlYWQgdGhlIGhlbHAgcGFnZS4nOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddICAgICAgICAgID0gJ1RoZSBMeXRlYm94IG1vZHVsZSBpcyB1bmluc3RhbGxlZC4nOwokbGFuZ1sncmVhbGx5X3VuaW5zdGFsbCddICAgICAgID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byB1bmluc3RhbGwgdGhlIEx5dGVib3ggbW9kdWxlPyc7CiRsYW5nWyd1bmluc3RhbGxlZCddICAgICAgICAgICAgPSAnTW9kdWxlIHVuaW5zdGFsbGVkLic7CiRsYW5nWydpbnN0YWxsZWQnXSAgICAgICAgICAgICAgPSAnTW9kdWxlIHZlcnNpb24gJXMgaW5zdGFsbGVkLic7CiRsYW5nWyd1cGdyYWRlZCddICAgICAgICAgICAgICAgPSAnTW9kdWxlIHVwZ3JhZGVkIHRvIHZlcnNpb24gJXMuJzsKJGxhbmdbJ2FkbWluZGVzY3JpcHRpb24nXSAgICAgICA9ICdBIHNpbXBsZSB3cmFwcGVyIHRvIHRoZSBMeXRlYm94IEphdmFTY3JpcHQgY2xhc3MuJzsKJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gICAgICAgICA9ICdBIHNpbXBsZSB3cmFwcGVyIHRvIHRoZSBMeXRlYm94IEphdmFTY3JpcHQgY2xhc3MuJzsKJGxhbmdbJ2NoYW5nZWxvZyddICAgICAgICAgICAgICA9IDw8PEVPVAogICAgPHVsPgogICAgICAgIDxsaT5WZXJzaW9uIDAuMi4xYmV0YTEKICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgICAgPGxpPml0J3Mgbm93IHBvc3NpYmxlIHRvIHVzZSB1cmkgcGFyYW1zIGZvciBMeXRlZnJhbWUgdG9nZWh0ZXIgd2l0aCBhIHd5c2l3eWcgZWRpdG9yPC9saT4KICAgICAgICAgICAgICAgIDxsaT5hZGQgYWN0aW9uICdnZXRzY3JpcHRsaW5rJyBpZiB5b3UganVzdCBuZWVkIHRoZSBsaW5rIGZvciBpbmNsdWR1bmcgdGhlIEphdmFTY3JpcHQ8L2xpPgogICAgICAgICAgICA8L3VsPgogICAgICAgIDwvbGk+CiAgICAgICAgPGxpPlZlcnNpb24gMC4xLjBkZXYxCiAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICAgIDxsaT5Jbml0aWFsIFJlbGVhc2U8L2xpPgogICAgICAgICAgICAgICAgPGxpPkx5dGVib3ggdjMuMjI8L2xpPgogICAgICAgICAgICA8L3VsPgogICAgICAgIDwvbGk+CiAgICA8L3VsPgpFT1Q7CiRsYW5nWydoZWxwJ10gICAgICAgICAgICAgICAgICAgPSA8PDxFT1QKICAgIDxoMz5XaGF0IGRvZXMgdGhpcyBkbz88L2gzPgogICAgPHA+QSBzaW1wbGUgd3JhcHBlciB0byB0aGUgTHl0ZWJveCBKYXZhU2NyaXB0IGNsYXNzLjwvcD4KICAgIDxoMz5Ib3cgRG8gSSBVc2UgSXQ8L2gzPgogICAgPG9sPgogICAgICAgIDxsaT48c3Ryb25nPkluY2x1ZGUgc3R5bGVzaGVldCAoYW5kIGphdmFzY2lwdCk8L3N0cm9uZz4KICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgIEluIHRoZSBwYWdlIHdoZXJlIHlvdSB3YW50IHVzZSB0aGlzIG1vZHVsZSwgYWRkIHRoaXMgdG8gdGhlIHBhZ2UgbWV0YWRhdGE6PGJyIC8+CiAgICAgICAgICAgICAgICAgICAgPGNvZGU+e3N0eWxlc2hlZXQgbmFtZT0nTW9kdWxlOiBMeXRlYm94JyBtZWRpYT0nc2NyZWVuJ308L2NvZGU+CiAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgPGxpPk9yIHlvdSBjYW4gYXR0YWNoIHRoZSBzdHlsZXNoZWV0ICZxdW90O01vZHVsZTogTHl0ZWJveCZxdW90OyB0byB5b3VyIHRlbXBsYXRlLjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgWW91IGNhbiBwdXQgdGhlIEphdmFTY3JpcHQgYWxzbyBpbnRvIHRoZSBwYWdlIG1ldGFkYXRhIHdpdGg6PGJyIC8+CiAgICAgICAgICAgICAgICAgICAgPGNvZGU+e0x5dGVib3ggYWN0aW9uPSdnZXRzY3JpcHRsaW5rJ308L2NvZGU+PGJyIC8+CiAgICAgICAgICAgICAgICAgICAgKGFsbCBwYXJhbXMgZm9yIHRoZSBMeXRlYm94IEpTIHlvdSBtdXN0IHNldCBpbiB0aGlzIHRhZywgb3RoZXJ3aWVzZSBpbiB0aGUgdGFnIGZvciB0aGUgZmlyc3QgaW1hZ2UpCiAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICA8L3VsPgogICAgICAgIDwvbGk+CiAgICAgICAgPGxpPjxzdHJvbmc+SW1hZ2UgQ29udGVudCBFeGFtcGxlczwvc3Ryb25nPgogICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICA8bGk+PGVtPlNpbmdsZSBJbWFnZSBFeGFtcGxlIChwdXQgdGhpcyBpbiB5b3VyIHBhZ2UgY29udGVudCk6PC9lbT48YnIgLz4KICAgICAgICAgICAgICAgICAgICA8Y29kZT57THl0ZWJveCBocmVmPSd1cGxvYWRzL2ltYWdlcy9pbWFnZS0xLmpwZycgdGl0bGU9J0ltYWdlIERlc2NyaXB0aW9uJyB0ZXh0PSdJbWFnZSAjMSd9PC9jb2RlPgogICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgIDxsaT48ZW0+R3JvdXBlZCBJbWFnZXMgRXhhbXBsZSAocHV0IHRoaXMgaW4geW91ciBwYWdlIGNvbnRlbnQpOjwvZW0+PGJyIC8+CiAgICAgICAgICAgICAgICAgICAgPGNvZGU+e0x5dGVib3ggaHJlZj0ndXBsb2Fkcy9pbWFnZXMvaW1hZ2UtMS5qcGcnIGdyb3VwPSd2YWNhdGlvbicgdGl0bGU9J01vbSBhbmQgRGFkJyB0ZXh0PSdNb20gYW5kIERhZCd9PC9jb2RlPjxiciAvPgogICAgICAgICAgICAgICAgICAgIDxjb2RlPntMeXRlYm94IGhyZWY9J3VwbG9hZHMvaW1hZ2VzL2ltYWdlLTIuanBnJyBncm91cD0ndmFjYXRpb24nIHRpdGxlPSdNeSBTaXN0ZXInIHRleHQ9J015IFNpc3Rlcid9PC9jb2RlPgogICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgIDxsaT48ZW0+U2xpZGVzaG93IEV4YW1wbGUgKHB1dCB0aGlzIGluIHlvdXIgcGFnZSBjb250ZW50KTo8L2VtPjxiciAvPgogICAgICAgICAgICAgICAgICAgIDxjb2RlPntMeXRlYm94IGhyZWY9J3VwbG9hZHMvaW1hZ2VzL2ltYWdlLTEuanBnJyBncm91cD0ndmFjYXRpb24nIGRpc3BsYXk9J3Nob3cnIHRpdGxlPSdNb20gYW5kIERhZCcgdGV4dD0nTW9tIGFuZCBEYWQnfTwvY29kZT48YnIgLz4KICAgICAgICAgICAgICAgICAgICA8Y29kZT57THl0ZWJveCBocmVmPSd1cGxvYWRzL2ltYWdlcy9pbWFnZS0yLmpwZycgZ3JvdXA9J3ZhY2F0aW9uJyBkaXNwbGF5PSdzaG93JyB0aXRsZT0nTXkgU2lzdGVyJyB0ZXh0PSdNeSBTaXN0ZXInfTwvY29kZT4KICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgIDwvdWw+CiAgICAgICAgPC9saT4KICAgICAgICA8bGk+PHN0cm9uZz5IVE1MIENvbnRlbnQgRXhhbXBsZXM8L3N0cm9uZz4KICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgICAgPGxpPjxlbT5TaW5nbGUgRXhhbXBsZSAocHV0IHRoaXMgaW4geW91ciBwYWdlIGNvbnRlbnQpOjwvZW0+PGJyIC8+CiAgICAgICAgICAgICAgICAgICAgICAgIDxjb2RlPntMeXRlYm94IGhyZWY9J2h0dHA6Ly93d3cuZ29vZ2xlLmNvbS8nIGRpc3BsYXk9J2ZyYW1lJyB0aXRsZT0nU2VhcmNoIEdvb2dsZScgdGV4dD0nR29vZ2xlIFNlYXJjaCd9PC9jb2RlPgogICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgIDxsaT48ZW0+R3JvdXBlZCBFeGFtcGxlIChwdXQgdGhpcyBpbiB5b3VyIHBhZ2UgY29udGVudCk6PC9lbT48YnIgLz4KICAgICAgICAgICAgICAgICAgICA8Y29kZT57THl0ZWJveCBocmVmPSdjYXRhbG9nMS5odG0nIGdyb3VwPSdjYXRhbG9nJyBkaXNwbGF5PSdmcmFtZScgdGl0bGU9J1N1bW1lciBDYXRhbG9nJyB0ZXh0PSdTdW1tZXIgQ2F0YWxvZyd9PC9jb2RlPjxiciAvPgogICAgICAgICAgICAgICAgICAgIDxjb2RlPntMeXRlYm94IGhyZWY9J2NhdGFsb2cyLmh0bScgZ3JvdXA9J2NhdGFsb2cnIGRpc3BsYXk9J2ZyYW1lJyB0aXRsZT0nV2ludGVyIENhdGFsb2cnIHRleHQ9J1dpbnRlciBDYXRhbG9nJ308L2NvZGU+CiAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICA8L3VsPgogICAgICAgIDwvbGk+CiAgICAgICAgPGxpPjxzdHJvbmc+VXNlIHRodW1ibmFpbHM8L3N0cm9uZz4KICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgICAgPGxpPjxlbT5TaW5nbGUgSW1hZ2UgRXhhbXBsZSAocHV0IHRoaXMgaW4geW91ciBwYWdlIGNvbnRlbnQpOjwvZW0+PGJyIC8+CiAgICAgICAgICAgICAgICAgICAgPGNvZGU+e0x5dGVib3ggaHJlZj0ndXBsb2Fkcy9pbWFnZXMvaW1hZ2UtMS5qcGcnIHRpdGxlPSdJbWFnZSBEZXNjcmlwdGlvbicgdGV4dD0nSW1hZ2UgIzEnIHRodW1ic3JjPSd1cGxvYWRzL2ltYWdlcy9pbWFnZS0xLXRodW1iLmpwZycgYWx0PSdJbWFnZSAjMSd9PC9jb2RlPgogICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgIDxsaT48ZW0+R3JvdXBlZCBJbWFnZXMgRXhhbXBsZSAocHV0IHRoaXMgaW4geW91ciBwYWdlIGNvbnRlbnQpOjwvZW0+PGJyIC8+CiAgICAgICAgICAgICAgICAgICAgPGNvZGU+e0x5dGVib3ggaHJlZj0ndXBsb2Fkcy9pbWFnZXMvaW1hZ2UtMS5qcGcnIGdyb3VwPSd2YWNhdGlvbicgdGl0bGU9J01vbSBhbmQgRGFkJyB0ZXh0PSdNb20gYW5kIERhZCcgdGh1bWJzcmM9J3VwbG9hZHMvaW1hZ2VzL2ltYWdlLTEtdGh1bWIuanBnJyB0aHVtYmFsdD0nTW9tIGFuZCBEYWQnfTwvY29kZT48YnIgLz4KICAgICAgICAgICAgICAgICAgICA8Y29kZT57THl0ZWJveCBocmVmPSd1cGxvYWRzL2ltYWdlcy9pbWFnZS0yLmpwZycgZ3JvdXA9J3ZhY2F0aW9uJyB0aXRsZT0nTXkgU2lzdGVyJyB0ZXh0PSdNeSBTaXN0ZXInIHRodW1ic3JjPSd1cGxvYWRzL2ltYWdlcy9pbWFnZS0yLXRodW1iLmpwZycgdGh1bWJhbHQ9J015IFNpc3Rlcid9PC9jb2RlPgogICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgIDxsaT48ZW0+U2xpZGVzaG93IEV4YW1wbGUgKHB1dCB0aGlzIGluIHlvdXIgcGFnZSBjb250ZW50KTo8L2VtPjxiciAvPgogICAgICAgICAgICAgICAgICAgIDxjb2RlPntMeXRlYm94IGhyZWY9J3VwbG9hZHMvaW1hZ2VzL2ltYWdlLTEuanBnJyBncm91cD0ndmFjYXRpb24nIGRpc3BsYXk9J3Nob3cnIHRpdGxlPSdNb20gYW5kIERhZCcgdGV4dD0nTW9tIGFuZCBEYWQnfTwvY29kZT48YnIgLz4KICAgICAgICAgICAgICAgICAgICA8Y29kZT57THl0ZWJveCBocmVmPSd1cGxvYWRzL2ltYWdlcy9pbWFnZS0yLmpwZycgZ3JvdXA9J3ZhY2F0aW9uJyBkaXNwbGF5PSdzaG93JyB0aXRsZT0nTXkgU2lzdGVyJyB0ZXh0PSdNeSBTaXN0ZXInfTwvY29kZT4KICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgIDwvdWw+CiAgICAgICAgPC9saT4KICAgICAgICA8bGk+PHN0cm9uZz5TZXQgYWRkaXRpb25hbCBwYXJhbWV0ZXJzIGZvciB0aGUgTHl0ZWJveCBqYXZhc2NyaXB0PC9zdHJvbmc+CiAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICAgIDxsaT48ZW0+U2luZ2xlIEV4YW1wbGUgKHB1dCB0aGlzIGluIHlvdXIgcGFnZSBjb250ZW50KTo8L2VtPjxiciAvPgogICAgICAgICAgICAgICAgICAgIDxjb2RlPntMeXRlYm94IGhyZWY9J3VwbG9hZHMvaW1hZ2VzL2ltYWdlLTEuanBnJyB0aGVtZT0nYmx1ZSd9PC9jb2RlPgogICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgIDxsaT48ZW0+R3JvdXBlZCBFeGFtcGxlIChwdXQgdGhpcyBpbiB5b3VyIHBhZ2UgY29udGVudCk6PC9lbT48YnIgLz4KICAgICAgICAgICAgICAgICAgICA8Y29kZT57THl0ZWJveCBocmVmPSd1cGxvYWRzL2ltYWdlcy9pbWFnZS0xLmpwZycgZ3JvdXA9J3ZhY2F0aW9uJyBkaXNwbGF5PSdzaG93JyBhdXRvRW5kPScwJ308L2NvZGU+PGJyIC8+CiAgICAgICAgICAgICAgICAgICAgPGNvZGU+e0x5dGVib3ggaHJlZj0ndXBsb2Fkcy9pbWFnZXMvaW1hZ2UtMi5qcGcnIGdyb3VwPSd2YWNhdGlvbicgZGlzcGxheT0nc2hvdyd9PC9jb2RlPgogICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgPC91bD4KICAgICAgICA8L2xpPgogICAgPC9vbD4KICAgIDxjaXRlPihEZXNjcmlwdGlvbiBpcyB0YWtlbiBmcm9tIHRoZSA8YSBocmVmPSJodHRwOi8vZG9sZW0uY29tL2x5dGVib3gvIj5MeXRlYm94IGhvbWVwYWdlPC9hPi4pPC9jaXRlPgogICAgPGgzPlN1cHBvcnQ8L2gzPgogICAgPHA+UGxlYXNlIHJlYWQgdGhlIHRleHQgb2YgdGhlIGxpY2Vuc2UgaW5zaWRlIHRoZSBzb3VyY2UgY29kZSBmb3IgdGhlIGZ1bGwgZGlzY2xhaW1lci48L3A+CiAgICA8cD5Gb3IgYWRkaXRpb25hbCBoZWxwIHlvdSBjYW4gYWxzbyB0cnkgdG8gYXNrIGEgcXVlc3Rpb24gaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZy8iPkNNU01TIGZvcnVtPC9hPi48L3A+CiAgICA8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4KICAgIDx1bD4KICAgICAgICA8bGk+PHN0cm9uZz5MeXRlYm94IENNU01TIG1vZHVsZTwvc3Ryb25nPgogICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICA8bGk+Q29weXJpZ2h0IMKpIDIwMDgsIENhcnN0ZW4gV2llZG1hbm4gJmx0OzxhIGhyZWY9Im1haWx0bzpjYXJzdGVuX3N0dGd0QGdteC5kZSI+Y2Fyc3Rlbl9zdHRndEBnbXguZGU8L2E+Jmd0Oy4gQWxsIHJpZ2h0cyByZXNlcnZlZC48L2xpPgogICAgICAgICAgICAgICAgPGxpPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmZyZWVic2Qub3JnL2NvcHlyaWdodC9mcmVlYnNkLWxpY2Vuc2UuaHRtbCI+RnJlZUJTRCBMaWNlbnNlPC9hPi4gWW91IG11c3QgYWdyZWUgdG8gdGhpcyBsaWNlbnNlIGJlZm9yZSB1c2luZyB0aGUgbW9kdWxlLjwvbGk+CiAgICAgICAgICAgIDwvdWw+CiAgICAgICAgPC9saT4KICAgICAgICA8bGk+PHN0cm9uZz5MeXRlYm94IEphdmFTY3JpcHQgY2xhc3M8L3N0cm9uZz4KICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgICAgPGxpPkF1dGhvcjogTWFya3VzIEYuIEhheTwvbGk+CiAgICAgICAgICAgICAgICA8bGk+V2Vic2l0ZTogPGEgaHJlZj0iaHR0cDovL2RvbGVtLmNvbS9seXRlYm94LyI+aHR0cDovL2RvbGVtLmNvbS9seXRlYm94LzwvYT48L2xpPgogICAgICAgICAgICAgICAgPGxpPkxpY2Vuc2U6IDxhIGhyZWY9Imh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LzMuMC8iPkNyZWF0aXZlIENvbW1vbnMgQXR0cmlidXRpb24gMy4wIExpY2Vuc2U8L2E+PC9saT4KICAgICAgICAgICAgPC91bD4KICAgICAgICA8L2xpPgogICAgPC91bD4KRU9UOwokbGFuZ1snaGVscF9ocmVmJ10gICAgICAgICAgICAgID0gJ3RoaXMgYXR0cmlidXRlIGluZGljYXRlcyB0aGUgVVJJIHRvIGJlIGxvYWRlZCB3aGVuIHRoZSBoeXBlcmxpbmsgaXMgYWN0aXZhdGVkJzsKJGxhbmdbJ2hlbHBfZGlzcGxheSddICAgICAgICAgICA9ICdoeXBlcmxpbmsocykgYXJlIHNob3dlZCBhcyBib3gsIHNob3cgb3IgZnJhbWUnOwokbGFuZ1snaGVscF9ncm91cCddICAgICAgICAgICAgID0gJ2lmIHlvdSB3YW50IGdyb3VwIDIgb3IgbW9yZSBoeXBlcmxpbmssIGdpdmUgdGhlIGdyb3VwIGEgbmFtZSc7CiRsYW5nWydoZWxwX2ZyYW1lYXR0ciddICAgICAgICAgPSAnY29udHJvbHMgdGhlIHdpZHRoLCBoZWlnaHQgYW5kIHNjcm9sbGluZyBvZiB0aGUgd2luZG93JzsKJGxhbmdbJ2hlbHBfdGl0bGUnXSAgICAgICAgICAgICA9ICd0aGlzIGF0dHJpYnV0ZSBzdWdnZXN0cyBhIHRpdGxlIChhZHZpc29yeSBvbmx5KSBmb3IgdGhlIGRlc3RpbmF0aW9uIHJlc291cmNlJzsKJGxhbmdbJ2hlbHBfZXh0cmEnXSAgICAgICAgICAgICA9ICdhbnkgZXh0cmEgYXR0cmlidXRlKHMpIHlvdSB3YW50IGdpdmUgdGhlIEEgZWxlbWVudCc7CiRsYW5nWydoZWxwX3RleHQnXSAgICAgICAgICAgICAgPSAndGV4dCBmb3IgdGhlIGh5cGVybGluayc7CiRsYW5nWydoZWxwX3RodW1ic3JjJ10gICAgICAgICAgPSAnaW5kaWNhdGVzIHRoZSBVUkkgdG8gcmVmZXJlbmNlIHRoZSB0aHVtYm5haWwnOwokbGFuZ1snaGVscF90aHVtYmFsdCddICAgICAgICAgID0gJ3RoaXMgaXMgdGV4dCB0byBiZSBkaXNwbGF5ZWQgaW4gcGxhY2Ugb2YgYW4gaW1hZ2UnOwokbGFuZ1snaGVscF90aHVtYmV4dHJhJ10gICAgICAgID0gJ2FueSBleHRyYSBhdHRyaWJ1dGUocykgeW91IHdhbnQgZ2l2ZSB0aGUgSU1HIGVsZW1lbnQnOwokbGFuZ1snaGVscF90aGVtZSddICAgICAgICAgICAgID0gJ3RoZW1lczogZ3JleSAoZGVmYXVsdCksIHJlZCwgZ3JlZW4sIGJsdWUsIGdvbGQnOwokbGFuZ1snaGVscF9oaWRlRmxhc2gnXSAgICAgICAgID0gJ2NvbnRyb2xzIHdoZXRoZXIgb3Igbm90IEZsYXNoIG9iamVjdHMgc2hvdWxkIGJlIGhpZGRlbic7CiRsYW5nWydoZWxwX291dGVyQm9yZGVyJ10gICAgICAgPSAnY29udHJvbHMgd2hldGhlciB0byBzaG93IHRoZSBvdXRlciBncmV5IChvciB0aGVtZSkgYm9yZGVyJzsKJGxhbmdbJ2hlbHBfcmVzaXplU3BlZWQnXSAgICAgICA9ICdjb250cm9scyB0aGUgc3BlZWQgb2YgdGhlIGltYWdlIHJlc2l6aW5nICgxPXNsb3dlc3QgYW5kIDEwPWZhc3Rlc3QpJzsKJGxhbmdbJ2hlbHBfbWF4T3BhY2l0eSddICAgICAgICA9ICdoaWdoZXIgb3BhY2l0eSA9IGRhcmtlciBvdmVybGF5LCBsb3dlciBvcGFjaXR5ID0gbGlnaHRlciBvdmVybGF5JzsKJGxhbmdbJ2hlbHBfbmF2VHlwZSddICAgICAgICAgICA9ICcxID0gJnF1b3Q7UHJldi9OZXh0JnF1b3Q7IGJ1dHRvbnMgb24gdG9wIGxlZnQgYW5kIGxlZnQgKGRlZmF1bHQpLCAyID0gJnF1b3Q7Jmx0OyZsdDsgcHJldiB8IG5leHQgJmd0OyZndDsmcXVvdDsgbGlua3MgbmV4dCB0byBpbWFnZSBudW1iZXInOwokbGFuZ1snaGVscF9hdXRvUmVzaXplJ10gICAgICAgID0gJ2NvbnRyb2xzIHdoZXRoZXIgb3Igbm90IGltYWdlcyBzaG91bGQgYmUgcmVzaXplZCBpZiBsYXJnZXIgdGhhbiB0aGUgYnJvd3NlciB3aW5kb3cgZGltZW5zaW9ucyc7CiRsYW5nWydoZWxwX2RvQW5pbWF0aW9ucyddICAgICAgPSAnY29udHJvbHMgd2hldGhlciBvciBub3QgJnF1b3Q7YW5pbWF0ZSZxdW90OyBMeXRlYm94LCBpLmUuIHJlc2l6ZSB0cmFuc2l0aW9uIGJldHdlZW4gaW1hZ2VzLCBmYWRlIGluL291dCBlZmZlY3RzLCBldGMuJzsKJGxhbmdbJ2hlbHBfYm9yZGVyU2l6ZSddICAgICAgICA9ICdpZiB5b3UgYWRqdXN0IHRoZSBwYWRkaW5nIGluIHRoZSBDU1MsIHlvdSB3aWxsIG5lZWQgdG8gdXBkYXRlIHRoaXMgdmFyaWFibGUgLS0gb3RoZXJ3aXNlLCBsZWF2ZSB0aGlzIGFsb25lLi4uJzsKJGxhbmdbJ2hlbHBfc2xpZGVJbnRlcnZhbCddICAgICA9ICdDaGFuZ2UgdmFsdWUgKG1pbGxpc2Vjb25kcykgdG8gaW5jcmVhc2UvZGVjcmVhc2UgdGhlIHRpbWUgYmV0d2VlbiAmcXVvdDtzbGlkZXMmcXVvdDsgKDEwMDAwID0gMTAgc2Vjb25kcyknOwokbGFuZ1snaGVscF9zaG93TmF2aWdhdGlvbiddICAgID0gJzEgdG8gZGlzcGxheSBOZXh0L1ByZXYgYnV0dG9ucy90ZXh0IGR1cmluZyBzbGlkZXNob3csIDAgdG8gaGlkZSc7CiRsYW5nWydoZWxwX3Nob3dDbG9zZSddICAgICAgICAgPSAnMSB0byBkaXNwbGF5IHRoZSBDbG9zZSBidXR0b24sIDAgdG8gaGlkZSc7CiRsYW5nWydoZWxwX3Nob3dEZXRhaWxzJ10gICAgICAgPSAnMSB0byBkaXNwbGF5IGltYWdlIGRldGFpbHMgKGNhcHRpb24sIGNvdW50KSwgMCB0byBoaWRlJzsKJGxhbmdbJ2hlbHBfc2hvd1BsYXlQYXVzZSddICAgICA9ICcxIHRvIGRpc3BsYXkgcGF1c2UvcGxheSBidXR0b25zIG5leHQgdG8gY2xvc2UgYnV0dG9uLCAwIHRvIGhpZGUnOwokbGFuZ1snaGVscF9hdXRvRW5kJ10gICAgICAgICAgID0gJzEgdG8gYXV0b21hdGljYWxseSBjbG9zZSBMeXRlYm94IGFmdGVyIHRoZSBsYXN0IGltYWdlIGlzIHJlYWNoZWQsIDAgdG8ga2VlcCBvcGVuJzsKJGxhbmdbJ2hlbHBfcGF1c2VPbk5leHRDbGljayddICA9ICcxIHRvIHBhdXNlIHRoZSBzbGlkZXNob3cgd2hlbiB0aGUgJnF1b3Q7TmV4dCZxdW90OyBidXR0b24gaXMgY2xpY2tlZCc7CiRsYW5nWydoZWxwX3BhdXNlT25QcmV2Q2xpY2snXSAgPSAnMSB0byBwYXVzZSB0aGUgc2xpZGVzaG93IHdoZW4gdGhlICZxdW90O1ByZXYmcXVvdDsgYnV0dG9uIGlzIGNsaWNrZWQnOwokbGFuZ1snaGVscF9jb25maWcnXSAgICAgICAgICAgID0gJ2ludGVybmFsIHVzYWdlJzsKCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/Lytebox.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qIHZpbTogc2V0IGV4cGFuZHRhYiB0YWJzdG9wPTQgc2hpZnR3aWR0aD00IHNvZnR0YWJzdG9wPTQ6ICovCgovKioKICogTHl0ZWJveCBtb2R1bGUgZm9yIENNU01TIC0gQSBzaW1wbGUgd3JhcHBlciB0byB0aGUgTHl0ZWJveCBKYXZhU2NyaXB0IGNsYXNzLgogKgogKiBQSFAgdmVyc2lvbnMgNCBhbmQgNQogKgogKiBMSUNFTlNFOgogKiBDb3B5cmlnaHQgKGMpIDIwMDgsIENhcnN0ZW4gV2llZG1hbm4KICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KICoKICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwogKiBhcmUgbWV0OgogKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CiAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KICoKICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBVVRIT1IgT1IgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCiAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCiAqIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBVVRIT1IgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQogKiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAogKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUwogKiBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKICogSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKICogTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQogKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCiAqIFNVQ0ggREFNQUdFLgogKgogKiBAY2F0ZWdvcnkgICBNb2R1bGVzCiAqIEBwYWNrYWdlICAgIEx5dGVib3gKICogQGF1dGhvciAgICAgQ2Fyc3RlbiBXaWVkbWFubiA8Y2Fyc3Rlbl9zdHRndEBnbXguZGU+CiAqIEBjb3B5cmlnaHQgIDIwMDggQ2Fyc3RlbiBXaWVkbWFubgogKiBAbGljZW5zZSAgICBodHRwOi8vd3d3LmZyZWVic2Qub3JnL2NvcHlyaWdodC9mcmVlYnNkLWxpY2Vuc2UuaHRtbCBGcmVlQlNEIExpY2Vuc2UKICogQHZlcnNpb24gICAgU1ZOOiAkSWQ6IEx5dGVib3gubW9kdWxlLnBocCAxNCAyMDA4LTA2LTEwIDEwOjAyOjEwWiB3aWVkbWFubiAkCiAqIEBsaW5rICAgICAgIGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvTHl0ZWJveAogKi8KCmlmICghaXNzZXQoJGdDbXMpKSB7CiAgICBleGl0Owp9CgovKioKICogTHl0ZWJveCBtb2R1bGUgZm9yIENNU01TIC0gQSBzaW1wbGUgd3JhcHBlciB0byB0aGUgTHl0ZWJveCBKYXZhU2NyaXB0IGNsYXNzLgogKgogKiBAY2F0ZWdvcnkgICBNb2R1bGVzCiAqIEBwYWNrYWdlICAgIEx5dGVib3gKICogQGF1dGhvciAgICAgQ2Fyc3RlbiBXaWVkbWFubiA8Y2Fyc3Rlbl9zdHRndEBnbXguZGU+CiAqIEBsaWNlbnNlICAgIGh0dHA6Ly93d3cuZnJlZWJzZC5vcmcvY29weXJpZ2h0L2ZyZWVic2QtbGljZW5zZS5odG1sICBGcmVlQlNEIExpY2Vuc2UKICogQHZlcnNpb24gICAgUmVsZWFzZTogMC4yLjFiZXRhMQogKiBAbGluayAgICAgICBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL0x5dGVib3gKICogQHNlZSAgICAgICAgQ01TTW9kdWxlCiAqLwpjbGFzcyBMeXRlYm94IGV4dGVuZHMgQ01TTW9kdWxlCnsKCiAgICAvKioKICAgICAqIGhvdyBvZnRlbiBpcyBhcmUgc29tZSBtb2R1bGUgYWN0aW9uIGNhbGxlZD8KICAgICAqCiAgICAgKiBAc3RhdGljdmFyIGludAogICAgICogQGFjY2VzcyBwcm90ZWN0ZWQKICAgICAqLwogICAgdmFyICRjb3VudGNhbGxzOwoKICAgIC8qKgogICAgICogR2V0QWRtaW5EZXNjcmlwdGlvbigpCiAgICAgKgogICAgICogQHVzZXMgTGFuZygpCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyBhIGRlc2NyaXB0aW9uIG9mIHdoYXQgdGhlIGFkbWluIGxpbmsgZG9lcwogICAgICogQGFjY2VzcyBwdWJsaWMKICAgICAqLwogICAgZnVuY3Rpb24gR2V0QWRtaW5EZXNjcmlwdGlvbigpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5MYW5nKCdhZG1pbmRlc2NyaXB0aW9uJyk7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXRBdXRob3IoKQogICAgICoKICAgICAqIEByZXR1cm4gc3RyaW5nIHRoZSBuYW1lIG9mIHRoZSBhdXRob3IKICAgICAqIEBhY2Nlc3MgcHVibGljCiAgICAgKi8KICAgIGZ1bmN0aW9uIEdldEF1dGhvcigpCiAgICB7CiAgICAgICAgcmV0dXJuICdDYXJzdGVuIFdpZWRtYW5uJzsKICAgIH0KCiAgICAvKioKICAgICAqIEdldEF1dGhvckVtYWlsKCkKICAgICAqCiAgICAgKiBAcmV0dXJuIHN0cmluZyB0aGUgZW1haWwgYWRkcmVzcyBvZiB0aGUgYXV0aG9yCiAgICAgKiBAYWNjZXNzIHB1YmxpYwogICAgICovCiAgICBmdW5jdGlvbiBHZXRBdXRob3JFbWFpbCgpCiAgICB7CiAgICAgICAgcmV0dXJuICdjYXJzdGVuX3N0dGd0QGdteC5kZSc7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXRDaGFuZ2VMb2coKQogICAgICoKICAgICAqIEB1c2VzIExhbmcoKQogICAgICoKICAgICAqIEByZXR1cm4gc3RyaW5nIHRoZSBjaGFuZ2Vsb2cgZm9yIHRoZSBtb2R1bGUKICAgICAqIEBhY2Nlc3MgcHVibGljCiAgICAgKi8KICAgIGZ1bmN0aW9uIEdldENoYW5nZUxvZygpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5MYW5nKCdjaGFuZ2Vsb2cnKTsKICAgIH0KCiAgICAvKioKICAgICAqIEdldERlc2NyaXB0aW9uKCkKICAgICAqCiAgICAgKiBAdXNlcyBMYW5nKCkKICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nIGEgc2hvcnQgZGVzY3JpcHRpb24gb2YgdGhlIG1vZHVsZQogICAgICogQGFjY2VzcyBwdWJsaWMKICAgICAqLwogICAgZnVuY3Rpb24gR2V0RGVzY3JpcHRpb24oKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+TGFuZygnbW9kZGVzY3JpcHRpb24nKTsKICAgIH0KCiAgICAvKioKICAgICAqIEdldEhlbHAoKQogICAgICoKICAgICAqIEB1c2VzIExhbmcoKQogICAgICoKICAgICAqIEByZXR1cm4gc3RyaW5nIHRoZSBoZWxwIGZvciB0aGUgbW9kdWxlCiAgICAgKiBAYWNjZXNzIHB1YmxpYwogICAgICovCiAgICBmdW5jdGlvbiBHZXRIZWxwKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ2hlbHAnKTsKICAgIH0KCiAgICAvKioKICAgICAqIEdldE5hbWUoKQogICAgICoKICAgICAqIEByZXR1cm4gc3RyaW5nIHRoZSBuYW1lIG9mIHRoZSBtb2R1bGUKICAgICAqIEBhY2Nlc3MgcHVibGljCiAgICAgKi8KICAgIGZ1bmN0aW9uIEdldE5hbWUoKQogICAgewogICAgICAgIHJldHVybiAnTHl0ZWJveCc7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXRWZXJzaW9uKCkKICAgICAqCiAgICAgKiBAcmV0dXJuIHN0cmluZyB0aGUgdmVyc2lvbiBvZiB0aGUgbW9kdWxlCiAgICAgKiBAYWNjZXNzIHB1YmxpYwogICAgICovCiAgICBmdW5jdGlvbiBHZXRWZXJzaW9uKCkKICAgIHsKICAgICAgICByZXR1cm4gJzAuMi4xYmV0YTEnOwogICAgfQoKICAgIC8qKgogICAgICogSW5zdGFsbFBvc3RNZXNzYWdlKCkKICAgICAqCiAgICAgKiBAdXNlcyBMYW5nKCkKICAgICAqCiAgICAgKiBAcmV0dXJuIHN0cmluZyBhIG1lc3NhZ2UgYWZ0ZXIgYSBzdWNjZXNzZnVsIGluc3RhbGxhdGlvbiBvZiB0aGUgbW9kdWxlCiAgICAgKiBAYWNjZXNzIHB1YmxpYwogICAgICovCiAgICBmdW5jdGlvbiBJbnN0YWxsUG9zdE1lc3NhZ2UoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+TGFuZygncG9zdGluc3RhbGwnKTsKICAgIH0KCiAgICAvKioKICAgICAqIElzUGx1Z2luTW9kdWxlKCkKICAgICAqCiAgICAgKiBAcmV0dXJuIGJvb2xlYW4gdHJ1ZSBpZiB0aGUgbW9kdWxlIHNob3VsZCBiZSB0cmVhdGVkIGFzIGEgcGx1Z2luIG1vZHVsZQogICAgICogQGFjY2VzcyBwdWJsaWMKICAgICAqLwogICAgZnVuY3Rpb24gSXNQbHVnaW5Nb2R1bGUoKQogICAgewogICAgICAgIHJldHVybiB0cnVlOwogICAgfQoKICAgIC8qKgogICAgICogTWF4aW11bUNNU1ZlcnNpb24oKQogICAgICoKICAgICAqIEByZXR1cm4gc3RyaW5nIHRoZSBtYXhpbXVtIHZlcnNpb24gbmVjZXNzYXJ5IHRvIHJ1biB0aGlzIHZlcnNpb24gb2YgdGhlIG1vZHVsZQogICAgICogQGFjY2VzcyBwdWJsaWMKICAgICAqLwogICAgZnVuY3Rpb24gTWF4aW11bUNNU1ZlcnNpb24oKQogICAgewogICAgICAgIHJldHVybiAnMS45LjknOwogICAgfQoKICAgIC8qKgogICAgICogTWluaW11bUNNU1ZlcnNpb24oKQogICAgICoKICAgICAqIEByZXR1cm4gc3RyaW5nIHRoZSBtaW5pbXVtIHZlcnNpb24gbmVjZXNzYXJ5IHRvIHJ1biB0aGlzIHZlcnNpb24gb2YgdGhlIG1vZHVsZQogICAgICogQGFjY2VzcyBwdWJsaWMKICAgICAqLwogICAgZnVuY3Rpb24gTWluaW11bUNNU1ZlcnNpb24oKQogICAgewogICAgICAgIHJldHVybiAnMS4yLjAnOwogICAgfQoKICAgIC8qKgogICAgICogVW5pbnN0YWxsUG9zdE1lc3NhZ2UoKQogICAgICoKICAgICAqIEB1c2VzIExhbmcoKQogICAgICoKICAgICAqIEByZXR1cm4gc3RyaW5nIGEgbWVzc2FnZSBhZnRlciBhIHN1Y2Nlc3NmdWwgdW5pbnN0YWxsIG9mIHRoZSBtb2R1bGUKICAgICAqIEBhY2Nlc3MgcHVibGljCiAgICAgKi8KICAgIGZ1bmN0aW9uIFVuaW5zdGFsbFBvc3RNZXNzYWdlKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ3Bvc3R1bmluc3RhbGwnKTsKICAgIH0KCiAgICAvKioKICAgICAqIFVuaW5zdGFsbFByZU1lc3NhZ2UoKQogICAgICoKICAgICAqIEB1c2VzIExhbmcoKQogICAgICoKICAgICAqIEByZXR1cm4gc3RyaW5nIGEgbWVzc2FnZSBiZWZvcmUgZG9pbmcgYW4gdW5pbnN0YWxsCiAgICAgKiBAYWNjZXNzIHB1YmxpYwogICAgICovCiAgICBmdW5jdGlvbiBVbmluc3RhbGxQcmVNZXNzYWdlKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ3JlYWxseV91bmluc3RhbGwnKTsKICAgIH0KCiAgICAvKioKICAgICAqIEx5dGVib3goKQogICAgICoKICAgICAqIEBzdGF0aWN2YXIgaW50IGNvdW50Y2FsbHMgIGhvdyBvZnRlbiBhcmUgc29tZSBtb2R1bGUgYWN0aW9uIGNhbGxlZD8KICAgICAqCiAgICAgKiBAdXNlcyBDTVNNb2R1bGUoKQogICAgICoKICAgICAqIEByZXR1cm4gdm9pZAogICAgICogQGFjY2VzcyBwdWJsaWMKICAgICAqLwogICAgZnVuY3Rpb24gTHl0ZWJveCgpCiAgICB7CiAgICAgICAgcGFyZW50OjpDTVNNb2R1bGUoKTsKCiAgICAgICAgc3RhdGljICRjb3VudGNhbGxzID0gMDsKICAgICAgICAkdGhpcy0+Y291bnRjYWxscyA9JiAkY291bnRjYWxsczsKICAgIH0KCiAgICAvKioKICAgICAqIFNldFBhcmFtZXRlcnMoKQogICAgICoKICAgICAqIEB1c2VzIFJlZ2lzdGVyTW9kdWxlUGx1Z2luKCkKICAgICAqIEB1c2VzIFJlc3RyaWN0VW5rbm93blBhcmFtcygpCiAgICAgKiBAdXNlcyBDcmVhdGVQYXJhbWV0ZXIoKQogICAgICogQHVzZXMgU2V0UGFyYW1ldGVyVHlwZSgpCiAgICAgKiBAdXNlcyBMYW5nKCkKICAgICAqIEB1c2VzIENMRUFOX1NUUklORwogICAgICogQHVzZXMgQ0xFQU5fSU5UCiAgICAgKiBAdXNlcyBDTEVBTl9OT05FCiAgICAgKgogICAgICogQHJldHVybiB2b2lkCiAgICAgKiBAYWNjZXNzIHB1YmxpYwogICAgICovCiAgICBmdW5jdGlvbiBTZXRQYXJhbWV0ZXJzKCkKICAgIHsKICAgICAgICAkdGhpcy0+UmVnaXN0ZXJNb2R1bGVQbHVnaW4oKTsKICAgICAgICAkdGhpcy0+UmVzdHJpY3RVbmtub3duUGFyYW1zKCk7CgoKICAgICAgICAvKgogICAgICAgICAqIHNldHVwIG1vZHVsZSBwYXJhbWV0ZXJzCiAgICAgICAgICovCiAgICAgICAgLyogVGFnIFBhcmFtZXRlcnMgKi8KICAgICAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdocmVmJywgJycsICR0aGlzLT5MYW5nKCdoZWxwX2hyZWYnKSwgZmFsc2UpOwogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdocmVmJywgQ0xFQU5fU1RSSU5HKTsKICAgICAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdkaXNwbGF5JywgJ2JveCcsICR0aGlzLT5MYW5nKCdoZWxwX2Rpc3BsYXknKSwgdHJ1ZSk7CiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2Rpc3BsYXknLCBDTEVBTl9TVFJJTkcpOwogICAgICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2dyb3VwJywgJycsICR0aGlzLT5MYW5nKCdoZWxwX2dyb3VwJyksIHRydWUpOwogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdncm91cCcsIENMRUFOX1NUUklORyk7CiAgICAgICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignZnJhbWVhdHRyJywgJ3dpZHRoOiA0MDBweDsgaGVpZ2h0OiA0MDBweDsgc2Nyb2xsaW5nOiBhdXRvOycsICR0aGlzLT5MYW5nKCdoZWxwX2ZyYW1lYXR0cicpLCB0cnVlKTsKICAgICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnZnJhbWVhdHRyJywgQ0xFQU5fU1RSSU5HKTsKICAgICAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCd0aXRsZScsICdiYXNlbmFtZSgkaHJlZiknLCAkdGhpcy0+TGFuZygnaGVscF90aXRsZScpLCB0cnVlKTsKICAgICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgndGl0bGUnLCBDTEVBTl9TVFJJTkcpOwogICAgICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2V4dHJhJywgJycsICR0aGlzLT5MYW5nKCdoZWxwX2V4dHJhJyksIHRydWUpOwogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdleHRyYScsIENMRUFOX05PTkUpOwogICAgICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ3RleHQnLCAnYmFzZW5hbWUoJGhyZWYpJywgJHRoaXMtPkxhbmcoJ2hlbHBfdGV4dCcpLCB0cnVlKTsKICAgICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgndGV4dCcsIENMRUFOX1NUUklORyk7CiAgICAgICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcigndGh1bWJzcmMnLCAnJywgJHRoaXMtPkxhbmcoJ2hlbHBfdGh1bWJzcmMnKSwgdHJ1ZSk7CiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3RodW1ic3JjJywgQ0xFQU5fU1RSSU5HKTsKICAgICAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCd0aHVtYmFsdCcsICdiYXNlbmFtZSgkdGh1bWJzcmMpJywgJHRoaXMtPkxhbmcoJ2hlbHBfdGh1bWJhbHQnKSwgdHJ1ZSk7CiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3RodW1iYWx0JywgQ0xFQU5fU1RSSU5HKTsKICAgICAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCd0aHVtYmV4dHJhJywgJycsICR0aGlzLT5MYW5nKCdoZWxwX3RodW1iZXh0cmEnKSwgdHJ1ZSk7CiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3RodW1iZXh0cmEnLCBDTEVBTl9OT05FKTsKCiAgICAgICAgLyogTHl0ZWJveCBHbG9iYWwgQ29uZmlndXJhdGlvbiAqLwogICAgICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ3RoZW1lJywgJ2dyZXknLCAkdGhpcy0+TGFuZygnaGVscF90aGVtZScpLCB0cnVlKTsKICAgICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgndGhlbWUnLCBDTEVBTl9TVFJJTkcpOwogICAgICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2hpZGVGbGFzaCcsIDEsICR0aGlzLT5MYW5nKCdoZWxwX2hpZGVGbGFzaCcpLCB0cnVlKTsKICAgICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnaGlkZUZsYXNoJywgQ0xFQU5fSU5UKTsKICAgICAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdvdXRlckJvcmRlcicsIDEsICR0aGlzLT5MYW5nKCdoZWxwX291dGVyQm9yZGVyJyksIHRydWUpOwogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdvdXRlckJvcmRlcicsIENMRUFOX0lOVCk7CiAgICAgICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcigncmVzaXplU3BlZWQnLCA4LCAkdGhpcy0+TGFuZygnaGVscF9yZXNpemVTcGVlZCcpLCB0cnVlKTsKICAgICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgncmVzaXplU3BlZWQnLCBDTEVBTl9JTlQpOwogICAgICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ21heE9wYWNpdHknLCA4MCwgJHRoaXMtPkxhbmcoJ2hlbHBfbWF4T3BhY2l0eScpLCB0cnVlKTsKICAgICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnbWF4T3BhY2l0eScsIENMRUFOX0lOVCk7CiAgICAgICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignbmF2VHlwZScsIDEsICR0aGlzLT5MYW5nKCdoZWxwX25hdlR5cGUnKSwgdHJ1ZSk7CiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ25hdlR5cGUnLCBDTEVBTl9JTlQpOwogICAgICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2F1dG9SZXNpemUnLCAxLCAkdGhpcy0+TGFuZygnaGVscF9hdXRvUmVzaXplJyksIHRydWUpOwogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdhdXRvUmVzaXplJywgQ0xFQU5fSU5UKTsKICAgICAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdkb0FuaW1hdGlvbnMnLCAxLCAkdGhpcy0+TGFuZygnaGVscF9kb0FuaW1hdGlvbnMnKSwgdHJ1ZSk7CiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2RvQW5pbWF0aW9ucycsIENMRUFOX0lOVCk7CiAgICAgICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignYm9yZGVyU2l6ZScsIDEyLCAkdGhpcy0+TGFuZygnaGVscF9ib3JkZXJTaXplJyksIHRydWUpOwogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdib3JkZXJTaXplJywgQ0xFQU5fSU5UKTsKCiAgICAgICAgLyogTHl0ZWJveCBTbGlkZXNob3cgT3B0aW9ucyAqLwogICAgICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ3NsaWRlSW50ZXJ2YWwnLCA0MDAwLCAkdGhpcy0+TGFuZygnaGVscF9zbGlkZUludGVydmFsJyksIHRydWUpOwogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdzbGlkZUludGVydmFsJywgQ0xFQU5fSU5UKTsKICAgICAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdzaG93TmF2aWdhdGlvbicsIDEsICR0aGlzLT5MYW5nKCdoZWxwX3Nob3dOYXZpZ2F0aW9uJyksIHRydWUpOwogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdzaG93TmF2aWdhdGlvbicsIENMRUFOX0lOVCk7CiAgICAgICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignc2hvd0Nsb3NlJywgMSwgJHRoaXMtPkxhbmcoJ2hlbHBfc2hvd0Nsb3NlJyksIHRydWUpOwogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdzaG93Q2xvc2UnLCBDTEVBTl9JTlQpOwogICAgICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ3Nob3dEZXRhaWxzJywgMSwgJHRoaXMtPkxhbmcoJ2hlbHBfc2hvd0RldGFpbHMnKSwgdHJ1ZSk7CiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3Nob3dEZXRhaWxzJywgQ0xFQU5fSU5UKTsKICAgICAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdzaG93UGxheVBhdXNlJywgMSwgJHRoaXMtPkxhbmcoJ2hlbHBfc2hvd1BsYXlQYXVzZScpLCB0cnVlKTsKICAgICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnc2hvd1BsYXlQYXVzZScsIENMRUFOX0lOVCk7CiAgICAgICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignYXV0b0VuZCcsIDEsICR0aGlzLT5MYW5nKCdoZWxwX2F1dG9FbmQnKSwgdHJ1ZSk7CiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2F1dG9FbmQnLCBDTEVBTl9JTlQpOwogICAgICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ3BhdXNlT25OZXh0Q2xpY2snLCAwLCAkdGhpcy0+TGFuZygnaGVscF9wYXVzZU9uTmV4dENsaWNrJyksIHRydWUpOwogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdwYXVzZU9uTmV4dENsaWNrJywgQ0xFQU5fSU5UKTsKICAgICAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdwYXVzZU9uUHJldkNsaWNrJywgMSwgJHRoaXMtPkxhbmcoJ2hlbHBfcGF1c2VPblByZXZDbGljaycpLCB0cnVlKTsKICAgICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgncGF1c2VPblByZXZDbGljaycsIENMRUFOX0lOVCk7CgogICAgICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2NvbmZpZycsICR0aGlzLT5MYW5nKCdoZWxwX2NvbmZpZycpLCAnJywgdHJ1ZSk7CiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2NvbmZpZycsIENMRUFOX05PTkUpOwogICAgfQp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qIHZpbTogc2V0IGV4cGFuZHRhYiB0YWJzdG9wPTQgc2hpZnR3aWR0aD00IHNvZnR0YWJzdG9wPTQ6ICovCgovKioKICogTHl0ZWJveCBtb2R1bGUgZm9yIENNU01TIC0gQSBzaW1wbGUgd3JhcHBlciB0byB0aGUgTHl0ZWJveCBKYXZhU2NyaXB0IGNsYXNzLgogKgogKiBQSFAgdmVyc2lvbnMgNCBhbmQgNQogKgogKiBMSUNFTlNFOgogKiBDb3B5cmlnaHQgKGMpIDIwMDgsIENhcnN0ZW4gV2llZG1hbm4KICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KICoKICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwogKiBhcmUgbWV0OgogKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CiAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KICoKICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBVVRIT1IgT1IgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCiAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCiAqIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBVVRIT1IgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQogKiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAogKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUwogKiBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKICogSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKICogTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQogKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCiAqIFNVQ0ggREFNQUdFLgogKgogKiBAY2F0ZWdvcnkgICBNb2R1bGVzCiAqIEBwYWNrYWdlICAgIEx5dGVib3gKICogQGF1dGhvciAgICAgQ2Fyc3RlbiBXaWVkbWFubiA8Y2Fyc3Rlbl9zdHRndEBnbXguZGU+CiAqIEBjb3B5cmlnaHQgIDIwMDggQ2Fyc3RlbiBXaWVkbWFubgogKiBAbGljZW5zZSAgICBodHRwOi8vd3d3LmZyZWVic2Qub3JnL2NvcHlyaWdodC9mcmVlYnNkLWxpY2Vuc2UuaHRtbCBGcmVlQlNEIExpY2Vuc2UKICogQHZlcnNpb24gICAgU1ZOOiAkSWQ6IG1ldGhvZC5pbnN0YWxsLnBocCAxNCAyMDA4LTA2LTEwIDEwOjAyOjEwWiB3aWVkbWFubiAkCiAqIEBsaW5rICAgICAgIGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvbHl0ZWJveAogKi8KCmlmICghaXNzZXQoJGdDbXMpKSB7CiAgICBleGl0Owp9CgovKioKICogSW5zdGFsbHMgdGhlIEx5dGVib3ggbW9kdWxlLgogKgogKiBAY2F0ZWdvcnkgICBNb2R1bGVzCiAqIEBwYWNrYWdlICAgIEx5dGVib3gKICogQGF1dGhvciAgICAgQ2Fyc3RlbiBXaWVkbWFubiA8Y2Fyc3Rlbl9zdHRndEBnbXguZGU+CiAqIEBsaWNlbnNlICAgIGh0dHA6Ly93d3cuZnJlZWJzZC5vcmcvY29weXJpZ2h0L2ZyZWVic2QtbGljZW5zZS5odG1sICBGcmVlQlNEIExpY2Vuc2UKICogQHZlcnNpb24gICAgUmVsZWFzZTogMC4yLjFiZXRhMQogKiBAbGluayAgICAgICBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2x5dGVib3gKICogQHNlZSAgICAgICAgTHl0ZWJveAogKi8KY2xhc3MgTHl0ZWJveF9JbnN0YWxsIGV4dGVuZHMgTHl0ZWJveAp7CiAgICAvKioKICAgICAqIEx5dGVib3hfSW5zdGFsbCgpCiAgICAgKgogICAgICogQHBhcmFtIG9iamVjdCAmJGdDbXMgdGhlIGdDbXMgb2JqZWN0CiAgICAgKgogICAgICogQHVzZXMgTHl0ZWJveCgpCiAgICAgKgogICAgICogQHJldHVybiB2b2lkCiAgICAgKiBAYWNjZXNzIHB1YmxpYwogICAgICovCiAgICBmdW5jdGlvbiBMeXRlYm94X0luc3RhbGwoKQogICAgewogICAgICAgIHBhcmVudDo6THl0ZWJveCgpOwogICAgfQoKICAgIC8qKgogICAgICogR2V0U3R5bGVzaGVldCgpCiAgICAgKgogICAgICogQGF1dGhvciAgTWFya3VzIEYuIEhheQogICAgICogQGxpY2Vuc2UgaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnkvMy4wLyBDcmVhdGl2ZSBDb21tb25zIEF0dHJpYnV0aW9uIDMuMCBMaWNlbnNlCiAgICAgKiBAdmVyc2lvbiBSZWxlYXNlOiAzLjIyCiAgICAgKiBAbGluayAgICBodHRwOi8vZG9sZW0uY29tL2x5dGVib3gvCiAgICAgKgogICAgICogQHJldHVybiBzdHJpbmcgdGhlIHN0eWxlc2hlZXQgY29udGVudAogICAgICogQGFjY2VzcyBwcm90ZWN0ZWQKICAgICAqLwogICAgZnVuY3Rpb24gR2V0U3R5bGVzaGVldCgpCiAgICB7CiAgICAgICAgJHN0eWxlc2hlZXRjb250ZW50ID0gPDw8RU9UCiNsYk92ZXJsYXkgeyBwb3NpdGlvbjogZml4ZWQ7IHRvcDogMDsgbGVmdDogMDsgei1pbmRleDogOTk5OTg7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDUwMHB4OyB9CiAgICAjbGJPdmVybGF5LmdyZXkgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwOyB9CiAgICAjbGJPdmVybGF5LnJlZCB7IGJhY2tncm91bmQtY29sb3I6ICMzMzAwMDA7IH0KICAgICNsYk92ZXJsYXkuZ3JlZW4geyBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAzMzAwOyB9CiAgICAjbGJPdmVybGF5LmJsdWUgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjMDExRDUwOyB9CiAgICAjbGJPdmVybGF5LmdvbGQgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjNjY2NjAwOyB9CgojbGJNYWluIHsgcG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAwOyB3aWR0aDogMTAwJTsgei1pbmRleDogOTk5OTk7IHRleHQtYWxpZ246IGNlbnRlcjsgbGluZS1oZWlnaHQ6IDA7IH0KI2xiTWFpbiBhIGltZyB7IGJvcmRlcjogbm9uZTsgfQoKI2xiT3V0ZXJDb250YWluZXIgeyBwb3NpdGlvbjogcmVsYXRpdmU7IGJhY2tncm91bmQtY29sb3I6ICNmZmY7IHdpZHRoOiAyMDBweDsgaGVpZ2h0OiAyMDBweDsgbWFyZ2luOiAwIGF1dG87IH0KICAgICNsYk91dGVyQ29udGFpbmVyLmdyZXkgeyBib3JkZXI6IDNweCBzb2xpZCAjODg4ODg4OyB9CiAgICAjbGJPdXRlckNvbnRhaW5lci5yZWQgeyBib3JkZXI6IDNweCBzb2xpZCAjREQwMDAwOyB9CiAgICAjbGJPdXRlckNvbnRhaW5lci5ncmVlbiB7IGJvcmRlcjogM3B4IHNvbGlkICMwMEIwMDA7IH0KICAgICNsYk91dGVyQ29udGFpbmVyLmJsdWUgeyBib3JkZXI6IDNweCBzb2xpZCAjNUY4OUQ4OyB9CiAgICAjbGJPdXRlckNvbnRhaW5lci5nb2xkIHsgYm9yZGVyOiAzcHggc29saWQgI0IwQjAwMDsgfQoKI2xiRGV0YWlsc0NvbnRhaW5lciB7ICAgZm9udDogMTBweCBWZXJkYW5hLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7IGJhY2tncm91bmQtY29sb3I6ICNmZmY7IHdpZHRoOiAxMDAlOyBsaW5lLWhlaWdodDogMS40ZW07IG92ZXJmbG93OiBhdXRvOyBtYXJnaW46IDAgYXV0bzsgfQogICAgI2xiRGV0YWlsc0NvbnRhaW5lci5ncmV5IHsgYm9yZGVyOiAzcHggc29saWQgIzg4ODg4ODsgYm9yZGVyLXRvcDogbm9uZTsgfQogICAgI2xiRGV0YWlsc0NvbnRhaW5lci5yZWQgeyBib3JkZXI6IDNweCBzb2xpZCAjREQwMDAwOyBib3JkZXItdG9wOiBub25lOyB9CiAgICAjbGJEZXRhaWxzQ29udGFpbmVyLmdyZWVuIHsgYm9yZGVyOiAzcHggc29saWQgIzAwQjAwMDsgYm9yZGVyLXRvcDogbm9uZTsgfQogICAgI2xiRGV0YWlsc0NvbnRhaW5lci5ibHVlIHsgYm9yZGVyOiAzcHggc29saWQgIzVGODlEODsgYm9yZGVyLXRvcDogbm9uZTsgfQogICAgI2xiRGV0YWlsc0NvbnRhaW5lci5nb2xkIHsgYm9yZGVyOiAzcHggc29saWQgI0IwQjAwMDsgYm9yZGVyLXRvcDogbm9uZTsgfQoKI2xiSW1hZ2VDb250YWluZXIsICNsYklmcmFtZUNvbnRhaW5lciB7IHBhZGRpbmc6IDEwcHg7IH0KI2xiTG9hZGluZyB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiA0NSU7IGxlZnQ6IDAlOyBoZWlnaHQ6IDMycHg7IHdpZHRoOiAxMDAlOyB0ZXh0LWFsaWduOiBjZW50ZXI7IGxpbmUtaGVpZ2h0OiAwOyBiYWNrZ3JvdW5kOiB1cmwobW9kdWxlcy9MeXRlYm94L2ltYWdlcy9sb2FkaW5nLmdpZikgY2VudGVyIG5vLXJlcGVhdDsgfQoKI2xiSG92ZXJOYXYgeyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMDsgbGVmdDogMDsgaGVpZ2h0OiAxMDAlOyB3aWR0aDogMTAwJTsgei1pbmRleDogMTA7IH0KI2xiSW1hZ2VDb250YWluZXI+I2xiSG92ZXJOYXYgeyBsZWZ0OiAwOyB9CiNsYkhvdmVyTmF2IGEgeyBvdXRsaW5lOiBub25lOyB9CgojbGJQcmV2IHsgd2lkdGg6IDQ5JTsgaGVpZ2h0OiAxMDAlOyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCB1cmwobW9kdWxlcy9MeXRlYm94L2ltYWdlcy9ibGFuay5naWYpIG5vLXJlcGVhdDsgZGlzcGxheTogYmxvY2s7IGxlZnQ6IDA7IGZsb2F0OiBsZWZ0OyB9CiAgICAjbGJQcmV2LmdyZXk6aG92ZXIsICNsYlByZXYuZ3JleTp2aXNpdGVkOmhvdmVyIHsgYmFja2dyb3VuZDogdXJsKG1vZHVsZXMvTHl0ZWJveC9pbWFnZXMvcHJldl9ncmV5LmdpZikgbGVmdCAxNSUgbm8tcmVwZWF0OyB9CiAgICAjbGJQcmV2LnJlZDpob3ZlciwgI2xiUHJldi5yZWQ6dmlzaXRlZDpob3ZlciB7IGJhY2tncm91bmQ6IHVybChtb2R1bGVzL0x5dGVib3gvaW1hZ2VzL3ByZXZfcmVkLmdpZikgbGVmdCAxNSUgbm8tcmVwZWF0OyB9CiAgICAjbGJQcmV2LmdyZWVuOmhvdmVyLCAjbGJQcmV2LmdyZWVuOnZpc2l0ZWQ6aG92ZXIgeyBiYWNrZ3JvdW5kOiB1cmwobW9kdWxlcy9MeXRlYm94L2ltYWdlcy9wcmV2X2dyZWVuLmdpZikgbGVmdCAxNSUgbm8tcmVwZWF0OyB9CiAgICAjbGJQcmV2LmJsdWU6aG92ZXIsICNsYlByZXYuYmx1ZTp2aXNpdGVkOmhvdmVyIHsgYmFja2dyb3VuZDogdXJsKG1vZHVsZXMvTHl0ZWJveC9pbWFnZXMvcHJldl9ibHVlLmdpZikgbGVmdCAxNSUgbm8tcmVwZWF0OyB9CiAgICAjbGJQcmV2LmdvbGQ6aG92ZXIsICNsYlByZXYuZ29sZDp2aXNpdGVkOmhvdmVyIHsgYmFja2dyb3VuZDogdXJsKG1vZHVsZXMvTHl0ZWJveC9pbWFnZXMvcHJldl9nb2xkLmdpZikgbGVmdCAxNSUgbm8tcmVwZWF0OyB9CgojbGJOZXh0IHsgd2lkdGg6IDQ5JTsgaGVpZ2h0OiAxMDAlOyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCB1cmwobW9kdWxlcy9MeXRlYm94L2ltYWdlcy9ibGFuay5naWYpIG5vLXJlcGVhdDsgZGlzcGxheTogYmxvY2s7IHJpZ2h0OiAwOyBmbG9hdDogcmlnaHQ7IH0KICAgICNsYk5leHQuZ3JleTpob3ZlciwgI2xiTmV4dC5ncmV5OnZpc2l0ZWQ6aG92ZXIgeyBiYWNrZ3JvdW5kOiB1cmwobW9kdWxlcy9MeXRlYm94L2ltYWdlcy9uZXh0X2dyZXkuZ2lmKSByaWdodCAxNSUgbm8tcmVwZWF0OyB9CiAgICAjbGJOZXh0LnJlZDpob3ZlciwgI2xiTmV4dC5yZWQ6dmlzaXRlZDpob3ZlciB7IGJhY2tncm91bmQ6IHVybChtb2R1bGVzL0x5dGVib3gvaW1hZ2VzL25leHRfcmVkLmdpZikgcmlnaHQgMTUlIG5vLXJlcGVhdDsgfQogICAgI2xiTmV4dC5ncmVlbjpob3ZlciwgI2xiTmV4dC5ncmVlbjp2aXNpdGVkOmhvdmVyIHsgYmFja2dyb3VuZDogdXJsKG1vZHVsZXMvTHl0ZWJveC9pbWFnZXMvbmV4dF9ncmVlbi5naWYpIHJpZ2h0IDE1JSBuby1yZXBlYXQ7IH0KICAgICNsYk5leHQuYmx1ZTpob3ZlciwgI2xiTmV4dC5ibHVlOnZpc2l0ZWQ6aG92ZXIgeyBiYWNrZ3JvdW5kOiB1cmwobW9kdWxlcy9MeXRlYm94L2ltYWdlcy9uZXh0X2JsdWUuZ2lmKSByaWdodCAxNSUgbm8tcmVwZWF0OyB9CiAgICAjbGJOZXh0LmdvbGQ6aG92ZXIsICNsYk5leHQuZ29sZDp2aXNpdGVkOmhvdmVyIHsgYmFja2dyb3VuZDogdXJsKG1vZHVsZXMvTHl0ZWJveC9pbWFnZXMvbmV4dF9nb2xkLmdpZikgcmlnaHQgMTUlIG5vLXJlcGVhdDsgfQoKI2xiUHJldjIsICNsYk5leHQyIHsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyBmb250LXdlaWdodDogYm9sZDsgfQogICAgI2xiUHJldjIuZ3JleSwgI2xiTmV4dDIuZ3JleSwgI2xiU3BhY2VyLmdyZXkgeyBjb2xvcjogIzMzMzMzMzsgfQogICAgI2xiUHJldjIucmVkLCAjbGJOZXh0Mi5yZWQsICNsYlNwYWNlci5yZWQgeyBjb2xvcjogIzYyMDAwMDsgfQogICAgI2xiUHJldjIuZ3JlZW4sICNsYk5leHQyLmdyZWVuLCAjbGJTcGFjZXIuZ3JlZW4geyBjb2xvcjogIzAwMzMwMDsgfQogICAgI2xiUHJldjIuYmx1ZSwgI2xiTmV4dDIuYmx1ZSwgI2xiU3BhY2VyLmJsdWUgeyBjb2xvcjogIzAxMzc5RTsgfQogICAgI2xiUHJldjIuZ29sZCwgI2xiTmV4dDIuZ29sZCwgI2xiU3BhY2VyLmdvbGQgeyBjb2xvcjogIzY2NjYwMDsgfQoKI2xiUHJldjJfT2ZmLCAjbGJOZXh0Ml9PZmYgeyBmb250LXdlaWdodDogYm9sZDsgfQogICAgI2xiUHJldjJfT2ZmLmdyZXksICNsYk5leHQyX09mZi5ncmV5IHsgY29sb3I6ICNDQ0NDQ0M7IH0KICAgICNsYlByZXYyX09mZi5yZWQsICNsYk5leHQyX09mZi5yZWQgeyBjb2xvcjogI0ZGQ0NDQzsgfQogICAgI2xiUHJldjJfT2ZmLmdyZWVuLCAjbGJOZXh0Ml9PZmYuZ3JlZW4geyBjb2xvcjogIzgyRkY4MjsgfQogICAgI2xiUHJldjJfT2ZmLmJsdWUsICNsYk5leHQyX09mZi5ibHVlIHsgY29sb3I6ICNCN0NBRUU7IH0KICAgICNsYlByZXYyX09mZi5nb2xkLCAjbGJOZXh0Ml9PZmYuZ29sZCB7IGNvbG9yOiAjRTFFMTAwOyB9CgojbGJEZXRhaWxzRGF0YSB7IHBhZGRpbmc6IDAgMTBweDsgfQogICAgI2xiRGV0YWlsc0RhdGEuZ3JleSB7IGNvbG9yOiAjMzMzMzMzOyB9CiAgICAjbGJEZXRhaWxzRGF0YS5yZWQgeyBjb2xvcjogIzYyMDAwMDsgfQogICAgI2xiRGV0YWlsc0RhdGEuZ3JlZW4geyBjb2xvcjogIzAwMzMwMDsgfQogICAgI2xiRGV0YWlsc0RhdGEuYmx1ZSB7IGNvbG9yOiAjMDEzNzlFOyB9CiAgICAjbGJEZXRhaWxzRGF0YS5nb2xkIHsgY29sb3I6ICM2NjY2MDA7IH0KCiNsYkRldGFpbHMgeyB3aWR0aDogNjAlOyBmbG9hdDogbGVmdDsgdGV4dC1hbGlnbjogbGVmdDsgfQojbGJDYXB0aW9uIHsgZGlzcGxheTogYmxvY2s7IGZvbnQtd2VpZ2h0OiBib2xkOyB9CiNsYk51bWJlckRpc3BsYXkgeyBmbG9hdDogbGVmdDsgZGlzcGxheTogYmxvY2s7IHBhZGRpbmctYm90dG9tOiAxLjBlbTsgfQojbGJOYXZEaXNwbGF5IHsgZmxvYXQ6IGxlZnQ7IGRpc3BsYXk6IGJsb2NrOyBwYWRkaW5nLWJvdHRvbTogMS4wZW07IH0KCiNsYkNsb3NlIHsgd2lkdGg6IDY0cHg7IGhlaWdodDogMjhweDsgZmxvYXQ6IHJpZ2h0OyBtYXJnaW4tYm90dG9tOiAxcHg7IH0KICAgICNsYkNsb3NlLmdyZXkgeyBiYWNrZ3JvdW5kOiB1cmwobW9kdWxlcy9MeXRlYm94L2ltYWdlcy9jbG9zZV9ncmV5LnBuZykgbm8tcmVwZWF0OyB9CiAgICAjbGJDbG9zZS5yZWQgeyBiYWNrZ3JvdW5kOiB1cmwobW9kdWxlcy9MeXRlYm94L2ltYWdlcy9jbG9zZV9yZWQucG5nKSBuby1yZXBlYXQ7IH0KICAgICNsYkNsb3NlLmdyZWVuIHsgYmFja2dyb3VuZDogdXJsKG1vZHVsZXMvTHl0ZWJveC9pbWFnZXMvY2xvc2VfZ3JlZW4ucG5nKSBuby1yZXBlYXQ7IH0KICAgICNsYkNsb3NlLmJsdWUgeyBiYWNrZ3JvdW5kOiB1cmwobW9kdWxlcy9MeXRlYm94L2ltYWdlcy9jbG9zZV9ibHVlLnBuZykgbm8tcmVwZWF0OyB9CiAgICAjbGJDbG9zZS5nb2xkIHsgYmFja2dyb3VuZDogdXJsKG1vZHVsZXMvTHl0ZWJveC9pbWFnZXMvY2xvc2VfZ29sZC5wbmcpIG5vLXJlcGVhdDsgfQoKI2xiUGxheSB7IHdpZHRoOiA2NHB4OyBoZWlnaHQ6IDI4cHg7IGZsb2F0OiByaWdodDsgbWFyZ2luLWJvdHRvbTogMXB4OyB9CiAgICAjbGJQbGF5LmdyZXkgeyBiYWNrZ3JvdW5kOiB1cmwobW9kdWxlcy9MeXRlYm94L2ltYWdlcy9wbGF5X2dyZXkucG5nKSBuby1yZXBlYXQ7IH0KICAgICNsYlBsYXkucmVkIHsgYmFja2dyb3VuZDogdXJsKG1vZHVsZXMvTHl0ZWJveC9pbWFnZXMvcGxheV9yZWQucG5nKSBuby1yZXBlYXQ7IH0KICAgICNsYlBsYXkuZ3JlZW4geyBiYWNrZ3JvdW5kOiB1cmwobW9kdWxlcy9MeXRlYm94L2ltYWdlcy9wbGF5X2dyZWVuLnBuZykgbm8tcmVwZWF0OyB9CiAgICAjbGJQbGF5LmJsdWUgeyBiYWNrZ3JvdW5kOiB1cmwobW9kdWxlcy9MeXRlYm94L2ltYWdlcy9wbGF5X2JsdWUucG5nKSBuby1yZXBlYXQ7IH0KICAgICNsYlBsYXkuZ29sZCB7IGJhY2tncm91bmQ6IHVybChtb2R1bGVzL0x5dGVib3gvaW1hZ2VzL3BsYXlfZ29sZC5wbmcpIG5vLXJlcGVhdDsgfQoKI2xiUGF1c2UgeyB3aWR0aDogNjRweDsgaGVpZ2h0OiAyOHB4OyBmbG9hdDogcmlnaHQ7IG1hcmdpbi1ib3R0b206IDFweDsgfQogICAgI2xiUGF1c2UuZ3JleSB7IGJhY2tncm91bmQ6IHVybChtb2R1bGVzL0x5dGVib3gvaW1hZ2VzL3BhdXNlX2dyZXkucG5nKSBuby1yZXBlYXQ7IH0KICAgICNsYlBhdXNlLnJlZCB7IGJhY2tncm91bmQ6IHVybChtb2R1bGVzL0x5dGVib3gvaW1hZ2VzL3BhdXNlX3JlZC5wbmcpIG5vLXJlcGVhdDsgfQogICAgI2xiUGF1c2UuZ3JlZW4geyBiYWNrZ3JvdW5kOiB1cmwobW9kdWxlcy9MeXRlYm94L2ltYWdlcy9wYXVzZV9ncmVlbi5wbmcpIG5vLXJlcGVhdDsgfQogICAgI2xiUGF1c2UuYmx1ZSB7IGJhY2tncm91bmQ6IHVybChtb2R1bGVzL0x5dGVib3gvaW1hZ2VzL3BhdXNlX2JsdWUucG5nKSBuby1yZXBlYXQ7IH0KICAgICNsYlBhdXNlLmdvbGQgeyBiYWNrZ3JvdW5kOiB1cmwobW9kdWxlcy9MeXRlYm94L2ltYWdlcy9wYXVzZV9nb2xkLnBuZykgbm8tcmVwZWF0OyB9CkVPVDsKCiAgICAgICAgcmV0dXJuIHV0ZjhfZW5jb2RlKCRzdHlsZXNoZWV0Y29udGVudCk7CiAgICB9CgogICAgLyoqCiAgICAgKiBEb0luc3RhbGwoKQogICAgICoKICAgICAqIEB1c2VzIEdldFN0eWxlc2hlZXRPcGVyYXRpb25zKCkKICAgICAqIEB1c2VzIFN0eWxlc2hlZXQoKQogICAgICogQHVzZXMgSW5zZXJ0U3R5bGVzaGVldCgpCiAgICAgKiBAdXNlcyBTZXRQcmVmZXJlbmNlKCkKICAgICAqIEB1c2VzIEF1ZGl0KCkKICAgICAqIEB1c2VzIExhbmcoKQogICAgICogQHVzZXMgR2V0VmVyc2lvbigpCiAgICAgKiBAdXNlcyBHZXRTdHlsZXNoZWV0KCkKICAgICAqIEB1c2VzICRjbXMKICAgICAqCiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqIEBhY2Nlc3MgcHVibGljCiAgICAgKi8KICAgIGZ1bmN0aW9uIERvSW5zdGFsbCgpCiAgICB7CgogICAgICAgIC8qCiAgICAgICAgICogY3JlYXRlIG5ldyBzdHlsZXNoZWV0CiAgICAgICAgICovCiAgICAgICAgJHN0eWxlc2hlZXRvcHMgPSYgJHRoaXMtPmNtcy0+R2V0U3R5bGVzaGVldE9wZXJhdGlvbnMoKTsKICAgICAgICAkc3R5bGVzaGVldCAgICA9ICBuZXcgU3R5bGVzaGVldCgpOwoKICAgICAgICAkc3R5bGVzaGVldC0+bmFtZSAgICAgICA9ICdNb2R1bGU6IEx5dGVib3gnOwogICAgICAgICRzdHlsZXNoZWV0LT52YWx1ZSAgICAgID0gJHRoaXMtPkdldFN0eWxlc2hlZXQoKTsKICAgICAgICAkc3R5bGVzaGVldC0+bWVkaWFfdHlwZSA9ICdzY3JlZW4nOwoKICAgICAgICAvKgogICAgICAgICAqIHNhdmUgc3R5bGVzaGVldCBpbiBkYXRhYmFzZQogICAgICAgICAqLwogICAgICAgICRjc3NpZCA9ICRzdHlsZXNoZWV0b3BzLT5JbnNlcnRTdHlsZXNoZWV0KCRzdHlsZXNoZWV0KTsKICAgICAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnY3NzaWQnLCAoc3RyaW5nKSAkY3NzaWQpOwoKICAgICAgICAvKgogICAgICAgICAqIHB1dCBtZW50aW9uIGludG8gdGhlIGFkbWluIGxvZwogICAgICAgICAqLwogICAgICAgICR0aGlzLT5BdWRpdCgwLCAkdGhpcy0+TGFuZygnZnJpZW5kbHluYW1lJyksICR0aGlzLT5MYW5nKCdpbnN0YWxsZWQnLCAkdGhpcy0+R2V0VmVyc2lvbigpKSk7CiAgICB9Cn0KCiRpbnN0YWxsID0gbmV3IEx5dGVib3hfSW5zdGFsbCgkZ0Ntcyk7CiRpbnN0YWxsLT5Eb0luc3RhbGwoKTsKCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qIHZpbTogc2V0IGV4cGFuZHRhYiB0YWJzdG9wPTQgc2hpZnR3aWR0aD00IHNvZnR0YWJzdG9wPTQ6ICovCgovKioKICogTHl0ZWJveCBtb2R1bGUgZm9yIENNU01TIC0gQSBzaW1wbGUgd3JhcHBlciB0byB0aGUgTHl0ZWJveCBKYXZhU2NyaXB0IGNsYXNzLgogKgogKiBQSFAgdmVyc2lvbnMgNCBhbmQgNQogKgogKiBMSUNFTlNFOgogKiBDb3B5cmlnaHQgKGMpIDIwMDgsIENhcnN0ZW4gV2llZG1hbm4KICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KICoKICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwogKiBhcmUgbWV0OgogKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CiAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KICoKICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBVVRIT1IgT1IgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCiAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCiAqIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBVVRIT1IgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQogKiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAogKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUwogKiBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKICogSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKICogTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQogKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCiAqIFNVQ0ggREFNQUdFLgogKgogKiBAY2F0ZWdvcnkgICBNb2R1bGVzCiAqIEBwYWNrYWdlICAgIEx5dGVib3gKICogQGF1dGhvciAgICAgQ2Fyc3RlbiBXaWVkbWFubiA8Y2Fyc3Rlbl9zdHRndEBnbXguZGU+CiAqIEBjb3B5cmlnaHQgIDIwMDggQ2Fyc3RlbiBXaWVkbWFubgogKiBAbGljZW5zZSAgICBodHRwOi8vd3d3LmZyZWVic2Qub3JnL2NvcHlyaWdodC9mcmVlYnNkLWxpY2Vuc2UuaHRtbCBGcmVlQlNEIExpY2Vuc2UKICogQHZlcnNpb24gICAgU1ZOOiAkSWQ6IG1ldGhvZC51bmluc3RhbGwucGhwIDE0IDIwMDgtMDYtMTAgMTA6MDI6MTBaIHdpZWRtYW5uICQKICogQGxpbmsgICAgICAgaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9seXRlYm94CiAqLwoKaWYgKCFpc3NldCgkZ0NtcykpIHsKICAgIGV4aXQ7Cn0KCi8qKgogKiBVbmluc3RhbGxzIHRoZSBMeXRlYm94IG1vZHVsZS4KICoKICogQGNhdGVnb3J5ICAgTW9kdWxlcwogKiBAcGFja2FnZSAgICBMeXRlYm94CiAqIEBhdXRob3IgICAgIENhcnN0ZW4gV2llZG1hbm4gPGNhcnN0ZW5fc3R0Z3RAZ214LmRlPgogKiBAbGljZW5zZSAgICBodHRwOi8vd3d3LmZyZWVic2Qub3JnL2NvcHlyaWdodC9mcmVlYnNkLWxpY2Vuc2UuaHRtbCAgRnJlZUJTRCBMaWNlbnNlCiAqIEB2ZXJzaW9uICAgIFJlbGVhc2U6IDAuMi4xYmV0YTEKICogQGxpbmsgICAgICAgaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9seXRlYm94CiAqIEBzZWUgICAgICAgIEx5dGVib3gKICovCmNsYXNzIEx5dGVib3hfVW5pbnN0YWxsIGV4dGVuZHMgTHl0ZWJveAp7CiAgICAvKioKICAgICAqIEx5dGVib3hfVW5pbnN0YWxsKCkKICAgICAqCiAgICAgKiBAdXNlcyBMeXRlYm94KCkKICAgICAqCiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqIEBhY2Nlc3MgcHVibGljCiAgICAgKi8KICAgIGZ1bmN0aW9uIEx5dGVib3hfVW5pbnN0YWxsKCkKICAgIHsKICAgICAgICBwYXJlbnQ6Okx5dGVib3goKTsKICAgIH0KCiAgICAvKioKICAgICAqIERvVW5pbnN0YWxsKCkKICAgICAqCiAgICAgKiBAdXNlcyBHZXRTdHlsZXNoZWV0T3BlcmF0aW9ucygpCiAgICAgKiBAdXNlcyBEZWxldGVTdHlsZXNoZWV0QnlJRCgpCiAgICAgKiBAdXNlcyBHZXRQcmVmZXJlbmNlKCkKICAgICAqIEB1c2VzIFJlbW92ZVByZWZlcmVuY2UoKQogICAgICogQHVzZXMgQXVkaXQoKQogICAgICogQHVzZXMgTGFuZygpCiAgICAgKiBAdXNlcyAkY21zCiAgICAgKgogICAgICogQHJldHVybiB2b2lkCiAgICAgKiBAYWNjZXNzIHB1YmxpYwogICAgICovCiAgICBmdW5jdGlvbiBEb1VuaW5zdGFsbCgpCiAgICB7CiAgICAgICAgLyoKICAgICAgICAgKiByZW1vdmUgc3R5bGVzaGVldCBmcm9tIGRhdGFiYXNlCiAgICAgICAgICovCiAgICAgICAgJGNzc2lkID0gKGludCkgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2Nzc2lkJywgJy0xJyk7CiAgICAgICAgaWYgKC0xICE9ICRjc3NpZCkgewogICAgICAgICAgICAkc3R5bGVzaGVldG9wcyA9JiAkdGhpcy0+Y21zLT5HZXRTdHlsZXNoZWV0T3BlcmF0aW9ucygpOwogICAgICAgICAgICAkc3R5bGVzaGVldG9wcy0+RGVsZXRlU3R5bGVzaGVldEJ5SUQoJGNzc2lkKTsKICAgICAgICB9CgogICAgICAgIC8qCiAgICAgICAgICogcmVtb3ZlIHNldHRpbmdzIGZyb20gZGF0YWJhc2UKICAgICAgICAgKi8KICAgICAgICAkdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgpOwoKICAgICAgICAvKgogICAgICAgICAqIHB1dCBtZW50aW9uIGludG8gdGhlIGFkbWluIGxvZwogICAgICAgICAqLwogICAgICAgICR0aGlzLT5BdWRpdCgwLCAkdGhpcy0+TGFuZygnZnJpZW5kbHluYW1lJyksICR0aGlzLT5MYW5nKCd1bmluc3RhbGxlZCcpKTsKICAgIH0KfQoKJHVuaW5zdGFsbCA9IG5ldyBMeXRlYm94X1VuaW5zdGFsbCgpOwokdW5pbnN0YWxsLT5Eb1VuaW5zdGFsbCgpOwoKPz4K]]></data>
	</file>
	<file>
	  <filename>/method.upgrade.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qIHZpbTogc2V0IGV4cGFuZHRhYiB0YWJzdG9wPTQgc2hpZnR3aWR0aD00IHNvZnR0YWJzdG9wPTQ6ICovCgovKioKICogTHl0ZWJveCBtb2R1bGUgZm9yIENNU01TIC0gQSBzaW1wbGUgd3JhcHBlciB0byB0aGUgTHl0ZWJveCBKYXZhU2NyaXB0IGNsYXNzLgogKgogKiBQSFAgdmVyc2lvbnMgNCBhbmQgNQogKgogKiBMSUNFTlNFOgogKiBDb3B5cmlnaHQgKGMpIDIwMDgsIENhcnN0ZW4gV2llZG1hbm4KICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KICoKICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwogKiBhcmUgbWV0OgogKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CiAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KICoKICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBVVRIT1IgT1IgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCiAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCiAqIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBVVRIT1IgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQogKiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAogKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUwogKiBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKICogSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKICogTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQogKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCiAqIFNVQ0ggREFNQUdFLgogKgogKiBAY2F0ZWdvcnkgICBNb2R1bGVzCiAqIEBwYWNrYWdlICAgIEx5dGVib3gKICogQGF1dGhvciAgICAgQ2Fyc3RlbiBXaWVkbWFubiA8Y2Fyc3Rlbl9zdHRndEBnbXguZGU+CiAqIEBjb3B5cmlnaHQgIDIwMDggQ2Fyc3RlbiBXaWVkbWFubgogKiBAbGljZW5zZSAgICBodHRwOi8vd3d3LmZyZWVic2Qub3JnL2NvcHlyaWdodC9mcmVlYnNkLWxpY2Vuc2UuaHRtbCBGcmVlQlNEIExpY2Vuc2UKICogQHZlcnNpb24gICAgU1ZOOiAkSWQ6IG1ldGhvZC51cGdyYWRlLnBocCAxNCAyMDA4LTA2LTEwIDEwOjAyOjEwWiB3aWVkbWFubiAkCiAqIEBsaW5rICAgICAgIGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvbHl0ZWJveAogKi8KCmlmICghaXNzZXQoJGdDbXMpKSB7CiAgICBleGl0Owp9CgovKioKICogVXBncmFkZXMgdGhlIEx5dGVib3ggbW9kdWxlLgogKgogKiBAY2F0ZWdvcnkgICBNb2R1bGVzCiAqIEBwYWNrYWdlICAgIEx5dGVib3gKICogQGF1dGhvciAgICAgQ2Fyc3RlbiBXaWVkbWFubiA8Y2Fyc3Rlbl9zdHRndEBnbXguZGU+CiAqIEBsaWNlbnNlICAgIGh0dHA6Ly93d3cuZnJlZWJzZC5vcmcvY29weXJpZ2h0L2ZyZWVic2QtbGljZW5zZS5odG1sICBGcmVlQlNEIExpY2Vuc2UKICogQHZlcnNpb24gICAgUmVsZWFzZTogMC4yLjFiZXRhMQogKiBAbGluayAgICAgICBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2x5dGVib3gKICogQHNlZSAgICAgICAgTHl0ZWJveAogKi8KY2xhc3MgTHl0ZWJveF9VcGdyYWRlIGV4dGVuZHMgTHl0ZWJveAp7CiAgICAvKioKICAgICAqIGNvbnRhaW5zIHRoZSB2ZXJzaW9uIG9mIHRoZSBvbGQgbW9kdWxlCiAgICAgKgogICAgICogQHZhciBzdHJpbmcKICAgICAqIEBhY2Nlc3MgcHJvdGVjdGVkCiAgICAgKi8KICAgIHZhciAkb2xkdmVyc2lvbjsKCiAgICAvKioKICAgICAqIGNvbnRhaW5zIHRoZSB2ZXJzaW9uIG9mIHRoZSBuZXcgbW9kdWxlCiAgICAgKgogICAgICogQHZhciBzdHJpbmcKICAgICAqIEBhY2Nlc3MgcHJvdGVjdGVkCiAgICAgKi8KICAgIHZhciAkbmV3dmVyc2lvbjsKCiAgICAvKioKICAgICAqIEx5dGVib3hfVXBncmFkZSgpCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAmJG9sZHZlcnNpb24gVGhlIHZlcnNpb24gd2UgYXJlIHVwZ3JhZGluZyBmcm9tCiAgICAgKiBAcGFyYW0gc3RyaW5nICYkbmV3dmVyc2lvbiBUaGUgdmVyc2lvbiB3ZSBhcmUgdXBncmFkaW5nIHRvCiAgICAgKgogICAgICogQHVzZXMgTHl0ZWJveCgpCiAgICAgKiBAdXNlcyAkb2xkdmVyc2lvbgogICAgICogQHVzZXMgJG5ld3ZlcnNpb24KICAgICAqCiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqIEBhY2Nlc3MgcHVibGljCiAgICAgKi8KICAgIGZ1bmN0aW9uIEx5dGVib3hfVXBncmFkZSgmJG9sZHZlcnNpb24sICYkbmV3dmVyc2lvbikKICAgIHsKICAgICAgICBwYXJlbnQ6Okx5dGVib3goKTsKCiAgICAgICAgJHRoaXMtPm9sZHZlcnNpb24gPSYgJG9sZHZlcnNpb247CiAgICAgICAgJHRoaXMtPm5ld3ZlcnNpb24gPSYgJG5ld3ZlcnNpb247CiAgICB9CgogICAgLyoqCiAgICAgKiBEb1VwZ3JhZGUoKQogICAgICoKICAgICAqIEB1c2VzIEF1ZGl0KCkKICAgICAqIEB1c2VzIExhbmcoKQogICAgICogQHVzZXMgR2V0VmVyc2lvbigpCiAgICAgKiBAdXNlcyAkb2xkdmVyc2lvbgogICAgICoKICAgICAqIEByZXR1cm4gdm9pZAogICAgICogQGFjY2VzcyBwdWJsaWMKICAgICAqLwogICAgZnVuY3Rpb24gRG9VcGdyYWRlKCkKICAgIHsKICAgICAgICAvKgogICAgICAgICAqIG1ha2UgdGhlIHVwZ3JhZGUgdGFza3MKICAgICAgICAgKi8KICAgICAgICBzd2l0Y2ggKCR0aGlzLT5vbGR2ZXJzaW9uKSB7CiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KCiAgICAgICAgLyoKICAgICAgICAgKiBwdXQgbWVudGlvbiBpbnRvIHRoZSBhZG1pbiBsb2cKICAgICAgICAgKi8KICAgICAgICAkdGhpcy0+QXVkaXQoIDAsICR0aGlzLT5MYW5nKCdmcmllbmRseW5hbWUnKSwgJHRoaXMtPkxhbmcoJ3VwZ3JhZGVkJywgJHRoaXMtPkdldFZlcnNpb24oKSkpOwogICAgfQp9CgokdXBncmFkZSA9IG5ldyBMeXRlYm94X1VwZ3JhZGUoJG9sZHZlcnNpb24sICRuZXd2ZXJzaW9uKTsKJHVwZ3JhZGUtPkRvVXBncmFkZSgpOwoKPz4K]]></data>
	</file>
</module>
