<?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>AWSS3</name>
	<version>2.0.0</version>
	<mincmsversion>2.2.14</mincmsversion>
	<help><![CDATA[PGgzPkdldHRpbmcgU3RhcnRlZDwvaDM+Cgo8b2w+CiAgICA8bGk+SW5zdGFsbCBhbmQgY29uZmlndXJlIHRoZSA8c3Ryb25nPkFXU1NESzwvc3Ryb25nPiBtb2R1bGUgd2l0aCB5b3VyIEFXUyBjcmVkZW50aWFscyAocHJvZmlsZSwgSUFNIHJvbGUsIG9yIGV4cGxpY2l0IGtleXMpLjwvbGk+CiAgICA8bGk+R28gdG8gPHN0cm9uZz5Db250ZW50ICZndDsgQVdTIFMzICZndDsgQnVja2V0czwvc3Ryb25nPiB0YWIgYW5kIGNsaWNrIDxzdHJvbmc+RGVmaW5lIE5ldyBCdWNrZXQ8L3N0cm9uZz4uPC9saT4KICAgIDxsaT5Vc2UgdGhlIDxjb2RlPntBV1NTM308L2NvZGU+IHRhZyBvbiBhbnkgcGFnZSB0byBsaXN0IGZpbGVzLjwvbGk+Cjwvb2w+Cgo8aDM+QnVja2V0IENvbmZpZ3VyYXRpb248L2gzPgoKPHA+RWFjaCBidWNrZXQgZGVmaW5pdGlvbiBoYXMgdGhlIGZvbGxvd2luZyBzZXR0aW5nczo8L3A+Cgo8dGFibGU+CiAgICA8dGhlYWQ+PHRyPjx0aD5GaWVsZDwvdGg+PHRoPkRlc2NyaXB0aW9uPC90aD48L3RyPjwvdGhlYWQ+CiAgICA8dGJvZHk+CiAgICAgICAgPHRyPgogICAgICAgICAgICA8dGQ+PHN0cm9uZz5CdWNrZXQgTmFtZTwvc3Ryb25nPjwvdGQ+CiAgICAgICAgICAgIDx0ZD5UaGUgZXhhY3QgbmFtZSBvZiB5b3VyIFMzIGJ1Y2tldCBhcyBpdCBhcHBlYXJzIGluIHRoZSBBV1MgY29uc29sZS4gVGhpcyBtb2R1bGUgZG9lcyBub3QgY3JlYXRlIGJ1Y2tldHM7IHlvdSBtdXN0IGNyZWF0ZSB0aGVtIGluIEFXUyBmaXJzdC48L3RkPgogICAgICAgIDwvdHI+CiAgICAgICAgPHRyPgogICAgICAgICAgICA8dGQ+PHN0cm9uZz5SZWdpb248L3N0cm9uZz48L3RkPgogICAgICAgICAgICA8dGQ+VGhlIEFXUyByZWdpb24gd2hlcmUgdGhlIGJ1Y2tldCBpcyBob3N0ZWQgKGUuZy4gPGNvZGU+dXMtZWFzdC0xPC9jb2RlPiwgPGNvZGU+ZXUtd2VzdC0xPC9jb2RlPikuIE11c3QgbWF0Y2ggdGhlIGJ1Y2tldCdzIGFjdHVhbCByZWdpb24uPC90ZD4KICAgICAgICA8L3RyPgogICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkPjxzdHJvbmc+Q3VzdG9tIFVSTDwvc3Ryb25nPjwvdGQ+CiAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgIE9wdGlvbmFsLiBSZXBsYWNlcyB0aGUgZGVmYXVsdCBTMyBVUkwgKDxjb2RlPmh0dHBzOi8vYnVja2V0LnMzLnJlZ2lvbi5hbWF6b25hd3MuY29tPC9jb2RlPikgd2l0aCBhIGN1c3RvbSBkb21haW4gZm9yIGFsbCBwdWJsaWMgYW5kIHByZXNpZ25lZCBVUkxzIGdlbmVyYXRlZCBieSB0aGlzIG1vZHVsZS48YnI+PGJyPgogICAgICAgICAgICAgICAgPHN0cm9uZz5Vc2UgY2FzZXM6PC9zdHJvbmc+CiAgICAgICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+Q2xvdWRGcm9udCBDRE46PC9zdHJvbmc+IDxjb2RlPmh0dHBzOi8vZDEyMzRhYmNkZS5jbG91ZGZyb250Lm5ldDwvY29kZT48L2xpPgogICAgICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPkN1c3RvbSBkb21haW4gb24gQ2xvdWRGcm9udDo8L3N0cm9uZz4gPGNvZGU+aHR0cHM6Ly9jZG4uZXhhbXBsZS5jb208L2NvZGU+PC9saT4KICAgICAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz5TMyBUcmFuc2ZlciBBY2NlbGVyYXRpb246PC9zdHJvbmc+IDxjb2RlPmh0dHBzOi8vYnVja2V0LnMzLWFjY2VsZXJhdGUuYW1hem9uYXdzLmNvbTwvY29kZT48L2xpPgogICAgICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPk1pbklPIC8gUzMtY29tcGF0aWJsZTo8L3N0cm9uZz4gPGNvZGU+aHR0cHM6Ly9taW5pby5leGFtcGxlLmNvbS9idWNrZXQ8L2NvZGU+PC9saT4KICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICA8c3Ryb25nPkV4YW1wbGU6PC9zdHJvbmc+IElmIHlvdXIgYnVja2V0IGlzIDxjb2RlPm15LWFzc2V0czwvY29kZT4gYW5kIHlvdSBzZXQgQ3VzdG9tIFVSTCB0byA8Y29kZT5odHRwczovL2Nkbi5leGFtcGxlLmNvbTwvY29kZT4sIHRoZW4gYSBmaWxlIGF0IGtleSA8Y29kZT5pbWFnZXMvcGhvdG8uanBnPC9jb2RlPiB3aWxsIGJlIHNlcnZlZCBhcyA8Y29kZT5odHRwczovL2Nkbi5leGFtcGxlLmNvbS9pbWFnZXMvcGhvdG8uanBnPC9jb2RlPi48YnI+PGJyPgogICAgICAgICAgICAgICAgUHJlc2lnbmVkIFVSTHMgd2lsbCBhbHNvIHVzZSB0aGUgY3VzdG9tIGRvbWFpbiAoc2NoZW1lIGFuZCBob3N0IGFyZSByZXBsYWNlZCB3aGlsZSBwcmVzZXJ2aW5nIHRoZSBzaWduZWQgcXVlcnkgcGFyYW1ldGVycykuCiAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgPC90cj4KICAgICAgICA8dHI+CiAgICAgICAgICAgIDx0ZD48c3Ryb25nPkFsbG93ZWQgRXh0ZW5zaW9uczwvc3Ryb25nPjwvdGQ+CiAgICAgICAgICAgIDx0ZD5Db21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBmaWxlIGV4dGVuc2lvbnMgYWxsb3dlZCBmb3IgdXBsb2FkIHRvIHRoaXMgYnVja2V0IChlLmcuIDxjb2RlPmpwZyxwbmcsZ2lmLHBkZix6aXA8L2NvZGU+KS4gTGVhdmUgZW1wdHkgdG8gYWxsb3cgYWxsIGZpbGUgdHlwZXMuPC90ZD4KICAgICAgICA8L3RyPgogICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkPjxzdHJvbmc+RGVmYXVsdDwvc3Ryb25nPjwvdGQ+CiAgICAgICAgICAgIDx0ZD5NYXJrIG9uZSBidWNrZXQgYXMgZGVmYXVsdC4gVGhpcyBidWNrZXQgaXMgdXNlZCB3aGVuIG5vIDxjb2RlPmJ1Y2tldDwvY29kZT4gcGFyYW1ldGVyIGlzIHNwZWNpZmllZCBpbiBmcm9udGVuZCB0YWdzIG9yIGZpZWxkIGRlZmluaXRpb25zLjwvdGQ+CiAgICAgICAgPC90cj4KICAgIDwvdGJvZHk+CjwvdGFibGU+Cgo8aDQ+TXVsdGlwbGUgQnVja2V0czwvaDQ+CjxwPllvdSBjYW4gZGVmaW5lIG11bHRpcGxlIGJ1Y2tldHMgZm9yIGRpZmZlcmVudCBwdXJwb3Nlcy4gUmVmZXJlbmNlIHRoZW0gYnkgSUQgb3IgbmFtZTo8L3A+CjxwcmU+CnsqIEJ5IGJ1Y2tldCBJRCAqfQp7QVdTUzMgYnVja2V0PSIyIiBwcmVmaXg9ImRvY3VtZW50cy8ifQoKeyogQnkgYnVja2V0IG5hbWUgKn0Ke0FXU1MzIGJ1Y2tldD0ibXktYXNzZXRzLWJ1Y2tldCJ9CjwvcHJlPgo8cD5UaGUgYnVja2V0IElEIGlzIHNob3duIGluIHRoZSBCdWNrZXRzIHRhYiB0YWJsZS4gSWYgb21pdHRlZCwgdGhlIGRlZmF1bHQgYnVja2V0IGlzIHVzZWQuPC9wPgoKPGhyPgoKPGgzPkZyb250ZW5kIFRhZ3M8L2gzPgoKPHByZT57QVdTUzN9PC9wcmU+CjxwcmU+e0FXU1MzIGJ1Y2tldD0ibXktYnVja2V0LW5hbWUifTwvcHJlPgo8cHJlPntBV1NTMyBidWNrZXQ9IjIiIHByZWZpeD0iaW1hZ2VzLyIgcGFnZWxpbWl0PSIyMCJ9PC9wcmU+CjxwcmU+e0FXU1MzIGFjdGlvbj1kZXRhaWwgcHJlZml4PSJwYXRoL3RvL2ZpbGUuanBnIn08L3ByZT4KPHByZT57QVdTUzMgYWN0aW9uPXVwbG9hZCBidWNrZXQ9IjIifTwvcHJlPgoKPGg0PlBhcmFtZXRlcnM8L2g0Pgo8dWw+CiAgICA8bGk+PHN0cm9uZz5hY3Rpb248L3N0cm9uZz4gLSAiZGVmYXVsdCIgKHN1bW1hcnkpLCAiZGV0YWlsIiwgb3IgInVwbG9hZCI8L2xpPgogICAgPGxpPjxzdHJvbmc+YnVja2V0PC9zdHJvbmc+IC0gQnVja2V0IElEIG9yIG5hbWUuIERlZmF1bHQgYnVja2V0IGlmIG9taXR0ZWQuPC9saT4KICAgIDxsaT48c3Ryb25nPnByZWZpeDwvc3Ryb25nPiAtIFMzIGtleSBwcmVmaXggcGF0aCBmaWx0ZXI8L2xpPgogICAgPGxpPjxzdHJvbmc+cGFnZWxpbWl0PC9zdHJvbmc+IC0gTWF4IGl0ZW1zIHBlciBwYWdlPC9saT4KICAgIDxsaT48c3Ryb25nPmRldGFpbHBhZ2U8L3N0cm9uZz4gLSBQYWdlIGFsaWFzL2lkIGZvciBkZXRhaWwgdmlldzwvbGk+CiAgICA8bGk+PHN0cm9uZz5zdW1tYXJ5dGVtcGxhdGU8L3N0cm9uZz4gLSBTdW1tYXJ5IHRlbXBsYXRlIG5hbWU8L2xpPgogICAgPGxpPjxzdHJvbmc+ZGV0YWlsdGVtcGxhdGU8L3N0cm9uZz4gLSBEZXRhaWwgdGVtcGxhdGUgbmFtZTwvbGk+CiAgICA8bGk+PHN0cm9uZz5ub2NhcHRjaGE8L3N0cm9uZz4gLSBTZXQgdG8gMSB0byBkaXNhYmxlIGNhcHRjaGEgb24gdXBsb2FkIGZvcm08L2xpPgogICAgPGxpPjxzdHJvbmc+cmVkaXJlY3Q8L3N0cm9uZz4gLSBQYWdlIGFsaWFzIHRvIHJlZGlyZWN0IGFmdGVyIHVwbG9hZDwvbGk+CjwvdWw+Cgo8aHI+Cgo8aDM+SW50ZWdyYXRpb24gd2l0aCBMSVNFPC9oMz4KCjxwPkFXU1MzIHByb3ZpZGVzIGEgY3VzdG9tIExJU0UgZmllbGQgZGVmaW5pdGlvbiAoPHN0cm9uZz5BV1MgUzMgRmlsZTwvc3Ryb25nPikgdGhhdCBhbGxvd3MgYW55IExJU0UgaW5zdGFuY2UgdG8gaW5jbHVkZSBhbiBTMyBmaWxlIHVwbG9hZCBmaWVsZC4gRmlsZXMgYXJlIHVwbG9hZGVkIGRpcmVjdGx5IHRvIFMzIHdoZW4gYW4gaXRlbSBpcyBzYXZlZC48L3A+Cgo8aDQ+U2V0dXA8L2g0Pgo8cD5HbyB0byBhbnkgTElTRSBpbnN0YW5jZSBhZG1pbiwgRmllbGQgRGVmaW5pdGlvbnMgdGFiLCBjbGljayAiU2NhbiBNb2R1bGVzIi4gVGhlIDxzdHJvbmc+QVdTIFMzIEZpbGU8L3N0cm9uZz4gdHlwZSB3aWxsIGFwcGVhciBpbiB0aGUgZHJvcGRvd24gd2hlbiBhZGRpbmcgYSBuZXcgZmllbGQuPC9wPgoKPGg0PkZpZWxkIE9wdGlvbnM8L2g0Pgo8dGFibGU+CiAgICA8dGhlYWQ+PHRyPjx0aD5PcHRpb248L3RoPjx0aD5EZXNjcmlwdGlvbjwvdGg+PC90cj48L3RoZWFkPgogICAgPHRib2R5PgogICAgICAgIDx0cj48dGQ+PGNvZGU+YnVja2V0X2lkPC9jb2RlPjwvdGQ+PHRkPlRhcmdldCBidWNrZXQgSUQgKGJsYW5rID0gZGVmYXVsdCBidWNrZXQpPC90ZD48L3RyPgogICAgICAgIDx0cj48dGQ+PGNvZGU+cHJlZml4PC9jb2RlPjwvdGQ+PHRkPlMzIGtleSBwcmVmaXggZm9yIHVwbG9hZHMsIGUuZy4gPGNvZGU+dXBsb2Fkcy9kb2NzPC9jb2RlPjwvdGQ+PC90cj4KICAgICAgICA8dHI+PHRkPjxjb2RlPmFsbG93ZWRfZXh0ZW5zaW9uczwvY29kZT48L3RkPjx0ZD5Db21tYS1zZXBhcmF0ZWQgbGlzdCwgZS5nLiA8Y29kZT5wZGYsZG9jeCx6aXA8L2NvZGU+PC90ZD48L3RyPgogICAgICAgIDx0cj48dGQ+PGNvZGU+c3RvcmVfbWV0YWRhdGE8L2NvZGU+PC90ZD48dGQ+U2V0IHRvIDxjb2RlPjE8L2NvZGU+IHRvIHN0b3JlIEpTT04gbWV0YWRhdGEgKGZpbGVuYW1lLCBzaXplLCB1cmwsIHRpbWVzdGFtcCk8L3RkPjwvdHI+CiAgICAgICAgPHRyPjx0ZD48Y29kZT5tYXhfc2l6ZTwvY29kZT48L3RkPjx0ZD5NYXggdXBsb2FkIGluIGJ5dGVzICgwID0gbm8gbGltaXQpPC90ZD48L3RyPgogICAgICAgIDx0cj48dGQ+PGNvZGU+ZGVsZXRlX29uX2NsZWFyPC9jb2RlPjwvdGQ+PHRkPlNldCB0byA8Y29kZT4xPC9jb2RlPiB0byBkZWxldGUgZnJvbSBTMyB3aGVuIGZpZWxkIGlzIGNsZWFyZWQgb3IgaXRlbSBkZWxldGVkPC90ZD48L3RyPgogICAgPC90Ym9keT4KPC90YWJsZT4KCjxoND5UZW1wbGF0ZSBVc2FnZTwvaDQ+CjxwcmU+CnsqIEdldCB0aGUgZmlsZSBVUkwgKn0KeyRpdGVtLT5maWVsZGRlZnMubXlfczNfZmllbGQtPkdldEZpbGVVcmwoKX0KCnsqIEdldCBhIHByZXNpZ25lZCBVUkwgKGZvciBwcml2YXRlIGJ1Y2tldHMpICp9CnskaXRlbS0+ZmllbGRkZWZzLm15X3MzX2ZpZWxkLT5HZXRQcmVzaWduZWRVcmwoKX0KCnsqIEdldCBhIHJlZGlyZWN0LWJhc2VkIHNpZ25lZCBsaW5rIChuZXZlciBleHBpcmVzIGluIGNhY2hlZCBwYWdlcykgKn0KeyRpdGVtLT5maWVsZGRlZnMubXlfczNfZmllbGQtPkdldFNpZ25lZExpbmsoKX0KCnsqIEFjY2VzcyBtZXRhZGF0YSAod2hlbiBzdG9yZV9tZXRhZGF0YSBpcyBlbmFibGVkKSAqfQp7YXNzaWduIHZhcj1tZXRhIHZhbHVlPSRpdGVtLT5maWVsZGRlZnMubXlfczNfZmllbGQtPkdldE1ldGFkYXRhKCl9CntpZiAkbWV0YX0KICAgICZsdDthIGhyZWY9InskaXRlbS0+ZmllbGRkZWZzLm15X3MzX2ZpZWxkLT5HZXRTaWduZWRMaW5rKCl9IiZndDt7JG1ldGEuZmlsZW5hbWV9Jmx0Oy9hJmd0OwogICAgKHskbWV0YS5zaXplfSBieXRlcywgdXBsb2FkZWQgeyRtZXRhLnVwbG9hZGVkX2F0fSkKey9pZn0KPC9wcmU+Cgo8aHI+Cgo8aDM+SW50ZWdyYXRpb24gd2l0aCBFQ0IyPC9oMz4KCjxwPkFXU1MzIHByb3ZpZGVzIHR3byBFQ0IyIGNvbnRlbnQgYmxvY2sgZmllbGQgdHlwZXMgZm9yIHVzZSBpbiBwYWdlIHRlbXBsYXRlcy4gVGhlc2UgcmVxdWlyZSB0aGUgRUNCMiBtb2R1bGUgKHYyLjQuNCsgd2l0aCBleHRlcm5hbCBmaWVsZCB0eXBlIHN1cHBvcnQpLjwvcD4KCjxoND5zM19maWxlX3BpY2tlcjwvaDQ+CjxwPkEgZHJvcGRvd24gc2VsZWN0b3IgcG9wdWxhdGVkIHdpdGggZXhpc3RpbmcgZmlsZXMgZnJvbSBhbiBTMyBidWNrZXQuIFRoZSBlZGl0b3IgcGlja3MgYSBmaWxlIGFuZCB0aGUgUzMga2V5IGlzIHN0b3JlZCBhcyB0aGUgY29udGVudCBibG9jayB2YWx1ZS48L3A+Cgo8cHJlPgp7KiBCYXNpYyB1c2FnZSAtIGxpc3RzIGZpbGVzIGZyb20gZGVmYXVsdCBidWNrZXQgKn0Ke2NvbnRlbnRfbW9kdWxlIG1vZHVsZT1FQ0IyIGZpZWxkPXMzX2ZpbGVfcGlja2VyIGJsb2NrPWRvd25sb2FkX2ZpbGUgbGFiZWw9IkRvd25sb2FkIEZpbGUifQoKeyogV2l0aCBidWNrZXQsIHByZWZpeCBmaWx0ZXIsIGFuZCBleHRlbnNpb24gZmlsdGVyICp9Cntjb250ZW50X21vZHVsZSBtb2R1bGU9RUNCMiBmaWVsZD1zM19maWxlX3BpY2tlciBibG9jaz1oZXJvX2ltYWdlIGJ1Y2tldD0yIHByZWZpeD0iaW1hZ2VzLyIgYWxsb3dlZF9leHQ9ImpwZyxwbmcsd2VicCIgbGFiZWw9Ikhlcm8gSW1hZ2UifQo8L3ByZT4KCjx0YWJsZT4KICAgIDx0aGVhZD48dHI+PHRoPlBhcmFtZXRlcjwvdGg+PHRoPkRlc2NyaXB0aW9uPC90aD48L3RyPjwvdGhlYWQ+CiAgICA8dGJvZHk+CiAgICAgICAgPHRyPjx0ZD48Y29kZT5idWNrZXQ8L2NvZGU+PC90ZD48dGQ+QnVja2V0IElEIG9yIG5hbWUgKGRlZmF1bHQgYnVja2V0IGlmIG9taXR0ZWQpPC90ZD48L3RyPgogICAgICAgIDx0cj48dGQ+PGNvZGU+cHJlZml4PC9jb2RlPjwvdGQ+PHRkPlMzIGtleSBwcmVmaXggdG8gZmlsdGVyIGxpc3RlZCBmaWxlczwvdGQ+PC90cj4KICAgICAgICA8dHI+PHRkPjxjb2RlPmFsbG93ZWRfZXh0PC9jb2RlPjwvdGQ+PHRkPkNvbW1hLXNlcGFyYXRlZCBleHRlbnNpb24gZmlsdGVyPC90ZD48L3RyPgogICAgICAgIDx0cj48dGQ+PGNvZGU+c2hvd19wcmV2aWV3PC9jb2RlPjwvdGQ+PHRkPlNob3cgaW1hZ2UgcHJldmlldyBmb3Igc2VsZWN0ZWQgZmlsZSAoZGVmYXVsdDogdHJ1ZSk8L3RkPjwvdHI+CiAgICAgICAgPHRyPjx0ZD48Y29kZT5sYWJlbDwvY29kZT48L3RkPjx0ZD5GcmllbmRseSBsYWJlbCBzaG93biB0byB0aGUgZWRpdG9yPC90ZD48L3RyPgogICAgICAgIDx0cj48dGQ+PGNvZGU+ZGVzY3JpcHRpb248L2NvZGU+PC90ZD48dGQ+SGVscGVyIHRleHQgc2hvd24gYWJvdmUgdGhlIGZpZWxkPC90ZD48L3RyPgogICAgICAgIDx0cj48dGQ+PGNvZGU+YWRtaW5fZ3JvdXBzPC9jb2RlPjwvdGQ+PHRkPlJlc3RyaWN0IHZpc2liaWxpdHkgdG8gc3BlY2lmaWMgYWRtaW4gZ3JvdXBzPC90ZD48L3RyPgogICAgPC90Ym9keT4KPC90YWJsZT4KCjxoND5zM19maWxlX3NlbGVjdG9yPC9oND4KPHA+QSBmaWxlIHVwbG9hZCBpbnB1dCB0aGF0IHNhdmVzIGRpcmVjdGx5IHRvIFMzLiBTaG93cyB0aGUgY3VycmVudCBmaWxlIHdpdGggYSB0aHVtYm5haWwgcHJldmlldyAoZm9yIGltYWdlcykgYW5kIGEgcmVtb3ZlIG9wdGlvbi48L3A+Cgo8cHJlPgp7KiBCYXNpYyB1cGxvYWQgZmllbGQgKn0Ke2NvbnRlbnRfbW9kdWxlIG1vZHVsZT1FQ0IyIGZpZWxkPXMzX2ZpbGVfc2VsZWN0b3IgYmxvY2s9ZG9jdW1lbnQgbGFiZWw9IlVwbG9hZCBEb2N1bWVudCJ9Cgp7KiBXaXRoIGNvbnN0cmFpbnRzICp9Cntjb250ZW50X21vZHVsZSBtb2R1bGU9RUNCMiBmaWVsZD1zM19maWxlX3NlbGVjdG9yIGJsb2NrPXBob3RvIGJ1Y2tldD0yIHByZWZpeD0icGhvdG9zLyIgYWxsb3dlZF9leHQ9ImpwZyxwbmcsd2VicCIgbWF4X3NpemU9NTI0Mjg4MCBsYWJlbD0iUGhvdG8ifQo8L3ByZT4KCjx0YWJsZT4KICAgIDx0aGVhZD48dHI+PHRoPlBhcmFtZXRlcjwvdGg+PHRoPkRlc2NyaXB0aW9uPC90aD48L3RyPjwvdGhlYWQ+CiAgICA8dGJvZHk+CiAgICAgICAgPHRyPjx0ZD48Y29kZT5idWNrZXQ8L2NvZGU+PC90ZD48dGQ+QnVja2V0IElEIG9yIG5hbWUgKGRlZmF1bHQgYnVja2V0IGlmIG9taXR0ZWQpPC90ZD48L3RyPgogICAgICAgIDx0cj48dGQ+PGNvZGU+cHJlZml4PC9jb2RlPjwvdGQ+PHRkPlMzIGtleSBwcmVmaXggZm9yIHVwbG9hZGVkIGZpbGVzPC90ZD48L3RyPgogICAgICAgIDx0cj48dGQ+PGNvZGU+YWxsb3dlZF9leHQ8L2NvZGU+PC90ZD48dGQ+Q29tbWEtc2VwYXJhdGVkIGFsbG93ZWQgZXh0ZW5zaW9uczwvdGQ+PC90cj4KICAgICAgICA8dHI+PHRkPjxjb2RlPm1heF9zaXplPC9jb2RlPjwvdGQ+PHRkPk1heGltdW0gdXBsb2FkIHNpemUgaW4gYnl0ZXMgKDAgPSBubyBsaW1pdCk8L3RkPjwvdHI+CiAgICAgICAgPHRyPjx0ZD48Y29kZT5zaG93X3ByZXZpZXc8L2NvZGU+PC90ZD48dGQ+U2hvdyBpbWFnZSB0aHVtYm5haWwgZm9yIGN1cnJlbnQgZmlsZSAoZGVmYXVsdDogdHJ1ZSk8L3RkPjwvdHI+CiAgICAgICAgPHRyPjx0ZD48Y29kZT5sYWJlbDwvY29kZT48L3RkPjx0ZD5GcmllbmRseSBsYWJlbCBzaG93biB0byB0aGUgZWRpdG9yPC90ZD48L3RyPgogICAgICAgIDx0cj48dGQ+PGNvZGU+ZGVzY3JpcHRpb248L2NvZGU+PC90ZD48dGQ+SGVscGVyIHRleHQgc2hvd24gYWJvdmUgdGhlIGZpZWxkPC90ZD48L3RyPgogICAgICAgIDx0cj48dGQ+PGNvZGU+YWRtaW5fZ3JvdXBzPC9jb2RlPjwvdGQ+PHRkPlJlc3RyaWN0IHZpc2liaWxpdHkgdG8gc3BlY2lmaWMgYWRtaW4gZ3JvdXBzPC90ZD48L3RyPgogICAgPC90Ym9keT4KPC90YWJsZT4KCjxoND5Gcm9udGVuZCBPdXRwdXQ8L2g0Pgo8cD5Cb3RoIGZpZWxkIHR5cGVzIHN0b3JlIHRoZSBTMyBrZXkgYXMgdGhlIGNvbnRlbnQgYmxvY2sgdmFsdWUuIFVzZSBpdCBpbiB5b3VyIHBhZ2UgdGVtcGxhdGU6PC9wPgoKPHByZT4KeyogVGhlIHJhdyBTMyBrZXkgKn0KeyRteV9kb3dubG9hZH0KCnsqIEJ1aWxkIGEgVVJMIHVzaW5nIHRoZSBBV1NTMyBkZXRhaWwgYWN0aW9uICp9CntBV1NTMyBhY3Rpb249ZGV0YWlsIHByZWZpeD0kbXlfZG93bmxvYWR9Cgp7KiBPciB1c2UgdGhlIHNpZ25lZCByZWRpcmVjdCByb3V0ZSAobmV2ZXIgZXhwaXJlcyBpbiBjYWNoZSkgKn0KJmx0O2EgaHJlZj0ie2Ntc19yb290X3VybH0vUzMvcy97JG15X2Rvd25sb2FkfHVybGVuY29kZX0iJmd0O0Rvd25sb2FkJmx0Oy9hJmd0Owo8L3ByZT4KPGgzPkRlcGVuZGVuY2llczwvaDM+PHVsPjxsaT5BV1NTREsgPSZndDsgMS4yLjA8L2xpPjxsaT5GaWxlTWFuYWdlciA9Jmd0OyAxLjYuMTM8L2xpPjwvdWw+]]></help>
	<about><![CDATA[PGJyIC8+QXV0aG9yOiBNYWdhbCBIZXppICZsdDtpbmZvQHBpeGVsc29sdXRpb25zLmJpeiZndDs8YnIgLz48YnIgLz5WZXJzaW9uOiAyLjAuMDxiciAvPjxiciAvPkNoYW5nZSBIaXN0b3J5OjxiciAvPjx1bD4KICA8bGk+VkVSU0lPTjogMi4wLjAgREFURUQ6IDE0LUpVTFktMjAyNgogICAgPHVsPgogICAgICA8bGk+TXVsdGktYnVja2V0IHN1cHBvcnQ6IGRlZmluZSBhbmQgbWFuYWdlIG11bHRpcGxlIFMzIGJ1Y2tldHM8L2xpPgogICAgICA8bGk+Q3JlZGVudGlhbHMgZGVsZWdhdGVkIHRvIEFXU1NESyBtb2R1bGUgKHByb2ZpbGUsIElBTSByb2xlLCBvciBleHBsaWNpdCBrZXlzKTwvbGk+CiAgICAgIDxsaT5Gcm9udGVuZCB0YWcgYWNjZXB0cyBidWNrZXQgYnkgSUQgb3IgbmFtZTogPGNvZGU+e0FXU1MzIGJ1Y2tldD0ibXktYnVja2V0In08L2NvZGU+PC9saT4KICAgICAgPGxpPkFkbWluIGludGVyZmFjZSByZWRlc2lnbmVkIHdpdGggdGFiYmVkIGxheW91dCAoQnVja2V0cyAvIFNldHRpbmdzKTwvbGk+CiAgICAgIDxsaT5Ccm93c2UsIHVwbG9hZCwgYW5kIGRlbGV0ZSBhcmUgZnVsbHkgYnVja2V0LWF3YXJlPC9saT4KICAgICAgPGxpPlNpZ25lZCBVUkwgcmVkaXJlY3QgaW5jbHVkZXMgYnVja2V0IGNvbnRleHQ8L2xpPgogICAgICA8bGk+Q2FjaGUgaW52YWxpZGF0aW9uIGFmdGVyIHVwbG9hZCBhbmQgZGVsZXRlIG9wZXJhdGlvbnM8L2xpPgogICAgICA8bGk+VXBncmFkZSBtaWdyYXRpb24gZnJvbSB2MS54IHNpbmdsZS1idWNrZXQgdG8gbXVsdGktYnVja2V0PC9saT4KICAgICAgPGxpPlJlbW92ZWQgZGVwcmVjYXRlZCBjcmVkZW50aWFsIHByZWZlcmVuY2VzIChhY2Nlc3Nfa2V5LCBhY2Nlc3Nfc2VjcmV0X2tleSk8L2xpPgogICAgICA8bGk+TW9kZXJuaXplZCB1cGxvYWQgdGVtcGxhdGUgKEJvb3RzdHJhcCA1LCB7Zm9ybV9zdGFydH0gdGFnKTwvbGk+CiAgICAgIDxsaT5Db2RlIHF1YWxpdHkgaW1wcm92ZW1lbnRzIChtY2hlY2sgc2NvcmU6IDg5LzEwMCk8L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT5WRVJTSU9OOiAxLjIuMCBEQVRFRDogMDEtTUFSQ0gtMjAyNAogICAgPHA+QWRkZWQgcHJlc2lnbmVkIFVSTCByZWRpcmVjdCByb3V0ZS4gQ2FjaGUgZW5jcnlwdGlvbi4gRmlsZSBicm93c2VyIGltcHJvdmVtZW50cy48L3A+CiAgPC9saT4KICA8bGk+VkVSU0lPTjogMS4xLjEgREFURUQ6IDE3LU5PVkVNQkVSLTIwMjMKICAgIDxwPkFkZGVkIERldGFpbCB0ZW1wbGF0ZS48L3A+CiAgPC9saT4KICA8bGk+VkVSU0lPTjogMS4xLjAgREFURUQ6IDE2LU5PVkVNQkVSLTIwMjMKICAgIDxwPkluY29ycG9yYXRlZCBjcmVkZW50aWFscy48L3A+CiAgPC9saT4KICA8bGk+VkVSU0lPTjogMS4wLjAgREFURUQ6IDIwLUpVTkUtMjAyMwogICAgPHA+Rmlyc3QgdmVyc2lvbiBvZiB0aGUgcGx1Z2luLjwvcD4KICA8L2xpPgo8L3VsPgo8YnIgLz4=]]></about>
	<description><![CDATA[Store uploads in AWS S3]]></description>
	<requires>
		<requiredname>AWSSDK</requiredname>
		<requiredversion>1.2.0</requiredversion>
	</requires>
	<requires>
		<requiredname>FileManager</requiredname>
		<requiredversion>1.6.13</requiredversion>
	</requires>
	<file>
		<filename>/AWSS3.module.php</filename>
		<isdir>0</isdir>
		<data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgU2VlIExJQ0VOU0UgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmlmICghZGVmaW5lZCgnQ01TX1ZFUlNJT04nKSkgZXhpdDsKCnVzZSBcQVdTUzNcdXRpbHM7CgpjbGFzcyBBV1NTMyBleHRlbmRzIENNU01vZHVsZQp7CiAgICBjb25zdCBNQU5BR0VfUEVSTSA9ICdtYW5hZ2VfQVdTUzMnOwogICAgY29uc3QgVEFCTEVfQlVDS0VUUyA9ICdtb2RfYXdzczNfYnVja2V0cyc7CgogICAgcHVibGljIGZ1bmN0aW9uIEdldE5hbWUoKSB7IHJldHVybiAnQVdTUzMnOyB9CiAgICBwdWJsaWMgZnVuY3Rpb24gR2V0VmVyc2lvbigpIHsgcmV0dXJuICcyLjAuMCc7IH0KICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRGcmllbmRseU5hbWUoKSB7IHJldHVybiAkdGhpcy0+TGFuZygnZnJpZW5kbHluYW1lJyk7IH0KICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRBZG1pbkRlc2NyaXB0aW9uKCkgeyByZXR1cm4gJHRoaXMtPkxhbmcoJ2FkbWluZGVzY3JpcHRpb24nKTsgfQogICAgcHVibGljIGZ1bmN0aW9uIElzUGx1Z2luTW9kdWxlKCkgeyByZXR1cm4gdHJ1ZTsgfQogICAgcHVibGljIGZ1bmN0aW9uIEhhc0FkbWluKCkgeyByZXR1cm4gdHJ1ZTsgfQogICAgcHVibGljIGZ1bmN0aW9uIEdldEhlYWRlckhUTUwoKSB7IHJldHVybiAkdGhpcy0+X291dHB1dF9oZWFkZXJfYXNzZXRzKCk7IH0KICAgIHB1YmxpYyBmdW5jdGlvbiBWaXNpYmxlVG9BZG1pblVzZXIoKSB7IHJldHVybiAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKHNlbGY6Ok1BTkFHRV9QRVJNKTsgfQogICAgcHVibGljIGZ1bmN0aW9uIEdldEF1dGhvcigpIHsgcmV0dXJuICdNYWdhbCBIZXppJzsgfQogICAgcHVibGljIGZ1bmN0aW9uIEdldEF1dGhvckVtYWlsKCkgeyByZXR1cm4gJ2luZm9AcGl4ZWxzb2x1dGlvbnMuYml6JzsgfQogICAgcHVibGljIGZ1bmN0aW9uIFVuaW5zdGFsbFByZU1lc3NhZ2UoKSB7IHJldHVybiAkdGhpcy0+TGFuZygnYXNrX3VuaW5zdGFsbCcpOyB9CiAgICBwdWJsaWMgZnVuY3Rpb24gR2V0QWRtaW5TZWN0aW9uKCkgeyByZXR1cm4gJ2NvbnRlbnQnOyB9CiAgICBwdWJsaWMgZnVuY3Rpb24gTWluaW11bUNNU1ZlcnNpb24oKSB7IHJldHVybiAnMi4yLjE0JzsgfQogICAgcHVibGljIGZ1bmN0aW9uIEdldERlcGVuZGVuY2llcygpIHsgcmV0dXJuIFsnQVdTU0RLJyA9PiAnMS4yLjAnLCAnRmlsZU1hbmFnZXInID0+ICcxLjYuMTMnXTsgfQogICAgcHVibGljIGZ1bmN0aW9uIExhenlMb2FkQWRtaW4oKSB7IHJldHVybiB0cnVlOyB9CgogICAgcHVibGljIGZ1bmN0aW9uIEluaXRpYWxpemVGcm9udGVuZCgpCiAgICB7CiAgICAgICAgJHRoaXMtPlJlZ2lzdGVyTW9kdWxlUGx1Z2luKCk7CiAgICAgICAgJHRoaXMtPlJlc3RyaWN0VW5rbm93blBhcmFtcygpOwoKICAgICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnYWN0aW9uJywgQ0xFQU5fU1RSSU5HKTsKICAgICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnYnVja2V0JywgQ0xFQU5fU1RSSU5HKTsKICAgICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgncHJlZml4JywgQ0xFQU5fU1RSSU5HKTsKICAgICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgncGFnZW51bWJlcicsIENMRUFOX0lOVCk7CiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3BhZ2VsaW1pdCcsIENMRUFOX0lOVCk7CiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3N1bW1hcnl0ZW1wbGF0ZScsIENMRUFOX1NUUklORyk7CiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2RldGFpbHBhZ2UnLCBDTEVBTl9TVFJJTkcpOwogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdkZXRhaWx0ZW1wbGF0ZScsIENMRUFOX1NUUklORyk7CiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3RlbXBsYXRlJywgQ0xFQU5fU1RSSU5HKTsKICAgICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnbm9jYXB0Y2hhJywgQ0xFQU5fSU5UKTsKICAgICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgncmVkaXJlY3QnLCBDTEVBTl9TVFJJTkcpOwogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdkZWJ1ZycsIENMRUFOX0lOVCk7CiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2tleScsIENMRUFOX1NUUklORyk7CiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2p1bmsnLCBDTEVBTl9TVFJJTkcpOwogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdyZXR1cm5pZCcsIENMRUFOX0lOVCk7CgogICAgICAgICR0aGlzLT5SZWdpc3RlclJvdXRlKCcvW1NzXTNcL1tTc11cLyg/UDxrZXk+Lio/KSQvJywgYXJyYXkoJ2FjdGlvbicgPT4gJ3NpZ25lZCcpKTsKICAgICAgICAkdGhpcy0+UmVnaXN0ZXJSb3V0ZSgnL1tTc10zXC9bRmZdaWxlXC8oP1A8cHJlZml4Pi4qKVwvKD9QPHJldHVybmlkPlswLTldKykkLycsIGFycmF5KCdhY3Rpb24nID0+ICdkZXRhaWwnKSk7CiAgICAgICAgJHRoaXMtPlJlZ2lzdGVyUm91dGUoJy9bU3NdM1wvW0ZmXWlsZVwvKD9QPHByZWZpeD4uKilcLyg/UDxyZXR1cm5pZD5bMC05XSspXC8oP1A8anVuaz4uKj8pJC8nLCBhcnJheSgnYWN0aW9uJyA9PiAnZGV0YWlsJykpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBJbml0aWFsaXplQWRtaW4oKQogICAgewogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJzKCk7CiAgICB9CgogICAgLyoqCiAgICAgKiBQcm92aWRlIEVDQjIgZmllbGQgdHlwZXMgZnJvbSB0aGlzIG1vZHVsZS4KICAgICAqIENhbGxlZCBieSBFQ0IyIHdoZW4gaXQgc2NhbnMgbW9kdWxlcyBmb3IgZXh0ZXJuYWwgZmllbGQgdHlwZSBwcm92aWRlcnMuCiAgICAgKgogICAgICogQHJldHVybiBhcnJheSBbJ2ZpZWxkX3R5cGVfbmFtZScgPT4gJy9wYXRoL3RvL2NsYXNzX2ZpbGUucGhwJ10KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIEdldEVDQjJGaWVsZFR5cGVzKCkKICAgIHsKICAgICAgICByZXR1cm4gWwogICAgICAgICAgICAnczNfZmlsZV9waWNrZXInICAgID0+IF9fRElSX18gLiAnL2xpYi9maWVsZGRlZnMvZWNiMi9jbGFzcy5lY2IyZmRfczNfZmlsZV9waWNrZXIucGhwJywKICAgICAgICAgICAgJ3MzX2ZpbGVfc2VsZWN0b3InICA9PiBfX0RJUl9fIC4gJy9saWIvZmllbGRkZWZzL2VjYjIvY2xhc3MuZWNiMmZkX3MzX2ZpbGVfc2VsZWN0b3IucGhwJywKICAgICAgICBdOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRIZWxwKCkgeyByZXR1cm4gQGZpbGVfZ2V0X2NvbnRlbnRzKF9fRElSX18gLiAnL2RvYy9oZWxwLmluYycpOyB9CiAgICBwdWJsaWMgZnVuY3Rpb24gR2V0Q2hhbmdlTG9nKCkgeyByZXR1cm4gQGZpbGVfZ2V0X2NvbnRlbnRzKF9fRElSX18gLiAnL2RvYy9jaGFuZ2Vsb2cuaW5jJyk7IH0KCiAgICAvKioKICAgICAqIEdldCBhIGJ1Y2tldCByb3cgYnkgSUQuIElmIG5vIElEIGdpdmVuLCByZXR1cm5zIHRoZSBkZWZhdWx0IGJ1Y2tldC4KICAgICAqCiAgICAgKiBAcGFyYW0gaW50fG51bGwgJGJ1Y2tldF9pZAogICAgICogQHJldHVybiBvYmplY3R8bnVsbAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gR2V0QnVja2V0KCRidWNrZXRfaWQgPSBudWxsKQogICAgewogICAgICAgICRkYiA9IFxjbXNfdXRpbHM6OmdldF9kYigpOwogICAgICAgIGlmICgkYnVja2V0X2lkKSB7CiAgICAgICAgICAgICRyb3cgPSAkZGItPkdldFJvdygKICAgICAgICAgICAgICAgICdTRUxFQ1QgKiBGUk9NICcgLiBDTVNfREJfUFJFRklYIC4gc2VsZjo6VEFCTEVfQlVDS0VUUyAuICcgV0hFUkUgaWQgPSA/JywKICAgICAgICAgICAgICAgIFsoaW50KSAkYnVja2V0X2lkXQogICAgICAgICAgICApOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICRyb3cgPSAkZGItPkdldFJvdygKICAgICAgICAgICAgICAgICdTRUxFQ1QgKiBGUk9NICcgLiBDTVNfREJfUFJFRklYIC4gc2VsZjo6VEFCTEVfQlVDS0VUUyAuICcgV0hFUkUgaXNfZGVmYXVsdCA9IDEnCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIGlmICghJHJvdykgcmV0dXJuIG51bGw7CiAgICAgICAgcmV0dXJuIChvYmplY3QpICRyb3c7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgYWxsIGRlZmluZWQgYnVja2V0cyBvcmRlcmVkIGJ5IHNvcnRfb3JkZXIuCiAgICAgKgogICAgICogQHJldHVybiBhcnJheQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gR2V0QnVja2V0cygpCiAgICB7CiAgICAgICAgJGRiID0gXGNtc191dGlsczo6Z2V0X2RiKCk7CiAgICAgICAgJHJvd3MgPSAkZGItPkdldEFycmF5KAogICAgICAgICAgICAnU0VMRUNUICogRlJPTSAnIC4gQ01TX0RCX1BSRUZJWCAuIHNlbGY6OlRBQkxFX0JVQ0tFVFMgLiAnIE9SREVSIEJZIHNvcnRfb3JkZXIsIGlkJwogICAgICAgICk7CiAgICAgICAgaWYgKCEkcm93cykgcmV0dXJuIFtdOwogICAgICAgICRvdXQgPSBbXTsKICAgICAgICBmb3JlYWNoICgkcm93cyBhcyAkcm93KSB7CiAgICAgICAgICAgICRvdXRbXSA9IChvYmplY3QpICRyb3c7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkb3V0OwogICAgfQoKICAgIC8qKgogICAgICogUmVzb2x2ZSBhIGJ1Y2tldCBmcm9tIGZyb250ZW5kIHBhcmFtcy4gVXNlcyAnYnVja2V0JyBwYXJhbSBpZiBnaXZlbiwgb3RoZXJ3aXNlIGRlZmF1bHQgYnVja2V0LgogICAgICoKICAgICAqIEBwYXJhbSBhcnJheSAkcGFyYW1zCiAgICAgKiBAcmV0dXJuIG9iamVjdHxudWxsCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBSZXNvbHZlQnVja2V0KGFycmF5ICRwYXJhbXMpCiAgICB7CiAgICAgICAgaWYgKCFpc3NldCgkcGFyYW1zWydidWNrZXQnXSkgfHwgJHBhcmFtc1snYnVja2V0J10gPT09ICcnKSB7CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+R2V0QnVja2V0KCk7CiAgICAgICAgfQogICAgICAgICR2YWwgPSB0cmltKCRwYXJhbXNbJ2J1Y2tldCddKTsKICAgICAgICAvLyBJZiBudW1lcmljLCBsb29rIHVwIGJ5IElECiAgICAgICAgaWYgKGlzX251bWVyaWMoJHZhbCkpIHsKICAgICAgICAgICAgJGJ1Y2tldCA9ICR0aGlzLT5HZXRCdWNrZXQoKGludCkgJHZhbCk7CiAgICAgICAgICAgIGlmICgkYnVja2V0KSByZXR1cm4gJGJ1Y2tldDsKICAgICAgICB9CiAgICAgICAgLy8gT3RoZXJ3aXNlIGxvb2sgdXAgYnkgYnVja2V0X25hbWUgKGFsaWFzKQogICAgICAgICRkYiA9IFxjbXNfdXRpbHM6OmdldF9kYigpOwogICAgICAgICRyb3cgPSAkZGItPkdldFJvdygKICAgICAgICAgICAgJ1NFTEVDVCAqIEZST00gJyAuIENNU19EQl9QUkVGSVggLiBzZWxmOjpUQUJMRV9CVUNLRVRTIC4gJyBXSEVSRSBidWNrZXRfbmFtZSA9ID8nLAogICAgICAgICAgICBbJHZhbF0KICAgICAgICApOwogICAgICAgIGlmICgkcm93KSByZXR1cm4gKG9iamVjdCkgJHJvdzsKICAgICAgICByZXR1cm4gbnVsbDsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCB0aGUgcHVibGljIFVSTCBmb3IgYSBidWNrZXQgKGN1c3RvbSBVUkwgb3Igc3RhbmRhcmQgUzMgVVJMKS4KICAgICAqCiAgICAgKiBAcGFyYW0gb2JqZWN0ICRidWNrZXQKICAgICAqIEBwYXJhbSBzdHJpbmd8bnVsbCAkcHJlZml4CiAgICAgKiBAcmV0dXJuIHN0cmluZwogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gR2V0QnVja2V0VXJsKCRidWNrZXQsICRwcmVmaXggPSBudWxsKQogICAgewogICAgICAgIGlmICghZW1wdHkoJGJ1Y2tldC0+Y3VzdG9tX3VybCkpIHsKICAgICAgICAgICAgJHVybCA9IHJ0cmltKCRidWNrZXQtPmN1c3RvbV91cmwsICcvJyk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJHVybCA9ICJodHRwczovL3skYnVja2V0LT5idWNrZXRfbmFtZX0uczMueyRidWNrZXQtPnJlZ2lvbn0uYW1hem9uYXdzLmNvbSI7CiAgICAgICAgfQogICAgICAgIGlmICgkcHJlZml4KSB7CiAgICAgICAgICAgIHJldHVybiAkdXJsIC4gJy8nIC4gJHByZWZpeDsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICR1cmw7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIENyZWF0ZVNpZ25lZExpbmsoJG5hbWUsICRidWNrZXQgPSBudWxsKQogICAgewogICAgICAgIGlmICghJGJ1Y2tldCkgJGJ1Y2tldCA9ICR0aGlzLT5HZXRCdWNrZXQoKTsKICAgICAgICAkYmFzZV91cmwgPSBDTVNfUk9PVF9VUkw7CiAgICAgICAgJHBheWxvYWQgPSAkYnVja2V0LT5pZCAuICd8JyAuICRuYW1lOwogICAgICAgICRlbmNvZGVkID0gXEFXU1NES1xlbmNyeXB0OjplbmNvZGVmaWxlbmFtZSgkcGF5bG9hZCk7CiAgICAgICAgcmV0dXJuICRiYXNlX3VybCAuICIvUzMvcy8iIC4gJGVuY29kZWQ7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIENyZWF0ZVByZXR0eUxpbmsoJHBhZ2UsICRwcmVmaXgpCiAgICB7CiAgICAgICAgJGJhc2VfdXJsID0gQ01TX1JPT1RfVVJMOwogICAgICAgIHJldHVybiAkYmFzZV91cmwgLiAiL1MzLyIgLiAkcGFnZSAuICIvIiAuICRwcmVmaXg7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldENhY2hlRmlsZSgkcXBhcm1zKQogICAgewogICAgICAgICRidWNrZXRfaWQgPSBpc3NldCgkcXBhcm1zWydidWNrZXRfaWQnXSkgPyAkcXBhcm1zWydidWNrZXRfaWQnXSA6IChpc3NldCgkcXBhcm1zWydidWNrZXQnXSkgPyAkcXBhcm1zWydidWNrZXQnXSA6IDApOwogICAgICAgICRwcmVmaXggPSBpc3NldCgkcXBhcm1zWydwcmVmaXgnXSkgPyAkcXBhcm1zWydwcmVmaXgnXSA6ICcnOwogICAgICAgIHJldHVybiBcQVdTUzNcdXRpbHM6OmdldENhY2hlRmlsZSgkYnVja2V0X2lkLCAkcHJlZml4KTsKICAgIH0KCiAgICAvKioKICAgICAqIENsZWFyIHRoZSBjYWNoZSBmaWxlIGZvciBhIGdpdmVuIGJ1Y2tldC9wcmVmaXguCiAgICAgKgogICAgICogQHBhcmFtIGludCAgICAkYnVja2V0X2lkCiAgICAgKiBAcGFyYW0gc3RyaW5nICRwcmVmaXgKICAgICAqIEByZXR1cm4gYm9vbAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gY2xlYXJCdWNrZXRDYWNoZSgkYnVja2V0X2lkLCAkcHJlZml4ID0gJycpCiAgICB7CiAgICAgICAgcmV0dXJuIFxBV1NTM1x1dGlsczo6Y2xlYXJCdWNrZXRDYWNoZSgkYnVja2V0X2lkLCAkcHJlZml4KTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gR2V0RmlsZUljb24oJGV4dGVuc2lvbiwgJGlzZGlyID0gZmFsc2UpCiAgICB7CiAgICAgICAgaWYgKGVtcHR5KCRleHRlbnNpb24pKSAkZXh0ZW5zaW9uID0gJy0tLSc7CiAgICAgICAgaWYgKCRleHRlbnNpb25bMF0gPT0gIi4iKSAkZXh0ZW5zaW9uID0gc3Vic3RyKCRleHRlbnNpb24sIDEpOwogICAgICAgICRjb25maWcgPSBcY21zX2NvbmZpZzo6Z2V0X2luc3RhbmNlKCk7CiAgICAgICAgJGljb25zaXplID0gJHRoaXMtPkdldFByZWZlcmVuY2UoImljb25zaXplIiwgIjMycHgiKTsKICAgICAgICAkaWNvbnNpemVIZWlnaHQgPSBzdHJfcmVwbGFjZSgicHgiLCAiIiwgJGljb25zaXplKTsKCiAgICAgICAgaWYgKCRpc2RpcikgewogICAgICAgICAgICByZXR1cm4gIjxpbWcgaGVpZ2h0PVwieyRpY29uc2l6ZUhlaWdodH1cIiBzdHlsZT1cImJvcmRlcjowO1wiIHNyYz1cInskY29uZmlnWydyb290X3VybCddfS9tb2R1bGVzL0ZpbGVNYW5hZ2VyL2ljb25zL3RoZW1lcy9kZWZhdWx0L2V4dGVuc2lvbnMveyRpY29uc2l6ZX0vZGlyLnBuZ1wiIGFsdD1cImRpcmVjdG9yeVwiIGFsaWduPVwibWlkZGxlXCIgLz4iOwogICAgICAgIH0KCiAgICAgICAgJGV4dF9sb3dlciA9IHN0cnRvbG93ZXIoJGV4dGVuc2lvbik7CiAgICAgICAgaWYgKGZpbGVfZXhpc3RzKCRjb25maWdbInJvb3RfcGF0aCJdIC4gIi9tb2R1bGVzL0ZpbGVNYW5hZ2VyL2ljb25zL3RoZW1lcy9kZWZhdWx0L2V4dGVuc2lvbnMveyRpY29uc2l6ZX0veyRleHRfbG93ZXJ9LnBuZyIpKSB7CiAgICAgICAgICAgIHJldHVybiAiPGltZyBoZWlnaHQ9J3skaWNvbnNpemVIZWlnaHR9JyBzdHlsZT0nYm9yZGVyOjA7JyBzcmM9J3skY29uZmlnWydyb290X3VybCddfS9tb2R1bGVzL0ZpbGVNYW5hZ2VyL2ljb25zL3RoZW1lcy9kZWZhdWx0L2V4dGVuc2lvbnMveyRpY29uc2l6ZX0veyRleHRfbG93ZXJ9LnBuZycgYWx0PSd7JGV4dGVuc2lvbn0tZmlsZScgYWxpZ249J21pZGRsZScgLz4iOwogICAgICAgIH0KICAgICAgICByZXR1cm4gIjxpbWcgaGVpZ2h0PSd7JGljb25zaXplSGVpZ2h0fScgc3R5bGU9J2JvcmRlcjowOycgc3JjPSd7JGNvbmZpZ1sncm9vdF91cmwnXX0vbW9kdWxlcy9GaWxlTWFuYWdlci9pY29ucy90aGVtZXMvZGVmYXVsdC9leHRlbnNpb25zL3skaWNvbnNpemV9LzAucG5nJyBhbHQ9J3skZXh0ZW5zaW9ufS1maWxlJyBhbGlnbj0nbWlkZGxlJyAvPiI7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBwYWdlX3R5cGVfbGFuZ19jYWxsYmFjaygkc3RyKQogICAgewogICAgICAgICRtb2QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0FXU1MzJyk7CiAgICAgICAgaWYgKGlzX29iamVjdCgkbW9kKSkgcmV0dXJuICRtb2QtPkxhbmcoJ3R5cGVfJyAuICRzdHIpOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gdGVtcGxhdGVfaGVscF9jYWxsYmFjaygkc3RyKQogICAgewogICAgICAgICRtb2QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0FXU1MzJyk7CiAgICAgICAgaWYgKGlzX29iamVjdCgkbW9kKSkgewogICAgICAgICAgICAkZmlsZSA9ICRtb2QtPkdldE1vZHVsZVBhdGgoKSAuICcvUkVBRE1FLm1kJzsKICAgICAgICAgICAgaWYgKGlzX2ZpbGUoJGZpbGUpKSByZXR1cm4gZmlsZV9nZXRfY29udGVudHMoJGZpbGUpOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHJlc2V0X3BhZ2VfdHlwZV9kZWZhdWx0cyhDbXNMYXlvdXRUZW1wbGF0ZVR5cGUgJHR5cGUpCiAgICB7CiAgICAgICAgaWYgKCR0eXBlLT5nZXRfb3JpZ2luYXRvcigpICE9ICdBV1NTMycpIHRocm93IG5ldyBDbXNMb2dpY0V4Y2VwdGlvbignQ2Fubm90IHJlc2V0IGNvbnRlbnRzIGZvciB0aGlzIHRlbXBsYXRlIHR5cGUnKTsKCiAgICAgICAgJGZuID0gbnVsbDsKICAgICAgICBzd2l0Y2ggKCR0eXBlLT5nZXRfbmFtZSgpKSB7CiAgICAgICAgICAgIGNhc2UgJ3N1bW1hcnknOgogICAgICAgICAgICAgICAgJGZuID0gJ29yaWdfc3VtbWFyeV90ZW1wbGF0ZS50cGwnOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgJ2RldGFpbCc6CiAgICAgICAgICAgICAgICAkZm4gPSAnb3JpZ19kZXRhaWxfdGVtcGxhdGUudHBsJzsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICd1cGxvYWQnOgogICAgICAgICAgICAgICAgJGZuID0gJ29yaWdfdXBsb2FkZm9ybV90ZW1wbGF0ZS50cGwnOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQoKICAgICAgICAkZm4gPSBjbXNfam9pbl9wYXRoKF9fRElSX18sICd0ZW1wbGF0ZXMnLCAkZm4pOwogICAgICAgIGlmIChmaWxlX2V4aXN0cygkZm4pKSByZXR1cm4gQGZpbGVfZ2V0X2NvbnRlbnRzKCRmbik7CiAgICB9CgogICAgLyoqCiAgICAgKiBEb0V2ZW50IG1ldGhvZHMKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIERvRXZlbnQoJG9yaWdpbmF0b3IsICRldmVudG5hbWUsICYkcGFyYW1zKQogICAgewogICAgICAgIGlmICgkb3JpZ2luYXRvciA9PSAnQ29yZScgJiYgJGV2ZW50bmFtZSA9PSAnQ29udGVudFBvc3RSZW5kZXInKSB7CiAgICAgICAgICAgICRwb3NfdG9wID0gc3RyaXBvcygkcGFyYW1zWyJjb250ZW50Il0sICI8L2hlYWQiKTsKICAgICAgICAgICAgaWYgKCRwb3NfdG9wICE9PSBmYWxzZSAmJiAhZW1wdHkoJHRoaXMtPkZyb250RW5kQ1NTKSkgewogICAgICAgICAgICAgICAgJHBhcmFtc1siY29udGVudCJdID0gc3Vic3RyKCRwYXJhbXNbImNvbnRlbnQiXSwgMCwgJHBvc190b3ApIC4gJHRoaXMtPkZyb250RW5kQ1NTIC4gc3Vic3RyKCRwYXJhbXNbImNvbnRlbnQiXSwgJHBvc190b3ApOwogICAgICAgICAgICB9CiAgICAgICAgICAgICRwb3NfYnRtID0gc3Rycmlwb3MoJHBhcmFtc1siY29udGVudCJdLCAiPC9ib2R5Iik7CiAgICAgICAgICAgIGlmICgkcG9zX2J0bSAhPT0gZmFsc2UgJiYgIWVtcHR5KCR0aGlzLT5Gcm9udEVuZEpTKSkgewogICAgICAgICAgICAgICAgJHBhcmFtc1siY29udGVudCJdID0gc3Vic3RyKCRwYXJhbXNbImNvbnRlbnQiXSwgMCwgJHBvc19idG0pIC4gJHRoaXMtPkZyb250RW5kSlMgLiBzdWJzdHIoJHBhcmFtc1siY29udGVudCJdLCAkcG9zX2J0bSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIF9vdXRwdXRfaGVhZGVyX2Fzc2V0cygpCiAgICB7CiAgICAgICAgJG91dCA9ICcnOwogICAgICAgICR1cmxwYXRoID0gJHRoaXMtPkdldE1vZHVsZVVSTFBhdGgoKSAuICIvanMiOwogICAgICAgICRqc2ZpbGVzID0gWwogICAgICAgICAgICAnanF1ZXJ5LWZpbGUtdXBsb2FkL2pxdWVyeS5pZnJhbWUtdHJhbnNwb3J0LmpzJywKICAgICAgICAgICAgJ2pxdWVyeS1maWxlLXVwbG9hZC9qcXVlcnkuZmlsZXVwbG9hZC5qcycsCiAgICAgICAgICAgICdqcmFjL2pxdWVyeS5qcmFjLmpzJywKICAgICAgICBdOwoKICAgICAgICAkZm10ID0gJzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IiVzLyVzIj48L3NjcmlwdD4nOwogICAgICAgIGZvcmVhY2ggKCRqc2ZpbGVzIGFzICRvbmUpIHsKICAgICAgICAgICAgJG91dCAuPSBzcHJpbnRmKCRmbXQsICR1cmxwYXRoLCAkb25lKSAuICJcbiI7CiAgICAgICAgfQoKICAgICAgICAkdXJscGF0aCA9ICR0aGlzLT5HZXRNb2R1bGVVUkxQYXRoKCk7CiAgICAgICAgJGZtdCA9ICc8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSIlcy8lcyIvPic7CiAgICAgICAgJGNzc2ZpbGVzID0gWydqcy9qcmFjL3N0eWxlLmpyYWMuY3NzJywgJ2Nzcy9zdHlsZS5jc3MnXTsKICAgICAgICBmb3JlYWNoICgkY3NzZmlsZXMgYXMgJG9uZSkgewogICAgICAgICAgICAkb3V0IC49IHNwcmludGYoJGZtdCwgJHVybHBhdGgsICRvbmUpOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuICRvdXQ7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIF9vdXRwdXRfZnJvbnRlbmRfY3NzKCkKICAgIHsKICAgICAgICAkb3V0ID0gJyc7CiAgICAgICAgJHVybHBhdGggPSAkdGhpcy0+R2V0TW9kdWxlVVJMUGF0aCgpOwogICAgICAgICRmbXQgPSAnPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iJXMvJXMiLz4nOwogICAgICAgICRjc3NmaWxlcyA9IFsnY3NzL3N0eWxlLmNzcyddOwogICAgICAgIGZvcmVhY2ggKCRjc3NmaWxlcyBhcyAkb25lKSB7CiAgICAgICAgICAgICRvdXQgLj0gc3ByaW50ZigkZm10LCAkdXJscGF0aCwgJG9uZSk7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkb3V0OwogICAgfQoKICAgIGZpbmFsIHB1YmxpYyBmdW5jdGlvbiBHZXRPcHRpb25WYWx1ZSgka2V5LCAkZGVmYXVsdCA9ICcnKQogICAgewogICAgICAgICR2YWx1ZSA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCRrZXkpOwogICAgICAgIGlmIChpc3NldCgkdmFsdWUpICYmICR2YWx1ZSAhPT0gJycpIHsKICAgICAgICAgICAgcmV0dXJuICR2YWx1ZTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRkZWZhdWx0OwogICAgfQoKICAgIGZpbmFsIHB1YmxpYyBmdW5jdGlvbiBTZXRPcHRpb25WYWx1ZSgka2V5LCAkdmFsdWUpIDogdm9pZAogICAgewogICAgICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCRrZXksICR2YWx1ZSk7CiAgICB9Cn0K]]></data>
	</file>
	<file>
		<filename>/action.admin_fileview.php</filename>
		<isdir>0</isdir>
		<data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBTZWUgTElDRU5TRSBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCm5hbWVzcGFjZSBBV1NTMzsNCg0KaWYgKCFkZWZpbmVkKCdDTVNfVkVSU0lPTicpKSBleGl0Ow0KDQp1c2UgXEFXU1NES1xlbmNyeXB0Ow0KDQppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJHRoaXM6Ok1BTkFHRV9QRVJNKSApIHJldHVybjsNCg0KJGJ1Y2tldF9pZCA9IGlzc2V0KCRwYXJhbXNbJ2J1Y2tldF9pZCddKSA/IChpbnQpICRwYXJhbXNbJ2J1Y2tldF9pZCddIDogKGlzc2V0KCRidWNrZXRfaWQpID8gKGludCkgJGJ1Y2tldF9pZCA6IDApOw0KJGJ1Y2tldCA9IGlzc2V0KCRidWNrZXQpID8gJGJ1Y2tldCA6ICR0aGlzLT5HZXRCdWNrZXQoJGJ1Y2tldF9pZCk7DQokdGhpcy0+U2V0Q3VycmVudFRhYigkYnVja2V0X2lkKTsNCiRGaWxlTWFuYWdlciA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0ZpbGVNYW5hZ2VyJyk7DQokbm1pbnV0ZXMgPSAoaW50KSR0aGlzLT5HZXRQcmVmZXJlbmNlKCdleHBpcnlfaW50ZXJ2YWwnLCAxODApOw0KaWYgKCRubWludXRlcyA9PSAnJykgJG5taW51dGVzID0gMDsNCg0KaWYoIGlzc2V0KCRwYXJhbXNbImFqYXgiXSkpIHsNCiAgJGJ1Y2tldF9pZCA9ICRwYXJhbXNbImJ1Y2tldF9pZCJdOw0KICAkcHJlZml4ID0gJHBhcmFtc1sicHJlZml4Il07DQogICRzbWFydHktPmFzc2lnbignYWpheCcsIHRydWUpOw0KfQ0KDQppZiAoaXNzZXQoJHBhcmFtc1siZm1tZXNzYWdlIl0pICYmICRwYXJhbXNbImZtbWVzc2FnZSJdIT0iIikgew0KICAkY291bnQ9IiI7DQogIGlmIChpc3NldCgkcGFyYW1zWyJmbW1lc3NhZ2Vjb3VudCJdKSAmJiAkcGFyYW1zWyJmbW1lc3NhZ2Vjb3VudCJdIT0iIikgJGNvdW50PShpbnQpJHBhcmFtc1siZm1tZXNzYWdlY291bnQiXTsNCiAgJG1zZ2tleSA9IHByZWdfcmVwbGFjZSgnL1teYS16QS1aMC05X10vJywgJycsICRwYXJhbXNbImZtbWVzc2FnZSJdKTsNCiAgZWNobyAkdGhpcy0+U2hvd01lc3NhZ2UoJHRoaXMtPkxhbmcoJG1zZ2tleSwgJGNvdW50KSk7DQp9DQoNCmlmIChpc3NldCgkcGFyYW1zWyJmbWVycm9yIl0pICYmICRwYXJhbXNbImZtZXJyb3IiXSE9IiIpIHsNCiAgJGNvdW50PSIiOw0KICBpZiAoaXNzZXQoJHBhcmFtc1siZm1lcnJvcmNvdW50Il0pICYmICRwYXJhbXNbImZtZXJyb3Jjb3VudCJdIT0iIikgJGNvdW50PShpbnQpJHBhcmFtc1siZm1lcnJvcmNvdW50Il07DQogICRlcnJrZXkgPSBwcmVnX3JlcGxhY2UoJy9bXmEtekEtWjAtOV9dLycsICcnLCAkcGFyYW1zWyJmbWVycm9yIl0pOw0KICBlY2hvICR0aGlzLT5TaG93RXJyb3JzKCRGaWxlTWFuYWdlci0+TGFuZygkZXJya2V5LCAkY291bnQpKTsNCn0NCg0KJHBhZ2VsaW1pdCA9IChpbnQpICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdpdGVtc2Rpc3BsYXllZCcsIDI1KTsNCmlmICghJHBhZ2VsaW1pdCkgJHBhZ2VsaW1pdCA9IDI1Ow0KJHBhZ2Vjb3VudCA9IC0xOw0KJHN0YXJ0ZWxlbWVudCA9IDA7DQokcGFnZW51bWJlciA9IDE7DQoNCmlmKCBpc3NldCggJHBhcmFtc1sncGFnZW51bWJlciddICkgJiYgJHBhcmFtc1sncGFnZW51bWJlciddICE9PSAnJyApIHsNCiAgJHBhZ2VudW1iZXIgPSAoaW50KSRwYXJhbXNbJ3BhZ2VudW1iZXInXTsNCiAgJHN0YXJ0ZWxlbWVudCA9ICgkcGFnZW51bWJlci0xKSAqICRwYWdlbGltaXQ7DQp9DQokZW5kZWxlbWVudCA9ICRzdGFydGVsZW1lbnQgKyAkcGFnZWxpbWl0IC0gMTsNCg0KJHFwYXJtcyA9IGFycmF5KCk7DQokcXBhcm1zWydidWNrZXRfaWQnXSA9ICRidWNrZXRfaWQ7DQokcXBhcm1zWydidWNrZXRfb2JqJ10gPSAkYnVja2V0Ow0KJHFwYXJtc1sncHJlZml4J10gPSAkcGFyYW1zWyJwcmVmaXgiXTsNCiRxcGFybXNbJ3JldHVybmlkJ10gPSAkcmV0dXJuaWQ7DQokc21hcnR5LT5hc3NpZ24oJ3FwYXJtcycsJHFwYXJtcyk7DQoNCiRqc29uX2ZpbGVfUGF0aCA9ICR0aGlzLT5nZXRDYWNoZUZpbGUoJHFwYXJtcyk7DQppZigkbm1pbnV0ZXMgPT0gMCkgew0KICAkZGF0YSA9IGJ1Y2tldF9xdWVyeTo6Y2FjaGVfcXVlcnkoJHFwYXJtcywkanNvbl9maWxlX1BhdGgpOw0KfSBlbHNlIHsNCg0KICBpZiAoIWZpbGVfZXhpc3RzKCRqc29uX2ZpbGVfUGF0aCkpIHsNCiAgICAgICRkYXRhID0gYnVja2V0X3F1ZXJ5OjpjYWNoZV9xdWVyeSgkcXBhcm1zLCRqc29uX2ZpbGVfUGF0aCk7DQogIH0gZWxzZSB7DQoNCiAgICAgICRqc29uID0gZmlsZV9nZXRfY29udGVudHMoJGpzb25fZmlsZV9QYXRoKTsNCiAgICAgICR0bXAgPSBlbmNyeXB0OjpkZWNyeXB0KCRqc29uKTsNCiAgICAgICRkYXRhID0ganNvbl9kZWNvZGUoJHRtcCwgZmFsc2UpOw0KICANCiAgICAgICRlbmRkYXRlICA9IHN0cnRvdGltZShzcHJpbnRmKCIrJWQgbWludXRlcyIsICRubWludXRlcyksICRkYXRhLT5kYXRlKTsNCiAgICAgIGlmICh0aW1lKCkgPj0gJGVuZGRhdGUpIHsNCiAgICAgICAgICAkZGF0YSA9IGJ1Y2tldF9xdWVyeTo6Y2FjaGVfcXVlcnkoJHFwYXJtcywkanNvbl9maWxlX1BhdGgpOw0KICAgICAgfQ0KDQogIH0NCn0NCg0KJHByZWZpeCA9ICRwYXJhbXNbJ3ByZWZpeCddPyRwYXJhbXNbJ3ByZWZpeCddOicnOw0KJHRtcF9wYXRoX3BhcnRzPWV4cGxvZGUoJy8nLCAkcHJlZml4KTsgDQoNCiRwYXRoX3BhcnRzID0gW107DQpmb3IoICRpID0gMDsgJGkgPCBjb3VudCgkdG1wX3BhdGhfcGFydHMpOyAkaSsrICkgew0KICAgICRvYmogPSBuZXcgXFN0ZENsYXNzOw0KICAgIGlmKCAhJHRtcF9wYXRoX3BhcnRzWyRpXSApIGNvbnRpbnVlOw0KICAgICRvYmotPm5hbWUgPSAkdG1wX3BhdGhfcGFydHNbJGldOw0KICAgIGlmKCAkb2JqLT5uYW1lID09ICc6OnRvcDo6JyApIHsNCiAgICAgICAgJG9iai0+bmFtZSA9ICdyb290JzsNCiAgICB9DQogICAgaWYoICRpIDwgY291bnQoJHRtcF9wYXRoX3BhcnRzKSAtIDEgKSB7DQogICAgICAgIC8vIG5vdCB0aGUgbGFzdCBlbnRyeQ0KICAgICAgICAkZnVsbHBhdGggPSBpbXBsb2RlKCcvJyxhcnJheV9zbGljZSgkdG1wX3BhdGhfcGFydHMsMCwkaSsxKSk7DQogICAgICAgIGlmKCBzdGFydHN3aXRoKCRmdWxscGF0aCwnOjp0b3A6OicpICkgJGZ1bGxwYXRoID0gc3Vic3RyKCRmdWxscGF0aCw3KTsNCiAgICAgICAgJG9iai0+dXJsID0gJHRoaXMtPmNyZWF0ZV91cmwoICRpZCwgJ2Jyb3dzZV9idWNrZXQnLCAnJyxbICdwcmVmaXgnID0+ICRmdWxscGF0aC4nLycsJ2J1Y2tldF9pZCc9PiRidWNrZXRfaWRdICk7DQoNCiAgICB9IGVsc2Ugew0KICAgICAgICAvLyB0aGUgbGFzdCBlbnRyeS4uLiBubyBsaW5rDQogICAgfQ0KICAgICRwYXRoX3BhcnRzW10gPSAkb2JqOw0KfQ0KDQokdXBfaG9tZSA9ICR0aGlzLT5jcmVhdGVfdXJsKCRpZCwgJ2Jyb3dzZV9idWNrZXQnLCAnJywgWydidWNrZXRfaWQnID0+ICRidWNrZXRfaWRdKTsNCiRzbWFydHktPmFzc2lnbigndXBfaG9tZScsJHVwX2hvbWUpOw0KJHNtYXJ0eS0+YXNzaWduKCd1cF9ob21lX2xhYmVsJywgJGJ1Y2tldC0+YnVja2V0X25hbWUpOw0KDQokcGFydHNfY291bnRlciA9IGNvdW50KCRwYXRoX3BhcnRzKTsNCmlmKCAkcGFydHNfY291bnRlciA+PSAxICkgew0KICAkdXBkaXIgPSB1dGlsczo6Z2V0VXBEaXIoJHBhdGhfcGFydHMpOw0KICAkaWNvbiA9ICRGaWxlTWFuYWdlci0+R2V0TW9kdWxlVVJMUGF0aCgpLicvaWNvbnMvdGhlbWVzL2RlZmF1bHQvYWN0aW9ucy9kaXJfdXAuZ2lmJzsNCiAgJGltZ190YWcgPSAnPGltZyBzcmM9IicuJGljb24uJyIgd2lkdGg9IjMyIiB0aXRsZT0iJy4kdGhpcy0+TGFuZygndGl0bGVfY2hhbmdldXBkaXInKS4nIi8+JzsNCiAgaWYoJHBhcnRzX2NvdW50ZXIgPiAxKXsNCiAgICAkcGFybXNbJ3ByZWZpeCddID0gJHVwZGlyOw0KICB9DQogICRwYXJtc1snYnVja2V0X2lkJ10gPSAkYnVja2V0X2lkOw0KICB1bnNldCgkcGFyYW1zWydwYWdlbnVtYmVyJ10pOw0KICANCiAgJHVwX2RpcnVybCA9ICR0aGlzLT5jcmVhdGVfdXJsKCAkaWQsICdicm93c2VfYnVja2V0JywgJycsJHBhcm1zKTsNCiAgJHVwX2Rpcmljb25saW5rID0gIjxhIGhyZWY9XCJ7JHVwX2RpcnVybH1cIiBjbGFzcz1cImRpcmxpbmtcIj57JGltZ190YWd9PC9hPiI7DQogICR1cF9kaXJsaW5rID0gIjxhIGNsYXNzPVwiY2FyZC1saW5rXCIgaHJlZj1cInskdXBfZGlydXJsfVwiIHRpdGxlPVwieyR0aGlzLT5MYW5nKCd0aXRsZV9jaGFuZ2V1cGRpcicpfVwiPi4uPC9hPiI7DQoNCiAgJHNtYXJ0eS0+YXNzaWduKCd1cF9kaXJ1cmwnLCR1cF9kaXJ1cmwpOw0KICAkc21hcnR5LT5hc3NpZ24oJ3VwX2Rpcmljb25saW5rJywkdXBfZGlyaWNvbmxpbmspOw0KICAkc21hcnR5LT5hc3NpZ24oJ3VwX2RpcmxpbmsnLCR1cF9kaXJsaW5rKTsNCg0KfQ0KDQokc21hcnR5LT5hc3NpZ24oJ3BhdGgnLCRwYXJhbXNbInByZWZpeCJdKTsNCiRzbWFydHktPmFzc2lnbigncGF0aF9wYXJ0cycsJHBhdGhfcGFydHMpOw0KDQokY291bnRmaWxlcyA9IGlzc2V0KCRkYXRhLT50b3RhbCkgPyAoaW50KSAkZGF0YS0+dG90YWwgOiAwOw0KJHBhZ2Vjb3VudCA9IChpbnQpKCRjb3VudGZpbGVzIC8gJHBhZ2VsaW1pdCk7DQppZiggKCRjb3VudGZpbGVzICUgJHBhZ2VsaW1pdCkgIT0gMCApICRwYWdlY291bnQrKzsNCg0KLy8gQ291bnQgZGlycyBhbmQgZmlsZXMgc2VwYXJhdGVseSwgc3VtIHJhdyBieXRlIHNpemVzDQokY291bnRkaXJzID0gMDsNCiRjb3VudGFjdHVhbGZpbGVzID0gMDsNCiR0b3RhbEJ5dGVzID0gMDsNCmlmIChpc3NldCgkZGF0YS0+aXRlbXMpICYmIGlzX2FycmF5KCRkYXRhLT5pdGVtcykpIHsNCiAgICBmb3JlYWNoICgkZGF0YS0+aXRlbXMgYXMgJGl0ZW0pIHsNCiAgICAgICAgaWYgKGlzc2V0KCRpdGVtLT5kaXIpICYmICRpdGVtLT5kaXIpIHsNCiAgICAgICAgICAgICRjb3VudGRpcnMrKzsNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICRjb3VudGFjdHVhbGZpbGVzKys7DQogICAgICAgICAgICBpZiAoaXNzZXQoJGl0ZW0tPnNpemUpICYmIGlzX251bWVyaWMoJGl0ZW0tPnNpemUpKSB7DQogICAgICAgICAgICAgICAgJHRvdGFsQnl0ZXMgKz0gKGludCkgJGl0ZW0tPnNpemU7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICB9DQp9DQokdG90YWxzaXplID0gdXRpbHM6OmZvcm1hdEJ5dGVzKCR0b3RhbEJ5dGVzKTsNCg0KLy8gYnVpbGQgZGlzcGxheQ0KJHNtYXJ0eS0+YXNzaWduKCdpdGVtY291bnQnLCAkY291bnRmaWxlcyk7DQokc21hcnR5LT5hc3NpZ24oJ2hpZGRlbnBhdGgnLCAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAicHJlZml4IiwgJHBhcmFtc1sicHJlZml4Il0pKTsNCiRzbWFydHktPmFzc2lnbignaGlkZGVuX2J1Y2tldF9pZCcsICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICJidWNrZXRfaWQiLCAkYnVja2V0X2lkKSk7DQokc21hcnR5LT5hc3NpZ24oJ2Zvcm1zdGFydCcsICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAnZmlsZWFjdGlvbicsICRyZXR1cm5pZCkpOw0KDQokY291bnRzID0gJyc7DQppZiAoJGNvdW50YWN0dWFsZmlsZXMgPiAwKSB7DQogICAgJGNvdW50cyAuPSAkdG90YWxzaXplIC4gIiAiIC4gJEZpbGVNYW5hZ2VyLT5MYW5nKCJpbiIpIC4gIiAiIC4gJGNvdW50YWN0dWFsZmlsZXMgLiAiICI7DQogICAgJGNvdW50cyAuPSAoJGNvdW50YWN0dWFsZmlsZXMgPT0gMSkgPyAkRmlsZU1hbmFnZXItPkxhbmcoImZpbGUiKSA6ICRGaWxlTWFuYWdlci0+TGFuZygiZmlsZXMiKTsNCn0gZWxzZSB7DQogICAgJGNvdW50cyAuPSAkY291bnRhY3R1YWxmaWxlcyAuICIgIiAuICRGaWxlTWFuYWdlci0+TGFuZygiZmlsZXMiKTsNCn0NCiRjb3VudHMgLj0gIiAiIC4gJEZpbGVNYW5hZ2VyLT5MYW5nKCJhbmQiKSAuICIgIiAuICRjb3VudGRpcnMgLiAiICI7DQokY291bnRzIC49ICgkY291bnRkaXJzID09IDEpID8gJEZpbGVNYW5hZ2VyLT5MYW5nKCJzdWJkaXIiKSA6ICRGaWxlTWFuYWdlci0+TGFuZygic3ViZGlycyIpOw0KJHNtYXJ0eS0+YXNzaWduKCdjb3VudHN0ZXh0JywgJGNvdW50cyk7DQoNCiRzbWFydHktPmFzc2lnbignZm9ybWVuZCcsICR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOw0KJHNtYXJ0eS0+YXNzaWduKCdidWNrZXRfaWQnLCAkYnVja2V0X2lkKTsNCiRzbWFydHktPmFzc2lnbignY2FjaGVmaWxlJywkanNvbl9maWxlX1BhdGgpOw0KJHNtYXJ0eS0+YXNzaWduKCdsYXN0dXBkYXRlJywgJGRhdGEtPmRhdGUpOw0KJHNtYXJ0eS0+YXNzaWduKCdwYWdlbnVtYmVyJywkcGFnZW51bWJlcik7DQokc21hcnR5LT5hc3NpZ24oJ3N0YXJ0ZWxlbWVudCcsJHN0YXJ0ZWxlbWVudCk7DQppZigkZW5kZWxlbWVudCA+PSAkY291bnRmaWxlcykkZW5kZWxlbWVudD0kY291bnRmaWxlcy0xOw0KJHNtYXJ0eS0+YXNzaWduKCdlbmRlbGVtZW50JywgJGVuZGVsZW1lbnQpOw0KJHNtYXJ0eS0+YXNzaWduKCdwYWdlY291bnQnLCRwYWdlY291bnQpOw0KJHNtYXJ0eS0+YXNzaWduKCdvZnRleHQnLCR0aGlzLT5MYW5nKCdwcm9tcHRfb2YnKSk7DQokc21hcnR5LT5hc3NpZ24oJ3BhZ2V0ZXh0JywkdGhpcy0+TGFuZygncHJvbXB0X3BhZ2UnKSk7DQoNCmlmICgkc3RhcnRlbGVtZW50IDwgMCB8fCAkc3RhcnRlbGVtZW50ID4gJGVuZGVsZW1lbnQpIHsNCiAgLy9lY2hvICJJbnZhbGlkIGluZGV4ZXMgc3RhcnRlbGVtZW50LiI7DQp9IGVsc2Ugew0KICAvLyBTbGljZSB0aGUgYXJyYXkgdG8gZXh0cmFjdCBlbGVtZW50cyBiZXR3ZWVuIHRoZSBpbmRleGVzDQogIA0KICAkc2VsZWN0ZWRJdGVtcyA9IGFycmF5X3NsaWNlKCRkYXRhLT5pdGVtcywgJHN0YXJ0ZWxlbWVudCwgJGVuZGVsZW1lbnQgLSAkc3RhcnRlbGVtZW50ICsgMSk7DQoNCiAgaWYoJHVwX2RpcnVybCl7DQogICAgJG9uZXJvdyA9IG5ldyBcc3RkQ2xhc3MoKTsNCiAgICAkb25lcm93LT51cmwgPSAkdXBfZGlydXJsOw0KICAgICRvbmVyb3ctPnVybF9saW5rID0gJHVwX2Rpcmxpbms7DQogICAgJG9uZXJvdy0+aWNvbl9saW5rID0gJG9uZXJvdy0+cHJlc2lnbmVkX2ljb25fbGluayA9ICR1cF9kaXJpY29ubGluazsNCiAgICAkb25lcm93LT50eXBlID0gYXJyYXkoJ2RpcicpOw0KICAgICRvbmVyb3ctPmRpciA9IHRydWU7DQogICAgJG9uZXJvdy0+bm9DaGVja2JveCA9IDE7DQogICAgJGVudHJ5YXJyYXlbXT0gJG9uZXJvdzsNCiAgfQ0KICBmb3JlYWNoKCAkc2VsZWN0ZWRJdGVtcyBhcyAkcm93ICkgew0KICAgICAgJG9uZXJvdyA9ICRyb3c7DQogICAgICBpZigkb25lcm93LT5kaXIpew0KICAgICAgICAgICRzZW5kdG9kZXRhaWwgPSBhcnJheSgncHJlZml4Jz0+JG9uZXJvdy0+a2V5LCAnYnVja2V0X2lkJz0+JGJ1Y2tldF9pZCk7DQogICAgICAgICAgaWYoIGlzc2V0KCAkcGFyYW1zWydwYWdlbGltaXQnXSApICkgew0KICAgICAgICAgICAgICAkc2VuZHRvZGV0YWlsID0gYXJyYXlfbWVyZ2UoJHNlbmR0b2RldGFpbCxhcnJheSgncGFnZWxpbWl0Jz0+JHBhZ2VsaW1pdCkpOw0KICAgICAgICAgIH0NCiAgICAgICAgICAkb25lcm93LT51cmwgPSAkdGhpcy0+Y3JlYXRlX3VybCgkaWQsJ2Jyb3dzZV9idWNrZXQnLCcnLCRzZW5kdG9kZXRhaWwpOw0KICAgICAgICAgICRvbmVyb3ctPnByZXNpZ25lZF9saW5rID0gIiI7DQogICAgICAgICAgJG9uZXJvdy0+dXJsX2xpbmsgPSAiPGEgaHJlZj0nIiAuICRvbmVyb3ctPnVybCAuICInIGNsYXNzPVwiZGlybGlua1wiIHRpdGxlPVwieyRGaWxlTWFuYWdlci0+TGFuZygndGl0bGVfY2hhbmdlZGlyJyl9XCI+IiAuICRvbmVyb3ctPm5hbWUgLiAiPC9hPiI7DQogICAgICAgICAgJG9uZXJvdy0+aWNvbl9saW5rID0gJG9uZXJvdy0+cHJlc2lnbmVkX2ljb25fbGluayA9ICI8YSBocmVmPSciIC4gJG9uZXJvdy0+dXJsIC4gIicgY2xhc3M9XCJkaXJsaW5rXCIgdGl0bGU9XCJ7JEZpbGVNYW5hZ2VyLT5MYW5nKCd0aXRsZV9jaGFuZ2VkaXInKX1cIj4iLiRyb3ctPmljb24uIjwvYT4iOw0KICAgICAgfQ0KICAgICAgJGVudHJ5YXJyYXlbXT0gJG9uZXJvdzsNCiAgfQ0KfQ0KDQokc21hcnR5LT5hc3NpZ24oJ3N0YXJ0ZGF0ZScsICRkYXRhLT5kYXRlKTsNCiRzbWFydHktPmFzc2lnbignZW5kZGF0ZScsICRlbmRkYXRlKTsNCiRzbWFydHktPmFzc2lnbignY2FjaGV0aW1lJywgJG5taW51dGVzKTsNCiRzbWFydHktPmFzc2lnbigncGF0aF9wYXJ0cycsJHBhdGhfcGFydHMpOw0KDQppZiggaXNzZXQoJHBhcmFtc1snbm9mb3JtJ10pICkgJHNtYXJ0eS0+YXNzaWduKCdub2Zvcm0nLDEpOw0KJHNtYXJ0eS0+YXNzaWduKCdyZWZyZXNoX3VybCcsJHRoaXMtPkNyZWF0ZV91cmwoJGlkLCdhZG1pbl9maWxldmlldycsJycsYXJyYXkoJ2FqYXgnPT4xLCdidWNrZXRfaWQnPT4kYnVja2V0X2lkLCdwcmVmaXgnPT4kcHJlZml4KSkpOw0KJHNtYXJ0eS0+YXNzaWduKCdGaWxlTWFuYWdlcicsJEZpbGVNYW5hZ2VyKTsNCiRzbWFydHktPmFzc2lnbignYXdzczNfaXRlbXMnLCAkZW50cnlhcnJheSk7DQoNCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnZmlsZW1hbmFnZXIudHBsJyk7DQoNCg==]]></data>
	</file>
	<file>
		<filename>/action.browse_bucket.php</filename>
		<isdir>0</isdir>
		<data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgU2VlIExJQ0VOU0UgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmlmICghZGVmaW5lZCgnQ01TX1ZFUlNJT04nKSkgZXhpdDsKaWYgKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKEFXU1MzOjpNQU5BR0VfUEVSTSkpIHJldHVybjsKCiRidWNrZXRfaWQgPSBpc3NldCgkcGFyYW1zWydidWNrZXRfaWQnXSkgPyAoaW50KSAkcGFyYW1zWydidWNrZXRfaWQnXSA6IDA7CiRidWNrZXQgPSAkdGhpcy0+R2V0QnVja2V0KCRidWNrZXRfaWQpOwoKaWYgKCEkYnVja2V0KSB7CiAgICAkdGhpcy0+U2V0RXJyb3IoJHRoaXMtPkxhbmcoJ2Vycm9yX2J1Y2tldF9ub3RfZm91bmQnKSk7CiAgICAkdGhpcy0+UmVkaXJlY3RUb0FkbWluVGFiKCk7Cn0KCi8vIEluY2x1ZGUgZXhpc3RpbmcgZmlsZSB2aWV3IGxvZ2ljIHdpdGggYnVja2V0IGNvbnRleHQKJHNka19tb2QgPSBcY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdBV1NTREsnKTsKJHMzX3V0aWxzID0gbmV3IFxBV1NTM1x1dGlscygkYnVja2V0KTsKCmlmICghJHMzX3V0aWxzLT52YWxpZGF0ZSgpKSB7CiAgICByZXR1cm47Cn0KCiRzbWFydHktPmFzc2lnbignYmFja191cmwnLCAkdGhpcy0+Y3JlYXRlX3VybCgkaWQsICdkZWZhdWx0YWRtaW4nLCAnJywgW10pKTsKJHNtYXJ0eS0+YXNzaWduKCdiYWNrX2xhYmVsJywgJHRoaXMtPkxhbmcoJ2JhY2tfdG9fYnVja2V0cycpKTsKCmluY2x1ZGUoX19ESVJfXyAuICcvYWN0aW9uLnVwbG9hZHZpZXcucGhwJyk7CmluY2x1ZGUoX19ESVJfXyAuICcvYWN0aW9uLmFkbWluX2ZpbGV2aWV3LnBocCcpOwo=]]></data>
	</file>
	<file>
		<filename>/action.default.php</filename>
		<isdir>0</isdir>
		<data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgU2VlIExJQ0VOU0UgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmlmICghZGVmaW5lZCgnQ01TX1ZFUlNJT04nKSkgZXhpdDsKCnVzZSBcQVdTUzNcYnVja2V0X3F1ZXJ5OwoKJG1vZF9mbSA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0ZpbGVNYW5hZ2VyJyk7CgovLyBSZXNvbHZlIGJ1Y2tldDogdXNlICdidWNrZXQnIHBhcmFtIChJRCkgb3IgZmFsbCBiYWNrIHRvIGRlZmF1bHQKJGJ1Y2tldCA9ICR0aGlzLT5SZXNvbHZlQnVja2V0KCRwYXJhbXMpOwoKaWYgKCEkYnVja2V0KSB7CiAgICAkdGhpcy0+X291dHB1dF9mcm9udGVuZF9jc3MoKTsKICAgIGVjaG8gJzxwIGNsYXNzPSJlcnJvciI+JyAuICR0aGlzLT5MYW5nKCdub19idWNrZXRzX2RlZmluZWQnKSAuICc8L3A+JzsKICAgIHJldHVybjsKfQoKJGJ1Y2tldF9pZCA9ICRidWNrZXQtPmJ1Y2tldF9uYW1lOwokbm1pbnV0ZXMgPSAoaW50KSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZXhwaXJ5X2ludGVydmFsJywgMTgwKTsKaWYgKCRubWludXRlcyA9PSAnJykgJG5taW51dGVzID0gMDsKCiR0ZW1wbGF0ZSA9IG51bGw7CmlmIChpc3NldCgkcGFyYW1zWydzdW1tYXJ5dGVtcGxhdGUnXSkpIHsKICAgICR0ZW1wbGF0ZSA9IHRyaW0oJHBhcmFtc1snc3VtbWFyeXRlbXBsYXRlJ10pOwp9IGVsc2UgewogICAgJHRwbCA9IENtc0xheW91dFRlbXBsYXRlOjpsb2FkX2RmbHRfYnlfdHlwZSgnQVdTUzM6OnN1bW1hcnknKTsKICAgIGlmICghaXNfb2JqZWN0KCR0cGwpKSB7CiAgICAgICAgYXVkaXQoJycsICR0aGlzLT5HZXROYW1lKCksICdObyBkZWZhdWx0IHN1bW1hcnkgdGVtcGxhdGUgZm91bmQnKTsKICAgICAgICByZXR1cm47CiAgICB9CiAgICAkdGVtcGxhdGUgPSAkdHBsLT5nZXRfbmFtZSgpOwp9CgppZiAoaXNzZXQoJHBhcmFtc1snZGV0YWlscGFnZSddKSkgewogICAgaWYgKGlzX251bWVyaWMoJHBhcmFtc1snZGV0YWlscGFnZSddKSkgewogICAgICAgICRkZXRhaWxwYWdlID0gJHBhcmFtc1snZGV0YWlscGFnZSddOwogICAgfSBlbHNlIHsKICAgICAgICAkaG0gPSBjbXNtcygpLT5HZXRIaWVyYXJjaHlNYW5hZ2VyKCk7CiAgICAgICAgJGRldGFpbHBhZ2UgPSAkaG0tPnN1cmVHZXROb2RlQnlBbGlhcygkcGFyYW1zWydkZXRhaWxwYWdlJ10pLT5HZXRJZCgpOwogICAgfQp9IGVsc2UgewogICAgJGRldGFpbHBhZ2UgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGV0YWlscGFnZScsICRyZXR1cm5pZCk7Cn0KaWYgKGVtcHR5KCRkZXRhaWxwYWdlKSB8fCAkZGV0YWlscGFnZSA9PSAtMSkgJGRldGFpbHBhZ2UgPSAkcmV0dXJuaWQ7CgokZGVidWcgPSBpc3NldCgkcGFyYW1zWydkZWJ1ZyddKTsKJHRwbF9vYiA9ICRzbWFydHktPkNyZWF0ZVRlbXBsYXRlKCR0aGlzLT5HZXRUZW1wbGF0ZVJlc291cmNlKCR0ZW1wbGF0ZSksIG51bGwsIG51bGwsICRzbWFydHkpOwoKJHBhZ2VsaW1pdCA9IDEwOwppZiAoaXNzZXQoJHBhcmFtc1sncGFnZWxpbWl0J10pKSB7CiAgICAkcGFnZWxpbWl0ID0gKGludCkgKCRwYXJhbXNbJ3BhZ2VsaW1pdCddKTsKfQokcGFnZWxpbWl0ID0gbWF4KDEsIG1pbigxMDAwLCAkcGFnZWxpbWl0KSk7CiRwYWdlY291bnQgPSAtMTsKJHN0YXJ0ZWxlbWVudCA9IDA7CiRwYWdlbnVtYmVyID0gMTsKJHByZWZpeCA9IGlzc2V0KCRwYXJhbXNbJ3ByZWZpeCddKSA/ICRwYXJhbXNbJ3ByZWZpeCddIDogJyc7CgokZXhwbG9kZWRwcmVmaXggPSBleHBsb2RlKCcvJywgJHByZWZpeCk7CiRwYXRoX3BhcnRzID0gW107CmZvciAoJGkgPSAwOyAkaSA8IGNvdW50KCRleHBsb2RlZHByZWZpeCk7ICRpKyspIHsKICAgICRvYmogPSBuZXcgXFN0ZENsYXNzOwogICAgaWYgKCEkZXhwbG9kZWRwcmVmaXhbJGldKSBjb250aW51ZTsKICAgICRvYmotPm5hbWUgPSAkZXhwbG9kZWRwcmVmaXhbJGldOwogICAgJG9iai0+cHJlZml4ID0gaW1wbG9kZSgnLycsIGFycmF5X3NsaWNlKCRleHBsb2RlZHByZWZpeCwgMCwgJGkgKyAxKSkgLiAnLyc7CiAgICBpZiAoJGkgPCBjb3VudCgkZXhwbG9kZWRwcmVmaXgpIC0gMSkgewogICAgICAgICRwYXJhbXNbJ3ByZWZpeCddID0gJG9iai0+cHJlZml4OwogICAgICAgICRvYmotPnVybCA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2RlZmF1bHQnLCAkcmV0dXJuaWQsICcnLCAkcGFyYW1zLCAnJywgdHJ1ZSk7CiAgICB9CiAgICAkcGF0aF9wYXJ0c1tdID0gJG9iajsKfQoKaWYgKGlzc2V0KCRwYXJhbXNbJ3BhZ2VudW1iZXInXSkgJiYgJHBhcmFtc1sncGFnZW51bWJlciddICE9PSAnJykgewogICAgJHBhZ2VudW1iZXIgPSAoaW50KSAkcGFyYW1zWydwYWdlbnVtYmVyJ107CiAgICAkc3RhcnRlbGVtZW50ID0gKCRwYWdlbnVtYmVyIC0gMSkgKiAkcGFnZWxpbWl0Owp9CiRlbmRlbGVtZW50ID0gJHN0YXJ0ZWxlbWVudCArICRwYWdlbGltaXQgLSAxOwoKJHBhcnRzX2NvdW50ZXIgPSBjb3VudCgkcGF0aF9wYXJ0cyk7CgppZiAoJHBhcnRzX2NvdW50ZXIgPj0gMSkgewogICAgJHVwZGlyID0gaXNzZXQoJHBhdGhfcGFydHNbJHBhcnRzX2NvdW50ZXIgLSAyXSkgPyAkcGF0aF9wYXJ0c1skcGFydHNfY291bnRlciAtIDJdLT5wcmVmaXggOiAnJzsKICAgICRpY29uID0gJG1vZF9mbS0+R2V0TW9kdWxlVVJMUGF0aCgpIC4gJy9pY29ucy90aGVtZXMvZGVmYXVsdC9hY3Rpb25zL2Rpcl91cC5naWYnOwogICAgJGltZ190YWcgPSAnPGltZyBzcmM9IicgLiAkaWNvbiAuICciIHdpZHRoPSIzMiIgdGl0bGU9IicgLiAkdGhpcy0+TGFuZygndGl0bGVfY2hhbmdldXBkaXInKSAuICciLz4nOwogICAgaWYgKCRwYXJ0c19jb3VudGVyID4gMSkgewogICAgICAgICRwYXJhbXNbJ3ByZWZpeCddID0gJHVwZGlyOwogICAgfSBlbHNlIHsKICAgICAgICB1bnNldCgkcGFyYW1zWydwcmVmaXgnXSk7CiAgICB9CiAgICB1bnNldCgkcGFyYW1zWydwYWdlbnVtYmVyJ10pOwogICAgJHVwX2RpcnVybCA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2RlZmF1bHQnLCAkcmV0dXJuaWQsICRpbWdfdGFnLCAkcGFyYW1zLCAnJywgdHJ1ZSk7CiAgICAkdXBfZGlyaWNvbmxpbmsgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdkZWZhdWx0JywgJHJldHVybmlkLCAkaW1nX3RhZywgJHBhcmFtcywgJycsIGZhbHNlLCB0cnVlLCAiY2xhc3M9J2NhcmQtbGluayciKTsKICAgICR1cF9kaXJsaW5rID0gIjxhIGNsYXNzPVwiY2FyZC1saW5rXCIgaHJlZj1cInskdXBfZGlydXJsfVwiIHRpdGxlPVwieyR0aGlzLT5MYW5nKCd0aXRsZV9jaGFuZ2V1cGRpcicpfVwiPi4uPC9hPiI7CgogICAgJHRwbF9vYi0+YXNzaWduKCd1cF9kaXJ1cmwnLCAkdXBfZGlydXJsKTsKICAgICR0cGxfb2ItPmFzc2lnbigndXBfZGlyaWNvbmxpbmsnLCAkdXBfZGlyaWNvbmxpbmspOwogICAgJHRwbF9vYi0+YXNzaWduKCd1cF9kaXJsaW5rJywgJHVwX2RpcmxpbmspOwp9CgokcXBhcm1zID0gW107CiRxcGFybXNbJ2J1Y2tldCddID0gJGJ1Y2tldF9pZDsKJHFwYXJtc1snYnVja2V0X2lkJ10gPSAkYnVja2V0LT5pZDsKJHFwYXJtc1snYnVja2V0X29iaiddID0gJGJ1Y2tldDsKJHFwYXJtc1sncHJlZml4J10gPSAkcHJlZml4OwokcXBhcm1zWydyZXR1cm5pZCddID0gJHJldHVybmlkOwokcXBhcm1zWydkZXRhaWxwYWdlJ10gPSAkZGV0YWlscGFnZTsKJHRwbF9vYi0+YXNzaWduKCdxcGFybXMnLCAkcXBhcm1zKTsKCiRqc29uX2ZpbGVfUGF0aCA9ICR0aGlzLT5nZXRDYWNoZUZpbGUoJHFwYXJtcyk7CgppZiAoJG5taW51dGVzID09IDApIHsKICAgICRkYXRhID0gYnVja2V0X3F1ZXJ5OjpjYWNoZV9xdWVyeSgkcXBhcm1zLCAkanNvbl9maWxlX1BhdGgpOwp9IGVsc2UgewogICAgaWYgKCFmaWxlX2V4aXN0cygkanNvbl9maWxlX1BhdGgpKSB7CiAgICAgICAgJGRhdGEgPSBidWNrZXRfcXVlcnk6OmNhY2hlX3F1ZXJ5KCRxcGFybXMsICRqc29uX2ZpbGVfUGF0aCk7CiAgICB9IGVsc2UgewogICAgICAgICRqc29uID0gZmlsZV9nZXRfY29udGVudHMoJGpzb25fZmlsZV9QYXRoKTsKICAgICAgICAkdG1wID0gXEFXU1NES1xlbmNyeXB0OjpkZWNyeXB0KCRqc29uKTsKICAgICAgICAkZGF0YSA9IGpzb25fZGVjb2RlKCR0bXAsIGZhbHNlKTsKCiAgICAgICAgJGVuZGRhdGUgPSBzdHJ0b3RpbWUoc3ByaW50ZigiKyVkIG1pbnV0ZXMiLCAkbm1pbnV0ZXMpLCAkZGF0YS0+ZGF0ZSk7CiAgICAgICAgaWYgKHRpbWUoKSA+PSAkZW5kZGF0ZSkgewogICAgICAgICAgICAkZGF0YSA9IGJ1Y2tldF9xdWVyeTo6Y2FjaGVfcXVlcnkoJHFwYXJtcywgJGpzb25fZmlsZV9QYXRoKTsKICAgICAgICB9CiAgICB9Cn0KCiRjb3VudCA9IGlzc2V0KCRkYXRhLT50b3RhbCkgPyAkZGF0YS0+dG90YWwgOiAnMCc7CiRwYWdlY291bnQgPSAoaW50KSAoJGNvdW50IC8gJHBhZ2VsaW1pdCk7CmlmICgoJGNvdW50ICUgJHBhZ2VsaW1pdCkgIT0gMCkgJHBhZ2Vjb3VudCsrOwoKJHBhcmFtc1sncHJlZml4J10gPSAkcHJlZml4OwovLyBFbnN1cmUgYnVja2V0IHBhcmFtIHBlcnNpc3RzIGluIHBhZ2luYXRpb24gbGlua3MKJHBhcmFtc1snYnVja2V0J10gPSAkYnVja2V0LT5pZDsKCi8vIFBhZ2luYXRpb24KaWYgKCRwYWdlbnVtYmVyID09IDEpIHsKICAgICR0cGxfb2ItPmFzc2lnbigncHJldnBhZ2UnLCAkdGhpcy0+TGFuZygncHJldnBhZ2UnKSk7CiAgICAkdHBsX29iLT5hc3NpZ24oJ2ZpcnN0cGFnZScsICR0aGlzLT5MYW5nKCdmaXJzdHBhZ2UnKSk7Cn0gZWxzZSB7CiAgICAkcGFyYW1zWydwYWdlbnVtYmVyJ10gPSAkcGFnZW51bWJlciAtIDE7CiAgICAkdHBsX29iLT5hc3NpZ24oJ3ByZXZwYWdlJywgJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnZGVmYXVsdCcsICRyZXR1cm5pZCwgJHRoaXMtPkxhbmcoJ3ByZXZwYWdlJyksICRwYXJhbXMpKTsKICAgICR0cGxfb2ItPmFzc2lnbigncHJldnVybCcsICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2RlZmF1bHQnLCAkcmV0dXJuaWQsICcnLCAkcGFyYW1zLCAnJywgdHJ1ZSkpOwogICAgJHBhcmFtc1sncGFnZW51bWJlciddID0gMTsKICAgICR0cGxfb2ItPmFzc2lnbignZmlyc3RwYWdlJywgJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnZGVmYXVsdCcsICRyZXR1cm5pZCwgJHRoaXMtPkxhbmcoJ2ZpcnN0cGFnZScpLCAkcGFyYW1zKSk7CiAgICAkdHBsX29iLT5hc3NpZ24oJ2ZpcnN0dXJsJywgJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnZGVmYXVsdCcsICRyZXR1cm5pZCwgJycsICRwYXJhbXMsICcnLCB0cnVlKSk7Cn0KCmlmICgkcGFnZW51bWJlciA+PSAkcGFnZWNvdW50KSB7CiAgICAkdHBsX29iLT5hc3NpZ24oJ25leHRwYWdlJywgJHRoaXMtPkxhbmcoJ25leHRwYWdlJykpOwogICAgJHRwbF9vYi0+YXNzaWduKCdsYXN0cGFnZScsICR0aGlzLT5MYW5nKCdsYXN0cGFnZScpKTsKfSBlbHNlIHsKICAgICRwYXJhbXNbJ3BhZ2VudW1iZXInXSA9ICRwYWdlbnVtYmVyICsgMTsKICAgICR0cGxfb2ItPmFzc2lnbignbmV4dHBhZ2UnLCAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdkZWZhdWx0JywgJHJldHVybmlkLCAkdGhpcy0+TGFuZygnbmV4dHBhZ2UnKSwgJHBhcmFtcykpOwogICAgJHRwbF9vYi0+YXNzaWduKCduZXh0dXJsJywgJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnZGVmYXVsdCcsICRyZXR1cm5pZCwgJycsICRwYXJhbXMsICcnLCB0cnVlKSk7CiAgICAkcGFyYW1zWydwYWdlbnVtYmVyJ10gPSAkcGFnZWNvdW50OwogICAgJHRwbF9vYi0+YXNzaWduKCdsYXN0cGFnZScsICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2RlZmF1bHQnLCAkcmV0dXJuaWQsICR0aGlzLT5MYW5nKCdsYXN0cGFnZScpLCAkcGFyYW1zKSk7CiAgICAkdHBsX29iLT5hc3NpZ24oJ2xhc3R1cmwnLCAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdkZWZhdWx0JywgJHJldHVybmlkLCAnJywgJHBhcmFtcywgJycsIHRydWUpKTsKfQoKJHRwbF9vYi0+YXNzaWduKCdidWNrZXQnLCAkYnVja2V0X2lkKTsKJHRwbF9vYi0+YXNzaWduKCdidWNrZXRfaWQnLCAkYnVja2V0LT5pZCk7CiR0cGxfb2ItPmFzc2lnbignY2FjaGVmaWxlJywgJGpzb25fZmlsZV9QYXRoKTsKJHRwbF9vYi0+YXNzaWduKCdsYXN0dXBkYXRlJywgJGRhdGEtPmRhdGUpOwokdHBsX29iLT5hc3NpZ24oJ2F3c3MzX2NvdW50JywgJGNvdW50KTsKJHRwbF9vYi0+YXNzaWduKCdwYWdlbnVtYmVyJywgJHBhZ2VudW1iZXIpOwokdHBsX29iLT5hc3NpZ24oJ3N0YXJ0ZWxlbWVudCcsICRzdGFydGVsZW1lbnQpOwoKaWYgKCRlbmRlbGVtZW50ID49ICRjb3VudCkgJGVuZGVsZW1lbnQgPSAkY291bnQgLSAxOwoKJHRwbF9vYi0+YXNzaWduKCdlbmRlbGVtZW50JywgJGVuZGVsZW1lbnQpOwokdHBsX29iLT5hc3NpZ24oJ3BhZ2Vjb3VudCcsICRwYWdlY291bnQpOwokdHBsX29iLT5hc3NpZ24oJ29mdGV4dCcsICR0aGlzLT5MYW5nKCdwcm9tcHRfb2YnKSk7CiR0cGxfb2ItPmFzc2lnbigncGFnZXRleHQnLCAkdGhpcy0+TGFuZygncHJvbXB0X3BhZ2UnKSk7CgokZW50cnlhcnJheSA9IFtdOwppZiAoJHN0YXJ0ZWxlbWVudCA+PSAwICYmICRzdGFydGVsZW1lbnQgPD0gJGVuZGVsZW1lbnQgJiYgaXNzZXQoJGRhdGEtPml0ZW1zKSkgewogICAgJHNlbGVjdGVkSXRlbXMgPSBhcnJheV9zbGljZSgkZGF0YS0+aXRlbXMsICRzdGFydGVsZW1lbnQsICRlbmRlbGVtZW50IC0gJHN0YXJ0ZWxlbWVudCArIDEpOwogICAgZm9yZWFjaCAoJHNlbGVjdGVkSXRlbXMgYXMgJHJvdykgewogICAgICAgICRvbmVyb3cgPSAkcm93OwogICAgICAgIGlmIChpc3NldCgkb25lcm93LT5kaXIpICYmICRvbmVyb3ctPmRpcikgewogICAgICAgICAgICAkc2VuZHRvZGV0YWlsID0gWydwcmVmaXgnID0+ICRvbmVyb3ctPmtleSwgJ2J1Y2tldCcgPT4gJGJ1Y2tldC0+aWRdOwogICAgICAgICAgICBpZiAoaXNzZXQoJHBhcmFtc1sncGFnZWxpbWl0J10pKSB7CiAgICAgICAgICAgICAgICAkc2VuZHRvZGV0YWlsWydwYWdlbGltaXQnXSA9ICRwYWdlbGltaXQ7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJG9uZXJvdy0+bGluayA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2RlZmF1bHQnLCAkcmV0dXJuaWQsICcnLCAkc2VuZHRvZGV0YWlsLCAnJywgdHJ1ZSwgZmFsc2UsICcnLCB0cnVlKTsKICAgICAgICAgICAgJG9uZXJvdy0+aWNvbl9saW5rID0gIjxhIGhyZWY9JyIgLiAkb25lcm93LT5saW5rIC4gIicgY2xhc3M9XCJjYXJkLWxpbmtcIj4iIC4gJG9uZXJvdy0+aWNvbiAuICI8L2E+IjsKICAgICAgICB9CiAgICAgICAgJGVudHJ5YXJyYXlbXSA9ICRvbmVyb3c7CiAgICB9Cn0KCiR0cGxfb2ItPmFzc2lnbignaXRlbXMnLCAkZW50cnlhcnJheSk7CiR0cGxfb2ItPmFzc2lnbignc3RhcnRkYXRlJywgJGRhdGEtPmRhdGUpOwokdHBsX29iLT5hc3NpZ24oJ2VuZGRhdGUnLCBpc3NldCgkZW5kZGF0ZSkgPyAkZW5kZGF0ZSA6IG51bGwpOwokdHBsX29iLT5hc3NpZ24oJ2NhY2hldGltZScsICRubWludXRlcyk7CiR0cGxfb2ItPmFzc2lnbigncGF0aF9wYXJ0cycsICRwYXRoX3BhcnRzKTsKCiR0cGxfb2ItPmRpc3BsYXkoKTsKCmlmICgkZGVidWcpIHsKICAgICR0cGxfb2ItPmRpc3BsYXkoJ3N0cmluZzo8cHJlPntnZXRfdGVtcGxhdGVfdmFyc308L3ByZT4nKTsKfQo=]]></data>
	</file>
	<file>
		<filename>/action.defaultadmin.php</filename>
		<isdir>0</isdir>
		<data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgU2VlIExJQ0VOU0UgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmlmICghZGVmaW5lZCgnQ01TX1ZFUlNJT04nKSkgZXhpdDsKaWYgKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKEFXU1MzOjpNQU5BR0VfUEVSTSkpIHJldHVybjsKCiRzZGtfbW9kID0gXGNtc191dGlsczo6Z2V0X21vZHVsZSgnQVdTU0RLJyk7CgovLyBWZXJpZnkgQVdTIGNyZWRlbnRpYWxzIHdvcmsgYnkgYXR0ZW1wdGluZyB0byByZXRyaWV2ZSB0aGVtCnRyeSB7CiAgICAkY3JlZGVudGlhbHMgPSAkc2RrX21vZC0+Z2V0Q3JlZGVudGlhbHMoKTsKfSBjYXRjaCAoXEV4Y2VwdGlvbiAkZSkgewogICAgZWNobyAnPHAgY2xhc3M9InJlZCI+JyAuIHNwcmludGYoJHRoaXMtPkxhbmcoJ2Vycm9yX3Nka19jcmVkZW50aWFscycpLCAkc2RrX21vZC0+R2V0TmFtZSgpKSAuICc8L3A+JzsKICAgIHJldHVybjsKfQoKJGFjdGl2ZV90YWIgPSBpc3NldCgkcGFyYW1zWydfX2FjdGl2ZXRhYiddKSA/ICRwYXJhbXNbJ19fYWN0aXZldGFiJ10gOiAnYnVja2V0cyc7CiR0aGlzLT5TZXRDdXJyZW50VGFiKCRhY3RpdmVfdGFiKTsKCiRidWNrZXRzID0gJHRoaXMtPkdldEJ1Y2tldHMoKTsKJGNvbnRlbnRfb3BzID0gY21zbXMoKS0+R2V0Q29udGVudE9wZXJhdGlvbnMoKTsKCi8vIFRhYiBoZWFkZXJzCmVjaG8gJHRoaXMtPlN0YXJ0VGFiSGVhZGVycygpOwplY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ2J1Y2tldHMnLCAkdGhpcy0+TGFuZygndGFiX2J1Y2tldHMnKSk7CmVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcignc2V0dGluZ3MnLCAkdGhpcy0+TGFuZygnY29uZmlnJykpOwplY2hvICR0aGlzLT5FbmRUYWJIZWFkZXJzKCk7CgovLyBUYWIgY29udGVudAplY2hvICR0aGlzLT5TdGFydFRhYkNvbnRlbnQoKTsKCi8vIC0tLSBCdWNrZXRzIHRhYiAtLS0KZWNobyAkdGhpcy0+U3RhcnRUYWIoJ2J1Y2tldHMnKTsKJHRwbCA9ICRzbWFydHktPkNyZWF0ZVRlbXBsYXRlKCR0aGlzLT5HZXRUZW1wbGF0ZVJlc291cmNlKCdkZWZhdWx0YWRtaW4udHBsJyksIG51bGwsIG51bGwsICRzbWFydHkpOwokdHBsLT5hc3NpZ24oJ2J1Y2tldHMnLCAkYnVja2V0cyk7CiR0cGwtPmFzc2lnbignYWRkX3VybCcsICR0aGlzLT5jcmVhdGVfdXJsKCRpZCwgJ2VkaXRfYnVja2V0JywgJycsIFtdKSk7CiR0cGwtPmRpc3BsYXkoKTsKZWNobyAkdGhpcy0+RW5kVGFiKCk7CgovLyAtLS0gU2V0dGluZ3MgdGFiIC0tLQplY2hvICR0aGlzLT5TdGFydFRhYignc2V0dGluZ3MnKTsKJHRwbDIgPSAkc21hcnR5LT5DcmVhdGVUZW1wbGF0ZSgkdGhpcy0+R2V0VGVtcGxhdGVSZXNvdXJjZSgnYWRtaW5fc2V0dGluZ3MudHBsJyksIG51bGwsIG51bGwsICRzbWFydHkpOwokdHBsMi0+YXNzaWduKCdpbnB1dF9kZXRhaWxwYWdlJywgJGNvbnRlbnRfb3BzLT5DcmVhdGVIaWVyYXJjaHlEcm9wZG93bignJywgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2RldGFpbHBhZ2UnKSwgJGlkIC4gJ3NldHRpbmdzW2RldGFpbHBhZ2VdJykpOwokdHBsMi0+YXNzaWduKCdpbnB1dF9zdW1tYXJ5cGFnZScsICRjb250ZW50X29wcy0+Q3JlYXRlSGllcmFyY2h5RHJvcGRvd24oJycsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdzdW1tYXJ5cGFnZScpLCAkaWQgLiAnc2V0dGluZ3Nbc3VtbWFyeXBhZ2VdJykpOwokdHBsMi0+ZGlzcGxheSgpOwplY2hvICR0aGlzLT5FbmRUYWIoKTsKCmVjaG8gJHRoaXMtPkVuZFRhYkNvbnRlbnQoKTsK]]></data>
	</file>
	<file>
		<filename>/action.delete.php</filename>
		<isdir>0</isdir>
		<data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBTZWUgTElDRU5TRSBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCm5hbWVzcGFjZSBBV1NTMzsNCg0KaWYgKCFkZWZpbmVkKCdDTVNfVkVSU0lPTicpKSBleGl0Ow0KaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCR0aGlzOjpNQU5BR0VfUEVSTSkgKSByZXR1cm47DQoNCiRidWNrZXRfaWQgPSBpc3NldCgkcGFyYW1zWydidWNrZXRfaWQnXSkgPyAoaW50KSAkcGFyYW1zWydidWNrZXRfaWQnXSA6IDA7DQokYnVja2V0ID0gJGJ1Y2tldF9pZCA/ICR0aGlzLT5HZXRCdWNrZXQoJGJ1Y2tldF9pZCkgOiAkdGhpcy0+R2V0QnVja2V0KCk7DQppZiAoJGJ1Y2tldCkgJGJ1Y2tldF9pZCA9ICRidWNrZXQtPmlkOw0KDQokcHJlZml4ID0gaXNzZXQoJHBhcmFtc1sncHJlZml4J10pID8gJHBhcmFtc1sncHJlZml4J10gOiAnJzsNCiRyZXR1cm5fcGFyYW1zID0gWydwcmVmaXgnID0+ICRwcmVmaXgsICdidWNrZXRfaWQnID0+ICRidWNrZXRfaWRdOw0KaWYgKGlzc2V0KCRwYXJhbXNbImNhbmNlbCJdKSkgJHRoaXMtPlJlZGlyZWN0KCRpZCwiYnJvd3NlX2J1Y2tldCIsJHJldHVybmlkLCRyZXR1cm5fcGFyYW1zKTsNCiRtb2RfZm0gPSBcY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdGaWxlTWFuYWdlcicpOw0KDQokc2VsYWxsID0gJHBhcmFtc1snc2VsYWxsJ107DQppZiggIWlzX2FycmF5KCRzZWxhbGwpICkgJHNlbGFsbCA9IHVuc2VyaWFsaXplKCRzZWxhbGwsIFsnYWxsb3dlZF9jbGFzc2VzJyA9PiBmYWxzZV0pOw0KaWYoICFpc19hcnJheSgkc2VsYWxsKSApICRzZWxhbGwgPSB1bnNlcmlhbGl6ZSgkc2VsYWxsLCBbJ2FsbG93ZWRfY2xhc3NlcycgPT4gZmFsc2VdKTsNCg0KaWYgKGNvdW50KCRzZWxhbGwpPT0wKSB7DQogICRyZXR1cm5fcGFyYW1zWyJmbWVycm9yIl09Im5vZmlsZXNzZWxlY3RlZCI7DQogICR0aGlzLT5SZWRpcmVjdCgkaWQsImJyb3dzZV9idWNrZXQiLCRyZXR1cm5pZCwkcmV0dXJuX3BhcmFtcyk7DQp9DQoNCi8vIHByb2Nlc3MgZm9ybQ0KJGVycm9ycyA9IGFycmF5KCk7DQppZiggaXNzZXQoJHBhcmFtc1snc3VibWl0J10pICkgew0KICANCiAgZm9yZWFjaCggJHNlbGFsbCBhcyAkZmlsZSApIHsNCiAgICAvLyBidWlsZCBjb21wbGV0ZSBwYXRoDQogICAgJGxhc3RjaGFyID0gJGZpbGVbLTFdOw0KDQogICAgaWYgKCBzdHJjbXAoJGxhc3RjaGFyLCAiLyIpID09PSAwICkgew0KICAgICAgdXRpbHM6OmRlbGV0ZU9iamVjdERpcigkZmlsZSwgJGJ1Y2tldCk7DQogICAgICBhdWRpdCgnJywkdGhpcy0+R2V0TmFtZSgpLCAiUmVtb3ZlZCBkaXJlY3Rvcnk6ICIuJGZpbGUpOw0KICAgICAgXENNU01TXEhvb2tNYW5hZ2VyOjpkb19ob29rKCdBV1NTMzo6T25EaXJlY3RvcnlEZWxldGVkJywgJHBhcm1zICk7DQogICAgICBjb250aW51ZTsNCiAgICB9DQogICAgDQogICAgdXRpbHM6OmRlbGV0ZU9iamVjdCgkZmlsZSwgJGJ1Y2tldCk7DQogICAgJHBhcm1zID0gYXJyYXkoJ2ZpbGUnPT4kZmlsZSk7DQogICAgYXVkaXQoJycsJHRoaXMtPkdldE5hbWUoKSwgIlJlbW92ZWQgZmlsZTogIi4kZmlsZSk7DQogICAgXENNU01TXEhvb2tNYW5hZ2VyOjpkb19ob29rKCdBV1NTMzo6T25GaWxlRGVsZXRlZCcsICRwYXJtcyApOw0KDQogIH0gLy8gZm9yZWFjaA0KDQogIGlmKCBjb3VudCgkZXJyb3JzKSA9PSAwICkgew0KICAgIHV0aWxzOjpjbGVhckJ1Y2tldENhY2hlKCRidWNrZXRfaWQsICRwcmVmaXgpOw0KICAgICRyZXR1cm5fcGFyYW1zWyJmbW1lc3NhZ2UiXT0gImRlbGV0ZXN1Y2Nlc3MiOw0KICAgICR0aGlzLT5SZWRpcmVjdCgkaWQsImJyb3dzZV9idWNrZXQiLCRyZXR1cm5pZCwkcmV0dXJuX3BhcmFtcyk7DQogIH0NCg0KfSAvLyBpZiBzdWJtaXQgDQoNCi8vIGdpdmUgZXZlcnl0aGluZyB0byBzbWFydHkuDQppZiggY291bnQoJGVycm9ycykgKSB7DQogIGVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJGVycm9ycyk7DQogICRzbWFydHktPmFzc2lnbignZXJyb3JzJywkZXJyb3JzKTsNCn0NCmlmKCBpc19hcnJheSgkcGFyYW1zWydzZWxhbGwnXSkgKSAkcGFyYW1zWydzZWxhbGwnXSA9IHNlcmlhbGl6ZSgkcGFyYW1zWydzZWxhbGwnXSk7DQokc21hcnR5LT5hc3NpZ24oJ3NlbGFsbCcsJHNlbGFsbCk7DQokc21hcnR5LT5hc3NpZ24oJ21vZF9mbScsJG1vZF9mbSk7DQokc21hcnR5LT5hc3NpZ24oJ3N0YXJ0Zm9ybScsICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAnZmlsZWFjdGlvbicsICRyZXR1cm5pZCwicG9zdCIsIiIsZmFsc2UsIiIsJHBhcmFtcykpOw0KJHNtYXJ0eS0+YXNzaWduKCdlbmRmb3JtJywgJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7DQoNCmZvcmVhY2goICRzZWxhbGwgYXMgJGZpbGUgKSB7DQogICRsYXN0Y2hhciA9ICRmaWxlWy0xXTsNCiAgaWYgKCBzdHJjbXAoJGxhc3RjaGFyLCAiLyIpID09PSAwICkgew0KICAgICRzbWFydHktPmFzc2lnbignaGFzZGlyJyx0cnVlKTsNCiAgfQ0KfQ0KDQplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2RlbGV0ZS50cGwnKTsNCg0K]]></data>
	</file>
	<file>
		<filename>/action.detail.php</filename>
		<isdir>0</isdir>
		<data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgU2VlIExJQ0VOU0UgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmlmICghZGVmaW5lZCgnQ01TX1ZFUlNJT04nKSkgZXhpdDsKCnVzZSBcQVdTUzNcdXRpbHM7CgovLyBGcm9udGVuZCBDU1MKJHRlbXBsYXRlX2hlYWQgPSAkdGhpcy0+X291dHB1dF9mcm9udGVuZF9jc3MoKTsKJHRlbXBsYXRldGl0bGUgPSAnPCEtLSBBV1NTMyAtLT4nIC4gIlxuIjsKaWYgKCFlbXB0eSgkdGVtcGxhdGVfaGVhZCkpIHsKICAgICR0aGlzLT5Gcm9udEVuZENTUyAuPSAkdGVtcGxhdGV0aXRsZSAuICR0ZW1wbGF0ZV9oZWFkIC4gIlxuIjsKfQoKJGRlYnVnID0gaXNzZXQoJHBhcmFtc1snZGVidWcnXSk7CiR0ZW1wbGF0ZSA9IG51bGw7CmlmIChpc3NldCgkcGFyYW1zWydkZXRhaWx0ZW1wbGF0ZSddKSkgewogICAgJHRlbXBsYXRlID0gdHJpbSgkcGFyYW1zWydkZXRhaWx0ZW1wbGF0ZSddKTsKfSBlbHNlIHsKICAgICR0cGwgPSBcQ21zTGF5b3V0VGVtcGxhdGU6OmxvYWRfZGZsdF9ieV90eXBlKCdBV1NTMzo6ZGV0YWlsJyk7CiAgICBpZiAoIWlzX29iamVjdCgkdHBsKSkgewogICAgICAgIGF1ZGl0KCcnLCAkdGhpcy0+R2V0TmFtZSgpLCAnTm8gZGVmYXVsdCBkZXRhaWwgdGVtcGxhdGUgZm91bmQnKTsKICAgICAgICByZXR1cm47CiAgICB9CiAgICAkdGVtcGxhdGUgPSAkdHBsLT5nZXRfbmFtZSgpOwp9CgovLyBSZXNvbHZlIGJ1Y2tldAokYnVja2V0ID0gJHRoaXMtPlJlc29sdmVCdWNrZXQoJHBhcmFtcyk7Cgp0cnkgewogICAgaWYgKCFpc3NldCgkcGFyYW1zWydwcmVmaXgnXSkpIHsKICAgICAgICB0aHJvdyBuZXcgXEFXU1NES1xFeGNlcHRpb24oJ0tleSBpcyBub3Qgc3BlY2lmaWVkJywgNTAwKTsKICAgIH0KCiAgICAka2V5ID0gdXJsZGVjb2RlKCRwYXJhbXNbJ3ByZWZpeCddKTsKICAgICRlbnRyeSA9IHV0aWxzOjpnZXRfZmlsZV9pbmZvKCRrZXksICRidWNrZXQpOwoKfSBjYXRjaCAoXEFXU1NES1xFeGNlcHRpb24gJGUpIHsKICAgICRzZGsgPSBcY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdBV1NTREsnKTsKICAgICRzZGstPl9EaXNwbGF5TWVzc2FnZSgkZS0+Z2V0VGV4dCgpLCAkZS0+Z2V0VHlwZSgpKTsKICAgIHJldHVybjsKfQoKJHRwbF9vYiA9ICRzbWFydHktPkNyZWF0ZVRlbXBsYXRlKCR0aGlzLT5HZXRUZW1wbGF0ZVJlc291cmNlKCR0ZW1wbGF0ZSksIG51bGwsIG51bGwsICRzbWFydHkpOwokdHBsX29iLT5hc3NpZ24oJ2VudHJ5JywgJGVudHJ5KTsKJHRwbF9vYi0+YXNzaWduKCdidWNrZXRfaWQnLCAkYnVja2V0ID8gJGJ1Y2tldC0+aWQgOiBudWxsKTsKJHRwbF9vYi0+ZGlzcGxheSgpOwoKaWYgKCRkZWJ1ZykgewogICAgJHRwbF9vYi0+ZGlzcGxheSgnc3RyaW5nOjxwcmU+e2dldF90ZW1wbGF0ZV92YXJzfTwvcHJlPicpOwp9Cg==]]></data>
	</file>
	<file>
		<filename>/action.do_delete_bucket.php</filename>
		<isdir>0</isdir>
		<data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgU2VlIExJQ0VOU0UgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmlmICghZGVmaW5lZCgnQ01TX1ZFUlNJT04nKSkgZXhpdDsKaWYgKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKEFXU1MzOjpNQU5BR0VfUEVSTSkpIHJldHVybjsKCiRidWNrZXRfaWQgPSBpc3NldCgkcGFyYW1zWydidWNrZXRfaWQnXSkgPyAoaW50KSAkcGFyYW1zWydidWNrZXRfaWQnXSA6IDA7CgppZiAoJGJ1Y2tldF9pZCA8PSAwKSB7CiAgICAkdGhpcy0+U2V0RXJyb3IoJHRoaXMtPkxhbmcoJ2Vycm9yX2J1Y2tldF9ub3RfZm91bmQnKSk7CiAgICAkdGhpcy0+UmVkaXJlY3RUb0FkbWluVGFiKCk7Cn0KCiRkYiA9IFxjbXNfdXRpbHM6OmdldF9kYigpOwokdGFibGUgPSBDTVNfREJfUFJFRklYIC4gQVdTUzM6OlRBQkxFX0JVQ0tFVFM7CgovLyBDaGVjayBpZiB0aGlzIHdhcyB0aGUgZGVmYXVsdCBidWNrZXQKJHdhc19kZWZhdWx0ID0gKGludCkgJGRiLT5HZXRPbmUoJ1NFTEVDVCBpc19kZWZhdWx0IEZST00gJyAuICR0YWJsZSAuICcgV0hFUkUgaWQgPSA/JywgWyRidWNrZXRfaWRdKTsKCiRkYi0+RXhlY3V0ZSgnREVMRVRFIEZST00gJyAuICR0YWJsZSAuICcgV0hFUkUgaWQgPSA/JywgWyRidWNrZXRfaWRdKTsKCi8vIElmIHdlIGRlbGV0ZWQgdGhlIGRlZmF1bHQsIHByb21vdGUgdGhlIGZpcnN0IHJlbWFpbmluZyBidWNrZXQKaWYgKCR3YXNfZGVmYXVsdCkgewogICAgJGZpcnN0X2lkID0gJGRiLT5HZXRPbmUoJ1NFTEVDVCBpZCBGUk9NICcgLiAkdGFibGUgLiAnIE9SREVSIEJZIHNvcnRfb3JkZXIsIGlkIExJTUlUIDEnKTsKICAgIGlmICgkZmlyc3RfaWQpIHsKICAgICAgICAkZGItPkV4ZWN1dGUoJ1VQREFURSAnIC4gJHRhYmxlIC4gJyBTRVQgaXNfZGVmYXVsdCA9IDEgV0hFUkUgaWQgPSA/JywgWyhpbnQpICRmaXJzdF9pZF0pOwogICAgfQp9CgokdGhpcy0+U2V0TWVzc2FnZSgkdGhpcy0+TGFuZygnYnVja2V0X2RlbGV0ZWQnKSk7CiR0aGlzLT5SZWRpcmVjdFRvQWRtaW5UYWIoKTsK]]></data>
	</file>
	<file>
		<filename>/action.do_save_bucket.php</filename>
		<isdir>0</isdir>
		<data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgU2VlIExJQ0VOU0UgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmlmICghZGVmaW5lZCgnQ01TX1ZFUlNJT04nKSkgZXhpdDsKaWYgKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKEFXU1MzOjpNQU5BR0VfUEVSTSkpIHJldHVybjsKCmlmIChpc3NldCgkcGFyYW1zWydjYW5jZWwnXSkpIHsKICAgICR0aGlzLT5SZWRpcmVjdFRvQWRtaW5UYWIoKTsKfQoKJGJ1Y2tldF9pZCA9IGlzc2V0KCRwYXJhbXNbJ2J1Y2tldF9pZCddKSA/IChpbnQpICRwYXJhbXNbJ2J1Y2tldF9pZCddIDogMDsKJGJ1Y2tldF9uYW1lID0gaXNzZXQoJHBhcmFtc1snYnVja2V0X25hbWUnXSkgPyB0cmltKCRwYXJhbXNbJ2J1Y2tldF9uYW1lJ10pIDogJyc7CiRyZWdpb24gPSBpc3NldCgkcGFyYW1zWydyZWdpb24nXSkgPyB0cmltKCRwYXJhbXNbJ3JlZ2lvbiddKSA6ICcnOwokYWxsb3dlZF9leHRlbnNpb25zID0gaXNzZXQoJHBhcmFtc1snYWxsb3dlZF9leHRlbnNpb25zJ10pID8gdHJpbSgkcGFyYW1zWydhbGxvd2VkX2V4dGVuc2lvbnMnXSkgOiAnanBnLGpwZWcsZ2lmLHBuZyc7CiRjdXN0b21fdXJsID0gaXNzZXQoJHBhcmFtc1snY3VzdG9tX3VybCddKSA/IHRyaW0oJHBhcmFtc1snY3VzdG9tX3VybCddKSA6ICcnOwoKLy8gVmFsaWRhdGlvbgppZiAoZW1wdHkoJGJ1Y2tldF9uYW1lKSkgewogICAgJHRoaXMtPlNldEVycm9yKCR0aGlzLT5MYW5nKCdlcnJvcl9idWNrZXRfbmFtZV9yZXF1aXJlZCcpKTsKICAgICR0aGlzLT5SZWRpcmVjdCgkaWQsICdlZGl0X2J1Y2tldCcsICcnLCBbJ2J1Y2tldF9pZCcgPT4gJGJ1Y2tldF9pZF0pOwp9CmlmIChlbXB0eSgkcmVnaW9uKSkgewogICAgJHRoaXMtPlNldEVycm9yKCR0aGlzLT5MYW5nKCdlcnJvcl9yZWdpb25fcmVxdWlyZWQnKSk7CiAgICAkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZWRpdF9idWNrZXQnLCAnJywgWydidWNrZXRfaWQnID0+ICRidWNrZXRfaWRdKTsKfQoKJGRiID0gXGNtc191dGlsczo6Z2V0X2RiKCk7CiR0YWJsZSA9IENNU19EQl9QUkVGSVggLiBBV1NTMzo6VEFCTEVfQlVDS0VUUzsKJG5vdyA9ICRkYi0+RGJUaW1lU3RhbXAodGltZSgpKTsKCmlmICgkYnVja2V0X2lkID4gMCkgewogICAgLy8gVXBkYXRlIGV4aXN0aW5nCiAgICAkZGItPkV4ZWN1dGUoCiAgICAgICAgIlVQREFURSB7JHRhYmxlfSBTRVQgYnVja2V0X25hbWUgPSA/LCByZWdpb24gPSA/LCBhbGxvd2VkX2V4dGVuc2lvbnMgPSA/LCBjdXN0b21fdXJsID0gPywgbW9kaWZpZWQgPSB7JG5vd30gV0hFUkUgaWQgPSA/IiwKICAgICAgICBbJGJ1Y2tldF9uYW1lLCAkcmVnaW9uLCAkYWxsb3dlZF9leHRlbnNpb25zLCAkY3VzdG9tX3VybCwgJGJ1Y2tldF9pZF0KICAgICk7CiAgICAkdGhpcy0+U2V0TWVzc2FnZSgkdGhpcy0+TGFuZygnYnVja2V0X3VwZGF0ZWQnKSk7Cn0gZWxzZSB7CiAgICAvLyBJbnNlcnQgbmV3CiAgICAvLyBDaGVjayBpZiB0aGlzIGlzIHRoZSBmaXJzdCBidWNrZXQgKG1ha2UgaXQgZGVmYXVsdCkKICAgICRjb3VudCA9IChpbnQpICRkYi0+R2V0T25lKCJTRUxFQ1QgQ09VTlQoKikgRlJPTSB7JHRhYmxlfSIpOwogICAgJGlzX2RlZmF1bHQgPSAoJGNvdW50ID09PSAwKSA/IDEgOiAwOwogICAgJHNvcnRfb3JkZXIgPSAkY291bnQ7CgogICAgJGRiLT5FeGVjdXRlKAogICAgICAgICJJTlNFUlQgSU5UTyB7JHRhYmxlfSAoYnVja2V0X25hbWUsIHJlZ2lvbiwgYWxsb3dlZF9leHRlbnNpb25zLCBjdXN0b21fdXJsLCBpc19kZWZhdWx0LCBzb3J0X29yZGVyLCBjcmVhdGVkLCBtb2RpZmllZCkgVkFMVUVTICg/LCA/LCA/LCA/LCA/LCA/LCB7JG5vd30sIHskbm93fSkiLAogICAgICAgIFskYnVja2V0X25hbWUsICRyZWdpb24sICRhbGxvd2VkX2V4dGVuc2lvbnMsICRjdXN0b21fdXJsLCAkaXNfZGVmYXVsdCwgJHNvcnRfb3JkZXJdCiAgICApOwogICAgJHRoaXMtPlNldE1lc3NhZ2UoJHRoaXMtPkxhbmcoJ2J1Y2tldF9hZGRlZCcpKTsKfQoKJHRoaXMtPlJlZGlyZWN0VG9BZG1pblRhYigpOwo=]]></data>
	</file>
	<file>
		<filename>/action.do_save_settings.php</filename>
		<isdir>0</isdir>
		<data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgU2VlIExJQ0VOU0UgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmlmICghZGVmaW5lZCgnQ01TX1ZFUlNJT04nKSkgZXhpdDsKaWYgKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKEFXU1MzOjpNQU5BR0VfUEVSTSkpIHJldHVybjsKCmlmIChpc3NldCgkcGFyYW1zWydjYW5jZWwnXSkpIHsKICAgICR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAnJywgWydfX2FjdGl2ZXRhYicgPT4gJ3NldHRpbmdzJ10pOwp9CgppZiAoaXNzZXQoJHBhcmFtc1snc2V0dGluZ3MnXSkgJiYgaXNfYXJyYXkoJHBhcmFtc1snc2V0dGluZ3MnXSkpIHsKICAgIGZvcmVhY2ggKCRwYXJhbXNbJ3NldHRpbmdzJ10gYXMgJGtleSA9PiAkdmFsdWUpIHsKICAgICAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgka2V5LCB0cmltKCR2YWx1ZSkpOwogICAgfQp9CgokdGhpcy0+U2V0TWVzc2FnZSgkdGhpcy0+TGFuZygnYWRtaW5fc2F2ZScpKTsKJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICcnLCBbJ19fYWN0aXZldGFiJyA9PiAnc2V0dGluZ3MnXSk7Cg==]]></data>
	</file>
	<file>
		<filename>/action.do_set_default.php</filename>
		<isdir>0</isdir>
		<data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgU2VlIExJQ0VOU0UgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmlmICghZGVmaW5lZCgnQ01TX1ZFUlNJT04nKSkgZXhpdDsKaWYgKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKEFXU1MzOjpNQU5BR0VfUEVSTSkpIHJldHVybjsKCiRidWNrZXRfaWQgPSBpc3NldCgkcGFyYW1zWydidWNrZXRfaWQnXSkgPyAoaW50KSAkcGFyYW1zWydidWNrZXRfaWQnXSA6IDA7CgppZiAoJGJ1Y2tldF9pZCA8PSAwKSB7CiAgICAkdGhpcy0+U2V0RXJyb3IoJHRoaXMtPkxhbmcoJ2Vycm9yX2J1Y2tldF9ub3RfZm91bmQnKSk7CiAgICAkdGhpcy0+UmVkaXJlY3RUb0FkbWluVGFiKCk7Cn0KCiRkYiA9IFxjbXNfdXRpbHM6OmdldF9kYigpOwokdGFibGUgPSBDTVNfREJfUFJFRklYIC4gQVdTUzM6OlRBQkxFX0JVQ0tFVFM7CgovLyBDbGVhciBhbGwgZGVmYXVsdHMsIHRoZW4gc2V0IHRoZSBuZXcgb25lCiRkYi0+RXhlY3V0ZSgnVVBEQVRFICcgLiAkdGFibGUgLiAnIFNFVCBpc19kZWZhdWx0ID0gMCcpOwokZGItPkV4ZWN1dGUoJ1VQREFURSAnIC4gJHRhYmxlIC4gJyBTRVQgaXNfZGVmYXVsdCA9IDEgV0hFUkUgaWQgPSA/JywgWyRidWNrZXRfaWRdKTsKCiR0aGlzLT5TZXRNZXNzYWdlKCR0aGlzLT5MYW5nKCdidWNrZXRfc2V0X2RlZmF1bHQnKSk7CiR0aGlzLT5SZWRpcmVjdFRvQWRtaW5UYWIoKTsK]]></data>
	</file>
	<file>
		<filename>/action.edit_bucket.php</filename>
		<isdir>0</isdir>
		<data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgU2VlIExJQ0VOU0UgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmlmICghZGVmaW5lZCgnQ01TX1ZFUlNJT04nKSkgZXhpdDsKaWYgKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKEFXU1MzOjpNQU5BR0VfUEVSTSkpIHJldHVybjsKCiRzZGtfbW9kID0gXGNtc191dGlsczo6Z2V0X21vZHVsZSgnQVdTU0RLJyk7CiRhd3NyZWdpb25uYW1lcyA9ICRzZGtfbW9kLT5nZXRfcmVnaW9uc19vcHRpb25zKCk7CgokYnVja2V0X2lkID0gaXNzZXQoJHBhcmFtc1snYnVja2V0X2lkJ10pID8gKGludCkgJHBhcmFtc1snYnVja2V0X2lkJ10gOiAwOwokYnVja2V0ID0gbnVsbDsKCmlmICgkYnVja2V0X2lkID4gMCkgewogICAgJGJ1Y2tldCA9ICR0aGlzLT5HZXRCdWNrZXQoJGJ1Y2tldF9pZCk7CiAgICBpZiAoISRidWNrZXQpIHsKICAgICAgICAkdGhpcy0+U2V0RXJyb3IoJHRoaXMtPkxhbmcoJ2Vycm9yX2J1Y2tldF9ub3RfZm91bmQnKSk7CiAgICAgICAgJHRoaXMtPlJlZGlyZWN0VG9BZG1pblRhYigpOwogICAgfQp9CgokdHBsID0gJHNtYXJ0eS0+Q3JlYXRlVGVtcGxhdGUoJHRoaXMtPkdldFRlbXBsYXRlUmVzb3VyY2UoJ2VkaXRfYnVja2V0LnRwbCcpLCBudWxsLCBudWxsLCAkc21hcnR5KTsKJHRwbC0+YXNzaWduKCdidWNrZXQnLCAkYnVja2V0KTsKJHRwbC0+YXNzaWduKCdidWNrZXRfaWQnLCAkYnVja2V0X2lkKTsKJHRwbC0+YXNzaWduKCdhY2Nlc3NfcmVnaW9uX2xpc3QnLCAkYXdzcmVnaW9ubmFtZXMpOwokdHBsLT5kaXNwbGF5KCk7Cg==]]></data>
	</file>
	<file>
		<filename>/action.fileaction.php</filename>
		<isdir>0</isdir>
		<data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBTZWUgTElDRU5TRSBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQppZiAoIWRlZmluZWQoJ0NNU19WRVJTSU9OJykpIGV4aXQ7DQppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJHRoaXM6Ok1BTkFHRV9QRVJNKSApIHJldHVybjsNCg0KJGZpbGVhY3Rpb249IiI7DQppZiAoaXNzZXQoJHBhcmFtc1siZmlsZWFjdGlvbiJdKSkgJGZpbGVhY3Rpb249JHBhcmFtc1siZmlsZWFjdGlvbiJdOw0KDQppZiAoaXNzZXQoJHBhcmFtc1siZmlsZWFjdGlvbm5ld2RpciJdKSB8fCAkZmlsZWFjdGlvbj09Im5ld2RpciIpIHsNCiAgaW5jbHVkZV9vbmNlKF9fRElSX18uIi9hY3Rpb24ubmV3ZGlyLnBocCIpOw0KICByZXR1cm47DQp9DQoNCmlmIChpc3NldCgkcGFyYW1zWyJmaWxlYWN0aW9ucmVuYW1lIl0pIHx8ICRmaWxlYWN0aW9uPT0icmVuYW1lIikgew0KICBpbmNsdWRlX29uY2UoX19ESVJfXy4iL2FjdGlvbi5yZW5hbWUucGhwIik7DQogIHJldHVybjsNCn0NCg0KaWYgKGlzc2V0KCRwYXJhbXNbImZpbGVhY3Rpb25kZWxldGUiXSkgfHwgJGZpbGVhY3Rpb249PSJkZWxldGUiKSB7DQogIGluY2x1ZGVfb25jZShfX0RJUl9fLiIvYWN0aW9uLmRlbGV0ZS5waHAiKTsNCiAgcmV0dXJuOw0KfQ0KDQppZiAoaXNzZXQoJHBhcmFtc1siZmlsZWFjdGlvbmNvcHkiXSkgfHwgJGZpbGVhY3Rpb249PSJjb3B5Iikgew0KICBpbmNsdWRlX29uY2UoX19ESVJfXy4iL2FjdGlvbi5jb3B5LnBocCIpOw0KICByZXR1cm47DQp9DQoNCmlmIChpc3NldCgkcGFyYW1zWyJmaWxlYWN0aW9ubW92ZSJdKSB8fCAkZmlsZWFjdGlvbj09Im1vdmUiKSB7DQogIGluY2x1ZGVfb25jZShfX0RJUl9fLiIvYWN0aW9uLm1vdmUucGhwIik7DQogIHJldHVybjsNCn0NCg0KaWYgKGlzc2V0KCRwYXJhbXNbImZpbGVhY3Rpb251bnBhY2siXSkgfHwgJGZpbGVhY3Rpb249PSJ1bnBhY2siKSB7DQogIGluY2x1ZGVfb25jZShfX0RJUl9fLiIvYWN0aW9uLnVucGFjay5waHAiKTsNCiAgcmV0dXJuOw0KfQ0KDQppZiAoaXNzZXQoJHBhcmFtc1siZmlsZWFjdGlvbnRodW1iIl0pIHx8ICRmaWxlYWN0aW9uPT0idGh1bWIiKSB7DQogIGluY2x1ZGVfb25jZShfX0RJUl9fLiIvYWN0aW9uLnRodW1iLnBocCIpOw0KICByZXR1cm47DQp9DQoNCmlmIChpc3NldCgkcGFyYW1zWydmaWxlYWN0aW9ucmVzaXplY3JvcCddKSB8fCAkZmlsZWFjdGlvbiA9PSAncmVzaXplY3JvcCcpIHsNCiAgaW5jbHVkZV9vbmNlKF9fRElSX18uJy9hY3Rpb24ucmVzaXplY3JvcC5waHAnKTsNCiAgcmV0dXJuOw0KfQ0KDQppZiAoaXNzZXQoJHBhcmFtc1snZmlsZWFjdGlvbnJvdGF0ZSddKSB8fCAkZmlsZWFjdGlvbiA9PSAncm90YXRlJykgew0KICBpbmNsdWRlX29uY2UoX19ESVJfXy4nL2FjdGlvbi5yb3RhdGUucGhwJyk7DQogIHJldHVybjsNCn0NCg0KaWYgKGlzc2V0KCRwYXJhbXNbJ2ZpbGVhY3Rpb25yZWZyZXNoJ10pIHx8ICRmaWxlYWN0aW9uID09ICdyZWZyZXNoJykgew0KICBpbmNsdWRlX29uY2UoX19ESVJfXy4nL2FjdGlvbi5yZWZyZXNoLnBocCcpOw0KICByZXR1cm47DQp9DQoNCiRidWNrZXRfaWQgPSBpc3NldCgkcGFyYW1zWydidWNrZXRfaWQnXSkgPyAoaW50KSAkcGFyYW1zWydidWNrZXRfaWQnXSA6IDA7DQokdGhpcy0+UmVkaXJlY3QoJGlkLCJicm93c2VfYnVja2V0IiwkcmV0dXJuaWQsYXJyYXkoInByZWZpeCI9PiRwYXJhbXNbInByZWZpeCJdLCJidWNrZXRfaWQiPT4kYnVja2V0X2lkLCJmbWVycm9yIj0+InVua25vd25maWxlYWN0aW9uIikpOw0KDQo=]]></data>
	</file>
	<file>
		<filename>/action.refresh.php</filename>
		<isdir>0</isdir>
		<data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBTZWUgTElDRU5TRSBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCm5hbWVzcGFjZSBBV1NTMzsNCmlmICghZGVmaW5lZCgnQ01TX1ZFUlNJT04nKSkgZXhpdDsNCmlmKCAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbigkdGhpczo6TUFOQUdFX1BFUk0pICkgcmV0dXJuOw0KDQokcHJlZml4ID0gaXNzZXQoJHBhcmFtc1sncHJlZml4J10pID8gJHBhcmFtc1sncHJlZml4J10gOiAnJzsNCiRidWNrZXRfaWQgPSBpc3NldCgkcGFyYW1zWydidWNrZXRfaWQnXSkgPyAoaW50KSAkcGFyYW1zWydidWNrZXRfaWQnXSA6IDA7DQokYnVja2V0ID0gJGJ1Y2tldF9pZCA/ICR0aGlzLT5HZXRCdWNrZXQoJGJ1Y2tldF9pZCkgOiAkdGhpcy0+R2V0QnVja2V0KCk7DQppZiAoJGJ1Y2tldCkgJGJ1Y2tldF9pZCA9ICRidWNrZXQtPmlkOw0KDQokcXBhcm1zID0gYXJyYXkoKTsNCiRxcGFybXNbJ2J1Y2tldF9pZCddID0gJGJ1Y2tldF9pZDsNCiRxcGFybXNbJ2J1Y2tldF9vYmonXSA9ICRidWNrZXQ7DQokcXBhcm1zWydwcmVmaXgnXSA9ICRwcmVmaXg7DQokcXBhcm1zWydyZXR1cm5pZCddID0gJHJldHVybmlkOw0KJHNtYXJ0eS0+YXNzaWduKCdxcGFybXMnLCRxcGFybXMpOw0KDQokanNvbl9maWxlX1BhdGggPSAkdGhpcy0+Z2V0Q2FjaGVGaWxlKCRxcGFybXMpOw0KJGRhdGEgPSBidWNrZXRfcXVlcnk6OmNhY2hlX3F1ZXJ5KCRxcGFybXMsJGpzb25fZmlsZV9QYXRoKTsNCiRyZXR1cm5fcGFyYW1zID0gWydwcmVmaXgnPT4kcHJlZml4LCAnYnVja2V0X2lkJz0+JGJ1Y2tldF9pZCwgImZtbWVzc2FnZSI9PiJyZWZyZXNoc3VjY2VzcyJdOw0KJHRoaXMtPlJlZGlyZWN0KCRpZCwiYnJvd3NlX2J1Y2tldCIsJHJldHVybmlkLCRyZXR1cm5fcGFyYW1zKTsNCg0K]]></data>
	</file>
	<file>
		<filename>/action.settings.php</filename>
		<isdir>0</isdir>
		<data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgU2VlIExJQ0VOU0UgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmlmICghZGVmaW5lZCgnQ01TX1ZFUlNJT04nKSkgZXhpdDsKaWYgKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKEFXU1MzOjpNQU5BR0VfUEVSTSkpIHJldHVybjsKCiRjb250ZW50X29wcyA9IGNtc21zKCktPkdldENvbnRlbnRPcGVyYXRpb25zKCk7CgokdHBsID0gJHNtYXJ0eS0+Q3JlYXRlVGVtcGxhdGUoJHRoaXMtPkdldFRlbXBsYXRlUmVzb3VyY2UoJ2FkbWluX3NldHRpbmdzLnRwbCcpLCBudWxsLCBudWxsLCAkc21hcnR5KTsKJHRwbC0+YXNzaWduKCdpbnB1dF9kZXRhaWxwYWdlJywgJGNvbnRlbnRfb3BzLT5DcmVhdGVIaWVyYXJjaHlEcm9wZG93bignJywgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2RldGFpbHBhZ2UnKSwgJGlkIC4gJ3NldHRpbmdzW2RldGFpbHBhZ2VdJykpOwokdHBsLT5hc3NpZ24oJ2lucHV0X3N1bW1hcnlwYWdlJywgJGNvbnRlbnRfb3BzLT5DcmVhdGVIaWVyYXJjaHlEcm9wZG93bignJywgJHRoaXMtPkdldFByZWZlcmVuY2UoJ3N1bW1hcnlwYWdlJyksICRpZCAuICdzZXR0aW5nc1tzdW1tYXJ5cGFnZV0nKSk7CiR0cGwtPmRpc3BsYXkoKTsK]]></data>
	</file>
	<file>
		<filename>/action.signed.php</filename>
		<isdir>0</isdir>
		<data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBTZWUgTElDRU5TRSBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQppZiAoIWRlZmluZWQoJ0NNU19WRVJTSU9OJykpIGV4aXQ7DQp1c2UgQVdTUzNcdXRpbHM7DQoNCiRtb2Rfc2RrID0gXGNtc191dGlsczo6Z2V0X21vZHVsZSgnQVdTU0RLJyk7DQppZighaXNfb2JqZWN0KCRtb2Rfc2RrKSl7DQoJdGhyb3cgbmV3IFxFeGNlcHRpb24oJ0FXU1NESyBtb2R1bGUgaXMgcmVxdWlyZWQnKTsNCn0NCg0KdHJ5IHsNCglpZiggIWlzc2V0KCRwYXJhbXNbJ2tleSddKSApIHsNCgkJdGhyb3cgbmV3IFxBV1NTREtcRXhjZXB0aW9uKCdLZXkgaXMgcmVxdWlyZWQnKTsNCgl9DQoNCgkkZGVjb2RlZCA9IFxBV1NTREtcZW5jcnlwdDo6ZGVjb2RlZmlsZW5hbWUoJHBhcmFtc1sna2V5J10pOw0KCSRwYXJ0cyA9IGV4cGxvZGUoJ3wnLCAkZGVjb2RlZCwgMik7DQoJaWYgKGNvdW50KCRwYXJ0cykgPT09IDIpIHsNCgkJJGJ1Y2tldF9pZCA9IChpbnQpICRwYXJ0c1swXTsNCgkJJGtleSA9ICRwYXJ0c1sxXTsNCgkJJGJ1Y2tldCA9ICR0aGlzLT5HZXRCdWNrZXQoJGJ1Y2tldF9pZCk7DQoJfSBlbHNlIHsNCgkJLy8gTGVnYWN5IGZvcm1hdCAobm8gYnVja2V0IElEKQ0KCQkka2V5ID0gJGRlY29kZWQ7DQoJCSRidWNrZXQgPSAkdGhpcy0+R2V0QnVja2V0KCk7DQoJfQ0KDQoJJGZpbGUgPSB1dGlsczo6cHJlc2lnbmVkVXJsKCRrZXksICRidWNrZXQpOw0KCWhlYWRlcigiTG9jYXRpb246ICIgLiAkZmlsZSk7DQoJZGllKCk7DQoJDQp9IGNhdGNoIChcQVdTU0RLXEV4Y2VwdGlvbiAkZSkgew0KCSRtb2Rfc2RrLT5fRGlzcGxheU1lc3NhZ2UoJGUtPmdldFRleHQoKSk7DQp9DQo=]]></data>
	</file>
	<file>
		<filename>/action.upload.php</filename>
		<isdir>0</isdir>
		<data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgU2VlIExJQ0VOU0UgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmlmICghZGVmaW5lZCgnQ01TX1ZFUlNJT04nKSkgZXhpdDsKCnVzZSBcQVdTUzNcdXRpbHM7CgovLyBSZXNvbHZlIGJ1Y2tldAokYnVja2V0ID0gJHRoaXMtPlJlc29sdmVCdWNrZXQoJHBhcmFtcyk7CgppZiAoISRidWNrZXQpIHsKICAgIGVjaG8gJzxwIGNsYXNzPSJlcnJvciI+JyAuICR0aGlzLT5MYW5nKCdub19idWNrZXRzX2RlZmluZWQnKSAuICc8L3A+JzsKICAgIHJldHVybjsKfQoKJHRwbCA9IFxDbXNMYXlvdXRUZW1wbGF0ZTo6bG9hZF9kZmx0X2J5X3R5cGUoJ0FXU1MzOjp1cGxvYWQnKTsKaWYgKCFpc19vYmplY3QoJHRwbCkpIHsKICAgIGF1ZGl0KCcnLCAkdGhpcy0+R2V0TmFtZSgpLCAnTm8gZGVmYXVsdCB1cGxvYWQgdGVtcGxhdGUgZm91bmQnKTsKICAgIHJldHVybjsKfQokdGVtcGxhdGUgPSAkdHBsLT5nZXRfbmFtZSgpOwoKJHRlbXBsYXRlID0gXHh0X3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsICd0ZW1wbGF0ZScsICR0ZW1wbGF0ZSk7CiRub2NhcHRjaGEgPSBceHRfcGFyYW06OmdldF9ib29sKCRwYXJhbXMsICdub2NhcHRjaGEnKTsKJGRlYnVnID0gaXNzZXQoJHBhcmFtc1snZGVidWcnXSk7CiRtZXNzYWdlID0gbnVsbDsKJHMzX3V0aWxzID0gbmV3IHV0aWxzKCRidWNrZXQpOwokc2RrID0gdXRpbHM6OmdldF9zZGsoKTsKCiR0cGxfb2IgPSAkc21hcnR5LT5DcmVhdGVUZW1wbGF0ZSgkdGhpcy0+R2V0VGVtcGxhdGVSZXNvdXJjZSgkdGVtcGxhdGUpLCBudWxsLCBudWxsLCAkc21hcnR5KTsKCmlmIChpc3NldCgkcGFyYW1zWydpbnB1dF9zdWJtaXQnXSkpIHsKICAgIHRyeSB7CiAgICAgICAgJHByZWZpeCA9IGlzc2V0KCRwYXJhbXNbJ3ByZWZpeCddKSA/ICRwYXJhbXNbJ3ByZWZpeCddIDogJyc7CgogICAgICAgICR1cGxvYWRmaWxlID0gJF9GSUxFU1skaWQgLiAnaW5wdXRfYnJvd3NlJ107CiAgICAgICAgJGZpbGVfbmFtZSA9IGJhc2VuYW1lKCRfRklMRVNbJGlkIC4gJ2lucHV0X2Jyb3dzZSddWyduYW1lJ10pOwogICAgICAgICRmaWxlX3R5cGUgPSBwYXRoaW5mbygkZmlsZV9uYW1lLCBQQVRISU5GT19FWFRFTlNJT04pOwoKICAgICAgICBpZiAoZW1wdHkoJGZpbGVfbmFtZSkpIHsKICAgICAgICAgICAgdGhyb3cgbmV3IFxFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ3dhcm5fZmlsZV9taXNzaW5nJykpOwogICAgICAgIH0KCiAgICAgICAgLy8gQ2hlY2sgYWxsb3dlZCBleHRlbnNpb25zIGFnYWluc3QgdGhlIGJ1Y2tldCdzIGFsbG93ZWQgbGlzdAogICAgICAgIGlmICghdXRpbHM6OmlzX2ZpbGVfYWNjZXB0YWJsZSgkZmlsZV90eXBlLCAkYnVja2V0KSkgewogICAgICAgICAgICB0aHJvdyBuZXcgXEV4Y2VwdGlvbigkdGhpcy0+TGFuZygnd2Fybl9maWxlX25vdF9hbGxvd2VkJykpOwogICAgICAgIH0KCiAgICAgICAgLy8gQ2hlY2sgY2FwdGNoYQogICAgICAgICRjYXB0Y2hhID0gJHRoaXMtPkdldE1vZHVsZUluc3RhbmNlKCdDYXB0Y2hhJyk7CiAgICAgICAgaWYgKGlzX29iamVjdCgkY2FwdGNoYSkgJiYgISRub2NhcHRjaGEgJiYgaXNzZXQoJHBhcmFtc1snaW5wdXRfY2FwdGNoYSddKSkgewogICAgICAgICAgICBpZiAoISRjYXB0Y2hhLT5jaGVja0NhcHRjaGEoXHh0X3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsICdpbnB1dF9jYXB0Y2hhJykpKSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgXEV4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3JfY2FwdGNoYW1pc21hdGNoJykpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAkZmlsZV90ZW1wX3NyYyA9ICRfRklMRVNbJGlkIC4gJ2lucHV0X2Jyb3dzZSddWyJ0bXBfbmFtZSJdOwogICAgICAgIGlmIChpc191cGxvYWRlZF9maWxlKCRmaWxlX3RlbXBfc3JjKSkgewogICAgICAgICAgICAkcmV0ID0gJHMzX3V0aWxzLT51cGxvYWRfZmlsZSgkcHJlZml4IC4gJGZpbGVfbmFtZSwgJGZpbGVfdGVtcF9zcmMpOwogICAgICAgIH0KCiAgICAgICAgaWYgKCRyZXRbMF0gPT0gZmFsc2UpIHRocm93IG5ldyBcRXhjZXB0aW9uKCRyZXRbMV0pOwogICAgICAgICRnb29kX3VwbG9hZCA9ICRyZXRbMl07CgogICAgICAgIC8vIFJlZGlyZWN0IGlmIHNwZWNpZmllZAogICAgICAgIGlmIChpc3NldCgkcGFyYW1zWydyZWRpcmVjdCddKSAmJiAoJHRtcCA9ICRwYXJhbXNbJ3JlZGlyZWN0J10pKSB7CiAgICAgICAgICAgICRkZXN0cGFnZSA9ICRzZGstPnJlc29sdmVfYWxpYXNfb3JfaWQoJHRtcCwgJHJldHVybmlkKTsKICAgICAgICAgICAgJHRoaXMtPnJlZGlyZWN0Y29udGVudCgkZGVzdHBhZ2UpOwogICAgICAgIH0KICAgIH0gY2F0Y2ggKFxFeGNlcHRpb24gJGUpIHsKICAgICAgICAkZXJyb3JtZXNzYWdlID0gJGUtPmdldE1lc3NhZ2UoKTsKICAgIH0KCiAgICBpZiAoaXNzZXQoJGVycm9ybWVzc2FnZSkpIHsKICAgICAgICAkdHlwZSA9ICJhbGVydC1kYW5nZXIiOwogICAgICAgICRtZXNzYWdlID0gJGVycm9ybWVzc2FnZTsKICAgIH0gZWxzZSB7CiAgICAgICAgJHR5cGUgPSAiYWxlcnQtc3VjY2VzcyI7CiAgICAgICAgJG1lc3NhZ2UgPSAkdGhpcy0+TGFuZygnc3VjY2Vzc2Z1bF91cGxvYWQnLCAkZ29vZF91cGxvYWQpOwogICAgfQoKICAgICRtZXNzYWdlID0gJHNkay0+X0Rpc3BsYXlNZXNzYWdlKCRtZXNzYWdlLCAkdHlwZSwgMSk7CiAgICAkdHBsX29iLT5hc3NpZ24oJ2F3c3MzX21lc3NhZ2UnLCAkbWVzc2FnZSk7Cn0KCiRmb3JtX3BhcmFtcyA9IFsKICAgICdwcmVmaXgnID0+IGlzc2V0KCRwYXJhbXNbJ3ByZWZpeCddKSA/ICRwYXJhbXNbJ3ByZWZpeCddIDogJycsCiAgICAnbm9jYXB0Y2hhJyA9PiAkbm9jYXB0Y2hhLAogICAgJ3JlZGlyZWN0JyA9PiBpc3NldCgkcGFyYW1zWydyZWRpcmVjdCddKSA/ICRwYXJhbXNbJ3JlZGlyZWN0J10gOiAnJywKICAgICdidWNrZXQnID0+ICRidWNrZXQtPmlkCl07CiR0cGxfb2ItPmFzc2lnbignZm9ybV9wYXJhbXMnLCAkZm9ybV9wYXJhbXMpOwokdHBsX29iLT5hc3NpZ24oJ2J1Y2tldF9pZCcsICRidWNrZXQtPmlkKTsKCmlmICghJG5vY2FwdGNoYSkgewogICAgJGNhcHRjaGEgPSAkdGhpcy0+R2V0TW9kdWxlSW5zdGFuY2UoJ0NhcHRjaGEnKTsKICAgIGlmIChpc19vYmplY3QoJGNhcHRjaGEpKSB7CiAgICAgICAgJHRwbF9vYi0+YXNzaWduKCdjYXB0Y2hhX3RpdGxlJywgJHRoaXMtPkxhbmcoJ2NhcHRjaGFfdGl0bGUnKSk7CiAgICAgICAgJHRwbF9vYi0+YXNzaWduKCdjYXB0Y2hhJywgJGNhcHRjaGEtPmdldENhcHRjaGEoKSk7CiAgICB9Cn0KCiR0cGxfb2ItPmRpc3BsYXkoKTsKCmlmICgkZGVidWcpIHsKICAgICR0cGxfb2ItPmRpc3BsYXkoJ3N0cmluZzo8cHJlPntnZXRfdGVtcGxhdGVfdmFyc308L3ByZT4nKTsKfQo=]]></data>
	</file>
	<file>
		<filename>/action.upload_admin.php</filename>
		<isdir>0</isdir>
		<data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBTZWUgTElDRU5TRSBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCm5hbWVzcGFjZSBBV1NTMzsNCg0KaWYgKCFkZWZpbmVkKCdDTVNfVkVSU0lPTicpKSBleGl0Ow0KaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCR0aGlzOjpNQU5BR0VfUEVSTSkgKSByZXR1cm47DQoNCmhlYWRlcignQ29udGVudC10eXBlOiBhcHBsaWNhdGlvbi9qc29uJyk7DQp1c2UgQVdTUzNcdXRpbHM7DQoNCiRidWNrZXRfaWQgPSBpc3NldCgkcGFyYW1zWydidWNrZXRfaWQnXSkgPyAoaW50KSAkcGFyYW1zWydidWNrZXRfaWQnXSA6IDA7DQokYnVja2V0ID0gJGJ1Y2tldF9pZCA/ICR0aGlzLT5HZXRCdWNrZXQoJGJ1Y2tldF9pZCkgOiAkdGhpcy0+R2V0QnVja2V0KCk7DQokdXRpbHMgPSBuZXcgdXRpbHMoJGJ1Y2tldCk7DQokRmlsZU1hbmFnZXIgPSBcY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdGaWxlTWFuYWdlcicpOw0KJGVycm9yID0gMDsNCg0KJGRhdGEgPSBhcnJheSgpOw0KDQp0cnkgew0KDQogICAgaWYoZW1wdHkoJF9GSUxFUykpIHsNCiAgICAgICAgdGhyb3cgbmV3IFxFeGNlcHRpb24oICR0aGlzLT5MYW5nKCd3YXJuX2ZpbGVfbWlzc2luZycpICk7DQogICAgfQ0KDQogICAgJGZpbGVzID0gYXJyYXlfZmlsdGVyKCRfRklMRVNbJGlkLidmaWxlcyddWyduYW1lJ10pOw0KDQogICAgJHRvdGFsX2NvdW50ID0gY291bnQoJF9GSUxFU1skaWQuJ2ZpbGVzJ11bJ25hbWUnXSk7DQogICAgLy8gTG9vcCB0aHJvdWdoIGV2ZXJ5IGZpbGUNCiAgICBmb3IoICRpPTAgOyAkaSA8ICR0b3RhbF9jb3VudCA7ICRpKysgKSB7DQoNCiAgICAgICAgJGZpbGVfbmFtZSA9IGJhc2VuYW1lKCRfRklMRVNbJGlkLidmaWxlcyddWyduYW1lJ11bJGldKTsgDQogICAgICAgICRmaWxlX3R5cGUgPSBwYXRoaW5mbygkZmlsZV9uYW1lLCBQQVRISU5GT19FWFRFTlNJT04pOyANCg0KICAgICAgICAkcmV0dXJuX3BhcmFtc1snbmFtZSddID0gJGZpbGVfbmFtZTsNCiAgICAgICAgJHJldHVybl9wYXJhbXNbJ3NpemUnXSA9ICRfRklMRVNbJGlkLidmaWxlcyddWydzaXplJ11bJGldOw0KICAgICAgICANCiAgICAgICAgLy8gQWxsb3cgY2VydGFpbiBmaWxlIGZvcm1hdHMgDQogICAgICAgIGlmKCAhJHV0aWxzOjppc19maWxlX2FjY2VwdGFibGUoICRmaWxlX3R5cGUsICRidWNrZXQgKSApIHsNCiAgICAgICAgICAgIC8vdGhyb3cgbmV3IFxFeGNlcHRpb24oICR0aGlzLT5MYW5nKCd3YXJuX2ZpbGVfbm90X2FsbG93ZWQnKSApOw0KICAgICAgICAgICAgJHJldHVybl9wYXJhbXNbJ2Vycm9yJ10gPSAiRmlsZXR5cGUgbm90IGFsbG93ZWQiOw0KICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgLy91cGxvYWQgdG8gUzMNCiAgICAgICAgICAgICRmaWxlX3RlbXBfc3JjID0gJF9GSUxFU1skaWQuJ2ZpbGVzJ11bInRtcF9uYW1lIl1bJGldOw0KICAgICAgICAgICAgaWYoaXNfdXBsb2FkZWRfZmlsZSgkZmlsZV90ZW1wX3NyYykpew0KICAgICAgICAgICAgICAgICRzMyA9ICR1dGlscy0+dXBsb2FkX2ZpbGUoJHBhcmFtc1sicHJlZml4Il0uJGZpbGVfbmFtZSwkZmlsZV90ZW1wX3NyYyk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICAkZGF0YVsnZmlsZXMnXVtdID0gJHJldHVybl9wYXJhbXM7DQoNCiAgICB9DQoNCn0NCmNhdGNoKCBcRXhjZXB0aW9uICRlICkgew0KCSRlcnJvciA9IDE7CQ0KCSRtZXNzYWdlID0gJGUtPmdldE1lc3NhZ2UoKTsNCiAgICAkZGF0YVsnZXJyb3InXSA9ICRtZXNzYWdlOw0KDQp9DQoNCi8vIEludmFsaWRhdGUgY2FjaGUgZm9yIHRoaXMgYnVja2V0L3ByZWZpeCBhZnRlciB1cGxvYWQNCmlmICghJGVycm9yKSB7DQogICAgJHByZWZpeCA9IGlzc2V0KCRwYXJhbXNbJ3ByZWZpeCddKSA/ICRwYXJhbXNbJ3ByZWZpeCddIDogJyc7DQogICAgdXRpbHM6OmNsZWFyQnVja2V0Q2FjaGUoJGJ1Y2tldF9pZCwgJHByZWZpeCk7DQp9DQoNCmVjaG8ganNvbl9lbmNvZGUoJGRhdGEpOw0KDQo=]]></data>
	</file>
	<file>
		<filename>/action.uploadview.php</filename>
		<isdir>0</isdir>
		<data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBTZWUgTElDRU5TRSBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQppZiAoIWRlZmluZWQoJ0NNU19WRVJTSU9OJykpIGV4aXQ7DQppZiAoISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJHRoaXM6Ok1BTkFHRV9QRVJNKSkgcmV0dXJuOw0KDQokcGF0aD0nJzsNCmlmKCBpc3NldCgkcGFyYW1zWyJwcmVmaXgiXSkpIHsNCiAgJHBhdGggPSAkcGFyYW1zWyJwcmVmaXgiXTsNCiAgJHNtYXJ0eS0+YXNzaWduKCdoaWRkZW5wYXRoJywgJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgInByZWZpeCIsICRwYXRoKSk7DQp9DQoNCiRzbWFydHktPmFzc2lnbignaGlkZGVuX2J1Y2tldF9pZCcsICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICJidWNrZXRfaWQiLCAkYnVja2V0X2lkKSk7DQokc21hcnR5LT5hc3NpZ24oJ2Zvcm1zdGFydCcsJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsICd1cGxvYWRfYWRtaW4nLCAkcmV0dXJuaWQsInBvc3QiLCJtdWx0aXBhcnQvZm9ybS1kYXRhIikpOw0KJHNtYXJ0eS0+YXNzaWduKCdhY3Rpb25pZCcsJGlkKTsNCiRzbWFydHktPmFzc2lnbignbWF4ZmlsZXNpemUnLCRjb25maWdbIm1heF91cGxvYWRfc2l6ZSJdKTsNCiRzbWFydHktPmFzc2lnbignc3VibWl0JywkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCJzdWJtaXQiLCR0aGlzLT5MYW5nKCJzdWJtaXQiKSwiIiwiIikpOw0KJHNtYXJ0eS0+YXNzaWduKCdmb3JtZW5kJywkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsNCg0KJHBvc3RfbWF4X3NpemUgPSBmaWxlbWFuYWdlcl91dGlsczo6c3RyX3RvX2J5dGVzKGluaV9nZXQoJ3Bvc3RfbWF4X3NpemUnKSk7DQokdXBsb2FkX21heF9maWxlc2l6ZSA9IGZpbGVtYW5hZ2VyX3V0aWxzOjpzdHJfdG9fYnl0ZXMoaW5pX2dldCgndXBsb2FkX21heF9maWxlc2l6ZScpKTsNCiRzbWFydHktPmFzc2lnbignbWF4X2NodW5rc2l6ZScsbWluKCR1cGxvYWRfbWF4X2ZpbGVzaXplLCRwb3N0X21heF9zaXplLTEwMjQpKTsNCmlmIChpc3NldCgkX1NFUlZFUlsnSFRUUF9VU0VSX0FHRU5UJ10pICYmIChzdHJwb3MoJF9TRVJWRVJbJ0hUVFBfVVNFUl9BR0VOVCddLCAnTVNJRScpICE9PSBmYWxzZSkpIHsNCiAgICAkc21hcnR5LT5hc3NpZ24oJ2lzX2llJywxKTsNCn0NCiRzbWFydHktPmFzc2lnbignYWN0aW9uX3VybF91cGxvYWQnLCR0aGlzLT5jcmVhdGVfdXJsKCdtMV8nLCd1cGxvYWQnLCRyZXR1cm5pZCkpOw0KJHNtYXJ0eS0+YXNzaWduKCdGaWxlTWFuYWdlcicsXGNtc191dGlsczo6Z2V0X21vZHVsZSgnRmlsZU1hbmFnZXInKSk7DQoNCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgndXBsb2Fkdmlldy50cGwnKTsNCg==]]></data>
	</file>
	<file>
		<filename>/assets</filename>
		<isdir>1</isdir>
	</file>
	<file>
		<filename>/assets/icon.svg</filename>
		<isdir>0</isdir>
		<data><![CDATA[PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjU2IiBoZWlnaHQ9IjI1NiIgdmlld0JveD0iMCAwIDI1NiAyNTYiPgogIDxpbWFnZSB3aWR0aD0iMjU2IiBoZWlnaHQ9IjI1NiIgeGxpbms6aHJlZj0iZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFRQUFBQUVBQ0FJQUFBRFRFRDh4QUFEUGZFbEVRVlI0bkt6OWQ5eHRXMWtlREYvM21IT3RwKzYrejk3N2RFN2huQU9IRGdjRUZFVkVRUlJiTEFrR1RZeEpMRW4wTlg2SnBwcEVMSy9HejVKb3JESFdLQmFRSUdLakNTSWNlajJjdW50L3luNzZtblBjM3gvamJtT3V0Zkg5ZmI5M2NYajJLbk9PY2RmckxtUE1PZWxMWC9jVVJnWUFNSWdnTHdiS2V3S1hqOVdMQVFLekhBTUNtT1FOQmtQUTlOblZRZXhuRVJMQWRyU2RlYjBoeW5reU14ZEN1VDR6amdHUW5pSnMyWUZLQmd2REJJQ0l1UHd3ZStycWgwaDB4ZjRVdjNwcWxMYUlrZ2REbEdNcitua29hQUl4Z1Jnc0VpZ2ZmSHJXYVN0cUNIYVNpYVdNelZ4K25NbjJnRE1HYUNnR0lVUE5odHdNcmpkSy9SSmJxdlg0Lyt6RnpNSS9xSmdubFNGVWp5YVI4aVlEMUtxb3NrbzNjTVFnWWg2Y0ZSaUR5b3VEUktJeGNNMkR2NDkyVU95UlFHQjNLVVRUNDZES1l0T2tCMURoVk9rd1oyVW5qcUQwRWRlME1Dc1RZWHcydHhWcUdFUk9jRVYyRkVrUk56RkgrZmxzWlc1S1JpalZoNUR6VkN4VDVvYTlCelBUUUJrSVBscE1SZ2hnSW9NdUVqZFNZOWV6elV0WWxRMHV0bWRHSEk3MlYwV0RhMXhOTGFCUElZYjRPdDdFMVZzeUtRMVF6STdVaWYyVEFWaHdtYUlNVmJsOVQ2b2pKejR4T0FtL0lCYlIrekF5a21tVVpYS1dYOFNDbUltWnk2UjZOamw5TlpkQmRHVW9LalFSeTlUTXhDQ0Q2REN6UkNSV2xDNUJpTE1jVDJGNkJySHB2NmhkZGNKcXI1R3dHVUJESkE1RkNhNFZLcGlaZzlHeEhROXdEaTdJcEhxZ0FEOEVnRW4xd2VWWG5hdElnOFh1aXV4SllheXd5SVRBcXhKUWRFZUZMWk1rN0kwamRYbHY3QWNHMlA0V0VTdDJoS1BzQXdzdWVxd2g1Y1hWVU9iMUlPejZtWDdwYUE1UmdSNDVRblduMWhYVmxrMFFqQndzY0doK0RCUzlNSmlaUUtsb3B6SVgxN2U0SXB0TFF0UTNaUzlCeFlIRnJCOWpTQlZ2TlM5bmxhUktYZ2pYdzFSVmJDQ3MrR251SXdhdEtqQm9VaVJUaHpLcm4zTExvVlpZZFJ3OXhheWxQam9vZzBJRU4wYmdNVGpuN0FCQ0NnTTZDYk5NeXh3TjBBblVCS2lpd09Ra0lPR21QU0F3QnAwYXZJMW5NZ0VwTWZvMWNjaStpTWlabHZrTERjWGNWUmxxVjBBd2dXbmJxV1JKZ2hmczBsSDYvRitaUWhBYUhPWEI3ald1T2Ric3dPR2NBR1Frb1pFckc0VkgvYUg1bG5PRlNwNW1oOEpmRUloNGNCU1JpNFJkby9HMEFQTEJtaXNLQWhLd2hZY1M0elZGS2tja25jb3lHTldpMDFweE56QnVFZ1NtNnBjWW5nT3lsYUVrMnpGTUNBNUVJSGFYTHY5ejVDY05GeEllbUluSTdabEJsSUNoTkdwTEo3TWhNVklubGN6MGxSOHFvYkpRUVNDUzJPUitUdE5Uc2Y4M2RDR05adVlnSkFrbFRjdFpUOUF2bzB6a2U0cHZOQUpQRStTUlFaTVpwZEFqbUtVMlZDbGQ3R05LdjZhN2ltU1JIM21rMGpSSG1RY3NZUzBaTVVveWFsSFpFQjkyekdCOEtQSmlxR2lkVUxFaDRGbkpnY3JYckNNcmFHcFFjSFFzSWMrSWNtQjF5ZzB1MmF6WnNORzl4d0F6b0ZXWnF5NDVLeFpLMlVJa3VURUp0MVlWV0JRUmR4STdscXhKWFQ5WXFsaEdrSzE0amtJamllS3BSa3EyM0VnVE4wdXZTZlFtdkhrWUNza3VtejE1eGVCNHJ4WUVDK1V1UC92TkRGNk5tNVhja09qSHF0OHRndHo0ek9RWTZuOXMyRmhCVlhocGNFdEtQdGNVV2xDclptWERiSU1saXBhQk9GQUF2c3JZVEFjUmJCQVBqcEdyUHNBY0hWSXBjakVOcGxEZ2todW1uRVNRV2tZejdLb2VEdVNSOG82cFVPQlJ6UkhGck1UTUEvRWdFNGlxZ2MwUVNGSXNjN3p3QzBLRFNHSmFOQzJaS0lmVTN2d3ZXQlRia1ZDZGNqRXN5N1MwT3RZeURBb2g1UncySkRWR0RFZGR1Rng4bExSZVp2MjI4T0ZIMHVEVXdlZ1V2SkhEZER5VlF3UjZFTFZpVXRQbWhZbk53cEVOWllhVk5CT2xlaXk0M0FUeXdXQnBWVmhQeVp4TXgyY2JYMU11c1JRZUJpK29ra3kzaWlMZTF4Qm1yQkF2d3A3eXIwRWVWYjBLUW9udER3U25nTU1laU5qQXArQ25ncm82bTZpV21Ja2o1R204dHJnVFBGRDdXd2lqQld2MWc0T1Z4eFFQOVZocUhGS2FrWVluSW5FVlV0eGtOUVhsVFFSTVp2SGVhd3JodnBpeWZ6R1FyZFh2WmdnY0pBTVFoWFJhZFVwR3VIZ0o1M2lBRjBteERDNHplQUN5ck54cFVmZ1BwWXVkTzlYQnNtUXZqcFA4M0txajYxa0d4eUhEYUlvekhpbGdtcFpEeklTQ280aGdWVUJadnJOeVMyUmNES0Rra3Fxd01tWW1LNENNdG9DQXFNcFd6UnlWQVE3QzFScFV3cHBCZ0tVY2xzcVE0NmNXUndQdlZ3dG1XUDhxMUZ0Z1V4S1QycUNkYWIxTllZcW1pcnBvRWdnbGNwMW5jVzBIOWxhNzFERWxZQzdtYjhpaWhtSDVkQUUrQzEwMjluUXJSc0lyU3hVVEpBNUl2UFZPQjNFUXZ2bXl6c1hhdXErMGlldS9MTjlXWGl1NVZXSkVVSmR6aFZUMU9Pd3cxalVGTXdGMitnSEVCTEhLNDkycUlzaEZpSWVacVBWMVBIT1FoaXdyNzlIQXB5YjJIMHIzRDZGZzlhbVVxOEp4REFQUnNrS2NuWGtLS1JBSjBXcnFVcStIUU1Pc0luTURKWldsTm16TkR3eUFKYXRuc2N0QWdzNkdrdWV4MU10Q2IyVnVldVFnbXBQSEtnb2lWUGxicTlWUFYyMUZ2TFNtRmRjcEdXdFVVSkZSYUJ1U2xoaGNJWkJsb0FRREFKaFJYT2RsOXVOU2piYmp5cVVnQTllcktzVW5JVUNhSk9WVEVKcm1oOUlLWTh1NmgrekRQSzFZaXdCNXNLVXBoamcwS0tnU09VbU9URldnS0RMVnlCNFU3c0ZSbWZWZXFNVWtRNXJaRWcxZWF1SWpxejdKL01RaWh2SlF4cTJNeVlESTgyN1c5STJWSHlKNzY5UjZSWkpZVEZUQ0JXa3ppVWhYYlNQWDFzeXd2elJBUVJkd0tZTnRDY0N3UmUyYTdQZ29GUnRIVE5td2pBQnR1MFY3NEdERHVRVFhJaG94RWxPYU50N0pweVB5ZEhIbXEzSnJmODhoYjRJT0dzc2o4bSsxOGlMcDBwUzJtcXJJaE9hams3SVloRlRqY21WaVJNU2F0eFFDYU9qVTFxMHBMcVltR3REU3dNZWIrcDZFdTdpQ3JRS1FoTjZ4bUdzTnltbVdwanQ3QVN2STRFTVVLVWxZRFJ1aDFyWGNvYklkY25MTVBzSkpvSUZMTWFHc3VVc0VORlk5WU9XY2F0OFhrbjFrVzhNeTlBMGNlb0l6OEJBT1IvamVBWWNWKzQrMXFOVTBnRlJ0V290TTJlM0FGUjMxWmIxWnBHY2hyeURDekhhcEtrakhxdWVCTjlkSkJXZEV4ZEVNRmpYZUlURjBzd05ZRXgrRVB3enord0dQM3NWVE1VZkxZVjNQTldkSCtOVlgwMGlOeklLTFduRE1aaUxiYXBCZ0t3WWNZMnI0WU5GYjhIRHhTbDNKcUE2Vi82aW9nUTN6U3FrbHpXMDN3NURkdVYyYUlDb3Rrc1ZlQzNKMWZnVDFDZ3B1NzF3elNZOCtlRnY1M2c0eTFSbWY3SVFvdHhKc1lwTzFDRWtwaUtsSm5DSHdVeUVVUmJsV2ptVWt1b1J0YmNzV0tDMHRWQ2tOb1J6dXNjR2RCaDdBYXY2czRoUWJxV3BqaTcwSVh5SlY0Y1NqMlhRVUdpaFU2M28vME9ad3VnUVdyV3VvMW1zeUQwUlMyWHdtT1E3VlBldkJLMllWMWZkT1hpRkhPaEpVYjFjU013U0ZrOVR6Q3NIa25TVUZ4VEFsaFlTSHFva3JlYzJpbjZpT1FyWDRQZFZ6anFnK3loZGg0d0RCWTBJek1JWW05bGlzUFFaQWZCSHFXR3luTXp4NXE1bVR3Q3NCdWdLY29MSkV1bEtLUVdDTXFVa1VWRUFTcTJNSVlHUnBsZFN0UGpWdEptc0ptQVlya0hDQVp1MW8rQVJBTW55dThkM1VvSXNvNmtXbWtMSk9HZmlZMW5od0RnS0g2azVpbGtoY0J0WTZ0cHErTXJOSXBZR3RXWUI4TDE1VVEyUGRNUWxKNjhCeWk1d0swOUJVaEtJekFLVnZxbDljeHdXbkRjZlAxd05yVTQ4alJGMFVJeVNENXpwOFZITllXaW1EdUhMbFdBb25zZjdvV1JNVHpPckZMcldpcWdndnYzcnNON2VkaGRFNlo0aEhPalBCR2xHa3ZRRWR5NTFHZXM0S2xSYVlWSzBWWE5RQ2tZaGlrU2NndG1vdUZWWml6ODd3VHNhMGRoS0YzMkhXRU5nT1RxeitFTkpLVFhxOE1yWnp3MGV2c3NLZ3ptVzBpOEJ1TUVRbUVDWEJJT3RqT2JZNWx4b3JkUTRHTXJ3VHFFUkpyZXJyRHc0dHhkVWk0c3BQMGZxamd0anMwaEdTQTI4TUU1YTNFa3lSenJ0KzhGQlY3Um9UaFdiRVZ5MnhNby8xcTF5cndjNEU5N3dOSU9jRi93eEF5VEFqS241Rk9oSnA0Q29Ea1UwZnQrZ3hBdENHblVBeHBNVi9hdkJnZGQwQnl5VlVjUWdSOHA4ZW5RUkdpUUtzYVBBUkg2dUNhMmlwQVpCVXYvSnJrNXlwV2QzQkdvUVdFRnpwWlREMmFjS0xadkRtdjRVemRWclZORTFKQ1NJU1ViN001RDVMQXJjbFoxQzlrQTg3QStTaVRSbGdEbzhqL3h2Z0RDQlFWdWxXTnE3ZDBzRU1adTZlSjNCMUNCaklyTnFzRnQ2cmwwVUFxblZRaTkrZFV4RWpDRHE4NFdyK0lrVzJHRktkWURocXptc3J0NmdwZ2ZUMTlJMmVmaDN4ZXZJR05YdWR5Y2JUWTVWTlVqU0t2QTdhNzh5V2FZbllOWmNxTXZURmdVcStVa0tTdVpMcFNUZEljWWlmY29vTFFsOVVCK0JLbE9HUUdJS25MQTRCUXl0WHNWTEE0d0VxZjJQbHVkUTdWZFV6K0hlb2FLcUFwZ0xmQU5kQm1kV3lPREVQdWRaamRIU0JveG5FYUlvV0NLaEF5d1ZGUnRrVXhOVE52aGhnSmFuMGtEQjlydVpwY1UrS1FhbUpncXdlWUQzTkxkUmlEb3RrU0UxeFZvQTFxVm5NSXZGczFtYVRJeDJjYjA0cUo2ZWVySVJVMjFMRG5BNjJ2b3FoYkxHL0lZZ0NCUDVWNkNaUnBpaDUwclF1OENhTGd6UHJuK0N4QWVyamtaVVBTTG9UanF3dDJFT3ZmZStWaEZYODFYSkwxY3J4RlJVZHRUVDFUSnREblUxUjY0NnJIZG5hQlFJeG9qMHlpUWRFSkoxY1ZGWUlHSUFhdEt0RmNTS0xjMUNFTHFhakhROEZCTTljdUE1YmFnWWt1VDFIU1BQK2swR3JDbDJNTTJSaVRseVFuNUxxb01GQldkVU9nTUlDaDJaZkJBQ3I3aWdOQkVqRFl6VUJ0RVZXOWZvZzhOSms0YXBYNkxnZ0ZvQmEzWUIyUGFhMEhHZDNndjFzQlJMWlJrRmw1K013U3JCckxPQlhtTWFKaURNUHZhTDZxR3hiZ1dORmZUUUVtbjVUbzJpT3lUbEhvUXNna004UVh5Si9EN20yZWJLcWRYbEswZ1ppN3ZWazVzdTFxblFJS0Jta2NHdzBrTmhXVVQ1cjZoRXcxbUsrSXB5Q3NmY3J1U0k1UkFYclhGZWhoYUpNWEkxa3lodXl6SnFlZTNOOVdwZ2xBb0NxUFRLMUxHSmd0L1lDU3JTeFFCT2RqT01lUUpzNVZzS2g0clpCNnNtQ013L0RabVFlc01DU0VPM0drVDZ5UGd6VWcxZHNjMDM5VnZWM3dhRGk3VG8rQmNIUWpIbTByVlR4TkVXU2htbWEwb0lTR0xjUWFGaG1qVlZxWkVyUklGdGdNMXZqdGh6dGdqVXpIZG9CR1RKNWNHZXdHSTUydEJHc1BYUWxCeU1WWU9KWmdsYkw4QVVEaFh6OUFwVktLOHJyZ1VJM3hiMTdFSzRZMEpYZ1dVcEhLTFRVSlFOQUMwMnNiU0lHTk9IeHhscHRmdVlESVE3TDRGRlV6bkYxYXZpMS9tQ0JtRkcxWldaYi9BQU53dEtQK3JqL3JIVzZpMEk1ci9mMzZaWXZoZm9wY1ZyZ01CSmlBOVUxSkVJcVFYT1FXbk5NZlYzRGtxa0thcHBFUUtXVFJIWmFETzdEV0J3RlU3UEE5WWsrZDBtTHZNUUxJOWxSY1FiMlV0Y3VWNWlTVUUyaHhnblBvMndoRWJLajI5MmtHbzFNRUlZcWdkSFl1RW5pRnJXQkNWZTZaVXNUMGhEV2hCNmpiUURZWXRvZU90bisyQWp1OEFQWk1kZHloTEU1RkhMRUpZMEhGTk1CUzVjOU1IQ2d3TFFzcWE2VEtWclE2c0xxWThNK2I1Y2JsT3BBTTlFa2tsNmFZQnpCVlVjM1VRNjJCQmp3aXY0ak9lNExTcmoyUFlqSXR0ek5oZ09Pam0xenNZb2tZTy9BS1JVUzZrNVZRTDVxeXRCQzVyaW55QVVqYmxkWnJuNGpXeFMwbm9Hc2IwcWhvZkthc1hMS21QNU9qVURPUytxVDltOEZ4dERBVGJLV1duYXRLQndSYTUrZlZKcFdOVlRXSFRHUkZQaTkzNmFIRzY1eDdaUUNOQU51aU93NDNVSk1UQnl2UFlnOUVBTGxnUldvMHF4VUhZaXJndWFnTnVzUERQVGluZXpwTlljeVlQVGlxdGZ0NHE3aHlsMjFvSks4Y2RkVGtVcmc5S0lxUmVpYmZoVndEQ3NBWlJvblJDYksvcXZGTFViSkFUWE5kcSt0QlRlUVFHVmNVNXRXNnU4S285VkI1WDRJQkVDdWE3Yzdsc2hTelpTTDB6UWxHbFJnVWhxY3dYcUlZbzd1MnZGOWkrVytEVktCY1lCVElpMkNUU1BzakxzV0t3aG1JNGVDNFZmOVEwZVFJR3hYV09hU2NwYUUxblhvZ1VtcG1GcGhFS29NeDBJc0M5aW9PWVNwbi8xQTFrMnlEcHJ1eDE3QTJFenhDd2ZMcUtibzZ4YS9WWUJlMmdoVlZhQWd4UHFxVnY0d0VTSTV2RHJLNHdlcnY1RlNvV01vM3pscXd4dDk1cjFHS0p5bTJPSWJKb3FFNmNZY3JMZ2lEY2RxNkJyanJ1L2lZWmlwbWV5WDVQR3lxTHkrbWhEU3kySm9PUlY3Y0hLQm1OdDlpQmF3WkZxM3RVMHBKTnFEUWdNcDN6UmRURlloUUUyQWdSUldxclNCVUlHb0hGcGJJK3BQcGx1RFFOSzRBOGZEeWpibGwwQVdZOGlqT0gwd2h1SHA1WjhLK2Z4bHk0NEV0VzA3VXJPRGdYL1ZzYmFtaWxWbTAvRkpiVGV3U0FydWNZRnpacUlScENoUkNPeTdndU9QMTN1SmNLUFRCTnBaOVdNVkFOVG5HQWp4VnBRV0pFNDA1V2sySFFoSXpJenNqa2UrWTBnSHFIeGE4VnB4eTlaRm5NMkJnS1dpaStGVnh6WXFlRUR6MEQ1bXZEUzNJYTMrQU02dUNGYjBDS2xZdEhCcmFMcitwR3BoSTNwSUFZdjY2M0hrRjZJaGd4VWpTcklhb3pkSjlCc2Z0YzVLQmxJSTFsd2JsT3MrZktmMGhiQXhwQ1FNRmtxSm9UT1kyM2hvRGw3dkZtSnRBN0EzTjh0WVZhaTdyalBFK0hlZEg5MzRUQ0xxQTg2WW1aVFZMVDZsUmpaQUVzV2dLQ2F1UVNXY2I1NVJlb0JjdHB3NEZKTm1URDZaamx3M1poand4WHh4TWpQU0NzY1lHSHF3b29GK0RDQWZRMHJwQjJtSkVsRWwvakVrOFhNSEtNZW14cWd6SXRqcW5NbzVZbFpsWU1PNFlCUnFDaDZIMFluSTVPZUV5WDM2U0pXT3lsS0tmMWJoSUpmMFVOSVpzMjhLekZaaEtUcVFncmtJeW5xanZnamx2UU00LzFYbXFISzJnTzdoUzJRYlo5TjMwUUtpV2lpZVd5K0kyVkdrOGNCTW1qU1NhYTNxcGdXRTdkQWs0UUlVUUordEM4S1ZQb0ZTQ2VobU0vTFJJOTNzdytpWmtYaC9hY3Q2ZG05WUNYUWxXYW5IQU5kUWFHUEhaaXNBRERNcUN2Snp2VXlSTm1TTDFkeWg1WFlONFdWTlVQSGR3SnJyQXRyNTltbWM1Z0cwNndpRkM3VXdHbXhHamo2bmNZMDBYTE93TnF3VXRZc05BMCtFTVlKUXRhS2V5cm1wMGdEYlY5QjFFc2xQaDIwZms4WFVkd00yZ2t1NmM1SENsSmZkdXZHdEdsZ1lHaUJvYURhVkd5ME5BQzRjcjFiQ0l1N1NWNzV1L0JJeWRYeFpvRFhDQlBWOXY2NEVDSXNhc3lwNXkwcGl3RGJKV0lRTmdoREtTNi9YOXpZUVRSZGV6dWIxWTdJQ25CK3JTZzFnYmJHWDdlNkxjSldsbEh4cUJwZ2RNdGhpYUVRS0o4ZmFPNGJWWm0zWFl3ZmFGVEZNOWpadURRVHNKd1JNcnIweXNLK3RPaVdNaW9wTkNlWWlwR2ROYmVlTEw1b2RIYVV6eFZXcml3RktSUXlsRUpDTDhJZFJVbnFrRENyWEVObUtXMVdWTzJONjQ3VDRDOFh2Q3NjSjF1SWh1VjFaNFhONm82YUNxSVFVaGpmblJlMFVCYXU1WmRWUG5mbWFKYXNabXhQdE15dEtCSnkvanBuejlMeXprTTZUODNpYldra1dZSDg5TGRRVUo4Si9CZVFjV1BBb2E1cWlBYzNDRXNYWVljUHFxVzRVQTdpTzJXTEFFT09XTFZpR2NPSjkxYUZFMk1jb0xXRkRaRitOTHJncGhoTXlyN0lRWnZnWWhBeE53VzFuWklnQUVRTXMxTmFTaUNwbkN1MFFoZUNJWjF5MVFiV0hyV2hjam9pTll2bGR2QytXVEJVSkxsWEV6bFVvUndzOE14dVh1cDlrV05nTlBndzFFQThaMEJFeW9LbHpCbDl4bURyWXlPeFlKRW9tYmZZSDNGQnNrbFkxd3BKNE5kVVVTd1FBQ2FSaFFoSnVFa0ZsSTRjTVg3U0JiMUFiK2hJMk5tdThkMGdES3FCUm5WZ2pJRGlseDQveUppT01vbEdseEVLeDVkQXU5ZW9MZW9sU3pQalZLNFo0REZoK3d2RkxPMCs5aldDWkYxVUh4aEdqeTFveVpGR2p1R1J3QU9uQlY5aFJCVzc1SyswdEZmRFVMclNCNVpUYUxTUUZaSDVOVmtOTm9lMDA3OWRQVXV6WVdSbDhkT2VRL0ZWbldaTmtzUDBnNnFBS0Vub1hGVkUwMStONUFxS0NnZ2ZRSWMyc2J1QzJxTFpiU3RpcTNLc1VXdVVybmlMRkVsZVRnWXJyS3BGUk5CSlFWYWh5d3NOeDdFSUp0aVVMUkQ1Zk9GT2t4bkdVSVdMV2N3eWtFc0JVU1hKWHRUb3c4RFk3NTZJU2N6QmxzRFJZQ0hPSlNzaUtyU3lXeFU1TDRXY3dZTHRZcXp5bjlzV0NCc1ZmSlVXU3VTbXlWQ3RnMW14VGFVL2RLSS9uK3RhRktWOWpKSm10WGxZWldwS1M1RUNxMmlYUHk4TWhDcnRPVCtYRTNtb3FJckRDeVEyUUFoeEpPSWpxdFdBZ1k5ZVZYOFNSS2hDeGdiTTZkZFUvS3gwYk5wNm5aRkI5elFCeDNIQWhQRmpWTERJM1hqNDdrTlZMQ2hIdmRXM0pRaERWMnlwcjFyWHhLeVdKTkNFTVNUeDNvVlRURS9ha0czREczamRrV0NHQm9ZNmw4MHJ6TWN6QlBxZkpTSEpHZFZnT3M3a2dab054alNiWGU5SHdBTSt4TkhPclBiUWFtMk5YUEw1Szg4ZWlJU2tNV2V1T2txTkUyT2xRYXFWaFpCUXJqblBIbFY5dnBoWURwckFienEwdDdCbWViaGJBU1FqZlVmV0dCSVpJWGJrd05XV291ZncrL1FPc1Vvbm1WN1dxQlhyeFdWNnpPeXVDVzViOGEwc2o5SHNIcEdodlZrYUZGWmxRRTlOZmkxa215eEhjOU5rUE05K0QzdkNNTFJPV2dhdVZNeHN0WEliQS9rc0Z3YkdNak80aHhGMjMxL1JaNVloS0ZiTmR5RHFEOXBPQmVySFM2M1pYOUhUcjRPamZNSlFDdVpkOVlqUlZHTEd4b0xrK09TRk1wQ3YwOGhzTlRHb2dCUThXQ0lsREJWb1cweU1Cd1FXaVVDeTNudktsV1ZXTS8wT3UxSnE4cVN2RFBydUViVmlWbWppbjhTaEZmeFdpd2ZyZDMyWWdja2JSdFMyRUJZcFVTbVpKcERiQjFsTGppdmNaZlFMYkZTUnVRMVlrU1kwdlJzRWgvQ3RRQkdnTVdZMHpyOEtwWHRlempsamYxYityUGRSVUsrVGE3SU9KQnMrS21KRXNRRk5FTnFvOTV4Z2FoNWtjNitSU1dOb1dJeG5SaE1saHdEaWhBUnZDUHdPNkNsbldGUjNHSk5ML0pMbVlIbVRxRzRVLzAwcVYvVVo1MkNkYkZZbnBUajJ5b3JHV0s5YmxqL216UzVKQVJJa1NrWGRXYk9LYXlTcmJZTmtMNUljTmt3SFl6NnhEdS9YSEhNTGFTMlRmREdNK0I2RzdSWHZJaDNUdUs5VmFVelhNQmUwUUR6SE9rQ3ZHSXdGU2k0T3hXU0VCU1FPdDBWVVZsRlNKV25VbFNScFRaZENXdGNPZ0hhNE5ReWVOaG1XS2FsTW1HVjZHNVJxT2NLQmdFOUtXaUVpU2d3N01OL3FTZStpVXBaWTJsbWxxU29ueEl5a1Z3d01DYkhBNGRzcDdLa2VaOWl6aGdjaXZPeUN6ajNxL2JYQ3BLcld0NUI5bkV1cElMNGpSMmpYQWh6RmdLYS9IeTFsQlJnSW96VnFkVVlzS3RsR2xoWnBUZmJaWEpTeXFNMSt1RCtKcUFnN0U2MXZQZVFEWS9xZnJzY1lTTU5ud3FMSW44eUJ6d1VLaTRCZXBjNFVaTGNTNVVVcFVpYTZoUHdiY2R6R3dXWWdDcFBxbU5tSUc5ZzhsbzhKZEMvY3VXREp4c2YzaUpoMklwcmptVjJuQTlLREdGbmQrRDRpS0NHaUR1TzlMSkpJMUEwZ2pZRmFpTTIxQ01SaFduU2t0NUJpc3QwZFhVeG1pZENBUmlpT3lPN1FDNm9ES1UwdGpnRTBDOVYxTEMxa0NIWHY0aU9CbGd6azFrbHJZcGdEcFdldFpKTDFlRXRITkFnQWJ6WjFIWWN0Q3VmSnJnaGZzSWE2bEEwbnAxSVFEeDlvY0xDcTAzeHdNVkFDS1BneXRRU200V2RpdkFFemhpOWg3V082Vjc5bWhnT3NUQmgrR1RUMGhtMFRVekZJY08xczF2aHR3YW5MREhrVEUrbWVYckRDa0dsS3VCU2pacElvWG91eks4OXdqWnBZV2JHUDRwTkNMd3BKSWZuck53TjVvczZtWWlPaHEwS2FwbkZubFYxdnRnS0M0ZVVIV2RLb2Rtb0U1Tzg4aXNvZm1TaE5tS0dRN0Y4TzUvbzZpVUZndG1PTE1GUTBLL2tLM0ZDNGhOcktNU2tFb1hHNno1VzdQcnJuZ0M3RkpZRzFZczRuYU1pRlNwNENNNGtES2ljMm5aays2Y1dxNFhpT0hjdldHYk5yeVhEd3A5NVdNa0VlYTNLbTRuOHhWNUFIMVhCbHFHcTVkQUNLL0doNnFBd2lrM2FjQWRKRU5DeGd6UnRlZ1ZNRzFlU3hTZmZZc2J5ei9TSUpnUVcrZ0doMHZXTnp3Z0pBZTEvU1NTVHpFbi9vazRVSDI0TlFyT3g3QzRtbUdHbVZBQTA3RkR2WjZSUTR2OGpYVitucStTa2owYWdVY2VTUUZFTGJSa2lLTW1TVzUxTmorWVYvTlVkOE9PWW9KVUkwTEZJZU1iYUc0ME9qbjJERUdDdkVvd3d6V0tNTnhMb0RzRHBBK0xkVEhLNE91Q2dNdlFQWExlTWxZamNSNmlobUdxR3RReFU3Ym1SR3BBVjBRT21LRmRoUmNuTkdTekdCMHZjTDhpbXNhcGRzaERTWlA1YS9ieHJxZXIxY0JnWXNCMXNJZ0NsUFBhcFVVSGdsdXhUNjBBQ2hETzhTV0JFZkVZSTJWREU5TFdiSTNVakEwQlZlSmxhSjFiQ1d5b2t2QWRkM2lVdkZzeGpCRGNwckptUlVNMWxiOHFOaEdnT3lFVVlWWjhORWxuMnFiREJNaWo5SG53cXdEZVd0VFdHQklBN1ZBc3NzckVDbjJTajVjVmZkUG5SQy9FYlZWR3lLMWRTdCtXaGUrNFN4Z2FvM0NSUmpSM1hVa1h5Yi9UVzFkSXFyU2JXc1BYQnNUSXBEOHJTL05jMmQ5WjFwU2srR2htWmhNU1BjWlZKejV5VE5qeVBDOWdUbmJXb2NESllzUzFJK1VTN2VBWUdjYWxmTndwcnJhOVBrOWlmTnhkWXVCWVhLbDJ5RTdPZy9aRHdHN2RROU9FSmxJVTBMQ1lORmQvbU5UY2kyenFZYUsvelNNQW5xZVBnWFdyRDVZcEl3NURaMFJvT0tPUTJnTkVsUXgrMFVCQlN6S3pUSlBpd2s2Wnl2YWQ3aWd1TWN1NG5ZRVZQdXJ4MVZjY1hXd2hSdnQ4UGtYbFpOYUtqZ3J1bmkyb2lzSTlyUWQzWFVUUU9KdkMwL1Yrbk5neGc2em9RYmVhREJxZUcrZUlVVTMyNnBYaEhzbGlxaXhzNnl6Ris1a0tLcGhFdmd0YUY3VUlSTjZrV3gxVUlGY1p0K2JLK2M1TVN4M2lIQ1kwWkZocFJKYnQxV2xRd29USklONlU4aGtJai9CaU5jbHRiSnIyQ1Y3UGFVQWRwY1U0Y3F3UEM1K0Q1VkVwUDVNMm9XWEtBQzNnNnBKclJZYmpCMW9WYWRrcFhFNWo2enpaL0hlU21VdE1iMzE1dFpSc1VxbVQ1dmZkUjNCV2gwemd1andOUCtaRGNYSmVoUUtwcEw3MXlZYjNsbS9XQ2VKZ3VWaHg4SkVDb0JKMFVtM202dUZKNE5NZzFrMTM0d01JR2ZCUlY4RWtqYUM5b0JJMGdwbHVhaVBaR0ZLMWs3SnFpQWpqcUc1V2RWL0xqNnFnVXRrVklVTzV5WEV0NUFvaytsWHg0MjkwZHFZd3hKY3dOMUtaUmg4MEVFNDdpd21PTDZZSW5RM1lKVXdLeVJ3d1IwMUJYVnRrbmI4akVSYThWTEhhOVVpMlE4eFI0bTNIQXlHRkJyVGdEa3JydlBpRUEvcTlpMlJLa0IzaUVyMXlJUHJxV3ZYTndWWVhtczJId0hWOE5Ra28vd1YwNnMyM2ltbDJpNnhxSmQwaVNSWkxNdWNtWE9mdXo3bnpIMUdabWJPdVJoY29xWkpLVFZOUTAzYnRBM05KV3BIemJodFJrM1RqSnEyU2FORWlWSnFpRkpLMXRQcGNzZWN1OXpubkx0KzB2ZGRsN3V1MzV2a3ZhN3IrcHo3UE9tNXo1bVpNOGxGTnFsSlRhS1VVdE5RazZnaElrb0VSdWFzS1IwejU0RjZwSWRWdzhRUUtubGFBM0VVdGZLcE5SeFNsZHI5cnlwRGt0T0k0YmN6aXdqckR1UjlRc1VFbThaaGsrTUJaU2d4L0J6UlZqMExIcE9LSzdUU1RlTnFGcEhBWUQ3eFYyOE13VFowQldHRnQ2VG03K2RITVNrV0UzVDVWNEJxa01hVTZFaFJHMEZldnBsWjFLRmhSK2RncDZPNGlQVmUzQVBGY1pLc3FRTWdaTTZaODE3ZmQzbVN1Y3VaaWRFMjdiaWRteHN0TEk3MkxjNHQ3MXM0c0gveDBMNkYvUWVXRGg5Y09MSTR0Mjl4Ym1sNWJ2L1MzUEtvblpzYnpjKzFjNk5tYnR6T3Rha2xTaWsxU1p5S0lwNFh2d0k0TTNQT21YUE8vU1JQSnYzT3p0NzJ6bVI3YjdLM3RiZXhzYk8ydWJ1eHVYTnRaZnZpK3ZicXh2YTF0YzJyNnp1cm05dlh0dmMyZHJ1ZHZYNnZ6eDBSRWFXMkdUWFVOTlEwMUZLU3FHUUlyY1lnVUZra0tyTFJnREhEQUNvTlUvV2pKbzRNS1dVOTBaTzFsSURpWkVZUWdjZFdNK3plVGxhYVZmQS9uWitiZzBvbUFFK0t3bGUxZlFNQVd1UEFGOVJEejl5ektMRTE5a1RJY3BhUXJDQU1Ub09wQm9FeHBKRWh6NXoxSXNPVUtEem9NdE53a3c4RHFPSXFhWDBFRFMrV0FxUkdjNC9NZlorN1NUZVo1SzdQUFZFYWorWVg1NWFPTEJ3NnN1L1lzUU0zSHQ5LzA3SDlOeC9aZCt6bzhySDlpNGYyTHg2YUh5Mk1tdkgxcUo3OUNyM0lFTFZCb0laYUZIMDBueVdlem5qdFRmYTJKeHRyMnl0cld5dVhycDI3dkg3Ky9PckppK3ZuTDYyZlhkbTRjbTE3ZFd0dlk5SlBpREJLbzFFN2JwdFJvbkpId0Y3OWdZSThvWkRsc1Z1bFdrS3RFbCtKWFRHczVIbG16NUpjUzJwaXlhcnJwc0s2Y3FzZGJVREgxWUZhaGlFQk1lTFUwMGpHTVc1S3NjREVsaWxIUDI0UkxYU3dJQkdpUVBET0NnRTA5M1laUlFTR3JlTkg2NjllbFRoTmd0TzlnZ2p6ZGNTTkN5MWFyU2tDeU54T1VnSGUxRkJpY083N25id3p5WHU1eitObXZHLyt3SkhEZDk1MCtQWW4zZkRrV3c0LzZjYUR0OTl3NE1TaHBhTUxvOFhyV1NRelo4N2FwUk5Eb0Vpc0Z4WDFFRlRMVmtrZU5vQmlWNk5TSEFzclNPTjJQQjRkUHJCNEdFZXFHZnErMzloZHUzenR3b1hWTTZldVBIcnk4c05uVjU0NHYzWjZaZVBpOW1RcloyNVNPMjdtMnJaTjFKUk15Ymtvb2xKTmg4YmJURUdZdXFFOVdNSFJVTVpaN2tBSzk2cXFLb2F6NXJSYS9jY1o2aWxWR0c2cG5tTGJEZExZUVoyblRnTzREZmxVUGMzUVVubmdBd2k0TWFDdDhwTG9kQU56SFRCajAzcGtpRDg1OEEvYXZlRndnZitZUDRGVFNiSlNhcGk1ejVPZGJtZlM3U1UwK3hZTzNITDBTWGVkdVAvSngrOS8wZzEzMzNMa3ppUEx4MGJ0RU5RelorN1p3TEtnaWhsNlF1TGsyOG9KcmxYUmdLWVRYa1F5SzlpaFhyMlJKcGN2Q0d0bEV4NWtiM0ZhenNsZ1pNc1VsRWlpbE5LQnhjTUhGZy9mZGZ3cE5zTzE3Yld6cTQ4L2Z2RXpENS83K01NWFAzWG02bU5YTnk3dFRyWVRwYmwyZnRTT0V6V01MQ1ZFY3Jzd3lrMEV0WFpVU1JRdUp6QkxzYWVQdWRGYlNrS08xNjd4K0JCUmVEUjNhNHRSWDNOeDZUbEZ4QlY1T29iVVFNeEU5TXJYM1ZkMVRPdWU4SlFKc2hjMHdjN1pOTXpTelN4T2JyS0xtVStJUVZYNlB1VVh3K2xudmhpYVlpcVNXakFtQWpnMWxETG52VzV2dDlzbXBvUExoMisvNGNuMzNmU3MrMjk1emwzSG4zTGp3VnZiZGhTRWljeTlMZ0NsWXVidVk4cGdlV2gxaUNzeGpLc2NIQzdGY21Ka2dMbnUxQWlzcmM2YVR6dTZhbnVJMDhBSDRlRXpWRmhYK2tDVVVxcXVBVnpmV24zaTBtYytlZlpESHovMTRNTVhQbjVoN2V6dVpIdlVqT2RHODIxcUdaeWx1SWNITEtpRUF3b1pNRXJTVXdoeW85VmxhTkpuSTVMVXlOcTJnd00yVldNQnBiQWJySm9PWHRiUk1JQU9LT2o1U1NEWVZQcksxOTNMOXJ2YTViVGRLVEo1L1ZFOUd5Wm9HaFlFWTF2T1Z1bk05STNDUUIvWDZIMDliZ0hXam9FSVNLY3ZrVHNSS0JGbDV0M0o5bDYvTzk4dTNIVGs5cWZkOHJ4blArbUY5OS82bkJzUDNoWnA2L29PSlhYUmZqeHBpZ0dGMVNvbEc0aXkrcWxTVTJBNW90YVVlS2RocGhBaFVLa0E1ei9ITmh5cURxaktvd1luRnhvQXpsd3V0RS9VUkgvWTNMMzI4SVZQZnVpeHYzcnc4ZmM4ZXVHVDY1dFhtOVFzakJlYk5NcmNNK2VzbU0zaC91WUNpQTZMRlU4Y1AwUUFOOSt3YUJiQUliaWFKVFc2OTlHaENKcmNlc1BXWlJqYmpaNk1WRUl2eVFLOThuWDNhWDlJOVVXYXR5ak9TUEpUZk1EOVd6dTVwakx0YTVjUktEU0hobm1MTC9oVkRTU2JOUkordlRBUWhwTnhBQ1JLaVdpdjI5dWViSTdidVR1TzMvZUN1Ny9nQlhlOTlONGJuejQvWHRERHVlOTdTR3VUTE01QzdkU0JtYXI1VEFoZzY2Z1VnWlZLdXZ5VFpwUDcvOHFMVVpwRkhLd0k1cjFlZmdWOHNVTmlPV0c5ZlM1ZFhXNVNTcW14bzA5ZmVld0RqLzdWdXovenB4OC8vZURhNXBYUmFINSt0RUNnblB2Q3Q3ZEhQSHNoczJaTEJhd0pvelRwSjdONE5haklpK2xUanl5cm5qR3N3SXg2V0M3V1dVWkltU0ltaEtyUkhjRE1WMERlRi81azRSR2g5V21tV2hVczFaS0VSM3oxanFESHdhT29aMkgvcktTb3FybWpnVEpLWjJON2QzT3ZuOXg0K0pZWDNmUHlsOTcvcFUrLzdZRTJqY29CZmU0QWtONEh3TjIzbWphRU15N3BGVWVHRXFXaHhPdlhYcmZYOVpPOWJtZHJiM04zc3IzWDdlNTFlNU51YjlMdmRYMTVNOG5jZDNuaUU0S0lhTlNPbWpScXFXM2IwYWdaajVyeHFCMlAydkhjYUg1aHZMZ3dXaG8xNDdZZHRhbjlMTE16Yzg0OXExakxYVC9FdjZNd0hYSWNQTFVPUnBNYTQvSDBsY2ZlOWFtM3ZPMlRiMzdvN0VmN3ZsK2FXMnBTMDNNV0RIQkhraG50dlZod2pOQ3NFNnVSVlJHRDlSZXFrRDRHTlV1TUhEcUoxWFJpSytadmVZbjVsUWxlK1VQM09ubWVoN2gzaytLSk5ZbklxQkxqMXloQkhpSmhlWmtxSThmVlY0K0FnOGJTZFNnT1NZZ2xqYXdpSWtvSmFXdDNvOC9kdlRjOTQxWFAvb2JQZitxWEhsbytXaWJyU2w4Y1JMcDdZaENwWWZkcEs5a0JNd09KS0ZFelRWVG1mbnR2YTNYcjZ0clcxZld0cTFjMkxxNXRyVnpkdkxTMmVYVmpkMzFqOTlyVzN1YmUzdmJ1WkdlMzIrbjZycytUUHZjNVorYSt0MTVSZ0NEQjdSU1RyckpTa0JwcW10UTBiVHNlemMyMUMrTm1ibTY4c0RoZTJyZHdjR2x1MzRIRlE0Y1hqeDFZT25SbzZZWURpNGNPTFIzZXYzQmtZYnc0VTNvNTl3WEFFalZSTXpNYWJsSkhNek1uclJuNjNIM29zZmY4bndkLyt6MmYrZlBOM1d2TDgvdFRhbnJ1MVdKWUMwSmZ2N1VFMVVLQU5sRkRzeXVndGZmckJYRVVQeTJxcUx3a2Q3SEd0aFFkTTdveFZRNDRaRkZlOUtVL2RGOVlhbEJ3RjY5VGFuMTRhNkZyTzZES1duVE5QU1k4b1JoZ1c0WWorNTRsdmF2MU1KVjkxQitWVENKS3FkbloyKzc2eWROdmYrQ3JuLy9ObjNmZkswYk5DSkxaVTBxa0VGUXYvU3BXTVRMTDdaYUdCZUtrbTZ4c1hiNjRkdmJTMnRuenEyZk9yWjI2ZXUzQzFZMUxhMXRYTjNmWHR5ZGJYVC9wK2trR2wxdjJsUlZaa25XdWxEUXhLVS9zTGs0VlJCeG1pZ21pbVlyOVpXWmlMa3RrTFAwWjFzMFZEVktUMnZGb2JtRzh1RHgzWVAvaTRjTkxOeHc3Y1BOTkIyKzc4ZEN0Tit5LzhkaUJHL2N0SEt3TkFEbjM1ZTcrcVNSc1lST04xd3VhNVdmT0ZoTWVQditKUC9pYi8va1hIL3VqcmIzTmZmUDdXTmJ2SE5XMElGY3AyN2FCb3ZrYTc1WGZhclVxaHVRSytEdzB3MXNNdmhITU1uTE52ZXZnSHAxQkJ3QllIRUFrSGZJa3lUWENJbXlsdEpnR0J2dVdBY2c0dExYd2tMME5VRWNUdk91V3YxV213eTZ0aGhKbnJPMnMzSEhqdmEvOTNILytSVS83eWtTSm1mdmNKV3BzY2l0RnRGaGhNUzVDVTJQOHl0YmxNMWRQbnI3ODZPT1hQM1BxeXFQblYwOWR2WGI1MnM3YXBOdnRjMDlFVGRsNmtKb21wVVN5cHV1eU5QbVczQ25Teng3KzlFOWgzbW9xK2RZaUxITzVONFRsRUl4VTdtUnNLMUZFbXJsazVzeTV5MTNmbCswU0dVQ2J4b3R6aS9zWER4M2RkK0ttdzdmZGNlemVPNDdjZTh2Uk80NGZ1S1Z0UEkvS09SY2pUcFE4a1lBYlZxbEUrekptMHdKNCtOd25mdU1kLyswZEQ3MDVwVFRYTHZTNWd6VTV5WmdKUWJZdURxSjF3T0pGclhFN2t5S3NhcEF4U3lCRFZmMi95OURqVXZHeFFsSTVSbzJkUWEvOG9mdHMwcGlsdS92bzJvWkFlOWpoQVMxMGFySmdnVXE5dWxLNmVoaEwzV1o1bE9WNlF4SEduVkdTSkxiTmFLL2J5Y3hmK2NCcnYva0x2bXQ1Ymo4ejk3bFBsRnl5TG9SaUpobEFrMW9iZDJleWRlcktZNCtjLytTbnozMzQwUXVmUHJkeWNuWHp5bTYzemNnTk5VMGFOYWx0Rk5RMTdwU3ROYjd2a3VBV2JGMCt6WFdqU1BYTElyR1NhTVRBN1JFOFJOVTZwbGRmenFpeVJDZWFpM1BtM1BlVHJtd2lZaDZsOGY2bEF6ZnN1L21XdzNmZGMveitKOTk0L3gwbjdqMnlmTXlHNzNNdm1GMHFKVys5eXJTY004Qk4wd0o0OTZmLzlHZmYrcDhmdS9qd3dhVkRaYUZFeVp1OXJEOWpRMFRoZzZyZGZNSDZSY0FHc3pVVSt2b0FoVEc5Mk5Rell0ZCtRQkZBN2dERFBxdnFJM1pzQWllMk5iSmVJRk5uQVNRUG9yK3RoV3RpQzcyOW9OZEFET3RvVFdvM3R0ZHZPMzduZDcvcWRjKzUvVVhNNkhPWFVwcU9JYkpTcTlBRm9NdVR4eTg5OUxGVEQzN2s1Tjg4ZXVtVEY5Zk9iZTFjeTh3dHRhTm1wTnNFeXNxU0ZnUkRNMVR4V1U0VlBHMUc5aWFMSjlmSjZneW9SSEpzZlVaSGlpcjJWa1laR3N6UVVyM3l1cEtIbFQ0VkNIM2ZUYnE5dlc2UGM1NGJ6eDNlZC95Mm8zZmVlL096bm5IcjgrKzk2ZWtIRjJVeHVZUUZDWEVsTkFYaWkwaWIxS3h0WHYxdmYveWYvdmhEdjd1OHVKOFNzVjhFT3EySUlNYXAzN1dBdFB6THF6THh3WkRvNkNreHBBZHA2QmVLMnJQVENoZGtTWUZzYjBZRlF0WFJucXFGSU9DMVFWRG93TC9CYmlBODI1YU1KZU03K3Jyd0pTYlVOcVAxelpYbjNQbmlmL3MxUDNWaytYalhkMFFwbWJmcHlXV0hRcU4yZjIxbjdhTW4zLy8rUjkvNXNWUHZPM1BsMGMyZGE1Um8xSXhIN1Z3aWZlU2EvTkd3RkNZMUFrUG1DYUMyZTJONHdLVHhQaEJwWENsa1k3UGNDdGN4aTNPRXhzRnFtamZRUWg1bWRzYUlGMDhVTDJDQ0ZObkV6RjAvMmV0Mk8rN0dvL0hSZlRjKytmalRubmZuUzU3OXBCZmVkc05kWll5Kzd4bmNwRFJ0MDEzZnRXbEVDYi96VjcvNDgzLzV1dkZvamtEWkhxb1h4R0I1bEpxc3E1d0EzeFdxaFlqaGZaRDdkSTdFbWpUS0dLVHRmRmpDNUtMRk5Eaks0Sy84b2Z1azdzWkFjVEpwWEYwckExVWphbU95ekIxcS94bkdUaFNUWWE2L1Y1eXBGeENFQUpWSGs5cHJPNnRmY1ArWC9adXYvTWx4TzlmMVhaTWFUZXRRd2xMbVRLQlMwZTVNdGovNCtIdmUrYWsvK2RCajd6bTdlckxQM1Z3N0hqZHpUVW9nNU16UzFJK2VyN1lvSEpHRkk4MHQzUUZDYjVlc2JzcWF0WHNRWlpSTnlxNWx5NjVqdDhDNUR2dUhCLzZ2MCtuL2VWQm1vcGF3RzA4TUlvWktCRXBOSWlRRzczVzd1NU9kUHZjSGxnN2RmZUwrejczM2l6L3Z2aTg1Y2ZEV2NrcWZPOUwwa3VUbTVtRHVtZEcyN1Y5ODdJMC8vRWZmMDFDajZZQTNLcUI1QWRrbUgxUnMrRGRpSDZXRTlTc1dRdU85dGs2VEk0TEhEUEd6ZXRYZGVBQ2dWNzd1WGxHbFlSSnNYQzB5WWpXdEFxOXI3RkF5YUJTcjVxM29rVWcySXh4UUFBSk5mQ3pYYmFoZDMxeC80TzdQL1pIWC9HcmJqUHJjeTFvZEVZRXltSFBQbXUyY3ZQekluMy9zamUvNDVKc2Z2L1JRMzNmem80WFJhSTRrS2VLaS9BcGtMUEthVHdzN0FYVGxCK092aGpXREN3VE5la1pTOStua2xPTHdnTlU0N0lvYTRFSWxKY1FZcnpZZmNvTGcwUVAxaWRjRlg5THB5N29Cb2MvZHptUzc2eWRIbG84OTk0N1ArK0puZlBYejduNUptOXFTYWphcENjb2xJdlRjdDZuOW8vZi94bys4NFhzUExCMFVUS24wYXN5WkwxL3ZKVWpENHFNR0pqTXRtcTJscWcwUE9YRGEwT01NcFVsUmZNYTJRdFI0RlJhZ1VXZFNJV1dkSFZabU9RQXNPOU80NFhLcEV5WTkyQ043T1lWU1NsMC8yYjl3K0w5L3l4L2VzTzlFejMzUmhQV3BTcmNPd0VkUHZlOE43LysxOXo3OGw2dWJWK2ZhdWJsMm5vakNuaGFZazhWWUxQQXNQMStuSmVWSU90aHZBemM2VFVkNHB1SlVhb3JubWxWNlhCRTFHQXBVUUJFUU14UWdVWnhHdnpwSWVhTnE1S0MzRUJjOHBKWEpTNDdVOWQzMjNtYlROUGVjdVA5VnovbDdYL1QwcjFvWUwybDUwQkFaRWR6M1hkdU8vdXNidis4TkgveTFBd3VIdW41U2kwYmlaK2dQVmpJTkVrVGMyRkNGc0ttWEpoMkNrUUY3YXR1TWFHckdxVlBSSzE5M3IrY3lMai9ielNDajZXb1lodGcva3pLTEVsV2FNNkRlcXIyb1JwMUMreW1tcTBUTmRyZnhILy9PLzNqSnZhK1lkSk8yYWEzdm0vdWNVcUpFajE5NjZOZmY4VE52LzhTYkozbDNhVzRwcGFiUHVUUnRISVpON0ZOeWlTS2ZYaUVxYXJGeXJiNmlhU3F3YTlHbWRtdzVQZ2s5dGFLdWd4cE9qbFZiMXJDM2lPTGRrYkRDT1dTdXdHUnhCdktxSWZZZHpJdk1IQkpTYWNYdTdHMU4rcjBuMy95MHIzM0J0Mzd4MDc4bXBkVDFuZlVWbURublRLRHR5Y2EzLy9LcnoxdzVOUjZOeGFEVTBUMHhqcEZOQVFCR25YeFhBZjkxRXhwbDJSb3dJVjhOdWxETUQ3cngweE9adEtBSGhkbFlnb3k3Rkx0WTFXTkxEaEpmbnBTR0wrcVhaUzlsQUprK2VLMmZUMGlVTm5mWG4zWDdpMTl5N3l0eTdodHF1S3dGQWN6Y3RFMlhKNy84dGgvL1o3LzYxWC8raVRlTTIvSHkvQUVHZFgwUHppRzBsZEZzRzR2OFg2MWZUU2V6RWN4R0M0Q3k0Rk5iR0tKUWFzZ2hqWHFRM2t4SVpibjRXQzBMNzNBNFdwRDlMb1pnOFNHb3lDd3NDTG5NeDc1VldHc1BkYjFJNy9Bc0RUR01uTG5yY3o4L1hqaXdkUGprcFVkKzhQWC8vTHQvOWVzZnUvaFEyN1I5N2xsZlJKU1JsK2IzZjgwRDM3S3p0eVZMaXNXczFmaEszU0I2QnhXellSQ1k2cUszRU9BTWhiQVhDSFhScWF6c2dZOGNEdEl1a3Ayam9VNEVvTGZoZGd4VVI3QjRXcDVtbzdZZ1Rod0pDUmRkQjVqMUdCUzBkYjNRSVVHL01GOVVTa1lrQTZCSjdsLzIxRmVqT0ZiU3lKdjdsTkxLNXVWLy9kdmY5QXQvK2lQOVhyODh0NCtSKzl4Wi8xSmRpZFNveVdkQWlhRnNSZzVMOTZybWpwcU8vS0pJYXVJc1IzSXhNNWNNWTJxSnh3UkVZUTdKTXcwdTFZV2tmeGtJa1ZrOFZiTENRbGRLS0xpdU9hZlZPNlcyOXV0YU9WdG9rQlZDWjFMTUVBVEt6RjNYamRKNC8rS2hEejcybnUvNjlhOTU1NmZmM0tTbTczdDlPRE1sU2d6KzNQdSs1TVNSbTdvOFVZOEx1MmZLVnhJZUxYNGFHRkN3R01NSnc2QnBleG5JTkg0cHZBWlU4cUNnZmlKNG0vdzgzMjdoOVNGUjdPQ3hybGU0OWNDOHU0d3dqQVJVV1RIRnFEQmdpalFBeVBCc0dnRDZ2dHUvY1BCcHR6MFBBUG05akpoQUt4dVgvL1hydi9rRHA5NTU5TUJ4QUYzZlZVZzQ3WEprZi93dEQ3K3pObzZ2SHhyVjBpcDF5UXVrdVJoRGIxaE52SXd5WUZsekJCMVRUdGRnSkoyV3lvR3FoRVhFR2hYUDdtTGlLK0J3YkRIOTBvdlR1bGM5a0JUZk5LQm9haUgzK2lrYk1mcjkrdzVPOHM1LytMMS84cVlIZjd0dFc5a0tVUWpKK2ZDK1kvZmU5SXpkYmh0eDUxWE5zWXdxNmlHeXoyUzZSOGxzckxYbFowKy9oallIa2swbmVoWmIvaldnUkl6SmNOdFNXZzhYQVpFNFVGc1RwQmhhbVluTkRyWU9Iak5UTHNNYmhFV21paVZKeUxUMVZTTHFjbmRvNmNpeGZUYzU1VVJFU0NuOXpGdCs0T09QUGJoL2ZMalBFMVcyWkorc1F3NnExU29CQ2FSVU1CdG9tbDY1MUdVUThvUE5NQ015VXhSaEtLMjUrSWtGWmlKeUJjWGNyM3dtVFZ4aWVERFFEdTAzWjVMVmdnQlluOGhpbXlkaG9SNVdOa2dsVm0zTEZLb1Q5WG1TK2xIYkwvemttLzdkNHhjZmFwcVdhN21kMkhmclpESUp1UVJ4eU5NVUVKMGIxaHphVktkaGxBUlp4Y3NyWjNCc3IrQXVqQktOS3dwVXM1WHlSUXFDZHREWGNUVWhIS0pvZk5WR3pJT2ZKTmVEb1pEU1lCdzZaWXFrQkFwWUtUK04yM0dpaEt4K3c1eFNjMzcxMU45ODV1M0x6Y0c5dlVtWlFLbFI2aFhJZFI2MjJHcHprb2N1c1lOcUU2L3BRd3ZwMGdDM1k2MktCY0N5akdVRGs4blVmTEhZT2lreWNkRnlMQWswcUpyVnM4V2tLaTgwcnpIWEVlR3FTNnRkaG0wckRFMDNRbHZDMWluSlQ2ZEFTeFVrbWFucjg2Z2RiK3lzdiszamJ5YmQxV0luOUxuVHE0dkp5REtaejJnUDZoY1dnc1IrUlNoc3pMTGVMSUpWbGZiUEFKZURYdzltOHpjbDdpUkZhSmU4MFZNbHc5VmdBL1IwRkJRbCtZV1lsWW5QY2hSMnVHV0RVaWVobkowb2JlOXQ3VXgyb3NNQ1NOUTBUVU1KbE9WZXpPSnJuTzJxVWtNUUxtaGo1czd1amFUVHU3T0hSTXJTYWdPR2NJK29LWFdXMm81UkZKOFNDZFNTbGNRcUdoa2tEOGNvUDdHbUtCek5wbVF1Wmhlc2VNNzZrNnZmd25WUW9HTmZmQ2tmRE5sYVhCc3BTd05mbWpnOUFFNHRwVkZxR3IrYUZFUUZUeTlmdTVpUUpKUzRBYWdkek9xSDJFVGxhU0hSVWtwaHBXbEV3QzVSVUhZZTRQcnphcXFlU0lISWczM1pQK01xQ01GQWdoRkRNVXAraXNSQk8vR2lqd0lSY294L210THdEUFp0ZkRIT2tGcHdRdHJjdnJheHV4cDU2ZnJ1MklHYnZ1RCtWNjF0WDIxSFkxaC9YY2ZqWUxnTzJXRHJDYnJycWU4TVF0aUFaYWwrek9SQU5Bakx0VUJncThOUU55ajArREl6VlBpbVFKVS9GYjNFd1EwTGhSR1N6Z29EZnMyeFluL0lFQnpwbmNyNFJlbnRzbU92Wmg0Q0hrSFJUQUFuYW5iN25SdHZ1UG5sei93S1pnNFpOekh6eXVhbHBtMUJZRStxQi9CWENjemZhUWlJTDRJRlJ5YjNmUHQ1ZXNGR0xUb2V5cldWaDNQMGlpRTUwREZFRFJFYWlYekd3bWM1TWpRZDJFK1dFSXVDbFNGSm5WYm5nS2F3bUNkbXhzeElsSGE3bmJXdHF6QWxFU2VrblBPM3Z1eGZmYzZUdjJobDUrS29IU1VraEpWWTBzUlhiZEdXYkd0cEtGY3FQQ1hIL2l0SGhPNmxPQkJOcWNza3FWSXlSRFovbEJoUDJvN1NxREU5aU9RK3BHTU11bW51SE9SNlJ2VXZoVlpJRlhabXRRWmlSOUhpRGVxb0NHRFVqSGIydGpQbjczM1YvMzNpd0MyWmM5a2lVVHhoZTI5emZXZWxiVWNjN2haamd4SW9mbWVPcXVnNXEwdmdERU5TclFBWUhrLzlITzllRGZJaUtBQkdDZWoxZ2ZGWTdmaDdUcUR4VHhpcHI4K1MvRSthRGxGV0tBOVpjRm9ydEtNaGpWVzRyTjVRU3BOKzkrcm1KWmplZGRxbCtYMC8rSGQvNGRYUCtmdHJXeXU3M1c1TG8zSnJOd3QyR3A1WXBFT0RPREVEblJoNmVWdmh5TzJIemV5MWp4aU1NTDRUSnlYdHFTaHdhRUt2aFlBTXpleHVJTmpCcHJMeWc4S0wxMm9rM200eFZBVWRWcEZkRHBybkJVaXNXWTZHV1lsQ2lXaFNTNkNWalNzM0hEaitJOS93cXkrNDg2V1orMFFKa2tZekNPdmJxK3ZiYTAxcXFoQWo1VFlKQ2pqSUtPb0ZqVmVycHk1UFZad1c3aFJNK3YvUnkrTnllQkdTb2FNWWlRVkNkd01Lb2lpaTFHL0VMNzE4QnFDTmZNTS8zVFhnS1loSnhyTWpEN2ZLci9XbEN5MWQzMTFhT3hkNEx0aEpPZWVGMGVMM2Z0bVAvdHV2L3VsaisyOWMzYmpjOTVPMmFadlVrSmVKZ240RDVJVGRnYSttcGhDczkydXlxbEQ5d0hJUW1MOUhsNHFHNnpDdlBKckY2MndHdXV5Wks4ZTBUVVpqZ3Q5dzBDQVRUTWdESjR4T1VjWDNJRkRmWitHU0wwZTdqNUdZSzFHYjJwUm9jMmQ5MHUxOXhRT3YrZGwvOU1ibjN2RzVmZTVMMHErUXhBRFd0bGUySjV0TmFpeEtRaThIWWpnVzJwUWhRUTZwY215S3VWdXlkaUhyUlVRUGdPRTFJektiOWJLcmd0SFdMcWNwYS9DV3NETnRNRjdjNk84Z0NYTVlNUm91eHFTNHpkQnJGRGo0a3NLTVdrVnBWMnU2VUVpK2VPMnN6MjVKQzFIbXpEbS8vT2xmOVRsM3ZmUVAzdnMvLytpRHYzVmgvZlRjYUhHK25RT296ejNMS203aHVaS1hMVjJ3VE9yeHhZUmVpUEFGblNBK0hjUTJ6TVpFaFdVblJPaUFHUDRONHJZTVJ2RnpiQytSeU5OM1g0Z2hSRExxbTRsWFNpcytVYW1RSFc4VXN3d2JSQkpFS1ZIVDUyNWpiNzJsNW5QdStjTFhmTzUzUE9QMjV3UG8rejRzOThJaTRxWDFjM3Y5M3JnWjkrakZuY2lDbGU3c1lnNDN0MWVnNUNBRmRzbEdtYkFWaU1JTkkxeUxVcjJtZ2xpUVJ3VU9yWUF5UlVrV2VmbmlyeldTWjgwUlBEWFU3MVVUUmZraXJuYjVJamlmZ0cxMWVXRHNMK2RFemJuVjB3QklMMWFLTXlTa3J1LzJMUjU4N1V1LzY4c2VlTTFiUC9KN2YvcVJQM2pzNHFlWjgveG8wZS94NU5CanBCbS9nZWpRb1dkSFZGWUx0S1VxRTVkRVFrc0dDUlFhVVI1SFpmVmcyUEtzVmdoQ2p5cllMNXZKMUIwT3NSc0dVWFlFa3VJODd2b1pHZ1VzeEJTazk3cVlnRVJOWnQ2WmJPL3U3UnhjUHZMU3AzM1pxNS96amMrNTQ4VUF1cjRuSXJ0KzJuMmVBZURpMnJtKzYyaVVwRDhUallaRFA2ditJeW1IbXFLYkZsVTAyeWFpRUlNdFhaenlnUXFoQk1zRTE4a2FnZkJyUTBQMHQ1bkkwZ0VUZFFGQWkwVjE5UFJZUWRhYkt5SUtCZEUwVGltNVBsVFlzS3VFVW50NTdUeHpKbERGbUNRcDFGQ1RjODdjSDE2KzRSdGU5RSsvOG5uZjlQNUgzdkVYbjNqREJ4OS96K1gxQ3lrMTg2T0ZObzFBbEhPV3VFVGthVTh0TEUwNlNiazFVeDVhdjVJUk44OFZDWkFyS01qS1MvR0tlUWsyWVNYRFYyb1ZvRjJ0UXgrb3lLZm96TFpwWHF0ZjB1d1MyaUVTQVpSYkt1V2NkN3Z0M1c1M3JwMjc3ZWpkbjN2dmwzenhNNzdxOWh2dUJ0RG5ETjBIeXJvSnpWdklBSUNMMTg3QWRWZUp5Q3FjS25Wd0dTaElUcTA4ZVdEQVFBd2tHaG1vQWltS0xCNHFYNFFKV2cram9RaFRwUXpGTFQ3aEZ4aEhXN0I0Wk5ic3k2RVZ2OVVIRFk2NlNkRDJpdmpSRENadVVydTZkWFYzc2pzL1hpaDdEMTJTUkxwaGp4cVNUVnJ6NDRYUGZjcVhmTzVUdnVUQzZxbjNQdkwyZHovMEY1ODYvY0dyRzVlQlBHN241OXE1bEZvR2M5a29iWjFSTlZWRmk2d0Y2SFYyOGlyRXN1Q0NNZTl2WmI5cmdad01vcXloSjhqVmpOZ3pnWkk3R1lKNFRGQ2xzUHErcFc1czAxZWpCMzBYM3dvTE5uSXhYZGQzTy8xbTEwL0dhZjZXRys1ODRNNlh2UGplbHovdHR1ZU4yem1VYTRYQmhFVFVhQ3FpMmJqVWQ5S1B2TEI2V3EvbEQyWlJUSUVoYmY2cXFsUnB4N3ZOMVlZaThjblExYWZYNDFqOEt4cDZaYkdlbnBBR094bThGVWlZY2xuTEQwaWJuaHJmUTd4WCtEQUpVNGpJWXM2MmRNbWlEQU5LTnl5VGw2c2J2dVdMQU9hbWFkZTNyNjVzWHJweGZKdmJrOUZpSVkyWWlJaFMyYlpPUk1jUDN2cnE1MzdqcTUvN2pSZFd6M3pzNVBzLzhQaTdQbmI2QStkV1R1N3NyaEdsY1ROWDdnZ0xFSE8yZGpoYklGUEtXQzNIZml3MkozRmFmTkJBbGFIRlg5R2hhdHFGSkNlalNubFp3Ynd1QVRqOGJyYWhtRmwvcjlvc2t0RURGTytwM0xtT2lEbDN1WnRNZGliZGJwdmFBMHRIbm5yc09jKzgvUVhQZWRLTDc3djU2ZVBSZkRtOTZ5ZHl0d2drNzQ0R0Zhb2FPUkZsenBmV0x6U3B5WFYxcUlzbTRJb3JCMTYxR2t2RjFMQkl6QTlXaWxsVXJDeTFBdTBZUUJ5ajJGRW53QWhhKzFSN3JTZWdPcnZ6Njg1Z0F0SHN4dGh6ZHpYQzRsdFRGc1d0allvbVlqMUVUamFhMUd4dVh6dS9ldWJHUTdlWkJ5c1pkWHdxdVdhNXN4WExQWEFTMGZHRE54OC9lUFBMbnZFVk81UHR4eTQ5OUluVEgvajQ2ZmQvNXZ3bkxxK2Z1N1o5TFhOdTAyaGNicCtmRW9DYzJYWVBJQmlaWnFZU05MMlhFL3NMMnEzVDVEOFlmVlNjL3l0VGhIMEJ2dktQR3NVaEEzS001VFZ4MG1NVm05Y1EyZWQrMHU5TitrbEdIclhqNWJuOWQ5NXczMU51ZWVZemJuLytmVGM5NjhUQlcyejBycDhVSEVtcDlhMlpYRmVjV2xzVVlsSktXenNiSzV1WG02WTFLeFloeVZ1RlFIRUdpWmtLa3dFakxIOWhYY1lvVmloVWFEdGh4c3ZQc3Y5clhzT0dtaUl3QWtDdDI2WG5VcVlQMFk2aVdkVVA4blpOZEZuemFyVk93MzYxYTlLNW9VdGRnWFRBVEVnQlRtaFBvTDF1NThMcTZYSkVnbHdIYjFHQ2ZHcFB6SWdBcEliQWNuYzBabUMrWFhqS1RjOTh5azNQL0pybi80UHR2YTJ6Vng5LytQd25IanIzMFVjdWZPcjgycW5WcmNzYk8xdmxpck8yR2JYVXB0U1VPME14Z0N6dFNpbHF0RkVWb01sdisyZVlyOElsSU53U0dmQ2RiQTZQMm81UitkYlIwV01NQWVDazJLNm03aFVwOTdudis3N0xreTVQQUI2UDVwZm45OTIwZk51dFIrOSs4b243bjN6aS9pY2RmZkxSL1RjMldzNzJmYzdjSnlKS1ZLNnRFei8zMW91cXA4NUE3TmUxclN2cld5dHl6YVQ2aXZFUm8xMVZMWWFNUU9kVFowQnNVNXVWV0JsVm0wMlVjQlNYUmhBSEljMHJRQklCUWovTmpWUUNoK2xWdlZuYkhTcURFTGJrTEZLWGphYXRJVTNqb2EyRDJwcVNmTkJDeUM1TFU5SXk4dm4xMDFBQjZvMVp5dnRTMGtxc3E5TU5vWktLTlJHeTNBSTlVMG9MbzhXN1RqejFyaE5QL1pKbi9SMEExN1pYejYyZWZPTEtJNmV1UFBMRXBZZlBYajE1OWRxRmpkMzE3WjJ0cnU4SVNDa2xha2ROazFLYlVPNFQybER5bXFIRUM3ME5pcTF1dXJhc2Fxa2pJaW4wS1RhWTVJbkl6RWN0U1hwS3VkemF0dTl5My9kOTVxN25uSmtKYVR3YUw4NHRIenR3NVBqQm0yOCsvS1JiRDk5NSt3MTMzWEw0amlQTHgwdGFMMWJEWEc2T25WQWlaaHVqU2tGbnRRTWxVd05QZlRVK0Exalp1THkxdXpFM21zdDZGWjVlMmFkbjFOV3hYbHczTUhIdmlNVStyL2NQeVlwUURac2dCV0tYcURVNXhFZzQ5UGJDWEcxdG9JRjN5WFRVS1JSenBPQVpqQ1EycHFPRXlhV1ZJa0RsbmlLWGFsa1pZS0hVd3FGT29Qa3JVMnBPWFhrY0FBbjhtL0ZJNWw1TXppb2VobGxmbFRNUnltTXRHaWFJQ2VudHd2Y3RITnkzY1BDZUc1OVJCdTY2Ym4xbjlmTDYrUXRycHkrc25ybXdkdWJTK3Zrckd4Zld0cTV1N0t4dDcyM3VUdmE2M0dYdUN4M2xucDZKVXJuUllnS2hmRFNzQytzWHNPaHE2bGE4QXBYSFhwVHRCS1ZJend6TytwQzhvcnltYVVmTmVLNmRQemkzYjJsdS8rSGxZMGNQM0hqandWdHYySGY4eG9PMzNyRC94c1BMUitjSGR3dmxjcWVUVW9nWEtodkx6UUdWWFhubmprcWVxNmgxeElTaGJFazd0M1pxMHUvTmp4YUlNMHU5Ry9CYzQ1eWl1STQwZlgvU1lJUGthMGgxZkRmOFJSaHVsazJ5WTJ3WVdvTkVDd1MzVkZPVGc4S29tdHJHbUt3L1dYa1IzTGtRSC9paU9uTEJ3b3JrWWg3eTRVY2FQVXhNYUtnOXYzcUttZjNpdHpLU3I0dzQweEZaTkxXd2VnUEIrVGhSWXBhN2x1U2NHYm00RXhFMVRYdDQrZWpoNWFQMzNQUzB3Ry9lbWV4czdxeXRiVjFkMzE2N3VubHBmV3QxWmV2eTZ0Ymx6WjJOcmQxckc3dlh0dmUyOWlZN2syNXZ0OXZ0eXYxeHVaZHJDSkhMVXlZQlJwSWNrcmpjVzdTUk80b3lwZFEwcVIyM2MrTm1idHlPL2JhNDQrWDlpNGNPTGQ2d2YySC93ZVdqaHhhUEhGZzZmR0RoeU54b2J1WUR5L1RPaDVvcEZSZEZzbHBGQUljdFU5VU1WdEJYN1plRGhHTnVGQXppNHVycDhnUkxOUUN4UFd1RldBbFI5Qk5ybnRxaUxIS1l2ZnZNVlBsVVdNS0FVVVVJOWhBV29qVXNBUnEyU2dTd3pueEk5ancwK3hwbzZQTVZYOVI3VVFULzluYU01bXVsTFNPSk13VUhacVZGTnNJb3F0Z3lzYk5GWU9hMkdWMitkbjVyZDJ0cGZxbmNCSnk4RmdxdTZlRXg0QU5SQldDV1JIa2RZY2xaazJ6SGdkNHVPbFRBSUVvTDQ4V0Y4ZUxSL1RmTzBKN2tGWk91NzdvODJlMjI5eVk3ZTkzdXBPKzZ2c3U1UEhNeTczVzdjcnYyUkFTVTJ6Q09tM0dUMnBTYXRtbExSVDQzV3B4cjV4cHEyNlpwbS9HTXNPdVR5bzBOTTNNaDB1SzAzQzdTSmE5NkRaRGxnY2h0b0pMbm9BTmp2MGVLenE2ZXNyVU1uYXFDOTFBVUlDNE54ZFFQOERyR3VqZHh3YlJrbUpIeE90OGV5S2prTUJxd0pKdnl5cllGd3NxVTNmK3owRlREZmJRdXlPbFYzdVExQnhsMGVFQXQzMm5mVTlNN0gxczdtZHI5Q2JZcjFMU3B1YmE5Y21Yai9OTDhYUXdramM0U0poWEIvUG15RmpzMDByQ3EyQzgzc3g2Y1VpaktpT3RRUkFtMmV3T1FRTUgrbmVwVWsvVlU3dTRQWUI4TzRQK05GNWRILzVhdE14bzFVVnRNd2ZLV1lyaURPWFpBMzRnTlFjaXNpdFZoSTFSSlc3dTY5NWtLVkgzczRyV3pDU2xJaXN2MGFqRmFQNWNwMVJhVDJDSlY0Y0NEdnh3dEhUOHBwWXUrMU9pbnNwSnFsRHJLa0VFQkFkVmpVa2xLQmFkOTZtVjRUWlRNelExdXRXajIxbGdKZkRaNmVUTzlEQmliQ3FKTDI0aEIybTBqVHRSczdXNWVXRHR6MjlHN05DTmp5K3JERURGR2V5UzBMcllkWmtGcEVPbU5OZU9tb0k0QkI1Z0JhVVRwTlJ5RldqRTJXMXN6VFFlUUNKNFU2RFd6clRHNXlvNVRpWG5rNDdueTFYTzVhcEFLMXhSWXBCbjJZdFVzZVN1bU5CVlVQUnpxQkpnY2xKTkVhYS9idmJ4K29VMmpjaE5pMWFXdG0xQndLa0k5a0VtQlZRcWFLRkVSb053WW14VVpOYjN3cElYU3NBNHdsM1pURE9hcUpMUW1TNnRQclNVM2tKSkwzRU1XaEl3b3lIaThaRGNxQWUxL3hveGlSdFJTeG1FMklHMzF0TmZ2bmw4OUNZQ1JnVWFSM2M3elJ3TUp6MFliVllaV2pnaWJXSnhZR0x4cWZnYkpIMkJRWlc2aEZpY0pMY1dsRGUzcVVJSStWUW9nQ1Z4eFZVRzlMdkFCRDUxdVoyRzdnK2FVa20yd2Yybm9YK0JXaEtoeE5MQ3ZzN0hlSTYxOHFaQ0wydUl0R0xwRFM1K1FSSERyMnl0cm15dE4wOWJKU20yc1pCbEo5YUlvT1YwVlJuaDZra2ZwaWdIN1pYcElTMktsYjFaSjBnVkF5ZkZHUk1zMjFnQ29Lb290NkJmTEhwb3dsT1U0ZURoZDhVRDVHdjdzYjlSeTdKaHpxeWZsTnd0YzhFYThtVmJJVnRsbFZmQmtGckVTaGtxK3BEdFNtRURFY2xWY0VMd1prL0xBNHRYQlpKak5EM1NyUkhBcEw5VGNJaGlrOWl0a201RUdPV2xhQWIzdWxDdDVHblJJeDR2MFB3dEJOcVk0U1F3SWhZT0t6NEV1UUJhbFRjS2NBYXhzWHI2MnM5cWtSa0hPV2x3VXh1SjZVSk5WaGI0U3QrUVdjVVNRYWswcDlhRVVoNmNSRkVGMjB5OW5PUlh6Y09SMmVPQUJzZXlEVVdYNXpGUFJBc1pMTEZBQ1VlWndrcEpIcTJXbmd0U3doYVJFelptVkorRE9TYm9Qd3RSZmR3Mm9ha1ZaSHV6RVJJTVlnSU1hbXUxdkFnbmNPNVNxYnlwZWt2bDk5Q1FTUWhRVm80ZUxwQXljbEdWL293SUxPRjNjUzdPemFjRXFpaU5jajZSQkljckdKV0NDaXMyN21zM3lodTM3ZXNwTDE4N3ZUbmJKS2hBU0xLOHRNRVF4VktxeGpFUHh3UEtoNGc4U2wwTmRZTnNHcG0wdkRGdWxrRkRxRFZJNStZd3VER2dGUEJ5MUVreHBqd1FUaVpOTVVRSUJuQ0VFaElSVlRiQllucFhDZnQwL2MwdnR4YlZ6bVhONXBLRnYwQW5URG91QjJoMEdCRWFiaUlvdjVhd0hRUkU1VWFCMitESUxka21SWS8yQU9qTG90ZmhBNnZKbStHWSt4VHhra1ZGVE1Ka21RdmdnbXl3QnpNQWx4S0xBZmhSVUVJV0FrWm1YNnJ5V244OTNmdVZzNXQ1S01oUGpvTk5aS1BhS3dFbUpycUg0cm8wZ2tIdWZHb3JrZUxHcW5MMmVVSTByeDVrUTBwU2REeWk2M2dwRFFFNnpNZ3J4cUdZblNJN2RmWU1ZeEk4NHlJRlY3eHBKR053MjR5c2JGemQycm5rU1RqcDhzaGw1NEJLQmN6M1lJZ2lxQk1Bb2RiWW9mR21EMUNPTGJjVmVtL21zZGhaY0tzRUMyVlltckl5Mi9XSmlLV0RpS0prZ1Q4MjVPTkJNVG8veE95QzFra010azhyY1ZUNGl6OEIxakJBMnhkblZ4OEowd3NkMHcwT1lZOUVUTkRuVDdndHJFNFRnUWMraWE3aU9CcVZ5SUcyMEZ0RU9weVBZVmxsdmk3a2NTaS9SeUFya3c4NklVYW9lZTBxNmxZcjhKR1pMSWtwa1oyLzUreCtyNzhHQVhSbUQrbDdlYmROZTIxcTl2SDRPYnYybGFha0dCTDF3enBCSTg0NFpSbCtnaGR4QUFTM0lhcU1ub3FGZmtSOWdGVWpGTmlRWGlDSXBldE4rWThpTzlDaHRvWVdaUlZwaTA3Wm9VNUYwbmRkMDJoT0ViYllIY3lTYjJvMCt1RGZicGdNNFVESExmZGd1cnA5dC9DbURhcEtGWlBaQUhOZ1RReFJtcUdRN0NDbFk4RzBoWGR6RXF4L1krTmVSQUpnSmxXWWtheEpBdG92aTVhZmdEK1d3bWNGZXBUdnord0dRYURRbGEyYklYd25yMVdtaUQxYS9OejJWQkJwTmFuYjN0aThWQi9BMkNHbDZ4WTZJQ3VmYWNCYXFJdXhWVE5SeHdJZ3lpOUUrTk1mdlZYQVNqanlHeEYraGQwRlJ0MVBFZ3dFQkFMMFNBamFsQzBML3NvQ0pjR21KaWhJK0EvOGlRZVp3OXJXaXIzWVJ2STlFNGhMa1EybGZTNVpXV0lUQlJFM2Y5NWZXejdaMmx6ak5qTXZmMklvWEJoMXdkWjBIZWhWc2FSY2czRTlFdHJvVWUyR1Fpb0FVbzB2THlMc0w1bUNSVzF0bWRmVlRhWU95YTBqY1E3UFQydm81dnRQaW9ZU2wraHFJUVNybUsyT0E1alNxOEFBVVVWVmlHdVZ0OFI0V0RYVjVjbjd0bEE2c0J4aTAxeVJQTi9KTXgvYmw5ZFlsckF0ZW5SdEVZYzZtTjNFTEcvM2NkcncrSnczZnRyNXNaa0R5d0VtSi84VUVHZHBBTHIxOXpmVWpmbGRoeWt3MndvenZtQkptTmJ1QWxRZE9wZm10aldCcWNkc3FOZ2Q3U2h3Uk5uYlhWamF1Sk50Y0hJWGs1d1pLTWVpTUdBSUhGYklORUNObzhRQ3dIUURKcHMyWml3ckNWa3ROdGdZZ1J3REROc094R0hObENXNVNwbDBPbXBaQlpwUWVaTzVoTHEreDNWT053Rk8wV2UwR2w3KzJNZ3Rsa3VqVTFjZHNDTFk5RHVWSUhscTU0VnprWGQ5eU5KR0lpSmFtVEw4TWc4ME5acVJBWnJJUlJZR016Sm5qVTBydDFmY2RVZktsdTVyNFdLdFFxT0V3NVpiVlh6dkcwQVR1Ulc0bFZIbU94VXcveStWcG5YamRNd3dHc0xKeDVkcjJxajg4cHRLMWdlcnNWeVdnQWNrQkpYMS9nRnQyemI2ZFdNWDFRWDJrYnlXWW9RMFJLeUN1dDl4RXZkVXc4YjVBSWplZXlWNVJuUVFBVmk5UU9KZkJTU0RQcTI3Yll3UUFTSWs4ZXdDbjFKd3VlMElwV0o1MUROUWZEVExOV08wblpEREpTcWVMU29IMk9rcHkwS1VCcnhMWXdxWXZ3R0ZCdFFSd1JtNm9RY0xHN3Zxbnpuems5SlZIdHZhMkYrY1c3N2pobm50dWZNYkNlSkhMa3lhUzZwNElFYk1yRmNNSEQ0bHlqVTNWV1JVUWFQaHdaMU83dDJnMjRGKytZRjMzTStWbUJuRGwycm1kdmEyRnVhV2NleGVLbnpqYitxVUswcVVTWXkwWUs2R3NoNG44elNNRWVDVlBySVlQb21HMnpKdjg1ekttak43NnZBSFRJdzhHSEZBVGc4SHlWTnpVeGtRWkxXNCtzMFJaa2g5QU9nV1dFNWxqMkI0NVAwVnNISXpjcHRIRnRUT1RibS9VakxKdVRhRWhBQTgvSXRpbVVLMExDRlk1K0l1OEcxTzk0dmNobk01MkRITkNBT0RNZlpQYXRlMlYvLzJ1bjMvYng5OTBhZVBzcE52Tm1adHhtaHZQSDErNjVRdnYvNnF2Zi9FL21oOHRkbjJYOU1uRWJQMlFlbHh5NktpeUwyZVFoMitjUnpWbFl5Zm9iVWIrVS9Ham1PVWpnQUdjV3ozVjVVNFRSUzlsU05IeE92aW8yT1Fic29BNHZQUjR1S1Q0UkFFN05YOWorYUJCWjRoaGl2ZjZkVEp4TWtCeVY0aXdFQldqUjhuc1dWZ25DcDAraFRmeFIxWnVSYWlhV3JqOTI0ekN1cVpTdHY3aE94Q1VlUXVocGQvQkJRNmIxSzVzWFZuZlhqbXk3N2g4UzM2MkkzRE1aMnFUSFdpa2VsOVhDSlpRaG55MzNoVmpMc0c2Y2g4aXBlL0w0TnlrOXNOUHZQZEgzL1M5Snk4OXZOQXN6bzNuRjhaTHBZY0M1SE1ycDM3aHoxLzM3b2YvNU45ODVVL2VkdlR1UHZkU0JOYUdHSE90U1BabkMxQ21nT0N4QTk0SGk4RTZvbVpINWFOZWVEM0lXTW9JRjliT1dQSmorYlpNVzFtL3BWM2VWNGg2cnoyUERlWHRTN2JxU0ZrMmpDbEJ0dlFFNWNsQUZvUnJNSFRDNVJGSnNIUURyUDJXV25oQ2NYeGpDNlFVbUJRa1o5S3daYzdHY2F4eXZRUzBpK243eGFqMGUwcFVKSUFTbzJWNWprMkp1MDFxTnJmWEw2NmRoY1lLWlZBYVB0YXdrNnpJWUVaZFdaSWRwWGk0Q1ZFSkhlUU1EcG1hWXNWdVQ4dzFxMmdENUp4VGFqNzArTHUvNzdlKytjTGwwMGVXam83bnhobTU2eWRkN3JwKzBuWDlxQjBmWGo3MnlWTWYvdi84K212UHI1NU9CWG84aitDcVVXTWlWVHBoMk1kT1NWU2c2dzVUektKS29zVG9ncWZwTUJiSFEyTmR6enBYTmtMYm1CWFd5T2xPU01UUWFWTEtQd3hkTFNEU0FCODFJdllVL01VRG9qemt5a3pkQnFkSVRQR1VaS1d0R0xLZEpWZzRJN21uNEZoVnR1U1RzSUM3ZGZNajNUNUM2RkFJcWZKN0FvM0FEV09QMHhvMTI1cElNQ0dsdE52dFhGZy9DN0dNMEs0aEF5b2FXR0dnVDZVMkhlS0Z3a0UyUVVPVDRrb1RFWTh0NkJSaUN6MHBwUXZyWi83ejcvMkxycDhzTGl6dGRSUG1nTk9sU1pGNWtpY0hsdytmMnpqNUUyLzVOOHc1V2o5cGU0UTBkTnB2TldmRHlHRG02QmxDc1NTNUVhUC9SN3JnUlZwMWVBU09McU1kZEdHVGtWTERuQytzbjRrM2d4RHNxd015bXdGS3FCaG9wWG9mVytjUXBaRWlHTWVQbWo0YlJjVXNaVSsveXczd1hmWUJyWk9PWGI1aTZBb0lxK1FHZGhLcVJoOXFxQTlwNU0yb2ZXZ0FRa2FRMXNjTjBEQlBPSzFodE1WMFk1cjhnL2JLSzlyTnJTWWwyUXRNZlo1Y1dEdHRVN0l0RjZycEcyQkh3dHcrQnZudUZGNHFFdzZFN1BLWU1ySTRQbXRYbTNTVkRreEV2LzZ1bjc2OGVXNWhickhMSGVuR2VsMlhLTWpESUhSNXNuL2gwRjgvK3VkLzlkQ2ZKa3A5MzFlTC9CU1NHUXB0dGRBQjVGbkc1ZCtZUCtpbTZsaEMyQUppbFFMTWdBblZvVnJlNXU3R2xZMkxiU04zaE5iSUZIeVZGQmV2ZHpPSEFjRDRXMlZIbDh2RW5sbDNzSWxMV040OThDNUJKU1BBUFZDbDE1SkVpS0ZSNm1vQUE1SVVzZHdsS2tSbmhicnBocDh0MmRXcHF2YVA0MVFDU3JrQkFOb2l5b1E3bXIwSHVzMEg5dGJ2Yi9jV2VmSjJISHdETFJNRGlUTXlrRTVkZWJTY0x1V1QyVjZrcUFyRWpxaktZUWdYK3MzUU41eVpnYWZMbW1nY0RiRDBWS1NUTXpkTmMvcnlvKy80K0p2M0x4N29jd2NtZXl3YjZSNWdGdnNETTNMSDJFdHZmTjl2dmZpZUw3WjR6YnBDS2lrRlMwbW1NblZNaWRYT2RCcmpwQ3F6dG4yOGtvOTFoR0tIVjNnazF1ZjRtaXhYTmkrdGJWeHRxQW45bXpLbWxRVW9VTTFxVUFhRFhnbFU0bzNNR04xQmNWb2FzTkdtaWlKdkdkWWFqeUdKb09VL1RUV2tqVk13SXlsSEFhenFOUURSWlBtc0NrTFFEb2UycGwvbzVaMENKcUtFbkVIcmFNZE5mb0MzWHRHdHZxRGZYT3dtQUhKT2ZjYitmbTgwNm5NaGxybE43Zm1WMHd3dVR5WXNRZDJVQjQrUGdhZG8wQVBKbVNabUlPZU1GOXVhMUNEL0sxT3o3NlRMNkFDODcrRzNyNnhkT2JUL1NKYzd5SnFtb3I3YW8rK095UDE4cy9EUXVZOWNXRDF6NHVBdEdabktCUVZsYXRJTnFvSFp5S1owYzJJclV5Y1JaQTZNRTNuYVkzSUlscWFEa0NwUzI4cDZDakgzUUZyWnVySTkyWm9mTGRpZERzb3J3KythWk5nY2ZCTlFRNG1kVEFhcVBydDF6eU9mS05DblhRZGlnRExiZkFyaEpwWVlFY0w4REc1MTB0Qmdzb09sTVd4ZlVNUnc2UWdabU5ueXBCSmtKMG5vWXlGUVNsOUt6TnlBaWJGQmFhN2hMK3JYdm1KMzVabDVxOXhBY0FJaUlERWFvbVBVTHpmY3lhMkEwRGFqeXh2bjl5WjdjNk81bkxOSHZkaW1IRmg4elZsRWQ5ZkV0SWVFalRmdVhSeVdqUkNIWWczUUNIYUtKNjQrMUl4VHlYa282ZTJCVFVSNm1haXQ5N1NqZGlkdjdQUmJsSWo3M3U2aVVFYmtpQzVLWitBc0pCNVdxeGhNRFFpZUJ0azZMTXg2V2ZhZ1BRZmcvTXJwcnArazhXSm5TWWhxUU9sUTRDd3NEanVWMGZvNXBMQVFxR0VGblpvUXIxSkFBRklLTm05dEZVY05iZHFVYkVtT0tYZGFWb2dnUVpIQUtrR3VCekdXV0NzY0lya040ZUFxUndjMno1eEpJNnVOUStBVzJFYTdSZWtMYWVNbko2ZisvZDZwWjNZYlBYTUh5b3lHdWR6aEg0eGpxVC9hNUFrUlpZRExmVUt2ckd4ZXFpZFZvVnhQY1ZQZmxFV2NRVHZGWTdqWXM3YkZsS2ZaQTVLTndtR0psQUJjMjF0dFJ1VmlSdWFjTFZFSDVFYU01REFycnp6SmYveUIzN20yczlZMlkyTHEraTZ6aWkzeUYvelFLcFlCVmY0bUFQek1hc0VMWWc0N1FHMFdpMVhSd3dBQVoxZWV5RG1YZldYQkVFUllNUUdCNHBTZnp0T0tNU0pKek5Yd095cDNTcytEa2JqV2xHNjZFVGV3Q3N3ZU9oY3ljNUdVUlJGVk8wRVQ1b0xsWWoyek5zV3hXZ1E1bDZScElLTmhBbkN0R1QwbGJmL3czcWwvdDNQbTNtNno1OVNERXFNUkJna2d6dHhuakhJK2tmc0pKekF6YzV1YWplMzFVZ2N6aDBWa1ZHcFdVcmltckk2L2xTcUQzY2ErcHY1blptRm9nZUEvSUZUS1ZvRjJrOHc5ZzRBVVd4dWFMNUpxaGFpa1FzeDVSSE8vKys1ZitQWmZldFh2L1BYUGIrMXRqTnBSU3NUSTdnRXNkYk5GbTRycm9wVUk1R2JFMDRvS0xKRFdlL2JHQmpOWitKaDZ3Tm1Wa3lscEx1cGlMRGtTRk1TQVluY21HU3ZpaXhZdGcxRDJKTXNrejRnR2xoWS9UT0dlMHk5R0tBanNKNVdmN1JrSDhuL3RuVmZ6QkV5VUlrYmkrRXhjRFE3dUYyaUxSVEFJTGJDSmxCSjllMy9oSjNlZmVLQy8xakgzVEtrd0xaTzVRNWJiT04zQ2syeFluTklrNzUxYlBRWEZyZWxTM3Zzbk5UZlREUnpMS0x3Z2pza0REVTZPT2xiNWFsUlVNUkZnTFFRY1dyaGhkNmVUYUN5ZFRQWWxSUk1XQ2xBd2c1bnkwdnkraXl2bmYrcE4vK0U3Zi9tcjN2cVIzOHZjbDlzVjlya3Y5N01tZzdFU2pPTitMVkpqTWo4UlNYSGt5UHpaV1lnaWRMY1Nvb2xxNmJIVVlKZld6elpOVzUwcFFkQ3Uxb0NtUnNsMzlzaDR0aDJhVEg2VjBVN25lUHBLL25VTi8rVC9rcUdWQ3ptc1hZS1RIUzVlU1dyb2dIZU95RVlEV1pJMEZaQmhRY29hODRXTHdqMERvQkY0amVodTN2cUozU2UrYnVjaWNaNFFKWmFIOVptRXk4UTlJUkhHRFZMS2gvT0VNMGo3U2huNTdFcTVPRmdYdG1LSW5CVlhvMmlxdENjY0hOc3BJVkxJVDNFOU9BWU5iZUhHMmg2MnluSC9yYytqUmtLZjBHYTJpRGliZVJFaG9VZHVtdEdoNVNPbnJ6NzJ3Mi84N24veHExL3o1eDk5QTNNdUcrbnM1bkRPckJCV0J2UEc2R0RMcDhRR3pldU1FUXBLY2tFRnlSRDVxbzc5a0ZMYTJkMjZ2SDZ4VFcxaHNHeHBGUkFJNlk3T3BRazEyemkrOGxyUHFiR3lIcVIwMzRRZTQycGdoZXdIdTh4VkxmRW9BclhNREI4S1FFanl0TXhsOFFWMk1RK3lmczZGYTJZN3ZjZ2pGQ2FFeEZpbDVpdXc5cDA3NStiQlhVcUowY2hWNTJiNFlLSU10TXlKZVRlMUgyejMvUVV0UDhqemkzM3V2Y2hNWjY0K3Jvb1JFTlNJTXgzcDFmOVFIeERMWEVIQ0FQRGsyWitmeS9MWDQ0WVhPRXFIN3hkSnpQeUNKMy8rYmNkdnYzTHRja3R0dWROV0FJWFMybWE1ZDV0cWdWRmtpWjY3Y1R0SGFmNlRaejc4a2NlKy9RL2U5NnRmLzZKLzhubjNmZ2tJbVhQbW5LaEJ1SU9yN0FoUnltTzhFcnRoOVFGdDR6cjc2Zy9pTnBYaGxkRXMxaFlnWUFBcm01ZFhOeTQzMUdqdEl5blVRQS9DZEFSYmFKTHZXaFNwQmVNYUlobnBDb0F1eVVtbUxnM282UlNINGhqVG5zSitrMEVGcG1wSzBxSzh3RVJCTVRjTzVTejBKZFR6aTFUVmhZalJnallhZW0yKytpOTN6czhSVHlnbDJ4V254REk0QXdtNTVieVM1bjlyL3ZpM3o5LytiOXJqZjlvc2JWTFRrR0FYYzI2b1BidHlNdWVjcUFtMkUyK1dOTXg4Tkk2SFFCTitIVWliWWhMbThuUC9zYTB2RU1oM2tKRXI5UUFBZmM3N0Z3OTkzZlAvOGZaa294Mk4xTkN0TndORzJiY2lnRmNXV2d3TG1iblB1ZS83aFhacC84TEJqNS8rd0gvNHZYLzhQYi94ZDkvem1UOUxsTnFtQlRqblRKYTdpaFlsUHN0LzBEYWRnWDBBVzB2OGhrRkEyS2xDbGVHRG1jckt4dVd0M1UyaXBxeGVXd1MzN28zUFpMNW1Db2VhdjBLTkZid3N2eWtEUVRHU0owSlJXUUdaYkN3YkloVGVnUXhyWXdHTVZrTU1od05jNFI1ZGVXaXRWbFlIK3hOdnJOeU9BVkRLdk40MDM4NVh2bjV5c1FjSTFEQ1h4OHZhWWxrR0VsSEwrU3JtZnI4NS9LZWovUmVhWnB6ellzNWc1RVFNc0hwK2s1ckw2eGUyOWphVzUvY1g1bVUxdjdZdmhhd2hISGsrbzJJZEpFSlRqUm5sUFJRTW5uc0FldWNmRnBBaVFjRkU2UHYreTUvejl6LzQrSHZlK3VFL1BMSjRQTk5Fbnk0RUxoN1BTQTNTcU1sZDM2UW1jeS8zbUlhdlRmU2NBU3lNbGxKREgzenMzUjk0NUsrZS9hUVhmKzJMdnZXRlQvNUNRSjRHMGxDanJFZ005Nlp3V0Jtc0FKNEQ3ekc3RTVPaWVKYURhakNXYzZzbkovM2VQQmF5V2prcEVHc3NnSnNnZVNmUUdnV3MrNE5rNjRpU0pxQnVRVWxNMzRkeDRuV3NHR0JzMTZybFNwN0NCZFczMXZlU2NRVW1HUnEyakU0TFlld2toQW50dlZCRFVwMkNSNGxYVS9OMys4dGYzMTNxZ0tUSklZT0pVaUppY0E5cU9XZTB2eisrNGJmVGdmUGNMSEhlMy9XWjBGT0NHbmlKNEJuY3BIWjlaK1hTK3JubCtmMmlHMzhRNVREcnJXdzRydjRhSWdZTGdBbTlYbEx3c3ZoNmZxVUZDalBNQjhyNkgxSDYzaS83c2MxclcrLzg5RnYyTFIwWXQzUGxPYUxjUzZMYjViMmR2TGx2YnYvYTV0cDhzOWltVWMrZFpqT0dUc3pjYzZhRjBUSXlQdkQ0dXo5eTlqM1BmdEtMdnVMWjMvVGllMS9lcHBZejkrWEJ2WUVpMk9NSzlMS2htTjY0TThBL1NvNW5SMENYVU5YdXlVQWJPSHYxWk9aTWllUkpuQXhvZTJyWUg1ZVVSZGRKdER0dVA2ay9HSFVGMlQyMDZtR3VLbW15ZUsrcFNsMmpJemo0YS9leWpHSlBpdGZSbVgwYVZoRzZENmxYelZ6QnRuWVplY1hYQU90b1BqOXRmdHZrWXNkSXRsTHB3UlNaVWt2OEVDMy9pK2EybjB4SDFwRU9JamZBaE5GbmFDdVlJUTA1SmtaRHplNWs2K0s2N0FtRlptcGFxM2pyaXNKNkNjeVk0WDFNOVhRZWFNT2RST1hnUTBDL29jRzRnNUs2bUhmaXpBdmo1Ujk2N2EvOHMxZjl4K1g1L2RkMlZ0ZjNWcmU2YTV0NzExWTNWbGEzcm81RzgzL25nWC8wMDkvMGg5L3dnbS9yOTNoMWZZVkFUZE1LVytTcUJUTnpuN2xmR2kvTnQ0c2ZlUFN2L3MxdmZjdDMvY3JYdmV2VGY4TEliZE1TSmIxZE8wSmE0RzR1a21LZTNvWlFpeW9rSUFxOVFVVHkxYm0xVTlSVTRqVzVoMFpjSFFoaXE2QStJZ0tSSTI3VWlreXVCa2thSzhKR3Q0SndObUNWQmFsWmtwZ1U0aE5pZ3VHelI3bmdFRDZZeHVlS0tHaXVhYVUzRWZhWVRxVHVleVlYbFR5WXQ1YVVPb05heW4vZUh2MXhPcnFkK1VEZjlhQ09OSXFVS1hURlNpWElsR2lTSjNxWE9OWmdMb1d3aGVrQnRMc0FvRUVGdzdqQmRReUpCbEg5RktGTlo0bUxLYllxV241aXpvblNhejd2TzE3MW5HOTQ4TkYzZmZUMDMxemVPQStrcGZiQXZUYy8vVVgzdkt3OG9laWZmc24zZjlFenZ1bzMzLzdmM3ZYSVcvcStXMnozTWJqYzlsblgwc0VFSkdUMDFOTjh1MHdKSHpuNXZvK2RlOTlUYjNuMnE1NzFtcGMrOWN2blJ2TUF1cjRqa0R3VExHUnJiaFZSUHVGbGNTL1d5aVpHVFFnb1VRUGd5dWFGVWRQcU9vR1d5TEVXSlZPS01EQ29ubHhaWmo5QnNDSFZHQUl1QU02eUltdk1HT0JUdUd3QUNQbUREdzB3NkV0ZmQxOVpHUjZnbDBzalJJOHNKZmpVK2wwb1NoQWN0R0dzcCtiZjlXZS91Ri9ya0pvYzFoUkFBUGVNRnZ5L21tTy9QRDZ5d0xrQitoQzlFSUEvck1zQXpLbHBWemN2Ly8zUCs4NXZlL20vNi9wSktpbUZpbUpHTDRpRXJNcFZCaGZGVm1xWlNuSnNud1U1ajNHTGhLZE1PcDBpa3NXSHpNek5yQXVDVVo3RXlNZzVqMFlqQUI4NzlmNWYrNnVmZnQ4amIwL2N6RGVMR2IwK2hvTDhacVE2Y0VLaWhuWW1XM3VUeVQwbm52YnE1MzNqUysvLzhuMExCd0IwM2FROHJRUEtGcnY0WGVWeHBXa29EV1BSK0djd09LVzBOOW41dGw5KzljbExqNHlhc2R1MUpsN1dLcHJPaGFMcG1FSE1mbWw3TVp3aGJ1VGh5NXRTTVFiSnY2d3B2Wm1SNUxOZytFS1k1SzNUaExERkFFK09lSXBpMHZVdVRWaUlLSUczaVo2Wk5sL1dyZmVaa2xVL0dna3lVWnY0MTl2alA5Y2NYdXA2eXR4bms3dll2VEVvTVZHRkF1WW10V2RXVGdJZ3VmKzk0OXdnTmI4T3piNjRZOG9iTEo4TlN1Y1pTUkZIaVV2Q29sNUVKalVWWVVxcHlUbDNmU2NQRU9pNlBuZDk3bkpwOEZKcW1xWXNkVDN0MXVmOXlEZjg2Zzk4OWMvZGNlVGUxV3RYSnBPOXRobVQzSGxUTS9EU29pSEs0TDdQOCszaS92bURqMTE4NkwrKytmdSs3UmUvN0ZmZTl1UG4xMDYzN2FocG1peVBTSE9XR0t3OWRiTDBxT3FHR1JZVTI0Z0dyTHBlMjdtNnNuSFpMdCtSUitHdzJpaTU5Vi9IcmhpMWhHZThvbHNCV2wwWjJyS0ZjUDhPdGlKb1JiVWtWQllMTFljTGFGUW5OSFdVWkZuRWNQa01Nb0NRck5uYUNsRUgrc3E4M29BNzd5Q0tkRFBRY0g1N2MvVG54MGNQNVVuWlNlNG1TRVlrZ0dSdEMwdGR3TnltMGFYMXMzM3VFeVZXM1ZZd1BNVVVCY21RWWlBVS94Q2l2NkxFN0tFR3RhTkxpOE81UktnZXNLV1dRQ2hkYzVtUFZLOGFjTW8zNWFySXozdktLNTUvOTB2LzlNTy85L3IzL3RKamx4NWFtRnNhdCtNK2R6eklQOEhsRkFMTmplWlRXcnk0ZnU2WC91TEgzdmorWC8vOCsxLzF5bWQrM2IwM1BhT0FYZGRQcUR6YXpKWnpwR3lxU3VTNE9JQVFNRU9KeWdDdWJseTZ0cjArYWtacy91Z213NEUwY0dWUjFnWWxFN050azV4NlZhTk9BM3lWNkpSdkRLc2xnaFZla3FGZ1hHWUlWNFFaVzNGOHdCWHRLenhLR0tQU2dwMUpTSVFKTlRmUjVJRzlhd3drWDJBU0lTZmlsV2IrWjBaSDU3Z0xYWWNnTlZiYU5Wd0pIbW1kMjZiUjFjMUwxM2JXSkt3UlVDVWh0WjhTTEQvME5yQWhpMEZkVEc4R0VTTU01ZHZqUWlKaERRaTJWcUNreEdHekRpa3NFYndaQlRDRjdhTU1aaVJLUkpoMDNhZ2RmOW56L3Q1Ly8wZHYrSTZYLy90RFMwZFd0NjkyZmQra1VWazJpTG9wTXpCeW43dFJPejYwZkhSN3N2V0hELzdxZC8vNjEvNnIzM3p0Mno3eHB1MjlyYllaTlUzRFlPYXNaQWhsMXNPUUtzcDZZRUsvYnVkVTdRTzRzSHAycjl0TktVbGVORWlpQlM0SHdwUUdtVTVGUkpZVHpINVpSV3NjUm4yb3JhdjhWSGxRbzRBWXp3eHpKWHRLWk9VV3ppS1JMUzE2eXFXdWJFc2RsZ3BZSlVBZ3hnNmxwMkxuQVBjZEtGVzNPa1JtdE14dm5EdDByazJISm4xblA3R2JpamxtVnVRblRYT0tOTnVtdmJhNWRtbjkzTUhGdzF4NnlLUWhrYUxqcWhZa2FmRjQ1WllLM3o0QWQ1WmFMZVd0N1hqM0FNbWVMMms4MGFMUUJCMTJkc1U0QS9jZjBtSFpCQXkwVFFPZzY3dkZ1ZVd2ZS9HM2Z2R3p2dm9QMy8rcmYvVCszN3kwZG41eGZsbWpRZVk0R0FqbDBXQ1VVMHI3bWdNWitXOGVlZHQ3UHYwWHR4OSs4c3VlOFJVdmU4YXJiejF5WnptNnp4MklDSW1rNWFBMXBFYmdJbmdpRFhvRTJGNm1jaTA4TWlFeCtpbkFtSXBRbFJ6REtrRllRUlpiWmdWMm9VTC9NZHpoa0hWWUttVEM5ZXBvTUdWRlhUbWcybEFVLy9WRnRDb1ZZbC9rUk1paTFTVVVoZ2hBRDc0Nzc4SlIzK2lsaG5rWHpWOWlhU0gzdVNLTDFJM0pwQk9xTnFnQ3dNeUowdTVrKy96S0tSUEFqTUkzdmxpTlM5SS90ak9xVFVUVjlxdUllU0hEOGVhMHJUUlZncXg2cnhhOERBdGpISFd4VTl5OG9vc29BTkJvNVhCdzZjZzNmLzcvOVQrKzlVMy80S1hmdlc5KzMrcldsVDczS1kyMC9DQ0t3UkpnNWk1MzNQUGllSG5mM1A2enE0Ly8wdHQrOU50LzZTdCs0UFgvOUQwUC9kbHV0OTAwYlpNYUFzdnpWUzFvYWRZRzIyY0Z1WXVTOTV5QnM2dFBVQ0pRVEdsY0ZsNWhWd3BoTWtuQXR1R0VRMEl4eXhIR0tBNmpDeTVCZnFqdHhGYzdoc2dlU2RVYVlIWjZaUlI0MnpXdU5NK0lYS1FKSllBR2ZLTGZSZGdjNVNNVHptRHVMRGVqSGt5Nlkwak1peVZycUFzbjkvT3dORFBwSitmWFR0dU1udnJaRzBTWFZHSEZDY0xhSjhvUXJHMDc2OEtTL3kycHNGMFRNN0JtbUVzTUlBaGlRZjZsMHpWWVVDT2pIc0c1aUtpaHBzK1pjMzkwLzRsLzhOTHYrZkxudnVhTkQvNzZIMy9vZDg1ZlBiMDR2elEzV3NqY2wwMXlLZ0JiMEdQdW1ZRzUrZmtGTEhYZDNsOSs0dis4NDVOL2ZOdWh1MTd3NUM5NnlmMnZ1Ty9tWjdXcDdMSGpuSHVVemlMcmhpZkxoWHlaajhzemk4NnRuV3FhUnMxTyt5RGFEUFVFejRSREpjRXlkQ1dyZmFSRFkza2pSMFFMb2xTZjBzZkhJTTVZVm5pNFBrZnFmTE13TmJOeVRFdmFYUXM2RlAyenJmd1hNYkNzM1VtdDVvdk42dlorTUpqUmNqNVk1dGJ1cS9TdkFCQnRwM0hYb08zTWpnSjFBWU9sVUF0b3FoMFFnZTR6VjUrQXpVclc1SXVpRU1OVW1laXVydGpSSjJjQ1dwUjV1eTF3NldWOGhIOVRUSFNKclBFc3ptS2E4Um1yOVdaOW1jWW9uTXhFb0tZdEd4K083ai94RDEvNkw3L2llYTk5MC90LzQ4MGYrdTBMNjJmblJ3dWpabzQ1OXptRE5CZjBhcDQ1bzBkSEtlMmJPNUJ6UG5uNXNjOWMrS25mZjk4djNYM2ovUys2NytVdnV2dmxkeDYvcjVIZHBzeTV6NHhVbGhFQ0djVjRVbW9tM2Q3VnpRdE5hck5lNVZQVW91WWhmbXRBWTBzSWhzc0dNc0VFYkJxeWNEeTBmbS9tQjJVUDhZaERJSWxSUlhESThMWGN6amVpbkp0TTdPdEhiNHpOQVQyV3pLck1QbGt1UFdQRHZoQSs4Z0oxNDVhUXkvd1ZWS3NIaWJzSjhock9PSDNjTk8zWmxTY0FhQ05Jb2QxNjBGUExLTkxua0dDaGtVOWJuSkdqa0FtRUtZTzlWdFp2V2JLOXlQVXc5Qk45bzdBWGZpb1l5YmI3Z0gzSldnRWRSSWxrLzgrUmZjZSs2YVhmL2Vybi8vMjNmdVQzM3Z6QjMzbjgvS2ZIN2R6QzNDS0QrOXhyZFpFQ2pCTXp1dHdEUEQrZVg2REZ6UG5UWnoveThUTVAvdGE3ZnZidVkwOTk0SzZYUHYvdWw5eDUvQ2wyQTlPY2MxbGFKa3JlcXlHc2JWMWQzYnpjVUZzdXJITmswaTZGc2E4Y3NOdGRsWmFvcEhTTHJYZDJkQjlIREtwNllMQUZDcXBSZFVjcWd2RllKMUJPYitXM0VDS0FzSCtDZkxCSWIwVS96Q1RLYk1YUktTZnM5dkpOQ29aUWFEbVJkNCtndTlJMFRROWZQSVphdksvazFXdFJ3ZWtaUEVydHhmVXplNVBkOFdndTU2emR2UUFldHZOQzU5ZGdaRGdUbStNWVNCVUlvb2Q1VDVUcVVCWVZoa1RSWlA5cTJLdU5MMWFCaXcxRUJJdGxPakZ4UTAzZjU4ejlvYVdqWC8vQ2YvS3FaLys5dDMzMGpXLyswTzk4K3Z5SG1MRXdYa3JVWkhFRDZUcVZaODhyUlV5Y1FWZ1lMeEdvei8xSFQ3My9nMCs4NTlmZjlWTzNIYm5yR1U5Ni9uUHYrTHg3Ym56YWtYM0hyVmJrekRKZzVpc2JGOWMyMWhvMDJ0WmtzaDZCNGc5cTZvSGErclN3ZFF6VVZyRFpVVEM5a052SUFvTzhqU2xFSmNkYUg2eFdFVFFtOTdObWFXQlo3ZU1tTkVOUFBQMlZoeTJqay91VUxsT0RYQjVFWnFNeUVmV2dSZTZlTmRsOVU5cC9BSlBPblZPUmVLWjV5TlluSVpIQlRUTXFqMmcvZHVCbUU2eUtnODEycXZzOUlpN01PTkxZd3NDMGZ3L2xPUUNiZ1BSaGtxbG9GWGFmK2hzYXFFZC9WZVFxR2FEY3EyMFFqZ0FBS1ZHQ0pFWEw4L3UrN0lIWHZQSTVYLy9YRC8vRkc5Ny9heDk4OUQyVGZuZGh2TmcyNDh3YURhQXFJb21Xa0FVRUVOSGkzQkpBdWU4ZXVmQ0pUNS83OE8rLzkzOGVYang2eDdIN25ucnJzKys5NlptM0hyM3oyUEpOYzNQelplcVZ6VXVibXhzSGx3OWw5Slc1Vk5BSlJUUDl4eGpWMEZmK2tNbkEwKythWEpKZXBEWWt6VlpEaVBmRkJMTC9WeWwwV0dncUZZZ3VoSGtTWktFU29RTkNwZzJaNDdOYlNUSEFUS2ZUMk5wZHpOYUFGSUsrZEcvdExlUGxucUVOekFqR2VtekEyVkF4aXRVMjFHeHNYN3V3ZHZiWWdac2gvcXRwbHcraWxJY2RIS1lRRVhiSThvZlk0YkRqak1ZVndjcmNhNk92aEllaDBPcmFkMFlVOG1vZmtKclBjSlhrNXBPRmtsSWlaODQ1NXlZMUw3NzNpMTk4N3hkLzdPU0RiLzN3NjkvMXFUKzV2SEZoYmpRL04xb2dvRWN2UnFQQ0xVV083alB2aTdibXg0dUpVczU4YldmdC9ZKzk0NzJQL21XRFp0LzgvdU5IYm5uUzhidHZQWHozSFVmdSsvQVRmOTAwaFNCYkFIRitOTWNraE0xRWhTRmRxSW9HSkdqdnVXN3N1WXZoaGJTMmJodVlOSlVRUlRYU25rV1l5N0tBOGxVYktURENwM0EvL2hSMFgzUGdyQk1ZR0RFZWJSYVJFdVVjUk1OZ2FnZ1o2ZjUrOHlWNzEvNGs3VCtNU1ovSUxENFcyWmJ3TVhMd2IyMGpFTzFOZHM2dW5uejZiUTlvaDFaYnhKRkMyOFVnWFJITGlBd01nd3dVSkdLOWk2R3lhb3lmN3NGR1EvZlJ0S3EyTkdFZ2w1b1Nwem1rVE9HVzJYRFExU3ducGNUTWZlNkowdE51ZSs3VGJudnVhMTd5ei83eTQzLzB0ay84MFdmT2ZxenJ1c1c1cGJZZE0wcTN4NWhYbTRHR0NlYU9Kd0MxVGR1Mkl5TGl6Qk9lUEhINW9VY3ZmYUx2TTNWcDFJNlhGdmIzcWhTUG9RRjlXSVFqb21Kd1pkalFkQVlpRDJ2OXlkdXBTSzBFYXR5T1FqZWdVL1MzKzNOQWRXL1FZdUpzTlJvSzJKaEVxdkZuQmQraFJaaHFDY1g1NXNDZnllTUxsSTZqdE5aMHE1V21YQXorMXIyTER5N003MUF6WnQzQ3F6TnBBUmVGNjVIV1N0M00vWVZWdVUyaUZLRnNSa2JCR2JpR2YvdWZSMjByU2NtMkJrYk1OcUNacW5SRnR6V2lPenhMNTBNYlV3SEY1VGgxK0tqTFNxK1dvbWxORVBVaXhsRXV4V1F3VVlNR3hPWE9pc2NQM1BRTkwvb25YLzM4Zi9EZ0krLzhzNC84L29PUHYydGw2OG9vamNidFFxS0d3Um01R0lEd3lnQ1FKZGZnSENBK3BhYWhCa1NwSlI1eDVweTFXYWxKWllRVDhYaGppQ3F4bFYyZmFwdDZzdTNKWXhXWXE4eDF4NkRCeGg0N3h0ZEJIYnM0OXBvZ1dZSzJabHJSdUNkRzRoRHFSUkRQUXZRR2k4VlJEMVd6RUV3ajVpdlVQSmoyZldsLzFXNHFwaEFMY081QU4ySHYrL3BMM3plK3FlMnlYSFd0bC83TUtCT1ZmRytjTUNjMHAvV0JNYkFVanAxSks2K1VVYitwbm5lQkFMK2JkVVRmS2JQMlRLYVdCMkJ0Y3ZaalZCN3hqZTk1WUhXU3dTeWEvM2lmYVJCdnpXZXNxMktTOWRCSEtZRTU5WDFtenFObTlNSjdYL2JDZTE5MmZ2WFVPei8xbG5kODhpMFBuZjNvdFoyTmNUdWVIeTAyVFpQQmpBd1JFYnVnamIwRXlFSll6bVhCenJ2aXJoNUoyQ1RUQ0Jib3NjWXUvMVZZRmV1MzBGYk1UOXVBTlJZd1dRSGc2WDRoMlhleUZPRllJMVJUTGlDMEcxVVY5TXJYM2V1RWV1VnQ2bzJhbkJFQzJBbjNGbStaTXpHMlV2TzhadXRIdDA5S1N6UU1WSVRNaVJyUTc0NlAvRlI3OUVEWDU5QmtyNkRFb1VLWEpRSE9uQ2h0N1c0OC9mYm4vK1EzL2E3MkExai9aeWVHdkVMbEFFMWJ6T0lOWXYyZUlwV3d3b3RjZC9ibXVvMmQ2VUVDZHRocWpsYW93L2RHczZOaDdFU0Y4Ym5Lb1MwZjFnR1lNMmNDTlUxVFBqNTA5bVB2L3RSYjMvdndYejUyNmRNNzNkYW9uWnRyNTFOcVNuYWtDVUFJQ3FUeHpQWUNsTGpxa0t1SGlRTFpzLzk2Q1lDbk5EeU1uSUFDR0lBcWcvZWpWRDRSN2NVOHd2R1ZNT1dZMkU1Q3RUZGRXQndFWU5kMi9CTEtsd0lZeGFEQUFESmhFZm45V1B4Z1duek9aS01uZlpLZTVjUUpCSFRncisydTdsRDYyWFQ0VU03bGxwSXFmaEJSMXAyUFpMaFluSmtJNExZWlg3NTJmbnV5dFRoZTRwemhvaDZDZDNSOTV5ZDZHVXlrOVd0Z3hIWGtjK0NtT2p1cVpWWmxjVGE1M3NiQ1ROK0tueW1hcDdnbzR0QnQ5NUlnMmMwbnpZb0tzN29GdFRUMUV6WDMzdnowZTI5KyttdS84THNlT3Z1UnYvN01YN3p2c1hjOWZ2RlRhNXNyaWRMY2FMNXRSb2tTYzg3SUNBSzFscktLeEhJWGFQN014V1ExbVRIaFNKWXQ2VlJneHdLWmhqQ3lNeXdRU1Njc2hBNXIzQWNKY2M1K0N5M3BEZ3pVSUREdk5rNnZmTjI5S3RVSXVqVndlbXBpL3NQaC80cVhscm9JcGxJRHZrYk5DN0g1STdzbmU0YmV2V2xBRmZYZ2x2QnI2Y2ovYUc5WTV0d1Nlc1BsVUlrTVQyWEpwbEpLLy8wZnZ1SDJHKzd1YzI5SmZFamo3WEFMMVo0ZVZiYWxFM0RraXFzRHdoSlY1V0NHTkNIeGNwdUdSbThQTDFNa0RiK3AwNHZ5bTJLOFUydlhPRms3a0JSbDFDMk1KQXQxQUlFek0zS1QybUl4ZmU2ZnVQU1pEejcyN2c4OCtxNkh6bjNrOHViRnJ1OUd6V2pVenBYTExBbklPVXQybEFqWmN5QTFCek1BTlR5bnBtNmRSQit1M2c1QjFqM3VldEhZdkdhUVZubEVnaWw2RUlIS2tYSnpYTklGZ3FveG9jZjdmdDRRYlZoakc4SHVBYXlLeklJQUdkaUgvRGUwOU81bTM0c202eE81RDVHT0twcmlCSFRBMys4dW42RCsveDRkMzg1cEVWMXZuYjRhbk5uZ1JheS8yZG5idkxCNit2WWI3bWE1NE4waFhuTFZFc0FEUEEvUytoQllnaWxieDgzVVdkajBSZFY0MmF1a05EVWlGSkVweHNkdkZWTzlvSm1PTTBxYm5KR2lFWmthbkRaU2JvbmdiZXlTelVocTRLVTJrVndXMitkY251QjA1L0g3N2p4KzM5ZDh6ajljMmJqMDZYTWYrZGlwQno5NTVvTlBYSGxrWmVQeTNtUW5FWTNTdUUxdGsxcmlsQ2tielVFSXMxK1NPMEhRZnlvbGpMbURjVWlLYjF6SFJEOE4wMWFKVUhnWHdJNUpnTUl6ZThqaGxvQ3NEcVR4eTd2MW5tSlZnY3VwbFkwVmtwMTRrNUpnbHNKTnBwOGJIM3RHdDdFZ2wzQUMwRDF0d2drbFJrZnA1ZDNxaVR6NWtia1RwMmp1UU83NjR2c2toSnNFb3hRU3NOZnRuaTBYQnpNamhTME1KbnpGZzJuN2d4RStyUllPaFh2OEdoeFRseUZJMnlUQmduVURtTU84M2hqRnJWK2FJbVJuZWR3cnAwZ0ZPTENUK0ZJOU1FZE90V3ppY0JLclJ6SVNpQ21WSXFGZ3k2SGxHejdueVMvN25DZS9ETURLeHVVbkxqMzh5SVdQUDNyaGswOWMvc3o1MWRQckcydTcvZmJpMGxKS1RlNHN4ZkdOTXdPU0xDU0ZJQkNNTnhSZGlteGltaUtFcVVob3dGWXlQYlowU0tjcGJxOGpzWmxqTVZTdDhJVzAxdkI0bURHcjNGM2dUclpFdVRLTzlmUXN6SmpZaXpJVzBEM0NjNzg0T3ZaZGUrYzdLbGRETVptYUJiSzRBWGVFcC9QV3ozU24vNytqWTMrTy9jdmN0WlE3bFJNTVdRTmtsTDdFcVN1UENSSFF6TW5rVEdxWHJoUzNQMGtQdU01WUNJUENhMlpON05DdUoxcVdQeHhuZHZpT2tvYkpRNDltVjhIZ3lNOHkyaUJ0WTRuTE5nNlJwbkh5aytFV2FScVBQdWZTN0dsU09yUjg5TkR5MFdmZDhUa0F1cjViM2JoeWFlUHNoZFZUdi9LTy8zcjI2cWxSR21mT0JTcHRvWFlZQ1pTQmtIZUtwVWpHWE5wdjVFUkZpV2lVOVA1RXNXQ3BPY1hqQlVaMUtvbDZZVUR2Y1E5ZXlRUTd3My9GRllOR3BxVXRtRWZRcG9wcXZQeERBSFhBUWU3ZU1Ecjh6cmxETGVkT1VERjZrN3h0bUhyZ1lMZjNIN2RPZms5M2R0emtqZFMySlFVVFB5dVZCSU1TRi8vaVROU2N2dktZYVJkMk8wd0pvbXl6eFdsZHpwYWIwRkFRMVNZbzA1emlTUnlRS3NYcHIvRWVSR0ZHSzlSczVJaVJzcVpXNjROQXVoOS9Ta2RLbmQrOXhscjM4c0gzV3ZseXZGRkE4TVluaWg2cG9kU2tCcUNjK3o1M1hkK1ZoN2NlM1gvOEtUYy8rd3Z1ZjNYcXgvMWVMNVNUOWVDSFJtU2ZyUjJrU2FvNWdlT21ZVXdWVXVOTEw2UUxHWXAvRXYyWWV4UWo4NDBTNnByS1BFbkdvSU9wdEFJWGc5a3g2MFVoNXZ0TjdFVytnakVFQnVhWWYzaDg3Tk5wdnR6ektXc3hCb2svR29XWWUrWWU5SlY1NVdlNk15L08xMWFROXJocGxWM0FGMjJLRWxzYVhWZzVQZWttY2s4b2tYSFpBeVFtR0UzWmNCb3h3NGtmV2NVc3JUd0ZwSkM0VlpDdk51ZWJIMTFvNGg2Q1loWVFMQU9TNHN1S0FUWHlMT0ZYRjhJMVR6QTkrTEszRTFOc25VajVyVnlQeUxXbHhZTGVPVWpUdElGaVFaUVNwWlNhUkEwUjlkeG56cWN2UDNwcC9leG9OR0s5Y0dtNlV5bUpTaENFZUxlWlBzemxYZjRpRy9QSFlrQkZKTVRhbnJmWUdDY3IxSUxJUHZxbGxpeXdhRm1NcENkRTRZcXdna0dBR0kxSlE5MXFWb2pRMGxtVEl2S2g1SjFwbkZybW5hNzVnYmxiTHpYalViWkYxM0ppa2FOcEE0blFaYnAxc3ZWZmRrLy8yOG01bTlxOTlYWUVwRVloMEhZNE1YUFR0S3M3VjY3dHJGb3NsNkRJY2tBc1ZRZFFiZWtCdS9pVmE1dUkzTDRKb1pQanVGVy9QSkRYUHpLaUg4cVJMSjZ2Z0tISlFmRjBwY3RqbEZGcm80VmxPMmhZbHBHMThxbm9pREFWZjdBV3B3UU4zNWRneUVPRVJPbkt0VXNidXh2TnFFVURKT0lBZXVSRXdRTlNJU2VHUGEwend5RW9YUzJSWHFCZnlZeExsV1p0VVo1R2hnWUluYnlVRmw1eldnWXVEOGpRcUZ0R0lGbTJJNk5xWVB4RUdzWmd2OVdNa00xUFV0WXc5OHlMM0ovSDZGL1AzM3cxTlNOa3ZUa29Cb3ZJSkVyTkhkQUJyK0QxbisxT3Y3YS9uTUJyYUFtcE5SVExZR0RVdGp0NTgvSzE4ekJ6Vnp1Ym1VNEVRbU1FRDI1Z1dGdm84ZzNvSnBBcTkxQSthZG9aS24venVPVnZUSlRsNTZISHhEZnNPVlcwK0tCMHAyZEl5SlFFM0JNTkw2VjBrVitsSnVCQUJaQXpBN2g0N1F5bnp1N0JxT1lRVEwveUt6TVcxYTRnaTFHaVhTc3A4NHZYK29pK0QrSjZoVGJYSHlPWFprOGVZelU4RVZGQ21ocUM0a0FDSlhXQWs2UjZTSVg1cHRKZ0F5amtkS0NsM0QvRUMvOTI0YmJOWnRTQWU5V2tUQlR1OFVWQVE5d0FIV054Yi9JdE94ZCtadStKVjlFYVJyaUdOakUxcGRtUnVHblNYcjl6SVZ3YkNiRm1CMTJudVBpakdqZlVaMGp5aHFwT0dxN3ZFcXlXc0pBTmxNaWxLWGpVc2FVbytxb2xWbWYwck50VGdzcXRIMWVtR0ZEaVVjc25xOGF2MURQNGlldkRpaHR3aUVYczZYTVVGSUNMNjJkUjdqZVhhOXRRNlJRbjhKNDBleHFxdGljalU1R0RSRzZLZWZ0VXVUT2d4djVleHkvcVU2d1pGbnlBd1pZQ3pRcmp4VWpvdW40M25JVDhuNm1CTkFaMmhJUG9QMDRMMzd0dzh4VnEybHp1QWN1QVBiTlloaXNKTW9BR09TTlBRRS9pblgrMWUvNG5kazUrM21SMU8yTzlhYWxGMjRDSUpqdDdaeTQvVWRORG11bUJ0T2x0c2RYQnlnNmVaa25JOXdZUllwY3pURFRzVG5xalkrQStndytEaUVIcUZKS2Y2MWFONFFqVGxzSFNMeWVMVk5GMWJkQVpKOXE5M3FyN2hGYTFmMVczRUFFNHQzcVNlK2FlQVphYllXRmE5V3hmSzY2RlA5YWFMQWQ2L2FUekYrQUlER0xtU3dxaEdQUXFCSThpS2dSV2ZTcnloK1JoYU9aczdITzUvVGdQbFRHY3BHcHVESjJHTkFtam5taC83ai9HaTk4emY5dVpabTdFM1BzQ2dnTzRwUjlsNEpiUU0zVjlmOC9lNW4vYU8vMlQrZFFyMm8xbWpHdlVjcWJVMDZuTGo4ZzBaR1ZTN0Rpb2djMFVaY1RzZ1JpVkhyUFhHVnRUeUVtdlRKOGlTMU9RSE4zQmkwT1JSSm5KMW14SUUzME9hM1pER21RT2NRWU9xOTJoL0VXWXhaeHVhaytlNHF0N0ZCaGw2eFp3ZnVVMGNjUEUxSGlLbDVSVHgzbmozcnIwaHFoeWtOWjhhb0M2V09BRkNGZGlpZXo2TnpLSWthTHl2VzVnVU9XUXRrR3ROd1VFQy9Cd0lTZlE5Y1F1WjdKaUpDQzNKNmhlYmdnOTRRRDNKL1A0bjgvZDhvRjJzZmpBd0wrc3Y4aHFMSWs0RVhkRWZaT2V4anZmdjNQK0o3ZlB2R0x2S2liOXRXYnU3TVo1Y0paMFEwWEJVazB5ckw1R1VFMEVDK2Vmb1ZidWRrTlYxdUZxcjhHck5MTnRFUGMzc1F5S1UxU2lVZGhnVWd0U295SDdYcnpRUlQ0SUNBWlNGSzQ2aVBNYVVTRzdvWXBmcWlyRmFoOGFBVXdwMGM1aysrTHErVkhUMnUzb3dUUmgydVJFUUJOZ1ZpVkVvUlN6WlZvbE9vRzg4bEYvZ1F0Z0VEWXJOUkZibkFFRFpWKzNINnFCd2VxQUFiZ1J3YS8xSFB3cVRUR0p4RVU5Wmt2RFY1VXFHdWRURUZxOXB3NjB5SG1kUi85NmZQdWZ6QjF0a2NtdktDV3lnR1d1clJ0a0cwSUM5OHg5MTkyNXMvR3Z0OC8vOU43ajM5S3V6ZTJlM2FXVW1oRXpLUGZLVUtsbHhhVFlHNTFlRHcyZzBWR3pTZ1E4Q01TTUtESXJkWERZbStDdldYVzJXTGZqSHdHczkyZUw2NVc2Ym5lZCtHT1lQVE5HRGF1YVFRQVpKSUZoTkRGU0NtZUJVWjRMdjNPbEhZM2tlT1pkcHJ0NCs3bTB2dDZtWFVvdFV5cG1iQzFKd0NUdUViN1liaTVqNkUvREFHd25lUVFNekpEOUpUdDRSb0RYbXdsR2sxVGxwaUNyQ3R0Y1JKcUVTTEJVZXFLTWd5eW5SRnROS3FaU0NwMmVhTXk1eWZ6RG8yTS9OWC9USGxKYlFvRUZ0UUlPWVNzU3RQaE1ZT0xjRWZZYXVvTjJ2b1BYLzhPRnYwNXYvRlorN0cySkNFMUxLWUY3NHA0aVhWUUFxK0FIMkZCenR1QnFWaXAzc0wzSFVXSkJKTnFqVXdjT3Vva3d4aksxT3B1QVpleDdpQWRZSXU1U3IwS0JSU3Fia1VOL2tuVnB6UC9ubzRqUHUwdjdqd2FiWk1xL3VuRnBhMitqU1EwRDVXTGd6TFRRODQvMlovOVR2bkIzczd1Q3RNZXA5WnV1eVpZUzNaNXRJNUo2ZlVBRW5WaXplcW1JUlljV3FGMkdhbEhoOUxxRFlBMldnWW90QWhuUWhJMlFhbjhVanZRaW5nMlpJL2JiWkVGNk1yQjREWHU5SW5KQlJpSmd1ZXQvbDQ1ODEveHRqelZ6TGVRK3VkRENGYkxOaXcxK1NjSVJOVVFqY0FmcUdRdmRUdnZYdjlqLzRrdjVGMTZNdi9udnZINEdxVVhUSWlYa1hxS0xWb05FdGk5RWVnK2Fwc0RObWlWYnNKWlIxZWNKWXBUOFliRExWUmVoL1pSaWJWWXgxeld5U1VsWURocjJmRUtUbHVtR0R3dTVWU2ZYckZiSG9Zb3FER3dDZ3k5dHg1QW1LQXpnM09xcHZXNlBLRUhXajJsTWZINXVib05ITDkxZCtZbnRrLy9YenZrVDJGMVBiY2ZVdW5HVEFjQ1E1OEJxSlVBQXNKNW90ZTFVYkZwOU83SlJaYVFWbDNWS29pbEFDdGlsRDZRSUM2TGxSQk9zUGxnakJDcUdkTEZZbUt0RGlqUmhOS1N5d3JtR2VHSm03a0VIdTkxUFllNjc1bTkvMDl5aGhya0I5STRxS2pHYVVZR1VuS1lrUlpuQjgyMGFFWjU0RDk3d0hmeXp6K0hmZlEwKzlVZlkyMFRUSWpWRXBXOG5WL2xCOFpIQzRBWk9ZZkhEVXhxL3dTbHNENGhFQTVkR09HTVlITFJDSFFaTGdvMFdYNWFNU1dDSThCOFhEd2dEai9JVmE2cUdzdFV0SHpuTVphbGRjQ0ZZWXNJNitObVZrM3BabHNpbFRidzIxNnkyYmM1byt2NnI4dFdmM1R2NUhYenBJSFZYcWMwb3dTS21obXp2Wkw3aTVSRTlTVk93dUJYWjZWVjV4aTJHN2sxUmpzV0JRdHVQMUpVSnNCb0Vidm9JRCtrUVI3TllaY3YyVVhJZzUwVHpyVUtQcWwva3pwQnNiNURHRWpNbW9FWE9lN241a1hUaSsrZHVQVXZqRm96eWFCaGlMMlNnY25ITTFpZ0JwdHdEb0xrVzgyTnNYY1FIZmhPLy9tcjgzTFA1TGY4U0ovOEtuTkcwcVdsQmliaW5jaEd5K3JCYUVrdjlBY2xNQ3UrRGJyZllWbTI0bFpWcnk5eFRhalZIb2dEaE9wRnBMZTdaam0yY3V1QlFmN1BUVVQvc0kzcUlTQ3kwZDRvcVoyMHhobVpFNGNRSWNDVUNQRUdxYlFJb1VRSzJlNXpKVGNtbjkwQkwzSDN0enVYL3R2djROL2FYRjZoYlR5MHh0ZldHNG9Kc1JtWm0zN3lrcmhwZ24xelZNQWYyTzRVcnRjd0Q0K0xRVnhLWkZzRnJITlRuK0laMUlWZE1GYTBnbVpZU2JmbXJFMlVwbTJsRVVkK2FyOFVCQ0pYdUdVeUVEQ0xPQi9yK1hiVDhIWXUzdldGOG1KaGE1cXhiODZYQ0xNRzBlb1JnR2RuQXFrZWVVRXEwMEdMYzhPWFA0TzAvbm4vcGMvbm5Yc0IvK20vNTVMdVI5NmhwcVdSSDNJTjc2SjVRZ0dRanJUcFpFUnFWMjRFV2J5L0xYckxrRE1WTmwwUDEzcHdFK2laVXExWEVrSGpwc0JqVUdDSFAzTXlJa09USkhkSE1wNjRjS0NvMDJrMFlkdW9Wa0ljU001OWJPZFZRd3puN0FJUzlQcDNNSTJRdzA0akFvQzdqU0QvNXA5MkZuNXVjK3RwOEZjQWF0VVNwQ2FGbVVNYUU0RkF0WXBqNzFRMkFrczdWQmpoWVdRRThxU0dQeUlyaERIQXI3Mm5nQ0RFYWxjZFQ2WFlBZHFWNndpTkdXWkduQjhyMHhhSjBud1g3UXFQZTFaekFET3FCL1p4M2N2TmZteE52bTF2K3gzdVhuc0k3QURwR3NvSll0dU1JRTVZY2tNNHJvTWc5Q0dnYmpGSkN6K2NleEtrSCthOStrSTdkbisvNFlycm5sYmpsQlpqYkx5Zm1uSkJ6QnVSWk5sSzVWWG13emxQeVFJbGx0b2RaL3hlVEdZOERWSnRYRlBQQWVTeis2TXFzaDR1SU9OcWNZTjI3VlNtZkVhZ1daL0RFQWlvK29GNENpOFF3cXQzTm5GTGEzRm0vdEhxdWFVWjJQdXRGd21mU0dPU0pha1BjTTNIR2NkNzl6dTdjbDZiVi96MDY4aTdhdDBYTkV2Y0F1amdaZzh3UWpKQkFnQlZtN01VRWFWVmREMVFsVTJ5ZVpWQkEzbUVEUVBUSzE5Mkg4R0M3SW1hbEJwclNFRE1uMjRVWkE3ZWNNeU9lYXRPUlBPZVozZzBtb1VWSjFURVNvUUhXa2VZcHZ4SnJyOW01Y2pSUE9LV2VrUHpHWUFFQmF2TXF6S3JEcTU5UVFpSndSdGZ6Qk55QUR0NkoyMTVNZDM4UmJuOFJEdC90L0pjbkZsaUVacktNUVc5cDRDMTlTRVJqdXdPamNRTU5sZTRBVk1rdHFxbW0zemV2aSs1RERTQXhUK2lRL0FaaEMyTlZXMXVKRWt6TGpUcjhHaWRWUWVpUmhNeTVTYzJweTQ5KzJ5Kzl1c3VkdG0rSWlCdW1hNXllMjIzOGVIY3FseXU5SlFRSnFHV2dCWVBvb1hicE41cEQ3Nko5R1ZqbXpKQ0xDVkNabjVJNGNHcjJaUXJ5QzRaS2FCQ1ZhQ2djckNtSmZFdm5RNDFHSk5pYWVYcDBLSHRTd3YyeFpVcWxyZkJkdzgyVURxczBWTUZHdWxWaGN3SHBoVFBCK2dGaVJnY3NJelBvZDlPaGQ4d3ZmMU8zOHFYOVdzdGREOHJnUnFhWDA1d0Z1L0ZoRlI4S2JUMzNJQ0swRFkwUzVjeXJqK0xpby95Qlg4TytmVGp4Yk56eFVuclNTL25FTTJuaG9JZXZ2aWYwMG80RlRhV0ZTaTZSaHdJaGdwVjMxYVREc0o2clRCaU5VaEFHRmRxSnltMlZxMWlsTll6OU9xejNUNEppV08rMmFNMHVVVEM3S29ncnh5NkRYTm00dUxXN09UOWFZTGtqTGpNamc5dk1GOUZ1cDNZUm5hY2xFcUxRTVBjRU1PNlpiUDdBWlBQOTdlSnZqWTU4aUphSTB5TDZucmxHUDBWdEhvS2xWZmFXN1NvS2lDd1FaZXVTQlR5YVY3RUJRQ3NaVVhWNWRUMklJSi9PWjYyR1lBQjFiQTVuQnY4Tk02dHNRQjdRTkxicDBNeUVjditaUXoxZm8vYkgybU4vM096L3V2N3FGMHpXS1hOdWlNR3BwT3ZNbHJNN2xNaldNdmpXMEdKQ1hHanBBS0syUWJuT1lPOGFIbmtIZitZZHVmMEJPbmc3My9nODNQWWkzUG9DSEhzcUxSd2lOR0t1ekp3N1ZXdHlyS1RnWmJxYkVmQ3JuNklBR0R5b2RNWDhvRThlTUNGTkJ4RDVtbFJndXN6SFpWU2U0UWFWUGtUWDVVUFZkd3FCVk0zTDFnY0tlUm5BbWF1UDdYVzdDNlBGSENDSGdaWjRmZHlzZDgxaTEzbldUaHBXU3RNVUpTWGw1L1diejh2YjcybVhmNjA1L0RGZW5DT2U1NXoxdVRBY3FSbVlUNUJiRGZTNllVVFZyZC83UXhkbm56dTRMWXBqc3lLQ2tjRmhpM0h0U2tiWFZCWWtZaFFaV1hKRzVxcGxLcTBrV1llWDc4VGJxUU5HbWVlSVAwUHpQekM2NmZlYkEzK3ZXMzFodndIaURDbUZLZWdQQnZ6aXJwcVdXTFQzMjVoSjFrSWd6Q1ZDQWpMV25zRGxKK2dqdjhjajRPQ3RPUDRNM1BJQ3V1V0ZPUDRVN0xzWnpjampXdTROR2t1RndyWm9xL2FwVHMxMmgzbGxybXoySURzSWFpMWFIcEZYRklyOUZra2tkc1owSmNab00zVGwxNnpKWTBoSXAxWEROcDNwMTI1SUtxZWZ1ZklFTXlpUjNHSlVaZEVtN0xidEpZeE83TzFrbEIxbThpTUZaU2VBR1QySW1GODRXWDlnc3ZHbmFmL3JSNGNmU2ZOem5PZVFlMXZTSWdvaDNMWExxR3BZOHJjQzBqR21CdngxeUNaWXY0TlFpbUE3S01aZGRXRnhQZ2t5SUwxaisvU3JMbUZjQXJhVXJLSEVJWm5adlVJdHRHYldrTHdINXBIUjg4ZlM0dmVQRjU2WHQ3NG1yMzFPdHdGR0Jub2dzU2J0N09TYW1LSkxPRE5HT29OeUNRdWdKbUdVQUtMY1kvMFVycDdDeC85UGJvSGxJM1RvWHB4NEJ0MzhYTno0TEJ5NkN3dUhuRmNBT1ZPNVFLSEVBWWg5YTJCQXNMWWlMMWRma1pBMmx1eG1pcHEvZUgvVGxoRVV3VUkvZ2ZWYjg1YmF4UFd2Sjh0Nm54YUFOSVZtVlp5VW9LUUpIak9BeTl2blJuT0pFcEt2ODNJQ0dzWjJwbFA5Nk9rbWNMVkVyZEdWYlVJaVprYVhLUkcvTXErK2RHL2pyYU1EdjBHSHptSnVpZnF5TWN5aW14cURuYTJXckozRllxWkc4Z3pEaE5tZnVZZTFBNmdGQ0p5VlE0Vi9PMXBOdExpT1pJOXFXMlpCTTZjMTQzTjNsWFVFZFF3TFRzVjNMY1NFM3FhR1V3TFFNeE5vS1djbXZCLzczdGN1UDZ2WitvWnUvWFA2YXlsM1ROUVRHczk1dkZJVVRaRHg3d2tFWWl5QzdtZk41U2JKaEtaQlN3QVNaMnhkNGZWMzQ5RjNnOEJ6aVpadjVpTlB4dkduMDQzUHhMR240ZUNUc0hRRHhieW9ETW5aK2dtbVBrVTBFN3A3aTFiYTBOd0dhcE1sTDFmTnFLaTBxTEQrYzVHbzJoeHBmQk9CaCtRNjlIN2NJMG5EaDA3Q2t0UXhVV0xPbHpmT3pvMUdEYmlrUkV6b21MYVpRTFNGNWt5YWc4WS8xN0dpbUpzZXMwUk1vT00wais3VmUxZGVnclUvSEIzK28vYlFaVzZYdUc4eTI2TUdBbElKUCtwWUZDZWFxbldpRFlZTXhzUmZVbzlYdnU1ZU9UMGFpMEJFVmF6NnlWcVBYeWZqMUtFVWRmMHd4U05HRGtEb2NWWmxaSm1GaW8rcUhoa1J5aE0zTmlrUjRabDU5MVY1OWZQeXhqejNBRGcxWUlia0oyNHJpclJCSkFOUmtXS0RaaWpXaUpFUkVnRUp4TWc5ZXVZTzh2U0RjYUxsNHpoME54KyttNDdjUXpmY2k0TjNZUDh0V0RvNnJRMHdrKzcyVUJiSmpWcXpOSGx2T09SM091TTRtaVZUWnJ2YVo2NXFIMGRnRHBLSWJ3SjlnWC94Qm1aS1RiTytlKzFiZnU1TEwyNWNTUFB6REZDZkY2bS9BZDJKZnZMa1BMa0xPMC9KVzhmNlBlRVI1STJOV3RBT2l5SmR6cUNXZ2NRWG00WGZIeDM4UXpxd2xkdDltS1N5Um1NY2V3dFVoQkg3TitIQWdBVWhHYkE5Mkc1c3BRYlFDaG1EWGt6VS9YQVRvajUrSW5JMHhXSTRHaUZ1aEVRV0d1Zzk3bWlFRDZkV3BBQkFwcDRBWUprekVYMHNMWHhvdkhCWHMvdGx1K3N2MmIxMmFITUhEV2ljUUExeWRsNWRWQkxlbFN5VG5UWFpvdlVISVdabVpEbXZTZFFTNUNIMW1hK2R3OW81ZXVTZFlLQkJIbzFvOFNnTzNZYURUOEtCTytqd0hUaDhGNVpPMFBKeHpCOUVxa3F2U3BERkhrcDI2RVFSMVVkWll1S3NLZGFhRVN0WXFTQ3p4b0lzNTVjRituaUhYU0NWUEhJbXNLMnZuMXJ1enQ3Sy9TMTcyN2VteWMyVDNadno3bEhxbDlCSmE1RXB1NEU1NmxjdjczTklSaytnQnNpRXpPbFl2L05QODdtWFkvVi9qNCsrUFMxUE1oYlF1K0xWT0lzS3pQb2xGQVNFREJCc1g3a25STG5UbDc3dVh0MG1GaWxuQzd4cUNZRU1OMkdORkFPSkRmREdKNjYrcGVta1RaM1duSmNIWjNNOUVvRVlUUUtCZG9oMktSK2VUSDdzYVY5MTU0VjM1ZFB2VFQwd0Fwb1JPSmNiZmNPR2QrR1ZjU3d0MW1URCtrbFJzdVRRclBSSkk1R0lRT1dTdHJJZTNuT2ZVZmJnTVpqQURYZzBuK1lQWWVrNDc3OEZ5eWZvd0MzWWR5UDIzVWhMeDdGd0NJdUhNVnBDTzQvLy8xNGNoRzJjempUa0tOanBMM09IeVJhMnJtRDdLbTlmeHRvWnJKM0tWeC9GMmhQOStzbko5dm5seVFSOVp6TXhrUFY1R3luc0Nvc0VEUGVTbEY4ZEZEMUZLTGZtYW9uUXBJL1N3bTgyaHorTStYSjdVdXVjaERKeGFQQkVlbHpWSTNKekRKVzEvS1ZYdnU1ZWZTNW9XTzJ4em9FQ1p3d3djREtLbHhnVkdwV0QwUmpRY3FCN0tJdUlGbHhEZFAybG1hQXJUY1ZJNEpiU2xlMXIvL20xLy91bGQ3Mm9mL2d0NllPLzNIL3F6ZGpjYk1iQXVBRWx5c3ljS3hWSmVxRTkvQkFDSzNzcVJ3YVhkUml6ZGd6RitFbXFCZEpWZ1F4bTdobFp2RUlHU3VDV01MZEVjL3N3ZHhBTEI3RndCUE1ITUg4SWkwY3hmNURtRDJCK1ArWVBvbDNDYUE3TlBObzV0SE5vNWtBTlVnTksraC9GMElseVVRUjM0SXc4UWIrSGJwZTdIVXkyMGUxU3Q0MmROZDVlb1ozVnZIa1ZXeGRwWndXN3E3eDFoYlpYOHZZS1RUYlI5NVJSVmtFQXBBYlVwaXlkWkxHUG9IeUpQMkU1eFBBaVFJZ0pQM3FodTFQUmRHS2lKdlVnL21HNjlTMVlYa2FmMWJEaEhVMnBjOEMxUmpHWXp6WksrWktnaWFrVkJQTThJR3hORi9qVG5TVVJOYlN6eG5VTUtFNWhJMEFqcythU1U1aWtFZE1ZWWhnL0JyYlNleHE0TzB6SWVuU20xRFo1OWZJbmNOZUwrTzVYNUx0ZlFaY2VvaysrbmovMSszVHVRZXoxUEFMYUJraXlKeFRPaFFZN295bjRMTVNQQittaHVrd0o1TmI4dGt5R0NQSm9IRk1ZTlVrNnp5YXY0aHQ3RzlqZEFKL2o3QmMyc1o3TUNaeUFCS1F4VW90bWhOUUNJMUNMWnNScFJHMkxsQ0FQclM3a00rY0pjbzkrajdnRGQ5enZjZCtobTFBLzRiNmo4aVRWOGtnQTdhS1hNSWFFaG9CRUdEWGxXd0p6Qm5NdXhibmRTY0hhQ3N4c2lHamZoaENrMFJYV2ZweGgvUUQwRHVMbGVzTDBodWJ3TzNscGtiT3V1cmxWaU9iSzZIYmJZWmMwSTZ5amhVWm16RTZZU3UzaFJxWHgzRFVnOW1jZzZ4WlRwcUhDc1dVMXcxbWlyWUI4VVRGRTBJRU1RdjljNkhGNGNRQXUwcXd1dnlvMHRuUm00elFBVEhaQURkMXdUN3JoKy9uei9oVWVmenMrK3B2NW9UZlQyamt3YUZ4U0kwbTQ1VGFnTVMrekFDamdZYnNLZ2FCQ3NmMGthWlVwS0pWbk1CcU1xSXlsWmNrazJiSXBMU1ZsTVRrQUtYOVUzSXdaWElBY01ZeHAyaVVDc05aU2loUDcvVDhBVUdxVFhjUkxFamdVVE1TVEdRRG5IQUUrWWh3WFkxVUd2SmthUTZEdUdSamF3UkJIMU5CSVZuUjY1aGI1RGVtR24wZzN6UGM1Y1FSWUFwaXRZMDdFbkxXOWE5bUJOUmloMXFsZmNEQXBnQmx0NEFpU05aSEpQNHpDRm1BOW4vTWVuclJwWXFVUjBkNFVVYmxwU0tQa3NCeTN3S2diVjdCUlI5ZklDNFRnNXRTbFI1bVowaWlsUkp3NTkwZ04zL0dGZE1jWHBzMkwvUGpiOE1uWDQ5RS95NnNyU0tBUjBJN0FRTzdCaXIwTzVvQUhVR2lBNUhBTU5IMVV1eVhiVUNDQzAyWStIUGFsOGNXbU4wRlFRa2s0ckxVZjBJS2dtVFlBTkRhYWd1NHNPNlB3VVZDK1JHSm1RajkxUnZGMGIrSHI4cnBpaitPY3ExUU9zZjVrOVN1WitJTGlnRXE0NHNBQVNtSGZVMnFSWDQ4alA0MmpTMzFmb0NLa09kYktzN1ZBQ21PVmxjMHFlSHU2NENzZDFwbm1lSHYwQVd5TC9adjA1UmtGZXJCMnJ4SGNYMzNaVXdOb1J6c0NJWlJkVjFIeElPdkp4R1RjK2tOd0Z3ZDBYNmdRUU1TRXpKeTRPWFA1aWQyOW5mbnhRaFppR21ZZ2Q4eE1TOGZvL3EvRC9WK0gxY2Z4OEIvajAyL01wOTZGYXhzRTBBaG9XaENCYzRuQVJTdVpDd0NibWJDUmhFQVlRVkJBbDVrVlhGWGtaaGR5VXZBMDZ6WUh5WXM5MmZoZ2t4YmJlUnFpTkJ6cFI0Y3U2NXBIcXc1OW1LQnRSdkNpRU5CanUwL29aSFZiaXUyOHFaZlFZMXJXVW91OXlXdnRKN0ZPSm00VC9kN28rRS94b2VXK1IwWW1FN2lhcUJVWkNveEdIQTFNT0lqZDRMM21VQk5TemJwTk5uYXVxNTRzMnhYSk1Da1pKVEFBcExmWDBQRE9KYTZ4VCtnRFc2WXhLeXdHRUlTRk5JTlE5cThFUlVWTU9YRmEzYml5dW4zbHhOd3RGaHdCZ0JJUmtIc3VDeXdIbjBUUCt6WjYzcmZ4eWlQODhGdngwSnY1OUx1eGZwVVlHQUdqUm02K216T1pNY0lXNFRVZHFraGl0NFdTVDRucEc0eXlnWU5vSUxZZkZXOUMydW15cXFRa1RxQjNFazhXRGpVaDlZTnRSVE8yY3JYVnh3SGRvQ3JVMWRlcXdWcFlseERyOGRzUkNoSEZQZitvekVjR0oxS05pZEZEclFiSXpHM092NVZ1K0hrNnRJOTdNTEpHbGxCZ0tZSndvRVN0VjN6RkRDK3VFd3p3Vi84TkVjQ3JkN003bFhYUVdoVlpRMDVTM29Ta3hqcE9jV0o1YndlNUJLdVpWYU8xTkkxYnhRNFB5SVVKQmplcDNkeTVkbkg5ekltRHR3ajl1cjZwRWFZaEVQY1p5RXpFaCs3Q0E5OUdEM3diMWsvaDhiZmpNMi9PcC80cXJaM2tTVThKR0lIU2lJR3lXWXNscnNFZ3c5b0xEckhDYU5iUUxFRyt0T0ZGVHhvTVlrSktwalYva2NsU1RrcWFUc1FGUGdWRzZIRFNNYURhYTAwSDJuODA3MU4xdUgzWFNPbytIMTZTR1pLMHhObHNyV3FISUJBeWpCYmxQRUZ5Sm1vVGZvTnYrRms2ZEdEU2NibDJPbFN2NXZ0Rm5nWUVia05PcmJDVmhSNkx5a0hRb2tacS9TeVBtRDVtbWNxNk41YVF1eExoZlJxeHhzS09ER1NyTExYL1RiK0NMK2xtNHVEalZCK25TbEh6MW04WmlkS2szejIzZXVvWnQ3MkF3VUNLR0tSamxXRGNnSmxLNmcvaS9iZlNNNzRSei9qR3RMT0s4eCtnUi8rTUgvOHpuUDhvYis0QW9CWm9FcVVHSUVBdUxKWjVvODI2QkVwQUxOQVNuRGtLaldNR3EyVUJhczFxZnFNdW8rd25qUzV1QUxFaEFOOFBvb0kzSXNNbUd1VmdxQm12em9MdXdzL01JT3V6bU9OcnlJdWZqVFRmNU9aZkZmTUNFek0zaFAvVkh2OUZITnpmZDV3VGw5dkdSdE1wSVpNMCtNZEZaZzlGaWdVdzBYTE9JYUI1dTBCZTRnQ2Vsa21KWFRIdG15MURSQkd4ZWsvVzFHbHBFRUZMaFlKY3RxRHZtcUpxUUxOdU1tNzBzSW9lZHl4eTR2V1FIdm44eWlsbHVBQ2VsUlFsbHRyNzR1QUpZTXE5QU1YOFFUenBDL0drTHlUK0w3anlhVDc1TG5yOEhmbnNlK25xdzlqcVFFQUxhZ21wRVVOaDNYTnJRQW9GeDNBVnZaa2tNWEhaZkJWQVhPMndCbzdCa3NSQWZRNXFHblZzdjRRWmdCNW13VjFobUYyRUdFeWk2cDdhS2hLMHJnT0hlQjk5eksxSnhLd0JNK2hYQ1NNbWJvQmZ4TEZmNFFNSHVPYzQwTXhwNngxbGdZRVM3QVFvSkM2cEd3aHpualFJUFcxQUZZMEFabTFxV2FvWkRkc2E5YTBLRnVrWDBRWlJhT3ZJVm9wc00xMU51VXBGTUhKUTNDalltWTFWUHdlZkxGSk8xSnk1K3JpSVN1K0FvdFNpSHRacmJVSXFOMG1pblBXcDlBMk9Qb1dPUGdYUCtkWTAyY1NsVC9HcDkrQ0pkK1A4ZzFoOWpMY21LSkdoQlRVamlmWTVBNWxFV3dIenFuQm1xMzRVdVExNjhiamdYTGtnZ3E1TXpDNERVMkk4RFNiZ0lQZFFBQ0JBYXBnbFdsa1lYVStMUVZ0cTZHRG9NcHJZYTNCMWl3WU1Ua3hvaUg2Qmp2OVBIRGlRZTdsQkxBQm1TbkozUU5KNUtRUzZrdTliVzYyNFV1RlB3Y1FXaFVNN3N3cldES0RseUszMFlvTFE3VVJXWm13YzJ5WmhXUTZ4YmMwM2hVNHBJWFNRQktvMGpmRkFKamltVEpvZ3ZIK2llbUJ0VkxnNlJxazl2M2FHbVJPViszRllJd3ZrYjR2V1dCU2kzUloxOVVZbXpIMTU3QWUxUzdqcHVYVFRjL0dDNzhUZUpxNCtqTk4vVGFmZnkrY2Y1TlZIMHRZbStySlFCVFRnOHVqRk1yaVJIbkFHWmpRbUtRbHpaSWlsN1ZaWHJuaU54WUVnWExlR01vejBUR0JZRkdldjNFWDFXMlZLMFUwcTZ5OG00bjF3TTZ5c05rS2dKT1V2QjlPUWN6MnNFSlVJMlJEL2ZIUGovMHI3RC9aOVZtU1FITVF0MWdNV2llZXJmTVh2NUNEelVnOW5TaGlzZEhibXdlRFdRa01RcXpkRnl6dUxHOW9KTllXS0s2cy9jS3lZUTlpTm90U29JVzJ2RUM1S2s4U2I3bHJYRFY4U3UyV0ZROVZPMHY5RjA0d3ZYenUvTmRsY0dpK1hOY1NxQjhzVy9kUkt0RlZIZ2dGT095RWhsYWZPWkRCTHRUQmV3b2xuMG9sbjRubi9oUG9KMWsvaTRzZjQ3QWZvd2dmNDhxZXdkaG83TzdsSEt2N1Fsa1d1NVBWZWFXZ09WcFhWaFozVVlMS2UrVmdZSEVqRXJ5VndXUXNqM2kxZ3h5MFhSVDJZZmJJa3B5TEpoeTZuV3VodWdMRDBSeDF6Z3ZiLzFHWWpsSmJUR3VhZm9STy9qUU1IY3M5bEo1V09HTEd2MkNRclBCVGhERDFVOVJ0YXJCYUlxZ1U1cXRacDBBcXJLZlpWT0l5c1dvRUZCNDhEaU1vaXhHcFF0VGEwWDUzRlJyQmVYV2h4aHNDckl3ZFdQZXlxS3JRNEx3TzBUYk82ZWVYeStvV2xvOHZNbkNqQmNoMExpS1E1bTdsc1JTeEprZXAyUUF4UWFwbVpjcFpkV3lCT0xRN2RoVU4zNGQ2dkFFQjdHN3grbWk1OUFoYytqRXNmejFjK2pmWFRhV3VWOTNLR2JLWkdBaVdBR2trUEsrTUtqbDJJdFU2SWMxamppYnh4K0FjR1F0ZnhTZkVxZHR3VTFJQ3dBVFpLbWdoRW1iSkZ5eVJMY2V6YW8rWnFHcCtqMGFNMDl4alBQZFNNdjdNN2UxL2U2WWVQb0xOd1FRQ2FoSjlKTi8wbTloM2lQbHVrQ2hSWVVxYU9xNWdjaUJkQlJYOG9YNnJreURVWXhVRW1rRmFxTFpZcHZYcldqTXF0V3UxTzB4dXJ4bVBSN0JnYnA2eTl5dVZuWWd4d0RGMUNJeUxTNitqTDBJTDUwQ3BQZ2JQS0x4cHFkL2EyTHErZHZmM29YU0ZHa2NxU2RBanlGZlZCOEhSajhuVkFCUU16QTVKeWlNVTRHSVRSTW83ZWg2UDMwVk8rR2tEcWQ3RjFDU3VQNC9LbmNmVmhYSDZJVng3TEcrZlQxbVhhbVpUaW1UUnhLbGJDS2VrVzYyam9pakVlTzAwREljYXE5ZGVkVDErbWNUTnlBWlRIRHllaFJNY2tNT2Nlc2dVSFRWdmNsNUE1STYxZ3RKS2FjMmwwS3MyZm9yblRORHFIMFFxYVBhSVdlU1BSU1pxN2ozY0M2cHVqZ3BGQWFETC9GSjM0M1hUZ2NPNTZKa3FDcWF4d2JmRk83ZGkyTEVhVy9hd3l2dDRPZ2NRSHZCV2dvOEcvS25qUzJwcXdTc2NpcmJWWlFzaTJZQ3pCVkhNUVQyUEt4eFJEcjhSQWhZdEFyaGFub2U4V0ZUcW9xUHorQkxXM0dXcVdWMG8weVh2bjFrNlZPZlIyanBVWEtnN015Q2U4MGFMTFgvSzlaRjdXM05KL21jcXpub2dZM0l0TkZqR25PZDUzQysyN2hXNzdYREhPdmtzN3E5aTRnUFdUV0hrY2E0L2oya21zbitiTlMzbG5sWFpXMDJRWGZiYml6MUNZeWUxYjM4djJUNG9XSm1IVWdOSVpKdE55YVZmcU5qaXdZSEs1UllsRW5RUWVwWDcrQUMwZWFROGMvL2pWVXc5dmJwNXI1czQxNlRJMWw2aGRwN1NEMUJNbHBqYWpaY3loWHdBMWhMNU41OXM1VE9EYk9VeWhsQUJ1Q0QvUjN2aTd0Tzl3N2pMc3lXUkJBOEluNjkzUFNwK0FWUkc2SEQvSTMwRHEvQ0dxTy9pUkJpeVUxS0VjME5Kc1kvQkRDWFZ1NDg2c3hoRFdEa2x6azRFR1NKZXVQQUJGWEJnZ2J0MmcweVJKWERHKzdLTUJuWkY0NnVwajhEbW01QlI0Q1hGQXYvVXdSQzVDalUreUU1aDE2WkNzZ2lLRloxS0FrT1V6YlpFbnBBWkxSN0YwRk1mdmo1VFJaQ3Z0YmRMT0ZXeGR3ZVlGMnJpQzNTdll2SUN0eTloZHlWdFhlV2NUazIzMDI5eHRVNzlIZVVMOUJMMCtxRFNZRUJ0bm1qUkp5SlQvRXRPSTA1aWJFZG9GR2kvU2FCRnorM2poRU9ZUFkra1lsbzd6d21Ic3U1bjJIVzhXYjBqekJ5ZnQvSS85eGxjL05QbllpT2M0OXlPZ0Jack0rNURCeEphb0VQVmwwbzZmb0pIa1NjUnFsVlR1cjVhQUgwc24vakR0UDV5N3ZqeG9pWnhvNzRobzRBcUtzaHcyUU9EZ0phSUlycTkrNzYxTjF6SURhSXNLQjNpaHRXL2RuWU9ORlFMRGRPYXZCM3FvWVUyNGJBeDFZckVUdTlwQmZnOGplbzQwbTJkdHFvbEhreXlZTnFma3ljSEpCVHlGRjQ1TjBmVTk5NHZaa1FpU2ZlbU45Ui8xSG0zd2hvSUVLTkU5N0hzcmJhV3lobG9vcDVRd1dzUm9FVXMzOEpFNG4xTkszUzc2UGVROWRCTjBPK2kyMGUyZzIwSGVRNytMZm8rNlBYQkc3cEVuWWlDeWE1cW9hZEhPb3gyam1VT2FRek9tZG9IYUJXckgzTTVSTTBZN0Y1VTdrTlBLMnRtTnE2Y1BVbW9vbDRmYmNxWk1sS09acWQ0emM4dDhqa2NkTlkwdWh4TW9Bd0FuMEk4Mk4vMEJMUi9KWFFkS3N5NlVNWmFEYm9KUnFTQUhLdlVlZW5qdlJ6aWNRUk1MTVRtOU5lSjBNQkV6R0VyRWRReUxFOUV3bkY3ckJOcHRXMzBVbVQzcytDSDNDNHBVLzIwdmM4Z1NXOHJxYXB0R0Y5Zk9kUDJrYlVaWlZnTE42K296Qjd4eCtNYXhORkJvTTJuOElzbFI0c0grWTRFMHZSV1A5V0ZLbFNXUXh3RGxYTVNvRnNGaFZvQVNOWE9zWmpvZE9Ma21FL1UzTTk4N3ZRek92VFNMZzRHQmtITk83ZWpTMnRtcjZ5dno0N2tPakVSNnNYcWNyUXhZb2pxMXpGZWIwUWFORHViZGt2a1dWeUdtSDI1dStpUGFkNWk3WGpiK2N6VkdXQVB6bGV6QXBZWTE4YnhZekVjSVplTXRLRmVEOHJEdjFhTDZLb3dpQkZrSEtXbzR5a25ub3ZwY0ZhN21QVkdqSE9ieWpwSnU3NHBqV0VudUw3WmJZVXFyWnFoYzV0dzI3Y3JXcGZYdDFjUExOMVRzMGhRaGcrZ0dPS0NiVDFlQ0dWTGlzUUR3Vk4wbE15QWUydG9WSVpWV2o2WXFTVld2eUdwNjVsenZvUEkxU01aUThuNkVNcW5wWjRtU2c2aE9CQUlsNkwxSTFNa0ZBTSt1bmRycmRoZkc4M2FqQmluMXdtWUk2NVZuNWhaMExhVVZwb1BTSEdBQ1VxSWZTcmU4aVpZT2NkZVZ5U0s1VmRLcnF4Z3V4K0RkN0xzd09PWVZzeFFFUDYzU21EWGI0SGVIcG1EQnNmTVdreHJETnllTHhQZWt1cTF4UGdoeENGQlRtWWVpS0tzRFc5UVFZQXJja1ArRkZqMGNxMjQwVGJ1K3ZYcGg3WXlleSs1cEF6RVZhY2V1ZlBCMEx0MzE2TERHdDlFV3lKSSsveUE4bTZjVFdRZldSM0VJSUltWDdodWtMaTNGS3N0aVcybW1OcUFHbENnMVJBMVN3OVFRSmFSRTFCQ1Z2dzJvb2RRQUNkU1dLeWVsQVlSRVZQNVRHR0lDSTdSK2lSSUJPTDk2Q2lrRHBHc1lwZSttWGxWWk1nTk00TzJNazdsRjVyNW55c3hJUDVodWVqTXRIZUt1ZDFUaEFIZ1ZLTlFnWFV4Q2RVQnFxckUvQ1F6RGU1VC9VT01VdjljcVJDMEpnbElWVjVyRWh4SGpKNGxWWG5tN2JuVm9YVWlXV3JnbWg5VGN6YjdFRXNxV09OYTlOUjduUEpzRFd6ZUEzT3dTcGQyOW5mT3JwMUFCcExyWVFFQ1YxaU5mTkIxOHl0L3BNc3o2TVZNWmhoM3E3YVdxNFVENmNPaHcreUNWcEdsQkFJbXM1aXgyUUNvTzZKb0krZEZSVktWVVU0NDBlaHQ0Mm9Jam9jSUNFSUF6VngrbmVEMVpPTXU2ZUFoM0NTRnd4K2sweHN5bGQ1cCtzTDNwLzZUbGc5eDFIQ1F5RUtHQ1oxaU91SjRKNjVjaGZSNzhNdk04YnhNNHJkUkdPZ3lxZ3Z5SmcxaGxnQkJ1YXF6VEw0TjNhcGpTQnJUUVphdmFPazN5aXBPR3cycHJHcnBhbzZ1REhnSXBVZytBY3U3T3I1MXllalZXelZwYVJqVU9ORzRGSVhwaVFNRmg3RlFOUDlYZ0RqUnUralZiYnFMc0FDZnlnNEZhYkZKVklCUGthbmJ1ZzlUc1ZET3FOQUUvVjFjR0l3dUppTUhuMTA0MTFPZ1dhM08zZUxKNXAyb0hPRGVlcHg0OTJ2OHlPdkVYV0RxYys4NXViU1JSSkx6OG82MGVteFJxV1lhRXdqSFhtb3RSS1VxWHdGYTR5V05RQkNmVVp4VWJNV2xIUHpWd01RUmtXUHh3M1VmN1lrRXpnajd2aS95emkwQ1RyYWlta2hzcnNEcllrUlFsNVl0WmNGNzZLMFRwek1vVE1yeUVzS0JkTW42Q3IybWVZZC9MQ3JKR1lOdmtXY25NMEpSQ0hrdWFQZ1ZaZU5vZUphVXhMb3FZb0ltdVhtS2t5dUY2aUtBWWZSSFZFMFdBcUhrTXBzRHVmSUYvb3JTMXUzRnAvWHpiak9SQ0lqT0dLUmp4cUVnZzRETFN6cmo5ajZOYi9weVdEbkhmK2VNZzlBK0Z6OVA4d0czYXBGaTNqR3hsdzh0QUc1S1ZVMW5ERXZaZEZtSllWSjRSSnJiRWhCUmJlQlJvVU9rSEh6TFUwc3JQWkRza1NJNHpEd0tzT1Z5TE1MSWIycXQycVNUNTk4NlBuVzBiaTVqQkRiWG5WazR4T0ZFcWtLM2o2dEd4eGhpbzN4RlZlejZROUVrYnhLWVRJeEhrbTArbTFFckNjcFNBUTRoNGN4MG81R0R0aTVsWU5RcXhHYm9lS3puT1lIeDdyMXJHOUV1WENhd0R4UUNqUjNrbzZ1WlZlU1prc052aEpnTjFzUEo1akh3NmovNTl1dVd2YU9FUTV3Nkp5Q2l5anFBaVo1U1JrK2V0RjcxUkUybVh4SThKUitzaDA5eHBrU3F6RkU2a01neFBpWFRsVkc0WFUwSXJQOFVRYmRFblNIaHE5Z0hhQkxFVno2dEpGbmdQdmg1eGJCanBvREl0bzFtUVp1YTJHVjFjUDdjNzJVMHBZWmJXQjh0aDhZY0IvU0Z6OW5PSGJqQmw4YVRCRHhvelp3aElCU0ViMlVnRk1LQkV2VjNHckpGQ1BGTnZLQ3JrK1VxRUFxY2ZQdlRlS2l5WXFUQUFYTDUyWVhOdk0xR2pMcWpiTEdwSE40QmlvRHdPNHdxUFB0VFA3K08rZDIyVEhVbG1kc0ZISytjczAzQko5QTEyRFcva29LQVlzcVJhdnF1bFhZL3VSYVR2YTRxSHkreTF6Z3U1SE1VVlpEb0k3UFpLd3krVVdpTlVwV0h5QVZTZHdkZHIwVlIwV1FFblZJTUJibE83dm5WMVpmTVNsRlJkVFI2ZUhCcC9Edmt4QllxVGVvaUlKZklVaTRPczFJOE1OdWQ1cE5sU1NKT2tvZVR0UVBMek1IUXdDSVAxTWNwSW5GMmlSQzBCZlIrMlN5aFJwNjg4MGZVVG9zUitvak5PS242T1hBQW9kMHd0MTRFT3pJZ3NsbHE4WTQzQnBjYVBvbU5BdkpsRGFxSTBSbGZWa3dodUJRRFVmWUxOY3hnRXNRYXdsNG12UmpodlZHaTdUMHZMMkVFYUREUXI0azRkVnhzWnpJQWlYQVgzc0dPbmxoSFZDWmhUMDJ6dVhydTRlc2FQbTdaK3pLSXYyR3BsL2F4bVZ5TjBSSmFwclJvQjRLWi9yZTFDYllua0dnS3VUbmU3MTJSaTJHeU5ZNUg3eHV5aWYwQWhBUXBoRVUwQW5MbjZ1TnlzUmxlZ0pERm1hMWJhaVpXS21LSDNjbk93cDFBSXNQOUF6QnIrdE04Rys2RDhsMzhHT083UzB5SE5SMVcvcFpoMEZsVnBJdGxrMk0xQ3RyeUxiaDRGcGwzMUVKREtmWVJ0dGRjWjAyazQ2ajQ2bGg2bXBFNUYvMkVqMHM2WlFWdHRENG5TcE44cmRiQUVxRmkrbXZVSEl3NzFYMFdMeGRQaExuU1k1ZGFNeFAxWDhlQTROVVhBSGRLRFVMSlhMVmQyNDZqZ2YrYUxCN29UbUswQlUzNnhzR0xlWGtZL3QvSkVrMUs5RGxOTXpTS2huaEVhZjF5SGI1Mk14RmJNUFMxb0U5UzB1Q0xBTGpHei9TblRERmFBTlVTRnVwZXRsbTJuTVNlV3g4aEErdW1zV3pSWmhXQTljbHYxUTFnaFkyaEpYUUdhckIzNDFjUlRhL3dxcXhpZ05YT1FMZy9YaDlxLzdyOVJ3QlRZSndMUTk5M0p5NDlqOExJd1d4eVVnOW43VUdIR0FVNUhGa3pKYXFURGdrWkh0MS9kU1d4eGhZWkREYk1VbTlybzBWcGNQZzVLMnhoMlhHaHNnL0FVanJKdGZOSmNsc0VwcGI3dkwxNDcxN2FqcUUyVzdaRkNKSWV0a014RG9Ya2dWekxzcG9ZQ21yTDZGc0RlVDVYYnNiSGNZczZ3czdJTG9WZlZUOW9lVkt0bDdiYVFVMmxpSVhsTVFSek0yclRzdmgwbURiRGsrNUlZMmo3VkVHYTJZbmVHc25acFVOVFFZbXprcU0vcHhzVk1BMkhqMlUwcW5TMFhCNU1JUXUyUmRCOXdZWmpzUHowejRIY3dUVUJMc3NnSVJhMUZDaUoxd1hQVXgyZnNzUlVGVlN4WGZhcGcwL0gwNFl6MWtSYW1yTm5sZVJRNXp0bFpyT052N3F5dmJGeHFVaVAzUjRxcEJUbkphaThXRXhTR09GWUE2b0VxVnBLTEVnWlk1cTRDQmlQRFZnUDhPRDJXVkZwT1hIRlFxVzBOdVdXUnZRSUdpYVJwcU93Z3RJQjBMbUY3N0ZpWlBLVFhZamNSODdpYU1pNzNHaXZxbHpvL2hXdGlnbHBxcnVPL0Rnb1ZpakQzOCtPRng2OThhbmV5cllHb2hEWmQ5aWVUalF1ZFJUWXN3YUdtRElqOTFQQlRYR1FJL0UxL09ReklNWmlFV1Fad0E0c0FVUk1jL290T2lLa3Y0MmdjRGhBUENQTDB4ZElNOENPWFBuVnA3ZHdvald1SERLKzRvcTBlelNYS21ocW5oUlZ5QVlZR2xvcFNteWRrRU5VZzlxL21DdFpjTGI5NGhXUnh6ZHJ1NnVBZ0lpUzlSWWd1VklWaEpNSVpHYVhuV1ZmMWtTU3pHQXIvMk9nYW51cnpRb3hrM3dzZ3l1RndIWWpKeFpKRVUrS1VLekRBbVhsK3ZIQnE1ZUUvKzlnZkpFcDk3bHpkR3NwTEpxVG82UFNxVXpxQ2hCbHFIVlh1N0tKUWw1OGxxQ2xWVndPYUw4V1lFRXg0eGlseDJFQlZGVWpJZjdKb3dHRWVvVTZCclJ6OStyLytoYTd2RWxVZ0JVaStaQUZVSWdockw5ZHZVS2Rtd3lhUklCd25KWGdYelJBTlMrd3k0NlBwbjZjbEV6Q0h4SXlrblczc01NcjFjTFdFRkxzSGlGTE41MkY0eHBLZ09hdkdCZ0J4ajBrOUdKZmRzaVJpRldsbFBVNFNWdktQa2Fib3JzUFJpVExuT1ZyNCtULzc0VWN1Zm1yVWppZTVreEFEbUpXeGJsVXVCUTVKcTVzUnBoekE4M1JLVnM4TGR1dVlKVUE5elAvT0dpVDZ5WFNkN1dFZ1dFOVY0eElxNjFhR2ZGK0FKY1RCb3NvaEdibEo3ZXYvNXBmZS9kQ2ZMYy92NnpsSFBYc3FHM1p3V05PS3lUSm1jbDlVUkdUM0NNOEtnOGFNNWFsSW9OQkdVUUtHTWxSV0RIelNnRitsU3hsY01OcWgzK29kUnB1TldGTmdBeUltY2xWQkZiVmNBNklhaGJwRVNGWm93S0ovcittQ3E5RmFoVHFNVWx3TnA1K1lPVGVwM2RpNTluMi8rYzJmT2YreGNUdGk2UDRFTjJ0TGZLQnV6N0Jkd2RNR0doalRMU0Vhcnl5V0JwT3d0SHUyMnd4ZVZzNkdZUWZTTklsN1hSdUxZQTNGTnEvUHpxWTh2NjM4SUNiM2ZaOVNhbFA3ZSsvOXBaOTc2dzh1emkxN2p5VElnR2QwZWF6RWpJZ3V2aWdYLzFTZ3dQVldFVk1sVmJhSFdLenBSR0Q1VmhWTmNwd0hGSVV1a3AzUE1hRHF1L0pkMHU5ck1CMG9LNFF2eHBRcWFmRHZ3SVdMb2dSd1JhRmtBbUNGRXQ5cUJ0T2FtWHY1c3RwSXlrRy8zbUx5SXBWQmpNeDVZYng0ZGVQaXYveXQxL3o1Sjk3UXBDYWwxUGVkMVpTMnVBTldzaUE3Y0lwT1lxL0dTMFk5bDBQSDB4NlJVUU1CRGQ1Y1Y4TGh2Ym1mMmJjbWhLRTNPbEJOR0VHaXZnR0IzaGhQeFUybHlSZUx2TXlaT2JkdHU3R3o5bC9mL1AwLzg5Yi9ORGVhZDJWemdOY0IxZmE3aG1RYlZQR2gzQkdYOUJPbVgxVWZDQllMUUNHYkNOQkdhdG1lTEtwckcvT2hxYUVlZzhDdmZLYnlpQ1Q0ajNKY0FURWZOU3FIWndqOWIwTTNzbnZDR1JMQlFxS2FPRUhDR00vY25oeG1kQ29CVVkwTXFLWnNVaU1HTjZucHFkdnJkcjdndmk5NzdVdSsrL2FqZHdQb2M3bUVOU1RDMW13TDIyemlOVEZjYmRmWGJ6UmNHQ1N6SzRxWUhHNmp0MHdKMVgveXc4SkUxVEhUSTBBRHE4SndtTmVhbk94eHpUR1ZjODVFS2FVRTRKMmZlc3V2dk8zSEg3MzRxZjF6QjNydU05dWRoUUdESEo0OXY3NTQ4Q09EZEdOR0hHRHF0Tmp0Q1dibmI4d3A5RnNQRlJ6YVNSVTBhRnF0QStpTzBBQWdyM3pkdlJwU1MvaE80WUlFSmRqbEZSMkFQb3N3MUI3ZFp6MjkwVnN6QmFkMlZsUk9GTFYwdlZtaTlMVDNhKzNpNkx5VUVoRm9iV3ZsNE9MaEwzL2c3MzM1Yzc3eHhvTzNBY2c1Wjg2SkNQSndIam5kNkpjQ0QxYWl5QnNiWHgrQkVSbHcwemRyamw1eFBUYUU3aW4zcUF4NkNuUllIUjNlTXluakJDU2JPakVqTTNQYnlNMWgzLy9ZdTM3M1BULy92b2ZmMFRidC9HaSt5NzJON2M2b0dVM1krRko3ZkdDQ0pSWDBGUUt6UHcwYVljVHFocG82TUJsc2x4eWlScVJnUWhaNzlVUXpjWU0yOVJtVVlpRThkK1dWcjd1SEZWNGc2QnZZOFdScVNqMVUvMUMvS3JGVUdxMnlITWNMaTErT1l6V2J3bGtNbEVvZVcwMUYrcEU4aG9WWG9wUzUzK28yRGkvZDhNSzdYdjdGei96cVo5NytPVVdpT2VmTVBTRkpoNTRsUUNrc2k0cllOa2dMSnBIbCtlRlNKOVoyaGo1TVlXQWc5dGdZMjE5Z2dNejFqc1lvSlZSWUpCcTJ6RnUvOUJoaGdhZE1LUkRIREc2VDNCQnRmWHZscnovekYyLzk4TzkvNkltLzd2dHVlVzZaeTcxLzFJaWhoaHZzQzFCWFl4VkFwUTk5SS9GZGxWYkhCZU96eWpkZ3B3UWVRaUZVaFFGM3J6aDRwSFA0UHZoQitaYVpYdkc2ZTB4SUVYdUwxT0tRbFFUQ0wwUFFHcGpwekcvOHA4cDVGUGFybmRLc014Z1pBd2lOa2Qrb3FzczdEYkFNU3RTa1p0SlB0blkyNXNielQ3bmxHUys2NXhVdmZQTExTbDVVVHU5WjdoUk5sTnkxcHFJNmFiUlNFM0QxVkJXL3hvUjQrc0F1RmRYVWJiVFBpSUMvS0Q2bWtUb1loNTRkZDRob3dtWnJHa1RVcEtiOHZ0ZnRmUHpNQjkvNXlUOTV6NmYvL096cUUwMUtDNk1sQW5ydWRXb2xjaENMb2dMRW5MaitUUTZ0YThWcHBjV2ZwUHl0SEorb05obGJkVlVCMXRadmdsQ3Ywd2cwSUpyY0ZzUi9YL0dEOTFTUFNDMUg2YStDQkNIbU9TdGhmQmQ5SlMxVkxVOEZ5Y0RvbEcrUWNmdFpoRDhnSnU3KzljQkRWUDhVSG1JQUpFb2czdTEyZGllNysrWU8zSFBqMHgrNDgvT2ZjOGVMN3p4eDM5eklIOWJiOVoxeFFRR0E1Q2tkUkpFRzI1TnM0UWdhMFZqOGdpd2ZDSElPSUZoYkZUdmNHQnQxeElBSEUzTTdYVXZtUkUxSjdzdHJaZlB5cDg5OTlNR0gzL25CSjk3OXhLV0hkeWM3QzZPRjhXZ3VnM1B1MVFlTC9NWFJUS3FDKyt4cGRaMWFWU2hjUlkrb2t0cE0yRzZYNzlLWjloT2p5elBTeWowMExnZWdOc0hXQitsbzBiUHBGYSs3cHh3NXVIbEppRVdCc1hpNkkwUUlLNThsRHN4ODZXSEJzbjJaSlZqRlZKaHhYaXZMK3l4UTQzSFQ3SWVRa0lpbzc3dWR5WGFYdThYNTVac1BQZWtwTnovcjZiYzljTStKcDk5MDZQYjU4VUljSStkY25oWkt1dEhieStoQVhJandERkNsV0JiRDFqNE1BZnJPUDJxT1licTE0bFVac2Y1dmVZNVdVWHRLYWREWlhObTgvTVRsUno1eDVnTWZQL1hndytjK2Z1bmErVWsvbVd2bTV0bzVvc1RJY3RjU05TUmp3VHN3d2xBUVk1VVRETEJSa3duNUx2aTNvNGNjYmxVQ3ovalJFZHV4bE1MWFF4THF5bVF3VEFnYVhKMVpJZ0RjZ0NyY21uSXV0OWRLNTZHN2c2RFNRWFlZVFdRb3ltbVNSZUhTbGRTdnExZ2Y3VXkrNStFd3pxdVhXVFFFbXJMM014RlJSdDdyZHJ1OHg1a1h4c3NuRHR4Nnh3MzMzblhzcVhlZXVPK1dJMCs2WWYrSmhmSFNrR0FHYzNta2dNdlY4bHR2czBhTU1GSThud0hNdmdzYXVRa0pxQWRwTVZGS05MVDFjdGpLNXVWTDYrY2V1L2pRSXhjKy91aWxUNSsrOHRpVmF4Y20vVjZUbWxFek4ycEdJT0tjc3o3WGcvVjVLQzVicW9SZHloamRwNmdzZUtVMmxXWjRWaE5nZURwdGdNYkMrQW54aS9vMTRMWUtuaUVmbW4ydW1iR1g0YVdzbzFmOFlLa0JCdDZzL0F6clR1VXdXTDdwdHJKTytEM2V5ZnBnTmpDaUJBZlJhNXBKZ3Q2RzBHUTVDeldDQTF3bkVIQlVoTk1jVVlwU3VWa0lvOC9kWHJlMzErOWx6bTFxbCtmM0hkMS80c1pEdDV3NGVOc3RoKys4NmREdHgvYWRPTFI4dy9MOC92SC9yN0JyYTY3Y09NN2RPT1JlSk1lT1ZXWC8vMStWaDFTcUlqL0lsYmhVSzFuVzdtcVg1T2s4VEgrWEhvREtrWlk4QkFZemZmMjZwMmNBNEpGVnYvUHhkWitLT3pqb0FnamkrNUpXMGlOKy8vUHA2NisvZlByNXA0OC8vdjNudi8zdzA5OSsrUEQ5RHgrKy85OS8vdjJmSHo5OGVmcGNkYjhkdHpjUGJ4OGYzaHg1M085VmNjZnF5K2hjRlN6UDZMZ1djVDNMZFlOWkp4RGFMRG9GdGNaOUxxb1VsQnQxWHh3WEphc2R0K2hFL3crZWxwcVM0RkZrcWFoNFFPaFlUWWlOa01PV3hoQUc1QmpBQ1hxV1FLSnRiRzZFQnBteS91NDRKenJNY1kxTFlKUUp3d0xFZENXdlFxYkhVTWxjQWwvQWU2OTc1RDBpTS9MTjQ3dDNqKzhqbzZLZVg1NS8rUERmMy8valAxL3VMNUh4Y0R5OGUzei9iKy8vOU1kdi92emRILzc2NTIvKzh0MjNmL251MjcvKzZacy8vL3NmdnZ2MjdaL2V2L25tL2R0djNqOSsrM2g3ODNCN2ZIeDR0SFQ4OGo0a2ZWN3V6MDh2VHkvMzV5OVB2MzM2K3V2bnI1OS8rL0xyaDQ4Ly92THA1MTgrZi9qeDEzLzg5UEhIbno3KzQrZVBQLzM2Mjg4ZnYvenJ5OU52cTVoN094NXV4OFBqOGZqMi9SOGo4bDczaXJyWC9kNVBuanRoUnBncW9OdlZqREdLb1dkSWQ5aEpNY2RnckVMalVuSzlLVlRBandUUFRIL0Q0MHpPT213LzM3blA0Um5OU3FhZ3NTa0RndGQ2TWx6aXdKNnBYdmdVS2ZCZEE3RUp0alJ1Mk9UalRESnQyR1RzSnlXR0xMbm5kR0lRUHg1eGEwdUpZbmNkYUpoUjFZM2VtWnNBTXFycUpmSCtrK040RTIvZjNONHhPYnRYL2ZQVFR4OSsvZkcvL3VjLzd2ZCtLL0dSUitidDRYaDRmSHg4YzN2Mzl2SGQ0KzN0bTRjM2J4L2VQejQ4UHQ0ZUgyNlBEN2MzdCtOMk94NWdNZlY4ZjNxNXZ6eS9QRCsvUEQzZHYzNTkvdnIwL09YcDVlbkw4K2ZQWHo4L1BYOTllWGw2dmovZjZ4NVZlVVRtY2N2YjdiamRqdHZEOGZENDlvL1E0dHBiVlMvM3NZWEJZQUVjYmdwcHFLWllUQkJsYW4zMTQ1RlZBWUNvcGh0RGVqUXQ5bGtKdUsrb2theFRPMzY1ZERteXFFbFBlYWFnZFJ6bk9CN21RdWFHRVZjYzUyd0ZCOGV0NHhXYmJHdjhNckJlRnRaT05NTEIrbDZRSFAydCtiNllGaWZ2MGNzNW1xaWVRZlgwTlR5RTg0dHpVdlZTc1I3elNoeGFpUHN1M3lHYU45b3NTLzN0NjZkUFgvNFZVZmY3dmFydVBkMTBNTFowQTZyTVduUFpJeUpXR2VlV3grM3g3YnQ0MTNkN1lKZkdTcXJ1VlZIUGdYeFRGTzlRR0toUTVWYVdjMlZWOE1WYlVJQkxhc2N4TzFqcWJheEIwZ3laVW1SZ1p3QzhBQWNENlZuWnk0aWcvcWtyb09HU09JVHYxb25ZanVlU3d4TGRFdUxCMk5uY3FHWG1oMDhCYUVSTE1BSUJMQlBkSFNBVU41U3k3eTdEcU5BYXMxSnNYMGdQdCtHNVJMVjlUSVhvKzZKaUFQb3JabGp6akxsOWo2dFhTL1F2cGFWSWl6VnhITWNSdDRpSzI4bU1US09lTVhzZlEyUlZkMFl5ODk4d2U5b3VRc2xTRUo1dXp5YVJZTkUvc2Zsc3pRZnNIYUJYNHVKSVFYMkhyMks2V0swSGFFc2l5V085YTFPTGdvVndkVlluUWd2d1NpWGowajAyNjhkQjM3S1JYUWtWRHlrbzl1NUY3Ty9WTXh2djJCdXZRendaaXhFWE1ndFl1U0p2Umxmcmk3UG5kb2RRaG1OaUhOU2c5ZzloT3FFUkVYaGIrYzZtZTBkZllhRmtQNmhmY3dPTHAzeTA2TGJMc1FEQVZSdWtsSkkrUEVzMXduQ3VFV0s1ZEpSd3g5UEhraG51RkVHdGJ6TFh0R1V2YllCZWJxSXpFVnlNVktRSHN1bUVvSzFqMjd0QTh6ZEJaUmREMXlvN2hZdjF2am00UlU0T1VPdDNTN05EUjZtSzdLbVBDN3N1WjJObVdqYlhIYUZDVVRZelRVdUloRFZwcnYxNlJlVU12c3phOE5EYk1sRmF6SEN4eU9SQzRBZ1lpQmZOS2dJN1BYb0tsSU1qaDA0UlhxTW9NS0VkUmkwQ09oK3h4cnNUQ2dWMUdaK3RrRDJpbk11NVRBSk1tRW9TbFNYVWwvcTdrMUNLeDVtMlRhSUdWRU1jREwzTDhCTTdlcTdNWHB3b3VoaHdLODY0R0dZVXlLMUI4aTVKdllZcjIwaHE5S2E2Vkc5YjhVSnlLb3pVQ2RoczNIVlVUNFU0STZxVFB2YVkrQU1BbkNVODNTSUMzcXYvTCtOQVg0a0hudThuVktMQlJLWTRhV2pZcVpPemphcWRFd2NhZ0NERjNWVVE1ZUFJRGxFQWJCd1ZtUW40cFpVZzA4eUtMWDJzZGlrSFFpMm1OR1E2VnFKODlSckFrOHF5TlRMYlpURkpGWHhtcERHRGszaklzOTBpMlhsZXJlMWpzVjBCc2M3amROWGl6MGlzcHpKd0pqQ05tVHNzdkVOUmU2eUpuRGQxOVJRbEc2QWcwVVlRMzVvVnFYeG9JOVBFZ2ZzQjdQRU5rN1ZMb2RmV0JLcDJzcmhkaXFoUUp3bENVM2x4bENDeWtCVjR5TWxEVjg4R0tTa1dtSHkwbEQxa3VMNWs4S2VuZnRJaHBtZndIRDJKay9oV1VZRkcrc1Vxd2xLMlNVRTJiVEIyeEM3YUFub1U0UVVuazAwdVFNY1dRT1VRUm5WSm1rRWJBUmxZKzhwbXB2VFVuM1haMkFPaUFNaHBCN1ZNMTNPTFJ6L3V5RG41a2tSd3lvOG5SNGxsWTlsM25rSE9QUTNPNnRlTkZDUTc0MkhZRmZnY01TRE9jWGpISFlNbmt5MjhVRmFiMTVjelZ0WitkczNUTzJsVUZnOTVqbVFHVllJc0VRRmJCOGlpeWVSakJrSDdTSXVsYU5JSGdJZjk2S1lpN1lRZXBRZ2tHK2tMWDNoY3JrOXh4NUdJSCtoTDdRc0lpVEhHbEx5VnlubnVjc1hFNHkvU1BUcFJTTE1Zc2NoTEJPOG0wV2FlR1hMdUUvd3pHWnRiL1Vwc25teUF0WEhBR1VaaHFvQU5YTEhBcnEyV0VhaXFla2RYc3NQRlEwWDZ0b0Jzb1JRSHloTUhFVnFSNGZ0STV4emVQTjlnWHpIVUUyOFByQnpQdyswNjRYa3FBS1dmajE4UW9IVkR5Q3VUWnduUjBEZm1DVW1ycmNuSytjT2tGNnhDbUFwcGJldDlVejhtc2d0dEcvazhmazNnV2xwS1RpVEgyTkJzRU90eHFVODkxZ3NTRXF6Qk1EaEs1Nzh3Mm9TYzBsUm1RZ3FBWUVnNWJraEJlU2g4R1dYOXN6clFBNXNTeFg1WUFWZUttTlV4V0hvK1VxUmhRRWpQbXhzV2hZbVFFdU1ydVdNR1ZUMko1N1NBS2VIRmJzMzFPUXJzbGcvaS9OSWdpaUl0Q1lpaEVwYmgwaFp2OXRGNkFjU2xubkV4eFhXQ0hXdWtFREV6M3dpazVsY2N3K2h0dTg2QzYweHhTNy9QWUdoU2JVTzFVT2ZaQnQ4UFdOS0RmZ2NlZWR5SjdLUzc1bUZZLzlUa2ZFNEM4aUR0REx3Y2hMMXk4U2RNNmkxUG0rbUZOWXMybFJ6RVVac0lLb05HMm44TFk2UjBKdStocjJyb2VLVUtTY2R4TzhseVBrek1oVEZITkt2U3czRkxOOU1PS2loRDI0Y1R1OFVpaUprTTF6ZG4vT0lqOXpEVU4xZXo4TE5mNkJWaWNxZk9DRXBkcFRLUWRuZG04eVhHUnR2VGdFVU5JdStsU0RSQk5CWUE3UlVxd0VrMmJpL0dRU3c3SzFUeHZNSDJCUHl5ZjB2cFJaYXlnOHVxOTNwNUFTUE1iZ1J3YWFkTEtZRUhjZm92SlMzZXkvcXExWU9iQ1ZlMUtFcEFOYXNSNCtNQU1XWUZNY1NYazZaa0ZKVFRqbUlNdFZRdGhTTTdTdlBJN3JBWXREdzVkL0lxUW5FZ3lsenRYTUJvT2xLQmNtZmVvTTlnZ3RlVFNwZUdOeUFWd1N6Rkg3eVhudVkzbzlVVDZyQmFnQk5WTUNwR2cwcE1YOWNpbEdhbXF6bU5TL21QeGRjZFBjeXcyZ3A5QXA2dDFHMUdhVEFqUU1nZTNxVGtjd1lhL2lLRGFpL1FqYVZabHB2OXd0d0VWNlBURnFSNDJrckk1Ym94ODlsc093UlI4MzRReDhOK2k0VXo1ajZPUHBKZzVCRk1PRjRWUFFmZ1hmU1JZMzBpSm5HOUhVZHlsK3owRlJlWE44a2hwUVdwY3JBT1hNTlFJbklYREkrdnhCZ1VVVzdEWWRiR3h1djhPMUFMekdDRlR1YzYxeG5ObWV5NjBsRjc2WFZsMnQyeTFvVTNkVnB6RnF3YXVVbGhMRTFJaVRQWnZaQTBqc0x0bHROVW9xSUVZK1hseGRITE94dlFrcUNsTmpkd0UxZlJQVEx4NEdmVXJUUGsrU3NrM01sc2UwTG56S1Vpd0ZDRXBVa2dHVEZEMDBRc3lZTnFjQ2tOQXRuTWFVYzBQVHBuRk1FS0YzMjlPWDlTeHVSRzBTS2JBOVRWemFRTFBpMkFnbWFGVnhyakJBcVFPS1k3R2lyRGpGVmZ1aE42TEtISWtKcHRzNjBodWVYT2hFdm5USkRNTFN1SUgxR0IvWXhHQmhaQjVlaUZLSnJEOXRoeGU0dDlJVlRRQ2djZ3lYclg2SXBIZmg0SXFNa3hhMFRLbkN4dVVaZ0owTjZUdklVd2ZvZENQOUlkalVwamd3TkVTZTVqMnBRTEVkbElMUDNIREJTMHhtd3lhNXhGbUlFaVMvVFE4R1FUQjQ4YlZNMDVqNkl0dnd3ak1uVmlnSVQ2RlNyenhQWndIUnJaNjUrRUd3MTNEcFFLdFJ3SU11MDVMTjVOVDhKOW9XckJ1OWR5Vno1QWdFbGNhcldva3VFWStnYmlrbTExUnlkSkpybHVKWWZNMklYVjJzVmlIRDVsbzAvTytuaEdBdEd5UGRhblRQQkluOS8xdCtUZUN4NXFEUFFjRjh4aTExUTVzTElpNHgwc2VTZ1dYVVozakdtVklwdDRGa3RxUzlQUWNzSWRsMnpORjdTNGhrcFFNd3pocjEwSVlYNi9lZnJ1alZLVndWSFo3eGlZTWcyKzVKc01aMkZxMlFXaG52MU1ZcTF0dTNTRUV0U1NPMjF4SDBnQllHbWNqS0N4WXh1M1Z4T2x5Vll3SmpHaVNybFdCVzVoTTZycEJmMjYxd0M0c1JLT08yTzh2c3V4MTBRM0JyaW5xT3NqTkxSQWJaVEYxdTdQTjBzTXNHaExLdkxZVGVpZndpamR1aE1OdExaVkFhaWlpdG9sc0hrUG9vaDg4NnFwNG1yRkpJVlFjUExlUStFaldVN25scFE2a1JFUlIvV3RjYkFTZEk1MWFxeXp2STdPVXBCRHhoU2xzSU1hNXo5RkFodi80bzkyNmVSUytva2l4WWJobHFvaW9EZ1NWenBocEI2K1VUV29TSENRTWEyY0hwSDZybTBNOW5CQXh5Y0thOVV2SzJ4K1NFOUZzWUNoM2xnMzZDMEFKU1dGQ0VqRm50SG1va2hoZ2dNaHRVd01jelU0KzY0Q3BnSVlsYklqeEs0L1NvY3FlOWRJSVhocFlGMGlkV0FDZ2ZQZXE0MjVpaDBPVTZNdld4RStXbFRkbDh6ZmY2RG9lTEpXNjlIVG5lQ21vSE9xQjhZWHRUNzFha2h5bDdHQkVsQzlycHQxOUxBTWZOSUdWU21KTGtjdzQ4WXRMeU5HZmQwaTNzYjBpQkFDVTNuSnlublRuazZJekhDVWV1aHFuT0NWamRVV2pEaVBhQ0NJbGZpS2RxRzhSMkMvTWJ4VVpsNFVnNXNBcGxENVBlK25XNVlpenVhTjIyZGlpSDNEbHAzY0tVeTd0S2FvVFJ2RWcya3ROYjRpSktIcWhSRXkxNk1OWUNOR1l3NTZSTmEyajJHMm1JaVE4eFR4eDN5MnMzR3NZR2RjU0E1OWNZNGFyRnRDcnl5Ym5LNXIvVFBtVmVHaDZLTUZ6NmVsTW1iN0pqYWdqUFhoMnFyd0xVV3NMYVFTZXZlVmJ0UmJwNmE4elMzbHUvdlpYUlYwdmhibHJoR2lIMkFvemh5WDk1a1FUdHRxZjBmQk1HSmluSkRhci91OXo3UVNaVnk5dGRuT0kwZ1k0Nmt3T2lRNzVpR2IzOVB0KzhlaEZoZTJ4MU51SjllT2RycEs1d3FTbTIwVStwZDF2OUxiVWhucVBmdERWQnZEckFaYTA5WDY0cmJBcGIwOUI3SkpwcHRNVldDTFRJYkVuMHlwdGpnQzBDOENPV3A5bWdaa01MR0dxZ25qTEVaUFFiTFlnV0VLUlU0U0Z2UkpicGVGeXdlaW9PQmw2aERwaW13b1I1c1pHb3EzVjgzVXNPSWtqdkFvZFhLRjNIN1g3R0h6cWhKUHVUS1daaWZoa2FxM2FVNWhPMmtIWktIZkxMMG5lS1AvbXRBZCs3Ykx6Sk9FUUZmZGVsMk1oY3hyNVhRMlIyWjlkV1VrbVoyQUZrR09RczhKR3lmcVdTTlBrMU1YOCswdWVvbWZsamFXdi9iZURZQ1ltV0o5bFp4RlYvNEJaSnRWRWQ5Z0FSTlZzSFpkOHRBY2NXVFdackZ0WUduRjFpNUVhUUNhSmpzVklGUlVuVCtnMXFOV1hJendpazJvb0xhMFRiME1LaTVHYkgwWUJ3aUhVMlJ6NUM0M2NET2NoejRRNUpoUTJwTTBpS3FoRXllSndjYmw2UjVwRy8rNDJBOGdpMFkrZExwdkNETzdRK1VHZXpBMzZYYnJOb0NyZFRIaUNDSlJOdkozWFlqKzRWQ0JMRkhWMUxhck9YUjY5M0syNWY1dDJZQ0pFL1lIRnBINk8rcEFxYUEyaTBZTzJxYVhGWGFHSVpZU1EwdVpTSnZMUlF6VW9IRkltTm96dHIwSGZHZEpWc0JTUnIxMVB3Y3J2R3ZPMFl5SVpWUEpzZnR1Rk5Yd0xVdUxWY0dYaWRXZUNmcGY1NG1aazlZV1hQc0pFNG5Pd002WGZlSDlMR0JzNzEvTVFNQ3NUdGtBbHZSZ0szNFNOVVBnY3RJVXhoTExIVEo2eUV5TEg2a2F4YXhVT2MyMmk4Ty9WSm9Ealo4Smo3dEVWcnBOUWhpcFlLOTllUWxLT2tRWE1EdUVTc2puRTlHTnFqQk1na0JkdUlPY2picGRDbVo4ZnNwbUMwZ05hUW12Yk5ybDlJTTY4VWdXWnNtMGxWVzk2ejJLQllISURQQ1QwcTZvNVFBTHlpVEdpRVJxSkJJMlZBR0c2VllKU05UYVpNVGh3dVNGa25hTlA0Y29hQkJPL3g0QjJJS2dWWVNkWGg2TlpnOExnOTZkZjFTZzFJYWhIS3BvSjdFalpaUnlvaVNYV05YUFZkNU1kV2pzVmhXd3g1RlM4R2Roa0NYT0xycFU4UUVrSzFBVXFrN01iOG8weTdMQm5HZGN4L1VoMjVZYjdqS0lvZW5SM2NDNzRRMllnQzEzdGlyZTlKbTBqczRvTzNBMks0dGxSTi9NNCtobzVTUFM0VVJoSWF3aXFQUm9HL1c2SnJLQkhyc29oNVhGTzM3bC9PMFl6c2hYcjZRaSs2Y0s4bDJXbDFHRG14RW1YYXY4RTZZRlZDZ1lVSjZ1UW1kYVV0YmhpZXZxUGdQZUluaVQvOVNpZDVsbVRXSUpsaW1oVEVJVzFVVUxObWRiNmpJYnd4S3VpS0x2ZHBTSXhnWmVmb280aWZLYTBXRm5MZmJzRHVLWUo1c0RycDZlNkNtNGNPTWNYMUx3SFJVMXpUcEF3M0MzQm9IbXY2Tmo3K3pxUVJsMEZCVHFpUERjZHBDNFUxWjgxaEp6Yml3emppZFhkdGNtcWs3ZDB5NC9WOGc4WE5raDdha3FNbWIySjBMSGs3R3NnM05MSDBwbTcwM3pqR3RWNVJTYnVmSzVtU1NNQmZ2bHNyNUFEMmFpemlvVU9MV0ZjeG8vOG0vZUh4SityQ3U4dUltNW1BdWdac0l0ajFORXJvaGxxdnQ1WTlvYjk5NHNEeWUxdG1BSERiZDZjOVZ5dlJhNFdMMk01ZWUvaUowVVQ3a1Z5Rnl6VHlZVEhZeVVYWDRiUTFSRUhtRjlPTk9hTDI3S2RiK29ZbVZ4d2lhUUxXTXpkRjg1cXBBRWtBaHNkTFRpc0ttL0tyeFdZSlE0SEJyWlpLK2xkeFYxSjJFUkVaWDNNUkZzV2p3aVJpSXJHTEppWGNycVUwMk5BM3hFZUUwaEkxZ01hbWwza3BHWTM3bFlyVnVMMEt6eUR5Z3QvcWNnaUxBQVRZaEVvN2cyQ1RHR0FFZ1RZZTBzeW1YdWE5RmQ2d3llbXNBVmtGTlJMNWZzbmVJTjhzbSs3RktmM005VXVtNzdaUGdidFNPQ044VmtxK1NFMHFJRG5HK1oraWpxREtBSGVNUHNVZndvSkxVZDc1WGlKNG9lbU55UzhTdU9kUlhQMmZpNVFyR05UMHd5RGlncjJMb0xqYjE1OUZtTXBMMUxDMXRWczlmZFNGY0djNEZBNlpNK0FPc2tZcGhZZlFlZWlNRWNmU3NLQkRGMjJFMXVuSWh2ZFY3cTFrWEtDQnoreFYzZWU1Vnc5MG9vdlh0bnByWXhKNkdiZGtTKzlWd0VEODU2c0FzNDFZM0F5ekRpQ0FTK1NBUUxENEpBZDhmT0NOYXprYUVMOFlqSGRJOE5kZE9KMERVTlh3TW5yTEhnU3RmYnpIMkpuR0dWdEJmVjZ0SFFMN1RxaklEOEF0S01GUW85RGFuZGVGYlRma3hUQmg1WTRMd0ljeEJEOFhkYmZKZDM4Q0xueEE0Ny9zOHNaNmsvWmZocHV4QlJDSkN4MzIyTFc2QzZYekhTbXpSc0sxTlVXeGpacGRha0xraXB2RUNqYVdLcDcyRWEwei9GcEpsY1pQaGNnT0VIM21ZVEZDSHNVQ05ac1BCMmtFVjNNUm14YmZrYWlFajJhMVdmeHRabnVZTXNDVllqK1FLNXJNK0lZa0RvOXR0N1l2SndtNWRBbVVPWkVYTWRrdlhRMHZrQ2RjWkhUMlJOZEZCK09TdE5DYzUxTGxDQkFSTmpJUzFSUExPeVY4SnFXeWxLSlQzR0ZNSUNlOU9PS1BQQTBBTnAwL0RDbFVyQ1Q0Z041K25iWXd2WkdCSlBLYVN4RUxhR0dNYVRKWEdPK0tOOElhSk9sbm11LzI0eHlJa05DeVZoMEdtSGliVmVBQ1VhQnJoYVgzbFBNS3RVZ3daSWQ0K3lhbWJnbkZ1YkFyekswdVhPMGJsRDJNNjhBZWdBYm1QS0xoNWpGZmpqR0dRY1hnTDdrR2VOOFlMUHBVcm5xQ1d6VGZUUUJmUmZjdFJVL2N5QUxrRmdzbTdXNS9BZ1FrSnFCRFlPYlFUQ3h2VUFqUnpZMUFBWmFkRHE1RzY5Ylp1NmdvWnBoUkNzSzV5TEZ1TVZ3K2dYSldMSlZHaHlNYjg3ZlZvUzJCUDd5c2M3YWk5VXJwNnRqMWlWbzhsMHBXQXJXTG83QW85RFVKQ0VnQkpiR1lWaDI2eC8wTzhCbE1RU0U5d2tzY0VHa1NBTk9ObUZzdUtJcnZEUTJpaUtGT29wL0JBbk1BR2ovaGJVRlFXaDlpWXNzNThtMmp5VXVpbFpBY05FUTMrWlBqQjNWb2FZdU9kZGk2TFp4Um1FQjFxL2twa0NldUlzeUNuY21xV2tmSmFNd0VHWmpnMFo5eUJSTGU3QWY2YlBwS2RoSWcxRnFZSGRaNE9CVkljOHoxZUdSQ0hIWFpWaTEzbUswWERJWlJzaGJaUkZoYm85dkhXTlJIQU1wNWgzMmsvdjg5ekxzVkcxc29HMkpPTlVLanBESUZMd3pRTk5CK201bys5NzZWaFQ2bVhnVVk1cDJRVmlLcVNpRk5vWUFmdTBHbmtpS0t5L3hnNlRISXlERzBTdmlzNnVDM3ZQeXgvVjBmNnNRbGhMVlN0ZmFjY2lmSWRmcEtodUdvdVZoNWxYZDFkOGordTZEaFVWSnN0OUNoNkJOWWx6TXJOSjFjQnJiN3A4TkljcEROUGFiak82NkwzLzR1YW8xTVJnTDJwVHRjZCtXbEpZbFcvZDdRbnhkK0doM1NBVE85UmVXVnJaQTliNWMrVkxORHVnckhuN0hJYmVVaTdWQkpKd3d0ZTdMbGFFNVlaTjdXZnp3RExDUGVNQ01FYTdNYnUyNU12dnRINFU0UFgrdTk2ZzRUdE03UzBXeUx6V3ZRSFVFOFltaE1oV01adk4xQ3dGWHJEdWhvRzlpbmd4eFVFdDFIWWlQRFMyNHNBZHVWeHgzbXliOEJnWlRnQTR4MlJna0dPelZKM2tpUFBMOW5sZ1dhbVdNTFlGSnMyalhHcmI2Qk55S2MranN6T1lNMXNYN0RkUTEyMnNBOU1xWkk5RnNKbzRrTGlvOVBjZ3hJRzRmMW5WaWNTVS9XVlVCZ21Fc01MTXVwaHZNd3hyVlRKNWIxOG5JTkxEOE5QRVBKL3NCSXdGbnBSWUJ4bnB1d1JiREp2Wk8weHJLcXFBSCt6WCttRExwUURqbndMdmVPRXl4M242czNsd3R1c3V5NW9MdGVpVVN3ZjNHdkVhOCtEQUdxaXJraXE5eXBOVG90a1FSa1dzUXRZS1FOaG1OSjY3T2xKeDJhdDFUYk9nNVZqUmlqL1NpaXFkdVpWTHFxSVQzY3pVdG1Ycnp3S2JpcEpHYlR0Tlo2NGpFVXFURXhTZ0FEc0ZoMWh3c1IyeDV1NTZ0eGZNVzdCWnp5SzVtVkRKd0NmcXc3S0FqWVIzaTM4eHZBNENRZTFIQzdrTjYwRmtxU0VvZEswMWtEUldxWmlGNi9mSnB5VU51QnNzOWhrZ0hENENkVERZZnJVVkxLSmtpV0dxbEZnOFZpNUFEanpQSEZJRnY3c094MmRYTS8yTGVqVE1lcTBQT29ycDAzQnNnUTZvOFExZzAxRG0rd0dVeG9iWkoyZGlwamFUQ3FSNDRyQ0hKR2ptSnBnRlAyRVJSY2NIcVBqbUhDWXFaUVVvVmlTTktneGxzUllwUnFReHRlcW5XNVdDZG9zT2JDZ3ZnQ0JDS254TTVRSjlCdkw1UFdNeWQ2dFJoR21KK09jeHcrZkthekdBcUFMbk15Z0FTZFh5VHFtWG1RTkFYVDRNMkpoV09LSUJVYklMRkNtNkx3TEFGTzdXSk1laGpLbE5rOHFKSUlnVXVyTEtSQVpCRXh4M1dDdEk5UG9GR2NhdXU3M3FxMFpZODI0ZXRqRTIxLzNPUG5DS3ZyazFXMjUzQittME5hZ3FoN0MyMkl1S3RqbEpVWTBNUjhWNXpHQmNOSjBFUThJZ0JJY3JBV2Q2ODJWb3hZTFBtanlrbjJlZ2NIYkdaaWdlTm94RWxnV1hSeVpOSXJ1TUtRNkZtUlE5bmpaMnRVRm5DRFRRRitLK2g0amdQbFM2b3NuQnBIRTZ5dGlETitLYU53aGZvRERvYi9VSGgxbENFSWhUaTF0Z3l1U0xKc29jSUYxZDQ4dnB6M0dHWVdJZUZENnN2eThyQkFwa2lacGhoYkhRdVhYdkdxbXlPRkwyTCtNOFNscElwSXhXNUdSQUdyYXFYRXJMSHFVQTd5bDJEc251bndQUkFzSlNRbFBGZjFVcG1hUHA4RXUwSDRHdWRLWWthS1Z3bXRSblY0M01vR3plTnJSY0ZFSU9FaWJra21WTW1uMWhNYXkvQ25lTXZFaGRyd1JIVkNrUkhRSUE5d2hJellib1UrM3JtS3hIS2xvYXgxYncwRjZnMHhhTm5lSVR6Y0JKbE91TWlobUlzaTFwNTlZZE5xQ0tCRjZqNENtTnNLcFlKVmJUenJwZ0Y5TExmRXhlcFk3N0VrSG02dXgweVdWc0did0lQb0F1OS9VOUl5SjdSMFJMQjlrYlVZcmFibG9zdkV6c2FHZGtSd0dRYVZBd09GbjFGQ0JHMTJ0TlJlMU9aRU1ZMGNSVUlMWFJEQTl0K1F4Nnl4STZIS0ZqWm5wNjZJSG1SUUhEaHNFeVB6VTl0SDBwcjl5Q2gvTGhOaU5tZ3lyblhOaHRza0gyYnRBNUoyTVBSMks2aDYxZElJU3lBNTh3dyt5ODBsSi9nV3pBbUIxRHJZYVVTQXlNV1B1T05TMzBWeFI1S3h6aGZraWIyT29WL0NITVJjUHZMRDVPeHhKVmpvK05pMVUwZjB4Zk9yV29nbnBzemdlNzEvU2ZlZ09NU3lYUnpEWk9ZQ1N5cFpvV2NhVHRzaVUwV2F4ZG5PNGhMVmpjY0R5M0wrU1JNcUNVZUJCeHVnY1pWVWxJRGpDMlk2T2RuQXV1TzUzZG4wREM1QUhwejlVYzI5bmw4Sis0Q2l3YzBKZU5DRTNBeDF1NXdOOG1JYVU0VkxoN1haTytBZGFyR1lIaGN3UUp5ZUUwSjBFN1JEVkhwcjlsZTBpZ0VUeVowckM2RFh1SVdVMkVVNlN0SHNRbWxDbDIwZ1B4bXpFTFFYdnpUNHZHK3hsTzB5UXJLdHRzVkNPdkpoWnB6Ym5kUHhMb1RmRndYMlpubWF3ZTBJMXhnWVFDSFR1TFZLbUZJWk5NdGZMcFU0emNMVzlrc1lVWUR6UXMrNFlhcmN1anl5d0libjExQk80OTBDQWU0bUl1aEJsUllqdTJLcEFGZ1FwTnFIdGRmRTE2ckx5aVVrdFQzSm50aFRGWHVHSE1GaGw4SUw2amxKc25VQTRXdk50bThsb3Fub1lVdmJvcTBXRDFLQmlhMVlsUlAyQm9mcm1PRmx4cmlJamVxaGtRNHpMZkpZT2pwUUpCYnJHb25jbGhvS1MvWlExNkwwWVNUVmFRcm0yZkVDVFB6bFZKR0Z4WXRlaVZXRmhjQktvS1BiNVhYU0ZFTjJ0b0RNbldlaEF6dGlHdGRXOU1FZ3Z1dDRrZk9RaDdCbHVaZVRUb0ZaZGYzSzVBV3puZ0Fxem93dlVRT2ptK0ludk81aml0a2RmZGNLaTdiNWI0ZmwvMldtQW5jbTZOS2c4WWMxSzRkRDBxbWgwRlJ2R0J6Z2xGTldKMHY0a0ZrVnFiaXhjMWxVY1R5YkVrOVpPRk95TFozcFgybVNxL0NJaHY5cDBuN1NRTXFsejJrbi9oMVJiRWdjeW95RGhVbHF2ZVJlVUZMazR0bkFPZnlKTXcwUjIwU0pPQlc0WDBGSGpDblNVWXNlTmdobHM1aU5OQmhwcWkyWXk2TlFkWGIrRVdLSHZSc0dLTEZzWE9KRi90VEVFSGVSQXZ4OGRXNUpUK2NYSm12czkwamd2U1NBS29oVVhTM05XeXJ1REl6UjdCM2tBRTQydzhEaDFzUUJRcENVdXBIY1MwMm9vTFdCZG1KeHo5RkRBYnJueWR5dVRUVGl4dkhOZFhOKzZjNkJSZ2tFWU9MR05kZEdFUmRsTUU4aGdXZnpaTUFNOGdUTjFtbTc0cUlhaC9EaE5VUUlCSUtWV3pvNERBMFpFck1JZDRJNnBjWVVnby9DcXp6MjVHTnpBQWxrOFo1SGhsbzlQQTNsTmlVOEUrNlhKNmNPOHhDa0x4YUVQRGFSU3NjNXEwaHNPQWFBZVVCb2FPRWd4SDVoRDBaS3JPQk41Tkt4ejJCYnJzVDFSc3lsMWNNYmthcngyVXJYdU4zbkkvUnE4Q1lWM240ekFaZVFkU0ZIOVFwTm5nRjBTSTliakd6Qmd2dHFBeExLSFNZWGQ5N0ZBTis3b3pPSVQ1QVBzZm1kZUtsRjA0VWpQNWhkdGxLNENWYWJnTXBBMkpUWUhqckRSUTQ3Z1BZUDJjMk9Sd3E1cmZPTHRvekZqckdkN2hYb0F2UnNpS2lEcm1iRklZR3NFTFUreWZLVFhHeXNpSDkxSUJzUzJZT3hZQUtYZzVpVTcwNVgrcWRjZE9sZWlUUHpnQ2ttbUdBbkswbEtpVm4xSE5FMkRhTVh5ek9ySnpXQmhkRHlEVjVSVkttOHNoTFd0VkFXWEpxYjVYOFNZakJ6cEl6SWlOSXlkWWgxbHBKUUVLZFp6NEN6QkxTT3hkYlVNaTA2cWlDcmFCZ3l3NHRJOVdiUmlKT3VzWURSRmpLenVIb2dHdmFoRjdjbUV2K2pabXlzWjNqNjdBdzNFbnJBZWtZczVQbXo1L3l0cmtsamU0dGxMVkZTcEFkZ0pxQzVQY21jYjZseVI1bHJ4a29SS3EwYk9uNWNKY3pILzRkVGkxVzB6cm90VGRWT2lVMnByVFpRMFNMbkJ0TlphZFQ3Y0VHSXlMbXJsQU1kcG9kOGxIN0VaejJjUy8zRkZjS3JNcWpyNFJMN21kQjVsL2wyUTZOaGs2S2JXVE43REpsRFJQQzZPUXpWSVRTNXJLTkhhUEcxVEtuSTZOQSt1eWE4M2hiOFc4OUhhL2VJYWJhZDdOZmJyVktoelhrRVp6SzJVbC9XWDk4TXdiWGxmMElMdHFkcnZsM3BXbnBaSUtXckVTYnBPT0Zvak1nU20zeW5uRXZzZElaQlZlZVRhaXVMT2pHcFNCOEUydHZUcTNJU1VIN2psR25VcWRGZVo5MWZNOHhFeGYwZEpDWmt1VXJzckVKbk9YMjJzUWVaa0xTYUhVWEZqeDJWSUVZMkpXWHFlMVlLL2trR3FkMnhIYU1QaERSYy9zTDJ6YkVYTHpMS1IrSjVZTGRyRTlwN1Y5RStKc0t1VUsrN2cxVGFpcDZMV0lDaGlpRWxGV1c4S3czUlBOem9YUyt1dXIraHZlSnpHVFNnMXVyVWlnUWRXWkNVcWdoeTFqYkJVdHozRytySXFpRUY3SUdkcjN0emlMSzVZaHkza0RMRWJ2OVJuS3E0aE1lMXc4dGlaYTU3UWlPRGpwR3VrOGhMQ3diR2RxYkxOakdyUE9LRU9YeW5ZeERsVklSQXNIUEFrUXhUbk5iQklqUFZUVWtaMkRScXIwYk5neE9zYzVpRSs5QzJnYUtMWUkzbE55Tm1oN09JVW05WVorQmhOZGdETk01R0I1R25VY1NWOWcyUmRibXNZOFg3Vys5NHBLUWcxbzBNckprNUlZTXNmYVlRL0RxN2JibjR4TkNJMXlzQVdkU20zLzhLVWFtQlF1Nm1WY2lxaDZXbUFGNlVnVlpoWnBTTTAzdnk3WjRSQlJTbGFKT013UWx5WU5jVUxXekdSZFBHb0RSMHUwTUMxREFuTjkyQXdEQW5McExteno1REVqL3c5ajh3NjFBV2NVbUFBQUFBQkpSVTVFcmtKZ2dnPT0iLz4KPC9zdmc+]]></data>
	</file>
	<file>
		<filename>/css</filename>
		<isdir>1</isdir>
	</file>
	<file>
		<filename>/css/style.css</filename>
		<isdir>0</isdir>
		<data><![CDATA[LnVpLWRpYWxvZyB1bCB7DQogICAgbWFyZ2luLXRvcDogMjBweDsNCn0NCg0KLnVpLXdpZGdldC1jb250ZW50IGEgew0KICAgICBjb2xvcjogIzE0N2ZkYiFpbXBvcnRhbnQ7DQogICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIWltcG9ydGFudDsNCn0NCg0KDQpjb2RlLnVzZXJpbnB1dCB7DQogICAgY29sb3I6ICMxZDgxMDI7DQogICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmFja2dyb3VuZC1sYXlvdXQtbWFpbi10ZDg1M2EsI2YyZjNmMyk7DQogICAgYm9yZGVyLXJhZGl1czogMnB4Ow0KICAgIHBhZGRpbmc6IDAgM3B4Ow0KICAgIGZvbnQtd2VpZ2h0OiA3MDA7DQogICAgZm9udC1zaXplOiAxZW07DQp9DQouYWxlcnQgew0KICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgICBwYWRkaW5nOiAwLjc1cmVtIDEuMjVyZW07DQogICAgbWFyZ2luLWJvdHRvbTogMXJlbTsNCiAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsNCiAgICBib3JkZXItcmFkaXVzOiAwLjI1cmVtOw0KfQ0KLmFsZXJ0LXByaW1hcnkgew0KICAgIGNvbG9yOiAjMDA0MDg1Ow0KICAgIGJhY2tncm91bmQtY29sb3I6ICNjY2U1ZmY7DQogICAgYm9yZGVyLWNvbG9yOiAjYjhkYWZmOw0KfQ0KLmFsZXJ0LXNlY29uZGFyeSB7DQogICAgY29sb3I6ICMzODNkNDE7DQogICAgYmFja2dyb3VuZC1jb2xvcjogI2UyZTNlNTsNCiAgICBib3JkZXItY29sb3I6ICNkNmQ4ZGI7DQp9DQouYWxlcnQtc3VjY2VzcyB7DQogICAgY29sb3I6ICMxNTU3MjQ7DQogICAgYmFja2dyb3VuZC1jb2xvcjogI2Q0ZWRkYTsNCiAgICBib3JkZXItY29sb3I6ICNjM2U2Y2I7DQp9DQouYWxlcnQtZGFuZ2VyIHsNCiAgICBjb2xvcjogIzcyMWMyNDsNCiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjhkN2RhOw0KICAgIGJvcmRlci1jb2xvcjogI2Y1YzZjYjsNCn0NCi5hbGVydC13YXJuaW5nIHsNCiAgICBjb2xvcjogIzg1NjQwNDsNCiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmM2NkOw0KICAgIGJvcmRlci1jb2xvcjogI2ZmZWViYTsNCn0NCi5hbGVydC1pbmZvIHsNCiAgICBjb2xvcjogIzBjNTQ2MDsNCiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDFlY2YxOw0KICAgIGJvcmRlci1jb2xvcjogI2JlZTVlYjsNCn0NCi5tZXNzYWdlIHAgew0KICAgIG1hcmdpbi10b3A6IDAuNXJlbTsNCiAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07DQp9DQouYmQtcGxhY2Vob2xkZXItaW1nIHsNCiAgICBmb250LXNpemU6IDEuMTI1cmVtOw0KICAgIHRleHQtYW5jaG9yOiBtaWRkbGU7DQogICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsNCiAgICAtbW96LXVzZXItc2VsZWN0OiBub25lOw0KICAgIHVzZXItc2VsZWN0OiBub25lOw0KfQ0KDQoudXBsb2FkLXdyYXBwZXIgeyBtYXJnaW46IDEwcHggMCB9DQouaGNlbnRlcmVkIHsgdGV4dC1hbGlnbjogY2VudGVyIH0NCi52Y2VudGVyZWQgew0KICBkaXNwbGF5OiB0YWJsZS1jZWxsOw0KICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOw0KfQ0KI2Ryb3B6b25lIHsNCiAgIG1hcmdpbjogMTVweCAwOw0KICAgYm9yZGVyLXJhZGl1czogNHB4Ow0KIGJhY2tncm91bmQ6ICNFRUVFRUU7DQogIH0NCiNkcm9wem9uZS5pbiB7DQogIHdpZHRoOiA2MDBweDsNCiAgaGVpZ2h0OiAyMDBweDsNCiAgbGluZS1oZWlnaHQ6IDIwMHB4Ow0KICBiYWNrZ3JvdW5kOiAjMTQ3ZmRiOw0KICBib3JkZXI6IDJweCBkYXNoZWQgI2ZmZjsNCiAgY29sb3I6ICNmZmY7DQogIGZvbnQtc2l6ZTogbGFyZ2VyOw0KICBjdXJzb3I6IG1vdmU7DQp9DQojZHJvcHpvbmUuZmFkZSB7DQogIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZS1vdXQ7DQogIC1tb3otdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZS1vdXQ7DQogIC1tcy10cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLW91dDsNCiAgLW8tdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZS1vdXQ7DQogIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2Utb3V0Ow0KICBvcGFjaXR5OiAxOw0KfQ0KI3Byb2dyZXNzYXJlYSB7DQogIG1hcmdpbjogMTVweDsNCiAgaGVpZ2h0OiAyZW07DQogIGxpbmUtaGVpZ2h0OiAyZW07DQogIHRleHQtYWxpZ246IGNlbnRlcjsNCiAgYm9yZGVyOiAxcHggc29saWQgI2FhYTsNCiAgYm9yZGVyLXJhZGl1czogNHB4Ow0KICBkaXNwbGF5OiBub25lOw0KfQ0KI25hdkJ1dHRvbnMgew0KICAgIHBhZGRpbmc6MC4zNWVtIDAuNjI1ZW0gMC4zNWVtOw0KfQ==]]></data>
	</file>
	<file>
		<filename>/doc</filename>
		<isdir>1</isdir>
	</file>
	<file>
		<filename>/doc/LICENSE</filename>
		<isdir>0</isdir>
		<data><![CDATA[R05VIEdFTkVSQUwgUFVCTElDIExJQ0VOU0UKVmVyc2lvbiAyLCBKdW5lIDE5OTEKCkNvcHlyaWdodCAoQykgMTk4OSwgMTk5MSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EKCkV2ZXJ5b25lIGlzIHBlcm1pdHRlZCB0byBjb3B5IGFuZCBkaXN0cmlidXRlIHZlcmJhdGltIGNvcGllcwpvZiB0aGlzIGxpY2Vuc2UgZG9jdW1lbnQsIGJ1dCBjaGFuZ2luZyBpdCBpcyBub3QgYWxsb3dlZC4KClRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Cml0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CnRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCihhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCgpUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlCkdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCgpZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQphbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQpGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQoKSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCmFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCmluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgU2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKTWFkZSBTaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluCnNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBTaW1wbGUuCg==]]></data>
	</file>
	<file>
		<filename>/doc/changelog.inc</filename>
		<isdir>0</isdir>
		<data><![CDATA[PHVsPgogIDxsaT5WRVJTSU9OOiAyLjAuMCBEQVRFRDogMTQtSlVMWS0yMDI2CiAgICA8dWw+CiAgICAgIDxsaT5NdWx0aS1idWNrZXQgc3VwcG9ydDogZGVmaW5lIGFuZCBtYW5hZ2UgbXVsdGlwbGUgUzMgYnVja2V0czwvbGk+CiAgICAgIDxsaT5DcmVkZW50aWFscyBkZWxlZ2F0ZWQgdG8gQVdTU0RLIG1vZHVsZSAocHJvZmlsZSwgSUFNIHJvbGUsIG9yIGV4cGxpY2l0IGtleXMpPC9saT4KICAgICAgPGxpPkZyb250ZW5kIHRhZyBhY2NlcHRzIGJ1Y2tldCBieSBJRCBvciBuYW1lOiA8Y29kZT57QVdTUzMgYnVja2V0PSJteS1idWNrZXQifTwvY29kZT48L2xpPgogICAgICA8bGk+QWRtaW4gaW50ZXJmYWNlIHJlZGVzaWduZWQgd2l0aCB0YWJiZWQgbGF5b3V0IChCdWNrZXRzIC8gU2V0dGluZ3MpPC9saT4KICAgICAgPGxpPkJyb3dzZSwgdXBsb2FkLCBhbmQgZGVsZXRlIGFyZSBmdWxseSBidWNrZXQtYXdhcmU8L2xpPgogICAgICA8bGk+U2lnbmVkIFVSTCByZWRpcmVjdCBpbmNsdWRlcyBidWNrZXQgY29udGV4dDwvbGk+CiAgICAgIDxsaT5DYWNoZSBpbnZhbGlkYXRpb24gYWZ0ZXIgdXBsb2FkIGFuZCBkZWxldGUgb3BlcmF0aW9uczwvbGk+CiAgICAgIDxsaT5VcGdyYWRlIG1pZ3JhdGlvbiBmcm9tIHYxLnggc2luZ2xlLWJ1Y2tldCB0byBtdWx0aS1idWNrZXQ8L2xpPgogICAgICA8bGk+UmVtb3ZlZCBkZXByZWNhdGVkIGNyZWRlbnRpYWwgcHJlZmVyZW5jZXMgKGFjY2Vzc19rZXksIGFjY2Vzc19zZWNyZXRfa2V5KTwvbGk+CiAgICAgIDxsaT5Nb2Rlcm5pemVkIHVwbG9hZCB0ZW1wbGF0ZSAoQm9vdHN0cmFwIDUsIHtmb3JtX3N0YXJ0fSB0YWcpPC9saT4KICAgICAgPGxpPkNvZGUgcXVhbGl0eSBpbXByb3ZlbWVudHMgKG1jaGVjayBzY29yZTogODkvMTAwKTwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPlZFUlNJT046IDEuMi4wIERBVEVEOiAwMS1NQVJDSC0yMDI0CiAgICA8cD5BZGRlZCBwcmVzaWduZWQgVVJMIHJlZGlyZWN0IHJvdXRlLiBDYWNoZSBlbmNyeXB0aW9uLiBGaWxlIGJyb3dzZXIgaW1wcm92ZW1lbnRzLjwvcD4KICA8L2xpPgogIDxsaT5WRVJTSU9OOiAxLjEuMSBEQVRFRDogMTctTk9WRU1CRVItMjAyMwogICAgPHA+QWRkZWQgRGV0YWlsIHRlbXBsYXRlLjwvcD4KICA8L2xpPgogIDxsaT5WRVJTSU9OOiAxLjEuMCBEQVRFRDogMTYtTk9WRU1CRVItMjAyMwogICAgPHA+SW5jb3Jwb3JhdGVkIGNyZWRlbnRpYWxzLjwvcD4KICA8L2xpPgogIDxsaT5WRVJTSU9OOiAxLjAuMCBEQVRFRDogMjAtSlVORS0yMDIzCiAgICA8cD5GaXJzdCB2ZXJzaW9uIG9mIHRoZSBwbHVnaW4uPC9wPgogIDwvbGk+CjwvdWw+Cg==]]></data>
	</file>
	<file>
		<filename>/doc/help.inc</filename>
		<isdir>0</isdir>
		<data><![CDATA[PGgzPkdldHRpbmcgU3RhcnRlZDwvaDM+Cgo8b2w+CiAgICA8bGk+SW5zdGFsbCBhbmQgY29uZmlndXJlIHRoZSA8c3Ryb25nPkFXU1NESzwvc3Ryb25nPiBtb2R1bGUgd2l0aCB5b3VyIEFXUyBjcmVkZW50aWFscyAocHJvZmlsZSwgSUFNIHJvbGUsIG9yIGV4cGxpY2l0IGtleXMpLjwvbGk+CiAgICA8bGk+R28gdG8gPHN0cm9uZz5Db250ZW50ICZndDsgQVdTIFMzICZndDsgQnVja2V0czwvc3Ryb25nPiB0YWIgYW5kIGNsaWNrIDxzdHJvbmc+RGVmaW5lIE5ldyBCdWNrZXQ8L3N0cm9uZz4uPC9saT4KICAgIDxsaT5Vc2UgdGhlIDxjb2RlPntBV1NTM308L2NvZGU+IHRhZyBvbiBhbnkgcGFnZSB0byBsaXN0IGZpbGVzLjwvbGk+Cjwvb2w+Cgo8aDM+QnVja2V0IENvbmZpZ3VyYXRpb248L2gzPgoKPHA+RWFjaCBidWNrZXQgZGVmaW5pdGlvbiBoYXMgdGhlIGZvbGxvd2luZyBzZXR0aW5nczo8L3A+Cgo8dGFibGU+CiAgICA8dGhlYWQ+PHRyPjx0aD5GaWVsZDwvdGg+PHRoPkRlc2NyaXB0aW9uPC90aD48L3RyPjwvdGhlYWQ+CiAgICA8dGJvZHk+CiAgICAgICAgPHRyPgogICAgICAgICAgICA8dGQ+PHN0cm9uZz5CdWNrZXQgTmFtZTwvc3Ryb25nPjwvdGQ+CiAgICAgICAgICAgIDx0ZD5UaGUgZXhhY3QgbmFtZSBvZiB5b3VyIFMzIGJ1Y2tldCBhcyBpdCBhcHBlYXJzIGluIHRoZSBBV1MgY29uc29sZS4gVGhpcyBtb2R1bGUgZG9lcyBub3QgY3JlYXRlIGJ1Y2tldHM7IHlvdSBtdXN0IGNyZWF0ZSB0aGVtIGluIEFXUyBmaXJzdC48L3RkPgogICAgICAgIDwvdHI+CiAgICAgICAgPHRyPgogICAgICAgICAgICA8dGQ+PHN0cm9uZz5SZWdpb248L3N0cm9uZz48L3RkPgogICAgICAgICAgICA8dGQ+VGhlIEFXUyByZWdpb24gd2hlcmUgdGhlIGJ1Y2tldCBpcyBob3N0ZWQgKGUuZy4gPGNvZGU+dXMtZWFzdC0xPC9jb2RlPiwgPGNvZGU+ZXUtd2VzdC0xPC9jb2RlPikuIE11c3QgbWF0Y2ggdGhlIGJ1Y2tldCdzIGFjdHVhbCByZWdpb24uPC90ZD4KICAgICAgICA8L3RyPgogICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkPjxzdHJvbmc+Q3VzdG9tIFVSTDwvc3Ryb25nPjwvdGQ+CiAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgIE9wdGlvbmFsLiBSZXBsYWNlcyB0aGUgZGVmYXVsdCBTMyBVUkwgKDxjb2RlPmh0dHBzOi8vYnVja2V0LnMzLnJlZ2lvbi5hbWF6b25hd3MuY29tPC9jb2RlPikgd2l0aCBhIGN1c3RvbSBkb21haW4gZm9yIGFsbCBwdWJsaWMgYW5kIHByZXNpZ25lZCBVUkxzIGdlbmVyYXRlZCBieSB0aGlzIG1vZHVsZS48YnI+PGJyPgogICAgICAgICAgICAgICAgPHN0cm9uZz5Vc2UgY2FzZXM6PC9zdHJvbmc+CiAgICAgICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+Q2xvdWRGcm9udCBDRE46PC9zdHJvbmc+IDxjb2RlPmh0dHBzOi8vZDEyMzRhYmNkZS5jbG91ZGZyb250Lm5ldDwvY29kZT48L2xpPgogICAgICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPkN1c3RvbSBkb21haW4gb24gQ2xvdWRGcm9udDo8L3N0cm9uZz4gPGNvZGU+aHR0cHM6Ly9jZG4uZXhhbXBsZS5jb208L2NvZGU+PC9saT4KICAgICAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz5TMyBUcmFuc2ZlciBBY2NlbGVyYXRpb246PC9zdHJvbmc+IDxjb2RlPmh0dHBzOi8vYnVja2V0LnMzLWFjY2VsZXJhdGUuYW1hem9uYXdzLmNvbTwvY29kZT48L2xpPgogICAgICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPk1pbklPIC8gUzMtY29tcGF0aWJsZTo8L3N0cm9uZz4gPGNvZGU+aHR0cHM6Ly9taW5pby5leGFtcGxlLmNvbS9idWNrZXQ8L2NvZGU+PC9saT4KICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICA8c3Ryb25nPkV4YW1wbGU6PC9zdHJvbmc+IElmIHlvdXIgYnVja2V0IGlzIDxjb2RlPm15LWFzc2V0czwvY29kZT4gYW5kIHlvdSBzZXQgQ3VzdG9tIFVSTCB0byA8Y29kZT5odHRwczovL2Nkbi5leGFtcGxlLmNvbTwvY29kZT4sIHRoZW4gYSBmaWxlIGF0IGtleSA8Y29kZT5pbWFnZXMvcGhvdG8uanBnPC9jb2RlPiB3aWxsIGJlIHNlcnZlZCBhcyA8Y29kZT5odHRwczovL2Nkbi5leGFtcGxlLmNvbS9pbWFnZXMvcGhvdG8uanBnPC9jb2RlPi48YnI+PGJyPgogICAgICAgICAgICAgICAgUHJlc2lnbmVkIFVSTHMgd2lsbCBhbHNvIHVzZSB0aGUgY3VzdG9tIGRvbWFpbiAoc2NoZW1lIGFuZCBob3N0IGFyZSByZXBsYWNlZCB3aGlsZSBwcmVzZXJ2aW5nIHRoZSBzaWduZWQgcXVlcnkgcGFyYW1ldGVycykuCiAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgPC90cj4KICAgICAgICA8dHI+CiAgICAgICAgICAgIDx0ZD48c3Ryb25nPkFsbG93ZWQgRXh0ZW5zaW9uczwvc3Ryb25nPjwvdGQ+CiAgICAgICAgICAgIDx0ZD5Db21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBmaWxlIGV4dGVuc2lvbnMgYWxsb3dlZCBmb3IgdXBsb2FkIHRvIHRoaXMgYnVja2V0IChlLmcuIDxjb2RlPmpwZyxwbmcsZ2lmLHBkZix6aXA8L2NvZGU+KS4gTGVhdmUgZW1wdHkgdG8gYWxsb3cgYWxsIGZpbGUgdHlwZXMuPC90ZD4KICAgICAgICA8L3RyPgogICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkPjxzdHJvbmc+RGVmYXVsdDwvc3Ryb25nPjwvdGQ+CiAgICAgICAgICAgIDx0ZD5NYXJrIG9uZSBidWNrZXQgYXMgZGVmYXVsdC4gVGhpcyBidWNrZXQgaXMgdXNlZCB3aGVuIG5vIDxjb2RlPmJ1Y2tldDwvY29kZT4gcGFyYW1ldGVyIGlzIHNwZWNpZmllZCBpbiBmcm9udGVuZCB0YWdzIG9yIGZpZWxkIGRlZmluaXRpb25zLjwvdGQ+CiAgICAgICAgPC90cj4KICAgIDwvdGJvZHk+CjwvdGFibGU+Cgo8aDQ+TXVsdGlwbGUgQnVja2V0czwvaDQ+CjxwPllvdSBjYW4gZGVmaW5lIG11bHRpcGxlIGJ1Y2tldHMgZm9yIGRpZmZlcmVudCBwdXJwb3Nlcy4gUmVmZXJlbmNlIHRoZW0gYnkgSUQgb3IgbmFtZTo8L3A+CjxwcmU+CnsqIEJ5IGJ1Y2tldCBJRCAqfQp7QVdTUzMgYnVja2V0PSIyIiBwcmVmaXg9ImRvY3VtZW50cy8ifQoKeyogQnkgYnVja2V0IG5hbWUgKn0Ke0FXU1MzIGJ1Y2tldD0ibXktYXNzZXRzLWJ1Y2tldCJ9CjwvcHJlPgo8cD5UaGUgYnVja2V0IElEIGlzIHNob3duIGluIHRoZSBCdWNrZXRzIHRhYiB0YWJsZS4gSWYgb21pdHRlZCwgdGhlIGRlZmF1bHQgYnVja2V0IGlzIHVzZWQuPC9wPgoKPGhyPgoKPGgzPkZyb250ZW5kIFRhZ3M8L2gzPgoKPHByZT57QVdTUzN9PC9wcmU+CjxwcmU+e0FXU1MzIGJ1Y2tldD0ibXktYnVja2V0LW5hbWUifTwvcHJlPgo8cHJlPntBV1NTMyBidWNrZXQ9IjIiIHByZWZpeD0iaW1hZ2VzLyIgcGFnZWxpbWl0PSIyMCJ9PC9wcmU+CjxwcmU+e0FXU1MzIGFjdGlvbj1kZXRhaWwgcHJlZml4PSJwYXRoL3RvL2ZpbGUuanBnIn08L3ByZT4KPHByZT57QVdTUzMgYWN0aW9uPXVwbG9hZCBidWNrZXQ9IjIifTwvcHJlPgoKPGg0PlBhcmFtZXRlcnM8L2g0Pgo8dWw+CiAgICA8bGk+PHN0cm9uZz5hY3Rpb248L3N0cm9uZz4gLSAiZGVmYXVsdCIgKHN1bW1hcnkpLCAiZGV0YWlsIiwgb3IgInVwbG9hZCI8L2xpPgogICAgPGxpPjxzdHJvbmc+YnVja2V0PC9zdHJvbmc+IC0gQnVja2V0IElEIG9yIG5hbWUuIERlZmF1bHQgYnVja2V0IGlmIG9taXR0ZWQuPC9saT4KICAgIDxsaT48c3Ryb25nPnByZWZpeDwvc3Ryb25nPiAtIFMzIGtleSBwcmVmaXggcGF0aCBmaWx0ZXI8L2xpPgogICAgPGxpPjxzdHJvbmc+cGFnZWxpbWl0PC9zdHJvbmc+IC0gTWF4IGl0ZW1zIHBlciBwYWdlPC9saT4KICAgIDxsaT48c3Ryb25nPmRldGFpbHBhZ2U8L3N0cm9uZz4gLSBQYWdlIGFsaWFzL2lkIGZvciBkZXRhaWwgdmlldzwvbGk+CiAgICA8bGk+PHN0cm9uZz5zdW1tYXJ5dGVtcGxhdGU8L3N0cm9uZz4gLSBTdW1tYXJ5IHRlbXBsYXRlIG5hbWU8L2xpPgogICAgPGxpPjxzdHJvbmc+ZGV0YWlsdGVtcGxhdGU8L3N0cm9uZz4gLSBEZXRhaWwgdGVtcGxhdGUgbmFtZTwvbGk+CiAgICA8bGk+PHN0cm9uZz5ub2NhcHRjaGE8L3N0cm9uZz4gLSBTZXQgdG8gMSB0byBkaXNhYmxlIGNhcHRjaGEgb24gdXBsb2FkIGZvcm08L2xpPgogICAgPGxpPjxzdHJvbmc+cmVkaXJlY3Q8L3N0cm9uZz4gLSBQYWdlIGFsaWFzIHRvIHJlZGlyZWN0IGFmdGVyIHVwbG9hZDwvbGk+CjwvdWw+Cgo8aHI+Cgo8aDM+SW50ZWdyYXRpb24gd2l0aCBMSVNFPC9oMz4KCjxwPkFXU1MzIHByb3ZpZGVzIGEgY3VzdG9tIExJU0UgZmllbGQgZGVmaW5pdGlvbiAoPHN0cm9uZz5BV1MgUzMgRmlsZTwvc3Ryb25nPikgdGhhdCBhbGxvd3MgYW55IExJU0UgaW5zdGFuY2UgdG8gaW5jbHVkZSBhbiBTMyBmaWxlIHVwbG9hZCBmaWVsZC4gRmlsZXMgYXJlIHVwbG9hZGVkIGRpcmVjdGx5IHRvIFMzIHdoZW4gYW4gaXRlbSBpcyBzYXZlZC48L3A+Cgo8aDQ+U2V0dXA8L2g0Pgo8cD5HbyB0byBhbnkgTElTRSBpbnN0YW5jZSBhZG1pbiwgRmllbGQgRGVmaW5pdGlvbnMgdGFiLCBjbGljayAiU2NhbiBNb2R1bGVzIi4gVGhlIDxzdHJvbmc+QVdTIFMzIEZpbGU8L3N0cm9uZz4gdHlwZSB3aWxsIGFwcGVhciBpbiB0aGUgZHJvcGRvd24gd2hlbiBhZGRpbmcgYSBuZXcgZmllbGQuPC9wPgoKPGg0PkZpZWxkIE9wdGlvbnM8L2g0Pgo8dGFibGU+CiAgICA8dGhlYWQ+PHRyPjx0aD5PcHRpb248L3RoPjx0aD5EZXNjcmlwdGlvbjwvdGg+PC90cj48L3RoZWFkPgogICAgPHRib2R5PgogICAgICAgIDx0cj48dGQ+PGNvZGU+YnVja2V0X2lkPC9jb2RlPjwvdGQ+PHRkPlRhcmdldCBidWNrZXQgSUQgKGJsYW5rID0gZGVmYXVsdCBidWNrZXQpPC90ZD48L3RyPgogICAgICAgIDx0cj48dGQ+PGNvZGU+cHJlZml4PC9jb2RlPjwvdGQ+PHRkPlMzIGtleSBwcmVmaXggZm9yIHVwbG9hZHMsIGUuZy4gPGNvZGU+dXBsb2Fkcy9kb2NzPC9jb2RlPjwvdGQ+PC90cj4KICAgICAgICA8dHI+PHRkPjxjb2RlPmFsbG93ZWRfZXh0ZW5zaW9uczwvY29kZT48L3RkPjx0ZD5Db21tYS1zZXBhcmF0ZWQgbGlzdCwgZS5nLiA8Y29kZT5wZGYsZG9jeCx6aXA8L2NvZGU+PC90ZD48L3RyPgogICAgICAgIDx0cj48dGQ+PGNvZGU+c3RvcmVfbWV0YWRhdGE8L2NvZGU+PC90ZD48dGQ+U2V0IHRvIDxjb2RlPjE8L2NvZGU+IHRvIHN0b3JlIEpTT04gbWV0YWRhdGEgKGZpbGVuYW1lLCBzaXplLCB1cmwsIHRpbWVzdGFtcCk8L3RkPjwvdHI+CiAgICAgICAgPHRyPjx0ZD48Y29kZT5tYXhfc2l6ZTwvY29kZT48L3RkPjx0ZD5NYXggdXBsb2FkIGluIGJ5dGVzICgwID0gbm8gbGltaXQpPC90ZD48L3RyPgogICAgICAgIDx0cj48dGQ+PGNvZGU+ZGVsZXRlX29uX2NsZWFyPC9jb2RlPjwvdGQ+PHRkPlNldCB0byA8Y29kZT4xPC9jb2RlPiB0byBkZWxldGUgZnJvbSBTMyB3aGVuIGZpZWxkIGlzIGNsZWFyZWQgb3IgaXRlbSBkZWxldGVkPC90ZD48L3RyPgogICAgPC90Ym9keT4KPC90YWJsZT4KCjxoND5UZW1wbGF0ZSBVc2FnZTwvaDQ+CjxwcmU+CnsqIEdldCB0aGUgZmlsZSBVUkwgKn0KeyRpdGVtLT5maWVsZGRlZnMubXlfczNfZmllbGQtPkdldEZpbGVVcmwoKX0KCnsqIEdldCBhIHByZXNpZ25lZCBVUkwgKGZvciBwcml2YXRlIGJ1Y2tldHMpICp9CnskaXRlbS0+ZmllbGRkZWZzLm15X3MzX2ZpZWxkLT5HZXRQcmVzaWduZWRVcmwoKX0KCnsqIEdldCBhIHJlZGlyZWN0LWJhc2VkIHNpZ25lZCBsaW5rIChuZXZlciBleHBpcmVzIGluIGNhY2hlZCBwYWdlcykgKn0KeyRpdGVtLT5maWVsZGRlZnMubXlfczNfZmllbGQtPkdldFNpZ25lZExpbmsoKX0KCnsqIEFjY2VzcyBtZXRhZGF0YSAod2hlbiBzdG9yZV9tZXRhZGF0YSBpcyBlbmFibGVkKSAqfQp7YXNzaWduIHZhcj1tZXRhIHZhbHVlPSRpdGVtLT5maWVsZGRlZnMubXlfczNfZmllbGQtPkdldE1ldGFkYXRhKCl9CntpZiAkbWV0YX0KICAgICZsdDthIGhyZWY9InskaXRlbS0+ZmllbGRkZWZzLm15X3MzX2ZpZWxkLT5HZXRTaWduZWRMaW5rKCl9IiZndDt7JG1ldGEuZmlsZW5hbWV9Jmx0Oy9hJmd0OwogICAgKHskbWV0YS5zaXplfSBieXRlcywgdXBsb2FkZWQgeyRtZXRhLnVwbG9hZGVkX2F0fSkKey9pZn0KPC9wcmU+Cgo8aHI+Cgo8aDM+SW50ZWdyYXRpb24gd2l0aCBFQ0IyPC9oMz4KCjxwPkFXU1MzIHByb3ZpZGVzIHR3byBFQ0IyIGNvbnRlbnQgYmxvY2sgZmllbGQgdHlwZXMgZm9yIHVzZSBpbiBwYWdlIHRlbXBsYXRlcy4gVGhlc2UgcmVxdWlyZSB0aGUgRUNCMiBtb2R1bGUgKHYyLjQuNCsgd2l0aCBleHRlcm5hbCBmaWVsZCB0eXBlIHN1cHBvcnQpLjwvcD4KCjxoND5zM19maWxlX3BpY2tlcjwvaDQ+CjxwPkEgZHJvcGRvd24gc2VsZWN0b3IgcG9wdWxhdGVkIHdpdGggZXhpc3RpbmcgZmlsZXMgZnJvbSBhbiBTMyBidWNrZXQuIFRoZSBlZGl0b3IgcGlja3MgYSBmaWxlIGFuZCB0aGUgUzMga2V5IGlzIHN0b3JlZCBhcyB0aGUgY29udGVudCBibG9jayB2YWx1ZS48L3A+Cgo8cHJlPgp7KiBCYXNpYyB1c2FnZSAtIGxpc3RzIGZpbGVzIGZyb20gZGVmYXVsdCBidWNrZXQgKn0Ke2NvbnRlbnRfbW9kdWxlIG1vZHVsZT1FQ0IyIGZpZWxkPXMzX2ZpbGVfcGlja2VyIGJsb2NrPWRvd25sb2FkX2ZpbGUgbGFiZWw9IkRvd25sb2FkIEZpbGUifQoKeyogV2l0aCBidWNrZXQsIHByZWZpeCBmaWx0ZXIsIGFuZCBleHRlbnNpb24gZmlsdGVyICp9Cntjb250ZW50X21vZHVsZSBtb2R1bGU9RUNCMiBmaWVsZD1zM19maWxlX3BpY2tlciBibG9jaz1oZXJvX2ltYWdlIGJ1Y2tldD0yIHByZWZpeD0iaW1hZ2VzLyIgYWxsb3dlZF9leHQ9ImpwZyxwbmcsd2VicCIgbGFiZWw9Ikhlcm8gSW1hZ2UifQo8L3ByZT4KCjx0YWJsZT4KICAgIDx0aGVhZD48dHI+PHRoPlBhcmFtZXRlcjwvdGg+PHRoPkRlc2NyaXB0aW9uPC90aD48L3RyPjwvdGhlYWQ+CiAgICA8dGJvZHk+CiAgICAgICAgPHRyPjx0ZD48Y29kZT5idWNrZXQ8L2NvZGU+PC90ZD48dGQ+QnVja2V0IElEIG9yIG5hbWUgKGRlZmF1bHQgYnVja2V0IGlmIG9taXR0ZWQpPC90ZD48L3RyPgogICAgICAgIDx0cj48dGQ+PGNvZGU+cHJlZml4PC9jb2RlPjwvdGQ+PHRkPlMzIGtleSBwcmVmaXggdG8gZmlsdGVyIGxpc3RlZCBmaWxlczwvdGQ+PC90cj4KICAgICAgICA8dHI+PHRkPjxjb2RlPmFsbG93ZWRfZXh0PC9jb2RlPjwvdGQ+PHRkPkNvbW1hLXNlcGFyYXRlZCBleHRlbnNpb24gZmlsdGVyPC90ZD48L3RyPgogICAgICAgIDx0cj48dGQ+PGNvZGU+c2hvd19wcmV2aWV3PC9jb2RlPjwvdGQ+PHRkPlNob3cgaW1hZ2UgcHJldmlldyBmb3Igc2VsZWN0ZWQgZmlsZSAoZGVmYXVsdDogdHJ1ZSk8L3RkPjwvdHI+CiAgICAgICAgPHRyPjx0ZD48Y29kZT5sYWJlbDwvY29kZT48L3RkPjx0ZD5GcmllbmRseSBsYWJlbCBzaG93biB0byB0aGUgZWRpdG9yPC90ZD48L3RyPgogICAgICAgIDx0cj48dGQ+PGNvZGU+ZGVzY3JpcHRpb248L2NvZGU+PC90ZD48dGQ+SGVscGVyIHRleHQgc2hvd24gYWJvdmUgdGhlIGZpZWxkPC90ZD48L3RyPgogICAgICAgIDx0cj48dGQ+PGNvZGU+YWRtaW5fZ3JvdXBzPC9jb2RlPjwvdGQ+PHRkPlJlc3RyaWN0IHZpc2liaWxpdHkgdG8gc3BlY2lmaWMgYWRtaW4gZ3JvdXBzPC90ZD48L3RyPgogICAgPC90Ym9keT4KPC90YWJsZT4KCjxoND5zM19maWxlX3NlbGVjdG9yPC9oND4KPHA+QSBmaWxlIHVwbG9hZCBpbnB1dCB0aGF0IHNhdmVzIGRpcmVjdGx5IHRvIFMzLiBTaG93cyB0aGUgY3VycmVudCBmaWxlIHdpdGggYSB0aHVtYm5haWwgcHJldmlldyAoZm9yIGltYWdlcykgYW5kIGEgcmVtb3ZlIG9wdGlvbi48L3A+Cgo8cHJlPgp7KiBCYXNpYyB1cGxvYWQgZmllbGQgKn0Ke2NvbnRlbnRfbW9kdWxlIG1vZHVsZT1FQ0IyIGZpZWxkPXMzX2ZpbGVfc2VsZWN0b3IgYmxvY2s9ZG9jdW1lbnQgbGFiZWw9IlVwbG9hZCBEb2N1bWVudCJ9Cgp7KiBXaXRoIGNvbnN0cmFpbnRzICp9Cntjb250ZW50X21vZHVsZSBtb2R1bGU9RUNCMiBmaWVsZD1zM19maWxlX3NlbGVjdG9yIGJsb2NrPXBob3RvIGJ1Y2tldD0yIHByZWZpeD0icGhvdG9zLyIgYWxsb3dlZF9leHQ9ImpwZyxwbmcsd2VicCIgbWF4X3NpemU9NTI0Mjg4MCBsYWJlbD0iUGhvdG8ifQo8L3ByZT4KCjx0YWJsZT4KICAgIDx0aGVhZD48dHI+PHRoPlBhcmFtZXRlcjwvdGg+PHRoPkRlc2NyaXB0aW9uPC90aD48L3RyPjwvdGhlYWQ+CiAgICA8dGJvZHk+CiAgICAgICAgPHRyPjx0ZD48Y29kZT5idWNrZXQ8L2NvZGU+PC90ZD48dGQ+QnVja2V0IElEIG9yIG5hbWUgKGRlZmF1bHQgYnVja2V0IGlmIG9taXR0ZWQpPC90ZD48L3RyPgogICAgICAgIDx0cj48dGQ+PGNvZGU+cHJlZml4PC9jb2RlPjwvdGQ+PHRkPlMzIGtleSBwcmVmaXggZm9yIHVwbG9hZGVkIGZpbGVzPC90ZD48L3RyPgogICAgICAgIDx0cj48dGQ+PGNvZGU+YWxsb3dlZF9leHQ8L2NvZGU+PC90ZD48dGQ+Q29tbWEtc2VwYXJhdGVkIGFsbG93ZWQgZXh0ZW5zaW9uczwvdGQ+PC90cj4KICAgICAgICA8dHI+PHRkPjxjb2RlPm1heF9zaXplPC9jb2RlPjwvdGQ+PHRkPk1heGltdW0gdXBsb2FkIHNpemUgaW4gYnl0ZXMgKDAgPSBubyBsaW1pdCk8L3RkPjwvdHI+CiAgICAgICAgPHRyPjx0ZD48Y29kZT5zaG93X3ByZXZpZXc8L2NvZGU+PC90ZD48dGQ+U2hvdyBpbWFnZSB0aHVtYm5haWwgZm9yIGN1cnJlbnQgZmlsZSAoZGVmYXVsdDogdHJ1ZSk8L3RkPjwvdHI+CiAgICAgICAgPHRyPjx0ZD48Y29kZT5sYWJlbDwvY29kZT48L3RkPjx0ZD5GcmllbmRseSBsYWJlbCBzaG93biB0byB0aGUgZWRpdG9yPC90ZD48L3RyPgogICAgICAgIDx0cj48dGQ+PGNvZGU+ZGVzY3JpcHRpb248L2NvZGU+PC90ZD48dGQ+SGVscGVyIHRleHQgc2hvd24gYWJvdmUgdGhlIGZpZWxkPC90ZD48L3RyPgogICAgICAgIDx0cj48dGQ+PGNvZGU+YWRtaW5fZ3JvdXBzPC9jb2RlPjwvdGQ+PHRkPlJlc3RyaWN0IHZpc2liaWxpdHkgdG8gc3BlY2lmaWMgYWRtaW4gZ3JvdXBzPC90ZD48L3RyPgogICAgPC90Ym9keT4KPC90YWJsZT4KCjxoND5Gcm9udGVuZCBPdXRwdXQ8L2g0Pgo8cD5Cb3RoIGZpZWxkIHR5cGVzIHN0b3JlIHRoZSBTMyBrZXkgYXMgdGhlIGNvbnRlbnQgYmxvY2sgdmFsdWUuIFVzZSBpdCBpbiB5b3VyIHBhZ2UgdGVtcGxhdGU6PC9wPgoKPHByZT4KeyogVGhlIHJhdyBTMyBrZXkgKn0KeyRteV9kb3dubG9hZH0KCnsqIEJ1aWxkIGEgVVJMIHVzaW5nIHRoZSBBV1NTMyBkZXRhaWwgYWN0aW9uICp9CntBV1NTMyBhY3Rpb249ZGV0YWlsIHByZWZpeD0kbXlfZG93bmxvYWR9Cgp7KiBPciB1c2UgdGhlIHNpZ25lZCByZWRpcmVjdCByb3V0ZSAobmV2ZXIgZXhwaXJlcyBpbiBjYWNoZSkgKn0KJmx0O2EgaHJlZj0ie2Ntc19yb290X3VybH0vUzMvcy97JG15X2Rvd25sb2FkfHVybGVuY29kZX0iJmd0O0Rvd25sb2FkJmx0Oy9hJmd0Owo8L3ByZT4K]]></data>
	</file>
	<file>
		<filename>/js</filename>
		<isdir>1</isdir>
	</file>
	<file>
		<filename>/js/jquery-file-upload</filename>
		<isdir>1</isdir>
	</file>
	<file>
		<filename>/js/jquery-file-upload/index.html</filename>
		<isdir>0</isdir>
		<data><![CDATA[PCEtLSBEVU1NWSBIVE1MIEZJTEUgLS0+]]></data>
	</file>
	<file>
		<filename>/js/jquery-file-upload/jquery.fileupload.js</filename>
		<isdir>0</isdir>
		<data><![CDATA[LyoNCiAqIGpRdWVyeSBGaWxlIFVwbG9hZCBQbHVnaW4gNS4zMS42DQogKiBodHRwczovL2dpdGh1Yi5jb20vYmx1ZWltcC9qUXVlcnktRmlsZS1VcGxvYWQNCiAqDQogKiBDb3B5cmlnaHQgMjAxMCwgU2ViYXN0aWFuIFRzY2hhbg0KICogaHR0cHM6Ly9ibHVlaW1wLm5ldA0KICoNCiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZToNCiAqIGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUDQogKi8NCg0KLypqc2xpbnQgbm9tZW46IHRydWUsIHVucGFyYW06IHRydWUsIHJlZ2V4cDogdHJ1ZSAqLw0KLypnbG9iYWwgZGVmaW5lLCB3aW5kb3csIGRvY3VtZW50LCBsb2NhdGlvbiwgRmlsZSwgQmxvYiwgRm9ybURhdGEgKi8NCg0KKGZ1bmN0aW9uIChmYWN0b3J5KSB7DQogICAgJ3VzZSBzdHJpY3QnOw0KICAgIGlmICh0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpIHsNCiAgICAgICAgLy8gUmVnaXN0ZXIgYXMgYW4gYW5vbnltb3VzIEFNRCBtb2R1bGU6DQogICAgICAgIGRlZmluZShbDQogICAgICAgICAgICAnanF1ZXJ5JywNCiAgICAgICAgICAgICdqcXVlcnkudWkud2lkZ2V0Jw0KICAgICAgICBdLCBmYWN0b3J5KTsNCiAgICB9IGVsc2Ugew0KICAgICAgICAvLyBCcm93c2VyIGdsb2JhbHM6DQogICAgICAgIGZhY3Rvcnkod2luZG93LmpRdWVyeSk7DQogICAgfQ0KfShmdW5jdGlvbiAoJCkgew0KICAgICd1c2Ugc3RyaWN0JzsNCg0KICAgIC8vIFRoZSBGaWxlUmVhZGVyIEFQSSBpcyBub3QgYWN0dWFsbHkgdXNlZCwgYnV0IHdvcmtzIGFzIGZlYXR1cmUgZGV0ZWN0aW9uLA0KICAgIC8vIGFzIGUuZy4gU2FmYXJpIHN1cHBvcnRzIFhIUiBmaWxlIHVwbG9hZHMgdmlhIHRoZSBGb3JtRGF0YSBBUEksDQogICAgLy8gYnV0IG5vdCBub24tbXVsdGlwYXJ0IFhIUiBmaWxlIHVwbG9hZHM6DQogICAgJC5zdXBwb3J0LnhockZpbGVVcGxvYWQgPSAhISh3aW5kb3cuWE1MSHR0cFJlcXVlc3RVcGxvYWQgJiYgd2luZG93LkZpbGVSZWFkZXIpOw0KICAgICQuc3VwcG9ydC54aHJGb3JtRGF0YUZpbGVVcGxvYWQgPSAhIXdpbmRvdy5Gb3JtRGF0YTsNCg0KICAgIC8vIERldGVjdCBzdXBwb3J0IGZvciBCbG9iIHNsaWNpbmcgKHJlcXVpcmVkIGZvciBjaHVua2VkIHVwbG9hZHMpOg0KICAgICQuc3VwcG9ydC5ibG9iU2xpY2UgPSB3aW5kb3cuQmxvYiAmJiAoQmxvYi5wcm90b3R5cGUuc2xpY2UgfHwNCiAgICAgICAgQmxvYi5wcm90b3R5cGUud2Via2l0U2xpY2UgfHwgQmxvYi5wcm90b3R5cGUubW96U2xpY2UpOw0KDQogICAgLy8gVGhlIGZpbGV1cGxvYWQgd2lkZ2V0IGxpc3RlbnMgZm9yIGNoYW5nZSBldmVudHMgb24gZmlsZSBpbnB1dCBmaWVsZHMgZGVmaW5lZA0KICAgIC8vIHZpYSBmaWxlSW5wdXQgc2V0dGluZyBhbmQgcGFzdGUgb3IgZHJvcCBldmVudHMgb2YgdGhlIGdpdmVuIGRyb3Bab25lLg0KICAgIC8vIEluIGFkZGl0aW9uIHRvIHRoZSBkZWZhdWx0IGpRdWVyeSBXaWRnZXQgbWV0aG9kcywgdGhlIGZpbGV1cGxvYWQgd2lkZ2V0DQogICAgLy8gZXhwb3NlcyB0aGUgImFkZCIgYW5kICJzZW5kIiBtZXRob2RzLCB0byBhZGQgb3IgZGlyZWN0bHkgc2VuZCBmaWxlcyB1c2luZw0KICAgIC8vIHRoZSBmaWxldXBsb2FkIEFQSS4NCiAgICAvLyBCeSBkZWZhdWx0LCBmaWxlcyBhZGRlZCB2aWEgZmlsZSBpbnB1dCBzZWxlY3Rpb24sIHBhc3RlLCBkcmFnICYgZHJvcCBvcg0KICAgIC8vICJhZGQiIG1ldGhvZCBhcmUgdXBsb2FkZWQgaW1tZWRpYXRlbHksIGJ1dCBpdCBpcyBwb3NzaWJsZSB0byBvdmVycmlkZQ0KICAgIC8vIHRoZSAiYWRkIiBjYWxsYmFjayBvcHRpb24gdG8gcXVldWUgZmlsZSB1cGxvYWRzLg0KICAgICQud2lkZ2V0KCdibHVlaW1wLmZpbGV1cGxvYWQnLCB7DQoNCiAgICAgICAgb3B0aW9uczogew0KICAgICAgICAgICAgLy8gVGhlIGRyb3AgdGFyZ2V0IGVsZW1lbnQocyksIGJ5IHRoZSBkZWZhdWx0IHRoZSBjb21wbGV0ZSBkb2N1bWVudC4NCiAgICAgICAgICAgIC8vIFNldCB0byBudWxsIHRvIGRpc2FibGUgZHJhZyAmIGRyb3Agc3VwcG9ydDoNCiAgICAgICAgICAgIGRyb3Bab25lOiAkKGRvY3VtZW50KSwNCiAgICAgICAgICAgIC8vIFRoZSBwYXN0ZSB0YXJnZXQgZWxlbWVudChzKSwgYnkgdGhlIGRlZmF1bHQgdGhlIGNvbXBsZXRlIGRvY3VtZW50Lg0KICAgICAgICAgICAgLy8gU2V0IHRvIG51bGwgdG8gZGlzYWJsZSBwYXN0ZSBzdXBwb3J0Og0KICAgICAgICAgICAgcGFzdGVab25lOiAkKGRvY3VtZW50KSwNCiAgICAgICAgICAgIC8vIFRoZSBmaWxlIGlucHV0IGZpZWxkKHMpLCB0aGF0IGFyZSBsaXN0ZW5lZCB0byBmb3IgY2hhbmdlIGV2ZW50cy4NCiAgICAgICAgICAgIC8vIElmIHVuZGVmaW5lZCwgaXQgaXMgc2V0IHRvIHRoZSBmaWxlIGlucHV0IGZpZWxkcyBpbnNpZGUNCiAgICAgICAgICAgIC8vIG9mIHRoZSB3aWRnZXQgZWxlbWVudCBvbiBwbHVnaW4gaW5pdGlhbGl6YXRpb24uDQogICAgICAgICAgICAvLyBTZXQgdG8gbnVsbCB0byBkaXNhYmxlIHRoZSBjaGFuZ2UgbGlzdGVuZXIuDQogICAgICAgICAgICBmaWxlSW5wdXQ6IHVuZGVmaW5lZCwNCiAgICAgICAgICAgIC8vIEJ5IGRlZmF1bHQsIHRoZSBmaWxlIGlucHV0IGZpZWxkIGlzIHJlcGxhY2VkIHdpdGggYSBjbG9uZSBhZnRlcg0KICAgICAgICAgICAgLy8gZWFjaCBpbnB1dCBmaWVsZCBjaGFuZ2UgZXZlbnQuIFRoaXMgaXMgcmVxdWlyZWQgZm9yIGlmcmFtZSB0cmFuc3BvcnQNCiAgICAgICAgICAgIC8vIHF1ZXVlcyBhbmQgYWxsb3dzIGNoYW5nZSBldmVudHMgdG8gYmUgZmlyZWQgZm9yIHRoZSBzYW1lIGZpbGUNCiAgICAgICAgICAgIC8vIHNlbGVjdGlvbiwgYnV0IGNhbiBiZSBkaXNhYmxlZCBieSBzZXR0aW5nIHRoZSBmb2xsb3dpbmcgb3B0aW9uIHRvIGZhbHNlOg0KICAgICAgICAgICAgcmVwbGFjZUZpbGVJbnB1dDogdHJ1ZSwNCiAgICAgICAgICAgIC8vIFRoZSBwYXJhbWV0ZXIgbmFtZSBmb3IgdGhlIGZpbGUgZm9ybSBkYXRhICh0aGUgcmVxdWVzdCBhcmd1bWVudCBuYW1lKS4NCiAgICAgICAgICAgIC8vIElmIHVuZGVmaW5lZCBvciBlbXB0eSwgdGhlIG5hbWUgcHJvcGVydHkgb2YgdGhlIGZpbGUgaW5wdXQgZmllbGQgaXMNCiAgICAgICAgICAgIC8vIHVzZWQsIG9yICJmaWxlc1tdIiBpZiB0aGUgZmlsZSBpbnB1dCBuYW1lIHByb3BlcnR5IGlzIGFsc28gZW1wdHksDQogICAgICAgICAgICAvLyBjYW4gYmUgYSBzdHJpbmcgb3IgYW4gYXJyYXkgb2Ygc3RyaW5nczoNCiAgICAgICAgICAgIHBhcmFtTmFtZTogdW5kZWZpbmVkLA0KICAgICAgICAgICAgLy8gQnkgZGVmYXVsdCwgZWFjaCBmaWxlIG9mIGEgc2VsZWN0aW9uIGlzIHVwbG9hZGVkIHVzaW5nIGFuIGluZGl2aWR1YWwNCiAgICAgICAgICAgIC8vIHJlcXVlc3QgZm9yIFhIUiB0eXBlIHVwbG9hZHMuIFNldCB0byBmYWxzZSB0byB1cGxvYWQgZmlsZQ0KICAgICAgICAgICAgLy8gc2VsZWN0aW9ucyBpbiBvbmUgcmVxdWVzdCBlYWNoOg0KICAgICAgICAgICAgc2luZ2xlRmlsZVVwbG9hZHM6IHRydWUsDQogICAgICAgICAgICAvLyBUbyBsaW1pdCB0aGUgbnVtYmVyIG9mIGZpbGVzIHVwbG9hZGVkIHdpdGggb25lIFhIUiByZXF1ZXN0LA0KICAgICAgICAgICAgLy8gc2V0IHRoZSBmb2xsb3dpbmcgb3B0aW9uIHRvIGFuIGludGVnZXIgZ3JlYXRlciB0aGFuIDA6DQogICAgICAgICAgICBsaW1pdE11bHRpRmlsZVVwbG9hZHM6IHVuZGVmaW5lZCwNCiAgICAgICAgICAgIC8vIFNldCB0aGUgZm9sbG93aW5nIG9wdGlvbiB0byB0cnVlIHRvIGlzc3VlIGFsbCBmaWxlIHVwbG9hZCByZXF1ZXN0cw0KICAgICAgICAgICAgLy8gaW4gYSBzZXF1ZW50aWFsIG9yZGVyOg0KICAgICAgICAgICAgc2VxdWVudGlhbFVwbG9hZHM6IGZhbHNlLA0KICAgICAgICAgICAgLy8gVG8gbGltaXQgdGhlIG51bWJlciBvZiBjb25jdXJyZW50IHVwbG9hZHMsDQogICAgICAgICAgICAvLyBzZXQgdGhlIGZvbGxvd2luZyBvcHRpb24gdG8gYW4gaW50ZWdlciBncmVhdGVyIHRoYW4gMDoNCiAgICAgICAgICAgIGxpbWl0Q29uY3VycmVudFVwbG9hZHM6IHVuZGVmaW5lZCwNCiAgICAgICAgICAgIC8vIFNldCB0aGUgZm9sbG93aW5nIG9wdGlvbiB0byB0cnVlIHRvIGZvcmNlIGlmcmFtZSB0cmFuc3BvcnQgdXBsb2FkczoNCiAgICAgICAgICAgIGZvcmNlSWZyYW1lVHJhbnNwb3J0OiBmYWxzZSwNCiAgICAgICAgICAgIC8vIFNldCB0aGUgZm9sbG93aW5nIG9wdGlvbiB0byB0aGUgbG9jYXRpb24gb2YgYSByZWRpcmVjdCB1cmwgb24gdGhlDQogICAgICAgICAgICAvLyBvcmlnaW4gc2VydmVyLCBmb3IgY3Jvc3MtZG9tYWluIGlmcmFtZSB0cmFuc3BvcnQgdXBsb2FkczoNCiAgICAgICAgICAgIHJlZGlyZWN0OiB1bmRlZmluZWQsDQogICAgICAgICAgICAvLyBUaGUgcGFyYW1ldGVyIG5hbWUgZm9yIHRoZSByZWRpcmVjdCB1cmwsIHNlbnQgYXMgcGFydCBvZiB0aGUgZm9ybQ0KICAgICAgICAgICAgLy8gZGF0YSBhbmQgc2V0IHRvICdyZWRpcmVjdCcgaWYgdGhpcyBvcHRpb24gaXMgZW1wdHk6DQogICAgICAgICAgICByZWRpcmVjdFBhcmFtTmFtZTogdW5kZWZpbmVkLA0KICAgICAgICAgICAgLy8gU2V0IHRoZSBmb2xsb3dpbmcgb3B0aW9uIHRvIHRoZSBsb2NhdGlvbiBvZiBhIHBvc3RNZXNzYWdlIHdpbmRvdywNCiAgICAgICAgICAgIC8vIHRvIGVuYWJsZSBwb3N0TWVzc2FnZSB0cmFuc3BvcnQgdXBsb2FkczoNCiAgICAgICAgICAgIHBvc3RNZXNzYWdlOiB1bmRlZmluZWQsDQogICAgICAgICAgICAvLyBCeSBkZWZhdWx0LCBYSFIgZmlsZSB1cGxvYWRzIGFyZSBzZW50IGFzIG11bHRpcGFydC9mb3JtLWRhdGEuDQogICAgICAgICAgICAvLyBUaGUgaWZyYW1lIHRyYW5zcG9ydCBpcyBhbHdheXMgdXNpbmcgbXVsdGlwYXJ0L2Zvcm0tZGF0YS4NCiAgICAgICAgICAgIC8vIFNldCB0byBmYWxzZSB0byBlbmFibGUgbm9uLW11bHRpcGFydCBYSFIgdXBsb2FkczoNCiAgICAgICAgICAgIG11bHRpcGFydDogdHJ1ZSwNCiAgICAgICAgICAgIC8vIFRvIHVwbG9hZCBsYXJnZSBmaWxlcyBpbiBzbWFsbGVyIGNodW5rcywgc2V0IHRoZSBmb2xsb3dpbmcgb3B0aW9uDQogICAgICAgICAgICAvLyB0byBhIHByZWZlcnJlZCBtYXhpbXVtIGNodW5rIHNpemUuIElmIHNldCB0byAwLCBudWxsIG9yIHVuZGVmaW5lZCwNCiAgICAgICAgICAgIC8vIG9yIHRoZSBicm93c2VyIGRvZXMgbm90IHN1cHBvcnQgdGhlIHJlcXVpcmVkIEJsb2IgQVBJLCBmaWxlcyB3aWxsDQogICAgICAgICAgICAvLyBiZSB1cGxvYWRlZCBhcyBhIHdob2xlLg0KICAgICAgICAgICAgbWF4Q2h1bmtTaXplOiB1bmRlZmluZWQsDQogICAgICAgICAgICAvLyBXaGVuIGEgbm9uLW11bHRpcGFydCB1cGxvYWQgb3IgYSBjaHVua2VkIG11bHRpcGFydCB1cGxvYWQgaGFzIGJlZW4NCiAgICAgICAgICAgIC8vIGFib3J0ZWQsIHRoaXMgb3B0aW9uIGNhbiBiZSB1c2VkIHRvIHJlc3VtZSB0aGUgdXBsb2FkIGJ5IHNldHRpbmcNCiAgICAgICAgICAgIC8vIGl0IHRvIHRoZSBzaXplIG9mIHRoZSBhbHJlYWR5IHVwbG9hZGVkIGJ5dGVzLiBUaGlzIG9wdGlvbiBpcyBtb3N0DQogICAgICAgICAgICAvLyB1c2VmdWwgd2hlbiBtb2RpZnlpbmcgdGhlIG9wdGlvbnMgb2JqZWN0IGluc2lkZSBvZiB0aGUgImFkZCIgb3INCiAgICAgICAgICAgIC8vICJzZW5kIiBjYWxsYmFja3MsIGFzIHRoZSBvcHRpb25zIGFyZSBjbG9uZWQgZm9yIGVhY2ggZmlsZSB1cGxvYWQuDQogICAgICAgICAgICB1cGxvYWRlZEJ5dGVzOiB1bmRlZmluZWQsDQogICAgICAgICAgICAvLyBCeSBkZWZhdWx0LCBmYWlsZWQgKGFib3J0IG9yIGVycm9yKSBmaWxlIHVwbG9hZHMgYXJlIHJlbW92ZWQgZnJvbSB0aGUNCiAgICAgICAgICAgIC8vIGdsb2JhbCBwcm9ncmVzcyBjYWxjdWxhdGlvbi4gU2V0IHRoZSBmb2xsb3dpbmcgb3B0aW9uIHRvIGZhbHNlIHRvDQogICAgICAgICAgICAvLyBwcmV2ZW50IHJlY2FsY3VsYXRpbmcgdGhlIGdsb2JhbCBwcm9ncmVzcyBkYXRhOg0KICAgICAgICAgICAgcmVjYWxjdWxhdGVQcm9ncmVzczogdHJ1ZSwNCiAgICAgICAgICAgIC8vIEludGVydmFsIGluIG1pbGxpc2Vjb25kcyB0byBjYWxjdWxhdGUgYW5kIHRyaWdnZXIgcHJvZ3Jlc3MgZXZlbnRzOg0KICAgICAgICAgICAgcHJvZ3Jlc3NJbnRlcnZhbDogMTAwLA0KICAgICAgICAgICAgLy8gSW50ZXJ2YWwgaW4gbWlsbGlzZWNvbmRzIHRvIGNhbGN1bGF0ZSBwcm9ncmVzcyBiaXRyYXRlOg0KICAgICAgICAgICAgYml0cmF0ZUludGVydmFsOiA1MDAsDQogICAgICAgICAgICAvLyBCeSBkZWZhdWx0LCB1cGxvYWRzIGFyZSBzdGFydGVkIGF1dG9tYXRpY2FsbHkgd2hlbiBhZGRpbmcgZmlsZXM6DQogICAgICAgICAgICBhdXRvVXBsb2FkOiB0cnVlLA0KDQogICAgICAgICAgICAvLyBFcnJvciBhbmQgaW5mbyBtZXNzYWdlczoNCiAgICAgICAgICAgIG1lc3NhZ2VzOiB7DQogICAgICAgICAgICAgICAgdXBsb2FkZWRCeXRlczogJ1VwbG9hZGVkIGJ5dGVzIGV4Y2VlZCBmaWxlIHNpemUnDQogICAgICAgICAgICB9LA0KDQogICAgICAgICAgICAvLyBUcmFuc2xhdGlvbiBmdW5jdGlvbiwgZ2V0cyB0aGUgbWVzc2FnZSBrZXkgdG8gYmUgdHJhbnNsYXRlZA0KICAgICAgICAgICAgLy8gYW5kIGFuIG9iamVjdCB3aXRoIGNvbnRleHQgc3BlY2lmaWMgZGF0YSBhcyBhcmd1bWVudHM6DQogICAgICAgICAgICBpMThuOiBmdW5jdGlvbiAobWVzc2FnZSwgY29udGV4dCkgew0KICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSB0aGlzLm1lc3NhZ2VzW21lc3NhZ2VdIHx8IG1lc3NhZ2UudG9TdHJpbmcoKTsNCiAgICAgICAgICAgICAgICBpZiAoY29udGV4dCkgew0KICAgICAgICAgICAgICAgICAgICAkLmVhY2goY29udGV4dCwgZnVuY3Rpb24gKGtleSwgdmFsdWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlLnJlcGxhY2UoJ3snICsga2V5ICsgJ30nLCB2YWx1ZSk7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICByZXR1cm4gbWVzc2FnZTsNCiAgICAgICAgICAgIH0sDQoNCiAgICAgICAgICAgIC8vIEFkZGl0aW9uYWwgZm9ybSBkYXRhIHRvIGJlIHNlbnQgYWxvbmcgd2l0aCB0aGUgZmlsZSB1cGxvYWRzIGNhbiBiZSBzZXQNCiAgICAgICAgICAgIC8vIHVzaW5nIHRoaXMgb3B0aW9uLCB3aGljaCBhY2NlcHRzIGFuIGFycmF5IG9mIG9iamVjdHMgd2l0aCBuYW1lIGFuZA0KICAgICAgICAgICAgLy8gdmFsdWUgcHJvcGVydGllcywgYSBmdW5jdGlvbiByZXR1cm5pbmcgc3VjaCBhbiBhcnJheSwgYSBGb3JtRGF0YQ0KICAgICAgICAgICAgLy8gb2JqZWN0IChmb3IgWEhSIGZpbGUgdXBsb2FkcyksIG9yIGEgc2ltcGxlIG9iamVjdC4NCiAgICAgICAgICAgIC8vIFRoZSBmb3JtIG9mIHRoZSBmaXJzdCBmaWxlSW5wdXQgaXMgZ2l2ZW4gYXMgcGFyYW1ldGVyIHRvIHRoZSBmdW5jdGlvbjoNCiAgICAgICAgICAgIGZvcm1EYXRhOiBmdW5jdGlvbiAoZm9ybSkgew0KICAgICAgICAgICAgICAgIHJldHVybiBmb3JtLnNlcmlhbGl6ZUFycmF5KCk7DQogICAgICAgICAgICB9LA0KDQogICAgICAgICAgICAvLyBUaGUgYWRkIGNhbGxiYWNrIGlzIGludm9rZWQgYXMgc29vbiBhcyBmaWxlcyBhcmUgYWRkZWQgdG8gdGhlIGZpbGV1cGxvYWQNCiAgICAgICAgICAgIC8vIHdpZGdldCAodmlhIGZpbGUgaW5wdXQgc2VsZWN0aW9uLCBkcmFnICYgZHJvcCwgcGFzdGUgb3IgYWRkIEFQSSBjYWxsKS4NCiAgICAgICAgICAgIC8vIElmIHRoZSBzaW5nbGVGaWxlVXBsb2FkcyBvcHRpb24gaXMgZW5hYmxlZCwgdGhpcyBjYWxsYmFjayB3aWxsIGJlDQogICAgICAgICAgICAvLyBjYWxsZWQgb25jZSBmb3IgZWFjaCBmaWxlIGluIHRoZSBzZWxlY3Rpb24gZm9yIFhIUiBmaWxlIHVwbG9hZHMsIGVsc2UNCiAgICAgICAgICAgIC8vIG9uY2UgZm9yIGVhY2ggZmlsZSBzZWxlY3Rpb24uDQogICAgICAgICAgICAvLw0KICAgICAgICAgICAgLy8gVGhlIHVwbG9hZCBzdGFydHMgd2hlbiB0aGUgc3VibWl0IG1ldGhvZCBpcyBpbnZva2VkIG9uIHRoZSBkYXRhIHBhcmFtZXRlci4NCiAgICAgICAgICAgIC8vIFRoZSBkYXRhIG9iamVjdCBjb250YWlucyBhIGZpbGVzIHByb3BlcnR5IGhvbGRpbmcgdGhlIGFkZGVkIGZpbGVzDQogICAgICAgICAgICAvLyBhbmQgYWxsb3dzIHlvdSB0byBvdmVycmlkZSBwbHVnaW4gb3B0aW9ucyBhcyB3ZWxsIGFzIGRlZmluZSBhamF4IHNldHRpbmdzLg0KICAgICAgICAgICAgLy8NCiAgICAgICAgICAgIC8vIExpc3RlbmVycyBmb3IgdGhpcyBjYWxsYmFjayBjYW4gYWxzbyBiZSBib3VuZCB0aGUgZm9sbG93aW5nIHdheToNCiAgICAgICAgICAgIC8vIC5iaW5kKCdmaWxldXBsb2FkYWRkJywgZnVuYyk7DQogICAgICAgICAgICAvLw0KICAgICAgICAgICAgLy8gZGF0YS5zdWJtaXQoKSByZXR1cm5zIGEgUHJvbWlzZSBvYmplY3QgYW5kIGFsbG93cyB0byBhdHRhY2ggYWRkaXRpb25hbA0KICAgICAgICAgICAgLy8gaGFuZGxlcnMgdXNpbmcgalF1ZXJ5J3MgRGVmZXJyZWQgY2FsbGJhY2tzOg0KICAgICAgICAgICAgLy8gZGF0YS5zdWJtaXQoKS5kb25lKGZ1bmMpLmZhaWwoZnVuYykuYWx3YXlzKGZ1bmMpOw0KICAgICAgICAgICAgYWRkOiBmdW5jdGlvbiAoZSwgZGF0YSkgew0KICAgICAgICAgICAgICAgIGlmIChkYXRhLmF1dG9VcGxvYWQgfHwgKGRhdGEuYXV0b1VwbG9hZCAhPT0gZmFsc2UgJiYNCiAgICAgICAgICAgICAgICAgICAgICAgICQodGhpcykuZmlsZXVwbG9hZCgnb3B0aW9uJywgJ2F1dG9VcGxvYWQnKSkpIHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YS5wcm9jZXNzKCkuZG9uZShmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBkYXRhLnN1Ym1pdCgpOw0KICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KDQogICAgICAgICAgICAvLyBPdGhlciBjYWxsYmFja3M6DQoNCiAgICAgICAgICAgIC8vIENhbGxiYWNrIGZvciB0aGUgc3VibWl0IGV2ZW50IG9mIGVhY2ggZmlsZSB1cGxvYWQ6DQogICAgICAgICAgICAvLyBzdWJtaXQ6IGZ1bmN0aW9uIChlLCBkYXRhKSB7fSwgLy8gLmJpbmQoJ2ZpbGV1cGxvYWRzdWJtaXQnLCBmdW5jKTsNCg0KICAgICAgICAgICAgLy8gQ2FsbGJhY2sgZm9yIHRoZSBzdGFydCBvZiBlYWNoIGZpbGUgdXBsb2FkIHJlcXVlc3Q6DQogICAgICAgICAgICAvLyBzZW5kOiBmdW5jdGlvbiAoZSwgZGF0YSkge30sIC8vIC5iaW5kKCdmaWxldXBsb2Fkc2VuZCcsIGZ1bmMpOw0KDQogICAgICAgICAgICAvLyBDYWxsYmFjayBmb3Igc3VjY2Vzc2Z1bCB1cGxvYWRzOg0KICAgICAgICAgICAgLy8gZG9uZTogZnVuY3Rpb24gKGUsIGRhdGEpIHt9LCAvLyAuYmluZCgnZmlsZXVwbG9hZGRvbmUnLCBmdW5jKTsNCg0KICAgICAgICAgICAgLy8gQ2FsbGJhY2sgZm9yIGZhaWxlZCAoYWJvcnQgb3IgZXJyb3IpIHVwbG9hZHM6DQogICAgICAgICAgICAvLyBmYWlsOiBmdW5jdGlvbiAoZSwgZGF0YSkge30sIC8vIC5iaW5kKCdmaWxldXBsb2FkZmFpbCcsIGZ1bmMpOw0KDQogICAgICAgICAgICAvLyBDYWxsYmFjayBmb3IgY29tcGxldGVkIChzdWNjZXNzLCBhYm9ydCBvciBlcnJvcikgcmVxdWVzdHM6DQogICAgICAgICAgICAvLyBhbHdheXM6IGZ1bmN0aW9uIChlLCBkYXRhKSB7fSwgLy8gLmJpbmQoJ2ZpbGV1cGxvYWRhbHdheXMnLCBmdW5jKTsNCg0KICAgICAgICAgICAgLy8gQ2FsbGJhY2sgZm9yIHVwbG9hZCBwcm9ncmVzcyBldmVudHM6DQogICAgICAgICAgICAvLyBwcm9ncmVzczogZnVuY3Rpb24gKGUsIGRhdGEpIHt9LCAvLyAuYmluZCgnZmlsZXVwbG9hZHByb2dyZXNzJywgZnVuYyk7DQoNCiAgICAgICAgICAgIC8vIENhbGxiYWNrIGZvciBnbG9iYWwgdXBsb2FkIHByb2dyZXNzIGV2ZW50czoNCiAgICAgICAgICAgIC8vIHByb2dyZXNzYWxsOiBmdW5jdGlvbiAoZSwgZGF0YSkge30sIC8vIC5iaW5kKCdmaWxldXBsb2FkcHJvZ3Jlc3NhbGwnLCBmdW5jKTsNCg0KICAgICAgICAgICAgLy8gQ2FsbGJhY2sgZm9yIHVwbG9hZHMgc3RhcnQsIGVxdWl2YWxlbnQgdG8gdGhlIGdsb2JhbCBhamF4U3RhcnQgZXZlbnQ6DQogICAgICAgICAgICAvLyBzdGFydDogZnVuY3Rpb24gKGUpIHt9LCAvLyAuYmluZCgnZmlsZXVwbG9hZHN0YXJ0JywgZnVuYyk7DQoNCiAgICAgICAgICAgIC8vIENhbGxiYWNrIGZvciB1cGxvYWRzIHN0b3AsIGVxdWl2YWxlbnQgdG8gdGhlIGdsb2JhbCBhamF4U3RvcCBldmVudDoNCiAgICAgICAgICAgIC8vIHN0b3A6IGZ1bmN0aW9uIChlKSB7fSwgLy8gLmJpbmQoJ2ZpbGV1cGxvYWRzdG9wJywgZnVuYyk7DQoNCiAgICAgICAgICAgIC8vIENhbGxiYWNrIGZvciBjaGFuZ2UgZXZlbnRzIG9mIHRoZSBmaWxlSW5wdXQocyk6DQogICAgICAgICAgICAvLyBjaGFuZ2U6IGZ1bmN0aW9uIChlLCBkYXRhKSB7fSwgLy8gLmJpbmQoJ2ZpbGV1cGxvYWRjaGFuZ2UnLCBmdW5jKTsNCg0KICAgICAgICAgICAgLy8gQ2FsbGJhY2sgZm9yIHBhc3RlIGV2ZW50cyB0byB0aGUgcGFzdGVab25lKHMpOg0KICAgICAgICAgICAgLy8gcGFzdGU6IGZ1bmN0aW9uIChlLCBkYXRhKSB7fSwgLy8gLmJpbmQoJ2ZpbGV1cGxvYWRwYXN0ZScsIGZ1bmMpOw0KDQogICAgICAgICAgICAvLyBDYWxsYmFjayBmb3IgZHJvcCBldmVudHMgb2YgdGhlIGRyb3Bab25lKHMpOg0KICAgICAgICAgICAgLy8gZHJvcDogZnVuY3Rpb24gKGUsIGRhdGEpIHt9LCAvLyAuYmluZCgnZmlsZXVwbG9hZGRyb3AnLCBmdW5jKTsNCg0KICAgICAgICAgICAgLy8gQ2FsbGJhY2sgZm9yIGRyYWdvdmVyIGV2ZW50cyBvZiB0aGUgZHJvcFpvbmUocyk6DQogICAgICAgICAgICAvLyBkcmFnb3ZlcjogZnVuY3Rpb24gKGUpIHt9LCAvLyAuYmluZCgnZmlsZXVwbG9hZGRyYWdvdmVyJywgZnVuYyk7DQoNCiAgICAgICAgICAgIC8vIENhbGxiYWNrIGZvciB0aGUgc3RhcnQgb2YgZWFjaCBjaHVuayB1cGxvYWQgcmVxdWVzdDoNCiAgICAgICAgICAgIC8vIGNodW5rc2VuZDogZnVuY3Rpb24gKGUsIGRhdGEpIHt9LCAvLyAuYmluZCgnZmlsZXVwbG9hZGNodW5rc2VuZCcsIGZ1bmMpOw0KDQogICAgICAgICAgICAvLyBDYWxsYmFjayBmb3Igc3VjY2Vzc2Z1bCBjaHVuayB1cGxvYWRzOg0KICAgICAgICAgICAgLy8gY2h1bmtkb25lOiBmdW5jdGlvbiAoZSwgZGF0YSkge30sIC8vIC5iaW5kKCdmaWxldXBsb2FkY2h1bmtkb25lJywgZnVuYyk7DQoNCiAgICAgICAgICAgIC8vIENhbGxiYWNrIGZvciBmYWlsZWQgKGFib3J0IG9yIGVycm9yKSBjaHVuayB1cGxvYWRzOg0KICAgICAgICAgICAgLy8gY2h1bmtmYWlsOiBmdW5jdGlvbiAoZSwgZGF0YSkge30sIC8vIC5iaW5kKCdmaWxldXBsb2FkY2h1bmtmYWlsJywgZnVuYyk7DQoNCiAgICAgICAgICAgIC8vIENhbGxiYWNrIGZvciBjb21wbGV0ZWQgKHN1Y2Nlc3MsIGFib3J0IG9yIGVycm9yKSBjaHVuayB1cGxvYWQgcmVxdWVzdHM6DQogICAgICAgICAgICAvLyBjaHVua2Fsd2F5czogZnVuY3Rpb24gKGUsIGRhdGEpIHt9LCAvLyAuYmluZCgnZmlsZXVwbG9hZGNodW5rYWx3YXlzJywgZnVuYyk7DQoNCiAgICAgICAgICAgIC8vIFRoZSBwbHVnaW4gb3B0aW9ucyBhcmUgdXNlZCBhcyBzZXR0aW5ncyBvYmplY3QgZm9yIHRoZSBhamF4IGNhbGxzLg0KICAgICAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBhcmUgalF1ZXJ5IGFqYXggc2V0dGluZ3MgcmVxdWlyZWQgZm9yIHRoZSBmaWxlIHVwbG9hZHM6DQogICAgICAgICAgICBwcm9jZXNzRGF0YTogZmFsc2UsDQogICAgICAgICAgICBjb250ZW50VHlwZTogZmFsc2UsDQogICAgICAgICAgICBjYWNoZTogZmFsc2UNCiAgICAgICAgfSwNCg0KICAgICAgICAvLyBBIGxpc3Qgb2Ygb3B0aW9ucyB0aGF0IHJlcXVpcmUgcmVpbml0aWFsaXppbmcgZXZlbnQgbGlzdGVuZXJzIGFuZC9vcg0KICAgICAgICAvLyBzcGVjaWFsIGluaXRpYWxpemF0aW9uIGNvZGU6DQogICAgICAgIF9zcGVjaWFsT3B0aW9uczogWw0KICAgICAgICAgICAgJ2ZpbGVJbnB1dCcsDQogICAgICAgICAgICAnZHJvcFpvbmUnLA0KICAgICAgICAgICAgJ3Bhc3RlWm9uZScsDQogICAgICAgICAgICAnbXVsdGlwYXJ0JywNCiAgICAgICAgICAgICdmb3JjZUlmcmFtZVRyYW5zcG9ydCcNCiAgICAgICAgXSwNCg0KICAgICAgICBfYmxvYlNsaWNlOiAkLnN1cHBvcnQuYmxvYlNsaWNlICYmIGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgIHZhciBzbGljZSA9IHRoaXMuc2xpY2UgfHwgdGhpcy53ZWJraXRTbGljZSB8fCB0aGlzLm1velNsaWNlOw0KICAgICAgICAgICAgcmV0dXJuIHNsaWNlLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7DQogICAgICAgIH0sDQoNCiAgICAgICAgX0JpdHJhdGVUaW1lcjogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgdGhpcy50aW1lc3RhbXAgPSAoKERhdGUubm93KSA/IERhdGUubm93KCkgOiAobmV3IERhdGUoKSkuZ2V0VGltZSgpKTsNCiAgICAgICAgICAgIHRoaXMubG9hZGVkID0gMDsNCiAgICAgICAgICAgIHRoaXMuYml0cmF0ZSA9IDA7DQogICAgICAgICAgICB0aGlzLmdldEJpdHJhdGUgPSBmdW5jdGlvbiAobm93LCBsb2FkZWQsIGludGVydmFsKSB7DQogICAgICAgICAgICAgICAgdmFyIHRpbWVEaWZmID0gbm93IC0gdGhpcy50aW1lc3RhbXA7DQogICAgICAgICAgICAgICAgaWYgKCF0aGlzLmJpdHJhdGUgfHwgIWludGVydmFsIHx8IHRpbWVEaWZmID4gaW50ZXJ2YWwpIHsNCiAgICAgICAgICAgICAgICAgICAgdGhpcy5iaXRyYXRlID0gKGxvYWRlZCAtIHRoaXMubG9hZGVkKSAqICgxMDAwIC8gdGltZURpZmYpICogODsNCiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkZWQgPSBsb2FkZWQ7DQogICAgICAgICAgICAgICAgICAgIHRoaXMudGltZXN0YW1wID0gbm93Ow0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5iaXRyYXRlOw0KICAgICAgICAgICAgfTsNCiAgICAgICAgfSwNCg0KICAgICAgICBfaXNYSFJVcGxvYWQ6IGZ1bmN0aW9uIChvcHRpb25zKSB7DQogICAgICAgICAgICByZXR1cm4gIW9wdGlvbnMuZm9yY2VJZnJhbWVUcmFuc3BvcnQgJiYNCiAgICAgICAgICAgICAgICAoKCFvcHRpb25zLm11bHRpcGFydCAmJiAkLnN1cHBvcnQueGhyRmlsZVVwbG9hZCkgfHwNCiAgICAgICAgICAgICAgICAkLnN1cHBvcnQueGhyRm9ybURhdGFGaWxlVXBsb2FkKTsNCiAgICAgICAgfSwNCg0KICAgICAgICBfZ2V0Rm9ybURhdGE6IGZ1bmN0aW9uIChvcHRpb25zKSB7DQogICAgICAgICAgICB2YXIgZm9ybURhdGE7DQogICAgICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnMuZm9ybURhdGEgPT09ICdmdW5jdGlvbicpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9ucy5mb3JtRGF0YShvcHRpb25zLmZvcm0pOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKCQuaXNBcnJheShvcHRpb25zLmZvcm1EYXRhKSkgew0KICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb25zLmZvcm1EYXRhOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKCQudHlwZShvcHRpb25zLmZvcm1EYXRhKSA9PT0gJ29iamVjdCcpIHsNCiAgICAgICAgICAgICAgICBmb3JtRGF0YSA9IFtdOw0KICAgICAgICAgICAgICAgICQuZWFjaChvcHRpb25zLmZvcm1EYXRhLCBmdW5jdGlvbiAobmFtZSwgdmFsdWUpIHsNCiAgICAgICAgICAgICAgICAgICAgZm9ybURhdGEucHVzaCh7bmFtZTogbmFtZSwgdmFsdWU6IHZhbHVlfSk7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZvcm1EYXRhOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmV0dXJuIFtdOw0KICAgICAgICB9LA0KDQogICAgICAgIF9nZXRUb3RhbDogZnVuY3Rpb24gKGZpbGVzKSB7DQogICAgICAgICAgICB2YXIgdG90YWwgPSAwOw0KICAgICAgICAgICAgJC5lYWNoKGZpbGVzLCBmdW5jdGlvbiAoaW5kZXgsIGZpbGUpIHsNCiAgICAgICAgICAgICAgICB0b3RhbCArPSBmaWxlLnNpemUgfHwgMTsNCiAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgcmV0dXJuIHRvdGFsOw0KICAgICAgICB9LA0KDQogICAgICAgIF9pbml0UHJvZ3Jlc3NPYmplY3Q6IGZ1bmN0aW9uIChvYmopIHsNCiAgICAgICAgICAgIHZhciBwcm9ncmVzcyA9IHsNCiAgICAgICAgICAgICAgICBsb2FkZWQ6IDAsDQogICAgICAgICAgICAgICAgdG90YWw6IDAsDQogICAgICAgICAgICAgICAgYml0cmF0ZTogMA0KICAgICAgICAgICAgfTsNCiAgICAgICAgICAgIGlmIChvYmouX3Byb2dyZXNzKSB7DQogICAgICAgICAgICAgICAgJC5leHRlbmQob2JqLl9wcm9ncmVzcywgcHJvZ3Jlc3MpOw0KICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICBvYmouX3Byb2dyZXNzID0gcHJvZ3Jlc3M7DQogICAgICAgICAgICB9DQogICAgICAgIH0sDQoNCiAgICAgICAgX2luaXRSZXNwb25zZU9iamVjdDogZnVuY3Rpb24gKG9iaikgew0KICAgICAgICAgICAgdmFyIHByb3A7DQogICAgICAgICAgICBpZiAob2JqLl9yZXNwb25zZSkgew0KICAgICAgICAgICAgICAgIGZvciAocHJvcCBpbiBvYmouX3Jlc3BvbnNlKSB7DQogICAgICAgICAgICAgICAgICAgIGlmIChvYmouX3Jlc3BvbnNlLmhhc093blByb3BlcnR5KHByb3ApKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBkZWxldGUgb2JqLl9yZXNwb25zZVtwcm9wXTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgb2JqLl9yZXNwb25zZSA9IHt9Ow0KICAgICAgICAgICAgfQ0KICAgICAgICB9LA0KDQogICAgICAgIF9vblByb2dyZXNzOiBmdW5jdGlvbiAoZSwgZGF0YSkgew0KICAgICAgICAgICAgaWYgKGUubGVuZ3RoQ29tcHV0YWJsZSkgew0KICAgICAgICAgICAgICAgIHZhciBub3cgPSAoKERhdGUubm93KSA/IERhdGUubm93KCkgOiAobmV3IERhdGUoKSkuZ2V0VGltZSgpKSwNCiAgICAgICAgICAgICAgICAgICAgbG9hZGVkOw0KICAgICAgICAgICAgICAgIGlmIChkYXRhLl90aW1lICYmIGRhdGEucHJvZ3Jlc3NJbnRlcnZhbCAmJg0KICAgICAgICAgICAgICAgICAgICAgICAgKG5vdyAtIGRhdGEuX3RpbWUgPCBkYXRhLnByb2dyZXNzSW50ZXJ2YWwpICYmDQogICAgICAgICAgICAgICAgICAgICAgICBlLmxvYWRlZCAhPT0gZS50b3RhbCkgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGRhdGEuX3RpbWUgPSBub3c7DQogICAgICAgICAgICAgICAgbG9hZGVkID0gTWF0aC5mbG9vcigNCiAgICAgICAgICAgICAgICAgICAgZS5sb2FkZWQgLyBlLnRvdGFsICogKGRhdGEuY2h1bmtTaXplIHx8IGRhdGEuX3Byb2dyZXNzLnRvdGFsKQ0KICAgICAgICAgICAgICAgICkgKyAoZGF0YS51cGxvYWRlZEJ5dGVzIHx8IDApOw0KICAgICAgICAgICAgICAgIC8vIEFkZCB0aGUgZGlmZmVyZW5jZSBmcm9tIHRoZSBwcmV2aW91c2x5IGxvYWRlZCBzdGF0ZQ0KICAgICAgICAgICAgICAgIC8vIHRvIHRoZSBnbG9iYWwgbG9hZGVkIGNvdW50ZXI6DQogICAgICAgICAgICAgICAgdGhpcy5fcHJvZ3Jlc3MubG9hZGVkICs9IChsb2FkZWQgLSBkYXRhLl9wcm9ncmVzcy5sb2FkZWQpOw0KICAgICAgICAgICAgICAgIHRoaXMuX3Byb2dyZXNzLmJpdHJhdGUgPSB0aGlzLl9iaXRyYXRlVGltZXIuZ2V0Qml0cmF0ZSgNCiAgICAgICAgICAgICAgICAgICAgbm93LA0KICAgICAgICAgICAgICAgICAgICB0aGlzLl9wcm9ncmVzcy5sb2FkZWQsDQogICAgICAgICAgICAgICAgICAgIGRhdGEuYml0cmF0ZUludGVydmFsDQogICAgICAgICAgICAgICAgKTsNCiAgICAgICAgICAgICAgICBkYXRhLl9wcm9ncmVzcy5sb2FkZWQgPSBkYXRhLmxvYWRlZCA9IGxvYWRlZDsNCiAgICAgICAgICAgICAgICBkYXRhLl9wcm9ncmVzcy5iaXRyYXRlID0gZGF0YS5iaXRyYXRlID0gZGF0YS5fYml0cmF0ZVRpbWVyLmdldEJpdHJhdGUoDQogICAgICAgICAgICAgICAgICAgIG5vdywNCiAgICAgICAgICAgICAgICAgICAgbG9hZGVkLA0KICAgICAgICAgICAgICAgICAgICBkYXRhLmJpdHJhdGVJbnRlcnZhbA0KICAgICAgICAgICAgICAgICk7DQogICAgICAgICAgICAgICAgLy8gVHJpZ2dlciBhIGN1c3RvbSBwcm9ncmVzcyBldmVudCB3aXRoIGEgdG90YWwgZGF0YSBwcm9wZXJ0eSBzZXQNCiAgICAgICAgICAgICAgICAvLyB0byB0aGUgZmlsZSBzaXplKHMpIG9mIHRoZSBjdXJyZW50IHVwbG9hZCBhbmQgYSBsb2FkZWQgZGF0YQ0KICAgICAgICAgICAgICAgIC8vIHByb3BlcnR5IGNhbGN1bGF0ZWQgYWNjb3JkaW5nbHk6DQogICAgICAgICAgICAgICAgdGhpcy5fdHJpZ2dlcigncHJvZ3Jlc3MnLCBlLCBkYXRhKTsNCiAgICAgICAgICAgICAgICAvLyBUcmlnZ2VyIGEgZ2xvYmFsIHByb2dyZXNzIGV2ZW50IGZvciBhbGwgY3VycmVudCBmaWxlIHVwbG9hZHMsDQogICAgICAgICAgICAgICAgLy8gaW5jbHVkaW5nIGFqYXggY2FsbHMgcXVldWVkIGZvciBzZXF1ZW50aWFsIGZpbGUgdXBsb2FkczoNCiAgICAgICAgICAgICAgICB0aGlzLl90cmlnZ2VyKCdwcm9ncmVzc2FsbCcsIGUsIHRoaXMuX3Byb2dyZXNzKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfSwNCg0KICAgICAgICBfaW5pdFByb2dyZXNzTGlzdGVuZXI6IGZ1bmN0aW9uIChvcHRpb25zKSB7DQogICAgICAgICAgICB2YXIgdGhhdCA9IHRoaXMsDQogICAgICAgICAgICAgICAgeGhyID0gb3B0aW9ucy54aHIgPyBvcHRpb25zLnhocigpIDogJC5hamF4U2V0dGluZ3MueGhyKCk7DQogICAgICAgICAgICAvLyBBY2Nlc3NzIHRvIHRoZSBuYXRpdmUgWEhSIG9iamVjdCBpcyByZXF1aXJlZCB0byBhZGQgZXZlbnQgbGlzdGVuZXJzDQogICAgICAgICAgICAvLyBmb3IgdGhlIHVwbG9hZCBwcm9ncmVzcyBldmVudDoNCiAgICAgICAgICAgIGlmICh4aHIudXBsb2FkKSB7DQogICAgICAgICAgICAgICAgJCh4aHIudXBsb2FkKS5iaW5kKCdwcm9ncmVzcycsIGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICAgICAgICAgIHZhciBvZSA9IGUub3JpZ2luYWxFdmVudDsNCiAgICAgICAgICAgICAgICAgICAgLy8gTWFrZSBzdXJlIHRoZSBwcm9ncmVzcyBldmVudCBwcm9wZXJ0aWVzIGdldCBjb3BpZWQgb3ZlcjoNCiAgICAgICAgICAgICAgICAgICAgZS5sZW5ndGhDb21wdXRhYmxlID0gb2UubGVuZ3RoQ29tcHV0YWJsZTsNCiAgICAgICAgICAgICAgICAgICAgZS5sb2FkZWQgPSBvZS5sb2FkZWQ7DQogICAgICAgICAgICAgICAgICAgIGUudG90YWwgPSBvZS50b3RhbDsNCiAgICAgICAgICAgICAgICAgICAgdGhhdC5fb25Qcm9ncmVzcyhlLCBvcHRpb25zKTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBvcHRpb25zLnhociA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHhocjsNCiAgICAgICAgICAgICAgICB9Ow0KICAgICAgICAgICAgfQ0KICAgICAgICB9LA0KDQogICAgICAgIF9pc0luc3RhbmNlT2Y6IGZ1bmN0aW9uICh0eXBlLCBvYmopIHsNCiAgICAgICAgICAgIC8vIENyb3NzLWZyYW1lIGluc3RhbmNlb2YgY2hlY2sNCiAgICAgICAgICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwob2JqKSA9PT0gJ1tvYmplY3QgJyArIHR5cGUgKyAnXSc7DQogICAgICAgIH0sDQoNCiAgICAgICAgX2luaXRYSFJEYXRhOiBmdW5jdGlvbiAob3B0aW9ucykgew0KICAgICAgICAgICAgdmFyIHRoYXQgPSB0aGlzLA0KICAgICAgICAgICAgICAgIGZvcm1EYXRhLA0KICAgICAgICAgICAgICAgIGZpbGUgPSBvcHRpb25zLmZpbGVzWzBdLA0KICAgICAgICAgICAgICAgIC8vIElnbm9yZSBub24tbXVsdGlwYXJ0IHNldHRpbmcgaWYgbm90IHN1cHBvcnRlZDoNCiAgICAgICAgICAgICAgICBtdWx0aXBhcnQgPSBvcHRpb25zLm11bHRpcGFydCB8fCAhJC5zdXBwb3J0LnhockZpbGVVcGxvYWQsDQogICAgICAgICAgICAgICAgcGFyYW1OYW1lID0gb3B0aW9ucy5wYXJhbU5hbWVbMF07DQogICAgICAgICAgICBvcHRpb25zLmhlYWRlcnMgPSBvcHRpb25zLmhlYWRlcnMgfHwge307DQogICAgICAgICAgICBpZiAob3B0aW9ucy5jb250ZW50UmFuZ2UpIHsNCiAgICAgICAgICAgICAgICBvcHRpb25zLmhlYWRlcnNbJ0NvbnRlbnQtUmFuZ2UnXSA9IG9wdGlvbnMuY29udGVudFJhbmdlOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKCFtdWx0aXBhcnQgfHwgb3B0aW9ucy5ibG9iIHx8ICF0aGlzLl9pc0luc3RhbmNlT2YoJ0ZpbGUnLCBmaWxlKSkgew0KICAgICAgICAgICAgICAgIG9wdGlvbnMuaGVhZGVyc1snQ29udGVudC1EaXNwb3NpdGlvbiddID0gJ2F0dGFjaG1lbnQ7IGZpbGVuYW1lPSInICsNCiAgICAgICAgICAgICAgICAgICAgZW5jb2RlVVJJKGZpbGUubmFtZSkgKyAnIic7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAoIW11bHRpcGFydCkgew0KICAgICAgICAgICAgICAgIG9wdGlvbnMuY29udGVudFR5cGUgPSBmaWxlLnR5cGU7DQogICAgICAgICAgICAgICAgb3B0aW9ucy5kYXRhID0gb3B0aW9ucy5ibG9iIHx8IGZpbGU7DQogICAgICAgICAgICB9IGVsc2UgaWYgKCQuc3VwcG9ydC54aHJGb3JtRGF0YUZpbGVVcGxvYWQpIHsNCiAgICAgICAgICAgICAgICBpZiAob3B0aW9ucy5wb3N0TWVzc2FnZSkgew0KICAgICAgICAgICAgICAgICAgICAvLyB3aW5kb3cucG9zdE1lc3NhZ2UgZG9lcyBub3QgYWxsb3cgc2VuZGluZyBGb3JtRGF0YQ0KICAgICAgICAgICAgICAgICAgICAvLyBvYmplY3RzLCBzbyB3ZSBqdXN0IGFkZCB0aGUgRmlsZS9CbG9iIG9iamVjdHMgdG8NCiAgICAgICAgICAgICAgICAgICAgLy8gdGhlIGZvcm1EYXRhIGFycmF5IGFuZCBsZXQgdGhlIHBvc3RNZXNzYWdlIHdpbmRvdw0KICAgICAgICAgICAgICAgICAgICAvLyBjcmVhdGUgdGhlIEZvcm1EYXRhIG9iamVjdCBvdXQgb2YgdGhpcyBhcnJheToNCiAgICAgICAgICAgICAgICAgICAgZm9ybURhdGEgPSB0aGlzLl9nZXRGb3JtRGF0YShvcHRpb25zKTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKG9wdGlvbnMuYmxvYikgew0KICAgICAgICAgICAgICAgICAgICAgICAgZm9ybURhdGEucHVzaCh7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogcGFyYW1OYW1lLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBvcHRpb25zLmJsb2INCiAgICAgICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgJC5lYWNoKG9wdGlvbnMuZmlsZXMsIGZ1bmN0aW9uIChpbmRleCwgZmlsZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1EYXRhLnB1c2goew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBvcHRpb25zLnBhcmFtTmFtZVtpbmRleF0gfHwgcGFyYW1OYW1lLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogZmlsZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICBpZiAodGhhdC5faXNJbnN0YW5jZU9mKCdGb3JtRGF0YScsIG9wdGlvbnMuZm9ybURhdGEpKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBmb3JtRGF0YSA9IG9wdGlvbnMuZm9ybURhdGE7DQogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgJC5lYWNoKHRoaXMuX2dldEZvcm1EYXRhKG9wdGlvbnMpLCBmdW5jdGlvbiAoaW5kZXgsIGZpZWxkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybURhdGEuYXBwZW5kKGZpZWxkLm5hbWUsIGZpZWxkLnZhbHVlKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChvcHRpb25zLmJsb2IpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZChwYXJhbU5hbWUsIG9wdGlvbnMuYmxvYiwgZmlsZS5uYW1lKTsNCiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICQuZWFjaChvcHRpb25zLmZpbGVzLCBmdW5jdGlvbiAoaW5kZXgsIGZpbGUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIGNoZWNrIGFsbG93cyB0aGUgdGVzdHMgdG8gcnVuIHdpdGgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBkdW1teSBvYmplY3RzOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGF0Ll9pc0luc3RhbmNlT2YoJ0ZpbGUnLCBmaWxlKSB8fA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5faXNJbnN0YW5jZU9mKCdCbG9iJywgZmlsZSkpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybURhdGEuYXBwZW5kKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy5wYXJhbU5hbWVbaW5kZXhdIHx8IHBhcmFtTmFtZSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGUsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlLm5hbWUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBvcHRpb25zLmRhdGEgPSBmb3JtRGF0YTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIEJsb2IgcmVmZXJlbmNlIGlzIG5vdCBuZWVkZWQgYW55bW9yZSwgZnJlZSBtZW1vcnk6DQogICAgICAgICAgICBvcHRpb25zLmJsb2IgPSBudWxsOw0KICAgICAgICB9LA0KDQogICAgICAgIF9pbml0SWZyYW1lU2V0dGluZ3M6IGZ1bmN0aW9uIChvcHRpb25zKSB7DQogICAgICAgICAgICB2YXIgdGFyZ2V0SG9zdCA9ICQoJzxhPjwvYT4nKS5wcm9wKCdocmVmJywgb3B0aW9ucy51cmwpLnByb3AoJ2hvc3QnKTsNCiAgICAgICAgICAgIC8vIFNldHRpbmcgdGhlIGRhdGFUeXBlIHRvIGlmcmFtZSBlbmFibGVzIHRoZSBpZnJhbWUgdHJhbnNwb3J0Og0KICAgICAgICAgICAgb3B0aW9ucy5kYXRhVHlwZSA9ICdpZnJhbWUgJyArIChvcHRpb25zLmRhdGFUeXBlIHx8ICcnKTsNCiAgICAgICAgICAgIC8vIFRoZSBpZnJhbWUgdHJhbnNwb3J0IGFjY2VwdHMgYSBzZXJpYWxpemVkIGFycmF5IGFzIGZvcm0gZGF0YToNCiAgICAgICAgICAgIG9wdGlvbnMuZm9ybURhdGEgPSB0aGlzLl9nZXRGb3JtRGF0YShvcHRpb25zKTsNCiAgICAgICAgICAgIC8vIEFkZCByZWRpcmVjdCB1cmwgdG8gZm9ybSBkYXRhIG9uIGNyb3NzLWRvbWFpbiB1cGxvYWRzOg0KICAgICAgICAgICAgaWYgKG9wdGlvbnMucmVkaXJlY3QgJiYgdGFyZ2V0SG9zdCAmJiB0YXJnZXRIb3N0ICE9PSBsb2NhdGlvbi5ob3N0KSB7DQogICAgICAgICAgICAgICAgb3B0aW9ucy5mb3JtRGF0YS5wdXNoKHsNCiAgICAgICAgICAgICAgICAgICAgbmFtZTogb3B0aW9ucy5yZWRpcmVjdFBhcmFtTmFtZSB8fCAncmVkaXJlY3QnLA0KICAgICAgICAgICAgICAgICAgICB2YWx1ZTogb3B0aW9ucy5yZWRpcmVjdA0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9LA0KDQogICAgICAgIF9pbml0RGF0YVNldHRpbmdzOiBmdW5jdGlvbiAob3B0aW9ucykgew0KICAgICAgICAgICAgaWYgKHRoaXMuX2lzWEhSVXBsb2FkKG9wdGlvbnMpKSB7DQogICAgICAgICAgICAgICAgaWYgKCF0aGlzLl9jaHVua2VkVXBsb2FkKG9wdGlvbnMsIHRydWUpKSB7DQogICAgICAgICAgICAgICAgICAgIGlmICghb3B0aW9ucy5kYXRhKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9pbml0WEhSRGF0YShvcHRpb25zKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB0aGlzLl9pbml0UHJvZ3Jlc3NMaXN0ZW5lcihvcHRpb25zKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgaWYgKG9wdGlvbnMucG9zdE1lc3NhZ2UpIHsNCiAgICAgICAgICAgICAgICAgICAgLy8gU2V0dGluZyB0aGUgZGF0YVR5cGUgdG8gcG9zdG1lc3NhZ2UgZW5hYmxlcyB0aGUNCiAgICAgICAgICAgICAgICAgICAgLy8gcG9zdE1lc3NhZ2UgdHJhbnNwb3J0Og0KICAgICAgICAgICAgICAgICAgICBvcHRpb25zLmRhdGFUeXBlID0gJ3Bvc3RtZXNzYWdlICcgKyAob3B0aW9ucy5kYXRhVHlwZSB8fCAnJyk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICB0aGlzLl9pbml0SWZyYW1lU2V0dGluZ3Mob3B0aW9ucyk7DQogICAgICAgICAgICB9DQogICAgICAgIH0sDQoNCiAgICAgICAgX2dldFBhcmFtTmFtZTogZnVuY3Rpb24gKG9wdGlvbnMpIHsNCiAgICAgICAgICAgIHZhciBmaWxlSW5wdXQgPSAkKG9wdGlvbnMuZmlsZUlucHV0KSwNCiAgICAgICAgICAgICAgICBwYXJhbU5hbWUgPSBvcHRpb25zLnBhcmFtTmFtZTsNCiAgICAgICAgICAgIGlmICghcGFyYW1OYW1lKSB7DQogICAgICAgICAgICAgICAgcGFyYW1OYW1lID0gW107DQogICAgICAgICAgICAgICAgZmlsZUlucHV0LmVhY2goZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSAkKHRoaXMpLA0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0LnByb3AoJ25hbWUnKSB8fCAnZmlsZXNbXScsDQogICAgICAgICAgICAgICAgICAgICAgICBpID0gKGlucHV0LnByb3AoJ2ZpbGVzJykgfHwgWzFdKS5sZW5ndGg7DQogICAgICAgICAgICAgICAgICAgIHdoaWxlIChpKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBwYXJhbU5hbWUucHVzaChuYW1lKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGkgLT0gMTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGlmICghcGFyYW1OYW1lLmxlbmd0aCkgew0KICAgICAgICAgICAgICAgICAgICBwYXJhbU5hbWUgPSBbZmlsZUlucHV0LnByb3AoJ25hbWUnKSB8fCAnZmlsZXNbXSddOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0gZWxzZSBpZiAoISQuaXNBcnJheShwYXJhbU5hbWUpKSB7DQogICAgICAgICAgICAgICAgcGFyYW1OYW1lID0gW3BhcmFtTmFtZV07DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXR1cm4gcGFyYW1OYW1lOw0KICAgICAgICB9LA0KDQogICAgICAgIF9pbml0Rm9ybVNldHRpbmdzOiBmdW5jdGlvbiAob3B0aW9ucykgew0KICAgICAgICAgICAgLy8gUmV0cmlldmUgbWlzc2luZyBvcHRpb25zIGZyb20gdGhlIGlucHV0IGZpZWxkIGFuZCB0aGUNCiAgICAgICAgICAgIC8vIGFzc29jaWF0ZWQgZm9ybSwgaWYgYXZhaWxhYmxlOg0KICAgICAgICAgICAgaWYgKCFvcHRpb25zLmZvcm0gfHwgIW9wdGlvbnMuZm9ybS5sZW5ndGgpIHsNCiAgICAgICAgICAgICAgICBvcHRpb25zLmZvcm0gPSAkKG9wdGlvbnMuZmlsZUlucHV0LnByb3AoJ2Zvcm0nKSk7DQogICAgICAgICAgICAgICAgLy8gSWYgdGhlIGdpdmVuIGZpbGUgaW5wdXQgZG9lc24ndCBoYXZlIGFuIGFzc29jaWF0ZWQgZm9ybSwNCiAgICAgICAgICAgICAgICAvLyB1c2UgdGhlIGRlZmF1bHQgd2lkZ2V0IGZpbGUgaW5wdXQncyBmb3JtOg0KICAgICAgICAgICAgICAgIGlmICghb3B0aW9ucy5mb3JtLmxlbmd0aCkgew0KICAgICAgICAgICAgICAgICAgICBvcHRpb25zLmZvcm0gPSAkKHRoaXMub3B0aW9ucy5maWxlSW5wdXQucHJvcCgnZm9ybScpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgICBvcHRpb25zLnBhcmFtTmFtZSA9IHRoaXMuX2dldFBhcmFtTmFtZShvcHRpb25zKTsNCiAgICAgICAgICAgIGlmICghb3B0aW9ucy51cmwpIHsNCiAgICAgICAgICAgICAgICBvcHRpb25zLnVybCA9IG9wdGlvbnMuZm9ybS5wcm9wKCdhY3Rpb24nKSB8fCBsb2NhdGlvbi5ocmVmOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gVGhlIEhUVFAgcmVxdWVzdCBtZXRob2QgbXVzdCBiZSAiUE9TVCIgb3IgIlBVVCI6DQogICAgICAgICAgICBvcHRpb25zLnR5cGUgPSAob3B0aW9ucy50eXBlIHx8IG9wdGlvbnMuZm9ybS5wcm9wKCdtZXRob2QnKSB8fCAnJykNCiAgICAgICAgICAgICAgICAudG9VcHBlckNhc2UoKTsNCiAgICAgICAgICAgIGlmIChvcHRpb25zLnR5cGUgIT09ICdQT1NUJyAmJiBvcHRpb25zLnR5cGUgIT09ICdQVVQnICYmDQogICAgICAgICAgICAgICAgICAgIG9wdGlvbnMudHlwZSAhPT0gJ1BBVENIJykgew0KICAgICAgICAgICAgICAgIG9wdGlvbnMudHlwZSA9ICdQT1NUJzsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmICghb3B0aW9ucy5mb3JtQWNjZXB0Q2hhcnNldCkgew0KICAgICAgICAgICAgICAgIG9wdGlvbnMuZm9ybUFjY2VwdENoYXJzZXQgPSBvcHRpb25zLmZvcm0uYXR0cignYWNjZXB0LWNoYXJzZXQnKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfSwNCg0KICAgICAgICBfZ2V0QUpBWFNldHRpbmdzOiBmdW5jdGlvbiAoZGF0YSkgew0KICAgICAgICAgICAgdmFyIG9wdGlvbnMgPSAkLmV4dGVuZCh7fSwgdGhpcy5vcHRpb25zLCBkYXRhKTsNCiAgICAgICAgICAgIHRoaXMuX2luaXRGb3JtU2V0dGluZ3Mob3B0aW9ucyk7DQogICAgICAgICAgICB0aGlzLl9pbml0RGF0YVNldHRpbmdzKG9wdGlvbnMpOw0KICAgICAgICAgICAgcmV0dXJuIG9wdGlvbnM7DQogICAgICAgIH0sDQoNCiAgICAgICAgLy8galF1ZXJ5IDEuNiBkb2Vzbid0IHByb3ZpZGUgLnN0YXRlKCksDQogICAgICAgIC8vIHdoaWxlIGpRdWVyeSAxLjgrIHJlbW92ZWQgLmlzUmVqZWN0ZWQoKSBhbmQgLmlzUmVzb2x2ZWQoKToNCiAgICAgICAgX2dldERlZmVycmVkU3RhdGU6IGZ1bmN0aW9uIChkZWZlcnJlZCkgew0KICAgICAgICAgICAgaWYgKGRlZmVycmVkLnN0YXRlKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGRlZmVycmVkLnN0YXRlKCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAoZGVmZXJyZWQuaXNSZXNvbHZlZCgpKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuICdyZXNvbHZlZCc7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAoZGVmZXJyZWQuaXNSZWplY3RlZCgpKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuICdyZWplY3RlZCc7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXR1cm4gJ3BlbmRpbmcnOw0KICAgICAgICB9LA0KDQogICAgICAgIC8vIE1hcHMganFYSFIgY2FsbGJhY2tzIHRvIHRoZSBlcXVpdmFsZW50DQogICAgICAgIC8vIG1ldGhvZHMgb2YgdGhlIGdpdmVuIFByb21pc2Ugb2JqZWN0Og0KICAgICAgICBfZW5oYW5jZVByb21pc2U6IGZ1bmN0aW9uIChwcm9taXNlKSB7DQogICAgICAgICAgICBwcm9taXNlLnN1Y2Nlc3MgPSBwcm9taXNlLmRvbmU7DQogICAgICAgICAgICBwcm9taXNlLmVycm9yID0gcHJvbWlzZS5mYWlsOw0KICAgICAgICAgICAgcHJvbWlzZS5jb21wbGV0ZSA9IHByb21pc2UuYWx3YXlzOw0KICAgICAgICAgICAgcmV0dXJuIHByb21pc2U7DQogICAgICAgIH0sDQoNCiAgICAgICAgLy8gQ3JlYXRlcyBhbmQgcmV0dXJucyBhIFByb21pc2Ugb2JqZWN0IGVuaGFuY2VkIHdpdGgNCiAgICAgICAgLy8gdGhlIGpxWEhSIG1ldGhvZHMgYWJvcnQsIHN1Y2Nlc3MsIGVycm9yIGFuZCBjb21wbGV0ZToNCiAgICAgICAgX2dldFhIUlByb21pc2U6IGZ1bmN0aW9uIChyZXNvbHZlT3JSZWplY3QsIGNvbnRleHQsIGFyZ3MpIHsNCiAgICAgICAgICAgIHZhciBkZmQgPSAkLkRlZmVycmVkKCksDQogICAgICAgICAgICAgICAgcHJvbWlzZSA9IGRmZC5wcm9taXNlKCk7DQogICAgICAgICAgICBjb250ZXh0ID0gY29udGV4dCB8fCB0aGlzLm9wdGlvbnMuY29udGV4dCB8fCBwcm9taXNlOw0KICAgICAgICAgICAgaWYgKHJlc29sdmVPclJlamVjdCA9PT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgIGRmZC5yZXNvbHZlV2l0aChjb250ZXh0LCBhcmdzKTsNCiAgICAgICAgICAgIH0gZWxzZSBpZiAocmVzb2x2ZU9yUmVqZWN0ID09PSBmYWxzZSkgew0KICAgICAgICAgICAgICAgIGRmZC5yZWplY3RXaXRoKGNvbnRleHQsIGFyZ3MpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcHJvbWlzZS5hYm9ydCA9IGRmZC5wcm9taXNlOw0KICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2VuaGFuY2VQcm9taXNlKHByb21pc2UpOw0KICAgICAgICB9LA0KDQogICAgICAgIC8vIEFkZHMgY29udmVuaWVuY2UgbWV0aG9kcyB0byB0aGUgZGF0YSBjYWxsYmFjayBhcmd1bWVudDoNCiAgICAgICAgX2FkZENvbnZlbmllbmNlTWV0aG9kczogZnVuY3Rpb24gKGUsIGRhdGEpIHsNCiAgICAgICAgICAgIHZhciB0aGF0ID0gdGhpcywNCiAgICAgICAgICAgICAgICBnZXRQcm9taXNlID0gZnVuY3Rpb24gKGRhdGEpIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICQuRGVmZXJyZWQoKS5yZXNvbHZlV2l0aCh0aGF0LCBbZGF0YV0pLnByb21pc2UoKTsNCiAgICAgICAgICAgICAgICB9Ow0KICAgICAgICAgICAgZGF0YS5wcm9jZXNzID0gZnVuY3Rpb24gKHJlc29sdmVGdW5jLCByZWplY3RGdW5jKSB7DQogICAgICAgICAgICAgICAgaWYgKHJlc29sdmVGdW5jIHx8IHJlamVjdEZ1bmMpIHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YS5fcHJvY2Vzc1F1ZXVlID0gdGhpcy5fcHJvY2Vzc1F1ZXVlID0NCiAgICAgICAgICAgICAgICAgICAgICAgICh0aGlzLl9wcm9jZXNzUXVldWUgfHwgZ2V0UHJvbWlzZSh0aGlzKSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAucGlwZShyZXNvbHZlRnVuYywgcmVqZWN0RnVuYyk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9wcm9jZXNzUXVldWUgfHwgZ2V0UHJvbWlzZSh0aGlzKTsNCiAgICAgICAgICAgIH07DQogICAgICAgICAgICBkYXRhLnN1Ym1pdCA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBpZiAodGhpcy5zdGF0ZSgpICE9PSAncGVuZGluZycpIHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YS5qcVhIUiA9IHRoaXMuanFYSFIgPQ0KICAgICAgICAgICAgICAgICAgICAgICAgKHRoYXQuX3RyaWdnZXIoJ3N1Ym1pdCcsIGUsIHRoaXMpICE9PSBmYWxzZSkgJiYNCiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX29uU2VuZChlLCB0aGlzKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuanFYSFIgfHwgdGhhdC5fZ2V0WEhSUHJvbWlzZSgpOw0KICAgICAgICAgICAgfTsNCiAgICAgICAgICAgIGRhdGEuYWJvcnQgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgaWYgKHRoaXMuanFYSFIpIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuanFYSFIuYWJvcnQoKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgcmV0dXJuIHRoYXQuX2dldFhIUlByb21pc2UoKTsNCiAgICAgICAgICAgIH07DQogICAgICAgICAgICBkYXRhLnN0YXRlID0gZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIGlmICh0aGlzLmpxWEhSKSB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGF0Ll9nZXREZWZlcnJlZFN0YXRlKHRoaXMuanFYSFIpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZiAodGhpcy5fcHJvY2Vzc1F1ZXVlKSB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGF0Ll9nZXREZWZlcnJlZFN0YXRlKHRoaXMuX3Byb2Nlc3NRdWV1ZSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfTsNCiAgICAgICAgICAgIGRhdGEucHJvZ3Jlc3MgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3Byb2dyZXNzOw0KICAgICAgICAgICAgfTsNCiAgICAgICAgICAgIGRhdGEucmVzcG9uc2UgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3Jlc3BvbnNlOw0KICAgICAgICAgICAgfTsNCiAgICAgICAgfSwNCg0KICAgICAgICAvLyBQYXJzZXMgdGhlIFJhbmdlIGhlYWRlciBmcm9tIHRoZSBzZXJ2ZXIgcmVzcG9uc2UNCiAgICAgICAgLy8gYW5kIHJldHVybnMgdGhlIHVwbG9hZGVkIGJ5dGVzOg0KICAgICAgICBfZ2V0VXBsb2FkZWRCeXRlczogZnVuY3Rpb24gKGpxWEhSKSB7DQogICAgICAgICAgICB2YXIgcmFuZ2UgPSBqcVhIUi5nZXRSZXNwb25zZUhlYWRlcignUmFuZ2UnKSwNCiAgICAgICAgICAgICAgICBwYXJ0cyA9IHJhbmdlICYmIHJhbmdlLnNwbGl0KCctJyksDQogICAgICAgICAgICAgICAgdXBwZXJCeXRlc1BvcyA9IHBhcnRzICYmIHBhcnRzLmxlbmd0aCA+IDEgJiYNCiAgICAgICAgICAgICAgICAgICAgcGFyc2VJbnQocGFydHNbMV0sIDEwKTsNCiAgICAgICAgICAgIHJldHVybiB1cHBlckJ5dGVzUG9zICYmIHVwcGVyQnl0ZXNQb3MgKyAxOw0KICAgICAgICB9LA0KDQogICAgICAgIC8vIFVwbG9hZHMgYSBmaWxlIGluIG11bHRpcGxlLCBzZXF1ZW50aWFsIHJlcXVlc3RzDQogICAgICAgIC8vIGJ5IHNwbGl0dGluZyB0aGUgZmlsZSB1cCBpbiBtdWx0aXBsZSBibG9iIGNodW5rcy4NCiAgICAgICAgLy8gSWYgdGhlIHNlY29uZCBwYXJhbWV0ZXIgaXMgdHJ1ZSwgb25seSB0ZXN0cyBpZiB0aGUgZmlsZQ0KICAgICAgICAvLyBzaG91bGQgYmUgdXBsb2FkZWQgaW4gY2h1bmtzLCBidXQgZG9lcyBub3QgaW52b2tlIGFueQ0KICAgICAgICAvLyB1cGxvYWQgcmVxdWVzdHM6DQogICAgICAgIF9jaHVua2VkVXBsb2FkOiBmdW5jdGlvbiAob3B0aW9ucywgdGVzdE9ubHkpIHsNCiAgICAgICAgICAgIG9wdGlvbnMudXBsb2FkZWRCeXRlcyA9IG9wdGlvbnMudXBsb2FkZWRCeXRlcyB8fCAwOw0KICAgICAgICAgICAgdmFyIHRoYXQgPSB0aGlzLA0KICAgICAgICAgICAgICAgIGZpbGUgPSBvcHRpb25zLmZpbGVzWzBdLA0KICAgICAgICAgICAgICAgIGZzID0gZmlsZS5zaXplLA0KICAgICAgICAgICAgICAgIHViID0gb3B0aW9ucy51cGxvYWRlZEJ5dGVzLA0KICAgICAgICAgICAgICAgIG1jcyA9IG9wdGlvbnMubWF4Q2h1bmtTaXplIHx8IGZzLA0KICAgICAgICAgICAgICAgIHNsaWNlID0gdGhpcy5fYmxvYlNsaWNlLA0KICAgICAgICAgICAgICAgIGRmZCA9ICQuRGVmZXJyZWQoKSwNCiAgICAgICAgICAgICAgICBwcm9taXNlID0gZGZkLnByb21pc2UoKSwNCiAgICAgICAgICAgICAgICBqcVhIUiwNCiAgICAgICAgICAgICAgICB1cGxvYWQ7DQogICAgICAgICAgICBpZiAoISh0aGlzLl9pc1hIUlVwbG9hZChvcHRpb25zKSAmJiBzbGljZSAmJiAodWIgfHwgbWNzIDwgZnMpKSB8fA0KICAgICAgICAgICAgICAgICAgICBvcHRpb25zLmRhdGEpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAodGVzdE9ubHkpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmICh1YiA+PSBmcykgew0KICAgICAgICAgICAgICAgIGZpbGUuZXJyb3IgPSBvcHRpb25zLmkxOG4oJ3VwbG9hZGVkQnl0ZXMnKTsNCiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fZ2V0WEhSUHJvbWlzZSgNCiAgICAgICAgICAgICAgICAgICAgZmFsc2UsDQogICAgICAgICAgICAgICAgICAgIG9wdGlvbnMuY29udGV4dCwNCiAgICAgICAgICAgICAgICAgICAgW251bGwsICdlcnJvcicsIGZpbGUuZXJyb3JdDQogICAgICAgICAgICAgICAgKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFRoZSBjaHVuayB1cGxvYWQgbWV0aG9kOg0KICAgICAgICAgICAgdXBsb2FkID0gZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIC8vIENsb25lIHRoZSBvcHRpb25zIG9iamVjdCBmb3IgZWFjaCBjaHVuayB1cGxvYWQ6DQogICAgICAgICAgICAgICAgdmFyIG8gPSAkLmV4dGVuZCh7fSwgb3B0aW9ucyksDQogICAgICAgICAgICAgICAgICAgIGN1cnJlbnRMb2FkZWQgPSBvLl9wcm9ncmVzcy5sb2FkZWQ7DQogICAgICAgICAgICAgICAgby5ibG9iID0gc2xpY2UuY2FsbCgNCiAgICAgICAgICAgICAgICAgICAgZmlsZSwNCiAgICAgICAgICAgICAgICAgICAgdWIsDQogICAgICAgICAgICAgICAgICAgIHViICsgbWNzLA0KICAgICAgICAgICAgICAgICAgICBmaWxlLnR5cGUNCiAgICAgICAgICAgICAgICApOw0KICAgICAgICAgICAgICAgIC8vIFN0b3JlIHRoZSBjdXJyZW50IGNodW5rIHNpemUsIGFzIHRoZSBibG9iIGl0c2VsZg0KICAgICAgICAgICAgICAgIC8vIHdpbGwgYmUgZGVyZWZlcmVuY2VkIGFmdGVyIGRhdGEgcHJvY2Vzc2luZzoNCiAgICAgICAgICAgICAgICBvLmNodW5rU2l6ZSA9IG8uYmxvYi5zaXplOw0KICAgICAgICAgICAgICAgIC8vIEV4cG9zZSB0aGUgY2h1bmsgYnl0ZXMgcG9zaXRpb24gcmFuZ2U6DQogICAgICAgICAgICAgICAgby5jb250ZW50UmFuZ2UgPSAnYnl0ZXMgJyArIHViICsgJy0nICsNCiAgICAgICAgICAgICAgICAgICAgKHViICsgby5jaHVua1NpemUgLSAxKSArICcvJyArIGZzOw0KICAgICAgICAgICAgICAgIC8vIFByb2Nlc3MgdGhlIHVwbG9hZCBkYXRhICh0aGUgYmxvYiBhbmQgcG90ZW50aWFsIGZvcm0gZGF0YSk6DQogICAgICAgICAgICAgICAgdGhhdC5faW5pdFhIUkRhdGEobyk7DQogICAgICAgICAgICAgICAgLy8gQWRkIHByb2dyZXNzIGxpc3RlbmVycyBmb3IgdGhpcyBjaHVuayB1cGxvYWQ6DQogICAgICAgICAgICAgICAgdGhhdC5faW5pdFByb2dyZXNzTGlzdGVuZXIobyk7DQogICAgICAgICAgICAgICAganFYSFIgPSAoKHRoYXQuX3RyaWdnZXIoJ2NodW5rc2VuZCcsIG51bGwsIG8pICE9PSBmYWxzZSAmJiAkLmFqYXgobykpIHx8DQogICAgICAgICAgICAgICAgICAgICAgICB0aGF0Ll9nZXRYSFJQcm9taXNlKGZhbHNlLCBvLmNvbnRleHQpKQ0KICAgICAgICAgICAgICAgICAgICAuZG9uZShmdW5jdGlvbiAocmVzdWx0LCB0ZXh0U3RhdHVzLCBqcVhIUikgew0KICAgICAgICAgICAgICAgICAgICAgICAgdWIgPSB0aGF0Ll9nZXRVcGxvYWRlZEJ5dGVzKGpxWEhSKSB8fA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICh1YiArIG8uY2h1bmtTaXplKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIENyZWF0ZSBhIHByb2dyZXNzIGV2ZW50IGlmIG5vIGZpbmFsIHByb2dyZXNzIGV2ZW50DQogICAgICAgICAgICAgICAgICAgICAgICAvLyB3aXRoIGxvYWRlZCBlcXVhbGluZyB0b3RhbCBoYXMgYmVlbiB0cmlnZ2VyZWQNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZvciB0aGlzIGNodW5rOg0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRMb2FkZWQgKyBvLmNodW5rU2l6ZSAtIG8uX3Byb2dyZXNzLmxvYWRlZCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX29uUHJvZ3Jlc3MoJC5FdmVudCgncHJvZ3Jlc3MnLCB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aENvbXB1dGFibGU6IHRydWUsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRlZDogdWIgLSBvLnVwbG9hZGVkQnl0ZXMsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsOiB1YiAtIG8udXBsb2FkZWRCeXRlcw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLCBvKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMudXBsb2FkZWRCeXRlcyA9IG8udXBsb2FkZWRCeXRlcyA9IHViOw0KICAgICAgICAgICAgICAgICAgICAgICAgby5yZXN1bHQgPSByZXN1bHQ7DQogICAgICAgICAgICAgICAgICAgICAgICBvLnRleHRTdGF0dXMgPSB0ZXh0U3RhdHVzOw0KICAgICAgICAgICAgICAgICAgICAgICAgby5qcVhIUiA9IGpxWEhSOw0KICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5fdHJpZ2dlcignY2h1bmtkb25lJywgbnVsbCwgbyk7DQogICAgICAgICAgICAgICAgICAgICAgICB0aGF0Ll90cmlnZ2VyKCdjaHVua2Fsd2F5cycsIG51bGwsIG8pOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHViIDwgZnMpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGaWxlIHVwbG9hZCBub3QgeWV0IGNvbXBsZXRlLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnRpbnVlIHdpdGggdGhlIG5leHQgY2h1bms6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBsb2FkKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRmZC5yZXNvbHZlV2l0aCgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgby5jb250ZXh0LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVzdWx0LCB0ZXh0U3RhdHVzLCBqcVhIUl0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9KQ0KICAgICAgICAgICAgICAgICAgICAuZmFpbChmdW5jdGlvbiAoanFYSFIsIHRleHRTdGF0dXMsIGVycm9yVGhyb3duKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBvLmpxWEhSID0ganFYSFI7DQogICAgICAgICAgICAgICAgICAgICAgICBvLnRleHRTdGF0dXMgPSB0ZXh0U3RhdHVzOw0KICAgICAgICAgICAgICAgICAgICAgICAgby5lcnJvclRocm93biA9IGVycm9yVGhyb3duOw0KICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5fdHJpZ2dlcignY2h1bmtmYWlsJywgbnVsbCwgbyk7DQogICAgICAgICAgICAgICAgICAgICAgICB0aGF0Ll90cmlnZ2VyKCdjaHVua2Fsd2F5cycsIG51bGwsIG8pOw0KICAgICAgICAgICAgICAgICAgICAgICAgZGZkLnJlamVjdFdpdGgoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgby5jb250ZXh0LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtqcVhIUiwgdGV4dFN0YXR1cywgZXJyb3JUaHJvd25dDQogICAgICAgICAgICAgICAgICAgICAgICApOw0KICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgIH07DQogICAgICAgICAgICB0aGlzLl9lbmhhbmNlUHJvbWlzZShwcm9taXNlKTsNCiAgICAgICAgICAgIHByb21pc2UuYWJvcnQgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGpxWEhSLmFib3J0KCk7DQogICAgICAgICAgICB9Ow0KICAgICAgICAgICAgdXBsb2FkKCk7DQogICAgICAgICAgICByZXR1cm4gcHJvbWlzZTsNCiAgICAgICAgfSwNCg0KICAgICAgICBfYmVmb3JlU2VuZDogZnVuY3Rpb24gKGUsIGRhdGEpIHsNCiAgICAgICAgICAgIGlmICh0aGlzLl9hY3RpdmUgPT09IDApIHsNCiAgICAgICAgICAgICAgICAvLyB0aGUgc3RhcnQgY2FsbGJhY2sgaXMgdHJpZ2dlcmVkIHdoZW4gYW4gdXBsb2FkIHN0YXJ0cw0KICAgICAgICAgICAgICAgIC8vIGFuZCBubyBvdGhlciB1cGxvYWRzIGFyZSBjdXJyZW50bHkgcnVubmluZywNCiAgICAgICAgICAgICAgICAvLyBlcXVpdmFsZW50IHRvIHRoZSBnbG9iYWwgYWpheFN0YXJ0IGV2ZW50Og0KICAgICAgICAgICAgICAgIHRoaXMuX3RyaWdnZXIoJ3N0YXJ0Jyk7DQogICAgICAgICAgICAgICAgLy8gU2V0IHRpbWVyIGZvciBnbG9iYWwgYml0cmF0ZSBwcm9ncmVzcyBjYWxjdWxhdGlvbjoNCiAgICAgICAgICAgICAgICB0aGlzLl9iaXRyYXRlVGltZXIgPSBuZXcgdGhpcy5fQml0cmF0ZVRpbWVyKCk7DQogICAgICAgICAgICAgICAgLy8gUmVzZXQgdGhlIGdsb2JhbCBwcm9ncmVzcyB2YWx1ZXM6DQogICAgICAgICAgICAgICAgdGhpcy5fcHJvZ3Jlc3MubG9hZGVkID0gdGhpcy5fcHJvZ3Jlc3MudG90YWwgPSAwOw0KICAgICAgICAgICAgICAgIHRoaXMuX3Byb2dyZXNzLmJpdHJhdGUgPSAwOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gTWFrZSBzdXJlIHRoZSBjb250YWluZXIgb2JqZWN0cyBmb3IgdGhlIC5yZXNwb25zZSgpIGFuZA0KICAgICAgICAgICAgLy8gLnByb2dyZXNzKCkgbWV0aG9kcyBvbiB0aGUgZGF0YSBvYmplY3QgYXJlIGF2YWlsYWJsZQ0KICAgICAgICAgICAgLy8gYW5kIHJlc2V0IHRvIHRoZWlyIGluaXRpYWwgc3RhdGU6DQogICAgICAgICAgICB0aGlzLl9pbml0UmVzcG9uc2VPYmplY3QoZGF0YSk7DQogICAgICAgICAgICB0aGlzLl9pbml0UHJvZ3Jlc3NPYmplY3QoZGF0YSk7DQogICAgICAgICAgICBkYXRhLl9wcm9ncmVzcy5sb2FkZWQgPSBkYXRhLmxvYWRlZCA9IGRhdGEudXBsb2FkZWRCeXRlcyB8fCAwOw0KICAgICAgICAgICAgZGF0YS5fcHJvZ3Jlc3MudG90YWwgPSBkYXRhLnRvdGFsID0gdGhpcy5fZ2V0VG90YWwoZGF0YS5maWxlcykgfHwgMTsNCiAgICAgICAgICAgIGRhdGEuX3Byb2dyZXNzLmJpdHJhdGUgPSBkYXRhLmJpdHJhdGUgPSAwOw0KICAgICAgICAgICAgdGhpcy5fYWN0aXZlICs9IDE7DQogICAgICAgICAgICAvLyBJbml0aWFsaXplIHRoZSBnbG9iYWwgcHJvZ3Jlc3MgdmFsdWVzOg0KICAgICAgICAgICAgdGhpcy5fcHJvZ3Jlc3MubG9hZGVkICs9IGRhdGEubG9hZGVkOw0KICAgICAgICAgICAgdGhpcy5fcHJvZ3Jlc3MudG90YWwgKz0gZGF0YS50b3RhbDsNCiAgICAgICAgfSwNCg0KICAgICAgICBfb25Eb25lOiBmdW5jdGlvbiAocmVzdWx0LCB0ZXh0U3RhdHVzLCBqcVhIUiwgb3B0aW9ucykgew0KICAgICAgICAgICAgdmFyIHRvdGFsID0gb3B0aW9ucy5fcHJvZ3Jlc3MudG90YWwsDQogICAgICAgICAgICAgICAgcmVzcG9uc2UgPSBvcHRpb25zLl9yZXNwb25zZTsNCiAgICAgICAgICAgIGlmIChvcHRpb25zLl9wcm9ncmVzcy5sb2FkZWQgPCB0b3RhbCkgew0KICAgICAgICAgICAgICAgIC8vIENyZWF0ZSBhIHByb2dyZXNzIGV2ZW50IGlmIG5vIGZpbmFsIHByb2dyZXNzIGV2ZW50DQogICAgICAgICAgICAgICAgLy8gd2l0aCBsb2FkZWQgZXF1YWxpbmcgdG90YWwgaGFzIGJlZW4gdHJpZ2dlcmVkOg0KICAgICAgICAgICAgICAgIHRoaXMuX29uUHJvZ3Jlc3MoJC5FdmVudCgncHJvZ3Jlc3MnLCB7DQogICAgICAgICAgICAgICAgICAgIGxlbmd0aENvbXB1dGFibGU6IHRydWUsDQogICAgICAgICAgICAgICAgICAgIGxvYWRlZDogdG90YWwsDQogICAgICAgICAgICAgICAgICAgIHRvdGFsOiB0b3RhbA0KICAgICAgICAgICAgICAgIH0pLCBvcHRpb25zKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHJlc3BvbnNlLnJlc3VsdCA9IG9wdGlvbnMucmVzdWx0ID0gcmVzdWx0Ow0KICAgICAgICAgICAgcmVzcG9uc2UudGV4dFN0YXR1cyA9IG9wdGlvbnMudGV4dFN0YXR1cyA9IHRleHRTdGF0dXM7DQogICAgICAgICAgICByZXNwb25zZS5qcVhIUiA9IG9wdGlvbnMuanFYSFIgPSBqcVhIUjsNCiAgICAgICAgICAgIHRoaXMuX3RyaWdnZXIoJ2RvbmUnLCBudWxsLCBvcHRpb25zKTsNCiAgICAgICAgfSwNCg0KICAgICAgICBfb25GYWlsOiBmdW5jdGlvbiAoanFYSFIsIHRleHRTdGF0dXMsIGVycm9yVGhyb3duLCBvcHRpb25zKSB7DQogICAgICAgICAgICB2YXIgcmVzcG9uc2UgPSBvcHRpb25zLl9yZXNwb25zZTsNCiAgICAgICAgICAgIGlmIChvcHRpb25zLnJlY2FsY3VsYXRlUHJvZ3Jlc3MpIHsNCiAgICAgICAgICAgICAgICAvLyBSZW1vdmUgdGhlIGZhaWxlZCAoZXJyb3Igb3IgYWJvcnQpIGZpbGUgdXBsb2FkIGZyb20NCiAgICAgICAgICAgICAgICAvLyB0aGUgZ2xvYmFsIHByb2dyZXNzIGNhbGN1bGF0aW9uOg0KICAgICAgICAgICAgICAgIHRoaXMuX3Byb2dyZXNzLmxvYWRlZCAtPSBvcHRpb25zLl9wcm9ncmVzcy5sb2FkZWQ7DQogICAgICAgICAgICAgICAgdGhpcy5fcHJvZ3Jlc3MudG90YWwgLT0gb3B0aW9ucy5fcHJvZ3Jlc3MudG90YWw7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXNwb25zZS5qcVhIUiA9IG9wdGlvbnMuanFYSFIgPSBqcVhIUjsNCiAgICAgICAgICAgIHJlc3BvbnNlLnRleHRTdGF0dXMgPSBvcHRpb25zLnRleHRTdGF0dXMgPSB0ZXh0U3RhdHVzOw0KICAgICAgICAgICAgcmVzcG9uc2UuZXJyb3JUaHJvd24gPSBvcHRpb25zLmVycm9yVGhyb3duID0gZXJyb3JUaHJvd247DQogICAgICAgICAgICB0aGlzLl90cmlnZ2VyKCdmYWlsJywgbnVsbCwgb3B0aW9ucyk7DQogICAgICAgIH0sDQoNCiAgICAgICAgX29uQWx3YXlzOiBmdW5jdGlvbiAoanFYSFJvclJlc3VsdCwgdGV4dFN0YXR1cywganFYSFJvckVycm9yLCBvcHRpb25zKSB7DQogICAgICAgICAgICAvLyBqcVhIUm9yUmVzdWx0LCB0ZXh0U3RhdHVzIGFuZCBqcVhIUm9yRXJyb3IgYXJlIGFkZGVkIHRvIHRoZQ0KICAgICAgICAgICAgLy8gb3B0aW9ucyBvYmplY3QgdmlhIGRvbmUgYW5kIGZhaWwgY2FsbGJhY2tzDQogICAgICAgICAgICB0aGlzLl90cmlnZ2VyKCdhbHdheXMnLCBudWxsLCBvcHRpb25zKTsNCiAgICAgICAgfSwNCg0KICAgICAgICBfb25TZW5kOiBmdW5jdGlvbiAoZSwgZGF0YSkgew0KICAgICAgICAgICAgaWYgKCFkYXRhLnN1Ym1pdCkgew0KICAgICAgICAgICAgICAgIHRoaXMuX2FkZENvbnZlbmllbmNlTWV0aG9kcyhlLCBkYXRhKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHZhciB0aGF0ID0gdGhpcywNCiAgICAgICAgICAgICAgICBqcVhIUiwNCiAgICAgICAgICAgICAgICBhYm9ydGVkLA0KICAgICAgICAgICAgICAgIHNsb3QsDQogICAgICAgICAgICAgICAgcGlwZSwNCiAgICAgICAgICAgICAgICBvcHRpb25zID0gdGhhdC5fZ2V0QUpBWFNldHRpbmdzKGRhdGEpLA0KICAgICAgICAgICAgICAgIHNlbmQgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgIHRoYXQuX3NlbmRpbmcgKz0gMTsNCiAgICAgICAgICAgICAgICAgICAgLy8gU2V0IHRpbWVyIGZvciBiaXRyYXRlIHByb2dyZXNzIGNhbGN1bGF0aW9uOg0KICAgICAgICAgICAgICAgICAgICBvcHRpb25zLl9iaXRyYXRlVGltZXIgPSBuZXcgdGhhdC5fQml0cmF0ZVRpbWVyKCk7DQogICAgICAgICAgICAgICAgICAgIGpxWEhSID0ganFYSFIgfHwgKA0KICAgICAgICAgICAgICAgICAgICAgICAgKChhYm9ydGVkIHx8IHRoYXQuX3RyaWdnZXIoJ3NlbmQnLCBlLCBvcHRpb25zKSA9PT0gZmFsc2UpICYmDQogICAgICAgICAgICAgICAgICAgICAgICB0aGF0Ll9nZXRYSFJQcm9taXNlKGZhbHNlLCBvcHRpb25zLmNvbnRleHQsIGFib3J0ZWQpKSB8fA0KICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5fY2h1bmtlZFVwbG9hZChvcHRpb25zKSB8fCAkLmFqYXgob3B0aW9ucykNCiAgICAgICAgICAgICAgICAgICAgKS5kb25lKGZ1bmN0aW9uIChyZXN1bHQsIHRleHRTdGF0dXMsIGpxWEhSKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB0aGF0Ll9vbkRvbmUocmVzdWx0LCB0ZXh0U3RhdHVzLCBqcVhIUiwgb3B0aW9ucyk7DQogICAgICAgICAgICAgICAgICAgIH0pLmZhaWwoZnVuY3Rpb24gKGpxWEhSLCB0ZXh0U3RhdHVzLCBlcnJvclRocm93bikgew0KICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5fb25GYWlsKGpxWEhSLCB0ZXh0U3RhdHVzLCBlcnJvclRocm93biwgb3B0aW9ucyk7DQogICAgICAgICAgICAgICAgICAgIH0pLmFsd2F5cyhmdW5jdGlvbiAoanFYSFJvclJlc3VsdCwgdGV4dFN0YXR1cywganFYSFJvckVycm9yKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB0aGF0Ll9vbkFsd2F5cygNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBqcVhIUm9yUmVzdWx0LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHRTdGF0dXMsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAganFYSFJvckVycm9yLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMNCiAgICAgICAgICAgICAgICAgICAgICAgICk7DQogICAgICAgICAgICAgICAgICAgICAgICB0aGF0Ll9zZW5kaW5nIC09IDE7DQogICAgICAgICAgICAgICAgICAgICAgICB0aGF0Ll9hY3RpdmUgLT0gMTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChvcHRpb25zLmxpbWl0Q29uY3VycmVudFVwbG9hZHMgJiYNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy5saW1pdENvbmN1cnJlbnRVcGxvYWRzID4gdGhhdC5fc2VuZGluZykgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFN0YXJ0IHRoZSBuZXh0IHF1ZXVlZCB1cGxvYWQsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhhdCBoYXMgbm90IGJlZW4gYWJvcnRlZDoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbmV4dFNsb3QgPSB0aGF0Ll9zbG90cy5zaGlmdCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIChuZXh0U2xvdCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhhdC5fZ2V0RGVmZXJyZWRTdGF0ZShuZXh0U2xvdCkgPT09ICdwZW5kaW5nJykgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV4dFNsb3QucmVzb2x2ZSgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV4dFNsb3QgPSB0aGF0Ll9zbG90cy5zaGlmdCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGF0Ll9hY3RpdmUgPT09IDApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGUgc3RvcCBjYWxsYmFjayBpcyB0cmlnZ2VyZWQgd2hlbiBhbGwgdXBsb2FkcyBoYXZlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYmVlbiBjb21wbGV0ZWQsIGVxdWl2YWxlbnQgdG8gdGhlIGdsb2JhbCBhamF4U3RvcCBldmVudDoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0Ll90cmlnZ2VyKCdzdG9wJyk7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgICAgICByZXR1cm4ganFYSFI7DQogICAgICAgICAgICAgICAgfTsNCiAgICAgICAgICAgIHRoaXMuX2JlZm9yZVNlbmQoZSwgb3B0aW9ucyk7DQogICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLnNlcXVlbnRpYWxVcGxvYWRzIHx8DQogICAgICAgICAgICAgICAgICAgICh0aGlzLm9wdGlvbnMubGltaXRDb25jdXJyZW50VXBsb2FkcyAmJg0KICAgICAgICAgICAgICAgICAgICB0aGlzLm9wdGlvbnMubGltaXRDb25jdXJyZW50VXBsb2FkcyA8PSB0aGlzLl9zZW5kaW5nKSkgew0KICAgICAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMubGltaXRDb25jdXJyZW50VXBsb2FkcyA+IDEpIHsNCiAgICAgICAgICAgICAgICAgICAgc2xvdCA9ICQuRGVmZXJyZWQoKTsNCiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2xvdHMucHVzaChzbG90KTsNCiAgICAgICAgICAgICAgICAgICAgcGlwZSA9IHNsb3QucGlwZShzZW5kKTsNCiAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICB0aGlzLl9zZXF1ZW5jZSA9IHRoaXMuX3NlcXVlbmNlLnBpcGUoc2VuZCwgc2VuZCk7DQogICAgICAgICAgICAgICAgICAgIHBpcGUgPSB0aGlzLl9zZXF1ZW5jZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgLy8gUmV0dXJuIHRoZSBwaXBlZCBQcm9taXNlIG9iamVjdCwgZW5oYW5jZWQgd2l0aCBhbiBhYm9ydCBtZXRob2QsDQogICAgICAgICAgICAgICAgLy8gd2hpY2ggaXMgZGVsZWdhdGVkIHRvIHRoZSBqcVhIUiBvYmplY3Qgb2YgdGhlIGN1cnJlbnQgdXBsb2FkLA0KICAgICAgICAgICAgICAgIC8vIGFuZCBqcVhIUiBjYWxsYmFja3MgbWFwcGVkIHRvIHRoZSBlcXVpdmFsZW50IFByb21pc2UgbWV0aG9kczoNCiAgICAgICAgICAgICAgICBwaXBlLmFib3J0ID0gZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICBhYm9ydGVkID0gW3VuZGVmaW5lZCwgJ2Fib3J0JywgJ2Fib3J0J107DQogICAgICAgICAgICAgICAgICAgIGlmICghanFYSFIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzbG90KSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xvdC5yZWplY3RXaXRoKG9wdGlvbnMuY29udGV4dCwgYWJvcnRlZCk7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gc2VuZCgpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBqcVhIUi5hYm9ydCgpOw0KICAgICAgICAgICAgICAgIH07DQogICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2VuaGFuY2VQcm9taXNlKHBpcGUpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmV0dXJuIHNlbmQoKTsNCiAgICAgICAgfSwNCg0KICAgICAgICBfb25BZGQ6IGZ1bmN0aW9uIChlLCBkYXRhKSB7DQogICAgICAgICAgICB2YXIgdGhhdCA9IHRoaXMsDQogICAgICAgICAgICAgICAgcmVzdWx0ID0gdHJ1ZSwNCiAgICAgICAgICAgICAgICBvcHRpb25zID0gJC5leHRlbmQoe30sIHRoaXMub3B0aW9ucywgZGF0YSksDQogICAgICAgICAgICAgICAgbGltaXQgPSBvcHRpb25zLmxpbWl0TXVsdGlGaWxlVXBsb2FkcywNCiAgICAgICAgICAgICAgICBwYXJhbU5hbWUgPSB0aGlzLl9nZXRQYXJhbU5hbWUob3B0aW9ucyksDQogICAgICAgICAgICAgICAgcGFyYW1OYW1lU2V0LA0KICAgICAgICAgICAgICAgIHBhcmFtTmFtZVNsaWNlLA0KICAgICAgICAgICAgICAgIGZpbGVTZXQsDQogICAgICAgICAgICAgICAgaTsNCiAgICAgICAgICAgIGlmICghKG9wdGlvbnMuc2luZ2xlRmlsZVVwbG9hZHMgfHwgbGltaXQpIHx8DQogICAgICAgICAgICAgICAgICAgICF0aGlzLl9pc1hIUlVwbG9hZChvcHRpb25zKSkgew0KICAgICAgICAgICAgICAgIGZpbGVTZXQgPSBbZGF0YS5maWxlc107DQogICAgICAgICAgICAgICAgcGFyYW1OYW1lU2V0ID0gW3BhcmFtTmFtZV07DQogICAgICAgICAgICB9IGVsc2UgaWYgKCFvcHRpb25zLnNpbmdsZUZpbGVVcGxvYWRzICYmIGxpbWl0KSB7DQogICAgICAgICAgICAgICAgZmlsZVNldCA9IFtdOw0KICAgICAgICAgICAgICAgIHBhcmFtTmFtZVNldCA9IFtdOw0KICAgICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBkYXRhLmZpbGVzLmxlbmd0aDsgaSArPSBsaW1pdCkgew0KICAgICAgICAgICAgICAgICAgICBmaWxlU2V0LnB1c2goZGF0YS5maWxlcy5zbGljZShpLCBpICsgbGltaXQpKTsNCiAgICAgICAgICAgICAgICAgICAgcGFyYW1OYW1lU2xpY2UgPSBwYXJhbU5hbWUuc2xpY2UoaSwgaSArIGxpbWl0KTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKCFwYXJhbU5hbWVTbGljZS5sZW5ndGgpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtTmFtZVNsaWNlID0gcGFyYW1OYW1lOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIHBhcmFtTmFtZVNldC5wdXNoKHBhcmFtTmFtZVNsaWNlKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgIHBhcmFtTmFtZVNldCA9IHBhcmFtTmFtZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGEub3JpZ2luYWxGaWxlcyA9IGRhdGEuZmlsZXM7DQogICAgICAgICAgICAkLmVhY2goZmlsZVNldCB8fCBkYXRhLmZpbGVzLCBmdW5jdGlvbiAoaW5kZXgsIGVsZW1lbnQpIHsNCiAgICAgICAgICAgICAgICB2YXIgbmV3RGF0YSA9ICQuZXh0ZW5kKHt9LCBkYXRhKTsNCiAgICAgICAgICAgICAgICBuZXdEYXRhLmZpbGVzID0gZmlsZVNldCA/IGVsZW1lbnQgOiBbZWxlbWVudF07DQogICAgICAgICAgICAgICAgbmV3RGF0YS5wYXJhbU5hbWUgPSBwYXJhbU5hbWVTZXRbaW5kZXhdOw0KICAgICAgICAgICAgICAgIHRoYXQuX2luaXRSZXNwb25zZU9iamVjdChuZXdEYXRhKTsNCiAgICAgICAgICAgICAgICB0aGF0Ll9pbml0UHJvZ3Jlc3NPYmplY3QobmV3RGF0YSk7DQogICAgICAgICAgICAgICAgdGhhdC5fYWRkQ29udmVuaWVuY2VNZXRob2RzKGUsIG5ld0RhdGEpOw0KICAgICAgICAgICAgICAgIHJlc3VsdCA9IHRoYXQuX3RyaWdnZXIoJ2FkZCcsIGUsIG5ld0RhdGEpOw0KICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7DQogICAgICAgICAgICB9KTsNCiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7DQogICAgICAgIH0sDQoNCiAgICAgICAgX3JlcGxhY2VGaWxlSW5wdXQ6IGZ1bmN0aW9uIChpbnB1dCkgew0KICAgICAgICAgICAgdmFyIGlucHV0Q2xvbmUgPSBpbnB1dC5jbG9uZSh0cnVlKTsNCiAgICAgICAgICAgICQoJzxmb3JtPjwvZm9ybT4nKS5hcHBlbmQoaW5wdXRDbG9uZSlbMF0ucmVzZXQoKTsNCiAgICAgICAgICAgIC8vIERldGFjaGluZyBhbGxvd3MgdG8gaW5zZXJ0IHRoZSBmaWxlSW5wdXQgb24gYW5vdGhlciBmb3JtDQogICAgICAgICAgICAvLyB3aXRob3V0IGxvb3NpbmcgdGhlIGZpbGUgaW5wdXQgdmFsdWU6DQogICAgICAgICAgICBpbnB1dC5hZnRlcihpbnB1dENsb25lKS5kZXRhY2goKTsNCiAgICAgICAgICAgIC8vIEF2b2lkIG1lbW9yeSBsZWFrcyB3aXRoIHRoZSBkZXRhY2hlZCBmaWxlIGlucHV0Og0KICAgICAgICAgICAgJC5jbGVhbkRhdGEoaW5wdXQudW5iaW5kKCdyZW1vdmUnKSk7DQogICAgICAgICAgICAvLyBSZXBsYWNlIHRoZSBvcmlnaW5hbCBmaWxlIGlucHV0IGVsZW1lbnQgaW4gdGhlIGZpbGVJbnB1dA0KICAgICAgICAgICAgLy8gZWxlbWVudHMgc2V0IHdpdGggdGhlIGNsb25lLCB3aGljaCBoYXMgYmVlbiBjb3BpZWQgaW5jbHVkaW5nDQogICAgICAgICAgICAvLyBldmVudCBoYW5kbGVyczoNCiAgICAgICAgICAgIHRoaXMub3B0aW9ucy5maWxlSW5wdXQgPSB0aGlzLm9wdGlvbnMuZmlsZUlucHV0Lm1hcChmdW5jdGlvbiAoaSwgZWwpIHsNCiAgICAgICAgICAgICAgICBpZiAoZWwgPT09IGlucHV0WzBdKSB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBpbnB1dENsb25lWzBdOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICByZXR1cm4gZWw7DQogICAgICAgICAgICB9KTsNCiAgICAgICAgICAgIC8vIElmIHRoZSB3aWRnZXQgaGFzIGJlZW4gaW5pdGlhbGl6ZWQgb24gdGhlIGZpbGUgaW5wdXQgaXRzZWxmLA0KICAgICAgICAgICAgLy8gb3ZlcnJpZGUgdGhpcy5lbGVtZW50IHdpdGggdGhlIGZpbGUgaW5wdXQgY2xvbmU6DQogICAgICAgICAgICBpZiAoaW5wdXRbMF0gPT09IHRoaXMuZWxlbWVudFswXSkgew0KICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudCA9IGlucHV0Q2xvbmU7DQogICAgICAgICAgICB9DQogICAgICAgIH0sDQoNCiAgICAgICAgX2hhbmRsZUZpbGVUcmVlRW50cnk6IGZ1bmN0aW9uIChlbnRyeSwgcGF0aCkgew0KICAgICAgICAgICAgdmFyIHRoYXQgPSB0aGlzLA0KICAgICAgICAgICAgICAgIGRmZCA9ICQuRGVmZXJyZWQoKSwNCiAgICAgICAgICAgICAgICBlcnJvckhhbmRsZXIgPSBmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgICAgICAgICBpZiAoZSAmJiAhZS5lbnRyeSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgZS5lbnRyeSA9IGVudHJ5Ow0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIC8vIFNpbmNlICQud2hlbiByZXR1cm5zIGltbWVkaWF0ZWx5IGlmIG9uZQ0KICAgICAgICAgICAgICAgICAgICAvLyBEZWZlcnJlZCBpcyByZWplY3RlZCwgd2UgdXNlIHJlc29sdmUgaW5zdGVhZC4NCiAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBhbGxvd3MgdmFsaWQgZmlsZXMgYW5kIGludmFsaWQgaXRlbXMNCiAgICAgICAgICAgICAgICAgICAgLy8gdG8gYmUgcmV0dXJuZWQgdG9nZXRoZXIgaW4gb25lIHNldDoNCiAgICAgICAgICAgICAgICAgICAgZGZkLnJlc29sdmUoW2VdKTsNCiAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgIGRpclJlYWRlcjsNCiAgICAgICAgICAgIHBhdGggPSBwYXRoIHx8ICcnOw0KICAgICAgICAgICAgaWYgKGVudHJ5LmlzRmlsZSkgew0KICAgICAgICAgICAgICAgIGlmIChlbnRyeS5fZmlsZSkgew0KICAgICAgICAgICAgICAgICAgICAvLyBXb3JrYXJvdW5kIGZvciBDaHJvbWUgYnVnICMxNDk3MzUNCiAgICAgICAgICAgICAgICAgICAgZW50cnkuX2ZpbGUucmVsYXRpdmVQYXRoID0gcGF0aDsNCiAgICAgICAgICAgICAgICAgICAgZGZkLnJlc29sdmUoZW50cnkuX2ZpbGUpOw0KICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIGVudHJ5LmZpbGUoZnVuY3Rpb24gKGZpbGUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGUucmVsYXRpdmVQYXRoID0gcGF0aDsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRmZC5yZXNvbHZlKGZpbGUpOw0KICAgICAgICAgICAgICAgICAgICB9LCBlcnJvckhhbmRsZXIpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0gZWxzZSBpZiAoZW50cnkuaXNEaXJlY3RvcnkpIHsNCiAgICAgICAgICAgICAgICBkaXJSZWFkZXIgPSBlbnRyeS5jcmVhdGVSZWFkZXIoKTsNCiAgICAgICAgICAgICAgICBkaXJSZWFkZXIucmVhZEVudHJpZXMoZnVuY3Rpb24gKGVudHJpZXMpIHsNCiAgICAgICAgICAgICAgICAgICAgdGhhdC5faGFuZGxlRmlsZVRyZWVFbnRyaWVzKA0KICAgICAgICAgICAgICAgICAgICAgICAgZW50cmllcywNCiAgICAgICAgICAgICAgICAgICAgICAgIHBhdGggKyBlbnRyeS5uYW1lICsgJy8nDQogICAgICAgICAgICAgICAgICAgICkuZG9uZShmdW5jdGlvbiAoZmlsZXMpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRmZC5yZXNvbHZlKGZpbGVzKTsNCiAgICAgICAgICAgICAgICAgICAgfSkuZmFpbChlcnJvckhhbmRsZXIpOw0KICAgICAgICAgICAgICAgIH0sIGVycm9ySGFuZGxlcik7DQogICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgIC8vIFJldHVybiBhbiBlbXB5IGxpc3QgZm9yIGZpbGUgc3lzdGVtIGl0ZW1zDQogICAgICAgICAgICAgICAgLy8gb3RoZXIgdGhhbiBmaWxlcyBvciBkaXJlY3RvcmllczoNCiAgICAgICAgICAgICAgICBkZmQucmVzb2x2ZShbXSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXR1cm4gZGZkLnByb21pc2UoKTsNCiAgICAgICAgfSwNCg0KICAgICAgICBfaGFuZGxlRmlsZVRyZWVFbnRyaWVzOiBmdW5jdGlvbiAoZW50cmllcywgcGF0aCkgew0KICAgICAgICAgICAgdmFyIHRoYXQgPSB0aGlzOw0KICAgICAgICAgICAgcmV0dXJuICQud2hlbi5hcHBseSgNCiAgICAgICAgICAgICAgICAkLA0KICAgICAgICAgICAgICAgICQubWFwKGVudHJpZXMsIGZ1bmN0aW9uIChlbnRyeSkgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhhdC5faGFuZGxlRmlsZVRyZWVFbnRyeShlbnRyeSwgcGF0aCk7DQogICAgICAgICAgICAgICAgfSkNCiAgICAgICAgICAgICkucGlwZShmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIEFycmF5LnByb3RvdHlwZS5jb25jYXQuYXBwbHkoDQogICAgICAgICAgICAgICAgICAgIFtdLA0KICAgICAgICAgICAgICAgICAgICBhcmd1bWVudHMNCiAgICAgICAgICAgICAgICApOw0KICAgICAgICAgICAgfSk7DQogICAgICAgIH0sDQoNCiAgICAgICAgX2dldERyb3BwZWRGaWxlczogZnVuY3Rpb24gKGRhdGFUcmFuc2Zlcikgew0KICAgICAgICAgICAgZGF0YVRyYW5zZmVyID0gZGF0YVRyYW5zZmVyIHx8IHt9Ow0KICAgICAgICAgICAgdmFyIGl0ZW1zID0gZGF0YVRyYW5zZmVyLml0ZW1zOw0KICAgICAgICAgICAgaWYgKGl0ZW1zICYmIGl0ZW1zLmxlbmd0aCAmJiAoaXRlbXNbMF0ud2Via2l0R2V0QXNFbnRyeSB8fA0KICAgICAgICAgICAgICAgICAgICBpdGVtc1swXS5nZXRBc0VudHJ5KSkgew0KICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9oYW5kbGVGaWxlVHJlZUVudHJpZXMoDQogICAgICAgICAgICAgICAgICAgICQubWFwKGl0ZW1zLCBmdW5jdGlvbiAoaXRlbSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGVudHJ5Ow0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW0ud2Via2l0R2V0QXNFbnRyeSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudHJ5ID0gaXRlbS53ZWJraXRHZXRBc0VudHJ5KCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVudHJ5KSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdvcmthcm91bmQgZm9yIENocm9tZSBidWcgIzE0OTczNToNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW50cnkuX2ZpbGUgPSBpdGVtLmdldEFzRmlsZSgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZW50cnk7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaXRlbS5nZXRBc0VudHJ5KCk7DQogICAgICAgICAgICAgICAgICAgIH0pDQogICAgICAgICAgICAgICAgKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHJldHVybiAkLkRlZmVycmVkKCkucmVzb2x2ZSgNCiAgICAgICAgICAgICAgICAkLm1ha2VBcnJheShkYXRhVHJhbnNmZXIuZmlsZXMpDQogICAgICAgICAgICApLnByb21pc2UoKTsNCiAgICAgICAgfSwNCg0KICAgICAgICBfZ2V0U2luZ2xlRmlsZUlucHV0RmlsZXM6IGZ1bmN0aW9uIChmaWxlSW5wdXQpIHsNCiAgICAgICAgICAgIGZpbGVJbnB1dCA9ICQoZmlsZUlucHV0KTsNCiAgICAgICAgICAgIHZhciBlbnRyaWVzID0gZmlsZUlucHV0LnByb3AoJ3dlYmtpdEVudHJpZXMnKSB8fA0KICAgICAgICAgICAgICAgICAgICBmaWxlSW5wdXQucHJvcCgnZW50cmllcycpLA0KICAgICAgICAgICAgICAgIGZpbGVzLA0KICAgICAgICAgICAgICAgIHZhbHVlOw0KICAgICAgICAgICAgaWYgKGVudHJpZXMgJiYgZW50cmllcy5sZW5ndGgpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5faGFuZGxlRmlsZVRyZWVFbnRyaWVzKGVudHJpZXMpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZmlsZXMgPSAkLm1ha2VBcnJheShmaWxlSW5wdXQucHJvcCgnZmlsZXMnKSk7DQogICAgICAgICAgICBpZiAoIWZpbGVzLmxlbmd0aCkgew0KICAgICAgICAgICAgICAgIHZhbHVlID0gZmlsZUlucHV0LnByb3AoJ3ZhbHVlJyk7DQogICAgICAgICAgICAgICAgaWYgKCF2YWx1ZSkgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gJC5EZWZlcnJlZCgpLnJlc29sdmUoW10pLnByb21pc2UoKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgLy8gSWYgdGhlIGZpbGVzIHByb3BlcnR5IGlzIG5vdCBhdmFpbGFibGUsIHRoZSBicm93c2VyIGRvZXMgbm90DQogICAgICAgICAgICAgICAgLy8gc3VwcG9ydCB0aGUgRmlsZSBBUEkgYW5kIHdlIGFkZCBhIHBzZXVkbyBGaWxlIG9iamVjdCB3aXRoDQogICAgICAgICAgICAgICAgLy8gdGhlIGlucHV0IHZhbHVlIGFzIG5hbWUgd2l0aCBwYXRoIGluZm9ybWF0aW9uIHJlbW92ZWQ6DQogICAgICAgICAgICAgICAgZmlsZXMgPSBbe25hbWU6IHZhbHVlLnJlcGxhY2UoL14uKlxcLywgJycpfV07DQogICAgICAgICAgICB9IGVsc2UgaWYgKGZpbGVzWzBdLm5hbWUgPT09IHVuZGVmaW5lZCAmJiBmaWxlc1swXS5maWxlTmFtZSkgew0KICAgICAgICAgICAgICAgIC8vIEZpbGUgbm9ybWFsaXphdGlvbiBmb3IgU2FmYXJpIDQgYW5kIEZpcmVmb3ggMzoNCiAgICAgICAgICAgICAgICAkLmVhY2goZmlsZXMsIGZ1bmN0aW9uIChpbmRleCwgZmlsZSkgew0KICAgICAgICAgICAgICAgICAgICBmaWxlLm5hbWUgPSBmaWxlLmZpbGVOYW1lOw0KICAgICAgICAgICAgICAgICAgICBmaWxlLnNpemUgPSBmaWxlLmZpbGVTaXplOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmV0dXJuICQuRGVmZXJyZWQoKS5yZXNvbHZlKGZpbGVzKS5wcm9taXNlKCk7DQogICAgICAgIH0sDQoNCiAgICAgICAgX2dldEZpbGVJbnB1dEZpbGVzOiBmdW5jdGlvbiAoZmlsZUlucHV0KSB7DQogICAgICAgICAgICBpZiAoIShmaWxlSW5wdXQgaW5zdGFuY2VvZiAkKSB8fCBmaWxlSW5wdXQubGVuZ3RoID09PSAxKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2dldFNpbmdsZUZpbGVJbnB1dEZpbGVzKGZpbGVJbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXR1cm4gJC53aGVuLmFwcGx5KA0KICAgICAgICAgICAgICAgICQsDQogICAgICAgICAgICAgICAgJC5tYXAoZmlsZUlucHV0LCB0aGlzLl9nZXRTaW5nbGVGaWxlSW5wdXRGaWxlcykNCiAgICAgICAgICAgICkucGlwZShmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIEFycmF5LnByb3RvdHlwZS5jb25jYXQuYXBwbHkoDQogICAgICAgICAgICAgICAgICAgIFtdLA0KICAgICAgICAgICAgICAgICAgICBhcmd1bWVudHMNCiAgICAgICAgICAgICAgICApOw0KICAgICAgICAgICAgfSk7DQogICAgICAgIH0sDQoNCiAgICAgICAgX29uQ2hhbmdlOiBmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgdmFyIHRoYXQgPSB0aGlzLA0KICAgICAgICAgICAgICAgIGRhdGEgPSB7DQogICAgICAgICAgICAgICAgICAgIGZpbGVJbnB1dDogJChlLnRhcmdldCksDQogICAgICAgICAgICAgICAgICAgIGZvcm06ICQoZS50YXJnZXQuZm9ybSkNCiAgICAgICAgICAgICAgICB9Ow0KICAgICAgICAgICAgdGhpcy5fZ2V0RmlsZUlucHV0RmlsZXMoZGF0YS5maWxlSW5wdXQpLmFsd2F5cyhmdW5jdGlvbiAoZmlsZXMpIHsNCiAgICAgICAgICAgICAgICBkYXRhLmZpbGVzID0gZmlsZXM7DQogICAgICAgICAgICAgICAgaWYgKHRoYXQub3B0aW9ucy5yZXBsYWNlRmlsZUlucHV0KSB7DQogICAgICAgICAgICAgICAgICAgIHRoYXQuX3JlcGxhY2VGaWxlSW5wdXQoZGF0YS5maWxlSW5wdXQpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZiAodGhhdC5fdHJpZ2dlcignY2hhbmdlJywgZSwgZGF0YSkgIT09IGZhbHNlKSB7DQogICAgICAgICAgICAgICAgICAgIHRoYXQuX29uQWRkKGUsIGRhdGEpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0pOw0KICAgICAgICB9LA0KDQogICAgICAgIF9vblBhc3RlOiBmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgdmFyIGl0ZW1zID0gZS5vcmlnaW5hbEV2ZW50ICYmIGUub3JpZ2luYWxFdmVudC5jbGlwYm9hcmREYXRhICYmDQogICAgICAgICAgICAgICAgICAgIGUub3JpZ2luYWxFdmVudC5jbGlwYm9hcmREYXRhLml0ZW1zLA0KICAgICAgICAgICAgICAgIGRhdGEgPSB7ZmlsZXM6IFtdfTsNCiAgICAgICAgICAgIGlmIChpdGVtcyAmJiBpdGVtcy5sZW5ndGgpIHsNCiAgICAgICAgICAgICAgICAkLmVhY2goaXRlbXMsIGZ1bmN0aW9uIChpbmRleCwgaXRlbSkgew0KICAgICAgICAgICAgICAgICAgICB2YXIgZmlsZSA9IGl0ZW0uZ2V0QXNGaWxlICYmIGl0ZW0uZ2V0QXNGaWxlKCk7DQogICAgICAgICAgICAgICAgICAgIGlmIChmaWxlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBkYXRhLmZpbGVzLnB1c2goZmlsZSk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBpZiAodGhpcy5fdHJpZ2dlcigncGFzdGUnLCBlLCBkYXRhKSA9PT0gZmFsc2UgfHwNCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX29uQWRkKGUsIGRhdGEpID09PSBmYWxzZSkgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9LA0KDQogICAgICAgIF9vbkRyb3A6IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICBlLmRhdGFUcmFuc2ZlciA9IGUub3JpZ2luYWxFdmVudCAmJiBlLm9yaWdpbmFsRXZlbnQuZGF0YVRyYW5zZmVyOw0KICAgICAgICAgICAgdmFyIHRoYXQgPSB0aGlzLA0KICAgICAgICAgICAgICAgIGRhdGFUcmFuc2ZlciA9IGUuZGF0YVRyYW5zZmVyLA0KICAgICAgICAgICAgICAgIGRhdGEgPSB7fTsNCiAgICAgICAgICAgIGlmIChkYXRhVHJhbnNmZXIgJiYgZGF0YVRyYW5zZmVyLmZpbGVzICYmIGRhdGFUcmFuc2Zlci5maWxlcy5sZW5ndGgpIHsNCiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7DQogICAgICAgICAgICAgICAgdGhpcy5fZ2V0RHJvcHBlZEZpbGVzKGRhdGFUcmFuc2ZlcikuYWx3YXlzKGZ1bmN0aW9uIChmaWxlcykgew0KICAgICAgICAgICAgICAgICAgICBkYXRhLmZpbGVzID0gZmlsZXM7DQogICAgICAgICAgICAgICAgICAgIGlmICh0aGF0Ll90cmlnZ2VyKCdkcm9wJywgZSwgZGF0YSkgIT09IGZhbHNlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB0aGF0Ll9vbkFkZChlLCBkYXRhKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9LA0KDQogICAgICAgIF9vbkRyYWdPdmVyOiBmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgZS5kYXRhVHJhbnNmZXIgPSBlLm9yaWdpbmFsRXZlbnQgJiYgZS5vcmlnaW5hbEV2ZW50LmRhdGFUcmFuc2ZlcjsNCiAgICAgICAgICAgIHZhciBkYXRhVHJhbnNmZXIgPSBlLmRhdGFUcmFuc2ZlcjsNCiAgICAgICAgICAgIGlmIChkYXRhVHJhbnNmZXIpIHsNCiAgICAgICAgICAgICAgICBpZiAodGhpcy5fdHJpZ2dlcignZHJhZ292ZXInLCBlKSA9PT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZiAoJC5pbkFycmF5KCdGaWxlcycsIGRhdGFUcmFuc2Zlci50eXBlcykgIT09IC0xKSB7DQogICAgICAgICAgICAgICAgICAgIGRhdGFUcmFuc2Zlci5kcm9wRWZmZWN0ID0gJ2NvcHknOw0KICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9LA0KDQogICAgICAgIF9pbml0RXZlbnRIYW5kbGVyczogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgaWYgKHRoaXMuX2lzWEhSVXBsb2FkKHRoaXMub3B0aW9ucykpIHsNCiAgICAgICAgICAgICAgICB0aGlzLl9vbih0aGlzLm9wdGlvbnMuZHJvcFpvbmUsIHsNCiAgICAgICAgICAgICAgICAgICAgZHJhZ292ZXI6IHRoaXMuX29uRHJhZ092ZXIsDQogICAgICAgICAgICAgICAgICAgIGRyb3A6IHRoaXMuX29uRHJvcA0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIHRoaXMuX29uKHRoaXMub3B0aW9ucy5wYXN0ZVpvbmUsIHsNCiAgICAgICAgICAgICAgICAgICAgcGFzdGU6IHRoaXMuX29uUGFzdGUNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHRoaXMuX29uKHRoaXMub3B0aW9ucy5maWxlSW5wdXQsIHsNCiAgICAgICAgICAgICAgICBjaGFuZ2U6IHRoaXMuX29uQ2hhbmdlDQogICAgICAgICAgICB9KTsNCiAgICAgICAgfSwNCg0KICAgICAgICBfZGVzdHJveUV2ZW50SGFuZGxlcnM6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgIHRoaXMuX29mZih0aGlzLm9wdGlvbnMuZHJvcFpvbmUsICdkcmFnb3ZlciBkcm9wJyk7DQogICAgICAgICAgICB0aGlzLl9vZmYodGhpcy5vcHRpb25zLnBhc3RlWm9uZSwgJ3Bhc3RlJyk7DQogICAgICAgICAgICB0aGlzLl9vZmYodGhpcy5vcHRpb25zLmZpbGVJbnB1dCwgJ2NoYW5nZScpOw0KICAgICAgICB9LA0KDQogICAgICAgIF9zZXRPcHRpb246IGZ1bmN0aW9uIChrZXksIHZhbHVlKSB7DQogICAgICAgICAgICB2YXIgcmVpbml0ID0gJC5pbkFycmF5KGtleSwgdGhpcy5fc3BlY2lhbE9wdGlvbnMpICE9PSAtMTsNCiAgICAgICAgICAgIGlmIChyZWluaXQpIHsNCiAgICAgICAgICAgICAgICB0aGlzLl9kZXN0cm95RXZlbnRIYW5kbGVycygpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgdGhpcy5fc3VwZXIoa2V5LCB2YWx1ZSk7DQogICAgICAgICAgICBpZiAocmVpbml0KSB7DQogICAgICAgICAgICAgICAgdGhpcy5faW5pdFNwZWNpYWxPcHRpb25zKCk7DQogICAgICAgICAgICAgICAgdGhpcy5faW5pdEV2ZW50SGFuZGxlcnMoKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfSwNCg0KICAgICAgICBfaW5pdFNwZWNpYWxPcHRpb25zOiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICB2YXIgb3B0aW9ucyA9IHRoaXMub3B0aW9uczsNCiAgICAgICAgICAgIGlmIChvcHRpb25zLmZpbGVJbnB1dCA9PT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgb3B0aW9ucy5maWxlSW5wdXQgPSB0aGlzLmVsZW1lbnQuaXMoJ2lucHV0W3R5cGU9ImZpbGUiXScpID8NCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudCA6IHRoaXMuZWxlbWVudC5maW5kKCdpbnB1dFt0eXBlPSJmaWxlIl0nKTsNCiAgICAgICAgICAgIH0gZWxzZSBpZiAoIShvcHRpb25zLmZpbGVJbnB1dCBpbnN0YW5jZW9mICQpKSB7DQogICAgICAgICAgICAgICAgb3B0aW9ucy5maWxlSW5wdXQgPSAkKG9wdGlvbnMuZmlsZUlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmICghKG9wdGlvbnMuZHJvcFpvbmUgaW5zdGFuY2VvZiAkKSkgew0KICAgICAgICAgICAgICAgIG9wdGlvbnMuZHJvcFpvbmUgPSAkKG9wdGlvbnMuZHJvcFpvbmUpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKCEob3B0aW9ucy5wYXN0ZVpvbmUgaW5zdGFuY2VvZiAkKSkgew0KICAgICAgICAgICAgICAgIG9wdGlvbnMucGFzdGVab25lID0gJChvcHRpb25zLnBhc3RlWm9uZSk7DQogICAgICAgICAgICB9DQogICAgICAgIH0sDQoNCiAgICAgICAgX2dldFJlZ0V4cDogZnVuY3Rpb24gKHN0cikgew0KICAgICAgICAgICAgdmFyIHBhcnRzID0gc3RyLnNwbGl0KCcvJyksDQogICAgICAgICAgICAgICAgbW9kaWZpZXJzID0gcGFydHMucG9wKCk7DQogICAgICAgICAgICBwYXJ0cy5zaGlmdCgpOw0KICAgICAgICAgICAgcmV0dXJuIG5ldyBSZWdFeHAocGFydHMuam9pbignLycpLCBtb2RpZmllcnMpOw0KICAgICAgICB9LA0KDQogICAgICAgIF9pc1JlZ0V4cE9wdGlvbjogZnVuY3Rpb24gKGtleSwgdmFsdWUpIHsNCiAgICAgICAgICAgIHJldHVybiBrZXkgIT09ICd1cmwnICYmICQudHlwZSh2YWx1ZSkgPT09ICdzdHJpbmcnICYmDQogICAgICAgICAgICAgICAgL15cLy4qXC9baWdtXXswLDN9JC8udGVzdCh2YWx1ZSk7DQogICAgICAgIH0sDQoNCiAgICAgICAgX2luaXREYXRhQXR0cmlidXRlczogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgdmFyIHRoYXQgPSB0aGlzLA0KICAgICAgICAgICAgICAgIG9wdGlvbnMgPSB0aGlzLm9wdGlvbnM7DQogICAgICAgICAgICAvLyBJbml0aWFsaXplIG9wdGlvbnMgc2V0IHZpYSBIVE1MNSBkYXRhLWF0dHJpYnV0ZXM6DQogICAgICAgICAgICAkLmVhY2goDQogICAgICAgICAgICAgICAgJCh0aGlzLmVsZW1lbnRbMF0uY2xvbmVOb2RlKGZhbHNlKSkuZGF0YSgpLA0KICAgICAgICAgICAgICAgIGZ1bmN0aW9uIChrZXksIHZhbHVlKSB7DQogICAgICAgICAgICAgICAgICAgIGlmICh0aGF0Ll9pc1JlZ0V4cE9wdGlvbihrZXksIHZhbHVlKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB0aGF0Ll9nZXRSZWdFeHAodmFsdWUpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIG9wdGlvbnNba2V5XSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICk7DQogICAgICAgIH0sDQoNCiAgICAgICAgX2NyZWF0ZTogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgdGhpcy5faW5pdERhdGFBdHRyaWJ1dGVzKCk7DQogICAgICAgICAgICB0aGlzLl9pbml0U3BlY2lhbE9wdGlvbnMoKTsNCiAgICAgICAgICAgIHRoaXMuX3Nsb3RzID0gW107DQogICAgICAgICAgICB0aGlzLl9zZXF1ZW5jZSA9IHRoaXMuX2dldFhIUlByb21pc2UodHJ1ZSk7DQogICAgICAgICAgICB0aGlzLl9zZW5kaW5nID0gdGhpcy5fYWN0aXZlID0gMDsNCiAgICAgICAgICAgIHRoaXMuX2luaXRQcm9ncmVzc09iamVjdCh0aGlzKTsNCiAgICAgICAgICAgIHRoaXMuX2luaXRFdmVudEhhbmRsZXJzKCk7DQogICAgICAgIH0sDQoNCiAgICAgICAgLy8gVGhpcyBtZXRob2QgaXMgZXhwb3NlZCB0byB0aGUgd2lkZ2V0IEFQSSBhbmQgYWxsb3dzIHRvIHF1ZXJ5DQogICAgICAgIC8vIHRoZSBudW1iZXIgb2YgYWN0aXZlIHVwbG9hZHM6DQogICAgICAgIGFjdGl2ZTogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2FjdGl2ZTsNCiAgICAgICAgfSwNCg0KICAgICAgICAvLyBUaGlzIG1ldGhvZCBpcyBleHBvc2VkIHRvIHRoZSB3aWRnZXQgQVBJIGFuZCBhbGxvd3MgdG8gcXVlcnkNCiAgICAgICAgLy8gdGhlIHdpZGdldCB1cGxvYWQgcHJvZ3Jlc3MuDQogICAgICAgIC8vIEl0IHJldHVybnMgYW4gb2JqZWN0IHdpdGggbG9hZGVkLCB0b3RhbCBhbmQgYml0cmF0ZSBwcm9wZXJ0aWVzDQogICAgICAgIC8vIGZvciB0aGUgcnVubmluZyB1cGxvYWRzOg0KICAgICAgICBwcm9ncmVzczogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3Byb2dyZXNzOw0KICAgICAgICB9LA0KDQogICAgICAgIC8vIFRoaXMgbWV0aG9kIGlzIGV4cG9zZWQgdG8gdGhlIHdpZGdldCBBUEkgYW5kIGFsbG93cyBhZGRpbmcgZmlsZXMNCiAgICAgICAgLy8gdXNpbmcgdGhlIGZpbGV1cGxvYWQgQVBJLiBUaGUgZGF0YSBwYXJhbWV0ZXIgYWNjZXB0cyBhbiBvYmplY3Qgd2hpY2gNCiAgICAgICAgLy8gbXVzdCBoYXZlIGEgZmlsZXMgcHJvcGVydHkgYW5kIGNhbiBjb250YWluIGFkZGl0aW9uYWwgb3B0aW9uczoNCiAgICAgICAgLy8gLmZpbGV1cGxvYWQoJ2FkZCcsIHtmaWxlczogZmlsZXNMaXN0fSk7DQogICAgICAgIGFkZDogZnVuY3Rpb24gKGRhdGEpIHsNCiAgICAgICAgICAgIHZhciB0aGF0ID0gdGhpczsNCiAgICAgICAgICAgIGlmICghZGF0YSB8fCB0aGlzLm9wdGlvbnMuZGlzYWJsZWQpIHsNCiAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAoZGF0YS5maWxlSW5wdXQgJiYgIWRhdGEuZmlsZXMpIHsNCiAgICAgICAgICAgICAgICB0aGlzLl9nZXRGaWxlSW5wdXRGaWxlcyhkYXRhLmZpbGVJbnB1dCkuYWx3YXlzKGZ1bmN0aW9uIChmaWxlcykgew0KICAgICAgICAgICAgICAgICAgICBkYXRhLmZpbGVzID0gZmlsZXM7DQogICAgICAgICAgICAgICAgICAgIHRoYXQuX29uQWRkKG51bGwsIGRhdGEpOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICBkYXRhLmZpbGVzID0gJC5tYWtlQXJyYXkoZGF0YS5maWxlcyk7DQogICAgICAgICAgICAgICAgdGhpcy5fb25BZGQobnVsbCwgZGF0YSk7DQogICAgICAgICAgICB9DQogICAgICAgIH0sDQoNCiAgICAgICAgLy8gVGhpcyBtZXRob2QgaXMgZXhwb3NlZCB0byB0aGUgd2lkZ2V0IEFQSSBhbmQgYWxsb3dzIHNlbmRpbmcgZmlsZXMNCiAgICAgICAgLy8gdXNpbmcgdGhlIGZpbGV1cGxvYWQgQVBJLiBUaGUgZGF0YSBwYXJhbWV0ZXIgYWNjZXB0cyBhbiBvYmplY3Qgd2hpY2gNCiAgICAgICAgLy8gbXVzdCBoYXZlIGEgZmlsZXMgb3IgZmlsZUlucHV0IHByb3BlcnR5IGFuZCBjYW4gY29udGFpbiBhZGRpdGlvbmFsIG9wdGlvbnM6DQogICAgICAgIC8vIC5maWxldXBsb2FkKCdzZW5kJywge2ZpbGVzOiBmaWxlc0xpc3R9KTsNCiAgICAgICAgLy8gVGhlIG1ldGhvZCByZXR1cm5zIGEgUHJvbWlzZSBvYmplY3QgZm9yIHRoZSBmaWxlIHVwbG9hZCBjYWxsLg0KICAgICAgICBzZW5kOiBmdW5jdGlvbiAoZGF0YSkgew0KICAgICAgICAgICAgaWYgKGRhdGEgJiYgIXRoaXMub3B0aW9ucy5kaXNhYmxlZCkgew0KICAgICAgICAgICAgICAgIGlmIChkYXRhLmZpbGVJbnB1dCAmJiAhZGF0YS5maWxlcykgew0KICAgICAgICAgICAgICAgICAgICB2YXIgdGhhdCA9IHRoaXMsDQogICAgICAgICAgICAgICAgICAgICAgICBkZmQgPSAkLkRlZmVycmVkKCksDQogICAgICAgICAgICAgICAgICAgICAgICBwcm9taXNlID0gZGZkLnByb21pc2UoKSwNCiAgICAgICAgICAgICAgICAgICAgICAgIGpxWEhSLA0KICAgICAgICAgICAgICAgICAgICAgICAgYWJvcnRlZDsNCiAgICAgICAgICAgICAgICAgICAgcHJvbWlzZS5hYm9ydCA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGFib3J0ZWQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGpxWEhSKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGpxWEhSLmFib3J0KCk7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBkZmQucmVqZWN0KG51bGwsICdhYm9ydCcsICdhYm9ydCcpOw0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHByb21pc2U7DQogICAgICAgICAgICAgICAgICAgIH07DQogICAgICAgICAgICAgICAgICAgIHRoaXMuX2dldEZpbGVJbnB1dEZpbGVzKGRhdGEuZmlsZUlucHV0KS5hbHdheXMoDQogICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiAoZmlsZXMpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYWJvcnRlZCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEuZmlsZXMgPSBmaWxlczsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBqcVhIUiA9IHRoYXQuX29uU2VuZChudWxsLCBkYXRhKS50aGVuKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiAocmVzdWx0LCB0ZXh0U3RhdHVzLCBqcVhIUikgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGZkLnJlc29sdmUocmVzdWx0LCB0ZXh0U3RhdHVzLCBqcVhIUik7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIChqcVhIUiwgdGV4dFN0YXR1cywgZXJyb3JUaHJvd24pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRmZC5yZWplY3QoanFYSFIsIHRleHRTdGF0dXMsIGVycm9yVGhyb3duKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICk7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9lbmhhbmNlUHJvbWlzZShwcm9taXNlKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZGF0YS5maWxlcyA9ICQubWFrZUFycmF5KGRhdGEuZmlsZXMpOw0KICAgICAgICAgICAgICAgIGlmIChkYXRhLmZpbGVzLmxlbmd0aCkgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fb25TZW5kKG51bGwsIGRhdGEpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHJldHVybiB0aGlzLl9nZXRYSFJQcm9taXNlKGZhbHNlLCBkYXRhICYmIGRhdGEuY29udGV4dCk7DQogICAgICAgIH0NCg0KICAgIH0pOw0KDQp9KSk7DQo=]]></data>
	</file>
	<file>
		<filename>/js/jquery-file-upload/jquery.iframe-transport.js</filename>
		<isdir>0</isdir>
		<data><![CDATA[LyoNCiAqIGpRdWVyeSBJZnJhbWUgVHJhbnNwb3J0IFBsdWdpbiAxLjcNCiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9ibHVlaW1wL2pRdWVyeS1GaWxlLVVwbG9hZA0KICoNCiAqIENvcHlyaWdodCAyMDExLCBTZWJhc3RpYW4gVHNjaGFuDQogKiBodHRwczovL2JsdWVpbXAubmV0DQogKg0KICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlOg0KICogaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVQNCiAqLw0KDQovKmpzbGludCB1bnBhcmFtOiB0cnVlLCBub21lbjogdHJ1ZSAqLw0KLypnbG9iYWwgZGVmaW5lLCB3aW5kb3csIGRvY3VtZW50ICovDQoNCihmdW5jdGlvbiAoZmFjdG9yeSkgew0KICAgICd1c2Ugc3RyaWN0JzsNCiAgICBpZiAodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kKSB7DQogICAgICAgIC8vIFJlZ2lzdGVyIGFzIGFuIGFub255bW91cyBBTUQgbW9kdWxlOg0KICAgICAgICBkZWZpbmUoWydqcXVlcnknXSwgZmFjdG9yeSk7DQogICAgfSBlbHNlIHsNCiAgICAgICAgLy8gQnJvd3NlciBnbG9iYWxzOg0KICAgICAgICBmYWN0b3J5KHdpbmRvdy5qUXVlcnkpOw0KICAgIH0NCn0oZnVuY3Rpb24gKCQpIHsNCiAgICAndXNlIHN0cmljdCc7DQoNCiAgICAvLyBIZWxwZXIgdmFyaWFibGUgdG8gY3JlYXRlIHVuaXF1ZSBuYW1lcyBmb3IgdGhlIHRyYW5zcG9ydCBpZnJhbWVzOg0KICAgIHZhciBjb3VudGVyID0gMDsNCg0KICAgIC8vIFRoZSBpZnJhbWUgdHJhbnNwb3J0IGFjY2VwdHMgdGhyZWUgYWRkaXRpb25hbCBvcHRpb25zOg0KICAgIC8vIG9wdGlvbnMuZmlsZUlucHV0OiBhIGpRdWVyeSBjb2xsZWN0aW9uIG9mIGZpbGUgaW5wdXQgZmllbGRzDQogICAgLy8gb3B0aW9ucy5wYXJhbU5hbWU6IHRoZSBwYXJhbWV0ZXIgbmFtZSBmb3IgdGhlIGZpbGUgZm9ybSBkYXRhLA0KICAgIC8vICBvdmVycmlkZXMgdGhlIG5hbWUgcHJvcGVydHkgb2YgdGhlIGZpbGUgaW5wdXQgZmllbGQocyksDQogICAgLy8gIGNhbiBiZSBhIHN0cmluZyBvciBhbiBhcnJheSBvZiBzdHJpbmdzLg0KICAgIC8vIG9wdGlvbnMuZm9ybURhdGE6IGFuIGFycmF5IG9mIG9iamVjdHMgd2l0aCBuYW1lIGFuZCB2YWx1ZSBwcm9wZXJ0aWVzLA0KICAgIC8vICBlcXVpdmFsZW50IHRvIHRoZSByZXR1cm4gZGF0YSBvZiAuc2VyaWFsaXplQXJyYXkoKSwgZS5nLjoNCiAgICAvLyAgW3tuYW1lOiAnYScsIHZhbHVlOiAxfSwge25hbWU6ICdiJywgdmFsdWU6IDJ9XQ0KICAgICQuYWpheFRyYW5zcG9ydCgnaWZyYW1lJywgZnVuY3Rpb24gKG9wdGlvbnMpIHsNCiAgICAgICAgaWYgKG9wdGlvbnMuYXN5bmMpIHsNCiAgICAgICAgICAgIHZhciBmb3JtLA0KICAgICAgICAgICAgICAgIGlmcmFtZSwNCiAgICAgICAgICAgICAgICBhZGRQYXJhbUNoYXI7DQogICAgICAgICAgICByZXR1cm4gew0KICAgICAgICAgICAgICAgIHNlbmQ6IGZ1bmN0aW9uIChfLCBjb21wbGV0ZUNhbGxiYWNrKSB7DQogICAgICAgICAgICAgICAgICAgIGZvcm0gPSAkKCc8Zm9ybSBzdHlsZT0iZGlzcGxheTpub25lOyI+PC9mb3JtPicpOw0KICAgICAgICAgICAgICAgICAgICBmb3JtLmF0dHIoJ2FjY2VwdC1jaGFyc2V0Jywgb3B0aW9ucy5mb3JtQWNjZXB0Q2hhcnNldCk7DQogICAgICAgICAgICAgICAgICAgIGFkZFBhcmFtQ2hhciA9IC9cPy8udGVzdChvcHRpb25zLnVybCkgPyAnJicgOiAnPyc7DQogICAgICAgICAgICAgICAgICAgIC8vIFhEb21haW5SZXF1ZXN0IG9ubHkgc3VwcG9ydHMgR0VUIGFuZCBQT1NUOg0KICAgICAgICAgICAgICAgICAgICBpZiAob3B0aW9ucy50eXBlID09PSAnREVMRVRFJykgew0KICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy51cmwgPSBvcHRpb25zLnVybCArIGFkZFBhcmFtQ2hhciArICdfbWV0aG9kPURFTEVURSc7DQogICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zLnR5cGUgPSAnUE9TVCc7DQogICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAob3B0aW9ucy50eXBlID09PSAnUFVUJykgew0KICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy51cmwgPSBvcHRpb25zLnVybCArIGFkZFBhcmFtQ2hhciArICdfbWV0aG9kPVBVVCc7DQogICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zLnR5cGUgPSAnUE9TVCc7DQogICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAob3B0aW9ucy50eXBlID09PSAnUEFUQ0gnKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zLnVybCA9IG9wdGlvbnMudXJsICsgYWRkUGFyYW1DaGFyICsgJ19tZXRob2Q9UEFUQ0gnOw0KICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy50eXBlID0gJ1BPU1QnOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIC8vIGphdmFzY3JpcHQ6ZmFsc2UgYXMgaW5pdGlhbCBpZnJhbWUgc3JjDQogICAgICAgICAgICAgICAgICAgIC8vIHByZXZlbnRzIHdhcm5pbmcgcG9wdXBzIG9uIEhUVFBTIGluIElFNi4NCiAgICAgICAgICAgICAgICAgICAgLy8gSUUgdmVyc2lvbnMgYmVsb3cgSUU4IGNhbm5vdCBzZXQgdGhlIG5hbWUgcHJvcGVydHkgb2YNCiAgICAgICAgICAgICAgICAgICAgLy8gZWxlbWVudHMgdGhhdCBoYXZlIGFscmVhZHkgYmVlbiBhZGRlZCB0byB0aGUgRE9NLA0KICAgICAgICAgICAgICAgICAgICAvLyBzbyB3ZSBzZXQgdGhlIG5hbWUgYWxvbmcgd2l0aCB0aGUgaWZyYW1lIEhUTUwgbWFya3VwOg0KICAgICAgICAgICAgICAgICAgICBjb3VudGVyICs9IDE7DQogICAgICAgICAgICAgICAgICAgIGlmcmFtZSA9ICQoDQogICAgICAgICAgICAgICAgICAgICAgICAnPGlmcmFtZSBzcmM9ImphdmFzY3JpcHQ6ZmFsc2U7IiBuYW1lPSJpZnJhbWUtdHJhbnNwb3J0LScgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50ZXIgKyAnIj48L2lmcmFtZT4nDQogICAgICAgICAgICAgICAgICAgICkuYmluZCgnbG9hZCcsIGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBmaWxlSW5wdXRDbG9uZXMsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1OYW1lcyA9ICQuaXNBcnJheShvcHRpb25zLnBhcmFtTmFtZSkgPw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy5wYXJhbU5hbWUgOiBbb3B0aW9ucy5wYXJhbU5hbWVdOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWZyYW1lDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLnVuYmluZCgnbG9hZCcpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLmJpbmQoJ2xvYWQnLCBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciByZXNwb25zZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gV3JhcCBpbiBhIHRyeS9jYXRjaCBibG9jayB0byBjYXRjaCBleGNlcHRpb25zIHRocm93bg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB3aGVuIHRyeWluZyB0byBhY2Nlc3MgY3Jvc3MtZG9tYWluIGlmcmFtZSBjb250ZW50czoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlID0gaWZyYW1lLmNvbnRlbnRzKCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBHb29nbGUgQ2hyb21lIGFuZCBGaXJlZm94IGRvIG5vdCB0aHJvdyBhbg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZXhjZXB0aW9uIHdoZW4gY2FsbGluZyBpZnJhbWUuY29udGVudHMoKSBvbg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY3Jvc3MtZG9tYWluIHJlcXVlc3RzLCBzbyB3ZSB1bmlmeSB0aGUgcmVzcG9uc2U6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXJlc3BvbnNlLmxlbmd0aCB8fCAhcmVzcG9uc2VbMF0uZmlyc3RDaGlsZCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZSA9IHVuZGVmaW5lZDsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGUgY29tcGxldGUgY2FsbGJhY2sgcmV0dXJucyB0aGUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWZyYW1lIGNvbnRlbnQgZG9jdW1lbnQgYXMgcmVzcG9uc2Ugb2JqZWN0Og0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wbGV0ZUNhbGxiYWNrKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjAwLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3N1Y2Nlc3MnLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeydpZnJhbWUnOiByZXNwb25zZX0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRml4IGZvciBJRSBlbmRsZXNzIHByb2dyZXNzIGJhciBhY3Rpdml0eSBidWcNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gKGhhcHBlbnMgb24gZm9ybSBzdWJtaXRzIHRvIGlmcmFtZSB0YXJnZXRzKToNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgnPGlmcmFtZSBzcmM9ImphdmFzY3JpcHQ6ZmFsc2U7Ij48L2lmcmFtZT4nKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmFwcGVuZFRvKGZvcm0pOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBSZW1vdmluZyB0aGUgZm9ybSBpbiBhIHNldFRpbWVvdXQgY2FsbA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYWxsb3dzIENocm9tZSdzIGRldmVsb3BlciB0b29scyB0byBkaXNwbGF5DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgcmVzcG9uc2UgcmVzdWx0DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtLnJlbW92ZSgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCAwKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAucHJvcCgndGFyZ2V0JywgaWZyYW1lLnByb3AoJ25hbWUnKSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAucHJvcCgnYWN0aW9uJywgb3B0aW9ucy51cmwpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLnByb3AoJ21ldGhvZCcsIG9wdGlvbnMudHlwZSk7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAob3B0aW9ucy5mb3JtRGF0YSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICQuZWFjaChvcHRpb25zLmZvcm1EYXRhLCBmdW5jdGlvbiAoaW5kZXgsIGZpZWxkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoJzxpbnB1dCB0eXBlPSJoaWRkZW4iLz4nKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnByb3AoJ25hbWUnLCBmaWVsZC5uYW1lKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnZhbChmaWVsZC52YWx1ZSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5hcHBlbmRUbyhmb3JtKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChvcHRpb25zLmZpbGVJbnB1dCAmJiBvcHRpb25zLmZpbGVJbnB1dC5sZW5ndGggJiYNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy50eXBlID09PSAnUE9TVCcpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlSW5wdXRDbG9uZXMgPSBvcHRpb25zLmZpbGVJbnB1dC5jbG9uZSgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEluc2VydCBhIGNsb25lIGZvciBlYWNoIGZpbGUgaW5wdXQgZmllbGQ6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy5maWxlSW5wdXQuYWZ0ZXIoZnVuY3Rpb24gKGluZGV4KSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmaWxlSW5wdXRDbG9uZXNbaW5kZXhdOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChvcHRpb25zLnBhcmFtTmFtZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zLmZpbGVJbnB1dC5lYWNoKGZ1bmN0aW9uIChpbmRleCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5wcm9wKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICduYW1lJywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbU5hbWVzW2luZGV4XSB8fCBvcHRpb25zLnBhcmFtTmFtZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEFwcGVuZGluZyB0aGUgZmlsZSBpbnB1dCBmaWVsZHMgdG8gdGhlIGhpZGRlbiBmb3JtDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVtb3ZlcyB0aGVtIGZyb20gdGhlaXIgb3JpZ2luYWwgbG9jYXRpb246DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuYXBwZW5kKG9wdGlvbnMuZmlsZUlucHV0KQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAucHJvcCgnZW5jdHlwZScsICdtdWx0aXBhcnQvZm9ybS1kYXRhJykNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZW5jdHlwZSBtdXN0IGJlIHNldCBhcyBlbmNvZGluZyBmb3IgSUU6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5wcm9wKCdlbmNvZGluZycsICdtdWx0aXBhcnQvZm9ybS1kYXRhJyk7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBmb3JtLnN1Ym1pdCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgLy8gSW5zZXJ0IHRoZSBmaWxlIGlucHV0IGZpZWxkcyBhdCB0aGVpciBvcmlnaW5hbCBsb2NhdGlvbg0KICAgICAgICAgICAgICAgICAgICAgICAgLy8gYnkgcmVwbGFjaW5nIHRoZSBjbG9uZXMgd2l0aCB0aGUgb3JpZ2luYWxzOg0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZpbGVJbnB1dENsb25lcyAmJiBmaWxlSW5wdXRDbG9uZXMubGVuZ3RoKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy5maWxlSW5wdXQuZWFjaChmdW5jdGlvbiAoaW5kZXgsIGlucHV0KSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjbG9uZSA9ICQoZmlsZUlucHV0Q2xvbmVzW2luZGV4XSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoaW5wdXQpLnByb3AoJ25hbWUnLCBjbG9uZS5wcm9wKCduYW1lJykpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9uZS5yZXBsYWNlV2l0aChpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgICAgICBmb3JtLmFwcGVuZChpZnJhbWUpLmFwcGVuZFRvKGRvY3VtZW50LmJvZHkpOw0KICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgYWJvcnQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKGlmcmFtZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgLy8gamF2YXNjcmlwdDpmYWxzZSBhcyBpZnJhbWUgc3JjIGFib3J0cyB0aGUgcmVxdWVzdA0KICAgICAgICAgICAgICAgICAgICAgICAgLy8gYW5kIHByZXZlbnRzIHdhcm5pbmcgcG9wdXBzIG9uIEhUVFBTIGluIElFNi4NCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbmNhdCBpcyB1c2VkIHRvIGF2b2lkIHRoZSAiU2NyaXB0IFVSTCIgSlNMaW50IGVycm9yOg0KICAgICAgICAgICAgICAgICAgICAgICAgaWZyYW1lDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLnVuYmluZCgnbG9hZCcpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLnByb3AoJ3NyYycsICdqYXZhc2NyaXB0Jy5jb25jYXQoJzpmYWxzZTsnKSk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGZvcm0pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm0ucmVtb3ZlKCk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9Ow0KICAgICAgICB9DQogICAgfSk7DQoNCiAgICAvLyBUaGUgaWZyYW1lIHRyYW5zcG9ydCByZXR1cm5zIHRoZSBpZnJhbWUgY29udGVudCBkb2N1bWVudCBhcyByZXNwb25zZS4NCiAgICAvLyBUaGUgZm9sbG93aW5nIGFkZHMgY29udmVydGVycyBmcm9tIGlmcmFtZSB0byB0ZXh0LCBqc29uLCBodG1sLCB4bWwNCiAgICAvLyBhbmQgc2NyaXB0Lg0KICAgIC8vIFBsZWFzZSBub3RlIHRoYXQgdGhlIENvbnRlbnQtVHlwZSBmb3IgSlNPTiByZXNwb25zZXMgaGFzIHRvIGJlIHRleHQvcGxhaW4NCiAgICAvLyBvciB0ZXh0L2h0bWwsIGlmIHRoZSBicm93c2VyIGRvZXNuJ3QgaW5jbHVkZSBhcHBsaWNhdGlvbi9qc29uIGluIHRoZQ0KICAgIC8vIEFjY2VwdCBoZWFkZXIsIGVsc2UgSUUgd2lsbCBzaG93IGEgZG93bmxvYWQgZGlhbG9nLg0KICAgIC8vIFRoZSBDb250ZW50LVR5cGUgZm9yIFhNTCByZXNwb25zZXMgb24gdGhlIG90aGVyIGhhbmQgaGFzIHRvIGJlIGFsd2F5cw0KICAgIC8vIGFwcGxpY2F0aW9uL3htbCBvciB0ZXh0L3htbCwgc28gSUUgcHJvcGVybHkgcGFyc2VzIHRoZSBYTUwgcmVzcG9uc2UuDQogICAgLy8gU2VlIGFsc28NCiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vYmx1ZWltcC9qUXVlcnktRmlsZS1VcGxvYWQvd2lraS9TZXR1cCNjb250ZW50LXR5cGUtbmVnb3RpYXRpb24NCiAgICAkLmFqYXhTZXR1cCh7DQogICAgICAgIGNvbnZlcnRlcnM6IHsNCiAgICAgICAgICAgICdpZnJhbWUgdGV4dCc6IGZ1bmN0aW9uIChpZnJhbWUpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gaWZyYW1lICYmICQoaWZyYW1lWzBdLmJvZHkpLnRleHQoKTsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICAnaWZyYW1lIGpzb24nOiBmdW5jdGlvbiAoaWZyYW1lKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGlmcmFtZSAmJiAkLnBhcnNlSlNPTigkKGlmcmFtZVswXS5ib2R5KS50ZXh0KCkpOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICdpZnJhbWUgaHRtbCc6IGZ1bmN0aW9uIChpZnJhbWUpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gaWZyYW1lICYmICQoaWZyYW1lWzBdLmJvZHkpLmh0bWwoKTsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICAnaWZyYW1lIHhtbCc6IGZ1bmN0aW9uIChpZnJhbWUpIHsNCiAgICAgICAgICAgICAgICB2YXIgeG1sRG9jID0gaWZyYW1lICYmIGlmcmFtZVswXTsNCiAgICAgICAgICAgICAgICByZXR1cm4geG1sRG9jICYmICQuaXNYTUxEb2MoeG1sRG9jKSA/IHhtbERvYyA6DQogICAgICAgICAgICAgICAgICAgICAgICAkLnBhcnNlWE1MKCh4bWxEb2MuWE1MRG9jdW1lbnQgJiYgeG1sRG9jLlhNTERvY3VtZW50LnhtbCkgfHwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKHhtbERvYy5ib2R5KS5odG1sKCkpOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICdpZnJhbWUgc2NyaXB0JzogZnVuY3Rpb24gKGlmcmFtZSkgew0KICAgICAgICAgICAgICAgIHJldHVybiBpZnJhbWUgJiYgJC5nbG9iYWxFdmFsKCQoaWZyYW1lWzBdLmJvZHkpLnRleHQoKSk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICB9KTsNCg0KfSkpOw0K]]></data>
	</file>
	<file>
		<filename>/js/jquery-file-upload/package.json</filename>
		<isdir>0</isdir>
		<data><![CDATA[ew0KICAgICJuYW1lIjogImJsdWVpbXAtZmlsZS11cGxvYWQiLA0KICAgICJ2ZXJzaW9uIjogIjguMy4yIiwNCiAgICAidGl0bGUiOiAialF1ZXJ5IEZpbGUgVXBsb2FkIiwNCiAgICAiZGVzY3JpcHRpb24iOiAiRmlsZSBVcGxvYWQgd2lkZ2V0IHdpdGggbXVsdGlwbGUgZmlsZSBzZWxlY3Rpb24sIGRyYWcmYW1wO2Ryb3Agc3VwcG9ydCwgcHJvZ3Jlc3MgYmFyLCB2YWxpZGF0aW9uIGFuZCBwcmV2aWV3IGltYWdlcywgYXVkaW8gYW5kIHZpZGVvIGZvciBqUXVlcnkuIFN1cHBvcnRzIGNyb3NzLWRvbWFpbiwgY2h1bmtlZCBhbmQgcmVzdW1hYmxlIGZpbGUgdXBsb2Fkcy4gV29ya3Mgd2l0aCBhbnkgc2VydmVyLXNpZGUgcGxhdGZvcm0gKEdvb2dsZSBBcHAgRW5naW5lLCBQSFAsIFB5dGhvbiwgUnVieSBvbiBSYWlscywgSmF2YSwgZXRjLikgdGhhdCBzdXBwb3J0cyBzdGFuZGFyZCBIVE1MIGZvcm0gZmlsZSB1cGxvYWRzLiIsDQogICAgImtleXdvcmRzIjogWw0KICAgICAgICAianF1ZXJ5IiwNCiAgICAgICAgImZpbGUiLA0KICAgICAgICAidXBsb2FkIiwNCiAgICAgICAgIndpZGdldCIsDQogICAgICAgICJtdWx0aXBsZSIsDQogICAgICAgICJzZWxlY3Rpb24iLA0KICAgICAgICAiZHJhZyIsDQogICAgICAgICJkcm9wIiwNCiAgICAgICAgInByb2dyZXNzIiwNCiAgICAgICAgInByZXZpZXciLA0KICAgICAgICAiY3Jvc3MtZG9tYWluIiwNCiAgICAgICAgImNyb3NzLXNpdGUiLA0KICAgICAgICAiY2h1bmsiLA0KICAgICAgICAicmVzdW1lIiwNCiAgICAgICAgImdhZSIsDQogICAgICAgICJnbyIsDQogICAgICAgICJweXRob24iLA0KICAgICAgICAicGhwIiwNCiAgICAgICAgImJvb3RzdHJhcCINCiAgICBdLA0KICAgICJob21lcGFnZSI6ICJodHRwczovL2dpdGh1Yi5jb20vYmx1ZWltcC9qUXVlcnktRmlsZS1VcGxvYWQiLA0KICAgICJhdXRob3IiOiB7DQogICAgICAgICJuYW1lIjogIlNlYmFzdGlhbiBUc2NoYW4iLA0KICAgICAgICAidXJsIjogImh0dHBzOi8vYmx1ZWltcC5uZXQiDQogICAgfSwNCiAgICAibWFpbnRhaW5lcnMiOiBbDQogICAgICAgIHsNCiAgICAgICAgICAgICJuYW1lIjogIlNlYmFzdGlhbiBUc2NoYW4iLA0KICAgICAgICAgICAgInVybCI6ICJodHRwczovL2JsdWVpbXAubmV0Ig0KICAgICAgICB9DQogICAgXSwNCiAgICAicmVwb3NpdG9yeSI6IHsNCiAgICAgICAgInR5cGUiOiAiZ2l0IiwNCiAgICAgICAgInVybCI6ICJnaXQ6Ly9naXRodWIuY29tL2JsdWVpbXAvalF1ZXJ5LUZpbGUtVXBsb2FkLmdpdCINCiAgICB9LA0KICAgICJidWdzIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ibHVlaW1wL2pRdWVyeS1GaWxlLVVwbG9hZC9pc3N1ZXMiLA0KICAgICJsaWNlbnNlcyI6IFsNCiAgICAgICAgew0KICAgICAgICAgICAgInR5cGUiOiAiTUlUIiwNCiAgICAgICAgICAgICJ1cmwiOiAiaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVQiDQogICAgICAgIH0NCiAgICBdLA0KICAgICJkZXBlbmRlbmNpZXMiOiB7DQogICAgICAgICJqcXVlcnkiOiAiPj0xLjYiLA0KICAgICAgICAianF1ZXJ5LnVpLndpZGdldCI6ICI+PTEuOSIsDQogICAgICAgICJibHVlaW1wLXRtcGwiOiAiPj0yLjEuMCIsDQogICAgICAgICJibHVlaW1wLWxvYWQtaW1hZ2UiOiAiPj0xLjcuMCIsDQogICAgICAgICJibHVlaW1wLWNhbnZhcy10by1ibG9iIjogIj49Mi4wLjUiDQogICAgfQ0KfQ0K]]></data>
	</file>
	<file>
		<filename>/js/jquery-file-upload/progressbar.gif</filename>
		<isdir>0</isdir>
		<data><![CDATA[R0lGODlhMAAWALsLAO+tY/+lSv+9c/e1a++cQu+cSvelSv+tUv+1c/elQu+ta//WnO/FjPfFlPfOlAAAACH5BAUHAA8AIf8LTkVUU0NBUEUyLjADAQAAACwAAAAAMAAWAAAEtpDJSat1K+vNe26SIo5kWQ5Cqq5smw5mLCuoa7vwCOx87/O1m/D1KxoBweFtcGwClUOms5mEtqRTY9W6wmZ/A4R4TC6bxd5vL3xun9PqHdtNR08L+LzecOj7/4CBfQZ6hYaHfIKKgoSHjoaJi5KDj5V5BgYBmZuanZmeoI2Wj5ihpqabo4UErKyop5yxrbO0tbMBuLm6u7y5CbbAtr3DxL/Bx67EyrrGyMEJy9HNzrbQ0crT1LURACH5BAUHAA8ALAAAAAAwABYAAAR28MlJK3Vr2c0bY1w4DYIgnoOinCFpsly6wpZLbwMA3JXNU7ndT+IbPoLGYyl51CWLQ6RxgEAwpdHq1TnVPrlDw+HANBQKSTE5fU6Py22jwRBgPuJhuh3/CxjsDwQESQF1TAmChIZJiINGhXaNTJCMiYyLQ5KXEQAh+QQFBwAPACwAAAAAMAAWAAAEdvDJSat0a9nNG2NcOA2CIJ6DopwhabJcusKWS28DANyVzVO53U/iGz6CxmMpedQli0OkcYBAMKXR6tU51T65Q8PhwDQUCkkxOX1Oj8tto8EQYD7iYbod/wsY7A8EBEkBdUwJgkyGSYiDhHaNiotDkYyFjImWdREAIfkEBQcADwAsAAAAADAAFgAABHfwyUmrW6vqPRtjXDgNgiCeg6KcIWmyXLrCmktvAwDclc1Tud1P4hs+gsZjKXnUJYtDpHGAQDCl0erVOdU+uUPD4cA0FApJMTl9To/LbaPBEGA+4sMA3Y4P2x8EBEx1TAmBg4RGhoJJAYlDi4iFh0kJjpWUipcSEQAh+QQFBwAPACwAAAAAMAAWAAAEdvDJSadbq+o9G2NcOA2CIJ6DopwhabJcusKaS28DANyVzVO53U/iGz6CxmMpedQli0OkcYBAMKXR6tU51T65Q8PhwDQUCkkxOX1Oj8vtdID5iBvndPswgE8SCEwBBkwJf4F9Q4WASXyEhoyIP4qEjUaTSQmVExEAIfkEBQcADwAsAAAAADAAFgAABH3wyUndujTr3JjfIDUIZGg+g6Ke4FiyW7rCmSvQ2gDsuEjevYmOF0T9ipIhAGlDonbLYpMJZSKuTqUVSyUGB1dEtoo8mJ2Gghp9RqbX7nbxXWAfnA913R0w4PVoAQF4BIVOgoNICYUEh4JOi4ZIiJCMjolFkY2KlJmWnI8aEQAh+QQFBwAPACwAAAAAMAAWAAAEdPDJKd1aNGvdGNtgNghCaEqDopzhWLJgusKaS28DANwiyYu638QmRAWLRORRmGQufwMEomjcUaXUR86KnFK32WjWUCiMDwcq2axGq8vnNBWuNgSy9KLBniUQsgEGWQl+gHdUhH9UAYdFiYaDhYiMiJKOlCERACH5BAUHAA8ALAAAAAAwABYAAAR08Mnp1po469kY22A2CEJoSoOinOFYsmC6wppLbwMA3CLJi7rfxCZEBYtE5LHoKz5yO+cA4XwuhdMqVIugKqPIrtNQKFQNh8O4fE6vzWO3kz02BKr0osFeJRCqAQZVCX6Ad06Ef04Bh0WJhoOFiIyIko6UJxEAIfkEBQcADwAsAAAAADAAFgAABHTwyefWmjjr2RjbYDYIQmhKg6Kc4ViyYLrCmktvAwDcIsmLuh/GJ0QFi48RMnksKpG5HZQojC4HCAS0Wc1upU5v0VAoLA2HA5JsXqfX5fMbGV8bAsv6+L4kEJYBBksJfoB4SIR/SAGHRYmGg4WIjIiSjpQwEQAh+QQFBwAPACwAAAAAMAAWAAAEc/A9t5a8OOvXGNtgNghCaEqDopzhWLJgusIbSW8DANzayIu6H8YnRAWLDxcyt1vaikxk8imMLhGI5RGK1Ta52aKhUJAaDgfkuKxGq8lmNxKuNgSkdLFdSiBIAwZSCX1/d0iDfkgBhkWIhYKEh4uHkY2TNxEAIfkEBQcADwAsAAAAADAAFgAABHLQrfWqvTg3xrL/gvCN16AoZDqI6Wii7bfGMgDQ3sri1mDzGB2w9xtWhEbfzfhADpXMZogJpSIQ1GLyml1usUZDoRA1HA5MMTl9To/LbeY7bQhE5+F6lECIBgxRCXx+dkyCfUwBhUaHhIGDhoqGkIySQBEAIfkEBQcADwAsAAAAADAAFgAABHFwvUmrvY2xy7uTXUgNiiKegyCcIWmyXbrC1wAANCfnlo3zlR1w4huOVMZHMSkcLo1N4NOJQDBvSWX1+oNujYZCIWs4HJLhMdqMFpPZSTfaEMjKwfQsgZANGLIJe311SYF8SQGERoaDgIKFiYWPi5FGEQAh+QQFBwAPACwAAAAAMAAWAAAEcvDJSWttjNnN3VpcOA2KIp6DIJwhabJcusLWAAD0JueVjfOUHVDiG45UxkcxKRwujU3g04lAMG9JZfX6g26NhkIhazgckuEx2owWk9lJNzoQyMrB9CyBkM0nE3t9dX+BSX5GgHyGg4iFiIdDjkMJkEAJEQAh+QQFBwAPACwAAAAAMAAWAAAEcvDJSetsjNnN3VpcOA2KIp6DIJwhabJcusLWAAD0JueVjfOUHVDiG45UxkcxKRwujU3g04lAMG9JZfX6g26NhkIhazgckuEx2owWk9lJNzoQyMrB9CyBkM0nE3t9dX+BSX5JhUaHRoBZCYtAjX+QPIAEEQAh+QQFBwAPACwAAAAAMAAWAAAEc/DJSetrjNnN3VpcOA2KIp6DIJwhabJcusLWAAD0JueVjfOUHVDiG45UxkcxKRwujU3g04lAMG9JZfX6g26NhkIhazgckuEx2owWk9lJNzoQyMrB9CyBkM3r+Ul+SQmARoJGhH11WYSFQAmHj3uDkTyNEhEAIfkEBQcADwAsAAAAADAAFgAABHPwyUlpY6zqPd1aXDgNiiKegyCcIWmyXLrC2gAA9CbnlY3zlB1Q4huOVMZHMSkcLo1N4NOJQDBvSWX1+oNujYZCIWs4HJLhMdqMFpPZSTc6EMjKwXQyIZvPPvZJfUkJBIBDgkaEhkCIQ4qDjTyPiZE5kxIRACH5BAUHAA8ALAAAAAAwABYAAAR28MlJZWOs6j3dWlw4DYoinoMgnCFpsly6wtoAAPQm55WN85QdUOIbjlTGRzEpHC6NTeDTiUAwb0ll9fqDbo2GQiFrOByS4THanBWT2Wg1OBDIPuRDej2O59HtBgQESX9ZCYKEe0mHg0aFi4hGCY9DjIuUQJYVEQAh+QQFBwAPACwAAAAAMAAWAAAEf/DJORu7NOvslt8gNShkaD6DoJ7gWLJbusLZANy0Jgu5eAM9kYoXRP2Kkh3ShlsOl0fnLMgELhFYaLM4wCKQjyjXCx4UCmDDYZ0+p9eHNhqpZtPP86AhwAc/8HR9foBFfAF+DwSKSIZ+CYoEjIJIj4uFk0WVkZmNlJCUnZmfGxEAIfkEBQcADwAsAAAAADAAFgAABHXwyfkaYzRr7dbaYDYoSmhKgyCc4ViyYLrC2gAA9Cbn4s2Lqt/EhhOigkai8TgTKpe7pQ+KQCwftuugqi0mudCp0HA4XA2FwpJsXqfX5fPbaAgEro/52I7X//h4BARLgEsJgoR3V4eDRoVGjIaPP5GQkzyVIREAIfkEBQcADwAsAAAAADAAFgAABHjwSdkYmzjr6dbaYDYoSmhKgyCc4ViyYLrC2gAA9Cbn4s2Lqt/EhhOigsaHL7ljFo1N6FM4QCCSDyLTitVCuc4pz3A4YA2FQpJsXqfX5fPbaAgEsI+5sH7H6n92eA8EBEmBWAmEhn1JiYVGh42KRgmRQo6Nlj+YLBEAIfkEBQcADwAsAAAAADAAFgAABHXwycaYvDjr59baYDYoSmhKgyCc4ViyYLrC2gAA9Cbn2s2Lqh/GJrzsig8i8li04ZrBpa+JQCCTU+GgenUuudKn0HA4XA2FApJsXqfX5fO7aAgEro/52I7X//h4BARIgEgJgoR3V4eDRYVFjIaPP5GQkzyVMBEAIfkEBQcADwAsAAAAADAAFgAABHTwNcaevThrt5b+36AoYIkNgmCu42qiqgsOgDyndljnGcz3gN3v4RtaaMJf0Yg0EnHOJhOBcBKDUapVOhxoo1ij4XCwGgoF57isRqvJZrc4ELA+5EMD3Y7/7e0EBE5/TgmBg3VWhoJGhEaLhY4/kI+SPJQ5EQAh+QQJBwAPACwAAAAAMAAWAAAEdJCxR6u92K2Fu2+KJ1qDIIzoEKJiebKeusKXS3cDANy1yde6X8UmpOR2RWIymPQVH8fnAIF4QpnCaVWK/Wmt0aLhcLAaCoXnuKxGq8lmtzgQsD7kQgPdjv/p7Q8EBGp1VgmChHaHg3OKiEUJe0+Lk5KQjz8RADs=]]></data>
	</file>
	<file>
		<filename>/js/jquery-file-upload/vendor</filename>
		<isdir>1</isdir>
	</file>
	<file>
		<filename>/js/jquery-file-upload/vendor/index.html</filename>
		<isdir>0</isdir>
		<data><![CDATA[PCEtLSBEVU1NWSBIVE1MIEZJTEUgLS0+]]></data>
	</file>
	<file>
		<filename>/js/jquery-file-upload/vendor/jquery.ui.widget.js</filename>
		<isdir>0</isdir>
		<data><![CDATA[LyoNCiAqIGpRdWVyeSBVSSBXaWRnZXQgMS4xMC4zK2FtZA0KICogaHR0cHM6Ly9naXRodWIuY29tL2JsdWVpbXAvalF1ZXJ5LUZpbGUtVXBsb2FkDQogKg0KICogQ29weXJpZ2h0IDIwMTMgalF1ZXJ5IEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9ycw0KICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLg0KICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQ0KICoNCiAqIGh0dHA6Ly9hcGkuanF1ZXJ5dWkuY29tL2pRdWVyeS53aWRnZXQvDQogKi8NCg0KKGZ1bmN0aW9uIChmYWN0b3J5KSB7DQogICAgaWYgKHR5cGVvZiBkZWZpbmUgPT09ICJmdW5jdGlvbiIgJiYgZGVmaW5lLmFtZCkgew0KICAgICAgICAvLyBSZWdpc3RlciBhcyBhbiBhbm9ueW1vdXMgQU1EIG1vZHVsZToNCiAgICAgICAgZGVmaW5lKFsianF1ZXJ5Il0sIGZhY3RvcnkpOw0KICAgIH0gZWxzZSB7DQogICAgICAgIC8vIEJyb3dzZXIgZ2xvYmFsczoNCiAgICAgICAgZmFjdG9yeShqUXVlcnkpOw0KICAgIH0NCn0oZnVuY3Rpb24oICQsIHVuZGVmaW5lZCApIHsNCg0KdmFyIHV1aWQgPSAwLA0KCXNsaWNlID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLA0KCV9jbGVhbkRhdGEgPSAkLmNsZWFuRGF0YTsNCiQuY2xlYW5EYXRhID0gZnVuY3Rpb24oIGVsZW1zICkgew0KCWZvciAoIHZhciBpID0gMCwgZWxlbTsgKGVsZW0gPSBlbGVtc1tpXSkgIT0gbnVsbDsgaSsrICkgew0KCQl0cnkgew0KCQkJJCggZWxlbSApLnRyaWdnZXJIYW5kbGVyKCAicmVtb3ZlIiApOw0KCQkvLyBodHRwOi8vYnVncy5qcXVlcnkuY29tL3RpY2tldC84MjM1DQoJCX0gY2F0Y2goIGUgKSB7fQ0KCX0NCglfY2xlYW5EYXRhKCBlbGVtcyApOw0KfTsNCg0KJC53aWRnZXQgPSBmdW5jdGlvbiggbmFtZSwgYmFzZSwgcHJvdG90eXBlICkgew0KCXZhciBmdWxsTmFtZSwgZXhpc3RpbmdDb25zdHJ1Y3RvciwgY29uc3RydWN0b3IsIGJhc2VQcm90b3R5cGUsDQoJCS8vIHByb3hpZWRQcm90b3R5cGUgYWxsb3dzIHRoZSBwcm92aWRlZCBwcm90b3R5cGUgdG8gcmVtYWluIHVubW9kaWZpZWQNCgkJLy8gc28gdGhhdCBpdCBjYW4gYmUgdXNlZCBhcyBhIG1peGluIGZvciBtdWx0aXBsZSB3aWRnZXRzICgjODg3NikNCgkJcHJveGllZFByb3RvdHlwZSA9IHt9LA0KCQluYW1lc3BhY2UgPSBuYW1lLnNwbGl0KCAiLiIgKVsgMCBdOw0KDQoJbmFtZSA9IG5hbWUuc3BsaXQoICIuIiApWyAxIF07DQoJZnVsbE5hbWUgPSBuYW1lc3BhY2UgKyAiLSIgKyBuYW1lOw0KDQoJaWYgKCAhcHJvdG90eXBlICkgew0KCQlwcm90b3R5cGUgPSBiYXNlOw0KCQliYXNlID0gJC5XaWRnZXQ7DQoJfQ0KDQoJLy8gY3JlYXRlIHNlbGVjdG9yIGZvciBwbHVnaW4NCgkkLmV4cHJbICI6IiBdWyBmdWxsTmFtZS50b0xvd2VyQ2FzZSgpIF0gPSBmdW5jdGlvbiggZWxlbSApIHsNCgkJcmV0dXJuICEhJC5kYXRhKCBlbGVtLCBmdWxsTmFtZSApOw0KCX07DQoNCgkkWyBuYW1lc3BhY2UgXSA9ICRbIG5hbWVzcGFjZSBdIHx8IHt9Ow0KCWV4aXN0aW5nQ29uc3RydWN0b3IgPSAkWyBuYW1lc3BhY2UgXVsgbmFtZSBdOw0KCWNvbnN0cnVjdG9yID0gJFsgbmFtZXNwYWNlIF1bIG5hbWUgXSA9IGZ1bmN0aW9uKCBvcHRpb25zLCBlbGVtZW50ICkgew0KCQkvLyBhbGxvdyBpbnN0YW50aWF0aW9uIHdpdGhvdXQgIm5ldyIga2V5d29yZA0KCQlpZiAoICF0aGlzLl9jcmVhdGVXaWRnZXQgKSB7DQoJCQlyZXR1cm4gbmV3IGNvbnN0cnVjdG9yKCBvcHRpb25zLCBlbGVtZW50ICk7DQoJCX0NCg0KCQkvLyBhbGxvdyBpbnN0YW50aWF0aW9uIHdpdGhvdXQgaW5pdGlhbGl6aW5nIGZvciBzaW1wbGUgaW5oZXJpdGFuY2UNCgkJLy8gbXVzdCB1c2UgIm5ldyIga2V5d29yZCAodGhlIGNvZGUgYWJvdmUgYWx3YXlzIHBhc3NlcyBhcmdzKQ0KCQlpZiAoIGFyZ3VtZW50cy5sZW5ndGggKSB7DQoJCQl0aGlzLl9jcmVhdGVXaWRnZXQoIG9wdGlvbnMsIGVsZW1lbnQgKTsNCgkJfQ0KCX07DQoJLy8gZXh0ZW5kIHdpdGggdGhlIGV4aXN0aW5nIGNvbnN0cnVjdG9yIHRvIGNhcnJ5IG92ZXIgYW55IHN0YXRpYyBwcm9wZXJ0aWVzDQoJJC5leHRlbmQoIGNvbnN0cnVjdG9yLCBleGlzdGluZ0NvbnN0cnVjdG9yLCB7DQoJCXZlcnNpb246IHByb3RvdHlwZS52ZXJzaW9uLA0KCQkvLyBjb3B5IHRoZSBvYmplY3QgdXNlZCB0byBjcmVhdGUgdGhlIHByb3RvdHlwZSBpbiBjYXNlIHdlIG5lZWQgdG8NCgkJLy8gcmVkZWZpbmUgdGhlIHdpZGdldCBsYXRlcg0KCQlfcHJvdG86ICQuZXh0ZW5kKCB7fSwgcHJvdG90eXBlICksDQoJCS8vIHRyYWNrIHdpZGdldHMgdGhhdCBpbmhlcml0IGZyb20gdGhpcyB3aWRnZXQgaW4gY2FzZSB0aGlzIHdpZGdldCBpcw0KCQkvLyByZWRlZmluZWQgYWZ0ZXIgYSB3aWRnZXQgaW5oZXJpdHMgZnJvbSBpdA0KCQlfY2hpbGRDb25zdHJ1Y3RvcnM6IFtdDQoJfSk7DQoNCgliYXNlUHJvdG90eXBlID0gbmV3IGJhc2UoKTsNCgkvLyB3ZSBuZWVkIHRvIG1ha2UgdGhlIG9wdGlvbnMgaGFzaCBhIHByb3BlcnR5IGRpcmVjdGx5IG9uIHRoZSBuZXcgaW5zdGFuY2UNCgkvLyBvdGhlcndpc2Ugd2UnbGwgbW9kaWZ5IHRoZSBvcHRpb25zIGhhc2ggb24gdGhlIHByb3RvdHlwZSB0aGF0IHdlJ3JlDQoJLy8gaW5oZXJpdGluZyBmcm9tDQoJYmFzZVByb3RvdHlwZS5vcHRpb25zID0gJC53aWRnZXQuZXh0ZW5kKCB7fSwgYmFzZVByb3RvdHlwZS5vcHRpb25zICk7DQoJJC5lYWNoKCBwcm90b3R5cGUsIGZ1bmN0aW9uKCBwcm9wLCB2YWx1ZSApIHsNCgkJaWYgKCAhJC5pc0Z1bmN0aW9uKCB2YWx1ZSApICkgew0KCQkJcHJveGllZFByb3RvdHlwZVsgcHJvcCBdID0gdmFsdWU7DQoJCQlyZXR1cm47DQoJCX0NCgkJcHJveGllZFByb3RvdHlwZVsgcHJvcCBdID0gKGZ1bmN0aW9uKCkgew0KCQkJdmFyIF9zdXBlciA9IGZ1bmN0aW9uKCkgew0KCQkJCQlyZXR1cm4gYmFzZS5wcm90b3R5cGVbIHByb3AgXS5hcHBseSggdGhpcywgYXJndW1lbnRzICk7DQoJCQkJfSwNCgkJCQlfc3VwZXJBcHBseSA9IGZ1bmN0aW9uKCBhcmdzICkgew0KCQkJCQlyZXR1cm4gYmFzZS5wcm90b3R5cGVbIHByb3AgXS5hcHBseSggdGhpcywgYXJncyApOw0KCQkJCX07DQoJCQlyZXR1cm4gZnVuY3Rpb24oKSB7DQoJCQkJdmFyIF9fc3VwZXIgPSB0aGlzLl9zdXBlciwNCgkJCQkJX19zdXBlckFwcGx5ID0gdGhpcy5fc3VwZXJBcHBseSwNCgkJCQkJcmV0dXJuVmFsdWU7DQoNCgkJCQl0aGlzLl9zdXBlciA9IF9zdXBlcjsNCgkJCQl0aGlzLl9zdXBlckFwcGx5ID0gX3N1cGVyQXBwbHk7DQoNCgkJCQlyZXR1cm5WYWx1ZSA9IHZhbHVlLmFwcGx5KCB0aGlzLCBhcmd1bWVudHMgKTsNCg0KCQkJCXRoaXMuX3N1cGVyID0gX19zdXBlcjsNCgkJCQl0aGlzLl9zdXBlckFwcGx5ID0gX19zdXBlckFwcGx5Ow0KDQoJCQkJcmV0dXJuIHJldHVyblZhbHVlOw0KCQkJfTsNCgkJfSkoKTsNCgl9KTsNCgljb25zdHJ1Y3Rvci5wcm90b3R5cGUgPSAkLndpZGdldC5leHRlbmQoIGJhc2VQcm90b3R5cGUsIHsNCgkJLy8gVE9ETzogcmVtb3ZlIHN1cHBvcnQgZm9yIHdpZGdldEV2ZW50UHJlZml4DQoJCS8vIGFsd2F5cyB1c2UgdGhlIG5hbWUgKyBhIGNvbG9uIGFzIHRoZSBwcmVmaXgsIGUuZy4sIGRyYWdnYWJsZTpzdGFydA0KCQkvLyBkb24ndCBwcmVmaXggZm9yIHdpZGdldHMgdGhhdCBhcmVuJ3QgRE9NLWJhc2VkDQoJCXdpZGdldEV2ZW50UHJlZml4OiBleGlzdGluZ0NvbnN0cnVjdG9yID8gYmFzZVByb3RvdHlwZS53aWRnZXRFdmVudFByZWZpeCA6IG5hbWUNCgl9LCBwcm94aWVkUHJvdG90eXBlLCB7DQoJCWNvbnN0cnVjdG9yOiBjb25zdHJ1Y3RvciwNCgkJbmFtZXNwYWNlOiBuYW1lc3BhY2UsDQoJCXdpZGdldE5hbWU6IG5hbWUsDQoJCXdpZGdldEZ1bGxOYW1lOiBmdWxsTmFtZQ0KCX0pOw0KDQoJLy8gSWYgdGhpcyB3aWRnZXQgaXMgYmVpbmcgcmVkZWZpbmVkIHRoZW4gd2UgbmVlZCB0byBmaW5kIGFsbCB3aWRnZXRzIHRoYXQNCgkvLyBhcmUgaW5oZXJpdGluZyBmcm9tIGl0IGFuZCByZWRlZmluZSBhbGwgb2YgdGhlbSBzbyB0aGF0IHRoZXkgaW5oZXJpdCBmcm9tDQoJLy8gdGhlIG5ldyB2ZXJzaW9uIG9mIHRoaXMgd2lkZ2V0LiBXZSdyZSBlc3NlbnRpYWxseSB0cnlpbmcgdG8gcmVwbGFjZSBvbmUNCgkvLyBsZXZlbCBpbiB0aGUgcHJvdG90eXBlIGNoYWluLg0KCWlmICggZXhpc3RpbmdDb25zdHJ1Y3RvciApIHsNCgkJJC5lYWNoKCBleGlzdGluZ0NvbnN0cnVjdG9yLl9jaGlsZENvbnN0cnVjdG9ycywgZnVuY3Rpb24oIGksIGNoaWxkICkgew0KCQkJdmFyIGNoaWxkUHJvdG90eXBlID0gY2hpbGQucHJvdG90eXBlOw0KDQoJCQkvLyByZWRlZmluZSB0aGUgY2hpbGQgd2lkZ2V0IHVzaW5nIHRoZSBzYW1lIHByb3RvdHlwZSB0aGF0IHdhcw0KCQkJLy8gb3JpZ2luYWxseSB1c2VkLCBidXQgaW5oZXJpdCBmcm9tIHRoZSBuZXcgdmVyc2lvbiBvZiB0aGUgYmFzZQ0KCQkJJC53aWRnZXQoIGNoaWxkUHJvdG90eXBlLm5hbWVzcGFjZSArICIuIiArIGNoaWxkUHJvdG90eXBlLndpZGdldE5hbWUsIGNvbnN0cnVjdG9yLCBjaGlsZC5fcHJvdG8gKTsNCgkJfSk7DQoJCS8vIHJlbW92ZSB0aGUgbGlzdCBvZiBleGlzdGluZyBjaGlsZCBjb25zdHJ1Y3RvcnMgZnJvbSB0aGUgb2xkIGNvbnN0cnVjdG9yDQoJCS8vIHNvIHRoZSBvbGQgY2hpbGQgY29uc3RydWN0b3JzIGNhbiBiZSBnYXJiYWdlIGNvbGxlY3RlZA0KCQlkZWxldGUgZXhpc3RpbmdDb25zdHJ1Y3Rvci5fY2hpbGRDb25zdHJ1Y3RvcnM7DQoJfSBlbHNlIHsNCgkJYmFzZS5fY2hpbGRDb25zdHJ1Y3RvcnMucHVzaCggY29uc3RydWN0b3IgKTsNCgl9DQoNCgkkLndpZGdldC5icmlkZ2UoIG5hbWUsIGNvbnN0cnVjdG9yICk7DQp9Ow0KDQokLndpZGdldC5leHRlbmQgPSBmdW5jdGlvbiggdGFyZ2V0ICkgew0KCXZhciBpbnB1dCA9IHNsaWNlLmNhbGwoIGFyZ3VtZW50cywgMSApLA0KCQlpbnB1dEluZGV4ID0gMCwNCgkJaW5wdXRMZW5ndGggPSBpbnB1dC5sZW5ndGgsDQoJCWtleSwNCgkJdmFsdWU7DQoJZm9yICggOyBpbnB1dEluZGV4IDwgaW5wdXRMZW5ndGg7IGlucHV0SW5kZXgrKyApIHsNCgkJZm9yICgga2V5IGluIGlucHV0WyBpbnB1dEluZGV4IF0gKSB7DQoJCQl2YWx1ZSA9IGlucHV0WyBpbnB1dEluZGV4IF1bIGtleSBdOw0KCQkJaWYgKCBpbnB1dFsgaW5wdXRJbmRleCBdLmhhc093blByb3BlcnR5KCBrZXkgKSAmJiB2YWx1ZSAhPT0gdW5kZWZpbmVkICkgew0KCQkJCS8vIENsb25lIG9iamVjdHMNCgkJCQlpZiAoICQuaXNQbGFpbk9iamVjdCggdmFsdWUgKSApIHsNCgkJCQkJdGFyZ2V0WyBrZXkgXSA9ICQuaXNQbGFpbk9iamVjdCggdGFyZ2V0WyBrZXkgXSApID8NCgkJCQkJCSQud2lkZ2V0LmV4dGVuZCgge30sIHRhcmdldFsga2V5IF0sIHZhbHVlICkgOg0KCQkJCQkJLy8gRG9uJ3QgZXh0ZW5kIHN0cmluZ3MsIGFycmF5cywgZXRjLiB3aXRoIG9iamVjdHMNCgkJCQkJCSQud2lkZ2V0LmV4dGVuZCgge30sIHZhbHVlICk7DQoJCQkJLy8gQ29weSBldmVyeXRoaW5nIGVsc2UgYnkgcmVmZXJlbmNlDQoJCQkJfSBlbHNlIHsNCgkJCQkJdGFyZ2V0WyBrZXkgXSA9IHZhbHVlOw0KCQkJCX0NCgkJCX0NCgkJfQ0KCX0NCglyZXR1cm4gdGFyZ2V0Ow0KfTsNCg0KJC53aWRnZXQuYnJpZGdlID0gZnVuY3Rpb24oIG5hbWUsIG9iamVjdCApIHsNCgl2YXIgZnVsbE5hbWUgPSBvYmplY3QucHJvdG90eXBlLndpZGdldEZ1bGxOYW1lIHx8IG5hbWU7DQoJJC5mblsgbmFtZSBdID0gZnVuY3Rpb24oIG9wdGlvbnMgKSB7DQoJCXZhciBpc01ldGhvZENhbGwgPSB0eXBlb2Ygb3B0aW9ucyA9PT0gInN0cmluZyIsDQoJCQlhcmdzID0gc2xpY2UuY2FsbCggYXJndW1lbnRzLCAxICksDQoJCQlyZXR1cm5WYWx1ZSA9IHRoaXM7DQoNCgkJLy8gYWxsb3cgbXVsdGlwbGUgaGFzaGVzIHRvIGJlIHBhc3NlZCBvbiBpbml0DQoJCW9wdGlvbnMgPSAhaXNNZXRob2RDYWxsICYmIGFyZ3MubGVuZ3RoID8NCgkJCSQud2lkZ2V0LmV4dGVuZC5hcHBseSggbnVsbCwgWyBvcHRpb25zIF0uY29uY2F0KGFyZ3MpICkgOg0KCQkJb3B0aW9uczsNCg0KCQlpZiAoIGlzTWV0aG9kQ2FsbCApIHsNCgkJCXRoaXMuZWFjaChmdW5jdGlvbigpIHsNCgkJCQl2YXIgbWV0aG9kVmFsdWUsDQoJCQkJCWluc3RhbmNlID0gJC5kYXRhKCB0aGlzLCBmdWxsTmFtZSApOw0KCQkJCWlmICggIWluc3RhbmNlICkgew0KCQkJCQlyZXR1cm4gJC5lcnJvciggImNhbm5vdCBjYWxsIG1ldGhvZHMgb24gIiArIG5hbWUgKyAiIHByaW9yIHRvIGluaXRpYWxpemF0aW9uOyAiICsNCgkJCQkJCSJhdHRlbXB0ZWQgdG8gY2FsbCBtZXRob2QgJyIgKyBvcHRpb25zICsgIiciICk7DQoJCQkJfQ0KCQkJCWlmICggISQuaXNGdW5jdGlvbiggaW5zdGFuY2Vbb3B0aW9uc10gKSB8fCBvcHRpb25zLmNoYXJBdCggMCApID09PSAiXyIgKSB7DQoJCQkJCXJldHVybiAkLmVycm9yKCAibm8gc3VjaCBtZXRob2QgJyIgKyBvcHRpb25zICsgIicgZm9yICIgKyBuYW1lICsgIiB3aWRnZXQgaW5zdGFuY2UiICk7DQoJCQkJfQ0KCQkJCW1ldGhvZFZhbHVlID0gaW5zdGFuY2VbIG9wdGlvbnMgXS5hcHBseSggaW5zdGFuY2UsIGFyZ3MgKTsNCgkJCQlpZiAoIG1ldGhvZFZhbHVlICE9PSBpbnN0YW5jZSAmJiBtZXRob2RWYWx1ZSAhPT0gdW5kZWZpbmVkICkgew0KCQkJCQlyZXR1cm5WYWx1ZSA9IG1ldGhvZFZhbHVlICYmIG1ldGhvZFZhbHVlLmpxdWVyeSA/DQoJCQkJCQlyZXR1cm5WYWx1ZS5wdXNoU3RhY2soIG1ldGhvZFZhbHVlLmdldCgpICkgOg0KCQkJCQkJbWV0aG9kVmFsdWU7DQoJCQkJCXJldHVybiBmYWxzZTsNCgkJCQl9DQoJCQl9KTsNCgkJfSBlbHNlIHsNCgkJCXRoaXMuZWFjaChmdW5jdGlvbigpIHsNCgkJCQl2YXIgaW5zdGFuY2UgPSAkLmRhdGEoIHRoaXMsIGZ1bGxOYW1lICk7DQoJCQkJaWYgKCBpbnN0YW5jZSApIHsNCgkJCQkJaW5zdGFuY2Uub3B0aW9uKCBvcHRpb25zIHx8IHt9ICkuX2luaXQoKTsNCgkJCQl9IGVsc2Ugew0KCQkJCQkkLmRhdGEoIHRoaXMsIGZ1bGxOYW1lLCBuZXcgb2JqZWN0KCBvcHRpb25zLCB0aGlzICkgKTsNCgkJCQl9DQoJCQl9KTsNCgkJfQ0KDQoJCXJldHVybiByZXR1cm5WYWx1ZTsNCgl9Ow0KfTsNCg0KJC5XaWRnZXQgPSBmdW5jdGlvbiggLyogb3B0aW9ucywgZWxlbWVudCAqLyApIHt9Ow0KJC5XaWRnZXQuX2NoaWxkQ29uc3RydWN0b3JzID0gW107DQoNCiQuV2lkZ2V0LnByb3RvdHlwZSA9IHsNCgl3aWRnZXROYW1lOiAid2lkZ2V0IiwNCgl3aWRnZXRFdmVudFByZWZpeDogIiIsDQoJZGVmYXVsdEVsZW1lbnQ6ICI8ZGl2PiIsDQoJb3B0aW9uczogew0KCQlkaXNhYmxlZDogZmFsc2UsDQoNCgkJLy8gY2FsbGJhY2tzDQoJCWNyZWF0ZTogbnVsbA0KCX0sDQoJX2NyZWF0ZVdpZGdldDogZnVuY3Rpb24oIG9wdGlvbnMsIGVsZW1lbnQgKSB7DQoJCWVsZW1lbnQgPSAkKCBlbGVtZW50IHx8IHRoaXMuZGVmYXVsdEVsZW1lbnQgfHwgdGhpcyApWyAwIF07DQoJCXRoaXMuZWxlbWVudCA9ICQoIGVsZW1lbnQgKTsNCgkJdGhpcy51dWlkID0gdXVpZCsrOw0KCQl0aGlzLmV2ZW50TmFtZXNwYWNlID0gIi4iICsgdGhpcy53aWRnZXROYW1lICsgdGhpcy51dWlkOw0KCQl0aGlzLm9wdGlvbnMgPSAkLndpZGdldC5leHRlbmQoIHt9LA0KCQkJdGhpcy5vcHRpb25zLA0KCQkJdGhpcy5fZ2V0Q3JlYXRlT3B0aW9ucygpLA0KCQkJb3B0aW9ucyApOw0KDQoJCXRoaXMuYmluZGluZ3MgPSAkKCk7DQoJCXRoaXMuaG92ZXJhYmxlID0gJCgpOw0KCQl0aGlzLmZvY3VzYWJsZSA9ICQoKTsNCg0KCQlpZiAoIGVsZW1lbnQgIT09IHRoaXMgKSB7DQoJCQkkLmRhdGEoIGVsZW1lbnQsIHRoaXMud2lkZ2V0RnVsbE5hbWUsIHRoaXMgKTsNCgkJCXRoaXMuX29uKCB0cnVlLCB0aGlzLmVsZW1lbnQsIHsNCgkJCQlyZW1vdmU6IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJCQkJaWYgKCBldmVudC50YXJnZXQgPT09IGVsZW1lbnQgKSB7DQoJCQkJCQl0aGlzLmRlc3Ryb3koKTsNCgkJCQkJfQ0KCQkJCX0NCgkJCX0pOw0KCQkJdGhpcy5kb2N1bWVudCA9ICQoIGVsZW1lbnQuc3R5bGUgPw0KCQkJCS8vIGVsZW1lbnQgd2l0aGluIHRoZSBkb2N1bWVudA0KCQkJCWVsZW1lbnQub3duZXJEb2N1bWVudCA6DQoJCQkJLy8gZWxlbWVudCBpcyB3aW5kb3cgb3IgZG9jdW1lbnQNCgkJCQllbGVtZW50LmRvY3VtZW50IHx8IGVsZW1lbnQgKTsNCgkJCXRoaXMud2luZG93ID0gJCggdGhpcy5kb2N1bWVudFswXS5kZWZhdWx0VmlldyB8fCB0aGlzLmRvY3VtZW50WzBdLnBhcmVudFdpbmRvdyApOw0KCQl9DQoNCgkJdGhpcy5fY3JlYXRlKCk7DQoJCXRoaXMuX3RyaWdnZXIoICJjcmVhdGUiLCBudWxsLCB0aGlzLl9nZXRDcmVhdGVFdmVudERhdGEoKSApOw0KCQl0aGlzLl9pbml0KCk7DQoJfSwNCglfZ2V0Q3JlYXRlT3B0aW9uczogJC5ub29wLA0KCV9nZXRDcmVhdGVFdmVudERhdGE6ICQubm9vcCwNCglfY3JlYXRlOiAkLm5vb3AsDQoJX2luaXQ6ICQubm9vcCwNCg0KCWRlc3Ryb3k6IGZ1bmN0aW9uKCkgew0KCQl0aGlzLl9kZXN0cm95KCk7DQoJCS8vIHdlIGNhbiBwcm9iYWJseSByZW1vdmUgdGhlIHVuYmluZCBjYWxscyBpbiAyLjANCgkJLy8gYWxsIGV2ZW50IGJpbmRpbmdzIHNob3VsZCBnbyB0aHJvdWdoIHRoaXMuX29uKCkNCgkJdGhpcy5lbGVtZW50DQoJCQkudW5iaW5kKCB0aGlzLmV2ZW50TmFtZXNwYWNlICkNCgkJCS8vIDEuOSBCQyBmb3IgIzc4MTANCgkJCS8vIFRPRE8gcmVtb3ZlIGR1YWwgc3RvcmFnZQ0KCQkJLnJlbW92ZURhdGEoIHRoaXMud2lkZ2V0TmFtZSApDQoJCQkucmVtb3ZlRGF0YSggdGhpcy53aWRnZXRGdWxsTmFtZSApDQoJCQkvLyBzdXBwb3J0OiBqcXVlcnkgPDEuNi4zDQoJCQkvLyBodHRwOi8vYnVncy5qcXVlcnkuY29tL3RpY2tldC85NDEzDQoJCQkucmVtb3ZlRGF0YSggJC5jYW1lbENhc2UoIHRoaXMud2lkZ2V0RnVsbE5hbWUgKSApOw0KCQl0aGlzLndpZGdldCgpDQoJCQkudW5iaW5kKCB0aGlzLmV2ZW50TmFtZXNwYWNlICkNCgkJCS5yZW1vdmVBdHRyKCAiYXJpYS1kaXNhYmxlZCIgKQ0KCQkJLnJlbW92ZUNsYXNzKA0KCQkJCXRoaXMud2lkZ2V0RnVsbE5hbWUgKyAiLWRpc2FibGVkICIgKw0KCQkJCSJ1aS1zdGF0ZS1kaXNhYmxlZCIgKTsNCg0KCQkvLyBjbGVhbiB1cCBldmVudHMgYW5kIHN0YXRlcw0KCQl0aGlzLmJpbmRpbmdzLnVuYmluZCggdGhpcy5ldmVudE5hbWVzcGFjZSApOw0KCQl0aGlzLmhvdmVyYWJsZS5yZW1vdmVDbGFzcyggInVpLXN0YXRlLWhvdmVyIiApOw0KCQl0aGlzLmZvY3VzYWJsZS5yZW1vdmVDbGFzcyggInVpLXN0YXRlLWZvY3VzIiApOw0KCX0sDQoJX2Rlc3Ryb3k6ICQubm9vcCwNCg0KCXdpZGdldDogZnVuY3Rpb24oKSB7DQoJCXJldHVybiB0aGlzLmVsZW1lbnQ7DQoJfSwNCg0KCW9wdGlvbjogZnVuY3Rpb24oIGtleSwgdmFsdWUgKSB7DQoJCXZhciBvcHRpb25zID0ga2V5LA0KCQkJcGFydHMsDQoJCQljdXJPcHRpb24sDQoJCQlpOw0KDQoJCWlmICggYXJndW1lbnRzLmxlbmd0aCA9PT0gMCApIHsNCgkJCS8vIGRvbid0IHJldHVybiBhIHJlZmVyZW5jZSB0byB0aGUgaW50ZXJuYWwgaGFzaA0KCQkJcmV0dXJuICQud2lkZ2V0LmV4dGVuZCgge30sIHRoaXMub3B0aW9ucyApOw0KCQl9DQoNCgkJaWYgKCB0eXBlb2Yga2V5ID09PSAic3RyaW5nIiApIHsNCgkJCS8vIGhhbmRsZSBuZXN0ZWQga2V5cywgZS5nLiwgImZvby5iYXIiID0+IHsgZm9vOiB7IGJhcjogX19fIH0gfQ0KCQkJb3B0aW9ucyA9IHt9Ow0KCQkJcGFydHMgPSBrZXkuc3BsaXQoICIuIiApOw0KCQkJa2V5ID0gcGFydHMuc2hpZnQoKTsNCgkJCWlmICggcGFydHMubGVuZ3RoICkgew0KCQkJCWN1ck9wdGlvbiA9IG9wdGlvbnNbIGtleSBdID0gJC53aWRnZXQuZXh0ZW5kKCB7fSwgdGhpcy5vcHRpb25zWyBrZXkgXSApOw0KCQkJCWZvciAoIGkgPSAwOyBpIDwgcGFydHMubGVuZ3RoIC0gMTsgaSsrICkgew0KCQkJCQljdXJPcHRpb25bIHBhcnRzWyBpIF0gXSA9IGN1ck9wdGlvblsgcGFydHNbIGkgXSBdIHx8IHt9Ow0KCQkJCQljdXJPcHRpb24gPSBjdXJPcHRpb25bIHBhcnRzWyBpIF0gXTsNCgkJCQl9DQoJCQkJa2V5ID0gcGFydHMucG9wKCk7DQoJCQkJaWYgKCB2YWx1ZSA9PT0gdW5kZWZpbmVkICkgew0KCQkJCQlyZXR1cm4gY3VyT3B0aW9uWyBrZXkgXSA9PT0gdW5kZWZpbmVkID8gbnVsbCA6IGN1ck9wdGlvblsga2V5IF07DQoJCQkJfQ0KCQkJCWN1ck9wdGlvblsga2V5IF0gPSB2YWx1ZTsNCgkJCX0gZWxzZSB7DQoJCQkJaWYgKCB2YWx1ZSA9PT0gdW5kZWZpbmVkICkgew0KCQkJCQlyZXR1cm4gdGhpcy5vcHRpb25zWyBrZXkgXSA9PT0gdW5kZWZpbmVkID8gbnVsbCA6IHRoaXMub3B0aW9uc1sga2V5IF07DQoJCQkJfQ0KCQkJCW9wdGlvbnNbIGtleSBdID0gdmFsdWU7DQoJCQl9DQoJCX0NCg0KCQl0aGlzLl9zZXRPcHRpb25zKCBvcHRpb25zICk7DQoNCgkJcmV0dXJuIHRoaXM7DQoJfSwNCglfc2V0T3B0aW9uczogZnVuY3Rpb24oIG9wdGlvbnMgKSB7DQoJCXZhciBrZXk7DQoNCgkJZm9yICgga2V5IGluIG9wdGlvbnMgKSB7DQoJCQl0aGlzLl9zZXRPcHRpb24oIGtleSwgb3B0aW9uc1sga2V5IF0gKTsNCgkJfQ0KDQoJCXJldHVybiB0aGlzOw0KCX0sDQoJX3NldE9wdGlvbjogZnVuY3Rpb24oIGtleSwgdmFsdWUgKSB7DQoJCXRoaXMub3B0aW9uc1sga2V5IF0gPSB2YWx1ZTsNCg0KCQlpZiAoIGtleSA9PT0gImRpc2FibGVkIiApIHsNCgkJCXRoaXMud2lkZ2V0KCkNCgkJCQkudG9nZ2xlQ2xhc3MoIHRoaXMud2lkZ2V0RnVsbE5hbWUgKyAiLWRpc2FibGVkIHVpLXN0YXRlLWRpc2FibGVkIiwgISF2YWx1ZSApDQoJCQkJLmF0dHIoICJhcmlhLWRpc2FibGVkIiwgdmFsdWUgKTsNCgkJCXRoaXMuaG92ZXJhYmxlLnJlbW92ZUNsYXNzKCAidWktc3RhdGUtaG92ZXIiICk7DQoJCQl0aGlzLmZvY3VzYWJsZS5yZW1vdmVDbGFzcyggInVpLXN0YXRlLWZvY3VzIiApOw0KCQl9DQoNCgkJcmV0dXJuIHRoaXM7DQoJfSwNCg0KCWVuYWJsZTogZnVuY3Rpb24oKSB7DQoJCXJldHVybiB0aGlzLl9zZXRPcHRpb24oICJkaXNhYmxlZCIsIGZhbHNlICk7DQoJfSwNCglkaXNhYmxlOiBmdW5jdGlvbigpIHsNCgkJcmV0dXJuIHRoaXMuX3NldE9wdGlvbiggImRpc2FibGVkIiwgdHJ1ZSApOw0KCX0sDQoNCglfb246IGZ1bmN0aW9uKCBzdXBwcmVzc0Rpc2FibGVkQ2hlY2ssIGVsZW1lbnQsIGhhbmRsZXJzICkgew0KCQl2YXIgZGVsZWdhdGVFbGVtZW50LA0KCQkJaW5zdGFuY2UgPSB0aGlzOw0KDQoJCS8vIG5vIHN1cHByZXNzRGlzYWJsZWRDaGVjayBmbGFnLCBzaHVmZmxlIGFyZ3VtZW50cw0KCQlpZiAoIHR5cGVvZiBzdXBwcmVzc0Rpc2FibGVkQ2hlY2sgIT09ICJib29sZWFuIiApIHsNCgkJCWhhbmRsZXJzID0gZWxlbWVudDsNCgkJCWVsZW1lbnQgPSBzdXBwcmVzc0Rpc2FibGVkQ2hlY2s7DQoJCQlzdXBwcmVzc0Rpc2FibGVkQ2hlY2sgPSBmYWxzZTsNCgkJfQ0KDQoJCS8vIG5vIGVsZW1lbnQgYXJndW1lbnQsIHNodWZmbGUgYW5kIHVzZSB0aGlzLmVsZW1lbnQNCgkJaWYgKCAhaGFuZGxlcnMgKSB7DQoJCQloYW5kbGVycyA9IGVsZW1lbnQ7DQoJCQllbGVtZW50ID0gdGhpcy5lbGVtZW50Ow0KCQkJZGVsZWdhdGVFbGVtZW50ID0gdGhpcy53aWRnZXQoKTsNCgkJfSBlbHNlIHsNCgkJCS8vIGFjY2VwdCBzZWxlY3RvcnMsIERPTSBlbGVtZW50cw0KCQkJZWxlbWVudCA9IGRlbGVnYXRlRWxlbWVudCA9ICQoIGVsZW1lbnQgKTsNCgkJCXRoaXMuYmluZGluZ3MgPSB0aGlzLmJpbmRpbmdzLmFkZCggZWxlbWVudCApOw0KCQl9DQoNCgkJJC5lYWNoKCBoYW5kbGVycywgZnVuY3Rpb24oIGV2ZW50LCBoYW5kbGVyICkgew0KCQkJZnVuY3Rpb24gaGFuZGxlclByb3h5KCkgew0KCQkJCS8vIGFsbG93IHdpZGdldHMgdG8gY3VzdG9taXplIHRoZSBkaXNhYmxlZCBoYW5kbGluZw0KCQkJCS8vIC0gZGlzYWJsZWQgYXMgYW4gYXJyYXkgaW5zdGVhZCBvZiBib29sZWFuDQoJCQkJLy8gLSBkaXNhYmxlZCBjbGFzcyBhcyBtZXRob2QgZm9yIGRpc2FibGluZyBpbmRpdmlkdWFsIHBhcnRzDQoJCQkJaWYgKCAhc3VwcHJlc3NEaXNhYmxlZENoZWNrICYmDQoJCQkJCQkoIGluc3RhbmNlLm9wdGlvbnMuZGlzYWJsZWQgPT09IHRydWUgfHwNCgkJCQkJCQkkKCB0aGlzICkuaGFzQ2xhc3MoICJ1aS1zdGF0ZS1kaXNhYmxlZCIgKSApICkgew0KCQkJCQlyZXR1cm47DQoJCQkJfQ0KCQkJCXJldHVybiAoIHR5cGVvZiBoYW5kbGVyID09PSAic3RyaW5nIiA/IGluc3RhbmNlWyBoYW5kbGVyIF0gOiBoYW5kbGVyICkNCgkJCQkJLmFwcGx5KCBpbnN0YW5jZSwgYXJndW1lbnRzICk7DQoJCQl9DQoNCgkJCS8vIGNvcHkgdGhlIGd1aWQgc28gZGlyZWN0IHVuYmluZGluZyB3b3Jrcw0KCQkJaWYgKCB0eXBlb2YgaGFuZGxlciAhPT0gInN0cmluZyIgKSB7DQoJCQkJaGFuZGxlclByb3h5Lmd1aWQgPSBoYW5kbGVyLmd1aWQgPQ0KCQkJCQloYW5kbGVyLmd1aWQgfHwgaGFuZGxlclByb3h5Lmd1aWQgfHwgJC5ndWlkKys7DQoJCQl9DQoNCgkJCXZhciBtYXRjaCA9IGV2ZW50Lm1hdGNoKCAvXihcdyspXHMqKC4qKSQvICksDQoJCQkJZXZlbnROYW1lID0gbWF0Y2hbMV0gKyBpbnN0YW5jZS5ldmVudE5hbWVzcGFjZSwNCgkJCQlzZWxlY3RvciA9IG1hdGNoWzJdOw0KCQkJaWYgKCBzZWxlY3RvciApIHsNCgkJCQlkZWxlZ2F0ZUVsZW1lbnQuZGVsZWdhdGUoIHNlbGVjdG9yLCBldmVudE5hbWUsIGhhbmRsZXJQcm94eSApOw0KCQkJfSBlbHNlIHsNCgkJCQllbGVtZW50LmJpbmQoIGV2ZW50TmFtZSwgaGFuZGxlclByb3h5ICk7DQoJCQl9DQoJCX0pOw0KCX0sDQoNCglfb2ZmOiBmdW5jdGlvbiggZWxlbWVudCwgZXZlbnROYW1lICkgew0KCQlldmVudE5hbWUgPSAoZXZlbnROYW1lIHx8ICIiKS5zcGxpdCggIiAiICkuam9pbiggdGhpcy5ldmVudE5hbWVzcGFjZSArICIgIiApICsgdGhpcy5ldmVudE5hbWVzcGFjZTsNCgkJZWxlbWVudC51bmJpbmQoIGV2ZW50TmFtZSApLnVuZGVsZWdhdGUoIGV2ZW50TmFtZSApOw0KCX0sDQoNCglfZGVsYXk6IGZ1bmN0aW9uKCBoYW5kbGVyLCBkZWxheSApIHsNCgkJZnVuY3Rpb24gaGFuZGxlclByb3h5KCkgew0KCQkJcmV0dXJuICggdHlwZW9mIGhhbmRsZXIgPT09ICJzdHJpbmciID8gaW5zdGFuY2VbIGhhbmRsZXIgXSA6IGhhbmRsZXIgKQ0KCQkJCS5hcHBseSggaW5zdGFuY2UsIGFyZ3VtZW50cyApOw0KCQl9DQoJCXZhciBpbnN0YW5jZSA9IHRoaXM7DQoJCXJldHVybiBzZXRUaW1lb3V0KCBoYW5kbGVyUHJveHksIGRlbGF5IHx8IDAgKTsNCgl9LA0KDQoJX2hvdmVyYWJsZTogZnVuY3Rpb24oIGVsZW1lbnQgKSB7DQoJCXRoaXMuaG92ZXJhYmxlID0gdGhpcy5ob3ZlcmFibGUuYWRkKCBlbGVtZW50ICk7DQoJCXRoaXMuX29uKCBlbGVtZW50LCB7DQoJCQltb3VzZWVudGVyOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCQkJJCggZXZlbnQuY3VycmVudFRhcmdldCApLmFkZENsYXNzKCAidWktc3RhdGUtaG92ZXIiICk7DQoJCQl9LA0KCQkJbW91c2VsZWF2ZTogZnVuY3Rpb24oIGV2ZW50ICkgew0KCQkJCSQoIGV2ZW50LmN1cnJlbnRUYXJnZXQgKS5yZW1vdmVDbGFzcyggInVpLXN0YXRlLWhvdmVyIiApOw0KCQkJfQ0KCQl9KTsNCgl9LA0KDQoJX2ZvY3VzYWJsZTogZnVuY3Rpb24oIGVsZW1lbnQgKSB7DQoJCXRoaXMuZm9jdXNhYmxlID0gdGhpcy5mb2N1c2FibGUuYWRkKCBlbGVtZW50ICk7DQoJCXRoaXMuX29uKCBlbGVtZW50LCB7DQoJCQlmb2N1c2luOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCQkJJCggZXZlbnQuY3VycmVudFRhcmdldCApLmFkZENsYXNzKCAidWktc3RhdGUtZm9jdXMiICk7DQoJCQl9LA0KCQkJZm9jdXNvdXQ6IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJCQkkKCBldmVudC5jdXJyZW50VGFyZ2V0ICkucmVtb3ZlQ2xhc3MoICJ1aS1zdGF0ZS1mb2N1cyIgKTsNCgkJCX0NCgkJfSk7DQoJfSwNCg0KCV90cmlnZ2VyOiBmdW5jdGlvbiggdHlwZSwgZXZlbnQsIGRhdGEgKSB7DQoJCXZhciBwcm9wLCBvcmlnLA0KCQkJY2FsbGJhY2sgPSB0aGlzLm9wdGlvbnNbIHR5cGUgXTsNCg0KCQlkYXRhID0gZGF0YSB8fCB7fTsNCgkJZXZlbnQgPSAkLkV2ZW50KCBldmVudCApOw0KCQlldmVudC50eXBlID0gKCB0eXBlID09PSB0aGlzLndpZGdldEV2ZW50UHJlZml4ID8NCgkJCXR5cGUgOg0KCQkJdGhpcy53aWRnZXRFdmVudFByZWZpeCArIHR5cGUgKS50b0xvd2VyQ2FzZSgpOw0KCQkvLyB0aGUgb3JpZ2luYWwgZXZlbnQgbWF5IGNvbWUgZnJvbSBhbnkgZWxlbWVudA0KCQkvLyBzbyB3ZSBuZWVkIHRvIHJlc2V0IHRoZSB0YXJnZXQgb24gdGhlIG5ldyBldmVudA0KCQlldmVudC50YXJnZXQgPSB0aGlzLmVsZW1lbnRbIDAgXTsNCg0KCQkvLyBjb3B5IG9yaWdpbmFsIGV2ZW50IHByb3BlcnRpZXMgb3ZlciB0byB0aGUgbmV3IGV2ZW50DQoJCW9yaWcgPSBldmVudC5vcmlnaW5hbEV2ZW50Ow0KCQlpZiAoIG9yaWcgKSB7DQoJCQlmb3IgKCBwcm9wIGluIG9yaWcgKSB7DQoJCQkJaWYgKCAhKCBwcm9wIGluIGV2ZW50ICkgKSB7DQoJCQkJCWV2ZW50WyBwcm9wIF0gPSBvcmlnWyBwcm9wIF07DQoJCQkJfQ0KCQkJfQ0KCQl9DQoNCgkJdGhpcy5lbGVtZW50LnRyaWdnZXIoIGV2ZW50LCBkYXRhICk7DQoJCXJldHVybiAhKCAkLmlzRnVuY3Rpb24oIGNhbGxiYWNrICkgJiYNCgkJCWNhbGxiYWNrLmFwcGx5KCB0aGlzLmVsZW1lbnRbMF0sIFsgZXZlbnQgXS5jb25jYXQoIGRhdGEgKSApID09PSBmYWxzZSB8fA0KCQkJZXZlbnQuaXNEZWZhdWx0UHJldmVudGVkKCkgKTsNCgl9DQp9Ow0KDQokLmVhY2goIHsgc2hvdzogImZhZGVJbiIsIGhpZGU6ICJmYWRlT3V0IiB9LCBmdW5jdGlvbiggbWV0aG9kLCBkZWZhdWx0RWZmZWN0ICkgew0KCSQuV2lkZ2V0LnByb3RvdHlwZVsgIl8iICsgbWV0aG9kIF0gPSBmdW5jdGlvbiggZWxlbWVudCwgb3B0aW9ucywgY2FsbGJhY2sgKSB7DQoJCWlmICggdHlwZW9mIG9wdGlvbnMgPT09ICJzdHJpbmciICkgew0KCQkJb3B0aW9ucyA9IHsgZWZmZWN0OiBvcHRpb25zIH07DQoJCX0NCgkJdmFyIGhhc09wdGlvbnMsDQoJCQllZmZlY3ROYW1lID0gIW9wdGlvbnMgPw0KCQkJCW1ldGhvZCA6DQoJCQkJb3B0aW9ucyA9PT0gdHJ1ZSB8fCB0eXBlb2Ygb3B0aW9ucyA9PT0gIm51bWJlciIgPw0KCQkJCQlkZWZhdWx0RWZmZWN0IDoNCgkJCQkJb3B0aW9ucy5lZmZlY3QgfHwgZGVmYXVsdEVmZmVjdDsNCgkJb3B0aW9ucyA9IG9wdGlvbnMgfHwge307DQoJCWlmICggdHlwZW9mIG9wdGlvbnMgPT09ICJudW1iZXIiICkgew0KCQkJb3B0aW9ucyA9IHsgZHVyYXRpb246IG9wdGlvbnMgfTsNCgkJfQ0KCQloYXNPcHRpb25zID0gISQuaXNFbXB0eU9iamVjdCggb3B0aW9ucyApOw0KCQlvcHRpb25zLmNvbXBsZXRlID0gY2FsbGJhY2s7DQoJCWlmICggb3B0aW9ucy5kZWxheSApIHsNCgkJCWVsZW1lbnQuZGVsYXkoIG9wdGlvbnMuZGVsYXkgKTsNCgkJfQ0KCQlpZiAoIGhhc09wdGlvbnMgJiYgJC5lZmZlY3RzICYmICQuZWZmZWN0cy5lZmZlY3RbIGVmZmVjdE5hbWUgXSApIHsNCgkJCWVsZW1lbnRbIG1ldGhvZCBdKCBvcHRpb25zICk7DQoJCX0gZWxzZSBpZiAoIGVmZmVjdE5hbWUgIT09IG1ldGhvZCAmJiBlbGVtZW50WyBlZmZlY3ROYW1lIF0gKSB7DQoJCQllbGVtZW50WyBlZmZlY3ROYW1lIF0oIG9wdGlvbnMuZHVyYXRpb24sIG9wdGlvbnMuZWFzaW5nLCBjYWxsYmFjayApOw0KCQl9IGVsc2Ugew0KCQkJZWxlbWVudC5xdWV1ZShmdW5jdGlvbiggbmV4dCApIHsNCgkJCQkkKCB0aGlzIClbIG1ldGhvZCBdKCk7DQoJCQkJaWYgKCBjYWxsYmFjayApIHsNCgkJCQkJY2FsbGJhY2suY2FsbCggZWxlbWVudFsgMCBdICk7DQoJCQkJfQ0KCQkJCW5leHQoKTsNCgkJCX0pOw0KCQl9DQoJfTsNCn0pOw0KDQp9KSk7DQo=]]></data>
	</file>
	<file>
		<filename>/js/jrac</filename>
		<isdir>1</isdir>
	</file>
	<file>
		<filename>/js/jrac/images</filename>
		<isdir>1</isdir>
	</file>
	<file>
		<filename>/js/jrac/images/index.html</filename>
		<isdir>0</isdir>
		<data><![CDATA[PCEtLSBEVU1NWSBIVE1MIEZJTEUgLS0+]]></data>
	</file>
	<file>
		<filename>/js/jrac/images/loading.gif</filename>
		<isdir>0</isdir>
		<data><![CDATA[R0lGODlh3AATAPQAAP///wAAAL6+vqamppycnLi4uLKyssjIyNjY2MTExNTU1Nzc3ODg4OTk5LCwsLy8vOjo6Ozs7MrKyvLy8vT09M7Ozvb29sbGxtDQ0O7u7tbW1sLCwqqqqvj4+KCgoJaWliH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCgAAACwAAAAA3AATAAAF/yAgjmRpnmiqrmzrvnAsz3Rt33iu73zv/8CgcEgECAaEpHLJbDqf0Kh0Sq1ar9isdjoQtAQFg8PwKIMHnLF63N2438f0mv1I2O8buXjvaOPtaHx7fn96goR4hmuId4qDdX95c4+RG4GCBoyAjpmQhZN0YGYFXitdZBIVGAoKoq4CG6Qaswi1CBtkcG6ytrYJubq8vbfAcMK9v7q7D8O1ycrHvsW6zcTKsczNz8HZw9vG3cjTsMIYqQgDLAQGCQoLDA0QCwUHqfYSFw/xEPz88/X38Onr14+Bp4ADCco7eC8hQYMAEe57yNCew4IVBU7EGNDiRn8Z831cGLHhSIgdE/9chIeBgDoB7gjaWUWTlYAFE3LqzDCTlc9WOHfm7PkTqNCh54rePDqB6M+lR536hCpUqs2gVZM+xbrTqtGoWqdy1emValeXKwgcWABB5y1acFNZmEvXwoJ2cGfJrTv3bl69Ffj2xZt3L1+/fw3XRVw4sGDGcR0fJhxZsF3KtBTThZxZ8mLMgC3fRatCLYMIFCzwLEprg84OsDus/tvqdezZf13Hvr2B9Szdu2X3pg18N+68xXn7rh1c+PLksI/Dhe6cuO3ow3NfV92bdArTqC2Ebc3A8vjf5QWf15Bg7Nz17c2fj69+fnq+8N2Lty+fuP78/eV2X13neIcCeBRwxorbZrAxAJoCDHbgoG8RTshahQ9iSKEEzUmYIYfNWViUhheCGJyIP5E4oom7WWjgCeBBAJNv1DVV01MZdJhhjdkplWNzO/5oXI846njjVEIqR2OS2B1pE5PVscajkxhMycqLJgxQCwT40PjfAV4GqNSXYdZXJn5gSkmmmmJu1aZYb14V51do+pTOCmA00AqVB4hG5IJ9PvYnhIFOxmdqhpaI6GeHCtpooisuutmg+Eg62KOMKuqoTaXgicQWoIYq6qiklmoqFV0UoeqqrLbq6quwxirrrLTWauutJ4QAACH5BAkKAAAALAAAAADcABMAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSAQIBoSkcslsOp/QqHRKrVqv2Kx2OhC0BAXHx/EoCzboAcdhcLDdgwJ6nua03YZ8PMFPoBMca215eg98G36IgYNvDgOGh4lqjHd7fXOTjYV9nItvhJaIfYF4jXuIf4CCbHmOBZySdoOtj5eja59wBmYFXitdHhwSFRgKxhobBgUPAmdoyxoI0tPJaM5+u9PaCQZzZ9gP2tPcdM7L4tLVznPn6OQb18nh6NV0fu3i5OvP8/nd1qjwaasHcIPAcf/gBSyAAMMwBANYEAhWYQGDBhAyLihwYJiEjx8fYMxIcsGDAxVA/yYIOZIkBAaGPIK8INJlRpgrPeasaRPmx5QgJfB0abLjz50tSeIM+pFmUo0nQQIV+vRlTJUSnNq0KlXCSq09ozIFexEBAYkeNiwgOaEtn2LFpGEQsKCtXbcSjOmVlqDuhAx3+eg1Jo3u37sZBA9GoMAw4MB5FyMwfLht4sh7G/utPGHlYAV8Nz9OnOBz4c2VFWem/Pivar0aKCP2LFn2XwhnVxBwsPbuBAQbEGiIFg1BggoWkidva5z4cL7IlStfkED48OIYoiufYIH68+cKPkqfnsB58ePjmZd3Dj199/XE20tv6/27XO3S6z9nPCz9BP3FISDefL/Bt192/uWmAv8BFzAQAQUWWFaaBgqA11hbHWTIXWIVXifNhRlq6FqF1sm1QQYhdiAhbNEYc2KKK1pXnAIvhrjhBh0KxxiINlqQAY4UXjdcjSJyeAx2G2BYJJD7NZQkjCPKuCORKnbAIXsuKhlhBxEomAIBBzgIYXIfHfmhAAyMR2ZkHk62gJoWlNlhi33ZJZ2cQiKTJoG05Wjcm3xith9dcOK5X51tLRenoHTuud2iMnaolp3KGXrdBo7eKYF5p/mXgJcogClmcgzAR5gCKymXYqlCgmacdhp2UCqL96mq4nuDBTmgBasaCFp4sHaQHHUsGvNRiiGyep1exyIra2mS7dprrtA5++z/Z8ZKYGuGsy6GqgTIDvupRGE+6CO0x3xI5Y2mOTkBjD4ySeGU79o44mcaSEClhglgsKyJ9S5ZTGY0Bnzrj+3SiKK9Rh5zjAALCywZBk/ayCWO3hYM5Y8Dn6qxxRFsgAGoJwwgDQRtYXAAragyQOmaLKNZKGaEuUlpyiub+ad/KtPqpntypvvnzR30DBtjMhNodK6Eqrl0zU0/GjTUgG43wdN6Ra2pAhGtAAZGE5Ta8TH6wknd2IytNKaiZ+Or79oR/tcvthIcAPe7DGAs9Edwk6r3qWoTaNzY2fb9HuHh2S343Hs1VIHhYtOt+Hh551rh24vP5YvXSGzh+eeghy76GuikU9FFEainrvrqrLfu+uuwxy777LTXfkIIACH5BAkKAAAALAAAAADcABMAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSAQIBoSkcslsOp/QqHRKrVqv2Kx2OhC0BAWHB2l4CDZo9IDjcBja7UEhTV+3DXi3PJFA8xMcbHiDBgMPG31pgHBvg4Z9iYiBjYx7kWocb26OD398mI2EhoiegJlud4UFiZ5sm6Kdn2mBr5t7pJ9rlG0cHg5gXitdaxwFGArIGgoaGwYCZ3QFDwjU1AoIzdCQzdPV1c0bZ9vS3tUJBmjQaGXl1OB0feze1+faiBvk8wjnimn55e/o4OtWjp+4NPIKogsXjaA3g/fiGZBQAcEAFgQGOChgYEEDCCBBLihwQILJkxIe/3wMKfJBSQkJYJpUyRIkgwcVUJq8QLPmTYoyY6ZcyfJmTp08iYZc8MBkhZgxk9aEcPOlzp5FmwI9KdWn1qASurJkClRoWKwhq6IUqpJBAwQEMBYroAHkhLt3+RyzhgCDgAV48Wbgg+waAnoLMgTOm6DwQ8CLBzdGdvjw38V5JTg2lzhyTMeUEwBWHPgzZc4TSOM1bZia6LuqJxCmnOxv7NSsl1mGHHiw5tOuIWeAEHcFATwJME/ApgFBc3MVLEgPvE+Ddb4JokufPmFBAuvPXWu3MIF89wTOmxvOvp179evQtwf2nr6aApPyzVd3jn089e/8xdfeXe/xdZ9/d1ngHf98lbHH3V0LMrgPgsWpcFwBEFBgHmyNXWeYAgLc1UF5sG2wTHjIhNjBiIKZCN81GGyQwYq9uajeMiBOQGOLJ1KjTI40kmfBYNfc2NcGIpI4pI0vyrhjiT1WFqOOLEIZnjVOVpmajYfBiCSNLGbA5YdOkjdihSkQwIEEEWg4nQUmvYhYe+bFKaFodN5lp3rKvJYfnBKAJ+gGDMi3mmbwWYfng7IheuWihu5p32XcSWdSj+stkF95dp64jJ+RBipocHkCCp6PCiRQ6INookCAAwy0yd2CtNET3Yo7RvihBjFZAOaKDHT43DL4BQnsZMo8xx6uI1oQrHXXhHZrB28G62n/YSYxi+uzP2IrgbbHbiaer7hCiOxDFWhrbmGnLVuus5NFexhFuHLX6gkEECorlLpZo0CWJG4pLjIACykmBsp0eSSVeC15TDJeUhlkowlL+SWLNJpW2WEF87urXzNWSZ6JOEb7b8g1brZMjCg3ezBtWKKc4MvyEtwybPeaMAA1ECRoAQYHYLpbeYYCLfQ+mtL5c9CnfQpYpUtHOSejEgT9ogZ/GSqd0f2m+LR5WzOtHqlQX1pYwpC+WbXKqSYtpJ5Mt4a01lGzS3akF60AxkcTaLgAyRBPWCoDgHfJqwRuBuzdw/1ml3iCwTIeLUWJN0v4McMe7uasCTxseNWPSxc5RbvIgD7geZLbGrqCG3jepUmbbze63Y6fvjiOylbwOITPfIHEFsAHL/zwxBdvPBVdFKH88sw37/zz0Ecv/fTUV2/99SeEAAAh+QQJCgAAACwAAAAA3AATAAAF/yAgjmRpnmiqrmzrvnAsz3Rt33iu73zv/8CgcEgECAaEpHLJbDqf0Kh0Sq1ar9isdjoQtAQFh2cw8BQEm3T6yHEYHHD4oKCuD9qGvNsxT6QTgAkcHHmFeX11fm17hXwPG35qgnhxbwMPkXaLhgZ9gWp3bpyegX4DcG+inY+Qn6eclpiZkHh6epetgLSUcBxlD2csXXdvBQrHGgoaGhsGaIkFDwjTCArTzX+QadHU3c1ofpHc3dcGG89/4+TYktvS1NYI7OHu3fEJ5tpqBu/k+HX7+nXDB06SuoHm0KXhR65cQT8P3FRAMIAFgVMPwDCAwLHjggIHJIgceeFBg44eC/+ITCCBZYKSJ1FCWPBgpE2YMmc+qNCypwScMmnaXAkUJYOaFVyKLOqx5tCXJnMelcBzJNSYKIX2ZPkzqsyjPLku9Zr1QciVErYxaICAgEUOBRJIgzChbt0MLOPFwyBggV27eCUcmxZvg9+/dfPGo5bg8N/Ag61ZM4w4seDF1fpWhizZmoa+GSortgcaMWd/fkP/HY0MgWbTipVV++wY8GhvqSG4XUEgoYTKE+Qh0OCvggULiBckWEZ4Ggbjx5HXVc58IPQJ0idQJ66XanTpFraTe348+XLizRNcz658eHMN3rNPT+C+G/nodqk3t6a+fN3j+u0Xn3nVTQPfdRPspkL/b+dEIN8EeMm2GAYbTNABdrbJ1hyFFv5lQYTodSZABhc+loCEyhxTYYkZopdMMiNeiBxyIFajV4wYHpfBBspUl8yKHu6ooV5APsZjQxyyeNeJ3N1IYod38cgdPBUid6GCKfRWgAYU4IccSyHew8B3doGJHmMLkGkZcynKk2Z50Ym0zJzLbDCmfBbI6eIyCdyJmJmoqZmnBAXy9+Z/yOlZDZpwYihnj7IZpuYEevrYJ5mJEuqiof4l+NYDEXQpXQcMnNjZNDx1oGqJ4S2nF3EsqWrhqqVWl6JIslpAK5MaIqDeqjJq56qN1aTaQaPbHTPYr8Be6Gsyyh6Da7OkmmqP/7GyztdrNVQBm5+pgw3X7aoYKhfZosb6hyUKBHCgQKij1rghkOAJuZg1SeYIIY+nIpDvf/sqm4yNG5CY64f87qdAwSXKGqFkhPH1ZHb2EgYtw3bpKGVkPz5pJAav+gukjB1UHE/HLNJobWcSX8jiuicMMBFd2OmKwQFs2tjXpDfnPE1j30V3c7iRHlrzBD2HONzODyZtsQJMI4r0AUNaE3XNHQw95c9GC001MpIxDacFQ+ulTNTZlU3O1eWVHa6vb/pnQUUrgHHSBKIuwG+bCPyEqbAg25gMVV1iOB/IGh5YOKLKIQ6xBAcUHmzjIcIqgajZ+Ro42DcvXl7j0U4WOUd+2IGu7DWjI1pt4DYq8BPm0entuGSQY/4tBi9Ss0HqfwngBQtHbCH88MQXb/zxyFfRRRHMN+/889BHL/301Fdv/fXYZ39CCAAh+QQJCgAAACwAAAAA3AATAAAF/yAgjmRpnmiqrmzrvnAsz3Rt33iu73zv/8CgcEgECAaEpHLJbDqf0Kh0Sq1ar9isdjoQtAQFh2fAKXsKm7R6Q+Y43vABep0mGwwOPH7w2CT+gHZ3d3lyagl+CQNvg4yGh36LcHoGfHR/ZYOElQ9/a4ocmoRygIiRk5p8pYmZjXePaYBujHoOqp5qZHBlHAUFXitddg8PBg8KGsgayxvGkAkFDwgICtPTzX2mftHW3QnOpojG3dbYkNjk1waxsdDS1N7ga9zw1t/aifTk35fu6Qj3numL14fOuHTNECHqU4DDgQEsCCwidiHBAwYQMmpcUOCAhI8gJVzUuLGThAQnP/9abEAyI4MCIVOKZNnyJUqUJxNcGNlywYOQgHZirGkSJ8gHNEky+AkS58qWEJYC/bMzacmbQHkqNdlUJ1KoSz2i9COhmQYCEXtVrCBgwYS3cCf8qTcNQ9u4cFFOq2bPLV65Cf7dxZthbjW+CgbjnWtNgWPFcAsHdoxgWWK/iyV045sAc2S96SDn1exYw17REwpLQEYt2eW/qtPZRQAB7QoC61RW+GsBwYZ/CXb/XRCYLsAKFizEtUAc+G7lcZsjroscOvTmsoUvx15PwccJ0N8yL17N9PG/E7jv9S4hOV7pdIPDdZ+ePDzv2qMXn2b5+wTbKuAWnF3oZbABZY0lVmD/ApQd9thybxno2GGuCVDggaUpoyBsB1bGGgIYbJCBcuFJiOAyGohIInQSmmdeiBnMF2GHfNUlIoc1rncjYRjW6NgGf3VQGILWwNjBfxEZcAFbC7gHXQcfUYOYdwzQNxo5yUhQZXhvRYlMeVSuSOJHKJa5AQMQThBlZWZ6Bp4Fa1qzTAJbijcBlJrtxeaZ4lnnpZwpukWieGQmYx5ATXIplwTL8DdNZ07CtWYybNIJF4Ap4NZHe0920AEDk035kafieQrqXofK5ympn5JHKYjPrfoWcR8WWQGp4Ul32KPVgXdnqxM6OKqspjIYrGPDrlrsZtRIcOuR86nHFwbPvmes/6PH4frrqbvySh+mKGhaAARPzjjdhCramdoGGOhp44i+zogBkSDuWC5KlE4r4pHJkarXrj++Raq5iLmWLlxHBteavjG+6amJrUkJJI4Ro5sBv9AaOK+jAau77sbH7nspCwNIYIACffL7J4JtWQnen421nNzMcB6AqpRa9klonmBSiR4GNi+cJZpvwgX0ejj71W9yR+eIgaVvQgf0l/A8nWjUFhwtZYWC4hVnkZ3p/PJqNQ5NnwUQrQCGBBBMQIGTtL7abK+5JjAv1fi9bS0GLlJHgdjEgYzzARTwC1fgEWdJuKKBZzj331Y23qB3i9v5aY/rSUC4w7PaLeWXmr9NszMFoN79eeiM232o33EJAIzaSGwh++y012777bhT0UURvPfu++/ABy/88MQXb/zxyCd/QggAIfkECQoAAAAsAAAAANwAEwAABf8gII5kaZ5oqq5s675wLM90bd94ru987//AoHBIBAgGhKRyyWw6n9CodEqtWq/YrHY6ELQEBY5nwCk7xIWNer0hO95wziC9Ttg5b4ND/+Y87IBqZAaEe29zGwmJigmDfHoGiImTjXiQhJEPdYyWhXwDmpuVmHwOoHZqjI6kZ3+MqhyemJKAdo6Ge3OKbEd4ZRwFBV4rc4MPrgYPChrMzAgbyZSJBcoI1tfQoYsJydfe2amT3d7W0OGp1OTl0YtqyQrq0Lt11PDk3KGoG+nxBpvTD9QhwCctm0BzbOyMIwdOUwEDEgawIOCB2oMLgB4wgMCx44IHBySIHClBY0ePfyT/JCB5weRJCAwejFw58kGDlzBTqqTZcuPLmCIBiWx58+VHmiRLFj0JVCVLl0xl7qSZwCbOo0lFWv0pdefQrVFDJtr5gMBEYBgxqBWwYILbtxPsqMPAFu7blfa81bUbN4HAvXAzyLWnoDBguHIRFF6m4LBbwQngMYPXuC3fldbyPrMcGLM3w5wRS1iWWUNlvnElKDZtz/EEwaqvYahQoexEfyILi4RrYYKFZwJ3810QWZ2ECrx9Ew+O3K6F5Yq9zXbb+y30a7olJJ+wnLC16W97Py+uwdtx1NcLWzs/3G9e07stVPc9kHJ0BcLtQp+c3ewKAgYkUAFpCaAmmHqKLSYA/18WHEiZPRhsQF1nlLFWmIR8ZbDBYs0YZuCGpGXWmG92aWiPMwhEOOEEHXRwIALlwXjhio+BeE15IzpnInaLbZBBhhti9x2GbnVQo2Y9ZuCfCgBeMCB+DJDIolt4iVhOaNSJdCOBUfIlkmkyMpPAAvKJ59aXzTQzJo0WoJnmQF36Jp6W1qC4gWW9GZladCiyJd+KnsHImgRRVjfnaDEKuiZvbcYWo5htzefbl5LFWNeSKQAo1QXasdhiiwwUl2B21H3aQaghXnPcp1NagCqYslXAqnV+zYWcpNwVp9l5eepJnHqL4SdBi56CGlmw2Zn6aaiZjZqfb8Y2m+Cz1O0n3f+tnvrGbF6kToApCgAWoNWPeh754JA0vmajiAr4iOuOW7abQXVGNriBWoRdOK8FxNqLwX3oluubhv8yluRbegqGb536ykesuoXhyJqPQJIGbLvQhkcwjKs1zBvBwSZIsbcsDCCBAAf4ya+UEhyQoIiEJtfoZ7oxUOafE2BwgMWMqUydfC1LVtiArk0QtGkWEopzlqM9aJrKHfw5c6wKjFkmXDrbhwFockodtMGFLWpXy9JdiXN1ZDNszV4WSLQCGBKoQYHUyonqrHa4ErewAgMmcAAF7f2baIoVzC2p3gUvJtLcvIWqloy6/R04mIpLwDhciI8qLOB5yud44pHPLbA83hFDWPjNbuk9KnySN57Av+TMBvgEAgzzNhJb5K777rz37vvvVHRRxPDEF2/88cgnr/zyzDfv/PPQnxACACH5BAkKAAAALAAAAADcABMAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSAQIBoSkcslsOp/QqHRKrVqv2Kx2OhC0BIUCwcMpO84OT2HDbm8GHLQjnn6wE3g83SA3DB55G3llfHxnfnZ4gglvew6Gf4ySgmYGlpCJknochWiId3kJcZZyDn93i6KPl4eniopwq6SIoZKxhpenbhtHZRxhXisDopwPgHkGDxrLGgjLG8mC0gkFDwjX2AgJ0bXJ2djbgNJsAtbfCNB2oOnn6MmKbeXt226K1fMGi6j359D69ua+QZskjd+3cOvY9XNgp4ABCQNYEDBl7EIeCQkeMIDAseOCBwckiBSZ4ILGjh4B/40kaXIjSggMHmBcifHky5gYE6zM2OAlzGM6Z5rs+fIjTZ0tfcYMSlLCUJ8fL47kCVXmTjwPiKJkUCDnyqc3CxzQmYeAxAEGLGJYiwCDgAUT4sqdgOebArdw507IUNfuW71xdZ7DC5iuhGsKErf9CxhPYgUaEhPWyzfBMgUIJDPW6zhb5M1y+R5GjFkBaLmCM0dOfHqvztXYJnMejaFCBQlmVxAYsEGkYnQV4lqYMNyCtnYSggNekAC58uJxmTufW5w55mwKkg+nLp105uTC53a/nhg88fMTmDfDVl65Xum/IZt/3/zaag3a5W63nll1dvfiWbaaZLmpQIABCVQA2f9lAhTG112PQWYadXE9+FtmEwKWwQYQJrZagxomsOCAGVImInsSbpCBhhwug6KKcXXQQYUcYuDMggrASFmNzjjzzIrh7cUhhhHqONeGpSEW2QYxHsmjhxpgUGAKB16g4IIbMNCkXMlhaJ8GWVJo2I3NyKclYF1GxgyYDEAnXHJrMpNAm/rFBSczPiYAlwXF8ZnmesvoOdyMbx7m4o0S5LWdn4bex2Z4xYmEzaEb5EUcnxbA+WWglqIn6aHPTInCgVbdlZyMqMrIQHMRSiaBBakS1903p04w434n0loBoQFOt1yu2YAnY68RXiNsqh2s2qqxuyKb7Imtmgcrqsp6h8D/fMSpapldx55nwayK/SfqCQd2hcFdAgDp5GMvqhvakF4mZuS710WGIYy30khekRkMu92GNu6bo7r/ttjqwLaua5+HOdrKq5Cl3dcwi+xKiLBwwwom4b0E6xvuYyqOa8IAEghwQAV45VvovpkxBl2mo0W7AKbCZXoAhgMmWnOkEqx2JX5nUufbgJHpXCfMOGu2QAd8eitpW1eaNrNeMGN27mNz0swziYnpSbXN19gYtstzfXrdYjNHtAIYGFVwwAEvR1dfxdjKxVzAP0twAAW/ir2w3nzTd3W4yQWO3t0DfleB4XYnEHCEhffdKgaA29p0eo4fHLng9qoG+OVyXz0gMeWGY7qq3xhiRIEAwayNxBawxy777LTXbjsVXRSh++689+7778AHL/zwxBdv/PEnhAAAIfkECQoAAAAsAAAAANwAEwAABf8gII5kaZ5oqq5s675wLM90bd94ru987//AoHBIBAgGhKRyyWw6n9CodEqtWq/YrHY6ELQEhYLD4BlwHGg0ubBpuzdm9Dk9eCTu+MTZkDb4PXYbeIIcHHxqf4F3gnqGY2kOdQmCjHCGfpCSjHhmh2N+knmEkJmKg3uHfgaaeY2qn6t2i4t7sKAPbwIJD2VhXisDCQZgDrKDBQ8aGgjKyhvDlJMJyAjV1gjCunkP1NfVwpRtk93e2ZVt5NfCk27jD97f0LPP7/Dr4pTp1veLgvrx7AL+Q/BM25uBegoYkDCABYFhEobhkUBRwoMGEDJqXPDgQMUEFC9c1LjxQUUJICX/iMRIEgIDkycrjmzJMSXFlDNJvkwJsmdOjQwKfDz5M+PLoSGLQqgZU6XSoB/voHxawGbFlS2XGktAwKEADB0xiEWAodqGBRPSqp1wx5qCamDRrp2Qoa3bagLkzrULF4GCvHPTglRAmKxZvWsHayBcliDitHUlvGWM97FgCdYWVw4c2e/kw4HZJlCwmDBhwHPrjraGYTHqtaoxVKggoesKAgd2SX5rbUMFCxOAC8cGDwHFwBYWJCgu4XfwtcqZV0grPHj0u2SnqwU+IXph3rK5b1fOu7Bx5+K7L6/2/Xhg8uyXnQ8dvfRiDe7TwyfNuzlybKYpgIFtKhAgwEKkKcOf/wChZbBBgMucRh1so5XH3wbI1WXafRJy9iCErmX4IWHNaIAhZ6uxBxeGHXQA24P3yYfBBhmgSBozESpwongWOBhggn/N1aKG8a1YY2oVAklgCgQUUwGJ8iXAgItrWUARbwpqIOWEal0ZoYJbzmWlZCWSlsAC6VkwZonNbMAAl5cpg+NiZwpnJ0Xylegmlc+tWY1mjnGnZnB4QukMA9UJRxGOf5r4ppqDjjmnfKilh2ejGiyJAgF1XNmYbC2GmhZ5AcJVgajcXecNqM9Rx8B6bingnlotviqdkB3YCg+rtOaapFsUhSrsq6axJ6sEwoZK7I/HWpCsr57FBxJ1w8LqV/81zbkoXK3LfVeNpic0KRQG4NHoIW/XEmZuaiN6tti62/moWbk18uhjqerWS6GFpe2YVotskVssWfBOAHACrZHoWcGQwQhlvmsdXBZ/F9YLMF2jzUuYBP4a7CLCnoEHrgkDSCDAARUILAGaVVqAwQHR8pZXomm9/ONhgjrbgc2lyYxmpIRK9uSNjrXs8gEbTrYyl2ryTJmsLCdKkWzFQl1lWlOXGmifal6p9VnbQfpyY2SZyXKVV7JmZkMrgIFSyrIeUJ2r7YKnXdivUg1kAgdQ8B7IzJjGsd9zKSdwyBL03WpwDGxwuOASEP5vriO2F3nLjQdIrpaRDxqcBdgIHGA74pKrZXiR2ZWuZt49m+o3pKMC3p4Av7SNxBa456777rz37jsVXRQh/PDEF2/88cgnr/zyzDfv/PMnhAAAIfkECQoAAAAsAAAAANwAEwAABf8gII5kaZ5oqq5s675wLM90bd94ru987//AoHBIBAgGhKRyyWw6n9CodEqtWq/YrHY6ELQEhYLDUPAMHGi0weEpbN7wI8cxTzsGj4R+n+DUxwaBeBt7hH1/gYIPhox+Y3Z3iwmGk36BkIN8egOIl3h8hBuOkAaZhQlna4BrpnyWa4mleZOFjrGKcXoFA2ReKwMJBgISDw6abwUPGggazc0bBqG0G8kI1tcIwZp51djW2nC03d7BjG8J49jl4cgP3t/RetLp1+vT6O7v5fKhAvnk0UKFogeP3zmCCIoZkDCABQFhChQYuKBHgkUJkxpA2MhxQYEDFhNcvPBAI8eNCx7/gMQYckPJkxsZPLhIM8FLmDJrYiRp8mTKkCwT8IQJwSPQkENhpgQpEunNkzlpWkwKdSbGihKocowqVSvKWQkIOBSgQOYFDBgQpI0oYMGEt3AzTLKm4BqGtnDjirxW95vbvG/nWlub8G9euRsiqqWLF/AEkRoiprX2wLDeDQgkW9PQGLDgyNc665WguK8C0XAnRY6oGPUEuRLsgk5g+a3cCxUqSBC7gsCBBXcVq6swwULx4hayvctGPK8FCwsSLE9A3Hje6NOrHzeOnW695sffRi/9HfDz7sIVSNB+XXrmugo0rHcM3X388o6jr44ceb51uNjF1xcC8zk3wXiS8aYC/wESaLABBs7ch0ECjr2WAGvLsLZBeHqVFl9kGxooV0T81TVhBo6NiOEyJ4p4IYnNRBQiYCN6x4wCG3ZAY2If8jXjYRcyk2FmG/5nXAY8wqhWAii+1YGOSGLoY4VRfqiAgikwmIeS1gjAgHkWYLQZf9m49V9gDWYWY5nmTYCRM2TS5pxxb8IZGV5nhplmhJyZadxzbrpnZ2d/6rnZgHIid5xIMDaDgJfbLdrgMkKW+Rygz1kEZz1mehabkBpgiQIByVikwGTqVfDkk2/Vxxqiqur4X3fksHccre8xlxerDLiHjQIVUAgXr77yFeyuOvYqXGbMrbrqBMqaFpFFzhL7qv9i1FX7ZLR0LUNdcc4e6Cus263KbV+inkAAHhJg0BeITR6WmHcaxhvXg/AJiKO9R77ILF1FwmVdAu6WBu+ZFua72mkZWMfqBElKu0G8rFZ5n4ATp5jkmvsOq+Nj7u63ZMMPv4bveyYy6fDH+C6brgnACHBABQUrkGirz2FwAHnM4Mmhzq9yijOrOi/MKabH6VwBiYwZdukEQAvILKTWXVq0ZvH5/CfUM7M29Zetthp1eht0eqkFYw8IKXKA6mzXfTeH7fZg9zW0AhgY0TwthUa6Ch9dBeIsbsFrYkRBfgTfiG0FhwMWnbsoq3cABUYOnu/ejU/A6uNeT8u4wMb1WnBCyJJTLjjnr8o3OeJrUcpc5oCiPqAEkz8tXuLkPeDL3Uhs4fvvwAcv/PDEU9FFEcgnr/zyzDfv/PPQRy/99NRXf0IIACH5BAkKAAAALAAAAADcABMAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSAQIBoSkcslsOp/QqHRKrVqv2Kx2OhC0BIWCw/AoDziOtCHt8BQ28PjmzK57Hom8fo42+P8DeAkbeYQcfX9+gYOFg4d1bIGEjQmPbICClI9/YwaLjHAJdJeKmZOViGtpn3qOqZineoeJgG8CeWUbBV4rAwkGAhIVGL97hGACGsrKCAgbBoTRhLvN1c3PepnU1s2/oZO6AtzdBoPf4eMI3tIJyOnF0YwFD+nY8e3z7+Xfefnj9uz8cVsXCh89axgk7BrAggAwBQsYIChwQILFixIeNIDAseOCBwcSXMy2sSPHjxJE/6a0eEGjSY4MQGK86PIlypUJEmYsaTKmyJ8JW/Ls6HMkzaEn8YwMWtPkx4pGd76E4DMPRqFTY860OGhogwYagBFoKEABA46DEGBAoEBB0AUT4sqdIFKBNbcC4M6dkEEk22oYFOTdG9fvWrtsBxM23MytYL17666t9phwXwlum2lIDHmuSA2IGyuOLOHv38qLMbdFjHruZbWgRXeOe1nC2BUEDiyAMMHZuwoTLAQX3nvDOAUW5Vogru434d4JnAsnPmFB9NBshQXfa9104+Rxl8e13rZxN+CEydtVsFkd+vDjE7C/q52wOvb4s7+faz025frbxefWbSoQIAEDEUCwgf9j7bUlwHN9ZVaegxDK1xYzFMJH24L5saXABhlYxiEzHoKoIV8LYqAMaw9aZqFmJUK4YHuNfRjiXhmk+NcyJgaIolvM8BhiBx3IleN8lH1IWAcRgkZgCgYiaBGJojGgHHFTgtagAFYSZhF7/qnTpY+faVlNAnqJN0EHWa6ozAZjBtgmmBokwMB01LW5jAZwbqfmlNips4B4eOqJgDJ2+imXRZpthuigeC6XZTWIxilXmRo8iYKBCwiWmWkJVEAkfB0w8KI1IvlIpKnOkVpqdB5+h96o8d3lFnijrgprjbfGRSt0lH0nAZG5vsprWxYRW6Suq4UWqrLEsspWg8Io6yv/q6EhK0Fw0GLbjKYn5CZYBYht1laPrnEY67kyrhYbuyceiR28Pso7bYwiXjihjWsWuWF5p/H765HmNoiur3RJsGKNG/jq748XMrwmjhwCfO6QD9v7LQsDxPTAMKsFpthyJCdkmgYiw0VdXF/Om9dyv7YMWGXTLYpZg5wNR11C78oW3p8HSGgul4qyrJppgllJHJZHn0Y0yUwDXCXUNquFZNLKyYXBAVZvxtAKYIQEsmPgDacr0tltO1y/DMwYpkgUpJfTasLGzd3cdCN3gN3UWRcY3epIEPevfq+3njBxq/kqBoGBduvea8f393zICS63ivRBTqgFpgaWZEIUULdcK+frIfAAL2AjscXqrLfu+uuwx05FF0XUbvvtuOeu++689+7778AHL/wJIQAAOwAAAAAAAAAAAA==]]></data>
	</file>
	<file>
		<filename>/js/jrac/images/viewport_background.gif</filename>
		<isdir>0</isdir>
		<data><![CDATA[R0lGODlhEAAQAIAAAN/f3////yH5BAAHAP8ALAAAAAAQABAAAAIfhG+hq4jM3IFLJhoswNly/XkcBpIiVaInlLJr9FZWAQA7]]></data>
	</file>
	<file>
		<filename>/js/jrac/index.html</filename>
		<isdir>0</isdir>
		<data><![CDATA[PCEtLSBEVU1NWSBIVE1MIEZJTEUgLS0+]]></data>
	</file>
	<file>
		<filename>/js/jrac/jquery.jrac.js</filename>
		<isdir>0</isdir>
		<data><![CDATA[LyogalF1ZXJ5IFJlc2l6ZSBBbmQgQ3JvcCAoanJhYykNCiAqIEEgalF1ZXJ5IDEuNCsgYW5kIGpRdWVyeVVpIDEuOCsgcGx1Z2luIHVuZGVyIEdOVSBHRU5FUkFMIFBVQkxJQyBMSUNFTlNFIHZlcnNpb24gMiBsaXNlbnNlLg0KICogQ29weXJpZ2h0IChjKSAyMDExIENlZHJpYyBHYW1wZXJ0IC0gY2dhbXBlcnRAZ21haWwuY29tDQogKi8NCg0KKGZ1bmN0aW9uKCAkICl7DQoNCiAgJC5mbi5qcmFjID0gZnVuY3Rpb24ob3B0aW9ucykgew0KDQogICAgLy8gRGVmYXVsdCBzZXR0aW5ncw0KICAgIHZhciBzZXR0aW5ncyA9IHsNCiAgICAgICdjcm9wX3dpZHRoJzogMjAwLA0KICAgICAgJ2Nyb3BfaGVpZ2h0JzogMTAwLA0KICAgICAgLy8gVGhlIHR3byBmb2xsb3dpbmcgcHJvcGVydGllcyBkZWZpbmUgdGhlIGNyb3AgcG9zaXRpb24gKHJlbGF0aXZlIHRvIHRoZQ0KICAgICAgLy8gaW1hZ2UpLg0KICAgICAgJ2Nyb3BfeCc6IDAsDQogICAgICAnY3JvcF95JzogMCwNCiAgICAgICdjcm9wX3Jlc2l6ZSc6IHRydWUsDQogICAgICAnY3JvcF9hc3BlY3RfcmF0aW8nOiBudWxsLA0KICAgICAgJ2ltYWdlX3dpZHRoJzogbnVsbCwNCiAgICAgICdpbWFnZV9oZWlnaHQnOiBudWxsLA0KICAgICAgJ3pvb21fbWluJzogMTAwLA0KICAgICAgJ3pvb21fbWF4JzogMzAwMCwNCiAgICAgICd2aWV3cG9ydF9pbWFnZV9zdXJyb3VuZGluZyc6IGZhbHNlLCAvLyBTZXQgdGhlIHZpZXdwb3J0IHRvIHN1cnJvdW5kIHRoZSBpbWFnZSBvbiBsb2FkDQogICAgICAndmlld3BvcnRfd2lkdGgnOiBudWxsLA0KICAgICAgJ3ZpZXdwb3J0X2hlaWdodCc6IG51bGwsDQogICAgICAndmlld3BvcnRfcmVzaXplJzogdHJ1ZSwNCiAgICAgIC8vIFRoZSB0d28gZm9sbG93aW5nIHByb3BlcnRpZXMgYWxsb3cgdG8gcG9zaXRpb24gdGhlIGNvbnRlbnQgKG5lZ2F0aXZlDQogICAgICAvLyB2YWx1ZSBhbGxvd2VkKS4gSXQgY2FuIGJlIHVzZSB0byBmb2N1cyB0aGUgdmlld3BvcnQgb24gdGhlIGNyb3BwZWQNCiAgICAgIC8vIHBhcnQgb2YgdGhlIGltYWdlLg0KICAgICAgJ3ZpZXdwb3J0X2NvbnRlbnRfbGVmdCc6IDAsDQogICAgICAndmlld3BvcnRfY29udGVudF90b3AnOiAwLA0KICAgICAgLy8gU3VibWl0IGhlcmUgYSBjYWxsYmFjayBmdW5jdGlvbiAoY29udGV4dCBpcyB0aGUgdmlld3BvcnQpLg0KICAgICAgJ3ZpZXdwb3J0X29ubG9hZCc6IG51bGwNCiAgICB9Ow0KDQogICAgLy8gQXBwbHkgdGhlIHJlc2l6ZSBhbmQgY3JvcCB0b29scyB0byBlYWNoIGltYWdlcw0KICAgIHJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKSB7DQoNCiAgICAgIGlmICghJCh0aGlzKS5pcygnaW1nJykpIHsNCiAgICAgICAgcmV0dXJuOw0KICAgICAgfQ0KDQogICAgICAvLyBSZWFkIG9wdGlvbnMNCiAgICAgIHZhciBkZXN0cm95ID0gZmFsc2U7DQogICAgICBpZiAoIHR5cGVvZihvcHRpb25zKSA9PSAnb2JqZWN0JyApIHsNCiAgICAgICAgJC5leHRlbmQoIHNldHRpbmdzLCBvcHRpb25zICk7DQogICAgICB9DQogICAgICBlbHNlIGlmIChvcHRpb25zID09ICdkZXN0cm95Jykgew0KICAgICAgICBkZXN0cm95ID0gdHJ1ZTsNCiAgICAgIH0NCiAgICAgIA0KICAgICAgdmFyICRpbWFnZSA9ICQodGhpcyk7ICAgICAgDQogICAgICANCiAgICAgIC8vIFRlc3QgaWYganJhYyB3YXMgcHJldmlvdXNseSBydW4NCiAgICAgIHZhciBqcmFjX2xvYWRlZCA9IGZhbHNlOyAgICAgIA0KICAgICAgaWYgKCRpbWFnZS5wYXJlbnQoKS5oYXNDbGFzcygnanJhY192aWV3cG9ydCcpKSB7DQogICAgICAgIGpyYWNfbG9hZGVkID0gdHJ1ZTsgICAgICAgIA0KICAgICAgfQ0KICAgICAgDQogICAgICBpZiAoanJhY19sb2FkZWQgJiYgZGVzdHJveSkgew0KICAgICAgICAvLyBVbmxvYWQganJhYyBpZiBhc2tlZA0KICAgICAgICAkaW1hZ2UuZHJhZ2dhYmxlKCJkZXN0cm95Iik7DQogICAgICAgICRpbWFnZS5wYXJlbnQoKS5maW5kKCcuanJhY19jcm9wJykucmVtb3ZlKCk7DQogICAgICAgICRpbWFnZS5wYXJlbnQoKS5wYXJlbnQoKS5maW5kKCcuanJhY196b29tX3NsaWRlcicpLnJlbW92ZSgpOw0KICAgICAgICAkaW1hZ2UucGFyZW50KCkuYXBwZW5kKCRpbWFnZS5kYXRhKCdvcmlnaW5hbCcpKTsgLy8gcmVzdG9yZSBvcmlnaW5hbCBpbWFnZQ0KICAgICAgICAkaW1hZ2UucGFyZW50KCkudW53cmFwKCk7IC8vIHJlbW92ZSBjb250YWluZXINCiAgICAgICAgJGltYWdlLnVud3JhcCgpOyAvLyByZW1vdmUgdmlld3BvcnQNCiAgICAgICAgJGltYWdlLnJlbW92ZSgpOyAvLyByZW1vdmUgaW1hZ2Ugd2hpY2ggd2FzIGFsdGVyZWQgKGluIGl0cyBjc3MgYXR0cmlidXRlcykNCiAgICAgIH0NCiAgICAgIGVsc2Ugew0KICAgICAgICAvLyBSZWNvcmQgaW1hZ2UgYmVmb3JlIHNvbWUgb2YgaXRzIGF0dHJpYnV0ZXMgZ2V0IGFsdGVyZWQgYnkgc29tZSANCiAgICAgICAgLy8ganJhYyBjc3Mgb3Igc29tZSB1c2VyIHNpemUgb3IgcHJvcG9ydGlvbiBjaGFuZ2VzLg0KICAgICAgICAkaW1hZ2UuZGF0YSgnb3JpZ2luYWwnLCAkaW1hZ2UuY2xvbmUoKSk7DQogICAgICB9DQoNCiAgICAgIC8vIERvIG5vdGhpbmcgbW9yZSBpZiBkZXN0cm95IGlzIGFza2VkDQogICAgICBpZiAoZGVzdHJveSkgew0KICAgICAgICByZXR1cm47DQogICAgICB9DQogICAgICANCiAgICAgIC8vIFByZXBhcmUgaW1hZ2UNCiAgICAgIGlmICghanJhY19sb2FkZWQpIHsNCiAgICAgICAgJGltYWdlLmhpZGUoKS5jc3MoJ3Bvc2l0aW9uJywnYWJzb2x1dGUnKS53cmFwKCc8ZGl2IGNsYXNzPSJqcmFjX2NvbnRhaW5lciI+PGRpdiBjbGFzcz0ianJhY192aWV3cG9ydCI+PC9kaXY+PC9kaXY+Jyk7DQogICAgICB9DQoNCiAgICAgIC8vIEdldCB2aWV3cG9ydCBhbmQgY29udGFpbmVyIHJlZmVyZW5jZXMNCiAgICAgIHZhciAkdmlld3BvcnQgPSAkaW1hZ2UucGFyZW50KCk7DQogICAgICB2YXIgJGNvbnRhaW5lciA9ICR2aWV3cG9ydC5wYXJlbnQoKTsNCg0KICAgICAgLy8gQWRkIGEgd2FpdGluZyBvbiBsb2FkIGlucHV0IGltYWdlDQogICAgICB2YXIgJGxvYWRpbmcgPSAkKCc8ZGl2IGNsYXNzPSJqcmFjX2xvYWRpbmciIC8+Jyk7DQogICAgICAkdmlld3BvcnQuYXBwZW5kKCRsb2FkaW5nKTsNCg0KICAgICAgLy8gVGhlIGZvbGxvd2luZyBwcm9jZWR1cmUgaG9sZCBidXNpbmVzcyBpbnRlbmQgdG8gYmUgcnVuIG9uY2UgdGhlIGltYWdlDQogICAgICAvLyBpcyBsb2FkZWQgKGxvYWQgZXZlbnQpLg0KICAgICAgdmFyIGltYWdlX2xvYWRfaGFuZGxlciA9IGZ1bmN0aW9uKCl7DQoNCiAgICAgICAgLy8gQWRkIHNvbWUgY3VzdG9tIHByb3BlcnRpZXMgdG8gJGltYWdlDQogICAgICAgICQuZXh0ZW5kKCRpbWFnZSwgew0KICAgICAgICAgIHNjYWxlX3Byb3BvcnRpb25fbG9ja2VkOiB0cnVlLA0KICAgICAgICAgIG9yaWdpbmFsV2lkdGg6ICRpbWFnZS53aWR0aCgpLA0KICAgICAgICAgIG9yaWdpbmFsSGVpZ2h0OiAkaW1hZ2UuaGVpZ2h0KCkNCiAgICAgICAgfSk7DQoNCiAgICAgICAgLy8gU2V0IGdpdmVuIG9wdGlvbmFsIGltYWdlIHNpemUNCiAgICAgICAgJGltYWdlLndpZHRoKHNldHRpbmdzLmltYWdlX3dpZHRoKS5oZWlnaHQoc2V0dGluZ3MuaW1hZ2VfaGVpZ2h0KTsNCg0KICAgICAgICAvLyBBcHBseSB0aGUgdmlld3BvcnQgaW1hZ2Ugc3Vycm91bmRpbmcgaXMgYXNrZWQNCiAgICAgICAgaWYgKHNldHRpbmdzLnZpZXdwb3J0X2ltYWdlX3N1cnJvdW5kaW5nKSB7DQogICAgICAgICAgJHZpZXdwb3J0LndpZHRoKCRpbWFnZS53aWR0aCgpKS5oZWlnaHQoJGltYWdlLmhlaWdodCgpKTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAkdmlld3BvcnQud2lkdGgoc2V0dGluZ3Mudmlld3BvcnRfd2lkdGgpLmhlaWdodChzZXR0aW5ncy52aWV3cG9ydF9oZWlnaHQpOw0KICAgICAgICB9DQoNCiAgICAgICAgLy8gU2V0IHRoZSB2aWV3cG9ydCBjb250ZW50IHBvc2l0aW9uIGZvciB0aGUgaW1hZ2UNCiAgICAgICAgJGltYWdlLmNzcyh7J2xlZnQnOiBzZXR0aW5ncy52aWV3cG9ydF9jb250ZW50X2xlZnQsICd0b3AnOiBzZXR0aW5ncy52aWV3cG9ydF9jb250ZW50X3RvcH0pOw0KDQogICAgICAgIC8vIENyZWF0ZSB0aGUgem9vbSB3aWRnZXQgd2hpY2ggcGVybWl0IHRvIHJlc2l6ZSB0aGUgaW1hZ2UNCiAgICAgICAgaWYgKCFqcmFjX2xvYWRlZCkgew0KICAgICAgICAgIHZhciAkem9vbV93aWRnZXQgPSAkKCc8ZGl2IGNsYXNzPSJqcmFjX3pvb21fc2xpZGVyIj48ZGl2IGNsYXNzPSJ1aS1zbGlkZXItaGFuZGxlIj48L2Rpdj48L2Rpdj4nKQ0KICAgICAgICAgIC53aWR0aCgkdmlld3BvcnQud2lkdGgoKSkNCiAgICAgICAgICAuc2xpZGVyKHsNCiAgICAgICAgICAgIHZhbHVlOiAkaW1hZ2Uud2lkdGgoKSwNCiAgICAgICAgICAgIG1pbjogc2V0dGluZ3Muem9vbV9taW4sDQogICAgICAgICAgICBtYXg6IHNldHRpbmdzLnpvb21fbWF4LA0KICAgICAgICAgICAgc3RhcnQ6IGZ1bmN0aW9uKGV2ZW50LCB1aSkgew0KICAgICAgICAgICAgICAkLmV4dGVuZCgkem9vbV93aWRnZXQsew0KICAgICAgICAgICAgICAgIG9uX3N0YXJ0X3dpZHRoX3ZhbHVlOiB1aS52YWx1ZSwNCiAgICAgICAgICAgICAgICBvbl9zdGFydF9oZWlnaHRfdmFsdWU6ICRpbWFnZS5oZWlnaHQoKQ0KICAgICAgICAgICAgICB9KQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHNsaWRlOiBmdW5jdGlvbihldmVudCwgdWkpIHsNCiAgICAgICAgICAgICAgdmFyIGhlaWdodCA9IE1hdGgucm91bmQoJHpvb21fd2lkZ2V0Lm9uX3N0YXJ0X2hlaWdodF92YWx1ZSAqIHVpLnZhbHVlIC8gJHpvb21fd2lkZ2V0Lm9uX3N0YXJ0X3dpZHRoX3ZhbHVlKTsNCiAgICAgICAgICAgICAgJGltYWdlLmhlaWdodChoZWlnaHQpOw0KICAgICAgICAgICAgICAkaW1hZ2Uud2lkdGgodWkudmFsdWUpOw0KICAgICAgICAgICAgICAkdmlld3BvcnQub2JzZXJ2YXRvci5ub3RpZnkoJ2pyYWNfaW1hZ2VfaGVpZ2h0JywgaGVpZ2h0KTsNCiAgICAgICAgICAgICAgJHZpZXdwb3J0Lm9ic2VydmF0b3Iubm90aWZ5KCdqcmFjX2ltYWdlX3dpZHRoJywgdWkudmFsdWUpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgIH0pOw0KICAgICAgICAgICRjb250YWluZXIuYXBwZW5kKCR6b29tX3dpZGdldCk7DQogICAgICAgIA0KICAgICAgICAgIC8vIE1ha2UgdGhlIHZpZXdwb3J0IHJlc2l6ZWFibGUNCiAgICAgICAgICBpZiAoc2V0dGluZ3Mudmlld3BvcnRfcmVzaXplKSB7DQogICAgICAgICAgICAkdmlld3BvcnQucmVzaXphYmxlKHsNCiAgICAgICAgICAgICAgcmVzaXplOiBmdW5jdGlvbihldmVudCwgdWkpIHsNCiAgICAgICAgICAgICAgICAkem9vbV93aWRnZXQud2lkdGgodWkuc2l6ZS53aWR0aCk7DQogICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0pOw0KICAgICAgICAgIH0NCg0KICAgICAgICAgIC8vIEVuYWJsZSB0aGUgaW1hZ2UgZHJhZ2dhYmxlIGludGVyYWN0aW9uDQogICAgICAgICAgJGltYWdlLmRyYWdnYWJsZSh7DQogICAgICAgICAgICBkcmFnOiBmdW5jdGlvbihldmVudCwgdWkpIHsNCiAgICAgICAgICAgICAgaWYgKHVpLnBvc2l0aW9uLmxlZnQgIT0gdWkub3JpZ2luYWxQb3NpdGlvbi5sZWZ0KSB7DQogICAgICAgICAgICAgICAgJHZpZXdwb3J0Lm9ic2VydmF0b3Iubm90aWZ5KCdqcmFjX2Nyb3BfeCcsICR2aWV3cG9ydC5vYnNlcnZhdG9yLmNyb3BfcG9zaXRpb25feCgpKTsNCiAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICBpZiAodWkucG9zaXRpb24udG9wICE9IHVpLm9yaWdpbmFsUG9zaXRpb24udG9wKSB7DQogICAgICAgICAgICAgICAgJHZpZXdwb3J0Lm9ic2VydmF0b3Iubm90aWZ5KCdqcmFjX2Nyb3BfeScsICR2aWV3cG9ydC5vYnNlcnZhdG9yLmNyb3BfcG9zaXRpb25feSgpKTsNCiAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgIH0pOw0KDQogICAgICAgICAgLy8gQnVpbGQgdGhlIGNyb3AgZWxlbWVudA0KICAgICAgICAgIHZhciAkY3JvcCA9ICQoJzxkaXYgY2xhc3M9ImpyYWNfY3JvcCI+PGRpdiBjbGFzcz0ianJhY19jcm9wX2RyYWdfaGFuZGxlciI+PC9kaXY+PC9kaXY+JykNCiAgICAgICAgICAuY3NzKHsNCiAgICAgICAgICAgICd3aWR0aCc6IHNldHRpbmdzLmNyb3Bfd2lkdGgsDQogICAgICAgICAgICAnaGVpZ2h0Jzogc2V0dGluZ3MuY3JvcF9oZWlnaHQsDQogICAgICAgICAgICAnbGVmdCc6c2V0dGluZ3MuY3JvcF94K3NldHRpbmdzLnZpZXdwb3J0X2NvbnRlbnRfbGVmdCwNCiAgICAgICAgICAgICd0b3AnOnNldHRpbmdzLmNyb3BfeStzZXR0aW5ncy52aWV3cG9ydF9jb250ZW50X3RvcA0KICAgICAgICAgIH0pLmRyYWdnYWJsZSh7DQogICAgICAgICAgICBjb250YWlubWVudDogJHZpZXdwb3J0LA0KICAgICAgICAgICAgaGFuZGxlOiAnZGl2LmpyYWNfY3JvcF9kcmFnX2hhbmRsZXInLA0KICAgICAgICAgICAgZHJhZzogZnVuY3Rpb24oZXZlbnQsIHVpKSB7DQogICAgICAgICAgICAgIGlmICh1aS5wb3NpdGlvbi5sZWZ0ICE9IHVpLm9yaWdpbmFsUG9zaXRpb24ubGVmdCkgew0KICAgICAgICAgICAgICAgICR2aWV3cG9ydC5vYnNlcnZhdG9yLm5vdGlmeSgnanJhY19jcm9wX3gnLCAkdmlld3BvcnQub2JzZXJ2YXRvci5jcm9wX3Bvc2l0aW9uX3goKSk7DQogICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgaWYgKHVpLnBvc2l0aW9uLnRvcCAhPSB1aS5vcmlnaW5hbFBvc2l0aW9uLnRvcCkgew0KICAgICAgICAgICAgICAgICR2aWV3cG9ydC5vYnNlcnZhdG9yLm5vdGlmeSgnanJhY19jcm9wX3knLCAkdmlld3BvcnQub2JzZXJ2YXRvci5jcm9wX3Bvc2l0aW9uX3koKSk7DQogICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICB9KTsNCiAgICAgICAgICBpZiAoc2V0dGluZ3MuY3JvcF9yZXNpemUpIHsNCiAgICAgICAgICAgICRjcm9wLnJlc2l6YWJsZSh7DQogICAgICAgICAgICAgIGNvbnRhaW5tZW50OiAkdmlld3BvcnQsDQogICAgICAgICAgICAgIGFzcGVjdFJhdGlvOiBzZXR0aW5ncy5jcm9wX2FzcGVjdF9yYXRpbywNCiAgICAgICAgICAgICAgcmVzaXplOiBmdW5jdGlvbihldmVudCwgdWkpIHsNCiAgICAgICAgICAgICAgICBpZiAodWkuc2l6ZS53aWR0aCAhPSB1aS5vcmlnaW5hbFNpemUud2lkdGgpIHsNCiAgICAgICAgICAgICAgICAgICR2aWV3cG9ydC5vYnNlcnZhdG9yLm5vdGlmeSgnanJhY19jcm9wX3dpZHRoJywgJGNyb3Aud2lkdGgoKSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGlmICh1aS5zaXplLmhlaWdodCAhPSB1aS5vcmlnaW5hbFNpemUuaGVpZ2h0KSB7DQogICAgICAgICAgICAgICAgICAkdmlld3BvcnQub2JzZXJ2YXRvci5ub3RpZnkoJ2pyYWNfY3JvcF9oZWlnaHQnLCAkY3JvcC5oZWlnaHQoKSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9KQ0KICAgICAgICAgIH0NCiAgICAgICAgICAkdmlld3BvcnQuYXBwZW5kKCRjcm9wKTsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vIEV4dGVuZCB2aWV3cG9ydCB3aXRjaCB1c2VmdWxsIG9iamVjdHMgYXMgaXQgd2lsbCBiZSBleHBvc2VkIHRvIHVzZXINCiAgICAgICAgLy8gZnVuY3Rpb25zIGludGVyZmFjZQ0KICAgICAgICAkLmV4dGVuZCgkdmlld3BvcnQsIHsNCiAgICAgICAgICAkY29udGFpbmVyOiAkY29udGFpbmVyLA0KICAgICAgICAgICRpbWFnZTogJGltYWdlLA0KICAgICAgICAgICRjcm9wOiAkY3JvcCwNCiAgICAgICAgICAkem9vbV93aWRnZXQ6ICR6b29tX3dpZGdldCwNCiAgICAgICAgICAvLyBMZXQgbWUgaW50cm9kdWNlIHRoZSBmb2xsb3dpbmcgVGVybWluYXRvcidzIGZyaWVuZCB3aGljaCBoYW5kbGUgdGhlDQogICAgICAgICAgLy8gY3JlYXRpb24gb2YgdGhlIHZpZXdwb3J0IGV2ZW50cy4NCiAgICAgICAgICBvYnNlcnZhdG9yOiB7DQogICAgICAgICAgICBpdGVtczoge30sDQogICAgICAgICAgICAvLyBSZWdpc3RlciBhbiBldmVudCB3aXRoIGEgZ2l2ZW4gZWxlbWVudA0KICAgICAgICAgICAgcmVnaXN0ZXI6IGZ1bmN0aW9uKGV2ZW50X25hbWUsIGVsZW1lbnQsIG9uZXZlbnRfY2FsbGJhY2spIHsNCiAgICAgICAgICAgICAgaWYgKGV2ZW50X25hbWUgJiYgZWxlbWVudCkgew0KICAgICAgICAgICAgICAgIHRoaXMuaXRlbXNbZXZlbnRfbmFtZV0gPSB7DQogICAgICAgICAgICAgICAgICBlbGVtZW50OiBlbGVtZW50LA0KICAgICAgICAgICAgICAgICAgY2FsbGJhY2s6IG9uZXZlbnRfY2FsbGJhY2sNCiAgICAgICAgICAgICAgICB9Ow0KICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgLy8gVW5yZWdpc3RlciBhbiBldmVudA0KICAgICAgICAgICAgdW5yZWdpc3RlcjogZnVuY3Rpb24oZXZlbnRfbmFtZSkgew0KICAgICAgICAgICAgICBkZWxldGUgdGhpcy5pdGVtc1tldmVudF9uYW1lXTsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICAvLyBUcmlnZ2VyIGFuIGV2ZW50IGFuZCBvcHRpb25hbGx5IHN1cHBseSBhIHZhbHVlDQogICAgICAgICAgICBub3RpZnk6IGZ1bmN0aW9uKGV2ZW50X25hbWUsIHZhbHVlKSB7DQogICAgICAgICAgICAgIGlmICh0aGlzLml0ZW1zW2V2ZW50X25hbWVdKSB7DQogICAgICAgICAgICAgICAgdmFyIGVsZW1lbnQgPSB0aGlzLml0ZW1zW2V2ZW50X25hbWVdLmVsZW1lbnQ7DQogICAgICAgICAgICAgICAgdmFyIG9uZXZlbnRfY2FsbGJhY2sgPSB0aGlzLml0ZW1zW2V2ZW50X25hbWVdLmNhbGxiYWNrOw0KICAgICAgICAgICAgICAgIGVsZW1lbnQudHJpZ2dlcihldmVudF9uYW1lLFskdmlld3BvcnQsIHZhbHVlXSk7DQogICAgICAgICAgICAgICAgaWYgKCQuaXNGdW5jdGlvbihvbmV2ZW50X2NhbGxiYWNrKSkgew0KICAgICAgICAgICAgICAgICAgb25ldmVudF9jYWxsYmFjay5jYWxsKCR2aWV3cG9ydCwgZXZlbnRfbmFtZSwgZWxlbWVudCwgdmFsdWUpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAkaW1hZ2UudHJpZ2dlcignanJhY19ldmVudHMnLFskdmlld3BvcnRdKTsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBub3RpZnlfYWxsOiBmdW5jdGlvbigpIHsNCiAgICAgICAgICAgICAgdGhpcy5ub3RpZnkoJ2pyYWNfY3JvcF94JywgdGhpcy5jcm9wX3Bvc2l0aW9uX3goKSk7DQogICAgICAgICAgICAgIHRoaXMubm90aWZ5KCdqcmFjX2Nyb3BfeScsIHRoaXMuY3JvcF9wb3NpdGlvbl95KCkpOw0KICAgICAgICAgICAgICB0aGlzLm5vdGlmeSgnanJhY19jcm9wX3dpZHRoJywgJGNyb3Aud2lkdGgoKSk7DQogICAgICAgICAgICAgIHRoaXMubm90aWZ5KCdqcmFjX2Nyb3BfaGVpZ2h0JywgJGNyb3AuaGVpZ2h0KCkpOw0KICAgICAgICAgICAgICB0aGlzLm5vdGlmeSgnanJhY19pbWFnZV93aWR0aCcsICRpbWFnZS53aWR0aCgpKTsNCiAgICAgICAgICAgICAgdGhpcy5ub3RpZnkoJ2pyYWNfaW1hZ2VfaGVpZ2h0JywgJGltYWdlLmhlaWdodCgpKTsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICAvLyBSZXR1cm4gY3JvcCB4IHBvc2l0aW9uIHJlbGF0aXZlIHRvICRpbWFnZQ0KICAgICAgICAgICAgY3JvcF9wb3NpdGlvbl94OiBmdW5jdGlvbigpIHsNCiAgICAgICAgICAgICAgcmV0dXJuICRjcm9wLnBvc2l0aW9uKCkubGVmdCAtICRpbWFnZS5wb3NpdGlvbigpLmxlZnQ7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgLy8gUmV0dXJuIGNyb3AgeSBwb3NpdGlvbiByZWxhdGl2ZSB0byAkaW1hZ2UNCiAgICAgICAgICAgIGNyb3BfcG9zaXRpb25feTogZnVuY3Rpb24oKSB7DQogICAgICAgICAgICAgIHJldHVybiAkY3JvcC5wb3NpdGlvbigpLnRvcCAtICRpbWFnZS5wb3NpdGlvbigpLnRvcDsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICAvLyBEb2VzIHRoZSBjcm9wIGlzIGNvbXBsZXRlbHkgaW5zaWRlIHRoZSBpbWFnZT8NCiAgICAgICAgICAgIGNyb3BfY29uc2lzdGVudDogZnVuY3Rpb24oKSB7DQogICAgICAgICAgICAgIHJldHVybiB0aGlzLmNyb3BfcG9zaXRpb25feCgpPj0wICYmIHRoaXMuY3JvcF9wb3NpdGlvbl95KCk+PTANCiAgICAgICAgICAgICAgJiYgdGhpcy5jcm9wX3Bvc2l0aW9uX3goKSArICRjcm9wLndpZHRoKCk8PSRpbWFnZS53aWR0aCgpDQogICAgICAgICAgICAgICYmIHRoaXMuY3JvcF9wb3NpdGlvbl95KCkgKyAkY3JvcC5oZWlnaHQoKTw9JGltYWdlLmhlaWdodCgpOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIC8vIFNldCBhIHByb3BlcnR5ICh3aGljaCBoaXMgbmFtZSBpcyBvbmUgb2YgdGhlIGV2ZW50KSB3aXRoIGEgZ2l2ZW4NCiAgICAgICAgICAgIC8vIHZhbHVlIHRoZW4gbm90aWZ5IHRoaXMgb3BlcmF0aW9uDQogICAgICAgICAgICBzZXRfcHJvcGVydHk6IGZ1bmN0aW9uKHRoYXQsIHZhbHVlKSB7DQogICAgICAgICAgICAgIHZhbHVlID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICBpZiAoaXNOYU4odmFsdWUpKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgIHN3aXRjaCAodGhhdCkgew0KICAgICAgICAgICAgICAgIGNhc2UgJ2pyYWNfY3JvcF94JzoNCiAgICAgICAgICAgICAgICAgICRjcm9wLmNzcygnbGVmdCcsdmFsdWUgKyAkaW1hZ2UucG9zaXRpb24oKS5sZWZ0KTsNCiAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgJ2pyYWNfY3JvcF95JzoNCiAgICAgICAgICAgICAgICAgICRjcm9wLmNzcygndG9wJyx2YWx1ZSArICRpbWFnZS5wb3NpdGlvbigpLnRvcCk7DQogICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICdqcmFjX2Nyb3Bfd2lkdGgnOg0KICAgICAgICAgICAgICAgICAgJGNyb3Aud2lkdGgodmFsdWUpOw0KICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAnanJhY19jcm9wX2hlaWdodCc6DQogICAgICAgICAgICAgICAgICAkY3JvcC5oZWlnaHQodmFsdWUpOw0KICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAnanJhY19pbWFnZV93aWR0aCc6DQogICAgICAgICAgICAgICAgICBpZiAoJGltYWdlLnNjYWxlX3Byb3BvcnRpb25fbG9ja2VkKSB7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbWFnZV9oZWlnaHQgPSBNYXRoLnJvdW5kKCRpbWFnZS5oZWlnaHQoKSAqIHZhbHVlIC8gJGltYWdlLndpZHRoKCkpOw0KICAgICAgICAgICAgICAgICAgICAkaW1hZ2UuaGVpZ2h0KGltYWdlX2hlaWdodCk7DQogICAgICAgICAgICAgICAgICAgIHRoaXMubm90aWZ5KCdqcmFjX2ltYWdlX2hlaWdodCcsIGltYWdlX2hlaWdodCk7DQogICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAkaW1hZ2Uud2lkdGgodmFsdWUpOw0KICAgICAgICAgICAgICAgICAgJHpvb21fd2lkZ2V0LnNsaWRlcigndmFsdWUnLCB2YWx1ZSk7DQogICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICdqcmFjX2ltYWdlX2hlaWdodCc6DQogICAgICAgICAgICAgICAgICBpZiAoJGltYWdlLnNjYWxlX3Byb3BvcnRpb25fbG9ja2VkKSB7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbWFnZV93aWR0aCA9IE1hdGgucm91bmQoJGltYWdlLndpZHRoKCkgKiB2YWx1ZSAvICRpbWFnZS5oZWlnaHQoKSk7DQogICAgICAgICAgICAgICAgICAgICRpbWFnZS53aWR0aChpbWFnZV93aWR0aCk7DQogICAgICAgICAgICAgICAgICAgIHRoaXMubm90aWZ5KCdqcmFjX2ltYWdlX3dpZHRoJywgaW1hZ2Vfd2lkdGgpOw0KICAgICAgICAgICAgICAgICAgICAkem9vbV93aWRnZXQuc2xpZGVyKCd2YWx1ZScsIGltYWdlX3dpZHRoKTsNCiAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICRpbWFnZS5oZWlnaHQodmFsdWUpOw0KICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgdGhpcy5ub3RpZnkodGhhdCwgdmFsdWUpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgIH0NCiAgICAgICAgfSk7DQoNCiAgICAgICAgLy8gSGlkZSB0aGUgbG9hZGluZyBub3RpY2UNCiAgICAgICAgJGxvYWRpbmcuaGlkZSgpOw0KICAgICAgICAkbG9hZGluZy5yZW1vdmUoKTsNCg0KICAgICAgICAvLyBGaW5hbGx5IGRpc3BsYXkgdGhlIGltYWdlDQogICAgICAgICRpbWFnZS5zaG93KCk7DQoNCiAgICAgICAgLy8gVHJpZ2dlciB0aGUgdmlld3BvcnRfb25sb2FkIGNhbGxiYWNrDQogICAgICAgIGlmICgkLmlzRnVuY3Rpb24oc2V0dGluZ3Mudmlld3BvcnRfb25sb2FkKSkgew0KICAgICAgICAgIHNldHRpbmdzLnZpZXdwb3J0X29ubG9hZC5jYWxsKCR2aWV3cG9ydCk7DQogICAgICAgICAgJHZpZXdwb3J0Lm9ic2VydmF0b3Iubm90aWZ5X2FsbCgpOw0KICAgICAgICB9DQogICAgICB9Ow0KDQogICAgICAvLyBXaGVuIGFuIGltYWdlIGlzIHVzaW5nIGFuIHNyYyBpbWFnZSAiZGF0YSIgVVJMIHNjaGVtZSB0aGVuIGl0IGFwcGVhciANCiAgICAgIC8vIHRoYXQgdGhlIGltYWdlIGxvYWQgZXZlbnQgbmV2ZXIgZ2V0IGZpcmVkLiBUaGVuIGZpcmUgZGlyZWN0bHkNCiAgICAgIC8vIGltYWdlX2xvYWRfaGFuZGxlcigpIGluIHRoYXQgY2FzZS4NCiAgICAgIHZhciBzcmMgPSAkaW1hZ2UuYXR0cignc3JjJyk7DQogICAgICBpZiAoL15kYXRhOmltYWdlLy50ZXN0KHNyYykpIHsNCiAgICAgICAgIGltYWdlX2xvYWRfaGFuZGxlcigpOw0KICAgICAgfQ0KICAgICAgZWxzZSB7DQogICAgICAgIHNyYyA9IHNyYyArIChzcmMuc2VhcmNoKC9cPy8pPDA/Jz8nOicmJykgKyAnanJhY3JhbmRvbT0nICsgKG5ldyBEYXRlKCkpLmdldFRpbWUoKTsNCiAgICAgICAgJCgnPGltZz4nKS5hdHRyKCdzcmMnLCBzcmMpLmxvYWQoaW1hZ2VfbG9hZF9oYW5kbGVyKTsNCiAgICAgIH0NCiAgICB9KTsNCiAgfTsNCn0pKCBqUXVlcnkgKTsNCg==]]></data>
	</file>
	<file>
		<filename>/js/jrac/style.jrac.css</filename>
		<isdir>0</isdir>
		<data><![CDATA[LyogalF1ZXJ5IFJlc2l6ZSBBbmQgQ3JvcCAoanJhYykgKi8NCg0KLmpyYWNfY29udGFpbmVyIHt9DQoNCi5qcmFjX3ZpZXdwb3J0IHsNCiAgcG9zaXRpb246IHJlbGF0aXZlOw0KICBvdmVyZmxvdzogaGlkZGVuOw0KICBib3JkZXI6MXB4IHNvbGlkICNjY2M7DQogIHdpZHRoOjY0MHB4Ow0KICBoZWlnaHQ6NDgwcHg7DQogIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnaW1hZ2VzL3ZpZXdwb3J0X2JhY2tncm91bmQuZ2lmJyk7DQp9DQoNCi5qcmFjX2xvYWRpbmcgew0KICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2ltYWdlcy9sb2FkaW5nLmdpZicpOw0KICBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7DQogIGJhY2tncm91bmQtcG9zaXRpb246Y2VudGVyOw0KICBwb3NpdGlvbjogYWJzb2x1dGU7DQogIHRvcDowO2xlZnQ6MDtyaWdodDowO2JvdHRvbTowOw0KfQ0KDQouanJhY19jcm9wIHsNCiAgcG9zaXRpb246IGFic29sdXRlOw0KICBib3JkZXI6IDFweCBzb2xpZCB5ZWxsb3c7DQp9DQoNCi5qcmFjX2Nyb3BfZHJhZ19oYW5kbGVyIHsNCiAgcG9zaXRpb246IGFic29sdXRlOw0KICB0b3A6MDtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MDsNCiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsNCiAgb3BhY2l0eTogLjE7IC8qIEZYL09wZXJhL1NhZmFyaS9DaHJvbWUgKi8NCiAgLW1zLWZpbHRlcjogImFscGhhKG9wYWNpdHk9MTApIjsgLyogSUU4ICovDQogIGZpbHRlcjogYWxwaGEob3BhY2l0eSA9IDEwKTsgLyogSUU2L0lFNyAqLw0KfQ0KDQouanJhY192aWV3cG9ydCBpbWcsIC5qcmFjX2Nyb3BfZHJhZ19oYW5kbGVyIHsNCiAgY3Vyc29yOiBwb2ludGVyOw0KfQ0K]]></data>
	</file>
	<file>
		<filename>/lang</filename>
		<isdir>1</isdir>
	</file>
	<file>
		<filename>/lang/en_US.php</filename>
		<isdir>0</isdir>
		<data><![CDATA[PD9waHAKI0EKJGxhbmdbJ2FkbWluZGVzY3JpcHRpb24nXSA9ICdTdG9yZSB1cGxvYWRzIGluIEFXUyBTMyc7CiRsYW5nWydhZGRfYnVja2V0J10gPSAnRGVmaW5lIE5ldyBCdWNrZXQnOwokbGFuZ1snYXNrX3VuaW5zdGFsbCddID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byB1bmluc3RhbGwgdGhlIEFXUyBTMyBVcGxvYWRzIG1vZHVsZT8nOwokbGFuZ1snYWRtaW5fc2F2ZSddID0gJ1NhdmUnOwokbGFuZ1snYWRtaW5fc2V0dGluZ3MnXSA9ICdBZG1pbic7CiRsYW5nWydhbGxvd2VkJ10gPSAnQWxsb3dlZCBFeHRlbnNpb25zJzsKJGxhbmdbJ2F1dGhvcl9sYWJlbCddID0gJ1Bvc3RlZCBieTonOwojQgokbGFuZ1snYmFja190b19idWNrZXRzJ10gPSAnQmFjayB0byBCdWNrZXRzJzsKJGxhbmdbJ2Jyb3dzZSddID0gJ0Jyb3dzZSc7CiRsYW5nWydidWNrZXRfYWRkZWQnXSA9ICdCdWNrZXQgYWRkZWQgc3VjY2Vzc2Z1bGx5JzsKJGxhbmdbJ2J1Y2tldF9kZWxldGVkJ10gPSAnQnVja2V0IGRlbGV0ZWQgc3VjY2Vzc2Z1bGx5JzsKJGxhbmdbJ2J1Y2tldF9pZCddID0gJ0J1Y2tldCBJRCc7CiRsYW5nWydidWNrZXRfbmFtZSddID0gJ0J1Y2tldCBOYW1lJzsKJGxhbmdbJ2J1Y2tldF9zZXRfZGVmYXVsdCddID0gJ0RlZmF1bHQgYnVja2V0IHVwZGF0ZWQnOwokbGFuZ1snYnVja2V0X3VwZGF0ZWQnXSA9ICdCdWNrZXQgdXBkYXRlZCBzdWNjZXNzZnVsbHknOwojQwokbGFuZ1snY2FuY2VsJ10gPSAnQ2FuY2VsJzsKJGxhbmdbJ2NhcHRjaGFfdGl0bGUnXSA9ICdFbnRlciB0aGUgdGV4dCBkaXNwbGF5ZWQgaW4gdGhpcyBpbWFnZSc7CiRsYW5nWydjYXRlZ29yeV9sYWJlbCddID0gJ0NhdGVnb3J5Oic7CiRsYW5nWydjaG9vc2VfZmlsZSddID0gJ0Nob29zZSBmaWxlJzsKJGxhbmdbJ2NvbmZpZyddID0gJ0FXUyBTMyBNb2R1bGUgQ29uZmlndXJhdGlvbic7CiRsYW5nWydjb25maXJtX2RlbGV0ZV9idWNrZXQnXSA9ICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoaXMgYnVja2V0IGNvbmZpZ3VyYXRpb24/IFRoaXMgd2lsbCBub3QgZGVsZXRlIHRoZSBhY3R1YWwgUzMgYnVja2V0IG9yIGl0cyBjb250ZW50cy4nOwokbGFuZ1snY3VzdG9tX3VybCddID0gJ0N1c3RvbSBVUkwnOwojRAokbGFuZ1snZGF0ZSddID0gJ0RhdGUnOwokbGFuZ1snZGVsZXRlJ10gPSAnRGVsZXRlJzsKJGxhbmdbJ2RlbGV0ZXNlbGVjdGVkJ10gPSAnRGVsZXRlIHRoZSBzZWxlY3RlZCBmaWxlcy9kaXJlY3Rvcmllcyc7CiRsYW5nWydkZWxldGVzZWxlY3RlZGNhbmNlbGxlZCddID0gJ0RlbGV0aW9uIG9mIHNlbGVjdGVkIGZpbGVzIGNhbmNlbGVkJzsKJGxhbmdbJ2RlbGV0ZXN1Y2Nlc3MnXSA9ICdJdGVtcyBzdWNjZXNzZnVsbHkgZGVsZXRlZCc7CiNFCiRsYW5nWydlZGl0J10gPSAnRWRpdCc7CiRsYW5nWydlZGl0X2J1Y2tldCddID0gJ0VkaXQgQnVja2V0JzsKJGxhbmdbJ2Vycm9yJ10gPSAnRXJyb3InOwokbGFuZ1snZXJyb3JfYnVja2V0X25hbWVfcmVxdWlyZWQnXSA9ICdCdWNrZXQgbmFtZSBpcyByZXF1aXJlZCc7CiRsYW5nWydlcnJvcl9idWNrZXRfbm90X2ZvdW5kJ10gPSAnQnVja2V0IG5vdCBmb3VuZCc7CiRsYW5nWydlcnJvcl9jYXB0Y2hhbWlzbWF0Y2gnXSA9ICdDYXB0Y2hhIHRleHQgZW50ZXJlZCBkaWQgbm90IG1hdGNoIHRoZSBpbWFnZSBkaXNwbGF5ZWQnOwokbGFuZ1snZXJyb3JfcmVnaW9uX3JlcXVpcmVkJ10gPSAnUmVnaW9uIGlzIHJlcXVpcmVkJzsKJGxhbmdbJ2Vycm9yX3Nka19jcmVkZW50aWFscyddID0gJ0FXUyBjcmVkZW50aWFscyBhcmUgbm90IGNvbmZpZ3VyZWQgaW4gdGhlICVzIG1vZHVsZS4gUGxlYXNlIGNvbmZpZ3VyZSB0aGVtIGZpcnN0Lic7CiRsYW5nWydlcnJvcl9zZXR1cCddID0gJ1BsZWFzZSBjb21wbGV0ZSB0aGUgQVdTIFNESyBNb2R1bGUgU2V0dXAgPGEgaHJlZj0iJXMiPmhlcmU8L2E+JzsKJGxhbmdbJ2V4cGlyeV9pbnRlcnZhbCddID0gJ1JlbW92ZSBjYWNoZSBmaWxlcyB0aGF0IGFyZSBvbGRlciB0aGFuIHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIG1pbnV0ZXMnOwojRgokbGFuZ1snZmllbGRkZWZfQVdTUzNGaWxlJ10gPSAnQVdTIFMzIEZpbGUnOwokbGFuZ1snZmlsZSddID0gJ0ZpbGUnOwokbGFuZ1snZmllbGRkZWZfYWxsb3dfaGVscCddID0gJ1NwZWNpZnkgYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBmaWxlIGV4dGVuc2lvbnMgdGhhdCBhcmUgYWxsb3dlZC4gRm9yIGV4YW1wbGU6IHBkZixnaWYsanBlZyxqcGcgKGtlZXAgbG93ZXJjYXNlKSc7CiRsYW5nWydmaXJzdHBhZ2UnXSA9ICcmbHQ7Jmx0Oyc7CiRsYW5nWydmcmllbmRseW5hbWUnXSA9ICdBV1MgUzMnOwokbGFuZ1snZnJvbnRlbmRfc2V0dGluZ3MnXSA9ICdGcm9udGVuZCc7CiNHCiRsYW5nWydnZXRzdGFydGVkJ10gPSAnR2V0IFN0YXJ0ZWQgd2l0aCBBV1MgUzMgTW9kdWxlJzsKI0gKJGxhbmdbJ2hlbHBfYnVja2V0X25hbWUnXSA9ICdUaGUgbmFtZSBvZiB5b3VyIFMzIGJ1Y2tldC4gVGhpcyBtb2R1bGUgd2lsbCBub3QgY3JlYXRlIGJ1Y2tldHMuIFlvdSBtdXN0IGNyZWF0ZSB0aGUgYnVja2V0IGluIHlvdXIgQVdTIGNvbnNvbGUuJzsKJGxhbmdbJ2hlbHBfY3VzdG9tX3VybCddID0gJ0N1c3RvbSBVUkwgY2FuIGJlIGEgQ2xvdWRGcm9udCBkaXN0cmlidXRpb24gVVJMIG9yIGFueSBVUkwgbWFwcGVkIHRvIHlvdXIgYnVja2V0Lic7CiRsYW5nWydoZWxwX29wdF9leHBpcnlfaW50ZXJ2YWwnXSA9ICdTcGVjaWZ5IHRoZSBhbW91bnQgb2YgdGltZSAoaW4gbWludXRlcykgdGhhdCBicm93c2VycyBzaG91bGQgY2FjaGUgcXVlcmllcyBmb3IuIFNldHRpbmcgdGhpcyB2YWx1ZSB0byAwIGRpc2FibGVzIHRoZSBmdW5jdGlvbmFsaXR5LiBJbiBtb3N0IGNpcmN1bXN0YW5jZXMgeW91IHNob3VsZCBzcGVjaWZ5IGEgdmFsdWUgZ3JlYXRlciB0aGFuIDMwJzsKJGxhbmdbJ2hlbHBfcGFyYW1fYWN0aW9uJ10gPSAnCiAgICBPdmVycmlkZSB0aGUgZGVmYXVsdCBhY3Rpb24uIFBvc3NpYmxlIHZhbHVlcyBhcmU6CiAgICA8dWw+CiAgICAgICAgPGxpPiZxdW90O2RlZmF1bHQmcXVvdDsgLSBkaXNwbGF5cyB0aGUgc3VtbWFyeSB2aWV3LjwvbGk+CiAgICAgICAgPGxpPiZxdW90O2RldGFpbCZxdW90OyAtIGRpc3BsYXlzIGEgc3BlY2lmaWVkIGVudHJ5IGluIGRldGFpbCBtb2RlLiAobXVzdCBiZSB1c2VkIHRvZ2V0aGVyIHdpdGggPGk+cHJlZml4PC9pPik8L2xpPgogICAgICAgIDxsaT4mcXVvdDt1cGxvYWQmcXVvdDsgLSBkaXNwbGF5cyB0aGUgdXBsb2FkIGZvcm0gKGNhbiBiZSB1c2VkIHdpdGggPGk+cHJlZml4PC9pPiBmb3IgdXBsb2FkIGluIGEgc3BlY2lmaWMgbG9jYXRpb24pPC9lbT48L2xpPgogICAgPC91bD4nOwokbGFuZ1snaGVscF9wYXJhbV9idWNrZXQnXSA9ICdUaGUgSUQgb2YgdGhlIGJ1Y2tldCB0byB1c2UuIElmIG5vdCBzcGVjaWZpZWQsIHRoZSBkZWZhdWx0IGJ1Y2tldCBpcyB1c2VkLiBFeGFtcGxlOiBidWNrZXQ9IjMiJzsKJGxhbmdbJ2hlbHBfcGFyYW1fcHJlZml4J10gPSAnQSBzdHJpbmcgb2YgY2hhcmFjdGVycyB0aGF0IGNhbiBiZSB0aGUgY29tcGxldGUgcGF0aCBpbiBmcm9udCBvZiB0aGUgb2JqZWN0IG5hbWUuIFByb2plY3QvV29yZEZpbGVzLy4uLic7CiRsYW5nWydoZWxwX3BhcmFtX2RldGFpbHRlbXBsYXRlJ10gPSAnVGhlIGRldGFpbCB0ZW1wbGF0ZSB5b3Ugd2lzaCB0byB1c2UuJzsKJGxhbmdbJ2hlbHBfcGFyYW1fc3VtbWFyeXRlbXBsYXRlJ10gPSAnVGhlIHN1bW1hcnkgdGVtcGxhdGUgeW91IHdpc2ggdG8gdXNlLic7CiRsYW5nWydoZWxwX3BhcmFtX3BhZ2VsaW1pdCddID0gJ01heGltdW0gbnVtYmVyIG9mIGl0ZW1zIHRvIGRpc3BsYXkgKHBlciBwYWdlKS4gSWYgdGhpcyBwYXJhbWV0ZXIgaXMgbm90IHN1cHBsaWVkIGFsbCBtYXRjaGluZyBpdGVtcyB3aWxsIGJlIGRpc3BsYXllZC4nOwokbGFuZ1snaGVscF9wYXJhbV9kZXRhaWxwYWdlJ10gPSAnUGFnZSB0byBkaXNwbGF5IGl0ZW0gZGV0YWlscyBpbi4gTXVzdCBiZSBhIHBhZ2UgYWxpYXMvaWQuJzsKJGxhbmdbJ2hlbHBfcGFyYW1fc3VtbWFyeXBhZ2UnXSA9ICdQYWdlIHRvIGRpc3BsYXkgaXRlbSBzdW1tYXJ5IGluLiBNdXN0IGJlIGEgcGFnZSBhbGlhcy9pZC4nOwojSQokbGFuZ1snaW5mb19idWNrZXRfdXNhZ2UnXSA9ICdVc2Uge0FXU1MzfSB0byBpbnZva2UgdGhlIGRlZmF1bHQgYnVja2V0LCBvciB7QVdTUzMgYnVja2V0PSJJRCJ9IHRvIHRhcmdldCBhIHNwZWNpZmljIGJ1Y2tldC4gVGhlIGJ1Y2tldCBJRCBpcyBzaG93biBpbiB0aGUgdGFibGUgYWJvdmUuJzsKI0wKJGxhbmdbJ2xhYmVsX2RlZmF1bHQnXSA9ICdEZWZhdWx0JzsKJGxhbmdbJ2xhYmVsX21pbWUnXSA9ICdNaW1lJzsKJGxhbmdbJ2xhYmVsX3NpemUnXSA9ICdTaXplJzsKJGxhbmdbJ2xhYmVsX3VybCddID0gJ1VybCc7CiRsYW5nWydsYWJlbF91cmxfb3JpZ2luYWwnXSA9ICdPcmlnaW5hbCBVcmwnOwokbGFuZ1snbGFiZWxfdXJsX3ByZXNpZ25lZCddID0gJ1ByZXNpZ25lZCBVcmwnOwokbGFuZ1snbGFzdF9yZWZyZXNoZWQnXSA9ICdMYXN0IHJlZnJlc2hlZCc7CiRsYW5nWydsYXN0cGFnZSddID0gJyZndDsmZ3Q7JzsKJGxhbmdbJ2xpbmUnXSA9ICdMaW5lJzsKI00KJGxhbmdbJ21lc3NhZ2UnXSA9ICdNZXNzYWdlJzsKJGxhbmdbJ21zZ192cmZ5X2ludGVncml0eXZlcmlmaWVkJ10gPSAnQ29ubmVjdGlvbiBFc3RhYmxpc2hlZCc7CiRsYW5nWydtc2dfdnJmeV9ub2Nvbm4nXSA9ICdDb25uZWN0aW9uIE5vdCBFc3RhYmxpc2hlZCc7CiNOCiRsYW5nWyduZXh0cGFnZSddID0gJyZndDsnOwokbGFuZ1snbm9fYnVja2V0c19kZWZpbmVkJ10gPSAnTm8gYnVja2V0cyBoYXZlIGJlZW4gZGVmaW5lZCB5ZXQuIENsaWNrICJEZWZpbmUgTmV3IEJ1Y2tldCIgdG8gYWRkIHlvdXIgZmlyc3QgUzMgYnVja2V0Lic7CiNQCiRsYW5nWydwYWdlJ10gPSAnUGFnZSc7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ0FXUyBTMyBNb2R1bGUgd2FzIGluc3RhbGxlZCc7CiRsYW5nWydwcmV2cGFnZSddID0gJyZsdDsnOwokbGFuZ1sncHJvbXB0X2NvcHknXSA9ICdDb3B5IG9uZSBvciBtb3JlIEl0ZW1zJzsKJGxhbmdbJ3Byb21wdF9jdXN0b21fdXJsJ10gPSAnQ3VzdG9tIFVSTCc7CiRsYW5nWydwcm9tcHRfZGV0YWlscGFnZSddID0gJ0RldGFpbCBwYWdlJzsKJGxhbmdbJ3Byb21wdF9kcm9wZmlsZXMnXSA9ICdEcm9wIGZpbGVzIGhlcmUgdG8gdXBsb2FkJzsKJGxhbmdbJ3Byb21wdF9lbWFpbCddID0gJ0VtYWlsIEFkZHJlc3MnOwokbGFuZ1sncHJvbXB0X2dvJ10gPSAnR28nOwokbGFuZ1sncHJvbXB0X2l0ZW1zZGlzcGxheWVkJ10gPSAnTnVtYmVyIG9mIGl0ZW1zIHRvIGRpc3BsYXkgaW4gdGhlIGFkbWluIHBhZ2UnOwokbGFuZ1sncHJvbXB0X21vdmUnXSA9ICdNb3ZlIEl0ZW1zIHRvIEFub3RoZXIgRGlyZWN0b3J5JzsKJGxhbmdbJ3Byb21wdF9vZiddID0gJ29mJzsKJGxhbmdbJ3Byb21wdF9wYWdlJ10gPSAnUGFnZSc7CiRsYW5nWydwcm9tcHRfcGFnZWxpbWl0J10gPSAnUGFnZSBMaW1pdCc7CiRsYW5nWydwcm9tcHRfc3VtbWFyeXBhZ2UnXSA9ICdTdW1tYXJ5IHBhZ2UnOwojUgokbGFuZ1sncmVmcmVzaHN1Y2Nlc3MnXSA9ICdJdGVtcyBzdWNjZXNzZnVsbHkgcmVmcmVzaGVkJzsKJGxhbmdbJ3JlZ2lvbiddID0gJ1JlZ2lvbic7CiRsYW5nWydyZXF1aXJlZCddID0gJ1JlcXVpcmVkJzsKJGxhbmdbJ3JldHVybnRvbW9kdWxlJ10gPSAnUmV0dXJuIHRvIE1vZHVsZSc7CiRsYW5nWydyZXZpZXdzJ10gPSAnUmV2aWV3cyc7CiNTCiRsYW5nWydzZWxlY3RfcmVnaW9uJ10gPSAnU2VsZWN0IGEgUmVnaW9uJzsKJGxhbmdbJ3NldF9hc19kZWZhdWx0J10gPSAnU2V0IGFzIGRlZmF1bHQgYnVja2V0JzsKJGxhbmdbJ3N1Ym1pdCddID0gJ1N1Ym1pdCc7CiRsYW5nWydzb3JyeV9ub2ZpbGVzJ10gPSAnU29ycnksIHdlIGNvdWxkIG5vdCBmaW5kIGFueSBmaWxlcyc7CiRsYW5nWydzdWNjZXNzZnVsX3VwbG9hZCddID0gJ1lvdXIgZmlsZSB3YXMgc3VjY2Vzc2Z1bGx5IHVwbG9hZGVkLiBUaGUgZmlsZW5hbWUgdXNlZCB3YXMgJXMnOwojVAokbGFuZ1sndGFiX2J1Y2tldHMnXSA9ICdCdWNrZXRzJzsKJGxhbmdbJ3RpdGxlX2NoYW5nZWRpciddID0gJ0NoYW5nZSB3b3JraW5nIGRpcmVjdG9yeSB0byB0aGlzIGRpcmVjdG9yeSc7CiRsYW5nWyd0aXRsZV9jaGFuZ2V1cGRpciddID0gJ0dvIHRvIHRoZSBwYXJlbnQgZm9sZGVyJzsKJGxhbmdbJ3RpdGxlX2Ryb3B6b25lJ10gPSAnWW91IGNhbiBkcm9wIGZpbGVzIGhlcmUgZnJvbSB5b3VyIGZpbGUgbWFuYWdlciB0byBhdXRvbWF0aWNhbGx5IGJlZ2luIHVwbG9hZGluZyc7CiRsYW5nWyd0aXRsZV9yZWZyZXNoJ10gPSAnUmVmcmVzaCBDYWNoZWQgRGF0YSc7CiRsYW5nWyd0eXBlJ10gPSAnVHlwZSc7CiRsYW5nWyd0eXBlX0FXU1MzJ10gPSAnQVdTUzMnOwokbGFuZ1sndHlwZV9kZXRhaWwnXSA9ICdEZXRhaWwnOwokbGFuZ1sndHlwZV9zdW1tYXJ5J10gPSAnU3VtbWFyeSc7CiRsYW5nWyd0eXBlX1Jldmlld3MnXSA9ICdSZXZpZXdzJzsKJGxhbmdbJ3R5cGVfdXBsb2FkJ10gPSAnVXBsb2FkJzsKI1UKJGxhbmdbJ3VwbG9hZCddID0gJ1VwbG9hZCc7CiNWCiRsYW5nWydWQUxJREFUSU9OX0VSUk9SJ10gPSAnUGxlYXNlIHByb3ZpZGUgeW91ciBMb2cgRmlsZSBwYXRoJzsKI1cKJGxhbmdbJ3dhcm5fZGVsZXRlX2RpcmVjdG9yeSddID0gJ0EgZm9sZGVyIGlzIHNlbGVjdGVkIGZvciBkZWxldGlvbiwgYWxsIG9iamVjdHMgaW4gdGhlIGZvbGRlciB3aWxsIGJlIGRlbGV0ZWQuJzsKJGxhbmdbJ3dhcm5fZmlsZV9taXNzaW5nJ10gPSAnU2VsZWN0IGEgZmlsZSB0byB1cGxvYWQnOwokbGFuZ1snd2Fybl9maWxlX25vdF9hbGxvd2VkJ10gPSAnRmlsZXR5cGUgbm90IGFsbG93ZWQnOwo=]]></data>
	</file>
	<file>
		<filename>/lang/ext</filename>
		<isdir>1</isdir>
	</file>
	<file>
		<filename>/lib</filename>
		<isdir>1</isdir>
	</file>
	<file>
		<filename>/lib/class.bucket_query.php</filename>
		<isdir>0</isdir>
		<data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgU2VlIExJQ0VOU0UgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpuYW1lc3BhY2UgQVdTUzM7Cgp1c2UgQVdTUzNcdXRpbHM7CnVzZSBBV1NTREtcZW5jcnlwdDsKdXNlIEF3c1xFeGNlcHRpb25cQXdzRXhjZXB0aW9uOwoKZmluYWwgY2xhc3MgYnVja2V0X3F1ZXJ5CnsKICAgIHByaXZhdGUgJHMzQ2xpZW50ID0gbnVsbDsKICAgIHByaXZhdGUgJGJ1Y2tldCA9IG51bGw7CiAgICBwcml2YXRlICRfZGF0YSA9IFsKICAgICAgICAncHJlZml4JyA9PiBudWxsLAogICAgICAgICdidWNrZXQnID0+IG51bGwsCiAgICAgICAgJ2RlbGltaXRlcicgPT4gbnVsbCwKICAgICAgICAnbWF4a2V5cycgPT4gMTAwMCwKICAgICAgICAnc3RhcnRhZnRlcicgPT4gMCwKICAgICAgICAncmV0dXJuaWQnID0+IG51bGwsCiAgICAgICAgJ2RldGFpbHBhZ2UnID0+IG51bGwKICAgIF07CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRwYXJhbXMgPSBbXSkKICAgIHsKICAgICAgICAkbW9kID0gXGNtc191dGlsczo6Z2V0X21vZHVsZSgnQVdTUzMnKTsKCiAgICAgICAgZm9yZWFjaCAoJHBhcmFtcyBhcyAka2V5ID0+ICR2YWwpIHsKICAgICAgICAgICAgaWYgKCFhcnJheV9rZXlfZXhpc3RzKCRrZXksICR0aGlzLT5fZGF0YSkpIGNvbnRpbnVlOwogICAgICAgICAgICAkdGhpcy0+X2RhdGFbJGtleV0gPSAkdmFsOwogICAgICAgIH0KCiAgICAgICAgLy8gUmVzb2x2ZSBidWNrZXQ6IHBhcmFtc1snYnVja2V0J10gY2FuIGJlIGEgYnVja2V0X25hbWUgc3RyaW5nIG9yIGJ1Y2tldF9pZCBpbnQKICAgICAgICBpZiAoaXNzZXQoJHBhcmFtc1snYnVja2V0X29iaiddKSkgewogICAgICAgICAgICAkdGhpcy0+YnVja2V0ID0gJHBhcmFtc1snYnVja2V0X29iaiddOwogICAgICAgIH0gZWxzZWlmIChpc3NldCgkcGFyYW1zWydidWNrZXRfaWQnXSkpIHsKICAgICAgICAgICAgJHRoaXMtPmJ1Y2tldCA9ICRtb2QtPkdldEJ1Y2tldCgoaW50KSAkcGFyYW1zWydidWNrZXRfaWQnXSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJHRoaXMtPmJ1Y2tldCA9ICRtb2QtPkdldEJ1Y2tldCgpOwogICAgICAgIH0KCiAgICAgICAgaWYgKCR0aGlzLT5idWNrZXQpIHsKICAgICAgICAgICAgJHRoaXMtPl9kYXRhWydidWNrZXQnXSA9ICR0aGlzLT5idWNrZXQtPmJ1Y2tldF9uYW1lOwogICAgICAgICAgICAkdGhpcy0+czNDbGllbnQgPSB1dGlsczo6Z2V0UzNDbGllbnQoJHRoaXMtPmJ1Y2tldC0+cmVnaW9uKTsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIF9fZ2V0KCRrZXkpCiAgICB7CiAgICAgICAgaWYgKGlzc2V0KCR0aGlzLT5fZGF0YVska2V5XSkpIHJldHVybiAkdGhpcy0+X2RhdGFbJGtleV07CiAgICAgICAgcmV0dXJuIG51bGw7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIF9fc2V0KCRrZXksICR2YWwpCiAgICB7CiAgICAgICAgc3dpdGNoICgka2V5KSB7CiAgICAgICAgICAgIGNhc2UgJ1ByZWZpeCc6CiAgICAgICAgICAgIGNhc2UgJ0J1Y2tldCc6CiAgICAgICAgICAgIGNhc2UgJ0RlbGltaXRlcic6CiAgICAgICAgICAgIGNhc2UgJ01hcmtlcic6CiAgICAgICAgICAgIGNhc2UgJ0NvbnRpbnVhdGlvblRva2VuJzoKICAgICAgICAgICAgICAgIGlmICghaXNfbnVsbCgkdmFsKSkgJHZhbCA9IHRyaW0oJHZhbCk7CiAgICAgICAgICAgICAgICAkdGhpcy0+X2RhdGFbJGtleV0gPSAkdmFsOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgJ01heEtleXMnOgogICAgICAgICAgICAgICAgJHRoaXMtPl9kYXRhWyRrZXldID0gKGludCkgbWF4KDEsIG1pbigxMDAwLCAoaW50KSAkdmFsKSk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAnU3RhcnRBZnRlcic6CiAgICAgICAgICAgICAgICAkdGhpcy0+X2RhdGFbJGtleV0gPSAoaW50KSBtYXgoMCwgbWluKDEwMDAwMCwgKGludCkgJHZhbCkpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgJ3BhZ2Vjb3VudCc6CiAgICAgICAgICAgIGNhc2UgJ3BhZ2VudW0nOgogICAgICAgICAgICBjYXNlICdyZXR1cm5pZCc6CiAgICAgICAgICAgICAgICAkdGhpcy0+X2RhdGFbJGtleV0gPSAoaW50KSAkdmFsOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRCdWNrZXRPYmplY3QoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+YnVja2V0OwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiAmZXhlY3V0ZSgpCiAgICB7CiAgICAgICAgJGxpc3RpbmcgPSAkdGhpcy0+X2RhdGE7CgogICAgICAgIGlmICghJHRoaXMtPnMzQ2xpZW50IHx8IGlzX2FycmF5KCR0aGlzLT5zM0NsaWVudCkpIHsKICAgICAgICAgICAgJGxpc3RpbmdbJ2l0ZW1zJ10gPSBbXTsKICAgICAgICAgICAgJGxpc3RpbmdbJ3RvdGFsJ10gPSAwOwogICAgICAgICAgICAkbGlzdGluZ1snZGF0ZSddID0gdGltZSgpOwogICAgICAgICAgICByZXR1cm4gJGxpc3Rpbmc7CiAgICAgICAgfQoKICAgICAgICB0cnkgewogICAgICAgICAgICAkcXBhcm1zID0gW107CiAgICAgICAgICAgICRxcGFybXNbJ0J1Y2tldCddID0gJHRoaXMtPmJ1Y2tldC0+YnVja2V0X25hbWU7CiAgICAgICAgICAgICRxcGFybXNbJ0RlbGltaXRlciddID0gJy8nOwogICAgICAgICAgICAkcXBhcm1zWydQcmVmaXgnXSA9ICR0aGlzLT5wcmVmaXg7CgogICAgICAgICAgICAkcmVzdWx0UGFnaW5hdG9yID0gJHRoaXMtPnMzQ2xpZW50LT5nZXRQYWdpbmF0b3IoJ0xpc3RPYmplY3RzVjInLCAkcXBhcm1zKTsKICAgICAgICAgICAgJGxpc3RpbmdbJ2RhdGUnXSA9IHRpbWUoKTsKICAgICAgICAgICAgJGxpc3RpbmdbJ2l0ZW1zJ10gPSBbXTsKCiAgICAgICAgICAgIGZvcmVhY2ggKCRyZXN1bHRQYWdpbmF0b3IgYXMgJHJlc3VsdCkgewogICAgICAgICAgICAgICAgJGxpc3RpbmdbJ2l0ZW1zJ10gPSBhcnJheV9tZXJnZSgkbGlzdGluZ1snaXRlbXMnXSwgJHRoaXMtPkZldGNoQWxsKCRyZXN1bHQpKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgdXRpbHM6OnNvcnRCeVByb3BlcnR5KCRsaXN0aW5nWydpdGVtcyddLCAnbmFtZScpOwoKICAgICAgICAgICAgJGluZGljZXNUb01vdmUgPSBbXTsKICAgICAgICAgICAgZm9yICgkaSA9IDA7ICRpIDwgY291bnQoJGxpc3RpbmdbJ2l0ZW1zJ10pOyAkaSsrKSB7CiAgICAgICAgICAgICAgICBpZiAoJGxpc3RpbmdbJ2l0ZW1zJ11bJGldLT5kaXIgPT0gdHJ1ZSkgJGluZGljZXNUb01vdmVbXSA9ICRpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChjb3VudCgkaW5kaWNlc1RvTW92ZSkgPiAwKSB7CiAgICAgICAgICAgICAgICB1dGlsczo6bW92ZUl0ZW1zVG9CZWdpbm5pbmdCeUluZGV4KCRsaXN0aW5nWydpdGVtcyddLCAkaW5kaWNlc1RvTW92ZSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJGxpc3RpbmdbJ3RvdGFsJ10gPSBjb3VudCgkbGlzdGluZ1snaXRlbXMnXSk7CgogICAgICAgIH0gY2F0Y2ggKEF3c0V4Y2VwdGlvbiAkZSkgewogICAgICAgICAgICAkbGlzdGluZ1snaXRlbXMnXSA9IFtdOwogICAgICAgICAgICAkbGlzdGluZ1sndG90YWwnXSA9IDA7CiAgICAgICAgICAgICRsaXN0aW5nWydkYXRlJ10gPSB0aW1lKCk7CiAgICAgICAgICAgICRsaXN0aW5nWydlcnJvciddID0gJGUtPmdldEF3c0Vycm9yTWVzc2FnZSgpID86ICRlLT5nZXRNZXNzYWdlKCk7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJGxpc3Rpbmc7CiAgICB9CgogICAgLyoqCiAgICAgKiBGZXRjaCBhbGwgcmVjb3JkcyBmcm9tIGEgcGFnaW5hdG9yIHJlc3VsdCBhcyBvYmplY3QgYXJyYXkuCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBGZXRjaEFsbCgkcnMpCiAgICB7CiAgICAgICAgJF9fbW9kID0gXGNtc191dGlsczo6Z2V0X21vZHVsZSgnQVdTUzMnKTsKICAgICAgICAkY29uZmlnID0gXGNtc21zKCktPkdldENvbmZpZygpOwogICAgICAgICRkZXRhaWxzcGFnZSA9ICR0aGlzLT5kZXRhaWxwYWdlOwogICAgICAgICRlbnRyeWFycmF5ID0gW107CgogICAgICAgIC8vIERpcmVjdG9yaWVzCiAgICAgICAgaWYgKGlzc2V0KCRyc1snQ29tbW9uUHJlZml4ZXMnXSkpIHsKICAgICAgICAgICAgZm9yZWFjaCAoJHJzWydDb21tb25QcmVmaXhlcyddIGFzICRkaXIpIHsKICAgICAgICAgICAgICAgICRvbmVyb3cgPSBuZXcgXHN0ZENsYXNzKCk7CiAgICAgICAgICAgICAgICAkb25lcm93LT5rZXkgPSAkZGlyWydQcmVmaXgnXTsKICAgICAgICAgICAgICAgICRvbmVyb3ctPm5hbWUgPSBiYXNlbmFtZSgkb25lcm93LT5rZXkpOwogICAgICAgICAgICAgICAgJG9uZXJvdy0+ZGlyID0gdHJ1ZTsKICAgICAgICAgICAgICAgICRvbmVyb3ctPm1pbWUgPSAnZGlyZWN0b3J5JzsKICAgICAgICAgICAgICAgICRvbmVyb3ctPnR5cGUgPSBbJ2RpciddOwogICAgICAgICAgICAgICAgJG9uZXJvdy0+ZXh0ID0gJyc7CiAgICAgICAgICAgICAgICAkb25lcm93LT5pY29uID0gJF9fbW9kLT5HZXRGaWxlSWNvbigkb25lcm93LT5leHQsIHRydWUpOwogICAgICAgICAgICAgICAgJGVudHJ5YXJyYXlbXSA9ICRvbmVyb3c7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIC8vIEZpbGVzCiAgICAgICAgaWYgKGlzc2V0KCRyc1snQ29udGVudHMnXSkpIHsKICAgICAgICAgICAgZm9yZWFjaCAoJHJzWydDb250ZW50cyddIGFzICRyb3cpIHsKICAgICAgICAgICAgICAgICRvbmVyb3cgPSBuZXcgXHN0ZENsYXNzKCk7CiAgICAgICAgICAgICAgICAkb25lcm93LT5rZXkgPSAkcm93WydLZXknXTsKICAgICAgICAgICAgICAgICRvbmVyb3ctPmtleV9lbmNvZGVkID0gdXJsZW5jb2RlKCRvbmVyb3ctPmtleSk7CiAgICAgICAgICAgICAgICAkb25lcm93LT5uYW1lID0gYmFzZW5hbWUoJG9uZXJvdy0+a2V5KTsKICAgICAgICAgICAgICAgICRvbmVyb3ctPnNpemUgPSAkcm93WydTaXplJ107CiAgICAgICAgICAgICAgICAkb25lcm93LT5kYXRlID0gc3RydG90aW1lKCRyb3dbJ0xhc3RNb2RpZmllZCddKTsKCiAgICAgICAgICAgICAgICAkZXhwbG9kZWRmaWxlID0gZXhwbG9kZSgnLicsICRvbmVyb3ctPm5hbWUpOwogICAgICAgICAgICAgICAgJG9uZXJvdy0+ZXh0ID0gYXJyYXlfcG9wKCRleHBsb2RlZGZpbGUpOwogICAgICAgICAgICAgICAgJG9uZXJvdy0+dHlwZSA9IFsnZmlsZSddOwoKICAgICAgICAgICAgICAgICRoZWFkID0gJHRoaXMtPnMzQ2xpZW50LT5oZWFkT2JqZWN0KFsKICAgICAgICAgICAgICAgICAgICAnQnVja2V0JyA9PiAkdGhpcy0+YnVja2V0LT5idWNrZXRfbmFtZSwKICAgICAgICAgICAgICAgICAgICAnS2V5JyA9PiAkb25lcm93LT5rZXkKICAgICAgICAgICAgICAgIF0pOwoKICAgICAgICAgICAgICAgICRvbmVyb3ctPm1pbWUgPSAkaGVhZFsnQ29udGVudFR5cGUnXTsKCiAgICAgICAgICAgICAgICBpZiAoc3RycG9zKCRvbmVyb3ctPm1pbWUsICd0ZXh0JykgIT09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICAgICAgJG9uZXJvdy0+dHlwZVtdID0gJ3RleHQnOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICRiYXNlX3VybCA9ICRfX21vZC0+R2V0QnVja2V0VXJsKCR0aGlzLT5idWNrZXQpOwogICAgICAgICAgICAgICAgJG9uZXJvdy0+dXJsID0gJGJhc2VfdXJsIC4gJy8nIC4gJG9uZXJvdy0+a2V5OwogICAgICAgICAgICAgICAgJG9uZXJvdy0+dXJsX2xpbmsgPSAiPGEgaHJlZj0nIiAuICRvbmVyb3ctPnVybCAuICInIHRhcmdldD0nX2JsYW5rJyBjbGFzcz1cImNhcmQtbGlua1wiPiIgLiAkb25lcm93LT5uYW1lIC4gIjwvYT4iOwogICAgICAgICAgICAgICAgJG9uZXJvdy0+aWNvbiA9ICRfX21vZC0+R2V0RmlsZUljb24oJG9uZXJvdy0+ZXh0KTsKICAgICAgICAgICAgICAgICRvbmVyb3ctPmljb25fbGluayA9ICI8YSBocmVmPSciIC4gJG9uZXJvdy0+dXJsIC4gIicgdGFyZ2V0PSdfYmxhbmsnIGNsYXNzPVwiY2FyZC1saW5rXCI+IiAuICRvbmVyb3ctPmljb24gLiAiPC9hPiI7CiAgICAgICAgICAgICAgICAkb25lcm93LT5wcmVzaWduZWRfdXJsID0gJF9fbW9kLT5DcmVhdGVTaWduZWRMaW5rKCRvbmVyb3ctPmtleSwgJHRoaXMtPmJ1Y2tldCk7CiAgICAgICAgICAgICAgICAkb25lcm93LT5wcmVzaWduZWRfbGluayA9ICI8YSBocmVmPSciIC4gJG9uZXJvdy0+cHJlc2lnbmVkX3VybCAuICInIGNsYXNzPVwiY2FyZC1saW5rXCI+IiAuICRvbmVyb3ctPm5hbWUgLiAiPC9hPiI7CiAgICAgICAgICAgICAgICAkb25lcm93LT5wcmVzaWduZWRfaWNvbl9saW5rID0gIjxhIGhyZWY9JyIgLiAkb25lcm93LT5wcmVzaWduZWRfdXJsIC4gIicgY2xhc3M9XCJjYXJkLWxpbmtcIj4iIC4gJG9uZXJvdy0+aWNvbiAuICI8L2E+IjsKICAgICAgICAgICAgICAgICRvbmVyb3ctPmRldGFpbF9saW5rID0gJF9fbW9kLT5jcmVhdGVfdXJsKCdjbnRudDAxJywgJ2RldGFpbCcsICRkZXRhaWxzcGFnZSwgWydwcmVmaXgnID0+ICRvbmVyb3ctPmtleV9lbmNvZGVkXSk7CiAgICAgICAgICAgICAgICAkb25lcm93LT5idWNrZXRfaWQgPSAkdGhpcy0+YnVja2V0LT5pZDsKCiAgICAgICAgICAgICAgICAkZW50cnlhcnJheVtdID0gJG9uZXJvdzsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgcmV0dXJuICRlbnRyeWFycmF5OwogICAgfQoKICAgIC8qKgogICAgICogQ2FjaGUgYSBxdWVyeSByZXN1bHQgdG8gZGlzay4KICAgICAqLwogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBjYWNoZV9xdWVyeSgkcXBhcm1zLCAkanNvbl9maWxlX1BhdGgpCiAgICB7CiAgICAgICAgJG1vZCA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0FXU1MzJyk7CgogICAgICAgIC8vIEJ1aWxkIGJ1Y2tldF9xdWVyeSB3aXRoIGJ1Y2tldCBjb250ZXh0CiAgICAgICAgJHF1ZXJ5X3BhcmFtcyA9ICRxcGFybXM7CiAgICAgICAgaWYgKGlzc2V0KCRxcGFybXNbJ2J1Y2tldF9pZCddKSkgewogICAgICAgICAgICAkcXVlcnlfcGFyYW1zWydidWNrZXRfb2JqJ10gPSAkbW9kLT5HZXRCdWNrZXQoKGludCkgJHFwYXJtc1snYnVja2V0X2lkJ10pOwogICAgICAgIH0gZWxzZWlmIChpc3NldCgkcXBhcm1zWydidWNrZXRfb2JqJ10pKSB7CiAgICAgICAgICAgICRxdWVyeV9wYXJhbXNbJ2J1Y2tldF9vYmonXSA9ICRxcGFybXNbJ2J1Y2tldF9vYmonXTsKICAgICAgICB9CgogICAgICAgICRxdWVyeSA9IG5ldyBidWNrZXRfcXVlcnkoJHF1ZXJ5X3BhcmFtcyk7CiAgICAgICAgJGRhdGEgPSAkcXVlcnktPmV4ZWN1dGUoKTsKICAgICAgICAkanNvbiA9IGpzb25fZW5jb2RlKCRkYXRhKTsKICAgICAgICAkdG1wID0gZW5jcnlwdDo6ZW5jcnlwdCgkanNvbik7CiAgICAgICAgZmlsZV9wdXRfY29udGVudHMoJGpzb25fZmlsZV9QYXRoLCAkdG1wKTsKCiAgICAgICAgJGRhdGEgPSBqc29uX2RlY29kZSgkanNvbiwgZmFsc2UpOwogICAgICAgIHJldHVybiAkZGF0YTsKICAgIH0KfQo=]]></data>
	</file>
	<file>
		<filename>/lib/class.helpers.php</filename>
		<isdir>0</isdir>
		<data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgU2VlIExJQ0VOU0UgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCm5hbWVzcGFjZSBBV1NTMzsKCmZpbmFsIGNsYXNzIGhlbHBlcnMKewogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBmaW5kX2xheW91dF90ZW1wbGF0ZSgkcGFyYW1zLCAkcGFyYW1uYW1lLCAkdHlwZW5hbWUpCiAgICB7CiAgICAgICAgJG1vZCA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoIkFXU1MzIik7CiAgICAgICAgJHBhcmFtbmFtZSA9IChzdHJpbmcpICRwYXJhbW5hbWU7CiAgICAgICAgJHR5cGVuYW1lID0gKHN0cmluZykgJHR5cGVuYW1lOwogICAgICAgIGlmICghaXNfYXJyYXkoJHBhcmFtcykgfHwgISgkdGhldGVtcGxhdGUgPSBceHRfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywgJHBhcmFtbmFtZSkpKSB7CiAgICAgICAgICAgICR0cGwgPSBcQ21zTGF5b3V0VGVtcGxhdGU6OmxvYWRfZGZsdF9ieV90eXBlKCR0eXBlbmFtZSk7CiAgICAgICAgICAgIGlmICghaXNfb2JqZWN0KCR0cGwpKSB7CiAgICAgICAgICAgICAgICBhdWRpdCgnJywgJ0FXU1MzJywgJ05vIGRlZmF1bHQgJyAuICR0eXBlbmFtZSAuICcgdGVtcGxhdGUgZm91bmQnKTsKICAgICAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgICAgICB9CiAgICAgICAgICAgICR0aGV0ZW1wbGF0ZSA9ICR0cGwtPmdldF9uYW1lKCk7CiAgICAgICAgICAgIHVuc2V0KCR0cGwpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJHRoZXRlbXBsYXRlOwogICAgfQp9Cg==]]></data>
	</file>
	<file>
		<filename>/lib/class.utils.php</filename>
		<isdir>0</isdir>
		<data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgU2VlIExJQ0VOU0UgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpuYW1lc3BhY2UgQVdTUzM7Cgp1c2UgQXdzXFMzXFMzQ2xpZW50Owp1c2UgQXdzXEV4Y2VwdGlvblxBd3NFeGNlcHRpb247CnVzZSBcQVdTU0RLXEV4Y2VwdGlvbjsKdXNlIFxBV1NTM1xoZWxwZXJzOwoKZmluYWwgY2xhc3MgdXRpbHMKewogICAgcHJpdmF0ZSAkczNDbGllbnQgPSBudWxsOwogICAgcHJpdmF0ZSAkYnVja2V0ID0gbnVsbDsKICAgIHByaXZhdGUgc3RhdGljICRfX21vZDsKICAgIHByaXZhdGUgc3RhdGljICRfX3NkazsKICAgIHB1YmxpYyAkZXJyb3JzID0gW107CgogICAgLyoqCiAgICAgKiBAcGFyYW0gb2JqZWN0fG51bGwgJGJ1Y2tldCAgQSBidWNrZXQgcm93IG9iamVjdCBmcm9tIHRoZSBEQiB0YWJsZS4KICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiBudWxsLCB0aGUgZGVmYXVsdCBidWNrZXQgaXMgdXNlZC4KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRidWNrZXQgPSBudWxsKQogICAgewogICAgICAgICR0aGlzLT5tb2QgPSBzZWxmOjpnZXRfbW9kKCk7CiAgICAgICAgJHRoaXMtPnNkayA9IHNlbGY6OmdldF9zZGsoKTsKCiAgICAgICAgaWYgKCRidWNrZXQgPT09IG51bGwpIHsKICAgICAgICAgICAgJGJ1Y2tldCA9ICR0aGlzLT5tb2QtPkdldEJ1Y2tldCgpOwogICAgICAgIH0KICAgICAgICAkdGhpcy0+YnVja2V0ID0gJGJ1Y2tldDsKICAgIH0KCiAgICAvKioKICAgICAqIFZhbGlkYXRlIHRoYXQgd2UgY2FuIGNvbm5lY3QgdG8gUzMgYW5kIHRoZSBidWNrZXQgZXhpc3RzLgogICAgICoKICAgICAqIEByZXR1cm4gYm9vbAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gdmFsaWRhdGUoKQogICAgewogICAgICAgICRzbWFydHkgPSBcY21zbXMoKS0+R2V0U21hcnR5KCk7CgogICAgICAgIGlmICghJHRoaXMtPmJ1Y2tldCkgewogICAgICAgICAgICAkdGhpcy0+ZXJyb3JzW10gPSBzZWxmOjpsYW5nKCdub19idWNrZXRzX2RlZmluZWQnKTsKICAgICAgICAgICAgJHRoaXMtPnNkay0+X0Rpc3BsYXlNZXNzYWdlKCR0aGlzLT5lcnJvcnMsICJzbGlkZS1kYW5nZXIiKTsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0KCiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgJHMzID0gc2VsZjo6Z2V0UzNDbGllbnQoJHRoaXMtPmJ1Y2tldC0+cmVnaW9uKTsKICAgICAgICAgICAgaWYgKGlzX2FycmF5KCRzMykgJiYgISRzM1snY29ubiddKSB7CiAgICAgICAgICAgICAgICAkdGhpcy0+ZXJyb3JzW10gPSAkczNbJ21lc3NhZ2UnXTsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBcQVdTU0RLXEV4Y2VwdGlvbigkdGhpcy0+ZXJyb3JzLCAic2xpZGUtZGFuZ2VyIik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJHRoaXMtPnMzQ2xpZW50ID0gJHMzOwoKICAgICAgICAgICAgaWYgKCEkdGhpcy0+czNDbGllbnQtPmRvZXNCdWNrZXRFeGlzdCgkdGhpcy0+YnVja2V0LT5idWNrZXRfbmFtZSkpIHsKICAgICAgICAgICAgICAgICR0aGlzLT5lcnJvcnNbXSA9ICR0aGlzLT5idWNrZXQtPmJ1Y2tldF9uYW1lIC4gIiBkb2VzIG5vdCBleGlzdCI7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgXEFXU1NES1xFeGNlcHRpb24oJHRoaXMtPmVycm9ycywgInNsaWRlLWRhbmdlciIpOwogICAgICAgICAgICB9CgogICAgICAgICAgICAkc21hcnR5LT5hc3NpZ24oImF3c3MzX2J1Y2tldF9uYW1lIiwgJHRoaXMtPmJ1Y2tldC0+YnVja2V0X25hbWUpOwogICAgICAgICAgICAkc21hcnR5LT5hc3NpZ24oImF3c3MzX2J1Y2tldF91cmwiLCAiaHR0cHM6Ly97JHRoaXMtPmJ1Y2tldC0+YnVja2V0X25hbWV9LnMzLnskdGhpcy0+YnVja2V0LT5yZWdpb259LmFtYXpvbmF3cy5jb20vIik7CgogICAgICAgIH0gY2F0Y2ggKFxBV1NTREtcRXhjZXB0aW9uICRlKSB7CiAgICAgICAgICAgICR0aGlzLT5zZGstPl9EaXNwbGF5TWVzc2FnZSgkZS0+Z2V0VGV4dCgpLCAkZS0+Z2V0VHlwZSgpKTsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0KCiAgICAgICAgJG1lc3NhZ2UgPSAkdGhpcy0+c2RrLT5fRGlzcGxheU1lc3NhZ2Uoc2VsZjo6bGFuZygnbXNnX3ZyZnlfaW50ZWdyaXR5dmVyaWZpZWQnKSwgInN1Y2Nlc3MiLCAxKTsKICAgICAgICAkc21hcnR5LT5hc3NpZ24oImF3c3MzX21lc3NhZ2UiLCAkbWVzc2FnZSk7CiAgICAgICAgcmV0dXJuIHRydWU7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgYW4gUzNDbGllbnQgdXNpbmcgQVdTU0RLIGNyZWRlbnRpYWxzLgogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJHJlZ2lvbgogICAgICogQHJldHVybiBTM0NsaWVudHxhcnJheSAgUmV0dXJucyBTM0NsaWVudCBvbiBzdWNjZXNzLCBvciBlcnJvciBhcnJheSBvbiBmYWlsdXJlLgogICAgICovCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldFMzQ2xpZW50KCRyZWdpb24gPSBudWxsKQogICAgewogICAgICAgICRtb2QgPSBzZWxmOjpnZXRfbW9kKCk7CiAgICAgICAgJHNkayA9IHNlbGY6OmdldF9zZGsoKTsKCiAgICAgICAgaWYgKCEkcmVnaW9uKSB7CiAgICAgICAgICAgICRidWNrZXQgPSAkbW9kLT5HZXRCdWNrZXQoKTsKICAgICAgICAgICAgJHJlZ2lvbiA9ICRidWNrZXQgPyAkYnVja2V0LT5yZWdpb24gOiAndXMtZWFzdC0xJzsKICAgICAgICB9CgogICAgICAgICRyZXN1bHQgPSBbXTsKICAgICAgICAkcmVzdWx0Wydjb25uJ10gPSB0cnVlOwoKICAgICAgICB0cnkgewogICAgICAgICAgICAkY3JlZGVudGlhbHMgPSAkc2RrLT5nZXRDcmVkZW50aWFscygpOwoKICAgICAgICAgICAgJGNvbmZpZyA9IFsKICAgICAgICAgICAgICAgICdyZWdpb24nID0+ICRyZWdpb24sCiAgICAgICAgICAgICAgICAndmVyc2lvbicgPT4gJ2xhdGVzdCcsCiAgICAgICAgICAgIF07CgogICAgICAgICAgICAvLyBJZiBjcmVkZW50aWFscyBpcyBudWxsLCBTREsgdXNlcyBkZWZhdWx0IHByb3ZpZGVyIGNoYWluIChJQU0gcm9sZSkKICAgICAgICAgICAgaWYgKCRjcmVkZW50aWFscyAhPT0gbnVsbCkgewogICAgICAgICAgICAgICAgJGNvbmZpZ1snY3JlZGVudGlhbHMnXSA9ICRjcmVkZW50aWFsczsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJHMzQ2xpZW50ID0gbmV3IFMzQ2xpZW50KCRjb25maWcpOwogICAgICAgICAgICAvLyBUZXN0IGNvbm5lY3Rpb24KICAgICAgICAgICAgJHMzQ2xpZW50LT5saXN0QnVja2V0cygpOwoKICAgICAgICB9IGNhdGNoIChBd3NFeGNlcHRpb24gJGUpIHsKICAgICAgICAgICAgJHJlc3VsdFsnY29ubiddID0gZmFsc2U7CiAgICAgICAgICAgICRyZXN1bHRbJ21lc3NhZ2UnXSA9ICRlLT5nZXRBd3NFcnJvck1lc3NhZ2UoKTsKICAgICAgICAgICAgcmV0dXJuICRyZXN1bHQ7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJHMzQ2xpZW50OwogICAgfQoKICAgIC8qKgogICAgICogR2V0IFMzQ2xpZW50IGZvciBhIHNwZWNpZmljIGJ1Y2tldCBvYmplY3QuCiAgICAgKgogICAgICogQHBhcmFtIG9iamVjdCAkYnVja2V0CiAgICAgKiBAcmV0dXJuIFMzQ2xpZW50fGFycmF5CiAgICAgKi8KICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0UzNDbGllbnRGb3JCdWNrZXQoJGJ1Y2tldCkKICAgIHsKICAgICAgICByZXR1cm4gc2VsZjo6Z2V0UzNDbGllbnQoJGJ1Y2tldC0+cmVnaW9uKTsKICAgIH0KCiAgICAvKioKICAgICAqIFVwbG9hZCBhIGZpbGUgdG8gdGhlIGJ1Y2tldC4KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHVwbG9hZF9maWxlKCRmaWxlX25hbWUsICRmaWxlX3RlbXBfc3JjKQogICAgewogICAgICAgIGlmICghJHRoaXMtPnMzQ2xpZW50KSB7CiAgICAgICAgICAgICR0aGlzLT5zM0NsaWVudCA9IHNlbGY6OmdldFMzQ2xpZW50KCR0aGlzLT5idWNrZXQtPnJlZ2lvbik7CiAgICAgICAgfQoKICAgICAgICAkcmV0ID0gW107CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgJHRoaXMtPnMzQ2xpZW50LT5wdXRPYmplY3QoWwogICAgICAgICAgICAgICAgJ0J1Y2tldCcgPT4gJHRoaXMtPmJ1Y2tldC0+YnVja2V0X25hbWUsCiAgICAgICAgICAgICAgICAnS2V5JyA9PiAkZmlsZV9uYW1lLAogICAgICAgICAgICAgICAgJ1NvdXJjZUZpbGUnID0+ICRmaWxlX3RlbXBfc3JjLAogICAgICAgICAgICAgICAgJ1RhZ2dpbmcnID0+ICJNb2R1bGU9Q01TTVM6OkFXU1MzIgogICAgICAgICAgICBdKTsKICAgICAgICAgICAgJHJldFswXSA9IHRydWU7CiAgICAgICAgICAgICRyZXRbMl0gPSAkZmlsZV9uYW1lOwogICAgICAgIH0gY2F0Y2ggKEF3c0V4Y2VwdGlvbiAkZSkgewogICAgICAgICAgICAkcmV0WzBdID0gZmFsc2U7CiAgICAgICAgICAgICRyZXRbMV0gPSAkZS0+Z2V0QXdzRXJyb3JNZXNzYWdlKCk7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJHJldDsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCBmaWxlIGluZm8gZm9yIGEgZ2l2ZW4ga2V5IGZyb20gdGhlIGN1cnJlbnQgYnVja2V0LgogICAgICovCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9maWxlX2luZm8oJHByZWZpeCwgJGJ1Y2tldCA9IG51bGwpCiAgICB7CiAgICAgICAgJG1vZCA9IHNlbGY6OmdldF9tb2QoKTsKICAgICAgICBpZiAoISRidWNrZXQpIHsKICAgICAgICAgICAgJGJ1Y2tldCA9ICRtb2QtPkdldEJ1Y2tldCgpOwogICAgICAgIH0KCiAgICAgICAgJHMzQ2xpZW50ID0gc2VsZjo6Z2V0UzNDbGllbnQoJGJ1Y2tldC0+cmVnaW9uKTsKICAgICAgICBpZiAoaXNfYXJyYXkoJHMzQ2xpZW50KSkgcmV0dXJuIG51bGw7CgogICAgICAgIHRyeSB7CiAgICAgICAgICAgICRmaWxlID0gJHMzQ2xpZW50LT5nZXRPYmplY3QoWwogICAgICAgICAgICAgICAgJ0J1Y2tldCcgPT4gJGJ1Y2tldC0+YnVja2V0X25hbWUsCiAgICAgICAgICAgICAgICAnS2V5JyA9PiAkcHJlZml4LAogICAgICAgICAgICBdKTsKCiAgICAgICAgICAgICRoZWFkID0gJHMzQ2xpZW50LT5oZWFkT2JqZWN0KFsKICAgICAgICAgICAgICAgICdCdWNrZXQnID0+ICRidWNrZXQtPmJ1Y2tldF9uYW1lLAogICAgICAgICAgICAgICAgJ0tleScgPT4gJHByZWZpeAogICAgICAgICAgICBdKTsKCiAgICAgICAgICAgICRvbmVyb3cgPSBuZXcgXHN0ZENsYXNzKCk7CiAgICAgICAgICAgICRvbmVyb3ctPm5hbWUgPSAkcHJlZml4OwogICAgICAgICAgICAkb25lcm93LT5idWNrZXQgPSAkYnVja2V0LT5idWNrZXRfbmFtZTsKICAgICAgICAgICAgJG9uZXJvdy0+YnVja2V0X2lkID0gJGJ1Y2tldC0+aWQ7CiAgICAgICAgICAgICRvbmVyb3ctPm1pbWUgPSAkaGVhZFsnQ29udGVudFR5cGUnXTsKICAgICAgICAgICAgJG9uZXJvdy0+c2l6ZSA9IHNlbGY6OmZvcm1hdEJ5dGVzKCRmaWxlWydDb250ZW50TGVuZ3RoJ10pOwogICAgICAgICAgICAkb25lcm93LT5wb3N0ZGF0ZSA9IHN0cnRvdGltZSgkZmlsZVsnTGFzdE1vZGlmaWVkJ10pOwogICAgICAgICAgICAkb25lcm93LT51cmxfb3JpZ2luYWwgPSBzZWxmOjpnZXRVcmwoJHByZWZpeCwgJGJ1Y2tldCk7CiAgICAgICAgICAgICRvbmVyb3ctPnVybCA9ICRtb2QtPkdldEJ1Y2tldFVybCgkYnVja2V0LCAkcHJlZml4KTsKICAgICAgICAgICAgJG9uZXJvdy0+dXJsX3ByZXNpZ25lZCA9IHNlbGY6OnByZXNpZ25lZFVybCgkcHJlZml4LCAkYnVja2V0KTsKICAgICAgICAgICAgJG9uZXJvdy0+dXJsID0gc3RyX3JlcGxhY2UoJ1xcJywgJy8nLCAkb25lcm93LT51cmwpOwogICAgICAgICAgICBpZiAoc2VsZjo6aXNfZmlsZV9pbWFnZSgkb25lcm93LT5uYW1lKSkgJG9uZXJvdy0+aXNpbWFnZSA9IHRydWU7CgogICAgICAgICAgICByZXR1cm4gJG9uZXJvdzsKCiAgICAgICAgfSBjYXRjaCAoQXdzRXhjZXB0aW9uICRlKSB7CiAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGRlbGV0ZU9iamVjdCgka2V5bmFtZSwgJGJ1Y2tldCA9IG51bGwpCiAgICB7CiAgICAgICAgJG1vZCA9IHNlbGY6OmdldF9tb2QoKTsKICAgICAgICBpZiAoISRidWNrZXQpICRidWNrZXQgPSAkbW9kLT5HZXRCdWNrZXQoKTsKCiAgICAgICAgJHMzID0gc2VsZjo6Z2V0UzNDbGllbnQoJGJ1Y2tldC0+cmVnaW9uKTsKICAgICAgICBpZiAoaXNfYXJyYXkoJHMzKSkgcmV0dXJuOwoKICAgICAgICB0cnkgewogICAgICAgICAgICAkczMtPmRlbGV0ZU9iamVjdChbCiAgICAgICAgICAgICAgICAnQnVja2V0JyA9PiAkYnVja2V0LT5idWNrZXRfbmFtZSwKICAgICAgICAgICAgICAgICdLZXknID0+ICRrZXluYW1lCiAgICAgICAgICAgIF0pOwogICAgICAgIH0gY2F0Y2ggKEF3c0V4Y2VwdGlvbiAkZSkgewogICAgICAgICAgICBhdWRpdCgnJywgJ0FXU1MzJywgJ2RlbGV0ZU9iamVjdCBmYWlsZWQ6ICcgLiAkZS0+Z2V0QXdzRXJyb3JNZXNzYWdlKCkpOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGRlbGV0ZU9iamVjdERpcigkZGlyLCAkYnVja2V0ID0gbnVsbCkKICAgIHsKICAgICAgICAkbW9kID0gc2VsZjo6Z2V0X21vZCgpOwogICAgICAgIGlmICghJGJ1Y2tldCkgJGJ1Y2tldCA9ICRtb2QtPkdldEJ1Y2tldCgpOwoKICAgICAgICAkczMgPSBzZWxmOjpnZXRTM0NsaWVudCgkYnVja2V0LT5yZWdpb24pOwogICAgICAgIGlmIChpc19hcnJheSgkczMpKSByZXR1cm4gZmFsc2U7CgogICAgICAgICRrZXlzID0gJHMzLT5saXN0T2JqZWN0cyhbCiAgICAgICAgICAgICdCdWNrZXQnID0+ICRidWNrZXQtPmJ1Y2tldF9uYW1lLAogICAgICAgICAgICAnUHJlZml4JyA9PiAkZGlyCiAgICAgICAgXSk7CgogICAgICAgIGZvcmVhY2ggKCRrZXlzWydDb250ZW50cyddIGFzICRrZXkpIHsKICAgICAgICAgICAgJHMzLT5kZWxldGVPYmplY3RzKFsKICAgICAgICAgICAgICAgICdCdWNrZXQnID0+ICRidWNrZXQtPmJ1Y2tldF9uYW1lLAogICAgICAgICAgICAgICAgJ0RlbGV0ZScgPT4gWwogICAgICAgICAgICAgICAgICAgICdPYmplY3RzJyA9PiBbWydLZXknID0+ICRrZXlbJ0tleSddXV0KICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgXSk7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gdHJ1ZTsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldFVybCgka2V5LCAkYnVja2V0ID0gbnVsbCkKICAgIHsKICAgICAgICAkbW9kID0gc2VsZjo6Z2V0X21vZCgpOwogICAgICAgIGlmICghJGJ1Y2tldCkgJGJ1Y2tldCA9ICRtb2QtPkdldEJ1Y2tldCgpOwoKICAgICAgICAkczNDbGllbnQgPSBzZWxmOjpnZXRTM0NsaWVudCgkYnVja2V0LT5yZWdpb24pOwogICAgICAgIGlmIChpc19hcnJheSgkczNDbGllbnQpKSByZXR1cm4gJyc7CgogICAgICAgIHJldHVybiAkczNDbGllbnQtPmdldE9iamVjdFVybCgkYnVja2V0LT5idWNrZXRfbmFtZSwgJGtleSk7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBwcmVzaWduZWRVcmwoJGtleSwgJGJ1Y2tldCA9IG51bGwpCiAgICB7CiAgICAgICAgJG1vZCA9IHNlbGY6OmdldF9tb2QoKTsKICAgICAgICBpZiAoISRidWNrZXQpICRidWNrZXQgPSAkbW9kLT5HZXRCdWNrZXQoKTsKCiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgJHMzQ2xpZW50ID0gc2VsZjo6Z2V0UzNDbGllbnQoJGJ1Y2tldC0+cmVnaW9uKTsKICAgICAgICAgICAgaWYgKGlzX2FycmF5KCRzM0NsaWVudCkpIHJldHVybiAnJzsKCiAgICAgICAgICAgICRjbWQgPSAkczNDbGllbnQtPmdldENvbW1hbmQoJ0dldE9iamVjdCcsIFsKICAgICAgICAgICAgICAgICdCdWNrZXQnID0+ICRidWNrZXQtPmJ1Y2tldF9uYW1lLAogICAgICAgICAgICAgICAgJ0tleScgPT4gJGtleQogICAgICAgICAgICBdKTsKCiAgICAgICAgICAgICRyZXF1ZXN0ID0gJHMzQ2xpZW50LT5jcmVhdGVQcmVzaWduZWRSZXF1ZXN0KCRjbWQsICcrMSBob3VyJyk7CiAgICAgICAgICAgICRwcmVzaWduZWRVcmwgPSAoc3RyaW5nKSAkcmVxdWVzdC0+Z2V0VXJpKCk7CgogICAgICAgICAgICAvLyBSZXBsYWNlIHdpdGggY3VzdG9tIFVSTCBpZiBjb25maWd1cmVkCiAgICAgICAgICAgIGlmICghZW1wdHkoJGJ1Y2tldC0+Y3VzdG9tX3VybCkpIHsKICAgICAgICAgICAgICAgICR1cmxQYXJ0cyA9IHBhcnNlX3VybCgkcHJlc2lnbmVkVXJsKTsKICAgICAgICAgICAgICAgIGlmICgkdXJsUGFydHMgIT09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICAgICAgJGN1c3RvbVBhcnRzID0gcGFyc2VfdXJsKCRidWNrZXQtPmN1c3RvbV91cmwpOwogICAgICAgICAgICAgICAgICAgICR1cmxQYXJ0c1snc2NoZW1lJ10gPSAkY3VzdG9tUGFydHNbJ3NjaGVtZSddID8/ICdodHRwcyc7CiAgICAgICAgICAgICAgICAgICAgJHVybFBhcnRzWydob3N0J10gPSAkY3VzdG9tUGFydHNbJ2hvc3QnXSA/PyAkdXJsUGFydHNbJ2hvc3QnXTsKICAgICAgICAgICAgICAgICAgICAkbmV3VXJsID0gJHVybFBhcnRzWydzY2hlbWUnXSAuICc6Ly8nIC4gJHVybFBhcnRzWydob3N0J107CiAgICAgICAgICAgICAgICAgICAgaWYgKGlzc2V0KCR1cmxQYXJ0c1sncGF0aCddKSkgJG5ld1VybCAuPSAkdXJsUGFydHNbJ3BhdGgnXTsKICAgICAgICAgICAgICAgICAgICBpZiAoaXNzZXQoJHVybFBhcnRzWydxdWVyeSddKSkgJG5ld1VybCAuPSAnPycgLiAkdXJsUGFydHNbJ3F1ZXJ5J107CiAgICAgICAgICAgICAgICAgICAgJHByZXNpZ25lZFVybCA9ICRuZXdVcmw7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHJldHVybiAkcHJlc2lnbmVkVXJsOwoKICAgICAgICB9IGNhdGNoIChcRXhjZXB0aW9uICRlKSB7CiAgICAgICAgICAgIHJldHVybiAnJzsKICAgICAgICB9CiAgICB9CgogICAgLyoqCiAgICAgKiBDaGVjayBpZiBhIGZpbGUgZXh0ZW5zaW9uIGlzIGFsbG93ZWQgZm9yIHRoZSBnaXZlbiBidWNrZXQuCiAgICAgKi8KICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gaXNfZmlsZV9hY2NlcHRhYmxlKCRmaWxlX3R5cGUsICRidWNrZXQgPSBudWxsKQogICAgewogICAgICAgICRtb2QgPSBzZWxmOjpnZXRfbW9kKCk7CiAgICAgICAgaWYgKCEkYnVja2V0KSAkYnVja2V0ID0gJG1vZC0+R2V0QnVja2V0KCk7CiAgICAgICAgaWYgKCEkYnVja2V0KSByZXR1cm4gZmFsc2U7CgogICAgICAgICRmaWxlX3R5cGUgPSBzdHJ0b2xvd2VyKCRmaWxlX3R5cGUpOwogICAgICAgICRhbGxvd1R5cGVzID0gZXhwbG9kZSgnLCcsICRidWNrZXQtPmFsbG93ZWRfZXh0ZW5zaW9ucyk7CiAgICAgICAgJGFsbG93VHlwZXMgPSBhcnJheV9tYXAoJ3RyaW0nLCAkYWxsb3dUeXBlcyk7CiAgICAgICAgcmV0dXJuIGluX2FycmF5KCRmaWxlX3R5cGUsICRhbGxvd1R5cGVzKTsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGlzX2ZpbGVfaW1hZ2UoJHNyY19maWxlX25hbWUpCiAgICB7CiAgICAgICAgJHN1cHBvcnRlZF9pbWFnZSA9IFsnZ2lmJywgJ2pwZycsICdqcGVnJywgJ3BuZycsICd3ZWJwJ107CiAgICAgICAgJGV4dCA9IHN0cnRvbG93ZXIocGF0aGluZm8oJHNyY19maWxlX25hbWUsIFBBVEhJTkZPX0VYVEVOU0lPTikpOwogICAgICAgIHJldHVybiBpbl9hcnJheSgkZXh0LCAkc3VwcG9ydGVkX2ltYWdlKTsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGZvcm1hdEJ5dGVzKCRieXRlcykKICAgIHsKICAgICAgICBpZiAoJGJ5dGVzID4gMCkgewogICAgICAgICAgICAkaSA9IGZsb29yKGxvZygkYnl0ZXMpIC8gbG9nKDEwMjQpKTsKICAgICAgICAgICAgJHNpemVzID0gWydCJywgJ0tCJywgJ01CJywgJ0dCJywgJ1RCJywgJ1BCJywgJ0VCJywgJ1pCJywgJ1lCJ107CiAgICAgICAgICAgIHJldHVybiBzcHJpbnRmKCclLjAyRicsIHJvdW5kKCRieXRlcyAvIHBvdygxMDI0LCAkaSksIDEpKSAqIDEgLiAnICcgLiBAJHNpemVzWyRpXTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIDA7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBzdW1CeXRlcygkaXRlbXMpCiAgICB7CiAgICAgICAgJHN1bSA9IDA7CiAgICAgICAgZm9yZWFjaCAoJGl0ZW1zIGFzICRpdGVtKSB7CiAgICAgICAgICAgIGlmIChpc3NldCgkaXRlbS0+c2l6ZSkpICRzdW0gKz0gJGl0ZW0tPnNpemU7CiAgICAgICAgfQogICAgICAgIHJldHVybiBzZWxmOjpmb3JtYXRCeXRlcygkc3VtKTsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9tb2QoKQogICAgewogICAgICAgIGlmICghc2VsZjo6JF9fbW9kKSBzZWxmOjokX19tb2QgPSBcY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdBV1NTMycpOwogICAgICAgIHJldHVybiBzZWxmOjokX19tb2Q7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfc2RrKCkKICAgIHsKICAgICAgICBpZiAoIXNlbGY6OiRfX3Nkaykgc2VsZjo6JF9fc2RrID0gXGNtc191dGlsczo6Z2V0X21vZHVsZSgnQVdTU0RLJyk7CiAgICAgICAgcmV0dXJuIHNlbGY6OiRfX3NkazsKICAgIH0KCiAgICBwcml2YXRlIHN0YXRpYyBmdW5jdGlvbiBsYW5nKCkKICAgIHsKICAgICAgICAkbW9kID0gc2VsZjo6Z2V0X21vZCgpOwogICAgICAgICRhcmdzID0gZnVuY19nZXRfYXJncygpOwogICAgICAgIHJldHVybiBjYWxsX3VzZXJfZnVuY19hcnJheShbJG1vZCwgJ0xhbmcnXSwgJGFyZ3MpOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gc29ydEJ5UHJvcGVydHkoJGFycmF5LCAkcHJvcGVydHkpCiAgICB7CiAgICAgICAgdXNvcnQoJGFycmF5LCBmdW5jdGlvbiAoJGEsICRiKSB1c2UgKCRwcm9wZXJ0eSkgewogICAgICAgICAgICByZXR1cm4gc3RyY21wKCRhLT4kcHJvcGVydHksICRiLT4kcHJvcGVydHkpOwogICAgICAgIH0pOwogICAgICAgIHJldHVybiAkYXJyYXk7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBtb3ZlSXRlbXNUb0JlZ2lubmluZ0J5SW5kZXgoJiRhcnJheSwgJGluZGljZXNUb01vdmUpCiAgICB7CiAgICAgICAgJGl0ZW1zVG9Nb3ZlID0gW107CiAgICAgICAgZm9yZWFjaCAoJGluZGljZXNUb01vdmUgYXMgJGluZGV4KSB7CiAgICAgICAgICAgIGlmIChpc3NldCgkYXJyYXlbJGluZGV4XSkpIHsKICAgICAgICAgICAgICAgICRpdGVtc1RvTW92ZVtdID0gJGFycmF5WyRpbmRleF07CiAgICAgICAgICAgICAgICB1bnNldCgkYXJyYXlbJGluZGV4XSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgJGFycmF5ID0gYXJyYXlfbWVyZ2UoJGl0ZW1zVG9Nb3ZlLCAkYXJyYXkpOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0VXBEaXIoJG15QXJyYXkpCiAgICB7CiAgICAgICAgJGNvbWJpbmVkU3RyaW5nID0gJyc7CiAgICAgICAgZm9yICgkaSA9IDA7ICRpIDwgY291bnQoJG15QXJyYXkpIC0gMTsgJGkrKykgewogICAgICAgICAgICAkY29tYmluZWRTdHJpbmcgLj0gJG15QXJyYXlbJGldLT5uYW1lIC4gJy8nOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJGNvbWJpbmVkU3RyaW5nOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0SW5zdGFuY2UoJGJ1Y2tldCA9IG51bGwpCiAgICB7CiAgICAgICAgcmV0dXJuIG5ldyBzZWxmKCRidWNrZXQpOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X2lhbV9wb2xpY3koJGJ1Y2tldCA9IG51bGwpIDogc3RyaW5nCiAgICB7CiAgICAgICAgJG1vZCA9IHNlbGY6OmdldF9tb2QoKTsKICAgICAgICBpZiAoISRidWNrZXQpICRidWNrZXQgPSAkbW9kLT5HZXRCdWNrZXQoKTsKICAgICAgICAkYnVja2V0X25hbWUgPSAkYnVja2V0LT5idWNrZXRfbmFtZTsKCiAgICAgICAgcmV0dXJuICd7CiAgICAgICAgICAgICJWZXJzaW9uIjogIjIwMTItMTAtMTciLAogICAgICAgICAgICAiU3RhdGVtZW50IjogWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJTaWQiOiAiQmFzaWNBY2Nlc3MiLAogICAgICAgICAgICAgICAgICAgICJQcmluY2lwYWwiOiAiKiIsCiAgICAgICAgICAgICAgICAgICAgIkVmZmVjdCI6ICJBbGxvdyIsCiAgICAgICAgICAgICAgICAgICAgIkFjdGlvbiI6IFsKICAgICAgICAgICAgICAgICAgICAgICAgInMzOkFib3J0TXVsdGlwYXJ0VXBsb2FkIiwKICAgICAgICAgICAgICAgICAgICAgICAgInMzOkRlbGV0ZU9iamVjdCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJzMzpHZXRPYmplY3QiLAogICAgICAgICAgICAgICAgICAgICAgICAiczM6R2V0T2JqZWN0QWNsIiwKICAgICAgICAgICAgICAgICAgICAgICAgInMzOlB1dE9iamVjdCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJzMzpQdXRPYmplY3RBY2wiCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAgICAiUmVzb3VyY2UiOiBbCiAgICAgICAgICAgICAgICAgICAgICAgICJhcm46YXdzOnMzOjo6JyAuICRidWNrZXRfbmFtZSAuICcvKiIKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJTaWQiOiAiQWxsb3dSb290QW5kSG9tZUxpc3RpbmdPZkJ1Y2tldCIsCiAgICAgICAgICAgICAgICAgICAgIlByaW5jaXBhbCI6ICIqIiwKICAgICAgICAgICAgICAgICAgICAiRWZmZWN0IjogIkFsbG93IiwKICAgICAgICAgICAgICAgICAgICAiQWN0aW9uIjogWwogICAgICAgICAgICAgICAgICAgICAgICAiczM6R2V0QnVja2V0QWNsIiwKICAgICAgICAgICAgICAgICAgICAgICAgInMzOkdldEJ1Y2tldExvY2F0aW9uIiwKICAgICAgICAgICAgICAgICAgICAgICAgInMzOkdldEJ1Y2tldFBvbGljeSIsCiAgICAgICAgICAgICAgICAgICAgICAgICJzMzpMaXN0QnVja2V0IgogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgICAgIlJlc291cmNlIjogWyJhcm46YXdzOnMzOjo6JyAuICRidWNrZXRfbmFtZSAuICciXQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICBdCiAgICAgICAgfSc7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgdGhlIGNhY2hlIGZpbGUgcGF0aCBmb3IgYSBidWNrZXQvcHJlZml4IGNvbWJpbmF0aW9uLgogICAgICoKICAgICAqIEBwYXJhbSBpbnQgICAgJGJ1Y2tldF9pZAogICAgICogQHBhcmFtIHN0cmluZyAkcHJlZml4CiAgICAgKiBAcmV0dXJuIHN0cmluZwogICAgICovCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldENhY2hlRmlsZSgkYnVja2V0X2lkLCAkcHJlZml4ID0gJycpCiAgICB7CiAgICAgICAgJGNvbmZpZyA9IFxjbXNfY29uZmlnOjpnZXRfaW5zdGFuY2UoKTsKICAgICAgICAkanNvbl9maWxlX25hbWUgPSAnYXdzczNfJyAuIFxBV1NTREtcZW5jcnlwdDo6ZW5jb2RlZmlsZW5hbWUoJGJ1Y2tldF9pZCAuICdfJyAuIHN0cl9yZXBsYWNlKCcvJywgJ18nLCAkcHJlZml4KSkgLiAnLmNtcyc7CiAgICAgICAgcmV0dXJuICRjb25maWdbJ3RtcF9jYWNoZV9sb2NhdGlvbiddIC4gJy8nIC4gJGpzb25fZmlsZV9uYW1lOwogICAgfQoKICAgIC8qKgogICAgICogQ2xlYXIgdGhlIGNhY2hlIGZpbGUgZm9yIGEgZ2l2ZW4gYnVja2V0L3ByZWZpeC4KICAgICAqCiAgICAgKiBAcGFyYW0gaW50ICAgICRidWNrZXRfaWQKICAgICAqIEBwYXJhbSBzdHJpbmcgJHByZWZpeAogICAgICogQHJldHVybiBib29sCiAgICAgKi8KICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gY2xlYXJCdWNrZXRDYWNoZSgkYnVja2V0X2lkLCAkcHJlZml4ID0gJycpCiAgICB7CiAgICAgICAgJGNhY2hlRmlsZSA9IHNlbGY6OmdldENhY2hlRmlsZSgkYnVja2V0X2lkLCAkcHJlZml4KTsKICAgICAgICBpZiAoZmlsZV9leGlzdHMoJGNhY2hlRmlsZSkpIHsKICAgICAgICAgICAgcmV0dXJuIEB1bmxpbmsoJGNhY2hlRmlsZSk7CiAgICAgICAgfQogICAgICAgIHJldHVybiB0cnVlOwogICAgfQp9Cg==]]></data>
	</file>
	<file>
		<filename>/lib/fielddefs</filename>
		<isdir>1</isdir>
	</file>
	<file>
		<filename>/lib/fielddefs/AWSS3File</filename>
		<isdir>1</isdir>
	</file>
	<file>
		<filename>/lib/fielddefs/AWSS3File/admin.AWSS3File.tpl</filename>
		<isdir>0</isdir>
		<data><![CDATA[eyogQVdTUzNGaWxlIEFkbWluIEVkaXQgVGVtcGxhdGUgKn0KPGRpdiBjbGFzcz0iYXdzczNmaWxlLWZpZWxkIj4KICAgIHthc3NpZ24gdmFyPW1ldGEgdmFsdWU9JGZpZWxkZGVmLT5HZXRNZXRhZGF0YSgpfQogICAge2Fzc2lnbiB2YXI9cmF3X3ZhbHVlIHZhbHVlPSR2YWx1ZX0KCiAgICB7aWYgJG1ldGEgJiYgIWVtcHR5KCRtZXRhLmZpbGVuYW1lKX0KICAgICAgICA8ZGl2IGNsYXNzPSJhd3NzM2ZpbGUtZXhpc3RpbmciIHN0eWxlPSJtYXJnaW4tYm90dG9tOiA4cHg7IHBhZGRpbmc6IDhweDsgYmFja2dyb3VuZDogI2Y4ZjlmYTsgYm9yZGVyOiAxcHggc29saWQgI2RlZTJlNjsgYm9yZGVyLXJhZGl1czogNHB4OyI+CiAgICAgICAgICAgIDxzdHJvbmc+eyRtZXRhLmZpbGVuYW1lfGVzY2FwZTonaHRtbGFsbCd9PC9zdHJvbmc+CiAgICAgICAgICAgIHtpZiBpc3NldCgkbWV0YS5zaXplKX0KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LW11dGVkIj4oe2lmICRtZXRhLnNpemUgPj0gMTA0ODU3Nn17bWF0aCBlcXVhdGlvbj0icm91bmQoeC8xMDQ4NTc2LDEpIiB4PSRtZXRhLnNpemV9IE1Ce2Vsc2VpZiAkbWV0YS5zaXplID49IDEwMjR9e21hdGggZXF1YXRpb249InJvdW5kKHgvMTAyNCwxKSIgeD0kbWV0YS5zaXplfSBLQntlbHNlfXskbWV0YS5zaXplfSBCey9pZn0pPC9zcGFuPgogICAgICAgICAgICB7L2lmfQogICAgICAgICAgICB7aWYgaXNzZXQoJG1ldGEudXBsb2FkZWRfYXQpfQogICAgICAgICAgICAgICAgPHNtYWxsIGNsYXNzPSJ0ZXh0LW11dGVkIj51cGxvYWRlZCB7JG1ldGEudXBsb2FkZWRfYXR9PC9zbWFsbD4KICAgICAgICAgICAgey9pZn0KICAgICAgICAgICAgPGJyPgogICAgICAgICAgICA8bGFiZWwgc3R5bGU9Im1hcmdpbi10b3A6IDRweDsiPgogICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJ7JGFjdGlvbmlkfWF3c3MzZmlsZV9jbGVhcl97JGZpZWxkZGVmLT5HZXRBbGlhcygpfSIgdmFsdWU9IjEiPgogICAgICAgICAgICAgICAgUmVtb3ZlIGZpbGUKICAgICAgICAgICAgPC9sYWJlbD4KICAgICAgICA8L2Rpdj4KICAgIHtlbHNlaWYgJHJhd192YWx1ZSAhPSAnJ30KICAgICAgICA8ZGl2IGNsYXNzPSJhd3NzM2ZpbGUtZXhpc3RpbmciIHN0eWxlPSJtYXJnaW4tYm90dG9tOiA4cHg7IHBhZGRpbmc6IDhweDsgYmFja2dyb3VuZDogI2Y4ZjlmYTsgYm9yZGVyOiAxcHggc29saWQgI2RlZTJlNjsgYm9yZGVyLXJhZGl1czogNHB4OyI+CiAgICAgICAgICAgIDxzdHJvbmc+eyRyYXdfdmFsdWV8cmVnZXhfcmVwbGFjZTonLy4qW1xcL10vJzonJ3xlc2NhcGU6J2h0bWxhbGwnfTwvc3Ryb25nPgogICAgICAgICAgICA8YnI+CiAgICAgICAgICAgIDxsYWJlbCBzdHlsZT0ibWFyZ2luLXRvcDogNHB4OyI+CiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9InskYWN0aW9uaWR9YXdzczNmaWxlX2NsZWFyX3skZmllbGRkZWYtPkdldEFsaWFzKCl9IiB2YWx1ZT0iMSI+CiAgICAgICAgICAgICAgICBSZW1vdmUgZmlsZQogICAgICAgICAgICA8L2xhYmVsPgogICAgICAgIDwvZGl2PgogICAgey9pZn0KCiAgICA8ZGl2IGNsYXNzPSJhd3NzM2ZpbGUtdXBsb2FkIj4KICAgICAgICA8aW5wdXQgdHlwZT0iZmlsZSIgbmFtZT0ieyRhY3Rpb25pZH1hd3NzM2ZpbGVfeyRmaWVsZGRlZi0+R2V0QWxpYXMoKX0iPgogICAgICAgIDxzbWFsbCBjbGFzcz0iaGVscC1ibG9jayB0ZXh0LW11dGVkIj5VcGxvYWQgdG8gUzMuIExlYXZlIGVtcHR5IHRvIGtlZXAgZXhpc3RpbmcgZmlsZS48L3NtYWxsPgogICAgPC9kaXY+CgogICAgeyogUHJlc2VydmUgY3VycmVudCB2YWx1ZSBhcyBoaWRkZW4gZmllbGQgKn0KICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InskYWN0aW9uaWR9eyRmaWVsZGRlZi0+R2V0QWxpYXMoKX0iIHZhbHVlPSJ7JHJhd192YWx1ZXxlc2NhcGU6J2h0bWxhbGwnfSI+CjwvZGl2Pgo=]]></data>
	</file>
	<file>
		<filename>/lib/fielddefs/AWSS3File/input.AWSS3File.tpl</filename>
		<isdir>0</isdir>
		<data><![CDATA[eyogQVdTUzNGaWxlIEZyb250ZW5kIElucHV0IFRlbXBsYXRlICp9CjxkaXYgY2xhc3M9ImF3c3MzZmlsZS1pbnB1dCBmb3JtLWdyb3VwIj4KICAgIHthc3NpZ24gdmFyPW1ldGEgdmFsdWU9JGZpZWxkZGVmLT5HZXRNZXRhZGF0YSgpfQogICAge2Fzc2lnbiB2YXI9cmF3X3ZhbHVlIHZhbHVlPSR2YWx1ZX0KCiAgICB7aWYgJG1ldGEgJiYgIWVtcHR5KCRtZXRhLmZpbGVuYW1lKX0KICAgICAgICA8ZGl2IGNsYXNzPSJhd3NzM2ZpbGUtY3VycmVudCB3ZWxsIHdlbGwtc20iIHN0eWxlPSJtYXJnaW4tYm90dG9tOiA4cHg7Ij4KICAgICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLWZpbGUiPjwvaT4KICAgICAgICAgICAgPHN0cm9uZz57JG1ldGEuZmlsZW5hbWV8ZXNjYXBlOidodG1sYWxsJ308L3N0cm9uZz4KICAgICAgICAgICAge2lmIGlzc2V0KCRtZXRhLnNpemUpfQogICAgICAgICAgICAgICAgKHtpZiAkbWV0YS5zaXplID49IDEwNDg1NzZ9e21hdGggZXF1YXRpb249InJvdW5kKHgvMTA0ODU3NiwxKSIgeD0kbWV0YS5zaXplfSBNQntlbHNlaWYgJG1ldGEuc2l6ZSA+PSAxMDI0fXttYXRoIGVxdWF0aW9uPSJyb3VuZCh4LzEwMjQsMSkiIHg9JG1ldGEuc2l6ZX0gS0J7ZWxzZX17JG1ldGEuc2l6ZX0gQnsvaWZ9KQogICAgICAgICAgICB7L2lmfQogICAgICAgIDwvZGl2PgogICAgey9pZn0KCiAgICA8aW5wdXQgdHlwZT0iZmlsZSIgbmFtZT0ieyRhY3Rpb25pZH1hd3NzM2ZpbGVfeyRmaWVsZGRlZi0+R2V0QWxpYXMoKX0iIGNsYXNzPSJmb3JtLWNvbnRyb2wiPgogICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ieyRhY3Rpb25pZH17JGZpZWxkZGVmLT5HZXRBbGlhcygpfSIgdmFsdWU9InskcmF3X3ZhbHVlfGVzY2FwZTonaHRtbGFsbCd9Ij4KPC9kaXY+Cg==]]></data>
	</file>
	<file>
		<filename>/lib/fielddefs/AWSS3File/liseeh.AWSS3File.php</filename>
		<isdir>0</isdir>
		<data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQVdTUzMgTW9kdWxlIC0gTElTRSBGaWVsZCBEZWZpbml0aW9uIEV2ZW50IEhhbmRsZXIKIyBTZWUgTElDRU5TRSBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KaWYgKCFkZWZpbmVkKCdDTVNfVkVSU0lPTicpKSBleGl0OwoKLyoqCiAqIEFXU1MzRmlsZSBFdmVudCBIYW5kbGVyCiAqCiAqIEhhbmRsZXM6CiAqIC0gRmlsZSB1cGxvYWQgdG8gUzMgb24gaXRlbSBzYXZlIChQcmVQcm9jZXNzLCBzbyB2YWx1ZSBpcyBzZXQgYmVmb3JlIERCIHdyaXRlKQogKiAtIFN0b3JpbmcgbWV0YWRhdGEgKEpTT04pIG9yIHBsYWluIFMzIGtleSBhcyBmaWVsZCB2YWx1ZQogKiAtIENsZWFyaW5nIGZpbGUgKHJlbW92ZSByZWZlcmVuY2UsIG9wdGlvbmFsbHkgZGVsZXRlIGZyb20gUzMpCiAqLwpjbGFzcyBsaXNlZWhfQVdTUzNGaWxlIGV4dGVuZHMgTElTRUV2ZW50SGFuZGxlckJhc2UKewogICAgcHJpdmF0ZSAkX3VwbG9hZF9kYXRhID0gbnVsbDsKCiAgICAvKioKICAgICAqIFByZS1wcm9jZXNzOiBIYW5kbGUgdXBsb2FkcyBhbmQgY2xlYXIgcmVxdWVzdHMsIHNldCB2YWx1ZSBiZWZvcmUgREIgc2F2ZS4KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIEl0ZW1TYXZlUHJlUHJvY2VzcygmJGVycm9ycywgJiRwYXJhbXMpCiAgICB7CiAgICAgICAgJGFsaWFzID0gJHRoaXMtPkdldEFsaWFzKCk7CgogICAgICAgIC8vIENoZWNrIGZvciBjbGVhci9kZWxldGUgcmVxdWVzdAogICAgICAgICRjbGVhcl9rZXkgPSAnYXdzczNmaWxlX2NsZWFyXycgLiAkYWxpYXM7CiAgICAgICAgZm9yZWFjaCAoJHBhcmFtcyBhcyAka2V5ID0+ICR2YWwpIHsKICAgICAgICAgICAgaWYgKHN0cnBvcygka2V5LCAkY2xlYXJfa2V5KSAhPT0gZmFsc2UgJiYgJHZhbCA9PSAnMScpIHsKICAgICAgICAgICAgICAgICR0aGlzLT5faGFuZGxlQ2xlYXIoKTsKICAgICAgICAgICAgICAgIHBhcmVudDo6SXRlbVNhdmVQcmVQcm9jZXNzKCRlcnJvcnMsICRwYXJhbXMpOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAvLyBGaW5kIHVwbG9hZGVkIGZpbGUKICAgICAgICAkZmlsZV9rZXkgPSAkdGhpcy0+X2ZpbmRVcGxvYWRGaWVsZEtleSgpOwogICAgICAgIGlmICghJGZpbGVfa2V5IHx8IGVtcHR5KCRfRklMRVNbJGZpbGVfa2V5XVsnbmFtZSddKSB8fCAkX0ZJTEVTWyRmaWxlX2tleV1bJ2Vycm9yJ10gPT09IFVQTE9BRF9FUlJfTk9fRklMRSkgewogICAgICAgICAgICAvLyBObyBuZXcgZmlsZSB1cGxvYWRlZCwga2VlcCBleGlzdGluZyB2YWx1ZQogICAgICAgICAgICBwYXJlbnQ6Okl0ZW1TYXZlUHJlUHJvY2VzcygkZXJyb3JzLCAkcGFyYW1zKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgaWYgKCRfRklMRVNbJGZpbGVfa2V5XVsnZXJyb3InXSAhPT0gVVBMT0FEX0VSUl9PSykgewogICAgICAgICAgICAkZXJyb3JzW10gPSAnRmlsZSB1cGxvYWQgZXJyb3IgZm9yICInIC4gJHRoaXMtPkdldE5hbWUoKSAuICciOiBjb2RlICcgLiAkX0ZJTEVTWyRmaWxlX2tleV1bJ2Vycm9yJ107CiAgICAgICAgICAgIHBhcmVudDo6SXRlbVNhdmVQcmVQcm9jZXNzKCRlcnJvcnMsICRwYXJhbXMpOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICAkZmlsZW5hbWUgPSAkX0ZJTEVTWyRmaWxlX2tleV1bJ25hbWUnXTsKICAgICAgICAkdG1wX3BhdGggPSAkX0ZJTEVTWyRmaWxlX2tleV1bJ3RtcF9uYW1lJ107CiAgICAgICAgJHNpemUgPSAkX0ZJTEVTWyRmaWxlX2tleV1bJ3NpemUnXTsKICAgICAgICAkY29udGVudF90eXBlID0gJF9GSUxFU1skZmlsZV9rZXldWyd0eXBlJ10gPzogJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSc7CgogICAgICAgIC8vIFZhbGlkYXRlIGV4dGVuc2lvbgogICAgICAgICRleHQgPSBzdHJ0b2xvd2VyKHBhdGhpbmZvKCRmaWxlbmFtZSwgUEFUSElORk9fRVhURU5TSU9OKSk7CiAgICAgICAgJGFsbG93ZWQgPSAkdGhpcy0+X2dldEFsbG93ZWRFeHRlbnNpb25zKCk7CiAgICAgICAgaWYgKCFlbXB0eSgkYWxsb3dlZCkgJiYgIWluX2FycmF5KCRleHQsICRhbGxvd2VkKSkgewogICAgICAgICAgICAkZXJyb3JzW10gPSAkdGhpcy0+R2V0TmFtZSgpIC4gJzogRmlsZSB0eXBlICIuJyAuICRleHQgLiAnIiBpcyBub3QgYWxsb3dlZC4gQWNjZXB0ZWQ6ICcgLiBpbXBsb2RlKCcsICcsICRhbGxvd2VkKTsKICAgICAgICAgICAgcGFyZW50OjpJdGVtU2F2ZVByZVByb2Nlc3MoJGVycm9ycywgJHBhcmFtcyk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgIC8vIFZhbGlkYXRlIHNpemUKICAgICAgICAkbWF4X3NpemUgPSAoaW50KSAkdGhpcy0+R2V0T3B0aW9uVmFsdWUoJ21heF9zaXplJywgMCk7CiAgICAgICAgaWYgKCRtYXhfc2l6ZSA+IDAgJiYgJHNpemUgPiAkbWF4X3NpemUpIHsKICAgICAgICAgICAgJGVycm9yc1tdID0gJHRoaXMtPkdldE5hbWUoKSAuICc6IEZpbGUgaXMgdG9vIGxhcmdlLiBNYXhpbXVtOiAnIC4gJHRoaXMtPl9mb3JtYXRCeXRlcygkbWF4X3NpemUpOwogICAgICAgICAgICBwYXJlbnQ6Okl0ZW1TYXZlUHJlUHJvY2VzcygkZXJyb3JzLCAkcGFyYW1zKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgLy8gR2V0IEFXU1MzIG1vZHVsZQogICAgICAgICRhd3NzMyA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0FXU1MzJyk7CiAgICAgICAgaWYgKCEkYXdzczMpIHsKICAgICAgICAgICAgJGVycm9yc1tdID0gJ0FXU1MzIG1vZHVsZSBpcyBub3QgYXZhaWxhYmxlLic7CiAgICAgICAgICAgIHBhcmVudDo6SXRlbVNhdmVQcmVQcm9jZXNzKCRlcnJvcnMsICRwYXJhbXMpOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICAvLyBSZXNvbHZlIGJ1Y2tldAogICAgICAgICRidWNrZXRfaWQgPSAkdGhpcy0+R2V0T3B0aW9uVmFsdWUoJ2J1Y2tldF9pZCcsICcnKTsKICAgICAgICAkYnVja2V0ID0gIWVtcHR5KCRidWNrZXRfaWQpID8gJGF3c3MzLT5HZXRCdWNrZXQoKGludCkgJGJ1Y2tldF9pZCkgOiAkYXdzczMtPkdldEJ1Y2tldCgpOwoKICAgICAgICBpZiAoISRidWNrZXQpIHsKICAgICAgICAgICAgJGVycm9yc1tdID0gJ05vIFMzIGJ1Y2tldCBjb25maWd1cmVkIGZvciBmaWVsZCAiJyAuICR0aGlzLT5HZXROYW1lKCkgLiAnIi4nOwogICAgICAgICAgICBwYXJlbnQ6Okl0ZW1TYXZlUHJlUHJvY2VzcygkZXJyb3JzLCAkcGFyYW1zKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgLy8gQnVpbGQgUzMga2V5CiAgICAgICAgJHByZWZpeCA9IHRyaW0oJHRoaXMtPkdldE9wdGlvblZhbHVlKCdwcmVmaXgnLCAnJyksICcvJyk7CiAgICAgICAgJHNhZmVfZmlsZW5hbWUgPSAkdGhpcy0+X3Nhbml0aXplRmlsZW5hbWUoJGZpbGVuYW1lKTsKCiAgICAgICAgJHMzX2tleSA9ICFlbXB0eSgkcHJlZml4KSA/ICRwcmVmaXggLiAnLycgLiAkc2FmZV9maWxlbmFtZSA6ICRzYWZlX2ZpbGVuYW1lOwoKICAgICAgICAvLyBVcGxvYWQgdG8gUzMKICAgICAgICB0cnkgewogICAgICAgICAgICAkczN1dGlscyA9IG5ldyBcQVdTUzNcdXRpbHMoJGJ1Y2tldCk7CiAgICAgICAgICAgICRyZXN1bHQgPSAkczN1dGlscy0+dXBsb2FkX2ZpbGUoJHMzX2tleSwgJHRtcF9wYXRoKTsKCiAgICAgICAgICAgIGlmICghJHJlc3VsdFswXSkgewogICAgICAgICAgICAgICAgJGVycm9yc1tdID0gJ1MzIHVwbG9hZCBmYWlsZWQgZm9yICInIC4gJHRoaXMtPkdldE5hbWUoKSAuICciOiAnIC4gKCRyZXN1bHRbMV0gPz8gJ1Vua25vd24gZXJyb3InKTsKICAgICAgICAgICAgICAgIHBhcmVudDo6SXRlbVNhdmVQcmVQcm9jZXNzKCRlcnJvcnMsICRwYXJhbXMpOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgfSBjYXRjaCAoXEV4Y2VwdGlvbiAkZSkgewogICAgICAgICAgICAkZXJyb3JzW10gPSAnUzMgdXBsb2FkIGZhaWxlZCBmb3IgIicgLiAkdGhpcy0+R2V0TmFtZSgpIC4gJyI6ICcgLiAkZS0+Z2V0TWVzc2FnZSgpOwogICAgICAgICAgICBwYXJlbnQ6Okl0ZW1TYXZlUHJlUHJvY2VzcygkZXJyb3JzLCAkcGFyYW1zKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgLy8gU2V0IHZhbHVlIChiZWZvcmUgREIgc2F2ZSBoYXBwZW5zKQogICAgICAgICRzdG9yZV9tZXRhZGF0YSA9ICR0aGlzLT5HZXRPcHRpb25WYWx1ZSgnc3RvcmVfbWV0YWRhdGEnLCAnJyk7CiAgICAgICAgaWYgKCRzdG9yZV9tZXRhZGF0YSkgewogICAgICAgICAgICAkbWV0YWRhdGEgPSBbCiAgICAgICAgICAgICAgICAnZmlsZW5hbWUnICAgICA9PiAkZmlsZW5hbWUsCiAgICAgICAgICAgICAgICAnc2l6ZScgICAgICAgICA9PiAkc2l6ZSwKICAgICAgICAgICAgICAgICdjb250ZW50X3R5cGUnID0+ICRjb250ZW50X3R5cGUsCiAgICAgICAgICAgICAgICAnczNfa2V5JyAgICAgICA9PiAkczNfa2V5LAogICAgICAgICAgICAgICAgJ2J1Y2tldF9pZCcgICAgPT4gKGludCkgJGJ1Y2tldC0+aWQsCiAgICAgICAgICAgICAgICAndXJsJyAgICAgICAgICA9PiAkYXdzczMtPkdldEJ1Y2tldFVybCgkYnVja2V0LCAkczNfa2V5KSwKICAgICAgICAgICAgICAgICd1cGxvYWRlZF9hdCcgID0+IGRhdGUoJ1ktbS1kXFRIOmk6c1xaJyksCiAgICAgICAgICAgIF07CiAgICAgICAgICAgICR0aGlzLT5TZXRWYWx1ZShbanNvbl9lbmNvZGUoJG1ldGFkYXRhKV0pOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICR0aGlzLT5TZXRWYWx1ZShbJHMzX2tleV0pOwogICAgICAgIH0KCiAgICAgICAgLy8gUnVuIHBhcmVudCB2YWxpZGF0aW9uIChyZXF1aXJlZCBmaWVsZCBjaGVjaywgZXRjLikKICAgICAgICBwYXJlbnQ6Okl0ZW1TYXZlUHJlUHJvY2VzcygkZXJyb3JzLCAkcGFyYW1zKTsKICAgIH0KCiAgICAvKioKICAgICAqIE9uIGl0ZW0gZGVsZXRlOiBvcHRpb25hbGx5IHJlbW92ZSBmaWxlIGZyb20gUzMuCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBPbkl0ZW1EZWxldGUoXExJU0UgJG1vZCkKICAgIHsKICAgICAgICAkZGVsZXRlX29uX2NsZWFyID0gJHRoaXMtPkdldE9wdGlvblZhbHVlKCdkZWxldGVfb25fY2xlYXInLCAnJyk7CiAgICAgICAgaWYgKCEkZGVsZXRlX29uX2NsZWFyKSB7CiAgICAgICAgICAgIHBhcmVudDo6T25JdGVtRGVsZXRlKCRtb2QpOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICAkcmF3ID0gJHRoaXMtPkdldFZhbHVlKHNlbGY6OlRZUEVfU1RSSU5HKTsKICAgICAgICBpZiAoZW1wdHkoJHJhdykpIHsKICAgICAgICAgICAgcGFyZW50OjpPbkl0ZW1EZWxldGUoJG1vZCk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgICRzM19rZXkgPSAkcmF3OwogICAgICAgICRtZXRhID0ganNvbl9kZWNvZGUoJHJhdywgdHJ1ZSk7CiAgICAgICAgaWYgKGlzX2FycmF5KCRtZXRhKSAmJiBpc3NldCgkbWV0YVsnczNfa2V5J10pKSB7CiAgICAgICAgICAgICRzM19rZXkgPSAkbWV0YVsnczNfa2V5J107CiAgICAgICAgfQoKICAgICAgICAkYXdzczMgPSBcY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdBV1NTMycpOwogICAgICAgIGlmICgkYXdzczMgJiYgIWVtcHR5KCRzM19rZXkpKSB7CiAgICAgICAgICAgICRidWNrZXRfaWQgPSAkdGhpcy0+R2V0T3B0aW9uVmFsdWUoJ2J1Y2tldF9pZCcsICcnKTsKICAgICAgICAgICAgJGJ1Y2tldCA9ICFlbXB0eSgkYnVja2V0X2lkKSA/ICRhd3NzMy0+R2V0QnVja2V0KChpbnQpICRidWNrZXRfaWQpIDogJGF3c3MzLT5HZXRCdWNrZXQoKTsKICAgICAgICAgICAgaWYgKCRidWNrZXQpIHsKICAgICAgICAgICAgICAgIFxBV1NTM1x1dGlsczo6ZGVsZXRlT2JqZWN0KCRzM19rZXksICRidWNrZXQpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBwYXJlbnQ6Ok9uSXRlbURlbGV0ZSgkbW9kKTsKICAgIH0KCiAgICAvKioKICAgICAqIENsZWFyIHRoZSBzdG9yZWQgZmlsZSByZWZlcmVuY2UuCiAgICAgKi8KICAgIHByaXZhdGUgZnVuY3Rpb24gX2hhbmRsZUNsZWFyKCkKICAgIHsKICAgICAgICAkZGVsZXRlX29uX2NsZWFyID0gJHRoaXMtPkdldE9wdGlvblZhbHVlKCdkZWxldGVfb25fY2xlYXInLCAnJyk7CgogICAgICAgIGlmICgkZGVsZXRlX29uX2NsZWFyKSB7CiAgICAgICAgICAgICRyYXcgPSAkdGhpcy0+R2V0VmFsdWUoc2VsZjo6VFlQRV9TVFJJTkcpOwogICAgICAgICAgICAkczNfa2V5ID0gJHJhdzsKCiAgICAgICAgICAgICRtZXRhID0ganNvbl9kZWNvZGUoJHJhdywgdHJ1ZSk7CiAgICAgICAgICAgIGlmIChpc19hcnJheSgkbWV0YSkgJiYgaXNzZXQoJG1ldGFbJ3MzX2tleSddKSkgewogICAgICAgICAgICAgICAgJHMzX2tleSA9ICRtZXRhWydzM19rZXknXTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKCFlbXB0eSgkczNfa2V5KSkgewogICAgICAgICAgICAgICAgJGF3c3MzID0gXGNtc191dGlsczo6Z2V0X21vZHVsZSgnQVdTUzMnKTsKICAgICAgICAgICAgICAgIGlmICgkYXdzczMpIHsKICAgICAgICAgICAgICAgICAgICAkYnVja2V0X2lkID0gJHRoaXMtPkdldE9wdGlvblZhbHVlKCdidWNrZXRfaWQnLCAnJyk7CiAgICAgICAgICAgICAgICAgICAgJGJ1Y2tldCA9ICFlbXB0eSgkYnVja2V0X2lkKSA/ICRhd3NzMy0+R2V0QnVja2V0KChpbnQpICRidWNrZXRfaWQpIDogJGF3c3MzLT5HZXRCdWNrZXQoKTsKICAgICAgICAgICAgICAgICAgICBpZiAoJGJ1Y2tldCkgewogICAgICAgICAgICAgICAgICAgICAgICBcQVdTUzNcdXRpbHM6OmRlbGV0ZU9iamVjdCgkczNfa2V5LCAkYnVja2V0KTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICR0aGlzLT5TZXRWYWx1ZShbXSk7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgYWxsb3dlZCBleHRlbnNpb25zIGZyb20gZmllbGQgb3B0aW9ucyBvciBidWNrZXQgY29uZmlnLgogICAgICovCiAgICBwcml2YXRlIGZ1bmN0aW9uIF9nZXRBbGxvd2VkRXh0ZW5zaW9ucygpCiAgICB7CiAgICAgICAgJG9wdCA9ICR0aGlzLT5HZXRPcHRpb25WYWx1ZSgnYWxsb3dlZF9leHRlbnNpb25zJywgJycpOwogICAgICAgIGlmICghZW1wdHkoJG9wdCkpIHsKICAgICAgICAgICAgcmV0dXJuIGFycmF5X21hcCgndHJpbScsIGV4cGxvZGUoJywnLCBzdHJ0b2xvd2VyKCRvcHQpKSk7CiAgICAgICAgfQoKICAgICAgICAvLyBGYWxsIGJhY2sgdG8gYnVja2V0IGFsbG93ZWQgZXh0ZW5zaW9ucwogICAgICAgICRhd3NzMyA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0FXU1MzJyk7CiAgICAgICAgaWYgKCEkYXdzczMpIHJldHVybiBbXTsKCiAgICAgICAgJGJ1Y2tldF9pZCA9ICR0aGlzLT5HZXRPcHRpb25WYWx1ZSgnYnVja2V0X2lkJywgJycpOwogICAgICAgICRidWNrZXQgPSAhZW1wdHkoJGJ1Y2tldF9pZCkgPyAkYXdzczMtPkdldEJ1Y2tldCgoaW50KSAkYnVja2V0X2lkKSA6ICRhd3NzMy0+R2V0QnVja2V0KCk7CiAgICAgICAgaWYgKCEkYnVja2V0IHx8IGVtcHR5KCRidWNrZXQtPmFsbG93ZWRfZXh0ZW5zaW9ucykpIHJldHVybiBbXTsKCiAgICAgICAgcmV0dXJuIGFycmF5X21hcCgndHJpbScsIGV4cGxvZGUoJywnLCBzdHJ0b2xvd2VyKCRidWNrZXQtPmFsbG93ZWRfZXh0ZW5zaW9ucykpKTsKICAgIH0KCiAgICAvKioKICAgICAqIFNhbml0aXplIGZpbGVuYW1lIGZvciBTMyBrZXkgdXNhZ2UuCiAgICAgKi8KICAgIHByaXZhdGUgZnVuY3Rpb24gX3Nhbml0aXplRmlsZW5hbWUoJGZpbGVuYW1lKQogICAgewogICAgICAgICRmaWxlbmFtZSA9IHByZWdfcmVwbGFjZSgnL1teXHdcLVwuXChcKV0vJywgJy0nLCAkZmlsZW5hbWUpOwogICAgICAgICRmaWxlbmFtZSA9IHByZWdfcmVwbGFjZSgnLy17Mix9LycsICctJywgJGZpbGVuYW1lKTsKICAgICAgICByZXR1cm4gdHJpbSgkZmlsZW5hbWUsICctJyk7CiAgICB9CgogICAgLyoqCiAgICAgKiBGb3JtYXQgYnl0ZXMgdG8gaHVtYW4gcmVhZGFibGUuCiAgICAgKi8KICAgIHByaXZhdGUgZnVuY3Rpb24gX2Zvcm1hdEJ5dGVzKCRieXRlcykKICAgIHsKICAgICAgICBpZiAoJGJ5dGVzID49IDEwNDg1NzYpIHJldHVybiByb3VuZCgkYnl0ZXMgLyAxMDQ4NTc2LCAxKSAuICcgTUInOwogICAgICAgIGlmICgkYnl0ZXMgPj0gMTAyNCkgcmV0dXJuIHJvdW5kKCRieXRlcyAvIDEwMjQsIDEpIC4gJyBLQic7CiAgICAgICAgcmV0dXJuICRieXRlcyAuICcgQic7CiAgICB9CgogICAgLyoqCiAgICAgKiBGaW5kIHRoZSB1cGxvYWQgZmllbGQga2V5IGluICRfRklMRVMuCiAgICAgKi8KICAgIHByaXZhdGUgZnVuY3Rpb24gX2ZpbmRVcGxvYWRGaWVsZEtleSgpCiAgICB7CiAgICAgICAgJGV4cGVjdGVkID0gJ2F3c3MzZmlsZV8nIC4gJHRoaXMtPkdldEFsaWFzKCk7CiAgICAgICAgZm9yZWFjaCAoJF9GSUxFUyBhcyAka2V5ID0+ICRmaWxlKSB7CiAgICAgICAgICAgIGlmIChzdHJwb3MoJGtleSwgJGV4cGVjdGVkKSAhPT0gZmFsc2UpIHsKICAgICAgICAgICAgICAgIHJldHVybiAka2V5OwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiBudWxsOwogICAgfQp9Cg==]]></data>
	</file>
	<file>
		<filename>/lib/fielddefs/AWSS3File/lisefd.AWSS3File.php</filename>
		<isdir>0</isdir>
		<data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQVdTUzMgTW9kdWxlIC0gTElTRSBGaWVsZCBEZWZpbml0aW9uCiMgU2VlIExJQ0VOU0UgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmlmICghZGVmaW5lZCgnQ01TX1ZFUlNJT04nKSkgZXhpdDsKCi8qKgogKiBBV1NTM0ZpbGUgLSBDdXN0b20gTElTRSBmaWVsZCBkZWZpbml0aW9uIGZvciBTMyBmaWxlIHBpY2tlci91cGxvYWQuCiAqCiAqIEFsbG93cyBhbnkgTElTRSBpbnN0YW5jZSB0byBhZGQgYW4gUzMgZmlsZSBmaWVsZC4gVXNlcnMgY2FuOgogKiAtIFVwbG9hZCBhIGZpbGUgZGlyZWN0bHkgdG8gUzMgZnJvbSB0aGUgTElTRSBpdGVtIGVkaXQgZm9ybQogKiAtIFZpZXcvZG93bmxvYWQgdGhlIGN1cnJlbnRseSBzdG9yZWQgZmlsZQogKiAtIENsZWFyIHRoZSBzdG9yZWQgZmlsZSByZWZlcmVuY2UKICoKICogU3RvcmVzIHRoZSBTMyBrZXkgKHBhdGgpIGFzIHRoZSBmaWVsZCB2YWx1ZS4gV2hlbiB0aGUgc3RvcmVfbWV0YWRhdGEgb3B0aW9uCiAqIGlzIGVuYWJsZWQsIHN0b3JlcyBKU09OIHdpdGggZmlsZW5hbWUsIHNpemUsIGNvbnRlbnRfdHlwZSwgdXJsLCBhbmQgdGltZXN0YW1wLgogKgogKiBGaWVsZCBPcHRpb25zIChzZXQgaW4gTElTRSBGaWVsZCBEZWZpbml0aW9uIGFkbWluKToKICogLSBidWNrZXRfaWQ6IFdoaWNoIEFXU1MzIGJ1Y2tldCB0byB1c2UgKGJsYW5rID0gZGVmYXVsdCBidWNrZXQpCiAqIC0gcHJlZml4OiBTMyBrZXkgcHJlZml4IGZvciB1cGxvYWRzIChlLmcuICJ1cGxvYWRzL2RvY3VtZW50cyIpCiAqIC0gYWxsb3dlZF9leHRlbnNpb25zOiBDb21tYS1zZXBhcmF0ZWQgZXh0ZW5zaW9ucyAob3ZlcnJpZGVzIGJ1Y2tldCBzZXR0aW5nKQogKiAtIHN0b3JlX21ldGFkYXRhOiBJZiAiMSIsIHN0b3JlcyBmdWxsIEpTT04gbWV0YWRhdGEgaW5zdGVhZCBvZiBqdXN0IFMzIGtleQogKiAtIG1heF9zaXplOiBNYXggdXBsb2FkIHNpemUgaW4gYnl0ZXMgKDAgPSBubyBsaW1pdCBiZXlvbmQgc2VydmVyIGxpbWl0cykKICogLSBkZWxldGVfb25fY2xlYXI6IElmICIxIiwgZGVsZXRlcyB0aGUgUzMgb2JqZWN0IHdoZW4gZmlsZSBpcyBjbGVhcmVkL3JlbW92ZWQKICovCmNsYXNzIGxpc2VmZF9BV1NTM0ZpbGUgZXh0ZW5kcyBMSVNFRmllbGRkZWZCYXNlCnsKICAgIC8qKgogICAgICogRGVjbGFyZSBBV1NTMyBhcyBhIGRlcGVuZGVuY3kgc28gTElTRSBkaXNhYmxlcyB0aGlzIGZpZWxkZGVmCiAgICAgKiBpZiBBV1NTMyBpcyBub3QgaW5zdGFsbGVkLgogICAgICovCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIEdldE1vZHVsZURlcHMoKQogICAgewogICAgICAgIHJldHVybiBbJ0FXU1MzJyA9PiAnMi4wLjAnXTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJGRiX2luZm8sICRjYWxsZXJfb2JqZWN0ID0gbnVsbCkKICAgIHsKICAgICAgICBwYXJlbnQ6Ol9fY29uc3RydWN0KCRkYl9pbmZvLCAkY2FsbGVyX29iamVjdCk7CiAgICAgICAgJHRoaXMtPlNldEZyaWVuZGx5VHlwZSgnQVdTIFMzIEZpbGUnKTsKICAgIH0KCiAgICAvKioKICAgICAqIEFkbWluIGxpc3RpbmcgY29sdW1uOiBzaG93IGZpbGVuYW1lIG9yIFMzIGtleS4KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIFJlbmRlckZvckFkbWluTGlzdGluZygkaWQsICRyZXR1cm5pZCkKICAgIHsKICAgICAgICAkbWV0YSA9ICR0aGlzLT5HZXRNZXRhZGF0YSgpOwogICAgICAgIGlmICgkbWV0YSAmJiAhZW1wdHkoJG1ldGFbJ2ZpbGVuYW1lJ10pKSB7CiAgICAgICAgICAgIHJldHVybiBjbXNfaHRtbGVudGl0aWVzKCRtZXRhWydmaWxlbmFtZSddKTsKICAgICAgICB9CgogICAgICAgICR2YWwgPSAkdGhpcy0+R2V0VmFsdWUoc2VsZjo6VFlQRV9TVFJJTkcpOwogICAgICAgIGlmICghZW1wdHkoJHZhbCkpIHsKICAgICAgICAgICAgcmV0dXJuIGNtc19odG1sZW50aXRpZXMoYmFzZW5hbWUoJHZhbCkpOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuICcnOwogICAgfQoKICAgIC8qKgogICAgICogR2V0IHRoZSBwdWJsaWMgVVJMIGZvciB0aGUgc3RvcmVkIGZpbGUuCiAgICAgKgogICAgICogQHJldHVybiBzdHJpbmcKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIEdldEZpbGVVcmwoKQogICAgewogICAgICAgICRzM19rZXkgPSAkdGhpcy0+X3Jlc29sdmVTM0tleSgpOwogICAgICAgIGlmIChlbXB0eSgkczNfa2V5KSkgcmV0dXJuICcnOwoKICAgICAgICAkYXdzczMgPSBcY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdBV1NTMycpOwogICAgICAgIGlmICghJGF3c3MzKSByZXR1cm4gJyc7CgogICAgICAgICRidWNrZXQgPSAkdGhpcy0+X2dldEJ1Y2tldCgkYXdzczMpOwogICAgICAgIGlmICghJGJ1Y2tldCkgcmV0dXJuICcnOwoKICAgICAgICByZXR1cm4gJGF3c3MzLT5HZXRCdWNrZXRVcmwoJGJ1Y2tldCwgJHMzX2tleSk7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgYSBwcmVzaWduZWQgVVJMIGZvciB0aGUgc3RvcmVkIGZpbGUgKHRpbWUtbGltaXRlZCwgd29ya3MgZm9yIHByaXZhdGUgYnVja2V0cykuCiAgICAgKgogICAgICogQHJldHVybiBzdHJpbmcKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIEdldFByZXNpZ25lZFVybCgpCiAgICB7CiAgICAgICAgJHMzX2tleSA9ICR0aGlzLT5fcmVzb2x2ZVMzS2V5KCk7CiAgICAgICAgaWYgKGVtcHR5KCRzM19rZXkpKSByZXR1cm4gJyc7CgogICAgICAgICRhd3NzMyA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0FXU1MzJyk7CiAgICAgICAgaWYgKCEkYXdzczMpIHJldHVybiAnJzsKCiAgICAgICAgJGJ1Y2tldCA9ICR0aGlzLT5fZ2V0QnVja2V0KCRhd3NzMyk7CiAgICAgICAgaWYgKCEkYnVja2V0KSByZXR1cm4gJyc7CgogICAgICAgIHJldHVybiBcQVdTUzNcdXRpbHM6OnByZXNpZ25lZFVybCgkczNfa2V5LCAkYnVja2V0KTsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCBhIHJlZGlyZWN0IFVSTCB0aHJvdWdoIEFXU1MzJ3Mgc2lnbmVkIGxpbmsgbWVjaGFuaXNtLgogICAgICogVGhpcyBuZXZlciBleHBpcmVzIGluIGNhY2hlZCBwYWdlcyAoZ2VuZXJhdGVzIGEgZnJlc2ggcHJlc2lnbmVkIFVSTCBvbiBlYWNoIHJlcXVlc3QpLgogICAgICoKICAgICAqIEByZXR1cm4gc3RyaW5nCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRTaWduZWRMaW5rKCkKICAgIHsKICAgICAgICAkczNfa2V5ID0gJHRoaXMtPl9yZXNvbHZlUzNLZXkoKTsKICAgICAgICBpZiAoZW1wdHkoJHMzX2tleSkpIHJldHVybiAnJzsKCiAgICAgICAgJGF3c3MzID0gXGNtc191dGlsczo6Z2V0X21vZHVsZSgnQVdTUzMnKTsKICAgICAgICBpZiAoISRhd3NzMykgcmV0dXJuICcnOwoKICAgICAgICAkYnVja2V0ID0gJHRoaXMtPl9nZXRCdWNrZXQoJGF3c3MzKTsKICAgICAgICBpZiAoISRidWNrZXQpIHJldHVybiAnJzsKCiAgICAgICAgcmV0dXJuICRhd3NzMy0+Q3JlYXRlU2lnbmVkTGluaygkczNfa2V5LCAkYnVja2V0KTsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCBzdG9yZWQgbWV0YWRhdGEgKHBhcnNlZCBmcm9tIEpTT04pLCBvciBudWxsIGlmIHBsYWluIGtleSBzdG9yZWQuCiAgICAgKgogICAgICogQHJldHVybiBhcnJheXxudWxsCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRNZXRhZGF0YSgpCiAgICB7CiAgICAgICAgJHJhdyA9ICR0aGlzLT5HZXRWYWx1ZShzZWxmOjpUWVBFX1NUUklORyk7CiAgICAgICAgaWYgKGVtcHR5KCRyYXcpKSByZXR1cm4gbnVsbDsKCiAgICAgICAgJG1ldGEgPSBqc29uX2RlY29kZSgkcmF3LCB0cnVlKTsKICAgICAgICBpZiAoaXNfYXJyYXkoJG1ldGEpICYmIGlzc2V0KCRtZXRhWydzM19rZXknXSkpIHsKICAgICAgICAgICAgcmV0dXJuICRtZXRhOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIG51bGw7CiAgICB9CgogICAgLyoqCiAgICAgKiBDdXN0b20gRnJvbnRFbmRSZW5kZXIgd2l0aCBmaWxlIFVSTCBjb250ZXh0LgogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gRnJvbnRFbmRSZW5kZXIoJHBhcmFtcyA9IFtdKQogICAgewogICAgICAgIGlmIChlbXB0eSgkdGhpcy0+dmlldykgJiYgJHRoaXMtPkhhc1RlbXBsYXRlKCkpIHsKICAgICAgICAgICAgJHNtYXJ0eSA9IFxjbXNtcygpLT5HZXRTbWFydHkoKTsKICAgICAgICAgICAgJHNtYXJ0eS0+YXNzaWduKCduYW1lJywgJHRoaXMtPkdldE5hbWUoKSk7CiAgICAgICAgICAgICRzbWFydHktPmFzc2lnbigndmFsdWUnLCAkdGhpcy0+R2V0VmFsdWUoKSk7CiAgICAgICAgICAgICRzbWFydHktPmFzc2lnbigndHlwZScsICR0aGlzLT5HZXRUeXBlKCkpOwogICAgICAgICAgICAkc21hcnR5LT5hc3NpZ24oJ2FsaWFzJywgJHRoaXMtPkdldEFsaWFzKCkpOwogICAgICAgICAgICAkc21hcnR5LT5hc3NpZ24oJ3BhcmFtcycsICRwYXJhbXMpOwogICAgICAgICAgICAkc21hcnR5LT5hc3NpZ24oJ2ZpZWxkZGVmJywgJHRoaXMpOwogICAgICAgICAgICAkc21hcnR5LT5hc3NpZ24oJ2ZpbGVfdXJsJywgJHRoaXMtPkdldEZpbGVVcmwoKSk7CiAgICAgICAgICAgICRzbWFydHktPmFzc2lnbignc2lnbmVkX2xpbmsnLCAkdGhpcy0+R2V0U2lnbmVkTGluaygpKTsKICAgICAgICAgICAgJHNtYXJ0eS0+YXNzaWduKCdtZXRhZGF0YScsICR0aGlzLT5HZXRNZXRhZGF0YSgpKTsKICAgICAgICAgICAgJHRoaXMtPnZpZXcgPSAkc21hcnR5LT5mZXRjaCgnc3RyaW5nOicgLiAkdGhpcy0+R2V0VGVtcGxhdGUoKSk7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJHRoaXMtPnZpZXc7CiAgICB9CgogICAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgIyBQcml2YXRlIGhlbHBlcnMKICAgICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgICAvKioKICAgICAqIFJlc29sdmUgdGhlIFMzIGtleSBmcm9tIHZhbHVlIChoYW5kbGVzIGJvdGggcGxhaW4ga2V5IGFuZCBKU09OIG1ldGFkYXRhKS4KICAgICAqLwogICAgcHJpdmF0ZSBmdW5jdGlvbiBfcmVzb2x2ZVMzS2V5KCkKICAgIHsKICAgICAgICAkcmF3ID0gJHRoaXMtPkdldFZhbHVlKHNlbGY6OlRZUEVfU1RSSU5HKTsKICAgICAgICBpZiAoZW1wdHkoJHJhdykpIHJldHVybiAnJzsKCiAgICAgICAgJG1ldGEgPSBqc29uX2RlY29kZSgkcmF3LCB0cnVlKTsKICAgICAgICBpZiAoaXNfYXJyYXkoJG1ldGEpICYmIGlzc2V0KCRtZXRhWydzM19rZXknXSkpIHsKICAgICAgICAgICAgcmV0dXJuICRtZXRhWydzM19rZXknXTsKICAgICAgICB9CgogICAgICAgIHJldHVybiAkcmF3OwogICAgfQoKICAgIC8qKgogICAgICogR2V0IHRoZSBjb25maWd1cmVkIGJ1Y2tldCBmb3IgdGhpcyBmaWVsZC4KICAgICAqLwogICAgcHJpdmF0ZSBmdW5jdGlvbiBfZ2V0QnVja2V0KCRhd3NzMykKICAgIHsKICAgICAgICAkYnVja2V0X2lkID0gJHRoaXMtPkdldE9wdGlvblZhbHVlKCdidWNrZXRfaWQnLCAnJyk7CiAgICAgICAgaWYgKCFlbXB0eSgkYnVja2V0X2lkKSkgewogICAgICAgICAgICByZXR1cm4gJGF3c3MzLT5HZXRCdWNrZXQoKGludCkgJGJ1Y2tldF9pZCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkYXdzczMtPkdldEJ1Y2tldCgpOwogICAgfQp9Cg==]]></data>
	</file>
	<file>
		<filename>/lib/fielddefs/AWSS3File/list.AWSS3File.tpl</filename>
		<isdir>0</isdir>
		<data><![CDATA[eyogQVdTUzNGaWxlIEFkbWluIExpc3QgQ29sdW1uICp9Cnthc3NpZ24gdmFyPW1ldGEgdmFsdWU9JGZpZWxkZGVmLT5HZXRNZXRhZGF0YSgpfQp7aWYgJG1ldGEgJiYgIWVtcHR5KCRtZXRhLmZpbGVuYW1lKX0KICAgIDxzcGFuIHRpdGxlPSJ7JG1ldGEuczNfa2V5fGVzY2FwZTonaHRtbGFsbCd9Ij57JG1ldGEuZmlsZW5hbWV8ZXNjYXBlOidodG1sYWxsJ308L3NwYW4+CntlbHNlaWYgJHZhbHVlICE9ICcnfQogICAgeyR2YWx1ZXxyZWdleF9yZXBsYWNlOicvLipbXFwvXS8nOicnfGVzY2FwZTonaHRtbGFsbCd9CntlbHNlfQogICAgPHNwYW4gY2xhc3M9InRleHQtbXV0ZWQiPiZtZGFzaDs8L3NwYW4+CnsvaWZ9Cg==]]></data>
	</file>
	<file>
		<filename>/lib/fielddefs/AWSS3File/output.AWSS3File.tpl</filename>
		<isdir>0</isdir>
		<data><![CDATA[eyogQVdTUzNGaWxlIEZyb250ZW5kIE91dHB1dCBUZW1wbGF0ZSAqfQp7aWYgJHZhbHVlICE9ICcnfQp7aWYgJG1ldGFkYXRhICYmICFlbXB0eSgkbWV0YWRhdGEuZmlsZW5hbWUpfQo8YSBocmVmPSJ7JHNpZ25lZF9saW5rfSIgdGFyZ2V0PSJfYmxhbmsiPnskbWV0YWRhdGEuZmlsZW5hbWV8ZXNjYXBlOidodG1sYWxsJ308L2E+CntlbHNlfQo8YSBocmVmPSJ7JHNpZ25lZF9saW5rfSIgdGFyZ2V0PSJfYmxhbmsiPnskdmFsdWV8cmVnZXhfcmVwbGFjZTonLy4qW1xcL10vJzonJ3xlc2NhcGU6J2h0bWxhbGwnfTwvYT4Key9pZn0Key9pZn0K]]></data>
	</file>
	<file>
		<filename>/lib/fielddefs/ecb2</filename>
		<isdir>1</isdir>
	</file>
	<file>
		<filename>/lib/fielddefs/ecb2/class.ecb2fd_s3_file_picker.php</filename>
		<isdir>0</isdir>
		<data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQVdTUzMgTW9kdWxlIC0gRUNCMiBGaWVsZCBEZWZpbml0aW9uOiBzM19maWxlX3BpY2tlcgojIFNlZSBMSUNFTlNFIGZvciBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKLyoqCiAqIEVDQjIgZmllbGQgdHlwZTogczNfZmlsZV9waWNrZXIKICoKICogUHJvdmlkZXMgYSBkcm9wZG93biBzZWxlY3RvciBvZiBmaWxlcyBmcm9tIGFuIFMzIGJ1Y2tldCBjb25maWd1cmVkIGluIHRoZSBBV1NTMyBtb2R1bGUuCiAqIFN0b3JlcyB0aGUgc2VsZWN0ZWQgUzMga2V5IGFzIHRoZSBjb250ZW50IGJsb2NrIHZhbHVlLgogKgogKiBVc2FnZSBpbiBwYWdlIHRlbXBsYXRlOgogKiAgIHtjb250ZW50X21vZHVsZSBtb2R1bGU9RUNCMiBmaWVsZD1zM19maWxlX3BpY2tlciBibG9jaz1teV9maWxlfQogKiAgIHtjb250ZW50X21vZHVsZSBtb2R1bGU9RUNCMiBmaWVsZD1zM19maWxlX3BpY2tlciBibG9jaz1oZXJvIGJ1Y2tldD0yIHByZWZpeD0iaW1hZ2VzLyIgYWxsb3dlZF9leHQ9ImpwZyxwbmcsd2VicCJ9CiAqLwpjbGFzcyBlY2IyZmRfczNfZmlsZV9waWNrZXIgZXh0ZW5kcyBlY2IyX0ZpZWxkRGVmQmFzZQp7CiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJG1vZCwgJGJsb2NrTmFtZSwgJHZhbHVlLCAkcGFyYW1zLCAkYWRkaW5nLCAkaWQgPSAwKQogICAgewogICAgICAgIHBhcmVudDo6X19jb25zdHJ1Y3QoJG1vZCwgJGJsb2NrTmFtZSwgJHZhbHVlLCAkcGFyYW1zLCAkYWRkaW5nLCAkaWQpOwoKICAgICAgICAkdGhpcy0+Z2V0X3ZhbHVlcygkdmFsdWUpOwoKICAgICAgICAkdGhpcy0+c2V0X2ZpZWxkX3BhcmFtZXRlcnMoKTsKCiAgICAgICAgJHRoaXMtPmluaXRpYWxpc2Vfb3B0aW9ucygkcGFyYW1zKTsKICAgIH0KCiAgICAvKioKICAgICAqIFNldHMgdGhlIGFsbG93ZWQgcGFyYW1ldGVycyBmb3IgdGhpcyBmaWVsZCB0eXBlLgogICAgICovCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gc2V0X2ZpZWxkX3BhcmFtZXRlcnMoKQogICAgewogICAgICAgICR0aGlzLT5kZWZhdWx0X3BhcmFtZXRlcnMgPSBbCiAgICAgICAgICAgICdsYWJlbCcgICAgICAgICAgPT4gWydkZWZhdWx0JyA9PiAnJywgICAgICdmaWx0ZXInID0+IHNlbGY6OkVDQjJfU0FOSVRJWkVfU1RSSU5HXSwKICAgICAgICAgICAgJ2J1Y2tldCcgICAgICAgICA9PiBbJ2RlZmF1bHQnID0+ICcnLCAgICAgJ2ZpbHRlcicgPT4gc2VsZjo6RUNCMl9TQU5JVElaRV9TVFJJTkddLAogICAgICAgICAgICAncHJlZml4JyAgICAgICAgID0+IFsnZGVmYXVsdCcgPT4gJycsICAgICAnZmlsdGVyJyA9PiBzZWxmOjpFQ0IyX1NBTklUSVpFX1NUUklOR10sCiAgICAgICAgICAgICdhbGxvd2VkX2V4dCcgICAgPT4gWydkZWZhdWx0JyA9PiAnJywgICAgICdmaWx0ZXInID0+IHNlbGY6OkVDQjJfU0FOSVRJWkVfU1RSSU5HXSwKICAgICAgICAgICAgJ3Nob3dfcHJldmlldycgICA9PiBbJ2RlZmF1bHQnID0+IFRSVUUsICAgJ2ZpbHRlcicgPT4gRklMVEVSX1ZBTElEQVRFX0JPT0xFQU5dLAogICAgICAgICAgICAnbGlua190eXBlJyAgICAgID0+IFsnZGVmYXVsdCcgPT4gJ3NpZ25lZCcsICdmaWx0ZXInID0+IHNlbGY6OkVDQjJfU0FOSVRJWkVfU1RSSU5HXSwKICAgICAgICAgICAgJ2RlZmF1bHRfdmFsdWUnICA9PiBbJ2RlZmF1bHQnID0+ICcnLCAgICAgJ2ZpbHRlcicgPT4gc2VsZjo6RUNCMl9TQU5JVElaRV9TVFJJTkddLAogICAgICAgICAgICAnYWRtaW5fZ3JvdXBzJyAgID0+IFsnZGVmYXVsdCcgPT4gJycsICAgICAnZmlsdGVyJyA9PiBzZWxmOjpFQ0IyX1NBTklUSVpFX1NUUklOR10sCiAgICAgICAgICAgICdkZXNjcmlwdGlvbicgICAgPT4gWydkZWZhdWx0JyA9PiAnJywgICAgICdmaWx0ZXInID0+IEZJTFRFUl9ERUZBVUxUXSwKICAgICAgICBdOwogICAgfQoKICAgIC8qKgogICAgICogUmVuZGVyIHRoZSBjb250ZW50IGJsb2NrIGlucHV0IGZvciB0aGUgcGFnZSBlZGl0b3IuCiAgICAgKgogICAgICogQHJldHVybiBzdHJpbmcgSFRNTCBmb3IgdGhlIGFkbWluIGNvbnRlbnQgYmxvY2sKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldF9jb250ZW50X2Jsb2NrX2lucHV0KCkKICAgIHsKICAgICAgICBpZiAoIWVtcHR5KCR0aGlzLT5vcHRpb25zWydhZG1pbl9ncm91cHMnXSkgJiYKICAgICAgICAgICAgISR0aGlzLT5pc192YWxpZF9ncm91cF9tZW1iZXIoJHRoaXMtPm9wdGlvbnNbJ2FkbWluX2dyb3VwcyddKSkgewogICAgICAgICAgICByZXR1cm4gJHRoaXMtPmVjYjJfaGlkZGVuX2ZpZWxkKCk7CiAgICAgICAgfQoKICAgICAgICAvLyBHZXQgQVdTUzMgbW9kdWxlCiAgICAgICAgJGF3c3MzID0gXGNtc191dGlsczo6Z2V0X21vZHVsZSgnQVdTUzMnKTsKICAgICAgICBpZiAoISRhd3NzMykgewogICAgICAgICAgICByZXR1cm4gJzxkaXYgY2xhc3M9InBhZ2V3YXJuaW5nIj5BV1NTMyBtb2R1bGUgaXMgbm90IGluc3RhbGxlZCBvciBub3QgYWN0aXZlLjwvZGl2PicKICAgICAgICAgICAgICAgIC4gJzxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IicgLiAkdGhpcy0+YmxvY2tfbmFtZSAuICciIHZhbHVlPSInIC4gY21zX2h0bWxlbnRpdGllcygkdGhpcy0+dmFsdWUpIC4gJyI+JzsKICAgICAgICB9CgogICAgICAgIC8vIFJlc29sdmUgYnVja2V0CiAgICAgICAgJGJ1Y2tldCA9ICRhd3NzMy0+UmVzb2x2ZUJ1Y2tldChbJ2J1Y2tldCcgPT4gJHRoaXMtPm9wdGlvbnNbJ2J1Y2tldCddXSk7CiAgICAgICAgaWYgKCEkYnVja2V0KSB7CiAgICAgICAgICAgIHJldHVybiAnPGRpdiBjbGFzcz0icGFnZXdhcm5pbmciPk5vIFMzIGJ1Y2tldCBjb25maWd1cmVkLiBEZWZpbmUgYSBidWNrZXQgaW4gdGhlIEFXU1MzIG1vZHVsZS48L2Rpdj4nCiAgICAgICAgICAgICAgICAuICc8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSInIC4gJHRoaXMtPmJsb2NrX25hbWUgLiAnIiB2YWx1ZT0iJyAuIGNtc19odG1sZW50aXRpZXMoJHRoaXMtPnZhbHVlKSAuICciPic7CiAgICAgICAgfQoKICAgICAgICAvLyBCdWlsZCBmaWxlIGxpc3QgZnJvbSBTMwogICAgICAgICRwcmVmaXggPSAkdGhpcy0+b3B0aW9uc1sncHJlZml4J107CiAgICAgICAgJGZpbGVzID0gJHRoaXMtPl9nZXRGaWxlTGlzdCgkYnVja2V0LCAkcHJlZml4KTsKCiAgICAgICAgLy8gRmlsdGVyIGJ5IGFsbG93ZWQgZXh0ZW5zaW9ucwogICAgICAgICRhbGxvd2VkX2V4dCA9IFtdOwogICAgICAgIGlmICghZW1wdHkoJHRoaXMtPm9wdGlvbnNbJ2FsbG93ZWRfZXh0J10pKSB7CiAgICAgICAgICAgICRhbGxvd2VkX2V4dCA9IGFycmF5X21hcCgndHJpbScsIGV4cGxvZGUoJywnLCBzdHJ0b2xvd2VyKCR0aGlzLT5vcHRpb25zWydhbGxvd2VkX2V4dCddKSkpOwogICAgICAgIH0KICAgICAgICBpZiAoIWVtcHR5KCRhbGxvd2VkX2V4dCkpIHsKICAgICAgICAgICAgJGZpbGVzID0gYXJyYXlfZmlsdGVyKCRmaWxlcywgZnVuY3Rpb24gKCRmaWxlKSB1c2UgKCRhbGxvd2VkX2V4dCkgewogICAgICAgICAgICAgICAgJGV4dCA9IHN0cnRvbG93ZXIocGF0aGluZm8oJGZpbGUtPm5hbWUsIFBBVEhJTkZPX0VYVEVOU0lPTikpOwogICAgICAgICAgICAgICAgcmV0dXJuIGluX2FycmF5KCRleHQsICRhbGxvd2VkX2V4dCk7CiAgICAgICAgICAgIH0pOwogICAgICAgIH0KCiAgICAgICAgLy8gQnVpbGQgc2VsZWN0IG9wdGlvbnMKICAgICAgICAkb3B0cyA9IFsnJyA9PiAnLS0gbm9uZSAtLSddOwogICAgICAgIGZvcmVhY2ggKCRmaWxlcyBhcyAkZmlsZSkgewogICAgICAgICAgICAkb3B0c1skZmlsZS0+a2V5XSA9ICRmaWxlLT5uYW1lIC4gJyAoJyAuIFxBV1NTM1x1dGlsczo6Zm9ybWF0Qnl0ZXMoJGZpbGUtPnNpemUpIC4gJyknOwogICAgICAgIH0KCiAgICAgICAgLy8gR2V0IGN1cnJlbnQgZmlsZSBVUkwgZm9yIHByZXZpZXcKICAgICAgICAkZmlsZV91cmwgPSAnJzsKICAgICAgICAkaXNfaW1hZ2UgPSBmYWxzZTsKICAgICAgICBpZiAoIWVtcHR5KCR0aGlzLT52YWx1ZSkpIHsKICAgICAgICAgICAgJGZpbGVfdXJsID0gJGF3c3MzLT5HZXRCdWNrZXRVcmwoJGJ1Y2tldCwgJHRoaXMtPnZhbHVlKTsKICAgICAgICAgICAgJGlzX2ltYWdlID0gXEFXU1MzXHV0aWxzOjppc19maWxlX2ltYWdlKCR0aGlzLT52YWx1ZSk7CiAgICAgICAgfQoKICAgICAgICAkY2xhc3MgPSAnY21zX2Ryb3Bkb3duJzsKICAgICAgICAkc21hcnR5ID0gXENtc0FwcDo6Z2V0X2luc3RhbmNlKCktPkdldFNtYXJ0eSgpOwogICAgICAgICR0cGwgPSAkc21hcnR5LT5DcmVhdGVUZW1wbGF0ZSgnc3RyaW5nOicgLiAkdGhpcy0+Z2V0X3RlbXBsYXRlKCksIG51bGwsIG51bGwsICRzbWFydHkpOwogICAgICAgICR0cGwtPmFzc2lnbignYmxvY2tfbmFtZScsICR0aGlzLT5ibG9ja19uYW1lKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ3ZhbHVlJywgJHRoaXMtPnZhbHVlKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ29wdHMnLCAkb3B0cyk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdmaWxlX3VybCcsICRmaWxlX3VybCk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdpc19pbWFnZScsICRpc19pbWFnZSk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdzaG93X3ByZXZpZXcnLCAkdGhpcy0+b3B0aW9uc1snc2hvd19wcmV2aWV3J10pOwogICAgICAgICR0cGwtPmFzc2lnbignYnVja2V0X25hbWUnLCAkYnVja2V0LT5idWNrZXRfbmFtZSk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdidWNrZXRfdXJsJywgJGF3c3MzLT5HZXRCdWNrZXRVcmwoJGJ1Y2tldCkpOwogICAgICAgICR0cGwtPmFzc2lnbignZGVzY3JpcHRpb24nLCAkdGhpcy0+b3B0aW9uc1snZGVzY3JpcHRpb24nXSk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdsYWJlbCcsICR0aGlzLT5vcHRpb25zWydsYWJlbCddKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2lzX3N1Yl9maWVsZCcsICR0aGlzLT5pc19zdWJfZmllbGQpOwogICAgICAgIGlmICgkdGhpcy0+aXNfc3ViX2ZpZWxkKSB7CiAgICAgICAgICAgICR0cGwtPmFzc2lnbignc3ViX3Jvd19udW1iZXInLCAkdGhpcy0+c3ViX3Jvd19udW1iZXIpOwogICAgICAgICAgICAkdHBsLT5hc3NpZ24oJ3N1YkZpZWxkTmFtZScsICR0aGlzLT5zdWJfcGFyZW50X2Jsb2NrIC4gJ1tyXycgLiAkdGhpcy0+c3ViX3Jvd19udW1iZXIgLiAnXVsnIC4KICAgICAgICAgICAgICAgICR0aGlzLT5ibG9ja19uYW1lIC4gJ10nKTsKICAgICAgICAgICAgJHRwbC0+YXNzaWduKCdzdWJGaWVsZElkJywgJHRoaXMtPnN1Yl9wYXJlbnRfYmxvY2sgLiAnX3JfJyAuICR0aGlzLT5zdWJfcm93X251bWJlciAuICdfJyAuCiAgICAgICAgICAgICAgICAkdGhpcy0+YmxvY2tfbmFtZSk7CiAgICAgICAgICAgICRjbGFzcyAuPSAnIHJlcGVhdGVyLWZpZWxkJzsKICAgICAgICB9CiAgICAgICAgJHRwbC0+YXNzaWduKCdjbGFzcycsICRjbGFzcyk7CgogICAgICAgIHJldHVybiAkdHBsLT5mZXRjaCgpOwogICAgfQoKICAgIC8qKgogICAgICogR2V0IGZpbGUgbGlzdCBmcm9tIFMzIGJ1Y2tldCB3aXRoIGdpdmVuIHByZWZpeC4KICAgICAqCiAgICAgKiBAcGFyYW0gb2JqZWN0ICRidWNrZXQKICAgICAqIEBwYXJhbSBzdHJpbmcgJHByZWZpeAogICAgICogQHJldHVybiBhcnJheSBvZiBzdGRDbGFzcyBmaWxlIG9iamVjdHMKICAgICAqLwogICAgcHJpdmF0ZSBmdW5jdGlvbiBfZ2V0RmlsZUxpc3QoJGJ1Y2tldCwgJHByZWZpeCkKICAgIHsKICAgICAgICAkcXVlcnkgPSBuZXcgXEFXU1MzXGJ1Y2tldF9xdWVyeShbCiAgICAgICAgICAgICdidWNrZXRfb2JqJyA9PiAkYnVja2V0LAogICAgICAgICAgICAncHJlZml4JyAgICAgPT4gJHByZWZpeCwKICAgICAgICBdKTsKCiAgICAgICAgJGRhdGEgPSAkcXVlcnktPmV4ZWN1dGUoKTsKCiAgICAgICAgJGZpbGVzID0gW107CiAgICAgICAgaWYgKCFlbXB0eSgkZGF0YVsnaXRlbXMnXSkpIHsKICAgICAgICAgICAgZm9yZWFjaCAoJGRhdGFbJ2l0ZW1zJ10gYXMgJGl0ZW0pIHsKICAgICAgICAgICAgICAgIGlmICghZW1wdHkoJGl0ZW0tPmRpcikpIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgJGZpbGVzW10gPSAkaXRlbTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgcmV0dXJuICRmaWxlczsKICAgIH0KCiAgICAvKioKICAgICAqIE92ZXJyaWRlOiByZXR1cm4gaGVscCB0ZW1wbGF0ZSBmcm9tIEFXU1MzIG1vZHVsZSBkaXJlY3RvcnkuCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfZmllbGRfaGVscCgpCiAgICB7CiAgICAgICAgJGhlbHBfZmlsZW5hbWUgPSAkdGhpcy0+X2dldEZpZWxkRGVmUGF0aCgpIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuCiAgICAgICAgICAgICR0aGlzLT5tb2Q6OkhFTFBfVEVNUExBVEVfUFJFRklYIC4gJHRoaXMtPm1vZDo6RklFTERfREVGX1BSRUZJWCAuICR0aGlzLT5maWVsZCAuICcudHBsJzsKICAgICAgICAkZmllbGRfaGVscCA9IChpc19yZWFkYWJsZSgkaGVscF9maWxlbmFtZSkpID8gQGZpbGVfZ2V0X2NvbnRlbnRzKCRoZWxwX2ZpbGVuYW1lKSA6ICcnOwoKICAgICAgICAkc21hcnR5ID0gXENtc0FwcDo6Z2V0X2luc3RhbmNlKCktPkdldFNtYXJ0eSgpOwogICAgICAgICR0cGwgPSAkc21hcnR5LT5DcmVhdGVUZW1wbGF0ZSgnc3RyaW5nOicgLiAkZmllbGRfaGVscCwgbnVsbCwgbnVsbCwgJHNtYXJ0eSk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdmaWVsZGRlZicsICR0aGlzKTsKICAgICAgICByZXR1cm4gJHRwbC0+ZmV0Y2goKTsKICAgIH0KCiAgICAvKioKICAgICAqIE92ZXJyaWRlOiByZXR1cm4gaW5wdXQgdGVtcGxhdGUgZnJvbSBBV1NTMyBtb2R1bGUgZGlyZWN0b3J5LgogICAgICovCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0X3RlbXBsYXRlKCkKICAgIHsKICAgICAgICBpZiAoIWVtcHR5KCR0aGlzLT5jYWNoZWRfdGVtcGxhdGUpKSB7CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+Y2FjaGVkX3RlbXBsYXRlOwogICAgICAgIH0KCiAgICAgICAgJGZpbGVuYW1lID0gJHRoaXMtPl9nZXRGaWVsZERlZlBhdGgoKSAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLgogICAgICAgICAgICAkdGhpcy0+bW9kOjpJTlBVVF9URU1QTEFURV9QUkVGSVggLiAkdGhpcy0+bW9kOjpGSUVMRF9ERUZfUFJFRklYIC4gJHRoaXMtPmZpZWxkIC4gJy50cGwnOwoKICAgICAgICBpZiAoaXNfcmVhZGFibGUoJGZpbGVuYW1lKSkgewogICAgICAgICAgICAkdGhpcy0+Y2FjaGVkX3RlbXBsYXRlID0gQGZpbGVfZ2V0X2NvbnRlbnRzKCRmaWxlbmFtZSk7CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+Y2FjaGVkX3RlbXBsYXRlOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuICcnOwogICAgfQoKICAgIC8qKgogICAgICogR2V0IHRoZSBwYXRoIHRvIHRoaXMgZmllbGQgZGVmaW5pdGlvbidzIGRpcmVjdG9yeSAoaW5zaWRlIEFXU1MzIG1vZHVsZSkuCiAgICAgKi8KICAgIHByaXZhdGUgZnVuY3Rpb24gX2dldEZpZWxkRGVmUGF0aCgpCiAgICB7CiAgICAgICAgJGF3c3MzX3BhdGggPSBjbXNfam9pbl9wYXRoKENNU19ST09UX1BBVEgsICdtb2R1bGVzJywgJ0FXU1MzJyk7CiAgICAgICAgcmV0dXJuIGNtc19qb2luX3BhdGgoJGF3c3MzX3BhdGgsICdsaWInLCAnZmllbGRkZWZzJywgJ2VjYjInKTsKICAgIH0KfQo=]]></data>
	</file>
	<file>
		<filename>/lib/fielddefs/ecb2/class.ecb2fd_s3_file_selector.php</filename>
		<isdir>0</isdir>
		<data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQVdTUzMgTW9kdWxlIC0gRUNCMiBGaWVsZCBEZWZpbml0aW9uOiBzM19maWxlX3NlbGVjdG9yCiMgU2VlIExJQ0VOU0UgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgovKioKICogRUNCMiBmaWVsZCB0eXBlOiBzM19maWxlX3NlbGVjdG9yCiAqCiAqIFByb3ZpZGVzIGEgZmlsZSB1cGxvYWQgaW5wdXQgdGhhdCBzYXZlcyBkaXJlY3RseSB0byBTMy4KICogU2hvd3MgYSBwcmV2aWV3IG9mIHRoZSBjdXJyZW50bHkgc3RvcmVkIGZpbGUgKGltYWdlIHRodW1ibmFpbCBvciBmaWxlIGxpbmspLgogKiBTaW1pbGFyIHRvIGZpbGVfcGlja2VyL2ZpbGVfc2VsZWN0b3IgYnV0IHVwbG9hZHMgZ28gdG8gUzMgaW5zdGVhZCBvZiBsb2NhbCBmaWxlc3lzdGVtLgogKgogKiBVc2FnZSBpbiBwYWdlIHRlbXBsYXRlOgogKiAgIHtjb250ZW50X21vZHVsZSBtb2R1bGU9RUNCMiBmaWVsZD1zM19maWxlX3NlbGVjdG9yIGJsb2NrPW15X2ZpbGV9CiAqICAge2NvbnRlbnRfbW9kdWxlIG1vZHVsZT1FQ0IyIGZpZWxkPXMzX2ZpbGVfc2VsZWN0b3IgYmxvY2s9aGVybyBidWNrZXQ9MiBwcmVmaXg9ImltYWdlcy8iIGFsbG93ZWRfZXh0PSJqcGcscG5nLHdlYnAifQogKi8KY2xhc3MgZWNiMmZkX3MzX2ZpbGVfc2VsZWN0b3IgZXh0ZW5kcyBlY2IyX0ZpZWxkRGVmQmFzZQp7CiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJG1vZCwgJGJsb2NrTmFtZSwgJHZhbHVlLCAkcGFyYW1zLCAkYWRkaW5nLCAkaWQgPSAwKQogICAgewogICAgICAgIHBhcmVudDo6X19jb25zdHJ1Y3QoJG1vZCwgJGJsb2NrTmFtZSwgJHZhbHVlLCAkcGFyYW1zLCAkYWRkaW5nLCAkaWQpOwoKICAgICAgICAkdGhpcy0+Z2V0X3ZhbHVlcygkdmFsdWUpOwoKICAgICAgICAkdGhpcy0+c2V0X2ZpZWxkX3BhcmFtZXRlcnMoKTsKCiAgICAgICAgJHRoaXMtPmluaXRpYWxpc2Vfb3B0aW9ucygkcGFyYW1zKTsKICAgIH0KCiAgICAvKioKICAgICAqIFNldHMgdGhlIGFsbG93ZWQgcGFyYW1ldGVycyBmb3IgdGhpcyBmaWVsZCB0eXBlLgogICAgICovCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gc2V0X2ZpZWxkX3BhcmFtZXRlcnMoKQogICAgewogICAgICAgICR0aGlzLT5kZWZhdWx0X3BhcmFtZXRlcnMgPSBbCiAgICAgICAgICAgICdsYWJlbCcgICAgICAgICAgPT4gWydkZWZhdWx0JyA9PiAnJywgICAgICdmaWx0ZXInID0+IHNlbGY6OkVDQjJfU0FOSVRJWkVfU1RSSU5HXSwKICAgICAgICAgICAgJ2J1Y2tldCcgICAgICAgICA9PiBbJ2RlZmF1bHQnID0+ICcnLCAgICAgJ2ZpbHRlcicgPT4gc2VsZjo6RUNCMl9TQU5JVElaRV9TVFJJTkddLAogICAgICAgICAgICAncHJlZml4JyAgICAgICAgID0+IFsnZGVmYXVsdCcgPT4gJycsICAgICAnZmlsdGVyJyA9PiBzZWxmOjpFQ0IyX1NBTklUSVpFX1NUUklOR10sCiAgICAgICAgICAgICdhbGxvd2VkX2V4dCcgICAgPT4gWydkZWZhdWx0JyA9PiAnJywgICAgICdmaWx0ZXInID0+IHNlbGY6OkVDQjJfU0FOSVRJWkVfU1RSSU5HXSwKICAgICAgICAgICAgJ21heF9zaXplJyAgICAgICA9PiBbJ2RlZmF1bHQnID0+IDAsICAgICAgJ2ZpbHRlcicgPT4gRklMVEVSX1ZBTElEQVRFX0lOVF0sCiAgICAgICAgICAgICdzaG93X3ByZXZpZXcnICAgPT4gWydkZWZhdWx0JyA9PiBUUlVFLCAgICdmaWx0ZXInID0+IEZJTFRFUl9WQUxJREFURV9CT09MRUFOXSwKICAgICAgICAgICAgJ2RlZmF1bHRfdmFsdWUnICA9PiBbJ2RlZmF1bHQnID0+ICcnLCAgICAgJ2ZpbHRlcicgPT4gc2VsZjo6RUNCMl9TQU5JVElaRV9TVFJJTkddLAogICAgICAgICAgICAnYWRtaW5fZ3JvdXBzJyAgID0+IFsnZGVmYXVsdCcgPT4gJycsICAgICAnZmlsdGVyJyA9PiBzZWxmOjpFQ0IyX1NBTklUSVpFX1NUUklOR10sCiAgICAgICAgICAgICdkZXNjcmlwdGlvbicgICAgPT4gWydkZWZhdWx0JyA9PiAnJywgICAgICdmaWx0ZXInID0+IEZJTFRFUl9ERUZBVUxUXSwKICAgICAgICBdOwogICAgfQoKICAgIC8qKgogICAgICogUmVuZGVyIHRoZSBjb250ZW50IGJsb2NrIGlucHV0IGZvciB0aGUgcGFnZSBlZGl0b3IuCiAgICAgKgogICAgICogQHJldHVybiBzdHJpbmcgSFRNTCBmb3IgdGhlIGFkbWluIGNvbnRlbnQgYmxvY2sKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldF9jb250ZW50X2Jsb2NrX2lucHV0KCkKICAgIHsKICAgICAgICBpZiAoIWVtcHR5KCR0aGlzLT5vcHRpb25zWydhZG1pbl9ncm91cHMnXSkgJiYKICAgICAgICAgICAgISR0aGlzLT5pc192YWxpZF9ncm91cF9tZW1iZXIoJHRoaXMtPm9wdGlvbnNbJ2FkbWluX2dyb3VwcyddKSkgewogICAgICAgICAgICByZXR1cm4gJHRoaXMtPmVjYjJfaGlkZGVuX2ZpZWxkKCk7CiAgICAgICAgfQoKICAgICAgICAvLyBHZXQgQVdTUzMgbW9kdWxlCiAgICAgICAgJGF3c3MzID0gXGNtc191dGlsczo6Z2V0X21vZHVsZSgnQVdTUzMnKTsKICAgICAgICBpZiAoISRhd3NzMykgewogICAgICAgICAgICByZXR1cm4gJzxkaXYgY2xhc3M9InBhZ2V3YXJuaW5nIj5BV1NTMyBtb2R1bGUgaXMgbm90IGluc3RhbGxlZCBvciBub3QgYWN0aXZlLjwvZGl2PicKICAgICAgICAgICAgICAgIC4gJzxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IicgLiAkdGhpcy0+YmxvY2tfbmFtZSAuICciIHZhbHVlPSInIC4gY21zX2h0bWxlbnRpdGllcygkdGhpcy0+dmFsdWUpIC4gJyI+JzsKICAgICAgICB9CgogICAgICAgIC8vIFJlc29sdmUgYnVja2V0CiAgICAgICAgJGJ1Y2tldCA9ICRhd3NzMy0+UmVzb2x2ZUJ1Y2tldChbJ2J1Y2tldCcgPT4gJHRoaXMtPm9wdGlvbnNbJ2J1Y2tldCddXSk7CiAgICAgICAgaWYgKCEkYnVja2V0KSB7CiAgICAgICAgICAgIHJldHVybiAnPGRpdiBjbGFzcz0icGFnZXdhcm5pbmciPk5vIFMzIGJ1Y2tldCBjb25maWd1cmVkLiBEZWZpbmUgYSBidWNrZXQgaW4gdGhlIEFXU1MzIG1vZHVsZS48L2Rpdj4nCiAgICAgICAgICAgICAgICAuICc8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSInIC4gJHRoaXMtPmJsb2NrX25hbWUgLiAnIiB2YWx1ZT0iJyAuIGNtc19odG1sZW50aXRpZXMoJHRoaXMtPnZhbHVlKSAuICciPic7CiAgICAgICAgfQoKICAgICAgICAvLyBDdXJyZW50IGZpbGUgaW5mbwogICAgICAgICRmaWxlX3VybCA9ICcnOwogICAgICAgICRpc19pbWFnZSA9IGZhbHNlOwogICAgICAgIGlmICghZW1wdHkoJHRoaXMtPnZhbHVlKSkgewogICAgICAgICAgICAkZmlsZV91cmwgPSAkYXdzczMtPkdldEJ1Y2tldFVybCgkYnVja2V0LCAkdGhpcy0+dmFsdWUpOwogICAgICAgICAgICAkaXNfaW1hZ2UgPSBcQVdTUzNcdXRpbHM6OmlzX2ZpbGVfaW1hZ2UoJHRoaXMtPnZhbHVlKTsKICAgICAgICB9CgogICAgICAgIC8vIEJ1aWxkIGFjY2VwdCBhdHRyaWJ1dGUgZnJvbSBhbGxvd2VkX2V4dAogICAgICAgICRhY2NlcHQgPSAnJzsKICAgICAgICBpZiAoIWVtcHR5KCR0aGlzLT5vcHRpb25zWydhbGxvd2VkX2V4dCddKSkgewogICAgICAgICAgICAkZXh0cyA9IGFycmF5X21hcCgndHJpbScsIGV4cGxvZGUoJywnLCAkdGhpcy0+b3B0aW9uc1snYWxsb3dlZF9leHQnXSkpOwogICAgICAgICAgICAkYWNjZXB0ID0gJy4nIC4gaW1wbG9kZSgnLC4nLCAkZXh0cyk7CiAgICAgICAgfQoKICAgICAgICAkY2xhc3MgPSAnJzsKICAgICAgICAkc21hcnR5ID0gXENtc0FwcDo6Z2V0X2luc3RhbmNlKCktPkdldFNtYXJ0eSgpOwogICAgICAgICR0cGwgPSAkc21hcnR5LT5DcmVhdGVUZW1wbGF0ZSgnc3RyaW5nOicgLiAkdGhpcy0+Z2V0X3RlbXBsYXRlKCksIG51bGwsIG51bGwsICRzbWFydHkpOwogICAgICAgICR0cGwtPmFzc2lnbignYmxvY2tfbmFtZScsICR0aGlzLT5ibG9ja19uYW1lKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ3ZhbHVlJywgJHRoaXMtPnZhbHVlKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2ZpbGVfdXJsJywgJGZpbGVfdXJsKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2lzX2ltYWdlJywgJGlzX2ltYWdlKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ3Nob3dfcHJldmlldycsICR0aGlzLT5vcHRpb25zWydzaG93X3ByZXZpZXcnXSk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdidWNrZXRfbmFtZScsICRidWNrZXQtPmJ1Y2tldF9uYW1lKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2J1Y2tldF91cmwnLCAkYXdzczMtPkdldEJ1Y2tldFVybCgkYnVja2V0KSk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdhY2NlcHQnLCAkYWNjZXB0KTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2FsbG93ZWRfZXh0JywgJHRoaXMtPm9wdGlvbnNbJ2FsbG93ZWRfZXh0J10pOwogICAgICAgICR0cGwtPmFzc2lnbignbWF4X3NpemUnLCAkdGhpcy0+b3B0aW9uc1snbWF4X3NpemUnXSk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdkZXNjcmlwdGlvbicsICR0aGlzLT5vcHRpb25zWydkZXNjcmlwdGlvbiddKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2xhYmVsJywgJHRoaXMtPm9wdGlvbnNbJ2xhYmVsJ10pOwogICAgICAgICR0cGwtPmFzc2lnbignaXNfc3ViX2ZpZWxkJywgJHRoaXMtPmlzX3N1Yl9maWVsZCk7CiAgICAgICAgaWYgKCR0aGlzLT5pc19zdWJfZmllbGQpIHsKICAgICAgICAgICAgJHRwbC0+YXNzaWduKCdzdWJfcm93X251bWJlcicsICR0aGlzLT5zdWJfcm93X251bWJlcik7CiAgICAgICAgICAgICR0cGwtPmFzc2lnbignc3ViRmllbGROYW1lJywgJHRoaXMtPnN1Yl9wYXJlbnRfYmxvY2sgLiAnW3JfJyAuICR0aGlzLT5zdWJfcm93X251bWJlciAuICddWycgLgogICAgICAgICAgICAgICAgJHRoaXMtPmJsb2NrX25hbWUgLiAnXScpOwogICAgICAgICAgICAkdHBsLT5hc3NpZ24oJ3N1YkZpZWxkSWQnLCAkdGhpcy0+c3ViX3BhcmVudF9ibG9jayAuICdfcl8nIC4gJHRoaXMtPnN1Yl9yb3dfbnVtYmVyIC4gJ18nIC4KICAgICAgICAgICAgICAgICR0aGlzLT5ibG9ja19uYW1lKTsKICAgICAgICAgICAgJGNsYXNzIC49ICcgcmVwZWF0ZXItZmllbGQnOwogICAgICAgIH0KICAgICAgICAkdHBsLT5hc3NpZ24oJ2NsYXNzJywgJGNsYXNzKTsKCiAgICAgICAgcmV0dXJuICR0cGwtPmZldGNoKCk7CiAgICB9CgogICAgLyoqCiAgICAgKiBQcm9jZXNzIHRoZSB1cGxvYWRlZCBmaWxlOiB1cGxvYWQgdG8gUzMgYW5kIHJldHVybiBTMyBrZXkgYXMgdmFsdWUuCiAgICAgKgogICAgICogQHBhcmFtIG1peGVkICRpbnB1dEFycmF5CiAgICAgKiBAcmV0dXJuIHN0cmluZwogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2NvbnRlbnRfYmxvY2tfdmFsdWUoJGlucHV0QXJyYXkpCiAgICB7CiAgICAgICAgLy8gJGlucHV0QXJyYXkgY29tZXMgYXMgdGhlIGZvcm0gdmFsdWUgZm9yIHRoaXMgYmxvY2tfbmFtZQogICAgICAgIC8vIEZvciBmaWxlIHVwbG9hZHMsIGNoZWNrICRfRklMRVMKICAgICAgICAkZmlsZV9rZXkgPSAkdGhpcy0+YmxvY2tfbmFtZSAuICdfX3MzZmlsZSc7CgogICAgICAgIGlmIChpc3NldCgkX0ZJTEVTWyRmaWxlX2tleV0pICYmICRfRklMRVNbJGZpbGVfa2V5XVsnZXJyb3InXSA9PT0gVVBMT0FEX0VSUl9PSykgewogICAgICAgICAgICAkZmlsZW5hbWUgPSAkX0ZJTEVTWyRmaWxlX2tleV1bJ25hbWUnXTsKICAgICAgICAgICAgJHRtcF9wYXRoID0gJF9GSUxFU1skZmlsZV9rZXldWyd0bXBfbmFtZSddOwoKICAgICAgICAgICAgLy8gVmFsaWRhdGUgZXh0ZW5zaW9uCiAgICAgICAgICAgIGlmICghZW1wdHkoJHRoaXMtPm9wdGlvbnNbJ2FsbG93ZWRfZXh0J10pKSB7CiAgICAgICAgICAgICAgICAkYWxsb3dlZCA9IGFycmF5X21hcCgndHJpbScsIGV4cGxvZGUoJywnLCBzdHJ0b2xvd2VyKCR0aGlzLT5vcHRpb25zWydhbGxvd2VkX2V4dCddKSkpOwogICAgICAgICAgICAgICAgJGV4dCA9IHN0cnRvbG93ZXIocGF0aGluZm8oJGZpbGVuYW1lLCBQQVRISU5GT19FWFRFTlNJT04pKTsKICAgICAgICAgICAgICAgIGlmICghaW5fYXJyYXkoJGV4dCwgJGFsbG93ZWQpKSB7CiAgICAgICAgICAgICAgICAgICAgLy8gSW52YWxpZCBleHRlbnNpb24sIGtlZXAgZXhpc3RpbmcgdmFsdWUKICAgICAgICAgICAgICAgICAgICByZXR1cm4gaXNfYXJyYXkoJGlucHV0QXJyYXkpID8gKCRpbnB1dEFycmF5WzBdID8/ICcnKSA6IChzdHJpbmcpICRpbnB1dEFycmF5OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyBWYWxpZGF0ZSBzaXplCiAgICAgICAgICAgICRtYXhfc2l6ZSA9IChpbnQpICR0aGlzLT5vcHRpb25zWydtYXhfc2l6ZSddOwogICAgICAgICAgICBpZiAoJG1heF9zaXplID4gMCAmJiAkX0ZJTEVTWyRmaWxlX2tleV1bJ3NpemUnXSA+ICRtYXhfc2l6ZSkgewogICAgICAgICAgICAgICAgcmV0dXJuIGlzX2FycmF5KCRpbnB1dEFycmF5KSA/ICgkaW5wdXRBcnJheVswXSA/PyAnJykgOiAoc3RyaW5nKSAkaW5wdXRBcnJheTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gR2V0IEFXU1MzIG1vZHVsZSBhbmQgYnVja2V0CiAgICAgICAgICAgICRhd3NzMyA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0FXU1MzJyk7CiAgICAgICAgICAgIGlmICghJGF3c3MzKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gaXNfYXJyYXkoJGlucHV0QXJyYXkpID8gKCRpbnB1dEFycmF5WzBdID8/ICcnKSA6IChzdHJpbmcpICRpbnB1dEFycmF5OwogICAgICAgICAgICB9CgogICAgICAgICAgICAkYnVja2V0ID0gJGF3c3MzLT5SZXNvbHZlQnVja2V0KFsnYnVja2V0JyA9PiAkdGhpcy0+b3B0aW9uc1snYnVja2V0J11dKTsKICAgICAgICAgICAgaWYgKCEkYnVja2V0KSB7CiAgICAgICAgICAgICAgICByZXR1cm4gaXNfYXJyYXkoJGlucHV0QXJyYXkpID8gKCRpbnB1dEFycmF5WzBdID8/ICcnKSA6IChzdHJpbmcpICRpbnB1dEFycmF5OwogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyBCdWlsZCBTMyBrZXkKICAgICAgICAgICAgJHByZWZpeCA9IHRyaW0oJHRoaXMtPm9wdGlvbnNbJ3ByZWZpeCddLCAnLycpOwogICAgICAgICAgICAkc2FmZV9maWxlbmFtZSA9ICR0aGlzLT5fc2FuaXRpemVGaWxlbmFtZSgkZmlsZW5hbWUpOwogICAgICAgICAgICAkczNfa2V5ID0gIWVtcHR5KCRwcmVmaXgpID8gJHByZWZpeCAuICcvJyAuICRzYWZlX2ZpbGVuYW1lIDogJHNhZmVfZmlsZW5hbWU7CgogICAgICAgICAgICAvLyBVcGxvYWQgdG8gUzMKICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICRzM3V0aWxzID0gbmV3IFxBV1NTM1x1dGlscygkYnVja2V0KTsKICAgICAgICAgICAgICAgICRyZXN1bHQgPSAkczN1dGlscy0+dXBsb2FkX2ZpbGUoJHMzX2tleSwgJHRtcF9wYXRoKTsKCiAgICAgICAgICAgICAgICBpZiAoJHJlc3VsdFswXSkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiAkczNfa2V5OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGNhdGNoIChcRXhjZXB0aW9uICRlKSB7CiAgICAgICAgICAgICAgICBhdWRpdCgnJywgJ0FXU1MzJywgJ0VDQjIgczNfZmlsZV9zZWxlY3RvciB1cGxvYWQgZmFpbGVkIGZvciAiJyAuICR0aGlzLT5ibG9ja19uYW1lIC4gJyI6ICcgLiAkZS0+Z2V0TWVzc2FnZSgpKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgcmV0dXJuIGlzX2FycmF5KCRpbnB1dEFycmF5KSA/ICgkaW5wdXRBcnJheVswXSA/PyAnJykgOiAoc3RyaW5nKSAkaW5wdXRBcnJheTsKICAgICAgICB9CgogICAgICAgIC8vIE5vIGZpbGUgdXBsb2FkZWQsIGNoZWNrIGZvciBjbGVhciByZXF1ZXN0CiAgICAgICAgJGNsZWFyX2tleSA9ICR0aGlzLT5ibG9ja19uYW1lIC4gJ19fczNjbGVhcic7CiAgICAgICAgaWYgKGlzc2V0KCRfUE9TVFskY2xlYXJfa2V5XSkgJiYgJF9QT1NUWyRjbGVhcl9rZXldID09ICcxJykgewogICAgICAgICAgICByZXR1cm4gJyc7CiAgICAgICAgfQoKICAgICAgICAvLyBObyBjaGFuZ2UsIGtlZXAgZXhpc3RpbmcgdmFsdWUKICAgICAgICByZXR1cm4gaXNfYXJyYXkoJGlucHV0QXJyYXkpID8gKCRpbnB1dEFycmF5WzBdID8/ICcnKSA6IChzdHJpbmcpICRpbnB1dEFycmF5OwogICAgfQoKICAgIC8qKgogICAgICogU2FuaXRpemUgZmlsZW5hbWUgZm9yIFMzIGtleSB1c2FnZS4KICAgICAqLwogICAgcHJpdmF0ZSBmdW5jdGlvbiBfc2FuaXRpemVGaWxlbmFtZSgkZmlsZW5hbWUpCiAgICB7CiAgICAgICAgJGZpbGVuYW1lID0gcHJlZ19yZXBsYWNlKCcvW15cd1wtXC5cKFwpXS8nLCAnLScsICRmaWxlbmFtZSk7CiAgICAgICAgJGZpbGVuYW1lID0gcHJlZ19yZXBsYWNlKCcvLXsyLH0vJywgJy0nLCAkZmlsZW5hbWUpOwogICAgICAgIHJldHVybiB0cmltKCRmaWxlbmFtZSwgJy0nKTsKICAgIH0KCiAgICAvKioKICAgICAqIE92ZXJyaWRlOiByZXR1cm4gaGVscCB0ZW1wbGF0ZSBmcm9tIEFXU1MzIG1vZHVsZSBkaXJlY3RvcnkuCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfZmllbGRfaGVscCgpCiAgICB7CiAgICAgICAgJGhlbHBfZmlsZW5hbWUgPSAkdGhpcy0+X2dldEZpZWxkRGVmUGF0aCgpIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuCiAgICAgICAgICAgICR0aGlzLT5tb2Q6OkhFTFBfVEVNUExBVEVfUFJFRklYIC4gJHRoaXMtPm1vZDo6RklFTERfREVGX1BSRUZJWCAuICR0aGlzLT5maWVsZCAuICcudHBsJzsKICAgICAgICAkZmllbGRfaGVscCA9IChpc19yZWFkYWJsZSgkaGVscF9maWxlbmFtZSkpID8gQGZpbGVfZ2V0X2NvbnRlbnRzKCRoZWxwX2ZpbGVuYW1lKSA6ICcnOwoKICAgICAgICAkc21hcnR5ID0gXENtc0FwcDo6Z2V0X2luc3RhbmNlKCktPkdldFNtYXJ0eSgpOwogICAgICAgICR0cGwgPSAkc21hcnR5LT5DcmVhdGVUZW1wbGF0ZSgnc3RyaW5nOicgLiAkZmllbGRfaGVscCwgbnVsbCwgbnVsbCwgJHNtYXJ0eSk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdmaWVsZGRlZicsICR0aGlzKTsKICAgICAgICByZXR1cm4gJHRwbC0+ZmV0Y2goKTsKICAgIH0KCiAgICAvKioKICAgICAqIE92ZXJyaWRlOiByZXR1cm4gaW5wdXQgdGVtcGxhdGUgZnJvbSBBV1NTMyBtb2R1bGUgZGlyZWN0b3J5LgogICAgICovCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0X3RlbXBsYXRlKCkKICAgIHsKICAgICAgICBpZiAoIWVtcHR5KCR0aGlzLT5jYWNoZWRfdGVtcGxhdGUpKSB7CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+Y2FjaGVkX3RlbXBsYXRlOwogICAgICAgIH0KCiAgICAgICAgJGZpbGVuYW1lID0gJHRoaXMtPl9nZXRGaWVsZERlZlBhdGgoKSAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLgogICAgICAgICAgICAkdGhpcy0+bW9kOjpJTlBVVF9URU1QTEFURV9QUkVGSVggLiAkdGhpcy0+bW9kOjpGSUVMRF9ERUZfUFJFRklYIC4gJHRoaXMtPmZpZWxkIC4gJy50cGwnOwoKICAgICAgICBpZiAoaXNfcmVhZGFibGUoJGZpbGVuYW1lKSkgewogICAgICAgICAgICAkdGhpcy0+Y2FjaGVkX3RlbXBsYXRlID0gQGZpbGVfZ2V0X2NvbnRlbnRzKCRmaWxlbmFtZSk7CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+Y2FjaGVkX3RlbXBsYXRlOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuICcnOwogICAgfQoKICAgIC8qKgogICAgICogR2V0IHRoZSBwYXRoIHRvIHRoaXMgZmllbGQgZGVmaW5pdGlvbidzIGRpcmVjdG9yeSAoaW5zaWRlIEFXU1MzIG1vZHVsZSkuCiAgICAgKi8KICAgIHByaXZhdGUgZnVuY3Rpb24gX2dldEZpZWxkRGVmUGF0aCgpCiAgICB7CiAgICAgICAgJGF3c3MzX3BhdGggPSBjbXNfam9pbl9wYXRoKENNU19ST09UX1BBVEgsICdtb2R1bGVzJywgJ0FXU1MzJyk7CiAgICAgICAgcmV0dXJuIGNtc19qb2luX3BhdGgoJGF3c3MzX3BhdGgsICdsaWInLCAnZmllbGRkZWZzJywgJ2VjYjInKTsKICAgIH0KfQo=]]></data>
	</file>
	<file>
		<filename>/lib/fielddefs/ecb2/help.ecb2fd_s3_file_picker.tpl</filename>
		<isdir>0</isdir>
		<data><![CDATA[eyogaGVscC5lY2IyZmRfczNfZmlsZV9waWNrZXIudHBsIC0gQVdTUzMgRUNCMiBmaWVsZCB0eXBlICp9CjxwPlNlbGVjdCBhIGZpbGUgZnJvbSBhbiBBV1MgUzMgYnVja2V0LiBSZXF1aXJlcyB0aGUgPHN0cm9uZz5BV1NTMzwvc3Ryb25nPiBtb2R1bGUgKHYyLjAuMCspIHRvIGJlIGluc3RhbGxlZCBhbmQgY29uZmlndXJlZCB3aXRoIGF0IGxlYXN0IG9uZSBidWNrZXQuPC9wPgoKPHByZT57bGl0ZXJhbH17Y29udGVudF9tb2R1bGUgbW9kdWxlPUVDQjIgZmllbGQ9czNfZmlsZV9waWNrZXIgYmxvY2s9bXlfZG93bmxvYWR9ey9saXRlcmFsfTwvcHJlPgo8cHJlPntsaXRlcmFsfXtjb250ZW50X21vZHVsZSBtb2R1bGU9RUNCMiBmaWVsZD1zM19maWxlX3BpY2tlciBibG9jaz1oZXJvX2ltYWdlIGJ1Y2tldD0yIHByZWZpeD0iaW1hZ2VzLyIgYWxsb3dlZF9leHQ9ImpwZyxwbmcsd2VicCJ9ey9saXRlcmFsfTwvcHJlPgoKPHA+UGFyYW1ldGVyczo8L3A+Cjx1bD4KICAgIDxsaT48c3Ryb25nPmZpZWxkPC9zdHJvbmc+IChyZXF1aXJlZCkgLSAnczNfZmlsZV9waWNrZXInPC9saT4KICAgIDxsaT48c3Ryb25nPmJsb2NrPC9zdHJvbmc+IChyZXF1aXJlZCkgLSB0aGUgbmFtZSBvZiB0aGUgY29udGVudCBibG9jazwvbGk+CiAgICA8bGk+PHN0cm9uZz5idWNrZXQ8L3N0cm9uZz4gKG9wdGlvbmFsKSAtIEJ1Y2tldCBJRCBvciBuYW1lIGZyb20gQVdTUzMuIFVzZXMgZGVmYXVsdCBidWNrZXQgaWYgb21pdHRlZC48L2xpPgogICAgPGxpPjxzdHJvbmc+cHJlZml4PC9zdHJvbmc+IChvcHRpb25hbCkgLSBTMyBrZXkgcHJlZml4IHRvIGZpbHRlciBsaXN0ZWQgZmlsZXMsIGUuZy4gImltYWdlcy8iIG9yICJkb2NzLzIwMjQvIjwvbGk+CiAgICA8bGk+PHN0cm9uZz5hbGxvd2VkX2V4dDwvc3Ryb25nPiAob3B0aW9uYWwpIC0gQ29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgYWxsb3dlZCBmaWxlIGV4dGVuc2lvbnMsIGUuZy4gImpwZyxwbmcscGRmIjwvbGk+CiAgICA8bGk+PHN0cm9uZz5zaG93X3ByZXZpZXc8L3N0cm9uZz4gKG9wdGlvbmFsKSAtIGRlZmF1bHQ6IHRydWUuIFNob3dzIGltYWdlIHRodW1ibmFpbCBvciBmaWxlIGxpbmsgZm9yIHNlbGVjdGVkIGZpbGUuPC9saT4KICAgIDxsaT48c3Ryb25nPmxpbmtfdHlwZTwvc3Ryb25nPiAob3B0aW9uYWwpIC0gJ3NpZ25lZCcgKGRlZmF1bHQpLCAnZGlyZWN0Jywgb3IgJ2NkbicuIENvbnRyb2xzIGZyb250ZW5kIFVSTCBnZW5lcmF0aW9uLjwvbGk+CiAgICA8bGk+PHN0cm9uZz5kZWZhdWx0X3ZhbHVlPC9zdHJvbmc+IChvcHRpb25hbCkgLSBpbml0aWFsIFMzIGtleSB2YWx1ZSB3aGVuIGNyZWF0aW5nIGEgbmV3IHBhZ2U8L2xpPgogICAgPGxpPjxzdHJvbmc+YWRtaW5fZ3JvdXBzPC9zdHJvbmc+IChvcHRpb25hbCkgLSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBhZG1pbiBncm91cHMgdGhhdCBjYW4gdmlldyBhbmQgZWRpdCB0aGlzIGZpZWxkPC9saT4KICAgIDxsaT48c3Ryb25nPmRlc2NyaXB0aW9uPC9zdHJvbmc+IChvcHRpb25hbCkgLSBhZGRzIGFkZGl0aW9uYWwgdGV4dCBmb3IgdGhlIGVkaXRvcjwvbGk+CjwvdWw+Cgo8cD48c3Ryb25nPk91dHB1dDo8L3N0cm9uZz4gVGhlIHN0b3JlZCB2YWx1ZSBpcyB0aGUgUzMga2V5IChwYXRoKS4gVXNlIGl0IGluIHlvdXIgcGFnZSB0ZW1wbGF0ZTo8L3A+CjxwcmU+e2xpdGVyYWx9CnsqIFNpbXBsZSBvdXRwdXQgLSB0aGUgUzMga2V5ICp9CnskbXlfZG93bmxvYWR9Cgp7KiBCdWlsZCBhIHByZXNpZ25lZCBkb3dubG9hZCBsaW5rICp9CntBV1NTMyBhY3Rpb249ZGV0YWlsIHByZWZpeD0kbXlfZG93bmxvYWR9CnsvbGl0ZXJhbH08L3ByZT4K]]></data>
	</file>
	<file>
		<filename>/lib/fielddefs/ecb2/help.ecb2fd_s3_file_selector.tpl</filename>
		<isdir>0</isdir>
		<data><![CDATA[eyogaGVscC5lY2IyZmRfczNfZmlsZV9zZWxlY3Rvci50cGwgLSBBV1NTMyBFQ0IyIGZpZWxkIHR5cGUgKn0KPHA+VGhlIHMzX2ZpbGVfc2VsZWN0b3IgZmllbGQgZW5hYmxlcyB0aGUgZWRpdG9yIHRvIHVwbG9hZCBhIGZpbGUgZGlyZWN0bHkgdG8gYW4gQVdTIFMzIGJ1Y2tldC4gVGhlIHVwbG9hZGVkIGZpbGUncyBTMyBrZXkgaXMgc3RvcmVkIGFzIHRoZSBjb250ZW50IGJsb2NrIHZhbHVlLiBTaG93cyBhIHByZXZpZXcgb2YgdGhlIGN1cnJlbnQgZmlsZSAodGh1bWJuYWlsIGZvciBpbWFnZXMsIGZpbGVuYW1lIGZvciBvdGhlcnMpIHdpdGggYSByZW1vdmUgb3B0aW9uLjwvcD4KPHA+PHN0cm9uZz5SZXF1aXJlczo8L3N0cm9uZz4gQVdTUzMgbW9kdWxlIHYyLjAuMCs8L3A+Cgo8cHJlPntsaXRlcmFsfXtjb250ZW50X21vZHVsZSBtb2R1bGU9RUNCMiBmaWVsZD1zM19maWxlX3NlbGVjdG9yIGJsb2NrPW15X3VwbG9hZH17L2xpdGVyYWx9PC9wcmU+CjxwcmU+e2xpdGVyYWx9e2NvbnRlbnRfbW9kdWxlIG1vZHVsZT1FQ0IyIGZpZWxkPXMzX2ZpbGVfc2VsZWN0b3IgYmxvY2s9aGVyb19pbWFnZSBidWNrZXQ9MiBwcmVmaXg9ImltYWdlcy9oZXJvZXMvIiBhbGxvd2VkX2V4dD0ianBnLHBuZyx3ZWJwIiBtYXhfc2l6ZT01MjQyODgwfXsvbGl0ZXJhbH08L3ByZT4KCjxwPlBhcmFtZXRlcnM6PC9wPgo8dWw+CiAgICA8bGk+PHN0cm9uZz5maWVsZDwvc3Ryb25nPiAocmVxdWlyZWQpIC0gJ3MzX2ZpbGVfc2VsZWN0b3InPC9saT4KICAgIDxsaT48c3Ryb25nPmJsb2NrPC9zdHJvbmc+IChyZXF1aXJlZCkgLSB0aGUgbmFtZSBvZiB0aGUgY29udGVudCBibG9jazwvbGk+CiAgICA8bGk+PHN0cm9uZz5idWNrZXQ8L3N0cm9uZz4gKG9wdGlvbmFsKSAtIEJ1Y2tldCBJRCBvciBuYW1lIGZyb20gQVdTUzMuIFVzZXMgZGVmYXVsdCBidWNrZXQgaWYgb21pdHRlZC48L2xpPgogICAgPGxpPjxzdHJvbmc+cHJlZml4PC9zdHJvbmc+IChvcHRpb25hbCkgLSBTMyBrZXkgcHJlZml4IGZvciB1cGxvYWRzLCBlLmcuICJpbWFnZXMvaGVyb2VzLyIgb3IgImRvY3VtZW50cy8iPC9saT4KICAgIDxsaT48c3Ryb25nPmFsbG93ZWRfZXh0PC9zdHJvbmc+IChvcHRpb25hbCkgLSBDb21tYS1zZXBhcmF0ZWQgYWxsb3dlZCBleHRlbnNpb25zLCBlLmcuICJqcGcscG5nLHBkZiIuIFNob3duIHRvIGVkaXRvciBhcyBndWlkYW5jZS48L2xpPgogICAgPGxpPjxzdHJvbmc+bWF4X3NpemU8L3N0cm9uZz4gKG9wdGlvbmFsKSAtIE1heGltdW0gdXBsb2FkIHNpemUgaW4gYnl0ZXMsIGUuZy4gNTI0Mjg4MCBmb3IgNU1CLiAwID0gbm8gbGltaXQuPC9saT4KICAgIDxsaT48c3Ryb25nPnNob3dfcHJldmlldzwvc3Ryb25nPiAob3B0aW9uYWwpIC0gZGVmYXVsdDogdHJ1ZS4gU2hvd3MgdGh1bWJuYWlsIGZvciBjdXJyZW50IGltYWdlIGZpbGVzLjwvbGk+CiAgICA8bGk+PHN0cm9uZz5kZWZhdWx0X3ZhbHVlPC9zdHJvbmc+IChvcHRpb25hbCkgLSBpbml0aWFsIFMzIGtleSB2YWx1ZSB3aGVuIGNyZWF0aW5nIGEgbmV3IHBhZ2U8L2xpPgogICAgPGxpPjxzdHJvbmc+YWRtaW5fZ3JvdXBzPC9zdHJvbmc+IChvcHRpb25hbCkgLSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBhZG1pbiBncm91cHMgdGhhdCBjYW4gdmlldyBhbmQgZWRpdCB0aGlzIGZpZWxkPC9saT4KICAgIDxsaT48c3Ryb25nPmRlc2NyaXB0aW9uPC9zdHJvbmc+IChvcHRpb25hbCkgLSBhZGRzIGFkZGl0aW9uYWwgdGV4dCBmb3IgdGhlIGVkaXRvcjwvbGk+CjwvdWw+Cgo8cD48c3Ryb25nPk91dHB1dDo8L3N0cm9uZz4gVGhlIHN0b3JlZCB2YWx1ZSBpcyB0aGUgUzMga2V5IChwYXRoKS4gVXNlIGluIHlvdXIgcGFnZSB0ZW1wbGF0ZTo8L3A+CjxwcmU+e2xpdGVyYWx9CnsqIERpcmVjdCBVUkwgKn0Ke2Fzc2lnbiB2YXI9YXdzczMgdmFsdWU9IkFXU1MzInxjbXNfbW9kdWxlX2luc3RhbmNlfQp7JGF3c3MzLT5HZXRCdWNrZXRVcmwoJGF3c3MzLT5HZXRCdWNrZXQoKSwgJG15X3VwbG9hZCl9Cgp7KiBPciB1c2UgdGhlIEFXU1MzIGRldGFpbCBhY3Rpb24gKn0Ke0FXU1MzIGFjdGlvbj1kZXRhaWwgcHJlZml4PSRteV91cGxvYWR9CnsvbGl0ZXJhbH08L3ByZT4K]]></data>
	</file>
	<file>
		<filename>/lib/fielddefs/ecb2/input.ecb2fd_s3_file_picker.tpl</filename>
		<isdir>0</isdir>
		<data><![CDATA[eyogaW5wdXQuZWNiMmZkX3MzX2ZpbGVfcGlja2VyLnRwbCAtIFMzIGZpbGUgcGlja2VyIGRyb3Bkb3duIHdpdGggcHJldmlldyAqfQp7aWYgIWVtcHR5KCRkZXNjcmlwdGlvbil9CiAgICB7JGRlc2NyaXB0aW9ufTxicj4Key9pZn0KCjxkaXYgY2xhc3M9ImVjYl9zM19maWxlX3BpY2tlciI+CntpZiAkaXNfc3ViX2ZpZWxkfQogICAge2lmIGlzX251bGwoJHN1Yl9yb3dfbnVtYmVyKX17KiBzdWJfZmllbGQgdGVtcGxhdGUgKn0KICAgICAgICA8c2VsZWN0IGlkPSIiIG5hbWU9IiIgY2xhc3M9InskY2xhc3N9IiBkYXRhLXJlcGVhdGVyPSIjeyRibG9ja19uYW1lfS1yZXBlYXRlciIgZGF0YS1maWVsZC1uYW1lPSJ7JGJsb2NrX25hbWV9Ij4KICAgICAgICAgICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRvcHRzIHNlbGVjdGVkPSR2YWx1ZX0KICAgICAgICA8L3NlbGVjdD4KICAgIHtlbHNlfXsqIHN1Yl9maWVsZCByb3cgKn0KICAgICAgICA8c2VsZWN0IGlkPSJ7JHN1YkZpZWxkSWR9IiBuYW1lPSJ7JHN1YkZpZWxkTmFtZX0iIGNsYXNzPSJ7JGNsYXNzfSI+CiAgICAgICAgICAgIHtodG1sX29wdGlvbnMgb3B0aW9ucz0kb3B0cyBzZWxlY3RlZD0kdmFsdWV9CiAgICAgICAgPC9zZWxlY3Q+CiAgICB7L2lmfQp7ZWxzZX0KICAgIDxzZWxlY3QgY2xhc3M9ImNtc19kcm9wZG93biIgbmFtZT0ieyRibG9ja19uYW1lfSI+CiAgICAgICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRvcHRzIHNlbGVjdGVkPSR2YWx1ZX0KICAgIDwvc2VsZWN0Pgp7L2lmfQoKe2lmICRzaG93X3ByZXZpZXcgJiYgIWVtcHR5KCR2YWx1ZSl9CiAgICA8ZGl2IGNsYXNzPSJlY2JfczNfZmlsZV9wcmV2aWV3IiBzdHlsZT0ibWFyZ2luLXRvcDogOHB4OyI+CiAgICB7aWYgJGlzX2ltYWdlfQogICAgICAgIDxpbWcgc3JjPSJ7JGZpbGVfdXJsfSIgYWx0PSJ7JHZhbHVlfHJlZ2V4X3JlcGxhY2U6Jy8uKltcXC9dLyc6Jyd9IiBzdHlsZT0ibWF4LXdpZHRoOiAyMDBweDsgbWF4LWhlaWdodDogMTUwcHg7IGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7IHBhZGRpbmc6IDJweDsiPgogICAge2Vsc2V9CiAgICAgICAgPGEgaHJlZj0ieyRmaWxlX3VybH0iIHRhcmdldD0iX2JsYW5rIj48aSBjbGFzcz0iZmEgZmEtZXh0ZXJuYWwtbGluayI+PC9pPiB7JHZhbHVlfHJlZ2V4X3JlcGxhY2U6Jy8uKltcXC9dLyc6Jyd9PC9hPgogICAgey9pZn0KICAgIDwvZGl2Pgp7L2lmfQoKICAgIDxzbWFsbCBjbGFzcz0iaGVscC1ibG9jayB0ZXh0LW11dGVkIiBzdHlsZT0iZGlzcGxheTogYmxvY2s7IG1hcmdpbi10b3A6IDRweDsiPlMzOiB7JGJ1Y2tldF9uYW1lfTwvc21hbGw+CjwvZGl2Pgo=]]></data>
	</file>
	<file>
		<filename>/lib/fielddefs/ecb2/input.ecb2fd_s3_file_selector.tpl</filename>
		<isdir>0</isdir>
		<data><![CDATA[eyogaW5wdXQuZWNiMmZkX3MzX2ZpbGVfc2VsZWN0b3IudHBsIC0gUzMgZmlsZSB1cGxvYWQgd2l0aCBwcmV2aWV3ICp9CntpZiAhZW1wdHkoJGRlc2NyaXB0aW9uKX0KICAgIHskZGVzY3JpcHRpb259PGJyPgp7L2lmfQoKPGRpdiBjbGFzcz0iZWNiX3MzX2ZpbGVfc2VsZWN0b3J7aWYgJHNob3dfcHJldmlld30gcHJldmlld3svaWZ9Ij4KCnsqIEN1cnJlbnQgZmlsZSBkaXNwbGF5ICp9CntpZiAhZW1wdHkoJHZhbHVlKX0KICAgIDxkaXYgY2xhc3M9ImVjYl9zM19jdXJyZW50X2ZpbGUiIHN0eWxlPSJtYXJnaW4tYm90dG9tOiA4cHg7IHBhZGRpbmc6IDhweDsgYmFja2dyb3VuZDogI2Y4ZjlmYTsgYm9yZGVyOiAxcHggc29saWQgI2RlZTJlNjsgYm9yZGVyLXJhZGl1czogNHB4OyI+CiAgICB7aWYgJGlzX2ltYWdlICYmICRzaG93X3ByZXZpZXd9CiAgICAgICAgPGltZyBzcmM9InskZmlsZV91cmx9IiBhbHQ9InskdmFsdWV8cmVnZXhfcmVwbGFjZTonLy4qW1xcL10vJzonJ30iIHN0eWxlPSJtYXgtd2lkdGg6IDIwMHB4OyBtYXgtaGVpZ2h0OiAxNTBweDsgYm9yZGVyOiAxcHggc29saWQgI2RkZDsgcGFkZGluZzogMnB4OyBkaXNwbGF5OiBibG9jazsgbWFyZ2luLWJvdHRvbTogNnB4OyI+CiAgICB7L2lmfQogICAgICAgIDxzcGFuPjxzdHJvbmc+eyR2YWx1ZXxyZWdleF9yZXBsYWNlOicvLipbXFwvXS8nOicnfTwvc3Ryb25nPjwvc3Bhbj4KICAgICAgICA8bGFiZWwgc3R5bGU9Im1hcmdpbi1sZWZ0OiAxMnB4OyBmb250LXdlaWdodDogbm9ybWFsOyI+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0ieyRibG9ja19uYW1lfV9fczNjbGVhciIgdmFsdWU9IjEiPiBSZW1vdmUKICAgICAgICA8L2xhYmVsPgogICAgPC9kaXY+CnsvaWZ9Cgp7KiBGaWxlIHVwbG9hZCBpbnB1dCAqfQp7aWYgJGlzX3N1Yl9maWVsZH0KICAgIHtpZiBpc19udWxsKCRzdWJfcm93X251bWJlcil9eyogc3ViX2ZpZWxkIHRlbXBsYXRlICp9CiAgICAgICAgPGlucHV0IHR5cGU9ImZpbGUiIG5hbWU9IiIgY2xhc3M9InskY2xhc3N9IiBkYXRhLXJlcGVhdGVyPSIjeyRibG9ja19uYW1lfS1yZXBlYXRlciIgZGF0YS1maWVsZC1uYW1lPSJ7JGJsb2NrX25hbWV9IiB7aWYgJGFjY2VwdH1hY2NlcHQ9InskYWNjZXB0fSJ7L2lmfT4KICAgIHtlbHNlfXsqIHN1Yl9maWVsZCByb3cgKn0KICAgICAgICA8aW5wdXQgdHlwZT0iZmlsZSIgbmFtZT0ieyRibG9ja19uYW1lfV9fczNmaWxlIiBpZD0ieyRzdWJGaWVsZElkfSIgY2xhc3M9InskY2xhc3N9IiB7aWYgJGFjY2VwdH1hY2NlcHQ9InskYWNjZXB0fSJ7L2lmfT4KICAgIHsvaWZ9CntlbHNlfQogICAgPGlucHV0IHR5cGU9ImZpbGUiIG5hbWU9InskYmxvY2tfbmFtZX1fX3MzZmlsZSIgY2xhc3M9ImNtc19maWxlX2lucHV0IiB7aWYgJGFjY2VwdH1hY2NlcHQ9InskYWNjZXB0fSJ7L2lmfT4Key9pZn0KCntpZiAhZW1wdHkoJGFsbG93ZWRfZXh0KX0KICAgIDxzbWFsbCBjbGFzcz0iaGVscC1ibG9jayB0ZXh0LW11dGVkIiBzdHlsZT0iZGlzcGxheTogYmxvY2s7IG1hcmdpbi10b3A6IDRweDsiPkFsbG93ZWQ6IHskYWxsb3dlZF9leHR9PC9zbWFsbD4Key9pZn0Ke2lmICRtYXhfc2l6ZSA+IDB9CiAgICA8c21hbGwgY2xhc3M9ImhlbHAtYmxvY2sgdGV4dC1tdXRlZCIgc3R5bGU9ImRpc3BsYXk6IGJsb2NrOyI+TWF4IHNpemU6IHtpZiAkbWF4X3NpemUgPj0gMTA0ODU3Nn17bWF0aCBlcXVhdGlvbj0icm91bmQoeC8xMDQ4NTc2LDEpIiB4PSRtYXhfc2l6ZX0gTUJ7ZWxzZWlmICRtYXhfc2l6ZSA+PSAxMDI0fXttYXRoIGVxdWF0aW9uPSJyb3VuZCh4LzEwMjQsMSkiIHg9JG1heF9zaXplfSBLQntlbHNlfXskbWF4X3NpemV9IEJ7L2lmfTwvc21hbGw+CnsvaWZ9CiAgICA8c21hbGwgY2xhc3M9ImhlbHAtYmxvY2sgdGV4dC1tdXRlZCIgc3R5bGU9ImRpc3BsYXk6IGJsb2NrOyBtYXJnaW4tdG9wOiAycHg7Ij5TMzogeyRidWNrZXRfbmFtZX08L3NtYWxsPgoKeyogSGlkZGVuIGZpZWxkIHRvIHByZXNlcnZlIGV4aXN0aW5nIHZhbHVlICp9CiAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ7JGJsb2NrX25hbWV9IiB2YWx1ZT0ieyR2YWx1ZXxlc2NhcGU6J2h0bWxhbGwnfSI+CjwvZGl2Pgo=]]></data>
	</file>
	<file>
		<filename>/method.install.php</filename>
		<isdir>0</isdir>
		<data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgU2VlIExJQ0VOU0UgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmlmICghZGVmaW5lZCgnQ01TX1ZFUlNJT04nKSkgZXhpdDsKCiR0aGlzLT5DcmVhdGVQZXJtaXNzaW9uKEFXU1MzOjpNQU5BR0VfUEVSTSwgJ01hbmFnZSBBV1NTMycpOwoKJHVpZCA9IG51bGw7CmlmIChjbXNtcygpLT50ZXN0X3N0YXRlKENtc0FwcDo6U1RBVEVfSU5TVEFMTCkpIHsKICAgICR1aWQgPSAxOwp9IGVsc2UgewogICAgJHVpZCA9IGdldF91c2VyaWQoKTsKfQoKLy8gQ3JlYXRlIGJ1Y2tldHMgdGFibGUKJGRiID0gXGNtc191dGlsczo6Z2V0X2RiKCk7CiRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoJGRiKTsKJGZpZWxkcyA9ICIKICAgIGlkIEkgS0VZIEFVVE8sCiAgICBidWNrZXRfbmFtZSBDKDI1NSkgTk9UTlVMTCwKICAgIHJlZ2lvbiBDKDUwKSBOT1ROVUxMLAogICAgYWxsb3dlZF9leHRlbnNpb25zIEMoNTAwKSBOT1ROVUxMIERFRkFVTFQgJ2pwZyxqcGVnLGdpZixwbmcnLAogICAgY3VzdG9tX3VybCBDKDUwMCksCiAgICBpc19kZWZhdWx0IEwgTk9UTlVMTCBERUZBVUxUIDAsCiAgICBzb3J0X29yZGVyIEkgTk9UTlVMTCBERUZBVUxUIDAsCiAgICBjcmVhdGVkIERULAogICAgbW9kaWZpZWQgRFQKIjsKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKENNU19EQl9QUkVGSVggLiBBV1NTMzo6VEFCTEVfQlVDS0VUUywgJGZpZWxkcyk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCi8vIFNldHVwIHN1bW1hcnkgdGVtcGxhdGUgdHlwZQp0cnkgewogICAgJHN1bW1hcnlfdGVtcGxhdGVfdHlwZSA9IG5ldyBDbXNMYXlvdXRUZW1wbGF0ZVR5cGUoKTsKICAgICRzdW1tYXJ5X3RlbXBsYXRlX3R5cGUtPnNldF9vcmlnaW5hdG9yKCR0aGlzLT5HZXROYW1lKCkpOwogICAgJHN1bW1hcnlfdGVtcGxhdGVfdHlwZS0+c2V0X25hbWUoJ3N1bW1hcnknKTsKICAgICRzdW1tYXJ5X3RlbXBsYXRlX3R5cGUtPnNldF9kZmx0X2ZsYWcodHJ1ZSk7CiAgICAkc3VtbWFyeV90ZW1wbGF0ZV90eXBlLT5zZXRfbGFuZ19jYWxsYmFjaygnQVdTUzM6OnBhZ2VfdHlwZV9sYW5nX2NhbGxiYWNrJyk7CiAgICAkc3VtbWFyeV90ZW1wbGF0ZV90eXBlLT5zZXRfY29udGVudF9jYWxsYmFjaygnQVdTUzM6OnJlc2V0X3BhZ2VfdHlwZV9kZWZhdWx0cycpOwogICAgJHN1bW1hcnlfdGVtcGxhdGVfdHlwZS0+c2V0X2hlbHBfY2FsbGJhY2soJ0FXU1MzOjp0ZW1wbGF0ZV9oZWxwX2NhbGxiYWNrJyk7CiAgICAkc3VtbWFyeV90ZW1wbGF0ZV90eXBlLT5yZXNldF9jb250ZW50X3RvX2ZhY3RvcnkoKTsKICAgICRzdW1tYXJ5X3RlbXBsYXRlX3R5cGUtPnNhdmUoKTsKfSBjYXRjaCAoQ21zRXhjZXB0aW9uICRlKSB7CiAgICBkZWJ1Z190b19sb2coX19GSUxFX18gLiAnOicgLiBfX0xJTkVfXyAuICcgJyAuICRlLT5HZXRNZXNzYWdlKCkpOwogICAgYXVkaXQoJycsICR0aGlzLT5HZXROYW1lKCksICdJbnN0YWxsYXRpb24gRXJyb3I6ICcgLiAkZS0+R2V0TWVzc2FnZSgpKTsKfQoKdHJ5IHsKICAgICRmbiA9IF9fRElSX18gLiAnL3RlbXBsYXRlcy9vcmlnX3N1bW1hcnlfdGVtcGxhdGUudHBsJzsKICAgIGlmIChmaWxlX2V4aXN0cygkZm4pKSB7CiAgICAgICAgJHRlbXBsYXRlID0gQGZpbGVfZ2V0X2NvbnRlbnRzKCRmbik7CiAgICAgICAgJHRwbCA9IG5ldyBDbXNMYXlvdXRUZW1wbGF0ZSgpOwogICAgICAgICR0cGwtPnNldF9uYW1lKCdBV1NTMyBTdW1tYXJ5IFNhbXBsZScpOwogICAgICAgICR0cGwtPnNldF9vd25lcigkdWlkKTsKICAgICAgICAkdHBsLT5zZXRfY29udGVudCgkdGVtcGxhdGUpOwogICAgICAgICR0cGwtPnNldF90eXBlKCRzdW1tYXJ5X3RlbXBsYXRlX3R5cGUpOwogICAgICAgICR0cGwtPnNldF90eXBlX2RmbHQodHJ1ZSk7CiAgICAgICAgJHRwbC0+c2F2ZSgpOwogICAgfQp9IGNhdGNoIChDbXNFeGNlcHRpb24gJGUpIHsKICAgIGRlYnVnX3RvX2xvZyhfX0ZJTEVfXyAuICc6JyAuIF9fTElORV9fIC4gJyAnIC4gJGUtPkdldE1lc3NhZ2UoKSk7CiAgICBhdWRpdCgnJywgJHRoaXMtPkdldE5hbWUoKSwgJ0luc3RhbGxhdGlvbiBFcnJvcjogJyAuICRlLT5HZXRNZXNzYWdlKCkpOwp9CgovLyBTZXR1cCBkZXRhaWwgdGVtcGxhdGUgdHlwZQp0cnkgewogICAgJGRldGFpbF90ZW1wbGF0ZV90eXBlID0gbmV3IENtc0xheW91dFRlbXBsYXRlVHlwZSgpOwogICAgJGRldGFpbF90ZW1wbGF0ZV90eXBlLT5zZXRfb3JpZ2luYXRvcigkdGhpcy0+R2V0TmFtZSgpKTsKICAgICRkZXRhaWxfdGVtcGxhdGVfdHlwZS0+c2V0X25hbWUoJ2RldGFpbCcpOwogICAgJGRldGFpbF90ZW1wbGF0ZV90eXBlLT5zZXRfZGZsdF9mbGFnKHRydWUpOwogICAgJGRldGFpbF90ZW1wbGF0ZV90eXBlLT5zZXRfbGFuZ19jYWxsYmFjaygnQVdTUzM6OnBhZ2VfdHlwZV9sYW5nX2NhbGxiYWNrJyk7CiAgICAkZGV0YWlsX3RlbXBsYXRlX3R5cGUtPnNldF9jb250ZW50X2NhbGxiYWNrKCdBV1NTMzo6cmVzZXRfcGFnZV90eXBlX2RlZmF1bHRzJyk7CiAgICAkZGV0YWlsX3RlbXBsYXRlX3R5cGUtPnNldF9oZWxwX2NhbGxiYWNrKCdBV1NTMzo6dGVtcGxhdGVfaGVscF9jYWxsYmFjaycpOwogICAgJGRldGFpbF90ZW1wbGF0ZV90eXBlLT5yZXNldF9jb250ZW50X3RvX2ZhY3RvcnkoKTsKICAgICRkZXRhaWxfdGVtcGxhdGVfdHlwZS0+c2F2ZSgpOwp9IGNhdGNoIChDbXNFeGNlcHRpb24gJGUpIHsKICAgIGRlYnVnX3RvX2xvZyhfX0ZJTEVfXyAuICc6JyAuIF9fTElORV9fIC4gJyAnIC4gJGUtPkdldE1lc3NhZ2UoKSk7CiAgICBhdWRpdCgnJywgJHRoaXMtPkdldE5hbWUoKSwgJ0luc3RhbGxhdGlvbiBFcnJvcjogJyAuICRlLT5HZXRNZXNzYWdlKCkpOwp9Cgp0cnkgewogICAgJGZuID0gX19ESVJfXyAuICcvdGVtcGxhdGVzL29yaWdfZGV0YWlsX3RlbXBsYXRlLnRwbCc7CiAgICBpZiAoZmlsZV9leGlzdHMoJGZuKSkgewogICAgICAgICR0ZW1wbGF0ZSA9IEBmaWxlX2dldF9jb250ZW50cygkZm4pOwogICAgICAgICR0cGwgPSBuZXcgQ21zTGF5b3V0VGVtcGxhdGUoKTsKICAgICAgICAkdHBsLT5zZXRfbmFtZSgnQVdTUzMgRGV0YWlsIFNhbXBsZScpOwogICAgICAgICR0cGwtPnNldF9vd25lcigkdWlkKTsKICAgICAgICAkdHBsLT5zZXRfY29udGVudCgkdGVtcGxhdGUpOwogICAgICAgICR0cGwtPnNldF90eXBlKCRkZXRhaWxfdGVtcGxhdGVfdHlwZSk7CiAgICAgICAgJHRwbC0+c2V0X3R5cGVfZGZsdCh0cnVlKTsKICAgICAgICAkdHBsLT5zYXZlKCk7CiAgICB9Cn0gY2F0Y2ggKENtc0V4Y2VwdGlvbiAkZSkgewogICAgZGVidWdfdG9fbG9nKF9fRklMRV9fIC4gJzonIC4gX19MSU5FX18gLiAnICcgLiAkZS0+R2V0TWVzc2FnZSgpKTsKICAgIGF1ZGl0KCcnLCAkdGhpcy0+R2V0TmFtZSgpLCAnSW5zdGFsbGF0aW9uIEVycm9yOiAnIC4gJGUtPkdldE1lc3NhZ2UoKSk7Cn0KCi8vIFNldHVwIHVwbG9hZCB0ZW1wbGF0ZSB0eXBlCnRyeSB7CiAgICAkdXBsb2FkX3RlbXBsYXRlX3R5cGUgPSBuZXcgQ21zTGF5b3V0VGVtcGxhdGVUeXBlKCk7CiAgICAkdXBsb2FkX3RlbXBsYXRlX3R5cGUtPnNldF9vcmlnaW5hdG9yKCR0aGlzLT5HZXROYW1lKCkpOwogICAgJHVwbG9hZF90ZW1wbGF0ZV90eXBlLT5zZXRfbmFtZSgndXBsb2FkJyk7CiAgICAkdXBsb2FkX3RlbXBsYXRlX3R5cGUtPnNldF9kZmx0X2ZsYWcodHJ1ZSk7CiAgICAkdXBsb2FkX3RlbXBsYXRlX3R5cGUtPnNldF9sYW5nX2NhbGxiYWNrKCdBV1NTMzo6cGFnZV90eXBlX2xhbmdfY2FsbGJhY2snKTsKICAgICR1cGxvYWRfdGVtcGxhdGVfdHlwZS0+c2V0X2NvbnRlbnRfY2FsbGJhY2soJ0FXU1MzOjpyZXNldF9wYWdlX3R5cGVfZGVmYXVsdHMnKTsKICAgICR1cGxvYWRfdGVtcGxhdGVfdHlwZS0+c2V0X2hlbHBfY2FsbGJhY2soJ0FXU1MzOjp0ZW1wbGF0ZV9oZWxwX2NhbGxiYWNrJyk7CiAgICAkdXBsb2FkX3RlbXBsYXRlX3R5cGUtPnJlc2V0X2NvbnRlbnRfdG9fZmFjdG9yeSgpOwogICAgJHVwbG9hZF90ZW1wbGF0ZV90eXBlLT5zYXZlKCk7Cn0gY2F0Y2ggKENtc0V4Y2VwdGlvbiAkZSkgewogICAgZGVidWdfdG9fbG9nKF9fRklMRV9fIC4gJzonIC4gX19MSU5FX18gLiAnICcgLiAkZS0+R2V0TWVzc2FnZSgpKTsKICAgIGF1ZGl0KCcnLCAkdGhpcy0+R2V0TmFtZSgpLCAnSW5zdGFsbGF0aW9uIEVycm9yOiAnIC4gJGUtPkdldE1lc3NhZ2UoKSk7Cn0KCnRyeSB7CiAgICAkZm4gPSBfX0RJUl9fIC4gJy90ZW1wbGF0ZXMvb3JpZ191cGxvYWRmb3JtX3RlbXBsYXRlLnRwbCc7CiAgICBpZiAoZmlsZV9leGlzdHMoJGZuKSkgewogICAgICAgICR0ZW1wbGF0ZSA9IEBmaWxlX2dldF9jb250ZW50cygkZm4pOwogICAgICAgICR0cGwgPSBuZXcgQ21zTGF5b3V0VGVtcGxhdGUoKTsKICAgICAgICAkdHBsLT5zZXRfbmFtZSgnQVdTUzMgVXBsb2FkIEZvcm0gU2FtcGxlJyk7CiAgICAgICAgJHRwbC0+c2V0X293bmVyKCR1aWQpOwogICAgICAgICR0cGwtPnNldF9jb250ZW50KCR0ZW1wbGF0ZSk7CiAgICAgICAgJHRwbC0+c2V0X3R5cGUoJHVwbG9hZF90ZW1wbGF0ZV90eXBlKTsKICAgICAgICAkdHBsLT5zZXRfdHlwZV9kZmx0KHRydWUpOwogICAgICAgICR0cGwtPnNhdmUoKTsKICAgIH0KfSBjYXRjaCAoQ21zRXhjZXB0aW9uICRlKSB7CiAgICBkZWJ1Z190b19sb2coX19GSUxFX18gLiAnOicgLiBfX0xJTkVfXyAuICcgJyAuICRlLT5HZXRNZXNzYWdlKCkpOwogICAgYXVkaXQoJycsICR0aGlzLT5HZXROYW1lKCksICdJbnN0YWxsYXRpb24gRXJyb3I6ICcgLiAkZS0+R2V0TWVzc2FnZSgpKTsKfQoKLy8gRGVmYXVsdCBwcmVmZXJlbmNlcwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnaXRlbXNkaXNwbGF5ZWQnLCAnMjUnKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2V4cGlyeV9pbnRlcnZhbCcsICc2MCcpOwokdGhpcy0+QWRkRXZlbnRIYW5kbGVyKCdDb3JlJywgJ0NvbnRlbnRQb3N0UmVuZGVyJywgZmFsc2UpOwo=]]></data>
	</file>
	<file>
		<filename>/method.uninstall.php</filename>
		<isdir>0</isdir>
		<data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgU2VlIExJQ0VOU0UgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmlmICghZGVmaW5lZCgnQ01TX1ZFUlNJT04nKSkgZXhpdDsKCiR0aGlzLT5SZW1vdmVQZXJtaXNzaW9uKEFXU1MzOjpNQU5BR0VfUEVSTSk7CiR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCk7CgovLyBEcm9wIGJ1Y2tldHMgdGFibGUKJGRiID0gXGNtc191dGlsczo6Z2V0X2RiKCk7CiRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoJGRiKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkZGljdC0+RHJvcFRhYmxlU1FMKENNU19EQl9QUkVGSVggLiBBV1NTMzo6VEFCTEVfQlVDS0VUUykpOwoKLy8gUmVtb3ZlIHRlbXBsYXRlcyBhbmQgdGVtcGxhdGUgdHlwZXMKdHJ5IHsKICAgICR0eXBlcyA9IENtc0xheW91dFRlbXBsYXRlVHlwZTo6bG9hZF9hbGxfYnlfb3JpZ2luYXRvcigkdGhpcy0+R2V0TmFtZSgpKTsKICAgIGlmIChpc19hcnJheSgkdHlwZXMpICYmIGNvdW50KCR0eXBlcykpIHsKICAgICAgICBmb3JlYWNoICgkdHlwZXMgYXMgJHR5cGUpIHsKICAgICAgICAgICAgJHRlbXBsYXRlcyA9ICR0eXBlLT5nZXRfdGVtcGxhdGVfbGlzdCgpOwogICAgICAgICAgICBpZiAoaXNfYXJyYXkoJHRlbXBsYXRlcykgJiYgY291bnQoJHRlbXBsYXRlcykpIHsKICAgICAgICAgICAgICAgIGZvcmVhY2ggKCR0ZW1wbGF0ZXMgYXMgJHRlbXBsYXRlKSB7CiAgICAgICAgICAgICAgICAgICAgJHRlbXBsYXRlLT5kZWxldGUoKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICAkdHlwZS0+ZGVsZXRlKCk7CiAgICAgICAgfQogICAgfQp9IGNhdGNoIChFeGNlcHRpb24gJGUpIHsKICAgIGF1ZGl0KCcnLCAkdGhpcy0+R2V0TmFtZSgpLCAnVW5pbnN0YWxsIEVycm9yOiAnIC4gJGUtPkdldE1lc3NhZ2UoKSk7Cn0KCiR0aGlzLT5SZW1vdmVFdmVudEhhbmRsZXIoJ0NvcmUnLCAnQ29udGVudFBvc3RSZW5kZXInKTsK]]></data>
	</file>
	<file>
		<filename>/method.upgrade.php</filename>
		<isdir>0</isdir>
		<data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgU2VlIExJQ0VOU0UgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi4KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmlmICghZGVmaW5lZCgnQ01TX1ZFUlNJT04nKSkgZXhpdDsKCiRkYiA9IFxjbXNfdXRpbHM6OmdldF9kYigpOwoKaWYgKHZlcnNpb25fY29tcGFyZSgkb2xkdmVyc2lvbiwgJzIuMCcsICc8JykpIHsKCiAgICAvLyBDcmVhdGUgYnVja2V0cyB0YWJsZQogICAgJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSgkZGIpOwogICAgJGZpZWxkcyA9ICIKICAgICAgICBpZCBJIEtFWSBBVVRPLAogICAgICAgIGJ1Y2tldF9uYW1lIEMoMjU1KSBOT1ROVUxMLAogICAgICAgIHJlZ2lvbiBDKDUwKSBOT1ROVUxMLAogICAgICAgIGFsbG93ZWRfZXh0ZW5zaW9ucyBDKDUwMCkgTk9UTlVMTCBERUZBVUxUICdqcGcsanBlZyxnaWYscG5nJywKICAgICAgICBjdXN0b21fdXJsIEMoNTAwKSwKICAgICAgICBpc19kZWZhdWx0IEwgTk9UTlVMTCBERUZBVUxUIDAsCiAgICAgICAgc29ydF9vcmRlciBJIE5PVE5VTEwgREVGQVVMVCAwLAogICAgICAgIGNyZWF0ZWQgRFQsCiAgICAgICAgbW9kaWZpZWQgRFQKICAgICI7CiAgICAkdGFibGUgPSBDTVNfREJfUFJFRklYIC4gQVdTUzM6OlRBQkxFX0JVQ0tFVFM7CiAgICAkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoJHRhYmxlLCAkZmllbGRzKTsKICAgICRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCiAgICAvLyBNaWdyYXRlIGV4aXN0aW5nIHNpbmdsZS1idWNrZXQgY29uZmlnIGludG8gdGhlIG5ldyB0YWJsZQogICAgJGJ1Y2tldF9uYW1lID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2J1Y2tldF9uYW1lJyk7CiAgICAkcmVnaW9uID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2FjY2Vzc19yZWdpb24nKTsKICAgICRhbGxvd2VkID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2FsbG93ZWQnLCAnanBnLGpwZWcsZ2lmLHBuZycpOwogICAgJGN1c3RvbV91cmwgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnY3VzdG9tX3VybCcsICcnKTsKICAgICR1c2VfY3VzdG9tID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ3VzZV9jdXN0b21fdXJsJywgJzAnKTsKCiAgICBpZiAoJGJ1Y2tldF9uYW1lICYmICRyZWdpb24pIHsKICAgICAgICAkZmluYWxfY3VzdG9tX3VybCA9ICgkdXNlX2N1c3RvbSAmJiAkY3VzdG9tX3VybCkgPyAkY3VzdG9tX3VybCA6ICcnOwogICAgICAgICRkYi0+RXhlY3V0ZSgKICAgICAgICAgICAgIklOU0VSVCBJTlRPIHskdGFibGV9IChidWNrZXRfbmFtZSwgcmVnaW9uLCBhbGxvd2VkX2V4dGVuc2lvbnMsIGN1c3RvbV91cmwsIGlzX2RlZmF1bHQsIHNvcnRfb3JkZXIsIGNyZWF0ZWQsIG1vZGlmaWVkKSBWQUxVRVMgKD8sID8sID8sID8sIDEsIDAsIE5PVygpLCBOT1coKSkiLAogICAgICAgICAgICBbJGJ1Y2tldF9uYW1lLCAkcmVnaW9uLCAkYWxsb3dlZCwgJGZpbmFsX2N1c3RvbV91cmxdCiAgICAgICAgKTsKICAgIH0KCiAgICAvLyBDbGVhbiB1cCBvbGQgcHJlZmVyZW5jZXMgdGhhdCBhcmUgbm93IGluIHRoZSBidWNrZXRzIHRhYmxlCiAgICAkdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgnYnVja2V0X25hbWUnKTsKICAgICR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCdhY2Nlc3NfcmVnaW9uJyk7CiAgICAkdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgnYWxsb3dlZCcpOwogICAgJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoJ2N1c3RvbV91cmwnKTsKICAgICR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCd1c2VfY3VzdG9tX3VybCcpOwogICAgLy8gUmVtb3ZlIGNyZWRlbnRpYWxzIChub3cgaGFuZGxlZCBieSBBV1NTREspCiAgICAkdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgnYWNjZXNzX2tleScpOwogICAgJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoJ2FjY2Vzc19zZWNyZXRfa2V5Jyk7CgogICAgLy8gRW5zdXJlIHVwbG9hZCB0ZW1wbGF0ZSB0eXBlIGV4aXN0cwogICAgdHJ5IHsKICAgICAgICAkdXBsb2FkX3RlbXBsYXRlX3R5cGUgPSBDbXNMYXlvdXRUZW1wbGF0ZVR5cGU6OmxvYWQoJHRoaXMtPkdldE5hbWUoKSAuICc6OnVwbG9hZCcpOwogICAgfSBjYXRjaCAoXEV4Y2VwdGlvbiAkZSkgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgICR1cGxvYWRfdGVtcGxhdGVfdHlwZSA9IG5ldyBDbXNMYXlvdXRUZW1wbGF0ZVR5cGUoKTsKICAgICAgICAgICAgJHVwbG9hZF90ZW1wbGF0ZV90eXBlLT5zZXRfb3JpZ2luYXRvcigkdGhpcy0+R2V0TmFtZSgpKTsKICAgICAgICAgICAgJHVwbG9hZF90ZW1wbGF0ZV90eXBlLT5zZXRfbmFtZSgndXBsb2FkJyk7CiAgICAgICAgICAgICR1cGxvYWRfdGVtcGxhdGVfdHlwZS0+c2V0X2RmbHRfZmxhZyh0cnVlKTsKICAgICAgICAgICAgJHVwbG9hZF90ZW1wbGF0ZV90eXBlLT5zZXRfbGFuZ19jYWxsYmFjaygnQVdTUzM6OnBhZ2VfdHlwZV9sYW5nX2NhbGxiYWNrJyk7CiAgICAgICAgICAgICR1cGxvYWRfdGVtcGxhdGVfdHlwZS0+c2V0X2NvbnRlbnRfY2FsbGJhY2soJ0FXU1MzOjpyZXNldF9wYWdlX3R5cGVfZGVmYXVsdHMnKTsKICAgICAgICAgICAgJHVwbG9hZF90ZW1wbGF0ZV90eXBlLT5yZXNldF9jb250ZW50X3RvX2ZhY3RvcnkoKTsKICAgICAgICAgICAgJHVwbG9hZF90ZW1wbGF0ZV90eXBlLT5zZXRfaGVscF9jYWxsYmFjaygnQVdTUzM6OnRlbXBsYXRlX2hlbHBfY2FsbGJhY2snKTsKICAgICAgICAgICAgJHVwbG9hZF90ZW1wbGF0ZV90eXBlLT5zYXZlKCk7CiAgICAgICAgfSBjYXRjaCAoQ21zRXhjZXB0aW9uICRlMikgewogICAgICAgICAgICBkZWJ1Z190b19sb2coX19GSUxFX18gLiAnOicgLiBfX0xJTkVfXyAuICcgJyAuICRlMi0+R2V0TWVzc2FnZSgpKTsKICAgICAgICAgICAgYXVkaXQoJycsICR0aGlzLT5HZXROYW1lKCksICdVcGdyYWRlIEVycm9yOiAnIC4gJGUyLT5HZXRNZXNzYWdlKCkpOwogICAgICAgIH0KICAgIH0KfQo=]]></data>
	</file>
	<file>
		<filename>/templates</filename>
		<isdir>1</isdir>
	</file>
	<file>
		<filename>/templates/admin_permissions_tab.tpl</filename>
		<isdir>0</isdir>
		<data><![CDATA[PGRpdiBpZD0iYWJvdXRfYyI+DQogICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgICA8aDM+UGVybWlzc2lvbnMgb3ZlcnZpZXc8L2gzPg0KICAgIDxwPlRoZSBwbHVnaW4gd2lsbCBub3Qgd29yayB1bnRpbCBhbGwgdGhlIGNvbmZpZ3MgYXJlIGNvbXBsZXRlZDwvcD48YnI+DQogICAgDQogICAgPGgzPkNvbmZpZ3VyaW5nIGJsb2NrIHB1YmxpYyBhY2Nlc3Mgc2V0dGluZ3MgZm9yIHlvdXIgUzMgYnVja2V0czwvaDM+DQogICAgPHA+Rm9sbG93IHRoZXNlIHN0ZXBzIGlmIHlvdSBuZWVkIHRvIGNoYW5nZSB0aGUgcHVibGljIGFjY2VzcyBzZXR0aW5ncyBmb3IgYSBzaW5nbGUgUzMgYnVja2V0LjwvcD4NCiAgICA8ZGl2IGNsYXNzPSJwcm9jZWR1cmUiPg0KICA8b2w+PGxpPjxwPlNpZ24gaW4gdG8gdGhlIEFXUyBNYW5hZ2VtZW50IENvbnNvbGUgYW5kIG9wZW4gdGhlIEFtYXpvbiBTMyBjb25zb2xlIGF0DQogICAgICAgICA8YSBocmVmPSJodHRwczovL2NvbnNvbGUuYXdzLmFtYXpvbi5jb20vczMvIiByZWw9Im5vb3BlbmVyIG5vcmVmZXJyZXIiIHRhcmdldD0iX2JsYW5rIj48c3Bhbj5odHRwczovL2NvbnNvbGUuYXdzLmFtYXpvbi5jb20vczMvPC9zcGFuPjwvYT4uPC9wPjwvbGk+PGxpPg0KICAgICAgICA8cD5JbiB0aGUgPGI+QnVja2V0IG5hbWU8L2I+IGxpc3QsIGNob29zZSB0aGUgbmFtZSBvZiB0aGUgYnVja2V0IHRoYXQgeW91DQogICAgICAgICAgd2FudC48L3A+DQogICAgICA8L2xpPjxsaT4NCiAgICAgICAgPHA+Q2hvb3NlIDxiPlBlcm1pc3Npb25zPC9iPi48L3A+DQogICAgICA8L2xpPjxsaT4NCiAgICAgICAgPHA+Q2hvb3NlIDxiPkVkaXQ8L2I+IHRvIGNoYW5nZSB0aGUgcHVibGljIGFjY2VzcyBzZXR0aW5ncyBmb3IgdGhlIGJ1Y2tldC4NCiAgICAgICAgICBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZm91ciBBbWF6b24gUzMgQmxvY2sgUHVibGljIEFjY2VzcyBTZXR0aW5ncywgc2VlIDxhIGhyZWY9Imh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25TMy9sYXRlc3QvdXNlcmd1aWRlL2FjY2Vzcy1jb250cm9sLWJsb2NrLXB1YmxpYy1hY2Nlc3MuaHRtbCNhY2Nlc3MtY29udHJvbC1ibG9jay1wdWJsaWMtYWNjZXNzLW9wdGlvbnMiPkJsb2NrIHB1YmxpYyBhY2Nlc3MNCgkJCQlzZXR0aW5nczwvYT4uPC9wPg0KICAgICAgPC9saT48bGk+DQogICAgICAgIDxwPkNob29zZSB0aGUgc2V0dGluZyB0aGF0IHlvdSB3YW50IHRvIGNoYW5nZSwgYW5kIHRoZW4gY2hvb3NlDQogICAgICAgICAgPGI+U2F2ZTwvYj4uPC9wPg0KICAgICAgPC9saT48bGk+DQogICAgICAgIDxwPldoZW4geW91J3JlIGFza2VkIGZvciBjb25maXJtYXRpb24sIGVudGVyIDxjb2RlIGNsYXNzPSJ1c2VyaW5wdXQiPmNvbmZpcm08L2NvZGU+LiBUaGVuIGNob29zZQ0KICAgICAgICAgICAgPGI+Q29uZmlybTwvYj4gdG8gc2F2ZSB5b3VyIGNoYW5nZXMuPC9wPg0KICAgICAgPC9saT48L29sPjwvZGl2Pg0KICAgIDxicj4NCiAgICANCiAgICA8aDM+QnVja2V0IHBvbGljeTwvaDM+DQogICAgPHA+VGhlIGJ1Y2tldCBwb2xpY3ksIHdyaXR0ZW4gaW4gSlNPTiwgcHJvdmlkZXMgYWNjZXNzIHRvIHRoZSBvYmplY3RzIHN0b3JlZCBpbiB0aGUgYnVja2V0LiBCdWNrZXQgcG9saWNpZXMgZG9uJ3QgYXBwbHkgdG8gb2JqZWN0cyBvd25lZCBieSBvdGhlciBhY2NvdW50czwvcD4NCiAgICA8cD5QbGVhc2UgYXR0YWNoIHRoZSBwcm92aWRlZCBwb2xpY3kgdG8geW91ciBCdWNrZXQgcG9saWN5IG9yIGlmIHlvdSBhbHJlYWR5IGhhdmUgYSBwb2xpY3kgZm9yIHRoaXMgYnVja2V0LCB1c2UgdGhlIHBvbGljeSBwcm92aWRlZCBhcyBhbiBleGFtcGxlIHRvIGJlIG1lcmdlZCB3aXRoIHlvdXIgZXhpc3Rpbmcgc2V0dXAuPC9wPg0KICAgIDxicj4NCiAgICANCiAgICA8cHJlPnskYnVja2V0X3BvbGljeX08L3ByZT4NCiAgICA8L2Rpdj4NCjwvZGl2Pg==]]></data>
	</file>
	<file>
		<filename>/templates/admin_settings.tpl</filename>
		<isdir>0</isdir>
		<data><![CDATA[e2Zvcm1fc3RhcnQgYWN0aW9uPWRvX3NhdmVfc2V0dGluZ3N9Cgo8ZmllbGRzZXQ+CiAgICA8bGVnZW5kPnskbW9kLT5MYW5nKCdmcm9udGVuZF9zZXR0aW5ncycpfTwvbGVnZW5kPgogICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfZGV0YWlscGFnZScpfTo8L3A+CiAgICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9kZXRhaWxwYWdlfTwvcD4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfc3VtbWFyeXBhZ2UnKX06PC9wPgogICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfc3VtbWFyeXBhZ2V9PC9wPgogICAgPC9kaXY+CjwvZmllbGRzZXQ+Cgo8ZmllbGRzZXQ+CiAgICA8bGVnZW5kPnskbW9kLT5MYW5nKCdhZG1pbl9zZXR0aW5ncycpfTwvbGVnZW5kPgogICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfaXRlbXNkaXNwbGF5ZWQnKX06PC9wPgogICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICAgICAgICB7JG9wdHM9WzEwPT4xMCwyNT0+MjUsNTA9PjUwLDEwMD0+MTAwLDEwMDA9PjEwMDBdfQogICAgICAgICAgICA8c2VsZWN0IG5hbWU9InskYWN0aW9uaWR9c2V0dGluZ3NbaXRlbXNkaXNwbGF5ZWRdIj4KICAgICAgICAgICAgICAgIHtodG1sX29wdGlvbnMgb3B0aW9ucz0kb3B0cyBzZWxlY3RlZD0kbW9kLT5HZXRQcmVmZXJlbmNlKCdpdGVtc2Rpc3BsYXllZCcsIDI1KX0KICAgICAgICAgICAgPC9zZWxlY3Q+CiAgICAgICAgPC9wPgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+PGxhYmVsPnskbW9kLT5MYW5nKCdleHBpcnlfaW50ZXJ2YWwnKX06PC9sYWJlbD4mbmJzcDt7Y21zX2hlbHAga2V5PSdoZWxwX29wdF9leHBpcnlfaW50ZXJ2YWwnIHRpdGxlPSRtb2QtPkxhbmcoJ2V4cGlyeV9pbnRlcnZhbCcpfTwvcD4KICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9c2V0dGluZ3NbZXhwaXJ5X2ludGVydmFsXSIgdmFsdWU9InskbW9kLT5HZXRQcmVmZXJlbmNlKCdleHBpcnlfaW50ZXJ2YWwnLCA2MCl9IiBzaXplPSI0IiBtYXhsZW5ndGg9IjQiIC8+IG1pbgogICAgICAgIDwvcD4KICAgIDwvZGl2Pgo8L2ZpZWxkc2V0PgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9c3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSIgLz4KICAgICAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfWNhbmNlbCIgdmFsdWU9InskbW9kLT5MYW5nKCdjYW5jZWwnKX0iIC8+CiAgICA8L3A+CjwvZGl2Pgp7Zm9ybV9lbmR9Cg==]]></data>
	</file>
	<file>
		<filename>/templates/admin_settings_tab.tpl</filename>
		<isdir>0</isdir>
		<data><![CDATA[PGRpdiBzdHlsZT0iZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjttYXJnaW4tYm90dG9tOjBweDsiPg0KICA8aDMgc3R5bGU9Im1hcmdpbjowOyI+eyRtb2QtPkxhbmcoJ2dldHN0YXJ0ZWQnKX08L2gzPg0KICA8YSBocmVmPSJodHRwczovL3BpeGVsc29sdXRpb25zLmJpeiIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVuZXIgbm9yZWZlcnJlciI+DQogICAgPGltZyBzcmM9Imh0dHBzOi8vcGl4ZWxzb2x1dGlvbi5zMy5ldS1zb3V0aC0xLmFtYXpvbmF3cy5jb20vbG9nb3MvTE9HT18zX0NPTE9SXzMwMC5wbmciIGFsdD0iUGl4ZWwgU29sdXRpb25zIiBzdHlsZT0iaGVpZ2h0OjQwcHg7IiAvPg0KICA8L2E+DQo8L2Rpdj4NCg0Ke2lmIGlzc2V0KCRtZXNzYWdlKX17JG1lc3NhZ2V9ey9pZn0NCg0Ke2Zvcm1fc3RhcnR9DQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ2F1dGhfbWV0aG9kJyl9OjwvcD4NCiA8cCBjbGFzcz0icGFnZWlucHV0Ij4NCiAgICA8c2VsZWN0IG5hbWU9InskYWN0aW9uaWR9c2V0dGluZ3NfaW5wdXRbYXV0aF9tZXRob2RdIj4NCiAgICAgIDxvcHRpb24gdmFsdWU9ImNyZWRlbnRpYWxzIiB7aWYgJG1vZC0+R2V0T3B0aW9uVmFsdWUoImF1dGhfbWV0aG9kIikgPT0gImNyZWRlbnRpYWxzIn1zZWxlY3RlZHsvaWZ9PnskbW9kLT5MYW5nKCdhdXRoX2NyZWRlbnRpYWxzJyl9PC9vcHRpb24+DQogICAgICA8b3B0aW9uIHZhbHVlPSJpYW1fcm9sZSIge2lmICRtb2QtPkdldE9wdGlvblZhbHVlKCJhdXRoX21ldGhvZCIpID09ICJpYW1fcm9sZSJ9c2VsZWN0ZWR7L2lmfT57JG1vZC0+TGFuZygnYXV0aF9pYW1fcm9sZScpfTwvb3B0aW9uPg0KICAgIDwvc2VsZWN0Pg0KICAgIDxici8+DQogICAgPHNtYWxsPnskbW9kLT5MYW5nKCdoZWxwX2F1dGhfbWV0aG9kJyl9PC9zbWFsbD4NCiA8L3A+DQo8L2Rpdj4NCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnYWNjZXNzX2tleScpfTombmJzcDt7Y21zX2hlbHAga2V5Mj0naGVscF9hY2Nlc3Nfa2V5JyB0aXRsZT0kbW9kLT5MYW5nKCdhY2Nlc3Nfa2V5Jyl9PC9wPg0KIDxwIGNsYXNzPSJwYWdlaW5wdXQiPg0KICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfXNldHRpbmdzX2lucHV0W2FjY2Vzc19rZXldIiB2YWx1ZT0ieyRtb2QtPkdldE9wdGlvblZhbHVlKCJhY2Nlc3Nfa2V5Iil9IiBzaXplPSI1MCIgbWF4bGVuZ3RoPSI1MCIvPg0KICAgIDxici8+DQogICAgPHNtYWxsPnskbW9kLT5MYW5nKCdoZWxwX2F1dGhfY3JlZGVudGlhbHNfb25seScpfTwvc21hbGw+DQogPC9wPg0KPC9kaXY+DQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ2FjY2Vzc19zZWNyZXRfa2V5Jyl9OjwvcD4NCiA8cCBjbGFzcz0icGFnZWlucHV0Ij4NCiAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1zZXR0aW5nc19pbnB1dFthY2Nlc3Nfc2VjcmV0X2tleV0iIHZhbHVlPSJ7JG1vZC0+R2V0T3B0aW9uVmFsdWUoImFjY2Vzc19zZWNyZXRfa2V5Iil9IiBzaXplPSI1MCIgbWF4bGVuZ3RoPSI1MCIvPg0KICAgIDxici8+DQogICAgPHNtYWxsPnskbW9kLT5MYW5nKCdoZWxwX2F1dGhfY3JlZGVudGlhbHNfb25seScpfTwvc21hbGw+DQogPC9wPg0KPC9kaXY+DQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ2J1Y2tldF9uYW1lJyl9OiZuYnNwO3tjbXNfaGVscCBrZXkyPSdoZWxwX2J1Y2tldF9uYW1lJyB0aXRsZT0kbW9kLT5MYW5nKCdidWNrZXRfbmFtZScpfTwvcD4NCiA8cCBjbGFzcz0icGFnZWlucHV0Ij4NCiAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1zZXR0aW5nc19pbnB1dFtidWNrZXRfbmFtZV0iIHZhbHVlPSJ7JG1vZC0+R2V0T3B0aW9uVmFsdWUoImJ1Y2tldF9uYW1lIil9IiBzaXplPSI1MCIgbWF4bGVuZ3RoPSI1MCIvPg0KIDwvcD4NCjwvZGl2Pg0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCjxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3JlZ2lvbicpfTo8L3A+DQogIDxkaXYgY2xhc3M9InBhZ2VpbnB1dCI+DQogICAgPHNlbGVjdCBuYW1lPSJ7JGFjdGlvbmlkfXNldHRpbmdzX2lucHV0W2FjY2Vzc19yZWdpb25dIj4NCiAgICAgIHtodG1sX29wdGlvbnMgb3B0aW9ucz0kYWNjZXNzX3JlZ2lvbl9saXN0IHNlbGVjdGVkPSRtb2QtPkdldE9wdGlvblZhbHVlKCJhY2Nlc3NfcmVnaW9uIil9DQogICAgPC9zZWxlY3Q+DQogIDwvZGl2Pg0KPC9kaXY+DQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ2FsbG93ZWQnKX06Jm5ic3A7e2Ntc19oZWxwIGtleTI9J2ZpZWxkZGVmX2FsbG93X2hlbHAnIHRpdGxlPSRtb2QtPkxhbmcoJ2FsbG93ZWQnKX08L3A+DQogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+DQoJICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1zZXR0aW5nc19pbnB1dFthbGxvd2VkXSIgdmFsdWU9InskbW9kLT5HZXRPcHRpb25WYWx1ZSgnYWxsb3dlZCcsICdwZGYsZG9jLGRvY3gseGxzLHhsc3gsanBnLHBuZyxqcGVnLGdpZicpfSIgc2l6ZT0iNTAiIG1heGxlbmd0aD0iMjAwIi8+DQogIDwvcD4NCjwvZGl2Pg0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij48bGFiZWwgZm9yPSJmbGQ1Ij57JG1vZC0+TGFuZygnZXhwaXJ5X2ludGVydmFsJyl9OjwvbGFiZWw+IHtjbXNfaGVscCBrZXk9J2hlbHBfb3B0X2V4cGlyeV9pbnRlcnZhbCcgdGl0bGU9JG1vZC0+TGFuZygnZXhwaXJ5X2ludGVydmFsJyl9PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij4NCiAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9c2V0dGluZ3NfaW5wdXRbZXhwaXJ5X2ludGVydmFsXSIgdmFsdWU9InskbW9kLT5HZXRPcHRpb25WYWx1ZSgiZXhwaXJ5X2ludGVydmFsIil8ZGVmYXVsdDo2MH0iIHNpemU9IjQiIG1heGxlbmd0aD0iNCIvPg0KICAgICAgPC9wPg0KCTwvZGl2Pg0KPGZpZWxkc2V0Pg0KICA8bGVnZW5kPnskbW9kLT5MYW5nKCdwcm9tcHRfY3VzdG9tX3VybCcpfTwvbGVnZW5kPg0KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4NCiAgICAgICAgPHNlbGVjdCBuYW1lPSJ7JGFjdGlvbmlkfXNldHRpbmdzX2lucHV0W3VzZV9jdXN0b21fdXJsXSI+DQogICAgICAgICAgICB7Y21zX3llc25vIHNlbGVjdGVkPSRtb2QtPkdldE9wdGlvblZhbHVlKCJ1c2VfY3VzdG9tX3VybCIpfQ0KICAgICAgICA8L3NlbGVjdD4NCiAgICAgICAgPGJyLz4NCiAgICAgICAgeyRtb2QtPkxhbmcoJ2hlbHBfdXNlX2N1c3RvbV91cmwnKX0NCiAgICA8L3A+DQogIDwvZGl2Pg0KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfY3VzdG9tX3VybCcpfTombmJzcDt7Y21zX2hlbHAga2V5Mj0naGVscF9jdXN0b21fdXJsJyB0aXRsZT0kbW9kLT5MYW5nKCdjdXN0b21fdXJsJyl9PC9wPg0KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4NCiAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfXNldHRpbmdzX2lucHV0W2N1c3RvbV91cmxdIiB2YWx1ZT0ieyRtb2QtPkdldE9wdGlvblZhbHVlKCJjdXN0b21fdXJsIil9IiBzaXplPSI1MCIgbWF4bGVuZ3RoPSIyMDAiLz4NCiAgPC9wPg0KICA8L2Rpdj4NCjwvZmllbGRzZXQ+DQoNCjxmaWVsZHNldD4NCgk8bGVnZW5kPnskbW9kLT5MYW5nKCdkZWZhdWx0X29wdGlvbnMnKX08L2xlZ2VuZD4NCgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfZGV0YWlscGFnZScpfTo8L3A+DQogICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfZGV0YWlscGFnZX08L3A+DQogICAgPC9kaXY+IA0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9zdW1tYXJ5cGFnZScpfTo8L3A+DQogICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfc3VtbWFyeXBhZ2V9PC9wPg0KICAgIDwvZGl2PiAJDQogIAk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfaXRlbXNkaXNwbGF5ZWQnKX06PC9wPg0KDQogICAgICAgIHskb3B0cz1bMTA9PjEwLDI1PT4yNSw1MD0+NTAsMTAwPT4xMDAsMTAwMD0+MTAwMF19DQogICAgICA8c2VsZWN0IG5hbWU9InskYWN0aW9uaWR9c2V0dGluZ3NfaW5wdXRbaXRlbXNkaXNwbGF5ZWRdIj4NCiAgICAgICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRvcHRzIHNlbGVjdGVkPSRtb2QtPkdldE9wdGlvblZhbHVlKCJpdGVtc2Rpc3BsYXllZCIpfQ0KICAgICAgPC9zZWxlY3Q+DQogICAgPC9kaXY+IAkNCjwvZmllbGRzZXQ+DQoNCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogPHAgY2xhc3M9InBhZ2VpbnB1dCI+DQo8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXN1Ym1pdCIgdmFsdWU9InskbW9kLT5MYW5nKCdhZG1pbl9zYXZlJyl9Ii8+DQogPC9wPg0KPC9kaXY+DQp7Zm9ybV9lbmR9DQp7aWYgJHNka19tb2QtPmlzX2RldmVsb3Blcl9tb2RlKCl9DQogIHsqZ2V0X3RlbXBsYXRlX3ZhcnMqfQ0Key9pZn0NCg==]]></data>
	</file>
	<file>
		<filename>/templates/default.tpl</filename>
		<isdir>0</isdir>
		<data><![CDATA[PGRpdiBjbGFzcz0iaG9saWRheVdyYXBwZXIiPg0KIHtmb3JlYWNoICRpdGVtcyBhcyAkaXRlbX0NCiA8ZGl2IGNsYXNzPSJob2xpZGF5Ij4NCiA8ZGl2IGNsYXNzPSJyb3ciPg0KIDxkaXYgY2xhc3M9ImNvbC1zbS02Ij4NCiA8YSBocmVmPSJ7Y21zX2FjdGlvbl91cmwgYWN0aW9uPSdkZXRhaWwnIGhpZD0kaXRlbS0+aWR9Ij57JGl0ZW0tPm5hbWV9PC9hPg0KPC9kaXY+DQo8ZGl2IGNsYXNzPSJjb2wtc20tNiB0ZXh0LXJpZ2h0Ij57JGl0ZW0tPnRoZV9kYXRlfGRhdGVfZm9ybWF0OicleCd9PC9kaXY+DQogPC9kaXY+DQogPC9kaXY+DQoge2ZvcmVhY2hlbHNlfQ0KIDxkaXYgY2xhc3M94oCdYWxlcnQgYWxlcnQtZGFuZ2Vy4oCdPnskbW9kLT5MYW5nKCdzb3JyeV9ub2ZpbGVzJyl9PC9kaXY+DQogey9mb3JlYWNofQ0KPC9kaXY+]]></data>
	</file>
	<file>
		<filename>/templates/defaultadmin.tpl</filename>
		<isdir>0</isdir>
		<data><![CDATA[PGRpdiBjbGFzcz0icGFnZW9wdGlvbnMiPgogICAgPGEgaHJlZj0ieyRhZGRfdXJsfSI+e2FkbWluX2ljb24gaWNvbj0nbmV3b2JqZWN0LmdpZid9IHskbW9kLT5MYW5nKCdhZGRfYnVja2V0Jyl9PC9hPgo8L2Rpdj4KCntpZiAkYnVja2V0c3xAY291bnQgPiAwfQo8dGFibGUgY2xhc3M9InBhZ2V0YWJsZSI+CiAgICA8dGhlYWQ+CiAgICAgICAgPHRyPgogICAgICAgICAgICA8dGg+eyRtb2QtPkxhbmcoJ2J1Y2tldF9uYW1lJyl9PC90aD4KICAgICAgICAgICAgPHRoPnskbW9kLT5MYW5nKCdyZWdpb24nKX08L3RoPgogICAgICAgICAgICA8dGg+eyRtb2QtPkxhbmcoJ2FsbG93ZWQnKX08L3RoPgogICAgICAgICAgICA8dGg+eyRtb2QtPkxhbmcoJ2xhYmVsX2RlZmF1bHQnKX08L3RoPgogICAgICAgICAgICA8dGg+eyRtb2QtPkxhbmcoJ2J1Y2tldF9pZCcpfTwvdGg+CiAgICAgICAgICAgIDx0aCBjbGFzcz0icGFnZWljb24iPiZuYnNwOzwvdGg+CiAgICAgICAgICAgIDx0aCBjbGFzcz0icGFnZWljb24iPiZuYnNwOzwvdGg+CiAgICAgICAgICAgIDx0aCBjbGFzcz0icGFnZWljb24iPiZuYnNwOzwvdGg+CiAgICAgICAgPC90cj4KICAgIDwvdGhlYWQ+CiAgICA8dGJvZHk+CiAgICB7Zm9yZWFjaCAkYnVja2V0cyBhcyAkYnVja2V0fQogICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkPjxhIGhyZWY9IntjbXNfYWN0aW9uX3VybCBhY3Rpb249ZWRpdF9idWNrZXQgYnVja2V0X2lkPSRidWNrZXQtPmlkfSIgdGl0bGU9InskbW9kLT5MYW5nKCdlZGl0Jyl9Ij4KICAgICAgICAgICAgICAgICAgICB7JGJ1Y2tldC0+YnVja2V0X25hbWV8ZXNjYXBlfQogICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICA8L3RkPgogICAgICAgICAgICA8dGQ+eyRidWNrZXQtPnJlZ2lvbnxlc2NhcGV9PC90ZD4KICAgICAgICAgICAgPHRkPnskYnVja2V0LT5hbGxvd2VkX2V4dGVuc2lvbnN8ZXNjYXBlfTwvdGQ+CiAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgIHtpZiAkYnVja2V0LT5pc19kZWZhdWx0fQogICAgICAgICAgICAgICAgICAgIHthZG1pbl9pY29uIGljb249J3RydWUuZ2lmJ30KICAgICAgICAgICAgICAgIHtlbHNlfQogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IntjbXNfYWN0aW9uX3VybCBhY3Rpb249ZG9fc2V0X2RlZmF1bHQgYnVja2V0X2lkPSRidWNrZXQtPmlkfSIgdGl0bGU9InskbW9kLT5MYW5nKCdzZXRfYXNfZGVmYXVsdCcpfSI+e2FkbWluX2ljb24gaWNvbj0nZmFsc2UuZ2lmJ308L2E+CiAgICAgICAgICAgICAgICB7L2lmfQogICAgICAgICAgICA8L3RkPgogICAgICAgICAgICA8dGQ+PGNvZGU+eyRidWNrZXQtPmlkfTwvY29kZT48L3RkPgogICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICA8YSBocmVmPSJ7Y21zX2FjdGlvbl91cmwgYWN0aW9uPWVkaXRfYnVja2V0IGJ1Y2tldF9pZD0kYnVja2V0LT5pZH0iIHRpdGxlPSJ7JG1vZC0+TGFuZygnZWRpdCcpfSI+CiAgICAgICAgICAgICAgICAgICAge2FkbWluX2ljb24gaWNvbj0nZWRpdC5naWYnfQogICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICA8L3RkPgogICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICA8YSBocmVmPSJ7Y21zX2FjdGlvbl91cmwgYWN0aW9uPWJyb3dzZV9idWNrZXQgYnVja2V0X2lkPSRidWNrZXQtPmlkfSIgdGl0bGU9InskbW9kLT5MYW5nKCdicm93c2UnKX0iPgogICAgICAgICAgICAgICAgICAgIHthZG1pbl9pY29uIGljb249J3ZpZXcuZ2lmJ30KICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgPGEgaHJlZj0ie2Ntc19hY3Rpb25fdXJsIGFjdGlvbj1kb19kZWxldGVfYnVja2V0IGJ1Y2tldF9pZD0kYnVja2V0LT5pZH0iIHRpdGxlPSJ7JG1vZC0+TGFuZygnZGVsZXRlJyl9IiBvbmNsaWNrPSJyZXR1cm4gY29uZmlybSgneyRtb2QtPkxhbmcoJ2NvbmZpcm1fZGVsZXRlX2J1Y2tldCcpfScpOyI+CiAgICAgICAgICAgICAgICAgICAge2FkbWluX2ljb24gaWNvbj0nZGVsZXRlLmdpZid9CiAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgPC90cj4KICAgIHsvZm9yZWFjaH0KICAgIDwvdGJvZHk+CjwvdGFibGU+CntlbHNlfQogICAgPHAgY2xhc3M9ImluZm9ybWF0aW9uIj57JG1vZC0+TGFuZygnbm9fYnVja2V0c19kZWZpbmVkJyl9PC9wPgp7L2lmfQo=]]></data>
	</file>
	<file>
		<filename>/templates/delete.tpl</filename>
		<isdir>0</isdir>
		<data><![CDATA[PGgzPnskbW9kX2ZtLT5MYW5nKCdhY3Rpb25kZWxldGUnKX06PC9oMz4NCnthc3NpZ24gdmFyPSdjYW5jZWxsYWJlbCcgdmFsdWU9JG1vZF9mbS0+TGFuZygnY2FuY2VsJyl9DQp7aWYgaXNzZXQoJGVycm9ycyl9DQp7YXNzaWduIHZhcj0nY2FuY2VsbGFiZWwnIHZhbHVlPSRtb2RfZm0tPkxhbmcoJ3JldHVybicpfQ0Key9pZn0NCg0KDQp7KmNtc19oZWxwIGtleTI9J3NldHRpbmdzX25vc2VmdXJsJyB0aXRsZT1sYW5nKCd3YXJuX25vc2VmdXJsJykqfQ0KDQp7aWYgJGhhc2Rpcn0NCiAgPGRpdiBjbGFzcz0id2FybmluZyIgc3R5bGU9ImRpc3BsYXk6IGJsb2NrOyI+eyRtb2QtPmxhbmcoJ3dhcm5fZGVsZXRlX2RpcmVjdG9yeScpfTwvZGl2Pg0Key9pZn0NCg0KeyRzdGFydGZvcm19DQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kX2ZtLT5MYW5nKCdkZWxldGVzZWxlY3RlZCcpfTo8L3A+DQogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPg0KICAgIHsnPGJyLz4nfGltcGxvZGU6JHNlbGFsbH0NCiAgPC9wPg0KPC9kaXY+DQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICA8cCBjbGFzcz0icGFnZXRleHQiPjwvcD4NCiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+DQogICAge2lmICFpc3NldCgkZXJyb3JzKX0NCiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXN1Ym1pdCIgdmFsdWU9InskbW9kX2ZtLT5MYW5nKCdkZWxldGUnKX0iLz4NCiAgICB7L2lmfQ0KICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9Y2FuY2VsIiB2YWx1ZT0ieyRjYW5jZWxsYWJlbH0iLz4NCiAgPC9wPg0KPC9kaXY+DQp7JGVuZGZvcm19DQoNCntpZiAkbW9kLT5pc19kZXZlbG9wZXJfbW9kZSgpfQ0KICB7Z2V0X3RlbXBsYXRlX3ZhcnN9DQp7L2lmfQ==]]></data>
	</file>
	<file>
		<filename>/templates/edit_bucket.tpl</filename>
		<isdir>0</isdir>
		<data><![CDATA[e2lmICRidWNrZXR9CiAgICA8aDM+eyRtb2QtPkxhbmcoJ2VkaXRfYnVja2V0Jyl9OiB7JGJ1Y2tldC0+YnVja2V0X25hbWV8ZXNjYXBlfTwvaDM+CntlbHNlfQogICAgPGgzPnskbW9kLT5MYW5nKCdhZGRfYnVja2V0Jyl9PC9oMz4Key9pZn0KCntmb3JtX3N0YXJ0IGFjdGlvbj1kb19zYXZlX2J1Y2tldH0KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ieyRhY3Rpb25pZH1idWNrZXRfaWQiIHZhbHVlPSJ7JGJ1Y2tldF9pZH0iIC8+Cgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnYnVja2V0X25hbWUnKX06Jm5ic3A7e2Ntc19oZWxwIGtleTI9J2hlbHBfYnVja2V0X25hbWUnIHRpdGxlPSRtb2QtPkxhbmcoJ2J1Y2tldF9uYW1lJyl9PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9YnVja2V0X25hbWUiIHZhbHVlPSJ7aWYgJGJ1Y2tldH17JGJ1Y2tldC0+YnVja2V0X25hbWV8ZXNjYXBlfXsvaWZ9IiBzaXplPSI1MCIgbWF4bGVuZ3RoPSIyNTUiIC8+CiAgICA8L3A+CjwvZGl2PgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3JlZ2lvbicpfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgICA8c2VsZWN0IG5hbWU9InskYWN0aW9uaWR9cmVnaW9uIj4KICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iIj4tLSB7JG1vZC0+TGFuZygnc2VsZWN0X3JlZ2lvbicpfSAtLTwvb3B0aW9uPgogICAgICAgICAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JGFjY2Vzc19yZWdpb25fbGlzdCBzZWxlY3RlZD0kYnVja2V0LT5yZWdpb259CiAgICAgICAgPC9zZWxlY3Q+CiAgICA8L3A+CjwvZGl2PgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ2FsbG93ZWQnKX06Jm5ic3A7e2Ntc19oZWxwIGtleTI9J2ZpZWxkZGVmX2FsbG93X2hlbHAnIHRpdGxlPSRtb2QtPkxhbmcoJ2FsbG93ZWQnKX08L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1hbGxvd2VkX2V4dGVuc2lvbnMiIHZhbHVlPSJ7aWYgJGJ1Y2tldH17JGJ1Y2tldC0+YWxsb3dlZF9leHRlbnNpb25zfGVzY2FwZX17ZWxzZX1qcGcsanBlZyxnaWYscG5nLHBkZixkb2MsZG9jeHsvaWZ9IiBzaXplPSI1MCIgbWF4bGVuZ3RoPSI1MDAiIC8+CiAgICA8L3A+CjwvZGl2PgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ2N1c3RvbV91cmwnKX06Jm5ic3A7e2Ntc19oZWxwIGtleTI9J2hlbHBfY3VzdG9tX3VybCcgdGl0bGU9JG1vZC0+TGFuZygnY3VzdG9tX3VybCcpfTwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWN1c3RvbV91cmwiIHZhbHVlPSJ7aWYgJGJ1Y2tldH17JGJ1Y2tldC0+Y3VzdG9tX3VybHxlc2NhcGV9ey9pZn0iIHNpemU9IjUwIiBtYXhsZW5ndGg9IjUwMCIgcGxhY2Vob2xkZXI9Imh0dHBzOi8vY2RuLmV4YW1wbGUuY29tIiAvPgogICAgPC9wPgo8L2Rpdj4KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXN1Ym1pdCIgdmFsdWU9InskbW9kLT5MYW5nKCdzdWJtaXQnKX0iIC8+CiAgICAgICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1jYW5jZWwiIHZhbHVlPSJ7JG1vZC0+TGFuZygnY2FuY2VsJyl9IiAvPgogICAgPC9wPgo8L2Rpdj4Ke2Zvcm1fZW5kfQo=]]></data>
	</file>
	<file>
		<filename>/templates/filemanager.tpl</filename>
		<isdir>0</isdir>
		<data><![CDATA[e2lmICFpc3NldCgkYWpheCl9DQo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KYS5maWxlbGluazp2aXNpdGVkIHsNCiAgIGNvbG9yOiAjMDAwOw0KfQ0KPC9zdHlsZT4NCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4NCnZhciByZWZyZXNoX3VybCA9ICd7JHJlZnJlc2hfdXJsfScrJyZzaG93dGVtcGxhdGU9ZmFsc2UnOw0KcmVmcmVzaF91cmwgPSByZWZyZXNoX3VybC5yZXBsYWNlKC9hbXA7L2csJycpOw0KDQovLyA8IVtDREFUQVsNCmZ1bmN0aW9uIGVuYWJsZV9idXR0b24oaWRsaXN0KSB7DQogICQoaWRsaXN0KS5yZW1vdmVBdHRyKCdkaXNhYmxlZCcpLnJlbW92ZUNsYXNzKCd1aS1zdGF0ZS1kaXNhYmxlZCB1aS1idXR0b24tZGlzYWJsZWQnKTsNCn0NCmZ1bmN0aW9uIGRpc2FibGVfYnV0dG9uKGlkbGlzdCkgew0KICAkKGlkbGlzdCkuYXR0cignZGlzYWJsZWQnLCdkaXNhYmxlZCcpLmFkZENsYXNzKCd1aS1zdGF0ZS1kaXNhYmxlZCB1aS1idXR0b24tZGlzYWJsZWQnKTsNCn0NCg0KZnVuY3Rpb24gZW5hYmxlX2FjdGlvbl9idXR0b25zKCkgew0KDQogICAgdmFyIGZpbGVzID0gJCgiI2ZpbGVzYXJlYSBpbnB1dFt0eXBlPSdjaGVja2JveCddLmZpbGVzZWxlY3QiKS5maWx0ZXIoJzpjaGVja2VkJykubGVuZ3RoLA0KICAgICAgICBkaXJzID0gJCgiI2ZpbGVzYXJlYSBpbnB1dFt0eXBlPSdjaGVja2JveCddLmRpciIpLmZpbHRlcignOmNoZWNrZWQnKS5sZW5ndGgsDQogICAgICAgIGFyY2ggPSAkKCIjZmlsZXNhcmVhIGlucHV0W3R5cGU9J2NoZWNrYm94J10uYXJjaGl2ZSIpLmZpbHRlcignOmNoZWNrZWQnKS5sZW5ndGgsDQogICAgICAgIHRleHQgPSAkKCIjZmlsZXNhcmVhIGlucHV0W3R5cGU9J2NoZWNrYm94J10udGV4dCIpLmZpbHRlcignOmNoZWNrZWQnKS5sZW5ndGgsDQogICAgICAgIGltZ3MgPSAkKCIjZmlsZXNhcmVhIGlucHV0W3R5cGU9J2NoZWNrYm94J10uaW1hZ2UiKS5maWx0ZXIoJzpjaGVja2VkJykubGVuZ3RoOw0KDQogICAgZGlzYWJsZV9idXR0b24oJ2J1dHRvbi5maWxlYnRuJyk7DQogICAgJCgnYnV0dG9uLmZpbGVidG4nKS5hdHRyKCdkaXNhYmxlZCcsJ2Rpc2FibGVkJyk7DQogICAgaWYgKGZpbGVzID09IDAgJiYgZGlycyA9PSAwKSB7DQogICAgICAgIC8vIG5vdGhpbmcgc2VsZWN0ZWQsIGVuYWJsZSBhbnl0aGluZyB3aXRoIHNlbGVjdF9ub25lDQogICAgICAgIGVuYWJsZV9idXR0b24oJyNidG5fcmVmcmVzaCcpOw0KICAgIH0gZWxzZSBpZiAoZmlsZXMgPT0gMSkgew0KICAgICAgICAvLyAxIHNlbGVjdGVkLCBlbmFibGUgYW55dGhpbmcgd2l0aCBzZWxlY3Rfb25lDQogICAgICAgIGVuYWJsZV9idXR0b24oJyNidG5fZGVsZXRlJyk7DQoNCiAgICAgICAgaWYgKGRpcnMgPT0gMCkgZW5hYmxlX2J1dHRvbignI2J0bl9jb3B5Jyk7DQogICAgICAgIGlmIChhcmNoID09IDEpIGVuYWJsZV9idXR0b24oJyNidG5fdW5wYWNrJyk7DQogICAgICAgIGlmIChpbWdzID09IDEpIGVuYWJsZV9idXR0b24oJyNidG5fdmlldywjYnRuX3RodW1iLCNidG5fcmVzaXplY3JvcCwjYnRuX3JvdGF0ZScpOw0KICAgICAgICBpZiAodGV4dCA9PSAxKSBlbmFibGVfYnV0dG9uKCcjYnRuX3ZpZXcnKTsNCiAgICB9IGVsc2UgaWYgKGZpbGVzID4gMSAmJiBkaXJzID09IDApIHsNCiAgICAgICAgLy8gbXVsdGlwbGUgZmlsZXMgc2VsZWN0ZWQNCiAgICAgICAgZW5hYmxlX2J1dHRvbignI2J0bl9kZWxldGUsI2J0bl9jb3B5LCNidG5fbW92ZScpOw0KICAgIH0gZWxzZSBpZiAoZmlsZXMgPiAxICYmIGRpcnMgPiAwKSB7DQogICAgICAgIC8vIG11bHRpcGxlIHNlbGVjdGVkLCBhdCBsZWFzdCBvbmUgZGlyLg0KICAgICAgICBlbmFibGVfYnV0dG9uKCcjYnRuX2RlbGV0ZSwjYnRuX21vdmUnKTsNCiAgICB9DQp9DQoNCiQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uICgpIHsNCiAgICBlbmFibGVfYWN0aW9uX2J1dHRvbnMoKTsNCg0KICAgICQoJyNyZWZyZXNoJykudW5iaW5kKCdjbGljaycpOw0KICAgICQoJyNyZWZyZXNoJykuYmluZCgnY2xpY2snLCBmdW5jdGlvbiAoKSB7DQogICAgICAgIC8vIGFqYXh5IHJlbG9hZCBmb3IgdGhlIGZpbGVzIGFyZWEuDQogICAgICAgICQoJyNmaWxlc2FyZWEnKS5sb2FkKHJlZnJlc2hfdXJsKTsNCiAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgIH0pOw0KDQogICAgJChkb2N1bWVudCkub24oJ2Ryb3B6b25lX2NoZGlyJywgJCh0aGlzKSwgZnVuY3Rpb24gKGUsIGRhdGEpIHsNCiAgICAgICAgLy8gaWYgY2hhbmdlIGRpciB2aWEgdGhlIGRyb3B6b25lLCBtYWtlIHN1cmUgZmlsZW1hbmFnZXIgcmVmcmVzaGVzLg0KICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTsNCiAgICB9KTsNCiAgICAkKGRvY3VtZW50KS5vbignZHJvcHpvbmVfc3RvcCcsICQodGhpcyksIGZ1bmN0aW9uIChlLCBkYXRhKSB7DQogICAgICAgIC8vIGlmIGNoYW5nZSBkaXIgdmlhIHRoZSBkcm9wem9uZSwgbWFrZSBzdXJlIGZpbGVtYW5hZ2VyIHJlZnJlc2hlcy4NCiAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgfSk7DQoNCiAgICAkKGRvY3VtZW50KS5vbignY2hhbmdlJywgJyNmaWxlc2FyZWEgaW5wdXRbdHlwZT0iY2hlY2tib3giXS5maWxlc2VsZWN0JywgZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgLy8gZmluZCB0aGUgcGFyZW50IHJvdw0KICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpOw0KICAgICAgICB2YXIgdCA9ICQodGhpcykuYXR0cignY2hlY2tlZCcpOw0KICAgICAgICBpZiAodCkgew0KICAgICAgICAgICAgJCh0aGlzKS5jbG9zZXN0KCd0cicpLmFkZENsYXNzKCdzZWxlY3RlZCcpOw0KICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgJCh0aGlzKS5jbG9zZXN0KCd0cicpLnJlbW92ZUNsYXNzKCdzZWxlY3RlZCcpOw0KICAgICAgICB9DQogICAgICAgIGVuYWJsZV9hY3Rpb25fYnV0dG9ucygpOw0KICAgIH0pOw0KDQogICAgJChkb2N1bWVudCkub24oJ2NoYW5nZScsICcjdGFnYWxsJywgZnVuY3Rpb24gKGV2ZW50KSB7DQogICAgICAgIGlmICgkKHRoaXMpLmlzKCc6Y2hlY2tlZCcpKSB7DQogICAgICAgICAgICAkKCcjZmlsZXNhcmVhIGlucHV0OmNoZWNrYm94LmZpbGVzZWxlY3QnKS5hdHRyKCdjaGVja2VkJywgdHJ1ZSkudHJpZ2dlcignY2hhbmdlJyk7DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAkKCcjZmlsZXNhcmVhIGlucHV0OmNoZWNrYm94LmZpbGVzZWxlY3QnKS5hdHRyKCdjaGVja2VkJywgZmFsc2UpLnRyaWdnZXIoJ2NoYW5nZScpOw0KICAgICAgICB9DQogICAgfSk7DQoNCiAgICAkKGRvY3VtZW50KS5vbignY2xpY2snLCAnI2J0bl92aWV3JywgZnVuY3Rpb24gKCkgew0KICAgICAgICAvLyBmaW5kIHRoZSBzZWxlY3RlZCBpdGVtLg0KICAgICAgICB2YXIgdG1wID0gJCgiI2ZpbGVzYXJlYSBpbnB1dFt0eXBlPSdjaGVja2JveCddIikuZmlsdGVyKCc6Y2hlY2tlZCcpLnZhbCgpOw0KICAgICAgICB2YXIgdXJsID0gJ3skdmlld2ZpbGVfdXJsfSZzaG93dGVtcGxhdGU9ZmFsc2UmeyRhY3Rpb25pZH12aWV3ZmlsZT0nICsgdG1wOw0KICAgICAgICB1cmwgPSB1cmwucmVwbGFjZSgvYW1wOy9nLCAnJyk7DQogICAgICAgICQoJyNwb3B1cF9jb250ZW50cycpLmxvYWQodXJsKTsNCiAgICAgICAgJCgnI3BvcHVwJykuZGlhbG9nKHsNCiAgICAgICAJICBtaW5XaWR0aDogMzgwLA0KICAgICAgICAgIG1heEhlaWdodDogNjAwDQogICAgICAgIH0pOw0KICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgfSk7DQoNCiAgICAkKGRvY3VtZW50KS5vbignY2xpY2snLCAndGQuY2xpY2thYmxlJywgZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgdCA9ICQodGhpcykucGFyZW50KCkuZmluZCgnOmNoZWNrYm94JykuYXR0cignY2hlY2tlZCcpOw0KICAgICAgICBpZiAodCAhPSAnY2hlY2tlZCcpIHsNCiAgICAgICAgICAgICQodGhpcykucGFyZW50KCkuZmluZCgnOmNoZWNrYm94JykuYXR0cignY2hlY2tlZCcsIHRydWUpLnRyaWdnZXIoJ2NoYW5nZScpOw0KICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgJCh0aGlzKS5wYXJlbnQoKS5maW5kKCc6Y2hlY2tib3gnKS5hdHRyKCdjaGVja2VkJywgZmFsc2UpLnRyaWdnZXIoJ2NoYW5nZScpOw0KICAgICAgICB9DQogICAgfSk7DQp9KTsNCi8vIF1dPg0KPC9zY3JpcHQ+DQoNCntpZiBpc3NldCgkYmFja191cmwpfQ0KPHAgY2xhc3M9InBhZ2ViYWNrIj48YSBocmVmPSJ7JGJhY2tfdXJsfSI+JmxhcXVvOyB7JGJhY2tfbGFiZWx9PC9hPjwvcD4NCnsvaWZ9DQoNCjxoMz57JEZpbGVNYW5hZ2VyLT5MYW5nKCdjdXJyZW50cGF0aCcpfQ0KICAgPHNwYW4gY2xhc3M9InBhdGhzZWxlY3RvciI+PGEgaHJlZj0ieyR1cF9ob21lfSI+eyR1cF9ob21lX2xhYmVsfTwvYT4gLyANCiAgIHtmb3JlYWNoICRwYXRoX3BhcnRzIGFzICRwYXJ0fQ0KICAgICB7aWYgIWVtcHR5KCRwYXJ0LT51cmwpfQ0KICAgICAgIDxhIGhyZWY9InskcGFydC0+dXJsfSI+eyRwYXJ0LT5uYW1lfTwvYT4NCiAgICAge2Vsc2V9DQogICAgICAgeyRwYXJ0LT5uYW1lfQ0KICAgICB7L2lmfQ0KICAgICB7aWYgISRwYXJ0QGxhc3R9PHNwYW4gY2xhc3M9ImRzIj4vPC9zcGFuPnsvaWZ9DQogICB7L2ZvcmVhY2h9DQogICA8L3NwYW4+DQo8L2gzPg0KDQp7ZnVuY3Rpb24gZmlsZWJ0biBpY29uPSd1aS1pY29uLWNpcmNsZS1jaGVjayd9DQp7JGFkZGNsYXNzPSd1aS1idXR0b24taWNvbi1wcmltYXJ5J30NCntpZiBpc3NldCgkdGV4dCkgJiYgJHRleHQgIT0gJyd9DQogIHskYWRkY2xhc3M9J3VpLWJ1dHRvbi10ZXh0LWljb24tcHJpbWFyeSd9DQogIHtpZiAhaXNzZXQoJHRpdGxlKSB8fCAkdGl0bGUgPT0gJyd9eyR0aXRsZT0kdGV4dH17L2lmfQ0Key9pZn0NCjxidXR0b24gdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGluYW1lfSIgaWQ9InskaWR9IiB0aXRsZT0ieyR0aXRsZXxkZWZhdWx0OicnfSIgY2xhc3M9ImZpbGVidG4gdWktYnV0dG9uIHVpLXdpZGdldCB1aS1zdGF0ZS1kZWZhdWx0IHVpLWNvcm5lci1hbGwgeyRhZGRjbGFzc30iPg0KICA8c3BhbiBjbGFzcz0idWktaWNvbiB1aS1idXR0b24taWNvbi1wcmltYXJ5IHskaWNvbn0iPjwvc3Bhbj4NCiAge2lmIGlzc2V0KCR0ZXh0KSAmJiAkdGV4dCAhPSAnJ308c3BhbiBjbGFzcz0idWktYnV0dG9uLXRleHQiPnskdGV4dH08L3NwYW4+ey9pZn0NCjwvYnV0dG9uPg0Key9mdW5jdGlvbn0NCg0KPGRpdj4NCiAgeyRmb3Jtc3RhcnR9DQo8ZGl2Pg0KCTxmaWVsZHNldCBpZD0ibmF2QnV0dG9ucyI+DQogICAgICB7KmZpbGVidG4gaWQ9J2J0bl9uZXdkaXInIGluYW1lPSJ7JGFjdGlvbmlkfWZpbGVhY3Rpb25uZXdkaXIiIGljb249J3VpLWljb24tY2lyY2xlLXBsdXMnIHRleHQ9JEZpbGVNYW5hZ2VyLT5MYW5nKCduZXdkaXInKSB0aXRsZT0kRmlsZU1hbmFnZXItPkxhbmcoJ3RpdGxlX25ld2RpcicpKn0NCiAgICAgIHsqZmlsZWJ0biBpZD0nYnRuX3ZpZXcnIGluYW1lPSJ7JGFjdGlvbmlkfWZpbGVhY3Rpb252aWV3IiBpY29uPSd1aS1pY29uLWNpcmNsZS16b29taW4nIHRleHQ9JEZpbGVNYW5hZ2VyLT5MYW5nKCd2aWV3JykgdGl0bGU9JEZpbGVNYW5hZ2VyLT5MYW5nKCd0aXRsZV92aWV3JykqfQ0KCQl7ZmlsZWJ0biBpZD0nYnRuX2RlbGV0ZScgaW5hbWU9InskYWN0aW9uaWR9ZmlsZWFjdGlvbmRlbGV0ZSIgaWNvbj0ndWktaWNvbi10cmFzaCcgdGV4dD0kRmlsZU1hbmFnZXItPkxhbmcoJ2RlbGV0ZScpIHRpdGxlPSRGaWxlTWFuYWdlci0+TGFuZygndGl0bGVfZGVsZXRlJyl9DQogICAge2ZpbGVidG4gaWQ9J2J0bl9yZWZyZXNoJyBpbmFtZT0ieyRhY3Rpb25pZH1maWxlYWN0aW9ucmVmcmVzaCIgaWNvbj0ndWktaWNvbi1yZWZyZXNoJyB0ZXh0PSRGaWxlTWFuYWdlci0+TGFuZygncmVmcmVzaCcpIHRpdGxlPSRGaWxlTWFuYWdlci0+TGFuZygndGl0bGVfcmVmcmVzaCcpfQ0KICAgICZuYnNwO3skbW9kLT5MYW5nKCdsYXN0X3JlZnJlc2hlZCcpfSZuYnNwO3skbGFzdHVwZGF0ZXxsb2NhbGVkYXRlX2Zvcm1hdDonaiAlaCBZIEg6aTpzJ30NCgk8L2ZpZWxkc2V0Pg0KPC9kaXY+DQp7JGhpZGRlbnBhdGh9DQp7JGhpZGRlbl9idWNrZXRfaWR9DQp7L2lmfQ0KDQo8ZGl2IGlkPSJmaWxlc2FyZWEiPg0KCTx0YWJsZSB3aWR0aD0iMTAwJSIgY2xhc3M9InBhZ2V0YWJsZSBzY3JvbGxhYmxlIj4NCgkJPHRoZWFkPg0KCQkJPHRyPg0KCQkJCTx0aCBjbGFzcz0icGFnZWljb24iPiZuYnNwOzwvdGg+DQogICAgICAgIDx0aCBjbGFzcz0icGFnZWljb24iPiZuYnNwOzwvdGg+DQoJCQkJPHRoPnskRmlsZU1hbmFnZXItPkxhbmcoImZpbGVuYW1lIil9PC90aD4NCgkJCQk8dGg+eyRGaWxlTWFuYWdlci0+TGFuZygnbWltZXR5cGUnKX08L3RoPg0KCQkJCTx0aCBjbGFzcz0icGFnZWljb24iIHRpdGxlPSJ7JEZpbGVNYW5hZ2VyLT5MYW5nKCd0aXRsZV9jb2xfZmlsZXNpemUnKX0iIHN0eWxlPSJ0ZXh0LWFsaWduOnJpZ2h0OyI+eyRGaWxlTWFuYWdlci0+TGFuZygiZmlsZXNpemUiKX08L3RoPg0KCQkJCTx0aCBjbGFzcz0icGFnZWljb24iIHRpdGxlPSJ7JEZpbGVNYW5hZ2VyLT5MYW5nKCd0aXRsZV9jb2xfZmlsZWRhdGUnKX0iPnskRmlsZU1hbmFnZXItPkxhbmcoImZpbGVkYXRlIil9PC90aD4NCiAgICAgICAgICAgICAgICA8dGggY2xhc3M9InBhZ2VpY29uIj48L3RoPg0KCQkJCTx0aCBjbGFzcz0icGFnZWljb24iPg0KCQkJCQk8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9InRhZ2FsbCIgdmFsdWU9InRhZ2FsbCIgaWQ9InRhZ2FsbCIgdGl0bGU9InskRmlsZU1hbmFnZXItPkxhbmcoJ3RpdGxlX3RhZ2FsbCcpfSIvPg0KCQkJCTwvdGg+DQoJCQk8L3RyPg0KCQk8L3RoZWFkPg0KCQk8dGJvZHk+DQoJCXtmb3JlYWNoIGZyb209JGF3c3MzX2l0ZW1zIGl0ZW09ZmlsZX0NCgkJCXtjeWNsZSB2YWx1ZXM9InJvdzEscm93MiIgYXNzaWduPXJvd2NsYXNzfQ0KCQkJPHRyIGNsYXNzPSJ7JHJvd2NsYXNzfSI+DQoJCQkJPHRkIHZhbGlnbj0ibWlkZGxlIj57JGZpbGUtPmljb25fbGlua308L3RkPg0KICAgIDx0ZCBjbGFzcz0iY2xpY2thYmxlIiB2YWxpZ249Im1pZGRsZSI+e2lmICEkZmlsZS0+ZGlyfTxhIGhyZWY9InskZmlsZS0+cHJlc2lnbmVkX3VybH0iIHRhcmdldD0iX2JsYW5rIj57YWRtaW5faWNvbiBpY29uPSdwZXJtaXNzaW9ucy5naWYnIGFsdD0ndmlld19wYWdlJ3xsYW5nfTwvYT57L2lmfTwvdGQ+DQoJCQkJPHRkIGNsYXNzPSJjbGlja2FibGUiIHZhbGlnbj0ibWlkZGxlIj57JGZpbGUtPnVybF9saW5rfTwvdGQ+DQoJCQkJPHRkIGNsYXNzPSJjbGlja2FibGUiIHZhbGlnbj0ibWlkZGxlIj57JGZpbGUtPm1pbWV9PC90ZD4NCgkJCQk8dGQgY2xhc3M9ImNsaWNrYWJsZSIgc3R5bGU9InBhZGRpbmctcmlnaHQ6OHB4O3doaXRlLXNwYWNlOnByZTt0ZXh0LWFsaWduOnJpZ2h0OyIgdmFsaWduPSJtaWRkbGUiPnsqczNfdXRpbHM6OmZvcm1hdEJ5dGVzKCRmaWxlLT5zaXplKSp9PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9ImNsaWNrYWJsZSIgc3R5bGU9InBhZGRpbmctcmlnaHQ6OHB4O3doaXRlLXNwYWNlOnByZTsiIHZhbGlnbj0ibWlkZGxlIj57JGZpbGUtPmRhdGV8Y21zX2RhdGVfZm9ybWF0fTwvdGQ+DQoJCQkJPHRkPnskZmlsZS0+b3Blbmxpbmt9IHsqYWRtaW5faWNvbiBpY29uPSd2aWV3LmdpZicgYWx0PSJPcGVuIip9PC90ZD4NCgkJCQk8dGQ+DQoJCQkJe2lmICFpc3NldCgkZmlsZS0+bm9DaGVja2JveCl9DQoJCQkJCTxsYWJlbCBmb3I9InhfeyRmaWxlLT51cmxuYW1lfSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij57JEZpbGVNYW5hZ2VyLT5MYW5nKCd0b2dnbGUnKX08L2xhYmVsPg0KCQkJCQk8aW5wdXQgdHlwZT0iY2hlY2tib3giIHRpdGxlPSJ7JEZpbGVNYW5hZ2VyLT5MYW5nKCd0b2dnbGUnKX0iIGlkPSJ4X3skZmlsZS0+bmFtZX0iIG5hbWU9InskYWN0aW9uaWR9c2VsYWxsW10iIHZhbHVlPSJ7JGZpbGUtPmtleX0iIGNsYXNzPSJmaWxlc2VsZWN0IHtpbXBsb2RlKCcgJywkZmlsZS0+dHlwZSl9IiB7aWYgaXNzZXQoJGZpbGUtPmNoZWNrZWQpfWNoZWNrZWQ9ImNoZWNrZWQiey9pZn0vPg0KCQkJCXsvaWZ9DQoJCQkJPC90ZD4NCgkJCTwvdHI+DQoJCXsvZm9yZWFjaH0NCgkJPC90Ym9keT4NCgkJPHRmb290Pg0KCQkJPHRyPg0KCQkJCTx0ZCBjb2xzcGFuPSI2Ij4mbmJzcDt7JGNvdW50c3RleHR9PC90ZD4NCgkJCTwvdHI+DQoJCTwvdGZvb3Q+DQoJPC90YWJsZT4NCjwvZGl2Pg0Ke2lmICFpc3NldCgkYWpheCl9DQoJeyp7JGFjdGlvbmRyb3Bkb3dufXskdGFyZ2V0ZGlyfXskb2tpbnB1dH0qfQ0KCXskZm9ybWVuZH0NCjwvZGl2Pg0Key9pZn0NCg0KPGRpdiBjbGFzcz0icm93IGNfZnVsbCI+DQogIHtpZiAkaXRlbWNvdW50ID4gMCAmJiAkcGFnZWNvdW50ID4gMX0NCiAgICA8ZGl2IGNsYXNzPSJwYWdlb3B0aW9ucyBncmlkXzEyIiBzdHlsZT0idGV4dC1hbGlnbjogcmlnaHQ7Ij4NCiAgICAgIHtmb3JtX3N0YXJ0IGFjdGlvbj1icm93c2VfYnVja2V0fQ0KICAgICAgeyRtb2QtPkxhbmcoJ3Byb21wdF9wYWdlJyl9Jm5ic3A7DQogICAgICA8c2VsZWN0IG5hbWU9InskYWN0aW9uaWR9cGFnZW51bWJlciI+DQogICAgICAgIHtjbXNfcGFnZW9wdGlvbnMgbnVtcGFnZXM9JHBhZ2Vjb3VudCBjdXJwYWdlPSRwYWdlbnVtYmVyfQ0KICAgICAgPC9zZWxlY3Q+Jm5ic3A7DQogICAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXBhZ2luYXRlIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3Byb21wdF9nbycpfSIvPg0KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ieyRhY3Rpb25pZH1wcmVmaXgiIHZhbHVlPSJ7JHBhdGh9Ii8+DQogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ7JGFjdGlvbmlkfWJ1Y2tldF9pZCIgdmFsdWU9InskYnVja2V0X2lkfSIvPg0KICAgICAge2Zvcm1fZW5kfQ0KICAgIDwvZGl2Pg0KICB7L2lmfQ0KPC9kaXY+eyogLnJvdyAqfQ0KDQp7KmdldF90ZW1wbGF0ZV92YXJzKn0=]]></data>
	</file>
	<file>
		<filename>/templates/orig_detail_template.tpl</filename>
		<isdir>0</isdir>
		<data><![CDATA[e2lmICRlbnRyeX0KICA8ZGl2IGNsYXNzPSJyb3cgbWItMiI+CiAgPGRpdiBjbGFzcz0iY29sLW1kLTYiPgogICAgPGRpdiBjbGFzcz0icm93IGctMCBib3JkZXIgcm91bmRlZCBvdmVyZmxvdy1oaWRkZW4gZmxleC1tZC1yb3cgbWItNCBzaGFkb3ctc20gaC1tZC0yNTAgcG9zaXRpb24tcmVsYXRpdmUiPgogICAgICA8ZGl2IGNsYXNzPSJjb2wgcC00IGQtZmxleCBmbGV4LWNvbHVtbiBwb3NpdGlvbi1zdGF0aWMiPgogICAgICB7aWYgaXNzZXQoJGVudHJ5LT5idWNrZXQpfQogICAgICAgIDxzdHJvbmcgY2xhc3M9ImQtaW5saW5lLWJsb2NrIG1iLTIgdGV4dC1wcmltYXJ5Ij57JGVudHJ5LT5idWNrZXR9PC9zdHJvbmc+CiAgICAgIHsvaWZ9CiAgICAgICAgPGgzIGNsYXNzPSJtYi0wIj57JGVudHJ5LT5uYW1lfGNtc19lc2NhcGU6aHRtbGFsbH08L2gzPgogICAgICAgIHtpZiAkZW50cnktPnBvc3RkYXRlfTxkaXYgY2xhc3M9Im1iLTEgdGV4dC1tdXRlZCI+eyRlbnRyeS0+cG9zdGRhdGV8Y21zX2RhdGVfZm9ybWF0fTwvZGl2PnsvaWZ9CiAgICAgICAgPHAgY2xhc3M9ImNhcmQtdGV4dCBtYi1hdXRvIj57JG1vZC0+TGFuZygnbGFiZWxfbWltZScpfSB7JGVudHJ5LT5taW1lfSwgeyRtb2QtPkxhbmcoJ2xhYmVsX3NpemUnKX0geyRlbnRyeS0+c2l6ZX08L3A+CiAgICAgICAgPG9sIGNsYXNzPSJsaXN0LXVuc3R5bGVkIG1iLTAiPgogICAgICAgICAge2lmICRlbnRyeS0+dXJsX29yaWdpbmFsfTxsaT48YSBocmVmPSJ7JGVudHJ5LT51cmxfb3JpZ2luYWx9Ij57JG1vZC0+TGFuZygnbGFiZWxfdXJsX29yaWdpbmFsJyl9PC9hPjwvbGk+ey9pZn0KICAgICAgICAgIHtpZiAkZW50cnktPnVybH08bGk+PGEgaHJlZj0ieyRlbnRyeS0+dXJsfSI+eyRtb2QtPkxhbmcoJ2xhYmVsX3VybCcpfTwvYT48L2xpPnsvaWZ9CiAgICAgICAgICB7aWYgJGVudHJ5LT51cmxfcHJlc2lnbmVkfTxsaT48YSBocmVmPSJ7JGVudHJ5LT51cmxfcHJlc2lnbmVkfSI+eyRtb2QtPkxhbmcoJ2xhYmVsX3VybF9wcmVzaWduZWQnKX08L2E+PC9saT57L2lmfQogICAgICAgICAgPC9vbD4KICAgICAgPC9kaXY+CiAgICAgIHtpZiAkZW50cnktPmlzaW1hZ2V9CiAgICAgIDxkaXYgY2xhc3M9ImNvbC1hdXRvIGQtbm9uZSBkLWxnLWJsb2NrIHAtMCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJiZC1wbGFjZWhvbGRlci1pbWciIHdpZHRoPSIyMDAiPgogICAgICAgICAgICA8aW1nIHNyYz0ieyRlbnRyeS0+dXJsX3ByZXNpZ25lZH0iIHdpZHRoPSIyMDAiLz4KICAgICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgey9pZn0KICAgIDwvZGl2PgogIDwvZGl2PgogIDwvZGl2PgogIHsvaWZ9ICA=]]></data>
	</file>
	<file>
		<filename>/templates/orig_summary_template.tpl</filename>
		<isdir>0</isdir>
		<data><![CDATA[PGRpdiBjbGFzcz0iZC1tZC1mbGV4IGZsZXgtbWQtcm93LXJldmVyc2UgYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIj4KICA8ZGl2IGNsYXNzPSJtYi0zIG1iLW1kLTAgZC1mbGV4IHRleHQtbm93cmFwIj4KICA8c21hbGwgY2xhc3M9ImQtaW5saW5lLWZsZXggcHgtMiBweS0xIGZ3LXNlbWlib2xkIHRleHQtc3VjY2Vzcy1lbXBoYXNpcyBiZy1zdWNjZXNzLXN1YnRsZSBib3JkZXIgYm9yZGVyLXN1Y2Nlc3Mtc3VidGxlIHJvdW5kZWQtMiBtZS0yIj5MYXN0IFJlZnJlc2hlZCB7JHN0YXJ0ZGF0ZXxsb2NhbGVkYXRlX2Zvcm1hdDonaiAlaCBZIEg6aTpzJ308L3NtYWxsPgogIDwvZGl2PgogIDxoMSBjbGFzcz0iYmQtdGl0bGUgbWItMCIgaWQ9ImNvbnRlbnQiPnskYnVja2V0fTwvaDE+CjwvZGl2PgogICAgICAgICAKICA8bmF2IGFyaWEtbGFiZWw9ImJyZWFkY3J1bWIiPgogIDxvbCBjbGFzcz0iYnJlYWRjcnVtYiI+CiAgPGxpIGNsYXNzPSJicmVhZGNydW1iLWl0ZW0gYWN0aXZlIiBhcmlhLWN1cnJlbnQ9InBhZ2UiPkhvbWU8L2xpPgogIHtmb3JlYWNoICRwYXRoX3BhcnRzIGFzICRwYXJ0fQogICAgPGxpIGNsYXNzPSJicmVhZGNydW1iLWl0ZW0iPgogICAge2lmICFlbXB0eSgkcGFydC0+dXJsKX0KICAgICAgPGEgaHJlZj0ieyRwYXJ0LT51cmx9Ij57JHBhcnQtPm5hbWV9PC9hPgogICAge2Vsc2V9CiAgICAgIHskcGFydC0+bmFtZX0KICAgIHsvaWZ9CiAgICA8L2xpPgogIHsvZm9yZWFjaH0KICA8L29sPgo8L25hdj4KCjxkaXYgY2xhc3M9ImNhcmQiPgo8dWwgY2xhc3M9Imxpc3QtZ3JvdXAgbGlzdC1ncm91cC1mbHVzaCI+CntpZiAkdXBfZGlydXJsfQogIDxsaSBjbGFzcz0ibGlzdC1ncm91cC1pdGVtIGJhY2t1cCI+eyR1cF9kaXJpY29ubGlua30geyR1cF9kaXJsaW5rfTwvbGk+CnsvaWZ9Cntmb3JlYWNoIGZyb209JGl0ZW1zIGl0ZW09ZW50cnl9CiAge2lmICRlbnRyeS0+ZGlyfQogICAgPGxpIGNsYXNzPSJsaXN0LWdyb3VwLWl0ZW0iPjxhIGhyZWY9InskZW50cnktPmxpbmt9IiBjbGFzcz0iY2FyZC1saW5rIj57JGVudHJ5LT5pY29ufSB7JGVudHJ5LT5uYW1lfTwvYT48L2xpPgogIHtlbHNlfQogICAgPGxpIGNsYXNzPSJsaXN0LWdyb3VwLWl0ZW0iPgogICAgPGEgaHJlZj0ieyRlbnRyeS0+ZGV0YWlsX2xpbmt9IiBjbGFzcz0iY2FyZC1saW5rIj57JGVudHJ5LT5pY29ufTwvYT4gCiAgICB7JGVudHJ5LT5wcmVzaWduZWRfbGlua30KICAgIDwvbGk+CiAgey9pZn0Key9mb3JlYWNofQo8L3VsPgo8L2Rpdj4KCntpZiAkcGFnZWNvdW50ID4gMX0KICA8cD4Ke2lmICRwYWdlbnVtYmVyID4gMX0KeyRmaXJzdHBhZ2V9Jm5ic3A7eyRwcmV2cGFnZX0mbmJzcDsKey9pZn0KeyRwYWdldGV4dH0mbmJzcDt7JHBhZ2VudW1iZXJ9Jm5ic3A7eyRvZnRleHR9Jm5ic3A7eyRwYWdlY291bnR9CntpZiAkcGFnZW51bWJlciA8ICRwYWdlY291bnR9CiZuYnNwO3skbmV4dHBhZ2V9Jm5ic3A7eyRsYXN0cGFnZX0Key9pZn0KPC9wPgp7L2lmfQo8IS0tIEVuZCBBV1NTMyBEaXNwbGF5IFRlbXBsYXRlIC0tPg==]]></data>
	</file>
	<file>
		<filename>/templates/orig_uploadform_template.tpl</filename>
		<isdir>0</isdir>
		<data><![CDATA[e2Zvcm1fc3RhcnQgZXh0cmFwYXJtcz0kZm9ybV9wYXJhbXN9Cgp7aWYgaXNzZXQoJGF3c3MzX21lc3NhZ2UpfXskYXdzczNfbWVzc2FnZX17L2lmfQoKPGRpdiBjbGFzcz0ibWItMyI+CiAgICA8bGFiZWwgZm9yPSJ7JGFjdGlvbmlkfWlucHV0X2Jyb3dzZSIgY2xhc3M9ImZvcm0tbGFiZWwiPnskbW9kLT5MYW5nKCdjaG9vc2VfZmlsZScpfTwvbGFiZWw+CiAgICA8aW5wdXQgdHlwZT0iZmlsZSIgY2xhc3M9ImZvcm0tY29udHJvbCIgaWQ9InskYWN0aW9uaWR9aW5wdXRfYnJvd3NlIiBuYW1lPSJ7JGFjdGlvbmlkfWlucHV0X2Jyb3dzZSI+CjwvZGl2PgoKe2lmIGlzc2V0KCRjYXB0Y2hhKX0KPGRpdiBjbGFzcz0ibWItMyI+CiAgICA8bGFiZWwgZm9yPSJ7JGFjdGlvbmlkfWlucHV0X2NhcHRjaGEiIGNsYXNzPSJmb3JtLWxhYmVsIj57JGNhcHRjaGFfdGl0bGV9PC9sYWJlbD4KICAgIHskY2FwdGNoYX0KICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0iZm9ybS1jb250cm9sIG10LTIiIGlkPSJ7JGFjdGlvbmlkfWlucHV0X2NhcHRjaGEiIG5hbWU9InskYWN0aW9uaWR9aW5wdXRfY2FwdGNoYSIgc2l6ZT0iMTAiIG1heGxlbmd0aD0iMTAiIHBsYWNlaG9sZGVyPSJ7JG1vZC0+TGFuZygnY2FwdGNoYV90aXRsZScpfSI+CjwvZGl2Pgp7L2lmfQoKPGJ1dHRvbiB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9aW5wdXRfc3VibWl0IiBjbGFzcz0iYnRuIGJ0bi1wcmltYXJ5Ij57JG1vZC0+TGFuZygnc3VibWl0Jyl9PC9idXR0b24+Cgp7Zm9ybV9lbmR9Cg==]]></data>
	</file>
	<file>
		<filename>/templates/uploadview.tpl</filename>
		<isdir>0</isdir>
		<data><![CDATA[PHNjcmlwdD57bGl0ZXJhbH0NCiQoZnVuY3Rpb24gKCkgew0KICAgICQoJyNmaWxldXBsb2FkJykuZmlsZXVwbG9hZCh7DQogICAgICAgIGRhdGFUeXBlOiAnanNvbicsDQogICAgICAgIHN0YXJ0OiBmdW5jdGlvbihlLGRhdGEpIHsNCiAgICAgICAgICAkKCcjcHJvZ3Jlc3NhcmVhJykuc2hvdygpOw0KICAgICAgICB9LA0KICAgICAgICBwcm9ncmVzc2FsbDogZnVuY3Rpb24oZSwgZGF0YSkgew0KICAgICAgICAgIC8vIG92ZXJhbGwgcHJvZ3Jlc3MgY2FsbGJhY2sNCiAgICAgICAgICB2YXIgcGVyYyA9IChkYXRhLmxvYWRlZCAvIGRhdGEudG90YWwgKiAxMDApLnRvRml4ZWQoMik7DQogICAgICAgICAgdmFyIHRvdGFsID0gbnVsbDsNCiAgICAgICAgICB0b3RhbCA9IChkYXRhLmxvYWRlZCAvIGRhdGEudG90YWwgKiAxMDApLnRvRml4ZWQoMCk7DQogICAgICAgICAgdmFyIHN0ciA9IHBlcmMgKyAnICUnOw0KICAgICAgICAgIC8vY29uc29sZS5sb2codG90YWwpOw0KICAgICAgICAgIGJhclZhbHVlKHRvdGFsKTsNCiAgICAgICAgICANCiAgICAgICAgICBmdW5jdGlvbiBiYXJWYWx1ZSh0b3RhbCkgew0KICAgICAgICAgICAgJCgiI3Byb2dyZXNzYXJlYSIpLnByb2dyZXNzYmFyKCB7DQogICAgICAgICAgICAgIHZhbHVlOiBwYXJzZUludCh0b3RhbCkNCiAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgJCgiLnVpLXByb2dyZXNzYmFyLXZhbHVlIikuaHRtbChzdHIpOw0KICAgICAgICAgIH0NCiAgICAgICAgfSwNCiAgICAgICAgZG9uZTogZnVuY3Rpb24gKGUsIGRhdGEpIHsNCiAgICAgICAgICAgIHZhciBmaWxlc2xvb3A9W107DQogICAgICAgICAgICBpZihkYXRhLnJlc3VsdC5maWxlcyAhPSB1bmRlZmluZWQpew0KICAgICAgICAgICAgICAkLmVhY2goZGF0YS5yZXN1bHQuZmlsZXMsIGZ1bmN0aW9uIChpbmRleCwgZmlsZSkgew0KICAgICAgICAgICAgICAgIGlmKGZpbGUuZXJyb3Ipew0KICAgICAgICAgICAgICAgICAgZmlsZXNsb29wLnB1c2goJzxwPicrZmlsZS5uYW1lICsgIiAtICIgKyBmaWxlLmVycm9yKyc8L3A+Jyk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKGZpbGVzbG9vcC5sZW5ndGgpIHsNCiAgICAgICAgICAgICAgdmFyICRyZXNwb25zZSA9ICQoJzxhc2lkZS8+JykuYWRkQ2xhc3MoJ21lc3NhZ2UnKTsNCg0KICAgICAgICAgICAgICAgICRyZXNwb25zZS5hZGRDbGFzcygncGFnZWVycm9yY29udGFpbmVyJykNCiAgICAgICAgICAgICAgICAgICAgLmFwcGVuZCgkKCc8c3Bhbj4nKS50ZXh0KCdDbG9zZScpLmFkZENsYXNzKCdjbG9zZS13YXJuaW5nJykpDQogICAgICAgICAgICAgICAgICAgIC5hcHBlbmQoZmlsZXNsb29wLmpvaW4oJycpKTsNCiAgICAgICAgICAgDQogICAgICAgICAgICAgICQoJ2JvZHknKS5hcHBlbmQoJHJlc3BvbnNlKS5zbGlkZURvd24oMTAwMCwgZnVuY3Rpb24oKSB7DQogICAgICAgICAgICAgICAgICB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpIHsNCiAgICAgICAgICAgICAgICAgICAgICAkcmVzcG9uc2Uuc2xpZGVVcCgpOw0KICAgICAgICAgICAgICAgICAgICAgICRyZXNwb25zZS5yZW1vdmUoKTsNCiAgICAgICAgICAgICAgICAgIH0sIDEwMDAwKTsNCiAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgfSwNCiAgICAgICAgc3RvcDogZnVuY3Rpb24oZSwgZGF0YSkgew0KICAgICAgICAgICQoJyNmaWxlc2FyZWEnKS5sb2FkKHJlZnJlc2hfdXJsKTsNCiAgICAgICAgICAkKCcjcHJvZ3Jlc3NhcmVhJykuZmFkZU91dCgpOw0KICAgICAgICB9DQogICAgfSk7DQp9KTsNCnsvbGl0ZXJhbH08L3NjcmlwdD4NCnskZm9ybXN0YXJ0fQ0KICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkaXNhYmxlX2J1ZmZlciIgdmFsdWU9IjEiIC8+DQogIHskaGlkZGVucGF0aH0NCiAgeyRoaWRkZW5fYnVja2V0X2lkfQ0KICA8ZmllbGRzZXQ+DQogICAgPGRpdiBjbGFzcz0idXBsb2FkLXdyYXBwZXIiPg0KICAgICAgPGRpdiBzdHlsZT0id2lkdGg6IDYwJTsgZmxvYXQ6IGxlZnQ7Ij4NCiAgICAgICAgeyo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJNQVhfRklMRV9TSVpFIiB2YWx1ZT0ieyRtYXhmaWxlc2l6ZX0iIC8+Kn17KiByZWNvbW1lbmRhdGlvbiBmb3IgYnJvd3NlciAqfQ0KICAgICAgICA8aW5wdXQgaWQ9ImZpbGV1cGxvYWQiIHR5cGU9ImZpbGUiIG5hbWU9InskYWN0aW9uaWR9ZmlsZXNbXSIgc2l6ZT0iNTAiIHRpdGxlPSJ7JEZpbGVNYW5hZ2VyLT5MYW5nKCd0aXRsZV9maWxlZmllbGQnKX0iIG11bHRpcGxlLz4NCiAgICAgICAgPGRpdiBpZD0icGFnZW92ZXJmbG93Ij4NCiAgICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPjwvcD4NCiAgICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4NCiAgICAgICAgICAgIDxpbnB1dCBpZD0iY2FuY2VsIiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJ7JG1vZC0+TGFuZygnY2FuY2VsJyl9IiBzdHlsZT0iZGlzcGxheTogbm9uZTsiLz4NCiAgICAgICAgICAgIHsqPGlucHV0IG5hbWU9InN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSIvPip9DQogICAgICAgICAgPC9wPg0KICAgICAgICA8L2Rpdj4NCiAgICAgIDwvZGl2Pg0KICAgICAgPGRpdiBpZD0ibGVmdGNvbCIgc3R5bGU9ImhlaWdodDogNGVtOyB3aWR0aDogNDAlOyBmbG9hdDogbGVmdDsgZGlzcGxheTogdGFibGU7Ij4NCiAgICAgICAge2lmICFpc3NldCgkaXNfaWUpfQ0KICAgICAgICAgIDxkaXYgaWQ9ImRyb3B6b25lIiBjbGFzcz0idmNlbnRlcmVkIGhjZW50ZXJlZCBmYWRlIiB0aXRsZT0ieyRtb2QtPkxhbmcoJ3RpdGxlX2Ryb3B6b25lJyl9Ij48cCBpZD0iZHJvcHpvbmV0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X2Ryb3BmaWxlcycpfTwvcD48L2Rpdj4NCiAgICAgICAgey9pZn0NCiAgICAgIDwvZGl2Pg0KICAgICAgPGRpdiBjbGFzcz0iY2xlYXJiIj48L2Rpdj4NCiAgICAgIDxkaXYgaWQ9InByb2dyZXNzYXJlYSI+PC9kaXY+DQogICAgPC9kaXY+DQogIDwvZmllbGRzZXQ+DQp7JGZvcm1lbmR9DQoNCg==]]></data>
	</file>
</module>
