<?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>ScriptDeploy</name>
	<version>0.7.6</version>
  <mincmsversion>1.6.7</mincmsversion>
	<help><![CDATA[PGxpbmsgbWVkaWE9InNjcmVlbiIgaHJlZj0iLi4vbW9kdWxlcy9TY3JpcHREZXBsb3kvQ1NTL01hc3RlckNTUy5jc3MiIHR5cGU9InRleHQvY3NzIiByZWw9InN0eWxlc2hlZXQiLz48ZGl2IGNsYXNzPSJTaW1XcmFwIj48YiBjbGFzcz0icmJvdHRvbSI+PGIgY2xhc3M9InIxIj48L2I+IDxiIGNsYXNzPSJyMiI+PC9iPjxiIGNsYXNzPSJyMyI+PC9iPiA8YiBjbGFzcz0icjQiPjwvYj48L2I+DQoNCjxkaXYgY2xhc3M9IlNpbWNvbiI+IDxoMyBjbGFzcz0iQmFja0xpbmsiPjxhIG9uY2xpY2s9ImphdmFzY3JpcHQ6d2luZG93Lmhpc3RvcnkuZ28oLTEpIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+Jmx0OyZsdDsgQmFjazwvYT48L2gzPg0KPGgxPldoYXQgRG9lcyBUaGlzIERvPy0tLSB0aGlzIG5lZWRzIHVwZGF0aW5nPC9oMT4NCjxoMj5Xcml0ZSBtYW5hZ2UgYW5kIGRlcGxveSBKUyBhbmQgQ1NTPC9oMj4NCjxhIGlkPSJTY3JpcHREZXBsb3kiPjwvYT4NCjxwPlNjcmlwdERlcGxveSBtb2R1bGUgdGhhdCBjYW4gY29tYmluZSBtdWx0aXBsZSBDU1Mgb3IgSmF2YXNjcmlwdCBmaWxlcywgY29tcHJlc3MgdGhlaXIgY29udGVudHMgKGkuZS4gcmVtb3ZhbCBvZiB1bm5lY2Vzc2FyeSB3aGl0ZXNwYWNlL2NvbW1lbnRzKSwgYW5kIHNlcnZlIHRoZSByZXN1bHRzIHdpdGggSFRUUCBlbmNvZGluZyAoZ3ppcC9kZWZsYXRlKSBhbmQgaGVhZGVycyB0aGF0IGFsbG93IG9wdGltYWwgY2xpZW50LXNpZGUgY2FjaGluZy4gVGhpcyBoZWxwcyB5b3UgZm9sbG93IHNldmVyYWwgb2YgWWFob28hJ3MgPGEgaHJlZj0iaHR0cDovL2RldmVsb3Blci55YWhvby5jb20vcGVyZm9ybWFuY2UvaW5kZXguaHRtbCNydWxlcyIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPlJ1bGVzIGZvciBIaWdoIFBlcmZvcm1hbmNlIFdlYiBTaXRlczwvYT4uIChTZWUgJnF1b3Q7UHJvYmxlbSBEb21haW4mcXVvdDsgYmVsb3cgZm9yIG1vcmUgaW5mby4pIDwvcD4NCjxoMz5UaGUgU2hvcnQgb2YgaXQ8L2gzPg0KPHA+V2lydGUgeW91ciBzY3JpcHRzLCBzZXQgdGhlIG9yZGVyIGFuZCBTY3JpcHREZXBsb3kgd2lsbCBkbyB0aGUgcmVzdCE8L3A+DQo8dGFibGU+DQogIDx0Ym9keT4NCiAgICA8dHI+DQogICAgICA8dGQgc3R5bGU9IkJPUkRFUi1SSUdIVDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctUklHSFQ6IDVweDsgQk9SREVSLVRPUDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctTEVGVDogNXB4OyBQQURESU5HLUJPVFRPTTogNXB4OyBCT1JERVItTEVGVDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctVE9QOiA1cHg7IEJPUkRFUi1CT1RUT006ICNhYWEgMXB4IHNvbGlkIj48c3Ryb25nPkJlZm9yZTwvc3Ryb25nPjwvdGQ+DQogICAgICA8dGQgc3R5bGU9IkJPUkRFUi1SSUdIVDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctUklHSFQ6IDVweDsgQk9SREVSLVRPUDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctTEVGVDogNXB4OyBQQURESU5HLUJPVFRPTTogNXB4OyBCT1JERVItTEVGVDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctVE9QOiA1cHg7IEJPUkRFUi1CT1RUT006ICNhYWEgMXB4IHNvbGlkIj48aW1nIHNyYz0iaHR0cDovL21yY2xheS5vcmcvd3AtY29udGVudC91cGxvYWRzLzIwMDgvMDkvZmlkZGxlcl9iZWZvcmUucG5nIiBhbHQ9ImFmdGVyIiAvPjwvdGQ+DQogICAgPC90cj4NCiAgICA8dHI+DQogICAgICA8dGQgc3R5bGU9IkJPUkRFUi1SSUdIVDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctUklHSFQ6IDVweDsgQk9SREVSLVRPUDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctTEVGVDogNXB4OyBQQURESU5HLUJPVFRPTTogNXB4OyBCT1JERVItTEVGVDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctVE9QOiA1cHg7IEJPUkRFUi1CT1RUT006ICNhYWEgMXB4IHNvbGlkIj48c3Ryb25nPkFmdGVyPC9zdHJvbmc+PC90ZD4NCiAgICAgIDx0ZCBzdHlsZT0iQk9SREVSLVJJR0hUOiAjYWFhIDFweCBzb2xpZDsgUEFERElORy1SSUdIVDogNXB4OyBCT1JERVItVE9QOiAjYWFhIDFweCBzb2xpZDsgUEFERElORy1MRUZUOiA1cHg7IFBBRERJTkctQk9UVE9NOiA1cHg7IEJPUkRFUi1MRUZUOiAjYWFhIDFweCBzb2xpZDsgUEFERElORy1UT1A6IDVweDsgQk9SREVSLUJPVFRPTTogI2FhYSAxcHggc29saWQiPjxpbWcgc3JjPSJodHRwOi8vbXJjbGF5Lm9yZy93cC1jb250ZW50L3VwbG9hZHMvMjAwOC8wOS9maWRkbGVyX2FmdGVyLnBuZyIgYWx0PSJiZWZvcmUiIC8+PC90ZD4NCiAgICA8L3RyPg0KICA8L3Rib2R5Pg0KPC90YWJsZT4NCg0KDQoNCjxoMj48YSBpZD0iRmVhdHVyZXMiPjwvYT5GZWF0dXJlczwvaDI+DQo8dWw+DQogIDxsaT5Db21iaW5lcyBhbmQgbWluaWZpZXMgbXVsdGlwbGUgQ1NTIG9yIEphdmFTY3JpcHQgZmlsZXMgaW50byBhIHNpbmdsZSAgIGRvd25sb2FkIDwvbGk+DQogIDxsaT5Vc2VzIGFuIDxhIGhyZWY9Imh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC9taW5pZnkvc291cmNlL2Jyb3dzZS90cnVuay9taW4vbGliL0pTTWluLnBocCIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPmVuaGFuY2VkIHBvcnQ8L2E+IG9mIERvdWdsYXMgQ3JvY2tmb3JkJ3MgPGEgaHJlZj0iaHR0cDovL3d3dy5jcm9ja2ZvcmQuY29tL2phdmFzY3JpcHQvanNtaW4uaHRtbCIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPkpTTWluICAgbGlicmFyeTwvYT4gYW5kIGN1c3RvbSBjbGFzc2VzIHRvIG1pbmlmeSA8YSBocmVmPSJodHRwOi8vY29kZS5nb29nbGUuY29tL3AvbWluaWZ5L3NvdXJjZS9icm93c2UvdHJ1bmsvbWluL2xpYi9NaW5pZnkvQ1NTLnBocCIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPkNTUzwvYT4gYW5kIDxhIGhyZWY9Imh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC9taW5pZnkvc291cmNlL2Jyb3dzZS90cnVuay9taW4vbGliL01pbmlmeS9IVE1MLnBocCIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPkhUTUw8L2E+PC9saT4NCiAgPGxpPkNhY2hlcyBzZXJ2ZXItc2lkZSB0byBhdm9pZCBkb2luZyB1bm5lY2Vzc2FyeSB3b3JrIDwvbGk+DQogIDxsaT5SZXNwb25kcyB3aXRoIGFuIEhUVFAgMzA0IChOb3QgTW9kaWZpZWQpIHJlc3BvbnNlIHdoZW4gdGhlIGJyb3dzZXIgaGFzIGFuICAgdXAtdG8tZGF0ZSBjYWNoZSBjb3B5ICoqIDwvbGk+DQogIDxsaT5Nb3N0IG1vZHVsZXMgYXJlIGxhenktbG9hZGVkIGFzIG5lZWRlZCAoMzA0IHJlc3BvbnNlcyB1c2UgbWluaW1hbCBjb2RlKSAgKiogPC9saT4NCiAgPGxpPkF1dG9tYXRpY2FsbHkgcmV3cml0ZXMgcmVsYXRpdmUgVVJJcyBpbiBjb21iaW5lZCBDU1MgZmlsZXMgdG8gcG9pbnQgdG8gdmFsaWQgbG9jYXRpb25zIDwvbGk+DQogIDxsaT5XaXRoIGNhY2hpbmcgZW5hYmxlZCwgU2NyaXB0RGVwbG95IGlzIGNhcGFibGUgb2YgaGFuZGxpbmcgaHVuZHJlZHMgb2YgcmVxdWVzdHMgcGVyIHNlY29uZCBvbiBhIG1vZGVyYXRlbHkgcG93ZXJmdWwgc2VydmVyLiA8L2xpPg0KICA8bGk+Q29udGVudC1FbmNvZGluZzogZ3ppcCwgYmFzZWQgb24gcmVxdWVzdCBoZWFkZXJzLiBDYWNoaW5nIGFsbG93cyBpdCBzbyBzZXJ2ZSBnemlwcGVkIGZpbGVzIGZhc3RlciB0aGFuIEFwYWNoZSdzIG1vZF9kZWZsYXRlIG9wdGlvbiEgPC9saT4NCjwvdWw+DQo8aDM+PGVtPjxzdHJvbmc+KiogTm90ZTo8L3N0cm9uZz4gSXQgaXMgYmVzdCB0byB1c2UgYSAuaHRhY2Nlc3Mgc2NyaXB0IHRvIHNldCB0aGUgYWdlIHRpbWVzLiBTY3JpcHREZXBsb3kgaXMgZGVzaWduZWQgZm9yIGVmZmljaWVuY3ksIGJ1dCBmb3IgdmVyeSBoaWdoIHRyYWZmaWMgc2l0ZXMsIFNjcmlwdERlcGxveSBtYXkgc2VydmUgZmlsZXMgc2xvd2VyIHRoYW4geW91ciBIVFRQZCBkdWUgdG8gdGhlIENHSSBvdmVyaGVhZCBvZiBQSFAuICBUbyBvdmVyIGNvbWUgdGhpcyBKdXN0IGNoZWNrICJ1c2UgLmh0YWNjZXNzIGluIG9wdGlvbnMiPC9lbT48L2gzPg0KPGgyPjxhIG5hbWU9IlJlcXVpcmVtZW50cyI+PC9hPlJlcXVpcmVtZW50czwvaDI+DQo8dWw+DQogIDxsaT5UaGUgY29tbW9ubHkgaW5zdGFsbGVkIDxhIGhyZWY9Imh0dHA6Ly91czMucGhwLm5ldC9tYW51YWwvZW4vemxpYi5pbnN0YWxsYXRpb24ucGhwIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+emxpYiAgIGV4dGVuc2lvbjwvYT4gaXMgcmVjb21tZW5kZWQgZm9yIEhUVFAgZW5jb2RpbmcgZnVuY3Rpb25hbGl0eS4gPC9saT4NCjwvdWw+DQo8YnIvPjxici8+DQo8aDE+SG93IERvIEkgVXNlIEl0PC9oMT4NCg0KDQo8aDM+R2V0IGEgc2luZ2xlIHNjcmlwdDwvaDM+DQp1c2UgPHNwYW4gY2xhc3M9ImNvZGVISUdITElHSFQiPntjbXNfbW9kdWxlIG1vZHVsZT1TY3JpcHREZXBsb3kgc2NyaXB0SUQ9IjEifSA8L3NwYW4+IDxici8+PGJyLz4NCjxoMz5HZXQgYSBzY3JpcHQgZ3JvdXA8L2gzPg0KdXNlIDxzcGFuIGNsYXNzPSJjb2RlSElHSExJR0hUIj57Y21zX21vZHVsZSBtb2R1bGU9U2NyaXB0RGVwbG95IGdyb3VwSUQ9IjEifSA8L3NwYW4+IDxici8+PGJyLz4NCjxoMj5BbGwgb3V0cHV0IGlzIGluIHRoZSBYSFRNTCBmb3JtYXQsIHlvdSBzaG91bGQgd29yayBpbiB0aGF0LjwvaDI+DQoNCjxici8+PGJyLz4NCjxoND5QYXJhbXM8L2g0Pg0KPHVsPg0KPGxpPjxzdHJvbmc+c2NyaXB0SUQ9IiIgPC9zdHJvbmc+PGVtPihSZXF1aXJlZC9vcHRpb25hbCk8L2VtPiA8YnIvPnwgc2V0IHRoZSBJRCBSZXF1aXJlZCBvbmx5IGlmIGdyb3VwSUQgbm90IGNhbGxlZDxici8+PC9saT4NCjxsaT48c3Ryb25nPmdyb3VwSUQ9IiIgPC9zdHJvbmc+PGVtPihSZXF1aXJlZC9vcHRpb25hbCk8L2VtPiA8YnIvPnwgc2V0IHRoZSBJRCBSZXF1aXJlZCBvbmx5IGlmIHNjcmlwdElEIG5vdCBjYWxsZWQ8YnIvPjwvbGk+DQo8bGk+PHN0cm9uZz5TdHlwZT0iIiA8L3N0cm9uZz48ZW0+KFJlcXVpcmVkLykgSlMvQ1NTPC9lbT4gPGJyLz58IHNldCB0aGUgSUQgUmVxdWlyZWQgb25seSBpZiBzY3JpcHRJRCBub3QgY2FsbGVkPGJyLz48L2xpPg0KDQo8bGk+PHN0cm9uZz5zbWFydHk9IiIgPC9zdHJvbmc+PGVtPihvcHRpb25hbCkgdHJ1ZS9mYWxzZSA8c3Ryb25nPkRlZmF1bHQ6bnVsbDwvc3Ryb25nPjwvZW0+IDxici8+fCBUaGlzIGxldHMgeW91IG92ZXIgcmlkZSB0aGUgZ2xvYmxlczxici8+PC9saT4NCjxsaT48c3Ryb25nPm1pbmlmeT0iIiA8L3N0cm9uZz48ZW0+KG9wdGlvbmFsKSB0cnVlL2ZhbHNlIDxzdHJvbmc+RGVmYXVsdDp0cnVlPC9zdHJvbmc+PC9lbT4gPGJyLz58ICBUaGlzIGxldHMgeW91IG92ZXIgcmlkZSB0aGUgZ2xvYmxlczxici8+PC9saT4NCg0KDQoNCg0KDQoNCjxsaT48c3Ryb25nPm1lZGlhX3R5cGU9IiIgPC9zdHJvbmc+PGVtPihvcHRpb25hbCk8L2VtPiA8YnIvPnwgc2V0IE1lZGlhIHR5cGUgZm9yIENTUyBmaWxlcyBoZXJlLi4uIG92ZXJyaWRlcyBkYiBzZXRpbmdzLjxici8+PC9saT4NCjxsaT48c3Ryb25nPmltcG9ydD0iIiA8L3N0cm9uZz48ZW0+KG9wdGlvbmFsKSB0cnVlL2ZhbHNlPC9lbT4gPGJyLz58IHNldCB0aGUgaW5jbHVzaW9uIHN0eWxlIGZvciBDU1MgZmlsZXMgaGVyZS4uLiBvdmVycmlkZXMgZGIgc2V0aW5ncy4gRXg6IHRydWUgIGdpdmVzIDxzdHlsZSB0eXBlPVwidGV4dC9jc3NcIj5AaW1wb3J0IHVybCgidXJsL2Nzc2ZpbGUuY3NzIikgc2NyZWVuOzwvc3R5bGU+PGJyLz48L2xpPg0KDQo8bGk+PHN0cm9uZz5jYWNoZV9idXN0ZXI8L3N0cm9uZz4gPGVtPihvcHRpb25hbCkgPHN0cm9uZz5EZWZhdWx0OmZhbHNlPC9zdHJvbmc+PC9lbT48YnIvPnwgVGhpcyBpcyB0byBpbnN0YW50bHkgdW5jYWNoZSBhbiBzY3JpcHQgb24gdGhlIGNsaWVudCBzaWRlIGFmdGVyIGEgbmV3IHVwbG9hZGVkIHNjcmlwdCBpcyBjcmVhdGVkLi4uIGllOiAxMi5qcz8xMjU1MjI1MDA3ICA8Zm9udCBjb2xvcj0icmVkIj48c3Ryb25nPiggdHJ1ZS9mYWxzZSApPC9zdHJvbmc+PC9mb250PjwvbGk+DQo8bGk+PHN0cm9uZz5hc3NpZ249IiIgPC9zdHJvbmc+PGVtPihvcHRpb25hbCk8L2VtPiA8YnIvPnwgQXNzaWduIHRoZSBvdXRwdXQgKHJldHVybiB0aGUgc21hcnR5IGFzc2lnbm1lbnQpICBVc2UgaW4gY29uanVuY3Rpb24gd2l0aCBvdXQgd2l0aG91dCBVUkw8L2xpPg0KPGxpPjxzdHJvbmc+ZnNpemU9IiIgPC9zdHJvbmc+PGVtPihvcHRpb25hbCk8L2VtPiA8YnIvPnwgZ2V0IHRoZSBzaXplPC9saT4NCjxsaT48c3Ryb25nPnJvb3Q9IiIgPC9zdHJvbmc+PGVtPihvcHRpb25hbCk8L2VtPiA8YnIvPnwgU2NyaXB0RGVwbG95IGNyZWF0ZXMgYSB0ZW1wIGRpcmVjdG9yIGluIHRoZSB1cGxvYWQgZm9sZGVyLiAgSWYgeW91IG1vdmUgdGhlIHBhdGggdG8gdGhlIHVwbGFvZCB0byBhIHN1YmRvbWFpbiB5b3UgbWF5IGd1aWRlIHRoZSBvdXRwdXQgd2l0aCB0aGlzLjwvbGk+DQogICAgICAgIDx1bCBzdHlsZT0ibGlzdC1zdHlsZS1wb3NpdGlvbjppbnNpZGU7Ij48bGk+PHN0cm9uZz5FeGFwbWxlOjwvc3Ryb25nPiB5b3UgY2hhbmdlZCA8Q09ERT4kY29uZmlnWyd1cGxvYWRzX3BhdGgnXSA9ICcvdmFyL3d3dy92aG9zdHMvZG9tYWluLm9yZy9odHRwZG9jcy91cGxvYWRzJzs8L0NPREU+IDwvbGk+DQogICAgICAgICAgICA8bGk+PHN0cm9uZz50bzwvc3Ryb25nPiA8Q09ERT4kY29uZmlnWyd1cGxvYWRzX3BhdGgnXSA9IFwvdmFyL3d3dy92aG9zdHMvZG9tYWluLm9yZy9zdWJkb21haW5zL21lZGlhL2h0dHBkb2NzL3VwbG9hZHMnOzwvQ09ERT48L2xpPg0KICAgICAgICAgICAgPGxpPm5vdyB0aGUgdXBsb2FkcyB1cmwgd291bGQgbm90IHdvcmsgYXMgaXQgd291bGQgYmUgPHU+aHR0cDovL3d3dy5kb21haW4ub3JnL3VwbG9hZHM8L3U+PC9saT4NCiAgICAgICAgICAgIDxsaT48c3Ryb25nPlNvPC9zdHJvbmc+IGl0IGNhbiBiZSBjaGFuZ2VkIGhlcmUgdG8gPHU+aHR0cDovL21lZGlhLmRvbWFpbi5vcmcvdXBsb2FkczwvdT4gIDxmb250IGNvbG9yPSJyZWQiPjxzdHJvbmc+KE5PVEU6IHdhdGNoIHlvdXIgLyApPC9zdHJvbmc+PC9mb250PjwvbGk+DQogICAgICAgIDwvdWw+DQo8bGk+PHN0cm9uZz51cmw9IiIgPC9zdHJvbmc+PGVtPihvcHRpb25hbCk8L2VtPiA8YnIvPnxvdXRwdXRzIHRoZSB1cmwuPC9saT4NCg0KDQoNCg0KCQkNCg0KDQoNCg0KDQoNCg0KDQo8IS0tPGxpPjxzdHJvbmc+U2FuZEJveD10cnVlIDwvc3Ryb25nPjxlbT4ob3B0aW9uYWwpPC9lbT4gPGJyLz58IGZhbHNlPGJyLz48L2xpPg0KDQo8bGk+PHN0cm9uZz5SVU5hY3Rpb249IiIgPC9zdHJvbmc+PGVtPihvcHRpb25hbCk8L2VtPiA8YnIvPnwgVURUPGJyLz58IFVSTCA8ZW0+KC4uL3BsdWdpbnMvZnVuY3Rpb24uZmlsZW5hbWUucGhwKTwvZW0+PGJyLz58ICpNb3JlIGNvbWluZyBTb29uKjxici8+PC9saT4NCjxsaT48c3Ryb25nPkxhbmc9IiIgPC9zdHJvbmc+PGVtPihvcHRpb25hbCk8L2VtPiA8YnIvPnwgVXNlIENvdW50cnkgQ29kZXMgVG8gZHluYW1pY2x5IHNldCB0aGUgbGFuZ3VhZ2Ugb2YgdGhlIFBheVBhbCBwYWdlPGJyLz48L2xpPi0tPg0KDQo8L3VsPg0KPGJyLz4NCg0KPGJyLz48YnIvPg0KPGgyPjxhIGlkPSJQcm9ibGVtX0RvbWFpbiI+PC9hPlByb2JsZW0gRG9tYWluPC9oMj4NCjxwPlBhZ2VzIHRoYXQgcmVmZXIgdG8gbXVsdGlwbGUgQ1NTIG9yIEphdmFTY3JpcHQgZmlsZXMgb2Z0ZW4gc3VmZmVyIGZyb20gc2xvd2VyICAgcGFnZSBsb2FkcywgZHVlIHRvIHRoZSBicm93c2VyIHJlcXVlc3RpbmcgZWFjaCBmaWxlIGluZGl2aWR1YWxseS4gTWFueSBicm93c2VycyAgIGFsc28gYXJlIGxpbWl0ZWQgdG8gYSBmZXcgc2ltdWx0YW5lb3VzIHJlcXVlc3RzIHBlciBkb21haW4uIFRoZSB3YWl0IGZvciBhICAgc2VyaWVzIG9mIHJlcXVlc3RzIGFuZCB0aGUgdHJhbnNmZXIgb2YgdW5vcHRpbWl6ZWQgZmlsZXMgY2FuIGRyYW1hdGljYWxseSByZWR1Y2UgICB0aGUgY2xpZW50LXNpZGUgcGVyZm9ybWFuY2Ugb2YgeW91ciBzaXRlLiA8L3A+DQo8cD5IZXJlIGFyZSBhIGhhbmRmdWwgb2YgWWFob28hJ3MgYmVzdCBwcmFjdGljZXMgdGhhdCBhcmUgYWRkcmVzc2VkIGJ5IHRoZSB1c2Ugb2YgU2NyaXB0RGVwbG95LiA8L3A+DQo8dWw+DQogIDxsaT48YSBocmVmPSJodHRwOi8vZGV2ZWxvcGVyLnlhaG9vLmNvbS9wZXJmb3JtYW5jZS9ydWxlcy5odG1sI251bV9odHRwIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+TWFrZSBGZXdlciBIVFRQIFJlcXVlc3RzPC9hPjwvbGk+DQogIDxsaT48YSBocmVmPSJodHRwOi8vZGV2ZWxvcGVyLnlhaG9vLmNvbS9wZXJmb3JtYW5jZS9ydWxlcy5odG1sI2V4cGlyZXMiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5BZGQgYW4gRXhwaXJlcyBvciBhIENhY2hlLUNvbnRyb2wgSGVhZGVyPC9hPjwvbGk+DQogIDxsaT48YSBocmVmPSJodHRwOi8vZGV2ZWxvcGVyLnlhaG9vLmNvbS9wZXJmb3JtYW5jZS9ydWxlcy5odG1sI2d6aXAiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5HemlwIENvbXBvbmVudHM8L2E+PC9saT4NCiAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9kZXZlbG9wZXIueWFob28uY29tL3BlcmZvcm1hbmNlL3J1bGVzLmh0bWwjbWluaWZ5IiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+TWluaWZ5IEphdmFTY3JpcHQgYW5kIENTUzwvYT48L2xpPg0KICA8bGk+PGEgaHJlZj0iaHR0cDovL2RldmVsb3Blci55YWhvby5jb20vcGVyZm9ybWFuY2UvcnVsZXMuaHRtbCNldGFncyIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPkNvbmZpZ3VyZSBFVGFnczwvYT48L2xpPg0KICA8bGk+PGEgaHJlZj0iaHR0cDovL2RldmVsb3Blci55YWhvby5jb20vcGVyZm9ybWFuY2UvcnVsZXMuaHRtbCN1bmRlcjI1IiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+S2VlcCBDb21wb25lbnRzIHVuZGVyIDI1SzwvYT48L2xpPg0KPC91bD4NCjxoMz48YSBuYW1lPSJBY2tub3dsZWRnbWVudHMiPjwvYT5BY2tub3dsZWRnbWVudHM8L2gzPg0KPHA+TWluaWZ5IHdhcyBpbnNwaXJlZCBieSA8YSBocmVmPSJodHRwOi8vY29kZS5nb29nbGUuY29tL3AvanNjc3Njb21wLyIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPmpzY3NzY29tcDwvYT4gYnkgTWF4aW0gTWFydHlueXVrIGFuZCBieSB0aGUgYXJ0aWNsZSAnPGEgaHJlZj0iaHR0cDovL3d3dy5odW5sb2NrLmNvbS9ibG9ncy9TdXBlcmNoYXJnZWRfSmF2YXNjcmlwdCIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPlN1cGVyY2hhcmdlZCBKYXZhU2NyaXB0PC9hPicgYnkgUGF0cmljayBIdW5sb2NrLiA8L3A+DQo8cD5UaGUgPGEgaHJlZj0iaHR0cDovL3d3dy5jcm9ja2ZvcmQuY29tL2phdmFzY3JpcHQvanNtaW4uaHRtbCIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPkpTTWluIGxpYnJhcnk8L2E+IHVzZWQgZm9yIEphdmFTY3JpcHQgbWluaWZpY2F0aW9uIHdhcyBvcmlnaW5hbGx5ICAgd3JpdHRlbiBieSBEb3VnbGFzIENyb2NrZm9yZCBhbmQgd2FzIDxhIGhyZWY9Imh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC9qc21pbi1waHAiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5wb3J0ZWQgdG8gUEhQPC9hPiBieSBSeWFuICAgR3JvdmUgc3BlY2lmaWNhbGx5IGZvciB1c2UgaW4gTWluaWZ5LiA8L3A+DQoNCg0KPGgzPlN1cHBvcnQ8L2gzPg0KPGg0PlNjcmVlbmNhc3RzIGZvciBleHRyYSBoZWxwIHdpbGwgZmFsbG93LS0tIG9uIHRoZSBUT0RPPC9oND4NCjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4NCjx1bD4NCjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlIG9yIHRvIGZpbGUgYSBidWcgcmVwb3J0IHZpc2l0IDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvc2NyaXB0ZGVwbG95Ij50aGUgQ01TIEZvcmdlPC9hPi48L2xpPg0KPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnIj5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi48L2xpPg0KPC91bD4NCg0KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+DQo8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMDksIGplcmVteUJhc3MgJmx0OzxhIGhyZWY9Imh0dHA6Ly9jb3JiZW5zcHJvZHVjdHMuY29tIj5jb3JiZW5zcHJvZHVjdHMuY29tPC9hPiZndDsgQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPg0KPHN0cm9uZz5TdXBwb3J0IG1vcmUgbW9kcyBsaWtlIHRoaXM6PC9zdHJvbmc+PGZvcm0gYWN0aW9uPSJodHRwczovL3d3dy5wYXlwYWwuY29tL2NnaS1iaW4vd2Vic2NyIiBtZXRob2Q9InBvc3QiPg0KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY21kIiB2YWx1ZT0iX3MteGNsaWNrIj4NCjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Imhvc3RlZF9idXR0b25faWQiIHZhbHVlPSI4ODE3Njc1Ij4NCjxpbnB1dCB0eXBlPSJpbWFnZSIgc3JjPSJodHRwczovL3d3dy5wYXlwYWwuY29tL2VuX1VTL2kvYnRuL2J0bl9kb25hdGVfTEcuZ2lmIiBib3JkZXI9IjAiIG5hbWU9InN1Ym1pdCIgYWx0PSJQYXlQYWwgLSBUaGUgc2FmZXIsIGVhc2llciB3YXkgdG8gcGF5IG9ubGluZSEiPg0KPGltZyBhbHQ9IiIgYm9yZGVyPSIwIiBzcmM9Imh0dHBzOi8vd3d3LnBheXBhbC5jb20vZW5fVVMvaS9zY3IvcGl4ZWwuZ2lmIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj4NCjwvZm9ybT48YnIvPg0KPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCI+R05VIFB1YmxpYyBMaWNlbnNlPC9hPi4gWW91IG11c3QgYWdyZWUgdG8gdGhpcyBsaWNlbnNlIGJlZm9yZSB1c2luZyB0aGUgbW9kdWxlLjwvcD4NCjwvZGl2ID48YiBjbGFzcz0icmJvdHRvbSI+PGIgY2xhc3M9InI0Ij48L2I+PGIgY2xhc3M9InIzIj48L2I+IDxiIGNsYXNzPSJyMiI+PC9iPiA8YiBjbGFzcz0icjEiPjwvYj48L2I+DQoNCjwvZGl2Pg0KPGgzPlBhcmFtZXRlcnM8L2gzPjx1bD48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBsYW5nPSJlbl9VUyIgLSBQYXJhbWV0ZXIgaXMgdXNlZCB0byBzcGVjaWZ5IHdoYXQgbGFuZ3VhZ2UgdG8gdXNlIGZvciBkaXNwbGF5IG9uIHRoZSBmcm9udGVuZC4gTm90IGFsbCBtb2R1bGVzIHN1cHBvcnQgb3IgbmVlZCB0aGlzLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gU3R5cGU9IiIgLSBDU1M8L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IHNtYXJ0eT0iIiAtIHR1cm4gc21hcnR5IG9uPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBtaW5pZnk9IiIgLSB0cnVuIG1pbmlmeSBvbjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gbWVkaWFfdHlwZT0iIiAtIHNldCBhIG1lZGlhIHR5cGUgaWU6IG1vcmUgdGhlbiBvbmU8L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGNhY2hlX2J1c3Rlcj0iIiAtIHR1cm4gb2ZmPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBmc2l6ZT0iIiAtIGdldCBzaXplPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiByb290PSIiIC0gc2V0IHRoZSByb290IHVybDwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZHluYW1pYz0iIiAtIGZvcmNlIGl0IHRvIGFsd2F5cyByZWJ1aWxkPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBpbXBvcnQ9IiIgLSBzZXQsIHdoZW4gY3NzLCB0byB1c2UgaW1wb3J0IGZvciBpbmxpbmU8L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGR1bXA9IiIgLSBkdW1wIG91dCB0aGUgY29udGFpbnRzPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiB1cmw9IiIgLSBnZXQgb25seSB0aGUgdXJsIHRvIHRoZSBmaWxlPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBncm91cElEPSIiIC0gd2hhdCBpcyB0aGUgZ3JvdXAgaWQ8L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IHNjcmlwdElEPSIiIC0gd2hhdCBpcyB0aGUgc2NyaXB0IGlkPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBhY3Rpb249ImRlZmF1bHQiIC0gLS1BZGQgTWUgLSBtb2R1bGU6U2NyaXB0RGVwbG95IHN0cmluZzpoZWxwX2FjdGlvbi0tPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBkdXJhdGlvbj0iIiAtIC0tQWRkIE1lIC0gbW9kdWxlOlNjcmlwdERlcGxveSBzdHJpbmc6aGVscF9kdXJhdGlvbi0tPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBjb29raWVuYW1lPSJjbXNfc3R5bGVuYW1lIiAtIC0tQWRkIE1lIC0gbW9kdWxlOlNjcmlwdERlcGxveSBzdHJpbmc6aGVscF9jb29raWVuYW1lLS08L2xpPjwvdWw+]]></help>
	<about><![CDATA[PGJyIC8+QXV0aG9yOiBqZXJlbXlCYXNzICZsdDtqZXJlbXliYXNzQGNhYmxlb25lLm5ldCZndDs8YnIgLz48YnIgLz5WZXJzaW9uOiAwLjcuNjxiciAvPjxiciAvPkNoYW5nZSBIaXN0b3J5OjxiciAvPjx1bD4NCgk8bGk+VmVyc2lvbiAwLjEgQmV0YSByZWxlYXNlLjwvbGk+DQoJPGxpPlZlcnNpb24gMC4yIGxvdHMgb2YgY2hhbmdlcyB0byBmaXggYnVnLi4uPC9saT4NCgk8bGk+VmVyc2lvbiAwLjMgc2V0IHRoZSBzbWFydHkgdG8gdXNlIHt7IH19PC9saT4NCgk8bGk+VmVyc2lvbiAwLjQgZml4ZWQgYnVnLi4gaW1wcm92ZWQgdGhlIG1pbmlhZmNhdGlvbiB0byBhIHNhdmVzIG9mIHVwIHRvIDYwJTwvbGk+DQoJPGxpPlZlcnNpb24gMC43LjEgbWFueSBjaGFuZ2VzLi4uIDxzdHJvbmc+QlJFQUtTIFVQR1JBREU8L3N0cm9uZz4gQ29weSBzY3JpcHRzLCBpbnN0YWxsIGFuZCB0aGUgdXBsb2FkIGFuZCByZWluc3RhbGwuLi4gU29ycnkgYnV0IGl0IHdhcyBuZWVkZWQgZm9yIFZFUlNJT04gSElTVE9SWSBmaXhlZCBidWdzLi4gbWFueSBpbXByb3ZlbWVudHM8L2xpPg0KCTxsaT5WZXJzaW9uIDAuNy42IE1hbnkgZml4ZXMsIEFkZCB0aGUgZHVtcCBwYXJhbSwgYWRkIHRoZSBhY3Rpb24gZm9yIHRoZSBpbXBvcnQgcGFyYW0gJ2luX3NjcmlwdCcuPC9saT4NCjwvdWw+PGJyIC8+]]></about>
	<description><![CDATA[SPEED YOUR SITE UP ...!!!! &bull; Output dynamic JS files and CSS WITH smarty... &bull; Set the files to use a subdomain... &bull; cached... &bull; minified... &bull; Did I mention you can use smarty in your JS and CSS script!!!! - Simple, flexible!]]></description>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/action.add_template.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiNDTVMgLSBDTVMgTWFkZSBTaW1wbGUNCiMoYykyMDA0IGJ5IFRlZCBLdWxwICh3aXNoeUB1c2Vycy5zZi5uZXQpDQojVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9jbXNtYWRlc2ltcGxlLnNmLm5ldA0KIw0KI1RoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkNCiN0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcg0KIyhhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsDQojYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YNCiNNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4NCiNZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KI2Fsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgIFVTQQ0KIw0KIyRJZDogYWRkdGVtcGxhdGUucGhwIDUxNjggMjAwOC0xMC0yOSAxNjowNzo0NVogc2lsbWFyaWxsaW9uICQNCg0KaWYoISRnQ21zKSBleGl0KCk7DQokQ01TX1VTRVJfS0VZPUNNU19TRUNVUkVfUEFSQU1fTkFNRS4nPScuJF9TRVNTSU9OW0NNU19VU0VSX0tFWV07DQoNCmlmKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgVGVtcGxhdGVzJykpew0KICAgIC8vIHRvZG8sIHBlcm1pc3Npb25zIG1lc3NhZ2UgaGVyZQ0KICAgIHJldHVybjsNCn0NCiRjb25maWcgPSYgJGdDbXMtPkdldENvbmZpZygpOyANCiR0ZW1wbGF0ZW9wcyA9JiAkZ0Ntcy0+R2V0VGVtcGxhdGVPcGVyYXRpb25zKCk7DQoNCiRkYiA9JiAkZ0Ntcy0+R2V0RGIoKTsNCg0KaWYoIWlzc2V0KCRwYXJhbXNbJ2FjdGl2ZV90YWInXSkpew0KCSRwYXJhbXNbJ2FjdGl2ZV90YWInXT0ndGVtcGxhdGVfbWFuZyc7CQ0KfQ0KDQokZGZsdF9jb250ZW50PScNCntwcm9jZXNzX3BhZ2VkYXRhfQ0KPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPg0KPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHhtbDpsYW5nPSJlbiIgPg0KPGhlYWQ+DQo8dGl0bGU+e3NpdGVuYW1lfSAtIHt0aXRsZX08L3RpdGxlPg0Ke21ldGFkYXRhfQ0Ke1NjcmlwdERlcGxveX0NCjwvaGVhZD4NCjxib2R5Pg0KDQo8IS0tIHN0YXJ0IGhlYWRlciAtLT4NCjxkaXYgaWQ9ImhlYWRlciI+DQogIDxoMT57c2l0ZW5hbWV9PC9oMT4NCjwvZGl2Pg0KPCEtLSBlbmQgaGVhZGVyIC0tPg0KDQo8IS0tIHN0YXJ0IG1lbnUgLS0+DQo8ZGl2IGlkPSJtZW51Ij4NCiAge21lbnV9DQo8L2Rpdj4NCjwhLS0gZW5kIG1lbnUgLS0+DQoNCjwhLS0gc3RhcnQgY29udGVudCAtLT4NCjxkaXYgaWQ9ImNvbnRlbnQiPg0KICA8aDE+e3RpdGxlfTwvaDE+DQogIHtjb250ZW50fQ0KPC9kaXY+DQo8IS0tIGVuZCBjb250ZW50IC0tPg0KPC9ib2R5Pg0KPC9odG1sPg0KJzsNCg0KJGVycm9yID0gIiI7DQoNCiR0ZW1wbGF0ZSA9ICIiOw0KaWYgKGlzc2V0KCRfUE9TVFsidGVtcGxhdGUiXSkpICR0ZW1wbGF0ZSA9ICRfUE9TVFsidGVtcGxhdGUiXTsNCg0KJGNvbnRlbnQgPSAkZGZsdF9jb250ZW50Ow0KaWYgKGlzc2V0KCRfUE9TVFsiY29udGVudCJdKSkgJGNvbnRlbnQgPSAkX1BPU1RbImNvbnRlbnQiXTsNCg0KJHN0eWxlc2hlZXQgPSAiIjsNCmlmIChpc3NldCgkX1BPU1RbInN0eWxlc2hlZXQiXSkpICRzdHlsZXNoZWV0ID0gJF9QT1NUWyJzdHlsZXNoZWV0Il07DQoNCg0KDQoNCiRhY3RpdmUgPSAxOw0KaWYgKCFpc3NldCgkX1BPU1RbImFjdGl2ZSJdKSAmJiBpc3NldCgkX1BPU1RbImFkZHNlY3Rpb24iXSkpICRhY3RpdmUgPSAwOw0KDQoNCg0KDQoNCg0KDQoJaWYgKGlzc2V0KCRfUE9TVFsiYWRkdGVtcGxhdGUiXSkpDQoJew0KCQkkdmFsaWRpbmZvID0gdHJ1ZTsNCg0KCQlpZiAoJHRlbXBsYXRlID09ICIiKQ0KCQl7DQoJCQkkZXJyb3IgLj0gIjxsaT4iLmxhbmcoIm5vZmllbGRnaXZlbiIsYXJyYXkobGFuZygnbmFtZScpKSkuIjwvbGk+IjsNCgkJCSR2YWxpZGluZm8gPSBmYWxzZTsNCgkJfQ0KCQllbHNlDQoJCXsNCgkJCSRxdWVyeSA9ICJTRUxFQ1QgdGVtcGxhdGVfaWQgZnJvbSAiLmNtc19kYl9wcmVmaXgoKS4idGVtcGxhdGVzIFdIRVJFIHRlbXBsYXRlX25hbWUgPSAiIC4gJGRiLT5xc3RyKCR0ZW1wbGF0ZSk7DQoJCQkkcmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSk7DQoNCgkJCWlmICgkcmVzdWx0ICYmICRyZXN1bHQtPlJlY29yZENvdW50KCkgPiAwKQ0KCQkJew0KCQkJCSRlcnJvciAuPSAiPGxpPiIubGFuZygndGVtcGxhdGVleGlzdHMnKS4iPC9saT4iOw0KCQkJCSR2YWxpZGluZm8gPSBmYWxzZTsNCgkJCX0NCgkJfQ0KDQoJCWlmICgkY29udGVudCA9PSAiIikNCgkJew0KCQkJJGVycm9yIC49ICI8bGk+Ii5sYW5nKCdub2ZpZWxkZ2l2ZW4nLCBhcnJheShsYW5nKCdjb250ZW50JykpKS4iPC9saT4iOw0KCQkJJHZhbGlkaW5mbyA9IGZhbHNlOw0KCQl9DQoNCgkJaWYgKCR2YWxpZGluZm8pDQoJCXsNCgkJCSRuZXd0ZW1wbGF0ZSA9IG5ldyBUZW1wbGF0ZSgpOw0KCQkJJG5ld3RlbXBsYXRlLT5uYW1lID0gJHRlbXBsYXRlOw0KCQkJJG5ld3RlbXBsYXRlLT5jb250ZW50ID0gJGNvbnRlbnQ7DQoJCQkkbmV3dGVtcGxhdGUtPnN0eWxlc2hlZXQgPSAkc3R5bGVzaGVldDsNCgkJCSRuZXd0ZW1wbGF0ZS0+YWN0aXZlID0gJGFjdGl2ZTsNCgkJCSRuZXd0ZW1wbGF0ZS0+ZGVmYXVsdCA9IDA7DQoNCgkJCSNQZXJmb3JtIHRoZSBhZGR0ZW1wbGF0ZV9wcmUgY2FsbGJhY2sNCgkJCWZvcmVhY2goJGdDbXMtPm1vZHVsZXMgYXMgJGtleT0+JHZhbHVlKQ0KCQkJew0KCQkJCWlmICgkZ0Ntcy0+bW9kdWxlc1ska2V5XVsnaW5zdGFsbGVkJ10gPT0gdHJ1ZSAmJg0KCQkJCQkkZ0Ntcy0+bW9kdWxlc1ska2V5XVsnYWN0aXZlJ10gPT0gdHJ1ZSkNCgkJCQl7DQoJCQkJCSRnQ21zLT5tb2R1bGVzWyRrZXldWydvYmplY3QnXS0+QWRkVGVtcGxhdGVQcmUoJG5ld3RlbXBsYXRlKTsNCgkJCQl9DQoJCQl9DQoJCQkNCgkJCUV2ZW50czo6U2VuZEV2ZW50KCdDb3JlJywgJ0FkZFRlbXBsYXRlUHJlJywgYXJyYXkoJ3RlbXBsYXRlJyA9PiAmJG5ld3RlbXBsYXRlKSk7DQoNCgkJCSRyZXN1bHQgPSAkbmV3dGVtcGxhdGUtPnNhdmUoKTsNCg0KCQkJaWYgKCRyZXN1bHQpDQoJCQl7DQoJCQkJI1BlcmZvcm0gdGhlIGFkZHRlbXBsYXRlX3Bvc3QgY2FsbGJhY2sNCgkJCQlmb3JlYWNoKCRnQ21zLT5tb2R1bGVzIGFzICRrZXk9PiR2YWx1ZSkNCgkJCQl7DQoJCQkJCWlmICgkZ0Ntcy0+bW9kdWxlc1ska2V5XVsnaW5zdGFsbGVkJ10gPT0gdHJ1ZSAmJg0KCQkJCQkJJGdDbXMtPm1vZHVsZXNbJGtleV1bJ2FjdGl2ZSddID09IHRydWUpDQoJCQkJCXsNCgkJCQkJCSRnQ21zLT5tb2R1bGVzWyRrZXldWydvYmplY3QnXS0+QWRkVGVtcGxhdGVQb3N0KCRuZXd0ZW1wbGF0ZSk7DQoJCQkJCX0NCgkJCQl9DQoJCQkJDQoJCQkJRXZlbnRzOjpTZW5kRXZlbnQoJ0NvcmUnLCAnQWRkVGVtcGxhdGVQb3N0JywgYXJyYXkoJ3RlbXBsYXRlJyA9PiAmJG5ld3RlbXBsYXRlKSk7DQoNCgkJCQlhdWRpdCgkbmV3dGVtcGxhdGUtPmlkLCAkdGVtcGxhdGUsICdBZGRlZCBUZW1wbGF0ZScpOw0KCQkJCXJlZGlyZWN0KCRmcm9tKTsNCgkJCQlyZXR1cm47DQoJCQl9DQoJCQllbHNlDQoJCQl7DQoJCQkJJGVycm9yIC49ICI8bGk+Ii5sYW5nKCdlcnJvcmluc2VydGluZ3RlbXBsYXRlJykuIiRxdWVyeTwvbGk+IjsNCgkJCX0NCgkJfQ0KCX0NCiR0aGlzLT5zbWFydHktPmFzc2lnbigndGVtcGxhdGVfcHJldmlldycsJycpOw0KDQovL2VjaG8gJHRoaXMtPmpzTmNzcygpOw0KZWNobyAnPGRpdiBpZD0iZGVtb3RpcCI+PGltZyBjbGFzcz0icHJvZ3Jlc3MiIHNyYz0iLi4vbW9kdWxlcy9TY3JpcHREZXBsb3kvaW1hZ2VzL2FqYXgtbG9hZGVyLmdpZiIgYWx0PSIiLz48L2Rpdj4nOw0KDQoNCg0KLy8gaGFuZGxlIGVycm9ycy4NCmlmKGlzc2V0KCRwYXJhbXNbJ2Vycm9ycyddKSl7DQogICAgZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkcGFyYW1zWydlcnJvcnMnXSk7DQp9DQoNCiRwYXJhbXNbJ29yaWdhY3Rpb24nXSA9ICRwYXJhbXNbJ2FjdGlvbiddOw0KJGNvbnRlbnRzID0gIiI7DQokc2NyaXB0c19uYW1lPScnOw0KICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignZm9ybXN0YXJ0JywNCgkJCSAgICAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0ICgkaWQsICdzYXZlX1NjcmlwdF9TZXR1cCcsJHJldHVybmlkLCdwb3N0JywnJywNCgkJCQkJCSAgICBmYWxzZSwgJycsICRwYXJhbXMpKTsNCiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2hpZGRlbicsDQoJCQkgICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdtb2RlJywgJHBhcmFtc1snbW9kZSddICkNCgkJCSAgLiR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdQcm9jY2Vzc2luZycsICR0aGlzLT5MYW5nKCdQcm9jY2Vzc2luZycpKQ0KCQkJICAuJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ1NhdmVkJywgJHRoaXMtPkxhbmcoJ1NhdmVkJykpDQoJCQkgIC4kdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnRG9uZScsICR0aGlzLT5MYW5nKCdEb25lJykpDQoJCQkgIC4kdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnVmFsaWRhdGluZycsICR0aGlzLT5MYW5nKCdWYWxpZGF0aW5nJykgKQ0KCQkJICApOw0KDQoNCiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2Zvcm1zdGFydCcsDQoJCQkgICAgJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCAoJGlkLCAnc2F2ZV9TY3JpcHRfU2V0dXAnLCRyZXR1cm5pZCwncG9zdCcsJycsZmFsc2UsICcnLCAkcGFyYW1zKSk7DQoNCg0KICAgIGlmKCBpc3NldCgkcGFyYW1zWydkZWZhdWx0dGVtcGxhdGVwcmVmJ10pICYmICRwYXJhbXNbJ2RlZmF1bHR0ZW1wbGF0ZXByZWYnXSAhPSAnJyApew0KCQkkY29udGVudHMgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgkcGFyYW1zWydkZWZhdWx0dGVtcGxhdGVwcmVmJ10pOw0KICAgICB9DQoNCg0KLy8kdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlJyxjbXNfaHRtbF9lbnRpdHlfZGVjb2RlKCRwYXJhbXNbJ3RpdGxlJ10pKTsNCiR0aGlzLT5zbWFydHktPmFzc2lnbigndGVtcGxhdGVuYW1lJywkdGVtcGxhdGUpOw0KICAgICR0aGlzLT5zbWFydHktPmFzc2lnbigndGVtcGxhdGVuYW1lX2lucHV0JywNCgkJCSAgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCggJGlkLCAndGVtcGxhdGUnLCAkdGVtcGxhdGUsIDQwICkpOw0KICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignU2NyaXB0SXNfaW5wdXQnLA0KCQkJJHRoaXMtPkNyZWF0ZVRleHRBcmVhICgxLCAkaWQsICRjb250ZW50LCAnY29udGVudCcsICcnLCdTSUEnLCcnLCcnLCc4MCcsJzIwJywnRWRpdEFyZWEnKSk7IA0KDQoNCiR0aGlzLT5zbWFydHktPmFzc2lnbignc2NyaXB0c19uYW1lJywkc2NyaXB0c19uYW1lKTsNCiR0aGlzLT5zbWFydHktPmFzc2lnbignbW9kZScsICRwYXJhbXNbJ21vZGUnXSApOyAgDQokdGhpcy0+RmlyZURlYnVnKCdtZXNzYWdlJywkcGFyYW1zWydtb2RlJ10pOy8vPDw8PC0tLS0tLUZpcmUgUEhQIG1lc3NhZ2UNCiR0aGlzLT5zbWFydHktPmFzc2lnbignaGlkZGVuTW9kZScsDQoJCQkkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnbW9kZScsICRwYXJhbXNbJ21vZGUnXSkNCgkJCS4kdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnc3BfJywgJENNU19VU0VSX0tFWSkNCgkJCSk7DQoJCQ0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzbWFydHlIb3dfbGFiZWwnLCAkdGhpcy0+TGFuZygnc21hcnR5SG93JykpOyANCgkNCg0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0ZW1wbGF0ZW5hbWVfbGFiZWwnLCAkdGhpcy0+TGFuZygndGVtcGxhdGVuYW1lX2xhYmVsJykpOyANCg0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdTY3JpcHRJc19sYWJlbCcsICR0aGlzLT5MYW5nKCdTY3JpcHRJc19sYWJlbCcpKTsNCiR0aGlzLT5zbWFydHktPmFzc2lnbignbm90ZXNfbGFiZWwnLCAkdGhpcy0+TGFuZygnbm90ZXNfbGFiZWwnKSk7DQoNCiR0aGlzLT5zbWFydHktPmFzc2lnbignZm9ybV9jYW5jZWwnLCAnPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9IicuJHRoaXMtPkxhbmcoJ2Zvcm1fY2FuY2VsJykuJyIgb25jbGljaz0iamF2YXNjcmlwdDp3aW5kb3cuaGlzdG9yeS5nbygtMSkiIC8+Jyk7CSAgDQokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3Byb21wdF90ZW1wbGF0ZW5hbWUnLCR0aGlzLT5MYW5nKCdwcm9tcHRfdGVtcGxhdGVuYW1lJykpOw0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfdGVtcGxhdGUnLCR0aGlzLT5MYW5nKCdwcm9tcHRfdGVtcGxhdGUnKSk7DQokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RlbXBsYXRlJywNCgkJICAgICAgJHRoaXMtPkNyZWF0ZVN5bnRheEFyZWEgKCRpZCwgJGNvbnRlbnRzLCAndGVtcGxhdGVjb250ZW50JykpOw0KCQkJICANCgkJICANCg0KCQkJICANCiR0aGlzLT5zbWFydHktPmFzc2lnbignc3VibWl0JywkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQgKCRpZCwgJ3N1Ym1pdGJ1dHRvbicsDQoJCQkJCQkJICR0aGlzLT5MYW5nICgnc3VibWl0JykpKTsNCiR0aGlzLT5zbWFydHktPmFzc2lnbignY2FuY2VsJywkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQgKCRpZCwgJ2NhbmNlbCcsIA0KCQkJCQkJCSAkdGhpcy0+TGFuZyAoJ2NhbmNlbCcpKSk7DQoNCiR0aGlzLT5zbWFydHktPmFzc2lnbignYXBwbHknLCR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCAoJGlkLCAnYXBwbHknLCANCgkJCQkJCQkgJHRoaXMtPkxhbmcgKCdhcHBseScpKSk7DQokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3JldmVydCcsJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0ICgkaWQsICdyZXZlcnQnLCANCgkJCQkJCQkgJHRoaXMtPkxhbmcgKCdyZXZlcnQnKSkpOw0KDQoNCiR0aGlzLT5zbWFydHktPmFzc2lnbignZm9ybWVuZCcsJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7DQoNCiR0aGlzLT5zbWFydHktPmFzc2lnbignZmlsdGVyUHJvcCcsJHRoaXMtPkdldFByZWZlcmVuY2UoJ2ZpbHRlclByb3AnLCAnJykpOw0KDQoNCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnZWRpdF90ZW1wbGF0ZS50cGwnKTsNCg0KDQoNCg0KDQo/Pg0K]]></data>
	</file>
	<file>
	  <filename>/action.admin_editcssassoc.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCi8qKg0KICAqIFRlbXBsYXRlTWFuYWdlciBpcyBhIG1vZHVsZSBmb3IgQ01TIE1hZGUgc2ltcGxlIChjbXNtYWRlc2ltcGxlLm9yZykNCiAgKiB0aGF0IHByZXNlbnRzIGEgdXNlciBzd2l0Y2hhYmxlIHN0eWxlIHNlbGVjdG9yIG9uIHRoZSBmcm9udCBlbmQgb2YgdGhlIHNpdGUNCiAgKiBXcml0dGVuIGJ5IFRob21hcyBXaWxsaWFtcyAodG9tQHdlYnJvY2tldGRlc2lnbi5jb20pDQogICogQ29weXJpZ2h0IDIwMDUgV2ViIFJvY2tldCBEZXNpZ24sIDQgQmx1ZSBDb2F0IEJ1aWxkaW5ncywgRHVyaGFtLCBVSywgREgxMVJGDQogICoNCiAgKiAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkNCiAgKiAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkNCiAgKiAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3INCiAgKiAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4NCiAgKg0KICAqICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwNCiAgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YNCiAgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQ0KICAqICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLg0KICAqIA0KICAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KICAqICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQ0KICAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQ0KICAqLw0KDQpmdW5jdGlvbiBVcGRhdGVTdHlsZXNoZWV0UmVjb3JkRnJvbVBhcmFtcygkYWN0LCYkcmVjb3JkLCYkcGFyYW1zKQ0Kew0KICBpZiggaXNzZXQoICRwYXJhbXNbJ2lucHV0X3ByZWZlcnJlZF9zdHlsZXNoZWV0J10gKSApDQogICAgew0KICAgICAgJHJlY29yZC0+cHJlZmVycmVkX3NzID0gJHBhcmFtc1snaW5wdXRfcHJlZmVycmVkX3N0eWxlc2hlZXQnXTsNCiAgICB9DQogIGlmKCBpc3NldCgkcGFyYW1zWydidXR0b25fYWRkcGVyc2lzdCddKSAmJiANCiAgICAgaXNzZXQoJHBhcmFtc1snaW5wdXRfYWRkcGVyc2lzdCddKSAmJiANCiAgICAgICRwYXJhbXNbJ2lucHV0X2FkZHBlcnNpc3QnXSAhPSAiLTEiICkNCiAgICB7DQogICAgICAkc3NpZCA9ICRwYXJhbXNbJ2lucHV0X2FkZHBlcnNpc3QnXTsNCiAgICAgIGlmKCBhcnJheV9zZWFyY2goICRzc2lkLCAkcmVjb3JkLT5wZXJzaXN0ZW50ICkgPT09IEZBTFNFICkNCgl7DQoJICAkcmVjb3JkLT5wZXJzaXN0ZW50W10gPSAkc3NpZDsNCgl9DQogICAgICB1bnNldCgkcGFyYW1zWydpbnB1dF9hZGRwZXJzaXN0J10pOw0KICAgICAgdW5zZXQoJHBhcmFtc1snYnV0dG9uX2FkZHBlcnNpc3QnXSk7DQogICAgfQ0KICBpZiggaXNzZXQoJHBhcmFtc1sncGVyc2lzdF9hY3Rpb24nXSApICkNCiAgICB7DQogICAgICAkaWR4ID0gYXJyYXlfc2VhcmNoKCAkcGFyYW1zWydzaGVldGlkJ10sICRyZWNvcmQtPnBlcnNpc3RlbnQgKTsNCiAgICAgIGlmKCAkaWR4ICE9PSBGQUxTRSApDQoJew0KCSAgc3dpdGNoKCAkcGFyYW1zWydwZXJzaXN0X2FjdGlvbiddICkNCgkgICAgew0KCSAgICBjYXNlICdtb3ZlX3VwJzoNCgkgICAgICAkaWR4MiA9ICRpZHggLSAxOw0KCSAgICAgICR2YWwgPSAkcmVjb3JkLT5wZXJzaXN0ZW50WyRpZHhdOw0KCSAgICAgICRyZWNvcmQtPnBlcnNpc3RlbnRbJGlkeF0gPSAkcmVjb3JkLT5wZXJzaXN0ZW50WyRpZHgyXTsNCgkgICAgICAkcmVjb3JkLT5wZXJzaXN0ZW50WyRpZHgyXSA9ICR2YWw7DQoJICAgICAgYnJlYWs7DQoJICAgIGNhc2UgJ21vdmVfZG93bic6DQoJICAgICAgJGlkeDIgPSAkaWR4ICsgMTsNCgkgICAgICAkdmFsID0gJHJlY29yZC0+cGVyc2lzdGVudFskaWR4XTsNCgkgICAgICAkcmVjb3JkLT5wZXJzaXN0ZW50WyRpZHhdID0gJHJlY29yZC0+cGVyc2lzdGVudFskaWR4Ml07DQoJICAgICAgJHJlY29yZC0+cGVyc2lzdGVudFskaWR4Ml0gPSAkdmFsOw0KCSAgICAgIGJyZWFrOw0KCSAgICBjYXNlICdyZW1vdmUnOg0KCSAgICAgIHVuc2V0KCRyZWNvcmQtPnBlcnNpc3RlbnRbJGlkeF0pOw0KCSAgICAgIGJyZWFrOw0KCSAgICB9DQoJfQ0KICAgICAgdW5zZXQoJHBhcmFtc1snc2hlZXRpZCddKTsNCiAgICAgIHVuc2V0KCRwYXJhbXNbJ3BlcnNpc3RfYWN0aW9uJ10pOw0KICAgIH0NCg0KICBpZiggaXNzZXQoJHBhcmFtc1snaW5wdXRfYWx0ZXJuYXRlX3N0eWxlc2hlZXQnXSkgKQ0KICAgIHsNCiAgICAgICRyZWNvcmQtPmFsdGVybmF0ZSA9ICRwYXJhbXNbJ2lucHV0X2FsdGVybmF0ZV9zdHlsZXNoZWV0J107DQogICAgfQ0KICBlbHNlDQogICAgew0KICAgICAgJHJlY29yZC0+YWx0ZXJuYXRlID0gYXJyYXkoKTsNCiAgICB9DQogIGlmKCBpc3NldCgkcGFyYW1zWydpbnB1dF9wcmVmZXJyZWRfc3R5bGVzaGVldCddKSApDQogICAgew0KICAgICAgJHJlY29yZC0+cHJlZmVycmVkX3NzID0gJHBhcmFtc1snaW5wdXRfcHJlZmVycmVkX3N0eWxlc2hlZXQnXTsNCiAgICB9DQp9DQoNCi8vDQovLw0KLy8NCg0KaWYoICEkdGhpcy0+VmlzaWJsZVRvQWRtaW5Vc2VyKCkgKQ0KICB7DQogICAgcmV0dXJuOw0KICB9DQoNCmlmKCAhaXNzZXQoJHBhcmFtc1sndGVtcGxhdGVpZCddKSApDQogIHsNCiAgICAkcGFyYW1zWydlcnJvciddID0gJHRoaXMtPkxhbmcoJ2Vycm9yX21pc3NpbmdwYXJhbScpOw0KICAgICR0aGlzLT5SZWRpcmVjdCggJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkLCAkcGFyYW1zICk7DQogIH0NCiR0ZW1wbGF0ZWlkID0gJHBhcmFtc1sndGVtcGxhdGVpZCddOw0KDQoNCiRlcnJvcnMgPSBhcnJheSgpOw0KaWYoIGlzc2V0KCAkcGFyYW1zWydjYW5jZWwnXSApICkNCiAgew0KICAgIHVuc2V0KCRfU0VTU0lPTlsnc3RvcmVkX29iamVjdCddKTsNCiAgICAkdGhpcy0+UmVkaXJlY3QoICRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCApOw0KICB9DQoNCiRzdHlsZXNoZWV0aW5mbyA9IG5ldyBTdHlsZXNoZWV0X1JlY29yZCgkdGVtcGxhdGVpZCk7DQppZiggaXNzZXQoICRfU0VTU0lPTlsnc3RvcmVkX29iamVjdCddICkgKQ0KICB7DQogICAgLy8gRXhwYW5kIGZyb20gcGFyYW1zDQogICAgJHN0eWxlc2hlZXRpbmZvID0gU3R5bGVzaGVldF9SZWNvcmQ6OlJldHJpZXZlKCRfU0VTU0lPTlsnc3RvcmVkX29iamVjdCddKTsNCiAgICB1bnNldCgkX1NFU1NJT05bJ3N0b3JlZF9vYmplY3QnXSk7DQogIH0NCmVsc2UNCiAgew0KICAgIC8vIExvYWQgZXZlcnl0aGluZyBmcm9tIHRoZSBkYXRhYmFzZQ0KICAgICRzdHlsZXNoZWV0aW5mby0+TG9hZCgkdGVtcGxhdGVpZCk7DQogIH0NCg0KaWYoIGlzc2V0KCRwYXJhbXNbJ2J1dHRvbl9hZGRwZXJzaXN0J10pIHx8IA0KICAgIGlzc2V0KCRwYXJhbXNbJ3BlcnNpc3RfYWN0aW9uJ10pIHx8DQogICAgaXNzZXQoJHBhcmFtc1snYXBwbHknXSkgfHwNCiAgICBpc3NldCgkcGFyYW1zWydzdWJtaXQnXSkpDQogIHsNCiAgICBVcGRhdGVTdHlsZXNoZWV0UmVjb3JkRnJvbVBhcmFtcygxLCRzdHlsZXNoZWV0aW5mbywkcGFyYW1zKTsNCiAgfQ0KDQppZiggaXNzZXQoICRwYXJhbXNbJ2FwcGx5J10gKSB8fCBpc3NldCggJHBhcmFtc1snc3VibWl0J10gKSApDQogIHsNCiAgICAvLyBoYW5kbGUgc2F2aW5nIHRoZSBvYmplY3QNCiAgICB1bnNldCgkX1NFU1NJT05bJ3N0b3JlZF9vYmplY3QnXSk7DQogICAgJHN0eWxlc2hlZXRpbmZvLT5TYXZlKCk7DQoNCiAgICBpZiggaXNzZXQoJHBhcmFtc1snc3VibWl0J10pICkNCiAgICAgIHsNCgkkdGhpcy0+UmVkaXJlY3QoICRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCwgJHBhcmFtcyApOw0KICAgICAgfQ0KICB9DQoNCi8vDQovLyBkaXNwbGF5IGVycm9ycw0KLy8NCmlmKCBjb3VudCgkZXJyb3JzKSApDQogIHsNCiAgICAkZXJyb3JzdHIgPSBpbXBsb2RlKCc8YnIvPicsJGVycm9ycyk7DQogICAgJHNtYXJ0eS0+YXNzaWduKCdlcnJvcicsJGVycm9yc3RyKTsNCiAgfQ0KDQovLw0KLy8gYXNzaWduIHByb21wdHMgdG8gc21hcnR5DQovLw0KJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfdGVtcGxhdGUnLCR0aGlzLT5MYW5nKCdwcm9tcHRfdGVtcGxhdGUnKSk7DQokc21hcnR5LT5hc3NpZ24oJ3Byb21wdF9wZXJzaXN0ZW50JywkdGhpcy0+TGFuZygncGVyc2lzdGVudCcpKTsNCiRzbWFydHktPmFzc2lnbignbmFtZXRleHQnLCR0aGlzLT5MYW5nKCduYW1lJykpOw0KJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfYWRkJywkdGhpcy0+TGFuZygncHJvbXB0X2FkZCcpKTsNCiRzbWFydHktPmFzc2lnbigncHJvbXB0X3ByZWZlcnJlZCcsJHRoaXMtPkxhbmcoJ3ByZWZlcnJlZCcpKTsNCiRzbWFydHktPmFzc2lnbigncHJvbXB0X2FsdGVybmF0ZScsJHRoaXMtPkxhbmcoJ2FsdGVybmF0ZScpKTsNCiRzbWFydHktPmFzc2lnbigncHJvbXB0X3ByZWZlcnJlZF9zdHlsZXNoZWV0JywkdGhpcy0+TGFuZygncHJvbXB0X3RlbXBsYXRlJykpOw0KJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfYWx0ZXJuYXRlX3N0eWxlc2hlZXQnLCR0aGlzLT5MYW5nKCdhbHRlcm5hdGUnKSk7DQoNCi8vDQovLyBidWlsZCBhIGNvdXBsZSBvZiB1c2VmdWwgYXJyYXlzDQovLyBhbmQgZ2V0IHRoZSBpbmZvIGFib3V0IHRoZSB0ZW1wbGF0ZSB3ZSBuZWVkDQovLw0KZ2xvYmFsICRnQ21zOw0KJGFkbWludGhlbWUgPSYgJGdDbXMtPnZhcmlhYmxlc1snYWRtaW50aGVtZSddOw0KJHRlbXBsYXRlb3BzID0mICRnQ21zLT5HZXRUZW1wbGF0ZU9wZXJhdGlvbnMoKTsNCiR0aGV0ZW1wbGF0ZSA9ICR0ZW1wbGF0ZW9wcy0+TG9hZFRlbXBsYXRlQnlJZCggJHRlbXBsYXRlaWQgKTsNCg0KJHN0eWxlc2hlZXRvcHMgPSYgJGdDbXMtPkdldFN0eWxlc2hlZXRPcGVyYXRpb25zKCk7DQokc3R5bGVzaGVldHMgPSAkc3R5bGVzaGVldG9wcy0+TG9hZFN0eWxlc2hlZXRzKCk7DQokc3R5bGVzaGVldF9zZWxlY3RfbGlzdCA9IGFycmF5KCk7DQokc3R5bGVzaGVldF9zZWxlY3RfbGlzdFskdGhpcy0+TGFuZygncHJvbXB0X3NlbGVjdG9uZScpXSA9ICctMSc7Ow0KJHN0eWxlc2hlZXRfaWRfbWFwID0gYXJyYXkoKTsNCmZvcmVhY2goICRzdHlsZXNoZWV0cyBhcyAkb25lc3R5bGUgKQ0Kew0KICAkc3R5bGVzaGVldF9zZWxlY3RfbGlzdFskb25lc3R5bGUtPk5hbWUoKV0gPSAkb25lc3R5bGUtPklkKCk7DQogICRzdHlsZXNoZWV0X2lkX21hcFskb25lc3R5bGUtPklkKCldID0gJG9uZXN0eWxlLT5OYW1lKCk7DQp9DQoNCi8vDQovLyBzdGFydCBidWlsZGluZyB0aGUgZm9ybQ0KLy8NCiRfU0VTU0lPTlsnc3RvcmVkX29iamVjdCddID0gJHN0eWxlc2hlZXRpbmZvLT5TdG9yZSgpOw0KJHNtYXJ0eS0+YXNzaWduKCdzdGFydGZvcm0nLCR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCdhZG1pbl9lZGl0Y3NzYXNzb2MnLCRyZXR1cm5pZCwncG9zdCcsJycsZmFsc2UsJycsJHBhcmFtcykpOw0KJHNtYXJ0eS0+YXNzaWduKCdlbmRmb3JtJywkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsNCiRwZXJzaXN0ZW50cyA9IGFycmF5KCk7DQokaSA9IDA7DQokcm93Y2xhc3MgPSAncm93MSc7DQokcGFybXMgPSAkcGFyYW1zOw0KZm9yZWFjaCggICRzdHlsZXNoZWV0aW5mby0+cGVyc2lzdGVudCBhcyAkc2hlZXRpZCApDQp7DQogIGlmKCAkc2hlZXRpZCAhPSAnJyApIA0KICAgIHsNCiAgICAgICRvYmogPSBuZXcgU3RkQ2xhc3MoKTsNCiAgICAgICRvYmotPklkID0gJHNoZWV0aWQ7DQogICAgICAkb2JqLT5uYW1lID0gJHN0eWxlc2hlZXRfaWRfbWFwWyRzaGVldGlkXTsNCiAgICAgICRvYmotPmVkaXRsaW5rID0gJHRoaXMtPkNyZWF0ZUxpbmsoICRpZCwgJ2VkaXRjc3MnLCAkcmV0dXJuaWQsIA0KCQkJCQkgICRhZG1pbnRoZW1lLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9lZGl0LmdpZicsICR0aGlzLT5MYW5nKCdlZGl0JyksICcnLCcnLCdzeXN0ZW1pY29uJyksDQoJCQkJCSAgYXJyYXkoJ2Nzc19pZCc9PiRzaGVldGlkKSk7DQogICAgICBpZiggY291bnQoJHBlcnNpc3RlbnRzKSA+IDAgKSB7DQoJJHBhcm1zWydwZXJzaXN0X2FjdGlvbiddID0gJ21vdmVfdXAnOw0KCSRwYXJtc1snc2hlZXRpZCddID0gJHNoZWV0aWQ7DQoJJG9iai0+bW92ZXVwbGluayA9ICR0aGlzLT5DcmVhdGVMaW5rKCAkaWQsICdhZG1pbl9lZGl0Y3NzYXNzb2MnLCAkcmV0dXJuaWQsIA0KCQkJCQkgICAgICAkYWRtaW50aGVtZS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vc29ydF91cC5naWYnLCAkdGhpcy0+TGFuZygnbW92ZV91cCcpLCAnJywgJycsICdzeXN0ZW1pY29uJyksDQoJCQkJCSAgICAgICRwYXJtcyApOw0KICAgICAgfQ0KICAgICAgaWYoICRpIDwgKGNvdW50KCRzdHlsZXNoZWV0aW5mby0+cGVyc2lzdGVudCkgLSAxKSApDQoJew0KCSAgJHBhcm1zWydwZXJzaXN0X2FjdGlvbiddID0gJ21vdmVfZG93bic7DQoJICAkcGFybXNbJ3NoZWV0aWQnXSA9ICRzaGVldGlkOw0KCSAgJG9iai0+bW92ZWRvd25saW5rID0gJHRoaXMtPkNyZWF0ZUxpbmsoICRpZCwgJ2FkbWluX2VkaXRjc3Nhc3NvYycsICRyZXR1cm5pZCwgDQoJCQkJCQkgICRhZG1pbnRoZW1lLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9zb3J0X2Rvd24uZ2lmJywgJHRoaXMtPkxhbmcoJ21vdmVfZG93bicpLCAnJywgJycsICdzeXN0ZW1pY29uJyksDQoJCQkJCQkgICRwYXJtcyApOw0KCX0NCiAgICAgICRwYXJtc1sncGVyc2lzdF9hY3Rpb24nXSA9ICdyZW1vdmUnOw0KICAgICAgJHBhcm1zWydzaGVldGlkJ10gPSAkc2hlZXRpZDsNCiAgICAgICRvYmotPnJlbW92ZWxpbmsgPSAkdGhpcy0+Q3JlYXRlTGluayggJGlkLCAnYWRtaW5fZWRpdGNzc2Fzc29jJywgJHJldHVybmlkLA0KCQkJCQkgICAgJGFkbWludGhlbWUtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2RlbGV0ZS5naWYnLCAkdGhpcy0+TGFuZygncmVtb3ZlX2Zyb21fbGlzdCcpLCAnJywgJycsICdzeXN0ZW1pY29uJyksDQoJCQkJCSAgICAkcGFybXMgKTsNCiAgICAgICRvYmotPnJvd2NsYXNzID0gJHJvd2NsYXNzOw0KICAgICAgJHBlcnNpc3RlbnRzW10gPSAkb2JqOw0KICAgICAgJHJvd2NsYXNzID0gKCRyb3djbGFzcyA9PSAncm93MScpPydyb3cyJzoncm93MSc7DQogICAgfQ0KICAkaSsrOw0KfQ0KJHNtYXJ0eS0+YXNzaWduKCdwZXJzaXN0ZW50cycsJHBlcnNpc3RlbnRzKTsNCiRzbWFydHktPmFzc2lnbignbGFiZWxfdGVtcGxhdGUnLCR0aGV0ZW1wbGF0ZS0+TmFtZSgpKTsNCiRzbWFydHktPmFzc2lnbignaW5wdXRfYWRkcGVyc2lzdCcsJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCdpbnB1dF9hZGRwZXJzaXN0Jywkc3R5bGVzaGVldF9zZWxlY3RfbGlzdCkpOw0KJHNtYXJ0eS0+YXNzaWduKCdidXR0b25fYWRkcGVyc2lzdCcsJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwnYnV0dG9uX2FkZHBlcnNpc3QnLCR0aGlzLT5MYW5nKCdwcm9tcHRfYWRkJykpKTsNCiRzbWFydHktPmFzc2lnbignaW5wdXRfcHJlZmVycmVkX3N0eWxlc2hlZXQnLCR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwnaW5wdXRfcHJlZmVycmVkX3N0eWxlc2hlZXQnLCRzdHlsZXNoZWV0X3NlbGVjdF9saXN0LC0xLCRzdHlsZXNoZWV0aW5mby0+cHJlZmVycmVkX3NzKSk7DQoNCiRzbWFydHktPmFzc2lnbignaW5wdXRfYWx0ZXJuYXRlX3N0eWxlc2hlZXQnLA0KCQkkdGhpcy0+Q3JlYXRlSW5wdXRTZWxlY3RMaXN0KCRpZCwnaW5wdXRfYWx0ZXJuYXRlX3N0eWxlc2hlZXRbXScsDQoJCQkJCSAgICAgJHN0eWxlc2hlZXRfc2VsZWN0X2xpc3QsDQoJCQkJCSAgICAgJHN0eWxlc2hlZXRpbmZvLT5hbHRlcm5hdGUpLA0KCQlhcnJheSgpLDUpOw0KJHNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ3N1Ym1pdCcsJHRoaXMtPkxhbmcoJ3N1Ym1pdCcpKSk7DQokc21hcnR5LT5hc3NpZ24oJ2FwcGx5JywkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCdhcHBseScsJHRoaXMtPkxhbmcoJ2FwcGx5JykpKTsNCiRzbWFydHktPmFzc2lnbignY2FuY2VsJywkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCdjYW5jZWwnLCR0aGlzLT5MYW5nKCdjYW5jZWwnKSkpOw0KDQplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2VkaXRjc3Nhc3NvYy50cGwnKTsNCi8vIEVPRg0KPz4NCg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_savetemplate.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCi8qKg0KICogTW9kdWxlOiBTY3JpcHREZXBsb3kgLSBNaW5pZnkgYW5kIGRlcGxveW1lbnQgb2YgSlMgQ1NTIGFuZCBIVE1MDQogKiANCiAqIA0KICogQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykNCiAqIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnDQogKiBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvc2NyaXB0ZGVwbG95Lw0KICogDQogKiBAcGFja2FnZSBTY3JpcHREZXBsb3kNCiAqIEBhdXRob3IgamVyZW15QmFzcyA8amVyZW15QmFzc0BjYWJsZW9uZS5uZXQ+DQogKiBAY29weXJpZ2h0IEplcmVteSBCYXNzDQogKiBAbGljZW5zZSBodHRwOi8vd3d3LmdudS5vcmcvY29weWxlZnQvZ3BsLmh0bWwgRnJlZWx5IGF2YWlsYWJsZSB1bmRlciBHUEwNCiAqLyANCg0KaWYoIGlzc2V0KCRwYXJhbXNbJ2lucHV0X3RlbXBsYXRlJ10gKSApDQogIHsNCiAgICAkdGhpcy0+U2V0VGVtcGxhdGUoJ2Zvcm1fdGVtcGxhdGUnLCRwYXJhbXNbJ2lucHV0X3RlbXBsYXRlJ10pOw0KICB9DQoNCiRwYXJhbXNbJ2FjdGl2ZV90YWInXSA9ICd0ZW1wbGF0ZSc7DQokdGhpcy0+UmVkaXJlY3QoICRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCwgJHBhcmFtcyApOw0KLy8gRU9GDQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.ajax.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE1vZHVsZTogUGF5UGFsQnV0dG9uTWFrZXIgLSBQYXlQYWwgQnV0dG9uIENyZWF0b3IgYW5kIE1hbmFnZXIgDQojIE1vZCBkZXNpZ25lZCBieSBqZXJlbXlCYXNzIChqZXJlbXlCYXNzQGNhYmxlb25lLm5ldCkNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpDQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnDQojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9QYXlQYWxCdXR0b25NYWtlci8NCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsNCi8vLy8vLy0tLS0tYnV0dG9uIHZhcnMNCmlmKGlzc2V0KCRwYXJhbXNbJ0Rlc2NyaXB0aW9uJ10pKXsNCgkkZGlzPSR0aGlzLT5MYW5nKCRwYXJhbXNbJ0Rlc2NyaXB0aW9uJ10pOw0KCWVjaG8gICI8c3BhbiBpZD1cIkRJU0NSUFwiPiIuJGRpcy4iPC9zcGFuPiI7DQoJZXhpdDsNCn0NCg0KaWYoaXNzZXQoJHBhcmFtc1snZnVuY3Rpb24nXSkpew0KCSRmdW5jdGlvbklTID0kcGFyYW1zWydmdW5jdGlvbiddOyANCgkkcGFyYW1hPSBpc3NldCgkcGFyYW1zWydwYXJhbWEnXSkgPyBleHBsb2RlKCcsJywkcGFyYW1zWydwYXJhbWEnXSk6Jyc7DQoJIGVjaG8gY2FsbF91c2VyX2Z1bmNfYXJyYXkoYXJyYXkoJHRoaXMsICRmdW5jdGlvbklTKSwgJHBhcmFtYSk7IA0KDQoJZXhpdDsNCn0NCg0KDQovL2lmKGlzc2V0KCRwYXJhbXNbJ2Z1bmN0aW9uJ10pKXsNCi8vCSRmdW5jdGlvbklTID0kcGFyYW1zWydmdW5jdGlvbiddOyANCi8vCSRwYXJhbWE9IGlzc2V0KCRwYXJhbXNbJ3BhcmFtYSddKSA/ICRwYXJhbXNbJ3BhcmFtYSddOicnOw0KLy8JZWNobyAkdGhpcy0+JGZ1bmN0aW9uSVMoJHBhcmFtYSk7DQovLwlleGl0Ow0KLy99DQoNCj8+DQo=]]></data>
	</file>
	<file>
	  <filename>/action.bodytag.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCi8qKg0KICogTW9kdWxlOiBTY3JpcHREZXBsb3kgLSBNaW5pZnkgYW5kIGRlcGxveW1lbnQgb2YgSlMgQ1NTIGFuZCBIVE1MDQogKiANCiAqIA0KICogQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykNCiAqIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnDQogKiBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvc2NyaXB0ZGVwbG95Lw0KICogDQogKiBAcGFja2FnZSBTY3JpcHREZXBsb3kNCiAqIEBhdXRob3IgamVyZW15QmFzcyA8amVyZW15QmFzc0BjYWJsZW9uZS5uZXQ+DQogKiBAY29weXJpZ2h0IEplcmVteSBCYXNzDQogKiBAbGljZW5zZSBodHRwOi8vd3d3LmdudS5vcmcvY29weWxlZnQvZ3BsLmh0bWwgRnJlZWx5IGF2YWlsYWJsZSB1bmRlciBHUEwNCiAqLyANCg0KJGNvb2tpZW5hbWUgPSAnY21zX3N0eWxlbmFtZSc7DQokZHVyYXRpb24gICA9ICcnOw0KDQppZiggaXNzZXQoJHBhcmFtc1snY29va2llbmFtZSddKSApDQogIHsNCiAgICAkY29va2llbmFtZSA9IHRyaW0oJHBhcmFtc1snY29va2llbmFtZSddKTsNCiAgfQ0KaWYoIGlzc2V0KCRwYXJhbXNbJ2R1cmF0aW9uJ10pICkNCiAgew0KICAgICRkdXJhdGlvbiA9IChpbnQpJHBhcmFtc1snZHVyYXRpb24nXTsNCiAgfQ0KDQokZm10ID0gJzxib2R5IG9ubG9hZD0idXNlU3R5bGVBZ2FpbihcJyVzXCcpOyIgb251bmxvYWQ9InJlbWVtYmVyU3R5bGUoXCclc1wnLCVkKTsiPic7DQokdHh0ID0gc3ByaW50ZigkZm10LCRjb29raWVuYW1lLCRjb29raWVuYW1lLCRkdXJhdGlvbik7DQplY2hvICR0eHQ7DQoNCi8vIEVPRg0KPz4NCg==]]></data>
	</file>
	<file>
	  <filename>/action.CSSreport.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KaW5jbHVkZSgiQ1NTVHJlZS5pbmMucGhwIik7DQppZiAoRkFMU0UgPT0gZW1wdHkoJHBhcmFtc1snYWN0aXZlX3RhYiddKSl7DQoJJHRhYiA9ICRwYXJhbXNbJ2FjdGl2ZV90YWInXTsNCn0gZWxzZSB7DQoJJHRhYiA9ICcnOw0KfQ0KJHRhYklzPTA7DQppZiAoJHRhYj09InNjcmlwdF90ZW1wbGF0ZSIpeyR0YWJJcz0wO30NCmlmICgkdGFiPT0idGVtcGxhdGVfbWFuZyIpeyR0YWJJcz0xO30NCmlmICgkdGFiPT0iaHRtbHNldHRpbmdzIil7JHRhYklzPTI7fQ0KaWYgKCR0YWI9PSJWYWxzZXR0aW5ncyIpeyR0YWJJcz0zO30NCmlmICgkdGFiPT0ib3B0aW9ucyIpeyR0YWJJcz00O30NCiRwYXlsb2FkPSAnPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPiQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCl7JCgidWwudGFiZXJzIikudGFicygiZGl2LlRhYnBhbmVzID4gZGl2LnBhbmUiLCB7ZWZmZWN0OiAiZmFkZSIsIGZhZGVPdXRTcGVlZDogMjAwLCBpbml0aWFsSW5kZXg6Jy4kdGFiSXMuJywgb25DbGljazpmdW5jdGlvbihldmVudCwgdGFiSW5kZXgpIHtpZiAoJCgiLnBhZ2VtZXNzYWdlIikubGVuZ3RoID4gMCl7JCgiLnBhZ2VtZXNzYWdlIikuY2xvc2VzdCgiLnBhZ2VtY29udGFpbmVyIikuZmFkZU91dCgzNTAwLGZ1bmN0aW9uKCl7JCgiLnBhZ2VtZXNzYWdlIikuY2xvc2VzdCgiLnBhZ2VtY29udGFpbmVyIikucmVtb3ZlKCk7fSk7fX19KTskKCJ1bC50YWJlcnMyIikudGFicygiZGl2LlRhYnBhbmVzMiA+IGRpdi5wYW5lIiwge2VmZmVjdDogImZhZGUiLCBmYWRlT3V0U3BlZWQ6IDIwMCwgaW5pdGlhbEluZGV4OicuJHRhYklzLicsIG9uQ2xpY2s6ZnVuY3Rpb24oZXZlbnQsIHRhYkluZGV4KSB7aWYgKCQoIi5wYWdlbWVzc2FnZSIpLmxlbmd0aCA+IDApeyQoIi5wYWdlbWVzc2FnZSIpLmNsb3Nlc3QoIi5wYWdlbWNvbnRhaW5lciIpLmZhZGVPdXQoMzUwMCxmdW5jdGlvbigpeyQoIi5wYWdlbWVzc2FnZSIpLmNsb3Nlc3QoIi5wYWdlbWNvbnRhaW5lciIpLnJlbW92ZSgpO30pO319fSk7IH0pOzwvc2NyaXB0Pic7DQovLy8vIGR1bW15IGRhdGEgDQovLyRkZGF0YT1hcnJheSgiYm9yZGVyIj0+IjFweCBzb2xpZCBibGFjayIpOw0KLy8kZGRhdGEyPWFycmF5KCJib3JkZXIiPT4iMnB4IHNvbGlkIHNpbHZlciIpOw0KDQovLyBjc3NmaWxlIHRvIHJlYWQgZnJvbSANCg0KDQovLyBpbml0IHRoZSB0cmVlIChUcmVlLmluYy5waHApLCBhdmFpbGFibGUgZnJvbToNCi8vIGh0dHA6Ly93d3cucGhwY2xhc3Nlcy5vcmcvYnJvd3NlL3BhY2thZ2UvMjgxNy5odG1sDQoNCiRudWxsPW51bGw7DQokdHJlZSA9IG5ldyBDU1NUcmVlKCRudWxsLCIiKTsNCg0KDQoNCiRwYXlsb2FkLj0nPHVsIGNsYXNzPSJ0YWJlcnMiPg0KCTxsaT48YSBocmVmPSIjRXh0cmFjdGVkIj5FeHRyYWN0ZWQgVXJsczwvYT48L2xpPg0KCTxsaT48YSBocmVmPSIjUmVuZGVyZWQiPlJlbmRlcmVkIENTUzwvYT48L2xpPg0KCTxsaT48YSBocmVmPSIjU3RydWN0dXJlIj5TdHJ1Y3R1cmU8L2E+PC9saT4NCgk8bGk+PGEgaHJlZj0iI2NvbnRlbnQiPkZpbGUgY29udGVudDwvYT48L2xpPg0KPC91bD4nOw0KDQokY3NzPWZpbGVfZ2V0X2NvbnRlbnRzKCRjc3NmaWxlKTsNCgkvLyBwYXJzZSB0aGUgY3NzLWZpbGUgYW5kIGdlbmVyYXRlIHRyZWUgc3RydWN0dXJlIA0KCSR0cmVlPSYkdHJlZS0+cGFyc2VGaWxlKCRjc3NmaWxlKTsNCiRwYXlsb2FkLj0gJzxkaXYgY2xhc3M9IlRhYnBhbmVzIiBpZD0iUFBCTSI+DQoJPGRpdiBjbGFzcz0icGFuZSIgPic7DQoNCgkkcGF5bG9hZC49ICc8aDI+RXh0cmFjdGVkIHVybHM8L2gyPic7DQoJDQoJJGNzc191cmxzPSR0aGlzLT5leHRyYWN0X2Nzc191cmxzKCRjc3MpOw0KCWZvcmVhY2goJGNzc191cmxzWydwcm9wZXJ0eSddIGFzICRrZXk9PiRjc3NfdXJsKXsNCgkJJGFkaktleT0ka2V5KzE7DQoJCQkkcGF5bG9hZC49ICRhZGpLZXkuJyAtICcuJGNzc191cmwuJzxici8+JzsJDQoJfQkNCgkNCg0KCQ0KJHBheWxvYWQuPSAnPC9kaXY+DQo8ZGl2IGNsYXNzPSJwYW5lIj4nOw0KDQoJJHBheWxvYWQuPSAnPGgyPlJlbmRlcmVkIENTUzwvaDI+JzsNCgkkcGF5bG9hZC49ICc8cHJlPic7DQoJJHBheWxvYWQuPSAkdHJlZS0+cmVuZGVyQ1NTQWxsKCk7DQoJJHBheWxvYWQuPSAnPC9wcmU+JzsNCgkNCiRwYXlsb2FkLj0gJzwvZGl2Pg0KPGRpdiBjbGFzcz0icGFuZSI+JzsNCgkkcGF5bG9hZC49ICc8aDI+U3RydWN0dXJlPC9oMj4nOw0KCSRwYXlsb2FkLj0gJzxwcmU+JzsNCgkkcGF5bG9hZC49ICR0cmVlLT5lY2hvU3RydWN0dXJlKCk7DQoJJHBheWxvYWQuPSAnPC9wcmU+JzsNCg0KJHBheWxvYWQuPSAnPC9kaXY+DQoJCTxkaXYgY2xhc3M9InBhbmUiPic7DQoNCgkNCgkkcGF5bG9hZC49ICc8aDI+RmlsZSBjb250ZW50PC9oMj4nOw0KCSRwYXlsb2FkLj0gJzxkaXYgIHN0eWxlPSJ3aWR0aDo2MDBweDsiPic7DQoJJHBheWxvYWQuPWZpbGVfZ2V0X2NvbnRlbnRzKCRjc3NmaWxlKTsNCgkkcGF5bG9hZC49ICc8L2Rpdj4nOw0KCQ0KCSAgJHBheWxvYWQuPSAnPC9kaXY+DQo8L2Rpdj4nOw0KDQovLyBhZGQgc29tZSBjaGlsZHMNCi8vJHRtcD0mJHRyZWUtPmFkZENoaWxkKCdjdXN0b20xJywkZGRhdGEpOw0KLy8kdG1wPSYkdG1wLT5hZGRDaGlsZCgnY3VzdG9tMicsJGRkYXRhMik7DQoNCg0KDQovL2VjaG8gJzxoMj5fX19fX3JlbmRlckNTU1Byb3BlcnRpZXNfX19fX188L2gyPic7DQovL2VjaG8gJzxwPlRoaXMgaXMgd2hhdCB5b3UgbmVlZCBmb3IgdGFncyAoJmx0O2RpdiBzdHlsZT0iIiZndDspPC9wPic7DQovL2VjaG8gJzxwcmU+JzsNCi8vZWNobyAkdG1wLT5yZW5kZXJDU1NQcm9wZXJ0aWVzKCk7DQovL2VjaG8gJzwvcHJlPic7DQovLw0KLy9lY2hvICc8aDI+X19fX19yZW5kZXJDU1MoKV9fX19fXzwvaDI+JzsNCi8vZWNobyAnPHA+VGhpcyBpcyB3aGF0IHlvdSBuZWVkIGluIHRoZSBoZWFkZXIgc2VjdGlvbiAmbHQ7c3R5bGUmZ3Q7PC9wPic7DQovL2VjaG8gJzxwcmU+JzsNCi8vZWNobyAkdG1wLT5yZW5kZXJDU1MoKTsNCi8vZWNobyAnPC9wcmU+JzsNCg0KDQokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3JlcG9ydCcsJHBheWxvYWQpOyAgDQoNCj8+DQo=]]></data>
	</file>
	<file>
	  <filename>/action.default.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCi8qKg0KICogTW9kdWxlOiBTY3JpcHREZXBsb3kgLSBNaW5pZnkgYW5kIGRlcGxveW1lbnQgb2YgSlMgQ1NTIGFuZCBIVE1MDQogKiANCiAqIA0KICogQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykNCiAqIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnDQogKiBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvc2NyaXB0ZGVwbG95Lw0KICogDQogKiBAcGFja2FnZSBTY3JpcHREZXBsb3kNCiAqIEBhdXRob3IgamVyZW15QmFzcyA8amVyZW15QmFzc0BjYWJsZW9uZS5uZXQ+DQogKiBAY29weXJpZ2h0IEplcmVteSBCYXNzDQogKiBAbGljZW5zZSBodHRwOi8vd3d3LmdudS5vcmcvY29weWxlZnQvZ3BsLmh0bWwgRnJlZWx5IGF2YWlsYWJsZSB1bmRlciBHUEwNCiAqLyANCmlmICghaXNzZXQoJGdDbXMpKSBleGl0Ow0KIC8vJHRoaXMtPkFkZEV2ZW50Rm9ybSgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCk7DQoJLy9nbG9iYWwgJGdDbXM7DQoJJGNvbmZpZyA9JiAkZ0Ntcy0+R2V0Q29uZmlnKCk7IA0KCWlmKGlzc2V0KCRwYXJhbXNbJ3NjcmlwdElEJ10pKXsNCgkJJElEPSRwYXJhbXNbJ3NjcmlwdElEJ107DQoJCSRTRHR5cGU9InNjcmlwdElEIjsNCgl9ZWxzZWlmKGlzc2V0KCRwYXJhbXNbJ2dyb3VwSUQnXSkpew0KCQkkSUQ9JHBhcmFtc1snZ3JvdXBJRCddOwkNCgkJJFNEdHlwZT0iZ3JvdXBJRCI7DQoJfQ0KDQoJJFN0eXBlPSBpc3NldCgkcGFyYW1zWydTdHlwZSddKSA/ICRwYXJhbXNbJ1N0eXBlJ106Jyc7DQoJJGZpbGVuYW1lPSRjb25maWdbJ3Jvb3RfcGF0aCddLiIvdXBsb2Fkcy9saWIvU0QtdGVtcC8kU0R0eXBlLyRJRC4iLnN0cnRvbG93ZXIoJFN0eXBlKTsJDQoNCglpZihmaWxlX2V4aXN0cygkZmlsZW5hbWUpKXtpZigkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGVidWdJVCcpPT10cnVlKXt1bmxpbmsgKCRmaWxlbmFtZSk7fX0NCgkkZHluYW1pYz0gaXNzZXQoJHBhcmFtc1snZHluYW1pYyddKSA/ICRwYXJhbXNbJ2R5bmFtaWMnXTpmYWxzZTsNCglpZighZmlsZV9leGlzdHMoJGZpbGVuYW1lKXx8JGR5bmFtaWMpew0KCQkkU21hcnR5T249IGlzc2V0KCRwYXJhbXNbJ3NtYXJ0eSddKSA/ICRwYXJhbXNbJ3NtYXJ0eSddOnRydWU7DQoJCSRNaW5pZnk9IGlzc2V0KCRwYXJhbXNbJ21pbmlmeSddKSA/ICRwYXJhbXNbJ21pbmlmeSddOnRydWU7DQoJCSRkYXRhPXNjcmlwdFByb2Nlc3Npbmc6OlByb2NjZXNzU0QoJElELCRTRHR5cGUsJFNtYXJ0eU9uLCRNaW5pZnksJFN0eXBlKTsNCgkJJGV2ZW50PSRkYXRhWzBdOw0KCQlpZighZmlsZV9leGlzdHMoJGNvbmZpZ1sncm9vdF9wYXRoJ10uIi91cGxvYWRzL2xpYi9TRC10ZW1wLyIuJFNEdHlwZSkpe21rZGlyKCRjb25maWdbJ3Jvb3RfcGF0aCddLiIvdXBsb2Fkcy9saWIvU0QtdGVtcC8iLiRTRHR5cGUsIDA3NzcsIHRydWUpO30NCgkJDQoJCSRvdXJGaWxlTmFtZSA9ICRmaWxlbmFtZTsNCgkJJG91ckZpbGVIYW5kbGUgPSBmb3Blbigkb3VyRmlsZU5hbWUsICd3Jykgb3IgZGllKCJjYW4ndCBvcGVuIGZpbGUiKTsNCgkJZmNsb3NlKCRvdXJGaWxlSGFuZGxlKTsNCgkJLy8gR0VUIExFTkdUSCwgQU5EIFNUT1JFIERBVEEgVE8gT1VSIFNFUlZFUiAoT1IgREFUQSBCQVNFKQ0KCQkkbGVuID0gc3RybGVuKCRldmVudCk7DQoJCSRjaGsgPSBmaWxlX3B1dF9jb250ZW50cygkZmlsZW5hbWUsICRldmVudCk7DQoJCS8vIFRFU1QgRk9SIFNVQ0NFU1NGVUwgU1RPUkFHRQ0KCQlpZiAoJGxlbiE9JGNoaykgZGllKCJMRU5HVEggTUlTTUFUQ0giKTsNCgl9DQoJJG5vT3V0UHV0ID0gaXNzZXQoJHBhcmFtc1snbm9PdXRQdXQnXSkgPyAkcGFyYW1zWydub091dFB1dCddOmZhbHNlOw0KCWlmKCRub091dFB1dD09ZmFsc2Upew0KCQkvLyRhc3NpZ24gPSBpc3NldCgkcGFyYW1zWydhc3NpZ24nXSkgPyAkcGFyYW1zWydhc3NpZ24nXTonJzsNCgkJJGNhY2hlQnVzdGVyPSBpc3NldCgkcGFyYW1zWydjYWNoZV9idXN0ZXInXSkgPyAkcGFyYW1zWydjYWNoZV9idXN0ZXInXTokdGhpcy0+R2V0UHJlZmVyZW5jZSgnY2FjaGVCdXN0ZXInLHRydWUpOw0KCQkkZnNpemUgPSBpc3NldCgkcGFyYW1zWydmc2l6ZSddKSA/ICRwYXJhbXNbJ2ZzaXplJ106ZmFsc2U7DQoJCQ0KCQkNCgkJJEdyb290VVJMPSR0aGlzLT5HZXRQcmVmZXJlbmNlKCdyb290VVJMJywkY29uZmlnWydyb290X3VybCddKTsNCgkJJFRBR3Jvb3RVcmwgPSBpc3NldCgkcGFyYW1zWydyb290J10pID8gJHBhcmFtc1sncm9vdCddIDogJyc7DQoJCSRyb290VXJsPSR0aGlzLT5HZXRQcmVmZXJlbmNlKCRJRC4nLXJvb3RVUkwtU0QnLCcnKTsNCgkJaWYoJFRBR3Jvb3RVcmwhPScnKXsNCgkJCSRyb290VXJsPSRUQUdyb290VXJsOw0KCQl9ZWxzZWlmKCRyb290VXJsIT0nJyl7DQoJCQlpZiAoc3Vic3RyKCRyb290VXJsLCAtMSk9PSIvIil7JHJvb3RVcmw9cnRyaW0oJHJvb3RVcmwsICcvJyk7fQ0KCQkJJHJvb3RVcmw9JHJvb3RVcmw7DQoJCX1lbHNlaWYoJEdyb290VVJMIT0nJyl7DQoJCQlpZiAoc3Vic3RyKCRHcm9vdFVSTCwgLTEpPT0iLyIpeyRHcm9vdFVSTD1ydHJpbSgkR3Jvb3RVUkwsICcvJyk7fQ0KCQkJJHJvb3RVcmw9JEdyb290VVJMOw0KCQl9ZWxzZXsNCgkJCSRyb290VXJsPSRjb25maWdbJ3Jvb3RfdXJsJ107DQoJCX0NCgkJaWYgKHN1YnN0cigkcm9vdFVybCwgLTEpPT0iLyIpeyRyb290VXJsPXJ0cmltKCRyb290VXJsLCAnLycpO30NCg0KCQkkVVJMPSBpc3NldCgkcGFyYW1zWyd1cmwnXSkgPyAkcGFyYW1zWyd1cmwnXTpmYWxzZTsNCgkJJGZpbGVMSU5LPSRyb290VXJsLiIvdXBsb2Fkcy9saWIvU0QtdGVtcC8iLiRTRHR5cGUuIi8iLiRJRC4iLiIuc3RydG9sb3dlcigkU3R5cGUpOw0KCQlpZigkY2FjaGVCdXN0ZXI9PXRydWUpew0KCQkJJGZpbGVMSU5LPSRmaWxlTElOSy4iPyIuZmlsZW10aW1lKCRmaWxlbmFtZSk7DQoJCX0NCgkJJFRhZz0nJzsNCgkJDQoJCSRpbXBvcnQgPSBpc3NldCgkcGFyYW1zWydpbXBvcnQnXSkgPyAkcGFyYW1zWydpbXBvcnQnXTpmYWxzZTsNCgkJJGR1bXAgPSBpc3NldCgkcGFyYW1zWydkdW1wJ10pID8gJHBhcmFtc1snZHVtcCddOmZhbHNlOw0KCQlpZigkU3R5cGU9PSdKUycpew0KCQkJJFRhZz0nPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iJy4kZmlsZUxJTksuJyI+PC9zY3JpcHQ+JzsNCgkJfWVsc2VpZigkU3R5cGU9PSdDU1MnKXsNCgkJCSRNZWRpYVR5cGUgPSBpc3NldCgkcGFyYW1zWydtZWRpYV90eXBlJ10pID8gJHBhcmFtc1snbWVkaWFfdHlwZSddOiAkdGhpcy0+R2V0UHJlZmVyZW5jZSgkSUQuJy1NZWRpYVR5cGUtU0QnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCd1c2VybWVkaXVtJywnQWxsJykpOw0KCQkJaWYoJGR1bXApew0KCQkJCWVjaG8gZmlsZV9nZXRfY29udGVudHMoJGZpbGVMSU5LKTsgDQoJCQl9ZWxzZXsNCgkJCQlpZighJGltcG9ydCl7DQoJCQkJCSRUYWc9JzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgbWVkaWE9IicuJE1lZGlhVHlwZS4nIiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iJy4kZmlsZUxJTksuJyIgLz4nOw0KCQkJCX1lbHNlaWYoJGltcG9ydD09J2luX3NjcmlwdCcpew0KCQkJCQkkVGFnPSdAaW1wb3J0ICInLiRmaWxlTElOSy4nIjsnOw0KCQkJCX1lbHNlew0KCQkJCQkkVGFnPSc8c3R5bGUgdHlwZT0idGV4dC9jc3MiPkBpbXBvcnQgdXJsKCcuJGZpbGVMSU5LLicpICcuJE1lZGlhVHlwZS4nOzwvc3R5bGU+JzsNCgkJCQl9DQoJCQl9DQoJCX0NCgkJLy9lY2hvICRmaWxlTElOSzsNCgkJaWYoJFVSTD09ZmFsc2Upew0KCQkJLy9pZigkYXNzaWduIT0nJyl7JHRoaXMtPnNtYXJ0eS0+YXNzaWduKCRhc3NpZ24sJFRhZyk7DQoJCQkvL31lbHNlew0KCQkJCWVjaG8gJFRhZzsNCgkJCS8vfQ0KCQl9ZWxzZXsNCgkJCS8vaWYoJGFzc2lnbiE9JycpeyR0aGlzLT5zbWFydHktPmFzc2lnbigkYXNzaWduLCRmaWxlTElOSyk7CQkJDQoJCQkvL31lbHNlew0KCQkJCWlmKCRmc2l6ZT09dHJ1ZSl7DQoJCQkJCWVjaG8gJHRoaXMtPlNpemVJdFVwKGZpbGVzaXplKCRmaWxlbmFtZSkpOw0KCQkJCX1lbHNlew0KCQkJCQllY2hvICRmaWxlTElOSzsNCgkJCQl9DQoJCQkvL30NCgkJfQ0KCX0NCj8+DQo=]]></data>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCi8qKg0KICogTW9kdWxlOiBTY3JpcHREZXBsb3kgLSBNaW5pZnkgYW5kIGRlcGxveW1lbnQgb2YgSlMgQ1NTIGFuZCBIVE1MDQogKiANCiAqIA0KICogQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykNCiAqIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnDQogKiBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvc2NyaXB0ZGVwbG95Lw0KICogDQogKiBAcGFja2FnZSBTY3JpcHREZXBsb3kNCiAqIEBhdXRob3IgamVyZW15QmFzcyA8amVyZW15QmFzc0BjYWJsZW9uZS5uZXQ+DQogKiBAY29weXJpZ2h0IEplcmVteSBCYXNzDQogKiBAbGljZW5zZSBodHRwOi8vd3d3LmdudS5vcmcvY29weWxlZnQvZ3BsLmh0bWwgRnJlZWx5IGF2YWlsYWJsZSB1bmRlciBHUEwNCiAqLyANCmlmICghaXNzZXQoJGdDbXMpKSBleGl0Ow0KJGNvbmZpZyA9JiAkZ0Ntcy0+R2V0Q29uZmlnKCk7IA0KDQoNCgkkZGlyID0gJGNvbmZpZ1sncm9vdF91cmwnXTsNCgkkQWRtaW5kaXIgPSAkZGlyLicvJy4kY29uZmlnWydhZG1pbl9kaXInXTsNCg0KIw0KI1RoZSB0YWIgaGVhZGVycw0KIw0KLy9lY2hvICR0aGlzLT5qc05jc3MoKTsNCg0KZWNobyAnPGRpdiBpZD0iZGVtb3RpcCI+PGltZyBjbGFzcz0icHJvZ3Jlc3MiIHNyYz0iJy4kZGlyLicvbW9kdWxlcy9TY3JpcHREZXBsb3kvaW1hZ2VzL2FqYXgtbG9hZGVyLmdpZiIgYWx0PSIiLz48L2Rpdj4nOw0KDQppZiAoRkFMU0UgPT0gZW1wdHkoJHBhcmFtc1snYWN0aXZlX3RhYiddKSl7DQoJJHRhYiA9ICRwYXJhbXNbJ2FjdGl2ZV90YWInXTsNCn0gZWxzZSB7DQoJJHRhYiA9ICcnOw0KfQ0KJHRhYklzPTA7DQokdGFiSXMyPTA7DQppZiAoJHRhYj09InNjcmlwdF90ZW1wbGF0ZSIpeyR0YWJJcz0wO30NCmlmICgkdGFiPT0idGVtcGxhdGVfbWFuZyIpeyR0YWJJcz0xO30NCmlmICgkdGFiPT0iVmFsc2V0dGluZ3MiKXskdGFiSXM9Mjt9DQppZiAoJHRhYj09ImltcG9ydEV4cG9ydCIpeyR0YWJJcz0zO30NCmlmICgkdGFiPT0iaHRtbHNldHRpbmdzIil7JHRhYklzPTQ7fQ0KaWYgKCR0YWI9PSJvcHRpb25zIil7JHRhYklzPTU7fQ0KaWYgKCR0YWI9PSJzY3JpcHRzIil7JHRhYklzPTA7JHRhYklzMj0wO30NCmlmICgkdGFiPT0iZ3JvdXBzIil7JHRhYklzPTA7JHRhYklzMj0xO30NCmlmICgkdGFiPT0iY3NzIil7JHRhYklzPTA7JHRhYklzMz0wO30NCmlmICgkdGFiPT0ianMiKXskdGFiSXM9MDskdGFiSXMzPTE7fQ0KDQovL2lmICgkdGFiPT0ic2NyaXB0X3RlbXBsYXRlIil7JHRhYklzPTA7fQ0KLy8vL2lmICgkdGFiPT0idGVtcGxhdGVfbWFuZyIpeyR0YWJJcz0xO30NCi8vaWYgKCR0YWI9PSJodG1sc2V0dGluZ3MiKXskdGFiSXM9Mjt9DQovL2lmICgkdGFiPT0iVmFsc2V0dGluZ3MiKXskdGFiSXM9MTt9DQovL2lmICgkdGFiPT0ib3B0aW9ucyIpeyR0YWJJcz0zO30NCi8vaWYgKCR0YWI9PSJjc3MiKXskdGFiSXM9MDskdGFiSXMyPTA7fQ0KLy9pZiAoJHRhYj09ImpzIil7JHRhYklzPTA7JHRhYklzMj0xO30NCg0KDQplY2hvICc8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+JChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXsNCgkkKCJ1bC50YWJlcnMiKS50YWJzKCJkaXYuVGFicGFuZXMgPiBkaXYucGFuZSIsIHsNCgkJCQllZmZlY3Q6ICJkZWZhdWx0IiwNCgkJCQlmYWRlT3V0U3BlZWQ6IDIwMCwNCgkJCQlpbml0aWFsSW5kZXg6Jy4kdGFiSXMuJywNCgkJCQlvbkNsaWNrOmZ1bmN0aW9uKGV2ZW50LCB0YWJJbmRleCkgew0KDQoJCQl9DQoJfSk7DQoJJCgidWwudGFiZXJzMiIpLnRhYnMoImRpdi5UYWJwYW5lczIgPiBkaXYucGFuZSIsIHsNCgkJCQkgZWZmZWN0OiAiZGVmYXVsdCIsDQoJCQkJIGZhZGVPdXRTcGVlZDogMjAwLA0KCQkJCSBpbml0aWFsSW5kZXg6Jy4kdGFiSXMyLicsDQoJCQkJIG9uQ2xpY2s6ZnVuY3Rpb24oZXZlbnQsIHRhYkluZGV4KSB7DQoNCgkJCQkgfQ0KCX0pOw0KfSk7PC9zY3JpcHQ+JzsNCiANCmlmIChGQUxTRSA9PSBlbXB0eSgkcGFyYW1zWydhY3RpdmVfdGFiJ10pICYmIEZBTFNFID09IGVtcHR5KCRwYXJhbXNbJ3RhYl9tZXNzYWdlJ10pKSB7DQoJJG1lc3NhZ2UgPSAkdGhpcy0+U2hvd01lc3NhZ2UoJHRoaXMtPkxhbmcoJHBhcmFtc1sndGFiX21lc3NhZ2UnXSkpOw0KfSBlbHNlIHsNCgkkbWVzc2FnZSA9ICcnOw0KfQ0KZWNobyAkbWVzc2FnZTsNCmlmICgkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpKXsNCmVjaG8nDQo8dWwgY2xhc3M9InRhYmVycyI+DQoJPGxpPjxhIGhyZWY9IiNzY3JpcHRfdGVtcGxhdGUiPicuJHRoaXMtPkxhbmcoJ1NjcmlwdF9saXN0JykuJzwvYT48L2xpPg0KCTxsaT48YSBocmVmPSIjdGVtcGxhdGVfbWFuZyI+Jy4kdGhpcy0+TGFuZygndGVtcGxhdGVfbWFuZycpLic8L2E+PC9saT48IS0tLS0+DQoJPGxpPjxhIGhyZWY9IiNWYWxzZXR0aW5ncyI+Jy4kdGhpcy0+TGFuZygnVmFsc2V0dGluZ3MnKS4nPC9hPjwvbGk+DQoJPGxpPjxhIGhyZWY9IiNpbXBvcnRFeHBvcnQiPicuJHRoaXMtPkxhbmcoJ2ltcG9ydEV4cG9ydCcpLic8L2E+PC9saT4NCgk8bGk+PGEgaHJlZj0iI2h0bWxzZXR0aW5ncyI+Jy4kdGhpcy0+TGFuZygnRGVwbG95bWVudHNldHRpbmdzJykuJzwvYT48L2xpPg0KCTxsaT48YSBocmVmPSIjb3B0aW9ucyI+Jy4kdGhpcy0+TGFuZygnbW9kdWxlX29wdGlvbnMnKS4nPC9hPjwvbGk+DQo8L3VsPiANCic7DQp9DQogIA0KaWYgKCR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBTaXRlIFByZWZlcmVuY2VzJykpDQogIHsNCmVjaG8gJzxkaXYgY2xhc3M9IlRhYnBhbmVzIiBpZD0iUFBCTSI+DQo8ZGl2IGNsYXNzPSJwYW5lIiBzdHlsZT0iZGlzcGxheTpibG9jazsiPic7DQoNCg0KZWNobycNCjx1bCBjbGFzcz0idGFiZXJzMiI+DQo8bGk+PGEgaHJlZj0iI0NTUyI+ICBTaW5nbGUgU2NyaXB0cyAgPC9hPjwvbGk+DQoJPGxpPjxhIGhyZWY9IiNKUyI+ICBHcm91cGVkIFNjcmlwdHMgIDwvYT48L2xpPg0KCQ0KPC91bD4nOw0KZWNobyAnPGRpdiBjbGFzcz0iVGFicGFuZXMyIj48ZGl2IGNsYXNzPSJwYW5lIGFjb3IiICBzdHlsZT0iZGlzcGxheTpibG9jazsiPic7DQoNCg0KCQkJLy8vc2luZ2xlIHNjcmlwdHMNCgkJCWVjaG8gJzxoMj4nLiR0aGlzLT5MYW5nKCd0aXRsZV9TY3JpcHRzJykuJzwvaDI+PCEtLTx1bCBpZD0ic2NyaXB0Q2hvaWNlIj48bGkgaWQ9IlNfQ1NTIiBjbGFzcz0iYWN0aXZlIj5DU1M8L2xpPjxsaSBpZD0iU19KUyI+SlM8L2xpPjwvdWw+LS0+PHNwYW4gc3R5bGU9InBvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjBweDt0b3A6MnB4O2Zsb2F0OnJpZ2h0O3BhZGRpbmctcmlnaHQ6MTVweDttYXJnaW4tYm90dG9tOjBweDtwYWRkaW5nLXRvcDo1cHg7Ij4nLiR0aGlzLT5DcmVhdGVMaW5rKCAkaWQsICdlZGl0X3NjcmlwdCcsICRyZXR1cm5pZCwNCgkJCQkJCQknPGltZyBzcmM9IicuJGRpci4nL21vZHVsZXMvU2NyaXB0RGVwbG95L2ltYWdlcy9hZGQucG5nIiBhbHQ9IicuJHRoaXMtPkxhbmcgKCdwcm9tcHRfbmV3U2NyaXB0JykuJyIgLz4nLiR0aGlzLT5MYW5nKCdwcm9tcHRfbmV3U2NyaXB0JyksDQoJCQkJCQkJIGFycmF5KCdzdGF0dXMnID0+ICduZXcnLCdtb2RlJyA9PiAnYWRkJykpLic8L3NwYW4+JzsNCgkJCQ0KCQkJDQoJCQkNCgkJCQ0KCQkJDQoJCQllY2hvICc8aDM+PHNwYW4+Q1NTPGltZyBzcmM9IicuJGRpci4nL21vZHVsZXMvU2NyaXB0RGVwbG95L2ltYWdlcy9fYmxhbmsucG5nIiBhbHQ9IkNTUyIgLz48L3NwYW4+PC9oMz4nOw0KCQkJZWNobyc8ZGl2IGNsYXNzPSJjb250ZW50IiBzdHlsZT0iZGlzcGxheTpibG9jazsiPic7DQoJCQkkdGhpcy0+X0FkbWluQ3JlYXRlU2NyaXB0TGlzdCgkaWQsJHJldHVybmlkLA0KCQkJCQkJICAnZW1haWwnLA0KCQkJCQkJICAnZGVmYXVsdF9zY3JpcHRfdGVtcGxhdGVfY29udGVudHMnLA0KCQkJCQkJICAnc2NyaXB0X3RlbXBsYXRlJywNCgkJCQkJCSAgJ2N1cnJlbnRfc2NyaXB0X3RlbXBsYXRlJywNCgkJCQkJCSAgJHRoaXMtPkxhbmcoJ3RpdGxlX3NjcmlwdF90ZW1wbGF0ZScpLA0KCQkJCQkJICAnQ1NTJyk7CQ0KCQkJCWVjaG8gJzwvZGl2Pic7ICANCgkJCQkNCgkJCQ0KCQkJDQoJCQkNCgkJCWVjaG8gJzxoMz48c3Bhbj5KUzxpbWcgc3JjPSInLiRkaXIuJy9tb2R1bGVzL1NjcmlwdERlcGxveS9pbWFnZXMvX2JsYW5rLnBuZyIgYWx0PSJKUyIgLz48L3NwYW4+PC9oMz4nOw0KCQkJZWNobyc8ZGl2IGNsYXNzPSJjb250ZW50Ij4nOw0KCQkJJHRoaXMtPl9BZG1pbkNyZWF0ZVNjcmlwdExpc3QoJGlkLCRyZXR1cm5pZCwNCgkJCQkJCQkgICdlbWFpbCcsDQoJCQkJCQkJICAnZGVmYXVsdF9zY3JpcHRfdGVtcGxhdGVfY29udGVudHMnLA0KCQkJCQkJCSAgJ3NjcmlwdF90ZW1wbGF0ZScsDQoJCQkJCQkJICAnY3VycmVudF9zY3JpcHRfdGVtcGxhdGUnLA0KCQkJCQkJCSAgJHRoaXMtPkxhbmcoJ3RpdGxlX3NjcmlwdF90ZW1wbGF0ZScpLA0KCQkJCQkJCSAgJ0pTJyk7DQoJCQkJZWNobyAnPC9kaXY+JzsNCgkJCQkNCgkJCQkNCgkJCQkNCgkJCQkNCgkJCQkNCgkgIGVjaG8gJzwvZGl2PjxkaXYgY2xhc3M9InBhbmUiPic7IA0KICAgICAgCQllY2hvICc8aDI+Jy4kdGhpcy0+TGFuZygndGl0bGVfR3JvdXBzJykuJzwvaDI+PHNwYW4gc3R5bGU9InBvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjBweDt0b3A6MnB4O2Zsb2F0OnJpZ2h0O3BhZGRpbmctcmlnaHQ6MTVweDttYXJnaW4tYm90dG9tOjBweDtwYWRkaW5nLXRvcDo1cHg7Ij4nLiAkdGhpcy0+Q3JlYXRlTGluayggJGlkLCAnZWRpdGFzc2lnbm1lbnQnLCAkcmV0dXJuaWQsJzxpbWcgc3JjPSInLiRkaXIuJy9tb2R1bGVzL1NjcmlwdERlcGxveS9pbWFnZXMvYWRkX2dyb3VwLnBuZyIgYWx0PSInLiR0aGlzLT5MYW5nICgncHJvbXB0X25ld1NjcmlwdCcpLiciIC8+Jy4kdGhpcy0+TGFuZygncHJvbXB0X25ld1NjcmlwdEFzcycpLGFycmF5KCdzdGF0dXMnID0+ICduZXcnLCdtb2RlJyA9PiAnYWRkJykpLic8L3NwYW4+JzsNCgkgIGluY2x1ZGVfb25jZShkaXJuYW1lKF9fRklMRV9fKS4nL2Z1bmN0aW9uLmFkbWluX2dyb3VwbGlzdF90YWIucGhwJyk7DQoJICBlY2hvICc8L2Rpdj48L2Rpdj4nOw0KDQoNCg0KZWNobyAnPC9kaXY+DQo8ZGl2IGNsYXNzPSJwYW5lIj4nOw0KCQkJZWNobyAnPGgzPjxzcGFuPk1haW4gVGVtcGxhdGVzIChIVE1MKTxpbWcgc3JjPSInLiRkaXIuJy9tb2R1bGVzL1NjcmlwdERlcGxveS9pbWFnZXMvX2JsYW5rLnBuZyIgYWx0PSJIVE1MIiAvPjwvc3Bhbj48L2gzPic7DQoJCQllY2hvJzxkaXYgY2xhc3M9ImNvbnRlbnQiIHN0eWxlPSJkaXNwbGF5OmJsb2NrOyI+JzsNCmluY2x1ZGVfb25jZShkaXJuYW1lKF9fRklMRV9fKS4nL2Z1bmN0aW9uLmFkbWluX2Fzc29jaWF0aW9uc3RhYi5waHAnKTsNCgkJCWVjaG8nPC9kaXY+JzsNCgkJCQ0KZWNobyAnPC9kaXY+PCEtLS0tPg0KPGRpdiBjbGFzcz0icGFuZSI+JzsNCiAgICBpbmNsdWRlX29uY2UoZGlybmFtZShfX0ZJTEVfXykuJy9mdW5jdGlvbi5hZG1pbl9WYWx0YWIucGhwJyk7DQoJCQkNCmVjaG8gJzwvZGl2Pg0KPGRpdiBjbGFzcz0icGFuZSI+JzsNCiAgICBpbmNsdWRlX29uY2UoZGlybmFtZShfX0ZJTEVfXykuJy9mdW5jdGlvbi5hZG1pbl9pbXBvcnRFeHBvcnRfdGFiLnBocCcpOw0KCQ0KZWNobyAnPC9kaXY+DQo8ZGl2IGNsYXNzPSJwYW5lIj4nOw0KICAgIGluY2x1ZGVfb25jZShkaXJuYW1lKF9fRklMRV9fKS4nL2Z1bmN0aW9uLmFkbWluX2RlcGxveW1lbnRfdGFiLnBocCcpOw0KDQplY2hvICc8L2Rpdj4NCjxkaXYgY2xhc3M9InBhbmUiPic7DQogICAgaW5jbHVkZV9vbmNlKGRpcm5hbWUoX19GSUxFX18pLicvZnVuY3Rpb24uYWRtaW5fbW9kdWxlX29wdGlvbnN0YWIucGhwJyk7DQoJICBlY2hvICc8L2Rpdj4NCgk8L2Rpdj4nOw0KfQ0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQojIHZpbTp0cz00IHN3PTQgbm9ldA0KPz4NCg==]]></data>
	</file>
	<file>
	  <filename>/action.deleteassignment.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCi8qKg0KICogTW9kdWxlOiBTY3JpcHREZXBsb3kgLSBNaW5pZnkgYW5kIGRlcGxveW1lbnQgb2YgSlMgQ1NTIGFuZCBIVE1MDQogKiANCiAqIA0KICogQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykNCiAqIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnDQogKiBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvc2NyaXB0ZGVwbG95Lw0KICogDQogKiBAcGFja2FnZSBTY3JpcHREZXBsb3kNCiAqIEBhdXRob3IgamVyZW15QmFzcyA8amVyZW15QmFzc0BjYWJsZW9uZS5uZXQ+DQogKiBAY29weXJpZ2h0IEplcmVteSBCYXNzDQogKiBAbGljZW5zZSBodHRwOi8vd3d3LmdudS5vcmcvY29weWxlZnQvZ3BsLmh0bWwgRnJlZWx5IGF2YWlsYWJsZSB1bmRlciBHUEwNCiAqLyANCg0KaWYoISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBUZW1wbGF0ZXMnKSl7DQogICAgLy8gdG9kbywgcGVybWlzc2lvbnMgbWVzc2FnZSBoZXJlDQogICAgcmV0dXJuOw0KICB9DQpnbG9iYWwgJGdDbXM7DQoNCiAgDQokR3JvdXB0U2V0PSRwYXJhbXNbJ0dyb3VwdFNldCddOw0KDQoJCSRkYiA9ICYkZ0Ntcy0+ZGI7DQoJICAJJHF1ZXJ5ID0gIkRFTEVURSBzZEcsIGdhIEZST00gIi5TRF9HUk9VUC4iIEFTIHNkRyAiDQoJCQkJCS4iSU5ORVIgam9pbiAgIi5TRF9HUk9VUEFTU0lHTk1FTlQuIiBBUyBnYSBPTiBnYS5Hcm91cHRTZXRJRCA9IHNkRy5JRCAiDQoJCQkJCS4iV0hFUkUgc2RHLklEID0gJyIuJEdyb3VwdFNldC4iJyI7DQoJCSRyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsNCgkJDQoJCSRxdWVyeSA9ICJERUxFVEUgc2RHIEZST00gIi5TRF9HUk9VUC4iIEFTIHNkRyAiDQoJCQkJCS4iV0hFUkUgc2RHLklEID0gJyIuJEdyb3VwdFNldC4iJyI7DQoJCSRyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsNCgkJDQoJCWlmKCEkcmVzdWx0KXsNCgkJCWVjaG8gJ0Vycm9yOiAnLm15c3FsX2Vycm9yKCk7DQoJCQkkcGFyYW1zWydtZXNzYWdlJ10gPSBteXNxbF9lcnJvcigpOw0KCQkJJHRoaXMtPkZpcmVEZWJ1ZygnZXJyb3IgbXlzcWxfZXJyb3IoKScsbXlzcWxfZXJyb3IoKSk7Ly88PDw8LS0tLS0tRmlyZSBQSFAgbWVzc2FnZQ0KCQl9ZWxzZXsNCi8vICR0aGlzLT5GaXJlRGVidWcoInNhaWQgaXQncyBkb25lIHRoZXJlIiwnZXJyb3InKTsvLzw8PDwtLS0tLS1GaXJlIFBIUCBtZXNzYWdlDQoJCQkkcGFyYW1zWydtZXNzYWdlJ10gPSBteXNxbF9lcnJvcigpOw0KCQkJJHRoaXMtPkZpcmVEZWJ1ZygnZXJyb3InLCRHcm91cHRTZXQpOy8vPDw8PC0tLS0tLUZpcmUgUEhQIG1lc3NhZ2UNCgkJfQ0KCQkNCgkJDQoJCSR0aGlzLT5GaXJlRGVidWcoJ2Vycm9yJywkR3JvdXB0U2V0KTsvLzw8PDwtLS0tLS1GaXJlIFBIUCBtZXNzYWdlDQoJCS8vJHRoaXMtPm15UmVkaXJlY3RUb1RhYigkaWQsICd1cGxvYWRmb3JtX3RlbXBsYXRlJyk7DQoJCSRwYXJhbXMgPSBhcnJheSgndGFiX21lc3NhZ2UnPT4gJ0J0bkRFTEVURUQnLCAnYWN0aXZlX3RhYicgPT4gJ3RlbXBsYXRlX21hbmcnKTsNCgkJJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICcnLCAkcGFyYW1zKTsNCj8+]]></data>
	</file>
	<file>
	  <filename>/action.delete_script.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCi8qKg0KICogTW9kdWxlOiBTY3JpcHREZXBsb3kgLSBNaW5pZnkgYW5kIGRlcGxveW1lbnQgb2YgSlMgQ1NTIGFuZCBIVE1MDQogKiANCiAqIA0KICogQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykNCiAqIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnDQogKiBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvc2NyaXB0ZGVwbG95Lw0KICogDQogKiBAcGFja2FnZSBTY3JpcHREZXBsb3kNCiAqIEBhdXRob3IgamVyZW15QmFzcyA8amVyZW15QmFzc0BjYWJsZW9uZS5uZXQ+DQogKiBAY29weXJpZ2h0IEplcmVteSBCYXNzDQogKiBAbGljZW5zZSBodHRwOi8vd3d3LmdudS5vcmcvY29weWxlZnQvZ3BsLmh0bWwgRnJlZWx5IGF2YWlsYWJsZSB1bmRlciBHUEwNCiAqLyANCg0KLy9pZighJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFRlbXBsYXRlcycpKXsNCiAgICAvLyB0b2RvLCBwZXJtaXNzaW9ucyBtZXNzYWdlIGhlcmUNCiAgLy8gIHJldHVybjsNCiAvLyB9DQpnbG9iYWwgJGdDbXM7DQogDQoJCSRTaWQ9JHBhcmFtc1snU2NyaXB0SUQnXTsNCgkJJGRiID0gJiRnQ21zLT5kYjsNCgkgIAkkcXVlcnkgPSAiREVMRVRFIHNuLCBzbywgc3AsIHN1IEZST00gIi5TRF9TQ1JJUFROQU1FUy4iIEFTIHNuICINCgkJCQkJLiJJTk5FUiBqb2luICAiLlNEX1NDUklQVE9QVElPTlMuIiBBUyBzbyBPTiBzbi5JRCA9IHNvLklEICINCgkJCQkJLiJJTk5FUiBqb2luICAiLlNEX1NDUklQVFVORE8uIiBBUyBzdSBPTiBzbi5JRCA9IHN1LnNjcmlwdElEICINCgkJCQkJLiJJTk5FUiBqb2luICAiLlNEX1NDUklQVFBBUlRTLiIgQVMgc3AgT04gc24uSUQgPSBzcC5JRCAiDQoJCQkJCS4iV0hFUkUgc24uSUQgPSA/IjsNCgkJJHJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJFNpZCkpOw0KCQlpZighJHJlc3VsdCl7DQoJCQllY2hvICdFcnJvcjogJy5teXNxbF9lcnJvcigpOw0KCQkJJHBhcmFtc1snbWVzc2FnZSddID0gbXlzcWxfZXJyb3IoKTsNCgkJfWVsc2V7DQoJCQkkcGFyYW1zWydtZXNzYWdlJ10gPSBteXNxbF9lcnJvcigpOw0KCQl9DQoNCgkJJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoJFNpZC4nLUxvY2tlZC1TRCcpOw0KCQkkdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgkU2lkLictTG9ja2VkLUVkaXRvci1TRCcpOw0KCQkkdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgkU2lkLictTG9ja2VkLUVkaXRlZFRpbWUtU0QnKTsNCgkJJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoJFNpZC4nLU1lZGlhVHlwZS1TRCcpOw0KCQkkdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgkU2lkLictTWluaWZ5LVNEJyk7DQoJCSR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCRTaWQuJy1QYXRoT3AtU0QnKTsNCgkJJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoJFNpZC4nLXJvb3RVUkwtU0QnKTsNCgkJLy8kdGhpcy0+bXlSZWRpcmVjdFRvVGFiKCRpZCwgJ3VwbG9hZGZvcm1fdGVtcGxhdGUnKTsNCgkJJHBhcmFtcyA9IGFycmF5KCd0YWJfbWVzc2FnZSc9PiAnQnRuREVMRVRFRCcsICdhY3RpdmVfdGFiJyA9PiAnc2NyaXB0X3RlbXBsYXRlJyk7DQoJCSR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAnJywgJHBhcmFtcyk7DQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.description.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE1vZHVsZTogUGF5UGFsQnV0dG9uTWFrZXIgLSBQYXlQYWwgQnV0dG9uIENyZWF0b3IgYW5kIE1hbmFnZXIgDQojIE1vZCBkZXNpZ25lZCBieSBqZXJlbXlCYXNzIChqZXJlbXlCYXNzQGNhYmxlb25lLm5ldCkNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpDQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnDQojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9QYXlQYWxCdXR0b25NYWtlci8NCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCmdsb2JhbCAkZ0NtczsNCi8vLy8vLy0tLS0tYnV0dG9uIHZhcnMNCiRkaXM9JHRoaXMtPkxhbmcoJHBhcmFtc1snRGVzY3JpcHRpb24nXSk7DQplY2hvICAiPHNwYW4gaWQ9XCJESVNDUlBcIj4iLiRkaXMuIjwvc3Bhbj4iOw0KZXhpdDsNCg0KDQo/Pg0K]]></data>
	</file>
	<file>
	  <filename>/action.do_exporttemplate.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCmlmKCAhaXNzZXQoICRnQ21zICkgKSBleGl0KCk7DQoNCmlmKCAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFRlbXBsYXRlcycpICkNCnsNCgllY2hvICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5MYW5nKCdhY2Nlc3NkZW5pZWQnKSk7DQoJcmV0dXJuOw0KfQ0KDQppZiggIWlzc2V0KCAkcGFyYW1zWyd0ZW1wbGF0ZSddICkgKQ0Kew0KCSRwYXJhbXMgPSBhcnJheSgnZXJyb3JzJz0+ICdlcnJvcl9pbnN1ZmZpY2llbnRwYXJhbXMnLCAnYWN0aXZlX3RhYicgPT4gJ3RlbXBsYXRlcycpOw0KICAkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJyAsICRyZXR1cm5pZCwgJHBhcmFtcyk7DQoJcmV0dXJuOw0KfQ0KDQokaWQ9JHBhcmFtc1snaWQnXTsNCiRncm91cGVkPSRwYXJhbXNbJ2dyb3VwZWQnXTsNCiRleHQ9JHBhcmFtc1snZXh0J107DQoNCiR4bWx0eHQgID0gJzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4nLiJcbiI7DQokeG1sdHh0IC49ICI8c2NyaXB0cGFja2FnZT5cbiI7DQpmb3JlYWNoKCAkZmlsZXMgYXMgJGZpbGUgKXsNCgkkeG1sdHh0IC49ICIJPGdyb3VwPjwhW0NEQVRBWyIuYmFzZTY0X2VuY29kZSgkZGF0YVswXSkuIl1dPjwvZ3JvdXA+XG4iOw0KCSR4bWx0eHQgLj0gIgk8c2NyaXB0dHlwZT48IVtDREFUQVsiLmJhc2U2NF9lbmNvZGUoJGRhdGFbMF0pLiJdXT48L3NjcmlwdHR5cGU+XG4iOw0KCSR4bWx0eHQgLj0gIgk8c2NyaXB0PlxuIjsNCgkJJHhtbHR4dCAuPSAiCTxuYW1lPjwhW0NEQVRBWyIuYmFzZTY0X2VuY29kZSgkZGF0YVswXSkuIl1dPjwvbmFtZT5cbiI7DQoJCSR4bWx0eHQgLj0gIgk8b3JkZXI+PCFbQ0RBVEFbIi5iYXNlNjRfZW5jb2RlKCRkYXRhWzBdKS4iXV0+PC9vcmRlcj5cbiI7DQoJCSR4bWx0eHQgLj0gIgk8cmV2aXNpb24+PCFbQ0RBVEFbIi5iYXNlNjRfZW5jb2RlKCRkYXRhWzBdKS4iXV0+PC9yZXZpc2lvbj5cbiI7DQoJCSR4bWx0eHQgLj0gIgk8bWVkaWF0eXBlPjwhW0NEQVRBWyIuYmFzZTY0X2VuY29kZSgkZGF0YVswXSkuIl1dPjwvbWVkaWF0eXBlPlxuIjsNCgkJJHhtbHR4dCAuPSAiCTxtaW5pZnk+PCFbQ0RBVEFbIi5iYXNlNjRfZW5jb2RlKCRkYXRhWzBdKS4iXV0+PC9taW5pZnk+XG4iOw0KCQkkeG1sdHh0IC49ICIJPHJvb3Q+PCFbQ0RBVEFbIi5iYXNlNjRfZW5jb2RlKCRkYXRhWzBdKS4iXV0+PC9yb290PlxuIjsNCgkJJHhtbHR4dCAuPSAiCTxwYXRoPjwhW0NEQVRBWyIuYmFzZTY0X2VuY29kZSgkZGF0YVswXSkuIl1dPjwvcGF0aD5cbiI7DQoNCgkJJGRhdGE9c2NyaXB0UHJvY2Vzc2luZzo6UHJvY2Nlc3NTRCgkaWQsJGdyb3VwZWQsZmFsc2UsZmFsc2UsJGV4dCx0cnVlKTsNCg0KCQkkeG1sdHh0IC49ICIJICA8c2NyaXB0aXM+PCFbQ0RBVEFbIi5iYXNlNjRfZW5jb2RlKCRkYXRhWzBdKS4iXV0+PC9zY3JpcHRpcz5cbiI7DQoJJHhtbHR4dCAuPSAiCTwvc2NyaXB0PlxuIjsNCgkrKyRmaWxlY291bnQ7DQp9DQokeG1sdHh0IC49ICI8L3NjcmlwdHBhY2thZ2U+XG4iOw0KDQokbWVzc2FnZSA9ICdYTUwgcGFja2FnZSBvZiAnIC4gc3RybGVuKCR4bWx0eHQpIC4gJyBieXRlcyBjcmVhdGVkIGZvciBTY3JpcHREZXBsb3kgdGVtcGxhdGUgJyAuICRwYXJhbXNbJ3RlbXBsYXRlJ107DQokbWVzc2FnZSAuPSAnIGluY2x1ZGluZyAnIC4gJGZpbGVjb3VudCAuICcgZmlsZXMnOw0KDQokeG1sbmFtZSA9ICdTRC1wY2stJyAuICRwYXJhbXNbJ3RlbXBsYXRlJ10gLiAnLnhtbCc7DQoNCi8vIHNlbmQgdGhlIGZpbGUNCm9iX2VuZF9jbGVhbigpOw0Kb2JfZW5kX2NsZWFuKCk7DQpoZWFkZXIoJ0NvbnRlbnQtRGVzY3JpcHRpb246IEZpbGUgVHJhbnNmZXInKTsNCmhlYWRlcignQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9mb3JjZS1kb3dubG9hZCcpOw0KaGVhZGVyKCdDb250ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT0nLiR4bWxuYW1lKTsNCmVjaG8gJHhtbHR4dDsNCmV4aXQoKTsNCg0KPz4=]]></data>
	</file>
	<file>
	  <filename>/action.do_importtemplate.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYoICFpc3NldCggJGdDbXMgKSApIGV4aXQoKTsKCgppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBUZW1wbGF0ZXMnKSApCnsKCWVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJ2FjY2Vzc2RlbmllZCcpKTsKCXJldHVybjsKfQoKJGZpZWxkTmFtZSA9ICRpZCAuICJpbXBvcnR4bWwiOwppZiAoICFpc3NldCgkX0ZJTEVTWyRmaWVsZE5hbWVdKSB8fCAhaXNzZXQoJF9GSUxFUykgfHwgIWlzX2FycmF5KCRfRklMRVNbJGZpZWxkTmFtZV0pIHx8ICEkX0ZJTEVTWyRmaWVsZE5hbWVdWyduYW1lJ10pCnsKCSRwYXJhbXMgPSBhcnJheSgnZXJyb3JzJz0+ICdlcnJvcl9pbnN1ZmZpY2llbnRwYXJhbXMnLCAnYWN0aXZlX3RhYicgPT4gJ3RlbXBsYXRlcycpOwoJJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicgLCAkcmV0dXJuaWQsICRwYXJhbXMpOwoJcmV0dXJuOwp9CmVsc2UKewoJLy8gbm9ybWFsaXplIHRoZSBmaWxlIHZhcmlhYmxlCgkkZmlsZSA9ICRfRklMRVNbJGZpZWxkTmFtZV07CgoJLy8gJGZpbGVbJ3RtcF9uYW1lJ10gaXMgdGhlIGZpbGUgd2UgaGF2ZSB0byBwYXJzZQoJJHhtbCA9IGZpbGVfZ2V0X2NvbnRlbnRzKCRmaWxlWyd0bXBfbmFtZSddKTsKCSRmbiA9ICcnOwoKCXJlcXVpcmVfb25jZSAnZnVuY3Rpb24uaW1wb3J0dGVtcGxhdGUucGhwJzsKCQoJJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicgLCAkcmV0dXJuaWQsIGFycmF5KCdhY3RpdmVfdGFiJyA9PiAndGVtcGxhdGVzJykpOwp9Cj8+]]></data>
	</file>
	<file>
	  <filename>/action.editassignment.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCi8qKg0KICogTW9kdWxlOiBTY3JpcHREZXBsb3kgLSBNaW5pZnkgYW5kIGRlcGxveW1lbnQgb2YgSlMgQ1NTIGFuZCBIVE1MDQogKiANCiAqIA0KICogQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykNCiAqIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnDQogKiBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvc2NyaXB0ZGVwbG95Lw0KICogDQogKiBAcGFja2FnZSBTY3JpcHREZXBsb3kNCiAqIEBhdXRob3IgamVyZW15QmFzcyA8amVyZW15QmFzc0BjYWJsZW9uZS5uZXQ+DQogKiBAY29weXJpZ2h0IEplcmVteSBCYXNzDQogKiBAbGljZW5zZSBodHRwOi8vd3d3LmdudS5vcmcvY29weWxlZnQvZ3BsLmh0bWwgRnJlZWx5IGF2YWlsYWJsZSB1bmRlciBHUEwNCiAqLyANCg0KCWlmKCEkZ0NtcykgZXhpdCgpOw0KDQoJJGNvbmZpZyA9JiAkZ0Ntcy0+R2V0Q29uZmlnKCk7DQoNCgkkZGlyID0gJGNvbmZpZ1sncm9vdF91cmwnXTsNCgkkQWRtaW5kaXIgPSAkZGlyLicvJy4kY29uZmlnWydhZG1pbl9kaXInXTsNCgkNCgkkQ01TX1VTRVJfS0VZPUNNU19TRUNVUkVfUEFSQU1fTkFNRS4nPScuJF9TRVNTSU9OW0NNU19VU0VSX0tFWV07DQoJDQoJaWYoISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBUZW1wbGF0ZXMnKSl7DQoJCS8vIHRvZG8sIHBlcm1pc3Npb25zIG1lc3NhZ2UgaGVyZQ0KCQlyZXR1cm47DQoJfQ0KCS8vZWNobyAkdGhpcy0+anNOY3NzKCk7DQplY2hvICc8ZGl2IGlkPSJkZW1vdGlwIj48aW1nIGNsYXNzPSJwcm9ncmVzcyIgc3JjPSInJGRpcicvbW9kdWxlcy9TY3JpcHREZXBsb3kvaW1hZ2VzL2FqYXgtbG9hZGVyLmdpZiIgYWx0PSIiLz48L2Rpdj4nOw0KDQoNCgkkTWVkaWFUeXBlQXJyYXk9YXJyYXkoDQoJCQknYWxsJz0+J2FsbCcsDQoJCQknYXVyYWwnPT4nYXVyYWwnLA0KCQkJJ2JyYWlsbGUnPT4nYnJhaWxsZScsDQoJCQknaGFuZGhlbGQnPT4naGFuZGhlbGQnLA0KCQkJJ3ByaW50Jz0+J3ByaW50JywNCgkJCSdlbWJvc3NlZCc9PidlbWJvc3NlZCcsDQoJCQkncHJvamVjdGlvbic9Pidwcm9qZWN0aW9uJywNCgkJCSdzY3JlZW4nPT4nc2NyZWVuJywNCgkJCSd0dHknPT4ndHR5JywNCgkJCSd0dic9Pid0dicNCgkpOw0KCQkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8NCgkJLyotLS0tU3RhcnQtLS0tLS0tLS0tLS0tLS0tLSovDQoJCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLw0KCS8vIGhhbmRsZSBlcnJvcnMuDQoJaWYoaXNzZXQoJHBhcmFtc1snZXJyb3JzJ10pKXsNCgkJZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkcGFyYW1zWydlcnJvcnMnXSk7DQoJfQ0KCSRhY3RpdmVfdGFiPSJ0ZW1wbGF0ZV9tYW5nIjsNCgkkcGFyYW1zWydvcmlnYWN0aW9uJ10gPSAkcGFyYW1zWydhY3Rpb24nXTsNCgkkY29udGVudHMgPSAiIjsNCiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2Zvcm1zdGFydCcsDQoJCQkgICAgJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCAoJGlkLCAnc2F2ZV9ncm91cF9hc3NpZ24nLCRyZXR1cm5pZCwncG9zdCcsJycsZmFsc2UsICcnLCAkcGFyYW1zKSk7DQoJaWYoJHBhcmFtc1snbW9kZSddPT0nYWRkJyl7DQoJCSR0aGlzLT5zbWFydHktPmFzc2lnbignZm9ybXN0YXJ0JywNCgkJCQkJJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCAoJGlkLCAnc2F2ZV9ncm91cF9hc3NpZ24nLCRyZXR1cm5pZCwncG9zdCcsJycsZmFsc2UsICcnLCAkcGFyYW1zKSk7DQoJCSR0aGlzLT5zbWFydHktPmFzc2lnbigndGVtcGxhdGVuYW1lJywNCgkJCQkgICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoICRpZCwgJ3RlbXBsYXRlJywgIiIsIDQwICkpOw0KCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2hpZGRlbicsDQoJCQkJICAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnbW9kZScsICRwYXJhbXNbJ21vZGUnXSkNCgkJCQkgICk7DQoJCWlmKGlzc2V0KCRwYXJhbXNbJ2RlZmF1bHR0ZW1wbGF0ZXByZWYnXSkmJiRwYXJhbXNbJ2RlZmF1bHR0ZW1wbGF0ZXByZWYnXSE9Jycpew0KCQkJJGNvbnRlbnRzID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJHBhcmFtc1snZGVmYXVsdHRlbXBsYXRlcHJlZiddKTsNCgkJfQ0KCQkNCgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCAoJGlkLCAnc3VibWl0YnV0dG9uJywNCgkJCQkJCQkgJHRoaXMtPkxhbmcgKCdzdWJtaXQnKSkpOwkNCgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdhZGQnLCcnKTsNCgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdkb25lJywnJyk7DQoJfWVsc2V7DQoJDQoJCSRHaWQ9JHBhcmFtc1snR3JvdXB0SUQnXTsNCgkJJEdyb3VwdFNldD0kdGhpcy0+R2V0R3JvdXBOYW1lKCRHaWQpOw0KCQkvLyRHaWQ9JHRoaXMtPkdldEdyb3VwSUQoJEdyb3VwdFNldCk7DQoNCgkJZXh0cmFjdCgkdGhpcy0+R2V0R3JvdXBEYXRhKCRHaWQpKTsNCgkNCgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdHcm91cHRTZXQnLCI8aDE+JEdyb3VwdFNldDwvaDE+Iik7DQoJCQ0KCQlpZigkR3JvdXB0VHlwZT09Jycpew0KCQkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdHcm91cHRUeXBlJywNCgkJCQkkdGhpcy0+Q3JlYXRlSW5wdXRSYWRpb0dyb3VwICgkaWQsICdHcm91cHRUeXBlJywgYXJyYXkoJ0pTJz0+J0pTJywnQ1NTJz0+J0NTUycpLCAkR3JvdXB0VHlwZSwgJycsJycpKTsgDQoJCX1lbHNlew0KCQkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdHcm91cHRUeXBlJywNCgkJCQkvLyR0aGlzLT5DcmVhdGVJbnB1dFJhZGlvR3JvdXAgKCRpZCwgJ0dyb3VwdFR5cGUnLCBhcnJheSgnSlMnPT4nSlMnLCdDU1MnPT4nQ1NTJyksICRHcm91cHRUeXBlLCcgZGlzYWJsZWQ9ImRpc2FibGVkIicsJycpKTsgDQoJCQknPGltZyBzcmM9IickZGlyJy9tb2R1bGVzL1NjcmlwdERlcGxveS9pbWFnZXMvJy4kR3JvdXB0VHlwZS4nLnBuZyIgd2lkdGg9IjM1IiBoZWlnaHQ9IjM1IiBhbHQ9IicuJEdyb3VwdFR5cGUuJyIvPicpOyANCgkJfQ0KDQovLwkJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovDQovLwkJLyotLS1tYWtlLXNjcmlwdC1jaGVja2xpc3QtLSovDQovLwkJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovDQoJCSRhbGxQcm9maWxlcyA9ICR0aGlzLT5nZXRTY3JpcHRzTGlzdCgpOw0KCQkkU2NyaXB0UGlja2VyQXJyYXk9YXJyYXkoKTsNCgkJJHJvd2FycmF5ID0gYXJyYXkoKTsNCgkJJHJvd2FycmF5MiA9IGFycmF5KCk7DQoJCSR0Q291bnQ9MDsNCgkJJGhhc1NjcmlwdHM9ZmFsc2U7DQoJCWZvcmVhY2goJGFsbFByb2ZpbGVzIGFzICRrZXkgPT4gJG9uZVByb2ZpbGUgKXsNCgkJCSRTY3JpcHRTZXQ9ICRvbmVQcm9maWxlWydTY3JpcHRTZXQnXTsNCgkJCSRzY3JpcHRUeXBlPSAkb25lUHJvZmlsZVsnc2NyaXB0VHlwZSddOw0KCQkJaWYoJHNjcmlwdFR5cGU9PSRHcm91cHRUeXBlKXsNCgkJCQlpZiAoISR0aGlzLT5DaGVja1NjcmlwdCgka2V5LCRHaWQpKXsNCgkJCQkJJHRDb3VudD0kdENvdW50KzE7DQoJCQkJCSRyb3cgPSBuZXcgU3RkQ2xhc3MoKTsNCgkJCQkJJHJvdy0+U2NyaXB0bmFtZUxhYmxlID0gJFNjcmlwdFNldDsNCgkJCQkJJHRoaXMtPkZpcmVEZWJ1ZygnbWVzc2FnZScsJ2ZvciBTY3JpcHRJRCAnLiRrZXkuJyBHcm91cHRTZXQ6ICcuJEdyb3VwdFNldCk7Ly88PDw8LS0tLS0tRmlyZSBQSFAgbWVzc2FnZQ0KCQkJCQkkcm93LT5TY3JpcHRpZCA9ICRrZXk7DQoJCQkJCSRyb3ctPlNjcmlwdG5hbWUgPSAkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCAoJGlkLCAnU2NyaXB0UGlja2VyW10nLCAka2V5LCAgJHRoaXMtPkNoZWNrU2NyaXB0KCRrZXksJEdpZCkpOw0KCQkJCQlhcnJheV9wdXNoICgkcm93YXJyYXksICRyb3cpOw0KCQkJCX1lbHNlaWYgKCR0aGlzLT5DaGVja1NjcmlwdCgka2V5LCRHaWQpKXsNCgkJCQkJJHJvdyA9IG5ldyBTdGRDbGFzcygpOw0KCQkJCQkkcm93LT5TY3JpcHRuYW1lTGFibGUgPSAkU2NyaXB0U2V0Ow0KCQkJCQkkcm93LT5TY3JpcHRpZCA9ICRrZXk7DQoJCQkJCSRyb3ctPlNjcmlwdG5hbWUgPSAkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCAoJGlkLCAnU2NyaXB0UGlja2VyW10nLCAka2V5LCAgJHRoaXMtPkNoZWNrU2NyaXB0KCRrZXksJEdpZCkpOw0KCQkJCQlhcnJheV9wdXNoICgkcm93YXJyYXkyLCAkcm93KTsNCgkJCQkJJGhhc1NjcmlwdHM9dHJ1ZTsNCgkJCQl9DQoJCQl9DQoJCX0NCg0KCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ1NjcmlwdG5hbWVNZXNzJywkdGhpcy0+TGFuZyAoJ2FsbFNjcmlwdHNVc2VkJykpOw0KCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2FsbFNjcmlwdHNVc2VkJyxmYWxzZSk7DQoJCWlmKCR0Q291bnQ9PTAmJiEkaGFzU2NyaXB0cyl7DQoJCQkkcm93ID0gbmV3IFN0ZENsYXNzKCk7DQoJCQkkcm93LT5TY3JpcHRuYW1lTWVzcyA9ICR0aGlzLT5MYW5nICgnbm9uZUluVHlwZScpOw0KCQkJJHJvdy0+U2NyaXB0bmFtZSA9ICcnOw0KCQkJYXJyYXlfcHVzaCAoJHJvd2FycmF5LCAkcm93KTsNCgkJCSR0aGlzLT5zbWFydHktPmFzc2lnbignYWxsU2NyaXB0c1VzZWQnLHRydWUpOw0KCQl9ZWxzZWlmICgkdENvdW50PT0wJiYkaGFzU2NyaXB0cyl7DQoJCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2FsbFNjcmlwdHNVc2VkJyx0cnVlKTsNCgkJfQ0KCQkNCgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdTY3JpcHRQaWNrZXInLCAkcm93YXJyYXkpOw0KCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ1NjcmlwdFBpY2tlcmhpZGRlbicsICRyb3dhcnJheTIpOw0KDQoNCgkJJGFsbGRiUHJvZmlsZXMgPSAkdGhpcy0+c2VsZWN0R3JvdXBzTGlzdGluZ3MoJEdpZCk7DQoJCSRyb3dhcnJheSA9IGFycmF5KCk7DQoJCSRyb3djbGFzcyA9ICdyb3cxJzsNCgkJJEdyb3VwdFNpemU9MDsNCgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmb3JtUkVPUkRFUnN0YXJ0JywkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0ICgkaWQsICdzYXZlX2dyb3VwX2Fzc2lnbicsJHJldHVybmlkLCdwb3N0JywnJyxmYWxzZSwgJycsICRwYXJhbXMpKTsNCgkJDQoJCQ0KCQlmb3JlYWNoKCRhbGxkYlByb2ZpbGVzIGFzICRrZXkgPT4gJG9uZWRiUHJvZmlsZSApew0KCQkJDQoJCQkkU2NyaXB0SUQ9ICRrZXk7DQoJCQkkU2NyaXB0U2V0PSAkb25lZGJQcm9maWxlWydTY3JpcHRTZXQnXTsNCgkJCSRzY3JpcHRTaXplPSAkb25lZGJQcm9maWxlWydzY3JpcHRTaXplJ107DQoJCQkkU2NyaXB0T1JERVI9ICRvbmVkYlByb2ZpbGVbJ1NjcmlwdE9SREVSJ107DQoJCQkkdGhpcy0+RmlyZURlYnVnKCdtZXNzYWdlJywnU2NyaXB0SUQgJy4kU2NyaXB0SUQpOy8vPDw8PC0tLS0tLUZpcmUgUEhQIG1lc3NhZ2UNCgkJCSR0aGlzLT5GaXJlRGVidWcoJ21lc3NhZ2UnLCdTY3JpcHRTZXQgJy4kU2NyaXB0U2V0KTsvLzw8PDwtLS0tLS1GaXJlIFBIUCBtZXNzYWdlDQoJCQkkdGhpcy0+RmlyZURlYnVnKCdtZXNzYWdlJywnc2NyaXB0U2l6ZSAnLiRzY3JpcHRTaXplKTsvLzw8PDwtLS0tLS1GaXJlIFBIUCBtZXNzYWdlDQoNCgkJCSRHcm91cHRTaXplKz0kc2NyaXB0U2l6ZTsNCgkJCSRlZGl0YWJsZT0kdGhpcy0+aXNfZWRpdGFibGUoJGtleSk7DQoNCgkJCSRyb3cgPSBuZXcgU3RkQ2xhc3MoKTsNCgkJCWlmKCRlZGl0YWJsZSl7DQoJCQkJJHJvdy0+ZWRpdE1vZGUgPSAnJzsNCgkJCX1lbHNlew0KCQkJCSRyb3ctPmVkaXRNb2RlID0gJ0luRWRpdCc7DQoJCQl9CQ0KCQkJaWYoISRlZGl0YWJsZSl7DQoJCQkkdWlkPSR0aGlzLT5HZXRQcmVmZXJlbmNlKCRrZXkuJy1Mb2NrZWQtRWRpdG9yLVNEJyk7DQoJCQkkdT0kdGhpcy0+Z2V0VXNlckluZm8oJHVpZCk7JHVuYW1lPSR1Wyd1c2VybmFtZSddOw0KCQkJJHJvdy0+bmFtZSA9ICRTY3JpcHRJRDsNCgkJCSRyb3ctPlNjcmlwdGlkID0gJGtleTsNCgkJCQ0KCQkJJHJvdy0+ZGVmYXVsdCA9ICR1bmFtZS4nIGlzIGVkaXRpbmcgJy4kU2NyaXB0U2V0Ow0KCQkJfWVsc2V7DQoJCQkkcm93LT5TY3JpcHRpZCA9ICRrZXk7DQoJCQkkcm93LT5uYW1lID0gJHRoaXMtPkNyZWF0ZUxpbmsoICRpZCwgJ2VkaXRfc2NyaXB0JywgJHJldHVybmlkLA0KCQkJCQkJCSRTY3JpcHRJRCwgYXJyYXkoJ1NjcmlwdFNldCcgPT4gJFNjcmlwdElELA0KCQkJCQkJCQkJJ2FjdGl2ZV90YWInID0+ICRhY3RpdmVfdGFiLA0KCQkJCQkJCQkJJ21vZGUnPT4nZWRpdCcpKTsNCgkJCSRyb3ctPmRlZmF1bHQgPSAkdGhpcy0+Q3JlYXRlTGluayggJGlkLCAnZWRpdF9zY3JpcHQnLCAkcmV0dXJuaWQsDQoJCQkJCQkJJFNjcmlwdFNldCwgYXJyYXkoJ1NjcmlwdFNldCcgPT4gJFNjcmlwdElELA0KCQkJCQkJCQkJJ2FjdGl2ZV90YWInID0+ICRhY3RpdmVfdGFiLA0KCQkJCQkJCQkJJ21vZGUnPT4nZWRpdCcpKTsNCgkJCX0NCgkJCSRyb3ctPnJvd2NsYXNzID0gJHJvd2NsYXNzOw0KCQkJJHJvdy0+c2NyaXB0U2l6ZSA9ICR0aGlzLT5TaXplSXRVcCgkc2NyaXB0U2l6ZSk7DQoJCQkkcm93LT5TY3JpcHRPUkRFUiA9ICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoICRpZCwgJ1NjcmlwdE9SREVSWycuJGtleS4nXScsICRTY3JpcHRPUkRFUiwgMywgMiApOw0KCQkJaWYoJGVkaXRhYmxlKXsNCgkJCSRyb3ctPmVkaXRsaW5rID0gJHRoaXMtPkNyZWF0ZUxpbmsoICRpZCwgJ2VkaXRfc2NyaXB0JywgJHJldHVybmlkLA0KCQkJCQkJCQkkZ0Ntcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPg0KCQkJCQkJCQlEaXNwbGF5SW1hZ2UgKCdpY29ucy9zeXN0ZW0vZWRpdC5naWYnLA0KCQkJCQkJCQkJICAkdGhpcy0+TGFuZyAoJ2VkaXQnKSwgJycsICcnLCAnc3lzdGVtaWNvbicpLA0KCQkJCQkJCQlhcnJheSAoJ1NjcmlwdFNldCcgPT4gJGtleSwNCgkJCQkJCQkJICAgJ2FjdGl2ZV90YWInID0+ICRhY3RpdmVfdGFiLA0KCQkJCQkJCQkgICAnbW9kZSc9PidlZGl0JykpOw0KCQkJfWVsc2V7DQoJCQkJJHJvdy0+ZWRpdGxpbmsgPSAnLS0nOw0KCQkJfQ0KCQkJDQoJCQkkcm93LT5kZWxldGVsaW5rID0gJHRoaXMtPkNyZWF0ZUxpbmsoICRpZCwgJ2RlbGV0ZV9zY3JpcHQnLCAkcmV0dXJuaWQsDQoJCQkJCQkJICAkZ0Ntcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPg0KCQkJCQkJCSAgRGlzcGxheUltYWdlICgnaWNvbnMvc3lzdGVtL2RlbGV0ZS5naWYnLA0KCQkJCQkJCQkJJHRoaXMtPkxhbmcgKCdkZWxldGUnKSwgJycsICcnLCAnc3lzdGVtaWNvbicpLA0KCQkJCQkJCSAgYXJyYXkgKCdTY3JpcHRTZXQnID0+ICRrZXkpLA0KCQkJCQkJCSAgJHRoaXMtPkxhbmcgKCdhcmV5b3VzdXJlJykpOw0KCQkJDQoJCQkNCgkJCWFycmF5X3B1c2ggKCRyb3dhcnJheSwgJHJvdyk7DQoJCQkoJHJvd2NsYXNzID09ICJyb3cxIiA/ICRyb3djbGFzcyA9ICJyb3cyIiA6ICRyb3djbGFzcyA9ICJyb3cxIik7DQoJCQkNCgkJfQ0KDQoJCSR0aGlzLT5zbWFydHktPmFzc2lnbignR3JvdXB0U2l6ZScsICR0aGlzLT5TaXplSXRVcCgkR3JvdXB0U2l6ZSkpOw0KCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ0dyb3VwdFNpemVfbGFiZWwnLCAkdGhpcy0+TGFuZygnR3JvdXB0U2l6ZV9sYWJlbCcpKTsNCgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdTY3JpcHRMaXN0JywgJHJvd2FycmF5ICk7DQoJCQkNCg0KDQoJDQoJDQoJfQ0KCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2FkZCcsJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0ICgkaWQsICdzdWJtaXRidXR0b24nLA0KCQkJCQkJCQkJICR0aGlzLT5MYW5nICgnYWRkJykpKTsNCgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdSRU9SREVSJywkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQgKCRpZCwgJ1JFT1JERVInLCAkdGhpcy0+TGFuZyAoJ1JFT1JERVInKSkpOw0KCS8vJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZScsY21zX2h0bWxfZW50aXR5X2RlY29kZSgkcGFyYW1zWyd0aXRsZSddKSk7DQoJDQoJaWYoJHBhcmFtc1snbW9kZSddPT0nYWRkJyl7DQoJCSR0aGlzLT5zbWFydHktPmFzc2lnbignR3JvdXB0U2V0JywNCgkJCSR0aGlzLT5DcmVhdGVJbnB1dFRleHQoICRpZCwgJ0dyb3VwdFNldCcsICIiLCA0MCwgMjU1LCAnJyApKTsNCgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdHcm91cHRUeXBlJywNCgkJCSR0aGlzLT5DcmVhdGVJbnB1dFJhZGlvR3JvdXAgKCRpZCwgJ0dyb3VwdFR5cGUnLCBhcnJheSgnSlMnPT4nSlMnLCdDU1MnPT4nQ1NTJyksICcnLCcnLCcmbmJzcDsmbmJzcDsmbmJzcDsnKSk7IAkNCgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdTY3JpcHRQaWNrZXInLCcnKTsgIAkNCgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdoaWRkZW5Nb2RlJywNCgkJCSR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdtb2RlJywgJHBhcmFtc1snbW9kZSddICkpOw0KCQlpZihpc3NldCgkcGFyYW1zWydHcm91cHRTZXQnXSkpeyRHaWQ9JHBhcmFtc1snR3JvdXB0U2V0J107fWVsc2V7JEdpZD0nWCc7fSANCgkJCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ1NhdmUnLCR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCAoJGlkLCAnU2F2ZScsIA0KCQkJCQkJCQkJICR0aGlzLT5MYW5nICgnU2F2ZScpKSk7DQoJfQ0KCQ0KCSR0aGlzLT5GaXJlRGVidWcoJ21lc3NhZ2UnLCRwYXJhbXNbJ21vZGUnXSk7Ly88PDw8LS0tLS0tRmlyZSBQSFAgbWVzc2FnZQ0KCSR0aGlzLT5zbWFydHktPmFzc2lnbignaGlkZGVuTW9kZScsDQoJCQkkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnbW9kZScsICRwYXJhbXNbJ21vZGUnXSkNCgkJCS4kdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnR3JvdXB0SUQnLCAkR2lkKQ0KCQkJLiR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdzcF8nLCAkQ01TX1VTRVJfS0VZKQ0KCQkJKTsgDQoJDQoJDQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdncm91cHlUaXRsZScsICR0aGlzLT5MYW5nKCdncm91cHlUaXRsZScpKTsNCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ0dyb3VwdFR5cGVfbGFiZWwnLCAkdGhpcy0+TGFuZygnR3JvdXB0VHlwZV9sYWJlbCcpKTsNCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ0dyb3VwdFNldF9sYWJlbCcsICR0aGlzLT5MYW5nKCdHcm91cHRTZXRfbGFiZWwnKSk7DQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdTY3JpcHRQaWNrZXJfbGFiZWwnLCAkdGhpcy0+TGFuZygnU2NyaXB0UGlja2VyX2xhYmVsJykpOw0KCSR0aGlzLT5zbWFydHktPmFzc2lnbigndHlwZV9sYWJlbCcsICR0aGlzLT5MYW5nKCd0eXBlX2xhYmVsJykpOw0KCSR0aGlzLT5zbWFydHktPmFzc2lnbignTmFtZV9sYWJlbCcsICR0aGlzLT5MYW5nKCdTY3JpcHRTZXRfbGFiZWwnKSk7DQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCduYW1lcHJvbXB0X2xhYmVsJywgJHRoaXMtPkxhbmcoJ3Byb21wdF9uYW1lJykpOw0KCSR0aGlzLT5zbWFydHktPmFzc2lnbignU2NyaXB0TmFtZV9sYWJlbCcsICR0aGlzLT5MYW5nKCdTY3JpcHROYW1lX2xhYmVsJykpOw0KCSR0aGlzLT5zbWFydHktPmFzc2lnbignU2luZ2xlQ29kZV9sYWJlbCcsICR0aGlzLT5MYW5nKCdTaW5nbGVDb2RlX2xhYmVsJykpOy8vJHRoaXMtPkxhbmcoJ3Byb21wdF9kZWZhdWx0JykNCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2Zvcm1fY2FuY2VsJywgJzxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSInLiR0aGlzLT5MYW5nKCdmb3JtX2NhbmNlbCcpLiciIG9uY2xpY2s9ImphdmFzY3JpcHQ6d2luZG93Lmhpc3RvcnkuZ28oLTEpIiAvPicpOwkgIA0KCSR0aGlzLT5zbWFydHktPmFzc2lnbigncHJvbXB0X3RlbXBsYXRlbmFtZScsJHRoaXMtPkxhbmcoJ3Byb21wdF90ZW1wbGF0ZW5hbWUnKSk7DQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfdGVtcGxhdGUnLCR0aGlzLT5MYW5nKCdwcm9tcHRfdGVtcGxhdGUnKSk7DQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0ZW1wbGF0ZScsDQoJJHRoaXMtPkNyZWF0ZVN5bnRheEFyZWEgKCRpZCwgJGNvbnRlbnRzLCAndGVtcGxhdGVjb250ZW50JykpOw0KCQ0KDQoNCg0KCSR0aGlzLT5zbWFydHktPmFzc2lnbignY2FuY2VsJywkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQgKCRpZCwgJ2NhbmNlbCcsIA0KCQkJCQkJCQkgJHRoaXMtPkxhbmcgKCdGaW5pc2gnKSkpOw0KCSR0aGlzLT5zbWFydHktPmFzc2lnbignZm9ybWVuZCcsJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7DQoNCgkNCgkNCgllY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2VkaXRBc3NpZ25tZW50LnRwbCcpOw0KDQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.edit_script.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCi8qKg0KICogTW9kdWxlOiBTY3JpcHREZXBsb3kgLSBNaW5pZnkgYW5kIGRlcGxveW1lbnQgb2YgSlMgQ1NTIGFuZCBIVE1MDQogKiANCiAqIA0KICogQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykNCiAqIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnDQogKiBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvc2NyaXB0ZGVwbG95Lw0KICogDQogKiBAcGFja2FnZSBTY3JpcHREZXBsb3kNCiAqIEBhdXRob3IgamVyZW15QmFzcyA8amVyZW15QmFzc0BjYWJsZW9uZS5uZXQ+DQogKiBAY29weXJpZ2h0IEplcmVteSBCYXNzDQogKiBAbGljZW5zZSBodHRwOi8vd3d3LmdudS5vcmcvY29weWxlZnQvZ3BsLmh0bWwgRnJlZWx5IGF2YWlsYWJsZSB1bmRlciBHUEwNCiAqLyANCg0KCWlmKCEkZ0NtcykgZXhpdCgpOw0KDQoJJGNvbmZpZyA9JiAkZ0Ntcy0+R2V0Q29uZmlnKCk7DQoNCgkkZGlyID0gJGNvbmZpZ1sncm9vdF91cmwnXTsNCgkkQWRtaW5kaXIgPSAkZGlyLicvJy4kY29uZmlnWydhZG1pbl9kaXInXTsNCiRDTVNfVVNFUl9LRVk9Q01TX1NFQ1VSRV9QQVJBTV9OQU1FLic9Jy4kX1NFU1NJT05bQ01TX1VTRVJfS0VZXTsNCg0KaWYoISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBUZW1wbGF0ZXMnKSl7DQogICAgLy8gdG9kbywgcGVybWlzc2lvbnMgbWVzc2FnZSBoZXJlDQogICAgcmV0dXJuOw0KfQ0KDQppZighaXNzZXQoJHBhcmFtc1snYWN0aXZlX3RhYiddKSl7DQokcGFyYW1zWydhY3RpdmVfdGFiJ109J3NjcmlwdF90ZW1wbGF0ZSc7CQ0KfQ0KDQovL2VjaG8gJHRoaXMtPmpzTmNzcygpOw0KZWNobyAnPGRpdiBpZD0iZGVtb3RpcCI+PGltZyBjbGFzcz0icHJvZ3Jlc3MiIHNyYz0iJy4kZGlyLicvbW9kdWxlcy9TY3JpcHREZXBsb3kvaW1hZ2VzL2FqYXgtbG9hZGVyLmdpZiIgYWx0PSIiLz48L2Rpdj4nOw0KJE1lZGlhVHlwZUFycmF5PWFycmF5KA0KCQknYWxsJz0+J2FsbCcsDQoJCSdhdXJhbCc9PidhdXJhbCcsDQoJCSdicmFpbGxlJz0+J2JyYWlsbGUnLA0KCQknaGFuZGhlbGQnPT4naGFuZGhlbGQnLA0KCQkncHJpbnQnPT4ncHJpbnQnLA0KCQknZW1ib3NzZWQnPT4nZW1ib3NzZWQnLA0KCQkncHJvamVjdGlvbic9Pidwcm9qZWN0aW9uJywNCgkJJ3NjcmVlbic9PidzY3JlZW4nLA0KCQknc3BlZWNoJz0+J3NwZWVjaCcsDQoJCSd0dHknPT4ndHR5JywNCgkJJ3R2Jz0+J3R2Jw0KKTsNCg0KLy8gaGFuZGxlIGVycm9ycy4NCmlmKGlzc2V0KCRwYXJhbXNbJ2Vycm9ycyddKSl7DQogICAgZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkcGFyYW1zWydlcnJvcnMnXSk7DQp9DQoNCiRwYXJhbXNbJ29yaWdhY3Rpb24nXSA9ICRwYXJhbXNbJ2FjdGlvbiddOw0KJGNvbnRlbnRzID0gIiI7DQokc2NyaXB0c19uYW1lPScnOw0KICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignZm9ybXN0YXJ0JywNCgkJCSAgICAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0ICgkaWQsICdzYXZlX1NjcmlwdF9TZXR1cCcsJHJldHVybmlkLCdwb3N0JywnJywNCgkJCQkJCSAgICBmYWxzZSwgJycsICRwYXJhbXMpKTsNCiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2hpZGRlbicsDQoJCQkgICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdtb2RlJywgJHBhcmFtc1snbW9kZSddICkNCgkJCSAgLiR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdQcm9jY2Vzc2luZycsICR0aGlzLT5MYW5nKCdQcm9jY2Vzc2luZycpKQ0KCQkJICAuJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ1NhdmVkJywgJHRoaXMtPkxhbmcoJ1NhdmVkJykpDQoJCQkgIC4kdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnRG9uZScsICR0aGlzLT5MYW5nKCdEb25lJykpDQoJCQkgIC4kdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnVmFsaWRhdGluZycsICR0aGlzLT5MYW5nKCdWYWxpZGF0aW5nJykgKQ0KCQkJICApOw0KDQoNCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ25vdGVkJywnJyk7DQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdFX2lucHV0JywnJyk7DQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdXX2lucHV0JywnJyk7DQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdWQWxlZCcsJycpOw0KCSR0aGlzLT5zbWFydHktPmFzc2lnbigncmVwb3J0YmFyJywnJyk7DQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdyZXBvcnQnLCcnKTsNCg0KaWYoJHBhcmFtc1snbW9kZSddPT0nYWRkJyl7DQogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmb3Jtc3RhcnQnLA0KCQkJICAgICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQgKCRpZCwgJ3NhdmVfU2NyaXB0X1NldHVwJywkcmV0dXJuaWQsJ3Bvc3QnLCcnLGZhbHNlLCAnJywgJHBhcmFtcykpOw0KICAgICR0aGlzLT5zbWFydHktPmFzc2lnbigndGVtcGxhdGVuYW1lJywNCgkJCSAgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCggJGlkLCAndGVtcGxhdGUnLCAiIiwgNDAgKSk7DQoNCiAgICBpZiggaXNzZXQoJHBhcmFtc1snZGVmYXVsdHRlbXBsYXRlcHJlZiddKSAmJiAkcGFyYW1zWydkZWZhdWx0dGVtcGxhdGVwcmVmJ10gIT0gJycgKXsNCgkJJGNvbnRlbnRzID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJHBhcmFtc1snZGVmYXVsdHRlbXBsYXRlcHJlZiddKTsNCiAgICAgfQ0KCSAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ01lZGlhVHlwZV9sYWJlbCcsICR0aGlzLT5MYW5nKCdNZWRpYVR5cGVfbGFiZWwnKSk7IA0KICB9ZWxzZXsNCgkkc0lEPSRwYXJhbXNbJ1NjcmlwdFNldCddOw0KCSRob3RMaW5rQ2hlY2sgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaG90TGlua0NoZWNrJywxKTsNCg0KCWV4dHJhY3QoJHRoaXMtPmdldFNjcmlwdEZ1bGwoJHNJRCkpOw0KCSRzY3JpcHRzX25hbWU9JFNjcmlwdFNldDsNCgkkVHVybk9OVmFsPSR0aGlzLT5HZXRQcmVmZXJlbmNlKCdUdXJuT05WYWwnLDEpOw0KCQ0KCSR0aGlzLT5zbWFydHktPmFzc2lnbignU2NyaXB0SXNfaW5wdXQnLCAkdGhpcy0+Q3JlYXRlVGV4dEFyZWEoMCwkaWQsICRTY3JpcHRJcywgJ1NjcmlwdElzX2lucHV0JywgJycsJ1NJQScsJycsJycsJzgwJywnMjAnLCcnLCcnLCcgc3R5bGU9ImhlaWdodDogNjAwcHg7IHdpZHRoOiAxMDAlOyIgJykpOyANCgkNCg0KCWlmKCRUdXJuT05WYWwpeyANCgkJc2RWYWw6OnZhbF9JdCgkc2NyaXB0VHlwZSwkc0lEKTsNCgl9DQoJCQ0KCSR0aGlzLT5zbWFydHktPmFzc2lnbignc2NyaXB0VHlwZUpTJywnPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPiBzeW50YXhfaXM9Iicuc3RydG9sb3dlcigkc2NyaXB0VHlwZSkuJyI7PC9zY3JpcHQ+Jyk7DQoJJEdyb3VwSW5mbz0kdGhpcy0+R2V0U2NyaXB0R3JvdXBJbmZvKCRzSUQpOw0KCQlpZigkR3JvdXBJbmZvIT1mYWxzZSYmJEdyb3VwSW5mb1swXSE9Jycpew0KCQkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzY3JpcHRzR3JvdXBOdW1iZXInLCRHcm91cEluZm9bMF0pOwkNCgkJCQ0KCQkJJEdsaW5rcz0nJzsNCgkJCQlmb3JlYWNoKGV4cGxvZGUoJywnLCRHcm91cEluZm9bMV0pIGFzICRrZXk9PiRHbmFtZSl7DQoJCQkJCSRHbGlua3MuPSAnICcuJHRoaXMtPkNyZWF0ZUxpbmsoICRpZCwgJ2VkaXRhc3NpZ25tZW50JywgJHJldHVybmlkLCAkR25hbWUsIGFycmF5ICgnR3JvdXB0SUQnID0+ICR0aGlzLT5HZXRHcm91cElEKCRHbmFtZSksDQoJCQkJCQkJCQkJICAgJ2FjdGl2ZV90YWInID0+ICRwYXJhbXNbJ2FjdGl2ZV90YWInXSwNCgkJCQkJCQkJCQkgICAnbW9kZSc9PidlZGl0JykpLicsJzsNCgkJCQl9DQoJCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3NjcmlwdHNHcm91cCcsclRyaW0oJEdsaW5rcywnLCcpLicgJyk7DQoJCX1lbHNlew0KCQkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzY3JpcHRzR3JvdXBOdW1iZXInLCcwJyk7CQ0KCQkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzY3JpcHRzR3JvdXAnLCdub25lJyk7DQoJCX0NCg0KCQlpZigkc2NyaXB0VHlwZT09J0NTUycpewkNCg0KCQkJJHU9JHRoaXMtPmdldFVzZXJJbmZvKCk7DQoJCQkkdUlEPSR1WydVc2VyaWQnXTsNCgkJCWVjaG8gJzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij5VSUQ9Jy4kdVsnVXNlcmlkJ10uJztTSUQ9Jy4kc0lELic7JChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXtyZXBvcnRFZGl0U3RhdHVzKCcuJHNJRC4nLCcuJHVJRC4nKTt9KTs8L3NjcmlwdD4nOw0KCQkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdyZXBvcnQnLCcnKTsNCgkJCSRiYXI9JzxhIGhyZWY9IiNvcCIgaWQ9InNjcmlwdE9QIj4nLiR0aGlzLT5MYW5nKCdzY2lwdG9wdGlvbnMnKS4nPC9hPiAgfCAgPGEgaHJlZj0iI2hlbHAiIGlkPSJzY3JpcHRIZWxwIj4nLiR0aGlzLT5MYW5nKCdpbmxpbmVoZWxwJykuJzwvYT4nOwkNCgkJCSR0aGlzLT5zbWFydHktPmFzc2lnbignb3B0aW9uYmFyJywkYmFyKTsJCQkNCgkJCSRiYXI9JzxhIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKSIgY2xhc3M9InBvcHVwIEVVUkxTIj4nLiR0aGlzLT5MYW5nKCdFVVJMUycpLic8L2E+ICB8ICA8YSBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCkiIGNsYXNzPSJwb3B1cCBSQ1NTIj4nLiR0aGlzLT5MYW5nKCdSQ1NTJykuJzwvYT4gIHwgIDxhIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKSIgY2xhc3M9InBvcHVwIEZDT05UIj4nLiR0aGlzLT5MYW5nKCdGQ09OVCcpLic8L2E+ICB8ICA8YSBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCkiIGNsYXNzPSJwb3B1cCBTQ1NTIj4nLiR0aGlzLT5MYW5nKCdTQ1NTJykuJzwvYT4nOwkJDQoJCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3JlcG9ydGJhcicsJGJhcik7DQoJCX0NCgkJDQoNCg0KCQlpZigkc2NyaXB0VHlwZT09J0NTUycpewkNCgkJCSR0aGlzLT5zbWFydHktPmFzc2lnbignTWVkaWFUeXBlX2xhYmVsJywgJHRoaXMtPkxhbmcoJ01lZGlhVHlwZV9sYWJlbCcpKTsgDQoJCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ01lZGlhVHlwZV9pbnB1dCcsDQoJCQkJICAkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICdNZWRpYVR5cGVfaW5wdXQnLCAkTWVkaWFUeXBlQXJyYXksICcnLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgkc0lELictTWVkaWFUeXBlLVNEJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgndXNlcm1lZGl1bScsJ0FsbCcpICkgKQ0KCQkJCSAgKTsNCgkJfQ0KCQ0KCSR0aGlzLT5zbWFydHktPmFzc2lnbignU2NyaXB0U2V0X2lucHV0JywNCgkJCSAgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCggJGlkLCAnU2NyaXB0U2V0X2lucHV0JywgJFNjcmlwdFNldCwgNDAsIDI1NSApKTsNCgkJCSAgDQogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdNaW5pZnlfaW5wdXQnLA0KCQkJICR0aGlzLT5DcmVhdGVJbnB1dFJhZGlvR3JvdXAgKCRpZCwgJ01pbmlmeV9pbnB1dCcsIGFycmF5KCdObyc9PicwJywnWWVzJz0+JzEnKSwgJHRoaXMtPkdldFByZWZlcmVuY2UoJHNJRC4nLU1pbmlmeS1TRCcsJzEnKSwnJywnJm5ic3A7Jm5ic3A7Jm5ic3A7JykpOw0KCQ0KCSR0aGlzLT5zbWFydHktPmFzc2lnbignVXNlUGF0aE9wdGlvbl9pbnB1dCcsDQoJCQkJJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3ggKCRpZCwnVXNlUGF0aE9wdGlvbl9pbnB1dCcsICAnMScsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCRzSUQuJy1QYXRoT3AtU0QnLCcwJykpICk7ICANCgkNCgkvL3Jvb3QgdXJsIGxvZ2ljDQoJJHJvb3RVUkw9JHRoaXMtPkdldFByZWZlcmVuY2UoJHNJRC4nLXJvb3RVUkwtU0QnLCcnKTsNCglpZigkcm9vdFVSTD09JycpeyRyb290VVJMY2s9MDt9ZWxzZXskcm9vdFVSTGNrPTE7fQ0KCSR0aGlzLT5zbWFydHktPmFzc2lnbigncm9vdFVSTE9wdGlvbl9pbnB1dCcsDQoJCQkJJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3ggKCRpZCwncm9vdFVSTE9wdGlvbl9pbnB1dCcsICAnMScsICRyb290VVJMY2spICk7ICANCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3Jvb3RVUkxfaW5wdXQnLA0KCQkJJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCggJGlkLCAncm9vdFVSTF9pbnB1dCcsICAkcm9vdFVSTCwgNDAgKSk7DQoJDQoJDQogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdwYXRoT3B0aW9uX2lucHV0JywNCgkJCSAgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCggJGlkLCAncGF0aE9wdGlvbl9pbnB1dCcsICRwYXRoT3B0aW9uLCA0MCApKTsgIA0KCSR0aGlzLT5zbWFydHktPmFzc2lnbignbm90ZXNfaW5wdXQnLCAkdGhpcy0+Q3JlYXRlVGV4dEFyZWEoMCwgJGlkLCBzZF9sb2dnaW46OkdldF9Ob3Rlcygkc0lEKSwgJ25vdGVzX2lucHV0JywnJywnTk9URVMnLCcnLCcnLCcnLDEwKSk7DQoNCiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3NjcmlwdFR5cGVfaW5wdXQnLA0KCQkJICR0aGlzLT5DcmVhdGVJbnB1dFJhZGlvR3JvdXAgKCRpZCwgJ3NjcmlwdFR5cGVfaW5wdXQnLCBhcnJheSgnSlMnPT4nSlMnLCdDU1MnPT4nQ1NTJyksICRzY3JpcHRUeXBlLCcnLCcmbmJzcDsmbmJzcDsmbmJzcDsnKSk7IAkNCiAgIH0NCg0KLy8kdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlJyxjbXNfaHRtbF9lbnRpdHlfZGVjb2RlKCRwYXJhbXNbJ3RpdGxlJ10pKTsNCmlmKCAkcGFyYW1zWydtb2RlJ10gPT0gJ2FkZCcgKXsNCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ01lZGlhVHlwZV9pbnB1dCcsDQoJCQkkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICdNZWRpYVR5cGVfaW5wdXQnLCAkTWVkaWFUeXBlQXJyYXksICcnLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgndXNlcm1lZGl1bScsJ0FsbCcpKSk7IA0KICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignU2NyaXB0U2V0X2lucHV0JywNCgkJCSR0aGlzLT5DcmVhdGVJbnB1dFRleHQoICRpZCwgJ1NjcmlwdFNldF9pbnB1dCcsICIiLCA0MCwgMjU1LCAnJyApKTsNCiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ01pbmlmeV9pbnB1dCcsDQoJCQkkdGhpcy0+Q3JlYXRlSW5wdXRSYWRpb0dyb3VwICgkaWQsICdNaW5pZnlfaW5wdXQnLCBhcnJheSgnTm8nPT4nMCcsJ1llcyc9PicxJyksICcxJywnJywnJm5ic3A7Jm5ic3A7Jm5ic3A7JykpOyAJCQ0KCSR0aGlzLT5zbWFydHktPmFzc2lnbigncGF0aE9wdGlvbl9pbnB1dCcsDQoJCQkkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCAkaWQsICdwYXRoT3B0aW9uX2lucHV0JywgIiIsIDQwICkpOw0KCSR0aGlzLT5zbWFydHktPmFzc2lnbignbm90ZXNfaW5wdXQnLCR0aGlzLT5DcmVhdGVUZXh0QXJlYSAoMCwgJGlkLCAnJywgJ25vdGVzX2lucHV0JywnJywnTk9URVMnLCcnLCcnLCcnLDEwKSk7DQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdTY3JpcHRJc19pbnB1dCcsICR0aGlzLT5DcmVhdGVUZXh0QXJlYSgwLCRpZCwgJycsICdTY3JpcHRJc19pbnB1dCcsICcnLCdTSUEnLCcnLCcnLCc4MCcsJzIwJywnJywnJywnIHN0eWxlPSJoZWlnaHQ6NjAwcHg7IHdpZHRoOiAxMDAlOyIgJykpOyANCiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3NjcmlwdFR5cGVfaW5wdXQnLA0KCQkJJHRoaXMtPkNyZWF0ZUlucHV0UmFkaW9Hcm91cCgkaWQsICdzY3JpcHRUeXBlX2lucHV0JywgYXJyYXkoJ0pTJz0+J0pTJywnQ1NTJz0+J0NTUycpLCAnSlMnLCcnLCcmbmJzcDsmbmJzcDsmbmJzcDsnKSk7IAkJDQogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdDU1NtZWRpYV9pbnB1dCcsDQoJCQkkdGhpcy0+Q3JlYXRlSW5wdXRSYWRpb0dyb3VwKCRpZCwgJ0NTU21lZGlhX2lucHV0JywgYXJyYXkoJ0pTJz0+J0pTJywnQ1NTJz0+J0NTUycpLCAnSlMnLCcnLCcmbmJzcDsmbmJzcDsmbmJzcDsnKSk7DQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdoaWRkZW5Nb2RlJywNCgkJCSR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdtb2RlJywgJHBhcmFtc1snbW9kZSddICkpOyAgDQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdVc2VQYXRoT3B0aW9uX2lucHV0JywNCgkJCSR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94ICgkaWQsJ1VzZVBhdGhPcHRpb25faW5wdXQnLCAxLCAwKSApOyANCgkNCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3Jvb3RVUkxPcHRpb25faW5wdXQnLA0KCQkJCSR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94ICgkaWQsJ3Jvb3RVUkxPcHRpb25faW5wdXQnLCAgJzEnLCAwKSk7ICANCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3Jvb3RVUkxfaW5wdXQnLA0KCQkJJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCggJGlkLCAncm9vdFVSTF9pbnB1dCcsICIiLCA0MCApKTsNCgkNCn0NCg0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzY3JpcHRzX25hbWUnLCRzY3JpcHRzX25hbWUpOw0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdtb2RlJywgJHBhcmFtc1snbW9kZSddICk7ICANCiR0aGlzLT5GaXJlRGVidWcoJ21lc3NhZ2UnLCRwYXJhbXNbJ21vZGUnXSk7Ly88PDw8LS0tLS0tRmlyZSBQSFAgbWVzc2FnZQ0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdoaWRkZW5Nb2RlJywgDQoJCQkJCSAgJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ21vZGUnLCAkcGFyYW1zWydtb2RlJ10pDQoJCQkJCSAgLiR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdzcF8nLCAkQ01TX1VTRVJfS0VZKQ0KCQkJCQkgICk7DQoJCQ0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzbWFydHlIb3dfbGFiZWwnLCAkdGhpcy0+TGFuZygnc21hcnR5SG93JykpOyANCiR0aGlzLT5zbWFydHktPmFzc2lnbignc2NyaXB0VHlwZV9sYWJlbCcsICR0aGlzLT5MYW5nKCdzY3JpcHRUeXBlX2xhYmVsJykpOyANCiR0aGlzLT5zbWFydHktPmFzc2lnbignU2NyaXB0TmFtZV9sYWJlbCcsICR0aGlzLT5MYW5nKCdTY3JpcHROYW1lX2xhYmVsJykpOyANCiR0aGlzLT5zbWFydHktPmFzc2lnbignTWluaWZ5X2xhYmVsJywgJHRoaXMtPkxhbmcoJ01pbmlmeV9sYWJlbCcpKTsgCQkgIA0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdwYXRoT3B0aW9uX2xhYmVsJywgJHRoaXMtPkxhbmcoJ3BhdGhPcHRpb25fbGFiZWwnKSk7IA0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdyb290VVJMT3B0aW9uX2xhYmVsJywgJHRoaXMtPkxhbmcoJ3Jvb3RVUkxPcHRpb25fbGFiZWwnKSk7IA0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdTY3JpcHRJc19sYWJlbCcsICR0aGlzLT5MYW5nKCdTY3JpcHRJc19sYWJlbCcpKTsNCiR0aGlzLT5zbWFydHktPmFzc2lnbignbm90ZXNfbGFiZWwnLCAkdGhpcy0+TGFuZygnbm90ZXNfbGFiZWwnKSk7DQoNCiR0aGlzLT5zbWFydHktPmFzc2lnbignZmlsdGVyUHJvcCcsJHRoaXMtPkdldFByZWZlcmVuY2UoJ2ZpbHRlclByb3AnLCAnJykpOw0KDQokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2Zvcm1fY2FuY2VsJywgJzxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSInLiR0aGlzLT5MYW5nKCdmb3JtX2NhbmNlbCcpLiciIG9uY2xpY2s9ImphdmFzY3JpcHQ6d2luZG93Lmhpc3RvcnkuZ28oLTEpIiAvPicpOwkgIA0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfdGVtcGxhdGVuYW1lJywkdGhpcy0+TGFuZygncHJvbXB0X3RlbXBsYXRlbmFtZScpKTsNCiR0aGlzLT5zbWFydHktPmFzc2lnbigncHJvbXB0X3RlbXBsYXRlJywkdGhpcy0+TGFuZygncHJvbXB0X3RlbXBsYXRlJykpOw0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0ZW1wbGF0ZScsICR0aGlzLT5DcmVhdGVTeW50YXhBcmVhICgkaWQsICRjb250ZW50cywgJ3RlbXBsYXRlY29udGVudCcpKTsNCgkJCSAgDQoJCSAgDQokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3N1Ym1pdCcsJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0ICgkaWQsICdzdWJtaXRidXR0b24nLCAkdGhpcy0+TGFuZyAoJ3N1Ym1pdCcpKSk7DQokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2NhbmNlbCcsJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0ICgkaWQsICdjYW5jZWwnLCAkdGhpcy0+TGFuZyAoJ2NhbmNlbCcpKSk7DQokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2FwcGx5JywkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQgKCRpZCwgJ2FwcGx5JywgJHRoaXMtPkxhbmcgKCdhcHBseScpKSk7DQokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3JldmVydCcsJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0ICgkaWQsICdyZXZlcnQnLCAgJHRoaXMtPkxhbmcgKCdyZXZlcnQnKSkpOw0KDQoNCiR0aGlzLT5zbWFydHktPmFzc2lnbignZm9ybWVuZCcsJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7DQoNCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnZWRpdF9zY3JpcHQudHBsJyk7DQoNCj8+]]></data>
	</file>
	<file>
	  <filename>/action.edit_template.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiNDTVMgLSBDTVMgTWFkZSBTaW1wbGUNCiMoYykyMDA0IGJ5IFRlZCBLdWxwICh3aXNoeUB1c2Vycy5zZi5uZXQpDQojVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9jbXNtYWRlc2ltcGxlLnNmLm5ldA0KIw0KI1RoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkNCiN0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcg0KIyhhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsDQojYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YNCiNNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4NCiNZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KI2Fsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgIFVTQQ0KIw0KIyRJZDogZWRpdHRlbXBsYXRlLnBocCA1MTgwIDIwMDgtMTAtMjkgMTg6MjU6MjdaIGNhbGd1eTEwMDAgJA0KDQppZighJGdDbXMpIGV4aXQoKTsNCiRDTVNfVVNFUl9LRVk9Q01TX1NFQ1VSRV9QQVJBTV9OQU1FLic9Jy4kX1NFU1NJT05bQ01TX1VTRVJfS0VZXTsNCg0KaWYoISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBUZW1wbGF0ZXMnKSl7DQogICAgLy8gdG9kbywgcGVybWlzc2lvbnMgbWVzc2FnZSBoZXJlDQogICAgcmV0dXJuOw0KfQ0KJGNvbmZpZyA9JiAkZ0Ntcy0+R2V0Q29uZmlnKCk7IA0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzY3JpcHRUeXBlSlMnLCc8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+IHN5bnRheF9pcz0iaHRtbCI7PC9zY3JpcHQ+Jyk7DQokdGVtcGxhdGVvcHMgPSYgJGdDbXMtPkdldFRlbXBsYXRlT3BlcmF0aW9ucygpOw0KaWYoIWlzc2V0KCRwYXJhbXNbJ2FjdGl2ZV90YWInXSkpew0KJHBhcmFtc1snYWN0aXZlX3RhYiddPSd0ZW1wbGF0ZV9tYW5nJzsJDQp9DQokdGVtcGxhdGVfaWQgPSAtMTsNCmlmIChpc3NldCgkcGFyYW1zWyJ0ZW1wbGF0ZV9pZCJdKSkgJHRlbXBsYXRlX2lkID0gJHBhcmFtc1sidGVtcGxhdGVfaWQiXTsNCg0KJHByZXZpZXcgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgncHJldmlldycsdHJ1ZSk7DQovL2VjaG8gJHRoaXMtPmpzTmNzcygpOw0KZWNobyAnPGRpdiBpZD0iZGVtb3RpcCI+PGltZyBjbGFzcz0icHJvZ3Jlc3MiIHNyYz0iLi4vbW9kdWxlcy9TY3JpcHREZXBsb3kvaW1hZ2VzL2FqYXgtbG9hZGVyLmdpZiIgYWx0PSIiLz48L2Rpdj4nOw0KDQoNCi8vIGhhbmRsZSBlcnJvcnMuDQppZihpc3NldCgkcGFyYW1zWydlcnJvcnMnXSkpew0KICAgIGVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHBhcmFtc1snZXJyb3JzJ10pOw0KfQ0KDQokcGFyYW1zWydvcmlnYWN0aW9uJ10gPSAkcGFyYW1zWydhY3Rpb24nXTsNCiRjb250ZW50cyA9ICIiOw0KJHNjcmlwdHNfbmFtZT0nJzsNCiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2Zvcm1zdGFydCcsDQoJCQkgICAgJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCAoJGlkLCAnc2F2ZV9TY3JpcHRfU2V0dXAnLCRyZXR1cm5pZCwncG9zdCcsJycsDQoJCQkJCQkgICAgZmFsc2UsICcnLCAkcGFyYW1zKSk7DQogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdoaWRkZW4nLA0KCQkJICAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnbW9kZScsICRwYXJhbXNbJ21vZGUnXSApDQoJCQkgIC4kdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnUHJvY2Nlc3NpbmcnLCAkdGhpcy0+TGFuZygnUHJvY2Nlc3NpbmcnKSkNCgkJCSAgLiR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdTYXZlZCcsICR0aGlzLT5MYW5nKCdTYXZlZCcpKQ0KCQkJICAuJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ0RvbmUnLCAkdGhpcy0+TGFuZygnRG9uZScpKQ0KCQkJICAuJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ1ZhbGlkYXRpbmcnLCAkdGhpcy0+TGFuZygnVmFsaWRhdGluZycpICkNCgkJCSAgKTsNCg0KDQoJaWYgKGlzc2V0KCRfUE9TVFsiZWRpdHRlbXBsYXRlIl0pKXsNCgkJJHZhbGlkaW5mbyA9IHRydWU7DQoJCWlmICgkdGVtcGxhdGUgPT0gIiIpew0KCQkJJGVycm9yIC49ICI8bGk+Ii5sYW5nKCdub2ZpZWxkZ2l2ZW4nLCBhcnJheShsYW5nKCduYW1lJykpKS4iPC9saT4iOw0KCQkJJHZhbGlkaW5mbyA9IGZhbHNlOw0KCQl9DQoJCWVsc2UgaWYgKCR0ZW1wbGF0ZW9wcy0+Q2hlY2tFeGlzdGluZ1RlbXBsYXRlTmFtZSgkdGVtcGxhdGUsICR0ZW1wbGF0ZV9pZCkpew0KCQkJJGVycm9yIC49ICI8bGk+Ii5sYW5nKCd0ZW1wbGF0ZWV4aXN0cycpLiI8L2xpPiI7DQoJCQkkdmFsaWRpbmZvID0gZmFsc2U7DQoJCX0NCgkJaWYgKCRjb250ZW50ID09ICIiKXsNCgkJCSRlcnJvciAuPSAiPGxpPiIubGFuZygnbm9maWVsZGdpdmVuJywgYXJyYXkobGFuZygnY29udGVudCcpKSkuIjwvbGk+IjsNCgkJCSR2YWxpZGluZm8gPSBmYWxzZTsNCgkJfQ0KDQoJCWlmICgkdmFsaWRpbmZvKXsNCgkJCSRvbmV0ZW1wbGF0ZSA9ICR0ZW1wbGF0ZW9wcy0+TG9hZFRlbXBsYXRlQnlJRCgkdGVtcGxhdGVfaWQpOw0KCQkJJG9uZXRlbXBsYXRlLT5uYW1lID0gJHRlbXBsYXRlOw0KCQkJJG9uZXRlbXBsYXRlLT5jb250ZW50ID0gJGNvbnRlbnQ7DQoJCQkkb25ldGVtcGxhdGUtPnN0eWxlc2hlZXQgPSAkc3R5bGVzaGVldDsNCgkJCSRvbmV0ZW1wbGF0ZS0+ZW5jb2RpbmcgPSAkZW5jb2Rpbmc7DQoJCQkkb25ldGVtcGxhdGUtPmFjdGl2ZSA9ICRhY3RpdmU7DQoNCgkJCSNQZXJmb3JtIHRoZSBlZGl0dGVtcGxhdGVfcHJlIGNhbGxiYWNrDQoJCQlmb3JlYWNoKCRnQ21zLT5tb2R1bGVzIGFzICRrZXk9PiR2YWx1ZSl7DQoJCQkJaWYgKCRnQ21zLT5tb2R1bGVzWyRrZXldWydpbnN0YWxsZWQnXSA9PSB0cnVlICYmDQoJCQkJCSRnQ21zLT5tb2R1bGVzWyRrZXldWydhY3RpdmUnXSA9PSB0cnVlKXsNCgkJCQkJJGdDbXMtPm1vZHVsZXNbJGtleV1bJ29iamVjdCddLT5FZGl0VGVtcGxhdGVQcmUoJG9uZXRlbXBsYXRlKTsNCgkJCQl9DQoJCQl9DQoJCQkNCgkJCUV2ZW50czo6U2VuZEV2ZW50KCdDb3JlJywgJ0VkaXRUZW1wbGF0ZVByZScsIGFycmF5KCd0ZW1wbGF0ZScgPT4gJiRvbmV0ZW1wbGF0ZSkpOw0KDQoJCQkkcmVzdWx0ID0gJG9uZXRlbXBsYXRlLT5TYXZlKCk7DQoNCgkJCWlmICgkcmVzdWx0KXsNCgkJCQkjTWFrZSBzdXJlIHRoZSBuZXcgbmFtZSBpcyB1c2VkIGlmIHRoaXMgaXMgYW4gYXBwbHkNCgkJCQkkb3JpZ190ZW1wbGF0ZSA9ICR0ZW1wbGF0ZTsNCg0KCQkJCSNQZXJmb3JtIHRoZSBlZGl0dGVtcGxhdGVfcG9zdCBjYWxsYmFjaw0KCQkJCWZvcmVhY2goJGdDbXMtPm1vZHVsZXMgYXMgJGtleT0+JHZhbHVlKXsNCgkJCQkJaWYgKCRnQ21zLT5tb2R1bGVzWyRrZXldWydpbnN0YWxsZWQnXSA9PSB0cnVlICYmICRnQ21zLT5tb2R1bGVzWyRrZXldWydhY3RpdmUnXSA9PSB0cnVlKXsNCgkJCQkJCSRnQ21zLT5tb2R1bGVzWyRrZXldWydvYmplY3QnXS0+RWRpdFRlbXBsYXRlUG9zdCgkb25ldGVtcGxhdGUpOw0KCQkJCQl9DQoJCQkJfQ0KCQkJCQ0KCQkJCUV2ZW50czo6U2VuZEV2ZW50KCdDb3JlJywgJ0VkaXRUZW1wbGF0ZVBvc3QnLCBhcnJheSgndGVtcGxhdGUnID0+ICYkb25ldGVtcGxhdGUpKTsNCg0KCQkJCWF1ZGl0KCR0ZW1wbGF0ZV9pZCwgJG9uZXRlbXBsYXRlLT5uYW1lLCAnRWRpdGVkIFRlbXBsYXRlJyk7DQoJCQkJaWYgKCEkYXBwbHkpew0KCQkJCSAgc3dpdGNoKCRmcm9tKXsNCgkJCQkgICAgY2FzZSAnY29udGVudCc6DQoJCQkJICAgICAgcmVkaXJlY3QoImxpc3Rjb250ZW50LnBocCIuJHVybGV4dCk7DQoJCQkJICAgICAgYnJlYWs7DQoJCQkJICAgIGNhc2UgJ2Nzc2Fzc29jJzoNCgkJCQkgICAgICByZWRpcmVjdCgndGVtcGxhdGVjc3MucGhwJy4kdXJsZXh0LicmaWQ9Jy4kY3NzaWQuJyZ0eXBlPXRlbXBsYXRlJyk7DQoJCQkJICAgICAgYnJlYWs7DQoJCQkJICAgIGNhc2UgJ21vZHVsZV9UZW1wbGF0ZU1hbmFnZXInOg0KCQkJCSAgICAgIHJlZGlyZWN0KCdtb2R1bGVpbnRlcmZhY2UucGhwJy4kdXJsZXh0LicmbW9kdWxlPVRlbXBsYXRlTWFuYWdlcicpOw0KCQkJCSAgICAgIGJyZWFrOw0KCQkJCSAgICBkZWZhdWx0Og0KCQkJCSAgICAgIHJlZGlyZWN0KCJsaXN0dGVtcGxhdGVzLnBocCIuJHVybGV4dCk7DQoJCQkJICAgICAgYnJlYWs7DQoJCQkJICAgIH0NCgkJCQl9DQoJCQl9ZWxzZXsNCgkJCQkkZXJyb3IgLj0gIjxsaT4iLmxhbmcoJ2Vycm9ydXBkYXRpbmd0ZW1wbGF0ZScpLiI8L2xpPiI7DQoJCQl9DQoJCX0NCg0KCQlpZiAoJGFqYXgpew0KCQkJaGVhZGVyKCdDb250ZW50LVR5cGU6IHRleHQveG1sJyk7DQoJCQlwcmludCAnPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4nOw0KCQkJcHJpbnQgJzxFZGl0VGVtcGxhdGU+JzsNCgkJCWlmICgkZXJyb3Ipew0KCQkJCXByaW50ICc8UmVzcG9uc2U+RXJyb3I8L1Jlc3BvbnNlPic7DQoJCQkJcHJpbnQgJzxEZXRhaWxzPjwhW0NEQVRBWycgLiAkZXJyb3IgLiAnXV0+PC9EZXRhaWxzPic7DQoJCQl9ZWxzZXsNCgkJCQlwcmludCAnPFJlc3BvbnNlPlN1Y2Nlc3M8L1Jlc3BvbnNlPic7DQoJCQkJcHJpbnQgJzxEZXRhaWxzPjwhW0NEQVRBWycgLiBsYW5nKCdlZGl0dGVtcGxhdGVzdWNjZXNzJykgLiAnXV0+PC9EZXRhaWxzPic7DQoJCQl9DQoJCQlwcmludCAnPC9FZGl0VGVtcGxhdGU+JzsNCgkJCWV4aXQ7DQoJCX0NCgl9ZWxzZSBpZiAoJHRlbXBsYXRlX2lkICE9IC0xKXsNCgkJJG9uZXRlbXBsYXRlID0gJHRlbXBsYXRlb3BzLT5Mb2FkVGVtcGxhdGVCeUlEKCR0ZW1wbGF0ZV9pZCk7DQoJCSR0ZW1wbGF0ZSA9ICRvbmV0ZW1wbGF0ZS0+bmFtZTsNCgkJJG9yaWdfdGVtcGxhdGUgPSAkb25ldGVtcGxhdGUtPm5hbWU7DQoJCSRjb250ZW50ID0gJG9uZXRlbXBsYXRlLT5jb250ZW50Ow0KCQkkc3R5bGVzaGVldCA9ICRvbmV0ZW1wbGF0ZS0+c3R5bGVzaGVldDsNCgkJJGVuY29kaW5nID0gJG9uZXRlbXBsYXRlLT5lbmNvZGluZzsNCgkJJGRlZmF1bHQgPSAkb25ldGVtcGxhdGUtPmRlZmF1bHQ7DQoJCSRhY3RpdmUgPSAkb25ldGVtcGxhdGUtPmFjdGl2ZTsNCgkJJGxhc3RlZGl0ZWQgPSAkb25ldGVtcGxhdGUtPm1vZGlmaWVkX2RhdGU7DQoJfQ0KDQoNCg0KCSR0aGlzLT5zbWFydHktPmFzc2lnbigndGVtcGxhdGVfcHJldmlldycsJycpOw0KCWlmICgkcHJldmlldyl7DQoJCSRkYXRhWyJ0aXRsZSJdID0gIlRJVExFIEhFUkUiOw0KCQkkZGF0YVsiY29udGVudCJdID0gIlRlc3QgQ29udGVudCI7DQoJCSMkZGF0YVsidGVtcGxhdGVfaWQiXSA9ICR0ZW1wbGF0ZV9pZDsNCgkJJGRhdGFbInN0eWxlc2hlZXQiXSA9ICRzdHlsZXNoZWV0Ow0KCQkkZGF0YVsidGVtcGxhdGUiXSA9ICRjb250ZW50Ow0KDQoJCSR0bXBmbmFtZSA9ICcnOw0KDQoJCSR0bXBmbmFtZSA9IHRlbXBuYW0oJGNvbmZpZ1sicHJldmlld3NfcGF0aCJdLCAiY21zcHJldmlldyIpOw0KDQoJCSRoYW5kbGUgPSBmb3BlbigkdG1wZm5hbWUsICJ3Iik7DQoJCWZ3cml0ZSgkaGFuZGxlLCBzZXJpYWxpemUoJGRhdGEpKTsNCgkJZmNsb3NlKCRoYW5kbGUpOw0KCQkNCgkJJHBhcmFtc1sndGVtcGxhdGVfaWQnXT0kdGVtcGxhdGVfaWQ7DQoJCSRwYXJhbXNbJ3NlcmlhbGl6ZWRfY29udGVudCddPXNlcmlhbGl6ZSgkY29udGVudCk7DQoNCgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0ZW1wbGF0ZV9wcmV2aWV3JywnPGRpdiBjbGFzcz0icGFnZWNvbnRhaW5lciI+DQoJCQk8cCBjbGFzcz0icGFnZWhlYWRlciI+Jy4kdGhpcy0+TGFuZygncHJldmlldycpLic8L3A+DQoJCQk8aWZyYW1lIGNsYXNzPSJwcmV2aWV3IiBuYW1lPSJwcmV2aWV3IiBzcmM9IicuJHRoaXMtPnRlbXBsYXRlX3ByZXZpZXcoJHBhcmFtcykuJyI+PC9pZnJhbWU+DQoJCTwvZGl2PicpOw0KDQoJfQ0KDQoNCg0KCS8vZWNobyAkdGhpcy0+anNOY3NzKCk7DQoJZWNobyAnPGRpdiBpZD0iZGVtb3RpcCI+PGltZyBjbGFzcz0icHJvZ3Jlc3MiIHNyYz0iLi4vbW9kdWxlcy9TY3JpcHREZXBsb3kvaW1hZ2VzL2FqYXgtbG9hZGVyLmdpZiIgYWx0PSIiLz48L2Rpdj4nOw0KCQ0KCQ0KCQ0KCS8vIGhhbmRsZSBlcnJvcnMuDQoJaWYoaXNzZXQoJHBhcmFtc1snZXJyb3JzJ10pKXsNCgkJZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkcGFyYW1zWydlcnJvcnMnXSk7DQoJfQ0KCQ0KCSRwYXJhbXNbJ29yaWdhY3Rpb24nXSA9ICRwYXJhbXNbJ2FjdGlvbiddOw0KCSRjb250ZW50cyA9ICIiOw0KCSRzY3JpcHRzX25hbWU9Jyc7DQogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmb3Jtc3RhcnQnLA0KCQkJICAgICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQgKCRpZCwgJ3NhdmVfU2NyaXB0X1NldHVwJywkcmV0dXJuaWQsJ3Bvc3QnLCcnLA0KCQkJCQkJICAgIGZhbHNlLCAnJywgJHBhcmFtcykpOw0KICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignaGlkZGVuJywNCgkJCSAgJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ21vZGUnLCAkcGFyYW1zWydtb2RlJ10gKQ0KCQkJICAuJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ1Byb2NjZXNzaW5nJywgJHRoaXMtPkxhbmcoJ1Byb2NjZXNzaW5nJykpDQoJCQkgIC4kdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnU2F2ZWQnLCAkdGhpcy0+TGFuZygnU2F2ZWQnKSkNCgkJCSAgLiR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdEb25lJywgJHRoaXMtPkxhbmcoJ0RvbmUnKSkNCgkJCSAgLiR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdWYWxpZGF0aW5nJywgJHRoaXMtPkxhbmcoJ1ZhbGlkYXRpbmcnKSApDQoJCQkgICk7DQoNCg0KICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignZm9ybXN0YXJ0JywNCgkJCSAgICAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0ICgkaWQsICdzYXZlX1NjcmlwdF9TZXR1cCcsJHJldHVybmlkLCdwb3N0JywnJyxmYWxzZSwgJycsICRwYXJhbXMpKTsNCg0KDQogICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2RlZmF1bHR0ZW1wbGF0ZXByZWYnXSkgJiYgJHBhcmFtc1snZGVmYXVsdHRlbXBsYXRlcHJlZiddICE9ICcnICl7DQoJCSRjb250ZW50cyA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCRwYXJhbXNbJ2RlZmF1bHR0ZW1wbGF0ZXByZWYnXSk7DQogICAgIH0NCg0KDQovLyR0aGlzLT5zbWFydHktPmFzc2lnbigndGl0bGUnLGNtc19odG1sX2VudGl0eV9kZWNvZGUoJHBhcmFtc1sndGl0bGUnXSkpOw0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0ZW1wbGF0ZW5hbWUnLA0KCQkJICAkdGVtcGxhdGUpOw0KICAgICR0aGlzLT5zbWFydHktPmFzc2lnbigndGVtcGxhdGVuYW1lX2lucHV0JywNCgkJCSAgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCggJGlkLCAndGVtcGxhdGUnLCAkdGVtcGxhdGUsIDQwICkpOw0KICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignU2NyaXB0SXNfaW5wdXQnLA0KCQkJJHRoaXMtPkNyZWF0ZVRleHRBcmVhICgxLCAkaWQsICRjb250ZW50LCAnY29udGVudCcsICcnLCdTSUEnLCcnLCcnLCc4MCcsJzIwJywnRWRpdEFyZWEnKSk7IA0KDQoNCiR0aGlzLT5zbWFydHktPmFzc2lnbignc2NyaXB0c19uYW1lJywkc2NyaXB0c19uYW1lKTsNCiR0aGlzLT5zbWFydHktPmFzc2lnbignbW9kZScsICRwYXJhbXNbJ21vZGUnXSApOyAgDQokdGhpcy0+RmlyZURlYnVnKCdtZXNzYWdlJywkcGFyYW1zWydtb2RlJ10pOy8vPDw8PC0tLS0tLUZpcmUgUEhQIG1lc3NhZ2UNCiR0aGlzLT5zbWFydHktPmFzc2lnbignaGlkZGVuTW9kZScsDQoJCQkkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnbW9kZScsICRwYXJhbXNbJ21vZGUnXSkNCgkJCS4kdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnc3BfJywgJENNU19VU0VSX0tFWSkNCgkJCSk7DQoNCiR0aGlzLT5zbWFydHktPmFzc2lnbignYWRkTGliX2xhYmVsJywgJHRoaXMtPkxhbmcoJ2FkZExpYl9sYWJlbCcpKTsgDQoNCg0KDQoNCg0KDQoNCiR0aGlzLT5zbWFydHktPmFzc2lnbignc21hcnR5SG93X2xhYmVsJywgJHRoaXMtPkxhbmcoJ3NtYXJ0eUhvdycpKTsgDQoJDQokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RlbXBsYXRlbmFtZV9sYWJlbCcsICR0aGlzLT5MYW5nKCd0ZW1wbGF0ZW5hbWVfbGFiZWwnKSk7IA0KDQokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ1NjcmlwdElzX2xhYmVsJywgJHRoaXMtPkxhbmcoJ1NjcmlwdElzX2xhYmVsJykpOw0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdub3Rlc19sYWJlbCcsICR0aGlzLT5MYW5nKCdub3Rlc19sYWJlbCcpKTsNCg0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmb3JtX2NhbmNlbCcsICc8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iJy4kdGhpcy0+TGFuZygnZm9ybV9jYW5jZWwnKS4nIiBvbmNsaWNrPSJqYXZhc2NyaXB0OndpbmRvdy5oaXN0b3J5LmdvKC0xKSIgLz4nKTsJICANCiR0aGlzLT5zbWFydHktPmFzc2lnbigncHJvbXB0X3RlbXBsYXRlbmFtZScsJHRoaXMtPkxhbmcoJ3Byb21wdF90ZW1wbGF0ZW5hbWUnKSk7DQokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3Byb21wdF90ZW1wbGF0ZScsJHRoaXMtPkxhbmcoJ3Byb21wdF90ZW1wbGF0ZScpKTsNCiR0aGlzLT5zbWFydHktPmFzc2lnbigndGVtcGxhdGUnLA0KCQkgICAgICAkdGhpcy0+Q3JlYXRlU3ludGF4QXJlYSAoJGlkLCAkY29udGVudHMsICd0ZW1wbGF0ZWNvbnRlbnQnKSk7DQoJCQkgIA0KCQkgIA0KDQoJCQkgIA0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCAoJGlkLCAnc3VibWl0YnV0dG9uJywNCgkJCQkJCQkgJHRoaXMtPkxhbmcgKCdzdWJtaXQnKSkpOw0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdjYW5jZWwnLCR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCAoJGlkLCAnY2FuY2VsJywgDQoJCQkJCQkJICR0aGlzLT5MYW5nICgnY2FuY2VsJykpKTsNCg0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdhcHBseScsJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0ICgkaWQsICdhcHBseScsIA0KCQkJCQkJCSAkdGhpcy0+TGFuZyAoJ2FwcGx5JykpKTsNCiR0aGlzLT5zbWFydHktPmFzc2lnbigncmV2ZXJ0JywkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQgKCRpZCwgJ3JldmVydCcsIA0KCQkJCQkJCSAkdGhpcy0+TGFuZyAoJ3JldmVydCcpKSk7DQoNCg0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmb3JtZW5kJywkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsNCg0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmaWx0ZXJQcm9wJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZmlsdGVyUHJvcCcsICcnKSk7DQoNCg0KZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdlZGl0X3RlbXBsYXRlLnRwbCcpOw0KDQoNCg0KPz4NCg==]]></data>
	</file>
	<file>
	  <filename>/action.form.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCi8qKg0KICogTW9kdWxlOiBTY3JpcHREZXBsb3kgLSBNaW5pZnkgYW5kIGRlcGxveW1lbnQgb2YgSlMgQ1NTIGFuZCBIVE1MDQogKiANCiAqIA0KICogQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykNCiAqIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnDQogKiBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvc2NyaXB0ZGVwbG95Lw0KICogDQogKiBAcGFja2FnZSBTY3JpcHREZXBsb3kNCiAqIEBhdXRob3IgamVyZW15QmFzcyA8amVyZW15QmFzc0BjYWJsZW9uZS5uZXQ+DQogKiBAY29weXJpZ2h0IEplcmVteSBCYXNzDQogKiBAbGljZW5zZSBodHRwOi8vd3d3LmdudS5vcmcvY29weWxlZnQvZ3BsLmh0bWwgRnJlZWx5IGF2YWlsYWJsZSB1bmRlciBHUEwNCiAqLyANCg0KZ2xvYmFsICRnQ21zOw0KJGNvbmZpZyA9ICYkZ0Ntcy0+Y29uZmlnOw0KJHBhZ2VpbmZvID0gJiRnQ21zLT52YXJpYWJsZXNbJ3BhZ2VpbmZvJ107DQokc3R5bGVzaGVldG9wcyA9JiAkZ0Ntcy0+R2V0U3R5bGVzaGVldE9wZXJhdGlvbnMoKTsNCiRhbGxzdHlsZXNoZWV0cyA9ICRzdHlsZXNoZWV0b3BzLT5Mb2FkU3R5bGVzaGVldHMoKTsNCiR0bXBhcnIgPSBhcnJheSgpOw0KZm9yZWFjaCggJGFsbHN0eWxlc2hlZXRzIGFzICRvcyApDQp7DQogICR0bXBhcnJbJG9zLT5JZCgpXSA9ICRvcy0+TmFtZSgpOw0KfQ0KDQokc3R5bGVzID0gbmV3IFN0eWxlc2hlZXRfUmVjb3JkKCk7DQokc3R5bGVzLT5Mb2FkKCRwYWdlaW5mby0+dGVtcGxhdGVfaWQpOw0KJG9wdGlvbnMgPSBhcnJheSgpOw0KaWYoICRzdHlsZXMtPnByZWZlcnJlZF9zcyA+IDAgKQ0KICB7DQogICAgJG9iaiA9IG5ldyBTdGRDbGFzczsNCiAgICAkb2JqLT5pZCA9ICRzdHlsZXMtPnByZWZlcnJlZF9zczsNCiAgICAkb2JqLT5uYW1lID0gJHRtcGFyclskc3R5bGVzLT5wcmVmZXJyZWRfc3NdOw0KICAgICRvcHRpb25zW10gPSAkb2JqOw0KICB9DQoNCmZvcmVhY2goICRzdHlsZXMtPmFsdGVybmF0ZSBhcyAkYSApDQp7DQogICAgJG9iaiA9IG5ldyBTdGRDbGFzczsNCiAgICAkb2JqLT5pZCA9ICRhOw0KICAgICRvYmotPm5hbWUgPSAkdG1wYXJyWyRhXTsNCiAgICAkb3B0aW9uc1tdID0gJG9iajsNCn0NCg0KJHNtYXJ0eS0+YXNzaWduKCdvcHRpb25zJywkb3B0aW9ucyk7DQokc21hcnR5LT5hc3NpZ24oJ3Byb21wdF9zdHlsZXNoZWV0JywkdGhpcy0+TGFuZygncHJvbXB0X3N0eWxlc2hlZXQnKSk7DQplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YWJhc2UoJ2Zvcm1fdGVtcGxhdGUnKTsNCg0KLy8gRU9GDQo/Pg0K]]></data>
	</file>
	<file>
	  <filename>/action.jsinclude.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCi8qKg0KICogTW9kdWxlOiBTY3JpcHREZXBsb3kgLSBNaW5pZnkgYW5kIGRlcGxveW1lbnQgb2YgSlMgQ1NTIGFuZCBIVE1MDQogKiANCiAqIA0KICogQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykNCiAqIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnDQogKiBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvc2NyaXB0ZGVwbG95Lw0KICogDQogKiBAcGFja2FnZSBTY3JpcHREZXBsb3kNCiAqIEBhdXRob3IgamVyZW15QmFzcyA8amVyZW15QmFzc0BjYWJsZW9uZS5uZXQ+DQogKiBAY29weXJpZ2h0IEplcmVteSBCYXNzDQogKiBAbGljZW5zZSBodHRwOi8vd3d3LmdudS5vcmcvY29weWxlZnQvZ3BsLmh0bWwgRnJlZWx5IGF2YWlsYWJsZSB1bmRlciBHUEwNCiAqLyANCg0KZWNobyAnPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibW9kdWxlcy8nLiR0aGlzLT5HZXROYW1lKCkuJy9zd2Fwc3R5bGUuanMiPjwvc2NyaXB0PicuIlxuIjsNCi8vRU9GDQo/Pg0K]]></data>
	</file>
	<file>
	  <filename>/action.revert.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCi8qKg0KICogTW9kdWxlOiBTY3JpcHREZXBsb3kgLSBNaW5pZnkgYW5kIGRlcGxveW1lbnQgb2YgSlMgQ1NTIGFuZCBIVE1MDQogKiANCiAqIA0KICogQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykNCiAqIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnDQogKiBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvc2NyaXB0ZGVwbG95Lw0KICogDQogKiBAcGFja2FnZSBTY3JpcHREZXBsb3kNCiAqIEBhdXRob3IgamVyZW15QmFzcyA8amVyZW15QmFzc0BjYWJsZW9uZS5uZXQ+DQogKiBAY29weXJpZ2h0IEplcmVteSBCYXNzDQogKiBAbGljZW5zZSBodHRwOi8vd3d3LmdudS5vcmcvY29weWxlZnQvZ3BsLmh0bWwgRnJlZWx5IGF2YWlsYWJsZSB1bmRlciBHUEwNCiAqLyANCg0KaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7DQoNCg0KJENNU19VU0VSX0tFWT1DTVNfU0VDVVJFX1BBUkFNX05BTUUuJz0nLiRfU0VTU0lPTltDTVNfVVNFUl9LRVldOw0KDQppZighJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFRlbXBsYXRlcycpKXsNCiAgICAvLyB0b2RvLCBwZXJtaXNzaW9ucyBtZXNzYWdlIGhlcmUNCiAgICByZXR1cm47DQp9DQokY29uZmlnID0mICRnQ21zLT5HZXRDb25maWcoKTsgDQppZighaXNzZXQoJHBhcmFtc1snYWN0aXZlX3RhYiddKSl7DQokcGFyYW1zWydhY3RpdmVfdGFiJ109J3NjcmlwdF90ZW1wbGF0ZSc7CQ0KfQ0KDQoNCi8vL2FkZCB0aGUgY2xlYXIgaGlzdG9yeSBzdHVmZi4uLiANCg0KLy8JaWYoaXNzZXQoJHBhcmFtc1snY2xlYXJjYWNoZSddKSYmJHBhcmFtc1snY2xlYXJjYWNoZSddPT0nQ2xlYXIgQ2FjaGUnKXsNCi8vCSRMSU1JVD0kdGhpcy0+R2V0UHJlZmVyZW5jZSgncmV2aXNpb25fTElNSVQnKTsJDQovLwlmdW5jdGlvbiBDbGVhclRoaXNSZXZpc2lvbigkc0lELCk7DQovL2VjaG8gJHRoaXMtPmpzTmNzcygpOw0KZWNobyAnPGRpdiBpZD0iZGVtb3RpcCI+PGltZyBjbGFzcz0icHJvZ3Jlc3MiIHNyYz0iLi4vbW9kdWxlcy9TY3JpcHREZXBsb3kvaW1hZ2VzL2FqYXgtbG9hZGVyLmdpZiIgYWx0PSIiLz48L2Rpdj4nOw0KDQovLyBoYW5kbGUgZXJyb3JzLg0KaWYoaXNzZXQoJHBhcmFtc1snZXJyb3JzJ10pKXsNCiAgICBlY2hvICR0aGlzLT5TaG93RXJyb3JzKCRwYXJhbXNbJ2Vycm9ycyddKTsNCn0NCg0KJHBhcmFtc1snb3JpZ2FjdGlvbiddID0gJHBhcmFtc1snYWN0aW9uJ107DQokc0lEPSRwYXJhbXNbJ1NjcmlwdFNldCddOw0KDQppZihpc3NldCgkcGFyYW1zWydjbGVhclJldiddKSl7DQoJJExJTUlUPSR0aGlzLT5HZXRQcmVmZXJlbmNlKCdyZXZpc2lvbl9MSU1JVCcpOwkNCgkkdGhpcy0+Q2xlYXJUaGlzUmV2aXNpb24oJHNJRCk7DQp9DQoNCg0KDQovLyR0aGlzLT5zbWFydHktPmFzc2lnbigndGl0bGUnLGNtc19odG1sX2VudGl0eV9kZWNvZGUoJHBhcmFtc1sndGl0bGUnXSkpOw0KLy8kdGhpcy0+c21hcnR5LT5hc3NpZ24oJ21vZGUnLCAkcGFyYW1zWydtb2RlJ10gKTsgIA0KLy8kdGhpcy0+RmlyZURlYnVnKCdtZXNzYWdlJywkcGFyYW1zWydtb2RlJ10pOy8vPDw8PC0tLS0tLUZpcmUgUEhQIG1lc3NhZ2UNCi8vJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdoaWRkZW5Nb2RlJywNCi8vCQkJJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ21vZGUnLCAkcGFyYW1zWydtb2RlJ10pDQovLwkJCS4kdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnc3BfJywgJENNU19VU0VSX0tFWSkNCi8vCQkJKTsNCiRsb2c9JHRoaXMtPkdldFJldmlzaW9ucygkc0lELDEsOTk5OTksInNjcmlwdElEPSckc0lEJyIpOwkJDQokbGFzdFY9JHRoaXMtPkdldExhc3RSZXZpc2lvbigkc0lEKTsNCg0KJFNjcmlwdE5hbWU9JHRoaXMtPkdldFNjcmlwdE5hbWUoJHNJRCk7DQoNCg0KCSAgJHRhYmxlPSAgJzxoMSBzdHlsZT0iZmxvYXQ6IGxlZnQ7Ij5WZXJzaW9uIEhpc3RvcnkgZm9yIHNjcmlwdCBuYW1lIDxzcGFuIGlkPSJTbmFtZSI+Jy4kdGhpcy0+Q3JlYXRlTGluayggJGlkLCAnZWRpdF9zY3JpcHQnLCAkcmV0dXJuaWQsJFNjcmlwdE5hbWUsIGFycmF5KCdTY3JpcHRTZXQnID0+ICRzSUQsJ2FjdGl2ZV90YWInID0+ICdzY3JpcHRfdGVtcGxhdGUnLCdtb2RlJz0+J2VkaXQnKSkuJzwvc3Bhbj4gKGlkIDxzcGFuIGlkPSJTaWQiPicuJHNJRC4nPC9zcGFuPik8L2gxPjxici8+PGRpdiBpZD0idmVyc2lvblBsYW5lIj4NCgkgIA0KCSAgPHRhYmxlIGNlbGxzcGFjaW5nPSIxIiBjbGFzcz0idGFibGVzb3J0ZXIiIGlkPSJUUzEiPg0KCQkJPHRoZWFkPg0KCQkJCTx0cj48dGg+dXNlcklEPC90aD4NCgkJCQkJPHRoPnJldmlzaW9uPC90aD4NCgkJCQkJPHRoPmNyZWF0ZWQ8L3RoPg0KCQkJCTwvdHI+DQoJCQk8L3RoZWFkPg0KCQkJPHRib2R5PicuJGxvZy4nPC90Ym9keT4NCgkJPC90YWJsZT4NCgkJPCEtLTxkaXYgaWQ9ImNTY3JpcHRQbGFuZSI+PGRpdiAgaWQ9ImNTY3JpcHRQbGFuZUlORk8iPjwvZGl2Pi0tPg0KCQk8dGV4dGFyZWEgaWQ9ImNTY3JpcHRQbGFuZSIgcm93cz0iMTUiID4NCgkJDQoJCScuJHRoaXMtPkdldFRoaXNSZXZpc2lvbigkc0lEICwkbGFzdFYpLicNCgkJPC90ZXh0YXJlYT48IS0tPC9kaXY+LS0+DQoJCTxkaXYgaWQ9InBhZ2VyIiBjbGFzcz0icGFnZXIiPg0KCQ0KCQk8aW1nIHNyYz0iLi4vbW9kdWxlcy9TY3JpcHREZXBsb3kvaW5jbHVkZXMvYWRkb25zL3BhZ2VyL2ljb25zL2ZpcnN0LnBuZyIgY2xhc3M9ImZpcnN0Ii8+DQoJCTxpbWcgc3JjPSIuLi9tb2R1bGVzL1NjcmlwdERlcGxveS9pbmNsdWRlcy9hZGRvbnMvcGFnZXIvaWNvbnMvcHJldi5wbmciIGNsYXNzPSJwcmV2Ii8+DQoJCTxpbnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0icGFnZWRpc3BsYXkiLz4NCgkJPGltZyBzcmM9Ii4uL21vZHVsZXMvU2NyaXB0RGVwbG95L2luY2x1ZGVzL2FkZG9ucy9wYWdlci9pY29ucy9uZXh0LnBuZyIgY2xhc3M9Im5leHQiLz4NCgkJPGltZyBzcmM9Ii4uL21vZHVsZXMvU2NyaXB0RGVwbG95L2luY2x1ZGVzL2FkZG9ucy9wYWdlci9pY29ucy9sYXN0LnBuZyIgY2xhc3M9Imxhc3QiLz4NCgkJPHNlbGVjdCBjbGFzcz0icGFnZXNpemUiPg0KCQk8b3B0aW9uIHNlbGVjdGVkPSJzZWxlY3RlZCIgdmFsdWU9IjUiPjU8L29wdGlvbj4NCgkJCTxvcHRpb24gdmFsdWU9IjEwIj4xMDwvb3B0aW9uPg0KCQkJPG9wdGlvbiB2YWx1ZT0iMjAiPjIwPC9vcHRpb24+DQoJCQk8b3B0aW9uIHZhbHVlPSIzMCI+MzA8L29wdGlvbj4NCgkJCTxvcHRpb24gIHZhbHVlPSI0MCI+NDA8L29wdGlvbj4NCgkJPC9zZWxlY3Q+DQo8L2Rpdj48L2Rpdj4NCic7DQokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RhYmxlJywgJHRhYmxlKTsNCg0KDQogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdjbGVhclJldl9zdGFydCcsICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAncmV2ZXJ0JywgJHJldHVybmlkLCAncG9zdCcsICdtdWx0aXBhcnQvZm9ybS1kYXRhJykpOw0KICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignY2xlYXJSZXZfZW5kJywgJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7DQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdjbGVhclJldicsICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdjbGVhclJldicsICR0aGlzLT5MYW5nKCdjbGVhclJldicpKSk7DQogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdoaWRkZW4nLA0KCQkJICAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnU2NyaXB0U2V0Jywkc0lEICkNCgkJCSAgKTsNCg0KIA0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmb3JtX2NhbmNlbCcsICc8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iJy4kdGhpcy0+TGFuZygnZm9ybV9jYW5jZWwnKS4nIiBvbmNsaWNrPSJqYXZhc2NyaXB0OndpbmRvdy5oaXN0b3J5LmdvKC0xKSIgLz4nKTsJICANCi8vJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCAoJGlkLCAnc3VibWl0YnV0dG9uJywNCi8vCQkJCQkJCSAkdGhpcy0+TGFuZyAoJ3N1Ym1pdCcpKSk7DQovLyR0aGlzLT5zbWFydHktPmFzc2lnbignY2FuY2VsJywkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQgKCRpZCwgJ2NhbmNlbCcsIA0KLy8JCQkJCQkJICR0aGlzLT5MYW5nICgnY2FuY2VsJykpKTsNCi8vDQovLyR0aGlzLT5zbWFydHktPmFzc2lnbignYXBwbHknLCR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCAoJGlkLCAnYXBwbHknLCANCi8vCQkJCQkJCSAkdGhpcy0+TGFuZyAoJ2FwcGx5JykpKTsNCi8vJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdyZXZlcnQnLCR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCAoJGlkLCAncmV2ZXJ0JywgDQovLwkJCQkJCQkgJHRoaXMtPkxhbmcgKCdyZXZlcnQnKSkpOw0KLy8NCi8vDQovLyR0aGlzLT5zbWFydHktPmFzc2lnbignZm9ybWVuZCcsJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7DQoNCg0KDQplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ3JldmVydC50cGwnKTsNCg0KPz4=]]></data>
	</file>
	<file>
	  <filename>/action.saveVALsettings.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KaWYgKCFpc3NldCgkZ0NtcykgfHwgISR0aGlzLT5WaXNpYmxlVG9BZG1pblVzZXIoKSkgew0KICBlY2hvICR0aGlzLT5MYW5nKCJhY2Nlc3NkZW5pZWQiKTsNCiAgcmV0dXJuOw0KfQ0KDQppZiAoaXNzZXQoJHBhcmFtc1siQ1NTcHJvZmlsZSJdKSkgJHRoaXMtPlNldFByZWZlcmVuY2UoJ0NTU3Byb2ZpbGUnLCAkcGFyYW1zWyJDU1Nwcm9maWxlIl0pOw0KaWYgKGlzc2V0KCRwYXJhbXNbIlZBTExhbmciXSkpICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdWQUxMYW5nJywgJHBhcmFtc1siVkFMTGFuZyJdKTsJCQkJCQkJCQkJCQkJCQkJCQkJDQppZiAoaXNzZXQoJHBhcmFtc1sidzNjQ1NTd2FybmluZyJdKSkgJHRoaXMtPlNldFByZWZlcmVuY2UoJ3czY0NTU3dhcm5pbmcnLCAkcGFyYW1zWyJ3M2NDU1N3YXJuaW5nIl0pOwkJCQkJCQkJCQkJCQkJCQkJCQkNCmlmIChpc3NldCgkcGFyYW1zWyJ1c2VybWVkaXVtIl0pKSAkdGhpcy0+U2V0UHJlZmVyZW5jZSgndXNlcm1lZGl1bScsICRwYXJhbXNbInVzZXJtZWRpdW0iXSk7CQkJCQkJCQkJCQkJCQkJCQkJCQ0KaWYgKGlzc2V0KCRwYXJhbXNbIlNob3dWYWwiXSkpICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdTaG93VmFsJywgJHBhcmFtc1siU2hvd1ZhbCJdKTsJCQkJCQkJCQkJCQkJCQkJCQkJCQ0KaWYgKGlzc2V0KCRwYXJhbXNbIlR1cm5PTlZhbCJdKSkgJHRoaXMtPlNldFByZWZlcmVuY2UoJ1R1cm5PTlZhbCcsICRwYXJhbXNbIlR1cm5PTlZhbCJdKTsJDQppZiAoaXNzZXQoJHBhcmFtc1siZmlsdGVyUHJvcCJdKSkgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2ZpbHRlclByb3AnLCAkcGFyYW1zWyJmaWx0ZXJQcm9wIl0pOwkNCg0KDQppZiAoaXNzZXQoJHBhcmFtc1siaG90TGlua0NoZWNrIl0pKSAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnaG90TGlua0NoZWNrJywgJHBhcmFtc1siaG90TGlua0NoZWNrIl0pOwkNCg0KaWYgKGlzc2V0KCRwYXJhbXNbIlR1cm5PTlZhbEhUTUwiXSkpICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdUdXJuT05WYWxIVE1MJywgJHBhcmFtc1siVHVybk9OVmFsSFRNTCJdKTsJCQkJCQkJCQkJCQkJCQkJCQkJDQppZiAoaXNzZXQoJHBhcmFtc1siZG9jVHlwZSJdKSkgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2RvY1R5cGUnLCAkcGFyYW1zWyJkb2NUeXBlIl0pOwkJCQkJCQkJCQkJCQkJCQkJCQkJDQppZiAoaXNzZXQoJHBhcmFtc1siZW5jb2RpbmciXSkpICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdlbmNvZGluZycsICRwYXJhbXNbImVuY29kaW5nIl0pOwkNCmlmIChpc3NldCgkcGFyYW1zWyJWYWxIVE1MVmVyYm9zZSJdKSkgJHRoaXMtPlNldFByZWZlcmVuY2UoJ1ZhbEhUTUxWZXJib3NlJywgJHBhcmFtc1siVmFsSFRNTFZlcmJvc2UiXSk7CQ0KDQoNCiAkcGFyYW1zID0gYXJyYXkoJ3RhYl9tZXNzYWdlJz0+ICdzZXR0aW5nc3NhdmVkJywgJ2FjdGl2ZV90YWInID0+ICdWYWxzZXR0aW5ncycpOw0KCSR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAnJywgJHBhcmFtcyk7DQovLyR0aGlzLT5SZWRpcmVjdCgkaWQsICdEZXBsb3ltZW50c2V0dGluZ3MnLCAkcmV0dXJuaWQsYXJyYXkoIm1vZHVsZV9tZXNzYWdlIj0+JHRoaXMtPkxhbmcoInNldHRpbmdzc2F2ZWQiKSkpOw0KPz4=]]></data>
	</file>
	<file>
	  <filename>/action.save_deployment_settings.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KaWYgKCFpc3NldCgkZ0NtcykgfHwgISR0aGlzLT5WaXNpYmxlVG9BZG1pblVzZXIoKSkgew0KICBlY2hvICR0aGlzLT5MYW5nKCJhY2Nlc3NkZW5pZWQiKTsNCiAgcmV0dXJuOw0KfQ0KDQoNCglpc3NldCgkcGFyYW1zWydzbWFydHlPbiddKSA/ICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdzbWFydHlPbicsJHBhcmFtc1snc21hcnR5T24nXSk6JHRoaXMtPlNldFByZWZlcmVuY2UoJ3NtYXJ0eU9uJywwKTsNCglpc3NldCgkcGFyYW1zWydyb290VVJMX2lucHV0J10pID8gJHRoaXMtPlNldFByZWZlcmVuY2UoJ3Jvb3RVUkwnLCAkcGFyYW1zWydyb290VVJMX2lucHV0J10pOiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdyb290VVJMJywnJyk7DQoJaXNzZXQoJHBhcmFtc1snZmlsZVRpbWVfY3NzX3VybHMnXSkgPyAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnZmlsZVRpbWVfY3NzX3VybHMnLCAkcGFyYW1zWydmaWxlVGltZV9jc3NfdXJscyddKTokdGhpcy0+U2V0UHJlZmVyZW5jZSgnZmlsZVRpbWVfY3NzX3VybHMnLDEpOw0KCWlzc2V0KCRwYXJhbXNbJ3ByZWxvYWRfQ1NTaW1hZ2VfaW5wdXQnXSkgPyAkdGhpcy0+U2V0UHJlZmVyZW5jZSgncHJlbG9hZF9DU1NpbWFnZScsICRwYXJhbXNbJ3ByZWxvYWRfQ1NTaW1hZ2VfaW5wdXQnXSk6JHRoaXMtPlNldFByZWZlcmVuY2UoJ3ByZWxvYWRfQ1NTaW1hZ2UnLCAwKTsJDQoNCiBpZiAoaXNzZXQoJHBhcmFtc1sibWFuZ2xldHlwZSJdKSkgJHRoaXMtPlNldFByZWZlcmVuY2UoIm1hbmdsZXR5cGUiLCRwYXJhbXNbIm1hbmdsZXR5cGUiXSk7DQogaWYgKGlzc2V0KCRwYXJhbXNbImRlYnVnIl0pKSB7DQogICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgiZGVidWciLCJ0cnVlIik7DQogfSBlbHNlIHsNCiAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCJkZWJ1ZyIsImZhbHNlIik7DQogfQ0KDQogaWYgKGlzc2V0KCRwYXJhbXNbImhpZGVtZXNzYWdlcyJdKSkgew0KICAgJHRoaXMtPlNldFByZWZlcmVuY2UoImhpZGVtZXNzYWdlcyIsJHBhcmFtc1siaGlkZW1lc3NhZ2VzIl0pOw0KIH0gZWxzZSB7DQogICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgiaGlkZW1lc3NhZ2VzIiwiMCIpOw0KIH0NCg0KIGlmIChpc3NldCgkcGFyYW1zWyJpbmRlbnR3aWR0aCJdKSkgJHRoaXMtPlNldFByZWZlcmVuY2UoImluZGVudHdpZHRoIiwkcGFyYW1zWyJpbmRlbnR3aWR0aCJdKTsNCiBpZiAoaXNzZXQoJHBhcmFtc1siZGVidWdsZXZlbCJdKSkgJHRoaXMtPlNldFByZWZlcmVuY2UoImRlYnVnbGV2ZWwiLCRwYXJhbXNbImRlYnVnbGV2ZWwiXSk7DQogaWYgKGlzc2V0KCRwYXJhbXNbImZvcmNlbG93ZXJ0YWdzIl0pKSB7DQogICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgiZm9yY2Vsb3dlcnRhZ3MiLCRwYXJhbXNbImZvcmNlbG93ZXJ0YWdzIl0pOw0KIH0gZWxzZSB7DQogICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgiZm9yY2Vsb3dlcnRhZ3MiLCIwIik7DQogfQ0KIA0KIA0KICRwYXJhbXMgPSBhcnJheSgndGFiX21lc3NhZ2UnPT4gJ3NldHRpbmdzc2F2ZWQnLCAnYWN0aXZlX3RhYicgPT4gJ2h0bWxzZXR0aW5ncycpOw0KCSR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAnJywgJHBhcmFtcyk7DQovLyR0aGlzLT5SZWRpcmVjdCgkaWQsICdEZXBsb3ltZW50c2V0dGluZ3MnLCAkcmV0dXJuaWQsYXJyYXkoIm1vZHVsZV9tZXNzYWdlIj0+JHRoaXMtPkxhbmcoInNldHRpbmdzc2F2ZWQiKSkpOw0KPz4=]]></data>
	</file>
	<file>
	  <filename>/action.save_group_assign.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCi8qKg0KICogTW9kdWxlOiBTY3JpcHREZXBsb3kgLSBNaW5pZnkgYW5kIGRlcGxveW1lbnQgb2YgSlMgQ1NTIGFuZCBIVE1MDQogKiANCiAqIA0KICogQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykNCiAqIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnDQogKiBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvc2NyaXB0ZGVwbG95Lw0KICogDQogKiBAcGFja2FnZSBTY3JpcHREZXBsb3kNCiAqIEBhdXRob3IgamVyZW15QmFzcyA8amVyZW15QmFzc0BjYWJsZW9uZS5uZXQ+DQogKiBAY29weXJpZ2h0IEplcmVteSBCYXNzDQogKiBAbGljZW5zZSBodHRwOi8vd3d3LmdudS5vcmcvY29weWxlZnQvZ3BsLmh0bWwgRnJlZWx5IGF2YWlsYWJsZSB1bmRlciBHUEwNCiAqLyANCg0KCWlmICghaXNzZXQoJGdDbXMpKSBleGl0Ow0KCWdsb2JhbCAkZ0NtczsNCgkkY29uZmlnID0mICRnQ21zLT5HZXRDb25maWcoKTsgDQoJaWYoaXNzZXQoJHBhcmFtc1snY2FuY2VsJ10pKXsNCgkJJHBhcmFtcyA9IGFycmF5KCd0YWJfbWVzc2FnZSc9PiAnQ2FuY2VsZWQnLCAnYWN0aXZlX3RhYicgPT4gJ2dyb3VwcycpOw0KCQkkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJycsICRwYXJhbXMpOw0KCX0NCiRHcm91cE5hbWU9Jyc7DQokR3JvdXB0U2V0PScnOw0KCSRkYiA9JiAkdGhpcy0+R2V0RGIoKTsNCi8vCWlmKGlzc2V0KCRwYXJhbXNbJ2dyb3VwJ10pKXsNCi8vCQlpZihpc19udW1lcmljKCRwYXJhbXNbJ2dyb3VwJ10pKXsNCi8vCQkJJEdpZD0kcGFyYW1zWydncm91cCddOw0KLy8JCQkkR3JvdXBJRD0kcGFyYW1zWydncm91cCddOw0KLy8JCX1lbHNlew0KLy8JCQkkR2lkPSRwYXJhbXNbJ0dyb3VwdFNldCddOw0KLy8JCQkkR3JvdXBJRD0kcGFyYW1zWydHcm91cHRTZXQnXTsNCi8vCQl9DQovLwl9ZWxzZXsNCi8vCQkkR2lkPSRwYXJhbXNbJ0dyb3VwdFNldCddOw0KLy8JCSRHcm91cElEPSRwYXJhbXNbJ0dyb3VwdFNldCddOw0KLy8JfQ0KCWlmKCRwYXJhbXNbJ21vZGUnXT09J2FkZCcpew0KCQkJJEdyb3VwTmFtZT0kcGFyYW1zWydHcm91cHRTZXQnXTsNCgkJCSRHcm91cHRUeXBlPSRwYXJhbXNbJ0dyb3VwdFR5cGUnXTsNCgkJCSRxdWVyeSA9ICJJTlNFUlQgSU5UTyAiLlNEX0dST1VQLiIgU0VUIEdyb3VwdFNldD0/LCBHcm91cHRUeXBlPT8iOw0KCQkJJHJlc3VsdCA9ICYkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRHcm91cE5hbWUsJEdyb3VwdFR5cGUpKTsNCgkJCWlmKCEkcmVzdWx0KXsNCgkJCSAgLy9lY2hvICdFcnJvcjogJy5teXNxbF9lcnJvcigpOw0KCQkJICAkcGFyYW1zWydtZXNzYWdlJ10gPSBteXNxbF9lcnJvcigpOw0KCQkJfWVsc2V7DQoJCQkgICAkcGFyYW1zWydtZXNzYWdlJ10gPSAkdGhpcy0+TGFuZygncHJlZnN1cGRhdGVkJyk7DQoJCQl9DQoJCQkkR2lkPSR0aGlzLT5HZXRHcm91cElEKCRHcm91cE5hbWUpOw0KCX0NCgkNCgkvLyRHcm91cHRTZXQ9JHBhcmFtc1snR3JvdXB0U2V0J107DQoJaWYoJHBhcmFtc1snbW9kZSddPT0nZWRpdCcpew0KCQkkR2lkPSRwYXJhbXNbJ0dyb3VwdElEJ107DQoJfQ0KCWZvcmVhY2goJHBhcmFtcyBhcyAka2V5ID0+ICRwYXJhbXNJdGVtKXsNCgkJJHRoaXMtPkZpcmVEZWJ1ZygnZXJyb3InLCJwYXJhbXMgIi4ka2V5LiIgOiAiLiRwYXJhbXNJdGVtKTsvLzw8PDwtLS0tLS1GaXJlIFBIUCBtZXNzYWdlCQ0KCX0NCgkNCglpZihpc3NldCgkcGFyYW1zWydSRU9SREVSJ10pKXsNCgkJZm9yZWFjaCgkcGFyYW1zWydTY3JpcHRPUkRFUiddIGFzICRrZXkgPT4gJFNjcmlwdE9SREVSKXsNCgkJCSR0aGlzLT5GaXJlRGVidWcoJ2Vycm9yJywicGFyYW1zICIuJGtleS4iIDogIi4kU2NyaXB0T1JERVIpOy8vPDw8PC0tLS0tLUZpcmUgUEhQIG1lc3NhZ2UJDQoJCQkkU2NyaXB0SUQ9JGtleTsNCgkJCSR0aGlzLT5GaXJlRGVidWcoJ2Vycm9yJywgJFNjcmlwdElEKTsvLzw8PDwtLS0tLS1GaXJlIFBIUCBtZXNzYWdlDQoJCQkkdGhpcy0+RmlyZURlYnVnKCdlcnJvcicsICRTY3JpcHRPUkRFUik7Ly88PDw8LS0tLS0tRmlyZSBQSFAgbWVzc2FnZQ0KCQkJJHF1ZXJ5ID0gIlVQREFURSAiLlNEX0dST1VQQVNTSUdOTUVOVC4iIFNFVCBTY3JpcHRPUkRFUj0/IFdIRVJFIFNjcmlwdElEPSA/IEFORCBHcm91cHRTZXRJRD0/IjsNCgkNCgkJCSRyZXN1bHQgPSAmJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkU2NyaXB0T1JERVIsJFNjcmlwdElELCRHaWQpKTsNCgkJCSRkYi0+c3FsOw0KCQkJaWYoISRyZXN1bHQpew0KCQkJICAvL2VjaG8gJ0Vycm9yOiAnLm15c3FsX2Vycm9yKCk7DQoJCQkgICRwYXJhbXNbJ21lc3NhZ2UnXSA9IG15c3FsX2Vycm9yKCk7DQoJCQkgICR0aGlzLT5GaXJlRGVidWcoJ2Vycm9yJyxteXNxbF9lcnJvcigpKTsvLzw8PDwtLS0tLS1GaXJlIFBIUCBtZXNzYWdlDQoJCQl9ZWxzZXsNCgkJCSAgICRwYXJhbXNbJ21lc3NhZ2UnXSA9ICR0aGlzLT5MYW5nKCdwcmVmc3VwZGF0ZWQnKTsNCgkJCX0NCgkJfQ0KCQkkcGFyYW1zID0gYXJyYXkoJ3RhYl9tZXNzYWdlJz0+ICdFZGl0ZWQnLCAnYWN0aXZlX3RhYicgPT4gJ3NjcmlwdF90ZW1wbGF0ZScsJ21vZGUnPT4nZWRpdCcsJ0dyb3VwdFNldCc9PiRHcm91cHRTZXQsJ0dyb3VwdElEJz0+JEdpZCwnZ3JvdXAnPT4kR2lkLCdncm91cHQxJz0+JEdpZCk7DQoJCSR0aGlzLT5SZWRpcmVjdCgkaWQsICdlZGl0YXNzaWdubWVudCcsICcnLCAkcGFyYW1zKTsNCgl9DQoNCg0KCS8vJHNjcmlwdFNpemU9bWJfc3RybGVuKCRfUE9TVFsnbTFfU2NyaXB0SXNfaW5wdXQnXSwgJzhiaXQnKTsNCgkvLyRzY3JpcHRTaXplPXN0cmxlbih1dGY4X2RlY29kZSgkcGFyYW1zWydTY3JpcHRJc19pbnB1dCddKSk7DQoNCg0KCWlmKCRwYXJhbXNbJ21vZGUnXT09J2VkaXQnKXsNCgkJCS8vJEdyb3VwTmFtZT0kcGFyYW1zWydHcm91cHRTZXQnXTsNCgkJCSRTY3JpcHRJRD0kcGFyYW1zWydTY3JpcHRQaWNrZXInXTsNCgkJDQoJCQkkYWxsZGJQcm9maWxlcyA9ICR0aGlzLT5zZWxlY3RHcm91cHNMaXN0aW5ncygkR2lkKTsNCg0KCQkNCgkJCSRxdWVyeSA9ICJERUxFVEUgc24gRlJPTSAiLlNEX0dST1VQQVNTSUdOTUVOVC4iIEFTIHNuIFdIRVJFIHNuLkdyb3VwdFNldElEID0gPyI7DQoJCQkkcmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkR2lkKSk7DQoJCQkNCgkJCSRTY3JpcHRPUkRFUj0nJzsNCgkJCSBmb3JlYWNoKCRTY3JpcHRJRCBhcyAka2V5ID0+ICRTQXJyYXlJdGVtKXsNCgkJCQkgJFNjcmlwdE9SREVSPScnOw0KCQkJCWZvcmVhY2goJGFsbGRiUHJvZmlsZXMgYXMgJGtleXMgPT4gJG9uZWRiUHJvZmlsZSApew0KCQkJCQlpZigka2V5cz09JFNBcnJheUl0ZW0pew0KCQkJCQkJJFNjcmlwdE9SREVSPSRvbmVkYlByb2ZpbGVbJ1NjcmlwdE9SREVSJ107DQoJCQkJCX0NCgkJCQl9DQoJCQkJIA0KCQkJCSRxdWVyeSA9ICJJTlNFUlQgSU5UTyAiLlNEX0dST1VQQVNTSUdOTUVOVC4iIChHcm91cHRTZXRJRCwgU2NyaXB0SUQsIFNjcmlwdE9SREVSKSBWQUxVRVMgKCA/LD8sPykiOw0KCQkJCSRyZXN1bHQgPSAmJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkR2lkLCRTQXJyYXlJdGVtLCRTY3JpcHRPUkRFUikpOw0KCQkJCWlmKCEkcmVzdWx0KXsNCgkJCQkgIC8vZWNobyAnRXJyb3I6ICcubXlzcWxfZXJyb3IoKTsNCgkJCQkgICRwYXJhbXNbJ21lc3NhZ2UnXSA9IG15c3FsX2Vycm9yKCk7DQoJCQkJfWVsc2V7DQoJCQkJICAgJHBhcmFtc1snbWVzc2FnZSddID0gJHRoaXMtPkxhbmcoJ3ByZWZzdXBkYXRlZCcpOw0KCQkJCX0JCQkNCgkJCX0NCgl9Ly9lbHNlIGlmKCRwYXJhbXNbJ21vZGUnXT09J2FkZFNjcmlwdCcpewkNCi8vCQkgDQovLwkJJHF1ZXJ5ID0gIlVQREFURSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3NjcmlwdGRlcGxveV9ncm91cCBBUyBzZEcgIg0KLy8JCQkJLiJJTk5FUiBqb2luICAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3NjcmlwdGRlcGxveV9zY3JpcHRvcHRpb25zIHNvIE9OIHNuLklEID0gc28uSUQgIg0KLy8JCQkJLiJJTk5FUiBqb2luICAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3NjcmlwdGRlcGxveV9zY3JpcHRwYXJ0cyBzcCBPTiBzbi5JRCA9IHNwLklEICINCi8vCQkJCS4iU0VUIHNvLk1pbmlmeT0/LCBzbi5TY3JpcHRTZXQ9Pywgc28ucGF0aE9wdGlvbj0/LCBzby5zY3JpcHRUeXBlPT8sIHNwLlNjcmlwdElzPT8sIHNvLnNjcmlwdFNpemU9PyBXSEVSRSBzbi5JRCA9ID8iOw0KLy8NCi8vCQkkcmVzdWx0ID0gJiRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJE1pbmlmeSwkc2NyaXB0TmFtZSwkcGF0aE9wdGlvbiwkc2NyaXB0VHlwZSwkU2NyaXB0SXMsJHNjcmlwdFNpemUsJFNjcmlwdElEKSk7DQovLwkJaWYoISRyZXN1bHQpew0KLy8JCSAgLy9lY2hvICdFcnJvcjogJy5teXNxbF9lcnJvcigpOw0KLy8JCSAgJHBhcmFtc1snbWVzc2FnZSddID0gbXlzcWxfZXJyb3IoKTsNCi8vCQkgICR0aGlzLT5GaXJlRGVidWcoJ2Vycm9yJyxteXNxbF9lcnJvcigpKTsvLzw8PDwtLS0tLS1GaXJlIFBIUCBtZXNzYWdlDQovLwkJfWVsc2V7DQovLwkJICAgJHBhcmFtc1snbWVzc2FnZSddID0gJHRoaXMtPkxhbmcoJ3ByZWZzdXBkYXRlZCcpOw0KLy8JCX0NCi8vCQkkdGhpcy0+RmlyZURlYnVnKCdlcnJvcicsJHBhcmFtc1snbW9kZSddKTsvLzw8PDwtLS0tLS1GaXJlIFBIUCBtZXNzYWdlDQovLwl9DQoJaWYoaXNzZXQoJHBhcmFtc1snc3VibWl0YnV0dG9uJ10pfHxpc3NldCgkcGFyYW1zWydTYXZlJ10pKXsNCgkJJGRpcnBhdGg9JGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10uIi9saWIvU0QtdGVtcC8iOw0KCQkkZGVsZXRlZCA9IHNkX2ZpbGVoYW5kbGluZzo6cmVjdXJzaXZlX3JtZGlyKCRkaXJwYXRoKTsNCgkJJHBhcmFtcyA9IGFycmF5KCd0YWJfbWVzc2FnZSc9PiAnRWRpdGVkJywgJ2FjdGl2ZV90YWInID0+ICdzY3JpcHRfdGVtcGxhdGUnLCdtb2RlJz0+J2VkaXQnLCdHcm91cHRTZXQnPT4kR3JvdXBOYW1lLCdHcm91cHRJRCc9PiRHaWQsJ2dyb3VwJz0+JEdpZCwnZ3JvdXB0MSc9PiRHaWQpOw0KCQkkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZWRpdGFzc2lnbm1lbnQnLCAnJywgJHBhcmFtcyk7DQoJfQ0KDQoJaWYoJHBhcmFtc1snbW9kZSddPT0nYWRkJyl7DQoJCSRwYXJhbXMgPSBhcnJheSgndGFiX21lc3NhZ2UnPT4gJ0J0bkFEREVEJywgJ2FjdGl2ZV90YWInID0+ICdncm91cHMnKTsNCgl9ZWxzZXsNCgkJJHBhcmFtcyA9IGFycmF5KCd0YWJfbWVzc2FnZSc9PiAnQnRuRURJVEVEJywgJ2FjdGl2ZV90YWInID0+ICdncm91cHMnKTsNCgl9DQoNCgkJJGRpcnBhdGg9JGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10uIi9saWIvU0QtdGVtcC8iOw0KCQkkZGVsZXRlZCA9IHNkX2ZpbGVoYW5kbGluZzo6cmVjdXJzaXZlX3JtZGlyKCRkaXJwYXRoKTsNCgkkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJycsICRwYXJhbXMpOw0KPz4NCg==]]></data>
	</file>
	<file>
	  <filename>/action.save_module_options.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCi8qKg0KICogTW9kdWxlOiBTY3JpcHREZXBsb3kgLSBNaW5pZnkgYW5kIGRlcGxveW1lbnQgb2YgSlMgQ1NTIGFuZCBIVE1MDQogKiANCiAqIA0KICogQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykNCiAqIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnDQogKiBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvc2NyaXB0ZGVwbG95Lw0KICogDQogKiBAcGFja2FnZSBTY3JpcHREZXBsb3kNCiAqIEBhdXRob3IgamVyZW15QmFzcyA8amVyZW15QmFzc0BjYWJsZW9uZS5uZXQ+DQogKiBAY29weXJpZ2h0IEplcmVteSBCYXNzDQogKiBAbGljZW5zZSBodHRwOi8vd3d3LmdudS5vcmcvY29weWxlZnQvZ3BsLmh0bWwgRnJlZWx5IGF2YWlsYWJsZSB1bmRlciBHUEwNCiAqLyANCg0KaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7DQoJZ2xvYmFsICRnQ21zOw0KCSRjb25maWcgPSYgJGdDbXMtPkdldENvbmZpZygpOyANCg0KCWlzc2V0KCRwYXJhbXNbJ2RlYnVnSVQnXSkgPyAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnZGVidWdJVCcsICRwYXJhbXNbJ2RlYnVnSVQnXSk6Jyc7DQoNCgkNCglpc3NldCgkcGFyYW1zWydyZXZpc2lvbl9pbnB1dCddKSA/ICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdyZXZpc2lvbicsICRwYXJhbXNbJ3JldmlzaW9uX2lucHV0J10pOicnOw0KCWlzc2V0KCRwYXJhbXNbJ3JldmlzaW9uX0xJTUlUX2lucHV0J10pID8gJHRoaXMtPlNldFByZWZlcmVuY2UoJ3JldmlzaW9uX0xJTUlUJywgJHBhcmFtc1sncmV2aXNpb25fTElNSVRfaW5wdXQnXSk6Jyc7DQoJDQoNCg0KJGNsZWFyTT0nJzsNCgkNCgkkcGFyYW1zWydtZXNzYWdlJ10gPSAkdGhpcy0+TGFuZygncHJlZnN1cGRhdGVkJyk7DQoJaWYoaXNzZXQoJHBhcmFtc1snY2xlYXJjYWNoZSddKSYmJHBhcmFtc1snY2xlYXJjYWNoZSddPT0nQ2xlYXIgQ2FjaGUnKXsNCgkJJGRpcnBhdGg9JGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10uIi9saWIvU0QtdGVtcC8iOw0KCQkvLyRzZF9mZiA9IG5ldyBzZF9maWxlaGFuZGxpbmcoKTsNCgkJJGRlbGV0ZWQgPSBzZF9maWxlaGFuZGxpbmc6OnJlY3Vyc2l2ZV9ybWRpcigkZGlycGF0aCk7DQoJCQ0KCQlpZigkZGVsZXRlZCl7DQoJCQkvLyR0aGlzLT5MYW5nKCdwcmVmc3VwZGF0ZWQnKTsNCgkJCSRjbGVhck0gPSAiPGgyPkNsZWFyZWQgJGRpcnBhdGg8L2gyPiI7DQoJCX1lbHNlew0KCQkJLy8kdGhpcy0+TGFuZygncHJlZnN1cGRhdGVkJyk7DQoJCQkkY2xlYXJNID0gIjxoMj5Tb3JyeTogJGRpcnBhdGg8YnIvPjxmb250IGNvbG9yPVwicmVkXCI+PHN0cm9uZz5ET0VTIE5PVCB5ZXQgZXhpc3QgcnVuIHRoZSBwbHVnLWluIG9uIGFuIGltYWdlIGZpcnN0Ljwvc3Ryb25nPjwvZm9udD48YnIvPjwvaDI+IjsNCgkJfQ0KCX0NCglmb3JlYWNoKCRwYXJhbXMgYXMgJGtleSA9PiAkcGFyYW1zSXRlbSl7DQoJCSR0aGlzLT5GaXJlRGVidWcoJ2Vycm9yJywicGFyYW1zICIuJGtleS4iIDogIi4kcGFyYW1zSXRlbSk7Ly88PDw8LS0tLS0tRmlyZSBQSFAgbWVzc2FnZQkNCgl9DQoJJHBhcmFtcyA9IGFycmF5KCd0YWJfbWVzc2FnZSc9PiAnb3B0aW9uc3VwZGF0ZWQnLCAnYWN0aXZlX3RhYicgPT4gJ29wdGlvbnMnLCAnY2xlYXInID0+ICRjbGVhck0pOw0KCSR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAnJywgJHBhcmFtcyk7DQo/Pg0K]]></data>
	</file>
	<file>
	  <filename>/action.save_Script_Setup.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCi8qKg0KICogTW9kdWxlOiBTY3JpcHREZXBsb3kgLSBNaW5pZnkgYW5kIGRlcGxveW1lbnQgb2YgSlMgQ1NTIGFuZCBIVE1MDQogKiANCiAqIA0KICogQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykNCiAqIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnDQogKiBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvc2NyaXB0ZGVwbG95Lw0KICogDQogKiBAcGFja2FnZSBTY3JpcHREZXBsb3kNCiAqIEBhdXRob3IgamVyZW15QmFzcyA8amVyZW15QmFzc0BjYWJsZW9uZS5uZXQ+DQogKiBAY29weXJpZ2h0IEplcmVteSBCYXNzDQogKiBAbGljZW5zZSBodHRwOi8vd3d3LmdudS5vcmcvY29weWxlZnQvZ3BsLmh0bWwgRnJlZWx5IGF2YWlsYWJsZSB1bmRlciBHUEwNCiAqLyANCg0KaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7DQpnbG9iYWwgJGdDbXM7DQokY29uZmlnID0mICRnQ21zLT5HZXRDb25maWcoKTsgDQoNCg0KJGRiID0mICR0aGlzLT5HZXREYigpOw0KDQokTWluaWZ5PSRzY3JpcHROYW1lPSRwYXRoT3B0aW9uPSRzY3JpcHRUeXBlPSRTY3JpcHRJcz0kc2NyaXB0U2l6ZT0kbm90ZXM9JE1lZGlhVHlwZT0kU2NyaXB0SUQ9JHJldk1lc3M9Jyc7DQovLy8vDQovLyBDcmVhdCBidG4gdGFibGUNCi8vLy8NCg0KLy8JJE1lZGlhVHlwZT0kcGFyYW1zWydNZWRpYVR5cGVfaW5wdXQnXTsNCi8vCSRNaW5pZnk9JHBhcmFtc1snTWluaWZ5X2lucHV0J107DQovLwkkcGF0aE9wdGlvbj0kcGFyYW1zWydwYXRoT3B0aW9uX2lucHV0J107DQovLwkkc2NyaXB0VHlwZT0kcGFyYW1zWydzY3JpcHRUeXBlX2lucHV0J107DQovLwkkc2NyaXB0TmFtZT0kcGFyYW1zWydTY3JpcHRTZXRfaW5wdXQnXTsJDQovLwkkVXNlUGF0aE9wdGlvbj0kcGFyYW1zWydVc2VQYXRoT3B0aW9uX2lucHV0J107CQ0KLy8JJHJvb3RVUkw9JHBhcmFtc1sncm9vdFVSTF9pbnB1dCddOwkNCi8vCQ0KCSRNZWRpYVR5cGU9aXNzZXQoJHBhcmFtc1snTWVkaWFUeXBlX2lucHV0J10pID8gJHBhcmFtc1snTWVkaWFUeXBlX2lucHV0J106Jyc7DQoJJE1pbmlmeT1pc3NldCgkcGFyYW1zWydNaW5pZnlfaW5wdXQnXSkgPyAkcGFyYW1zWydNaW5pZnlfaW5wdXQnXTowOw0KCSRwYXRoT3B0aW9uPWlzc2V0KCRwYXJhbXNbJ3BhdGhPcHRpb25faW5wdXQnXSkgPyAkcGFyYW1zWydwYXRoT3B0aW9uX2lucHV0J106Jyc7DQoJJHNjcmlwdFR5cGU9aXNzZXQoJHBhcmFtc1snc2NyaXB0VHlwZV9pbnB1dCddKSA/ICRwYXJhbXNbJ3NjcmlwdFR5cGVfaW5wdXQnXTonJzsNCgkkc2NyaXB0TmFtZT1pc3NldCgkcGFyYW1zWydTY3JpcHRTZXRfaW5wdXQnXSkgPyAkcGFyYW1zWydTY3JpcHRTZXRfaW5wdXQnXTonJzsNCgkkVXNlUGF0aE9wdGlvbj1pc3NldCgkcGFyYW1zWydVc2VQYXRoT3B0aW9uX2lucHV0J10pID8gJHBhcmFtc1snVXNlUGF0aE9wdGlvbl9pbnB1dCddOicnOw0KCSRyb290VVJMPWlzc2V0KCRwYXJhbXNbJ3Jvb3RVUkxfaW5wdXQnXSkgPyAkcGFyYW1zWydyb290VVJMX2lucHV0J106Jyc7DQoJLy9pc3NldCgkcGFyYW1zWydkZWJ1Z0lUJ10pID8gJHRoaXMtPlNldFByZWZlcmVuY2UoJ2RlYnVnSVQnLCAkcGFyYW1zWydkZWJ1Z0lUJ10pOicnOw0KCSRyZXZpc2lvbj0kdGhpcy0+R2V0UHJlZmVyZW5jZSgncmV2aXNpb24nKTsNCgkNCgkNCgkkbm90ZXM9aXNzZXQoJHBhcmFtc1snbm90ZXNfaW5wdXQnXSkgPyAkcGFyYW1zWydub3Rlc19pbnB1dCddOicnOw0KCSRub3RlcyA9IHN0cl9yZXBsYWNlKCcvKicsICIiLCAkbm90ZXMpOw0KCSRub3RlcyA9IHN0cl9yZXBsYWNlKCcqLycsICIiLCAkbm90ZXMpOwkNCgkvLyRTY3JpcHRJcz1teXNxbF9yZWFsX2VzY2FwZV9zdHJpbmcoJHBhcmFtc1snU2NyaXB0SXNfaW5wdXQnXSk7CQ0KCS8vJFNjcmlwdElzPSRwYXJhbXNbJ1NjcmlwdElzX2lucHV0J107DQoJLy8kU2NyaXB0SUQ9JHBhcmFtc1snU2NyaXB0U2V0J107DQoJJFNjcmlwdElzPSBpc3NldCgkcGFyYW1zWydTY3JpcHRJc19pbnB1dCddKSA/ICRwYXJhbXNbJ1NjcmlwdElzX2lucHV0J106Jyc7DQoJJFNjcmlwdElEPSBpc3NldCgkcGFyYW1zWydTY3JpcHRTZXQnXSkgPyAkcGFyYW1zWydTY3JpcHRTZXQnXTonJzsNCgkNCgkNCmlmKGlzc2V0KCRwYXJhbXNbJ2NhbmNlbCddKSl7DQoJJHBhcmFtcyA9IGFycmF5KCd0YWJfbWVzc2FnZSc9PiAnQ2FuY2VsZWQnLCAnYWN0aXZlX3RhYicgPT4gJ3NjcmlwdF90ZW1wbGF0ZScpOw0KCSR0aGlzLT51bmxvY2tfc2NyaXB0KCRTY3JpcHRJRCk7DQoJJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICcnLCAkcGFyYW1zKTsNCn0NCgkvLyRzY3JpcHRTaXplPW1iX3N0cmxlbigkX1BPU1RbJ20xX1NjcmlwdElzX2lucHV0J10sICc4Yml0Jyk7DQoJLy8kc2NyaXB0U2l6ZT1zdHJsZW4odXRmOF9kZWNvZGUoJHBhcmFtc1snU2NyaXB0SXNfaW5wdXQnXSkpOw0KCSRzY3JpcHRTaXplPXN0cmxlbih1dGY4X2RlY29kZSgkU2NyaXB0SXMpKTsNCgkNCmlmKGlzc2V0KCRwYXJhbXNbJ3JldmVydCddKSl7DQoJJHBhcmFtcyA9IGFycmF5KCd0YWJfbWVzc2FnZSc9PiAnQnRuQURERUQnLCAnU2NyaXB0U2V0JyA9PiAkU2NyaXB0SUQsICdtb2RlJyA9PiAnZWRpdCcsICdTY3JpcHRJc19pbnB1dCc9PicnKTsNCgkkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZWRpdF9zY3JpcHQnLCAnJywgJHBhcmFtcyk7DQp9DQovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8NCi8qLS0tLS0tLS0tLURFQlVHLS0tLS0tLS0tLS0qLw0KLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCQkNCgkkdGhpcy0+RmlyZURlYnVnKCdtZXNzYWdlJywnJFNjcmlwdElEIDogJy4kU2NyaXB0SUQpOy8vPDw8PC0tLS0tLUZpcmUgUEhQIG1lc3NhZ2UJDQoJJHRoaXMtPkZpcmVEZWJ1ZygnbWVzc2FnZScsJyRNaW5pZnkgOiAnLiRNaW5pZnkpOy8vPDw8PC0tLS0tLUZpcmUgUEhQIG1lc3NhZ2UJDQoJJHRoaXMtPkZpcmVEZWJ1ZygnbWVzc2FnZScsJyRwYXRoT3B0aW9uIDogJy4kcGF0aE9wdGlvbik7Ly88PDw8LS0tLS0tRmlyZSBQSFAgbWVzc2FnZQkNCgkkdGhpcy0+RmlyZURlYnVnKCdtZXNzYWdlJywnJHNjcmlwdFR5cGUgOiAnLiRzY3JpcHRUeXBlKTsvLzw8PDwtLS0tLS1GaXJlIFBIUCBtZXNzYWdlCQ0KCSR0aGlzLT5GaXJlRGVidWcoJ21lc3NhZ2UnLCckU2NyaXB0SXMgOiAnLiRTY3JpcHRJcyk7Ly88PDw8LS0tLS0tRmlyZSBQSFAgbWVzc2FnZQkNCgkkdGhpcy0+RmlyZURlYnVnKCdtZXNzYWdlJywnbW9kZSA6ICcuJHBhcmFtc1snbW9kZSddKTsvLzw8PDwtLS0tLS1GaXJlIFBIUCBtZXNzYWdlDQoNCglpZigkcGFyYW1zWydtb2RlJ109PSdhZGQnKXsNCgkJCSRVc2VyaWQ9JHRoaXMtPmdldFVzZXJJbmZvKCk7DQoJCQkkdUlEPSRVc2VyaWRbJ1VzZXJpZCddOw0KCQkJJHF1ZXJ5ID0gIklOU0VSVCBJTlRPICIuU0RfU0NSSVBUTkFNRVMuIiBTRVQgU2NyaXB0U2V0PT8iOw0KCQkJJHJlc3VsdCA9ICYkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRzY3JpcHROYW1lKSk7DQoJCQlpZighJHJlc3VsdCl7DQoJCQkgIC8vZWNobyAnRXJyb3I6ICcubXlzcWxfZXJyb3IoKTsNCgkJCSAgJHBhcmFtc1snbWVzc2FnZSddID0gbXlzcWxfZXJyb3IoKTsNCgkJCX0NCgkJCQ0KCQkJLy8kcXVlcnkgPSAiU0VMRUNUIElEIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9zY3JpcHRkZXBsb3lfc2NyaXB0bmFtZXMgT1JERVIgQlkgSUQgREVTQyBMSU1JVCAxIjsNCgkJCS8vJExhc3RJRCA9ICYkZGItPkdldE9uZSgkcXVlcnkpOw0KCQkJJExhc3RJRCA9ICRkYi0+SW5zZXJ0X0lEKCk7DQoJCQkkbm93ID0gdHJpbSgkZGItPkRCVGltZVN0YW1wKHRpbWUoKSksICInIik7CQkJCQ0KCQkJJHF1ZXJ5ID0gIklOU0VSVCBJTlRPICIuU0RfU0NSSVBUT1BUSU9OUy4iICINCgkJCS4iKElELHVzZXJJRCxwYXRoT3B0aW9uLHNjcmlwdFR5cGUsc2NyaXB0U2l6ZSxub3RlcyxjcmVhdGVkLGxhc3RfZWRpdCkgIg0KCQkJLiJWQUxVRVMgKD8sPyw/LD8sPyw/LD8sPykiOw0KCQkJLy8uIlZBTFVFUyAoIExBU1RfSU5TRVJUX0lEKCksPyw/LD8sPyw/LD8sPykiOw0KCQkJJHJlc3VsdCA9ICYkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRMYXN0SUQsJHVJRCwkcGF0aE9wdGlvbiwkc2NyaXB0VHlwZSwkc2NyaXB0U2l6ZSwkbm90ZXMsJG5vdywkbm93KSk7DQoJCQlpZighJHJlc3VsdCl7DQoJCQkgIC8vZWNobyAnRXJyb3I6ICcubXlzcWxfZXJyb3IoKTsNCgkJCSAgJHBhcmFtc1snbWVzc2FnZSddID0gbXlzcWxfZXJyb3IoKTsNCgkJCX0NCgkJCSRxdWVyeSA9ICJJTlNFUlQgSU5UTyAiLlNEX1NDUklQVFBBUlRTLiIgIg0KCQkJLiIoSUQsIFNjcmlwdElzKSAiDQoJCQkuIlZBTFVFUyAoPyw/KSI7DQoJCQkNCgkJCSRyZXN1bHQgPSAmJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkTGFzdElELCRTY3JpcHRJcykpOw0KCQkJaWYoISRyZXN1bHQpew0KCQkJICAvL2VjaG8gJ0Vycm9yOiAnLm15c3FsX2Vycm9yKCk7DQoJCQkgICRwYXJhbXNbJ21lc3NhZ2UnXSA9IG15c3FsX2Vycm9yKCk7DQoJCQl9ZWxzZXsNCgkJCSAgICRwYXJhbXNbJ21lc3NhZ2UnXSA9ICR0aGlzLT5MYW5nKCdwcmVmc3VwZGF0ZWQnKTsNCgkJCX0NCgkJCWlmKCRyZXZpc2lvbil7DQoJCQkJJHRoaXMtPlNldFNjcmlwdEJhY2t1cCgkTGFzdElELCRTY3JpcHRJcywnMScpOwkNCgkJCQkkcmV2TWVzcyA9ICd8IHJldjoxJzsNCgkJCX0NCgkJCQ0KCQkJJHRoaXMtPlNldFByZWZlcmVuY2UoJExhc3RJRC4nLU1pbmlmeS1TRCcsJE1pbmlmeSk7DQoJCQkkdGhpcy0+U2V0UHJlZmVyZW5jZSgkTGFzdElELictUGF0aE9wLVNEJywkcGF0aE9wdGlvbik7DQoJCQkkdGhpcy0+U2V0UHJlZmVyZW5jZSgkTGFzdElELictcm9vdFVSTC1TRCcsJHJvb3RVUkwpOw0KCQkJaWYoJHNjcmlwdFR5cGU9PSdDU1MnKXsNCgkJCQkkdGhpcy0+U2V0UHJlZmVyZW5jZSgkTGFzdElELictTWVkaWFUeXBlLVNEJywkTWVkaWFUeXBlKTsNCgkJCX0NCg0KCQkJDQoJCQlzZF9sb2dnaW46Ol9kb0FEVUlUKCAnYWRkJyAsICdvaycsICJhZGRlZCAkc2NyaXB0TmFtZSAtIHNjcmlwdCBpZDokTGFzdElEICRyZXZNZXNzIik7DQoJCQkvL1NldCB1cCBsb2Nrcw0KCQkJJHRoaXMtPmxvY2tfc2NyaXB0KCRMYXN0SUQsJHVJRCk7DQoJCQkkdGhpcy0+dW5sb2NrX3NjcmlwdCgkTGFzdElEKTsNCgl9ZWxzZSBpZigkcGFyYW1zWydtb2RlJ109PSdlZGl0Jyl7DQoJCQ0KCQkkbm93ID0gdHJpbSgkZGItPkRCVGltZVN0YW1wKHRpbWUoKSksICInIik7CQ0KCQkkcXVlcnkgPSAiVVBEQVRFICIuU0RfU0NSSVBUTkFNRVMuIiBzbiAiDQoJCQkJLiJJTk5FUiBqb2luICAiLlNEX1NDUklQVE9QVElPTlMuIiBzbyBPTiBzbi5JRCA9IHNvLklEICINCgkJCQkuIklOTkVSIGpvaW4gICIuU0RfU0NSSVBUUEFSVFMuIiBzcCBPTiBzbi5JRCA9IHNwLklEICINCgkJCQkuIlNFVCAgc24uU2NyaXB0U2V0PT8sIHNvLnBhdGhPcHRpb249Pywgc28uc2NyaXB0VHlwZT0/LCBzcC5TY3JpcHRJcz0/LCBzby5zY3JpcHRTaXplPT8sIHNvLm5vdGVzPT8sICBzby5sYXN0X2VkaXQ9PyBXSEVSRSBzbi5JRCA9ID8iOw0KCQkkcmVzdWx0ID0gJiRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJHNjcmlwdE5hbWUsJHBhdGhPcHRpb24sJHNjcmlwdFR5cGUsJFNjcmlwdElzLCRzY3JpcHRTaXplLCRub3Rlcywkbm93LCRTY3JpcHRJRCkpOw0KCQkNCgkJZWNobyAkc2NyaXB0TmFtZS4nPGJyLz4nLiRwYXRoT3B0aW9uLic8YnIvPicuJHNjcmlwdFR5cGUuJzxici8+Jy4kU2NyaXB0SXMuJzxici8+Jy4kc2NyaXB0U2l6ZS4nPGJyLz4nLiRub3Rlcy4nPGJyLz4nLiRub3cuJzxici8+Jy4kU2NyaXB0SUQ7DQoJCWlmKCEkcmVzdWx0KXsNCgkJICAvL2VjaG8gJ0Vycm9yOiAnLm15c3FsX2Vycm9yKCk7DQoJCSAgJHBhcmFtc1snbWVzc2FnZSddID0gbXlzcWxfZXJyb3IoKTsNCgkJICAkdGhpcy0+RmlyZURlYnVnKCdlcnJvcicsbXlzcWxfZXJyb3IoKSk7Ly88PDw8LS0tLS0tRmlyZSBQSFAgbWVzc2FnZQ0KCQl9ZWxzZXsNCgkJICAgJHBhcmFtc1snbWVzc2FnZSddID0gJHRoaXMtPkxhbmcoJ3ByZWZzdXBkYXRlZCcpOw0KCQl9DQoJCQ0KCQkkdGhpcy0+U2V0UHJlZmVyZW5jZSgkU2NyaXB0SUQuJy1QYXRoT3AtU0QnLCRwYXRoT3B0aW9uKTsNCgkJJHRoaXMtPlNldFByZWZlcmVuY2UoJFNjcmlwdElELictcm9vdFVSTC1TRCcsJHJvb3RVUkwpOw0KCQkkdGhpcy0+U2V0UHJlZmVyZW5jZSgkU2NyaXB0SUQuJy1NaW5pZnktU0QnLCRNaW5pZnkpOw0KCQlzZF9sb2dnaW46Ol9kb0FEVUlUKCAnZWRpdCcgLCAnb2snLCAkdGhpcy0+TGFuZygnQ2hlY2tlZE91dF9kb0FEVUlUJykuIiBpZDokU2NyaXB0SUQiKTsNCgkJaWYoJHNjcmlwdFR5cGU9PSdDU1MnKXsNCgkJCSR0aGlzLT5TZXRQcmVmZXJlbmNlKCRTY3JpcHRJRC4nLU1lZGlhVHlwZS1TRCcsJE1lZGlhVHlwZSk7DQoJCX0NCgkJaWYoJHJldmlzaW9uKXsNCgkJCSRyZXZpc2lvbj0kdGhpcy0+R2V0TGFzdFJldmlzaW9uKCRTY3JpcHRJRCkrMTsNCgkJCS8vU2NyaXB0RGVwbG95OjpTZXRTY3JpcHRCYWNrdXAoJFNjcmlwdElELCRTY3JpcHRJcywkcmV2aXNpb24pOyAgLy8gdGVzdCBmb3IgcHJvdGVjdGVkIGZ1bmN0aW9uIFNldFNjcmlwdEJhY2t1cCgpDQoJCQkkdGhpcy0+U2V0U2NyaXB0QmFja3VwKCRTY3JpcHRJRCwkU2NyaXB0SXMsJHJldmlzaW9uKTsNCgkJCSR0aGlzLT5DbGVhclRoaXNSZXZpc2lvbigkU2NyaXB0SUQsJHRoaXMtPkdldFByZWZlcmVuY2UoJ3JldmlzaW9uX0xJTUlUJykpOw0KCQkJJHJldk1lc3MgPSAnfCByZXY6Jy4kcmV2aXNpb247DQoJCX0NCg0KCQkNCgkJc2RfbG9nZ2luOjpfZG9BRFVJVCggJ2VkaXQnICwgJ29rJywgImVkaXRlZCAkc2NyaXB0TmFtZSAtIHNjcmlwdCBpZDokU2NyaXB0SUQgJHJldk1lc3MiKTsNCgkJJHRoaXMtPkZpcmVEZWJ1ZygnZXJyb3InLCRwYXJhbXNbJ21vZGUnXSk7Ly88PDw8LS0tLS0tRmlyZSBQSFAgbWVzc2FnZQ0KCX0NCgkJDQoNCglpZihpc3NldCgkcGFyYW1zWydhcHBseSddKSl7DQoJCSRwYXJhbXMgPSBhcnJheSgndGFiX21lc3NhZ2UnPT4gJ0J0bkFEREVEJywgJ1NjcmlwdFNldCcgPT4gJFNjcmlwdElELCAnbW9kZScgPT4gJ2VkaXQnLCAnU2NyaXB0SXNfaW5wdXQnPT4nJyk7DQoJCSRkaXJwYXRoPSRjb25maWdbJ3VwbG9hZHNfcGF0aCddLiIvbGliL1NELXRlbXAvIjsNCgkJJGRlbGV0ZWQgPSBzZF9maWxlaGFuZGxpbmc6OnJlY3Vyc2l2ZV9ybWRpcigkZGlycGF0aCk7DQoJCWlmKCRkZWxldGVkPXRydWUpew0KCQkJaWYoJF9QT1NUWydhamF4c2F2ZSddPT10cnVlKXsNCgkJCQllY2hvICd0cnVlJzsNCgkJCQlleGl0KCk7DQoJCQl9ZWxzZXsNCgkJCQkkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZWRpdF9zY3JpcHQnLCAnJywgJHBhcmFtcyk7DQoJCQl9DQoJCX0NCgl9CQ0KCWlmKCRwYXJhbXNbJ21vZGUnXT09J2FkZCcpew0KCQkkcGFyYW1zID0gYXJyYXkoJ3RhYl9tZXNzYWdlJz0+ICdCdG5BRERFRCcsICdhY3RpdmVfdGFiJyA9PiAnc2NyaXB0X3RlbXBsYXRlJyk7DQoJfWVsc2V7DQoJCSRwYXJhbXMgPSBhcnJheSgndGFiX21lc3NhZ2UnPT4gJ0J0bkVESVRFRCcsICdhY3RpdmVfdGFiJyA9PiAnc2NyaXB0X3RlbXBsYXRlJyk7DQoJfQ0KCSRkaXJwYXRoPSRjb25maWdbJ3VwbG9hZHNfcGF0aCddLiIvbGliL1NELXRlbXAvIjsNCglpZihzZF9maWxlaGFuZGxpbmc6OnJlY3Vyc2l2ZV9ybWRpcigkZGlycGF0aCkpe3NkX2xvZ2dpbjo6X2RvQURVSVQoICdkZXN0cm95JyAsICdvaycsICR0aGlzLT5MYW5nKCdlbXB0aWVkQ2FjaF9kb0FEVUlUJykpO30NCg0KLy8kcGFyYW1zWydzcnQnXSA9ICRzcnQ7DQogICAgLy8gdG8gY2FsbCBhbm90aGVyIG1ldGhvZCBvZiB0aGUgbW9kdWxlLCB5b3UgaGF2ZSB0byBiZSBjYXJlZnVsIG5vdyB0aGF0DQogICAgLy8gbWV0aG9kcyBjYW4gYmUgc3BsaXQgaW50byBvdGhlciBmaWxlcy4gSGVyZSdzIHRoZSBwcmVmZXJlZCBhcHByb2FjaDoNCgkNCgkNCmlmKCRfUE9TVFsnYWpheHNhdmUnXT09dHJ1ZSl7DQoJJGRpcnBhdGg9JGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10uIi9saWIvU0QtdGVtcC8iOw0KCWlmKHNkX2ZpbGVoYW5kbGluZzo6cmVjdXJzaXZlX3JtZGlyKCRkaXJwYXRoKSl7c2RfbG9nZ2luOjpfZG9BRFVJVCggJ2Rlc3Ryb3knICwgJ29rJywgJHRoaXMtPkxhbmcoJ2VtcHRpZWRDYWNoX2RvQURVSVQnKSk7fQ0KCWVjaG8gJ3RydWUnOw0KCWV4aXQoKTsNCn1lbHNlew0KCSR0aGlzLT51bmxvY2tfc2NyaXB0KCRTY3JpcHRJRCk7DQoJJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICcnLCAkcGFyYW1zKTsNCn0NCj8+DQo=]]></data>
	</file>
	<file>
	  <filename>/action.valCSS.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCmlmICghaXNzZXQoJGdDbXMpKSBleGl0Ow0KJHNJRD0zOw0Kc2RWYWw6OlZhbENTU3dhcm5pbmdzKCRzSUQpOw0Kc2RWYWw6OlZhbENTU2Vycm9ycygkc0lEKTsNCg0KDQoNCg0KDQoNCj8+]]></data>
	</file>
	<file>
	  <filename>/action.view_logs.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCi8qKg0KICogTW9kdWxlOiBTY3JpcHREZXBsb3kgLSBNaW5pZnkgYW5kIGRlcGxveW1lbnQgb2YgSlMgQ1NTIGFuZCBIVE1MDQogKiANCiAqIA0KICogQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykNCiAqIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnDQogKiBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvc2NyaXB0ZGVwbG95Lw0KICogDQogKiBAcGFja2FnZSBTY3JpcHREZXBsb3kNCiAqIEBhdXRob3IgamVyZW15QmFzcyA8amVyZW15QmFzc0BjYWJsZW9uZS5uZXQ+DQogKiBAY29weXJpZ2h0IEplcmVteSBCYXNzDQogKiBAbGljZW5zZSBodHRwOi8vd3d3LmdudS5vcmcvY29weWxlZnQvZ3BsLmh0bWwgRnJlZWx5IGF2YWlsYWJsZSB1bmRlciBHUEwNCiAqLyANCg0KaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7DQoNCg0KJENNU19VU0VSX0tFWT1DTVNfU0VDVVJFX1BBUkFNX05BTUUuJz0nLiRfU0VTU0lPTltDTVNfVVNFUl9LRVldOw0KDQppZighJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFRlbXBsYXRlcycpKXsNCiAgICAvLyB0b2RvLCBwZXJtaXNzaW9ucyBtZXNzYWdlIGhlcmUNCiAgICByZXR1cm47DQp9DQokY29uZmlnID0mICRnQ21zLT5HZXRDb25maWcoKTsgDQppZighaXNzZXQoJHBhcmFtc1snYWN0aXZlX3RhYiddKSl7DQokcGFyYW1zWydhY3RpdmVfdGFiJ109J3NjcmlwdF90ZW1wbGF0ZSc7CQ0KfQ0KDQokY2FjaGVJbmZvPScnOw0KJGxvZz1zZF9sb2dnaW46OnB1bGxMb2coMSw5OTk5OSwiaXRlbV9uYW1lPSdTY3JpcHREZXBsb3knIik7DQoJICAkY2FjaGVJbmZvLj0gICc8aDEgc3R5bGU9ImZsb2F0OiBsZWZ0OyI+Jy4kdGhpcy0+TGFuZygnRWRpdEhpc3RvcnknKS4nPC9oMT48dGFibGUgY2VsbHNwYWNpbmc9IjEiIGNsYXNzPSJ0YWJsZXNvcnRlciIgaWQ9IlRTMSI+DQoJCQk8dGhlYWQ+DQoJCQkJPHRyPg0KCQkJCQk8dGggc3R5bGU9InBhZGRpbmctcmlnaHQ6MTVweDsiPnVzZXJuYW1lPC90aD4NCgkJCQkJPHRoIHN0eWxlPSJwYWRkaW5nLXJpZ2h0OjE1cHg7Ij5pZDwvdGg+DQoJCQkJCTx0aCBzdHlsZT0icGFkZGluZy1yaWdodDoxNXB4OyI+Y29kZTwvdGg+DQoJCQkJCTwhLS08dGg+aXRlbV9uYW1lPC90aD4tLT4NCgkJCQkJPHRoIHN0eWxlPSJwYWRkaW5nLXJpZ2h0OjE1cHg7Ij5hY3Rpb24gdG9vazwvdGg+DQoJCQkJCTx0aCBzdHlsZT0icGFkZGluZy1yaWdodDoxNXB4OyI+dGltZXN0YW1wPC90aD4NCgkJCQk8L3RyPg0KCQkJPC90aGVhZD4NCgkJCTx0Ym9keT4nLiRsb2cuJzwvdGJvZHk+DQoJCTwvdGFibGU+DQoJCQ0KCQk8ZGl2IGlkPSJwYWdlciIgY2xhc3M9InBhZ2VyIj4NCgkNCgkJPGltZyBzcmM9Ii4uL21vZHVsZXMvU2NyaXB0RGVwbG95L2luY2x1ZGVzL2FkZG9ucy9wYWdlci9pY29ucy9maXJzdC5wbmciIGNsYXNzPSJmaXJzdCIgYWx0PSJmaXJzdCIvPg0KCQk8aW1nIHNyYz0iLi4vbW9kdWxlcy9TY3JpcHREZXBsb3kvaW5jbHVkZXMvYWRkb25zL3BhZ2VyL2ljb25zL3ByZXYucG5nIiBjbGFzcz0icHJldiIgYWx0PSJwcmV2Ii8+DQoJCTxpbnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0icGFnZWRpc3BsYXkiLz4NCgkJPGltZyBzcmM9Ii4uL21vZHVsZXMvU2NyaXB0RGVwbG95L2luY2x1ZGVzL2FkZG9ucy9wYWdlci9pY29ucy9uZXh0LnBuZyIgY2xhc3M9Im5leHQiIGFsdD0ibmV4dCIvPg0KCQk8aW1nIHNyYz0iLi4vbW9kdWxlcy9TY3JpcHREZXBsb3kvaW5jbHVkZXMvYWRkb25zL3BhZ2VyL2ljb25zL2xhc3QucG5nIiBjbGFzcz0ibGFzdCIgYWx0PSJsYXN0Ii8+DQoJCTxzZWxlY3QgY2xhc3M9InBhZ2VzaXplIj4NCgkJPG9wdGlvbiBzZWxlY3RlZD0ic2VsZWN0ZWQiIHZhbHVlPSI1Ij41PC9vcHRpb24+DQoJCQk8b3B0aW9uIHZhbHVlPSIxMCI+MTA8L29wdGlvbj4NCgkJCTxvcHRpb24gdmFsdWU9IjIwIj4yMDwvb3B0aW9uPg0KCQkJPG9wdGlvbiB2YWx1ZT0iMzAiPjMwPC9vcHRpb24+DQoJCQk8b3B0aW9uICB2YWx1ZT0iNDAiPjQwPC9vcHRpb24+DQoJCTwvc2VsZWN0Pg0KPC9kaXY+DQonOw0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdjYWNoZUluZm8nLCRjYWNoZUluZm8pOw0KDQogICAgZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdhZG1pbl92aWV3X2xvZ3MudHBsJyk7DQoNCj8+]]></data>
	</file>
	<file>
	  <filename>/changelog.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHVsPg0KCTxsaT5WZXJzaW9uIDAuMSBCZXRhIHJlbGVhc2UuPC9saT4NCgk8bGk+VmVyc2lvbiAwLjIgbG90cyBvZiBjaGFuZ2VzIHRvIGZpeCBidWcuLi48L2xpPg0KCTxsaT5WZXJzaW9uIDAuMyBzZXQgdGhlIHNtYXJ0eSB0byB1c2Uge3sgfX08L2xpPg0KCTxsaT5WZXJzaW9uIDAuNCBmaXhlZCBidWcuLiBpbXByb3ZlZCB0aGUgbWluaWFmY2F0aW9uIHRvIGEgc2F2ZXMgb2YgdXAgdG8gNjAlPC9saT4NCgk8bGk+VmVyc2lvbiAwLjcuMSBtYW55IGNoYW5nZXMuLi4gPHN0cm9uZz5CUkVBS1MgVVBHUkFERTwvc3Ryb25nPiBDb3B5IHNjcmlwdHMsIGluc3RhbGwgYW5kIHRoZSB1cGxvYWQgYW5kIHJlaW5zdGFsbC4uLiBTb3JyeSBidXQgaXQgd2FzIG5lZWRlZCBmb3IgVkVSU0lPTiBISVNUT1JZIGZpeGVkIGJ1Z3MuLiBtYW55IGltcHJvdmVtZW50czwvbGk+DQoJPGxpPlZlcnNpb24gMC43LjYgTWFueSBmaXhlcywgQWRkIHRoZSBkdW1wIHBhcmFtLCBhZGQgdGhlIGFjdGlvbiBmb3IgdGhlIGltcG9ydCBwYXJhbSAnaW5fc2NyaXB0Jy48L2xpPg0KPC91bD4=]]></data>
	</file>
	<file>
	  <filename>/CSS/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/CSS/asc.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhFQAEAIAAACMtMP///yH5BAEAAAEALAAAAAAVAAQAAAINjB+gC+jP2ptn0WskLQA7]]></data>
	</file>
	<file>
	  <filename>/CSS/bg.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhFQAJAIAAACMtMP///yH5BAEAAAEALAAAAAAVAAkAAAIXjI+AywnaYnhUMoqt3gZXPmVg94yJVQAAOw==]]></data>
	</file>
	<file>
	  <filename>/CSS/desc.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhFQAEAIAAACMtMP///yH5BAEAAAEALAAAAAAVAAQAAAINjI8Bya2wnINUMopZAQA7]]></data>
	</file>
	<file>
	  <filename>/CSS/flexigrid/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/CSS/flexigrid/flexigrid.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[QGNoYXJzZXQgIlVURi04IjsNCi8qIENTUyBEb2N1bWVudCAqLw0KDQouZmxleGlncmlkDQoJew0KCWZvbnQtZmFtaWx5OiBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOw0KCWZvbnQtc2l6ZTogMTFweDsNCglwb3NpdGlvbjogcmVsYXRpdmU7DQoJYm9yZGVyOiAwcHggc29saWQgI2VlZTsNCglvdmVyZmxvdzogaGlkZGVuOw0KCWNvbG9yOiAjMDAwOw0KCX0NCg0KCS5mbGV4aWdyaWQuaGlkZUJvZHkNCgkJew0KCQloZWlnaHQ6IDI2cHggIWltcG9ydGFudDsNCgkJYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7DQoJCX0NCg0KCS5pZTZmdWxsd2lkdGhidWcNCgkJew0KCQlib3JkZXItcmlnaHQ6IDBweCBzb2xpZCAjY2NjOw0KCQlwYWRkaW5nLXJpZ2h0OiAycHg7CQ0KCQl9DQoNCi5mbGV4aWdyaWQgZGl2Lm5EaXYNCgl7DQoJYmFja2dyb3VuZDogI2VlZSB1cmwoaW1hZ2VzL2xpbmUuZ2lmKSByZXBlYXQteSAtMXB4IHRvcDsNCglib3JkZXI6IDFweCBzb2xpZCAjY2NjOw0KCWJvcmRlci10b3A6IDBweDsNCglvdmVyZmxvdzogYXV0bzsNCglsZWZ0OiAwcHg7DQoJcG9zaXRpb246IGFic29sdXRlOw0KCXotaW5kZXg6IDk5OTsNCglmbG9hdDogbGVmdDsNCgl9DQoNCgkuZmxleGlncmlkIGRpdi5uRGl2IHRhYmxlDQoJCXsNCgkJbWFyZ2luOiAycHg7DQoJCX0NCg0KLmZsZXhpZ3JpZCBkaXYuaERpdkJveA0KCXsNCglmbG9hdDogbGVmdDsgDQoJcGFkZGluZy1yaWdodDogNDBweDsNCgl9DQoNCi5mbGV4aWdyaWQgZGl2LmJEaXYgdGFibGUNCgl7DQoJbWFyZ2luLWJvdHRvbTogMTBweDsNCgl9DQoJDQoJLmZsZXhpZ3JpZCBkaXYuYkRpdiB0YWJsZS5hdXRvaHQNCgkJew0KCQlib3JkZXItYm90dG9tOiAwcHg7DQoJCW1hcmdpbi1ib3R0b206IDBweDsNCgkJfQ0KCQ0KLmZsZXhpZ3JpZCBkaXYubkRpdiB0ZA0KCXsNCglwYWRkaW5nOiAycHggM3B4Ow0KCWJvcmRlcjogMXB4IHNvbGlkICNlZWU7DQoJY3Vyc29yOiBkZWZhdWx0Ow0KCX0NCg0KLmZsZXhpZ3JpZCBkaXYubkRpdiB0cjpob3ZlciB0ZCwgLmZsZXhpZ3JpZCBkaXYubkRpdiB0ci5uZGNvbG92ZXIgdGQNCgl7DQoJYmFja2dyb3VuZDogI2Q1ZWZmYyB1cmwoaW1hZ2VzL2hsLnBuZykgcmVwZWF0LXggdG9wOw0KCWJvcmRlcjogMXB4IHNvbGlkICNhOGQ4ZWI7DQoJfQ0KCQ0KCS5mbGV4aWdyaWQgZGl2Lm5EaXYgdGQubmRjb2wxDQoJCXsNCgkJYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2NjYzsNCgkJfQ0KCQkNCgkuZmxleGlncmlkIGRpdi5uRGl2IHRkLm5kY29sMg0KCQl7DQoJCWJvcmRlci1sZWZ0OiAxcHggc29saWQgI2ZmZjsNCgkJcGFkZGluZy1yaWdodDogMTBweDsNCgkJfQ0KDQoJLmZsZXhpZ3JpZCBkaXYubkRpdiB0cjpob3ZlciB0ZC5uZGNvbDEsIC5mbGV4aWdyaWQgZGl2Lm5EaXYgdHIubmRjb2xvdmVyIHRkLm5kY29sMQ0KCQl7DQoJCWJvcmRlci1yaWdodDogMXB4IHNvbGlkICNkMmUzZWM7DQoJCX0NCgkJDQoJLmZsZXhpZ3JpZCBkaXYubkRpdiB0cjpob3ZlciB0ZC5uZGNvbDIsIC5mbGV4aWdyaWQgZGl2Lm5EaXYgdHIubmRjb2xvdmVyIHRkLm5kY29sMg0KCQl7DQoJCWJvcmRlci1sZWZ0OiAxcHggc29saWQgI2VlZjhmZjsNCgkJfQ0KCQ0KCS5mbGV4aWdyaWQgZGl2Lm5CdG4NCgkJew0KCQlwb3NpdGlvbjogYWJzb2x1dGU7DQoJCWhlaWdodDogMjRweDsNCgkJd2lkdGg6IDE0cHg7DQoJCXotaW5kZXg6IDkwMDsNCgkJYmFja2dyb3VuZDogI2ZhZmFmYSB1cmwoaW1hZ2VzL2ZoYmcuZ2lmKSByZXBlYXQteCBib3R0b207DQoJCWJvcmRlcjogMHB4IHNvbGlkICNjY2M7DQoJCWJvcmRlci1sZWZ0OiAxcHggc29saWQgI2NjYzsNCgkJdG9wOiAwcHg7DQoJCWxlZnQ6IDBweDsNCgkJbWFyZ2luLXRvcDogMXB4Ow0KCQljdXJzb3I6IHBvaW50ZXI7DQoJCWRpc3BsYXk6IG5vbmU7DQoJCX0NCgkJDQoJCS5mbGV4aWdyaWQgZGl2Lm5CdG4gZGl2DQoJCQl7DQoJCQloZWlnaHQ6IDI0cHg7DQoJCQl3aWR0aDogMTJweDsNCgkJCWJvcmRlci1sZWZ0OiAxcHggc29saWQgI2ZmZjsNCgkJCWZsb2F0OiBsZWZ0Ow0KCQkJYmFja2dyb3VuZDogdXJsKGltYWdlcy9kZG4ucG5nKSBuby1yZXBlYXQgY2VudGVyOw0KCQkJfQkJDQoJCQ0KCQkuZmxleGlncmlkIGRpdi5uQnRuLnNydGQNCgkJCXsNCgkJCWJhY2tncm91bmQ6IHVybChpbWFnZXMvd2JnLmdpZikgcmVwZWF0LXggMHB4IC0xcHg7DQoJCQl9DQoJCQ0KDQouZmxleGlncmlkIGRpdi5tRGl2DQoJew0KCWJhY2tncm91bmQ6IHVybChpbWFnZXMvd2JnLmdpZikgcmVwZWF0LXggdG9wOw0KCWJvcmRlcjogMXB4IHNvbGlkICNjY2M7DQoJYm9yZGVyLWJvdHRvbTogMHB4Ow0KCWJvcmRlci10b3A6IDBweDsNCglmb250LXdlaWdodDogYm9sZDsNCglkaXNwbGF5OiBibG9jazsNCglvdmVyZmxvdzogaGlkZGVuOw0KCXdoaXRlLXNwYWNlOiBub3dyYXA7DQoJcG9zaXRpb246IHJlbGF0aXZlOw0KCX0NCg0KLmZsZXhpZ3JpZCBkaXYubURpdiBkaXYNCgl7DQoJcGFkZGluZzogNnB4Ow0KCXdoaXRlLXNwYWNlOiBub3dyYXA7DQoJfQ0KCQ0KCQkuZmxleGlncmlkIGRpdi5tRGl2IGRpdi5wdG9ndGl0bGUNCgkJCXsNCgkJCXBvc2l0aW9uOiBhYnNvbHV0ZTsNCgkJCXRvcDogNHB4Ow0KCQkJcmlnaHQ6IDNweDsNCgkJCXBhZGRpbmc6IDBweDsNCgkJCWhlaWdodDogMTZweDsNCgkJCXdpZHRoOiAxNnB4Ow0KCQkJb3ZlcmZsb3c6IGhpZGRlbjsNCgkJCWJvcmRlcjogMXB4IHNvbGlkICNjY2M7DQoJCQljdXJzb3I6IHBvaW50ZXI7DQoJCQl9DQoNCgkJCS5mbGV4aWdyaWQgZGl2Lm1EaXYgZGl2LnB0b2d0aXRsZTpob3Zlcg0KCQkJew0KCQkJYmFja2dyb3VuZC1wb3NpdGlvbjogbGVmdCAtMnB4Ow0KCQkJYm9yZGVyLWNvbG9yOiAjYmJiOw0KCQkJfQ0KCQkJDQoJCQkuZmxleGlncmlkIGRpdi5tRGl2IGRpdi5wdG9ndGl0bGUgc3Bhbg0KCQkJew0KCQkJZGlzcGxheTogYmxvY2s7DQoJCQlib3JkZXItbGVmdDogMXB4IHNvbGlkICNlZWU7DQoJCQlib3JkZXItdG9wOiAxcHggc29saWQgI2ZmZjsNCgkJCWJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGRkOw0KCQkJd2lkdGg6IDE0cHg7DQoJCQloZWlnaHQ6IDE0cHg7DQoJCQliYWNrZ3JvdW5kOiB1cmwoaW1hZ2VzL3V1cC5wbmcpIG5vLXJlcGVhdCBjZW50ZXI7DQoJCQl9DQoJCQkNCgkJCS5mbGV4aWdyaWQgZGl2Lm1EaXYgZGl2LnB0b2d0aXRsZS52c2JsZSBzcGFuDQoJCQl7DQoJCQliYWNrZ3JvdW5kOiB1cmwoaW1hZ2VzL2Rkbi5wbmcpIG5vLXJlcGVhdCBjZW50ZXI7CQkJDQoJCQl9CQkJDQoNCi5mbGV4aWdyaWQgZGl2LnREaXYgLyp0b29sYmFyKi8NCgl7DQoJYmFja2dyb3VuZDogI2ZhZmFmYSB1cmwoaW1hZ2VzL2JnLmdpZikgcmVwZWF0LXggdG9wOw0KCXBvc2l0aW9uOiByZWxhdGl2ZTsJCQkNCglib3JkZXI6IDFweCBzb2xpZCAjY2NjOw0KCWJvcmRlci1ib3R0b206IDBweDsNCglvdmVyZmxvdzogaGlkZGVuOw0KCX0NCg0KCS5mbGV4aWdyaWQgZGl2LnREaXYyDQoJCXsNCgkJZmxvYXQ6IGxlZnQ7DQoJCWNsZWFyOiBib3RoOw0KCQlwYWRkaW5nOiAxcHg7DQoJCX0NCg0KLmZsZXhpZ3JpZCBkaXYuc0RpdiAvKnRvb2xiYXIqLw0KCXsNCgliYWNrZ3JvdW5kOiAjZmFmYWZhIHVybChpbWFnZXMvYmcuZ2lmKSByZXBlYXQteCB0b3A7DQoJcG9zaXRpb246IHJlbGF0aXZlOw0KCWJvcmRlcjogMXB4IHNvbGlkICNjY2M7DQoJYm9yZGVyLXRvcDogMHB4Ow0KCW92ZXJmbG93OiBoaWRkZW47DQoJZGlzcGxheTogbm9uZTsNCgl9DQoNCgkuZmxleGlncmlkIGRpdi5zRGl2Mg0KCQl7DQoJCWZsb2F0OiBsZWZ0Ow0KCQljbGVhcjogYm90aDsNCgkJcGFkZGluZzogNXB4Ow0KCQlwYWRkaW5nLWxlZnQ6IDVweDsNCgkJd2lkdGg6IDEwMjRweDsNCgkJfQ0KDQoJCS5mbGV4aWdyaWQgZGl2LnNEaXYyIGlucHV0LCAuZmxleGlncmlkIGRpdi5zRGl2MiBzZWxlY3QNCgkJew0KCQl2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOw0KCQl9DQoJCQkNCgkuZmxleGlncmlkIGRpdi5idG5zZXBhcmF0b3INCgkJew0KCQlmbG9hdDogbGVmdDsNCgkJaGVpZ2h0OiAyMnB4Ow0KCQlib3JkZXItbGVmdDogMXB4IHNvbGlkICNjY2M7DQoJCWJvcmRlci1yaWdodDogMXB4IHNvbGlkICNmZmY7DQoJCW1hcmdpbjogMXB4Ow0KCQl9DQoJDQoJLmZsZXhpZ3JpZCBkaXYuZmJ1dHRvbg0KCQl7DQoJCQlmbG9hdDogbGVmdDsNCgkJCWRpc3BsYXk6IGJsb2NrOw0KCQkJY3Vyc29yOiBwb2ludGVyOw0KCQkJcGFkZGluZzogMXB4Ow0KCQl9DQoNCgkuZmxleGlncmlkIGRpdi5mYnV0dG9uIGRpdg0KCQl7DQoJCQlmbG9hdDogbGVmdDsNCgkJCXBhZGRpbmc6IDFweCAzcHg7DQoJCX0JCQ0KCQkNCgkuZmxleGlncmlkIGRpdi5mYnV0dG9uIHNwYW4NCgkJew0KCQlmbG9hdDogbGVmdDsNCgkJZGlzcGxheTogYmxvY2s7DQoJCXBhZGRpbmc6IDNweDsNCgkJfQ0KDQoJLmZsZXhpZ3JpZCBkaXYuZmJ1dHRvbjpob3ZlciwgLmZsZXhpZ3JpZCBkaXYuZmJ1dHRvbi5mYk92ZXINCgkJew0KCQkJcGFkZGluZzogMHB4Ow0KCQkJYm9yZGVyOiAxcHggc29saWQgI2NjYzsNCgkJfQ0KDQoJLmZsZXhpZ3JpZCBkaXYuZmJ1dHRvbjpob3ZlciBkaXYsIC5mbGV4aWdyaWQgZGl2LmZidXR0b24uZmJPdmVyIGRpdg0KCQl7DQoJCQlwYWRkaW5nOiAwcHggMnB4Ow0KCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZmZmOw0KCQkJYm9yZGVyLXRvcDogMXB4IHNvbGlkICNmZmY7DQoJCQlib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZWVlOw0KCQkJYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlZWU7DQoJCX0JCQ0KCQkNCgkNCi8qIGVuZCB0b29sYmFyKi8NCg0KLmZsZXhpZ3JpZCBkaXYuaERpdg0KCXsNCgliYWNrZ3JvdW5kOiAjZmFmYWZhIHVybChpbWFnZXMvZmhiZy5naWYpIHJlcGVhdC14IGJvdHRvbTsNCglwb3NpdGlvbjogcmVsYXRpdmU7DQoJYm9yZGVyOiAxcHggc29saWQgI2NjYzsNCglib3JkZXItYm90dG9tOiAwcHg7DQoJb3ZlcmZsb3c6IGhpZGRlbjsNCgl9CQ0KDQouZmxleGlncmlkIGRpdi5oRGl2IHRhYmxlDQoJew0KCWJvcmRlci1yaWdodDogMXB4IHNvbGlkICNmZmY7DQoJfQ0KDQoJLmZsZXhpZ3JpZCBkaXYuY0RyYWcNCgkJew0KCQlmbG9hdDogbGVmdDsNCgkJcG9zaXRpb246IGFic29sdXRlOw0KCQl6LWluZGV4OiAyOw0KCQlvdmVyZmxvdzogdmlzaWJsZTsNCgkJfQ0KDQoJCS5mbGV4aWdyaWQgZGl2LmNEcmFnIGRpdg0KCQkJew0KCQkJZmxvYXQ6IGxlZnQ7DQoJCQliYWNrZ3JvdW5kOiBub25lOw0KCQkJZGlzcGxheTogYmxvY2s7DQoJCQlwb3NpdGlvbjogYWJzb2x1dGU7DQoJCQloZWlnaHQ6IDI0cHg7DQoJCQl3aWR0aDogNXB4Ow0KCQkJY3Vyc29yOiBjb2wtcmVzaXplOw0KCQkJfQ0KCQkJDQoJCS5mbGV4aWdyaWQgZGl2LmNEcmFnIGRpdjpob3ZlciwgLmZsZXhpZ3JpZCBkaXYuY0RyYWcgZGl2LmRyYWdnaW5nDQoJCQl7DQoJCQliYWNrZ3JvdW5kOiB1cmwoaW1hZ2VzL2xpbmUuZ2lmKSByZXBlYXQteSAycHggY2VudGVyOw0KCQkJfQ0KDQouZmxleGlncmlkIGRpdi5pRGl2DQoJew0KCQlib3JkZXI6IDFweCBzb2xpZCAjMzE2YWM1Ow0KCQlwb3NpdGlvbjogYWJzb2x1dGU7DQoJCW92ZXJmbG93OiB2aXNpYmxlOw0KCQliYWNrZ3JvdW5kOiBub25lOw0KCX0NCgkNCgkuZmxleGlncmlkIGRpdi5pRGl2IGlucHV0LCAuZmxleGlncmlkIGRpdi5pRGl2IHNlbGVjdCwgLmZsZXhpZ3JpZCBkaXYuaURpdiB0ZXh0YXJlYQ0KCQl7DQoJCWZvbnQtZmFtaWx5OiBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOw0KCQlmb250LXNpemU6IDExcHg7DQoJCX0NCgkJDQoJLmZsZXhpZ3JpZCBkaXYuaURpdiBpbnB1dC50Yg0KCQl7DQoJCWJvcmRlcjogMHB4Ow0KCQlwYWRkaW5nOiAwcHg7DQoJCXdpZHRoOiAxMDAlOw0KCQloZWlnaHQ6IDEwMCU7DQoJCXBhZGRpbmc6IDBweDsNCgkJYmFja2dyb3VuZDogbm9uZTsNCgkJfQkJCQ0KCQkJCQkNCi5mbGV4aWdyaWQgZGl2LmJEaXYNCgl7DQoJYm9yZGVyOiAxcHggc29saWQgI2NjYzsNCglib3JkZXItdG9wOiAwcHg7DQoJYmFja2dyb3VuZDogI2ZmZjsNCglvdmVyZmxvdzogYXV0bzsNCglwb3NpdGlvbjogcmVsYXRpdmU7DQoJfQ0KCQ0KLmZsZXhpZ3JpZCBkaXYuYkRpdiB0YWJsZQ0KCXsNCglib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYzsNCgl9DQoJDQoJLmZsZXhpZ3JpZCBkaXYuaEdyaXANCgl7DQoJcG9zaXRpb246IGFic29sdXRlOw0KCXRvcDogMHB4Ow0KCXJpZ2h0OiAwcHg7DQoJaGVpZ2h0OiA1cHg7DQoJd2lkdGg6IDVweDsNCgliYWNrZ3JvdW5kOiB1cmwoaW1hZ2VzL2xpbmUuZ2lmKSByZXBlYXQteCBjZW50ZXI7DQoJbWFyZ2luLXJpZ2h0OiAxcHg7DQoJY3Vyc29yOiBjb2wtcmVzaXplOw0KCX0NCgkNCgkJLmZsZXhpZ3JpZCBkaXYuaEdyaXA6aG92ZXIsIC5mbGV4aWdyaWQgZGl2LmhHcmlwLmhnT3Zlcg0KCQkJew0KCQkJCWJvcmRlci1yaWdodDogMXB4IHNvbGlkICM5OTk7CQkJCQ0KCQkJCW1hcmdpbi1yaWdodDogMHB4Ow0KCQkJfQ0KCQ0KCS5mbGV4aWdyaWQgZGl2LnZHcmlwDQoJCXsNCgkJaGVpZ2h0OiA1cHg7DQoJCW92ZXJmbG93OiBoaWRkZW47DQoJCXBvc2l0aW9uOiByZWxhdGl2ZTsNCgkJYmFja2dyb3VuZDogI2ZhZmFmYSB1cmwoaW1hZ2VzL3diZy5naWYpIHJlcGVhdC14IDBweCAtMXB4Ow0KCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOw0KCQlib3JkZXItdG9wOiAwcHg7DQoJCXRleHQtYWxpZ246IGNlbnRlcjsNCgkJY3Vyc29yOiByb3ctcmVzaXplOw0KCQl9DQoJCQkNCgkJCS5mbGV4aWdyaWQgZGl2LnZHcmlwIHNwYW4NCgkJCQkJew0KCQkJCQlkaXNwbGF5OiBibG9jazsNCgkJCQkJbWFyZ2luOiAxcHggYXV0bzsNCgkJCQkJd2lkdGg6IDIwcHg7DQoJCQkJCWhlaWdodDogMXB4Ow0KCQkJCQlvdmVyZmxvdzogaGlkZGVuOw0KCQkJCQlib3JkZXItdG9wOiAxcHggc29saWQgI2FhYTsNCgkJCQkJYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNhYWE7CQ0KCQkJCQliYWNrZ3JvdW5kOiBub25lOw0KCQkJCQl9DQoNCi5mbGV4aWdyaWQgZGl2LmhEaXYgdGgsIC5mbGV4aWdyaWQgIGRpdi5iRGl2IHRkICAvKiBjb21tb24gY2VsbCBwcm9wZXJ0aWVzKi8NCgl7DQoJdGV4dC1hbGlnbjogbGVmdDsNCglib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZGRkOw0KCWJvcmRlci1sZWZ0OiAxcHggc29saWQgI2ZmZjsNCglvdmVyZmxvdzogaGlkZGVuOw0KCXZlcnRpY2FsLWFsaWduOiB0b3AgIWltcG9ydGFudDsNCgl9DQoNCgkJLmZsZXhpZ3JpZCBkaXYuaERpdiB0aCBkaXYsIC5mbGV4aWdyaWQgIGRpdi5iRGl2IHRkICBkaXYsIGRpdi5jb2xDb3B5IGRpdi8qIGNvbW1vbiBpbm5lciBjZWxsIHByb3BlcnRpZXMqLw0KCQkJew0KCQkJcGFkZGluZzogNXB4Ow0KCQkJYm9yZGVyLWxlZnQ6IDBweCBzb2xpZCAjZmZmOw0KCQkJfQ0KDQouZmxleGlncmlkIGRpdi5oRGl2IHRoLCBkaXYuY29sQ29weQ0KCXsNCglmb250LXdlaWdodDogbm9ybWFsOw0KCWhlaWdodDogMjRweDsNCgljdXJzb3I6IGRlZmF1bHQ7DQoJd2hpdGUtc3BhY2U6IG5vd3JhcDsNCglvdmVyZmxvdzogaGlkZGVuOw0KCX0JDQoNCmRpdi5jb2xDb3B5IHsNCglmb250LWZhbWlseTogQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsNCglmb250LXNpemU6IDExcHg7DQoJYmFja2dyb3VuZDogI2ZhZmFmYSB1cmwoaW1hZ2VzL2ZoYmcuZ2lmKSByZXBlYXQteCBib3R0b207DQoJYm9yZGVyOiAxcHggc29saWQgI2NjYzsNCglib3JkZXItYm90dG9tOiAwcHg7DQoJb3ZlcmZsb3c6IGhpZGRlbjsNCgl9DQoNCi5mbGV4aWdyaWQgZGl2LmhEaXYgdGguc29ydGVkDQoJew0KCWJhY2tncm91bmQ6IHVybChpbWFnZXMvd2JnLmdpZikgcmVwZWF0LXggMHB4IC0xcHg7DQoJYm9yZGVyLWJvdHRvbTogMHB4IHNvbGlkICNjY2M7DQoJfQ0KCQ0KCS5mbGV4aWdyaWQgZGl2LmhEaXYgdGgudGhPdmVyDQoJew0KCX0NCg0KCS5mbGV4aWdyaWQgZGl2LmhEaXYgdGgudGhPdmVyIGRpdiwgLmZsZXhpZ3JpZCBkaXYuaERpdiB0aC5zb3J0ZWQudGhPdmVyIGRpdg0KCXsNCglib3JkZXItYm90dG9tOiAxcHggc29saWQgb3JhbmdlOw0KCXBhZGRpbmctYm90dG9tOiA0cHg7DQoJfQ0KCQ0KCS5mbGV4aWdyaWQgZGl2LmhEaXYgdGguc29ydGVkIGRpdg0KCXsNCglib3JkZXItYm90dG9tOiAwcHggc29saWQgI2NjYzsNCglwYWRkaW5nLWJvdHRvbTogNXB4Ow0KCX0NCg0KCS5mbGV4aWdyaWQgZGl2LmhEaXYgdGgudGhNb3ZlDQoJew0KCWJhY2tncm91bmQ6ICNmZmY7DQoJY29sb3I6ICNmZmY7DQoJfQ0KCQ0KCS5mbGV4aWdyaWQgZGl2LmhEaXYgdGguc29ydGVkLnRoTW92ZSBkaXYNCgkJew0KCQlib3JkZXItYm90dG9tOiAxcHggc29saWQgI2ZmZjsNCgkJcGFkZGluZy1ib3R0b206IDRweA0KCQl9DQoJDQoJLmZsZXhpZ3JpZCBkaXYuaERpdiB0aC50aE1vdmUgZGl2DQoJew0KCQliYWNrZ3JvdW5kOiAjZmZmICFpbXBvcnRhbnQ7DQoJfQkNCgkNCgkuZmxleGlncmlkIGRpdi5oRGl2IHRoIGRpdi5zZGVzYw0KCQl7DQoJCWJhY2tncm91bmQ6IHVybChpbWFnZXMvZG4ucG5nKSBuby1yZXBlYXQgY2VudGVyIHRvcDsNCgkJfQkNCg0KCS5mbGV4aWdyaWQgZGl2LmhEaXYgdGggZGl2LnNhc2MNCgkJew0KCQliYWNrZ3JvdW5kOiB1cmwoaW1hZ2VzL3VwLnBuZykgbm8tcmVwZWF0IGNlbnRlciB0b3A7DQoJCX0JDQoJCQ0KLmZsZXhpZ3JpZCBkaXYuYkRpdiB0ZA0KCXsNCglib3JkZXItYm90dG9tOiAxcHggc29saWQgI2ZmZjsNCgl2ZXJ0aWNhbC1hbGlnbjogdG9wOw0KCXdoaXRlLXNwYWNlOiBub3dyYXA7DQoJfQ0KDQoJCS5mbGV4aWdyaWQgZGl2LmhEaXYgdGggZGl2DQoJCQl7DQoJCQl9DQoJCQkNCgkJCS5mbGV4aWdyaWQgc3Bhbi5jZHJvcGxlZnQNCgkJCXsNCgkJCWRpc3BsYXk6IGJsb2NrOw0KCQkJYmFja2dyb3VuZDogdXJsKGltYWdlcy9wcmV2LmdpZikgbm8tcmVwZWF0IC00cHggY2VudGVyOw0KCQkJd2lkdGg6IDI0cHg7DQoJCQloZWlnaHQ6IDI0cHg7DQoJCQlwb3NpdGlvbjogcmVsYXRpdmU7DQoJCQl0b3A6IC0yNHB4Ow0KCQkJbWFyZ2luLWJvdHRvbTogLTI0cHg7DQoJCQl6LWluZGV4OiAzOw0KCQkJfQ0KDQoJCQkuZmxleGlncmlkIGRpdi5oRGl2IHNwYW4uY2Ryb3ByaWdodA0KCQkJew0KCQkJZGlzcGxheTogYmxvY2s7DQoJCQliYWNrZ3JvdW5kOiB1cmwoaW1hZ2VzL25leHQuZ2lmKSBuby1yZXBlYXQgMTJweCBjZW50ZXI7DQoJCQl3aWR0aDogMjRweDsNCgkJCWhlaWdodDogMjRweDsNCgkJCWZsb2F0OiByaWdodDsNCgkJCXBvc2l0aW9uOiByZWxhdGl2ZTsNCgkJCXRvcDogLTI0cHg7DQoJCQltYXJnaW4tYm90dG9tOiAtMjRweDsNCgkJCX0NCg0KDQoJCS5mbGV4aWdyaWQgZGl2LmJEaXYgdGQgZGl2DQoJCQl7DQoJCQlib3JkZXItdG9wOiAwcHggc29saWQgI2ZmZjsNCgkJCXBhZGRpbmctYm90dG9tOiA0cHg7DQoJCQl9DQoJDQoJCQkJDQoJCS5mbGV4aWdyaWQgdHIgdGQuc29ydGVkDQoJCQkJew0KCQkJCWJhY2tncm91bmQ6ICNmM2YzZjM7DQoJCQkJYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2RkZDsNCgkJCQlib3JkZXItYm90dG9tOiAxcHggc29saWQgI2YzZjNmMzsNCgkJCQl9CQkNCg0KCQkJCS5mbGV4aWdyaWQgdHIgdGQuc29ydGVkIGRpdg0KCQkJCQl7DQoJCQkJCX0NCg0KDQoJCS5mbGV4aWdyaWQgdHIuZXJvdyB0ZA0KCQkJCXsNCgkJCQliYWNrZ3JvdW5kOiAjZjdmN2Y3Ow0KCQkJCWJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZjdmN2Y3Ow0KCQkJCX0NCgkJCQkNCgkJLmZsZXhpZ3JpZCB0ci5lcm93IHRkLnNvcnRlZA0KCQkJCXsNCgkJCQliYWNrZ3JvdW5kOiAjZTNlM2UzOw0KCQkJCWJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTNlM2UzOw0KCQkJCX0JCQkJCQkNCg0KCQkJCS5mbGV4aWdyaWQgdHIuZXJvdyB0ZC5zb3J0ZWQgZGl2DQoJCQkJCXsNCgkJCQkJfQ0KDQoJCS5mbGV4aWdyaWQgZGl2LmJEaXYgdHI6aG92ZXIgdGQsIA0KCQkuZmxleGlncmlkIGRpdi5iRGl2IHRyOmhvdmVyIHRkLnNvcnRlZCwNCgkJLmZsZXhpZ3JpZCBkaXYuYkRpdiB0ci50ck92ZXIgdGQuc29ydGVkLCANCgkJLmZsZXhpZ3JpZCBkaXYuYkRpdiB0ci50ck92ZXIgdGQNCgkJCXsNCgkJCWJhY2tncm91bmQ6ICNkOWViZjU7DQoJCQlib3JkZXItbGVmdDogMXB4IHNvbGlkICNlZWY4ZmY7DQoJCQlib3JkZXItYm90dG9tOiAxcHggZG90dGVkICNhOGQ4ZWI7DQoJCQl9DQoJCQkJCQ0KCQkuZmxleGlncmlkIGRpdi5iRGl2IHRyLnRyU2VsZWN0ZWQ6aG92ZXIgdGQsIA0KCQkuZmxleGlncmlkIGRpdi5iRGl2IHRyLnRyU2VsZWN0ZWQ6aG92ZXIgdGQuc29ydGVkLA0KCQkuZmxleGlncmlkIGRpdi5iRGl2IHRyLnRyT3Zlci50clNlbGVjdGVkIHRkLnNvcnRlZCwgDQoJCS5mbGV4aWdyaWQgZGl2LmJEaXYgdHIudHJPdmVyLnRyU2VsZWN0ZWQgdGQsDQoJCS5mbGV4aWdyaWQgdHIudHJTZWxlY3RlZCB0ZC5zb3J0ZWQsIA0KCQkuZmxleGlncmlkIHRyLnRyU2VsZWN0ZWQgdGQNCgkJCXsNCgkJCWJhY2tncm91bmQ6ICNkNWVmZmMgdXJsKGltYWdlcy9obC5wbmcpIHJlcGVhdC14IHRvcDsNCgkJCWJvcmRlci1yaWdodDogMXB4IHNvbGlkICNkMmUzZWM7DQoJCQlib3JkZXItbGVmdDogMXB4IHNvbGlkICNlZWY4ZmY7DQoJCQlib3JkZXItYm90dG9tOiAxcHggc29saWQgI2E4ZDhlYjsNCgkJCX0NCg0KCS8qIG5vdnN0cmlwZSBhZGp1c3RtZW50cyAqLw0KDQoJLmZsZXhpZ3JpZC5ub3ZzdHJpcGUgLmJEaXYgdGFibGUNCgl7DQoJCWJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjOw0KCQlib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjY2NjOw0KCX0NCg0KCS5mbGV4aWdyaWQubm92c3RyaXBlICBkaXYuYkRpdiB0ZCAgDQoJCXsNCgkJYm9yZGVyLXJpZ2h0LWNvbG9yOiAjZmZmOw0KCQl9DQoJCQ0KCS5mbGV4aWdyaWQubm92c3RyaXBlIGRpdi5iRGl2IHRyLmVyb3cgdGQuc29ydGVkDQoJCXsNCgkJYm9yZGVyLXJpZ2h0LWNvbG9yOiAjZTNlM2UzOw0KCQl9DQoNCgkuZmxleGlncmlkLm5vdnN0cmlwZSBkaXYuYkRpdiB0ciB0ZC5zb3J0ZWQNCgkJew0KCQlib3JkZXItcmlnaHQtY29sb3I6ICNmM2YzZjM7DQoJCX0NCg0KCS5mbGV4aWdyaWQubm92c3RyaXBlICBkaXYuYkRpdiB0ci5lcm93IHRkICANCgkJew0KCQlib3JkZXItcmlnaHQtY29sb3I6ICNmN2Y3Zjc7DQoJCWJvcmRlci1sZWZ0LWNvbG9yOiAjZjdmN2Y3Ow0KCQl9DQoJCQ0KCQkuZmxleGlncmlkLm5vdnN0cmlwZSBkaXYuYkRpdiB0ci50clNlbGVjdGVkOmhvdmVyIHRkLCANCgkJLmZsZXhpZ3JpZC5ub3ZzdHJpcGUgZGl2LmJEaXYgdHIudHJTZWxlY3RlZDpob3ZlciB0ZC5zb3J0ZWQsDQoJCS5mbGV4aWdyaWQubm92c3RyaXBlIGRpdi5iRGl2IHRyLnRyT3Zlci50clNlbGVjdGVkIHRkLnNvcnRlZCwgDQoJCS5mbGV4aWdyaWQubm92c3RyaXBlIGRpdi5iRGl2IHRyLnRyT3Zlci50clNlbGVjdGVkIHRkLA0KCQkuZmxleGlncmlkLm5vdnN0cmlwZSB0ci50clNlbGVjdGVkIHRkLnNvcnRlZCwgDQoJCS5mbGV4aWdyaWQubm92c3RyaXBlIHRyLnRyU2VsZWN0ZWQgdGQNCgkJCXsNCgkJCWJvcmRlci1yaWdodDogMXB4IHNvbGlkICMwMDY2RkY7DQoJCQlib3JkZXItbGVmdDogMXB4IHNvbGlkICMwMDY2RkY7DQoJCQl9CQkNCg0KCS5mbGV4aWdyaWQubm92c3RyaXBlIGRpdi5iRGl2IHRyLnRyT3ZlciB0ZCwgLmZsZXhpZ3JpZC5ub3ZzdHJpcGUgZGl2LmJEaXYgdHI6aG92ZXIgdGQNCgkJew0KCQlib3JkZXItbGVmdC1jb2xvcjogI2Q5ZWJmNTsNCgkJYm9yZGVyLXJpZ2h0LWNvbG9yOiAjZDllYmY1Ow0KCQl9DQoNCgkvKiBlbmQgbm92c3RyaXBlICovDQoNCi5mbGV4aWdyaWQgZGl2LnBEaXYNCgl7DQoJYmFja2dyb3VuZDogdXJsKGltYWdlcy93YmcuZ2lmKSByZXBlYXQteCAwIC0xcHg7DQoJYm9yZGVyOiAxcHggc29saWQgI2NjYzsNCglib3JkZXItdG9wOiAwcHg7DQoJb3ZlcmZsb3c6IGhpZGRlbjsNCgl3aGl0ZS1zcGFjZTogbm93cmFwOw0KCXBvc2l0aW9uOiByZWxhdGl2ZTsNCgl9DQoNCi5mbGV4aWdyaWQgZGl2LnBEaXYgZGl2LnBEaXYyDQoJew0KCW1hcmdpbjogM3B4Ow0KCW1hcmdpbi1sZWZ0OiAtMnB4Ow0KCWZsb2F0OiBsZWZ0Ow0KCXdpZHRoOiAxMDI0cHg7DQoJfQkNCgkNCglkaXYucEdyb3VwDQoJCXsNCgkJZmxvYXQ6IGxlZnQ7DQoJCWJhY2tncm91bmQ6IG5vbmU7DQoJCWhlaWdodDogMjRweDsNCgkJbWFyZ2luOiAwcHggNXB4Ow0KCQl9DQoJDQoJLmZsZXhpZ3JpZCBkaXYucERpdiAucFBhZ2VTdGF0LCAuZmxleGlncmlkIGRpdi5wRGl2IC5wY29udHJvbA0KCQl7DQoJCXBvc2l0aW9uOiByZWxhdGl2ZTsNCg0KCQl0b3A6IDVweDsNCgkJb3ZlcmZsb3c6IHZpc2libGU7DQoJCX0NCgkJDQoJLmZsZXhpZ3JpZCBkaXYucERpdiBpbnB1dA0KCQl7DQoJCXZlcnRpY2FsLWFsaWduOiB0ZXh0LXRvcDsNCgkJcG9zaXRpb246IHJlbGF0aXZlOw0KCQl0b3A6IC01cHg7DQoJCX0NCgkNCgkuZmxleGlncmlkIGRpdi5wRGl2ICBkaXYucEJ1dHRvbg0KCQl7DQoJCWZsb2F0OiBsZWZ0Ow0KCQl3aWR0aDogMjJweDsNCgkJaGVpZ2h0OiAyMnB4Ow0KCQlib3JkZXI6IDBweDsNCgkJY3Vyc29yOiBwb2ludGVyOw0KCQlvdmVyZmxvdzogaGlkZGVuOw0KCQl9DQoNCgkJLmZsZXhpZ3JpZCBkaXYucERpdiAgZGl2LnBCdXR0b246aG92ZXIsIC5mbGV4aWdyaWQgZGl2LnBEaXYgIGRpdi5wQnV0dG9uLnBCdG5PdmVyDQoJCQl7DQoJCQl3aWR0aDogMjBweDsNCgkJCWhlaWdodDogMjBweDsNCgkJCWJvcmRlcjogMXB4IHNvbGlkICNjY2M7DQoJCQljdXJzb3I6IHBvaW50ZXI7DQoJCQl9DQoJCQ0KCS5mbGV4aWdyaWQgZGl2LnBEaXYgIGRpdi5wQnV0dG9uIHNwYW4NCgkJew0KCQl3aWR0aDogMjBweDsNCgkJaGVpZ2h0OiAyMHB4Ow0KCQlkaXNwbGF5OiBibG9jazsNCgkJZmxvYXQ6IGxlZnQ7DQoJCX0JCQ0KCQ0KCQkuZmxleGlncmlkIGRpdi5wRGl2ICBkaXYucEJ1dHRvbjpob3ZlciBzcGFuLCAuZmxleGlncmlkIGRpdi5wRGl2ICBkaXYucEJ1dHRvbi5wQnRuT3ZlciBzcGFuDQoJCQl7DQoJCQl3aWR0aDogMTlweDsNCgkJCWhlaWdodDogMTlweDsNCgkJCWJvcmRlci10b3A6IDFweCBzb2xpZCAjZmZmOw0KCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZmZmOw0KCQkJfQkJDQoJCQ0KDQoJCS5mbGV4aWdyaWQgLnBTZWFyY2gNCgkJCXsNCgkJCWJhY2tncm91bmQ6IHVybChpbWFnZXMvbWFnbmlmaWVyLnBuZykgbm8tcmVwZWF0IGNlbnRlcjsNCgkJCX0NCgkNCgkJLmZsZXhpZ3JpZCAucEZpcnN0DQoJCQl7DQoJCQliYWNrZ3JvdW5kOiB1cmwoaW1hZ2VzL2ZpcnN0LmdpZikgbm8tcmVwZWF0IGNlbnRlcjsNCgkJCX0NCgkJCQ0KCQkuZmxleGlncmlkIC5wUHJldg0KCQkJew0KCQkJYmFja2dyb3VuZDogdXJsKGltYWdlcy9wcmV2LmdpZikgbm8tcmVwZWF0IGNlbnRlcjsNCgkJCX0NCg0KCQkuZmxleGlncmlkIC5wTmV4dA0KCQkJew0KCQkJYmFja2dyb3VuZDogdXJsKGltYWdlcy9uZXh0LmdpZikgbm8tcmVwZWF0IGNlbnRlcjsNCgkJCX0NCg0KCQkuZmxleGlncmlkIC5wTGFzdA0KCQkJew0KCQkJYmFja2dyb3VuZDogdXJsKGltYWdlcy9sYXN0LmdpZikgbm8tcmVwZWF0IGNlbnRlcjsNCgkJCX0NCgkJCQ0KCQkuZmxleGlncmlkIC5wUmVsb2FkDQoJCQl7DQoJCQliYWNrZ3JvdW5kOiB1cmwoaW1hZ2VzL2xvYWQucG5nKSBuby1yZXBlYXQgY2VudGVyOw0KCQkJfQ0KCQkJDQoJCS5mbGV4aWdyaWQgLnBSZWxvYWQubG9hZGluZw0KCQkJew0KCQkJYmFja2dyb3VuZDogdXJsKGltYWdlcy9sb2FkLmdpZikgbm8tcmVwZWF0IGNlbnRlcjsNCgkJCX0JCQkJCQkJCQkJCQkJCQkNCg0KLyogaWUgYWRqdXN0bWVudHMgKi8NCgkJCQ0KCQkuZmxleGlncmlkLmllIGRpdi5oRGl2IHRoIGRpdiwgLmZsZXhpZ3JpZC5pZSAgZGl2LmJEaXYgdGQgIGRpdiwgZGl2LmNvbENvcHkuaWUgZGl2LyogY29tbW9uIGlubmVyIGNlbGwgcHJvcGVydGllcyovDQoJCQl7DQoJCQlvdmVyZmxvdzogaGlkZGVuOw0KCQkJfQkJCQ0KCQk=]]></data>
	</file>
	<file>
	  <filename>/CSS/flexigrid/images/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/CSS/flexigrid/images/._fhbg.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[AAUWBwACAABNYWMgT1MgWCAgICAgICAgAAIAAAAJAAAAMgAADrAAAAACAAAO4gAAAR4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQVRUUi9cJmYAAA7iAAAAmAAAACoAAAAAAAAAAAAAAAAAAAABAAAAmAAAACoAABVjb20uYXBwbGUucXVhcmFudGluZQAwMDAwOzQ3N2RlY2IyO0ZpcmVmb3g7fG9yZy5tb3ppbGxhLmZpcmVmb3gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAAAAAAAHlRoaXMgcmVzb3VyY2UgZm9yayBpbnRlbnRpb25hbGx5IGxlZnQgYmxhbmsgICAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAAAAAAAAB4AAAAAAAAAAAAcAB7//w==]]></data>
	</file>
	<file>
	  <filename>/CSS/flexigrid/images/._wbg.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[AAUWBwACAABNYWMgT1MgWCAgICAgICAgAAIAAAAJAAAAMgAADrAAAAACAAAO4gAAAR4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQVRUUj1cv+kAAA7iAAAAmAAAACoAAAAAAAAAAAAAAAAAAAABAAAAmAAAACoAABVjb20uYXBwbGUucXVhcmFudGluZQAwMDAwOzQ3N2U1NGZiO0ZpcmVmb3g7fG9yZy5tb3ppbGxhLmZpcmVmb3gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAAAAAAAHlRoaXMgcmVzb3VyY2UgZm9yayBpbnRlbnRpb25hbGx5IGxlZnQgYmxhbmsgICAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAAAAAAAAB4AAAAAAAAAAAAcAB7//w==]]></data>
	</file>
	<file>
	  <filename>/CSS/flexigrid/images/bg.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhAgA4AIcAAObm5ufn5+jo6Onp6erq6uvr6+zs7O3t7e7u7u/v7/Dw8P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAP8ALAAAAAACADgAAAgzABcsAEAQQICDAQQoXDig4QACECMWmFjAgMWLBzIeQMCxY4KPCRSIHEmypMmTKFOqPBkQADs=]]></data>
	</file>
	<file>
	  <filename>/CSS/flexigrid/images/btn-sprite.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhAwA/APcAAAA8dAD/AED/QFaLxOWXAPiyMIiGhq2trYyy2L7T6f3YidDQ0Nzc3N7e3s7f79Hh8NTj8dfk8tjl8tvn897p9N/q9f/wz+Dg4OLi4uPj4+Xl5efn5+Pn6+jo6Onp6evr6+zs7O3t7e7u7uHr9ePt9uXu9+bv9+jw+P7+/f///f7+//7////+/v/+/////v///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAAEALAAAAAADAD8AAAiYAAMEODBQxQEXGg6gEHEwxAEWIA68+CDRg8QOEjdITPgig0SPLzBIvCCxQUmJDA6kWDCwhUADBAMYDKDBhQERKAyEsAmChYEPLwx4CNoh6IagGoJmUBoUQ9ALQRtEDcog6IIUBloYCLB14AGJL15oGCuibIizINJ+WOuhbYe3G+KO1ZChrl0MeC/obcC3L4O/CwKHDWrAQEAAOw==]]></data>
	</file>
	<file>
	  <filename>/CSS/flexigrid/images/ddn.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAAgAAAAEAgMAAADOo5ZjAAAACVBMVEUAAAAAAABZWVjux8MkAAAAAXRSTlMAQObYZgAAABRJREFUeNpjmBrGoBrBwJnAwNQAAA+QAlRLCPc3AAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/CSS/flexigrid/images/dn.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAAcAAAAEBAMAAACw6DhOAAAAMFBMVEX////U1NSgoKCwsLCWlpaMjIy5ubmPj4/Jycmvr69ERESOjo60tLRtbW3ExMR9fX3wBco8AAAAAXRSTlMAQObYZgAAABpJREFUaN5jWB+tacDA69bIwMBQJwAkeBgYACgEAtKsiYDIAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/CSS/flexigrid/images/fhbg.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhAgAYAIcAANDQ0Ovs7uzt7+3u8O7v8e/w8vDx8/Hy9Pn5+QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAP8ALAAAAAACABgAAAghABEIHEiwYMEDCA8YWMiwgMMCBAgMmDhAgIAAGAMAABAQADs=]]></data>
	</file>
	<file>
	  <filename>/CSS/flexigrid/images/first.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhEAAQAMQNACRIkC1TnjNZpj9otyxm2Dhu3D913Sxx7kRvwEJt1Ep1yEh630574f///1OA1lGD4VaE6V+L4GCM5GiU5W+W7G2Z5mec+3Ga536f7oKg542r8Iiu/5a076G+8KK9/6rE7yH5BAEAAA0ALAAAAAAQABAAAAVWYCOOZGme55RdJls+X1VGcul0Exl5uc1Jo8TGAywpNBFRwmLhJEsIzKMhIBwsmmlpQFmIANaLtySgGEbgx5ksKZAACXcpACGUwCYAw17iv+EogYKDJCEAOw==]]></data>
	</file>
	<file>
	  <filename>/CSS/flexigrid/images/hl.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAAEAAAAQBAMAAAAlsQiEAAAAMFBMVEXe8vzv+P3X7/zV7/zm9f3q9v3o9v3s9/3w+P3W7/zh8/za8Pzk8/3c8fzx+P32+/1uHvCUAAAAJklEQVR42mP4wPSBWYBBgCmBWYJJAMg6wPSAgYHhApBUYJjA/AIAcVIHl+VFkDQAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/CSS/flexigrid/images/last.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhEAAQAMQNACRIkC1TnjNZpj9otyxm2Dhu3D913Sxx7kRvwEJt1Ep1yEh630574f///1OA1lGD4VaE6V+L4GCM5GiU5W+W7G2Z5mec+3Ga536f7oKg542r8Iiu/5a076G+8KK9/6rE7yH5BAEAAA0ALAAAAAAQABAAAAVZYCOOZGme52Ve2WRWUVl9jzl58Th1jil5m8RIwumVIhyLRdiIaBSmh8ZyIAgaDwzCtLhUAaIFZWAyPAhgkYFyLRUSaVFB0iahSwRIwETgM+IoInCAgYWGDSEAOw==]]></data>
	</file>
	<file>
	  <filename>/CSS/flexigrid/images/line.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhAgANAIcAAKyomf///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAP8ALAAAAAACAA0AAAgOAAEEEEhwoMGCCA8GCAgAOw==]]></data>
	</file>
	<file>
	  <filename>/CSS/flexigrid/images/load.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/CSS/flexigrid/images/load.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABgFBMVEX///+VzI39/v2k1Juaz5KPyYdPlUiQyohPkEliolvm7eaFxH6QvIucz5SZz5COxoZUlU651Lav2KqbvpeOyYWLxoNstGSJxoJWl1B2nHO0zrKSs49TnktAhjlRm0lusGZamVS/3LxUnExoqGCQtoyNx4af0peBwneRyoqf0Za64rRXo06Fx3tjpF2Lx4Vlp15NlkWLw4Nrl2iWzY4+gzeiwp9Dfz12s2+Yzo+h0ph+v3WUy4xrrGOw1KygvJ6407VOi0djnV6Ex3ul2J6v26lboFRRkkuiv6BtnWlaplDC375smWmDxHmLw4Soz6RkqV1MjUe92bqc0JSKxIPe8Ny20bS717iSyololmS+4bmPyYheq1SQyYmJrIeDw3lsrWW73rdNgUru9+271rd8vXOgyZv8/fyxy69Eiz2WzY9uq2eCwnqr2qTO3M2Xz5CBvnqn156HxIBoqmGUupA3ezIzdi6gy5uBpX5Hi0Dv+O2UspKJw4Ce0ZU6fjRKi0V/wXnPsN2/AAAAAXRSTlMAQObYZgAAAL5JREFUeNpjYIABWyYGVJDFA2NVRsaIecoYKHOqQPgheXHhQTV81qyFAtIgfpKxCLMFCyO7KHd9QCxIIMHKkldVX7a2lKOuHKzDt5oxWKEYyEiUhBjhr8TGIQxiVKV5KQYm2zOECYZKpTNpgYT8XNkqHCDKnJ2ARConf5S5B5ifo6MerS1nY8gqLuEO4rv4FDCrAW3O5tb15gIJCKVo8mZq6OXHuxnlQowoky/KMCkxi7DjgnmHxxHNp0ymcCYAHGogH+6u80IAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/CSS/flexigrid/images/magnifier.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAB7klEQVR42q2TvWtTYRSHf/crMWJN1DTCtX4PVf8AoSIEahcxUzcLnYQuxVmcRHBwE4Q7CW7STUEKflDEgCBqBkEbUqG1tRATjVYwubnvec95XwdrRZooos9yzvSc34FzgH/E+dGUl9g1xkQstiQiIYuBZqkzy6zWMj1xYtD0FTxeYteIeZRN2+KOrQ581wIWSNhitZXg3cduWTOPTo3t3SRxAUDERNvTpljY5iDRglZb0GwLYjI4MJhBIRsUFXHUK4ELAMxS2plx8FUJYrJgYyFi0SGLz13Bnl0ZKOJSX4FmCT0XiMlCjIUYfJcYi44ySAUeiDjsJfABgDTD2ABsLIwBxP6s1gBiAaUZfRMQcT3RBr7rrE/GRg18B3GiwUQf+gs0zy43YwykXaQ8B7KeJO07yGU8vF5sYXfnZW7uypnhngJFPP220S7Pr3xB4AGFAR+FrI+Ua/G82kD7UwOnwuYWpeIndy6MDPc8pGt3F13NHGktJWIJWQs0y/t8d55Gs68ODh09jvrCC7ypPGxpnZycjGoLvwj6ce/SWIoomcnvOzK+/9gIVmvPUK08aJ27sTK4scLvOH15jpSKzy5Xn96uVe6jMHQYRCq/aYU/cXPqUIpZzXhBejxur109f2vt4l9/XjSZ965P5EL8T74BN3IdzGJ3khwAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/CSS/flexigrid/images/next.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhEAAQAMQRACRIkChNli1TnjNZpjhgrz9otx1m9S9kzy9l0zBiyD5z2yRq8ixx7jRy6ERvwEp1yE970P///1OA1lOE3VWF3liH30+K9k+J/VeH4F+M4Wec+2ic+YWu/4iu/6K9/6W//yH5BAEAABEALAAAAAAQABAAAAU2YCSOZGmeqIilppSxJPS9cPRoX1U7F/dRsMJF0/FMWASGRaOADRaNQ01gSNQiAcQ1Ath6v7UQADs=]]></data>
	</file>
	<file>
	  <filename>/CSS/flexigrid/images/prev.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhEAAQAMQfAF+M4aW//1WF3lOE3Sxx7h1m9S9kz4iu/y1Tnk970CRq8jhgr6K9/0+K9oWu/yRIkC9l0zBiyERvwD5z20p1yDNZpliH31OA1leH4D9ot2ib/TRy6Gic+UeE+yhNlv///yH5BAEAAB8ALAAAAAAQABAAAAU34CeOZGmeaImlJXCxIxAk8GcFGgULgdNIrAHjwOlkYBNOg7CoGTaKSu0TKSCmH4gH+3lwv2BTCAA7]]></data>
	</file>
	<file>
	  <filename>/CSS/flexigrid/images/up.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAAcAAAAECAMAAAB1GNVPAAAAM1BMVEX////U1NR9fX3R0dG0tLSXl5dAQEBHR0fV1dVERESvr6/Z2dmfn59sbGx5eXlGRkbMzMypZP6kAAAAAXRSTlMAQObYZgAAACJJREFUeNpjYGBgYGcAA04mXhDFxsfFwsPAwM/KLMDIzQEABd0Aiem8x60AAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/CSS/flexigrid/images/uup.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAAgAAAAECAYAAACzzX7wAAAAIklEQVR42mNgQAKRkRH/QZgBG4BKgDGGImRJDEXYJJEVAQDl3xw9KTmDLgAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/CSS/flexigrid/images/wbg.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhAQAsAYcAANfX19jY2Nra2tvb29zc3N7e3uDg4OLi4uPj4+Xl5efn5+jo6Onp6evr6+zs7O3t7e7u7vDw8P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAP8ALAAAAAABACwBAAhBAAVIiADhgYMGDBYoSIAAwQEDBQoQGCAgAICLGDNq3Mixo8ePIEOKHEnSo4STKFOqXMmypcuXMGPKnEmzpkwBAQEAOw==]]></data>
	</file>
	<file>
	  <filename>/CSS/images/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/CSS/images/add.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABgFBMVEX///+X1YuYzIav36ag2ZabwZiDtW59uWt0t1x3vGBJjz9zulyTv3/r8+m81bnZ6dHv9uzo8ebc8djU689koFZJj0K95LaW04m32qpEjDtwwWPn8OWU04qmyKButVi02qZIjUHL5sONvnunyaGd2JKVv4Jno1tVlk2YzIqOzIR5vW5oq1N9vmeJvniTzYiGyXyKwnmIuHdrqlhDjziMy4FvtVikzpQ9hjW136x4rmjF3bnj7eHM4MbK3sVTlUyr1J1lq1XF6MDO6cmGt3Gy26iz3al8w2u03arg8ty34K+BzHVCjTa41a+O0oO61rF/uW2Z0Yt6xmt+x2+SxYBenFaXx4W43a/X7tJyuVuz2aVxvl+KuXl4tGSJyH+Kz32GyXqFzXlXnkWPwn18umSVwIKMu3ZqrFtsqlpFjTy73K+126iV1Iphnlh+wWmmz5a+4ram0Ja23axmolh2rGd/smrE3Lh9vGbj7uKl25tQmUHN4MfJ3sR5wWRvtVlwuFn///8guUIpAAAAAXRSTlMAQObYZgAAAMZJREFUeNpjYMAGBKxSnNmi/XhhfH4eM0VhpzB/yyooPzXTQ6yChdnRoMgWrJ5HQkhFTzM729eTXU0QKFAaGs4iE1tfn+AWZJGoDBRQLWQ20deqr0/j5A4IzgEKsOUzxteDQV2uPRdQoMQ1zgsqoGMvCRQw1BAPlHIAcusimJTUgQI+2u41UZxAATkOeWNWoABvMbsLJ3ddrSlHZLpoOcghNiIxWUxlyUyRRuZ8EKdWi1QmFeTpeivwwTwjLRvClWHHao3V5wDDGi1NCzgVpQAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/CSS/images/close.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABgFBMVEX////uycPxnZa/XED2hGz76+vuko/2z8/nxLn6nYvjf33wjHfcppbzeWPmWU7ual7cp5fjeHngZVzWYFTOYlT2q6L6q53uZlLEZEzja2Hxjnr15+Lyd2PvycXwtrb36ObieXnwg3v4tqj0oJ7AVT3WbmTpW0/nXVn4r6Tpe3DwkX/UcWXBTTP6o5G6UjTbVkv81M3feXTMUjzicGbzp6P7qZzpY1vuhH3ea2r6uq73kX71o5/vysbwtbX8x7r36OXqsKz1rKHxjYHNaFj5y8T0tKrhqZ7EUDTpf3jQTz7AWT/uinXzc13mVlDhq6DmWlLhb3D56ejwZFbvhn74jHb1r6X4w772gmi/UzrmVkzIa1X6mofqg33NYFHbaWXMZlXXXVH929T93Njrs6/keHHoenXcbmn508zwhXD4lH/1pqHjbmP56ujqZlzCZ0ztk474hnDca2i+Vjn5ua/yrar3k3715uH0op7qXFD6k3/mWEz5kn73q6HsX1TpWU3////t8u6ZAAAAAXRSTlMAQObYZgAAAL5JREFUeNpjYMAGWOW4LAoNkwNhfHaF/LB0F1djVRsoP6AkyVKX09ROU4QRrF7QJDFaSyqzOkQp21keKGAbY8BZ6s0CBLwann5AAa5QMe5aMJBx8ogCCqQVV2bUg0EdP5MKUCCupiAcKpDLVAQUMHSy8qkDAzVFQwmggIO+aJA4iF/lb+3OAxTI0ZZ0rK2o44v0LRdmlgY5RDZWKCvYTN1cOUGPA+JUxnijVDa2FB1mDphn7N2ivCLyBMqw+hwArDYvSbfrpQIAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/CSS/MasterCSS.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[QGNoYXJzZXQgInV0Zi04IjsNCi8qIENTUyBEb2N1bWVudCBDb21mb3J0YWFSZWd1bGFyKi8NCmEgeyB0ZXh0LWRlY29yYXRpb246bm9uZTt9DQphOmhvdmVyIHsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7fQ0KDQpkaXYucGFnZWNvbnRhaW5lciB7DQovKmZvbnQtZmFtaWx5OiJDb21mb3J0YWFSZWd1bGFyIjsqLw0KfQ0KLkJhY2tMaW5re2N1cnNvcjpwb2ludGVyO2Zsb2F0OnJpZ2h0O30NCi5oaWRkZW57ZGlzcGxheTpub25lO30NCg0KDQojTWFpbkNvbnRlbnQgaDEsI01haW5Db250ZW50IGgyLCNNYWluQ29udGVudCBoMywjTWFpbkNvbnRlbnQgaDQsI01haW5Db250ZW50IGg1e21hcmdpbjowO30NCg0KYmxvY2txdW90ZSwgaW5wdXQsIGxpLCBzZWxlY3QsIHRoLCB0ZCB7DQpmb250LXNpemU6MTJweDsNCn0NCiNNYWluQ29udGVudCAuZXh0ZXJuYWwsDQouZXh0ZXJuYWx7DQpiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCB1cmwoLi4vaW1hZ2VzL2V4dGVybmFsLmdpZikgbm8tcmVwZWF0IHJpZ2h0IDVweDsJDQoJcGFkZGluZy1yaWdodDoxNXB4Ow0KCW1hcmdpbi1yaWdodDoyNXB4Ow0KCX0NCiBiLnJib3R0b20gew0KZGlzcGxheTpibG9jazsNCn0NCiBiLnJib3R0b20gKiB7DQpiYWNrZ3JvdW5kOiNBOEI3QzYgbm9uZSByZXBlYXQgc2Nyb2xsIDAgMDsNCmRpc3BsYXk6YmxvY2s7DQpoZWlnaHQ6MXB4Ow0Kb3ZlcmZsb3c6aGlkZGVuOw0KfQ0KIGIucjEgew0KYmFja2dyb3VuZDojMDAwMDAwIG5vbmUgcmVwZWF0IHNjcm9sbCAwIDA7DQptYXJnaW46MCA1cHg7DQp9DQogYi5yMiB7DQptYXJnaW46MCAzcHg7DQp9DQogYi5yMyB7DQptYXJnaW46MCAycHg7DQp9DQogYi5yNCB7DQpoZWlnaHQ6MnB4Ow0KbWFyZ2luOjAgMXB4Ow0KfQ0KLlNpbWNvbnsNCglwYWRkaW5nOiAxMHB4Ow0KCWJvcmRlci1yaWdodDogMnB4IHNvbGlkICMwMDA7DQoJYm9yZGVyLWxlZnQ6IDJweCBzb2xpZCAjMDAwOw0KCWJvcmRlci10b3Atc3R5bGU6IG5vbmU7DQoJYm9yZGVyLWJvdHRvbS1zdHlsZTogbm9uZTsNCgliYWNrZ3JvdW5kLWNvbG9yOiNBOEI3QzY7DQp9DQouU2ltV3JhcHtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50OyB9DQouY29kZUhJR0hMSUdIVHtjb2xvcjojMzU0ZDU4OyBmb250LXNpemU6MTRweDsgZm9udC13ZWlnaHQ6NjAwOyBsaW5lLWhlaWdodDoxNXB4O30NCmRpdi5wYWdlY29udGFpbmVyIC5wYWdlaGVhZGVyIHtjb2xvcjojMzU0ZDU4OyBmb250LXNpemU6MjRweDsgZm9udC13ZWlnaHQ6NjAwOyBsaW5lLWhlaWdodDoxNXB4O30NCg0KZGl2LnBhZ2Vjb250YWluZXIgLnBhZ2VoZWFkZXIgc3Bhbi5oZWxwdGV4dHsNCglmb250LXNpemU6MTJweDsgDQoJZm9udC13ZWlnaHQ6bm9ybWFsOw0KCW1hcmdpbi10b3A6LTRweDsNCglwYWRkaW5nOjJweDsNCglwb3NpdGlvbjphYnNvbHV0ZTsNCglyaWdodDozNXB4Ow0KCXotaW5kZXg6MTA7DQp9DQpocnsNCglkaXNwbGF5OmJsb2NrOw0KCX0NCnRleHRhcmVhew0KCXdpZHRoOjI1MHB4Ow0KCWhlaWdodDo3NXB4Ow0KfQ0KDQojUFBCTSBoMyBzcGFue2JhY2tncm91bmQtY29sb3I6Izk5OTk5OTsNCmJvcmRlcjoxcHggc29saWQgI0NDQ0NDQzsNCmNvbG9yOiMzMzMzMzM7DQpmb250LXNpemU6MThweDsNCnBhZGRpbmc6NXB4IDVweCA1cHggMTVweDtjdXJzb3I6cG9pbnRlcjsgZGlzcGxheTpibG9jazt3aWR0aDphdXRvOyBwb3NpdGlvbjpyZWxhdGl2ZTsgei1pbmRleDo5O30NCiNQUEJNIGgzIHNwYW4gaW1neyB6LWluZGV4Ojk7IHBvc2l0aW9uOmFic29sdXRlOyB3aWR0aDo5NSU7DQpoZWlnaHQ6MTAwJTt9DQojUFBCTSBoMyBzcGFuOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2NjYzsNCmJvcmRlcjoxcHggc29saWQgIzk5OTtjb2xvcjojMDAwO30NCmRpdi5jb250ZW50ew0KYmFja2dyb3VuZC1jb2xvcjojRTJFMkUyOw0KYm9yZGVyOjFweCBzb2xpZCAjNjY2NjY2Ow0KbWFyZ2luOjFweCAxcHggNXB4Ow0KcGFkZGluZzozcHggNHB4IDVweDsNCn0NCg0KDQoNCiNQUEJNIC5UYWJwYW5lczIgaDJ7Zm9udC1zaXplOjIwcHg7DQpsZWZ0OjA7DQptYXJnaW4tYm90dG9tOjVweDsNCnBhZGRpbmctbGVmdDoxNXB4Ow0KcGFkZGluZy10b3A6MDt9DQoNCg0KLmV4dGVuZEhBTkRMRSAqIHsNCglkaXNwbGF5OmlubGluZTsNCgltYXJnaW46MWVtIDAgMC4yZW0gMjAlOw0KCWN1cnNvcjpwb2ludGVyOw0KfQ0KDQouTmV4dGVuZCB7DQoJbWFyZ2luOjFlbSAwIDAuMmVtIDIwJTsNCglwb3NpdGlvbjogcmVsYXRpdmU7DQp9DQouTmV4dGVuZCB7DQoJZGlzcGxheTpub25lOw0KfQ0KDQouVHJhbnNsYXRlQ29uIHsNCgliYWNrZ3JvdW5kLWNvbG9yOiNGRkZGRkY7DQoJYm9yZGVyOjJweCBzb2xpZCAjMDAwMDAwOw0KCXBvc2l0aW9uOmFic29sdXRlOw0KCXdpZHRoOjE5NXB4Ow0KCXotaW5kZXg6NzAwOw0KfQ0KLmNvbnRyeUNvZGVzew0KCXdpZHRoOjM1MHB4Ow0KCWhlaWdodDoxNTBweDsNCglvdmVyZmxvdzpzY3JvbGw7DQoJYm9yZGVyOiBtZWRpdW0gaW5zZXQgIzMzMzsNCgliYWNrZ3JvdW5kLWNvbG9yOiNDQ0M7DQoJcGFkZGluZzoxMHB4Ow0KCWxpbmUtaGVpZ2h0OjIwcHg7DQp9DQoNCg0KI2RlbW90aXAgew0KCWRpc3BsYXk6bm9uZTsNCgliYWNrZ3JvdW5kOnRyYW5zcGFyZW50IHVybChodHRwOi8vZmxvd3BsYXllci5vcmcvdG9vbHMvaW1nL3Rvb2x0aXAvYmxhY2tfYXJyb3dfYmlnLnBuZyk7DQoJZm9udC1zaXplOjEycHg7DQoJaGVpZ2h0OjE2NnB4Ow0KCXdpZHRoOjMyMHB4Ow0KCXBhZGRpbmc6MjVweDsNCgljb2xvcjojZmZmOw0KCXBvc2l0aW9uOiByZWxhdGl2ZTsNCgl6LWluZGV4Ojk5OTY7DQp9DQogDQovKiBzdHlsZSB0aGUgdHJpZ2dlciBlbGVtZW50cyAqLw0KI2RlbW8gaW1nIHsNCglib3JkZXI6MDsNCgljdXJzb3I6cG9pbnRlcjsNCgltYXJnaW46MCA4cHg7DQp9DQppbWcuc3lzdGVtaWNvbnsgY3Vyc29yOnBvaW50ZXI7fQ0KLnByb2dyZXNzIHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NDUlO2xlZnQ6NTAlOyB6LWluZGV4Ojk5OTc7fQ0KDQojcGFnZV90YWJzIGRpdnsNCgliYWNrZ3JvdW5kOnRyYW5zcGFyZW50IG5vbmU7DQoJYm9yZGVyOiBub25lOw0KCW1hcmdpbjowcHg7DQoJcGFkZGluZzowcHg7DQoJZmxvYXQ6bm9uZTsNCgljdXJzb3I6ZGVmYXVsdDt6LWluZGV4Ojk7fQ0KZGl2LlRhYnBhbmVzIGRpdi5wYW5lLGRpdi5UYWJwYW5lczIgZGl2LnBhbmUgew0KCWRpc3BsYXk6bm9uZTsJCQ0KCXBhZGRpbmc6MTVweCAxMHB4Ow0KCWJvcmRlcjoxcHggc29saWQgIzk5OTsNCglib3JkZXItdG9wOjA7DQoJZm9udC1zaXplOjEycHg7DQoJYmFja2dyb3VuZC1jb2xvcjojZmZmOw0KfQ0KDQovKiByb290IGVsZW1lbnQgZm9yIHRhYnMgICovDQp1bC50YWJlcnMsdWwudGFiZXJzMiB7IA0KCWxpc3Qtc3R5bGU6bm9uZTsgDQoJbWFyZ2luOjAgIWltcG9ydGFudDsgDQoJcGFkZGluZzowOw0KCWhlaWdodDozMHB4Ow0KCWJvcmRlci1ib3R0b206MXB4IHNvbGlkICM2NjY7CQ0KfQ0KDQovKiBzaW5nbGUgdGFiICovDQp1bC50YWJlcnMgbGksdWwudGFiZXJzMiBsaSB7IA0KCWZsb2F0OmxlZnQ7CSANCgl0ZXh0LWluZGVudDowOw0KCXBhZGRpbmc6MDsNCgltYXJnaW46MCAhaW1wb3J0YW50Ow0KCWxpc3Qtc3R5bGUtaW1hZ2U6bm9uZSAhaW1wb3J0YW50OyANCn0NCg0KLyogbGluayBpbnNpZGUgdGhlIHRhYi4gdXNlcyBhIGJhY2tncm91bmQgaW1hZ2UgKi8NCnVsLnRhYmVycyBhLHVsLnRhYmVyczIgYSB7IA0KCWJhY2tncm91bmQ6IHVybCguLi9pbWFnZXMvYmx1ZS5wbmcpIG5vLXJlcGVhdCAtNDIwcHggMDsNCglmb250LXNpemU6MTFweDsNCglkaXNwbGF5OmJsb2NrOw0KCWhlaWdodDogMzBweDsgIA0KCWxpbmUtaGVpZ2h0OjMwcHg7DQoJd2lkdGg6IDEzNHB4Ow0KCXRleHQtYWxpZ246Y2VudGVyOwkNCgl0ZXh0LWRlY29yYXRpb246bm9uZTsNCgljb2xvcjojMDAwOw0KCXBhZGRpbmc6MHB4Ow0KCW1hcmdpbjowcHg7CQ0KCXBvc2l0aW9uOnJlbGF0aXZlOw0KCXRvcDoxcHg7DQp9DQoNCnVsLnRhYmVycyBhOmFjdGl2ZSx1bC50YWJlcnMyIGE6YWN0aXZlIHsNCglvdXRsaW5lOm5vbmU7CQkNCn0NCg0KLyogd2hlbiBtb3VzZSBlbnRlcnMgdGhlIHRhYiBtb3ZlIHRoZSBiYWNrZ3JvdW5kIGltYWdlICovDQp1bC50YWJlcnMgYTpob3Zlcix1bC50YWJlcnMyIGE6aG92ZXIgew0KCWJhY2tncm91bmQ6IHVybCguLi9pbWFnZXMvYmx1ZS5wbmcpIG5vLXJlcGVhdCAtNDIwcHggIC0zMXB4OzsNCgljb2xvcjojZmZmOwkNCn0NCg0KLyogYWN0aXZlIHRhYiB1c2VzIGEgY2xhc3MgbmFtZSAiY3VycmVudCIuIGl0J3MgaGlnaGxpZ2h0IGlzIGFsc28gZG9uZSBieSBtb3ZpbmcgdGhlIGJhY2tncm91bmQgaW1hZ2UuICovDQp1bC50YWJlcnMgYS5jdXJyZW50LCB1bC50YWJlcnMgYS5jdXJyZW50OmhvdmVyLCB1bC50YWJlcnMgbGkuY3VycmVudCBhICwgIHVsLnRhYmVyczIgYS5jdXJyZW50LCB1bC50YWJlcnMyIGEuY3VycmVudDpob3ZlciwgdWwudGFiZXJzMiBsaS5jdXJyZW50IGEgew0KCWJhY2tncm91bmQtcG9zaXRpb246IC00MjBweCAtNjJweDsJCQ0KCWN1cnNvcjpkZWZhdWx0ICFpbXBvcnRhbnQ7IA0KCWNvbG9yOiMwMDAgIWltcG9ydGFudDsNCn0NCg0KLyogRGlmZmVyZW50IHdpZHRocyBmb3IgdGFiczogdXNlIGEgY2xhc3MgbmFtZTogdzEsIHcyLCB3MyBvciB3MiAqLw0KDQoNCi8qIHdpZHRoIDEgKi8NCnVsLnRhYmVycyBhLncxIAkJCXsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTUxOXB4IDA7IHdpZHRoOjEzNHB4OyB9DQp1bC50YWJlcnMgYS53MTpob3ZlciAJeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNTE5cHggLTMxcHg7IH0NCnVsLnRhYmVycyBhLncxLmN1cnJlbnQgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNTE5cHggLTYycHg7IH0NCg0KLyogd2lkdGggMiAqLw0KdWwudGFiZXJzIGEudzIgCQkJeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzY2cHggLTBweDsgd2lkdGg6MTU0cHg7IH0NCnVsLnRhYmVycyBhLncyOmhvdmVyIAl7IGJhY2tncm91bmQtcG9zaXRpb246IC0zNjZweCAtMzFweDsgfQ0KdWwudGFiZXJzIGEudzIuY3VycmVudCB7IGJhY2tncm91bmQtcG9zaXRpb246IC0zNjZweCAtNjJweDsgfQ0KDQoNCi8qIHdpZHRoIDMgKi8NCnVsLnRhYmVycyBhLnczIAkJCXsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE5M3B4IC0wcHg7IHdpZHRoOjE3NHB4OyB9DQp1bC50YWJlcnMgYS53Mzpob3ZlciAJeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTkzcHggLTMxcHg7IH0NCnVsLnRhYmVycyBhLnczLmN1cnJlbnQgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTkzcHggLTYycHg7IH0NCg0KLyogd2lkdGggNCAqLw0KdWwudGFiZXJzIGEudzQgCQkJeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMHB4IC0wcHg7IHdpZHRoOjE5NHB4OyB9DQp1bC50YWJlcnMgYS53NDpob3ZlciAJeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMHB4IC0zMXB4OyB9DQp1bC50YWJlcnMgYS53NC5jdXJyZW50IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTBweCAtNjJweDsgfQ0KDQoNCi8qIGluaXRpYWxseSBhbGwgcGFuZXMgYXJlIGhpZGRlbiAqLyANCmRpdi5UYWJwYW5lcyBkaXYucGFuZSB7DQoJZGlzcGxheTpub25lOwkNCglwb3NpdGlvbjpyZWxhdGl2ZTsJDQp9DQpkaXYuVGFicGFuZXMyIGRpdi5wYW5lIHsNCglkaXNwbGF5Om5vbmU7CQ0KCXBvc2l0aW9uOnJlbGF0aXZlOwkNCn0NCg0KDQoNCg0KDQoNCi5jb250ZW50e2Rpc3BsYXk6bm9uZTt9DQoNCg0KDQoNCg0KDQoNCiNwYWdlX3RhYnMgI1BQQk17DQoJYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgIzMzMzsNCglib3JkZXItYm90dG9tOiAxcHggc29saWQgIzMzMzsNCglib3JkZXItbGVmdDogMXB4IHNvbGlkICMzMzM7DQoJd2lkdGg6MTAwJTsNCn0NCiNwYWdlX3RhYnMgZGl2LnBhbmV7DQoJd2lkdGg6MTAwJTsNCnBhZGRpbmctdG9wOjEwcHg7DQp0ZXh0LWFsaWduOmxlZnQ7DQoJfQ0KI3BhZ2VfdGFic3sgbWFyZ2luOjBweDsgcGFkZGluZzowcHg7fQ0KDQpkaXYucGFnZWNvbnRhaW5lciAucGFnZXRleHQgeyB0ZXh0LWFsaWduOmxlZnQ7fQ0KDQojcGFnZV90YWJzIGRpdi5UcmFuc2xhdGV7DQoJdGV4dC1hbGlnbjpsZWZ0Ow0KY29sb3I6IzM4NDY1NDsNCmZvbnQtd2VpZ2h0OmJvbGQ7DQptYXJnaW46MWVtIDAgMC4yZW0gMjAlOw0KcGFkZGluZzowOw0Kd2lkdGg6YXV0bzsJDQp9DQoNCmRpdi5UcmFuc2xhdGUgKnsNCgltYXJnaW46MHB4OyBwYWRkaW5nOjBweDsNCn0NCi8qI2VkaXRhcmVhMCwjU0lBLCNmcmFtZV9lZGl0YXJlYTB7ICBoZWlnaHQ6ODAwcHg7DQogIHdpZHRoOjQwMHB4Ow0KICBtaW4td2lkdGg6IDkwJTsNCiAgbWF4LXdpZHRoOiA5MCU7DQp9Ki8NCg0KDQoNCiNTSUF7ICBoZWlnaHQ6ODAwcHg7DQogIHdpZHRoOjQwMHB4Ow0KICBtaW4td2lkdGg6IDEwMCU7DQogIG1heC13aWR0aDogMTAwJTsNCn0NCg0KDQojdG9vbEJhci10e2JhY2tncm91bmQ6dXJsKCIuLi9pbWFnZXMvdG9vbF9iYXItYmsucG5nIikgcmVwZWF0LXggc2Nyb2xsIGxlZnQgdG9wIHRyYW5zcGFyZW50Ow0KaGVpZ2h0OjI2cHg7DQpwb3NpdGlvbjphYnNvbHV0ZTsNCnJpZ2h0OjA7DQp0b3A6NTJweDsNCndpZHRoOjEwMCU7DQp6LWluZGV4Ojk7DQp0ZXh0LWFsaWduOmNlbnRlcjsNCn0NCiNvcEJhcnsNCmRpc3BsYXk6aW5saW5lOw0KZmxvYXQ6bGVmdDsNCi8qZm9udC1mYW1pbHk6IkNvbWZvcnRhYUJvbGQiOyovDQpmb250LXNpemU6MTJweDsNCmhlaWdodDoyNnB4Ow0KcGFkZGluZy1sZWZ0OjE1cHg7DQpwYWRkaW5nLXRvcDo1cHg7DQpjdXJzb3I6cG9pbnRlcjsNCn0NCiNtaWRCYXJ7ZGlzcGxheTppbmxpbmUtYmxvY2s7Zm9udC1zaXplOjEycHg7Lypmb250LWZhbWlseToiQ29tZm9ydGFhQm9sZCI7Ki9oZWlnaHQ6MjZweDtjdXJzb3I6cG9pbnRlcjtwYWRkaW5nLXRvcDo1cHg7fQ0KI2dvdG9Cb3h7ZmxvYXQ6cmlnaHQ7cGFkZGluZy1yaWdodDoxNXB4O2ZvbnQtc2l6ZToxNnB4Oy8qZm9udC1mYW1pbHk6IkNvbWZvcnRhYUJvbGQiOyovfQ0KI2dvdG9Cb3ggaW5wdXR7Zm9udC1zaXplOjE2cHg7DQpsaW5lLWhlaWdodDoxNnB4Ow0KbWFyZ2luLXRvcDoycHg7DQpwYWRkaW5nOjAgNXB4Ow0KdGV4dC1hbGlnbjpyaWdodDsNCndpZHRoOjMycHg7Lypmb250LWZhbWlseToiQ29tZm9ydGFhQm9sZCI7Ki99DQoNCi5yZXBvcnRBcmVhew0KYmFja2dyb3VuZC1jb2xvcjojRkZGRkZGOw0KaGVpZ2h0Ojk4JTsNCm92ZXJmbG93OnNjcm9sbDsNCnBhZGRpbmc6NXB4Ow0KfQ0KI3Rvb2xCYXItYntiYWNrZ3JvdW5kOnVybCgiLi4vaW1hZ2VzL3Rvb2xfYmFyLWJrLnBuZyIpIHJlcGVhdC14IHNjcm9sbCBsZWZ0IHRvcCB0cmFuc3BhcmVudDsNCmhlaWdodDoyNnB4Ow0KcG9zaXRpb246YWJzb2x1dGU7DQpyaWdodDowOw0KYm90dG9tOjA7DQp3aWR0aDoxMDAlOw0Kei1pbmRleDo5Ow0KfQ0KI3Rvb2xCYXItYiAuaW5uZXJ7cGFkZGluZzo1cHggNXB4IDA7DQp9DQovKiNKQl9udW1hcmVhIHVsLCNKQl9udW1hcmVhIHVsIGxpew0KCWJvcmRlci1ib3R0b206MXB4IHNvbGlkICNkZWU0ZWI7DQpmb250LWZhbWlseToiQ29tZm9ydGFhQm9sZCI7Zm9udC1zaXplOjEzcHg7DQpsaW5lLWhlaWdodDoyMHB4Ow0KbGlzdC1zdHlsZTpub25lIG91dHNpZGUgbm9uZTsNCm1hcmdpbjowOw0KdGV4dC1hbGlnbjpyaWdodDsNCnBhZGRpbmc6MDsNCmNvbG9yOiMzZTNlM2U7DQp9DQojSkJfbnVtYXJlYSB1bCBsaXtwYWRkaW5nLWxlZnQ6MzBweDt9Ki8NCiNmcmFtZV9TSUEgLndhcm57DQoJYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy93YXJuQXJyb3cucG5nKTsNCgliYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0Ow0KCWJhY2tncm91bmQtcG9zaXRpb246IGxlZnQgY2VudGVyOw0KfQ0KI2ZyYW1lX1NJQSAuZXJyb3J7DQoJYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9lcnJvckFycm93LnBuZyk7DQoJYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsNCgliYWNrZ3JvdW5kLXBvc2l0aW9uOiBsZWZ0IGNlbnRlcjsNCn0NCg0KDQoNCiNOT1RFU3tkaXNwbGF5Om5vbmU7DQp9DQoNCg0KZGl2LnBhZ2VtY29udGFpbmVyIHsNCgliYWNrZ3JvdW5kOiNENkU0QzUgbm9uZSByZXBlYXQgc2Nyb2xsIDAgMDsNCglib3JkZXI6MXB4IHNvbGlkICNCREQzQTM7DQoJaGVpZ2h0OjUwcHg7DQoJbWFyZ2luOjEwcHg7DQoJcGFkZGluZzoxMHB4Ow0KCXBvc2l0aW9uOmFic29sdXRlOw0KCXJpZ2h0Oi0yMHB4Ow0KCXRvcDoyMHB4Ow0KCXdpZHRoOjI1JTsNCgl6LWluZGV4Ojk5OTk7DQp9DQojTk9URWFjY29yZGlvbiwjV2FybmFjY29yZGlvbiwjRXJyb3JhY2NvcmRpb257CQ0KCS8qIGZvciBJRSAqLw0KCWZpbHRlcjphbHBoYShvcGFjaXR5PTgwKTsNCgkvKiBDU1MzIHN0YW5kYXJkICovDQoJb3BhY2l0eTowLjg7DQoJDQogIC1tb3otYm9yZGVyLXJhZGl1czogOXB4Ow0KICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDlweDsNCiAgYm9yZGVyLXJhZGl1czogOXB4Ow0KDQp9DQoNCiNFcnJvcmFjY29yZGlvbnsNCglwb3NpdGlvbjpyZWxhdGl2ZTsNCglwYWRkaW5nLXRvcDozMHB4Ow0KCWJvcmRlcjoxcHggc29saWQgIzkwMDsNCgltYXJnaW46NXB4Ow0KCWJhY2tncm91bmQ6I0YzMCB1cmwoLi4vaW1hZ2VzL2Fjb3IucG5nKSByZXBlYXQteCBzY3JvbGwgdG9wIGxlZnQ7DQp9DQojV2FybmFjY29yZGlvbnsNCglwb3NpdGlvbjpyZWxhdGl2ZTsNCglwYWRkaW5nLXRvcDozMHB4Ow0KCWJvcmRlcjoxcHggc29saWQgI0Y5MDsNCgltYXJnaW46NXB4Ow0KCWJhY2tncm91bmQ6I0Y5MCB1cmwoLi4vaW1hZ2VzL2Fjb3IucG5nKSByZXBlYXQteCBzY3JvbGwgdG9wIGxlZnQ7DQoJfQ0KI05PVEVhY2NvcmRpb257DQoJcG9zaXRpb246cmVsYXRpdmU7DQoJcGFkZGluZy10b3A6MzBweDsNCglib3JkZXI6MXB4IHNvbGlkICM2OUM7DQoJbWFyZ2luOjVweDsNCgliYWNrZ3JvdW5kOiMzQzk5RjcgdXJsKC4uL2ltYWdlcy9hY29yLnBuZykgcmVwZWF0LXggc2Nyb2xsIHRvcCBsZWZ0Ow0KCX0JDQojTk9URWFjY29yZGlvbjpob3ZlciwjV2FybmFjY29yZGlvbjpob3ZlciwjRXJyb3JhY2NvcmRpb246aG92ZXJ7CQ0KCS8qIGZvciBJRSAqLw0KCWZpbHRlcjphbHBoYShvcGFjaXR5PTEwMCk7DQoJLyogQ1NTMyBzdGFuZGFyZCAqLw0KCW9wYWNpdHk6MS4wOw0KfQkNCiNOT1RFYWNjb3JkaW9uIGgxLCNXYXJuYWNjb3JkaW9uIGgxLCNFcnJvcmFjY29yZGlvbiBoMXsNCg0KbGVmdDowOw0KcG9zaXRpb246YWJzb2x1dGU7DQp0b3A6MHB4Ow0Kd2lkdGg6MTAwJTsNCnotaW5kZXg6OTk5Ow0KY3Vyc29yOnBvaW50ZXI7DQptYXJnaW46MHB4Ow0KCX0JDQoNCiNQUEJNIGgxLCNQUEJNIGgyLCNQUEJNIGgze21hcmdpbjowcHg7fQkNCiNOT1RFYWNjb3JkaW9uIGgxLnRvZ2FsLCNXYXJuYWNjb3JkaW9uIGgxLnRvZ2FsLCNFcnJvcmFjY29yZGlvbiBoMS50b2dhbHsNCg0KcmlnaHQ6MDsNCnBvc2l0aW9uOmFic29sdXRlOw0KdG9wOjBweDsNCndpZHRoOjEwMCU7DQp6LWluZGV4Ojk5OTsNCgl9DQoJDQoJDQojTk9URWFjY29yZGlvbiBoMS5jdXJyZW50LCNXYXJuYWNjb3JkaW9uIGgxLmN1cnJlbnQsI0Vycm9yYWNjb3JkaW9uIGgxLmN1cnJlbnR7DQp6LWluZGV4Ojk7DQoJfQkNCg0KCQ0KI05PVEVhY2NvcmRpb24gaDEudG9nYWwuY3VycmVudCwjV2FybmFjY29yZGlvbiBoMS50b2dhbC5jdXJyZW50LCNFcnJvcmFjY29yZGlvbiBoMS50b2dhbC5jdXJyZW50ew0Kei1pbmRleDo5Ow0KCX0NCgkNCiNOT1RFYWNjb3JkaW9uIGgxIHNwYW4sI1dhcm5hY2NvcmRpb24gaDEgc3BhbiwjRXJyb3JhY2NvcmRpb24gaDEgc3BhbnsNCg0KfQ0KI05PVEVhY2NvcmRpb24gIGgxOmhvdmVyIHNwYW4sI1dhcm5hY2NvcmRpb24gIGgxOmhvdmVyIHNwYW4sI0Vycm9yYWNjb3JkaW9uICBoMTpob3ZlciBzcGFuLCNXYXJuYWNjb3JkaW9uICBoMTpob3ZlciAsI05PVEVhY2NvcmRpb24gIGgxOmhvdmVyICwjRXJyb3JhY2NvcmRpb24gIGgxOmhvdmVyIHsJDQoJY29sb3I6IzMzMzsNCn0NCiNXYXJuYWNjb3JkaW9uOmhvdmVyLCNFcnJvcmFjY29yZGlvbjpob3ZlcnsJDQoNCn0NCi5FcnJvcnsNCgkJICAtbW96LWJvcmRlci1yYWRpdXM6IDAgMCA4cHggOHB4Ow0KICAtd2Via2l0LWJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDhweDsNCiAgLXdlYmtpdC1ib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogOHB4Ow0KICBib3JkZXItcmFkaXVzOiAwIDAgOHB4IDhweDsNCgljb2xvcjogIzMzMzsNCgliYWNrZ3JvdW5kOiAjRjk5Ow0KCXBhZGRpbmc6IDVweDsNCglib3JkZXI6IDFweCBzb2xpZCAjOTAwOw0KCW92ZXJmbG93LXg6aGlkZGVuOw0KCW92ZXJmbG93LXk6YXV0bzsNCgloZWlnaHQ6YXV0byAhaW1wb3J0YW50OyAvKiByZWFsIGJyb3dzZXJzICovDQoJaGVpZ2h0OjE1MHB4OyAvKiBJRTY6IHRyZWFkZWQgYXMgbWluLWhlaWdodCAqLw0KCW1pbi1oZWlnaHQ6MTUwcHg7IC8qIHJlYWwgYnJvd3NlcnMgKi8NCgltYXgtaGVpZ2h0OjI1MHB4OyAvKiByZWFsIGJyb3dzZXJzICovDQoJZGlzcGxheTpub25lOw0KDQoNCn0NCg0KLldhcm57DQoJCSAgLW1vei1ib3JkZXItcmFkaXVzOiAwIDAgOHB4IDhweDsNCiAgLXdlYmtpdC1ib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA4cHg7DQogIC13ZWJraXQtYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDhweDsNCiAgYm9yZGVyLXJhZGl1czogMCAwIDhweCA4cHg7DQoJY29sb3I6ICMzMzM7DQoJYmFja2dyb3VuZDogI0ZGOTsNCglwYWRkaW5nOiA1cHg7DQoJaGVpZ2h0OmF1dG8gIWltcG9ydGFudDsgLyogcmVhbCBicm93c2VycyAqLw0KCWhlaWdodDoxNTBweDsgLyogSUU2OiB0cmVhZGVkIGFzIG1pbi1oZWlnaHQgKi8NCgltaW4taGVpZ2h0OjE1MHB4OyAvKiByZWFsIGJyb3dzZXJzICovDQoJbWF4LWhlaWdodDoyNTBweDsgLyogcmVhbCBicm93c2VycyAqLw0KCWJvcmRlcjogMXB4IHNvbGlkICNGOTA7DQoJb3ZlcmZsb3cteDpoaWRkZW47DQoJb3ZlcmZsb3cteTphdXRvOw0KCWRpc3BsYXk6bm9uZTsNCg0KDQp9DQouTk9URXsNCgkJICAtbW96LWJvcmRlci1yYWRpdXM6IDAgMCA4cHggOHB4Ow0KICAtd2Via2l0LWJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDhweDsNCiAgLXdlYmtpdC1ib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogOHB4Ow0KICBib3JkZXItcmFkaXVzOiAwIDAgOHB4IDhweDsNCgljb2xvcjogIzMzMzsNCgliYWNrZ3JvdW5kOiAjNkNGOw0KCXBhZGRpbmc6IDVweDsNCgloZWlnaHQ6YXV0byAhaW1wb3J0YW50OyAvKiByZWFsIGJyb3dzZXJzICovDQoJaGVpZ2h0OjE1MHB4OyAvKiBJRTY6IHRyZWFkZWQgYXMgbWluLWhlaWdodCAqLw0KCW1pbi1oZWlnaHQ6MTUwcHg7IC8qIHJlYWwgYnJvd3NlcnMgKi8NCgltYXgtaGVpZ2h0OjI1MHB4OyAvKiByZWFsIGJyb3dzZXJzICovDQoJYm9yZGVyOiAxcHggc29saWQgIzY5QzsNCglvdmVyZmxvdy14OmhpZGRlbjsNCglvdmVyZmxvdy15OmF1dG87DQoJZGlzcGxheTpub25lOw0KDQoNCn0NCi5FcnJvciBoM3tjb2xvcjogIzkwMDttYXJnaW4tYm90dG9tOjBweDt9DQouV2FybiBoM3tjb2xvcjogI0Y5MDttYXJnaW4tYm90dG9tOjBweDt9DQouTk9URSBoM3tjb2xvcjogI0Y5MDttYXJnaW4tYm90dG9tOjBweDt9DQouTk9URS5jbG9zZXIsLldhcm4uY2xvc2VyLCAuRXJyb3IuY2xvc2Vyew0KCWJhY2tncm91bmQ6dHJhbnNwYXJlbnQgbm9uZTsNCglib3JkZXI6IG5vbmU7DQoJbWFyZ2luOjBweDsNCglwYWRkaW5nOjBweDsNCglvdmVyZmxvdzpoaWRkZW47DQoJaGVpZ2h0OjBweCAhaW1wb3J0YW50Ow0KCW1pbi1oZWlnaHQ6MHB4OyAvKiByZWFsIGJyb3dzZXJzICovDQoJbWF4LWhlaWdodDowcHg7IC8qIHJlYWwgYnJvd3NlcnMgKi8NCgl3aWR0aDowcHggIWltcG9ydGFudDt9DQpzcGFuLkNsb3Nle2Rpc3BsYXk6YmxvY2s7IGZsb2F0OnJpZ2h0fQ0Kc3Bhbi5PcGVue2Rpc3BsYXk6bm9uZTtmbG9hdDpyaWdodH0NCi5jdXJyZW50IHNwYW4uQ2xvc2V7ZGlzcGxheTpub25lO30NCi5jdXJyZW50IHNwYW4uT3BlbntkaXNwbGF5OmJsb2NrO30NCg0KDQoNCg0KDQoNCi5jYWNoZVRhYmxlew0KCWJhY2tncm91bmQ6ICNFNEU0RTQ7DQoJYm9yZGVyOiB0aGluIHNvbGlkICM2NjY7DQoJd2lkdGg6MTAwJTsNCn0NCi5jYWNoZVRhYmxlIHRoew0KCWJhY2tncm91bmQ6ICMzMzM7DQoJYm9yZGVyOiB0aGluIHNvbGlkICNFNEU0RTQ7DQoJZm9udC13ZWlnaHQ6Ym9sZDsNCgljb2xvcjojRTRFNEU0Ow0KfQ0KDQouY2FjaGVUYWJsZSB0ZHsNCglib3JkZXI6IHRoaW4gc29saWQgIzY2NjsNCglwYWRkaW5nOjNweDsNCn0NCg0KDQojRXJyb3JBcmVheyBwb3NpdGlvbjpyZWxhdGl2ZTt9DQojQWpheE1lc3NhZ2V7DQoJcG9zaXRpb246Zml4ZWQ7DQoJcmlnaHQ6MHB4Ow0KCXRvcDo1MCU7DQoJaGVpZ2h0Ojc1cHg7DQoJLyp3aWR0aDozMDBweDsqLw0KCWJhY2tncm91bmQtY29sb3I6I0ZDNjsNCgltYXJnaW4tdG9wOi0zN3B4Ow0KCXotaW5kZXg6OTk5OTsNCglmb250LXNpemU6MTlweDsNCgljb2xvcjojMzMzOw0KCS1tb3otYm9yZGVyLXJhZGl1czogIDhweCAwcHggMHB4IDhweCA7DQoJLXdlYmtpdC1ib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA4cHg7DQoJLXdlYmtpdC1ib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA4cHg7DQp9DQojQWpheE1lc3NhZ2UgaDJ7DQovKglwb3NpdGlvbjphYnNvbHV0ZTsNCglsZWZ0OjE1cHg7DQoJdG9wOjUwJTsqLw0KCXBhZGRpbmctdG9wOjZweDsNCglwYWRkaW5nLXJpZ2h0OjE1cHg7DQoJcGFkZGluZy1sZWZ0OjEzMHB4Ow0KfQ0KDQojQWpheE1lc3NhZ2UgI0FKQVhsb2dvIHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO21hcmdpbi10b3A6LTQ4cHg7bGVmdDowcHg7IHotaW5kZXg6OTk5Nzt9DQojQWpheE1lc3NhZ2UgLnByb2dyZXNzIHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NDUlO2xlZnQ6OThweDt6LWluZGV4Ojk5OTc7fQ0KI0FqYXhPdmVyTGF5ew0KcG9zaXRpb246YWJzb2x1dGU7IHRvcDowOyBsZWZ0OjA7IHotaW5kZXg6OTk5ODsNCnBvc2l0aW9uOmZpeGVkOyB3aWR0aDoxMDAlOyBoZWlnaHQ6MTAwJTsNCmJhY2tncm91bmQ6IzM2RjsNCgkvKiBmb3IgSUUgKi8NCglmaWx0ZXI6YWxwaGEob3BhY2l0eT04MCk7DQoJLyogQ1NTMyBzdGFuZGFyZCAqLw0KCW9wYWNpdHk6MC44Ow0KfQ0KDQoNCg0KDQoNCiN2ZXJzaW9uUGxhbmV7Y2xlYXI6bGVmdDtib3JkZXI6MXB4IHNvbGlkICM5OTk5OTk7YmFja2dyb3VuZC1jb2xvcjojRjBGMEY2O30NCiNjU2NyaXB0UGxhbmV7DQoJYmFja2dyb3VuZDpub25lOw0KCWJhY2tncm91bmQtY29sb3I6I2ZmZjsNCmZsb2F0OnJpZ2h0Ow0Kd2lkdGg6NDkuNSU7DQpoZWlnaHQ6MjUwcHg7DQpjb2xvcjojM0QzRDNEOw0KfQ0KDQojdmVyc2lvblBsYW5lICNUUzF7bWFyZ2luOjBweDt3aWR0aDo1MCU7ZmxvYXQ6bGVmdDt9DQojcGFnZXJ7Y2xlYXI6Ym90aDsgYmFja2dyb3VuZC1jb2xvcjojNjY2OyB0ZXh0LWFsaWduOmxlZnQ7Ym9yZGVyOjFweCBzb2xpZCAjOTk5OTk5O3BhZGRpbmc6M3B4O30NCg0KI2NTY3JpcHRQbGFuZUlORk97ZGlzcGxheTpub25lO2JhY2tncm91bmQtY29sb3I6Izk5OTsgdGV4dC1hbGlnbjpsZWZ0O2JvcmRlcjoxcHggc29saWQgI2NjYztwYWRkaW5nOjNweDt9DQp0ci5jdXJyZW50e30NCg0KI3ZlcnNpb25QbGFuZSB0ciB0ZCB7DQoJY3Vyc29yOnBvaW50ZXI7DQp9DQojdmVyc2lvblBsYW5lIHRyOmhvdmVyIHRkIHsNCmJhY2tncm91bmQtY29sb3I6I0ZGOTsNCmNvbG9yOiMzRDNEM0Q7DQp9DQojdmVyc2lvblBsYW5lIHRyLmN1cnJlbnQgdGQgew0KYmFja2dyb3VuZC1jb2xvcjojRkM2Ow0KY29sb3I6IzNEM0QzRDsNCn0NCg0KI2NTY3JpcHRQbGFuZS5wcm9jZXNzaW5new0KCWNvbG9yOiNCRUJFQkU7DQoJYmFja2dyb3VuZDp1cmwoJy4uLy4uLy4uL21vZHVsZXMvU2NyaXB0RGVwbG95L2ltYWdlcy9hamF4LWxvYWRlci5naWYnKSBuby1yZXBlYXQgc2Nyb2xsIGNlbnRlciBjZW50ZXIgI0U1RTVFNTsNCgl9DQojRXhpdHsNCgliYWNrZ3JvdW5kLWNvbG9yOiMzMzMzMzM7DQpib3JkZXI6MXB4IHNvbGlkICNDQ0NDQ0M7DQpjb2xvcjojQ0NDQ0NDOw0KZm9udC1zaXplOjE3cHg7DQpmb250LXdlaWdodDpib2xkOw0KcGFkZGluZzo1cHggMTBweDsNCmZsb2F0OnJpZ2h0Ow0KfQ0KDQojRXhpdDpob3ZlcnsNCgliYWNrZ3JvdW5kLWNvbG9yOiM2NjY7DQp9DQoNCiNTbmFtZXsgY29sb3I6IzAwQztmb250LXNpemU6MS4yNWVtO30NCg0KDQoNCi5lZGl0YmFyew0KYmFja2dyb3VuZC1jb2xvcjojREFGRUUzOw0KYm9yZGVyOjFweCBzb2xpZCAjQTNGRUJCOw0KZm9udC13ZWlnaHQ6Ym9sZDsNCm1hcmdpbjoycHg7DQpwYWRkaW5nOjZweCAzcHggMnB4IDRweDsNCgkJICAtbW96LWJvcmRlci1yYWRpdXM6IDVweCA1cHggNXB4IDVweDsNCiAgLXdlYmtpdC1ib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA1cHg7DQogIC13ZWJraXQtYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDVweDsNCiAgLXdlYmtpdC1ib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA1cHg7DQogIC13ZWJraXQtYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDVweDsNCn0NCg0KLmVkaXRiYXIgaW1ne21hcmdpbjowcHggM3B4O30NCi5lZGl0YmFyIGEge2ZpbHRlcjphbHBoYShvcGFjaXR5PTgwKTtvcGFjaXR5OjAuODt9IA0KLmVkaXRiYXIgYTpob3ZlciB7ZmlsdGVyOmFscGhhKG9wYWNpdHk9MTAwKTtvcGFjaXR5OjEuMDt9ICANCiAgDQogIA0KLmVkaXRiYXIuSW5FZGl0e2JhY2tncm91bmQtY29sb3I6I2Y2YjljMjtib3JkZXI6MXB4IHNvbGlkICNmNjZiN2Y7fQ0KLkluRWRpdCBoNCBpbWd7cGFkZGluZy1yaWdodDo1cHg7cGFkZGluZy10b3A6M3B4O30NCg0KLmVkaXRiYXIuSW5FZGl0IGltZ3tmaWx0ZXI6YWxwaGEob3BhY2l0eT0zNSk7b3BhY2l0eTowLjM1O30gIA0KICANCi5lZGl0YmFyLkluRWRpdCAuc3RlYWx7ZmlsdGVyOmFscGhhKG9wYWNpdHk9MTAwKTtvcGFjaXR5OjEuMDt9DQoNCg0KLmVkaXRiYXIuSW5FZGl0IGltZ3sNCgktbW96LWJvcmRlci1yYWRpdXM6IDVweCA1cHggNXB4IDVweDsNCgktd2Via2l0LWJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDVweDsNCgktd2Via2l0LWJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA1cHg7DQoJLXdlYmtpdC1ib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA1cHg7DQoJLXdlYmtpdC1ib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNXB4Ow0KfSAgDQoNCg0KDQoNCnRhYmxlLnRhYmxlc29ydGVyIHRib2R5ICB0ci5ldmVuIHRkLmVycm9ye2JhY2tncm91bmQtY29sb3I6I2Y2YjljMjt9DQp0YWJsZS50YWJsZXNvcnRlciB0Ym9keSAgdHIub2RkIHRkLmVycm9ye2JhY2tncm91bmQtY29sb3I6I2Y0YTNhZTt9DQoNCnRhYmxlLnRhYmxlc29ydGVyIHRib2R5ICB0ci5ldmVuIHRkLm9re2JhY2tncm91bmQtY29sb3I6I0RBRkVFMzt9DQp0YWJsZS50YWJsZXNvcnRlciB0Ym9keSAgdHIub2RkIHRkLm9re2JhY2tncm91bmQtY29sb3I6I2M4ZmVkNjt9DQogIA0KICANCmJvZHkgLnJldmVydFZlcnNpb24gYSB7DQpjb2xvcjojMDM5Ow0KfQ0KDQoNCnRhYmxlLnBhZ2V0YWJsZSB0ZCB7DQpjb2xvcjojMzg0NjU0Ow0KcGFkZGluZy1sZWZ0OjZweDsNCnBhZGRpbmctcmlnaHQ6MnB4Ow0KYm9yZGVyLWJvdHRvbToxcHggc29saWQgIzk5OTk5OTsNCn0NCg0KdHIucm93MS5JbkVkaXQgew0KYmFja2dyb3VuZC1jb2xvcjojZjZkNWRhOw0KfQ0KdHIucm93Mi5JbkVkaXQgew0KYmFja2dyb3VuZC1jb2xvcjojZjZjNWNjOw0KfQ0KdGFibGUucGFnZXRhYmxlIHtib3JkZXI6MXB4IHNvbGlkICMzMzMzMzM7fQ0KDQoNCg0KDQoNCg0KDQoNCg0KI3NjcmlwdE9wdGlvbnN7YmFja2dyb3VuZC1jb2xvcjojZmZmO3BhZGRpbmc6NXB4IDE1cHggMTVweDt9DQojc2NyaXB0TmFtZV9JU3sgY3Vyc29yOnBvaW50ZXI7DQpkaXNwbGF5OmJsb2NrOw0KZm9udC1zaXplOjE4cHg7DQpoZWlnaHQ6MThweDsNCmxpbmUtaGVpZ2h0OjE4cHg7DQpwb3NpdGlvbjphYnNvbHV0ZTsNCnRvcDo4cHg7DQp6LWluZGV4Ojk5O30NCiNzY3JpcHROYW1lX0lTOmhvdmVye2NvbG9yOiM2QzY2NEQ7fQ0KI1NjcmlwdF9ncm91cHN7cG9zaXRpb246YWJzb2x1dGU7dG9wOjM1cHg7ei1pbmRleDo5OTt9DQojU2NyaXB0X2dyb3VwcyBhOmhvdmVyew0KY29sb3I6ICM2QzY2NEQ7DQp9DQojbm90aWNlYmFye3Bvc2l0aW9uOmFic29sdXRlOw0KdG9wOjhweDtyaWdodDo1cHg7ei1pbmRleDo5O30NCiNub3RpY2ViYXIgKntkaXNwbGF5OmlubGluZTt9DQojbm90aWNlYmFyICNOb3RlX3RyaWcsI25vdGljZWJhciAjV190cmlnLCNub3RpY2ViYXIgI0VfdHJpZ3sNCmRpc3BsYXk6aW5saW5lLWJsb2NrOw0KfQ0KI25vdGljZWJhciAjTm90ZV90cmlnOmhvdmVyLCNub3RpY2ViYXIgI1dfdHJpZzpob3Zlciwjbm90aWNlYmFyICNFX3RyaWc6aG92ZXJ7DQpkaXNwbGF5OmlubGluZS1ibG9jazsNCmNvbG9yOiAjNkM2NjREOw0KfQ0KDQovKg0KICAgIENvbG9yQm94IENvcmUgU3R5bGUNCiAgICBUaGUgZm9sbG93aW5nIHJ1bGVzIGFyZSB0aGUgc3R5bGVzIHRoYXQgYXJlIGNvbnNpc3RhbnQgYmV0d2VlbiB0aGVtZXMuDQogICAgQXZvaWQgY2hhbmdpbmcgdGhpcyBhcmVhIHRvIG1haW50YWluIGNvbXBhdGFiaWxpdHkgd2l0aCBmdXR1cmUgdmVyc2lvbnMgb2YgQ29sb3JCb3guDQoqLw0KI2NvbG9yYm94LCAjY2JveE92ZXJsYXksICNjYm94V3JhcHBlcntwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjA7IGxlZnQ6MDsgei1pbmRleDo5OTk5OyBvdmVyZmxvdzpoaWRkZW47fQ0KLyojY29sb3Jib3h7cG9zaXRpb246Zml4ZWQ7fS0tLXJlbWViZXIgdG8gZGJsIGNoZWNrIC0tKi8NCiNjYm94T3ZlcmxheXtwb3NpdGlvbjpmaXhlZDsgd2lkdGg6MTAwJTsgaGVpZ2h0OjEwMCU7fQ0KI2Nib3hNaWRkbGVMZWZ0LCAjY2JveEJvdHRvbUxlZnR7Y2xlYXI6bGVmdDt9DQojY2JveENvbnRlbnR7cG9zaXRpb246cmVsYXRpdmU7fQ0KI2Nib3hMb2FkZWRDb250ZW50e292ZXJmbG93OmF1dG87fQ0KI2Nib3hMb2FkZWRDb250ZW50IGlmcmFtZXtkaXNwbGF5OmJsb2NrOyB3aWR0aDoxMDAlOyBoZWlnaHQ6MTAwJTsgYm9yZGVyOjA7fQ0KI2Nib3hUaXRsZXttYXJnaW46MDt9DQojY2JveExvYWRpbmdPdmVybGF5LCAjY2JveExvYWRpbmdHcmFwaGlje3Bvc2l0aW9uOmFic29sdXRlOyB0b3A6MDsgbGVmdDowOyB3aWR0aDoxMDAlO30NCiNjYm94UHJldmlvdXMsICNjYm94TmV4dCwgI2Nib3hDbG9zZSwgI2Nib3hTbGlkZXNob3d7Y3Vyc29yOnBvaW50ZXI7fQ0KDQovKiANCiAgICBDb2xvckJveCBleGFtcGxlIHVzZXIgc3R5bGUNCiAgICBUaGUgZm9sbG93aW5nIHJ1bGVzIGFyZSBvcmRlcmVkIGFuZCB0YWJiZWQgaW4gYSB3YXkgdGhhdCByZXByZXNlbnRzIHRoZQ0KICAgIG9yZGVyL25lc3Rpbmcgb2YgdGhlIGdlbmVyYXRlZCBIVE1MLCBzbyB0aGF0IHRoZSBzdHJ1Y3R1cmUgZWFzaWVyIHRvIHVuZGVyc3RhbmQuDQoqLw0KI2Nib3hPdmVybGF5e2JhY2tncm91bmQ6IzE5OWNkZjt9DQoNCiNjb2xvcmJveHt9DQogICAgI2Nib3hDb250ZW50e21hcmdpbi10b3A6MjBweDt9DQogICAgICAgICNjYm94TG9hZGVkQ29udGVudHtiYWNrZ3JvdW5kOiMwMDVhODQ7IHBhZGRpbmc6NXB4O30NCiAgICAgICAgI2Nib3hUaXRsZXtwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOi0yMHB4OyBsZWZ0OjA7IGNvbG9yOiM0ODQ3NDc7fQ0KICAgICAgICAjY2JveEN1cnJlbnR7cG9zaXRpb246YWJzb2x1dGU7IHRvcDotMjBweDsgcmlnaHQ6MHB4OyBjb2xvcjojNDg0NzQ3O30NCiAgICAgICAgI2Nib3hTbGlkZXNob3d7cG9zaXRpb246YWJzb2x1dGU7IHRvcDotMjBweDsgcmlnaHQ6OTBweDsgY29sb3I6IzY2NjY2Njt9DQogICAgICAgICNjYm94UHJldmlvdXN7cG9zaXRpb246YWJzb2x1dGU7IHRvcDo1MCU7IGxlZnQ6NXB4OyBtYXJnaW4tdG9wOi0zMnB4OyBiYWNrZ3JvdW5kOnVybCguLi9pbWFnZXMvY29udHJvbHMucG5nKSB0b3AgbGVmdCBuby1yZXBlYXQ7IHdpZHRoOjI4cHg7IGhlaWdodDo2NXB4OyB0ZXh0LWluZGVudDotOTk5OXB4O30NCiAgICAgICAgI2Nib3hQcmV2aW91cy5ob3ZlcntiYWNrZ3JvdW5kLXBvc2l0aW9uOmJvdHRvbSBsZWZ0O30NCiAgICAgICAgI2Nib3hOZXh0e3Bvc2l0aW9uOmFic29sdXRlOyB0b3A6NTAlOyByaWdodDo1cHg7IG1hcmdpbi10b3A6LTMycHg7IGJhY2tncm91bmQ6dXJsKC4uL2ltYWdlcy9jb250cm9scy5wbmcpIHRvcCByaWdodCBuby1yZXBlYXQ7IHdpZHRoOjI4cHg7IGhlaWdodDo2NXB4OyB0ZXh0LWluZGVudDotOTk5OXB4O30NCiAgICAgICAgI2Nib3hOZXh0LmhvdmVye2JhY2tncm91bmQtcG9zaXRpb246Ym90dG9tIHJpZ2h0O30NCiAgICAgICAgI2Nib3hMb2FkaW5nT3ZlcmxheXtiYWNrZ3JvdW5kOiMwMDVhODQ7fQ0KICAgICAgICAjY2JveExvYWRpbmdHcmFwaGlje2JhY2tncm91bmQ6dXJsKC4uL2ltYWdlcy9sb2FkaW5nLmdpZikgY2VudGVyIGNlbnRlciBuby1yZXBlYXQ7fQ0KICAgICAgICAjY2JveENsb3Nle3Bvc2l0aW9uOmFic29sdXRlOyB0b3A6NXB4OyByaWdodDoyNXB4OyBkaXNwbGF5OmJsb2NrOyBiYWNrZ3JvdW5kOnVybCguLi9pbWFnZXMvY29udHJvbHMucG5nKSB0b3AgY2VudGVyIG5vLXJlcGVhdDsgd2lkdGg6MzhweDsgaGVpZ2h0OjE5cHg7IHRleHQtaW5kZW50Oi05OTk5cHg7fQ0KICAgICAgICAjY2JveENsb3NlLmhvdmVye2JhY2tncm91bmQtcG9zaXRpb246Ym90dG9tIGNlbnRlcjt9DQoNCg0KDQoNCg0KDQoNCg0KDQojcG9wdXBOT1RFU3sNCgloZWlnaHQ6YXV0byAhaW1wb3J0YW50OyAvKiByZWFsIGJyb3dzZXJzICovDQoJaGVpZ2h0OjE1MHB4OyAvKiBJRTY6IHRyZWFkZWQgYXMgbWluLWhlaWdodCAqLw0KCW1pbi1oZWlnaHQ6MTUwcHg7IC8qIHJlYWwgYnJvd3NlcnMgKi8NCgltYXgtaGVpZ2h0OjQ1MHB4OyAvKiByZWFsIGJyb3dzZXJzICovDQoJb3ZlcmZsb3c6c2Nyb2xsOw0KCW92ZXJmbG93LXg6aGlkZGVuOw0KCXdpZHRoOjQ4N3B4Ow0KfQ0KDQoNCg0KI3BvcHVwRXJyb3JBcmVheyBiYWNrZ3JvdW5kLWNvbG9yOiNGRkZGRkY7IHBhZGRpbmc6NXB4OwloZWlnaHQ6YXV0byAhaW1wb3J0YW50OyAvKiByZWFsIGJyb3dzZXJzICovDQoJaGVpZ2h0OjE1MHB4OyAvKiBJRTY6IHRyZWFkZWQgYXMgbWluLWhlaWdodCAqLw0KCW1pbi1oZWlnaHQ6MTUwcHg7IC8qIHJlYWwgYnJvd3NlcnMgKi8NCgltYXgtaGVpZ2h0OjQ1MHB4OyAvKiByZWFsIGJyb3dzZXJzICovDQoJb3ZlcmZsb3c6c2Nyb2xsOw0KCW92ZXJmbG93LXg6aGlkZGVuO30NCiNwb3B1cHdhcm5BcmVheyBiYWNrZ3JvdW5kLWNvbG9yOiNGRkZGRkY7IHBhZGRpbmc6NXB4Ow0KCWhlaWdodDphdXRvICFpbXBvcnRhbnQ7IC8qIHJlYWwgYnJvd3NlcnMgKi8NCgloZWlnaHQ6MTUwcHg7IC8qIElFNjogdHJlYWRlZCBhcyBtaW4taGVpZ2h0ICovDQoJbWluLWhlaWdodDoxNTBweDsgLyogcmVhbCBicm93c2VycyAqLw0KCW1heC1oZWlnaHQ6NDUwcHg7IC8qIHJlYWwgYnJvd3NlcnMgKi8NCglvdmVyZmxvdzpzY3JvbGw7DQoJb3ZlcmZsb3cteDpoaWRkZW47fQ0KDQoNCiNNYWluQ29udGVudHtwb3NpdGlvbjpyZWxhdGl2ZTt9DQojc2lkZWJhcntwb3NpdGlvbjphYnNvbHV0ZTsNCnJpZ2h0OjVweDsNCnRvcDoxNjNweDt9DQojc2lkZW5vdGV7cGFkZGluZy1sZWZ0OjM2cHg7fQ0KI3NpZGViYXIgaDF7IGZvbnQtc2l6ZToyNHB4O2NvbG9yOiMzOTNiM2U7IGZvbnQtd2VpZ2h0OmJvbGQ7IHBvc2l0aW9uOnJlbGF0aXZlO30NCiNhc3RlcnsgZm9udC1zaXplOjY1cHg7Y29sb3I6IzM5M2IzZTsgZm9udC13ZWlnaHQ6Ym9sZDsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDotMTVweDsgbGVmdDowcHg7fQ0KDQoNCi5kaWFsb2cgew0KCW1hcmdpbjoyMHB4Ow0KCXBvc2l0aW9uOnJlbGF0aXZlOw0KIC8qIHdpZHRoOjY3JTsNCiBtYXJnaW46MHB4IGF1dG87DQogbWluLXdpZHRoOjIwZW07DQogbWF4LXdpZHRoOjgwMHB4OyBJIG9ubHkgY3V0IHRoZSBsZWZ0IGJhY2tncm91bmQgaW1hZ2VzIG91dCB0byA4MDBweC4gWW91IGNvdWxkIGRvIG11Y2ggbGFyZ2VyLCBldGMuIA0KIGNvbG9yOiNmZmY7Ki8NCn0NCi5kaWFsb2cgYSwuZGlhbG9nIGE6dmlzaXRlZHtjb2xvcjojMzAzMjM0O3RleHQtZGVjb3JhdGlvbjpub25lO30NCi5kaWFsb2cgLmhkIC5jLA0KLmRpYWxvZyAuZnQgLmMgew0KIGZvbnQtc2l6ZToxcHg7IC8qIGVuc3VyZSBtaW5pbXVtIGhlaWdodCAqLw0KIGhlaWdodDoxMXB4Ow0KfQ0KDQouZGlhbG9nIC5mdCAuYyB7DQogaGVpZ2h0OjE0cHg7DQp9DQoNCi5kaWFsb2cgLmhkIHsNCiBiYWNrZ3JvdW5kOnRyYW5zcGFyZW50IHVybCguLi9pbWFnZXMvdGwucG5nKSBuby1yZXBlYXQgMHB4IDBweDsNCiBtYXJnaW4tcmlnaHQ6MTRweDsgLyogc3BhY2UgZm9yIHJpZ2h0IGNvcm5lciAqLw0KfQ0KDQouZGlhbG9nIC5oZCAuYyB7DQogYmFja2dyb3VuZDp0cmFuc3BhcmVudCB1cmwoLi4vaW1hZ2VzL3RyLnBuZykgbm8tcmVwZWF0IHJpZ2h0IDBweDsNCiBtYXJnaW4tcmlnaHQ6LTE0cHg7IC8qIHB1bGwgcmlnaHQgY29ybmVyIGJhY2sgb3ZlciAiZW1wdHkiIHNwYWNlIChmcm9tIGFib3ZlIG1hcmdpbikgKi8NCn0NCg0KLmRpYWxvZyAuYmQgew0KIGJhY2tncm91bmQ6dHJhbnNwYXJlbnQgdXJsKC4uL2ltYWdlcy9tbC5wbmcpIHJlcGVhdC15IDBweCAwcHg7DQogbWFyZ2luLXJpZ2h0OjZweDsNCn0NCg0KLmRpYWxvZyAuYmQgLmMgew0KIGJhY2tncm91bmQ6dHJhbnNwYXJlbnQgdXJsKC4uL2ltYWdlcy9tci5wbmcpIHJlcGVhdC15IHJpZ2h0IDBweDsNCiBtYXJnaW4tcmlnaHQ6LTZweDsNCn0NCg0KLmRpYWxvZyAuYmQgLmMgLnMgew0KIG1hcmdpbjowcHggOHB4IDBweCA0cHg7DQogYmFja2dyb3VuZDojZGRkOGQwIHVybCguLi9pbWFnZXMvbXMuanBnKSByZXBlYXQteCAwcHggMHB4Ow0KIHBhZGRpbmc6MCAxMHB4Ow0KfQ0KDQouZGlhbG9nIC5mdCB7DQogYmFja2dyb3VuZDp0cmFuc3BhcmVudCB1cmwoLi4vaW1hZ2VzL2JsLnBuZykgbm8tcmVwZWF0IDBweCAwcHg7DQogbWFyZ2luLXJpZ2h0OjE0cHg7DQp9DQoNCi5kaWFsb2cgLmZ0IC5jIHsNCiBiYWNrZ3JvdW5kOnRyYW5zcGFyZW50IHVybCguLi9pbWFnZXMvYnIucG5nKSBuby1yZXBlYXQgcmlnaHQgMHB4Ow0KIG1hcmdpbi1yaWdodDotMTRweDsNCn0NCg0KLyogY29udGVudC1zcGVjaWZpYyAqLw0KDQouZGlhbG9nIGgxIHsNCiAvKiBoZWFkZXIgKi8NCiBmb250LXNpemU6MmVtOw0KIG1hcmdpbjowcHg7DQogcGFkZGluZzowcHg7DQogbWFyZ2luLXRvcDotMC42ZW07DQp9DQoNCg0KDQoNCg0KDQojc2NyaXB0Q2hvaWNle2Rpc3BsYXk6aW5saW5lO2xpc3Qtc3R5bGU6bm9uZSBvdXRzaWRlIG5vbmU7fQ0KI3NjcmlwdENob2ljZSBsaXtiYWNrZ3JvdW5kOm5vbmUgcmVwZWF0IHNjcm9sbCAwIDAgI0NDQ0NDQztib3JkZXI6MXB4IHNvbGlkICMzMzMzMzM7Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTppbmxpbmU7bWFyZ2luOjVweCAycHg7cGFkZGluZzoycHggNXB4O30NCiNzY3JpcHRDaG9pY2UgbGk6aG92ZXJ7YmFja2dyb3VuZDpub25lIHJlcGVhdCBzY3JvbGwgMCAwICMzMzM7Y29sb3I6I0NDQzt9DQoNCg0KI3NjcmlwdENob2ljZSBsaS5hY3RpdmV7Zm9udC1zaXplOjE2cHg7fQ0KDQoNCi8qLS0tLS0tLS0tLS1ncm91cCBzb3J0LS0tLSovDQoNCi5Bc3NQb3RMaXN0ew0KCXdpZHRoOjI1MHB4Ow0KCWhlaWdodDoxNTBweDsNCglvdmVyZmxvdzphdXRvOw0KCWJhY2tncm91bmQtY29sb3I6Izk5OTsNCglib3JkZXI6MnB4IGluc2V0ICMwMDk7DQp9DQoNCi5Bc3NQb3RMaXN0Q09Oew0KaGVpZ3RoOmF1dG87DQp3aWR0aDoyMzNweDsNCmZvbnQtc2l6ZToxNHB4Ow0KfQ0KDQojc29ydGFibGUxLCAjc29ydGFibGUyLCAjc29ydGFibGUzIHsgbGlzdC1zdHlsZS10eXBlOiBub25lOyBtYXJnaW46IDA7IHBhZGRpbmc6IDA7IGZsb2F0OiBsZWZ0Oy8qIG1hcmdpbi1yaWdodDogMTBweDsqLyBiYWNrZ3JvdW5kOiAjZWVlOyAvKnBhZGRpbmc6IDVweDsqLyB3aWR0aDoyMzNweDt9DQojc29ydGFibGUxIGxpLCAjc29ydGFibGUyIGxpLCAjc29ydGFibGUzIGxpIHsgbWFyZ2luOjFweDsgLypwYWRkaW5nOiA1cHg7Ki8gZm9udC1zaXplOjE0cHg7fQ0KI3NvcnRhYmxlMSBsaTpob3ZlciwgI3NvcnRhYmxlMiBsaTpob3ZlciwgI3NvcnRhYmxlMyBsaTpob3ZlciB7IG1hcmdpbjoxcHg7IC8qcGFkZGluZzogNXB4OyovIGZvbnQtc2l6ZToxNHB4O2JhY2tncm91bmQ6ICNDQkQyREE7fQ0KI3NvcnRhYmxlMXsNCgloZWlnaHQ6YXV0byAhaW1wb3J0YW50OyAvKiByZWFsIGJyb3dzZXJzICovDQoJaGVpZ2h0OjE0OHB4OyAvKiBJRTY6IHRyZWFkZWQgYXMgbWluLWhlaWdodCAqLw0KCW1pbi1oZWlnaHQ6MTQ4cHg7IC8qIHJlYWwgYnJvd3NlcnMgKi8NCglvdmVyZmxvdy15OmhpZGRlbjsNCn0NCiNzb3J0YWJsZTEgbGkuaGlkZGVueyB0ZXh0LWluZGVudDotOTk5OWVtOyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOi05OTk5ZW07fQ0KDQojaGVhZGVyc3tsaXN0LXN0eWxlOm5vbmUgb3V0c2lkZSBub25lO30NCiNoZWFkZXJzIGxpe2Rpc3BsYXk6aW5saW5lLWJsb2NrO30NCiNyZU9yMXt9DQojcmVPcjJ7fQ0KI3JlT3Ize30NCiNyZU9yNHt9DQojcmVPcjV7fQ0KLnVpLXNvcnRhYmxle2JvcmRlcjoxcHggc29saWQgIzY2NjY2NjtsaXN0LXN0eWxlOm5vbmUgb3V0c2lkZSBub25lO3BhZGRpbmc6MDt9DQoudWktc29ydGFibGUgbGl7cGFkZGluZzoxcHg7aGVpZ2h0OjMycHg7Y3Vyc29yOm1vdmU7fQ0KLnVpLXNvcnRhYmxlIGxpLnJvdzF7YmFja2dyb3VuZDpub25lIHJlcGVhdCBzY3JvbGwgMCAwICNkN2U2ZjU7fQ0KLnVpLXNvcnRhYmxlIGxpLnJvdzJ7YmFja2dyb3VuZDpub25lIHJlcGVhdCBzY3JvbGwgMCAwICM5Y2M4ZjU7fQ0KLnVpLXNvcnRhYmxlIGxpOmhvdmVye2JvcmRlcjoxcHggZGFzaGVkICNhYjcxMDA7cGFkZGluZzowcHg7YmFja2dyb3VuZDpub25lIHJlcGVhdCBzY3JvbGwgMCAwICNmZmRhOTM7fQ0KLnVpLXNvcnRhYmxlIGxpIHNwYW4sLnVpLXNvcnRhYmxlIGxpIGRpdntkaXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4Ojk5OTk7fQ0KLnVpLXNvcnRhYmxlIC5yZW1vdmV7Y3Vyc29yOnBvaW50ZXI7ZmxvYXQ6cmlnaHQ7bWFyZ2luOjNweDtmaWx0ZXI6YWxwaGEob3BhY2l0eT03NSk7b3BhY2l0eTowLjc1O30NCi51aS1zb3J0YWJsZSAucmVtb3ZlOmhvdmVyIHtmaWx0ZXI6YWxwaGEob3BhY2l0eT0xMDApO29wYWNpdHk6MS4wO30NCg0KLnBhZ2V0YWJsZSAudWktc29ydGFibGV7DQoJaGVpZ2h0OmF1dG8gIWltcG9ydGFudDsgLyogcmVhbCBicm93c2VycyAqLw0KCWhlaWdodDozNXB4OyAvKiBJRTY6IHRyZWFkZWQgYXMgbWluLWhlaWdodCAqLw0KCW1pbi1oZWlnaHQ6MzVweDsgLyogcmVhbCBicm93c2VycyAqLw0KCW92ZXJmbG93LXk6aGlkZGVuOw0KfQ0KDQoudWktc3RhdGUtaGlnaGxpZ2h0e2JvcmRlcjoxcHggZGFzaGVkICNmZmRhOTM7cGFkZGluZzowcHg7YmFja2dyb3VuZDpub25lIHJlcGVhdCBzY3JvbGwgMCAwICNmNWNkNTU7fQ0KI3NvcnRhYmxlMSBsaSBpbnB1dHt0ZXh0LWluZGVudDotOTk5OWVtOyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOi05OTk5ZW07fQ0KLnVpLXNvcnRhYmxlIGxpIGlucHV0e2Rpc3BsYXk6aW5saW5lLWJsb2NrO30NCi5jb3VudFNpemUsLm5hbWV7Zm9udC1zaXplOjE2cHg7fQ0KLmNvdW50U2l6ZXtmb250LXdlaWdodDpib2xkO30NCi51aS1zb3J0YWJsZSAgLmhhbmRsZXtjdXJzb3I6bW92ZTt9DQoucmVPcjF7ZmxvYXQ6bGVmdDttYXJnaW46N3B4O30NCi5yZU9yMnttYXJnaW46NnB4OyB3aWR0aDo1MCU7fQ0KLnJlT3Ize2Zsb2F0OnJpZ2h0O21hcmdpbjo0cHg7d2lkdGg6ODBweDt9DQoudWktc29ydGFibGUgLnJlT3IzIC5oYW5kbGV7bWFyZ2luOjNweDtmbG9hdDpyaWdodDt9DQoucmVPcjR7ZmxvYXQ6cmlnaHQ7bWFyZ2luOjRweDt9DQoucmVPcjV7ZmxvYXQ6cmlnaHQ7bWFyZ2luOjZweDt3aWR0aDo4MHB4O30NCg0KDQo=]]></data>
	</file>
	<file>
	  <filename>/CSS/style.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyogdGFibGVzICovDQp0YWJsZS50YWJsZXNvcnRlciB7DQoJZm9udC1mYW1pbHk6YXJpYWw7DQoJYmFja2dyb3VuZC1jb2xvcjogI0NEQ0RDRDsNCgltYXJnaW46MTBweCAwcHQgMTVweDsNCglmb250LXNpemU6IDhwdDsNCgl3aWR0aDogMTAwJTsNCgl0ZXh0LWFsaWduOiBsZWZ0Ow0KfQ0KdGFibGUudGFibGVzb3J0ZXIgdGhlYWQgdHIgdGgsIHRhYmxlLnRhYmxlc29ydGVyIHRmb290IHRyIHRoIHsNCgliYWNrZ3JvdW5kLWNvbG9yOiAjZTZFRUVFOw0KCWJvcmRlcjogMXB4IHNvbGlkICNGRkY7DQoJZm9udC1zaXplOiA4cHQ7DQoJcGFkZGluZzogNHB4Ow0KfQ0KdGFibGUudGFibGVzb3J0ZXIgdGhlYWQgdHIgLmhlYWRlciB7DQoJYmFja2dyb3VuZC1pbWFnZTogdXJsKGJnLmdpZik7DQoJYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsNCgliYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgcmlnaHQ7DQoJY3Vyc29yOiBwb2ludGVyOw0KfQ0KdGFibGUudGFibGVzb3J0ZXIgdGJvZHkgdGQgew0KCWNvbG9yOiAjM0QzRDNEOw0KCXBhZGRpbmc6IDRweDsNCgliYWNrZ3JvdW5kLWNvbG9yOiAjRkZGOw0KCXZlcnRpY2FsLWFsaWduOiB0b3A7DQp9DQp0YWJsZS50YWJsZXNvcnRlciB0Ym9keSB0ci5vZGQgdGQgew0KCWJhY2tncm91bmQtY29sb3I6I0YwRjBGNjsNCn0NCnRhYmxlLnRhYmxlc29ydGVyIHRoZWFkIHRyIC5oZWFkZXJTb3J0VXAgew0KCWJhY2tncm91bmQtaW1hZ2U6IHVybChhc2MuZ2lmKTsNCn0NCnRhYmxlLnRhYmxlc29ydGVyIHRoZWFkIHRyIC5oZWFkZXJTb3J0RG93biB7DQoJYmFja2dyb3VuZC1pbWFnZTogdXJsKGRlc2MuZ2lmKTsNCn0NCnRhYmxlLnRhYmxlc29ydGVyIHRoZWFkIHRyIC5oZWFkZXJTb3J0RG93biwgdGFibGUudGFibGVzb3J0ZXIgdGhlYWQgdHIgLmhlYWRlclNvcnRVcCB7DQpiYWNrZ3JvdW5kLWNvbG9yOiAjOGRiZGQ4Ow0KfQ0KDQp0YWJsZS5wYWdldGFibGUgdGgge2hlaWdodDozMHB4O30NCg==]]></data>
	</file>
	<file>
	  <filename>/CSSQuery.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCi8qKg0KICogICAgVGhpcyBwYWNrYWdlIGNvbnRhaW5zIG9uZSBjbGFzcyBmb3IgdXNpbmcgQ2FzY2FkaW5nIFN0eWxlIFNoZWV0DQogKiAgICBzZWxlY3RvcnMgdG8gcmV0cmlldmUgZWxlbWVudHMgZnJvbSBhIERPTURvY3VtZW50IG9iamVjdCBzaW1pbGFybHkNCiAqICAgIHRvIERPTVhQYXRoIGRvZXMgd2l0aCBYUGF0aCBzZWxlY3RvcnMNCiAqICAgIA0KICogICAgUEhQIHZlcnNpb24gNSANCiAqDQogKiAgICBAY2F0ZWdvcnkgICBIVE1MDQogKiAgICBAcGFja2FnZSAgICBDU1NRdWVyeQ0KICogICAgQGF1dGhvciAgICAgU2FtIFNodWxsIDxzYW0uc2h1bGxAamhzcGVjaWFsdHkuY29tPg0KICogICAgQGNvcHlyaWdodCAgQ29weXJpZ2h0IChjKSAyMDA5IFNhbSBTaHVsbCA8c2FtLnNodWxsQGpoc3BlaWNhbHR5LmNvbT4NCiAqICAgIEBsaWNlbnNlICAgIDxodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlLmh0bWw+DQogKiAgICBAdmVyc2lvbiAgICAxLjQNCiAqDQogKiAgICBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5DQogKiAgICBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8gZGVhbA0KICogICAgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cw0KICogICAgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbA0KICogICAgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzDQogKiAgICBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOg0KICogICAgDQogKiAgICBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbg0KICogICAgYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuDQogKiAgICANCiAqICAgIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SDQogKiAgICBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwNCiAqICAgIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQ0KICogICAgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUg0KICogICAgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwNCiAqICAgIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4NCiAqICAgIFRIRSBTT0ZUV0FSRS4NCiAqDQogKiAgICBDSEFOR0VTOg0KICogICAgICAgIDA2LTA4LTIwMDkgLSBhZGRlZCBub3JtYWxpemUtc3BhY2UgZnVuY3Rpb24gdG8gQ1NTUXVlcnk6OmNsYXNzTmFtZQ0KICogICAgICAgICAgICAgICAgICAgICBhbmQgcmVtb3ZlZCB1bmVjZXNzYXJ5IHNwcmludGYocykgaW4gZmF2b3Igb2YgIiBzdHJpbmdzDQogKiAgICAgICAgICAgICAgICAgICAgIGFuZCBmaXhlZCBydW50aW1lIHBhc3MtYnktcmVmZXJlbmNlIGVycm9ycw0KICogICAgICAgIDA3LTE0LTIwMDkgLSBhZGRlZCByZWZlcmVuY2VzIGFuZCB0eXBlIGhpbnRpbmcgdG8gbWFueSBvZiB0aGUgZnVuY3Rpb25zIA0KICogICAgICAgICAgICAgICAgICAgICBpbiBvcmRlciB0byBpbXByb3ZlIHBlcmZvcm1hbmNlIGEgbGl0dGxlDQogKiAgICAgICAgMDctMjUtMjAwOSAtIGFkZGVkIHN1cHBvcnQgZm9yIGNsYXNzICguKSBhbmQgaWQgKCMpIGFzIGZpbHRlcnMgKGRpdiNpZC5jbGFzcykNCiAqICAgICAgICAwOC0wNS0yMDA5IC0gY29ycmVjdGVkIG15IGhvcnJpYmxlIHR5cGluZyBlcnJvcnMNCiAqICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB0aGUgYXR0cmlidXRlIGZpbHRlciBoYW5kbGluZyB0byBtYXRjaCB0aGUgZW50aXJlIG9wZXJhdG9yDQogKi8NCg0KLyoqDQogKiAgICBQZXJmb3JtIGEgQ1NTIHF1ZXJ5IG9uIGEgRE9NRG9jdW1lbnQgdXNpbmcgRE9NWFBhdGgNCiAqDQogKiAgICA8Y29kZT4NCiAqICAgICAgICAkZG9jID0gbmV3IERPTURvY3VtZW50KCk7DQogKiAgICAgICAgJGRvYy0+bG9hZEhUTUwoJzxodG1sPjxib2R5PjxwPmhlbGxvIHdvcmxkPC9wPjwvYm9keT48L2h0bWw+Jyk7DQogKiAgICAgICAgJGNzcyA9IG5ldyBDU1NRdWVyeSgkZG9jKTsNCiAqICAgICAgICBwcmludCBjb3VudCggJGNzcy0+cXVlcnkoInA6Y29udGFpbnMoJ2hlbGxvIHdvcmxkJykiKSApOw0KICogICAgPC9jb2RlPg0KICogICAgDQogKg0KICogICAgQGNhdGVnb3J5ICAgSFRNTA0KICogICAgQHBhY2thZ2UgICAgQ1NTUXVlcnkNCiAqICAgIEBhdXRob3IgICAgIFNhbSBTaHVsbCA8c2FtLnNodWxsQGpoc3BlY2lhbHR5LmNvbT4NCiAqICAgIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoYykgMjAwOSBTYW0gU2h1bGwgPHNhbS5zaHVsbEBqaHNwZWljYWx0eS5jb20+DQogKiAgICBAbGljZW5zZSAgICA8aHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZS5odG1sPg0KICogICAgQHZlcnNpb24gICAgUmVsZWFzZTogQHBhY2thZ2VfdmVyc2lvbkANCiAqICAgIEBsaW5rICAgICAgIA0KICogICAgQHNpbmNlICAgICAgQ2xhc3MgYXZhaWxhYmxlIHNpbmNlIFJlbGVhc2UgMS4wDQogKi8gDQpjbGFzcyBDU1NRdWVyeQ0Kew0KICAgIC8qKg0KICAgICAqICAgIFRoaXMgUENSRSBzdHJpbmcgbWF0Y2hlcyBvbmUgdmFsaWQgY3NzIHNlbGVjdG9yIGF0IGEgdGltZQ0KICAgICAqDQogICAgICogICAgQGNvbnN0IHN0cmluZw0KICAgICAqLyANCiAgICBjb25zdCBDSFVOS0VSID0gJy9eXHMqKFsjXC4+flwrOlxbLF0/KVxzKihcKnxbXlwqI1wuPn5cKzpcW1xdXClcKFxzLF0qKS8nOw0KICAgIA0KICAgIC8qKg0KICAgICAqICAgIFRoaXMgUENSRSBzdHJpbmcgbWF0Y2hlcyBvbmUgcHN1ZWRvIGNzcyBzZWxlY3RvciBhdCBhIHRpbWUNCiAgICAgKg0KICAgICAqICAgIEBjb25zdCBzdHJpbmcNCiAgICAgKi8gDQogICAgY29uc3QgUFNVRURPID0gJy9eXHMqOihbXHdcLV0rKVxzKihcKFxzKihbXlwoXCldKihcKFteXChcKV0qXCkpPyk/XHMqXCkpP1xzKi8nOw0KICAgIA0KICAgIC8qKg0KICAgICAqICAgIFRoaXMgUENSRSBzdHJpbmcgbWF0Y2hlcyBvbmUgY3NzIGF0dHJpYnV0ZSBzZWxlY3RvciBhdCBhIHRpbWUNCiAgICAgKg0KICAgICAqICAgIEBjb25zdCBzdHJpbmcNCiAgICAgKi8gDQogICAgY29uc3QgQVRUUklCVVRFUyA9ICcvXFtAPyhbXHdcLV0rKFx8W1x3XC1dKyk/KVxzKigoXFMqPSlccyooW1wnIl0/KSg/KDUpKFteXFw1XSopXFw1fChbXlxdXSspKSk/XHMqXF0vaSc7DQogICAgDQogICAgLyoqDQogICAgICogICAgQW4gYXJyYXkgb2YgZnVuY3Rpb25zIHJlcHJlc2VudGluZyBwc3VlZG8gc2VsZWN0b3JzDQogICAgICoNCiAgICAgKiAgICBAYWNjZXNzIHB1YmxpYw0KICAgICAqDQogICAgICogICAgQHN0YXRpY3ZhciBhcnJheQ0KICAgICAqLw0KICAgIHB1YmxpYyBzdGF0aWMgJGZpbHRlcnM7DQogICAgDQogICAgLyoqDQogICAgICogICAgQW4gYXJyYXkgb2YgZnVuY3Rpb25zIHJlcHJlc2VudGluZyBhdHRyaWJ1dGUgc2VsZWN0b3JzDQogICAgICoNCiAgICAgKiAgICBAYWNjZXNzIHB1YmxpYw0KICAgICAqDQogICAgICogICAgQHN0YXRpY3ZhciBhcnJheQ0KICAgICAqLw0KICAgIHB1YmxpYyBzdGF0aWMgJGF0dHJpYnV0ZUZpbHRlcnM7DQogICAgDQogICAgLyoqDQogICAgICogICAgQW4gaW5zdGFuY2Ugb2YgRE9NWFBhdGggZm9yIGZpbmRpbmcgdGhlIGluZm9ybWF0aW9uIG9uIHRoZSBkb2N1bWVudA0KICAgICAqDQogICAgICogICAgQGFjY2VzcyBwdWJsaWMNCiAgICAgKg0KICAgICAqICAgIEB2YXIgRE9NWFBhdGgNCiAgICAgKi8NCiAgICBwdWJsaWMgJHhwYXRoOw0KICAgIA0KICAgIC8qKg0KICAgICAqICAgIFRoZSBkb2N1bWVudCB0aGF0IHRoZSBxdWVyaWVzIHdpbGwgb3JpZ2luYXRlIGZyb20NCiAgICAgKg0KICAgICAqICAgIEBhY2Nlc3MgcHVibGljDQogICAgICoNCiAgICAgKiAgICBAdmFyIERPTURvY3VtZW50DQogICAgICovDQogICAgcHVibGljICRkb2N1bWVudDsNCiAgICANCiAgICAvKioNCiAgICAgKiAgICBJbml0aWFsaXplIHRoZSBvYmplY3QgLSBvcGVucyBhIG5ldyBET01YUGF0aA0KICAgICAqDQogICAgICogICAgQGFjY2VzcyBwdWJsaWMNCiAgICAgKg0KICAgICAqICAgIEBwYXJhbSBET01Eb2N1bWVudCAkZG9jdW1lbnQNCiAgICAgKi8NCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QgKERPTURvY3VtZW50ICYkZG9jdW1lbnQpDQogICAgew0KICAgICAgICAkdGhpcy0+eHBhdGggPSBuZXcgRE9NWFBhdGgoJGRvY3VtZW50KTsNCiAgICAgICAgJHRoaXMtPmRvY3VtZW50ID0mICRkb2N1bWVudDsNCiAgICB9DQogICAgDQogICAgLyoqDQogICAgICogICAgcmVnaXN0ZXIgYSBuYW1lc3BhY2UNCiAgICAgKg0KICAgICAqICAgIEBhY2Nlc3MgcHVibGljDQogICAgICoNCiAgICAgKiAgICBAcGFyYW0gc3RyaW5nICRwcmVmaXgNCiAgICAgKiAgICBAcGFyYW0gc3RyaW5nICRVUkkNCiAgICAgKg0KICAgICAqICAgIEByZXR1cm5zIGJvb2xlYW4NCiAgICAgKi8NCiAgICBwdWJsaWMgZnVuY3Rpb24gcmVnaXN0ZXJOYW1lc3BhY2UgKCRwcmVmaXgsICRVUkkpDQogICAgew0KICAgICAgICByZXR1cm4gJHRoaXMtPnhwYXRoLT5yZWdpc3Rlck5hbWVzcGFjZSgkcHJlZml4LCAkVVJJKTsNCiAgICB9DQogICAgDQogICAgLyoqDQogICAgICogICAgR2V0IGFuIGFycmF5IG9mIERPTU5vZGVzIHRoYXQgbWF0Y2ggYSBDU1MgcXVlcnkgZXhwcmVzc2lvbg0KICAgICAqDQogICAgICogICAgQGFjY2VzcyBwdWJsaWMNCiAgICAgKg0KICAgICAqICAgIEBwYXJhbSBzdHJpbmcgJGV4cHJlc3Npb24NCiAgICAgKiAgICBAcGFyYW0gbWl4ZWQgJGNvbnRleHQgLSBhIERPTU5vZGUgb3IgYW4gYXJyYXkgb2YgRE9NTm9kZXMNCiAgICAgKg0KICAgICAqICAgIEByZXR1cm5zIGFycmF5DQogICAgICovDQogICAgcHVibGljIGZ1bmN0aW9uIHF1ZXJ5ICgkZXhwcmVzc2lvbiwgJGNvbnRleHQ9bnVsbCkNCiAgICB7DQogICAgICAgICRvcmlnaW5hbF9jb250ZXh0ID0gZnVuY19udW1fYXJncygpIDwgMyA/ICRjb250ZXh0IDogZnVuY19nZXRfYXJnKDIpOw0KICAgICAgICANCiAgICAgICAgJGN1cnJlbnQgPSAkY29udGV4dCBpbnN0YW5jZW9mIERPTU5vZGUgPyBhcnJheSgkY29udGV4dCkgOiBzZWxmOjptYWtlQXJyYXkoJGNvbnRleHQpOw0KICAgICAgICANCiAgICAgICAgJG5ldyA9IGFycmF5KCk7DQogICAgICAgIA0KICAgICAgICAkbSA9IGFycmF5KCcnKTsNCiAgICANCiAgICAgICAgaWYgKCRleHByZXNzaW9uICYmIHByZWdfbWF0Y2goc2VsZjo6Q0hVTktFUiwgJGV4cHJlc3Npb24sICRtKSkNCiAgICAgICAgew0KICAgICAgICAgICAgLy9yZXBsYWNlIGEgcGlwZSB3aXRoIGEgc2VtaS1jb2xvbiBpbiBhIHNlbGVjdG9yDQogICAgICAgICAgICAvL2ZvciBuYW1lc3BhY2UgdXNlcw0KICAgICAgICAgICAgJG1bMl0gPSAkbVsyXSA/IHN0cl9yZXBsYWNlKCd8JywgJzonLCAkbVsyXSkgOiAnKic7DQogICAgICAgICAgICANCiAgICAgICAgICAgIHN3aXRjaCAoJG1bMV0pDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgY2FzZSAnLCc6DQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAkbmV3ID0gJHRoaXMtPnF1ZXJ5KGx0cmltKHN1YnN0cigkZXhwcmVzc2lvbiwgc3RycG9zKCRleHByZXNzaW9uLCAkbVsxXSkgKyAxKSksIGFycmF5KCksICRvcmlnaW5hbF9jb250ZXh0KTsNCiAgICAgICAgICAgICAgICAgICAgJG5ldyA9IGFycmF5X21lcmdlKCRjdXJyZW50LCAkbmV3KTsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGY6OnVuaXF1ZSgkbmV3KTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgLy8jaWQNCiAgICAgICAgICAgICAgICBjYXNlICcjJzogICAgDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAkbmV3ID0gJHRoaXMtPmlkKCRtWzJdLCAkY3VycmVudCk7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAvLy5jbGFzcw0KICAgICAgICAgICAgICAgIGNhc2UgJy4nOiAgICANCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICRuZXcgPSAkdGhpcy0+Y2xhc3NOYW1lKCRtWzJdLCAkY3VycmVudCk7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAvLyA+IGNoaWxkDQogICAgICAgICAgICAgICAgY2FzZSAnPic6ICAgIA0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgJG5ldyA9ICR0aGlzLT5jaGlsZHJlbigkbVsyXSwgJGN1cnJlbnQpOw0KICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIC8vICsgYWRqYWNlbnQgc2libGluZw0KICAgICAgICAgICAgICAgIGNhc2UgJysnOiAgICANCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICRuZXcgPSAkdGhpcy0+YWRqYWNlbnRTaWJsaW5nKCRtWzJdLCRjdXJyZW50KTsNCiAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAvLyB+IGdlbmVyYWwgc2libGluZw0KICAgICAgICAgICAgICAgIGNhc2UgJ34nOiAgICANCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICRuZXcgPSAkdGhpcy0+Z2VuZXJhbFNpYmxpbmcoJG1bMl0sICRjdXJyZW50KTsNCiAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAvLzpwc3VlZG8tZmlsdGVyDQogICAgICAgICAgICAgICAgY2FzZSAnOic6DQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBpZiAoJG1bMl0gPT0gJ3Jvb3QnKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAkbmV3ID0gYXJyYXkoJHRoaXMtPmRvY3VtZW50LT5kb2N1bWVudEVsZW1lbnQpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIC8vYSBwc3VlZG8gc2VsZWN0b3IgaXMgYSBmaWx0ZXINCiAgICAgICAgICAgICAgICAgICAgZWxzZWlmIChwcmVnX21hdGNoKHNlbGY6OlBTVUVETywgJGV4cHJlc3Npb24sICRuKSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRuWzFdICYmIGlzc2V0KHNlbGY6OiRmaWx0ZXJzWyRuWzFdXSkgJiYgaXNfY2FsbGFibGUoc2VsZjo6JGZpbHRlcnNbJG5bMV1dKSkNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoISRjdXJyZW50KQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGN1cnJlbnQgPSAkdGhpcy0+eHBhdGgtPnF1ZXJ5KCcvLyonKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGN1cnJlbnQgPSBzZWxmOjptYWtlQXJyYXkoJGN1cnJlbnQpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaSA9IDA7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAoJGN1cnJlbnQgYXMgJGVsZW0pDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGl0ZW0gPSBjYWxsX3VzZXJfZnVuYyhzZWxmOjokZmlsdGVyc1skblsxXV0sICRlbGVtLCAkaSsrLCAkbiwgJGN1cnJlbnQsICR0aGlzKSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRpdGVtIGluc3RhbmNlb2YgRE9NTm9kZSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2VsZjo6aW5BcnJheSgkaXRlbSwgJG5ldykgPCAwKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5ld1tdID0gJGl0ZW07DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy91c3VhbGx5IGJvb2xlYW4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VpZiAoaXNfc2NhbGFyKCRpdGVtKSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGl0ZW0pDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbmV3W10gPSAkZWxlbTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5ldyA9IGFycmF5X21lcmdlKCRuZXcsIHNlbGY6Om1ha2VBcnJheSgkaXRlbSkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRuZXcgPSBzZWxmOjp1bmlxdWUoJG5ldyk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbigiVW5rbm93biBwc3VlZG8tZmlsdGVyOiB7JG1bMl19LCBpbiB7JGV4cHJlc3Npb259Iik7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgIC8vc2V0IHRoaXMgZm9yIHRoZSBzdWJzdHINCiAgICAgICAgICAgICAgICAgICAgICAgICRtWzBdID0gJG5bMF07DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCJVbmtub3duIHVzZSBvZiBzZW1pLWNvbG9uOiB7JG1bMl19LCBpbiB7JGV4cHJlc3Npb259Iik7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIC8vW2F0dHJpYnV0ZT0idmFsdWUiXSBmaWx0ZXINCiAgICAgICAgICAgICAgICBjYXNlICdbJzoNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGlmIChwcmVnX21hdGNoKHNlbGY6OkFUVFJJQlVURVMsICRleHByZXNzaW9uLCAkbikpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vY2hhbmdlIGEgcGlwZSB0byBhIHNlbWktY29sb24gZm9yIG5hbWVzcGFjZSBwdXJwb3Nlcw0KICAgICAgICAgICAgICAgICAgICAgICAgJG5bMV0gPSBzdHJfcmVwbGFjZSgnfCcsICc6JywgJG5bMV0pOw0KICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWlzc2V0KCRuWzRdKSB8fCAhJG5bNF0pDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5bNF0gPSAnJzsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbls2XSA9IG51bGw7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaXNzZXQoc2VsZjo6JGF0dHJpYnV0ZUZpbHRlcnNbJG5bNF1dKSB8fCAhaXNfY2FsbGFibGUoc2VsZjo6JGF0dHJpYnV0ZUZpbHRlcnNbJG5bNF1dKSkNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL3ByaW50X3IoJG4pOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vdGhyb3duIGlmIHRoZXJlIGlzIG5vIHZpYWJsZSBhdHRyaWJ1dGVGaWx0ZXIgZnVuY3Rpb24gZm9yIHRoZSBnaXZlbiBvcGVyYXRvcg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oIlVua25vd24gYXR0cmlidXRlIGZpbHRlcjogeyRuWzRdfSIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoISRjdXJyZW50KQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRjdXJyZW50ID0gJHRoaXMtPnhwYXRoLT5xdWVyeSgnLy8qJyk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGN1cnJlbnQgPSBzZWxmOjptYWtlQXJyYXkoJGN1cnJlbnQpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICgkY3VycmVudCBhcyAkZWxlbSkNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodHJ1ZSA9PT0gY2FsbF91c2VyX2Z1bmMoc2VsZjo6JGF0dHJpYnV0ZUZpbHRlcnNbJG5bNF1dLCAkZWxlbSwgJG5bMV0sICRuWzZdLCAkbiwgJGN1cnJlbnQpKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5ld1tdID0gJGVsZW07DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAgICAvL3NldCB0aGlzIGZvciB0aGUgc3Vic3RyDQogICAgICAgICAgICAgICAgICAgICAgICAkbVswXSA9ICRuWzBdOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgLy9vbmx5IHRocm93biBpZiBxdWVyeSBpcyBtYWxmb3JtZWQNCiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oIlVuaWRlbnRpZmllZCB1c2Ugb2YgJ1snIGluIHskbVswXX0iKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgLy9qdXN0IGEgdGFnIC0gaS5lLiBhbnkgZGVzY2VuZGFudCBvZiB0aGUgY3VycmVudCBjb250ZXh0DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICRuZXcgPSAkdGhpcy0+dGFnKCRtWzJdLCAkY3VycmVudCk7DQogICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgICANCiAgICAgICAgICAgIC8vY2hlY2sgZm9yICMgb3IgLiBhcyBmaWx0ZXIgICAgDQogICAgICAgICAgICAkZXhwID0gc3Vic3RyKCRleHByZXNzaW9uLCBzdHJsZW4oJG1bMF0pKTsNCiAgICAgICAgICAgIA0KICAgICAgICAgICAgd2hpbGUgKCRleHAgJiYgKCRleHBbMF0gPT0gIi4iIHx8ICRleHBbMF0gPT0gIiMiKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBpZiAocHJlZ19tYXRjaChzZWxmOjpDSFVOS0VSLCAkZXhwLCAkbSkpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAkZXhwcmVzc2lvbiA9ICRleHA7DQogICAgICAgICAgICAgICAgICAgICRuZXcgPSAkbVsxXSA9PSAiLiIgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAkdGhpcy0+Y2xhc3NOYW1lKCRtWzJdLCAkbmV3LCB0cnVlKSANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICR0aGlzLT5pZCgkbVsyXSwgJG5ldywgdHJ1ZSk7DQogICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAkZXhwID0gc3Vic3RyKCRleHByZXNzaW9uLCBzdHJsZW4oJG1bMF0pKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIHJldHVybiBzdHJsZW4oJG1bMF0pIDwgc3RybGVuKCRleHByZXNzaW9uKSANCiAgICAgICAgICAgICAgICA/ICR0aGlzLT5xdWVyeShzdWJzdHIoJGV4cHJlc3Npb24sIHN0cmxlbigkbVswXSkpLCAkbmV3LCAkb3JpZ2luYWxfY29udGV4dCkgDQogICAgICAgICAgICAgICAgOiBzZWxmOjp1bmlxdWUoJG5ldyk7DQogICAgfQ0KICAgIA0KICAgIC8qKg0KICAgICAqICAgIGdldCBhbiBlbGVtZW50IGJ5IGl0cyBpZCBhdHRyaWJ1dGUNCiAgICAgKg0KICAgICAqICAgIEBhY2Nlc3MgcHVibGljDQogICAgICoNCiAgICAgKiAgICBAcGFyYW0gc3RyaW5nICRpZA0KICAgICAqICAgIEBwYXJhbSBhcnJheSAkY29udGV4dA0KICAgICAqDQogICAgICogICAgQHJldHVybnMgYXJyYXkNCiAgICAgKi8NCiAgICBwdWJsaWMgZnVuY3Rpb24gaWQgKCYkaWQsIGFycmF5ICYkY29udGV4dD1hcnJheSgpLCAkZmlsdGVyPWZhbHNlKQ0KICAgIHsNCiAgICAgICAgJG5ldyA9IGFycmF5KCk7DQogICAgICAgIA0KICAgICAgICAvL2lmIGEgY29udGV4dCBpcyBwcmVzZW50IC0gZGl2I2lkIHNob3VsZCBhY3QgbGlrZSBhIGZpbHRlcg0KICAgICAgICBpZiAoJGZpbHRlciB8fCAkY29udGV4dCkNCiAgICAgICAgew0KICAgICAgICAgICAgZm9yZWFjaCAoJGNvbnRleHQgYXMgJGVsZW0pDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgaWYgKCRlbGVtIGluc3RhbmNlb2YgRE9NRWxlbWVudCAmJiAkZWxlbS0+aGFzQXR0cmlidXRlKCdpZCcpICYmICRlbGVtLT5nZXRBdHRyaWJ1dGUoJ2lkJykgPT0gJGlkKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgJG5ld1tdID0gJGVsZW07DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIGVsc2VpZiAoKCRpdGVtcyA9ICR0aGlzLT54cGF0aC0+cXVlcnkoIi8vKltAaWQ9J3skaWR9J10iKSkgJiYgJGl0ZW1zLT5sZW5ndGggPiAwKQ0KICAgICAgICB7DQogICAgICAgICAgICBmb3JlYWNoICgkaXRlbXMgYXMgJGl0ZW0pDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgJG5ld1tdID0gJGl0ZW07DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIHJldHVybiAkbmV3Ow0KICAgIH0NCiAgICANCiAgICAvKioNCiAgICAgKiAgICBnZXQgYW4gZWxlbWVudCBieSBpdHMgY2xhc3MgYXR0cmlidXRlDQogICAgICoNCiAgICAgKiAgICBAYWNjZXNzIHB1YmxpYw0KICAgICAqDQogICAgICogICAgQHBhcmFtIHN0cmluZyAkaWQNCiAgICAgKiAgICBAcGFyYW0gYXJyYXkgJGNvbnRleHQNCiAgICAgKg0KICAgICAqICAgIEByZXR1cm5zIGFycmF5DQogICAgICovDQogICAgcHVibGljIGZ1bmN0aW9uIGNsYXNzTmFtZSAoJiRjbGFzc05hbWUsIGFycmF5ICYkY29udGV4dD1hcnJheSgpLCAkZmlsdGVyPWZhbHNlKQ0KICAgIHsNCiAgICAgICAgJG5ldyA9IGFycmF5KCk7DQogICAgICAgIA0KICAgICAgICBpZiAoJGZpbHRlciAmJiAkY29udGV4dCkNCiAgICAgICAgew0KICAgICAgICAgICAgJHJlZ2V4ID0gJy9ccysnIC4gcHJlZ19xdW90ZSgkY2xhc3NOYW1lLCAnLycpIC4gJ1xzKy8nOw0KICAgICAgICAgICAgDQogICAgICAgICAgICBmb3JlYWNoICgkY29udGV4dCBhcyAkZWxlbSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBpZiAoJGVsZW0tPmhhc0F0dHJpYnV0ZSgnY2xhc3MnKSAmJiBwcmVnX21hdGNoKCRyZWdleCwgIiB7JGVsZW0tPmdldEF0dHJpYnV0ZSgnY2xhc3MnKX0gIikpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAkbmV3W10gPSAkZWxlbTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgLy9pZiB0aGVyZSBpcyBhIGNvbnRleHQgZm9yIHRoZSBxdWVyeQ0KICAgICAgICBlbHNlaWYgKCRjb250ZXh0KQ0KICAgICAgICB7DQogICAgICAgICAgICAvLzA2LTA4LTIwMDkgLSBhZGRlZCBub3JtYWxpemUtc3BhY2UgZnVuY3Rpb24sIGh0dHA6Ly93ZXN0aG9mZnN3ZWx0LmRlL2Jsb2cvMDAzNl94cGF0aF90b19zZWxlY3RfaHRtbF9ieV9jbGFzcy5odG1sDQogICAgICAgICAgICAkcXVlcnkgPSAiLi9kZXNjZW5kYW50OjoqWyBAY2xhc3MgYW5kIGNvbnRhaW5zKCBjb25jYXQoJyAnLCBub3JtYWxpemUtc3BhY2UoQGNsYXNzKSwgJyAnKSwgJyB7JGNsYXNzTmFtZX0gJykgXSI7DQogICAgICAgICAgICANCiAgICAgICAgICAgIGZvcmVhY2ggKCRjb250ZXh0IGFzICRlbGVtKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGlmICgNCiAgICAgICAgICAgICAgICAgICAgKCRpdGVtcyA9ICR0aGlzLT54cGF0aC0+cXVlcnkoJHF1ZXJ5LCAkZWxlbSkpICYmIA0KICAgICAgICAgICAgICAgICAgICAkaXRlbXMtPmxlbmd0aCA+IDANCiAgICAgICAgICAgICAgICApDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICgkaXRlbXMgYXMgJGl0ZW0pDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICRuZXdbXSA9ICRpdGVtOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIC8vb3RoZXJ3aXNlIHNlbGVjdCBhbnkgZWxlbWVudCBpbiB0aGUgZG9jdW1lbnQgdGhhdCBtYXRjaGVzIHRoZSBzZWxlY3Rvcg0KICAgICAgICBlbHNlaWYgKCgkaXRlbXMgPSAkdGhpcy0+eHBhdGgtPnF1ZXJ5KCIvLypbIEBjbGFzcyBhbmQgY29udGFpbnMoIGNvbmNhdCgnICcsIG5vcm1hbGl6ZS1zcGFjZShAY2xhc3MpLCAnICcpLCAnIHskY2xhc3NOYW1lfSAnKSBdIikpICYmICRpdGVtcy0+bGVuZ3RoID4gMCkNCiAgICAgICAgew0KICAgICAgICAgICAgZm9yZWFjaCAoJGl0ZW1zIGFzICRpdGVtKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICRuZXdbXSA9ICRpdGVtOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICByZXR1cm4gJG5ldzsNCiAgICB9DQogICAgDQogICAgLyoqDQogICAgICogICAgZ2V0IHRoZSBjaGlsZHJlbiBlbGVtZW50cw0KICAgICAqDQogICAgICogICAgQGFjY2VzcyBwdWJsaWMNCiAgICAgKg0KICAgICAqICAgIEBwYXJhbSBzdHJpbmcgJHRhZw0KICAgICAqICAgIEBwYXJhbSBhcnJheSAkY29udGV4dA0KICAgICAqDQogICAgICogICAgQHJldHVybnMgYXJyYXkNCiAgICAgKi8NCiAgICBwdWJsaWMgZnVuY3Rpb24gY2hpbGRyZW4gKCYkdGFnPScqJywgYXJyYXkgJiRjb250ZXh0PWFycmF5KCkpDQogICAgew0KICAgICAgICAkbmV3ID0gYXJyYXkoKTsNCiAgICAgICAgDQogICAgICAgICRxdWVyeSA9ICIuL3skdGFnfSI7DQogICAgICAgIA0KICAgICAgICAvL2lmIHRoZXJlIGlzIGEgY29udGV4dCBmb3IgdGhlIHF1ZXJ5DQogICAgICAgIGlmICgkY29udGV4dCkNCiAgICAgICAgew0KICAgICAgICAgICAgZm9yZWFjaCAoJGNvbnRleHQgYXMgJGVsZW0pDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgaWYgKCgkaXRlbXMgPSAkdGhpcy0+eHBhdGgtPnF1ZXJ5KCRxdWVyeSwgJGVsZW0pKSAmJiAkaXRlbXMtPmxlbmd0aCA+IDApDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICgkaXRlbXMgYXMgJGl0ZW0pDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICRuZXdbXSA9ICRpdGVtOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIC8vb3RoZXJ3aXNlIHNlbGVjdCBhbnkgZWxlbWVudCBpbiB0aGUgZG9jdW1lbnQgdGhhdCBtYXRjaGVzIHRoZSBzZWxlY3Rvcg0KICAgICAgICBlbHNlaWYgKCgkaXRlbXMgPSAkdGhpcy0+eHBhdGgtPnF1ZXJ5KCRxdWVyeSwgJHRoaXMtPmRvY3VtZW50LT5kb2N1bWVudEVsZW1lbnQpKSAmJiAkaXRlbXMtPmxlbmd0aCA+IDApDQogICAgICAgIHsNCiAgICAgICAgICAgIGZvcmVhY2ggKCRpdGVtcyBhcyAkaXRlbSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAkbmV3W10gPSAkaXRlbTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgcmV0dXJuICRuZXc7DQogICAgfQ0KICAgIA0KICAgIC8qKg0KICAgICAqICAgIGdldCB0aGUgYWRqYWNlbnQgc2libGluZyBlbGVtZW50cw0KICAgICAqDQogICAgICogICAgQGFjY2VzcyBwdWJsaWMNCiAgICAgKg0KICAgICAqICAgIEBwYXJhbSBzdHJpbmcgJHRhZw0KICAgICAqICAgIEBwYXJhbSBhcnJheSAkY29udGV4dA0KICAgICAqDQogICAgICogICAgQHJldHVybnMgYXJyYXkNCiAgICAgKi8NCiAgICBwdWJsaWMgZnVuY3Rpb24gYWRqYWNlbnRTaWJsaW5nICgmJHRhZz0nKicsIGFycmF5ICYkY29udGV4dD1hcnJheSgpKQ0KICAgIHsNCiAgICAgICAgJG5ldyA9IGFycmF5KCk7DQogICAgICAgIA0KICAgICAgICAkdGFnID0gc3RydG9sb3dlcigkdGFnKTsNCiAgICAgICAgDQogICAgICAgIC8vaWYgdGhlcmUgaXMgYSBjb250ZXh0IGZvciB0aGUgcXVlcnkNCiAgICAgICAgaWYgKCRjb250ZXh0KQ0KICAgICAgICB7ICAgIA0KICAgICAgICAgICAgZm9yZWFjaCAoJGNvbnRleHQgYXMgJGVsZW0pDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgaWYgKCR0YWcgPT0gJyonIHx8IHN0cnRvbG93ZXIoJGVsZW0tPm5leHRTaWJsaW5nLT5ub2RlTmFtZSkgPT0gJHRhZykNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICRuZXdbXSA9ICRlbGVtLT5uZXh0U2libGluZzsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIHJldHVybiAkbmV3Ow0KICAgIH0NCiAgICANCiAgICAvKioNCiAgICAgKiAgICBnZXQgdGhlIGFsbCBzaWJsaW5nIGVsZW1lbnRzDQogICAgICoNCiAgICAgKiAgICBAYWNjZXNzIHB1YmxpYw0KICAgICAqDQogICAgICogICAgQHBhcmFtIHN0cmluZyAkdGFnDQogICAgICogICAgQHBhcmFtIGFycmF5ICRjb250ZXh0DQogICAgICoNCiAgICAgKiAgICBAcmV0dXJucyBhcnJheQ0KICAgICAqLw0KICAgIHB1YmxpYyBmdW5jdGlvbiBnZW5lcmFsU2libGluZyAoJiR0YWc9JyonLCBhcnJheSAmJGNvbnRleHQ9YXJyYXkoKSkNCiAgICB7DQogICAgICAgICRuZXcgPSBhcnJheSgpOw0KICAgICAgICANCiAgICAgICAgLy9pZiB0aGVyZSBpcyBhIGNvbnRleHQgZm9yIHRoZSBxdWVyeQ0KICAgICAgICBpZiAoJGNvbnRleHQpDQogICAgICAgIHsNCiAgICAgICAgICAgICRxdWVyeSA9ICIuL2ZvbGxvd2luZy1zaWJsaW5nOjp7JHRhZ30gfCAuL3ByZWNlZGluZy1zaWJsaW5nOjp7JHRhZ30iOw0KICAgICAgICAgICAgDQogICAgICAgICAgICBmb3JlYWNoICgkY29udGV4dCBhcyAkZWxlbSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBpZiAoKCRpdGVtcyA9ICR0aGlzLT54cGF0aC0+cXVlcnkoJHF1ZXJ5LCAkZWxlbSkpICYmICRpdGVtcy0+bGVuZ3RoID4gMCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRpdGVtcyBhcyAkaXRlbSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgJG5ld1tdID0gJGl0ZW07DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIHJldHVybiAkbmV3Ow0KICAgIH0NCiAgICANCiAgICAvKioNCiAgICAgKiAgICBnZXQgdGhlIGFsbCBkZXNjZW5kYW50IGVsZW1lbnRzDQogICAgICoNCiAgICAgKiAgICBAYWNjZXNzIHB1YmxpYw0KICAgICAqDQogICAgICogICAgQHBhcmFtIHN0cmluZyAkdGFnDQogICAgICogICAgQHBhcmFtIGFycmF5ICRjb250ZXh0DQogICAgICoNCiAgICAgKiAgICBAcmV0dXJucyBhcnJheQ0KICAgICAqLw0KICAgIHB1YmxpYyBmdW5jdGlvbiB0YWcgKCYkdGFnPScqJywgYXJyYXkgJiRjb250ZXh0PWFycmF5KCkpDQogICAgew0KICAgICAgICAkbmV3ID0gYXJyYXkoKTsNCiAgICAgICAgDQogICAgICAgIC8vZ2V0IGFsbCB0aGUgZGVzY2VuZGFudHMgd2l0aCB0aGUgZ2l2ZW4gdGFnTmFtZQ0KICAgICAgICBpZiAoJGNvbnRleHQpDQogICAgICAgIHsNCiAgICAgICAgICAgICRxdWVyeSA9ICIuL2Rlc2NlbmRhbnQ6OnskdGFnfSI7DQogICAgICAgICAgICANCiAgICAgICAgICAgIGZvcmVhY2ggKCRjb250ZXh0IGFzICRlbGVtKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGlmICgkaXRlbXMgPSAkdGhpcy0+eHBhdGgtPnF1ZXJ5KCRxdWVyeSwgJGVsZW0pKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAoJGl0ZW1zIGFzICRpdGVtKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAkbmV3W10gPSAkaXRlbTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICAvL2dldCBhbGwgZWxlbWVudHMgd2l0aCB0aGUgZ2l2ZW4gdGFnTmFtZQ0KICAgICAgICBlbHNlDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmICgkaXRlbXMgPSAkdGhpcy0+eHBhdGgtPnF1ZXJ5KCIvL3skdGFnfSIpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRpdGVtcyBhcyAkaXRlbSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICRuZXdbXSA9ICRpdGVtOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgcmV0dXJuICRuZXc7DQogICAgfQ0KICAgIA0KICAgIC8qKg0KICAgICAqICAgIEEgdXRpbGl0eSBmdW5jdGlvbiBmb3IgY2FsY3VsYXRpbmcgbnRoLSogc3R5bGUgcHN1ZWRvIHNlbGVjdG9ycw0KICAgICAqDQogICAgICogICAgQHN0YXRpYw0KICAgICAqICAgIEBhY2Nlc3MgcHVibGljDQogICAgICoNCiAgICAgKiAgICBAcGFyYW0gRE9NTm9kZSAkY29udGV4dCAtIHRoZSBlbGVtZW50IHdob3NlIHBvc2l0aW9uIGlzIGJlaW5nIGNhbGN1bGF0ZWQNCiAgICAgKiAgICBAcGFyYW0gc3RyaW5nICRmdW5jIC0gdGhlIG5hbWUgb2YgdGhlIHBzdWVkbyBmdW5jdGlvbiB0aGF0IGlzIGJlaW5nIGNhbGN1bGF0ZWQgZm9yDQogICAgICogICAgQHBhcmFtIHN0cmluZyAkZXhwciAtIHRoZSBzdHJpbmcgYXJndW1lbnQgZm9yIHRoZSBzZWxlY3Rvcg0KICAgICAqICAgIEBwYXJhbSBET01YUGF0aCAkeHBhdGggLSBhbiBleGlzdGluZyB4cGF0aCBpbnN0YW5jZSBmb3IgdGhlIGRvY3VtZW50IHRoYXQgdGhlIGNvbnRleHQgYmVsb25nIHRvDQogICAgICoNCiAgICAgKiAgICBAcmV0dXJucyBib29sZWFuDQogICAgICovDQogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBudGhDaGlsZCAoRE9NTm9kZSAmJGNvbnRleHQsICRmdW5jLCAkZXhwciwgRE9NWFBhdGggJiR4cGF0aCkNCiAgICB7DQogICAgICAgIC8vcmVtb3ZlIGFsbCB0aGUgd2hpdGVzcGFjZQ0KICAgICAgICAkZXhwciA9IHByZWdfcmVwbGFjZSgnL1xzKy8nLCAnJywgdHJpbShzdHJ0b2xvd2VyKCRleHByKSkpOw0KICAgICAgICANCiAgICAgICAgLy9hbGwNCiAgICAgICAgaWYgKCRleHByID09ICduJyB8fCAkZXhwciA9PSAnbiswJyB8fCAkZXhwciA9PSAnMW4rMCcgfHwgJGV4cHIgPT0gJzFuJykNCiAgICAgICAgew0KICAgICAgICAgICAgcmV0dXJuIHRydWU7DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIC8vdGhlIGRpcmVjdGlvbiB3ZSB3aWxsIGxvb2sgZm9yIHNpYmxpbmdzDQogICAgICAgICRESVIgPSAoc3RyaXN0cigkZnVuYywgJ2xhc3QnKSA/ICdmb2xsb3dpbmcnIDogJ3ByZWNlZGluZycpOw0KICAgICAgICANCiAgICAgICAgLy9kbyBhIHRhZ05hbWUgY2hlY2s/DQogICAgICAgICR0eXBlID0gc3RyaXN0cigkZnVuYywgJ3R5cGUnKSA/ICdbbG9jYWwtbmFtZSgpPW5hbWUoLildJyA6ICcnOw0KICAgICAgICANCiAgICAgICAgLy90aGUgcG9zaXRpb24gb2YgdGhpcyBub2RlDQogICAgICAgICRjb3VudCA9ICR4cGF0aC0+ZXZhbHVhdGUoImNvdW50KCB7JERJUn0tc2libGluZzo6KnskdHlwZX0gKSArIDEiLCAkY29udGV4dCk7DQogICAgICAgIA0KICAgICAgICAvL29kZA0KICAgICAgICBpZigkZXhwciA9PSAnb2RkJyB8fCAkZXhwciA9PSAnMm4rMScpDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiAkY291bnQgJSAyICE9IDA7DQogICAgICAgIH0NCiAgICAgICAgLy9ldmVuDQogICAgICAgIGVsc2VpZigkZXhwciA9PSAnZXZlbicgfHwgJGV4cHIgPT0gJzJuJyB8fCAkZXhwciA9PSAnMm4rMCcpDQogICAgICAgIHsNCiAgICAgICAgICAgIHJldHVybiAkY291bnQgPiAwICYmICRjb3VudCAlIDIgPT0gMDsNCiAgICAgICAgfQ0KICAgICAgICAvL2EgcGFydGljdWxhciBwb3NpdGlvbg0KICAgICAgICBlbHNlaWYocHJlZ19tYXRjaCgnL14oW1wrXC1dP1xkKykkL2knLCAkZXhwciwgJG1hdCkpDQogICAgICAgIHsNCiAgICAgICAgICAgICRkID0gKHN0cmlzdHIoJGZ1bmMsICdsYXN0JykgPyAtMSA6IDEpICogaW50dmFsKCRtYXRbMV0pOw0KICAgICAgICAgICAgJHIgPSAkeHBhdGgtPnF1ZXJ5KHNwcmludGYoJy4uLyVzJywgJHR5cGUgPyAkY29udGV4dC0+dGFnTmFtZSA6ICcqJyksICRjb250ZXh0KTsNCiAgICAgICAgICAgIHJldHVybiAkciAmJiAkci0+bGVuZ3RoID49IGFicygkZCkgJiYgKCRkID4gMCA/ICRyLT5pdGVtKCRkIC0gMSktPmlzU2FtZU5vZGUoJGNvbnRleHQpIDogJHItPml0ZW0oJHItPmxlbmd0aCArICRkKS0+aXNTYW1lTm9kZSgkY29udGV4dCkpOw0KICAgICAgICB9DQogICAgICAgIC8vZ3JvdXBlZCBhZnRlciBhIHBhcnRpY3VsYXIgcG9zaXRpb24NCiAgICAgICAgZWxzZWlmKHByZWdfbWF0Y2goJy9eKFtcK1wtXT9cZCopP24oW1wrXC1dXGQrKT8vaScsICRleHByLCAkbWF0KSkNCiAgICAgICAgew0KICAgICAgICAgICAgJGEgPSAoaXNzZXQoJG1hdFsyXSkgJiYgJG1hdFsyXSA/IGludHZhbCgkbWF0WzJdKSA6IDApOw0KICAgICAgICAgICAgJGIgPSAoaXNzZXQoJG1hdFsyXSkgJiYgJG1hdFsyXSA/IGludHZhbCgkbWF0WzJdKSA6IDEpOw0KICAgICAgICAgICAgDQogICAgICAgICAgICByZXR1cm4gKCRhID09IDAgJiYgJGNvdW50ID09ICRiKSB8fA0KICAgICAgICAgICAgICAgICAgICAoJGEgPiAwICYmICRjb3VudCA+PSAkYiAmJiAoJGNvdW50IC0gJGIpICUgJGEgPT0gMCkgfHwNCiAgICAgICAgICAgICAgICAgICAgKCRhIDwgMCAmJiAkY291bnQgPD0gJGIgJiYgKCgkYiAtICRjb3VudCkgJSAoJGEgKiAtMSkpID09IDApOw0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgfQ0KICAgIA0KICAgIC8qKg0KICAgICAqICAgIEEgdXRpbGl0eSBmdW5jdGlvbiBmb3IgZmlsdGVyaW5nIGlucHV0cyBvZiBhIHNwZWNpZmljIHR5cGUNCiAgICAgKg0KICAgICAqICAgIEBzdGF0aWMNCiAgICAgKiAgICBAYWNjZXNzIHB1YmxpYw0KICAgICAqDQogICAgICogICAgQHBhcmFtIG1peGVkICRlbGVtDQogICAgICogICAgQHBhcmFtIHN0cmluZyAkdHlwZQ0KICAgICAqDQogICAgICogICAgQHJldHVybnMgYm9vbGVhbg0KICAgICAqLw0KICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gaW5wdXRGaWx0ZXIgKCYkZWxlbSwgJHR5cGUpDQogICAgew0KICAgICAgICAkdCA9IHRyaW0oc3RydG9sb3dlcigkdHlwZSkpOw0KICAgICAgICANCiAgICAgICAgICAgICAgICAvL2dvdHRhIGJlIGEgLURPTU5vZGUtIERPTUVsZW1lbnQNCiAgICAgICAgcmV0dXJuICRlbGVtIGluc3RhbmNlb2YgRE9NRWxlbWVudCAmJiANCiAgICAgICAgICAgICAgICAvL3dpdGggdGhlIHRhZ05hbWUgaW5wdXQNCiAgICAgICAgICAgICAgICBzdHJ0b2xvd2VyKCRlbGVtLT50YWdOYW1lKSA9PSAnaW5wdXQnICYmIA0KICAgICAgICAgICAgICAgICgNCiAgICAgICAgICAgICAgICAgICAgKCR0ID09ICd0ZXh0JyAmJiAhJGVsZW0tPmhhc0F0dHJpYnV0ZSgndHlwZScpKSB8fA0KICAgICAgICAgICAgICAgICAgICAoJHQgPT0gJ2J1dHRvbicgJiYgc3RydG9sb3dlcigkZS0+dGFnTmFtZSkgPT0gImJ1dHRvbiIpIHx8IA0KICAgICAgICAgICAgICAgICAgICAoDQogICAgICAgICAgICAgICAgICAgICAgICAvL2FuZCB0aGUgYXR0cmlidXRlIHR5cGUNCiAgICAgICAgICAgICAgICAgICAgICAgICRlbGVtLT5oYXNBdHRyaWJ1dGUoJ3R5cGUnKSAmJiANCiAgICAgICAgICAgICAgICAgICAgICAgIC8vdGhlIGF0dHJpYnV0ZSB0eXBlIHNob3VsZCBtYXRjaCB0aGUgZ2l2ZW4gdmFyaWFibGUgdHlwZSBjYXNlIGluc2Vuc2l0aXZlDQogICAgICAgICAgICAgICAgICAgICAgICB0cmltKHN0cnRvbG93ZXIoJGVsZW0tPmdldEF0dHJpYnV0ZSgndHlwZScpKSkgPT0gJHQNCiAgICAgICAgICAgICAgICAgICAgKQ0KICAgICAgICAgICAgICAgICk7DQogICAgfQ0KICAgIA0KICAgIC8qKg0KICAgICAqICAgIEEgdXRpbGl0eSBmdW5jdGlvbiBmb3IgbWFraW5nIGFuIGl0ZXJhYmxlIG9iamVjdCBpbnRvIGFuIGFycmF5DQogICAgICoNCiAgICAgKiAgICBAc3RhdGljDQogICAgICogICAgQGFjY2VzcyBwdWJsaWMNCiAgICAgKg0KICAgICAqICAgIEBwYXJhbSBhcnJheXxUcmF2ZXJzYWJsZSAkYXJyDQogICAgICoNCiAgICAgKiAgICBAcmV0dXJuIGFycmF5DQogICAgICovDQogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBtYWtlQXJyYXkgKCYkYXJyKQ0KICAgIHsNCiAgICAgICAgaWYgKGlzX2FycmF5KCRhcnIpKQ0KICAgICAgICB7DQogICAgICAgICAgICByZXR1cm4gYXJyYXlfdmFsdWVzKCRhcnIpOw0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICAkcmV0ID0gYXJyYXkoKTsNCiAgICAgICAgDQogICAgICAgIGlmICgkYXJyKQ0KICAgICAgICB7DQogICAgICAgICAgICBmb3JlYWNoICgkYXJyIGFzICRlbGVtKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICRyZXRbY291bnQoJHJldCldID0gJGVsZW07DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIHJldHVybiAkcmV0Ow0KICAgIH0NCiAgICANCiAgICAvKioNCiAgICAgKiAgICBBIHV0aWxpdHkgZnVuY3Rpb24gZm9yIHN0cmlwcGluZyBkdXBsaWNhdGUgZWxlbWVudHMgZnJvbSBhbiBhcnJheQ0KICAgICAqICAgIHdvcmtzIG9uIERPTU5vZGVzDQogICAgICoNCiAgICAgKiAgICBAc3RhdGljDQogICAgICogICAgQGFjY2VzcyBwdWJsaWMNCiAgICAgKg0KICAgICAqICAgIEBwYXJhbSBhcnJheXxUcmF2ZXJzYWJsZSAkYXJyDQogICAgICoNCiAgICAgKiAgICBAcmV0dXJucyBhcnJheQ0KICAgICAqLw0KICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gdW5pcXVlICgmJGFycikNCiAgICB7DQogICAgICAgIC8vZmlyc3Qgc3RlcCBtYWtlIHN1cmUgYWxsIHRoZSBlbGVtZW50cyBhcmUgdW5pcXVlDQogICAgICAgICRuZXcgPSBhcnJheSgpOw0KICAgICAgICANCiAgICAgICAgZm9yZWFjaCAoJGFyciBhcyAkY3VycmVudCkNCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKA0KICAgICAgICAgICAgICAgIC8vaWYgdGhlIG5ldyBhcnJheSBpcyBlbXB0eQ0KICAgICAgICAgICAgICAgIC8vanVzdCBwdXQgdGhlIGVsZW1lbnQgaW4gdGhlIGFycmF5DQogICAgICAgICAgICAgICAgZW1wdHkoJG5ldykgfHwgDQogICAgICAgICAgICAgICAgKA0KICAgICAgICAgICAgICAgICAgICAvL2lmIGl0IGlzIG5vdCBhbiBpbnN0YW5jZSBvZiBhIERPTU5vZGUNCiAgICAgICAgICAgICAgICAgICAgLy9ubyBuZWVkIHRvIGNoZWNrIGZvciBpc1NhbWVOb2RlDQogICAgICAgICAgICAgICAgICAgICEoJGN1cnJlbnQgaW5zdGFuY2VvZiBET01Ob2RlKSAmJiANCiAgICAgICAgICAgICAgICAgICAgIWluX2FycmF5KCRjdXJyZW50LCAkbmV3KQ0KICAgICAgICAgICAgICAgICkgfHwgDQogICAgICAgICAgICAgICAgLy9kbyBET01Ob2RlIHRlc3Qgb24gYXJyYXkNCiAgICAgICAgICAgICAgICBzZWxmOjppbkFycmF5KCRjdXJyZW50LCAkbmV3KSA8IDANCiAgICAgICAgICAgICkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAkbmV3W10gPSAkY3VycmVudDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgcmV0dXJuICRuZXc7DQogICAgfQ0KICAgIA0KICAgIC8qKg0KICAgICAqICAgIEEgdXRpbGl0eSBmdW5jdGlvbiBmb3IgZGV0ZXJtaW5pbmcgdGhlIHBvc2l0aW9uIG9mIGFuIGVsZW1lbnQgaW4gYW4gYXJyYXkNCiAgICAgKiAgICB3b3JrcyBvbiBET01Ob2RlcywgcmV0dXJucyAtMSBvbiBmYWlsdXJlDQogICAgICoNCiAgICAgKiAgICBAc3RhdGljDQogICAgICogICAgQGFjY2VzcyBwdWJsaWMNCiAgICAgKg0KICAgICAqICAgIEBwYXJhbSBtaXhlZCAkZWxlbQ0KICAgICAqICAgIEBwYXJhbSBhcnJheXxUcmF2ZXJzYWJsZSAkYXJyDQogICAgICoNCiAgICAgKiAgICBAcmV0dXJucyBpbnRlZ2VyDQogICAgICovDQogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBpbkFycmF5IChET01Ob2RlICYkZWxlbSwgJGFycikNCiAgICB7DQogICAgICAgICRpID0gMDsNCiAgICAgICAgDQogICAgICAgIGZvcmVhY2ggKCRhcnIgYXMgJGN1cnJlbnQpDQogICAgICAgIHsNCiAgICAgICAgICAgIC8vaWYgaXQgaXMgYW4gaWRlbnRpY2FsIG9iamVjdCBvciBhIERPTUVsZW1lbnQgdGhhdCByZXByZXNlbnRzIHRoZSBzYW1lIG5vZGUNCiAgICAgICAgICAgIGlmICgkY3VycmVudCA9PT0gJGVsZW0gfHwgKCRjdXJyZW50IGluc3RhbmNlb2YgRE9NTm9kZSAmJiAkY3VycmVudC0+aXNTYW1lTm9kZSgkZWxlbSkpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHJldHVybiAkaTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIA0KICAgICAgICAgICAgJGkgKz0gMTsNCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgcmV0dXJuIC0xOw0KICAgIH0NCiAgICANCiAgICAvKioNCiAgICAgKiAgICBBIHV0aWxpdHkgZnVuY3Rpb24gZm9yIGZpbHRlcmluZyBlbGVtZW50cyBmcm9tIGFuIGFycmF5IG9yIGFycmF5LWxpa2Ugb2JqZWN0DQogICAgICoNCiAgICAgKiAgICBAc3RhdGljDQogICAgICogICAgQGFjY2VzcyBwdWJsaWMNCiAgICAgKg0KICAgICAqICAgIEBwYXJhbSBtaXhlZCAkZWxlbQ0KICAgICAqICAgIEBwYXJhbSBhcnJheXxUcmF2ZXJzYWJsZSAkYXJyDQogICAgICoNCiAgICAgKiAgICBAcmV0dXJucyBhcnJheQ0KICAgICAqLw0KICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZmlsdGVyICgkYXJyYXksICRmdW5jKQ0KICAgIHsNCiAgICAgICAgJHJldCA9IGFycmF5KCk7DQogICAgICAgIA0KICAgICAgICBpZiAoIWlzX2NhbGxhYmxlKCRmdW5jKSkNCiAgICAgICAgew0KICAgICAgICAgICAgcmV0dXJuICRhcnJheTsNCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgZm9yZWFjaCAoJGFycmF5IGFzICRuID0+ICR2KQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAoZmFsc2UgIT09IGNhbGxfdXNlcl9mdW5jKCRmdW5jLCAkdiwgJG4sICRhcnJheSwgJHRoaXMpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICRyZXRbXSA9ICR2Ow0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICByZXR1cm4gJHJldDsNCiAgICB9DQogICAgDQogICAgLyoqDQogICAgICogICAgQSBzdGF0aWMgZnVuY3Rpb24gZGVzaWduZWQgdG8gbWFrZSBpdCBlYXNpZXIgdG8gZ2V0IHRoZSBpbmZvDQogICAgICoNCiAgICAgKiAgICBAc3RhdGljDQogICAgICogICAgQGFjY2VzcyBwdWJsaWMNCiAgICAgKg0KICAgICAqICAgIEBwYXJhbSBzdHJpbmcgJHF1ZXJ5DQogICAgICogICAgQHBhcmFtIG1peGVkICRjb250ZXh0DQogICAgICogICAgQHBhcmFtIGFycmF5fFRyYXZlcnNhYmxlICRyZXQgLSBwYXNzZWQgYnkgcmVmZXJlbmNlDQogICAgICoNCiAgICAgKiAgICBAcmV0dXJuIGFycmF5DQogICAgICovDQogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBmaW5kICgkcXVlcnksICRjb250ZXh0LCAkcmV0PW51bGwpDQogICAgew0KICAgICAgICAkbmV3ID0gYXJyYXkoKTsNCiAgICAgICAgDQogICAgICAgIC8vcXVlcnkgdXNpbmcgRE9NRG9jdW1lbnQNCiAgICAgICAgaWYgKCRjb250ZXh0IGluc3RhbmNlb2YgRE9NRG9jdW1lbnQpDQogICAgICAgIHsNCiAgICAgICAgICAgICRjc3MgPSBuZXcgc2VsZigkY29udGV4dCk7DQogICAgICAgICAgICAkbmV3ID0gJGNzcy0+cXVlcnkoJHF1ZXJ5KTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlaWYgKCRjb250ZXh0IGluc3RhbmNlb2YgRE9NTm9kZUxpc3QpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmICgkY29udGV4dC0+bGVuZ3RoKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICRjc3MgPSBuZXcgc2VsZigkY29udGV4dC0+aXRlbSgwKS0+b3duZXJEb2N1bWVudCk7DQogICAgICAgICAgICAgICAgJG5ldyA9ICRjc3MtPnF1ZXJ5KCRxdWVyeSwgJGNvbnRleHQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIC8vc2hvdWxkIGJlIGFuIGFycmF5IGlmIGl0IGlzbid0IGEgRE9NTm9kZQ0KICAgICAgICAvL2luIHdoaWNoIGNhc2UgdGhlIGZpcnN0IGVsZW1lbnQgc2hvdWxkIGJlIGEgRE9NTm9kZQ0KICAgICAgICAvL3JlcHJlc2VudGluZyB0aGUgZGVzaXJlZCBjb250ZXh0DQogICAgICAgIGVsc2VpZiAoISgkY29udGV4dCBpbnN0YW5jZW9mIERPTU5vZGUpICYmIGNvdW50KCRjb250ZXh0KSkNCiAgICAgICAgew0KICAgICAgICAgICAgJGNzcyA9IG5ldyBzZWxmKCRjb250ZXh0WzBdLT5vd25lckRvY3VtZW50KTsNCiAgICAgICAgICAgICRuZXcgPSAkY3NzLT5xdWVyeSgkcXVlcnksICRjb250ZXh0KTsNCiAgICAgICAgfQ0KICAgICAgICAvL290aGVyd2lzZSB1c2UgdGhlIG93bmVyRG9jdW1lbnQgYW5kIHRoZSBjb250ZXh0IGFzIHRoZSBjb250ZXh0IG9mIHRoZSBxdWVyeQ0KICAgICAgICBlbHNlDQogICAgICAgIHsNCiAgICAgICAgICAgICRjc3MgPSBuZXcgc2VsZigkY29udGV4dC0+b3duZXJEb2N1bWVudCk7DQogICAgICAgICAgICAkbmV3ID0gJGNzcy0+cXVlcnkoJHF1ZXJ5LCAkY29udGV4dCk7DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIC8vaWYgdGhlcmUgaXMgYSBwbGFjZSB0byBzdG9yZSB0aGUgbmV3bHkgc2VsZWN0ZWQgZWxlbWVudHMNCiAgICAgICAgaWYgKCRyZXQpDQogICAgICAgIHsNCiAgICAgICAgICAgIC8vYXBwZW5kIHRoZSBuZXdseSBzZWxlY3RlZCBlbGVtZW50cyB0byB0aGUgZ2l2ZW4gYXJyYXl8b2JqZWN0DQogICAgICAgICAgICAvL29yIGlmIGl0IGlzIGFuIGluc3RhbmNlIG9mIEFycmF5QWNjZXNzIGp1c3QgcHVzaCBpdCBvbiB0byB0aGUgb2JqZWN0DQogICAgICAgICAgICBpZiAoaXNfYXJyYXkoJHJldCkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgJG5ldyA9IGFycmF5X21lcmdlKCRyZXQsICRuZXcpOw0KICAgICAgICAgICAgICAgICRuZXcgPSBzZWxmOjp1bmlxdWUoJG5ldyk7DQogICAgICAgICAgICAgICAgJHJldCA9ICRuZXc7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlaWYgKGlzX29iamVjdCgkcmV0KSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBpZiAoJHJldCBpbnN0YW5jZW9mIEFycmF5QWNjZXNzKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAoJG5ldyBhcyAkZWxlbSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgJHJldFtjb3VudCgkcmV0KV0gPSAkZWxlbTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAvL2FwcGVuZGluZyBlbGVtZW50cyB0byBhIERPTURvY3VtZW50RnJhZ21lbnQgaXMgYSBmYXN0IHdheSB0byBtb3ZlIHRoZW0gYXJvdW5kDQogICAgICAgICAgICAgICAgZWxzZWlmICgkcmV0IGluc3RhbmNlb2YgRE9NRG9jdW1lbnRGcmFnbWVudCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRuZXcgYXMgJGVsZW0pDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vYXBwZW5kQ2hpbGQsIGJ1dCBkb24ndCBmb3JnZXQgdG8gdmVyaWZ5IHNhbWUgZG9jdW1lbnQNCiAgICAgICAgICAgICAgICAgICAgICAgICRyZXQtPmFwcGVuZENoaWxkKAkhJHJldC0+b3duZXJEb2N1bWVudC0+aXNTYW1lTm9kZSgkZWxlbS0+b3duZXJEb2N1bWVudCkgDQoJCQkJCQkJCQkJCT8gJHJldC0+b3duZXJEb2N1bWVudC0+aW1wb3J0Tm9kZSgkZWxlbSwgdHJ1ZSkgDQoJCQkJCQkJCQkJCTogJGVsZW0pOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIC8vb3RoZXJ3aXNlIHdlIG5lZWQgdG8gZmluZCBhIG1ldGhvZCB0byB1c2UgdG8gYXR0YWNoIHRoZSBlbGVtZW50cw0KICAgICAgICAgICAgICAgIGVsc2VpZiAoKCRtID0gbWV0aG9kX2V4aXN0cygkcmV0LCAncHVzaCcpKSB8fCBtZXRob2RfZXhpc3RzKCRyZXQsICdhZGQnKSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICRtZXRob2QgPSAkbSA/ICdwdXNoJyA6ICdhZGQnOw0KICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAoJG5ldyBhcyAkZWxlbSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgJHJldC0+JG1ldGhvZCgkZWxlbSk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZWxzZWlmICgoJG0gPSBtZXRob2RfZXhpc3RzKCRyZXQsICdjb25jYXQnKSkgfHwgbWV0aG9kX2V4aXN0cygkcmV0LCAnY29uY2F0ZW5hdGUnKSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICRtZXRob2QgPSAkbSA/ICdjb25jYXQnIDogJ2NvbmNhdGVuYXRlJzsNCiAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICRyZXQtPiRtZXRob2QoJG5ldyk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy90aGlzIHdpbGwgc2F2ZSB0aGUgc2VsZWN0ZWQgZWxlbWVudHMgaW50byBhIHN0cmluZw0KICAgICAgICAgICAgZWxzZWlmIChpc19zdHJpbmcoJHJldCkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgZm9yZWFjaCAoJG5ldyBhcyAkZWxlbSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICRyZXQgLj0gJGVsZW0tPm93bmVyRG9jdW1lbnQtPnNhdmVYTUwoJGVsZW0pOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgcmV0dXJuICRuZXc7DQogICAgfQ0KfQ0KDQovKioNCiAqICAgIHRoaXMgY3JlYXRlcyB0aGUgZGVmYXVsdCBmaWx0ZXJzIGFycmF5IG9uIHRoZSBDU1NRdWVyeSBvYmplY3QNCiAqDQogKiAgICA8Y29kZT4NCiAqICAgICAgICAvL3Byb3RvdHlwZSBmdW5jdGlvbiAoRE9NTm9kZSAkZWxlbWVudCwgaW50ZWdlciAkaSwgYXJyYXkgJG1hdGNoZXMsIGFycmF5ICRjb250ZXh0LCBDU1NRdWVyeSAkY3NzUXVlcnkpOw0KICogICAgICAgIENTU1F1ZXJ5OjokZmlsdGVyc1snbXlmaWx0ZXInXSA9IGNyZWF0ZV9mdW5jdGlvbignJywgJycpOw0KICogICAgICAgIA0KICogICAgPC9jb2RlPg0KICovDQpDU1NRdWVyeTo6JGZpbHRlcnMgPSBuZXcgUmVjdXJzaXZlQXJyYXlJdGVyYXRvcihhcnJheSgNCiAgICAvL0NTUzMgc2VsZWN0b3JzDQogICAgJ2ZpcnN0LWNoaWxkJyAgICAgICAgPT4gY3JlYXRlX2Z1bmN0aW9uKCdET01Ob2RlICYkZSwkaSwmJG0sJiRhLENTU1F1ZXJ5ICYkYycsICAgICAncmV0dXJuICEkZS0+aXNTYW1lTm9kZSgkZS0+b3duZXJEb2N1bWVudC0+ZG9jdW1lbnRFbGVtZW50KSAmJiANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRjLT54cGF0aC0+cXVlcnkoIi4uLypbcG9zaXRpb24oKT0xXSIsICRlKS0+aXRlbSgwKS0+aXNTYW1lTm9kZSgkZSk7JyksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCiAgICAnbGFzdC1jaGlsZCcgICAgICAgICA9PiBjcmVhdGVfZnVuY3Rpb24oJ0RPTU5vZGUgJiRlLCRpLCYkbSwmJGEsQ1NTUXVlcnkgJiRjJywgICAgICdyZXR1cm4gISRlLT5pc1NhbWVOb2RlKCRlLT5vd25lckRvY3VtZW50LT5kb2N1bWVudEVsZW1lbnQpICYmIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGMtPnhwYXRoLT5xdWVyeSgiLi4vKltsYXN0KCldIiwgJGUpLT5pdGVtKDApLT5pc1NhbWVOb2RlKCRlKTsnKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICdvbmx5LWNoaWxkJyAgICAgICAgID0+IGNyZWF0ZV9mdW5jdGlvbignRE9NTm9kZSAmJGUsJGksJiRtLCYkYSxDU1NRdWVyeSAmJGMnLCAgICAgJ3JldHVybiAhJGUtPmlzU2FtZU5vZGUoJGUtPm93bmVyRG9jdW1lbnQtPmRvY3VtZW50RWxlbWVudCkgJiYgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZS0+cGFyZW50Tm9kZS0+Z2V0RWxlbWVudHNCeVRhZ05hbWUoIioiKS0+bGVuZ3RoID09IDE7JyksDQogICAgDQogICAgJ2NoZWNrZWQnICAgICAgICAgICAgPT4gY3JlYXRlX2Z1bmN0aW9uKCdET01Ob2RlICYkZScsICAgICAgICAgICAgICAncmV0dXJuIHN0cnRvbG93ZXIoJGUtPnRhZ05hbWUpID09ICJpbnB1dCIgJiYgJGUtPmhhc0F0dHJpYnV0ZSgiY2hlY2tlZCIpOycpLA0KCQ0KICAgICdkaXNhYmxlZCcgICAgICAgICAgID0+IGNyZWF0ZV9mdW5jdGlvbignRE9NTm9kZSAmJGUnLCAgICAgICAgICAgICAgJ3JldHVybiAkZS0+aGFzQXR0cmlidXRlKCJkaXNhYmxlZCIpICYmIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJpc3RyKCJ8aW5wdXR8dGV4dGFyZWF8c2VsZWN0fGJ1dHRvbnwiLCAifCIuJGUtPnRhZ05hbWUuInwiKSAhPT0gZmFsc2U7JyksDQoJCQkJCQkJCQkJCQkJCQkJCQkJCQ0KICAgICdlbmFibGVkJyAgICAgICAgICAgID0+IGNyZWF0ZV9mdW5jdGlvbignRE9NTm9kZSAmJGUnLCAgICAgICAgICAgICAgJ3JldHVybiAhJGUtPmhhc0F0dHJpYnV0ZSgiZGlzYWJsZWQiKSAmJiANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmlzdHIoInxpbnB1dHx0ZXh0YXJlYXxzZWxlY3R8YnV0dG9ufCIsICJ8Ii4kZS0+dGFnTmFtZSAuICJ8IikgIT09IGZhbHNlICYmDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoISRlLT5oYXNBdHRyaWJ1dGUoInR5cGUiKSB8fCBzdHJ0b2xvd2VyKCRlLT5nZXRBdHRyaWJ1dGUoInR5cGUiKSkgIT0gImhpZGRlbiIpOycpLA0KICAgIC8vbnRoIGNoaWxkIHNlbGVjdG9ycw0KICAgICJudGgtY2hpbGQiICAgICAgICAgICA9PiBjcmVhdGVfZnVuY3Rpb24oJ0RPTU5vZGUgJiRlLCRpLCYkbSwmJGEsQ1NTUXVlcnkgJiRjJywgICAgICdyZXR1cm4gQ1NTUXVlcnk6Om50aENoaWxkKCRlLCAibnRoLWNoaWxkIiwgICAgICAgICAgICAkbVszXSwgJGMtPnhwYXRoKTsnKSwNCiAgICAibnRoLWxhc3QtY2hpbGQiICAgICAgPT4gY3JlYXRlX2Z1bmN0aW9uKCdET01Ob2RlICYkZSwkaSwmJG0sJiRhLENTU1F1ZXJ5ICYkYycsICAgICAncmV0dXJuIENTU1F1ZXJ5OjpudGhDaGlsZCgkZSwgIm50aC1sYXN0LWNoaWxkIiwgICAgICAgJG1bM10sICRjLT54cGF0aCk7JyksDQogICAgIm50aC1vZi10eXBlIiAgICAgICAgID0+IGNyZWF0ZV9mdW5jdGlvbignRE9NTm9kZSAmJGUsJGksJiRtLCYkYSxDU1NRdWVyeSAmJGMnLCAgICAgJ3JldHVybiBDU1NRdWVyeTo6bnRoQ2hpbGQoJGUsICJudGgtb2YtdHlwZSIsICAgICAgICAgICRtWzNdLCAkYy0+eHBhdGgpOycpLA0KICAgICJudGgtbGFzdC1vZi10eXBlIiAgICA9PiBjcmVhdGVfZnVuY3Rpb24oJ0RPTU5vZGUgJiRlLCRpLCYkbSwmJGEsQ1NTUXVlcnkgJiRjJywgICAgICdyZXR1cm4gQ1NTUXVlcnk6Om50aENoaWxkKCRlLCAibnRoLWxhc3Qtb2YtdHlwZSIsICAgICAkbVszXSwgJGMtPnhwYXRoKTsnKSwNCiAgICANCiAgICAiZmlyc3Qtb2YtdHlwZSIgPT4gY3JlYXRlX2Z1bmN0aW9uKCdET01Ob2RlICYkZSwkaSwmJG0sJiRhLENTU1F1ZXJ5ICYkYycsICdyZXR1cm4gY2FsbF91c2VyX2Z1bmMoQ1NTUXVlcnk6OiRmaWx0ZXJzWyJudGgtb2YtdHlwZSJdLCAgICAgJGUsICRpLCBhcnJheSgwLDEsMSwxKSwgJGEsICRjKTsnKSwNCiAgICAibGFzdC1vZi10eXBlIiAgPT4gY3JlYXRlX2Z1bmN0aW9uKCdET01Ob2RlICYkZSwkaSwmJG0sJiRhLENTU1F1ZXJ5ICYkYycsICdyZXR1cm4gY2FsbF91c2VyX2Z1bmMoQ1NTUXVlcnk6OiRmaWx0ZXJzWyJudGgtbGFzdC1vZi10eXBlIl0sJGUsICRpLCBhcnJheSgwLDEsMSwxKSwgJGEsICRjKTsnKSwNCiAgICAib25seS1vZi10eXBlIiAgPT4gY3JlYXRlX2Z1bmN0aW9uKCdET01Ob2RlICYkZSwkaSwmJG0sJiRhLENTU1F1ZXJ5ICYkYycsICdyZXR1cm4gY2FsbF91c2VyX2Z1bmMoQ1NTUXVlcnk6OiRmaWx0ZXJzWyJmaXJzdC1vZi10eXBlIl0sICAgJGUsICRpLCAkbSwgICAgICAgICAgICAgJGEsICRjKSAmJiANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsbF91c2VyX2Z1bmMoQ1NTUXVlcnk6OiRmaWx0ZXJzWyJsYXN0LW9mLXR5cGUiXSwgICAgJGUsICRpLCAkbSwgICAgICAgICAgICAgJGEsICRjKTsnKSwNCiAgICAvL2Nsb3Nlc3QgdGhpbmcgdG8gdGhlIGxhbmcgZmlsdGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICJsYW5nIiAgICAgICAgICAgICAgICA9PiBjcmVhdGVfZnVuY3Rpb24oJ0RPTU5vZGUgJiRlLCRpLCRtLCRhLENTU1F1ZXJ5ICYkYycsICdyZXR1cm4gJGMtPnhwYXRoLT5ldmFsdWF0ZSgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcHJpbnRmKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY291bnQoLi9hbmNlc3Rvci1vci1zZWxmOjoqW0BsYW5nIGFuZCAoQGxhbmcgPSIuDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIFwiJXNcIiBvciBzdWJzdHJpbmcoQGxhbmcsIDEsICV1KT1cIiVzLVwiKV0pIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG1bM10sIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJsZW4oJG1bM10pICsgMSwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRtWzNdDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgPiAwOycpLA0KICAgIA0KICAgIC8vbmVnYXRpb24gZmlsdGVyDQogICAgIm5vdCIgICAgICAgICAgICAgICAgID0+IGNyZWF0ZV9mdW5jdGlvbignRE9NTm9kZSAmJGUsJGksJG0sJGEsQ1NTUXVlcnkgJiRjJywgICdyZXR1cm4gQ1NTUXVlcnk6OmluQXJyYXkoJGUsICRjLT5xdWVyeSh0cmltKCRtWzNdKSkpID09IC0xOycpLA0KICAgIA0KICAgIC8vZWxlbWVudCBoYXMgbm8gY2hpbGQgbm9kZXMNCiAgICAiZW1wdHkiICAgICAgICAgICAgICAgPT4gY3JlYXRlX2Z1bmN0aW9uKCdET01Ob2RlICYkZScsICAgICAgICAgICAgICAgICAgICAgICAgJ3JldHVybiAhJGUtPmhhc0NoaWxkTm9kZXMoKTsnKSwNCiAgICANCiAgICAvL2VsZW1lbnQgaGFzIGNoaWxkIG5vZGVzIHRoYXQgYXJlIGVsZW1lbnRzDQogICAgInBhcmVudCIgICAgICAgICAgICAgID0+IGNyZWF0ZV9mdW5jdGlvbignRE9NTm9kZSAmJGUnLCAgICAgICAgICAgICAgICAgICAgICAgICdyZXR1cm4gKCRuID0gJGUtPmdldEVsZW1lbnRzQnlUYWdOYW1lKCIqIikpICYmICRuLT5sZW5ndGggPiAwOycpLA0KICAgIA0KICAgIC8vZ2V0IHRoZSBwYXJlbnQgbm9kZSBvZiB0aGUgY3VycmVudCBlbGVtZW50DQogICAgInBhcmVudC1ub2RlIiAgICAgICAgID0+IGNyZWF0ZV9mdW5jdGlvbignRE9NTm9kZSAmJGUsJGksJG0sJGEsQ1NTUXVlcnkgJiRjJywgICcvL2lmIHRoZXJlIGlzIG5vIGZpbHRlciBqdXN0IHJldHVybiB0aGUgZmlyc3QgcGFyZW50Tm9kZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCEkbSB8fCAhaXNzZXQoJG1bM10pIHx8ICF0cmltKCRtWzNdKSkgcmV0dXJuICRlLT5wYXJlbnROb2RlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9vdGhlcndpc2UgaWYgdGhlIGZpbHRlciBpcyBtb3JlIHRoYW4gYSB0YWdOYW1lDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIHByZWdfbWF0Y2goIi9eKFwqfFx3KykoW15cd10rLispLyIsIHRyaW0oJG1bM10pLCAkbikgDQoJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCT8gQ1NTUXVlcnk6OmZpbmQodHJpbSgkblsyXSksICRjLT54cGF0aC0+cXVlcnkoIi4vYW5jZXN0b3I6OnskblsxXX0iLCAkZSkpIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2lmIHRoZSBmaWx0ZXIgaXMgb25seSBhIHRhZ05hbWUgc2F2ZSB0aGUgdHJvdWJsZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICRjLT54cGF0aC0+cXVlcnkoc3ByaW50ZigiLi9hbmNlc3Rvcjo6JXMiLCB0cmltKCRtWzNdKSksICRlKTsnKSwNCiAgICANCiAgICAvL2dldCB0aGUgYW5jZXN0b3JzIG9mIHRoZSBjdXJyZW50IGVsZW1lbnQNCiAgICAicGFyZW50cyIgICAgICAgICAgICAgPT4gY3JlYXRlX2Z1bmN0aW9uKCdET01Ob2RlICYkZSwkaSwmJG0sJiRhLENTU1F1ZXJ5ICYkYycsICckciA9ICRjLT54cGF0aC0+cXVlcnkoIi4vYW5jZXN0b3I6OioiLCAkZSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJG0gJiYgaXNzZXQoJG1bM10pICYmIHRyaW0oJG1bM10pID8gQ1NTUXVlcnk6OmZpbmQodHJpbSgkbVszXSksICRyKSA6ICRyOycpLA0KICAgIA0KICAgIC8vdGhlIGVsZW1lbnQgaGFzIG5leHRTaWJsaW5ncw0KICAgICJuZXh0LXNpYmxpbmciICAgICAgID0+IGNyZWF0ZV9mdW5jdGlvbignRE9NTm9kZSAmJGUnLCAgICAgICAgICAgICAgICAgICAgICAgICAgJ3JldHVybiAoJG4gPSAkZS0+cGFyZW50Tm9kZS0+Z2V0RWxlbWVudHNCeVRhZ05hbWUoIioiKSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmICEkbi0+aXRlbSgkbi0+bGVuZ3RoLTEpLT5pc1NhbWVOb2RlKCRlKTsnKSwNCiAgICANCiAgICAvL3RoZSBlbGVtZW50IGhhcyBwcmV2aW91c1NpYmxpbmdzDQogICAgInByZXZpb3VzLXNpYmxpbmciICAgPT4gY3JlYXRlX2Z1bmN0aW9uKCdET01Ob2RlICYkZScsICAgICAgICAgICAgICAgICAgICAgICAgICAncmV0dXJuICEkZS0+cGFyZW50Tm9kZS0+Z2V0RWxlbWVudHNCeVRhZ05hbWUoIioiKS0+aXRlbSgwKS0+aXNTYW1lTm9kZSgkZSk7JyksDQogICAgDQogICAgLy9nZXQgdGhlIHByZXZpb3VzU2libGluZ3Mgb2YgdGhlIGN1cnJlbnQgZWxlbWVudA0KICAgICJwcmV2aW91cy1zaWJsaW5ncyIgID0+IGNyZWF0ZV9mdW5jdGlvbignRE9NTm9kZSAmJGUsJGksJiRtLCYkYSxDU1NRdWVyeSAmJGMnLCAgJyRyID0gJGMtPnhwYXRoLT5xdWVyeSgiLi9wcmVjZWRpbmctc2libGluZzo6KiIsICRlKTsgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJG0gJiYgaXNzZXQoJG1bM10pICYmIHRyaW0oJG1bM10pID8gQ1NTUXVlcnk6OmZpbmQodHJpbSgkbVszXSksICRyKSA6ICRyOycpLA0KICAgIA0KICAgIC8vZ2V0IHRoZSBuZXh0U2libGluZ3Mgb2YgdGhlIGN1cnJlbnQgZWxlbWVudA0KICAgICJuZXh0LXNpYmxpbmdzIiAgICAgID0+IGNyZWF0ZV9mdW5jdGlvbignRE9NTm9kZSAmJGUsJGksJiRtLCYkYSxDU1NRdWVyeSAmJGMnLCAnJHIgPSAkYy0+eHBhdGgtPnF1ZXJ5KCIuL2ZvbGxvd2luZy1zaWJsaW5nOjoqIiwgJGUpOyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAkbSAmJiBpc3NldCgkbVszXSkgJiYgdHJpbSgkbVszXSkgPyBDU1NRdWVyeTo6ZmluZCh0cmltKCRtWzNdKSwgJHIpIDogJHI7JyksDQogICAgDQogICAgLy9nZXQgYWxsIHRoZSBzaWJsaW5ncyBvZiB0aGUgY3VycmVudCBlbGVtZW50DQogICAgInNpYmxpbmdzIiAgICAgICAgICAgPT4gY3JlYXRlX2Z1bmN0aW9uKCdET01Ob2RlICYkZSwkaSwmJG0sJiRhLENTU1F1ZXJ5ICYkYycsICckciA9ICRjLT54cGF0aC0+cXVlcnkoIi4vcHJlY2VkaW5nLXNpYmxpbmc6OiogfCAuL2ZvbGxvd2luZy1zaWJsaW5nOjoqIiwgJGUpOyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAkbSAmJiBpc3NldCgkbVszXSkgJiYgdHJpbSgkbVszXSkgPyBDU1NRdWVyeTo6ZmluZCh0cmltKCRtWzNdKSwgJHIpIDogJHI7JyksDQogICAgDQogICAgLy9zZWxlY3QgdGhlIGhlYWRlciBlbGVtZW50cw0KICAgICJoZWFkZXIiICAgICAgICAgICAgID0+IGNyZWF0ZV9mdW5jdGlvbignRE9NTm9kZSAmJGUnLCAgICAgICAgICAgICAgICAgJ3JldHVybiAoYm9vbClwcmVnX21hdGNoKCIvXmhbMS02XSQvaSIsICRlLT50YWdOYW1lKTsnKSwNCiAgICANCiAgICAvL2Zvcm0gZWxlbWVudCBzZWxlY3RvcnMNCiAgICAic2VsZWN0ZWQiICAgICAgICAgICA9PiBjcmVhdGVfZnVuY3Rpb24oJ0RPTU5vZGUgJiRlJywgICAgICAgICAgICAgICAgICdyZXR1cm4gJGUtPmhhc0F0dHJpYnV0ZSgic2VsZWN0ZWQiKTsnKSwNCiAgICANCiAgICAvL2FueSBlbGVtZW50IHRoYXQgd291bGQgYmUgY29uc2lkZXJlZCBpbnB1dCBiYXNlZCBvbiB0YWdOYW1lDQogICAgImlucHV0IiAgICAgICAgICAgICAgPT4gY3JlYXRlX2Z1bmN0aW9uKCdET01Ob2RlICYkZScsICAgICAgICAgICAgICAgICAncmV0dXJuIHN0cmlzdHIoInxpbnB1dHx0ZXh0YXJlYXxzZWxlY3R8YnV0dG9ufCIsICJ8IiAuICRlLT50YWdOYW1lIC4gInwiKSAhPT0gZmFsc2U7JyksDQogICAgLy9hbnkgaW5wdXQgZWxlbWVudCBhbmQgdHlwZQ0KICAgICJyYWRpbyIgICAgICAgICAgICAgID0+IGNyZWF0ZV9mdW5jdGlvbignRE9NTm9kZSAmJGUnLCAgICAgICAgICAgICAgICAgJ3JldHVybiBDU1NRdWVyeTo6aW5wdXRGaWx0ZXIoJGUsICJyYWRpbyIpOycpLA0KICAgICJjaGVja2JveCIgICAgICAgICAgID0+IGNyZWF0ZV9mdW5jdGlvbignRE9NTm9kZSAmJGUnLCAgICAgICAgICAgICAgICAgJ3JldHVybiBDU1NRdWVyeTo6aW5wdXRGaWx0ZXIoJGUsICJjaGVja2JveCIpOycpLA0KICAgICJmaWxlIiAgICAgICAgICAgICAgID0+IGNyZWF0ZV9mdW5jdGlvbignRE9NTm9kZSAmJGUnLCAgICAgICAgICAgICAgICAgJ3JldHVybiBDU1NRdWVyeTo6aW5wdXRGaWx0ZXIoJGUsICJmaWxlIik7JyksDQogICAgInBhc3N3b3JkIiAgICAgICAgICAgPT4gY3JlYXRlX2Z1bmN0aW9uKCdET01Ob2RlICYkZScsICAgICAgICAgICAgICAgICAncmV0dXJuIENTU1F1ZXJ5OjppbnB1dEZpbHRlcigkZSwgInBhc3N3b3JkIik7JyksDQogICAgInN1Ym1pdCIgICAgICAgICAgICAgPT4gY3JlYXRlX2Z1bmN0aW9uKCdET01Ob2RlICYkZScsICAgICAgICAgICAgICAgICAncmV0dXJuIENTU1F1ZXJ5OjppbnB1dEZpbHRlcigkZSwgInN1Ym1pdCIpOycpLA0KICAgICJpbWFnZSIgICAgICAgICAgICAgID0+IGNyZWF0ZV9mdW5jdGlvbignRE9NTm9kZSAmJGUnLCAgICAgICAgICAgICAgICAgJ3JldHVybiBDU1NRdWVyeTo6aW5wdXRGaWx0ZXIoJGUsICJpbWFnZSIpOycpLA0KICAgICJyZXNldCIgICAgICAgICAgICAgID0+IGNyZWF0ZV9mdW5jdGlvbignRE9NTm9kZSAmJGUnLCAgICAgICAgICAgICAgICAgJ3JldHVybiBDU1NRdWVyeTo6aW5wdXRGaWx0ZXIoJGUsICJyZXNldCIpOycpLA0KICAgICJidXR0b24iICAgICAgICAgICAgID0+IGNyZWF0ZV9mdW5jdGlvbignRE9NTm9kZSAmJGUnLCAgICAgICAgICAgICAgICAgJ3JldHVybiBDU1NRdWVyeTo6aW5wdXRGaWx0ZXIoJGUsICJidXR0b24iKTsnKSwNCiAgICAidGV4dCIgICAgICAgICAgICAgICA9PiBjcmVhdGVfZnVuY3Rpb24oJ0RPTU5vZGUgJiRlJywgICAgICAgICAgICAgICAgICdyZXR1cm4gQ1NTUXVlcnk6OmlucHV0RmlsdGVyKCRlLCAidGV4dCIpOycpLA0KICAgIA0KICAgIC8vbGltaXRpbmcgZmlsdGVyDQogICAgImhhcyIgICAgICAgICAgICAgICAgPT4gY3JlYXRlX2Z1bmN0aW9uKCdET01Ob2RlICYkZSwkaSwmJG0sJiRhLENTU1F1ZXJ5ICYkYycsICAgICAncmV0dXJuIGNvdW50KCRjLT5xdWVyeSgkbVszXSwgJGUpKSA+IDA7JyksDQogICAgDQogICAgLy90ZXh0IGxpbWl0aW5nIGZpbHRlcg0KICAgICJjb250YWlucyIgICAgICAgICAgID0+IGNyZWF0ZV9mdW5jdGlvbignRE9NTm9kZSAmJGUsJGksJiRtLCYkYSxDU1NRdWVyeSAmJGMnLCAgICAgJ3JldHVybiBzdHJzdHIoJGUtPnRleHRDb250ZW50LCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVnX3JlcGxhY2UoIi9eXHMqKFtcJ1wiXSkoLiopXFxcXDFccyokLyIsICJcXFxcMiIsICRtWzNdKSk7JyksDQogICAgIkNvbnRhaW5zIiAgICAgICAgICAgPT4gY3JlYXRlX2Z1bmN0aW9uKCdET01Ob2RlICYkZSwkaSwmJG0sJiRhLENTU1F1ZXJ5ICYkYycsICAgICAncmV0dXJuIHN0cmlzdHIoJGUtPnRleHRDb250ZW50LCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVnX3JlcGxhY2UoIi9eXHMqKFtcJ1wiXSkoLiopXFxcXDFccyokLyIsICJcXFxcMiIsICRtWzNdKSk7JyksDQogICAgDQogICAgLy9wb3NpdGlvbmFsIHNlbGVjdG9ycyBmb3IgdGhlIGN1cnJlbnQgbm9kZS1zZXQNCiAgICAiZmlyc3QiICAgICAgICAgICAgICA9PiBjcmVhdGVfZnVuY3Rpb24oJ0RPTU5vZGUgJiRlLCRpJywgICAgICAgICAgICAgJ3JldHVybiAkaSA9PT0gMDsnKSwNCiAgICAibGFzdCIgICAgICAgICAgICAgICA9PiBjcmVhdGVfZnVuY3Rpb24oJ0RPTU5vZGUgJiRlLCRpLCYkbSwmJGEnLCAgICAgJ3JldHVybiAkaSA9PT0gKGNvdW50KCRhKSAtIDEpOycpLA0KICAgICJsdCIgICAgICAgICAgICAgICAgID0+IGNyZWF0ZV9mdW5jdGlvbignRE9NTm9kZSAmJGUsJGksJiRtJywgICAgICAgICAncmV0dXJuICRpIDwgJG1bM107JyksDQogICAgImd0IiAgICAgICAgICAgICAgICAgPT4gY3JlYXRlX2Z1bmN0aW9uKCdET01Ob2RlICYkZSwkaSwmJG0nLCAgICAgICAgICdyZXR1cm4gJGkgPiAkbVszXTsnKSwNCiAgICAiZXEiICAgICAgICAgICAgICAgICA9PiBjcmVhdGVfZnVuY3Rpb24oJ0RPTU5vZGUgJiRlLCRpLCYkbScsICAgICAgICAgJ3JldHVybiAkaSA9PT0gaW50dmFsKCRtWzNdKTsnKSwNCiAgICANCiAgICAvL3dvcmtzIGxpa2UgbnRoLWNoaWxkIG9uIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgbm9kZS1zZXQNCiAgICAibnRoIiAgICAgICAgICAgICAgICA9PiBjcmVhdGVfZnVuY3Rpb24oJ0RPTU5vZGUgJiRlLCRpLCYkbScsICAgICAgICAgJyRleHByID0gcHJlZ19yZXBsYWNlKCIvXHMrLyIsICIiLCBzdHJ0b2xvd2VyKHRyaW0oJG1bM10pKSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL3RoZXNlIHNlbGVjdG9ycyBzZWxlY3QgYWxsIHNvIGRvbnQgd2FzdGUgdGltZSBmaWd1cmluZyB0aGVtIG91dA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkZXhwciA9PSAibiIgfHwgJGV4cHIgPT0gIm4rMCIgfHwgJGV4cHIgPT0gIjFuKzAiIHx8ICRleHByID09ICIxbiIpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9ldmVuIG51bWJlcmVkIGVsZW1lbnRzDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZWlmICgkZXhwciA9PSAiZXZlbiIgfHwgJGV4cHIgPT0gIjJuIiB8fCAkZXhwciA9PSAiMm4rMCIpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJGkgJSAyID09IDA7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vb2RkIG51bWJlcmVkIGVsZW1lbnRzDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZWlmICgkZXhwciA9PSAib2RkIiB8fCAkZXhwciA9PSAiMm4rMSIpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJGkgJSAyICE9IDA7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vcG9zaXRpb25hbCAtIGEgbmVnYXRpdmUgcG9zaXRpb24gaXMgbm90IHN1cHBvcnRlZA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VpZiAocHJlZ19tYXRjaCgiL14oW1wrXC1dP1xkKykkL2kiLCAkZXhwciwgJG1hdCkpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJGkgPT0gaW50dmFsKCRtYXRbMV0pOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2dyb3VwZWQgYWNjb3JkaW5nIHRvIGEgcG9zaXRpb24NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlaWYgKHByZWdfbWF0Y2goIi9eKFtcK1wtXT9cZCopP24oW1wrXC1dXGQrKT8vaSIsICRleHByLCAkbWF0KSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRhID0gKGlzc2V0KCRtYXRbMl0pICYmICRtYXRbMl0gPyBpbnR2YWwoJG1hdFsyXSkgOiAwKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGIgPSAoaXNzZXQoJG1hdFsyXSkgJiYgJG1hdFsyXSA/IGludHZhbCgkbWF0WzJdKSA6IDEpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKCRhID09IDAgJiYgJGkgPT0gJGIpIHx8DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCRhID4gMCAmJiAkaSA+PSAkYiAmJiAoJGkgLSAkYikgJSAkYSA9PSAwKSB8fA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgkYSA8IDAgJiYgJGkgPD0gJGIgJiYgKCgkYiAtICRpKSAlICgkYSAqIC0xKSkgPT0gMCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcpLA0KKSwgMik7DQoNCi8qKg0KICogICAgY3JlYXRlIGEgZGVmYXVsdCBhcnJheSBvZiBhdHRyaWJ1dGUgZmlsdGVycw0KICoNCiAqICAgIDxjb2RlPg0KICogICAgICAgIC8vcHJvdG90eXBlIGZ1bmN0aW9uIChET01Ob2RlICRlbGVtZW50LCBzdHJpbmcgJGF0dHJpYnV0ZU5hbWUsIHN0cmluZyAkdmFsdWUgPSAnJywgYXJyYXkgJG1hdGNoZXMsIGFycmF5ICRjb250ZXh0PWFycmF5KCkpOw0KICogICAgICAgIENTU1F1ZXJ5OjokYXR0cmlidXRlRmlsdGVyc1snPiddID0gY3JlYXRlX2Z1bmN0aW9uKCcnLCAnJyk7DQogKiAgICAgICAgDQogKiAgICA8L2NvZGU+DQogKi8NCkNTU1F1ZXJ5OjokYXR0cmlidXRlRmlsdGVycyA9IG5ldyBSZWN1cnNpdmVBcnJheUl0ZXJhdG9yKGFycmF5KA0KICAgIC8vaGFzQXR0cmlidXRlIGFuZC9vciBhdHRyaWJ1dGUgPT0gdmFsdWUNCiAgICAiIiAgICAgID0+IGNyZWF0ZV9mdW5jdGlvbignJiRlLCYkYSwmJHY9bnVsbCcsICAgJ3JldHVybiAkZS0+aGFzQXR0cmlidXRlKCRhKTsnKSwNCiAgICAvL2hhc0F0dHJpYnV0ZSBhbmQvb3IgYXR0cmlidXRlID09IHZhbHVlDQogICAgIj0iICAgICA9PiBjcmVhdGVfZnVuY3Rpb24oJyYkZSwmJGEsJiR2PW51bGwnLCAgICdyZXR1cm4gJGUtPmhhc0F0dHJpYnV0ZSgkYSkgJiYgJGUtPmdldEF0dHJpYnV0ZSgkYSkgPT0gJHY7JyksDQogICAgLy8haGFzQXR0cmlidXRlIG9yIGF0dHJpYnV0ZSAhPSB2YWx1ZQ0KICAgICIhPSIgICAgPT4gY3JlYXRlX2Z1bmN0aW9uKCcmJGUsJiRhLCYkdicsICAgICAgICAncmV0dXJuICEkZS0+aGFzQXR0cmlidXRlKCRhKSB8fCAkZS0+Z2V0QXR0cmlidXRlKCRhKSAhPSAkdjsnKSwNCiAgICAvL2hhc0F0dHJpYnV0ZSBhbmQgdGhlIGF0dHJpYnV0ZSBiZWdpbnMgd2l0aCB2YWx1ZQ0KICAgICJePSIgICAgPT4gY3JlYXRlX2Z1bmN0aW9uKCcmJGUsJiRhLCYkdicsICAgICAgICAncmV0dXJuICRlLT5oYXNBdHRyaWJ1dGUoJGEpICYmIHN1YnN0cigkZS0+Z2V0QXR0cmlidXRlKCRhKSwgMCwgc3RybGVuKCR2KSkgPT0gJHY7JyksDQogICAgLy9oYXNBdHRyaWJ1dGUgYW5kIHRoZSBhdHRyaWJ1dGUgZW5kcyB3aXRoIHZhbHVlDQogICAgJyQ9JyAgICA9PiBjcmVhdGVfZnVuY3Rpb24oJyYkZSwmJGEsJiR2JywgICAgICAgICdyZXR1cm4gJGUtPmhhc0F0dHJpYnV0ZSgkYSkgJiYgc3Vic3RyKCRlLT5nZXRBdHRyaWJ1dGUoJGEpLCAtc3RybGVuKCR2KSkgPT0gJHY7JyksDQogICAgLy9oYXNBdHRyaWJ1dGUgYW5kIHRoZSBhdHRyaWJ1dGUgYmVnaW5zIHdpdGggdmFsdWUgLiAtDQogICAgInw9IiAgICA9PiBjcmVhdGVfZnVuY3Rpb24oJyYkZSwmJGEsJiR2JywgICAgICAgICdyZXR1cm4gJGUtPmhhc0F0dHJpYnV0ZSgkYSkgJiYgc3Vic3RyKCRlLT5nZXRBdHRyaWJ1dGUoJGEpLCAwLCBzdHJsZW4oJHYpICsgMSkgPT0gJHYuIi0iOycpLA0KICAgIC8vaGFzQXR0cmlidXRlIGFuZCBhdHRyaWJ1dGUgY29udGFpbnMgdmFsdWUNCiAgICAiKj0iICAgID0+IGNyZWF0ZV9mdW5jdGlvbignJiRlLCYkYSwmJHYnLCAgICAgICAgJ3JldHVybiAkZS0+aGFzQXR0cmlidXRlKCRhKSAmJiBzdHJzdHIoJGUtPmdldEF0dHJpYnV0ZSgkYSksICR2KTsnKSwNCiAgICANCiAgICAvL3NwZWNpYWwNCiAgICAvL2hhc0F0dHJpYnV0ZSBhbmQgYXR0cmlidXRlIGNvbnRhaW5zIHZhbHVlIC0gY2FzZSBpbnNlbnNpdGl2ZQ0KICAgICIlPSIgICAgPT4gY3JlYXRlX2Z1bmN0aW9uKCcmJGUsJiRhLCYkdicsICAgICAgICAncmV0dXJuICRlLT5oYXNBdHRyaWJ1dGUoJGEpICYmIHN0cmlzdHIoJGUtPmdldEF0dHJpYnV0ZSgkYSksICR2KTsnKSwNCiAgICAvL2hhc0F0dHJpYnV0ZSBhbmQgdGhlIGF0dHJyaWJ1dGVzIHZhbHVlIG1hdGNoZXMgdGhlIGdpdmVuIFBDUkUgcGF0dGVybg0KICAgICJAPSIgICAgPT4gY3JlYXRlX2Z1bmN0aW9uKCcmJGUsJiRhLCYkdicsICAgICAgICAncmV0dXJuICRlLT5oYXNBdHRyaWJ1dGUoJGEpICYmIHByZWdfbWF0Y2goJHYsICRlLT5nZXRBdHRyaWJ1dGUoJGEpKTsnKSwNCiksIDIpOw0KDQo/Pg0KDQo=]]></data>
	</file>
	<file>
	  <filename>/CSSQuery_test.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCi8qKg0KICoJVGhlIENTU1F1ZXJ5IG9iamVjdCBoYXMgZmFyIHRvbyBtYW55IHZhcmlhdGlvbnMNCiAqCXRvIHRlc3QgYWxsIG9mIHRoZW0sIGJ1dCBoZXJlIGFyZSB0aGUgbW9zdCBwb3B1bGFyDQogKg0KICogICAgQ0hBTkdFUyAtIA0KICogICAgICAgIDA4LTA1LTIwMDkgLSBjb3JyZWN0ZWQgbXkgaG9ycmlibGUgdHlwaW5nIGVycm9ycw0KICovDQoNCg0KZXJyb3JfcmVwb3J0aW5nKEVfQUxMIHwgRV9TVFJJQ1QpOw0KDQovL2xvYWQgdGhlIENTU1F1ZXJ5IGNsYXNzIGZpbGUNCnJlcXVpcmUgJ0NTU1F1ZXJ5LnBocCc7DQoNCiRiciA9ICJcbiI7Ly8iXG48YnI+IjsNCg0KJFRSVUUgPSAnVFJVRSc7DQokRkFMU0UgPSAnRkFMU0UnOw0KDQovL2VzdGFibGlzaCBhIERPTURvY3VtZW50IG9iamVjdA0KJGRvYyA9IG5ldyBET01Eb2N1bWVudCgpOw0KLy9sb2FkIHNvbWUgSFRNTCBmb3IgdGVzdGluZw0KJGRvYy0+bG9hZEhUTUwoJzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4NCjxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj48IS0tIHhtbG5zOnhzZD0idXJpOnNhbSI+LS0+DQoJCQkJCQk8Ym9keT4NCgkJCQkJCQk8aDM+SGVhZGVyIDM8L2gzPg0KCQkJCQkJCTx0YWJsZSBpZD0iZGF0YXNldCI+DQoJCQkJCQkJCTx0cj4NCgkJCQkJCQkJCTx0ZD5jb2x1bW4gMTwvdGQ+DQoJCQkJCQkJCQk8dGQ+Y29sdW1uIDI8L3RkPg0KCQkJCQkJCQkJPHRkPmNvbHVtbiAzPC90ZD4NCgkJCQkJCQkJCTx0ZD5jb2x1bW4gNDwvdGQ+DQoJCQkJCQkJCQk8dGQ+Y29sdW1uIDU8L3RkPg0KCQkJCQkJCQk8L3RyPg0KCQkJCQkJCQk8dHI+DQoJCQkJCQkJCQk8dGQ+Y29sdW1uIDE8L3RkPg0KCQkJCQkJCQkJPHRkPmNvbHVtbiAyPC90ZD4NCgkJCQkJCQkJCTx0ZD5jb2x1bW4gMzwvdGQ+DQoJCQkJCQkJCQk8dGQ+Y29sdW1uIDQ8L3RkPg0KCQkJCQkJCQkJPHRkPmNvbHVtbiA1PC90ZD4NCgkJCQkJCQkJPC90cj4NCgkJCQkJCQkJPHRyPg0KCQkJCQkJCQkJPHRkPmNvbHVtbiAxPC90ZD4NCgkJCQkJCQkJCTx0ZD5jb2x1bW4gMjwvdGQ+DQoJCQkJCQkJCQk8dGQ+Y29sdW1uIDM8L3RkPg0KCQkJCQkJCQkJPHRkPmNvbHVtbiA0PC90ZD4NCgkJCQkJCQkJCTx0ZD5jb2x1bW4gNTwvdGQ+DQoJCQkJCQkJCTwvdHI+DQoJCQkJCQkJCTx0cj4NCgkJCQkJCQkJCTx0ZD5jb2x1bW4gMTwvdGQ+DQoJCQkJCQkJCQk8dGQ+Y29sdW1uIDI8L3RkPg0KCQkJCQkJCQkJPHRkPmNvbHVtbiAzPC90ZD4NCgkJCQkJCQkJCTx0ZD5jb2x1bW4gNDwvdGQ+DQoJCQkJCQkJCQk8dGQ+Y29sdW1uIDU8L3RkPg0KCQkJCQkJCQk8L3RyPg0KCQkJCQkJCQk8dHI+DQoJCQkJCQkJCQk8dGQ+Y29sdW1uIDE8L3RkPg0KCQkJCQkJCQkJPHRkPmNvbHVtbiAyPC90ZD4NCgkJCQkJCQkJCTx0ZD5jb2x1bW4gMzwvdGQ+DQoJCQkJCQkJCQk8dGQ+Y29sdW1uIDQ8L3RkPg0KCQkJCQkJCQkJPHRkPmNvbHVtbiA1PC90ZD4NCgkJCQkJCQkJPC90cj4NCgkJCQkJCQkJPHRyPg0KCQkJCQkJCQkJPHRkPmNvbHVtbiAxPC90ZD4NCgkJCQkJCQkJCTx0ZD5jb2x1bW4gMjwvdGQ+DQoJCQkJCQkJCQk8dGQ+Y29sdW1uIDM8L3RkPg0KCQkJCQkJCQkJPHRkPmNvbHVtbiA0PC90ZD4NCgkJCQkJCQkJCTx0ZD5jb2x1bW4gNTwvdGQ+DQoJCQkJCQkJCTwvdHI+DQoJCQkJCQkJCTx0cj4NCgkJCQkJCQkJCTx0ZD5jb2x1bW4gMTwvdGQ+DQoJCQkJCQkJCQk8dGQ+Y29sdW1uIDI8L3RkPg0KCQkJCQkJCQkJPHRkPmNvbHVtbiAzPC90ZD4NCgkJCQkJCQkJCTx0ZD5jb2x1bW4gNDwvdGQ+DQoJCQkJCQkJCQk8dGQ+Y29sdW1uIDU8L3RkPg0KCQkJCQkJCQk8L3RyPg0KCQkJCQkJCQk8dHI+DQoJCQkJCQkJCQk8dGQ+Y29sdW1uIDE8L3RkPg0KCQkJCQkJCQkJPHRkPmNvbHVtbiAyPC90ZD4NCgkJCQkJCQkJCTx0ZD5jb2x1bW4gMzwvdGQ+DQoJCQkJCQkJCQk8dGQ+Y29sdW1uIDQ8L3RkPg0KCQkJCQkJCQkJPHRkPmNvbHVtbiA1PC90ZD4NCgkJCQkJCQkJPC90cj4NCgkJCQkJCQk8L3RhYmxlPg0KCQkJCQkJCTxwIGNsYXNzPSJzZWNvbmQtY2xhc3MtbmFtZSBwYXJhZ3JhcGggdGVzdGluZyI+DQoJCQkJCQkJCTxzcGFuIGlkPSJzcGFubmVyIiBjbGFzcz0ic29tZXdoZXJlIj4NCgkJCQkJCQkJCTxhIG5hbWU9ImFuY2hvciI+DQoJCQkJCQkJCQkJPGltZyBzcmM9ImphdmFzY3JpcHQ6OyIgYWx0PSJlbXB0eSIgY2xhc3M9InRlc3RpbmciLz4NCgkJCQkJCQkJCTwvYT4NCgkJCQkJCQkJPC9zcGFuPjxiIGNsYXNzPSJ0ZXN0aW5nIj5BZGphY2VudCBzaUJMaW5nPC9iPjxpPkdlbmVyYWwgc2libGluZzwvaT4NCgkJCQkJCQk8L3A+DQoJCQkJCQkJPHA+DQoJCQkJCQkJCTxzcGFuPkVNcHR5PC9zcGFuPg0KCQkJCQkJCQk8dT5BZGphY2VudCBzaWJsaW5nPC91Pg0KCQkJCQkJCQk8Yj5HZW5lcmFsIHNpYmxpbmc8L2I+DQoJCQkJCQkJPC9wPg0KCQkJCQkJCTxpPiBtb25rZXkgd3JlbmNoPC9pPg0KCQkJCQkJCTxhIGhyZWY9IiMiPkp1c3QgYW5vdGhlciB0ZXN0PC9hPg0KCQkJCQkJCTxpbnB1dCBkaXNhYmxlZC8+DQoJCQkJCQkJPGlucHV0IHR5cGU9ImNoZWNrYm94IiBjaGVja2VkLz4NCgkJCQkJCQk8IS0tPGRpdiB4c2Q6dGVzdGluZz0idGVzdCIvPi0tPg0KCQkJCQkJPC9ib2R5Pg0KCQkJCQk8L2h0bWw+Jyk7DQoNCi8vZXN0YWJsaXNoIG5ldyBDU1NRdWVyeSBsaWtlIHlvdSB3b3VsZCBhIERPTVhQYXRoIHF1ZXJ5DQokY3NzID0gbmV3IENTU1F1ZXJ5KCRkb2MpOw0KDQovL2dldCBlbGVtZW50cyBieSB0YWcgbmFtZQ0KcHJpbnQgInskYnJ9VGFnOiAiIC4gKGNvdW50KCAkY3NzLT5xdWVyeSgncCcpICkgPT0gMiA/ICRUUlVFIDogJEZBTFNFKTsNCg0KLy9nZXQgZWxlbWVudHMgYnkgaWQNCnByaW50ICJ7JGJyfUlEOiAiIC4gKGNvdW50KCAkY3NzLT5xdWVyeSgnI3NwYW5uZXInKSApID09IDEgPyAkVFJVRSA6ICRGQUxTRSk7DQoNCi8vZ2V0IHNwYW4gZWxlbWVudHMgYnkgaWQNCnByaW50ICJ7JGJyfXRhZyBhbmQgSUQ6ICIgLiAoY291bnQoICRjc3MtPnF1ZXJ5KCdzcGFuI3NwYW5uZXInKSApID09IDEgPyAkVFJVRSA6ICRGQUxTRSk7DQoNCi8vZ2V0IGVsZW1lbnRzIGJ5IGNsYXNzIG5hbWUNCnByaW50ICJ7JGJyfWNsYXNzTmFtZTogIiAuIChjb3VudCggJGNzcy0+cXVlcnkoJy5wYXJhZ3JhcGgnKSApID09IDEgPyAkVFJVRSA6ICRGQUxTRSk7DQoNCi8vZ2V0IHAgZWxlbWVudHMgYnkgY2xhc3MgbmFtZQ0KcHJpbnQgInskYnJ9dGFnIGFuZCBjbGFzc05hbWU6ICIgLiAoY291bnQoICRjc3MtPnF1ZXJ5KCdwLnBhcmFncmFwaCcpICkgPT0gMSA/ICRUUlVFIDogJEZBTFNFKTsNCg0KLy9nZXQgZWxlbWVudHMgYnkgYW4gYXR0cmlidXRlDQpwcmludCAieyRicn1oYXMgYXR0cmlidXRlOiAiIC4gKGNvdW50KCAkY3NzLT5xdWVyeSgncFtjbGFzc10nKSApID09IDEgPyAkVFJVRSA6ICRGQUxTRSk7DQoNCi8vZ2V0IGVsZW1lbnRzIGJ5IGFuIGF0dHJpYnV0ZQ0KcHJpbnQgInskYnJ9YXR0cmlidXRlIGVxdWFsczogIiAuIChjb3VudCggJGNzcy0+cXVlcnkoJ2FbbmFtZT0iYW5jaG9yIl0nKSApID09IDEgPyAkVFJVRSA6ICRGQUxTRSk7DQoNCi8vZ2V0IGVsZW1lbnRzIGJ5IGFuIGF0dHJpYnV0ZQ0KcHJpbnQgInskYnJ9YXR0cmlidXRlIGJlZ2lucyB3aXRoOiAiIC4gKGNvdW50KCAkY3NzLT5xdWVyeSgnYVtuYW1lXj0iYW4iXScpICkgPT0gMSA/ICRUUlVFIDogJEZBTFNFKTsNCg0KLy9nZXQgZWxlbWVudHMgYnkgYW4gYXR0cmlidXRlDQpwcmludCAieyRicn1hdHRyaWJ1dGUgZW5kcyB3aXRoOiAiIC4gKGNvdW50KCAkY3NzLT5xdWVyeSgnaW1nW2FsdCQ9dHldJykgKSA9PSAxID8gJFRSVUUgOiAkRkFMU0UpOw0KDQovL2dldCBlbGVtZW50cyBieSBhbiBhdHRyaWJ1dGUNCnByaW50ICJ7JGJyfWF0dHJpYnV0ZSBjb250YWluczogIiAuIChjb3VudCggJGNzcy0+cXVlcnkoJ2FbbmFtZSo9ImNoIl0nKSApID09IDEgPyAkVFJVRSA6ICRGQUxTRSk7DQoNCi8vZ2V0IGVsZW1lbnRzIGJ5IGFuIGF0dHJpYnV0ZQ0KcHJpbnQgInskYnJ9YXR0cmlidXRlIGRhc2hlZDogIiAuIChjb3VudCggJGNzcy0+cXVlcnkoJ3BbY2xhc3N8PSJzZWNvbmQiXScpICkgPT0gMSA/ICRUUlVFIDogJEZBTFNFKTsNCg0KLy9nZXQgZWxlbWVudHMgdXNpbmcgZGVzY2VuZGFudCBzZWxlY3Rvcg0KcHJpbnQgInskYnJ9ZGVzY2VuZGFudDogIiAuIChjb3VudCggJGNzcy0+cXVlcnkoJ3NwYW4gaW1nJykgKSA9PSAxID8gJFRSVUUgOiAkRkFMU0UpOw0KDQovL2dldCBlbGVtZW50cyB1c2luZyBjaGlsZHJlbiBzZWxlY3Rvcg0KcHJpbnQgInskYnJ9Y2hpbGRyZW46ICIgLiAoY291bnQoICRjc3MtPnF1ZXJ5KCdhID4gaW1nJykgKSA9PSAxID8gJFRSVUUgOiAkRkFMU0UpOw0KDQovL2dldCBlbGVtZW50cyB1c2luZyBhZGphY2VudCBzaWJsaW5nIHNlbGVjdG9yDQpwcmludCAieyRicn1hZGphY2VudCBzaWJsaW5nOiAiIC4gKGNvdW50KCAkY3NzLT5xdWVyeSgnc3BhbiArIGInKSApID09IDEgPyAkVFJVRSA6ICRGQUxTRSk7DQoNCi8vZ2V0IGVsZW1lbnRzIHVzaW5nIGdlbmVyYWwgc2libGluZyBzZWxlY3Rvcg0KcHJpbnQgInskYnJ9Z2VuZXJhbCBzaWJsaW5nOiAiIC4gKGNvdW50KCAkY3NzLT5xdWVyeSgnaSB+IHNwYW4nKSApID09IDEgPyAkVFJVRSA6ICRGQUxTRSk7DQoNCi8vZ2V0IGVsZW1lbnRzIHVzaW5nIGZpcnN0LWNoaWxkIHBzdWVkbyBzZWxlY3Rvcg0KcHJpbnQgInskYnJ9Zmlyc3QtY2hpbGQ6ICIgLiAoY291bnQoICRjc3MtPnF1ZXJ5KCdwIHNwYW46Zmlyc3QtY2hpbGQnKSApID09IDIgPyAkVFJVRSA6ICRGQUxTRSk7DQoNCi8vZ2V0IGVsZW1lbnRzIHVzaW5nIGxhc3QtY2hpbGQgcHN1ZWRvIHNlbGVjdG9yDQpwcmludCAieyRicn1sYXN0LWNoaWxkOiAiIC4gKGNvdW50KCAkY3NzLT5xdWVyeSgncCBiOmxhc3QtY2hpbGQnKSApID09IDEgPyAkVFJVRSA6ICRGQUxTRSk7DQoNCi8vZ2V0IGVsZW1lbnRzIHVzaW5nIG9ubHktY2hpbGQgcHN1ZWRvIHNlbGVjdG9yDQpwcmludCAieyRicn1vbmx5LWNoaWxkOiAiIC4gKGNvdW50KCAkY3NzLT5xdWVyeSgnYSBpbWc6b25seS1jaGlsZCcpICkgPT0gMSA/ICRUUlVFIDogJEZBTFNFKTsNCg0KLy9nZXQgZWxlbWVudHMgdXNpbmcgZGlzYWJsZWQgcHN1ZWRvIHNlbGVjdG9yDQpwcmludCAieyRicn1kaXNhYmxlZDogIiAuIChjb3VudCggJGNzcy0+cXVlcnkoJ2lucHV0OmRpc2FibGVkJykgKSA9PSAxID8gJFRSVUUgOiAkRkFMU0UpOw0KDQovL2dldCBlbGVtZW50cyB1c2luZyBlbmFibGVkIHBzdWVkbyBzZWxlY3Rvcg0KcHJpbnQgInskYnJ9ZW5hYmxlZDogIiAuIChjb3VudCggJGNzcy0+cXVlcnkoJ2lucHV0OmVuYWJsZWQnKSApID09IDEgPyAkVFJVRSA6ICRGQUxTRSk7DQoNCi8vZ2V0IGVsZW1lbnRzIHVzaW5nIGNoZWNrZWQgcHN1ZWRvIHNlbGVjdG9yDQpwcmludCAieyRicn1jaGVja2VkOiAiIC4gKGNvdW50KCAkY3NzLT5xdWVyeSgnaW5wdXQ6Y2hlY2tlZCcpICkgPT0gMSA/ICRUUlVFIDogJEZBTFNFKTsNCg0KLy9nZXQgZWxlbWVudHMgdXNpbmcgY2hlY2tlZCBwc3VlZG8gc2VsZWN0b3INCnByaW50ICJ7JGJyfWVtcHR5OiAiIC4gKGNvdW50KCAkY3NzLT5xdWVyeSgnKjplbXB0eScpICkgPT0gMyA/ICRUUlVFIDogJEZBTFNFKTsNCg0KLy9nZXQgZWxlbWVudHMgdXNpbmcgZmlyc3Qtb2YtdHlwZSBwc3VlZG8gc2VsZWN0b3INCnByaW50ICJ7JGJyfWZpcnN0LW9mLXR5cGU6ICIgLiAoY291bnQoICRjc3MtPnF1ZXJ5KCd0cjpmaXJzdC1vZi10eXBlJykgKSA9PSAxID8gJFRSVUUgOiAkRkFMU0UpOw0KDQovL2dldCBlbGVtZW50cyB1c2luZyBsYXN0LW9mLXR5cGUgcHN1ZWRvIHNlbGVjdG9yDQpwcmludCAieyRicn1sYXN0LW9mLXR5cGU6ICIgLiAoY291bnQoICRjc3MtPnF1ZXJ5KCd0ZDpsYXN0LW9mLXR5cGUnKSApID09IDggPyAkVFJVRSA6ICRGQUxTRSk7DQoNCi8vZ2V0IGVsZW1lbnRzIHVzaW5nIG9ubHktb2YtdHlwZSBwc3VlZG8gc2VsZWN0b3INCnByaW50ICJ7JGJyfW9ubHktb2YtdHlwZTogIiAuIChjb3VudCggJGNzcy0+cXVlcnkoJ3U6b25seS1vZi10eXBlJykgKSA9PSAxID8gJFRSVUUgOiAkRkFMU0UpOw0KDQovL2dldCBlbGVtZW50cyB1c2luZyBub3QNCnByaW50ICJ7JGJyfW5vdDogIiAuIChjb3VudCggJGNzcy0+cXVlcnkoJ2E6bm90KFtocmVmXSknKSApID09IDEgPyAkVFJVRSA6ICRGQUxTRSk7DQoNCi8vZ2V0IGVsZW1lbnRzIHVzaW5nIG50aC1vZi10eXBlIHBzdWVkbyBzZWxlY3Rvcg0KcHJpbnQgInskYnJ9bnRoLW9mLXR5cGU6ICIgLiAoY291bnQoICRjc3MtPnF1ZXJ5KCd0cjpudGgtb2YtdHlwZShvZGQpJykgKSA9PSA0ID8gJFRSVUUgOiAkRkFMU0UpOw0KDQovL2dldCBlbGVtZW50cyB1c2luZyBudGgtbGFzdC1vZi10eXBlIHBzdWVkbyBzZWxlY3Rvcg0KcHJpbnQgInskYnJ9bnRoLWxhc3Qtb2YtdHlwZTogIiAuIChjb3VudCggJGNzcy0+cXVlcnkoJ3RyOm50aC1sYXN0LW9mLXR5cGUoZXZlbiknKSApID09IDQgPyAkVFJVRSA6ICRGQUxTRSk7DQoNCi8vZ2V0IGVsZW1lbnRzIHVzaW5nIG50aC1jaGlsZCBwc3VlZG8gc2VsZWN0b3INCnByaW50ICJ7JGJyfW50aC1jaGlsZDogIiAuIChjb3VudCggJGNzcy0+cXVlcnkoJ3RyOm50aC1jaGlsZChuKzIpJykgKSA9PSA0ID8gJFRSVUUgOiAkRkFMU0UpOw0KDQovL2dldCBlbGVtZW50cyB1c2luZyBudGgtbGFzdC1jaGlsZCBwc3VlZG8gc2VsZWN0b3INCnByaW50ICJ7JGJyfW50aC1sYXN0LWNoaWxkOiAiIC4gKGNvdW50KCAkY3NzLT5xdWVyeSgndGQ6bnRoLWxhc3QtY2hpbGQoMyknKSApID09IDggPyAkVFJVRSA6ICRGQUxTRSk7DQoNCi8vZ2V0IGVsZW1lbnRzIHVzaW5nIGZpcnN0IHBzdWVkbyBzZWxlY3Rvcg0KcHJpbnQgInskYnJ9Zmlyc3Q6ICIgLiAoY291bnQoICRjc3MtPnF1ZXJ5KCd0cjpmaXJzdCcpICkgPT0gMSA/ICRUUlVFIDogJEZBTFNFKTsNCg0KLy9nZXQgZWxlbWVudHMgdXNpbmcgbGFzdCBwc3VlZG8gc2VsZWN0b3INCnByaW50ICJ7JGJyfWxhc3Q6ICIgLiAoY291bnQoICRjc3MtPnF1ZXJ5KCd0cjpsYXN0JykgKSA9PSAxID8gJFRSVUUgOiAkRkFMU0UpOw0KDQovL2dldCBlbGVtZW50cyB1c2luZyBlcSBwc3VlZG8gc2VsZWN0b3INCnByaW50ICJ7JGJyfWVxOiAiIC4gKGNvdW50KCAkY3NzLT5xdWVyeSgndHI6ZXEoNSknKSApID09IDEgPyAkVFJVRSA6ICRGQUxTRSk7DQoNCi8vZ2V0IGVsZW1lbnRzIHVzaW5nIGx0IHBzdWVkbyBzZWxlY3Rvcg0KcHJpbnQgInskYnJ9bHQ6ICIgLiAoY291bnQoICRjc3MtPnF1ZXJ5KCd0cjpsdCg1KScpICkgPT0gNSA/ICRUUlVFIDogJEZBTFNFKTsNCg0KLy9nZXQgZWxlbWVudHMgdXNpbmcgZ3QgcHN1ZWRvIHNlbGVjdG9yDQpwcmludCAieyRicn1ndDogIiAuIChjb3VudCggJGNzcy0+cXVlcnkoJ3RyOmd0KDUpJykgKSA9PSAyID8gJFRSVUUgOiAkRkFMU0UpOw0KDQovL2dldCBlbGVtZW50cyB1c2luZyBudGggcHN1ZWRvIHNlbGVjdG9yDQpwcmludCAieyRicn1udGg6ICIgLiAoY291bnQoICRjc3MtPnF1ZXJ5KCd0cjpudGgob2RkKScpICkgPT0gNCA/ICRUUlVFIDogJEZBTFNFKTsNCg0KLy9nZXQgZWxlbWVudHMgdXNpbmcgcGFyZW50IHBzdWVkbyBzZWxlY3Rvcg0KcHJpbnQgInskYnJ9cGFyZW50OiAiIC4gKGNvdW50KCAkY3NzLT5xdWVyeSgnYTpwYXJlbnQnKSApID09IDEgPyAkVFJVRSA6ICRGQUxTRSk7DQoNCi8vZ2V0IGVsZW1lbnRzIHVzaW5nIHBhcmVudC1ub2RlIHBzdWVkbyBzZWxlY3Rvcg0KcHJpbnQgInskYnJ9cGFyZW50LW5vZGU6ICIgLiAoY291bnQoICRjc3MtPnF1ZXJ5KCdhOnBhcmVudC1ub2RlJykgKSA9PSAyID8gJFRSVUUgOiAkRkFMU0UpOw0KDQovL2dldCBlbGVtZW50cyB1c2luZyBwYXJlbnQtbm9kZSBwc3VlZG8gc2VsZWN0b3INCnByaW50ICJ7JGJyfXBhcmVudC1ub2RlKHNwYW4pOiAiIC4gKGNvdW50KCAkY3NzLT5xdWVyeSgnYTpwYXJlbnQtbm9kZShzcGFuKScpICkgPT0gMSA/ICRUUlVFIDogJEZBTFNFKTsNCg0KLy9nZXQgZWxlbWVudHMgdXNpbmcgcGFyZW50cyBwc3VlZG8gc2VsZWN0b3INCnByaW50ICJ7JGJyfXBhcmVudHM6ICIgLiAoY291bnQoICRjc3MtPnF1ZXJ5KCdpbnB1dDpwYXJlbnRzJykgKSA9PSAyID8gJFRSVUUgOiAkRkFMU0UpOw0KDQovL2dldCBlbGVtZW50cyB1c2luZyBwYXJlbnRzIHBzdWVkbyBzZWxlY3Rvcg0KcHJpbnQgInskYnJ9cGFyZW50cyhwKTogIiAuIChjb3VudCggJGNzcy0+cXVlcnkoJ3NwYW46cGFyZW50cyhwKScpICkgPT0gMiA/ICRUUlVFIDogJEZBTFNFKTsNCg0KLy9nZXQgZWxlbWVudHMgdXNpbmcgaGVhZGVycyBwc3VlZG8gc2VsZWN0b3INCnByaW50ICJ7JGJyfWhlYWRlcjogIiAuIChjb3VudCggJGNzcy0+cXVlcnkoJzpoZWFkZXInKSApID09IDEgPyAkVFJVRSA6ICRGQUxTRSk7DQoNCi8vZ2V0IGVsZW1lbnRzIHVzaW5nIGNoZWNrYm94IHBzdWVkbyBzZWxlY3Rvcg0KcHJpbnQgInskYnJ9Y2hlY2tib3g6ICIgLiAoY291bnQoICRjc3MtPnF1ZXJ5KCc6Y2hlY2tib3gnKSApID09IDEgPyAkVFJVRSA6ICRGQUxTRSk7DQoNCi8vZ2V0IGVsZW1lbnRzIHVzaW5nIGlucHV0IHBzdWVkbyBzZWxlY3Rvcg0KcHJpbnQgInskYnJ9aW5wdXQ6ICIgLiAoY291bnQoICRjc3MtPnF1ZXJ5KCc6aW5wdXQnKSApID09IDIgPyAkVFJVRSA6ICRGQUxTRSk7DQoNCi8vZ2V0IGVsZW1lbnRzIHVzaW5nIGNvbnRhaW5zIHBzdWVkbyBzZWxlY3Rvcg0KcHJpbnQgInskYnJ9Y29udGFpbnM6ICIgLiAoY291bnQoICRjc3MtPnF1ZXJ5KCdiOmNvbnRhaW5zKCJHZW5lcmFsIiknKSApID09IDEgPyAkVFJVRSA6ICRGQUxTRSk7DQoNCi8vZ2V0IGVsZW1lbnRzIHVzaW5nIENvbnRhaW5zIHBzdWVkbyBzZWxlY3Rvcg0KcHJpbnQgInskYnJ9Q29udGFpbnM6ICIgLiAoY291bnQoICRjc3MtPnF1ZXJ5KCdiOkNvbnRhaW5zKHNpYmxpbmcpJykgKSA9PSAyID8gJFRSVUUgOiAkRkFMU0UpOw0KDQovL2NvbW1hDQpwcmludCAieyRicn1jb21tYTogIiAuIChjb3VudCggJGNzcy0+cXVlcnkoJ3AsICNzcGFubmVyLCB0cjpmaXJzdCcpICkgPT0gNCA/ICRUUlVFIDogJEZBTFNFKTsNCg0KLy8kY3NzLT5yZWdpc3Rlck5hbWVzcGFjZSgndXJpOnNhbScsICd4c2QnKTsNCg0KLy9wcmludCAieyRicn1uc0BhdHRyaWJ1dGU6ICIgLiAoY291bnQoICRjc3MtPnF1ZXJ5KCdkaXZbeHNkfHRlc3RpbmddJykgKSA9PSAxID8gJFRSVUUgOiAkRkFMU0UpOw0KDQpDU1NRdWVyeTo6JGF0dHJpYnV0ZUZpbHRlcnNbJz49J10gPSBjcmVhdGVfZnVuY3Rpb24oJyYkZSwmJGEsJiR2JywncmV0dXJuICRlLT5oYXNBdHRyaWJ1dGUoJGEpICYmIHN0cmxlbigkZS0+Z2V0QXR0cmlidXRlKCRhKSkgPiAkdjsnKTsNCg0KLy9nZXQgZWxlbWVudHMgYnkgYW4gYXR0cmlidXRlDQpwcmludCAieyRicn1hdHRyaWJ1dGUgbGVuZ3RoID4gNDogIiAuIChjb3VudCggJGNzcy0+cXVlcnkoJ2FbbmFtZT49NF0nKSApID09IDEgPyAkVFJVRSA6ICRGQUxTRSk7DQoNCi8vdXNlICMgYW5kIC4gYXMgYSBmaWx0ZXIgaW5zdGVhZCBvZiBhIHNlbGVjdG9yDQpwcmludCAieyRicn1maWx0ZXIgc2VsZWN0b3JzOiAiIC4gKGNvdW50KCAkY3NzLT5xdWVyeSgnc3BhbiNzcGFubmVyLnNvbWV3aGVyZTpub3QoW3RhYmluZGV4XSksIHAucGFyYWdyYXBoJykgKSA9PSAyID8gJFRSVUUgOiAkRkFMU0UpOw0KDQovL3VzZSAjIGFuZCAuIGFzIGEgZmlsdGVyIGluc3RlYWQgb2YgYSBzZWxlY3Rvcg0KcHJpbnQgInskYnJ9ZmlsdGVyIHNlbGVjdG9ycyAyOiAiIC4gKCgkeCA9IGNvdW50KCAkY3NzLT5xdWVyeSgnc3BhbiNzcGFubmVyOm5vdCguc29tZXdoZXJlKSwgcC5zZWNvbmQtY2xhc3MtbmFtZTpub3QoW3RhYmluZGV4XSkucGFyYWdyYXBoJykgKSkgPT0gMSA/ICRUUlVFIDogJHgpOw0KDQovL3VzZSAjIGFuZCAuIGFzIGEgZmlsdGVyIGluc3RlYWQgb2YgYSBzZWxlY3Rvcg0KcHJpbnQgInskYnJ9ZmlsdGVyIHNlbGVjdG9ycyAzOiAiIC4gKGNvdW50KCAkY3NzLT5xdWVyeSgnLnBhcmFncmFwaCAudGVzdGluZycpICkgPT0gMiA/ICRUUlVFIDogJEZBTFNFKTsNCg0KJGNvbnRleHQgPSAkY3NzLT5xdWVyeSgnLnBhcmFncmFwaCcpOw0KLy91c2UgIyBhbmQgLiBhcyBhIGZpbHRlciBpbnN0ZWFkIG9mIGEgc2VsZWN0b3INCnByaW50ICJ7JGJyfWZpbHRlciBzZWxlY3RvcnMgNDogIiAuIChjb3VudCggJGNzcy0+cXVlcnkoJz4gLnRlc3RpbmcnLCAkY29udGV4dCkgKSA9PSAxID8gJFRSVUUgOiAkRkFMU0UpOw0KDQo/Pg0KDQo=]]></data>
	</file>
	<file>
	  <filename>/CSSTree.inc.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCgkvKioNCgkqIEBwYWNrYWdlIENTU1RyZWUNCgkqLw0KCQ0KCS8qKg0KCSogUEhQNCBDU1NUcmVlIGNsYXNzDQoJKiB3aXRoIHRoaXMgY2xhc3MgQ2FzY2FkaW5nIFN0eWxlIHNoZWV0cyBtYXkgYmUgZ2VuZXJhdGVkIHVzaW5nIGEgdHJlZQ0KCSogdGhlIG5vZGVzIHN0b3JlIHRoZSBhdHRyaWJ1dGVzIGFuZCB2YWx1ZXMNCgkqDQoJKjxjb2RlPg0KCSogLy8gZXhhbXBsZXMgZm9sbG93DQoJKiRkZGF0YT1hcnJheSgiYm9yZGVyIj0+IjFweCBzb2xpZCBibGFjayIpOw0KCSokZGRhdGEyPWFycmF5KCJib3JkZXIiPT4iMnB4IHNvbGlkIHNpbHZlciIpOw0KCSokbnVsbD1udWxsOw0KCSoNCgkqJHRyZWUgPSBuZXcgQ1NTVHJlZSgkbnVsbCwiYm9keSIsJGRkYXRhLCdjbGFzcycpOw0KCSokdG1wPSYkdHJlZS0+YWRkQ2hpbGQoJ2gxJywkZGRhdGEyLCdwc2V1ZG8nKTsNCgkqJHRtcD0mJHRyZWUtPmFkZENoaWxkKCdoMicsJGRkYXRhLCdwc2V1ZG8nKTsNCgkqPC9jb2RlPg0KCSoNCgkqIFRPRE86IGNvbW1lbnRzIGluIHRoZSBjc3MgYXJlIG5vdCBoYW5kbGVkLCBidXQgdGhleSBtYXkgd29yaw0KCSovDQoJDQoJLy8gaW5jbHVkZSB0aGUgVHJlZSBjbGFzcw0KCXJlcXVpcmVfb25jZSAnVHJlZS5pbmMucGhwJzsNCg0KY2xhc3MgQ1NTVHJlZSBleHRlbmRzIFRyZWV7DQoNCgkvKioNCgkqIFZhcmlhYmxlIGRlY2xhcmF0aW9uDQoJKi8NCgkNCgkvKioNCgkqIHByb3BlcnRpZXMgb2YgdGhpcyBOb2RlDQoJKiBAYWNjZXNzIHByaXZhdGUNCgkqIEB2YXIgYXJyYXkNCgkqLw0KCXZhciAkX2Nzc3Byb3BlcnRpZXM7DQoJDQoJLyoqDQoJKiBuYW1lIG9mIHRoaXMgTm9kZSAoY2xhc3M9fGlkPXwuLi4pDQoJKiBAYWNjZXNzIHB1YmxpYw0KCSogQHZhciBzdHJpbmcNCgkqLw0KCXZhciAkdGFnbmFtZTsNCg0KCS8qKg0KCSogdHlwZSBvZiBDU1MgKCdpZCd8J2NsYXNzJ3wncHNldWRvJykgbm90IGltcGxlbWVudGVkOiB1c2VsZXNzDQoJKiBAYWNjZXNzIHByaXZhdGUNCgkqIEB2YXIgc3RyaW5nDQoJKi8NCgkvL3ZhciAkX3R5cGU7DQoNCgkvKioNCgkqIGRlZmF1bHQgY29uc3RydWN0b3INCgkqIA0KCSogY3JlYXRlcyBhIENTUyBub2RlIG9mIHR5cGUgJHR5cGUgd2l0aCAkbmFtZSwgc2V0IHByb3BlcnRpZXMNCgkqIEBhY2Nlc3MgcHVibGljDQoJKiANCgkqLw0KCSAgIGZ1bmN0aW9uIENTU1RyZWUoJiRfcGFyZW50LCR0YWduYW1lLCRwcm9wZXJ0aWVzPW51bGwpIHsNCgkJCS8vIGNhbGwgdGhlIGNvbnN0cnVjdG9yIG9mIHRoZSBwYXJlbnQgY2xhc3MNCgkJCXBhcmVudDo6VHJlZSgkX3BhcmVudCk7DQoJICAgCS8qIHdlIGRvbid0IG5lZWQgdGhpcyBzdHVmZg0KCSAgIAlzd2l0Y2ggKCR0eXBlKXsNCgkJICAgCWNhc2UgJ2NsYXNzJzogJHRoaXMtPl90eXBlPSdjbGFzcyc7YnJlYWs7DQoJCSAgIAljYXNlICdpZCc6ICR0aGlzLT5fdHlwZT0naWQnO2JyZWFrOw0KCQkgICAJY2FzZSAncHNldWRvJzogJHRoaXMtPl90eXBlPSdwc2V1ZG8nO2JyZWFrOw0KCQkgICAJZGVmYXVsdDogLy9yYWlzZSBhbiBlcnJvciwgVE9ETzogcmFpc2UgYSByZWFsIGVycm9yIDotKQ0KCQkgICAJCQkJZWNobyAnISEhIG5vIHZhbGlkIHR5cGUgZm9yIENTUyBlbGVtZW50IHR5cGUsIHVzZSBlaXRoZXIgb2YgaWR8Y2xhc3N8cHNldWRvICEhISc7DQoJCQkJCQkJJHRoaXMtPl90eXBlPSdjbGFzcyc7DQoJCSAgIAkJCQlicmVhazsNCgkgICAJfQ0KCQkJKi8NCgkJCS8vIHNldCBwcm9wZXJ0aWVzLCBpZiBnaXZlbg0KCQkJaWYgKCghJHByb3BlcnRpZXM9PW51bGwpICYgKGlzX2FycmF5KCRwcm9wZXJ0aWVzKSkpew0KCSAgIAkJJHRoaXMtPl9jc3Nwcm9wZXJ0aWVzPSRwcm9wZXJ0aWVzOw0KCSAgIAl9DQoJICAgCWVsc2V7DQoJICAgCQkkdGhpcy0+X2Nzc3Byb3BlcnRpZXM9YXJyYXkoKTsNCgkgICAJfQ0KCSAgIAkkdGhpcy0+dGFnbmFtZT0kdGFnbmFtZTsNCgl9DQoNCgkvKioNCgkqIGFkZCBhIHN1YmNsYXNzDQoJKiBAcmV0dXJuIFRyZWUgcmVmZXJlbmNlIHRvIHRoZSBjaGlsZA0KCSovDQoJZnVuY3Rpb24gJmFkZENoaWxkKCR0YWduYW1lLCRwcm9wZXJ0aWVzPW51bGwpIHsNCgkJJHRlc3RpZmFscmVhZHlleGlzdHM9JHRoaXMtPmdldENoaWxkQnlOYW1lKCR0YWduYW1lKTsNCgkJaWYgKCR0ZXN0aWZhbHJlYWR5ZXhpc3RzIT09ZmFsc2Upe3JldHVybiAkdGVzdGlmYWxyZWFkeWV4aXN0czt9DQoJCSR0aGlzLT5fY2hpbGRyZW5bXT1uZXcgQ1NTVHJlZSgkdGhpcywkdGFnbmFtZSwkcHJvcGVydGllcyk7DQoJCS8vZ2V0IHRoZSBhdXRvbWF0aWNhbGx5IHNldCBpZCAoPWFycmF5IGtleSkgLSBpdCBpcyB0aGUgbGFzdCBlbGVtZW50IG5vdw0KCQllbmQoJHRoaXMtPl9jaGlsZHJlbik7DQoJCSRrZXk9a2V5KCR0aGlzLT5fY2hpbGRyZW4pOw0KCQkkdGhpcy0+X2NoaWxkcmVuWyRrZXldLT5fc2V0SWQoJGtleSk7DQoJCSR0aGlzLT5fY2hpbGRyZW5bJGtleV0tPmxldmVsID0gJHRoaXMtPl9sZXZlbCArIDE7DQoJCXJldHVybiAkdGhpcy0+X2NoaWxkcmVuWyRrZXldOw0KCX0NCg0KCS8qKg0KCSogb3V0cHV0IENTUyBwcm9wZXJ0aWVzIGZvciB0aGlzIG5vZGUsIGZvciB1c2UgaW4gc3R5bGU9IiINCgkqIEByZXR1cm4gc3RyaW5nDQoJKi8NCglmdW5jdGlvbiByZW5kZXJDU1NQcm9wZXJ0aWVzKCl7DQoJCSRjc3M9Jyc7DQoJCWZvcmVhY2ggKCR0aGlzLT5fY3NzcHJvcGVydGllcyBhcyAkcHJvcD0+JHZhbHVlKSB7DQoJCQkJJGNzcy49JHByb3AuJzogJy4kdmFsdWUuJzsnOw0KCQl9DQoJcmV0dXJuICRjc3M7DQoJfQ0KDQoJLyoqDQoJKiBvdXRwdXQgQ1NTIGZvciB0aGlzIG5vZGUNCgkqIEByZXR1cm4gc3RyaW5nDQoJKi8NCglmdW5jdGlvbiByZW5kZXJDU1MoKXsNCgkJJGNzcz0nICc7DQoJCSRwcm9wPSR0aGlzLT5yZW5kZXJDU1NQcm9wZXJ0aWVzKCk7DQoJCS8vc2tpcCBpZiB0aGVyZSBhcmUgbm8gcHJvcGVydGllcw0KCQlpZiAoJHByb3AhPScnKXsNCgkJCSRjc3MuPSR0aGlzLT50YWduYW1lLid7JzsNCgkJCSRjc3MuPSRwcm9wOw0KCQkJJGNzcy49In1cbiI7DQoJCX0NCgkJcmV0dXJuICRjc3M7DQoJfQ0KDQoJLyoqDQoJKiAJZ2V0IGEgcmVmZXJlbmNlIGNoaWxkIGJ5IGl0cyBuYW1lLCBvdGhlcndpc2UgZmFsc2UNCgkqCUByZXR1cm4gQ1NTVHJlZSByZWZlcmVuY2UgdG8gdGhlIGNoaWxkIG5vZGUgb3IgZmFsc2UNCgkqDQoJKi8NCglmdW5jdGlvbiAmZ2V0Q2hpbGRCeU5hbWUoJG5hbWUpew0KCQkJJHJldD1mYWxzZTsNCgkJCS8vZWNobyAnc2VsZWN0aW5nIGNoaWxkIHdpdGggbmFtZSAnLiRuYW1lOyANCgkJCWZvcmVhY2ggKCR0aGlzLT5fY2hpbGRyZW4gYXMgJGNoaWxkKXsNCgkJCQlpZiAoIXN0cmNhc2VjbXAoJG5hbWUsJGNoaWxkLT50YWduYW1lKSl7DQoJCQkJCSRyZXQ9JiR0aGlzLT5fY2hpbGRyZW5bJGNoaWxkLT5nZXRJZCgpXTsNCgkJCQlyZXR1cm4gJHJldDsNCgkJCQl9DQoJCQl9DQoJCXJldHVybiAkcmV0Ow0KCX0NCg0KCS8qKg0KCSogCUFkZCBhIHByb3BlcnR5IHRvIHRoZSBwcm9wZXJ0aWVzIA0KCSoJDQoJKi8NCglmdW5jdGlvbiBzZXRQcm9wZXJ0eSgkcHJvcGVydHksICR2YWx1ZSl7DQoJCQkkdGhpcy0+X2Nzc3Byb3BlcnRpZXNbJHByb3BlcnR5XT0kdmFsdWU7DQoJfQkJDQoNCgkvKioNCgkqIG91dHB1dCBDU1MgZm9yIHRoZSBjb21wbGV0ZSB0cmVlLCBmb3IgdXNlIGluIGhlYWRlciAoPHN0eWxlIHR5cGU9InRleHQvY3NzIj4pIG9yIGZpbGUNCgkqIEByZXR1cm4gc3RyaW5nDQoJKi8NCglmdW5jdGlvbiByZW5kZXJDU1NBbGwoKXsNCgkJJHJvb3Q9JiR0aGlzLT5nZXRSb290KCk7DQoJCXJldHVybiAkcm9vdC0+X3JlbmRlckNTU0FsbCgnJyk7DQoJfQ0KDQoNCgkvKioNCgkqIGludGVybmFsIGZ1bmN0aW9uIHJldHVybmluZyBzdHJpbmcgZm9yIG9uZSBub2RlIHVzaW5nIHRoZSAoY2FzY2FkZWQpIHByZWZpeA0KCSogQHZhciAkcHJlZml4IHRoZSBhY2N1bXVsYXRlZCBjYXNjYWRlZCBwcmVmaXggKGNsYXNzL2lkL3RhZyBuYW1lKSANCgkqIEByZXR1cm4gc3RyaW5nDQoJKiBAYWNjZXNzIHByaXZhdGUNCgkqLw0KCWZ1bmN0aW9uIF9yZW5kZXJDU1NBbGwoJHByZWZpeCl7DQoJCSRjc3M9Jyc7DQoJCS8vIGNoZWNrIGlmIHRoaXMgaXMgYSAndmlydHVhbCBub2RlJyB3aXRob3V0IHByb3BlcnRpZXMsDQoJCS8vIHRoZW4gd2UgZG9udCBuZWVkIHRvIG91dHB1dCBzb21ldGhpbmcgDQoJCWlmIChjb3VudCgkdGhpcy0+X2Nzc3Byb3BlcnRpZXMpICE9IDApew0KCQkJJGNzcy49JHByZWZpeC4kdGhpcy0+cmVuZGVyQ1NTKCk7DQoJCX0JCQkJDQoJCS8vc2V0IHByZWZpeCBmb3IgdGhlIGNoaWxkcmVuDQoJCSRwcmVmaXguPScgJy4kdGhpcy0+dGFnbmFtZTsNCgkJZm9yZWFjaCAoJHRoaXMtPl9jaGlsZHJlbiBhcyAkY2hpbGQpIHsNCgkJCQkkY3NzLj0kY2hpbGQtPl9yZW5kZXJDU1NBbGwoJHByZWZpeCk7DQoJCX0NCglyZXR1cm4gJGNzczsJCQ0KCX0NCg0KCS8qKg0KCSogQ1NTIGZpbGUgcGFyc2VyLCByZXR1cm5zIHRoZSBjc3MgcHJvcGVydGllcyBhcyAobmV3KSB0cmVlDQoJKiBAcmV0dXJuIENTU1RyZWUNCgkqIEBwYXJhbSBzdHJpbmcgZmlsZW5hbWUNCgkqIEBhY2Nlc3MgcHVibGljDQoJKi8NCiAgIGZ1bmN0aW9uIHBhcnNlRmlsZSgkZmlsZW5hbWUpICB7DQoJLyogT3BlbiBGaWxlIGFuZCBQYXJzZSBpdCAqLw0KICAgIAkkZnA9Zm9wZW4oJGZpbGVuYW1lLCJyIikgb3IgZGllKCJFcnJvciBvcGVuaW5nIGZpbGUgJGZpbGVuYW1lIik7DQogICAgCSRjc3Nfc3RyID0gZnJlYWQoJGZwLCBmaWxlc2l6ZSAoJGZpbGVuYW1lKSk7DQogICAgCWZjbG9zZSgkZnApOw0KICAgIAkvL2VjaG8gInJlYWQ6ICIuJGNzc19zdHI7DQoJCXJldHVybigkdGhpcy0+cGFyc2UoJGNzc19zdHIpKTsNCiAgICB9DQoJDQoJLyoqDQoJKiBDU1Mgc3RyaW5nIHBhcnNlciwgcmV0dXJucyB0aGUgY3NzIHByb3BlcnRpZXMgYXMgKG5ldykgdHJlZQ0KCSogQHJldHVybiBDU1NUcmVlDQoJKiBAcGFyYW0gc3RyaW5nIGNzc3N0cmluZw0KCSogQGFjY2VzcyBwdWJsaWMNCgkqLw0KCWZ1bmN0aW9uICZwYXJzZSgkY3Nzc3RyaW5nKXsNCgkJJHByb3B2YWw9YXJyYXkoKTsNCgkJCSRudWxsPW51bGw7DQoJCQkvLyBuZXcgQ1NTVHJlZSB3aXRoIGVtcHR5IHRhZ25hbWUNCgkJCSR0cmVlPW5ldyBDU1NUcmVlKCRudWxsLCcnKTsNCgkJCS8vIHJlcGxhY2UgdW5uZWNlc3Nhcnkgd2hpdGUgc3BhY2VzIHdpdGggb25lIA0KCQkJJGNzc19zdHI9cHJlZ19yZXBsYWNlKCIvW1xzXSsvIiwnICcsJGNzc3N0cmluZyk7DQoJCQkvLyBkaXZpZGUgaW50byBjbGFzc2VzDQoJCQkkY3NzX2NsYXNzID0gZXhwbG9kZSgifSIsICRjc3Nfc3RyKTsNCgkJCS8vaXRlcmF0ZSB0aHJvdWdoIGNsYXNzZXMNCgkJCXdoaWxlIChsaXN0KCRrZXksJHZhbCkgPSBlYWNoICgkY3NzX2NsYXNzKSl7DQoJCQkJLy8gZGl2aWRlIGludG8gY2xhc3NlcyBhbmQgdGhlaXIgcHJvcGVydGllcw0KCQkJCSRhQ1NTT2JqPWV4cGxvZGUoInsiLCR2YWwpOw0KCQkJCS8vIGZpbmQgbXVsdGlwbGUgZGVmaW5pdGlvbnMgYW5kIGNyZWF0ZSBhIG5vZGUgZm9yIGFueQ0KCQkJCSRjbGFzc2VzPWV4cGxvZGUoIiwiLCRhQ1NTT2JqWzBdKTsNCgkJCQlmb3JlYWNoICgkY2xhc3NlcyBhcyAkY2xhc3Mpew0KCQkJCQkkbmVzdGluZz1leHBsb2RlKCIgIix0cmltKCRjbGFzcykpOw0KCQkJCQlpZiAoaXNzZXQoJGFDU1NPYmpbMV0pKXsNCgkJCQkJJHByb3B2YWw9ZXhwbG9kZSgiOyIsJGFDU1NPYmpbMV0pOw0KCQkJCQl9DQoJCQkJCS8vcHJpbnRfcigkcHJvcGVydGllcyk7DQoJCQkJCS8vIGJlZ2luIGF0IHJvb3Qgbm9kZSBhbmQgc2V0IG5lc3RlZCBwcm9wZXJ0aWVzDQoJCQkJCSR0bXA9JiR0cmVlOw0KCQkJCQlmb3JlYWNoICgkbmVzdGluZyBhcyAkbmV3bGV2ZWwpew0KCQkJCQkJJHRtcD0mJHRtcC0+YWRkQ2hpbGQoJG5ld2xldmVsKTsNCgkJCQkJfQ0KCQkJCQkvL3BvcHVsYXRlIHByb3BlcnRpZXMNCgkJCQkJZm9yZWFjaCAoJHByb3B2YWwgYXMgJHByb3Apew0KCQkJCQkJJHByb3A9ZXhwbG9kZSgiOiIsJHByb3ApOw0KCQkJCQkJJHByb3BuYW1lPXRyaW0oJHByb3BbMF0pOw0KCQkJCQkJLy8gZG8gb25seSBmb3Igbm9uLWVtcHR5IG9uZXMgKGxhc3QgbWF5IGJlIGVtcHR5IGJlY2F1c2Ugb2YgdHJhaWxpbmcgJzsnKQ0KCQkJCQkJaWYgKCRwcm9wbmFtZSE9JycmJmlzc2V0KCRwcm9wWzFdKSl7DQoJCQkJCQkJJHRtcC0+c2V0UHJvcGVydHkoJHByb3BuYW1lLCRwcm9wWzFdKTsNCgkJCQkJCX0NCgkJCQkJfQ0KCQkJCX0NCgkJCX0NCglyZXR1cm4gJHRyZWU7DQoJfQkNCg0KCS8qKg0KCSogZWNobyB0aGUgc3RydWN0dXJlIG9mIHRoZSBzdWJub2RlcyBvZiBvdXIgdHJlZS9ub2RlDQoJKiBhbmQgdGVsbCB1cyBhZGR0aXRpb25hbGx5IHRoZSBuYW1lDQoJKiBAcGFyYW0gc3RyaW5nIHByZWZpeCAodXNlZCBmb3IgdGhlIHJlY3Vyc2l2ZSBvdXRwdXQpDQoJKiBAcmV0dXJuIHZvaWQNCgkqLw0KCWZ1bmN0aW9uIGVjaG9TdHJ1Y3R1cmUoJHByZT0nJykgew0KCQlmb3IgKCRpPTA7JGk8JHRoaXMtPmdldExldmVsKCk7JGkrKyl7DQoJCQkkcHJlLj0nfCc7Ly8kdGhpcy0+Z2V0TGV2ZWwoKTsNCgkJfQ0KCQkkcmV0dXJuPSAkcHJlLiIrWyIuJHRoaXMtPl9pZC4nICcuJHRoaXMtPnRhZ25hbWUuJ10nOw0KCQlpZiAoaXNfYXJyYXkoJHRoaXMtPmRhdGEpKXsNCgkJCWZvcmVhY2ggKCR0aGlzLT5kYXRhIGFzICRrZXk9PiR2YWx1ZSkgew0KCQkgICAgCQkgJHJldHVybi49ICcoJy4ka2V5Lid8Jy4kdmFsdWUuJyknOw0KCSAgICAJfQ0KICAgIAl9DQogICAgCQkkcmV0dXJuLj0gICJcbiI7DQoJCWlmICgkdGhpcy0+bnVtQ2hpbGRyZW4oKT4wKXsNCgkJCQ0KCQkJZm9yZWFjaCAoJHRoaXMtPl9jaGlsZHJlbiBhcyAkY2hpbGQpIHsNCgkJICAgIAkkcmV0dXJuLj0kY2hpbGQtPmVjaG9TdHJ1Y3R1cmUoKTsNCgkJCX0NCgkJfQ0KCQlyZXR1cm4gJHJldHVybjsNCgl9DQoNCn0gLy8gZW5kIGNsYXNzDQoNCgkJDQo/Pg0K]]></data>
	</file>
	<file>
	  <filename>/event.Core.ContentPostRender.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsNCiRjb250ZW50PSRwYXJhbXNbImNvbnRlbnQiXTsNCg0KaWYoJHRoaXMtPkdldFByZWZlcmVuY2UoInByZWxvYWRfQ1NTaW1hZ2UiKSl7DQoJJHM9JGNvbnRlbnQ7DQoJJHNjcmlwdElEPWFycmF5KCk7DQoJJGdyb3VwSUQ9YXJyYXkoKTsNCgkNCgkkcGF0dGVybiA9ICcvc2NyaXB0SURcLyhbMC05XXswLDN9KVwuY3NzLyc7DQoJcHJlZ19tYXRjaF9hbGwoICRwYXR0ZXJuLCAkcywgJG1hdGNoZXMsUFJFR19TRVRfT1JERVIpOw0KCWZvcmVhY2goJG1hdGNoZXMgYXMgJHVybCl7DQoJCSRzY3JpcHRJRFtdPSAkdXJsWzFdOw0KCX0NCgkkcGF0dGVybiA9ICcvZ3JvdXBJRFwvKFswLTldezAsM30pXC5jc3MvJzsNCglwcmVnX21hdGNoX2FsbCggJHBhdHRlcm4sICRzLCAkbWF0Y2hlcyxQUkVHX1NFVF9PUkRFUik7DQoJZm9yZWFjaCgkbWF0Y2hlcyBhcyAkdXJsKXsNCgkJJGdyb3VwSURbXT0gJHVybFsxXTsNCgl9DQoNCgkkdXJsUGFja2FnZT0nJzsNCg0KCWZvcmVhY2goJHNjcmlwdElEICBhcyAka2V5ID0+ICRTaWQpew0KCQkkdGhpcy0+RmlyZURlYnVnKCdlcnJvcicsICdwcmVsb2FkX0NTU2ltYWdlOiAnLiRTaWQpOw0KCQkkdXJsUGFja2FnZS49JHRoaXMtPkdldFByZWZlcmVuY2UoJFNpZC4nLXByZWxvYWRfQ1NTaW1hZ2Utc2NyaXB0LVNEJyk7DQoJCSR0aGlzLT5GaXJlRGVidWcoJ2Vycm9yJywgJ3ByZWxvYWRfQ1NTaW1hZ2U6ICcuJHVybFBhY2thZ2UpOw0KCX0NCglmb3JlYWNoKCRncm91cElEIGFzICRrZXkgPT4gJFNpZCl7DQoJCSR0aGlzLT5GaXJlRGVidWcoJ2Vycm9yJywgJ3ByZWxvYWRfQ1NTaW1hZ2U6ICcuJFNpZCk7DQoJCSR1cmxQYWNrYWdlLj0kdGhpcy0+R2V0UHJlZmVyZW5jZSgkU2lkLictcHJlbG9hZF9DU1NpbWFnZS1ncm91cC1TRCcpOw0KCQkkdGhpcy0+RmlyZURlYnVnKCdlcnJvcicsICdwcmVsb2FkX0NTU2ltYWdlOiAnLiR1cmxQYWNrYWdlKTsNCgl9DQoNCgkkcGF0dGVybiA9ICcvPGJvZHkoLio/KT4vJzsNCgkkcmVwbGFjZW1lbnQ9Jzxib2R5JDE+PGRpdiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7IHRvcDotOTk5OWVtOyI+Jy4kdXJsUGFja2FnZS4nPC9kaXY+JzsNCgkkY29udGVudCA9IHByZWdfcmVwbGFjZSgkcGF0dGVybiwgJHJlcGxhY2VtZW50LCAkY29udGVudCk7IA0KfQ0KDQoNCiRtYW5nbGV0eXBlPSR0aGlzLT5HZXRQcmVmZXJlbmNlKCJtYW5nbGV0eXBlIiwibm9jaGFuZ2UiKTsNCmlmKCRtYW5nbGV0eXBlIT0nbm9jaGFuZ2UnKXsNCgkkR0xPQkFMU1sibmVjaG9fZGVidWdtb2RlIl09KCR0aGlzLT5HZXRQcmVmZXJlbmNlKCJkZWJ1ZyIsImZhbHNlIik9PSJ0cnVlIik7DQoJJEdMT0JBTFNbIm5lY2hvX2RlYnVnbGV2ZWwiXT0kdGhpcy0+R2V0UHJlZmVyZW5jZSgiZGVidWdsZXZlbCIsImJyaWVmIik7DQoJJEdMT0JBTFNbIm5lY2hvX2luZGVudHdpZHRoIl09JHRoaXMtPkdldFByZWZlcmVuY2UoImluZGVudHdpZHRoIiwiMiIpOw0KCSRHTE9CQUxTWyJuZWNob19mb3JjZWxvd2VydGFncyJdPSgkdGhpcy0+R2V0UHJlZmVyZW5jZSgiZm9yY2Vsb3dlcnRhZ3MiLCIwIik9PSIxIik7DQoJJHM9JGNvbnRlbnQ7DQoJc3dpdGNoICgkbWFuZ2xldHlwZSkgew0KCSAgY2FzZSAic2NyYW1ibGUiIDogew0KCQkgICRzPW5lY2hvX3VnbHlmeSgkcyk7DQoJCSAgYnJlYWs7DQoJCX0NCgkgIGNhc2UgIm5pY2UiIDogew0KCQkgICRzPW5lY2hvX3VnbHlmeSgkcyk7DQoJCSAgJHM9bmVjaG9fZm9ybWF0KCRzKTsNCgkJICBicmVhazsNCgkJfQ0KCSAgY2FzZSAiY2xlYW4iIDogew0KCQkgICRzPW5lY2hvX2NsZWFuKCRzKTsNCgkJICBicmVhazsNCgkJfQ0KCX0NCgkkY29udGVudD0kczsNCn0NCmlmICgkdGhpcy0+R2V0UHJlZmVyZW5jZSgiaGlkZW1lc3NhZ2VzIikhPSJ0cnVlIikgew0KCSRzPSRjb250ZW50Ow0KCSRzLj0iXG48IS0tIFNjcmlwdERlcGxveSB2ZXJzaW9uICIuJHRoaXMtPkdldFZlcnNpb24oKS4iIHdhcyBoZXJlIGF0ICIuZGF0ZSgiciIsdGltZSgpKS4iXG4gIE1vZGU9Ii4kbWFuZ2xldHlwZTsNCgkkcy49IlxuICBGaW5hbCBpbmRlbnRhdGlvbiBsZXZlbD0iLiRHTE9CQUxTWyJuZWNob19pbmRlbnRsZXZlbCJdOw0KCWlmICgkR0xPQkFMU1sibmVjaG9fZGVidWdtb2RlIl0pICRzLj0iXG4gIEFzc3VtZWQgZXJyb3JzPSIuJEdMT0JBTFNbIm5lY2hvX2Vycm9ycyJdOw0KCWlmICgkbWFuZ2xldHlwZT09Im5pY2UiKSAkcy49IlxuICBTZWNvbmRzIHdhc3RlZCBmb3JtYXR0aW5nIGNvZGU9Ii4kR0xPQkFMU1sibmVjaG9fdGltZXIiXTsNCgkkcy49IlxuLS0+XG4iOw0KCSRjb250ZW50PSRzOw0KfQ0KDQoNCiRwYXJhbXNbImNvbnRlbnQiXT10cmltKCRjb250ZW50KTsNCj8+DQo=]]></data>
	</file>
	<file>
	  <filename>/example.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ym9keSB7CgkJbWFyZ2luOjIwcHggMjBweCAwcHggMjBweDsKCQl9CgkKCSNtYWluIHsKCQlib3JkZXI6MXB4IHNvbGlkICMwMDA7IAoJCWJhY2tncm91bmQ6I2ZmZjsKCQl9CgoKCSNtYWluICNtZW51IHsKCQlib3JkZXItbGVmdDoxcHggc29saWQgIzAwMDsgCgkJYm9yZGVyLWJvdHRvbToxcHggc29saWQgIzAwMDsKCQlmbG9hdDpyaWdodDsKCQl3aWR0aDoyMzBweDsKCQliYWNrZ3JvdW5kOiNlZWU7CgkJbWFyZ2luOjBweCAwcHggMTBweCAxMHB4OwoJCX0KCQkKCXAsaDEscHJlIHsKCQltYXJnaW46MHB4IDEwcHggMTBweCAxMHB4OwoJCX0KCQkKCWgxIHsKCQlmb250LXNpemU6MTRweDsKCQlwYWRkaW5nLXRvcDoxMHB4OwoJCX0KCQoJI21lbnUgcCB7IGZvbnQtc2l6ZToxMHB4fQ==]]></data>
	</file>
	<file>
	  <filename>/extract_css_urls.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyoqCiAqIENvcHlyaWdodCAoYykgMjAwOCwgRGF2aWQgUi4gTmFkZWF1LCBOYWRlYXVTb2Z0d2FyZS5jb20uCiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAqCiAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKICogYXJlIG1ldDoKICoKICoJKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogKgkgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICoKICoJKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiAqCSAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKICoJICBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQKICoJICB3aXRoIHRoZSBkaXN0cmlidXRpb24uCiAqCiAqCSogTmVpdGhlciB0aGUgbmFtZXMgb2YgRGF2aWQgUi4gTmFkZWF1IG9yIE5hZGVhdVNvZnR3YXJlLmNvbSwgbm9yCiAqCSAgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlCiAqCSAgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvcgogKgkgIHdyaXR0ZW4gcGVybWlzc2lvbi4KICoKICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUwogKiBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQogKiBDT1BZUklHSFQgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsCiAqIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsCiAqIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgogKiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKICogTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZCiAqIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZCiAqIE9GIFNVQ0ggREFNQUdFLgogKi8KCi8qCiAqIFRoaXMgaXMgYSBCU0QgTGljZW5zZSBhcHByb3ZlZCBieSB0aGUgT3BlbiBTb3VyY2UgSW5pdGlhdGl2ZSAoT1NJKS4KICogU2VlOiAgaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9ic2QtbGljZW5zZS5waHAKICovCgoKLyoqCiAqIEV4dHJhY3QgVVJMcyBmcm9tIFVURi04IENTUyB0ZXh0LgogKgogKiBVUkxzIHdpdGhpbiBAaW1wb3J0IHN0YXRlbWVudHMgYW5kIHVybCgpIHByb3BlcnR5IGZ1bmN0aW9ucyBhcmUgZXh0cmFjdGVkCiAqIGFuZCByZXR1cm5lZCBpbiBhbiBhc3NvY2lhdGl2ZSBhcnJheSBvZiBhcnJheXMuICBBcnJheSBrZXlzIGluZGljYXRlCiAqIHRoZSB1c2UgY29udGV4dCBmb3IgdGhlIFVSTCwgaW5jbHVkaW5nOgogKgogKiAJImltcG9ydCIKICogCSJwcm9wZXJ0eSIKICoKICogRWFjaCB2YWx1ZSBpbiB0aGUgYXNzb2NpYXRpdmUgYXJyYXkgaXMgYW4gYXJyYXkgb2YgVVJMcy4KICoKICogUGFyYW1ldGVyczoKICogCXRleHQJCXRoZSBVVEYtOCB0ZXh0IHRvIHNjYW4KICoKICogUmV0dXJuIHZhbHVlczoKICogCWFuIGFzc29jaWF0aXZlIGFycmF5IG9mIGFycmF5cyBvZiBVUkxzLgogKgogKiBTZWU6CiAqIAlodHRwOi8vbmFkZWF1c29mdHdhcmUuY29tL2FydGljbGVzLzIwMDgvMDEvcGhwX3RpcF9ob3dfZXh0cmFjdF91cmxzX2Nzc19maWxlCiAqLwpmdW5jdGlvbiBleHRyYWN0X2Nzc191cmxzKCAkdGV4dCApCnsKCSR1cmxzID0gYXJyYXkoICk7CgoJJHVybF9wYXR0ZXJuICAgICA9ICcoKFteXFxcXFwnIiwgXChcKV0qKFxcXFwuKT8pKyknOwoJJHVybGZ1bmNfcGF0dGVybiA9ICd1cmxcKFxzKltcJyJdPycgLiAkdXJsX3BhdHRlcm4gLiAnW1wnIl0/XHMqXCknOwoJJHBhdHRlcm4gICAgICAgICA9ICcvKCcgLgoJCSAnKEBpbXBvcnRccypbXCciXScgLiAkdXJsX3BhdHRlcm4gICAgIC4gJ1tcJyJdKScgLgoJCSd8KEBpbXBvcnRccyonICAgICAgLiAkdXJsZnVuY19wYXR0ZXJuIC4gJyknICAgICAgLgoJCSd8KCcgICAgICAgICAgICAgICAgLiAkdXJsZnVuY19wYXR0ZXJuIC4gJyknICAgICAgLiAgJykvaXUnOwoJaWYgKCAhcHJlZ19tYXRjaF9hbGwoICRwYXR0ZXJuLCAkdGV4dCwgJG1hdGNoZXMgKSApCgkJcmV0dXJuICR1cmxzOwoKCS8vIEBpbXBvcnQgJy4uLicKCS8vIEBpbXBvcnQgIi4uLiIKCWZvcmVhY2ggKCAkbWF0Y2hlc1szXSBhcyAkbWF0Y2ggKQoJCWlmICggIWVtcHR5KCRtYXRjaCkgKQoJCQkkdXJsc1snaW1wb3J0J11bXSA9IAoJCQkJcHJlZ19yZXBsYWNlKCAnL1xcXFwoLikvdScsICdcXDEnLCAkbWF0Y2ggKTsKCgkvLyBAaW1wb3J0IHVybCguLi4pCgkvLyBAaW1wb3J0IHVybCgnLi4uJykKCS8vIEBpbXBvcnQgdXJsKCIuLi4iKQoJZm9yZWFjaCAoICRtYXRjaGVzWzddIGFzICRtYXRjaCApCgkJaWYgKCAhZW1wdHkoJG1hdGNoKSApCgkJCSR1cmxzWydpbXBvcnQnXVtdID0gCgkJCQlwcmVnX3JlcGxhY2UoICcvXFxcXCguKS91JywgJ1xcMScsICRtYXRjaCApOwoKCS8vIHVybCguLi4pCgkvLyB1cmwoJy4uLicpCgkvLyB1cmwoIi4uLiIpCglmb3JlYWNoICggJG1hdGNoZXNbMTFdIGFzICRtYXRjaCApCgkJaWYgKCAhZW1wdHkoJG1hdGNoKSApCgkJCSR1cmxzWydwcm9wZXJ0eSddW10gPSAKCQkJCXByZWdfcmVwbGFjZSggJy9cXFxcKC4pL3UnLCAnXFwxJywgJG1hdGNoICk7CgoJcmV0dXJuICR1cmxzOwp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/extract_html_urls.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyoqCiAqIENvcHlyaWdodCAoYykgMjAwOCwgRGF2aWQgUi4gTmFkZWF1LCBOYWRlYXVTb2Z0d2FyZS5jb20uCiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAqCiAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKICogYXJlIG1ldDoKICoKICoJKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogKgkgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICoKICoJKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiAqCSAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKICoJICBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQKICoJICB3aXRoIHRoZSBkaXN0cmlidXRpb24uCiAqCiAqCSogTmVpdGhlciB0aGUgbmFtZXMgb2YgRGF2aWQgUi4gTmFkZWF1IG9yIE5hZGVhdVNvZnR3YXJlLmNvbSwgbm9yCiAqCSAgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlCiAqCSAgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvcgogKgkgIHdyaXR0ZW4gcGVybWlzc2lvbi4KICoKICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUwogKiBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQogKiBDT1BZUklHSFQgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsCiAqIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsCiAqIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgogKiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKICogTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZCiAqIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZCiAqIE9GIFNVQ0ggREFNQUdFLgogKi8KCi8qCiAqIFRoaXMgaXMgYSBCU0QgTGljZW5zZSBhcHByb3ZlZCBieSB0aGUgT3BlbiBTb3VyY2UgSW5pdGlhdGl2ZSAoT1NJKS4KICogU2VlOiAgaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9ic2QtbGljZW5zZS5waHAKICovCgoKcmVxdWlyZSAnZXh0cmFjdF9jc3NfdXJscy5waHAnOwoKLyoqCiAqIEV4dHJhY3QgVVJMcyBmcm9tIGEgd2ViIHBhZ2UuCiAqCiAqIFVSTHMgYXJlIGV4dHJhY3RlZCBmcm9tIGEgbG9uZyBsaXN0IG9mIHRhZ3MgYW5kIGF0dHJpYnV0ZXMgYXMgZGVmaW5lZAogKiBieSB0aGUgSFRNTCAyLjAsIEhUTUwgMy4yLCBIVE1MIDQuMDEsIGFuZCBkcmFmdCBIVE1MIDUuMCBzcGVjaWZpY2F0aW9ucy4KICogVVJMcyBhcmUgYWxzbyBleHRyYWN0ZWQgZnJvbSB0YWdzIGFuZCBhdHRyaWJ1dGVzIHRoYXQgYXJlIGNvbW1vbgogKiBleHRlbnNpb25zIG9mIEhUTUwsIGZyb20gdGhlIGRyYWZ0IEZvcm1zIDIuMCBzcGVjaWZpY2F0aW9uLCBmcm9tIFhIVE1MLAogKiBhbmQgZnJvbSBXTUwgMS4zIGFuZCAyLjAuCiAqCiAqIFRoZSBmdW5jdGlvbiByZXR1cm5zIGFuIGFzc29jaWF0aXZlIGFycmF5IG9mIGFzc29jaWF0aXZlIGFycmF5cyBvZgogKiBhcnJheXMgb2YgVVJMcy4gIFRoZSBvdXRlcm1vc3QgYXJyYXkncyBrZXlzIGFyZSB0aGUgdGFnIChlbGVtZW50KSBuYW1lLAogKiBzdWNoIGFzICJhIiBmb3IgPGE+IG9yICJpbWciIGZvciA8aW1nPi4gIFRoZSB2YWx1ZXMgZm9yIHRoZXNlIGVudHJpZXMKICogYXJlIGFzc29jaWF0aXZlIGFycmF5cyB3aGVyZSB0aGUga2V5cyBhcmUgYXR0cmlidXRlIG5hbWVzIGZvciB0aG9zZQogKiB0YWdzLCBzdWNoIGFzICJocmVmIiBmb3IgPGEgaHJlZj0iLi4uIj4uICBGaW5hbGx5LCB0aGUgdmFsdWVzIGZvcgogKiB0aG9zZSBhcnJheXMgYXJlIFVSTHMgZm91bmQgaW4gdGhvc2UgdGFncyBhbmQgYXR0cmlidXRlcyB0aHJvdWdob3V0CiAqIHRoZSB0ZXh0LgogKgogKiBQYXJhbWV0ZXJzOgogKiAJdGV4dAkJdGhlIFVURi04IHRleHQgdG8gc2NhbgogKgogKiBSZXR1cm4gdmFsdWVzOgogKiAJYW4gYXNzb2NpYXRpdmUgYXJyYXkgd2hlcmUga2V5cyBhcmUgdGFncyBhbmQgdmFsdWVzIGFyZSBhbgogKiAJYXNzb2NpYXRpdmUgYXJyYXkgd2hlcmUga2V5cyBhcmUgYXR0cmlidXRlcyBhbmQgdmFsdWVzIGFyZQogKiAJYW4gYXJyYXkgb2YgVVJMcy4KICoKICogU2VlOgogKiAJaHR0cDovL25hZGVhdXNvZnR3YXJlLmNvbS9hcnRpY2xlcy8yMDA4LzAxL3BocF90aXBfaG93X2V4dHJhY3RfdXJsc193ZWJfcGFnZQogKi8KZnVuY3Rpb24gZXh0cmFjdF9odG1sX3VybHMoICR0ZXh0ICkKewoJJG1hdGNoX2VsZW1lbnRzID0gYXJyYXkoCgkJLy8gSFRNTAoJCWFycmF5KCdlbGVtZW50Jz0+J2EnLAkJJ2F0dHJpYnV0ZSc9PidocmVmJyksCQkvLyAyLjAKCQlhcnJheSgnZWxlbWVudCc9PidhJywJCSdhdHRyaWJ1dGUnPT4ndXJuJyksCQkvLyAyLjAKCQlhcnJheSgnZWxlbWVudCc9PidiYXNlJywJJ2F0dHJpYnV0ZSc9PidocmVmJyksCQkvLyAyLjAKCQlhcnJheSgnZWxlbWVudCc9Pidmb3JtJywJJ2F0dHJpYnV0ZSc9PidhY3Rpb24nKSwJCS8vIDIuMAoJCWFycmF5KCdlbGVtZW50Jz0+J2ltZycsCQknYXR0cmlidXRlJz0+J3NyYycpLAkJLy8gMi4wCgkJYXJyYXkoJ2VsZW1lbnQnPT4nbGluaycsCSdhdHRyaWJ1dGUnPT4naHJlZicpLAkJLy8gMi4wCgoJCWFycmF5KCdlbGVtZW50Jz0+J2FwcGxldCcsCSdhdHRyaWJ1dGUnPT4nY29kZScpLAkJLy8gMy4yCgkJYXJyYXkoJ2VsZW1lbnQnPT4nYXBwbGV0JywJJ2F0dHJpYnV0ZSc9Pidjb2RlYmFzZScpLAkvLyAzLjIKCQlhcnJheSgnZWxlbWVudCc9PidhcmVhJywJJ2F0dHJpYnV0ZSc9PidocmVmJyksCQkvLyAzLjIKCQlhcnJheSgnZWxlbWVudCc9Pidib2R5JywJJ2F0dHJpYnV0ZSc9PidiYWNrZ3JvdW5kJyksCS8vIDMuMgoJCWFycmF5KCdlbGVtZW50Jz0+J2ltZycsCQknYXR0cmlidXRlJz0+J3VzZW1hcCcpLAkJLy8gMy4yCgkJYXJyYXkoJ2VsZW1lbnQnPT4naW5wdXQnLAknYXR0cmlidXRlJz0+J3NyYycpLAkJLy8gMy4yCgoJCWFycmF5KCdlbGVtZW50Jz0+J2FwcGxldCcsCSdhdHRyaWJ1dGUnPT4nYXJjaGl2ZScpLAkvLyA0LjAxCgkJYXJyYXkoJ2VsZW1lbnQnPT4nYXBwbGV0JywJJ2F0dHJpYnV0ZSc9PidvYmplY3QnKSwJCS8vIDQuMDEKCQlhcnJheSgnZWxlbWVudCc9PidibG9ja3F1b3RlJywJJ2F0dHJpYnV0ZSc9PidjaXRlJyksCQkvLyA0LjAxCgkJYXJyYXkoJ2VsZW1lbnQnPT4nZGVsJywJCSdhdHRyaWJ1dGUnPT4nY2l0ZScpLAkJLy8gNC4wMQoJCWFycmF5KCdlbGVtZW50Jz0+J2ZyYW1lJywJJ2F0dHJpYnV0ZSc9Pidsb25nZGVzYycpLAkvLyA0LjAxCgkJYXJyYXkoJ2VsZW1lbnQnPT4nZnJhbWUnLAknYXR0cmlidXRlJz0+J3NyYycpLAkJLy8gNC4wMQoJCWFycmF5KCdlbGVtZW50Jz0+J2hlYWQnLAknYXR0cmlidXRlJz0+J3Byb2ZpbGUnKSwJLy8gNC4wMQoJCWFycmF5KCdlbGVtZW50Jz0+J2lmcmFtZScsCSdhdHRyaWJ1dGUnPT4nbG9uZ2Rlc2MnKSwJLy8gNC4wMQoJCWFycmF5KCdlbGVtZW50Jz0+J2lmcmFtZScsCSdhdHRyaWJ1dGUnPT4nc3JjJyksCQkvLyA0LjAxCgkJYXJyYXkoJ2VsZW1lbnQnPT4naW1nJywJCSdhdHRyaWJ1dGUnPT4nbG9uZ2Rlc2MnKSwJLy8gNC4wMQoJCWFycmF5KCdlbGVtZW50Jz0+J2lucHV0JywJJ2F0dHJpYnV0ZSc9Pid1c2VtYXAnKSwJCS8vIDQuMDEKCQlhcnJheSgnZWxlbWVudCc9PidpbnMnLAkJJ2F0dHJpYnV0ZSc9PidjaXRlJyksCQkvLyA0LjAxCgkJYXJyYXkoJ2VsZW1lbnQnPT4nb2JqZWN0JywJJ2F0dHJpYnV0ZSc9PidhcmNoaXZlJyksCS8vIDQuMDEKCQlhcnJheSgnZWxlbWVudCc9PidvYmplY3QnLAknYXR0cmlidXRlJz0+J2NsYXNzaWQnKSwJLy8gNC4wMQoJCWFycmF5KCdlbGVtZW50Jz0+J29iamVjdCcsCSdhdHRyaWJ1dGUnPT4nY29kZWJhc2UnKSwJLy8gNC4wMQoJCWFycmF5KCdlbGVtZW50Jz0+J29iamVjdCcsCSdhdHRyaWJ1dGUnPT4nZGF0YScpLAkJLy8gNC4wMQoJCWFycmF5KCdlbGVtZW50Jz0+J29iamVjdCcsCSdhdHRyaWJ1dGUnPT4ndXNlbWFwJyksCQkvLyA0LjAxCgkJYXJyYXkoJ2VsZW1lbnQnPT4ncScsCQknYXR0cmlidXRlJz0+J2NpdGUnKSwJCS8vIDQuMDEKCQlhcnJheSgnZWxlbWVudCc9PidzY3JpcHQnLAknYXR0cmlidXRlJz0+J3NyYycpLAkJLy8gNC4wMQoKCQlhcnJheSgnZWxlbWVudCc9PidhdWRpbycsCSdhdHRyaWJ1dGUnPT4nc3JjJyksCQkvLyA1LjAKCQlhcnJheSgnZWxlbWVudCc9Pidjb21tYW5kJywJJ2F0dHJpYnV0ZSc9PidpY29uJyksCQkvLyA1LjAKCQlhcnJheSgnZWxlbWVudCc9PidlbWJlZCcsCSdhdHRyaWJ1dGUnPT4nc3JjJyksCQkvLyA1LjAKCQlhcnJheSgnZWxlbWVudCc9PidldmVudC1zb3VyY2UnLCdhdHRyaWJ1dGUnPT4nc3JjJyksCQkvLyA1LjAKCQlhcnJheSgnZWxlbWVudCc9PidodG1sJywJJ2F0dHJpYnV0ZSc9PidtYW5pZmVzdCcpLAkvLyA1LjAKCQlhcnJheSgnZWxlbWVudCc9Pidzb3VyY2UnLAknYXR0cmlidXRlJz0+J3NyYycpLAkJLy8gNS4wCgkJYXJyYXkoJ2VsZW1lbnQnPT4ndmlkZW8nLAknYXR0cmlidXRlJz0+J3NyYycpLAkJLy8gNS4wCgkJYXJyYXkoJ2VsZW1lbnQnPT4ndmlkZW8nLAknYXR0cmlidXRlJz0+J3Bvc3RlcicpLAkJLy8gNS4wCgoJCWFycmF5KCdlbGVtZW50Jz0+J2Jnc291bmQnLAknYXR0cmlidXRlJz0+J3NyYycpLAkJLy8gRXh0ZW5zaW9uCgkJYXJyYXkoJ2VsZW1lbnQnPT4nYm9keScsCSdhdHRyaWJ1dGUnPT4nY3JlZGl0cycpLAkvLyBFeHRlbnNpb24KCQlhcnJheSgnZWxlbWVudCc9Pidib2R5JywJJ2F0dHJpYnV0ZSc9PidpbnN0cnVjdGlvbnMnKSwJLy8gRXh0ZW5zaW9uCgkJYXJyYXkoJ2VsZW1lbnQnPT4nYm9keScsCSdhdHRyaWJ1dGUnPT4nbG9nbycpLAkJLy8gRXh0ZW5zaW9uCgkJYXJyYXkoJ2VsZW1lbnQnPT4nZGl2JywJCSdhdHRyaWJ1dGUnPT4naHJlZicpLAkJLy8gRXh0ZW5zaW9uCgkJYXJyYXkoJ2VsZW1lbnQnPT4nZGl2JywJCSdhdHRyaWJ1dGUnPT4nc3JjJyksCQkvLyBFeHRlbnNpb24KCQlhcnJheSgnZWxlbWVudCc9PidlbWJlZCcsCSdhdHRyaWJ1dGUnPT4nY29kZScpLAkJLy8gRXh0ZW5zaW9uCgkJYXJyYXkoJ2VsZW1lbnQnPT4nZW1iZWQnLAknYXR0cmlidXRlJz0+J3BsdWdpbnNwYWdlJyksCS8vIEV4dGVuc2lvbgoJCWFycmF5KCdlbGVtZW50Jz0+J2h0bWwnLAknYXR0cmlidXRlJz0+J2JhY2tncm91bmQnKSwJLy8gRXh0ZW5zaW9uCgkJYXJyYXkoJ2VsZW1lbnQnPT4naWxheWVyJywJJ2F0dHJpYnV0ZSc9PidzcmMnKSwJCS8vIEV4dGVuc2lvbgoJCWFycmF5KCdlbGVtZW50Jz0+J2ltZycsCQknYXR0cmlidXRlJz0+J2R5bnNyYycpLAkJLy8gRXh0ZW5zaW9uCgkJYXJyYXkoJ2VsZW1lbnQnPT4naW1nJywJCSdhdHRyaWJ1dGUnPT4nbG93c3JjJyksCQkvLyBFeHRlbnNpb24KCQlhcnJheSgnZWxlbWVudCc9PidpbnB1dCcsCSdhdHRyaWJ1dGUnPT4nZHluc3JjJyksCQkvLyBFeHRlbnNpb24KCQlhcnJheSgnZWxlbWVudCc9PidpbnB1dCcsCSdhdHRyaWJ1dGUnPT4nbG93c3JjJyksCQkvLyBFeHRlbnNpb24KCQlhcnJheSgnZWxlbWVudCc9Pid0YWJsZScsCSdhdHRyaWJ1dGUnPT4nYmFja2dyb3VuZCcpLAkvLyBFeHRlbnNpb24KCQlhcnJheSgnZWxlbWVudCc9Pid0ZCcsCQknYXR0cmlidXRlJz0+J2JhY2tncm91bmQnKSwJLy8gRXh0ZW5zaW9uCgkJYXJyYXkoJ2VsZW1lbnQnPT4ndGgnLAkJJ2F0dHJpYnV0ZSc9PidiYWNrZ3JvdW5kJyksCS8vIEV4dGVuc2lvbgoJCWFycmF5KCdlbGVtZW50Jz0+J2xheWVyJywJJ2F0dHJpYnV0ZSc9PidzcmMnKSwJCS8vIEV4dGVuc2lvbgoJCWFycmF5KCdlbGVtZW50Jz0+J3htbCcsCQknYXR0cmlidXRlJz0+J3NyYycpLAkJLy8gRXh0ZW5zaW9uCgoJCWFycmF5KCdlbGVtZW50Jz0+J2J1dHRvbicsCSdhdHRyaWJ1dGUnPT4nYWN0aW9uJyksCQkvLyBGb3JtcyAyLjAKCQlhcnJheSgnZWxlbWVudCc9PidkYXRhbGlzdCcsCSdhdHRyaWJ1dGUnPT4nZGF0YScpLAkJLy8gRm9ybXMgMi4wCgkJYXJyYXkoJ2VsZW1lbnQnPT4nZm9ybScsCSdhdHRyaWJ1dGUnPT4nZGF0YScpLAkJLy8gRm9ybXMgMi4wCgkJYXJyYXkoJ2VsZW1lbnQnPT4naW5wdXQnLAknYXR0cmlidXRlJz0+J2FjdGlvbicpLAkJLy8gRm9ybXMgMi4wCgkJYXJyYXkoJ2VsZW1lbnQnPT4nc2VsZWN0JywJJ2F0dHJpYnV0ZSc9PidkYXRhJyksCQkvLyBGb3JtcyAyLjAKCgkJLy8gWEhUTUwKCQlhcnJheSgnZWxlbWVudCc9PidodG1sJywJJ2F0dHJpYnV0ZSc9Pid4bWxucycpLAoKCQkvLyBXTUwKCQlhcnJheSgnZWxlbWVudCc9PidhY2Nlc3MnLAknYXR0cmlidXRlJz0+J3BhdGgnKSwJCS8vIDEuMwoJCWFycmF5KCdlbGVtZW50Jz0+J2NhcmQnLAknYXR0cmlidXRlJz0+J29uZW50ZXJmb3J3YXJkJyksCS8vIDEuMwoJCWFycmF5KCdlbGVtZW50Jz0+J2NhcmQnLAknYXR0cmlidXRlJz0+J29uZW50ZXJiYWNrd2FyZCcpLC8vIDEuMwoJCWFycmF5KCdlbGVtZW50Jz0+J2NhcmQnLAknYXR0cmlidXRlJz0+J29udGltZXInKSwJLy8gMS4zCgkJYXJyYXkoJ2VsZW1lbnQnPT4nZ28nLAkJJ2F0dHJpYnV0ZSc9PidocmVmJyksCQkvLyAxLjMKCQlhcnJheSgnZWxlbWVudCc9PidvcHRpb24nLAknYXR0cmlidXRlJz0+J29ucGljaycpLAkJLy8gMS4zCgkJYXJyYXkoJ2VsZW1lbnQnPT4ndGVtcGxhdGUnLAknYXR0cmlidXRlJz0+J29uZW50ZXJmb3J3YXJkJyksCS8vIDEuMwoJCWFycmF5KCdlbGVtZW50Jz0+J3RlbXBsYXRlJywJJ2F0dHJpYnV0ZSc9PidvbmVudGVyYmFja3dhcmQnKSwvLyAxLjMKCQlhcnJheSgnZWxlbWVudCc9Pid0ZW1wbGF0ZScsCSdhdHRyaWJ1dGUnPT4nb250aW1lcicpLAkvLyAxLjMKCQlhcnJheSgnZWxlbWVudCc9Pid3bWwnLAkJJ2F0dHJpYnV0ZSc9Pid4bWxucycpLAkJLy8gMi4wCgkpOwoKCSRtYXRjaF9tZXRhcyA9IGFycmF5KAoJCSdjb250ZW50LWJhc2UnLAoJCSdjb250ZW50LWxvY2F0aW9uJywKCQkncmVmZXJlcicsCgkJJ2xvY2F0aW9uJywKCQkncmVmcmVzaCcsCgkpOwoKCS8vIEV4dHJhY3QgYWxsIGVsZW1lbnRzCglpZiAoICFwcmVnX21hdGNoX2FsbCggJy88KFthLXpdW14+XSopPi9pdScsICR0ZXh0LCAkbWF0Y2hlcyApICkKCQlyZXR1cm4gYXJyYXkoICk7CgkkZWxlbWVudHMgPSAkbWF0Y2hlc1sxXTsKCSR2YWx1ZV9wYXR0ZXJuID0gJz0oKCIoW14iXSopIil8KFteXHNdKikpJzsKCgkvLyBNYXRjaCBlbGVtZW50cyBhbmQgYXR0cmlidXRlcwoJZm9yZWFjaCAoICRtYXRjaF9lbGVtZW50cyBhcyAkbWF0Y2hfZWxlbWVudCApCgl7CgkJJG5hbWUgPSAkbWF0Y2hfZWxlbWVudFsnZWxlbWVudCddOwoJCSRhdHRyID0gJG1hdGNoX2VsZW1lbnRbJ2F0dHJpYnV0ZSddOwoJCSRwYXR0ZXJuID0gJy9eJyAuICRuYW1lIC4gJ1xzLionIC4gJGF0dHIgLiAkdmFsdWVfcGF0dGVybiAuICcvaXUnOwoJCWlmICggJG5hbWUgPT0gJ29iamVjdCcgKQoJCQkkc3BsaXRfcGF0dGVybiA9ICcvXHMqL3UnOwkvLyBTcGFjZS1zZXBhcmF0ZWQgVVJMIGxpc3QKCQllbHNlIGlmICggJG5hbWUgPT0gJ2FyY2hpdmUnICkKCQkJJHNwbGl0X3BhdHRlcm4gPSAnLyxccyovdSc7CS8vIENvbW1hLXNlcGFyYXRlZCBVUkwgbGlzdAoJCWVsc2UKCQkJdW5zZXQoICRzcGxpdF9wYXR0ZXJuICk7CS8vIFNpbmdsZSBVUkwKCQlmb3JlYWNoICggJGVsZW1lbnRzIGFzICRlbGVtZW50ICkKCQl7CgkJCWlmICggIXByZWdfbWF0Y2goICRwYXR0ZXJuLCAkZWxlbWVudCwgJG1hdGNoICkgKQoJCQkJY29udGludWU7CgkJCSRtID0gZW1wdHkoJG1hdGNoWzNdKSA/ICRtYXRjaFs0XSA6ICRtYXRjaFszXTsKCQkJaWYgKCAhaXNzZXQoICRzcGxpdF9wYXR0ZXJuICkgKQoJCQkJJHVybHNbJG5hbWVdWyRhdHRyXVtdID0gJG07CgkJCWVsc2UKCQkJewoJCQkJJG1zcGxpdCA9IHByZWdfc3BsaXQoICRzcGxpdF9wYXR0ZXJuLCAkbSApOwoJCQkJZm9yZWFjaCAoICRtc3BsaXQgYXMgJG1zICkKCQkJCQkkdXJsc1skbmFtZV1bJGF0dHJdW10gPSAkbXM7CgkJCX0KCQl9Cgl9CgoJLy8gTWF0Y2ggbWV0YSBodHRwLWVxdWl2IGVsZW1lbnRzCglmb3JlYWNoICggJG1hdGNoX21ldGFzIGFzICRtYXRjaF9tZXRhICkKCXsKCQkkYXR0cl9wYXR0ZXJuICAgID0gJy9odHRwLWVxdWl2PSI/JyAuICRtYXRjaF9tZXRhIC4gJyI/L2l1JzsKCQkkY29udGVudF9wYXR0ZXJuID0gJy9jb250ZW50JyAgLiAkdmFsdWVfcGF0dGVybiAuICcvaXUnOwoJCSRyZWZyZXNoX3BhdHRlcm4gPSAnL1xkKjtccyoodXJsPSk/KC4qKSQvaXUnOwoJCWZvcmVhY2ggKCAkZWxlbWVudHMgYXMgJGVsZW1lbnQgKQoJCXsKCQkJaWYgKCAhcHJlZ19tYXRjaCggJy9ebWV0YS9pdScsICRlbGVtZW50ICkgfHwKCQkJCSFwcmVnX21hdGNoKCAkYXR0cl9wYXR0ZXJuLCAkZWxlbWVudCApIHx8CgkJCQkhcHJlZ19tYXRjaCggJGNvbnRlbnRfcGF0dGVybiwgJGVsZW1lbnQsICRtYXRjaCApICkKCQkJCWNvbnRpbnVlOwoJCQkkbSA9IGVtcHR5KCRtYXRjaFszXSkgPyAkbWF0Y2hbNF0gOiAkbWF0Y2hbM107CgkJCWlmICggJG1hdGNoX21ldGEgIT0gJ3JlZnJlc2gnICkKCQkJCSR1cmxzWydtZXRhJ11bJ2h0dHAtZXF1aXYnXVtdID0gJG07CgkJCWVsc2UgaWYgKCBwcmVnX21hdGNoKCAkcmVmcmVzaF9wYXR0ZXJuLCAkbSwgJG1hdGNoICkgKQoJCQkJJHVybHNbJ21ldGEnXVsnaHR0cC1lcXVpdiddW10gPSAkbWF0Y2hbMl07CgkJfQoJfQoKCS8vIE1hdGNoIHN0eWxlIGF0dHJpYnV0ZXMKCSR1cmxzWydzdHlsZSddID0gYXJyYXkoICk7Cgkkc3R5bGVfcGF0dGVybiA9ICcvc3R5bGUnIC4gJHZhbHVlX3BhdHRlcm4gLiAnL2l1JzsKCWZvcmVhY2ggKCAkZWxlbWVudHMgYXMgJGVsZW1lbnQgKQoJewoJCWlmICggIXByZWdfbWF0Y2goICRzdHlsZV9wYXR0ZXJuLCAkZWxlbWVudCwgJG1hdGNoICkgKQoJCQljb250aW51ZTsKCQkkbSA9IGVtcHR5KCRtYXRjaFszXSkgPyAkbWF0Y2hbNF0gOiAkbWF0Y2hbM107CgkJJHN0eWxlX3VybHMgPSBleHRyYWN0X2Nzc191cmxzKCAkbSApOwoJCWlmICggIWVtcHR5KCAkc3R5bGVfdXJscyApICkKCQkJJHVybHNbJ3N0eWxlJ10gPSBhcnJheV9tZXJnZV9yZWN1cnNpdmUoCgkJCQkkdXJsc1snc3R5bGUnXSwgJHN0eWxlX3VybHMgKTsKCX0KCgkvLyBNYXRjaCBzdHlsZSBib2RpZXMKCWlmICggcHJlZ19tYXRjaF9hbGwoICcvPHN0eWxlW14+XSo+KC4qPyk8XC9zdHlsZT4vc2l1JywgJHRleHQsICRzdHlsZV9ib2RpZXMgKSApCgl7CgkJZm9yZWFjaCAoICRzdHlsZV9ib2RpZXNbMV0gYXMgJHN0eWxlX2JvZHkgKQoJCXsKCQkJJHN0eWxlX3VybHMgPSBleHRyYWN0X2Nzc191cmxzKCAkc3R5bGVfYm9keSApOwoJCQlpZiAoICFlbXB0eSggJHN0eWxlX3VybHMgKSApCgkJCQkkdXJsc1snc3R5bGUnXSA9IGFycmF5X21lcmdlX3JlY3Vyc2l2ZSgKCQkJCQkkdXJsc1snc3R5bGUnXSwgJHN0eWxlX3VybHMgKTsKCQl9Cgl9CglpZiAoIGVtcHR5KCR1cmxzWydzdHlsZSddKSApCgkJdW5zZXQoICR1cmxzWydzdHlsZSddICk7CgoJcmV0dXJuICR1cmxzOwp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/function.admin_associationstab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCi8qKg0KICogTW9kdWxlOiBTY3JpcHREZXBsb3kgLSBNaW5pZnkgYW5kIGRlcGxveW1lbnQgb2YgSlMgQ1NTIGFuZCBIVE1MDQogKiANCiAqIA0KICogQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykNCiAqIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnDQogKiBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvc2NyaXB0ZGVwbG95Lw0KICogDQogKiBAcGFja2FnZSBTY3JpcHREZXBsb3kNCiAqIEBhdXRob3IgamVyZW15QmFzcyA8amVyZW15QmFzc0BjYWJsZW9uZS5uZXQ+DQogKiBAY29weXJpZ2h0IEplcmVteSBCYXNzDQogKiBAbGljZW5zZSBodHRwOi8vd3d3LmdudS5vcmcvY29weWxlZnQvZ3BsLmh0bWwgRnJlZWx5IGF2YWlsYWJsZSB1bmRlciBHUEwNCiAqLyANCg0KJGRiID0mICR0aGlzLT5HZXREYigpOw0KZ2xvYmFsICRnQ21zOw0KJGNvbmZpZyA9JiAkZ0Ntcy0+R2V0Q29uZmlnKCk7DQoNCgkkZGlyID0gJGNvbmZpZ1sncm9vdF91cmwnXTsNCgkkQWRtaW5kaXIgPSAkZGlyLicvJy4kY29uZmlnWydhZG1pbl9kaXInXTsNCg0KJGFkbWludGhlbWUgPSYgJGdDbXMtPnZhcmlhYmxlc1snYWRtaW50aGVtZSddOw0KJHRlbXBsYXRlb3BzID0mICRnQ21zLT5HZXRUZW1wbGF0ZU9wZXJhdGlvbnMoKTsNCiR0ZW1wbGF0ZXMgPSAkdGVtcGxhdGVvcHMtPkxvYWRUZW1wbGF0ZXMoKTsNCiRDTVNfVVNFUl9LRVk9Q01TX1NFQ1VSRV9QQVJBTV9OQU1FLic9Jy4kX1NFU1NJT05bQ01TX1VTRVJfS0VZXTsNCiRxdWVyeSA9ICdTRUxFQ1QgdGVtcGxhdGVfaWQgRlJPTSAnLlNEX1RBQkxFOw0KJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCAkcXVlcnkgKTsNCiRoYW5kbGVkX3RlbXBsYXRlcyA9IGFycmF5KCk7DQp3aGlsZSggJGRicmVzdWx0ICYmICgkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKSApDQogIHsNCiAgICAkaGFuZGxlZF90ZW1wbGF0ZXNbXSA9ICRyb3dbJ3RlbXBsYXRlX2lkJ107DQogIH0NCg0KJHJvd2NsYXNzID0gJ3JvdzEnOw0KJGVudHJpZXMgPSBhcnJheSgpOw0KZm9yZWFjaCggJHRlbXBsYXRlcyBhcyAkb25ldGVtcGxhdGUgKXsNCiAgaWYoICRvbmV0ZW1wbGF0ZS0+YWN0aXZlICl7DQogICAgICAkb25ldGVtcGxhdGUtPmFjdGl2ZV9mbGFnID0gJzxpbWcgc3JjPSInLiRkaXIuJy9tb2R1bGVzL1NjcmlwdERlcGxveS9pbWFnZXMvc3RhdGUtdHJ1ZS5wbmciIGFsdD0iJy4kdGhpcy0+TGFuZyAoJ3llcycpLiciIC8+JzsNCiAgICB9IGVsc2V7DQogICAgICAkb25ldGVtcGxhdGUtPmFjdGl2ZV9mbGFnID0nPGltZyBzcmM9IicuJGRpci4nL21vZHVsZXMvU2NyaXB0RGVwbG95L2ltYWdlcy9zdGF0ZS1mYWxzZS5wbmciIGFsdD0iJy4kdGhpcy0+TGFuZyAoJ25vJykuJyIgLz4nOw0KICAgIH0NCg0KICBpZiggJG9uZXRlbXBsYXRlLT5kZWZhdWx0ICl7DQogICAgICAkb25ldGVtcGxhdGUtPmRlZmF1bHRfZmxhZyA9ICc8aW1nIHNyYz0iJy4kZGlyLicvbW9kdWxlcy9TY3JpcHREZXBsb3kvaW1hZ2VzL3N0YXRlLXRydWUucG5nIiBhbHQ9IicuJHRoaXMtPkxhbmcgKCd5ZXMnKS4nIiAvPic7DQogICAgfWVsc2V7DQogICAgICAkb25ldGVtcGxhdGUtPmRlZmF1bHRfZmxhZyA9ICc8aW1nIHNyYz0iJy4kZGlyLicvbW9kdWxlcy9TY3JpcHREZXBsb3kvaW1hZ2VzL3N0YXRlLWZhbHNlLnBuZyIgYWx0PSInLiR0aGlzLT5MYW5nICgnbm8nKS4nIiAvPic7DQogICAgfQ0KDQogICRvbmV0ZW1wbGF0ZS0+dXNlZF9jb3VudCA9ICR0ZW1wbGF0ZW9wcy0+VXNhZ2VDb3VudCgkb25ldGVtcGxhdGUtPklkKCkpOw0KDQogIGlmKCAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU3R5bGVzaGVldCBBc3NvY2lhdGlvbnMnKSApIHsNCiAgICAgICRvbmV0ZW1wbGF0ZS0+ZWRpdGNzc19saW5rID0NCgkkdGhpcy0+Q3JlYXRlTGluaygkaWQsJ2FkbWluX2VkaXRjc3Nhc3NvYycsJHJldHVybmlkLA0KCQkJICAkYWRtaW50aGVtZS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vY3NzLmdpZicsJHRoaXMtPkxhbmcoJ2VkaXRjc3MnKSwnJywnJywnc3lzdGVtaWNvbicpLA0KCQkJICBhcnJheSgndGVtcGxhdGVpZCc9PiRvbmV0ZW1wbGF0ZS0+SWQoKSkpOw0KICAgIH0NCg0KICBpZiggJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFRlbXBsYXRlcycpICkgew0KDQogICAgLy8gICRvbmV0ZW1wbGF0ZS0+ZWRpdF9saW5rID0gJzxhIGhyZWY9ImVkaXR0ZW1wbGF0ZS5waHA/Jy4kQ01TX1VTRVJfS0VZLicmdGVtcGxhdGVfaWQ9Jy4kb25ldGVtcGxhdGUtPklkKCkuJyZmcm9tPW1vZHVsZV9TY3JpcHREZXBsb3kiPjxpbWcgc3JjPSIuLi9tb2R1bGVzL1NjcmlwdERlcGxveS9pbWFnZXMvZWRpdC5wbmciIGFsdD0iJy4kdGhpcy0+TGFuZyAoJ2VkaXR0ZW1wbGF0ZScpLiciIC8+PC9hPic7DQoJICANCgkgICRvbmV0ZW1wbGF0ZS0+ZWRpdF9saW5rID0gJHRoaXMtPkNyZWF0ZUxpbmsoICRpZCwgJ2VkaXRfdGVtcGxhdGUnLCAkcmV0dXJuaWQsJzxpbWcgc3JjPSInLiRkaXIuJy9tb2R1bGVzL1NjcmlwdERlcGxveS9pbWFnZXMvZWRpdC5wbmciIGFsdD0iJy4kdGhpcy0+TGFuZyAoJ2VkaXR0ZW1wbGF0ZScpLiciIC8+JyxhcnJheSAoJ2FjdGl2ZV90YWInID0+J3RlbXBsYXRlX21hbmcnLCdtb2RlJz0+J2VkaXQnLCd0ZW1wbGF0ZV9pZCc9PiRvbmV0ZW1wbGF0ZS0+SWQoKSkpOw0KCSAgDQoNCiAgICB9DQoNCiAgaWYoICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ1JlbW92ZSBUZW1wbGF0ZXMnKSAmJg0KICAgICAgJG9uZXRlbXBsYXRlLT51c2VkX2NvdW50ID09IDAgKQ0KICAgIHsNCiAgICAgICRvbmV0ZW1wbGF0ZS0+ZGVsZXRlX2xpbmsgPSAnPGEgaHJlZj0iZGVsZXRldGVtcGxhdGUucGhwPycuJENNU19VU0VSX0tFWS4nJnRlbXBsYXRlX2lkPScuJG9uZXRlbXBsYXRlLT5JZCgpLicmZnJvbT1TY3JpcHREZXBsb3kiPjxpbWcgc3JjPSInLiRkaXIuJy9tb2R1bGVzL1NjcmlwdERlcGxveS9pbWFnZXMvZGVsZXRlLnBuZyIgYWx0PSInLiR0aGlzLT5MYW5nICgnZGVsZXRldGVtcGxhdGUnKS4nIiAvPjwvYT4nOw0KCSAgLy8kdGhpcy0+Q3JlYXRlTGluayggJGlkLCAnZGVsZXRldGVtcGxhdGUnLCAkcmV0dXJuaWQsJzxpbWcgc3JjPSIuLi9tb2R1bGVzL1NjcmlwdERlcGxveS9pbWFnZXMvZGVsZXRlLnBuZyIgYWx0PSInLiR0aGlzLT5MYW5nICgnZGVsZXRlJykuJyIgLz4nLGFycmF5ICgnU2NyaXB0SUQnID0+ICRrZXkpLCR0aGlzLT5MYW5nICgnYXJleW91c3VyZScpKTsNCiAgICB9DQoNCiAgLy8gaWYgd2UgaGF2ZSB0aGlzIGl0ZW0gaW4gb3VyIHRhYmxlcywgd2UgbWFyayBpdCBhcyAndmFsaWQnIA0KICAkZm91bmQgPSBmYWxzZTsNCiAgZm9yZWFjaCggJGhhbmRsZWRfdGVtcGxhdGVzIGFzICRvaHQgKQ0KICAgIHsNCiAgICAgIGlmKCAkb2h0ID09ICRvbmV0ZW1wbGF0ZS0+aWQgKQ0KCXsNCgkgICRmb3VuZCA9IHRydWU7DQoJICBicmVhazsNCgl9DQogICAgfQ0KICBpZiggJGZvdW5kICkNCiAgICB7DQogICAgICAkb25ldGVtcGxhdGUtPnZhbGlkX2ZsYWcgPSANCgkkYWRtaW50aGVtZS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vdHJ1ZS5naWYnLCAkdGhpcy0+TGFuZygneWVzJyksJycsJycsJ3N5c3RlbWljb24nKTsNCiAgICB9DQogIGVsc2UNCiAgICB7DQogICAgICAkb25ldGVtcGxhdGUtPnZhbGlkX2ZsYWcgPQ0KCSRhZG1pbnRoZW1lLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9mYWxzZS5naWYnLCAkdGhpcy0+TGFuZygnbm8nKSwnJywnJywnc3lzdGVtaWNvbicpOw0KICAgIH0NCg0KICAkb25ldGVtcGxhdGUtPnJvd2NsYXNzID0gJHJvd2NsYXNzOw0KICAkcm93Y2xhc3MgPSAoJHJvd2NsYXNzPT0ncm93MScpPydyb3cyJzoncm93MSc7DQogICRlbnRyaWVzW10gPSAkb25ldGVtcGxhdGU7DQp9DQoNCmlmKCAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdBZGQgVGVtcGxhdGVzJykgKQ0KICB7DQogICAvLyAkdXJsPSdhZGR0ZW1wbGF0ZS5waHA/Jy4kQ01TX1VTRVJfS0VZLicmZnJvbT1TY3JpcHREZXBsb3knOw0KICAgICRzbWFydHktPmFzc2lnbignYWRkX2xpbmsnLA0KCQkJCSAgJHRoaXMtPkNyZWF0ZUxpbmsoICRpZCwgJ2FkZF90ZW1wbGF0ZScsICRyZXR1cm5pZCwNCgkJCQkJCQknPGltZyBzcmM9IicuJGRpci4nL21vZHVsZXMvU2NyaXB0RGVwbG95L2ltYWdlcy9hZGQucG5nIiBhbHQ9IicuJHRoaXMtPkxhbmcoJ3Byb21wdF9hZGR0ZW1wbGF0ZScpLiciIC8+Jy4kdGhpcy0+TGFuZygncHJvbXB0X2FkZHRlbXBsYXRlJyksDQoJCQkJCQkJIGFycmF5KCdhY3RpdmVfdGFiJyA9PiAndGVtcGxhdGVfbWFuZycsDQoJCQkJCQkJICAgJ21vZGUnID0+ICdhZGQnLA0KCQkJCQkJCSAgICdzdGF0dXMnID0+ICduZXcnDQoJCQkJCQkJICAgKSkpOw0KLy8JCSAgICAnPGEgaHJlZj0iJy4kdXJsLiciPicuJGFkbWludGhlbWUtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL25ld29iamVjdC5naWYnLCBsYW5nKCdhZGR0ZW1wbGF0ZScpLCcnLCcnLCdzeXN0ZW1pY29uJykuJzwvYT4nLg0KLy8JCSAgICAnIDxhIGNsYXNzPSJwYWdlb3B0aW9ucyIgaHJlZj0iJy4kdXJsLiciPicubGFuZygiYWRkdGVtcGxhdGUiKS4nPC9hPicpOw0KDQoJDQogIH0NCg0KJHNtYXJ0eS0+YXNzaWduKCd0ZW1wbGF0ZXMnLCRlbnRyaWVzKTsNCiRzbWFydHktPmFzc2lnbignaWR0ZXh0JywkdGhpcy0+TGFuZygnaWQnKSk7DQokc21hcnR5LT5hc3NpZ24oJ3VzZWR0ZXh0JywkdGhpcy0+TGFuZygndXNhZ2VfY291bnQnKSk7DQokc21hcnR5LT5hc3NpZ24oJ25hbWV0ZXh0JywkdGhpcy0+TGFuZygnbmFtZScpKTsNCiRzbWFydHktPmFzc2lnbignYWN0aXZldGV4dCcsJHRoaXMtPkxhbmcoJ2FjdGl2ZScpKTsNCiRzbWFydHktPmFzc2lnbignZGVmYXVsdHRleHQnLCR0aGlzLT5MYW5nKCdkZWZhdWx0JykpOw0KJHNtYXJ0eS0+YXNzaWduKCd2YWxpZHRleHQnLCR0aGlzLT5MYW5nKCd2YWxpZCcpKTsNCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnYXNzb2NpYXRpb25zLnRwbCcpOw0KDQovLyBFT0YNCj8+DQo=]]></data>
	</file>
	<file>
	  <filename>/function.admin_deployment_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE1vZHVsZTogU2NyaXB0RGVwbG95IC0gUGF5UGFsIEJ1dHRvbiBDcmVhdG9yIGFuZCBNYW5hZ2VyIA0KIyBNb2QgZGVzaWduZWQgYnkgamVyZW15QmFzcyAoamVyZW15QmFzc0BjYWJsZW9uZS5uZXQpDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQ0KIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZw0KIyBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvU2NyaXB0RGVwbG95Lw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkNCiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkNCiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3INCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4NCiMNCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsDQojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mDQojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUNCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4NCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UNCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUNCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0ENCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTA0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsNCiRjb25maWcgPSYgJGdDbXMtPkdldENvbmZpZygpOw0KDQoJJGRpciA9ICRjb25maWdbJ3Jvb3RfdXJsJ107DQoJJEFkbWluZGlyID0gJGRpci4nLycuJGNvbmZpZ1snYWRtaW5fZGlyJ107DQoJJHVybGV4dD1DTVNfU0VDVVJFX1BBUkFNX05BTUUuJz0nLiRfU0VTU0lPTltDTVNfVVNFUl9LRVldOw0KCSRpbWdIZWxwRj0nJm5ic3A7PGltZyBzcmM9IicuJEFkbWluZGlyLicvdGhlbWVzL05DbGVhbkdyZXkvaW1hZ2VzL2ljb25zL3N5c3RlbS9pbmZvLWV4dGVybmFsLmdpZiIgYWx0PSInLiR1cmxleHQuJyIgY2xhc3M9InN5c3RlbWljb24iIHRpdGxlPSIiIHJlbD0iJzsNCgkkaW1nSGVscEI9JyIvPic7DQoNCiR0aGlzLT5zbWFydHktPmFzc2lnbignZm9ybXN0YXJ0JywgJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsInNhdmVfZGVwbG95bWVudF9zZXR0aW5ncyIpKTsNCiR0aGlzLT5zbWFydHktPmFzc2lnbignZm9ybWVuZCcsICR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOw0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ3NhdmVfZGVwbG95bWVudF9zZXR0aW5ncycsJHRoaXMtPkxhbmcoInNhdmVzZXR0aW5ncyIpKSk7DQoNCiR2YWx1ZXM9YXJyYXkoJHRoaXMtPkxhbmcoImxlYXZlY29kZSIpPT4ibm9jaGFuZ2UiLA0KICAkdGhpcy0+TGFuZygiZm9ybWF0Y29kZSIpPT4ibmljZSIsDQogIC8vJHRoaXMtPkxhbmcoImNsZWFuY29kZSIpPT4iY2xlYW4iLA0KICAkdGhpcy0+TGFuZygic2NyYW1ibGVjb2RlIik9PiJzY3JhbWJsZSIsDQopOw0KDQokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3NtYXJ0eU9uX2xhYmVsJywgJHRoaXMtPkxhbmcoJ3NtYXJ0eU9uX2xhYmVsJykuJGltZ0hlbHBGLiJzbWFydHlPbiIuJGltZ0hlbHBCKTsNCiR0aGlzLT5zbWFydHktPmFzc2lnbignc21hcnR5T25faW5wdXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRSYWRpb0dyb3VwICgkaWQsICdzbWFydHlPbicsIGFycmF5KCdObyc9PicwJywnWWVzJz0+JzEnKSwgJHRoaXMtPkdldFByZWZlcmVuY2UoJ3NtYXJ0eU9uJywnMCcpLCcnLCcmbmJzcDsmbmJzcDsmbmJzcDsnKSk7DQoNCiRyb290VVJMPSR0aGlzLT5HZXRQcmVmZXJlbmNlKCdyb290VVJMJywnJyk7DQppZigkcm9vdFVSTD09JycpeyRyb290VVJMY2s9MDt9ZWxzZXskcm9vdFVSTGNrPTE7fQ0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdyb290VVJMT3B0aW9uX2lucHV0JywNCgkJCSR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94ICgkaWQsJ3Jvb3RVUkxPcHRpb25faW5wdXQnLCAgJzEnLCAkcm9vdFVSTGNrKSApOyAgDQokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3Jvb3RVUkxfaW5wdXQnLA0KCQkkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCAkaWQsICdyb290VVJMX2lucHV0JywgICRyb290VVJMLCA0MCApKTsNCiR0aGlzLT5zbWFydHktPmFzc2lnbigncm9vdFVSTE9wdGlvbl9sYWJlbCcsICR0aGlzLT5MYW5nKCdyb290VVJMT3B0aW9uX2xhYmVsJykuJGltZ0hlbHBGLiJnbG9iYWx1cmwiLiRpbWdIZWxwQik7DQokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ0dyb290VVJMJywgJHRoaXMtPkxhbmcoJ0dyb290VVJMJykpOw0KDQoNCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2ZpbGVUaW1lX2Nzc191cmxzX2xhYmVsJywgJHRoaXMtPkxhbmcoJ2ZpbGVUaW1lX2Nzc191cmxzX2xhYmVsJykuJGltZ0hlbHBGLiJmaWxlVGltZV9jc3NfdXJscyIuJGltZ0hlbHBCKTsNCiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2ZpbGVUaW1lX2Nzc191cmxzX2lucHV0JywgJHRoaXMtPkNyZWF0ZUlucHV0UmFkaW9Hcm91cCAoJGlkLCAnZmlsZVRpbWVfY3NzX3VybHMnLCBhcnJheSgnTm8nPT4nMCcsJ1llcyc9PicxJyksICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdmaWxlVGltZV9jc3NfdXJscycsJzAnKSwnJywnJm5ic3A7Jm5ic3A7Jm5ic3A7JykpOw0KDQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdwcmVsb2FkX0NTU2ltYWdlVGl0bGUnLCAkdGhpcy0+TGFuZygncHJlbG9hZF9DU1NpbWFnZVRpdGxlJykpOw0KCSR0aGlzLT5zbWFydHktPmFzc2lnbigncHJlbG9hZF9DU1NpbWFnZV9sYWJlbCcsICR0aGlzLT5MYW5nKCdwcmVsb2FkX0NTU2ltYWdlX2xhYmVsJykuJGltZ0hlbHBGLiJwcmVsb2FkX0NTU2ltYWdlIi4kaW1nSGVscEIpOw0KICAgICR0aGlzLT5zbWFydHktPmFzc2lnbigncHJlbG9hZF9DU1NpbWFnZV9pbnB1dCcsICR0aGlzLT5DcmVhdGVJbnB1dFJhZGlvR3JvdXAgKCRpZCwgJ3ByZWxvYWRfQ1NTaW1hZ2VfaW5wdXQnLCBhcnJheSgnTm8nPT4nMCcsJ1llcyc9PicxJyksICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdwcmVsb2FkX0NTU2ltYWdlJywxKSwnJywnJm5ic3A7Jm5ic3A7Jm5ic3A7JykpOw0KDQoNCiR0aGlzLT5zbWFydHktPmFzc2lnbignbWFuZ2xldHlwZXRleHQnLCAkdGhpcy0+TGFuZygibWFuZ2xldHlwZXRleHQiKSk7DQokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ21hbmdsZXR5cGUnLCR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwibWFuZ2xldHlwZSIsJHZhbHVlcywtMSwkdGhpcy0+R2V0UHJlZmVyZW5jZSgibWFuZ2xldHlwZSIsImZvcm1hdCIpKSk7DQoNCiR0aGlzLT5zbWFydHktPmFzc2lnbignaGlkZW1lc3NhZ2VzdGV4dCcsICR0aGlzLT5MYW5nKCJoaWRlbWVzc2FnZXN0ZXh0IikpOw0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdoaWRlbWVzc2FnZXNpbnB1dCcsJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tCb3goJGlkLCJoaWRlbWVzc2FnZXMiLCJ0cnVlIiwkdGhpcy0+R2V0UHJlZmVyZW5jZSgiaGlkZW1lc3NhZ2VzIikpKTsNCg0KDQokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2RlYnVndGV4dCcsICR0aGlzLT5MYW5nKCJkZWJ1Z3RleHQiKSk7DQokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2RlYnVnaW5wdXQnLCR0aGlzLT5DcmVhdGVJbnB1dENoZWNrQm94KCRpZCwiZGVidWciLCJ0cnVlIiwkdGhpcy0+R2V0UHJlZmVyZW5jZSgiZGVidWciLCJmYWxzZSIpKSk7DQoNCg0KJHZhbHVlcz1hcnJheSgkdGhpcy0+TGFuZygiYnJpZWYiKT0+ImJyaWVmIiwNCiAgJHRoaXMtPkxhbmcoInZlcmJvc2UiKT0+InZlcmJvc2UiLA0KKTsNCiR0aGlzLT5zbWFydHktPmFzc2lnbignZGVidWdsZXZlbHRleHQnLCAkdGhpcy0+TGFuZygiZGVidWdsZXZlbHRleHQiKSk7DQokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2RlYnVnbGV2ZWxpbnB1dCcsJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCJkZWJ1Z2xldmVsIiwkdmFsdWVzLC0xLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCJkZWJ1Z2xldmVsIiwiYnJpZWYiKSkpOw0KDQokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2ZvcmNlbG93ZXJ0YWdzdGV4dCcsICR0aGlzLT5MYW5nKCJmb3JjZWxvd2VydGFnc3RleHQiKSk7DQokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2ZvcmNlbG93ZXJ0YWdzaW5wdXQnLCR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwiZm9yY2Vsb3dlcnRhZ3MiLCIxIiwkdGhpcy0+R2V0UHJlZmVyZW5jZSgiZm9yY2Vsb3dlcnRhZ3MiLCIwIikpKTsNCiR0aGlzLT5zbWFydHktPmFzc2lnbignZm9yY2Vsb3dlcnRhZ3NoZWxwJywgJHRoaXMtPkxhbmcoImZvcmNlbG93ZXJ0YWdzaGVscCIpKTsNCg0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdpbmRlbnR3aWR0aHRleHQnLCAkdGhpcy0+TGFuZygiaW5kZW50d2lkdGh0ZXh0IikpOw0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdpbmRlbnR3aWR0aGlucHV0JywkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwiaW5kZW50d2lkdGgiLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCJpbmRlbnR3aWR0aCIsIjIiKSwyLDIpKTsNCiR0aGlzLT5zbWFydHktPmFzc2lnbignc3BhY2VzJywgJHRoaXMtPkxhbmcoInNwYWNlcyIpKTsNCiR0aGlzLT5zbWFydHktPmFzc2lnbignY29kZWZpeGVzJywgJHRoaXMtPkxhbmcoImNvZGVmaXhlcyIpKTsNCg0KZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdhZG1pbl9EZXBsb3ltZW50c2V0dGluZ3MudHBsJyk7DQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/function.admin_grouplist_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCi8qKg0KICogTW9kdWxlOiBTY3JpcHREZXBsb3kgLSBNaW5pZnkgYW5kIGRlcGxveW1lbnQgb2YgSlMgQ1NTIGFuZCBIVE1MDQogKiANCiAqIA0KICogQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykNCiAqIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnDQogKiBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvc2NyaXB0ZGVwbG95Lw0KICogDQogKi8gDQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7DQoNCgkJLy9nbG9iYWwgJGdDbXM7DQoJCSRjb25maWcgPSYgJGdDbXMtPkdldENvbmZpZygpOw0KDQoJJGRpciA9ICRjb25maWdbJ3Jvb3RfdXJsJ107DQoJJEFkbWluZGlyID0gJGRpci4nLycuJGNvbmZpZ1snYWRtaW5fZGlyJ107DQoJCSRmYWxzZWltYWdlMSA9ICRnQ21zLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vZmFsc2UuZ2lmJywnbWFrZSBkZWZhdWx0JywnJywnJywnc3lzdGVtaWNvbicpOw0KCQkkdHJ1ZWltYWdlMSA9ICRnQ21zLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vdHJ1ZS5naWYnLCdkZWZhdWx0JywnJywnJywnc3lzdGVtaWNvbicpOw0KCQkkYWxsZGJQcm9maWxlcyA9ICR0aGlzLT5nZXRHcm91cHNMaXN0KCk7DQoJCSRyb3dhcnJheSA9IGFycmF5KCk7DQoJCSRyb3djbGFzcyA9ICdyb3cxJzsNCgkJDQoNCg0KCQlmb3JlYWNoKCRhbGxkYlByb2ZpbGVzIGFzICRrZXkgPT4gJG9uZWRiUHJvZmlsZSApew0KCQkJJEdyb3VwdFNldD0gJG9uZWRiUHJvZmlsZVsnR3JvdXB0U2V0J107DQoJCQkkU2NyaXB0TnVtPSAkdGhpcy0+R2V0R3JvdXBzU2NyaXB0TlVNKCRrZXkpOw0KCQkJJEdyb3VwdFR5cGU9ICRvbmVkYlByb2ZpbGVbJ0dyb3VwdFR5cGUnXTsNCgkJCQ0KDQoJCQkkdGhpcy0+RmlyZURlYnVnKCdlcnJvcicsJGtleSk7Ly88PDw8LS0tLS0tRmlyZSBQSFAgbWVzc2FnZQ0KCQkJJHJvdyA9IG5ldyBTdGRDbGFzcygpOw0KCQkJJHJvdy0+bmFtZSA9ICR0aGlzLT5DcmVhdGVMaW5rKCAkaWQsICdlZGl0YXNzaWdubWVudCcsICRyZXR1cm5pZCwNCgkJCQkJCQkka2V5LCBhcnJheSgnR3JvdXB0SUQnID0+ICRrZXksDQoJCQkJCQkJCQknYWN0aXZlX3RhYicgPT4gJ3NjcmlwdF90ZW1wbGF0ZScsDQoJCQkJCQkJCQknbW9kZSc9PidlZGl0JykpOw0KCQkJDQoJCQlpZihpc3NldCgkU2NyaXB0TnVtKSYmJFNjcmlwdE51bSE9MCl7DQoJCQkJJHJvdy0+U2FtcGxlPSc8YSBocmVmPSIjIiBjbGFzcz0iZ2V0VGFnIiAgdGl0bGU9XCcnLiR0aGlzLT5MYW5nKCdnZXRfdGFnJykuJyB7U2NyaXB0RGVwbG95IGdyb3VwSUQ9IicuJGtleS4nIiBTdHlwZT0iJy4kR3JvdXB0VHlwZS4nIn1cJyA+PGltZyBzcmM9IicuJGRpci4nL21vZHVsZXMvU2NyaXB0RGVwbG95L2ltYWdlcy9HZXRUYWcucG5nIiBhbHQ9XCcnLiR0aGlzLT5MYW5nKCdnZXRfdGFnJykuJyB7U2NyaXB0RGVwbG95IGdyb3VwSUQ9IicuJGtleS4nIiBTdHlwZT0iJy4kR3JvdXB0VHlwZS4nIn1cJyAgLz5HZXQgVGFnPHNwYW4gY2xhc3M9ImhpZGRlbiBjb3B5YXJlYSI+e1NjcmlwdERlcGxveSBncm91cElEPSInLiRrZXkuJyIgU3R5cGU9IicuJEdyb3VwdFR5cGUuJyJ9PC9zcGFuPjwvYT4nOw0KCQkJfWVsc2V7DQoJCQkJJHJvdy0+U2FtcGxlPSc8aDU+Jy4kdGhpcy0+TGFuZyAoJ2VtdHB5R3JvdXAnKS4nPC9oNT4nOw0KCQkJfQ0KCQkJDQoJCQkkcm93LT5kZWZhdWx0ID0gJHRoaXMtPkNyZWF0ZUxpbmsoICRpZCwgJ2VkaXRhc3NpZ25tZW50JywgJHJldHVybmlkLA0KCQkJCQkJCSRHcm91cHRTZXQsIGFycmF5KCdHcm91cHRJRCcgPT4gJGtleSwNCgkJCQkJCQkJCSdhY3RpdmVfdGFiJyA9PiAnc2NyaXB0X3RlbXBsYXRlJywNCgkJCQkJCQkJCSdtb2RlJz0+J2VkaXQnKSk7DQoJCQkkcm93LT5CdG4gPSAka2V5Ow0KCQkJJHJvdy0+TnVtYmVyT2YgPSAkU2NyaXB0TnVtOw0KCQkJJHJvdy0+cm93Y2xhc3MgPSAkcm93Y2xhc3M7DQoJCQkkcm93LT50eXBlSWNvbiA9JzxkaXYgc3R5bGU9IiBwb3NpdGlvbjpyZWxhdGl2ZTsgaGVpZ2h0OjM1cHg7Ij48aW1nIHNyYz0iJy4kZGlyLicvbW9kdWxlcy9TY3JpcHREZXBsb3kvaW1hZ2VzLycuJEdyb3VwdFR5cGUuJy5wbmciIHdpZHRoPSIzNSIgaGVpZ2h0PSIzNSIgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlOyB6LWluZGV4Ojk7IHRvcDowcHg7Ii8+PC9kaXY+JzsNCgkJCSRyb3ctPkdyb3VwdFR5cGUgPSRHcm91cHRUeXBlOw0KCQkJJHJvdy0+ZWRpdGxpbmsgPSAkdGhpcy0+Q3JlYXRlTGluayggJGlkLCAnZWRpdGFzc2lnbm1lbnQnLCAkcmV0dXJuaWQsDQoJCQkJCQkJCSRnQ21zLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXS0+DQoJCQkJCQkJCURpc3BsYXlJbWFnZSAoJ2ljb25zL3N5c3RlbS9lZGl0LmdpZicsDQoJCQkJCQkJCQkgICR0aGlzLT5MYW5nICgnZWRpdCcpLCAnJywgJycsICdzeXN0ZW1pY29uJyksDQoJCQkJCQkJCWFycmF5ICgnR3JvdXB0SUQnID0+ICRrZXksDQoJCQkJCQkJCSAgICdhY3RpdmVfdGFiJyA9PiAnc2NyaXB0X3RlbXBsYXRlJywNCgkJCQkJCQkJICAgJ21vZGUnPT4nZWRpdCcpKTsNCgkJCQ0KCQkJDQoJCQkkcm93LT5kZWxldGVsaW5rID0gJHRoaXMtPkNyZWF0ZUxpbmsoICRpZCwgJ2RlbGV0ZWFzc2lnbm1lbnQnLCAkcmV0dXJuaWQsDQoJCQkJCQkJICAkZ0Ntcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPg0KCQkJCQkJCSAgRGlzcGxheUltYWdlICgnaWNvbnMvc3lzdGVtL2RlbGV0ZS5naWYnLA0KCQkJCQkJCQkJJHRoaXMtPkxhbmcgKCdkZWxldGUnKSwgJycsICcnLCAnc3lzdGVtaWNvbicpLA0KCQkJCQkJCSAgYXJyYXkgKCdHcm91cHRTZXQnID0+ICRrZXkpLA0KCQkJCQkJCSAgJHRoaXMtPkxhbmcgKCdhcmV5b3VzdXJlJykpOw0KCQkJDQoJCQlhcnJheV9wdXNoICgkcm93YXJyYXksICRyb3cpOw0KCQkJKCRyb3djbGFzcyA9PSAicm93MSIgPyAkcm93Y2xhc3MgPSAicm93MiIgOiAkcm93Y2xhc3MgPSAicm93MSIpOw0KCQl9DQoNCgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdOb19Hcm91cHMnLCAkdGhpcy0+TGFuZygnTm9fR3JvdXBzJykgKTsNCgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdBc3NfaXRlbXMnLCAkcm93YXJyYXkgKTsNCgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdBc3NfaGVhZGVyJywgJHRoaXMtPkxhbmcoJ0Fzc19oZWFkZXInKSk7DQoJCSR0aGlzLT5zbWFydHktPmFzc2lnbignU2FtcGxlQ29kZScsICR0aGlzLT5MYW5nKCdTYW1wbGVUYWcnKSk7Ly8kdGhpcy0+TGFuZygncHJvbXB0X2RlZmF1bHQnKQ0KCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ25ld1NjcmlwdEFzc2xpbmsnLA0KCQkJCSAgJHRoaXMtPkNyZWF0ZUxpbmsoICRpZCwgJ2VkaXRhc3NpZ25tZW50JywgJHJldHVybmlkLA0KCQkJCQkJCSAnPGltZyBzcmM9IicuJGRpci4nL21vZHVsZXMvU2NyaXB0RGVwbG95L2ltYWdlcy9hZGRfZ3JvdXAucG5nIiBhbHQ9IicuJHRoaXMtPkxhbmcgKCdwcm9tcHRfbmV3U2NyaXB0JykuJyIgLz4nLiR0aGlzLT5MYW5nKCdwcm9tcHRfbmV3U2NyaXB0QXNzJyksDQoJCQkJCQkJIGFycmF5KCdhY3RpdmVfdGFiJyA9PiAnc2NyaXB0X3RlbXBsYXRlJywNCgkJCQkJCQkgICAnbW9kZScgPT4gJ2FkZCcNCgkJCQkJCQkgICApKSk7DQoJCSR0aGlzLT5zbWFydHktPmFzc2lnbigkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsNCgkJZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdlZGl0QXNzaWdubWVudHMudHBsJyk7DQoNCj8+]]></data>
	</file>
	<file>
	  <filename>/function.admin_importExport_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE1vZHVsZTogU2NyaXB0RGVwbG95IC0gUGF5UGFsIEJ1dHRvbiBDcmVhdG9yIGFuZCBNYW5hZ2VyIA0KIyBNb2QgZGVzaWduZWQgYnkgamVyZW15QmFzcyAoamVyZW15QmFzc0BjYWJsZW9uZS5uZXQpDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQ0KIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZw0KIyBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvU2NyaXB0RGVwbG95Lw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkNCiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkNCiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3INCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4NCiMNCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsDQojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mDQojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUNCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4NCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UNCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUNCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0ENCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTA0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsNCg0KLyoNCiogQ1NTIHZhbGlkYXRpb24gc2V0dGluZ3MNCioNCioNCioNCiovDQokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2Zvcm1zdGFydEltcG9ydCcsICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCJzdGFydEltcG9ydCIpKTsNCiR0aGlzLT5zbWFydHktPmFzc2lnbignc3VibWl0SW1wb3J0JywkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCdzdGFydEltcG9ydCcsJHRoaXMtPkxhbmcoInN0YXJ0SW1wb3J0IikpKTsNCg0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmb3Jtc3RhcnRFeHBvcnQnLCAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwic3RhcnRFeHBvcnQiKSk7DQokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3N1Ym1pdEV4cG9ydCcsJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwnc3RhcnRFeHBvcnQnLCR0aGlzLT5MYW5nKCJzdGFydEV4cG9ydCIpKSk7DQoNCiR0aGlzLT5zbWFydHktPmFzc2lnbignZm9ybWVuZCcsICR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOw0KDQoNCi8vJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdUdXJuT05WYWxfbGFibGUnLCAkdGhpcy0+TGFuZygiVHVybk9OVmFsX2xhYmxlIikpOw0KLy8kdGhpcy0+c21hcnR5LT5hc3NpZ24oJ1R1cm5PTlZhbF9pbnB1dCcsICR0aGlzLT5DcmVhdGVJbnB1dFJhZGlvR3JvdXAgKCRpZCwgJ1R1cm5PTlZhbCcsIGFycmF5KCdObyc9PicwJywnWWVzJz0+JzEnKSwgJHRoaXMtPkdldFByZWZlcmVuY2UoJ1R1cm5PTlZhbCcsJzEnKSwnJywnJm5ic3A7Jm5ic3A7Jm5ic3A7JykpOw0KLy8NCi8vJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdob3RMaW5rQ2hlY2tfbGFibGUnLCAkdGhpcy0+TGFuZygiaG90TGlua0NoZWNrX2xhYmxlIikpOw0KLy8kdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2hvdExpbmtDaGVja19pbnB1dCcsICR0aGlzLT5DcmVhdGVJbnB1dFJhZGlvR3JvdXAgKCRpZCwgJ2hvdExpbmtDaGVjaycsIGFycmF5KCdObyc9PicwJywnWWVzJz0+JzEnKSwgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2hvdExpbmtDaGVjaycsJzEnKSwnJywnJm5ic3A7Jm5ic3A7Jm5ic3A7JykpOw0KLy8NCi8vJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdTaG93VmFsX2xhYmxlJywgJHRoaXMtPkxhbmcoIlNob3dWYWxfbGFibGUiKSk7DQovLyR0aGlzLT5zbWFydHktPmFzc2lnbignU2hvd1ZhbF9pbnB1dCcsICR0aGlzLT5DcmVhdGVJbnB1dFJhZGlvR3JvdXAgKCRpZCwgJ1Nob3dWYWwnLCBhcnJheSgnTm8nPT4nMCcsJ1llcyc9PicxJyksICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdTaG93VmFsJywnMCcpLCcnLCcmbmJzcDsmbmJzcDsmbmJzcDsnKSk7DQovLw0KLy8kdGhpcy0+c21hcnR5LT5hc3NpZ24oJ0NTU3Byb2ZpbGVfbGFibGUnLCAkdGhpcy0+TGFuZygiQ1NTcHJvZmlsZV9sYWJsZSIpKTsNCi8vJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdDU1Nwcm9maWxlX2lucHV0JywkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsIkNTU3Byb2ZpbGUiLCRDU1Nwcm9maWxlQXJyYXksJycsJHRoaXMtPkdldFByZWZlcmVuY2UoIkNTU3Byb2ZpbGUiLCJhbGwiKSkpOw0KLy8NCi8vJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd1c2VybWVkaXVtX2xhYmxlJywgJHRoaXMtPkxhbmcoInVzZXJtZWRpdW1fbGFibGUiKSk7DQovLyR0aGlzLT5zbWFydHktPmFzc2lnbigndXNlcm1lZGl1bV9pbnB1dCcsJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCJ1c2VybWVkaXVtIiwkdXNlcm1lZGl1bUFycmF5LCcnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCJ1c2VybWVkaXVtIiwiYWxsIikpKTsNCi8vDQovLyR0aGlzLT5zbWFydHktPmFzc2lnbignVkFMTGFuZ19sYWJsZScsICR0aGlzLT5MYW5nKCJWQUxMYW5nX2xhYmxlIikpOw0KLy8kdGhpcy0+c21hcnR5LT5hc3NpZ24oJ1ZBTExhbmdfaW5wdXQnLCR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwiVkFMTGFuZyIsJFZBTExhbmdBcnJheSwnJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgiVkFMTGFuZyIsImFsbCIpKSk7DQovLw0KLy8kdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3czY0NTU3dhcm5pbmdfbGFibGUnLCAkdGhpcy0+TGFuZygidzNjQ1NTd2FybmluZ19sYWJsZSIpKTsNCi8vJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd3M2NDU1N3YXJuaW5nX2lucHV0JywkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsInczY0NTU3dhcm5pbmciLCR3M2NDU1N3YXJuaW5nQXJyYXksJycsJHRoaXMtPkdldFByZWZlcmVuY2UoInczY0NTU3dhcm5pbmciLCJhbGwiKSkpOw0KLy8NCi8vJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmaWx0ZXJQcm9wX2xhYmxlJywgJHRoaXMtPkxhbmcoImZpbHRlclByb3BfbGFibGUiKSk7DQovLyR0aGlzLT5zbWFydHktPmFzc2lnbignZmlsdGVyUHJvcF9pbnB1dCcsJHRoaXMtPkNyZWF0ZVRleHRBcmVhKDAsJGlkLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCJmaWx0ZXJQcm9wIiwnJyksImZpbHRlclByb3AiLCdmaWx0ZXJQcm9wJywnJywnJywnJywxMCw4KSk7DQoNCg0KZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdhZG1pbl9pbXBvcnRFeHBvcnQudHBsJyk7DQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/function.admin_module_optionstab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE1vZHVsZTogU2NyaXB0RGVwbG95IC0gUGF5UGFsIEJ1dHRvbiBDcmVhdG9yIGFuZCBNYW5hZ2VyIA0KIyBNb2QgZGVzaWduZWQgYnkgamVyZW15QmFzcyAoamVyZW15QmFzc0BjYWJsZW9uZS5uZXQpDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQ0KIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZw0KIyBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvU2NyaXB0RGVwbG95Lw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkNCiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkNCiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3INCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4NCiMNCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsDQojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mDQojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUNCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4NCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UNCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUNCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0ENCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTA0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsNCg0KCSRjb25maWcgPSYgJGdDbXMtPkdldENvbmZpZygpOw0KDQoJJGRpciA9ICRjb25maWdbJ3Jvb3RfdXJsJ107DQoJJEFkbWluZGlyID0gJGRpci4nLycuJGNvbmZpZ1snYWRtaW5fZGlyJ107DQoJDQoJJHVybGV4dD1DTVNfU0VDVVJFX1BBUkFNX05BTUUuJz0nLiRfU0VTU0lPTltDTVNfVVNFUl9LRVldOw0KCSRpbWdIZWxwRj0nJm5ic3A7PGltZyBzcmM9IicuJEFkbWluZGlyLicvdGhlbWVzL05DbGVhbkdyZXkvaW1hZ2VzL2ljb25zL3N5c3RlbS9pbmZvLWV4dGVybmFsLmdpZiIgYWx0PSInLiR1cmxleHQuJyIgY2xhc3M9InN5c3RlbWljb24iIHRpdGxlPSIiIHJlbD0iJzsNCgkkaW1nSGVscEI9JyIvPic7DQoJJGNsZWFyID0gaXNzZXQoJHBhcmFtc1snY2xlYXInXSkgPyAkcGFyYW1zWydjbGVhciddIDogIiI7DQoNCiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ21vZF9wcmVmc190aXRsZScsICR0aGlzLT5MYW5nKCdtb2RfcHJlZnNfdGl0bGUnKSk7DQogICAgDQogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmb3JtX3N0YXJ0JywgJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsICdzYXZlX21vZHVsZV9vcHRpb25zJywgJHJldHVybmlkLCAncG9zdCcsICdtdWx0aXBhcnQvZm9ybS1kYXRhJykpOw0KICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignZm9ybV9lbmQnLCAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsNCiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2Zvcm1fc3VibWl0JywgJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ2Zvcm1fc3VibWl0JywgJHRoaXMtPkxhbmcoJ2Zvcm1fc3VibWl0JykpKTsNCgkNCgkNCg0KCQ0KDQoNCg0KCSR0aGlzLT5zbWFydHktPmFzc2lnbigncmV2aXNpb25UaXRsZScsICR0aGlzLT5MYW5nKCdyZXZpc2lvblRpdGxlJykpOw0KCSR0aGlzLT5zbWFydHktPmFzc2lnbigncmV2aXNpb25fbGFiZWwnLCAkdGhpcy0+TGFuZygncmV2aXNpb25fbGFiZWwnKS4kaW1nSGVscEYuInJldmlzaW9uX29wIi4kaW1nSGVscEIpOw0KICAgICR0aGlzLT5zbWFydHktPmFzc2lnbigncmV2aXNpb25faW5wdXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRSYWRpb0dyb3VwICgkaWQsICdyZXZpc2lvbl9pbnB1dCcsIGFycmF5KCdObyc9PicwJywnWWVzJz0+JzEnKSwgJHRoaXMtPkdldFByZWZlcmVuY2UoJ3JldmlzaW9uJywxKSwnJywnJm5ic3A7Jm5ic3A7Jm5ic3A7JykpOw0KDQoNCg0KCSR0aGlzLT5zbWFydHktPmFzc2lnbigncmV2aXNpb25fTElNSVRfbGFiZWwnLCAkdGhpcy0+TGFuZygncmV2aXNpb25fTElNSVRfbGFiZWwnKSk7DQogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdyZXZpc2lvbl9MSU1JVF9pbnB1dCcsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQgKCRpZCwgJ3JldmlzaW9uX0xJTUlUX2lucHV0JywgICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdyZXZpc2lvbl9MSU1JVCcsMCksMTAsNSkpOw0KDQoNCg0KDQoNCg0KDQoNCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2RlYnVnVCcsICR0aGlzLT5MYW5nKCdkZWJ1Z1QnKSk7DQoJJGZpcmVwaHBtb2R1bGU9JHRoaXMtPkdldE1vZHVsZUluc3RhbmNlKCdGaXJlUEhQRGVidWcnKTsNCgkgIGlmICgkZmlyZXBocG1vZHVsZSl7DQoJCSRkZWJ1Z0lUX2xhYmVsPSR0aGlzLT5MYW5nKCdkZWJ1Z0lUX2xhYmVsJyk7DQoJCSRkaXNhYmxlPScnOw0KCSAgfWVsc2V7DQoJCSAgJGRlYnVnSVRfbGFiZWw9ICR0aGlzLT5MYW5nKCdkZWJ1Z0lUX2xhYmVsJykuJHRoaXMtPkxhbmcoJ2RlYnVnSVRub3RlX2xhYmVsJyk7DQoJCSAgJGRpc2FibGU9J2Rpc2FibGVkPSJkaXNhYmxlZCInOw0KCSAgfQ0KCSR0aGlzLT5zbWFydHktPmFzc2lnbignZGVidWdJVF9sYWJlbCcsICRkZWJ1Z0lUX2xhYmVsKTsJDQogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdkZWJ1Z0lUX2lucHV0JywgJHRoaXMtPkNyZWF0ZUlucHV0UmFkaW9Hcm91cCAoJGlkLCAnZGVidWdJVCcsIGFycmF5KCdObyc9PicwJywnWWVzJz0+JzEnKSwgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2RlYnVnSVQnKSwnJy4kZGlzYWJsZS4nJywnJm5ic3A7Jm5ic3A7Jm5ic3A7JykpOw0KDQoJJHRoaXMtPkZpcmVEZWJ1ZygnZXJyb3InLCJHZXRQcmVmZXJlbmNlIGRlYnVnSVQiLiR0aGlzLT5HZXRQcmVmZXJlbmNlKCdkZWJ1Z0lUJykpOy8vPDw8PC0tLS0tLUZpcmUgUEhQIG1lc3NhZ2UJDQoJDQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdjbGVhcmVkX2xhYmVsJywgJGNsZWFyKTsNCgkvLyR0aGlzLT5zbWFydHktPmFzc2lnbignQ2xlYXJfaW5wdXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRSYWRpb0dyb3VwICgkaWQsICdjbGVhcmNhY2hlJywgYXJyYXkoJ05vJz0+JzAnLCdZZXMnPT4nMScpLCAnMCcsJycsJyZuYnNwOyZuYnNwOyZuYnNwOycpKTsNCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ0NsZWFyX2lucHV0JywgICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdjbGVhcmNhY2hlJywgJ0NsZWFyIENhY2hlJykpOw0KCSR0aGlzLT5zbWFydHktPmFzc2lnbignQ2xlYXJfbGFiZWwnLCAkdGhpcy0+bGFuZygnY2xlYW5UZW1wJykuIiA8c3BhbiBzdHlsZT1cImNvbG9yOiMwMDY2Q0M7IGZvbnQtd2VpZ2h0OjkwMDtcIj4iLiR0aGlzLT5sYW5nKCd1clRlbXBQYXRoJykuIjogIi4kY29uZmlnWyd1cGxvYWRzX3BhdGgnXS4iL2xpYi9TRC10ZW1wLzwvc3Bhbj4iKTsJDQoNCg0KCQ0KCQ0KCQ0KJGRpcnBhdGg9JGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10uIi9saWIvU0QtdGVtcC8iOw0KICAkZGlybGlzdCA9IHNkX2ZpbGVoYW5kbGluZzo6cHJvY2Vzc19kaXIoJGRpcnBhdGgsdHJ1ZSk7DQogIGlmKCRkaXJsaXN0IT1mYWxzZSl7DQoJIA0KCSAgDQokY2FjaGVJbmZvPSAiPHRhYmxlICBjZWxsc3BhY2luZz1cIjFcIiBpZD1cIlRTMlwiIGNsYXNzPVwidGFibGVzb3J0ZXJcIj5cbiI7DQogICAkY2FjaGVJbmZvLj0gIjx0aGVhZD48dHI+PHRoPiIuJHRoaXMtPkxhbmcoJ05hbWUnKS4iPC90aD48IS0tPHRoPlR5cGU8L3RoPi0tPjx0aD4iLiR0aGlzLT5MYW5nKCdTaXplJykuIjwvdGg+PHRoPiIuJHRoaXMtPkxhbmcoJ0xhc3RNb2QnKS4iPC90aD48L3RyPjwvdGhlYWQ+PHRib2R5PlxuIjsNCiAgZm9yZWFjaCgkZGlybGlzdCBhcyAkZmlsZSkgew0KICAgICRjYWNoZUluZm8uPSAiPHRyPlxuIjsNCiAgICAkY2FjaGVJbmZvLj0gIjx0ZD57JGZpbGVbJ25hbWUnXX0gPC90ZD5cbiI7DQogICAgLy9lY2hvICI8dGQ+eyRmaWxlWyd0eXBlJ119PC90ZD5cbiI7DQogICAgJGNhY2hlSW5mby49ICI8dGQ+eyRmaWxlWydzaXplJ119IDwvdGQ+XG4iOw0KICAgICRjYWNoZUluZm8uPSI8dGQ+IiAuIGRhdGUoInIiLCAkZmlsZVsnbGFzdG1vZCddKSAuICIgPC90ZD5cbiI7DQogICAgJGNhY2hlSW5mby49IjwvdHI+XG4iOw0KICB9DQogICRjYWNoZUluZm8uPSAiPC90Ym9keT48L3RhYmxlPlxuXG4iOwkNCiAJICAkY2FjaGVJbmZvLj0gICcNCgkJPGRpdiBpZD0icGFnZXIyIiBjbGFzcz0icGFnZXIiPg0KCQ0KCQk8aW1nIHNyYz0iJy4kZGlyLicvbW9kdWxlcy9TY3JpcHREZXBsb3kvaW5jbHVkZXMvYWRkb25zL3BhZ2VyL2ljb25zL2ZpcnN0LnBuZyIgY2xhc3M9ImZpcnN0IiBhbHQ9ImZpcnN0Ii8+DQoJCTxpbWcgc3JjPSInLiRkaXIuJy9tb2R1bGVzL1NjcmlwdERlcGxveS9pbmNsdWRlcy9hZGRvbnMvcGFnZXIvaWNvbnMvcHJldi5wbmciIGNsYXNzPSJwcmV2IiBhbHQ9InByZXYiLz4NCgkJPGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSJwYWdlZGlzcGxheSIvPg0KCQk8aW1nIHNyYz0iJy4kZGlyLicvbW9kdWxlcy9TY3JpcHREZXBsb3kvaW5jbHVkZXMvYWRkb25zL3BhZ2VyL2ljb25zL25leHQucG5nIiBjbGFzcz0ibmV4dCIgYWx0PSJuZXh0Ii8+DQoJCTxpbWcgc3JjPSInLiRkaXIuJy9tb2R1bGVzL1NjcmlwdERlcGxveS9pbmNsdWRlcy9hZGRvbnMvcGFnZXIvaWNvbnMvbGFzdC5wbmciIGNsYXNzPSJsYXN0IiBhbHQ9Imxhc3QiLz4NCgkJPHNlbGVjdCBjbGFzcz0icGFnZXNpemUiPg0KCQk8b3B0aW9uIHNlbGVjdGVkPSJzZWxlY3RlZCIgdmFsdWU9IjUiPjU8L29wdGlvbj4NCgkJCTxvcHRpb24gdmFsdWU9IjEwIj4xMDwvb3B0aW9uPg0KCQkJPG9wdGlvbiB2YWx1ZT0iMjAiPjIwPC9vcHRpb24+DQoJCQk8b3B0aW9uIHZhbHVlPSIzMCI+MzA8L29wdGlvbj4NCgkJCTxvcHRpb24gIHZhbHVlPSI0MCI+NDA8L29wdGlvbj4NCgkJPC9zZWxlY3Q+DQo8L2Rpdj4NCjxoMT4nLiR0aGlzLT5DcmVhdGVMaW5rKCAkaWQsICd2aWV3X2xvZ3MnLCAkcmV0dXJuaWQsJHRoaXMtPkxhbmcoJ3VzZXJMb2dzJykpLiI8L2gxPiI7DQoNCiAgDQogIH1lbHNlew0KDQppZighZmlsZV9leGlzdHMoJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10uIi9saWIvU0QtdGVtcC8iKSl7JG1lc3NhZ2U9JHRoaXMtPkxhbmcoJ2NhY2hlRmVycm9yJyk7fWVsc2V7JG1lc3NhZ2U9JHRoaXMtPkxhbmcoJ2RpckVtcHR5Jyk7fQ0KDQoNCiAkY2FjaGVJbmZvPSAiPHRhYmxlICBjZWxsc3BhY2luZz1cIjFcIiBjbGFzcz1cInRhYmxlc29ydGVyXCI+PHRyPjx0aD4iLiR0aGlzLT5MYW5nKCdOYW1lJykuIjwvdGg+PCEtLTx0aD5UeXBlPC90aD4tLT48dGg+Ii4kdGhpcy0+TGFuZygnU2l6ZScpLiI8L3RoPjx0aD4iLiR0aGlzLT5MYW5nKCdMYXN0TW9kJykuIjwvdGg+PC90cj48dHI+PHRkPiIuJG1lc3NhZ2UuIjwvdGQ+PHRkPiAtLSA8L3RkPjx0ZD4gLS0gPC90ZD48L3RyPjwvdGFibGU+IDxoMT4iLiR0aGlzLT5DcmVhdGVMaW5rKCAkaWQsICd2aWV3X2xvZ3MnLCAkcmV0dXJuaWQsJHRoaXMtPkxhbmcoJ3VzZXJMb2dzJykpLiI8L2gxPiI7CQ0KICB9DQoNCiR0aGlzLT5zbWFydHktPmFzc2lnbignY2FjaGVJbmZvJywkY2FjaGVJbmZvKTsNCgkNCgkNCgkNCiAgICAvLyB5b3UnbGwgb2Z0ZW4gd2FudCB0byBkbyB0aGluZ3MgbGlrZSB0aGlzIHRvIHByb3ZpZGUgZmVlZGJhY2s6DQogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdtZXNzYWdlJywgKGlzc2V0KCRwYXJhbXNbJ21lc3NhZ2UnXSk/JHBhcmFtc1snbWVzc2FnZSddOicnKSk7CQ0KCQ0KICAgIGVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnYWRtaW5fb3B0aW9ucy50cGwnKTsNCg0KDQoJLy9lY2hvJzxmb3JtIGFjdGlvbj0iIiBtZXRob2Q9InBvc3QiPg0KLy88aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjbGVhcmNhY2hlIiB2YWx1ZT0iMSI+PGlucHV0IG5hbWU9IiIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iQ2xlYXIgdGhlIGNhY2hlIiAvPg0KLy88L2Zvcm0+JzsNCg0KDQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/function.admin_scriptlist_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE1vZHVsZTogU2NyaXB0RGVwbG95IC0gUGF5UGFsIEJ1dHRvbiBDcmVhdG9yIGFuZCBNYW5hZ2VyIA0KIyBNb2QgZGVzaWduZWQgYnkgamVyZW15QmFzcyAoamVyZW15QmFzc0BjYWJsZW9uZS5uZXQpDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQ0KIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZw0KIyBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvU2NyaXB0RGVwbG95Lw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkNCiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkNCiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3INCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4NCiMNCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsDQojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mDQojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUNCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4NCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UNCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUNCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0ENCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTA0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCglnbG9iYWwgJGdDbXM7DQoJLy9pZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7DQoJJGNvbmZpZyA9JiAkZ0Ntcy0+R2V0Q29uZmlnKCk7DQoNCgkkZGlyID0gJGNvbmZpZ1sncm9vdF91cmwnXTsNCgkkQWRtaW5kaXIgPSAkZGlyLicvJy4kY29uZmlnWydhZG1pbl9kaXInXTsNCgkJJGZhbHNlaW1hZ2UxID0gJGdDbXMtPnZhcmlhYmxlc1snYWRtaW50aGVtZSddLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9mYWxzZS5naWYnLCdtYWtlIGRlZmF1bHQnLCcnLCcnLCdzeXN0ZW1pY29uJyk7DQoJCSR0cnVlaW1hZ2UxID0gJGdDbXMtPnZhcmlhYmxlc1snYWRtaW50aGVtZSddLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS90cnVlLmdpZicsJ2RlZmF1bHQnLCcnLCcnLCdzeXN0ZW1pY29uJyk7DQoJCSRhbGxkYlByb2ZpbGVzID0gJHRoaXMtPmdldFNjcmlwdHNMaXN0KCk7DQoJCSRyb3dhcnJheSA9IGFycmF5KCk7DQoJCSRyb3djbGFzcyA9ICdyb3cxJzsNCgkJJHJldl9vcHQgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgncmV2aXNpb24nKTsNCg0KCQkNCgkJZm9yZWFjaCgkYWxsZGJQcm9maWxlcyBhcyAka2V5ID0+ICRvbmVkYlByb2ZpbGUgKXsNCgkJCSR1c2VyTWVkaXVtPScnOw0KCQkJJHVpZD0nJzsNCgkJCSR1bmFtZT0nJzsNCgkJCSRTY3JpcHRTZXQ9ICRvbmVkYlByb2ZpbGVbJ1NjcmlwdFNldCddOw0KCQkJJHBhdGhPcHRpb249ICRvbmVkYlByb2ZpbGVbJ3BhdGhPcHRpb24nXTsNCgkJCSRzY3JpcHRUeXBlPSAkb25lZGJQcm9maWxlWydzY3JpcHRUeXBlJ107DQoJCQkkc2NyaXB0U2l6ZT0gJG9uZWRiUHJvZmlsZVsnc2NyaXB0U2l6ZSddOw0KCQkJDQoJCQlpZigkdHlwZUlTPT0kc2NyaXB0VHlwZSl7DQoJCQkJJHJvdyA9IG5ldyBTdGRDbGFzcygpOw0KCQkJCSRlZGl0YWJsZT0kdGhpcy0+aXNfZWRpdGFibGUoJGtleSk7DQoJCQkJaWYoISRlZGl0YWJsZSl7JHVpZD0kdGhpcy0+R2V0UHJlZmVyZW5jZSgka2V5LictTG9ja2VkLUVkaXRvci1TRCcpO30NCgkJCQlpZigkdWlkIT0nJyl7JHU9JHRoaXMtPmdldFVzZXJJbmZvKCR1aWQpOyR1bmFtZT0kdVsndXNlcm5hbWUnXTt9DQoJCQkJDQoJCQkJJE1pbmlmeT0gJHRoaXMtPkdldFByZWZlcmVuY2UoJGtleS4nLU1pbmlmeS1TRCcsJzEnKTsNCgkJCQlpZigkdHlwZUlTPT0nQ1NTJyl7DQoJCQkJCSR1c2VyTWVkaXVtPScgfDxlbT4oJy4kdGhpcy0+R2V0UHJlZmVyZW5jZSgka2V5LictTWVkaWFUeXBlLVNEJywnQWxsJykuIik8L2VtPiI7DQoJCQkJfQ0KCQkJCSRyb3ctPnR5cGUgPSAkc2NyaXB0VHlwZTsNCgkJCQkkcm93LT5zY3JpcHRTaXplID0gJHRoaXMtPlNpemVJdFVwKCRzY3JpcHRTaXplKTsNCgkJCQkNCgkJCQlpZigkZWRpdGFibGUpew0KCQkJCQkkcm93LT5lZGl0TW9kZSA9ICcnOw0KCQkJCX1lbHNlew0KCQkJCQkkcm93LT5lZGl0TW9kZSA9ICdJbkVkaXQnOw0KCQkJCX0NCgkJCQkNCgkJCQlpZigkZWRpdGFibGUpew0KCQkJCQkkcm93LT5uYW1lID0gJHRoaXMtPkNyZWF0ZUxpbmsoICRpZCwgJ2VkaXRfc2NyaXB0JywgJHJldHVybmlkLCRrZXksIGFycmF5KCdTY3JpcHRTZXQnID0+ICRrZXksJ2FjdGl2ZV90YWInID0+J3NjcmlwdF90ZW1wbGF0ZScsJ21vZGUnPT4nZWRpdCcpKTsNCgkJCQl9ZWxzZXsNCgkJCQkJJHJvdy0+bmFtZSA9ICRrZXk7DQoJCQkJfQ0KCQkJCQkNCgkJCQlpZigkZWRpdGFibGUpew0KCQkJCQkkcm93LT5kZWZhdWx0ID0gJHRoaXMtPkNyZWF0ZUxpbmsoICRpZCwgJ2VkaXRfc2NyaXB0JywgJHJldHVybmlkLCc8c3Ryb25nPicuJFNjcmlwdFNldC4nPC9zdHJvbmc+Jy4kdXNlck1lZGl1bSwgYXJyYXkoJ1NjcmlwdFNldCcgPT4gJGtleSwnYWN0aXZlX3RhYicgPT4nc2NyaXB0X3RlbXBsYXRlJywnbW9kZSc9PidlZGl0JykpOw0KCQkJCX1lbHNlew0KCQkJCQkkcm93LT5kZWZhdWx0ID0nPGltZyBzcmM9IicuJGRpci4nL21vZHVsZXMvU2NyaXB0RGVwbG95L2ltYWdlcy91c2VyX2VkaXQucG5nIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHN0eWxlPSIiIGFsdD0iIi8+PHN0cm9uZz4nLiR1bmFtZS4nICcuJHRoaXMtPmxhbmcoJ2lzRWRpdCcpLicgJy4kU2NyaXB0U2V0Lic8L3N0cm9uZz4nLiR1c2VyTWVkaXVtOw0KCQkJCX0NCgkJCQkNCgkJCQkvLyRyb3ctPnR5cGVJY29uID0nPGltZyBzcmM9Ii4uL21vZHVsZXMvU2NyaXB0RGVwbG95L2ltYWdlcy8nLiRzY3JpcHRUeXBlLicucG5nIiB3aWR0aD0iMzUiIGhlaWdodD0iMzUiIC8+JzsNCgkJCQlpZigkTWluaWZ5PT0xKXsNCgkJCQkJJG1pbmltZz0nPGltZyBzcmM9IicuJGRpci4nL21vZHVsZXMvU2NyaXB0RGVwbG95L2ltYWdlcy9NaW4ucG5nIiB3aWR0aD0iMzUiIGhlaWdodD0iMzUiIHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTsgei1pbmRleDo5OTt0b3A6MHB4OyIgYWx0PSIiLz4nOw0KCQkJCX1lbHNlew0KCQkJCQkkbWluaW1nPScnOw0KCQkJCX0NCgkJCQkkaW5FZD0nJzsNCgkJCQlpZighJGVkaXRhYmxlKXsNCgkJCQkJJGluRWQgPSAnPGltZyBzcmM9IicuJGRpci4nL21vZHVsZXMvU2NyaXB0RGVwbG95L2ltYWdlcy91c2VyX2VkaXQucG5nIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTsgei1pbmRleDo5OTtib3R0b206MHB4OyIgIGFsdD0iIi8+JzsNCgkJCQl9DQoJCQkJDQoJCQkJDQoJCQkJDQoJCQkJJHJvdy0+dHlwZUljb24gPSc8ZGl2IHN0eWxlPSIgcG9zaXRpb246cmVsYXRpdmU7IGhlaWdodDozNXB4OyI+Jy4kbWluaW1nLiRpbkVkLic8aW1nIHNyYz0iJy4kZGlyLicvbW9kdWxlcy9TY3JpcHREZXBsb3kvaW1hZ2VzLycuJHNjcmlwdFR5cGUuJy5wbmciIHdpZHRoPSIzNSIgaGVpZ2h0PSIzNSIgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlOyB6LWluZGV4Ojk7IHRvcDowcHg7IiAgYWx0PSIiLz48L2Rpdj4nOw0KCQkJCSRyb3ctPkJ0biA9ICRrZXk7DQoJCQkJJHJvdy0+cm93Y2xhc3MgPSAkcm93Y2xhc3M7DQoJCQkJDQoJCQkJaWYoJGVkaXRhYmxlKXsNCgkJCQkJJHJvdy0+ZWRpdGxpbmsgPSAkdGhpcy0+Q3JlYXRlTGluayggJGlkLCAnZWRpdF9zY3JpcHQnLCAkcmV0dXJuaWQsJzxpbWcgc3JjPSInLiRkaXIuJy9tb2R1bGVzL1NjcmlwdERlcGxveS9pbWFnZXMvZWRpdC5wbmciIGFsdD0iJy4kdGhpcy0+TGFuZyAoJ2VkaXQnKS4nIiAvPicsYXJyYXkgKCdTY3JpcHRTZXQnID0+ICRrZXksJ2FjdGl2ZV90YWInID0+J3NjcmlwdF90ZW1wbGF0ZScsJ21vZGUnPT4nZWRpdCcpKTsNCgkJCQl9ZWxzZXsNCgkJCQkJJHJvdy0+ZWRpdGxpbmsgPSAnPGltZyBzcmM9IicuJGRpci4nL21vZHVsZXMvU2NyaXB0RGVwbG95L2ltYWdlcy9pbi1lZGl0LnBuZyIgYWx0PSInLiR0aGlzLT5MYW5nICgnZWRpdCcpLiciIC8+JzsNCgkJCQl9DQoJCQkJDQokcm93LT5nZXRUYWcgPSc8YSBocmVmPSIjIiBjbGFzcz0iZ2V0VGFnIiB0aXRsZT1cJycuJHRoaXMtPkxhbmcoJ2dldF90YWcnKS4nIHtTY3JpcHREZXBsb3kgc2NyaXB0SUQ9IicuJGtleS4nIiBTdHlwZT0iJy4kc2NyaXB0VHlwZS4nIn1cJyA+PGltZyBzcmM9IicuJGRpci4nL21vZHVsZXMvU2NyaXB0RGVwbG95L2ltYWdlcy9HZXRUYWcucG5nIiBhbHQ9XCcnLiR0aGlzLT5MYW5nKCdnZXRfdGFnJykuJyB7U2NyaXB0RGVwbG95IHNjcmlwdElEPSInLiRrZXkuJyIgU3R5cGU9IicuJHNjcmlwdFR5cGUuJyJ9XCcgLz5HZXQgVGFnPHNwYW4gY2xhc3M9ImhpZGRlbiBjb3B5YXJlYSI+e1NjcmlwdERlcGxveSBzY3JpcHRJRD0iJy4ka2V5LiciIFN0eXBlPSInLiRzY3JpcHRUeXBlLicifTwvc3Bhbj48L2E+JzsNCgkJCQkNCgkJCQkNCgkJCQkNCgkJCQlpZigkZWRpdGFibGUmJiRyZXZfb3B0KXsNCgkJCQkJJHJvdy0+UmV2aXNpb249JHRoaXMtPkxhbmcgKCdyZXZpc2lvbicpLic6PGVtPjxzcGFuIGNsYXNzPSJyZXZlcnRWZXJzaW9uIj4nLiR0aGlzLT5DcmVhdGVMaW5rKCAkaWQsICdyZXZlcnQnLCAkcmV0dXJuaWQsJzxpbWcgc3JjPSInLiRkaXIuJy9tb2R1bGVzL1NjcmlwdERlcGxveS9pbWFnZXMvcmV2ZXJ0LnBuZyIgYWx0PSInLiR0aGlzLT5MYW5nICgncmV2ZXJ0JykuJyIgLz4nLiR0aGlzLT5HZXRMYXN0UmV2aXNpb24oJGtleSksYXJyYXkgKCdTY3JpcHRTZXQnID0+ICRrZXksJ2FjdGl2ZV90YWInID0+J3NjcmlwdF90ZW1wbGF0ZScsJ21vZGUnPT4ncmV2ZXJ0JykpLic8L3NwYW4+PC9lbT4nOw0KCQkJCX1lbHNlew0KCQkJCQlpZigkcmV2X29wdCl7DQoJCQkJCSRyb3ctPlJldmlzaW9uID0gJHRoaXMtPkxhbmcgKCdyZXZpc2lvbicpLic6PGVtPjxzcGFuIGNsYXNzPSJyZXZlcnRWZXJzaW9uIj48aW1nIHNyYz0iJy4kZGlyLicvbW9kdWxlcy9TY3JpcHREZXBsb3kvaW1hZ2VzL3JldmVydC5wbmciIGFsdD0iJy4kdGhpcy0+TGFuZyAoJ3JldmVydCcpLiciIC8+Jy4kdGhpcy0+R2V0TGFzdFJldmlzaW9uKCRrZXkpLic8L3NwYW4+PC9lbT4nOw0KCQkJCQl9ZWxzZXsNCgkJCQkJCSRyb3ctPlJldmlzaW9uID0gJyc7DQoJCQkJCX0NCgkJCQl9DQoJDQoJCQkJaWYoJGVkaXRhYmxlJiYkcmV2X29wdCl7DQoJCQkJCSRyb3ctPnJldmVydCA9ICR0aGlzLT5DcmVhdGVMaW5rKCAkaWQsICdyZXZlcnQnLCAkcmV0dXJuaWQsJzxpbWcgc3JjPSInLiRkaXIuJy9tb2R1bGVzL1NjcmlwdERlcGxveS9pbWFnZXMvcmV2ZXJ0LnBuZyIgYWx0PSInLiR0aGlzLT5MYW5nICgncmV2ZXJ0JykuJyIgLz4nLGFycmF5ICgnU2NyaXB0U2V0JyA9PiAka2V5LCdhY3RpdmVfdGFiJyA9PiAkYWN0aXZlX3RhYiwnbW9kZSc9PidyZXZlcnQnKSk7DQoJCQkJfWVsc2V7DQoJCQkJCWlmKCRyZXZfb3B0KXsNCgkJCQkJCSRyb3ctPnJldmVydCA9ICc8aW1nIHNyYz0iJy4kZGlyLicvbW9kdWxlcy9TY3JpcHREZXBsb3kvaW1hZ2VzL3JldmVydC5wbmciIGFsdD0iJy4kdGhpcy0+TGFuZyAoJ3JldmVydCcpLiciIC8+JzsNCgkJCQkJfWVsc2V7DQoJCQkJCQkkcm93LT5yZXZlcnQgPSAnJzsNCgkJCQkJfQ0KCQkJCX0NCgkNCgkJCQkkR3JvdXBJbmZvPSR0aGlzLT5HZXRTY3JpcHRHcm91cEluZm8oJGtleSk7DQoJCQkJaWYoJEdyb3VwSW5mbyE9ZmFsc2UmJiRHcm91cEluZm9bMF0hPScnKXsNCgkJCQkJJHJvdy0+ZGVsZXRlbGluayA9ICctLSc7DQoJCQkJfWVsc2V7DQoJCQkJCWlmKCRlZGl0YWJsZSl7DQoJCQkJCQkkcm93LT5kZWxldGVsaW5rID0gJHRoaXMtPkNyZWF0ZUxpbmsoICRpZCwgJ2RlbGV0ZV9zY3JpcHQnLCAkcmV0dXJuaWQsJzxpbWcgc3JjPSInLiRkaXIuJy9tb2R1bGVzL1NjcmlwdERlcGxveS9pbWFnZXMvZGVsZXRlLnBuZyIgYWx0PSInLiR0aGlzLT5MYW5nICgnZGVsZXRlJykuJyIgLz4nLGFycmF5ICgnU2NyaXB0SUQnID0+ICRrZXksJ2FjdGl2ZV90YWInID0+J3NjcmlwdF90ZW1wbGF0ZScpLCR0aGlzLT5MYW5nICgnYXJleW91c3VyZScpKTsNCgkJCQkJfWVsc2V7DQoJCQkJCQkkcm93LT5kZWxldGVsaW5rID0gJzxpbWcgc3JjPSInLiRkaXIuJy9tb2R1bGVzL1NjcmlwdERlcGxveS9pbWFnZXMvZGVsZXRlLnBuZyIgYWx0PSInLiR0aGlzLT5MYW5nICgnZGVsZXRlJykuJyIgLz4nOw0KCQkJCQl9DQoJCQkJfQ0KCQ0KCQkJCQlpZigkZWRpdGFibGUpew0KCQkJCQkJJHJvdy0+c3RlYWwgPSAnJzsNCgkJCQkJfWVsc2V7DQoJCQkJCQkkcm93LT5zdGVhbCA9ICc8aW1nIHNyYz0iJy4kZGlyLicvbW9kdWxlcy9TY3JpcHREZXBsb3kvaW1hZ2VzL3N0ZWFsLnBuZyIgYWx0PSInLiR0aGlzLT5MYW5nICgnc3RlYWwnKS4nIiBjbGFzcz0ic3RlYWwiLz4nOw0KCQkJCQl9CQ0KCQ0KCQ0KCQkJCWFycmF5X3B1c2ggKCRyb3dhcnJheSwgJHJvdyk7DQoJCQkJKCRyb3djbGFzcyA9PSAicm93MSIgPyAkcm93Y2xhc3MgPSAicm93MiIgOiAkcm93Y2xhc3MgPSAicm93MSIpOw0KCQkJCX0NCgkJfQ0KCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ05vX1NjcmlwdHMnLCAkdGhpcy0+TGFuZygnTm9fU2NyaXB0cycpICk7DQoJCSR0aGlzLT5zbWFydHktPmFzc2lnbignaXRlbXMnLCAkcm93YXJyYXkgKTsNCgkJDQoJCSR0aGlzLT5zbWFydHktPmFzc2lnbigndHlwZV9sYWJlbCcsICR0aGlzLT5MYW5nKCd0eXBlX2xhYmVsJykpOw0KCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ05hbWVfbGFiZWwnLCAkdGhpcy0+TGFuZygnU2NyaXB0U2V0X2xhYmVsJykpOw0KCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ25hbWVwcm9tcHRfbGFiZWwnLCAkdGhpcy0+TGFuZygncHJvbXB0X25hbWUnKSk7DQoJCSR0aGlzLT5zbWFydHktPmFzc2lnbignU2NyaXB0TmFtZV9sYWJlbCcsICR0aGlzLT5MYW5nKCdTY3JpcHROYW1lX2xhYmVsJykpOw0KCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ1NpbmdsZUNvZGVfbGFiZWwnLCAkdGhpcy0+TGFuZygnU2luZ2xlQ29kZV9sYWJlbCcpKTsvLyR0aGlzLT5MYW5nKCdwcm9tcHRfZGVmYXVsdCcpDQoJCQ0KCQkgDQoJCQ0KCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ25ld19zY3JpcHRfbGluaycsDQoJCQkJICAkdGhpcy0+Q3JlYXRlTGluayggJGlkLCAnZWRpdF9zY3JpcHQnLCAkcmV0dXJuaWQsDQoJCQkJCQkJJzxpbWcgc3JjPSInLiRkaXIuJy9tb2R1bGVzL1NjcmlwdERlcGxveS9pbWFnZXMvYWRkLnBuZyIgYWx0PSInLiR0aGlzLT5MYW5nICgncHJvbXB0X25ld1NjcmlwdCcpLiciIC8+Jy4kdGhpcy0+TGFuZygncHJvbXB0X25ld1NjcmlwdCcpLA0KCQkJCQkJCSBhcnJheSgnYWN0aXZlX3RhYicgPT4gJGFjdGl2ZV90YWIsDQoJCQkJCQkJICAgJ21vZGUnID0+ICdhZGQnLA0KCQkJCQkJCSAgICdzdGF0dXMnID0+ICduZXcnDQoJCQkJCQkJICAgKSkpOw0KCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7DQoJCWVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnZWRpdF9zY3JpcHRfbGlzdC50cGwnKTsNCg0KPz4=]]></data>
	</file>
	<file>
	  <filename>/function.admin_Valtab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE1vZHVsZTogU2NyaXB0RGVwbG95IC0gUGF5UGFsIEJ1dHRvbiBDcmVhdG9yIGFuZCBNYW5hZ2VyIA0KIyBNb2QgZGVzaWduZWQgYnkgamVyZW15QmFzcyAoamVyZW15QmFzc0BjYWJsZW9uZS5uZXQpDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQ0KIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZw0KIyBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvU2NyaXB0RGVwbG95Lw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkNCiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkNCiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3INCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4NCiMNCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsDQojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mDQojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUNCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4NCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UNCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUNCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0ENCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTA0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsNCg0KLyoNCiogQ1NTIHZhbGlkYXRpb24gc2V0dGluZ3MNCioNCioNCioNCiovDQokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2Zvcm1zdGFydCcsICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCJzYXZlVkFMc2V0dGluZ3MiKSk7DQokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3N1Ym1pdCcsJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwnc2F2ZVZBTHNldHRpbmdzJywkdGhpcy0+TGFuZygic2F2ZVZBTHNldHRpbmdzIikpKTsNCg0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmb3Jtc3RhcnRIVE1MJywgJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsInNhdmVWQUxzZXR0aW5ncyIpKTsNCiR0aGlzLT5zbWFydHktPmFzc2lnbignc3VibWl0SFRNTCcsJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwnc2F2ZVZBTHNldHRpbmdzJywkdGhpcy0+TGFuZygic2F2ZVZBTHNldHRpbmdzIikpKTsNCg0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmb3JtZW5kJywgJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7DQokdXNlcm1lZGl1bUFycmF5PWFycmF5KA0KCQknYWxsJz0+J2FsbCcsDQoJCSdhdXJhbCc9PidhdXJhbCcsDQoJCSdicmFpbGxlJz0+J2JyYWlsbGUnLA0KCQknaGFuZGhlbGQnPT4naGFuZGhlbGQnLA0KCQkncHJpbnQnPT4ncHJpbnQnLA0KCQknZW1ib3NzZWQnPT4nZW1ib3NzZWQnLA0KCQkncHJvamVjdGlvbic9Pidwcm9qZWN0aW9uJywNCgkJJ3NwZWVjaCc9PidzcGVlY2gnLA0KCQknc2NyZWVuJz0+J3NjcmVlbicsDQoJCSd0dHknPT4ndHR5JywNCgkJJ3R2Jz0+J3R2Jw0KKTsNCiRWQUxMYW5nQXJyYXk9YXJyYXkoDQoJCSR0aGlzLT5MYW5nKCJlbiIpPT4nZW4nLA0KCQkkdGhpcy0+TGFuZygiZnIiKT0+J2ZyJywNCgkJJHRoaXMtPkxhbmcoIml0Iik9PidpdCcsDQoJCSR0aGlzLT5MYW5nKCJrbyIpPT4na28nLA0KCQkkdGhpcy0+TGFuZygiamEiKT0+J2phJywNCgkJJHRoaXMtPkxhbmcoImVzIik9PidlcycsDQoJCSR0aGlzLT5MYW5nKCJ6aC1jbiIpPT4nemgtY24nLA0KCQkkdGhpcy0+TGFuZygibmwiKT0+J25sJywNCgkJJHRoaXMtPkxhbmcoImRlIik9PidkZScsDQoJCSR0aGlzLT5MYW5nKCJwbCIpPT4ncGwnLA0KCQkkdGhpcy0+TGFuZygicm8iKT0+J3JvJywNCgkJJHRoaXMtPkxhbmcoImNzIik9PidjcycsDQoJCSR0aGlzLT5MYW5nKCJiZyIpPT4nYmcnLA0KCQkkdGhpcy0+TGFuZygic3YiKT0+J3N2JywNCgkJJHRoaXMtPkxhbmcoImZhIik9PidmYScsDQoJCSR0aGlzLT5MYW5nKCJydSIpPT4ncnUnLA0KCQkkdGhpcy0+TGFuZygicHQtQlIiKT0+J3B0LUJSJw0KKTsNCg0KDQokdzNjQ1NTd2FybmluZ0FycmF5PWFycmF5KA0KCQkkdGhpcy0+TGFuZygiTG5vbmUiKT0+J25vJywNCgkJJHRoaXMtPkxhbmcoIkwwIik9PicwJywNCgkJJHRoaXMtPkxhbmcoIkwxIik9PicxJywNCgkJJHRoaXMtPkxhbmcoIkwyIik9PicyJw0KKTsNCg0KJENTU3Byb2ZpbGVBcnJheT1hcnJheSgNCgkJJHRoaXMtPkxhbmcoImNzczEiKT0+J2NzczEnLA0KCQkkdGhpcy0+TGFuZygiY3NzMiIpPT4nY3NzMicsDQoJCSR0aGlzLT5MYW5nKCJjc3MyMSIpPT4nY3NzMjEnLA0KCQkkdGhpcy0+TGFuZygiY3NzMyIpPT4nY3NzMycsDQoJCSR0aGlzLT5MYW5nKCJzdmciKT0+J3N2ZycsDQoJCSR0aGlzLT5MYW5nKCJzdmdiYXNpYyIpPT4nc3ZnYmFzaWMnLA0KCQkkdGhpcy0+TGFuZygic3ZndGlueSIpPT4nc3ZndGlueScsDQoJCSR0aGlzLT5MYW5nKCJtb2JpbGUiKT0+J21vYmlsZScsDQoJCSR0aGlzLT5MYW5nKCJhdHNjLXR2Iik9PidhdHNjLXR2JywNCgkJJHRoaXMtPkxhbmcoInR2Iik9Pid0dicsDQoJCSR0aGlzLT5MYW5nKCJub25lIik9Pidub25lJw0KKTsNCg0KDQokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ1R1cm5PTlZhbF9sYWJsZScsICR0aGlzLT5MYW5nKCJUdXJuT05WYWxfbGFibGUiKSk7DQokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ1R1cm5PTlZhbF9pbnB1dCcsICR0aGlzLT5DcmVhdGVJbnB1dFJhZGlvR3JvdXAgKCRpZCwgJ1R1cm5PTlZhbCcsIGFycmF5KCdObyc9PicwJywnWWVzJz0+JzEnKSwgJHRoaXMtPkdldFByZWZlcmVuY2UoJ1R1cm5PTlZhbCcsJzEnKSwnJywnJm5ic3A7Jm5ic3A7Jm5ic3A7JykpOw0KDQokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2hvdExpbmtDaGVja19sYWJsZScsICR0aGlzLT5MYW5nKCJob3RMaW5rQ2hlY2tfbGFibGUiKSk7DQokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2hvdExpbmtDaGVja19pbnB1dCcsICR0aGlzLT5DcmVhdGVJbnB1dFJhZGlvR3JvdXAgKCRpZCwgJ2hvdExpbmtDaGVjaycsIGFycmF5KCdObyc9PicwJywnWWVzJz0+JzEnKSwgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2hvdExpbmtDaGVjaycsJzEnKSwnJywnJm5ic3A7Jm5ic3A7Jm5ic3A7JykpOw0KDQokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ1Nob3dWYWxfbGFibGUnLCAkdGhpcy0+TGFuZygiU2hvd1ZhbF9sYWJsZSIpKTsNCiR0aGlzLT5zbWFydHktPmFzc2lnbignU2hvd1ZhbF9pbnB1dCcsICR0aGlzLT5DcmVhdGVJbnB1dFJhZGlvR3JvdXAgKCRpZCwgJ1Nob3dWYWwnLCBhcnJheSgnTm8nPT4nMCcsJ1llcyc9PicxJyksICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdTaG93VmFsJywnMCcpLCcnLCcmbmJzcDsmbmJzcDsmbmJzcDsnKSk7DQoNCiR0aGlzLT5zbWFydHktPmFzc2lnbignQ1NTcHJvZmlsZV9sYWJsZScsICR0aGlzLT5MYW5nKCJDU1Nwcm9maWxlX2xhYmxlIikpOw0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdDU1Nwcm9maWxlX2lucHV0JywkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsIkNTU3Byb2ZpbGUiLCRDU1Nwcm9maWxlQXJyYXksJycsJHRoaXMtPkdldFByZWZlcmVuY2UoIkNTU3Byb2ZpbGUiLCJhbGwiKSkpOw0KDQokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3VzZXJtZWRpdW1fbGFibGUnLCAkdGhpcy0+TGFuZygidXNlcm1lZGl1bV9sYWJsZSIpKTsNCiR0aGlzLT5zbWFydHktPmFzc2lnbigndXNlcm1lZGl1bV9pbnB1dCcsJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCJ1c2VybWVkaXVtIiwkdXNlcm1lZGl1bUFycmF5LCcnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCJ1c2VybWVkaXVtIiwiYWxsIikpKTsNCg0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdWQUxMYW5nX2xhYmxlJywgJHRoaXMtPkxhbmcoIlZBTExhbmdfbGFibGUiKSk7DQokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ1ZBTExhbmdfaW5wdXQnLCR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwiVkFMTGFuZyIsJFZBTExhbmdBcnJheSwnJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgiVkFMTGFuZyIsImFsbCIpKSk7DQoNCiR0aGlzLT5zbWFydHktPmFzc2lnbigndzNjQ1NTd2FybmluZ19sYWJsZScsICR0aGlzLT5MYW5nKCJ3M2NDU1N3YXJuaW5nX2xhYmxlIikpOw0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd3M2NDU1N3YXJuaW5nX2lucHV0JywkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsInczY0NTU3dhcm5pbmciLCR3M2NDU1N3YXJuaW5nQXJyYXksJycsJHRoaXMtPkdldFByZWZlcmVuY2UoInczY0NTU3dhcm5pbmciLCJhbGwiKSkpOw0KDQokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2ZpbHRlclByb3BfbGFibGUnLCAkdGhpcy0+TGFuZygiZmlsdGVyUHJvcF9sYWJsZSIpKTsNCiR0aGlzLT5zbWFydHktPmFzc2lnbignZmlsdGVyUHJvcF9pbnB1dCcsJHRoaXMtPkNyZWF0ZVRleHRBcmVhKDAsJGlkLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCJmaWx0ZXJQcm9wIiwnJyksImZpbHRlclByb3AiLCdmaWx0ZXJQcm9wJywnJywnJywnJywxMCw4KSk7DQoNCi8qDQoqIEhUTUwgdmFsaWRhdGlvbiBzZXR0aW5ncw0KKg0KKg0KKg0KKi8NCg0KDQoNCiRlbmNvZGluZ0FycmF5PWFycmF5KA0KCQkkdGhpcy0+TGFuZygnKGRldGVjdCBhdXRvbWF0aWNhbGx5KScpPT4nKGRldGVjdCBhdXRvbWF0aWNhbGx5KScsDQoJCSR0aGlzLT5MYW5nKCd1dGYtOCcpPT4ndXRmLTgnLA0KCQkkdGhpcy0+TGFuZygndXRmLTE2Jyk9Pid1dGYtMTYnLA0KCQkkdGhpcy0+TGFuZygnaXNvLTg4NTktMScpPT4naXNvLTg4NTktMScsDQoJCSR0aGlzLT5MYW5nKCdpc28tODg1OS0yJyk9Pidpc28tODg1OS0yJywNCgkJJHRoaXMtPkxhbmcoJ2lzby04ODU5LTMnKT0+J2lzby04ODU5LTMnLA0KCQkkdGhpcy0+TGFuZygnaXNvLTg4NTktNCcpPT4naXNvLTg4NTktNCcsDQoJCSR0aGlzLT5MYW5nKCdpc28tODg1OS01Jyk9Pidpc28tODg1OS01JywNCgkJJHRoaXMtPkxhbmcoJ2lzby04ODU5LTYtaScpPT4naXNvLTg4NTktNi1pJywNCgkJJHRoaXMtPkxhbmcoJ2lzby04ODU5LTcnKT0+J2lzby04ODU5LTcnLA0KCQkkdGhpcy0+TGFuZygnaXNvLTg4NTktOCcpPT4naXNvLTg4NTktOCcsDQoJCSR0aGlzLT5MYW5nKCdpc28tODg1OS04LWknKT0+J2lzby04ODU5LTgtaScsDQoJCSR0aGlzLT5MYW5nKCdpc28tODg1OS05Jyk9Pidpc28tODg1OS05JywNCgkJJHRoaXMtPkxhbmcoJ2lzby04ODU5LTEwJyk9Pidpc28tODg1OS0xMCcsDQoJCSR0aGlzLT5MYW5nKCdpc28tODg1OS0xMScpPT4naXNvLTg4NTktMTEnLA0KCQkkdGhpcy0+TGFuZygnaXNvLTg4NTktMTMnKT0+J2lzby04ODU5LTEzJywNCgkJJHRoaXMtPkxhbmcoJ2lzby04ODU5LTE0Jyk9Pidpc28tODg1OS0xNCcsDQoJCSR0aGlzLT5MYW5nKCdpc28tODg1OS0xNScpPT4naXNvLTg4NTktMTUnLA0KCQkkdGhpcy0+TGFuZygnaXNvLTg4NTktMTYnKT0+J2lzby04ODU5LTE2JywNCgkJJHRoaXMtPkxhbmcoJ3VzLWFzY2lpJyk9Pid1cy1hc2NpaScsDQoJCSR0aGlzLT5MYW5nKCdldWMtanAnKT0+J2V1Yy1qcCcsDQoJCSR0aGlzLT5MYW5nKCdzaGlmdF9qaXMnKT0+J3NoaWZ0X2ppcycsDQoJCSR0aGlzLT5MYW5nKCdpc28tMjAyMi1qcCcpPT4naXNvLTIwMjItanAnLA0KCQkkdGhpcy0+TGFuZygnZXVjLWtyJyk9PidldWMta3InLA0KCQkkdGhpcy0+TGFuZygnZ2IyMzEyJyk9PidnYjIzMTInLA0KCQkkdGhpcy0+TGFuZygnZ2IxODAzMCcpPT4nZ2IxODAzMCcsDQoJCSR0aGlzLT5MYW5nKCdiaWc1Jyk9PidiaWc1JywNCgkJJHRoaXMtPkxhbmcoJ2JpZzUtSEtTQ1MnKT0+J2JpZzUtSEtTQ1MnLA0KCQkkdGhpcy0+TGFuZygndGlzLTYyMCcpPT4ndGlzLTYyMCcsDQoJCSR0aGlzLT5MYW5nKCdrb2k4LXInKT0+J2tvaTgtcicsDQoJCSR0aGlzLT5MYW5nKCdrb2k4LXUnKT0+J2tvaTgtdScsDQoJCSR0aGlzLT5MYW5nKCdpc28taXItMTExJyk9Pidpc28taXItMTExJywNCgkJJHRoaXMtPkxhbmcoJ21hY2ludG9zaCcpPT4nbWFjaW50b3NoJywNCgkJJHRoaXMtPkxhbmcoJ3dpbmRvd3MtMTI1MCcpPT4nd2luZG93cy0xMjUwJywNCgkJJHRoaXMtPkxhbmcoJ3dpbmRvd3MtMTI1MScpPT4nd2luZG93cy0xMjUxJywNCgkJJHRoaXMtPkxhbmcoJ3dpbmRvd3MtMTI1MicpPT4nd2luZG93cy0xMjUyJywNCgkJJHRoaXMtPkxhbmcoJ3dpbmRvd3MtMTI1MycpPT4nd2luZG93cy0xMjUzJywNCgkJJHRoaXMtPkxhbmcoJ3dpbmRvd3MtMTI1NCcpPT4nd2luZG93cy0xMjU0JywNCgkJJHRoaXMtPkxhbmcoJ3dpbmRvd3MtMTI1NScpPT4nd2luZG93cy0xMjU1JywNCgkJJHRoaXMtPkxhbmcoJ3dpbmRvd3MtMTI1NicpPT4nd2luZG93cy0xMjU2JywNCgkJJHRoaXMtPkxhbmcoJ3dpbmRvd3MtMTI1NycpPT4nd2luZG93cy0xMjU3Jw0KKTsNCg0KDQokZG9jVHlwZUFycmF5PWFycmF5KA0KCQkkdGhpcy0+TGFuZygnSW5saW5lJyk9PidJbmxpbmUnLA0KCQkkdGhpcy0+TGFuZygnSFRNTDUnKT0+J0hUTUw1JywNCgkJJHRoaXMtPkxhbmcoJ1hIVE1MIDEuMCBTdHJpY3QnKT0+J1hIVE1MIDEuMCBTdHJpY3QnLA0KCQkkdGhpcy0+TGFuZygnWEhUTUwgMS4wIFRyYW5zaXRpb25hbCcpPT4nWEhUTUwgMS4wIFRyYW5zaXRpb25hbCcsDQoJCSR0aGlzLT5MYW5nKCdYSFRNTCAxLjAgRnJhbWVzZXQnKT0+J1hIVE1MIDEuMCBGcmFtZXNldCcsDQoJCSR0aGlzLT5MYW5nKCdIVE1MIDQuMDEgU3RyaWN0Jyk9PidIVE1MIDQuMDEgU3RyaWN0JywNCgkJJHRoaXMtPkxhbmcoJ0hUTUwgNC4wMSBUcmFuc2l0aW9uYWwnKT0+J0hUTUwgNC4wMSBUcmFuc2l0aW9uYWwnLA0KCQkkdGhpcy0+TGFuZygnSFRNTCA0LjAxIEZyYW1lc2V0Jyk9PidIVE1MIDQuMDEgRnJhbWVzZXQnLA0KCQkkdGhpcy0+TGFuZygnSFRNTCAzLjInKT0+J0hUTUwgMy4yJywNCgkJJHRoaXMtPkxhbmcoJ0hUTUwgMi4wJyk9PidIVE1MIDIuMCcsDQoJCSR0aGlzLT5MYW5nKCdJU08vSUVDIDE1NDQ1OjIwMDAgKCZxdW90O0lTTyBIVE1MJnF1b3Q7KScpPT4nSVNPL0lFQyAxNTQ0NToyMDAwICgmcXVvdDtJU08gSFRNTCZxdW90OyknLA0KCQkkdGhpcy0+TGFuZygnWEhUTUwgMS4xJyk9PidYSFRNTCAxLjEnLA0KCQkkdGhpcy0+TGFuZygnWEhUTUwgKyBSREZhJyk9PidYSFRNTCArIFJERmEnLA0KCQkkdGhpcy0+TGFuZygnWEhUTUwgQmFzaWMgMS4wJyk9PidYSFRNTCBCYXNpYyAxLjAnLA0KCQkkdGhpcy0+TGFuZygnWEhUTUwgQmFzaWMgMS4xJyk9PidYSFRNTCBCYXNpYyAxLjEnLA0KCQkkdGhpcy0+TGFuZygnWEhUTUwgTW9iaWxlIFByb2ZpbGUgMS4yJyk9PidYSFRNTCBNb2JpbGUgUHJvZmlsZSAxLjInLA0KCQkkdGhpcy0+TGFuZygnWEhUTUwtUHJpbnQgMS4wJyk9PidYSFRNTC1QcmludCAxLjAnLA0KCQkkdGhpcy0+TGFuZygnWEhUTUwgMS4xIHBsdXMgTWF0aE1MIDIuMCcpPT4nWEhUTUwgMS4xIHBsdXMgTWF0aE1MIDIuMCcsDQoJCSR0aGlzLT5MYW5nKCdYSFRNTCAxLjEgcGx1cyBNYXRoTUwgMi4wIHBsdXMgU1ZHIDEuMScpPT4nWEhUTUwgMS4xIHBsdXMgTWF0aE1MIDIuMCBwbHVzIFNWRyAxLjEnLA0KCQkkdGhpcy0+TGFuZygnTWF0aE1MIDIuMCcpPT4nTWF0aE1MIDIuMCcsDQoJCSR0aGlzLT5MYW5nKCdTVkcgMS4wJyk9PidTVkcgMS4wJywNCgkJJHRoaXMtPkxhbmcoJ1NWRyAxLjEnKT0+J1NWRyAxLjEnLA0KCQkkdGhpcy0+TGFuZygnU1ZHIDEuMSBUaW55Jyk9PidTVkcgMS4xIFRpbnknLA0KCQkkdGhpcy0+TGFuZygnU1ZHIDEuMSBCYXNpYycpPT4nU1ZHIDEuMSBCYXNpYycsDQoJCSR0aGlzLT5MYW5nKCdTTUlMIDEuMCcpPT4nU01JTCAxLjAnLA0KCQkkdGhpcy0+TGFuZygnU01JTCAyLjAnKT0+J1NNSUwgMi4wJw0KKTsNCg0KJGRlZmF1bHRQYWdlQXJyYXk9YXJyYXkoDQoJCQkJCSdBdXRvIEdlbmVyYXRlZCc9PidhdXRvJw0KCQkJCQkpOw0KDQoNCiR0aGlzLT5zbWFydHktPmFzc2lnbignVHVybk9OVmFsX2xhYmxlJywgJHRoaXMtPkxhbmcoIlR1cm5PTlZhbF9sYWJsZSIpKTsNCiR0aGlzLT5zbWFydHktPmFzc2lnbignVHVybk9OVmFsSFRNTF9pbnB1dCcsICR0aGlzLT5DcmVhdGVJbnB1dFJhZGlvR3JvdXAgKCRpZCwgJ1R1cm5PTlZhbEhUTUwnLCBhcnJheSgnTm8nPT4nMCcsJ1llcyc9PicxJyksICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdUdXJuT05WYWxIVE1MJywnMScpLCcnLCcmbmJzcDsmbmJzcDsmbmJzcDsnKSk7DQoNCiR0aGlzLT5zbWFydHktPmFzc2lnbignZG9jVHlwZV9sYWJsZScsICR0aGlzLT5MYW5nKCJkb2NUeXBlX2xhYmxlIikpOw0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdkb2NUeXBlX2lucHV0JywkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsImRvY1R5cGUiLCRkb2NUeXBlQXJyYXksJycsJHRoaXMtPkdldFByZWZlcmVuY2UoImRvY1R5cGUiLCJYSFRNTCAxLjAgVHJhbnNpdGlvbmFsIikpKTsNCg0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdlbmNvZGluZ19sYWJsZScsICR0aGlzLT5MYW5nKCJlbmNvZGluZ19sYWJsZSIpKTsNCiR0aGlzLT5zbWFydHktPmFzc2lnbignZW5jb2RpbmdfaW5wdXQnLCR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwiZW5jb2RpbmciLCRlbmNvZGluZ0FycmF5LCcnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCJlbmNvZGluZyIsInV0Zi04IikpKTsNCg0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdkZWZhdWx0UGFnZV9sYWJsZScsICR0aGlzLT5MYW5nKCJkZWZhdWx0UGFnZV9sYWJsZSIpKTsNCiR0aGlzLT5zbWFydHktPmFzc2lnbignZGVmYXVsdFBhZ2VfaW5wdXQnLCR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwiZW5jb2RpbmciLCRkZWZhdWx0UGFnZUFycmF5LCcnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCJkZWZhdWx0UGFnZSIsInV0Zi04IikpKTsNCg0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdWYWxIVE1MVmVyYm9zZV9sYWJsZScsICR0aGlzLT5MYW5nKCJWYWxIVE1MVmVyYm9zZV9sYWJsZSIpKTsNCiR0aGlzLT5zbWFydHktPmFzc2lnbignVmFsSFRNTFZlcmJvc2VfaW5wdXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRSYWRpb0dyb3VwICgkaWQsICdWYWxIVE1MVmVyYm9zZScsIGFycmF5KCdObyc9PicwJywnWWVzJz0+JzEnKSwgJHRoaXMtPkdldFByZWZlcmVuY2UoJ1ZhbEhUTUxWZXJib3NlJywnMCcpLCcnLCcmbmJzcDsmbmJzcDsmbmJzcDsnKSk7DQogDQoNCg0KZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdhZG1pbl9WYWxzZXR0aW5ncy50cGwnKTsNCj8+]]></data>
	</file>
	<file>
	  <filename>/images/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/images/acor.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAADIAAAAeCAYAAABuUU38AAADjUlEQVR42u1YyVIbMRTsBlURyD/m37nhcsqHwCEkoM5Bb5NmMFQq5EAxB9tjLW/v1xJvb2+/4QM87erLFShCBCCBsN8ACOVM+1MEiDFXJABhfAL06YStJCABIEhA8VuxOyFAGHvJVjHHZJv5eoJFECARBNC+3nzFGKtqhxpI3XxzQL6RW+VWKGcOx6ShJsR1XZ4iqQqFG0BbrnBbiLXvdn1zbRHR0IUEzXOi5p391Tzt0aNp52vDDRHlObBhsytlRo+gj8HJHlZnWlRNjgeyXV5cfoQSwQU+yPPBDNFLw/ovSugf7NBGwQw0SQSkoZPhTal50YpcpgIrPGsq8sC6KGYHFATAjMJNhbyAHQFrK5C4oKoBNIGGLnTXtBvimDTH/YHXpUmgJyzHPIfPoazb1B2FHM1UnABA6KZg9gh1pB69qq5JeUnhv9ZtlaTRqCaPITFbiPFeukqXwafr3oHOfKE1tO4uYDf4ZYHino1Syv7UlVEpTdFlyRxOAO35+fnd8p7vseKFae3p+anEjpEeI7WtAXFnI5U27FSldLvh1FdqaeENU+0kjcgijUap6PquR/v9++lNxTRxJ2Z9wPgQa6idF5Fe815pQViCV6G0emMNtYZSttuf/A2FKrVfj49nI8nyYxA0TZDJ5JPFUJeuErwkhSjca8Xeys62wMx9sCbQHn/+LBC3w2JVlN2gq3GeojimjGBEafLuhICZenRUm8hWJaGYIlHNavcPDxFKglP4I2+dl7MgStB4f026Xjh2GmS1RC+gqK3MlKlnxf8G57Q0935UTRHQTqfT3yPOqxOzfuYC52b03GbnxYzRdjweNzm/UWU6d7zRiDU9+cqClxTYdcpWl3Y4HP6qT8x2MSDxPR6+gY+1w93dxtHzaUYlx0seF+UTERmHLJBT3QzQmE+O2AsCrVr94LRU79TDnHkIaHeHQxJELZszi6mgfno/9ypHUM6pEIQ0VzKKvShtBmZjXGA7u180XpW7hHb8fizwmEfaKZScPbQlAgXtkt7utAHOFwpTx1/g3p1QiIGWM3NN6HY6ncKrAYc7/q8Yz6ndrmxDcbORtyl5zk5uYZIiJZGwukPhK1XRWgQC2v2P+60+XCxebkRULg20YQFL4Wu+iNjlaaXr1tXEcmbxW5jlAoMQmqTtSU01Lpi69vSpPQTVPrZqV0hussr0t/q/sJP6Y+zz8uHTkE9Dzj9/AKgloyNtXUzfAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/images/add.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACYUlEQVR42q2T60+ScRTH/VvgTW1suWJmTTc1XblZ01GGgVPnLSARQ6cYD0iCCHhZpojzUq1gCiyWXARU5mVmTtRSWuoD07Vgtba2gvH220ObkFvaG7/befn5/H7n7Jy0tLOObraZ3u1pIpQuIdlh50elb+qjra+rSbGlkhBOcun/gcUstbsp8mpzEOuRZQS+b2Hz2xrcIRvkngbwjOxI7YvbrFNgUWw2aMPhryDmv7hgJEfxfE8P24ERK18XoF2SoGKiOMYZLTou0XrFNAoOz+ybEfy5i/HdATzd6EafXwl9QIehgBZ9252YObSB8AhQargRLhnMpyUFFCwbXlXh049t6sUhDO5ooXknx1FUGxJIlwWQrTbCeWDF3YkCFD3JkSUFnc4G0hWyUl81oWddga41KSTzwqSAb+Wgda4SYi8XIx90GFjpwPW+LDIpkE3z4r7PLgx/1FFwO06KyF0G2SIP5sA48nSZ8aSg3VYbt4emoN0ioPC3nCogfPWwBMaQ3c1MCVqsVaTBr4V+R4P2twKIFqtRa7lzDEzUQw8Hw34Ven2PcEWVnmpBNFUuu29hwREyQ7JYgyZfxZ+e/xYInWw0z3Dh2DfhWn8mmI8ZqSEKTGW0upelYcLDxzQ5mRxYAmx0JioBc2DfM+KB+V4CDqfLz9OO7ULVsxJW+djNWJujBk5KYvCrQczVQeqtgWG9Cw4KFpjZYCoYMQr+9zayRwpZLH1BpHgkF/1LBEzv9TBt6aHxtSGvNyMBR06Ej3JrIJde2J9N5PdcJXM0GdEs9cXoZeUF8pKCQaTLz9HP/Hp/A8Wz0Ay+WdgCAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/images/add_group.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACwUlEQVR42o2S3S9bYRzH7WIXy7JbF/tDtosldiHZZiammURkw1johm3qvUa1aylS05aJppiX6Oq9NGHUS+tYpcSGjraUktWMdC+18JwmfPdowmR14SSfq3N+n+eXz3mCojK0HJnOaSjQrDD8Nkqrg8l594XJbrAymfXzDE/1iXlZN8vkqxjm6Nug/x9Jp9Ok+LDFnIcXVUZTgODo5POSXDHOBAj4rcsMgHORVDoSKMhvsftf6k0Oh3p4fU/au0ZKeyhdq6SkY4W81tqJULNIilut5HntDKEtXLRF3D9Bs80vkOtd+/Xj2+QY9dh3ojK4Se3gOlHql0mVzsYK2+ZYaefSRmrZ4BodvUi5EJSmmPILjk4+prRnlYjbbaSwaYbNqhlh08p72WSJ1hfLb/HFFWs3H2Q2uulwMOVSEF1HxK2cYPKabeTXLkshZNuzS+wr6+zwuJFVdEsPNNMqGJx96LdpITMIDqNFSXtXgi+HUMHV0y1cdBOXbszmqei0HnJlQ+CpBBha7sbk1igal96iwVGN3o33qDAWgiN8hOucxzWnW/gFJV1OlHXZkakYQJNFibHNARR+zID56wSmvpmQOhILtbUS6doE3OXHH54IaAu/gP5vZKimESfQoNfRBuW8FAbXALzsb/z840H/kgZFJi7kkyJwyqNxIqAtqmkLF70X2NnZgdFoRNNCDSSzebD/WMS+bx++AwK7ZwH5I4mQMyJElnNw1r2Ax+OB2WxGyWg2FHNixOpu4fOmBXNbFsR0hEA5LUB6ewJu8CLOEDTb4PV6YbVakdPylK4qRJWlEEVjXLwypOCNmQ+pIRf3y8IQmpIXKKAtQAiB2+2G3tAHbt1DFOjToKQiOSMAr/MJIqV30KFvx+0kZaCAttCmyIxIlAwiJleD8DQxQrNi6FAUwsQRuPbsHm7G59LhaoRz1V1/AXtqXRNDcj9mAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/images/ajax-loader.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhEAALAPQAAABahP/MZiRpfy5tfhRigfjJZv/MZtC3anyRdJ6gcER3e9y8abSqbnSNdZqecEB2e9i6afrJZrCobhhkgCZqfwpegsaybCJofwxegUh5el6DeDRwfBBggQAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCwAAACwAAAAAEAALAAAFLSAgjmRpnqSgCuLKAq5AEIM4zDVw03ve27ifDgfkEYe04kDIDC5zrtYKRa2WQgAh+QQJCwAAACwAAAAAEAALAAAFJGBhGAVgnqhpHIeRvsDawqns0qeN5+y967tYLyicBYE7EYkYAgAh+QQJCwAAACwAAAAAEAALAAAFNiAgjothLOOIJAkiGgxjpGKiKMkbz7SN6zIawJcDwIK9W/HISxGBzdHTuBNOmcJVCyoUlk7CEAAh+QQJCwAAACwAAAAAEAALAAAFNSAgjqQIRRFUAo3jNGIkSdHqPI8Tz3V55zuaDacDyIQ+YrBH+hWPzJFzOQQaeavWi7oqnVIhACH5BAkLAAAALAAAAAAQAAsAAAUyICCOZGme1rJY5kRRk7hI0mJSVUXJtF3iOl7tltsBZsNfUegjAY3I5sgFY55KqdX1GgIAIfkECQsAAAAsAAAAABAACwAABTcgII5kaZ4kcV2EqLJipmnZhWGXaOOitm2aXQ4g7P2Ct2ER4AMul00kj5g0Al8tADY2y6C+4FIIACH5BAkLAAAALAAAAAAQAAsAAAUvICCOZGme5ERRk6iy7qpyHCVStA3gNa/7txxwlwv2isSacYUc+l4tADQGQ1mvpBAAIfkECQsAAAAsAAAAABAACwAABS8gII5kaZ7kRFGTqLLuqnIcJVK0DeA1r/u3HHCXC/aKxJpxhRz6Xi0ANAZDWa+kEAA7AAAAAAAAAAAA]]></data>
	</file>
	<file>
	  <filename>/images/bg-slice-squidfingers.com.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhDgAOALMMAKmpqcnKysTExL29vZmZmczMzLW2tra2tsTExba1tbW2tba1tgAAAAAAAAAAAAAAACH5BAEAAAwALAAAAAAOAA4AAAQ2kElGJgMzWHY2G1MlCRZmGVPhiQw5eqikSoqHTK4nT0u55RPQxZKwaHTGjMQUVH42TOFRx4wAADs=]]></data>
	</file>
	<file>
	  <filename>/images/bg-slice-squidfingers.com.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOBAMAAADtZjDiAAAAJ1BMVEUAAAC2tba1trW2tbXExMW2tra1trbMzMyZmZm9vb3ExMTJysqpqamwQrYMAAAAAXRSTlMAQObYZgAAAEBJREFUeNotycENgCAQALCqUUJgKEdjBEa4ERjhRvMhz6YYuoYbkyF0PAo/Y/OEV4DiIBFU0sUCmkYyLZWu7kofU60LnY7w+HQAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/images/bl.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAABkAAAAAPCAYAAAC80gMkAAACLElEQVR42u3dz0pUcRjH4bmAoAsIupV2s4jWZyFeREuhSFy5EHfhNkKEoHCbF+BGcFGW4qjj/NXxjMdxZHRs9zbnOBAERcs58XzguYGz/fJ7T+XgYCeGg25cdI+jVd+P09rXqB9+AQAAAAAAKK3K1tbHGN2cR3pej07jIBpHez4MAAAAAABQ7gFkeXkhxrf9yNJmnLUOo3n8zSsQAAAAAACg3API3NzzyLJmDK86xRms9ul+nHoFAgAAAAAAlHkASZLq0sbGWtyNLuIybTy8AjnxCgQAAAAAACj3API4fwWSpidxc92N9Oyk+BeIU1gAAAAAAEBpB5C8JKm+Wll5Hffjyxhk7egVp7CMIAAAAAAAQIkHkOkIsvbp07sY36YxuGwVI0jxEiQ/h3W0ZwgBAAAAAABKOYA8mfiwvf35YQTJ2sU5rPyfIPmP0fMhpDEdQowhAAAAAABAKQaQ6QjyLB9BNjffF+ew8n+CZGkjLrrHxRCSvwhp1/ejdfK9GETyE1kAAAAAAACzpvJ7SVJ9mp/DWl19E73eUdyNLmI46ETWb0a/Vy/GkPPOUZy3a3HWqhXDCAAAAAAAwCyp/KkkqS7Mz7+I9fW3kWXNGN/1Y3TTi+GgG9dZu/hPyFWu3yxkAAAAAAAAM6Lyt5Kk+mhiaaK/uPgy8tNYtcPdwo/7rDiT9UsfAAAAAABgJlT+ten/QZYndiZ2JwIAAAAAAGAWVSRJkiRJkiRJkv63fgIf5EmiqpUpyAAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/images/blocked.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACU0lEQVR42q2T7U9SYRjG/VvgQys313pbc81WW80EBT1EICDiIdMjNlojTcdhptlWzoY0PzS11F618kumMWPlS7bUXpmWx0ohTsGK0HNAIN0V0oK51E9e2/Xt+f2ePffuJyVls+MqLxfOUWXmT1QJM6MnuWm9jvtIaphJUmV2FimEG8JuQznxhaLYn7ZGhIcciLwfR2RsGPzDLriMxXhbQLCvNFJiXXi2lOIX7ndheeYDovYHiHZaEW29hN93W7A0aoe32ohxlZh/qchcLZkzGAQx2MPd7sQy40T06gUErBbMN1YhfMWCSBONcMMZhB/dgfskidFjhzwj8gOChCAG075aM5acE/EbF200/BdNCNUZVpU7SyLccwNvJBkYlGXQCcFn6gQT7LmJaHcrAg0V+KGVrdmFChJ8Yw28lko8JdKZhIAp1Ycij3sQtVkQOG/EevEqs+GnCjDf2gyHZE8oIZgmtaHF7naE640InSvZUOArVmO+pRkD0h1JwVSRmvE31GDRSoM7rYkfXLMqCQK11XBVm2AXpSWf4CxU0IxchFB3BwJ6OfzFef/BrEIMNj8Pwc5rGJbuQn/WtuQQ32llgtc6wuMu0yF4rz0+MJ9a+hdU5oCVx2C5FHxHGyYLZSuwp1e0VbBqFybys4kx5RF+9rgawVvt+FVPw0uq8E2jhL/ODP56G6Y0uejLSuVj8Nrb+EJxmHh+9CA7nrcP36tM8Dddjvdr5Sk8y965ArPrwv8yJNsvHJSmmx3EXuZJ7m5uQLSd689JY/rEqebezC3CTf+9fwCiP9Om7nIiOAAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/images/blue.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAnoAAABcCAYAAAD5wBgOAAAKX0lEQVR42u3dW2hl1RkH8HVynThqptqUJJLBxAsmlMQJoSlIKdbS4IsJzUCttApqRcenSqnQl5CXPrRF+qBW1BbpgGiQgOQhID5YhhY6TU2gsUlRq7ZNUsfbzKiTSeZyutZxMuZkLlVfdO/9+8Fi5+zz9uX/7Xx7nUtKYZPx8fHb4uHWuPrj2hGArPggrpm4nhwbG3ts65N6G5klA47EtT+uZ2ImHjpLJu6Nh91xDcR1oXKd4WBcL8b1RKzf3o2TpVPFuy4e9vT29t4SV2hrawtNTU1KBhmxtrYWlpeXw/z8fJidnX0qnno4Nvo+vY3MkhXr6+thaWkpLCwshJmZmc2ZuCFlYmBg4Lvd3d2hvb09NDY2KtgWq6urYWVlJczNzaW+eiSeejDW76W6U8/vGRkZqTQVkD3potfZ2bmxbp6cnEyn9+ltZJasaGhoOJ2JnTt3VjIRh7z9pVLp+dHR0dDT06NI55FuiLq6uiqro6Pj7unp6XT6nlIs4h19fX2PDw8Ph+MnToZXX1sOb717OBw/flzVICPqamvCly9pDld0tof6utowNTWVdknuir39qN5GZsmC2tracOmXLgpXdV22ORP3DQ4OPjA0NBTWjx0Pr8RMvPve4Uo+2NJTdXXhK5c2h6uvuKzyeGJiIiwuLu6uiT/fvmvXrsrJV15fCisH3tVUkDHpovfft96r/GFMTvX0nXobmSUrTpw4EQ68fXBrJu7q7++vPH751f9UnjfknaOnYq8sv/lOePWN6p5Kg95Aer07OfDWIZWCDDvwzkc93Nramg7X6m1klixnora29pqWlpZQLpcru7v8f28eOFg5pve3Rv1p0GtI233JyZOmZMiyjR4+1dN6G5klk5lIu3spC/Lw2Xuqvr4+HS6oURIAgHyqq3pk7IN80tvILDJRyDpVDXqlckmBIIf0NjKLTBSzTnb0wJ0wyCwykdM62dEDd8Igs8hETutUPeiVFBFy2fh6G5lFJgpZJy/dQhHobWQWmShknbx0C0W4w9PbyCwyUcg6eekWitD4ehuZJVsJOOOxTHzS0tWce9CzLQo5pbeRWWSikHWyowdFuMHT28gsMlHIOnmPHhSh8fU2MotMFLJOdvTAnTDILF8o5bM8lonP1jsGPfBHE2QWmSjCoBcUEfLa+WqAzCITBayTHT1wJwwyi0zkpU4+dQsukCCzyEQx6lR3vikQyOcdHsgsMpHXOpXPM+j56DLks/H1NjKLTBSyTl66hSI0vt5GZpEJg55PtEBur5BqgMwiE4Wo01n+1225XFYYyInN/ay3kVkyOauE8ukspGMpyMWn7amN+pXGx8dVDwAAAACyouoF7/Hx8cfiYTSuHVufA77Q0s78obimxsbGbt36pN5GZsmIg3E9FzPxvbNk4ul4+E5czTJxzp5K9ZuI9bu7atCLxUsn7u/t7b08rtDW1haampqUDDJibW0tLC8vh/n5+TA7O/uveOoXsdEf0tvILFmxvr4elpaWwsLCQpiZmdmciZ/En388MDDQ3t3dHdrb20NjY6OCbbG6uhpWVlbC3Nxc6qu/x1M/i/V7duNTt/ePjIxUmgrInnTR6+zs3Fg7JycnfxpPP6S3kVmyoqGh4XQmdkYpE3HI21sqlX45Ojoaenp6FOk80g1RV1dXZXV0dPRMT0//PJ5+Nn0Y44m+vr7bhoeHw+rRY+G3T78Q/vTXl8P7H66qGmTE9gsaw9d3XRV+9P1vhu1N28LU1FTaJdkbe/uHehuZJQu2NTaEwb4rwj23fmtzJp4dHBwcHhoaCofePxIee/KFMDP/z/DhkTUF2+Ki7U3hG1+7Otzzg29XHk9MTITFxcVf1V5//fW/v/HGGxubm5vDb/Y+H57b97ewfuy4ikGGHDt2Irz27wPhvUOr8Y/nlWH79u3pAnll7O0GvY3MkgXHT5wIbyy9vTUTXTfddFNt+vnXv5sO+/7yj0p2OFPqlZdffzPeJK2H/q9eXtkhnZ+fvzp9q95F6fXu5A9/XlQpyLB9+z/q4dbW1sqmid5GZslyJmpraxtaWlrCiTgE/nHmZcX5BDZ6J72/Nbqk8vXJdXV1p6dBINt3dJt7Wm8js2QxE0dW1ytZ2MjD2rpdvE/bU/X19emw5f9kAACQGwY9AICcqjP2gVs6kFlkIp91qhr0SmVfNA15pLeRWWSimHUyHwMA5JSXbqEI9DYyi0wUsk7Vg55tUcgnvY3MIhPFKNOWOlW/R099IJf0NjKLTBTD1o3P6h29kjJCPq+QehuZRSaKoFzyYQwAgEKofunWtAw5vRHW28gsWQpA+YzHMvHZeseOHgBATlXt6JW91RFySW8js8hEUQpVc+5Br0YNIZf0NjKLTBRDKZTPPeiZlsGdMMgsMpHlSc+OHrgTBplFJvI559nRA3fCILPIRF4nveodPZ+6BQDIKd+jB0W4wdPbyCwyUcg6Vf8LNBt8kFN6G5lFJgqhfJ5Br7T1m6iBnNzh6W1kFpkoRJ22zMOVQa9cLpuWIS83c+XyWX7W28gs2crERhY+/lkmPkv9SuPj40ZkAAAAAMiKqnfsjY+P3xYPt8bVH9cO5YHM+CCumbieHBsbe2zrk3obmSUDjsS1P65nYiYeOksm7o2H3XENxHWhcp3hYFwvxvVErN/eqkEvFu+6eNjT29t7S1yhra0tNDU1KRlkxNraWlheXg7z8/Nhdnb2qXjq4djo+/Q2MktWrK+vh6WlpbCwsBBmZmY2Z+KGlImBgYHvdnd3h/b29tDY2KhgW6yuroaVlZUwNzeX+uqReOrBWL+XNj51u2dkZKTSVED2pIteZ2fnxrp5cnIynd6nt5FZsqKhoeF0Jnbu3FnJRBzy9pdKpedHR0dDT0+PIp1HuiHq6uqqrI6Ojrunp6fT6XvShzHu6Ovre3x4eLjyCY1Dhw6Fo0ePhpMnT6oaZERNTU3Ytm1buPjiiys/T01NpV2Su2JvP6q3kVmyIH3Rb8pEc3Pz5kzcNzg4+MDQ0FAlBykTaTdYJs7eU2nYS/VLJiYmwuLi4u60o3f7rl27KicPHz5c2frbKDiQDemP4kbv7tixI6SejhfIO/U2MkuWpME+/b43ZeKu/v7+ynMbg79MnLunjhw5UqlNuoFK9YuD3p1p0BtIr3dvLjCQTelON2ltbU2Ha/U2MkuWM1FbW3tNS0vL6fMy8cmG5TTopfe3Rv1p0Guoq/v4H2QoImTfqZ7W28gsmZR2p1IWNvKQHsvDp1NfX58OF/iaaQCAvN5EbX5gWoZ80tvILDJRzDpVDXrpExtA/uhtZBaZMOiZlsGdMMgsMmHQA1wgQWaRCYMe4AIJMotMfP6Dnte/IZ/0NjKLTBj0TMvgThhkFpkw6AEukCCzyIRBD3CBBJlFJj7/Qc/r35BPehuZRSYMeqZlcCcMMssX7vefHsuEQQ/wRxOZRSbUyaAHLpAgs8hE/hn0wAUSZBaZMOgBLpAgs8iEQQ9wgQSZRSYMeoALJMgsMmHQA1wgkVlkAoMeoLeRWWQCgx64QILMIhM55f+JAAAY9AAAyJL/ATcbUa5HGqKHAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/images/br.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAA4AAAAPCAYAAADUFP50AAABUklEQVR42o3STUtCQRTG8f+cc+Ze7YP1EfoKQZ+hVSAIQVs3EREENasi8uUGQZukJLWil0VtXJWuArmFKLXwChqYnfX8OM88M+71uf3NH+OcQ1XxsSefzzNixNraak/4zziHOMGJ0O12AV5ksXGIOJwIqkKn0wFoyyI0hoKqomq0WjcAp7Iwoo6RmZJ+pdzf3wGcyaKIqop6w0eeWq3McDjcCCEZyHw02WRE3tNP+1QqZYAtAJmHRBXzHh9HRLmYvb1dBoPBegjJB4BNA6bimffEcUQuF1Oplmk0rkshJIXJeZs052Q2ns9Qs93k4GD/EChOJzMzm0VZEVE83pShUghJZwZGcYRodidTfFbEzu429fplCSj+RgCWW8qPKzcl/Uw5OTqmVqtOiijMey57777x8PjA7W2Lp6fHHlACNkNI+n/+jZWV5SvgHKiGkFzwz/kBJON0JB0tp4gAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/images/controls.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/images/css-error.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAFBUlEQVR42q1Xa1BUZRgmm6aZ8kf9cqbGGeSyCGILK+h0EYjRQTETAbkIXhAlkoVRbIpIGnKcpkKGLhb/ssufaqamX01jppRO4SV3THGwgLWExtw9lz3n7IJuzNv7fGcPbbArtz0zzyzn+973eZ7vfb/znUNc3CwuKclWJCXajkkJyS4GSUsY8aHfBAGXmOe4uFheTLiTyd0QUlasIm3rNjJeaqXRo90TwD3GMS/FJ5GI57z5CmfwilzSkiRSCwpp9P1uGvv8C/IfOkz68w2k19ZNQNu1W4xjPtDRKeKRJ6rCPHNctU2R0+xktLwixH1bKkkrryL/a4cp0PXuFBitbWJeq6gS8chDPptQZtUWIZ6YTPIyuylcvIW0sq3kf/0NCnR2TQvE+YpKRB7ywSP2yExaEiq7IqfbRUmVp3LIaNpHgTffmjXQFiU3X/AIA4miEhnTGeAdbiN9Tz3Jmdlk7GsWBHOFvtdJWAz4wIs9dTfxdg4wAxna9hrytx6cN7AnLE4B1olmQBEGGOradWQ0vxAzKE/mkMUNnSgbzwwwS/acKF/MwHxSSlq4iZ2TDRyTElMIUAufIa2mNuZQ89eQpQG9yQbcYsKWRr7SCtE3PEYq7+KIyIuAKLG+TcUm3+bScAPuyQbEBI5SJACyI4uCvWfnDdme+R/nY46QgRSKaEDOzCJ13QbylZTx3ysoFpec4eDVl4jjGfyhCkQwwJDT0kldX8hHakXsDDAP+NS1BYLf0opggFuQzS3YsFEApYuJAbTA4nRkC52oBuS05aL8ogVcupi1IMQpHsUoBk6ZEynke7aItOodvBe4FdXb+TlumDOQb/IwX8F6sjSgN9lAlzUpZ60yD6IYAwdcmIGuqW/BUBtEFcoqSee3YKygbiwKExcG4iMdxxNtkFLTydh/gIwXW+YNva5e8PmKiiOXP8xAHqqgPLGaZH4aAKOllfyvts8ZyAcPHkHwhgzk3e2V3GW2oJwUPl6VlY+Tv/2Q+MqZNTgP+Vg5DETsfdSPEpio2mYaWZ0rVhI40jljGM0HxNeUxuUPE3fN9JvwIcuEyoeHvr9ZrMJXXCq+cgJvvxMVmPeVVwrjyEMVLXHwTit+Jxi8NxAILFQ++TRVylopNqVsd4hqGAfbxIq03fwpzhtUb2gkjcfxi3e+GHc28v8ILeaGE8cuizMP+MAL/ojC4+Pj94yNjS3UNG2xx+O13xgeyRsccm++4Wz8yJu6bFQQ4T3B5dRqdplCbMgCjMGkKHdIGHnIFzzMB17wQwd6/1/5neD9um484vFKy4eHR54eGBwq7bvaX3fRdan1/DffHu3f6zx305HlDz8rIsNGiLvG8chDPnjAB17wQwd6UwwYRsjAyEjewKC7BIku16WXe8+eP9Lz45kPj3938usf3vvgwkVn05+u2j0ed/4avwXcYxzziEM853Ug3zTgLgEv+KEzxYBowe3bD2i6/qjH62UTf+UMua9v6r/2245fL/c1XfjF1fZz77mO02d+6j7Vc/rjE9/3fHb8xMkvWewr/OIe45hHHOKRh3zwgA+84IfOlBZYVzAYXBAYHX2QAxdJspx88+9bDu5frvv6H4W/DwyWMmE1r6j2St/V+stX+hpYxIlf3GMc84hDPPKQDx7wgRf8M/4XLRj8ZwFvmPv8/gAMPayqvkWyrCyWJCmBV2O75fEuZaTy5lqKe4xjHnGIRx7ywRNN419+QN3rDj+4dwAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/images/css-warn.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/images/CSS.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAACMAAAAjCAMAAAApB0NrAAAAzFBMVEX///8CHVT///8AAACWlpY8PDyJlq+ZmZmapbtnd5g1SnbMzMzu8PQTLF8kO2tjY2N4hqS7u7vd4ejM0t2rtMYzMzNFWYJvb2/u7u6FhYXd3d0DAwN3d3e8w9HDw8MSEhLV1dVmZmaxsbEODg4PDw/S0tJ0dHQwMDBWaI1XV1cfHx82NjYhISGIiIiqqqrk5ORLS0ufn59CQkJ1dXXh4eFdXV1FRUWQkJARERFUVFRSUlJERERVVVXz8/MkJCRBQUH29vaHh4ciIiJ+fn4+2s6rAAAAAXRSTlMAQObYZgAAAVxJREFUeNrtU9d2wyAMBRmDsfHebuKk2bPp3rv//08V2O0X9KEP0YOOLF10ha4h5Gj/yia2ZVk2Onte5iayL8bnM2tmUhpxffvJAECgYyehhz4GsTypK6hMakzIy7ZOIkqpdCh12NCllBdUCub41M8wdSoIWS9Sn/bmJH0ghfOTQkx7rwL6i8GGPuAZ6WG/FTgd5mPAdTWCBKGO1D2SCkSjD3Lo5nk4W2mM2ixSztOOQapaSBNxL1wTchkX+gOs0XM8yPuSn4bKNZGrNhNytY9Mn2WYFTxZiszUXC/0uLlKtC/J5Glo2kOib40L8TI9ioqhqbhB5+T9tRvIUCjMDkHzqYIGCQQdhty99dRYrnkfRd2UaFlYohZrpNYomTLcQ4D7RU7ESBw0yNjooAUrpwNPC5Zvpwwa1AnY9DE2AjaL0bzTvdVqo9akta0d6m3Z7ZdtfoTdzeH4LP7CvgGPyxhkN5jejgAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/images/delete.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACUklEQVR42n1SW0hTcRjfU6+91XvTbUcmRc4HH4aztYE+lNkurTWzi4qiwSCksqSLNp3RhEgo6cGolyBG7aHIaF0IhFKpyLlVW6SZZRs7Zztnl6Bf5zuytYv1wQ++7/td/ufP/8hkJTWrq9ItdlZ4V0cakbhzDMK9XlBPO+Jk/6u3esbDjrUg6/cg+3gUv15OSKA+OzWM5PgehM0Kz7rmN1rGkxg7gPTd88h4B5HxjRZD3BEnXLUjYFAVhzxTVutWrXKkrh1H6vop8GfWQH3pLHjaEbPLMaMpuE5Iq/LG96nBj3SDdw0hV9SXzaImblIi0qD05gPCdUpwbTuR7GsFf+4s/lWpGxOShnXUY0mrQD5gsUYB1moA12EGd8SMzMMHZeaMzydx3FETWJMey5rKggC1GLDLCK7VgsQhG4RL7rIAweWSONLEG3VYqS4IiCiViBv04GxWcI6D+M2y614hebJf0sR36PBFUXCF95XMXKxKjURnF4Qr438/23tfQq7Sk7ckDWmDFaq5fMC0Qt32c1st2N17kejoRvrmbQnUl86s2YZogxHkKfoX3skZP2u2iyf0gD9xWoIwOCwhNyd6nOIhFgS2MP7yP7G9a/M8s3U+1mxB0tkHfsgtPunFNQxcEJ+vH2xTM0hD2iIzz/Mbv618rw2GPthfOQ6/CG+vy/zQGSUDIVpvxCd1TYY40pCWPKUBGpHc/3pmduDJ0+eTj9yXp6d6nQsE6mlHHGlIWxRAJQjChmg0tmnp6zITjnzWhkIfmwILwRYC9bQjjjSkzfn+AP1sTO/MPaL/AAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/images/edit.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACUUlEQVR42qXT3UtTYRwH8P0L3UZXXUQg1V8Q9AKRdTVSiCS9mEngcuXQtUmBxNAww8Z62XAVasnmiGxiGDm0Jmszyr3P3FDncqPY3NvZ2dnZ2bfnnL1QEFH2g+/N4fl9nh/Pcx6R6H9LfM3YOTwdzvVNhqB6TjLxBcqxIHqf+tDz2Au5wY1u/Wdc1X2C7MEypFoHVHpbju8TALU5zGnm4vjXyEYWOQHgd95NOoYWIACqiTXspiQD8xVAOb4qfGDYEgokNMMiR7PI0EWkKAaJLI1vO3nEvlOIBGYQfHYea9NqrBhOwXW/oVXEHxhfRY5DsVQSoHyRBVWoQOk8i2SugHh4CjGrAin3DJD9ih23GfY7p+Mi/rT5KhGA5REShkA0gSh+GgIlNi1I+vvBbL1CbGEIec8LlDZs8DzpoEX8VQlAuSwANYghKRAos21F0nsDXN6GfFiKhPMKAuMSOHQSODXiAyL5qKsO1MJWkXSMNHuU4Gg7qFAb6EgLMn4VImNidN0crRyi7OHHCkDC/QRFfS8RW1ZUm1tBb15A2tuHsP4s6LgfTT3mCtClddavplxFtv0WBN70krHfgV6XoBC5iBSZJKQ7Ayq5Jaw9JzdVAKnmwy/3u7o0Cd+sCq7XI4g6mkGttyCxch1hgxjFVLS+TtxtRO0tGC/ffS/8We2DVphunwQyGwjqm2BV7cXSo0bM9h9Dp1JHxp4iOxtBevgYf/u4bl1qYBm7FozjHhzq4zC178vOKQ8f+evX2Xx0Dz3QdpCdH2xk3w6fWLQoDu3/0/oftoKuIJzlL/sAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/images/errorArrow.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABgAAAAUCAYAAACXtf2DAAAAlElEQVR42mNgoDVoZmAQAmI1LFieWhaoAPGdLm7Gj8i4k4vxA1C8hqqWHJYX+/1WRf0/CN9Uk/s3SZzxCzUtURq1ZHBack1V9h8tLcleI8H7HWYBCJ9XkvoLFH8KxOKUGh4IxC+QfQA1/DkQu1HF8DMqEn9HDae/4XdVFf6BMNTwZ9QwXBuIzwLxFTR8mWLDRwExAAABbMJLYz4x+QAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/images/external.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhCgDSAMQQAP////8AAHWDqVF2jP8AM4iUuBhQfL3M1P/M/5mZmWhxdswzADNmZsxmAGZmZo6Znv///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAABAALAAAAAAKANIAAAXMICRCQ2mOjAOswDCSDDsYtDEksrHeQBLPLVyi5AAmHEMDhAHR9QYApcjJkjZrtZd2y+16v+CweEwum8/otHrNbrvf8Lh8Tq/b7/i8fs/v+/9fBYKDIwoPLAAFLwUKLAUCkAIFB44CK5MAB42PiZQHgg+cBw+fAhAKEJaZBQCmIqosrqmRkYC2t7i5uru8vb6/wMHCw8TFfQTIySMLDYgELwQLLAQB1QEECNMBK9gACNLUAN0IyA3hCA3kARALENveBADrIu8s8+7W1iMhADs=]]></data>
	</file>
	<file>
	  <filename>/images/external.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAAoAAADSCAMAAABEgaHNAAAAM1BMVEX/////////AAB1g6lRdoz/ADOIlLgYUHy9zNT/zP+ZmZlocXbMMwAzZmbMZgBmZmaOmZ5hIpStAAAAAXRSTlMAQObYZgAAAJZJREFUaN7t1EsSxCAIRVFQ8G/M/lfbPOhVpLwD6pSlGWQAkSUetA9bTpLtrJaMoI3BYzshkQOOM6TSJlwYwhWvKz70Z0S32+3jFQ+aLzZAidPpzFZpQRuN23RCpbxge1vJNAkXWuGM19l3STC6//l2+3rqQevBBtA4Xc5kaQ/a6NyXE1J9wP50TbQIF7pywuvkuyQYmX6tjgQ8c+CfagAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/images/folder.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/images/folder.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/images/foldersmall.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/images/GetTag.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACqElEQVR42pWSS0iUYRSG3/86FzW7oJRjRaJGblwEgRFtirBV0K6l0QWCdhpi0LJlLaJNBNmigpCIga40pFkakTBhRlppjTccZ8aZ//Ldv5k2FUFa9O7Pc85zzjHwj9wdKdpCqwYhdIIyVUe4aCVcXAypSPmEHzH+Vnzn5UpMCJ1SWnYIqSGVglYCsYiJTNbHl8Xgsf03AOXirGtVOmrjJrgsgwsDlJsohRxRx0C+6B1Yc4JrjxfckKvSlvVOlHKOnMdAuUDIFGpiFj5+zePb7EqPuRbgVGeD8Ai99DXrIWQCERsoBhwlnyAgFIVcAFEKp/5QuDmY26ankxeklNbpYzu7Tl4epR5V5zdvcKM1UROLOQbLjCAoBRA+Wf6lcGs4HxNS35alucNbo0sRx3GQTqf7u7u7uw6ee7BPUf60sb4mVlXtgEuJ8ZFpMJ9sN350taWUHyKO0YKKxuJ0WjVv4PbExEQ/pfQEpbT2dWFPm2Ts6ebEupifD5HN5D6Vy6LNBADKRAPlqiXuApZRhrOp1R6eccWUs/8GpfQ6IWSkpfLos/TJoZl3GbKUWbqvNGufHOpVNgAERCQADcoqmM8TVEUNxDYmXDn5/llTU5NTX1+PgYGBwe32k72T4d5dk0O9mZ/qNgD4lNZZBhCyCgLCkF2RqI3baNzR7Lwaf4H2YBqc89FkMlkAkoXfl24CQMmnrUJyECbhEQ4/ZJiaK6Doc8Qad+PBGyWzuv3Maue2zlwdc33CU3XrXcsLGVzLgG0BtmlAlzUyM8so5Cp9Yw97h1YD2EWfBuvipqOVQkg5ZudL8FdC0ICBBRzUC0e11lfWeji7GJCUWXE6P+R8zM0VpAxZnxZqSjOxrISY12W18PF5j1oTQHxy1MvKe4ryA4qK6rcDxwX+I98Bx/ui3T5ZBwsAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/images/groups.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABlElEQVR42o2S3StDYRzH/YtzgQsNkRR5mYxZCWsvpYmlZJk0i04Mq1NiXmaeCxei5GWbbR65kcJY2ePCfr7PKbOcmfOrz8XpnPP9nedzvjWmPqXWG8ns2lfSbHgZhFLMunjJBhYuWH/gnFn8Z6x37pTZ/IzJZ2t+j3MtE/dtPzAj9EwdxnUBcrNR2idiTBcwHLphRGSIVveePsC2lNRuqvFUaj569+7ZvBXuDRDOCtdqWjiUpBhbuRKjoQvRPXsi4ILDhfknIJjQAqZVXgjEHkU1vOq9gAsOF9lSQJfvWAuQm/9jMHgt4ILDBS8F4HPGOyaP2FAwIXL5DyDEy5ukUOJZ8loQ+fePHJZxuOCVXHB5M3KQeJpWs0VsIvSC0AvCMQndIPSC0AtCLwguCMs7y11oAa5whnBOQ8DFZ7kLLUBuNgpcULmLGbjg6AUZHbigSi7+fKEoKUqK2nWzc6dCAIRVm+8QOeaxLX0AXBg+gsmi6APgQoELTVCbZ59anFFqcmxT44hKDfYI1dvWqc4alr9QonwBRdCT/JJs1ccAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/images/icon.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/images/icon.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/images/in-edit.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAB9ElEQVR42qWSPWhUURCFv7n3JVldIqhFohLiQjpthO0UItiIlYJkEUsFUbGIjYIgaRStAoEQsbM0IAFDGrUQYmEpNinEnxV3owhbGPOieW9mLN7bGLsEBwYOw+W759w78J8lZ8YfXz12vH6/k3rVHTDDzVBT3Bxzw1Uxd1wVNWNXb7a6tNS6MTfZmE7qR+tTPZVqGKhs6+LqaqpTwHSSZh7Szs9tW1/LPAAkrs6d8yPbBly816QAuAGwnisOuDlqYDhmjpqhuRftxro6tcF+1LQA4F68ZhDEHQ+CiyMmhCCIBEQUiU60QJIX5y0vAV1SAFwEBKKDCZg50SFIJBFQcTQUjk2tjGBefqiA+z8gEXB1TMAFCEK0WAC6EbqiYEghNoEsERIz2vMPWJ6fIf38jp6BAxzuGy0AeZZtOBDA3RERfBNoeeEhK69nOXL2An21Q6y9fcaOxRfUTyTXgpdZIiClCyl1ECGI0HwyycjoaSrvXyKPzrHzwxy14T24+HhiZn8jlE03Slnr7SaVwRqcur4xSyb2EU0OJq2PzdnLk9mYqWJqqCpmhmYZZoa5M1bZTfpmgerTK/xe+0oKrPyIaKQtW9m6xcb+id7+6q2hvXmShC+sfM/59C1q9stvy1ZX91Vj6OZqp30pqgxr9JbDzMnnevcP5hoKlIBOhkoAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/images/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiINCgkiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+DQo8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgbGFuZz0iZW4iIHhtbDpsYW5nPSJlbiI+DQo8aGVhZD4NCjx0aXRsZT5Bbm90aGVyIGF0dGVtcHQgYXQgQ1NTIHJvdW5kZWQtY29ybmVyIGRpYWxvZ3MgdXNpbmcgdGhlIHNsaWRpbmcgZG9vcnMgdGVjaG5pcXVlPC90aXRsZT4NCjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+DQoNCi8qIHRoaXMgaXMgYW4gZXhhbXBsZSBwYWdlLiBSZWFsLXVzZSBjYXNlcyBzaG91bGQgbmV2ZXIgaGF2ZSBpbmxpbmUgQ1NTIGxpa2UgdGhpcy4gOykgKi8NCg0KYm9keSB7DQogZm9udDpub3JtYWwgNzYlIGdlb3JnaWEsaGVsdmV0aWNhLHZlcmRhbmEsdGFob21hLGFyaWFsLCJzYW5zIHNlcmlmIjsNCiBiYWNrZ3JvdW5kOiM5OTkgdXJsKGJnLXNsaWNlLXNxdWlkZmluZ2Vycy5jb20uZ2lmKTsNCn0NCg0KLmRpYWxvZyB7DQogd2lkdGg6NjclOw0KIG1hcmdpbjowcHggYXV0bzsNCiBtaW4td2lkdGg6MjBlbTsNCiBtYXgtd2lkdGg6ODAwcHg7IC8qIEkgb25seSBjdXQgdGhlIGxlZnQgYmFja2dyb3VuZCBpbWFnZXMgb3V0IHRvIDgwMHB4LiBZb3UgY291bGQgZG8gbXVjaCBsYXJnZXIsIGV0Yy4gKi8NCiBjb2xvcjojZmZmOw0KfQ0KDQouZGlhbG9nIC5oZCAuYywNCi5kaWFsb2cgLmZ0IC5jIHsNCiBmb250LXNpemU6MXB4OyAvKiBlbnN1cmUgbWluaW11bSBoZWlnaHQgKi8NCiBoZWlnaHQ6MTFweDsNCn0NCg0KLmRpYWxvZyAuZnQgLmMgew0KIGhlaWdodDoxNHB4Ow0KfQ0KDQouZGlhbG9nIC5oZCB7DQogYmFja2dyb3VuZDp0cmFuc3BhcmVudCB1cmwodGwucG5nKSBuby1yZXBlYXQgMHB4IDBweDsNCiBtYXJnaW4tcmlnaHQ6MTRweDsgLyogc3BhY2UgZm9yIHJpZ2h0IGNvcm5lciAqLw0KfQ0KDQouZGlhbG9nIC5oZCAuYyB7DQogYmFja2dyb3VuZDp0cmFuc3BhcmVudCB1cmwodHIucG5nKSBuby1yZXBlYXQgcmlnaHQgMHB4Ow0KIG1hcmdpbi1yaWdodDotMTRweDsgLyogcHVsbCByaWdodCBjb3JuZXIgYmFjayBvdmVyICJlbXB0eSIgc3BhY2UgKGZyb20gYWJvdmUgbWFyZ2luKSAqLw0KfQ0KDQouZGlhbG9nIC5iZCB7DQogYmFja2dyb3VuZDp0cmFuc3BhcmVudCB1cmwobWwucG5nKSByZXBlYXQteSAwcHggMHB4Ow0KIG1hcmdpbi1yaWdodDo2cHg7DQp9DQoNCi5kaWFsb2cgLmJkIC5jIHsNCiBiYWNrZ3JvdW5kOnRyYW5zcGFyZW50IHVybChtci5wbmcpIHJlcGVhdC15IHJpZ2h0IDBweDsNCiBtYXJnaW4tcmlnaHQ6LTZweDsNCn0NCg0KLmRpYWxvZyAuYmQgLmMgLnMgew0KIG1hcmdpbjowcHggOHB4IDBweCA0cHg7DQogYmFja2dyb3VuZDojMDAwIHVybChtcy5qcGcpIHJlcGVhdC14IDBweCAwcHg7DQogcGFkZGluZzoxZW07DQp9DQoNCi5kaWFsb2cgLmZ0IHsNCiBiYWNrZ3JvdW5kOnRyYW5zcGFyZW50IHVybChibC5wbmcpIG5vLXJlcGVhdCAwcHggMHB4Ow0KIG1hcmdpbi1yaWdodDoxNHB4Ow0KfQ0KDQouZGlhbG9nIC5mdCAuYyB7DQogYmFja2dyb3VuZDp0cmFuc3BhcmVudCB1cmwoYnIucG5nKSBuby1yZXBlYXQgcmlnaHQgMHB4Ow0KIG1hcmdpbi1yaWdodDotMTRweDsNCn0NCg0KLyogY29udGVudC1zcGVjaWZpYyAqLw0KDQouZGlhbG9nIGgxIHsNCiAvKiBoZWFkZXIgKi8NCiBmb250LXNpemU6MmVtOw0KIG1hcmdpbjowcHg7DQogcGFkZGluZzowcHg7DQogbWFyZ2luLXRvcDotMC42ZW07DQp9DQoNCnAgew0KIGZvbnQtZmFtaWx5OnZlcmRhbmEsdGFob21hLGFyaWFsLCJzYW5zIHNlcmlmIjsNCn0NCg0KLmRpYWxvZyBwIHsNCiBtYXJnaW46MC41ZW0gMHB4IDBweCAwcHg7DQogcGFkZGluZzowcHg7DQogZm9udDowLjk1ZW0vMS41ZW0gYXJpYWwsdGFob21hLCJzYW5zIHNlcmlmIjsNCn0NCg0KaHRtbD5ib2R5IC5kaWFsb2cgcHJlIHsNCiBmb250LXNpemU6MS4xZW07DQp9DQoNCjwvc3R5bGU+DQo8L2hlYWQ+DQoNCjxib2R5Pg0KDQo8ZGl2Pg0KDQo8cD5BbHNvIHNlZSB0aGUgPGEgaHJlZj0iLi4vIj5HSUYtYmFzZWQgdmVyc2lvbjwvYT4uPC9wPg0KDQo8cD48YSBocmVmPSIuLi9kaWFsb2cuemlwIj5Eb3dubG9hZCB0aGlzIGNvZGUgKyBpbWFnZXM8L2E+PC9wPg0KDQo8ZGl2IGNsYXNzPSJkaWFsb2ciPg0KIDxkaXYgY2xhc3M9ImhkIj48ZGl2IGNsYXNzPSJjIj48L2Rpdj48L2Rpdj4NCiA8ZGl2IGNsYXNzPSJiZCI+DQogIDxkaXYgY2xhc3M9ImMiPg0KICAgPGRpdiBjbGFzcz0icyI+DQoNCiAgICA8IS0tIGNvbnRlbnQgYXJlYSAtLT4NCg0KICAgIDxoMT5UaGlzIGlzIGFuIGlubGluZSBkaWFsb2cuPC9oMT4NCg0KICAgIDxwPk5vdGUgdGhpcyBwYXJ0aWN1bGFyIHZlcnNpb24gd2lsbCBub3QgcmVuZGVyIGNvcnJlY3RseSBpbiBJRSAmbHQ7IDcsIGFzIG5vIERpcmVjdFgvYWxwaGFJbWFnZUxvYWRlciBmaWx0ZXJzIGFyZSBiZWluZyBhcHBsaWVkLjwvcD4NCiAgICA8cD5BcyBhbHBoYSB0cmFuc3BhcmVuY3kgaXMgYmVpbmcgYXBwbGllZCB3aXRoIHRoZSBQTkdzLCBtYXJnaW5zIGFyZSB1c2VkIHRvIG1ha2Ugcm9vbSB0byBhbGxvdyB0aGUgInNsaWRpbmcgZG9vcnMiIHRlY2huaXF1ZSB0byBoYXZlIGEgdHJhbnNwYXJlbnQgcmlnaHQtaGFuZCBjb3JuZXIgdGhhdCBkb2VzIG5vdCBoYXZlIHRoZSBsZWZ0IHNpZGUgdGlsaW5nIHVuZGVybmVhdGggaXQuPC9wPg0KICAgIDxwPkZvciBleGFtcGxlOiBUaGUgdG9wIHJpZ2h0LWhhbmQgY29ybmVyIGltYWdlIGlzIDE0cHggd2lkZSAtIHNvIGEgbWFyZ2luLXJpZ2h0OjE0cHggaXMgYXBwbGllZCB0byAuaGQsIGFuZCB0aGVuIGEgbWFyZ2luLXJpZ2h0Oi0xNHB4IGlzIGFwcGxpZWQgdG8gLmhkIC5jIGluIG9yZGVyIHRvICJwdWxsIGJhY2siIHRoZSByaWdodCBjb3JuZXIgaW1hZ2UgaW50byB0aGUgImVtcHR5IiBzcGFjZSBsZWZ0IGJ5IHRoZSBmaXJzdCBtYXJnaW4uIChOZWF0IHRyaWNrLCBlaD8pPC9wPg0KDQogICAgPHA+VGhpcyBhcHByb2FjaCBtYWtlcyB1c2Ugb2YgdGhlICJzbGlkaW5nIGRvb3JzIiB0ZWNobmlxdWUgb2YgYmFja2dyb3VuZCBpbWFnZSBsYXllcmluZywgd2hlcmUgdHdvIGVsZW1lbnRzIGFyZSBuZXN0ZWQgaW4gb3JkZXIgdG8gcHJvdmlkZSAibGVmdCIgYW5kICJyaWdodCIgaW1hZ2VzLjwvcD4NCiAgICA8cD5JbiB0aGlzIHBhcnRpY3VsYXIgY2FzZSwgdGhlIGxlZnQgaW1hZ2VzIGhhdmUgYmVlbiBjdXQgYXQgODAwcHggd2lkdGggYnV0IGNvdWxkIGVhc2lseSBiZSBsYXJnZXIgZm9yIGZsdWlkIHVzZS48L3A+DQogICAgPHA+VGhlIGRpYWxvZyBpcyBzcGxpdCB1cCBpbnRvIHRocmVlIG1haW4gY29tcG9uZW50cywgZm9sbG93aW5nIGEgImhlYWRlciwgYm9keSwgZm9vdGVyIiBmb3JtYXQgLSBzcGVjaWZpY2FsbHksIC5oZCwgLmJkIGFuZCAuZnQgaW4gQ1NTLiBUaGlzIGZvcm1hdHRpbmcgYXBwcm9hY2ggaXMgdGhlIGlkZWEgb2YgPGEgaHJlZj0iaHR0cDovL25hdGUua29lY2hsZXkuY29tL2Jsb2cvIj5OYXRlIEtvZWNobGV5PC9hPi48L3A+DQogICAgPHA+ZWcuPC9wPg0KDQo8cHJlPg0KJmx0O2RpdiBjbGFzcz0iZGlhbG9nIiZndDsNCg0KICZsdDtkaXYgY2xhc3M9ImhkIiZndDsNCiAgJmx0O2RpdiBjbGFzcz0iYyImZ3Q7Jmx0Oy9kaXYmZ3Q7DQogJmx0Oy9kaXYmZ3Q7DQoNCiAmbHQ7ZGl2IGNsYXNzPSJiZCImZ3Q7DQogICZsdDtkaXYgY2xhc3M9ImMiJmd0Ow0KICAgJmx0Oy0tIG1haW4gY29udGVudCBnb2VzIGhlcmUgLS0mZ3Q7DQogICZsdDsvZGl2Jmd0Ow0KICZsdDsvZGl2Jmd0Ow0KDQogJmx0O2RpdiBjbGFzcz0iZnQiJmd0Ow0KICAmbHQ7ZGl2IGNsYXNzPSJjIiZndDsmbHQ7L2RpdiZndDsNCiAmbHQ7L2RpdiZndDsNCg0KJmx0Oy9kaXYmZ3Q7DQo8L3ByZT4NCg0KICAgIDxwPlRoZSBoZWFkZXIgYW5kIGZvb3RlciBlbGVtZW50cyBhcmUgdHlwaWNhbGx5IGVtcHR5IGFuZCBzZXJ2ZSBwcmltYXJpbHkgYXMgaG9va3MgZm9yIHRoZSBjb3JuZXJzIGluIENTUywgYnV0IGNvdWxkIGVhc2lseSBiZSBleHRlbmRlZC48L3A+DQoNCiAgICA8cD5UaGUgLmMgY2xhc3MgaXMgd2hlcmUgdGhlIHJpZ2h0IGNvcm5lciAob3Igc2lkZSkgaW1hZ2UgaXMgYXBwbGllZC48L3A+DQoNCiAgICA8IS0tIGNvbnRlbnQgYXJlYSAtLT4NCg0KICAgPC9kaXY+DQogIDwvZGl2Pg0KIDwvZGl2Pg0KIDxkaXYgY2xhc3M9ImZ0Ij48ZGl2IGNsYXNzPSJjIj48L2Rpdj48L2Rpdj4NCjwvZGl2Pg0KDQo8cD5UaGF0IHdhcyBhIGRpYWxvZy48L3A+DQoNCjxwPlJlc291cmNlczo8L3A+DQoNCjxwPnRsLnBuZzwvcD4NCjxpbWcgc3JjPSJ0bC5wbmciIGFsdD0idGwucG5nIiAvPg0KDQo8cD50ci5wbmc8L3A+DQo8aW1nIHNyYz0idHIucG5nIiBhbHQ9InRyLnBuZyIgLz4NCg0KPHA+bWwucG5nPC9wPg0KPGltZyBzcmM9Im1sLnBuZyIgYWx0PSJtbC5wbmciIC8+DQoNCjxwPm1yLnBuZzwvcD4NCjxpbWcgc3JjPSJtci5wbmciIGFsdD0ibXIucG5nIiAvPg0KDQo8cD5ibC5wbmc8L3A+DQo8aW1nIHNyYz0iYmwucG5nIiBhbHQ9ImJsLnBuZyIgLz4NCg0KPHA+YnIucG5nPC9wPg0KPGltZyBzcmM9ImJyLnBuZyIgYWx0PSJici5wbmciIC8+DQoNCjxwPm1zLmpwZyAob3B0aW9uYWwgYm9keSBncmFkaWVudCk8L3A+DQo8aW1nIHNyYz0ibXMuanBnIiBhbHQ9Im1zLmpwZyIgLz4NCg0KPC9kaXY+DQoNCjwvYm9keT4NCjwvaHRtbD4=]]></data>
	</file>
	<file>
	  <filename>/images/JS.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAACMAAAAjCAMAAAApB0NrAAAAwFBMVEX///8UNkP///8AAADy8vLg5ObAyc3Dw8M0NDSRoaehoaFFRUWurq5TbHWxvMDS0tIjIyMsLCwUFBQ7OztDXmmClJskQ1Dv8vKysrJ9fX14eHihr7QzUVyQkJBlZWVieYJ/f3/r6+uJiYl5eXnQ19na2tq+vr5yho7e3t7MzMxERETOzs5ubm5MTEwkJCTv7+8bGxsEBAT8/PxZWVkqKiqqqqrm5uarq6tWVlZISEi8vLxVVVWdnZ24uLgZGRmnp6f1tcsQAAAAAXRSTlMAQObYZgAAAXBJREFUeNqtlNl2gkAQRLEQWaKogECCG+5RY9SYffH//yqzMMOIGF9SLwzFPd2nu+nRtH9UVSo3MjszHEuXssYv2mJEjd2S2ZbDkLYJKXPojX/W1HiMmW22KWQpCNFwmJ68mx5JqgMVqQY+AHdATqGdUMNAq3nGAI2KonJmXrnKROzZjdC5zLjsGYicjGF11WRkJPw0mHCaM7Q/CuOKkIQStRPoRmFSdGXiuSF6qNVVxskDEdmAf8600gLEc50y7RTGXO3Pw3OR4QM2OoLpoNcvMlMxy4wKcL8pMvxYk1AXC6+cCV0g4F3C63s5kyvBenSFCbA/rAjz9SZbEhWYIOJlPfkm7MxDxkxsOpFGAhx1MtKZr/x6yGtn2vf0GQlzeyej0GbwHprOgi3Jod/UCgxtKt+qT48t24pvoMKEbDhVuaRyj3MmrOHbK911wYR2hOm2Xsqwurji7ejCpUH7w/bb38QXbxZ+b+yW8dX754/Pv/61G2KLqFr2AAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/images/loading.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/images/marker.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAYAAAA7bUf6AAABvklEQVR42rWUv0sCYRjHO0zFOCoSSUFsq1AHoSkaisAGbXCRlsAtWiSD1v6AoMUtUAQnSRGkpNGoIWjMoU0qInSRTNGwunv6PvAeHKbm4guf4R64zz2/3puYGNchIgksggg4BodgE0yNKnCDC9ABClAF3+AZ7IHJYYIQqPJLrVaLSqUSpVIpymazVKlUSJwuyPTNSmRQVVWVCoUC+Xy+rizL9waDIWM2my/tdnstGo1SvV5n0Q846dcDLkHN5/Nks9leEQ6DGWAAZrAE4Xk4HKZ2u82iFljRS7iJnUajQR6P5xOhEJD6VDxvMpnu0uk0iT7F9RKeglIsFslisdwgJA/p/W4gEND686CX8BjVeDxOeEz8M0C3y+XSJB96yRFLkskkcSNFHwadVa/Xq0ne9JIt3oNyuUxWq/UJoYUBApafxmIxTXKll8hsVRSFIpEISZLEJc31EWw7HI53/phYxP3eMR+Ar1qtRsFgUDUajdcI74BlLoEzYEEul9Mmwya5V2ICBf5Cs9mkRCJBfr+fnE4ncQ+4BJEBC3jj1gat/Sw4E/dGpb+HS3gE66Ncwg3AG/UiVrwJbsVtnh7Lr+MXM921rfVCPpAAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/images/mask.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/images/Min.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAACMAAAAjCAMAAAApB0NrAAAAdVBMVEX////z8/N+fn6vipWjeoX07vCIiIhSUlIPDw+FhYXo3uGMWGd0dHRmZmZCQkLGrLNqJjnu7u5LS0vd3d1dXV0hISGZmZnS0tJEREReFiq6urr29vYkJCTRvMKYaXaWlpa7u7u6m6SBSFg8PDwAAAD///9TBRvc5fvrAAAAAXRSTlMAQObYZgAAAJFJREFUaN7tkUkSgzAMBJ09ZCPscQAbY6z/P5ExXC2KB7gP0qVrpJKEiEQie2jsBOzRt6o8hJS20w7o24BavMqQ8//1BMwwon6LasMZH8Q7bYeEJ5EiBJnwLPGBkyJDnuC8a9a5SAQZ1llmOUXUe0dbdmeVknR+aTfxTibPG85ywzrJruspLfsLm9/z9SXNrv/N9OsWK4NFO+MAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/images/ml.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAyAAAAAFBAMAAABP15VDAAAAElBMVEXd2NDg29Pl4djs6uD39upWVkaCjt6rAAAAIElEQVRo3mMIMRJgGAWDCIxGyGiEjILRCBmNkFFAJgAAyHoC79V2ZdsAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/images/mr.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAA4AAAALCAIAAADA5ys1AAAAJElEQVR42mO4e+MCLvTg9uWnD2+8efXg+7dXYWFuDKNKh5BSAAx1edikuuYkAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/images/ms.jpg</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[/9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAAZAAA/+4ADkFkb2JlAGTAAAAAAf/bAIQAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQICAgICAgICAgICAwMDAwMDAwMDAwEBAQEBAQECAQECAgIBAgIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMD/8AAEQgBkAZAAwERAAIRAQMRAf/EAE0AAQEAAAAAAAAAAAAAAAAAAAAKAQEBAQAAAAAAAAAAAAAAAAAABQYQAQAAAAAAAAAAAAAAAAAAAAARAQAAAAAAAAAAAAAAAAAAAAD/2gAMAwEAAhEDEQA/AKxWYWQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH//2Q==]]></data>
	</file>
	<file>
	  <filename>/images/notes.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/images/ppbmDonate.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/images/revert.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACBklEQVR42r1TQUiUURic9+9qqEW6aparFApiZ0/VRS/tKRZaiIgOJR0V7KIdNOggdZOgDh2FLiJezGMaWIc8SKCgkusuKivVQSNSc9/M93fQtjU7FEQPPh4z8A3vezMf8D/PzZGr964/T0aKueBvBJjXDXo+K+ZcMeh+1dlotJSkhKg2UbWkIC+QQn1lHEZhJZd5PNH1sueQQPdU5wVJffHyhmRVWQwVJRWIBlEoFGQGM4Gh4EXMp+eQXlsZnOx90x8FgK7J242i+lpj55N1Faexyx0ELgKaoIOyUAXsPUHPUgCIAoCoVPx4Q7K2/BRoRJ5E+uMish+yKIzgifqaOCRhZTXzZLr/bW+xQOLksUrs+G1IhqmFqXVRY6O3Ju4W/1HHo0tz8pydHpjpPuQCqbayknI4BMht5kDPI837LnDEe94p5qIAQE9QhHMOXgTz/K2Nr+/PDP7KBQf+zm593cKu30HsRDW8Zyox1D70J9lwAHBt+EpPfVV8qPlMMxQatne3sby6jOx6FvQ/cyBqH0tYePreFUbwnmOZXKa9NFKarI3VIY88Wppa0HSuGRYKZgaaYDDIDOOjLwoviADA0nj6S9Pls6sbnzZqvu3ttbrQwQUOBuw3hwYLBYUhQhMW55ew+e7zgyNR7nh4sZFeKZIJebWRqpZXIAqS4cdtMmSH19w/2dDvlBNR315yTx0AAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/images/scriptdeploy.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAH0AAABeCAYAAAAOuBu9AAANVElEQVR42u1dTY7sSBHO5TAbMzM8CSGERyMQiFlYCAkJNtZILGBVYjEbNpZYsrHEko0XHMBH8BF8BB/BR6gj1BGKDoejnXZn5E+Eq15Vt1OyePSUq+z84ueLn8w05hjHSBynl6t9uQbzm7+dzbfl9fX61V/G6e/GNPPnsmO6nndkE5C/+OPF/L29mn+PV/O/K3/Bf/9HdzW/O11f7utfruqYwucapfnqu4v51+AHmrv+e7lOgvL1r8+z9h/jwUdl/lAhcBLAt+Cj5pfHtD464Fqw7Qu1/RgPOnLz3V8vuwIO7gEJ3jEedHTmP2c/iETUiLH/8k/I5H9o3EQPrAYI0zFiRjEryGBd3UyIs9touc+sg28GFs8/QDmFdGDKQTDoHmTxH89i4jw1VhibB8AGgK+e63ILi1mbf/Y86Ah4Ec0LAHwkcB+JuQPQZw9wg4PQNgGwXd+xm9b3LFsHzU2PubMP5MtBGcYE4Pp5fjrH3ytLufJZabafG/cCfmC1HP3yR8uy5bNWNpMVxH/njHbbgJwNZi5P8z3lfH/vMNe29uYRz9PvC/z3P/KgA1H7GIOsk89Ej5bVqzZgV4nASSIb+zc73et+W/Kg/7m+JvjzZ/bHlwQTbQtGKwSNtNwogFdxpsGbU1dL1UNrd78xu52DcZOZ3vrulHkp5u+/bIRMwn1qS/jEZr71FlRQ26t3CPi4CYmyiHu2FqGKVqz15wvrOySWtFcIzfwAAKwvMYOErnmHgI8JCSQCrt6w6iJSM1vGVA/CdyDLIdT2Lz8NwSILVM7gc8+fZRsE5rlyAFdbliILgDMGNFZSlKotIRSNMqjtcEGqFhl9Y54zlGsFgPuAa6042zWagDXI5+8ehO9zni/FhFAaNaaYAjX358q6lcJwJwQcp60kLK3y+2MskKp83UUDDxcUW3ZOD0YAR3ntKlFbz4LERmbCuW/6zNkBZozPzazIQTI091rAg/+OBR6Yf1p+Xv5cIGRgZeAC4fzym1gQCYBCoOUxoVHlYPMphRJ6PqnLuuwxwfVUNIntoIHPff/j5YahXeGsBGLNPmQ+cyHhyay4OpYgnjcJn1irkisSLvkeJn6ZaNCkFHOPod0tNL6ctNz1m2ES1HnYcyih0iY94zL5oyDE7RVmekx81gitj22UXGrv2UZjTpYvtq8yWutcnT3h7pxdtSBS2ykkTA1tK4WZroWCHTR1TZTJX1K3+fS/cA9YCwCI7oXPwP8H7gD/fd1D31tA2sStmz4H98C9EGJi3iAL+MouwjzavzOYT78fzM8LTVGkE86x1FJShu9GvhVMfqgPHsw8aHyoBctX3YNmDJu4Aci0yGKdPiUmT+XM1Eiimb4bfsN+XuwlkFgITdq6VyRbLre0aFkQeNDoFBLoyvfH3A9CQYJB/0ZeMRqqZYPWQiURrUjrMLutUzgxHC2FGtcqzHSvEJibpsqzSRNT++Ph86S5NNEpRNEFjItrgDVwfS8IKrZyoRkny8HnIKpE30y+9Sy2pPJ7xQKTW2YyJOWnpHh+iqs/DZZJxmZKX39e6AIAJStx4Fl+mvs/A89F1iPev48zadV0Aku7lco0MvfFV5fJpNJL2hdpA7DnpTW3nqSS0xJXzh4Bf+tPOdBoeRQ8A2cN4Pely69SBBajhDpo/Rb2PShS1IPCNyeQuVjwCAzQAhCSmCINTbB7EhonN4DfwGwb9ptxzwca6NNmYvvahRtx/v1kmddG4V9bBZk7x1qYLBq8/SetjxCS3JOY4U3zEjbV7P0gFFzPv8094kBvLdZeKghZrRCYoJXIDHVvcpOy14Wxe+t8SF5I8mA27ouM9/W2XwSrwXUF8QI1rmL3sJ+1ew0yRbJEIzBNyK2gBkC2zfXiIOEk7aG4PD5F26zMDyRkwl24pdNEwzNxZv9tF+/gDfncQpqqbRe5f31DpgcF6J7nJunnYmrUttb6ot787Lfja4ZNuqiRkizwPZxpXYPmJnvwNw502DHDHvDcKSFf+uLLwqGdUuCMwkqcfM8d7otb1pYXVihXq8Os7eS6/g4gxYDOvQMsrgxV6HzsHzlBCvuuHJN9Jxb+xjW0POmI2VJkG77tBXboWmtJy1oizh9jChUzVJAO5pJIwAlc85CejXMVjxoF6IMCdOZemIh7gAcTSnntNND7KH/sC8eIk/hCOghx+OihTgQpfwDQM+7ecjLd9wAdLuylW6pXkOShqhpkxcD02pYEwVhMJSR1OGKo2RcH8wANa/EoMQXPGAbvLGHSNwDde281Tb500lJIFZrKIsIslZZvLFegE/Ej4QDBgMSM6/lDxR6wAEt7VxUkpXGmfkhn0vcHfamRa/aZgQnEUKybLpfW7LsNSTEDcJoYLufrQTsBTLt6tq7B56soxickuMInE4RYp0cEHYcLdKqGuXw0lTFRW7qoJMptdqUYAppZWYmVbv53wfYIgJC4wA+v3C0ZcB8WdDdQqJ3dfFEtmuq1NWvuOK6ge4k00OVr6qvpfbH+vhSa0PdLQE9t0/7MoMsaCIwnQ7Y/6NxuWKiZqQWL3MgbOhu2mHR/9h51b+WMvfcGHTY+2HtwvwUuKH3/ulJhijlwHxZ0d7YLTaR5aNCByHHMO33S3gvoWRzoLsYt3XaEAx1zyaXZtyde0wu/J+gd8169kXfPaCp0wfdw17OxSya9OsTlwu1ULn43sf7c0ogycZLc1TcI09IB1IA+fJ6wS/4ew45su4zuUgFgsKDTTa6E2qIoC7Z0zdjRwzATNBKMeqcK2a1AH29pouXvwdWzZT/aJNfdKQXrqvDB37etyUA6F3beeECvkq3U/v5XA5y0hToi9evywbjFZ/qPct0pdlKH0/qYXvi3BZGLpw+AkjP95E5IiJYGT9qsLzPyRRI+cEsjX5emSepEkEdXMkVmHvn9ZTESaKdrz63FuUQQgPuTr3F1DCc88Hdg/lAMgpQtfJaaO0AoMFU7bAhansA7KiVw0kJNkDwWnmxcanLDvYs0kqqzWYoPY1Jen+ts4SwEWYFYNwPgc+QTGymq1YRu28Ihe7dwjS2jl7qLThHlCLNxaDrLJB8U0mDqtYOJjFkVM/XJfzO++reUNmbJqRQuAVo3c2Zey/J2vjRbeWpWn57DvsOV3EjLxsmWN6W2THM9bikrWuA5wXSnkM1Fc9wl2KUuv2XfGuCk90Y1VLrZb7iUuLiHmBWsUn8dE1qmr67JkxpIlnxF7yGNlcOfS9m3pv05Kuxs2MV/4TiymSYktBSZ1p/bnTExLdWxLcyy1TVDYts2LyhLjj/b+GQpEauNfHVLVFWv8zQN0LLe7c4RwzQBsQ2Si29uzdL8sLRUx/ata3r6NFYDBca949ayF35l3m4wJPXnvYIA9jEEcIheVqxZ8EALESkcguKL3f4U3rumUS1njrUaLkHGSMZNDhctt9uiTkbXMHK5JYkzU7hxi87XPfreYZIB+D0WIG41navDw+9t3RWdLec/8cJOxGhOnywVWbzIVTEpK1Xj+uRw64yUrchuQQLdANWvPpOzGpCkcQmYywJgh+8WLNrUSGraNatVI8kj+FoysanmG4Ben61arln9C1sGrb8VqBxwnLART+EsEbWHxTD7bYv2elfJTmmeC4U/P6WalfqVqAFg1Ju+vZaNCVoTPjNsOWuMznCzL26bMl+efiFXfHwvETR8r8z4DjF6+1l70MZHUhKm2XZESx7vOlpP7Du8HvQH5hWABi1F8lRNCxQ50paaO0DXdPImYdap2YZJf55Vc6GL7UfzJCPUwmxXwLZdN8tphXSmO5hmXI2CGgtC4ssjAIDYxn1amWpfShl9eebIW2gPzNPsrduaJzqAYe8WZrOZOGTVYB1AKGi7lKVJo3YCCMDybqViCiSa3v5KaSU0XODOw9/C/DkGnh7pcg38Rkm0H6xmJ+ZRwdpPSoG58+BCRll/nq/U6Ns6BMMtMPOgyRyJQ0EsHGb9bMXHki0+S2WY15mdNwK+vXmHiyIFap1ya5R0lAHTG96cwV1UoTDpYpamhUEAwKAI8ygv8PQnV+/dJk3g8I0hvrw+xuSdx4/XG3KZYmorJWjNM7H2ew/7PDW3xnJpYDcr5ohbkWDiyTV0yneqDnj9hIc7QG8pMa+XM7sO4iHAuc6YWCDbHbT8csAaHrVxn5FKB9fTttuFJSgErn1ktq8Vqo3IjpVGt1P0HnmBDzXskxNDpyE3Fsixx1iTiW8CgGnSpq15orTro4zt6cbUB283i7TGfaBuzESPDCj2cZ/SzpqQUB0jMHmDiT8+OyVNWjmAsQHXxNXjoeX7hIidWZ+JfrUIWWm5hBTgz1YMvz3QVzpaozsq5BiJxMk+dvuUoO2jFS5qeuE1JzAfQzhysz47PbQFaLGxHBrAC0vg8gOK+/OAkXEDyzFib12F5rjrUyCxdIw7mfougfzZZDGVcXN5hWN8ZgJ4cYBNCzbJnA8bt5BHfPewCRWP8YBm37fGPXO4BWqVtjuDakcYeQD+5G6hT8wL1Me0vY9RMURvq90HS3+H4zSTM+rsobPuDrCPcYxjHOMYxzjGMY5xjGMc4/2P/wNhnT09WjaGWQAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/images/state-false.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACn0lEQVR42n2TX0hTYRjGvYkuuikouky6UKN/UpRJtf5YCSmWJV5laF0UiKEF3QSFXnQrEuJF4ECCiIouarhIcXObmx63s+mcZ5vb3NnZ5ja34+bOthR5es8uxpbDDx443znv+/ve877PV1Hx39IbTNcX7Y4fXt8qhGAoL3oWWeuCcmJSU1mx12IYy2AovIa0JCGby2Fraws7OzvY3t5GjvZ+PgDTLNNZNtnC2galTAab6TSSfh6WvldwvnydF/uuH0mez4MikSh0emMphEqrTSREiBsbcH/+As+jLuRGx5AZGkZ25CNyyjHYmu4hYluAJGWw4vGJlHOwAHC5V5Sx2DoCzDxc9deQfjuA1LPuEkkD78HWK5CkCqIUO8eYewsAPiCIcmn2nl4kbjRCbGkrq4TiFmzDI4jHE1SFd6oACAhBhMJhOFrbEa2tQ+zilbKKnrkA0+MnCK9F4Fh2ogCQuxsKhbFIAOFYFYTKGgjHT5RKfkffNPfbIE+K41wo6oEHQQIYO7rgrazeU9ahD9SDGCiHLQDIJKxMtavGsXDuEparTsNBpxaLo/LNd5rgs9qQTKVgNDHK4jF28ryA9fU4pl/0wdrcisWrDbDUnAV76jzs1FhTQyPYUWV+Ar5VP3a5kswxJQNkuv3rd2g7n0J98zYmmlqge94Nt96Q736c/EKxg7ucODtnPqLTzyx5vL48JJXaJGMlkRA3IJIi0RiWHBwlz3wjM+0vSc5ksgcooNa94mnXThu0hhnTX7I2aA/O6YbZYoVGq5emdQYV53R1UL/q0mnpUFkABb/RaHWj6t8T+l8qtf2nSr00rv5jnJzSfmLmzf1lAfLKZrP76D4cpnFWe33+y2Tvu8uc8wHpodPlbqYrrRCCwZPUp6PFv/APVTNnxtHLXwgAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/images/state-true.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACnElEQVR42n2TXUhTYRjHvYkuuikouu2ui2686yKILsrAIkj7IDJZGZYmzqBAWR9YYJTBCKSuahftoiBaoebMbWdn29nm5jZNN8++nO7Tfbu5D1Pk33N2MVwOX/jDed/zPD/e83/+p6Hhv2XgzGfmF1yKpcAywpFoRfScdcz+kanU2mMNey2r1S6NxlZRKBZR3tjA5uYmtre3sbW1hQ3arwRDME9bRXWb7Y45abFUwnqhgFAuhiHjMN7NvK1IanlfORNA8XgCeoOpFkJXa8xkssiureEHP4HX5gFwYQXUK3Jog1/BRRR4pHmA+bgbxWIJPn8gSz0HqwCP1ydLJlOwhxaosA0/vSP47Bys0ZjvA7om25DIpZCgWovV1lcFBEPhrHC1YdMQhi0ijNh76urNdDtk9i9IpzN0iyWmCgiFI4jGYnjGivGca8VL4/W6empoQb9GgthqHK5FN6oAwd1oNIYnWjHEmrPoY5rwkDlfI+FMeNc9IYYwKZ73YIcHfkQI0K8ewH31uT31cUZOHiRBPY4qgELiEKhKJ4u7qiu4rWpG+1RTje4xl9Gj7sTcsgu5fB4ms1W2c4yiYDCMVCoNieYVenXd6GTbcPX3BdxQXUKXToQ7Ux2Q279XJhBYXsGuVFI4GAEg0BXzSvSqJWgd7cDNX914zLwA57VV3E9TXqhWuiuJ0xbbEb3B6PQvBSqQfH6dgpVDJruGLCmeSMLp4qnZ+I3CtL+muVQqH6CCRq/Pf43VcSxnNP+laIP24N1e2Oyz0LKGok7PjfNuzy3y62ShUDxUF0DFEi2r/6ScVBnGxpULo+NK54RyyqRmWLl1xjZYFyCscrm8j/6HwzTO42TSKYp38yLvbiG1uj3ei/RLnw5HIifIp6M7P+EfY+R4usBp3woAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/images/steal.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACd0lEQVR42rWST0ySYRzHgdd3viJkvKDyRxj5B5Qa/mmN1JCsZvzTg4OmDMEBWWwQi2YE1GDiWAet1jzoSg9tNBceaq1La+veqq3V5qGDh24dautUZn573vfA5hbZpXf7Hp73/X4+z+959goE/+O5OHVucaS9Hm1sDToVNehRMzhrPf7kn+BoOJh3mZWgREIIBQIIhQI0MCKcNskRDkze2lcwfETHQ3W0EFKGgu5gDVgJDUmtCO1NddiPn2PFFBiaQkN9LXoOKSAj664WKcS1FLQyGhQlWiM9bTVBqaGO2jV3tqK0kMRCahqPitNYvDyO3CU/OpqYX2S6LdILVR1h2qbfXL89C2OrFlNjNpw42oULPhfsQ33IjnV8IBVVVbhvJMpYrdbyWmIY31/fx8ZSBlfC49h8dgcPrw7DYrFsmE+dF/8RttvtBxwOR2FwcBA+nw9+vx9pvw1z4TNwu91YXl6Gy+UC2eAu6Ur2wAQUEWBFp9NBoVBAr9djYmIC5XIZpVIJHo8HxWIRBoMBWq0WRqPxHpHQFQHZISaVShEKhTA6OsoVeAkHr66uwmQyQSaT8YJ0Oo3m5mbu3VJF8PZ6587np9eQyWRQKBSQzWbR29sLhmEgl8vR3d0Nr9eLQCCAeDyOxzensDKp364I3t3o2v3yfA7BYBCRSAQzMzNIpVL82ul0IplMIpFIYH5+nhd9fVHAq5RptyJ4/yCefpPu+EnOBZVKhVgsxpfz+Tx/fm6qXC4H7jt3By9nD/8gTGHPRW6tR6UDAwPH1Gr1J1L6RrKj0WjQ2NgIlmW5bJN7+ahUKqNZf3/T337nNpIhkpMk/SQtJHS18m8kfwz/+zz+/AAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/images/support.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/images/Thumbs.db</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAPgADAP7/CQAGAAAAAAAAAAAAAAABAAAAAQAAAAAAAAAAEAAAAgAAAAQAAAD+////AAAAAAAAAAD////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9////EgAAABMAAAAEAAAABQAAAAYAAAAHAAAACAAAAAkAAAAKAAAACwAAAAwAAAANAAAADgAAAA8AAAAQAAAAEQAAABQAAAAcAAAAJgAAABUAAAAWAAAAFwAAABgAAAAZAAAAGgAAABsAAAAdAAAAKQAAAB4AAAAfAAAAIAAAACEAAAAiAAAAIwAAACQAAAAlAAAAJwAAAEEAAAAoAAAAKgAAAP7///8rAAAALAAAAC0AAAAuAAAALwAAADAAAAAxAAAAMgAAADwAAAA0AAAANQAAADYAAAA3AAAAOAAAADkAAAA6AAAAOwAAAP7///89AAAAPgAAAD8AAABAAAAAQgAAAP7////+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////1IAbwBvAHQAIABFAG4AdAByAHkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWAAUA//////////8FAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABz0M58x8oBAwAAAMBgAAAAAAAAMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAgD///////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9w8AAAAAAABDAGEAdABhAGwAbwBnAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAACAP///////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8AAACYAgAAAAAAADIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAIBAQAAAAQAAAD/////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQgAAAFMNAAAAAAAAAQAAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABEAAAASAAAAEwAAABQAAAAVAAAAFgAAABcAAAAYAAAAGQAAABoAAAAbAAAAHAAAAB0AAAAeAAAAHwAAACAAAAAhAAAAIgAAACMAAAAkAAAAJQAAACYAAAAnAAAAKAAAACkAAAAqAAAAKwAAACwAAAAtAAAALgAAADEAAAAwAAAAegEAADIAAAAzAAAANAAAADUAAAA2AAAANwAAADgAAAA5AAAAOgAAADsAAAA8AAAAPQAAAD4AAAA/AAAAQAAAAEEAAAD+////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tq7gTajrTJbwwrnliCdzY9FBNftX+zJ8ANI/Zn+Dui+BtJlN2bUGe9viu03V0+DJJjsCQABzhVUZOKcUDP/ZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdwBoAGUAZQBsAC4AcABuAGcAAAAAACgAAAADAAAAAOvmSnzHygFtAGEAcgBrAGUAcgAuAHAAbgBnAAAAAAAkAAAABAAAAADr5kp8x8oBYQBjAG8AcgAuAHAAbgBnAAAAAAAyAAAABQAAAADr5kp8x8oBYQBqAGEAeAAtAGwAbwBhAGQAZQByAC4AZwBpAGYAAAAAACQAAAAGAAAAAOvmSnzHygFiAGwAdQBlAC4AcABuAGcAAAAAACIAAAAHAAAAAOvmSnzHygFDAFMAUwAuAHAAbgBnAAAAAAAgAAAACAAAAADr5kp8x8oBSgBTAC4AcABuAGcAAAAAACQAAAAJAAAAAOvmSnzHygFtAGEAcwBrAC4AcABuAGcAAAAAACIAAAAKAAAAAOvmSnzHygFNAGkAbgAuAHAAbgBnAAAAAAAwAAAACwAAAADr5kp8x8oBcABwAGIAbQBEAG8AbgBhAHQAZQAuAHAAbgBnAAAAAABKAAAADAAAAADr5kp8x8oBgQEAAIIBAAD+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9zAGMAcgBpAHAAdABkAGUAcABsAG8AeQAuADEANgA3AHgANwA1AC4AbQBpAG4ALgBwAG4AZwAAAAAANAAAAA0AAAAA6+ZKfMfKAXMAYwByAGkAcAB0AGQAZQBwAGwAbwB5AC4AcABuAGcAAAAAACoAAAAOAAAAAOvmSnzHygFzAHUAcABwAG8AcgB0AC4AcABuAGcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==]]></data>
	</file>
	<file>
	  <filename>/images/tl.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAABkAAAAALCAYAAAAnQ0EyAAABz0lEQVR42u3dTUtUYRTAcaFV0DcI+irthojWFxE/RMuoQFyFuItwG+LGhbjtC7gJXJSlzIzjOG86b7dRMW0TnO592ogg1aoZ+F34Le/m2f4558zN/cOXZZXHhTeFj4Xdws9CAAAAAAAATJO/iR73C8uF0dLS89jeXo9adTe5vhrFj+vxDSMAAAAAAID/7k/x48Xi4rNYX38bed5KwePyoh/nk16c5Z2YjNvxrTRqJTkAAAAAAMAUuCt8PCqsray8jH6/HleXgzifdNMPo/5RDHqHcdqtx2mnFiftUhUAAAAAAGBq3HXnY7NcdVWutbo460U+PE7Ro/yhe3wQnaP9aDe+RqvxJVqHAAAAAAAA0+V2/HhYxo+dnQ9x/X0Yk7wTw5NGCh+d5n4KHsf1vWjWPidH1U8AAAAAAABT53YAWdvaev87fozb0e8dpomPm+HDowEAAAAAADMTQLKs8mp19XVae1VOfpTxo9M8SGMiwgcAAAAAADBzASTLKg8WFp7GcNhINz/KtVdp8kP8AAAAAAAAZjiALG9svIury0E6eF7e/CjXXokfAAAAAADATAaQLKvcm59/EnneivNJNwZp9dV+NOt7HggAAAAAAJhJvwCfszWxoGaKkQAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/images/tool_bar-bk.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAA8AAAAaCAIAAADnr5E1AAAANUlEQVR42mO4ducF8Yjh/tOPxCOGp29+EI9GVY+qHlU9CFU/evGFeMRw98l74hHDzfuviUcAJFE2MOdbgZ8AAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/images/tr.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAA4AAAALCAYAAABPhbxiAAABJElEQVR42oWSvU7CYBiFWU28AxNvxc3BODMQLsKRqAlhIoTNGFfTsDgQVm+A0cE/TCkt/cXS0hQIguPxPZ9AarTY5IzP+Xm/Fvr6A6hOR0O1eoZi8TgW1UR7hV3fNPEwSwMs5iFWyxhJ4kDTrlAun9Kkkgu++wbGwQBxaCGJHTHxsVyMEYYGGo1zwjeiw1+ga77Cs3rw7TeMXF2ZJJGN+TTA52qiJgh4Jzr6AQ77T6Bs4xmO+QJv2FMG0chEKjNWHxG63fsNfLAFLf0RG2UN2CCU9HTiKrjdvlW1/wSzBs6A6WtYklm72bwkfJELZmEmszY3R5GJUumE8H4uuIWlNjfzYLx2q3VNsLYTVLBs5sF4bT4V35mp/4Pryt+pjvpJ6vUKvgCLWaRd8CeVQgAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/images/user_edit.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADOUlEQVR42m3Tf0yMcRwH8Of8miN3LmIiWpik0BbDklJOKW3Idli5dGtERsOlRKorHUuEkvzYxIUmhKyssCOX4q4u8mslWTQuv7pzuXvePnc9+Yfv9tqePd/v+/P98TxfhulrPDKMzCBRJI3kcNK4d17EgRv7TxvKhTf6uzo8zRaLLLmhI6EMFiLJX2SZ7zpCR31xxJPw/1dgPJH6ThxefzxchFMSR5wkeatEyFomxHY/AWa6OGhpTCQZ978CttkV+aFCnKWgkkJZoTYiKMKcsDPAERJvwW9uS2FkNpdx7i8wy9aZ5eeAO/l70FGhxOOi7djq74SEoHHYvMQNsgUidsjggTdpXCE5bJuQO5u/K8jMW+PSa/r4Et8e5uNDVQ50l/ah9VY2DK0NOCdz+7126ZjmlgsSvL6ugPa0GLHBTvf7C3iQ9MRQt25D3UV01V+BUasiJfZnQ4MKxfIpps5qOb423gR+fEB3Yykq0wPNtvAIIuYNGHzS2WNZpyreB7/qi2DSl9kZn11AjXImuhr3sub3N9B57yCMTVdhaVPj6SmZ1VZgIW8Q/wB/ysqmCcF3oW//iUvJ4ShJXm5XeWgxDPoUWI1qGN9uwZe6eLw4H4NHRyW9nq6OpfRb8FKHuIZrJ4Wp8bzDiOIOIEEPbNIAmVU1MDTthtVUi54362FqX4fvz5OgPexrnjdtVBlNHs04uvmrgyKUuPLYggIdEF/LYmMNi1TVNXQ+kXPhKJjercU3fTL0R8QI9F34isKpxJupT3Znu8oTcexMOaQVQMxtIOV8OZru7KJlP4CpNQa/2iPxlVbScnwpum7shDrBnaVwhv3wtSnTYahMgyT2LDKqerDjqArNt5Ogq8hFh2Y1elrX4Ys2EY0nViBSdgLdd9OhkXuA+w9mMCnSgIYniVNZqTSDnSOtweXsQOB7G1oKI1Cd5IyHBSGoOBCCxRFFiIuWW+r2eFkzYoN09v33XQFGOlrIzxEIhKoxc3e/2y/zgrn2GMyaI9AoAlC8YTIWiNN7XRblfBIIRCU0NpcLe3I3mJlgPwyGkZC8Vb4iqyLKna3KDGYLd8z9PHksnz4VoyTbyEriw2Vst5L3B6vfyopLmJ43AAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/images/warnArrow.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABgAAAAUCAYAAACXtf2DAAAAjElEQVR42mNgoDVoZmAQAmI1LFieWhbwAvHMRYbMp5DxXC3mE0DxIKpaciKP/e7/o7z/QfjDOu6v+xPYboxaMgIseT6P6z0tLXHYFsh6BWYBCF+u53gMFF8NcgClhpsC8TZkHyAZLk8Vwx9M4Xo9ajj9DX+zjPsTCFPTcFkgngjE09HwZKoV2aMAHwAA8a7TH/s+tlIAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/images/warning.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACIElEQVR42qWTTUiUURSGn3u/b2zGvwwL7RcESYSKTAmhFu5aRhhFuG3Xqjbti8BWkeAihBaBkPQHFbVpa5HWFEFYgpimlYs0bX505jvntJhvRhdupAuHc+Fyn/O+594D/7ncmcsjl072dN1czFmNGaCKqSIqmBpqiomgZpgIokp9VTE7MTF/9cmt84Nh14mugUSyxjclt1S4JpuTAWAwzBXN5xYzW5aeL5oHCE2MG32tWwZc7J+hBDAFoBAJBpgaoqAYqoaoIpGVwpSCGC3NdYgKAB6zUje9wzvw3uEDCJwj9J4wCLG/HyhM9ZNweaoTIQAaxYB1EjjncN4ReIcPHM6Dtzyrs4+pbTxC8ecLwipfAkhJuTe1+EFdBeSdw3tHEDhy319S3dhB/e4OsrOvIDNdApQLlzfECjaCJDPPn6nn1O1sQFaesqv9Astf72MaoRoriIrFigIXXy7n318e0Nh6GlbTjN0bprYhz8r0KMszr4mKUWwh9hIArtwHIPsrjWSXqNuRQ9emwRTJjNPSc4W5N3dIsFq2oOsWys00YeHdXRoOHEVznzDN09nbhhZ+kExOUr+vm47UWGUWRpr27zmnIqgoIsKhbeOcPZ6k+WAKyYxhVuD9owk6e9txwXZInWJ06PpaleWPuc1+2dvb3XOH+4b3Bv4bFi0BtuHUE6TaWPj8kcln1x6GmwGitUIyPdSbNzUsns5SWCWjipk1/wOwZR+ItxFIhAAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/images/wheel.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/images/_blank.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVR42mNgAAIAAAUAAen63NgAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/includes/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/includes/addons/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/includes/addons/pager/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/includes/addons/pager/icons/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/includes/addons/pager/icons/first.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACX0lEQVR42qWTTW8SURSG+QH+An5Hu3TphoWJ3XVn/IoJGxMXTV056cZFYwqZAaKYNq0NVCI1qQqpkbbSEaRpLHSgDB8CbaFQGHAYGBiGcpxzS8eideVN3mS4nPc5H/deg+GPdcMORk3jmkyaJocyDfeMhn8t7c9rmsaerIpm79cjJryXZvfjB0KMSwjbu0n2zVaOmfLUzRiDsVeZr7uDJSp2kOXLNREkuQfq2YCo2VagWKlDaJfj59ezFMaOQJCKZi75Q+p0VcAlK32oSz0QNLW6fbInyQpsR6KS05dCyJjeM5aNmS/MxXoXSo0ulBsKEX6vhis6ZH0jxD9aLpvJTHA4XvaQwbJxYcaJmS14YI+PmO8xHBzVOiQmmTsB2hNm0IsAU+h7isWesdRaEwGbBICVvNXMN6kdAihUOyC2VThtyLCw8p5FLwImo/txAYeF5qqowAS1CfdtHDC+AvlGISBXkUkVinoGy64VAb0EsBfjCADNqFtPA8Rg8x+OALJleVhFDxYWX+sA05edBNuQutCUVaj8RMBnYsifyuctDQGZkzY5mfRxA2inS29h3BXIMIViDQYDIIPD4Dv0eUYUVoV7qWIbev0BbHxLAOX4qA/R+NhdNQeCEV4QOyTg4vjSpTYRGvE3Jsho2a0vlvi7jrRZv9p4Keh3MWrtU1Aq11sksNFSSb/YBh4tgtPHdbA43dI07ft9kS5f5VlXhFryrPHhaAYKZZHMBHtO5AXwB2MwS8/zU9YPf1/ly4/p4au8eealn3luX2Rpm0OYszLCM4uTnbZ4mdtM8urH9D/P+Rc0EaljTdAswQAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/includes/addons/pager/icons/last.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACcElEQVR42qVTS28SYRTtD/AX8DvapUs37MRH0p3xFZPZmLho6spJNXbRGCEzQBTTprWBSkJtUCE10iKdgjSNhQJlCgi0QHkNIwwMz3Kd+7WOVevKm5zNzD3nnvv4Rkb+iEsm0CgYU6BVMH4K7ek3zci/Qvl5QcHow+U65dg8ZAM7CW43uieEIzFhYzvOvfGm2Ql7jcIczD2PfNHmK9DhvRRfrNZBknvQPx4SNFpdyJdq4N+O8LOrKRpzfxNBVSRH4t+kdqcPGHJ3ADWpB4KCZmdAvklyFzaCIcni2keRUbVntI2Vf5KdW2Uofe9CUTxBQexAvtZRRVbX/Pz9xSJFZoLDcXAHLNrGqNS7cPWJD1aCJZWsm/LCXVOUuMGIp4+AsQdY5KKA1v91n8Oe0SqSrjz2KfDCcqAEOaGtCKwTgWqjB/VWH8qiDHNL7zjkosB4aDcq4LAwAQWwIuL6dABYVxZ09DrcMUaIu8NqG7r9Y1i0LgnIJQI74QgRwATsFcnXnm6Sykb3AVx+5IHb7IlAttJWXPRgbv61KqD9vBXjRKkDDblPKhCyUhUdpUuyIvCJCOBgcTOJnAiMxaq2MGb1JNlsvgrDIZAKOtpDyKmiTIDkm0yEtNcbDGHtSwxo8wd1iJoHtgrl8QV5od5WN4HE5FELEoWWuk4kJ5XqhhcL/C1zglJPG4+CeRumnR99UrHWJE7EZp+4yZRlsj4kJ3I10Fts0iTj+nVIZ095xhqkF+xOPhBKQrZYJzPBnmMZAdy+MMwws/yE4f3fp3z2Md17laGmXrrZZ6Z5jjGahecGVpjWW7hJvYO9wcbPf0z/85x/APdIqMvUOSghAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/includes/addons/pager/icons/next.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACb0lEQVR42qVTS28SURTmB/gL+jvapUs37KjWpDsTNyZsTFw0dWMn9dFFY4QwliimTWsDlQRNqrapKRXpAGIaCwXK8BAojw6FGRyGGR5DOc651LFqXXmSbzF3zved8517rsHwR1xZgBENYxqMGibPYDw7GzH8K7SflzSM3n0tmj2BIh3aTzMH8UM+Gkvwu3tJ5pUvR0+5BTPmYO5F5Msuf4WKHmZZri6CpPRAPR0QNOUulKsCBPdi7OJWlsLc30RQFcmx5Dep3VEBQ+n2QZB6wGtodfrkTFK6sBuOSI6NFIqM6p6xbaz8k5w5lqH6vQtcY4hUWYay0NFFtnaC7O1VzkxmgsPxMEc0to1RE7tw7YGfkJBcaXRgfNYH8aIExXqb5CRzx2Bzh2jkooAx+DXFoGdsFUlX7/s1+CBZbkGJb2sCHwliRxKIsgonDQWW1t4yyEWBychBnMdh1Zs9IoAVEdfnQpCuyDBOaQKUFyYeBsh3Vz2FVecaj1wisB+NEQFsH70ieeJRgFRFUdOMl9gyzWyTb1HuwdLyS13A+OlLgmlIHWgqKvFJyNSQnKsqOhkL4M2kSw2wOZy6hTGnN0MXynUYDAAKtTZpF8lZTiEw3dsmt4KD7fUHsPM5AZT9vT7EkTuumtnrD7O82NZvAol4negZyThQLJDRqlufrbA37Wmzvtq4FLY3UWr9g1/ihGFio6WSbvInClkmrJwuCWBxuKRp28avRTq/yvPOMLXiXmdDkQwUOJHMBD0n8jxs+qMwb1tkp6zv/l7l84/p1ou8efb5Jv14YZmxPbXzT6w0P2dxMNMWD32DTl78mP7nOf8AaxCosMjM2Z8AAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/includes/addons/pager/icons/prev.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACdklEQVR42qVTTW8SYRDmB/gL+jvao0cvJBo/ohb1YOLFhIuJh6Y1MZIa01ishbCWKKZNawOVBE1AW2tsrXQFaUiBUsryIWCBQmHZwsLCspRx56Ui1XpykiebfXeeZ56ZnVeh+CPOTEGfjAEZShmqIyiPzvoU/wr54ykZ/SNvymrb113K7YvSW9s7bCAYYte9Yfr1WoIaspbUmIO5J5FPW5xZTWAnzuSKZeCFJkiHbYJKTYRMvgQub5CZXo5rMPeYCKoiORj+ztcbEmAIYgtKfBNYGdVGi5zxggjrHj9vWoygSH+3Z7SNlX+RC2URdot1yHEiQZZrQCIvdEWWV13MnfmcmswEh2Ojf1Bou5es0nqPkQfHN8g5RjixBwarm0IuCihdmxEae0arqUIdLj10EoFMqQHxnADn7jmIAH4r1yTY5wSYWXDQyEUBlX9rm8Vh5Q9EuDj6WcYaIWDlsyN2GQ64+thD3tGFKB3CvHmBRS4R8AWCRKBYacK1CT9cePCJCKDg5Uc0nL//Aa6MuYmbjosmzMy+6goov2yEaI5vQEWQIM3K/T/xyS1sQnK/Q0CxwXEvxPZq5M9E0xwYTOZuCwPmlRiVyhSh3QZCQJs3JgOkIgKtX3/qh0imBs1WG1a/hUBjfN8dYt9dS0G94vQwbLkzZSRhdawYzdYIEZ9YICZX1z+fY24Zo+ruauNSGN4GNPaPTj5XqpJErioRNyiEy4SVo+kS6EwWftiw+HuReldZa/Zo5qx2xu2PQSpXJjPBnkNJFpacAdAappkh/bu/V7n3Mt1+mVSPvliiJqZmacMzIzupp9gxnYke1tmom1T45Mv0P9f5J1RWqY0WdGOnAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/includes/addons/pager/jquery.tablesorter.pager.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ZGl2LnRhYmxlc29ydGVyUGFnZXIgew0KCXBhZGRpbmc6IDEwcHggMCAxMHB4IDA7DQoJYmFja2dyb3VuZC1jb2xvcjogI0Q2RDJDMjsNCgl0ZXh0LWFsaWduOiBjZW50ZXI7DQp9DQpkaXYudGFibGVzb3J0ZXJQYWdlciBzcGFuIHsNCglwYWRkaW5nOiAwIDVweCAwIDVweDsNCn0NCmRpdi50YWJsZXNvcnRlclBhZ2VyIGlucHV0LnByZXYgew0KCXdpZHRoOiBhdXRvOw0KCW1hcmdpbi1yaWdodDogMTBweDsNCn0NCmRpdi50YWJsZXNvcnRlclBhZ2VyIGlucHV0Lm5leHQgew0KCXdpZHRoOiBhdXRvOw0KCW1hcmdpbi1sZWZ0OiAxMHB4Ow0KfQ0KZGl2LnRhYmxlc29ydGVyUGFnZXIgaW5wdXQgew0KCWZvbnQtc2l6ZTogOHB4Ow0KCXdpZHRoOiA1MHB4Ow0KCWJvcmRlcjogMXB4IHNvbGlkICMzMzAwMDA7DQoJdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KDQoNCiAg]]></data>
	</file>
	<file>
	  <filename>/includes/addons/pager/jquery.tablesorter.pager.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[KGZ1bmN0aW9uKCQpIHsNCgkkLmV4dGVuZCh7DQoJCXRhYmxlc29ydGVyUGFnZXI6IG5ldyBmdW5jdGlvbigpIHsNCgkJCQ0KCQkJZnVuY3Rpb24gdXBkYXRlUGFnZURpc3BsYXkoYykgew0KCQkJCXZhciBzID0gJChjLmNzc1BhZ2VEaXNwbGF5LGMuY29udGFpbmVyKS52YWwoKGMucGFnZSsxKSArIGMuc2VwZXJhdG9yICsgYy50b3RhbFBhZ2VzKTsJDQoJCQl9DQoJCQkNCgkJCWZ1bmN0aW9uIHNldFBhZ2VTaXplKHRhYmxlLHNpemUpIHsNCgkJCQl2YXIgYyA9IHRhYmxlLmNvbmZpZzsNCgkJCQljLnNpemUgPSBzaXplOw0KCQkJCWMudG90YWxQYWdlcyA9IE1hdGguY2VpbChjLnRvdGFsUm93cyAvIGMuc2l6ZSk7DQoJCQkJYy5wYWdlclBvc2l0aW9uU2V0ID0gZmFsc2U7DQoJCQkJbW92ZVRvUGFnZSh0YWJsZSk7DQoJCQkJZml4UG9zaXRpb24odGFibGUpOw0KCQkJfQ0KCQkJDQoJCQlmdW5jdGlvbiBmaXhQb3NpdGlvbih0YWJsZSkgew0KCQkJCXZhciBjID0gdGFibGUuY29uZmlnOw0KCQkJCWlmKCFjLnBhZ2VyUG9zaXRpb25TZXQgJiYgYy5wb3NpdGlvbkZpeGVkKSB7DQoJCQkJCXZhciBjID0gdGFibGUuY29uZmlnLCBvID0gJCh0YWJsZSk7DQoJCQkJCWlmKG8ub2Zmc2V0KSB7DQoJCQkJCQljLmNvbnRhaW5lci5jc3Moew0KCQkJCQkJCXRvcDogby5vZmZzZXQoKS50b3AgKyBvLmhlaWdodCgpICsgJ3B4JywNCgkJCQkJCQlwb3NpdGlvbjogJ2Fic29sdXRlJw0KCQkJCQkJfSk7DQoJCQkJCX0NCgkJCQkJYy5wYWdlclBvc2l0aW9uU2V0ID0gdHJ1ZTsNCgkJCQl9DQoJCQl9DQoJCQkNCgkJCWZ1bmN0aW9uIG1vdmVUb0ZpcnN0UGFnZSh0YWJsZSkgew0KCQkJCXZhciBjID0gdGFibGUuY29uZmlnOw0KCQkJCWMucGFnZSA9IDA7DQoJCQkJbW92ZVRvUGFnZSh0YWJsZSk7DQoJCQl9DQoJCQkNCgkJCWZ1bmN0aW9uIG1vdmVUb0xhc3RQYWdlKHRhYmxlKSB7DQoJCQkJdmFyIGMgPSB0YWJsZS5jb25maWc7DQoJCQkJYy5wYWdlID0gKGMudG90YWxQYWdlcy0xKTsNCgkJCQltb3ZlVG9QYWdlKHRhYmxlKTsNCgkJCX0NCgkJCQ0KCQkJZnVuY3Rpb24gbW92ZVRvTmV4dFBhZ2UodGFibGUpIHsNCgkJCQl2YXIgYyA9IHRhYmxlLmNvbmZpZzsNCgkJCQljLnBhZ2UrKzsNCgkJCQlpZihjLnBhZ2UgPj0gKGMudG90YWxQYWdlcy0xKSkgew0KCQkJCQljLnBhZ2UgPSAoYy50b3RhbFBhZ2VzLTEpOw0KCQkJCX0NCgkJCQltb3ZlVG9QYWdlKHRhYmxlKTsNCgkJCX0NCgkJCQ0KCQkJZnVuY3Rpb24gbW92ZVRvUHJldlBhZ2UodGFibGUpIHsNCgkJCQl2YXIgYyA9IHRhYmxlLmNvbmZpZzsNCgkJCQljLnBhZ2UtLTsNCgkJCQlpZihjLnBhZ2UgPD0gMCkgew0KCQkJCQljLnBhZ2UgPSAwOw0KCQkJCX0NCgkJCQltb3ZlVG9QYWdlKHRhYmxlKTsNCgkJCX0NCgkJCQkJCQ0KCQkJDQoJCQlmdW5jdGlvbiBtb3ZlVG9QYWdlKHRhYmxlKSB7DQoJCQkJdmFyIGMgPSB0YWJsZS5jb25maWc7DQoJCQkJaWYoYy5wYWdlIDwgMCB8fCBjLnBhZ2UgPiAoYy50b3RhbFBhZ2VzLTEpKSB7DQoJCQkJCWMucGFnZSA9IDA7DQoJCQkJfQ0KCQkJCQ0KCQkJCXJlbmRlclRhYmxlKHRhYmxlLGMucm93c0NvcHkpOw0KCQkJfQ0KCQkJDQoJCQlmdW5jdGlvbiByZW5kZXJUYWJsZSh0YWJsZSxyb3dzKSB7DQoJCQkJDQoJCQkJdmFyIGMgPSB0YWJsZS5jb25maWc7DQoJCQkJdmFyIGwgPSByb3dzLmxlbmd0aDsNCgkJCQl2YXIgcyA9IChjLnBhZ2UgKiBjLnNpemUpOw0KCQkJCXZhciBlID0gKHMgKyBjLnNpemUpOw0KCQkJCWlmKGUgPiByb3dzLmxlbmd0aCApIHsNCgkJCQkJZSA9IHJvd3MubGVuZ3RoOw0KCQkJCX0NCgkJCQkNCgkJCQkNCgkJCQl2YXIgdGFibGVCb2R5ID0gJCh0YWJsZS50Qm9kaWVzWzBdKTsNCgkJCQkNCgkJCQkvLyBjbGVhciB0aGUgdGFibGUgYm9keQ0KCQkJCQ0KCQkJCSQudGFibGVzb3J0ZXIuY2xlYXJUYWJsZUJvZHkodGFibGUpOw0KCQkJCQ0KCQkJCWZvcih2YXIgaSA9IHM7IGkgPCBlOyBpKyspIHsNCgkJCQkJDQoJCQkJCS8vdGFibGVCb2R5LmFwcGVuZChyb3dzW2ldKTsNCgkJCQkJDQoJCQkJCXZhciBvID0gcm93c1tpXTsNCgkJCQkJdmFyIGwgPSBvLmxlbmd0aDsNCgkJCQkJZm9yKHZhciBqPTA7IGogPCBsOyBqKyspIHsNCgkJCQkJCQ0KCQkJCQkJdGFibGVCb2R5WzBdLmFwcGVuZENoaWxkKG9bal0pOw0KDQoJCQkJCX0NCgkJCQl9DQoJCQkJDQoJCQkJZml4UG9zaXRpb24odGFibGUsdGFibGVCb2R5KTsNCgkJCQkNCgkJCQkkKHRhYmxlKS50cmlnZ2VyKCJhcHBseVdpZGdldHMiKTsNCgkJCQkNCgkJCQlpZiggYy5wYWdlID49IGMudG90YWxQYWdlcyApIHsNCiAgICAgICAgCQkJbW92ZVRvTGFzdFBhZ2UodGFibGUpOw0KCQkJCX0NCgkJCQkNCgkJCQl1cGRhdGVQYWdlRGlzcGxheShjKTsNCgkJCX0NCgkJCQ0KCQkJdGhpcy5hcHBlbmRlciA9IGZ1bmN0aW9uKHRhYmxlLHJvd3MpIHsNCgkJCQkNCgkJCQl2YXIgYyA9IHRhYmxlLmNvbmZpZzsNCgkJCQkNCgkJCQljLnJvd3NDb3B5ID0gcm93czsNCgkJCQljLnRvdGFsUm93cyA9IHJvd3MubGVuZ3RoOw0KCQkJCWMudG90YWxQYWdlcyA9IE1hdGguY2VpbChjLnRvdGFsUm93cyAvIGMuc2l6ZSk7DQoJCQkJDQoJCQkJcmVuZGVyVGFibGUodGFibGUscm93cyk7DQoJCQl9Ow0KCQkJDQoJCQl0aGlzLmRlZmF1bHRzID0gew0KCQkJCXNpemU6IDEwLA0KCQkJCW9mZnNldDogMCwNCgkJCQlwYWdlOiAwLA0KCQkJCXRvdGFsUm93czogMCwNCgkJCQl0b3RhbFBhZ2VzOiAwLA0KCQkJCWNvbnRhaW5lcjogbnVsbCwNCgkJCQljc3NOZXh0OiAnLm5leHQnLA0KCQkJCWNzc1ByZXY6ICcucHJldicsDQoJCQkJY3NzRmlyc3Q6ICcuZmlyc3QnLA0KCQkJCWNzc0xhc3Q6ICcubGFzdCcsDQoJCQkJY3NzUGFnZURpc3BsYXk6ICcucGFnZWRpc3BsYXknLA0KCQkJCWNzc1BhZ2VTaXplOiAnLnBhZ2VzaXplJywNCgkJCQlzZXBlcmF0b3I6ICIvIiwNCgkJCQlwb3NpdGlvbkZpeGVkOiB0cnVlLA0KCQkJCWFwcGVuZGVyOiB0aGlzLmFwcGVuZGVyDQoJCQl9Ow0KCQkJDQoJCQl0aGlzLmNvbnN0cnVjdCA9IGZ1bmN0aW9uKHNldHRpbmdzKSB7DQoJCQkJDQoJCQkJcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpIHsJDQoJCQkJCQ0KCQkJCQljb25maWcgPSAkLmV4dGVuZCh0aGlzLmNvbmZpZywgJC50YWJsZXNvcnRlclBhZ2VyLmRlZmF1bHRzLCBzZXR0aW5ncyk7DQoJCQkJCQ0KCQkJCQl2YXIgdGFibGUgPSB0aGlzLCBwYWdlciA9IGNvbmZpZy5jb250YWluZXI7DQoJCQkJDQoJCQkJCSQodGhpcykudHJpZ2dlcigiYXBwZW5kQ2FjaGUiKTsNCgkJCQkJDQoJCQkJCWNvbmZpZy5zaXplID0gcGFyc2VJbnQoJCgiLnBhZ2VzaXplIixwYWdlcikudmFsKCkpOw0KCQkJCQkNCgkJCQkJJChjb25maWcuY3NzRmlyc3QscGFnZXIpLmNsaWNrKGZ1bmN0aW9uKCkgew0KCQkJCQkJbW92ZVRvRmlyc3RQYWdlKHRhYmxlKTsNCgkJCQkJCXJldHVybiBmYWxzZTsNCgkJCQkJfSk7DQoJCQkJCSQoY29uZmlnLmNzc05leHQscGFnZXIpLmNsaWNrKGZ1bmN0aW9uKCkgew0KCQkJCQkJbW92ZVRvTmV4dFBhZ2UodGFibGUpOw0KCQkJCQkJcmV0dXJuIGZhbHNlOw0KCQkJCQl9KTsNCgkJCQkJJChjb25maWcuY3NzUHJldixwYWdlcikuY2xpY2soZnVuY3Rpb24oKSB7DQoJCQkJCQltb3ZlVG9QcmV2UGFnZSh0YWJsZSk7DQoJCQkJCQlyZXR1cm4gZmFsc2U7DQoJCQkJCX0pOw0KCQkJCQkkKGNvbmZpZy5jc3NMYXN0LHBhZ2VyKS5jbGljayhmdW5jdGlvbigpIHsNCgkJCQkJCW1vdmVUb0xhc3RQYWdlKHRhYmxlKTsNCgkJCQkJCXJldHVybiBmYWxzZTsNCgkJCQkJfSk7DQoJCQkJCSQoY29uZmlnLmNzc1BhZ2VTaXplLHBhZ2VyKS5jaGFuZ2UoZnVuY3Rpb24oKSB7DQoJCQkJCQlzZXRQYWdlU2l6ZSh0YWJsZSxwYXJzZUludCgkKHRoaXMpLnZhbCgpKSk7DQoJCQkJCQlyZXR1cm4gZmFsc2U7DQoJCQkJCX0pOw0KCQkJCX0pOw0KCQkJfTsNCgkJCQ0KCQl9DQoJfSk7DQoJLy8gZXh0ZW5kIHBsdWdpbiBzY29wZQ0KCSQuZm4uZXh0ZW5kKHsNCiAgICAgICAgdGFibGVzb3J0ZXJQYWdlcjogJC50YWJsZXNvcnRlclBhZ2VyLmNvbnN0cnVjdA0KCX0pOw0KCQ0KfSkoalF1ZXJ5KTsJCQkJ]]></data>
	</file>
	<file>
	  <filename>/includes/changes.txt</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[MS40LjINCltGZWF0dXJlXQ0KLSBUaGUgcGx1Z2luIHN1cHBvcnQgcGVyY2VudGFnZXMgYXMgdGFyZ2V0ICgnNTAlJyBvciB7dG9wOic1MCUnLCBsZWZ0Oic0NSUnfSkNCi0gRXhwb3NlZCB0aGUgbWF4KCkgY2FsY3VsYXRpb24gYXMgJC5zY3JvbGxUby5tYXgNCltFbmhhbmNlbWVudF0NCi0gUmVuYW1lZCAkLmZuLnNjcm9sbGFibGUgdG8gJC5mbi5fc2Nyb2xsYWJsZSB0byBhdm9pZCBjb25mbGljdHMgd2l0aCBvdGhlciBwbHVnaW5zDQpbRml4XQ0KLSBGaXhpbmcgbWF4IGNhbGN1bGF0aW9ucyBmb3IgcmVndWxhciBET00gZWxlbWVudHMNCg0KMS40LjENCltGZWF0dXJlXQ0KLSBUaGUgdGFyZ2V0IGNhbiBiZSAnbWF4JyB0byBzY3JvbGwgdG8gdGhlIGVuZCB3aGlsZSBrZWVwaW5nIGl0IGVsZWdhbnQuDQpbRW5oYW5jZW1lbnRdDQotIERlZmF1bHQgZHVyYXRpb24gaXMgMCBmb3IganF1ZXJ5ICsxLjMuIE1lYW5zIHN5bmMgYW5pbWF0aW9uDQotIFRoZSBwbHVnaW4gd29ya3Mgb24gYWxsIG1ham9yIGJyb3dzZXJzLCBvbiBjb21wYXQgJiBxdWlya3MgbW9kZXMsIGluY2x1ZGluZyBpZnJhbWVzLg0KLSBJbiBhZGRpdGlvbiB0byB3aW5kb3cvZG9jdW1lbnQsIGlmIGh0bWwgb3IgYm9keSBhcmUgcmVjZWl2ZWQsIHRoZSBwbHVnaW4gd2lsbCBjaG9vc2UgdGhlIHJpZ2h0IG9uZS4NCltGaXhdDQotIFRoZSBwbHVnaW4gYWNjZXB0cyBmbG9hdGluZyBudW1iZXJzLCBUaGFua3MgUmFtaW4NCi0gVXNpbmcgalF1ZXJ5Lm5vZGVOYW1lIHdoZXJlIG5lY2Nlc3Nhcnkgc28gdGhhdCB0aGlzIHdvcmtzIG9uIHhtbCt4aHRtbA0KLSBUaGUgbWF4KCkgaW50ZXJuYWwgZnVuY3Rpb24gd2Fzbid0IGNvbXBsZXRlbHkgYWNjdXJyYXRlLCBub3cgaXQgaXMgOTglIChleGNlcHQgZm9yIElFIG9uIHF1aXJrcyBtb2RlIGFuZCBpdCdzIG5vdCB0b28gbm90aWNlYWJsZSkuDQoNCjEuNA0KW0ZpeF0NCi0gRml4ZWQgdGhlIHByb2JsZW0gd2hlbiBzY3JvbGxpbmcgdGhlIHdpbmRvdyB0byBhYnNvbHV0ZSBwb3NpdGlvbmVkIGVsZW1lbnRzIG9uIFNhZmFyaS4NCi0gRml4ZWQgdGhlIHByb2JsZW0gb24gT3BlcmEgOS41IHdoZW4gc2Nyb2xsaW5nIHRoZSB3aW5kb3cuIFRoYXQgaXQgYWx3YXlzIHNjcm9sbHMgdG8gMC4NCltGZWF0dXJlXQ0KLSBBZGRlZCB0aGUgc2V0dGluZ3Mgb2JqZWN0IGFzIDJuZCBhcmd1bWVudCB0byB0aGUgb25BZnRlciBjYWxsYmFjay4NCi0gVGhlIDNyZCBhcmd1bWVudCBvZiBzY3JvbGxUbyBjYW4gYmUganVzdCBhIGZ1bmN0aW9uIGFuZCBpdCdzIHVzZWQgYXMgdGhlIG9uQWZ0ZXIuDQotIEFkZGVkIGZ1bGwgc3VwcG9ydCBmb3IgaWZyYW1lcyAoZXZlbiBtYXggc2Nyb2xsIGNhbGN1bGF0aW9uKS4NCi0gSW5zdGVhZCBvZiAkLnNjcm9sbFRvLCAkKHdpbmRvdykuc2Nyb2xsVG8oKSBhbmQgJChkb2N1bWVudCkuc2Nyb2xsVG8oKSBjYW4gYmUgdXNlZC4NCi0gQWRkZWQgJCgpLnNjcm9sbGFibGUoKSB0aGF0IHJldHVybnMgdGhlIHJlYWwgZWxlbWVudCB0byBzY3JvbGwsIGYuZTogJCh3aW5kb3cpLnNjcm9sbGFibGUoKSA9PSBbYm9keXxodG1sXSwgd29ya3MgZm9yIGlmcmFtZXMuDQpbRW5oYW5jZW1lbnRdDQotIENsZWFuZWQgdGhlIGNvZGUgYSBiaXQsIHNwZWNpYWxseSB0aGUgY29tbWVudHMNCg0KMS4zLjMNCltDaGFuZ2VdDQotIENoYW5nZWQgdGhlIGxpY2Vuc2luZyBmcm9tIEdQTCB0byBHUEwrTUlULg0KDQoxLjMuMg0KW0VuaGFuY2VtZW50XQ0KLSBTbWFsbCBpbXByb3ZlbWVudHMgdG8gbWFrZSB0aGUgY29kZSBzaG9ydGVyLg0KW0NoYW5nZV0NCi0gUmVtb3ZlZCB0aGUgbGFzdCBhcmd1bWVudCByZWNlaXZlZCBieSBvbkFmdGVyIGFzIGl0IHdhcyB0aGUgc2FtZSBhcyB0aGUgJ3RoaXMnIGJ1dCBqcXVlcnlmaWVkLg0KDQoxLjMuMQ0KW0ZlYXR1cmVdDQotIEV4cG9zZWQgJC5zY3JvbGxUby53aW5kb3coKSB0byBnZXQgdGhlIGVsZW1lbnQgdGhhdCBuZWVkcyB0byBiZSBhbmltYXRlZCwgdG8gc2Nyb2xsIHRoZSB3aW5kb3cuDQotIEFkZGVkIG9wdGlvbiAnb3ZlcicuDQpbRW5oYW5jZW1lbnRdDQotIE1hZGUgdGhlIGNvZGUgYXMgc2hvcnQgYXMgcG9zc2libGUuDQpbQ2hhbmdlXQ0KLSBDaGFuZ2VkIHRoZSBhcmd1bWVudHMgcmVjZWl2ZWQgYnkgb25BZnRlcg0KDQoxLjMNCltFbmhhbmNlbWVudF0NCi0gQWRkZWQgc2VtaWNvbG9uIHRvIHRoZSBzdGFydCwgZm9yIHNhZmUgZmlsZSBjb25jYXRlbmF0aW9uDQotIEFkZGVkIGEgbGltaXQgY2hlY2ssIHZhbHVlcyBiZWxvdyAwIG9yIG92ZXIgdGhlIG1heGltdW0gYXJlIGZpeGVkLg0KLSBOb3cgaXQgc2hvdWxkIHdvcmsgZmFzdGVyLCBvbmx5IG9uZSBvZiBodG1sIG9yIGJvZHkgZ28gdGhyb3VnaCBhbGwgdGhlIHByb2Nlc3NpbmcsIGluc3RlYWQgb2YgYm90aCBmb3IgYWxsIGJyb3dzZXJzLg0KW0ZpeF0NCi0gRml4ZWQgdGhlIGJlaGF2aW9yIGZvciBPcGVyYSwgd2hpY2ggc2VlbWVkIHRvIHJlYWN0IHRvIGJvdGggY2hhbmdlcyBvbiA8aHRtbD4gYW5kIDxib2R5Pi4NCi0gVGhlIGJvcmRlciBpcyBhbHNvIHJlZHVjZWQsIHdoZW4gJ21hcmdpbicgaXMgc2V0IHRvIHRydWUuDQpbQ2hhbmdlXQ0KLSBUaGUgb3B0aW9uIHNwZWVkIGhhcyBiZWVuIHJlbmFtZWQgdG8gZHVyYXRpb24uDQpbRmVhdHVyZV0NCi0gVGhlIGR1cmF0aW9uIGNhbiBiZSBzcGVjaWZpZWQgd2l0aCBhIG51bWJlciBhcyAybmQgYXJndW1lbnQsIGFuZCB0aGUgcmVzdCBvZiB0aGUgc2V0dGluZ3MgYXMgdGhlIHRoaXJkICggbGlrZSAkKCkuYW5pbWF0ZSApDQotIFJlbWFkZSB0aGUgZGVtbw0KDQoxLjIuNA0KW0VuaGFuY2VtZW50XQ0KLSBUaGUgdGFyZ2V0IGNhbiBiZSBpbiB0aGUgZm9ybSBvZiB7IHRvcDp4LCBsZWZ0OnkgfSBhbGxvd2luZyBkaWZmZXJlbnQgcG9zaXRpb24gZm9yIGVhY2ggYXhpcy4NCltGZWF0dXJlXQ0KLSBUaGUgb3B0aW9uICdvZmZzZXQnIGhhcyBiZWVuIGFkZGVkLCB0byBzY3JvbGwgYmVoaW5kIG9yIHBhc3QgdGhlIHRhcmdldC4gQ2FuIGJlIGEgbnVtYmVyKGJvdGggYXhlcykgb3IgeyB0b3A6eCwgbGVmdDp5IH0uDQoNCjEuMi4zDQpbRmVhdHVyZV0NCi0gRXhwb3NlZCB0aGUgZGVmYXVsdHMuDQpbRW5oYW5jZW1lbnRdDQotIE1hZGUgdGhlIGNhbGxiYWNrIGZ1bmN0aW9ucyByZWNlaXZlIG1vcmUgcGFyYW1ldGVycy4NCg0KMS4yLjINCltGaXhdDQotIEZpeGVkIGEgYnVnLCBJIGRpZG4ndCBoYXZlIHRvIGFkZCB0aGUgc2Nyb2xsZWQgYW1vdW50IGlmIGl0IHdhcyBib2R5IG9yIGh0bWwuDQoNCjEuMg0KW0NoYW5nZV0NCi0gVGhlIG9wdGlvbiAnb25hZnRlcicgaXMgbm93IGNhbGxlZCAnb25BZnRlcicuDQpbRmVhdHVyZV0NCi0gVHdvIGF4ZXMgY2FuIGJlIHNjcm9sbGVkIHRvZ2V0aGVyLCB0aGlzIGlzIHNldCB3aXRoIHRoZSBvcHRpb24gJ2F4aXMnLg0KLSBJbiBjYXNlIDIgYXhlcyBhcmUgY2hvc2VuLCB0aGUgc2Nyb2xsaW5nIGNhbiBiZSBxdWV1ZWQ6IG9uZSBzY3JvbGxzLCBhbmQgdGhlbiB0aGUgb3RoZXIuDQotIFRoZXJlJ3MgYW4gaW50ZXJtZWRpYXJ5IGV2ZW50LCAnb25BZnRlckZpcnN0JyBjYWxsZWQgaW4gY2FzZSB0aGUgYXhlcyBhcmUgcXVldWVkLCBhZnRlciB0aGUgZmlyc3QgZW5kcy4NCi0gSWYgdGhlIG9wdGlvbiAnbWFyZ2luJyBpcyBzZXQgdG8gdHJ1ZSwgdGhlIHBsdWdpbiB3aWxsIHRha2UgaW4gYWNjb3VudCwgdGhlIG1hcmdpbiBvZiB0aGUgdGFyZ2V0KG5vIHVzZSBpZiB0YXJnZXQgaXMgYSB2YWx1ZSku]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/includes/edit_area/autocompletion.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoqDQogKiBBdXRvY29tcGxldGlvbiBjbGFzcw0KICogDQogKiBBbiBhdXRvIGNvbXBsZXRpb24gYm94IGFwcGVhciB3aGlsZSB5b3UncmUgd3JpdGluZy4gSXQncyBwb3NzaWJsZSB0byBmb3JjZSBpdCB0byBhcHBlYXIgd2l0aCBDdHJsK1NwYWNlIHNob3J0IGN1dA0KICogDQogKiBMb2FkZWQgYXMgYSBwbHVnaW4gaW5zaWRlIGVkaXRBcmVhIChldmVyeXRoaW5nIG1hZGUgaGVyZSBjb3VsZCBoYXZlIGJlZW4gbWFkZSBpbiB0aGUgcGx1Z2luIGRpcmVjdG9yeSkNCiAqIEJ1dCBpcyBkZWZpbml0bHkgbGlua2VkIHRvIHN5bnRheCBzZWxlY3Rpb24gKG5vIG5lZWQgdG8gZG8gMiBkaWZmZXJlbnQgZmlsZXMgZm9yIGNvbG9yIGFuZCBhdXRvIGNvbXBsZXRlIGZvciBlYWNoIHN5bnRheCBsYW5ndWFnZSkNCiAqIGFuZCBhZGQgYSB0b28gaW1wb3J0YW50IGZlYXR1cmUgdGhhdCBtYW55IHBlb3BsZSB3b3VsZCBtaXNzIGlmIGluY2x1ZGVkIGFzIGEgcGx1Z2luDQogKiANCiAqIC0gaW5pdCBwYXJhbTogYXV0b2NvbXBsZXRpb25fc3RhcnQNCiAqIC0gQnV0dG9uIG5hbWU6ICJhdXRvY29tcGxldGlvbiINCiAqLyAgDQoNCnZhciBFZGl0QXJlYV9hdXRvY29tcGxldGlvbj0gew0KCQ0KCS8qKg0KCSAqIEdldCBjYWxsZWQgb25jZSB0aGlzIGZpbGUgaXMgbG9hZGVkIChlZGl0QXJlYSBzdGlsbCBub3QgaW5pdGlhbGl6ZWQpDQoJICoNCgkgKiBAcmV0dXJuIG5vdGhpbmcJIA0KCSAqLwkgCSAJDQoJaW5pdDogZnVuY3Rpb24oKXsJDQoJCS8vCWFsZXJ0KCJ0ZXN0IGluaXQ6ICIrIHRoaXMuX3NvbWVJbnRlcm5hbEZ1bmN0aW9uKDIsIDMpKTsNCgkJDQoJCWlmKGVkaXRBcmVhLnNldHRpbmdzWyJhdXRvY29tcGxldGlvbiJdKQ0KCQkJdGhpcy5lbmFibGVkPSB0cnVlOw0KCQllbHNlDQoJCQl0aGlzLmVuYWJsZWQ9IGZhbHNlOw0KCQl0aGlzLmN1cnJlbnRfd29yZAkJPSBmYWxzZTsNCgkJdGhpcy5zaG93bgkJCQk9IGZhbHNlOw0KCQl0aGlzLnNlbGVjdEluZGV4CQk9IC0xOw0KCQl0aGlzLmZvcmNlRGlzcGxheQkJPSBmYWxzZTsNCgkJdGhpcy5pc0luTWlkZGxlV29yZAkJPSBmYWxzZTsNCgkJdGhpcy5hdXRvU2VsZWN0SWZPbmVSZXN1bHQJPSBmYWxzZTsNCgkJdGhpcy5kZWxheUJlZm9yZURpc3BsYXkJPSAxMDA7DQoJCXRoaXMuY2hlY2tEZWxheVRpbWVyCT0gZmFsc2U7DQoJCXRoaXMuY3Vycl9zeW50YXhfc3RyCT0gJyc7DQoJCQ0KCQl0aGlzLmZpbGVfc3ludGF4X2RhdGFzCT0ge307DQoJfQ0KCS8qKg0KCSAqIFJldHVybnMgdGhlIEhUTUwgY29kZSBmb3IgYSBzcGVjaWZpYyBjb250cm9sIHN0cmluZyBvciBmYWxzZSBpZiB0aGlzIHBsdWdpbiBkb2Vzbid0IGhhdmUgdGhhdCBjb250cm9sLg0KCSAqIEEgY29udHJvbCBjYW4gYmUgYSBidXR0b24sIHNlbGVjdCBsaXN0IG9yIGFueSBvdGhlciBIVE1MIGl0ZW0gdG8gcHJlc2VudCBpbiB0aGUgRWRpdEFyZWEgdXNlciBpbnRlcmZhY2UuDQoJICogTGFuZ3VhZ2UgdmFyaWFibGVzIHN1Y2ggYXMgeyRsYW5nX3NvbWVrZXl9IHdpbGwgYWxzbyBiZSByZXBsYWNlZCB3aXRoIGNvbnRlbnRzIGZyb20NCgkgKiB0aGUgbGFuZ3VhZ2UgcGFja3MuDQoJICogDQoJICogQHBhcmFtIHtzdHJpbmd9IGN0cmxfbmFtZTogdGhlIG5hbWUgb2YgdGhlIGNvbnRyb2wgdG8gYWRkCSAgDQoJICogQHJldHVybiBIVE1MIGNvZGUgZm9yIGEgc3BlY2lmaWMgY29udHJvbCBvciBmYWxzZS4NCgkgKiBAdHlwZSBzdHJpbmcJb3IgYm9vbGVhbg0KCSAqLwkNCgkvKixnZXRfY29udHJvbF9odG1sOiBmdW5jdGlvbihjdHJsX25hbWUpew0KCQlzd2l0Y2goIGN0cmxfbmFtZSApew0KCQkJY2FzZSAnYXV0b2NvbXBsZXRpb24nOg0KCQkJCS8vIENvbnRyb2wgaWQsIGJ1dHRvbiBpbWcsIGNvbW1hbmQNCgkJCQlyZXR1cm4gcGFyZW50LmVkaXRBcmVhTG9hZGVyLmdldF9idXR0b25faHRtbCgnYXV0b2NvbXBsZXRpb25fYnV0JywgJ2F1dG9jb21wbGV0aW9uLmdpZicsICd0b2dnbGVfYXV0b2NvbXBsZXRpb24nLCBmYWxzZSwgdGhpcy5iYXNlVVJMKTsNCgkJCQlicmVhazsNCgkJfQ0KCQlyZXR1cm4gZmFsc2U7DQoJfSovDQoJLyoqDQoJICogR2V0IGNhbGxlZCBvbmNlIEVkaXRBcmVhIGlzIGZ1bGx5IGxvYWRlZCBhbmQgaW5pdGlhbGlzZWQNCgkgKgkgDQoJICogQHJldHVybiBub3RoaW5nDQoJICovCSAJIAkNCgksb25sb2FkOiBmdW5jdGlvbigpeyANCgkJaWYodGhpcy5lbmFibGVkKQ0KCQl7DQoJCQl2YXIgaWNvbj0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF1dG9jb21wbGV0aW9uIik7DQoJCQlpZihpY29uKQ0KCQkJCWVkaXRBcmVhLnN3aXRjaENsYXNzU3RpY2t5KGljb24sICdlZGl0QXJlYUJ1dHRvblNlbGVjdGVkJywgdHJ1ZSk7DQoJCX0NCgkJDQoJCXRoaXMuY29udGFpbmVyCT0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7DQoJCXRoaXMuY29udGFpbmVyLmlkCT0gImF1dG9fY29tcGxldGlvbl9hcmVhIjsNCgkJZWRpdEFyZWEuY29udGFpbmVyLmluc2VydEJlZm9yZSggdGhpcy5jb250YWluZXIsIGVkaXRBcmVhLmNvbnRhaW5lci5maXJzdENoaWxkICk7DQoJCQ0KCQkvLyBhZGQgZXZlbnQgZGV0ZWN0aW9uIGZvciBoaWRpbmcgc3VnZ2VzdGlvbiBib3gNCgkJcGFyZW50LmVkaXRBcmVhTG9hZGVyLmFkZF9ldmVudCggZG9jdW1lbnQsICJjbGljayIsIGZ1bmN0aW9uKCl7IGVkaXRBcmVhLnBsdWdpbnNbJ2F1dG9jb21wbGV0aW9uJ10uX2hpZGUoKTt9ICk7DQoJCXBhcmVudC5lZGl0QXJlYUxvYWRlci5hZGRfZXZlbnQoIGVkaXRBcmVhLnRleHRhcmVhLCAiYmx1ciIsIGZ1bmN0aW9uKCl7IGVkaXRBcmVhLnBsdWdpbnNbJ2F1dG9jb21wbGV0aW9uJ10uX2hpZGUoKTt9ICk7DQoJCQ0KCX0NCgkNCgkvKioNCgkgKiBJcyBjYWxsZWQgZWFjaCB0aW1lIHRoZSB1c2VyIHRvdWNoIGEga2V5Ym9hcmQga2V5Lg0KCSAqCSANCgkgKiBAcGFyYW0gKGV2ZW50KSBlOiB0aGUga2V5ZG93biBldmVudA0KCSAqIEByZXR1cm4gdHJ1ZSAtIHBhc3MgdG8gbmV4dCBoYW5kbGVyIGluIGNoYWluLCBmYWxzZSAtIHN0b3AgY2hhaW4gZXhlY3V0aW9uDQoJICogQHR5cGUgYm9vbGVhbgkgDQoJICovDQoJLG9ua2V5ZG93bjogZnVuY3Rpb24oZSl7DQoJCWlmKCF0aGlzLmVuYWJsZWQpDQoJCQlyZXR1cm4gdHJ1ZTsNCgkJCQ0KCQlpZiAoRUFfa2V5c1tlLmtleUNvZGVdKQ0KCQkJbGV0dGVyPUVBX2tleXNbZS5rZXlDb2RlXTsNCgkJZWxzZQ0KCQkJbGV0dGVyPVN0cmluZy5mcm9tQ2hhckNvZGUoZS5rZXlDb2RlKTsJDQoJCS8vIHNob3duDQoJCWlmKCB0aGlzLl9pc1Nob3duKCkgKQ0KCQl7CQ0KCQkJLy8gaWYgZXNjYXBlLCBoaWRlIHRoZSBib3gNCgkJCWlmKGxldHRlcj09IkVzYyIpDQoJCQl7DQoJCQkJdGhpcy5faGlkZSgpOw0KCQkJCXJldHVybiBmYWxzZTsNCgkJCX0NCgkJCS8vIEVudGVyDQoJCQllbHNlIGlmKCBsZXR0ZXI9PSJFbnRyZXIiKQ0KCQkJew0KCQkJCXZhciBhcwk9IHRoaXMuY29udGFpbmVyLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdBJyk7DQoJCQkJLy8gc2VsZWN0IGEgc3VnZ2VzdGVkIGVudHJ5DQoJCQkJaWYoIHRoaXMuc2VsZWN0SW5kZXggPj0gMCAmJiB0aGlzLnNlbGVjdEluZGV4IDwgYXMubGVuZ3RoICkNCgkJCQl7DQoJCQkJCWFzWyB0aGlzLnNlbGVjdEluZGV4IF0ub25tb3VzZWRvd24oKTsNCgkJCQkJcmV0dXJuIGZhbHNlDQoJCQkJfQ0KCQkJCS8vIHNpbXBseSBhZGQgYW4gZW50ZXIgaW4gdGhlIGNvZGUNCgkJCQllbHNlDQoJCQkJew0KCQkJCQl0aGlzLl9oaWRlKCk7DQoJCQkJCXJldHVybiB0cnVlOw0KCQkJCX0NCgkJCX0NCgkJCWVsc2UgaWYoIGxldHRlcj09IlRhYiIgfHwgbGV0dGVyPT0iRG93biIpDQoJCQl7DQoJCQkJdGhpcy5fc2VsZWN0TmV4dCgpOw0KCQkJCXJldHVybiBmYWxzZTsNCgkJCX0NCgkJCWVsc2UgaWYoIGxldHRlcj09IlVwIikNCgkJCXsNCgkJCQl0aGlzLl9zZWxlY3RCZWZvcmUoKTsNCgkJCQlyZXR1cm4gZmFsc2U7DQoJCQl9DQoJCX0NCgkJLy8gaGlkZGVuDQoJCWVsc2UNCgkJew0KCQkJDQoJCX0NCgkJDQoJCS8vIHNob3cgY3VycmVudCBzdWdnZXN0aW9uIGxpc3QgYW5kIGRvIGF1dG9TZWxlY3QgaWYgcG9zc2libGUgKG5vIG1hdHRlciBpdCdzIHNob3duIG9yIGhpZGRlbikNCgkJaWYoIGxldHRlcj09IlNwYWNlIiAmJiBDdHJsUHJlc3NlZChlKSApDQoJCXsNCgkJCS8vcGFyZW50LmNvbnNvbGUubG9nKCdTSE9XIFNVR0dFU1QnKTsNCgkJCXRoaXMuZm9yY2VEaXNwbGF5IAkJCT0gdHJ1ZTsNCgkJCXRoaXMuYXV0b1NlbGVjdElmT25lUmVzdWx0CT0gdHJ1ZTsNCgkJCXRoaXMuX2NoZWNrTGV0dGVyKCk7DQoJCQlyZXR1cm4gZmFsc2U7DQoJCX0NCgkJDQoJCS8vIHdhaXQgYSBzaG9ydCBwZXJpb2QgZm9yIGNoZWNrIHRoYXQgdGhlIGN1cnNvciBpc24ndCBtb3ZpbmcNCgkJc2V0VGltZW91dCgiZWRpdEFyZWEucGx1Z2luc1snYXV0b2NvbXBsZXRpb24nXS5fY2hlY2tEZWxheUFuZEN1cnNvckJlZm9yZURpc3BsYXkoKTsiLCBlZGl0QXJlYS5jaGVja19saW5lX3NlbGVjdGlvbl90aW1lciArNSApOw0KCQl0aGlzLmNoZWNrRGVsYXlUaW1lciA9IGZhbHNlOw0KCQlyZXR1cm4gdHJ1ZTsNCgl9CQ0KCS8qKg0KCSAqIEV4ZWN1dGVzIGEgc3BlY2lmaWMgY29tbWFuZCwgdGhpcyBmdW5jdGlvbiBoYW5kbGVzIHBsdWdpbiBjb21tYW5kcy4NCgkgKg0KCSAqIEBwYXJhbSB7c3RyaW5nfSBjbWQ6IHRoZSBuYW1lIG9mIHRoZSBjb21tYW5kIGJlaW5nIGV4ZWN1dGVkDQoJICogQHBhcmFtIHt1bmtub3dufSBwYXJhbTogdGhlIHBhcmFtZXRlciBvZiB0aGUgY29tbWFuZAkgDQoJICogQHJldHVybiB0cnVlIC0gcGFzcyB0byBuZXh0IGhhbmRsZXIgaW4gY2hhaW4sIGZhbHNlIC0gc3RvcCBjaGFpbiBleGVjdXRpb24NCgkgKiBAdHlwZSBib29sZWFuCQ0KCSAqLw0KCSxleGVjQ29tbWFuZDogZnVuY3Rpb24oY21kLCBwYXJhbSl7DQoJCXN3aXRjaCggY21kICl7DQoJCQljYXNlICd0b2dnbGVfYXV0b2NvbXBsZXRpb24nOg0KCQkJCXZhciBpY29uPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXV0b2NvbXBsZXRpb24iKTsNCgkJCQlpZighdGhpcy5lbmFibGVkKQ0KCQkJCXsNCgkJCQkJaWYoaWNvbiAhPSBudWxsKXsNCgkJCQkJCWVkaXRBcmVhLnJlc3RvcmVDbGFzcyhpY29uKTsNCgkJCQkJCWVkaXRBcmVhLnN3aXRjaENsYXNzU3RpY2t5KGljb24sICdlZGl0QXJlYUJ1dHRvblNlbGVjdGVkJywgdHJ1ZSk7DQoJCQkJCX0NCgkJCQkJdGhpcy5lbmFibGVkPSB0cnVlOw0KCQkJCX0NCgkJCQllbHNlDQoJCQkJew0KCQkJCQl0aGlzLmVuYWJsZWQ9IGZhbHNlOw0KCQkJCQlpZihpY29uICE9IG51bGwpDQoJCQkJCQllZGl0QXJlYS5zd2l0Y2hDbGFzc1N0aWNreShpY29uLCAnZWRpdEFyZWFCdXR0b25Ob3JtYWwnLCBmYWxzZSk7DQoJCQkJfQ0KCQkJCXJldHVybiB0cnVlOw0KCQl9DQoJCXJldHVybiB0cnVlOw0KCX0NCgksX2NoZWNrRGVsYXlBbmRDdXJzb3JCZWZvcmVEaXNwbGF5OiBmdW5jdGlvbigpDQoJew0KCQl0aGlzLmNoZWNrRGVsYXlUaW1lciA9IHNldFRpbWVvdXQoImlmKGVkaXRBcmVhLnRleHRhcmVhLnNlbGVjdGlvblN0YXJ0ID09ICIrIGVkaXRBcmVhLnRleHRhcmVhLnNlbGVjdGlvblN0YXJ0ICsiKSBFZGl0QXJlYV9hdXRvY29tcGxldGlvbi5fY2hlY2tMZXR0ZXIoKTsiLCAgdGhpcy5kZWxheUJlZm9yZURpc3BsYXkgLSBlZGl0QXJlYS5jaGVja19saW5lX3NlbGVjdGlvbl90aW1lciAtIDUgKTsNCgl9DQoJLy8gaGlkZSB0aGUgc3VnZ2VzdGVkIGJveA0KCSxfaGlkZTogZnVuY3Rpb24oKXsNCgkJdGhpcy5jb250YWluZXIuc3R5bGUuZGlzcGxheT0ibm9uZSI7DQoJCXRoaXMuc2VsZWN0SW5kZXgJPSAtMTsNCgkJdGhpcy5zaG93bgk9IGZhbHNlOw0KCQl0aGlzLmZvcmNlRGlzcGxheQk9IGZhbHNlOw0KCQl0aGlzLmF1dG9TZWxlY3RJZk9uZVJlc3VsdCA9IGZhbHNlOw0KCX0NCgkvLyBkaXNwbGF5IHRoZSBzdWdnZXN0ZWQgYm94DQoJLF9zaG93OiBmdW5jdGlvbigpew0KCQlpZiggIXRoaXMuX2lzU2hvd24oKSApDQoJCXsNCgkJCXRoaXMuY29udGFpbmVyLnN0eWxlLmRpc3BsYXk9ImJsb2NrIjsNCgkJCXRoaXMuc2VsZWN0SW5kZXgJPSAtMTsNCgkJCXRoaXMuc2hvd24JPSB0cnVlOw0KCQl9DQoJfQ0KCS8vIGlzIHRoZSBzdWdnZXN0ZWQgYm94IGRpc3BsYXllZD8NCgksX2lzU2hvd246IGZ1bmN0aW9uKCl7DQoJCXJldHVybiB0aGlzLnNob3duOw0KCX0NCgkvLyBzZXR0ZXIgYW5kIGdldHRlcg0KCSxfaXNJbk1pZGRsZVdvcmQ6IGZ1bmN0aW9uKCBuZXdfdmFsdWUgKXsNCgkJaWYoIHR5cGVvZiggbmV3X3ZhbHVlICkgPT0gInVuZGVmaW5lZCIgKQ0KCQkJcmV0dXJuIHRoaXMuaXNJbk1pZGRsZVdvcmQ7DQoJCWVsc2UNCgkJCXRoaXMuaXNJbk1pZGRsZVdvcmQJPSBuZXdfdmFsdWU7DQoJfQ0KCS8vIHNlbGVjdCB0aGUgbmV4dCBlbGVtZW50IGluIHRoZSBzdWdnZXN0ZWQgYm94DQoJLF9zZWxlY3ROZXh0OiBmdW5jdGlvbigpDQoJew0KCQl2YXIgYXMJPSB0aGlzLmNvbnRhaW5lci5nZXRFbGVtZW50c0J5VGFnTmFtZSgnQScpOw0KCQkNCgkJLy8gY2xlYW4gZXhpc3RpbmcgZWxlbWVudHMNCgkJZm9yKCB2YXIgaT0wOyBpPGFzLmxlbmd0aDsgaSsrICkNCgkJew0KCQkJaWYoIGFzW2ldLmNsYXNzTmFtZSApDQoJCQkJYXNbaV0uY2xhc3NOYW1lCT0gYXNbaV0uY2xhc3NOYW1lLnJlcGxhY2UoLyBmb2N1cy9nLCAnJyk7DQoJCX0NCgkJDQoJCXRoaXMuc2VsZWN0SW5kZXgrKzsJDQoJCXRoaXMuc2VsZWN0SW5kZXgJPSAoIHRoaXMuc2VsZWN0SW5kZXggPj0gYXMubGVuZ3RoIHx8IHRoaXMuc2VsZWN0SW5kZXggPCAwICkgPyAwIDogdGhpcy5zZWxlY3RJbmRleDsNCgkJYXNbIHRoaXMuc2VsZWN0SW5kZXggXS5jbGFzc05hbWUJKz0gIiBmb2N1cyI7DQoJfQ0KCS8vIHNlbGVjdCB0aGUgcHJldmlvdXMgZWxlbWVudCBpbiB0aGUgc3VnZ2VzdGVkIGJveA0KCSxfc2VsZWN0QmVmb3JlOiBmdW5jdGlvbigpDQoJew0KCQl2YXIgYXMJPSB0aGlzLmNvbnRhaW5lci5nZXRFbGVtZW50c0J5VGFnTmFtZSgnQScpOw0KCQkNCgkJLy8gY2xlYW4gZXhpc3RpbmcgZWxlbWVudHMNCgkJZm9yKCB2YXIgaT0wOyBpPGFzLmxlbmd0aDsgaSsrICkNCgkJew0KCQkJaWYoIGFzW2ldLmNsYXNzTmFtZSApDQoJCQkJYXNbaV0uY2xhc3NOYW1lCT0gYXNbIGkgXS5jbGFzc05hbWUucmVwbGFjZSgvIGZvY3VzL2csICcnKTsNCgkJfQ0KCQkNCgkJdGhpcy5zZWxlY3RJbmRleC0tOw0KCQkNCgkJdGhpcy5zZWxlY3RJbmRleAk9ICggdGhpcy5zZWxlY3RJbmRleCA+PSBhcy5sZW5ndGggfHwgdGhpcy5zZWxlY3RJbmRleCA8IDAgKSA/IGFzLmxlbmd0aC0xIDogdGhpcy5zZWxlY3RJbmRleDsNCgkJYXNbIHRoaXMuc2VsZWN0SW5kZXggXS5jbGFzc05hbWUJKz0gIiBmb2N1cyI7DQoJfQ0KCSxfc2VsZWN0OiBmdW5jdGlvbiggY29udGVudCApDQoJew0KCQljdXJzb3JfZm9yY2VkX3Bvc2l0aW9uCT0gY29udGVudC5pbmRleE9mKCAne0B9JyApOw0KCQljb250ZW50CT0gY29udGVudC5yZXBsYWNlKC97QH0vZywgJycgKTsNCgkJZWRpdEFyZWEuZ2V0SUVTZWxlY3Rpb24oKTsNCgkJDQoJCS8vIHJldHJpdmUgdGhlIG51bWJlciBvZiBtYXRjaGluZyBjaGFyYWN0ZXJzDQoJCXZhciBzdGFydF9pbmRleAk9IE1hdGgubWF4KCAwLCBlZGl0QXJlYS50ZXh0YXJlYS5zZWxlY3Rpb25FbmQgLSBjb250ZW50Lmxlbmd0aCApOw0KCQkNCgkJbGluZV9zdHJpbmcJPSAJZWRpdEFyZWEudGV4dGFyZWEudmFsdWUuc3Vic3RyaW5nKCBzdGFydF9pbmRleCwgZWRpdEFyZWEudGV4dGFyZWEuc2VsZWN0aW9uRW5kICsgMSk7DQoJCWxpbWl0CT0gbGluZV9zdHJpbmcubGVuZ3RoIC0xOw0KCQluYk1hdGNoCT0gMDsNCgkJZm9yKCBpID0wOyBpPGxpbWl0IDsgaSsrICkNCgkJew0KCQkJaWYoIGxpbmVfc3RyaW5nLnN1YnN0cmluZyggbGltaXQgLSBpIC0gMSwgbGltaXQgKSA9PSBjb250ZW50LnN1YnN0cmluZyggMCwgaSArIDEgKSApDQoJCQkJbmJNYXRjaCA9IGkgKyAxOw0KCQl9DQoJCS8vIGlmIGNoYXJhY3RlcnMgbWF0Y2gsIHdlIHNob3VsZCBpbmNsdWRlIHRoZW0gaW4gdGhlIHNlbGVjdGlvbiB0aGF0IHdpbGwgYmUgcmVwbGFjZWQNCgkJaWYoIG5iTWF0Y2ggPiAwICkNCgkJCXBhcmVudC5lZGl0QXJlYUxvYWRlci5zZXRTZWxlY3Rpb25SYW5nZShlZGl0QXJlYS5pZCwgZWRpdEFyZWEudGV4dGFyZWEuc2VsZWN0aW9uU3RhcnQgLSBuYk1hdGNoICwgZWRpdEFyZWEudGV4dGFyZWEuc2VsZWN0aW9uRW5kKTsNCgkJDQoJCXBhcmVudC5lZGl0QXJlYUxvYWRlci5zZXRTZWxlY3RlZFRleHQoZWRpdEFyZWEuaWQsIGNvbnRlbnQgKTsNCgkJcmFuZ2U9IHBhcmVudC5lZGl0QXJlYUxvYWRlci5nZXRTZWxlY3Rpb25SYW5nZShlZGl0QXJlYS5pZCk7DQoJCQ0KCQlpZiggY3Vyc29yX2ZvcmNlZF9wb3NpdGlvbiAhPSAtMSApDQoJCQluZXdfcG9zCT0gcmFuZ2VbImVuZCJdIC0gKCBjb250ZW50Lmxlbmd0aC1jdXJzb3JfZm9yY2VkX3Bvc2l0aW9uICk7DQoJCWVsc2UNCgkJCW5ld19wb3MJPSByYW5nZVsiZW5kIl07CQ0KCQlwYXJlbnQuZWRpdEFyZWFMb2FkZXIuc2V0U2VsZWN0aW9uUmFuZ2UoZWRpdEFyZWEuaWQsIG5ld19wb3MsIG5ld19wb3MpOw0KCQl0aGlzLl9oaWRlKCk7DQoJfQ0KCQ0KCQ0KCS8qKg0KCSAqIFBhcnNlIHRoZSBBVVRPX0NPTVBMRVRJT04gcGFydCBvZiBzeW50YXggZGVmaW5pdGlvbiBmaWxlcw0KCSAqLw0KCSxfcGFyc2VTeW50YXhBdXRvQ29tcGxldGlvbkRhdGFzOiBmdW5jdGlvbigpew0KCQkvL2ZvcmVhY2ggc3ludGF4IGxvYWRlZA0KCQlmb3IodmFyIGxhbmcgaW4gcGFyZW50LmVkaXRBcmVhTG9hZGVyLmxvYWRfc3ludGF4KQ0KCQl7DQoJCQlpZighcGFyZW50LmVkaXRBcmVhTG9hZGVyLnN5bnRheFtsYW5nXVsnYXV0b2NvbXBsZXRpb24nXSkJLy8gaW5pdCB0aGUgcmVnZXhwIGlmIG5vdCBhbHJlYWR5IGluaXRpYWxpemVkDQoJCQl7DQoJCQkJcGFyZW50LmVkaXRBcmVhTG9hZGVyLnN5bnRheFtsYW5nXVsnYXV0b2NvbXBsZXRpb24nXT0ge307DQoJCQkJLy8gdGhlIGZpbGUgaGFzIGF1dG8gY29tcGxldGlvbiBkYXRhcw0KCQkJCWlmKHBhcmVudC5lZGl0QXJlYUxvYWRlci5sb2FkX3N5bnRheFtsYW5nXVsnQVVUT19DT01QTEVUSU9OJ10pDQoJCQkJew0KCQkJCQkvLyBwYXJzZSB0aGVtDQoJCQkJCWZvcih2YXIgaSBpbiBwYXJlbnQuZWRpdEFyZWFMb2FkZXIubG9hZF9zeW50YXhbbGFuZ11bJ0FVVE9fQ09NUExFVElPTiddKQ0KCQkJCQl7DQoJCQkJCQlkYXRhcwk9IHBhcmVudC5lZGl0QXJlYUxvYWRlci5sb2FkX3N5bnRheFtsYW5nXVsnQVVUT19DT01QTEVUSU9OJ11baV07DQoJCQkJCQl0bXAJPSB7fTsNCgkJCQkJCWlmKGRhdGFzWyJDQVNFX1NFTlNJVElWRSJdIT0idW5kZWZpbmVkIiAmJiBkYXRhc1siQ0FTRV9TRU5TSVRJVkUiXT09ZmFsc2UpDQoJCQkJCQkJdG1wWyJtb2RpZmllcnMiXT0iaSI7DQoJCQkJCQllbHNlDQoJCQkJCQkJdG1wWyJtb2RpZmllcnMiXT0iIjsNCgkJCQkJCXRtcFsicHJlZml4X3NlcGFyYXRvciJdPSBkYXRhc1siUkVHRVhQIl1bInByZWZpeF9zZXBhcmF0b3IiXTsNCgkJCQkJCXRtcFsibWF0Y2hfcHJlZml4X3NlcGFyYXRvciJdPSBuZXcgUmVnRXhwKCBkYXRhc1siUkVHRVhQIl1bInByZWZpeF9zZXBhcmF0b3IiXSArIiQiLCB0bXBbIm1vZGlmaWVycyJdKTsNCgkJCQkJCXRtcFsibWF0Y2hfd29yZCJdPSBuZXcgUmVnRXhwKCIoPzoiKyBkYXRhc1siUkVHRVhQIl1bImJlZm9yZV93b3JkIl0gKyIpKCIrIGRhdGFzWyJSRUdFWFAiXVsicG9zc2libGVfd29yZHNfbGV0dGVycyJdICsiKSQiLCB0bXBbIm1vZGlmaWVycyJdKTsNCgkJCQkJCXRtcFsibWF0Y2hfbmV4dF9sZXR0ZXIiXT0gbmV3IFJlZ0V4cCgiXigiKyBkYXRhc1siUkVHRVhQIl1bImxldHRlcl9hZnRlcl93b3JkX211c3RfbWF0Y2giXSArIikkIiwgdG1wWyJtb2RpZmllcnMiXSk7DQoJCQkJCQl0bXBbImtleXdvcmRzIl09IHt9Ow0KCQkJCQkJLy9jb25zb2xlLmxvZyggZGF0YXNbIktFWVdPUkRTIl0gKTsNCgkJCQkJCWZvciggdmFyIHByZWZpeCBpbiBkYXRhc1siS0VZV09SRFMiXSApDQoJCQkJCQl7DQoJCQkJCQkJdG1wWyJrZXl3b3JkcyJdW3ByZWZpeF09IHsNCgkJCQkJCQkJcHJlZml4OiBwcmVmaXgsDQoJCQkJCQkJCXByZWZpeF9uYW1lOiBwcmVmaXgsDQoJCQkJCQkJCXByZWZpeF9yZWc6IG5ldyBSZWdFeHAoIig/OiIrIHBhcmVudC5lZGl0QXJlYUxvYWRlci5nZXRfZXNjYXBlZF9yZWdleHAoIHByZWZpeCApICsiKSg/OiIrIHRtcFsicHJlZml4X3NlcGFyYXRvciJdICsiKSQiLCB0bXBbIm1vZGlmaWVycyJdICksDQoJCQkJCQkJCWRhdGFzOiBbXQ0KCQkJCQkJCX07DQoJCQkJCQkJZm9yKCB2YXIgaj0wOyBqPGRhdGFzWyJLRVlXT1JEUyJdW3ByZWZpeF0ubGVuZ3RoOyBqKysgKQ0KCQkJCQkJCXsNCgkJCQkJCQkJdG1wWyJrZXl3b3JkcyJdW3ByZWZpeF1bJ2RhdGFzJ11bal09IHsNCgkJCQkJCQkJCWlzX3R5cGluZzogZGF0YXNbIktFWVdPUkRTIl1bcHJlZml4XVtqXVswXSwNCgkJCQkJCQkJCS8vIGlmIHJlcGxhY2Ugd2l0aCBpcyBlbXB0eSwgcmVwbGFjZSB3aXRoIHRoZSBpc190eXBpbmcgdmFsdWUNCgkJCQkJCQkJCXJlcGxhY2Vfd2l0aDogZGF0YXNbIktFWVdPUkRTIl1bcHJlZml4XVtqXVsxXSA/IGRhdGFzWyJLRVlXT1JEUyJdW3ByZWZpeF1bal1bMV0ucmVwbGFjZSgnpycsIGRhdGFzWyJLRVlXT1JEUyJdW3ByZWZpeF1bal1bMF0gKSA6ICcnLA0KCQkJCQkJCQkJY29tbWVudDogZGF0YXNbIktFWVdPUkRTIl1bcHJlZml4XVtqXVsyXSA/IGRhdGFzWyJLRVlXT1JEUyJdW3ByZWZpeF1bal1bMl0gOiAnJyANCgkJCQkJCQkJfTsNCgkJCQkJCQkJDQoJCQkJCQkJCS8vIHRoZSByZXBsYWNlIHdpdGggc2hvdWxkbid0IGJlIGVtcHR5DQoJCQkJCQkJCWlmKCB0bXBbImtleXdvcmRzIl1bcHJlZml4XVsnZGF0YXMnXVtqXVsncmVwbGFjZV93aXRoJ10ubGVuZ3RoID09IDAgKQ0KCQkJCQkJCQkJdG1wWyJrZXl3b3JkcyJdW3ByZWZpeF1bJ2RhdGFzJ11bal1bJ3JlcGxhY2Vfd2l0aCddID0gdG1wWyJrZXl3b3JkcyJdW3ByZWZpeF1bJ2RhdGFzJ11bal1bJ2lzX3R5cGluZyddOw0KCQkJCQkJCQkNCgkJCQkJCQkJLy8gaWYgdGhlIGNvbW1lbnQgaXMgZW1wdHksIGRpc3BsYXkgdGhlIHJlcGxhY2Vfd2l0aCB2YWx1ZQ0KCQkJCQkJCQlpZiggdG1wWyJrZXl3b3JkcyJdW3ByZWZpeF1bJ2RhdGFzJ11bal1bJ2NvbW1lbnQnXS5sZW5ndGggPT0gMCApDQoJCQkJCQkJCQkgdG1wWyJrZXl3b3JkcyJdW3ByZWZpeF1bJ2RhdGFzJ11bal1bJ2NvbW1lbnQnXSA9IHRtcFsia2V5d29yZHMiXVtwcmVmaXhdWydkYXRhcyddW2pdWydyZXBsYWNlX3dpdGgnXS5yZXBsYWNlKC97QH0vZywgJycgKTsNCgkJCQkJCQl9DQoJCQkJCQkJCQ0KCQkJCQkJfQ0KCQkJCQkJdG1wWyJtYXhfdGV4dF9sZW5ndGgiXT0gZGF0YXNbIk1BWF9URVhUX0xFTkdUSCJdOw0KCQkJCQkJcGFyZW50LmVkaXRBcmVhTG9hZGVyLnN5bnRheFtsYW5nXVsnYXV0b2NvbXBsZXRpb24nXVtpXQk9IHRtcDsNCgkJCQkJfQ0KCQkJCX0NCgkJCX0NCgkJfQ0KCX0NCgkNCgksX2NoZWNrTGV0dGVyOiBmdW5jdGlvbigpew0KCQkvLyBjaGVjayB0aGF0IHN5bnRheCBoYXNuJ3QgY2hhbmdlZA0KCQlpZiggdGhpcy5jdXJyX3N5bnRheF9zdHIgIT0gZWRpdEFyZWEuc2V0dGluZ3NbJ3N5bnRheCddICkNCgkJew0KCQkJaWYoICFwYXJlbnQuZWRpdEFyZWFMb2FkZXIuc3ludGF4W2VkaXRBcmVhLnNldHRpbmdzWydzeW50YXgnXV1bJ2F1dG9jb21wbGV0aW9uJ10gKQ0KCQkJCXRoaXMuX3BhcnNlU3ludGF4QXV0b0NvbXBsZXRpb25EYXRhcygpOw0KCQkJdGhpcy5jdXJyX3N5bnRheD0gcGFyZW50LmVkaXRBcmVhTG9hZGVyLnN5bnRheFtlZGl0QXJlYS5zZXR0aW5nc1snc3ludGF4J11dWydhdXRvY29tcGxldGlvbiddOw0KCQkJdGhpcy5jdXJyX3N5bnRheF9zdHIgPSBlZGl0QXJlYS5zZXR0aW5nc1snc3ludGF4J107DQoJCQkvL2NvbnNvbGUubG9nKCB0aGlzLmN1cnJfc3ludGF4ICk7DQoJCX0NCgkJDQoJCWlmKCBlZGl0QXJlYS5pc19lZGl0YWJsZSApDQoJCXsNCgkJCXRpbWU9bmV3IERhdGU7DQoJCQl0MT0gdGltZS5nZXRUaW1lKCk7DQoJCQllZGl0QXJlYS5nZXRJRVNlbGVjdGlvbigpOw0KCQkJdGhpcy5zZWxlY3RJbmRleAk9IC0xOw0KCQkJc3RhcnQ9ZWRpdEFyZWEudGV4dGFyZWEuc2VsZWN0aW9uU3RhcnQ7DQoJCQl2YXIgc3RyCT0gZWRpdEFyZWEudGV4dGFyZWEudmFsdWU7DQoJCQl2YXIgcmVzdWx0cz0gW107DQoJCQkNCgkJCQ0KCQkJZm9yKHZhciBpIGluIHRoaXMuY3Vycl9zeW50YXgpDQoJCQl7DQoJCQkJdmFyIGxhc3RfY2hhcnMJPSBzdHIuc3Vic3RyaW5nKE1hdGgubWF4KDAsIHN0YXJ0LXRoaXMuY3Vycl9zeW50YXhbaV1bIm1heF90ZXh0X2xlbmd0aCJdKSwgc3RhcnQpOw0KCQkJCXZhciBtYXRjaE5leHRsZXR0ZXIJPSBzdHIuc3Vic3RyaW5nKHN0YXJ0LCBzdGFydCsxKS5tYXRjaCggdGhpcy5jdXJyX3N5bnRheFtpXVsibWF0Y2hfbmV4dF9sZXR0ZXIiXSk7DQoJCQkJLy8gaWYgbm90IHdyaXR0aW5nIGluIHRoZSBtaWRkbGUgb2YgYSB3b3JkIG9yIGlmIGZvcmNpbmcgZGlzcGxheQ0KCQkJCWlmKCBtYXRjaE5leHRsZXR0ZXIgfHwgdGhpcy5mb3JjZURpc3BsYXkgKQ0KCQkJCXsNCgkJCQkJLy8gY2hlY2sgaWYgdGhlIGxhc3QgY2hhcnMgbWF0Y2ggYSBzZXBhcmF0b3INCgkJCQkJdmFyIG1hdGNoX3ByZWZpeF9zZXBhcmF0b3IgPSBsYXN0X2NoYXJzLm1hdGNoKHRoaXMuY3Vycl9zeW50YXhbaV1bIm1hdGNoX3ByZWZpeF9zZXBhcmF0b3IiXSk7DQoJCQkNCgkJCQkJLy8gY2hlY2sgaWYgaXQgbWF0Y2ggYSBwb3NzaWJsZSB3b3JkDQoJCQkJCXZhciBtYXRjaF93b3JkPSBsYXN0X2NoYXJzLm1hdGNoKHRoaXMuY3Vycl9zeW50YXhbaV1bIm1hdGNoX3dvcmQiXSk7DQoJCQkJCQ0KCQkJCQkvL2NvbnNvbGUubG9nKCBtYXRjaF93b3JkICk7DQoJCQkJCWlmKCBtYXRjaF93b3JkICkNCgkJCQkJew0KCQkJCQkJdmFyIGJlZ2luX3dvcmQ9IG1hdGNoX3dvcmRbMV07DQoJCQkJCQl2YXIgbWF0Y2hfY3Vycl93b3JkPSBuZXcgUmVnRXhwKCJeIisgcGFyZW50LmVkaXRBcmVhTG9hZGVyLmdldF9lc2NhcGVkX3JlZ2V4cCggYmVnaW5fd29yZCApLCB0aGlzLmN1cnJfc3ludGF4W2ldWyJtb2RpZmllcnMiXSk7DQoJCQkJCQkvL2NvbnNvbGUubG9nKCBtYXRjaF9jdXJyX3dvcmQgKTsNCgkJCQkJCWZvcih2YXIgcHJlZml4IGluIHRoaXMuY3Vycl9zeW50YXhbaV1bImtleXdvcmRzIl0pDQoJCQkJCQl7DQoJCQkJCQkvLwlwYXJlbnQuY29uc29sZS5sb2coIHRoaXMuY3Vycl9zeW50YXhbaV1bImtleXdvcmRzIl1bcHJlZml4XSApOw0KCQkJCQkJCWZvcih2YXIgaj0wOyBqPHRoaXMuY3Vycl9zeW50YXhbaV1bImtleXdvcmRzIl1bcHJlZml4XVsnZGF0YXMnXS5sZW5ndGg7IGorKykNCgkJCQkJCQl7DQoJCQkJCQkvLwkJcGFyZW50LmNvbnNvbGUubG9nKCB0aGlzLmN1cnJfc3ludGF4W2ldWyJrZXl3b3JkcyJdW3ByZWZpeF1bJ2RhdGFzJ11bal1bJ2lzX3R5cGluZyddICk7DQoJCQkJCQkJCS8vIHRoZSBrZXkgd29yZCBtYXRjaCBvciBmb3JjZSBkaXNwbGF5IA0KCQkJCQkJCQlpZiggdGhpcy5jdXJyX3N5bnRheFtpXVsia2V5d29yZHMiXVtwcmVmaXhdWydkYXRhcyddW2pdWydpc190eXBpbmcnXS5tYXRjaChtYXRjaF9jdXJyX3dvcmQpICkNCgkJCQkJCQkJew0KCQkJCQkJCS8vCQlwYXJlbnQuY29uc29sZS5sb2coJ21hdGNoJyk7DQoJCQkJCQkJCQloYXNNYXRjaCA9IGZhbHNlOw0KCQkJCQkJCQkJdmFyIGJlZm9yZSA9IGxhc3RfY2hhcnMuc3Vic3RyKCAwLCBsYXN0X2NoYXJzLmxlbmd0aCAtIGJlZ2luX3dvcmQubGVuZ3RoICk7DQoJCQkJCQkJCQkNCgkJCQkJCQkJCS8vIG5vIHByZWZpeCB0byBtYXRjaCA9PiBpdCdzIHZhbGlkDQoJCQkJCQkJCQlpZiggIW1hdGNoX3ByZWZpeF9zZXBhcmF0b3IgJiYgdGhpcy5jdXJyX3N5bnRheFtpXVsia2V5d29yZHMiXVtwcmVmaXhdWydwcmVmaXgnXS5sZW5ndGggPT0gMCApDQoJCQkJCQkJCQl7DQoJCQkJCQkJCQkJaWYoICEgYmVmb3JlLm1hdGNoKCB0aGlzLmN1cnJfc3ludGF4W2ldWyJrZXl3b3JkcyJdW3ByZWZpeF1bJ3ByZWZpeF9yZWcnXSApICkNCgkJCQkJCQkJCQkJaGFzTWF0Y2ggPSB0cnVlOw0KCQkJCQkJCQkJfQ0KCQkJCQkJCQkJLy8gd2Ugc3RpbGwgbmVlZCB0byBjaGVjayB0aGUgcHJlZml4IGlmIHRoZXJlIGlzIG9uZQ0KCQkJCQkJCQkJZWxzZSBpZiggdGhpcy5jdXJyX3N5bnRheFtpXVsia2V5d29yZHMiXVtwcmVmaXhdWydwcmVmaXgnXS5sZW5ndGggPiAwICkNCgkJCQkJCQkJCXsNCgkJCQkJCQkJCQlpZiggYmVmb3JlLm1hdGNoKCB0aGlzLmN1cnJfc3ludGF4W2ldWyJrZXl3b3JkcyJdW3ByZWZpeF1bJ3ByZWZpeF9yZWcnXSApICkNCgkJCQkJCQkJCQkJaGFzTWF0Y2ggPSB0cnVlOw0KCQkJCQkJCQkJfQ0KCQkJCQkJCQkJDQoJCQkJCQkJCQlpZiggaGFzTWF0Y2ggKQ0KCQkJCQkJCQkJCXJlc3VsdHNbcmVzdWx0cy5sZW5ndGhdPSBbIHRoaXMuY3Vycl9zeW50YXhbaV1bImtleXdvcmRzIl1bcHJlZml4XSwgdGhpcy5jdXJyX3N5bnRheFtpXVsia2V5d29yZHMiXVtwcmVmaXhdWydkYXRhcyddW2pdIF07DQoJCQkJCQkJCX0JDQoJCQkJCQkJfQ0KCQkJCQkJfQ0KCQkJCQl9DQoJCQkJCS8vIGl0IGRvZXNuJ3QgbWF0Y2ggYW55IHBvc3NpYmxlIHdvcmQgYnV0IHdlIHdhbnQgdG8gZGlzcGxheSBzb21ldGhpbmcNCgkJCQkJLy8gd2UnbGwgZGlzcGxheSB0byBsaXN0IG9mIGFsbCBhdmFpbGFibGUgd29yZHMNCgkJCQkJZWxzZSBpZiggdGhpcy5mb3JjZURpc3BsYXkgfHwgbWF0Y2hfcHJlZml4X3NlcGFyYXRvciApDQoJCQkJCXsNCgkJCQkJCWZvcih2YXIgcHJlZml4IGluIHRoaXMuY3Vycl9zeW50YXhbaV1bImtleXdvcmRzIl0pDQoJCQkJCQl7DQoJCQkJCQkJZm9yKHZhciBqPTA7IGo8dGhpcy5jdXJyX3N5bnRheFtpXVsia2V5d29yZHMiXVtwcmVmaXhdWydkYXRhcyddLmxlbmd0aDsgaisrKQ0KCQkJCQkJCXsNCgkJCQkJCQkJaGFzTWF0Y2ggPSBmYWxzZTsNCgkJCQkJCQkJLy8gbm8gcHJlZml4IHRvIG1hdGNoID0+IGl0J3MgdmFsaWQNCgkJCQkJCQkJaWYoICFtYXRjaF9wcmVmaXhfc2VwYXJhdG9yICYmIHRoaXMuY3Vycl9zeW50YXhbaV1bImtleXdvcmRzIl1bcHJlZml4XVsncHJlZml4J10ubGVuZ3RoID09IDAgKQ0KCQkJCQkJCQl7DQoJCQkJCQkJCQloYXNNYXRjaAk9IHRydWU7DQoJCQkJCQkJCX0NCgkJCQkJCQkJLy8gd2Ugc3RpbGwgbmVlZCB0byBjaGVjayB0aGUgcHJlZml4IGlmIHRoZXJlIGlzIG9uZQ0KCQkJCQkJCQllbHNlIGlmKCBtYXRjaF9wcmVmaXhfc2VwYXJhdG9yICYmIHRoaXMuY3Vycl9zeW50YXhbaV1bImtleXdvcmRzIl1bcHJlZml4XVsncHJlZml4J10ubGVuZ3RoID4gMCApDQoJCQkJCQkJCXsNCgkJCQkJCQkJCXZhciBiZWZvcmUgPSBsYXN0X2NoYXJzOyAvLy5zdWJzdHIoIDAsIGxhc3RfY2hhcnMubGVuZ3RoICk7DQoJCQkJCQkJCQlpZiggYmVmb3JlLm1hdGNoKCB0aGlzLmN1cnJfc3ludGF4W2ldWyJrZXl3b3JkcyJdW3ByZWZpeF1bJ3ByZWZpeF9yZWcnXSApICkNCgkJCQkJCQkJCQloYXNNYXRjaCA9IHRydWU7DQoJCQkJCQkJCX0JDQoJCQkJCQkJCQkNCgkJCQkJCQkJaWYoIGhhc01hdGNoICkNCgkJCQkJCQkJCXJlc3VsdHNbcmVzdWx0cy5sZW5ndGhdPSBbIHRoaXMuY3Vycl9zeW50YXhbaV1bImtleXdvcmRzIl1bcHJlZml4XSwgdGhpcy5jdXJyX3N5bnRheFtpXVsia2V5d29yZHMiXVtwcmVmaXhdWydkYXRhcyddW2pdIF07CQ0KCQkJCQkJCX0NCgkJCQkJCX0NCgkJCQkJfQ0KCQkJCX0NCgkJCX0NCgkJCQ0KCQkJLy8gdGhlcmUgaXMgb25seSBvbmUgcmVzdWx0LCBhbmQgd2UgY2FuIHNlbGVjdCBpdCBhdXRvbWF0aWNhbGx5DQoJCQlpZiggcmVzdWx0cy5sZW5ndGggPT0gMSAmJiB0aGlzLmF1dG9TZWxlY3RJZk9uZVJlc3VsdCApDQoJCQl7DQoJCQkvLwljb25zb2xlLmxvZyggcmVzdWx0cyApOw0KCQkJCXRoaXMuX3NlbGVjdCggcmVzdWx0c1swXVsxXVsncmVwbGFjZV93aXRoJ10gKTsNCgkJCX0NCgkJCWVsc2UgaWYoIHJlc3VsdHMubGVuZ3RoID09IDAgKQ0KCQkJew0KCQkJCXRoaXMuX2hpZGUoKTsNCgkJCX0NCgkJCWVsc2UNCgkJCXsNCgkJCQkvLyBidWlsZCB0aGUgc3VnZ2VzdGlvbiBib3ggY29udGVudA0KCQkJCXZhciBsaW5lcz1bXTsNCgkJCQlmb3IodmFyIGk9MDsgaTxyZXN1bHRzLmxlbmd0aDsgaSsrKQ0KCQkJCXsNCgkJCQkJdmFyIGxpbmU9ICI8bGk+PGEgaHJlZj1cIiNcIiBjbGFzcz1cImVudHJ5XCIgb25tb3VzZWRvd249XCJFZGl0QXJlYV9hdXRvY29tcGxldGlvbi5fc2VsZWN0KCciKyByZXN1bHRzW2ldWzFdWydyZXBsYWNlX3dpdGgnXS5yZXBsYWNlKG5ldyBSZWdFeHAoJyInLCAiZyIpLCAiJnF1b3Q7IikgKyInKTtyZXR1cm4gZmFsc2U7XCI+IisgcmVzdWx0c1tpXVsxXVsnY29tbWVudCddOw0KCQkJCQlpZihyZXN1bHRzW2ldWzBdWydwcmVmaXhfbmFtZSddLmxlbmd0aD4wKQ0KCQkJCQkJbGluZSs9JzxzcGFuIGNsYXNzPSJwcmVmaXgiPicrIHJlc3VsdHNbaV1bMF1bJ3ByZWZpeF9uYW1lJ10gKyc8L3NwYW4+JzsNCgkJCQkJbGluZSs9JzwvYT48L2xpPic7DQoJCQkJCWxpbmVzW2xpbmVzLmxlbmd0aF09bGluZTsNCgkJCQl9DQoJCQkJLy8gc29ydCByZXN1bHRzDQoJCQkJdGhpcy5jb250YWluZXIuaW5uZXJIVE1MCQk9ICc8dWw+JysgbGluZXMuc29ydCgpLmpvaW4oJycpICsnPC91bD4nOw0KCQkJCQ0KCQkJCXZhciBjdXJzb3IJPSBfJCgiY3Vyc29yX3BvcyIpOw0KCQkJCXRoaXMuY29udGFpbmVyLnN0eWxlLnRvcAkJPSAoIGN1cnNvci5jdXJzb3JfdG9wICsgZWRpdEFyZWEubGluZUhlaWdodCApICsicHgiOw0KCQkJCXRoaXMuY29udGFpbmVyLnN0eWxlLmxlZnQJCT0gKCBjdXJzb3IuY3Vyc29yX2xlZnQgKyA4ICkgKyJweCI7DQoJCQkJdGhpcy5fc2hvdygpOw0KCQkJfQ0KCQkJCQ0KCQkJdGhpcy5hdXRvU2VsZWN0SWZPbmVSZXN1bHQgPSBmYWxzZTsNCgkJCXRpbWU9bmV3IERhdGU7DQoJCQl0Mj0gdGltZS5nZXRUaW1lKCk7DQoJCQ0KCQkJLy9wYXJlbnQuY29uc29sZS5sb2coIGJlZ2luX3dvcmQgKyJcbiIrICh0Mi10MSkgKyJcbiIrIGh0bWwgKTsNCgkJfQ0KCX0NCn07DQoNCi8vIExvYWQgYXMgYSBwbHVnaW4NCmVkaXRBcmVhLnNldHRpbmdzWydwbHVnaW5zJ11bIGVkaXRBcmVhLnNldHRpbmdzWydwbHVnaW5zJ10ubGVuZ3RoIF0gPSAnYXV0b2NvbXBsZXRpb24nOw0KZWRpdEFyZWEuYWRkX3BsdWdpbignYXV0b2NvbXBsZXRpb24nLCBFZGl0QXJlYV9hdXRvY29tcGxldGlvbik7]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/change_log.txt</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[KioqKiB2IDAuOC4yICoqKioNCi0gQ2hhbmdlIGJhY2sgdG8gcmVtb3ZlIHRoZSBzcGVlZCBvcHRpbWl6YXRpb24gZm9yIGhpZ2hsaWdodCBwcm9jZXNzIGludHJvZHVjZWQgaW4gMC44LjEgdGhhdCBoYXMgdG9vIG11Y2ggYnVncw0KLSBTeW50YXggbmFtZSBhcmUgbm8gbW9yZSBzdG9yZWQgaW4gbGFuZ3VhZ2UgZmlsZXMgYnV0IGluIHN5bnRheCBmaWxlcy4gVGhvc2VzIGRpc3BsYXkgbmFtZXMgd2lsbCBiZSB1c2VkIG9ubHkgaWYgdGhlIGNvbXByZXNzb3IgdG9vbHMgaXMgdXNlZCwgb3RoZXJ3aXNlIHN5bnRheCBjb2RlIGlzIGRpc3BsYXllZA0KLSBBY3RpdmF0ZSB3b3JkLXdyYXAgZmVhdHVyZSBmb3Igb3BlcmEgPiA5LjYgDQotIEJ1ZyBmaXg6IFNlbGVjdGlvbiB3YXNuJ3QgY29ycmV0Y2x5IHJlbWVtYmVyZWQgYmV0d2VlbiBmaWxlIHRhYnMNCi0gQnVnIGZpeDogWzI4ODY0OTldIFBhZ2UgdXAgYW5kIHBhZ2UgRG93biBhY3Rpb24gYXJlIG5vIG1vcmUgZXhlY3V0ZWQgaWYgQWx0IHRvdWNoIGlzIHByZXNzZWQNCi0gQnVnIGZpeDogWzI4ODcxMThdIFVURi04IGVuY29kZWQgVVJMcyByZXR1cm4gd3JvbmcgYmFzZSBVUkwNCi0gQnVnIGZpeDogWzI4NTE5MzZdIFVucmVzb2x2ZWQgcmVmZXJlbmNlIHRvIGlzSUUgaW4gZWxlbWVudHNfZnVuY3Rpb25zLmpzIA0KLSBCdWcgZml4OiBbMjg4NjgzNl0gZ2V0X0lFX3NlbGVjdGlvbiBidWcgd2hlbiBjbG9zZWQuLi4NCi0gYnVnIGZpeDogSmF2YVNjcmlwdCBlcnJvciB3aGVuIHN3aXRjaGluZyB0byBmdWxsc2NyZWVuIChodHRwczovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0cy9lZGl0YXJlYS9mb3J1bXMvZm9ydW0vNTU2OTIxL3RvcGljLzMzODg4MjQpDQotIEJ1ZyBmaXggKGJ1dCBub3QgYXBwbGljYWJsZSBkdWUgdG8gY2hhbmdlIGJhY2spIDogWzI4NTQ1MTksIDI4NTQ2NDIsIDI3OTIyMTcsIDI4MzQ1NzkgXSBEZXN5bmNocm9uaXNhdGlvbiBvY2NjdXJlZCB3aXRoIDwsID4gYW5kICYgY2hhcmFjdGVycw0KDQoqKioqIHYgMC44LjEuMSAqKioqDQotIEZpeCBidWcgb2YgZnJlcXVlbnQgc3ludGF4IGRlc3luY2hyb25pc2F0aW9uIHdoZW4gdGhlIGZpcnN0IGNoYXJhY3RlciBvZiB0aGUgdGV4dGFyZWEgd2FzIGhpZ2hsaWdodGVkDQotIEluIHVubG9hZCBub3cgY2hlY2sgdGhhdCBwYXJlbnQuZWRpdGFyZWFMb2FkZXIgc3RpbGwgZXhpc3RzIGJlZm9yZSBjYWxsaW5nIGl0DQotIE5vdyBjb25zaWRlciB0aGF0IGdlY2tvIGFuZCB3ZWJraXQgYmFzZWQgYnJvd3NlciBhcmUgdmFsaWQgYnJvd3NlcnMgKGJ1dCBJIHdvbid0IHRlc3QgdGhlbSBhbGwpDQoNCioqKiogdiAwLjguMSAqKioqDQotIEltcHJvdmVkIHNwZWVkIG9mIHRleHQgaGlnaGxpZ2h0aW5nIHByb2Nlc3MgZm9yIGh1Z2UgZmlsZS4gTm93IHdlIHRyeSB0byBvbmx5IGluc2VydCBvciBkZWxldGUgdGhlIGNoYW5nZWQgY2FyYWN0ZXJzIGluc2lkZSBET00gdGV4dCBub2RlIGluc3RlYWQgb2YgcmVmcmVzaGluZyB0aGUgd2hvbGUgYXJlYS4gKDMgdGltZSBmYXN0ZXIgaW4gZmlyZWZveCkNCi0gR3JlYXRseSBpbXByb3ZlZCBzcGVlZCBvZiBsaW5lLWhlaWdodCBtYW5hZ2VtZW50IGluIHdvcmQtd3JhcCBjb250ZXh0IA0KLSBBZGQgamF2YSBzeW50YXggKHRoYW5rcyB0byBEYXdzb24gR29vZGVsbCkNCi0gVXNlIGZhc3RlciByZWdleHAgZm9yIG1hdGNoaW5nIHF1b3RlZCBzdHJpbmdzDQotIEJ1ZyBmaXg6IGlmIGEgaGlnaGxpZ2h0ZWQgcXVvdGUgb3IgY29tbWVudCBzdHJpbmcgY29udGFpbnMgY2FyaWFnZSByZXR1cm4sIGVkaXRpbmcgdGV4dCBvbiBvbmUgb2YgdGhlIGxpbmVzIHdhcyBjYXVzaW4gYSBoaWdobGlnaHQgZGVzeW5jaHJvbmlzYXRpb24NCi0gQnVnIGZpeDogdGV4dCB3YXIgYmx1ciBvbiBTYWZhcmkgMy4yICh0aGFua3MgdG8gc3BlbGxjb2RlcikNCi0gQnVnIGZpeDogdGhlcmUgaGFkIHNldmVyYWwgbWlzdGFrZSB3aXRoIG5vbi1tb25vc3BhY2UgZm9udCAodGhhbmtzIHRvIHNwZWxsY29kZXIpDQotIEJ1ZyBmaXg6IGlmIHNob3dfbGluZV9jb2xvcnMgd2FzIGRpc2FibGVkIGFuZCB3b3JkIHdyYXAgZW5hYmxlLCBoaWdobGlnaHRlZCB0ZXh0IHdhc24ndCByZWZyZXNoZWQgaWYgYSBuZXcgbGluZSBhcHBlYXJzDQotIEJ1ZyBmaXg6IGluIG11bHRpIGZpbGUgZWRpdGlvbiwgY2xvc2luZyB0aGUgbGFzdCB0YWIgd2FzIHRocm93aW5nIGFuIGVycm9yIGluIEZpcmVmb3ggYW5kIGxldCB0aGUgY29udGVudCBvZiB0aGUgdGV4dGFyZWEgZGlzcGxheWVkDQotIEJyb3dzZXIgYnVnIGRldGVjdGlvbjogd2hlbiB1c2luZyBub24tbW9ub3NwYWNlIGZvbnQgRmlyZWZveCB3aWxsIHNvbWV0aW1lIGhhdmUgc3RyYW5nZSBiZWhhdmlvciBvbiB0ZXh0LXdpZHRoICh0aGUgaGlnaGxpZ2h0ZWQgdGV4dC13aWR0aCBpbiB0aGUgYmFja2dyb3VuZCBtYXkgY2hhbmdlIGZyb24gdGV4dGFyZWEgb25lIGFuZCBzaW1wbHkgY2FuIGNoYW5nZSBhZnRlciBiZWVpbmcgdXBkYXRlZCk7IGxvb2sgbGlrZXMgYSBicm93c2VyIHJlbmRlcmluZyBidWcNCg0KKioqKiB2IDAuOCAqKioqDQotIFdvcmQtd3JhcCBpcyBub3cgc3VwcG9ydGVkIChleGNlcHQgZm9yIG9wZXJhLi4uKS4gVGhlIG5ldyBpbml0KCkgb3B0aW9uIGlzICd3b3JkX3dyYXAnIHRvIHNldCB0byAndHJ1ZScgKGRlZmF1bHQgaXMgZmFsc2UpLiBBIG5ldyBidXR0b24gYXBwZWFycyBpbiB0aGUgZGVmYXVsdCB0b29sYmFyIChidXR0b25fY29kZTogJ3dvcmRfd3JhcCcgKQ0KLSBXZSBjYW4gbm93IGNsZWFybHkgc2VlIHRoZSBzZWxlY3RlZCB0ZXh0DQotIEFkZCBJbnRlcm5ldCBleHBsb3JlciA4IHN1cHBvcnQgKGJ1dCBzYWRseSBJIG11c3QgdXNlIElFNyBlbXVsYXRlIG1vZGUgaW4gaWZyYW1lIGR1ZSB0byBhIGJ1ZyB3aXRoIHRhYnVsYXRpb24gd2lkdGggbm90IGJlZWluZyByZXNpemVkIGluIElFJ3MgdGV4dGFyZWEpIA0KLSBBZGQgU2FmYXJpIDQgc3VwcG9ydA0KLSBBZGQgQ2hyb21lIDIgc3VwcG9ydA0KLSBCZXR0ZXIgc3VwcG9ydCBvZiBPcGVyYSA5LjYNCi0gQWRkIFNpbXBsaWZpZWQgQ2hpbmVzZSB0cmFuc2xhdGlvbiAiemgiICh0aGFua3MgdG8gQWJlbnRpYW4pDQotIEFkZCBCdWxnYXJpYW4gdHJhbnNsYXRpb24gImJnIiAodGhhbmtzIHRvIFZhbGVudGluIEhyaXN0b3YpDQotIFJlbmFtZSBpbnRlcm5hbCBmdW5jdGlvbiAkKCkgYnkgXyQoKQ0KLSBEZWxldGUgRWRpdEFyZWEuYWRkX2V2ZW50KCkgbWV0aG9kIChkdXBsaWNhdGUgYWYgZWRpdEFyZWFMb2FkZXIuYWRkX2V2ZW50KCkgbWV0aG9kKQ0KLSBEbyBzb21lIGNvZGUgY2xlYW51cC11cA0KLSBCdWcgZml4OiBoaWdobGlnaHQgb3B0aW1pc2F0aW9uIHByb2Nlc3Mgd2FzIG5vdCB3b3JraW5nIHVuZGVyIElFIChkb24ndCBrbm93biBob3cgbG9uZyBpdCByZW1haW4gYnJva2VuIGJ1dCBtdXN0IGJlIHNpbmNlIGEgbG9uZyB0aW1lKQ0KLSBCdWcgZml4OiBFZGl0QXJlYS51cGRhdGVfc2l6ZSBzb21ldGltZXMgdXNlcyB1bmRlZmluZWQgdmFyaWFibGUgKGZpeCB0aGlzIHBvc3NpYmlsaXR5IGFuZCBjbGVhbnVwIGV2ZW50cykNCi0gQnVnIGZpeDogVGVtcGxhdGUuaHRtbCB3YXMgbm90IHZhbGlkIFhIVE1MDQotIEJ1ZyBmaXg6IFRoZSBjaGVja2VkIGF0dHJpYnV0ZSBvZiB0aGUgdG9vZ2xlIGJ1dHRvbiB3YXMgbm90IGRlZmluZWQgaW4geGh0bWwgc3ludGF4DQotIEJ1ZyBmaXg6IElmIHRoZSBlZGl0QXJlYSB3YXMgbG9hZGVkIG9uIGEgcGFnZSByZWxhdGVkIHRvIGEgZG9tYWluIHdoaWNoIHdhcyBpdHNlbGYgYW4gaWZyYW1lIGNvbW1pbmcgZnJvbSBhbm90aGVyIGRvbWFpbiBhIEpTIGVycm9yIHdhcyB0aHJvd24gb24gbG9hZA0KLSBCdWcgZml4OiBXaGVuIEVkaXRBcmVhIGlzIHVzZWQgdG8gcmVwbGFjZSBhIHRleHRhcmVhIHdoaWNoIGhhcyBzdHlsZT0idmlzaWJpbGl0eTpoaWRkZW47Iiwgc3dpdGNoaW5nIG9mZiBFZGl0QXJlYSB3b3VsZCB0aHJvdyBhbiBlcnJvciB1bmRlciBJRSANCg0KKioqKiB2IDAuNy4zICoqKioNCi0gQWRkIEZpbm5pc2ggdHJhbnNhbHRpb24gKHRoYW5rcyB0byBKYW5uZSBNw6RudHloYXJqdSkNCi0gQWRkICdjdXJzb3JfcG9zaXRpb24nIGluaXQoKSBvcHRpb24gZm9yIGRlZmluaW5nIHdoZXJlIHRoZSBjdXJzb3Igc2hvdWxkIGJlIHdoZW4gdGhlIGVkaXRvciBpcyBzaG93IG9uIHRoZSBmaXJzdCB0aW1lICgnYXV0bycgb3IgJ2JlZ2luJykuIFRoaXMgd2FzIGxpa2UgJ2F1dG8nIGJlZm9yZSBub3cgdGhpcyBpcyBsaWtlICdiZWdpbicgYnkgZGVmYXVsdA0KLSBiZXR0ZXIgYWRkX3N0eWxlIG1ldGhvZCAoZmFzdGVyIHRoYW4gb2xkIG9uZSkgdGhhbmtzIHRvIFNwZWxsY29kZXINCi0gQnVnIGZpeDogZml4IGJ1ZyB3aXRoIG1vb3Rvb2xzIDEuMg0KLSBCdWcgZml4OiBpZiBwYWdlIGhhZCBubyBzdHlsZXNoZWV0cyB3aGVuIGVkaXRhcmVhIGxvYWQsIGl0IHdvdWxkIGdlbmVyYXRlIGFuIGVycm9yDQoNCioqKiogdiAwLjcuMi4zICoqKioNCi0gaXQncyBub3cgcmVsZWFzZWQgdW5kZXIgYm90aCBMR1BMLCBBcGFjaGUsIEJTRCBsaWNlbnNlICh5b3UgY2FuIHVzZSB0aGUgb25lIHlvdSBwcmVmZXIpDQotIGFkZCBzdXBwb3J0IGZvciBib25FY2hvIGJyb3dzZXINCg0KKioqKiB2IDAuNy4yLjIgKioqKg0KLSBGaXggYnVnIHJlZ3Jlc3Npb24gaW50cm9kdWNlZCBpbiAwLjcuMiB0aGF0IG1ha2UgSUU3IG5vdCB3b3JraW5nIA0KLSBhZGQgRXNwZXJlbnRvIHRyYW5zbGF0aW9uICh0aGFua3MgdG8gT2xpdmllcikgIA0KLSBhZGQgQ29sZGZ1c2lvbiBzeW50YXggKHRoYW5rcyB0byBNYXggTGV5bm92KSANCg0KKioqKiB2IDAuNy4yLjEgKioqKg0KLSBmaXggYnVnIGZvciBmaXJlZm94IHJlbmRlcmluZyBvZiBoaWdobGlnaHRlZCBsaW5lcyB0aGF0IGRvZXNuJ3QgYmVnaW4gd2l0aCBhIHRhYg0KLSBzdXBwb3J0IGZvciBicm93c2VyIHdpdGggZ3JhbmRQYXJhZGlzaW8gYWdlbnQgaW5zdGVhZCBvZiBmaXJlZm94DQoNCioqKiogdiAwLjcuMiAqKioqDQotIGFkZCBDaHJvbWUgc3VwcG9ydA0KLSBhZGQgc2hvd19saW5lX2NvbG9ycyBpbml0KCkgb3B0aW9uIGZvciBlbmFibGluZyBzeW50YXggY29sb3IgZGlzcGxheSBhbmQgdXBkYXRlIG9uIHRoZSBjdXJyZW50bHkgZWRpdGVkIGxpbmUgKGRpc2FibGUgdGhlIGJsdWUgYmFyKSAoZGVmYXVsdCB0byBmYWxzZSkNCi0gQWRkIFBlcmwgc3ludGF4IGRlZmluaXRpb24gZmlsZSAodGhhbmtzIHRvIENocmlzdG9waCBQaW5rZWwpDQotIEJ1ZyBmaXg6IHRoZXJlIGFsbHdheXMgd2FzIGFuIGhvcml6b250YWwgc2Nyb2xsYmFyIGV2ZW4gaWYgdGhlIGNvbnRlbnQgZml0IGluIHRoZSBhcmVhLg0KDQoqKioqIHYgMC43LjEuMyAqKioqDQotIEZpeCBhIGJ1ZyBpbnRyb2R1Y2VkIGluIEZpcmVmb3ggMy4wLjEgPT4gdGhlIGJyb3dzZXIgaXMgbm8gbW9yZSBhYmxlIHRvIHJlbmRlciBwcm9wZXJseSAicHJlIiBlbGVtZW50IHdpdGggbGVmdCBwYWRkaW5nLi4uDQotIEFkZCBSb2JvdHMudHh0ICh0aGFua3MgdG8gUGF2bGUgR2dhcmRpamFuKSBhbmQgVC1TUUwgc3ludGF4IGRlZmluaXRpb24gZmlsZXMgKHRoYW5rcyB0byBNaWxhZGluIEpva3NpYykNCg0KKioqKiB2IDAuNy4xLjIgKioqKg0KLSBGaXggYSAgYnVnIG9uIHRoZSBmdWxsIHNjcmVlbiBtb2RlIChyZWdyZXNzaW9uIGFkZGVkIG9uIDAuNy4xLjEpDQoNCioqKiogdiAwLjcuMS4xICoqKioNCi0gRmlyZWZveCAzIFJDMSBjb21wYXRpYmlsaXR5DQotIENvZGUgc2l6ZSByZWR1Y3Rpb246IDEyMEtvID0+IDEwN0tvIGZvciBlZGl0X2FyZWFfZnVsbC5qcw0KDQoqKioqIHYgMC43LjEgKioqKg0KLSByZWxlYXNlZCB1bmRlciBib3RoIExHUEwgYW5kIEFwYWNoZSBsaWNlbnNlICh5b3UgY2FuIHVzZSB0aGUgb25lIHlvdSBwcmVmZXIpDQotIGl0J3Mgbm93IHBvc3NpYmxlIHRvIGdldCBhIHJlYWRvbmx5IG1vZGU6IA0KCSogbmV3IEVkaXRBcmVhTG9hZGVyLmluaXQoKSdzIG9wdGlvbjogImlzX2VkaXRhYmxlIjogdHJ1ZS9mYWxzZQ0KCSogUG9zc2liaWxpdHkgdG8gc3dpdGNoIGVkaXRpb24gbW9kZSBieSB1c2luZyB0aGUgZXhlY0NvbW1hbmQgZnVuY3Rpb246IGVkaXRBcmVhTG9hZGVyLmV4ZWNDb21tYW5kKCdlZGl0b3JfaWQnLCAnc2V0X2VkaXRhYmxlJywgIWVkaXRBcmVhTG9hZGVyLmV4ZWNDb21tYW5kKCdlZGl0b3JfaWQnLCAnaXNfZWRpdGFibGUnKSk7DQotIEFkZGVkIFJ1Ynkgc3ludGF4ICh0aGFua3MgdG8gUGF0cmljZSBEZSBTYWludCBTdGViYW4pDQotIEZpeCBhIGJ1ZyB3aGVyZSB0aGUgdGV4dGFyZWEgbG9zZSB0aGUgZm9jdXMgdW5kZXIgZmlyZWZveCBmb3IgTWFjDQotIE1pbm9yIG90aGVyIGJ1ZyBmaXhlcw0KDQoqKioqIHYgMC43LjAuMiAqKioqDQotIEZpeGVkIGEgYnVnIHdpdGggdHJhbnNsYXRpb24gZmlsZXMgY29udGFpbmluZyBub24tbGF0aW4gY2FyYWN0ZXJzLiBUcmFuc2xhdGlvbnMgZmlsZXMgbXVzdCBiZSBpbiBVVEYtOC4NCi0gQWRkZWQgQ3plY2gsIE1hY2VkaW9uaWFuIGFuZCBSdXNzaWFuIHRyYW5zbGF0aW9ucw0KDQoNCioqKiogdiAwLjcuMC4xICoqKioNCi0gaW4gbXVsdGlwbGUgZmlsZSBtb2RlLCBpdCdzIG5vdyBwb3NzaWJsZSB0byBjYW5jZWwgdGhlICdFQV9maWxlX2Nsb3NlX2NhbGxiYWNrJyBmdW5jdGlvbi4gaWYgdGhlIGNhbGxiYWNrIHJldHVybiBmYWxzZSwgdGhlIGVkaXRlZCBmaWxlIHdvbid0IGJlIGNsb3NlZCANCi0gYnVnIGZpeDogaWYgbm8gc3ludGF4IHdhcyBkZWZpbmVkIGluIHRoZSBtYWluIGluaXQoKSBmdW5jdGlvbiBpbiBtdWx0aWZpbGUgbW9kZSwgdGhlIGZpcnN0IHRpbWUgdGhlIHRleHQgd2FzIG5vdCBoaWdobGlnaHRlZA0KDQoNCioqKiogdiAwLjcgKioqKg0KLSBpdCdzIG5vdyBwb3NzaWJsZSB0byBlZGl0IG11bHRpcGxlIGZpbGVzIGludG8gb25lIGluc3RhbmNlIG9mIEVkaXRBcmVhLiBUaGlzIChzcG9uc29yZWQgYnkgSnVwaXRlcikgZmVhdHVyZSBjb21lcyB3aXRoOiANCgkqIG5ldyBFZGl0QXJlYUxvYWRlci5pbml0KCkncyBvcHRpb246ICJpc19tdWx0aV9maWxlcyI6IHRydWUNCgkqIG5ldyBlZGl0QXJlYUxvYWRlcidzIGZ1bmN0aW9uczogZWRpdEFyZWFMb2FkZXIuZ2V0Q3VycmVudEZpbGUoZWRpdEFyZWFfaWQpLCBlZGl0QXJlYUxvYWRlci5nZXRGaWxlKGVkaXRBcmVhX2lkLCBmaWxlX2lkKSwgZWRpdEFyZWFMb2FkZXIuZ2V0QWxsRmlsZXMoZWRpdEFyZWFfaWQpLCBlZGl0QXJlYUxvYWRlci5vcGVuRmlsZShlZGl0QXJlYV9pZCwgZmlsZV9pbmZvcyksIGVkaXRBcmVhTG9hZGVyLmNsb3NlRmlsZShlZGl0QXJlYV9pZCwgZmlsZV9pZCksIGVkaXRBcmVhTG9hZGVyLnNldEZpbGVFZGl0ZWRNb2RlKGVkaXRBcmVhX2lkLCBmaWxlX2lkLCBlZGl0ZWRfbW9kZSkNCgkqIG5ldyBjYWxsYWJhY2tzOiBFQV9maWxlX3N3aXRjaF9vbl9jYWxsYmFjaywgRUFfZmlsZV9zd2l0Y2hfb2ZmX2NhbGxiYWNrLCBFQV9maWxlX2Nsb3NlX2NhbGxiYWNrDQotIGxvb2sgbGlrZXMgU2FmYXJpIDMgaXMgd29ya2luZyB3aXRoIEVkaXRBcmVhDQotIGFkZCBzcGFuaXNoIHRyYW5zbGF0aW9uICh0aGFua3MgR2FyaXRvKQ0KLSBhZGQgc2xvdmFrIHRyYW5zbGF0aW9uICh0aGFua3MgR2FicmllbCBTY2h3YXJkeSkNCi0gYWRkIFNRTCBzeW50YXggZGVmaW5pdGlvbiBmaWxlICh0aGFua3MgdG8gUGhpbGlwcGUgTGV3aWNraSkNCi0gdGhlIHN5bnRheCBzZWxlY3Rpb24gcGx1Z2luIGhhcyBiZWVuIGludGVncmF0ZWQgdG8gZWRpdGFyZWEgY29yZSBhbmQgbG9hZCBvbmx5IG5lZWRlZCBmaWxlcyAodGhlIHBsdWdpbnMgd2FzIGxvYWRpbmcgYWxsIHRoZSBwb3NzaWJsZSBzeW50YXggZmlsZXMuLi4pLiBUb29sYmFyIGJ1dHRvbiBuYW1lOiAic3ludGF4X3NlbGVjdGlvbiIsIGNvbW1hIHNlcGFyYXRlZCBhdmFpbGFibGUgc3ludGF4IGxpc3Q6ICJzeW50YXhfc2VsZWN0aW9uX2FsbG93Ig0KLSBhZGQgYSAnY29tcHJlc3Npb24nIG9wdGlvbiBpbiBlZGl0X2FyZWFfY29tcHJlc3Nvci5waHAgdGhhdCBhbGxvdyB0byBzZXQgd2hlcmUgdGhlIGNvZGUgc2hvdWxkIGJlIGNvbXByZXNzZWQgb3IganVzdCBwYWNrZWQgKHNpbXBsZSBwYWNrZWQgbW9kZSB1c2VmdWxsIGZvciBkZWJ1Z2dpbmcpDQotIHRoZSB5ZWxsb3cgYXJlYSB0aGF0IGluZGljYXRlIHRoZSBjdXJyZW50IGVkaXRlZCBsaW5lIGlzIG5vdyBibHVlDQotIGJ1ZyBmaXg6IHBhcmVudGhlc2lzIG1hdGNoaW5nIHdhcyBub3Qgd29ya2luZyBjb3JyZWN0bHkgaWYgdGhlcmUgd2hlcmUgYW4gIjwiIGJldHdlZW4gcGFyZW50aGVzaXMNCg0KKioqKiB2IDAuNi43ICoqKioNCi0gYWRkIGEgbmV3IHBsdWdpbiB0aGF0IGFsbG93IHRoZSB1c2VyIHRvIGNoYW5nZSB0aGUgc3ludGF4IGRlZmluaXRpb24gaW4gdXNlLiBJdCBhZGRzIGEgc2VsZWN0IGluIHRoZSB0b29sYmFyLiAtIHBsdWdpbiBuYW1lIHRvIGFkZCB0byB0aGUgcGx1Z2luIGxpc3Q6ICJzeW50YXhfc2VsZWN0aW9uIi4gLSBwbHVnaW4gbmFtZSB0byBhZGQgdG8gdGhlIHRvb2xiYXIgbGlzdDogInN5bnRheF9zZWxlY3Rpb24iLiAtIHBvc3NpYmxlIHBhcmFtZXRlciB0byBhZGQgdG8gRWRpdEFyZWFMb2FkZXIuaW5pdCgpOiANCiJzeW50YXhfc2VsZWN0aW9uX2FsbG93IjogKFN0cmluZykgZGVmaW5lIGEgbGlzdCBzZXBhcmF0ZWQgYnkgIiwiIG9mIHBvc3NpYmxlIGxhbmd1YWdlIHN5bnRheCB0byB1c2UgKGVnOiAicGhwLGpzLHB5dGhvbixodG1sIikNCi0gYWRkIENyb2F0aWFuIHRyYW5zbGF0aW9uIChIUikgKHRoYW5rcyB0byBJdmFuIFZ1Y2ljYSBhbmQgRGF2b3IgQ2lobGFyKQ0KLSBhZGQgQkFTSUMsIEJyYWluZipjaywgQywgQysrIGFuZCBQYXNjYWwgc3ludGF4IGRlZmluaXRpb24gZmlsZXMgKHRoYW5rcyB0byBJdmFuIFZ1Y2ljYSBhbmQgRGF2b3IgQ2lobGFyKQ0KLSBhZGQgSWNld2Vhc2VsIGFzIGEga25vd24gd29ya2luZyBuYXZpZ2F0b3IgKGl0cyBhIGNsb25lIG9mIEZpcmVmb3gpDQotIGltcHJvdmVkIHRoZSBwaHAgc3ludGF4IGJ5IGhpZ2hsaWdodGluZyB0aGUgdmFyaWFibGVzICgkLi4uKQ0KLSByZWFjdGl2YXRlIGd6aXAgY29tcHJlc3Npb24gZm9yIElFNyAod2FzIGRlc2FjdGl2YXRlIGZvciBJRSBhcyBpdCBzb21ldGltZXMgZmFpbGVkKS4gKExldCBtZSBrbm93IGlmIHlvdSBzZWUgdGhhdCB0aGUgbG9hZCBmYWlscyB1bmRlciBJRTcpDQotIHByZXNzaW5nICJlbnRlciIgd2hpbGUgYmVpbmcgaW4gdGhlIHNlYXJjaCBib3ggbm93IHBlcmZvcm0gYSBzZWFyY2guDQotIGFkZCBDYW1pbm8gYXMgYSBzdXBwb3J0ZWQgYnJvd3Nlcg0KLSBidWcgZml4OiB3aGVuIGNsaWNraW5nIGJldHdlZW4gdGhlIGJvdHRvbSB0b29sYmFyIGFuZCB0aGUgdGV4dGFyZWEgKHdoZW4gdGhlcmUgaXMgb25seSBmZXcgbGluZXMgb2YgdGV4dCksIHRoZSB0ZXh0YXJlYSBkaWRuJ3QgZ2V0IHRoZSBmb2N1cw0KLSBidWcgZml4OiB1bmRlciBJRSB0aGUgZGVsZXRlX2luc3RhbmNlKCkgbWV0aG9kIHdhcyB0aHJvd2luZyBhbiBlcnJvcg0KLSBidWcgZml4OiBpZiB0aGUgdGV4dGFyZWEgdG8gY29udmVydCBpbiBhbiBFZGl0QXJlYSB3YXMgaW4gYSBmcmFtZSAob3IgaWZyYW1lKSBnZXR0aW5nIGJhY2sgZnJvbSBmdWxsc2NyZWVuIHRvIG5vcm1hbCBkaXNwbGF5IHdhcyBub3QgcmVzdG9yaW5nIHRoZSBjb3JyZWN0IHNldHRpbmdzIHRvIHRoZSBmcmFtZSBjb250YWluaW5nIHRoZSB0ZXh0YXJlYS4NCi0gYnVnIGZpeCAoYXQgbGVhc3QgSSBob3BlKTogaW4gSUUgaWYgdGhlIHRleHRhcmVhIHRvIGNvbnZlcnQgaW4gYW4gRWRpdEFyZWEgd2FzIGluIGEgZnJhbWUsIHJlc2l6aW5nIHRoZSBmcmFtZSB3YXMgbm90IGNvcnJlY3RseSByZXNpemluZyB0aGUgZWRpdG9yIGlmIGl0IHdhcyBpbiBmdWxsc2NyZWVuLg0KLSBidWcgZml4OiBpbiBPcGVyYSB0aGUgc2VsZWN0aW9ubmVkIGxpbmUgd2FzIG5vdCByZW5kZXJlZCBjb3JyZWN0bHkgaWYgY29udGFpbmluZyBcdCBjYXJhY3RlcnMgKGJ1ZyBpbnRyb2R1Y2VkIGluIG9uZSBvZiB0aGUgbGF0ZXN0IHZlcnNpb24uLi4pDQotIGJ1ZyBmaXg6ICJhbHRncitmIiB3YXMgb3Blbm5pbmcgdGhlIHNlYXJjaGJveCBhbmQgYXZvaWQgdG8gd3JpdGUgIlsiIGFuZCAiXSIgaW4gY3JvYXRpYW4ga2V5Ym9hcmRzLg0KLSBidWcgZml4OiBpbiBGaXJlZm94ICJjdHJsK3RhYiIgd2FzIGluc2VydGluZyBhIHRhYnVsYXRpb24gd2hpbGUgc3dpdGNoaW5nIGFjdGl2ZSB0YWIgKHdpbmRvdykNCg0KTm90ZTogdiAwLjYuNSBhbmQgdiAwLjYuNiBoYXZlIGJlZW4gcHJpdmF0ZSByZWxlYXNlIChjaGFuZ2UgbG9nIGlzIHJlZ3JvdXBlZCBpbiB2IDAuNi43KQ0KDQoqKioqIHYgMC42LjQgKioqKg0KLSBhZGQgcmVwbGFjZV90YWJfYnlfc3BhY2VzIGluaXQoKSBvcHRpb24gd2hpY2ggYWxsb3cgdG8gcmVwbGFjZSBhbGwgdGFidWxhdGlvbiBjYXJhY3RlcnMgdHlwcGVkIGluIHRoZSB0ZXh0IGJ5IGEgZ2l2ZW4gbnVtYmVyIG9mIHNwYWNlcw0KLSBhZGQgbWluX3dpZHRoIGFuZCBtaW5faGVpZ2h0IGluaXQoKSBvcHRpb24gZm9yIHRoZSBtaW5pbXVtIHNpemUgaW4gcGl4ZWwgZm9yIHRoZSBlZGl0b3INCi0gYWRkIGR1dGNoIHRyYW5zbGF0aW9uIGZpbGVzIChOTCkgKHRoYW5rcyB0byBCYXJ0IEJvc21hKQ0KLSBwcmVzc2luZyBTaGlmdCtUYWIgd2hlbiBubyB0ZXh0IGlzIHNlbGVjdGVkIG5vdyBkZWxldGUgdGhlIHRhYnVsYXRpb24gYmVmb3JlIHRoZSBjdXJzb3IgKGlmIGEgdGFidWxhdGlvbiBpcyBwcmVzZW50IGRpcmVjdGx5IGJlaGluZyB0aGUgY3Vyc29yKQ0KLSBpbXByb3ZlIFB5dGhvbiBzeW50YXggKHRoYW5rcyB0byBBbmRyZSBSb2JlcmdlKQ0KLSBidWcgZml4OiB0aGUgZnVsbHBhZ2UgcGx1Z2luIHdhcyBub3Qgd29ya2luZyBjb3JyZWN0bHkgd2hlbiB0aGUgRWRpdG9yIHdhcyBwbGFjZWQgaW5zaWRlIHNldmVyYWwgZGl2cyB0aGF0IGhhdmUgcG9zaXRpb25pbmcgb2YgdGhlcmUgb3duDQotIGJ1ZyBmaXg6IG9uZSByZWdleHAgdXNlZCBpbiBlZGl0X2FyZWFfY29tcHJlc3Nvci5waHAgd2FzIG5vdCBjb21wYXRpYmxlIHdpdGggbGF0ZXN0IFBDUkUgdmVyc2lvbg0KDQotIGZpeCB0aGUgbXlfbG9hZCBhbmQgbXlfc2F2ZSBmdW5jdGlvbnMgb2YgdGhlICdleGVtcGxlX2Z1bGwuaHRtbCcgcGFnZQ0KDQoqKioqIHYgMC42LjMuMSAqKioqDQotIHJlZ3Jlc3Npb246IHJlc3RvcmUgbW9ub3NwYWNlIGFzIGRlZmF1bHQgZm9udA0KLSBhZGQgbGl0dGxlIGltcHJvdmVtZW50cyB0byB0aGUgUEhQIGNvbXByZXNzb3I6IGFsbG93IHRvIHdpbiA3IEtvIG9uIGVkaXRfYXJlYV9mdWxsLmpzDQotIGFkZCB0aGUgdmVyc2lvbiBudW1iZXIgaW4gdGhlIGFib3V0IHBvcHVwDQotIGJ1ZyBmaXg6IGZpeCBhIHJlZ2V4cCB0aGF0IHdhcyBub3QgY29tcGxpYW50IHdpdGggbmV3ZXIgdmVyc2lvbiBvZiBQQ1JFDQotIGJ1ZyBmaXg6IGZpeCBzb21lIGJ1ZyB3aXRoIHRoZSBmdWxsc2NyZWVuIG1vZGUgKHN0aWxsIG5vdCBwZXJmZWN0IGluIE9wZXJhKQ0KLSBidWcgZml4OiB0aGUgY2xvc2UgYnV0dG9uIG9mIHRoZSBoZWxwIHBvcHVwIHdhcyBub3QgY29ycmVjdGx5IHRyYW5zbGF0ZWQNCi0gYnVnIGZpeDogd2hlbiBkZWxldGluZyBhbiBpbnN0YW5jZSBvZiBlZGl0QXJlYSB0b2dnbGVfb2ZmIHdhcyBjYWxsZWQgZXZlbiBpZiB0aGUgZWRpdEFyZWEgd2FzIG5vdCBkaXNwbGF5ZWQNCg0KDQoqKioqIHYgMC42LjMgKioqKg0KLSBhbGxvdyB0byB1c2Ugbm9uIG1vbm9zcGFjZSBmb250IHVzaW5nIHRoZSBmb250X2ZhbWlseSBpbml0IG9wdGlvbi4gRmlyZWZveCBnZXQgc21hbGxlciB0YWJ1bGF0aW9uIHdpdGggbm9uIG1vbm9zcGFjZSBmb250cy4gSUUgZG9lc24ndCBjaGFuZ2UgdGhlIHRhYnVsYXRpb24gd2lkdGggYW5kIE9wZXJhIGRvZXNuJ3QgdGFrZSB0aGlzIG9wdGlvbiBpbnRvIGFjY291bnQuLi4gbmV3IGRlZmF1bHQgZm9udC1mYW1pbGx5OiAndmVyZGFuYSxtb25vc3BhY2UnDQotIGFkZCBmdWxsc2NyZWVuIG9wdGlvbiBpbiB0aGUgdG9vbGJhciBhbmQgYXMgYW4gaW5pdCgpIG9wdGlvbi4gDQotIGlmIHRoZSBiYXNlZCB0ZXh0YXJlYSBoYXMgYSB3aWR0aCAob3IgaGVpZ2h0KSBpbiAnJScsIEVkaXRBcmVhIHdpbGwgZ2V0IHRoZSBzYW1lICclJyB3aWR0aCAob3IgIGhlaWdodCksIGFsbG93aW5nIEVkaXRBcmVhIHRvIGJlIHJlc2l6ZWQgaW4gdGhlIHNhbWUgdGltZSB0aGFuIHRoZSB3aW5kb3cuDQotIGFkZCBtYW55IGNhbGxiYWNrIHBvc3NpYmlsaXR5OiBzdWJtaXRfY2FsbGJhY2ssIEVBX2xvYWRfY2FsbGJhY2ssIEVBX3VubG9hZF9jYWxsYmFjaywgRUFfaW5pdF9jYWxsYmFjaywgRUFfdG9nZ2xlX29uX2NhbGxiYWNrLCBFQV90b2dnbGVfb2ZmX2NhbGxiYWNrLCBFQV9kZWxldGVfY2FsbGJhY2sgKHNlZSBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGluZm9ybWF0aW9uKQ0KLSBidWcgZml4OiB3aGVuIHRvZ2dsaW5nIGZyb20gdGV4dGFyZWEgdG8gZWRpdGFyZWEsIElFIHdhcyBhbG1vc3Qgb2YgdGhlIHRpbWUgbm90IGtlZXBpbmcgdGhlIHNlbGVjdGlvbg0KLSBidWcgZml4OiB0aGUgYnJhY2tldHMgd2hlcmUgc3RpbGwgaGlnaGxpZ2h0ZWQgaW4gcmVkIHdoZW4gYmVpbmcgZGVsZXRlZA0KLSBidWcgZml4OiBicmFja2V0cyB3aGVyZSBub3QgcGxhY2VkIGNvcnJlY3RseSB3aGVuIHRoZSBsaW5lIGNvbnRhaW5zIGh0bWwgZW50aXRpdGVzICgmYW1wOyAmcXVvdDsgZXRjLi4uLikNCg0KDQoqKioqIHYgMC42LjIgKioqKg0KV0FSTklORyA9PiBQT1NTSUJMRSBCUkVBSyBDT01QQVRJQklMSVRZOg0KLSB0aGUgbG9hZF9jYWxsYmFjayBub3cgcmVjZWl2ZSB0aGUgJ2lkJyBvZiB0aGUgdGV4dGFyZWEgYW5kIG5vIG1vcmUgYSByZWZlcmVuY2UgdG8gdGhlIHRleHRhcmVhLiBEZXZlbG9wcGVycyBzaG91bGQgdXNlIGVkaXRBcmVhTG9kZXIgbWV0aG9kcyByYXRoZXIgdGhhbiBtb2RmeWluZyBkaXJlY3RseSB0aGUgdGV4dGFyZWEuDQotIHRoZSBzYXZlX2NhbGxiYWNrIG5vdyByZWNlaXZlIHRoZSAnaWQnIG9mIHRoZSB0ZXh0YXJlYSBhcyBmaXJzdCBhcmd1bWVudCwgYW5kIGl0J3MgY29udGVudCBpbiB0aGUgc2Vjb25kIGFyZ3VtZW50Lg0KDQotIEVkaXRBcmVhIGlzIG5vdyBjb21wYXRpYmxlIHdpdGggamF2YXNjcmlwdCBsaWJyYXJpZXMgbGlrZSAicHJvdG90eXBlIiAoMS41KSBhbmQgIm1vb3Rvb2xzIiAocmVsZWFzZSA4MykNCi0gYWRkIHR3byBmdW5jdGlvbiB0byBFZGl0QXJlYUxvYWRlcjogaGlkZShpZCkgYW5kIHNob3coaWQpLCB0aGF0IHdpbGwgYWxsb3cgdG8gY29tcGxldGx5IGhpZGUvcmVzdG9yZSBib3RoIEVkaXRBcmVhIGFuZCBub3JtYWwgdGV4dGFyZWEgKHVzZWZ1bGwgd2hlbiBFZGl0QXJlYSBpcyBpbmNsdWRlZCBpbiB0YWJzKS4NCi0gaXQncyBubyBtb3JlIHBvc3NpYmxlIHRvIG1vdmUgdGhlIHNlYXJjaCB3aW5kb3cgb3V0IG9mIHRoZSBmcmFtZS4NCi0gZ2Vja29fc3BlbGxjaGVjayBvcHRpb24gaXMgbm93IHNldCB0byBmYWxzZSBieSBkZWZhdWx0Lg0KLSBhZGQgYSBvbmNoYW5nZV9jYWxsYmFjayBvcHRpb24gKGNmIGRvYykNCi0gYnVnIGZpeDogaW4gSUUgd2hlbiBzeW50YXggaGlnaGxpZ2h0IHdhcyBvbiwgY2xpY2tpbmcgb24gdGhlIHRleHRhcmVhIG91dHNpZGUgdGhlIHJhbmdlIG9mIHRoZSB0ZXh0LCB0aGUgY2xpY2sgd2Fzbid0IHRha2luZyBpbnRvIGFjY291bnQuDQotIGJ1ZyBmaXg6IHJlZmVyZW5jZXMgdG8gdGhlIG9yZ2luYWwgdGV4dGFyZWEgY291bGQgYmUgbG9zdCB3aGlsZSB1c2luZyBFZGl0QXJlYS4NCi0gYnVnIGZpeDogdXNpbmcgaW5zZXJ0VGFncywgZ2V0U2VsZWN0aW9uUmFuZ2Ugd2hlbiBlZGl0QXJlYSB3YXMgbm90IGZvY3VzZWQsIElFIGZhaWxlZA0KLSBidWcgZml4OiBtYWluIHNjcmlwdCBjb3VsZCBmYWlsIHRvIGxvYWQgYWRkaXRpb25uYWwgZmlsZXMgaW4gY2VydGFpbiBzcGVjaWZpYyBjYXNlcw0KDQoqKioqIHYgMC42LjEgKioqKg0KLSBjb21wYXRpYmxpdHkgd2l0aCBGaXJlZm94IDIgY2hlY2tlZCAod2FzIGFscmVhZHkgY29tcGF0aWJsZSBiZWZvcmUpLg0KLSBjb21wYXRpYmxpdHkgd2l0aCBJRTcgY2hlY2tlZCAod2FzIGFscmVhZHkgY29tcGF0aWJsZSBiZWZvcmUpLg0KLSBhZGRlZCBwb3NzaWJpbGl0eSB0byBjYWxsIHRoZSBlZGl0QXJlYUxvYWRlci5pbml0KCkgZnVuY3Rpb24gYXQgYW55IG1vbWVudCAobm8gbW9yZSBsaW1pdGVkIHRvIHdpbmRvdyBsb2FkKS4gQWxsb3cgdG8gcmVwbGFjZSBhbiBFZGl0QXJlYSBpbnN0YW5jZSBieSBhIG5ldyBvbmUgd2l0aCBvdGhlciBvcHRpb25zLg0KLSBhZGRlZCBuZXcgZ2Vja29fc3BlbGxjaGVjayBvcHRpb24sIHRoaXMgZW5hYmxlcyB5b3UgdG8gZGlzYWJsZS9lbmFibGUgdGhlIEZGIDIuMCBzcGVsbGNoZWNrZXIuDQotIGFkZGVkIGVkaXRBcmVhTG9hZGVyLmRlbGV0ZV9pbnN0YW5jZShpZCkgdG8gYWxsb3cgdG8gZGVsZXRlIGFuIEVkaXRBcmVhIGluc3RhbmNlDQotIEZpeCBhIGJ1ZyB3aGVyZSAiQ3RybCtHIiB3YXNuJ3Qgb3Blbm5pbmcgYW55bW9yZSB0aGUgZ28gdG8gbGluZSBwcm9tcHQgYm94Lg0KDQoNCioqKiogdiAwLjYuMC4xICoqKioNCi0gYWRkIGl0YWxpYW4gdHJhbnNsYXRpb24gKHRoYW5rcyB0byBMdWNpYW5vIFZlcm5hc2NoaSkNCi0gYWRkIHBvbGlzaCB0cmFuc2xhdGlvbiAodGhhbmtzIHRvIFBpb3RyIEZ1cm1hbikNCi0gaW1wcm92ZSBkZXV0c2ggdHJhbnNsYXRpb24gKHRoYW5rcyB0byBGZWxpeCBSaWVzdGVyZXIpDQotIGFkZCBhIGxpdHRsZSBzdHlsZSBpbXByb3ZlbWVudCBmb3IgYnV0dG9ucyBpbiBzZWFyY2ggcG9wdXAuIHRoZXkgY2FuJ3QgYmUgc3BsaXRlZCBpbiB0d28gbGluZSBhbnltb3JlDQotIGNoYW5nZSBjb2xvciBmb3IgdGFncyBpbiBodG1sIGFuZCB4bWwgc3ludGF4IGR1ZSB0byB2aXNpYmlsaXR5IHByb2JsZW1zDQoNCg0KKioqKiB2IDAuNiAqKioqDQotIGFkZCBwbHVnaW5zIHBvc3NpYmlsaWVzDQotIGFkZCBlZGl0QXJlYUxvYWRlci5pbnNlcnRUYWdzIGZ1bmN0aW9uIHRvIGFsbG93IGVhc3kgdGFncyBpbnNlcnRpb24uDQotIGltcHJvdmUgdW5kbyAmIHJlZG8gZnVuY3Rpb25uYWxpdHkNCi0gaW1wcm92ZSBwaHAgY29tcHJlc3Npb246ICJlZGl0X2FyZWFfZnVsbC5qcyIgaXMgOSBLbyBzbWFsbGVyDQotIGltcHJvdmUgc3ludGF4IGhpZ2hsaWdodCByZWdleHAgZm9yIHF1b3R0ZWQgc3RyaW5nLiBcXCIgb3IgXFwnIChvciBcXFxcIiwgZXRjLi4uKSB3aWxsIG5vdyBlZmZlY3RpdmVseSBjbG9zZSBxdW90dGVkIHN0cmluZw0KLSBhZGQgc2Nyb2xsYmFycyB0byB0aGUgcG9wdXBzIHdoZW4gdGhlIHBvcHVwJ3MgaGVpZ2h0IGlzIHNtYWxsZXIgdGhhbiB0aGUgZWRpdG9yJ3MgaGVpZ2h0DQotIGFkZCBqYXBhbmVzZSB0cmFuc2xhdGlvbiBmaWxlICh0aGFua3MgdG8gSVNISVRPWUEgS2VudGFybykNCi0gYWRkIHBvc3NpYmlsaXR5IHRvIGFkZCBsaW5lLWJyZWFrIGluIHRvb2xiYXIgKCIqIikNCi0gZGlzYWJsZSBnemlwIGNvbXByZXNzaW9uIGZvciBJRSAoc2VlOiBodHRwOi8vc3VwcG9ydC5taWNyb3NvZnQuY29tL2RlZmF1bHQuYXNweD9zY2lkPWtiO2VuLXVzO1EzMTI0OTYpDQotIGJ1ZyBmaXg6IHdoZW4gc3VibWl0dGluZyBmb3JtIHdoaWxlIGVkaXRhcmVhIHRvZ2dsZWQgb2ZmLCB0aGUgcG9zdCB2YWx1ZSB3YXMgZXF1YWxzIHRvIHRoZSBvbGQgY29udGVudCBvZiBlZGl0YXJlYSBhbmQgbm90IHRoZSB2aXNpYmxlIHRleHRhcmVhDQotIGJ1ZyBmaXg6IHVuZGVyIElFIHRoZSBlZGl0b3Igd2FzIHNjcm9sbGluZyB3aGVuIHByZXNzaW5nIGVudGVyDQotIGJ1ZyBmaXg6IHdoZW4gaW5zdGVydGluZyB0ZXh0IG9uIGZpcnN0IGxpbmUgdGhlcmUgd2FzIGFuIGhpZ2hsaWdodCBkZXN5bmNocm9uaXphdGlvbg0KDQoNCg0KKioqKiB2IDAuNS4zICoqKioNCldBUk5JTkcgPT4gUE9TU0lCTEUgQlJFQUsgQ09NUEFUSUJJTElUWToNCi0gY29ycmVjdCBhIHNwZWxsaW5nIGVycm9yOiAidG9vZ2xlIiBiZWNvbWUgInRvZ2dsZSIgaW4gdGhlIHdob2xlIGNvZGUuIFRoaXMgY2FuIHBlcnR1cmIgdGhlIGluaXRpYWxpemF0aW9uIHdpdGggdGhlICJhbGxvd190b2dnbGUiIGluaXQgcGFyYW1ldGVycw0KDQotIGFkZCBhIGNhc2Ugc2Vuc2l0aXZlIG9wdGlvbiBpbiBzeW50YXggZGVmaW5pdGlvbiBmaWxlcw0KLSBpbXByb3ZlIGh0bWwgc3ludGF4IGRlZmluaXRpb24gZmlsZQ0KLSBhZGQgeG1sIHN5bnRheCBkZWZpbml0aW9uIGZpbGUNCi0gYWRkIHZiIHN5bnRheCBkZWZpbml0aW9uIGZpbGUgKHRoYW5rcyB0byBNYXJ0aW4gR290dGxpZWIpDQotIGFkZCBzb21lIGZ1bmN0aW9uIHRoYXQgd2lsbCBhbGxvdyBkeW5hbWljIEVkaXRBcmVhIGNvbnRlbnQgbWFuYWdlbWVudCwgdGFraW5nIGludG8gYWNjb3VudCBpZiB0aGUgZWRpdG9yIGlzIGRpc3BsYXllZCBvciB0b2dnbGVkIG9mZiAoZWRpdEFyZWFMb2RhZXIuZ2V0VmFsdWUoKSwgZWRpdEFyZWFMb2FkZXIuc2V0VmFsdWUoKSwgZWRpdEFyZWFMb2FkZXIuZ2V0U2VsZWN0ZWRUZXh0KCksIGVkaXRBcmVhTG9hZGVyLnNldFNlbGVjdGVkVGV4dCgpLCBlZGl0QXJlYUxvYWRlci5nZXRTZWxlY3Rpb25SYW5nZSBhbmQgZWRpdEFyZWFMb2FkZXIuc2V0U2VsZWN0aW9uUmFuZ2UoKSkuIFNlZSAiamF2YXNjcmlwdCBmdW5jdGlvbnMiIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgaW5mb3JtYXRpb25zDQotIGFkZCBhIGdlbmVyaWMgZnVuY3Rpb24gKGVkaXRhQXJlYUxvYWRlci5leGVjQ29tbWFuZCkgdG8gYWxsb3cgdG8gYWNjZXNzIEVkaXRBcmVhJ3MgZnVuY3Rpb25zIGFuZCBkYXRhcw0KLSBhZGQgcG9ydHVndWVzZSB0cmFuc2xhdGlvbiBmaWxlICh0aGFua3MgdG8gTGVvbmFyZG8gU2FwdWNhaWEpDQotIGFkZCBjb21wYXRpYmlsaXR5IHRvIElFNyBSQzENCg0KDQoqKioqIHYgMC41LjIgKioqKg0KLSBPcGVyYSBpbXByb3ZlbWVudDogdGV4dCBpbmRlbnRhdGlvbiBpcyBub3cgd29ya2luZywgYW5kICJnbyB0byBsaW5lIiBpcyBub3cgd29ya2luZyBhcyBpbiBvdGhlciBicm93c2Vycw0KLSBCdWcgZml4OiBJdCB3YXMgc3RpbGwgcG9zc2libGUgdG8gc2VsZWN0IHRleHQgaW4gc2VhcmNoIHBvcHVwDQotIEJ1ZyBmaXg6IHRoZSAiZ28gdG8gbGluZSIgcG9wdXAgd2Fzbid0IGRpc3BsYXlpbmcgYW55bW9yZQ0KLSBUaGVyZSB3YXMgc3RpbGwgc29tZSBoYXJkIGNvZGRlZCB3b3JkIGluIHRoZSBzZWFyY2ggZmllbGQgPT4gYWRkZWQgdGhlbSB0byB0cmFuc2xhdGlvbiBmaWxlcw0KLSBCdWcgZml4OiB3aGVuIG11bHRpcGxlIGxhbmd1YWdlcyB3ZXJlIHVzZWQgaW4gdGhlIHNhbWUgcGFnZSwgdGhlcmUgY291bGQgaGF2ZSB0cmFuc2xhdGlvbiBleGNoYW5nZSBiZXR3ZWVuIHRoZSBkaWZmZXJlbnQgZWRpdG9ycw0KDQoNCioqKiogdiAwLjUuMSAqKioqDQotIEJ1ZyBmaXg6IHRoZSBoaWdobGlnaHRlZCBicmFja2V0IHdhcyBkaXNwbGF5ZWQgb24gbGluZSAxIHdoZW4gaXQgc2hvdWxkIGJlIGluIGxpbmUgMg0KLSBCdWcgZml4OiB0aGUgaGlnaGxpZ2h0ZWQgYnJhY2tldCB3ZXJlIGJhZCBkaXNwbGF5ZWQgaW4gSUUNCi0gQnVnIGZpeDogdGhlaXIgd2FzIHNvbWUgZXJyb3IgaW4gdGhlIG9wdGltaXNhdGlvbiBwcm9jZXNzIG9mIHRoZSBoaWdobGlnaHQgbW9kZQ0KLSBCdWcgZml4OiB0aGVpciB3YXMgYSBidWcgd2hlbiBtb3ZpbmcgdGhlIHNlYXJjaCBwb3B1cCBvbiBJRQ0KDQoqKioqIHYgMC41ICoqKioNCi0gTm93IHJlbGVhc2VkIHVuZGVyIExHUEwNCi0gUmV3cml0ZSBuZWFybHkgZnJvbSBzY3JhdGNoDQotIEFkZGVkIERhbmlzaCB0cmFuc2xhdGlvbiBmaWxlICh0aGFua3MgdG8gUGV0ZXIgS2xlaW4pDQotIEFkZCBweXRob24gc3ludGF4DQoNCg0KV0FSTklORyA9PiBCUkVBSyBDT01QQVRJQklMSVRZOg0KLSB0aGUgd2hvbGUgbG9hZGluZyBwcm9jZXNzIChqYXZhc2NyaXB0IGluY2x1ZGUgYW5kIGluaXQgZnVuY3Rpb24gY2FsbCkgaXMgY2hhbmdlZCAoYnV0IGl0J3Mgc2ltaWxhciB0byB0aGUgb2xkIHZlcnNpb24pDQotIHRoZSBsYW5ndWFnZXMgdHJhbnNsYXRpb24gZmlsZXMgYXJlIG5vdCBzdG9yZWQgaW4gdGhlIHNhbWUgdmFyaWFibGUNCg0KDQpJTVBST1ZFTUVOVFM6DQotIFRoZSB3aG9sZSBjb2RlIGlzIG1vcmUgc3RhYmxlDQotIEFsbG93IHNldmVyYWwgaW5zdGFuY2Ugb24gdGhlIHNhbWUgcGFnZQ0KLSBGYXN0ZXIgdG8gbG9hZA0KLSBUaGUgaGlnaGxpZ2h0IHByb2Nlc3MgaXMgbW9yZSBzdGFibGUgYW5kIHRoZXJlIGlzIG5lYXJseSBubyBtb3JlIHRvIHVzZSB0aGUgInJlIHN5bmMiIGJ1dHRvbg0KLSBBZGQgc3VwcG9ydCBvZiBPcGVyYSA5IChldmVuIGlmIGl0cyBzdGlsbCBub3QgcGVyZmVjdCkNCi0gQWRkIHRoZSBwb3NzaWJpbGl0eSB0byBsb2FkIGEgbmV3IGNvbXByZXNzZWQgc2NyaXB0IG9mIG9ubHkgMjBLbyBmb3IgdGhlIHdob2xlIGNvcmUgc2NyaXB0IGV2ZW4gaWYgUEhQIGlzIG5vdCBpbnN0YWxsZWQNCi0gVGhlIHRleHRhcmVhIGNhbiBiZSB0b2dnbGVkIHRvIGFuIEVkaXRBcmVhIG9uIHdpbmRvdyBsb2FkIG9yIGxhdGVyDQotIFRoZSBFZGl0QXJlYSBpcyBsb2FkZWQgaW4gYSBpZnJhbWUgPT4gdGhlcmUgaXMgbm8gbW9yZSBpbnRlcmFjdGlvbiB3aXRoIHVzZXIgY3NzDQotIFN1cHBvcnQgdGhlIHJlc2V0IGFjdGlvbiBvZiBhIGZvcm0NCi0gQWRkIHN1cHBvcnQgZm9yICJwYWdlIHVwIiAmICJwYWdlIGRvd24iIGJ1dHRvbg0KLSBUaGVyZSBpcyBub3cgYSB3YWl0aW5nIHNjcmVlbiB3aGVuIHRvZ2dsaW5nIG9uIHRoZSBoaWdobGlnaHQgc3ludGF4IChidXQgaXQgY2FuJ3QgYmUgYW4gYW5pbWF0ZWQgb25lLCBldmVuIGdpZiBhcmUgbm90IGFuaW1hdGVkIGR1ZSB0byBDUFUgbG9hZCkNCi0gQWxsIHN1cHBvcnRlZCBicm93c2VycyBjYW4gbm93IGNoYW5nZSBmb250LXNpemUNCg0KQlVHIEZJWEVTOiANCi0gU29tZXRpbWVzIHdoaWxlIHVzaW5nIHRoZSAidG9nZ2xlIGVkaXRvciIgYnV0dG9uIHRvIHR1cm4gb2YgdGhlIGVkaXRvciwgdGhlIHN0YW5kYXJkIHRleHRhcmVhIHdhcyBleHBhbmRlZCB0byB0aGUgZnVsbCBzaXplIG9mIHRoZSB0ZXh0YXJlYSBjb250ZW50Lg0KLSBXaGVuIHJlc2l6aW5nIHRoZSBhcmVhIHRoZSBzZWxlY3Rpb24gd2FzIGxvc3QNCi0gQWxsb3cgdHJhbnNsYXRpb24gZm9yIHNvbWUgZm9yZ290dGVuIGhhcmQtY29kZWQgd29yZCAodGhlICJtb3ZlIiBidXR0b24gZm9yIHNlYXJjaCBwb3B1cCwgYW5kICJmb250IHNpemUiLCBhbmQga2V5cyB3b3JkIGluIGhlbHAgcGFuZWwpLg0KLSBJdCB3YXMgcG9zc2libGUgdG8gImRyYWciIHRoZSBidXR0b25zIGZyb20gdGhlIFNlYXJjaC9SZXBsYWNlIHBvcHVwIGludG8gdGhlIGNvbnRlbnQgb2YgdGhlIHRleHRhcmVhLg0KLSBPbiBmaXJzdCBkaXNwbGF5ICh3aGVuIHRoZSBmaWxlcyBhcmUgbm90IGluIGNhY2hlKSBvciB3aXRoIHhodG1sIGRvY3R5cGUgdGhlcmUgaXMgYSBkaXNwbGF5IGJ1ZyAodGhlIGNvbnRlbnQgb2YgdGhlIHRleHRhcmVhIGV4Y2VlZCBvZiA0cHgpDQotIHdoZW4gdGhlIGN1cnNvciB3YXMgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgMXN0IGxpbmUgb2YgdGhlIHRleHRhcmVhLCB0aGUgY2FyYWN0ZXIgcG9zaXRpb24gd2FzIHNldCB0byAwIGluc3RlYWQgb2YgMQ0KDQoNCg0KKioqdiAwLjQqKioqDQotIEluY3JlYXNlcyBzeW50YXggaGlnaGxpZ2h0IHByb2NjZXNzIHNwZWVkIGJ5IDUgPT4gYWxsb3cgYSBiZXR0ZXIgbGl2ZSBlZGl0aW5nIG1vZGUgd2l0aCBzeW50YXggaGlnaGxpZ2h0Lg0KLSBOb3cgc3ludGF4IGhpZ2hsaWdodCBoYXMgYSByZWFsIGxhbmd1YWdlIHN5bnRheC4gVGV4dCBpcyBwYXJzaW5nIHdpdGggcnVsZXMgZGVwZW5kaW5nIG9mIHRoZSBsYW5ndWFnZSBkZWZpbml0aW9uIGZpbGUuIChsaW1pdGF0aW9uOiB0aGVyZSBpcyBvbmx5IG9uZSBsYW5ndWFnZSBvbiB0aGUgc2FtZSB0aW1lID4gZG9lc24ndCBhbGxvdyB0byBwYXJzZSBodG1sIGFuZCBwaHAgb24gdGhlIHNhbWUgcGFnZSkuDQotIFN5bnRheCBoaWdobGlnaHQgY2FuIGJlIGVhc2lseSBleHRlbmRlZCB3aXRoIG5ldyBjb2RlIGxhbmd1YWdlcyAodGhlcmUgaXMgY3VycmVudGx5OiBwaHAsIGNzcywganMsIGh0bWwpLg0KLSBBZGQgZ2VybWFuIGxhbmd1YWdlIGZpbGUgKHRoYW5rcyB0byBPbGFmIEJyYW1icmluaykuDQotIEZpeCBzb21lIGxpdHRsZSBidWdzLg0KDQoNCg0KDQoqKip2MC4zMyoqKg0KLSBGaXJzdCByZWxlYXNlLg0K]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/edit_area.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ym9keSwgaHRtbHsNCgltYXJnaW46IDA7IA0KCXBhZGRpbmc6IDA7DQoJaGVpZ2h0OiAxMDAlOw0KCWJvcmRlcjogbm9uZTsNCglvdmVyZmxvdzogaGlkZGVuOw0KCWJhY2tncm91bmQtY29sb3I6ICNGRkY7DQp9DQoNCmJvZHksIGh0bWwsIHRhYmxlLCBmb3JtLCB0ZXh0YXJlYXsNCglmb250OiAxMnB4IG1vbm9zcGFjZSwgc2Fucy1zZXJpZjsNCn0NCg0KI2VkaXRvcnsNCglib3JkZXI6IHNvbGlkICM4ODggMXB4Ow0KCW92ZXJmbG93OiBoaWRkZW47DQp9DQoNCiNyZXN1bHR7DQoJei1pbmRleDogNDsgDQoJb3ZlcmZsb3cteDogYXV0bzsNCglvdmVyZmxvdy15OiBzY3JvbGw7DQoJYm9yZGVyLXRvcDogc29saWQgIzg4OCAxcHg7DQoJYm9yZGVyLWJvdHRvbTogc29saWQgIzg4OCAxcHg7DQoJcG9zaXRpb246IHJlbGF0aXZlOw0KCWNsZWFyOiBib3RoOw0KfQ0KDQojcmVzdWx0LmVtcHR5ew0KCW92ZXJmbG93OiBoaWRkZW47DQp9DQoNCiNjb250YWluZXJ7DQoJb3ZlcmZsb3c6IGhpZGRlbjsNCglib3JkZXI6IHNvbGlkIGJsdWUgMDsNCglwb3NpdGlvbjogcmVsYXRpdmU7IA0KCXotaW5kZXg6IDEwOw0KCXBhZGRpbmc6IDAgNXB4IDAgNDVweDsNCgkvKnBhZGRpbmctcmlnaHQ6IDVweDsqLyANCn0NCg0KI3RleHRhcmVhew0KCXBvc2l0aW9uOiByZWxhdGl2ZTsgDQoJdG9wOiAwOyANCglsZWZ0OiAwOw0KCW1hcmdpbjogMDsNCglwYWRkaW5nOiAwOw0KCXdpZHRoOiAxMDAlOw0KCWhlaWdodDogMTAwJTsgDQoJb3ZlcmZsb3c6IGhpZGRlbjsgIA0KCXotaW5kZXg6IDc7IA0KCWJvcmRlci13aWR0aDogMDsNCgliYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsNCglyZXNpemU6IG5vbmU7DQp9DQoNCiN0ZXh0YXJlYSwgI3RleHRhcmVhOmhvdmVyew0KCW91dGxpbmU6IG5vbmU7CS8qIHNhZmFyaSBvdXRsaW5lIGZpeCAqLw0KfQ0KDQojY29udGVudF9oaWdobGlnaHR7DQoJd2hpdGUtc3BhY2U6IHByZTsNCgltYXJnaW46IDA7DQoJcGFkZGluZzogMDsNCglwb3NpdGlvbiA6IGFic29sdXRlOyANCgl6LWluZGV4OiA0OyANCglvdmVyZmxvdzogdmlzaWJsZTsNCn0NCg0KDQojc2VsZWN0aW9uX2ZpZWxkLCAjc2VsZWN0aW9uX2ZpZWxkX3RleHR7DQoJbWFyZ2luOiAwOyANCgliYWNrZ3JvdW5kLWNvbG9yOiAjRTFGMkY5OyANCi8qCWhlaWdodDogMXB4OyAqLyAgDQoJcG9zaXRpb246IGFic29sdXRlOw0KCXotaW5kZXg6IDU7DQoJdG9wOiAtMTAwcHg7DQoJcGFkZGluZzogMDsNCgl3aGl0ZS1zcGFjZTogcHJlOw0KCW92ZXJmbG93OiBoaWRkZW47DQp9DQoNCiNzZWxlY3Rpb25fZmllbGQuc2hvd19jb2xvcnMgew0KCXotaW5kZXg6IDM7DQoJYmFja2dyb3VuZC1jb2xvcjojRURGOUZDOw0KCQ0KfQ0KDQojc2VsZWN0aW9uX2ZpZWxkIHN0cm9uZ3sNCglmb250LXdlaWdodDpub3JtYWw7DQp9DQoNCiNzZWxlY3Rpb25fZmllbGQuc2hvd19jb2xvcnMgKiwgI3NlbGVjdGlvbl9maWVsZF90ZXh0ICogew0KCXZpc2liaWxpdHk6IGhpZGRlbjsNCn0NCg0KI3NlbGVjdGlvbl9maWVsZF90ZXh0ew0KCWJhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7DQp9DQoNCiNzZWxlY3Rpb25fZmllbGRfdGV4dCBzdHJvbmd7DQoJZm9udC13ZWlnaHQ6bm9ybWFsOw0KCWJhY2tncm91bmQtY29sb3I6IzMzOTlGRTsNCgljb2xvcjogI0ZGRjsNCgl2aXNpYmlsaXR5OnZpc2libGU7DQp9DQoNCiNjb250YWluZXIud29yZF93cmFwICNjb250ZW50X2hpZ2hsaWdodCwNCiNjb250YWluZXIud29yZF93cmFwICNzZWxlY3Rpb25fZmllbGQsDQojY29udGFpbmVyLndvcmRfd3JhcCAjc2VsZWN0aW9uX2ZpZWxkX3RleHQsDQojY29udGFpbmVyLndvcmRfd3JhcCAjdGVzdF9mb250X3NpemV7DQoJd2hpdGUtc3BhY2U6IHByZS13cmFwOyAgICAgICAvKiBjc3MtMyAqLw0KCXdoaXRlLXNwYWNlOiAtbW96LXByZS13cmFwICFpbXBvcnRhbnQ7ICAvKiBNb3ppbGxhLCBzaW5jZSAxOTk5ICovDQoJd2hpdGUtc3BhY2U6IC1wcmUtd3JhcDsgICAgICAvKiBPcGVyYSA0LTYgKi8NCgl3aGl0ZS1zcGFjZTogLW8tcHJlLXdyYXA7ICAgIC8qIE9wZXJhIDcgKi8NCgl3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7ICAgICAgIC8qIEludGVybmV0IEV4cGxvcmVyIDUuNSsgKi8NCgl3aWR0aDogOTklOw0KfQ0KDQojbGluZV9udW1iZXJ7DQoJcG9zaXRpb246IGFic29sdXRlOw0KCW92ZXJmbG93OiBoaWRkZW47DQoJYm9yZGVyLXJpZ2h0OiBzb2xpZCBibGFjayAxcHg7DQoJei1pbmRleDo4Ow0KCXdpZHRoOiAzOHB4Ow0KCXBhZGRpbmc6IDAgNXB4IDAgMDsNCgltYXJnaW46IDAgMCAwIC00NXB4Ow0KCXRleHQtYWxpZ246IHJpZ2h0Ow0KCWNvbG9yOiAjQUFBQUFBOw0KfQ0KDQojdGVzdF9mb250X3NpemV7DQoJcGFkZGluZzogMDsgDQoJbWFyZ2luOiAwOyANCgl2aXNpYmlsaXR5OiBoaWRkZW47DQoJcG9zaXRpb246IGFic29sdXRlOw0KCXdoaXRlLXNwYWNlOiBwcmU7DQp9DQoNCnByZXsNCgltYXJnaW46IDA7DQoJcGFkZGluZzogMDsNCn0NCg0KLmhpZGRlbnsNCglvcGFjaXR5OiAwLjI7IA0KCWZpbHRlcjphbHBoYShvcGFjaXR5PTIwKTsNCn0NCg0KI3Jlc3VsdCAuZWRpdF9hcmVhX2N1cnNvcnsNCglwb3NpdGlvbjogYWJzb2x1dGU7IA0KCXotaW5kZXg6NjsgDQoJYmFja2dyb3VuZC1jb2xvcjogI0ZGNjYzMzsNCgl0b3A6IC0xMDBweDsNCgltYXJnaW46IDA7DQp9DQoNCiNyZXN1bHQgLmVkaXRfYXJlYV9zZWxlY3Rpb25fZmllbGQgLm92ZXJsaW5lew0KCWJhY2tncm91bmQtY29sb3I6ICM5OTY2MDA7DQp9DQoNCg0KLyogYXJlYSBwb3B1cCAqLw0KLmVkaXRhcmVhX3BvcHVwew0KCWJvcmRlcjogc29saWQgMXB4ICM4ODg4ODg7DQoJYmFja2dyb3VuZC1jb2xvcjogI0VDRTlEODsgDQoJd2lkdGg6IDI1MHB4OyANCglwYWRkaW5nOiA0cHg7IA0KCXBvc2l0aW9uOiBhYnNvbHV0ZTsNCgl2aXNpYmlsaXR5OiBoaWRkZW47IA0KCXotaW5kZXg6IDE1Ow0KCXRvcDogLTUwMHB4Ow0KfQ0KDQouZWRpdGFyZWFfcG9wdXAsIC5lZGl0YXJlYV9wb3B1cCB0YWJsZXsNCglmb250LWZhbWlseTogc2Fucy1zZXJpZjsNCglmb250LXNpemU6IDEwcHQ7DQp9DQoNCi5lZGl0YXJlYV9wb3B1cCBpbWd7DQoJYm9yZGVyOiAwOw0KfQ0KDQouZWRpdGFyZWFfcG9wdXAgLmNsb3NlX3BvcHVwew0KCWZsb2F0OiByaWdodDsgDQoJbGluZS1oZWlnaHQ6IDE2cHg7IA0KCWJvcmRlcjogMDsgDQoJcGFkZGluZzogMDsNCn0NCg0KLmVkaXRhcmVhX3BvcHVwIGgxLC5lZGl0YXJlYV9wb3B1cCBoMiwuZWRpdGFyZWFfcG9wdXAgaDMsLmVkaXRhcmVhX3BvcHVwIGg0LC5lZGl0YXJlYV9wb3B1cCBoNSwuZWRpdGFyZWFfcG9wdXAgaDZ7DQoJbWFyZ2luOiAwOw0KCXBhZGRpbmc6IDA7DQp9DQoNCi5lZGl0YXJlYV9wb3B1cCAuY29weXJpZ2h0ew0KCXRleHQtYWxpZ246IHJpZ2h0Ow0KfQkNCg0KLyogQXJlYV9zZWFyY2ggKi8NCmRpdiNhcmVhX3NlYXJjaF9yZXBsYWNlew0KCS8qd2lkdGg6IDI1MHB4OyovDQp9DQoNCmRpdiNhcmVhX3NlYXJjaF9yZXBsYWNlIGltZ3sNCglib3JkZXI6IDA7DQp9DQoNCmRpdiNhcmVhX3NlYXJjaF9yZXBsYWNlIGRpdi5idXR0b257DQoJdGV4dC1hbGlnbjogY2VudGVyOw0KCWxpbmUtaGVpZ2h0OiAxLjdlbTsNCn0NCg0KZGl2I2FyZWFfc2VhcmNoX3JlcGxhY2UgLmJ1dHRvbiBhew0KCWN1cnNvcjogcG9pbnRlcjsNCglib3JkZXI6IHNvbGlkIDFweCAjODg4ODg4Ow0KCWJhY2tncm91bmQtY29sb3I6ICNERURFREU7DQoJdGV4dC1kZWNvcmF0aW9uOiBub25lOw0KCXBhZGRpbmc6IDAgMnB4Ow0KCWNvbG9yOiAjMDAwMDAwOwkNCgl3aGl0ZS1zcGFjZTogbm93cmFwOw0KfQ0KDQpkaXYjYXJlYV9zZWFyY2hfcmVwbGFjZSBhOmhvdmVyewkNCgkvKmJvcmRlcjogc29saWQgMXB4ICM4ODg4ODg7Ki8NCgliYWNrZ3JvdW5kLWNvbG9yOiAjRURFREVEOw0KfQ0KDQpkaXYjYXJlYV9zZWFyY2hfcmVwbGFjZSAgI21vdmVfYXJlYV9zZWFyY2hfcmVwbGFjZXsNCgljdXJzb3I6IG1vdmU7IA0KCWJvcmRlcjogc29saWQgMXB4ICM4ODg7DQp9DQoNCmRpdiNhcmVhX3NlYXJjaF9yZXBsYWNlICAjY2xvc2VfYXJlYV9zZWFyY2hfcmVwbGFjZXsNCgl0ZXh0LWFsaWduOiByaWdodDsgDQoJdmVydGljYWwtYWxpZ246IHRvcDsgDQoJd2hpdGUtc3BhY2U6IG5vd3JhcDsNCn0NCg0KZGl2I2FyZWFfc2VhcmNoX3JlcGxhY2UgICNhcmVhX3NlYXJjaF9tc2d7DQoJaGVpZ2h0OiAxOHB4OyANCglvdmVyZmxvdzogaGlkZGVuOyANCglib3JkZXItdG9wOiBzb2xpZCAxcHggIzg4ODsgDQoJbWFyZ2luLXRvcDogM3B4Ow0KfQ0KDQovKiBhcmVhIGhlbHAgKi8NCiNlZGl0X2FyZWFfaGVscHsNCgl3aWR0aDogMzUwcHg7DQp9DQoNCiNlZGl0X2FyZWFfaGVscCBkaXYuY2xvc2VfcG9wdXB7DQoJZmxvYXQ6IHJpZ2h0Ow0KfQ0KDQovKiBhcmVhX3Rvb2xiYXIgKi8NCi5hcmVhX3Rvb2xiYXJ7DQoJLypmb250OiAxMXB4IHNhbnMtc2VyaWY7Ki8NCgl3aWR0aDogMTAwJTsgDQoJLypoZWlnaHQ6IDIxcHg7ICovDQoJbWFyZ2luOiAwOyANCglwYWRkaW5nOiAwOw0KCWJhY2tncm91bmQtY29sb3I6ICNFQ0U5RDg7DQoJdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KDQouYXJlYV90b29sYmFyLCAuYXJlYV90b29sYmFyIHRhYmxlew0KCWZvbnQ6IDExcHggc2Fucy1zZXJpZjsNCn0NCg0KLmFyZWFfdG9vbGJhciBpbWd7DQoJYm9yZGVyOiAwOw0KCXZlcnRpY2FsLWFsaWduOiBtaWRkbGU7DQp9DQoNCi5hcmVhX3Rvb2xiYXIgaW5wdXR7DQoJbWFyZ2luOiAwOw0KCXBhZGRpbmc6IDA7DQp9DQoNCi5hcmVhX3Rvb2xiYXIgc2VsZWN0ew0KICAgIGZvbnQtZmFtaWx5OiAnTVMgU2FucyBTZXJpZicsc2Fucy1zZXJpZixWZXJkYW5hLEFyaWFsOw0KICAgIGZvbnQtc2l6ZTogN3B0Ow0KICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7DQogICAgbWFyZ2luOiAycHggMCAwIDAgOw0KICAgIHBhZGRpbmc6IDA7DQogICAgdmVydGljYWwtYWxpZ246IHRvcDsNCiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjBGMEVFOw0KfQ0KDQp0YWJsZS5zdGF0dXNiYXJ7DQoJd2lkdGg6IDEwMCU7DQp9DQoNCi5hcmVhX3Rvb2xiYXIgdGQuaW5mb3N7DQoJdGV4dC1hbGlnbjogY2VudGVyOw0KCXdpZHRoOiAxMzBweDsNCglib3JkZXItcmlnaHQ6IHNvbGlkIDFweCAjODg4Ow0KCWJvcmRlci13aWR0aDogMCAxcHggMCAwOw0KCXBhZGRpbmc6IDA7DQp9DQoNCi5hcmVhX3Rvb2xiYXIgdGQudG90YWx7DQoJdGV4dC1hbGlnbjogcmlnaHQ7DQoJd2lkdGg6IDUwcHg7DQoJcGFkZGluZzogMDsNCn0NCg0KLmFyZWFfdG9vbGJhciB0ZC5yZXNpemV7DQoJdGV4dC1hbGlnbjogcmlnaHQ7DQp9DQovKg0KLmFyZWFfdG9vbGJhciBzcGFuew0KCWxpbmUtaGVpZ2h0OiAxcHg7DQoJcGFkZGluZzogMDsNCgltYXJnaW46IDA7DQp9Ki8NCg0KLmFyZWFfdG9vbGJhciBzcGFuI3Jlc2l6ZV9hcmVhew0KCWN1cnNvcjogbnctcmVzaXplOw0KCXZpc2liaWxpdHk6IGhpZGRlbjsNCn0NCg0KLyogdG9vbGJhciBidXR0b25zICovDQouZWRpdEFyZWFCdXR0b25Ob3JtYWwsIC5lZGl0QXJlYUJ1dHRvbk92ZXIsIC5lZGl0QXJlYUJ1dHRvbkRvd24sIC5lZGl0QXJlYVNlcGFyYXRvciwgLmVkaXRBcmVhU2VwYXJhdG9yTGluZSwgLmVkaXRBcmVhQnV0dG9uRGlzYWJsZWQsIC5lZGl0QXJlYUJ1dHRvblNlbGVjdGVkIHsNCglib3JkZXI6IDA7IG1hcmdpbjogMDsgcGFkZGluZzogMDsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7DQoJbWFyZ2luLXRvcDogMDsNCgltYXJnaW4tbGVmdDogMXB4Ow0KCXBhZGRpbmc6IDA7DQp9DQoNCi5lZGl0QXJlYUJ1dHRvbk5vcm1hbCB7DQoJYm9yZGVyOiAxcHggc29saWQgI0VDRTlEOCAhaW1wb3J0YW50Ow0KCWN1cnNvcjogcG9pbnRlcjsNCn0NCg0KLmVkaXRBcmVhQnV0dG9uT3ZlciB7DQoJYm9yZGVyOiAxcHggc29saWQgIzBBMjQ2QSAhaW1wb3J0YW50Ow0KCWN1cnNvcjogcG9pbnRlcjsNCgliYWNrZ3JvdW5kLWNvbG9yOiAjQjZCREQyOw0KfQ0KDQouZWRpdEFyZWFCdXR0b25Eb3duIHsNCgljdXJzb3I6IHBvaW50ZXI7DQoJYm9yZGVyOiAxcHggc29saWQgIzBBMjQ2QSAhaW1wb3J0YW50Ow0KCWJhY2tncm91bmQtY29sb3I6ICM4NTkyQjU7DQp9DQoNCi5lZGl0QXJlYUJ1dHRvblNlbGVjdGVkIHsNCglib3JkZXI6IDFweCBzb2xpZCAjQzBDMEJCICFpbXBvcnRhbnQ7DQoJY3Vyc29yOiBwb2ludGVyOw0KCWJhY2tncm91bmQtY29sb3I6ICNGNEYyRTg7DQp9DQoNCi5lZGl0QXJlYUJ1dHRvbkRpc2FibGVkIHsNCglmaWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkFscGhhKG9wYWNpdHk9MzApOw0KCS1tb3otb3BhY2l0eTowLjM7DQoJb3BhY2l0eTogMC4zOw0KCWJvcmRlcjogMXB4IHNvbGlkICNGMEYwRUUgIWltcG9ydGFudDsNCgljdXJzb3I6IHBvaW50ZXI7DQp9DQoNCi5lZGl0QXJlYVNlcGFyYXRvckxpbmUgew0KCW1hcmdpbjogMXB4IDJweDsNCgliYWNrZ3JvdW5kLWNvbG9yOiAjQzBDMEJCOw0KCXdpZHRoOiAycHg7DQoJaGVpZ2h0OiAxOHB4Ow0KfQ0KDQovKiB3YWl0aW5nIHNjcmVlbiAqLw0KI3Byb2Nlc3Npbmd7DQoJZGlzcGxheTogbm9uZTsgDQoJYmFja2dyb3VuZC1jb2xvcjojRUNFOUQ4OyANCglib3JkZXI6IHNvbGlkICM4ODggMXB4Ow0KCXBvc2l0aW9uOiBhYnNvbHV0ZTsgDQoJdG9wOiAwOyANCglsZWZ0OiAwOw0KCXdpZHRoOiAxMDAlOyANCgloZWlnaHQ6IDEwMCU7IA0KCXotaW5kZXg6IDEwMDsgDQoJdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KDQojcHJvY2Vzc2luZ190ZXh0ew0KCXBvc2l0aW9uOmFic29sdXRlOw0KCWxlZnQ6IDUwJTsNCgl0b3A6IDUwJTsNCgl3aWR0aDogMjAwcHg7DQoJaGVpZ2h0OiAyMHB4OyANCgltYXJnaW4tbGVmdDogLTEwMHB4Ow0KCW1hcmdpbi10b3A6IC0xMHB4Ow0KCXRleHQtYWxpZ246IGNlbnRlcjsNCn0NCi8qIGVuZCAqLw0KDQoNCi8qKioqIHRhYiBicm93c2luZyBhcmVhICoqKiovDQojdGFiX2Jyb3dzaW5nX2FyZWF7DQoJZGlzcGxheTogbm9uZTsNCgliYWNrZ3JvdW5kLWNvbG9yOiAjQ0NDOUE4Ow0KCWJvcmRlci10b3A6IDFweCBzb2xpZCAjODg4Ow0KCXRleHQtYWxpZ246IGxlZnQ7DQoJbWFyZ2luOiAwOw0KfQ0KDQojdGFiX2Jyb3dzaW5nX2xpc3Qgew0KCXBhZGRpbmc6IDA7IA0KCW1hcmdpbjogMDsgDQoJbGlzdC1zdHlsZS10eXBlOiBub25lOw0KCXdoaXRlLXNwYWNlOiBub3dyYXA7DQp9DQojdGFiX2Jyb3dzaW5nX2xpc3QgbGkgew0KCWZsb2F0OiBsZWZ0Ow0KCW1hcmdpbjogLTFweDsNCn0NCiN0YWJfYnJvd3NpbmdfbGlzdCBhIHsNCglwb3NpdGlvbjogcmVsYXRpdmU7DQoJZGlzcGxheTogYmxvY2s7IA0KCXRleHQtZGVjb3JhdGlvbjogbm9uZTsgDQoJZmxvYXQ6IGxlZnQ7IA0KCWN1cnNvcjogcG9pbnRlcjsNCglsaW5lLWhlaWdodDoxNHB4Ow0KfQ0KDQojdGFiX2Jyb3dzaW5nX2xpc3QgYSBzcGFuIHsNCglkaXNwbGF5OiBibG9jazsgDQoJY29sb3I6ICMwMDA7IA0KCWJhY2tncm91bmQ6ICNFQ0U5RDg7IA0KCWJvcmRlcjoJMXB4IHNvbGlkICM4ODg7IA0KCWJvcmRlci13aWR0aDogMXB4IDFweCAwOyANCgl0ZXh0LWFsaWduOiBjZW50ZXI7IA0KCXBhZGRpbmc6IDJweCAycHggMXB4IDRweDsgDQoJcG9zaXRpb246IHJlbGF0aXZlOwkvKklFIDYgaGFjayAqLw0KfQ0KDQojdGFiX2Jyb3dzaW5nX2xpc3QgYSBiIHsNCglkaXNwbGF5OiBibG9jazsgDQoJYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICM2MTc5OTQ7DQp9DQoNCiN0YWJfYnJvd3NpbmdfbGlzdCBhIC5lZGl0ZWQgew0KCWRpc3BsYXk6IG5vbmU7DQp9DQoNCiN0YWJfYnJvd3NpbmdfbGlzdCBhLmVkaXRlZCAuZWRpdGVkIHsNCglkaXNwbGF5OiBpbmxpbmU7DQp9DQoNCiN0YWJfYnJvd3NpbmdfbGlzdCBhIGltZ3sNCgltYXJnaW4tbGVmdDogN3B4Ow0KfQ0KDQojdGFiX2Jyb3dzaW5nX2xpc3QgYS5lZGl0ZWQgaW1new0KCW1hcmdpbi1sZWZ0OiAzcHg7DQp9DQoNCiN0YWJfYnJvd3NpbmdfbGlzdCBhOmhvdmVyIHNwYW4gew0KCWJhY2tncm91bmQ6ICNGNEYyRTg7DQoJYm9yZGVyLWNvbG9yOiAjMEEyNDZBOw0KfQ0KDQojdGFiX2Jyb3dzaW5nX2xpc3QgLnNlbGVjdGVkIGEgc3BhbnsNCgliYWNrZ3JvdW5kOiAjMDQ2MzgwOw0KCWNvbG9yOiAjRkZGOw0KfQ0KDQoNCiNub19maWxlX3NlbGVjdGVkew0KCWhlaWdodDogMTAwJTsNCgl3aWR0aDogMTUwJTsgLyogT3BlcmEgbmVlZCBtb3JlIHRoYW4gMTAwJSAqLw0KCWJhY2tncm91bmQ6ICNDQ0M7DQoJZGlzcGxheTogbm9uZTsNCgl6LWluZGV4OiAyMDsNCglwb3NpdGlvbjogYWJzb2x1dGU7DQp9DQoNCg0KLyoqKiBOb24tZWRpdGFibGUgbW9kZSAqKiovDQoubm9uX2VkaXRhYmxlICNlZGl0b3INCnsNCglib3JkZXItd2lkdGg6IDAgMXB4Ow0KfQ0KDQoubm9uX2VkaXRhYmxlIC5hcmVhX3Rvb2xiYXINCnsNCglkaXNwbGF5OiBub25lOw0KfQ0KDQovKioqIEF1dG8gY29tcGxldGlvbiAqKiovDQojYXV0b19jb21wbGV0aW9uX2FyZWENCnsNCgliYWNrZ3JvdW5kOgkjRkZGOw0KCWJvcmRlcjoJCXNvbGlkIDFweCAjODg4Ow0KCXBvc2l0aW9uOglhYnNvbHV0ZTsNCgl6LWluZGV4OgkxNTsNCgl3aWR0aDoJMjgwcHg7DQoJaGVpZ2h0OgkxODBweDsNCglvdmVyZmxvdzogYXV0bzsNCglkaXNwbGF5Om5vbmU7DQp9DQoNCiNhdXRvX2NvbXBsZXRpb25fYXJlYSBhLCAjYXV0b19jb21wbGV0aW9uX2FyZWEgYTp2aXNpdGVkDQp7DQoJZGlzcGxheToJYmxvY2s7DQoJcGFkZGluZzoJMCAycHggMXB4Ow0KCWNvbG9yOgkJIzAwMDsNCgl0ZXh0LWRlY29yYXRpb246bm9uZTsNCn0NCg0KI2F1dG9fY29tcGxldGlvbl9hcmVhIGE6aG92ZXIsICNhdXRvX2NvbXBsZXRpb25fYXJlYSBhOmZvY3VzLCAjYXV0b19jb21wbGV0aW9uX2FyZWEgYS5mb2N1cw0Kew0KCWJhY2tncm91bmQ6CSNENkUxRkU7DQoJdGV4dC1kZWNvcmF0aW9uOm5vbmU7DQp9DQoNCiNhdXRvX2NvbXBsZXRpb25fYXJlYSB1bA0Kew0KCW1hcmdpbjoJMDsNCglwYWRkaW5nOiAwOw0KCWxpc3Qtc3R5bGU6IG5vbmUgaW5zaWRlOw0KfQ0KI2F1dG9fY29tcGxldGlvbl9hcmVhIGxpDQp7DQoJcGFkZGluZzoJMDsNCn0NCiNhdXRvX2NvbXBsZXRpb25fYXJlYSAucHJlZml4DQp7DQoJZm9udC1zdHlsZTogaXRhbGljOw0KCXBhZGRpbmc6IDAgM3B4Ow0KfQ0KDQoNCg0KDQo=]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/edit_area.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoqKioqKg0KICoNCiAqCUVkaXRBcmVhIA0KICogCURldmVsb3BwZWQgYnkgQ2hyaXN0b3BoZSBEb2xpdmV0DQogKglSZWxlYXNlZCB1bmRlciBMR1BMLCBBcGFjaGUgYW5kIEJTRCBsaWNlbnNlcyAodXNlIHRoZSBvbmUgeW91IHdhbnQpDQogKg0KKioqKioqLw0KDQoJZnVuY3Rpb24gRWRpdEFyZWEoKXsNCgkJdmFyIHQ9dGhpczsNCgkJdC5lcnJvcj0gZmFsc2U7CS8vIHRvIGtub3cgaWYgbG9hZCBpcyBpbnRlcnJydXB0DQoJCQ0KCQl0LmlubGluZVBvcHVwPSBbe3BvcHVwX2lkOiAiYXJlYV9zZWFyY2hfcmVwbGFjZSIsIGljb25faWQ6ICJzZWFyY2gifSwNCgkJCQkJCQkJCXtwb3B1cF9pZDogImVkaXRfYXJlYV9oZWxwIiwgaWNvbl9pZDogImhlbHAifV07DQoJCXQucGx1Z2lucz0ge307DQoJDQoJCXQubGluZV9udW1iZXI9MDsNCgkJDQoJCXBhcmVudC5lZGl0QXJlYUxvYWRlci5zZXRfYnJvd3Nlcl9pbmZvcyh0KTsgCS8vIG5hdmlnYXRvciBpZGVudGlmaWNhdGlvbg0KCQkvLyBmaXggSUU4IGRldGVjdGlvbiBhcyB3ZSBydW4gaW4gSUU3IGVtdWxhdGUgbW9kZSB0aHJvdWdoIFgtVUEgPG1ldGE+IHRhZw0KCQlpZiggdC5pc0lFID49IDggKQ0KCQkJdC5pc0lFCT0gNzsNCgkJDQoJCXQubGFzdF9zZWxlY3Rpb249e307CQkNCgkJdC5sYXN0X3RleHRfdG9faGlnaGxpZ2h0PSIiOw0KCQl0Lmxhc3RfaGlnaHRsaWdodGVkX3RleHQ9ICIiOw0KCQl0LnN5bnRheF9saXN0PSBbXTsNCgkJdC5hbGxyZWFkeV91c2VkX3N5bnRheD0ge307DQoJCXQuY2hlY2tfbGluZV9zZWxlY3Rpb25fdGltZXI9IDUwOwkvLyB0aGUgdGltZXIgZGVsYXkgZm9yIG1vZGlmaWNhdGlvbiBhbmQvb3Igc2VsZWN0aW9uIGNoYW5nZSBkZXRlY3Rpb24NCgkJDQoJCXQudGV4dGFyZWFGb2N1c2VkPSBmYWxzZTsNCgkJdC5oaWdobGlnaHRfc2VsZWN0aW9uX2xpbmU9IG51bGw7DQoJCXQucHJldmlvdXM9IFtdOw0KCQl0Lm5leHQ9IFtdOw0KCQl0Lmxhc3RfdW5kbz0iIjsNCgkJdC5maWxlcz0ge307DQoJCXQuZmlsZXNJZEFzc29jPSB7fTsNCgkJdC5jdXJyX2ZpbGU9ICcnOw0KCQkvL3QubG9hZGVkPSBmYWxzZTsNCgkJdC5hc3NvY0JyYWNrZXQ9e307DQoJCXQucmV2ZXJ0QXNzb2NCcmFja2V0PSB7fTsJCQ0KCQkvLyBicmFja2V0IHNlbGVjdGlvbiBpbml0IA0KCQl0LmFzc29jQnJhY2tldFsiKCJdPSIpIjsNCgkJdC5hc3NvY0JyYWNrZXRbInsiXT0ifSI7DQoJCXQuYXNzb2NCcmFja2V0WyJbIl09Il0iOwkJDQoJCWZvcih2YXIgaW5kZXggaW4gdC5hc3NvY0JyYWNrZXQpew0KCQkJdC5yZXZlcnRBc3NvY0JyYWNrZXRbdC5hc3NvY0JyYWNrZXRbaW5kZXhdXT1pbmRleDsNCgkJfQ0KCQl0LmlzX2VkaXRhYmxlPSB0cnVlOw0KCQkNCgkJDQoJCS8qdC50ZXh0YXJlYT0iIjsJDQoJCQ0KCQl0LnN0YXRlPSJkZWNsYXJlIjsNCgkJdC5jb2RlID0gW107IC8vIHN0b3JlIGhpZ2hsaWdodCBzeW50YXggZm9yIGxhbmd1YWd1ZXMqLw0KCQkvLyBmb250IGRhdGFzDQoJCXQubGluZUhlaWdodD0gMTY7DQoJCS8qdC5kZWZhdWx0X2ZvbnRfZmFtaWx5PSAibW9ub3NwYWNlIjsNCgkJdC5kZWZhdWx0X2ZvbnRfc2l6ZT0gMTA7Ki8NCgkJdC50YWJfbmJfY2hhcj0gODsJLy9uYiBvZiB3aGl0ZSBzcGFjZXMgY29ycmVzcG9uZGluZyB0byBhIHRhYnVsYXRpb24NCgkJaWYodC5pc09wZXJhKQ0KCQkJdC50YWJfbmJfY2hhcj0gNjsNCg0KCQl0LmlzX3RhYmJpbmc9IGZhbHNlOw0KCQkNCgkJdC5mdWxsc2NyZWVuPSB7J2lzRnVsbCc6IGZhbHNlfTsNCgkJDQoJCXQuaXNSZXNpemluZz1mYWxzZTsJLy8gcmVzaXplIHZhcg0KCQkNCgkJLy8gaW5pdCB3aXRoIHNldHRpbmdzIGFuZCBJRCAoYXJlYV9pZCBpcyBhIGdsb2JhbCB2YXIgZGVmaW5lZCBieSBlZGl0QXJlYUxvYWRlciBvbiBpZnJhbWUgY3JlYXRpb24NCgkJdC5pZD0gYXJlYV9pZDsNCgkJdC5zZXR0aW5ncz0gZWRpdEFyZWFzW3QuaWRdWyJzZXR0aW5ncyJdOw0KCQkNCgkJaWYoKCIiK3Quc2V0dGluZ3NbJ3JlcGxhY2VfdGFiX2J5X3NwYWNlcyddKS5tYXRjaCgvXlswLTldKyQvKSkNCgkJew0KCQkJdC50YWJfbmJfY2hhcj0gdC5zZXR0aW5nc1sncmVwbGFjZV90YWJfYnlfc3BhY2VzJ107DQoJCQl0LnRhYnVsYXRpb249IiI7DQoJCQlmb3IodmFyIGk9MDsgaTx0LnRhYl9uYl9jaGFyOyBpKyspDQoJCQkJdC50YWJ1bGF0aW9uKz0iICI7DQoJCX1lbHNlew0KCQkJdC50YWJ1bGF0aW9uPSJcdCI7DQoJCX0NCgkJCQ0KCQkvLyByZXRyaWV2ZSB0aGUgaW5pdCBwYXJhbWV0ZXIgZm9yIHN5bnRheA0KCQlpZih0LnNldHRpbmdzWyJzeW50YXhfc2VsZWN0aW9uX2FsbG93Il0gJiYgdC5zZXR0aW5nc1sic3ludGF4X3NlbGVjdGlvbl9hbGxvdyJdLmxlbmd0aD4wKQ0KCQkJdC5zeW50YXhfbGlzdD0gdC5zZXR0aW5nc1sic3ludGF4X3NlbGVjdGlvbl9hbGxvdyJdLnJlcGxhY2UoLyAvZywiIikuc3BsaXQoIiwiKTsNCgkJDQoJCWlmKHQuc2V0dGluZ3NbJ3N5bnRheCddKQ0KCQkJdC5hbGxyZWFkeV91c2VkX3N5bnRheFt0LnNldHRpbmdzWydzeW50YXgnXV09dHJ1ZTsNCgkJDQoJCQ0KCX07DQoJRWRpdEFyZWEucHJvdG90eXBlLmluaXQ9IGZ1bmN0aW9uKCl7DQoJCXZhciB0PXRoaXMsIGEsIHM9dC5zZXR0aW5nczsNCgkJdC50ZXh0YXJlYQkJCT0gXyQoInRleHRhcmVhIik7DQoJCXQuY29udGFpbmVyCQkJPSBfJCgiY29udGFpbmVyIik7DQoJCXQucmVzdWx0CQkJPSBfJCgicmVzdWx0Iik7DQoJCXQuY29udGVudF9oaWdobGlnaHQJPSBfJCgiY29udGVudF9oaWdobGlnaHQiKTsNCgkJdC5zZWxlY3Rpb25fZmllbGQJPSBfJCgic2VsZWN0aW9uX2ZpZWxkIik7DQoJCXQuc2VsZWN0aW9uX2ZpZWxkX3RleHQ9IF8kKCJzZWxlY3Rpb25fZmllbGRfdGV4dCIpOw0KCQl0LnByb2Nlc3Npbmdfc2NyZWVuCT0gXyQoInByb2Nlc3NpbmciKTsNCgkJdC5lZGl0b3JfYXJlYQkJPSBfJCgiZWRpdG9yIik7DQoJCXQudGFiX2Jyb3dzaW5nX2FyZWEJPSBfJCgidGFiX2Jyb3dzaW5nX2FyZWEiKTsNCgkJdC50ZXN0X2ZvbnRfc2l6ZQk9IF8kKCJ0ZXN0X2ZvbnRfc2l6ZSIpOw0KCQlhID0gdC50ZXh0YXJlYTsNCgkJDQoJCWlmKCFzWydpc19lZGl0YWJsZSddKQ0KCQkJdC5zZXRfZWRpdGFibGUoZmFsc2UpOw0KCQkNCgkJdC5zZXRfc2hvd19saW5lX2NvbG9ycyggc1snc2hvd19saW5lX2NvbG9ycyddICk7DQoJCQ0KCQlpZihzeW50YXhfc2VsZWM9IF8kKCJzeW50YXhfc2VsZWN0aW9uIikpDQoJCXsNCgkJCS8vIHNldCB1cCBzeW50YXggc2VsZWN0aW9uIGxzaXQgaW4gdGhlIHRvb2xiYXINCgkJCWZvcih2YXIgaT0wOyBpPHQuc3ludGF4X2xpc3QubGVuZ3RoOyBpKyspIHsNCgkJCQl2YXIgc3ludGF4PSB0LnN5bnRheF9saXN0W2ldOw0KCQkJCXZhciBvcHRpb249IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm9wdGlvbiIpOw0KCQkJCW9wdGlvbi52YWx1ZT0gc3ludGF4Ow0KCQkJCWlmKHN5bnRheD09c1snc3ludGF4J10pDQoJCQkJCW9wdGlvbi5zZWxlY3RlZD0gInNlbGVjdGVkIjsNCgkJCQlkaXNwU3ludGF4CT0gcGFyZW50LmVkaXRBcmVhTG9hZGVyLnN5bnRheF9kaXNwbGF5X25hbWVbIHN5bnRheCBdOw0KCQkJCW9wdGlvbi5pbm5lckhUTUw9IHR5cGVvZiggZGlzcFN5bnRheCApID09ICd1bmRlZmluZWQnID8gc3ludGF4LnN1YnN0cmluZyggMCwgMSApLnRvVXBwZXJDYXNlKCkgKyBzeW50YXguc3Vic3RyaW5nKCAxICkgOiBkaXNwU3ludGF4Oy8vdC5nZXRfdHJhbnNsYXRpb24oInN5bnRheF8iICsgc3ludGF4LCAid29yZCIpOw0KCQkJCXN5bnRheF9zZWxlYy5hcHBlbmRDaGlsZChvcHRpb24pOw0KCQkJfQ0KCQl9DQoJCQ0KCQkvLyBhZGQgcGx1Z2lucyBidXR0b25zIGluIHRoZSB0b29sYmFyDQoJCXNwYW5zPSBwYXJlbnQuZ2V0Q2hpbGRyZW4oXyQoInRvb2xiYXJfMSIpLCAic3BhbiIsICIiLCAiIiwgImFsbCIsIC0xKTsNCgkJDQoJCWZvcih2YXIgaT0wOyBpPHNwYW5zLmxlbmd0aDsgaSsrKXsNCgkJDQoJCQlpZD1zcGFuc1tpXS5pZC5yZXBsYWNlKC90bXBfdG9vbF8oLiopLywgIiQxIik7DQoJCQlpZihpZCE9IHNwYW5zW2ldLmlkKXsNCgkJCQlmb3IodmFyIGogaW4gdC5wbHVnaW5zKXsNCgkJCQkJaWYodHlwZW9mKHQucGx1Z2luc1tqXS5nZXRfY29udHJvbF9odG1sKT09ImZ1bmN0aW9uIiApew0KCQkJCQkJaHRtbD10LnBsdWdpbnNbal0uZ2V0X2NvbnRyb2xfaHRtbChpZCk7DQoJCQkJCQlpZihodG1sIT1mYWxzZSl7DQoJCQkJCQkJaHRtbD0gdC5nZXRfdHJhbnNsYXRpb24oaHRtbCwgInRlbXBsYXRlIik7DQoJCQkJCQkJdmFyIG5ld19zcGFuPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7DQoJCQkJCQkJbmV3X3NwYW4uaW5uZXJIVE1MPSBodG1sOwkJCQkNCgkJCQkJCQl2YXIgZmF0aGVyPSBzcGFuc1tpXS5wYXJlbnROb2RlOw0KCQkJCQkJCXNwYW5zW2ldLnBhcmVudE5vZGUucmVwbGFjZUNoaWxkKG5ld19zcGFuLCBzcGFuc1tpXSk7CQ0KCQkJCQkJCWJyZWFrOyAvLyBleGl0IHRoZSBmb3IgbG9vcAkJCQkJDQoJCQkJCQl9DQoJCQkJCX0NCgkJCQl9DQoJCQl9DQoJCX0NCgkJDQoJCS8vIGluaXQgZGF0YXMNCgkJLy9hLnZhbHVlCT0gJ2EnOy8vZWRpdEFyZWFzW3QuaWRdWyJ0ZXh0YXJlYSJdLnZhbHVlOw0KCQ0KCQlpZihzWyJkZWJ1ZyJdKQ0KCQl7DQoJCQl0LmRlYnVnPXBhcmVudC5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZWRpdF9hcmVhX2RlYnVnXyIrdC5pZCk7DQoJCX0NCgkJLy8gaW5pdCBzaXplCQkNCgkJLy90aGlzLnVwZGF0ZV9zaXplKCk7DQoJCQ0KCQlpZihfJCgicmVkbyIpICE9IG51bGwpDQoJCQl0LnN3aXRjaENsYXNzU3RpY2t5KF8kKCJyZWRvIiksICdlZGl0QXJlYUJ1dHRvbkRpc2FibGVkJywgdHJ1ZSk7DQoJCQ0KCQkvLyBpbnNlcnQgY3NzIHJ1bGVzIGZvciBoaWdobGlnaHQgbW9kZQkJDQoJCWlmKHR5cGVvZihwYXJlbnQuZWRpdEFyZWFMb2FkZXIuc3ludGF4W3NbInN5bnRheCJdXSkhPSJ1bmRlZmluZWQiKXsNCgkJCWZvcih2YXIgaSBpbiBwYXJlbnQuZWRpdEFyZWFMb2FkZXIuc3ludGF4KXsNCgkJCQlpZiAodHlwZW9mKHBhcmVudC5lZGl0QXJlYUxvYWRlci5zeW50YXhbaV1bInN0eWxlcyJdKSAhPSAidW5kZWZpbmVkIil7DQoJCQkJCXQuYWRkX3N0eWxlKHBhcmVudC5lZGl0QXJlYUxvYWRlci5zeW50YXhbaV1bInN0eWxlcyJdKTsNCgkJCQl9DQoJCQl9DQoJCX0NCgkNCgkJLy8gaW5pdCBrZXkgZXZlbnRzDQoJCWlmKHQuaXNPcGVyYSkNCgkJCV8kKCJlZGl0b3IiKS5vbmtleXByZXNzCT0ga2V5RG93bjsNCgkJZWxzZQ0KCQkJXyQoImVkaXRvciIpLm9ua2V5ZG93bgk9IGtleURvd247DQoNCgkJZm9yKHZhciBpPTA7IGk8dC5pbmxpbmVQb3B1cC5sZW5ndGg7IGkrKyl7DQoJCQlpZih0LmlzT3BlcmEpDQoJCQkJXyQodC5pbmxpbmVQb3B1cFtpXVsicG9wdXBfaWQiXSkub25rZXlwcmVzcwk9IGtleURvd247DQoJCQllbHNlDQoJCQkJXyQodC5pbmxpbmVQb3B1cFtpXVsicG9wdXBfaWQiXSkub25rZXlkb3duCT0ga2V5RG93bjsNCgkJfQ0KCQkNCgkJaWYoc1siYWxsb3dfcmVzaXplIl09PSJib3RoIiB8fCBzWyJhbGxvd19yZXNpemUiXT09IngiIHx8IHNbImFsbG93X3Jlc2l6ZSJdPT0ieSIpDQoJCQl0LmFsbG93X3Jlc2l6ZSh0cnVlKTsNCgkJDQoJCXBhcmVudC5lZGl0QXJlYUxvYWRlci50b2dnbGUodC5pZCwgIm9uIik7DQoJCS8vYS5mb2N1cygpOw0KCQkvLyBsaW5lIHNlbGVjdGlvbiBpbml0DQoJCXQuY2hhbmdlX3Ntb290aF9zZWxlY3Rpb25fbW9kZShlZGl0QXJlYS5zbW9vdGhfc2VsZWN0aW9uKTsNCgkJLy8gaGlnaGxpZ2h0DQoJCXQuZXhlY0NvbW1hbmQoImNoYW5nZV9oaWdobGlnaHQiLCBzWyJzdGFydF9oaWdobGlnaHQiXSk7DQoJDQoJCS8vIGdldCBmb250IHNpemUgZGF0YXMJCQ0KCQl0LnNldF9mb250KGVkaXRBcmVhLnNldHRpbmdzWyJmb250X2ZhbWlseSJdLCBlZGl0QXJlYS5zZXR0aW5nc1siZm9udF9zaXplIl0pOw0KCQkNCgkJLy8gc2V0IHVuc2VsZWN0YWJsZSB0ZXh0DQoJCWNoaWxkcmVuPSBwYXJlbnQuZ2V0Q2hpbGRyZW4oZG9jdW1lbnQuYm9keSwgIiIsICJzZWxlYyIsICJub25lIiwgImFsbCIsIC0xKTsNCgkJZm9yKHZhciBpPTA7IGk8Y2hpbGRyZW4ubGVuZ3RoOyBpKyspew0KCQkJaWYodC5pc0lFKQ0KCQkJCWNoaWxkcmVuW2ldLnVuc2VsZWN0YWJsZSA9IHRydWU7IC8vIElFDQoJCQllbHNlDQoJCQkJY2hpbGRyZW5baV0ub25tb3VzZWRvd249IGZ1bmN0aW9uKCl7cmV0dXJuIGZhbHNlfTsNCgkJLyoJY2hpbGRyZW5baV0uc3R5bGUuTW96VXNlclNlbGVjdCA9ICJub25lIjsgLy8gTW96DQoJCQljaGlsZHJlbltpXS5zdHlsZS5LaHRtbFVzZXJTZWxlY3QgPSAibm9uZSI7ICAvLyBLb25xdWVyb3IvU2FmYXJpKi8NCgkJfQ0KCQkNCgkJYS5zcGVsbGNoZWNrPSBzWyJnZWNrb19zcGVsbGNoZWNrIl07DQoJDQoJCS8qKiBCcm93c2VyIHNwZWNpZmljIHN0eWxlIGZpeGVzICoqLw0KCQkNCgkJLy8gZml4IHJlbmRlcmluZyBidWcgZm9yIGhpZ2hsaWdodGVkIGxpbmVzIGJlZ2lubmluZyB3aXRoIG5vIHRhYnMNCgkJaWYoIHQuaXNGaXJlZm94ID49ICczJyApIHsNCgkJCXQuY29udGVudF9oaWdobGlnaHQuc3R5bGUucGFkZGluZ0xlZnQ9ICIxcHgiOw0KCQkJdC5zZWxlY3Rpb25fZmllbGQuc3R5bGUucGFkZGluZ0xlZnQ9ICIxcHgiOw0KCQkJdC5zZWxlY3Rpb25fZmllbGRfdGV4dC5zdHlsZS5wYWRkaW5nTGVmdD0gIjFweCI7DQoJCX0NCgkJDQoJCWlmKHQuaXNJRSAmJiB0LmlzSUUgPCA4ICl7DQoJCQlhLnN0eWxlLm1hcmdpblRvcD0gIi0xcHgiOw0KCQl9DQoJCS8qDQoJCWlmKHQuaXNPcGVyYSl7DQoJCQl0LmVkaXRvcl9hcmVhLnN0eWxlLnBvc2l0aW9uPSAiYWJzb2x1dGUiOw0KCQl9Ki8NCgkJDQoJCWlmKCB0LmlzU2FmYXJpICl7DQoJCQl0LmVkaXRvcl9hcmVhLnN0eWxlLnBvc2l0aW9uCT0gImFic29sdXRlIjsNCgkJCWEuc3R5bGUubWFyZ2luTGVmdAkJPSItM3B4IjsNCgkJCWlmKCB0LmlzU2FmYXJpIDwgMy4yICkgLy8gU2FmYXJpIDMuMCAoMy4xPykNCgkJCQlhLnN0eWxlLm1hcmdpblRvcAk9IjFweCI7DQoJCX0NCgkJDQoJCS8vIHNpIGxlIHRleHRhcmVhIG4nZXN0IHBhcyBncmFuZCwgdW4gY2xpY2sgc291cyBsZSB0ZXh0YXJlYSBkb2l0IHByb3ZvcXVlciB1biBmb2N1cyBzdXIgbGUgdGV4dGFyZWENCgkJcGFyZW50LmVkaXRBcmVhTG9hZGVyLmFkZF9ldmVudCh0LnJlc3VsdCwgImNsaWNrIiwgZnVuY3Rpb24oZSl7IGlmKChlLnRhcmdldCB8fCBlLnNyY0VsZW1lbnQpPT1lZGl0QXJlYS5yZXN1bHQpIHsgZWRpdEFyZWEuYXJlYV9zZWxlY3QoZWRpdEFyZWEudGV4dGFyZWEudmFsdWUubGVuZ3RoLCAwKTt9ICB9KTsNCgkJDQoJCWlmKHNbJ2lzX211bHRpX2ZpbGVzJ10hPWZhbHNlKQ0KCQkJdC5vcGVuX2ZpbGUoeydpZCc6IHQuY3Vycl9maWxlLCAndGV4dCc6ICcnfSk7DQoJDQoJCXQuc2V0X3dvcmRfd3JhcCggc1snd29yZF93cmFwJ10gKTsNCgkJDQoJCXNldFRpbWVvdXQoImVkaXRBcmVhLmZvY3VzKCk7ZWRpdEFyZWEubWFuYWdlX3NpemUoKTtlZGl0QXJlYS5leGVjQ29tbWFuZCgnRUFfbG9hZCcpOyIsIDEwKTsJCQ0KCQkvL3N0YXJ0IGNoZWNrdXAgcm91dGluZQ0KCQl0LmNoZWNrX3VuZG8oKTsNCgkJdC5jaGVja19saW5lX3NlbGVjdGlvbih0cnVlKTsNCgkJdC5zY3JvbGxfdG9fdmlldygpOw0KCQkNCgkJZm9yKHZhciBpIGluIHQucGx1Z2lucyl7DQoJCQlpZih0eXBlb2YodC5wbHVnaW5zW2ldLm9ubG9hZCk9PSJmdW5jdGlvbiIpDQoJCQkJdC5wbHVnaW5zW2ldLm9ubG9hZCgpOw0KCQl9DQoJCWlmKHNbJ2Z1bGxzY3JlZW4nXT09dHJ1ZSkNCgkJCXQudG9nZ2xlX2Z1bGxfc2NyZWVuKHRydWUpOw0KCQ0KCQlwYXJlbnQuZWRpdEFyZWFMb2FkZXIuYWRkX2V2ZW50KHdpbmRvdywgInJlc2l6ZSIsIGVkaXRBcmVhLnVwZGF0ZV9zaXplKTsNCgkJcGFyZW50LmVkaXRBcmVhTG9hZGVyLmFkZF9ldmVudChwYXJlbnQud2luZG93LCAicmVzaXplIiwgZWRpdEFyZWEudXBkYXRlX3NpemUpOw0KCQlwYXJlbnQuZWRpdEFyZWFMb2FkZXIuYWRkX2V2ZW50KHRvcC53aW5kb3csICJyZXNpemUiLCBlZGl0QXJlYS51cGRhdGVfc2l6ZSk7DQoJCXBhcmVudC5lZGl0QXJlYUxvYWRlci5hZGRfZXZlbnQod2luZG93LCAidW5sb2FkIiwgZnVuY3Rpb24oKXsNCgkJCS8vIGluIGNhc2Ugd2hlcmUgZWRpdEFyZWFMb2FkZXIgaGF2ZSBiZWVuIGFscmVhZHkgY2xlYW5lZA0KCQkJaWYoIHBhcmVudC5lZGl0QXJlYUxvYWRlciApDQoJCQl7DQoJCQkJcGFyZW50LmVkaXRBcmVhTG9hZGVyLnJlbW92ZV9ldmVudChwYXJlbnQud2luZG93LCAicmVzaXplIiwgZWRpdEFyZWEudXBkYXRlX3NpemUpOw0KCQkgIAkJcGFyZW50LmVkaXRBcmVhTG9hZGVyLnJlbW92ZV9ldmVudCh0b3Aud2luZG93LCAicmVzaXplIiwgZWRpdEFyZWEudXBkYXRlX3NpemUpOw0KCQkJfQ0KCQkJaWYoZWRpdEFyZWFzW2VkaXRBcmVhLmlkXSAmJiBlZGl0QXJlYXNbZWRpdEFyZWEuaWRdWyJkaXNwbGF5ZWQiXSl7DQoJCQkJZWRpdEFyZWEuZXhlY0NvbW1hbmQoIkVBX3VubG9hZCIpOw0KCQkJfQ0KCQl9KTsNCgkJDQoJCQ0KCQkvKmRhdGU9IG5ldyBEYXRlKCk7DQoJCWFsZXJ0KGRhdGUuZ2V0VGltZSgpLSBwYXJlbnQuZWRpdEFyZWFMb2FkZXIuc3RhcnRfdGltZSk7Ki8NCgl9Ow0KCQ0KCQ0KCQ0KCS8vY2FsbGVkIGJ5IHRoZSB0b2dnbGVfb24NCglFZGl0QXJlYS5wcm90b3R5cGUudXBkYXRlX3NpemU9IGZ1bmN0aW9uKCl7DQoJCXZhciBkPWRvY3VtZW50LHBkPXBhcmVudC5kb2N1bWVudCxoZWlnaHQsd2lkdGgscG9wdXAsbWF4TGVmdCxtYXhUb3A7DQoJCQ0KCQlpZiggdHlwZW9mIGVkaXRBcmVhcyAhPSAndW5kZWZpbmVkJyAmJiBlZGl0QXJlYXNbZWRpdEFyZWEuaWRdICYmIGVkaXRBcmVhc1tlZGl0QXJlYS5pZF1bImRpc3BsYXllZCJdPT10cnVlKXsNCgkJCWlmKGVkaXRBcmVhLmZ1bGxzY3JlZW5bJ2lzRnVsbCddKXsJDQoJCQkJcGQuZ2V0RWxlbWVudEJ5SWQoImZyYW1lXyIrZWRpdEFyZWEuaWQpLnN0eWxlLndpZHRoCQk9IHBkLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJodG1sIilbMF0uY2xpZW50V2lkdGggKyAicHgiOw0KCQkJCXBkLmdldEVsZW1lbnRCeUlkKCJmcmFtZV8iK2VkaXRBcmVhLmlkKS5zdHlsZS5oZWlnaHQJPSBwZC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaHRtbCIpWzBdLmNsaWVudEhlaWdodCArICJweCI7DQoJCQl9DQoJCQkNCgkJCWlmKGVkaXRBcmVhLnRhYl9icm93c2luZ19hcmVhLnN0eWxlLmRpc3BsYXk9PSdibG9jaycgJiYgKCAhZWRpdEFyZWEuaXNJRSB8fCBlZGl0QXJlYS5pc0lFID49IDggKSApDQoJCQl7DQoJCQkJZWRpdEFyZWEudGFiX2Jyb3dzaW5nX2FyZWEuc3R5bGUuaGVpZ2h0CT0gIjBweCI7DQoJCQkJZWRpdEFyZWEudGFiX2Jyb3dzaW5nX2FyZWEuc3R5bGUuaGVpZ2h0CT0gKGVkaXRBcmVhLnJlc3VsdC5vZmZzZXRUb3AgLSBlZGl0QXJlYS50YWJfYnJvd3NpbmdfYXJlYS5vZmZzZXRUb3AgLTEpKyJweCI7DQoJCQl9DQoJCQkNCgkJCWhlaWdodAk9IGQuYm9keS5vZmZzZXRIZWlnaHQgLSBlZGl0QXJlYS5nZXRfYWxsX3Rvb2xiYXJfaGVpZ2h0KCkgLSA0Ow0KCQkJZWRpdEFyZWEucmVzdWx0LnN0eWxlLmhlaWdodAk9IGhlaWdodCArInB4IjsNCgkJCQ0KCQkJd2lkdGgJPSBkLmJvZHkub2Zmc2V0V2lkdGggLTI7DQoJCQllZGl0QXJlYS5yZXN1bHQuc3R5bGUud2lkdGgJCT0gd2lkdGgrInB4IjsNCgkJCS8vYWxlcnQoInJlc3VsdCBoOiAiKyBoZWlnaHQrIiB3OiAiK3dpZHRoKyJcbnRvb2xiYXIgaDogIit0aGlzLmdldF9hbGxfdG9vbGJhcl9oZWlnaHQoKSsiXG5ib2R5X2g6ICIrZG9jdW1lbnQuYm9keS5vZmZzZXRIZWlnaHQpOw0KCQkJDQoJCQkvLyBjaGVjayB0aGF0IHRoZSBwb3B1cHMgZG9uJ3QgZ2V0IG91dCBvZiB0aGUgc2NyZWVuDQoJCQlmb3IoIGk9MDsgaSA8IGVkaXRBcmVhLmlubGluZVBvcHVwLmxlbmd0aDsgaSsrICkNCgkJCXsNCgkJCQlwb3B1cAk9IF8kKGVkaXRBcmVhLmlubGluZVBvcHVwW2ldWyJwb3B1cF9pZCJdKTsNCgkJCQltYXhMZWZ0CT0gZC5ib2R5Lm9mZnNldFdpZHRoIC0gcG9wdXAub2Zmc2V0V2lkdGg7DQoJCQkJbWF4VG9wCT0gZC5ib2R5Lm9mZnNldEhlaWdodCAtIHBvcHVwLm9mZnNldEhlaWdodDsNCgkJCQlpZiggcG9wdXAub2Zmc2V0VG9wID4gbWF4VG9wICkNCgkJCQkJcG9wdXAuc3R5bGUudG9wCQk9IG1heFRvcCsicHgiOw0KCQkJCWlmKCBwb3B1cC5vZmZzZXRMZWZ0ID4gbWF4TGVmdCApDQoJCQkJCXBvcHVwLnN0eWxlLmxlZnQJPSBtYXhMZWZ0KyJweCI7DQoJCQl9DQoJCQkNCgkJCWVkaXRBcmVhLm1hbmFnZV9zaXplKCB0cnVlICk7DQoJCQllZGl0QXJlYS5maXhMaW5lc0hlaWdodCggZWRpdEFyZWEudGV4dGFyZWEudmFsdWUsIDAsLTEpOw0KCQl9CQkNCgl9Ow0KCQ0KCQ0KCUVkaXRBcmVhLnByb3RvdHlwZS5tYW5hZ2Vfc2l6ZT0gZnVuY3Rpb24ob25seU9uZVRpbWUpew0KCQlpZighZWRpdEFyZWFzW3RoaXMuaWRdKQ0KCQkJcmV0dXJuIGZhbHNlOw0KCQkJDQoJCWlmKGVkaXRBcmVhc1t0aGlzLmlkXVsiZGlzcGxheWVkIl09PXRydWUgJiYgdGhpcy50ZXh0YXJlYUZvY3VzZWQpDQoJCXsNCgkJCXZhciBhcmVhX2hlaWdodCxyZXNpemVkPSBmYWxzZTsNCgkJCQ0KCQkJLy8xKSBNYW5hZ2UgZGlzcGxheSB3aWR0aA0KCQkJLy8xLjEpIENhbGMgdGhlIG5ldyB3aWR0aCB0byB1c2UgZm9yIGRpc3BsYXkNCgkJCWlmKCAhdGhpcy5zZXR0aW5nc1snd29yZF93cmFwJ10gKQ0KCQkJew0KCQkJCXZhciBhcmVhX3dpZHRoPSB0aGlzLnRleHRhcmVhLnNjcm9sbFdpZHRoOw0KCQkJCWFyZWFfaGVpZ2h0PSB0aGlzLnRleHRhcmVhLnNjcm9sbEhlaWdodDsNCgkJCQkvLyBidWcgb24gb2xkIG9wZXJhIHZlcnNpb25zDQoJCQkJaWYodGhpcy5pc09wZXJhICYmIHRoaXMuaXNPcGVyYSA8IDkuNiApew0KCQkJCQlhcmVhX3dpZHRoPTEwMDAwOyAJCQkJCQkJCQ0KCQkJCX0NCgkJCQkvLzEuMikgdGhlIHdpZHRoIGlzIG5vdCB0aGUgc2FtZSwgd2UgbXVzdCByZXNpemUgZWxlbWVudHMNCgkJCQlpZih0aGlzLnRleHRhcmVhLnByZXZpb3VzX3Njcm9sbFdpZHRoIT1hcmVhX3dpZHRoKQ0KCQkJCXsJDQoJCQkJCXRoaXMuY29udGFpbmVyLnN0eWxlLndpZHRoPSBhcmVhX3dpZHRoKyJweCI7DQoJCQkJCXRoaXMudGV4dGFyZWEuc3R5bGUud2lkdGg9IGFyZWFfd2lkdGgrInB4IjsNCgkJCQkJdGhpcy5jb250ZW50X2hpZ2hsaWdodC5zdHlsZS53aWR0aD0gYXJlYV93aWR0aCsicHgiOwkNCgkJCQkJdGhpcy50ZXh0YXJlYS5wcmV2aW91c19zY3JvbGxXaWR0aD1hcmVhX3dpZHRoOw0KCQkJCQlyZXNpemVkPXRydWU7DQoJCQkJfQ0KCQkJfQ0KCQkJLy8gbWFuYWdlIHdyYXAgd2lkdGgNCgkJCWlmKCB0aGlzLnNldHRpbmdzWyd3b3JkX3dyYXAnXSApDQoJCQl7DQoJCQkJbmV3Vz10aGlzLnRleHRhcmVhLm9mZnNldFdpZHRoOw0KCQkJCWlmKCB0aGlzLmlzRmlyZWZveCB8fCB0aGlzLmlzSUUgKQ0KCQkJCQluZXdXLT0yOw0KCQkJCWlmKCB0aGlzLmlzU2FmYXJpICkNCgkJCQkJbmV3Vy09NjsNCgkJCQl0aGlzLmNvbnRlbnRfaGlnaGxpZ2h0LnN0eWxlLndpZHRoPXRoaXMuc2VsZWN0aW9uX2ZpZWxkX3RleHQuc3R5bGUud2lkdGg9dGhpcy5zZWxlY3Rpb25fZmllbGQuc3R5bGUud2lkdGg9dGhpcy50ZXN0X2ZvbnRfc2l6ZS5zdHlsZS53aWR0aD1uZXdXKyJweCI7DQoJCQl9DQoJCQkNCgkJCS8vMikgTWFuYWdlIGRpc3BsYXkgaGVpZ2h0DQoJCQkvLzIuMSkgQ2FsYyB0aGUgbmV3IGhlaWdodCB0byB1c2UgZm9yIGRpc3BsYXkNCgkJCWlmKCB0aGlzLmlzT3BlcmEgfHwgdGhpcy5pc0ZpcmVmb3ggfHwgdGhpcy5pc1NhZmFyaSApIHsgDQoJCQkJYXJlYV9oZWlnaHQ9IHRoaXMuZ2V0TGluZVBvc1RvcCggdGhpcy5sYXN0X3NlbGVjdGlvblsibmJfbGluZSJdICsgMSApOw0KCQkJfSBlbHNlIHsNCgkJCQlhcmVhX2hlaWdodCA9IHRoaXMudGV4dGFyZWEuc2Nyb2xsSGVpZ2h0Ow0KCQkJfQkNCgkJCS8vMi4yKSB0aGUgd2lkdGggaXMgbm90IHRoZSBzYW1lLCB3ZSBtdXN0IHJlc2l6ZSBlbGVtZW50cyANCgkJCWlmKHRoaXMudGV4dGFyZWEucHJldmlvdXNfc2Nyb2xsSGVpZ2h0IT1hcmVhX2hlaWdodCkJDQoJCQl7CQ0KCQkJCXRoaXMuY29udGFpbmVyLnN0eWxlLmhlaWdodD0gKGFyZWFfaGVpZ2h0KzIpKyJweCI7DQoJCQkJdGhpcy50ZXh0YXJlYS5zdHlsZS5oZWlnaHQ9IGFyZWFfaGVpZ2h0KyJweCI7DQoJCQkJdGhpcy5jb250ZW50X2hpZ2hsaWdodC5zdHlsZS5oZWlnaHQ9IGFyZWFfaGVpZ2h0KyJweCI7CQ0KCQkJCXRoaXMudGV4dGFyZWEucHJldmlvdXNfc2Nyb2xsSGVpZ2h0PSBhcmVhX2hlaWdodDsNCgkJCQlyZXNpemVkPXRydWU7DQoJCQl9DQoJCQ0KCQkJLy8zKSBpZiB0aGVyZSBpcyBuZXcgbGluZXMsIHdlIGFkZCBuZXcgbGluZSBudW1iZXJzIGluIHRoZSBsaW5lIG51bWVyYXRpb24gYXJlYQ0KCQkJaWYodGhpcy5sYXN0X3NlbGVjdGlvblsibmJfbGluZSJdID49IHRoaXMubGluZV9udW1iZXIpDQoJCQl7DQoJCQkJdmFyIG5ld0xpbmVzPSAnJywgZGVzdERpdj1fJCgibGluZV9udW1iZXIiKSwgc3RhcnQ9dGhpcy5saW5lX251bWJlciwgZW5kPXRoaXMubGFzdF9zZWxlY3Rpb25bIm5iX2xpbmUiXSsxMDA7DQoJCQkJZm9yKCBpID0gc3RhcnQrMTsgaSA8IGVuZDsgaSsrICkNCgkJCQl7DQoJCQkJCW5ld0xpbmVzKz0nPGRpdiBpZD0ibGluZV8nKyBpICsnIj4nK2krIjwvZGl2PiI7DQoJCQkJCXRoaXMubGluZV9udW1iZXIrKzsNCgkJCQl9DQoJCQkJZGVzdERpdi5pbm5lckhUTUw9IGRlc3REaXYuaW5uZXJIVE1MICsgbmV3TGluZXM7DQoJCQkJaWYodGhpcy5zZXR0aW5nc1snd29yZF93cmFwJ10pew0KCQkJCQl0aGlzLmZpeExpbmVzSGVpZ2h0KCB0aGlzLnRleHRhcmVhLnZhbHVlLCBzdGFydCwgLTEgKTsNCgkJCQl9DQoJCQl9DQoJCQ0KCQkJLy80KSBiZSBzdXJlIHRoZSB0ZXh0IGlzIHdlbGwgZGlzcGxheWVkDQoJCQl0aGlzLnRleHRhcmVhLnNjcm9sbFRvcD0iMHB4IjsNCgkJCXRoaXMudGV4dGFyZWEuc2Nyb2xsTGVmdD0iMHB4IjsNCgkJCWlmKHJlc2l6ZWQ9PXRydWUpew0KCQkJCXRoaXMuc2Nyb2xsX3RvX3ZpZXcoKTsNCgkJCX0NCgkJfQ0KCQkNCgkJaWYoIW9ubHlPbmVUaW1lKQ0KCQkJc2V0VGltZW91dCgiZWRpdEFyZWEubWFuYWdlX3NpemUoKTsiLCAxMDApOw0KCX07DQoJDQoJRWRpdEFyZWEucHJvdG90eXBlLmV4ZWNDb21tYW5kPSBmdW5jdGlvbihjbWQsIHBhcmFtKXsNCgkJDQoJCWZvcih2YXIgaSBpbiB0aGlzLnBsdWdpbnMpew0KCQkJaWYodHlwZW9mKHRoaXMucGx1Z2luc1tpXS5leGVjQ29tbWFuZCk9PSJmdW5jdGlvbiIpew0KCQkJCWlmKCF0aGlzLnBsdWdpbnNbaV0uZXhlY0NvbW1hbmQoY21kLCBwYXJhbSkpDQoJCQkJCXJldHVybjsNCgkJCX0NCgkJfQ0KCQlzd2l0Y2goY21kKXsNCgkJCWNhc2UgInNhdmUiOg0KCQkJCWlmKHRoaXMuc2V0dGluZ3NbInNhdmVfY2FsbGJhY2siXS5sZW5ndGg+MCkNCgkJCQkJZXZhbCgicGFyZW50LiIrdGhpcy5zZXR0aW5nc1sic2F2ZV9jYWxsYmFjayJdKyIoJyIrIHRoaXMuaWQgKyInLCBlZGl0QXJlYS50ZXh0YXJlYS52YWx1ZSk7Iik7DQoJCQkJYnJlYWs7DQoJCQljYXNlICJsb2FkIjoNCgkJCQlpZih0aGlzLnNldHRpbmdzWyJsb2FkX2NhbGxiYWNrIl0ubGVuZ3RoPjApDQoJCQkJCWV2YWwoInBhcmVudC4iK3RoaXMuc2V0dGluZ3NbImxvYWRfY2FsbGJhY2siXSsiKCciKyB0aGlzLmlkICsiJyk7Iik7DQoJCQkJYnJlYWs7DQoJCQljYXNlICJvbmNoYW5nZSI6DQoJCQkJaWYodGhpcy5zZXR0aW5nc1siY2hhbmdlX2NhbGxiYWNrIl0ubGVuZ3RoPjApDQoJCQkJCWV2YWwoInBhcmVudC4iK3RoaXMuc2V0dGluZ3NbImNoYW5nZV9jYWxsYmFjayJdKyIoJyIrIHRoaXMuaWQgKyInKTsiKTsNCgkJCQlicmVhazsJCQ0KCQkJY2FzZSAiRUFfbG9hZCI6DQoJCQkJaWYodGhpcy5zZXR0aW5nc1siRUFfbG9hZF9jYWxsYmFjayJdLmxlbmd0aD4wKQ0KCQkJCQlldmFsKCJwYXJlbnQuIit0aGlzLnNldHRpbmdzWyJFQV9sb2FkX2NhbGxiYWNrIl0rIignIisgdGhpcy5pZCArIicpOyIpOw0KCQkJCWJyZWFrOw0KCQkJY2FzZSAiRUFfdW5sb2FkIjoNCgkJCQlpZih0aGlzLnNldHRpbmdzWyJFQV91bmxvYWRfY2FsbGJhY2siXS5sZW5ndGg+MCkNCgkJCQkJZXZhbCgicGFyZW50LiIrdGhpcy5zZXR0aW5nc1siRUFfdW5sb2FkX2NhbGxiYWNrIl0rIignIisgdGhpcy5pZCArIicpOyIpOw0KCQkJCWJyZWFrOw0KCQkJY2FzZSAidG9nZ2xlX29uIjoNCgkJCQlpZih0aGlzLnNldHRpbmdzWyJFQV90b2dnbGVfb25fY2FsbGJhY2siXS5sZW5ndGg+MCkNCgkJCQkJZXZhbCgicGFyZW50LiIrdGhpcy5zZXR0aW5nc1siRUFfdG9nZ2xlX29uX2NhbGxiYWNrIl0rIignIisgdGhpcy5pZCArIicpOyIpOw0KCQkJCWJyZWFrOw0KCQkJY2FzZSAidG9nZ2xlX29mZiI6DQoJCQkJaWYodGhpcy5zZXR0aW5nc1siRUFfdG9nZ2xlX29mZl9jYWxsYmFjayJdLmxlbmd0aD4wKQ0KCQkJCQlldmFsKCJwYXJlbnQuIit0aGlzLnNldHRpbmdzWyJFQV90b2dnbGVfb2ZmX2NhbGxiYWNrIl0rIignIisgdGhpcy5pZCArIicpOyIpOw0KCQkJCWJyZWFrOw0KCQkJY2FzZSAicmVfc3luYyI6DQoJCQkJaWYoIXRoaXMuZG9faGlnaGxpZ2h0KQ0KCQkJCQlicmVhazsNCgkJCWNhc2UgImZpbGVfc3dpdGNoX29uIjoNCgkJCQlpZih0aGlzLnNldHRpbmdzWyJFQV9maWxlX3N3aXRjaF9vbl9jYWxsYmFjayJdLmxlbmd0aD4wKQ0KCQkJCQlldmFsKCJwYXJlbnQuIit0aGlzLnNldHRpbmdzWyJFQV9maWxlX3N3aXRjaF9vbl9jYWxsYmFjayJdKyIocGFyYW0pOyIpOw0KCQkJCWJyZWFrOw0KCQkJY2FzZSAiZmlsZV9zd2l0Y2hfb2ZmIjoNCgkJCQlpZih0aGlzLnNldHRpbmdzWyJFQV9maWxlX3N3aXRjaF9vZmZfY2FsbGJhY2siXS5sZW5ndGg+MCkNCgkJCQkJZXZhbCgicGFyZW50LiIrdGhpcy5zZXR0aW5nc1siRUFfZmlsZV9zd2l0Y2hfb2ZmX2NhbGxiYWNrIl0rIihwYXJhbSk7Iik7DQoJCQkJYnJlYWs7DQoJCQljYXNlICJmaWxlX2Nsb3NlIjoNCgkJCQlpZih0aGlzLnNldHRpbmdzWyJFQV9maWxlX2Nsb3NlX2NhbGxiYWNrIl0ubGVuZ3RoPjApDQoJCQkJCXJldHVybiBldmFsKCJwYXJlbnQuIit0aGlzLnNldHRpbmdzWyJFQV9maWxlX2Nsb3NlX2NhbGxiYWNrIl0rIihwYXJhbSk7Iik7DQoJCQkJYnJlYWs7DQoJCQkNCgkJCWRlZmF1bHQ6DQoJCQkJaWYodHlwZW9mKGV2YWwoImVkaXRBcmVhLiIrY21kKSk9PSJmdW5jdGlvbiIpDQoJCQkJew0KCQkJCQlpZih0aGlzLnNldHRpbmdzWyJkZWJ1ZyJdKQ0KCQkJCQkJZXZhbCgiZWRpdEFyZWEuIisgY21kICsiKHBhcmFtKTsiKTsNCgkJCQkJZWxzZQ0KCQkJCQkJdHJ5e2V2YWwoImVkaXRBcmVhLiIrIGNtZCArIihwYXJhbSk7Iik7fWNhdGNoKGUpe307DQoJCQkJfQ0KCQl9DQoJfTsNCgkNCglFZGl0QXJlYS5wcm90b3R5cGUuZ2V0X3RyYW5zbGF0aW9uPSBmdW5jdGlvbih3b3JkLCBtb2RlKXsNCgkJaWYobW9kZT09InRlbXBsYXRlIikNCgkJCXJldHVybiBwYXJlbnQuZWRpdEFyZWFMb2FkZXIudHJhbnNsYXRlKHdvcmQsIHRoaXMuc2V0dGluZ3NbImxhbmd1YWdlIl0sIG1vZGUpOw0KCQllbHNlDQoJCQlyZXR1cm4gcGFyZW50LmVkaXRBcmVhTG9hZGVyLmdldF93b3JkX3RyYW5zbGF0aW9uKHdvcmQsIHRoaXMuc2V0dGluZ3NbImxhbmd1YWdlIl0pOw0KCX07DQoJDQoJRWRpdEFyZWEucHJvdG90eXBlLmFkZF9wbHVnaW49IGZ1bmN0aW9uKHBsdWdfbmFtZSwgcGx1Z19vYmopew0KCQlmb3IodmFyIGk9MDsgaTx0aGlzLnNldHRpbmdzWyJwbHVnaW5zIl0ubGVuZ3RoOyBpKyspew0KCQkJaWYodGhpcy5zZXR0aW5nc1sicGx1Z2lucyJdW2ldPT1wbHVnX25hbWUpew0KCQkJCXRoaXMucGx1Z2luc1twbHVnX25hbWVdPXBsdWdfb2JqOw0KCQkJCXBsdWdfb2JqLmJhc2VVUkw9cGFyZW50LmVkaXRBcmVhTG9hZGVyLmJhc2VVUkwgKyAicGx1Z2lucy8iICsgcGx1Z19uYW1lICsgIi8iOw0KCQkJCWlmKCB0eXBlb2YocGx1Z19vYmouaW5pdCk9PSJmdW5jdGlvbiIgKQ0KCQkJCQlwbHVnX29iai5pbml0KCk7DQoJCQl9DQoJCX0NCgl9Ow0KCQ0KCUVkaXRBcmVhLnByb3RvdHlwZS5sb2FkX2Nzcz0gZnVuY3Rpb24odXJsKXsNCgkJdHJ5ew0KCQkJbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxpbmsiKTsNCgkJCWxpbmsudHlwZSA9ICJ0ZXh0L2NzcyI7DQoJCQlsaW5rLnJlbD0gInN0eWxlc2hlZXQiOw0KCQkJbGluay5tZWRpYT0iYWxsIjsNCgkJCWxpbmsuaHJlZiA9IHVybDsNCgkJCWhlYWQgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaGVhZCIpOw0KCQkJaGVhZFswXS5hcHBlbmRDaGlsZChsaW5rKTsNCgkJfWNhdGNoKGUpew0KCQkJZG9jdW1lbnQud3JpdGUoIjxsaW5rIGhyZWY9JyIrIHVybCArIicgcmVsPSdzdHlsZXNoZWV0JyB0eXBlPSd0ZXh0L2NzcycgLz4iKTsNCgkJfQ0KCX07DQoJDQoJRWRpdEFyZWEucHJvdG90eXBlLmxvYWRfc2NyaXB0PSBmdW5jdGlvbih1cmwpew0KCQl0cnl7DQoJCQlzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTsNCgkJCXNjcmlwdC50eXBlID0gInRleHQvamF2YXNjcmlwdCI7DQoJCQlzY3JpcHQuc3JjICA9IHVybDsNCgkJCXNjcmlwdC5jaGFyc2V0PSAiVVRGLTgiOw0KCQkJaGVhZCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIik7DQoJCQloZWFkWzBdLmFwcGVuZENoaWxkKHNjcmlwdCk7DQoJCX1jYXRjaChlKXsNCgkJCWRvY3VtZW50LndyaXRlKCI8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCcgc3JjPSciICsgdXJsICsgIicgY2hhcnNldD1cIlVURi04XCI+PCIrIi9zY3JpcHQ+Iik7DQoJCX0NCgl9Ow0KCQ0KCS8vIGFkZCBwbHVnaW4gdHJhbnNsYXRpb24gdG8gbGFuZ3VhZ2UgdHJhbnNsYXRpb24gYXJyYXkNCglFZGl0QXJlYS5wcm90b3R5cGUuYWRkX2xhbmc9IGZ1bmN0aW9uKGxhbmd1YWdlLCB2YWx1ZXMpew0KCQlpZighcGFyZW50LmVkaXRBcmVhTG9hZGVyLmxhbmdbbGFuZ3VhZ2VdKQ0KCQkJcGFyZW50LmVkaXRBcmVhTG9hZGVyLmxhbmdbbGFuZ3VhZ2VdPXt9Ow0KCQlmb3IodmFyIGkgaW4gdmFsdWVzKQ0KCQkJcGFyZW50LmVkaXRBcmVhTG9hZGVyLmxhbmdbbGFuZ3VhZ2VdW2ldPSB2YWx1ZXNbaV07DQoJfTsNCgkNCgkvLyBzaG9ydCBjdXQgZm9yIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCkNCglmdW5jdGlvbiBfJChpZCl7cmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCBpZCApO307DQoNCgl2YXIgZWRpdEFyZWEgPSBuZXcgRWRpdEFyZWEoKTsJDQoJcGFyZW50LmVkaXRBcmVhTG9hZGVyLmFkZF9ldmVudCh3aW5kb3csICJsb2FkIiwgaW5pdCk7DQoJDQoJZnVuY3Rpb24gaW5pdCgpewkJDQoJCXNldFRpbWVvdXQoImVkaXRBcmVhLmluaXQoKTsgICIsIDEwKTsNCgl9Ow0K]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/edit_area_compressor.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCgkvKioqKioqDQoJICoNCgkgKglFZGl0QXJlYSBQSFAgY29tcHJlc3Nvcg0KCSAqIAlEZXZlbG9wcGVkIGJ5IENocmlzdG9waGUgRG9saXZldA0KCSAqCVJlbGVhc2VkIHVuZGVyIExHUEwsIEFwYWNoZSBhbmQgQlNEIGxpY2Vuc2VzDQoJICoJdjEuMS4zICgyMDA3LzAxLzE4KQkgDQoJICoNCgkqKioqKiovDQoJDQoJLy8gQ09ORklHDQoJJHBhcmFtWydjYWNoZV9kdXJhdGlvbiddPSAzNjAwICogMjQgKiAxMDsJCS8vIDEwIGRheXMgdXRpbCBjbGllbnQgY2FjaGUgZXhwaXJlcw0KCSRwYXJhbVsnY29tcHJlc3MnXSA9IHRydWU7CQkJCQkJLy8gZW5hYmxlIHRoZSBjb2RlIGNvbXByZXNzaW9uLCBzaG91bGQgYmUgYWN0aXZhdGVkIGJ1dCBpdCBjYW4gYmUgdXNlZnVsbCB0byBkZXNhY3RpdmF0ZSBpdCBmb3IgZWFzaWVyIGVycm9yIHJldHJpZXZpbmcgKHRydWUgb3IgZmFsc2UpDQoJJHBhcmFtWydkZWJ1ZyddID0gZmFsc2U7CQkJCQkJLy8gRW5hYmxlIHRoaXMgb3B0aW9uIGlmIHlvdSBuZWVkIGRlYnVnaW5nIGluZm8NCgkkcGFyYW1bJ3VzZV9kaXNrX2NhY2hlJ109IHRydWU7CQkJCQkvLyBJZiB5b3UgZW5hYmxlIHRoaXMgb3B0aW9uIGd6aXAgZmlsZXMgd2lsbCBiZSBjYWNoZWQgb24gZGlzay4NCgkkcGFyYW1bJ3VzZV9nemlwJ109IHRydWU7CQkJCQkJLy8gRW5hYmxlIGd6aXAgY29tcHJlc3Npb24NCgkvLyBFTkQgQ09ORklHDQoJDQoJJGNvbXByZXNzb3I9IG5ldyBDb21wcmVzc29yKCRwYXJhbSk7DQoJDQoJY2xhc3MgQ29tcHJlc3NvcnsNCgkNCgkJDQoJCWZ1bmN0aW9uIGNvbXByZXNzb3IoJHBhcmFtKQ0KCQl7DQoJCQkkdGhpcy0+X19jb25zdHJ1Y3QoJHBhcmFtKTsNCgkJfQ0KCQkNCgkJZnVuY3Rpb24gX19jb25zdHJ1Y3QoJHBhcmFtKQ0KCQl7DQoJCQkkdGhpcy0+c3RhcnRfdGltZT0gJHRoaXMtPmdldF9taWNyb3RpbWUoKTsNCgkJCSR0aGlzLT5maWxlX2xvYWRlZF9zaXplPTA7DQoJCQkkdGhpcy0+cGFyYW09ICRwYXJhbTsNCgkJCSR0aGlzLT5zY3JpcHRfbGlzdD0iIjsNCgkJCSR0aGlzLT5wYXRoPSBkaXJuYW1lKF9fRklMRV9fKS4iLyI7DQoJCQlpZihpc3NldCgkX0dFVFsncGx1Z2lucyddKSl7DQoJCQkJJHRoaXMtPmxvYWRfYWxsX3BsdWdpbnM9IHRydWU7DQoJCQkJJHRoaXMtPmZ1bGxfY2FjaGVfZmlsZT0gJHRoaXMtPnBhdGguImVkaXRfYXJlYV9mdWxsX3dpdGhfcGx1Z2lucy5qcyI7DQoJCQkJJHRoaXMtPmd6aXBfY2FjaGVfZmlsZT0gJHRoaXMtPnBhdGguImVkaXRfYXJlYV9mdWxsX3dpdGhfcGx1Z2lucy5neiI7DQoJCQl9ZWxzZXsNCgkJCQkkdGhpcy0+bG9hZF9hbGxfcGx1Z2lucz0gZmFsc2U7DQoJCQkJJHRoaXMtPmZ1bGxfY2FjaGVfZmlsZT0gJHRoaXMtPnBhdGguImVkaXRfYXJlYV9mdWxsLmpzIjsNCgkJCQkkdGhpcy0+Z3ppcF9jYWNoZV9maWxlPSAkdGhpcy0+cGF0aC4iZWRpdF9hcmVhX2Z1bGwuZ3oiOw0KCQkJfQ0KCQkJDQoJCQkkdGhpcy0+Y2hlY2tfZ3ppcF91c2UoKTsNCgkJCSR0aGlzLT5zZW5kX2hlYWRlcnMoKTsNCgkJCSR0aGlzLT5jaGVja19jYWNoZSgpOw0KCQkJJHRoaXMtPmxvYWRfZmlsZXMoKTsNCgkJCSR0aGlzLT5zZW5kX2RhdGFzKCk7DQoJCX0NCgkJDQoJCWZ1bmN0aW9uIHNlbmRfaGVhZGVycygpDQoJCXsNCgkJCWhlYWRlcigiQ29udGVudC10eXBlOiB0ZXh0L2phdmFzY3JpcHQ7IGNoYXJzZXQ6IFVURi04Iik7DQoJCQloZWFkZXIoIlZhcnk6IEFjY2VwdC1FbmNvZGluZyIpOyAvLyBIYW5kbGUgcHJveGllcw0KCQkJaGVhZGVyKHNwcmludGYoIkV4cGlyZXM6ICVzIEdNVCIsIGdtZGF0ZSgiRCwgZCBNIFkgSDppOnMiLCB0aW1lKCkgKyAkdGhpcy0+cGFyYW1bJ2NhY2hlX2R1cmF0aW9uJ10pKSApOw0KCQkJaWYoJHRoaXMtPnVzZV9nemlwKQ0KCQkJCWhlYWRlcigiQ29udGVudC1FbmNvZGluZzogIi4kdGhpcy0+Z3ppcF9lbmNfaGVhZGVyKTsNCgkJfQ0KCQkNCgkJZnVuY3Rpb24gY2hlY2tfZ3ppcF91c2UoKQ0KCQl7DQoJCQkkZW5jb2RpbmdzID0gYXJyYXkoKTsNCgkJCSRkZXNhY3RpdmF0ZV9nemlwPWZhbHNlOw0KCQkJCQkNCgkJCWlmIChpc3NldCgkX1NFUlZFUlsnSFRUUF9BQ0NFUFRfRU5DT0RJTkcnXSkpDQoJCQkJJGVuY29kaW5ncyA9IGV4cGxvZGUoJywnLCBzdHJ0b2xvd2VyKHByZWdfcmVwbGFjZSgiL1xzKy8iLCAiIiwgJF9TRVJWRVJbJ0hUVFBfQUNDRVBUX0VOQ09ESU5HJ10pKSk7DQoJCQkNCgkJCS8vIGRlc2FjdGl2YXRlIGd6aXAgZm9yIElFIHZlcnNpb24gPCA3DQoJCQlpZihwcmVnX21hdGNoKCIvKD86bXNpZSApKFswLTkuXSspL2kiLCAkX1NFUlZFUlsnSFRUUF9VU0VSX0FHRU5UJ10sICRpZSkpDQoJCQl7DQoJCQkJaWYoJGllWzFdPDcpDQoJCQkJCSRkZXNhY3RpdmF0ZV9nemlwPXRydWU7CQ0KCQkJfQ0KCQkJDQoJCQkvLyBDaGVjayBmb3IgZ3ppcCBoZWFkZXIgb3Igbm9ydGhvbiBpbnRlcm5ldCBzZWN1cml0aWVzDQoJCQlpZiAoISRkZXNhY3RpdmF0ZV9nemlwICYmICR0aGlzLT5wYXJhbVsndXNlX2d6aXAnXSAmJiAoaW5fYXJyYXkoJ2d6aXAnLCAkZW5jb2RpbmdzKSB8fCBpbl9hcnJheSgneC1nemlwJywgJGVuY29kaW5ncykgfHwgaXNzZXQoJF9TRVJWRVJbJy0tLS0tLS0tLS0tLS0tLSddKSkgJiYgZnVuY3Rpb25fZXhpc3RzKCdvYl9nemhhbmRsZXInKSAmJiAhaW5pX2dldCgnemxpYi5vdXRwdXRfY29tcHJlc3Npb24nKSkgew0KCQkJCSR0aGlzLT5nemlwX2VuY19oZWFkZXI9IGluX2FycmF5KCd4LWd6aXAnLCAkZW5jb2RpbmdzKSA/ICJ4LWd6aXAiIDogImd6aXAiOw0KCQkJCSR0aGlzLT51c2VfZ3ppcD10cnVlOw0KCQkJCSR0aGlzLT5jYWNoZV9maWxlPSR0aGlzLT5nemlwX2NhY2hlX2ZpbGU7DQoJCQl9ZWxzZXsNCgkJCQkkdGhpcy0+dXNlX2d6aXA9ZmFsc2U7DQoJCQkJJHRoaXMtPmNhY2hlX2ZpbGU9JHRoaXMtPmZ1bGxfY2FjaGVfZmlsZTsNCgkJCX0NCgkJfQ0KCQkNCgkJZnVuY3Rpb24gY2hlY2tfY2FjaGUoKQ0KCQl7DQoJCQkvLyBPbmx5IGd6aXAgdGhlIGNvbnRlbnRzIGlmIGNsaWVudHMgYW5kIHNlcnZlciBzdXBwb3J0IGl0DQoJCQlpZiAoZmlsZV9leGlzdHMoJHRoaXMtPmNhY2hlX2ZpbGUpKSB7DQoJCQkJLy8gY2hlY2sgaWYgY2FjaGUgZmlsZSBtdXN0IGJlIHVwZGF0ZWQNCgkJCQkkY2FjaGVfZGF0ZT0wOwkJCQkNCgkJCQlpZiAoJGRpciA9IG9wZW5kaXIoJHRoaXMtPnBhdGgpKSB7DQoJCQkJCXdoaWxlICgoJGZpbGUgPSByZWFkZGlyKCRkaXIpKSAhPT0gZmFsc2UpIHsNCgkJCQkJCWlmKGlzX2ZpbGUoJHRoaXMtPnBhdGguJGZpbGUpICYmICRmaWxlIT0iLiIgJiYgJGZpbGUhPSIuLiIpDQoJCQkJCQkJJGNhY2hlX2RhdGU9IG1heCgkY2FjaGVfZGF0ZSwgZmlsZW10aW1lKCR0aGlzLT5wYXRoLiRmaWxlKSk7DQoJCQkJCX0NCgkJCQkJY2xvc2VkaXIoJGRpcik7DQoJCQkJfQ0KCQkJCWlmKCR0aGlzLT5sb2FkX2FsbF9wbHVnaW5zKXsNCgkJCQkJJHBsdWdfcGF0aD0gJHRoaXMtPnBhdGguInBsdWdpbnMvIjsNCgkJCQkJaWYgKCgkZGlyID0gQG9wZW5kaXIoJHBsdWdfcGF0aCkpICE9PSBmYWxzZSkNCgkJCQkJew0KCQkJCQkJd2hpbGUgKCgkZmlsZSA9IHJlYWRkaXIoJGRpcikpICE9PSBmYWxzZSkNCgkJCQkJCXsNCgkJCQkJCQlpZiAoJGZpbGUgIT09ICIuIiAmJiAkZmlsZSAhPT0gIi4uIikNCgkJCQkJCQl7DQoJCQkJCQkJCWlmKGlzX2RpcigkcGx1Z19wYXRoLiRmaWxlKSAmJiBmaWxlX2V4aXN0cygkcGx1Z19wYXRoLiRmaWxlLiIvIi4kZmlsZS4iLmpzIikpDQoJCQkJCQkJCQkkY2FjaGVfZGF0ZT0gbWF4KCRjYWNoZV9kYXRlLCBmaWxlbXRpbWUoInBsdWdpbnMvIi4kZmlsZS4iLyIuJGZpbGUuIi5qcyIpKTsNCgkJCQkJCQl9DQoJCQkJCQl9DQoJCQkJCQljbG9zZWRpcigkZGlyKTsNCgkJCQkJfQ0KCQkJCX0NCg0KCQkJCWlmKGZpbGVtdGltZSgkdGhpcy0+Y2FjaGVfZmlsZSkgPj0gJGNhY2hlX2RhdGUpew0KCQkJCQkvLyBpZiBjYWNoZSBmaWxlIGlzIHVwIHRvIGRhdGUNCgkJCQkJJGxhc3RfbW9kaWZpZWQgPSBnbWRhdGUoIkQsIGQgTSBZIEg6aTpzIixmaWxlbXRpbWUoJHRoaXMtPmNhY2hlX2ZpbGUpKS4iIEdNVCI7DQoJCQkJCWlmIChpc3NldCgkX1NFUlZFUlsiSFRUUF9JRl9NT0RJRklFRF9TSU5DRSJdKSAmJiBzdHJjYXNlY21wKCRfU0VSVkVSWyJIVFRQX0lGX01PRElGSUVEX1NJTkNFIl0sICRsYXN0X21vZGlmaWVkKSA9PT0gMCkNCgkJCQkJew0KCQkJCQkJaGVhZGVyKCJIVFRQLzEuMSAzMDQgTm90IE1vZGlmaWVkIik7DQoJCQkJCQloZWFkZXIoIkxhc3QtbW9kaWZpZWQ6ICIuJGxhc3RfbW9kaWZpZWQpOw0KCQkJCQkJaGVhZGVyKCJDYWNoZS1Db250cm9sOiBQdWJsaWMiKTsgLy8gVGVsbHMgSFRUUCAxLjEgY2xpZW50cyB0byBjYWNoZQ0KCQkJCQkJaGVhZGVyKCJQcmFnbWE6Iik7IC8vIFRlbGxzIEhUVFAgMS4wIGNsaWVudHMgdG8gY2FjaGUNCgkJCQkJfQ0KCQkJCQllbHNlDQoJCQkJCXsNCgkJCQkJCWhlYWRlcigiTGFzdC1tb2RpZmllZDogIi4kbGFzdF9tb2RpZmllZCk7DQoJCQkJCQloZWFkZXIoIkNhY2hlLUNvbnRyb2w6IFB1YmxpYyIpOyAvLyBUZWxscyBIVFRQIDEuMSBjbGllbnRzIHRvIGNhY2hlDQoJCQkJCQloZWFkZXIoIlByYWdtYToiKTsgLy8gVGVsbHMgSFRUUCAxLjAgY2xpZW50cyB0byBjYWNoZQ0KCQkJCQkJaGVhZGVyKCdDb250ZW50LUxlbmd0aDogJy5maWxlc2l6ZSgkdGhpcy0+Y2FjaGVfZmlsZSkpOw0KCQkJCQkJZWNobyBmaWxlX2dldF9jb250ZW50cygkdGhpcy0+Y2FjaGVfZmlsZSk7DQoJCQkJCX0JCQkJDQoJCQkJCWRpZTsNCgkJCQl9DQoJCQl9DQoJCQlyZXR1cm4gZmFsc2U7DQoJCX0NCgkJDQoJCWZ1bmN0aW9uIGxvYWRfZmlsZXMoKQ0KCQl7DQoJCQkkbG9hZGVyPSAkdGhpcy0+Z2V0X2NvbnRlbnQoImVkaXRfYXJlYV9sb2FkZXIuanMiKS4iXG4iOw0KCQkJDQoJCQkvLyBnZXQgdGhlIGxpc3Qgb2Ygb3RoZXIgZmlsZXMgdG8gbG9hZA0KCSAgICAJJGxvYWRlcj0gcHJlZ19yZXBsYWNlKCIvKHRcLnNjcmlwdHNfdG9fbG9hZD1ccyopXFsoW15cXV0qKVxdOy9lIg0KCQkJCQkJLCAiXCR0aGlzLT5yZXBsYWNlX3NjcmlwdHMoJ3NjcmlwdF9saXN0JywgJ1xcMScsICdcXDInKSINCgkJCQkJCSwgJGxvYWRlcik7DQoJCQ0KCQkJJGxvYWRlcj0gcHJlZ19yZXBsYWNlKCIvKHRcLnN1Yl9zY3JpcHRzX3RvX2xvYWQ9XHMqKVxbKFteXF1dKilcXTsvZSINCgkJCQkJCSwgIlwkdGhpcy0+cmVwbGFjZV9zY3JpcHRzKCdzdWJfc2NyaXB0X2xpc3QnLCAnXFwxJywgJ1xcMicpIg0KCQkJCQkJLCAkbG9hZGVyKTsNCg0KCQkJLy8gcmVwbGFjZSBsYW5ndWFnZXMgbmFtZXMNCgkJCSRyZWdfcGF0aD0gJHRoaXMtPnBhdGguInJlZ19zeW50YXgvIjsNCgkJCSRhX2Rpc3BsYXlOYW1lCT0gYXJyYXkoKTsNCgkJCWlmICgoJGRpciA9IEBvcGVuZGlyKCRyZWdfcGF0aCkpICE9PSBmYWxzZSkNCgkJCXsNCgkJCQl3aGlsZSAoKCRmaWxlID0gcmVhZGRpcigkZGlyKSkgIT09IGZhbHNlKQ0KCQkJCXsNCgkJCQkJaWYoICRmaWxlICE9PSAiLiIgJiYgJGZpbGUgIT09ICIuLiIgJiYgKCAkcG9zID0gc3RycG9zKCAkZmlsZSwgJy5qcycgKSApICE9PSBmYWxzZSApDQoJCQkJCXsNCgkJCQkJCSRqc0NvbnRlbnQJPSAkdGhpcy0+ZmlsZV9nZXRfY29udGVudHMoICRyZWdfcGF0aC4kZmlsZSApOw0KCQkJCQkJaWYoIHByZWdfbWF0Y2goICdAKFwnfCIpRElTUExBWV9OQU1FXDFccyo6XHMqKFwnfCIpKC4qKVwyQCcsICRqc0NvbnRlbnQsICRtYXRjaCApICkNCgkJCQkJCXsNCgkJCQkJCQkkYV9kaXNwbGF5TmFtZVtdID0gIiciLiBzdWJzdHIoICRmaWxlLCAwLCAkcG9zICkgLiInOiciLiBodG1sc3BlY2lhbGNoYXJzKCAkbWF0Y2hbM10sIEVOVF9RVU9URVMgKSAuIiciOw0KCQkJCQkJfQ0KCQkJCQl9DQoJCQkJfQ0KCQkJCWNsb3NlZGlyKCRkaXIpOw0KCQkJfQ0KCQkJJGxvYWRlcgk9IHN0cl9yZXBsYWNlKCAnLypzeW50YXhfZGlzcGxheV9uYW1lX0FVVE8tRklMTC1CWS1DT01QUkVTU09SKi8nLCBpbXBsb2RlKCAiLCIsICRhX2Rpc3BsYXlOYW1lICksICRsb2FkZXIgKTsNCgkJCQkJCQ0KCQkJJHRoaXMtPmRhdGFzPSAkbG9hZGVyOw0KCQkJJHRoaXMtPmNvbXByZXNzX2phdmFzY3JpcHQoJHRoaXMtPmRhdGFzKTsNCgkJCQ0KCQkJLy8gbG9hZCBvdGhlciBzY3JpcHRzIG5lZWRlZCBmb3IgdGhlIGxvYWRlcg0KCQkJcHJlZ19tYXRjaF9hbGwoJy8iKFteIl0qKSIvJywgJHRoaXMtPnNjcmlwdF9saXN0LCAkbWF0Y2gpOw0KCQkJZm9yZWFjaCgkbWF0Y2hbMV0gYXMgJGtleSA9PiAkdmFsdWUpDQoJCQl7DQoJCQkJJGNvbnRlbnQ9ICR0aGlzLT5nZXRfY29udGVudChwcmVnX3JlcGxhY2UoIi9cXHxcLy9pIiwgIiIsICR2YWx1ZSkuIi5qcyIpOw0KCQkJCSR0aGlzLT5jb21wcmVzc19qYXZhc2NyaXB0KCRjb250ZW50KTsNCgkJCQkkdGhpcy0+ZGF0YXMuPSAkY29udGVudC4iXG4iOw0KCQkJfQ0KCQkJLy8kdGhpcy0+ZGF0YXMpOw0KCQkJLy8kdGhpcy0+ZGF0YXM9IHByZWdfcmVwbGFjZSgnLygoIHxcdHxccikqXG4oIHxcdCkqKSsvcycsICIiLCAkdGhpcy0+ZGF0YXMpOw0KCQkJDQoJCQkvLyBpbXByb3ZlZCBjb21wcmVzc2lvbiBzdGVwIDEvMgkNCgkJCSR0aGlzLT5kYXRhcz0gcHJlZ19yZXBsYWNlKGFycmF5KCIvKFxiKUVkaXRBcmVhTG9hZGVyKFxiKS8iLCAiLyhcYillZGl0QXJlYUxvYWRlcihcYikvIiwgIi8oXGIpZWRpdEFyZWFzKFxiKS8iKSwgYXJyYXkoIkVBTCIsICJlQUwiLCAiZUFzIiksICR0aGlzLT5kYXRhcyk7DQoJCQkvLyR0aGlzLT5kYXRhcz0gc3RyX3JlcGxhY2UoYXJyYXkoIkVkaXRBcmVhTG9hZGVyIiwgImVkaXRBcmVhTG9hZGVyIiwgImVkaXRBcmVhcyIpLCBhcnJheSgiRUFMIiwgImVBTCIsICJlQXMiKSwgJHRoaXMtPmRhdGFzKTsNCgkJCSR0aGlzLT5kYXRhcy49ICJ2YXIgZWRpdEFyZWFMb2FkZXI9IGVBTDt2YXIgZWRpdEFyZWFzPWVBcztFZGl0QXJlYUxvYWRlcj1FQUw7IjsNCgkJDQoJCQkvLyBsb2FkIHN1YiBzY3JpcHRzDQoJCQkkc3ViX3NjcmlwdHM9IiI7DQoJCQkkc3ViX3NjcmlwdHNfbGlzdD0gYXJyYXkoKTsNCgkJCXByZWdfbWF0Y2hfYWxsKCcvIihbXiJdKikiLycsICR0aGlzLT5zdWJfc2NyaXB0X2xpc3QsICRtYXRjaCk7DQoJCQlmb3JlYWNoKCRtYXRjaFsxXSBhcyAkdmFsdWUpew0KCQkJCSRzdWJfc2NyaXB0c19saXN0W109IHByZWdfcmVwbGFjZSgiL1xcfFwvL2kiLCAiIiwgJHZhbHVlKS4iLmpzIjsNCgkJCX0NCgkJDQoJCQlpZigkdGhpcy0+bG9hZF9hbGxfcGx1Z2lucyl7DQoJCQkJLy8gbG9hZCBwbHVnaW5zIHNjcmlwdHMNCgkJCQkkcGx1Z19wYXRoPSAkdGhpcy0+cGF0aC4icGx1Z2lucy8iOw0KCQkJCWlmICgoJGRpciA9IEBvcGVuZGlyKCRwbHVnX3BhdGgpKSAhPT0gZmFsc2UpDQoJCQkJew0KCQkJCQl3aGlsZSAoKCRmaWxlID0gcmVhZGRpcigkZGlyKSkgIT09IGZhbHNlKQ0KCQkJCQl7DQoJCQkJCQlpZiAoJGZpbGUgIT09ICIuIiAmJiAkZmlsZSAhPT0gIi4uIikNCgkJCQkJCXsNCgkJCQkJCQlpZihpc19kaXIoJHBsdWdfcGF0aC4kZmlsZSkgJiYgZmlsZV9leGlzdHMoJHBsdWdfcGF0aC4kZmlsZS4iLyIuJGZpbGUuIi5qcyIpKQ0KCQkJCQkJCQkkc3ViX3NjcmlwdHNfbGlzdFtdPSAicGx1Z2lucy8iLiRmaWxlLiIvIi4kZmlsZS4iLmpzIjsNCgkJCQkJCX0NCgkJCQkJfQ0KCQkJCQljbG9zZWRpcigkZGlyKTsNCgkJCQl9DQoJCQl9DQoJCQkJCQkJDQoJCQlmb3JlYWNoKCRzdWJfc2NyaXB0c19saXN0IGFzICR2YWx1ZSl7DQoJCQkJJHN1Yl9zY3JpcHRzLj0gJHRoaXMtPmdldF9qYXZhc2NyaXB0X2NvbnRlbnQoJHZhbHVlKTsNCgkJCX0NCgkJCS8vIGltcHJvdmVkIGNvbXByZXNzaW9uIHN0ZXAgMi8yCQ0KCQkJJHN1Yl9zY3JpcHRzPSBwcmVnX3JlcGxhY2UoYXJyYXkoIi8oXGIpZWRpdEFyZWFMb2FkZXIoXGIpLyIsICIvKFxiKWVkaXRBcmVhcyhcYikvIiwgIi8oXGIpZWRpdEFyZWEoXGIpLyIsICIvKFxiKUVkaXRBcmVhKFxiKS8iKSwgYXJyYXkoImVBTCIsICJlQXMiLCAiZUEiLCAiRUEiKSwgJHN1Yl9zY3JpcHRzKTsNCgkJLy8JJHN1Yl9zY3JpcHRzPSBzdHJfcmVwbGFjZShhcnJheSgiZWRpdEFyZWFMb2FkZXIiLCAiZWRpdEFyZWFzIiwgImVkaXRBcmVhIiwgIkVkaXRBcmVhIiksIGFycmF5KCJlQUwiLCAiZUFzIiwgImVBIiwgIkVBIiksICRzdWJfc2NyaXB0cyk7DQoJCQkkc3ViX3NjcmlwdHMuPSAidmFyIGVkaXRBcmVhPSBlQTtFZGl0QXJlYT1FQTsiOw0KCQkJDQoJCQkNCgkJCS8vIGFkZCB0aGUgc2NyaXB0cw0KCQkvLwkkdGhpcy0+ZGF0YXMuPSBzcHJpbnRmKCJlZGl0QXJlYUxvYWRlci5pZnJhbWVfc2NyaXB0PSBcIjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz4lczwvc2NyaXB0PlwiO1xuIiwgJHN1Yl9zY3JpcHRzKTsNCgkJDQoJCQ0KCQkJLy8gYWRkIHRoZSBzY3JpcHQgYW5kIHVzZSBhIGxhc3QgY29tcHJlc3Npb24gDQoJCQlpZiggJHRoaXMtPnBhcmFtWydjb21wcmVzcyddICkNCgkJCXsNCgkJCQkkbGFzdF9jb21wCT0gYXJyYXkoICfDgScgPT4gJ3RoaXMnLA0KCQkJCQkJCQkgJ8OCJyA9PiAndGV4dGFyZWEnLA0KCQkJCQkJCQkgJ8ODJyA9PiAnZnVuY3Rpb24nLA0KCQkJCQkJCQkgJ8OEJyA9PiAncHJvdG90eXBlJywNCgkJCQkJCQkJICfDhScgPT4gJ3NldHRpbmdzJywNCgkJCQkJCQkJICfDhicgPT4gJ2xlbmd0aCcsDQoJCQkJCQkJCSAnw4cnID0+ICdzdHlsZScsDQoJCQkJCQkJCSAnw4gnID0+ICdwYXJlbnQnLA0KCQkJCQkJCQkgJ8OJJyA9PiAnbGFzdF9zZWxlY3Rpb24nLA0KCQkJCQkJCQkgJ8OKJyA9PiAndmFsdWUnLA0KCQkJCQkJCQkgJ8OLJyA9PiAndHJ1ZScsDQoJCQkJCQkJCSAnw4wnID0+ICdmYWxzZScNCgkJCQkJCQkJIC8qLA0KCQkJCQkJCQkJJ8OOJyA9PiAnIicsDQoJCQkJCQkJCSAnw48nID0+ICJcbiIsDQoJCQkJCQkJCSAnw4AnID0+ICJcciIqLyk7DQoJCQl9DQoJCQllbHNlDQoJCQl7DQoJCQkJJGxhc3RfY29tcAk9IGFycmF5KCk7DQoJCQl9DQoJCQkNCgkJCSRqc19yZXBsYWNlPSAnJzsNCgkJCWZvcmVhY2goICRsYXN0X2NvbXAgYXMgJGtleSA9PiAkdmFsICkNCgkJCQkkanNfcmVwbGFjZSAuPSAiLnJlcGxhY2UoLyIuICRrZXkgLiIvZywnIi4gc3RyX3JlcGxhY2UoIGFycmF5KCJcbiIsICJcciIpLCBhcnJheSgnXG4nLCdccicpLCAkdmFsICkgLiInKSI7DQoJCQkNCgkJCSR0aGlzLT5kYXRhcy49IHNwcmludGYoImVkaXRBcmVhTG9hZGVyLmlmcmFtZV9zY3JpcHQ9IFwiPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPiVzPC9zY3JpcHQ+XCIlcztcbiIsDQoJCQkJCQkJCXN0cl9yZXBsYWNlKCBhcnJheV92YWx1ZXMoJGxhc3RfY29tcCksIGFycmF5X2tleXMoJGxhc3RfY29tcCksICRzdWJfc2NyaXB0cyApLCANCgkJCQkJCQkJJGpzX3JlcGxhY2UpOw0KCQkJDQoJCQlpZigkdGhpcy0+bG9hZF9hbGxfcGx1Z2lucykNCgkJCQkkdGhpcy0+ZGF0YXMuPSJlZGl0QXJlYUxvYWRlci5hbGxfcGx1Z2luc19sb2FkZWQ9dHJ1ZTtcbiI7DQoJCQ0KCQkJDQoJCQkvLyBsb2FkIHRoZSB0ZW1wbGF0ZQ0KCQkJJHRoaXMtPmRhdGFzLj0gc3ByaW50ZigiZWRpdEFyZWFMb2FkZXIudGVtcGxhdGU9IFwiJXNcIjtcbiIsICR0aGlzLT5nZXRfaHRtbF9jb250ZW50KCJ0ZW1wbGF0ZS5odG1sIikpOw0KCQkJLy8gbG9hZCB0aGUgY3NzDQoJCQkkdGhpcy0+ZGF0YXMuPSBzcHJpbnRmKCJlZGl0QXJlYUxvYWRlci5pZnJhbWVfY3NzPSBcIjxzdHlsZT4lczwvc3R5bGU+XCI7XG4iLCAkdGhpcy0+Z2V0X2Nzc19jb250ZW50KCJlZGl0X2FyZWEuY3NzIikpOw0KCQkJCQkNCgkJLy8JJHRoaXMtPmRhdGFzPSAiZnVuY3Rpb24gZWRpdEFyZWEoKXt9O2VkaXRBcmVhLnByb3RvdHlwZS5sb2FkZXI9IGZ1bmN0aW9uKCl7YWxlcnQoJ2JvdWhib3VoJyk7fSB2YXIgYT0gbmV3IGVkaXRBcmVhKCk7YS5sb2FkZXIoKTsiOw0KCQkJCQkNCgkJfQ0KCQkNCgkJZnVuY3Rpb24gc2VuZF9kYXRhcygpDQoJCXsNCgkJCWlmKCR0aGlzLT5wYXJhbVsnZGVidWcnXSl7DQoJCQkJJGhlYWRlcj1zcHJpbnRmKCIvKiBVU0UgUEhQIENPTVBSRVNTSU9OXG4iKTsNCgkJCQkkaGVhZGVyLj1zcHJpbnRmKCJqYXZhc2NyaXB0IHNpemU6IGJhc2VkIGZpbGVzOiAlcyA9PiBQSFAgQ09NUFJFU1NJT04gPT4gJXMgIiwgJHRoaXMtPmZpbGVfbG9hZGVkX3NpemUsIHN0cmxlbigkdGhpcy0+ZGF0YXMpKTsNCgkJCQlpZigkdGhpcy0+dXNlX2d6aXApew0KCQkJCQkkZ3ppcF9kYXRhcz0gIGd6ZW5jb2RlKCR0aGlzLT5kYXRhcywgOSwgRk9SQ0VfR1pJUCk7CQkJCQ0KCQkJCQkkaGVhZGVyLj1zcHJpbnRmKCI9PiBHWklQIENPTVBSRVNTSU9OID0+ICVzIiwgc3RybGVuKCRnemlwX2RhdGFzKSk7DQoJCQkJCSRyYXRpbyA9IHJvdW5kKDEwMCAtIHN0cmxlbigkZ3ppcF9kYXRhcykgLyAkdGhpcy0+ZmlsZV9sb2FkZWRfc2l6ZSAqIDEwMC4wKTsJCQkNCgkJCQl9ZWxzZXsNCgkJCQkJJHJhdGlvID0gcm91bmQoMTAwIC0gc3RybGVuKCR0aGlzLT5kYXRhcykgLyAkdGhpcy0+ZmlsZV9sb2FkZWRfc2l6ZSAqIDEwMC4wKTsNCgkJCQl9DQoJCQkJJGhlYWRlci49c3ByaW50ZigiLCByZWR1Y2VkIGJ5ICVzJSVcbiIsICRyYXRpbyk7DQoJCQkJJGhlYWRlci49c3ByaW50ZigiY29tcHJlc3Npb24gdGltZTogJXNcbiIsICR0aGlzLT5nZXRfbWljcm90aW1lKCktJHRoaXMtPnN0YXJ0X3RpbWUpOyANCgkJCQkkaGVhZGVyLj1zcHJpbnRmKCIlc1xuIiwgaW1wbG9kZSgiXG4iLCAkdGhpcy0+aW5mb3MpKTsNCgkJCQkkaGVhZGVyLj1zcHJpbnRmKCIqL1xuIik7DQoJCQkJJHRoaXMtPmRhdGFzPSAkaGVhZGVyLiR0aGlzLT5kYXRhczsJDQoJCQl9DQoJCQkkbXRpbWU9IHRpbWUoKTsgLy8gZW5zdXJlIHRoYXQgdGhlIDIgZGlzayBmaWxlcyB3aWxsIGhhdmUgdGhlIHNhbWUgdXBkYXRlIHRpbWUNCgkJCS8vIGdlbmVyYXRlIGd6aXAgZmlsZSBhbmQgY2FoY2UgaXQgaWYgdXNpbmcgZGlzayBjYWNoZQ0KCQkJaWYoJHRoaXMtPnVzZV9nemlwKXsNCgkJCQkkdGhpcy0+Z3ppcF9kYXRhcz0gZ3plbmNvZGUoJHRoaXMtPmRhdGFzLCA5LCBGT1JDRV9HWklQKTsNCgkJCQlpZigkdGhpcy0+cGFyYW1bJ3VzZV9kaXNrX2NhY2hlJ10pDQoJCQkJCSR0aGlzLT5maWxlX3B1dF9jb250ZW50cygkdGhpcy0+Z3ppcF9jYWNoZV9maWxlLCAkdGhpcy0+Z3ppcF9kYXRhcywgJG10aW1lKTsNCgkJCX0NCgkJCQ0KCQkJLy8gZ2VuZXJhdGUgZnVsbCBqcyBmaWxlIGFuZCBjYWNoZSBpdCBpZiB1c2luZyBkaXNrIGNhY2hlCQkJDQoJCQlpZigkdGhpcy0+cGFyYW1bJ3VzZV9kaXNrX2NhY2hlJ10pDQoJCQkJJHRoaXMtPmZpbGVfcHV0X2NvbnRlbnRzKCR0aGlzLT5mdWxsX2NhY2hlX2ZpbGUsICR0aGlzLT5kYXRhcywgJG10aW1lKTsNCgkJCQ0KCQkJLy8gZ2VuZXJhdGUgb3V0cHV0DQoJCQlpZigkdGhpcy0+dXNlX2d6aXApDQoJCQkJZWNobyAkdGhpcy0+Z3ppcF9kYXRhczsNCgkJCWVsc2UNCgkJCQllY2hvICR0aGlzLT5kYXRhczsNCgkJCQkNCi8vCQkJZGllOw0KCQl9DQoJCQkJDQoJCQ0KCQlmdW5jdGlvbiBnZXRfY29udGVudCgkZW5kX3VyaSkNCgkJew0KCQkJJGVuZF91cmk9cHJlZ19yZXBsYWNlKCIvXC5cLi8iLCAiIiwgJGVuZF91cmkpOyAvLyBSZW1vdmUgYW55IC4uIChzZWN1cml0eSkNCgkJCSRmaWxlPSAkdGhpcy0+cGF0aC4kZW5kX3VyaTsNCgkJCWlmKGZpbGVfZXhpc3RzKCRmaWxlKSl7DQoJCQkJJHRoaXMtPmluZm9zW109c3ByaW50ZigiJyVzJyBsb2FkZWQiLCAkZW5kX3VyaSk7DQoJCQkJLyokZmQgPSBmb3BlbigkZmlsZSwgJ3JiJyk7DQoJCQkJJGNvbnRlbnQgPSBmcmVhZCgkZmQsIGZpbGVzaXplKCRmaWxlKSk7DQoJCQkJZmNsb3NlKCRmZCk7DQoJCQkJcmV0dXJuICRjb250ZW50OyovDQoJCQkJcmV0dXJuICR0aGlzLT5maWxlX2dldF9jb250ZW50cygkZmlsZSk7DQoJCQl9ZWxzZXsNCgkJCQkkdGhpcy0+aW5mb3NbXT1zcHJpbnRmKCInJXMnIG5vdCBsb2FkZWQiLCAkZW5kX3VyaSk7DQoJCQkJcmV0dXJuICIiOw0KCQkJfQ0KCQl9DQoJCQ0KCQlmdW5jdGlvbiBnZXRfamF2YXNjcmlwdF9jb250ZW50KCRlbmRfdXJpKQ0KCQl7DQoJCQkkdmFsPSR0aGlzLT5nZXRfY29udGVudCgkZW5kX3VyaSk7DQoJDQoJCQkkdGhpcy0+Y29tcHJlc3NfamF2YXNjcmlwdCgkdmFsKTsNCgkJCSR0aGlzLT5wcmVwYXJlX3N0cmluZ19mb3JfcXVvdGVzKCR2YWwpOw0KCQkJcmV0dXJuICR2YWw7DQoJCX0NCgkJDQoJCWZ1bmN0aW9uIGNvbXByZXNzX2phdmFzY3JpcHQoJiRjb2RlKQ0KCQl7DQoJCQlpZigkdGhpcy0+cGFyYW1bJ2NvbXByZXNzJ10pDQoJCQl7DQoJCQkJLy8gcmVtb3ZlIGFsbCBjb21tZW50cw0KCQkJCS8vCShcIig/OlteXCJcXF0qKD86XFxcXCkqKD86XFxcIj8pPykqKD86XCJ8JCkpfChcJyg/OlteXCdcXF0qKD86XFxcXCkqKD86XFwnPyk/KSooPzpcJ3wkKSl8KD86XC9cLyg/Oi58XHJ8XHQpKj8oXG58JCkpfCg/OlwvXCooPzoufFxufFxyfFx0KSo/KD86XCpcL3wkKSkNCgkJCQkkY29kZT0gcHJlZ19yZXBsYWNlKCIvKFwiKD86W15cIlxcXFxdKig/OlxcXFxcXFxcKSooPzpcXFxcXCI/KT8pKig/OlwifCQpKXwoXCcoPzpbXlwnXFxcXF0qKD86XFxcXFxcXFwpKig/OlxcXFxcJz8pPykqKD86XCd8JCkpfCg/OlwvXC8oPzoufFxyfFx0KSo/KFxufCQpKXwoPzpcL1wqKD86LnxcbnxccnxcdCkqPyg/OlwqXC98JCkpL3MiLCAiJDEkMiQzIiwgJGNvZGUpOw0KCQkJCS8vIHJlbW92ZSBsaW5lIHJldHVybiwgZW1wdHkgbGluZSBhbmQgdGFidWxhdGlvbg0KCQkJCSRjb2RlPSBwcmVnX3JlcGxhY2UoJy8oKCB8XHR8XHIpKlxuKCB8XHQpKikrL3MnLCAiICIsICRjb2RlKTsNCgkJCQkvLyBhZGQgbGluZSBicmVhayBiZWZvcmUgImVsc2UiIG90aGVyd2lzZSBuYXZpZ2F0b3JzIGNhbid0IG1hbmFnZSB0byBwYXJzZSB0aGUgZmlsZQ0KCQkJCSRjb2RlPSBwcmVnX3JlcGxhY2UoJy8oXGIoZWxzZSlcYikvJywgIlxuJDEiLCAkY29kZSk7DQoJCQkJLy8gcmVtb3ZlIHVubmVjZXNzYXJ5IHNwYWNlcw0KCQkJCSRjb2RlPSBwcmVnX3JlcGxhY2UoJy8oIHxcdHxccikqKDt8XHt8XH18PXw9PXxcLXxcK3wsfFwofFwpfFx8XHx8JlwmfFw6KSggfFx0fFxyKSovJywgIiQyIiwgJGNvZGUpOw0KCQkJfQ0KCQl9DQoJCQ0KCQlmdW5jdGlvbiBnZXRfY3NzX2NvbnRlbnQoJGVuZF91cmkpew0KCQkJJGNvZGU9JHRoaXMtPmdldF9jb250ZW50KCRlbmRfdXJpKTsNCgkJCS8vIHJlbW92ZSBjb21tZW50cw0KCQkJJGNvZGU9IHByZWdfcmVwbGFjZSgiLyg/OlwvXCooPzoufFxufFxyfFx0KSo/KD86XCpcL3wkKSkvcyIsICIiLCAkY29kZSk7DQoJCQkvLyByZW1vdmUgc3BhY2VzDQoJCQkkY29kZT0gcHJlZ19yZXBsYWNlKCcvKCggfFx0fFxyKSpcbiggfFx0KSopKy9zJywgIiIsICRjb2RlKTsNCgkJCS8vIHJlbW92ZSBzcGFjZXMNCgkJCSRjb2RlPSBwcmVnX3JlcGxhY2UoJy8oIHxcdHxccik/KFw6fCx8XHt8XH0pKCB8XHR8XHIpKy8nLCAiJDIiLCAkY29kZSk7DQoJCQ0KCQkJJHRoaXMtPnByZXBhcmVfc3RyaW5nX2Zvcl9xdW90ZXMoJGNvZGUpOw0KCQkJcmV0dXJuICRjb2RlOw0KCQl9DQoJCQ0KCQlmdW5jdGlvbiBnZXRfaHRtbF9jb250ZW50KCRlbmRfdXJpKXsNCgkJCSRjb2RlPSR0aGlzLT5nZXRfY29udGVudCgkZW5kX3VyaSk7DQoJCQkvLyRjb2RlPSBwcmVnX3JlcGxhY2UoJy8oXCIoPzpcXFwifFteXCJdKSooPzpcInwkKSl8JyAuICIoXCcoPzpcXFwnfFteXCddKSooPzpcJ3wkKSl8KD86XC9cLyg/Oi58XHJ8XHQpKj8oXG58JCkpfCg/OlwvXCooPzoufFxufFxyfFx0KSo/KD86XCpcL3wkKSkvcyIsICIkMSQyJDMiLCAkY29kZSk7DQoJCQkkY29kZT0gcHJlZ19yZXBsYWNlKCcvKCggfFx0fFxyKSpcbiggfFx0KSopKy9zJywgIiAiLCAkY29kZSk7DQoJCQkkdGhpcy0+cHJlcGFyZV9zdHJpbmdfZm9yX3F1b3RlcygkY29kZSk7DQoJCQlyZXR1cm4gJGNvZGU7DQoJCX0NCgkJDQoJCWZ1bmN0aW9uIHByZXBhcmVfc3RyaW5nX2Zvcl9xdW90ZXMoJiRzdHIpew0KCQkJLy8gcHJlcGFyZSB0aGUgY29kZSB0byBiZSBwdXR0ZWQgaW50byBxdW90ZXMgDQoJCQkvKiRwYXR0ZXJuPSBhcnJheSgiLyhcXFxcKT9cIi8iLCAnL1xcXG4vJwksICcvXFxcci8nCSwgIi8oXHI/XG4pLyIpOw0KCQkJJHJlcGxhY2U9IGFycmF5KCckMSQxXFwiJywgJ1xcXFxcXG4nLCAnXFxcXFxccicJLCAnXFxcbiIkMSsiJyk7Ki8NCgkJCSRwYXR0ZXJuPSBhcnJheSgiLyhcXFxcKT9cIi8iLCAnL1xcXG4vJwksICcvXFxcci8nCSwgIi8oXHI/XG4pLyIpOw0KCQkJaWYoJHRoaXMtPnBhcmFtWydjb21wcmVzcyddKQ0KCQkJCSRyZXBsYWNlPSBhcnJheSgnJDEkMVxcIicsICdcXFxcXFxuJywgJ1xcXFxcXHInCSwgJ1xuJyk7DQoJCQllbHNlDQoJCQkJJHJlcGxhY2U9IGFycmF5KCckMSQxXFwiJywgJ1xcXFxcXG4nLCAnXFxcXFxccicJLCAiXFxuXCJcbitcIiIpOw0KCQkJJHN0cj0gcHJlZ19yZXBsYWNlKCRwYXR0ZXJuLCAkcmVwbGFjZSwgJHN0cik7DQoJCX0NCgkJDQoJCWZ1bmN0aW9uIHJlcGxhY2Vfc2NyaXB0cygkdmFyLCAkcGFyYW0xLCAkcGFyYW0yKQ0KCQl7DQoJCQkkdGhpcy0+JHZhcj1zdHJpcHNsYXNoZXMoJHBhcmFtMik7DQoJICAgICAgICByZXR1cm4gJHBhcmFtMS4iW107IjsNCgkJfQ0KDQoJCS8qIGZvciBwaHAgdmVyc2lvbiB0aGF0IGhhdmUgbm90IHRob3NlcyBmdW5jdGlvbnMgKi8NCgkJZnVuY3Rpb24gZmlsZV9nZXRfY29udGVudHMoJGZpbGUpDQoJCXsNCgkJCSRmZCA9IGZvcGVuKCRmaWxlLCAncmInKTsNCgkJCSRjb250ZW50ID0gZnJlYWQoJGZkLCBmaWxlc2l6ZSgkZmlsZSkpOw0KCQkJZmNsb3NlKCRmZCk7DQoJCQkkdGhpcy0+ZmlsZV9sb2FkZWRfc2l6ZSs9IHN0cmxlbigkY29udGVudCk7DQoJCQlyZXR1cm4gJGNvbnRlbnQ7CQkJCQ0KCQl9DQoJCQ0KCQlmdW5jdGlvbiBmaWxlX3B1dF9jb250ZW50cygkZmlsZSwgJiRjb250ZW50LCAkbXRpbWU9LTEpDQoJCXsNCgkJCWlmKCRtdGltZT09LTEpDQoJCQkJJG10aW1lPXRpbWUoKTsNCgkJCSRmcCA9IEBmb3BlbigkZmlsZSwgIndiIik7DQoJCQlpZiAoJGZwKSB7DQoJCQkJZndyaXRlKCRmcCwgJGNvbnRlbnQpOw0KCQkJCWZjbG9zZSgkZnApOw0KCQkJCXRvdWNoKCRmaWxlLCAkbXRpbWUpOw0KCQkJCXJldHVybiB0cnVlOw0KCQkJfQ0KCQkJcmV0dXJuIGZhbHNlOw0KCQl9DQoJCQ0KCQlmdW5jdGlvbiBnZXRfbWljcm90aW1lKCkNCgkJew0KCQkgICBsaXN0KCR1c2VjLCAkc2VjKSA9IGV4cGxvZGUoIiAiLCBtaWNyb3RpbWUoKSk7DQoJCSAgIHJldHVybiAoKGZsb2F0KSR1c2VjICsgKGZsb2F0KSRzZWMpOw0KCQl9DQoJfQkNCj8+DQo=]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/edit_area_full.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[IGZ1bmN0aW9uIEVBTCgpe3ZhciB0PXRoaXM7dC52ZXJzaW9uPSIwLjguMiI7ZGF0ZT1uZXcgRGF0ZSgpO3Quc3RhcnRfdGltZT1kYXRlLmdldFRpbWUoKTt0Lndpbj0ibG9hZGluZyI7dC5lcnJvcj1mYWxzZTt0LmJhc2VVUkw9IiI7dC50ZW1wbGF0ZT0iIjt0Lmxhbmc9e307dC5sb2FkX3N5bnRheD17fTt0LnN5bnRheD17fTt0LmxvYWRlZEZpbGVzPVtdO3Qud2FpdGluZ19sb2FkaW5nPXt9O3Quc2NyaXB0c190b19sb2FkPVtdO3Quc3ViX3NjcmlwdHNfdG9fbG9hZD1bXTt0LnN5bnRheF9kaXNwbGF5X25hbWU9eydiYXNpYyc6J0Jhc2ljJywnYnJhaW5mdWNrJzonQnJhaW5mdWNrJywnYyc6J0MnLCdjb2xkZnVzaW9uJzonQ29sZGZ1c2lvbicsJ2NwcCc6J0NQUCcsJ2Nzcyc6J0NTUycsJ2h0bWwnOidIVE1MJywnamF2YSc6J0phdmEnLCdqcyc6J0phdmFzY3JpcHQnLCdwYXMnOidQYXNjYWwnLCdwZXJsJzonUGVybCcsJ3BocCc6J1BocCcsJ3B5dGhvbic6J1B5dGhvbicsJ3JvYm90c3R4dCc6J1JvYm90cyB0eHQnLCdydWJ5JzonUnVieScsJ3NxbCc6J1NRTCcsJ3RzcWwnOidULVNRTCcsJ3ZiJzonVmlzdWFsIEJhc2ljJywneG1sJzonWE1MJ307dC5yZXNpemU9W107dC5oaWRkZW49e307dC5kZWZhdWx0X3NldHRpbmdzPXtkZWJ1ZzpmYWxzZSxzbW9vdGhfc2VsZWN0aW9uOnRydWUsZm9udF9zaXplOiIxMCIsZm9udF9mYW1pbHk6Im1vbm9zcGFjZSIsc3RhcnRfaGlnaGxpZ2h0OmZhbHNlLHRvb2xiYXI6InNlYXJjaCxnb190b19saW5lLGZ1bGxzY3JlZW4sfCx1bmRvLHJlZG8sfCxzZWxlY3RfZm9udCx8LGNoYW5nZV9zbW9vdGhfc2VsZWN0aW9uLGhpZ2hsaWdodCxyZXNldF9oaWdobGlnaHQsd29yZF93cmFwLHwsaGVscCIsYmVnaW5fdG9vbGJhcjoiIixlbmRfdG9vbGJhcjoiIixpc19tdWx0aV9maWxlczpmYWxzZSxhbGxvd19yZXNpemU6ImJvdGgiLHNob3dfbGluZV9jb2xvcnM6ZmFsc2UsbWluX3dpZHRoOjQwMCxtaW5faGVpZ2h0OjEyNSxyZXBsYWNlX3RhYl9ieV9zcGFjZXM6ZmFsc2UsYWxsb3dfdG9nZ2xlOnRydWUsbGFuZ3VhZ2U6ImVuIixzeW50YXg6IiIsc3ludGF4X3NlbGVjdGlvbl9hbGxvdzoiYmFzaWMsYnJhaW5mdWNrLGMsY29sZGZ1c2lvbixjcHAsY3NzLGh0bWwsamF2YSxqcyxwYXMscGVybCxwaHAscHl0aG9uLHJ1Ynkscm9ib3RzdHh0LHNxbCx0c3FsLHZiLHhtbCIsZGlzcGxheToib25sb2FkIixtYXhfdW5kbzozMCxicm93c2Vyczoia25vd24iLHBsdWdpbnM6IiIsZ2Vja29fc3BlbGxjaGVjazpmYWxzZSxmdWxsc2NyZWVuOmZhbHNlLGlzX2VkaXRhYmxlOnRydWUsY3Vyc29yX3Bvc2l0aW9uOiJiZWdpbiIsd29yZF93cmFwOmZhbHNlLGF1dG9jb21wbGV0aW9uOmZhbHNlLGxvYWRfY2FsbGJhY2s6IiIsc2F2ZV9jYWxsYmFjazoiIixjaGFuZ2VfY2FsbGJhY2s6IiIsc3VibWl0X2NhbGxiYWNrOiIiLEVBX2luaXRfY2FsbGJhY2s6IiIsRUFfZGVsZXRlX2NhbGxiYWNrOiIiLEVBX2xvYWRfY2FsbGJhY2s6IiIsRUFfdW5sb2FkX2NhbGxiYWNrOiIiLEVBX3RvZ2dsZV9vbl9jYWxsYmFjazoiIixFQV90b2dnbGVfb2ZmX2NhbGxiYWNrOiIiLEVBX2ZpbGVfc3dpdGNoX29uX2NhbGxiYWNrOiIiLEVBX2ZpbGVfc3dpdGNoX29mZl9jYWxsYmFjazoiIixFQV9maWxlX2Nsb3NlX2NhbGxiYWNrOiIifTt0LmFkdmFuY2VkX2J1dHRvbnM9WyBbJ25ld19kb2N1bWVudCcsJ25ld2RvY3VtZW50LmdpZicsJ25ld19kb2N1bWVudCcsZmFsc2VdLFsnc2VhcmNoJywnc2VhcmNoLmdpZicsJ3Nob3dfc2VhcmNoJyxmYWxzZV0sWydnb190b19saW5lJywnZ29fdG9fbGluZS5naWYnLCdnb190b19saW5lJyxmYWxzZV0sWyd1bmRvJywndW5kby5naWYnLCd1bmRvJyx0cnVlXSxbJ3JlZG8nLCdyZWRvLmdpZicsJ3JlZG8nLHRydWVdLFsnY2hhbmdlX3Ntb290aF9zZWxlY3Rpb24nLCdzbW9vdGhfc2VsZWN0aW9uLmdpZicsJ2NoYW5nZV9zbW9vdGhfc2VsZWN0aW9uX21vZGUnLHRydWVdLFsncmVzZXRfaGlnaGxpZ2h0JywncmVzZXRfaGlnaGxpZ2h0LmdpZicsJ3Jlc3luY19oaWdobGlnaHQnLHRydWVdLFsnaGlnaGxpZ2h0JywnaGlnaGxpZ2h0LmdpZicsJ2NoYW5nZV9oaWdobGlnaHQnLHRydWVdLFsnaGVscCcsJ2hlbHAuZ2lmJywnc2hvd19oZWxwJyxmYWxzZV0sWydzYXZlJywnc2F2ZS5naWYnLCdzYXZlJyxmYWxzZV0sWydsb2FkJywnbG9hZC5naWYnLCdsb2FkJyxmYWxzZV0sWydmdWxsc2NyZWVuJywnZnVsbHNjcmVlbi5naWYnLCd0b2dnbGVfZnVsbF9zY3JlZW4nLGZhbHNlXSxbJ3dvcmRfd3JhcCcsJ3dvcmRfd3JhcC5naWYnLCd0b2dnbGVfd29yZF93cmFwJyx0cnVlXSxbJ2F1dG9jb21wbGV0aW9uJywnYXV0b2NvbXBsZXRpb24uZ2lmJywndG9nZ2xlX2F1dG9jb21wbGV0aW9uJyx0cnVlXSBdO3Quc2V0X2Jyb3dzZXJfaW5mb3ModCk7aWYodC5pc0lFPj02fHx0LmlzR2Vja298fCh0LmlzV2ViS2l0JiYhdC5pc1NhZmFyaTwzKXx8dC5pc09wZXJhPj05fHx0LmlzQ2FtaW5vKXQuaXNWYWxpZEJyb3dzZXI9dHJ1ZTsNCmVsc2UgdC5pc1ZhbGlkQnJvd3Nlcj1mYWxzZTt0LnNldF9iYXNlX3VybCgpO2Zvcih2YXIgaT0wO2k8dC5zY3JpcHRzX3RvX2xvYWQubGVuZ3RoO2krKyl7c2V0VGltZW91dCgiZUFMLmxvYWRfc2NyaXB0KCciK3QuYmFzZVVSTCt0LnNjcmlwdHNfdG9fbG9hZFtpXSsiLmpzJyk7IiwxKTt0LndhaXRpbmdfbG9hZGluZ1t0LnNjcmlwdHNfdG9fbG9hZFtpXSsiLmpzIl09ZmFsc2U7fXQuYWRkX2V2ZW50KHdpbmRvdywibG9hZCIsRUFMLnByb3RvdHlwZS53aW5kb3dfbG9hZGVkKTt9O0VBTC5wcm90b3R5cGU9e2hhc19lcnJvcjpmdW5jdGlvbigpe3RoaXMuZXJyb3I9dHJ1ZTtmb3IodmFyIGkgaW4gRUFMLnByb3RvdHlwZSl7RUFMLnByb3RvdHlwZVtpXT1mdW5jdGlvbigpe307fX0sc2V0X2Jyb3dzZXJfaW5mb3M6ZnVuY3Rpb24obyl7dWE9bmF2aWdhdG9yLnVzZXJBZ2VudDtvLmlzV2ViS2l0PS9XZWJLaXQvLnRlc3QodWEpO28uaXNHZWNrbz0hby5pc1dlYktpdCYmL0dlY2tvLy50ZXN0KHVhKTtvLmlzTWFjPS9NYWMvLnRlc3QodWEpO28uaXNJRT0obmF2aWdhdG9yLmFwcE5hbWU9PSJNaWNyb3NvZnQgSW50ZXJuZXQgRXhwbG9yZXIiKTtpZihvLmlzSUUpe28uaXNJRT11YS5yZXBsYWNlKC9eLio/TVNJRVxzKyhbMC05XC5dKykuKiQvLCIkMSIpO2lmKG8uaXNJRTw2KW8uaGFzX2Vycm9yKCk7fWlmKG8uaXNPcGVyYT0odWEuaW5kZXhPZignT3BlcmEnKSE9LTEpKXtvLmlzT3BlcmE9dWEucmVwbGFjZSgvXi4qP09wZXJhLio/KFswLTlcLl0rKS4qJC9pLCIkMSIpO2lmKG8uaXNPcGVyYTw5KW8uaGFzX2Vycm9yKCk7by5pc0lFPWZhbHNlO31pZihvLmlzRmlyZWZveD0odWEuaW5kZXhPZignRmlyZWZveCcpIT0tMSkpby5pc0ZpcmVmb3g9dWEucmVwbGFjZSgvXi4qP0ZpcmVmb3guKj8oWzAtOVwuXSspLiokL2ksIiQxIik7aWYodWEuaW5kZXhPZignSWNld2Vhc2VsJykhPS0xKW8uaXNGaXJlZm94PXVhLnJlcGxhY2UoL14uKj9JY2V3ZWFzZWwuKj8oWzAtOVwuXSspLiokL2ksIiQxIik7aWYodWEuaW5kZXhPZignR3JhblBhcmFkaXNvJykhPS0xKW8uaXNGaXJlZm94PXVhLnJlcGxhY2UoL14uKj9HcmFuUGFyYWRpc28uKj8oWzAtOVwuXSspLiokL2ksIiQxIik7aWYodWEuaW5kZXhPZignQm9uRWNobycpIT0tMSlvLmlzRmlyZWZveD11YS5yZXBsYWNlKC9eLio/Qm9uRWNoby4qPyhbMC05XC5dKykuKiQvaSwiJDEiKTtpZih1YS5pbmRleE9mKCdTZWFNb25rZXknKSE9LTEpby5pc0ZpcmVmb3g9KHVhLnJlcGxhY2UoL14uKj9TZWFNb25rZXkuKj8oWzAtOVwuXSspLiokL2ksIiQxIikpKzE7aWYoby5pc0NhbWlubz0odWEuaW5kZXhPZignQ2FtaW5vJykhPS0xKSlvLmlzQ2FtaW5vPXVhLnJlcGxhY2UoL14uKj9DYW1pbm8uKj8oWzAtOVwuXSspLiokL2ksIiQxIik7aWYoby5pc1NhZmFyaT0odWEuaW5kZXhPZignU2FmYXJpJykhPS0xKSlvLmlzU2FmYXJpPXVhLnJlcGxhY2UoL14uKj9WZXJzaW9uXC8oWzAtOV0rXC5bMC05XSspLiokL2ksIiQxIik7aWYoby5pc0Nocm9tZT0odWEuaW5kZXhPZignQ2hyb21lJykhPS0xKSl7by5pc0Nocm9tZT11YS5yZXBsYWNlKC9eLio/Q2hyb21lLio/KFswLTlcLl0rKS4qJC9pLCIkMSIpO28uaXNTYWZhcmk9ZmFsc2U7fX0sd2luZG93X2xvYWRlZDpmdW5jdGlvbigpe2VBTC53aW49ImxvYWRlZCI7aWYoZG9jdW1lbnQuZm9ybXMpe2Zvcih2YXIgaT0wO2k8ZG9jdW1lbnQuZm9ybXMubGVuZ3RoO2krKyl7dmFyIGZvcm09ZG9jdW1lbnQuZm9ybXNbaV07Zm9ybS5lZGl0X2FyZWFfcmVwbGFjZWRfc3VibWl0PW51bGw7dHJ5e2Zvcm0uZWRpdF9hcmVhX3JlcGxhY2VkX3N1Ym1pdD1mb3JtLm9uc3VibWl0O2Zvcm0ub25zdWJtaXQ9IiI7fWNhdGNoKGUpe31lQUwuYWRkX2V2ZW50KGZvcm0sInN1Ym1pdCIsRUFMLnByb3RvdHlwZS5zdWJtaXQpO2VBTC5hZGRfZXZlbnQoZm9ybSwicmVzZXQiLEVBTC5wcm90b3R5cGUucmVzZXQpO319ZUFMLmFkZF9ldmVudCh3aW5kb3csInVubG9hZCIsZnVuY3Rpb24oKXtmb3IodmFyIGkgaW4gZUFzKXtlQUwuZGVsZXRlX2luc3RhbmNlKGkpO319KTt9LGluaXRfaWVfdGV4dGFyZWE6ZnVuY3Rpb24oaWQpe3ZhciBhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTt0cnl7aWYoYSYmdHlwZW9mKGEuZm9jdXNlZCk9PSJ1bmRlZmluZWQiKXthLmZvY3VzKCk7YS5mb2N1c2VkPXRydWU7YS5zZWxlY3Rpb25TdGFydD1hLnNlbGVjdGlvbkVuZD0wO2dldF9JRV9zZWxlY3Rpb24oYSk7ZUFMLmFkZF9ldmVudChhLCJmb2N1cyIsSUVfdGV4dGFyZWFfZm9jdXMpO2VBTC5hZGRfZXZlbnQoYSwiYmx1ciIsSUVfdGV4dGFyZWFfYmx1cik7fX1jYXRjaChleCl7fX0saW5pdDpmdW5jdGlvbihzZXR0aW5ncyl7dmFyIHQ9dGhpcyxzPXNldHRpbmdzLGk7aWYoIXNbImlkIl0pdC5oYXNfZXJyb3IoKTtpZih0LmVycm9yKXJldHVybjtpZihlQXNbc1siaWQiXV0pdC5kZWxldGVfaW5zdGFuY2Uoc1siaWQiXSk7Zm9yKGkgaW4gdC5kZWZhdWx0X3NldHRpbmdzKXtpZih0eXBlb2Yoc1tpXSk9PSJ1bmRlZmluZWQiKXNbaV09dC5kZWZhdWx0X3NldHRpbmdzW2ldO31pZihzWyJicm93c2VycyJdPT0ia25vd24iJiZ0LmlzVmFsaWRCcm93c2VyPT1mYWxzZSl7cmV0dXJuO31pZihzWyJiZWdpbl90b29sYmFyIl0ubGVuZ3RoPjApc1sidG9vbGJhciJdPXNbImJlZ2luX3Rvb2xiYXIiXSsiLCIrc1sidG9vbGJhciJdO2lmKHNbImVuZF90b29sYmFyIl0ubGVuZ3RoPjApc1sidG9vbGJhciJdPXNbInRvb2xiYXIiXSsiLCIrc1siZW5kX3Rvb2xiYXIiXTtzWyJ0YWJfdG9vbGJhciJdPXNbInRvb2xiYXIiXS5yZXBsYWNlKC8gL2csIiIpLnNwbGl0KCIsIik7c1sicGx1Z2lucyJdPXNbInBsdWdpbnMiXS5yZXBsYWNlKC8gL2csIiIpLnNwbGl0KCIsIik7Zm9yKGk9MDtpPHNbInBsdWdpbnMiXS5sZW5ndGg7aSsrKXtpZihzWyJwbHVnaW5zIl1baV0ubGVuZ3RoPT0wKXNbInBsdWdpbnMiXS5zcGxpY2UoaSwxKTt9dC5nZXRfdGVtcGxhdGUoKTt0LmxvYWRfc2NyaXB0KHQuYmFzZVVSTCsibGFuZ3MvIitzWyJsYW5ndWFnZSJdKyIuanMiKTtpZihzWyJzeW50YXgiXS5sZW5ndGg+MCl7c1sic3ludGF4Il09c1sic3ludGF4Il0udG9Mb3dlckNhc2UoKTt0LmxvYWRfc2NyaXB0KHQuYmFzZVVSTCsicmVnX3N5bnRheC8iK3NbInN5bnRheCJdKyIuanMiKTt9ZUFzW3NbImlkIl1dPXsic2V0dGluZ3MiOnN9O2VBc1tzWyJpZCJdXVsiZGlzcGxheWVkIl09ZmFsc2U7ZUFzW3NbImlkIl1dWyJoaWRkZW4iXT1mYWxzZTt0LnN0YXJ0KHNbImlkIl0pO30sZGVsZXRlX2luc3RhbmNlOmZ1bmN0aW9uKGlkKXt2YXIgZD1kb2N1bWVudCxmcz13aW5kb3cuZnJhbWVzLHNwYW4saWZyYW1lO2VBTC5leGVjQ29tbWFuZChpZCwiRUFfZGVsZXRlIik7aWYoZnNbImZyYW1lXyIraWRdJiZmc1siZnJhbWVfIitpZF0uZWRpdEFyZWEpe2lmKGVBc1tpZF1bImRpc3BsYXllZCJdKWVBTC50b2dnbGUoaWQsIm9mZiIpO2ZzWyJmcmFtZV8iK2lkXS5lZGl0QXJlYS5leGVjQ29tbWFuZCgiRUFfdW5sb2FkIik7fXNwYW49ZC5nZXRFbGVtZW50QnlJZCgiRWRpdEFyZWFBcnJvdW5kSW5mb3NfIitpZCk7aWYoc3BhbilzcGFuLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoc3Bhbik7aWZyYW1lPWQuZ2V0RWxlbWVudEJ5SWQoImZyYW1lXyIraWQpO2lmKGlmcmFtZSl7aWZyYW1lLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoaWZyYW1lKTt0cnl7ZGVsZXRlIGZzWyJmcmFtZV8iK2lkXTt9Y2F0Y2goZSl7fX1kZWxldGUgZUFzW2lkXTt9LHN0YXJ0OmZ1bmN0aW9uKGlkKXt2YXIgdD10aGlzLGQ9ZG9jdW1lbnQsZixzcGFuLGZhdGhlcixuZXh0LGh0bWw9JycsaHRtbF90b29sYmFyX2NvbnRlbnQ9JycsdGVtcGxhdGUsY29udGVudCxpO2lmKHQud2luIT0ibG9hZGVkIil7c2V0VGltZW91dCgiZUFMLnN0YXJ0KCciK2lkKyInKTsiLDUwKTtyZXR1cm47fWZvcihpIGluIHQud2FpdGluZ19sb2FkaW5nKXtpZih0LndhaXRpbmdfbG9hZGluZ1tpXSE9ImxvYWRlZCImJnR5cGVvZih0LndhaXRpbmdfbG9hZGluZ1tpXSkhPSJmdW5jdGlvbiIpe3NldFRpbWVvdXQoImVBTC5zdGFydCgnIitpZCsiJyk7Iiw1MCk7cmV0dXJuO319aWYoIXQubGFuZ1tlQXNbaWRdWyJzZXR0aW5ncyJdWyJsYW5ndWFnZSJdXXx8KGVBc1tpZF1bInNldHRpbmdzIl1bInN5bnRheCJdLmxlbmd0aD4wJiYhdC5sb2FkX3N5bnRheFtlQXNbaWRdWyJzZXR0aW5ncyJdWyJzeW50YXgiXV0pKXtzZXRUaW1lb3V0KCJlQUwuc3RhcnQoJyIraWQrIicpOyIsNTApO3JldHVybjt9aWYoZUFzW2lkXVsic2V0dGluZ3MiXVsic3ludGF4Il0ubGVuZ3RoPjApdC5pbml0X3N5bnRheF9yZWdleHAoKTtpZighZC5nZXRFbGVtZW50QnlJZCgiRWRpdEFyZWFBcnJvdW5kSW5mb3NfIitpZCkmJihlQXNbaWRdWyJzZXR0aW5ncyJdWyJkZWJ1ZyJdfHxlQXNbaWRdWyJzZXR0aW5ncyJdWyJhbGxvd190b2dnbGUiXSkpe3NwYW49ZC5jcmVhdGVFbGVtZW50KCJzcGFuIik7c3Bhbi5pZD0iRWRpdEFyZWFBcnJvdW5kSW5mb3NfIitpZDtpZihlQXNbaWRdWyJzZXR0aW5ncyJdWyJhbGxvd190b2dnbGUiXSl7Y2hlY2tlZD0oZUFzW2lkXVsic2V0dGluZ3MiXVsiZGlzcGxheSJdPT0ib25sb2FkIik/ImNoZWNrZWQ9J2NoZWNrZWQnIjoiIjtodG1sKz0iPGRpdiBpZD0nZWRpdF9hcmVhX3RvZ2dsZV8iK2krIic+IjtodG1sKz0iPGlucHV0IGlkPSdlZGl0X2FyZWFfdG9nZ2xlX2NoZWNrYm94XyIraWQrIicgY2xhc3M9J3RvZ2dsZV8iK2lkKyInIHR5cGU9J2NoZWNrYm94JyBvbmNsaWNrPSdlQUwudG9nZ2xlKFwiIitpZCsiXCIpOycgYWNjZXNza2V5PSdlJyAiK2NoZWNrZWQrIiAvPiI7aHRtbCs9IjxsYWJlbCBmb3I9J2VkaXRfYXJlYV90b2dnbGVfY2hlY2tib3hfIitpZCsiJz57JHRvZ2dsZX08L2xhYmVsPjwvZGl2PiI7fWlmKGVBc1tpZF1bInNldHRpbmdzIl1bImRlYnVnIl0paHRtbCs9Ijx0ZXh0YXJlYSBpZD0nZWRpdF9hcmVhX2RlYnVnXyIraWQrIicgc3BlbGxjaGVjaz0nb2ZmJyBzdHlsZT0nei1pbmRleDoyMDt3aWR0aDoxMDAlO2hlaWdodDoxMjBweDtvdmVyZmxvdzphdXRvO2JvcmRlcjpzb2xpZCBibGFjayAxcHg7Jz48L3RleHRhcmVhPjxiciAvPiI7aHRtbD10LnRyYW5zbGF0ZShodG1sLGVBc1tpZF1bInNldHRpbmdzIl1bImxhbmd1YWdlIl0pO3NwYW4uaW5uZXJIVE1MPWh0bWw7ZmF0aGVyPWQuZ2V0RWxlbWVudEJ5SWQoaWQpLnBhcmVudE5vZGU7bmV4dD1kLmdldEVsZW1lbnRCeUlkKGlkKS5uZXh0U2libGluZztpZihuZXh0PT1udWxsKWZhdGhlci5hcHBlbmRDaGlsZChzcGFuKTsNCmVsc2UgZmF0aGVyLmluc2VydEJlZm9yZShzcGFuLG5leHQpO31pZighZUFzW2lkXVsiaW5pdGlhbGl6ZWQiXSl7dC5leGVjQ29tbWFuZChpZCwiRUFfaW5pdCIpO2lmKGVBc1tpZF1bInNldHRpbmdzIl1bImRpc3BsYXkiXT09ImxhdGVyIil7ZUFzW2lkXVsiaW5pdGlhbGl6ZWQiXT10cnVlO3JldHVybjt9fWlmKHQuaXNJRSl7dC5pbml0X2llX3RleHRhcmVhKGlkKTt9dmFyIGFyZWE9ZUFzW2lkXTtmb3IoaT0wO2k8YXJlYVsic2V0dGluZ3MiXVsidGFiX3Rvb2xiYXIiXS5sZW5ndGg7aSsrKXtodG1sX3Rvb2xiYXJfY29udGVudCs9dC5nZXRfY29udHJvbF9odG1sKGFyZWFbInNldHRpbmdzIl1bInRhYl90b29sYmFyIl1baV0sYXJlYVsic2V0dGluZ3MiXVsibGFuZ3VhZ2UiXSk7fWh0bWxfdG9vbGJhcl9jb250ZW50PXQudHJhbnNsYXRlKGh0bWxfdG9vbGJhcl9jb250ZW50LGFyZWFbInNldHRpbmdzIl1bImxhbmd1YWdlIl0sInRlbXBsYXRlIik7aWYoIXQuaWZyYW1lX3NjcmlwdCl7dC5pZnJhbWVfc2NyaXB0PSIiO2ZvcihpPTA7aTx0LnN1Yl9zY3JpcHRzX3RvX2xvYWQubGVuZ3RoO2krKyl0LmlmcmFtZV9zY3JpcHQrPSc8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iJyt0LmJhc2VVUkwrdC5zdWJfc2NyaXB0c190b19sb2FkW2ldKycuanMiPjwvc2NyaXB0Pic7fWZvcihpPTA7aTxhcmVhWyJzZXR0aW5ncyJdWyJwbHVnaW5zIl0ubGVuZ3RoO2krKyl7aWYoIXQuYWxsX3BsdWdpbnNfbG9hZGVkKXQuaWZyYW1lX3NjcmlwdCs9JzxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSInK3QuYmFzZVVSTCsncGx1Z2lucy8nK2FyZWFbInNldHRpbmdzIl1bInBsdWdpbnMiXVtpXSsnLycrYXJlYVsic2V0dGluZ3MiXVsicGx1Z2lucyJdW2ldKycuanMiPjwvc2NyaXB0Pic7dC5pZnJhbWVfc2NyaXB0Kz0nPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IicrdC5iYXNlVVJMKydwbHVnaW5zLycrYXJlYVsic2V0dGluZ3MiXVsicGx1Z2lucyJdW2ldKycvbGFuZ3MvJythcmVhWyJzZXR0aW5ncyJdWyJsYW5ndWFnZSJdKycuanMiPjwvc2NyaXB0Pic7fWlmKCF0LmlmcmFtZV9jc3Mpe3QuaWZyYW1lX2Nzcz0iPGxpbmsgaHJlZj0nIit0LmJhc2VVUkwrImVkaXRfYXJlYS5jc3MnIHJlbD0nc3R5bGVzaGVldCcgdHlwZT0ndGV4dC9jc3MnIC8+Ijt9dGVtcGxhdGU9dC50ZW1wbGF0ZS5yZXBsYWNlKC9cW19fQkFTRVVSTF9fXF0vZyx0LmJhc2VVUkwpO3RlbXBsYXRlPXRlbXBsYXRlLnJlcGxhY2UoIltfX1RPT0xCQVJfX10iLGh0bWxfdG9vbGJhcl9jb250ZW50KTt0ZW1wbGF0ZT10LnRyYW5zbGF0ZSh0ZW1wbGF0ZSxhcmVhWyJzZXR0aW5ncyJdWyJsYW5ndWFnZSJdLCJ0ZW1wbGF0ZSIpO3RlbXBsYXRlPXRlbXBsYXRlLnJlcGxhY2UoIltfX0NTU1JVTEVTX19dIix0LmlmcmFtZV9jc3MpO3RlbXBsYXRlPXRlbXBsYXRlLnJlcGxhY2UoIltfX0pTQ09ERV9fXSIsdC5pZnJhbWVfc2NyaXB0KTt0ZW1wbGF0ZT10ZW1wbGF0ZS5yZXBsYWNlKCJbX19FQV9WRVJTSU9OX19dIix0LnZlcnNpb24pO2FyZWEudGV4dGFyZWE9ZC5nZXRFbGVtZW50QnlJZChhcmVhWyJzZXR0aW5ncyJdWyJpZCJdKTtlQXNbYXJlYVsic2V0dGluZ3MiXVsiaWQiXV1bInRleHRhcmVhIl09YXJlYS50ZXh0YXJlYTtpZih0eXBlb2Yod2luZG93LmZyYW1lc1siZnJhbWVfIithcmVhWyJzZXR0aW5ncyJdWyJpZCJdXSkhPSd1bmRlZmluZWQnKWRlbGV0ZSB3aW5kb3cuZnJhbWVzWyJmcmFtZV8iK2FyZWFbInNldHRpbmdzIl1bImlkIl1dO2ZhdGhlcj1hcmVhLnRleHRhcmVhLnBhcmVudE5vZGU7Y29udGVudD1kLmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpO2NvbnRlbnQubmFtZT0iZnJhbWVfIithcmVhWyJzZXR0aW5ncyJdWyJpZCJdO2NvbnRlbnQuaWQ9ImZyYW1lXyIrYXJlYVsic2V0dGluZ3MiXVsiaWQiXTtjb250ZW50LnN0eWxlLmJvcmRlcldpZHRoPSIwcHgiO3NldEF0dHJpYnV0ZShjb250ZW50LCJmcmFtZUJvcmRlciIsIjAiKTtjb250ZW50LnN0eWxlLm92ZXJmbG93PSJoaWRkZW4iO2NvbnRlbnQuc3R5bGUuZGlzcGxheT0ibm9uZSI7bmV4dD1hcmVhLnRleHRhcmVhLm5leHRTaWJsaW5nO2lmKG5leHQ9PW51bGwpZmF0aGVyLmFwcGVuZENoaWxkKGNvbnRlbnQpOw0KZWxzZSBmYXRoZXIuaW5zZXJ0QmVmb3JlKGNvbnRlbnQsbmV4dCk7Zj13aW5kb3cuZnJhbWVzWyJmcmFtZV8iK2FyZWFbInNldHRpbmdzIl1bImlkIl1dO2YuZG9jdW1lbnQub3BlbigpO2YuZUFzPWVBcztmLmFyZWFfaWQ9YXJlYVsic2V0dGluZ3MiXVsiaWQiXTtmLmRvY3VtZW50LmFyZWFfaWQ9YXJlYVsic2V0dGluZ3MiXVsiaWQiXTtmLmRvY3VtZW50LndyaXRlKHRlbXBsYXRlKTtmLmRvY3VtZW50LmNsb3NlKCk7fSx0b2dnbGU6ZnVuY3Rpb24oaWQsdG9nZ2xlX3RvKXtpZighdG9nZ2xlX3RvKXRvZ2dsZV90bz0oZUFzW2lkXVsiZGlzcGxheWVkIl09PXRydWUpPyJvZmYiOiJvbiI7aWYoZUFzW2lkXVsiZGlzcGxheWVkIl09PXRydWUmJnRvZ2dsZV90bz09Im9mZiIpe3RoaXMudG9nZ2xlX29mZihpZCk7fQ0KZWxzZSBpZihlQXNbaWRdWyJkaXNwbGF5ZWQiXT09ZmFsc2UmJnRvZ2dsZV90bz09Im9uIil7dGhpcy50b2dnbGVfb24oaWQpO31yZXR1cm4gZmFsc2U7fSx0b2dnbGVfb2ZmOmZ1bmN0aW9uKGlkKXt2YXIgZnM9d2luZG93LmZyYW1lcyxmLHQscGFyTm9kLG54dFNpYixzZWxTdGFydCxzZWxFbmQsc2Nyb2xsVG9wLHNjcm9sbExlZnQ7aWYoZnNbImZyYW1lXyIraWRdKXtmPWZzWyJmcmFtZV8iK2lkXTt0PWVBc1tpZF1bInRleHRhcmVhIl07aWYoZi5lZGl0QXJlYS5mdWxsc2NyZWVuWydpc0Z1bGwnXSlmLmVkaXRBcmVhLnRvZ2dsZV9mdWxsX3NjcmVlbihmYWxzZSk7ZUFzW2lkXVsiZGlzcGxheWVkIl09ZmFsc2U7dC53cmFwPSJvZmYiO3NldEF0dHJpYnV0ZSh0LCJ3cmFwIiwib2ZmIik7cGFyTm9kPXQucGFyZW50Tm9kZTtueHRTaWI9dC5uZXh0U2libGluZztwYXJOb2QucmVtb3ZlQ2hpbGQodCk7cGFyTm9kLmluc2VydEJlZm9yZSh0LG54dFNpYik7dC52YWx1ZT1mLmVkaXRBcmVhLnRleHRhcmVhLnZhbHVlO3NlbFN0YXJ0PWYuZWRpdEFyZWEubGFzdF9zZWxlY3Rpb25bInNlbGVjdGlvblN0YXJ0Il07c2VsRW5kPWYuZWRpdEFyZWEubGFzdF9zZWxlY3Rpb25bInNlbGVjdGlvbkVuZCJdO3Njcm9sbFRvcD1mLmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKS5zY3JvbGxUb3A7c2Nyb2xsTGVmdD1mLmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKS5zY3JvbGxMZWZ0O2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmcmFtZV8iK2lkKS5zdHlsZS5kaXNwbGF5PSdub25lJzt0LnN0eWxlLmRpc3BsYXk9ImlubGluZSI7dHJ5e3QuZm9jdXMoKTt9Y2F0Y2goZSl7fTtpZih0aGlzLmlzSUUpe3Quc2VsZWN0aW9uU3RhcnQ9c2VsU3RhcnQ7dC5zZWxlY3Rpb25FbmQ9c2VsRW5kO3QuZm9jdXNlZD10cnVlO3NldF9JRV9zZWxlY3Rpb24odCk7fQ0KZWxzZXtpZih0aGlzLmlzT3BlcmEmJnRoaXMuaXNPcGVyYSA8IDkuNil7dC5zZXRTZWxlY3Rpb25SYW5nZSgwLDApO310cnl7dC5zZXRTZWxlY3Rpb25SYW5nZShzZWxTdGFydCxzZWxFbmQpO31jYXRjaChlKXt9O310LnNjcm9sbFRvcD1zY3JvbGxUb3A7dC5zY3JvbGxMZWZ0PXNjcm9sbExlZnQ7Zi5lZGl0QXJlYS5leGVjQ29tbWFuZCgidG9nZ2xlX29mZiIpO319LHRvZ2dsZV9vbjpmdW5jdGlvbihpZCl7dmFyIGZzPXdpbmRvdy5mcmFtZXMsZix0LHNlbFN0YXJ0PTAsc2VsRW5kPTAsc2Nyb2xsVG9wPTAsc2Nyb2xsTGVmdD0wLGN1clBvcyxlbGVtO2lmKGZzWyJmcmFtZV8iK2lkXSl7Zj1mc1siZnJhbWVfIitpZF07dD1lQXNbaWRdWyJ0ZXh0YXJlYSJdO2FyZWE9Zi5lZGl0QXJlYTthcmVhLnRleHRhcmVhLnZhbHVlPXQudmFsdWU7Y3VyUG9zPWVBc1tpZF1bInNldHRpbmdzIl1bImN1cnNvcl9wb3NpdGlvbiJdO2lmKHQudXNlX2xhc3Q9PXRydWUpe3NlbFN0YXJ0PXQubGFzdF9zZWxlY3Rpb25TdGFydDtzZWxFbmQ9dC5sYXN0X3NlbGVjdGlvbkVuZDtzY3JvbGxUb3A9dC5sYXN0X3Njcm9sbFRvcDtzY3JvbGxMZWZ0PXQubGFzdF9zY3JvbGxMZWZ0O3QudXNlX2xhc3Q9ZmFsc2U7fQ0KZWxzZSBpZihjdXJQb3M9PSJhdXRvIil7dHJ5e3NlbFN0YXJ0PXQuc2VsZWN0aW9uU3RhcnQ7c2VsRW5kPXQuc2VsZWN0aW9uRW5kO3Njcm9sbFRvcD10LnNjcm9sbFRvcDtzY3JvbGxMZWZ0PXQuc2Nyb2xsTGVmdDt9Y2F0Y2goZXgpe319dGhpcy5zZXRfZWRpdGFyZWFfc2l6ZV9mcm9tX3RleHRhcmVhKGlkLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmcmFtZV8iK2lkKSk7dC5zdHlsZS5kaXNwbGF5PSJub25lIjtkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZnJhbWVfIitpZCkuc3R5bGUuZGlzcGxheT0iaW5saW5lIjthcmVhLmV4ZWNDb21tYW5kKCJmb2N1cyIpO2VBc1tpZF1bImRpc3BsYXllZCJdPXRydWU7YXJlYS5leGVjQ29tbWFuZCgidXBkYXRlX3NpemUiKTtmLmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKS5zY3JvbGxUb3A9c2Nyb2xsVG9wO2YuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdCIpLnNjcm9sbExlZnQ9c2Nyb2xsTGVmdDthcmVhLmFyZWFfc2VsZWN0KHNlbFN0YXJ0LHNlbEVuZC1zZWxTdGFydCk7YXJlYS5leGVjQ29tbWFuZCgidG9nZ2xlX29uIik7fQ0KZWxzZXtlbGVtPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTtlbGVtLmxhc3Rfc2VsZWN0aW9uU3RhcnQ9ZWxlbS5zZWxlY3Rpb25TdGFydDtlbGVtLmxhc3Rfc2VsZWN0aW9uRW5kPWVsZW0uc2VsZWN0aW9uRW5kO2VsZW0ubGFzdF9zY3JvbGxUb3A9ZWxlbS5zY3JvbGxUb3A7ZWxlbS5sYXN0X3Njcm9sbExlZnQ9ZWxlbS5zY3JvbGxMZWZ0O2VsZW0udXNlX2xhc3Q9dHJ1ZTtlQUwuc3RhcnQoaWQpO319LHNldF9lZGl0YXJlYV9zaXplX2Zyb21fdGV4dGFyZWE6ZnVuY3Rpb24oaWQsZnJhbWUpe3ZhciBlbGVtLHdpZHRoLGhlaWdodDtlbGVtPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTt3aWR0aD1NYXRoLm1heChlQXNbaWRdWyJzZXR0aW5ncyJdWyJtaW5fd2lkdGgiXSxlbGVtLm9mZnNldFdpZHRoKSsicHgiO2hlaWdodD1NYXRoLm1heChlQXNbaWRdWyJzZXR0aW5ncyJdWyJtaW5faGVpZ2h0Il0sZWxlbS5vZmZzZXRIZWlnaHQpKyJweCI7aWYoZWxlbS5zdHlsZS53aWR0aC5pbmRleE9mKCIlIikhPS0xKXdpZHRoPWVsZW0uc3R5bGUud2lkdGg7aWYoZWxlbS5zdHlsZS5oZWlnaHQuaW5kZXhPZigiJSIpIT0tMSloZWlnaHQ9ZWxlbS5zdHlsZS5oZWlnaHQ7ZnJhbWUuc3R5bGUud2lkdGg9d2lkdGg7ZnJhbWUuc3R5bGUuaGVpZ2h0PWhlaWdodDt9LHNldF9iYXNlX3VybDpmdW5jdGlvbigpe3ZhciB0PXRoaXMsZWxlbXMsaSxkb2NCYXNlUGF0aDtpZighdGhpcy5iYXNlVVJMKXtlbGVtcz1kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc2NyaXB0Jyk7Zm9yKGk9MDtpPGVsZW1zLmxlbmd0aDtpKyspe2lmKGVsZW1zW2ldLnNyYyYmZWxlbXNbaV0uc3JjLm1hdGNoKC9lZGl0X2FyZWFfW15cXFwvXSokL2kpKXt2YXIgc3JjPXVuZXNjYXBlKGVsZW1zW2ldLnNyYyk7c3JjPXNyYy5zdWJzdHJpbmcoMCxzcmMubGFzdEluZGV4T2YoJy8nKSk7dGhpcy5iYXNlVVJMPXNyYzt0aGlzLmZpbGVfbmFtZT1lbGVtc1tpXS5zcmMuc3Vic3RyKGVsZW1zW2ldLnNyYy5sYXN0SW5kZXhPZigiLyIpKzEpO2JyZWFrO319fWRvY0Jhc2VQYXRoPWRvY3VtZW50LmxvY2F0aW9uLmhyZWY7aWYoZG9jQmFzZVBhdGguaW5kZXhPZignPycpIT0tMSlkb2NCYXNlUGF0aD1kb2NCYXNlUGF0aC5zdWJzdHJpbmcoMCxkb2NCYXNlUGF0aC5pbmRleE9mKCc/JykpO2RvY0Jhc2VQYXRoPWRvY0Jhc2VQYXRoLnN1YnN0cmluZygwLGRvY0Jhc2VQYXRoLmxhc3RJbmRleE9mKCcvJykpO2lmKHQuYmFzZVVSTC5pbmRleE9mKCc6Ly8nKT09LTEmJnQuYmFzZVVSTC5jaGFyQXQoMCkhPScvJyl7dC5iYXNlVVJMPWRvY0Jhc2VQYXRoKyIvIit0LmJhc2VVUkw7fXQuYmFzZVVSTCs9Ii8iO30sZ2V0X2J1dHRvbl9odG1sOmZ1bmN0aW9uKGlkLGltZyxleGVjLGlzRmlsZVNwZWNpZmljLGJhc2VVUkwpe3ZhciBjbWQsaHRtbDtpZighYmFzZVVSTCliYXNlVVJMPXRoaXMuYmFzZVVSTDtjbWQ9J2VkaXRBcmVhLmV4ZWNDb21tYW5kKFwnJytleGVjKydcJyknO2h0bWw9JzxhIGlkPSJhXycraWQrJyIgaHJlZj0iamF2YXNjcmlwdDonK2NtZCsnIiBvbmNsaWNrPSInK2NtZCsnO3JldHVybiBmYWxzZTsiIG9ubW91c2Vkb3duPSJyZXR1cm4gZmFsc2U7IiB0YXJnZXQ9Il9zZWxmIiBmaWxlU3BlY2lmaWM9IicrKGlzRmlsZVNwZWNpZmljPyd5ZXMnOidubycpKyciPic7aHRtbCs9JzxpbWcgaWQ9IicraWQrJyIgc3JjPSInK2Jhc2VVUkwrJ2ltYWdlcy8nK2ltZysnIiB0aXRsZT0ieyQnK2lkKyd9IiB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIGNsYXNzPSJlZGl0QXJlYUJ1dHRvbk5vcm1hbCIgb25tb3VzZW92ZXI9ImVkaXRBcmVhLnN3aXRjaENsYXNzKHRoaXMsXCdlZGl0QXJlYUJ1dHRvbk92ZXJcJyk7IiBvbm1vdXNlb3V0PSJlZGl0QXJlYS5yZXN0b3JlQ2xhc3ModGhpcyk7IiBvbm1vdXNlZG93bj0iZWRpdEFyZWEucmVzdG9yZUFuZFN3aXRjaENsYXNzKHRoaXMsXCdlZGl0QXJlYUJ1dHRvbkRvd25cJyk7IiAvPjwvYT4nO3JldHVybiBodG1sO30sZ2V0X2NvbnRyb2xfaHRtbDpmdW5jdGlvbihidXR0b25fbmFtZSxsYW5nKXt2YXIgdD10aGlzLGksYnV0LGh0bWwsc2k7Zm9yKGk9MDtpPHQuYWR2YW5jZWRfYnV0dG9ucy5sZW5ndGg7aSsrKXtidXQ9dC5hZHZhbmNlZF9idXR0b25zW2ldO2lmKGJ1dFswXT09YnV0dG9uX25hbWUpe3JldHVybiB0LmdldF9idXR0b25faHRtbChidXRbMF0sYnV0WzFdLGJ1dFsyXSxidXRbM10pO319c3dpdGNoKGJ1dHRvbl9uYW1lKXtjYXNlICIqIjpjYXNlICJyZXR1cm4iOnJldHVybiAiPGJyIC8+IjtjYXNlICJ8IjpjYXNlICJzZXBhcmF0b3IiOnJldHVybiAnPGltZyBzcmM9IicrdC5iYXNlVVJMKydpbWFnZXMvc3BhY2VyLmdpZiIgd2lkdGg9IjEiIGhlaWdodD0iMTUiIGNsYXNzPSJlZGl0QXJlYVNlcGFyYXRvckxpbmUiPic7Y2FzZSAic2VsZWN0X2ZvbnQiOmh0bWw9IjxzZWxlY3QgaWQ9J2FyZWFfZm9udF9zaXplJyBvbmNoYW5nZT0namF2YXNjcmlwdDplZGl0QXJlYS5leGVjQ29tbWFuZChcImNoYW5nZV9mb250X3NpemVcIiknIGZpbGVTcGVjaWZpYz0neWVzJz4iO2h0bWwrPSI8b3B0aW9uIHZhbHVlPSctMSc+eyRmb250X3NpemV9PC9vcHRpb24+IjtzaT1bOCw5LDEwLDExLDEyLDE0XTtmb3IoaT0wO2k8c2kubGVuZ3RoO2krKyl7aHRtbCs9IjxvcHRpb24gdmFsdWU9JyIrc2lbaV0rIic+IitzaVtpXSsiIHB0PC9vcHRpb24+Ijt9aHRtbCs9Ijwvc2VsZWN0PiI7cmV0dXJuIGh0bWw7Y2FzZSAic3ludGF4X3NlbGVjdGlvbiI6aHRtbD0iPHNlbGVjdCBpZD0nc3ludGF4X3NlbGVjdGlvbicgb25jaGFuZ2U9J2phdmFzY3JpcHQ6ZWRpdEFyZWEuZXhlY0NvbW1hbmQoXCJjaGFuZ2Vfc3ludGF4XCIsdGhpcy52YWx1ZSknIGZpbGVTcGVjaWZpYz0neWVzJz4iO2h0bWwrPSI8b3B0aW9uIHZhbHVlPSctMSc+eyRzeW50YXhfc2VsZWN0aW9ufTwvb3B0aW9uPiI7aHRtbCs9Ijwvc2VsZWN0PiI7cmV0dXJuIGh0bWw7fXJldHVybiAiPHNwYW4gaWQ9J3RtcF90b29sXyIrYnV0dG9uX25hbWUrIic+WyIrYnV0dG9uX25hbWUrIl08L3NwYW4+Ijt9LGdldF90ZW1wbGF0ZTpmdW5jdGlvbigpe2lmKHRoaXMudGVtcGxhdGU9PSIiKXt2YXIgeGhyX29iamVjdD1udWxsO2lmKHdpbmRvdy5YTUxIdHRwUmVxdWVzdCl4aHJfb2JqZWN0PW5ldyBYTUxIdHRwUmVxdWVzdCgpOw0KZWxzZSBpZih3aW5kb3cuQWN0aXZlWE9iamVjdCl4aHJfb2JqZWN0PW5ldyBBY3RpdmVYT2JqZWN0KCJNaWNyb3NvZnQuWE1MSFRUUCIpOw0KZWxzZXthbGVydCgiWE1MSFRUUFJlcXVlc3Qgbm90IHN1cHBvcnRlZC4gRWRpdEFyZWEgbm90IGxvYWRlZCIpO3JldHVybjt9eGhyX29iamVjdC5vcGVuKCJHRVQiLHRoaXMuYmFzZVVSTCsidGVtcGxhdGUuaHRtbCIsZmFsc2UpO3hocl9vYmplY3Quc2VuZChudWxsKTtpZih4aHJfb2JqZWN0LnJlYWR5U3RhdGU9PTQpdGhpcy50ZW1wbGF0ZT14aHJfb2JqZWN0LnJlc3BvbnNlVGV4dDsNCmVsc2UgdGhpcy5oYXNfZXJyb3IoKTt9fSx0cmFuc2xhdGU6ZnVuY3Rpb24odGV4dCxsYW5nLG1vZGUpe2lmKG1vZGU9PSJ3b3JkIil0ZXh0PWVBTC5nZXRfd29yZF90cmFuc2xhdGlvbih0ZXh0LGxhbmcpOw0KZWxzZSBpZihtb2RlPSJ0ZW1wbGF0ZSIpe2VBTC5jdXJyZW50X2xhbmd1YWdlPWxhbmc7dGV4dD10ZXh0LnJlcGxhY2UoL1x7XCQoW15cfV0rKVx9L2dtLGVBTC50cmFuc2xhdGVfdGVtcGxhdGUpO31yZXR1cm4gdGV4dDt9LHRyYW5zbGF0ZV90ZW1wbGF0ZTpmdW5jdGlvbigpe3JldHVybiBlQUwuZ2V0X3dvcmRfdHJhbnNsYXRpb24oRUFMLnByb3RvdHlwZS50cmFuc2xhdGVfdGVtcGxhdGUuYXJndW1lbnRzWzFdLGVBTC5jdXJyZW50X2xhbmd1YWdlKTt9LGdldF93b3JkX3RyYW5zbGF0aW9uOmZ1bmN0aW9uKHZhbCxsYW5nKXt2YXIgaTtmb3IoaSBpbiBlQUwubGFuZ1tsYW5nXSl7aWYoaT09dmFsKXJldHVybiBlQUwubGFuZ1tsYW5nXVtpXTt9cmV0dXJuICJfIit2YWw7fSxsb2FkX3NjcmlwdDpmdW5jdGlvbih1cmwpe3ZhciB0PXRoaXMsZD1kb2N1bWVudCxzY3JpcHQsaGVhZDtpZih0LmxvYWRlZEZpbGVzW3VybF0pcmV0dXJuO3RyeXtzY3JpcHQ9ZC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTtzY3JpcHQudHlwZT0idGV4dC9qYXZhc2NyaXB0IjtzY3JpcHQuc3JjPXVybDtzY3JpcHQuY2hhcnNldD0iVVRGLTgiO2QuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImhlYWQiKVswXS5hcHBlbmRDaGlsZChzY3JpcHQpO31jYXRjaChlKXtkLndyaXRlKCc8c2MnKydyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iJyt1cmwrJyIgY2hhcnNldD0iVVRGLTgiPjwvc2MnKydyaXB0PicpO310LmxvYWRlZEZpbGVzW3VybF09dHJ1ZTt9LGFkZF9ldmVudDpmdW5jdGlvbihvYmosbmFtZSxoYW5kbGVyKXt0cnl7aWYob2JqLmF0dGFjaEV2ZW50KXtvYmouYXR0YWNoRXZlbnQoIm9uIituYW1lLGhhbmRsZXIpO30NCmVsc2V7b2JqLmFkZEV2ZW50TGlzdGVuZXIobmFtZSxoYW5kbGVyLGZhbHNlKTt9fWNhdGNoKGUpe319LHJlbW92ZV9ldmVudDpmdW5jdGlvbihvYmosbmFtZSxoYW5kbGVyKXt0cnl7aWYob2JqLmRldGFjaEV2ZW50KW9iai5kZXRhY2hFdmVudCgib24iK25hbWUsaGFuZGxlcik7DQplbHNlIG9iai5yZW1vdmVFdmVudExpc3RlbmVyKG5hbWUsaGFuZGxlcixmYWxzZSk7fWNhdGNoKGUpe319LHJlc2V0OmZ1bmN0aW9uKGUpe3ZhciBmb3JtT2JqLGlzX2NoaWxkLGkseDtmb3JtT2JqPWVBTC5pc0lFID8gd2luZG93LmV2ZW50LnNyY0VsZW1lbnQ6ZS50YXJnZXQ7aWYoZm9ybU9iai50YWdOYW1lIT0nRk9STScpZm9ybU9iaj1mb3JtT2JqLmZvcm07Zm9yKGkgaW4gZUFzKXtpc19jaGlsZD1mYWxzZTtmb3IoeD0wO3g8Zm9ybU9iai5lbGVtZW50cy5sZW5ndGg7eCsrKXtpZihmb3JtT2JqLmVsZW1lbnRzW3hdLmlkPT1pKWlzX2NoaWxkPXRydWU7fWlmKHdpbmRvdy5mcmFtZXNbImZyYW1lXyIraV0mJmlzX2NoaWxkJiZlQXNbaV1bImRpc3BsYXllZCJdPT10cnVlKXt2YXIgZXhlYz0nd2luZG93LmZyYW1lc1siZnJhbWVfJytpKyciXS5lZGl0QXJlYS50ZXh0YXJlYS52YWx1ZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiJytpKyciKS52YWx1ZTsnO2V4ZWMrPSd3aW5kb3cuZnJhbWVzWyJmcmFtZV8nK2krJyJdLmVkaXRBcmVhLmV4ZWNDb21tYW5kKCJmb2N1cyIpOyc7ZXhlYys9J3dpbmRvdy5mcmFtZXNbImZyYW1lXycraSsnIl0uZWRpdEFyZWEuY2hlY2tfbGluZV9zZWxlY3Rpb24oKTsnO2V4ZWMrPSd3aW5kb3cuZnJhbWVzWyJmcmFtZV8nK2krJyJdLmVkaXRBcmVhLmV4ZWNDb21tYW5kKCJyZXNldCIpOyc7d2luZG93LnNldFRpbWVvdXQoZXhlYywxMCk7fX1yZXR1cm47fSxzdWJtaXQ6ZnVuY3Rpb24oZSl7dmFyIGZvcm1PYmosaXNfY2hpbGQsZnM9d2luZG93LmZyYW1lcyxpLHg7Zm9ybU9iaj1lQUwuaXNJRSA/IHdpbmRvdy5ldmVudC5zcmNFbGVtZW50OmUudGFyZ2V0O2lmKGZvcm1PYmoudGFnTmFtZSE9J0ZPUk0nKWZvcm1PYmo9Zm9ybU9iai5mb3JtO2ZvcihpIGluIGVBcyl7aXNfY2hpbGQ9ZmFsc2U7Zm9yKHg9MDt4PGZvcm1PYmouZWxlbWVudHMubGVuZ3RoO3grKyl7aWYoZm9ybU9iai5lbGVtZW50c1t4XS5pZD09aSlpc19jaGlsZD10cnVlO31pZihpc19jaGlsZCl7aWYoZnNbImZyYW1lXyIraV0mJmVBc1tpXVsiZGlzcGxheWVkIl09PXRydWUpZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaSkudmFsdWU9ZnNbImZyYW1lXyIraV0uZWRpdEFyZWEudGV4dGFyZWEudmFsdWU7ZUFMLmV4ZWNDb21tYW5kKGksIkVBX3N1Ym1pdCIpO319aWYodHlwZW9mKGZvcm1PYmouZWRpdF9hcmVhX3JlcGxhY2VkX3N1Ym1pdCk9PSJmdW5jdGlvbiIpe3Jlcz1mb3JtT2JqLmVkaXRfYXJlYV9yZXBsYWNlZF9zdWJtaXQoKTtpZihyZXM9PWZhbHNlKXtpZihlQUwuaXNJRSlyZXR1cm4gZmFsc2U7DQplbHNlIGUucHJldmVudERlZmF1bHQoKTt9fXJldHVybjt9LGdldFZhbHVlOmZ1bmN0aW9uKGlkKXtpZih3aW5kb3cuZnJhbWVzWyJmcmFtZV8iK2lkXSYmZUFzW2lkXVsiZGlzcGxheWVkIl09PXRydWUpe3JldHVybiB3aW5kb3cuZnJhbWVzWyJmcmFtZV8iK2lkXS5lZGl0QXJlYS50ZXh0YXJlYS52YWx1ZTt9DQplbHNlIGlmKGVsZW09ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpKXtyZXR1cm4gZWxlbS52YWx1ZTt9cmV0dXJuIGZhbHNlO30sc2V0VmFsdWU6ZnVuY3Rpb24oaWQsbmV3X3ZhbCl7dmFyIGZzPXdpbmRvdy5mcmFtZXM7aWYoKGY9ZnNbImZyYW1lXyIraWRdKSYmZUFzW2lkXVsiZGlzcGxheWVkIl09PXRydWUpe2YuZWRpdEFyZWEudGV4dGFyZWEudmFsdWU9bmV3X3ZhbDtmLmVkaXRBcmVhLmV4ZWNDb21tYW5kKCJmb2N1cyIpO2YuZWRpdEFyZWEuY2hlY2tfbGluZV9zZWxlY3Rpb24oZmFsc2UpO2YuZWRpdEFyZWEuZXhlY0NvbW1hbmQoIm9uY2hhbmdlIik7fQ0KZWxzZSBpZihlbGVtPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKSl7ZWxlbS52YWx1ZT1uZXdfdmFsO319LGdldFNlbGVjdGlvblJhbmdlOmZ1bmN0aW9uKGlkKXt2YXIgc2VsLGVBLGZzPXdpbmRvdy5mcmFtZXM7c2VsPXsic3RhcnQiOjAsImVuZCI6MH07aWYoZnNbImZyYW1lXyIraWRdJiZlQXNbaWRdWyJkaXNwbGF5ZWQiXT09dHJ1ZSl7ZUE9ZnNbImZyYW1lXyIraWRdLmVkaXRBcmVhO3NlbFsic3RhcnQiXT1lQS50ZXh0YXJlYS5zZWxlY3Rpb25TdGFydDtzZWxbImVuZCJdPWVBLnRleHRhcmVhLnNlbGVjdGlvbkVuZDt9DQplbHNlIGlmKGVsZW09ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpKXtzZWw9Z2V0U2VsZWN0aW9uUmFuZ2UoZWxlbSk7fXJldHVybiBzZWw7fSxzZXRTZWxlY3Rpb25SYW5nZTpmdW5jdGlvbihpZCxuZXdfc3RhcnQsbmV3X2VuZCl7dmFyIGZzPXdpbmRvdy5mcmFtZXM7aWYoZnNbImZyYW1lXyIraWRdJiZlQXNbaWRdWyJkaXNwbGF5ZWQiXT09dHJ1ZSl7ZnNbImZyYW1lXyIraWRdLmVkaXRBcmVhLmFyZWFfc2VsZWN0KG5ld19zdGFydCxuZXdfZW5kLW5ld19zdGFydCk7aWYoIXRoaXMuaXNJRSl7ZnNbImZyYW1lXyIraWRdLmVkaXRBcmVhLmNoZWNrX2xpbmVfc2VsZWN0aW9uKGZhbHNlKTtmc1siZnJhbWVfIitpZF0uZWRpdEFyZWEuc2Nyb2xsX3RvX3ZpZXcoKTt9fQ0KZWxzZSBpZihlbGVtPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKSl7c2V0U2VsZWN0aW9uUmFuZ2UoZWxlbSxuZXdfc3RhcnQsbmV3X2VuZCk7fX0sZ2V0U2VsZWN0ZWRUZXh0OmZ1bmN0aW9uKGlkKXt2YXIgc2VsPXRoaXMuZ2V0U2VsZWN0aW9uUmFuZ2UoaWQpO3JldHVybiB0aGlzLmdldFZhbHVlKGlkKS5zdWJzdHJpbmcoc2VsWyJzdGFydCJdLHNlbFsiZW5kIl0pO30sc2V0U2VsZWN0ZWRUZXh0OmZ1bmN0aW9uKGlkLG5ld192YWwpe3ZhciBmcz13aW5kb3cuZnJhbWVzLGQ9ZG9jdW1lbnQsc2VsLHRleHQsc2Nyb2xsVG9wLHNjcm9sbExlZnQsbmV3X3NlbF9lbmQ7bmV3X3ZhbD1uZXdfdmFsLnJlcGxhY2UoL1xyL2csIiIpO3NlbD10aGlzLmdldFNlbGVjdGlvblJhbmdlKGlkKTt0ZXh0PXRoaXMuZ2V0VmFsdWUoaWQpO2lmKGZzWyJmcmFtZV8iK2lkXSYmZUFzW2lkXVsiZGlzcGxheWVkIl09PXRydWUpe3Njcm9sbFRvcD1mc1siZnJhbWVfIitpZF0uZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdCIpLnNjcm9sbFRvcDtzY3JvbGxMZWZ0PWZzWyJmcmFtZV8iK2lkXS5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0Iikuc2Nyb2xsTGVmdDt9DQplbHNle3Njcm9sbFRvcD1kLmdldEVsZW1lbnRCeUlkKGlkKS5zY3JvbGxUb3A7c2Nyb2xsTGVmdD1kLmdldEVsZW1lbnRCeUlkKGlkKS5zY3JvbGxMZWZ0O310ZXh0PXRleHQuc3Vic3RyaW5nKDAsc2VsWyJzdGFydCJdKStuZXdfdmFsK3RleHQuc3Vic3RyaW5nKHNlbFsiZW5kIl0pO3RoaXMuc2V0VmFsdWUoaWQsdGV4dCk7bmV3X3NlbF9lbmQ9c2VsWyJzdGFydCJdK25ld192YWwubGVuZ3RoO3RoaXMuc2V0U2VsZWN0aW9uUmFuZ2UoaWQsc2VsWyJzdGFydCJdLG5ld19zZWxfZW5kKTtpZihuZXdfdmFsICE9dGhpcy5nZXRTZWxlY3RlZFRleHQoaWQpLnJlcGxhY2UoL1xyL2csIiIpKXt0aGlzLnNldFNlbGVjdGlvblJhbmdlKGlkLHNlbFsic3RhcnQiXSxuZXdfc2VsX2VuZCtuZXdfdmFsLnNwbGl0KCJcbiIpLmxlbmd0aC0xKTt9aWYoZnNbImZyYW1lXyIraWRdJiZlQXNbaWRdWyJkaXNwbGF5ZWQiXT09dHJ1ZSl7ZnNbImZyYW1lXyIraWRdLmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKS5zY3JvbGxUb3A9c2Nyb2xsVG9wO2ZzWyJmcmFtZV8iK2lkXS5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0Iikuc2Nyb2xsTGVmdD1zY3JvbGxMZWZ0O2ZzWyJmcmFtZV8iK2lkXS5lZGl0QXJlYS5leGVjQ29tbWFuZCgib25jaGFuZ2UiKTt9DQplbHNle2QuZ2V0RWxlbWVudEJ5SWQoaWQpLnNjcm9sbFRvcD1zY3JvbGxUb3A7ZC5nZXRFbGVtZW50QnlJZChpZCkuc2Nyb2xsTGVmdD1zY3JvbGxMZWZ0O319LGluc2VydFRhZ3M6ZnVuY3Rpb24oaWQsb3Blbl90YWcsY2xvc2VfdGFnKXt2YXIgb2xkX3NlbCxuZXdfc2VsO29sZF9zZWw9dGhpcy5nZXRTZWxlY3Rpb25SYW5nZShpZCk7dGV4dD1vcGVuX3RhZyt0aGlzLmdldFNlbGVjdGVkVGV4dChpZCkrY2xvc2VfdGFnO2VBTC5zZXRTZWxlY3RlZFRleHQoaWQsdGV4dCk7bmV3X3NlbD10aGlzLmdldFNlbGVjdGlvblJhbmdlKGlkKTtpZihvbGRfc2VsWyJlbmQiXSA+IG9sZF9zZWxbInN0YXJ0Il0pdGhpcy5zZXRTZWxlY3Rpb25SYW5nZShpZCxuZXdfc2VsWyJlbmQiXSxuZXdfc2VsWyJlbmQiXSk7DQplbHNlIHRoaXMuc2V0U2VsZWN0aW9uUmFuZ2UoaWQsb2xkX3NlbFsic3RhcnQiXStvcGVuX3RhZy5sZW5ndGgsb2xkX3NlbFsic3RhcnQiXStvcGVuX3RhZy5sZW5ndGgpO30saGlkZTpmdW5jdGlvbihpZCl7dmFyIGZzPXdpbmRvdy5mcmFtZXMsZD1kb2N1bWVudCx0PXRoaXMsc2Nyb2xsVG9wLHNjcm9sbExlZnQsc3BhbjtpZihkLmdldEVsZW1lbnRCeUlkKGlkKSYmIXQuaGlkZGVuW2lkXSl7dC5oaWRkZW5baWRdPXt9O3QuaGlkZGVuW2lkXVsic2VsZWN0aW9uUmFuZ2UiXT10LmdldFNlbGVjdGlvblJhbmdlKGlkKTtpZihkLmdldEVsZW1lbnRCeUlkKGlkKS5zdHlsZS5kaXNwbGF5IT0ibm9uZSIpe3QuaGlkZGVuW2lkXVsic2Nyb2xsVG9wIl09ZC5nZXRFbGVtZW50QnlJZChpZCkuc2Nyb2xsVG9wO3QuaGlkZGVuW2lkXVsic2Nyb2xsTGVmdCJdPWQuZ2V0RWxlbWVudEJ5SWQoaWQpLnNjcm9sbExlZnQ7fWlmKGZzWyJmcmFtZV8iK2lkXSl7dC5oaWRkZW5baWRdWyJ0b2dnbGUiXT1lQXNbaWRdWyJkaXNwbGF5ZWQiXTtpZihmc1siZnJhbWVfIitpZF0mJmVBc1tpZF1bImRpc3BsYXllZCJdPT10cnVlKXtzY3JvbGxUb3A9ZnNbImZyYW1lXyIraWRdLmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKS5zY3JvbGxUb3A7c2Nyb2xsTGVmdD1mc1siZnJhbWVfIitpZF0uZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdCIpLnNjcm9sbExlZnQ7fQ0KZWxzZXtzY3JvbGxUb3A9ZC5nZXRFbGVtZW50QnlJZChpZCkuc2Nyb2xsVG9wO3Njcm9sbExlZnQ9ZC5nZXRFbGVtZW50QnlJZChpZCkuc2Nyb2xsTGVmdDt9dC5oaWRkZW5baWRdWyJzY3JvbGxUb3AiXT1zY3JvbGxUb3A7dC5oaWRkZW5baWRdWyJzY3JvbGxMZWZ0Il09c2Nyb2xsTGVmdDtpZihlQXNbaWRdWyJkaXNwbGF5ZWQiXT09dHJ1ZSllQUwudG9nZ2xlX29mZihpZCk7fXNwYW49ZC5nZXRFbGVtZW50QnlJZCgiRWRpdEFyZWFBcnJvdW5kSW5mb3NfIitpZCk7aWYoc3Bhbil7c3Bhbi5zdHlsZS5kaXNwbGF5PSdub25lJzt9ZC5nZXRFbGVtZW50QnlJZChpZCkuc3R5bGUuZGlzcGxheT0ibm9uZSI7fX0sc2hvdzpmdW5jdGlvbihpZCl7dmFyIGZzPXdpbmRvdy5mcmFtZXMsZD1kb2N1bWVudCx0PXRoaXMsc3BhbjtpZigoZWxlbT1kLmdldEVsZW1lbnRCeUlkKGlkKSkmJnQuaGlkZGVuW2lkXSl7ZWxlbS5zdHlsZS5kaXNwbGF5PSJpbmxpbmUiO2VsZW0uc2Nyb2xsVG9wPXQuaGlkZGVuW2lkXVsic2Nyb2xsVG9wIl07ZWxlbS5zY3JvbGxMZWZ0PXQuaGlkZGVuW2lkXVsic2Nyb2xsTGVmdCJdO3NwYW49ZC5nZXRFbGVtZW50QnlJZCgiRWRpdEFyZWFBcnJvdW5kSW5mb3NfIitpZCk7aWYoc3Bhbil7c3Bhbi5zdHlsZS5kaXNwbGF5PSdpbmxpbmUnO31pZihmc1siZnJhbWVfIitpZF0pe2VsZW0uc3R5bGUuZGlzcGxheT0iaW5saW5lIjtpZih0LmhpZGRlbltpZF1bInRvZ2dsZSJdPT10cnVlKWVBTC50b2dnbGVfb24oaWQpO3Njcm9sbFRvcD10LmhpZGRlbltpZF1bInNjcm9sbFRvcCJdO3Njcm9sbExlZnQ9dC5oaWRkZW5baWRdWyJzY3JvbGxMZWZ0Il07aWYoZnNbImZyYW1lXyIraWRdJiZlQXNbaWRdWyJkaXNwbGF5ZWQiXT09dHJ1ZSl7ZnNbImZyYW1lXyIraWRdLmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKS5zY3JvbGxUb3A9c2Nyb2xsVG9wO2ZzWyJmcmFtZV8iK2lkXS5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0Iikuc2Nyb2xsTGVmdD1zY3JvbGxMZWZ0O30NCmVsc2V7ZWxlbS5zY3JvbGxUb3A9c2Nyb2xsVG9wO2VsZW0uc2Nyb2xsTGVmdD1zY3JvbGxMZWZ0O319c2VsPXQuaGlkZGVuW2lkXVsic2VsZWN0aW9uUmFuZ2UiXTt0LnNldFNlbGVjdGlvblJhbmdlKGlkLHNlbFsic3RhcnQiXSxzZWxbImVuZCJdKTtkZWxldGUgdC5oaWRkZW5baWRdO319LGdldEN1cnJlbnRGaWxlOmZ1bmN0aW9uKGlkKXtyZXR1cm4gdGhpcy5leGVjQ29tbWFuZChpZCwnZ2V0X2ZpbGUnLHRoaXMuZXhlY0NvbW1hbmQoaWQsJ2N1cnJfZmlsZScpKTt9LGdldEZpbGU6ZnVuY3Rpb24oaWQsZmlsZV9pZCl7cmV0dXJuIHRoaXMuZXhlY0NvbW1hbmQoaWQsJ2dldF9maWxlJyxmaWxlX2lkKTt9LGdldEFsbEZpbGVzOmZ1bmN0aW9uKGlkKXtyZXR1cm4gdGhpcy5leGVjQ29tbWFuZChpZCwnZ2V0X2FsbF9maWxlcygpJyk7fSxvcGVuRmlsZTpmdW5jdGlvbihpZCxmaWxlX2luZm9zKXtyZXR1cm4gdGhpcy5leGVjQ29tbWFuZChpZCwnb3Blbl9maWxlJyxmaWxlX2luZm9zKTt9LGNsb3NlRmlsZTpmdW5jdGlvbihpZCxmaWxlX2lkKXtyZXR1cm4gdGhpcy5leGVjQ29tbWFuZChpZCwnY2xvc2VfZmlsZScsZmlsZV9pZCk7fSxzZXRGaWxlRWRpdGVkTW9kZTpmdW5jdGlvbihpZCxmaWxlX2lkLHRvKXt2YXIgcmVnMSxyZWcyO3JlZzE9bmV3IFJlZ0V4cCgnXFxcXCcsJ2cnKTtyZWcyPW5ldyBSZWdFeHAoJyInLCdnJyk7cmV0dXJuIHRoaXMuZXhlY0NvbW1hbmQoaWQsJ3NldF9maWxlX2VkaXRlZF9tb2RlKCInK2ZpbGVfaWQucmVwbGFjZShyZWcxLCdcXFxcJykucmVwbGFjZShyZWcyLCdcXCInKSsnIiwnK3RvKycpJyk7fSxleGVjQ29tbWFuZDpmdW5jdGlvbihpZCxjbWQsZmN0X3BhcmFtKXtzd2l0Y2goY21kKXtjYXNlICJFQV9pbml0IjppZihlQXNbaWRdWydzZXR0aW5ncyddWyJFQV9pbml0X2NhbGxiYWNrIl0ubGVuZ3RoPjApZXZhbChlQXNbaWRdWydzZXR0aW5ncyddWyJFQV9pbml0X2NhbGxiYWNrIl0rIignIitpZCsiJyk7Iik7YnJlYWs7Y2FzZSAiRUFfZGVsZXRlIjppZihlQXNbaWRdWydzZXR0aW5ncyddWyJFQV9kZWxldGVfY2FsbGJhY2siXS5sZW5ndGg+MClldmFsKGVBc1tpZF1bJ3NldHRpbmdzJ11bIkVBX2RlbGV0ZV9jYWxsYmFjayJdKyIoJyIraWQrIicpOyIpO2JyZWFrO2Nhc2UgIkVBX3N1Ym1pdCI6aWYoZUFzW2lkXVsnc2V0dGluZ3MnXVsic3VibWl0X2NhbGxiYWNrIl0ubGVuZ3RoPjApZXZhbChlQXNbaWRdWydzZXR0aW5ncyddWyJzdWJtaXRfY2FsbGJhY2siXSsiKCciK2lkKyInKTsiKTticmVhazt9aWYod2luZG93LmZyYW1lc1siZnJhbWVfIitpZF0mJndpbmRvdy5mcmFtZXNbImZyYW1lXyIraWRdLmVkaXRBcmVhKXtpZihmY3RfcGFyYW0hPXVuZGVmaW5lZClyZXR1cm4gZXZhbCgnd2luZG93LmZyYW1lc1siZnJhbWVfJytpZCsnIl0uZWRpdEFyZWEuJytjbWQrJyhmY3RfcGFyYW0pOycpOw0KZWxzZSByZXR1cm4gZXZhbCgnd2luZG93LmZyYW1lc1siZnJhbWVfJytpZCsnIl0uZWRpdEFyZWEuJytjbWQrJzsnKTt9cmV0dXJuIGZhbHNlO319O3ZhciBlQUw9bmV3IEVBTCgpO3ZhciBlQXM9e307IGZ1bmN0aW9uIGdldEF0dHJpYnV0ZShlbG0sYU5hbWUpe3ZhciBhVmFsdWUsdGFOYW1lLGk7dHJ5e2FWYWx1ZT1lbG0uZ2V0QXR0cmlidXRlKGFOYW1lKTt9Y2F0Y2goZXhlcHQpe31pZighIGFWYWx1ZSl7Zm9yKGk9MDtpIDwgZWxtLmF0dHJpYnV0ZXMubGVuZ3RoO2krKyl7dGFOYW1lPWVsbS5hdHRyaWJ1dGVzW2ldIC5uYW1lLnRvTG93ZXJDYXNlKCk7aWYodGFOYW1lPT1hTmFtZSl7YVZhbHVlPWVsbS5hdHRyaWJ1dGVzW2ldIC52YWx1ZTtyZXR1cm4gYVZhbHVlO319fXJldHVybiBhVmFsdWU7fTtmdW5jdGlvbiBzZXRBdHRyaWJ1dGUoZWxtLGF0dHIsdmFsKXtpZihhdHRyPT0iY2xhc3MiKXtlbG0uc2V0QXR0cmlidXRlKCJjbGFzc05hbWUiLHZhbCk7ZWxtLnNldEF0dHJpYnV0ZSgiY2xhc3MiLHZhbCk7fQ0KZWxzZXtlbG0uc2V0QXR0cmlidXRlKGF0dHIsdmFsKTt9fTtmdW5jdGlvbiBnZXRDaGlsZHJlbihlbGVtLGVsZW1fdHlwZSxlbGVtX2F0dHJpYnV0ZSxlbGVtX2F0dHJpYnV0ZV9tYXRjaCxvcHRpb24sZGVwdGgpe2lmKCFvcHRpb24pdmFyIG9wdGlvbj0ic2luZ2xlIjtpZighZGVwdGgpdmFyIGRlcHRoPS0xO2lmKGVsZW0pe3ZhciBjaGlsZHJlbj1lbGVtLmNoaWxkTm9kZXM7dmFyIHJlc3VsdD1udWxsO3ZhciByZXN1bHRzPVtdO2Zvcih2YXIgeD0wO3g8Y2hpbGRyZW4ubGVuZ3RoO3grKyl7c3RyVGFnTmFtZT1uZXcgU3RyaW5nKGNoaWxkcmVuW3hdLnRhZ05hbWUpO2NoaWxkcmVuX2NsYXNzPSI/IjtpZihzdHJUYWdOYW1lIT0idW5kZWZpbmVkIil7Y2hpbGRfYXR0cmlidXRlPWdldEF0dHJpYnV0ZShjaGlsZHJlblt4XSxlbGVtX2F0dHJpYnV0ZSk7aWYoKHN0clRhZ05hbWUudG9Mb3dlckNhc2UoKT09ZWxlbV90eXBlLnRvTG93ZXJDYXNlKCl8fGVsZW1fdHlwZT09IiIpJiYoZWxlbV9hdHRyaWJ1dGU9PSIifHxjaGlsZF9hdHRyaWJ1dGU9PWVsZW1fYXR0cmlidXRlX21hdGNoKSl7aWYob3B0aW9uPT0iYWxsIil7cmVzdWx0cy5wdXNoKGNoaWxkcmVuW3hdKTt9DQplbHNle3JldHVybiBjaGlsZHJlblt4XTt9fWlmKGRlcHRoIT0wKXtyZXN1bHQ9Z2V0Q2hpbGRyZW4oY2hpbGRyZW5beF0sZWxlbV90eXBlLGVsZW1fYXR0cmlidXRlLGVsZW1fYXR0cmlidXRlX21hdGNoLG9wdGlvbixkZXB0aC0xKTtpZihvcHRpb249PSJhbGwiKXtpZihyZXN1bHQubGVuZ3RoPjApe3Jlc3VsdHM9cmVzdWx0cy5jb25jYXQocmVzdWx0KTt9fQ0KZWxzZSBpZihyZXN1bHQhPW51bGwpe3JldHVybiByZXN1bHQ7fX19fWlmKG9wdGlvbj09ImFsbCIpcmV0dXJuIHJlc3VsdHM7fXJldHVybiBudWxsO307ZnVuY3Rpb24gaXNDaGlsZE9mKGVsZW0scGFyZW50KXtpZihlbGVtKXtpZihlbGVtPT1wYXJlbnQpcmV0dXJuIHRydWU7d2hpbGUoZWxlbS5wYXJlbnROb2RlICE9J3VuZGVmaW5lZCcpe3JldHVybiBpc0NoaWxkT2YoZWxlbS5wYXJlbnROb2RlLHBhcmVudCk7fX1yZXR1cm4gZmFsc2U7fTtmdW5jdGlvbiBnZXRNb3VzZVgoZSl7aWYoZSE9bnVsbCYmdHlwZW9mKGUucGFnZVgpIT0idW5kZWZpbmVkIil7cmV0dXJuIGUucGFnZVg7fQ0KZWxzZXtyZXR1cm4oZSE9bnVsbD9lLng6ZXZlbnQueCkrZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbExlZnQ7fX07ZnVuY3Rpb24gZ2V0TW91c2VZKGUpe2lmKGUhPW51bGwmJnR5cGVvZihlLnBhZ2VZKSE9InVuZGVmaW5lZCIpe3JldHVybiBlLnBhZ2VZO30NCmVsc2V7cmV0dXJuKGUhPW51bGw/ZS55OmV2ZW50LnkpK2RvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3A7fX07ZnVuY3Rpb24gY2FsY3VsZU9mZnNldExlZnQocil7cmV0dXJuIGNhbGN1bGVPZmZzZXQociwib2Zmc2V0TGVmdCIpfTtmdW5jdGlvbiBjYWxjdWxlT2Zmc2V0VG9wKHIpe3JldHVybiBjYWxjdWxlT2Zmc2V0KHIsIm9mZnNldFRvcCIpfTtmdW5jdGlvbiBjYWxjdWxlT2Zmc2V0KGVsZW1lbnQsYXR0cil7dmFyIG9mZnNldD0wO3doaWxlKGVsZW1lbnQpe29mZnNldCs9ZWxlbWVudFthdHRyXTtlbGVtZW50PWVsZW1lbnQub2Zmc2V0UGFyZW50fXJldHVybiBvZmZzZXQ7fTtmdW5jdGlvbiBnZXRfY3NzX3Byb3BlcnR5KGVsZW0scHJvcCl7aWYoZG9jdW1lbnQuZGVmYXVsdFZpZXcpe3JldHVybiBkb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKGVsZW0sbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZShwcm9wKTt9DQplbHNlIGlmKGVsZW0uY3VycmVudFN0eWxlKXt2YXIgcHJvcD1wcm9wLnJlcGxhY2UoLy1cRC9naSxmdW5jdGlvbihzTWF0Y2gpe3JldHVybiBzTWF0Y2guY2hhckF0KHNNYXRjaC5sZW5ndGgtMSkudG9VcHBlckNhc2UoKTt9KTtyZXR1cm4gZWxlbS5jdXJyZW50U3R5bGVbcHJvcF07fQ0KZWxzZSByZXR1cm4gbnVsbDt9dmFyIF9tQ0U7ZnVuY3Rpb24gc3RhcnRfbW92ZV9lbGVtZW50KGUsaWQsZnJhbWUpe3ZhciBlbGVtX2lkPShlLnRhcmdldHx8ZS5zcmNFbGVtZW50KS5pZDtpZihpZCllbGVtX2lkPWlkO2lmKCFmcmFtZSlmcmFtZT13aW5kb3c7aWYoZnJhbWUuZXZlbnQpZT1mcmFtZS5ldmVudDtfbUNFPWZyYW1lLmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1faWQpO19tQ0UuZnJhbWU9ZnJhbWU7ZnJhbWUuZG9jdW1lbnQub25tb3VzZW1vdmU9bW92ZV9lbGVtZW50O2ZyYW1lLmRvY3VtZW50Lm9ubW91c2V1cD1lbmRfbW92ZV9lbGVtZW50O21vdXNlX3g9Z2V0TW91c2VYKGUpO21vdXNlX3k9Z2V0TW91c2VZKGUpO19tQ0Uuc3RhcnRfcG9zX3g9bW91c2VfeC0oX21DRS5zdHlsZS5sZWZ0LnJlcGxhY2UoInB4IiwiIil8fGNhbGN1bGVPZmZzZXRMZWZ0KF9tQ0UpKTtfbUNFLnN0YXJ0X3Bvc195PW1vdXNlX3ktKF9tQ0Uuc3R5bGUudG9wLnJlcGxhY2UoInB4IiwiIil8fGNhbGN1bGVPZmZzZXRUb3AoX21DRSkpO3JldHVybiBmYWxzZTt9O2Z1bmN0aW9uIGVuZF9tb3ZlX2VsZW1lbnQoZSl7X21DRS5mcmFtZS5kb2N1bWVudC5vbm1vdXNlbW92ZT0iIjtfbUNFLmZyYW1lLmRvY3VtZW50Lm9ubW91c2V1cD0iIjtfbUNFPW51bGw7fTtmdW5jdGlvbiBtb3ZlX2VsZW1lbnQoZSl7dmFyIG5ld1RvcCxuZXdMZWZ0LG1heExlZnQ7aWYoX21DRS5mcmFtZSYmX21DRS5mcmFtZS5ldmVudCllPV9tQ0UuZnJhbWUuZXZlbnQ7bmV3VG9wPWdldE1vdXNlWShlKS1fbUNFLnN0YXJ0X3Bvc195O25ld0xlZnQ9Z2V0TW91c2VYKGUpLV9tQ0Uuc3RhcnRfcG9zX3g7bWF4TGVmdD1fbUNFLmZyYW1lLmRvY3VtZW50LmJvZHkub2Zmc2V0V2lkdGgtX21DRS5vZmZzZXRXaWR0aDttYXhfdG9wPV9tQ0UuZnJhbWUuZG9jdW1lbnQuYm9keS5vZmZzZXRIZWlnaHQtX21DRS5vZmZzZXRIZWlnaHQ7bmV3VG9wPU1hdGgubWluKE1hdGgubWF4KDAsbmV3VG9wKSxtYXhfdG9wKTtuZXdMZWZ0PU1hdGgubWluKE1hdGgubWF4KDAsbmV3TGVmdCksbWF4TGVmdCk7X21DRS5zdHlsZS50b3A9bmV3VG9wKyJweCI7X21DRS5zdHlsZS5sZWZ0PW5ld0xlZnQrInB4IjtyZXR1cm4gZmFsc2U7fTt2YXIgbmF2PWVBTC5uYXY7ZnVuY3Rpb24gZ2V0U2VsZWN0aW9uUmFuZ2UodGV4dGFyZWEpe3JldHVybnsic3RhcnQiOnRleHRhcmVhLnNlbGVjdGlvblN0YXJ0LCJlbmQiOnRleHRhcmVhLnNlbGVjdGlvbkVuZH07fTtmdW5jdGlvbiBzZXRTZWxlY3Rpb25SYW5nZSh0LHN0YXJ0LGVuZCl7dC5mb2N1cygpO3N0YXJ0PU1hdGgubWF4KDAsTWF0aC5taW4odC52YWx1ZS5sZW5ndGgsc3RhcnQpKTtlbmQ9TWF0aC5tYXgoc3RhcnQsTWF0aC5taW4odC52YWx1ZS5sZW5ndGgsZW5kKSk7aWYobmF2LmlzT3BlcmEmJm5hdi5pc09wZXJhIDwgOS42KXt0LnNlbGVjdGlvbkVuZD0xO3Quc2VsZWN0aW9uU3RhcnQ9MDt0LnNlbGVjdGlvbkVuZD0xO3Quc2VsZWN0aW9uU3RhcnQ9MDt9dC5zZWxlY3Rpb25TdGFydD1zdGFydDt0LnNlbGVjdGlvbkVuZD1lbmQ7aWYobmF2LmlzSUUpc2V0X0lFX3NlbGVjdGlvbih0KTt9O2Z1bmN0aW9uIGdldF9JRV9zZWxlY3Rpb24odCl7dmFyIGQ9ZG9jdW1lbnQsZGl2LHJhbmdlLHN0b3JlZF9yYW5nZSxlbGVtLHNjcm9sbFRvcCxyZWxhdGl2ZV90b3AsbGluZV9zdGFydCxsaW5lX25iLHJhbmdlX3N0YXJ0LHJhbmdlX2VuZCx0YWI7aWYodCYmdC5mb2N1c2VkKXtpZighdC5lYV9saW5lX2hlaWdodCl7ZGl2PWQuY3JlYXRlRWxlbWVudCgiZGl2Iik7ZGl2LnN0eWxlLmZvbnRGYW1pbHk9Z2V0X2Nzc19wcm9wZXJ0eSh0LCJmb250LWZhbWlseSIpO2Rpdi5zdHlsZS5mb250U2l6ZT1nZXRfY3NzX3Byb3BlcnR5KHQsImZvbnQtc2l6ZSIpO2Rpdi5zdHlsZS52aXNpYmlsaXR5PSJoaWRkZW4iO2Rpdi5pbm5lckhUTUw9IjAiO2QuYm9keS5hcHBlbmRDaGlsZChkaXYpO3QuZWFfbGluZV9oZWlnaHQ9ZGl2Lm9mZnNldEhlaWdodDtkLmJvZHkucmVtb3ZlQ2hpbGQoZGl2KTt9cmFuZ2U9ZC5zZWxlY3Rpb24uY3JlYXRlUmFuZ2UoKTt0cnl7c3RvcmVkX3JhbmdlPXJhbmdlLmR1cGxpY2F0ZSgpO3N0b3JlZF9yYW5nZS5tb3ZlVG9FbGVtZW50VGV4dCh0KTtzdG9yZWRfcmFuZ2Uuc2V0RW5kUG9pbnQoJ0VuZFRvRW5kJyxyYW5nZSk7aWYoc3RvcmVkX3JhbmdlLnBhcmVudEVsZW1lbnQoKT09dCl7ZWxlbT10O3Njcm9sbFRvcD0wO3doaWxlKGVsZW0ucGFyZW50Tm9kZSl7c2Nyb2xsVG9wKz1lbGVtLnNjcm9sbFRvcDtlbGVtPWVsZW0ucGFyZW50Tm9kZTt9cmVsYXRpdmVfdG9wPXJhbmdlLm9mZnNldFRvcC1jYWxjdWxlT2Zmc2V0VG9wKHQpK3Njcm9sbFRvcDtsaW5lX3N0YXJ0PU1hdGgucm91bmQoKHJlbGF0aXZlX3RvcCAvIHQuZWFfbGluZV9oZWlnaHQpKzEpO2xpbmVfbmI9TWF0aC5yb3VuZChyYW5nZS5ib3VuZGluZ0hlaWdodCAvIHQuZWFfbGluZV9oZWlnaHQpO3JhbmdlX3N0YXJ0PXN0b3JlZF9yYW5nZS50ZXh0Lmxlbmd0aC1yYW5nZS50ZXh0Lmxlbmd0aDt0YWI9dC52YWx1ZS5zdWJzdHIoMCxyYW5nZV9zdGFydCkuc3BsaXQoIlxuIik7cmFuZ2Vfc3RhcnQrPShsaW5lX3N0YXJ0LXRhYi5sZW5ndGgpKjI7dC5zZWxlY3Rpb25TdGFydD1yYW5nZV9zdGFydDtyYW5nZV9lbmQ9dC5zZWxlY3Rpb25TdGFydCtyYW5nZS50ZXh0Lmxlbmd0aDt0YWI9dC52YWx1ZS5zdWJzdHIoMCxyYW5nZV9zdGFydCtyYW5nZS50ZXh0Lmxlbmd0aCkuc3BsaXQoIlxuIik7cmFuZ2VfZW5kKz0obGluZV9zdGFydCtsaW5lX25iLTEtdGFiLmxlbmd0aCkqMjt0LnNlbGVjdGlvbkVuZD1yYW5nZV9lbmQ7fX1jYXRjaChlKXt9fWlmKHQmJnQuaWQpe3NldFRpbWVvdXQoImdldF9JRV9zZWxlY3Rpb24oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJyIrdC5pZCsiJykpOyIsNTApO319O2Z1bmN0aW9uIElFX3RleHRhcmVhX2ZvY3VzKCl7ZXZlbnQuc3JjRWxlbWVudC5mb2N1c2VkPXRydWU7fWZ1bmN0aW9uIElFX3RleHRhcmVhX2JsdXIoKXtldmVudC5zcmNFbGVtZW50LmZvY3VzZWQ9ZmFsc2U7fWZ1bmN0aW9uIHNldF9JRV9zZWxlY3Rpb24odCl7dmFyIG5iTGluZVN0YXJ0LG5iTGluZVN0YXJ0LG5iTGluZUVuZCxyYW5nZTtpZighd2luZG93LmNsb3NlZCl7bmJMaW5lU3RhcnQ9dC52YWx1ZS5zdWJzdHIoMCx0LnNlbGVjdGlvblN0YXJ0KS5zcGxpdCgiXG4iKS5sZW5ndGgtMTtuYkxpbmVFbmQ9dC52YWx1ZS5zdWJzdHIoMCx0LnNlbGVjdGlvbkVuZCkuc3BsaXQoIlxuIikubGVuZ3RoLTE7dHJ5e3JhbmdlPWRvY3VtZW50LnNlbGVjdGlvbi5jcmVhdGVSYW5nZSgpO3JhbmdlLm1vdmVUb0VsZW1lbnRUZXh0KHQpO3JhbmdlLnNldEVuZFBvaW50KCdFbmRUb1N0YXJ0JyxyYW5nZSk7cmFuZ2UubW92ZVN0YXJ0KCdjaGFyYWN0ZXInLHQuc2VsZWN0aW9uU3RhcnQtbmJMaW5lU3RhcnQpO3JhbmdlLm1vdmVFbmQoJ2NoYXJhY3RlcicsdC5zZWxlY3Rpb25FbmQtbmJMaW5lRW5kLSh0LnNlbGVjdGlvblN0YXJ0LW5iTGluZVN0YXJ0KSk7cmFuZ2Uuc2VsZWN0KCk7fWNhdGNoKGUpe319fTtlQUwud2FpdGluZ19sb2FkaW5nWyJlbGVtZW50c19mdW5jdGlvbnMuanMiXT0ibG9hZGVkIjsNCiBFQUwucHJvdG90eXBlLnN0YXJ0X3Jlc2l6ZV9hcmVhPWZ1bmN0aW9uKCl7dmFyIGQ9ZG9jdW1lbnQsYSxkaXYsd2lkdGgsaGVpZ2h0LGZhdGhlcjtkLm9ubW91c2V1cD1lQUwuZW5kX3Jlc2l6ZV9hcmVhO2Qub25tb3VzZW1vdmU9ZUFMLnJlc2l6ZV9hcmVhO2VBTC50b2dnbGUoZUFMLnJlc2l6ZVsiaWQiXSk7YT1lQXNbZUFMLnJlc2l6ZVsiaWQiXV1bInRleHRhcmVhIl07ZGl2PWQuZ2V0RWxlbWVudEJ5SWQoImVkaXRfYXJlYV9yZXNpemUiKTtpZighZGl2KXtkaXY9ZC5jcmVhdGVFbGVtZW50KCJkaXYiKTtkaXYuaWQ9ImVkaXRfYXJlYV9yZXNpemUiO2Rpdi5zdHlsZS5ib3JkZXI9ImRhc2hlZCAjODg4ODg4IDFweCI7fXdpZHRoPWEub2Zmc2V0V2lkdGgtMjtoZWlnaHQ9YS5vZmZzZXRIZWlnaHQtMjtkaXYuc3R5bGUuZGlzcGxheT0iYmxvY2siO2Rpdi5zdHlsZS53aWR0aD13aWR0aCsicHgiO2Rpdi5zdHlsZS5oZWlnaHQ9aGVpZ2h0KyJweCI7ZmF0aGVyPWEucGFyZW50Tm9kZTtmYXRoZXIuaW5zZXJ0QmVmb3JlKGRpdixhKTthLnN0eWxlLmRpc3BsYXk9Im5vbmUiO2VBTC5yZXNpemVbInN0YXJ0X3RvcCJdPWNhbGN1bGVPZmZzZXRUb3AoZGl2KTtlQUwucmVzaXplWyJzdGFydF9sZWZ0Il09Y2FsY3VsZU9mZnNldExlZnQoZGl2KTt9O0VBTC5wcm90b3R5cGUuZW5kX3Jlc2l6ZV9hcmVhPWZ1bmN0aW9uKGUpe3ZhciBkPWRvY3VtZW50LGRpdixhLHdpZHRoLGhlaWdodDtkLm9ubW91c2V1cD0iIjtkLm9ubW91c2Vtb3ZlPSIiO2Rpdj1kLmdldEVsZW1lbnRCeUlkKCJlZGl0X2FyZWFfcmVzaXplIik7YT1lQXNbZUFMLnJlc2l6ZVsiaWQiXV1bInRleHRhcmVhIl07d2lkdGg9TWF0aC5tYXgoZUFzW2VBTC5yZXNpemVbImlkIl1dWyJzZXR0aW5ncyJdWyJtaW5fd2lkdGgiXSxkaXYub2Zmc2V0V2lkdGgtNCk7aGVpZ2h0PU1hdGgubWF4KGVBc1tlQUwucmVzaXplWyJpZCJdXVsic2V0dGluZ3MiXVsibWluX2hlaWdodCJdLGRpdi5vZmZzZXRIZWlnaHQtNCk7aWYoZUFMLmlzSUU9PTYpe3dpZHRoLT0yO2hlaWdodC09Mjt9YS5zdHlsZS53aWR0aD13aWR0aCsicHgiO2Euc3R5bGUuaGVpZ2h0PWhlaWdodCsicHgiO2Rpdi5zdHlsZS5kaXNwbGF5PSJub25lIjthLnN0eWxlLmRpc3BsYXk9ImlubGluZSI7YS5zZWxlY3Rpb25TdGFydD1lQUwucmVzaXplWyJzZWxlY3Rpb25TdGFydCJdO2Euc2VsZWN0aW9uRW5kPWVBTC5yZXNpemVbInNlbGVjdGlvbkVuZCJdO2VBTC50b2dnbGUoZUFMLnJlc2l6ZVsiaWQiXSk7cmV0dXJuIGZhbHNlO307RUFMLnByb3RvdHlwZS5yZXNpemVfYXJlYT1mdW5jdGlvbihlKXt2YXIgYWxsb3csbmV3SGVpZ2h0LG5ld1dpZHRoO2FsbG93PWVBc1tlQUwucmVzaXplWyJpZCJdXVsic2V0dGluZ3MiXVsiYWxsb3dfcmVzaXplIl07aWYoYWxsb3c9PSJib3RoInx8YWxsb3c9PSJ5Iil7bmV3SGVpZ2h0PU1hdGgubWF4KDIwLGdldE1vdXNlWShlKS1lQUwucmVzaXplWyJzdGFydF90b3AiXSk7ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVkaXRfYXJlYV9yZXNpemUiKS5zdHlsZS5oZWlnaHQ9bmV3SGVpZ2h0KyJweCI7fWlmKGFsbG93PT0iYm90aCJ8fGFsbG93PT0ieCIpe25ld1dpZHRoPU1hdGgubWF4KDIwLGdldE1vdXNlWChlKS1lQUwucmVzaXplWyJzdGFydF9sZWZ0Il0pO2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJlZGl0X2FyZWFfcmVzaXplIikuc3R5bGUud2lkdGg9bmV3V2lkdGgrInB4Ijt9cmV0dXJuIGZhbHNlO307ZUFMLndhaXRpbmdfbG9hZGluZ1sicmVzaXplX2FyZWEuanMiXT0ibG9hZGVkIjsNCglFQUwucHJvdG90eXBlLmdldF9yZWdleHA9ZnVuY3Rpb24odGV4dF9hcnJheSl7cmVzPSIoXFxiKSgiO2ZvcihpPTA7aTx0ZXh0X2FycmF5Lmxlbmd0aDtpKyspe2lmKGk+MClyZXMrPSJ8IjtyZXMrPXRoaXMuZ2V0X2VzY2FwZWRfcmVnZXhwKHRleHRfYXJyYXlbaV0pO31yZXMrPSIpKFxcYikiO3JlZz1uZXcgUmVnRXhwKHJlcyk7cmV0dXJuIHJlczt9O0VBTC5wcm90b3R5cGUuZ2V0X2VzY2FwZWRfcmVnZXhwPWZ1bmN0aW9uKHN0cil7cmV0dXJuIHN0ci50b1N0cmluZygpLnJlcGxhY2UoLyhcLnxcP3xcKnxcK3xcXHxcKHxcKXxcW3xcXXxcfXxce3xcJHxcXnxcfCkvZywiXFwkMSIpO307RUFMLnByb3RvdHlwZS5pbml0X3N5bnRheF9yZWdleHA9ZnVuY3Rpb24oKXt2YXIgbGFuZ19zdHlsZT17fTtmb3IodmFyIGxhbmcgaW4gdGhpcy5sb2FkX3N5bnRheCl7aWYoIXRoaXMuc3ludGF4W2xhbmddKXt0aGlzLnN5bnRheFtsYW5nXT17fTt0aGlzLnN5bnRheFtsYW5nXVsia2V5d29yZHNfcmVnX2V4cCJdPXt9O3RoaXMua2V5d29yZHNfcmVnX2V4cF9uYj0wO2lmKHRoaXMubG9hZF9zeW50YXhbbGFuZ11bJ0tFWVdPUkRTJ10pe3BhcmFtPSJnIjtpZih0aGlzLmxvYWRfc3ludGF4W2xhbmddWydLRVlXT1JEX0NBU0VfU0VOU0lUSVZFJ109PT1mYWxzZSlwYXJhbSs9ImkiO2Zvcih2YXIgaSBpbiB0aGlzLmxvYWRfc3ludGF4W2xhbmddWydLRVlXT1JEUyddKXtpZih0eXBlb2YodGhpcy5sb2FkX3N5bnRheFtsYW5nXVsnS0VZV09SRFMnXVtpXSk9PSJmdW5jdGlvbiIpY29udGludWU7dGhpcy5zeW50YXhbbGFuZ11bImtleXdvcmRzX3JlZ19leHAiXVtpXT1uZXcgUmVnRXhwKHRoaXMuZ2V0X3JlZ2V4cCh0aGlzLmxvYWRfc3ludGF4W2xhbmddWydLRVlXT1JEUyddW2ldKSxwYXJhbSk7dGhpcy5rZXl3b3Jkc19yZWdfZXhwX25iKys7fX1pZih0aGlzLmxvYWRfc3ludGF4W2xhbmddWydPUEVSQVRPUlMnXSl7dmFyIHN0cj0iIjt2YXIgbmI9MDtmb3IodmFyIGkgaW4gdGhpcy5sb2FkX3N5bnRheFtsYW5nXVsnT1BFUkFUT1JTJ10pe2lmKHR5cGVvZih0aGlzLmxvYWRfc3ludGF4W2xhbmddWydPUEVSQVRPUlMnXVtpXSk9PSJmdW5jdGlvbiIpY29udGludWU7aWYobmI+MClzdHIrPSJ8IjtzdHIrPXRoaXMuZ2V0X2VzY2FwZWRfcmVnZXhwKHRoaXMubG9hZF9zeW50YXhbbGFuZ11bJ09QRVJBVE9SUyddW2ldKTtuYisrO31pZihzdHIubGVuZ3RoPjApdGhpcy5zeW50YXhbbGFuZ11bIm9wZXJhdG9yc19yZWdfZXhwIl09bmV3IFJlZ0V4cCgiKCIrc3RyKyIpIiwiZyIpO31pZih0aGlzLmxvYWRfc3ludGF4W2xhbmddWydERUxJTUlURVJTJ10pe3ZhciBzdHI9IiI7dmFyIG5iPTA7Zm9yKHZhciBpIGluIHRoaXMubG9hZF9zeW50YXhbbGFuZ11bJ0RFTElNSVRFUlMnXSl7aWYodHlwZW9mKHRoaXMubG9hZF9zeW50YXhbbGFuZ11bJ0RFTElNSVRFUlMnXVtpXSk9PSJmdW5jdGlvbiIpY29udGludWU7aWYobmI+MClzdHIrPSJ8IjtzdHIrPXRoaXMuZ2V0X2VzY2FwZWRfcmVnZXhwKHRoaXMubG9hZF9zeW50YXhbbGFuZ11bJ0RFTElNSVRFUlMnXVtpXSk7bmIrKzt9aWYoc3RyLmxlbmd0aD4wKXRoaXMuc3ludGF4W2xhbmddWyJkZWxpbWl0ZXJzX3JlZ19leHAiXT1uZXcgUmVnRXhwKCIoIitzdHIrIikiLCJnIik7fXZhciBzeW50YXhfdHJhY2U9W107dGhpcy5zeW50YXhbbGFuZ11bInF1b3RlcyJdPXt9O3ZhciBxdW90ZV90YWI9W107aWYodGhpcy5sb2FkX3N5bnRheFtsYW5nXVsnUVVPVEVNQVJLUyddKXtmb3IodmFyIGkgaW4gdGhpcy5sb2FkX3N5bnRheFtsYW5nXVsnUVVPVEVNQVJLUyddKXtpZih0eXBlb2YodGhpcy5sb2FkX3N5bnRheFtsYW5nXVsnUVVPVEVNQVJLUyddW2ldKT09ImZ1bmN0aW9uIiljb250aW51ZTt2YXIgeD10aGlzLmdldF9lc2NhcGVkX3JlZ2V4cCh0aGlzLmxvYWRfc3ludGF4W2xhbmddWydRVU9URU1BUktTJ11baV0pO3RoaXMuc3ludGF4W2xhbmddWyJxdW90ZXMiXVt4XT14O3F1b3RlX3RhYltxdW90ZV90YWIubGVuZ3RoXT0iKCIreCsiKFxcXFwufFteIit4KyJdKSooPzoiK3grInwkKSkiO3N5bnRheF90cmFjZS5wdXNoKHgpO319dGhpcy5zeW50YXhbbGFuZ11bImNvbW1lbnRzIl09e307aWYodGhpcy5sb2FkX3N5bnRheFtsYW5nXVsnQ09NTUVOVF9TSU5HTEUnXSl7Zm9yKHZhciBpIGluIHRoaXMubG9hZF9zeW50YXhbbGFuZ11bJ0NPTU1FTlRfU0lOR0xFJ10pe2lmKHR5cGVvZih0aGlzLmxvYWRfc3ludGF4W2xhbmddWydDT01NRU5UX1NJTkdMRSddW2ldKT09ImZ1bmN0aW9uIiljb250aW51ZTt2YXIgeD10aGlzLmdldF9lc2NhcGVkX3JlZ2V4cCh0aGlzLmxvYWRfc3ludGF4W2xhbmddWydDT01NRU5UX1NJTkdMRSddW2ldKTtxdW90ZV90YWJbcXVvdGVfdGFiLmxlbmd0aF09IigiK3grIigufFxccnxcXHQpKihcXG58JCkpIjtzeW50YXhfdHJhY2UucHVzaCh4KTt0aGlzLnN5bnRheFtsYW5nXVsiY29tbWVudHMiXVt4XT0iXG4iO319aWYodGhpcy5sb2FkX3N5bnRheFtsYW5nXVsnQ09NTUVOVF9NVUxUSSddKXtmb3IodmFyIGkgaW4gdGhpcy5sb2FkX3N5bnRheFtsYW5nXVsnQ09NTUVOVF9NVUxUSSddKXtpZih0eXBlb2YodGhpcy5sb2FkX3N5bnRheFtsYW5nXVsnQ09NTUVOVF9NVUxUSSddW2ldKT09ImZ1bmN0aW9uIiljb250aW51ZTt2YXIgc3RhcnQ9dGhpcy5nZXRfZXNjYXBlZF9yZWdleHAoaSk7dmFyIGVuZD10aGlzLmdldF9lc2NhcGVkX3JlZ2V4cCh0aGlzLmxvYWRfc3ludGF4W2xhbmddWydDT01NRU5UX01VTFRJJ11baV0pO3F1b3RlX3RhYltxdW90ZV90YWIubGVuZ3RoXT0iKCIrc3RhcnQrIigufFxcbnxcXHIpKj8oIitlbmQrInwkKSkiO3N5bnRheF90cmFjZS5wdXNoKHN0YXJ0KTtzeW50YXhfdHJhY2UucHVzaChlbmQpO3RoaXMuc3ludGF4W2xhbmddWyJjb21tZW50cyJdW2ldPXRoaXMubG9hZF9zeW50YXhbbGFuZ11bJ0NPTU1FTlRfTVVMVEknXVtpXTt9fWlmKHF1b3RlX3RhYi5sZW5ndGg+MCl0aGlzLnN5bnRheFtsYW5nXVsiY29tbWVudF9vcl9xdW90ZV9yZWdfZXhwIl09bmV3IFJlZ0V4cCgiKCIrcXVvdGVfdGFiLmpvaW4oInwiKSsiKSIsImdpIik7aWYoc3ludGF4X3RyYWNlLmxlbmd0aD4wKXRoaXMuc3ludGF4W2xhbmddWyJzeW50YXhfdHJhY2VfcmVnZXhwIl09bmV3IFJlZ0V4cCgiKCgufFxuKSo/KShcXFxcKigiK3N5bnRheF90cmFjZS5qb2luKCJ8IikrInwkKSkiLCJnbWkiKTtpZih0aGlzLmxvYWRfc3ludGF4W2xhbmddWydTQ1JJUFRfREVMSU1JVEVSUyddKXt0aGlzLnN5bnRheFtsYW5nXVsic2NyaXB0X2RlbGltaXRlcnMiXT17fTtmb3IodmFyIGkgaW4gdGhpcy5sb2FkX3N5bnRheFtsYW5nXVsnU0NSSVBUX0RFTElNSVRFUlMnXSl7aWYodHlwZW9mKHRoaXMubG9hZF9zeW50YXhbbGFuZ11bJ1NDUklQVF9ERUxJTUlURVJTJ11baV0pPT0iZnVuY3Rpb24iKWNvbnRpbnVlO3RoaXMuc3ludGF4W2xhbmddWyJzY3JpcHRfZGVsaW1pdGVycyJdW2ldPXRoaXMubG9hZF9zeW50YXhbbGFuZ11bJ1NDUklQVF9ERUxJTUlURVJTJ107fX10aGlzLnN5bnRheFtsYW5nXVsiY3VzdG9tX3JlZ2V4cCJdPXt9O2lmKHRoaXMubG9hZF9zeW50YXhbbGFuZ11bJ1JFR0VYUFMnXSl7Zm9yKHZhciBpIGluIHRoaXMubG9hZF9zeW50YXhbbGFuZ11bJ1JFR0VYUFMnXSl7aWYodHlwZW9mKHRoaXMubG9hZF9zeW50YXhbbGFuZ11bJ1JFR0VYUFMnXVtpXSk9PSJmdW5jdGlvbiIpY29udGludWU7dmFyIHZhbD10aGlzLmxvYWRfc3ludGF4W2xhbmddWydSRUdFWFBTJ11baV07aWYoIXRoaXMuc3ludGF4W2xhbmddWyJjdXN0b21fcmVnZXhwIl1bdmFsWydleGVjdXRlJ11dKXRoaXMuc3ludGF4W2xhbmddWyJjdXN0b21fcmVnZXhwIl1bdmFsWydleGVjdXRlJ11dPXt9O3RoaXMuc3ludGF4W2xhbmddWyJjdXN0b21fcmVnZXhwIl1bdmFsWydleGVjdXRlJ11dW2ldPXsncmVnZXhwJzpuZXcgUmVnRXhwKHZhbFsnc2VhcmNoJ10sdmFsWydtb2RpZmllcnMnXSksJ2NsYXNzJzp2YWxbJ2NsYXNzJ119O319aWYodGhpcy5sb2FkX3N5bnRheFtsYW5nXVsnU1RZTEVTJ10pe2xhbmdfc3R5bGVbbGFuZ109e307Zm9yKHZhciBpIGluIHRoaXMubG9hZF9zeW50YXhbbGFuZ11bJ1NUWUxFUyddKXtpZih0eXBlb2YodGhpcy5sb2FkX3N5bnRheFtsYW5nXVsnU1RZTEVTJ11baV0pPT0iZnVuY3Rpb24iKWNvbnRpbnVlO2lmKHR5cGVvZih0aGlzLmxvYWRfc3ludGF4W2xhbmddWydTVFlMRVMnXVtpXSkhPSJzdHJpbmciKXtmb3IodmFyIGogaW4gdGhpcy5sb2FkX3N5bnRheFtsYW5nXVsnU1RZTEVTJ11baV0pe2xhbmdfc3R5bGVbbGFuZ11bal09dGhpcy5sb2FkX3N5bnRheFtsYW5nXVsnU1RZTEVTJ11baV1bal07fX0NCmVsc2V7bGFuZ19zdHlsZVtsYW5nXVtpXT10aGlzLmxvYWRfc3ludGF4W2xhbmddWydTVFlMRVMnXVtpXTt9fX12YXIgc3R5bGU9IiI7Zm9yKHZhciBpIGluIGxhbmdfc3R5bGVbbGFuZ10pe2lmKGxhbmdfc3R5bGVbbGFuZ11baV0ubGVuZ3RoPjApe3N0eWxlKz0iLiIrbGFuZysiIC4iK2kudG9Mb3dlckNhc2UoKSsiIHNwYW57IitsYW5nX3N0eWxlW2xhbmddW2ldKyJ9XG4iO3N0eWxlKz0iLiIrbGFuZysiIC4iK2kudG9Mb3dlckNhc2UoKSsieyIrbGFuZ19zdHlsZVtsYW5nXVtpXSsifVxuIjt9fXRoaXMuc3ludGF4W2xhbmddWyJzdHlsZXMiXT1zdHlsZTt9fX07ZUFMLndhaXRpbmdfbG9hZGluZ1sicmVnX3N5bnRheC5qcyJdPSJsb2FkZWQiOw0KdmFyIGVkaXRBcmVhTG9hZGVyPSBlQUw7dmFyIGVkaXRBcmVhcz1lQXM7RWRpdEFyZWFMb2FkZXI9RUFMO2VkaXRBcmVhTG9hZGVyLmlmcmFtZV9zY3JpcHQ9ICI8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+IMODIEVBKCl7dmFyIHQ9w4E7dC5lcnJvcj3DjDt0LmlubGluZVBvcHVwPVt7cG9wdXBfaWQ6XCJhcmVhX3NlYXJjaF9yZXBsYWNlXCIsaWNvbl9pZDpcInNlYXJjaFwifSx7cG9wdXBfaWQ6XCJlZGl0X2FyZWFfaGVscFwiLGljb25faWQ6XCJoZWxwXCJ9XTt0LnBsdWdpbnM9e307dC5saW5lX251bWJlcj0wO8OILmVBTC5zZXRfYnJvd3Nlcl9pbmZvcyh0KTtpZih0LmlzSUUgPj04KXQuaXNJRT03O3Quw4k9e307dC5sYXN0X3RleHRfdG9faGlnaGxpZ2h0PVwiXCI7dC5sYXN0X2hpZ2h0bGlnaHRlZF90ZXh0PVwiXCI7dC5zeW50YXhfbGlzdD1bXTt0LmFsbHJlYWR5X3VzZWRfc3ludGF4PXt9O3QuY2hlY2tfbGluZV9zZWxlY3Rpb25fdGltZXI9NTA7dC7DgkZvY3VzZWQ9w4w7dC5oaWdobGlnaHRfc2VsZWN0aW9uX2xpbmU9bnVsbDt0LnByZXZpb3VzPVtdO3QubmV4dD1bXTt0Lmxhc3RfdW5kbz1cIlwiO3QuZmlsZXM9e307dC5maWxlc0lkQXNzb2M9e307dC5jdXJyX2ZpbGU9Jyc7dC5hc3NvY0JyYWNrZXQ9e307dC5yZXZlcnRBc3NvY0JyYWNrZXQ9e307dC5hc3NvY0JyYWNrZXRbXCIoXCJdPVwiKVwiO3QuYXNzb2NCcmFja2V0W1wie1wiXT1cIn1cIjt0LmFzc29jQnJhY2tldFtcIltcIl09XCJdXCI7Zm9yKHZhciBpbmRleCBpbiB0LmFzc29jQnJhY2tldCl7dC5yZXZlcnRBc3NvY0JyYWNrZXRbdC5hc3NvY0JyYWNrZXRbaW5kZXhdXT1pbmRleDt9dC5pc19lZGl0YWJsZT3Dizt0LmxpbmVIZWlnaHQ9MTY7dC50YWJfbmJfY2hhcj04O2lmKHQuaXNPcGVyYSl0LnRhYl9uYl9jaGFyPTY7dC5pc190YWJiaW5nPcOMO3QuZnVsbHNjcmVlbj17J2lzRnVsbCc6w4x9O3QuaXNSZXNpemluZz3DjDt0LmlkPWFyZWFfaWQ7dC7DhT1lQXNbdC5pZF1bXCLDhVwiXTtpZigoXCJcIit0LsOFWydyZXBsYWNlX3RhYl9ieV9zcGFjZXMnXSkubWF0Y2goL15bMC05XSskLykpe3QudGFiX25iX2NoYXI9dC7DhVsncmVwbGFjZV90YWJfYnlfc3BhY2VzJ107dC50YWJ1bGF0aW9uPVwiXCI7Zm9yKHZhciBpPTA7aTx0LnRhYl9uYl9jaGFyO2krKyl0LnRhYnVsYXRpb24rPVwiIFwiO31cbmVsc2V7dC50YWJ1bGF0aW9uPVwiXHRcIjt9aWYodC7DhVtcInN5bnRheF9zZWxlY3Rpb25fYWxsb3dcIl0mJnQuw4VbXCJzeW50YXhfc2VsZWN0aW9uX2FsbG93XCJdLsOGPjApdC5zeW50YXhfbGlzdD10LsOFW1wic3ludGF4X3NlbGVjdGlvbl9hbGxvd1wiXS5yZXBsYWNlKC8gL2csXCJcIikuc3BsaXQoXCIsXCIpO2lmKHQuw4VbJ3N5bnRheCddKXQuYWxscmVhZHlfdXNlZF9zeW50YXhbdC7DhVsnc3ludGF4J11dPcOLO307RUEuw4QuaW5pdD3Dgygpe3ZhciB0PcOBLGEscz10LsOFO3Quw4I9XyQoXCLDglwiKTt0LmNvbnRhaW5lcj1fJChcImNvbnRhaW5lclwiKTt0LnJlc3VsdD1fJChcInJlc3VsdFwiKTt0LmNvbnRlbnRfaGlnaGxpZ2h0PV8kKFwiY29udGVudF9oaWdobGlnaHRcIik7dC5zZWxlY3Rpb25fZmllbGQ9XyQoXCJzZWxlY3Rpb25fZmllbGRcIik7dC5zZWxlY3Rpb25fZmllbGRfdGV4dD1fJChcInNlbGVjdGlvbl9maWVsZF90ZXh0XCIpO3QucHJvY2Vzc2luZ19zY3JlZW49XyQoXCJwcm9jZXNzaW5nXCIpO3QuZWRpdG9yX2FyZWE9XyQoXCJlZGl0b3JcIik7dC50YWJfYnJvd3NpbmdfYXJlYT1fJChcInRhYl9icm93c2luZ19hcmVhXCIpO3QudGVzdF9mb250X3NpemU9XyQoXCJ0ZXN0X2ZvbnRfc2l6ZVwiKTthPXQuw4I7aWYoIXNbJ2lzX2VkaXRhYmxlJ10pdC5zZXRfZWRpdGFibGUow4wpO3Quc2V0X3Nob3dfbGluZV9jb2xvcnMoc1snc2hvd19saW5lX2NvbG9ycyddKTtpZihzeW50YXhfc2VsZWM9XyQoXCJzeW50YXhfc2VsZWN0aW9uXCIpKXtmb3IodmFyIGk9MDtpPHQuc3ludGF4X2xpc3Quw4Y7aSsrKXt2YXIgc3ludGF4PXQuc3ludGF4X2xpc3RbaV07dmFyIG9wdGlvbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwib3B0aW9uXCIpO29wdGlvbi7Dij1zeW50YXg7aWYoc3ludGF4PT1zWydzeW50YXgnXSlvcHRpb24uc2VsZWN0ZWQ9XCJzZWxlY3RlZFwiO2Rpc3BTeW50YXg9w4guZUFMLnN5bnRheF9kaXNwbGF5X25hbWVbIHN5bnRheCBdO29wdGlvbi5pbm5lckhUTUw9dHlwZW9mKGRpc3BTeW50YXgpPT0ndW5kZWZpbmVkJyA/IHN5bnRheC5zdWJzdHJpbmcoMCwxKS50b1VwcGVyQ2FzZSgpK3N5bnRheC5zdWJzdHJpbmcoMSk6ZGlzcFN5bnRheDtzeW50YXhfc2VsZWMuYXBwZW5kQ2hpbGQob3B0aW9uKTt9fXNwYW5zPcOILmdldENoaWxkcmVuKF8kKFwidG9vbGJhcl8xXCIpLFwic3BhblwiLFwiXCIsXCJcIixcImFsbFwiLC0xKTtmb3IodmFyIGk9MDtpPHNwYW5zLsOGO2krKyl7aWQ9c3BhbnNbaV0uaWQucmVwbGFjZSgvdG1wX3Rvb2xfKC4qKS8sXCIkMVwiKTtpZihpZCE9c3BhbnNbaV0uaWQpe2Zvcih2YXIgaiBpbiB0LnBsdWdpbnMpe2lmKHR5cGVvZih0LnBsdWdpbnNbal0uZ2V0X2NvbnRyb2xfaHRtbCk9PVwiw4NcIil7aHRtbD10LnBsdWdpbnNbal0uZ2V0X2NvbnRyb2xfaHRtbChpZCk7aWYoaHRtbCE9w4wpe2h0bWw9dC5nZXRfdHJhbnNsYXRpb24oaHRtbCxcInRlbXBsYXRlXCIpO3ZhciBuZXdfc3Bhbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwic3BhblwiKTtuZXdfc3Bhbi5pbm5lckhUTUw9aHRtbDt2YXIgZmF0aGVyPXNwYW5zW2ldLsOITm9kZTtzcGFuc1tpXS7DiE5vZGUucmVwbGFjZUNoaWxkKG5ld19zcGFuLHNwYW5zW2ldKTticmVhazt9fX19fWlmKHNbXCJkZWJ1Z1wiXSl7dC5kZWJ1Zz3DiC5kb2N1bWVudC5nZXRFbGVtZW50QnlJZChcImVkaXRfYXJlYV9kZWJ1Z19cIit0LmlkKTt9aWYoXyQoXCJyZWRvXCIpIT1udWxsKXQuc3dpdGNoQ2xhc3NTdGlja3koXyQoXCJyZWRvXCIpLCdlZGl0QXJlYUJ1dHRvbkRpc2FibGVkJyzDiyk7aWYodHlwZW9mKMOILmVBTC5zeW50YXhbc1tcInN5bnRheFwiXV0pIT1cInVuZGVmaW5lZFwiKXtmb3IodmFyIGkgaW4gw4guZUFMLnN5bnRheCl7aWYodHlwZW9mKMOILmVBTC5zeW50YXhbaV1bXCLDh3NcIl0pIT1cInVuZGVmaW5lZFwiKXt0LmFkZF/DhyjDiC5lQUwuc3ludGF4W2ldW1wiw4dzXCJdKTt9fX1pZih0LmlzT3BlcmEpXyQoXCJlZGl0b3JcIikub25rZXlwcmVzcz1rZXlEb3duO1xuZWxzZSBfJChcImVkaXRvclwiKS5vbmtleWRvd249a2V5RG93bjtmb3IodmFyIGk9MDtpPHQuaW5saW5lUG9wdXAuw4Y7aSsrKXtpZih0LmlzT3BlcmEpXyQodC5pbmxpbmVQb3B1cFtpXVtcInBvcHVwX2lkXCJdKS5vbmtleXByZXNzPWtleURvd247XG5lbHNlIF8kKHQuaW5saW5lUG9wdXBbaV1bXCJwb3B1cF9pZFwiXSkub25rZXlkb3duPWtleURvd247fWlmKHNbXCJhbGxvd19yZXNpemVcIl09PVwiYm90aFwifHxzW1wiYWxsb3dfcmVzaXplXCJdPT1cInhcInx8c1tcImFsbG93X3Jlc2l6ZVwiXT09XCJ5XCIpdC5hbGxvd19yZXNpemUow4spO8OILmVBTC50b2dnbGUodC5pZCxcIm9uXCIpO3QuY2hhbmdlX3Ntb290aF9zZWxlY3Rpb25fbW9kZShlQS5zbW9vdGhfc2VsZWN0aW9uKTt0LmV4ZWNDb21tYW5kKFwiY2hhbmdlX2hpZ2hsaWdodFwiLHNbXCJzdGFydF9oaWdobGlnaHRcIl0pO3Quc2V0X2ZvbnQoZUEuw4VbXCJmb250X2ZhbWlseVwiXSxlQS7DhVtcImZvbnRfc2l6ZVwiXSk7Y2hpbGRyZW49w4guZ2V0Q2hpbGRyZW4oZG9jdW1lbnQuYm9keSxcIlwiLFwic2VsZWNcIixcIm5vbmVcIixcImFsbFwiLC0xKTtmb3IodmFyIGk9MDtpPGNoaWxkcmVuLsOGO2krKyl7aWYodC5pc0lFKWNoaWxkcmVuW2ldLnVuc2VsZWN0YWJsZT3DiztcbmVsc2UgY2hpbGRyZW5baV0ub25tb3VzZWRvd249w4MoKXtyZXR1cm4gw4x9O31hLnNwZWxsY2hlY2s9c1tcImdlY2tvX3NwZWxsY2hlY2tcIl07aWYodC5pc0ZpcmVmb3ggPj0nMycpe3QuY29udGVudF9oaWdobGlnaHQuw4cucGFkZGluZ0xlZnQ9XCIxcHhcIjt0LnNlbGVjdGlvbl9maWVsZC7Dhy5wYWRkaW5nTGVmdD1cIjFweFwiO3Quc2VsZWN0aW9uX2ZpZWxkX3RleHQuw4cucGFkZGluZ0xlZnQ9XCIxcHhcIjt9aWYodC5pc0lFJiZ0LmlzSUUgPCA4KXthLsOHLm1hcmdpblRvcD1cIi0xcHhcIjt9aWYodC5pc1NhZmFyaSl7dC5lZGl0b3JfYXJlYS7Dhy5wb3NpdGlvbj1cImFic29sdXRlXCI7YS7Dhy5tYXJnaW5MZWZ0PVwiLTNweFwiO2lmKHQuaXNTYWZhcmkgPCAzLjIpYS7Dhy5tYXJnaW5Ub3A9XCIxcHhcIjt9w4guZUFMLmFkZF9ldmVudCh0LnJlc3VsdCxcImNsaWNrXCIsw4MoZSl7aWYoKGUudGFyZ2V0fHxlLnNyY0VsZW1lbnQpPT1lQS5yZXN1bHQpe2VBLmFyZWFfc2VsZWN0KGVBLsOCLsOKLsOGLDApO319KTtpZihzWydpc19tdWx0aV9maWxlcyddIT3DjCl0Lm9wZW5fZmlsZSh7J2lkJzp0LmN1cnJfZmlsZSwndGV4dCc6Jyd9KTt0LnNldF93b3JkX3dyYXAoc1snd29yZF93cmFwJ10pO3NldFRpbWVvdXQoXCJlQS5mb2N1cygpO2VBLm1hbmFnZV9zaXplKCk7ZUEuZXhlY0NvbW1hbmQoJ0VBX2xvYWQnKTtcIiwxMCk7dC5jaGVja191bmRvKCk7dC5jaGVja19saW5lX3NlbGVjdGlvbijDiyk7dC5zY3JvbGxfdG9fdmlldygpO2Zvcih2YXIgaSBpbiB0LnBsdWdpbnMpe2lmKHR5cGVvZih0LnBsdWdpbnNbaV0ub25sb2FkKT09XCLDg1wiKXQucGx1Z2luc1tpXS5vbmxvYWQoKTt9aWYoc1snZnVsbHNjcmVlbiddPT3Diyl0LnRvZ2dsZV9mdWxsX3NjcmVlbijDiyk7w4guZUFMLmFkZF9ldmVudCh3aW5kb3csXCJyZXNpemVcIixlQS51cGRhdGVfc2l6ZSk7w4guZUFMLmFkZF9ldmVudCjDiC53aW5kb3csXCJyZXNpemVcIixlQS51cGRhdGVfc2l6ZSk7w4guZUFMLmFkZF9ldmVudCh0b3Aud2luZG93LFwicmVzaXplXCIsZUEudXBkYXRlX3NpemUpO8OILmVBTC5hZGRfZXZlbnQod2luZG93LFwidW5sb2FkXCIsw4MoKXtpZijDiC5lQUwpe8OILmVBTC5yZW1vdmVfZXZlbnQow4gud2luZG93LFwicmVzaXplXCIsZUEudXBkYXRlX3NpemUpO8OILmVBTC5yZW1vdmVfZXZlbnQodG9wLndpbmRvdyxcInJlc2l6ZVwiLGVBLnVwZGF0ZV9zaXplKTt9aWYoZUFzW2VBLmlkXSYmZUFzW2VBLmlkXVtcImRpc3BsYXllZFwiXSl7ZUEuZXhlY0NvbW1hbmQoXCJFQV91bmxvYWRcIik7fX0pO307RUEuw4QudXBkYXRlX3NpemU9w4MoKXt2YXIgZD1kb2N1bWVudCxwZD3DiC5kb2N1bWVudCxoZWlnaHQsd2lkdGgscG9wdXAsbWF4TGVmdCxtYXhUb3A7aWYodHlwZW9mIGVBcyAhPSd1bmRlZmluZWQnJiZlQXNbZUEuaWRdJiZlQXNbZUEuaWRdW1wiZGlzcGxheWVkXCJdPT3Diyl7aWYoZUEuZnVsbHNjcmVlblsnaXNGdWxsJ10pe3BkLmdldEVsZW1lbnRCeUlkKFwiZnJhbWVfXCIrZUEuaWQpLsOHLndpZHRoPXBkLmdldEVsZW1lbnRzQnlUYWdOYW1lKFwiaHRtbFwiKVswXS5jbGllbnRXaWR0aCtcInB4XCI7cGQuZ2V0RWxlbWVudEJ5SWQoXCJmcmFtZV9cIitlQS5pZCkuw4cuaGVpZ2h0PXBkLmdldEVsZW1lbnRzQnlUYWdOYW1lKFwiaHRtbFwiKVswXS5jbGllbnRIZWlnaHQrXCJweFwiO31pZihlQS50YWJfYnJvd3NpbmdfYXJlYS7Dhy5kaXNwbGF5PT0nYmxvY2snJiYoIWVBLmlzSUV8fGVBLmlzSUUgPj04KSl7ZUEudGFiX2Jyb3dzaW5nX2FyZWEuw4cuaGVpZ2h0PVwiMHB4XCI7ZUEudGFiX2Jyb3dzaW5nX2FyZWEuw4cuaGVpZ2h0PShlQS5yZXN1bHQub2Zmc2V0VG9wLWVBLnRhYl9icm93c2luZ19hcmVhLm9mZnNldFRvcC0xKStcInB4XCI7fWhlaWdodD1kLmJvZHkub2Zmc2V0SGVpZ2h0LWVBLmdldF9hbGxfdG9vbGJhcl9oZWlnaHQoKS00O2VBLnJlc3VsdC7Dhy5oZWlnaHQ9aGVpZ2h0K1wicHhcIjt3aWR0aD1kLmJvZHkub2Zmc2V0V2lkdGgtMjtlQS5yZXN1bHQuw4cud2lkdGg9d2lkdGgrXCJweFwiO2ZvcihpPTA7aSA8IGVBLmlubGluZVBvcHVwLsOGO2krKyl7cG9wdXA9XyQoZUEuaW5saW5lUG9wdXBbaV1bXCJwb3B1cF9pZFwiXSk7bWF4TGVmdD1kLmJvZHkub2Zmc2V0V2lkdGgtcG9wdXAub2Zmc2V0V2lkdGg7bWF4VG9wPWQuYm9keS5vZmZzZXRIZWlnaHQtcG9wdXAub2Zmc2V0SGVpZ2h0O2lmKHBvcHVwLm9mZnNldFRvcCA+IG1heFRvcClwb3B1cC7Dhy50b3A9bWF4VG9wK1wicHhcIjtpZihwb3B1cC5vZmZzZXRMZWZ0ID4gbWF4TGVmdClwb3B1cC7Dhy5sZWZ0PW1heExlZnQrXCJweFwiO31lQS5tYW5hZ2Vfc2l6ZSjDiyk7ZUEuZml4TGluZXNIZWlnaHQoZUEuw4Iuw4osMCwtMSk7fX07RUEuw4QubWFuYWdlX3NpemU9w4Mob25seU9uZVRpbWUpe2lmKCFlQXNbw4EuaWRdKXJldHVybiDDjDtpZihlQXNbw4EuaWRdW1wiZGlzcGxheWVkXCJdPT3DiyYmw4Euw4JGb2N1c2VkKXt2YXIgYXJlYV9oZWlnaHQscmVzaXplZD3DjDtpZighw4Euw4VbJ3dvcmRfd3JhcCddKXt2YXIgYXJlYV93aWR0aD3DgS7Dgi5zY3JvbGxXaWR0aDthcmVhX2hlaWdodD3DgS7Dgi5zY3JvbGxIZWlnaHQ7aWYow4EuaXNPcGVyYSYmw4EuaXNPcGVyYSA8IDkuNil7YXJlYV93aWR0aD0xMDAwMDt9aWYow4Euw4IucHJldmlvdXNfc2Nyb2xsV2lkdGghPWFyZWFfd2lkdGgpe8OBLmNvbnRhaW5lci7Dhy53aWR0aD1hcmVhX3dpZHRoK1wicHhcIjvDgS7Dgi7Dhy53aWR0aD1hcmVhX3dpZHRoK1wicHhcIjvDgS5jb250ZW50X2hpZ2hsaWdodC7Dhy53aWR0aD1hcmVhX3dpZHRoK1wicHhcIjvDgS7Dgi5wcmV2aW91c19zY3JvbGxXaWR0aD1hcmVhX3dpZHRoO3Jlc2l6ZWQ9w4s7fX1pZijDgS7DhVsnd29yZF93cmFwJ10pe25ld1c9w4Euw4Iub2Zmc2V0V2lkdGg7aWYow4EuaXNGaXJlZm94fHzDgS5pc0lFKW5ld1ctPTI7aWYow4EuaXNTYWZhcmkpbmV3Vy09NjvDgS5jb250ZW50X2hpZ2hsaWdodC7Dhy53aWR0aD3DgS5zZWxlY3Rpb25fZmllbGRfdGV4dC7Dhy53aWR0aD3DgS5zZWxlY3Rpb25fZmllbGQuw4cud2lkdGg9w4EudGVzdF9mb250X3NpemUuw4cud2lkdGg9bmV3VytcInB4XCI7fWlmKMOBLmlzT3BlcmF8fMOBLmlzRmlyZWZveHx8w4EuaXNTYWZhcmkpe2FyZWFfaGVpZ2h0PcOBLmdldExpbmVQb3NUb3Aow4Euw4lbXCJuYl9saW5lXCJdKzEpO31cbmVsc2V7YXJlYV9oZWlnaHQ9w4Euw4Iuc2Nyb2xsSGVpZ2h0O31pZijDgS7Dgi5wcmV2aW91c19zY3JvbGxIZWlnaHQhPWFyZWFfaGVpZ2h0KXvDgS5jb250YWluZXIuw4cuaGVpZ2h0PShhcmVhX2hlaWdodCsyKStcInB4XCI7w4Euw4Iuw4cuaGVpZ2h0PWFyZWFfaGVpZ2h0K1wicHhcIjvDgS5jb250ZW50X2hpZ2hsaWdodC7Dhy5oZWlnaHQ9YXJlYV9oZWlnaHQrXCJweFwiO8OBLsOCLnByZXZpb3VzX3Njcm9sbEhlaWdodD1hcmVhX2hlaWdodDtyZXNpemVkPcOLO31pZijDgS7DiVtcIm5iX2xpbmVcIl0gPj3DgS5saW5lX251bWJlcil7dmFyIG5ld0xpbmVzPScnLGRlc3REaXY9XyQoXCJsaW5lX251bWJlclwiKSxzdGFydD3DgS5saW5lX251bWJlcixlbmQ9w4Euw4lbXCJuYl9saW5lXCJdKzEwMDtmb3IoaT1zdGFydCsxO2kgPCBlbmQ7aSsrKXtuZXdMaW5lcys9JzxkaXYgaWQ9XCJsaW5lXycraSsnXCI+JytpK1wiPC9kaXY+XCI7w4EubGluZV9udW1iZXIrKzt9ZGVzdERpdi5pbm5lckhUTUw9ZGVzdERpdi5pbm5lckhUTUwrbmV3TGluZXM7aWYow4Euw4VbJ3dvcmRfd3JhcCddKXvDgS5maXhMaW5lc0hlaWdodCjDgS7Dgi7DiixzdGFydCwtMSk7fX3DgS7Dgi5zY3JvbGxUb3A9XCIwcHhcIjvDgS7Dgi5zY3JvbGxMZWZ0PVwiMHB4XCI7aWYocmVzaXplZD09w4spe8OBLnNjcm9sbF90b192aWV3KCk7fX1pZighb25seU9uZVRpbWUpc2V0VGltZW91dChcImVBLm1hbmFnZV9zaXplKCk7XCIsMTAwKTt9O0VBLsOELmV4ZWNDb21tYW5kPcODKGNtZCxwYXJhbSl7Zm9yKHZhciBpIGluIMOBLnBsdWdpbnMpe2lmKHR5cGVvZijDgS5wbHVnaW5zW2ldLmV4ZWNDb21tYW5kKT09XCLDg1wiKXtpZighw4EucGx1Z2luc1tpXS5leGVjQ29tbWFuZChjbWQscGFyYW0pKXJldHVybjt9fXN3aXRjaChjbWQpe2Nhc2UgXCJzYXZlXCI6aWYow4Euw4VbXCJzYXZlX2NhbGxiYWNrXCJdLsOGPjApZXZhbChcIsOILlwiK8OBLsOFW1wic2F2ZV9jYWxsYmFja1wiXStcIignXCIrw4EuaWQrXCInLGVBLsOCLsOKKTtcIik7YnJlYWs7Y2FzZSBcImxvYWRcIjppZijDgS7DhVtcImxvYWRfY2FsbGJhY2tcIl0uw4Y+MClldmFsKFwiw4guXCIrw4Euw4VbXCJsb2FkX2NhbGxiYWNrXCJdK1wiKCdcIivDgS5pZCtcIicpO1wiKTticmVhaztjYXNlIFwib25jaGFuZ2VcIjppZijDgS7DhVtcImNoYW5nZV9jYWxsYmFja1wiXS7Dhj4wKWV2YWwoXCLDiC5cIivDgS7DhVtcImNoYW5nZV9jYWxsYmFja1wiXStcIignXCIrw4EuaWQrXCInKTtcIik7YnJlYWs7Y2FzZSBcIkVBX2xvYWRcIjppZijDgS7DhVtcIkVBX2xvYWRfY2FsbGJhY2tcIl0uw4Y+MClldmFsKFwiw4guXCIrw4Euw4VbXCJFQV9sb2FkX2NhbGxiYWNrXCJdK1wiKCdcIivDgS5pZCtcIicpO1wiKTticmVhaztjYXNlIFwiRUFfdW5sb2FkXCI6aWYow4Euw4VbXCJFQV91bmxvYWRfY2FsbGJhY2tcIl0uw4Y+MClldmFsKFwiw4guXCIrw4Euw4VbXCJFQV91bmxvYWRfY2FsbGJhY2tcIl0rXCIoJ1wiK8OBLmlkK1wiJyk7XCIpO2JyZWFrO2Nhc2UgXCJ0b2dnbGVfb25cIjppZijDgS7DhVtcIkVBX3RvZ2dsZV9vbl9jYWxsYmFja1wiXS7Dhj4wKWV2YWwoXCLDiC5cIivDgS7DhVtcIkVBX3RvZ2dsZV9vbl9jYWxsYmFja1wiXStcIignXCIrw4EuaWQrXCInKTtcIik7YnJlYWs7Y2FzZSBcInRvZ2dsZV9vZmZcIjppZijDgS7DhVtcIkVBX3RvZ2dsZV9vZmZfY2FsbGJhY2tcIl0uw4Y+MClldmFsKFwiw4guXCIrw4Euw4VbXCJFQV90b2dnbGVfb2ZmX2NhbGxiYWNrXCJdK1wiKCdcIivDgS5pZCtcIicpO1wiKTticmVhaztjYXNlIFwicmVfc3luY1wiOmlmKCHDgS5kb19oaWdobGlnaHQpYnJlYWs7Y2FzZSBcImZpbGVfc3dpdGNoX29uXCI6aWYow4Euw4VbXCJFQV9maWxlX3N3aXRjaF9vbl9jYWxsYmFja1wiXS7Dhj4wKWV2YWwoXCLDiC5cIivDgS7DhVtcIkVBX2ZpbGVfc3dpdGNoX29uX2NhbGxiYWNrXCJdK1wiKHBhcmFtKTtcIik7YnJlYWs7Y2FzZSBcImZpbGVfc3dpdGNoX29mZlwiOmlmKMOBLsOFW1wiRUFfZmlsZV9zd2l0Y2hfb2ZmX2NhbGxiYWNrXCJdLsOGPjApZXZhbChcIsOILlwiK8OBLsOFW1wiRUFfZmlsZV9zd2l0Y2hfb2ZmX2NhbGxiYWNrXCJdK1wiKHBhcmFtKTtcIik7YnJlYWs7Y2FzZSBcImZpbGVfY2xvc2VcIjppZijDgS7DhVtcIkVBX2ZpbGVfY2xvc2VfY2FsbGJhY2tcIl0uw4Y+MClyZXR1cm4gZXZhbChcIsOILlwiK8OBLsOFW1wiRUFfZmlsZV9jbG9zZV9jYWxsYmFja1wiXStcIihwYXJhbSk7XCIpO2JyZWFrO2RlZmF1bHQ6aWYodHlwZW9mKGV2YWwoXCJlQS5cIitjbWQpKT09XCLDg1wiKXtpZijDgS7DhVtcImRlYnVnXCJdKWV2YWwoXCJlQS5cIitjbWQrXCIocGFyYW0pO1wiKTtcbmVsc2UgdHJ5e2V2YWwoXCJlQS5cIitjbWQrXCIocGFyYW0pO1wiKTt9Y2F0Y2goZSl7fTt9fX07RUEuw4QuZ2V0X3RyYW5zbGF0aW9uPcODKHdvcmQsbW9kZSl7aWYobW9kZT09XCJ0ZW1wbGF0ZVwiKXJldHVybiDDiC5lQUwudHJhbnNsYXRlKHdvcmQsw4Euw4VbXCJsYW5ndWFnZVwiXSxtb2RlKTtcbmVsc2UgcmV0dXJuIMOILmVBTC5nZXRfd29yZF90cmFuc2xhdGlvbih3b3JkLMOBLsOFW1wibGFuZ3VhZ2VcIl0pO307RUEuw4QuYWRkX3BsdWdpbj3DgyhwbHVnX25hbWUscGx1Z19vYmope2Zvcih2YXIgaT0wO2k8w4Euw4VbXCJwbHVnaW5zXCJdLsOGO2krKyl7aWYow4Euw4VbXCJwbHVnaW5zXCJdW2ldPT1wbHVnX25hbWUpe8OBLnBsdWdpbnNbcGx1Z19uYW1lXT1wbHVnX29iajtwbHVnX29iai5iYXNlVVJMPcOILmVBTC5iYXNlVVJMK1wicGx1Z2lucy9cIitwbHVnX25hbWUrXCIvXCI7aWYodHlwZW9mKHBsdWdfb2JqLmluaXQpPT1cIsODXCIpcGx1Z19vYmouaW5pdCgpO319fTtFQS7DhC5sb2FkX2Nzcz3Dgyh1cmwpe3RyeXtsaW5rPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJsaW5rXCIpO2xpbmsudHlwZT1cInRleHQvY3NzXCI7bGluay5yZWw9XCLDh3NoZWV0XCI7bGluay5tZWRpYT1cImFsbFwiO2xpbmsuaHJlZj11cmw7aGVhZD1kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZShcImhlYWRcIik7aGVhZFswXS5hcHBlbmRDaGlsZChsaW5rKTt9Y2F0Y2goZSl7ZG9jdW1lbnQud3JpdGUoXCI8bGluayBocmVmPSdcIit1cmwrXCInIHJlbD0nw4dzaGVldCcgdHlwZT0ndGV4dC9jc3MnIC8+XCIpO319O0VBLsOELmxvYWRfc2NyaXB0PcODKHVybCl7dHJ5e3NjcmlwdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwic2NyaXB0XCIpO3NjcmlwdC50eXBlPVwidGV4dC9qYXZhc2NyaXB0XCI7c2NyaXB0LnNyYz11cmw7c2NyaXB0LmNoYXJzZXQ9XCJVVEYtOFwiO2hlYWQ9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJoZWFkXCIpO2hlYWRbMF0uYXBwZW5kQ2hpbGQoc2NyaXB0KTt9Y2F0Y2goZSl7ZG9jdW1lbnQud3JpdGUoXCI8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCcgc3JjPSdcIit1cmwrXCInIGNoYXJzZXQ9XFxcIlVURi04XFxcIj48XCIrXCIvc2NyaXB0PlwiKTt9fTtFQS7DhC5hZGRfbGFuZz3DgyhsYW5ndWFnZSzDinMpe2lmKCHDiC5lQUwubGFuZ1tsYW5ndWFnZV0pw4guZUFMLmxhbmdbbGFuZ3VhZ2VdPXt9O2Zvcih2YXIgaSBpbiDDinMpw4guZUFMLmxhbmdbbGFuZ3VhZ2VdW2ldPcOKc1tpXTt9O8ODIF8kKGlkKXtyZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpO307dmFyIGVBPW5ldyBFQSgpO8OILmVBTC5hZGRfZXZlbnQod2luZG93LFwibG9hZFwiLGluaXQpO8ODIGluaXQoKXtzZXRUaW1lb3V0KFwiZUEuaW5pdCgpO1wiLDEwKTt9OwlFQS7DhC5mb2N1cz3Dgygpe8OBLsOCLmZvY3VzKCk7w4Euw4JGb2N1c2VkPcOLO307RUEuw4QuY2hlY2tfbGluZV9zZWxlY3Rpb249w4ModGltZXJfY2hlY2t1cCl7dmFyIGNoYW5nZXMsaW5mb3MsbmV3X3RvcCxuZXdfd2lkdGgsaTt2YXIgdDE9dDI9dDJfMT10Mz10TGluZXM9dGVuZD1uZXcgRGF0ZSgpLmdldFRpbWUoKTtpZighZUFzW8OBLmlkXSlyZXR1cm4gw4w7aWYoIcOBLnNtb290aF9zZWxlY3Rpb24mJiHDgS5kb19oaWdobGlnaHQpe31cbmVsc2UgaWYow4Euw4JGb2N1c2VkJiZlQXNbw4EuaWRdW1wiZGlzcGxheWVkXCJdPT3DiyYmw4EuaXNSZXNpemluZz09w4wpe2luZm9zPcOBLmdldF9zZWxlY3Rpb25faW5mb3MoKTtjaGFuZ2VzPcOBLmNoZWNrVGV4dEV2b2x1dGlvbih0eXBlb2Yow4Euw4lbJ2Z1bGxfdGV4dCddKT09J3VuZGVmaW5lZCcgPyAnJzrDgS7DiVsnZnVsbF90ZXh0J10saW5mb3NbJ2Z1bGxfdGV4dCddKTt0Mj1uZXcgRGF0ZSgpLmdldFRpbWUoKTtpZijDgS7DiVtcImxpbmVfc3RhcnRcIl0gIT1pbmZvc1tcImxpbmVfc3RhcnRcIl18fMOBLsOJW1wibGluZV9uYlwiXSAhPWluZm9zW1wibGluZV9uYlwiXXx8aW5mb3NbXCJmdWxsX3RleHRcIl0gIT3DgS7DiVtcImZ1bGxfdGV4dFwiXXx8w4EucmVsb2FkX2hpZ2hsaWdodHx8w4Euw4lbXCJzZWxlY3Rpb25TdGFydFwiXSAhPWluZm9zW1wic2VsZWN0aW9uU3RhcnRcIl18fMOBLsOJW1wic2VsZWN0aW9uRW5kXCJdICE9aW5mb3NbXCJzZWxlY3Rpb25FbmRcIl18fCF0aW1lcl9jaGVja3VwKXtuZXdfdG9wPcOBLmdldExpbmVQb3NUb3AoaW5mb3NbXCJsaW5lX3N0YXJ0XCJdKTtuZXdfd2lkdGg9TWF0aC5tYXgow4Euw4Iuc2Nyb2xsV2lkdGgsw4EuY29udGFpbmVyLmNsaWVudFdpZHRoLTUwKTvDgS5zZWxlY3Rpb25fZmllbGQuw4cudG9wPcOBLnNlbGVjdGlvbl9maWVsZF90ZXh0LsOHLnRvcD1uZXdfdG9wK1wicHhcIjtpZighw4Euw4VbJ3dvcmRfd3JhcCddKXvDgS5zZWxlY3Rpb25fZmllbGQuw4cud2lkdGg9w4Euc2VsZWN0aW9uX2ZpZWxkX3RleHQuw4cud2lkdGg9w4EudGVzdF9mb250X3NpemUuw4cud2lkdGg9bmV3X3dpZHRoK1wicHhcIjt9aWYow4EuZG9faGlnaGxpZ2h0PT3Diyl7dmFyIGN1cnJfdGV4dD1pbmZvc1tcImZ1bGxfdGV4dFwiXS5zcGxpdChcIlxcblwiKTt2YXIgY29udGVudD1cIlwiO3ZhciBzdGFydD1NYXRoLm1heCgwLGluZm9zW1wibGluZV9zdGFydFwiXS0xKTt2YXIgZW5kPU1hdGgubWluKGN1cnJfdGV4dC7DhixpbmZvc1tcImxpbmVfc3RhcnRcIl0raW5mb3NbXCJsaW5lX25iXCJdLTEpO2ZvcihpPXN0YXJ0O2k8IGVuZDtpKyspe2NvbnRlbnQrPWN1cnJfdGV4dFtpXStcIlxcblwiO31zZWxMZW5ndGg9aW5mb3NbJ3NlbGVjdGlvbkVuZCddLWluZm9zWydzZWxlY3Rpb25TdGFydCddO2NvbnRlbnQ9Y29udGVudC5zdWJzdHIoMCxpbmZvc1tcImN1cnJfcG9zXCJdLTEpK1wiXFxyXFxyXCIrY29udGVudC5zdWJzdHIoaW5mb3NbXCJjdXJyX3Bvc1wiXS0xLHNlbExlbmd0aCkrXCJcXHJcXHJcIitjb250ZW50LnN1YnN0cihpbmZvc1tcImN1cnJfcG9zXCJdLTErc2VsTGVuZ3RoKTtjb250ZW50PSc8c3Bhbj4nK2NvbnRlbnQucmVwbGFjZSgvJi9nLFwiJmFtcDtcIikucmVwbGFjZSgvPC9nLFwiJmx0O1wiKS5yZXBsYWNlKC8+L2csXCImZ3Q7XCIpLnJlcGxhY2UoXCJcXHJcXHJcIiwnPC9zcGFuPjxzdHJvbmc+JykucmVwbGFjZShcIlxcclxcclwiLCc8L3N0cm9uZz48c3Bhbj4nKSsnPC9zcGFuPic7aWYow4EuaXNJRXx8KMOBLmlzT3BlcmEmJsOBLmlzT3BlcmEgPCA5LjYpKXvDgS5zZWxlY3Rpb25fZmllbGQuaW5uZXJIVE1MPVwiPHByZT5cIitjb250ZW50LnJlcGxhY2UoL15cXHI/XFxuLyxcIjxicj5cIikrXCI8L3ByZT5cIjt9XG5lbHNle8OBLnNlbGVjdGlvbl9maWVsZC5pbm5lckhUTUw9Y29udGVudDt9w4Euc2VsZWN0aW9uX2ZpZWxkX3RleHQuaW5uZXJIVE1MPcOBLnNlbGVjdGlvbl9maWVsZC5pbm5lckhUTUw7dDJfMT1uZXcgRGF0ZSgpLmdldFRpbWUoKTtpZijDgS5yZWxvYWRfaGlnaGxpZ2h0fHwoaW5mb3NbXCJmdWxsX3RleHRcIl0gIT3DgS5sYXN0X3RleHRfdG9faGlnaGxpZ2h0JiYow4Euw4lbXCJsaW5lX3N0YXJ0XCJdIT1pbmZvc1tcImxpbmVfc3RhcnRcIl18fMOBLnNob3dfbGluZV9jb2xvcnN8fMOBLsOFWyd3b3JkX3dyYXAnXXx8w4Euw4lbXCJsaW5lX25iXCJdIT1pbmZvc1tcImxpbmVfbmJcIl18fMOBLsOJW1wibmJfbGluZVwiXSE9aW5mb3NbXCJuYl9saW5lXCJdKSkpe8OBLm1hal9oaWdobGlnaHQoaW5mb3MpO319fXQzPW5ldyBEYXRlKCkuZ2V0VGltZSgpO2lmKMOBLsOFWyd3b3JkX3dyYXAnXSYmaW5mb3NbXCJmdWxsX3RleHRcIl0gIT3DgS7DiVtcImZ1bGxfdGV4dFwiXSl7aWYoY2hhbmdlcy5uZXdUZXh0LnNwbGl0KFwiXFxuXCIpLsOGPT0xJibDgS7DiVsnbmJfbGluZSddJiZpbmZvc1snbmJfbGluZSddPT3DgS7DiVsnbmJfbGluZSddKXvDgS5maXhMaW5lc0hlaWdodChpbmZvc1snZnVsbF90ZXh0J10sY2hhbmdlcy5saW5lU3RhcnQsY2hhbmdlcy5saW5lU3RhcnQpO31cbmVsc2V7w4EuZml4TGluZXNIZWlnaHQoaW5mb3NbJ2Z1bGxfdGV4dCddLGNoYW5nZXMubGluZVN0YXJ0LC0xKTt9fXRMaW5lcz1uZXcgRGF0ZSgpLmdldFRpbWUoKTtpZihpbmZvc1tcImxpbmVfc3RhcnRcIl0gIT3DgS7DiVtcImxpbmVfc3RhcnRcIl18fGluZm9zW1wiY3Vycl9wb3NcIl0gIT3DgS7DiVtcImN1cnJfcG9zXCJdfHxpbmZvc1tcImZ1bGxfdGV4dFwiXS7DhiE9w4Euw4lbXCJmdWxsX3RleHRcIl0uw4Z8fMOBLnJlbG9hZF9oaWdobGlnaHR8fCF0aW1lcl9jaGVja3VwKXt2YXIgc2VsZWNfY2hhcj1pbmZvc1tcImN1cnJfbGluZVwiXS5jaGFyQXQoaW5mb3NbXCJjdXJyX3Bvc1wiXS0xKTt2YXIgbm9fcmVhbF9tb3ZlPcOLO2lmKGluZm9zW1wibGluZV9uYlwiXT09MSYmKMOBLmFzc29jQnJhY2tldFtzZWxlY19jaGFyXXx8w4EucmV2ZXJ0QXNzb2NCcmFja2V0W3NlbGVjX2NoYXJdKSl7bm9fcmVhbF9tb3ZlPcOMO2lmKMOBLmZpbmRFbmRCcmFja2V0KGluZm9zLHNlbGVjX2NoYXIpPT09w4spe18kKFwiZW5kX2JyYWNrZXRcIikuw4cudmlzaWJpbGl0eT1cInZpc2libGVcIjtfJChcImN1cnNvcl9wb3NcIikuw4cudmlzaWJpbGl0eT1cInZpc2libGVcIjtfJChcImN1cnNvcl9wb3NcIikuaW5uZXJIVE1MPXNlbGVjX2NoYXI7XyQoXCJlbmRfYnJhY2tldFwiKS5pbm5lckhUTUw9KMOBLmFzc29jQnJhY2tldFtzZWxlY19jaGFyXXx8w4EucmV2ZXJ0QXNzb2NCcmFja2V0W3NlbGVjX2NoYXJdKTt9XG5lbHNle18kKFwiZW5kX2JyYWNrZXRcIikuw4cudmlzaWJpbGl0eT1cImhpZGRlblwiO18kKFwiY3Vyc29yX3Bvc1wiKS7Dhy52aXNpYmlsaXR5PVwiaGlkZGVuXCI7fX1cbmVsc2V7XyQoXCJjdXJzb3JfcG9zXCIpLsOHLnZpc2liaWxpdHk9XCJoaWRkZW5cIjtfJChcImVuZF9icmFja2V0XCIpLsOHLnZpc2liaWxpdHk9XCJoaWRkZW5cIjt9w4EuZGlzcGxheVRvQ3Vyc29yUG9zaXRpb24oXCJjdXJzb3JfcG9zXCIsaW5mb3NbXCJsaW5lX3N0YXJ0XCJdLGluZm9zW1wiY3Vycl9wb3NcIl0tMSxpbmZvc1tcImN1cnJfbGluZVwiXSxub19yZWFsX21vdmUpO2lmKGluZm9zW1wibGluZV9uYlwiXT09MSYmaW5mb3NbXCJsaW5lX3N0YXJ0XCJdIT3DgS7DiVtcImxpbmVfc3RhcnRcIl0pw4Euc2Nyb2xsX3RvX3ZpZXcoKTt9w4Euw4k9aW5mb3M7fXRlbmQ9bmV3IERhdGUoKS5nZXRUaW1lKCk7aWYodGltZXJfY2hlY2t1cCl7c2V0VGltZW91dChcImVBLmNoZWNrX2xpbmVfc2VsZWN0aW9uKMOLKVwiLMOBLmNoZWNrX2xpbmVfc2VsZWN0aW9uX3RpbWVyKTt9fTtFQS7DhC5nZXRfc2VsZWN0aW9uX2luZm9zPcODKCl7dmFyIHNlbD17fSxzdGFydCxlbmQsbGVuLHN0cjvDgS5nZXRJRVNlbGVjdGlvbigpO3N0YXJ0PcOBLsOCLnNlbGVjdGlvblN0YXJ0O2VuZD3DgS7Dgi5zZWxlY3Rpb25FbmQ7aWYow4Euw4lbXCJzZWxlY3Rpb25TdGFydFwiXT09c3RhcnQmJsOBLsOJW1wic2VsZWN0aW9uRW5kXCJdPT1lbmQmJsOBLsOJW1wiZnVsbF90ZXh0XCJdPT3DgS7Dgi7Diil7cmV0dXJuIMOBLsOJO31pZijDgS50YWJ1bGF0aW9uIT1cIlx0XCImJsOBLsOCLsOKLmluZGV4T2YoXCJcdFwiKSE9LTEpe2xlbj3DgS7Dgi7Dii7DhjvDgS7Dgi7Dij3DgS5yZXBsYWNlX3RhYijDgS7Dgi7Diik7c3RhcnQ9ZW5kPXN0YXJ0KyjDgS7Dgi7Dii7Dhi1sZW4pO8OBLmFyZWFfc2VsZWN0KHN0YXJ0LDApO31zZWxbXCJzZWxlY3Rpb25TdGFydFwiXT1zdGFydDtzZWxbXCJzZWxlY3Rpb25FbmRcIl09ZW5kO3NlbFtcImZ1bGxfdGV4dFwiXT3DgS7Dgi7DijtzZWxbXCJsaW5lX3N0YXJ0XCJdPTE7c2VsW1wibGluZV9uYlwiXT0xO3NlbFtcImN1cnJfcG9zXCJdPTA7c2VsW1wiY3Vycl9saW5lXCJdPVwiXCI7c2VsW1wiaW5kZXhPZkN1cnNvclwiXT0wO3NlbFtcInNlbGVjX2RpcmVjdGlvblwiXT3DgS7DiVtcInNlbGVjX2RpcmVjdGlvblwiXTt2YXIgc3BsaXRUYWI9c2VsW1wiZnVsbF90ZXh0XCJdLnNwbGl0KFwiXFxuXCIpO3ZhciBuYkxpbmU9TWF0aC5tYXgoMCxzcGxpdFRhYi7Dhik7dmFyIG5iQ2hhcj1NYXRoLm1heCgwLHNlbFtcImZ1bGxfdGV4dFwiXS7Dhi0obmJMaW5lLTEpKTtpZihzZWxbXCJmdWxsX3RleHRcIl0uaW5kZXhPZihcIlxcclwiKSE9LTEpbmJDaGFyPW5iQ2hhci0obmJMaW5lLTEpO3NlbFtcIm5iX2xpbmVcIl09bmJMaW5lO3NlbFtcIm5iX2NoYXJcIl09bmJDaGFyO2lmKHN0YXJ0PjApe3N0cj1zZWxbXCJmdWxsX3RleHRcIl0uc3Vic3RyKDAsc3RhcnQpO3NlbFtcImN1cnJfcG9zXCJdPXN0YXJ0LXN0ci5sYXN0SW5kZXhPZihcIlxcblwiKTtzZWxbXCJsaW5lX3N0YXJ0XCJdPU1hdGgubWF4KDEsc3RyLnNwbGl0KFwiXFxuXCIpLsOGKTt9XG5lbHNle3NlbFtcImN1cnJfcG9zXCJdPTE7fWlmKGVuZD5zdGFydCl7c2VsW1wibGluZV9uYlwiXT1zZWxbXCJmdWxsX3RleHRcIl0uc3Vic3RyaW5nKHN0YXJ0LGVuZCkuc3BsaXQoXCJcXG5cIikuw4Y7fXNlbFtcImluZGV4T2ZDdXJzb3JcIl09c3RhcnQ7c2VsW1wiY3Vycl9saW5lXCJdPXNwbGl0VGFiW01hdGgubWF4KDAsc2VsW1wibGluZV9zdGFydFwiXS0xKV07aWYoc2VsW1wic2VsZWN0aW9uU3RhcnRcIl09PcOBLsOJW1wic2VsZWN0aW9uU3RhcnRcIl0pe2lmKHNlbFtcInNlbGVjdGlvbkVuZFwiXT7DgS7DiVtcInNlbGVjdGlvbkVuZFwiXSlzZWxbXCJzZWxlY19kaXJlY3Rpb25cIl09XCJkb3duXCI7XG5lbHNlIGlmKHNlbFtcInNlbGVjdGlvbkVuZFwiXT09w4Euw4lbXCJzZWxlY3Rpb25TdGFydFwiXSlzZWxbXCJzZWxlY19kaXJlY3Rpb25cIl09w4Euw4lbXCJzZWxlY19kaXJlY3Rpb25cIl07fVxuZWxzZSBpZihzZWxbXCJzZWxlY3Rpb25TdGFydFwiXT09w4Euw4lbXCJzZWxlY3Rpb25FbmRcIl0mJnNlbFtcInNlbGVjdGlvbkVuZFwiXT7DgS7DiVtcInNlbGVjdGlvbkVuZFwiXSl7c2VsW1wic2VsZWNfZGlyZWN0aW9uXCJdPVwiZG93blwiO31cbmVsc2V7c2VsW1wic2VsZWNfZGlyZWN0aW9uXCJdPVwidXBcIjt9XyQoXCJuYkxpbmVcIikuaW5uZXJIVE1MPW5iTGluZTtfJChcIm5iQ2hhclwiKS5pbm5lckhUTUw9bmJDaGFyO18kKFwibGluZVBvc1wiKS5pbm5lckhUTUw9c2VsW1wibGluZV9zdGFydFwiXTtfJChcImN1cnJQb3NcIikuaW5uZXJIVE1MPXNlbFtcImN1cnJfcG9zXCJdO3JldHVybiBzZWw7fTtFQS7DhC5nZXRJRVNlbGVjdGlvbj3Dgygpe3ZhciBzZWxlY3Rpb25TdGFydCxzZWxlY3Rpb25FbmQscmFuZ2Usc3RvcmVkX3JhbmdlO2lmKCHDgS5pc0lFKXJldHVybiDDjDtpZijDgS7DhVsnd29yZF93cmFwJ10pw4Euw4Iud3JhcD0nb2ZmJzt0cnl7cmFuZ2U9ZG9jdW1lbnQuc2VsZWN0aW9uLmNyZWF0ZVJhbmdlKCk7c3RvcmVkX3JhbmdlPXJhbmdlLmR1cGxpY2F0ZSgpO3N0b3JlZF9yYW5nZS5tb3ZlVG9FbGVtZW50VGV4dCjDgS7Dgik7c3RvcmVkX3JhbmdlLnNldEVuZFBvaW50KCdFbmRUb0VuZCcscmFuZ2UpO2lmKHN0b3JlZF9yYW5nZS7DiEVsZW1lbnQoKSE9w4Euw4IpdGhyb3cgXCJpbnZhbGlkIGZvY3VzXCI7dmFyIHNjcm9sbFRvcD3DgS5yZXN1bHQuc2Nyb2xsVG9wK2RvY3VtZW50LmJvZHkuc2Nyb2xsVG9wO3ZhciByZWxhdGl2ZV90b3A9cmFuZ2Uub2Zmc2V0VG9wLcOILmNhbGN1bGVPZmZzZXRUb3Aow4Euw4IpK3Njcm9sbFRvcDt2YXIgbGluZV9zdGFydD1NYXRoLnJvdW5kKChyZWxhdGl2ZV90b3AgLyDDgS5saW5lSGVpZ2h0KSsxKTt2YXIgbGluZV9uYj1NYXRoLnJvdW5kKHJhbmdlLmJvdW5kaW5nSGVpZ2h0IC8gw4EubGluZUhlaWdodCk7c2VsZWN0aW9uU3RhcnQ9c3RvcmVkX3JhbmdlLnRleHQuw4YtcmFuZ2UudGV4dC7DhjtzZWxlY3Rpb25TdGFydCs9KGxpbmVfc3RhcnQtw4Euw4Iuw4ouc3Vic3RyKDAsc2VsZWN0aW9uU3RhcnQpLnNwbGl0KFwiXFxuXCIpLsOGKSoyO3NlbGVjdGlvblN0YXJ0LT0obGluZV9zdGFydC3DgS7Dgi7Dii5zdWJzdHIoMCxzZWxlY3Rpb25TdGFydCkuc3BsaXQoXCJcXG5cIikuw4YpKiAyO3NlbGVjdGlvbkVuZD1zZWxlY3Rpb25TdGFydCtyYW5nZS50ZXh0LsOGO3NlbGVjdGlvbkVuZCs9KGxpbmVfc3RhcnQrbGluZV9uYi0xLcOBLsOCLsOKLnN1YnN0cigwLHNlbGVjdGlvbkVuZCkuc3BsaXQoXCJcXG5cIikuw4YpKjI7w4Euw4Iuc2VsZWN0aW9uU3RhcnQ9c2VsZWN0aW9uU3RhcnQ7w4Euw4Iuc2VsZWN0aW9uRW5kPXNlbGVjdGlvbkVuZDt9Y2F0Y2goZSl7fWlmKMOBLsOFWyd3b3JkX3dyYXAnXSnDgS7Dgi53cmFwPSdzb2Z0Jzt9O0VBLsOELnNldElFU2VsZWN0aW9uPcODKCl7dmFyIGE9w4Euw4IsbmJMaW5lU3RhcnQsbmJMaW5lRW5kLHJhbmdlO2lmKCHDgS5pc0lFKXJldHVybiDDjDtuYkxpbmVTdGFydD1hLsOKLnN1YnN0cigwLGEuc2VsZWN0aW9uU3RhcnQpLnNwbGl0KFwiXFxuXCIpLsOGLTE7bmJMaW5lRW5kPWEuw4ouc3Vic3RyKDAsYS5zZWxlY3Rpb25FbmQpLnNwbGl0KFwiXFxuXCIpLsOGLTE7cmFuZ2U9ZG9jdW1lbnQuc2VsZWN0aW9uLmNyZWF0ZVJhbmdlKCk7cmFuZ2UubW92ZVRvRWxlbWVudFRleHQoYSk7cmFuZ2Uuc2V0RW5kUG9pbnQoJ0VuZFRvU3RhcnQnLHJhbmdlKTtyYW5nZS5tb3ZlU3RhcnQoJ2NoYXJhY3RlcicsYS5zZWxlY3Rpb25TdGFydC1uYkxpbmVTdGFydCk7cmFuZ2UubW92ZUVuZCgnY2hhcmFjdGVyJyxhLnNlbGVjdGlvbkVuZC1uYkxpbmVFbmQtKGEuc2VsZWN0aW9uU3RhcnQtbmJMaW5lU3RhcnQpKTtyYW5nZS5zZWxlY3QoKTt9O0VBLsOELmNoZWNrVGV4dEV2b2x1dGlvbj3DgyhsYXN0VGV4dCxuZXdUZXh0KXt2YXIgY2g9e30sYmFzZVN0ZXA9MjAwLGNwdD0wLGVuZCxzdGVwLHRTdGFydD1uZXcgRGF0ZSgpLmdldFRpbWUoKTtlbmQ9TWF0aC5taW4obmV3VGV4dC7DhixsYXN0VGV4dC7Dhik7c3RlcD1iYXNlU3RlcDt3aGlsZShjcHQ8ZW5kJiZzdGVwPj0xKXtpZihsYXN0VGV4dC5zdWJzdHIoY3B0LHN0ZXApPT1uZXdUZXh0LnN1YnN0cihjcHQsc3RlcCkpe2NwdCs9c3RlcDt9XG5lbHNle3N0ZXA9TWF0aC5mbG9vcihzdGVwLzIpO319Y2gucG9zU3RhcnQ9Y3B0O2NoLmxpbmVTdGFydD1uZXdUZXh0LnN1YnN0cigwLGNoLnBvc1N0YXJ0KS5zcGxpdChcIlxcblwiKS7Dhi0xO2NwdF9sYXN0PWxhc3RUZXh0LsOGO2NwdD1uZXdUZXh0LsOGO3N0ZXA9YmFzZVN0ZXA7d2hpbGUoY3B0Pj0wJiZjcHRfbGFzdD49MCYmc3RlcD49MSl7aWYobGFzdFRleHQuc3Vic3RyKGNwdF9sYXN0LXN0ZXAsc3RlcCk9PW5ld1RleHQuc3Vic3RyKGNwdC1zdGVwLHN0ZXApKXtjcHQtPXN0ZXA7Y3B0X2xhc3QtPXN0ZXA7fVxuZWxzZXtzdGVwPU1hdGguZmxvb3Ioc3RlcC8yKTt9fWNoLnBvc05ld0VuZD1jcHQ7Y2gucG9zTGFzdEVuZD1jcHRfbGFzdDtpZihjaC5wb3NOZXdFbmQ8PWNoLnBvc1N0YXJ0KXtpZihsYXN0VGV4dC7DhiA8IG5ld1RleHQuw4Ype2NoLnBvc05ld0VuZD1jaC5wb3NTdGFydCtuZXdUZXh0LsOGLWxhc3RUZXh0LsOGO2NoLnBvc0xhc3RFbmQ9Y2gucG9zU3RhcnQ7fVxuZWxzZXtjaC5wb3NMYXN0RW5kPWNoLnBvc1N0YXJ0K2xhc3RUZXh0LsOGLW5ld1RleHQuw4Y7Y2gucG9zTmV3RW5kPWNoLnBvc1N0YXJ0O319Y2gubmV3VGV4dD1uZXdUZXh0LnN1YnN0cmluZyhjaC5wb3NTdGFydCxjaC5wb3NOZXdFbmQpO2NoLmxhc3RUZXh0PWxhc3RUZXh0LnN1YnN0cmluZyhjaC5wb3NTdGFydCxjaC5wb3NMYXN0RW5kKTtjaC5saW5lTmV3RW5kPW5ld1RleHQuc3Vic3RyKDAsY2gucG9zTmV3RW5kKS5zcGxpdChcIlxcblwiKS7Dhi0xO2NoLmxpbmVMYXN0RW5kPWxhc3RUZXh0LnN1YnN0cigwLGNoLnBvc0xhc3RFbmQpLnNwbGl0KFwiXFxuXCIpLsOGLTE7Y2gubmV3VGV4dExpbmU9bmV3VGV4dC5zcGxpdChcIlxcblwiKS5zbGljZShjaC5saW5lU3RhcnQsY2gubGluZU5ld0VuZCsxKS5qb2luKFwiXFxuXCIpO2NoLmxhc3RUZXh0TGluZT1sYXN0VGV4dC5zcGxpdChcIlxcblwiKS5zbGljZShjaC5saW5lU3RhcnQsY2gubGluZUxhc3RFbmQrMSkuam9pbihcIlxcblwiKTtyZXR1cm4gY2g7fTtFQS7DhC50YWJfc2VsZWN0aW9uPcODKCl7aWYow4EuaXNfdGFiYmluZylyZXR1cm47w4EuaXNfdGFiYmluZz3DizvDgS5nZXRJRVNlbGVjdGlvbigpO3ZhciBzdGFydD3DgS7Dgi5zZWxlY3Rpb25TdGFydDt2YXIgZW5kPcOBLsOCLnNlbGVjdGlvbkVuZDt2YXIgaW5zVGV4dD3DgS7Dgi7Dii5zdWJzdHJpbmcoc3RhcnQsZW5kKTt2YXIgcG9zX3N0YXJ0PXN0YXJ0O3ZhciBwb3NfZW5kPWVuZDtpZihpbnNUZXh0LsOGPT0wKXvDgS7Dgi7Dij3DgS7Dgi7Dii5zdWJzdHIoMCxzdGFydCkrw4EudGFidWxhdGlvbivDgS7Dgi7Dii5zdWJzdHIoZW5kKTtwb3Nfc3RhcnQ9c3RhcnQrw4EudGFidWxhdGlvbi7Dhjtwb3NfZW5kPXBvc19zdGFydDt9XG5lbHNle3N0YXJ0PU1hdGgubWF4KDAsw4Euw4Iuw4ouc3Vic3RyKDAsc3RhcnQpLmxhc3RJbmRleE9mKFwiXFxuXCIpKzEpO2VuZFRleHQ9w4Euw4Iuw4ouc3Vic3RyKGVuZCk7c3RhcnRUZXh0PcOBLsOCLsOKLnN1YnN0cigwLHN0YXJ0KTt0bXA9w4Euw4Iuw4ouc3Vic3RyaW5nKHN0YXJ0LGVuZCkuc3BsaXQoXCJcXG5cIik7aW5zVGV4dD3DgS50YWJ1bGF0aW9uK3RtcC5qb2luKFwiXFxuXCIrw4EudGFidWxhdGlvbik7w4Euw4Iuw4o9c3RhcnRUZXh0K2luc1RleHQrZW5kVGV4dDtwb3Nfc3RhcnQ9c3RhcnQ7cG9zX2VuZD3DgS7Dgi7Dii5pbmRleE9mKFwiXFxuXCIsc3RhcnRUZXh0LsOGK2luc1RleHQuw4YpO2lmKHBvc19lbmQ9PS0xKXBvc19lbmQ9w4Euw4Iuw4ouw4Y7fcOBLsOCLnNlbGVjdGlvblN0YXJ0PXBvc19zdGFydDvDgS7Dgi5zZWxlY3Rpb25FbmQ9cG9zX2VuZDtpZijDgS5pc0lFKXvDgS5zZXRJRVNlbGVjdGlvbigpO3NldFRpbWVvdXQoXCJlQS5pc190YWJiaW5nPcOMO1wiLDEwMCk7fVxuZWxzZXvDgS5pc190YWJiaW5nPcOMO319O0VBLsOELmludmVydF90YWJfc2VsZWN0aW9uPcODKCl7dmFyIHQ9w4EsYT3DgS7DgjtpZih0LmlzX3RhYmJpbmcpcmV0dXJuO3QuaXNfdGFiYmluZz3Dizt0LmdldElFU2VsZWN0aW9uKCk7dmFyIHN0YXJ0PWEuc2VsZWN0aW9uU3RhcnQ7dmFyIGVuZD1hLnNlbGVjdGlvbkVuZDt2YXIgaW5zVGV4dD1hLsOKLnN1YnN0cmluZyhzdGFydCxlbmQpO3ZhciBwb3Nfc3RhcnQ9c3RhcnQ7dmFyIHBvc19lbmQ9ZW5kO2lmKGluc1RleHQuw4Y9PTApe2lmKGEuw4ouc3Vic3RyaW5nKHN0YXJ0LXQudGFidWxhdGlvbi7DhixzdGFydCk9PXQudGFidWxhdGlvbil7YS7Dij1hLsOKLnN1YnN0cigwLHN0YXJ0LXQudGFidWxhdGlvbi7DhikrYS7Dii5zdWJzdHIoZW5kKTtwb3Nfc3RhcnQ9TWF0aC5tYXgoMCxzdGFydC10LnRhYnVsYXRpb24uw4YpO3Bvc19lbmQ9cG9zX3N0YXJ0O319XG5lbHNle3N0YXJ0PWEuw4ouc3Vic3RyKDAsc3RhcnQpLmxhc3RJbmRleE9mKFwiXFxuXCIpKzE7ZW5kVGV4dD1hLsOKLnN1YnN0cihlbmQpO3N0YXJ0VGV4dD1hLsOKLnN1YnN0cigwLHN0YXJ0KTt0bXA9YS7Dii5zdWJzdHJpbmcoc3RhcnQsZW5kKS5zcGxpdChcIlxcblwiKTtpbnNUZXh0PVwiXCI7Zm9yKGk9MDtpPHRtcC7DhjtpKyspe2ZvcihqPTA7ajx0LnRhYl9uYl9jaGFyO2orKyl7aWYodG1wW2ldLmNoYXJBdCgwKT09XCJcdFwiKXt0bXBbaV09dG1wW2ldLnN1YnN0cigxKTtqPXQudGFiX25iX2NoYXI7fVxuZWxzZSBpZih0bXBbaV0uY2hhckF0KDApPT1cIiBcIil0bXBbaV09dG1wW2ldLnN1YnN0cigxKTt9aW5zVGV4dCs9dG1wW2ldO2lmKGk8dG1wLsOGLTEpaW5zVGV4dCs9XCJcXG5cIjt9YS7Dij1zdGFydFRleHQraW5zVGV4dCtlbmRUZXh0O3Bvc19zdGFydD1zdGFydDtwb3NfZW5kPWEuw4ouaW5kZXhPZihcIlxcblwiLHN0YXJ0VGV4dC7DhitpbnNUZXh0LsOGKTtpZihwb3NfZW5kPT0tMSlwb3NfZW5kPWEuw4ouw4Y7fWEuc2VsZWN0aW9uU3RhcnQ9cG9zX3N0YXJ0O2Euc2VsZWN0aW9uRW5kPXBvc19lbmQ7aWYodC5pc0lFKXt0LnNldElFU2VsZWN0aW9uKCk7c2V0VGltZW91dChcImVBLmlzX3RhYmJpbmc9w4w7XCIsMTAwKTt9XG5lbHNlIHQuaXNfdGFiYmluZz3DjDt9O0VBLsOELnByZXNzX2VudGVyPcODKCl7aWYoIcOBLnNtb290aF9zZWxlY3Rpb24pcmV0dXJuIMOMO8OBLmdldElFU2VsZWN0aW9uKCk7dmFyIHNjcm9sbFRvcD3DgS5yZXN1bHQuc2Nyb2xsVG9wO3ZhciBzY3JvbGxMZWZ0PcOBLnJlc3VsdC5zY3JvbGxMZWZ0O3ZhciBzdGFydD3DgS7Dgi5zZWxlY3Rpb25TdGFydDt2YXIgZW5kPcOBLsOCLnNlbGVjdGlvbkVuZDt2YXIgc3RhcnRfbGFzdF9saW5lPU1hdGgubWF4KDAsw4Euw4Iuw4ouc3Vic3RyaW5nKDAsc3RhcnQpLmxhc3RJbmRleE9mKFwiXFxuXCIpKzEpO3ZhciBiZWdpbl9saW5lPcOBLsOCLsOKLnN1YnN0cmluZyhzdGFydF9sYXN0X2xpbmUsc3RhcnQpLnJlcGxhY2UoL14oWyBcdF0qKS4qL2dtLFwiJDFcIik7dmFyIGxpbmVTdGFydD3DgS7Dgi7Dii5zdWJzdHJpbmcoMCxzdGFydCkuc3BsaXQoXCJcXG5cIikuw4Y7aWYoYmVnaW5fbGluZT09XCJcXG5cInx8YmVnaW5fbGluZT09XCJcXHJcInx8YmVnaW5fbGluZS7Dhj09MCl7cmV0dXJuIMOMO31pZijDgS5pc0lFfHwow4EuaXNPcGVyYSYmw4EuaXNPcGVyYSA8IDkuNikpe2JlZ2luX2xpbmU9XCJcXHJcXG5cIitiZWdpbl9saW5lO31cbmVsc2V7YmVnaW5fbGluZT1cIlxcblwiK2JlZ2luX2xpbmU7fcOBLsOCLsOKPcOBLsOCLsOKLnN1YnN0cmluZygwLHN0YXJ0KStiZWdpbl9saW5lK8OBLsOCLsOKLnN1YnN0cmluZyhlbmQpO8OBLmFyZWFfc2VsZWN0KHN0YXJ0K2JlZ2luX2xpbmUuw4YsMCk7aWYow4EuaXNJRSl7w4EucmVzdWx0LnNjcm9sbFRvcD1zY3JvbGxUb3A7w4EucmVzdWx0LnNjcm9sbExlZnQ9c2Nyb2xsTGVmdDt9cmV0dXJuIMOLO307RUEuw4QuZmluZEVuZEJyYWNrZXQ9w4MoaW5mb3MsYnJhY2tldCl7dmFyIHN0YXJ0PWluZm9zW1wiaW5kZXhPZkN1cnNvclwiXTt2YXIgbm9ybWFsX29yZGVyPcOLO2lmKMOBLmFzc29jQnJhY2tldFticmFja2V0XSllbmRCcmFja2V0PcOBLmFzc29jQnJhY2tldFticmFja2V0XTtcbmVsc2UgaWYow4EucmV2ZXJ0QXNzb2NCcmFja2V0W2JyYWNrZXRdKXtlbmRCcmFja2V0PcOBLnJldmVydEFzc29jQnJhY2tldFticmFja2V0XTtub3JtYWxfb3JkZXI9w4w7fXZhciBlbmQ9LTE7dmFyIG5iQnJhY2tldE9wZW49MDtmb3IodmFyIGk9c3RhcnQ7aTxpbmZvc1tcImZ1bGxfdGV4dFwiXS7DhiYmaT49MDspe2lmKGluZm9zW1wiZnVsbF90ZXh0XCJdLmNoYXJBdChpKT09ZW5kQnJhY2tldCl7bmJCcmFja2V0T3Blbi0tO2lmKG5iQnJhY2tldE9wZW48PTApe2VuZD1pO2JyZWFrO319XG5lbHNlIGlmKGluZm9zW1wiZnVsbF90ZXh0XCJdLmNoYXJBdChpKT09YnJhY2tldCluYkJyYWNrZXRPcGVuKys7aWYobm9ybWFsX29yZGVyKWkrKztcbmVsc2UgaS0tO31pZihlbmQ9PS0xKXJldHVybiDDjDt2YXIgZW5kTGFzdExpbmU9aW5mb3NbXCJmdWxsX3RleHRcIl0uc3Vic3RyKDAsZW5kKS5sYXN0SW5kZXhPZihcIlxcblwiKTtpZihlbmRMYXN0TGluZT09LTEpbGluZT0xO1xuZWxzZSBsaW5lPWluZm9zW1wiZnVsbF90ZXh0XCJdLnN1YnN0cigwLGVuZExhc3RMaW5lKS5zcGxpdChcIlxcblwiKS7DhisxO3ZhciBjdXJQb3M9ZW5kLWVuZExhc3RMaW5lLTE7dmFyIGVuZExpbmVMZW5ndGg9aW5mb3NbXCJmdWxsX3RleHRcIl0uc3Vic3RyaW5nKGVuZCkuc3BsaXQoXCJcXG5cIilbMF0uw4Y7w4EuZGlzcGxheVRvQ3Vyc29yUG9zaXRpb24oXCJlbmRfYnJhY2tldFwiLGxpbmUsY3VyUG9zLGluZm9zW1wiZnVsbF90ZXh0XCJdLnN1YnN0cmluZyhlbmRMYXN0TGluZSsxLGVuZCtlbmRMaW5lTGVuZ3RoKSk7cmV0dXJuIMOLO307RUEuw4QuZGlzcGxheVRvQ3Vyc29yUG9zaXRpb249w4MoaWQsc3RhcnRfbGluZSxjdXJfcG9zLGxpbmVDb250ZW50LG5vX3JlYWxfbW92ZSl7dmFyIGVsZW0sZGVzdCxjb250ZW50LHBvc0xlZnQ9MCxwb3NUb3AsZml4UGFkZGluZyx0b3BPZmZzZXQsZW5kRWxlbTtlbGVtPcOBLnRlc3RfZm9udF9zaXplO2Rlc3Q9XyQoaWQpO2NvbnRlbnQ9XCI8c3BhbiBpZD0ndGVzdF9mb250X3NpemVfaW5uZXInPlwiK2xpbmVDb250ZW50LnN1YnN0cigwLGN1cl9wb3MpLnJlcGxhY2UoLyYvZyxcIiZhbXA7XCIpLnJlcGxhY2UoLzwvZyxcIiZsdDtcIikrXCI8L3NwYW4+PHNwYW4gaWQ9J2VuZFRlc3RGb250Jz5cIitsaW5lQ29udGVudC5zdWJzdHIoY3VyX3BvcykucmVwbGFjZSgvJi9nLFwiJmFtcDtcIikucmVwbGFjZSgvPC9nLFwiJmx0O1wiKStcIjwvc3Bhbj5cIjtpZijDgS5pc0lFfHwow4EuaXNPcGVyYSYmw4EuaXNPcGVyYSA8IDkuNikpe2VsZW0uaW5uZXJIVE1MPVwiPHByZT5cIitjb250ZW50LnJlcGxhY2UoL15cXHI/XFxuLyxcIjxicj5cIikrXCI8L3ByZT5cIjt9XG5lbHNle2VsZW0uaW5uZXJIVE1MPWNvbnRlbnQ7fWVuZEVsZW09XyQoJ2VuZFRlc3RGb250Jyk7dG9wT2Zmc2V0PWVuZEVsZW0ub2Zmc2V0VG9wO2ZpeFBhZGRpbmc9cGFyc2VJbnQow4EuY29udGVudF9oaWdobGlnaHQuw4cucGFkZGluZ0xlZnQucmVwbGFjZShcInB4XCIsXCJcIikpO3Bvc0xlZnQ9NDUrZW5kRWxlbS5vZmZzZXRMZWZ0KyghaXNOYU4oZml4UGFkZGluZykmJnRvcE9mZnNldCA+IDAgPyBmaXhQYWRkaW5nOjApO3Bvc1RvcD3DgS5nZXRMaW5lUG9zVG9wKHN0YXJ0X2xpbmUpK3RvcE9mZnNldDtpZijDgS5pc0lFJiZjdXJfcG9zID4gMCYmZW5kRWxlbS5vZmZzZXRMZWZ0PT0wKXtwb3NUb3ArPcOBLmxpbmVIZWlnaHQ7fWlmKG5vX3JlYWxfbW92ZSE9w4spe2Rlc3Quw4cudG9wPXBvc1RvcCtcInB4XCI7ZGVzdC7Dhy5sZWZ0PXBvc0xlZnQrXCJweFwiO31kZXN0LmN1cnNvcl90b3A9cG9zVG9wO2Rlc3QuY3Vyc29yX2xlZnQ9cG9zTGVmdDt9O0VBLsOELmdldExpbmVQb3NUb3A9w4Moc3RhcnRfbGluZSl7dmFyIGVsZW09XyQoJ2xpbmVfJytzdGFydF9saW5lKSxwb3NUb3A9MDtpZihlbGVtKXBvc1RvcD1lbGVtLm9mZnNldFRvcDtcbmVsc2UgcG9zVG9wPcOBLmxpbmVIZWlnaHQgKihzdGFydF9saW5lLTEpO3JldHVybiBwb3NUb3A7fTtFQS7DhC5nZXRUZXh0SGVpZ2h0PcODKHRleHQpe3ZhciB0PcOBLGVsZW0saGVpZ2h0O2VsZW09dC50ZXN0X2ZvbnRfc2l6ZTtjb250ZW50PXRleHQucmVwbGFjZSgvJi9nLFwiJmFtcDtcIikucmVwbGFjZSgvPC9nLFwiJmx0O1wiKTtpZih0LmlzSUV8fCjDgS5pc09wZXJhJibDgS5pc09wZXJhIDwgOS42KSl7ZWxlbS5pbm5lckhUTUw9XCI8cHJlPlwiK2NvbnRlbnQucmVwbGFjZSgvXlxccj9cXG4vLFwiPGJyPlwiKStcIjwvcHJlPlwiO31cbmVsc2V7ZWxlbS5pbm5lckhUTUw9Y29udGVudDt9aGVpZ2h0PWVsZW0ub2Zmc2V0SGVpZ2h0O2hlaWdodD1NYXRoLm1heCgxLE1hdGguZmxvb3IoZWxlbS5vZmZzZXRIZWlnaHQgLyDDgS5saW5lSGVpZ2h0KSkqIMOBLmxpbmVIZWlnaHQ7cmV0dXJuIGhlaWdodDt9O0VBLsOELmZpeExpbmVzSGVpZ2h0PcODKHRleHRWYWx1ZSxsaW5lU3RhcnQsbGluZUVuZCl7dmFyIGFUZXh0PXRleHRWYWx1ZS5zcGxpdChcIlxcblwiKTtpZihsaW5lRW5kPT0tMSlsaW5lRW5kPWFUZXh0LsOGLTE7Zm9yKHZhciBpPU1hdGgubWF4KDAsbGluZVN0YXJ0KTtpIDw9bGluZUVuZDtpKyspe2lmKGVsZW09XyQoJ2xpbmVfJysoaSsxKSkpe2VsZW0uw4cuaGVpZ2h0PXR5cGVvZihhVGV4dFtpXSkhPVwidW5kZWZpbmVkXCIgPyDDgS5nZXRUZXh0SGVpZ2h0KGFUZXh0W2ldKStcInB4XCI6w4EubGluZUhlaWdodDt9fX07RUEuw4QuYXJlYV9zZWxlY3Q9w4Moc3RhcnQsw4Ype8OBLsOCLmZvY3VzKCk7c3RhcnQ9TWF0aC5tYXgoMCxNYXRoLm1pbijDgS7Dgi7Dii7DhixzdGFydCkpO2VuZD1NYXRoLm1heChzdGFydCxNYXRoLm1pbijDgS7Dgi7Dii7DhixzdGFydCvDhikpO2lmKMOBLmlzSUUpe8OBLsOCLnNlbGVjdGlvblN0YXJ0PXN0YXJ0O8OBLsOCLnNlbGVjdGlvbkVuZD1lbmQ7w4Euc2V0SUVTZWxlY3Rpb24oKTt9XG5lbHNle2lmKMOBLmlzT3BlcmEmJsOBLmlzT3BlcmEgPCA5LjYpe8OBLsOCLnNldFNlbGVjdGlvblJhbmdlKDAsMCk7fcOBLsOCLnNldFNlbGVjdGlvblJhbmdlKHN0YXJ0LGVuZCk7fcOBLmNoZWNrX2xpbmVfc2VsZWN0aW9uKCk7fTtFQS7DhC5hcmVhX2dldF9zZWxlY3Rpb249w4MoKXt2YXIgdGV4dD1cIlwiO2lmKGRvY3VtZW50LnNlbGVjdGlvbil7dmFyIHJhbmdlPWRvY3VtZW50LnNlbGVjdGlvbi5jcmVhdGVSYW5nZSgpO3RleHQ9cmFuZ2UudGV4dDt9XG5lbHNle3RleHQ9w4Euw4Iuw4ouc3Vic3RyaW5nKMOBLsOCLnNlbGVjdGlvblN0YXJ0LMOBLsOCLnNlbGVjdGlvbkVuZCk7fXJldHVybiB0ZXh0O307IEVBLsOELnJlcGxhY2VfdGFiPcODKHRleHQpe3JldHVybiB0ZXh0LnJlcGxhY2UoLygoXFxuPykoW15cdFxcbl0qKVx0KS9naSxlQS5zbWFydFRhYik7fTtFQS7DhC5zbWFydFRhYj3Dgygpe3ZhbD1cIiAgICAgICAgICAgICAgICAgICBcIjtyZXR1cm4gRUEuw4Quc21hcnRUYWIuYXJndW1lbnRzWzJdK0VBLsOELnNtYXJ0VGFiLmFyZ3VtZW50c1szXSt2YWwuc3Vic3RyKDAsZUEudGFiX25iX2NoYXItKEVBLsOELnNtYXJ0VGFiLmFyZ3VtZW50c1szXS7DhiklZUEudGFiX25iX2NoYXIpO307RUEuw4Quc2hvd193YWl0aW5nX3NjcmVlbj3Dgygpe3dpZHRoPcOBLmVkaXRvcl9hcmVhLm9mZnNldFdpZHRoO2hlaWdodD3DgS5lZGl0b3JfYXJlYS5vZmZzZXRIZWlnaHQ7aWYoISjDgS5pc0lFJibDgS5pc0lFPDYpKXt3aWR0aC09MjtoZWlnaHQtPTI7fcOBLnByb2Nlc3Npbmdfc2NyZWVuLsOHLmRpc3BsYXk9XCJibG9ja1wiO8OBLnByb2Nlc3Npbmdfc2NyZWVuLsOHLndpZHRoPXdpZHRoK1wicHhcIjvDgS5wcm9jZXNzaW5nX3NjcmVlbi7Dhy5oZWlnaHQ9aGVpZ2h0K1wicHhcIjvDgS53YWl0aW5nX3NjcmVlbl9kaXNwbGF5ZWQ9w4s7fTtFQS7DhC5oaWRlX3dhaXRpbmdfc2NyZWVuPcODKCl7w4EucHJvY2Vzc2luZ19zY3JlZW4uw4cuZGlzcGxheT1cIm5vbmVcIjvDgS53YWl0aW5nX3NjcmVlbl9kaXNwbGF5ZWQ9w4w7fTtFQS7DhC5hZGRfw4c9w4Mow4dzKXtpZijDh3Muw4Y+MCl7bmV3Y3NzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCLDh1wiKTtuZXdjc3MudHlwZT1cInRleHQvY3NzXCI7bmV3Y3NzLm1lZGlhPVwiYWxsXCI7aWYobmV3Y3NzLsOHU2hlZXQpe25ld2Nzcy7Dh1NoZWV0LmNzc1RleHQ9w4dzO31cbmVsc2V7bmV3Y3NzLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKMOHcykpO31kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZShcImhlYWRcIilbMF0uYXBwZW5kQ2hpbGQobmV3Y3NzKTt9fTtFQS7DhC5zZXRfZm9udD3DgyhmYW1pbHksc2l6ZSl7dmFyIHQ9w4EsYT3DgS7DgixzPcOBLsOFLGVsZW1fZm9udCxpLGVsZW07dmFyIGVsZW1zPVtcIsOCXCIsXCJjb250ZW50X2hpZ2hsaWdodFwiLFwiY3Vyc29yX3Bvc1wiLFwiZW5kX2JyYWNrZXRcIixcInNlbGVjdGlvbl9maWVsZFwiLFwic2VsZWN0aW9uX2ZpZWxkX3RleHRcIixcImxpbmVfbnVtYmVyXCJdO2lmKGZhbWlseSYmZmFtaWx5IT1cIlwiKXNbXCJmb250X2ZhbWlseVwiXT1mYW1pbHk7aWYoc2l6ZSYmc2l6ZT4wKXNbXCJmb250X3NpemVcIl09c2l6ZTtpZih0LmlzT3BlcmEmJnQuaXNPcGVyYSA8IDkuNilzWydmb250X2ZhbWlseSddPVwibW9ub3NwYWNlXCI7aWYoZWxlbV9mb250PV8kKFwiYXJlYV9mb250X3NpemVcIikpe2ZvcihpPTA7aSA8IGVsZW1fZm9udC7DhjtpKyspe2lmKGVsZW1fZm9udC5vcHRpb25zW2ldLsOKJiZlbGVtX2ZvbnQub3B0aW9uc1tpXS7Dij09c1tcImZvbnRfc2l6ZVwiXSllbGVtX2ZvbnQub3B0aW9uc1tpXS5zZWxlY3RlZD3Dizt9fWlmKHQuaXNGaXJlZm94KXt2YXIgbmJUcnk9Mztkb3t2YXIgZGl2MT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSx0ZXh0MT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCfDgicpO3ZhciDDh3M9e3dpZHRoOic0MHB4JyxvdmVyZmxvdzonc2Nyb2xsJyx6SW5kZXg6NTAsdmlzaWJpbGl0eTonaGlkZGVuJyxmb250RmFtaWx5OnNbXCJmb250X2ZhbWlseVwiXSxmb250U2l6ZTpzW1wiZm9udF9zaXplXCJdK1wicHRcIixsaW5lSGVpZ2h0OnQubGluZUhlaWdodCtcInB4XCIscGFkZGluZzonMCcsbWFyZ2luOicwJyxib3JkZXI6J25vbmUnLHdoaXRlU3BhY2U6J25vd3JhcCd9O3ZhciBkaWZmLGNoYW5nZWQ9w4w7Zm9yKGkgaW4gw4dzKXtkaXYxLsOHWyBpIF09w4dzW2ldO3RleHQxLsOHWyBpIF09w4dzW2ldO310ZXh0MS53cmFwPSdvZmYnO3RleHQxLnNldEF0dHJpYnV0ZSgnd3JhcCcsJ29mZicpO3QuY29udGFpbmVyLmFwcGVuZENoaWxkKGRpdjEpO3QuY29udGFpbmVyLmFwcGVuZENoaWxkKHRleHQxKTtkaXYxLmlubmVySFRNTD10ZXh0MS7Dij0nYXplcnR5dWlvcHFzZGZnaGprbG0nO2RpdjEuaW5uZXJIVE1MPXRleHQxLsOKPXRleHQxLsOKKyd3eGN2Ym5ecCrDuSQhOjssLCc7ZGlmZj10ZXh0MS5zY3JvbGxXaWR0aC1kaXYxLnNjcm9sbFdpZHRoO2lmKE1hdGguYWJzKGRpZmYpPj0yKXtzW1wiZm9udF9zaXplXCJdKys7Y2hhbmdlZD3Dizt9dC5jb250YWluZXIucmVtb3ZlQ2hpbGQoZGl2MSk7dC5jb250YWluZXIucmVtb3ZlQ2hpbGQodGV4dDEpO25iVHJ5LS07fXdoaWxlKGNoYW5nZWQmJm5iVHJ5ID4gMCk7fWVsZW09dC50ZXN0X2ZvbnRfc2l6ZTtlbGVtLsOHLmZvbnRGYW1pbHk9XCJcIitzW1wiZm9udF9mYW1pbHlcIl07ZWxlbS7Dhy5mb250U2l6ZT1zW1wiZm9udF9zaXplXCJdK1wicHRcIjtlbGVtLmlubmVySFRNTD1cIjBcIjt0LmxpbmVIZWlnaHQ9ZWxlbS5vZmZzZXRIZWlnaHQ7Zm9yKGk9MDtpPGVsZW1zLsOGO2krKyl7ZWxlbT1fJChlbGVtc1tpXSk7ZWxlbS7Dhy5mb250RmFtaWx5PXNbXCJmb250X2ZhbWlseVwiXTtlbGVtLsOHLmZvbnRTaXplPXNbXCJmb250X3NpemVcIl0rXCJwdFwiO2VsZW0uw4cubGluZUhlaWdodD10LmxpbmVIZWlnaHQrXCJweFwiO310LmFkZF/DhyhcInByZXtmb250LWZhbWlseTpcIitzW1wiZm9udF9mYW1pbHlcIl0rXCJ9XCIpO2lmKCh0LmlzT3BlcmEmJnQuaXNPcGVyYSA8IDkuNil8fHQuaXNJRSA+PTgpe3ZhciBwYXJOb2Q9YS7DiE5vZGUsbnh0U2liPWEubmV4dFNpYmxpbmcsc3RhcnQ9YS5zZWxlY3Rpb25TdGFydCxlbmQ9YS5zZWxlY3Rpb25FbmQ7cGFyTm9kLnJlbW92ZUNoaWxkKGEpO3Bhck5vZC5pbnNlcnRCZWZvcmUoYSxueHRTaWIpO3QuYXJlYV9zZWxlY3Qoc3RhcnQsZW5kLXN0YXJ0KTt9w4EuZm9jdXMoKTvDgS51cGRhdGVfc2l6ZSgpO8OBLmNoZWNrX2xpbmVfc2VsZWN0aW9uKCk7fTtFQS7DhC5jaGFuZ2VfZm9udF9zaXplPcODKCl7dmFyIHNpemU9XyQoXCJhcmVhX2ZvbnRfc2l6ZVwiKS7DijtpZihzaXplPjApw4Euc2V0X2ZvbnQoXCJcIixzaXplKTt9O0VBLsOELm9wZW5faW5saW5lX3BvcHVwPcODKHBvcHVwX2lkKXvDgS5jbG9zZV9hbGxfaW5saW5lX3BvcHVwKCk7dmFyIHBvcHVwPV8kKHBvcHVwX2lkKTt2YXIgZWRpdG9yPV8kKFwiZWRpdG9yXCIpO2Zvcih2YXIgaT0wO2k8w4EuaW5saW5lUG9wdXAuw4Y7aSsrKXtpZijDgS5pbmxpbmVQb3B1cFtpXVtcInBvcHVwX2lkXCJdPT1wb3B1cF9pZCl7dmFyIGljb249XyQow4EuaW5saW5lUG9wdXBbaV1bXCJpY29uX2lkXCJdKTtpZihpY29uKXvDgS5zd2l0Y2hDbGFzc1N0aWNreShpY29uLCdlZGl0QXJlYUJ1dHRvblNlbGVjdGVkJyzDiyk7YnJlYWs7fX19cG9wdXAuw4cuaGVpZ2h0PVwiYXV0b1wiO3BvcHVwLsOHLm92ZXJmbG93PVwidmlzaWJsZVwiO2lmKGRvY3VtZW50LmJvZHkub2Zmc2V0SGVpZ2h0PCBwb3B1cC5vZmZzZXRIZWlnaHQpe3BvcHVwLsOHLmhlaWdodD0oZG9jdW1lbnQuYm9keS5vZmZzZXRIZWlnaHQtMTApK1wicHhcIjtwb3B1cC7Dhy5vdmVyZmxvdz1cImF1dG9cIjt9aWYoIXBvcHVwLnBvc2l0aW9ubmVkKXt2YXIgbmV3X2xlZnQ9ZWRpdG9yLm9mZnNldFdpZHRoIC8yLXBvcHVwLm9mZnNldFdpZHRoIC8yO3ZhciBuZXdfdG9wPWVkaXRvci5vZmZzZXRIZWlnaHQgLzItcG9wdXAub2Zmc2V0SGVpZ2h0IC8yO3BvcHVwLsOHLmxlZnQ9bmV3X2xlZnQrXCJweFwiO3BvcHVwLsOHLnRvcD1uZXdfdG9wK1wicHhcIjtwb3B1cC5wb3NpdGlvbm5lZD3Dizt9cG9wdXAuw4cudmlzaWJpbGl0eT1cInZpc2libGVcIjt9O0VBLsOELmNsb3NlX2lubGluZV9wb3B1cD3Dgyhwb3B1cF9pZCl7dmFyIHBvcHVwPV8kKHBvcHVwX2lkKTtmb3IodmFyIGk9MDtpPMOBLmlubGluZVBvcHVwLsOGO2krKyl7aWYow4EuaW5saW5lUG9wdXBbaV1bXCJwb3B1cF9pZFwiXT09cG9wdXBfaWQpe3ZhciBpY29uPV8kKMOBLmlubGluZVBvcHVwW2ldW1wiaWNvbl9pZFwiXSk7aWYoaWNvbil7w4Euc3dpdGNoQ2xhc3NTdGlja3koaWNvbiwnZWRpdEFyZWFCdXR0b25Ob3JtYWwnLMOMKTticmVhazt9fX1wb3B1cC7Dhy52aXNpYmlsaXR5PVwiaGlkZGVuXCI7fTtFQS7DhC5jbG9zZV9hbGxfaW5saW5lX3BvcHVwPcODKGUpe2Zvcih2YXIgaT0wO2k8w4EuaW5saW5lUG9wdXAuw4Y7aSsrKXvDgS5jbG9zZV9pbmxpbmVfcG9wdXAow4EuaW5saW5lUG9wdXBbaV1bXCJwb3B1cF9pZFwiXSk7fcOBLsOCLmZvY3VzKCk7fTtFQS7DhC5zaG93X2hlbHA9w4MoKXvDgS5vcGVuX2lubGluZV9wb3B1cChcImVkaXRfYXJlYV9oZWxwXCIpO307RUEuw4QubmV3X2RvY3VtZW50PcODKCl7w4Euw4Iuw4o9XCJcIjvDgS5hcmVhX3NlbGVjdCgwLDApO307RUEuw4QuZ2V0X2FsbF90b29sYmFyX2hlaWdodD3Dgygpe3ZhciBhcmVhPV8kKFwiZWRpdG9yXCIpO3ZhciByZXN1bHRzPcOILmdldENoaWxkcmVuKGFyZWEsXCJkaXZcIixcImNsYXNzXCIsXCJhcmVhX3Rvb2xiYXJcIixcImFsbFwiLFwiMFwiKTt2YXIgaGVpZ2h0PTA7Zm9yKHZhciBpPTA7aTxyZXN1bHRzLsOGO2krKyl7aGVpZ2h0Kz1yZXN1bHRzW2ldLm9mZnNldEhlaWdodDt9cmV0dXJuIGhlaWdodDt9O0VBLsOELmdvX3RvX2xpbmU9w4MobGluZSl7aWYoIWxpbmUpe3ZhciBpY29uPV8kKFwiZ29fdG9fbGluZVwiKTtpZihpY29uICE9bnVsbCl7w4EucmVzdG9yZUNsYXNzKGljb24pO8OBLnN3aXRjaENsYXNzU3RpY2t5KGljb24sJ2VkaXRBcmVhQnV0dG9uU2VsZWN0ZWQnLMOLKTt9bGluZT1wcm9tcHQow4EuZ2V0X3RyYW5zbGF0aW9uKFwiZ29fdG9fbGluZV9wcm9tcHRcIikpO2lmKGljb24gIT1udWxsKcOBLnN3aXRjaENsYXNzU3RpY2t5KGljb24sJ2VkaXRBcmVhQnV0dG9uTm9ybWFsJyzDjCk7fWlmKGxpbmUmJmxpbmUhPW51bGwmJmxpbmUuc2VhcmNoKC9eWzAtOV0rJC8pIT0tMSl7dmFyIHN0YXJ0PTA7dmFyIGxpbmVzPcOBLsOCLsOKLnNwbGl0KFwiXFxuXCIpO2lmKGxpbmUgPiBsaW5lcy7DhilzdGFydD3DgS7Dgi7Dii7DhjtcbmVsc2V7Zm9yKHZhciBpPTA7aTxNYXRoLm1pbihsaW5lLTEsbGluZXMuw4YpO2krKylzdGFydCs9bGluZXNbaV0uw4YrMTt9w4EuYXJlYV9zZWxlY3Qoc3RhcnQsMCk7fX07RUEuw4QuY2hhbmdlX3Ntb290aF9zZWxlY3Rpb25fbW9kZT3DgyhzZXRUbyl7aWYow4EuZG9faGlnaGxpZ2h0KXJldHVybjtpZihzZXRUbyAhPW51bGwpe2lmKHNldFRvPT09w4wpw4Euc21vb3RoX3NlbGVjdGlvbj3DiztcbmVsc2Ugw4Euc21vb3RoX3NlbGVjdGlvbj3DjDt9dmFyIGljb249XyQoXCJjaGFuZ2Vfc21vb3RoX3NlbGVjdGlvblwiKTvDgS7Dgi5mb2N1cygpO2lmKMOBLnNtb290aF9zZWxlY3Rpb249PT3Diyl7w4Euc3dpdGNoQ2xhc3NTdGlja3koaWNvbiwnZWRpdEFyZWFCdXR0b25Ob3JtYWwnLMOMKTvDgS5zbW9vdGhfc2VsZWN0aW9uPcOMO8OBLnNlbGVjdGlvbl9maWVsZC7Dhy5kaXNwbGF5PVwibm9uZVwiO18kKFwiY3Vyc29yX3Bvc1wiKS7Dhy5kaXNwbGF5PVwibm9uZVwiO18kKFwiZW5kX2JyYWNrZXRcIikuw4cuZGlzcGxheT1cIm5vbmVcIjt9XG5lbHNle8OBLnN3aXRjaENsYXNzU3RpY2t5KGljb24sJ2VkaXRBcmVhQnV0dG9uU2VsZWN0ZWQnLMOMKTvDgS5zbW9vdGhfc2VsZWN0aW9uPcOLO8OBLnNlbGVjdGlvbl9maWVsZC7Dhy5kaXNwbGF5PVwiYmxvY2tcIjtfJChcImN1cnNvcl9wb3NcIikuw4cuZGlzcGxheT1cImJsb2NrXCI7XyQoXCJlbmRfYnJhY2tldFwiKS7Dhy5kaXNwbGF5PVwiYmxvY2tcIjt9fTtFQS7DhC5zY3JvbGxfdG9fdmlldz3DgyhzaG93KXt2YXIgem9uZSxsaW5lRWxlbTtpZighw4Euc21vb3RoX3NlbGVjdGlvbilyZXR1cm47em9uZT1fJChcInJlc3VsdFwiKTt2YXIgY3Vyc29yX3Bvc190b3A9XyQoXCJjdXJzb3JfcG9zXCIpLmN1cnNvcl90b3A7aWYoc2hvdz09XCJib3R0b21cIil7Y3Vyc29yX3Bvc190b3ArPcOBLmdldExpbmVQb3NUb3Aow4Euw4lbJ2xpbmVfc3RhcnQnXSvDgS7DiVsnbGluZV9uYiddLTEpO312YXIgbWF4X2hlaWdodF92aXNpYmxlPXpvbmUuY2xpZW50SGVpZ2h0K3pvbmUuc2Nyb2xsVG9wO3ZhciBtaXNzX3RvcD1jdXJzb3JfcG9zX3RvcCvDgS5saW5lSGVpZ2h0LW1heF9oZWlnaHRfdmlzaWJsZTtpZihtaXNzX3RvcD4wKXt6b25lLnNjcm9sbFRvcD16b25lLnNjcm9sbFRvcCttaXNzX3RvcDt9XG5lbHNlIGlmKHpvbmUuc2Nyb2xsVG9wID4gY3Vyc29yX3Bvc190b3Ape3pvbmUuc2Nyb2xsVG9wPWN1cnNvcl9wb3NfdG9wO312YXIgY3Vyc29yX3Bvc19sZWZ0PV8kKFwiY3Vyc29yX3Bvc1wiKS5jdXJzb3JfbGVmdDt2YXIgbWF4X3dpZHRoX3Zpc2libGU9em9uZS5jbGllbnRXaWR0aCt6b25lLnNjcm9sbExlZnQ7dmFyIG1pc3NfbGVmdD1jdXJzb3JfcG9zX2xlZnQrMTAtbWF4X3dpZHRoX3Zpc2libGU7aWYobWlzc19sZWZ0PjApe3pvbmUuc2Nyb2xsTGVmdD16b25lLnNjcm9sbExlZnQrbWlzc19sZWZ0KzUwO31cbmVsc2UgaWYoem9uZS5zY3JvbGxMZWZ0ID4gY3Vyc29yX3Bvc19sZWZ0KXt6b25lLnNjcm9sbExlZnQ9Y3Vyc29yX3Bvc19sZWZ0O31cbmVsc2UgaWYoem9uZS5zY3JvbGxMZWZ0PT00NSl7em9uZS5zY3JvbGxMZWZ0PTA7fX07RUEuw4QuY2hlY2tfdW5kbz3Dgyhvbmx5X29uY2Upe2lmKCFlQXNbw4EuaWRdKXJldHVybiDDjDtpZijDgS7DgkZvY3VzZWQmJmVBc1vDgS5pZF1bXCJkaXNwbGF5ZWRcIl09PcOLKXt2YXIgdGV4dD3DgS7Dgi7DijtpZijDgS5wcmV2aW91cy7Dhjw9MSnDgS5zd2l0Y2hDbGFzc1N0aWNreShfJChcInVuZG9cIiksJ2VkaXRBcmVhQnV0dG9uRGlzYWJsZWQnLMOLKTtpZighw4EucHJldmlvdXNbw4EucHJldmlvdXMuw4YtMV18fMOBLnByZXZpb3VzW8OBLnByZXZpb3VzLsOGLTFdW1widGV4dFwiXSAhPXRleHQpe8OBLnByZXZpb3VzLnB1c2goe1widGV4dFwiOnRleHQsXCJzZWxTdGFydFwiOsOBLsOCLnNlbGVjdGlvblN0YXJ0LFwic2VsRW5kXCI6w4Euw4Iuc2VsZWN0aW9uRW5kfSk7aWYow4EucHJldmlvdXMuw4YgPiDDgS7DhVtcIm1heF91bmRvXCJdKzEpw4EucHJldmlvdXMuc2hpZnQoKTt9aWYow4EucHJldmlvdXMuw4YgPj0yKcOBLnN3aXRjaENsYXNzU3RpY2t5KF8kKFwidW5kb1wiKSwnZWRpdEFyZWFCdXR0b25Ob3JtYWwnLMOMKTt9aWYoIW9ubHlfb25jZSlzZXRUaW1lb3V0KFwiZUEuY2hlY2tfdW5kbygpXCIsMzAwMCk7fTtFQS7DhC51bmRvPcODKCl7aWYow4EucHJldmlvdXMuw4YgPiAwKXvDgS5nZXRJRVNlbGVjdGlvbigpO8OBLm5leHQucHVzaCh7XCJ0ZXh0XCI6w4Euw4Iuw4osXCJzZWxTdGFydFwiOsOBLsOCLnNlbGVjdGlvblN0YXJ0LFwic2VsRW5kXCI6w4Euw4Iuc2VsZWN0aW9uRW5kfSk7dmFyIHByZXY9w4EucHJldmlvdXMucG9wKCk7aWYocHJldltcInRleHRcIl09PcOBLsOCLsOKJibDgS5wcmV2aW91cy7DhiA+IDApcHJldj3DgS5wcmV2aW91cy5wb3AoKTvDgS7Dgi7Dij1wcmV2W1widGV4dFwiXTvDgS5sYXN0X3VuZG89cHJldltcInRleHRcIl07w4EuYXJlYV9zZWxlY3QocHJldltcInNlbFN0YXJ0XCJdLHByZXZbXCJzZWxFbmRcIl0tcHJldltcInNlbFN0YXJ0XCJdKTvDgS5zd2l0Y2hDbGFzc1N0aWNreShfJChcInJlZG9cIiksJ2VkaXRBcmVhQnV0dG9uTm9ybWFsJyzDjCk7w4EucmVzeW5jX2hpZ2hsaWdodCjDiyk7w4EuY2hlY2tfZmlsZV9jaGFuZ2VzKCk7fX07RUEuw4QucmVkbz3Dgygpe2lmKMOBLm5leHQuw4YgPiAwKXt2YXIgbmV4dD3DgS5uZXh0LnBvcCgpO8OBLnByZXZpb3VzLnB1c2gobmV4dCk7w4Euw4Iuw4o9bmV4dFtcInRleHRcIl07w4EubGFzdF91bmRvPW5leHRbXCJ0ZXh0XCJdO8OBLmFyZWFfc2VsZWN0KG5leHRbXCJzZWxTdGFydFwiXSxuZXh0W1wic2VsRW5kXCJdLW5leHRbXCJzZWxTdGFydFwiXSk7w4Euc3dpdGNoQ2xhc3NTdGlja3koXyQoXCJ1bmRvXCIpLCdlZGl0QXJlYUJ1dHRvbk5vcm1hbCcsw4wpO8OBLnJlc3luY19oaWdobGlnaHQow4spO8OBLmNoZWNrX2ZpbGVfY2hhbmdlcygpO31pZijDgS5uZXh0LsOGPT0wKcOBLnN3aXRjaENsYXNzU3RpY2t5KF8kKFwicmVkb1wiKSwnZWRpdEFyZWFCdXR0b25EaXNhYmxlZCcsw4spO307RUEuw4QuY2hlY2tfcmVkbz3Dgygpe2lmKGVBLm5leHQuw4Y9PTB8fGVBLsOCLsOKIT1lQS5sYXN0X3VuZG8pe2VBLm5leHQ9W107ZUEuc3dpdGNoQ2xhc3NTdGlja3koXyQoXCJyZWRvXCIpLCdlZGl0QXJlYUJ1dHRvbkRpc2FibGVkJyzDiyk7fVxuZWxzZXvDgS5zd2l0Y2hDbGFzc1N0aWNreShfJChcInJlZG9cIiksJ2VkaXRBcmVhQnV0dG9uTm9ybWFsJyzDjCk7fX07RUEuw4Quc3dpdGNoQ2xhc3M9w4MoZWxlbWVudCxjbGFzc19uYW1lLGxvY2tfc3RhdGUpe3ZhciBsb2NrQ2hhbmdlZD3DjDtpZih0eXBlb2YobG9ja19zdGF0ZSkhPVwidW5kZWZpbmVkXCImJmVsZW1lbnQgIT1udWxsKXtlbGVtZW50LmNsYXNzTG9jaz1sb2NrX3N0YXRlO2xvY2tDaGFuZ2VkPcOLO31pZihlbGVtZW50ICE9bnVsbCYmKGxvY2tDaGFuZ2VkfHwhZWxlbWVudC5jbGFzc0xvY2spKXtlbGVtZW50Lm9sZENsYXNzTmFtZT1lbGVtZW50LmNsYXNzTmFtZTtlbGVtZW50LmNsYXNzTmFtZT1jbGFzc19uYW1lO319O0VBLsOELnJlc3RvcmVBbmRTd2l0Y2hDbGFzcz3DgyhlbGVtZW50LGNsYXNzX25hbWUpe2lmKGVsZW1lbnQgIT1udWxsJiYhZWxlbWVudC5jbGFzc0xvY2spe8OBLnJlc3RvcmVDbGFzcyhlbGVtZW50KTvDgS5zd2l0Y2hDbGFzcyhlbGVtZW50LGNsYXNzX25hbWUpO319O0VBLsOELnJlc3RvcmVDbGFzcz3DgyhlbGVtZW50KXtpZihlbGVtZW50ICE9bnVsbCYmZWxlbWVudC5vbGRDbGFzc05hbWUmJiFlbGVtZW50LmNsYXNzTG9jayl7ZWxlbWVudC5jbGFzc05hbWU9ZWxlbWVudC5vbGRDbGFzc05hbWU7ZWxlbWVudC5vbGRDbGFzc05hbWU9bnVsbDt9fTtFQS7DhC5zZXRDbGFzc0xvY2s9w4MoZWxlbWVudCxsb2NrX3N0YXRlKXtpZihlbGVtZW50ICE9bnVsbCllbGVtZW50LmNsYXNzTG9jaz1sb2NrX3N0YXRlO307RUEuw4Quc3dpdGNoQ2xhc3NTdGlja3k9w4MoZWxlbWVudCxjbGFzc19uYW1lLGxvY2tfc3RhdGUpe3ZhciBsb2NrQ2hhbmdlZD3DjDtpZih0eXBlb2YobG9ja19zdGF0ZSkhPVwidW5kZWZpbmVkXCImJmVsZW1lbnQgIT1udWxsKXtlbGVtZW50LmNsYXNzTG9jaz1sb2NrX3N0YXRlO2xvY2tDaGFuZ2VkPcOLO31pZihlbGVtZW50ICE9bnVsbCYmKGxvY2tDaGFuZ2VkfHwhZWxlbWVudC5jbGFzc0xvY2spKXtlbGVtZW50LmNsYXNzTmFtZT1jbGFzc19uYW1lO2VsZW1lbnQub2xkQ2xhc3NOYW1lPWNsYXNzX25hbWU7fX07RUEuw4Quc2Nyb2xsX3BhZ2U9w4MocGFyYW1zKXt2YXIgZGlyPXBhcmFtc1tcImRpclwiXSxzaGlmdF9wcmVzc2VkPXBhcmFtc1tcInNoaWZ0XCJdO3ZhciBsaW5lcz3DgS7Dgi7Dii5zcGxpdChcIlxcblwiKTt2YXIgbmV3X3Bvcz0wLMOGPTAsY2hhcl9sZWZ0PTAsbGluZV9uYj0wLGN1ckxpbmU9MDt2YXIgdG9TY3JvbGxBbW91bnQ9XyQoXCJyZXN1bHRcIikuY2xpZW50SGVpZ2h0LTMwO3ZhciBuYkxpbmVUb1Njcm9sbD0wLGRpZmY9MDtpZihkaXI9PVwidXBcIil7bmJMaW5lVG9TY3JvbGw9TWF0aC5jZWlsKHRvU2Nyb2xsQW1vdW50IC8gw4EubGluZUhlaWdodCk7Zm9yKGk9w4Euw4lbXCJsaW5lX3N0YXJ0XCJdO2ktZGlmZiA+IMOBLsOJW1wibGluZV9zdGFydFwiXS1uYkxpbmVUb1Njcm9sbDtpLS0pe2lmKGVsZW09XyQoJ2xpbmVfJytpKSl7ZGlmZis9TWF0aC5mbG9vcigoZWxlbS5vZmZzZXRIZWlnaHQtMSkvIMOBLmxpbmVIZWlnaHQpO319bmJMaW5lVG9TY3JvbGwtPWRpZmY7aWYow4Euw4lbXCJzZWxlY19kaXJlY3Rpb25cIl09PVwidXBcIil7Zm9yKGxpbmVfbmI9MDtsaW5lX25iPCBNYXRoLm1pbijDgS7DiVtcImxpbmVfc3RhcnRcIl0tbmJMaW5lVG9TY3JvbGwsbGluZXMuw4YpO2xpbmVfbmIrKyl7bmV3X3Bvcys9bGluZXNbbGluZV9uYl0uw4YrMTt9Y2hhcl9sZWZ0PU1hdGgubWluKGxpbmVzW01hdGgubWluKGxpbmVzLsOGLTEsbGluZV9uYildLsOGLMOBLsOJW1wiY3Vycl9wb3NcIl0tMSk7aWYoc2hpZnRfcHJlc3NlZCnDhj3DgS7DiVtcInNlbGVjdGlvbkVuZFwiXS1uZXdfcG9zLWNoYXJfbGVmdDvDgS5hcmVhX3NlbGVjdChuZXdfcG9zK2NoYXJfbGVmdCzDhik7dmlldz1cInRvcFwiO31cbmVsc2V7dmlldz1cImJvdHRvbVwiO2ZvcihsaW5lX25iPTA7bGluZV9uYjwgTWF0aC5taW4ow4Euw4lbXCJsaW5lX3N0YXJ0XCJdK8OBLsOJW1wibGluZV9uYlwiXS0xLW5iTGluZVRvU2Nyb2xsLGxpbmVzLsOGKTtsaW5lX25iKyspe25ld19wb3MrPWxpbmVzW2xpbmVfbmJdLsOGKzE7fWNoYXJfbGVmdD1NYXRoLm1pbihsaW5lc1tNYXRoLm1pbihsaW5lcy7Dhi0xLGxpbmVfbmIpXS7DhizDgS7DiVtcImN1cnJfcG9zXCJdLTEpO2lmKHNoaWZ0X3ByZXNzZWQpe3N0YXJ0PU1hdGgubWluKMOBLsOJW1wic2VsZWN0aW9uU3RhcnRcIl0sbmV3X3BvcytjaGFyX2xlZnQpO8OGPU1hdGgubWF4KG5ld19wb3MrY2hhcl9sZWZ0LMOBLsOJW1wic2VsZWN0aW9uU3RhcnRcIl0pLXN0YXJ0O2lmKG5ld19wb3MrY2hhcl9sZWZ0IDwgw4Euw4lbXCJzZWxlY3Rpb25TdGFydFwiXSl2aWV3PVwidG9wXCI7fVxuZWxzZSBzdGFydD1uZXdfcG9zK2NoYXJfbGVmdDvDgS5hcmVhX3NlbGVjdChzdGFydCzDhik7fX1cbmVsc2V7dmFyIG5iTGluZVRvU2Nyb2xsPU1hdGguZmxvb3IodG9TY3JvbGxBbW91bnQgLyDDgS5saW5lSGVpZ2h0KTtmb3IoaT3DgS7DiVtcImxpbmVfc3RhcnRcIl07aStkaWZmIDwgw4Euw4lbXCJsaW5lX3N0YXJ0XCJdK25iTGluZVRvU2Nyb2xsO2krKyl7aWYoZWxlbT1fJCgnbGluZV8nK2kpKXtkaWZmKz1NYXRoLmZsb29yKChlbGVtLm9mZnNldEhlaWdodC0xKS8gw4EubGluZUhlaWdodCk7fX1uYkxpbmVUb1Njcm9sbC09ZGlmZjtpZijDgS7DiVtcInNlbGVjX2RpcmVjdGlvblwiXT09XCJkb3duXCIpe3ZpZXc9XCJib3R0b21cIjtmb3IobGluZV9uYj0wO2xpbmVfbmI8IE1hdGgubWluKMOBLsOJW1wibGluZV9zdGFydFwiXSvDgS7DiVtcImxpbmVfbmJcIl0tMituYkxpbmVUb1Njcm9sbCxsaW5lcy7Dhik7bGluZV9uYisrKXtpZihsaW5lX25iPT3DgS7DiVtcImxpbmVfc3RhcnRcIl0tMSljaGFyX2xlZnQ9w4Euw4lbXCJzZWxlY3Rpb25TdGFydFwiXS1uZXdfcG9zO25ld19wb3MrPWxpbmVzW2xpbmVfbmJdLsOGKzE7fWlmKHNoaWZ0X3ByZXNzZWQpe8OGPU1hdGguYWJzKMOBLsOJW1wic2VsZWN0aW9uU3RhcnRcIl0tbmV3X3Bvcyk7w4YrPU1hdGgubWluKGxpbmVzW01hdGgubWluKGxpbmVzLsOGLTEsbGluZV9uYildLsOGLMOBLsOJW1wiY3Vycl9wb3NcIl0pO8OBLmFyZWFfc2VsZWN0KE1hdGgubWluKMOBLsOJW1wic2VsZWN0aW9uU3RhcnRcIl0sbmV3X3Bvcyksw4YpO31cbmVsc2V7w4EuYXJlYV9zZWxlY3QobmV3X3BvcytjaGFyX2xlZnQsMCk7fX1cbmVsc2V7dmlldz1cInRvcFwiO2ZvcihsaW5lX25iPTA7bGluZV9uYjwgTWF0aC5taW4ow4Euw4lbXCJsaW5lX3N0YXJ0XCJdK25iTGluZVRvU2Nyb2xsLTEsbGluZXMuw4YsbGluZXMuw4YpO2xpbmVfbmIrKyl7aWYobGluZV9uYj09w4Euw4lbXCJsaW5lX3N0YXJ0XCJdLTEpY2hhcl9sZWZ0PcOBLsOJW1wic2VsZWN0aW9uU3RhcnRcIl0tbmV3X3BvcztuZXdfcG9zKz1saW5lc1tsaW5lX25iXS7DhisxO31pZihzaGlmdF9wcmVzc2VkKXvDhj1NYXRoLmFicyjDgS7DiVtcInNlbGVjdGlvbkVuZFwiXS1uZXdfcG9zLWNoYXJfbGVmdCk7w4YrPU1hdGgubWluKGxpbmVzW01hdGgubWluKGxpbmVzLsOGLTEsbGluZV9uYildLsOGLMOBLsOJW1wiY3Vycl9wb3NcIl0pLWNoYXJfbGVmdC0xO8OBLmFyZWFfc2VsZWN0KE1hdGgubWluKMOBLsOJW1wic2VsZWN0aW9uRW5kXCJdLG5ld19wb3MrY2hhcl9sZWZ0KSzDhik7aWYobmV3X3BvcytjaGFyX2xlZnQgPiDDgS7DiVtcInNlbGVjdGlvbkVuZFwiXSl2aWV3PVwiYm90dG9tXCI7fVxuZWxzZXvDgS5hcmVhX3NlbGVjdChuZXdfcG9zK2NoYXJfbGVmdCwwKTt9fX3DgS5jaGVja19saW5lX3NlbGVjdGlvbigpO8OBLnNjcm9sbF90b192aWV3KHZpZXcpO307RUEuw4Quc3RhcnRfcmVzaXplPcODKGUpe8OILmVBTC5yZXNpemVbXCJpZFwiXT1lQS5pZDvDiC5lQUwucmVzaXplW1wic3RhcnRfeFwiXT0oZSk/IGUucGFnZVg6ZXZlbnQueCtkb2N1bWVudC5ib2R5LnNjcm9sbExlZnQ7w4guZUFMLnJlc2l6ZVtcInN0YXJ0X3lcIl09KGUpPyBlLnBhZ2VZOmV2ZW50LnkrZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A7aWYoZUEuaXNJRSl7ZUEuw4IuZm9jdXMoKTtlQS5nZXRJRVNlbGVjdGlvbigpO33DiC5lQUwucmVzaXplW1wic2VsZWN0aW9uU3RhcnRcIl09ZUEuw4Iuc2VsZWN0aW9uU3RhcnQ7w4guZUFMLnJlc2l6ZVtcInNlbGVjdGlvbkVuZFwiXT1lQS7Dgi5zZWxlY3Rpb25FbmQ7w4guZUFMLnN0YXJ0X3Jlc2l6ZV9hcmVhKCk7fTtFQS7DhC50b2dnbGVfZnVsbF9zY3JlZW49w4ModG8pe3ZhciB0PcOBLHA9w4gsYT10LsOCLGh0bWwsZnJhbWUsc2VsU3RhcnQsc2VsRW5kLG9sZCxpY29uO2lmKHR5cGVvZih0byk9PVwidW5kZWZpbmVkXCIpdG89IXQuZnVsbHNjcmVlblsnaXNGdWxsJ107b2xkPXQuZnVsbHNjcmVlblsnaXNGdWxsJ107dC5mdWxsc2NyZWVuWydpc0Z1bGwnXT10bztpY29uPV8kKFwiZnVsbHNjcmVlblwiKTtzZWxTdGFydD10LsOCLnNlbGVjdGlvblN0YXJ0O3NlbEVuZD10LsOCLnNlbGVjdGlvbkVuZDtodG1sPXAuZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJodG1sXCIpWzBdO2ZyYW1lPXAuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJmcmFtZV9cIit0LmlkKTtpZih0byYmdG8hPW9sZCl7dC5mdWxsc2NyZWVuWydvbGRfb3ZlcmZsb3cnXT1wLmdldF9jc3NfcHJvcGVydHkoaHRtbCxcIm92ZXJmbG93XCIpO3QuZnVsbHNjcmVlblsnb2xkX2hlaWdodCddPXAuZ2V0X2Nzc19wcm9wZXJ0eShodG1sLFwiaGVpZ2h0XCIpO3QuZnVsbHNjcmVlblsnb2xkX3dpZHRoJ109cC5nZXRfY3NzX3Byb3BlcnR5KGh0bWwsXCJ3aWR0aFwiKTt0LmZ1bGxzY3JlZW5bJ29sZF9zY3JvbGxUb3AnXT1odG1sLnNjcm9sbFRvcDt0LmZ1bGxzY3JlZW5bJ29sZF9zY3JvbGxMZWZ0J109aHRtbC5zY3JvbGxMZWZ0O3QuZnVsbHNjcmVlblsnb2xkX3pJbmRleCddPXAuZ2V0X2Nzc19wcm9wZXJ0eShmcmFtZSxcInotaW5kZXhcIik7aWYodC5pc09wZXJhKXtodG1sLsOHLmhlaWdodD1cIjEwMCVcIjtodG1sLsOHLndpZHRoPVwiMTAwJVwiO31odG1sLsOHLm92ZXJmbG93PVwiaGlkZGVuXCI7aHRtbC5zY3JvbGxUb3A9MDtodG1sLnNjcm9sbExlZnQ9MDtmcmFtZS7Dhy5wb3NpdGlvbj1cImFic29sdXRlXCI7ZnJhbWUuw4cud2lkdGg9aHRtbC5jbGllbnRXaWR0aCtcInB4XCI7ZnJhbWUuw4cuaGVpZ2h0PWh0bWwuY2xpZW50SGVpZ2h0K1wicHhcIjtmcmFtZS7Dhy5kaXNwbGF5PVwiYmxvY2tcIjtmcmFtZS7Dhy56SW5kZXg9XCI5OTk5OTlcIjtmcmFtZS7Dhy50b3A9XCIwcHhcIjtmcmFtZS7Dhy5sZWZ0PVwiMHB4XCI7ZnJhbWUuw4cudG9wPVwiLVwiK3AuY2FsY3VsZU9mZnNldFRvcChmcmFtZSkrXCJweFwiO2ZyYW1lLsOHLmxlZnQ9XCItXCIrcC5jYWxjdWxlT2Zmc2V0TGVmdChmcmFtZSkrXCJweFwiO3Quc3dpdGNoQ2xhc3NTdGlja3koaWNvbiwnZWRpdEFyZWFCdXR0b25TZWxlY3RlZCcsw4wpO3QuZnVsbHNjcmVlblsnYWxsb3dfcmVzaXplJ109dC5yZXNpemVfYWxsb3dlZDt0LmFsbG93X3Jlc2l6ZSjDjCk7aWYodC5pc0ZpcmVmb3gpe3AuZUFMLmV4ZWNDb21tYW5kKHQuaWQsXCJ1cGRhdGVfc2l6ZSgpO1wiKTt0LmFyZWFfc2VsZWN0KHNlbFN0YXJ0LHNlbEVuZC1zZWxTdGFydCk7dC5zY3JvbGxfdG9fdmlldygpO3QuZm9jdXMoKTt9XG5lbHNle3NldFRpbWVvdXQoXCLDiC5lQUwuZXhlY0NvbW1hbmQoJ1wiK3QuaWQrXCInLCd1cGRhdGVfc2l6ZSgpOycpO2VBLmZvY3VzKCk7XCIsMTApO319XG5lbHNlIGlmKHRvIT1vbGQpe2ZyYW1lLsOHLnBvc2l0aW9uPVwic3RhdGljXCI7ZnJhbWUuw4cuekluZGV4PXQuZnVsbHNjcmVlblsnb2xkX3pJbmRleCddO2lmKHQuaXNPcGVyYSl7aHRtbC7Dhy5oZWlnaHQ9XCJhdXRvXCI7aHRtbC7Dhy53aWR0aD1cImF1dG9cIjtodG1sLsOHLm92ZXJmbG93PVwiYXV0b1wiO31cbmVsc2UgaWYodC5pc0lFJiZwIT10b3Ape2h0bWwuw4cub3ZlcmZsb3c9XCJhdXRvXCI7fVxuZWxzZXtodG1sLsOHLm92ZXJmbG93PXQuZnVsbHNjcmVlblsnb2xkX292ZXJmbG93J107fWh0bWwuc2Nyb2xsVG9wPXQuZnVsbHNjcmVlblsnb2xkX3Njcm9sbFRvcCddO2h0bWwuc2Nyb2xsTGVmdD10LmZ1bGxzY3JlZW5bJ29sZF9zY3JvbGxMZWZ0J107cC5lQUwuaGlkZSh0LmlkKTtwLmVBTC5zaG93KHQuaWQpO3Quc3dpdGNoQ2xhc3NTdGlja3koaWNvbiwnZWRpdEFyZWFCdXR0b25Ob3JtYWwnLMOMKTtpZih0LmZ1bGxzY3JlZW5bJ2FsbG93X3Jlc2l6ZSddKXQuYWxsb3dfcmVzaXplKHQuZnVsbHNjcmVlblsnYWxsb3dfcmVzaXplJ10pO2lmKHQuaXNGaXJlZm94KXt0LmFyZWFfc2VsZWN0KHNlbFN0YXJ0LHNlbEVuZC1zZWxTdGFydCk7c2V0VGltZW91dChcImVBLnNjcm9sbF90b192aWV3KCk7XCIsMTApO319fTtFQS7DhC5hbGxvd19yZXNpemU9w4MoYWxsb3cpe3ZhciByZXNpemU9XyQoXCJyZXNpemVfYXJlYVwiKTtpZihhbGxvdyl7cmVzaXplLsOHLnZpc2liaWxpdHk9XCJ2aXNpYmxlXCI7w4guZUFMLmFkZF9ldmVudChyZXNpemUsXCJtb3VzZXVwXCIsZUEuc3RhcnRfcmVzaXplKTt9XG5lbHNle3Jlc2l6ZS7Dhy52aXNpYmlsaXR5PVwiaGlkZGVuXCI7w4guZUFMLnJlbW92ZV9ldmVudChyZXNpemUsXCJtb3VzZXVwXCIsZUEuc3RhcnRfcmVzaXplKTt9w4EucmVzaXplX2FsbG93ZWQ9YWxsb3c7fTtFQS7DhC5jaGFuZ2Vfc3ludGF4PcODKG5ld19zeW50YXgsaXNfd2FpdGluZyl7aWYobmV3X3N5bnRheD09w4Euw4VbJ3N5bnRheCddKXJldHVybiDDizt2YXIgZm91bmRlZD3DjDtmb3IodmFyIGk9MDtpPMOBLnN5bnRheF9saXN0LsOGO2krKyl7aWYow4Euc3ludGF4X2xpc3RbaV09PW5ld19zeW50YXgpZm91bmRlZD3Dizt9aWYoZm91bmRlZD09w4spe2lmKCHDiC5lQUwubG9hZF9zeW50YXhbbmV3X3N5bnRheF0pe2lmKCFpc193YWl0aW5nKcOILmVBTC5sb2FkX3NjcmlwdCjDiC5lQUwuYmFzZVVSTCtcInJlZ19zeW50YXgvXCIrbmV3X3N5bnRheCtcIi5qc1wiKTtzZXRUaW1lb3V0KFwiZUEuY2hhbmdlX3N5bnRheCgnXCIrbmV3X3N5bnRheCtcIicsw4spO1wiLDEwMCk7w4Euc2hvd193YWl0aW5nX3NjcmVlbigpO31cbmVsc2V7aWYoIcOBLmFsbHJlYWR5X3VzZWRfc3ludGF4W25ld19zeW50YXhdKXvDiC5lQUwuaW5pdF9zeW50YXhfcmVnZXhwKCk7w4EuYWRkX8OHKMOILmVBTC5zeW50YXhbbmV3X3N5bnRheF1bXCLDh3NcIl0pO8OBLmFsbHJlYWR5X3VzZWRfc3ludGF4W25ld19zeW50YXhdPcOLO312YXIgc2VsPV8kKFwic3ludGF4X3NlbGVjdGlvblwiKTtpZihzZWwmJnNlbC7DiiE9bmV3X3N5bnRheCl7Zm9yKHZhciBpPTA7aTxzZWwuw4Y7aSsrKXtpZihzZWwub3B0aW9uc1tpXS7DiiYmc2VsLm9wdGlvbnNbaV0uw4o9PW5ld19zeW50YXgpc2VsLm9wdGlvbnNbaV0uc2VsZWN0ZWQ9w4s7fX3DgS7DhVsnc3ludGF4J109bmV3X3N5bnRheDvDgS5yZXN5bmNfaGlnaGxpZ2h0KMOLKTvDgS5oaWRlX3dhaXRpbmdfc2NyZWVuKCk7cmV0dXJuIMOLO319cmV0dXJuIMOMO307RUEuw4Quc2V0X2VkaXRhYmxlPcODKGlzX2VkaXRhYmxlKXtpZihpc19lZGl0YWJsZSl7ZG9jdW1lbnQuYm9keS5jbGFzc05hbWU9XCJcIjvDgS7Dgi5yZWFkT25seT3DjDvDgS5pc19lZGl0YWJsZT3Dizt9XG5lbHNle2RvY3VtZW50LmJvZHkuY2xhc3NOYW1lPVwibm9uX2VkaXRhYmxlXCI7w4Euw4IucmVhZE9ubHk9w4s7w4EuaXNfZWRpdGFibGU9w4w7fWlmKGVBc1vDgS5pZF1bXCJkaXNwbGF5ZWRcIl09PcOLKcOBLnVwZGF0ZV9zaXplKCk7fTtFQS7DhC50b2dnbGVfd29yZF93cmFwPcODKCl7w4Euc2V0X3dvcmRfd3JhcCghw4Euw4VbJ3dvcmRfd3JhcCddKTt9O0VBLsOELnNldF93b3JkX3dyYXA9w4ModG8pe3ZhciB0PcOBLGE9dC7DgjtpZih0LmlzT3BlcmEmJnQuaXNPcGVyYSA8IDkuOCl7w4Euw4VbJ3dvcmRfd3JhcCddPcOMO3Quc3dpdGNoQ2xhc3NTdGlja3koXyQoXCJ3b3JkX3dyYXBcIiksJ2VkaXRBcmVhQnV0dG9uRGlzYWJsZWQnLMOLKTtyZXR1cm4gw4w7fWlmKHRvKXt3cmFwX21vZGU9J3NvZnQnO8OBLmNvbnRhaW5lci5jbGFzc05hbWUrPScgd29yZF93cmFwJzvDgS5jb250YWluZXIuw4cud2lkdGg9XCJcIjvDgS5jb250ZW50X2hpZ2hsaWdodC7Dhy53aWR0aD1cIlwiO2Euw4cud2lkdGg9XCIxMDAlXCI7aWYodC5pc0lFJiZ0LmlzSUUgPCA3KXthLsOHLndpZHRoPShhLm9mZnNldFdpZHRoLTUpK1wicHhcIjt9dC5zd2l0Y2hDbGFzc1N0aWNreShfJChcIndvcmRfd3JhcFwiKSwnZWRpdEFyZWFCdXR0b25TZWxlY3RlZCcsw4wpO31cbmVsc2V7d3JhcF9tb2RlPSdvZmYnO8OBLmNvbnRhaW5lci5jbGFzc05hbWU9w4EuY29udGFpbmVyLmNsYXNzTmFtZS5yZXBsYWNlKC93b3JkX3dyYXAvZywnJyk7dC5zd2l0Y2hDbGFzc1N0aWNreShfJChcIndvcmRfd3JhcFwiKSwnZWRpdEFyZWFCdXR0b25Ob3JtYWwnLMOLKTt9w4Euw4IucHJldmlvdXNfc2Nyb2xsV2lkdGg9Jyc7w4Euw4IucHJldmlvdXNfc2Nyb2xsSGVpZ2h0PScnO2Eud3JhcD13cmFwX21vZGU7YS5zZXRBdHRyaWJ1dGUoJ3dyYXAnLHdyYXBfbW9kZSk7aWYoIcOBLmlzSUUpe3ZhciBzdGFydD1hLnNlbGVjdGlvblN0YXJ0LGVuZD1hLnNlbGVjdGlvbkVuZDt2YXIgcGFyTm9kPWEuw4hOb2RlLG54dFNpYj1hLm5leHRTaWJsaW5nO3Bhck5vZC5yZW1vdmVDaGlsZChhKTtwYXJOb2QuaW5zZXJ0QmVmb3JlKGEsbnh0U2liKTvDgS5hcmVhX3NlbGVjdChzdGFydCxlbmQtc3RhcnQpO33DgS7DhVsnd29yZF93cmFwJ109dG87w4EuZm9jdXMoKTvDgS51cGRhdGVfc2l6ZSgpO8OBLmNoZWNrX2xpbmVfc2VsZWN0aW9uKCk7fTtFQS7DhC5vcGVuX2ZpbGU9w4Mow4Upe2lmKMOFWydpZCddIT1cInVuZGVmaW5lZFwiKXt2YXIgaWQ9w4VbJ2lkJ107dmFyIG5ld19maWxlPXt9O25ld19maWxlWydpZCddPWlkO25ld19maWxlWyd0aXRsZSddPWlkO25ld19maWxlWyd0ZXh0J109XCJcIjtuZXdfZmlsZVsnw4knXT1cIlwiO25ld19maWxlWydsYXN0X3RleHRfdG9faGlnaGxpZ2h0J109XCJcIjtuZXdfZmlsZVsnbGFzdF9oaWdodGxpZ2h0ZWRfdGV4dCddPVwiXCI7bmV3X2ZpbGVbJ3ByZXZpb3VzJ109W107bmV3X2ZpbGVbJ25leHQnXT1bXTtuZXdfZmlsZVsnbGFzdF91bmRvJ109XCJcIjtuZXdfZmlsZVsnc21vb3RoX3NlbGVjdGlvbiddPcOBLsOFWydzbW9vdGhfc2VsZWN0aW9uJ107bmV3X2ZpbGVbJ2RvX2hpZ2hsaWdodCddPcOBLsOFWydzdGFydF9oaWdobGlnaHQnXTtuZXdfZmlsZVsnc3ludGF4J109w4Euw4VbJ3N5bnRheCddO25ld19maWxlWydzY3JvbGxfdG9wJ109MDtuZXdfZmlsZVsnc2Nyb2xsX2xlZnQnXT0wO25ld19maWxlWydzZWxlY3Rpb25fc3RhcnQnXT0wO25ld19maWxlWydzZWxlY3Rpb25fZW5kJ109MDtuZXdfZmlsZVsnZWRpdGVkJ109w4w7bmV3X2ZpbGVbJ2ZvbnRfc2l6ZSddPcOBLsOFW1wiZm9udF9zaXplXCJdO25ld19maWxlWydmb250X2ZhbWlseSddPcOBLsOFW1wiZm9udF9mYW1pbHlcIl07bmV3X2ZpbGVbJ3dvcmRfd3JhcCddPcOBLsOFW1wid29yZF93cmFwXCJdO25ld19maWxlWyd0b29sYmFyJ109eydsaW5rcyc6e30sJ3NlbGVjdHMnOnt9fTtuZXdfZmlsZVsnY29tcGFyZV9lZGl0ZWRfdGV4dCddPW5ld19maWxlWyd0ZXh0J107w4EuZmlsZXNbaWRdPW5ld19maWxlO8OBLnVwZGF0ZV9maWxlKGlkLMOFKTvDgS5maWxlc1tpZF1bJ2NvbXBhcmVfZWRpdGVkX3RleHQnXT3DgS5maWxlc1tpZF1bJ3RleHQnXTt2YXIgaHRtbF9pZD0ndGFiX2ZpbGVfJytlbmNvZGVVUklDb21wb25lbnQoaWQpO8OBLmZpbGVzSWRBc3NvY1todG1sX2lkXT1pZDvDgS5maWxlc1tpZF1bJ2h0bWxfaWQnXT1odG1sX2lkO2lmKCFfJCjDgS5maWxlc1tpZF1bJ2h0bWxfaWQnXSkmJmlkIT1cIlwiKXvDgS50YWJfYnJvd3NpbmdfYXJlYS7Dhy5kaXNwbGF5PVwiYmxvY2tcIjt2YXIgZWxlbT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaScpO2VsZW0uaWQ9w4EuZmlsZXNbaWRdWydodG1sX2lkJ107dmFyIGNsb3NlPVwiPGltZyBzcmM9XFxcIlwiK8OILmVBTC5iYXNlVVJMK1wiaW1hZ2VzL2Nsb3NlLmdpZlxcXCIgdGl0bGU9XFxcIlwiK8OBLmdldF90cmFuc2xhdGlvbignY2xvc2VfdGFiJywnd29yZCcpK1wiXFxcIiBvbmNsaWNrPVxcXCJlQS5leGVjQ29tbWFuZCgnY2xvc2VfZmlsZScsZUEuZmlsZXNJZEFzc29jWydcIitodG1sX2lkK1wiJ10pO3JldHVybiDDjDtcXFwiIGNsYXNzPVxcXCJoaWRkZW5cXFwiIG9ubW91c2VvdmVyPVxcXCLDgS5jbGFzc05hbWU9JydcXFwiIG9ubW91c2VvdXQ9XFxcIsOBLmNsYXNzTmFtZT0naGlkZGVuJ1xcXCIgLz5cIjtlbGVtLmlubmVySFRNTD1cIjxhIG9uY2xpY2s9XFxcImphdmFzY3JpcHQ6ZUEuZXhlY0NvbW1hbmQoJ3N3aXRjaF90b19maWxlJyxlQS5maWxlc0lkQXNzb2NbJ1wiK2h0bWxfaWQrXCInXSk7XFxcIiBzZWxlYz1cXFwibm9uZVxcXCI+PGI+PHNwYW4+PHN0cm9uZyBjbGFzcz1cXFwiZWRpdGVkXFxcIj4qPC9zdHJvbmc+XCIrw4EuZmlsZXNbaWRdWyd0aXRsZSddK2Nsb3NlK1wiPC9zcGFuPjwvYj48L2E+XCI7XyQoJ3RhYl9icm93c2luZ19saXN0JykuYXBwZW5kQ2hpbGQoZWxlbSk7dmFyIGVsZW09ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGV4dCcpO8OBLnVwZGF0ZV9zaXplKCk7fWlmKGlkIT1cIlwiKcOBLmV4ZWNDb21tYW5kKCdmaWxlX29wZW4nLMOBLmZpbGVzW2lkXSk7w4Euc3dpdGNoX3RvX2ZpbGUoaWQsw4spO3JldHVybiDDizt9XG5lbHNlIHJldHVybiDDjDt9O0VBLsOELmNsb3NlX2ZpbGU9w4MoaWQpe2lmKMOBLmZpbGVzW2lkXSl7w4Euc2F2ZV9maWxlKGlkKTtpZijDgS5leGVjQ29tbWFuZCgnZmlsZV9jbG9zZScsw4EuZmlsZXNbaWRdKSE9PcOMKXt2YXIgbGk9XyQow4EuZmlsZXNbaWRdWydodG1sX2lkJ10pO2xpLsOITm9kZS5yZW1vdmVDaGlsZChsaSk7aWYoaWQ9PcOBLmN1cnJfZmlsZSl7dmFyIG5leHRfZmlsZT1cIlwiO3ZhciBpc19uZXh0PcOMO2Zvcih2YXIgaSBpbiDDgS5maWxlcyl7aWYoaXNfbmV4dCl7bmV4dF9maWxlPWk7YnJlYWs7fVxuZWxzZSBpZihpPT1pZClpc19uZXh0PcOLO1xuZWxzZSBuZXh0X2ZpbGU9aTt9w4Euc3dpdGNoX3RvX2ZpbGUobmV4dF9maWxlKTt9ZGVsZXRlKMOBLmZpbGVzW2lkXSk7w4EudXBkYXRlX3NpemUoKTt9fX07RUEuw4Quc2F2ZV9maWxlPcODKGlkKXt2YXIgdD3DgSxzYXZlLGFfbGlua3MsYV9zZWxlY3RzLHNhdmVfYnV0dCxpbWcsaTtpZih0LmZpbGVzW2lkXSl7dmFyIHNhdmU9dC5maWxlc1tpZF07c2F2ZVsnw4knXT10LsOJO3NhdmVbJ2xhc3RfdGV4dF90b19oaWdobGlnaHQnXT10Lmxhc3RfdGV4dF90b19oaWdobGlnaHQ7c2F2ZVsnbGFzdF9oaWdodGxpZ2h0ZWRfdGV4dCddPXQubGFzdF9oaWdodGxpZ2h0ZWRfdGV4dDtzYXZlWydwcmV2aW91cyddPXQucHJldmlvdXM7c2F2ZVsnbmV4dCddPXQubmV4dDtzYXZlWydsYXN0X3VuZG8nXT10Lmxhc3RfdW5kbztzYXZlWydzbW9vdGhfc2VsZWN0aW9uJ109dC5zbW9vdGhfc2VsZWN0aW9uO3NhdmVbJ2RvX2hpZ2hsaWdodCddPXQuZG9faGlnaGxpZ2h0O3NhdmVbJ3N5bnRheCddPXQuw4VbJ3N5bnRheCddO3NhdmVbJ3RleHQnXT10LsOCLsOKO3NhdmVbJ3Njcm9sbF90b3AnXT10LnJlc3VsdC5zY3JvbGxUb3A7c2F2ZVsnc2Nyb2xsX2xlZnQnXT10LnJlc3VsdC5zY3JvbGxMZWZ0O3NhdmVbJ3NlbGVjdGlvbl9zdGFydCddPXQuw4lbXCJzZWxlY3Rpb25TdGFydFwiXTtzYXZlWydzZWxlY3Rpb25fZW5kJ109dC7DiVtcInNlbGVjdGlvbkVuZFwiXTtzYXZlWydmb250X3NpemUnXT10LsOFW1wiZm9udF9zaXplXCJdO3NhdmVbJ2ZvbnRfZmFtaWx5J109dC7DhVtcImZvbnRfZmFtaWx5XCJdO3NhdmVbJ3dvcmRfd3JhcCddPXQuw4VbXCJ3b3JkX3dyYXBcIl07c2F2ZVsndG9vbGJhciddPXsnbGlua3MnOnt9LCdzZWxlY3RzJzp7fX07YV9saW5rcz1fJChcInRvb2xiYXJfMVwiKS5nZXRFbGVtZW50c0J5VGFnTmFtZShcImFcIik7Zm9yKGk9MDtpPGFfbGlua3Muw4Y7aSsrKXtpZihhX2xpbmtzW2ldLmdldEF0dHJpYnV0ZSgnZmlsZVNwZWNpZmljJyk9PSd5ZXMnKXtzYXZlX2J1dHQ9e307aW1nPWFfbGlua3NbaV0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2ltZycpWzBdO3NhdmVfYnV0dFsnY2xhc3NMb2NrJ109aW1nLmNsYXNzTG9jaztzYXZlX2J1dHRbJ2NsYXNzTmFtZSddPWltZy5jbGFzc05hbWU7c2F2ZV9idXR0WydvbGRDbGFzc05hbWUnXT1pbWcub2xkQ2xhc3NOYW1lO3NhdmVbJ3Rvb2xiYXInXVsnbGlua3MnXVthX2xpbmtzW2ldLmlkXT1zYXZlX2J1dHQ7fX1hX3NlbGVjdHM9XyQoXCJ0b29sYmFyXzFcIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJzZWxlY3RcIik7Zm9yKGk9MDtpPGFfc2VsZWN0cy7DhjtpKyspe2lmKGFfc2VsZWN0c1tpXS5nZXRBdHRyaWJ1dGUoJ2ZpbGVTcGVjaWZpYycpPT0neWVzJyl7c2F2ZVsndG9vbGJhciddWydzZWxlY3RzJ11bYV9zZWxlY3RzW2ldLmlkXT1hX3NlbGVjdHNbaV0uw4o7fX10LmZpbGVzW2lkXT1zYXZlO3JldHVybiBzYXZlO31yZXR1cm4gw4w7fTtFQS7DhC51cGRhdGVfZmlsZT3DgyhpZCxuZXdfw4pzKXtmb3IodmFyIGkgaW4gbmV3X8OKcyl7w4EuZmlsZXNbaWRdW2ldPW5ld1/DinNbaV07fX07RUEuw4QuZGlzcGxheV9maWxlPcODKGlkKXt2YXIgdD3DgSxhPXQuw4IsbmV3X2ZpbGUsYV9saXMsYV9zZWxlY3RzLGFfbGlua3MsYV9vcHRpb25zLGksajtpZihpZD09Jycpe2EucmVhZE9ubHk9w4s7dC50YWJfYnJvd3NpbmdfYXJlYS7Dhy5kaXNwbGF5PVwibm9uZVwiO18kKFwibm9fZmlsZV9zZWxlY3RlZFwiKS7Dhy5kaXNwbGF5PVwiYmxvY2tcIjt0LnJlc3VsdC5jbGFzc05hbWU9XCJlbXB0eVwiO2lmKCF0LmZpbGVzWycnXSl7dC5vcGVuX2ZpbGUoe2lkOicnfSk7fX1cbmVsc2UgaWYodHlwZW9mKHQuZmlsZXNbaWRdKT09J3VuZGVmaW5lZCcpe3JldHVybiDDjDt9XG5lbHNle3QucmVzdWx0LmNsYXNzTmFtZT1cIlwiO2EucmVhZE9ubHk9IXQuaXNfZWRpdGFibGU7XyQoXCJub19maWxlX3NlbGVjdGVkXCIpLsOHLmRpc3BsYXk9XCJub25lXCI7dC50YWJfYnJvd3NpbmdfYXJlYS7Dhy5kaXNwbGF5PVwiYmxvY2tcIjt9dC5jaGVja19yZWRvKMOLKTt0LmNoZWNrX3VuZG8ow4spO3QuY3Vycl9maWxlPWlkO2FfbGlzPXQudGFiX2Jyb3dzaW5nX2FyZWEuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2xpJyk7Zm9yKGk9MDtpPGFfbGlzLsOGO2krKyl7aWYoYV9saXNbaV0uaWQ9PXQuZmlsZXNbaWRdWydodG1sX2lkJ10pYV9saXNbaV0uY2xhc3NOYW1lPSdzZWxlY3RlZCc7XG5lbHNlIGFfbGlzW2ldLmNsYXNzTmFtZT0nJzt9bmV3X2ZpbGU9dC5maWxlc1tpZF07YS7Dij1uZXdfZmlsZVsndGV4dCddO3Quc2V0X2ZvbnQobmV3X2ZpbGVbJ2ZvbnRfZmFtaWx5J10sbmV3X2ZpbGVbJ2ZvbnRfc2l6ZSddKTt0LmFyZWFfc2VsZWN0KG5ld19maWxlWydzZWxlY3Rpb25fc3RhcnQnXSxuZXdfZmlsZVsnc2VsZWN0aW9uX2VuZCddLW5ld19maWxlWydzZWxlY3Rpb25fc3RhcnQnXSk7dC5tYW5hZ2Vfc2l6ZSjDiyk7dC5yZXN1bHQuc2Nyb2xsVG9wPW5ld19maWxlWydzY3JvbGxfdG9wJ107dC5yZXN1bHQuc2Nyb2xsTGVmdD1uZXdfZmlsZVsnc2Nyb2xsX2xlZnQnXTt0LnByZXZpb3VzPW5ld19maWxlWydwcmV2aW91cyddO3QubmV4dD1uZXdfZmlsZVsnbmV4dCddO3QubGFzdF91bmRvPW5ld19maWxlWydsYXN0X3VuZG8nXTt0LmNoZWNrX3JlZG8ow4spO3QuY2hlY2tfdW5kbyjDiyk7dC5leGVjQ29tbWFuZChcImNoYW5nZV9oaWdobGlnaHRcIixuZXdfZmlsZVsnZG9faGlnaGxpZ2h0J10pO3QuZXhlY0NvbW1hbmQoXCJjaGFuZ2Vfc3ludGF4XCIsbmV3X2ZpbGVbJ3N5bnRheCddKTt0LmV4ZWNDb21tYW5kKFwiY2hhbmdlX3Ntb290aF9zZWxlY3Rpb25fbW9kZVwiLG5ld19maWxlWydzbW9vdGhfc2VsZWN0aW9uJ10pO3QuZXhlY0NvbW1hbmQoXCJzZXRfd29yZF93cmFwXCIsbmV3X2ZpbGVbJ3dvcmRfd3JhcCddKTthX2xpbmtzPW5ld19maWxlWyd0b29sYmFyJ11bJ2xpbmtzJ107Zm9yKGkgaW4gYV9saW5rcyl7aWYoaW1nPV8kKGkpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdpbWcnKVswXSl7aW1nLmNsYXNzTG9jaz1hX2xpbmtzW2ldWydjbGFzc0xvY2snXTtpbWcuY2xhc3NOYW1lPWFfbGlua3NbaV1bJ2NsYXNzTmFtZSddO2ltZy5vbGRDbGFzc05hbWU9YV9saW5rc1tpXVsnb2xkQ2xhc3NOYW1lJ107fX1hX3NlbGVjdHM9bmV3X2ZpbGVbJ3Rvb2xiYXInXVsnc2VsZWN0cyddO2ZvcihpIGluIGFfc2VsZWN0cyl7YV9vcHRpb25zPV8kKGkpLm9wdGlvbnM7Zm9yKGo9MDtqPGFfb3B0aW9ucy7DhjtqKyspe2lmKGFfb3B0aW9uc1tqXS7Dij09YV9zZWxlY3RzW2ldKV8kKGkpLm9wdGlvbnNbal0uc2VsZWN0ZWQ9w4s7fX19O0VBLsOELnN3aXRjaF90b19maWxlPcODKGZpbGVfdG9fc2hvdyxmb3JjZV9yZWZyZXNoKXtpZihmaWxlX3RvX3Nob3chPcOBLmN1cnJfZmlsZXx8Zm9yY2VfcmVmcmVzaCl7w4Euc2F2ZV9maWxlKMOBLmN1cnJfZmlsZSk7aWYow4EuY3Vycl9maWxlIT0nJynDgS5leGVjQ29tbWFuZCgnZmlsZV9zd2l0Y2hfb2ZmJyzDgS5maWxlc1vDgS5jdXJyX2ZpbGVdKTvDgS5kaXNwbGF5X2ZpbGUoZmlsZV90b19zaG93KTtpZihmaWxlX3RvX3Nob3chPScnKcOBLmV4ZWNDb21tYW5kKCdmaWxlX3N3aXRjaF9vbicsw4EuZmlsZXNbZmlsZV90b19zaG93XSk7fX07RUEuw4QuZ2V0X2ZpbGU9w4MoaWQpe2lmKGlkPT3DgS5jdXJyX2ZpbGUpw4Euc2F2ZV9maWxlKGlkKTtyZXR1cm4gw4EuZmlsZXNbaWRdO307RUEuw4QuZ2V0X2FsbF9maWxlcz3Dgygpe3RtcF9maWxlcz3DgS5maWxlczvDgS5zYXZlX2ZpbGUow4EuY3Vycl9maWxlKTtpZih0bXBfZmlsZXNbJyddKWRlbGV0ZSjDgS5maWxlc1snJ10pO3JldHVybiB0bXBfZmlsZXM7fTtFQS7DhC5jaGVja19maWxlX2NoYW5nZXM9w4MoKXt2YXIgaWQ9w4EuY3Vycl9maWxlO2lmKMOBLmZpbGVzW2lkXSYmw4EuZmlsZXNbaWRdWydjb21wYXJlX2VkaXRlZF90ZXh0J10hPXVuZGVmaW5lZCl7aWYow4EuZmlsZXNbaWRdWydjb21wYXJlX2VkaXRlZF90ZXh0J10uw4Y9PcOBLsOCLsOKLsOGJibDgS5maWxlc1tpZF1bJ2NvbXBhcmVfZWRpdGVkX3RleHQnXT09w4Euw4Iuw4ope2lmKMOBLmZpbGVzW2lkXVsnZWRpdGVkJ10hPcOMKcOBLnNldF9maWxlX2VkaXRlZF9tb2RlKGlkLMOMKTt9XG5lbHNle2lmKMOBLmZpbGVzW2lkXVsnZWRpdGVkJ10hPcOLKcOBLnNldF9maWxlX2VkaXRlZF9tb2RlKGlkLMOLKTt9fX07RUEuw4Quc2V0X2ZpbGVfZWRpdGVkX21vZGU9w4MoaWQsdG8pe2lmKMOBLmZpbGVzW2lkXSYmXyQow4EuZmlsZXNbaWRdWydodG1sX2lkJ10pKXt2YXIgbGluaz1fJCjDgS5maWxlc1tpZF1bJ2h0bWxfaWQnXSkuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2EnKVswXTtpZih0bz09w4spe2xpbmsuY2xhc3NOYW1lPSdlZGl0ZWQnO31cbmVsc2V7bGluay5jbGFzc05hbWU9Jyc7aWYoaWQ9PcOBLmN1cnJfZmlsZSl0ZXh0PcOBLsOCLsOKO1xuZWxzZSB0ZXh0PcOBLmZpbGVzW2lkXVsndGV4dCddO8OBLmZpbGVzW2lkXVsnY29tcGFyZV9lZGl0ZWRfdGV4dCddPXRleHQ7fcOBLmZpbGVzW2lkXVsnZWRpdGVkJ109dG87fX07RUEuw4Quc2V0X3Nob3dfbGluZV9jb2xvcnM9w4MobmV3X8OKKXvDgS5zaG93X2xpbmVfY29sb3JzPW5ld1/DijtpZihuZXdfw4opw4Euc2VsZWN0aW9uX2ZpZWxkLmNsYXNzTmFtZSs9JyBzaG93X2NvbG9ycyc7XG5lbHNlIMOBLnNlbGVjdGlvbl9maWVsZC5jbGFzc05hbWU9w4Euc2VsZWN0aW9uX2ZpZWxkLmNsYXNzTmFtZS5yZXBsYWNlKC8gc2hvd19jb2xvcnMvZywnJyk7fTt2YXIgRUFfa2V5cz17ODpcIlJldG91ciBhcnJpZXJlXCIsOTpcIlRhYnVsYXRpb25cIiwxMjpcIk1pbGlldShwYXZlIG51bWVyaXF1ZSlcIiwxMzpcIkVudHJlclwiLDE2OlwiU2hpZnRcIiwxNzpcIkN0cmxcIiwxODpcIkFsdFwiLDE5OlwiUGF1c2VcIiwyMDpcIlZlcnIgTWFqXCIsMjc6XCJFc2NcIiwzMjpcIlNwYWNlXCIsMzM6XCJQYWdlIHVwXCIsMzQ6XCJQYWdlIGRvd25cIiwzNTpcIkVuZFwiLDM2OlwiQmVnaW5cIiwzNzpcIkxlZnRcIiwzODpcIlVwXCIsMzk6XCJSaWdodFwiLDQwOlwiRG93blwiLDQ0OlwiSW1wciBlY3JhblwiLDQ1OlwiSW5zZXJcIiw0NjpcIlN1cHByXCIsOTE6XCJNZW51IERlbWFycmVyIFdpbmRvd3MgLyB0b3VjaGUgcG9tbWUgTWFjXCIsOTI6XCJNZW51IERlbWFycmVyIFdpbmRvd3NcIiw5MzpcIk1lbnUgY29udGV4dHVlbCBXaW5kb3dzXCIsMTEyOlwiRjFcIiwxMTM6XCJGMlwiLDExNDpcIkYzXCIsMTE1OlwiRjRcIiwxMTY6XCJGNVwiLDExNzpcIkY2XCIsMTE4OlwiRjdcIiwxMTk6XCJGOFwiLDEyMDpcIkY5XCIsMTIxOlwiRjEwXCIsMTIyOlwiRjExXCIsMTIzOlwiRjEyXCIsMTQ0OlwiVmVyciBOdW1cIiwxNDU6XCJBcnJldCBkZWZpbFwifTvDgyBrZXlEb3duKGUpe2lmKCFlKXtlPWV2ZW50O31mb3IodmFyIGkgaW4gZUEucGx1Z2lucyl7aWYodHlwZW9mKGVBLnBsdWdpbnNbaV0ub25rZXlkb3duKT09XCLDg1wiKXtpZihlQS5wbHVnaW5zW2ldLm9ua2V5ZG93bihlKT09PcOMKXtpZihlQS5pc0lFKWUua2V5Q29kZT0wO3JldHVybiDDjDt9fX12YXIgdGFyZ2V0X2lkPShlLnRhcmdldHx8ZS5zcmNFbGVtZW50KS5pZDt2YXIgdXNlPcOMO2lmKEVBX2tleXNbZS5rZXlDb2RlXSlsZXR0ZXI9RUFfa2V5c1tlLmtleUNvZGVdO1xuZWxzZSBsZXR0ZXI9U3RyaW5nLmZyb21DaGFyQ29kZShlLmtleUNvZGUpO3ZhciBsb3dfbGV0dGVyPWxldHRlci50b0xvd2VyQ2FzZSgpO2lmKGxldHRlcj09XCJQYWdlIHVwXCImJiFBbHRQcmVzc2VkKGUpJiYhZUEuaXNPcGVyYSl7ZUEuZXhlY0NvbW1hbmQoXCJzY3JvbGxfcGFnZVwiLHtcImRpclwiOlwidXBcIixcInNoaWZ0XCI6U2hpZnRQcmVzc2VkKGUpfSk7dXNlPcOLO31cbmVsc2UgaWYobGV0dGVyPT1cIlBhZ2UgZG93blwiJiYhQWx0UHJlc3NlZChlKSYmIWVBLmlzT3BlcmEpe2VBLmV4ZWNDb21tYW5kKFwic2Nyb2xsX3BhZ2VcIix7XCJkaXJcIjpcImRvd25cIixcInNoaWZ0XCI6U2hpZnRQcmVzc2VkKGUpfSk7dXNlPcOLO31cbmVsc2UgaWYoZUEuaXNfZWRpdGFibGU9PcOMKXtyZXR1cm4gw4s7fVxuZWxzZSBpZihsZXR0ZXI9PVwiVGFidWxhdGlvblwiJiZ0YXJnZXRfaWQ9PVwiw4JcIiYmIUN0cmxQcmVzc2VkKGUpJiYhQWx0UHJlc3NlZChlKSl7aWYoU2hpZnRQcmVzc2VkKGUpKWVBLmV4ZWNDb21tYW5kKFwiaW52ZXJ0X3RhYl9zZWxlY3Rpb25cIik7XG5lbHNlIGVBLmV4ZWNDb21tYW5kKFwidGFiX3NlbGVjdGlvblwiKTt1c2U9w4s7aWYoZUEuaXNPcGVyYXx8KGVBLmlzRmlyZWZveCYmZUEuaXNNYWMpKXNldFRpbWVvdXQoXCJlQS5leGVjQ29tbWFuZCgnZm9jdXMnKTtcIiwxKTt9XG5lbHNlIGlmKGxldHRlcj09XCJFbnRyZXJcIiYmdGFyZ2V0X2lkPT1cIsOCXCIpe2lmKGVBLnByZXNzX2VudGVyKCkpdXNlPcOLO31cbmVsc2UgaWYobGV0dGVyPT1cIkVudHJlclwiJiZ0YXJnZXRfaWQ9PVwiYXJlYV9zZWFyY2hcIil7ZUEuZXhlY0NvbW1hbmQoXCJhcmVhX3NlYXJjaFwiKTt1c2U9w4s7fVxuZWxzZSAgaWYobGV0dGVyPT1cIkVzY1wiKXtlQS5leGVjQ29tbWFuZChcImNsb3NlX2FsbF9pbmxpbmVfcG9wdXBcIixlKTt1c2U9w4s7fVxuZWxzZSBpZihDdHJsUHJlc3NlZChlKSYmIUFsdFByZXNzZWQoZSkmJiFTaGlmdFByZXNzZWQoZSkpe3N3aXRjaChsb3dfbGV0dGVyKXtjYXNlIFwiZlwiOmVBLmV4ZWNDb21tYW5kKFwiYXJlYV9zZWFyY2hcIik7dXNlPcOLO2JyZWFrO2Nhc2UgXCJyXCI6ZUEuZXhlY0NvbW1hbmQoXCJhcmVhX3JlcGxhY2VcIik7dXNlPcOLO2JyZWFrO2Nhc2UgXCJxXCI6ZUEuZXhlY0NvbW1hbmQoXCJjbG9zZV9hbGxfaW5saW5lX3BvcHVwXCIsZSk7dXNlPcOLO2JyZWFrO2Nhc2UgXCJoXCI6ZUEuZXhlY0NvbW1hbmQoXCJjaGFuZ2VfaGlnaGxpZ2h0XCIpO3VzZT3DizticmVhaztjYXNlIFwiZ1wiOnNldFRpbWVvdXQoXCJlQS5leGVjQ29tbWFuZCgnZ29fdG9fbGluZScpO1wiLDUpO3VzZT3DizticmVhaztjYXNlIFwiZVwiOmVBLmV4ZWNDb21tYW5kKFwic2hvd19oZWxwXCIpO3VzZT3DizticmVhaztjYXNlIFwielwiOnVzZT3DiztlQS5leGVjQ29tbWFuZChcInVuZG9cIik7YnJlYWs7Y2FzZSBcInlcIjp1c2U9w4s7ZUEuZXhlY0NvbW1hbmQoXCJyZWRvXCIpO2JyZWFrO2RlZmF1bHQ6YnJlYWs7fX1pZihlQS5uZXh0LsOGID4gMCl7c2V0VGltZW91dChcImVBLmNoZWNrX3JlZG8oKTtcIiwxMCk7fXNldFRpbWVvdXQoXCJlQS5jaGVja19maWxlX2NoYW5nZXMoKTtcIiwxMCk7aWYodXNlKXtpZihlQS5pc0lFKWUua2V5Q29kZT0wO3JldHVybiDDjDt9cmV0dXJuIMOLO307w4MgQWx0UHJlc3NlZChlKXtpZih3aW5kb3cuZXZlbnQpe3JldHVybih3aW5kb3cuZXZlbnQuYWx0S2V5KTt9XG5lbHNle2lmKGUubW9kaWZpZXJzKXJldHVybihlLmFsdEtleXx8KGUubW9kaWZpZXJzICUgMikpO1xuZWxzZSByZXR1cm4gZS5hbHRLZXk7fX07w4MgQ3RybFByZXNzZWQoZSl7aWYod2luZG93LmV2ZW50KXtyZXR1cm4od2luZG93LmV2ZW50LmN0cmxLZXkpO31cbmVsc2V7cmV0dXJuKGUuY3RybEtleXx8KGUubW9kaWZpZXJzPT0yKXx8KGUubW9kaWZpZXJzPT0zKXx8KGUubW9kaWZpZXJzPjUpKTt9fTvDgyBTaGlmdFByZXNzZWQoZSl7aWYod2luZG93LmV2ZW50KXtyZXR1cm4od2luZG93LmV2ZW50LnNoaWZ0S2V5KTt9XG5lbHNle3JldHVybihlLnNoaWZ0S2V5fHwoZS5tb2RpZmllcnM+MykpO319OwlFQS7DhC5zaG93X3NlYXJjaD3Dgygpe2lmKF8kKFwiYXJlYV9zZWFyY2hfcmVwbGFjZVwiKS7Dhy52aXNpYmlsaXR5PT1cInZpc2libGVcIil7w4EuaGlkZGVuX3NlYXJjaCgpO31cbmVsc2V7w4Eub3Blbl9pbmxpbmVfcG9wdXAoXCJhcmVhX3NlYXJjaF9yZXBsYWNlXCIpO3ZhciB0ZXh0PcOBLmFyZWFfZ2V0X3NlbGVjdGlvbigpO3ZhciBzZWFyY2g9dGV4dC5zcGxpdChcIlxcblwiKVswXTtfJChcImFyZWFfc2VhcmNoXCIpLsOKPXNlYXJjaDtfJChcImFyZWFfc2VhcmNoXCIpLmZvY3VzKCk7fX07RUEuw4QuaGlkZGVuX3NlYXJjaD3Dgygpe8OBLmNsb3NlX2lubGluZV9wb3B1cChcImFyZWFfc2VhcmNoX3JlcGxhY2VcIik7fTtFQS7DhC5hcmVhX3NlYXJjaD3Dgyhtb2RlKXtpZighbW9kZSltb2RlPVwic2VhcmNoXCI7XyQoXCJhcmVhX3NlYXJjaF9tc2dcIikuaW5uZXJIVE1MPVwiXCI7dmFyIHNlYXJjaD1fJChcImFyZWFfc2VhcmNoXCIpLsOKO8OBLsOCLmZvY3VzKCk7w4Euw4Iuw4JGb2N1c2VkPcOLO3ZhciBpbmZvcz3DgS5nZXRfc2VsZWN0aW9uX2luZm9zKCk7dmFyIHN0YXJ0PWluZm9zW1wic2VsZWN0aW9uU3RhcnRcIl07dmFyIHBvcz0tMTt2YXIgcG9zX2JlZ2luPS0xO3ZhciDDhj1zZWFyY2guw4Y7aWYoXyQoXCJhcmVhX3NlYXJjaF9yZXBsYWNlXCIpLsOHLnZpc2liaWxpdHkhPVwidmlzaWJsZVwiKXvDgS5zaG93X3NlYXJjaCgpO3JldHVybjt9aWYoc2VhcmNoLsOGPT0wKXtfJChcImFyZWFfc2VhcmNoX21zZ1wiKS5pbm5lckhUTUw9w4EuZ2V0X3RyYW5zbGF0aW9uKFwic2VhcmNoX2ZpZWxkX2VtcHR5XCIpO3JldHVybjt9aWYobW9kZSE9XCJyZXBsYWNlXCIpe2lmKF8kKFwiYXJlYV9zZWFyY2hfcmVnX2V4cFwiKS5jaGVja2VkKXN0YXJ0Kys7XG5lbHNlIHN0YXJ0Kz1zZWFyY2guw4Y7fWlmKF8kKFwiYXJlYV9zZWFyY2hfcmVnX2V4cFwiKS5jaGVja2VkKXt2YXIgb3B0PVwibVwiO2lmKCFfJChcImFyZWFfc2VhcmNoX21hdGNoX2Nhc2VcIikuY2hlY2tlZClvcHQrPVwiaVwiO3ZhciByZWc9bmV3IFJlZ0V4cChzZWFyY2gsb3B0KTtwb3M9aW5mb3NbXCJmdWxsX3RleHRcIl0uc3Vic3RyKHN0YXJ0KS5zZWFyY2gocmVnKTtwb3NfYmVnaW49aW5mb3NbXCJmdWxsX3RleHRcIl0uc2VhcmNoKHJlZyk7aWYocG9zIT0tMSl7cG9zKz1zdGFydDvDhj1pbmZvc1tcImZ1bGxfdGV4dFwiXS5zdWJzdHIoc3RhcnQpLm1hdGNoKHJlZylbMF0uw4Y7fVxuZWxzZSBpZihwb3NfYmVnaW4hPS0xKXvDhj1pbmZvc1tcImZ1bGxfdGV4dFwiXS5tYXRjaChyZWcpWzBdLsOGO319XG5lbHNle2lmKF8kKFwiYXJlYV9zZWFyY2hfbWF0Y2hfY2FzZVwiKS5jaGVja2VkKXtwb3M9aW5mb3NbXCJmdWxsX3RleHRcIl0uaW5kZXhPZihzZWFyY2gsc3RhcnQpO3Bvc19iZWdpbj1pbmZvc1tcImZ1bGxfdGV4dFwiXS5pbmRleE9mKHNlYXJjaCk7fVxuZWxzZXtwb3M9aW5mb3NbXCJmdWxsX3RleHRcIl0udG9Mb3dlckNhc2UoKS5pbmRleE9mKHNlYXJjaC50b0xvd2VyQ2FzZSgpLHN0YXJ0KTtwb3NfYmVnaW49aW5mb3NbXCJmdWxsX3RleHRcIl0udG9Mb3dlckNhc2UoKS5pbmRleE9mKHNlYXJjaC50b0xvd2VyQ2FzZSgpKTt9fWlmKHBvcz09LTEmJnBvc19iZWdpbj09LTEpe18kKFwiYXJlYV9zZWFyY2hfbXNnXCIpLmlubmVySFRNTD1cIjxzdHJvbmc+XCIrc2VhcmNoK1wiPC9zdHJvbmc+IFwiK8OBLmdldF90cmFuc2xhdGlvbihcIm5vdF9mb3VuZFwiKTtyZXR1cm47fVxuZWxzZSBpZihwb3M9PS0xJiZwb3NfYmVnaW4gIT0tMSl7YmVnaW49cG9zX2JlZ2luO18kKFwiYXJlYV9zZWFyY2hfbXNnXCIpLmlubmVySFRNTD3DgS5nZXRfdHJhbnNsYXRpb24oXCJyZXN0YXJ0X3NlYXJjaF9hdF9iZWdpblwiKTt9XG5lbHNlIGJlZ2luPXBvcztpZihtb2RlPT1cInJlcGxhY2VcIiYmcG9zPT1pbmZvc1tcImluZGV4T2ZDdXJzb3JcIl0pe3ZhciByZXBsYWNlPV8kKFwiYXJlYV9yZXBsYWNlXCIpLsOKO3ZhciBuZXdfdGV4dD1cIlwiO2lmKF8kKFwiYXJlYV9zZWFyY2hfcmVnX2V4cFwiKS5jaGVja2VkKXt2YXIgb3B0PVwibVwiO2lmKCFfJChcImFyZWFfc2VhcmNoX21hdGNoX2Nhc2VcIikuY2hlY2tlZClvcHQrPVwiaVwiO3ZhciByZWc9bmV3IFJlZ0V4cChzZWFyY2gsb3B0KTtuZXdfdGV4dD1pbmZvc1tcImZ1bGxfdGV4dFwiXS5zdWJzdHIoMCxiZWdpbikraW5mb3NbXCJmdWxsX3RleHRcIl0uc3Vic3RyKHN0YXJ0KS5yZXBsYWNlKHJlZyxyZXBsYWNlKTt9XG5lbHNle25ld190ZXh0PWluZm9zW1wiZnVsbF90ZXh0XCJdLnN1YnN0cigwLGJlZ2luKStyZXBsYWNlK2luZm9zW1wiZnVsbF90ZXh0XCJdLnN1YnN0cihiZWdpbivDhik7fcOBLsOCLsOKPW5ld190ZXh0O8OBLmFyZWFfc2VsZWN0KGJlZ2luLMOGKTvDgS5hcmVhX3NlYXJjaCgpO31cbmVsc2Ugw4EuYXJlYV9zZWxlY3QoYmVnaW4sw4YpO307RUEuw4QuYXJlYV9yZXBsYWNlPcODKCl7w4EuYXJlYV9zZWFyY2goXCJyZXBsYWNlXCIpO307RUEuw4QuYXJlYV9yZXBsYWNlX2FsbD3Dgygpe3ZhciBiYXNlX3RleHQ9w4Euw4Iuw4o7dmFyIHNlYXJjaD1fJChcImFyZWFfc2VhcmNoXCIpLsOKO3ZhciByZXBsYWNlPV8kKFwiYXJlYV9yZXBsYWNlXCIpLsOKO2lmKHNlYXJjaC7Dhj09MCl7XyQoXCJhcmVhX3NlYXJjaF9tc2dcIikuaW5uZXJIVE1MPcOBLmdldF90cmFuc2xhdGlvbihcInNlYXJjaF9maWVsZF9lbXB0eVwiKTtyZXR1cm47fXZhciBuZXdfdGV4dD1cIlwiO3ZhciBuYl9jaGFuZ2U9MDtpZihfJChcImFyZWFfc2VhcmNoX3JlZ19leHBcIikuY2hlY2tlZCl7dmFyIG9wdD1cIm1nXCI7aWYoIV8kKFwiYXJlYV9zZWFyY2hfbWF0Y2hfY2FzZVwiKS5jaGVja2VkKW9wdCs9XCJpXCI7dmFyIHJlZz1uZXcgUmVnRXhwKHNlYXJjaCxvcHQpO25iX2NoYW5nZT1pbmZvc1tcImZ1bGxfdGV4dFwiXS5tYXRjaChyZWcpLsOGO25ld190ZXh0PWluZm9zW1wiZnVsbF90ZXh0XCJdLnJlcGxhY2UocmVnLHJlcGxhY2UpO31cbmVsc2V7aWYoXyQoXCJhcmVhX3NlYXJjaF9tYXRjaF9jYXNlXCIpLmNoZWNrZWQpe3ZhciB0bXBfdGFiPWJhc2VfdGV4dC5zcGxpdChzZWFyY2gpO25iX2NoYW5nZT10bXBfdGFiLsOGLTE7bmV3X3RleHQ9dG1wX3RhYi5qb2luKHJlcGxhY2UpO31cbmVsc2V7dmFyIGxvd2VyX8OKPWJhc2VfdGV4dC50b0xvd2VyQ2FzZSgpO3ZhciBsb3dlcl9zZWFyY2g9c2VhcmNoLnRvTG93ZXJDYXNlKCk7dmFyIHN0YXJ0PTA7dmFyIHBvcz1sb3dlcl/Dii5pbmRleE9mKGxvd2VyX3NlYXJjaCk7d2hpbGUocG9zIT0tMSl7bmJfY2hhbmdlKys7bmV3X3RleHQrPcOBLsOCLsOKLnN1YnN0cmluZyhzdGFydCxwb3MpK3JlcGxhY2U7c3RhcnQ9cG9zK3NlYXJjaC7Dhjtwb3M9bG93ZXJfw4ouaW5kZXhPZihsb3dlcl9zZWFyY2gscG9zKzEpO31uZXdfdGV4dCs9w4Euw4Iuw4ouc3Vic3RyaW5nKHN0YXJ0KTt9fWlmKG5ld190ZXh0PT1iYXNlX3RleHQpe18kKFwiYXJlYV9zZWFyY2hfbXNnXCIpLmlubmVySFRNTD1cIjxzdHJvbmc+XCIrc2VhcmNoK1wiPC9zdHJvbmc+IFwiK8OBLmdldF90cmFuc2xhdGlvbihcIm5vdF9mb3VuZFwiKTt9XG5lbHNle8OBLsOCLsOKPW5ld190ZXh0O18kKFwiYXJlYV9zZWFyY2hfbXNnXCIpLmlubmVySFRNTD1cIjxzdHJvbmc+XCIrbmJfY2hhbmdlK1wiPC9zdHJvbmc+IFwiK8OBLmdldF90cmFuc2xhdGlvbihcIm9jY3VycmVuY2VfcmVwbGFjZWRcIik7c2V0VGltZW91dChcImVBLsOCLmZvY3VzKCk7ZUEuw4Iuw4JGb2N1c2VkPcOLO1wiLDEwMCk7fX07IEVBLsOELmNoYW5nZV9oaWdobGlnaHQ9w4MoY2hhbmdlX3RvKXtpZijDgS7DhVtcInN5bnRheFwiXS7Dhj09MCYmY2hhbmdlX3RvPT3DjCl7w4Euc3dpdGNoQ2xhc3NTdGlja3koXyQoXCJoaWdobGlnaHRcIiksJ2VkaXRBcmVhQnV0dG9uRGlzYWJsZWQnLMOLKTvDgS5zd2l0Y2hDbGFzc1N0aWNreShfJChcInJlc2V0X2hpZ2hsaWdodFwiKSwnZWRpdEFyZWFCdXR0b25EaXNhYmxlZCcsw4spO3JldHVybiDDjDt9aWYow4EuZG9faGlnaGxpZ2h0PT1jaGFuZ2VfdG8pcmV0dXJuIMOMO8OBLmdldElFU2VsZWN0aW9uKCk7dmFyIHBvc19zdGFydD3DgS7Dgi5zZWxlY3Rpb25TdGFydDt2YXIgcG9zX2VuZD3DgS7Dgi5zZWxlY3Rpb25FbmQ7aWYow4EuZG9faGlnaGxpZ2h0PT09w4t8fGNoYW5nZV90bz09w4wpw4EuZGlzYWJsZV9oaWdobGlnaHQoKTtcbmVsc2Ugw4EuZW5hYmxlX2hpZ2hsaWdodCgpO8OBLsOCLmZvY3VzKCk7w4Euw4Iuc2VsZWN0aW9uU3RhcnQ9cG9zX3N0YXJ0O8OBLsOCLnNlbGVjdGlvbkVuZD1wb3NfZW5kO8OBLnNldElFU2VsZWN0aW9uKCk7fTtFQS7DhC5kaXNhYmxlX2hpZ2hsaWdodD3DgyhkaXNwbGF5T25seSl7dmFyIHQ9w4EsYT10LsOCLG5ld19PYmosb2xkX2NsYXNzLG5ld19jbGFzczt0LnNlbGVjdGlvbl9maWVsZC5pbm5lckhUTUw9XCJcIjt0LnNlbGVjdGlvbl9maWVsZF90ZXh0LmlubmVySFRNTD1cIlwiO3QuY29udGVudF9oaWdobGlnaHQuw4cudmlzaWJpbGl0eT1cImhpZGRlblwiO25ld19PYmo9dC5jb250ZW50X2hpZ2hsaWdodC5jbG9uZU5vZGUow4wpO25ld19PYmouaW5uZXJIVE1MPVwiXCI7dC5jb250ZW50X2hpZ2hsaWdodC7DiE5vZGUuaW5zZXJ0QmVmb3JlKG5ld19PYmosdC5jb250ZW50X2hpZ2hsaWdodCk7dC5jb250ZW50X2hpZ2hsaWdodC7DiE5vZGUucmVtb3ZlQ2hpbGQodC5jb250ZW50X2hpZ2hsaWdodCk7dC5jb250ZW50X2hpZ2hsaWdodD1uZXdfT2JqO29sZF9jbGFzcz3DiC5nZXRBdHRyaWJ1dGUoYSxcImNsYXNzXCIpO2lmKG9sZF9jbGFzcyl7bmV3X2NsYXNzPW9sZF9jbGFzcy5yZXBsYWNlKFwiaGlkZGVuXCIsXCJcIik7w4guc2V0QXR0cmlidXRlKGEsXCJjbGFzc1wiLG5ld19jbGFzcyk7fWEuw4cuYmFja2dyb3VuZENvbG9yPVwidHJhbnPDiFwiO3Quc3dpdGNoQ2xhc3NTdGlja3koXyQoXCJoaWdobGlnaHRcIiksJ2VkaXRBcmVhQnV0dG9uTm9ybWFsJyzDiyk7dC5zd2l0Y2hDbGFzc1N0aWNreShfJChcInJlc2V0X2hpZ2hsaWdodFwiKSwnZWRpdEFyZWFCdXR0b25EaXNhYmxlZCcsw4spO3QuZG9faGlnaGxpZ2h0PcOMO3Quc3dpdGNoQ2xhc3NTdGlja3koXyQoXCJjaGFuZ2Vfc21vb3RoX3NlbGVjdGlvblwiKSwnZWRpdEFyZWFCdXR0b25TZWxlY3RlZCcsw4spO2lmKHR5cGVvZih0LnNtb290aF9zZWxlY3Rpb25fYmVmb3JlX2hpZ2hsaWdodCkhPVwidW5kZWZpbmVkXCImJnQuc21vb3RoX3NlbGVjdGlvbl9iZWZvcmVfaGlnaGxpZ2h0PT09w4wpe3QuY2hhbmdlX3Ntb290aF9zZWxlY3Rpb25fbW9kZSjDjCk7fX07RUEuw4QuZW5hYmxlX2hpZ2hsaWdodD3Dgygpe3ZhciB0PcOBLGE9dC7DgixuZXdfY2xhc3M7dC5zaG93X3dhaXRpbmdfc2NyZWVuKCk7dC5jb250ZW50X2hpZ2hsaWdodC7Dhy52aXNpYmlsaXR5PVwidmlzaWJsZVwiO25ld19jbGFzcz3DiC5nZXRBdHRyaWJ1dGUoYSxcImNsYXNzXCIpK1wiIGhpZGRlblwiO8OILnNldEF0dHJpYnV0ZShhLFwiY2xhc3NcIixuZXdfY2xhc3MpO2lmKHQuaXNJRSlhLsOHLmJhY2tncm91bmRDb2xvcj1cIiNGRkZGRkZcIjt0LnN3aXRjaENsYXNzU3RpY2t5KF8kKFwiaGlnaGxpZ2h0XCIpLCdlZGl0QXJlYUJ1dHRvblNlbGVjdGVkJyzDjCk7dC5zd2l0Y2hDbGFzc1N0aWNreShfJChcInJlc2V0X2hpZ2hsaWdodFwiKSwnZWRpdEFyZWFCdXR0b25Ob3JtYWwnLMOMKTt0LnNtb290aF9zZWxlY3Rpb25fYmVmb3JlX2hpZ2hsaWdodD10LnNtb290aF9zZWxlY3Rpb247aWYoIXQuc21vb3RoX3NlbGVjdGlvbil0LmNoYW5nZV9zbW9vdGhfc2VsZWN0aW9uX21vZGUow4spO3Quc3dpdGNoQ2xhc3NTdGlja3koXyQoXCJjaGFuZ2Vfc21vb3RoX3NlbGVjdGlvblwiKSwnZWRpdEFyZWFCdXR0b25EaXNhYmxlZCcsw4spO3QuZG9faGlnaGxpZ2h0PcOLO3QucmVzeW5jX2hpZ2hsaWdodCgpO3QuaGlkZV93YWl0aW5nX3NjcmVlbigpO307RUEuw4QubWFqX2hpZ2hsaWdodD3DgyhpbmZvcyl7dmFyIGRlYnVnX29wdGk9XCJcIix0cHNfc3RhcnQ9bmV3IERhdGUoKS5nZXRUaW1lKCksdHBzX21pZGRsZV9vcHRpPW5ldyBEYXRlKCkuZ2V0VGltZSgpO3ZhciB0PcOBLGhpZ2h0bGlnaHRlZF90ZXh0LHVwZGF0ZWRfaGlnaGxpZ2h0O3ZhciB0ZXh0VG9IaWdobGlnaHQ9aW5mb3NbXCJmdWxsX3RleHRcIl0sZG9TeW50YXhPcHRpPcOMLGRvSHRtbE9wdGk9w4wsc3RheV9iZWdpbj1cIlwiLHN0YXlfZW5kPVwiXCIsdHJhY2VfbmV3LHRyYWNlX2xhc3Q7aWYodC5sYXN0X3RleHRfdG9faGlnaGxpZ2h0PT1pbmZvc1tcImZ1bGxfdGV4dFwiXSYmdC5yZXN5bmNfaGlnaGxpZ2h0IT09w4spcmV0dXJuO2lmKHQucmVsb2FkX2hpZ2hsaWdodD09PcOLKXt0LnJlbG9hZF9oaWdobGlnaHQ9w4w7fVxuZWxzZSBpZih0ZXh0VG9IaWdobGlnaHQuw4Y9PTApe3RleHRUb0hpZ2hsaWdodD1cIlxcbiBcIjt9XG5lbHNle2NoYW5nZXM9dC5jaGVja1RleHRFdm9sdXRpb24odC5sYXN0X3RleHRfdG9faGlnaGxpZ2h0LHRleHRUb0hpZ2hsaWdodCk7dHJhY2VfbmV3PXQuZ2V0X3N5bnRheF90cmFjZShjaGFuZ2VzLm5ld1RleHRMaW5lKS5yZXBsYWNlKC9cXHIvZywnJyk7dHJhY2VfbGFzdD10LmdldF9zeW50YXhfdHJhY2UoY2hhbmdlcy5sYXN0VGV4dExpbmUpLnJlcGxhY2UoL1xcci9nLCcnKTtkb1N5bnRheE9wdGk9KHRyYWNlX25ldz09dHJhY2VfbGFzdCk7aWYoIWRvU3ludGF4T3B0aSYmdHJhY2VfbmV3PT1cIlxcblwiK3RyYWNlX2xhc3QmJi9eWyBcdFxzXSpcXG5bIFx0XHNdKiQvLnRlc3QoY2hhbmdlcy5uZXdUZXh0LnJlcGxhY2UoL1xcci9nLCcnKSkmJmNoYW5nZXMubGFzdFRleHQ9PVwiXCIpe2RvU3ludGF4T3B0aT3Dizt9aWYoZG9TeW50YXhPcHRpKXt0cHNfbWlkZGxlX29wdGk9bmV3IERhdGUoKS5nZXRUaW1lKCk7c3RheV9iZWdpbj10Lmxhc3RfaGlnaHRsaWdodGVkX3RleHQuc3BsaXQoXCJcXG5cIikuc2xpY2UoMCxjaGFuZ2VzLmxpbmVTdGFydCkuam9pbihcIlxcblwiKTtpZihjaGFuZ2VzLmxpbmVTdGFydD4wKXN0YXlfYmVnaW4rPVwiXFxuXCI7c3RheV9lbmQ9dC5sYXN0X2hpZ2h0bGlnaHRlZF90ZXh0LnNwbGl0KFwiXFxuXCIpLnNsaWNlKGNoYW5nZXMubGluZUxhc3RFbmQrMSkuam9pbihcIlxcblwiKTtpZihzdGF5X2VuZC7Dhj4wKXN0YXlfZW5kPVwiXFxuXCIrc3RheV9lbmQ7aWYoc3RheV9iZWdpbi5zcGxpdCgnPHNwYW4nKS7DhiAhPXN0YXlfYmVnaW4uc3BsaXQoJzwvc3BhbicpLsOGfHxzdGF5X2VuZC5zcGxpdCgnPHNwYW4nKS7DhiAhPXN0YXlfZW5kLnNwbGl0KCc8L3NwYW4nKS7Dhil7ZG9TeW50YXhPcHRpPcOMO3N0YXlfZW5kPScnO3N0YXlfYmVnaW49Jyc7fVxuZWxzZXtpZihzdGF5X2JlZ2luLsOGPT0wJiZjaGFuZ2VzLnBvc0xhc3RFbmQ9PS0xKWNoYW5nZXMubmV3VGV4dExpbmUrPVwiXFxuXCI7dGV4dFRvSGlnaGxpZ2h0PWNoYW5nZXMubmV3VGV4dExpbmU7fX1pZih0LsOFW1wiZGVidWdcIl0pe3ZhciBjaD1jaGFuZ2VzO2RlYnVnX29wdGk9KGRvU3ludGF4T3B0aT9cIk9wdGltaXNhdGlvblwiOlwiTm8gb3B0aW1pc2F0aW9uXCIpK1wiIHN0YXJ0OlwiK2NoLnBvc1N0YXJ0K1wiKFwiK2NoLmxpbmVTdGFydCtcIilcIitcIiBlbmRfbmV3OlwiK2NoLnBvc05ld0VuZCtcIihcIitjaC5saW5lTmV3RW5kK1wiKVwiK1wiIGVuZF9sYXN0OlwiK2NoLnBvc0xhc3RFbmQrXCIoXCIrY2gubGluZUxhc3RFbmQrXCIpXCIrXCJcXG5jaGFuZ2VkX3RleHQ6XCIrY2gubmV3VGV4dCtcIj0+IHRyYWNlOlwiK3RyYWNlX25ldytcIlxcbmNoYW5nZWRfbGFzdF90ZXh0OlwiK2NoLmxhc3RUZXh0K1wiPT4gdHJhY2U6XCIrdHJhY2VfbGFzdCtcIlxcbmNoYW5nZWRfbGluZTpcIitjaC5uZXdUZXh0TGluZStcIlxcbmxhc3RfY2hhbmdlZF9saW5lOlwiK2NoLmxhc3RUZXh0TGluZStcIlxcbnN0YXlfYmVnaW46XCIrc3RheV9iZWdpbi5zbGljZSgtMTAwKStcIlxcbnN0YXlfZW5kOlwiK3N0YXlfZW5kLnN1YnN0cigwLDEwMCk7K1wiXFxuXCI7fX10cHNfZW5kX29wdGk9bmV3IERhdGUoKS5nZXRUaW1lKCk7dXBkYXRlZF9oaWdobGlnaHQ9dC5jb2xvcml6ZV90ZXh0KHRleHRUb0hpZ2hsaWdodCk7dHBzQWZ0ZXJSZWc9bmV3IERhdGUoKS5nZXRUaW1lKCk7ZG9TeW50YXhPcHRpPWRvSHRtbE9wdGk9w4w7aWYoZG9TeW50YXhPcHRpKXt0cnl7dmFyIHJlcGxhY2VkQmxvYyxpLG5iU3RhcnQ9JycsbmJFbmQ9JycsbmV3SHRtbCzDhk9sZCzDhk5ldztyZXBsYWNlZEJsb2M9dC5sYXN0X2hpZ2h0bGlnaHRlZF90ZXh0LnN1YnN0cmluZyhzdGF5X2JlZ2luLsOGLHQubGFzdF9oaWdodGxpZ2h0ZWRfdGV4dC7Dhi1zdGF5X2VuZC7Dhik7w4ZPbGQ9cmVwbGFjZWRCbG9jLsOGO8OGTmV3PXVwZGF0ZWRfaGlnaGxpZ2h0LsOGO2ZvcihpPTA7aSA8IMOGT2xkJiZpIDwgw4ZOZXcmJnJlcGxhY2VkQmxvYy5jaGFyQXQoaSk9PXVwZGF0ZWRfaGlnaGxpZ2h0LmNoYXJBdChpKTtpKyspe31uYlN0YXJ0PWk7Zm9yKGk9MDtpK25iU3RhcnQgPCDDhk9sZCYmaStuYlN0YXJ0IDwgw4ZOZXcmJnJlcGxhY2VkQmxvYy5jaGFyQXQow4ZPbGQtaS0xKT09dXBkYXRlZF9oaWdobGlnaHQuY2hhckF0KMOGTmV3LWktMSk7aSsrKXt9bmJFbmQ9aTtsYXN0SHRtbD1yZXBsYWNlZEJsb2Muc3Vic3RyaW5nKG5iU3RhcnQsw4ZPbGQtbmJFbmQpO25ld0h0bWw9dXBkYXRlZF9oaWdobGlnaHQuc3Vic3RyaW5nKG5iU3RhcnQsw4ZOZXctbmJFbmQpO2lmKG5ld0h0bWwuaW5kZXhPZignPHNwYW4nKT09LTEmJm5ld0h0bWwuaW5kZXhPZignPC9zcGFuJyk9PS0xJiZsYXN0SHRtbC5pbmRleE9mKCc8c3BhbicpPT0tMSYmbGFzdEh0bWwuaW5kZXhPZignPC9zcGFuJyk9PS0xKXt2YXIgYmVnaW5TdHIsbmJPcGVuZGVkU3BhbixuYkNsb3NlZFNwYW4sbmJVbmNoYW5nZWRDaGFycyxzcGFuLHRleHROb2RlO2RvSHRtbE9wdGk9w4s7YmVnaW5TdHI9dC5sYXN0X2hpZ2h0bGlnaHRlZF90ZXh0LnN1YnN0cigwLHN0YXlfYmVnaW4uw4YrbmJTdGFydCk7bmV3SHRtbD1uZXdIdG1sLnJlcGxhY2UoLyZsdDsvZywnPCcpLnJlcGxhY2UoLyZndDsvZywnPicpLnJlcGxhY2UoLyZhbXA7L2csJyYnKTtuYk9wZW5kZWRTcGFuPWJlZ2luU3RyLnNwbGl0KCc8c3BhbicpLsOGLTE7bmJDbG9zZWRTcGFuPWJlZ2luU3RyLnNwbGl0KCc8L3NwYW4nKS7Dhi0xO3NwYW49dC5jb250ZW50X2hpZ2hsaWdodC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc3BhbicpWyBuYk9wZW5kZWRTcGFuIF07w4hTcGFuPXNwYW47bWF4U3RhcnRPZmZzZXQ9bWF4RW5kT2Zmc2V0PTA7aWYobmJPcGVuZGVkU3Bhbj09bmJDbG9zZWRTcGFuKXt3aGlsZSjDiFNwYW4uw4hOb2RlICE9dC5jb250ZW50X2hpZ2hsaWdodCYmw4hTcGFuLsOITm9kZS50YWdOYW1lICE9J1BSRScpe8OIU3Bhbj3DiFNwYW4uw4hOb2RlO319XG5lbHNle21heFN0YXJ0T2Zmc2V0PW1heEVuZE9mZnNldD1iZWdpblN0ci7DhisxO25iQ2xvc2VkPWJlZ2luU3RyLnN1YnN0cihNYXRoLm1heCgwLGJlZ2luU3RyLmxhc3RJbmRleE9mKCc8c3BhbicsbWF4U3RhcnRPZmZzZXQtMSkpKS5zcGxpdCgnPC9zcGFuJykuw4YtMTt3aGlsZShuYkNsb3NlZCA+IDApe25iQ2xvc2VkLS07w4hTcGFuPcOIU3Bhbi7DiE5vZGU7fXdoaWxlKMOIU3Bhbi7DiE5vZGUgIT10LmNvbnRlbnRfaGlnaGxpZ2h0JibDiFNwYW4uw4hOb2RlLnRhZ05hbWUgIT0nUFJFJyYmKHRtcE1heFN0YXJ0T2Zmc2V0PU1hdGgubWF4KDAsYmVnaW5TdHIubGFzdEluZGV4T2YoJzxzcGFuJyxtYXhTdGFydE9mZnNldC0xKSkpPCh0bXBNYXhFbmRPZmZzZXQ9TWF0aC5tYXgoMCxiZWdpblN0ci5sYXN0SW5kZXhPZignPC9zcGFuJyxtYXhFbmRPZmZzZXQtMSkpKSl7bWF4U3RhcnRPZmZzZXQ9dG1wTWF4U3RhcnRPZmZzZXQ7bWF4RW5kT2Zmc2V0PXRtcE1heEVuZE9mZnNldDt9fWlmKMOIU3Bhbi7DiE5vZGU9PXQuY29udGVudF9oaWdobGlnaHR8fMOIU3Bhbi7DiE5vZGUudGFnTmFtZT09J1BSRScpe21heFN0YXJ0T2Zmc2V0PU1hdGgubWF4KDAsYmVnaW5TdHIuaW5kZXhPZignPHNwYW4nKSk7fWlmKG1heFN0YXJ0T2Zmc2V0PT1iZWdpblN0ci7Dhil7bmJTdWJTcGFuQmVmb3JlPTA7fVxuZWxzZXtsYXN0RW5kUG9zPU1hdGgubWF4KDAsYmVnaW5TdHIubGFzdEluZGV4T2YoJz4nLG1heFN0YXJ0T2Zmc2V0KSk7bmJTdWJTcGFuQmVmb3JlPWJlZ2luU3RyLnN1YnN0cihsYXN0RW5kUG9zKS5zcGxpdCgnPHNwYW4nKS7Dhi0xO31pZihuYlN1YlNwYW5CZWZvcmU9PTApe3RleHROb2RlPcOIU3Bhbi5maXJzdENoaWxkO31cbmVsc2V7bGFzdFN1YlNwYW49w4hTcGFuLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdzcGFuJylbIG5iU3ViU3BhbkJlZm9yZS0xIF07d2hpbGUobGFzdFN1YlNwYW4uw4hOb2RlICE9w4hTcGFuKXtsYXN0U3ViU3Bhbj1sYXN0U3ViU3Bhbi7DiE5vZGU7fWlmKGxhc3RTdWJTcGFuLm5leHRTaWJsaW5nPT1udWxsfHxsYXN0U3ViU3Bhbi5uZXh0U2libGluZy5ub2RlVHlwZSAhPTMpe3RleHROb2RlPWRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCcnKTtsYXN0U3ViU3Bhbi7DiE5vZGUuaW5zZXJ0QmVmb3JlKHRleHROb2RlLGxhc3RTdWJTcGFuLm5leHRTaWJsaW5nKTt9XG5lbHNle3RleHROb2RlPWxhc3RTdWJTcGFuLm5leHRTaWJsaW5nO319aWYoKGxhc3RJbmRleD1iZWdpblN0ci5sYXN0SW5kZXhPZignPicpKT09LTEpe25iVW5jaGFuZ2VkQ2hhcnM9YmVnaW5TdHIuw4Y7fVxuZWxzZXtuYlVuY2hhbmdlZENoYXJzPWJlZ2luU3RyLnN1YnN0cihsYXN0SW5kZXgrMSkucmVwbGFjZSgvJmx0Oy9nLCc8JykucmVwbGFjZSgvJmd0Oy9nLCc+JykucmVwbGFjZSgvJmFtcDsvZywnJicpLsOGO31pZih0LmlzSUUpe25iVW5jaGFuZ2VkQ2hhcnMtPShiZWdpblN0ci5zdWJzdHIoYmVnaW5TdHIuw4YtbmJVbmNoYW5nZWRDaGFycykuc3BsaXQoXCJcXG5cIikuw4YtMSk7dGV4dE5vZGUucmVwbGFjZURhdGEobmJVbmNoYW5nZWRDaGFycyxsYXN0SHRtbC5yZXBsYWNlKC9cXG4vZywnJykuw4YsbmV3SHRtbC5yZXBsYWNlKC9cXG4vZywnJykpO31cbmVsc2V7dGV4dE5vZGUucmVwbGFjZURhdGEobmJVbmNoYW5nZWRDaGFycyxsYXN0SHRtbC7DhixuZXdIdG1sKTt9fX1jYXRjaChlKXtkb0h0bWxPcHRpPcOMO319dHBzQWZ0ZXJPcHRpMj1uZXcgRGF0ZSgpLmdldFRpbWUoKTtoaWdodGxpZ2h0ZWRfdGV4dD1zdGF5X2JlZ2luK3VwZGF0ZWRfaGlnaGxpZ2h0K3N0YXlfZW5kO2lmKCFkb0h0bWxPcHRpKXt2YXIgbmV3X09iaj10LmNvbnRlbnRfaGlnaGxpZ2h0LmNsb25lTm9kZSjDjCk7aWYoKHQuaXNJRSYmdC5pc0lFIDwgOCl8fCh0LmlzT3BlcmEmJnQuaXNPcGVyYSA8IDkuNikpbmV3X09iai5pbm5lckhUTUw9XCI8cHJlPjxzcGFuIGNsYXNzPSdcIit0LsOFW1wic3ludGF4XCJdK1wiJz5cIitoaWdodGxpZ2h0ZWRfdGV4dCtcIjwvc3Bhbj48L3ByZT5cIjtcbmVsc2UgbmV3X09iai5pbm5lckhUTUw9XCI8c3BhbiBjbGFzcz0nXCIrdC7DhVtcInN5bnRheFwiXStcIic+XCIraGlnaHRsaWdodGVkX3RleHQrXCI8L3NwYW4+XCI7dC5jb250ZW50X2hpZ2hsaWdodC7DiE5vZGUucmVwbGFjZUNoaWxkKG5ld19PYmosdC5jb250ZW50X2hpZ2hsaWdodCk7dC5jb250ZW50X2hpZ2hsaWdodD1uZXdfT2JqO310Lmxhc3RfdGV4dF90b19oaWdobGlnaHQ9aW5mb3NbXCJmdWxsX3RleHRcIl07dC5sYXN0X2hpZ2h0bGlnaHRlZF90ZXh0PWhpZ2h0bGlnaHRlZF90ZXh0O3RwczM9bmV3IERhdGUoKS5nZXRUaW1lKCk7aWYodC7DhVtcImRlYnVnXCJdKXt0LmRlYnVnLsOKPVwiVHBzIG9wdGltaXNhdGlvbiBcIisodHBzX2VuZF9vcHRpLXRwc19zdGFydCkrXCIgfCB0cHMgcmVnIGV4cDpcIisodHBzQWZ0ZXJSZWctdHBzX2VuZF9vcHRpKStcIiB8IHRwcyBvcHRpIEhUTUw6XCIrKHRwc0FmdGVyT3B0aTItdHBzQWZ0ZXJSZWcpKycgJysoZG9IdG1sT3B0aSA/ICd5ZXMnOidubycpK1wiIHwgdHBzIHVwZGF0ZSBoaWdobGlnaHQgY29udGVudDpcIisodHBzMy10cHNBZnRlck9wdGkyKStcIiB8IHRwc1RvdGFsOlwiKyh0cHMzLXRwc19zdGFydCkrXCIoXCIrdHBzMytcIilcXG5cIitkZWJ1Z19vcHRpO319O0VBLsOELnJlc3luY19oaWdobGlnaHQ9w4MocmVsb2FkX25vdyl7w4EucmVsb2FkX2hpZ2hsaWdodD3DizvDgS5sYXN0X3RleHRfdG9faGlnaGxpZ2h0PVwiXCI7w4EuZm9jdXMoKTtpZihyZWxvYWRfbm93KcOBLmNoZWNrX2xpbmVfc2VsZWN0aW9uKMOMKTt9OyBFQS7DhC5jb21tZW50X29yX3F1b3RlPcODKCl7dmFyIG5ld19jbGFzcz1cIlwiLGNsb3NlX3RhZz1cIlwiLHN5LGFyZyxpO3N5PcOILmVBTC5zeW50YXhbZUEuY3VycmVudF9jb2RlX2xhbmddO2FyZz1FQS7DhC5jb21tZW50X29yX3F1b3RlLmFyZ3VtZW50c1swXTtmb3IoaSBpbiBzeVtcInF1b3Rlc1wiXSl7aWYoYXJnLmluZGV4T2YoaSk9PTApe25ld19jbGFzcz1cInF1b3Rlc21hcmtzXCI7Y2xvc2VfdGFnPXN5W1wicXVvdGVzXCJdW2ldO319aWYobmV3X2NsYXNzLsOGPT0wKXtmb3IodmFyIGkgaW4gc3lbXCJjb21tZW50c1wiXSl7aWYoYXJnLmluZGV4T2YoaSk9PTApe25ld19jbGFzcz1cImNvbW1lbnRzXCI7Y2xvc2VfdGFnPXN5W1wiY29tbWVudHNcIl1baV07fX19aWYoY2xvc2VfdGFnPT1cIlxcblwiKXtyZXR1cm4gXCLCtV9fXCIrbmV3X2NsYXNzK1wiX1/CtVwiK2FyZy5yZXBsYWNlKC8oXFxyP1xcbik/JC9tLFwiwrVfRU5EX8K1JDFcIik7fVxuZWxzZXtyZWc9bmV3IFJlZ0V4cCjDiC5lQUwuZ2V0X2VzY2FwZWRfcmVnZXhwKGNsb3NlX3RhZykrXCIkXCIsXCJtXCIpO2lmKGFyZy5zZWFyY2gocmVnKSE9LTEpcmV0dXJuIFwiwrVfX1wiK25ld19jbGFzcytcIl9fwrVcIithcmcrXCLCtV9FTkRfwrVcIjtcbmVsc2UgcmV0dXJuIFwiwrVfX1wiK25ld19jbGFzcytcIl9fwrVcIithcmc7fX07RUEuw4QuZ2V0X3N5bnRheF90cmFjZT3Dgyh0ZXh0KXtpZijDgS7DhVtcInN5bnRheFwiXS7Dhj4wJibDiC5lQUwuc3ludGF4W8OBLsOFW1wic3ludGF4XCJdXVtcInN5bnRheF90cmFjZV9yZWdleHBcIl0pcmV0dXJuIHRleHQucmVwbGFjZSjDiC5lQUwuc3ludGF4W8OBLsOFW1wic3ludGF4XCJdXVtcInN5bnRheF90cmFjZV9yZWdleHBcIl0sXCIkM1wiKTt9O0VBLsOELmNvbG9yaXplX3RleHQ9w4ModGV4dCl7dGV4dD1cIiBcIit0ZXh0O2lmKMOBLsOFW1wic3ludGF4XCJdLsOGPjApdGV4dD3DgS5hcHBseV9zeW50YXgodGV4dCzDgS7DhVtcInN5bnRheFwiXSk7cmV0dXJuIHRleHQuc3Vic3RyKDEpLnJlcGxhY2UoLyYvZyxcIiZhbXA7XCIpLnJlcGxhY2UoLzwvZyxcIiZsdDtcIikucmVwbGFjZSgvPi9nLFwiJmd0O1wiKS5yZXBsYWNlKC/CtV9FTkRfwrUvZyxcIjwvc3Bhbj5cIikucmVwbGFjZSgvwrVfXyhbYS16QS1aMC05XSspX1/CtS9nLFwiPHNwYW4gY2xhc3M9JyQxJz5cIik7fTtFQS7DhC5hcHBseV9zeW50YXg9w4ModGV4dCxsYW5nKXt2YXIgc3k7w4EuY3VycmVudF9jb2RlX2xhbmc9bGFuZztpZighw4guZUFMLnN5bnRheFtsYW5nXSlyZXR1cm4gdGV4dDtzeT3DiC5lQUwuc3ludGF4W2xhbmddO2lmKHN5W1wiY3VzdG9tX3JlZ2V4cFwiXVsnYmVmb3JlJ10pe2Zvcih2YXIgaSBpbiBzeVtcImN1c3RvbV9yZWdleHBcIl1bJ2JlZm9yZSddKXt2YXIgY29udmVydD1cIiQxwrVfX1wiK3N5W1wiY3VzdG9tX3JlZ2V4cFwiXVsnYmVmb3JlJ11baV1bJ2NsYXNzJ10rXCJfX8K1JDLCtV9FTkRfwrUkM1wiO3RleHQ9dGV4dC5yZXBsYWNlKHN5W1wiY3VzdG9tX3JlZ2V4cFwiXVsnYmVmb3JlJ11baV1bJ3JlZ2V4cCddLGNvbnZlcnQpO319aWYoc3lbXCJjb21tZW50X29yX3F1b3RlX3JlZ19leHBcIl0pe3RleHQ9dGV4dC5yZXBsYWNlKHN5W1wiY29tbWVudF9vcl9xdW90ZV9yZWdfZXhwXCJdLMOBLmNvbW1lbnRfb3JfcXVvdGUpO31pZihzeVtcImtleXdvcmRzX3JlZ19leHBcIl0pe2Zvcih2YXIgaSBpbiBzeVtcImtleXdvcmRzX3JlZ19leHBcIl0pe3RleHQ9dGV4dC5yZXBsYWNlKHN5W1wia2V5d29yZHNfcmVnX2V4cFwiXVtpXSwnwrVfXycraSsnX1/CtSQywrVfRU5EX8K1Jyk7fX1pZihzeVtcImRlbGltaXRlcnNfcmVnX2V4cFwiXSl7dGV4dD10ZXh0LnJlcGxhY2Uoc3lbXCJkZWxpbWl0ZXJzX3JlZ19leHBcIl0sJ8K1X19kZWxpbWl0ZXJzX1/CtSQxwrVfRU5EX8K1Jyk7fWlmKHN5W1wib3BlcmF0b3JzX3JlZ19leHBcIl0pe3RleHQ9dGV4dC5yZXBsYWNlKHN5W1wib3BlcmF0b3JzX3JlZ19leHBcIl0sJ8K1X19vcGVyYXRvcnNfX8K1JDHCtV9FTkRfwrUnKTt9aWYoc3lbXCJjdXN0b21fcmVnZXhwXCJdWydhZnRlciddKXtmb3IodmFyIGkgaW4gc3lbXCJjdXN0b21fcmVnZXhwXCJdWydhZnRlciddKXt2YXIgY29udmVydD1cIiQxwrVfX1wiK3N5W1wiY3VzdG9tX3JlZ2V4cFwiXVsnYWZ0ZXInXVtpXVsnY2xhc3MnXStcIl9fwrUkMsK1X0VORF/CtSQzXCI7dGV4dD10ZXh0LnJlcGxhY2Uoc3lbXCJjdXN0b21fcmVnZXhwXCJdWydhZnRlciddW2ldWydyZWdleHAnXSxjb252ZXJ0KTt9fXJldHVybiB0ZXh0O307dmFyIGVkaXRBcmVhPSBlQTtFZGl0QXJlYT1FQTs8L3NjcmlwdD4iLnJlcGxhY2UoL8OBL2csJ3RoaXMnKS5yZXBsYWNlKC/Dgi9nLCd0ZXh0YXJlYScpLnJlcGxhY2UoL8ODL2csJ2Z1bmN0aW9uJykucmVwbGFjZSgvw4QvZywncHJvdG90eXBlJykucmVwbGFjZSgvw4UvZywnc2V0dGluZ3MnKS5yZXBsYWNlKC/Dhi9nLCdsZW5ndGgnKS5yZXBsYWNlKC/Dhy9nLCdzdHlsZScpLnJlcGxhY2UoL8OIL2csJ3BhcmVudCcpLnJlcGxhY2UoL8OJL2csJ2xhc3Rfc2VsZWN0aW9uJykucmVwbGFjZSgvw4ovZywndmFsdWUnKS5yZXBsYWNlKC/Diy9nLCd0cnVlJykucmVwbGFjZSgvw4wvZywnZmFsc2UnKTsNCmVkaXRBcmVhTG9hZGVyLnRlbXBsYXRlPSAiPD94bWwgdmVyc2lvbj1cIjEuMFwiIGVuY29kaW5nPVwiVVRGLThcIj8+IDwhRE9DVFlQRSBodG1sIFBVQkxJQyBcIi0vL1czQy8vRFREIFhIVE1MIDEuMS8vRU5cIiBcImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMTEvRFREL3hodG1sMTEuZHRkXCI+IDxodG1sIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbFwiIHhtbDpsYW5nPVwiZW5cIiA+IDxoZWFkPiA8dGl0bGU+RWRpdEFyZWE8L3RpdGxlPiA8bWV0YSBodHRwLWVxdWl2PVwiQ29udGVudC1UeXBlXCIgY29udGVudD1cInRleHQvaHRtbDsgY2hhcnNldD11dGYtOFwiIC8+IDxtZXRhIGh0dHAtZXF1aXY9XCJYLVVBLUNvbXBhdGlibGVcIiBjb250ZW50PVwiSUU9RW11bGF0ZUlFN1wiLz4gW19fQ1NTUlVMRVNfX10gW19fSlNDT0RFX19dIDwvaGVhZD4gPGJvZHk+IDxkaXYgaWQ9J2VkaXRvcic+IDxkaXYgY2xhc3M9J2FyZWFfdG9vbGJhcicgaWQ9J3Rvb2xiYXJfMSc+W19fVE9PTEJBUl9fXTwvZGl2PiA8ZGl2IGNsYXNzPSdhcmVhX3Rvb2xiYXInIGlkPSd0YWJfYnJvd3NpbmdfYXJlYSc+PHVsIGlkPSd0YWJfYnJvd3NpbmdfbGlzdCcgY2xhc3M9J21lbnUnPiA8bGk+IDwvbGk+IDwvdWw+PC9kaXY+IDxkaXYgaWQ9J3Jlc3VsdCc+IDxkaXYgaWQ9J25vX2ZpbGVfc2VsZWN0ZWQnPjwvZGl2PiA8ZGl2IGlkPSdjb250YWluZXInPiA8ZGl2IGlkPSdjdXJzb3JfcG9zJyBjbGFzcz0nZWRpdF9hcmVhX2N1cnNvcic+Jm5ic3A7PC9kaXY+IDxkaXYgaWQ9J2VuZF9icmFja2V0JyBjbGFzcz0nZWRpdF9hcmVhX2N1cnNvcic+Jm5ic3A7PC9kaXY+IDxkaXYgaWQ9J3NlbGVjdGlvbl9maWVsZCc+PC9kaXY+IDxkaXYgaWQ9J2xpbmVfbnVtYmVyJyBzZWxlYz0nbm9uZSc+PC9kaXY+IDxkaXYgaWQ9J2NvbnRlbnRfaGlnaGxpZ2h0Jz48L2Rpdj4gPGRpdiBpZD0ndGVzdF9mb250X3NpemUnPjwvZGl2PiA8ZGl2IGlkPSdzZWxlY3Rpb25fZmllbGRfdGV4dCc+PC9kaXY+IDx0ZXh0YXJlYSBpZD0ndGV4dGFyZWEnIHdyYXA9J29mZicgb25jaGFuZ2U9J2VkaXRBcmVhLmV4ZWNDb21tYW5kKFwib25jaGFuZ2VcIik7JyBvbmZvY3VzPSdqYXZhc2NyaXB0OmVkaXRBcmVhLnRleHRhcmVhRm9jdXNlZD10cnVlOycgb25ibHVyPSdqYXZhc2NyaXB0OmVkaXRBcmVhLnRleHRhcmVhRm9jdXNlZD1mYWxzZTsnPiA8L3RleHRhcmVhPiA8L2Rpdj4gPC9kaXY+IDxkaXYgY2xhc3M9J2FyZWFfdG9vbGJhcicgaWQ9J3Rvb2xiYXJfMic+IDx0YWJsZSBjbGFzcz0nc3RhdHVzYmFyJyBjZWxsc3BhY2luZz0nMCcgY2VsbHBhZGRpbmc9JzAnPiA8dHI+IDx0ZCBjbGFzcz0ndG90YWwnIHNlbGVjPSdub25lJz57JHBvc2l0aW9ufTo8L3RkPiA8dGQgY2xhc3M9J2luZm9zJyBzZWxlYz0nbm9uZSc+IHskbGluZV9hYmJyfSA8c3BhbiAgaWQ9J2xpbmVQb3MnPjA8L3NwYW4+LCB7JGNoYXJfYWJicn0gPHNwYW4gaWQ9J2N1cnJQb3MnPjA8L3NwYW4+IDwvdGQ+IDx0ZCBjbGFzcz0ndG90YWwnIHNlbGVjPSdub25lJz57JHRvdGFsfTo8L3RkPiA8dGQgY2xhc3M9J2luZm9zJyBzZWxlYz0nbm9uZSc+IHskbGluZV9hYmJyfSA8c3BhbiBpZD0nbmJMaW5lJz4wPC9zcGFuPiwgeyRjaGFyX2FiYnJ9IDxzcGFuIGlkPSduYkNoYXInPjA8L3NwYW4+IDwvdGQ+IDx0ZCBjbGFzcz0ncmVzaXplJz4gPHNwYW4gaWQ9J3Jlc2l6ZV9hcmVhJz48aW1nIHNyYz0nW19fQkFTRVVSTF9fXWltYWdlcy9zdGF0dXNiYXJfcmVzaXplLmdpZicgYWx0PSdyZXNpemUnIHNlbGVjPSdub25lJz48L3NwYW4+IDwvdGQ+IDwvdHI+IDwvdGFibGU+IDwvZGl2PiA8L2Rpdj4gPGRpdiBpZD0ncHJvY2Vzc2luZyc+IDxkaXYgaWQ9J3Byb2Nlc3NpbmdfdGV4dCc+IHskcHJvY2Vzc2luZ30gPC9kaXY+IDwvZGl2PiA8ZGl2IGlkPSdhcmVhX3NlYXJjaF9yZXBsYWNlJyBjbGFzcz0nZWRpdGFyZWFfcG9wdXAnPiA8dGFibGUgY2VsbHNwYWNpbmc9JzInIGNlbGxwYWRkaW5nPScwJyBzdHlsZT0nd2lkdGg6IDEwMCUnPiA8dHI+IDx0ZCBzZWxlYz0nbm9uZSc+eyRzZWFyY2h9PC90ZD4gPHRkPjxpbnB1dCB0eXBlPSd0ZXh0JyBpZD0nYXJlYV9zZWFyY2gnIC8+PC90ZD4gPHRkIGlkPSdjbG9zZV9hcmVhX3NlYXJjaF9yZXBsYWNlJz4gPGEgb25jbGljaz0nSmF2YXNjcmlwdDplZGl0QXJlYS5leGVjQ29tbWFuZChcImhpZGRlbl9zZWFyY2hcIiknPjxpbWcgc2VsZWM9J25vbmUnIHNyYz0nW19fQkFTRVVSTF9fXWltYWdlcy9jbG9zZS5naWYnIGFsdD0neyRjbG9zZV9wb3B1cH0nIHRpdGxlPSd7JGNsb3NlX3BvcHVwfScgLz48L2E+PGJyIC8+IDwvdHI+PHRyPiA8dGQgc2VsZWM9J25vbmUnPnskcmVwbGFjZX08L3RkPiA8dGQ+PGlucHV0IHR5cGU9J3RleHQnIGlkPSdhcmVhX3JlcGxhY2UnIC8+PC90ZD4gPHRkPjxpbWcgaWQ9J21vdmVfYXJlYV9zZWFyY2hfcmVwbGFjZScgb25tb3VzZWRvd249J3JldHVybiBwYXJlbnQuc3RhcnRfbW92ZV9lbGVtZW50KGV2ZW50LFwiYXJlYV9zZWFyY2hfcmVwbGFjZVwiLCBwYXJlbnQuZnJhbWVzW1wiZnJhbWVfXCIrZWRpdEFyZWEuaWRdKTsnICBzcmM9J1tfX0JBU0VVUkxfX11pbWFnZXMvbW92ZS5naWYnIGFsdD0neyRtb3ZlX3BvcHVwfScgdGl0bGU9J3skbW92ZV9wb3B1cH0nIC8+PC90ZD4gPC90cj4gPC90YWJsZT4gPGRpdiBjbGFzcz0nYnV0dG9uJz4gPGlucHV0IHR5cGU9J2NoZWNrYm94JyBpZD0nYXJlYV9zZWFyY2hfbWF0Y2hfY2FzZScgLz48bGFiZWwgZm9yPSdhcmVhX3NlYXJjaF9tYXRjaF9jYXNlJyBzZWxlYz0nbm9uZSc+eyRtYXRjaF9jYXNlfTwvbGFiZWw+IDxpbnB1dCB0eXBlPSdjaGVja2JveCcgaWQ9J2FyZWFfc2VhcmNoX3JlZ19leHAnIC8+PGxhYmVsIGZvcj0nYXJlYV9zZWFyY2hfcmVnX2V4cCcgc2VsZWM9J25vbmUnPnskcmVnX2V4cH08L2xhYmVsPiA8YnIgLz4gPGEgb25jbGljaz0nSmF2YXNjcmlwdDplZGl0QXJlYS5leGVjQ29tbWFuZChcImFyZWFfc2VhcmNoXCIpJyBzZWxlYz0nbm9uZSc+eyRmaW5kX25leHR9PC9hPiA8YSBvbmNsaWNrPSdKYXZhc2NyaXB0OmVkaXRBcmVhLmV4ZWNDb21tYW5kKFwiYXJlYV9yZXBsYWNlXCIpJyBzZWxlYz0nbm9uZSc+eyRyZXBsYWNlfTwvYT4gPGEgb25jbGljaz0nSmF2YXNjcmlwdDplZGl0QXJlYS5leGVjQ29tbWFuZChcImFyZWFfcmVwbGFjZV9hbGxcIiknIHNlbGVjPSdub25lJz57JHJlcGxhY2VfYWxsfTwvYT48YnIgLz4gPC9kaXY+IDxkaXYgaWQ9J2FyZWFfc2VhcmNoX21zZycgc2VsZWM9J25vbmUnPjwvZGl2PiA8L2Rpdj4gPGRpdiBpZD0nZWRpdF9hcmVhX2hlbHAnIGNsYXNzPSdlZGl0YXJlYV9wb3B1cCc+IDxkaXYgY2xhc3M9J2Nsb3NlX3BvcHVwJz4gPGEgb25jbGljaz0nSmF2YXNjcmlwdDplZGl0QXJlYS5leGVjQ29tbWFuZChcImNsb3NlX2FsbF9pbmxpbmVfcG9wdXBcIiknPjxpbWcgc3JjPSdbX19CQVNFVVJMX19daW1hZ2VzL2Nsb3NlLmdpZicgYWx0PSd7JGNsb3NlX3BvcHVwfScgdGl0bGU9J3skY2xvc2VfcG9wdXB9JyAvPjwvYT4gPC9kaXY+IDxkaXY+PGgyPkVkaXRhcmVhIFtfX0VBX1ZFUlNJT05fX108L2gyPjxiciAvPiA8aDM+eyRzaG9ydGN1dHN9OjwvaDM+IHskdGFifTogeyRhZGRfdGFifTxiciAvPiB7JHNoaWZ0fSt7JHRhYn06IHskcmVtb3ZlX3RhYn08YnIgLz4geyRjdHJsfStmOiB7JHNlYXJjaF9jb21tYW5kfTxiciAvPiB7JGN0cmx9K3I6IHskcmVwbGFjZV9jb21tYW5kfTxiciAvPiB7JGN0cmx9K2g6IHskaGlnaGxpZ2h0fTxiciAvPiB7JGN0cmx9K2c6IHskZ29fdG9fbGluZX08YnIgLz4geyRjdHJsfSt6OiB7JHVuZG99PGJyIC8+IHskY3RybH0reTogeyRyZWRvfTxiciAvPiB7JGN0cmx9K2U6IHskaGVscH08YnIgLz4geyRjdHJsfStxLCB7JGVzY306IHskY2xvc2VfcG9wdXB9PGJyIC8+IHskYWNjZXNza2V5fSBFOiB7JHRvZ2dsZX08YnIgLz4gPGJyIC8+IDxlbT57JGFib3V0X25vdGljZX08L2VtPiA8YnIgLz48ZGl2IGNsYXNzPSdjb3B5cmlnaHQnPiZjb3B5OyBDaHJpc3RvcGhlIERvbGl2ZXQgMjAwNy0yMDEwPC9kaXY+IDwvZGl2PiA8L2Rpdj4gPC9ib2R5PiA8L2h0bWw+ICI7DQplZGl0QXJlYUxvYWRlci5pZnJhbWVfY3NzPSAiPHN0eWxlPmJvZHksaHRtbHttYXJnaW46MDtwYWRkaW5nOjA7aGVpZ2h0OjEwMCU7Ym9yZGVyOm5vbmU7b3ZlcmZsb3c6aGlkZGVuO2JhY2tncm91bmQtY29sb3I6I0ZGRjt9Ym9keSxodG1sLHRhYmxlLGZvcm0sdGV4dGFyZWF7Zm9udDoxMnB4IG1vbm9zcGFjZSxzYW5zLXNlcmlmO30jZWRpdG9ye2JvcmRlcjpzb2xpZCAjODg4IDFweDtvdmVyZmxvdzpoaWRkZW47fSNyZXN1bHR7ei1pbmRleDo0O292ZXJmbG93LXg6YXV0bztvdmVyZmxvdy15OnNjcm9sbDtib3JkZXItdG9wOnNvbGlkICM4ODggMXB4O2JvcmRlci1ib3R0b206c29saWQgIzg4OCAxcHg7cG9zaXRpb246cmVsYXRpdmU7Y2xlYXI6Ym90aDt9I3Jlc3VsdC5lbXB0eXtvdmVyZmxvdzpoaWRkZW47fSNjb250YWluZXJ7b3ZlcmZsb3c6aGlkZGVuO2JvcmRlcjpzb2xpZCBibHVlIDA7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoxMDtwYWRkaW5nOjAgNXB4IDAgNDVweDt9I3RleHRhcmVhe3Bvc2l0aW9uOnJlbGF0aXZlO3RvcDowO2xlZnQ6MDttYXJnaW46MDtwYWRkaW5nOjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtvdmVyZmxvdzpoaWRkZW47ei1pbmRleDo3O2JvcmRlci13aWR0aDowO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7cmVzaXplOm5vbmU7fSN0ZXh0YXJlYSwjdGV4dGFyZWE6aG92ZXJ7b3V0bGluZTpub25lO30jY29udGVudF9oaWdobGlnaHR7d2hpdGUtc3BhY2U6cHJlO21hcmdpbjowO3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjQ7b3ZlcmZsb3c6dmlzaWJsZTt9I3NlbGVjdGlvbl9maWVsZCwjc2VsZWN0aW9uX2ZpZWxkX3RleHR7bWFyZ2luOjA7YmFja2dyb3VuZC1jb2xvcjojRTFGMkY5O3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6NTt0b3A6LTEwMHB4O3BhZGRpbmc6MDt3aGl0ZS1zcGFjZTpwcmU7b3ZlcmZsb3c6aGlkZGVuO30jc2VsZWN0aW9uX2ZpZWxkLnNob3dfY29sb3JzIHt6LWluZGV4OjM7YmFja2dyb3VuZC1jb2xvcjojRURGOUZDO30jc2VsZWN0aW9uX2ZpZWxkIHN0cm9uZ3tmb250LXdlaWdodDpub3JtYWw7fSNzZWxlY3Rpb25fZmllbGQuc2hvd19jb2xvcnMgKiwjc2VsZWN0aW9uX2ZpZWxkX3RleHQgKiB7dmlzaWJpbGl0eTpoaWRkZW47fSNzZWxlY3Rpb25fZmllbGRfdGV4dHtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O30jc2VsZWN0aW9uX2ZpZWxkX3RleHQgc3Ryb25ne2ZvbnQtd2VpZ2h0Om5vcm1hbDtiYWNrZ3JvdW5kLWNvbG9yOiMzMzk5RkU7Y29sb3I6I0ZGRjt2aXNpYmlsaXR5OnZpc2libGU7fSNjb250YWluZXIud29yZF93cmFwICNjb250ZW50X2hpZ2hsaWdodCwjY29udGFpbmVyLndvcmRfd3JhcCAjc2VsZWN0aW9uX2ZpZWxkLCNjb250YWluZXIud29yZF93cmFwICNzZWxlY3Rpb25fZmllbGRfdGV4dCwjY29udGFpbmVyLndvcmRfd3JhcCAjdGVzdF9mb250X3NpemV7d2hpdGUtc3BhY2U6cHJlLXdyYXA7d2hpdGUtc3BhY2U6LW1vei1wcmUtd3JhcCAhaW1wb3J0YW50O3doaXRlLXNwYWNlOi1wcmUtd3JhcDt3aGl0ZS1zcGFjZTotby1wcmUtd3JhcDt3b3JkLXdyYXA6YnJlYWstd29yZDt3aWR0aDo5OSU7fSNsaW5lX251bWJlcntwb3NpdGlvbjphYnNvbHV0ZTtvdmVyZmxvdzpoaWRkZW47Ym9yZGVyLXJpZ2h0OnNvbGlkIGJsYWNrIDFweDt6LWluZGV4Ojg7d2lkdGg6MzhweDtwYWRkaW5nOjAgNXB4IDAgMDttYXJnaW46MCAwIDAgLTQ1cHg7dGV4dC1hbGlnbjpyaWdodDtjb2xvcjojQUFBQUFBO30jdGVzdF9mb250X3NpemV7cGFkZGluZzowO21hcmdpbjowO3Zpc2liaWxpdHk6aGlkZGVuO3Bvc2l0aW9uOmFic29sdXRlO3doaXRlLXNwYWNlOnByZTt9cHJle21hcmdpbjowO3BhZGRpbmc6MDt9LmhpZGRlbntvcGFjaXR5OjAuMjtmaWx0ZXI6YWxwaGEob3BhY2l0eT0yMCk7fSNyZXN1bHQgLmVkaXRfYXJlYV9jdXJzb3J7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDo2O2JhY2tncm91bmQtY29sb3I6I0ZGNjYzMzt0b3A6LTEwMHB4O21hcmdpbjowO30jcmVzdWx0IC5lZGl0X2FyZWFfc2VsZWN0aW9uX2ZpZWxkIC5vdmVybGluZXtiYWNrZ3JvdW5kLWNvbG9yOiM5OTY2MDA7fS5lZGl0YXJlYV9wb3B1cHtib3JkZXI6c29saWQgMXB4ICM4ODg4ODg7YmFja2dyb3VuZC1jb2xvcjojRUNFOUQ4O3dpZHRoOjI1MHB4O3BhZGRpbmc6NHB4O3Bvc2l0aW9uOmFic29sdXRlO3Zpc2liaWxpdHk6aGlkZGVuO3otaW5kZXg6MTU7dG9wOi01MDBweDt9LmVkaXRhcmVhX3BvcHVwLC5lZGl0YXJlYV9wb3B1cCB0YWJsZXtmb250LWZhbWlseTpzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMHB0O30uZWRpdGFyZWFfcG9wdXAgaW1ne2JvcmRlcjowO30uZWRpdGFyZWFfcG9wdXAgLmNsb3NlX3BvcHVwe2Zsb2F0OnJpZ2h0O2xpbmUtaGVpZ2h0OjE2cHg7Ym9yZGVyOjA7cGFkZGluZzowO30uZWRpdGFyZWFfcG9wdXAgaDEsLmVkaXRhcmVhX3BvcHVwIGgyLC5lZGl0YXJlYV9wb3B1cCBoMywuZWRpdGFyZWFfcG9wdXAgaDQsLmVkaXRhcmVhX3BvcHVwIGg1LC5lZGl0YXJlYV9wb3B1cCBoNnttYXJnaW46MDtwYWRkaW5nOjA7fS5lZGl0YXJlYV9wb3B1cCAuY29weXJpZ2h0e3RleHQtYWxpZ246cmlnaHQ7fWRpdiNhcmVhX3NlYXJjaF9yZXBsYWNle31kaXYjYXJlYV9zZWFyY2hfcmVwbGFjZSBpbWd7Ym9yZGVyOjA7fWRpdiNhcmVhX3NlYXJjaF9yZXBsYWNlIGRpdi5idXR0b257dGV4dC1hbGlnbjpjZW50ZXI7bGluZS1oZWlnaHQ6MS43ZW07fWRpdiNhcmVhX3NlYXJjaF9yZXBsYWNlIC5idXR0b24gYXtjdXJzb3I6cG9pbnRlcjtib3JkZXI6c29saWQgMXB4ICM4ODg4ODg7YmFja2dyb3VuZC1jb2xvcjojREVERURFO3RleHQtZGVjb3JhdGlvbjpub25lO3BhZGRpbmc6MCAycHg7Y29sb3I6IzAwMDAwMDt3aGl0ZS1zcGFjZTpub3dyYXA7fWRpdiNhcmVhX3NlYXJjaF9yZXBsYWNlIGE6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojRURFREVEO31kaXYjYXJlYV9zZWFyY2hfcmVwbGFjZSAgI21vdmVfYXJlYV9zZWFyY2hfcmVwbGFjZXtjdXJzb3I6bW92ZTtib3JkZXI6c29saWQgMXB4ICM4ODg7fWRpdiNhcmVhX3NlYXJjaF9yZXBsYWNlICAjY2xvc2VfYXJlYV9zZWFyY2hfcmVwbGFjZXt0ZXh0LWFsaWduOnJpZ2h0O3ZlcnRpY2FsLWFsaWduOnRvcDt3aGl0ZS1zcGFjZTpub3dyYXA7fWRpdiNhcmVhX3NlYXJjaF9yZXBsYWNlICAjYXJlYV9zZWFyY2hfbXNne2hlaWdodDoxOHB4O292ZXJmbG93OmhpZGRlbjtib3JkZXItdG9wOnNvbGlkIDFweCAjODg4O21hcmdpbi10b3A6M3B4O30jZWRpdF9hcmVhX2hlbHB7d2lkdGg6MzUwcHg7fSNlZGl0X2FyZWFfaGVscCBkaXYuY2xvc2VfcG9wdXB7ZmxvYXQ6cmlnaHQ7fS5hcmVhX3Rvb2xiYXJ7d2lkdGg6MTAwJTttYXJnaW46MDtwYWRkaW5nOjA7YmFja2dyb3VuZC1jb2xvcjojRUNFOUQ4O3RleHQtYWxpZ246Y2VudGVyO30uYXJlYV90b29sYmFyLC5hcmVhX3Rvb2xiYXIgdGFibGV7Zm9udDoxMXB4IHNhbnMtc2VyaWY7fS5hcmVhX3Rvb2xiYXIgaW1ne2JvcmRlcjowO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTt9LmFyZWFfdG9vbGJhciBpbnB1dHttYXJnaW46MDtwYWRkaW5nOjA7fS5hcmVhX3Rvb2xiYXIgc2VsZWN0e2ZvbnQtZmFtaWx5OidNUyBTYW5zIFNlcmlmJyxzYW5zLXNlcmlmLFZlcmRhbmEsQXJpYWw7Zm9udC1zaXplOjdwdDtmb250LXdlaWdodDpub3JtYWw7bWFyZ2luOjJweCAwIDAgMCA7cGFkZGluZzowO3ZlcnRpY2FsLWFsaWduOnRvcDtiYWNrZ3JvdW5kLWNvbG9yOiNGMEYwRUU7fXRhYmxlLnN0YXR1c2Jhcnt3aWR0aDoxMDAlO30uYXJlYV90b29sYmFyIHRkLmluZm9ze3RleHQtYWxpZ246Y2VudGVyO3dpZHRoOjEzMHB4O2JvcmRlci1yaWdodDpzb2xpZCAxcHggIzg4ODtib3JkZXItd2lkdGg6MCAxcHggMCAwO3BhZGRpbmc6MDt9LmFyZWFfdG9vbGJhciB0ZC50b3RhbHt0ZXh0LWFsaWduOnJpZ2h0O3dpZHRoOjUwcHg7cGFkZGluZzowO30uYXJlYV90b29sYmFyIHRkLnJlc2l6ZXt0ZXh0LWFsaWduOnJpZ2h0O30uYXJlYV90b29sYmFyIHNwYW4jcmVzaXplX2FyZWF7Y3Vyc29yOm53LXJlc2l6ZTt2aXNpYmlsaXR5OmhpZGRlbjt9LmVkaXRBcmVhQnV0dG9uTm9ybWFsLC5lZGl0QXJlYUJ1dHRvbk92ZXIsLmVkaXRBcmVhQnV0dG9uRG93biwuZWRpdEFyZWFTZXBhcmF0b3IsLmVkaXRBcmVhU2VwYXJhdG9yTGluZSwuZWRpdEFyZWFCdXR0b25EaXNhYmxlZCwuZWRpdEFyZWFCdXR0b25TZWxlY3RlZCB7Ym9yZGVyOjA7IG1hcmdpbjowOyBwYWRkaW5nOjA7IGJhY2tncm91bmQ6dHJhbnNwYXJlbnQ7bWFyZ2luLXRvcDowO21hcmdpbi1sZWZ0OjFweDtwYWRkaW5nOjA7fS5lZGl0QXJlYUJ1dHRvbk5vcm1hbCB7Ym9yZGVyOjFweCBzb2xpZCAjRUNFOUQ4ICFpbXBvcnRhbnQ7Y3Vyc29yOnBvaW50ZXI7fS5lZGl0QXJlYUJ1dHRvbk92ZXIge2JvcmRlcjoxcHggc29saWQgIzBBMjQ2QSAhaW1wb3J0YW50O2N1cnNvcjpwb2ludGVyO2JhY2tncm91bmQtY29sb3I6I0I2QkREMjt9LmVkaXRBcmVhQnV0dG9uRG93biB7Y3Vyc29yOnBvaW50ZXI7Ym9yZGVyOjFweCBzb2xpZCAjMEEyNDZBICFpbXBvcnRhbnQ7YmFja2dyb3VuZC1jb2xvcjojODU5MkI1O30uZWRpdEFyZWFCdXR0b25TZWxlY3RlZCB7Ym9yZGVyOjFweCBzb2xpZCAjQzBDMEJCICFpbXBvcnRhbnQ7Y3Vyc29yOnBvaW50ZXI7YmFja2dyb3VuZC1jb2xvcjojRjRGMkU4O30uZWRpdEFyZWFCdXR0b25EaXNhYmxlZCB7ZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5BbHBoYShvcGFjaXR5PTMwKTstbW96LW9wYWNpdHk6MC4zO29wYWNpdHk6MC4zO2JvcmRlcjoxcHggc29saWQgI0YwRjBFRSAhaW1wb3J0YW50O2N1cnNvcjpwb2ludGVyO30uZWRpdEFyZWFTZXBhcmF0b3JMaW5lIHttYXJnaW46MXB4IDJweDtiYWNrZ3JvdW5kLWNvbG9yOiNDMEMwQkI7d2lkdGg6MnB4O2hlaWdodDoxOHB4O30jcHJvY2Vzc2luZ3tkaXNwbGF5Om5vbmU7YmFja2dyb3VuZC1jb2xvcjojRUNFOUQ4O2JvcmRlcjpzb2xpZCAjODg4IDFweDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTt6LWluZGV4OjEwMDt0ZXh0LWFsaWduOmNlbnRlcjt9I3Byb2Nlc3NpbmdfdGV4dHtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjUwJTt0b3A6NTAlO3dpZHRoOjIwMHB4O2hlaWdodDoyMHB4O21hcmdpbi1sZWZ0Oi0xMDBweDttYXJnaW4tdG9wOi0xMHB4O3RleHQtYWxpZ246Y2VudGVyO30jdGFiX2Jyb3dzaW5nX2FyZWF7ZGlzcGxheTpub25lO2JhY2tncm91bmQtY29sb3I6I0NDQzlBODtib3JkZXItdG9wOjFweCBzb2xpZCAjODg4O3RleHQtYWxpZ246bGVmdDttYXJnaW46MDt9I3RhYl9icm93c2luZ19saXN0IHtwYWRkaW5nOjA7bWFyZ2luOjA7bGlzdC1zdHlsZS10eXBlOm5vbmU7d2hpdGUtc3BhY2U6bm93cmFwO30jdGFiX2Jyb3dzaW5nX2xpc3QgbGkge2Zsb2F0OmxlZnQ7bWFyZ2luOi0xcHg7fSN0YWJfYnJvd3NpbmdfbGlzdCBhIHtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmJsb2NrO3RleHQtZGVjb3JhdGlvbjpub25lO2Zsb2F0OmxlZnQ7Y3Vyc29yOnBvaW50ZXI7bGluZS1oZWlnaHQ6MTRweDt9I3RhYl9icm93c2luZ19saXN0IGEgc3BhbiB7ZGlzcGxheTpibG9jaztjb2xvcjojMDAwO2JhY2tncm91bmQ6I0VDRTlEODtib3JkZXI6MXB4IHNvbGlkICM4ODg7Ym9yZGVyLXdpZHRoOjFweCAxcHggMDt0ZXh0LWFsaWduOmNlbnRlcjtwYWRkaW5nOjJweCAycHggMXB4IDRweDtwb3NpdGlvbjpyZWxhdGl2ZTt9I3RhYl9icm93c2luZ19saXN0IGEgYiB7ZGlzcGxheTpibG9jaztib3JkZXItYm90dG9tOjJweCBzb2xpZCAjNjE3OTk0O30jdGFiX2Jyb3dzaW5nX2xpc3QgYSAuZWRpdGVkIHtkaXNwbGF5Om5vbmU7fSN0YWJfYnJvd3NpbmdfbGlzdCBhLmVkaXRlZCAuZWRpdGVkIHtkaXNwbGF5OmlubGluZTt9I3RhYl9icm93c2luZ19saXN0IGEgaW1ne21hcmdpbi1sZWZ0OjdweDt9I3RhYl9icm93c2luZ19saXN0IGEuZWRpdGVkIGltZ3ttYXJnaW4tbGVmdDozcHg7fSN0YWJfYnJvd3NpbmdfbGlzdCBhOmhvdmVyIHNwYW4ge2JhY2tncm91bmQ6I0Y0RjJFODtib3JkZXItY29sb3I6IzBBMjQ2QTt9I3RhYl9icm93c2luZ19saXN0IC5zZWxlY3RlZCBhIHNwYW57YmFja2dyb3VuZDojMDQ2MzgwO2NvbG9yOiNGRkY7fSNub19maWxlX3NlbGVjdGVke2hlaWdodDoxMDAlO3dpZHRoOjE1MCU7YmFja2dyb3VuZDojQ0NDO2Rpc3BsYXk6bm9uZTt6LWluZGV4OjIwO3Bvc2l0aW9uOmFic29sdXRlO30ubm9uX2VkaXRhYmxlICNlZGl0b3J7Ym9yZGVyLXdpZHRoOjAgMXB4O30ubm9uX2VkaXRhYmxlIC5hcmVhX3Rvb2xiYXJ7ZGlzcGxheTpub25lO30jYXV0b19jb21wbGV0aW9uX2FyZWF7YmFja2dyb3VuZDojRkZGO2JvcmRlcjpzb2xpZCAxcHggIzg4ODtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjE1O3dpZHRoOjI4MHB4O2hlaWdodDoxODBweDtvdmVyZmxvdzphdXRvO2Rpc3BsYXk6bm9uZTt9I2F1dG9fY29tcGxldGlvbl9hcmVhIGEsI2F1dG9fY29tcGxldGlvbl9hcmVhIGE6dmlzaXRlZHtkaXNwbGF5OmJsb2NrO3BhZGRpbmc6MCAycHggMXB4O2NvbG9yOiMwMDA7dGV4dC1kZWNvcmF0aW9uOm5vbmU7fSNhdXRvX2NvbXBsZXRpb25fYXJlYSBhOmhvdmVyLCNhdXRvX2NvbXBsZXRpb25fYXJlYSBhOmZvY3VzLCNhdXRvX2NvbXBsZXRpb25fYXJlYSBhLmZvY3Vze2JhY2tncm91bmQ6I0Q2RTFGRTt0ZXh0LWRlY29yYXRpb246bm9uZTt9I2F1dG9fY29tcGxldGlvbl9hcmVhIHVse21hcmdpbjowO3BhZGRpbmc6MDtsaXN0LXN0eWxlOm5vbmUgaW5zaWRlO30jYXV0b19jb21wbGV0aW9uX2FyZWEgbGl7cGFkZGluZzowO30jYXV0b19jb21wbGV0aW9uX2FyZWEgLnByZWZpeHtmb250LXN0eWxlOml0YWxpYztwYWRkaW5nOjAgM3B4O30ud2FybntiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vbW9kdWxlcy9TY3JpcHREZXBsb3kvaW1hZ2VzL3dhcm5BcnJvdy5wbmcpO2JhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7YmFja2dyb3VuZC1wb3NpdGlvbjogbGVmdCB0b3A7fS5lcnJvcntiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vbW9kdWxlcy9TY3JpcHREZXBsb3kvaW1hZ2VzL2Vycm9yQXJyb3cucG5nKTtiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O2JhY2tncm91bmQtcG9zaXRpb246IGxlZnQgdG9wO308L3N0eWxlPiI7DQo=]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/edit_area_functions.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[CS8vcmVwbGFjZSB0YWJ1bGF0aW9uIGJ5IHRoZSBnb29kIG51bWJlciBvZiB3aGl0ZSBzcGFjZXMNCglFZGl0QXJlYS5wcm90b3R5cGUucmVwbGFjZV90YWI9IGZ1bmN0aW9uKHRleHQpew0KCQlyZXR1cm4gdGV4dC5yZXBsYWNlKC8oKFxuPykoW15cdFxuXSopXHQpL2dpLCBlZGl0QXJlYS5zbWFydFRhYik7CQkvLyBzbG93ZXIgdGhhbiBzaW1wbGUgcmVwbGFjZS4uLgkNCgl9Ow0KCQ0KCS8vIGNhbGwgYnkgdGhlIHJlcGxhY2VfdGFiIGZ1bmN0aW9uDQoJRWRpdEFyZWEucHJvdG90eXBlLnNtYXJ0VGFiPSBmdW5jdGlvbigpew0KCQl2YWw9IiAgICAgICAgICAgICAgICAgICAiOw0KCQlyZXR1cm4gRWRpdEFyZWEucHJvdG90eXBlLnNtYXJ0VGFiLmFyZ3VtZW50c1syXSArIEVkaXRBcmVhLnByb3RvdHlwZS5zbWFydFRhYi5hcmd1bWVudHNbM10gKyB2YWwuc3Vic3RyKDAsIGVkaXRBcmVhLnRhYl9uYl9jaGFyIC0gKEVkaXRBcmVhLnByb3RvdHlwZS5zbWFydFRhYi5hcmd1bWVudHNbM10ubGVuZ3RoKSVlZGl0QXJlYS50YWJfbmJfY2hhcik7DQoJfTsNCgkNCglFZGl0QXJlYS5wcm90b3R5cGUuc2hvd193YWl0aW5nX3NjcmVlbj0gZnVuY3Rpb24oKXsNCgkJd2lkdGgJPSB0aGlzLmVkaXRvcl9hcmVhLm9mZnNldFdpZHRoOw0KCQloZWlnaHQJPSB0aGlzLmVkaXRvcl9hcmVhLm9mZnNldEhlaWdodDsNCgkJaWYoICEodGhpcy5pc0lFICYmIHRoaXMuaXNJRTw2KSApDQoJCXsNCgkJCXdpZHRoCS09IDI7DQoJCQloZWlnaHQJLT0gMjsNCgkJfQ0KCQl0aGlzLnByb2Nlc3Npbmdfc2NyZWVuLnN0eWxlLmRpc3BsYXk9ICJibG9jayI7DQoJCXRoaXMucHJvY2Vzc2luZ19zY3JlZW4uc3R5bGUud2lkdGgJPSB3aWR0aCsicHgiOw0KCQl0aGlzLnByb2Nlc3Npbmdfc2NyZWVuLnN0eWxlLmhlaWdodAk9IGhlaWdodCsicHgiOw0KCQl0aGlzLndhaXRpbmdfc2NyZWVuX2Rpc3BsYXllZAkJPSB0cnVlOw0KCX07DQoJDQoJRWRpdEFyZWEucHJvdG90eXBlLmhpZGVfd2FpdGluZ19zY3JlZW49IGZ1bmN0aW9uKCl7DQoJCXRoaXMucHJvY2Vzc2luZ19zY3JlZW4uc3R5bGUuZGlzcGxheT0ibm9uZSI7DQoJCXRoaXMud2FpdGluZ19zY3JlZW5fZGlzcGxheWVkPSBmYWxzZTsNCgl9Ow0KCQ0KCUVkaXRBcmVhLnByb3RvdHlwZS5hZGRfc3R5bGU9IGZ1bmN0aW9uKHN0eWxlcyl7DQoJCWlmKHN0eWxlcy5sZW5ndGg+MCl7DQoJCQluZXdjc3MgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpOw0KCQkJbmV3Y3NzLnR5cGU9InRleHQvY3NzIjsNCgkJCW5ld2Nzcy5tZWRpYT0iYWxsIjsNCgkJCWlmKG5ld2Nzcy5zdHlsZVNoZWV0KXsgLy8gSUUNCgkJCQluZXdjc3Muc3R5bGVTaGVldC5jc3NUZXh0ID0gc3R5bGVzOw0KCQkJfSBlbHNlIHsgLy8gVzNDDQoJCQkJbmV3Y3NzLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHN0eWxlcykpOw0KCQkJfQ0KCQkJZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImhlYWQiKVswXS5hcHBlbmRDaGlsZChuZXdjc3MpOw0KCQl9DQoJfTsNCgkNCglFZGl0QXJlYS5wcm90b3R5cGUuc2V0X2ZvbnQ9IGZ1bmN0aW9uKGZhbWlseSwgc2l6ZSl7DQoJCXZhciB0PXRoaXMsIGE9dGhpcy50ZXh0YXJlYSwgcz10aGlzLnNldHRpbmdzLCBlbGVtX2ZvbnQsIGksIGVsZW07DQoJCS8vIGxpc3QgYWxsIGVsZW1lbnRzIGNvbmNlcm5lZCBieSBmb250IGNoYW5nZXMNCgkJdmFyIGVsZW1zPSBbInRleHRhcmVhIiwgImNvbnRlbnRfaGlnaGxpZ2h0IiwgImN1cnNvcl9wb3MiLCAiZW5kX2JyYWNrZXQiLCAic2VsZWN0aW9uX2ZpZWxkIiwgInNlbGVjdGlvbl9maWVsZF90ZXh0IiwgImxpbmVfbnVtYmVyIl07DQoJCQ0KCQlpZihmYW1pbHkgJiYgZmFtaWx5IT0iIikNCgkJCXNbImZvbnRfZmFtaWx5Il09IGZhbWlseTsNCgkJaWYoc2l6ZSAmJiBzaXplPjApDQoJCQlzWyJmb250X3NpemUiXQk9IHNpemU7DQoJCWlmKCB0LmlzT3BlcmEgJiYgdC5pc09wZXJhIDwgOS42ICkJLy8gb3BlcmE8OS42IGNhbid0IG1hbmFnZSBub24gbW9ub3NwYWNlIGZvbnQNCgkJCXNbJ2ZvbnRfZmFtaWx5J109Im1vbm9zcGFjZSI7DQoJCQkNCgkJLy8gdXBkYXRlIHRoZSBzZWxlY3QgdGFnDQoJCWlmKCBlbGVtX2ZvbnQgPSBfJCgiYXJlYV9mb250X3NpemUiKSApDQoJCXsJDQoJCQlmb3IoIGkgPSAwOyBpIDwgZWxlbV9mb250Lmxlbmd0aDsgaSsrICkNCgkJCXsNCgkJCQlpZiggZWxlbV9mb250Lm9wdGlvbnNbaV0udmFsdWUgJiYgZWxlbV9mb250Lm9wdGlvbnNbaV0udmFsdWUgPT0gc1siZm9udF9zaXplIl0gKQ0KCQkJCQllbGVtX2ZvbnQub3B0aW9uc1tpXS5zZWxlY3RlZD10cnVlOw0KCQkJfQ0KCQl9DQoJCQ0KCQkvKg0KCQkgKiBzb21ldGhpbWVzIGZpcmVmb3ggaGFzIHJlbmRlcmluZyBtaXN0YWtlIHdpdGggbm9uLW1vbm9zcGFjZSBmb250IGZvciB0ZXh0IHdpZHRoIGluIHRleHRhcmVhIHZzIGluIGRpdiBmb3IgY2hhbmdpbmcgZm9udCBzaXplIChlZzogdmVyZGFuYSBjaGFuZ2UgYmV0d2VlbiAxMXB0IHRvIDEycHQpDQoJCSAqID0+IGxvb2tzIGxpa2UgYSBicm93c2VyIGludGVybmFsIHJhbmRvbSBidWcgYXMgdGV4dCB3aWR0aCBjYW4gY2hhbmdlIHdoaWxlIGNvbnRlbnRfaGlnaGxpZ2h0IGlzIHVwZGF0ZWQNCgkJICogd2UnbGwgY2hlY2sgaWYgdGhlIGZvbnQtc2l6ZSBwcm9kdWNlIHRoZSBzYW1lIHRleHQgd2lkdGggaW5zaWRlIHRleHRhcmVhIGFuZCBkaXYgYW5kIGlmIG5vdCwgd2UnbGwgaW5jcmVtZW50IHRoZSBmb250LXNpemUNCgkJICogDQoJCSAqIFRoaXMgaXMgYW4gdWdseSBmaXggDQoJCSAqLyANCgkJaWYoIHQuaXNGaXJlZm94ICkNCgkJew0KCQkJdmFyIG5iVHJ5ID0gMzsNCgkJCWRvIHsNCgkJCQl2YXIgZGl2MSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoICdkaXYnICksIHRleHQxID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggJ3RleHRhcmVhJyApOw0KCQkJCXZhciBzdHlsZXMgPSB7DQoJCQkJCXdpZHRoOgkJJzQwcHgnLA0KCQkJCQlvdmVyZmxvdzoJJ3Njcm9sbCcsDQoJCQkJCXpJbmRleDogCTUwLA0KCQkJCQl2aXNpYmlsaXR5OgknaGlkZGVuJywNCgkJCQkJZm9udEZhbWlseToJc1siZm9udF9mYW1pbHkiXSwNCgkJCQkJZm9udFNpemU6CXNbImZvbnRfc2l6ZSJdKyJwdCIsDQoJCQkJCWxpbmVIZWlnaHQ6CXQubGluZUhlaWdodCsicHgiLA0KCQkJCQlwYWRkaW5nOgknMCcsDQoJCQkJCW1hcmdpbjoJCScwJywNCgkJCQkJYm9yZGVyOgkJJ25vbmUnLA0KCQkJCQl3aGl0ZVNwYWNlOgknbm93cmFwJw0KCQkJCX07DQoJCQkJdmFyIGRpZmYsIGNoYW5nZWQgPSBmYWxzZTsNCgkJCQlmb3IoIGkgaW4gc3R5bGVzICkNCgkJCQl7DQoJCQkJCWRpdjEuc3R5bGVbIGkgXQkJPSBzdHlsZXNbaV07DQoJCQkJCXRleHQxLnN0eWxlWyBpIF0JPSBzdHlsZXNbaV07DQoJCQkJfQ0KCQkJCS8vIG5vIHdyYXAgZm9yIHRoaXMgdGV4dA0KCQkJCXRleHQxLndyYXAgPSAnb2ZmJzsNCgkJCQl0ZXh0MS5zZXRBdHRyaWJ1dGUoJ3dyYXAnLCAnb2ZmJyk7DQoJCQkJdC5jb250YWluZXIuYXBwZW5kQ2hpbGQoIGRpdjEgKTsNCgkJCQl0LmNvbnRhaW5lci5hcHBlbmRDaGlsZCggdGV4dDEgKTsNCgkJCQkvLyB0cnkgdG8gbWFrZSBGRiB0byBidWcNCgkJCQlkaXYxLmlubmVySFRNTCAJCT0gdGV4dDEudmFsdWUJPSAnYXplcnR5dWlvcHFzZGZnaGprbG0nOw0KCQkJCWRpdjEuaW5uZXJIVE1MIAkJPSB0ZXh0MS52YWx1ZQk9IHRleHQxLnZhbHVlKyd3eGN2Ym5ecCrDuSQhOjssLCc7DQoJCQkJZGlmZgk9ICB0ZXh0MS5zY3JvbGxXaWR0aCAtIGRpdjEuc2Nyb2xsV2lkdGg7CgkJCQkNCgkJCQkvLyBmaXJlZm94IHJldHVybiBoZXJlIGEgZGlmZiBvZiAxIHB4IGJldHdlZW4gZXF1YWxzIHNjcm9sbFdpZHRoIChjYW4ndCBleHBsYWluKQ0KCQkJCWlmKCBNYXRoLmFicyggZGlmZiApID49IDIgKQ0KCQkJCXsNCgkJCQkJc1siZm9udF9zaXplIl0rKzsNCgkJCQkJY2hhbmdlZAk9IHRydWU7DQoJCQkJfQ0KCQkJCXQuY29udGFpbmVyLnJlbW92ZUNoaWxkKCBkaXYxICk7DQoJCQkJdC5jb250YWluZXIucmVtb3ZlQ2hpbGQoIHRleHQxICk7DQoJCQkJbmJUcnktLTsNCgkJCX13aGlsZSggY2hhbmdlZCAmJiBuYlRyeSA+IDAgKTsNCgkJfQ0KCQkNCgkJDQoJCS8vIGNhbGMgbGluZSBoZWlnaHQNCgkJZWxlbQkJCQkJPSB0LnRlc3RfZm9udF9zaXplOw0KCQllbGVtLnN0eWxlLmZvbnRGYW1pbHkJPSAiIitzWyJmb250X2ZhbWlseSJdOw0KCQllbGVtLnN0eWxlLmZvbnRTaXplCQk9IHNbImZvbnRfc2l6ZSJdKyJwdCI7CQkJCQ0KCQllbGVtLmlubmVySFRNTAkJCT0gIjAiOwkJDQoJCXQubGluZUhlaWdodAkJCT0gZWxlbS5vZmZzZXRIZWlnaHQ7DQoNCgkJLy8gdXBkYXRlIGZvbnQgZm9yIGFsbCBjb25jZXJuZWQgZWxlbWVudHMNCgkJZm9yKCBpPTA7IGk8ZWxlbXMubGVuZ3RoOyBpKyspDQoJCXsNCgkJCWVsZW0JPSBfJChlbGVtc1tpXSk7CQ0KCQkJZWxlbS5zdHlsZS5mb250RmFtaWx5CT0gc1siZm9udF9mYW1pbHkiXTsNCgkJCWVsZW0uc3R5bGUuZm9udFNpemUJCT0gc1siZm9udF9zaXplIl0rInB0IjsNCgkJCWVsZW0uc3R5bGUubGluZUhlaWdodAk9IHQubGluZUhlaWdodCsicHgiOw0KCQl9DQoJCS8vIGRlZmluZSBhIGNzcyBmb3IgPHByZT4gdGFncw0KCQl0LmFkZF9zdHlsZSgicHJle2ZvbnQtZmFtaWx5OiIrc1siZm9udF9mYW1pbHkiXSsifSIpOw0KCQkNCgkJLy8gb2xkIG9wZXJhIGFuZCBJRT49OCBkb2Vzbid0IHVwZGF0ZSBmb250IGNoYW5nZXMgdG8gdGhlIHRleHRhcmVhDQoJCWlmKCAoIHQuaXNPcGVyYSAmJiB0LmlzT3BlcmEgPCA5LjYgKSB8fCB0LmlzSUUgPj0gOCApDQoJCXsNCgkJCXZhciBwYXJOb2QgPSBhLnBhcmVudE5vZGUsIG54dFNpYiA9IGEubmV4dFNpYmxpbmcsIHN0YXJ0PSBhLnNlbGVjdGlvblN0YXJ0LCBlbmQ9IGEuc2VsZWN0aW9uRW5kOw0KCQkJcGFyTm9kLnJlbW92ZUNoaWxkKGEpOw0KCQkJcGFyTm9kLmluc2VydEJlZm9yZShhLCBueHRTaWIpOw0KCQkJdC5hcmVhX3NlbGVjdChzdGFydCwgZW5kLXN0YXJ0KTsNCgkJfQ0KCQkNCgkJLy8gZm9yY2UgdXBkYXRlIG9mIHNlbGVjdGlvbiBmaWVsZA0KCQl0aGlzLmZvY3VzKCk7DQoJCXRoaXMudXBkYXRlX3NpemUoKTsNCgkJdGhpcy5jaGVja19saW5lX3NlbGVjdGlvbigpOw0KCX07DQoJDQoJRWRpdEFyZWEucHJvdG90eXBlLmNoYW5nZV9mb250X3NpemU9IGZ1bmN0aW9uKCl7DQoJCXZhciBzaXplPV8kKCJhcmVhX2ZvbnRfc2l6ZSIpLnZhbHVlOw0KCQlpZihzaXplPjApDQoJCQl0aGlzLnNldF9mb250KCIiLCBzaXplKTsJCQkNCgl9Ow0KCQ0KCQ0KCUVkaXRBcmVhLnByb3RvdHlwZS5vcGVuX2lubGluZV9wb3B1cD0gZnVuY3Rpb24ocG9wdXBfaWQpew0KCQl0aGlzLmNsb3NlX2FsbF9pbmxpbmVfcG9wdXAoKTsNCgkJdmFyIHBvcHVwPSBfJChwb3B1cF9pZCk7CQkNCgkJdmFyIGVkaXRvcj0gXyQoImVkaXRvciIpOw0KCQkNCgkJLy8gc2VhcmNoIG1hdGNoaW5nIGljb24NCgkJZm9yKHZhciBpPTA7IGk8dGhpcy5pbmxpbmVQb3B1cC5sZW5ndGg7IGkrKyl7DQoJCQlpZih0aGlzLmlubGluZVBvcHVwW2ldWyJwb3B1cF9pZCJdPT1wb3B1cF9pZCl7DQoJCQkJdmFyIGljb249IF8kKHRoaXMuaW5saW5lUG9wdXBbaV1bImljb25faWQiXSk7DQoJCQkJaWYoaWNvbil7DQoJCQkJCXRoaXMuc3dpdGNoQ2xhc3NTdGlja3koaWNvbiwgJ2VkaXRBcmVhQnV0dG9uU2VsZWN0ZWQnLCB0cnVlKTsJCQkNCgkJCQkJYnJlYWs7DQoJCQkJfQ0KCQkJfQ0KCQl9DQoJCS8vIGNoZWNrIHNpemUNCgkJcG9wdXAuc3R5bGUuaGVpZ2h0PSJhdXRvIjsNCgkJcG9wdXAuc3R5bGUub3ZlcmZsb3c9ICJ2aXNpYmxlIjsNCgkJCQ0KCQlpZihkb2N1bWVudC5ib2R5Lm9mZnNldEhlaWdodDwgcG9wdXAub2Zmc2V0SGVpZ2h0KXsNCgkJCXBvcHVwLnN0eWxlLmhlaWdodD0gKGRvY3VtZW50LmJvZHkub2Zmc2V0SGVpZ2h0LTEwKSsicHgiOw0KCQkJcG9wdXAuc3R5bGUub3ZlcmZsb3c9ICJhdXRvIjsNCgkJfQ0KCQkNCgkJaWYoIXBvcHVwLnBvc2l0aW9ubmVkKXsNCgkJCXZhciBuZXdfbGVmdD0gZWRpdG9yLm9mZnNldFdpZHRoIC8yIC0gcG9wdXAub2Zmc2V0V2lkdGggLzI7DQoJCQl2YXIgbmV3X3RvcD0gZWRpdG9yLm9mZnNldEhlaWdodCAvMiAtIHBvcHVwLm9mZnNldEhlaWdodCAvMjsNCgkJCS8vdmFyIG5ld190b3A9IGFyZWEub2Zmc2V0SGVpZ2h0IC8yIC0gcG9wdXAub2Zmc2V0SGVpZ2h0IC8yOw0KCQkJLy92YXIgbmV3X2xlZnQ9IGFyZWEub2Zmc2V0V2lkdGggLzIgLSBwb3B1cC5vZmZzZXRXaWR0aCAvMjsNCgkJCS8vYWxlcnQoIm5ld190b3A6ICgiK25ld190b3ArIikgPSBjYWxjdWxlT2Zmc2V0VG9wKGFyZWEpICgiK2NhbGN1bGVPZmZzZXRUb3AoYXJlYSkrIikgKyBhcmVhLm9mZnNldEhlaWdodCAvMigiKyBhcmVhLm9mZnNldEhlaWdodCAvMisiKSAtIHBvcHVwLm9mZnNldEhlaWdodCAvMigiK3BvcHVwLm9mZnNldEhlaWdodCAvMisiKSAtIHNjcm9sbFRvcDogIitkb2N1bWVudC5ib2R5LnNjcm9sbFRvcCk7DQoJCQlwb3B1cC5zdHlsZS5sZWZ0PSBuZXdfbGVmdCsicHgiOw0KCQkJcG9wdXAuc3R5bGUudG9wPSBuZXdfdG9wKyJweCI7DQoJCQlwb3B1cC5wb3NpdGlvbm5lZD10cnVlOw0KCQl9DQoJCXBvcHVwLnN0eWxlLnZpc2liaWxpdHk9InZpc2libGUiOw0KCQkNCgkJLy9wb3B1cC5zdHlsZS5kaXNwbGF5PSJibG9jayI7DQoJfTsNCg0KCUVkaXRBcmVhLnByb3RvdHlwZS5jbG9zZV9pbmxpbmVfcG9wdXA9IGZ1bmN0aW9uKHBvcHVwX2lkKXsNCgkJdmFyIHBvcHVwPSBfJChwb3B1cF9pZCk7CQkNCgkJLy8gc2VhcmNoIG1hdGNoaW5nIGljb24NCgkJZm9yKHZhciBpPTA7IGk8dGhpcy5pbmxpbmVQb3B1cC5sZW5ndGg7IGkrKyl7DQoJCQlpZih0aGlzLmlubGluZVBvcHVwW2ldWyJwb3B1cF9pZCJdPT1wb3B1cF9pZCl7DQoJCQkJdmFyIGljb249IF8kKHRoaXMuaW5saW5lUG9wdXBbaV1bImljb25faWQiXSk7DQoJCQkJaWYoaWNvbil7DQoJCQkJCXRoaXMuc3dpdGNoQ2xhc3NTdGlja3koaWNvbiwgJ2VkaXRBcmVhQnV0dG9uTm9ybWFsJywgZmFsc2UpOwkJCQ0KCQkJCQlicmVhazsNCgkJCQl9DQoJCQl9DQoJCX0NCgkJDQoJCXBvcHVwLnN0eWxlLnZpc2liaWxpdHk9ImhpZGRlbiI7CQ0KCX07DQoJDQoJRWRpdEFyZWEucHJvdG90eXBlLmNsb3NlX2FsbF9pbmxpbmVfcG9wdXA9IGZ1bmN0aW9uKGUpew0KCQlmb3IodmFyIGk9MDsgaTx0aGlzLmlubGluZVBvcHVwLmxlbmd0aDsgaSsrKXsNCgkJCXRoaXMuY2xvc2VfaW5saW5lX3BvcHVwKHRoaXMuaW5saW5lUG9wdXBbaV1bInBvcHVwX2lkIl0pOwkJDQoJCX0NCgkJdGhpcy50ZXh0YXJlYS5mb2N1cygpOw0KCX07DQoJDQoJRWRpdEFyZWEucHJvdG90eXBlLnNob3dfaGVscD0gZnVuY3Rpb24oKXsNCgkJDQoJCXRoaXMub3Blbl9pbmxpbmVfcG9wdXAoImVkaXRfYXJlYV9oZWxwIik7DQoJCQ0KCX07DQoJCQkNCglFZGl0QXJlYS5wcm90b3R5cGUubmV3X2RvY3VtZW50PSBmdW5jdGlvbigpew0KCQl0aGlzLnRleHRhcmVhLnZhbHVlPSIiOw0KCQl0aGlzLmFyZWFfc2VsZWN0KDAsMCk7DQoJfTsNCgkNCglFZGl0QXJlYS5wcm90b3R5cGUuZ2V0X2FsbF90b29sYmFyX2hlaWdodD0gZnVuY3Rpb24oKXsNCgkJdmFyIGFyZWE9IF8kKCJlZGl0b3IiKTsNCgkJdmFyIHJlc3VsdHM9IHBhcmVudC5nZXRDaGlsZHJlbihhcmVhLCAiZGl2IiwgImNsYXNzIiwgImFyZWFfdG9vbGJhciIsICJhbGwiLCAiMCIpOwkvLyBzZWFyY2ggb25seSBkaXJlY3QgY2hpbGRyZW4NCgkJLy9yZXN1bHRzPSByZXN1bHRzLmNvbmNhdChnZXRDaGlsZHJlbihhcmVhLCAidGFibGUiLCAiY2xhc3MiLCAiYXJlYV90b29sYmFyIiwgImFsbCIsICIwIikpOw0KCQl2YXIgaGVpZ2h0PTA7DQoJCWZvcih2YXIgaT0wOyBpPHJlc3VsdHMubGVuZ3RoOyBpKyspewkJCQ0KCQkJaGVpZ2h0Kz0gcmVzdWx0c1tpXS5vZmZzZXRIZWlnaHQ7DQoJCX0NCgkJLy9hbGVydCgidG9vbGJhciBoZWlnaHQ6ICIraGVpZ2h0KTsNCgkJcmV0dXJuIGhlaWdodDsNCgl9Ow0KCQ0KCUVkaXRBcmVhLnByb3RvdHlwZS5nb190b19saW5lPSBmdW5jdGlvbihsaW5lKXsJDQoJCWlmKCFsaW5lKQ0KCQl7CQ0KCQkJdmFyIGljb249IF8kKCJnb190b19saW5lIik7DQoJCQlpZihpY29uICE9IG51bGwpew0KCQkJCXRoaXMucmVzdG9yZUNsYXNzKGljb24pOw0KCQkJCXRoaXMuc3dpdGNoQ2xhc3NTdGlja3koaWNvbiwgJ2VkaXRBcmVhQnV0dG9uU2VsZWN0ZWQnLCB0cnVlKTsNCgkJCX0NCgkJCQ0KCQkJbGluZT0gcHJvbXB0KHRoaXMuZ2V0X3RyYW5zbGF0aW9uKCJnb190b19saW5lX3Byb21wdCIpKTsNCgkJCWlmKGljb24gIT0gbnVsbCkNCgkJCQl0aGlzLnN3aXRjaENsYXNzU3RpY2t5KGljb24sICdlZGl0QXJlYUJ1dHRvbk5vcm1hbCcsIGZhbHNlKTsNCgkJfQ0KCQlpZihsaW5lICYmIGxpbmUhPW51bGwgJiYgbGluZS5zZWFyY2goL15bMC05XSskLykhPS0xKXsNCgkJCXZhciBzdGFydD0wOw0KCQkJdmFyIGxpbmVzPSB0aGlzLnRleHRhcmVhLnZhbHVlLnNwbGl0KCJcbiIpOw0KCQkJaWYobGluZSA+IGxpbmVzLmxlbmd0aCkNCgkJCQlzdGFydD0gdGhpcy50ZXh0YXJlYS52YWx1ZS5sZW5ndGg7DQoJCQllbHNlew0KCQkJCWZvcih2YXIgaT0wOyBpPE1hdGgubWluKGxpbmUtMSwgbGluZXMubGVuZ3RoKTsgaSsrKQ0KCQkJCQlzdGFydCs9IGxpbmVzW2ldLmxlbmd0aCArIDE7DQoJCQl9DQoJCQl0aGlzLmFyZWFfc2VsZWN0KHN0YXJ0LCAwKTsNCgkJfQ0KCQkNCgkJDQoJfTsNCgkNCgkNCglFZGl0QXJlYS5wcm90b3R5cGUuY2hhbmdlX3Ntb290aF9zZWxlY3Rpb25fbW9kZT0gZnVuY3Rpb24oc2V0VG8pew0KCQkvL2FsZXJ0KCJzZXRUbzogIitzZXRUbyk7DQoJCWlmKHRoaXMuZG9faGlnaGxpZ2h0KQ0KCQkJcmV0dXJuOw0KCQkJDQoJCWlmKHNldFRvICE9IG51bGwpew0KCQkJaWYoc2V0VG8gPT09IGZhbHNlKQ0KCQkJCXRoaXMuc21vb3RoX3NlbGVjdGlvbj10cnVlOw0KCQkJZWxzZQ0KCQkJCXRoaXMuc21vb3RoX3NlbGVjdGlvbj1mYWxzZTsNCgkJfQ0KCQl2YXIgaWNvbj0gXyQoImNoYW5nZV9zbW9vdGhfc2VsZWN0aW9uIik7DQoJCXRoaXMudGV4dGFyZWEuZm9jdXMoKTsNCgkJaWYodGhpcy5zbW9vdGhfc2VsZWN0aW9uPT09dHJ1ZSl7DQoJCQkvL3NldEF0dHJpYnV0ZShpY29uLCAiY2xhc3MiLCBnZXRBdHRyaWJ1dGUoaWNvbiwgImNsYXNzIikucmVwbGFjZSgvIHNlbGVjdGVkL2csICIiKSApOw0KCQkJLypzZXRBdHRyaWJ1dGUoaWNvbiwgIm9sZENsYXNzTmFtZSIsICJlZGl0QXJlYUJ1dHRvbk5vcm1hbCIgKTsNCgkJCXNldEF0dHJpYnV0ZShpY29uLCAiY2xhc3NOYW1lIiwgImVkaXRBcmVhQnV0dG9uTm9ybWFsIiApOyovDQoJCQkvL3RoaXMucmVzdG9yZUNsYXNzKGljb24pOw0KCQkJLy90aGlzLnJlc3RvcmVBbmRTd2l0Y2hDbGFzcyhpY29uLCdlZGl0QXJlYUJ1dHRvbk5vcm1hbCcpOw0KCQkJdGhpcy5zd2l0Y2hDbGFzc1N0aWNreShpY29uLCAnZWRpdEFyZWFCdXR0b25Ob3JtYWwnLCBmYWxzZSk7DQoJCQkNCgkJCXRoaXMuc21vb3RoX3NlbGVjdGlvbj1mYWxzZTsNCgkJCXRoaXMuc2VsZWN0aW9uX2ZpZWxkLnN0eWxlLmRpc3BsYXk9ICJub25lIjsNCgkJCV8kKCJjdXJzb3JfcG9zIikuc3R5bGUuZGlzcGxheT0gIm5vbmUiOw0KCQkJXyQoImVuZF9icmFja2V0Iikuc3R5bGUuZGlzcGxheT0gIm5vbmUiOw0KCQl9ZWxzZXsNCgkJCS8vc2V0QXR0cmlidXRlKGljb24sICJjbGFzcyIsIGdldEF0dHJpYnV0ZShpY29uLCAiY2xhc3MiKSArICIgc2VsZWN0ZWQiKTsNCgkJCS8vdGhpcy5zd2l0Y2hDbGFzcyhpY29uLCdlZGl0QXJlYUJ1dHRvblNlbGVjdGVkJyk7DQoJCQl0aGlzLnN3aXRjaENsYXNzU3RpY2t5KGljb24sICdlZGl0QXJlYUJ1dHRvblNlbGVjdGVkJywgZmFsc2UpOw0KCQkJdGhpcy5zbW9vdGhfc2VsZWN0aW9uPXRydWU7DQoJCQl0aGlzLnNlbGVjdGlvbl9maWVsZC5zdHlsZS5kaXNwbGF5PSAiYmxvY2siOw0KCQkJXyQoImN1cnNvcl9wb3MiKS5zdHlsZS5kaXNwbGF5PSAiYmxvY2siOw0KCQkJXyQoImVuZF9icmFja2V0Iikuc3R5bGUuZGlzcGxheT0gImJsb2NrIjsNCgkJfQkNCgl9Ow0KCQ0KCS8vIHRoZSBhdXRvIHNjcm9sbCBvZiB0aGUgdGV4dGFyZWEgaGFzIHNvbWUgbGFja3Mgd2hlbiBpdCBoYXZlIHRvIHNob3cgY3Vyc29yIGluIHRoZSB2aXNpYmxlIGFyZWEgd2hlbiB0aGUgdGV4dGFyZWEgc2l6ZSBjaGFuZ2UNCgkvLyBzaG93IHNwZWNpZml5IHdoZXJlYXMgaXQgaXMgdGhlICJ0b3AiIG9yICJib3R0b20iIG9mIHRoZSBzZWxlY3Rpb24gdGhhdCBpcyBzaG93bmVkDQoJRWRpdEFyZWEucHJvdG90eXBlLnNjcm9sbF90b192aWV3PSBmdW5jdGlvbihzaG93KXsNCgkJdmFyIHpvbmUsIGxpbmVFbGVtOw0KCQlpZighdGhpcy5zbW9vdGhfc2VsZWN0aW9uKQ0KCQkJcmV0dXJuOw0KCQl6b25lPSBfJCgicmVzdWx0Iik7DQoJCQ0KCQkvLyBtYW5hZ2UgaGVpZ2h0IHNjcm9sbA0KCQl2YXIgY3Vyc29yX3Bvc190b3A9IF8kKCJjdXJzb3JfcG9zIikuY3Vyc29yX3RvcDsNCgkJaWYoc2hvdz09ImJvdHRvbSIpDQoJCXsNCgkJCS8vY3Vyc29yX3Bvc190b3ArPSAgKHRoaXMubGFzdF9zZWxlY3Rpb25bImxpbmVfbmIiXS0xKSogdGhpcy5saW5lSGVpZ2h0Ow0KCQkJY3Vyc29yX3Bvc190b3ArPSB0aGlzLmdldExpbmVQb3NUb3AoIHRoaXMubGFzdF9zZWxlY3Rpb25bJ2xpbmVfc3RhcnQnXSArIHRoaXMubGFzdF9zZWxlY3Rpb25bJ2xpbmVfbmInXSAtIDEgKTsNCgkJfQ0KCQkJDQoJCXZhciBtYXhfaGVpZ2h0X3Zpc2libGU9IHpvbmUuY2xpZW50SGVpZ2h0ICsgem9uZS5zY3JvbGxUb3A7DQoJCXZhciBtaXNzX3RvcAk9IGN1cnNvcl9wb3NfdG9wICsgdGhpcy5saW5lSGVpZ2h0IC0gbWF4X2hlaWdodF92aXNpYmxlOw0KCQlpZihtaXNzX3RvcD4wKXsNCgkJCS8vYWxlcnQobWlzc190b3ApOw0KCQkJem9uZS5zY3JvbGxUb3A9ICB6b25lLnNjcm9sbFRvcCArIG1pc3NfdG9wOw0KCQl9ZWxzZSBpZiggem9uZS5zY3JvbGxUb3AgPiBjdXJzb3JfcG9zX3RvcCl7DQoJCQkvLyB3aGVuIGVyYXNlIGFsbCB0aGUgY29udGVudCAtPiBkb2VzJ250IHNjcm9sbCBiYWNrIHRvIHRoZSB0b3ANCgkJCS8vYWxlcnQoImVsc2U6ICIrY3Vyc29yX3Bvc190b3ApOw0KCQkJem9uZS5zY3JvbGxUb3A9IGN1cnNvcl9wb3NfdG9wOwkgDQoJCX0NCgkJDQoJCS8vIG1hbmFnZSBsZWZ0IHNjcm9sbA0KCQkvL3ZhciBjdXJzb3JfcG9zX2xlZnQ9IHBhcnNlSW50KF8kKCJjdXJzb3JfcG9zIikuc3R5bGUubGVmdC5yZXBsYWNlKCJweCIsIiIpKTsNCgkJdmFyIGN1cnNvcl9wb3NfbGVmdD0gXyQoImN1cnNvcl9wb3MiKS5jdXJzb3JfbGVmdDsNCgkJdmFyIG1heF93aWR0aF92aXNpYmxlPSB6b25lLmNsaWVudFdpZHRoICsgem9uZS5zY3JvbGxMZWZ0Ow0KCQl2YXIgbWlzc19sZWZ0PSBjdXJzb3JfcG9zX2xlZnQgKyAxMCAtIG1heF93aWR0aF92aXNpYmxlOw0KCQlpZihtaXNzX2xlZnQ+MCl7CQkJDQoJCQl6b25lLnNjcm9sbExlZnQ9IHpvbmUuc2Nyb2xsTGVmdCArIG1pc3NfbGVmdCArIDUwOw0KCQl9ZWxzZSBpZiggem9uZS5zY3JvbGxMZWZ0ID4gY3Vyc29yX3Bvc19sZWZ0KXsNCgkJCXpvbmUuc2Nyb2xsTGVmdD0gY3Vyc29yX3Bvc19sZWZ0IDsNCgkJfWVsc2UgaWYoIHpvbmUuc2Nyb2xsTGVmdCA9PSA0NSl7DQoJCQkvLyBzaG93IHRoZSBsaW5lIG51bWJlcnMgaWYgdGV4dGFyZWEgYWxpZ24gdG8gaXQncyBsZWZ0DQoJCQl6b25lLnNjcm9sbExlZnQ9MDsNCgkJfQ0KCX07DQoJDQoJRWRpdEFyZWEucHJvdG90eXBlLmNoZWNrX3VuZG89IGZ1bmN0aW9uKG9ubHlfb25jZSl7DQoJCWlmKCFlZGl0QXJlYXNbdGhpcy5pZF0pDQoJCQlyZXR1cm4gZmFsc2U7DQoJCWlmKHRoaXMudGV4dGFyZWFGb2N1c2VkICYmIGVkaXRBcmVhc1t0aGlzLmlkXVsiZGlzcGxheWVkIl09PXRydWUpew0KCQkJdmFyIHRleHQ9dGhpcy50ZXh0YXJlYS52YWx1ZTsNCgkJCWlmKHRoaXMucHJldmlvdXMubGVuZ3RoPD0xKQ0KCQkJCXRoaXMuc3dpdGNoQ2xhc3NTdGlja3koXyQoInVuZG8iKSwgJ2VkaXRBcmVhQnV0dG9uRGlzYWJsZWQnLCB0cnVlKTsNCgkJDQoJCQlpZighdGhpcy5wcmV2aW91c1t0aGlzLnByZXZpb3VzLmxlbmd0aC0xXSB8fCB0aGlzLnByZXZpb3VzW3RoaXMucHJldmlvdXMubGVuZ3RoLTFdWyJ0ZXh0Il0gIT0gdGV4dCl7DQoJCQkJdGhpcy5wcmV2aW91cy5wdXNoKHsidGV4dCI6IHRleHQsICJzZWxTdGFydCI6IHRoaXMudGV4dGFyZWEuc2VsZWN0aW9uU3RhcnQsICJzZWxFbmQiOiB0aGlzLnRleHRhcmVhLnNlbGVjdGlvbkVuZH0pOw0KCQkJCWlmKHRoaXMucHJldmlvdXMubGVuZ3RoID4gdGhpcy5zZXR0aW5nc1sibWF4X3VuZG8iXSsxKQ0KCQkJCQl0aGlzLnByZXZpb3VzLnNoaWZ0KCk7DQoJCQkJDQoJCQl9DQoJCQlpZih0aGlzLnByZXZpb3VzLmxlbmd0aCA+PSAyKQ0KCQkJCXRoaXMuc3dpdGNoQ2xhc3NTdGlja3koXyQoInVuZG8iKSwgJ2VkaXRBcmVhQnV0dG9uTm9ybWFsJywgZmFsc2UpOwkJDQoJCX0NCg0KCQlpZighb25seV9vbmNlKQ0KCQkJc2V0VGltZW91dCgiZWRpdEFyZWEuY2hlY2tfdW5kbygpIiwgMzAwMCk7DQoJfTsNCgkNCglFZGl0QXJlYS5wcm90b3R5cGUudW5kbz0gZnVuY3Rpb24oKXsNCgkJLy9hbGVydCgidW5kbyIrdGhpcy5wcmV2aW91cy5sZW5ndGgpOw0KCQlpZih0aGlzLnByZXZpb3VzLmxlbmd0aCA+IDApDQoJCXsNCgkJCXRoaXMuZ2V0SUVTZWxlY3Rpb24oKTsNCgkJLy8JdmFyIHBvc19jdXJzb3I9dGhpcy50ZXh0YXJlYS5zZWxlY3Rpb25TdGFydDsNCgkJCXRoaXMubmV4dC5wdXNoKCB7ICJ0ZXh0IjogdGhpcy50ZXh0YXJlYS52YWx1ZSwgInNlbFN0YXJ0IjogdGhpcy50ZXh0YXJlYS5zZWxlY3Rpb25TdGFydCwgInNlbEVuZCI6IHRoaXMudGV4dGFyZWEuc2VsZWN0aW9uRW5kIH0gKTsNCgkJCXZhciBwcmV2PSB0aGlzLnByZXZpb3VzLnBvcCgpOw0KCQkJaWYoIHByZXZbInRleHQiXSA9PSB0aGlzLnRleHRhcmVhLnZhbHVlICYmIHRoaXMucHJldmlvdXMubGVuZ3RoID4gMCApDQoJCQkJcHJldgk9dGhpcy5wcmV2aW91cy5wb3AoKTsJCQkJCQkNCgkJCXRoaXMudGV4dGFyZWEudmFsdWUJPSBwcmV2WyJ0ZXh0Il07DQoJCQl0aGlzLmxhc3RfdW5kbwkJPSBwcmV2WyJ0ZXh0Il07DQoJCQl0aGlzLmFyZWFfc2VsZWN0KHByZXZbInNlbFN0YXJ0Il0sIHByZXZbInNlbEVuZCJdLXByZXZbInNlbFN0YXJ0Il0pOw0KCQkJdGhpcy5zd2l0Y2hDbGFzc1N0aWNreShfJCgicmVkbyIpLCAnZWRpdEFyZWFCdXR0b25Ob3JtYWwnLCBmYWxzZSk7DQoJCQl0aGlzLnJlc3luY19oaWdobGlnaHQodHJ1ZSk7DQoJCQkvL2FsZXJ0KCJ1bmRvIit0aGlzLnByZXZpb3VzLmxlbmd0aCk7DQoJCQl0aGlzLmNoZWNrX2ZpbGVfY2hhbmdlcygpOw0KCQl9DQoJfTsNCgkNCglFZGl0QXJlYS5wcm90b3R5cGUucmVkbz0gZnVuY3Rpb24oKXsNCgkJaWYodGhpcy5uZXh0Lmxlbmd0aCA+IDApDQoJCXsNCgkJCS8qdGhpcy5nZXRJRVNlbGVjdGlvbigpOyovDQoJCQkvL3ZhciBwb3NfY3Vyc29yPXRoaXMudGV4dGFyZWEuc2VsZWN0aW9uU3RhcnQ7DQoJCQl2YXIgbmV4dD0gdGhpcy5uZXh0LnBvcCgpOw0KCQkJdGhpcy5wcmV2aW91cy5wdXNoKG5leHQpOw0KCQkJdGhpcy50ZXh0YXJlYS52YWx1ZT0gbmV4dFsidGV4dCJdOw0KCQkJdGhpcy5sYXN0X3VuZG89IG5leHRbInRleHQiXTsNCgkJCXRoaXMuYXJlYV9zZWxlY3QobmV4dFsic2VsU3RhcnQiXSwgbmV4dFsic2VsRW5kIl0tbmV4dFsic2VsU3RhcnQiXSk7DQoJCQl0aGlzLnN3aXRjaENsYXNzU3RpY2t5KF8kKCJ1bmRvIiksICdlZGl0QXJlYUJ1dHRvbk5vcm1hbCcsIGZhbHNlKTsNCgkJCXRoaXMucmVzeW5jX2hpZ2hsaWdodCh0cnVlKTsNCgkJCXRoaXMuY2hlY2tfZmlsZV9jaGFuZ2VzKCk7DQoJCX0NCgkJaWYoCXRoaXMubmV4dC5sZW5ndGggPT0gMCkNCgkJCXRoaXMuc3dpdGNoQ2xhc3NTdGlja3koXyQoInJlZG8iKSwgJ2VkaXRBcmVhQnV0dG9uRGlzYWJsZWQnLCB0cnVlKTsNCgl9Ow0KCQ0KCUVkaXRBcmVhLnByb3RvdHlwZS5jaGVja19yZWRvPSBmdW5jdGlvbigpew0KCQlpZihlZGl0QXJlYS5uZXh0Lmxlbmd0aCA9PSAwIHx8IGVkaXRBcmVhLnRleHRhcmVhLnZhbHVlIT1lZGl0QXJlYS5sYXN0X3VuZG8pew0KCQkJZWRpdEFyZWEubmV4dD0gW107CS8vIHVuZG8gdGhlIGFiaWxpdHkgdG8gdXNlICJyZWRvIiBidXR0b24NCgkJCWVkaXRBcmVhLnN3aXRjaENsYXNzU3RpY2t5KF8kKCJyZWRvIiksICdlZGl0QXJlYUJ1dHRvbkRpc2FibGVkJywgdHJ1ZSk7DQoJCX0NCgkJZWxzZQ0KCQl7DQoJCQl0aGlzLnN3aXRjaENsYXNzU3RpY2t5KF8kKCJyZWRvIiksICdlZGl0QXJlYUJ1dHRvbk5vcm1hbCcsIGZhbHNlKTsNCgkJfQ0KCX07DQoJDQoJDQoJLy8gZnVuY3Rpb25zIHRoYXQgbWFuYWdlIGljb25zIHJvbGwgb3ZlciwgZGlzYWJsZWQsIGV0Yy4uLg0KCUVkaXRBcmVhLnByb3RvdHlwZS5zd2l0Y2hDbGFzcyA9IGZ1bmN0aW9uKGVsZW1lbnQsIGNsYXNzX25hbWUsIGxvY2tfc3RhdGUpIHsNCgkJdmFyIGxvY2tDaGFuZ2VkID0gZmFsc2U7DQoJDQoJCWlmICh0eXBlb2YobG9ja19zdGF0ZSkgIT0gInVuZGVmaW5lZCIgJiYgZWxlbWVudCAhPSBudWxsKSB7DQoJCQllbGVtZW50LmNsYXNzTG9jayA9IGxvY2tfc3RhdGU7DQoJCQlsb2NrQ2hhbmdlZCA9IHRydWU7DQoJCX0NCgkNCgkJaWYgKGVsZW1lbnQgIT0gbnVsbCAmJiAobG9ja0NoYW5nZWQgfHwgIWVsZW1lbnQuY2xhc3NMb2NrKSkgew0KCQkJZWxlbWVudC5vbGRDbGFzc05hbWUgPSBlbGVtZW50LmNsYXNzTmFtZTsNCgkJCWVsZW1lbnQuY2xhc3NOYW1lID0gY2xhc3NfbmFtZTsNCgkJfQ0KCX07DQoJDQoJRWRpdEFyZWEucHJvdG90eXBlLnJlc3RvcmVBbmRTd2l0Y2hDbGFzcyA9IGZ1bmN0aW9uKGVsZW1lbnQsIGNsYXNzX25hbWUpIHsNCgkJaWYgKGVsZW1lbnQgIT0gbnVsbCAmJiAhZWxlbWVudC5jbGFzc0xvY2spIHsNCgkJCXRoaXMucmVzdG9yZUNsYXNzKGVsZW1lbnQpOw0KCQkJdGhpcy5zd2l0Y2hDbGFzcyhlbGVtZW50LCBjbGFzc19uYW1lKTsNCgkJfQ0KCX07DQoJDQoJRWRpdEFyZWEucHJvdG90eXBlLnJlc3RvcmVDbGFzcyA9IGZ1bmN0aW9uKGVsZW1lbnQpIHsNCgkJaWYgKGVsZW1lbnQgIT0gbnVsbCAmJiBlbGVtZW50Lm9sZENsYXNzTmFtZSAmJiAhZWxlbWVudC5jbGFzc0xvY2spIHsNCgkJCWVsZW1lbnQuY2xhc3NOYW1lID0gZWxlbWVudC5vbGRDbGFzc05hbWU7DQoJCQllbGVtZW50Lm9sZENsYXNzTmFtZSA9IG51bGw7DQoJCX0NCgl9Ow0KCQ0KCUVkaXRBcmVhLnByb3RvdHlwZS5zZXRDbGFzc0xvY2sgPSBmdW5jdGlvbihlbGVtZW50LCBsb2NrX3N0YXRlKSB7DQoJCWlmIChlbGVtZW50ICE9IG51bGwpDQoJCQllbGVtZW50LmNsYXNzTG9jayA9IGxvY2tfc3RhdGU7DQoJfTsNCgkNCglFZGl0QXJlYS5wcm90b3R5cGUuc3dpdGNoQ2xhc3NTdGlja3kgPSBmdW5jdGlvbihlbGVtZW50LCBjbGFzc19uYW1lLCBsb2NrX3N0YXRlKSB7DQoJCXZhciBsb2NrQ2hhbmdlZCA9IGZhbHNlOw0KCQlpZiAodHlwZW9mKGxvY2tfc3RhdGUpICE9ICJ1bmRlZmluZWQiICYmIGVsZW1lbnQgIT0gbnVsbCkgew0KCQkJZWxlbWVudC5jbGFzc0xvY2sgPSBsb2NrX3N0YXRlOw0KCQkJbG9ja0NoYW5nZWQgPSB0cnVlOw0KCQl9DQoJDQoJCWlmIChlbGVtZW50ICE9IG51bGwgJiYgKGxvY2tDaGFuZ2VkIHx8ICFlbGVtZW50LmNsYXNzTG9jaykpIHsNCgkJCWVsZW1lbnQuY2xhc3NOYW1lID0gY2xhc3NfbmFtZTsNCgkJCWVsZW1lbnQub2xkQ2xhc3NOYW1lID0gY2xhc3NfbmFtZTsNCgkJfQ0KCX07DQoJDQoJLy9tYWtlIHRoZSAicGFnZSB1cCIgYW5kICJwYWdlIGRvd24iIGJ1dHRvbnMgd29ya3MgY29ycmVjdGx5DQoJRWRpdEFyZWEucHJvdG90eXBlLnNjcm9sbF9wYWdlPSBmdW5jdGlvbihwYXJhbXMpew0KCQl2YXIgZGlyPSBwYXJhbXNbImRpciJdLCBzaGlmdF9wcmVzc2VkPSBwYXJhbXNbInNoaWZ0Il07DQoJCXZhciBsaW5lcz0gdGhpcy50ZXh0YXJlYS52YWx1ZS5zcGxpdCgiXG4iKTsJCQ0KCQl2YXIgbmV3X3Bvcz0wLCBsZW5ndGg9MCwgY2hhcl9sZWZ0PTAsIGxpbmVfbmI9MCwgY3VyTGluZT0wOw0KCQl2YXIgdG9TY3JvbGxBbW91bnQJPSBfJCgicmVzdWx0IikuY2xpZW50SGVpZ2h0IC0zMDsNCgkJdmFyIG5iTGluZVRvU2Nyb2xsCT0gMCwgZGlmZj0gMDsNCgkJDQoJCWlmKGRpcj09InVwIil7DQoJCQluYkxpbmVUb1Njcm9sbAk9IE1hdGguY2VpbCggdG9TY3JvbGxBbW91bnQgLyB0aGlzLmxpbmVIZWlnaHQgKTsNCgkJCQ0KCQkJLy8gZml4IG51bWJlciBvZiBsaW5lIHRvIHNjcm9sbA0KCQkJZm9yKCBpID0gdGhpcy5sYXN0X3NlbGVjdGlvblsibGluZV9zdGFydCJdOyBpIC0gZGlmZiA+IHRoaXMubGFzdF9zZWxlY3Rpb25bImxpbmVfc3RhcnQiXSAtIG5iTGluZVRvU2Nyb2xsIDsgaS0tICkNCgkJCXsNCgkJCQlpZiggZWxlbSA9IF8kKCdsaW5lXycrIGkpICkNCgkJCQl7DQoJCQkJCWRpZmYgKz0gIE1hdGguZmxvb3IoICggZWxlbS5vZmZzZXRIZWlnaHQgLSAxICkgLyB0aGlzLmxpbmVIZWlnaHQgKTsNCgkJCQl9DQoJCQl9DQoJCQluYkxpbmVUb1Njcm9sbAktPSBkaWZmOw0KCQkJDQoJCQlpZih0aGlzLmxhc3Rfc2VsZWN0aW9uWyJzZWxlY19kaXJlY3Rpb24iXT09InVwIil7DQoJCQkJZm9yKGxpbmVfbmI9MDsgbGluZV9uYjwgTWF0aC5taW4odGhpcy5sYXN0X3NlbGVjdGlvblsibGluZV9zdGFydCJdLW5iTGluZVRvU2Nyb2xsLCBsaW5lcy5sZW5ndGgpOyBsaW5lX25iKyspew0KCQkJCQluZXdfcG9zKz0gbGluZXNbbGluZV9uYl0ubGVuZ3RoICsgMTsNCgkJCQl9DQoJCQkJY2hhcl9sZWZ0PU1hdGgubWluKGxpbmVzW01hdGgubWluKGxpbmVzLmxlbmd0aC0xLCBsaW5lX25iKV0ubGVuZ3RoLCB0aGlzLmxhc3Rfc2VsZWN0aW9uWyJjdXJyX3BvcyJdLTEpOw0KCQkJCWlmKHNoaWZ0X3ByZXNzZWQpDQoJCQkJCWxlbmd0aD10aGlzLmxhc3Rfc2VsZWN0aW9uWyJzZWxlY3Rpb25FbmQiXS1uZXdfcG9zLWNoYXJfbGVmdDsJDQoJCQkJdGhpcy5hcmVhX3NlbGVjdChuZXdfcG9zK2NoYXJfbGVmdCwgbGVuZ3RoKTsNCgkJCQl2aWV3PSJ0b3AiOw0KCQkJfWVsc2V7CQkJDQoJCQkJdmlldz0iYm90dG9tIjsNCgkJCQlmb3IobGluZV9uYj0wOyBsaW5lX25iPCBNYXRoLm1pbih0aGlzLmxhc3Rfc2VsZWN0aW9uWyJsaW5lX3N0YXJ0Il0rdGhpcy5sYXN0X3NlbGVjdGlvblsibGluZV9uYiJdLTEtbmJMaW5lVG9TY3JvbGwsIGxpbmVzLmxlbmd0aCk7IGxpbmVfbmIrKyl7DQoJCQkJCW5ld19wb3MrPSBsaW5lc1tsaW5lX25iXS5sZW5ndGggKyAxOw0KCQkJCX0NCgkJCQljaGFyX2xlZnQ9TWF0aC5taW4obGluZXNbTWF0aC5taW4obGluZXMubGVuZ3RoLTEsIGxpbmVfbmIpXS5sZW5ndGgsIHRoaXMubGFzdF9zZWxlY3Rpb25bImN1cnJfcG9zIl0tMSk7DQoJCQkJaWYoc2hpZnRfcHJlc3NlZCl7DQoJCQkJCS8vbGVuZ3RoPXRoaXMubGFzdF9zZWxlY3Rpb25bInNlbGVjdGlvbkVuZCJdLW5ld19wb3MtY2hhcl9sZWZ0OwkNCgkJCQkJc3RhcnQ9IE1hdGgubWluKHRoaXMubGFzdF9zZWxlY3Rpb25bInNlbGVjdGlvblN0YXJ0Il0sIG5ld19wb3MrY2hhcl9sZWZ0KTsNCgkJCQkJbGVuZ3RoPSBNYXRoLm1heChuZXdfcG9zK2NoYXJfbGVmdCwgdGhpcy5sYXN0X3NlbGVjdGlvblsic2VsZWN0aW9uU3RhcnQiXSApLSBzdGFydCA7DQoJCQkJCWlmKG5ld19wb3MrY2hhcl9sZWZ0IDwgdGhpcy5sYXN0X3NlbGVjdGlvblsic2VsZWN0aW9uU3RhcnQiXSkNCgkJCQkJCXZpZXc9InRvcCI7DQoJCQkJfWVsc2UNCgkJCQkJc3RhcnQ9bmV3X3BvcytjaGFyX2xlZnQ7DQoJCQkJdGhpcy5hcmVhX3NlbGVjdChzdGFydCwgbGVuZ3RoKTsNCgkJCQkNCgkJCX0NCgkJfQ0KCQllbHNlDQoJCXsNCgkJCXZhciBuYkxpbmVUb1Njcm9sbD0gTWF0aC5mbG9vciggdG9TY3JvbGxBbW91bnQgLyB0aGlzLmxpbmVIZWlnaHQgKTsNCgkJCS8vIGZpeCBudW1iZXIgb2YgbGluZSB0byBzY3JvbGwNCgkJCWZvciggaSA9IHRoaXMubGFzdF9zZWxlY3Rpb25bImxpbmVfc3RhcnQiXTsgaSArIGRpZmYgPCB0aGlzLmxhc3Rfc2VsZWN0aW9uWyJsaW5lX3N0YXJ0Il0gKyBuYkxpbmVUb1Njcm9sbCA7IGkrKyApDQoJCQl7DQoJCQkJaWYoIGVsZW0gPSBfJCgnbGluZV8nKyBpKSApDQoJCQkJew0KCQkJCQlkaWZmICs9ICBNYXRoLmZsb29yKCAoIGVsZW0ub2Zmc2V0SGVpZ2h0IC0gMSApIC8gdGhpcy5saW5lSGVpZ2h0ICk7DQoJCQkJfQ0KCQkJfQ0KCQkJbmJMaW5lVG9TY3JvbGwJLT0gZGlmZjsNCgkJCQkNCgkJCWlmKHRoaXMubGFzdF9zZWxlY3Rpb25bInNlbGVjX2RpcmVjdGlvbiJdPT0iZG93biIpew0KCQkJCXZpZXc9ImJvdHRvbSI7DQoJCQkJZm9yKGxpbmVfbmI9MDsgbGluZV9uYjwgTWF0aC5taW4odGhpcy5sYXN0X3NlbGVjdGlvblsibGluZV9zdGFydCJdK3RoaXMubGFzdF9zZWxlY3Rpb25bImxpbmVfbmIiXS0yK25iTGluZVRvU2Nyb2xsLCBsaW5lcy5sZW5ndGgpOyBsaW5lX25iKyspew0KCQkJCQlpZihsaW5lX25iPT10aGlzLmxhc3Rfc2VsZWN0aW9uWyJsaW5lX3N0YXJ0Il0tMSkNCgkJCQkJCWNoYXJfbGVmdD0gdGhpcy5sYXN0X3NlbGVjdGlvblsic2VsZWN0aW9uU3RhcnQiXSAtbmV3X3BvczsNCgkJCQkJbmV3X3Bvcys9IGxpbmVzW2xpbmVfbmJdLmxlbmd0aCArIDE7DQoJCQkJCQkJCQkNCgkJCQl9DQoJCQkJaWYoc2hpZnRfcHJlc3NlZCl7DQoJCQkJCWxlbmd0aD1NYXRoLmFicyh0aGlzLmxhc3Rfc2VsZWN0aW9uWyJzZWxlY3Rpb25TdGFydCJdLW5ld19wb3MpOwkNCgkJCQkJbGVuZ3RoKz1NYXRoLm1pbihsaW5lc1tNYXRoLm1pbihsaW5lcy5sZW5ndGgtMSwgbGluZV9uYildLmxlbmd0aCwgdGhpcy5sYXN0X3NlbGVjdGlvblsiY3Vycl9wb3MiXSk7DQoJCQkJCS8vbGVuZ3RoKz1NYXRoLm1pbihsaW5lc1tNYXRoLm1pbihsaW5lcy5sZW5ndGgtMSwgbGluZV9uYildLmxlbmd0aCwgY2hhcl9sZWZ0KTsNCgkJCQkJdGhpcy5hcmVhX3NlbGVjdChNYXRoLm1pbih0aGlzLmxhc3Rfc2VsZWN0aW9uWyJzZWxlY3Rpb25TdGFydCJdLCBuZXdfcG9zKSwgbGVuZ3RoKTsNCgkJCQl9ZWxzZXsNCgkJCQkJdGhpcy5hcmVhX3NlbGVjdChuZXdfcG9zK2NoYXJfbGVmdCwgMCk7DQoJCQkJfQ0KCQkJCQ0KCQkJfWVsc2V7DQoJCQkJdmlldz0idG9wIjsNCgkJCQlmb3IobGluZV9uYj0wOyBsaW5lX25iPCBNYXRoLm1pbih0aGlzLmxhc3Rfc2VsZWN0aW9uWyJsaW5lX3N0YXJ0Il0rbmJMaW5lVG9TY3JvbGwtMSwgbGluZXMubGVuZ3RoLCBsaW5lcy5sZW5ndGgpOyBsaW5lX25iKyspew0KCQkJCQlpZihsaW5lX25iPT10aGlzLmxhc3Rfc2VsZWN0aW9uWyJsaW5lX3N0YXJ0Il0tMSkNCgkJCQkJCWNoYXJfbGVmdD0gdGhpcy5sYXN0X3NlbGVjdGlvblsic2VsZWN0aW9uU3RhcnQiXSAtbmV3X3BvczsNCgkJCQkJbmV3X3Bvcys9IGxpbmVzW2xpbmVfbmJdLmxlbmd0aCArIDE7CQkJCQkJCQkJDQoJCQkJfQ0KCQkJCWlmKHNoaWZ0X3ByZXNzZWQpew0KCQkJCQlsZW5ndGg9TWF0aC5hYnModGhpcy5sYXN0X3NlbGVjdGlvblsic2VsZWN0aW9uRW5kIl0tbmV3X3Bvcy1jaGFyX2xlZnQpOwkNCgkJCQkJbGVuZ3RoKz1NYXRoLm1pbihsaW5lc1tNYXRoLm1pbihsaW5lcy5sZW5ndGgtMSwgbGluZV9uYildLmxlbmd0aCwgdGhpcy5sYXN0X3NlbGVjdGlvblsiY3Vycl9wb3MiXSktIGNoYXJfbGVmdC0xOw0KCQkJCQkvL2xlbmd0aCs9TWF0aC5taW4obGluZXNbTWF0aC5taW4obGluZXMubGVuZ3RoLTEsIGxpbmVfbmIpXS5sZW5ndGgsIGNoYXJfbGVmdCk7DQoJCQkJCXRoaXMuYXJlYV9zZWxlY3QoTWF0aC5taW4odGhpcy5sYXN0X3NlbGVjdGlvblsic2VsZWN0aW9uRW5kIl0sIG5ld19wb3MrY2hhcl9sZWZ0KSwgbGVuZ3RoKTsNCgkJCQkJaWYobmV3X3BvcytjaGFyX2xlZnQgPiB0aGlzLmxhc3Rfc2VsZWN0aW9uWyJzZWxlY3Rpb25FbmQiXSkNCgkJCQkJCXZpZXc9ImJvdHRvbSI7DQoJCQkJfWVsc2V7DQoJCQkJCXRoaXMuYXJlYV9zZWxlY3QobmV3X3BvcytjaGFyX2xlZnQsIDApOw0KCQkJCX0NCgkJCQkNCgkJCX0NCgkJfQ0KCQkvL2NvbnNvbGUubG9nKCBuZXdfcG9zLCBjaGFyX2xlZnQsIGxlbmd0aCwgbmJMaW5lVG9TY3JvbGwsIHRvU2Nyb2xsQW1vdW50LCBfJCgicmVzdWx0IikuY2xpZW50SGVpZ2ggKTsNCgkJdGhpcy5jaGVja19saW5lX3NlbGVjdGlvbigpOw0KCQl0aGlzLnNjcm9sbF90b192aWV3KHZpZXcpOw0KCX07DQoJDQoJRWRpdEFyZWEucHJvdG90eXBlLnN0YXJ0X3Jlc2l6ZT0gZnVuY3Rpb24oZSl7DQoJCXBhcmVudC5lZGl0QXJlYUxvYWRlci5yZXNpemVbImlkIl0JCT0gZWRpdEFyZWEuaWQ7CQkNCgkJcGFyZW50LmVkaXRBcmVhTG9hZGVyLnJlc2l6ZVsic3RhcnRfeCJdCT0gKGUpPyBlLnBhZ2VYIDogZXZlbnQueCArIGRvY3VtZW50LmJvZHkuc2Nyb2xsTGVmdDsJCQ0KCQlwYXJlbnQuZWRpdEFyZWFMb2FkZXIucmVzaXplWyJzdGFydF95Il0JPSAoZSk/IGUucGFnZVkgOiBldmVudC55ICsgZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A7DQoJCWlmKGVkaXRBcmVhLmlzSUUpDQoJCXsNCgkJCWVkaXRBcmVhLnRleHRhcmVhLmZvY3VzKCk7DQoJCQllZGl0QXJlYS5nZXRJRVNlbGVjdGlvbigpOw0KCQl9DQoJCXBhcmVudC5lZGl0QXJlYUxvYWRlci5yZXNpemVbInNlbGVjdGlvblN0YXJ0Il0JPSBlZGl0QXJlYS50ZXh0YXJlYS5zZWxlY3Rpb25TdGFydDsNCgkJcGFyZW50LmVkaXRBcmVhTG9hZGVyLnJlc2l6ZVsic2VsZWN0aW9uRW5kIl0JPSBlZGl0QXJlYS50ZXh0YXJlYS5zZWxlY3Rpb25FbmQ7DQoJCXBhcmVudC5lZGl0QXJlYUxvYWRlci5zdGFydF9yZXNpemVfYXJlYSgpOw0KCX07DQoJDQoJRWRpdEFyZWEucHJvdG90eXBlLnRvZ2dsZV9mdWxsX3NjcmVlbj0gZnVuY3Rpb24odG8pew0KCQl2YXIgdD10aGlzLCBwPXBhcmVudCwgYT10LnRleHRhcmVhLCBodG1sLCBmcmFtZSwgc2VsU3RhcnQsIHNlbEVuZCwgb2xkLCBpY29uOw0KCQlpZih0eXBlb2YodG8pPT0idW5kZWZpbmVkIikNCgkJCXRvPSAhdC5mdWxsc2NyZWVuWydpc0Z1bGwnXTsNCgkJb2xkCQkJPSB0LmZ1bGxzY3JlZW5bJ2lzRnVsbCddOw0KCQl0LmZ1bGxzY3JlZW5bJ2lzRnVsbCddPSB0bzsNCgkJaWNvbgkJPSBfJCgiZnVsbHNjcmVlbiIpOw0KCQlzZWxTdGFydAk9IHQudGV4dGFyZWEuc2VsZWN0aW9uU3RhcnQ7DQoJCXNlbEVuZAkJPSB0LnRleHRhcmVhLnNlbGVjdGlvbkVuZDsNCgkJaHRtbAkJPSBwLmRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJodG1sIilbMF07DQoJCWZyYW1lCQk9IHAuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZyYW1lXyIrdC5pZCk7DQoJCQ0KCQlpZih0byAmJiB0byE9b2xkKQ0KCQl7CS8vIHRvb2dsZSBvbiBmdWxsc2NyZWVuCQkNCgkJCQ0KCQkJdC5mdWxsc2NyZWVuWydvbGRfb3ZlcmZsb3cnXQk9IHAuZ2V0X2Nzc19wcm9wZXJ0eShodG1sLCAib3ZlcmZsb3ciKTsNCgkJCXQuZnVsbHNjcmVlblsnb2xkX2hlaWdodCddCQk9IHAuZ2V0X2Nzc19wcm9wZXJ0eShodG1sLCAiaGVpZ2h0Iik7DQoJCQl0LmZ1bGxzY3JlZW5bJ29sZF93aWR0aCddCQk9IHAuZ2V0X2Nzc19wcm9wZXJ0eShodG1sLCAid2lkdGgiKTsNCgkJCXQuZnVsbHNjcmVlblsnb2xkX3Njcm9sbFRvcCddCT0gaHRtbC5zY3JvbGxUb3A7DQoJCQl0LmZ1bGxzY3JlZW5bJ29sZF9zY3JvbGxMZWZ0J10JPSBodG1sLnNjcm9sbExlZnQ7DQoJCQl0LmZ1bGxzY3JlZW5bJ29sZF96SW5kZXgnXQkJPSBwLmdldF9jc3NfcHJvcGVydHkoZnJhbWUsICJ6LWluZGV4Iik7DQoJCQlpZih0LmlzT3BlcmEpew0KCQkJCWh0bWwuc3R5bGUuaGVpZ2h0CT0gIjEwMCUiOw0KCQkJCWh0bWwuc3R5bGUud2lkdGgJPSAiMTAwJSI7CQ0KCQkJfQ0KCQkJaHRtbC5zdHlsZS5vdmVyZmxvdwk9ICJoaWRkZW4iOw0KCQkJaHRtbC5zY3JvbGxUb3AJCT0gMDsNCgkJCWh0bWwuc2Nyb2xsTGVmdAkJPSAwOw0KCQkJDQoJCQlmcmFtZS5zdHlsZS5wb3NpdGlvbgk9ICJhYnNvbHV0ZSI7DQoJCQlmcmFtZS5zdHlsZS53aWR0aAkJPSBodG1sLmNsaWVudFdpZHRoKyJweCI7DQoJCQlmcmFtZS5zdHlsZS5oZWlnaHQJCT0gaHRtbC5jbGllbnRIZWlnaHQrInB4IjsNCgkJCWZyYW1lLnN0eWxlLmRpc3BsYXkJCT0gImJsb2NrIjsNCgkJCWZyYW1lLnN0eWxlLnpJbmRleAkJPSAiOTk5OTk5IjsNCgkJCWZyYW1lLnN0eWxlLnRvcAkJCT0gIjBweCI7DQoJCQlmcmFtZS5zdHlsZS5sZWZ0CQk9ICIwcHgiOw0KCQkJDQoJCQkvLyBpZiB0aGUgaWZyYW1lIHdhcyBpbiBhIGRpdiB3aXRoIHBvc2l0aW9uIGFic29sdXRlLCB0aGUgdG9wIGFuZCBsZWZ0IGFyZSB0aGUgb25lIG9mIHRoZSBkaXYsIA0KCQkJLy8gc28gSSBmaXggaXQgYnkgc2VlaW5nIGF0IHdpdGNoIHBvc2l0aW9uIHRoZSBpZnJhbWUgc3RhcnQgYW5kIGNvcnJlY3RpbmcgaXQNCgkJCWZyYW1lLnN0eWxlLnRvcAkJCT0gIi0iK3AuY2FsY3VsZU9mZnNldFRvcChmcmFtZSkrInB4IjsNCgkJCWZyYW1lLnN0eWxlLmxlZnQJCT0gIi0iK3AuY2FsY3VsZU9mZnNldExlZnQoZnJhbWUpKyJweCI7DQoJCQkNCgkJLy8JcGFyZW50LmVkaXRBcmVhTG9hZGVyLmV4ZWNDb21tYW5kKHQuaWQsICJ1cGRhdGVfc2l6ZSgpOyIpOw0KCQkvLwl2YXIgYm9keT1wYXJlbnQuZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImJvZHkiKVswXTsNCgkJLy8JYm9keS5hcHBlbmRDaGlsZChmcmFtZSk7DQoJCQkNCgkJCXQuc3dpdGNoQ2xhc3NTdGlja3koaWNvbiwgJ2VkaXRBcmVhQnV0dG9uU2VsZWN0ZWQnLCBmYWxzZSk7DQoJCQl0LmZ1bGxzY3JlZW5bJ2FsbG93X3Jlc2l6ZSddPSB0LnJlc2l6ZV9hbGxvd2VkOw0KCQkJdC5hbGxvd19yZXNpemUoZmFsc2UpOw0KCQ0KCQkJLy90LmFyZWFfc2VsZWN0KHNlbFN0YXJ0LCBzZWxFbmQtc2VsU3RhcnQpOw0KCQkJDQoJCQ0KCQkJLy8gb3BlcmEgY2FuJ3QgbWFuYWdlIHRvIGRvIGEgZGlyZWN0IHNpemUgdXBkYXRlDQoJCQlpZih0LmlzRmlyZWZveCl7DQoJCQkJcC5lZGl0QXJlYUxvYWRlci5leGVjQ29tbWFuZCh0LmlkLCAidXBkYXRlX3NpemUoKTsiKTsNCgkJCQl0LmFyZWFfc2VsZWN0KHNlbFN0YXJ0LCBzZWxFbmQtc2VsU3RhcnQpOw0KCQkJCXQuc2Nyb2xsX3RvX3ZpZXcoKTsNCgkJCQl0LmZvY3VzKCk7DQoJCQl9ZWxzZXsNCgkJCQlzZXRUaW1lb3V0KCJwYXJlbnQuZWRpdEFyZWFMb2FkZXIuZXhlY0NvbW1hbmQoJyIrIHQuaWQgKyInLCAndXBkYXRlX3NpemUoKTsnKTtlZGl0QXJlYS5mb2N1cygpOyIsIDEwKTsNCgkJCX0JDQoJCQkNCgkNCgkJfQ0KCQllbHNlIGlmKHRvIT1vbGQpDQoJCXsJLy8gdG9vZ2xlIG9mZiBmdWxsc2NyZWVuDQoJCQlmcmFtZS5zdHlsZS5wb3NpdGlvbj0ic3RhdGljIjsNCgkJCWZyYW1lLnN0eWxlLnpJbmRleD0gdC5mdWxsc2NyZWVuWydvbGRfekluZGV4J107DQoJCQ0KCQkJaWYodC5pc09wZXJhKQ0KCQkJew0KCQkJCWh0bWwuc3R5bGUuaGVpZ2h0CT0gImF1dG8iOyANCgkJCQlodG1sLnN0eWxlLndpZHRoCT0gImF1dG8iOw0KCQkJCWh0bWwuc3R5bGUub3ZlcmZsb3cJPSAiYXV0byI7DQoJCQl9DQoJCQllbHNlIGlmKHQuaXNJRSAmJiBwIT10b3ApDQoJCQl7CS8vIElFIGRvZXNuJ3QgbWFuYWdlIGh0bWwgb3ZlcmZsb3cgaW4gZnJhbWVzIGxpa2UgaW4gbm9ybWFsIHBhZ2UuLi4gDQoJCQkJaHRtbC5zdHlsZS5vdmVyZmxvdwk9ICJhdXRvIjsNCgkJCX0NCgkJCWVsc2UNCgkJCXsNCgkJCQlodG1sLnN0eWxlLm92ZXJmbG93CT0gdC5mdWxsc2NyZWVuWydvbGRfb3ZlcmZsb3cnXTsNCgkJCX0NCgkJCWh0bWwuc2Nyb2xsVG9wCT0gdC5mdWxsc2NyZWVuWydvbGRfc2Nyb2xsVG9wJ107DQoJCQlodG1sLnNjcm9sbExlZnQJPSB0LmZ1bGxzY3JlZW5bJ29sZF9zY3JvbGxMZWZ0J107DQoJCQ0KCQkJcC5lZGl0QXJlYUxvYWRlci5oaWRlKHQuaWQpOw0KCQkJcC5lZGl0QXJlYUxvYWRlci5zaG93KHQuaWQpOw0KCQkJDQoJCQl0LnN3aXRjaENsYXNzU3RpY2t5KGljb24sICdlZGl0QXJlYUJ1dHRvbk5vcm1hbCcsIGZhbHNlKTsNCgkJCWlmKHQuZnVsbHNjcmVlblsnYWxsb3dfcmVzaXplJ10pDQoJCQkJdC5hbGxvd19yZXNpemUodC5mdWxsc2NyZWVuWydhbGxvd19yZXNpemUnXSk7DQoJCQlpZih0LmlzRmlyZWZveCl7DQoJCQkJdC5hcmVhX3NlbGVjdChzZWxTdGFydCwgc2VsRW5kLXNlbFN0YXJ0KTsNCgkJCQlzZXRUaW1lb3V0KCJlZGl0QXJlYS5zY3JvbGxfdG9fdmlldygpOyIsIDEwKTsNCgkJCX0JCQkNCgkJCQ0KCQkJLy9wLmVkaXRBcmVhTG9hZGVyLnJlbW92ZV9ldmVudChwLndpbmRvdywgInJlc2l6ZSIsIGVkaXRBcmVhLnVwZGF0ZV9zaXplKTsNCgkJfQ0KCQkNCgl9Ow0KCQ0KCUVkaXRBcmVhLnByb3RvdHlwZS5hbGxvd19yZXNpemU9IGZ1bmN0aW9uKGFsbG93KXsNCgkJdmFyIHJlc2l6ZT0gXyQoInJlc2l6ZV9hcmVhIik7DQoJCWlmKGFsbG93KXsNCgkJCQ0KCQkJcmVzaXplLnN0eWxlLnZpc2liaWxpdHk9InZpc2libGUiOw0KCQkJcGFyZW50LmVkaXRBcmVhTG9hZGVyLmFkZF9ldmVudChyZXNpemUsICJtb3VzZXVwIiwgZWRpdEFyZWEuc3RhcnRfcmVzaXplKTsNCgkJfWVsc2V7DQoJCQlyZXNpemUuc3R5bGUudmlzaWJpbGl0eT0iaGlkZGVuIjsNCgkJCXBhcmVudC5lZGl0QXJlYUxvYWRlci5yZW1vdmVfZXZlbnQocmVzaXplLCAibW91c2V1cCIsIGVkaXRBcmVhLnN0YXJ0X3Jlc2l6ZSk7DQoJCX0NCgkJdGhpcy5yZXNpemVfYWxsb3dlZD0gYWxsb3c7DQoJfTsNCgkNCgkNCglFZGl0QXJlYS5wcm90b3R5cGUuY2hhbmdlX3N5bnRheD0gZnVuY3Rpb24obmV3X3N5bnRheCwgaXNfd2FpdGluZyl7DQoJLy8JYWxlcnQoImNhaG5nZSB0byAiK25ld19zeW50YXgpOw0KCQkvLyB0aGUgc3ludGF4IGlzIHRoZSBzYW1lDQoJCWlmKG5ld19zeW50YXg9PXRoaXMuc2V0dGluZ3NbJ3N5bnRheCddKQ0KCQkJcmV0dXJuIHRydWU7DQoJCQ0KCQkvLyBjaGVjayB0aGF0IHRoZSBzeW50YXggaXMgb25lIGFsbG93ZWQNCgkJdmFyIGZvdW5kZWQ9IGZhbHNlOw0KCQlmb3IodmFyIGk9MDsgaTx0aGlzLnN5bnRheF9saXN0Lmxlbmd0aDsgaSsrKQ0KCQl7DQoJCQlpZih0aGlzLnN5bnRheF9saXN0W2ldPT1uZXdfc3ludGF4KQ0KCQkJCWZvdW5kZWQ9IHRydWU7DQoJCX0NCgkJDQoJCWlmKGZvdW5kZWQ9PXRydWUpDQoJCXsNCgkJCS8vIHRoZSByZWcgc3ludGF4IGZpbGUgaXMgbm90IGxvYWRlZA0KCQkJaWYoIXBhcmVudC5lZGl0QXJlYUxvYWRlci5sb2FkX3N5bnRheFtuZXdfc3ludGF4XSkNCgkJCXsNCgkJCQkvLyBsb2FkIHRoZSBzeW50YXggZmlsZSBhbmQgd2FpdCBmb3IgZmlsZSBsb2FkaW5nDQoJCQkJaWYoIWlzX3dhaXRpbmcpDQoJCQkJCXBhcmVudC5lZGl0QXJlYUxvYWRlci5sb2FkX3NjcmlwdChwYXJlbnQuZWRpdEFyZWFMb2FkZXIuYmFzZVVSTCArICJyZWdfc3ludGF4LyIgKyBuZXdfc3ludGF4ICsgIi5qcyIpOw0KCQkJCXNldFRpbWVvdXQoImVkaXRBcmVhLmNoYW5nZV9zeW50YXgoJyIrIG5ld19zeW50YXggKyInLCB0cnVlKTsiLCAxMDApOw0KCQkJCXRoaXMuc2hvd193YWl0aW5nX3NjcmVlbigpOw0KCQkJfQ0KCQkJZWxzZQ0KCQkJew0KCQkJCWlmKCF0aGlzLmFsbHJlYWR5X3VzZWRfc3ludGF4W25ld19zeW50YXhdKQ0KCQkJCXsJLy8gdGhlIHN5bnRheCBoYXMgc3RpbGwgbm90IGJlZW4gdXNlZA0KCQkJCQkvLyByZWJ1aWxkIHN5bnRheCBkZWZpbml0aW9uIGZvciBuZXcgbGFuZ3VhZ2VzDQoJCQkJCXBhcmVudC5lZGl0QXJlYUxvYWRlci5pbml0X3N5bnRheF9yZWdleHAoKTsNCgkJCQkJLy8gYWRkIHN0eWxlIHRvIHRoZSBuZXcgbGlzdA0KCQkJCQl0aGlzLmFkZF9zdHlsZShwYXJlbnQuZWRpdEFyZWFMb2FkZXIuc3ludGF4W25ld19zeW50YXhdWyJzdHlsZXMiXSk7DQoJCQkJCXRoaXMuYWxscmVhZHlfdXNlZF9zeW50YXhbbmV3X3N5bnRheF09dHJ1ZTsNCgkJCQl9DQoJCQkJLy8gYmUgc3VyZSB0aGF0IHRoZSBzZWxlY3Qgb3B0aW9uIGlzIGNvcnJlY3RseSB1cGRhdGVkDQoJCQkJdmFyIHNlbD0gXyQoInN5bnRheF9zZWxlY3Rpb24iKTsNCgkJCQlpZihzZWwgJiYgc2VsLnZhbHVlIT1uZXdfc3ludGF4KQ0KCQkJCXsNCgkJCQkJZm9yKHZhciBpPTA7IGk8c2VsLmxlbmd0aDsgaSsrKXsNCgkJCQkJCWlmKHNlbC5vcHRpb25zW2ldLnZhbHVlICYmIHNlbC5vcHRpb25zW2ldLnZhbHVlID09IG5ld19zeW50YXgpDQoJCQkJCQkJc2VsLm9wdGlvbnNbaV0uc2VsZWN0ZWQ9dHJ1ZTsNCgkJCQkJfQ0KCQkJCX0NCgkJCQkNCgkJCS8qCWlmKHRoaXMuc2V0dGluZ3NbJ3N5bnRheCddLmxlbmd0aD09MCkNCgkJCQl7DQoJCQkJCXRoaXMuc3dpdGNoQ2xhc3NTdGlja3koXyQoImhpZ2hsaWdodCIpLCAnZWRpdEFyZWFCdXR0b25Ob3JtYWwnLCBmYWxzZSk7DQoJCQkJCXRoaXMuc3dpdGNoQ2xhc3NTdGlja3koXyQoInJlc2V0X2hpZ2hsaWdodCIpLCAnZWRpdEFyZWFCdXR0b25Ob3JtYWwnLCBmYWxzZSk7DQoJCQkJCXRoaXMuY2hhbmdlX2hpZ2hsaWdodCh0cnVlKTsNCgkJCQl9DQoJCQkJKi8NCgkJCQl0aGlzLnNldHRpbmdzWydzeW50YXgnXT0gbmV3X3N5bnRheDsNCgkJCQl0aGlzLnJlc3luY19oaWdobGlnaHQodHJ1ZSk7DQoJCQkJdGhpcy5oaWRlX3dhaXRpbmdfc2NyZWVuKCk7DQoJCQkJcmV0dXJuIHRydWU7DQoJCQl9DQoJCX0NCgkJcmV0dXJuIGZhbHNlOw0KCX07DQoJDQoJDQoJLy8gY2hlY2sgaWYgdGhlIGZpbGUgaGFzIGNoYW5nZWQNCglFZGl0QXJlYS5wcm90b3R5cGUuc2V0X2VkaXRhYmxlPSBmdW5jdGlvbihpc19lZGl0YWJsZSl7DQoJCWlmKGlzX2VkaXRhYmxlKQ0KCQl7DQoJCQlkb2N1bWVudC5ib2R5LmNsYXNzTmFtZT0gIiI7DQoJCQl0aGlzLnRleHRhcmVhLnJlYWRPbmx5PSBmYWxzZTsNCgkJCXRoaXMuaXNfZWRpdGFibGU9IHRydWU7DQoJCX0NCgkJZWxzZQ0KCQl7DQoJCQlkb2N1bWVudC5ib2R5LmNsYXNzTmFtZT0gIm5vbl9lZGl0YWJsZSI7DQoJCQl0aGlzLnRleHRhcmVhLnJlYWRPbmx5PSB0cnVlOw0KCQkJdGhpcy5pc19lZGl0YWJsZT0gZmFsc2U7DQoJCX0NCgkJDQoJCWlmKGVkaXRBcmVhc1t0aGlzLmlkXVsiZGlzcGxheWVkIl09PXRydWUpDQoJCQl0aGlzLnVwZGF0ZV9zaXplKCk7DQoJfTsNCgkNCgkvKioqKiogV3JhcCBtb2RlICoqKioqLw0KCQ0KCS8vIHRvZ2dsaW5nIGZ1bmN0aW9uIGZvciBzZXRfd3JhcF9tb2RlDQoJRWRpdEFyZWEucHJvdG90eXBlLnRvZ2dsZV93b3JkX3dyYXA9IGZ1bmN0aW9uKCl7DQoJCXRoaXMuc2V0X3dvcmRfd3JhcCggIXRoaXMuc2V0dGluZ3NbJ3dvcmRfd3JhcCddICk7DQoJfTsNCgkNCgkNCgkvLyBvcGVuIGEgbmV3IHRhYiBmb3IgdGhlIGdpdmVuIGZpbGUNCglFZGl0QXJlYS5wcm90b3R5cGUuc2V0X3dvcmRfd3JhcD0gZnVuY3Rpb24odG8pew0KCQl2YXIgdD10aGlzLCBhPSB0LnRleHRhcmVhOw0KCQlpZiggdC5pc09wZXJhICYmIHQuaXNPcGVyYSA8IDkuOCApDQoJCXsNCgkJCXRoaXMuc2V0dGluZ3NbJ3dvcmRfd3JhcCddPSBmYWxzZTsNCgkJCXQuc3dpdGNoQ2xhc3NTdGlja3koIF8kKCJ3b3JkX3dyYXAiKSwgJ2VkaXRBcmVhQnV0dG9uRGlzYWJsZWQnLCB0cnVlICk7DQoJCQlyZXR1cm4gZmFsc2U7DQoJCX0NCgkJDQoJCWlmKCB0byApDQoJCXsNCgkJCXdyYXBfbW9kZSA9ICdzb2Z0JzsNCgkJCXRoaXMuY29udGFpbmVyLmNsYXNzTmFtZSs9ICcgd29yZF93cmFwJzsNCgkJCXRoaXMuY29udGFpbmVyLnN0eWxlLndpZHRoPSIiOw0KCQkJdGhpcy5jb250ZW50X2hpZ2hsaWdodC5zdHlsZS53aWR0aD0iIjsNCgkJCWEuc3R5bGUud2lkdGg9IjEwMCUiOw0KCQkJaWYoIHQuaXNJRSAmJiB0LmlzSUUgPCA3ICkJLy8gSUUgNiBjb3VudCA1MCBweCB0b28gbXVjaA0KCQkJew0KCQkJCWEuc3R5bGUud2lkdGgJPSAoIGEub2Zmc2V0V2lkdGgtNSApKyJweCI7DQoJCQl9DQoJCQkNCgkJCXQuc3dpdGNoQ2xhc3NTdGlja3koIF8kKCJ3b3JkX3dyYXAiKSwgJ2VkaXRBcmVhQnV0dG9uU2VsZWN0ZWQnLCBmYWxzZSApOw0KCQl9DQoJCWVsc2UNCgkJew0KCQkJd3JhcF9tb2RlID0gJ29mZic7DQoJCQl0aGlzLmNvbnRhaW5lci5jbGFzc05hbWUJPSB0aGlzLmNvbnRhaW5lci5jbGFzc05hbWUucmVwbGFjZSgvd29yZF93cmFwL2csICcnKTsNCgkJCXQuc3dpdGNoQ2xhc3NTdGlja3koIF8kKCJ3b3JkX3dyYXAiKSwgJ2VkaXRBcmVhQnV0dG9uTm9ybWFsJywgdHJ1ZSApOw0KCQl9DQoJCXRoaXMudGV4dGFyZWEucHJldmlvdXNfc2Nyb2xsV2lkdGggPSAnJzsNCgkJdGhpcy50ZXh0YXJlYS5wcmV2aW91c19zY3JvbGxIZWlnaHQgPSAnJzsNCgkJDQoJCWEud3JhcD0gd3JhcF9tb2RlOw0KCQlhLnNldEF0dHJpYnV0ZSgnd3JhcCcsIHdyYXBfbW9kZSk7DQoJCS8vIG9ubHkgSUUgY2FuIGNoYW5nZSB3cmFwIG1vZGUgb24gdGhlIGZseSB3aXRob3V0IGVsZW1lbnQgcmVsb2FkaW5nDQoJCWlmKCF0aGlzLmlzSUUpDQoJCXsNCgkJCXZhciBzdGFydD1hLnNlbGVjdGlvblN0YXJ0LCBlbmQ9IGEuc2VsZWN0aW9uRW5kOw0KCQkJdmFyIHBhck5vZCA9IGEucGFyZW50Tm9kZSwgbnh0U2liID0gYS5uZXh0U2libGluZzsNCgkJCXBhck5vZC5yZW1vdmVDaGlsZChhKTsNCgkJCXBhck5vZC5pbnNlcnRCZWZvcmUoYSwgbnh0U2liKTsNCgkJCXRoaXMuYXJlYV9zZWxlY3Qoc3RhcnQsIGVuZC1zdGFydCk7DQoJCX0NCgkJLy8gcmVzZXQgc29tZSBvcHRpbWlzYXRpb24NCgkJdGhpcy5zZXR0aW5nc1snd29yZF93cmFwJ10JPSB0bzsNCgkJdGhpcy5mb2N1cygpOw0KCQl0aGlzLnVwZGF0ZV9zaXplKCk7DQoJCXRoaXMuY2hlY2tfbGluZV9zZWxlY3Rpb24oKTsNCgl9OwkNCgkvKioqKiogdGFiYmVkIGZpbGVzIG1hbmFnaW5nIGZ1bmN0aW9ucyAqKioqKi8NCgkNCgkvLyBvcGVuIGEgbmV3IHRhYiBmb3IgdGhlIGdpdmVuIGZpbGUNCglFZGl0QXJlYS5wcm90b3R5cGUub3Blbl9maWxlPSBmdW5jdGlvbihzZXR0aW5ncyl7DQoJCQ0KCQlpZihzZXR0aW5nc1snaWQnXSE9InVuZGVmaW5lZCIpDQoJCXsNCgkJCXZhciBpZD0gc2V0dGluZ3NbJ2lkJ107DQoJCQkvLyBjcmVhdGUgYSBuZXcgZmlsZSBvYmplY3Qgd2l0aCBkZWZhdXRsIHZhbHVlcw0KCQkJdmFyIG5ld19maWxlPSB7fTsNCgkJCW5ld19maWxlWydpZCddCQkJPSBpZDsNCgkJCW5ld19maWxlWyd0aXRsZSddCQk9IGlkOw0KCQkJbmV3X2ZpbGVbJ3RleHQnXQkJPSAiIjsNCgkJCW5ld19maWxlWydsYXN0X3NlbGVjdGlvbiddCT0gIiI7CQkNCgkJCW5ld19maWxlWydsYXN0X3RleHRfdG9faGlnaGxpZ2h0J10JPSAiIjsNCgkJCW5ld19maWxlWydsYXN0X2hpZ2h0bGlnaHRlZF90ZXh0J10JPSAiIjsNCgkJCW5ld19maWxlWydwcmV2aW91cyddCT0gW107DQoJCQluZXdfZmlsZVsnbmV4dCddCQk9IFtdOw0KCQkJbmV3X2ZpbGVbJ2xhc3RfdW5kbyddCT0gIiI7DQoJCQluZXdfZmlsZVsnc21vb3RoX3NlbGVjdGlvbiddCT0gdGhpcy5zZXR0aW5nc1snc21vb3RoX3NlbGVjdGlvbiddOw0KCQkJbmV3X2ZpbGVbJ2RvX2hpZ2hsaWdodCddPSB0aGlzLnNldHRpbmdzWydzdGFydF9oaWdobGlnaHQnXTsNCgkJCW5ld19maWxlWydzeW50YXgnXQkJPSB0aGlzLnNldHRpbmdzWydzeW50YXgnXTsNCgkJCW5ld19maWxlWydzY3JvbGxfdG9wJ10JPSAwOw0KCQkJbmV3X2ZpbGVbJ3Njcm9sbF9sZWZ0J10JPSAwOw0KCQkJbmV3X2ZpbGVbJ3NlbGVjdGlvbl9zdGFydCddPSAwOw0KCQkJbmV3X2ZpbGVbJ3NlbGVjdGlvbl9lbmQnXT0gMDsNCgkJCW5ld19maWxlWydlZGl0ZWQnXQkJPSBmYWxzZTsNCgkJCW5ld19maWxlWydmb250X3NpemUnXQk9IHRoaXMuc2V0dGluZ3NbImZvbnRfc2l6ZSJdOw0KCQkJbmV3X2ZpbGVbJ2ZvbnRfZmFtaWx5J10JPSB0aGlzLnNldHRpbmdzWyJmb250X2ZhbWlseSJdOw0KCQkJbmV3X2ZpbGVbJ3dvcmRfd3JhcCddCT0gdGhpcy5zZXR0aW5nc1sid29yZF93cmFwIl07DQoJCQluZXdfZmlsZVsndG9vbGJhciddCQk9IHsnbGlua3MnOnt9LCAnc2VsZWN0cyc6IHt9fTsNCgkJCW5ld19maWxlWydjb21wYXJlX2VkaXRlZF90ZXh0J109IG5ld19maWxlWyd0ZXh0J107DQoJCQkNCgkJCQ0KCQkJdGhpcy5maWxlc1tpZF09IG5ld19maWxlOw0KCQkJdGhpcy51cGRhdGVfZmlsZShpZCwgc2V0dGluZ3MpOw0KCQkJdGhpcy5maWxlc1tpZF1bJ2NvbXBhcmVfZWRpdGVkX3RleHQnXT0gdGhpcy5maWxlc1tpZF1bJ3RleHQnXTsNCgkJCQ0KCQkJDQoJCQl2YXIgaHRtbF9pZD0gJ3RhYl9maWxlXycrZW5jb2RlVVJJQ29tcG9uZW50KGlkKTsNCgkJCXRoaXMuZmlsZXNJZEFzc29jW2h0bWxfaWRdPSBpZDsNCgkJCXRoaXMuZmlsZXNbaWRdWydodG1sX2lkJ109IGh0bWxfaWQ7DQoJCQ0KCQkJaWYoIV8kKHRoaXMuZmlsZXNbaWRdWydodG1sX2lkJ10pICYmIGlkIT0iIikNCgkJCXsNCgkJCQkvLyBiZSBzdXJlIHRoZSB0YWIgYnJvd3NpbmcgYXJlYSBpcyBkaXNwbGF5ZWQNCgkJCQl0aGlzLnRhYl9icm93c2luZ19hcmVhLnN0eWxlLmRpc3BsYXk9ICJibG9jayI7DQoJCQkJdmFyIGVsZW09IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpJyk7DQoJCQkJZWxlbS5pZD0gdGhpcy5maWxlc1tpZF1bJ2h0bWxfaWQnXTsNCgkJCQl2YXIgY2xvc2U9ICI8aW1nIHNyYz1cIiIrIHBhcmVudC5lZGl0QXJlYUxvYWRlci5iYXNlVVJMICsiaW1hZ2VzL2Nsb3NlLmdpZlwiIHRpdGxlPVwiIisgdGhpcy5nZXRfdHJhbnNsYXRpb24oJ2Nsb3NlX3RhYicsICd3b3JkJykgKyJcIiBvbmNsaWNrPVwiZWRpdEFyZWEuZXhlY0NvbW1hbmQoJ2Nsb3NlX2ZpbGUnLCBlZGl0QXJlYS5maWxlc0lkQXNzb2NbJyIrIGh0bWxfaWQgKyInXSk7cmV0dXJuIGZhbHNlO1wiIGNsYXNzPVwiaGlkZGVuXCIgb25tb3VzZW92ZXI9XCJ0aGlzLmNsYXNzTmFtZT0nJ1wiIG9ubW91c2VvdXQ9XCJ0aGlzLmNsYXNzTmFtZT0naGlkZGVuJ1wiIC8+IjsNCgkJCQllbGVtLmlubmVySFRNTD0gIjxhIG9uY2xpY2s9XCJqYXZhc2NyaXB0OmVkaXRBcmVhLmV4ZWNDb21tYW5kKCdzd2l0Y2hfdG9fZmlsZScsIGVkaXRBcmVhLmZpbGVzSWRBc3NvY1snIisgaHRtbF9pZCArIiddKTtcIiBzZWxlYz1cIm5vbmVcIj48Yj48c3Bhbj48c3Ryb25nIGNsYXNzPVwiZWRpdGVkXCI+Kjwvc3Ryb25nPiIrIHRoaXMuZmlsZXNbaWRdWyd0aXRsZSddICsgY2xvc2UgKyI8L3NwYW4+PC9iPjwvYT4iOw0KCQkJCV8kKCd0YWJfYnJvd3NpbmdfbGlzdCcpLmFwcGVuZENoaWxkKGVsZW0pOw0KCQkJCXZhciBlbGVtPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZXh0Jyk7DQoJCQkJdGhpcy51cGRhdGVfc2l6ZSgpOw0KCQkJfQ0KCQkJDQoJCQkvLyBvcGVuIGZpbGUgY2FsbGJhY2sgKGZvciBwbHVnaW4pDQoJCQlpZihpZCE9IiIpDQoJCQkJdGhpcy5leGVjQ29tbWFuZCgnZmlsZV9vcGVuJywgdGhpcy5maWxlc1tpZF0pOw0KCQkJDQoJCQl0aGlzLnN3aXRjaF90b19maWxlKGlkLCB0cnVlKTsNCgkJCXJldHVybiB0cnVlOw0KCQl9DQoJCWVsc2UNCgkJCXJldHVybiBmYWxzZTsNCgl9Ow0KCQ0KCS8vIGNsb3NlIHRoZSBnaXZlbiBmaWxlDQoJRWRpdEFyZWEucHJvdG90eXBlLmNsb3NlX2ZpbGU9IGZ1bmN0aW9uKGlkKXsNCgkJaWYodGhpcy5maWxlc1tpZF0pDQoJCXsNCgkJCXRoaXMuc2F2ZV9maWxlKGlkKTsNCgkJCQ0KCQkJLy8gY2xvc2UgZmlsZSBjYWxsYmFjaw0KCQkJaWYodGhpcy5leGVjQ29tbWFuZCgnZmlsZV9jbG9zZScsIHRoaXMuZmlsZXNbaWRdKSE9PWZhbHNlKQ0KCQkJew0KCQkJCS8vIHJlbW92ZSB0aGUgdGFiIGluIHRoZSB0b29sYmFyDQoJCQkJdmFyIGxpPSBfJCh0aGlzLmZpbGVzW2lkXVsnaHRtbF9pZCddKTsNCgkJCQlsaS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGxpKTsNCgkJCQkvLyBzZWxlY3QgYSBuZXcgZmlsZQ0KCQkJCWlmKGlkPT0gdGhpcy5jdXJyX2ZpbGUpDQoJCQkJew0KCQkJCQl2YXIgbmV4dF9maWxlPSAiIjsNCgkJCQkJdmFyIGlzX25leHQ9IGZhbHNlOw0KCQkJCQlmb3IodmFyIGkgaW4gdGhpcy5maWxlcykNCgkJCQkJew0KCQkJCQkJaWYoIGlzX25leHQgKQ0KCQkJCQkJew0KCQkJCQkJCW5leHRfZmlsZQk9IGk7DQoJCQkJCQkJYnJlYWs7DQoJCQkJCQl9DQoJCQkJCQllbHNlIGlmKCBpID09IGlkICkNCgkJCQkJCQlpc19uZXh0CQk9IHRydWU7DQoJCQkJCQllbHNlDQoJCQkJCQkJbmV4dF9maWxlCT0gaTsNCgkJCQkJfQ0KCQkJCQkvLyBkaXNwbGF5IHRoZSBuZXh0IGZpbGUNCgkJCQkJdGhpcy5zd2l0Y2hfdG9fZmlsZShuZXh0X2ZpbGUpOw0KCQkJCX0NCgkJCQkvLyBjbGVhciBkYXRhcw0KCQkJCWRlbGV0ZSAodGhpcy5maWxlc1tpZF0pOw0KCQkJCXRoaXMudXBkYXRlX3NpemUoKTsNCgkJCX0JDQoJCX0NCgl9Ow0KCQ0KCS8vIGJhY2t1cCBjdXJyZW50IGZpbGUgZGF0YXMNCglFZGl0QXJlYS5wcm90b3R5cGUuc2F2ZV9maWxlPSBmdW5jdGlvbihpZCl7DQoJCXZhciB0PSB0aGlzLCBzYXZlLCBhX2xpbmtzLCBhX3NlbGVjdHMsIHNhdmVfYnV0dCwgaW1nLCBpOw0KCQlpZih0LmZpbGVzW2lkXSkNCgkJew0KCQkJdmFyIHNhdmU9IHQuZmlsZXNbaWRdOw0KCQkJc2F2ZVsnbGFzdF9zZWxlY3Rpb24nXQkJCT0gdC5sYXN0X3NlbGVjdGlvbjsJCQ0KCQkJc2F2ZVsnbGFzdF90ZXh0X3RvX2hpZ2hsaWdodCddCT0gdC5sYXN0X3RleHRfdG9faGlnaGxpZ2h0Ow0KCQkJc2F2ZVsnbGFzdF9oaWdodGxpZ2h0ZWRfdGV4dCddCT0gdC5sYXN0X2hpZ2h0bGlnaHRlZF90ZXh0Ow0KCQkJc2F2ZVsncHJldmlvdXMnXQkJCQk9IHQucHJldmlvdXM7DQoJCQlzYXZlWyduZXh0J10JCQkJCT0gdC5uZXh0Ow0KCQkJc2F2ZVsnbGFzdF91bmRvJ10JCQkJPSB0Lmxhc3RfdW5kbzsNCgkJCXNhdmVbJ3Ntb290aF9zZWxlY3Rpb24nXQkJPSB0LnNtb290aF9zZWxlY3Rpb247DQoJCQlzYXZlWydkb19oaWdobGlnaHQnXQkJCT0gdC5kb19oaWdobGlnaHQ7DQoJCQlzYXZlWydzeW50YXgnXQkJCQkJPSB0LnNldHRpbmdzWydzeW50YXgnXTsNCgkJCXNhdmVbJ3RleHQnXQkJCQkJPSB0LnRleHRhcmVhLnZhbHVlOw0KCQkJc2F2ZVsnc2Nyb2xsX3RvcCddCQkJCT0gdC5yZXN1bHQuc2Nyb2xsVG9wOw0KCQkJc2F2ZVsnc2Nyb2xsX2xlZnQnXQkJCQk9IHQucmVzdWx0LnNjcm9sbExlZnQ7DQoJCQlzYXZlWydzZWxlY3Rpb25fc3RhcnQnXQkJCT0gdC5sYXN0X3NlbGVjdGlvblsic2VsZWN0aW9uU3RhcnQiXTsNCgkJCXNhdmVbJ3NlbGVjdGlvbl9lbmQnXQkJCT0gdC5sYXN0X3NlbGVjdGlvblsic2VsZWN0aW9uRW5kIl07DQoJCQlzYXZlWydmb250X3NpemUnXQkJCQk9IHQuc2V0dGluZ3NbImZvbnRfc2l6ZSJdOw0KCQkJc2F2ZVsnZm9udF9mYW1pbHknXQkJCQk9IHQuc2V0dGluZ3NbImZvbnRfZmFtaWx5Il07DQoJCQlzYXZlWyd3b3JkX3dyYXAnXQkJCQk9IHQuc2V0dGluZ3NbIndvcmRfd3JhcCJdOw0KCQkJc2F2ZVsndG9vbGJhciddCQkJCQk9IHsnbGlua3MnOnt9LCAnc2VsZWN0cyc6IHt9fTsNCgkJCQ0KCQkJLy8gc2F2ZSB0b29sYmFyIGJ1dHRvbnMgc3RhdGUgZm9yIGZpbGVTcGVjaWZpYyBidXR0b25zDQoJCQlhX2xpbmtzPSBfJCgidG9vbGJhcl8xIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImEiKTsNCgkJCWZvciggaT0wOyBpPGFfbGlua3MubGVuZ3RoOyBpKysgKQ0KCQkJew0KCQkJCWlmKCBhX2xpbmtzW2ldLmdldEF0dHJpYnV0ZSgnZmlsZVNwZWNpZmljJykgPT0gJ3llcycgKQ0KCQkJCXsNCgkJCQkJc2F2ZV9idXR0CT0ge307DQoJCQkJCWltZwkJCT0gYV9saW5rc1tpXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaW1nJylbMF07DQoJCQkJCXNhdmVfYnV0dFsnY2xhc3NMb2NrJ10JCT0gaW1nLmNsYXNzTG9jazsNCgkJCQkJc2F2ZV9idXR0WydjbGFzc05hbWUnXQkJPSBpbWcuY2xhc3NOYW1lOw0KCQkJCQlzYXZlX2J1dHRbJ29sZENsYXNzTmFtZSddCT0gaW1nLm9sZENsYXNzTmFtZTsNCgkJCQkJDQoJCQkJCXNhdmVbJ3Rvb2xiYXInXVsnbGlua3MnXVthX2xpbmtzW2ldLmlkXT0gc2F2ZV9idXR0Ow0KCQkJCX0NCgkJCX0NCgkJCQ0KCQkJLy8gc2F2ZSB0b29sYmFyIHNlbGVjdCBzdGF0ZSBmb3IgZmlsZVNwZWNpZmljIGJ1dHRvbnMNCgkJCWFfc2VsZWN0cz0gXyQoInRvb2xiYXJfMSIpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzZWxlY3QiKTsNCgkJCWZvciggaT0wOyBpPGFfc2VsZWN0cy5sZW5ndGg7IGkrKykNCgkJCXsNCgkJCQlpZihhX3NlbGVjdHNbaV0uZ2V0QXR0cmlidXRlKCdmaWxlU3BlY2lmaWMnKT09J3llcycpDQoJCQkJew0KCQkJCQlzYXZlWyd0b29sYmFyJ11bJ3NlbGVjdHMnXVthX3NlbGVjdHNbaV0uaWRdPSBhX3NlbGVjdHNbaV0udmFsdWU7DQoJCQkJfQ0KCQkJfQ0KCQkJCQ0KCQkJdC5maWxlc1tpZF09IHNhdmU7DQoJCQkNCgkJCXJldHVybiBzYXZlOw0KCQl9DQoJCQ0KCQlyZXR1cm4gZmFsc2U7DQoJfTsNCgkNCgkvLyB1cGRhdGUgZmlsZV9kYXRhcw0KCUVkaXRBcmVhLnByb3RvdHlwZS51cGRhdGVfZmlsZT0gZnVuY3Rpb24oaWQsIG5ld192YWx1ZXMpew0KCQlmb3IodmFyIGkgaW4gbmV3X3ZhbHVlcykNCgkJew0KCQkJdGhpcy5maWxlc1tpZF1baV09IG5ld192YWx1ZXNbaV07DQoJCX0NCgl9Ow0KCQ0KCS8vIGRpc3BsYXkgZmlsZSBkYXRhcw0KCUVkaXRBcmVhLnByb3RvdHlwZS5kaXNwbGF5X2ZpbGU9IGZ1bmN0aW9uKGlkKXsNCgkJdmFyIHQgPSB0aGlzLCBhPSB0LnRleHRhcmVhLCBuZXdfZmlsZSwgYV9saXMsIGFfc2VsZWN0cywgYV9saW5rcywgYV9vcHRpb25zLCBpLCBqOw0KCQkNCgkJLy8gd2UncmUgc2hvd2luZyB0aGUgZW1wdHkgZmlsZQ0KCQlpZihpZD09JycpDQoJCXsNCgkJCWEucmVhZE9ubHk9IHRydWU7DQoJCQl0LnRhYl9icm93c2luZ19hcmVhLnN0eWxlLmRpc3BsYXk9ICJub25lIjsNCgkJCV8kKCJub19maWxlX3NlbGVjdGVkIikuc3R5bGUuZGlzcGxheT0gImJsb2NrIjsNCgkJCXQucmVzdWx0LmNsYXNzTmFtZT0gImVtcHR5IjsNCgkJCS8vIGNsZWFyIGN1cnJlbnQgZGF0YXMNCgkJCWlmKCF0LmZpbGVzWycnXSkNCgkJCXsNCgkJCQl0Lm9wZW5fZmlsZSh7aWQ6ICcnfSk7DQoJCQl9DQoJCX0NCgkJLy8gd2UgdHJ5IHRvIHNob3cgYSBub24gZXhpc3RlbnQgZmlsZSwgc28gd2UgbGVmdA0KCQllbHNlIGlmKCB0eXBlb2YoIHQuZmlsZXNbaWRdICkgPT0gJ3VuZGVmaW5lZCcgKQ0KCQl7DQoJCQlyZXR1cm4gZmFsc2U7DQoJCX0NCgkJLy8gZGlzcGxheSBhIG5vcm1hbCBmaWxlDQoJCWVsc2UNCgkJew0KCQkJdC5yZXN1bHQuY2xhc3NOYW1lPSAiIjsNCgkJCWEucmVhZE9ubHk9ICF0LmlzX2VkaXRhYmxlOw0KCQkJXyQoIm5vX2ZpbGVfc2VsZWN0ZWQiKS5zdHlsZS5kaXNwbGF5PSAibm9uZSI7DQoJCQl0LnRhYl9icm93c2luZ19hcmVhLnN0eWxlLmRpc3BsYXk9ICJibG9jayI7DQoJCX0NCgkJDQoJCS8vIGVuc3VyZSB0byBoYXZlIGxhc3Qgc3RhdGUgZm9yIHVuZG8vcmVkbyBhY3Rpb25zDQoJCXQuY2hlY2tfcmVkbyh0cnVlKTsNCgkJdC5jaGVja191bmRvKHRydWUpOw0KCQl0LmN1cnJfZmlsZT0gaWQ7DQoJCQ0KCQkvLyByZXBsYWNlIHNlbGVjdGVkIHRhYiBmaWxlDQoJCWFfbGlzPSB0LnRhYl9icm93c2luZ19hcmVhLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdsaScpOw0KCQlmb3IoIGk9MDsgaTxhX2xpcy5sZW5ndGg7IGkrKykNCgkJew0KCQkJaWYoYV9saXNbaV0uaWQgPT0gdC5maWxlc1tpZF1bJ2h0bWxfaWQnXSkNCgkJCQlhX2xpc1tpXS5jbGFzc05hbWU9J3NlbGVjdGVkJzsNCgkJCWVsc2UNCgkJCQlhX2xpc1tpXS5jbGFzc05hbWU9Jyc7DQoJCX0NCgkJDQoJCS8vIHJlcGxhY2UgbmV4dCBmaWxlcyBkYXRhcw0KCQluZXdfZmlsZT0gdC5maWxlc1tpZF07DQoJDQoJCS8vIHJlc3RvcmUgdGV4dCBjb250ZW50DQoJCWEudmFsdWU9IG5ld19maWxlWyd0ZXh0J107DQoJCQ0KCQkvLyByZXN0b3JlIGZvbnQtc2l6ZQ0KCQl0LnNldF9mb250KG5ld19maWxlWydmb250X2ZhbWlseSddLCBuZXdfZmlsZVsnZm9udF9zaXplJ10pOw0KCQkNCgkJLy8gcmVzdG9yZSBzZWxlY3Rpb24gYW5kIHNjcm9sbA0KCQl0LmFyZWFfc2VsZWN0KG5ld19maWxlWydzZWxlY3Rpb25fc3RhcnQnXSwgbmV3X2ZpbGVbJ3NlbGVjdGlvbl9lbmQnXSAtIG5ld19maWxlWydzZWxlY3Rpb25fc3RhcnQnXSk7DQoJCXQubWFuYWdlX3NpemUodHJ1ZSk7DQoJCXQucmVzdWx0LnNjcm9sbFRvcD0gbmV3X2ZpbGVbJ3Njcm9sbF90b3AnXTsNCgkJdC5yZXN1bHQuc2Nyb2xsTGVmdD0gbmV3X2ZpbGVbJ3Njcm9sbF9sZWZ0J107DQoJCQ0KCQkvLyByZXN0b3JlIHVuZG8sIHJlZG8NCgkJdC5wcmV2aW91cz0JbmV3X2ZpbGVbJ3ByZXZpb3VzJ107DQoJCXQubmV4dD0JbmV3X2ZpbGVbJ25leHQnXTsNCgkJdC5sYXN0X3VuZG89CW5ld19maWxlWydsYXN0X3VuZG8nXTsNCgkJdC5jaGVja19yZWRvKHRydWUpOw0KCQl0LmNoZWNrX3VuZG8odHJ1ZSk7DQoJCQ0KCQkvLyByZXN0b3JlIGhpZ2hsaWdodA0KCQl0LmV4ZWNDb21tYW5kKCJjaGFuZ2VfaGlnaGxpZ2h0IiwgbmV3X2ZpbGVbJ2RvX2hpZ2hsaWdodCddKTsNCgkJdC5leGVjQ29tbWFuZCgiY2hhbmdlX3N5bnRheCIsIG5ld19maWxlWydzeW50YXgnXSk7DQoJCQ0KCQkvLyBzbW9vdGggbW9kZQ0KCQl0LmV4ZWNDb21tYW5kKCJjaGFuZ2Vfc21vb3RoX3NlbGVjdGlvbl9tb2RlIiwgbmV3X2ZpbGVbJ3Ntb290aF9zZWxlY3Rpb24nXSk7DQoJCQ0KCQkvLyB3b3JkX3dyYXANCgkJdC5leGVjQ29tbWFuZCgic2V0X3dvcmRfd3JhcCIsIG5ld19maWxlWyd3b3JkX3dyYXAnXSk7DQoJCQkNCgkJLy8gcmVzdG9yZSBsaW5rcyBzdGF0ZSBpbiB0b29sYmFyDQoJCWFfbGlua3M9IG5ld19maWxlWyd0b29sYmFyJ11bJ2xpbmtzJ107DQoJCWZvciggaSBpbiBhX2xpbmtzKQ0KCQl7DQoJCQlpZiggaW1nID0gIF8kKGkpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdpbWcnKVswXSApDQoJCQl7DQoJCQkJaW1nLmNsYXNzTG9jawk9IGFfbGlua3NbaV1bJ2NsYXNzTG9jayddOw0KCQkJCWltZy5jbGFzc05hbWUJPSBhX2xpbmtzW2ldWydjbGFzc05hbWUnXTsNCgkJCQlpbWcub2xkQ2xhc3NOYW1lPSBhX2xpbmtzW2ldWydvbGRDbGFzc05hbWUnXTsNCgkJCX0NCgkJfQ0KCQkNCgkJLy8gcmVzdG9yZSBzZWxlY3Qgc3RhdGUgaW4gdG9vbGJhcg0KCQlhX3NlbGVjdHMgPSBuZXdfZmlsZVsndG9vbGJhciddWydzZWxlY3RzJ107DQoJCWZvciggaSBpbiBhX3NlbGVjdHMpDQoJCXsNCgkJCWFfb3B0aW9ucwk9IF8kKGkpLm9wdGlvbnM7DQoJCQlmb3IoIGo9MDsgajxhX29wdGlvbnMubGVuZ3RoOyBqKyspDQoJCQl7DQoJCQkJaWYoIGFfb3B0aW9uc1tqXS52YWx1ZSA9PSBhX3NlbGVjdHNbaV0gKQ0KCQkJCQlfJChpKS5vcHRpb25zW2pdLnNlbGVjdGVkPXRydWU7DQoJCQl9DQoJCX0NCgkNCgl9Ow0KDQoJLy8gY2hhbmdlIHRhYiBmb3IgZGlzcGxheWluZyBhIG5ldyBvbmUNCglFZGl0QXJlYS5wcm90b3R5cGUuc3dpdGNoX3RvX2ZpbGU9IGZ1bmN0aW9uKGZpbGVfdG9fc2hvdywgZm9yY2VfcmVmcmVzaCl7DQoJCWlmKGZpbGVfdG9fc2hvdyE9dGhpcy5jdXJyX2ZpbGUgfHwgZm9yY2VfcmVmcmVzaCkNCgkJew0KCQkJdGhpcy5zYXZlX2ZpbGUodGhpcy5jdXJyX2ZpbGUpOw0KCQkJaWYodGhpcy5jdXJyX2ZpbGUhPScnKQ0KCQkJCXRoaXMuZXhlY0NvbW1hbmQoJ2ZpbGVfc3dpdGNoX29mZicsIHRoaXMuZmlsZXNbdGhpcy5jdXJyX2ZpbGVdKTsNCgkJCXRoaXMuZGlzcGxheV9maWxlKGZpbGVfdG9fc2hvdyk7DQoJCQlpZihmaWxlX3RvX3Nob3chPScnKQ0KCQkJCXRoaXMuZXhlY0NvbW1hbmQoJ2ZpbGVfc3dpdGNoX29uJywgdGhpcy5maWxlc1tmaWxlX3RvX3Nob3ddKTsNCgkJfQ0KCX07DQoNCgkvLyBnZXQgYWxsIGluZm9zIGZvciB0aGUgZ2l2ZW4gZmlsZQ0KCUVkaXRBcmVhLnByb3RvdHlwZS5nZXRfZmlsZT0gZnVuY3Rpb24oaWQpew0KCQlpZihpZD09dGhpcy5jdXJyX2ZpbGUpDQoJCQl0aGlzLnNhdmVfZmlsZShpZCk7DQoJCXJldHVybiB0aGlzLmZpbGVzW2lkXTsNCgl9Ow0KCQ0KCS8vIGdldCBhbGwgYXZhaWxhYmxlIGZpbGVzIGluZm9zDQoJRWRpdEFyZWEucHJvdG90eXBlLmdldF9hbGxfZmlsZXM9IGZ1bmN0aW9uKCl7DQoJCXRtcF9maWxlcz0gdGhpcy5maWxlczsNCgkJdGhpcy5zYXZlX2ZpbGUodGhpcy5jdXJyX2ZpbGUpOw0KCQlpZih0bXBfZmlsZXNbJyddKQ0KCQkJZGVsZXRlKHRoaXMuZmlsZXNbJyddKTsNCgkJcmV0dXJuIHRtcF9maWxlczsNCgl9Ow0KCQ0KCQ0KCS8vIGNoZWNrIGlmIHRoZSBmaWxlIGhhcyBjaGFuZ2VkDQoJRWRpdEFyZWEucHJvdG90eXBlLmNoZWNrX2ZpbGVfY2hhbmdlcz0gZnVuY3Rpb24oKXsNCgkNCgkJdmFyIGlkPSB0aGlzLmN1cnJfZmlsZTsNCgkJaWYodGhpcy5maWxlc1tpZF0gJiYgdGhpcy5maWxlc1tpZF1bJ2NvbXBhcmVfZWRpdGVkX3RleHQnXSE9dW5kZWZpbmVkKQ0KCQl7DQoJCQlpZih0aGlzLmZpbGVzW2lkXVsnY29tcGFyZV9lZGl0ZWRfdGV4dCddLmxlbmd0aD09dGhpcy50ZXh0YXJlYS52YWx1ZS5sZW5ndGggJiYgdGhpcy5maWxlc1tpZF1bJ2NvbXBhcmVfZWRpdGVkX3RleHQnXT09dGhpcy50ZXh0YXJlYS52YWx1ZSkNCgkJCXsNCgkJCQlpZih0aGlzLmZpbGVzW2lkXVsnZWRpdGVkJ10hPSBmYWxzZSkNCgkJCQkJdGhpcy5zZXRfZmlsZV9lZGl0ZWRfbW9kZShpZCwgZmFsc2UpOw0KCQkJfQ0KCQkJZWxzZQ0KCQkJew0KCQkJCWlmKHRoaXMuZmlsZXNbaWRdWydlZGl0ZWQnXSE9IHRydWUpDQoJCQkJCXRoaXMuc2V0X2ZpbGVfZWRpdGVkX21vZGUoaWQsIHRydWUpOw0KCQkJfQ0KCQl9DQoJfTsNCgkNCgkvLyBzZXQgaWYgdGhlIGZpbGUgaXMgZWRpdGVkIG9yIG5vdA0KCUVkaXRBcmVhLnByb3RvdHlwZS5zZXRfZmlsZV9lZGl0ZWRfbW9kZT0gZnVuY3Rpb24oaWQsIHRvKXsNCgkJLy8gY2hhbmdlIENTUyBmb3IgZWRpdGVkIHRhYg0KCQlpZih0aGlzLmZpbGVzW2lkXSAmJiBfJCh0aGlzLmZpbGVzW2lkXVsnaHRtbF9pZCddKSkNCgkJew0KCQkJdmFyIGxpbms9IF8kKHRoaXMuZmlsZXNbaWRdWydodG1sX2lkJ10pLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdhJylbMF07DQoJCQlpZih0bz09dHJ1ZSkNCgkJCXsNCgkJCQlsaW5rLmNsYXNzTmFtZT0gJ2VkaXRlZCc7DQoJCQl9DQoJCQllbHNlDQoJCQl7DQoJCQkJbGluay5jbGFzc05hbWU9ICcnOw0KCQkJCWlmKGlkPT10aGlzLmN1cnJfZmlsZSkNCgkJCQkJdGV4dD0gdGhpcy50ZXh0YXJlYS52YWx1ZTsNCgkJCQllbHNlDQoJCQkJCXRleHQ9IHRoaXMuZmlsZXNbaWRdWyd0ZXh0J107DQoJCQkJdGhpcy5maWxlc1tpZF1bJ2NvbXBhcmVfZWRpdGVkX3RleHQnXT0gdGV4dDsNCgkJCX0NCgkJCQkNCgkJCXRoaXMuZmlsZXNbaWRdWydlZGl0ZWQnXT0gdG87DQoJCX0NCgl9Ow0KDQoJRWRpdEFyZWEucHJvdG90eXBlLnNldF9zaG93X2xpbmVfY29sb3JzID0gZnVuY3Rpb24obmV3X3ZhbHVlKXsNCgkJdGhpcy5zaG93X2xpbmVfY29sb3JzID0gbmV3X3ZhbHVlOw0KCQkNCgkJaWYoIG5ld192YWx1ZSApDQoJCQl0aGlzLnNlbGVjdGlvbl9maWVsZC5jbGFzc05hbWUJKz0gJyBzaG93X2NvbG9ycyc7DQoJCWVsc2UNCgkJCXRoaXMuc2VsZWN0aW9uX2ZpZWxkLmNsYXNzTmFtZQk9IHRoaXMuc2VsZWN0aW9uX2ZpZWxkLmNsYXNzTmFtZS5yZXBsYWNlKCAvIHNob3dfY29sb3JzL2csICcnICk7DQoJfTs=]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/edit_area_loader.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoqKioqKg0KICoNCiAqCUVkaXRBcmVhIA0KICogCURldmVsb3BwZWQgYnkgQ2hyaXN0b3BoZSBEb2xpdmV0DQogKglSZWxlYXNlZCB1bmRlciBMR1BMLCBBcGFjaGUgYW5kIEJTRCBsaWNlbnNlcyAodXNlIHRoZSBvbmUgeW91IHdhbnQpDQogKg0KKioqKioqLw0KDQpmdW5jdGlvbiBFZGl0QXJlYUxvYWRlcigpew0KCXZhciB0PXRoaXM7DQoJdC52ZXJzaW9uPSAiMC44LjIiOw0KCWRhdGU9IG5ldyBEYXRlKCk7DQoJdC5zdGFydF90aW1lPWRhdGUuZ2V0VGltZSgpOw0KCXQud2luPSAibG9hZGluZyI7CS8vIHdpbmRvdyBsb2FkaW5nIHN0YXRlDQoJdC5lcnJvcj0gZmFsc2U7CS8vIHRvIGtub3cgaWYgbG9hZCBpcyBpbnRlcnJydXB0DQoJdC5iYXNlVVJMPSIiOw0KCS8vdC5zdWZmaXg9IiI7DQoJdC50ZW1wbGF0ZT0iIjsNCgl0Lmxhbmc9IHt9OwkvLyBhcnJheSBvZiBsb2FkZWQgc3BlZWNoIGxhbmd1YWdlDQoJdC5sb2FkX3N5bnRheD0ge307CS8vIGFycmF5IG9mIGxvYWRlZCBzeW50YXggbGFuZ3VhZ2UgZm9yIGhpZ2hsaWdodCBtb2RlDQoJdC5zeW50YXg9IHt9OwkvLyBhcnJheSBvZiBpbml0aWxpemVkIHN5bnRheCBsYW5ndWFnZSBmb3IgaGlnaGxpZ2h0IG1vZGUNCgl0LmxvYWRlZEZpbGVzPSBbXTsNCgl0LndhaXRpbmdfbG9hZGluZz0ge307IAkvLyBmaWxlcyB0aGF0IG11c3QgYmUgbG9hZGVkIGluIG9yZGVyIHRvIGFsbG93IHRoZSBzY3JpcHQgdG8gcmVhbGx5IHN0YXJ0DQoJLy8gc2NyaXB0cyB0aGF0IG11c3QgYmUgbG9hZGVkIGluIHRoZSBpZnJhbWUNCgl0LnNjcmlwdHNfdG9fbG9hZD0gWyJlbGVtZW50c19mdW5jdGlvbnMiLCAicmVzaXplX2FyZWEiLCAicmVnX3N5bnRheCJdOw0KCXQuc3ViX3NjcmlwdHNfdG9fbG9hZD0gWyJlZGl0X2FyZWEiLCAibWFuYWdlX2FyZWEiICwiZWRpdF9hcmVhX2Z1bmN0aW9ucyIsICJrZXlib2FyZCIsICJzZWFyY2hfcmVwbGFjZSIsICJoaWdobGlnaHQiLCAicmVnZXhwIl07DQoJdC5zeW50YXhfZGlzcGxheV9uYW1lPSB7IC8qc3ludGF4X2Rpc3BsYXlfbmFtZV9BVVRPLUZJTEwtQlktQ09NUFJFU1NPUiovIH07DQoJDQoJdC5yZXNpemU9IFtdOyAvLyBjb250YWluIHJlc2l6aW5nIGRhdGFzDQoJdC5oaWRkZW49IHt9OwkvLyBzdG9yZSBkYXRhcyBvZiB0aGUgaGlkZGVuIHRleHRhcmVhcw0KCQ0KCXQuZGVmYXVsdF9zZXR0aW5ncz0gew0KCQkvL2lkOiAic3JjIgkvLyBpZCBvZiB0aGUgdGV4dGFyZWEgdG8gdHJhbnNmb3JtDQoJCWRlYnVnOiBmYWxzZQ0KCQksc21vb3RoX3NlbGVjdGlvbjogdHJ1ZQ0KCQksZm9udF9zaXplOiAiMTAiCQkvLyBub3QgZm9yIElFDQoJCSxmb250X2ZhbWlseTogIm1vbm9zcGFjZSIJLy8gY2FuIGJlICJ2ZXJkYW5hLG1vbm9zcGFjZSIuIEFsbG93IG5vbiBtb25vc3BhY2UgZm9udCBidXQgRmlyZWZveCBnZXQgc21hbGxlciB0YWJ1bGF0aW9uIHdpdGggbm9uIG1vbm9zcGFjZSBmb250cy4gSUUgZG9lc24ndCBjaGFuZ2UgdGhlIHRhYnVsYXRpb24gd2lkdGggYW5kIE9wZXJhIGRvZXNuJ3QgdGFrZSB0aGlzIG9wdGlvbiBpbnRvIGFjY291bnQuLi4gDQoJCSxzdGFydF9oaWdobGlnaHQ6IGZhbHNlCS8vIGlmIHN0YXJ0IHdpdGggaGlnaGxpZ2h0DQoJCSx0b29sYmFyOiAic2VhcmNoLCBnb190b19saW5lLCBmdWxsc2NyZWVuLCB8LCB1bmRvLCByZWRvLCB8LCBzZWxlY3RfZm9udCx8LCBjaGFuZ2Vfc21vb3RoX3NlbGVjdGlvbiwgaGlnaGxpZ2h0LCByZXNldF9oaWdobGlnaHQsIHdvcmRfd3JhcCwgfCwgaGVscCINCgkJLGJlZ2luX3Rvb2xiYXI6ICIiCQkvLyAgIm5ld19kb2N1bWVudCwgc2F2ZSwgbG9hZCwgfCINCgkJLGVuZF90b29sYmFyOiAiIgkJLy8gb3IgZW5kX3Rvb2xiYXINCgkJLGlzX211bHRpX2ZpbGVzOiBmYWxzZQkJLy8gZW5hYmxlIHRoZSBtdWx0aSBmaWxlIG1vZGUgKHRoZSB0ZXh0YXJlYSBjb250ZW50IGlzIGlnbm9yZWQpDQoJCSxhbGxvd19yZXNpemU6ICJib3RoIgkvLyBwb3NzaWJsZSB2YWx1ZXM6ICJubyIsICJib3RoIiwgIngiLCAieSINCgkJLHNob3dfbGluZV9jb2xvcnM6IGZhbHNlCS8vIGlmIHRoZSBoaWdobGlnaHQgaXMgZGlzYWJsZWQgZm9yIHRoZSBsaW5lIGN1cnJlbnRseSBiZWVpbmcgZWRpdGVkIChpZiBlbmFibGVkID0+IGhlYXZ5IENQVSB1c2UpDQoJCSxtaW5fd2lkdGg6IDQwMA0KCQksbWluX2hlaWdodDogMTI1DQoJCSxyZXBsYWNlX3RhYl9ieV9zcGFjZXM6IGZhbHNlDQoJCSxhbGxvd190b2dnbGU6IHRydWUJCS8vIHRydWUgb3IgZmFsc2UNCgkJLGxhbmd1YWdlOiAiZW4iDQoJCSxzeW50YXg6ICIiDQoJCSxzeW50YXhfc2VsZWN0aW9uX2FsbG93OiAiYmFzaWMsYnJhaW5mdWNrLGMsY29sZGZ1c2lvbixjcHAsY3NzLGh0bWwsamF2YSxqcyxwYXMscGVybCxwaHAscHl0aG9uLHJ1Ynkscm9ib3RzdHh0LHNxbCx0c3FsLHZiLHhtbCINCgkJLGRpc3BsYXk6ICJvbmxvYWQiIAkJLy8gb25sb2FkIG9yIGxhdGVyDQoJCSxtYXhfdW5kbzogMzANCgkJLGJyb3dzZXJzOiAia25vd24iCS8vIGFsbCBvciBrbm93bg0KCQkscGx1Z2luczogIiIgLy8gY29tbWEgc2VwYXJhdGVkIHBsdWdpbiBsaXN0DQoJCSxnZWNrb19zcGVsbGNoZWNrOiBmYWxzZQkvLyBlbmFibGUvZGlzYWJsZSBieSBkZWZhdWx0IHRoZSBnZWNrb19zcGVsbGNoZWNrDQoJCSxmdWxsc2NyZWVuOiBmYWxzZQ0KCQksaXNfZWRpdGFibGU6IHRydWUNCgkJLGN1cnNvcl9wb3NpdGlvbjogImJlZ2luIg0KCQksd29yZF93cmFwOiBmYWxzZQkJLy8gZGVmaW5lIGlmIHRoZSB0ZXh0IGlzIHdyYXBwZWQgb2Ygbm90IGluIHRoZSB0ZXh0YXJlYQ0KCQksYXV0b2NvbXBsZXRpb246IGZhbHNlCS8vIE5PVCBJTVBMRU1FTlRFRAkJCQ0KCQksbG9hZF9jYWxsYmFjazogIiIJCS8vIGNsaWNrIG9uIGxvYWQgYnV0dG9uIChmdW5jdGlvbiBuYW1lKQ0KCQksc2F2ZV9jYWxsYmFjazogIiIJCS8vIGNsaWNrIG9uIHNhdmUgYnV0dG9uIChmdW5jdGlvbiBuYW1lKQ0KCQksY2hhbmdlX2NhbGxiYWNrOiAiIgkvLyB0ZXh0YXJlYSBvbmNoYW5nZSB0cmlnZ2VyIChmdW5jdGlvbiBuYW1lKQ0KCQksc3VibWl0X2NhbGxiYWNrOiAiIgkvLyBmb3JtIHN1Ym1pdGVkIChmdW5jdGlvbiBuYW1lKQ0KCQksRUFfaW5pdF9jYWxsYmFjazogIiIJLy8gRWRpdEFyZWEgaW5pdGlsaWF6ZWQgKGZ1bmN0aW9uIG5hbWUpDQoJCSxFQV9kZWxldGVfY2FsbGJhY2s6ICIiCS8vIEVkaXRBcmVhIGRlbGV0ZWQgKGZ1bmN0aW9uIG5hbWUpDQoJCSxFQV9sb2FkX2NhbGxiYWNrOiAiIgkvLyBFZGl0QXJlYSBmdWxseSBsb2FkZWQgYW5kIGRpc3BsYXllZCAoZnVuY3Rpb24gbmFtZSkNCgkJLEVBX3VubG9hZF9jYWxsYmFjazogIiIJLy8gRWRpdEFyZWEgZGVsZXRlIHdoaWxlIGJlaW5nIGRpc3BsYXllZCAoZnVuY3Rpb24gbmFtZSkNCgkJLEVBX3RvZ2dsZV9vbl9jYWxsYmFjazogIiIJLy8gRWRpdEFyZWEgdG9nZ2xlZCBvbiAoZnVuY3Rpb24gbmFtZSkNCgkJLEVBX3RvZ2dsZV9vZmZfY2FsbGJhY2s6ICIiCS8vIEVkaXRBcmVhIHRvZ2dsZWQgb2ZmIChmdW5jdGlvbiBuYW1lKQ0KCQksRUFfZmlsZV9zd2l0Y2hfb25fY2FsbGJhY2s6ICIiCS8vIGEgbmV3IHRhYiBpcyBzZWxlY3RlZCAoY2FsbGVkIGZvciB0aGUgbmV3bHkgc2VsZWN0ZWQgZmlsZSkNCgkJLEVBX2ZpbGVfc3dpdGNoX29mZl9jYWxsYmFjazogIiIJLy8gYSBuZXcgdGFiIGlzIHNlbGVjdGVkIChjYWxsZWQgZm9yIHRoZSBwcmV2aW91c2x5IHNlbGVjdGVkIGZpbGUpDQoJCSxFQV9maWxlX2Nsb3NlX2NhbGxiYWNrOiAiIgkJLy8gY2xvc2UgYSB0YWINCgl9Ow0KCQ0KCXQuYWR2YW5jZWRfYnV0dG9ucyA9IFsNCgkJCS8vIGlkLCBidXR0b24gaW1nLCBjb21tYW5kIChpdCB3aWxsIHRyeSB0byBmaW5kIHRoZSB0cmFuc2xhdGlvbiBvZiAiaWQiKSwgaXNfZmlsZV9zcGVjaWZpYw0KCQkJWyduZXdfZG9jdW1lbnQnLCAnbmV3ZG9jdW1lbnQuZ2lmJywgJ25ld19kb2N1bWVudCcsIGZhbHNlXSwNCgkJCVsnc2VhcmNoJywgJ3NlYXJjaC5naWYnLCAnc2hvd19zZWFyY2gnLCBmYWxzZV0sDQoJCQlbJ2dvX3RvX2xpbmUnLCAnZ29fdG9fbGluZS5naWYnLCAnZ29fdG9fbGluZScsIGZhbHNlXSwNCgkJCVsndW5kbycsICd1bmRvLmdpZicsICd1bmRvJywgdHJ1ZV0sDQoJCQlbJ3JlZG8nLCAncmVkby5naWYnLCAncmVkbycsIHRydWVdLA0KCQkJWydjaGFuZ2Vfc21vb3RoX3NlbGVjdGlvbicsICdzbW9vdGhfc2VsZWN0aW9uLmdpZicsICdjaGFuZ2Vfc21vb3RoX3NlbGVjdGlvbl9tb2RlJywgdHJ1ZV0sDQoJCQlbJ3Jlc2V0X2hpZ2hsaWdodCcsICdyZXNldF9oaWdobGlnaHQuZ2lmJywgJ3Jlc3luY19oaWdobGlnaHQnLCB0cnVlXSwNCgkJCVsnaGlnaGxpZ2h0JywgJ2hpZ2hsaWdodC5naWYnLCdjaGFuZ2VfaGlnaGxpZ2h0JywgdHJ1ZV0sDQoJCQlbJ2hlbHAnLCAnaGVscC5naWYnLCAnc2hvd19oZWxwJywgZmFsc2VdLA0KCQkJWydzYXZlJywgJ3NhdmUuZ2lmJywgJ3NhdmUnLCBmYWxzZV0sDQoJCQlbJ2xvYWQnLCAnbG9hZC5naWYnLCAnbG9hZCcsIGZhbHNlXSwNCgkJCVsnZnVsbHNjcmVlbicsICdmdWxsc2NyZWVuLmdpZicsICd0b2dnbGVfZnVsbF9zY3JlZW4nLCBmYWxzZV0sDQoJCQlbJ3dvcmRfd3JhcCcsICd3b3JkX3dyYXAuZ2lmJywgJ3RvZ2dsZV93b3JkX3dyYXAnLCB0cnVlXSwNCgkJCVsnYXV0b2NvbXBsZXRpb24nLCAnYXV0b2NvbXBsZXRpb24uZ2lmJywgJ3RvZ2dsZV9hdXRvY29tcGxldGlvbicsIHRydWVdDQoJCV07DQoJCQkNCgkvLyBuYXZpZ2F0b3IgaWRlbnRpZmljYXRpb24NCgl0LnNldF9icm93c2VyX2luZm9zKHQpOw0KDQoJaWYodC5pc0lFPj02IHx8IHQuaXNHZWNrbyB8fCAoIHQuaXNXZWJLaXQgJiYgIXQuaXNTYWZhcmk8MyApIHx8IHQuaXNPcGVyYT49OSAgfHwgdC5pc0NhbWlubyApDQoJCXQuaXNWYWxpZEJyb3dzZXI9dHJ1ZTsNCgllbHNlDQoJCXQuaXNWYWxpZEJyb3dzZXI9ZmFsc2U7DQoNCgl0LnNldF9iYXNlX3VybCgpOwkJDQoJDQoJZm9yKHZhciBpPTA7IGk8dC5zY3JpcHRzX3RvX2xvYWQubGVuZ3RoOyBpKyspew0KCQlzZXRUaW1lb3V0KCJlZGl0QXJlYUxvYWRlci5sb2FkX3NjcmlwdCgnIit0LmJhc2VVUkwgKyB0LnNjcmlwdHNfdG9fbG9hZFtpXSsgIi5qcycpOyIsIDEpOwkvLyBsZXQgdGhlIHRpbWUgdG8gT2JqZWN0IGVkaXRBcmVhTG9hZGVyIHRvIGJlIGNyZWF0ZWQgYmVmb3JlIGxvYWRpbmcgYWRkaXRpb25uYWwgc2NyaXB0cw0KCQl0LndhaXRpbmdfbG9hZGluZ1t0LnNjcmlwdHNfdG9fbG9hZFtpXSsgIi5qcyJdPSBmYWxzZTsNCgl9DQoJdC5hZGRfZXZlbnQod2luZG93LCAibG9hZCIsIEVkaXRBcmVhTG9hZGVyLnByb3RvdHlwZS53aW5kb3dfbG9hZGVkKTsNCn07DQoJDQpFZGl0QXJlYUxvYWRlci5wcm90b3R5cGUgPXsNCgloYXNfZXJyb3IgOiBmdW5jdGlvbigpew0KCQl0aGlzLmVycm9yPSB0cnVlOw0KCQkvLyBzZXQgdG8gZW1wdHkgYWxsIEVkaXRBcmVhTG9hZGVyIGZ1bmN0aW9ucw0KCQlmb3IodmFyIGkgaW4gRWRpdEFyZWFMb2FkZXIucHJvdG90eXBlKXsNCgkJCUVkaXRBcmVhTG9hZGVyLnByb3RvdHlwZVtpXT1mdW5jdGlvbigpe307CQkNCgkJfQ0KCX0sDQoJDQoJLy8gYWRkIGJyb3dzZXIgaW5mb3JtYXRpb25zIHRvIHRoZSBvYmplY3QgcGFzc2VkIGluIHBhcmFtZXRlcg0KCXNldF9icm93c2VyX2luZm9zIDogZnVuY3Rpb24obyl7DQoJCXVhPSBuYXZpZ2F0b3IudXNlckFnZW50Ow0KCQkNCgkJLy8gZ2VuZXJhbCBkZXRlY3Rpb24NCgkJby5pc1dlYktpdAk9IC9XZWJLaXQvLnRlc3QodWEpOw0KCQlvLmlzR2Vja28JPSAhby5pc1dlYktpdCAmJiAvR2Vja28vLnRlc3QodWEpOw0KCQlvLmlzTWFjCQk9IC9NYWMvLnRlc3QodWEpOw0KCQkNCgkJby5pc0lFCT0gKG5hdmlnYXRvci5hcHBOYW1lID09ICJNaWNyb3NvZnQgSW50ZXJuZXQgRXhwbG9yZXIiKTsNCgkJaWYoby5pc0lFKXsNCgkJCW8uaXNJRSA9IHVhLnJlcGxhY2UoL14uKj9NU0lFXHMrKFswLTlcLl0rKS4qJC8sICIkMSIpOw0KCQkJaWYoby5pc0lFPDYpDQoJCQkJby5oYXNfZXJyb3IoKTsNCgkJfQ0KDQoJCWlmKG8uaXNPcGVyYSA9ICh1YS5pbmRleE9mKCdPcGVyYScpICE9IC0xKSl7CQ0KCQkJby5pc09wZXJhPSB1YS5yZXBsYWNlKC9eLio/T3BlcmEuKj8oWzAtOVwuXSspLiokL2ksICIkMSIpOw0KCQkJaWYoby5pc09wZXJhPDkpDQoJCQkJby5oYXNfZXJyb3IoKTsNCgkJCW8uaXNJRT1mYWxzZTsJCQkNCgkJfQ0KDQoJCWlmKG8uaXNGaXJlZm94ID0odWEuaW5kZXhPZignRmlyZWZveCcpICE9IC0xKSkNCgkJCW8uaXNGaXJlZm94ID0gdWEucmVwbGFjZSgvXi4qP0ZpcmVmb3guKj8oWzAtOVwuXSspLiokL2ksICIkMSIpOw0KCQkvLyBGaXJlZm94IGNsb25lcyAJDQoJCWlmKCB1YS5pbmRleE9mKCdJY2V3ZWFzZWwnKSAhPSAtMSApDQoJCQlvLmlzRmlyZWZveAk9IHVhLnJlcGxhY2UoL14uKj9JY2V3ZWFzZWwuKj8oWzAtOVwuXSspLiokL2ksICIkMSIpOw0KCQlpZiggdWEuaW5kZXhPZignR3JhblBhcmFkaXNvJykgIT0gLTEgKQ0KCQkJby5pc0ZpcmVmb3gJPSB1YS5yZXBsYWNlKC9eLio/R3JhblBhcmFkaXNvLio/KFswLTlcLl0rKS4qJC9pLCAiJDEiKTsNCgkJaWYoIHVhLmluZGV4T2YoJ0JvbkVjaG8nKSAhPSAtMSApDQoJCQlvLmlzRmlyZWZveAk9IHVhLnJlcGxhY2UoL14uKj9Cb25FY2hvLio/KFswLTlcLl0rKS4qJC9pLCAiJDEiKTsNCgkJaWYoIHVhLmluZGV4T2YoJ1NlYU1vbmtleScpICE9IC0xKQ0KCQkJby5pc0ZpcmVmb3ggPSAodWEucmVwbGFjZSgvXi4qP1NlYU1vbmtleS4qPyhbMC05XC5dKykuKiQvaSwgIiQxIikgKSArIDE7DQoJCQkNCgkJaWYoby5pc0NhbWlubyA9KHVhLmluZGV4T2YoJ0NhbWlubycpICE9IC0xKSkNCgkJCW8uaXNDYW1pbm8gPSB1YS5yZXBsYWNlKC9eLio/Q2FtaW5vLio/KFswLTlcLl0rKS4qJC9pLCAiJDEiKTsNCgkJCQ0KCQlpZihvLmlzU2FmYXJpID0odWEuaW5kZXhPZignU2FmYXJpJykgIT0gLTEpKQ0KCQkJby5pc1NhZmFyaT0gdWEucmVwbGFjZSgvXi4qP1ZlcnNpb25cLyhbMC05XStcLlswLTldKykuKiQvaSwgIiQxIik7DQoJDQoJCWlmKG8uaXNDaHJvbWUgPSh1YS5pbmRleE9mKCdDaHJvbWUnKSAhPSAtMSkpIHsNCgkJCW8uaXNDaHJvbWUgPSB1YS5yZXBsYWNlKC9eLio/Q2hyb21lLio/KFswLTlcLl0rKS4qJC9pLCAiJDEiKTsNCgkJCW8uaXNTYWZhcmkJPSBmYWxzZTsNCgkJfQ0KCQkNCgl9LA0KCQ0KCXdpbmRvd19sb2FkZWQgOiBmdW5jdGlvbigpew0KCQllZGl0QXJlYUxvYWRlci53aW49ImxvYWRlZCI7DQoJCQ0KCQkvLyBhZGQgZXZlbnRzIG9uIGZvcm1zDQoJCWlmIChkb2N1bWVudC5mb3Jtcykgew0KCQkJZm9yICh2YXIgaT0wOyBpPGRvY3VtZW50LmZvcm1zLmxlbmd0aDsgaSsrKSB7DQoJCQkJdmFyIGZvcm0gPSBkb2N1bWVudC5mb3Jtc1tpXTsNCgkJCQlmb3JtLmVkaXRfYXJlYV9yZXBsYWNlZF9zdWJtaXQ9bnVsbDsNCgkJCQl0cnkgew0KCQkJCQkNCgkJCQkJZm9ybS5lZGl0X2FyZWFfcmVwbGFjZWRfc3VibWl0ID0gZm9ybS5vbnN1Ym1pdDsNCgkJCQkJZm9ybS5vbnN1Ym1pdD0iIjsNCgkJCQl9IGNhdGNoIChlKSB7Ly8gRG8gbm90aGluZw0KCQkJCX0NCgkJCQllZGl0QXJlYUxvYWRlci5hZGRfZXZlbnQoZm9ybSwgInN1Ym1pdCIsIEVkaXRBcmVhTG9hZGVyLnByb3RvdHlwZS5zdWJtaXQpOw0KCQkJCWVkaXRBcmVhTG9hZGVyLmFkZF9ldmVudChmb3JtLCAicmVzZXQiLCBFZGl0QXJlYUxvYWRlci5wcm90b3R5cGUucmVzZXQpOw0KCQkJfQ0KCQl9DQoJCWVkaXRBcmVhTG9hZGVyLmFkZF9ldmVudCh3aW5kb3csICJ1bmxvYWQiLCBmdW5jdGlvbigpe2Zvcih2YXIgaSBpbiBlZGl0QXJlYXMpe2VkaXRBcmVhTG9hZGVyLmRlbGV0ZV9pbnN0YW5jZShpKTt9fSk7CS8vIGluaSBjYWxsYmFjaw0KCX0sDQoJDQoJLy8gaW5pdCB0aGUgY2hlY2t1cCBvZiB0aGUgc2VsZWN0aW9uIG9mIHRoZSBJRSB0ZXh0YXJlYQ0KCWluaXRfaWVfdGV4dGFyZWEgOiBmdW5jdGlvbihpZCl7DQoJCXZhciBhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTsNCgkJdHJ5ew0KCQkJaWYoYSAmJiB0eXBlb2YoYS5mb2N1c2VkKT09InVuZGVmaW5lZCIpew0KCQkJCWEuZm9jdXMoKTsNCgkJCQlhLmZvY3VzZWQ9dHJ1ZTsNCgkJCQlhLnNlbGVjdGlvblN0YXJ0PSBhLnNlbGVjdGlvbkVuZD0gMDsJCQkNCgkJCQlnZXRfSUVfc2VsZWN0aW9uKGEpOw0KCQkJCWVkaXRBcmVhTG9hZGVyLmFkZF9ldmVudChhLCAiZm9jdXMiLCBJRV90ZXh0YXJlYV9mb2N1cyk7DQoJCQkJZWRpdEFyZWFMb2FkZXIuYWRkX2V2ZW50KGEsICJibHVyIiwgSUVfdGV4dGFyZWFfYmx1cik7DQoJCQkJDQoJCQl9DQoJCX1jYXRjaChleCl7fQ0KCX0sDQoJCQ0KCWluaXQgOiBmdW5jdGlvbihzZXR0aW5ncyl7DQoJCXZhciB0PXRoaXMscz1zZXR0aW5ncyxpOw0KCQkNCgkJaWYoIXNbImlkIl0pDQoJCQl0Lmhhc19lcnJvcigpOw0KCQlpZih0LmVycm9yKQ0KCQkJcmV0dXJuOw0KCQkvLyBpZiBhbiBpbnN0YW5jZSBvZiB0aGUgZWRpdG9yIGFscmVhZHkgZXhpc3RzIGZvciB0aGlzIHRleHRhcmVhID0+IGRlbGV0ZSB0aGUgcHJldmlvdXMgb25lDQoJCWlmKGVkaXRBcmVhc1tzWyJpZCJdXSkNCgkJCXQuZGVsZXRlX2luc3RhbmNlKHNbImlkIl0pOw0KCQ0KCQkvLyBpbml0IHNldHRpbmdzDQoJCWZvcihpIGluIHQuZGVmYXVsdF9zZXR0aW5ncyl7DQoJCQlpZih0eXBlb2Yoc1tpXSk9PSJ1bmRlZmluZWQiKQ0KCQkJCXNbaV09dC5kZWZhdWx0X3NldHRpbmdzW2ldOw0KCQl9DQoJCQ0KCQlpZihzWyJicm93c2VycyJdPT0ia25vd24iICYmIHQuaXNWYWxpZEJyb3dzZXI9PWZhbHNlKXsNCgkJCXJldHVybjsNCgkJfQ0KCQkNCgkJaWYoc1siYmVnaW5fdG9vbGJhciJdLmxlbmd0aD4wKQ0KCQkJc1sidG9vbGJhciJdPSBzWyJiZWdpbl90b29sYmFyIl0gKyIsIisgc1sidG9vbGJhciJdOw0KCQlpZihzWyJlbmRfdG9vbGJhciJdLmxlbmd0aD4wKQ0KCQkJc1sidG9vbGJhciJdPSBzWyJ0b29sYmFyIl0gKyIsIisgc1siZW5kX3Rvb2xiYXIiXTsNCgkJc1sidGFiX3Rvb2xiYXIiXT0gc1sidG9vbGJhciJdLnJlcGxhY2UoLyAvZywiIikuc3BsaXQoIiwiKTsNCgkJDQoJCXNbInBsdWdpbnMiXT0gc1sicGx1Z2lucyJdLnJlcGxhY2UoLyAvZywiIikuc3BsaXQoIiwiKTsNCgkJZm9yKGk9MDsgaTxzWyJwbHVnaW5zIl0ubGVuZ3RoOyBpKyspew0KCQkJaWYoc1sicGx1Z2lucyJdW2ldLmxlbmd0aD09MCkNCgkJCQlzWyJwbHVnaW5zIl0uc3BsaWNlKGksMSk7DQoJCX0NCgkvLwlhbGVydChzZXR0aW5nc1sicGx1Z2lucyJdLmxlbmd0aCsiOiAiKyBzZXR0aW5nc1sicGx1Z2lucyJdLmpvaW4oIiwiKSk7DQoJCXQuZ2V0X3RlbXBsYXRlKCk7DQoJCXQubG9hZF9zY3JpcHQodC5iYXNlVVJMICsgImxhbmdzLyIrIHNbImxhbmd1YWdlIl0gKyAiLmpzIik7DQoJCQ0KCQlpZihzWyJzeW50YXgiXS5sZW5ndGg+MCl7DQoJCQlzWyJzeW50YXgiXT1zWyJzeW50YXgiXS50b0xvd2VyQ2FzZSgpOw0KCQkJdC5sb2FkX3NjcmlwdCh0LmJhc2VVUkwgKyAicmVnX3N5bnRheC8iKyBzWyJzeW50YXgiXSArICIuanMiKTsNCgkJfQ0KCQkvL2FsZXJ0KHRoaXMudGVtcGxhdGUpOw0KCQkNCgkJZWRpdEFyZWFzW3NbImlkIl1dPSB7InNldHRpbmdzIjogc307DQoJCWVkaXRBcmVhc1tzWyJpZCJdXVsiZGlzcGxheWVkIl09ZmFsc2U7DQoJCWVkaXRBcmVhc1tzWyJpZCJdXVsiaGlkZGVuIl09ZmFsc2U7DQoJCQ0KCQkvL2lmKHNldHRpbmdzWyJkaXNwbGF5Il09PSJvbmxvYWQiKQ0KCQl0LnN0YXJ0KHNbImlkIl0pOw0KCX0sDQoJDQoJLy8gZGVsZXRlIGFuIGluc3RhbmNlIG9mIGFuIEVkaXRBcmVhDQoJZGVsZXRlX2luc3RhbmNlIDogZnVuY3Rpb24oaWQpew0KCQl2YXIgZD1kb2N1bWVudCxmcz13aW5kb3cuZnJhbWVzLHNwYW4saWZyYW1lOw0KCQllZGl0QXJlYUxvYWRlci5leGVjQ29tbWFuZChpZCwgIkVBX2RlbGV0ZSIpOw0KCQlpZihmc1siZnJhbWVfIitpZF0gJiYgZnNbImZyYW1lXyIraWRdLmVkaXRBcmVhKQ0KCQl7DQoJCQlpZihlZGl0QXJlYXNbaWRdWyJkaXNwbGF5ZWQiXSkNCgkJCQllZGl0QXJlYUxvYWRlci50b2dnbGUoaWQsICJvZmYiKTsNCgkJCWZzWyJmcmFtZV8iK2lkXS5lZGl0QXJlYS5leGVjQ29tbWFuZCgiRUFfdW5sb2FkIik7DQoJCX0NCg0KCQkvLyByZW1vdmUgdG9nZ2xlIGluZm9zIGFuZCBkZWJ1ZyB0ZXh0YXJlYQ0KCQlzcGFuPSBkLmdldEVsZW1lbnRCeUlkKCJFZGl0QXJlYUFycm91bmRJbmZvc18iK2lkKTsNCgkJaWYoc3BhbikNCgkJCXNwYW4ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChzcGFuKTsNCg0KCQkvLyByZW1vdmUgdGhlIGlmcmFtZQ0KCQlpZnJhbWU9IGQuZ2V0RWxlbWVudEJ5SWQoImZyYW1lXyIraWQpOw0KCQlpZihpZnJhbWUpew0KCQkJaWZyYW1lLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoaWZyYW1lKTsNCgkJCS8vZGVsZXRlIGlmcmFtZTsNCgkJCXRyeSB7DQoJCQkJZGVsZXRlIGZzWyJmcmFtZV8iK2lkXTsNCgkJCX0gY2F0Y2ggKGUpIHsvLyBEbyBub3RoaW5nDQoJCQl9DQoJCX0JDQoNCgkJZGVsZXRlIGVkaXRBcmVhc1tpZF07DQoJfSwNCg0KCQ0KCXN0YXJ0IDogZnVuY3Rpb24oaWQpew0KCQl2YXIgdD10aGlzLGQ9ZG9jdW1lbnQsZixzcGFuLGZhdGhlcixuZXh0LGh0bWw9JycsaHRtbF90b29sYmFyX2NvbnRlbnQ9JycsdGVtcGxhdGUsY29udGVudCxpOw0KCQkNCgkJLy8gY2hlY2sgdGhhdCB0aGUgd2luZG93IGlzIGxvYWRlZA0KCQlpZih0LndpbiE9ImxvYWRlZCIpew0KCQkJc2V0VGltZW91dCgiZWRpdEFyZWFMb2FkZXIuc3RhcnQoJyIraWQrIicpOyIsIDUwKTsNCgkJCXJldHVybjsNCgkJfQ0KCQkNCgkJLy8gY2hlY2sgdGhhdCBhbGwgbmVlZGVkIHNjcmlwdHMgYXJlIGxvYWRlZA0KCQlmb3IoIGkgaW4gdC53YWl0aW5nX2xvYWRpbmcpew0KCQkJaWYodC53YWl0aW5nX2xvYWRpbmdbaV0hPSJsb2FkZWQiICYmIHR5cGVvZih0LndhaXRpbmdfbG9hZGluZ1tpXSkhPSJmdW5jdGlvbiIpew0KCQkJCXNldFRpbWVvdXQoImVkaXRBcmVhTG9hZGVyLnN0YXJ0KCciK2lkKyInKTsiLCA1MCk7DQoJCQkJcmV0dXJuOw0KCQkJfQ0KCQl9DQoJCQ0KCQkvLyB3YWl0IHVudGlsIGxhbmd1YWdlIGFuZCBzeW50YXggZmlsZXMgYXJlIGxvYWRlZA0KCQlpZighdC5sYW5nW2VkaXRBcmVhc1tpZF1bInNldHRpbmdzIl1bImxhbmd1YWdlIl1dIHx8IChlZGl0QXJlYXNbaWRdWyJzZXR0aW5ncyJdWyJzeW50YXgiXS5sZW5ndGg+MCAmJiAhdC5sb2FkX3N5bnRheFtlZGl0QXJlYXNbaWRdWyJzZXR0aW5ncyJdWyJzeW50YXgiXV0pICl7DQoJCQlzZXRUaW1lb3V0KCJlZGl0QXJlYUxvYWRlci5zdGFydCgnIitpZCsiJyk7IiwgNTApOw0KCQkJcmV0dXJuOw0KCQl9DQoJCS8vIGluaXQgdGhlIHJlZ2V4cCBmb3Igc3ludGF4IGhpZ2hsaWdodA0KCQlpZihlZGl0QXJlYXNbaWRdWyJzZXR0aW5ncyJdWyJzeW50YXgiXS5sZW5ndGg+MCkNCgkJCXQuaW5pdF9zeW50YXhfcmVnZXhwKCk7DQoJCQ0KCQkJDQoJCS8vIGRpc3BsYXkgdG9nZ2xlIG9wdGlvbiBhbmQgZGVidWcgYXJlYQ0KCQlpZighZC5nZXRFbGVtZW50QnlJZCgiRWRpdEFyZWFBcnJvdW5kSW5mb3NfIitpZCkgJiYgKGVkaXRBcmVhc1tpZF1bInNldHRpbmdzIl1bImRlYnVnIl0gfHwgZWRpdEFyZWFzW2lkXVsic2V0dGluZ3MiXVsiYWxsb3dfdG9nZ2xlIl0pKQ0KCQl7DQoJCQlzcGFuPSBkLmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsNCgkJCXNwYW4uaWQ9ICJFZGl0QXJlYUFycm91bmRJbmZvc18iK2lkOw0KCQkJaWYoZWRpdEFyZWFzW2lkXVsic2V0dGluZ3MiXVsiYWxsb3dfdG9nZ2xlIl0pew0KCQkJCWNoZWNrZWQ9KGVkaXRBcmVhc1tpZF1bInNldHRpbmdzIl1bImRpc3BsYXkiXT09Im9ubG9hZCIpPyJjaGVja2VkPSdjaGVja2VkJyI6IiI7DQoJCQkJaHRtbCs9IjxkaXYgaWQ9J2VkaXRfYXJlYV90b2dnbGVfIitpKyInPiI7DQoJCQkJaHRtbCs9IjxpbnB1dCBpZD0nZWRpdF9hcmVhX3RvZ2dsZV9jaGVja2JveF8iKyBpZCArIicgY2xhc3M9J3RvZ2dsZV8iKyBpZCArIicgdHlwZT0nY2hlY2tib3gnIG9uY2xpY2s9J2VkaXRBcmVhTG9hZGVyLnRvZ2dsZShcIiIrIGlkICsiXCIpOycgYWNjZXNza2V5PSdlJyAiK2NoZWNrZWQrIiAvPiI7DQoJCQkJaHRtbCs9IjxsYWJlbCBmb3I9J2VkaXRfYXJlYV90b2dnbGVfY2hlY2tib3hfIisgaWQgKyInPnskdG9nZ2xlfTwvbGFiZWw+PC9kaXY+IjsJDQoJCQl9DQoJCQlpZihlZGl0QXJlYXNbaWRdWyJzZXR0aW5ncyJdWyJkZWJ1ZyJdKQ0KCQkJCWh0bWwrPSI8dGV4dGFyZWEgaWQ9J2VkaXRfYXJlYV9kZWJ1Z18iKyBpZCArIicgc3BlbGxjaGVjaz0nb2ZmJyBzdHlsZT0nei1pbmRleDogMjA7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEyMHB4O292ZXJmbG93OiBhdXRvOyBib3JkZXI6IHNvbGlkIGJsYWNrIDFweDsnPjwvdGV4dGFyZWE+PGJyIC8+IjsJCQkJDQoJCQlodG1sPSB0LnRyYW5zbGF0ZShodG1sLCBlZGl0QXJlYXNbaWRdWyJzZXR0aW5ncyJdWyJsYW5ndWFnZSJdKTsJCQkJDQoJCQlzcGFuLmlubmVySFRNTD0gaHRtbDsJCQkJDQoJCQlmYXRoZXI9IGQuZ2V0RWxlbWVudEJ5SWQoaWQpLnBhcmVudE5vZGU7DQoJCQluZXh0PSBkLmdldEVsZW1lbnRCeUlkKGlkKS5uZXh0U2libGluZzsNCgkJCWlmKG5leHQ9PW51bGwpDQoJCQkJZmF0aGVyLmFwcGVuZENoaWxkKHNwYW4pOw0KCQkJZWxzZQ0KCQkJCWZhdGhlci5pbnNlcnRCZWZvcmUoc3BhbiwgbmV4dCk7DQoJCX0NCgkJDQoJCWlmKCFlZGl0QXJlYXNbaWRdWyJpbml0aWFsaXplZCJdKQ0KCQl7DQoJCQl0LmV4ZWNDb21tYW5kKGlkLCAiRUFfaW5pdCIpOwkvLyBpbmkgY2FsbGJhY2sNCgkJCWlmKGVkaXRBcmVhc1tpZF1bInNldHRpbmdzIl1bImRpc3BsYXkiXT09ImxhdGVyIil7DQoJCQkJZWRpdEFyZWFzW2lkXVsiaW5pdGlhbGl6ZWQiXT0gdHJ1ZTsNCgkJCQlyZXR1cm47DQoJCQl9DQoJCX0NCgkJDQoJCWlmKHQuaXNJRSl7CS8vIGxhdW5jaCBJRSBzZWxlY3Rpb24gY2hlY2t1cA0KCQkJdC5pbml0X2llX3RleHRhcmVhKGlkKTsNCgkJfQ0KCQkJCQ0KCQkvLyBnZXQgdG9vbGJhciBjb250ZW50DQoJCXZhciBhcmVhPWVkaXRBcmVhc1tpZF07DQoJCQ0KCQlmb3IoaT0wOyBpPGFyZWFbInNldHRpbmdzIl1bInRhYl90b29sYmFyIl0ubGVuZ3RoOyBpKyspew0KCQkvLwlhbGVydCh0aGlzLnRhYl90b29sYmFyW2ldKyJcbiIrIHRoaXMuZ2V0X2NvbnRyb2xfaHRtbCh0aGlzLnRhYl90b29sYmFyW2ldKSk7DQoJCQlodG1sX3Rvb2xiYXJfY29udGVudCs9IHQuZ2V0X2NvbnRyb2xfaHRtbChhcmVhWyJzZXR0aW5ncyJdWyJ0YWJfdG9vbGJhciJdW2ldLCBhcmVhWyJzZXR0aW5ncyJdWyJsYW5ndWFnZSJdKTsNCgkJfQ0KCQkvLyB0cmFuc2xhdGUgdG9vbGJhciB0ZXh0IGhlcmUgZm9yIGNocm9tZSAyDQoJCWh0bWxfdG9vbGJhcl9jb250ZW50ID0gdC50cmFuc2xhdGUoaHRtbF90b29sYmFyX2NvbnRlbnQsIGFyZWFbInNldHRpbmdzIl1bImxhbmd1YWdlIl0sICJ0ZW1wbGF0ZSIpOyANCgkJDQoJCQ0KCQkvLyBjcmVhdGUgamF2YXNjcmlwdCBpbXBvcnQgcnVsZXMgZm9yIHRoZSBpZnJhbWUgaWYgdGhlIGphdmFzY3JpcHQgaGFzIG5vdCBiZWVuIGFscmVhZHkgbG9hZGVkIGJ5IHRoZSBjb21wcmVzc29yDQoJCWlmKCF0LmlmcmFtZV9zY3JpcHQpew0KCQkJdC5pZnJhbWVfc2NyaXB0PSIiOw0KCQkJZm9yKGk9MDsgaTx0LnN1Yl9zY3JpcHRzX3RvX2xvYWQubGVuZ3RoOyBpKyspDQoJCQkJdC5pZnJhbWVfc2NyaXB0Kz0nPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IicrIHQuYmFzZVVSTCArIHQuc3ViX3NjcmlwdHNfdG9fbG9hZFtpXSArJy5qcyI+PC9zY3JpcHQ+JzsNCgkJfQ0KCQkNCgkJLy8gYWRkIHBsdWdpbnMgc2NyaXB0cyBpZiBub3QgYWxyZWFkeSBsb2FkZWQgYnkgdGhlIGNvbXByZXNzb3IgKGJ1dCBuZWVkIHRvIGxvYWQgbGFuZ3VhZ2UgaW4gYWxsIHRoZSBjYXNlKQ0KCQlmb3IoaT0wOyBpPGFyZWFbInNldHRpbmdzIl1bInBsdWdpbnMiXS5sZW5ndGg7IGkrKyl7DQoJCQkvL2lmKHR5cGVvZihhcmVhWyJzZXR0aW5ncyJdWyJwbHVnaW5zIl1baV0pPT0iZnVuY3Rpb24iKSBjb250aW51ZTsNCgkJCWlmKCF0LmFsbF9wbHVnaW5zX2xvYWRlZCkNCgkJCQl0LmlmcmFtZV9zY3JpcHQrPSc8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iJysgdC5iYXNlVVJMICsgJ3BsdWdpbnMvJyArIGFyZWFbInNldHRpbmdzIl1bInBsdWdpbnMiXVtpXSArICcvJyArIGFyZWFbInNldHRpbmdzIl1bInBsdWdpbnMiXVtpXSArJy5qcyI+PC9zY3JpcHQ+JzsNCgkJCXQuaWZyYW1lX3NjcmlwdCs9JzxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSInKyB0LmJhc2VVUkwgKyAncGx1Z2lucy8nICsgYXJlYVsic2V0dGluZ3MiXVsicGx1Z2lucyJdW2ldICsgJy9sYW5ncy8nICsgYXJlYVsic2V0dGluZ3MiXVsibGFuZ3VhZ2UiXSArJy5qcyI+PC9zY3JpcHQ+JzsNCgkJfQ0KCQ0KCQkNCgkJLy8gY3JlYXRlIGNzcyBsaW5rIGZvciB0aGUgaWZyYW1lIGlmIHRoZSB3aG9sZSBjc3MgdGV4dCBoYXMgbm90IGJlZW4gYWxyZWFkeSBsb2FkZWQgYnkgdGhlIGNvbXByZXNzb3INCgkJaWYoIXQuaWZyYW1lX2Nzcyl7DQoJCQl0LmlmcmFtZV9jc3M9IjxsaW5rIGhyZWY9JyIrIHQuYmFzZVVSTCArImVkaXRfYXJlYS5jc3MnIHJlbD0nc3R5bGVzaGVldCcgdHlwZT0ndGV4dC9jc3MnIC8+IjsNCgkJfQ0KCQkNCgkJDQoJCS8vIGNyZWF0ZSB0ZW1wbGF0ZQ0KCQl0ZW1wbGF0ZT0gdC50ZW1wbGF0ZS5yZXBsYWNlKC9cW19fQkFTRVVSTF9fXF0vZywgdC5iYXNlVVJMKTsNCgkJdGVtcGxhdGU9IHRlbXBsYXRlLnJlcGxhY2UoIltfX1RPT0xCQVJfX10iLGh0bWxfdG9vbGJhcl9jb250ZW50KTsNCgkJCQ0KCQkNCgkJLy8gZmlsbCB0ZW1wbGF0ZSB3aXRoIGdvb2QgbGFuZ3VhZ2Ugc2VudGVuY2VzDQoJCXRlbXBsYXRlPSB0LnRyYW5zbGF0ZSh0ZW1wbGF0ZSwgYXJlYVsic2V0dGluZ3MiXVsibGFuZ3VhZ2UiXSwgInRlbXBsYXRlIik7DQoJCQ0KCQkvLyBhZGQgY3NzX2NvZGUNCgkJdGVtcGxhdGU9IHRlbXBsYXRlLnJlcGxhY2UoIltfX0NTU1JVTEVTX19dIiwgdC5pZnJhbWVfY3NzKTsJCQkJDQoJCS8vIGFkZCBqc19jb2RlDQoJCXRlbXBsYXRlPSB0ZW1wbGF0ZS5yZXBsYWNlKCJbX19KU0NPREVfX10iLCB0LmlmcmFtZV9zY3JpcHQpOw0KCQkNCgkJLy8gYWRkIHZlcnNpb25fY29kZQ0KCQl0ZW1wbGF0ZT0gdGVtcGxhdGUucmVwbGFjZSgiW19fRUFfVkVSU0lPTl9fXSIsIHQudmVyc2lvbik7DQoJCS8vdGVtcGxhdGU9dGVtcGxhdGUucmVwbGFjZSgvXHtcJChbXlx9XSspXH0vZ20sIHRoaXMudHJhZHVjX3RlbXBsYXRlKTsNCgkJDQoJCS8vZWRpdEFyZWFzW2FyZWFbInNldHRpbmdzIl1bImlkIl1dWyJ0ZW1wbGF0ZSJdPSB0ZW1wbGF0ZTsNCgkJDQoJCWFyZWEudGV4dGFyZWE9ZC5nZXRFbGVtZW50QnlJZChhcmVhWyJzZXR0aW5ncyJdWyJpZCJdKTsNCgkJZWRpdEFyZWFzW2FyZWFbInNldHRpbmdzIl1bImlkIl1dWyJ0ZXh0YXJlYSJdPWFyZWEudGV4dGFyZWE7DQoJDQoJCS8vIGlmIHJlbW92aW5nIHByZXZpb3VzIGluc3RhbmNlcyBmcm9tIERPTSBiZWZvcmUgKGZpeCBmcm9tIE1hcmNpbikNCgkJaWYodHlwZW9mKHdpbmRvdy5mcmFtZXNbImZyYW1lXyIrYXJlYVsic2V0dGluZ3MiXVsiaWQiXV0pIT0ndW5kZWZpbmVkJykgDQoJCQlkZWxldGUgd2luZG93LmZyYW1lc1siZnJhbWVfIithcmVhWyJzZXR0aW5ncyJdWyJpZCJdXTsNCgkJDQoJCS8vIGluc2VydCB0ZW1wbGF0ZSBpbiB0aGUgZG9jdW1lbnQgYWZ0ZXIgdGhlIHRleHRhcmVhDQoJCWZhdGhlcj0gYXJlYS50ZXh0YXJlYS5wYXJlbnROb2RlOw0KCS8qCXZhciBjb250YWluZXI9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOw0KCQljb250YWluZXIuaWQ9ICJFZGl0QXJlYV9mcmFtZV9jb250YWluZXJfIithcmVhWyJzZXR0aW5ncyJdWyJpZCJdOw0KCSovCQ0KCQljb250ZW50PSBkLmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOw0KCQljb250ZW50Lm5hbWU9ICJmcmFtZV8iK2FyZWFbInNldHRpbmdzIl1bImlkIl07DQoJCWNvbnRlbnQuaWQ9ICJmcmFtZV8iK2FyZWFbInNldHRpbmdzIl1bImlkIl07DQoJCWNvbnRlbnQuc3R5bGUuYm9yZGVyV2lkdGg9ICIwcHgiOw0KCQlzZXRBdHRyaWJ1dGUoY29udGVudCwgImZyYW1lQm9yZGVyIiwgIjAiKTsgLy8gSUUNCgkJY29udGVudC5zdHlsZS5vdmVyZmxvdz0iaGlkZGVuIjsNCgkJY29udGVudC5zdHlsZS5kaXNwbGF5PSJub25lIjsNCg0KCQkNCgkJbmV4dD0gYXJlYS50ZXh0YXJlYS5uZXh0U2libGluZzsNCgkJaWYobmV4dD09bnVsbCkNCgkJCWZhdGhlci5hcHBlbmRDaGlsZChjb250ZW50KTsNCgkJZWxzZQ0KCQkJZmF0aGVyLmluc2VydEJlZm9yZShjb250ZW50LCBuZXh0KSA7CQkNCgkJZj13aW5kb3cuZnJhbWVzWyJmcmFtZV8iK2FyZWFbInNldHRpbmdzIl1bImlkIl1dOw0KCQlmLmRvY3VtZW50Lm9wZW4oKTsNCgkJZi5lZGl0QXJlYXM9ZWRpdEFyZWFzOw0KCQlmLmFyZWFfaWQ9IGFyZWFbInNldHRpbmdzIl1bImlkIl07CQ0KCQlmLmRvY3VtZW50LmFyZWFfaWQ9IGFyZWFbInNldHRpbmdzIl1bImlkIl07CQ0KCQlmLmRvY3VtZW50LndyaXRlKHRlbXBsYXRlKTsNCgkJZi5kb2N1bWVudC5jbG9zZSgpOw0KDQoJLy8JZnJhbWUuZWRpdEFyZWFMb2FkZXI9dGhpczsNCgkJLy9lZGl0QXJlYXNbYXJlYVsic2V0dGluZ3MiXVsiaWQiXV1bImRpc3BsYXllZCJdPXRydWU7DQoJCQ0KCX0sDQoJDQoJdG9nZ2xlIDogZnVuY3Rpb24oaWQsIHRvZ2dsZV90byl7DQoNCgkvKglpZigoZWRpdEFyZWFzW2lkXVsiZGlzcGxheWVkIl09PXRydWUgICYmIHRvZ2dsZV90byE9Im9uIikgfHwgdG9nZ2xlX3RvPT0ib2ZmIil7DQoJCQl0aGlzLnRvZ2dsZV9vZmYoaWQpOw0KCQl9ZWxzZSBpZigoZWRpdEFyZWFzW2lkXVsiZGlzcGxheWVkIl09PWZhbHNlICAmJiB0b2dnbGVfdG8hPSJvZmYiKSB8fCB0b2dnbGVfdG89PSJvbiIpew0KCQkJdGhpcy50b2dnbGVfb24oaWQpOw0KCQl9Ki8NCgkJaWYoIXRvZ2dsZV90bykNCgkJCXRvZ2dsZV90bz0gKGVkaXRBcmVhc1tpZF1bImRpc3BsYXllZCJdPT10cnVlKT8ib2ZmIjoib24iOw0KCQlpZihlZGl0QXJlYXNbaWRdWyJkaXNwbGF5ZWQiXT09dHJ1ZSAgJiYgdG9nZ2xlX3RvPT0ib2ZmIil7DQoJCQl0aGlzLnRvZ2dsZV9vZmYoaWQpOw0KCQl9ZWxzZSBpZihlZGl0QXJlYXNbaWRdWyJkaXNwbGF5ZWQiXT09ZmFsc2UgICYmIHRvZ2dsZV90bz09Im9uIil7DQoJCQl0aGlzLnRvZ2dsZV9vbihpZCk7DQoJCX0NCgkNCgkJcmV0dXJuIGZhbHNlOw0KCX0sDQoJDQoJLy8gc3RhdGljIGZ1bmN0aW9uDQoJdG9nZ2xlX29mZiA6IGZ1bmN0aW9uKGlkKXsNCgkJdmFyIGZzPXdpbmRvdy5mcmFtZXMsZix0LHBhck5vZCxueHRTaWIsc2VsU3RhcnQsc2VsRW5kLHNjcm9sbFRvcCxzY3JvbGxMZWZ0Ow0KCQlpZihmc1siZnJhbWVfIitpZF0pDQoJCXsJDQoJCQlmCT0gZnNbImZyYW1lXyIraWRdOw0KCQkJdAk9IGVkaXRBcmVhc1tpZF1bInRleHRhcmVhIl07DQoJCQlpZihmLmVkaXRBcmVhLmZ1bGxzY3JlZW5bJ2lzRnVsbCddKQ0KCQkJCWYuZWRpdEFyZWEudG9nZ2xlX2Z1bGxfc2NyZWVuKGZhbHNlKTsNCgkJCWVkaXRBcmVhc1tpZF1bImRpc3BsYXllZCJdPWZhbHNlOw0KCQkJDQoJCQkvLyBzZXQgd3JhcCB0byBvZmYgdG8ga2VlcCBzYW1lIGRpc3BsYXkgbW9kZSAoc29tZSBicm93c2VyIGdldCBwcm9ibGVtIHdpdGggdGhpcywgc28gaXQgbmVlZCBtb3JlIGNvbXBsZXggb3BlcmF0aW9uCQkNCgkJCXQud3JhcCA9ICJvZmYiOwkvLyBmb3IgSUUNCgkJCXNldEF0dHJpYnV0ZSh0LCAid3JhcCIsICJvZmYiKTsJLy8gZm9yIEZpcmVmb3gJDQoJCQlwYXJOb2QgPSB0LnBhcmVudE5vZGU7DQoJCQlueHRTaWIgPSB0Lm5leHRTaWJsaW5nOw0KCQkJcGFyTm9kLnJlbW92ZUNoaWxkKHQpOyANCgkJCXBhck5vZC5pbnNlcnRCZWZvcmUodCwgbnh0U2liKTsNCgkJCQ0KCQkJLy8gcmVzdG9yZSB2YWx1ZXMNCgkJCXQudmFsdWU9IGYuZWRpdEFyZWEudGV4dGFyZWEudmFsdWU7DQoJCQlzZWxTdGFydAk9IGYuZWRpdEFyZWEubGFzdF9zZWxlY3Rpb25bInNlbGVjdGlvblN0YXJ0Il07DQoJCQlzZWxFbmQJCT0gZi5lZGl0QXJlYS5sYXN0X3NlbGVjdGlvblsic2VsZWN0aW9uRW5kIl07DQoJCQlzY3JvbGxUb3AJPSBmLmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKS5zY3JvbGxUb3A7DQoJCQlzY3JvbGxMZWZ0CT0gZi5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0Iikuc2Nyb2xsTGVmdDsNCgkJCQ0KCQkJDQoJCQlkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZnJhbWVfIitpZCkuc3R5bGUuZGlzcGxheT0nbm9uZSc7DQoJCQ0KCQkJdC5zdHlsZS5kaXNwbGF5PSJpbmxpbmUiOw0KDQoJCQl0cnl7CS8vIElFIHdpbGwgZ2l2ZSBhbiBlcnJvciB3aGVuIHRyeWluZyB0byBmb2N1cyBhbiBpbnZpc2libGUgb3IgZGlzYWJsZWQgdGV4dGFyZWENCgkJCQl0LmZvY3VzKCk7DQoJCQl9IGNhdGNoKGUpe307DQoJCQlpZih0aGlzLmlzSUUpew0KCQkJCXQuc2VsZWN0aW9uU3RhcnQ9IHNlbFN0YXJ0Ow0KCQkJCXQuc2VsZWN0aW9uRW5kCT0gc2VsRW5kOw0KCQkJCXQuZm9jdXNlZAkJPSB0cnVlOw0KCQkJCXNldF9JRV9zZWxlY3Rpb24odCk7DQoJCQl9ZWxzZXsNCgkJCQlpZih0aGlzLmlzT3BlcmEgJiYgdGhpcy5pc09wZXJhIDwgOS42ICl7CS8vIE9wZXJhIGJ1ZyB3aGVuIG1vdmluZyBzZWxlY3Rpb24gc3RhcnQgYW5kIHNlbGVjdGlvbiBlbmQNCgkJCQkJdC5zZXRTZWxlY3Rpb25SYW5nZSgwLCAwKTsNCgkJCQl9DQoJCQkJdHJ5ew0KCQkJCQl0LnNldFNlbGVjdGlvblJhbmdlKHNlbFN0YXJ0LCBzZWxFbmQpOw0KCQkJCX0gY2F0Y2goZSkge307DQoJCQl9DQoJCQl0LnNjcm9sbFRvcD0gc2Nyb2xsVG9wOw0KCQkJdC5zY3JvbGxMZWZ0PSBzY3JvbGxMZWZ0Ow0KCQkJZi5lZGl0QXJlYS5leGVjQ29tbWFuZCgidG9nZ2xlX29mZiIpOw0KDQoJCX0NCgl9LAkNCgkNCgkvLyBzdGF0aWMgZnVuY3Rpb24NCgl0b2dnbGVfb24gOiBmdW5jdGlvbihpZCl7DQoJCXZhciBmcz13aW5kb3cuZnJhbWVzLGYsdCxzZWxTdGFydD0wLHNlbEVuZD0wLHNjcm9sbFRvcD0wLHNjcm9sbExlZnQ9MCxjdXJQb3MsZWxlbTsNCgkJCQ0KCQlpZihmc1siZnJhbWVfIitpZF0pDQoJCXsNCgkJCWYJPSBmc1siZnJhbWVfIitpZF07DQoJCQl0CT0gZWRpdEFyZWFzW2lkXVsidGV4dGFyZWEiXTsNCgkJCWFyZWE9IGYuZWRpdEFyZWE7DQoJCQlhcmVhLnRleHRhcmVhLnZhbHVlPSB0LnZhbHVlOw0KCQkJDQoJCQkvLyBzdG9yZSBkaXNwbGF5IHZhbHVlczsNCgkJCWN1clBvcwk9IGVkaXRBcmVhc1tpZF1bInNldHRpbmdzIl1bImN1cnNvcl9wb3NpdGlvbiJdOw0KDQoJCQlpZih0LnVzZV9sYXN0PT10cnVlKQ0KCQkJew0KCQkJCXNlbFN0YXJ0CT0gdC5sYXN0X3NlbGVjdGlvblN0YXJ0Ow0KCQkJCXNlbEVuZAkJPSB0Lmxhc3Rfc2VsZWN0aW9uRW5kOw0KCQkJCXNjcm9sbFRvcAk9IHQubGFzdF9zY3JvbGxUb3A7DQoJCQkJc2Nyb2xsTGVmdAk9IHQubGFzdF9zY3JvbGxMZWZ0Ow0KCQkJCXQudXNlX2xhc3Q9ZmFsc2U7DQoJCQl9DQoJCQllbHNlIGlmKCBjdXJQb3MgPT0gImF1dG8iICkNCgkJCXsNCgkJCQl0cnl7DQoJCQkJCXNlbFN0YXJ0CT0gdC5zZWxlY3Rpb25TdGFydDsNCgkJCQkJc2VsRW5kCQk9IHQuc2VsZWN0aW9uRW5kOw0KCQkJCQlzY3JvbGxUb3AJPSB0LnNjcm9sbFRvcDsNCgkJCQkJc2Nyb2xsTGVmdAk9IHQuc2Nyb2xsTGVmdDsNCgkJCQkJLy9hbGVydChzY3JvbGxUb3ApOw0KCQkJCX1jYXRjaChleCl7fQ0KCQkJfQ0KCQkJDQoJCQkvLyBzZXQgdG8gZ29vZCBzaXplDQoJCQl0aGlzLnNldF9lZGl0YXJlYV9zaXplX2Zyb21fdGV4dGFyZWEoaWQsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmcmFtZV8iK2lkKSk7DQoJCQl0LnN0eWxlLmRpc3BsYXk9Im5vbmUiOwkJCQ0KCQkJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZyYW1lXyIraWQpLnN0eWxlLmRpc3BsYXk9ImlubGluZSI7DQoJCQlhcmVhLmV4ZWNDb21tYW5kKCJmb2N1cyIpOyAvLyB3aXRob3V0IHRoaXMgZm9jdXMgb3BlcmEgZG9lc24ndCBtYW5hZ2Ugd2VsbCB0aGUgaWZyYW1lIGJvZHkgaGVpZ2h0DQoJCQkNCgkJCQ0KCQkJLy8gcmVzdG9yZSBkaXNwbGF5IHZhbHVlcw0KCQkJZWRpdEFyZWFzW2lkXVsiZGlzcGxheWVkIl09dHJ1ZTsNCgkJCWFyZWEuZXhlY0NvbW1hbmQoInVwZGF0ZV9zaXplIik7DQoJCQkNCgkJCWYuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdCIpLnNjcm9sbFRvcD0gc2Nyb2xsVG9wOw0KCQkJZi5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0Iikuc2Nyb2xsTGVmdD0gc2Nyb2xsTGVmdDsNCgkJCWFyZWEuYXJlYV9zZWxlY3Qoc2VsU3RhcnQsIHNlbEVuZC1zZWxTdGFydCk7DQoJCQlhcmVhLmV4ZWNDb21tYW5kKCJ0b2dnbGVfb24iKTsNCg0KCQkJDQoJCX0NCgkJZWxzZQ0KCQl7DQoJCS8qCWlmKHRoaXMuaXNJRSkNCgkJCQlnZXRfSUVfc2VsZWN0aW9uKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKSk7CSovCQ0KCQkJZWxlbT0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOwkNCgkJCWVsZW0ubGFzdF9zZWxlY3Rpb25TdGFydD0gZWxlbS5zZWxlY3Rpb25TdGFydDsNCgkJCWVsZW0ubGFzdF9zZWxlY3Rpb25FbmQ9IGVsZW0uc2VsZWN0aW9uRW5kOw0KCQkJZWxlbS5sYXN0X3Njcm9sbFRvcD0gZWxlbS5zY3JvbGxUb3A7DQoJCQllbGVtLmxhc3Rfc2Nyb2xsTGVmdD0gZWxlbS5zY3JvbGxMZWZ0Ow0KCQkJZWxlbS51c2VfbGFzdD10cnVlOw0KCQkJZWRpdEFyZWFMb2FkZXIuc3RhcnQoaWQpOw0KCQl9DQoJfSwJDQoJDQoJc2V0X2VkaXRhcmVhX3NpemVfZnJvbV90ZXh0YXJlYSA6IGZ1bmN0aW9uKGlkLCBmcmFtZSl7CQ0KCQl2YXIgZWxlbSx3aWR0aCxoZWlnaHQ7DQoJCWVsZW0JPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7DQoJCQ0KCQl3aWR0aAk9IE1hdGgubWF4KGVkaXRBcmVhc1tpZF1bInNldHRpbmdzIl1bIm1pbl93aWR0aCJdLCBlbGVtLm9mZnNldFdpZHRoKSsicHgiOw0KCQloZWlnaHQJPSBNYXRoLm1heChlZGl0QXJlYXNbaWRdWyJzZXR0aW5ncyJdWyJtaW5faGVpZ2h0Il0sIGVsZW0ub2Zmc2V0SGVpZ2h0KSsicHgiOw0KCQlpZihlbGVtLnN0eWxlLndpZHRoLmluZGV4T2YoIiUiKSE9LTEpDQoJCQl3aWR0aAk9IGVsZW0uc3R5bGUud2lkdGg7DQoJCWlmKGVsZW0uc3R5bGUuaGVpZ2h0LmluZGV4T2YoIiUiKSE9LTEpDQoJCQloZWlnaHQJPSBlbGVtLnN0eWxlLmhlaWdodDsNCgkJLy9hbGVydCgiaDogIitoZWlnaHQrIiB3OiAiK3dpZHRoKTsNCgkNCgkJZnJhbWUuc3R5bGUud2lkdGg9IHdpZHRoOw0KCQlmcmFtZS5zdHlsZS5oZWlnaHQ9IGhlaWdodDsNCgl9LA0KCQkNCglzZXRfYmFzZV91cmwgOiBmdW5jdGlvbigpew0KCQl2YXIgdD10aGlzLGVsZW1zLGksZG9jQmFzZVBhdGg7DQoNCgkJaWYoICF0aGlzLmJhc2VVUkwgKXsNCgkJCWVsZW1zID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3NjcmlwdCcpOw0KCQ0KCQkJZm9yKCBpPTA7IGk8ZWxlbXMubGVuZ3RoOyBpKysgKXsNCgkJCQlpZiAoZWxlbXNbaV0uc3JjICYmIGVsZW1zW2ldLnNyYy5tYXRjaCgvZWRpdF9hcmVhX1teXFxcL10qJC9pKSApIHsNCgkJCQkJdmFyIHNyYyA9IHVuZXNjYXBlKCBlbGVtc1tpXS5zcmMgKTsgLy8gdXNlIHVuZXNjYXBlIGZvciB1dGYtOCBlbmNvZGVkIHVybHMNCgkJCQkJc3JjID0gc3JjLnN1YnN0cmluZygwLCBzcmMubGFzdEluZGV4T2YoJy8nKSk7DQoJCQkJCXRoaXMuYmFzZVVSTCA9IHNyYzsNCgkJCQkJdGhpcy5maWxlX25hbWU9IGVsZW1zW2ldLnNyYy5zdWJzdHIoZWxlbXNbaV0uc3JjLmxhc3RJbmRleE9mKCIvIikrMSk7DQoJCQkJCWJyZWFrOw0KCQkJCX0NCgkJCX0NCgkJfQ0KCQkNCgkJZG9jQmFzZVBhdGgJPSBkb2N1bWVudC5sb2NhdGlvbi5ocmVmOw0KCQlpZiAoZG9jQmFzZVBhdGguaW5kZXhPZignPycpICE9IC0xKQ0KCQkJZG9jQmFzZVBhdGgJPSBkb2NCYXNlUGF0aC5zdWJzdHJpbmcoMCwgZG9jQmFzZVBhdGguaW5kZXhPZignPycpKTsNCgkJZG9jQmFzZVBhdGgJPSBkb2NCYXNlUGF0aC5zdWJzdHJpbmcoMCwgZG9jQmFzZVBhdGgubGFzdEluZGV4T2YoJy8nKSk7DQoJDQoJCS8vIElmIG5vdCBIVFRQIGFic29sdXRlDQoJCWlmICh0LmJhc2VVUkwuaW5kZXhPZignOi8vJykgPT0gLTEgJiYgdC5iYXNlVVJMLmNoYXJBdCgwKSAhPSAnLycpIHsNCgkJCS8vIElmIHNpdGUgYWJzb2x1dGUNCgkJCXQuYmFzZVVSTCA9IGRvY0Jhc2VQYXRoICsgIi8iICsgdC5iYXNlVVJMOw0KCQl9DQoJCXQuYmFzZVVSTAkrPSIvIjsJDQoJfSwNCgkNCglnZXRfYnV0dG9uX2h0bWwgOiBmdW5jdGlvbihpZCwgaW1nLCBleGVjLCBpc0ZpbGVTcGVjaWZpYywgYmFzZVVSTCkgew0KCQl2YXIgY21kLGh0bWw7DQoJCWlmKCFiYXNlVVJMKQ0KCQkJYmFzZVVSTD0gdGhpcy5iYXNlVVJMOw0KCQljbWQJPSAnZWRpdEFyZWEuZXhlY0NvbW1hbmQoXCcnICsgZXhlYyArICdcJyknOw0KCQlodG1sCT0gJzxhIGlkPSJhXycrIGlkICsnIiBocmVmPSJqYXZhc2NyaXB0OicgKyBjbWQgKyAnIiBvbmNsaWNrPSInICsgY21kICsgJztyZXR1cm4gZmFsc2U7IiBvbm1vdXNlZG93bj0icmV0dXJuIGZhbHNlOyIgdGFyZ2V0PSJfc2VsZiIgZmlsZVNwZWNpZmljPSInKyAoaXNGaWxlU3BlY2lmaWM/J3llcyc6J25vJykgKyciPic7DQoJCWh0bWwJKz0gJzxpbWcgaWQ9IicgKyBpZCArICciIHNyYz0iJysgYmFzZVVSTCArJ2ltYWdlcy8nICsgaW1nICsgJyIgdGl0bGU9InskJyArIGlkICsgJ30iIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgY2xhc3M9ImVkaXRBcmVhQnV0dG9uTm9ybWFsIiBvbm1vdXNlb3Zlcj0iZWRpdEFyZWEuc3dpdGNoQ2xhc3ModGhpcyxcJ2VkaXRBcmVhQnV0dG9uT3ZlclwnKTsiIG9ubW91c2VvdXQ9ImVkaXRBcmVhLnJlc3RvcmVDbGFzcyh0aGlzKTsiIG9ubW91c2Vkb3duPSJlZGl0QXJlYS5yZXN0b3JlQW5kU3dpdGNoQ2xhc3ModGhpcyxcJ2VkaXRBcmVhQnV0dG9uRG93blwnKTsiIC8+PC9hPic7DQoJCXJldHVybiBodG1sOw0KCX0sDQoNCglnZXRfY29udHJvbF9odG1sIDogZnVuY3Rpb24oYnV0dG9uX25hbWUsIGxhbmcpIHsJCQ0KCQl2YXIgdD10aGlzLGksYnV0LGh0bWwsc2k7DQoJCWZvciAoaT0wOyBpPHQuYWR2YW5jZWRfYnV0dG9ucy5sZW5ndGg7IGkrKykNCgkJew0KCQkJYnV0ID0gdC5hZHZhbmNlZF9idXR0b25zW2ldOwkJCQ0KCQkJaWYgKGJ1dFswXSA9PSBidXR0b25fbmFtZSkNCgkJCXsNCgkJCQlyZXR1cm4gdC5nZXRfYnV0dG9uX2h0bWwoYnV0WzBdLCBidXRbMV0sIGJ1dFsyXSwgYnV0WzNdKTsNCgkJCX0JDQoJCX0JCQ0KCQkJCQ0KCQlzd2l0Y2ggKGJ1dHRvbl9uYW1lKXsNCgkJCWNhc2UgIioiOg0KCQkJY2FzZSAicmV0dXJuIjoNCgkJCQlyZXR1cm4gIjxiciAvPiI7DQoJCQljYXNlICJ8IjoNCgkJICAJY2FzZSAic2VwYXJhdG9yIjoNCgkJCQlyZXR1cm4gJzxpbWcgc3JjPSInKyB0LmJhc2VVUkwgKydpbWFnZXMvc3BhY2VyLmdpZiIgd2lkdGg9IjEiIGhlaWdodD0iMTUiIGNsYXNzPSJlZGl0QXJlYVNlcGFyYXRvckxpbmUiPic7DQoJCQljYXNlICJzZWxlY3RfZm9udCI6DQoJCQkJaHRtbD0gIjxzZWxlY3QgaWQ9J2FyZWFfZm9udF9zaXplJyBvbmNoYW5nZT0namF2YXNjcmlwdDplZGl0QXJlYS5leGVjQ29tbWFuZChcImNoYW5nZV9mb250X3NpemVcIiknIGZpbGVTcGVjaWZpYz0neWVzJz4iOw0KCQkJCWh0bWwrPSI8b3B0aW9uIHZhbHVlPSctMSc+eyRmb250X3NpemV9PC9vcHRpb24+IjsNCgkJCQlzaT1bOCw5LDEwLDExLDEyLDE0XTsNCgkJCQlmb3IoIGk9MDtpPHNpLmxlbmd0aDtpKyspew0KCQkJCQlodG1sKz0iPG9wdGlvbiB2YWx1ZT0nIitzaVtpXSsiJz4iK3NpW2ldKyIgcHQ8L29wdGlvbj4iOw0KCQkJCX0NCgkJCQlodG1sKz0iPC9zZWxlY3Q+IjsNCgkJCQlyZXR1cm4gaHRtbDsNCgkJCWNhc2UgInN5bnRheF9zZWxlY3Rpb24iOg0KCQkJCWh0bWw9ICI8c2VsZWN0IGlkPSdzeW50YXhfc2VsZWN0aW9uJyBvbmNoYW5nZT0namF2YXNjcmlwdDplZGl0QXJlYS5leGVjQ29tbWFuZChcImNoYW5nZV9zeW50YXhcIiwgdGhpcy52YWx1ZSknIGZpbGVTcGVjaWZpYz0neWVzJz4iOw0KCQkJCWh0bWwrPSI8b3B0aW9uIHZhbHVlPSctMSc+eyRzeW50YXhfc2VsZWN0aW9ufTwvb3B0aW9uPiI7DQoJCQkJaHRtbCs9Ijwvc2VsZWN0PiI7DQoJCQkJcmV0dXJuIGh0bWw7DQoJCX0NCgkJDQoJCXJldHVybiAiPHNwYW4gaWQ9J3RtcF90b29sXyIrYnV0dG9uX25hbWUrIic+WyIrYnV0dG9uX25hbWUrIl08L3NwYW4+IjsJCQ0KCX0sDQoJDQoJDQoJZ2V0X3RlbXBsYXRlIDogZnVuY3Rpb24oKXsNCgkJaWYodGhpcy50ZW1wbGF0ZT09IiIpDQoJCXsNCgkJCXZhciB4aHJfb2JqZWN0ID0gbnVsbDsgDQoJCQlpZih3aW5kb3cuWE1MSHR0cFJlcXVlc3QpIC8vIEZpcmVmb3ggDQoJCQkJeGhyX29iamVjdCA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOyANCgkJCWVsc2UgaWYod2luZG93LkFjdGl2ZVhPYmplY3QpIC8vIEludGVybmV0IEV4cGxvcmVyIA0KCQkJCXhocl9vYmplY3QgPSBuZXcgQWN0aXZlWE9iamVjdCgiTWljcm9zb2Z0LlhNTEhUVFAiKTsgDQoJCQllbHNlIHsgLy8gWE1MSHR0cFJlcXVlc3Qgbm90IHN1cHBvcnRlZA0KCQkJCWFsZXJ0KCJYTUxIVFRQUmVxdWVzdCBub3Qgc3VwcG9ydGVkLiBFZGl0QXJlYSBub3QgbG9hZGVkIik7IA0KCQkJCXJldHVybjsgDQoJCQl9IA0KCQkJIA0KCQkJeGhyX29iamVjdC5vcGVuKCJHRVQiLCB0aGlzLmJhc2VVUkwrInRlbXBsYXRlLmh0bWwiLCBmYWxzZSk7IA0KCQkJeGhyX29iamVjdC5zZW5kKG51bGwpOyANCgkJCWlmKHhocl9vYmplY3QucmVhZHlTdGF0ZSA9PSA0KSANCgkJCQl0aGlzLnRlbXBsYXRlPXhocl9vYmplY3QucmVzcG9uc2VUZXh0Ow0KCQkJZWxzZQ0KCQkJCXRoaXMuaGFzX2Vycm9yKCk7DQoJCX0NCgl9LA0KCQ0KCS8vIHRyYW5zbGF0ZSB0ZXh0DQoJdHJhbnNsYXRlIDogZnVuY3Rpb24odGV4dCwgbGFuZywgbW9kZSl7DQoJCWlmKG1vZGU9PSJ3b3JkIikNCgkJCXRleHQ9ZWRpdEFyZWFMb2FkZXIuZ2V0X3dvcmRfdHJhbnNsYXRpb24odGV4dCwgbGFuZyk7DQoJCWVsc2UgaWYobW9kZT0idGVtcGxhdGUiKXsNCgkJCWVkaXRBcmVhTG9hZGVyLmN1cnJlbnRfbGFuZ3VhZ2U9IGxhbmc7DQoJCQl0ZXh0PXRleHQucmVwbGFjZSgvXHtcJChbXlx9XSspXH0vZ20sIGVkaXRBcmVhTG9hZGVyLnRyYW5zbGF0ZV90ZW1wbGF0ZSk7DQoJCX0NCgkJcmV0dXJuIHRleHQ7DQoJfSwNCgkNCgl0cmFuc2xhdGVfdGVtcGxhdGUgOiBmdW5jdGlvbigpew0KCQlyZXR1cm4gZWRpdEFyZWFMb2FkZXIuZ2V0X3dvcmRfdHJhbnNsYXRpb24oRWRpdEFyZWFMb2FkZXIucHJvdG90eXBlLnRyYW5zbGF0ZV90ZW1wbGF0ZS5hcmd1bWVudHNbMV0sIGVkaXRBcmVhTG9hZGVyLmN1cnJlbnRfbGFuZ3VhZ2UpOw0KCX0sDQoJDQoJZ2V0X3dvcmRfdHJhbnNsYXRpb24gOiBmdW5jdGlvbih2YWwsIGxhbmcpew0KCQl2YXIgaTsNCgkJDQoJCWZvciggaSBpbiBlZGl0QXJlYUxvYWRlci5sYW5nW2xhbmddKXsNCgkJCWlmKGkgPT0gdmFsKQ0KCQkJCXJldHVybiBlZGl0QXJlYUxvYWRlci5sYW5nW2xhbmddW2ldOw0KCQl9DQoJCXJldHVybiAiXyIrdmFsOw0KCX0sDQoJDQoJbG9hZF9zY3JpcHQgOiBmdW5jdGlvbih1cmwpew0KCQl2YXIgdD10aGlzLGQ9ZG9jdW1lbnQsc2NyaXB0LGhlYWQ7DQoJCQ0KCQlpZiggdC5sb2FkZWRGaWxlc1t1cmxdICkNCgkJCXJldHVybjsJDQoJCS8vYWxlcnQoImxvYWQ6ICIrdXJsKTsNCgkJdHJ5ew0KCQkJc2NyaXB0PSBkLmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpOw0KCQkJc2NyaXB0LnR5cGU9ICJ0ZXh0L2phdmFzY3JpcHQiOw0KCQkJc2NyaXB0LnNyYz0gdXJsOw0KCQkJc2NyaXB0LmNoYXJzZXQ9ICJVVEYtOCI7DQoJCQlkLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF0uYXBwZW5kQ2hpbGQoc2NyaXB0KTsNCgkJfWNhdGNoKGUpew0KCQkJZC53cml0ZSgnPHNjJysncmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IicgKyB1cmwgKyAnIiBjaGFyc2V0PSJVVEYtOCI+PC9zYycrJ3JpcHQ+Jyk7DQoJCX0NCgkJDQoJCXQubG9hZGVkRmlsZXNbdXJsXSA9IHRydWU7DQoJfSwNCgkNCglhZGRfZXZlbnQgOiBmdW5jdGlvbihvYmosIG5hbWUsIGhhbmRsZXIpIHsNCgkJdHJ5ew0KCQkJaWYgKG9iai5hdHRhY2hFdmVudCkgew0KCQkJCW9iai5hdHRhY2hFdmVudCgib24iICsgbmFtZSwgaGFuZGxlcik7DQoJCQl9IGVsc2V7DQoJCQkJb2JqLmFkZEV2ZW50TGlzdGVuZXIobmFtZSwgaGFuZGxlciwgZmFsc2UpOw0KCQkJfQ0KCQl9Y2F0Y2goZSl7fQ0KCX0sDQoJDQoJcmVtb3ZlX2V2ZW50IDogZnVuY3Rpb24ob2JqLCBuYW1lLCBoYW5kbGVyKXsNCgkJdHJ5ew0KCQkJaWYgKG9iai5kZXRhY2hFdmVudCkNCgkJCQlvYmouZGV0YWNoRXZlbnQoIm9uIiArIG5hbWUsIGhhbmRsZXIpOw0KCQkJZWxzZQ0KCQkJCW9iai5yZW1vdmVFdmVudExpc3RlbmVyKG5hbWUsIGhhbmRsZXIsIGZhbHNlKTsNCgkJfWNhdGNoKGUpe30NCgl9LA0KDQoNCgkvLyByZXNldCBhbGwgdGhlIGVkaXRhcmVhcyBpbiB0aGUgZm9ybSB0aGF0IGhhdmUgYmVlbiByZXNldGVkDQoJcmVzZXQgOiBmdW5jdGlvbihlKXsNCgkJdmFyIGZvcm1PYmosaXNfY2hpbGQsaSx4Ow0KCQkNCgkJZm9ybU9iaiA9IGVkaXRBcmVhTG9hZGVyLmlzSUUgPyB3aW5kb3cuZXZlbnQuc3JjRWxlbWVudCA6IGUudGFyZ2V0Ow0KCQlpZihmb3JtT2JqLnRhZ05hbWUhPSdGT1JNJykNCgkJCWZvcm1PYmo9IGZvcm1PYmouZm9ybTsNCgkJDQoJCWZvciggaSBpbiBlZGl0QXJlYXMgKXsJCQkNCgkJCWlzX2NoaWxkPSBmYWxzZTsNCgkJCWZvciggeD0wO3g8Zm9ybU9iai5lbGVtZW50cy5sZW5ndGg7eCsrICkgew0KCQkJCWlmKGZvcm1PYmouZWxlbWVudHNbeF0uaWQgPT0gaSkNCgkJCQkJaXNfY2hpbGQ9dHJ1ZTsNCgkJCX0NCgkJCQ0KCQkJaWYod2luZG93LmZyYW1lc1siZnJhbWVfIitpXSAmJiBpc19jaGlsZCAmJiBlZGl0QXJlYXNbaV1bImRpc3BsYXllZCJdPT10cnVlKXsNCgkJCQ0KCQkJCXZhciBleGVjPSAnd2luZG93LmZyYW1lc1siZnJhbWVfJysgaSArJyJdLmVkaXRBcmVhLnRleHRhcmVhLnZhbHVlPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiJysgaSArJyIpLnZhbHVlOyc7DQoJCQkJZXhlYys9ICd3aW5kb3cuZnJhbWVzWyJmcmFtZV8nKyBpICsnIl0uZWRpdEFyZWEuZXhlY0NvbW1hbmQoImZvY3VzIik7JzsNCgkJCQlleGVjKz0gJ3dpbmRvdy5mcmFtZXNbImZyYW1lXycrIGkgKyciXS5lZGl0QXJlYS5jaGVja19saW5lX3NlbGVjdGlvbigpOyc7DQoJCQkJZXhlYys9ICd3aW5kb3cuZnJhbWVzWyJmcmFtZV8nKyBpICsnIl0uZWRpdEFyZWEuZXhlY0NvbW1hbmQoInJlc2V0Iik7JzsNCgkJCQl3aW5kb3cuc2V0VGltZW91dChleGVjLCAxMCk7DQoJCQl9DQoJCX0JCQ0KCQlyZXR1cm47DQoJfSwNCgkNCgkNCgkvLyBwcmVwYXJlIGFsbCB0aGUgdGV4dGFyZWEgcmVwbGFjZWQgYnkgYW4gZWRpdGFyZWEgdG8gYmUgc3VibWl0ZWQNCglzdWJtaXQgOiBmdW5jdGlvbihlKXsJCQ0KCQl2YXIgZm9ybU9iaixpc19jaGlsZCxmcz13aW5kb3cuZnJhbWVzLGkseDsNCgkJZm9ybU9iaiA9IGVkaXRBcmVhTG9hZGVyLmlzSUUgPyB3aW5kb3cuZXZlbnQuc3JjRWxlbWVudCA6IGUudGFyZ2V0Ow0KCQlpZihmb3JtT2JqLnRhZ05hbWUhPSdGT1JNJykNCgkJCWZvcm1PYmo9IGZvcm1PYmouZm9ybTsNCgkJDQoJCWZvciggaSBpbiBlZGl0QXJlYXMpew0KCQkJaXNfY2hpbGQ9IGZhbHNlOw0KCQkJZm9yKCB4PTA7eDxmb3JtT2JqLmVsZW1lbnRzLmxlbmd0aDt4KysgKSB7DQoJCQkJaWYoZm9ybU9iai5lbGVtZW50c1t4XS5pZCA9PSBpKQ0KCQkJCQlpc19jaGlsZD10cnVlOw0KCQkJfQ0KCQkNCgkJCWlmKGlzX2NoaWxkKQ0KCQkJew0KCQkJCWlmKGZzWyJmcmFtZV8iK2ldICYmIGVkaXRBcmVhc1tpXVsiZGlzcGxheWVkIl09PXRydWUpDQoJCQkJCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGkpLnZhbHVlPSBmc1siZnJhbWVfIisgaV0uZWRpdEFyZWEudGV4dGFyZWEudmFsdWU7DQoJCQkJZWRpdEFyZWFMb2FkZXIuZXhlY0NvbW1hbmQoaSwiRUFfc3VibWl0Iik7DQoJCQl9DQoJCX0JCQkJDQoJCWlmKCB0eXBlb2YoZm9ybU9iai5lZGl0X2FyZWFfcmVwbGFjZWRfc3VibWl0KSA9PSAiZnVuY3Rpb24iICl7DQoJCQlyZXM9IGZvcm1PYmouZWRpdF9hcmVhX3JlcGxhY2VkX3N1Ym1pdCgpOw0KCQkJaWYocmVzPT1mYWxzZSl7DQoJCQkJaWYoZWRpdEFyZWFMb2FkZXIuaXNJRSkNCgkJCQkJcmV0dXJuIGZhbHNlOw0KCQkJCWVsc2UNCgkJCQkJZS5wcmV2ZW50RGVmYXVsdCgpOw0KCQkJfQ0KCQl9DQoJCXJldHVybjsNCgl9LA0KCQ0KCS8vIGFsbG93IHRvIGdldCB0aGUgdmFsdWUgb2YgdGhlIGVkaXRhcmVhDQoJZ2V0VmFsdWUgOiBmdW5jdGlvbihpZCl7DQogICAgICAgIGlmKHdpbmRvdy5mcmFtZXNbImZyYW1lXyIraWRdICYmIGVkaXRBcmVhc1tpZF1bImRpc3BsYXllZCJdPT10cnVlKXsNCiAgICAgICAgICAgIHJldHVybiB3aW5kb3cuZnJhbWVzWyJmcmFtZV8iKyBpZF0uZWRpdEFyZWEudGV4dGFyZWEudmFsdWU7ICAgICAgIA0KICAgICAgICB9ZWxzZSBpZihlbGVtPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKSl7DQogICAgICAgIAlyZXR1cm4gZWxlbS52YWx1ZTsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgfSwNCiAgICANCiAgICAvLyBhbGxvdyB0byBzZXQgdGhlIHZhbHVlIG9mIHRoZSBlZGl0YXJlYQ0KICAgIHNldFZhbHVlIDogZnVuY3Rpb24oaWQsIG5ld192YWwpew0KICAgIAl2YXIgZnM9d2luZG93LmZyYW1lczsNCiAgICAJDQogICAgICAgIGlmKCAoIGY9ZnNbImZyYW1lXyIraWRdICkgJiYgZWRpdEFyZWFzW2lkXVsiZGlzcGxheWVkIl09PXRydWUpew0KCQkJZi5lZGl0QXJlYS50ZXh0YXJlYS52YWx1ZT0gbmV3X3ZhbDsgICAgIA0KCQkJZi5lZGl0QXJlYS5leGVjQ29tbWFuZCgiZm9jdXMiKTsgDQoJCQlmLmVkaXRBcmVhLmNoZWNrX2xpbmVfc2VsZWN0aW9uKGZhbHNlKTsgIA0KCQkJZi5lZGl0QXJlYS5leGVjQ29tbWFuZCgib25jaGFuZ2UiKTsNCiAgICAgICAgfWVsc2UgaWYoZWxlbT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkpew0KICAgICAgICAJZWxlbS52YWx1ZT0gbmV3X3ZhbDsNCiAgICAgICAgfQ0KICAgIH0sDQoJICAgIA0KICAgIC8vIGFsbG93IHRvIGdldCBpbmZvcyBvbiB0aGUgc2VsZWN0aW9uOiBhcnJheShzdGFydCwgZW5kKQ0KICAgIGdldFNlbGVjdGlvblJhbmdlIDogZnVuY3Rpb24oaWQpew0KICAgIAl2YXIgc2VsLGVBLGZzPXdpbmRvdy5mcmFtZXM7DQogICAgCQ0KICAgIAlzZWw9IHsic3RhcnQiOiAwLCAiZW5kIjogMH07DQogICAgICAgIGlmKGZzWyJmcmFtZV8iK2lkXSAmJiBlZGl0QXJlYXNbaWRdWyJkaXNwbGF5ZWQiXT09dHJ1ZSl7DQogICAgICAgIAllQT0gZnNbImZyYW1lXyIrIGlkXS5lZGl0QXJlYTsNCg0KCQkJc2VsWyJzdGFydCJdCT0gZUEudGV4dGFyZWEuc2VsZWN0aW9uU3RhcnQ7DQoJCQlzZWxbImVuZCJdCQk9IGVBLnRleHRhcmVhLnNlbGVjdGlvbkVuZDsNCgkJDQogICAgICAgIH1lbHNlIGlmKCBlbGVtPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKSApew0KICAgICAgICAJc2VsPSBnZXRTZWxlY3Rpb25SYW5nZShlbGVtKTsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2VsOw0KICAgIH0sDQogICAgDQogICAgLy8gYWxsb3cgdG8gc2V0IHRoZSBzZWxlY3Rpb24gd2l0aCB0aGUgZ2l2ZW4gc3RhcnQgYW5kIGVuZCBwb3NpdGlvbnMNCiAgICBzZXRTZWxlY3Rpb25SYW5nZSA6IGZ1bmN0aW9uKGlkLCBuZXdfc3RhcnQsIG5ld19lbmQpew0KICAgIAl2YXIgZnM9d2luZG93LmZyYW1lczsNCiAgICAJDQogICAgICAgIGlmKGZzWyJmcmFtZV8iK2lkXSAmJiBlZGl0QXJlYXNbaWRdWyJkaXNwbGF5ZWQiXT09dHJ1ZSl7DQogICAgICAgICAgICBmc1siZnJhbWVfIisgaWRdLmVkaXRBcmVhLmFyZWFfc2VsZWN0KG5ld19zdGFydCwgbmV3X2VuZC1uZXdfc3RhcnQpOyAgDQoJCQkvLyBtYWtlIGFuIGF1dG8tc2Nyb2xsIHRvIHRoZSBzZWxlY3Rpb24NCgkJCWlmKCF0aGlzLmlzSUUpew0KCQkJCWZzWyJmcmFtZV8iKyBpZF0uZWRpdEFyZWEuY2hlY2tfbGluZV9zZWxlY3Rpb24oZmFsc2UpOyANCgkJCQlmc1siZnJhbWVfIisgaWRdLmVkaXRBcmVhLnNjcm9sbF90b192aWV3KCk7DQoJCQl9ICAgDQogICAgICAgIH1lbHNlIGlmKGVsZW09ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpKXsNCiAgICAgICAgCXNldFNlbGVjdGlvblJhbmdlKGVsZW0sIG5ld19zdGFydCwgbmV3X2VuZCk7DQogICAgICAgIH0NCiAgICB9LA0KICAgIA0KICAgIGdldFNlbGVjdGVkVGV4dCA6IGZ1bmN0aW9uKGlkKXsNCiAgICAJdmFyIHNlbD0gdGhpcy5nZXRTZWxlY3Rpb25SYW5nZShpZCk7DQogICAgCQ0KICAgICAgICByZXR1cm4gdGhpcy5nZXRWYWx1ZShpZCkuc3Vic3RyaW5nKHNlbFsic3RhcnQiXSwgc2VsWyJlbmQiXSk7DQogICAgfSwNCgkNCglzZXRTZWxlY3RlZFRleHQgOiBmdW5jdGlvbihpZCwgbmV3X3ZhbCl7DQoJCXZhciBmcz13aW5kb3cuZnJhbWVzLGQ9ZG9jdW1lbnQsc2VsLHRleHQsc2Nyb2xsVG9wLHNjcm9sbExlZnQsbmV3X3NlbF9lbmQ7DQoJCQ0KCQluZXdfdmFsCT0gbmV3X3ZhbC5yZXBsYWNlKC9cci9nLCAiIik7IA0KCQlzZWwJCT0gdGhpcy5nZXRTZWxlY3Rpb25SYW5nZShpZCk7DQoJCXRleHQJPSB0aGlzLmdldFZhbHVlKGlkKTsNCgkJaWYoZnNbImZyYW1lXyIraWRdICYmIGVkaXRBcmVhc1tpZF1bImRpc3BsYXllZCJdPT10cnVlKXsNCgkJCXNjcm9sbFRvcAk9IGZzWyJmcmFtZV8iKyBpZF0uZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdCIpLnNjcm9sbFRvcDsNCgkJCXNjcm9sbExlZnQJPSBmc1siZnJhbWVfIisgaWRdLmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKS5zY3JvbGxMZWZ0Ow0KCQl9ZWxzZXsNCgkJCXNjcm9sbFRvcAk9IGQuZ2V0RWxlbWVudEJ5SWQoaWQpLnNjcm9sbFRvcDsNCgkJCXNjcm9sbExlZnQJPSBkLmdldEVsZW1lbnRCeUlkKGlkKS5zY3JvbGxMZWZ0Ow0KCQl9DQoJCQ0KCQl0ZXh0CT0gdGV4dC5zdWJzdHJpbmcoMCwgc2VsWyJzdGFydCJdKSsgbmV3X3ZhbCArdGV4dC5zdWJzdHJpbmcoc2VsWyJlbmQiXSk7DQoJCXRoaXMuc2V0VmFsdWUoaWQsIHRleHQpOw0KCQluZXdfc2VsX2VuZAk9IHNlbFsic3RhcnQiXSsgbmV3X3ZhbC5sZW5ndGg7DQoJCXRoaXMuc2V0U2VsZWN0aW9uUmFuZ2UoaWQsIHNlbFsic3RhcnQiXSwgbmV3X3NlbF9lbmQpOw0KCQkNCgkJDQoJCS8vIGZpeCBcciBwcm9ibGVtIGZvciBzZWxlY3Rpb24gbGVuZ3RoIGNvdW50IG9uIElFICYgT3BlcmENCgkJaWYobmV3X3ZhbCAhPSB0aGlzLmdldFNlbGVjdGVkVGV4dChpZCkucmVwbGFjZSgvXHIvZywgIiIpKXsNCgkJCXRoaXMuc2V0U2VsZWN0aW9uUmFuZ2UoaWQsIHNlbFsic3RhcnQiXSwgbmV3X3NlbF9lbmQrIG5ld192YWwuc3BsaXQoIlxuIikubGVuZ3RoIC0xKTsNCgkJfQ0KCQkvLyByZXN0b3JlIHNjcm9sbGluZyBwb3NpdGlvbg0KCQlpZihmc1siZnJhbWVfIitpZF0gJiYgZWRpdEFyZWFzW2lkXVsiZGlzcGxheWVkIl09PXRydWUpew0KCQkJZnNbImZyYW1lXyIrIGlkXS5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0Iikuc2Nyb2xsVG9wPSBzY3JvbGxUb3A7DQoJCQlmc1siZnJhbWVfIisgaWRdLmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKS5zY3JvbGxMZWZ0PSBzY3JvbGxMZWZ0Ow0KCQkJZnNbImZyYW1lXyIrIGlkXS5lZGl0QXJlYS5leGVjQ29tbWFuZCgib25jaGFuZ2UiKTsNCgkJfWVsc2V7DQoJCQlkLmdldEVsZW1lbnRCeUlkKGlkKS5zY3JvbGxUb3A9IHNjcm9sbFRvcDsNCgkJCWQuZ2V0RWxlbWVudEJ5SWQoaWQpLnNjcm9sbExlZnQ9IHNjcm9sbExlZnQ7DQoJCX0NCiAgICB9LA0KICAgIA0KICAgIGluc2VydFRhZ3MgOiBmdW5jdGlvbihpZCwgb3Blbl90YWcsIGNsb3NlX3RhZyl7DQogICAgCXZhciBvbGRfc2VsLG5ld19zZWw7DQogICAgCQ0KICAgIAlvbGRfc2VsCT0gdGhpcy5nZXRTZWxlY3Rpb25SYW5nZShpZCk7DQogICAgCXRleHQJPSBvcGVuX3RhZyArIHRoaXMuZ2V0U2VsZWN0ZWRUZXh0KGlkKSArIGNsb3NlX3RhZzsNCiAgICAJIA0KCQllZGl0QXJlYUxvYWRlci5zZXRTZWxlY3RlZFRleHQoaWQsIHRleHQpOw0KCQkNCiAgICAJbmV3X3NlbAk9IHRoaXMuZ2V0U2VsZWN0aW9uUmFuZ2UoaWQpOw0KICAgIAlpZihvbGRfc2VsWyJlbmQiXSA+IG9sZF9zZWxbInN0YXJ0Il0pCS8vIGlmIHRleHQgd2FzIHNlbGVjdGVkLCBjdXJzb3IgYXQgdGhlIGVuZA0KICAgIAkJdGhpcy5zZXRTZWxlY3Rpb25SYW5nZShpZCwgbmV3X3NlbFsiZW5kIl0sIG5ld19zZWxbImVuZCJdKTsNCiAgICAJZWxzZSAvLyBjdXJzb3IgaW4gdGhlIG1pZGRsZQ0KICAgIAkJdGhpcy5zZXRTZWxlY3Rpb25SYW5nZShpZCwgb2xkX3NlbFsic3RhcnQiXStvcGVuX3RhZy5sZW5ndGgsIG9sZF9zZWxbInN0YXJ0Il0rb3Blbl90YWcubGVuZ3RoKTsNCiAgICB9LA0KICAgIA0KICAgIC8vIGhpZGUgYm90aCBFZGl0QXJlYSBhbmQgbm9ybWFsIHRleHRhcmVhDQoJaGlkZSA6IGZ1bmN0aW9uKGlkKXsNCgkJdmFyIGZzPSB3aW5kb3cuZnJhbWVzLGQ9ZG9jdW1lbnQsdD10aGlzLHNjcm9sbFRvcCxzY3JvbGxMZWZ0LHNwYW47DQoJCWlmKGQuZ2V0RWxlbWVudEJ5SWQoaWQpICYmICF0LmhpZGRlbltpZF0pDQoJCXsNCgkJCXQuaGlkZGVuW2lkXT0ge307DQoJCQl0LmhpZGRlbltpZF1bInNlbGVjdGlvblJhbmdlIl09IHQuZ2V0U2VsZWN0aW9uUmFuZ2UoaWQpOw0KCQkJaWYoZC5nZXRFbGVtZW50QnlJZChpZCkuc3R5bGUuZGlzcGxheSE9Im5vbmUiKQ0KCQkJew0KCQkJCXQuaGlkZGVuW2lkXVsic2Nyb2xsVG9wIl09IGQuZ2V0RWxlbWVudEJ5SWQoaWQpLnNjcm9sbFRvcDsNCgkJCQl0LmhpZGRlbltpZF1bInNjcm9sbExlZnQiXT0gZC5nZXRFbGVtZW50QnlJZChpZCkuc2Nyb2xsTGVmdDsNCgkJCX0NCgkJCQkJDQoJCQlpZihmc1siZnJhbWVfIitpZF0pDQoJCQl7DQoJCQkJdC5oaWRkZW5baWRdWyJ0b2dnbGUiXT0gZWRpdEFyZWFzW2lkXVsiZGlzcGxheWVkIl07DQoJCQkJDQoJCQkJaWYoZnNbImZyYW1lXyIraWRdICYmIGVkaXRBcmVhc1tpZF1bImRpc3BsYXllZCJdPT10cnVlKXsNCgkJCQkJc2Nyb2xsVG9wCT0gZnNbImZyYW1lXyIrIGlkXS5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0Iikuc2Nyb2xsVG9wOw0KCQkJCQlzY3JvbGxMZWZ0CT0gZnNbImZyYW1lXyIrIGlkXS5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0Iikuc2Nyb2xsTGVmdDsNCgkJCQl9ZWxzZXsNCgkJCQkJc2Nyb2xsVG9wCT0gZC5nZXRFbGVtZW50QnlJZChpZCkuc2Nyb2xsVG9wOw0KCQkJCQlzY3JvbGxMZWZ0CT0gZC5nZXRFbGVtZW50QnlJZChpZCkuc2Nyb2xsTGVmdDsNCgkJCQl9DQoJCQkJdC5oaWRkZW5baWRdWyJzY3JvbGxUb3AiXT0gc2Nyb2xsVG9wOw0KCQkJCXQuaGlkZGVuW2lkXVsic2Nyb2xsTGVmdCJdPSBzY3JvbGxMZWZ0Ow0KCQkJCQ0KCQkJCWlmKGVkaXRBcmVhc1tpZF1bImRpc3BsYXllZCJdPT10cnVlKQ0KCQkJCQllZGl0QXJlYUxvYWRlci50b2dnbGVfb2ZmKGlkKTsNCgkJCX0NCgkJCQ0KCQkJLy8gaGlkZSB0b2dnbGUgYnV0dG9uIGFuZCBkZWJ1ZyBib3gNCgkJCXNwYW49IGQuZ2V0RWxlbWVudEJ5SWQoIkVkaXRBcmVhQXJyb3VuZEluZm9zXyIraWQpOw0KCQkJaWYoc3Bhbil7DQoJCQkJc3Bhbi5zdHlsZS5kaXNwbGF5PSdub25lJzsNCgkJCX0NCgkJCQ0KCQkJLy8gaGlkZSB0ZXh0YXJlYQ0KCQkJZC5nZXRFbGVtZW50QnlJZChpZCkuc3R5bGUuZGlzcGxheT0gIm5vbmUiOw0KCQl9DQoJfSwNCgkNCgkvLyByZXN0b3JlIGhpZGRlbiBFZGl0QXJlYSBhbmQgbm9ybWFsIHRleHRhcmVhDQoJc2hvdyA6IGZ1bmN0aW9uKGlkKXsNCgkJdmFyIGZzPSB3aW5kb3cuZnJhbWVzLGQ9ZG9jdW1lbnQsdD10aGlzLHNwYW47DQoJCWlmKChlbGVtPWQuZ2V0RWxlbWVudEJ5SWQoaWQpKSAmJiB0LmhpZGRlbltpZF0pDQoJCXsNCgkJCWVsZW0uc3R5bGUuZGlzcGxheT0gImlubGluZSI7DQoJCQllbGVtLnNjcm9sbFRvcD0gdC5oaWRkZW5baWRdWyJzY3JvbGxUb3AiXTsNCgkJCWVsZW0uc2Nyb2xsTGVmdD0gdC5oaWRkZW5baWRdWyJzY3JvbGxMZWZ0Il07DQoJCQlzcGFuPSBkLmdldEVsZW1lbnRCeUlkKCJFZGl0QXJlYUFycm91bmRJbmZvc18iK2lkKTsNCgkJCWlmKHNwYW4pew0KCQkJCXNwYW4uc3R5bGUuZGlzcGxheT0naW5saW5lJzsNCgkJCX0NCgkJCQ0KCQkJaWYoZnNbImZyYW1lXyIraWRdKQ0KCQkJew0KCQkJCQkJCQkNCgkJCQkvLyByZXN0b3JlIHRvZ2dsZSBidXR0b24gYW5kIGRlYnVnIGJveA0KCQkJDQoJCQkJDQoJCQkJLy8gcmVzdG9yZSB0ZXh0YXJlYQ0KCQkJCWVsZW0uc3R5bGUuZGlzcGxheT0gImlubGluZSI7DQoJCQkJDQoJCQkJLy8gcmVzdG9yZSBFZGl0QXJlYQ0KCQkJCWlmKHQuaGlkZGVuW2lkXVsidG9nZ2xlIl09PXRydWUpDQoJCQkJCWVkaXRBcmVhTG9hZGVyLnRvZ2dsZV9vbihpZCk7DQoJCQkJDQoJCQkJc2Nyb2xsVG9wCT0gdC5oaWRkZW5baWRdWyJzY3JvbGxUb3AiXTsNCgkJCQlzY3JvbGxMZWZ0CT0gdC5oaWRkZW5baWRdWyJzY3JvbGxMZWZ0Il07DQoJCQkJDQoJCQkJaWYoZnNbImZyYW1lXyIraWRdICYmIGVkaXRBcmVhc1tpZF1bImRpc3BsYXllZCJdPT10cnVlKXsNCgkJCQkJZnNbImZyYW1lXyIrIGlkXS5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0Iikuc2Nyb2xsVG9wCT0gc2Nyb2xsVG9wOw0KCQkJCQlmc1siZnJhbWVfIisgaWRdLmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKS5zY3JvbGxMZWZ0CT0gc2Nyb2xsTGVmdDsNCgkJCQl9ZWxzZXsNCgkJCQkJZWxlbS5zY3JvbGxUb3AJPSBzY3JvbGxUb3A7DQoJCQkJCWVsZW0uc2Nyb2xsTGVmdAk9IHNjcm9sbExlZnQ7DQoJCQkJfQ0KCQkJDQoJCQl9DQoJCQkvLyByZXN0b3JlIHNlbGVjdGlvbg0KCQkJc2VsCT0gdC5oaWRkZW5baWRdWyJzZWxlY3Rpb25SYW5nZSJdOw0KCQkJdC5zZXRTZWxlY3Rpb25SYW5nZShpZCwgc2VsWyJzdGFydCJdLCBzZWxbImVuZCJdKTsNCgkJCWRlbGV0ZSB0LmhpZGRlbltpZF07CQ0KCQl9DQoJfSwNCgkNCgkvLyBnZXQgdGhlIGN1cnJlbnQgZmlsZSBkYXRhcyAoZm9yIG11bHRpIGZpbGUgZWRpdGluZyBtb2RlKQ0KCWdldEN1cnJlbnRGaWxlIDogZnVuY3Rpb24oaWQpew0KCQlyZXR1cm4gdGhpcy5leGVjQ29tbWFuZChpZCwgJ2dldF9maWxlJywgdGhpcy5leGVjQ29tbWFuZChpZCwgJ2N1cnJfZmlsZScpKTsNCgl9LA0KCQ0KCS8vIGdldCB0aGUgZ2l2ZW4gZmlsZSBkYXRhcyAoZm9yIG11bHRpIGZpbGUgZWRpdGluZyBtb2RlKQ0KCWdldEZpbGUgOiBmdW5jdGlvbihpZCwgZmlsZV9pZCl7DQoJCXJldHVybiB0aGlzLmV4ZWNDb21tYW5kKGlkLCAnZ2V0X2ZpbGUnLCBmaWxlX2lkKTsNCgl9LA0KCQ0KCS8vIGdldCBhbGwgdGhlIG9wZW5uZWQgZmlsZXMgZGF0YXMgKGZvciBtdWx0aSBmaWxlIGVkaXRpbmcgbW9kZSkNCglnZXRBbGxGaWxlcyA6IGZ1bmN0aW9uKGlkKXsNCgkJcmV0dXJuIHRoaXMuZXhlY0NvbW1hbmQoaWQsICdnZXRfYWxsX2ZpbGVzKCknKTsNCgl9LA0KCQ0KCS8vIG9wZW4gYSBmaWxlIChmb3IgbXVsdGkgZmlsZSBlZGl0aW5nIG1vZGUpDQoJb3BlbkZpbGUgOiBmdW5jdGlvbihpZCwgZmlsZV9pbmZvcyl7DQoJCXJldHVybiB0aGlzLmV4ZWNDb21tYW5kKGlkLCAnb3Blbl9maWxlJywgZmlsZV9pbmZvcyk7DQoJfSwNCgkNCgkvLyBjbG9zZSB0aGUgZ2l2ZW4gZmlsZSAoZm9yIG11bHRpIGZpbGUgZWRpdGluZyBtb2RlKQ0KCWNsb3NlRmlsZSA6IGZ1bmN0aW9uKGlkLCBmaWxlX2lkKXsNCgkJcmV0dXJuIHRoaXMuZXhlY0NvbW1hbmQoaWQsICdjbG9zZV9maWxlJywgZmlsZV9pZCk7DQoJfSwNCgkNCgkvLyBjbG9zZSB0aGUgZ2l2ZW4gZmlsZSAoZm9yIG11bHRpIGZpbGUgZWRpdGluZyBtb2RlKQ0KCXNldEZpbGVFZGl0ZWRNb2RlIDogZnVuY3Rpb24oaWQsIGZpbGVfaWQsIHRvKXsNCgkJdmFyIHJlZzEscmVnMjsNCgkJcmVnMQk9IG5ldyBSZWdFeHAoJ1xcXFwnLCAnZycpOw0KCQlyZWcyCT0gbmV3IFJlZ0V4cCgnIicsICdnJyk7DQoJCXJldHVybiB0aGlzLmV4ZWNDb21tYW5kKGlkLCAnc2V0X2ZpbGVfZWRpdGVkX21vZGUoIicrIGZpbGVfaWQucmVwbGFjZShyZWcxLCAnXFxcXCcpLnJlcGxhY2UocmVnMiwgJ1xcIicpICsnIiwgJysgdG8gKycpJyk7DQoJfSwNCgkNCgkNCgkvLyBhbGxvdyB0byBhY2Nlc3MgdG8gZWRpdGFyZWEgZnVuY3Rpb25zIGFuZCBkYXRhcyAoZm9yIGFkdmFuY2VkIHVzZXJzIG9ubHkpDQoJZXhlY0NvbW1hbmQgOiBmdW5jdGlvbihpZCwgY21kLCBmY3RfcGFyYW0pew0KCQlzd2l0Y2goY21kKXsNCgkJCWNhc2UgIkVBX2luaXQiOg0KCQkJCWlmKGVkaXRBcmVhc1tpZF1bJ3NldHRpbmdzJ11bIkVBX2luaXRfY2FsbGJhY2siXS5sZW5ndGg+MCkNCgkJCQkJZXZhbChlZGl0QXJlYXNbaWRdWydzZXR0aW5ncyddWyJFQV9pbml0X2NhbGxiYWNrIl0rIignIisgaWQgKyInKTsiKTsNCgkJCQlicmVhazsNCgkJCWNhc2UgIkVBX2RlbGV0ZSI6DQoJCQkJaWYoZWRpdEFyZWFzW2lkXVsnc2V0dGluZ3MnXVsiRUFfZGVsZXRlX2NhbGxiYWNrIl0ubGVuZ3RoPjApDQoJCQkJCWV2YWwoZWRpdEFyZWFzW2lkXVsnc2V0dGluZ3MnXVsiRUFfZGVsZXRlX2NhbGxiYWNrIl0rIignIisgaWQgKyInKTsiKTsNCgkJCQlicmVhazsNCgkJCWNhc2UgIkVBX3N1Ym1pdCI6DQoJCQkJaWYoZWRpdEFyZWFzW2lkXVsnc2V0dGluZ3MnXVsic3VibWl0X2NhbGxiYWNrIl0ubGVuZ3RoPjApDQoJCQkJCWV2YWwoZWRpdEFyZWFzW2lkXVsnc2V0dGluZ3MnXVsic3VibWl0X2NhbGxiYWNrIl0rIignIisgaWQgKyInKTsiKTsNCgkJCQlicmVhazsNCgkJfQ0KICAgICAgICBpZih3aW5kb3cuZnJhbWVzWyJmcmFtZV8iK2lkXSAmJiB3aW5kb3cuZnJhbWVzWyJmcmFtZV8iKyBpZF0uZWRpdEFyZWEpew0KCQkJaWYoZmN0X3BhcmFtIT11bmRlZmluZWQpDQoJCQkJcmV0dXJuIGV2YWwoJ3dpbmRvdy5mcmFtZXNbImZyYW1lXycrIGlkICsnIl0uZWRpdEFyZWEuJysgY21kICsnKGZjdF9wYXJhbSk7Jyk7DQoJCQllbHNlDQoJCQkJcmV0dXJuIGV2YWwoJ3dpbmRvdy5mcmFtZXNbImZyYW1lXycrIGlkICsnIl0uZWRpdEFyZWEuJysgY21kICsnOycpOyAgICAgICANCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgfQ0KfTsNCgkNCgl2YXIgZWRpdEFyZWFMb2FkZXI9IG5ldyBFZGl0QXJlYUxvYWRlcigpOw0KCXZhciBlZGl0QXJlYXM9IHt9Ow0KDQo=]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/elements_functions.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoqKioNCiAqIFRoaXMgcGFnZSBjb250YWlucyBzb21lIGdlbmVyYWwgdXNlZnVsbCBmdW5jdGlvbnMgZm9yIGphdmFzY3JpcHQNCiAqDQogKioqKi8gIA0KCQ0KCQ0KCS8vIG5lZWQgdG8gcmVkZWZpbmUgdGhpcyBmdW5jdGlvbmR1ZSB0byBJRSBwcm9ibGVtDQoJZnVuY3Rpb24gZ2V0QXR0cmlidXRlKCBlbG0sIGFOYW1lICkgew0KCQl2YXIgYVZhbHVlLHRhTmFtZSxpOw0KCQl0cnl7DQoJCQlhVmFsdWUgPSBlbG0uZ2V0QXR0cmlidXRlKCBhTmFtZSApOw0KCQl9Y2F0Y2goZXhlcHQpe30NCgkJDQoJCWlmKCAhIGFWYWx1ZSApew0KCQkJZm9yKCBpID0gMDsgaSA8IGVsbS5hdHRyaWJ1dGVzLmxlbmd0aDsgaSArKyApIHsNCgkJCQl0YU5hbWUgPSBlbG0uYXR0cmlidXRlc1tpXSAubmFtZS50b0xvd2VyQ2FzZSgpOw0KCQkJCWlmKCB0YU5hbWUgPT0gYU5hbWUgKSB7DQoJCQkJCWFWYWx1ZSA9IGVsbS5hdHRyaWJ1dGVzW2ldIC52YWx1ZTsNCgkJCQkJcmV0dXJuIGFWYWx1ZTsNCgkJCQl9DQoJCQl9DQoJCX0NCgkJcmV0dXJuIGFWYWx1ZTsNCgl9Ow0KCQ0KCS8vIG5lZWQgdG8gcmVkZWZpbmUgdGhpcyBmdW5jdGlvbiBkdWUgdG8gSUUgcHJvYmxlbQ0KCWZ1bmN0aW9uIHNldEF0dHJpYnV0ZSggZWxtLCBhdHRyLCB2YWwgKSB7DQoJCWlmKGF0dHI9PSJjbGFzcyIpew0KCQkJZWxtLnNldEF0dHJpYnV0ZSgiY2xhc3NOYW1lIiwgdmFsKTsNCgkJCWVsbS5zZXRBdHRyaWJ1dGUoImNsYXNzIiwgdmFsKTsNCgkJfWVsc2V7DQoJCQllbG0uc2V0QXR0cmlidXRlKGF0dHIsIHZhbCk7DQoJCX0NCgl9Ow0KCQ0KCS8qIHJldHVybiBhIGNoaWxkIGVsZW1lbnQNCgkJZWxlbTogZWxlbWVudCB3ZSBhcmUgc2VhcmNoaW5nIGluDQoJCWVsZW1fdHlwZTogdHlwZSBvZiB0aGUgZWxlZW1udCB3ZSBhcmUgc2VhcmNoaW5nIChESVYsIEEsIGV0Yy4uLikNCgkJZWxlbV9hdHRyaWJ1dGU6IGF0dHJpYnV0ZSBvZiB0aGUgc2VhcmNoZWQgZWxlbWVudCB0aGF0IG11c3QgbWF0Y2gNCgkJZWxlbV9hdHRyaWJ1dGVfbWF0Y2g6IHZhbHVlIHRoYXQgZWxlbV9hdHRyaWJ1dGUgbXVzdCBtYXRjaA0KCQlvcHRpb246ICJhbGwiIGlmIG11c3QgcmV0dXJuIGFuIGFycmF5IG9mIGFsbCBjaGlsZHJlbiwgb3RoZXJ3aXNlIHJldHVybiB0aGUgZmlyc3QgbWF0Y2ggZWxlbWVudA0KCQlkZXB0aDogZGVwdGggb2Ygc2VhcmNoICgtMSBvciBubyBzZXQgPT4gdW5saW1pdGVkKQ0KCSovDQoJZnVuY3Rpb24gZ2V0Q2hpbGRyZW4oZWxlbSwgZWxlbV90eXBlLCBlbGVtX2F0dHJpYnV0ZSwgZWxlbV9hdHRyaWJ1dGVfbWF0Y2gsIG9wdGlvbiwgZGVwdGgpDQoJeyAgICAgICAgICAgDQoJCWlmKCFvcHRpb24pDQoJCQl2YXIgb3B0aW9uPSJzaW5nbGUiOw0KCQlpZighZGVwdGgpDQoJCQl2YXIgZGVwdGg9LTE7DQoJCWlmKGVsZW0pew0KCQkJdmFyIGNoaWxkcmVuPSBlbGVtLmNoaWxkTm9kZXM7DQoJCQl2YXIgcmVzdWx0PW51bGw7DQoJCQl2YXIgcmVzdWx0cz0gW107DQoJCQlmb3IgKHZhciB4PTA7eDxjaGlsZHJlbi5sZW5ndGg7eCsrKSB7DQoJCQkJc3RyVGFnTmFtZSA9IG5ldyBTdHJpbmcoY2hpbGRyZW5beF0udGFnTmFtZSk7DQoJCQkJY2hpbGRyZW5fY2xhc3M9Ij8iOw0KCQkJCWlmKHN0clRhZ05hbWUhPSAidW5kZWZpbmVkIil7DQoJCQkJCWNoaWxkX2F0dHJpYnV0ZT0gZ2V0QXR0cmlidXRlKGNoaWxkcmVuW3hdLGVsZW1fYXR0cmlidXRlKTsNCgkJCQkJaWYoKHN0clRhZ05hbWUudG9Mb3dlckNhc2UoKT09ZWxlbV90eXBlLnRvTG93ZXJDYXNlKCkgfHwgZWxlbV90eXBlPT0iIikgJiYgKGVsZW1fYXR0cmlidXRlPT0iIiB8fCBjaGlsZF9hdHRyaWJ1dGU9PWVsZW1fYXR0cmlidXRlX21hdGNoKSl7DQoJCQkJCQlpZihvcHRpb249PSJhbGwiKXsNCgkJCQkJCQlyZXN1bHRzLnB1c2goY2hpbGRyZW5beF0pOw0KCQkJCQkJfWVsc2V7DQoJCQkJCQkJcmV0dXJuIGNoaWxkcmVuW3hdOw0KCQkJCQkJfQ0KCQkJCQl9DQoJCQkJCWlmKGRlcHRoIT0wKXsNCgkJCQkJCXJlc3VsdD1nZXRDaGlsZHJlbihjaGlsZHJlblt4XSwgZWxlbV90eXBlLCBlbGVtX2F0dHJpYnV0ZSwgZWxlbV9hdHRyaWJ1dGVfbWF0Y2gsIG9wdGlvbiwgZGVwdGgtMSk7DQoJCQkJCQlpZihvcHRpb249PSJhbGwiKXsNCgkJCQkJCQlpZihyZXN1bHQubGVuZ3RoPjApew0KCQkJCQkJCQlyZXN1bHRzPSByZXN1bHRzLmNvbmNhdChyZXN1bHQpOw0KCQkJCQkJCX0NCgkJCQkJCX1lbHNlIGlmKHJlc3VsdCE9bnVsbCl7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCgkJCQkJCQlyZXR1cm4gcmVzdWx0Ow0KCQkJCQkJfQ0KCQkJCQl9DQoJCQkJfQ0KCQkJfQ0KCQkJaWYob3B0aW9uPT0iYWxsIikNCgkJCSAgIHJldHVybiByZXN1bHRzOw0KCQl9DQoJCXJldHVybiBudWxsOw0KCX07ICAgICAgIA0KCQ0KCWZ1bmN0aW9uIGlzQ2hpbGRPZihlbGVtLCBwYXJlbnQpew0KCQlpZihlbGVtKXsNCgkJCWlmKGVsZW09PXBhcmVudCkNCgkJCQlyZXR1cm4gdHJ1ZTsNCgkJCXdoaWxlKGVsZW0ucGFyZW50Tm9kZSAhPSAndW5kZWZpbmVkJyl7DQoJCQkJcmV0dXJuIGlzQ2hpbGRPZihlbGVtLnBhcmVudE5vZGUsIHBhcmVudCk7DQoJCQl9DQoJCX0NCgkJcmV0dXJuIGZhbHNlOw0KCX07DQoJDQoJZnVuY3Rpb24gZ2V0TW91c2VYKGUpew0KDQoJCWlmKGUhPW51bGwgJiYgdHlwZW9mKGUucGFnZVgpIT0idW5kZWZpbmVkIil7DQoJCQlyZXR1cm4gZS5wYWdlWDsNCgkJfWVsc2V7DQoJCQlyZXR1cm4gKGUhPW51bGw/ZS54OmV2ZW50LngpKyBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsTGVmdDsNCgkJfQ0KCX07DQoJDQoJZnVuY3Rpb24gZ2V0TW91c2VZKGUpew0KCQlpZihlIT1udWxsICYmIHR5cGVvZihlLnBhZ2VZKSE9InVuZGVmaW5lZCIpew0KCQkJcmV0dXJuIGUucGFnZVk7DQoJCX1lbHNlew0KCQkJcmV0dXJuIChlIT1udWxsP2UueTpldmVudC55KSsgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcDsNCgkJfQ0KCX07DQoJDQoJZnVuY3Rpb24gY2FsY3VsZU9mZnNldExlZnQocil7DQoJCXJldHVybiBjYWxjdWxlT2Zmc2V0KHIsIm9mZnNldExlZnQiKQ0KCX07DQoJDQoJZnVuY3Rpb24gY2FsY3VsZU9mZnNldFRvcChyKXsNCgkJcmV0dXJuIGNhbGN1bGVPZmZzZXQociwib2Zmc2V0VG9wIikNCgl9Ow0KCQ0KCWZ1bmN0aW9uIGNhbGN1bGVPZmZzZXQoZWxlbWVudCxhdHRyKXsNCgkJdmFyIG9mZnNldD0wOw0KCQl3aGlsZShlbGVtZW50KXsNCgkJCW9mZnNldCs9ZWxlbWVudFthdHRyXTsNCgkJCWVsZW1lbnQ9ZWxlbWVudC5vZmZzZXRQYXJlbnQNCgkJfQ0KCQlyZXR1cm4gb2Zmc2V0Ow0KCX07DQoJDQoJLyoqIHJldHVybiB0aGUgY29tcHV0ZWQgc3R5bGUNCgkgKglAcGFyYW06IGVsZW06IHRoZSByZWZlcmVuY2UgdG8gdGhlIGVsZW1lbnQNCgkgKglAcGFyYW06IHByb3A6IHRoZSBuYW1lIG9mIHRoZSBjc3MgcHJvcGVydHkJIA0KCSAqLw0KCWZ1bmN0aW9uIGdldF9jc3NfcHJvcGVydHkoZWxlbSwgcHJvcCkNCgl7DQoJCWlmKGRvY3VtZW50LmRlZmF1bHRWaWV3KQ0KCQl7DQoJCQlyZXR1cm4gZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtLCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKHByb3ApOw0KCQl9DQoJCWVsc2UgaWYoZWxlbS5jdXJyZW50U3R5bGUpDQoJCXsNCgkJCXZhciBwcm9wID0gcHJvcC5yZXBsYWNlKC8tXEQvZ2ksIGZ1bmN0aW9uKHNNYXRjaCkNCgkJCXsNCgkJCQlyZXR1cm4gc01hdGNoLmNoYXJBdChzTWF0Y2gubGVuZ3RoIC0gMSkudG9VcHBlckNhc2UoKTsNCgkJCX0pOw0KCQkJcmV0dXJuIGVsZW0uY3VycmVudFN0eWxlW3Byb3BdOw0KCQl9DQoJCWVsc2UgcmV0dXJuIG51bGw7DQoJfQ0KCQ0KLyoqKioNCiAqIE1vdmluZyBhbiBlbGVtZW50IA0KICoqKi8gIA0KCQ0KCXZhciBfbUNFOwkvLyBjdXJyZW50bHkgbW92aW5nIGVsZW1lbnQNCgkNCgkvKiBhbGxvdyB0byBtb3ZlIGFuIGVsZW1lbnQgaW4gYSB3aW5kb3cNCgkJZTogdGhlIGV2ZW50DQoJCWlkOiB0aGUgaWQgb2YgdGhlIGVsZW1lbnQNCgkJZnJhbWU6IHRoZSBmcmFtZSBvZiB0aGUgZWxlbWVudCANCgkJZXggb2YgdXNlOg0KCQkJaW4gaHRtbDoJPGltZyBpZD0nbW92ZV9hcmVhX3NlYXJjaF9yZXBsYWNlJyBvbm1vdXNlZG93bj0ncmV0dXJuIHBhcmVudC5zdGFydF9tb3ZlX2VsZW1lbnQoZXZlbnQsImFyZWFfc2VhcmNoX3JlcGxhY2UiLCBwYXJlbnQuZnJhbWVzWyJ0aGlzX2ZyYW1lX2lkIl0pOycgLi4uLz4gIA0KCQlvcg0KCQkJaW4gamF2YXNjcmlwdDogZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm15X2RpdiIpLm9ubW91c2Vkb3duPSBzdGFydF9tb3ZlX2VsZW1lbnQNCgkqLw0KCWZ1bmN0aW9uIHN0YXJ0X21vdmVfZWxlbWVudChlLCBpZCwgZnJhbWUpew0KCQl2YXIgZWxlbV9pZD0oZS50YXJnZXQgfHwgZS5zcmNFbGVtZW50KS5pZDsNCgkJaWYoaWQpDQoJCQllbGVtX2lkPWlkOwkJDQoJCWlmKCFmcmFtZSkNCgkJCWZyYW1lPXdpbmRvdzsNCgkJaWYoZnJhbWUuZXZlbnQpDQoJCQllPWZyYW1lLmV2ZW50Ow0KCQkJDQoJCV9tQ0U9IGZyYW1lLmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1faWQpOw0KCQlfbUNFLmZyYW1lPWZyYW1lOw0KCQlmcmFtZS5kb2N1bWVudC5vbm1vdXNlbW92ZT0gbW92ZV9lbGVtZW50Ow0KCQlmcmFtZS5kb2N1bWVudC5vbm1vdXNldXA9IGVuZF9tb3ZlX2VsZW1lbnQ7DQoJCS8qX21DRS5vbm1vdXNlbW92ZT0gbW92ZV9lbGVtZW50Ow0KCQlfbUNFLm9ubW91c2V1cD0gZW5kX21vdmVfZWxlbWVudDsqLw0KCQkNCgkJLy9hbGVydChfbUNFLmZyYW1lLmRvY3VtZW50LmJvZHkub2Zmc2V0SGVpZ2h0KTsNCgkJDQoJCW1vdXNlX3g9IGdldE1vdXNlWChlKTsNCgkJbW91c2VfeT0gZ2V0TW91c2VZKGUpOw0KCQkvL3dpbmRvdy5zdGF0dXM9ZnJhbWUrICIgZWxlbTogIitlbGVtX2lkKyIgZWxlbTogIisgX21DRSArICIgbW91c2VfeDogIittb3VzZV94Ow0KCQlfbUNFLnN0YXJ0X3Bvc194ID0gbW91c2VfeCAtIChfbUNFLnN0eWxlLmxlZnQucmVwbGFjZSgicHgiLCIiKSB8fCBjYWxjdWxlT2Zmc2V0TGVmdChfbUNFKSk7DQoJCV9tQ0Uuc3RhcnRfcG9zX3kgPSBtb3VzZV95IC0gKF9tQ0Uuc3R5bGUudG9wLnJlcGxhY2UoInB4IiwiIikgfHwgY2FsY3VsZU9mZnNldFRvcChfbUNFKSk7DQoJCXJldHVybiBmYWxzZTsNCgl9Ow0KCQ0KCWZ1bmN0aW9uIGVuZF9tb3ZlX2VsZW1lbnQoZSl7DQoJCV9tQ0UuZnJhbWUuZG9jdW1lbnQub25tb3VzZW1vdmU9ICIiOw0KCQlfbUNFLmZyYW1lLmRvY3VtZW50Lm9ubW91c2V1cD0gIiI7CQkNCgkJX21DRT1udWxsOw0KCX07DQoJDQoJZnVuY3Rpb24gbW92ZV9lbGVtZW50KGUpew0KCQl2YXIgbmV3VG9wLG5ld0xlZnQsbWF4TGVmdDsNCg0KCQlpZiggX21DRS5mcmFtZSAmJiBfbUNFLmZyYW1lLmV2ZW50ICkNCgkJCWU9X21DRS5mcmFtZS5ldmVudDsNCgkJbmV3VG9wCT0gZ2V0TW91c2VZKGUpIC0gX21DRS5zdGFydF9wb3NfeTsNCgkJbmV3TGVmdAk9IGdldE1vdXNlWChlKSAtIF9tQ0Uuc3RhcnRfcG9zX3g7DQoJCQ0KCQltYXhMZWZ0CT0gX21DRS5mcmFtZS5kb2N1bWVudC5ib2R5Lm9mZnNldFdpZHRoLSBfbUNFLm9mZnNldFdpZHRoOw0KCQltYXhfdG9wCT0gX21DRS5mcmFtZS5kb2N1bWVudC5ib2R5Lm9mZnNldEhlaWdodC0gX21DRS5vZmZzZXRIZWlnaHQ7DQoJCW5ld1RvcAk9IE1hdGgubWluKE1hdGgubWF4KDAsIG5ld1RvcCksIG1heF90b3ApOw0KCQluZXdMZWZ0CT0gTWF0aC5taW4oTWF0aC5tYXgoMCwgbmV3TGVmdCksIG1heExlZnQpOw0KCQkNCgkJX21DRS5zdHlsZS50b3AJPSBuZXdUb3ArInB4IjsNCgkJX21DRS5zdHlsZS5sZWZ0CT0gbmV3TGVmdCsicHgiOwkJDQoJCXJldHVybiBmYWxzZTsNCgl9Ow0KCQ0KLyoqKg0KICogTWFuYWdpbmcgYSB0ZXh0YXJlYSAodGhpcyBwYXJ0IG5lZWQgdGhlIG5hdmlnYXRvciBpbmZvcyBmcm9tIGVkaXRBcmVhTG9hZGVyDQogKioqLyANCgkNCgl2YXIgbmF2PSBlZGl0QXJlYUxvYWRlci5uYXY7DQoJDQoJLy8gYWxsb3cgdG8gZ2V0IGluZm9zIG9uIHRoZSBzZWxlY3Rpb246IGFycmF5KHN0YXJ0LCBlbmQpDQoJZnVuY3Rpb24gZ2V0U2VsZWN0aW9uUmFuZ2UodGV4dGFyZWEpew0KCQlyZXR1cm4geyJzdGFydCI6IHRleHRhcmVhLnNlbGVjdGlvblN0YXJ0LCAiZW5kIjogdGV4dGFyZWEuc2VsZWN0aW9uRW5kfTsNCgl9Ow0KCQ0KCS8vIGFsbG93IHRvIHNldCB0aGUgc2VsZWN0aW9uDQoJZnVuY3Rpb24gc2V0U2VsZWN0aW9uUmFuZ2UodCwgc3RhcnQsIGVuZCl7DQoJCXQuZm9jdXMoKTsNCgkJDQoJCXN0YXJ0CT0gTWF0aC5tYXgoMCwgTWF0aC5taW4odC52YWx1ZS5sZW5ndGgsIHN0YXJ0KSk7DQoJCWVuZAkJPSBNYXRoLm1heChzdGFydCwgTWF0aC5taW4odC52YWx1ZS5sZW5ndGgsIGVuZCkpOw0KCQ0KCQlpZiggbmF2LmlzT3BlcmEgJiYgbmF2LmlzT3BlcmEgPCA5LjYgKXsJLy8gT3BlcmEgYnVnIHdoZW4gbW92aW5nIHNlbGVjdGlvbiBzdGFydCBhbmQgc2VsZWN0aW9uIGVuZA0KCQkJdC5zZWxlY3Rpb25FbmQgPSAxOwkNCgkJCXQuc2VsZWN0aW9uU3RhcnQgPSAwOwkJCQ0KCQkJdC5zZWxlY3Rpb25FbmQgPSAxOwkNCgkJCXQuc2VsZWN0aW9uU3RhcnQgPSAwOwkJDQoJCX0NCgkJdC5zZWxlY3Rpb25TdGFydAk9IHN0YXJ0Ow0KCQl0LnNlbGVjdGlvbkVuZAkJPSBlbmQ7CQkNCgkJLy90ZXh0YXJlYS5zZXRTZWxlY3Rpb25SYW5nZShzdGFydCwgZW5kKTsNCgkJDQoJCWlmKG5hdi5pc0lFKQ0KCQkJc2V0X0lFX3NlbGVjdGlvbih0KTsNCgl9Ow0KDQoJDQoJLy8gc2V0IElFIHBvc2l0aW9uIGluIEZpcmVmb3ggbW9kZSAodGV4dGFyZWEuc2VsZWN0aW9uU3RhcnQgYW5kIHRleHRhcmVhLnNlbGVjdGlvbkVuZCkuIHNob3VsZCB3b3JrIGFzIGEgcmVwZWF0ZWQgdGFzaw0KCWZ1bmN0aW9uIGdldF9JRV9zZWxlY3Rpb24odCl7DQoJCXZhciBkPWRvY3VtZW50LGRpdixyYW5nZSxzdG9yZWRfcmFuZ2UsZWxlbSxzY3JvbGxUb3AscmVsYXRpdmVfdG9wLGxpbmVfc3RhcnQsbGluZV9uYixyYW5nZV9zdGFydCxyYW5nZV9lbmQsdGFiOw0KCQlpZih0ICYmIHQuZm9jdXNlZCkNCgkJewkNCgkJCWlmKCF0LmVhX2xpbmVfaGVpZ2h0KQ0KCQkJewkvLyBjYWxjdWxhdGUgdGhlIGxpbmVIZWlnaHQNCgkJCQlkaXY9IGQuY3JlYXRlRWxlbWVudCgiZGl2Iik7DQoJCQkJZGl2LnN0eWxlLmZvbnRGYW1pbHk9IGdldF9jc3NfcHJvcGVydHkodCwgImZvbnQtZmFtaWx5Iik7DQoJCQkJZGl2LnN0eWxlLmZvbnRTaXplPSBnZXRfY3NzX3Byb3BlcnR5KHQsICJmb250LXNpemUiKTsNCgkJCQlkaXYuc3R5bGUudmlzaWJpbGl0eT0gImhpZGRlbiI7CQkJDQoJCQkJZGl2LmlubmVySFRNTD0iMCI7DQoJCQkJZC5ib2R5LmFwcGVuZENoaWxkKGRpdik7DQoJCQkJdC5lYV9saW5lX2hlaWdodD0gZGl2Lm9mZnNldEhlaWdodDsNCgkJCQlkLmJvZHkucmVtb3ZlQ2hpbGQoZGl2KTsNCgkJCX0NCgkJCS8vdC5mb2N1cygpOw0KCQkJcmFuZ2UgPSBkLnNlbGVjdGlvbi5jcmVhdGVSYW5nZSgpOw0KCQkJdHJ5DQoJCQl7DQoJCQkJc3RvcmVkX3JhbmdlID0gcmFuZ2UuZHVwbGljYXRlKCk7DQoJCQkJc3RvcmVkX3JhbmdlLm1vdmVUb0VsZW1lbnRUZXh0KCB0ICk7DQoJCQkJc3RvcmVkX3JhbmdlLnNldEVuZFBvaW50KCAnRW5kVG9FbmQnLCByYW5nZSApOw0KCQkJCWlmKHN0b3JlZF9yYW5nZS5wYXJlbnRFbGVtZW50KCkgPT0gdCl7DQoJCQkJCS8vIHRoZSByYW5nZSBkb24ndCB0YWtlIGNhcmUgb2YgZW1wdHkgbGluZXMgaW4gdGhlIGVuZCBvZiB0aGUgc2VsZWN0aW9uDQoJCQkJCWVsZW0JCT0gdDsNCgkJCQkJc2Nyb2xsVG9wCT0gMDsNCgkJCQkJd2hpbGUoZWxlbS5wYXJlbnROb2RlKXsNCgkJCQkJCXNjcm9sbFRvcCs9IGVsZW0uc2Nyb2xsVG9wOw0KCQkJCQkJZWxlbQk9IGVsZW0ucGFyZW50Tm9kZTsNCgkJCQkJfQ0KCQkJCQ0KCQkJCS8vCXZhciBzY3JvbGxUb3A9IHQuc2Nyb2xsVG9wICsgZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A7DQoJCQkJCQ0KCQkJCS8vCXZhciByZWxhdGl2ZV90b3A9IHJhbmdlLm9mZnNldFRvcCAtIGNhbGN1bGVPZmZzZXRUb3AodCkgKyBzY3JvbGxUb3A7DQoJCQkJCXJlbGF0aXZlX3RvcD0gcmFuZ2Uub2Zmc2V0VG9wIC0gY2FsY3VsZU9mZnNldFRvcCh0KSsgc2Nyb2xsVG9wOw0KCQkJCS8vCWFsZXJ0KCJyYW5nZW9mZnNldDogIisgcmFuZ2Uub2Zmc2V0VG9wICsiXG5jYWxjb2Zmc2V0VG9wOiAiKyBjYWxjdWxlT2Zmc2V0VG9wKHQpICsiXG5yZWxhdGl2ZVRvcDogIisgcmVsYXRpdmVfdG9wKTsNCgkJCQkJbGluZV9zdGFydAk9IE1hdGgucm91bmQoKHJlbGF0aXZlX3RvcCAvIHQuZWFfbGluZV9oZWlnaHQpICsxKTsNCgkJCQkJDQoJCQkJCWxpbmVfbmIJCT0gTWF0aC5yb3VuZChyYW5nZS5ib3VuZGluZ0hlaWdodCAvIHQuZWFfbGluZV9oZWlnaHQpOw0KCQkJCQkNCgkJCQkJcmFuZ2Vfc3RhcnQJPSBzdG9yZWRfcmFuZ2UudGV4dC5sZW5ndGggLSByYW5nZS50ZXh0Lmxlbmd0aDsNCgkJCQkJdGFiCT0gdC52YWx1ZS5zdWJzdHIoMCwgcmFuZ2Vfc3RhcnQpLnNwbGl0KCJcbiIpOwkJCQ0KCQkJCQlyYW5nZV9zdGFydAkrPSAobGluZV9zdGFydCAtIHRhYi5sZW5ndGgpKjI7CQkvLyBhZGQgbWlzc2luZyBlbXB0eSBsaW5lcyB0byB0aGUgc2VsZWN0aW9uDQoJCQkJCXQuc2VsZWN0aW9uU3RhcnQgPSByYW5nZV9zdGFydDsNCgkJCQkJDQoJCQkJCXJhbmdlX2VuZAk9IHQuc2VsZWN0aW9uU3RhcnQgKyByYW5nZS50ZXh0Lmxlbmd0aDsNCgkJCQkJdGFiCT0gdC52YWx1ZS5zdWJzdHIoMCwgcmFuZ2Vfc3RhcnQgKyByYW5nZS50ZXh0Lmxlbmd0aCkuc3BsaXQoIlxuIik7CQkJDQoJCQkJCXJhbmdlX2VuZAkrPSAobGluZV9zdGFydCArIGxpbmVfbmIgLSAxIC0gdGFiLmxlbmd0aCkqMjsNCgkJCQkJdC5zZWxlY3Rpb25FbmQgPSByYW5nZV9lbmQ7DQoJCQkJfQ0KCQkJfQ0KCQkJY2F0Y2goZSl7fQ0KCQl9DQoJCWlmKCB0ICYmIHQuaWQgKQ0KCQl7DQoJCQlzZXRUaW1lb3V0KCJnZXRfSUVfc2VsZWN0aW9uKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCciKyB0LmlkICsiJykpOyIsIDUwKTsNCgkJfQ0KCX07DQoJDQoJZnVuY3Rpb24gSUVfdGV4dGFyZWFfZm9jdXMoKXsNCgkJZXZlbnQuc3JjRWxlbWVudC5mb2N1c2VkPSB0cnVlOw0KCX0NCgkNCglmdW5jdGlvbiBJRV90ZXh0YXJlYV9ibHVyKCl7DQoJCWV2ZW50LnNyY0VsZW1lbnQuZm9jdXNlZD0gZmFsc2U7DQoJfQ0KCQ0KCS8vIHNlbGVjdCB0aGUgdGV4dCBmb3IgSUUgKHRha2UgaW50byBhY2NvdW50IHRoZSBcciBkaWZmZXJlbmNlKQ0KCWZ1bmN0aW9uIHNldF9JRV9zZWxlY3Rpb24oIHQgKXsNCgkJdmFyIG5iTGluZVN0YXJ0LG5iTGluZVN0YXJ0LG5iTGluZUVuZCxyYW5nZTsNCgkJaWYoIXdpbmRvdy5jbG9zZWQpeyANCgkJCW5iTGluZVN0YXJ0PXQudmFsdWUuc3Vic3RyKDAsIHQuc2VsZWN0aW9uU3RhcnQpLnNwbGl0KCJcbiIpLmxlbmd0aCAtIDE7DQoJCQluYkxpbmVFbmQ9dC52YWx1ZS5zdWJzdHIoMCwgdC5zZWxlY3Rpb25FbmQpLnNwbGl0KCJcbiIpLmxlbmd0aCAtIDE7DQoJCQl0cnkNCgkJCXsNCgkJCQlyYW5nZSA9IGRvY3VtZW50LnNlbGVjdGlvbi5jcmVhdGVSYW5nZSgpOw0KCQkJCXJhbmdlLm1vdmVUb0VsZW1lbnRUZXh0KCB0ICk7DQoJCQkJcmFuZ2Uuc2V0RW5kUG9pbnQoICdFbmRUb1N0YXJ0JywgcmFuZ2UgKTsNCgkJCQlyYW5nZS5tb3ZlU3RhcnQoJ2NoYXJhY3RlcicsIHQuc2VsZWN0aW9uU3RhcnQgLSBuYkxpbmVTdGFydCk7DQoJCQkJcmFuZ2UubW92ZUVuZCgnY2hhcmFjdGVyJywgdC5zZWxlY3Rpb25FbmQgLSBuYkxpbmVFbmQgLSAodC5zZWxlY3Rpb25TdGFydCAtIG5iTGluZVN0YXJ0KSAgKTsNCgkJCQlyYW5nZS5zZWxlY3QoKTsNCgkJCX0NCgkJCWNhdGNoKGUpe30NCgkJfQ0KCX07DQoJDQoJDQoJZWRpdEFyZWFMb2FkZXIud2FpdGluZ19sb2FkaW5nWyJlbGVtZW50c19mdW5jdGlvbnMuanMiXT0gImxvYWRlZCI7DQo=]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/highlight.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[CS8vIGNoYW5nZV90bzogIm9uIiBvciAib2ZmIg0KCUVkaXRBcmVhLnByb3RvdHlwZS5jaGFuZ2VfaGlnaGxpZ2h0PSBmdW5jdGlvbihjaGFuZ2VfdG8pew0KCQlpZih0aGlzLnNldHRpbmdzWyJzeW50YXgiXS5sZW5ndGg9PTAgJiYgY2hhbmdlX3RvPT1mYWxzZSl7DQoJCQl0aGlzLnN3aXRjaENsYXNzU3RpY2t5KF8kKCJoaWdobGlnaHQiKSwgJ2VkaXRBcmVhQnV0dG9uRGlzYWJsZWQnLCB0cnVlKTsNCgkJCXRoaXMuc3dpdGNoQ2xhc3NTdGlja3koXyQoInJlc2V0X2hpZ2hsaWdodCIpLCAnZWRpdEFyZWFCdXR0b25EaXNhYmxlZCcsIHRydWUpOw0KCQkJcmV0dXJuIGZhbHNlOw0KCQl9DQoJCQ0KCQlpZih0aGlzLmRvX2hpZ2hsaWdodD09Y2hhbmdlX3RvKQ0KCQkJcmV0dXJuIGZhbHNlOw0KCQ0KCQkJDQoJCXRoaXMuZ2V0SUVTZWxlY3Rpb24oKTsNCgkJdmFyIHBvc19zdGFydD0gdGhpcy50ZXh0YXJlYS5zZWxlY3Rpb25TdGFydDsNCgkJdmFyIHBvc19lbmQ9IHRoaXMudGV4dGFyZWEuc2VsZWN0aW9uRW5kOw0KCQkNCgkJaWYodGhpcy5kb19oaWdobGlnaHQ9PT10cnVlIHx8IGNoYW5nZV90bz09ZmFsc2UpDQoJCQl0aGlzLmRpc2FibGVfaGlnaGxpZ2h0KCk7DQoJCWVsc2UNCgkJCXRoaXMuZW5hYmxlX2hpZ2hsaWdodCgpOw0KCQl0aGlzLnRleHRhcmVhLmZvY3VzKCk7DQoJCXRoaXMudGV4dGFyZWEuc2VsZWN0aW9uU3RhcnQgPSBwb3Nfc3RhcnQ7DQoJCXRoaXMudGV4dGFyZWEuc2VsZWN0aW9uRW5kID0gcG9zX2VuZDsNCgkJdGhpcy5zZXRJRVNlbGVjdGlvbigpOw0KCQkJCQ0KCX07DQoJDQoJRWRpdEFyZWEucHJvdG90eXBlLmRpc2FibGVfaGlnaGxpZ2h0PSBmdW5jdGlvbihkaXNwbGF5T25seSl7DQoJCXZhciB0PSB0aGlzLCBhPXQudGV4dGFyZWEsIG5ld19PYmosIG9sZF9jbGFzcywgbmV3X2NsYXNzOw0KCQkJDQoJCXQuc2VsZWN0aW9uX2ZpZWxkLmlubmVySFRNTD0iIjsNCgkJdC5zZWxlY3Rpb25fZmllbGRfdGV4dC5pbm5lckhUTUw9IiI7DQoJCXQuY29udGVudF9oaWdobGlnaHQuc3R5bGUudmlzaWJpbGl0eT0iaGlkZGVuIjsNCgkJLy8gcmVwbGFjaW5nIHRoZSBub2RlIGlzIGZhciBtb3JlIGZhc3RlciB0aGFuIGRlbGV0aW5nIGl0J3MgY29udGVudCBpbiBmaXJlZm94DQoJCW5ld19PYmo9IHQuY29udGVudF9oaWdobGlnaHQuY2xvbmVOb2RlKGZhbHNlKTsNCgkJbmV3X09iai5pbm5lckhUTUw9ICIiOwkJCQ0KCQl0LmNvbnRlbnRfaGlnaGxpZ2h0LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKG5ld19PYmosIHQuY29udGVudF9oaWdobGlnaHQpOw0KCQl0LmNvbnRlbnRfaGlnaGxpZ2h0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodC5jb250ZW50X2hpZ2hsaWdodCk7CQ0KCQl0LmNvbnRlbnRfaGlnaGxpZ2h0PSBuZXdfT2JqOw0KCQlvbGRfY2xhc3M9IHBhcmVudC5nZXRBdHRyaWJ1dGUoIGEsImNsYXNzIiApOw0KCQlpZihvbGRfY2xhc3Mpew0KCQkJbmV3X2NsYXNzPSBvbGRfY2xhc3MucmVwbGFjZSggImhpZGRlbiIsIiIgKTsNCgkJCXBhcmVudC5zZXRBdHRyaWJ1dGUoIGEsICJjbGFzcyIsIG5ld19jbGFzcyApOw0KCQl9DQoJDQoJCWEuc3R5bGUuYmFja2dyb3VuZENvbG9yPSJ0cmFuc3BhcmVudCI7CS8vIG5lZWRlZCBpbiBvcmRlciB0byBzZWUgdGhlIGJyYWNrZXQgZmluZGVycw0KCQkNCgkJLy92YXIgaWNvbj0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImhpZ2hsaWdodCIpOw0KCQkvL3NldEF0dHJpYnV0ZShpY29uLCAiY2xhc3MiLCBnZXRBdHRyaWJ1dGUoaWNvbiwgImNsYXNzIikucmVwbGFjZSgvIHNlbGVjdGVkL2csICIiKSApOw0KCQkvL3QucmVzdG9yZUNsYXNzKGljb24pOw0KCQkvL3Quc3dpdGNoQ2xhc3MoaWNvbiwnZWRpdEFyZWFCdXR0b25Ob3JtYWwnKTsNCgkJdC5zd2l0Y2hDbGFzc1N0aWNreShfJCgiaGlnaGxpZ2h0IiksICdlZGl0QXJlYUJ1dHRvbk5vcm1hbCcsIHRydWUpOw0KCQl0LnN3aXRjaENsYXNzU3RpY2t5KF8kKCJyZXNldF9oaWdobGlnaHQiKSwgJ2VkaXRBcmVhQnV0dG9uRGlzYWJsZWQnLCB0cnVlKTsNCgkNCgkJdC5kb19oaWdobGlnaHQ9ZmFsc2U7DQoJDQoJCXQuc3dpdGNoQ2xhc3NTdGlja3koXyQoImNoYW5nZV9zbW9vdGhfc2VsZWN0aW9uIiksICdlZGl0QXJlYUJ1dHRvblNlbGVjdGVkJywgdHJ1ZSk7DQoJCWlmKHR5cGVvZih0LnNtb290aF9zZWxlY3Rpb25fYmVmb3JlX2hpZ2hsaWdodCkhPSJ1bmRlZmluZWQiICYmIHQuc21vb3RoX3NlbGVjdGlvbl9iZWZvcmVfaGlnaGxpZ2h0PT09ZmFsc2Upew0KCQkJdC5jaGFuZ2Vfc21vb3RoX3NlbGVjdGlvbl9tb2RlKGZhbHNlKTsNCgkJfQ0KCQkNCgkvLwl0aGlzLnRleHRhcmVhLnN0eWxlLmJhY2tncm91bmRDb2xvcj0iI0ZGRkZGRiI7DQoJfTsNCg0KCUVkaXRBcmVhLnByb3RvdHlwZS5lbmFibGVfaGlnaGxpZ2h0PSBmdW5jdGlvbigpew0KCQl2YXIgdD10aGlzLCBhPXQudGV4dGFyZWEsIG5ld19jbGFzczsNCgkJdC5zaG93X3dhaXRpbmdfc2NyZWVuKCk7DQoJCQkNCgkJdC5jb250ZW50X2hpZ2hsaWdodC5zdHlsZS52aXNpYmlsaXR5PSJ2aXNpYmxlIjsNCgkJbmV3X2NsYXNzCT1wYXJlbnQuZ2V0QXR0cmlidXRlKGEsImNsYXNzIikrIiBoaWRkZW4iOw0KCQlwYXJlbnQuc2V0QXR0cmlidXRlKCBhLCAiY2xhc3MiLCBuZXdfY2xhc3MgKTsNCgkJDQoJCS8vIElFIGNhbid0IG1hbmFnZSBtb3VzZSBjbGljayBvdXRzaWRlIHRleHQgcmFuZ2Ugd2l0aG91dCB0aGlzDQoJCWlmKCB0LmlzSUUgKQ0KCQkJYS5zdHlsZS5iYWNrZ3JvdW5kQ29sb3I9IiNGRkZGRkYiOwkNCg0KCQl0LnN3aXRjaENsYXNzU3RpY2t5KF8kKCJoaWdobGlnaHQiKSwgJ2VkaXRBcmVhQnV0dG9uU2VsZWN0ZWQnLCBmYWxzZSk7DQoJCXQuc3dpdGNoQ2xhc3NTdGlja3koXyQoInJlc2V0X2hpZ2hsaWdodCIpLCAnZWRpdEFyZWFCdXR0b25Ob3JtYWwnLCBmYWxzZSk7DQoJCQ0KCQl0LnNtb290aF9zZWxlY3Rpb25fYmVmb3JlX2hpZ2hsaWdodD10LnNtb290aF9zZWxlY3Rpb247DQoJCWlmKCF0LnNtb290aF9zZWxlY3Rpb24pDQoJCQl0LmNoYW5nZV9zbW9vdGhfc2VsZWN0aW9uX21vZGUodHJ1ZSk7DQoJCXQuc3dpdGNoQ2xhc3NTdGlja3koXyQoImNoYW5nZV9zbW9vdGhfc2VsZWN0aW9uIiksICdlZGl0QXJlYUJ1dHRvbkRpc2FibGVkJywgdHJ1ZSk7DQoJCQ0KCQkNCgkJdC5kb19oaWdobGlnaHQ9dHJ1ZTsNCgkJdC5yZXN5bmNfaGlnaGxpZ2h0KCk7DQoJCQkJCQ0KCQl0LmhpZGVfd2FpdGluZ19zY3JlZW4oKTsJDQoJfTsNCgkNCgkvKioNCgkgKiBBc2sgdG8gdXBkYXRlIGhpZ2hsaWdodGVkIHRleHQNCgkgKiBAcGFyYW0gQXJyYXkgaW5mb3MgLSBBcnJheSBvZiBkYXRhcyByZXR1cm5lZCBieSBFZGl0QXJlYS5nZXRfc2VsZWN0aW9uX2luZm9zKCkNCgkgKi8NCglFZGl0QXJlYS5wcm90b3R5cGUubWFqX2hpZ2hsaWdodD0gZnVuY3Rpb24oaW5mb3Mpew0KCQkvLyBmb3Igc3BlZWQgbWVzdXJlDQoJCXZhciBkZWJ1Z19vcHRpPSIiLHRwc19zdGFydD0gbmV3IERhdGUoKS5nZXRUaW1lKCksIHRwc19taWRkbGVfb3B0aT1uZXcgRGF0ZSgpLmdldFRpbWUoKTsNCgkJdmFyIHQ9dGhpcywgaGlnaHRsaWdodGVkX3RleHQsIHVwZGF0ZWRfaGlnaGxpZ2h0OwkNCgkJdmFyIHRleHRUb0hpZ2hsaWdodD1pbmZvc1siZnVsbF90ZXh0Il0sIGRvU3ludGF4T3B0aSA9IGZhbHNlLCBkb0h0bWxPcHRpID0gZmFsc2UsIHN0YXlfYmVnaW49IiIsIHN0YXlfZW5kPSIiLCB0cmFjZV9uZXcgLCB0cmFjZV9sYXN0Ow0KCQkNCgkJaWYodC5sYXN0X3RleHRfdG9faGlnaGxpZ2h0PT1pbmZvc1siZnVsbF90ZXh0Il0gJiYgdC5yZXN5bmNfaGlnaGxpZ2h0IT09dHJ1ZSkNCgkJCXJldHVybjsNCgkJCQkJDQoJCS8vICBPUFRJTUlTQVRJT046IHdpbGwgc2VhcmNoIHRvIHVwZGF0ZSBvbmx5IGNoYW5nZWQgbGluZXMNCgkJaWYodC5yZWxvYWRfaGlnaGxpZ2h0PT09dHJ1ZSl7DQoJCQl0LnJlbG9hZF9oaWdobGlnaHQ9ZmFsc2U7DQoJCX1lbHNlIGlmKHRleHRUb0hpZ2hsaWdodC5sZW5ndGg9PTApew0KCQkJdGV4dFRvSGlnaGxpZ2h0PSJcbiAiOw0KCQl9ZWxzZXsNCgkJCS8vIGdldCB0ZXh0IGNoYW5nZSBkYXRhcw0KCQkJY2hhbmdlcyA9IHQuY2hlY2tUZXh0RXZvbHV0aW9uKHQubGFzdF90ZXh0X3RvX2hpZ2hsaWdodCx0ZXh0VG9IaWdobGlnaHQpOw0KCQkJDQoJCQkvLyBjaGVjayBpZiBpdCBjYW4gb25seSByZXBhcnNlIHRoZSBjaGFuZ2VkIHRleHQNCgkJCXRyYWNlX25ldwkJPSB0LmdldF9zeW50YXhfdHJhY2UoY2hhbmdlcy5uZXdUZXh0TGluZSkucmVwbGFjZSgvXHIvZywgJycpOw0KCQkJdHJhY2VfbGFzdAkJPSB0LmdldF9zeW50YXhfdHJhY2UoY2hhbmdlcy5sYXN0VGV4dExpbmUpLnJlcGxhY2UoL1xyL2csICcnKTsNCgkJCWRvU3ludGF4T3B0aQk9ICggdHJhY2VfbmV3ID09IHRyYWNlX2xhc3QgKTsNCgkJCQ0KCQkJLy8gY2hlY2sgaWYgdGhlIGRpZmZlcmVuY2UgY29tZXMgb25seSBmcm9tIGEgbmV3IGxpbmUgY3JlYXRlZCANCgkJCS8vID0+IHdlIGhhdmUgdG8gcmVtZW1iZXIgdGhhdCB0aGUgZWRpdG9yIGNhbiBhdXRvbWF0aWNhbHkgYWRkIHRhYnVsYXRpb24gb3Igc3BhY2UgYWZ0ZXIgdGhlIG5ldyBsaW5lKSANCgkJCWlmKCAhZG9TeW50YXhPcHRpICYmIHRyYWNlX25ldyA9PSAiXG4iK3RyYWNlX2xhc3QgJiYgL15bIFx0XHNdKlxuWyBcdFxzXSokLy50ZXN0KCBjaGFuZ2VzLm5ld1RleHQucmVwbGFjZSgvXHIvZywgJycpICkgJiYgY2hhbmdlcy5sYXN0VGV4dCA9PSIiICkNCgkJCXsNCgkJCQlkb1N5bnRheE9wdGkJPSB0cnVlOw0KCQkJfQ0KCQkJDQoJCQkvLyB3ZSBkbyB0aGUgc3ludGF4IG9wdGltaXNhdGlvbg0KCQkJaWYoIGRvU3ludGF4T3B0aSApew0KCQkJCQkJDQoJCQkJdHBzX21pZGRsZV9vcHRpPW5ldyBEYXRlKCkuZ2V0VGltZSgpOwkNCgkJCQ0KCQkJCXN0YXlfYmVnaW49IHQubGFzdF9oaWdodGxpZ2h0ZWRfdGV4dC5zcGxpdCgiXG4iKS5zbGljZSgwLCBjaGFuZ2VzLmxpbmVTdGFydCkuam9pbigiXG4iKTsNCgkJCQlpZihjaGFuZ2VzLmxpbmVTdGFydD4wKQ0KCQkJCQlzdGF5X2JlZ2luKz0gIlxuIjsNCgkJCQlzdGF5X2VuZD0gdC5sYXN0X2hpZ2h0bGlnaHRlZF90ZXh0LnNwbGl0KCJcbiIpLnNsaWNlKGNoYW5nZXMubGluZUxhc3RFbmQrMSkuam9pbigiXG4iKTsNCgkJCQlpZihzdGF5X2VuZC5sZW5ndGg+MCkNCgkJCQkJc3RheV9lbmQ9ICJcbiIrc3RheV9lbmQ7DQoJCQkJCQ0KCQkJCS8vIEZpbmFsIGNoZWNrIHRvIHNlZSB0aGF0IHdlJ3JlIG5vdCBpbiB0aGUgbWlkZGxlIG9mIHNwYW4gdGFncw0KCQkJCWlmKCBzdGF5X2JlZ2luLnNwbGl0KCc8c3BhbicpLmxlbmd0aCAhPSBzdGF5X2JlZ2luLnNwbGl0KCc8L3NwYW4nKS5sZW5ndGggDQoJCQkJCXx8IHN0YXlfZW5kLnNwbGl0KCc8c3BhbicpLmxlbmd0aCAhPSBzdGF5X2VuZC5zcGxpdCgnPC9zcGFuJykubGVuZ3RoICkNCgkJCQl7DQoJCQkJCWRvU3ludGF4T3B0aQk9IGZhbHNlOw0KCQkJCQlzdGF5X2VuZAkJPSAnJzsNCgkJCQkJc3RheV9iZWdpbgkJPSAnJzsNCgkJCQl9DQoJCQkJZWxzZQ0KCQkJCXsNCgkJCQkJaWYoc3RheV9iZWdpbi5sZW5ndGg9PTAgJiYgY2hhbmdlcy5wb3NMYXN0RW5kPT0tMSkNCgkJCQkJCWNoYW5nZXMubmV3VGV4dExpbmUrPSJcbiI7DQoJCQkJCXRleHRUb0hpZ2hsaWdodD1jaGFuZ2VzLm5ld1RleHRMaW5lOw0KCQkJCX0NCgkJCX0NCgkJCWlmKHQuc2V0dGluZ3NbImRlYnVnIl0pew0KCQkJCXZhciBjaCA9Y2hhbmdlczsNCgkJCQlkZWJ1Z19vcHRpPSAoIGRvU3ludGF4T3B0aT8iT3B0aW1pc2F0aW9uIjogIk5vIG9wdGltaXNhdGlvbiIgKQ0KCQkJCQkrIiBzdGFydDogIitjaC5wb3NTdGFydCArIigiK2NoLmxpbmVTdGFydCsiKSINCgkJCQkJKyIgZW5kX25ldzogIisgY2gucG9zTmV3RW5kKyIoIitjaC5saW5lTmV3RW5kKyIpIg0KCQkJCQkrIiBlbmRfbGFzdDogIisgY2gucG9zTGFzdEVuZCsiKCIrY2gubGluZUxhc3RFbmQrIikiDQoJCQkJCSsiXG5jaGFuZ2VkX3RleHQ6ICIrY2gubmV3VGV4dCsiID0+IHRyYWNlOiAiK3RyYWNlX25ldw0KCQkJCQkrIlxuY2hhbmdlZF9sYXN0X3RleHQ6ICIrY2gubGFzdFRleHQrIiA9PiB0cmFjZTogIit0cmFjZV9sYXN0DQoJCQkJCS8vZGVidWdfb3B0aSs9ICJcbmNoYW5nZWQ6ICIrIGluZm9zWyJmdWxsX3RleHQiXS5zdWJzdHJpbmcoY2gucG9zU3RhcnQsIGNoLnBvc05ld0VuZCk7DQoJCQkJCSsgIlxuY2hhbmdlZF9saW5lOiAiK2NoLm5ld1RleHRMaW5lDQoJCQkJCSsgIlxubGFzdF9jaGFuZ2VkX2xpbmU6ICIrY2gubGFzdFRleHRMaW5lDQoJCQkJCSsiXG5zdGF5X2JlZ2luOiAiKyBzdGF5X2JlZ2luLnNsaWNlKC0xMDApDQoJCQkJCSsiXG5zdGF5X2VuZDogIisgc3RheV9lbmQuc3Vic3RyKCAwLCAxMDAgKTsNCgkJCQkJLy9kZWJ1Z19vcHRpPSJzdGFydDogIitzdGF5X2JlZ2luX2xlbisgIigiK25iX2xpbmVfc3RhcnRfdW5jaGFuZ2VkKyIpIGVuZDogIisgKHN0YXlfZW5kX2xlbikrICIoIisoc3BsaXRlZC5sZW5ndGgtbmJfbGluZV9lbmRfdW5jaGFuZ2VkKSsiKSAiOw0KCQkJCQkvL2RlYnVnX29wdGkrPSJjaGFuZ2VkOiAiKyB0ZXh0VG9IaWdobGlnaHQuc3Vic3RyaW5nKHN0YXlfYmVnaW5fbGVuLCB0ZXh0VG9IaWdobGlnaHQubGVuZ3RoLXN0YXlfZW5kX2xlbikrIiBcbiI7DQoJCQkJCQ0KCQkJCQkvL2RlYnVnX29wdGkrPSJjaGFuZ2VkOiAiKyBzdGF5X2JlZ2luLnN1YnN0cihzdGF5X2JlZ2luLmxlbmd0aC0yMDApKyAiLS0tLS0tLS0tLSIrIHRleHRUb0hpZ2hsaWdodCsiLS0tLS0tLS0tLS0tLS0tLS0tIisgc3RheV9lbmQuc3Vic3RyKDAsMjAwKSArIlxuIjsNCgkJCQkJKyJcbiI7DQoJCQl9DQoJDQoJCQkNCgkJCS8vIEVORCBPUFRJTUlTQVRJT04NCgkJfQ0KDQoJCXRwc19lbmRfb3B0aQk9IG5ldyBEYXRlKCkuZ2V0VGltZSgpOwkNCgkJCQkNCgkJLy8gYXBwbHkgaGlnaGxpZ2h0DQoJCXVwZGF0ZWRfaGlnaGxpZ2h0CT0gdC5jb2xvcml6ZV90ZXh0KHRleHRUb0hpZ2hsaWdodCk7DQoJCXRwc0FmdGVyUmVnCQkJPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTsNCgkJDQoJCS8qKioNCgkJICogc2VlIGlmIHdlIGNhbiBvcHRpbWl6ZSBmb3IgdXBkYXRpbmcgb25seSB0aGUgcmVxdWlyZWQgcGFydCBvZiB0aGUgSFRNTCBjb2RlDQoJCSAqIA0KCQkgKiBUaGUgZ29hbCBoZXJlIHdpbGwgYmUgdG8gZmluZCB0aGUgdGV4dCBub2RlIGNvbmNlcm5lZCBieSB0aGUgbW9kaWZpY2F0aW9uIGFuZCB0byB1cGRhdGUgaXQNCgkJICovDQoJCS8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KCQkNCgkJLy8gZGlzYWJsZSBsYXRlc3Qgb3B0aW1pemF0aW9uIHRyaWNrcyAoaW50cm9kdWNlZCBpbiAwLjguMSBhbmQgcmVtb3ZlZCBpbiAwLjguMiksIFRPRE86IGNoZWNrIGZvciBhbm90aGVyIHRyeSBsYXRlcg0KCQlkb1N5bnRheE9wdGkJPSBkb0h0bWxPcHRpID0gZmFsc2U7DQoJCWlmKCBkb1N5bnRheE9wdGkgKQ0KCQl7DQoJCQl0cnkNCgkJCXsNCgkJCQl2YXIgcmVwbGFjZWRCbG9jLCBpLCBuYlN0YXJ0ID0gJycsIG5iRW5kID0gJycsIG5ld0h0bWwsIGxlbmd0aE9sZCwgbGVuZ3RoTmV3Ow0KCQkJCXJlcGxhY2VkQmxvYwkJPSB0Lmxhc3RfaGlnaHRsaWdodGVkX3RleHQuc3Vic3RyaW5nKCBzdGF5X2JlZ2luLmxlbmd0aCwgdC5sYXN0X2hpZ2h0bGlnaHRlZF90ZXh0Lmxlbmd0aCAtIHN0YXlfZW5kLmxlbmd0aCApOw0KCQkJCQ0KCQkJCWxlbmd0aE9sZAk9IHJlcGxhY2VkQmxvYy5sZW5ndGg7DQoJCQkJbGVuZ3RoTmV3CT0gdXBkYXRlZF9oaWdobGlnaHQubGVuZ3RoOw0KCQkJCQ0KCQkJCS8vIGZpbmQgdGhlIGlkZW50aWNhbCBjYXJhY3RlcnMgYXQgdGhlIGJlZ2lubmluZw0KCQkJCWZvciggaT0wOyBpIDwgbGVuZ3RoT2xkICYmIGkgPCBsZW5ndGhOZXcgJiYgcmVwbGFjZWRCbG9jLmNoYXJBdChpKSA9PSB1cGRhdGVkX2hpZ2hsaWdodC5jaGFyQXQoaSkgOyBpKysgKQ0KCQkJCXsNCgkJCQl9DQoJCQkJbmJTdGFydCA9IGk7DQoJCQkJLy8gZmluZCB0aGUgaWRlbnRpY2FsIGNhcmFjdGVycyBhdCB0aGUgZW5kDQoJCQkJZm9yKCBpPTA7IGkgKyBuYlN0YXJ0IDwgbGVuZ3RoT2xkICYmIGkgKyBuYlN0YXJ0IDwgbGVuZ3RoTmV3ICYmIHJlcGxhY2VkQmxvYy5jaGFyQXQobGVuZ3RoT2xkLWktMSkgPT0gdXBkYXRlZF9oaWdobGlnaHQuY2hhckF0KGxlbmd0aE5ldy1pLTEpIDsgaSsrICkNCgkJCQl7DQoJCQkJfQ0KCQkJCW5iRW5kCT0gaTsNCgkJCQkvL2NvbnNvbGUubG9nKCBuYlN0YXJ0LCBuYkVuZCwgcmVwbGFjZWRCbG9jLCB1cGRhdGVkX2hpZ2hsaWdodCApOw0KCQkJCS8vIGdldCB0aGUgY2hhbmdlcw0KCQkJCWxhc3RIdG1sCT0gcmVwbGFjZWRCbG9jLnN1YnN0cmluZyggbmJTdGFydCwgbGVuZ3RoT2xkIC0gbmJFbmQgKTsNCgkJCQluZXdIdG1sCQk9IHVwZGF0ZWRfaGlnaGxpZ2h0LnN1YnN0cmluZyggbmJTdGFydCwgbGVuZ3RoTmV3IC0gbmJFbmQgKTsNCgkJCQkNCgkJCQkvLyBXZSBjYW4gZG8gdGhlIG9wdGltaXNhdGlvbiBvbmx5IGlmIHdlIGhhdm4ndCB0b3VjaCB0byBzcGFuIGVsZW1lbnRzDQoJCQkJaWYoIG5ld0h0bWwuaW5kZXhPZignPHNwYW4nKSA9PSAtMSAmJiBuZXdIdG1sLmluZGV4T2YoJzwvc3BhbicpID09IC0xIA0KCQkJCQkmJiBsYXN0SHRtbC5pbmRleE9mKCc8c3BhbicpID09IC0xICYmIGxhc3RIdG1sLmluZGV4T2YoJzwvc3BhbicpID09IC0xICkNCgkJCQl7DQoJCQkJCXZhciBiZWdpblN0ciwgbmJPcGVuZGVkU3BhbiwgbmJDbG9zZWRTcGFuLCBuYlVuY2hhbmdlZENoYXJzLCBzcGFuLCB0ZXh0Tm9kZTsNCgkJCQkJZG9IdG1sT3B0aQkJPSB0cnVlOw0KCQkJCQliZWdpblN0cgkJPSB0Lmxhc3RfaGlnaHRsaWdodGVkX3RleHQuc3Vic3RyKCAwLCBzdGF5X2JlZ2luLmxlbmd0aCArIG5iU3RhcnQgKTsNCgkJCQkJLy8gZml4IHNwZWNpYWwgY2hhcnMNCgkJCQkJbmV3SHRtbAkJCT0gbmV3SHRtbC5yZXBsYWNlKCAvJmx0Oy9nLCAnPCcpLnJlcGxhY2UoIC8mZ3Q7L2csICc+JykucmVwbGFjZSggLyZhbXA7L2csICcmJyk7DQoJCQ0KCQkJCQluYk9wZW5kZWRTcGFuCT0gYmVnaW5TdHIuc3BsaXQoJzxzcGFuJykubGVuZ3RoIC0gMTsNCgkJCQkJbmJDbG9zZWRTcGFuCT0gYmVnaW5TdHIuc3BsaXQoJzwvc3BhbicpLmxlbmd0aCAtIDE7DQoJCQkJCS8vIHJldHJpZXZlIHRoZSBwcmV2aW91c2x5IG9wZW5lZCBzcGFuIChBZGQgMSBmb3IgdGhlIGZpcnN0IGxldmVsIHNwYW4/KQ0KCQkJCQlzcGFuIAkJCT0gdC5jb250ZW50X2hpZ2hsaWdodC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc3BhbicpWyBuYk9wZW5kZWRTcGFuIF07DQoJCQkJCQ0KCQkJCQkvLy0tLS0tLS0tWw0KCQkJCQkvLyBnZXQgdGhlIHRleHROb2RlIHRvIHVwZGF0ZQ0KCQkJCQkNCgkJCQkJLy8gaWYgd2UncmUgaW5zaWRlIGEgc3Bhbiwgd2UnbGwgdGFrZSB0aGUgb25lIHRoYXQgaXMgb3BlbmVkIChjYW4gYmUgYSBwYXJlbnQgb2YgdGhlIGN1cnJlbnQgc3BhbikNCgkJCQkJcGFyZW50U3BhbgkJPSBzcGFuOw0KCQkJCQltYXhTdGFydE9mZnNldAk9IG1heEVuZE9mZnNldCA9IDA7DQoJCQkJCQ0KCQkJCQkvLyBpdCB3aWxsIGJlIGluIHRoZSBjaGlsZCBvZiB0aGUgcm9vdCBub2RlIA0KCQkJCQlpZiggbmJPcGVuZGVkU3BhbiA9PSBuYkNsb3NlZFNwYW4gKQ0KCQkJCQl7DQoJCQkJCQl3aGlsZSggcGFyZW50U3Bhbi5wYXJlbnROb2RlICE9IHQuY29udGVudF9oaWdobGlnaHQgJiYgcGFyZW50U3Bhbi5wYXJlbnROb2RlLnRhZ05hbWUgIT0gJ1BSRScgKQ0KCQkJCQkJew0KCQkJCQkJCXBhcmVudFNwYW4JPSBwYXJlbnRTcGFuLnBhcmVudE5vZGU7DQoJCQkJCQl9DQoJCQkJCX0NCgkJCQkJLy8gZ2V0IHRoZSBsYXN0IG9wZW5lZCBzcGFuDQoJCQkJCWVsc2UNCgkJCQkJew0KCQkJCQkJbWF4U3RhcnRPZmZzZXQJPSBtYXhFbmRPZmZzZXQgPSBiZWdpblN0ci5sZW5ndGggKyAxOw0KCQkJCQkJLy8gbW92ZSB0byBwYXJlbnQgbm9kZSBmb3IgZWFjaCBjbG9zZWQgc3BhbiBmb3VuZCBhZnRlciB0aGUgbGFzdGVzdCBvcGVuIHNwYW4NCgkJCQkJCW5iQ2xvc2VkID0gYmVnaW5TdHIuc3Vic3RyKCBNYXRoLm1heCggMCwgYmVnaW5TdHIubGFzdEluZGV4T2YoICc8c3BhbicsIG1heFN0YXJ0T2Zmc2V0IC0gMSApICkgKS5zcGxpdCgnPC9zcGFuJykubGVuZ3RoIC0gMTsNCgkJCQkJCXdoaWxlKCBuYkNsb3NlZCA+IDAgKQ0KCQkJCQkJew0KCQkJCQkJCW5iQ2xvc2VkLS07DQoJCQkJCQkJcGFyZW50U3BhbiA9IHBhcmVudFNwYW4ucGFyZW50Tm9kZTsNCgkJCQkJCX0NCgkJCQkJCQ0KCQkJCQkJLy8gZmluZCB0aGUgcG9zaXRpb24gb2YgdGhlIGxhc3Qgb3BlbmRlZCB0YWcNCgkJCQkJCXdoaWxlKCBwYXJlbnRTcGFuLnBhcmVudE5vZGUgIT0gdC5jb250ZW50X2hpZ2hsaWdodCAmJiBwYXJlbnRTcGFuLnBhcmVudE5vZGUudGFnTmFtZSAhPSAnUFJFJyAmJiAoIHRtcE1heFN0YXJ0T2Zmc2V0ID0gTWF0aC5tYXgoIDAsIGJlZ2luU3RyLmxhc3RJbmRleE9mKCAnPHNwYW4nLCBtYXhTdGFydE9mZnNldCAtIDEgKSApICkgPCAoIHRtcE1heEVuZE9mZnNldCA9IE1hdGgubWF4KCAwLCBiZWdpblN0ci5sYXN0SW5kZXhPZiggJzwvc3BhbicsIG1heEVuZE9mZnNldCAtIDEgKSApICkgKQ0KCQkJCQkJew0KCQkJCQkJCW1heFN0YXJ0T2Zmc2V0CT0gdG1wTWF4U3RhcnRPZmZzZXQ7DQoJCQkJCQkJbWF4RW5kT2Zmc2V0CT0gdG1wTWF4RW5kT2Zmc2V0Ow0KCQkJCQkJfQ0KCQkJCQl9DQoJCQkJCS8vIE5vdGU6IG1heEVuZE9mZnNldCBpcyBubyBtb3JlIHVzZWQgYnV0IG1heFN0YXJ0T2Zmc2V0IHdpbGwgYmUgdXNlZA0KCQkJCQkNCgkJCQkJaWYoIHBhcmVudFNwYW4ucGFyZW50Tm9kZSA9PSB0LmNvbnRlbnRfaGlnaGxpZ2h0IHx8IHBhcmVudFNwYW4ucGFyZW50Tm9kZS50YWdOYW1lID09ICdQUkUnICkNCgkJCQkJew0KCQkJCQkJbWF4U3RhcnRPZmZzZXQJPSBNYXRoLm1heCggMCwgYmVnaW5TdHIuaW5kZXhPZiggJzxzcGFuJyApICk7DQoJCQkJCX0NCgkJCQkJDQoJCQkJCS8vIGZpbmQgdGhlIG1hdGNoaW5nIHRleHQgbm9kZSAodGhpcyB3aWxsIGJlIG9uZSB0aGF0IHdpbGwgYmUgYXQgdGhlIGVuZCBvZiB0aGUgYmVnaW5TdHINCgkJCQkJaWYoIG1heFN0YXJ0T2Zmc2V0ID09IGJlZ2luU3RyLmxlbmd0aCApDQoJCQkJCXsNCgkJCQkJCW5iU3ViU3BhbkJlZm9yZQk9IDA7DQoJCQkJCX0NCgkJCQkJZWxzZQ0KCQkJCQl7DQoJCQkJCQlsYXN0RW5kUG9zIAkJCQk9IE1hdGgubWF4KCAwLCBiZWdpblN0ci5sYXN0SW5kZXhPZiggJz4nLCBtYXhTdGFydE9mZnNldCApICk7DQoJCQ0KCQkJCQkJLy8gY291bnQgdGhlIG51bWJlciBvZiBzdWIgc3BhbnMNCgkJCQkJCW5iU3ViU3BhbkJlZm9yZQkJCT0gYmVnaW5TdHIuc3Vic3RyKCBsYXN0RW5kUG9zICkuc3BsaXQoJzxzcGFuJykubGVuZ3RoLTE7DQoJCQkJCX0NCgkJCQkJDQoJCQkJCS8vIHRoZXJlIGlzIG5vIHN1Yi1zcGFuIGJlZm9yZQ0KCQkJCQlpZiggbmJTdWJTcGFuQmVmb3JlID09IDAgKQ0KCQkJCQl7DQoJCQkJCQl0ZXh0Tm9kZQk9IHBhcmVudFNwYW4uZmlyc3RDaGlsZDsNCgkJCQkJfQ0KCQkJCQkvLyB3ZSBuZWVkIHRvIGZpbmQgd2hlcmUgaXMgdGhlIHRleHQgbm9kZSBtb2RpZmllZA0KCQkJCQllbHNlDQoJCQkJCXsNCgkJCQkJCS8vIHRha2UgdGhlIGxhc3QgZGlyZWN0IGNoaWxkIChubyBzdWItY2hpbGQpDQoJCQkJCQlsYXN0U3ViU3Bhbgk9IHBhcmVudFNwYW4uZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3NwYW4nKVsgbmJTdWJTcGFuQmVmb3JlIC0gMSBdOw0KCQkJCQkJd2hpbGUoIGxhc3RTdWJTcGFuLnBhcmVudE5vZGUgIT0gcGFyZW50U3BhbiApDQoJCQkJCQl7DQoJCQkJCQkJbGFzdFN1YlNwYW4JPSBsYXN0U3ViU3Bhbi5wYXJlbnROb2RlOw0KCQkJCQkJfQ0KDQoJCQkJCQkvLyBhc3NvY2lhdGUgdG8gbmV4dCB0ZXh0IG5vZGUgZm9sbG93aW5nIHRoZSBsYXN0IHN1YiBzcGFuDQoJCQkJCQlpZiggbGFzdFN1YlNwYW4ubmV4dFNpYmxpbmcgPT0gbnVsbCB8fCBsYXN0U3ViU3Bhbi5uZXh0U2libGluZy5ub2RlVHlwZSAhPSAzICkNCgkJCQkJCXsNCgkJCQkJCQl0ZXh0Tm9kZQk9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCcnKTsNCgkJCQkJCQlsYXN0U3ViU3Bhbi5wYXJlbnROb2RlLmluc2VydEJlZm9yZSggdGV4dE5vZGUsIGxhc3RTdWJTcGFuLm5leHRTaWJsaW5nICk7DQoJCQkJCQl9DQoJCQkJCQllbHNlDQoJCQkJCQl7DQoJCQkJCQkJdGV4dE5vZGUJPSBsYXN0U3ViU3Bhbi5uZXh0U2libGluZzsNCgkJCQkJCX0NCgkJCQkJfQ0KCQkJCQkvLy0tLS0tLS0tXQ0KCQkJCQkNCgkJCQkJDQoJCQkJCS8vLS0tLS0tLS1bDQoJCQkJCS8vIHVwZGF0ZSB0aGUgdGV4dE5vZGUgY29udGVudA0KCQkJCQkNCgkJCQkJLy8gbnVtYmVyIG9mIGNhcmFjdGVycyBhZnRlciB0aGUgbGFzdCBvcGVuZWQgb2YgY2xvc2VkIHNwYW4NCgkJCQkJLy9uYlVuY2hhbmdlZENoYXJzID0gKCBsYXN0SW5kZXggPSBiZWdpblN0ci5sYXN0SW5kZXhPZiggJz4nICkgKSA9PSAtMSA/IGJlZ2luU3RyLmxlbmd0aCA6IGJlZ2luU3RyLmxlbmd0aCAtICggbGFzdEluZGV4ICsgMSApOw0KCQkJCQkvL25iVW5jaGFuZ2VkQ2hhcnMgPSAgPyBiZWdpblN0ci5sZW5ndGggOiBiZWdpblN0ci5zdWJzdHIoIGxhc3RJbmRleCArIDEgKS5yZXBsYWNlKCAvJmx0Oy9nLCAnPCcpLnJlcGxhY2UoIC8mZ3Q7L2csICc+JykucmVwbGFjZSggLyZhbXA7L2csICcmJykubGVuZ3RoOw0KCQkJCQkNCgkJCQkJaWYoICggbGFzdEluZGV4ID0gYmVnaW5TdHIubGFzdEluZGV4T2YoICc+JyApICkgPT0gLTEgKQ0KCQkJCQl7DQoJCQkJCQluYlVuY2hhbmdlZENoYXJzCT0gYmVnaW5TdHIubGVuZ3RoOw0KCQkJCQl9DQoJCQkJCWVsc2UNCgkJCQkJew0KCQkJCQkJbmJVbmNoYW5nZWRDaGFycwk9IGJlZ2luU3RyLnN1YnN0ciggbGFzdEluZGV4ICsgMSApLnJlcGxhY2UoIC8mbHQ7L2csICc8JykucmVwbGFjZSggLyZndDsvZywgJz4nKS5yZXBsYWNlKCAvJmFtcDsvZywgJyYnKS5sZW5ndGg7IAkNCgkJCQkJCS8vbmJVbmNoYW5nZWRDaGFycwkrPSBiZWdpblN0ci5zdWJzdHIoICkucmVwbGFjZSggLyYvZywgJyZhbXA7JykucmVwbGFjZSggLzwvZywgJyZsdDsnKS5yZXBsYWNlKCAvPi9nLCAnJmd0OycpLmxlbmd0aCAtIGJlZ2luU3RyLmxlbmd0aDsNCgkJCQkJfQ0KCQkJCQkvL2FsZXJ0KCBuYlVuY2hhbmdlZENoYXJzICk7DQoJCQkJCS8vCWNvbnNvbGUubG9nKCBzcGFuLCB0ZXh0Tm9kZSwgbmJPcGVuZGVkU3BhbixuYkNsb3NlZFNwYW4sICBzcGFuLm5leHRTaWJsaW5nLCB0ZXh0Tm9kZS5sZW5ndGgsIG5iVW5jaGFuZ2VkQ2hhcnMsIGxhc3RIdG1sLCBsYXN0SHRtbC5sZW5ndGgsIG5ld0h0bWwsIG5ld0h0bWwubGVuZ3RoICk7DQoJCQkJCS8vCWFsZXJ0KCB0ZXh0Tm9kZS5wYXJlbnROb2RlLmNsYXNzTmFtZSArJy0nKyB0ZXh0Tm9kZS5wYXJlbnROb2RlLnRhZ05hbWUrIlxuIisgdGV4dE5vZGUuZGF0YSArIlxuIisgbmJVbmNoYW5nZWRDaGFycyArIlxuIisgbGFzdEh0bWwubGVuZ3RoICsiXG4iKyBuZXdIdG1sICsiXG4iKyBuZXdIdG1sLmxlbmd0aCAgKTsNCgkJCQkvLwljb25zb2xlLmxvZyggbmJVbmNoYW5nZWRDaGFycywgbGFzdEluZGV4LCBiZWdpblN0ci5sZW5ndGgsIGJlZ2luU3RyLnJlcGxhY2UoLyYvZywgJyZhbXA7JyksIGxhc3RIdG1sLmxlbmd0aCwgJ3wnLCBuZXdIdG1sLnJlcGxhY2UoIC9cdC9nLCAndCcpLnJlcGxhY2UoIC9cbi9nLCAnbicpLnJlcGxhY2UoIC9cci9nLCAncicpLCBsYXN0SHRtbC5yZXBsYWNlKCAvXHQvZywgJ3QnKS5yZXBsYWNlKCAvXG4vZywgJ24nKS5yZXBsYWNlKCAvXHIvLCAncicpICk7DQoJCQkJLy8JY29uc29sZS5sb2coIHRleHROb2RlLmRhdGEucmVwbGFjZSgvJi9nLCAnJmFtcDsnKSApOw0KCQkJCQkvLyBJRSBvbmx5IG1hbmFnZSBcciBmb3IgY2FyaWFnZSByZXR1cm4gaW4gdGV4dE5vZGUgYW5kIG5vdCBcbiBvciBcclxuDQoJCQkJCWlmKCB0LmlzSUUgKQ0KCQkJCQl7DQoJCQkJCQluYlVuY2hhbmdlZENoYXJzCS09ICggYmVnaW5TdHIuc3Vic3RyKCBiZWdpblN0ci5sZW5ndGggLSBuYlVuY2hhbmdlZENoYXJzICkuc3BsaXQoIlxuIikubGVuZ3RoIC0gMSApOw0KCQkJCQkJLy9hbGVydCggdGV4dE5vZGUuZGF0YS5yZXBsYWNlKC9cci9nLCAnX3InKS5yZXBsYWNlKC9cbi9nLCAnX24nKSk7IA0KCQkJCQkJdGV4dE5vZGUucmVwbGFjZURhdGEoIG5iVW5jaGFuZ2VkQ2hhcnMsIGxhc3RIdG1sLnJlcGxhY2UoL1xuL2csICcnKS5sZW5ndGgsIG5ld0h0bWwucmVwbGFjZSgvXG4vZywgJycpICk7DQoJCQkJCX0NCgkJCQkJZWxzZQ0KCQkJCQl7DQoJCQkJCQl0ZXh0Tm9kZS5yZXBsYWNlRGF0YSggbmJVbmNoYW5nZWRDaGFycywgbGFzdEh0bWwubGVuZ3RoLCBuZXdIdG1sICk7DQoJCQkJCX0NCgkJCQkJLy8tLS0tLS0tLV0NCgkJCQl9DQoJCQl9DQoJCQkvLyBhbiBleGNlcHRpb24gc2hvdWxkbid0IG9jY3VyZWQgYnV0IGlmIHJlcGxhY2VEYXRhIGZhaWxlZCBhdCBsZWFzdCBpdCB3b24ndCBicmVhayBldmVyeXRoaW5nDQoJCQljYXRjaCggZSApDQoJCQl7DQoJCS8vCQl0aHJvdyBlOw0KCQkJLy8JY29uc29sZS5sb2coIGUgKTsNCgkJCQlkb0h0bWxPcHRpCT0gZmFsc2U7DQoJCQl9DQoJCQkNCgkJfQ0KCQ0KCQkvKioqIEVORCBIVE1MIHVwZGF0ZSdzIG9wdGltaXNhdGlvbiAqKiovDQoJCS8vIGVuZCB0ZXN0DQoJCQ0KCS8vCQkJY29uc29sZS5sb2coICAoVFBTNi1UUFM1KSwgKFRQUzUtVFBTNCksIChUUFM0LVRQUzMpLCAoVFBTMy1UUFMyKSwgKFRQUzItVFBTMSksIF9DUFQgKTsNCgkJLy8gZ2V0IHRoZSBuZXcgaGlnaGxpZ2h0IGNvbnRlbnQNCgkJdHBzQWZ0ZXJPcHRpMgkJPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTsNCgkJaGlnaHRsaWdodGVkX3RleHQJPSBzdGF5X2JlZ2luICsgdXBkYXRlZF9oaWdobGlnaHQgKyBzdGF5X2VuZDsNCgkJaWYoICFkb0h0bWxPcHRpICkNCgkJew0KCQkJLy8gdXBkYXRlIHRoZSBjb250ZW50IG9mIHRoZSBoaWdobGlnaHQgZGl2IGJ5IGZpcnN0IHVwZGF0aW5nIGEgY2xvbmUgbm9kZSAoYXMgdGhlcmUgaXMgbm8gZGlzcGxheSBpbiB0aGUgc2FtZSB0aW1lIGZvciB0IG5vZGUgaXQncyBxdWl0ZSBmYXN0ZXIgKDUqKSkNCgkJCXZhciBuZXdfT2JqPSB0LmNvbnRlbnRfaGlnaGxpZ2h0LmNsb25lTm9kZShmYWxzZSk7DQoJCQlpZiggKCB0LmlzSUUgJiYgdC5pc0lFIDwgOCApIHx8ICggdC5pc09wZXJhICYmIHQuaXNPcGVyYSA8IDkuNiApICkNCgkJCQluZXdfT2JqLmlubmVySFRNTD0gIjxwcmU+PHNwYW4gY2xhc3M9JyIrIHQuc2V0dGluZ3NbInN5bnRheCJdICsiJz4iICsgaGlnaHRsaWdodGVkX3RleHQgKyAiPC9zcGFuPjwvcHJlPiI7CQ0KCQkJZWxzZQ0KCQkJCW5ld19PYmouaW5uZXJIVE1MPSAiPHNwYW4gY2xhc3M9JyIrIHQuc2V0dGluZ3NbInN5bnRheCJdICsiJz4iKyBoaWdodGxpZ2h0ZWRfdGV4dCArIjwvc3Bhbj4iOw0KCQ0KCQkJdC5jb250ZW50X2hpZ2hsaWdodC5wYXJlbnROb2RlLnJlcGxhY2VDaGlsZChuZXdfT2JqLCB0LmNvbnRlbnRfaGlnaGxpZ2h0KTsNCgkJDQoJCQl0LmNvbnRlbnRfaGlnaGxpZ2h0PSBuZXdfT2JqOw0KCQl9DQoJCQ0KCQl0Lmxhc3RfdGV4dF90b19oaWdobGlnaHQ9IGluZm9zWyJmdWxsX3RleHQiXTsNCgkJdC5sYXN0X2hpZ2h0bGlnaHRlZF90ZXh0PSBoaWdodGxpZ2h0ZWRfdGV4dDsNCgkJDQoJCXRwczM9bmV3IERhdGUoKS5nZXRUaW1lKCk7DQoJDQoJCWlmKHQuc2V0dGluZ3NbImRlYnVnIl0pew0KCQkJLy9saW5lTnVtYmVyPXRhYl90ZXh0Lmxlbmd0aDsNCgkJCS8vdC5kZWJ1Zy52YWx1ZSs9IiBcbk5CIGNoYXI6ICIrXyQoInNyYyIpLnZhbHVlLmxlbmd0aCsiIE5iIGxpbmU6ICIrIGxpbmVOdW1iZXI7DQoJCQ0KCQkJdC5kZWJ1Zy52YWx1ZT0gIlRwcyBvcHRpbWlzYXRpb24gIisodHBzX2VuZF9vcHRpLXRwc19zdGFydCkNCgkJCQkrIiB8IHRwcyByZWcgZXhwOiAiKyAodHBzQWZ0ZXJSZWctdHBzX2VuZF9vcHRpKQ0KCQkJCSsiIHwgdHBzIG9wdGkgSFRNTCA6ICIrICh0cHNBZnRlck9wdGkyLXRwc0FmdGVyUmVnKSArICcgJysgKCBkb0h0bWxPcHRpID8gJ3llcycgOiAnbm8nICkNCgkJCQkrIiB8IHRwcyB1cGRhdGUgaGlnaGxpZ2h0IGNvbnRlbnQ6ICIrICh0cHMzLXRwc0FmdGVyT3B0aTIpDQoJCQkJKyIgfCB0cHNUb3RhbDogIisgKHRwczMtdHBzX3N0YXJ0KQ0KCQkJCSsgIigiK3RwczMrIilcbiIrIGRlYnVnX29wdGk7DQoJCS8vCXQuZGVidWcudmFsdWUrPSAiaGlnaGxpZ2h0XG4iK2hpZ2h0bGlnaHRlZF90ZXh0OyovDQoJCX0NCgkJDQoJfTsNCgkNCglFZGl0QXJlYS5wcm90b3R5cGUucmVzeW5jX2hpZ2hsaWdodD0gZnVuY3Rpb24ocmVsb2FkX25vdyl7DQoJCXRoaXMucmVsb2FkX2hpZ2hsaWdodD10cnVlOw0KCQl0aGlzLmxhc3RfdGV4dF90b19oaWdobGlnaHQ9IiI7DQoJCXRoaXMuZm9jdXMoKTsJCQ0KCQlpZihyZWxvYWRfbm93KQ0KCQkJdGhpcy5jaGVja19saW5lX3NlbGVjdGlvbihmYWxzZSk7IA0KCX07CQ0K]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/images/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/includes/edit_area/images/autocompletion.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhFAAUANUAABQUFPG1A7OWQPjcfFdXV6ioqPbKQPzuwUJCQj09PYuLi8zMzIODg/PCKty+Z/324PjTZvrmpDMzM8XFxc2vWff39/K8GPjZc/XGSPfOU0tLS/nelvrot97e3hYWFv///76gSvK2DfjZgGZmZv767O+1CPS/MPvnrPjXbPfQW66urpSUlNPT0/e9Gf745/vpuvbNSvzuxsGjTfjdgv/mpfG7CPTDM/XAJP///wAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEHADgALAAAAAAUABQAAAaEQJxwSCwaj8jk8aQsuiK4Qwb3gDZxGQgks7kxr5sUagCzNEmQG2wmozgMNUhzk5FVPhRU46EkpTQLFSwgFyExSS5/IwoFAhcBNiJKGiMSCBplIXxJlBIJACgBMSYbSQQMngBRGEIcSAion0MvSrCpV0IjHZaquDgjCyu9vioJHr7IyUpBADs=]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/images/close.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhEAAOALIAAP///0BAQNTQyICAgAAAAAAAAAAAAAAAACwAAAAAEAAOAAADMwi63AEiyinHozhaGAmZnnZJoVAKG+Wd6Ah+U/qycgefNVvWWeX2IsBgSCwWA8ikcolMAAA7]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/images/fullscreen.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhFAAUAMMNADJKYqKxx0x0wsLW/nSTyJK2/OLy/mmV6UJ34Hym8uLq/qjH/ld92/b5/tLi/gAAACH5BAEAAA8ALAAAAAAUABQAAARz8MlJq704axy6/54VNGRpNoYBVCPhEgwhzAKirFTrOMPiL4WCDTfRoQy+YGLIahAGvWQicWDmnAODQrHbVR1ESetXmB4ODAS4SVhwu9D0+touU9EMefjRmt7RCAgMc0VHW1tdXXsPAI2Oj44bkpOUlZYTEQA7]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/images/go_to_line.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhFAAUAOewAAAFegAGegAJfgAJfwAQiAARgwARiAAVjQAYiQEbjwIblAYkmQYllQgomAwunw4unRc4sBg4sBY8uRhAvxdGsRxIsRtLzilMvCFRuilNvyxQwiFYwSNZwi1kxi5kxi5lxjNqyTxt1Cpv/DRw3zVv8jx00zF29i53/jh1/DN9/zp8/0SA3UeC2j6B/TeF/ziF/juH/z+F/zyI/z2J/1KF7ECL/06L4EuH/1+F5WaJ5GiJ4UeV/kuU/12O9luP/V2R/1uT+k+a/1Cb/16V+miT9WGX+mKb5WOY+lef/1uf/2mY/1qg/1mh/1yi/lel/mih6G6c/2Oj+lyo/3Ce/12o/3Oe/F2p/3Of/3af93Oh/3mk/2au/3ql/mev/32m/nqo/4Sl9Iam836o/4Co/4So92m1/2m2/4Oq/4Ks+4mq9ISr/4qv/4uv/3a6/3a7/4my/3a+/4u2+3i//5G0/424/4a/94DB/YLC/ojB+IPG/5y7/4XH/5y8/5y9/5+9/5jC+5DI/KG//5DJ/aTB/5vH+6bD/6jE/57K/KnE/6rF/6rG+6nG/63G/7LL/7HM/7PO/7bN/bbN/7zW/8DU/8bU+sHZ/8ba/8rc/8nd/9Dc+9Pl/9Tl/9fl/+Hq/+Lu/+Tt/+Xt/+fu/ufv//L2//P3//T3//b5//j6/vr8//z8/vz9//79/v/+/v/+/////f///v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////yH5BAEKAP8ALAAAAAAUABQAAAj6AP8JHEiwoMGDCBMOBCBgQACFBA1c0BEGTA4NByBCSKNp0yVLmCRhkZAwwiNPkwxFaqRnkKM3Ew4SIMOJUaJBqkwhWjOnjw8FBjNUKuSHjZdMsEjx0aLmi4WCBXAsEnPmypQqlGCNmqMkCwkEBBMQgRKoEyhRn0K1glVqzA8UCwgy6HEDkqtXr1idggWLFRcVIhwQbEAjRoshRY4AUQQrFZoTKUw8KBgiyQwZMFzQQbUqzosaPEYYrBCFiZAgS1S9+rMjCJImGA6WaNOFipVDhJxI2eJmRUIWdvbIMVMGTp47Nigo9GCkDiBBeJ6AgDhwQ4cPHKhr354wIAA7]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/images/help.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhFAAUANQOABRPsqO7216Gnujx+XWRpiJa4nKc0Dlajc7Y3kJ6+3KY+KK9+pKtw73Cw/n8/lCB0jVu/hJTyVaK+ois/JKeosLX9YCn201wml+PzLDI3JGt4iJYwsLL3iJn9LLI9wAAACH5BAEAAB8ALAAAAAAUABQAAAWk4CeOZGmeaKquSKBZhhWsX2ZVTu5URpZmgd1EIplUBrITwuJYJBa5gWIxwHBMgUoloXB4JB5HwpNhmAyOSaII6XQlmIHAhHFIIPiOZLfZOA4mD2Jtel4bAH6AJXUKHQUFEw4REQAPAxcmDBUeBZMPFpQAARwEJhwGAxqTGg4AABYDBA0nDLABD30PAbEUKAgMGBkDUaS9Kg0EFwcXF7I0z9DRNCEAOw==]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/images/highlight.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhFAAUANQQAEY8JpJ6QurXfKKScmdjW9vPrMK4gvfxsGdlx0I6kpORwsKqQsrJ1LS0tG5ufkZOUvLq8tLIlt7d3aKaYv79woKChtK6YqCamMG1merckoB0YpKS4kxOZ7KSMuPcsQAAACH5BAEAAB8ALAAAAAAUABQAAAV94CeOZGmeaKquqKQoDDsyyoY4qtTstJ1wKZ2EIbkoEL8GCmPwNCDEioOjLBUihgOF4rlIKo1HxVTwbM+HSOXicDzIGS3lcMgIDIQK4W3yRLR1AgIWExwPVWQGdoIWCx0AiCcYA4yOABcsGBqNj5gyGAQBlzIjoBqkqKmqJyEAOw==]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/images/load.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhFAAUAOe1AAALuwALvAAMuQASpgAQtQASqwASsAAWrgAVwAAYvAAZyAQftgAeyQAk0gcmyQgquA8prgAp2gQxvxUrtwMzwwYw2hYzqgg/yh06rgg85CFAshFKzyVHuBZL4zFIxBZP7StPvTlRuzFWxB1Z6yFc0zhTzi9Y0SZd5zddyilj1zte2ihk8jpi0Cdn9jxl0Dln0zBq8zlr20Fp0kBn4Vpju0Fr1Thw20Ru1UZw2l1rwy59/ER83WhywEZ/3jyA+0iA3kmA4EiB3kmB4Fp72DeG/kuD4EuD51h96EeE+U6E50+G4HJ6xVKI5EyI+2+Cz0+O52CH4kaQ/liN6FWQ42SN4mGP50uW/m6P3YKIzFeY+VmY/HSR3myW5mWZ816c/ImV12Sk+WWk/m+j8nif84ag54aj6G+r/nar7puh24mo6ICv842r64iu96Oo3aGq3aqqyn24/ZKy8Je26IW/9Y+89Y+98ZW77LWyz7Wy1o/E+5fA/IXM/p/C8Lu42p/F96fC9b+917HF8cXD4MTD5KLV+Jva/M7K4cjO86be/K/a/tHO5qne/rjY+M7Q8NHT7a/m/NvX7NzY6bns/Lnt/tze99Dk+N7e9+Le8cjt/r/y/uPi+Obk+9rr/Obm++vn8ujo++np++zp98j7/uzr/Mr8/sv9/u7u/tX7/c/+/vHx+/Lx/vLy/vbz/OH+/vn2+/f3/vv2/v34/vz8/v79/v7+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////yH5BAEKAP8ALAIAAQAQABAAAAjuAP8JHEiwoEGCPJYcNIilESUaBElISWJkg8A2oFSNQkNQiCREhc44cSRrVadNlnIMVELqkR03qWi9MvVJ06EvA4uIkjOIlk9asWBtwQGFhYkHQErVuRJnTZoyZIbEyBLFyokFPVA9ofLHDx01YrqEIaJjRIIDOzLZ4FTp1CI4Wny06OAAAIF/P+ZUaUUoj5kmMD5UYIAggIF/QabwmbQHjBckKzJEaKBAQIF/KZgwwpRID5sxR2aoKOFhgsALXGbRmsUq1CVIigT1wRNCIIVAP2m58hTJEKA7byAIlPDiRg0ZLlCIAMFBAwYLAwQGBAA7]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/images/move.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhEwATAMQUAP7+/gICAgYGBgcHBwEBAQsLCwUFBQkJCQ0NDQoKCgwMDAgICA8PDxERERkZGRMTExQUFAQEBAAAAP///////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAABQALAAAAAATABMAAAV+ICWO1DRJJqmSZmAk6cpOjyRI6CSPJ05IB9ROZDLlYqoib6EjIo3NkpCISBmn0uikEChGJIUitAjwTRoSxiGAa+MCi4FEwUAZcGLAQDyRHwUOWlgnMDpQPIMDAFoTADwKWosyYhBiQyUIEgk2EgZRk1sSmQdIOyYEN6VDYzIhADs=]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/images/newdocument.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhFAAUAMMGADJKYpKistLW4qK10vLy8sLK0v7+/pKqwuLn8rLC4rK+0vL4/tLd8qKtwsLM3gAAACH5BAEAAA8ALAAAAAAUABQAAARX8MlJq70465x6V8rgbIlhng0wZsp5HoXKumYA3NlA13a+L4QeprEjIIQXomuBOAIyh6WRgbQElk1BtXI1AREMx5bSNUwF4ifmGmi72+qL7Uavb+74vD4CADs=]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/images/opacity.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAlSURBVHjaYvzw4d1mBioCJgYqg1EDRw0cNXDUwFEDh4qBAAEGAKocA6lmsBuJAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/images/processing.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhEAAQAOMIAAAAABoaGjMzM0xMTGZmZoCAgJmZmbKysv///////////////////////////////yH/C05FVFNDQVBFMi4wAwEAAAAh+QQBCgAIACwAAAAAEAAQAAAESBDJiQCgmFqbZwjVhhwH9n3hSJbeSa1sm5GUIHSTYSC2jeu63q0D3PlwCB1lMMgUChgmk/J8LqUIAgFRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+UKgmFqbpxDV9gAA9n3hSJbeSa1sm5HUMHTTcTy2jeu63q0D3PlwDx2FQMgYDBgmk/J8LqWPQuFRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+YSgmFqb5xjV9gQB9n3hSJbeSa1sm5EUQXQTADy2jeu63q0D3PlwDx2lUMgcDhgmk/J8LqUPg+FRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+cagmFqbJyHV9ggC9n3hSJbeSa1sm5FUUXRTEDy2jeu63q0D3PlwDx3FYMgAABgmk/J8LqWPw+FRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+QihmFqbZynV9gwD9n3hSJbeSa1sm5GUYXSTIDy2jeu63q0D3PlwDx3lcMgEAhgmk/J8LqUPAOBRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+UqhmFqbpzHV9hAE9n3hSJbeSa1sm5HUcXTTMDy2jeu63q0D3PlwDx0FAMgIBBgmk/J8LqWPQOBRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+YyhmFqb5znV9hQF9n3hSJbeSa1sm5EUAHQTQTy2jeu63q0D3PlwDx0lEMgMBhgmk/J8LqUPgeBRhV6z2q0VF94iJ9pOBAAh+QQBCgAPACwAAAAAEAAQAAAESPDJ+c6hmFqbJwDV9hgG9n3hSJbeSa1sm5FUEHRTUTy2jeu63q0D3PlwDx1FIMgQCBgmk/J8LqWPweBRhV6z2q0VF94iJ9pOBAA7]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/images/redo.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhFAAUAMMLAC1PknOj8D1y15e67152qFWK8brE1Dllto6s6E1/5GmU77zK6TdaoFd9v6m/6gAAACH5BAEAAA8ALAAAAAAUABQAAARW8MlJq704683xWs7SSY6DnIi4gclxNEqgCphTME3jxuCBDQmGBMFgxAK+C5AwMRACiltNOhkECgKAp5B8CFwMgBajSBhGE1sDPWkUHGxJVMX+xO94dgQAOw==]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/images/reset_highlight.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhFAAUAMMLAAICAsvT3l5wiqy0uTJKYvL09nKFopas0uLn8nKOsrLC2v79/tre5ISatYKSogAAACH5BAEAAA8ALAAAAAAUABQAAARV8MlJq7046803O0fSMN23nEESeMe5FEvQaOZZIMhiZPWLLw0BpnfLNRyEC/F3JAwuLRsT+YTiYLBm9dJQKAKIglYTMBhAg4azMxC4AfA4vEOv2++YCAA7]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/images/save.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhFAAUANQZAAICAra+xk5Yxubm9jI6UgpCpo6O5kZImsbW7npy1qae5lJSUnJ6lr6+/i06P1VVsfb29iJCcmJjzWJuhipCpkJKto6O9kI6ga6m/v3+/pau5lJacipKttbg+MbG2gAAACH5BAEAAB8ALAAAAAAUABQAAAWa4CeOZGmeaKqiTdtgmGLMRmKbrZXt/C48D1xD19tBBIRgCdMwFDOQASehJDETxWhnWh0pGlieFkGRdEWGhkQ86CAQBcnBlFYL7hwOJS6Yl+oYFhY1NhI/fiQJMBYbjY0TPxUXJoqCGwAOHR0TFRUHkyWVBhsODAMDDBQHFKCJgxwOAQEeHgsUt60jGmZADwe/F8EXESvFxsfGIQA7]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/images/search.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhFAAUAMMIACFAeZOlzVVvod/k8HmPsjZSjbvI4V+Atfn6/XSEqnyWxUVomCFGg6i1x8LW8gAAACH5BAEAAA8ALAAAAAAUABQAAARs8MlJq704681vIMvUgFuCMJOJZqNQFM/nwpiCGApqG8F6KYfZ4kBw+So2hOPAKBAQSqbF8OQJGKOBI3AANCqyFwPgnI1pE9uA5zsM1gq0pMptv3HyB10qccPze3Y8fBNFC2ITQTMAHY2OjxURADs=]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/images/smooth_selection.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhFAAUAMMKACMjE6mrXomZvTdPac7Ozs3Pl1pWPqq+wpKCYsLS7/T09GJykvHxcnaGpvv0tgAAACH5BAEAAA8ALAAAAAAUABQAAARb8MlJq7046837ZiAIhIxGMmMoCUJTBQAQoPH8tIcwUOE4wgyBIjFY7CawGEpUUAx1lZSPETA4nkdKUhYzNBNQy4l6IICzlVPAURiEN2sHFeBBIAwGumfP7/sxEQA7]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/images/spacer.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhAQABAJAAAAAAAAAAACH5BAEUAAAALAAAAAABAAEAAAICRAEAOw==]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/images/statusbar_resize.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhCwAUAJECAICAgP///////wAAACH5BAEAAAIALAAAAAALABQAAAIglI+py+0PowotAGbvBDplQSGfJXKgaYzoeY3sS5pq1xQAOw==]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/images/undo.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhFAAUAMMLADpdnpSs0D913LnF36e31l5+xl9+tavB7XKd7z9nulF/3c/X42KS6JSz8FKI8gAAACH5BAEAAA8ALAAAAAAUABQAAARc8MlJq7046831OuDSPUdjNmDWSCUiJImSXmjJwIUBOAeG/AhYQAJQrC4MBwNhGExiR4tC4EAwRJJY7yJ4wQCSRcLhHD0IAoZZUnAQzAuCo7AeOBRv8yGAXfv/ZhEAOw==]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/images/word_wrap.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhFAAUAPcAAAAAAAQCBExGZFdPb2RefAVXpRxqtDR2vHRsiEyGxIR+lJSOpJyarKyqt/Dw9fr7/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAP8ALAAAAAAUABQAAAiUAP8JHEiwoMGDCBMqRDhAgMOHEB8OKCjggQOLFi9qtCiA4oMGDBYoQICAQEOHDjoSFOCgpcuXLlUOrNhggciSJh+mpAizZ0uZAmmGVDCSwMUCPz1udPngQQGOHgMEaErVgNOLQP9VlIrxwQGrTx9k3Tq1aYKvBcKOfcCV6leqYqOWrQp3Ldy7VLOejMh34sK/gAsGBAA7]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/keyboard.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoNCiAqIGpRdWVyeSBIb3RrZXlzIFBsdWdpbg0KICogQ29weXJpZ2h0IDIwMTAsIEpvaG4gUmVzaWcNCiAqIER1YWwgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBvciBHUEwgVmVyc2lvbiAyIGxpY2Vuc2VzLg0KICoNCiAqIEJhc2VkIHVwb24gdGhlIHBsdWdpbiBieSBUenVyeSBCYXIgWW9jaGF5Og0KICogaHR0cDovL2dpdGh1Yi5jb20vdHp1cnlieS9ob3RrZXlzDQogKg0KICogT3JpZ2luYWwgaWRlYSBieToNCiAqIEJpbm55IFYgQSwgaHR0cDovL3d3dy5vcGVuanMuY29tL3NjcmlwdHMvZXZlbnRzL2tleWJvYXJkX3Nob3J0Y3V0cy8NCiovDQoNCihmdW5jdGlvbihqUXVlcnkpew0KDQoJalF1ZXJ5LmhvdGtleXMgPSB7DQoJCXZlcnNpb246ICIwLjgiLA0KDQoJCXNwZWNpYWxLZXlzOiB7DQoJCQk4OiAiYmFja3NwYWNlIiwgOTogInRhYiIsIDEzOiAicmV0dXJuIiwgMTY6ICJzaGlmdCIsIDE3OiAiY3RybCIsIDE4OiAiYWx0IiwgMTk6ICJwYXVzZSIsDQoJCQkyMDogImNhcHNsb2NrIiwgMjc6ICJlc2MiLCAzMjogInNwYWNlIiwgMzM6ICJwYWdldXAiLCAzNDogInBhZ2Vkb3duIiwgMzU6ICJlbmQiLCAzNjogImhvbWUiLA0KCQkJMzc6ICJsZWZ0IiwgMzg6ICJ1cCIsIDM5OiAicmlnaHQiLCA0MDogImRvd24iLCA0NTogImluc2VydCIsIDQ2OiAiZGVsIiwgDQoJCQk5NjogIjAiLCA5NzogIjEiLCA5ODogIjIiLCA5OTogIjMiLCAxMDA6ICI0IiwgMTAxOiAiNSIsIDEwMjogIjYiLCAxMDM6ICI3IiwNCgkJCTEwNDogIjgiLCAxMDU6ICI5IiwgMTA2OiAiKiIsIDEwNzogIisiLCAxMDk6ICItIiwgMTEwOiAiLiIsIDExMSA6ICIvIiwgDQoJCQkxMTI6ICJmMSIsIDExMzogImYyIiwgMTE0OiAiZjMiLCAxMTU6ICJmNCIsIDExNjogImY1IiwgMTE3OiAiZjYiLCAxMTg6ICJmNyIsIDExOTogImY4IiwgDQoJCQkxMjA6ICJmOSIsIDEyMTogImYxMCIsIDEyMjogImYxMSIsIDEyMzogImYxMiIsIDE0NDogIm51bWxvY2siLCAxNDU6ICJzY3JvbGwiLCAxOTE6ICIvIiwgMjI0OiAibWV0YSINCgkJfSwNCg0KCQlzaGlmdE51bXM6IHsNCgkJCSJgIjogIn4iLCAiMSI6ICIhIiwgIjIiOiAiQCIsICIzIjogIiMiLCAiNCI6ICIkIiwgIjUiOiAiJSIsICI2IjogIl4iLCAiNyI6ICImIiwgDQoJCQkiOCI6ICIqIiwgIjkiOiAiKCIsICIwIjogIikiLCAiLSI6ICJfIiwgIj0iOiAiKyIsICI7IjogIjogIiwgIiciOiAiXCIiLCAiLCI6ICI8IiwgDQoJCQkiLiI6ICI+IiwgICIvIjogIj8iLCAgIlxcIjogInwiDQoJCX0NCgl9Ow0KDQoJZnVuY3Rpb24ga2V5SGFuZGxlciggaGFuZGxlT2JqICkgew0KCQkvLyBPbmx5IGNhcmUgd2hlbiBhIHBvc3NpYmxlIGlucHV0IGhhcyBiZWVuIHNwZWNpZmllZA0KCQlpZiAoIHR5cGVvZiBoYW5kbGVPYmouZGF0YSAhPT0gInN0cmluZyIgKSB7DQoJCQlyZXR1cm47DQoJCX0NCg0KCQl2YXIgb3JpZ0hhbmRsZXIgPSBoYW5kbGVPYmouaGFuZGxlciwNCgkJCWtleXMgPSBoYW5kbGVPYmouZGF0YS50b0xvd2VyQ2FzZSgpLnNwbGl0KCIgIik7DQoNCgkJaGFuZGxlT2JqLmhhbmRsZXIgPSBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCQkvLyBEb24ndCBmaXJlIGluIHRleHQtYWNjZXB0aW5nIGlucHV0cyB0aGF0IHdlIGRpZG4ndCBkaXJlY3RseSBiaW5kIHRvDQoJCQlpZiAoIHRoaXMgIT09IGV2ZW50LnRhcmdldCAmJiAoL3RleHRhcmVhfHNlbGVjdC9pLnRlc3QoIGV2ZW50LnRhcmdldC5ub2RlTmFtZSApIHx8DQoJCQkJIGV2ZW50LnRhcmdldC50eXBlID09PSAidGV4dCIpICkgew0KCQkJCXJldHVybjsNCgkJCX0NCg0KCQkJLy8gS2V5cHJlc3MgcmVwcmVzZW50cyBjaGFyYWN0ZXJzLCBub3Qgc3BlY2lhbCBrZXlzDQoJCQl2YXIgc3BlY2lhbCA9IGV2ZW50LnR5cGUgIT09ICJrZXlwcmVzcyIgJiYgalF1ZXJ5LmhvdGtleXMuc3BlY2lhbEtleXNbIGV2ZW50LndoaWNoIF0sDQoJCQkJY2hhcmFjdGVyID0gU3RyaW5nLmZyb21DaGFyQ29kZSggZXZlbnQud2hpY2ggKS50b0xvd2VyQ2FzZSgpLA0KCQkJCWtleSwgbW9kaWYgPSAiIiwgcG9zc2libGUgPSB7fTsNCg0KCQkJLy8gY2hlY2sgY29tYmluYXRpb25zIChhbHR8Y3RybHxzaGlmdCthbnl0aGluZykNCgkJCWlmICggZXZlbnQuYWx0S2V5ICYmIHNwZWNpYWwgIT09ICJhbHQiICkgew0KCQkJCW1vZGlmICs9ICJhbHQrIjsNCgkJCX0NCg0KCQkJaWYgKCBldmVudC5jdHJsS2V5ICYmIHNwZWNpYWwgIT09ICJjdHJsIiApIHsNCgkJCQltb2RpZiArPSAiY3RybCsiOw0KCQkJfQ0KDQoJCQkvLyBUT0RPOiBOZWVkIHRvIG1ha2Ugc3VyZSB0aGlzIHdvcmtzIGNvbnNpc3RlbnRseSBhY3Jvc3MgcGxhdGZvcm1zDQoJCQlpZiAoIGV2ZW50Lm1ldGFLZXkgJiYgIWV2ZW50LmN0cmxLZXkgJiYgc3BlY2lhbCAhPT0gIm1ldGEiICkgew0KCQkJCW1vZGlmICs9ICJtZXRhKyI7DQoJCQl9DQoNCgkJCWlmICggZXZlbnQuc2hpZnRLZXkgJiYgc3BlY2lhbCAhPT0gInNoaWZ0IiApIHsNCgkJCQltb2RpZiArPSAic2hpZnQrIjsNCgkJCX0NCg0KCQkJaWYgKCBzcGVjaWFsICkgew0KCQkJCXBvc3NpYmxlWyBtb2RpZiArIHNwZWNpYWwgXSA9IHRydWU7DQoNCgkJCX0gZWxzZSB7DQoJCQkJcG9zc2libGVbIG1vZGlmICsgY2hhcmFjdGVyIF0gPSB0cnVlOw0KCQkJCXBvc3NpYmxlWyBtb2RpZiArIGpRdWVyeS5ob3RrZXlzLnNoaWZ0TnVtc1sgY2hhcmFjdGVyIF0gXSA9IHRydWU7DQoNCgkJCQkvLyAiJCIgY2FuIGJlIHRyaWdnZXJlZCBhcyAiU2hpZnQrNCIgb3IgIlNoaWZ0KyQiIG9yIGp1c3QgIiQiDQoJCQkJaWYgKCBtb2RpZiA9PT0gInNoaWZ0KyIgKSB7DQoJCQkJCXBvc3NpYmxlWyBqUXVlcnkuaG90a2V5cy5zaGlmdE51bXNbIGNoYXJhY3RlciBdIF0gPSB0cnVlOw0KCQkJCX0NCgkJCX0NCg0KCQkJZm9yICggdmFyIGkgPSAwLCBsID0ga2V5cy5sZW5ndGg7IGkgPCBsOyBpKysgKSB7DQoJCQkJaWYgKCBwb3NzaWJsZVsga2V5c1tpXSBdICkgew0KCQkJCQlyZXR1cm4gb3JpZ0hhbmRsZXIuYXBwbHkoIHRoaXMsIGFyZ3VtZW50cyApOw0KCQkJCX0NCgkJCX0NCgkJfTsNCgl9DQoNCglqUXVlcnkuZWFjaChbICJrZXlkb3duIiwgImtleXVwIiwgImtleXByZXNzIiBdLCBmdW5jdGlvbigpIHsNCgkJalF1ZXJ5LmV2ZW50LnNwZWNpYWxbIHRoaXMgXSA9IHsgYWRkOiBrZXlIYW5kbGVyIH07DQoJfSk7DQoNCn0pKCBqUXVlcnkgKTs=]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/langs/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/includes/edit_area/langs/bg.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoNCiAqCUJ1bGdhcmlhbiB0cmFuc2xhdGlvbg0KICoJQXV0aG9yOgkJVmFsZW50aW4gSHJpc3Rvdg0KICoJQ29tcGFueToJU09GVEtJVCBCdWxnYXJpYW4NCiAqCVNpdGU6CQlodHRwOi8vd3d3LnNvZnRraXQtYmcuY29tDQogKi8NCmVkaXRBcmVhTG9hZGVyLmxhbmdbImJnIl09ew0KbmV3X2RvY3VtZW50OiAi0L3QvtCyINC00L7QutGD0LzQtdC90YIiLA0Kc2VhcmNoX2J1dHRvbjogItGC0YrRgNGB0LXQvdC1INC4INC30LDQvNGP0L3QsCIsDQpzZWFyY2hfY29tbWFuZDogItGC0YrRgNGB0Lgg0YHQu9C10LTQstCw0YnQuNGPIC8g0L7RgtCy0L7RgNC4INC/0YDQvtC30L7RgNC10YYg0YEg0YLRitGA0YHQsNGH0LrQsCIsDQpzZWFyY2g6ICLRgtGK0YDRgdC10L3QtSIsDQpyZXBsYWNlOiAi0LfQsNC80Y/QvdCwIiwNCnJlcGxhY2VfY29tbWFuZDogItC30LDQvNGP0L3QsCAvINC+0YLQstC+0YDQuCDQv9GA0L7Qt9C+0YDQtdGGINGBINGC0YrRgNGB0LDRh9C60LAiLA0KZmluZF9uZXh0OiAi0L3QsNC80LXRgNC4INGB0LvQtdC00LLQsNGJ0LjRjyIsDQpyZXBsYWNlX2FsbDogItC30LDQvNC10L3QuCDQstGB0LjRh9C60LgiLA0KcmVnX2V4cDogItGA0LXQs9C+0LvRj9GA0L3QuCDQuNC30YDQsNC30LgiLA0KbWF0Y2hfY2FzZTogItGH0YPRgdGC0LLQuNGC0LXQu9C10L0g0LrRitC8INGA0LXQs9C40YHRgtGK0YDQsCIsDQpub3RfZm91bmQ6ICLQvdGP0LzQsCDRgNC10LfRg9C70YLQsNGCLiIsDQpvY2N1cnJlbmNlX3JlcGxhY2VkOiAi0LfQsNC80Y/QvdCw0YLQsCDQtSDQvtGB0YrRidC10YHRgtCy0LXQvdCwLiIsDQpzZWFyY2hfZmllbGRfZW1wdHk6ICLQn9C+0LvQtdGC0L4g0LfQsCDRgtGK0YDRgdC10L3QtSDQtSDQv9GA0LDQt9C90L4iLA0KcmVzdGFydF9zZWFyY2hfYXRfYmVnaW46ICLQlNC+INC60YDQsNGPINC90LAg0LTQvtC60YPQvNC10L3RgtCwLiDQn9C+0YfQvdC4INGBINC90LDRh9Cw0LvQvtGC0L4uIiwNCm1vdmVfcG9wdXA6ICLQv9GA0LXQvNC10YHRgtC4INC/0YDQvtC30L7RgNC10YbQsCDRgSDRgtGK0YDRgdCw0YfQutCw0YLQsCIsDQpmb250X3NpemU6ICItLdCg0LDQt9C80LXRgCDQvdCwINGI0YDQuNGE0YLQsC0tIiwNCmdvX3RvX2xpbmU6ICLQv9GA0LXQvNC10L3QuCDQutGK0Lwg0YDQtdC00LAiLA0KZ29fdG9fbGluZV9wcm9tcHQ6ICLQv9GA0LXQvNC10L3QuCDQutGK0Lwg0L3QvtC80LXRgNCwINC90LAg0YDQtdC00LA6IiwNCnVuZG86ICLQvtGC0LzQtdC90LgiLA0KcmVkbzogItCy0YrRgNC90LgiLA0KY2hhbmdlX3Ntb290aF9zZWxlY3Rpb246ICLQstC60LvRjtGH0Lgv0LjQt9C60LvRjtGH0Lgg0L3Rj9C60L7QuSDQvtGCINGE0YPQvdC60YbQuNC40YLQtSDQt9CwINC/0YDQtdCz0LvQtdC0ICjQv9C+INC60YDQsNGB0LjQstC+LCDQvdC+INC/0L7QstC10YfQtSDQvdCw0YLQvtCy0LDRgNCy0LApIiwNCmhpZ2hsaWdodDogItC/0YDQtdCy0LrQu9GO0YfQstCw0L3QtSDQvdCwINC+0YbQstC10YLRj9Cy0LDQvdC1INC90LAg0YHQuNC90YLQsNC60YHQuNGB0LAg0LLQutC70Y7Rh9C10L3QsC/QuNC30LrQu9GO0YfQtdC90LAiLA0KcmVzZXRfaGlnaGxpZ2h0OiAi0LLRitGB0YLQsNC90L7QstC4INC+0YbQstC10YLRj9Cy0LDQvdC1INC90LAg0YHQuNC90YLQsNC60YHQuNGB0LAgKNCw0LrQviDQvdC1INC1INGB0LjQvdGF0YDQvtC90LjQt9C40YDQsNC9INGBINGC0LXQutGB0YLQsCkiLA0Kd29yZF93cmFwOiAi0YDQtdC20LjQvCDQvdCwINC/0YDQtdC90LDRgdGP0L3QtSDQvdCwINC00YrQu9Cz0Lgg0YDQtdC00L7QstC1IiwNCmhlbHA6ICLQt9CwINC/0YDQvtCz0YDQsNC80LDRgtCwIiwNCnNhdmU6ICLRgdGK0YXRgNCw0L3QuCIsDQpsb2FkOiAi0LfQsNGA0LXQtNC4IiwNCmxpbmVfYWJicjogItCh0YLRgCIsDQpjaGFyX2FiYnI6ICLQodGC0LvQsSIsDQpwb3NpdGlvbjogItCf0L7Qt9C40YbQuNGPIiwNCnRvdGFsOiAi0JLRgdC40YfQutC+IiwNCmNsb3NlX3BvcHVwOiAi0LfQsNGC0LLQvtGA0Lgg0L/RgNC+0LfQvtGA0LXRhtCwIiwNCnNob3J0Y3V0czogItCR0YrRgNC30Lgg0LrQu9Cw0LLQuNGI0LgiLA0KYWRkX3RhYjogItC00L7QsdCw0LLQuCDRgtCw0LHRg9C70LDRhtC40Y8g0LIg0YLQtdC60YHRgtCwIiwNCnJlbW92ZV90YWI6ICLQv9GA0LXQvNCw0YXQvdC4INGC0LDQsdGD0LvQsNGG0LjRj9GC0LAg0LIg0YLQtdC60YHRgtCwIiwNCmFib3V0X25vdGljZTogItCS0L3QuNC80LDQvdC40LU6INC40LfQv9C+0LvQt9Cy0LDQudGC0LUg0YTRg9C90LrRhtC40Y/RgtCwINC+0YbQstC10YLRj9Cy0LDQvdC1INC90LAg0YHQuNC90YLQsNC60YHQuNGB0LAg0YHQsNC80L4g0LfQsCDQvNCw0LvQutC4INGC0LXQutGB0YLQvtCy0LUiLA0KdG9nZ2xlOiAi0J/RgNC10LLQutC70Y7Rh9C4INGA0LXQtNCw0LrRgtC+0YAiLA0KYWNjZXNza2V5OiAi0JHRitGA0Lcg0LrQu9Cw0LLQuNGIIiwNCnRhYjogIlRhYiIsDQpzaGlmdDogIlNoaWZ0IiwNCmN0cmw6ICJDdHJsIiwNCmVzYzogIkVzYyIsDQpwcm9jZXNzaW5nOiAi0JfQsNGA0LXQttC00LDQvdC1Li4uIiwNCmZ1bGxzY3JlZW46ICLQvdCwINGG0Y/QuyDQtdC60YDQsNC9IiwNCnN5bnRheF9zZWxlY3Rpb246ICItLdCh0LjQvdGC0LDQutGB0LjRgS0tIiwNCmNsb3NlX3RhYjogItCX0LDRgtCy0L7RgNC4INGE0LDQudC70LAiDQp9Ow0K]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/langs/cs.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ZWRpdEFyZWFMb2FkZXIubGFuZ1siY3MiXT17DQpuZXdfZG9jdW1lbnQ6ICJOb3bDvSBkb2t1bWVudCIsDQpzZWFyY2hfYnV0dG9uOiAiTmFqZGkgYSBuYWhyYcSPIiwNCnNlYXJjaF9jb21tYW5kOiAiSGxlZGVqIGRhbMWhw60gLyBvdGV2xZlpIHZ5aGxlZMOhdmFjw60gcG9sZSIsDQpzZWFyY2g6ICJIbGVkZWoiLA0KcmVwbGFjZTogIk5haHJhxI8iLA0KcmVwbGFjZV9jb21tYW5kOiAiTmFocmHEjyAvIG90ZXbFmWkgdnlobGVkw6F2YWPDrSBwb2xlIiwNCmZpbmRfbmV4dDogIk5hamRpIGRhbMWhw60iLA0KcmVwbGFjZV9hbGw6ICJOYWhyYcSPIHbFoWUiLA0KcmVnX2V4cDogInBsYXRuw6kgdsO9cmF6eSIsDQptYXRjaF9jYXNlOiAidnlob2Rub2NlbsOpIHbDvXJhenkiLA0Kbm90X2ZvdW5kOiAibmVuYWxlemVuw6kuIiwNCm9jY3VycmVuY2VfcmVwbGFjZWQ6ICJ2w71za3l0eSBuYWhyYXplbsOpLiIsDQpzZWFyY2hfZmllbGRfZW1wdHk6ICJQb2xlIHZ5aGxlZMOhdsOhbsOtIGplIHByw6F6ZG7DqSIsDQpyZXN0YXJ0X3NlYXJjaF9hdF9iZWdpbjogIkRvc2HFvmVuIGtvbmVjIHNvdWJvcnUsIHphxI3DrW7DoW0gb2QgemHEjcOhdGt1LiIsDQptb3ZlX3BvcHVwOiAiUMWZZXN1xYggdnlobGVkw6F2YWPDrSBva25vIiwNCmZvbnRfc2l6ZTogIi0tVmVsaWtvc3QgdGV4dHUtLSIsDQpnb190b19saW5lOiAiUMWZZWpkaSBuYSDFmcOhZGVrIiwNCmdvX3RvX2xpbmVfcHJvbXB0OiAiUMWZZWpkaSBuYSDFmcOhZGVrOiIsDQp1bmRvOiAia3JvayB6cMSbdCIsDQpyZWRvOiAiem5vdnUiLA0KY2hhbmdlX3Ntb290aF9zZWxlY3Rpb246ICJQb3ZvbGl0IG5lYm8gemFrw6F6YXQgbsSba3RlcsOpIHplIHpvYnJhemVuw71jaCBmdW5rY8OtICjDusSNZWxuxJtqxaHDrSB6b2JyYXplbsOtIHBvxb5hZHVqZSB2xJt0xaHDrSB6YXTDrcW+ZW7DrSBwcm9jZXNvcnUpIiwNCmhpZ2hsaWdodDogIlp2w71yYXrFiG92w6Fuw60gc3ludGF4ZSB6YXAuL3Z5cC4iLA0KcmVzZXRfaGlnaGxpZ2h0OiAiT2Jub3ZpdCB6dsO9cmF6bsSbbsOtICh2IHDFmcOtcGFkxJsgbmVzcm92bmFsb3N0w60pIiwNCndvcmRfd3JhcDogInRvZ2dsZSB3b3JkIHdyYXBwaW5nIG1vZGUiLA0KaGVscDogIk8gcHJvZ3JhbXUiLA0Kc2F2ZTogIlVsb8W+aXQiLA0KbG9hZDogIk90ZXbFmcOtdCIsDQpsaW5lX2FiYnI6ICLFmC4iLA0KY2hhcl9hYmJyOiAiUy4iLA0KcG9zaXRpb246ICJQb3ppY2UiLA0KdG90YWw6ICJDZWxrZW0iLA0KY2xvc2VfcG9wdXA6ICJaYXbFmcOtdCBva25vIiwNCnNob3J0Y3V0czogIlprcmF0a3kiLA0KYWRkX3RhYjogIlDFmWlkYXQgdGFidWxvdsOhbsOtIHRleHR1IiwNCnJlbW92ZV90YWI6ICJPZHRzcmFuaXQgdGFidWxvdsOhbsOtIHRleHR1IiwNCmFib3V0X25vdGljZTogIlVwb3pvcm7Em27DrSEgRnVua2NlIHp2w71yYXrFiG92w6Fuw60gdGV4dHUgamUgayBkaXNwb3ppY2kgcG91emUgcHJvIG1hbMO9IHRleHQiLA0KdG9nZ2xlOiAiUMWZZXBub3V0IGVkaXRvciIsDQphY2Nlc3NrZXk6ICJQxZnDrXN0dXBvdsOhIGtsw6F2ZXNhIiwNCnRhYjogIlrDoWxvxb5rYSIsDQpzaGlmdDogIlNoaWZ0IiwNCmN0cmw6ICJDdHJsIiwNCmVzYzogIkVzYyIsDQpwcm9jZXNzaW5nOiAiWnByYWNvdsOhdsOhbSAuLi4iLA0KZnVsbHNjcmVlbjogIkNlbMOhIG9icmF6b3ZrYSIsDQpzeW50YXhfc2VsZWN0aW9uOiAiLS12eWJlciB6dsO9cmF6xYhvdmHEjS0tIiwNCmNsb3NlX3RhYjogIkNsb3NlIGZpbGUiDQp9Ow0K]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/langs/de.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ZWRpdEFyZWFMb2FkZXIubGFuZ1siZGUiXT17DQpuZXdfZG9jdW1lbnQ6ICJOZXVlcyBEb2t1bWVudCIsDQpzZWFyY2hfYnV0dG9uOiAiU3VjaGVuIHVuZCBFcnNldHplbiIsDQpzZWFyY2hfY29tbWFuZDogIldlaXRlcnN1Y2hlbiAvICZvdW1sO2ZmbmUgU3VjaGZlbGQiLA0Kc2VhcmNoOiAiU3VjaGVuIiwNCnJlcGxhY2U6ICJFcnNldHplbiIsDQpyZXBsYWNlX2NvbW1hbmQ6ICJFcnNldHplbiAvICZvdW1sO2ZmbmUgU3VjaGZlbGQiLA0KZmluZF9uZXh0OiAiV2VpdGVyc3VjaGVuIiwNCnJlcGxhY2VfYWxsOiAiRXJzZXR6ZSBhbGxlIFRyZWZmZXIiLA0KcmVnX2V4cDogInJlZ3VsJmF1bWw7cmUgQXVzZHImdXVtbDtja2UiLA0KbWF0Y2hfY2FzZTogInBhc3N0IGF1ZiBkZW4gQmVncmlmZjxiciAvPiIsDQpub3RfZm91bmQ6ICJOaWNodCBnZWZ1bmRlbi4iLA0Kb2NjdXJyZW5jZV9yZXBsYWNlZDogIkRpZSBWb3Jrb21tZW4gd3VyZGVuIGVyc2V0enQuIiwNCnNlYXJjaF9maWVsZF9lbXB0eTogIkxlZXJlcyBTdWNoZmVsZCIsDQpyZXN0YXJ0X3NlYXJjaF9hdF9iZWdpbjogIkVuZGUgZGVzIHp1IGR1cmNoc3VjaGVuZGVuIEJlcmVpY2hlcyBlcnJlaWNodC4gRXMgd2lyZCBkaWUgU3VjaGUgdm9uIEFuZmFuZyBhbiBmb3J0Z2VzZXR6dC4iLCAvL2ZpbmQgYSBzaG9ydGVyIHRyYW5zbGF0aW9uDQptb3ZlX3BvcHVwOiAiU3VjaGZlbnN0ZXIgYmV3ZWdlbiIsDQpmb250X3NpemU6ICItLVNjaHJpZnRnciZvdW1sOyZzemxpZztlLS0iLA0KZ29fdG9fbGluZTogIkdlaGUgenUgWmVpbGUiLA0KZ29fdG9fbGluZV9wcm9tcHQ6ICJHZWhlIHp1IFplaWxlbm51bW1tZXI6IiwNCnVuZG86ICJSJnV1bWw7Y2tnJmF1bWw7bmdpZyIsDQpyZWRvOiAiV2llZGVyaGVyc3RlbGxlbiIsDQpjaGFuZ2Vfc21vb3RoX3NlbGVjdGlvbjogIkFrdGl2aWVyZS9EZWFrdGl2aWVyZSBlaW5pZ2UgRmVhdHVyZXMgKHdlbmlnZXIgQmlsZHNjaGlybW51dHp1bmcgYWJlciBtZWhyIENQVS1CZWxhc3R1bmcpIiwNCmhpZ2hsaWdodDogIlN5bnRheCBIaWdobGlnaHRpbmcgYW4tIHVuZCBhdXNzY2hhbHRlbiIsDQpyZXNldF9oaWdobGlnaHQ6ICJIaWdobGlnaHRpbmcgenVyJnV1bWw7Y2tzZXR6ZW4gKGZhbGxzIG1pdCBUZXh0IG5pY2h0IGtvbmZvcm0pIiwNCndvcmRfd3JhcDogIlRvZ2dsZSB3b3JkIHdyYXBwaW5nIG1vZGUiLA0KaGVscDogIkluZm8iLA0Kc2F2ZTogIlNwZWljaGVybiIsDQpsb2FkOiAiJk91bWw7ZmZuZW4iLA0KbGluZV9hYmJyOiAiTG4iLA0KY2hhcl9hYmJyOiAiQ2giLA0KcG9zaXRpb246ICJQb3NpdGlvbiIsDQp0b3RhbDogIkdlc2FtdCIsDQpjbG9zZV9wb3B1cDogIlBvcHVwIHNjaGxpZSZzemxpZztlbiIsDQpzaG9ydGN1dHM6ICJTaG9ydGN1dHMiLA0KYWRkX3RhYjogIlRhYiB6dW0gVGV4dCBoaW56dWYmdXVtbDtnZW4iLA0KcmVtb3ZlX3RhYjogIlRhYiBhdXMgVGV4dCBlbnRmZXJuZW4iLA0KYWJvdXRfbm90aWNlOiAiQmVtZXJrdW5nOiBTeW50YXggSGlnaGxpZ2h0aW5nIGlzdCBudXIgZiZ1dW1sO3Iga3VyemUgVGV4dGUiLA0KdG9nZ2xlOiAiRWRpdG9yIGFuLSB1bmQgYXVzc2NoYWx0ZW4iLA0KYWNjZXNza2V5OiAiQWNjZXNza2V5IiwNCnRhYjogIlRhYiIsDQpzaGlmdDogIlNoaWZ0IiwNCmN0cmw6ICJDdHJsIiwNCmVzYzogIkVzYyIsDQpwcm9jZXNzaW5nOiAiSW4gQmVhcmJlaXR1bmcuLi4iLA0KZnVsbHNjcmVlbjogIkZ1bGwtU2NyZWVuIiwNCnN5bnRheF9zZWxlY3Rpb246ICItLVN5bnRheC0tIiwNCmNsb3NlX3RhYjogIkNsb3NlIGZpbGUiDQp9Ow0K]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/langs/dk.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ZWRpdEFyZWFMb2FkZXIubGFuZ1siZGsiXT17DQpuZXdfZG9jdW1lbnQ6ICJueXQgdG9tdCBkb2t1bWVudCIsDQpzZWFyY2hfYnV0dG9uOiAicyZvc2xhc2g7ZyBvZyBlcnN0YXQiLA0Kc2VhcmNoX2NvbW1hbmQ6ICJmaW5kIG4mYWVsaWc7c3RlIC8gJmFyaW5nO2JlbiBzJm9zbGFzaDtnZWZlbHQiLA0Kc2VhcmNoOiAicyZvc2xhc2g7ZyIsDQpyZXBsYWNlOiAiZXJzdGF0IiwNCnJlcGxhY2VfY29tbWFuZDogImVyc3RhdCAvICZhcmluZztiZW4gcyZvc2xhc2g7Z2VmZWx0IiwNCmZpbmRfbmV4dDogImZpbmQgbiZhZWxpZztzdGUiLA0KcmVwbGFjZV9hbGw6ICJlcnN0YXQgYWxsZSIsDQpyZWdfZXhwOiAicmVndWxhciBleHByZXNzaW9ucyIsDQptYXRjaF9jYXNlOiAiZm9yc2tlbCBww6Ugc3RvcmUvc20mYXJpbmc7IGJvZ3N0YXZlcjxiciAvPiIsDQpub3RfZm91bmQ6ICJub3QgZm91bmQuIiwNCm9jY3VycmVuY2VfcmVwbGFjZWQ6ICJvY2N1cmVuY2VzIHJlcGxhY2VkLiIsDQpzZWFyY2hfZmllbGRfZW1wdHk6ICJTZWFyY2ggZmllbGQgZW1wdHkiLA0KcmVzdGFydF9zZWFyY2hfYXRfYmVnaW46ICJFbmQgb2YgYXJlYSByZWFjaGVkLiBSZXN0YXJ0IGF0IGJlZ2luLiIsDQptb3ZlX3BvcHVwOiAiZmx5dCBzw7hnZXBvcHVwIiwNCmZvbnRfc2l6ZTogIi0tU2tyaWZ0c3TDuHJyZWxzZS0tIiwNCmdvX3RvX2xpbmU6ICJnJmFyaW5nOyB0aWwgbGluaWUiLA0KZ29fdG9fbGluZV9wcm9tcHQ6ICJnw6UgdGlsIGxpbmllbnVtbWVyOiIsDQp1bmRvOiAiZm9ydHJ5ZCIsDQpyZWRvOiAiZ2VudGFnIiwNCmNoYW5nZV9zbW9vdGhfc2VsZWN0aW9uOiAic2wmYXJpbmc7IGRpc3BsYXkgZnVua3Rpb25lciB0aWwvZnJhIChzbWFydGVyZSBkaXNwbGF5IG1lbiBtZXJlIENQVSBrciZhZWxpZzt2ZW5kZSkiLA0KaGlnaGxpZ2h0OiAic2wmYXJpbmc7IHN5bnRheCBoaWdobGlnaHQgdGlsL2ZyYSIsDQpyZXNldF9oaWdobGlnaHQ6ICJudWxzdGlsIGhpZ2hsaWdodCAoaHZpcyBkZW4gZXIgZGVzeW5rcm9uaXNlcmV0IGZyYSB0ZWtzdGVuKSIsDQp3b3JkX3dyYXA6ICJ0b2dnbGUgd29yZCB3cmFwcGluZyBtb2RlIiwNCmhlbHA6ICJvbSIsDQpzYXZlOiAiZ2VtIiwNCmxvYWQ6ICJoZW50IiwNCmxpbmVfYWJicjogIkxuIiwNCmNoYXJfYWJicjogIkNoIiwNCnBvc2l0aW9uOiAiUG9zaXRpb24iLA0KdG90YWw6ICJUb3RhbCIsDQpjbG9zZV9wb3B1cDogImx1ayBwb3B1cCIsDQpzaG9ydGN1dHM6ICJHZW52ZWplIiwNCmFkZF90YWI6ICJ0aWxmJm9zbGFzaDtqIHRhYnVsYXRpb24gdGlsIHRla3N0IiwNCnJlbW92ZV90YWI6ICJmamVybiB0YWJ1bGF0aW9uIGZyYSB0ZWtzdCIsDQphYm91dF9ub3RpY2U6ICJIdXNrOiBzeW50YXggaGlnaGxpZ2h0IGZ1bmt0aW9uZW4gYiZvc2xhc2g7ciBrdW4gYnJ1Z2UgdGlsIHNtJmFyaW5nOyB0ZWtzdGVyIiwNCnRvZ2dsZTogIlNsJmFyaW5nOyBlZGl0b3IgdGlsIC8gZnJhIiwNCmFjY2Vzc2tleTogIkFjY2Vzc2tleSIsDQp0YWI6ICJUYWIiLA0Kc2hpZnQ6ICJTa2lmdCIsDQpjdHJsOiAiQ3RybCIsDQplc2M6ICJFc2MiLA0KcHJvY2Vzc2luZzogIlByb2Nlc3NpbmcuLi4iLA0KZnVsbHNjcmVlbjogImZ1bGxzY3JlZW4iLA0Kc3ludGF4X3NlbGVjdGlvbjogIi0tU3ludGF4LS0iLA0KY2xvc2VfdGFiOiAiQ2xvc2UgZmlsZSINCn07DQo=]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/langs/en.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ZWRpdEFyZWFMb2FkZXIubGFuZ1siZW4iXT17DQpuZXdfZG9jdW1lbnQ6ICJuZXcgZW1wdHkgZG9jdW1lbnQiLA0Kc2VhcmNoX2J1dHRvbjogInNlYXJjaCBhbmQgcmVwbGFjZSIsDQpzZWFyY2hfY29tbWFuZDogInNlYXJjaCBuZXh0IC8gb3BlbiBzZWFyY2ggYXJlYSIsDQpzZWFyY2g6ICJzZWFyY2giLA0KcmVwbGFjZTogInJlcGxhY2UiLA0KcmVwbGFjZV9jb21tYW5kOiAicmVwbGFjZSAvIG9wZW4gc2VhcmNoIGFyZWEiLA0KZmluZF9uZXh0OiAiZmluZCBuZXh0IiwNCnJlcGxhY2VfYWxsOiAicmVwbGFjZSBhbGwiLA0KcmVnX2V4cDogInJlZ3VsYXIgZXhwcmVzc2lvbnMiLA0KbWF0Y2hfY2FzZTogIm1hdGNoIGNhc2UiLA0Kbm90X2ZvdW5kOiAibm90IGZvdW5kLiIsDQpvY2N1cnJlbmNlX3JlcGxhY2VkOiAib2NjdXJlbmNlcyByZXBsYWNlZC4iLA0Kc2VhcmNoX2ZpZWxkX2VtcHR5OiAiU2VhcmNoIGZpZWxkIGVtcHR5IiwNCnJlc3RhcnRfc2VhcmNoX2F0X2JlZ2luOiAiRW5kIG9mIGFyZWEgcmVhY2hlZC4gUmVzdGFydCBhdCBiZWdpbi4iLA0KbW92ZV9wb3B1cDogIm1vdmUgc2VhcmNoIHBvcHVwIiwNCmZvbnRfc2l6ZTogIi0tRm9udCBzaXplLS0iLA0KZ29fdG9fbGluZTogImdvIHRvIGxpbmUiLA0KZ29fdG9fbGluZV9wcm9tcHQ6ICJnbyB0byBsaW5lIG51bWJlcjoiLA0KdW5kbzogInVuZG8iLA0KcmVkbzogInJlZG8iLA0KY2hhbmdlX3Ntb290aF9zZWxlY3Rpb246ICJlbmFibGUvZGlzYWJsZSBzb21lIGRpc3BsYXkgZmVhdHVyZXMgKHNtYXJ0ZXIgZGlzcGxheSBidXQgbW9yZSBDUFUgY2hhcmdlKSIsDQpoaWdobGlnaHQ6ICJ0b2dnbGUgc3ludGF4IGhpZ2hsaWdodCBvbi9vZmYiLA0KcmVzZXRfaGlnaGxpZ2h0OiAicmVzZXQgaGlnaGxpZ2h0IChpZiBkZXN5bmNyb25pemVkIGZyb20gdGV4dCkiLA0Kd29yZF93cmFwOiAidG9nZ2xlIHdvcmQgd3JhcHBpbmcgbW9kZSIsDQpoZWxwOiAiYWJvdXQiLA0Kc2F2ZTogInNhdmUiLA0KbG9hZDogImxvYWQiLA0KbGluZV9hYmJyOiAiTG4iLA0KY2hhcl9hYmJyOiAiQ2giLA0KcG9zaXRpb246ICJQb3NpdGlvbiIsDQp0b3RhbDogIlRvdGFsIiwNCmNsb3NlX3BvcHVwOiAiY2xvc2UgcG9wdXAiLA0Kc2hvcnRjdXRzOiAiU2hvcnRjdXRzIiwNCmFkZF90YWI6ICJhZGQgdGFidWxhdGlvbiB0byB0ZXh0IiwNCnJlbW92ZV90YWI6ICJyZW1vdmUgdGFidWxhdGlvbiB0byB0ZXh0IiwNCmFib3V0X25vdGljZTogIk5vdGljZTogc3ludGF4IGhpZ2hsaWdodCBmdW5jdGlvbiBpcyBvbmx5IGZvciBzbWFsbCB0ZXh0IiwNCnRvZ2dsZTogIlRvZ2dsZSBlZGl0b3IiLA0KYWNjZXNza2V5OiAiQWNjZXNza2V5IiwNCnRhYjogIlRhYiIsDQpzaGlmdDogIlNoaWZ0IiwNCmN0cmw6ICJDdHJsIiwNCmVzYzogIkVzYyIsDQpwcm9jZXNzaW5nOiAiUHJvY2Vzc2luZy4uLiIsDQpmdWxsc2NyZWVuOiAiZnVsbHNjcmVlbiIsDQpzeW50YXhfc2VsZWN0aW9uOiAiLS1TeW50YXgtLSIsDQpjbG9zZV90YWI6ICJDbG9zZSBmaWxlIg0KfTsNCg==]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/langs/eo.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ZWRpdEFyZWFMb2FkZXIubGFuZ1siZW8iXT17DQpuZXdfZG9jdW1lbnQ6ICJub3ZhIGRva3VtZW50byAodmFraWdhcyBsYSBlbmhhdm9uKSIsDQpzZWFyY2hfYnV0dG9uOiAic2VyJiMyNjU7aSAvIGFuc3RhdGEmIzM2NTtpZ2kiLA0Kc2VhcmNoX2NvbW1hbmQ6ICJwbHVzZXImIzI2NTtpIC8gbWFsZmVybWkgbGEgc2VyJiMyNjU7by1mZW5lc3Ryb24iLA0Kc2VhcmNoOiAic2VyJiMyNjU7aSIsDQpyZXBsYWNlOiAiYW5zdGF0YSYjMzY1O2lnaSIsDQpyZXBsYWNlX2NvbW1hbmQ6ICJhbnN0YXRhJiMzNjU7aWdpIC8gbWFsZmVybWkgbGEgc2VyJiMyNjU7by1mZW5lc3Ryb24iLA0KZmluZF9uZXh0OiAic2VyJiMyNjU7aSIsDQpyZXBsYWNlX2FsbDogImFuc3RhdGEmIzM2NTtpZ2kgJiMyNjU7aW9uIiwNCnJlZ19leHA6ICJyZWd1bGEgZXNwcmltbyIsDQptYXRjaF9jYXNlOiAicmVzcGVrdGkgbGEgdXNrbGVjb24iLA0Kbm90X2ZvdW5kOiAibmUgdHJvdml0YS4iLA0Kb2NjdXJyZW5jZV9yZXBsYWNlZDogImFuc3RhdGEmIzM2NTtpZ29qIHBsZW51bWl0YWouIiwNCnNlYXJjaF9maWVsZF9lbXB0eTogIkxhIGthbXBvIGVzdGFzIG1hbHBsZW5hLiIsDQpyZXN0YXJ0X3NlYXJjaF9hdF9iZWdpbjogIkZpbm8gZGUgdGVrc3RvICYjMjg1O2lzcmlyYXRhLCAmIzI2NTt1IGRhJiMzNjU7cmlnaSBlbCBsYSBrb21lbmNvPyIsDQptb3ZlX3BvcHVwOiAibW92aSBsYSBzZXImIzI2NTtvLWZlbmVzdHJvbiIsDQpmb250X3NpemU6ICItLVRpcGFyYSBncmFuZG8tLSIsDQpnb190b19saW5lOiAiaXJpIGFsIGxhIGxpbmlvIiwNCmdvX3RvX2xpbmVfcHJvbXB0OiAiaXJpIGFsIGxhIGxpbmlvIG51bWVybzoiLA0KdW5kbzogInJlemlnbmkiLA0KcmVkbzogInJlZmFyaSIsDQpjaGFuZ2Vfc21vb3RoX3NlbGVjdGlvbjogImVibGlnaS9tYWxlYmxpZ2kgbGEgZnVua2Npb2ogZGUgdmlkaWdvIChwbGkgYm9uYSB2aWRpZ28sIHNlZCBwbGkgZGEgJiMzNDk7YXImIzI4NTtvIGRlIGxhICYjMjY1O2Vmb3JnYW5vKSIsDQpoaWdobGlnaHQ6ICJlYmxpZ2kvbWFsZWJsaWdpIGxhIHNpbnRha3NhbiBrb2xvcmlnb24iLA0KcmVzZXRfaGlnaGxpZ2h0OiAicmVwcmF2YWxvcml6aSBsYSBzaW50YWtzYW4ga29sb3JpZ29uIChzZSBtYWxzaW5rcm9uaWdvbiBkZSBsYSB0ZWtzdG8pIiwNCndvcmRfd3JhcDogInRvZ2dsZSB3b3JkIHdyYXBwaW5nIG1vZGUiLA0KaGVscDogInByaSIsDQpzYXZlOiAicmVnaXN0cmkiLA0KbG9hZDogIiYjMzQ5O2FyJiMyODU7aSIsDQpsaW5lX2FiYnI6ICJMbiIsDQpjaGFyX2FiYnI6ICJTZyIsDQpwb3NpdGlvbjogIlBvemljaW8iLA0KdG90YWw6ICJTdW1vIiwNCmNsb3NlX3BvcHVwOiAiZmVybWkgbGEgJiMzNDk7cHJ1Y2ZlbmVzdHJvbiIsDQpzaG9ydGN1dHM6ICJGdWxtb2tsYXZvIiwNCmFkZF90YWI6ICJhbGRvbmkgdGFib24gZW4gbGEgdGVrc3RvbiIsDQpyZW1vdmVfdGFiOiAiZm9yaWdpIHRhYmxvbiBlbCBsYSB0ZWtzdG8iLA0KYWJvdXRfbm90aWNlOiAiTm90bzogbGEgc2ludGFrc2Ega29sb3JpZ28gZXN0YXMgbnVyIHByaWthbGt1bGl0YSBwb3IgbWFsbG9uZ2FqIHRla3N0b2ouIiwNCnRvZ2dsZTogImJhc2t1bGlnaSBsYSByZWRha3RpbG9uIiwNCmFjY2Vzc2tleTogIkZ1bG1va2xhdm8iLA0KdGFiOiAiVGFiIiwNCnNoaWZ0OiAiTWFqIiwNCmN0cmw6ICJLdHJsIiwNCmVzYzogIkVzayIsDQpwcm9jZXNzaW5nOiAiJiMzNDk7YXJnYW50ZS4uLiIsDQpmdWxsc2NyZWVuOiAicGxlbmVrcmFuZSIsDQpzeW50YXhfc2VsZWN0aW9uOiAiLS1TaW50YWtzby0tIiwNCmNsb3NlX3RhYjogIkZlcm1pIGxhIGRvc2llcm9uIg0KfTs=]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/langs/es.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ZWRpdEFyZWFMb2FkZXIubGFuZ1siZXMiXT17DQpuZXdfZG9jdW1lbnQ6ICJudWV2byBkb2N1bWVudG8gdmFjw61vIiwNCnNlYXJjaF9idXR0b246ICJidXNjYXIgeSByZWVtcGxhemFyIiwNCnNlYXJjaF9jb21tYW5kOiAiYnVzY2FyIHNpZ3VpZW50ZSAvIGFicmlyIMOhcmVhIGRlIGLDunNxdWVkYSIsDQpzZWFyY2g6ICJidXNjYXIiLA0KcmVwbGFjZTogInJlZW1wbGF6YXIiLA0KcmVwbGFjZV9jb21tYW5kOiAicmVlbXBsYXphciAvIGFicmlyIMOhcmVhIGRlIGLDunNxdWVkYSIsDQpmaW5kX25leHQ6ICJlbmNvbnRyYXIgc2lndWllbnRlIiwNCnJlcGxhY2VfYWxsOiAicmVlbXBsYXphciB0b2RvcyIsDQpyZWdfZXhwOiAiZXhwcmVzaW9uZXMgcmVndWxhcmVzIiwNCm1hdGNoX2Nhc2U6ICJjb2luY2lkaXIgY2FwaXRhbGl6YWNpw7NuIiwNCm5vdF9mb3VuZDogIm5vIGVuY29udHJhZG8uIiwNCm9jY3VycmVuY2VfcmVwbGFjZWQ6ICJvY3VycmVuY2lhcyByZWVtcGxhemFkYXMuIiwNCnNlYXJjaF9maWVsZF9lbXB0eTogIkNhbXBvIGRlIGLDunNxdWVkYSB2YWPDrW8iLA0KcmVzdGFydF9zZWFyY2hfYXRfYmVnaW46ICJTZSBoYSBsbGVnYWRvIGFsIGZpbmFsIGRlbCDDoXJlYS4gU2UgdmEgYSBzZWd1aXIgZGVzZGUgZWwgcHJpbmNpcGlvLiIsDQptb3ZlX3BvcHVwOiAibW92ZXIgbGEgdmVudGFuYSBkZSBiw7pzcXVlZGEiLA0KZm9udF9zaXplOiAiLS1UYW1hw7FvIGRlIGxhIGZ1ZW50ZS0tIiwNCmdvX3RvX2xpbmU6ICJpciBhIGxhIGzDrW5lYSIsDQpnb190b19saW5lX3Byb21wdDogImlyIGEgbGEgbMOtbmVhIG7Dum1lcm86IiwNCnVuZG86ICJkZXNoYWNlciIsDQpyZWRvOiAicmVoYWNlciIsDQpjaGFuZ2Vfc21vb3RoX3NlbGVjdGlvbjogImFjdGl2YXIvZGVzYWN0aXZhciBhbGd1bmFzIGNhcmFjdGVyw61zdGljYXMgZGUgdmlzdWFsaXphY2nDs24gKHZpc3VhbGl6YWNpw7NuIG3DoXMgaW50ZWxpZ2VudGUgcGVybyBtw6FzIGNhcmdhIGRlIENQVSkiLA0KaGlnaGxpZ2h0OiAiaW50ZXJjYW1iaWFyIHJlc2FsdGFkbyBkZSBzaW50YXhpcyIsDQpyZXNldF9oaWdobGlnaHQ6ICJyZWluaWNpYWxpemFyIHJlc2FsdGFkbyAoc2kgbm8gZXN0YSBzaW5jcm9uaXphZG8gY29uIGVsIHRleHRvKSIsDQp3b3JkX3dyYXA6ICJ0b2dnbGUgd29yZCB3cmFwcGluZyBtb2RlIiwNCmhlbHA6ICJhY2VyY2EiLA0Kc2F2ZTogImd1YXJkYXIiLA0KbG9hZDogImNhcmdhciIsDQpsaW5lX2FiYnI6ICJMbiIsDQpjaGFyX2FiYnI6ICJDaCIsDQpwb3NpdGlvbjogIlBvc2ljacOzbiIsDQp0b3RhbDogIlRvdGFsIiwNCmNsb3NlX3BvcHVwOiAicmVjdWFkcm8gZGUgY2llcnJlIiwNCnNob3J0Y3V0czogIkF0YWpvcyIsDQphZGRfdGFiOiAiYcOxYWRpciB0YWJ1bGFkbyBhbCB0ZXh0byIsDQpyZW1vdmVfdGFiOiAiYm9ycmFyIHRhYnVsYWRvIGRlbCB0ZXh0byIsDQphYm91dF9ub3RpY2U6ICJBdmlzbzogZWwgcmVzYWx0YWRvIGRlIHNpbnRheGlzIHPDs2xvIGZ1bmNpb25hIHBhcmEgdGV4dG8gcGVxdWXDsW8iLA0KdG9nZ2xlOiAiQ2FtYmlhciBlZGl0b3IiLA0KYWNjZXNza2V5OiAiVGVjbGEgZGUgYWNjZXNvIiwNCnRhYjogIlRhYiIsDQpzaGlmdDogIk1hecO6c2MiLA0KY3RybDogIkN0cmwiLA0KZXNjOiAiRXNjIiwNCnByb2Nlc3Npbmc6ICJQcm9jZXNhbmRvLi4uIiwNCmZ1bGxzY3JlZW46ICJwYW50YWxsYSBjb21wbGV0YSIsDQpzeW50YXhfc2VsZWN0aW9uOiAiLS1TeW50YXgtLSIsDQpjbG9zZV90YWI6ICJDbG9zZSBmaWxlIg0KfTsNCg==]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/langs/fi.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ZWRpdEFyZWFMb2FkZXIubGFuZ1siZmkiXT17DQpuZXdfZG9jdW1lbnQ6ICJ1dXNpIHR5aGrDpCBkb2t1bWVudHRpIiwNCnNlYXJjaF9idXR0b246ICJldHNpIGphIGtvcnZhYSIsDQpzZWFyY2hfY29tbWFuZDogImV0c2kgc2V1cmFhdmEgLyBhdmFhIGV0c2ludMOkdmFsaWtrbyIsDQpzZWFyY2g6ICJldHNpIiwNCnJlcGxhY2U6ICJrb3J2YWEiLA0KcmVwbGFjZV9jb21tYW5kOiAia29ydmFhIC8gYXZhYSBldHNpbnTDpHZhbGlra28iLA0KZmluZF9uZXh0OiAiZXRzaSBzZXVyYWF2YSIsDQpyZXBsYWNlX2FsbDogImtvcnZhYSBrYWlra2kiLA0KcmVnX2V4cDogInPDpMOkbm7DtmxsaXNldCBsYXVzZWtrZWV0IiwNCm1hdGNoX2Nhc2U6ICJ0w6RzbcOkw6Qga2lyamFpbmtva29vbiIsDQpub3RfZm91bmQ6ICJlaSBsw7Z5dHlueXQuIiwNCm9jY3VycmVuY2VfcmVwbGFjZWQ6ICJlc2lpbnR5bcOkw6Qga29ydmF0dHUuIiwNCnNlYXJjaF9maWVsZF9lbXB0eTogIkhhZXR0YXZhIG1lcmtraWpvbm8gb24gdHloasOkIiwNCnJlc3RhcnRfc2VhcmNoX2F0X2JlZ2luOiAiQWx1ZWVuIGxvcHB1IHNhYXZ1dGV0dGlpbi4gQWxvaXRldGFhbiBhbHVzdGEuIiwNCm1vdmVfcG9wdXA6ICJzaWlycsOkIGV0c2ludMOkdmFsaWtrb2EiLA0KZm9udF9zaXplOiAiLS1Gb250aW4ga29rby0tIiwNCmdvX3RvX2xpbmU6ICJzaWlycnkgcml2aWxsZSIsDQpnb190b19saW5lX3Byb21wdDogIm1lbmUgcml2aWxsZToiLA0KdW5kbzogInBlcnV1dGEiLA0KcmVkbzogInRlZSB1dWRlbGxlZW4iLA0KY2hhbmdlX3Ntb290aF9zZWxlY3Rpb246ICJreXRrZS9zYW1tdXRhIGpvaXRha2luIG7DpHl0dMO2dG9pbWludG9qYSAow4RseWtrw6TDpG1waSB0b2ltaW50YSwgbXV0dGEgc3V1cmVtcGkgQ1BVIGt1b3JtaXR1cykiLA0KaGlnaGxpZ2h0OiAia3l0a2Ugc3ludGFrc2lrb3Jvc3R1cyBww6TDpGxsZS9wb2lzIiwNCnJlc2V0X2hpZ2hsaWdodDogInJlc2V0b2kgc3ludGFrc2lrb3Jvc3R1cyAoam9zIHRla3N0aSBlaSBvbGUgc3lua2Fzc2Ega29yb3N0dWtzZW4ga2Fuc3NhKSIsDQp3b3JkX3dyYXA6ICJ0b2dnbGUgd29yZCB3cmFwcGluZyBtb2RlIiwNCmhlbHA6ICJ0aWV0b2phIiwNCnNhdmU6ICJ0YWxsZW5uYSIsDQpsb2FkOiAibGF0YWEiLA0KbGluZV9hYmJyOiAiUnYiLA0KY2hhcl9hYmJyOiAiUG9zIiwNCnBvc2l0aW9uOiAiUGFpa2thIiwNCnRvdGFsOiAiWWh0ZWVuc8OkIiwNCmNsb3NlX3BvcHVwOiAic3VsamUgdmFsaWtrbyIsDQpzaG9ydGN1dHM6ICJQaWthdG9pbWlubm90IiwNCmFkZF90YWI6ICJsaXPDpMOkIHNpc2VubnlzIHRla3N0aWluIiwNCnJlbW92ZV90YWI6ICJwb2lzdGEgc2lzZW5ueXMgdGVrc3Rpc3TDpCIsDQphYm91dF9ub3RpY2U6ICJIdW9tYXV0dXM6IHN5bnRha3Npbmtvcm9zdHVzIHRvaW1paSB2YWluIHBpZW5lbGxlIHRla3N0aWxsZSIsDQp0b2dnbGU6ICJLeXRrZSBlZGl0b3JpIiwNCmFjY2Vzc2tleTogIlBpa2Fuw6RwcMOkaW4iLA0KdGFiOiAiVGFiIiwNCnNoaWZ0OiAiU2hpZnQiLA0KY3RybDogIkN0cmwiLA0KZXNjOiAiRXNjIiwNCnByb2Nlc3Npbmc6ICJPZG90YS4uLiIsDQpmdWxsc2NyZWVuOiAia29rbyBydXV0dSIsDQpzeW50YXhfc2VsZWN0aW9uOiAiLS1TeW50YWtzaS0tIiwNCmNsb3NlX3RhYjogIlN1bGplIHRpZWRvc3RvIg0KfTs=]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/langs/fr.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ZWRpdEFyZWFMb2FkZXIubGFuZ1siZnIiXT17DQpuZXdfZG9jdW1lbnQ6ICJub3V2ZWF1IGRvY3VtZW50IChlZmZhY2UgbGUgY29udGVudSkiLA0Kc2VhcmNoX2J1dHRvbjogInJlY2hlcmNoZXIgLyByZW1wbGFjZXIiLA0Kc2VhcmNoX2NvbW1hbmQ6ICJyZWNoZXJjaGVyIHN1aXZhbnQgLyBvdXZyaXIgbGEgZmVuJmVjaXJjO3RyZSBkZSByZWNoZXJjaGUiLA0Kc2VhcmNoOiAicmVjaGVyY2hlciIsDQpyZXBsYWNlOiAicmVtcGxhY2VyIiwNCnJlcGxhY2VfY29tbWFuZDogInJlbXBsYWNlciAvIG91dnJpciBsYSBmZW4mZWNpcmM7dHJlIGRlIHJlY2hlcmNoZSIsDQpmaW5kX25leHQ6ICJyZWNoZXJjaGVyIiwNCnJlcGxhY2VfYWxsOiAidG91dCByZW1wbGFjZXIiLA0KcmVnX2V4cDogImV4cHIuIHImZWFjdXRlO2d1bGkmZWdyYXZlO3JlIiwNCm1hdGNoX2Nhc2U6ICJyZXNwZWN0ZXIgbGEgY2Fzc2UiLA0Kbm90X2ZvdW5kOiAicGFzIHRyb3V2JmVhY3V0ZTsuIiwNCm9jY3VycmVuY2VfcmVwbGFjZWQ6ICJyZW1wbGFjZW1lbnRzICZlYWN1dGU7ZmZlY3R1JmVhY3V0ZTtzLiIsDQpzZWFyY2hfZmllbGRfZW1wdHk6ICJMZSBjaGFtcCBkZSByZWNoZXJjaGUgZXN0IHZpZGUuIiwNCnJlc3RhcnRfc2VhcmNoX2F0X2JlZ2luOiAiRmluIGR1IHRleHRlIGF0dGVpbnQsIHBvdXJzdWl0ZSBhdSBkJmVhY3V0ZTtidXQuIiwNCm1vdmVfcG9wdXA6ICJkJmVhY3V0ZTtwbGFjZXIgbGEgZmVuJmVjaXJjO3RyZSBkZSByZWNoZXJjaGUiLA0KZm9udF9zaXplOiAiLS1UYWlsbGUgcG9saWNlLS0iLA0KZ29fdG9fbGluZTogImFsbGVyICZhZ3JhdmU7IGxhIGxpZ25lIiwNCmdvX3RvX2xpbmVfcHJvbXB0OiAiYWxsZXIgYSBsYSBsaWduZSBudW1lcm86IiwNCnVuZG86ICJhbm51bGVyIiwNCnJlZG86ICJyZWZhaXJlIiwNCmNoYW5nZV9zbW9vdGhfc2VsZWN0aW9uOiAiYWN0aXZlci9kJmVhY3V0ZTtzYWN0aXZlciBkZXMgZm9uY3Rpb25zIGQnYWZmaWNoYWdlIChtZWlsbGV1ciBhZmZpY2hhZ2UgbWFpcyBwbHVzIGRlIGNoYXJnZSBwcm9jZXNzZXVyKSIsDQpoaWdobGlnaHQ6ICJhY3RpdmVyL2QmZWFjdXRlO3NhY3RpdmVyIGxhIGNvbG9yYXRpb24gc3ludGF4aXF1ZSIsDQpyZXNldF9oaWdobGlnaHQ6ICJyJmVhY3V0ZTtpbml0aWFsaXNlciBsYSBjb2xvcmF0aW9uIHN5bnRheGlxdWUgKHNpIGQmZWFjdXRlO3N5bmNyb25pcyZlYWN1dGU7ZSBkdSB0ZXh0ZSkiLA0Kd29yZF93cmFwOiAiYWN0aXZlci9kJmVhY3V0ZTtzYWN0aXZlciBsZXMgcmV0b3VycyAmYWdyYXZlOyBsYSBsaWduZSBhdXRvbWF0aXF1ZXMiLA0KaGVscDogIiZhZ3JhdmU7IHByb3BvcyIsDQpzYXZlOiAic2F1dmVnYXJkZXIiLA0KbG9hZDogImNoYXJnZXIiLA0KbGluZV9hYmJyOiAiTG4iLA0KY2hhcl9hYmJyOiAiQ2giLA0KcG9zaXRpb246ICJQb3NpdGlvbiIsDQp0b3RhbDogIlRvdGFsIiwNCmNsb3NlX3BvcHVwOiAiZmVybWVyIGxlIHBvcHVwIiwNCnNob3J0Y3V0czogIlJhY291cmNpcyBjbGF2aWVyIiwNCmFkZF90YWI6ICJham91dGVyIHVuZSB0YWJ1bGF0aW9uIGRhbnMgbGUgdGV4dGUiLA0KcmVtb3ZlX3RhYjogInJldGlyZXIgdW5lIHRhYnVsYXRpb24gZGFucyBsZSB0ZXh0ZSIsDQphYm91dF9ub3RpY2U6ICJOb3RlOiBsYSBjb2xvcmF0aW9uIHN5bnRheGlxdWUgbidlc3QgcHImZWFjdXRlO3Z1ZSBxdWUgcG91ciBkZSBjb3VydHMgdGV4dGVzLiIsDQp0b2dnbGU6ICJiYXNjdWxlciBsJyZlYWN1dGU7ZGl0ZXVyIiwNCmFjY2Vzc2tleTogIkFjY2Vzc2tleSIsDQp0YWI6ICJUYWIiLA0Kc2hpZnQ6ICJNYWoiLA0KY3RybDogIkN0cmwiLA0KZXNjOiAiRXNjIiwNCnByb2Nlc3Npbmc6ICJjaGFyZ2VtZW50Li4uIiwNCmZ1bGxzY3JlZW46ICJwbGVpbiAmZWFjdXRlO2NyYW4iLA0Kc3ludGF4X3NlbGVjdGlvbjogIi0tU3ludGF4ZS0tIiwNCmNsb3NlX3RhYjogIkZlcm1lciBsZSBmaWNoaWVyIg0KfTsNCg==]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/langs/hr.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ZWRpdEFyZWFMb2FkZXIubGFuZ1siaHIiXT17Cm5ld19kb2N1bWVudDogIk5vdmkgZG9rdW1lbnQiLApzZWFyY2hfYnV0dG9uOiAiVHJhxb5pIGkgaXptaWplbmkiLApzZWFyY2hfY29tbWFuZDogIlRyYcW+aSBkYWxqZSAvIE90dm9yaSBwcm96b3IgemEgdHJhxb5lbmplIiwKc2VhcmNoOiAiVHJhxb5pIiwKcmVwbGFjZTogIkl6bWlqZW5pIiwKcmVwbGFjZV9jb21tYW5kOiAiSXptaWplbmkgLyBPdHZvcmkgcHJvem9yIHphIHRyYcW+ZW5qZSIsCmZpbmRfbmV4dDogIlRyYcW+aSBkYWxqZSIsCnJlcGxhY2VfYWxsOiAiSXptamVuaSBzdmUiLApyZWdfZXhwOiAiUmVndWxhcm5pIGl6cmF6aSIsCm1hdGNoX2Nhc2U6ICJCaXRuYSB2ZWwuIHNsb3ZhIiwKbm90X2ZvdW5kOiAibmlqZSBuYcOwZW5vLiIsCm9jY3VycmVuY2VfcmVwbGFjZWQ6ICJpem1qZW5qZW5paC4iLApzZWFyY2hfZmllbGRfZW1wdHk6ICJQcmF6bm8gcG9samUgemEgdHJhxb5lbmplISIsCnJlc3RhcnRfc2VhcmNoX2F0X2JlZ2luOiAiRG/FoWFvIGRvIGtyYWphLiBQb8OoZW8gb2QgcG/DqGV0a2EuIiwKbW92ZV9wb3B1cDogIlBvbWFrbmkgcHJvem9yIiwKZm9udF9zaXplOiAiLS1WZWxpw6hpbmEgdGVrc3RhLS0iLApnb190b19saW5lOiAiT2RpIG5hIHJlZGFrIiwKZ29fdG9fbGluZV9wcm9tcHQ6ICJPZGkgbmEgcmVkYWs6IiwKdW5kbzogIlZyYXRpIG5hdHJhZyIsCnJlZG86ICJOYXByYXZpIHBvbm92byIsCmNoYW5nZV9zbW9vdGhfc2VsZWN0aW9uOiAiVWtsanXDqGkvaXNrbGp1w6hpIG5la2UgbW9ndcOmbm9zdGkgcHJpa2F6YSAocGFtZXRuaWppIHByaWtheiwgYWxpIHphZ3XFoWVuaWppIENQVSkiLApoaWdobGlnaHQ6ICJVa2xqdcOoaS9pc2tsanXDqGkgYm9qYW5qZSBzaW50YWtzZSIsCnJlc2V0X2hpZ2hsaWdodDogIlBvbm92aSBrb2xvcml6YWNpanUgKGFrbyBqZSBuZXNpbmtyb25pemlyYW5hIHMgdGVrc3RvbSkiLAp3b3JkX3dyYXA6ICJ0b2dnbGUgd29yZCB3cmFwcGluZyBtb2RlIiwKaGVscDogIk8gZWRpdF9hcmVhIiwKc2F2ZTogIlNwcmVtaSIsCmxvYWQ6ICJVw6hpdGFqIiwKbGluZV9hYmJyOiAiTG4iLApjaGFyX2FiYnI6ICJabiIsCnBvc2l0aW9uOiAiUG96aWNpamEiLAp0b3RhbDogIlVrdXBubyIsCmNsb3NlX3BvcHVwOiAiWmF0dm9yaSBwcm96b3IiLApzaG9ydGN1dHM6ICJLcmF0aWNlIiwKYWRkX3RhYjogIkRvZGFqIHRhYnVsYWNpanUiLApyZW1vdmVfdGFiOiAiTWFrbmkgdGFidWxhY2lqdSIsCmFib3V0X25vdGljZTogIk5hcG9tZW5hOiBrb2xvcml6aXJhbmplIHNpbnRha3NlIGplIHNhbW8gemEga3JhdGtlIGtvZG92ZSIsCnRvZ2dsZTogIlByZWJhY2kgbmHDqGluIHVyZcOwaXZhbmphIiwKYWNjZXNza2V5OiAiQWNjZXNza2V5IiwKdGFiOiAiVGFiIiwKc2hpZnQ6ICJTaGlmdCIsCmN0cmw6ICJDdHJsIiwKZXNjOiAiRXNjIiwKcHJvY2Vzc2luZzogIlByb2Nlc2lyYW0uLi4iLApmdWxsc2NyZWVuOiAiQ2lqZWxpIHByb3pvciIsCnN5bnRheF9zZWxlY3Rpb246ICItLVN5bnRheC0tIiwKY2xvc2VfdGFiOiAiQ2xvc2UgZmlsZSIKfTsK]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/langs/it.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ZWRpdEFyZWFMb2FkZXIubGFuZ1siaXQiXT17DQpuZXdfZG9jdW1lbnQ6ICJudW92byBkb2N1bWVudG8gdnVvdG8iLA0Kc2VhcmNoX2J1dHRvbjogImNlcmNhIGUgc29zdGl0dWlzY2kiLA0Kc2VhcmNoX2NvbW1hbmQ6ICJ0cm92YSBzdWNjZXNzaXZvIC8gYXByaSBmaW5lc3RyYSBkaSByaWNlcmNhIiwNCnNlYXJjaDogImNlcmNhIiwNCnJlcGxhY2U6ICJzb3N0aXR1aXNjaSIsDQpyZXBsYWNlX2NvbW1hbmQ6ICJzb3N0aXR1aXNjaSAvIGFwcmkgZmluZXN0cmEgZGkgcmljZXJjYSIsDQpmaW5kX25leHQ6ICJ0cm92YSBzdWNjZXNzaXZvIiwNCnJlcGxhY2VfYWxsOiAic29zdGl0dWlzY2kgdHV0dGkiLA0KcmVnX2V4cDogImVzcHJlc3Npb25pIHJlZ29sYXJpIiwNCm1hdGNoX2Nhc2U6ICJjb25mcm9udGEgbWFpdXNjb2xlL21pbnVzY29sZTxiciAvPiIsDQpub3RfZm91bmQ6ICJub24gdHJvdmF0by4iLA0Kb2NjdXJyZW5jZV9yZXBsYWNlZDogIm9jY29ycmVuemUgc29zdGl0dWl0ZS4iLA0Kc2VhcmNoX2ZpZWxkX2VtcHR5OiAiQ2FtcG8gcmljZXJjYSB2dW90byIsDQpyZXN0YXJ0X3NlYXJjaF9hdF9iZWdpbjogIkZpbmUgZGVsIHRlc3RvIHJhZ2dpdW50YS4gUmljb21pbmNpbyBkYWxsJ2luaXppby4iLA0KbW92ZV9wb3B1cDogInNwb3N0YSBwb3B1cCBkaSByaWNlcmNhIiwNCmZvbnRfc2l6ZTogIi0tIERpbWVuc2lvbmUgLS0iLA0KZ29fdG9fbGluZTogInZhaSBhbGxhIGxpbmVhIiwNCmdvX3RvX2xpbmVfcHJvbXB0OiAidmFpIGFsbGEgbGluZWEgbnVtZXJvOiIsDQp1bmRvOiAiYW5udWxsYSIsDQpyZWRvOiAicmlwZXRpIiwNCmNoYW5nZV9zbW9vdGhfc2VsZWN0aW9uOiAiYWJpbGl0YS9kaXNhYmlsaXRhIGFsY3VuZSBjYXJhdHRlcmlzdGljaGUgZGVsbGEgdmlzdWFsaXp6YXppb25lIiwNCmhpZ2hsaWdodDogImFiaWxpdGEvZGlzYWJpbGl0YSBjb2xvcmF6aW9uZSBkZWxsYSBzaW50YXNzaSIsDQpyZXNldF9oaWdobGlnaHQ6ICJhZ2dpb3JuYSBjb2xvcmF6aW9uZSAoc2Ugbm9uIHNpbmNyb25penphdGEpIiwNCndvcmRfd3JhcDogInRvZ2dsZSB3b3JkIHdyYXBwaW5nIG1vZGUiLA0KaGVscDogImluZm9ybWF6aW9uaSBzdS4uLiIsDQpzYXZlOiAic2FsdmEiLA0KbG9hZDogImNhcmljYSIsDQpsaW5lX2FiYnI6ICJMbiIsDQpjaGFyX2FiYnI6ICJDaCIsDQpwb3NpdGlvbjogIlBvc2l6aW9uZSIsDQp0b3RhbDogIlRvdGFsZSIsDQpjbG9zZV9wb3B1cDogImNoaXVkaSBwb3B1cCIsDQpzaG9ydGN1dHM6ICJTY29yY2lhdG9pZSIsDQphZGRfdGFiOiAiYWdnaXVuZ2kgdGFidWxhemlvbmUiLA0KcmVtb3ZlX3RhYjogInJpbXVvdmkgdGFidWxhemlvbmUiLA0KYWJvdXRfbm90aWNlOiAiQXZ2aXNvOiBsYSBjb2xvcmF6aW9uZSBkZWxsYSBzaW50YXNzaSB2YWxlIHNvbG8gY29uIHRlc3RvIHBpY2NvbG8iLA0KdG9nZ2xlOiAiQWJpbGl0YS9kaXNhYmlsaXRhIGVkaXRvciIsDQphY2Nlc3NrZXk6ICJBY2Nlc3NrZXkiLA0KdGFiOiAiVGFiIiwNCnNoaWZ0OiAiU2hpZnQiLA0KY3RybDogIkN0cmwiLA0KZXNjOiAiRXNjIiwNCnByb2Nlc3Npbmc6ICJJbiBjb3Jzby4uLiIsDQpmdWxsc2NyZWVuOiAiZnVsbHNjcmVlbiIsDQpzeW50YXhfc2VsZWN0aW9uOiAiLS1TeW50YXgtLSIsDQpjbG9zZV90YWI6ICJDbG9zZSBmaWxlIg0KfTsNCg==]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/langs/ja.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ZWRpdEFyZWFMb2FkZXIubGFuZ1siamEiXT17DQpuZXdfZG9jdW1lbnQ6ICLmlrDopo/kvZzmiJAiLA0Kc2VhcmNoX2J1dHRvbjogIuaknOe0ouODu+e9ruaPmyIsDQpzZWFyY2hfY29tbWFuZDogIuasoeOCkuaknOe0oiAvIOaknOe0oueqk+OCkuihqOekuiIsDQpzZWFyY2g6ICLmpJzntKIiLA0KcmVwbGFjZTogIue9ruaPmyIsDQpyZXBsYWNlX2NvbW1hbmQ6ICLnva7mj5sgLyDnva7mj5vnqpPjgpLooajnpLoiLA0KZmluZF9uZXh0OiAi5qyh44KS5qSc57SiIiwNCnJlcGxhY2VfYWxsOiAi5YWo572u5o+bIiwNCnJlZ19leHA6ICLmraPopo/ooajnj74iLA0KbWF0Y2hfY2FzZTogIuWkp+aWh+Wtl+Wwj+aWh+Wtl+OBruWMuuWIpSIsDQpub3RfZm91bmQ6ICLopovjgaTjgYvjgorjgb7jgZvjgpPjgIIiLA0Kb2NjdXJyZW5jZV9yZXBsYWNlZDogIue9ruaPm+OBl+OBvuOBl+OBn+OAgiIsDQpzZWFyY2hfZmllbGRfZW1wdHk6ICLmpJzntKLlr77osaHmloflrZfliJfjgYznqbrjgafjgZnjgIIiLA0KcmVzdGFydF9zZWFyY2hfYXRfYmVnaW46ICLntYLnq6/jgavpgZTjgZfjgb7jgZfjgZ/jgIHlp4vjgoHjgavmiLvjgorjgb7jgZkiLA0KbW92ZV9wb3B1cDogIuaknOe0oueqk+OCkuenu+WLlSIsDQpmb250X3NpemU6ICItLeODleOCqeODs+ODiOOCteOCpOOCui0tIiwNCmdvX3RvX2xpbmU6ICLmjIflrprooYzjgbjnp7vli5UiLA0KZ29fdG9fbGluZV9wcm9tcHQ6ICLmjIflrprooYzjgbjnp7vli5XjgZfjgb7jgZk6IiwNCnVuZG86ICLlhYPjgavmiLvjgZkiLA0KcmVkbzogIuOChOOCiuebtOOBlyIsDQpjaGFuZ2Vfc21vb3RoX3NlbGVjdGlvbjogIuOCueODoOODvOOCueihqOekuuOBruWIh+OCiuabv+OBiO+8iENQVeOCkuS9v+OBhOOBvuOBme+8iSIsDQpoaWdobGlnaHQ6ICLmp4vmloflvLfoqr/ooajnpLrjga7liIfjgormm7/jgYgiLA0KcmVzZXRfaGlnaGxpZ2h0OiAi5qeL5paH5by36Kq/6KGo56S644Gu44Oq44K744OD44OIIiwNCndvcmRfd3JhcDogInRvZ2dsZSB3b3JkIHdyYXBwaW5nIG1vZGUiLA0KaGVscDogIuODmOODq+ODl+OCkuihqOekuiIsDQpzYXZlOiAi5L+d5a2YIiwNCmxvYWQ6ICLoqq3jgb/ovrzjgb8iLA0KbGluZV9hYmJyOiAi6KGMIiwNCmNoYXJfYWJicjogIuaWh+WtlyIsDQpwb3NpdGlvbjogIuS9jee9riIsDQp0b3RhbDogIuWQiOioiCIsDQpjbG9zZV9wb3B1cDogIuODneODg+ODl+OCouODg+ODl+OCkumWieOBmOOCiyIsDQpzaG9ydGN1dHM6ICLjgrfjg6fjg7zjg4jjgqvjg4Pjg4giLA0KYWRkX3RhYjogIuOCv+ODluOCkuaMv+WFpeOBmeOCiyIsDQpyZW1vdmVfdGFiOiAi44K/44OW44KS5YmK6Zmk44GZ44KLIiwNCmFib3V0X25vdGljZTogIuazqOaEj++8muani+aWh+W8t+iqv+ihqOekuuOBr+efreOBhOODhuOCreOCueODiOOBp+OBl+OBi+acieWKueOBq+apn+iDveOBl+OBvuOBm+OCk+OAgiIsDQp0b2dnbGU6ICLjg4bjgq3jgrnjg4jjgqjjg6rjgqLjgahlZGl0QXJlYeOBruWIh+OCiuabv+OBiCIsDQphY2Nlc3NrZXk6ICLjgqLjgq/jgrvjgrnjgq3jg7wiLA0KdGFiOiAiVGFiIiwNCnNoaWZ0OiAiU2hpZnQiLA0KY3RybDogIkN0cmwiLA0KZXNjOiAiRXNjIiwNCnByb2Nlc3Npbmc6ICLlh6bnkIbkuK3jgafjgZkuLi4iLA0KZnVsbHNjcmVlbjogImZ1bGxzY3JlZW4iLA0Kc3ludGF4X3NlbGVjdGlvbjogIi0tU3ludGF4LS0iLA0KY2xvc2VfdGFiOiAiQ2xvc2UgZmlsZSINCn07DQo=]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/langs/mk.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ZWRpdEFyZWFMb2FkZXIubGFuZ1sibWsiXT17Cm5ld19kb2N1bWVudDogItCd0L7QsiDQtNC+0LrRg9C80LXQvdGCIiwKc2VhcmNoX2J1dHRvbjogItCd0LDRmNC00Lgg0Lgg0LfQsNC80LXQvdC4IiwKc2VhcmNoX2NvbW1hbmQ6ICLQkdCw0YDQsNGYINGB0LvQtdC00L3QviAvINCe0YLQstC+0YDQuCDQvdC+0LIg0L/RgNC+0LfQvtGA0LXRhiDQt9CwINC/0YDQtdCx0LDRgNGD0LLQsNGa0LUiLApzZWFyY2g6ICLQkdCw0YDQsNGYIiwKcmVwbGFjZTogItCX0LDQvNC10L3QuCIsCnJlcGxhY2VfY29tbWFuZDogItCX0LDQvNC10L3QuCAvINCe0YLQstC+0YDQuCDQv9GA0L7Qt9C+0YDQtdGGINC30LAg0L/RgNC10LHQsNGA0YPQstCw0ZrQtSIsCmZpbmRfbmV4dDogItC90LDRmNC00Lgg0YHQu9C10LTQvdC+IiwKcmVwbGFjZV9hbGw6ICLQl9Cw0LzQtdC90Lgg0LPQuCDRgdC40YLQtSIsCnJlZ19leHA6ICLQoNC10LPRg9C70LDRgNC90Lgg0LjQt9GA0LDQt9C4IiwKbWF0Y2hfY2FzZTogItCR0LjRgtC90LAg0LUg0LPQvtC70LXQvNC40L3QsNGC0LAg0L3QsCDQsdGD0LrQstC40YLQtSIsCm5vdF9mb3VuZDogItC90LUg0LUg0L/RgNC+0L3QsNGY0LTQtdC90L4uIiwKb2NjdXJyZW5jZV9yZXBsYWNlZDogItC30LDQvNC10L3QuC4iLApzZWFyY2hfZmllbGRfZW1wdHk6ICLQn9C+0LvQtdGC0L4g0LfQsCDQv9GA0LXQsdCw0YDRg9Cy0LDRmtC1INC1INC/0YDQsNC30L3QviIsCnJlc3RhcnRfc2VhcmNoX2F0X2JlZ2luOiAi0JrRgNCw0Zgg0L3QsCDQvtCx0LvQsNGB0YLQsC4g0KHRgtCw0YDRgtGD0LLQsNGYINC+0LQg0L/QvtGH0LXRgtC+0LouIiwKbW92ZV9wb3B1cDogItCf0L7QvNC10YHRgtC4INCz0L4g0L/RgNC+0LfQvtGA0LXRhtC+0YIiLApmb250X3NpemU6ICItLdCT0L7Qu9C10LzQuNC90LAg0L3QsCDRgtC10LrRgdGC0L7Rgi0tIiwKZ29fdG9fbGluZTogItCe0LTQuCDQvdCwINC70LjQvdC40ZjQsCIsCmdvX3RvX2xpbmVfcHJvbXB0OiAi0J7QtNC4INC90LAg0LvQuNC90LjRmNCwINGB0L4g0LHRgNC+0Zg6IiwKdW5kbzogItCS0YDQsNGC0LgiLApyZWRvOiAi0J/QvtCy0YLQvtGA0LgiLApjaGFuZ2Vfc21vb3RoX3NlbGVjdGlvbjogItCS0LrQu9GD0YfQuC/QuNGB0LrQu9GD0YfQuCDQvdC10LrQvtC4INC60LDRgNCw0LrRgtC10YDQuNGB0YLQuNC60Lgg0LfQsCDQv9GA0LjQutCw0LcgKNC/0L7Qv9Cw0LzQtdGC0LXQvSDQv9GA0LjQutCw0LcsINC90L4g0L/QvtCz0L7Qu9C10LzQviDQvtC/0YLQtdGA0LXRgtGD0LLQsNGa0LUg0LfQsCDQv9GA0L7RhtC10YHQvtGA0L7RgikiLApoaWdobGlnaHQ6ICLQktC60LvRg9GH0Lgv0LjRgdC60LvRg9GH0Lgg0L7RgdCy0LXRgtC70YPQstCw0ZrQtSDQvdCwINGB0LjQvdGC0LDQutGB0LAiLApyZXNldF9oaWdobGlnaHQ6ICLQoNC10YHQtdGC0LjRgNCw0Zgg0LPQviDQvtGB0LLQtdGC0LvRg9Cy0LDRmtC10YLQviDQvdCwINGB0LjQvdGC0LDQutGB0LAgKNC00L7QutC+0LvQutGDINC1INC00LXRgdC40L3RhdGA0L7QvdC40LfQuNGA0LDQvW8g0YHQviDRgtC10LrRgdGC0L7RgikiLAp3b3JkX3dyYXA6ICJ0b2dnbGUgd29yZCB3cmFwcGluZyBtb2RlIiwKaGVscDogItCX0LAiLApzYXZlOiAi0JfQsNGH0YPQstCw0ZgiLApsb2FkOiAi0JLRh9C40YLQsNGYIiwKbGluZV9hYmJyOiAi0JvQvSIsCmNoYXJfYWJicjogItCX0L0iLApwb3NpdGlvbjogItCf0L7Qt9C40YbQuNGY0LAiLAp0b3RhbDogItCS0LrRg9C/0L3QviIsCmNsb3NlX3BvcHVwOiAi0JfQsNGC0LLQvtGA0Lgg0LPQviDQv9GA0L7Qt9C+0YDQtdGG0L7RgiIsCnNob3J0Y3V0czogItCa0YDQsNGC0LXQvdC60LgiLAphZGRfdGFiOiAi0JTQvtC00LDRmCDRgtCw0LHRg9C70LDRhtC40ZjQsCDQvdCwINGC0LXQutGB0YLQvtGCIiwKcmVtb3ZlX3RhYjogItCe0YLRgdGC0YDQsNC90Lgg0ZjQsCDRgtCw0LHRg9C70LDRhtC40ZjQsNGC0LAiLAphYm91dF9ub3RpY2U6ICLQndCw0L/QvtC80LXQvdCwOiDQntGB0LLQtdGC0LvRg9Cy0LDRmtC10YLQviDQvdCwINGB0LjQvdGC0LDQvdGB0LAg0LUg0YHQsNC80L4g0LfQsCDQutGA0LDRgtC+0Log0YLQtdC60YHRgiIsCnRvZ2dsZTogItCh0LzQtdC90Lgg0L3QsNGH0LjQvSDQvdCwINGD0YDQtdC00YPQstCw0ZrQtSIsCmFjY2Vzc2tleTogIkFjY2Vzc2tleSIsCnRhYjogIlRhYiIsCnNoaWZ0OiAiU2hpZnQiLApjdHJsOiAiQ3RybCIsCmVzYzogIkVzYyIsCnByb2Nlc3Npbmc6ICLQntCx0YDQsNCx0L7RgtGD0LLQsNC8Li4uIiwKZnVsbHNjcmVlbjogItCm0LXQuyDQv9GA0L7Qt9C+0YDQtdGGIiwKc3ludGF4X3NlbGVjdGlvbjogIi0t0KHQuNC90YLQsNC60YHQsC0tIiwKY2xvc2VfdGFiOiAi0JjQt9Cx0LXRgNC4INC00LDRgtC+0YLQtdC60LAiCn07Cg==]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/langs/nl.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ZWRpdEFyZWFMb2FkZXIubGFuZ1sibmwiXT17DQpuZXdfZG9jdW1lbnQ6ICJuaWV1dyBsZWVnIGRvY3VtZW50IiwNCnNlYXJjaF9idXR0b246ICJ6b2VrIGVuIHZlcnZhbmciLA0Kc2VhcmNoX2NvbW1hbmQ6ICJ6b2VrIHZvbGdlbmRlIC8gem9la3NjaGVybSBvcGVuZW4iLA0Kc2VhcmNoOiAiem9layIsDQpyZXBsYWNlOiAidmVydmFuZyIsDQpyZXBsYWNlX2NvbW1hbmQ6ICJ2ZXJ2YW5nIC8gem9la3NjaGVybSBvcGVuZW4iLA0KZmluZF9uZXh0OiAidm9sZ2VuZGUgdmluZGVuIiwNCnJlcGxhY2VfYWxsOiAiYWxsZXMgdmVydmFuZ2VuIiwNCnJlZ19leHA6ICJyZWd1bGllcmUgZXhwcmVzc2llcyIsDQptYXRjaF9jYXNlOiAiaG9vZmRsZXR0ZXIgZ2V2b2VsaWciLA0Kbm90X2ZvdW5kOiAibmlldCBnZXZvbmRlbi4iLA0Kb2NjdXJyZW5jZV9yZXBsYWNlZDogIm9iamVjdCB2ZXJ2YW5nZW4uIiwNCnNlYXJjaF9maWVsZF9lbXB0eTogIlpvZWsgdmVsZCBsZWVnIiwNCnJlc3RhcnRfc2VhcmNoX2F0X2JlZ2luOiAiTmlldCBtZWVyIGluc3RhbnRpZXMgZ2V2b25kZW4sIGJlZ2luIG9wbmlldXciLA0KbW92ZV9wb3B1cDogInZlcnNsZWVwIHpvZWsgc2NoZXJtIiwNCmZvbnRfc2l6ZTogIi0tTGV0dGVyIGdyb290dGUtLSIsDQpnb190b19saW5lOiAiR2EgbmFhciByZWdlbCIsDQpnb190b19saW5lX3Byb21wdDogIkdhIG5hYXIgcmVnZWwgbnVtbWVyOiIsDQp1bmRvOiAiT25nZWRhYW4gbWFrZW4iLA0KcmVkbzogIk9wbmlldXcgZG9lbiIsDQpjaGFuZ2Vfc21vb3RoX3NlbGVjdGlvbjogInpldCB3YXQgc2NoZXJtb3B0aWVzIGFhbi91aXQgKGthbiBsYW5nemFtZXIgemlqbikiLA0KaGlnaGxpZ2h0OiAiemV0IHN5bnRheCBoaWdobGlnaHQgYWFuL3VpdCIsDQpyZXNldF9oaWdobGlnaHQ6ICJyZXNldCBoaWdobGlnaHQgKGluZGllbiBnZWRlc3luY2hyb25pemVlcmQpIiwNCndvcmRfd3JhcDogInRvZ2dsZSB3b3JkIHdyYXBwaW5nIG1vZGUiLA0KaGVscDogImluZm9ybWF0aWUiLA0Kc2F2ZTogIm9wc2xhYW4iLA0KbG9hZDogImxhZGVuIiwNCmxpbmVfYWJicjogIkxuIiwNCmNoYXJfYWJicjogIkNoIiwNCnBvc2l0aW9uOiAiUG9zaXRpZSIsDQp0b3RhbDogIlRvdGFhbCIsDQpjbG9zZV9wb3B1cDogIlBvcHVwIHNsdWl0ZW4iLA0Kc2hvcnRjdXRzOiAiU25lbGtvcHBlbGluZ2VuIiwNCmFkZF90YWI6ICJ2b2VnIHRhYnMgdG9lIGluIHRla3N0IiwNCnJlbW92ZV90YWI6ICJ2ZXJ3aWpkZXIgdGFicyB1aXQgdGVrc3QiLA0KYWJvdXRfbm90aWNlOiAiTm90aXRpZTogc3ludGF4IGhpZ2hsaWdodCBmdW5jdGllIGlzIGFsbGVlbiB2b29yIGtsZWluZSB0ZWtzdCIsDQp0b2dnbGU6ICJnZWF2YW5jZWVyZGUgYmV3ZXJraW5nc29wdGllcyIsDQphY2Nlc3NrZXk6ICJBY2Nlc3Nrbm9wIiwNCnRhYjogIlRhYiIsDQpzaGlmdDogIlNoaWZ0IiwNCmN0cmw6ICJDdHJsIiwNCmVzYzogIkVzYyIsDQpwcm9jZXNzaW5nOiAiVmVyd2Vya2VuLi4uIiwNCmZ1bGxzY3JlZW46ICJmdWxsc2NyZWVuIiwNCnN5bnRheF9zZWxlY3Rpb246ICItLVN5bnRheC0tIiwNCmNsb3NlX3RhYjogIkNsb3NlIGZpbGUiDQp9Ow0K]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/langs/pl.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ZWRpdEFyZWFMb2FkZXIubGFuZ1sicGwiXT17DQpuZXdfZG9jdW1lbnQ6ICJub3d5IGRva3VtZW50IiwNCnNlYXJjaF9idXR0b246ICJ6bmFqZMW6IGkgemFtaWXFhCIsDQpzZWFyY2hfY29tbWFuZDogInpuYWpkxbogbmFzdMSZcG55IiwNCnNlYXJjaDogInpuYWpkxboiLA0KcmVwbGFjZTogInphbWllxYQiLA0KcmVwbGFjZV9jb21tYW5kOiAiemFtaWXFhCIsDQpmaW5kX25leHQ6ICJuYXN0xJlwbnkiLA0KcmVwbGFjZV9hbGw6ICJ6YW1pZcWEIHdzenlzdGtvIiwNCnJlZ19leHA6ICJ3eXJhxbxlbmllIHJlZ3VsYXJuZSIsDQptYXRjaF9jYXNlOiAidXd6Z2zEmWRuaWogd2llbGtvxZvEhyBsaXRlcjxiciAvPiIsDQpub3RfZm91bmQ6ICJuaWUgem5hbGV6aW9uby4iLA0Kb2NjdXJyZW5jZV9yZXBsYWNlZDogInd5c3TEhXBpZcWEIHphbWllbmlvbm8uIiwNCnNlYXJjaF9maWVsZF9lbXB0eTogIk5pZSB3cHJvd2Fkem9ubyB0ZWtzdHUiLA0KcmVzdGFydF9zZWFyY2hfYXRfYmVnaW46ICJLb25pZWMgZG9rdW1lbnR1LiBXeXN6dWtpd2FuaWUgb2QgcG9jesSFdGt1LiIsDQptb3ZlX3BvcHVwOiAicHJ6ZXN1xYQgb2tpZW5rbyB3eXN6dWtpd2FuaWEiLA0KZm9udF9zaXplOiAiUm96bWlhciIsDQpnb190b19saW5lOiAiaWTFuiBkbyBsaW5paSIsDQpnb190b19saW5lX3Byb21wdDogIm51bWVyIGxpbmlpOiIsDQp1bmRvOiAiY29mbmlqIiwNCnJlZG86ICJwcnp5d3LDs8SHIiwNCmNoYW5nZV9zbW9vdGhfc2VsZWN0aW9uOiAid8WCxIVjei93ecWCxIVjeiBuaWVrdMOzcmUgb3BjamUgd3lnbMSFZHUgKHphYXdhbnNvd2FuZSBvcGNqZSB3eWdsxIVkdSBvYmNpxIXFvGFqxIUgcHJvY2Vzb3IpIiwNCmhpZ2hsaWdodDogInfFgsSFY3ovd3nFgsSFY3ogcG9kxZt3aWV0bGFuaWUgc2vFgmFkbmkiLA0KcmVzZXRfaGlnaGxpZ2h0OiAib2TFm3dpZcW8IHBvZMWbd2lldGxhbmllIHNrxYJhZG5pIChqZcWbbGkgcm96c3luY2hyb25pem93YcWCbyBzacSZIHogdGVrc3RlbSkiLA0Kd29yZF93cmFwOiAidG9nZ2xlIHdvcmQgd3JhcHBpbmcgbW9kZSIsDQpoZWxwOiAibyBwcm9ncmFtaWUiLA0Kc2F2ZTogInphcGlzeiIsDQpsb2FkOiAib3R3w7NyeiIsDQpsaW5lX2FiYnI6ICJMbiIsDQpjaGFyX2FiYnI6ICJabiIsDQpwb3NpdGlvbjogIlBvenljamEiLA0KdG90YWw6ICJXIHN1bWllIiwNCmNsb3NlX3BvcHVwOiAiemFta25paiBva2llbmtvIiwNCnNob3J0Y3V0czogIlNrcsOzdHkga2xhd2lhdHVyb3dlIiwNCmFkZF90YWI6ICJkb2RhaiB3Y2nEmWNpZSBkbyB6YXpuYWN6b25lZ28gdGVrc3R1IiwNCnJlbW92ZV90YWI6ICJ1c3XFhCB3Y2nEmWNpZSIsDQphYm91dF9ub3RpY2U6ICJVd2FnYTogcG9kxZt3aWV0bGFuaWUgc2vFgmFkbmkgbmllIGplc3QgemFsZWNhbmUgZGxhIGTFgnVnaWNoIHRla3N0w7N3IiwNCnRvZ2dsZTogIlfFgsSFY3ovd3nFgsSFY3ogZWR5dG9yIiwNCmFjY2Vzc2tleTogIkFsdCsiLA0KdGFiOiAiVGFiIiwNCnNoaWZ0OiAiU2hpZnQiLA0KY3RybDogIkN0cmwiLA0KZXNjOiAiRXNjIiwNCnByb2Nlc3Npbmc6ICJQcnpldHdhcnphbmllLi4uIiwNCmZ1bGxzY3JlZW46ICJmdWxsc2NyZWVuIiwNCnN5bnRheF9zZWxlY3Rpb246ICItLVN5bnRheC0tIiwNCmNsb3NlX3RhYjogIkNsb3NlIGZpbGUiDQp9Ow0K]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/langs/pt.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ZWRpdEFyZWFMb2FkZXIubGFuZ1sicHQiXT17DQpuZXdfZG9jdW1lbnQ6ICJOb3ZvIGRvY3VtZW50byIsDQpzZWFyY2hfYnV0dG9uOiAiTG9jYWxpemFyIGUgc3Vic3RpdHVpciIsDQpzZWFyY2hfY29tbWFuZDogIkxvY2FsaXphciBwcsOzeGltbyIsDQpzZWFyY2g6ICJMb2NhbGl6YXIiLA0KcmVwbGFjZTogIlN1YnN0aXR1aXIiLA0KcmVwbGFjZV9jb21tYW5kOiAiU3Vic3RpdHVpciIsDQpmaW5kX25leHQ6ICJMb2NhbGl6YXIiLA0KcmVwbGFjZV9hbGw6ICJTdWJzdC4gdHVkbyIsDQpyZWdfZXhwOiAiRXhwcmVzc8O1ZXMgcmVndWxhcmVzIiwNCm1hdGNoX2Nhc2U6ICJEaWZlcmVuY2lhciBtYWnDunNjdWxhcyBlIG1pbsO6c2N1bGFzIiwNCm5vdF9mb3VuZDogIk7Do28gZW5jb250cmFkby4iLA0Kb2NjdXJyZW5jZV9yZXBsYWNlZDogIk9jb3Jyw6puY2lhcyBzdWJzdGl0dWlkYXMiLA0Kc2VhcmNoX2ZpZWxkX2VtcHR5OiAiQ2FtcG8gbG9jYWxpemFyIHZhemlvLiIsDQpyZXN0YXJ0X3NlYXJjaF9hdF9iZWdpbjogIkZpbSBkYXMgb2NvcnLDqm5jaWFzLiBSZWNvbWXDp2FyIGRvIGluaWNpby4iLA0KbW92ZV9wb3B1cDogIk1vdmVyIGphbmVsYSIsDQpmb250X3NpemU6ICItLVRhbWFuaG8gZGEgZm9udGUtLSIsDQpnb190b19saW5lOiAiSXIgcGFyYSBsaW5oYSIsDQpnb190b19saW5lX3Byb21wdDogIklyIHBhcmEgYSBsaW5oYToiLA0KdW5kbzogIkRlc2ZhemVyIiwNCnJlZG86ICJSZWZhemVyIiwNCmNoYW5nZV9zbW9vdGhfc2VsZWN0aW9uOiAiT3DDp8O1ZXMgdmlzdWFpcyIsDQpoaWdobGlnaHQ6ICJDb3JlcyBkZSBzaW50YXhlIiwNCnJlc2V0X2hpZ2hsaWdodDogIlJlc2V0YXIgY29yZXMgKHNlIG7Do28gc2luY3Jvbml6YWRvKSIsDQp3b3JkX3dyYXA6ICJ0b2dnbGUgd29yZCB3cmFwcGluZyBtb2RlIiwNCmhlbHA6ICJTb2JyZSIsDQpzYXZlOiAiU2FsdmFyIiwNCmxvYWQ6ICJDYXJyZWdhciIsDQpsaW5lX2FiYnI6ICJMbiIsDQpjaGFyX2FiYnI6ICJDaCIsDQpwb3NpdGlvbjogIlBvc2nDp8OjbyIsDQp0b3RhbDogIlRvdGFsIiwNCmNsb3NlX3BvcHVwOiAiRmVjaGFyIiwNCnNob3J0Y3V0czogIlNob3J0Y3V0cyIsDQphZGRfdGFiOiAiQWRpY2lvbmFyIHRhYnVsYcOnw6NvIiwNCnJlbW92ZV90YWI6ICJSZW1vdmVyIHRhYnVsYcOnw6NvIiwNCmFib3V0X25vdGljZTogIkF0ZW7Dp8OjbzogQ29yZXMgZGUgc2ludGF4ZSBzw6NvIGluZGljYWRvcyBzb21lbnRlIHBhcmEgdGV4dG9zIHBlcXVlbm9zIiwNCnRvZ2dsZTogIkV4aWJpciBlZGl0b3IiLA0KYWNjZXNza2V5OiAiQWNjZXNza2V5IiwNCnRhYjogIlRhYiIsDQpzaGlmdDogIlNoaWZ0IiwNCmN0cmw6ICJDdHJsIiwNCmVzYzogIkVzYyIsDQpwcm9jZXNzaW5nOiAiUHJvY2Vzc2FuZG8uLi4iLA0KZnVsbHNjcmVlbjogImZ1bGxzY3JlZW4iLA0Kc3ludGF4X3NlbGVjdGlvbjogIi0tU3ludGF4LS0iLA0KY2xvc2VfdGFiOiAiQ2xvc2UgZmlsZSINCn07DQo=]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/langs/ru.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ZWRpdEFyZWFMb2FkZXIubGFuZ1sicnUiXT17DQpuZXdfZG9jdW1lbnQ6ICLQvdC+0LLRi9C5INC/0YPRgdGC0L7QuSDQtNC+0LrRg9C80LXQvdGCIiwNCnNlYXJjaF9idXR0b246ICLQv9C+0LjRgdC6INC4INC30LDQvNC10L3QsCIsDQpzZWFyY2hfY29tbWFuZDogItC40YHQutCw0YLRjCDRgdC70LXQtNGD0Y7RidC40LkgLyDQvtGC0LrRgNGL0YLRjCDQv9Cw0L3QtdC70Ywg0L/QvtC40YHQutCwIiwNCnNlYXJjaDogItC/0L7QuNGB0LoiLA0KcmVwbGFjZTogItC30LDQvNC10L3QsCIsDQpyZXBsYWNlX2NvbW1hbmQ6ICLQt9Cw0LzQtdC90LjRgtGMIC8g0L7RgtC60YDRi9GC0Ywg0L/QsNC90LXQu9GMINC/0L7QuNGB0LrQsCIsDQpmaW5kX25leHQ6ICLQvdCw0LnRgtC4INGB0LvQtdC00YPRjtGJ0LXQtSIsDQpyZXBsYWNlX2FsbDogItC30LDQvNC10L3QuNGC0Ywg0LLRgdC1IiwNCnJlZ19leHA6ICLRgNC10LPRg9C70Y/RgNC90L7QtSDQstGL0YDQsNC20LXQvdC40LUiLA0KbWF0Y2hfY2FzZTogItGD0YfQuNGC0YvQstCw0YLRjCDRgNC10LPQuNGB0YLRgCIsDQpub3RfZm91bmQ6ICLQvdC1INC90LDQudC00LXQvdC+LiIsDQpvY2N1cnJlbmNlX3JlcGxhY2VkOiAi0LLRhdC+0LbQtNC10L3QuNC1INC30LDQvNC10L3QtdC90L4uIiwNCnNlYXJjaF9maWVsZF9lbXB0eTogItCf0L7Qu9C1INC/0L7QuNGB0LrQsCDQv9GD0YHRgtC+0LUiLA0KcmVzdGFydF9zZWFyY2hfYXRfYmVnaW46ICLQlNC+0YHRgtC40LPQvdGD0YIg0LrQvtC90LXRhiDQtNC+0LrRg9C80LXQvdGC0LAuINCd0LDRh9C40L3QsNGOINGBINC90LDRh9Cw0LvQsC4iLA0KbW92ZV9wb3B1cDogItC/0LXRgNC10LzQtdGB0YLQuNGC0Ywg0L7QutC90L4g0L/QvtC40YHQutCwIiwNCmZvbnRfc2l6ZTogIi0t0KDQsNC30LzQtdGAINGI0YDQuNGE0YLQsC0tIiwNCmdvX3RvX2xpbmU6ICLQv9C10YDQtdC50YLQuCDQuiDRgdGC0YDQvtC60LUiLA0KZ29fdG9fbGluZV9wcm9tcHQ6ICLQv9C10YDQtdC50YLQuCDQuiDRgdGC0YDQvtC60LUg0L3QvtC80LXRgDoiLA0KdW5kbzogItC+0YLQvNC10L3QuNGC0YwiLA0KcmVkbzogItCy0LXRgNC90YPRgtGMIiwNCmNoYW5nZV9zbW9vdGhfc2VsZWN0aW9uOiAi0LLQutC70Y7Rh9C40YLRjC/QvtGC0LrQu9GO0YfQuNGC0Ywg0L3QtdC60L7RgtC+0YDRi9C1INGE0YPQvdC60YbQuNC4INC/0YDQvtGB0LzQvtGC0YDQsCAo0LHQvtC70LXQtSDQutGA0LDRgdC40LLQviwg0L3QviDQsdC+0LvRjNGI0LUg0LjRgdC/0L7Qu9GM0LfRg9C10YIg0L/RgNC+0YbQtdGB0YHQvtGAKSIsDQpoaWdobGlnaHQ6ICLQv9C10YDQtdC60LvRjtGH0LjRgtGMINC/0L7QtNGB0LLQtdGC0LrRgyDRgdC40L3RgtCw0LrRgdC40YHQsCDQstC60LvRjtGH0LXQvdCwL9Cy0YvQutC70Y7Rh9C10L3QsCIsDQpyZXNldF9oaWdobGlnaHQ6ICLQstC+0YHRgdGC0LDQvdC+0LLQuNGC0Ywg0L/QvtC00YHQstC10YLQutGDICjQtdGB0LvQuCDRgNCw0LfRgdC40L3RhdGA0L7QvdC40LfQuNGA0L7QstCw0L3QsCDQvtGCINGC0LXQutGB0YLQsCkiLA0Kd29yZF93cmFwOiAidG9nZ2xlIHdvcmQgd3JhcHBpbmcgbW9kZSIsDQpoZWxwOiAi0L4g0L/RgNC+0LPRgNCw0LzQvNC1IiwNCnNhdmU6ICLRgdC+0YXRgNCw0L3QuNGC0YwiLA0KbG9hZDogItC30LDQs9GA0YPQt9C40YLRjCIsDQpsaW5lX2FiYnI6ICLQodGC0YAiLA0KY2hhcl9hYmJyOiAi0KHRgtC70LEiLA0KcG9zaXRpb246ICLQn9C+0LfQuNGG0LjRjyIsDQp0b3RhbDogItCS0YHQtdCz0L4iLA0KY2xvc2VfcG9wdXA6ICLQt9Cw0LrRgNGL0YLRjCDQstGB0L/Qu9GL0LLQsNGO0YnQtdC1INC+0LrQvdC+IiwNCnNob3J0Y3V0czogItCT0L7RgNGP0YfQuNC1INC60LvQsNCy0LjRiNC4IiwNCmFkZF90YWI6ICLQtNC+0LHQsNCy0LjRgtGMINGC0LDQsdGD0LvRj9GG0LjRjiDQsiDRgtC10LrRgdGCIiwNCnJlbW92ZV90YWI6ICLRg9Cx0YDQsNGC0Ywg0YLQsNCx0YPQu9GP0YbQuNGOINC40Lcg0YLQtdC60YHRgtCwIiwNCmFib3V0X25vdGljZTogItCS0L3QuNC80LDQvdC40LU6INGE0YPQvdC60YbQuNGPINC/0L7QtNGB0LLQtdGC0LrQuCDRgdC40L3RgtCw0LrRgdC40YHQsCDRgtC+0LvRjNC60L4g0LTQu9GPINC90LXQsdC+0LvRjNGI0LjRhSDRgtC10LrRgdGC0L7QsiIsDQp0b2dnbGU6ICLQn9C10YDQtdC60LvRjtGH0LjRgtGMINGA0LXQtNCw0LrRgtC+0YAiLA0KYWNjZXNza2V5OiAi0JPQvtGA0Y/Rh9Cw0Y8g0LrQu9Cw0LLQuNGI0LAiLA0KdGFiOiAiVGFiIiwNCnNoaWZ0OiAiU2hpZnQiLA0KY3RybDogIkN0cmwiLA0KZXNjOiAiRXNjIiwNCnByb2Nlc3Npbmc6ICLQntCx0YDQsNCx0L7RgtC60LAuLi4iLA0KZnVsbHNjcmVlbjogItC/0L7Qu9C90YvQuSDRjdC60YDQsNC9IiwNCnN5bnRheF9zZWxlY3Rpb246ICItLdCh0LjQvdGC0LDQutGBLS0iLA0KY2xvc2VfdGFiOiAi0JfQsNC60YDRi9GC0Ywg0YTQsNC50LsiDQp9Ow0K]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/langs/sk.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ZWRpdEFyZWFMb2FkZXIubGFuZ1sic2siXT17DQpuZXdfZG9jdW1lbnQ6ICJub3bDvSBwcsOhemR5IGRva3VtZW50IiwNCnNlYXJjaF9idXR0b246ICJ2eWjEvmFkYWogYSBuYWhyYcSPIiwNCnNlYXJjaF9jb21tYW5kOiAiaMS+YWRhaiDEj2Fsc8WhaWUgLyBvdHZvciB2eWjEvmFkw6F2YWNpZSBwb2xlIiwNCnNlYXJjaDogImjEvmFkYWoiLA0KcmVwbGFjZTogIm5haHJhxI8iLA0KcmVwbGFjZV9jb21tYW5kOiAibmFocmHEjyAvIG90dm9yIHZ5aMS+YWTDoXZhY2llIHBvbGUiLA0KZmluZF9uZXh0OiAibsOhamRpIMSPYWzFoWllIiwNCnJlcGxhY2VfYWxsOiAibmFocmHEjyB2xaFldGtvIiwNCnJlZ19leHA6ICJwbGF0bsOpIHbDvXJhenkiLA0KbWF0Y2hfY2FzZTogInpob2R1asO6Y2Ugc2EgdsO9cmF6eSIsDQpub3RfZm91bmQ6ICJuZW7DoWpkZW7DqS4iLA0Kb2NjdXJyZW5jZV9yZXBsYWNlZDogInbDvXNreXR5IG5haHJhZGVuw6kuIiwNCnNlYXJjaF9maWVsZF9lbXB0eTogIlBvbGUgdnloxL5hZMOhdmFuaWUgamUgcHLDoWR6bmUiLA0KcmVzdGFydF9zZWFyY2hfYXRfYmVnaW46ICJFbmQgb2YgYXJlYSByZWFjaGVkLiBSZXN0YXJ0IGF0IGJlZ2luLiIsDQptb3ZlX3BvcHVwOiAicHJlc3XFiCB2eWjEvmFkw6F2YWNpZSBva25vIiwNCmZvbnRfc2l6ZTogIi0tVmXEvmtvc8WlIHRleHR1LS0iLA0KZ29fdG9fbGluZTogInByZWpkaSBuYSByaWFkb2siLA0KZ29fdG9fbGluZV9wcm9tcHQ6ICJwcmVqZGkgbmEgcmlhZG9rOiIsDQp1bmRvOiAia3JvayBzcMOkxaUiLA0KcmVkbzogInByZXByYWNvdmHFpSIsDQpjaGFuZ2Vfc21vb3RoX3NlbGVjdGlvbjogInBvdm9sacWlL3phbWlldG7DusWlIG5pZWt0b3LDqSB6byB6b2JyYXplbsO9Y2ggZnVua2Npw60gKMO6xI1lbG5lasWhaWUgem9icmF6ZW5pZSB2ecW+YWR1amUgIHbDpMSNxaFpZSB6YcWlYcW+ZW5pZSBwcm9jZXNvcmEgQ1BVKSIsDQpoaWdobGlnaHQ6ICJwcmVwbsO6xaUgenbDvXJhesWIb3ZhbmllIHN5bnRheGUgemFwL3Z5cCIsDQpyZXNldF9oaWdobGlnaHQ6ICJ6cnXFoWnFpSB6dsO9cmF6xYhvdmFuaWUgKGFrIGplIG5lc3luY2hyb25pem92YW7DqSBzIHRleHRvbSkiLA0Kd29yZF93cmFwOiAidG9nZ2xlIHdvcmQgd3JhcHBpbmcgbW9kZSIsDQpoZWxwOiAibyBwcm9ncmFtZSIsDQpzYXZlOiAidWxvxb5pxaUiLA0KbG9hZDogIm5hxI3DrXRhxaUiLA0KbGluZV9hYmJyOiAiTG4iLA0KY2hhcl9hYmJyOiAiQ2giLA0KcG9zaXRpb246ICJQb3rDrWNpYSIsDQp0b3RhbDogIlNwb2x1IiwNCmNsb3NlX3BvcHVwOiAiemF2cmllxaUgb2tubyIsDQpzaG9ydGN1dHM6ICJTa3JhdGt5IiwNCmFkZF90YWI6ICJwcmlkYcWlIHRhYnVsb3ZhbmllIHRleHR1IiwNCnJlbW92ZV90YWI6ICJvZHN0csOhbmnFpSB0YWJ1bG92YW5pZSB0ZXh0dSIsDQphYm91dF9ub3RpY2U6ICJVcG96b3JuZW5pZTogZnVua2NpYSB6dsO9cmF6xYhvdmFuaWEgc3ludGF4ZSBqZSBkb3N0dXBuw6EgaWJhIHByZSBtYWzDvSB0ZXh0IiwNCnRvZ2dsZTogIlByZXBuw7rFpSBlZGl0b3IiLA0KYWNjZXNza2V5OiAiQWNjZXNza2V5IiwNCnRhYjogIlrDoWxvxb5rYSIsDQpzaGlmdDogIlNoaWZ0IiwNCmN0cmw6ICJDdHJsIiwNCmVzYzogIkVzYyIsDQpwcm9jZXNzaW5nOiAiU3ByYWPDunZhbS4uLiIsDQpmdWxsc2NyZWVuOiAiY2VsPWEgb2JyYXpvdmthIiwNCnN5bnRheF9zZWxlY3Rpb246ICItLVZ5YmVyIFN5bnRheC0tIiwNCmNsb3NlX3RhYjogIkNsb3NlIGZpbGUiDQp9Ow0K]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/langs/zh.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ZWRpdEFyZWFMb2FkZXIubGFuZ1siemgiXT17DQpuZXdfZG9jdW1lbnQ6ICLmlrDlu7rnqbrnmb3mlofmoaMiLA0Kc2VhcmNoX2J1dHRvbjogIuafpeaJvuS4juabv+aNoiIsDQpzZWFyY2hfY29tbWFuZDogIuafpeaJvuS4i+S4gOS4qiAvIOaJk+W8gOafpeaJvuahhiIsDQpzZWFyY2g6ICLmn6Xmib4iLA0KcmVwbGFjZTogIuabv+aNoiIsDQpyZXBsYWNlX2NvbW1hbmQ6ICLmm7/mjaIgLyDmiZPlvIDmn6Xmib7moYYiLA0KZmluZF9uZXh0OiAi5p+l5om+5LiL5LiA5LiqIiwNCnJlcGxhY2VfYWxsOiAi5YWo6YOo5pu/5o2iIiwNCnJlZ19leHA6ICLmraPliJnooajovr7lvI8iLA0KbWF0Y2hfY2FzZTogIuWMuemFjeWkp+Wwj+WGmSIsDQpub3RfZm91bmQ6ICLmnKrmib7liLAuIiwNCm9jY3VycmVuY2VfcmVwbGFjZWQ6ICLlpITooqvmm7/mjaIuIiwNCnNlYXJjaF9maWVsZF9lbXB0eTogIuafpeaJvuahhuayoeacieWGheWuuSIsDQpyZXN0YXJ0X3NlYXJjaF9hdF9iZWdpbjogIuW3suWIsOWIsOaWh+aho+acq+Wwvi4g5LuO5aS06YeN5paw5p+l5om+LiIsDQptb3ZlX3BvcHVwOiAi56e75Yqo5p+l5om+5a+56K+d5qGGIiwNCmZvbnRfc2l6ZTogIi0t5a2X5L2T5aSn5bCPLS0iLA0KZ29fdG9fbGluZTogIui9rOWIsOihjCIsDQpnb190b19saW5lX3Byb21wdDogIui9rOWIsOihjDoiLA0KdW5kbzogIuaBouWkjSIsDQpyZWRvOiAi6YeN5YGaIiwNCmNoYW5nZV9zbW9vdGhfc2VsZWN0aW9uOiAi5ZCv55SoL+emgeatouS4gOS6m+aYvuekuueJueaApyjmm7Tlpb3nnIvkvYbmm7TogJfotLnotYTmupApIiwNCmhpZ2hsaWdodDogIuWQr+eUqC/npoHmraLor63ms5Xpq5jkuq4iLA0KcmVzZXRfaGlnaGxpZ2h0OiAi6YeN572u6K+t5rOV6auY5LquKOW9k+aWh+acrOaYvuekuuS4jeWQjOatpeaXtikiLA0Kd29yZF93cmFwOiAidG9nZ2xlIHdvcmQgd3JhcHBpbmcgbW9kZSIsDQpoZWxwOiAi5YWz5LqOIiwNCnNhdmU6ICLkv53lrZgiLA0KbG9hZDogIuWKoOi9vSIsDQpsaW5lX2FiYnI6ICLooYwiLA0KY2hhcl9hYmJyOiAi5a2X56ymIiwNCnBvc2l0aW9uOiAi5L2N572uIiwNCnRvdGFsOiAi5oC76K6hIiwNCmNsb3NlX3BvcHVwOiAi5YWz6Zet5a+56K+d5qGGIiwNCnNob3J0Y3V0czogIuW/q+aNt+mUriIsDQphZGRfdGFiOiAi5re75Yqg5Yi26KGo56ymKFRhYikiLA0KcmVtb3ZlX3RhYjogIuenu+mZpOWItuihqOespihUYWIpIiwNCmFib3V0X25vdGljZTogIuazqOaEj++8muivreazlemrmOS6ruWKn+iDveS7heeUqOS6jui+g+WwkeWGheWuueeahOaWh+acrCjmlofku7blhoXlrrnlpKrlpKfkvJrlr7zoh7TmtY/op4jlmajlj43lupTmhaIpIiwNCnRvZ2dsZTogIuWIh+aNoue8lui+keWZqCIsDQphY2Nlc3NrZXk6ICLlv6vmjbfplK4iLA0KdGFiOiAiVGFiIiwNCnNoaWZ0OiAiU2hpZnQiLA0KY3RybDogIkN0cmwiLA0KZXNjOiAiRXNjIiwNCnByb2Nlc3Npbmc6ICLmraPlnKjlpITnkIbkuK0uLi4iLA0KZnVsbHNjcmVlbjogIuWFqOWxj+e8lui+kSIsDQpzeW50YXhfc2VsZWN0aW9uOiAiLS3or63ms5UtLSIsDQpjbG9zZV90YWI6ICLlhbPpl63mlofku7YiDQp9Ow0K]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/license_apache.txt</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Q29weXJpZ2h0IDIwMDggQ2hyaXN0b3BoZSBEb2xpdmV0DQoNCkxpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdA0KDQoJaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wDQoNClVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2Uu]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/license_bsd.txt</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Q29weXJpZ2h0IChjKSAyMDA4LCBDaHJpc3RvcGhlIERvbGl2ZXQNCkFsbCByaWdodHMgcmVzZXJ2ZWQuDQoNClJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoNCg0KICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLg0KICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLg0KICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBFZGl0QXJlYSBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLg0KDQpUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/license_lgpl.txt</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[CQkgIEdOVSBMRVNTRVIgR0VORVJBTCBQVUJMSUMgTElDRU5TRQoJCSAgICAgICBWZXJzaW9uIDIuMSwgRmVicnVhcnkgMTk5OQoKIENvcHlyaWdodCAoQykgMTk5MSwgMTk5OSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQogRXZlcnlvbmUgaXMgcGVybWl0dGVkIHRvIGNvcHkgYW5kIGRpc3RyaWJ1dGUgdmVyYmF0aW0gY29waWVzCiBvZiB0aGlzIGxpY2Vuc2UgZG9jdW1lbnQsIGJ1dCBjaGFuZ2luZyBpdCBpcyBub3QgYWxsb3dlZC4KCltUaGlzIGlzIHRoZSBmaXJzdCByZWxlYXNlZCB2ZXJzaW9uIG9mIHRoZSBMZXNzZXIgR1BMLiAgSXQgYWxzbyBjb3VudHMKIGFzIHRoZSBzdWNjZXNzb3Igb2YgdGhlIEdOVSBMaWJyYXJ5IFB1YmxpYyBMaWNlbnNlLCB2ZXJzaW9uIDIsIGhlbmNlCiB0aGUgdmVyc2lvbiBudW1iZXIgMi4xLl0KCgkJCSAgICBQcmVhbWJsZQoKICBUaGUgbGljZW5zZXMgZm9yIG1vc3Qgc29mdHdhcmUgYXJlIGRlc2lnbmVkIHRvIHRha2UgYXdheSB5b3VyCmZyZWVkb20gdG8gc2hhcmUgYW5kIGNoYW5nZSBpdC4gIEJ5IGNvbnRyYXN0LCB0aGUgR05VIEdlbmVyYWwgUHVibGljCkxpY2Vuc2VzIGFyZSBpbnRlbmRlZCB0byBndWFyYW50ZWUgeW91ciBmcmVlZG9tIHRvIHNoYXJlIGFuZCBjaGFuZ2UKZnJlZSBzb2Z0d2FyZS0tdG8gbWFrZSBzdXJlIHRoZSBzb2Z0d2FyZSBpcyBmcmVlIGZvciBhbGwgaXRzIHVzZXJzLgoKICBUaGlzIGxpY2Vuc2UsIHRoZSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwgYXBwbGllcyB0byBzb21lCnNwZWNpYWxseSBkZXNpZ25hdGVkIHNvZnR3YXJlIHBhY2thZ2VzLS10eXBpY2FsbHkgbGlicmFyaWVzLS1vZiB0aGUKRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIGFuZCBvdGhlciBhdXRob3JzIHdobyBkZWNpZGUgdG8gdXNlIGl0LiAgWW91CmNhbiB1c2UgaXQgdG9vLCBidXQgd2Ugc3VnZ2VzdCB5b3UgZmlyc3QgdGhpbmsgY2FyZWZ1bGx5IGFib3V0IHdoZXRoZXIKdGhpcyBsaWNlbnNlIG9yIHRoZSBvcmRpbmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGlzIHRoZSBiZXR0ZXIKc3RyYXRlZ3kgdG8gdXNlIGluIGFueSBwYXJ0aWN1bGFyIGNhc2UsIGJhc2VkIG9uIHRoZSBleHBsYW5hdGlvbnMgYmVsb3cuCgogIFdoZW4gd2Ugc3BlYWsgb2YgZnJlZSBzb2Z0d2FyZSwgd2UgYXJlIHJlZmVycmluZyB0byBmcmVlZG9tIG9mIHVzZSwKbm90IHByaWNlLiAgT3VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VzIGFyZSBkZXNpZ25lZCB0byBtYWtlIHN1cmUgdGhhdAp5b3UgaGF2ZSB0aGUgZnJlZWRvbSB0byBkaXN0cmlidXRlIGNvcGllcyBvZiBmcmVlIHNvZnR3YXJlIChhbmQgY2hhcmdlCmZvciB0aGlzIHNlcnZpY2UgaWYgeW91IHdpc2gpOyB0aGF0IHlvdSByZWNlaXZlIHNvdXJjZSBjb2RlIG9yIGNhbiBnZXQKaXQgaWYgeW91IHdhbnQgaXQ7IHRoYXQgeW91IGNhbiBjaGFuZ2UgdGhlIHNvZnR3YXJlIGFuZCB1c2UgcGllY2VzIG9mCml0IGluIG5ldyBmcmVlIHByb2dyYW1zOyBhbmQgdGhhdCB5b3UgYXJlIGluZm9ybWVkIHRoYXQgeW91IGNhbiBkbwp0aGVzZSB0aGluZ3MuCgogIFRvIHByb3RlY3QgeW91ciByaWdodHMsIHdlIG5lZWQgdG8gbWFrZSByZXN0cmljdGlvbnMgdGhhdCBmb3JiaWQKZGlzdHJpYnV0b3JzIHRvIGRlbnkgeW91IHRoZXNlIHJpZ2h0cyBvciB0byBhc2sgeW91IHRvIHN1cnJlbmRlciB0aGVzZQpyaWdodHMuICBUaGVzZSByZXN0cmljdGlvbnMgdHJhbnNsYXRlIHRvIGNlcnRhaW4gcmVzcG9uc2liaWxpdGllcyBmb3IKeW91IGlmIHlvdSBkaXN0cmlidXRlIGNvcGllcyBvZiB0aGUgbGlicmFyeSBvciBpZiB5b3UgbW9kaWZ5IGl0LgoKICBGb3IgZXhhbXBsZSwgaWYgeW91IGRpc3RyaWJ1dGUgY29waWVzIG9mIHRoZSBsaWJyYXJ5LCB3aGV0aGVyIGdyYXRpcwpvciBmb3IgYSBmZWUsIHlvdSBtdXN0IGdpdmUgdGhlIHJlY2lwaWVudHMgYWxsIHRoZSByaWdodHMgdGhhdCB3ZSBnYXZlCnlvdS4gIFlvdSBtdXN0IG1ha2Ugc3VyZSB0aGF0IHRoZXksIHRvbywgcmVjZWl2ZSBvciBjYW4gZ2V0IHRoZSBzb3VyY2UKY29kZS4gIElmIHlvdSBsaW5rIG90aGVyIGNvZGUgd2l0aCB0aGUgbGlicmFyeSwgeW91IG11c3QgcHJvdmlkZQpjb21wbGV0ZSBvYmplY3QgZmlsZXMgdG8gdGhlIHJlY2lwaWVudHMsIHNvIHRoYXQgdGhleSBjYW4gcmVsaW5rIHRoZW0Kd2l0aCB0aGUgbGlicmFyeSBhZnRlciBtYWtpbmcgY2hhbmdlcyB0byB0aGUgbGlicmFyeSBhbmQgcmVjb21waWxpbmcKaXQuICBBbmQgeW91IG11c3Qgc2hvdyB0aGVtIHRoZXNlIHRlcm1zIHNvIHRoZXkga25vdyB0aGVpciByaWdodHMuCgogIFdlIHByb3RlY3QgeW91ciByaWdodHMgd2l0aCBhIHR3by1zdGVwIG1ldGhvZDogKDEpIHdlIGNvcHlyaWdodCB0aGUKbGlicmFyeSwgYW5kICgyKSB3ZSBvZmZlciB5b3UgdGhpcyBsaWNlbnNlLCB3aGljaCBnaXZlcyB5b3UgbGVnYWwKcGVybWlzc2lvbiB0byBjb3B5LCBkaXN0cmlidXRlIGFuZC9vciBtb2RpZnkgdGhlIGxpYnJhcnkuCgogIFRvIHByb3RlY3QgZWFjaCBkaXN0cmlidXRvciwgd2Ugd2FudCB0byBtYWtlIGl0IHZlcnkgY2xlYXIgdGhhdAp0aGVyZSBpcyBubyB3YXJyYW50eSBmb3IgdGhlIGZyZWUgbGlicmFyeS4gIEFsc28sIGlmIHRoZSBsaWJyYXJ5IGlzCm1vZGlmaWVkIGJ5IHNvbWVvbmUgZWxzZSBhbmQgcGFzc2VkIG9uLCB0aGUgcmVjaXBpZW50cyBzaG91bGQga25vdwp0aGF0IHdoYXQgdGhleSBoYXZlIGlzIG5vdCB0aGUgb3JpZ2luYWwgdmVyc2lvbiwgc28gdGhhdCB0aGUgb3JpZ2luYWwKYXV0aG9yJ3MgcmVwdXRhdGlvbiB3aWxsIG5vdCBiZSBhZmZlY3RlZCBieSBwcm9ibGVtcyB0aGF0IG1pZ2h0IGJlCmludHJvZHVjZWQgYnkgb3RoZXJzLgoKICBGaW5hbGx5LCBzb2Z0d2FyZSBwYXRlbnRzIHBvc2UgYSBjb25zdGFudCB0aHJlYXQgdG8gdGhlIGV4aXN0ZW5jZSBvZgphbnkgZnJlZSBwcm9ncmFtLiAgV2Ugd2lzaCB0byBtYWtlIHN1cmUgdGhhdCBhIGNvbXBhbnkgY2Fubm90CmVmZmVjdGl2ZWx5IHJlc3RyaWN0IHRoZSB1c2VycyBvZiBhIGZyZWUgcHJvZ3JhbSBieSBvYnRhaW5pbmcgYQpyZXN0cmljdGl2ZSBsaWNlbnNlIGZyb20gYSBwYXRlbnQgaG9sZGVyLiAgVGhlcmVmb3JlLCB3ZSBpbnNpc3QgdGhhdAphbnkgcGF0ZW50IGxpY2Vuc2Ugb2J0YWluZWQgZm9yIGEgdmVyc2lvbiBvZiB0aGUgbGlicmFyeSBtdXN0IGJlCmNvbnNpc3RlbnQgd2l0aCB0aGUgZnVsbCBmcmVlZG9tIG9mIHVzZSBzcGVjaWZpZWQgaW4gdGhpcyBsaWNlbnNlLgoKICBNb3N0IEdOVSBzb2Z0d2FyZSwgaW5jbHVkaW5nIHNvbWUgbGlicmFyaWVzLCBpcyBjb3ZlcmVkIGJ5IHRoZQpvcmRpbmFyeSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4gIFRoaXMgbGljZW5zZSwgdGhlIEdOVSBMZXNzZXIKR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwgYXBwbGllcyB0byBjZXJ0YWluIGRlc2lnbmF0ZWQgbGlicmFyaWVzLCBhbmQKaXMgcXVpdGUgZGlmZmVyZW50IGZyb20gdGhlIG9yZGluYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UuICBXZSB1c2UKdGhpcyBsaWNlbnNlIGZvciBjZXJ0YWluIGxpYnJhcmllcyBpbiBvcmRlciB0byBwZXJtaXQgbGlua2luZyB0aG9zZQpsaWJyYXJpZXMgaW50byBub24tZnJlZSBwcm9ncmFtcy4KCiAgV2hlbiBhIHByb2dyYW0gaXMgbGlua2VkIHdpdGggYSBsaWJyYXJ5LCB3aGV0aGVyIHN0YXRpY2FsbHkgb3IgdXNpbmcKYSBzaGFyZWQgbGlicmFyeSwgdGhlIGNvbWJpbmF0aW9uIG9mIHRoZSB0d28gaXMgbGVnYWxseSBzcGVha2luZyBhCmNvbWJpbmVkIHdvcmssIGEgZGVyaXZhdGl2ZSBvZiB0aGUgb3JpZ2luYWwgbGlicmFyeS4gIFRoZSBvcmRpbmFyeQpHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHRoZXJlZm9yZSBwZXJtaXRzIHN1Y2ggbGlua2luZyBvbmx5IGlmIHRoZQplbnRpcmUgY29tYmluYXRpb24gZml0cyBpdHMgY3JpdGVyaWEgb2YgZnJlZWRvbS4gIFRoZSBMZXNzZXIgR2VuZXJhbApQdWJsaWMgTGljZW5zZSBwZXJtaXRzIG1vcmUgbGF4IGNyaXRlcmlhIGZvciBsaW5raW5nIG90aGVyIGNvZGUgd2l0aAp0aGUgbGlicmFyeS4KCiAgV2UgY2FsbCB0aGlzIGxpY2Vuc2UgdGhlICJMZXNzZXIiIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYmVjYXVzZSBpdApkb2VzIExlc3MgdG8gcHJvdGVjdCB0aGUgdXNlcidzIGZyZWVkb20gdGhhbiB0aGUgb3JkaW5hcnkgR2VuZXJhbApQdWJsaWMgTGljZW5zZS4gIEl0IGFsc28gcHJvdmlkZXMgb3RoZXIgZnJlZSBzb2Z0d2FyZSBkZXZlbG9wZXJzIExlc3MKb2YgYW4gYWR2YW50YWdlIG92ZXIgY29tcGV0aW5nIG5vbi1mcmVlIHByb2dyYW1zLiAgVGhlc2UgZGlzYWR2YW50YWdlcwphcmUgdGhlIHJlYXNvbiB3ZSB1c2UgdGhlIG9yZGluYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1hbnkKbGlicmFyaWVzLiAgSG93ZXZlciwgdGhlIExlc3NlciBsaWNlbnNlIHByb3ZpZGVzIGFkdmFudGFnZXMgaW4gY2VydGFpbgpzcGVjaWFsIGNpcmN1bXN0YW5jZXMuCgogIEZvciBleGFtcGxlLCBvbiByYXJlIG9jY2FzaW9ucywgdGhlcmUgbWF5IGJlIGEgc3BlY2lhbCBuZWVkIHRvCmVuY291cmFnZSB0aGUgd2lkZXN0IHBvc3NpYmxlIHVzZSBvZiBhIGNlcnRhaW4gbGlicmFyeSwgc28gdGhhdCBpdCBiZWNvbWVzCmEgZGUtZmFjdG8gc3RhbmRhcmQuICBUbyBhY2hpZXZlIHRoaXMsIG5vbi1mcmVlIHByb2dyYW1zIG11c3QgYmUKYWxsb3dlZCB0byB1c2UgdGhlIGxpYnJhcnkuICBBIG1vcmUgZnJlcXVlbnQgY2FzZSBpcyB0aGF0IGEgZnJlZQpsaWJyYXJ5IGRvZXMgdGhlIHNhbWUgam9iIGFzIHdpZGVseSB1c2VkIG5vbi1mcmVlIGxpYnJhcmllcy4gIEluIHRoaXMKY2FzZSwgdGhlcmUgaXMgbGl0dGxlIHRvIGdhaW4gYnkgbGltaXRpbmcgdGhlIGZyZWUgbGlicmFyeSB0byBmcmVlCnNvZnR3YXJlIG9ubHksIHNvIHdlIHVzZSB0aGUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuCgogIEluIG90aGVyIGNhc2VzLCBwZXJtaXNzaW9uIHRvIHVzZSBhIHBhcnRpY3VsYXIgbGlicmFyeSBpbiBub24tZnJlZQpwcm9ncmFtcyBlbmFibGVzIGEgZ3JlYXRlciBudW1iZXIgb2YgcGVvcGxlIHRvIHVzZSBhIGxhcmdlIGJvZHkgb2YKZnJlZSBzb2Z0d2FyZS4gIEZvciBleGFtcGxlLCBwZXJtaXNzaW9uIHRvIHVzZSB0aGUgR05VIEMgTGlicmFyeSBpbgpub24tZnJlZSBwcm9ncmFtcyBlbmFibGVzIG1hbnkgbW9yZSBwZW9wbGUgdG8gdXNlIHRoZSB3aG9sZSBHTlUKb3BlcmF0aW5nIHN5c3RlbSwgYXMgd2VsbCBhcyBpdHMgdmFyaWFudCwgdGhlIEdOVS9MaW51eCBvcGVyYXRpbmcKc3lzdGVtLgoKICBBbHRob3VnaCB0aGUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaXMgTGVzcyBwcm90ZWN0aXZlIG9mIHRoZQp1c2VycycgZnJlZWRvbSwgaXQgZG9lcyBlbnN1cmUgdGhhdCB0aGUgdXNlciBvZiBhIHByb2dyYW0gdGhhdCBpcwpsaW5rZWQgd2l0aCB0aGUgTGlicmFyeSBoYXMgdGhlIGZyZWVkb20gYW5kIHRoZSB3aGVyZXdpdGhhbCB0byBydW4KdGhhdCBwcm9ncmFtIHVzaW5nIGEgbW9kaWZpZWQgdmVyc2lvbiBvZiB0aGUgTGlicmFyeS4KCiAgVGhlIHByZWNpc2UgdGVybXMgYW5kIGNvbmRpdGlvbnMgZm9yIGNvcHlpbmcsIGRpc3RyaWJ1dGlvbiBhbmQKbW9kaWZpY2F0aW9uIGZvbGxvdy4gIFBheSBjbG9zZSBhdHRlbnRpb24gdG8gdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiBhCiJ3b3JrIGJhc2VkIG9uIHRoZSBsaWJyYXJ5IiBhbmQgYSAid29yayB0aGF0IHVzZXMgdGhlIGxpYnJhcnkiLiAgVGhlCmZvcm1lciBjb250YWlucyBjb2RlIGRlcml2ZWQgZnJvbSB0aGUgbGlicmFyeSwgd2hlcmVhcyB0aGUgbGF0dGVyIG11c3QKYmUgY29tYmluZWQgd2l0aCB0aGUgbGlicmFyeSBpbiBvcmRlciB0byBydW4uCgoJCSAgR05VIExFU1NFUiBHRU5FUkFMIFBVQkxJQyBMSUNFTlNFCiAgIFRFUk1TIEFORCBDT05ESVRJT05TIEZPUiBDT1BZSU5HLCBESVNUUklCVVRJT04gQU5EIE1PRElGSUNBVElPTgoKICAwLiBUaGlzIExpY2Vuc2UgQWdyZWVtZW50IGFwcGxpZXMgdG8gYW55IHNvZnR3YXJlIGxpYnJhcnkgb3Igb3RoZXIKcHJvZ3JhbSB3aGljaCBjb250YWlucyBhIG5vdGljZSBwbGFjZWQgYnkgdGhlIGNvcHlyaWdodCBob2xkZXIgb3IKb3RoZXIgYXV0aG9yaXplZCBwYXJ0eSBzYXlpbmcgaXQgbWF5IGJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZgp0aGlzIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIChhbHNvIGNhbGxlZCAidGhpcyBMaWNlbnNlIikuCkVhY2ggbGljZW5zZWUgaXMgYWRkcmVzc2VkIGFzICJ5b3UiLgoKICBBICJsaWJyYXJ5IiBtZWFucyBhIGNvbGxlY3Rpb24gb2Ygc29mdHdhcmUgZnVuY3Rpb25zIGFuZC9vciBkYXRhCnByZXBhcmVkIHNvIGFzIHRvIGJlIGNvbnZlbmllbnRseSBsaW5rZWQgd2l0aCBhcHBsaWNhdGlvbiBwcm9ncmFtcwood2hpY2ggdXNlIHNvbWUgb2YgdGhvc2UgZnVuY3Rpb25zIGFuZCBkYXRhKSB0byBmb3JtIGV4ZWN1dGFibGVzLgoKICBUaGUgIkxpYnJhcnkiLCBiZWxvdywgcmVmZXJzIHRvIGFueSBzdWNoIHNvZnR3YXJlIGxpYnJhcnkgb3Igd29yawp3aGljaCBoYXMgYmVlbiBkaXN0cmlidXRlZCB1bmRlciB0aGVzZSB0ZXJtcy4gIEEgIndvcmsgYmFzZWQgb24gdGhlCkxpYnJhcnkiIG1lYW5zIGVpdGhlciB0aGUgTGlicmFyeSBvciBhbnkgZGVyaXZhdGl2ZSB3b3JrIHVuZGVyCmNvcHlyaWdodCBsYXc6IHRoYXQgaXMgdG8gc2F5LCBhIHdvcmsgY29udGFpbmluZyB0aGUgTGlicmFyeSBvciBhCnBvcnRpb24gb2YgaXQsIGVpdGhlciB2ZXJiYXRpbSBvciB3aXRoIG1vZGlmaWNhdGlvbnMgYW5kL29yIHRyYW5zbGF0ZWQKc3RyYWlnaHRmb3J3YXJkbHkgaW50byBhbm90aGVyIGxhbmd1YWdlLiAgKEhlcmVpbmFmdGVyLCB0cmFuc2xhdGlvbiBpcwppbmNsdWRlZCB3aXRob3V0IGxpbWl0YXRpb24gaW4gdGhlIHRlcm0gIm1vZGlmaWNhdGlvbiIuKQoKICAiU291cmNlIGNvZGUiIGZvciBhIHdvcmsgbWVhbnMgdGhlIHByZWZlcnJlZCBmb3JtIG9mIHRoZSB3b3JrIGZvcgptYWtpbmcgbW9kaWZpY2F0aW9ucyB0byBpdC4gIEZvciBhIGxpYnJhcnksIGNvbXBsZXRlIHNvdXJjZSBjb2RlIG1lYW5zCmFsbCB0aGUgc291cmNlIGNvZGUgZm9yIGFsbCBtb2R1bGVzIGl0IGNvbnRhaW5zLCBwbHVzIGFueSBhc3NvY2lhdGVkCmludGVyZmFjZSBkZWZpbml0aW9uIGZpbGVzLCBwbHVzIHRoZSBzY3JpcHRzIHVzZWQgdG8gY29udHJvbCBjb21waWxhdGlvbgphbmQgaW5zdGFsbGF0aW9uIG9mIHRoZSBsaWJyYXJ5LgoKICBBY3Rpdml0aWVzIG90aGVyIHRoYW4gY29weWluZywgZGlzdHJpYnV0aW9uIGFuZCBtb2RpZmljYXRpb24gYXJlIG5vdApjb3ZlcmVkIGJ5IHRoaXMgTGljZW5zZTsgdGhleSBhcmUgb3V0c2lkZSBpdHMgc2NvcGUuICBUaGUgYWN0IG9mCnJ1bm5pbmcgYSBwcm9ncmFtIHVzaW5nIHRoZSBMaWJyYXJ5IGlzIG5vdCByZXN0cmljdGVkLCBhbmQgb3V0cHV0IGZyb20Kc3VjaCBhIHByb2dyYW0gaXMgY292ZXJlZCBvbmx5IGlmIGl0cyBjb250ZW50cyBjb25zdGl0dXRlIGEgd29yayBiYXNlZApvbiB0aGUgTGlicmFyeSAoaW5kZXBlbmRlbnQgb2YgdGhlIHVzZSBvZiB0aGUgTGlicmFyeSBpbiBhIHRvb2wgZm9yCndyaXRpbmcgaXQpLiAgV2hldGhlciB0aGF0IGlzIHRydWUgZGVwZW5kcyBvbiB3aGF0IHRoZSBMaWJyYXJ5IGRvZXMKYW5kIHdoYXQgdGhlIHByb2dyYW0gdGhhdCB1c2VzIHRoZSBMaWJyYXJ5IGRvZXMuCiAgCiAgMS4gWW91IG1heSBjb3B5IGFuZCBkaXN0cmlidXRlIHZlcmJhdGltIGNvcGllcyBvZiB0aGUgTGlicmFyeSdzCmNvbXBsZXRlIHNvdXJjZSBjb2RlIGFzIHlvdSByZWNlaXZlIGl0LCBpbiBhbnkgbWVkaXVtLCBwcm92aWRlZCB0aGF0CnlvdSBjb25zcGljdW91c2x5IGFuZCBhcHByb3ByaWF0ZWx5IHB1Ymxpc2ggb24gZWFjaCBjb3B5IGFuCmFwcHJvcHJpYXRlIGNvcHlyaWdodCBub3RpY2UgYW5kIGRpc2NsYWltZXIgb2Ygd2FycmFudHk7IGtlZXAgaW50YWN0CmFsbCB0aGUgbm90aWNlcyB0aGF0IHJlZmVyIHRvIHRoaXMgTGljZW5zZSBhbmQgdG8gdGhlIGFic2VuY2Ugb2YgYW55CndhcnJhbnR5OyBhbmQgZGlzdHJpYnV0ZSBhIGNvcHkgb2YgdGhpcyBMaWNlbnNlIGFsb25nIHdpdGggdGhlCkxpYnJhcnkuCgogIFlvdSBtYXkgY2hhcmdlIGEgZmVlIGZvciB0aGUgcGh5c2ljYWwgYWN0IG9mIHRyYW5zZmVycmluZyBhIGNvcHksCmFuZCB5b3UgbWF5IGF0IHlvdXIgb3B0aW9uIG9mZmVyIHdhcnJhbnR5IHByb3RlY3Rpb24gaW4gZXhjaGFuZ2UgZm9yIGEKZmVlLgoKICAyLiBZb3UgbWF5IG1vZGlmeSB5b3VyIGNvcHkgb3IgY29waWVzIG9mIHRoZSBMaWJyYXJ5IG9yIGFueSBwb3J0aW9uCm9mIGl0LCB0aHVzIGZvcm1pbmcgYSB3b3JrIGJhc2VkIG9uIHRoZSBMaWJyYXJ5LCBhbmQgY29weSBhbmQKZGlzdHJpYnV0ZSBzdWNoIG1vZGlmaWNhdGlvbnMgb3Igd29yayB1bmRlciB0aGUgdGVybXMgb2YgU2VjdGlvbiAxCmFib3ZlLCBwcm92aWRlZCB0aGF0IHlvdSBhbHNvIG1lZXQgYWxsIG9mIHRoZXNlIGNvbmRpdGlvbnM6CgogICAgYSkgVGhlIG1vZGlmaWVkIHdvcmsgbXVzdCBpdHNlbGYgYmUgYSBzb2Z0d2FyZSBsaWJyYXJ5LgoKICAgIGIpIFlvdSBtdXN0IGNhdXNlIHRoZSBmaWxlcyBtb2RpZmllZCB0byBjYXJyeSBwcm9taW5lbnQgbm90aWNlcwogICAgc3RhdGluZyB0aGF0IHlvdSBjaGFuZ2VkIHRoZSBmaWxlcyBhbmQgdGhlIGRhdGUgb2YgYW55IGNoYW5nZS4KCiAgICBjKSBZb3UgbXVzdCBjYXVzZSB0aGUgd2hvbGUgb2YgdGhlIHdvcmsgdG8gYmUgbGljZW5zZWQgYXQgbm8KICAgIGNoYXJnZSB0byBhbGwgdGhpcmQgcGFydGllcyB1bmRlciB0aGUgdGVybXMgb2YgdGhpcyBMaWNlbnNlLgoKICAgIGQpIElmIGEgZmFjaWxpdHkgaW4gdGhlIG1vZGlmaWVkIExpYnJhcnkgcmVmZXJzIHRvIGEgZnVuY3Rpb24gb3IgYQogICAgdGFibGUgb2YgZGF0YSB0byBiZSBzdXBwbGllZCBieSBhbiBhcHBsaWNhdGlvbiBwcm9ncmFtIHRoYXQgdXNlcwogICAgdGhlIGZhY2lsaXR5LCBvdGhlciB0aGFuIGFzIGFuIGFyZ3VtZW50IHBhc3NlZCB3aGVuIHRoZSBmYWNpbGl0eQogICAgaXMgaW52b2tlZCwgdGhlbiB5b3UgbXVzdCBtYWtlIGEgZ29vZCBmYWl0aCBlZmZvcnQgdG8gZW5zdXJlIHRoYXQsCiAgICBpbiB0aGUgZXZlbnQgYW4gYXBwbGljYXRpb24gZG9lcyBub3Qgc3VwcGx5IHN1Y2ggZnVuY3Rpb24gb3IKICAgIHRhYmxlLCB0aGUgZmFjaWxpdHkgc3RpbGwgb3BlcmF0ZXMsIGFuZCBwZXJmb3JtcyB3aGF0ZXZlciBwYXJ0IG9mCiAgICBpdHMgcHVycG9zZSByZW1haW5zIG1lYW5pbmdmdWwuCgogICAgKEZvciBleGFtcGxlLCBhIGZ1bmN0aW9uIGluIGEgbGlicmFyeSB0byBjb21wdXRlIHNxdWFyZSByb290cyBoYXMKICAgIGEgcHVycG9zZSB0aGF0IGlzIGVudGlyZWx5IHdlbGwtZGVmaW5lZCBpbmRlcGVuZGVudCBvZiB0aGUKICAgIGFwcGxpY2F0aW9uLiAgVGhlcmVmb3JlLCBTdWJzZWN0aW9uIDJkIHJlcXVpcmVzIHRoYXQgYW55CiAgICBhcHBsaWNhdGlvbi1zdXBwbGllZCBmdW5jdGlvbiBvciB0YWJsZSB1c2VkIGJ5IHRoaXMgZnVuY3Rpb24gbXVzdAogICAgYmUgb3B0aW9uYWw6IGlmIHRoZSBhcHBsaWNhdGlvbiBkb2VzIG5vdCBzdXBwbHkgaXQsIHRoZSBzcXVhcmUKICAgIHJvb3QgZnVuY3Rpb24gbXVzdCBzdGlsbCBjb21wdXRlIHNxdWFyZSByb290cy4pCgpUaGVzZSByZXF1aXJlbWVudHMgYXBwbHkgdG8gdGhlIG1vZGlmaWVkIHdvcmsgYXMgYSB3aG9sZS4gIElmCmlkZW50aWZpYWJsZSBzZWN0aW9ucyBvZiB0aGF0IHdvcmsgYXJlIG5vdCBkZXJpdmVkIGZyb20gdGhlIExpYnJhcnksCmFuZCBjYW4gYmUgcmVhc29uYWJseSBjb25zaWRlcmVkIGluZGVwZW5kZW50IGFuZCBzZXBhcmF0ZSB3b3JrcyBpbgp0aGVtc2VsdmVzLCB0aGVuIHRoaXMgTGljZW5zZSwgYW5kIGl0cyB0ZXJtcywgZG8gbm90IGFwcGx5IHRvIHRob3NlCnNlY3Rpb25zIHdoZW4geW91IGRpc3RyaWJ1dGUgdGhlbSBhcyBzZXBhcmF0ZSB3b3Jrcy4gIEJ1dCB3aGVuIHlvdQpkaXN0cmlidXRlIHRoZSBzYW1lIHNlY3Rpb25zIGFzIHBhcnQgb2YgYSB3aG9sZSB3aGljaCBpcyBhIHdvcmsgYmFzZWQKb24gdGhlIExpYnJhcnksIHRoZSBkaXN0cmlidXRpb24gb2YgdGhlIHdob2xlIG11c3QgYmUgb24gdGhlIHRlcm1zIG9mCnRoaXMgTGljZW5zZSwgd2hvc2UgcGVybWlzc2lvbnMgZm9yIG90aGVyIGxpY2Vuc2VlcyBleHRlbmQgdG8gdGhlCmVudGlyZSB3aG9sZSwgYW5kIHRodXMgdG8gZWFjaCBhbmQgZXZlcnkgcGFydCByZWdhcmRsZXNzIG9mIHdobyB3cm90ZQppdC4KClRodXMsIGl0IGlzIG5vdCB0aGUgaW50ZW50IG9mIHRoaXMgc2VjdGlvbiB0byBjbGFpbSByaWdodHMgb3IgY29udGVzdAp5b3VyIHJpZ2h0cyB0byB3b3JrIHdyaXR0ZW4gZW50aXJlbHkgYnkgeW91OyByYXRoZXIsIHRoZSBpbnRlbnQgaXMgdG8KZXhlcmNpc2UgdGhlIHJpZ2h0IHRvIGNvbnRyb2wgdGhlIGRpc3RyaWJ1dGlvbiBvZiBkZXJpdmF0aXZlIG9yCmNvbGxlY3RpdmUgd29ya3MgYmFzZWQgb24gdGhlIExpYnJhcnkuCgpJbiBhZGRpdGlvbiwgbWVyZSBhZ2dyZWdhdGlvbiBvZiBhbm90aGVyIHdvcmsgbm90IGJhc2VkIG9uIHRoZSBMaWJyYXJ5CndpdGggdGhlIExpYnJhcnkgKG9yIHdpdGggYSB3b3JrIGJhc2VkIG9uIHRoZSBMaWJyYXJ5KSBvbiBhIHZvbHVtZSBvZgphIHN0b3JhZ2Ugb3IgZGlzdHJpYnV0aW9uIG1lZGl1bSBkb2VzIG5vdCBicmluZyB0aGUgb3RoZXIgd29yayB1bmRlcgp0aGUgc2NvcGUgb2YgdGhpcyBMaWNlbnNlLgoKICAzLiBZb3UgbWF5IG9wdCB0byBhcHBseSB0aGUgdGVybXMgb2YgdGhlIG9yZGluYXJ5IEdOVSBHZW5lcmFsIFB1YmxpYwpMaWNlbnNlIGluc3RlYWQgb2YgdGhpcyBMaWNlbnNlIHRvIGEgZ2l2ZW4gY29weSBvZiB0aGUgTGlicmFyeS4gIFRvIGRvCnRoaXMsIHlvdSBtdXN0IGFsdGVyIGFsbCB0aGUgbm90aWNlcyB0aGF0IHJlZmVyIHRvIHRoaXMgTGljZW5zZSwgc28KdGhhdCB0aGV5IHJlZmVyIHRvIHRoZSBvcmRpbmFyeSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwgdmVyc2lvbiAyLAppbnN0ZWFkIG9mIHRvIHRoaXMgTGljZW5zZS4gIChJZiBhIG5ld2VyIHZlcnNpb24gdGhhbiB2ZXJzaW9uIDIgb2YgdGhlCm9yZGluYXJ5IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGhhcyBhcHBlYXJlZCwgdGhlbiB5b3UgY2FuIHNwZWNpZnkKdGhhdCB2ZXJzaW9uIGluc3RlYWQgaWYgeW91IHdpc2guKSAgRG8gbm90IG1ha2UgYW55IG90aGVyIGNoYW5nZSBpbgp0aGVzZSBub3RpY2VzLgoKICBPbmNlIHRoaXMgY2hhbmdlIGlzIG1hZGUgaW4gYSBnaXZlbiBjb3B5LCBpdCBpcyBpcnJldmVyc2libGUgZm9yCnRoYXQgY29weSwgc28gdGhlIG9yZGluYXJ5IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFwcGxpZXMgdG8gYWxsCnN1YnNlcXVlbnQgY29waWVzIGFuZCBkZXJpdmF0aXZlIHdvcmtzIG1hZGUgZnJvbSB0aGF0IGNvcHkuCgogIFRoaXMgb3B0aW9uIGlzIHVzZWZ1bCB3aGVuIHlvdSB3aXNoIHRvIGNvcHkgcGFydCBvZiB0aGUgY29kZSBvZgp0aGUgTGlicmFyeSBpbnRvIGEgcHJvZ3JhbSB0aGF0IGlzIG5vdCBhIGxpYnJhcnkuCgogIDQuIFlvdSBtYXkgY29weSBhbmQgZGlzdHJpYnV0ZSB0aGUgTGlicmFyeSAob3IgYSBwb3J0aW9uIG9yCmRlcml2YXRpdmUgb2YgaXQsIHVuZGVyIFNlY3Rpb24gMikgaW4gb2JqZWN0IGNvZGUgb3IgZXhlY3V0YWJsZSBmb3JtCnVuZGVyIHRoZSB0ZXJtcyBvZiBTZWN0aW9ucyAxIGFuZCAyIGFib3ZlIHByb3ZpZGVkIHRoYXQgeW91IGFjY29tcGFueQppdCB3aXRoIHRoZSBjb21wbGV0ZSBjb3JyZXNwb25kaW5nIG1hY2hpbmUtcmVhZGFibGUgc291cmNlIGNvZGUsIHdoaWNoCm11c3QgYmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIFNlY3Rpb25zIDEgYW5kIDIgYWJvdmUgb24gYQptZWRpdW0gY3VzdG9tYXJpbHkgdXNlZCBmb3Igc29mdHdhcmUgaW50ZXJjaGFuZ2UuCgogIElmIGRpc3RyaWJ1dGlvbiBvZiBvYmplY3QgY29kZSBpcyBtYWRlIGJ5IG9mZmVyaW5nIGFjY2VzcyB0byBjb3B5CmZyb20gYSBkZXNpZ25hdGVkIHBsYWNlLCB0aGVuIG9mZmVyaW5nIGVxdWl2YWxlbnQgYWNjZXNzIHRvIGNvcHkgdGhlCnNvdXJjZSBjb2RlIGZyb20gdGhlIHNhbWUgcGxhY2Ugc2F0aXNmaWVzIHRoZSByZXF1aXJlbWVudCB0bwpkaXN0cmlidXRlIHRoZSBzb3VyY2UgY29kZSwgZXZlbiB0aG91Z2ggdGhpcmQgcGFydGllcyBhcmUgbm90CmNvbXBlbGxlZCB0byBjb3B5IHRoZSBzb3VyY2UgYWxvbmcgd2l0aCB0aGUgb2JqZWN0IGNvZGUuCgogIDUuIEEgcHJvZ3JhbSB0aGF0IGNvbnRhaW5zIG5vIGRlcml2YXRpdmUgb2YgYW55IHBvcnRpb24gb2YgdGhlCkxpYnJhcnksIGJ1dCBpcyBkZXNpZ25lZCB0byB3b3JrIHdpdGggdGhlIExpYnJhcnkgYnkgYmVpbmcgY29tcGlsZWQgb3IKbGlua2VkIHdpdGggaXQsIGlzIGNhbGxlZCBhICJ3b3JrIHRoYXQgdXNlcyB0aGUgTGlicmFyeSIuICBTdWNoIGEKd29yaywgaW4gaXNvbGF0aW9uLCBpcyBub3QgYSBkZXJpdmF0aXZlIHdvcmsgb2YgdGhlIExpYnJhcnksIGFuZAp0aGVyZWZvcmUgZmFsbHMgb3V0c2lkZSB0aGUgc2NvcGUgb2YgdGhpcyBMaWNlbnNlLgoKICBIb3dldmVyLCBsaW5raW5nIGEgIndvcmsgdGhhdCB1c2VzIHRoZSBMaWJyYXJ5IiB3aXRoIHRoZSBMaWJyYXJ5CmNyZWF0ZXMgYW4gZXhlY3V0YWJsZSB0aGF0IGlzIGEgZGVyaXZhdGl2ZSBvZiB0aGUgTGlicmFyeSAoYmVjYXVzZSBpdApjb250YWlucyBwb3J0aW9ucyBvZiB0aGUgTGlicmFyeSksIHJhdGhlciB0aGFuIGEgIndvcmsgdGhhdCB1c2VzIHRoZQpsaWJyYXJ5Ii4gIFRoZSBleGVjdXRhYmxlIGlzIHRoZXJlZm9yZSBjb3ZlcmVkIGJ5IHRoaXMgTGljZW5zZS4KU2VjdGlvbiA2IHN0YXRlcyB0ZXJtcyBmb3IgZGlzdHJpYnV0aW9uIG9mIHN1Y2ggZXhlY3V0YWJsZXMuCgogIFdoZW4gYSAid29yayB0aGF0IHVzZXMgdGhlIExpYnJhcnkiIHVzZXMgbWF0ZXJpYWwgZnJvbSBhIGhlYWRlciBmaWxlCnRoYXQgaXMgcGFydCBvZiB0aGUgTGlicmFyeSwgdGhlIG9iamVjdCBjb2RlIGZvciB0aGUgd29yayBtYXkgYmUgYQpkZXJpdmF0aXZlIHdvcmsgb2YgdGhlIExpYnJhcnkgZXZlbiB0aG91Z2ggdGhlIHNvdXJjZSBjb2RlIGlzIG5vdC4KV2hldGhlciB0aGlzIGlzIHRydWUgaXMgZXNwZWNpYWxseSBzaWduaWZpY2FudCBpZiB0aGUgd29yayBjYW4gYmUKbGlua2VkIHdpdGhvdXQgdGhlIExpYnJhcnksIG9yIGlmIHRoZSB3b3JrIGlzIGl0c2VsZiBhIGxpYnJhcnkuICBUaGUKdGhyZXNob2xkIGZvciB0aGlzIHRvIGJlIHRydWUgaXMgbm90IHByZWNpc2VseSBkZWZpbmVkIGJ5IGxhdy4KCiAgSWYgc3VjaCBhbiBvYmplY3QgZmlsZSB1c2VzIG9ubHkgbnVtZXJpY2FsIHBhcmFtZXRlcnMsIGRhdGEKc3RydWN0dXJlIGxheW91dHMgYW5kIGFjY2Vzc29ycywgYW5kIHNtYWxsIG1hY3JvcyBhbmQgc21hbGwgaW5saW5lCmZ1bmN0aW9ucyAodGVuIGxpbmVzIG9yIGxlc3MgaW4gbGVuZ3RoKSwgdGhlbiB0aGUgdXNlIG9mIHRoZSBvYmplY3QKZmlsZSBpcyB1bnJlc3RyaWN0ZWQsIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBpdCBpcyBsZWdhbGx5IGEgZGVyaXZhdGl2ZQp3b3JrLiAgKEV4ZWN1dGFibGVzIGNvbnRhaW5pbmcgdGhpcyBvYmplY3QgY29kZSBwbHVzIHBvcnRpb25zIG9mIHRoZQpMaWJyYXJ5IHdpbGwgc3RpbGwgZmFsbCB1bmRlciBTZWN0aW9uIDYuKQoKICBPdGhlcndpc2UsIGlmIHRoZSB3b3JrIGlzIGEgZGVyaXZhdGl2ZSBvZiB0aGUgTGlicmFyeSwgeW91IG1heQpkaXN0cmlidXRlIHRoZSBvYmplY3QgY29kZSBmb3IgdGhlIHdvcmsgdW5kZXIgdGhlIHRlcm1zIG9mIFNlY3Rpb24gNi4KQW55IGV4ZWN1dGFibGVzIGNvbnRhaW5pbmcgdGhhdCB3b3JrIGFsc28gZmFsbCB1bmRlciBTZWN0aW9uIDYsCndoZXRoZXIgb3Igbm90IHRoZXkgYXJlIGxpbmtlZCBkaXJlY3RseSB3aXRoIHRoZSBMaWJyYXJ5IGl0c2VsZi4KCiAgNi4gQXMgYW4gZXhjZXB0aW9uIHRvIHRoZSBTZWN0aW9ucyBhYm92ZSwgeW91IG1heSBhbHNvIGNvbWJpbmUgb3IKbGluayBhICJ3b3JrIHRoYXQgdXNlcyB0aGUgTGlicmFyeSIgd2l0aCB0aGUgTGlicmFyeSB0byBwcm9kdWNlIGEKd29yayBjb250YWluaW5nIHBvcnRpb25zIG9mIHRoZSBMaWJyYXJ5LCBhbmQgZGlzdHJpYnV0ZSB0aGF0IHdvcmsKdW5kZXIgdGVybXMgb2YgeW91ciBjaG9pY2UsIHByb3ZpZGVkIHRoYXQgdGhlIHRlcm1zIHBlcm1pdAptb2RpZmljYXRpb24gb2YgdGhlIHdvcmsgZm9yIHRoZSBjdXN0b21lcidzIG93biB1c2UgYW5kIHJldmVyc2UKZW5naW5lZXJpbmcgZm9yIGRlYnVnZ2luZyBzdWNoIG1vZGlmaWNhdGlvbnMuCgogIFlvdSBtdXN0IGdpdmUgcHJvbWluZW50IG5vdGljZSB3aXRoIGVhY2ggY29weSBvZiB0aGUgd29yayB0aGF0IHRoZQpMaWJyYXJ5IGlzIHVzZWQgaW4gaXQgYW5kIHRoYXQgdGhlIExpYnJhcnkgYW5kIGl0cyB1c2UgYXJlIGNvdmVyZWQgYnkKdGhpcyBMaWNlbnNlLiAgWW91IG11c3Qgc3VwcGx5IGEgY29weSBvZiB0aGlzIExpY2Vuc2UuICBJZiB0aGUgd29yawpkdXJpbmcgZXhlY3V0aW9uIGRpc3BsYXlzIGNvcHlyaWdodCBub3RpY2VzLCB5b3UgbXVzdCBpbmNsdWRlIHRoZQpjb3B5cmlnaHQgbm90aWNlIGZvciB0aGUgTGlicmFyeSBhbW9uZyB0aGVtLCBhcyB3ZWxsIGFzIGEgcmVmZXJlbmNlCmRpcmVjdGluZyB0aGUgdXNlciB0byB0aGUgY29weSBvZiB0aGlzIExpY2Vuc2UuICBBbHNvLCB5b3UgbXVzdCBkbyBvbmUKb2YgdGhlc2UgdGhpbmdzOgoKICAgIGEpIEFjY29tcGFueSB0aGUgd29yayB3aXRoIHRoZSBjb21wbGV0ZSBjb3JyZXNwb25kaW5nCiAgICBtYWNoaW5lLXJlYWRhYmxlIHNvdXJjZSBjb2RlIGZvciB0aGUgTGlicmFyeSBpbmNsdWRpbmcgd2hhdGV2ZXIKICAgIGNoYW5nZXMgd2VyZSB1c2VkIGluIHRoZSB3b3JrICh3aGljaCBtdXN0IGJlIGRpc3RyaWJ1dGVkIHVuZGVyCiAgICBTZWN0aW9ucyAxIGFuZCAyIGFib3ZlKTsgYW5kLCBpZiB0aGUgd29yayBpcyBhbiBleGVjdXRhYmxlIGxpbmtlZAogICAgd2l0aCB0aGUgTGlicmFyeSwgd2l0aCB0aGUgY29tcGxldGUgbWFjaGluZS1yZWFkYWJsZSAid29yayB0aGF0CiAgICB1c2VzIHRoZSBMaWJyYXJ5IiwgYXMgb2JqZWN0IGNvZGUgYW5kL29yIHNvdXJjZSBjb2RlLCBzbyB0aGF0IHRoZQogICAgdXNlciBjYW4gbW9kaWZ5IHRoZSBMaWJyYXJ5IGFuZCB0aGVuIHJlbGluayB0byBwcm9kdWNlIGEgbW9kaWZpZWQKICAgIGV4ZWN1dGFibGUgY29udGFpbmluZyB0aGUgbW9kaWZpZWQgTGlicmFyeS4gIChJdCBpcyB1bmRlcnN0b29kCiAgICB0aGF0IHRoZSB1c2VyIHdobyBjaGFuZ2VzIHRoZSBjb250ZW50cyBvZiBkZWZpbml0aW9ucyBmaWxlcyBpbiB0aGUKICAgIExpYnJhcnkgd2lsbCBub3QgbmVjZXNzYXJpbHkgYmUgYWJsZSB0byByZWNvbXBpbGUgdGhlIGFwcGxpY2F0aW9uCiAgICB0byB1c2UgdGhlIG1vZGlmaWVkIGRlZmluaXRpb25zLikKCiAgICBiKSBVc2UgYSBzdWl0YWJsZSBzaGFyZWQgbGlicmFyeSBtZWNoYW5pc20gZm9yIGxpbmtpbmcgd2l0aCB0aGUKICAgIExpYnJhcnkuICBBIHN1aXRhYmxlIG1lY2hhbmlzbSBpcyBvbmUgdGhhdCAoMSkgdXNlcyBhdCBydW4gdGltZSBhCiAgICBjb3B5IG9mIHRoZSBsaWJyYXJ5IGFscmVhZHkgcHJlc2VudCBvbiB0aGUgdXNlcidzIGNvbXB1dGVyIHN5c3RlbSwKICAgIHJhdGhlciB0aGFuIGNvcHlpbmcgbGlicmFyeSBmdW5jdGlvbnMgaW50byB0aGUgZXhlY3V0YWJsZSwgYW5kICgyKQogICAgd2lsbCBvcGVyYXRlIHByb3Blcmx5IHdpdGggYSBtb2RpZmllZCB2ZXJzaW9uIG9mIHRoZSBsaWJyYXJ5LCBpZgogICAgdGhlIHVzZXIgaW5zdGFsbHMgb25lLCBhcyBsb25nIGFzIHRoZSBtb2RpZmllZCB2ZXJzaW9uIGlzCiAgICBpbnRlcmZhY2UtY29tcGF0aWJsZSB3aXRoIHRoZSB2ZXJzaW9uIHRoYXQgdGhlIHdvcmsgd2FzIG1hZGUgd2l0aC4KCiAgICBjKSBBY2NvbXBhbnkgdGhlIHdvcmsgd2l0aCBhIHdyaXR0ZW4gb2ZmZXIsIHZhbGlkIGZvciBhdAogICAgbGVhc3QgdGhyZWUgeWVhcnMsIHRvIGdpdmUgdGhlIHNhbWUgdXNlciB0aGUgbWF0ZXJpYWxzCiAgICBzcGVjaWZpZWQgaW4gU3Vic2VjdGlvbiA2YSwgYWJvdmUsIGZvciBhIGNoYXJnZSBubyBtb3JlCiAgICB0aGFuIHRoZSBjb3N0IG9mIHBlcmZvcm1pbmcgdGhpcyBkaXN0cmlidXRpb24uCgogICAgZCkgSWYgZGlzdHJpYnV0aW9uIG9mIHRoZSB3b3JrIGlzIG1hZGUgYnkgb2ZmZXJpbmcgYWNjZXNzIHRvIGNvcHkKICAgIGZyb20gYSBkZXNpZ25hdGVkIHBsYWNlLCBvZmZlciBlcXVpdmFsZW50IGFjY2VzcyB0byBjb3B5IHRoZSBhYm92ZQogICAgc3BlY2lmaWVkIG1hdGVyaWFscyBmcm9tIHRoZSBzYW1lIHBsYWNlLgoKICAgIGUpIFZlcmlmeSB0aGF0IHRoZSB1c2VyIGhhcyBhbHJlYWR5IHJlY2VpdmVkIGEgY29weSBvZiB0aGVzZQogICAgbWF0ZXJpYWxzIG9yIHRoYXQgeW91IGhhdmUgYWxyZWFkeSBzZW50IHRoaXMgdXNlciBhIGNvcHkuCgogIEZvciBhbiBleGVjdXRhYmxlLCB0aGUgcmVxdWlyZWQgZm9ybSBvZiB0aGUgIndvcmsgdGhhdCB1c2VzIHRoZQpMaWJyYXJ5IiBtdXN0IGluY2x1ZGUgYW55IGRhdGEgYW5kIHV0aWxpdHkgcHJvZ3JhbXMgbmVlZGVkIGZvcgpyZXByb2R1Y2luZyB0aGUgZXhlY3V0YWJsZSBmcm9tIGl0LiAgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiwKdGhlIG1hdGVyaWFscyB0byBiZSBkaXN0cmlidXRlZCBuZWVkIG5vdCBpbmNsdWRlIGFueXRoaW5nIHRoYXQgaXMKbm9ybWFsbHkgZGlzdHJpYnV0ZWQgKGluIGVpdGhlciBzb3VyY2Ugb3IgYmluYXJ5IGZvcm0pIHdpdGggdGhlIG1ham9yCmNvbXBvbmVudHMgKGNvbXBpbGVyLCBrZXJuZWwsIGFuZCBzbyBvbikgb2YgdGhlIG9wZXJhdGluZyBzeXN0ZW0gb24Kd2hpY2ggdGhlIGV4ZWN1dGFibGUgcnVucywgdW5sZXNzIHRoYXQgY29tcG9uZW50IGl0c2VsZiBhY2NvbXBhbmllcwp0aGUgZXhlY3V0YWJsZS4KCiAgSXQgbWF5IGhhcHBlbiB0aGF0IHRoaXMgcmVxdWlyZW1lbnQgY29udHJhZGljdHMgdGhlIGxpY2Vuc2UKcmVzdHJpY3Rpb25zIG9mIG90aGVyIHByb3ByaWV0YXJ5IGxpYnJhcmllcyB0aGF0IGRvIG5vdCBub3JtYWxseQphY2NvbXBhbnkgdGhlIG9wZXJhdGluZyBzeXN0ZW0uICBTdWNoIGEgY29udHJhZGljdGlvbiBtZWFucyB5b3UgY2Fubm90CnVzZSBib3RoIHRoZW0gYW5kIHRoZSBMaWJyYXJ5IHRvZ2V0aGVyIGluIGFuIGV4ZWN1dGFibGUgdGhhdCB5b3UKZGlzdHJpYnV0ZS4KCiAgNy4gWW91IG1heSBwbGFjZSBsaWJyYXJ5IGZhY2lsaXRpZXMgdGhhdCBhcmUgYSB3b3JrIGJhc2VkIG9uIHRoZQpMaWJyYXJ5IHNpZGUtYnktc2lkZSBpbiBhIHNpbmdsZSBsaWJyYXJ5IHRvZ2V0aGVyIHdpdGggb3RoZXIgbGlicmFyeQpmYWNpbGl0aWVzIG5vdCBjb3ZlcmVkIGJ5IHRoaXMgTGljZW5zZSwgYW5kIGRpc3RyaWJ1dGUgc3VjaCBhIGNvbWJpbmVkCmxpYnJhcnksIHByb3ZpZGVkIHRoYXQgdGhlIHNlcGFyYXRlIGRpc3RyaWJ1dGlvbiBvZiB0aGUgd29yayBiYXNlZCBvbgp0aGUgTGlicmFyeSBhbmQgb2YgdGhlIG90aGVyIGxpYnJhcnkgZmFjaWxpdGllcyBpcyBvdGhlcndpc2UKcGVybWl0dGVkLCBhbmQgcHJvdmlkZWQgdGhhdCB5b3UgZG8gdGhlc2UgdHdvIHRoaW5nczoKCiAgICBhKSBBY2NvbXBhbnkgdGhlIGNvbWJpbmVkIGxpYnJhcnkgd2l0aCBhIGNvcHkgb2YgdGhlIHNhbWUgd29yawogICAgYmFzZWQgb24gdGhlIExpYnJhcnksIHVuY29tYmluZWQgd2l0aCBhbnkgb3RoZXIgbGlicmFyeQogICAgZmFjaWxpdGllcy4gIFRoaXMgbXVzdCBiZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlCiAgICBTZWN0aW9ucyBhYm92ZS4KCiAgICBiKSBHaXZlIHByb21pbmVudCBub3RpY2Ugd2l0aCB0aGUgY29tYmluZWQgbGlicmFyeSBvZiB0aGUgZmFjdAogICAgdGhhdCBwYXJ0IG9mIGl0IGlzIGEgd29yayBiYXNlZCBvbiB0aGUgTGlicmFyeSwgYW5kIGV4cGxhaW5pbmcKICAgIHdoZXJlIHRvIGZpbmQgdGhlIGFjY29tcGFueWluZyB1bmNvbWJpbmVkIGZvcm0gb2YgdGhlIHNhbWUgd29yay4KCiAgOC4gWW91IG1heSBub3QgY29weSwgbW9kaWZ5LCBzdWJsaWNlbnNlLCBsaW5rIHdpdGgsIG9yIGRpc3RyaWJ1dGUKdGhlIExpYnJhcnkgZXhjZXB0IGFzIGV4cHJlc3NseSBwcm92aWRlZCB1bmRlciB0aGlzIExpY2Vuc2UuICBBbnkKYXR0ZW1wdCBvdGhlcndpc2UgdG8gY29weSwgbW9kaWZ5LCBzdWJsaWNlbnNlLCBsaW5rIHdpdGgsIG9yCmRpc3RyaWJ1dGUgdGhlIExpYnJhcnkgaXMgdm9pZCwgYW5kIHdpbGwgYXV0b21hdGljYWxseSB0ZXJtaW5hdGUgeW91cgpyaWdodHMgdW5kZXIgdGhpcyBMaWNlbnNlLiAgSG93ZXZlciwgcGFydGllcyB3aG8gaGF2ZSByZWNlaXZlZCBjb3BpZXMsCm9yIHJpZ2h0cywgZnJvbSB5b3UgdW5kZXIgdGhpcyBMaWNlbnNlIHdpbGwgbm90IGhhdmUgdGhlaXIgbGljZW5zZXMKdGVybWluYXRlZCBzbyBsb25nIGFzIHN1Y2ggcGFydGllcyByZW1haW4gaW4gZnVsbCBjb21wbGlhbmNlLgoKICA5LiBZb3UgYXJlIG5vdCByZXF1aXJlZCB0byBhY2NlcHQgdGhpcyBMaWNlbnNlLCBzaW5jZSB5b3UgaGF2ZSBub3QKc2lnbmVkIGl0LiAgSG93ZXZlciwgbm90aGluZyBlbHNlIGdyYW50cyB5b3UgcGVybWlzc2lvbiB0byBtb2RpZnkgb3IKZGlzdHJpYnV0ZSB0aGUgTGlicmFyeSBvciBpdHMgZGVyaXZhdGl2ZSB3b3Jrcy4gIFRoZXNlIGFjdGlvbnMgYXJlCnByb2hpYml0ZWQgYnkgbGF3IGlmIHlvdSBkbyBub3QgYWNjZXB0IHRoaXMgTGljZW5zZS4gIFRoZXJlZm9yZSwgYnkKbW9kaWZ5aW5nIG9yIGRpc3RyaWJ1dGluZyB0aGUgTGlicmFyeSAob3IgYW55IHdvcmsgYmFzZWQgb24gdGhlCkxpYnJhcnkpLCB5b3UgaW5kaWNhdGUgeW91ciBhY2NlcHRhbmNlIG9mIHRoaXMgTGljZW5zZSB0byBkbyBzbywgYW5kCmFsbCBpdHMgdGVybXMgYW5kIGNvbmRpdGlvbnMgZm9yIGNvcHlpbmcsIGRpc3RyaWJ1dGluZyBvciBtb2RpZnlpbmcKdGhlIExpYnJhcnkgb3Igd29ya3MgYmFzZWQgb24gaXQuCgogIDEwLiBFYWNoIHRpbWUgeW91IHJlZGlzdHJpYnV0ZSB0aGUgTGlicmFyeSAob3IgYW55IHdvcmsgYmFzZWQgb24gdGhlCkxpYnJhcnkpLCB0aGUgcmVjaXBpZW50IGF1dG9tYXRpY2FsbHkgcmVjZWl2ZXMgYSBsaWNlbnNlIGZyb20gdGhlCm9yaWdpbmFsIGxpY2Vuc29yIHRvIGNvcHksIGRpc3RyaWJ1dGUsIGxpbmsgd2l0aCBvciBtb2RpZnkgdGhlIExpYnJhcnkKc3ViamVjdCB0byB0aGVzZSB0ZXJtcyBhbmQgY29uZGl0aW9ucy4gIFlvdSBtYXkgbm90IGltcG9zZSBhbnkgZnVydGhlcgpyZXN0cmljdGlvbnMgb24gdGhlIHJlY2lwaWVudHMnIGV4ZXJjaXNlIG9mIHRoZSByaWdodHMgZ3JhbnRlZCBoZXJlaW4uCllvdSBhcmUgbm90IHJlc3BvbnNpYmxlIGZvciBlbmZvcmNpbmcgY29tcGxpYW5jZSBieSB0aGlyZCBwYXJ0aWVzIHdpdGgKdGhpcyBMaWNlbnNlLgoKICAxMS4gSWYsIGFzIGEgY29uc2VxdWVuY2Ugb2YgYSBjb3VydCBqdWRnbWVudCBvciBhbGxlZ2F0aW9uIG9mIHBhdGVudAppbmZyaW5nZW1lbnQgb3IgZm9yIGFueSBvdGhlciByZWFzb24gKG5vdCBsaW1pdGVkIHRvIHBhdGVudCBpc3N1ZXMpLApjb25kaXRpb25zIGFyZSBpbXBvc2VkIG9uIHlvdSAod2hldGhlciBieSBjb3VydCBvcmRlciwgYWdyZWVtZW50IG9yCm90aGVyd2lzZSkgdGhhdCBjb250cmFkaWN0IHRoZSBjb25kaXRpb25zIG9mIHRoaXMgTGljZW5zZSwgdGhleSBkbyBub3QKZXhjdXNlIHlvdSBmcm9tIHRoZSBjb25kaXRpb25zIG9mIHRoaXMgTGljZW5zZS4gIElmIHlvdSBjYW5ub3QKZGlzdHJpYnV0ZSBzbyBhcyB0byBzYXRpc2Z5IHNpbXVsdGFuZW91c2x5IHlvdXIgb2JsaWdhdGlvbnMgdW5kZXIgdGhpcwpMaWNlbnNlIGFuZCBhbnkgb3RoZXIgcGVydGluZW50IG9ibGlnYXRpb25zLCB0aGVuIGFzIGEgY29uc2VxdWVuY2UgeW91Cm1heSBub3QgZGlzdHJpYnV0ZSB0aGUgTGlicmFyeSBhdCBhbGwuICBGb3IgZXhhbXBsZSwgaWYgYSBwYXRlbnQKbGljZW5zZSB3b3VsZCBub3QgcGVybWl0IHJveWFsdHktZnJlZSByZWRpc3RyaWJ1dGlvbiBvZiB0aGUgTGlicmFyeSBieQphbGwgdGhvc2Ugd2hvIHJlY2VpdmUgY29waWVzIGRpcmVjdGx5IG9yIGluZGlyZWN0bHkgdGhyb3VnaCB5b3UsIHRoZW4KdGhlIG9ubHkgd2F5IHlvdSBjb3VsZCBzYXRpc2Z5IGJvdGggaXQgYW5kIHRoaXMgTGljZW5zZSB3b3VsZCBiZSB0bwpyZWZyYWluIGVudGlyZWx5IGZyb20gZGlzdHJpYnV0aW9uIG9mIHRoZSBMaWJyYXJ5LgoKSWYgYW55IHBvcnRpb24gb2YgdGhpcyBzZWN0aW9uIGlzIGhlbGQgaW52YWxpZCBvciB1bmVuZm9yY2VhYmxlIHVuZGVyIGFueQpwYXJ0aWN1bGFyIGNpcmN1bXN0YW5jZSwgdGhlIGJhbGFuY2Ugb2YgdGhlIHNlY3Rpb24gaXMgaW50ZW5kZWQgdG8gYXBwbHksCmFuZCB0aGUgc2VjdGlvbiBhcyBhIHdob2xlIGlzIGludGVuZGVkIHRvIGFwcGx5IGluIG90aGVyIGNpcmN1bXN0YW5jZXMuCgpJdCBpcyBub3QgdGhlIHB1cnBvc2Ugb2YgdGhpcyBzZWN0aW9uIHRvIGluZHVjZSB5b3UgdG8gaW5mcmluZ2UgYW55CnBhdGVudHMgb3Igb3RoZXIgcHJvcGVydHkgcmlnaHQgY2xhaW1zIG9yIHRvIGNvbnRlc3QgdmFsaWRpdHkgb2YgYW55CnN1Y2ggY2xhaW1zOyB0aGlzIHNlY3Rpb24gaGFzIHRoZSBzb2xlIHB1cnBvc2Ugb2YgcHJvdGVjdGluZyB0aGUKaW50ZWdyaXR5IG9mIHRoZSBmcmVlIHNvZnR3YXJlIGRpc3RyaWJ1dGlvbiBzeXN0ZW0gd2hpY2ggaXMKaW1wbGVtZW50ZWQgYnkgcHVibGljIGxpY2Vuc2UgcHJhY3RpY2VzLiAgTWFueSBwZW9wbGUgaGF2ZSBtYWRlCmdlbmVyb3VzIGNvbnRyaWJ1dGlvbnMgdG8gdGhlIHdpZGUgcmFuZ2Ugb2Ygc29mdHdhcmUgZGlzdHJpYnV0ZWQKdGhyb3VnaCB0aGF0IHN5c3RlbSBpbiByZWxpYW5jZSBvbiBjb25zaXN0ZW50IGFwcGxpY2F0aW9uIG9mIHRoYXQKc3lzdGVtOyBpdCBpcyB1cCB0byB0aGUgYXV0aG9yL2Rvbm9yIHRvIGRlY2lkZSBpZiBoZSBvciBzaGUgaXMgd2lsbGluZwp0byBkaXN0cmlidXRlIHNvZnR3YXJlIHRocm91Z2ggYW55IG90aGVyIHN5c3RlbSBhbmQgYSBsaWNlbnNlZSBjYW5ub3QKaW1wb3NlIHRoYXQgY2hvaWNlLgoKVGhpcyBzZWN0aW9uIGlzIGludGVuZGVkIHRvIG1ha2UgdGhvcm91Z2hseSBjbGVhciB3aGF0IGlzIGJlbGlldmVkIHRvCmJlIGEgY29uc2VxdWVuY2Ugb2YgdGhlIHJlc3Qgb2YgdGhpcyBMaWNlbnNlLgoKICAxMi4gSWYgdGhlIGRpc3RyaWJ1dGlvbiBhbmQvb3IgdXNlIG9mIHRoZSBMaWJyYXJ5IGlzIHJlc3RyaWN0ZWQgaW4KY2VydGFpbiBjb3VudHJpZXMgZWl0aGVyIGJ5IHBhdGVudHMgb3IgYnkgY29weXJpZ2h0ZWQgaW50ZXJmYWNlcywgdGhlCm9yaWdpbmFsIGNvcHlyaWdodCBob2xkZXIgd2hvIHBsYWNlcyB0aGUgTGlicmFyeSB1bmRlciB0aGlzIExpY2Vuc2UgbWF5IGFkZAphbiBleHBsaWNpdCBnZW9ncmFwaGljYWwgZGlzdHJpYnV0aW9uIGxpbWl0YXRpb24gZXhjbHVkaW5nIHRob3NlIGNvdW50cmllcywKc28gdGhhdCBkaXN0cmlidXRpb24gaXMgcGVybWl0dGVkIG9ubHkgaW4gb3IgYW1vbmcgY291bnRyaWVzIG5vdCB0aHVzCmV4Y2x1ZGVkLiAgSW4gc3VjaCBjYXNlLCB0aGlzIExpY2Vuc2UgaW5jb3Jwb3JhdGVzIHRoZSBsaW1pdGF0aW9uIGFzIGlmCndyaXR0ZW4gaW4gdGhlIGJvZHkgb2YgdGhpcyBMaWNlbnNlLgoKICAxMy4gVGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiBtYXkgcHVibGlzaCByZXZpc2VkIGFuZC9vciBuZXcKdmVyc2lvbnMgb2YgdGhlIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZyb20gdGltZSB0byB0aW1lLgpTdWNoIG5ldyB2ZXJzaW9ucyB3aWxsIGJlIHNpbWlsYXIgaW4gc3Bpcml0IHRvIHRoZSBwcmVzZW50IHZlcnNpb24sCmJ1dCBtYXkgZGlmZmVyIGluIGRldGFpbCB0byBhZGRyZXNzIG5ldyBwcm9ibGVtcyBvciBjb25jZXJucy4KCkVhY2ggdmVyc2lvbiBpcyBnaXZlbiBhIGRpc3Rpbmd1aXNoaW5nIHZlcnNpb24gbnVtYmVyLiAgSWYgdGhlIExpYnJhcnkKc3BlY2lmaWVzIGEgdmVyc2lvbiBudW1iZXIgb2YgdGhpcyBMaWNlbnNlIHdoaWNoIGFwcGxpZXMgdG8gaXQgYW5kCiJhbnkgbGF0ZXIgdmVyc2lvbiIsIHlvdSBoYXZlIHRoZSBvcHRpb24gb2YgZm9sbG93aW5nIHRoZSB0ZXJtcyBhbmQKY29uZGl0aW9ucyBlaXRoZXIgb2YgdGhhdCB2ZXJzaW9uIG9yIG9mIGFueSBsYXRlciB2ZXJzaW9uIHB1Ymxpc2hlZCBieQp0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLiAgSWYgdGhlIExpYnJhcnkgZG9lcyBub3Qgc3BlY2lmeSBhCmxpY2Vuc2UgdmVyc2lvbiBudW1iZXIsIHlvdSBtYXkgY2hvb3NlIGFueSB2ZXJzaW9uIGV2ZXIgcHVibGlzaGVkIGJ5CnRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCgogIDE0LiBJZiB5b3Ugd2lzaCB0byBpbmNvcnBvcmF0ZSBwYXJ0cyBvZiB0aGUgTGlicmFyeSBpbnRvIG90aGVyIGZyZWUKcHJvZ3JhbXMgd2hvc2UgZGlzdHJpYnV0aW9uIGNvbmRpdGlvbnMgYXJlIGluY29tcGF0aWJsZSB3aXRoIHRoZXNlLAp3cml0ZSB0byB0aGUgYXV0aG9yIHRvIGFzayBmb3IgcGVybWlzc2lvbi4gIEZvciBzb2Z0d2FyZSB3aGljaCBpcwpjb3B5cmlnaHRlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3cml0ZSB0byB0aGUgRnJlZQpTb2Z0d2FyZSBGb3VuZGF0aW9uOyB3ZSBzb21ldGltZXMgbWFrZSBleGNlcHRpb25zIGZvciB0aGlzLiAgT3VyCmRlY2lzaW9uIHdpbGwgYmUgZ3VpZGVkIGJ5IHRoZSB0d28gZ29hbHMgb2YgcHJlc2VydmluZyB0aGUgZnJlZSBzdGF0dXMKb2YgYWxsIGRlcml2YXRpdmVzIG9mIG91ciBmcmVlIHNvZnR3YXJlIGFuZCBvZiBwcm9tb3RpbmcgdGhlIHNoYXJpbmcKYW5kIHJldXNlIG9mIHNvZnR3YXJlIGdlbmVyYWxseS4KCgkJCSAgICBOTyBXQVJSQU5UWQoKICAxNS4gQkVDQVVTRSBUSEUgTElCUkFSWSBJUyBMSUNFTlNFRCBGUkVFIE9GIENIQVJHRSwgVEhFUkUgSVMgTk8KV0FSUkFOVFkgRk9SIFRIRSBMSUJSQVJZLCBUTyBUSEUgRVhURU5UIFBFUk1JVFRFRCBCWSBBUFBMSUNBQkxFIExBVy4KRVhDRVBUIFdIRU4gT1RIRVJXSVNFIFNUQVRFRCBJTiBXUklUSU5HIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQvT1IKT1RIRVIgUEFSVElFUyBQUk9WSURFIFRIRSBMSUJSQVJZICJBUyBJUyIgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkKS0lORCwgRUlUSEVSIEVYUFJFU1NFRCBPUiBJTVBMSUVELCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCklNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgpQVVJQT1NFLiAgVEhFIEVOVElSRSBSSVNLIEFTIFRPIFRIRSBRVUFMSVRZIEFORCBQRVJGT1JNQU5DRSBPRiBUSEUKTElCUkFSWSBJUyBXSVRIIFlPVS4gIFNIT1VMRCBUSEUgTElCUkFSWSBQUk9WRSBERUZFQ1RJVkUsIFlPVSBBU1NVTUUKVEhFIENPU1QgT0YgQUxMIE5FQ0VTU0FSWSBTRVJWSUNJTkcsIFJFUEFJUiBPUiBDT1JSRUNUSU9OLgoKICAxNi4gSU4gTk8gRVZFTlQgVU5MRVNTIFJFUVVJUkVEIEJZIEFQUExJQ0FCTEUgTEFXIE9SIEFHUkVFRCBUTyBJTgpXUklUSU5HIFdJTEwgQU5ZIENPUFlSSUdIVCBIT0xERVIsIE9SIEFOWSBPVEhFUiBQQVJUWSBXSE8gTUFZIE1PRElGWQpBTkQvT1IgUkVESVNUUklCVVRFIFRIRSBMSUJSQVJZIEFTIFBFUk1JVFRFRCBBQk9WRSwgQkUgTElBQkxFIFRPIFlPVQpGT1IgREFNQUdFUywgSU5DTFVESU5HIEFOWSBHRU5FUkFMLCBTUEVDSUFMLCBJTkNJREVOVEFMIE9SCkNPTlNFUVVFTlRJQUwgREFNQUdFUyBBUklTSU5HIE9VVCBPRiBUSEUgVVNFIE9SIElOQUJJTElUWSBUTyBVU0UgVEhFCkxJQlJBUlkgKElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gTE9TUyBPRiBEQVRBIE9SIERBVEEgQkVJTkcKUkVOREVSRUQgSU5BQ0NVUkFURSBPUiBMT1NTRVMgU1VTVEFJTkVEIEJZIFlPVSBPUiBUSElSRCBQQVJUSUVTIE9SIEEKRkFJTFVSRSBPRiBUSEUgTElCUkFSWSBUTyBPUEVSQVRFIFdJVEggQU5ZIE9USEVSIFNPRlRXQVJFKSwgRVZFTiBJRgpTVUNIIEhPTERFUiBPUiBPVEhFUiBQQVJUWSBIQVMgQkVFTiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNICkRBTUFHRVMuCgoJCSAgICAgRU5EIE9GIFRFUk1TIEFORCBDT05ESVRJT05TCg==]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/manage_area.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[CUVkaXRBcmVhLnByb3RvdHlwZS5mb2N1cyA9IGZ1bmN0aW9uKCkgew0KCQl0aGlzLnRleHRhcmVhLmZvY3VzKCk7DQoJCXRoaXMudGV4dGFyZWFGb2N1c2VkPXRydWU7DQoJfTsNCg0KDQoJRWRpdEFyZWEucHJvdG90eXBlLmNoZWNrX2xpbmVfc2VsZWN0aW9uPSBmdW5jdGlvbih0aW1lcl9jaGVja3VwKXsNCgkJdmFyIGNoYW5nZXMsIGluZm9zLCBuZXdfdG9wLCBuZXdfd2lkdGgsaTsNCgkJDQoJCXZhciB0MT10Mj10Ml8xPXQzPXRMaW5lcz10ZW5kPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTsNCgkJLy8gbCdlZGl0ZXVyIG4nZXhpc3RlIHBsdXMgPT4gb24gcXVpdHRlDQoJCWlmKCFlZGl0QXJlYXNbdGhpcy5pZF0pDQoJCQlyZXR1cm4gZmFsc2U7DQoJCQ0KCQlpZighdGhpcy5zbW9vdGhfc2VsZWN0aW9uICYmICF0aGlzLmRvX2hpZ2hsaWdodCkNCgkJew0KCQkJLy9kbyBub3RoaW5nDQoJCX0NCgkJZWxzZSBpZih0aGlzLnRleHRhcmVhRm9jdXNlZCAmJiBlZGl0QXJlYXNbdGhpcy5pZF1bImRpc3BsYXllZCJdPT10cnVlICYmIHRoaXMuaXNSZXNpemluZz09ZmFsc2UpDQoJCXsNCgkJCWluZm9zCT0gdGhpcy5nZXRfc2VsZWN0aW9uX2luZm9zKCk7DQoJCQljaGFuZ2VzCT0gdGhpcy5jaGVja1RleHRFdm9sdXRpb24oIHR5cGVvZiggdGhpcy5sYXN0X3NlbGVjdGlvblsnZnVsbF90ZXh0J10gKSA9PSAndW5kZWZpbmVkJyA/ICcnIDogdGhpcy5sYXN0X3NlbGVjdGlvblsnZnVsbF90ZXh0J10sIGluZm9zWydmdWxsX3RleHQnXSApOw0KCQkNCgkJCXQyPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTsNCgkJCQ0KCQkJLy8gaWYgc2VsZWN0aW9uIGNoYW5nZQ0KCQkJaWYodGhpcy5sYXN0X3NlbGVjdGlvblsibGluZV9zdGFydCJdICE9IGluZm9zWyJsaW5lX3N0YXJ0Il0gfHwgdGhpcy5sYXN0X3NlbGVjdGlvblsibGluZV9uYiJdICE9IGluZm9zWyJsaW5lX25iIl0gfHwgaW5mb3NbImZ1bGxfdGV4dCJdICE9IHRoaXMubGFzdF9zZWxlY3Rpb25bImZ1bGxfdGV4dCJdIHx8IHRoaXMucmVsb2FkX2hpZ2hsaWdodCB8fCB0aGlzLmxhc3Rfc2VsZWN0aW9uWyJzZWxlY3Rpb25TdGFydCJdICE9IGluZm9zWyJzZWxlY3Rpb25TdGFydCJdIHx8IHRoaXMubGFzdF9zZWxlY3Rpb25bInNlbGVjdGlvbkVuZCJdICE9IGluZm9zWyJzZWxlY3Rpb25FbmQiXSB8fCAhdGltZXJfY2hlY2t1cCApDQoJCQl7DQoJCQkJLy8gbW92ZSBhbmQgYWRqdXN0IHRleHQgc2VsZWN0aW9uIGVsZW1lbnRzDQoJCQkJbmV3X3RvcAkJPSB0aGlzLmdldExpbmVQb3NUb3AoIGluZm9zWyJsaW5lX3N0YXJ0Il0gKTsNCgkJCQluZXdfd2lkdGgJPSBNYXRoLm1heCh0aGlzLnRleHRhcmVhLnNjcm9sbFdpZHRoLCB0aGlzLmNvbnRhaW5lci5jbGllbnRXaWR0aCAtNTApOw0KCQkJCXRoaXMuc2VsZWN0aW9uX2ZpZWxkLnN0eWxlLnRvcD10aGlzLnNlbGVjdGlvbl9maWVsZF90ZXh0LnN0eWxlLnRvcD1uZXdfdG9wKyJweCI7DQoJCQkJaWYoIXRoaXMuc2V0dGluZ3NbJ3dvcmRfd3JhcCddKXsJDQoJCQkJCXRoaXMuc2VsZWN0aW9uX2ZpZWxkLnN0eWxlLndpZHRoPXRoaXMuc2VsZWN0aW9uX2ZpZWxkX3RleHQuc3R5bGUud2lkdGg9dGhpcy50ZXN0X2ZvbnRfc2l6ZS5zdHlsZS53aWR0aD1uZXdfd2lkdGgrInB4IjsNCgkJCQl9DQoJCQkJDQoJCQkJLy8gdXNlZnVsbD8gPT4gXyQoImN1cnNvcl9wb3MiKS5zdHlsZS50b3A9bmV3X3RvcCsicHgiOwkNCgkJDQoJCQkJaWYodGhpcy5kb19oaWdobGlnaHQ9PXRydWUpDQoJCQkJew0KCQkJCQkvLyBmaWxsIHNlbGVjdGlvbiBlbGVtZW50cw0KCQkJCQl2YXIgY3Vycl90ZXh0CT0gaW5mb3NbImZ1bGxfdGV4dCJdLnNwbGl0KCJcbiIpOw0KCQkJCQl2YXIgY29udGVudAkJPSAiIjsNCgkJCQkJLy9hbGVydCgibGVuZ3RoOiAiK2N1cnJfdGV4dC5sZW5ndGgrICIgaTogIisgTWF0aC5tYXgoMCxpbmZvc1sibGluZV9zdGFydCJdLTEpKyAiIGVuZDogIitNYXRoLm1pbihjdXJyX3RleHQubGVuZ3RoLCBpbmZvc1sibGluZV9zdGFydCJdK2luZm9zWyJsaW5lX25iIl0tMSkrICIgbGluZTogIitpbmZvc1sibGluZV9zdGFydCJdKyIgWzBdOiAiK2N1cnJfdGV4dFswXSsiIFsxXTogIitjdXJyX3RleHRbMV0pOw0KCQkJCQl2YXIgc3RhcnQJCT0gTWF0aC5tYXgoMCxpbmZvc1sibGluZV9zdGFydCJdLTEpOw0KCQkJCQl2YXIgZW5kCQkJPSBNYXRoLm1pbihjdXJyX3RleHQubGVuZ3RoLCBpbmZvc1sibGluZV9zdGFydCJdK2luZm9zWyJsaW5lX25iIl0tMSk7DQoJCQkJCQ0KCQkJCQkvL2N1cnJfdGV4dFtzdGFydF09IGN1cnJfdGV4dFtzdGFydF0uc3Vic3RyKDAsaW5mb3NbImN1cnJfcG9zIl0tMSkgKyLCpF9vdmVybGluZV/CpCIrIGN1cnJfdGV4dFtzdGFydF0uc3Vic3RyKGluZm9zWyJjdXJyX3BvcyJdLTEpOw0KCQkJCQlmb3IoaT1zdGFydDsgaTwgZW5kOyBpKyspew0KCQkJCQkJY29udGVudCs9IGN1cnJfdGV4dFtpXSsiXG4iOwkNCgkJCQkJfQ0KCQkJCQkNCgkJCQkJLy8gYWRkIHNwZWNpYWwgY2hhcnMgYXJyb3VuZCBzZWxlY3RlZCBjaGFyYWN0ZXJzDQoJCQkJCXNlbExlbmd0aAk9IGluZm9zWydzZWxlY3Rpb25FbmQnXSAtIGluZm9zWydzZWxlY3Rpb25TdGFydCddOw0KCQkJCQljb250ZW50CQk9IGNvbnRlbnQuc3Vic3RyKCAwLCBpbmZvc1siY3Vycl9wb3MiXSAtIDEgKSArICJcclxyIiArIGNvbnRlbnQuc3Vic3RyKCBpbmZvc1siY3Vycl9wb3MiXSAtIDEsIHNlbExlbmd0aCApICsgIlxyXHIiICsgY29udGVudC5zdWJzdHIoIGluZm9zWyJjdXJyX3BvcyJdIC0gMSArIHNlbExlbmd0aCApOw0KCQkJCQljb250ZW50CQk9ICc8c3Bhbj4nKyBjb250ZW50LnJlcGxhY2UoLyYvZywiJmFtcDsiKS5yZXBsYWNlKC88L2csIiZsdDsiKS5yZXBsYWNlKC8+L2csIiZndDsiKS5yZXBsYWNlKCJcclxyIiwgJzwvc3Bhbj48c3Ryb25nPicpLnJlcGxhY2UoIlxyXHIiLCAnPC9zdHJvbmc+PHNwYW4+JykgKyc8L3NwYW4+JzsNCgkJCQkJDQoJCQkJCWlmKCB0aGlzLmlzSUUgfHwgKCB0aGlzLmlzT3BlcmEgJiYgdGhpcy5pc09wZXJhIDwgOS42ICkgKSB7DQoJCQkJCQl0aGlzLnNlbGVjdGlvbl9maWVsZC5pbm5lckhUTUw9ICI8cHJlPiIgKyBjb250ZW50LnJlcGxhY2UoL15ccj9cbi8sICI8YnI+IikgKyAiPC9wcmU+IjsNCgkJCQkJfSBlbHNlIHsNCgkJCQkJCXRoaXMuc2VsZWN0aW9uX2ZpZWxkLmlubmVySFRNTD0gY29udGVudDsNCgkJCQkJfQ0KCQkJCQl0aGlzLnNlbGVjdGlvbl9maWVsZF90ZXh0LmlubmVySFRNTCA9IHRoaXMuc2VsZWN0aW9uX2ZpZWxkLmlubmVySFRNTDsNCgkJCQkJdDJfMSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpOw0KCQkJCQkvLyBjaGVjayBpZiB3ZSBuZWVkIHRvIHVwZGF0ZSB0aGUgaGlnaGxpZ2h0ZWQgYmFja2dyb3VuZCANCgkJCQkJaWYodGhpcy5yZWxvYWRfaGlnaGxpZ2h0IHx8IChpbmZvc1siZnVsbF90ZXh0Il0gIT0gdGhpcy5sYXN0X3RleHRfdG9faGlnaGxpZ2h0ICYmICh0aGlzLmxhc3Rfc2VsZWN0aW9uWyJsaW5lX3N0YXJ0Il0hPWluZm9zWyJsaW5lX3N0YXJ0Il0gfHwgdGhpcy5zaG93X2xpbmVfY29sb3JzIHx8IHRoaXMuc2V0dGluZ3NbJ3dvcmRfd3JhcCddIHx8IHRoaXMubGFzdF9zZWxlY3Rpb25bImxpbmVfbmIiXSE9aW5mb3NbImxpbmVfbmIiXSB8fCB0aGlzLmxhc3Rfc2VsZWN0aW9uWyJuYl9saW5lIl0hPWluZm9zWyJuYl9saW5lIl0pICkgKQ0KCQkJCQl7DQoJCQkJCQl0aGlzLm1hal9oaWdobGlnaHQoaW5mb3MpOw0KCQkJCQl9DQoJCQkJfQkJDQoJCQl9DQoJCQl0Mz0gbmV3IERhdGUoKS5nZXRUaW1lKCk7DQoJCQkNCgkJCS8vIG1hbmFnZSBsaW5lIGhlaWdodHMNCgkJCWlmKCB0aGlzLnNldHRpbmdzWyd3b3JkX3dyYXAnXSAmJiBpbmZvc1siZnVsbF90ZXh0Il0gIT0gdGhpcy5sYXN0X3NlbGVjdGlvblsiZnVsbF90ZXh0Il0pDQoJCQl7DQoJCQkJLy8gcmVmcmVzaCBvbmx5IDEgbGluZSBpZiB0ZXh0IGNoYW5nZSBjb25jZXJuIG9ubHkgb25lIGxpbmUgYW5kIHRoYXQgdGhlIHRvdGFsIGxpbmUgbnVtYmVyIGhhcyBub3QgY2hhbmdlZA0KCQkJCWlmKCBjaGFuZ2VzLm5ld1RleHQuc3BsaXQoIlxuIikubGVuZ3RoID09IDEgJiYgdGhpcy5sYXN0X3NlbGVjdGlvblsnbmJfbGluZSddICYmIGluZm9zWyduYl9saW5lJ10gPT0gdGhpcy5sYXN0X3NlbGVjdGlvblsnbmJfbGluZSddICkNCgkJCQl7DQoJCQkJCXRoaXMuZml4TGluZXNIZWlnaHQoIGluZm9zWydmdWxsX3RleHQnXSwgY2hhbmdlcy5saW5lU3RhcnQsIGNoYW5nZXMubGluZVN0YXJ0ICk7DQoJCQkJfQ0KCQkJCWVsc2UNCgkJCQl7DQoJCQkJCXRoaXMuZml4TGluZXNIZWlnaHQoIGluZm9zWydmdWxsX3RleHQnXSwgY2hhbmdlcy5saW5lU3RhcnQsIC0xICk7DQoJCQkJfQ0KCQkJfQ0KCQkNCgkJCXRMaW5lcz0gbmV3IERhdGUoKS5nZXRUaW1lKCk7DQoJCQkvLyBtYW5hZ2UgYnJhY2tldCBmaW5kaW5nDQoJCQlpZiggaW5mb3NbImxpbmVfc3RhcnQiXSAhPSB0aGlzLmxhc3Rfc2VsZWN0aW9uWyJsaW5lX3N0YXJ0Il0gfHwgaW5mb3NbImN1cnJfcG9zIl0gIT0gdGhpcy5sYXN0X3NlbGVjdGlvblsiY3Vycl9wb3MiXSB8fCBpbmZvc1siZnVsbF90ZXh0Il0ubGVuZ3RoIT10aGlzLmxhc3Rfc2VsZWN0aW9uWyJmdWxsX3RleHQiXS5sZW5ndGggfHwgdGhpcy5yZWxvYWRfaGlnaGxpZ2h0IHx8ICF0aW1lcl9jaGVja3VwICkNCgkJCXsNCgkJCQkvLyBtb3ZlIF9jdXJzb3JfcG9zDQoJCQkJdmFyIHNlbGVjX2NoYXI9IGluZm9zWyJjdXJyX2xpbmUiXS5jaGFyQXQoaW5mb3NbImN1cnJfcG9zIl0tMSk7DQoJCQkJdmFyIG5vX3JlYWxfbW92ZT10cnVlOw0KCQkJCWlmKGluZm9zWyJsaW5lX25iIl09PTEgJiYgKHRoaXMuYXNzb2NCcmFja2V0W3NlbGVjX2NoYXJdIHx8IHRoaXMucmV2ZXJ0QXNzb2NCcmFja2V0W3NlbGVjX2NoYXJdKSApew0KCQkJCQkNCgkJCQkJbm9fcmVhbF9tb3ZlPWZhbHNlOwkJCQkJDQoJCQkJCS8vZmluZEVuZEJyYWNrZXQoaW5mb3NbImxpbmVfc3RhcnQiXSwgaW5mb3NbImN1cnJfcG9zIl0sIHNlbGVjX2NoYXIpOw0KCQkJCQlpZih0aGlzLmZpbmRFbmRCcmFja2V0KGluZm9zLCBzZWxlY19jaGFyKSA9PT0gdHJ1ZSl7DQoJCQkJCQlfJCgiZW5kX2JyYWNrZXQiKS5zdHlsZS52aXNpYmlsaXR5CT0idmlzaWJsZSI7DQoJCQkJCQlfJCgiY3Vyc29yX3BvcyIpLnN0eWxlLnZpc2liaWxpdHkJPSJ2aXNpYmxlIjsNCgkJCQkJCV8kKCJjdXJzb3JfcG9zIikuaW5uZXJIVE1MCQkJPSBzZWxlY19jaGFyOw0KCQkJCQkJXyQoImVuZF9icmFja2V0IikuaW5uZXJIVE1MCQkJPSAodGhpcy5hc3NvY0JyYWNrZXRbc2VsZWNfY2hhcl0gfHwgdGhpcy5yZXZlcnRBc3NvY0JyYWNrZXRbc2VsZWNfY2hhcl0pOw0KCQkJCQl9ZWxzZXsNCgkJCQkJCV8kKCJlbmRfYnJhY2tldCIpLnN0eWxlLnZpc2liaWxpdHkJPSJoaWRkZW4iOw0KCQkJCQkJXyQoImN1cnNvcl9wb3MiKS5zdHlsZS52aXNpYmlsaXR5CT0iaGlkZGVuIjsNCgkJCQkJfQ0KCQkJCX1lbHNlew0KCQkJCQlfJCgiY3Vyc29yX3BvcyIpLnN0eWxlLnZpc2liaWxpdHkJPSJoaWRkZW4iOw0KCQkJCQlfJCgiZW5kX2JyYWNrZXQiKS5zdHlsZS52aXNpYmlsaXR5CT0iaGlkZGVuIjsNCgkJCQl9DQoJCQkJLy9hbGVydCgibW92ZSBjdXJzb3IiKTsNCgkJCQl0aGlzLmRpc3BsYXlUb0N1cnNvclBvc2l0aW9uKCJjdXJzb3JfcG9zIiwgaW5mb3NbImxpbmVfc3RhcnQiXSwgaW5mb3NbImN1cnJfcG9zIl0tMSwgaW5mb3NbImN1cnJfbGluZSJdLCBub19yZWFsX21vdmUpOw0KCQkJCWlmKGluZm9zWyJsaW5lX25iIl09PTEgJiYgaW5mb3NbImxpbmVfc3RhcnQiXSE9dGhpcy5sYXN0X3NlbGVjdGlvblsibGluZV9zdGFydCJdKQ0KCQkJCQl0aGlzLnNjcm9sbF90b192aWV3KCk7DQoJCQl9DQoJCQl0aGlzLmxhc3Rfc2VsZWN0aW9uPWluZm9zOw0KCQl9DQoJCQ0KCQl0ZW5kPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTsNCgkJLy9pZiggKHRlbmQtdDEpID4gNyApDQoJCS8vCWNvbnNvbGUubG9nKCAidHBzIHRvdGFsOiAiKyAodGVuZC10MSkgKyAiIHRwcyBnZXRfaW5mb3M6ICIrICh0Mi10MSkrICIgdHBzIHNlbGVjOiAiKyAodDJfMS10MikrICIgdHBzIGhpZ2hsaWdodDogIisgKHQzLXQyXzEpICsiIHRwcyBsaW5lczogIisgKHRMaW5lcy10MykgKyIgdHBzIGN1cnNvcitsaW5lczogIisgKHRlbmQtdExpbmVzKSsiIFxuIiApOw0KCQkNCgkJDQoJCWlmKHRpbWVyX2NoZWNrdXApew0KCQkJc2V0VGltZW91dCgiZWRpdEFyZWEuY2hlY2tfbGluZV9zZWxlY3Rpb24odHJ1ZSkiLCB0aGlzLmNoZWNrX2xpbmVfc2VsZWN0aW9uX3RpbWVyKTsNCgkJfQ0KCX07DQoNCg0KCUVkaXRBcmVhLnByb3RvdHlwZS5nZXRfc2VsZWN0aW9uX2luZm9zPSBmdW5jdGlvbigpew0KCQl2YXIgc2VsPXt9LCBzdGFydCwgZW5kLCBsZW4sIHN0cjsNCgkNCgkJdGhpcy5nZXRJRVNlbGVjdGlvbigpOw0KCQlzdGFydAk9IHRoaXMudGV4dGFyZWEuc2VsZWN0aW9uU3RhcnQ7DQoJCWVuZAkJPSB0aGlzLnRleHRhcmVhLnNlbGVjdGlvbkVuZDsJCQ0KCQkNCgkJaWYoIHRoaXMubGFzdF9zZWxlY3Rpb25bInNlbGVjdGlvblN0YXJ0Il0gPT0gc3RhcnQgJiYgdGhpcy5sYXN0X3NlbGVjdGlvblsic2VsZWN0aW9uRW5kIl0gPT0gZW5kICYmIHRoaXMubGFzdF9zZWxlY3Rpb25bImZ1bGxfdGV4dCJdID09IHRoaXMudGV4dGFyZWEudmFsdWUgKQ0KCQl7CQ0KCQkJcmV0dXJuIHRoaXMubGFzdF9zZWxlY3Rpb247DQoJCX0NCgkJCQ0KCQlpZih0aGlzLnRhYnVsYXRpb24hPSJcdCIgJiYgdGhpcy50ZXh0YXJlYS52YWx1ZS5pbmRleE9mKCJcdCIpIT0tMSkgDQoJCXsJLy8gY2FuIGFwcGVuZCBvbmx5IGFmdGVyIGNvcHkvcGFzdGUgDQoJCQlsZW4JCT0gdGhpcy50ZXh0YXJlYS52YWx1ZS5sZW5ndGg7DQoJCQl0aGlzLnRleHRhcmVhLnZhbHVlCT0gdGhpcy5yZXBsYWNlX3RhYih0aGlzLnRleHRhcmVhLnZhbHVlKTsNCgkJCXN0YXJ0CT0gZW5kCT0gc3RhcnQrKHRoaXMudGV4dGFyZWEudmFsdWUubGVuZ3RoLWxlbik7DQoJCQl0aGlzLmFyZWFfc2VsZWN0KCBzdGFydCwgMCApOw0KCQl9DQoJCQ0KCQlzZWxbInNlbGVjdGlvblN0YXJ0Il0JPSBzdGFydDsNCgkJc2VsWyJzZWxlY3Rpb25FbmQiXQkJPSBlbmQ7CQkNCgkJc2VsWyJmdWxsX3RleHQiXQkJPSB0aGlzLnRleHRhcmVhLnZhbHVlOw0KCQlzZWxbImxpbmVfc3RhcnQiXQkJPSAxOw0KCQlzZWxbImxpbmVfbmIiXQkJCT0gMTsNCgkJc2VsWyJjdXJyX3BvcyJdCQkJPSAwOw0KCQlzZWxbImN1cnJfbGluZSJdCQk9ICIiOw0KCQlzZWxbImluZGV4T2ZDdXJzb3IiXQk9IDA7DQoJCXNlbFsic2VsZWNfZGlyZWN0aW9uIl0JPSB0aGlzLmxhc3Rfc2VsZWN0aW9uWyJzZWxlY19kaXJlY3Rpb24iXTsNCg0KCQkvL3JldHVybiBzZWw7CQ0KCQl2YXIgc3BsaXRUYWI9IHNlbFsiZnVsbF90ZXh0Il0uc3BsaXQoIlxuIik7DQoJCXZhciBuYkxpbmUJPSBNYXRoLm1heCgwLCBzcGxpdFRhYi5sZW5ndGgpOwkJDQoJCXZhciBuYkNoYXIJPSBNYXRoLm1heCgwLCBzZWxbImZ1bGxfdGV4dCJdLmxlbmd0aCAtIChuYkxpbmUgLSAxKSk7CS8vIChyZW1vdmUgXG4gY2FyYWN0ZXJzIGZyb20gdGhlIGNvdW50KQ0KCQlpZiggc2VsWyJmdWxsX3RleHQiXS5pbmRleE9mKCJcciIpICE9IC0xICkNCgkJCW5iQ2hhcgk9IG5iQ2hhciAtICggbmJMaW5lIC0gMSApOwkJLy8gKHJlbW92ZSBcciBjYXJhY3RlcnMgZnJvbSB0aGUgY291bnQpDQoJCXNlbFsibmJfbGluZSJdCT0gbmJMaW5lOwkJDQoJCXNlbFsibmJfY2hhciJdCT0gbmJDaGFyOw0KCQ0KCQlpZihzdGFydD4wKXsNCgkJCXN0cgkJCQkJPSBzZWxbImZ1bGxfdGV4dCJdLnN1YnN0cigwLHN0YXJ0KTsNCgkJCXNlbFsiY3Vycl9wb3MiXQkJPSBzdGFydCAtIHN0ci5sYXN0SW5kZXhPZigiXG4iKTsNCgkJCXNlbFsibGluZV9zdGFydCJdCT0gTWF0aC5tYXgoMSwgc3RyLnNwbGl0KCJcbiIpLmxlbmd0aCk7DQoJCX1lbHNlew0KCQkJc2VsWyJjdXJyX3BvcyJdPTE7DQoJCX0NCgkJaWYoZW5kPnN0YXJ0KXsNCgkJCXNlbFsibGluZV9uYiJdPXNlbFsiZnVsbF90ZXh0Il0uc3Vic3RyaW5nKHN0YXJ0LGVuZCkuc3BsaXQoIlxuIikubGVuZ3RoOw0KCQl9DQoJCXNlbFsiaW5kZXhPZkN1cnNvciJdPXN0YXJ0OwkJDQoJCXNlbFsiY3Vycl9saW5lIl09c3BsaXRUYWJbTWF0aC5tYXgoMCxzZWxbImxpbmVfc3RhcnQiXS0xKV07DQoJDQoJCS8vIGRldGVybWluZSBpbiB3aGljaCBkaXJlY3Rpb24gdGhlIHNlbGVjdGlvbiBncm93DQoJCWlmKHNlbFsic2VsZWN0aW9uU3RhcnQiXSA9PSB0aGlzLmxhc3Rfc2VsZWN0aW9uWyJzZWxlY3Rpb25TdGFydCJdKXsNCgkJCWlmKHNlbFsic2VsZWN0aW9uRW5kIl0+dGhpcy5sYXN0X3NlbGVjdGlvblsic2VsZWN0aW9uRW5kIl0pDQoJCQkJc2VsWyJzZWxlY19kaXJlY3Rpb24iXT0gImRvd24iOw0KCQkJZWxzZSBpZihzZWxbInNlbGVjdGlvbkVuZCJdID09IHRoaXMubGFzdF9zZWxlY3Rpb25bInNlbGVjdGlvblN0YXJ0Il0pDQoJCQkJc2VsWyJzZWxlY19kaXJlY3Rpb24iXT0gdGhpcy5sYXN0X3NlbGVjdGlvblsic2VsZWNfZGlyZWN0aW9uIl07DQoJCX1lbHNlIGlmKHNlbFsic2VsZWN0aW9uU3RhcnQiXSA9PSB0aGlzLmxhc3Rfc2VsZWN0aW9uWyJzZWxlY3Rpb25FbmQiXSAmJiBzZWxbInNlbGVjdGlvbkVuZCJdPnRoaXMubGFzdF9zZWxlY3Rpb25bInNlbGVjdGlvbkVuZCJdKXsNCgkJCXNlbFsic2VsZWNfZGlyZWN0aW9uIl09ICJkb3duIjsNCgkJfWVsc2V7DQoJCQlzZWxbInNlbGVjX2RpcmVjdGlvbiJdPSAidXAiOw0KCQl9DQoJCQ0KCQlfJCgibmJMaW5lIikuaW5uZXJIVE1MCT0gbmJMaW5lOwkJDQoJCV8kKCJuYkNoYXIiKS5pbm5lckhUTUwJPSBuYkNoYXI7CQkNCgkJXyQoImxpbmVQb3MiKS5pbm5lckhUTUwJPSBzZWxbImxpbmVfc3RhcnQiXTsNCgkJXyQoImN1cnJQb3MiKS5pbm5lckhUTUwJPSBzZWxbImN1cnJfcG9zIl07DQoNCgkJcmV0dXJuIHNlbDsJCQ0KCX07DQoJDQoJLy8gc2V0IElFIHBvc2l0aW9uIGluIEZpcmVmb3ggbW9kZSAodGV4dGFyZWEuc2VsZWN0aW9uU3RhcnQgYW5kIHRleHRhcmVhLnNlbGVjdGlvbkVuZCkNCglFZGl0QXJlYS5wcm90b3R5cGUuZ2V0SUVTZWxlY3Rpb249IGZ1bmN0aW9uKCl7DQoJCXZhciBzZWxlY3Rpb25TdGFydCwgc2VsZWN0aW9uRW5kLCByYW5nZSwgc3RvcmVkX3JhbmdlOw0KCQkNCgkJaWYoICF0aGlzLmlzSUUgKQ0KCQkJcmV0dXJuIGZhbHNlOw0KCQkJDQoJCS8vIG1ha2UgaXQgd29yayBhcyBub3dyYXAgbW9kZSAoZWFzaWVyIGZvciByYW5nZSBtYW5pcHVsYXRpb24gd2l0aCBsaW5lSGVpZ2h0KQ0KCQlpZiggdGhpcy5zZXR0aW5nc1snd29yZF93cmFwJ10gKQ0KCQkJdGhpcy50ZXh0YXJlYS53cmFwPSdvZmYnOw0KCQkJDQoJCXRyeXsNCgkJCXJhbmdlCQkJPSBkb2N1bWVudC5zZWxlY3Rpb24uY3JlYXRlUmFuZ2UoKTsNCgkJCXN0b3JlZF9yYW5nZQk9IHJhbmdlLmR1cGxpY2F0ZSgpOw0KCQkJc3RvcmVkX3JhbmdlLm1vdmVUb0VsZW1lbnRUZXh0KCB0aGlzLnRleHRhcmVhICk7DQoJCQlzdG9yZWRfcmFuZ2Uuc2V0RW5kUG9pbnQoICdFbmRUb0VuZCcsIHJhbmdlICk7DQoJCQlpZiggc3RvcmVkX3JhbmdlLnBhcmVudEVsZW1lbnQoKSAhPSB0aGlzLnRleHRhcmVhICkNCgkJCQl0aHJvdyAiaW52YWxpZCBmb2N1cyI7DQoJCQkJDQoJCQkvLyB0aGUgcmFuZ2UgZG9uJ3QgdGFrZSBjYXJlIG9mIGVtcHR5IGxpbmVzIGluIHRoZSBlbmQgb2YgdGhlIHNlbGVjdGlvbg0KCQkJdmFyIHNjcm9sbFRvcAk9IHRoaXMucmVzdWx0LnNjcm9sbFRvcCArIGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wOw0KCQkJdmFyIHJlbGF0aXZlX3RvcD0gcmFuZ2Uub2Zmc2V0VG9wIC0gcGFyZW50LmNhbGN1bGVPZmZzZXRUb3AodGhpcy50ZXh0YXJlYSkgKyBzY3JvbGxUb3A7DQoJCQl2YXIgbGluZV9zdGFydAk9IE1hdGgucm91bmQoKHJlbGF0aXZlX3RvcCAvIHRoaXMubGluZUhlaWdodCkgKzEpOw0KCQkJdmFyIGxpbmVfbmIJCT0gTWF0aC5yb3VuZCggcmFuZ2UuYm91bmRpbmdIZWlnaHQgLyB0aGlzLmxpbmVIZWlnaHQgKTsNCgkJCQkJCQ0KCQkJc2VsZWN0aW9uU3RhcnQJPSBzdG9yZWRfcmFuZ2UudGV4dC5sZW5ndGggLSByYW5nZS50ZXh0Lmxlbmd0aDsJCQ0KCQkJc2VsZWN0aW9uU3RhcnQJKz0gKCBsaW5lX3N0YXJ0IC0gdGhpcy50ZXh0YXJlYS52YWx1ZS5zdWJzdHIoMCwgc2VsZWN0aW9uU3RhcnQpLnNwbGl0KCJcbiIpLmxlbmd0aCkqMjsJCS8vIGNvdW50IG1pc3NpbmcgZW1wdHkgXHIgdG8gdGhlIHNlbGVjdGlvbg0KCQkJc2VsZWN0aW9uU3RhcnQJLT0gKCBsaW5lX3N0YXJ0IC0gdGhpcy50ZXh0YXJlYS52YWx1ZS5zdWJzdHIoMCwgc2VsZWN0aW9uU3RhcnQpLnNwbGl0KCJcbiIpLmxlbmd0aCApICogMjsNCgkJCQ0KCQkJc2VsZWN0aW9uRW5kCT0gc2VsZWN0aW9uU3RhcnQgKyByYW5nZS50ZXh0Lmxlbmd0aDsJCQ0KCQkJc2VsZWN0aW9uRW5kCSs9IChsaW5lX3N0YXJ0ICsgbGluZV9uYiAtIDEgLSB0aGlzLnRleHRhcmVhLnZhbHVlLnN1YnN0cigwLCBzZWxlY3Rpb25FbmQgKS5zcGxpdCgiXG4iKS5sZW5ndGgpKjI7CQkJDQoJCQ0KCQkJdGhpcy50ZXh0YXJlYS5zZWxlY3Rpb25TdGFydAk9IHNlbGVjdGlvblN0YXJ0Ow0KCQkJdGhpcy50ZXh0YXJlYS5zZWxlY3Rpb25FbmQJCT0gc2VsZWN0aW9uRW5kOw0KCQl9DQoJCWNhdGNoKGUpe30NCgkJDQoJCS8vIHJlc3RvcmUgd3JhcCBtb2RlDQoJCWlmKCB0aGlzLnNldHRpbmdzWyd3b3JkX3dyYXAnXSApDQoJCQl0aGlzLnRleHRhcmVhLndyYXA9J3NvZnQnOw0KCX07DQoJDQoJLy8gc2VsZWN0IHRoZSB0ZXh0IGZvciBJRSAoYW5kIHRha2UgY2FyZSBvZiBcciBjYXJhY3RlcnMpDQoJRWRpdEFyZWEucHJvdG90eXBlLnNldElFU2VsZWN0aW9uPSBmdW5jdGlvbigpew0KCQl2YXIgYSA9IHRoaXMudGV4dGFyZWEsIG5iTGluZVN0YXJ0LCBuYkxpbmVFbmQsIHJhbmdlOw0KCQkNCgkJaWYoICF0aGlzLmlzSUUgKQ0KCQkJcmV0dXJuIGZhbHNlOw0KCQkNCgkJbmJMaW5lU3RhcnQJPSBhLnZhbHVlLnN1YnN0cigwLCBhLnNlbGVjdGlvblN0YXJ0KS5zcGxpdCgiXG4iKS5sZW5ndGggLSAxOw0KCQluYkxpbmVFbmQgCT0gYS52YWx1ZS5zdWJzdHIoMCwgYS5zZWxlY3Rpb25FbmQpLnNwbGl0KCJcbiIpLmxlbmd0aCAtIDE7DQoJCXJhbmdlCQk9IGRvY3VtZW50LnNlbGVjdGlvbi5jcmVhdGVSYW5nZSgpOw0KCQlyYW5nZS5tb3ZlVG9FbGVtZW50VGV4dCggYSApOw0KCQlyYW5nZS5zZXRFbmRQb2ludCggJ0VuZFRvU3RhcnQnLCByYW5nZSApOw0KCQkNCgkJcmFuZ2UubW92ZVN0YXJ0KCdjaGFyYWN0ZXInLCBhLnNlbGVjdGlvblN0YXJ0IC0gbmJMaW5lU3RhcnQpOw0KCQlyYW5nZS5tb3ZlRW5kKCdjaGFyYWN0ZXInLCBhLnNlbGVjdGlvbkVuZCAtIG5iTGluZUVuZCAtIChhLnNlbGVjdGlvblN0YXJ0IC0gbmJMaW5lU3RhcnQpICApOw0KCQlyYW5nZS5zZWxlY3QoKTsNCgl9Ow0KCQ0KCQ0KCQ0KCUVkaXRBcmVhLnByb3RvdHlwZS5jaGVja1RleHRFdm9sdXRpb249ZnVuY3Rpb24obGFzdFRleHQsbmV3VGV4dCl7DQoJCS8vIGNoIHdpbGwgY29udGFpbiBjaGFuZ2VzIGRhdGFzDQoJCXZhciBjaD17fSxiYXNlU3RlcD0yMDAsIGNwdD0wLCBlbmQsIHN0ZXAsdFN0YXJ0PW5ldyBEYXRlKCkuZ2V0VGltZSgpOw0KCQ0KCQllbmQJCT0gTWF0aC5taW4obmV3VGV4dC5sZW5ndGgsIGxhc3RUZXh0Lmxlbmd0aCk7DQogICAgICAgIHN0ZXAJPSBiYXNlU3RlcDsNCiAgICAgICAgLy8gZmluZCBob3cgbWFueSBjaGFycyBhcmUgc2ltaWxhciBhdCB0aGUgYmVnaW4gb2YgdGhlIHRleHQJCQkJCQkNCgkJd2hpbGUoIGNwdDxlbmQgJiYgc3RlcD49MSApew0KICAgICAgICAgICAgaWYobGFzdFRleHQuc3Vic3RyKGNwdCwgc3RlcCkgPT0gbmV3VGV4dC5zdWJzdHIoY3B0LCBzdGVwKSl7DQogICAgICAgICAgICAgICAgY3B0Kz0gc3RlcDsNCiAgICAgICAgICAgIH1lbHNlew0KICAgICAgICAgICAgICAgIHN0ZXA9IE1hdGguZmxvb3Ioc3RlcC8yKTsNCiAgICAgICAgICAgIH0NCgkJfQ0KCQkNCgkJY2gucG9zU3RhcnQJPSBjcHQ7DQoJCWNoLmxpbmVTdGFydD0gbmV3VGV4dC5zdWJzdHIoMCwgY2gucG9zU3RhcnQpLnNwbGl0KCJcbiIpLmxlbmd0aCAtMTsJCQkJCQkNCgkJDQoJCWNwdF9sYXN0CT0gbGFzdFRleHQubGVuZ3RoOw0KICAgICAgICBjcHQJCQk9IG5ld1RleHQubGVuZ3RoOw0KICAgICAgICBzdGVwCQk9IGJhc2VTdGVwOwkJCQ0KICAgICAgICAvLyBmaW5kIGhvdyBtYW55IGNoYXJzIGFyZSBzaW1pbGFyIGF0IHRoZSBlbmQgb2YgdGhlIHRleHQJCQkJCQkNCgkJd2hpbGUoIGNwdD49MCAmJiBjcHRfbGFzdD49MCAmJiBzdGVwPj0xICl7DQogICAgICAgICAgICBpZihsYXN0VGV4dC5zdWJzdHIoY3B0X2xhc3Qtc3RlcCwgc3RlcCkgPT0gbmV3VGV4dC5zdWJzdHIoY3B0LXN0ZXAsIHN0ZXApKXsNCiAgICAgICAgICAgICAgICBjcHQtPSBzdGVwOw0KICAgICAgICAgICAgICAgIGNwdF9sYXN0LT0gc3RlcDsNCiAgICAgICAgICAgIH1lbHNlew0KICAgICAgICAgICAgICAgIHN0ZXA9IE1hdGguZmxvb3Ioc3RlcC8yKTsNCiAgICAgICAgICAgIH0NCgkJfQ0KCQkNCgkJY2gucG9zTmV3RW5kCT0gY3B0Ow0KCQljaC5wb3NMYXN0RW5kCT0gY3B0X2xhc3Q7DQoJCWlmKGNoLnBvc05ld0VuZDw9Y2gucG9zU3RhcnQpew0KCQkJaWYobGFzdFRleHQubGVuZ3RoIDwgbmV3VGV4dC5sZW5ndGgpew0KCQkJCWNoLnBvc05ld0VuZD0gY2gucG9zU3RhcnQgKyBuZXdUZXh0Lmxlbmd0aCAtIGxhc3RUZXh0Lmxlbmd0aDsNCgkJCQljaC5wb3NMYXN0RW5kPSBjaC5wb3NTdGFydDsNCgkJCX1lbHNlew0KCQkJCWNoLnBvc0xhc3RFbmQ9IGNoLnBvc1N0YXJ0ICsgbGFzdFRleHQubGVuZ3RoIC0gbmV3VGV4dC5sZW5ndGg7DQoJCQkJY2gucG9zTmV3RW5kPSBjaC5wb3NTdGFydDsNCgkJCX0NCgkJfSANCgkJY2gubmV3VGV4dAkJPSBuZXdUZXh0LnN1YnN0cmluZyhjaC5wb3NTdGFydCwgY2gucG9zTmV3RW5kKTsNCgkJY2gubGFzdFRleHQJCT0gbGFzdFRleHQuc3Vic3RyaW5nKGNoLnBvc1N0YXJ0LCBjaC5wb3NMYXN0RW5kKTsJCQkgICAgICAgICAgICANCgkJDQoJCWNoLmxpbmVOZXdFbmQJPSBuZXdUZXh0LnN1YnN0cigwLCBjaC5wb3NOZXdFbmQpLnNwbGl0KCJcbiIpLmxlbmd0aCAtMTsNCgkJY2gubGluZUxhc3RFbmQJPSBsYXN0VGV4dC5zdWJzdHIoMCwgY2gucG9zTGFzdEVuZCkuc3BsaXQoIlxuIikubGVuZ3RoIC0xOw0KCQkNCgkJY2gubmV3VGV4dExpbmUJPSBuZXdUZXh0LnNwbGl0KCJcbiIpLnNsaWNlKGNoLmxpbmVTdGFydCwgY2gubGluZU5ld0VuZCsxKS5qb2luKCJcbiIpOw0KCQljaC5sYXN0VGV4dExpbmUJPSBsYXN0VGV4dC5zcGxpdCgiXG4iKS5zbGljZShjaC5saW5lU3RhcnQsIGNoLmxpbmVMYXN0RW5kKzEpLmpvaW4oIlxuIik7DQoJCS8vY29uc29sZS5sb2coIGNoICk7DQoJCXJldHVybiBjaDsJDQoJfTsNCgkNCglFZGl0QXJlYS5wcm90b3R5cGUudGFiX3NlbGVjdGlvbj0gZnVuY3Rpb24oKXsNCgkJaWYodGhpcy5pc190YWJiaW5nKQ0KCQkJcmV0dXJuOw0KCQl0aGlzLmlzX3RhYmJpbmc9dHJ1ZTsNCgkJLy9pbmZvcz1nZXRTZWxlY3Rpb25JbmZvcygpOw0KCQkvL2lmKCBkb2N1bWVudC5zZWxlY3Rpb24gKXsNCgkJdGhpcy5nZXRJRVNlbGVjdGlvbigpOw0KCQkvKiBJbnNlcnRpb24gZHUgY29kZSBkZSBmb3JtYXRhZ2UgKi8NCgkJdmFyIHN0YXJ0ID0gdGhpcy50ZXh0YXJlYS5zZWxlY3Rpb25TdGFydDsNCgkJdmFyIGVuZCA9IHRoaXMudGV4dGFyZWEuc2VsZWN0aW9uRW5kOw0KCQl2YXIgaW5zVGV4dCA9IHRoaXMudGV4dGFyZWEudmFsdWUuc3Vic3RyaW5nKHN0YXJ0LCBlbmQpOw0KCQkNCgkJLyogSW5zZXJ0IHRhYnVsYXRpb24gYW5kIGFqdXN0IGN1cnNvciBwb3NpdGlvbiAqLw0KCQl2YXIgcG9zX3N0YXJ0PXN0YXJ0Ow0KCQl2YXIgcG9zX2VuZD1lbmQ7DQoJCWlmIChpbnNUZXh0Lmxlbmd0aCA9PSAwKSB7DQoJCQkvLyBpZiBvbmx5IG9uZSBsaW5lIHNlbGVjdGVkDQoJCQl0aGlzLnRleHRhcmVhLnZhbHVlID0gdGhpcy50ZXh0YXJlYS52YWx1ZS5zdWJzdHIoMCwgc3RhcnQpICsgdGhpcy50YWJ1bGF0aW9uICsgdGhpcy50ZXh0YXJlYS52YWx1ZS5zdWJzdHIoZW5kKTsNCgkJCXBvc19zdGFydCA9IHN0YXJ0ICsgdGhpcy50YWJ1bGF0aW9uLmxlbmd0aDsNCgkJCXBvc19lbmQ9cG9zX3N0YXJ0Ow0KCQl9IGVsc2Ugew0KCQkJc3RhcnQ9IE1hdGgubWF4KDAsIHRoaXMudGV4dGFyZWEudmFsdWUuc3Vic3RyKDAsIHN0YXJ0KS5sYXN0SW5kZXhPZigiXG4iKSsxKTsNCgkJCWVuZFRleHQ9dGhpcy50ZXh0YXJlYS52YWx1ZS5zdWJzdHIoZW5kKTsNCgkJCXN0YXJ0VGV4dD10aGlzLnRleHRhcmVhLnZhbHVlLnN1YnN0cigwLCBzdGFydCk7DQoJCQl0bXA9IHRoaXMudGV4dGFyZWEudmFsdWUuc3Vic3RyaW5nKHN0YXJ0LCBlbmQpLnNwbGl0KCJcbiIpOw0KCQkJaW5zVGV4dD0gdGhpcy50YWJ1bGF0aW9uK3RtcC5qb2luKCJcbiIrdGhpcy50YWJ1bGF0aW9uKTsNCgkJCXRoaXMudGV4dGFyZWEudmFsdWUgPSBzdGFydFRleHQgKyBpbnNUZXh0ICsgZW5kVGV4dDsNCgkJCXBvc19zdGFydCA9IHN0YXJ0Ow0KCQkJcG9zX2VuZD0gdGhpcy50ZXh0YXJlYS52YWx1ZS5pbmRleE9mKCJcbiIsIHN0YXJ0VGV4dC5sZW5ndGggKyBpbnNUZXh0Lmxlbmd0aCk7DQoJCQlpZihwb3NfZW5kPT0tMSkNCgkJCQlwb3NfZW5kPXRoaXMudGV4dGFyZWEudmFsdWUubGVuZ3RoOw0KCQkJLy9wb3MgPSBzdGFydCArIHJlcGRlYi5sZW5ndGggKyBpbnNUZXh0Lmxlbmd0aCArIDsNCgkJfQ0KCQl0aGlzLnRleHRhcmVhLnNlbGVjdGlvblN0YXJ0ID0gcG9zX3N0YXJ0Ow0KCQl0aGlzLnRleHRhcmVhLnNlbGVjdGlvbkVuZCA9IHBvc19lbmQ7DQoJCQ0KCQkvL2lmKCBkb2N1bWVudC5zZWxlY3Rpb24gKXsNCgkJaWYodGhpcy5pc0lFKQ0KCQl7DQoJCQl0aGlzLnNldElFU2VsZWN0aW9uKCk7DQoJCQlzZXRUaW1lb3V0KCJlZGl0QXJlYS5pc190YWJiaW5nPWZhbHNlOyIsIDEwMCk7CS8vIElFIGNhbid0IGFjY2VwdCB0byBtYWtlIDIgdGFidWxhdGlvbiB3aXRob3V0IGEgbGl0dGxlIGJyZWFrIGJldHdlZW4gYm90aA0KCQl9DQoJCWVsc2UNCgkJeyANCgkJCXRoaXMuaXNfdGFiYmluZz1mYWxzZTsNCgkJfQkNCgkJDQogIAl9Ow0KCQ0KCUVkaXRBcmVhLnByb3RvdHlwZS5pbnZlcnRfdGFiX3NlbGVjdGlvbj0gZnVuY3Rpb24oKXsNCgkJdmFyIHQ9dGhpcywgYT10aGlzLnRleHRhcmVhOw0KCQlpZih0LmlzX3RhYmJpbmcpDQoJCQlyZXR1cm47DQoJCXQuaXNfdGFiYmluZz10cnVlOw0KCQkvL2luZm9zPWdldFNlbGVjdGlvbkluZm9zKCk7DQoJCS8vaWYoIGRvY3VtZW50LnNlbGVjdGlvbiApew0KCQl0LmdldElFU2VsZWN0aW9uKCk7DQoJCQ0KCQl2YXIgc3RhcnQJPSBhLnNlbGVjdGlvblN0YXJ0Ow0KCQl2YXIgZW5kCQk9IGEuc2VsZWN0aW9uRW5kOw0KCQl2YXIgaW5zVGV4dAk9IGEudmFsdWUuc3Vic3RyaW5nKHN0YXJ0LCBlbmQpOw0KCQkNCgkJLyogVGFiIHJlbW92ZSBhbmQgY3Vyc29yIHNlbGVjaXRvbiBhZGp1c3QgKi8NCgkJdmFyIHBvc19zdGFydD1zdGFydDsNCgkJdmFyIHBvc19lbmQ9ZW5kOw0KCQlpZiAoaW5zVGV4dC5sZW5ndGggPT0gMCkgew0KCQkJaWYoYS52YWx1ZS5zdWJzdHJpbmcoc3RhcnQtdC50YWJ1bGF0aW9uLmxlbmd0aCwgc3RhcnQpPT10LnRhYnVsYXRpb24pDQoJCQl7DQoJCQkJYS52YWx1ZQkJPSBhLnZhbHVlLnN1YnN0cigwLCBzdGFydC10LnRhYnVsYXRpb24ubGVuZ3RoKSArIGEudmFsdWUuc3Vic3RyKGVuZCk7DQoJCQkJcG9zX3N0YXJ0CT0gTWF0aC5tYXgoMCwgc3RhcnQtdC50YWJ1bGF0aW9uLmxlbmd0aCk7DQoJCQkJcG9zX2VuZAkJPSBwb3Nfc3RhcnQ7DQoJCQl9CQ0KCQkJLyoNCgkJCWEudmFsdWUgPSBhLnZhbHVlLnN1YnN0cigwLCBzdGFydCkgKyB0LnRhYnVsYXRpb24gKyBpbnNUZXh0ICsgYS52YWx1ZS5zdWJzdHIoZW5kKTsNCgkJCXBvc19zdGFydCA9IHN0YXJ0ICsgdC50YWJ1bGF0aW9uLmxlbmd0aDsNCgkJCXBvc19lbmQ9cG9zX3N0YXJ0OyovDQoJCX0gZWxzZSB7DQoJCQlzdGFydAkJPSBhLnZhbHVlLnN1YnN0cigwLCBzdGFydCkubGFzdEluZGV4T2YoIlxuIikrMTsNCgkJCWVuZFRleHQJCT0gYS52YWx1ZS5zdWJzdHIoZW5kKTsNCgkJCXN0YXJ0VGV4dAk9IGEudmFsdWUuc3Vic3RyKDAsIHN0YXJ0KTsNCgkJCXRtcAkJCT0gYS52YWx1ZS5zdWJzdHJpbmcoc3RhcnQsIGVuZCkuc3BsaXQoIlxuIik7DQoJCQlpbnNUZXh0CQk9ICIiOw0KCQkJZm9yKGk9MDsgaTx0bXAubGVuZ3RoOyBpKyspewkJCQkNCgkJCQlmb3Ioaj0wOyBqPHQudGFiX25iX2NoYXI7IGorKyl7DQoJCQkJCWlmKHRtcFtpXS5jaGFyQXQoMCk9PSJcdCIpew0KCQkJCQkJdG1wW2ldPXRtcFtpXS5zdWJzdHIoMSk7DQoJCQkJCQlqPXQudGFiX25iX2NoYXI7DQoJCQkJCX1lbHNlIGlmKHRtcFtpXS5jaGFyQXQoMCk9PSIgIikNCgkJCQkJCXRtcFtpXT10bXBbaV0uc3Vic3RyKDEpOw0KCQkJCX0JCQ0KCQkJCWluc1RleHQrPXRtcFtpXTsNCgkJCQlpZihpPHRtcC5sZW5ndGgtMSkNCgkJCQkJaW5zVGV4dCs9IlxuIjsNCgkJCX0NCgkJCS8vaW5zVGV4dCs9Il8iOw0KCQkJYS52YWx1ZQkJPSBzdGFydFRleHQgKyBpbnNUZXh0ICsgZW5kVGV4dDsNCgkJCXBvc19zdGFydAk9IHN0YXJ0Ow0KCQkJcG9zX2VuZAkJPSBhLnZhbHVlLmluZGV4T2YoIlxuIiwgc3RhcnRUZXh0Lmxlbmd0aCArIGluc1RleHQubGVuZ3RoKTsNCgkJCWlmKHBvc19lbmQ9PS0xKQ0KCQkJCXBvc19lbmQ9YS52YWx1ZS5sZW5ndGg7DQoJCQkvL3BvcyA9IHN0YXJ0ICsgcmVwZGViLmxlbmd0aCArIGluc1RleHQubGVuZ3RoICsgOw0KCQl9DQoJCWEuc2VsZWN0aW9uU3RhcnQgPSBwb3Nfc3RhcnQ7DQoJCWEuc2VsZWN0aW9uRW5kID0gcG9zX2VuZDsNCgkJDQoJCS8vaWYoIGRvY3VtZW50LnNlbGVjdGlvbiApew0KCQlpZih0LmlzSUUpew0KCQkJLy8gc2VsZWN0IHRoZSB0ZXh0IGZvciBJRQ0KCQkJdC5zZXRJRVNlbGVjdGlvbigpOw0KCQkJc2V0VGltZW91dCgiZWRpdEFyZWEuaXNfdGFiYmluZz1mYWxzZTsiLCAxMDApOwkvLyBJRSBjYW4gYWNjZXB0IHRvIG1ha2UgMiB0YWJ1bGF0aW9uIHdpdGhvdXQgYSBsaXR0bGUgYnJlYWsgYmV0d2VlbiBib3RoDQoJCX1lbHNlDQoJCQl0LmlzX3RhYmJpbmc9ZmFsc2U7DQogIAl9Ow0KCQ0KCUVkaXRBcmVhLnByb3RvdHlwZS5wcmVzc19lbnRlcj0gZnVuY3Rpb24oKXsJCQ0KCQlpZighdGhpcy5zbW9vdGhfc2VsZWN0aW9uKQ0KCQkJcmV0dXJuIGZhbHNlOw0KCQl0aGlzLmdldElFU2VsZWN0aW9uKCk7DQoJCXZhciBzY3JvbGxUb3A9IHRoaXMucmVzdWx0LnNjcm9sbFRvcDsNCgkJdmFyIHNjcm9sbExlZnQ9IHRoaXMucmVzdWx0LnNjcm9sbExlZnQ7DQoJCXZhciBzdGFydD10aGlzLnRleHRhcmVhLnNlbGVjdGlvblN0YXJ0Ow0KCQl2YXIgZW5kPSB0aGlzLnRleHRhcmVhLnNlbGVjdGlvbkVuZDsNCgkJdmFyIHN0YXJ0X2xhc3RfbGluZT0gTWF0aC5tYXgoMCAsIHRoaXMudGV4dGFyZWEudmFsdWUuc3Vic3RyaW5nKDAsIHN0YXJ0KS5sYXN0SW5kZXhPZigiXG4iKSArIDEgKTsNCgkJdmFyIGJlZ2luX2xpbmU9IHRoaXMudGV4dGFyZWEudmFsdWUuc3Vic3RyaW5nKHN0YXJ0X2xhc3RfbGluZSwgc3RhcnQpLnJlcGxhY2UoL14oWyBcdF0qKS4qL2dtLCAiJDEiKTsNCgkJdmFyIGxpbmVTdGFydCA9IHRoaXMudGV4dGFyZWEudmFsdWUuc3Vic3RyaW5nKDAsIHN0YXJ0KS5zcGxpdCgiXG4iKS5sZW5ndGg7DQoJCWlmKGJlZ2luX2xpbmU9PSJcbiIgfHwgYmVnaW5fbGluZT09IlxyIiB8fCBiZWdpbl9saW5lLmxlbmd0aD09MCkNCgkJew0KCQkJcmV0dXJuIGZhbHNlOw0KCQl9DQoJCQkNCgkJaWYodGhpcy5pc0lFIHx8ICggdGhpcy5pc09wZXJhICYmIHRoaXMuaXNPcGVyYSA8IDkuNiApICl7DQoJCQliZWdpbl9saW5lPSJcclxuIisgYmVnaW5fbGluZTsNCgkJfWVsc2V7DQoJCQliZWdpbl9saW5lPSJcbiIrIGJlZ2luX2xpbmU7DQoJCX0JDQoJCS8vYWxlcnQoc3RhcnRfbGFzdF9saW5lKyIgc3RyYXQ6ICIrc3RhcnQgKyJcbiIrdGhpcy50ZXh0YXJlYS52YWx1ZS5zdWJzdHJpbmcoc3RhcnRfbGFzdF9saW5lLCBzdGFydCkrIlxuXyIrYmVnaW5fbGluZSsiXyIpDQoJCXRoaXMudGV4dGFyZWEudmFsdWU9IHRoaXMudGV4dGFyZWEudmFsdWUuc3Vic3RyaW5nKDAsIHN0YXJ0KSArIGJlZ2luX2xpbmUgKyB0aGlzLnRleHRhcmVhLnZhbHVlLnN1YnN0cmluZyhlbmQpOw0KCQkNCgkJdGhpcy5hcmVhX3NlbGVjdChzdGFydCsgYmVnaW5fbGluZS5sZW5ndGggLDApOw0KCQkvLyBkdXJpbmcgdGhpcyBwcm9jZXNzIElFIHNjcm9sbCBiYWNrIHRvIHRoZSB0b3Agb2YgdGhlIHRleHRhcmVhDQoJCWlmKHRoaXMuaXNJRSl7DQoJCQl0aGlzLnJlc3VsdC5zY3JvbGxUb3AJPSBzY3JvbGxUb3A7DQoJCQl0aGlzLnJlc3VsdC5zY3JvbGxMZWZ0CT0gc2Nyb2xsTGVmdDsNCgkJfQ0KCQlyZXR1cm4gdHJ1ZTsNCgkJDQoJfTsNCgkNCglFZGl0QXJlYS5wcm90b3R5cGUuZmluZEVuZEJyYWNrZXQ9IGZ1bmN0aW9uKGluZm9zLCBicmFja2V0KXsNCgkJCQ0KCQl2YXIgc3RhcnQ9aW5mb3NbImluZGV4T2ZDdXJzb3IiXTsNCgkJdmFyIG5vcm1hbF9vcmRlcj10cnVlOw0KCQkvL2N1cnJfdGV4dD1pbmZvc1siZnVsbF90ZXh0Il0uc3BsaXQoIlxuIik7DQoJCWlmKHRoaXMuYXNzb2NCcmFja2V0W2JyYWNrZXRdKQ0KCQkJZW5kQnJhY2tldD10aGlzLmFzc29jQnJhY2tldFticmFja2V0XTsNCgkJZWxzZSBpZih0aGlzLnJldmVydEFzc29jQnJhY2tldFticmFja2V0XSl7DQoJCQllbmRCcmFja2V0PXRoaXMucmV2ZXJ0QXNzb2NCcmFja2V0W2JyYWNrZXRdOw0KCQkJbm9ybWFsX29yZGVyPWZhbHNlOw0KCQl9CQ0KCQl2YXIgZW5kPS0xOw0KCQl2YXIgbmJCcmFja2V0T3Blbj0wOw0KCQkNCgkJZm9yKHZhciBpPXN0YXJ0OyBpPGluZm9zWyJmdWxsX3RleHQiXS5sZW5ndGggJiYgaT49MDsgKXsNCgkJCWlmKGluZm9zWyJmdWxsX3RleHQiXS5jaGFyQXQoaSk9PWVuZEJyYWNrZXQpewkJCQkNCgkJCQluYkJyYWNrZXRPcGVuLS07DQoJCQkJaWYobmJCcmFja2V0T3Blbjw9MCl7DQoJCQkJCS8vaT1pbmZvc1siZnVsbF90ZXh0Il0ubGVuZ3RoOw0KCQkJCQllbmQ9aTsNCgkJCQkJYnJlYWs7DQoJCQkJfQ0KCQkJfWVsc2UgaWYoaW5mb3NbImZ1bGxfdGV4dCJdLmNoYXJBdChpKT09YnJhY2tldCkNCgkJCQluYkJyYWNrZXRPcGVuKys7DQoJCQlpZihub3JtYWxfb3JkZXIpDQoJCQkJaSsrOw0KCQkJZWxzZQ0KCQkJCWktLTsNCgkJfQ0KCQkNCgkJLy9lbmQ9aW5mb3NbImZ1bGxfdGV4dCJdLmluZGV4T2YoIn0iLCBzdGFydCk7DQoJCWlmKGVuZD09LTEpDQoJCQlyZXR1cm4gZmFsc2U7CQ0KCQl2YXIgZW5kTGFzdExpbmU9aW5mb3NbImZ1bGxfdGV4dCJdLnN1YnN0cigwLCBlbmQpLmxhc3RJbmRleE9mKCJcbiIpOwkJCQ0KCQlpZihlbmRMYXN0TGluZT09LTEpDQoJCQlsaW5lPTE7DQoJCWVsc2UNCgkJCWxpbmU9IGluZm9zWyJmdWxsX3RleHQiXS5zdWJzdHIoMCwgZW5kTGFzdExpbmUpLnNwbGl0KCJcbiIpLmxlbmd0aCArIDE7DQoJCQkJCQ0KCQl2YXIgY3VyUG9zPSBlbmQgLSBlbmRMYXN0TGluZSAtIDE7DQoJCXZhciBlbmRMaW5lTGVuZ3RoCT0gaW5mb3NbImZ1bGxfdGV4dCJdLnN1YnN0cmluZyhlbmQpLnNwbGl0KCJcbiIpWzBdLmxlbmd0aDsNCgkJdGhpcy5kaXNwbGF5VG9DdXJzb3JQb3NpdGlvbigiZW5kX2JyYWNrZXQiLCBsaW5lLCBjdXJQb3MsIGluZm9zWyJmdWxsX3RleHQiXS5zdWJzdHJpbmcoZW5kTGFzdExpbmUgKzEsIGVuZCArIGVuZExpbmVMZW5ndGgpKTsNCgkJcmV0dXJuIHRydWU7DQoJfTsNCgkNCglFZGl0QXJlYS5wcm90b3R5cGUuZGlzcGxheVRvQ3Vyc29yUG9zaXRpb249IGZ1bmN0aW9uKGlkLCBzdGFydF9saW5lLCBjdXJfcG9zLCBsaW5lQ29udGVudCwgbm9fcmVhbF9tb3ZlKXsNCgkJdmFyIGVsZW0sZGVzdCxjb250ZW50LHBvc0xlZnQ9MCxwb3NUb3AsZml4UGFkZGluZyx0b3BPZmZzZXQsZW5kRWxlbTsJDQoNCgkJZWxlbQkJPSB0aGlzLnRlc3RfZm9udF9zaXplOw0KCQlkZXN0CQk9IF8kKGlkKTsNCgkJY29udGVudAkJPSAiPHNwYW4gaWQ9J3Rlc3RfZm9udF9zaXplX2lubmVyJz4iK2xpbmVDb250ZW50LnN1YnN0cigwLCBjdXJfcG9zKS5yZXBsYWNlKC8mL2csIiZhbXA7IikucmVwbGFjZSgvPC9nLCImbHQ7IikrIjwvc3Bhbj48c3BhbiBpZD0nZW5kVGVzdEZvbnQnPiIrbGluZUNvbnRlbnQuc3Vic3RyKGN1cl9wb3MpLnJlcGxhY2UoLyYvZywiJmFtcDsiKS5yZXBsYWNlKC88L2csIiZsdDsiKSsiPC9zcGFuPiI7DQoJCWlmKCB0aGlzLmlzSUUgfHwgKCB0aGlzLmlzT3BlcmEgJiYgdGhpcy5pc09wZXJhIDwgOS42ICkgKSB7DQoJCQllbGVtLmlubmVySFRNTD0gIjxwcmU+IiArIGNvbnRlbnQucmVwbGFjZSgvXlxyP1xuLywgIjxicj4iKSArICI8L3ByZT4iOw0KCQl9IGVsc2Ugew0KCQkJZWxlbS5pbm5lckhUTUw9IGNvbnRlbnQ7DQoJCX0NCgkJDQoNCgkJZW5kRWxlbQkJPSBfJCgnZW5kVGVzdEZvbnQnKTsNCgkJdG9wT2Zmc2V0CT0gZW5kRWxlbS5vZmZzZXRUb3A7DQoJCWZpeFBhZGRpbmcJPSBwYXJzZUludCggdGhpcy5jb250ZW50X2hpZ2hsaWdodC5zdHlsZS5wYWRkaW5nTGVmdC5yZXBsYWNlKCJweCIsICIiKSApOw0KCQlwb3NMZWZ0IAk9IDQ1ICsgZW5kRWxlbS5vZmZzZXRMZWZ0ICsgKCAhaXNOYU4oIGZpeFBhZGRpbmcgKSAmJiB0b3BPZmZzZXQgPiAwID8gZml4UGFkZGluZyA6IDAgKTsNCgkJcG9zVG9wCQk9IHRoaXMuZ2V0TGluZVBvc1RvcCggc3RhcnRfbGluZSApICsgdG9wT2Zmc2V0Oy8vICsgTWF0aC5mbG9vciggKCBlbmRFbGVtLm9mZnNldEhlaWdodCAtIDEgKSAvIHRoaXMubGluZUhlaWdodCApICogdGhpcy5saW5lSGVpZ2h0Ow0KCQ0KCQkvLyBkZXRlY3QgdGhlIGNhc2Ugd2hlcmUgdGhlIHNwYW4gc3RhcnQgb24gYSBsaW5lIGJ1dCBoYXMgbm8gZGlzcGxheSBvbiBpdA0KCQlpZiggdGhpcy5pc0lFICYmIGN1cl9wb3MgPiAwICYmIGVuZEVsZW0ub2Zmc2V0TGVmdCA9PSAwICkNCgkJew0KCQkJcG9zVG9wCSs9CXRoaXMubGluZUhlaWdodDsNCgkJfQ0KCQlpZihub19yZWFsX21vdmUhPXRydWUpewkvLyB3aGVuIHRoZSBjdXJzb3IgaXMgaGlkZGVuIG5vIG5lZWQgdG8gbW92ZSBoaW0NCgkJCWRlc3Quc3R5bGUudG9wPXBvc1RvcCsicHgiOw0KCQkJZGVzdC5zdHlsZS5sZWZ0PXBvc0xlZnQrInB4IjsJDQoJCX0NCgkJLy8gdXNlZnVsbCBmb3Igc21hcnRlciBzY3JvbGwNCgkJZGVzdC5jdXJzb3JfdG9wPXBvc1RvcDsNCgkJZGVzdC5jdXJzb3JfbGVmdD1wb3NMZWZ0OwkNCgkvLwlfJChpZCkuc3R5bGUubWFyZ2luTGVmdD1wb3NMZWZ0KyJweCI7DQoJfTsNCgkNCglFZGl0QXJlYS5wcm90b3R5cGUuZ2V0TGluZVBvc1RvcD0gZnVuY3Rpb24oc3RhcnRfbGluZSl7DQoJCXZhciBlbGVtPSBfJCgnbGluZV8nKyBzdGFydF9saW5lKSwgcG9zVG9wPTA7DQoJCWlmKCBlbGVtICkNCgkJCXBvc1RvcAk9IGVsZW0ub2Zmc2V0VG9wOw0KCQllbHNlDQoJCQlwb3NUb3AJPSB0aGlzLmxpbmVIZWlnaHQgKiAoc3RhcnRfbGluZS0xKTsNCgkJcmV0dXJuIHBvc1RvcDsNCgl9Ow0KCQ0KCQ0KCS8vIHJldHVybiB0aGUgZGlzbHBheWVkIGhlaWdodCBvZiBhIHRleHQgKHRha2Ugd29yZC13cmFwIGludG8gYWNjb3VudCkNCglFZGl0QXJlYS5wcm90b3R5cGUuZ2V0VGV4dEhlaWdodD0gZnVuY3Rpb24odGV4dCl7DQoJCXZhciB0PXRoaXMsZWxlbSxoZWlnaHQ7DQoJCWVsZW0JCT0gdC50ZXN0X2ZvbnRfc2l6ZTsNCgkJY29udGVudAkJPSB0ZXh0LnJlcGxhY2UoLyYvZywiJmFtcDsiKS5yZXBsYWNlKC88L2csIiZsdDsiKTsNCgkJaWYoIHQuaXNJRSB8fCAoIHRoaXMuaXNPcGVyYSAmJiB0aGlzLmlzT3BlcmEgPCA5LjYgKSApIHsNCgkJCWVsZW0uaW5uZXJIVE1MPSAiPHByZT4iICsgY29udGVudC5yZXBsYWNlKC9eXHI/XG4vLCAiPGJyPiIpICsgIjwvcHJlPiI7DQoJCX0gZWxzZSB7DQoJCQllbGVtLmlubmVySFRNTD0gY29udGVudDsNCgkJfQ0KCQloZWlnaHQJPSBlbGVtLm9mZnNldEhlaWdodDsNCgkJaGVpZ2h0CT0gTWF0aC5tYXgoIDEsIE1hdGguZmxvb3IoIGVsZW0ub2Zmc2V0SGVpZ2h0IC8gdGhpcy5saW5lSGVpZ2h0ICkgKSAqIHRoaXMubGluZUhlaWdodDsNCgkJcmV0dXJuIGhlaWdodDsNCgl9Ow0KDQoJLyoqDQoJICogRml4IGxpbmUgaGVpZ2h0IGZvciB0aGUgZ2l2ZW4gbGluZXMNCgkgKiBAcGFyYW0gSW50ZWdlciBsaW5lc3RhcnQNCgkgKiBAcGFyYW0gSW50ZWdlciBsaW5lRW5kIEVuZCBsaW5lIG9yIC0xIHRvIGNvdmVyIGFsbCBsaW5lcw0KCSAqLw0KCUVkaXRBcmVhLnByb3RvdHlwZS5maXhMaW5lc0hlaWdodD0gZnVuY3Rpb24oIHRleHRWYWx1ZSwgbGluZVN0YXJ0LGxpbmVFbmQgKXsNCgkJdmFyIGFUZXh0ID0gdGV4dFZhbHVlLnNwbGl0KCJcbiIpOw0KCQlpZiggbGluZUVuZCA9PSAtMSApDQoJCQlsaW5lRW5kCT0gYVRleHQubGVuZ3RoLTE7DQoJCWZvciggdmFyIGkgPSBNYXRoLm1heCgwLCBsaW5lU3RhcnQpOyBpIDw9IGxpbmVFbmQ7IGkrKyApDQoJCXsNCgkJCWlmKCBlbGVtID0gXyQoJ2xpbmVfJysgKCBpKzEgKSApICkNCgkJCXsNCgkJCQllbGVtLnN0eWxlLmhlaWdodD0gdHlwZW9mKCBhVGV4dFtpXSApICE9ICJ1bmRlZmluZWQiID8gdGhpcy5nZXRUZXh0SGVpZ2h0KCBhVGV4dFtpXSApKyJweCIgOiB0aGlzLmxpbmVIZWlnaHQ7DQoJCQl9DQoJCX0NCgl9Ow0KCQ0KCUVkaXRBcmVhLnByb3RvdHlwZS5hcmVhX3NlbGVjdD0gZnVuY3Rpb24oc3RhcnQsIGxlbmd0aCl7DQoJCXRoaXMudGV4dGFyZWEuZm9jdXMoKTsNCgkJDQoJCXN0YXJ0CT0gTWF0aC5tYXgoMCwgTWF0aC5taW4odGhpcy50ZXh0YXJlYS52YWx1ZS5sZW5ndGgsIHN0YXJ0KSk7DQoJCWVuZAkJPSBNYXRoLm1heChzdGFydCwgTWF0aC5taW4odGhpcy50ZXh0YXJlYS52YWx1ZS5sZW5ndGgsIHN0YXJ0K2xlbmd0aCkpOw0KDQoJCWlmKHRoaXMuaXNJRSkNCgkJew0KCQkJdGhpcy50ZXh0YXJlYS5zZWxlY3Rpb25TdGFydAk9IHN0YXJ0Ow0KCQkJdGhpcy50ZXh0YXJlYS5zZWxlY3Rpb25FbmQJCT0gZW5kOwkJDQoJCQl0aGlzLnNldElFU2VsZWN0aW9uKCk7DQoJCX0NCgkJZWxzZQ0KCQl7DQoJCQkvLyBPcGVyYSBidWcgd2hlbiBtb3Zpbmcgc2VsZWN0aW9uIHN0YXJ0IGFuZCBzZWxlY3Rpb24gZW5kDQoJCQlpZih0aGlzLmlzT3BlcmEgJiYgdGhpcy5pc09wZXJhIDwgOS42ICkNCgkJCXsJDQoJCQkJdGhpcy50ZXh0YXJlYS5zZXRTZWxlY3Rpb25SYW5nZSgwLCAwKTsNCgkJCX0NCgkJCXRoaXMudGV4dGFyZWEuc2V0U2VsZWN0aW9uUmFuZ2Uoc3RhcnQsIGVuZCk7DQoJCX0NCgkJdGhpcy5jaGVja19saW5lX3NlbGVjdGlvbigpOw0KCX07DQoJDQoJDQoJRWRpdEFyZWEucHJvdG90eXBlLmFyZWFfZ2V0X3NlbGVjdGlvbj0gZnVuY3Rpb24oKXsNCgkJdmFyIHRleHQ9IiI7DQoJCWlmKCBkb2N1bWVudC5zZWxlY3Rpb24gKXsNCgkJCXZhciByYW5nZSA9IGRvY3VtZW50LnNlbGVjdGlvbi5jcmVhdGVSYW5nZSgpOw0KCQkJdGV4dD1yYW5nZS50ZXh0Ow0KCQl9ZWxzZXsNCgkJCXRleHQ9IHRoaXMudGV4dGFyZWEudmFsdWUuc3Vic3RyaW5nKHRoaXMudGV4dGFyZWEuc2VsZWN0aW9uU3RhcnQsIHRoaXMudGV4dGFyZWEuc2VsZWN0aW9uRW5kKTsNCgkJfQ0KCQlyZXR1cm4gdGV4dDsJCQkNCgl9Ow==]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/plugins/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/includes/edit_area/plugins/charmap/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/includes/edit_area/plugins/charmap/charmap.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoqDQogKiBDaGFybWFwIHBsdWdpbg0KICogYnkgQ2hyaXN0b3BoZSBEb2xpdmV0DQogKiB2MC4xICgyMDA2LzA5LzIyKQ0KICogDQogKiAgICANCiAqIFRoaXMgcGx1Z2luIGFsbG93IHRvIHVzZSBhIHZpc3VhbCBrZXlib2FyZCBhbGxvd2luZyB0byBpbnNlcnQgYW55IFVURi04IGNoYXJhY3RlcnMgaW4gdGhlIHRleHQuDQogKiANCiAqIC0gcGx1Z2luIG5hbWUgdG8gYWRkIHRvIHRoZSBwbHVnaW4gbGlzdDogImNoYXJtYXAiDQogKiAtIHBsdWdpbiBuYW1lIHRvIGFkZCB0byB0aGUgdG9vbGJhciBsaXN0OiAiY2hhcm1hcCIgDQogKiAtIHBvc3NpYmxlIHBhcmFtZXRlcnMgdG8gYWRkIHRvIEVkaXRBcmVhTG9hZGVyLmluaXQoKTogDQogKiAJCSJjaGFybWFwX2RlZmF1bHQiOiAoU3RyaW5nKSBkZWZpbmUgdGhlIG5hbWUgb2YgdGhlIGRlZmF1bHQgY2hhcmFjdGVyIHJhbmdlIGRpc3BsYXllZCBvbiBwb3B1cCBkaXNwbGF5DQogKiAJCQkJCQkJKGRlZmF1bHQ6ICJhcnJvd3MiKQ0KICogDQogKiANCiAqLw0KICAgDQp2YXIgRWRpdEFyZWFfY2hhcm1hcD0gew0KCS8qKg0KCSAqIEdldCBjYWxsZWQgb25jZSB0aGlzIGZpbGUgaXMgbG9hZGVkIChlZGl0QXJlYSBzdGlsbCBub3QgaW5pdGlhbGl6ZWQpDQoJICoNCgkgKiBAcmV0dXJuIG5vdGhpbmcJIA0KCSAqLwkgCSAJDQoJaW5pdDogZnVuY3Rpb24oKXsJDQoJCXRoaXMuZGVmYXVsdF9sYW5ndWFnZT0iQXJyb3dzIjsNCgl9DQoJDQoJLyoqDQoJICogUmV0dXJucyB0aGUgSFRNTCBjb2RlIGZvciBhIHNwZWNpZmljIGNvbnRyb2wgc3RyaW5nIG9yIGZhbHNlIGlmIHRoaXMgcGx1Z2luIGRvZXNuJ3QgaGF2ZSB0aGF0IGNvbnRyb2wuDQoJICogQSBjb250cm9sIGNhbiBiZSBhIGJ1dHRvbiwgc2VsZWN0IGxpc3Qgb3IgYW55IG90aGVyIEhUTUwgaXRlbSB0byBwcmVzZW50IGluIHRoZSBFZGl0QXJlYSB1c2VyIGludGVyZmFjZS4NCgkgKiBMYW5ndWFnZSB2YXJpYWJsZXMgc3VjaCBhcyB7JGxhbmdfc29tZWtleX0gd2lsbCBhbHNvIGJlIHJlcGxhY2VkIHdpdGggY29udGVudHMgZnJvbQ0KCSAqIHRoZSBsYW5ndWFnZSBwYWNrcy4NCgkgKiANCgkgKiBAcGFyYW0ge3N0cmluZ30gY3RybF9uYW1lOiB0aGUgbmFtZSBvZiB0aGUgY29udHJvbCB0byBhZGQJICANCgkgKiBAcmV0dXJuIEhUTUwgY29kZSBmb3IgYSBzcGVjaWZpYyBjb250cm9sIG9yIGZhbHNlLg0KCSAqIEB0eXBlIHN0cmluZwlvciBib29sZWFuDQoJICovCQ0KCSxnZXRfY29udHJvbF9odG1sOiBmdW5jdGlvbihjdHJsX25hbWUpew0KCQlzd2l0Y2goY3RybF9uYW1lKXsNCgkJCWNhc2UgImNoYXJtYXAiOg0KCQkJCS8vIENvbnRyb2wgaWQsIGJ1dHRvbiBpbWcsIGNvbW1hbmQNCgkJCQlyZXR1cm4gcGFyZW50LmVkaXRBcmVhTG9hZGVyLmdldF9idXR0b25faHRtbCgnY2hhcm1hcF9idXQnLCAnY2hhcm1hcC5naWYnLCAnY2hhcm1hcF9wcmVzcycsIGZhbHNlLCB0aGlzLmJhc2VVUkwpOw0KCQl9DQoJCXJldHVybiBmYWxzZTsNCgl9DQoJLyoqDQoJICogR2V0IGNhbGxlZCBvbmNlIEVkaXRBcmVhIGlzIGZ1bGx5IGxvYWRlZCBhbmQgaW5pdGlhbGlzZWQNCgkgKgkgDQoJICogQHJldHVybiBub3RoaW5nDQoJICovCSAJIAkNCgksb25sb2FkOiBmdW5jdGlvbigpeyANCgkJaWYoZWRpdEFyZWEuc2V0dGluZ3NbImNoYXJtYXBfZGVmYXVsdCJdICYmIGVkaXRBcmVhLnNldHRpbmdzWyJjaGFybWFwX2RlZmF1bHQiXS5sZW5ndGg+MCkNCgkJCXRoaXMuZGVmYXVsdF9sYW5ndWFnZT0gZWRpdEFyZWEuc2V0dGluZ3NbImNoYXJtYXBfZGVmYXVsdCJdOw0KCX0NCgkNCgkvKioNCgkgKiBJcyBjYWxsZWQgZWFjaCB0aW1lIHRoZSB1c2VyIHRvdWNoIGEga2V5Ym9hcmQga2V5Lg0KCSAqCSANCgkgKiBAcGFyYW0gKGV2ZW50KSBlOiB0aGUga2V5ZG93biBldmVudA0KCSAqIEByZXR1cm4gdHJ1ZSAtIHBhc3MgdG8gbmV4dCBoYW5kbGVyIGluIGNoYWluLCBmYWxzZSAtIHN0b3AgY2hhaW4gZXhlY3V0aW9uDQoJICogQHR5cGUgYm9vbGVhbgkgDQoJICovDQoJLG9ua2V5ZG93bjogZnVuY3Rpb24oZSl7DQoJCQ0KCX0NCgkNCgkvKioNCgkgKiBFeGVjdXRlcyBhIHNwZWNpZmljIGNvbW1hbmQsIHRoaXMgZnVuY3Rpb24gaGFuZGxlcyBwbHVnaW4gY29tbWFuZHMuDQoJICoNCgkgKiBAcGFyYW0ge3N0cmluZ30gY21kOiB0aGUgbmFtZSBvZiB0aGUgY29tbWFuZCBiZWluZyBleGVjdXRlZA0KCSAqIEBwYXJhbSB7dW5rbm93bn0gcGFyYW06IHRoZSBwYXJhbWV0ZXIgb2YgdGhlIGNvbW1hbmQJIA0KCSAqIEByZXR1cm4gdHJ1ZSAtIHBhc3MgdG8gbmV4dCBoYW5kbGVyIGluIGNoYWluLCBmYWxzZSAtIHN0b3AgY2hhaW4gZXhlY3V0aW9uDQoJICogQHR5cGUgYm9vbGVhbgkNCgkgKi8NCgksZXhlY0NvbW1hbmQ6IGZ1bmN0aW9uKGNtZCwgcGFyYW0pew0KCQkvLyBIYW5kbGUgY29tbWFuZHMNCgkJc3dpdGNoKGNtZCl7DQoJCQljYXNlICJjaGFybWFwX3ByZXNzIjoNCgkJCQl3aW49IHdpbmRvdy5vcGVuKHRoaXMuYmFzZVVSTCsicG9wdXAuaHRtbCIsICJjaGFybWFwIiwgIndpZHRoPTUwMCxoZWlnaHQ9MjcwLHNjcm9sbGJhcnM9eWVzLHJlc2l6YWJsZT15ZXMiKTsNCgkJCQl3aW4uZm9jdXMoKTsNCgkJCQlyZXR1cm4gZmFsc2U7DQoJCX0NCgkJLy8gUGFzcyB0byBuZXh0IGhhbmRsZXIgaW4gY2hhaW4NCgkJcmV0dXJuIHRydWU7DQoJfQ0KCQ0KfTsNCg0KLy8gQWRkcyB0aGUgcGx1Z2luIGNsYXNzIHRvIHRoZSBsaXN0IG9mIGF2YWlsYWJsZSBFZGl0QXJlYSBwbHVnaW5zDQplZGl0QXJlYS5hZGRfcGx1Z2luKCJjaGFybWFwIiwgRWRpdEFyZWFfY2hhcm1hcCk7DQo=]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/plugins/charmap/css/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/includes/edit_area/plugins/charmap/css/charmap.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ym9keXsNCgliYWNrZ3JvdW5kLWNvbG9yOiAjRjBGMEVFOyANCglmb250OiAxMnB4IG1vbm9zcGFjZSwgc2Fucy1zZXJpZjsNCn0NCg0Kc2VsZWN0ew0KCWJhY2tncm91bmQtY29sb3I6ICNGOUY5Rjk7DQoJYm9yZGVyOiBzb2xpZCAxcHggIzg4ODg4ODsNCn0NCg0KaDEsIGgyLCBoMywgaDQsIGg1LCBoNnsNCgltYXJnaW46IDA7DQoJcGFkZGluZzogMDsNCgljb2xvcjogIzJCNkZCNjsNCn0NCg0KaDF7DQoJZm9udC1zaXplOiAxLjVlbTsNCn0NCg0KZGl2I2NoYXJfbGlzdHsNCgloZWlnaHQ6IDIwMHB4Ow0KCW92ZXJmbG93OiBhdXRvOw0KCXBhZGRpbmc6IDFweDsNCglib3JkZXI6IDFweCBzb2xpZCAjMEEyNDZBOw0KCWJhY2tncm91bmQtY29sb3I6ICNGOUY5Rjk7DQoJY2xlYXI6IGJvdGg7DQoJbWFyZ2luLXRvcDogNXB4Ow0KfQ0KDQphLmNoYXJ7DQoJZGlzcGxheTogYmxvY2s7DQoJZmxvYXQ6IGxlZnQ7DQoJd2lkdGg6IDIwcHg7DQoJaGVpZ2h0OiAyMHB4Ow0KCWxpbmUtaGVpZ2h0OiAyMHB4Ow0KCW1hcmdpbjogMXB4Ow0KCWJvcmRlcjogc29saWQgMXB4ICM4ODg4ODg7DQoJdGV4dC1hbGlnbjogY2VudGVyOw0KCWN1cnNvcjogcG9pbnRlcjsNCn0NCg0KYS5jaGFyOmhvdmVyew0KCWJhY2tncm91bmQtY29sb3I6ICNDQ0NDQ0M7DQp9DQoNCi5wcmV2aWV3ew0KCWJvcmRlcjogc29saWQgMXB4ICM4ODg4ODg7DQoJd2lkdGg6IDUwcHg7DQoJcGFkZGluZzogMnB4IDVweDsNCgloZWlnaHQ6IDM1cHg7DQoJbGluZS1oZWlnaHQ6IDM1cHg7DQoJdGV4dC1hbGlnbjpjZW50ZXI7CSANCgliYWNrZ3JvdW5kLWNvbG9yOiAjQ0NDQ0NDOw0KCWZvbnQtc2l6ZTogMmVtOw0KCWZsb2F0OiByaWdodDsNCglmb250LXdlaWdodDogYm9sZDsNCgltYXJnaW46IDAgMCA1cHggNXB4Ow0KfQ0KDQojcHJldmlld19jb2Rlew0KCWZvbnQtc2l6ZTogMS4xZW07DQoJd2lkdGg6IDcwcHg7DQp9DQo=]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/plugins/charmap/images/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/includes/edit_area/plugins/charmap/images/charmap.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhFAAUANQLACZKqoqW2iJ71mpzusC+1FyL2C5PwoKOzh6W7qW12WJixtnd6TdBqD1z0WCY7nqs6yRiykZSp1Jy0JaKyrzJ5J6/6jZNszh+4Dtix6Kjy0ZSukaa7lio9Haa2G561gAAACH5BAEAAB8ALAAAAAAUABQAAAVy4CeOZGmeaKqu7LlU1cNxT0KpsXckSVBslwOK4lAQSp2GIXNyXCangmFwejSYJinVRMFoTgIAtrSQGBKlhCByPFEgklIB0kYl65TG9oSgLKYjBQ0EGQBgAhYMESMNGBYAhiYNiQwMI44WEYstnJ2enyghADs=]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/plugins/charmap/jscripts/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/includes/edit_area/plugins/charmap/jscripts/map.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[dmFyIGVkaXRBcmVhOw0KDQoNCi8qKg0KICogIFVURi04IGxpc3QgdGFrZW4gZnJvbSBodHRwOi8vd3d3LnV0ZjgtY2hhcnRhYmxlLmRlL3VuaWNvZGUtdXRmOC10YWJsZS5wbD91dGY4PWRlYyANCiAqLyAgDQogDQoNCi8qDQp2YXIgY2hhcl9yYW5nZV9saXN0PXsNCiJCYXNpYyBMYXRpbiI6IjAwMjEsMDA3RiIsDQoiTGF0aW4tMSBTdXBwbGVtZW50IjoiMDA4MCwwMEZGIiwNCiJMYXRpbiBFeHRlbmRlZC1BIjoiMDEwMCwwMTdGIiwNCiJMYXRpbiBFeHRlbmRlZC1CIjoiMDE4MCwwMjRGIiwNCiJJUEEgRXh0ZW5zaW9ucyI6IjAyNTAsMDJBRiIsDQoiU3BhY2luZyBNb2RpZmllciBMZXR0ZXJzIjoiMDJCMCwwMkZGIiwNCg0KIkNvbWJpbmluZyBEaWFjcml0aWNhbCBNYXJrcyI6IjAzMDAsMDM2RiIsDQoiR3JlZWsgYW5kIENvcHRpYyI6IjAzNzAsMDNGRiIsDQoiQ3lyaWxsaWMiOiIwNDAwLDA0RkYiLA0KIkN5cmlsbGljIFN1cHBsZW1lbnQiOiIwNTAwLDA1MkYiLA0KIkFybWVuaWFuIjoiMDUzMCwwNThGIiwNCiJIZWJyZXciOiIwNTkwLDA1RkYiLA0KIkFyYWJpYyI6IjA2MDAsMDZGRiIsDQoiU3lyaWFjIjoiMDcwMCwwNzRGIiwNCiJBcmFiaWMgU3VwcGxlbWVudCI6IjA3NTAsMDc3RiIsDQoNCiJUaGFhbmEiOiIwNzgwLDA3QkYiLA0KIkRldmFuYWdhcmkiOiIwOTAwLDA5N0YiLA0KIkJlbmdhbGkiOiIwOTgwLDA5RkYiLA0KIkd1cm11a2hpIjoiMEEwMCwwQTdGIiwNCiJHdWphcmF0aSI6IjBBODAsMEFGRiIsDQoiT3JpeWEiOiIwQjAwLDBCN0YiLA0KIlRhbWlsIjoiMEI4MCwwQkZGIiwNCiJUZWx1Z3UiOiIwQzAwLDBDN0YiLA0KIkthbm5hZGEiOiIwQzgwLDBDRkYiLA0KDQoiTWFsYXlhbGFtIjoiMEQwMCwwRDdGIiwNCiJTaW5oYWxhIjoiMEQ4MCwwREZGIiwNCiJUaGFpIjoiMEUwMCwwRTdGIiwNCiJMYW8iOiIwRTgwLDBFRkYiLA0KIlRpYmV0YW4iOiIwRjAwLDBGRkYiLA0KIk15YW5tYXIiOiIxMDAwLDEwOUYiLA0KIkdlb3JnaWFuIjoiMTBBMCwxMEZGIiwNCiJIYW5ndWwgSmFtbyI6IjExMDAsMTFGRiIsDQoiRXRoaW9waWMiOiIxMjAwLDEzN0YiLA0KDQoiRXRoaW9waWMgU3VwcGxlbWVudCI6IjEzODAsMTM5RiIsDQoiQ2hlcm9rZWUiOiIxM0EwLDEzRkYiLA0KIlVuaWZpZWQgQ2FuYWRpYW4gQWJvcmlnaW5hbCBTeWxsYWJpY3MiOiIxNDAwLDE2N0YiLA0KIk9naGFtIjoiMTY4MCwxNjlGIiwNCiJSdW5pYyI6IjE2QTAsMTZGRiIsDQoiVGFnYWxvZyI6IjE3MDAsMTcxRiIsDQoiSGFudW5vbyI6IjE3MjAsMTczRiIsDQoiQnVoaWQiOiIxNzQwLDE3NUYiLA0KIlRhZ2JhbndhIjoiMTc2MCwxNzdGIiwNCg0KIktobWVyIjoiMTc4MCwxN0ZGIiwNCiJNb25nb2xpYW4iOiIxODAwLDE4QUYiLA0KIkxpbWJ1IjoiMTkwMCwxOTRGIiwNCiJUYWkgTGUiOiIxOTUwLDE5N0YiLA0KIk5ldyBUYWkgTHVlIjoiMTk4MCwxOURGIiwNCiJLaG1lciBTeW1ib2xzIjoiMTlFMCwxOUZGIiwNCiJCdWdpbmVzZSI6IjFBMDAsMUExRiIsDQoiUGhvbmV0aWMgRXh0ZW5zaW9ucyI6IjFEMDAsMUQ3RiIsDQoiUGhvbmV0aWMgRXh0ZW5zaW9ucyBTdXBwbGVtZW50IjoiMUQ4MCwxREJGIiwNCg0KIkNvbWJpbmluZyBEaWFjcml0aWNhbCBNYXJrcyBTdXBwbGVtZW50IjoiMURDMCwxREZGIiwNCiJMYXRpbiBFeHRlbmRlZCBBZGRpdGlvbmFsIjoiMUUwMCwxRUZGIiwNCiJHcmVlayBFeHRlbmRlZCI6IjFGMDAsMUZGRiIsDQoiR2VuZXJhbCBQdW5jdHVhdGlvbiI6IjIwMDAsMjA2RiIsDQoiU3VwZXJzY3JpcHRzIGFuZCBTdWJzY3JpcHRzIjoiMjA3MCwyMDlGIiwNCiJDdXJyZW5jeSBTeW1ib2xzIjoiMjBBMCwyMENGIiwNCiJDb21iaW5pbmcgRGlhY3JpdGljYWwgTWFya3MgZm9yIFN5bWJvbHMiOiIyMEQwLDIwRkYiLA0KIkxldHRlcmxpa2UgU3ltYm9scyI6IjIxMDAsMjE0RiIsDQoiTnVtYmVyIEZvcm1zIjoiMjE1MCwyMThGIiwNCg0KIkFycm93cyI6IjIxOTAsMjFGRiIsDQoiTWF0aGVtYXRpY2FsIE9wZXJhdG9ycyI6IjIyMDAsMjJGRiIsDQoiTWlzY2VsbGFuZW91cyBUZWNobmljYWwiOiIyMzAwLDIzRkYiLA0KIkNvbnRyb2wgUGljdHVyZXMiOiIyNDAwLDI0M0YiLA0KIk9wdGljYWwgQ2hhcmFjdGVyIFJlY29nbml0aW9uIjoiMjQ0MCwyNDVGIiwNCiJFbmNsb3NlZCBBbHBoYW51bWVyaWNzIjoiMjQ2MCwyNEZGIiwNCiJCb3ggRHJhd2luZyI6IjI1MDAsMjU3RiIsDQoiQmxvY2sgRWxlbWVudHMiOiIyNTgwLDI1OUYiLA0KIkdlb21ldHJpYyBTaGFwZXMiOiIyNUEwLDI1RkYiLA0KDQoiTWlzY2VsbGFuZW91cyBTeW1ib2xzIjoiMjYwMCwyNkZGIiwNCiJEaW5nYmF0cyI6IjI3MDAsMjdCRiIsDQoiTWlzY2VsbGFuZW91cyBNYXRoZW1hdGljYWwgU3ltYm9scy1BIjoiMjdDMCwyN0VGIiwNCiJTdXBwbGVtZW50YWwgQXJyb3dzLUEiOiIyN0YwLDI3RkYiLA0KIkJyYWlsbGUgUGF0dGVybnMiOiIyODAwLDI4RkYiLA0KIlN1cHBsZW1lbnRhbCBBcnJvd3MtQiI6IjI5MDAsMjk3RiIsDQoiTWlzY2VsbGFuZW91cyBNYXRoZW1hdGljYWwgU3ltYm9scy1CIjoiMjk4MCwyOUZGIiwNCiJTdXBwbGVtZW50YWwgTWF0aGVtYXRpY2FsIE9wZXJhdG9ycyI6IjJBMDAsMkFGRiIsDQoiTWlzY2VsbGFuZW91cyBTeW1ib2xzIGFuZCBBcnJvd3MiOiIyQjAwLDJCRkYiLA0KDQoiR2xhZ29saXRpYyI6IjJDMDAsMkM1RiIsDQoiQ29wdGljIjoiMkM4MCwyQ0ZGIiwNCiJHZW9yZ2lhbiBTdXBwbGVtZW50IjoiMkQwMCwyRDJGIiwNCiJUaWZpbmFnaCI6IjJEMzAsMkQ3RiIsDQoiRXRoaW9waWMgRXh0ZW5kZWQiOiIyRDgwLDJEREYiLA0KIlN1cHBsZW1lbnRhbCBQdW5jdHVhdGlvbiI6IjJFMDAsMkU3RiIsDQoiQ0pLIFJhZGljYWxzIFN1cHBsZW1lbnQiOiIyRTgwLDJFRkYiLA0KIkthbmd4aSBSYWRpY2FscyI6IjJGMDAsMkZERiIsDQoiSWRlb2dyYXBoaWMgRGVzY3JpcHRpb24gQ2hhcmFjdGVycyI6IjJGRjAsMkZGRiIsDQoNCiJDSksgU3ltYm9scyBhbmQgUHVuY3R1YXRpb24iOiIzMDAwLDMwM0YiLA0KIkhpcmFnYW5hIjoiMzA0MCwzMDlGIiwNCiJLYXRha2FuYSI6IjMwQTAsMzBGRiIsDQoiQm9wb21vZm8iOiIzMTAwLDMxMkYiLA0KIkhhbmd1bCBDb21wYXRpYmlsaXR5IEphbW8iOiIzMTMwLDMxOEYiLA0KIkthbmJ1biI6IjMxOTAsMzE5RiIsDQoiQm9wb21vZm8gRXh0ZW5kZWQiOiIzMUEwLDMxQkYiLA0KIkNKSyBTdHJva2VzIjoiMzFDMCwzMUVGIiwNCiJLYXRha2FuYSBQaG9uZXRpYyBFeHRlbnNpb25zIjoiMzFGMCwzMUZGIiwNCg0KIkVuY2xvc2VkIENKSyBMZXR0ZXJzIGFuZCBNb250aHMiOiIzMjAwLDMyRkYiLA0KIkNKSyBDb21wYXRpYmlsaXR5IjoiMzMwMCwzM0ZGIiwNCiJDSksgVW5pZmllZCBJZGVvZ3JhcGhzIEV4dGVuc2lvbiBBIjoiMzQwMCw0REJGIiwNCiJZaWppbmcgSGV4YWdyYW0gU3ltYm9scyI6IjREQzAsNERGRiIsDQoiQ0pLIFVuaWZpZWQgSWRlb2dyYXBocyI6IjRFMDAsOUZGRiIsDQoiWWkgU3lsbGFibGVzIjoiQTAwMCxBNDhGIiwNCiJZaSBSYWRpY2FscyI6IkE0OTAsQTRDRiIsDQoiTW9kaWZpZXIgVG9uZSBMZXR0ZXJzIjoiQTcwMCxBNzFGIiwNCiJTeWxvdGkgTmFncmkiOiJBODAwLEE4MkYiLA0KDQoiSGFuZ3VsIFN5bGxhYmxlcyI6IkFDMDAsRDdBRiIsDQoiSGlnaCBTdXJyb2dhdGVzIjoiRDgwMCxEQjdGIiwNCiJIaWdoIFByaXZhdGUgVXNlIFN1cnJvZ2F0ZXMiOiJEQjgwLERCRkYiLA0KIkxvdyBTdXJyb2dhdGVzIjoiREMwMCxERkZGIiwNCiJQcml2YXRlIFVzZSBBcmVhIjoiRTAwMCxGOEZGIiwNCiJDSksgQ29tcGF0aWJpbGl0eSBJZGVvZ3JhcGhzIjoiRjkwMCxGQUZGIiwNCiJBbHBoYWJldGljIFByZXNlbnRhdGlvbiBGb3JtcyI6IkZCMDAsRkI0RiIsDQoiQXJhYmljIFByZXNlbnRhdGlvbiBGb3Jtcy1BIjoiRkI1MCxGREZGIiwNCiJWYXJpYXRpb24gU2VsZWN0b3JzIjoiRkUwMCxGRTBGIiwNCg0KIlZlcnRpY2FsIEZvcm1zIjoiRkUxMCxGRTFGIiwNCiJDb21iaW5pbmcgSGFsZiBNYXJrcyI6IkZFMjAsRkUyRiIsDQoiQ0pLIENvbXBhdGliaWxpdHkgRm9ybXMiOiJGRTMwLEZFNEYiLA0KIlNtYWxsIEZvcm0gVmFyaWFudHMiOiJGRTUwLEZFNkYiLA0KIkFyYWJpYyBQcmVzZW50YXRpb24gRm9ybXMtQiI6IkZFNzAsRkVGRiIsDQoiSGFsZndpZHRoIGFuZCBGdWxsd2lkdGggRm9ybXMiOiJGRjAwLEZGRUYiLA0KIlNwZWNpYWxzIjoiRkZGMCxGRkZGIiwNCiJMaW5lYXIgQiBTeWxsYWJhcnkiOiIxMDAwMCwxMDA3RiIsDQoiTGluZWFyIEIgSWRlb2dyYW1zIjoiMTAwODAsMTAwRkYiLA0KDQoiQWVnZWFuIE51bWJlcnMiOiIxMDEwMCwxMDEzRiIsDQoiQW5jaWVudCBHcmVlayBOdW1iZXJzIjoiMTAxNDAsMTAxOEYiLA0KIk9sZCBJdGFsaWMiOiIxMDMwMCwxMDMyRiIsDQoiR290aGljIjoiMTAzMzAsMTAzNEYiLA0KIlVnYXJpdGljIjoiMTAzODAsMTAzOUYiLA0KIk9sZCBQZXJzaWFuIjoiMTAzQTAsMTAzREYiLA0KIkRlc2VyZXQiOiIxMDQwMCwxMDQ0RiIsDQoiU2hhdmlhbiI6IjEwNDUwLDEwNDdGIiwNCiJPc21hbnlhIjoiMTA0ODAsMTA0QUYiLA0KDQoiQ3lwcmlvdCBTeWxsYWJhcnkiOiIxMDgwMCwxMDgzRiIsDQoiS2hhcm9zaHRoaSI6IjEwQTAwLDEwQTVGIiwNCiJCeXphbnRpbmUgTXVzaWNhbCBTeW1ib2xzIjoiMUQwMDAsMUQwRkYiLA0KIk11c2ljYWwgU3ltYm9scyI6IjFEMTAwLDFEMUZGIiwNCiJBbmNpZW50IEdyZWVrIE11c2ljYWwgTm90YXRpb24iOiIxRDIwMCwxRDI0RiIsDQoiVGFpIFh1YW4gSmluZyBTeW1ib2xzIjoiMUQzMDAsMUQzNUYiLA0KIk1hdGhlbWF0aWNhbCBBbHBoYW51bWVyaWMgU3ltYm9scyI6IjFENDAwLDFEN0ZGIiwNCiJDSksgVW5pZmllZCBJZGVvZ3JhcGhzIEV4dGVuc2lvbiBCIjoiMjAwMDAsMkE2REYiLA0KIkNKSyBDb21wYXRpYmlsaXR5IElkZW9ncmFwaHMgU3VwcGxlbWVudCI6IjJGODAwLDJGQTFGIiwNCiJUYWdzIjoiRTAwMDAsRTAwN0YiLA0KIlZhcmlhdGlvbiBTZWxlY3RvcnMgU3VwcGxlbWVudCI6IkUwMTAwLEUwMUVGIg0KfTsNCiovDQp2YXIgY2hhcl9yYW5nZV9saXN0PXsNCiJBZWdlYW4gTnVtYmVycyI6IjEwMTAwLDEwMTNGIiwNCiJBbHBoYWJldGljIFByZXNlbnRhdGlvbiBGb3JtcyI6IkZCMDAsRkI0RiIsDQoiQW5jaWVudCBHcmVlayBNdXNpY2FsIE5vdGF0aW9uIjoiMUQyMDAsMUQyNEYiLA0KIkFuY2llbnQgR3JlZWsgTnVtYmVycyI6IjEwMTQwLDEwMThGIiwNCiJBcmFiaWMiOiIwNjAwLDA2RkYiLA0KIkFyYWJpYyBQcmVzZW50YXRpb24gRm9ybXMtQSI6IkZCNTAsRkRGRiIsDQoiQXJhYmljIFByZXNlbnRhdGlvbiBGb3Jtcy1CIjoiRkU3MCxGRUZGIiwNCiJBcmFiaWMgU3VwcGxlbWVudCI6IjA3NTAsMDc3RiIsDQoiQXJtZW5pYW4iOiIwNTMwLDA1OEYiLA0KIkFycm93cyI6IjIxOTAsMjFGRiIsDQoiQmFzaWMgTGF0aW4iOiIwMDIwLDAwN0YiLA0KIkJlbmdhbGkiOiIwOTgwLDA5RkYiLA0KIkJsb2NrIEVsZW1lbnRzIjoiMjU4MCwyNTlGIiwNCiJCb3BvbW9mbyBFeHRlbmRlZCI6IjMxQTAsMzFCRiIsDQoiQm9wb21vZm8iOiIzMTAwLDMxMkYiLA0KIkJveCBEcmF3aW5nIjoiMjUwMCwyNTdGIiwNCiJCcmFpbGxlIFBhdHRlcm5zIjoiMjgwMCwyOEZGIiwNCiJCdWdpbmVzZSI6IjFBMDAsMUExRiIsDQoiQnVoaWQiOiIxNzQwLDE3NUYiLA0KIkJ5emFudGluZSBNdXNpY2FsIFN5bWJvbHMiOiIxRDAwMCwxRDBGRiIsDQoiQ0pLIENvbXBhdGliaWxpdHkgRm9ybXMiOiJGRTMwLEZFNEYiLA0KIkNKSyBDb21wYXRpYmlsaXR5IElkZW9ncmFwaHMgU3VwcGxlbWVudCI6IjJGODAwLDJGQTFGIiwNCiJDSksgQ29tcGF0aWJpbGl0eSBJZGVvZ3JhcGhzIjoiRjkwMCxGQUZGIiwNCiJDSksgQ29tcGF0aWJpbGl0eSI6IjMzMDAsMzNGRiIsDQoiQ0pLIFJhZGljYWxzIFN1cHBsZW1lbnQiOiIyRTgwLDJFRkYiLA0KIkNKSyBTdHJva2VzIjoiMzFDMCwzMUVGIiwNCiJDSksgU3ltYm9scyBhbmQgUHVuY3R1YXRpb24iOiIzMDAwLDMwM0YiLA0KIkNKSyBVbmlmaWVkIElkZW9ncmFwaHMgRXh0ZW5zaW9uIEEiOiIzNDAwLDREQkYiLA0KIkNKSyBVbmlmaWVkIElkZW9ncmFwaHMgRXh0ZW5zaW9uIEIiOiIyMDAwMCwyQTZERiIsDQoiQ0pLIFVuaWZpZWQgSWRlb2dyYXBocyI6IjRFMDAsOUZGRiIsDQoiQ2hlcm9rZWUiOiIxM0EwLDEzRkYiLA0KIkNvbWJpbmluZyBEaWFjcml0aWNhbCBNYXJrcyBTdXBwbGVtZW50IjoiMURDMCwxREZGIiwNCiJDb21iaW5pbmcgRGlhY3JpdGljYWwgTWFya3MgZm9yIFN5bWJvbHMiOiIyMEQwLDIwRkYiLA0KIkNvbWJpbmluZyBEaWFjcml0aWNhbCBNYXJrcyI6IjAzMDAsMDM2RiIsDQoiQ29tYmluaW5nIEhhbGYgTWFya3MiOiJGRTIwLEZFMkYiLA0KIkNvbnRyb2wgUGljdHVyZXMiOiIyNDAwLDI0M0YiLA0KIkNvcHRpYyI6IjJDODAsMkNGRiIsDQoiQ3VycmVuY3kgU3ltYm9scyI6IjIwQTAsMjBDRiIsDQoiQ3lwcmlvdCBTeWxsYWJhcnkiOiIxMDgwMCwxMDgzRiIsDQoiQ3lyaWxsaWMgU3VwcGxlbWVudCI6IjA1MDAsMDUyRiIsDQoiQ3lyaWxsaWMiOiIwNDAwLDA0RkYiLA0KIkRlc2VyZXQiOiIxMDQwMCwxMDQ0RiIsDQoiRGV2YW5hZ2FyaSI6IjA5MDAsMDk3RiIsDQoiRGluZ2JhdHMiOiIyNzAwLDI3QkYiLA0KIkVuY2xvc2VkIEFscGhhbnVtZXJpY3MiOiIyNDYwLDI0RkYiLA0KIkVuY2xvc2VkIENKSyBMZXR0ZXJzIGFuZCBNb250aHMiOiIzMjAwLDMyRkYiLA0KIkV0aGlvcGljIEV4dGVuZGVkIjoiMkQ4MCwyRERGIiwNCiJFdGhpb3BpYyBTdXBwbGVtZW50IjoiMTM4MCwxMzlGIiwNCiJFdGhpb3BpYyI6IjEyMDAsMTM3RiIsDQoiR2VuZXJhbCBQdW5jdHVhdGlvbiI6IjIwMDAsMjA2RiIsDQoiR2VvbWV0cmljIFNoYXBlcyI6IjI1QTAsMjVGRiIsDQoiR2VvcmdpYW4gU3VwcGxlbWVudCI6IjJEMDAsMkQyRiIsDQoiR2VvcmdpYW4iOiIxMEEwLDEwRkYiLA0KIkdsYWdvbGl0aWMiOiIyQzAwLDJDNUYiLA0KIkdvdGhpYyI6IjEwMzMwLDEwMzRGIiwNCiJHcmVlayBFeHRlbmRlZCI6IjFGMDAsMUZGRiIsDQoiR3JlZWsgYW5kIENvcHRpYyI6IjAzNzAsMDNGRiIsDQoiR3VqYXJhdGkiOiIwQTgwLDBBRkYiLA0KIkd1cm11a2hpIjoiMEEwMCwwQTdGIiwNCiJIYWxmd2lkdGggYW5kIEZ1bGx3aWR0aCBGb3JtcyI6IkZGMDAsRkZFRiIsDQoiSGFuZ3VsIENvbXBhdGliaWxpdHkgSmFtbyI6IjMxMzAsMzE4RiIsDQoiSGFuZ3VsIEphbW8iOiIxMTAwLDExRkYiLA0KIkhhbmd1bCBTeWxsYWJsZXMiOiJBQzAwLEQ3QUYiLA0KIkhhbnVub28iOiIxNzIwLDE3M0YiLA0KIkhlYnJldyI6IjA1OTAsMDVGRiIsDQoiSGlnaCBQcml2YXRlIFVzZSBTdXJyb2dhdGVzIjoiREI4MCxEQkZGIiwNCiJIaWdoIFN1cnJvZ2F0ZXMiOiJEODAwLERCN0YiLA0KIkhpcmFnYW5hIjoiMzA0MCwzMDlGIiwNCiJJUEEgRXh0ZW5zaW9ucyI6IjAyNTAsMDJBRiIsDQoiSWRlb2dyYXBoaWMgRGVzY3JpcHRpb24gQ2hhcmFjdGVycyI6IjJGRjAsMkZGRiIsDQoiS2FuYnVuIjoiMzE5MCwzMTlGIiwNCiJLYW5neGkgUmFkaWNhbHMiOiIyRjAwLDJGREYiLA0KIkthbm5hZGEiOiIwQzgwLDBDRkYiLA0KIkthdGFrYW5hIFBob25ldGljIEV4dGVuc2lvbnMiOiIzMUYwLDMxRkYiLA0KIkthdGFrYW5hIjoiMzBBMCwzMEZGIiwNCiJLaGFyb3NodGhpIjoiMTBBMDAsMTBBNUYiLA0KIktobWVyIFN5bWJvbHMiOiIxOUUwLDE5RkYiLA0KIktobWVyIjoiMTc4MCwxN0ZGIiwNCiJMYW8iOiIwRTgwLDBFRkYiLA0KIkxhdGluIEV4dGVuZGVkIEFkZGl0aW9uYWwiOiIxRTAwLDFFRkYiLA0KIkxhdGluIEV4dGVuZGVkLUEiOiIwMTAwLDAxN0YiLA0KIkxhdGluIEV4dGVuZGVkLUIiOiIwMTgwLDAyNEYiLA0KIkxhdGluLTEgU3VwcGxlbWVudCI6IjAwODAsMDBGRiIsDQoiTGV0dGVybGlrZSBTeW1ib2xzIjoiMjEwMCwyMTRGIiwNCiJMaW1idSI6IjE5MDAsMTk0RiIsDQoiTGluZWFyIEIgSWRlb2dyYW1zIjoiMTAwODAsMTAwRkYiLA0KIkxpbmVhciBCIFN5bGxhYmFyeSI6IjEwMDAwLDEwMDdGIiwNCiJMb3cgU3Vycm9nYXRlcyI6IkRDMDAsREZGRiIsDQoiTWFsYXlhbGFtIjoiMEQwMCwwRDdGIiwNCiJNYXRoZW1hdGljYWwgQWxwaGFudW1lcmljIFN5bWJvbHMiOiIxRDQwMCwxRDdGRiIsDQoiTWF0aGVtYXRpY2FsIE9wZXJhdG9ycyI6IjIyMDAsMjJGRiIsDQoiTWlzY2VsbGFuZW91cyBNYXRoZW1hdGljYWwgU3ltYm9scy1BIjoiMjdDMCwyN0VGIiwNCiJNaXNjZWxsYW5lb3VzIE1hdGhlbWF0aWNhbCBTeW1ib2xzLUIiOiIyOTgwLDI5RkYiLA0KIk1pc2NlbGxhbmVvdXMgU3ltYm9scyBhbmQgQXJyb3dzIjoiMkIwMCwyQkZGIiwNCiJNaXNjZWxsYW5lb3VzIFN5bWJvbHMiOiIyNjAwLDI2RkYiLA0KIk1pc2NlbGxhbmVvdXMgVGVjaG5pY2FsIjoiMjMwMCwyM0ZGIiwNCiJNb2RpZmllciBUb25lIExldHRlcnMiOiJBNzAwLEE3MUYiLA0KIk1vbmdvbGlhbiI6IjE4MDAsMThBRiIsDQoiTXVzaWNhbCBTeW1ib2xzIjoiMUQxMDAsMUQxRkYiLA0KIk15YW5tYXIiOiIxMDAwLDEwOUYiLA0KIk5ldyBUYWkgTHVlIjoiMTk4MCwxOURGIiwNCiJOdW1iZXIgRm9ybXMiOiIyMTUwLDIxOEYiLA0KIk9naGFtIjoiMTY4MCwxNjlGIiwNCiJPbGQgSXRhbGljIjoiMTAzMDAsMTAzMkYiLA0KIk9sZCBQZXJzaWFuIjoiMTAzQTAsMTAzREYiLA0KIk9wdGljYWwgQ2hhcmFjdGVyIFJlY29nbml0aW9uIjoiMjQ0MCwyNDVGIiwNCiJPcml5YSI6IjBCMDAsMEI3RiIsDQoiT3NtYW55YSI6IjEwNDgwLDEwNEFGIiwNCiJQaG9uZXRpYyBFeHRlbnNpb25zIFN1cHBsZW1lbnQiOiIxRDgwLDFEQkYiLA0KIlBob25ldGljIEV4dGVuc2lvbnMiOiIxRDAwLDFEN0YiLA0KIlByaXZhdGUgVXNlIEFyZWEiOiJFMDAwLEY4RkYiLA0KIlJ1bmljIjoiMTZBMCwxNkZGIiwNCiJTaGF2aWFuIjoiMTA0NTAsMTA0N0YiLA0KIlNpbmhhbGEiOiIwRDgwLDBERkYiLA0KIlNtYWxsIEZvcm0gVmFyaWFudHMiOiJGRTUwLEZFNkYiLA0KIlNwYWNpbmcgTW9kaWZpZXIgTGV0dGVycyI6IjAyQjAsMDJGRiIsDQoiU3BlY2lhbHMiOiJGRkYwLEZGRkYiLA0KIlN1cGVyc2NyaXB0cyBhbmQgU3Vic2NyaXB0cyI6IjIwNzAsMjA5RiIsDQoiU3VwcGxlbWVudGFsIEFycm93cy1BIjoiMjdGMCwyN0ZGIiwNCiJTdXBwbGVtZW50YWwgQXJyb3dzLUIiOiIyOTAwLDI5N0YiLA0KIlN1cHBsZW1lbnRhbCBNYXRoZW1hdGljYWwgT3BlcmF0b3JzIjoiMkEwMCwyQUZGIiwNCiJTdXBwbGVtZW50YWwgUHVuY3R1YXRpb24iOiIyRTAwLDJFN0YiLA0KIlN5bG90aSBOYWdyaSI6IkE4MDAsQTgyRiIsDQoiU3lyaWFjIjoiMDcwMCwwNzRGIiwNCiJUYWdhbG9nIjoiMTcwMCwxNzFGIiwNCiJUYWdiYW53YSI6IjE3NjAsMTc3RiIsDQoiVGFncyI6IkUwMDAwLEUwMDdGIiwNCiJUYWkgTGUiOiIxOTUwLDE5N0YiLA0KIlRhaSBYdWFuIEppbmcgU3ltYm9scyI6IjFEMzAwLDFEMzVGIiwNCiJUYW1pbCI6IjBCODAsMEJGRiIsDQoiVGVsdWd1IjoiMEMwMCwwQzdGIiwNCiJUaGFhbmEiOiIwNzgwLDA3QkYiLA0KIlRoYWkiOiIwRTAwLDBFN0YiLA0KIlRpYmV0YW4iOiIwRjAwLDBGRkYiLA0KIlRpZmluYWdoIjoiMkQzMCwyRDdGIiwNCiJVZ2FyaXRpYyI6IjEwMzgwLDEwMzlGIiwNCiJVbmlmaWVkIENhbmFkaWFuIEFib3JpZ2luYWwgU3lsbGFiaWNzIjoiMTQwMCwxNjdGIiwNCiJWYXJpYXRpb24gU2VsZWN0b3JzIFN1cHBsZW1lbnQiOiJFMDEwMCxFMDFFRiIsDQoiVmFyaWF0aW9uIFNlbGVjdG9ycyI6IkZFMDAsRkUwRiIsDQoiVmVydGljYWwgRm9ybXMiOiJGRTEwLEZFMUYiLA0KIllpIFJhZGljYWxzIjoiQTQ5MCxBNENGIiwNCiJZaSBTeWxsYWJsZXMiOiJBMDAwLEE0OEYiLA0KIllpamluZyBIZXhhZ3JhbSBTeW1ib2xzIjoiNERDMCw0REZGIg0KfTsNCg0KdmFyIGluc2VydD0iY2hhcm1hcF9pbnNlcnQiOw0KDQpmdW5jdGlvbiBtYXBfbG9hZCgpew0KCWVkaXRBcmVhPW9wZW5lci5lZGl0QXJlYTsNCgkvLyB0cmFuc2xhdGUgdGhlIGRvY3VtZW50DQoJaW5zZXJ0PSBlZGl0QXJlYS5nZXRfdHJhbnNsYXRpb24oaW5zZXJ0LCAid29yZCIpOw0KCS8vYWxlcnQoZG9jdW1lbnQudGl0bGUpOw0KCWRvY3VtZW50LnRpdGxlPSBlZGl0QXJlYS5nZXRfdHJhbnNsYXRpb24oZG9jdW1lbnQudGl0bGUsICJ0ZW1wbGF0ZSIpOw0KCWRvY3VtZW50LmJvZHkuaW5uZXJIVE1MPSBlZGl0QXJlYS5nZXRfdHJhbnNsYXRpb24oZG9jdW1lbnQuYm9keS5pbm5lckhUTUwsICJ0ZW1wbGF0ZSIpOw0KCS8vZG9jdW1lbnQudGl0bGU9IGVkaXRBcmVhLmdldF90cmFuc2xhdGlvbihkb2N1bWVudC5nZXRFbGVtZW50Qnl0aXRsZSwgInRlbXBsYXRlIik7DQoJDQoJdmFyIHNlbGVjdGVkX2xhbmc9b3BlbmVyLkVkaXRBcmVhX2NoYXJtYXAuZGVmYXVsdF9sYW5ndWFnZS50b0xvd2VyQ2FzZSgpOw0KCXZhciBzZWxlY3RlZD0wOw0KCQ0KCXZhciBzZWxlY3Q9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZWxlY3RfcmFuZ2UiKQ0KCWZvcih2YXIgaSBpbiBjaGFyX3JhbmdlX2xpc3Qpew0KCQlpZihpLnRvTG93ZXJDYXNlKCk9PXNlbGVjdGVkX2xhbmcpDQoJCQlzZWxlY3RlZD1zZWxlY3Qub3B0aW9ucy5sZW5ndGg7DQoJCXNlbGVjdC5vcHRpb25zW3NlbGVjdC5vcHRpb25zLmxlbmd0aF09bmV3IE9wdGlvbihpLCBjaGFyX3JhbmdlX2xpc3RbaV0pOw0KCX0NCglzZWxlY3Qub3B0aW9uc1tzZWxlY3RlZF0uc2VsZWN0ZWQ9dHJ1ZTsNCi8qCXN0YXJ0PTA7DQoJZW5kPTEyNzsNCgljb250ZW50PSIiOw0KCWZvcih2YXIgaT1zdGFydDsgaTxlbmQ7IGkrKyl7DQoJCWNvbnRlbnQrPSImIyIraSsiOyAiOw0KCX0NCglkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2hhcl9saXN0IikuaW5uZXJIVE1MPWNvbnRlbnQ7Ki8NCglyZW5kZXJDaGFyTWFwSFRNTCgpOw0KfQ0KDQoNCmZ1bmN0aW9uIHJlbmRlckNoYXJNYXBIVE1MKCkgew0KCXJhbmdlPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2VsZWN0X3JhbmdlIikudmFsdWUuc3BsaXQoIiwiKTsNCg0KCXN0YXJ0PSBwYXJzZUludChyYW5nZVswXSwxNik7DQoJZW5kPSBwYXJzZUludChyYW5nZVsxXSwxNik7DQoJdmFyIGNoYXJzUGVyUm93ID0gMjAsIHRkV2lkdGg9MjAsIHRkSGVpZ2h0PTIwOw0KCWh0bWw9IiI7DQoJZm9yICh2YXIgaT1zdGFydDsgaTxlbmQ7IGkrKykgew0KCQlodG1sKz0iPGEgY2xhc3M9J2NoYXInIG9ubW91c2VvdmVyPSdwcmV2aWV3Q2hhcihcIiIrIGkgKyAiXCIpOycgb25jbGljaz0naW5zZXJ0Q2hhcihcIiIrIGkgKyAiXCIpOycgdGl0bGU9JyIrIGluc2VydCArIic+IisgU3RyaW5nLmZyb21DaGFyQ29kZShpKSArIjwvYT4iOw0KCX0NCglkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2hhcl9saXN0IikuaW5uZXJIVE1MPSBodG1sOw0KCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwcmV2aWV3X2NoYXIiKS5pbm5lckhUTUw9IiI7DQp9DQoNCmZ1bmN0aW9uIHByZXZpZXdDaGFyKGkpew0KCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwcmV2aWV3X2NoYXIiKS5pbm5lckhUTUw9IFN0cmluZy5mcm9tQ2hhckNvZGUoaSk7DQoJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInByZXZpZXdfY29kZSIpLmlubmVySFRNTD0gIiZhbXA7IyIrIGkgKyI7IjsNCn0NCg0KZnVuY3Rpb24gaW5zZXJ0Q2hhcihpKXsNCglvcGVuZXIucGFyZW50LmVkaXRBcmVhTG9hZGVyLnNldFNlbGVjdGVkVGV4dChlZGl0QXJlYS5pZCwgU3RyaW5nLmZyb21DaGFyQ29kZSggaSkpOw0KCXJhbmdlPSBvcGVuZXIucGFyZW50LmVkaXRBcmVhTG9hZGVyLmdldFNlbGVjdGlvblJhbmdlKGVkaXRBcmVhLmlkKTsNCglvcGVuZXIucGFyZW50LmVkaXRBcmVhTG9hZGVyLnNldFNlbGVjdGlvblJhbmdlKGVkaXRBcmVhLmlkLCByYW5nZVsiZW5kIl0sIHJhbmdlWyJlbmQiXSk7DQoJd2luZG93LmZvY3VzKCk7DQp9DQo=]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/plugins/charmap/langs/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/includes/edit_area/plugins/charmap/langs/bg.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoNCiAqCUJ1bGdhcmlhbiB0cmFuc2xhdGlvbg0KICoJQXV0aG9yOgkJVmFsZW50aW4gSHJpc3Rvdg0KICoJQ29tcGFueToJU09GVEtJVCBCdWxnYXJpYW4NCiAqCVNpdGU6CQlodHRwOi8vd3d3LnNvZnRraXQtYmcuY29tDQogKi8NCmVkaXRBcmVhLmFkZF9sYW5nKCJiZyIsew0KY2hhcm1hcF9idXQ6ICLQktC40YDRgtGD0LDQu9C90LAg0LrQu9Cw0LLQuNCw0YLRg9GA0LAiLA0KY2hhcm1hcF90aXRsZTogItCS0LjRgNGC0YPQsNC70L3QsCDQutC70LDQstC40LDRgtGD0YDQsCIsDQpjaGFybWFwX2Nob29zZV9ibG9jazogItC40LfQsdC10YDQuCDQtdC30LjQutC+0LIg0LHQu9C+0LoiLA0KY2hhcm1hcF9pbnNlcnQ6ItC/0L7RgdGC0LDQstC4INGC0L7Qt9C4INGB0LjQvNCy0L7QuyINCn0pOw0K]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/plugins/charmap/langs/cs.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ZWRpdEFyZWEuYWRkX2xhbmcoImNzIix7DQpjaGFybWFwX2J1dDogIlZpc3VhbCBrZXlib2FyZCIsDQpjaGFybWFwX3RpdGxlOiAiVmlzdWFsIGtleWJvYXJkIiwNCmNoYXJtYXBfY2hvb3NlX2Jsb2NrOiAic2VsZWN0IGxhbmd1YWdlIGJsb2NrIiwNCmNoYXJtYXBfaW5zZXJ0OiJpbnNlcnQgdGhpcyBjaGFyYWN0ZXIiDQp9KTsNCg==]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/plugins/charmap/langs/de.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ZWRpdEFyZWEuYWRkX2xhbmcoImRlIix7DQpjaGFybWFwX2J1dDogIlNvbmRlcnplaWNoZW4iLA0KY2hhcm1hcF90aXRsZTogIlNvbmRlcnplaWNoZW4iLA0KY2hhcm1hcF9jaG9vc2VfYmxvY2s6ICJCZXJlaWNoIGF1c3cmYXVtbDtobGVuIiwNCmNoYXJtYXBfaW5zZXJ0OiAiZGllc2VzIFplaWNoZW4gZWluZiZ1dW1sO2dlbiINCn0pOw0K]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/plugins/charmap/langs/dk.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ZWRpdEFyZWEuYWRkX2xhbmcoImRrIix7DQpjaGFybWFwX2J1dDogIlZpc3VhbCBrZXlib2FyZCIsDQpjaGFybWFwX3RpdGxlOiAiVmlzdWFsIGtleWJvYXJkIiwNCmNoYXJtYXBfY2hvb3NlX2Jsb2NrOiAic2VsZWN0IGxhbmd1YWdlIGJsb2NrIiwNCmNoYXJtYXBfaW5zZXJ0OiJpbnNlcnQgdGhpcyBjaGFyYWN0ZXIiDQp9KTsNCg==]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/plugins/charmap/langs/en.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ZWRpdEFyZWEuYWRkX2xhbmcoImVuIix7DQpjaGFybWFwX2J1dDogIlZpc3VhbCBrZXlib2FyZCIsDQpjaGFybWFwX3RpdGxlOiAiVmlzdWFsIGtleWJvYXJkIiwNCmNoYXJtYXBfY2hvb3NlX2Jsb2NrOiAic2VsZWN0IGxhbmd1YWdlIGJsb2NrIiwNCmNoYXJtYXBfaW5zZXJ0OiJpbnNlcnQgdGhpcyBjaGFyYWN0ZXIiDQp9KTsNCg==]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/plugins/charmap/langs/eo.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ZWRpdEFyZWEuYWRkX2xhbmcoImVvIix7DQpjaGFybWFwX2J1dDogIkVrcmFua2xhdmFybyIsDQpjaGFybWFwX3RpdGxlOiAiRWtyYW5rbGF2YXJvIiwNCmNoYXJtYXBfY2hvb3NlX2Jsb2NrOiAiRWxla3RvIGRlIGxpbmd2byIsDQpjaGFybWFwX2luc2VydDoiZW5tZXRpIHRpdW4gc2lnbmFyb24iDQp9KTsNCg==]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/plugins/charmap/langs/es.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ZWRpdEFyZWEuYWRkX2xhbmcoImVzIix7DQpjaGFybWFwX2J1dDogIlZpc3VhbCBrZXlib2FyZCIsDQpjaGFybWFwX3RpdGxlOiAiVmlzdWFsIGtleWJvYXJkIiwNCmNoYXJtYXBfY2hvb3NlX2Jsb2NrOiAic2VsZWN0IGxhbmd1YWdlIGJsb2NrIiwNCmNoYXJtYXBfaW5zZXJ0OiJpbnNlcnQgdGhpcyBjaGFyYWN0ZXIiDQp9KTsNCg==]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/plugins/charmap/langs/fr.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ZWRpdEFyZWEuYWRkX2xhbmcoImZyIix7DQpjaGFybWFwX2J1dDogIkNsYXZpZXIgdmlzdWVsIiwNCmNoYXJtYXBfdGl0bGU6ICJDbGF2aWVyIHZpc3VlbCIsDQpjaGFybWFwX2Nob29zZV9ibG9jazogImNob2l4IGR1IGxhbmd1YWdlIiwNCmNoYXJtYXBfaW5zZXJ0OiJpbnMmZWFjdXRlO3JlciBjZSBjYXJhY3QmZWdyYXZlO3JlIg0KfSk7DQo=]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/plugins/charmap/langs/hr.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ZWRpdEFyZWEuYWRkX2xhbmcoImhyIix7DQpjaGFybWFwX2J1dDogIlZpcnR1YWxuYSB0aXBrb3ZuaWNhIiwNCmNoYXJtYXBfdGl0bGU6ICJWaXJ0dWFsbmEgdGlwa292bmljYSIsDQpjaGFybWFwX2Nob29zZV9ibG9jazogIk9kYWJlcmkgYmxvayBzIGplemlrb20iLA0KY2hhcm1hcF9pbnNlcnQ6IlViYWNpIHRhaiB6bmFrIg0KfSk7DQo=]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/plugins/charmap/langs/it.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ZWRpdEFyZWEuYWRkX2xhbmcoIml0Iix7DQpjaGFybWFwX2J1dDogIlRhc3RpZXJhIHZpc3VhbGUiLA0KY2hhcm1hcF90aXRsZTogIlRhc3RpZXJhIHZpc3VhbGUiLA0KY2hhcm1hcF9jaG9vc2VfYmxvY2s6ICJzZWxlemlvbmEgYmxvY2NvIiwNCmNoYXJtYXBfaW5zZXJ0OiJpbnNlcmlzY2kgcXVlc3RvIGNhcmF0dGVyZSINCn0pOw0K]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/plugins/charmap/langs/ja.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ZWRpdEFyZWEuYWRkX2xhbmcoImphIix7DQpjaGFybWFwX2J1dDogIlZpc3VhbCBrZXlib2FyZCIsDQpjaGFybWFwX3RpdGxlOiAiVmlzdWFsIGtleWJvYXJkIiwNCmNoYXJtYXBfY2hvb3NlX2Jsb2NrOiAic2VsZWN0IGxhbmd1YWdlIGJsb2NrIiwNCmNoYXJtYXBfaW5zZXJ0OiJpbnNlcnQgdGhpcyBjaGFyYWN0ZXIiDQp9KTsNCg==]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/plugins/charmap/langs/mk.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ZWRpdEFyZWEuYWRkX2xhbmcoIm1rbiIsew0KY2hhcm1hcF9idXQ6ICJWaXN1YWwga2V5Ym9hcmQiLA0KY2hhcm1hcF90aXRsZTogIlZpc3VhbCBrZXlib2FyZCIsDQpjaGFybWFwX2Nob29zZV9ibG9jazogInNlbGVjdCBsYW5ndWFnZSBibG9jayIsDQpjaGFybWFwX2luc2VydDoiaW5zZXJ0IHRoaXMgY2hhcmFjdGVyIg0KfSk7DQo=]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/plugins/charmap/langs/nl.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ZWRpdEFyZWEuYWRkX2xhbmcoIm5sIix7DQpjaGFybWFwX2J1dDogIlZpc3VlZWwgdG9ldHNlbmJvcmQiLA0KY2hhcm1hcF90aXRsZTogIlZpc3VlZWwgdG9ldHNlbmJvcmQiLA0KY2hhcm1hcF9jaG9vc2VfYmxvY2s6ICJLaWVzIGVlbiB0YWFsIGJsb2siLA0KY2hhcm1hcF9pbnNlcnQ6IlZvZWcgZGl0IHN5bWJvb2wgaW4iDQp9KTsNCg==]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/plugins/charmap/langs/pl.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[77u/ZWRpdEFyZWEuYWRkX2xhbmcoInBsIix7DQpjaGFybWFwX2J1dDogIktsYXdpYXR1cmEgZWtyYW5vd2EiLA0KY2hhcm1hcF90aXRsZTogIktsYXdpYXR1cmEgZWtyYW5vd2EiLA0KY2hhcm1hcF9jaG9vc2VfYmxvY2s6ICJ3eWJpZXJ6IGdydXDEmSB6bmFrw7N3IiwNCmNoYXJtYXBfaW5zZXJ0OiJ3c3RhdyB0ZW4gem5hayINCn0pOw0K]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/plugins/charmap/langs/pt.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ZWRpdEFyZWEuYWRkX2xhbmcoInB0Iix7DQpjaGFybWFwX2J1dDogIlZpc3VhbCBrZXlib2FyZCIsDQpjaGFybWFwX3RpdGxlOiAiVmlzdWFsIGtleWJvYXJkIiwNCmNoYXJtYXBfY2hvb3NlX2Jsb2NrOiAic2VsZWN0IGxhbmd1YWdlIGJsb2NrIiwNCmNoYXJtYXBfaW5zZXJ0OiJpbnNlcnQgdGhpcyBjaGFyYWN0ZXIiDQp9KTsNCg==]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/plugins/charmap/langs/ru.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ZWRpdEFyZWEuYWRkX2xhbmcoInJ1Iix7DQpjaGFybWFwX2J1dDogItCS0LjQt9GD0LDQu9GM0L3QsNGPINC60LvQsNCy0LjQsNGC0YPRgNCwIiwNCmNoYXJtYXBfdGl0bGU6ICLQktC40LfRg9Cw0LvRjNC90LDRjyDQutC70LDQstC40LDRgtGD0YDQsCIsDQpjaGFybWFwX2Nob29zZV9ibG9jazogItCy0YvQsdGA0LDRgtGMINGP0LfRi9C60L7QstC+0Lkg0LHQu9C+0LoiLA0KY2hhcm1hcF9pbnNlcnQ6ItCy0YHRgtCw0LLQuNGC0Ywg0Y3RgtC+0YIg0YHQuNC80LLQvtC7Ig0KfSk7DQo=]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/plugins/charmap/langs/sk.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ZWRpdEFyZWEuYWRkX2xhbmcoInNrIix7DQpjaGFybWFwX2J1dDogIlZpenXDoWxuYSBrbMOhdmVzbmljYSIsDQpjaGFybWFwX3RpdGxlOiAiVml6dcOhbG5hIGtsw6F2ZXNuaWNhIiwNCmNoYXJtYXBfY2hvb3NlX2Jsb2NrOiAidnliZXIgamF6eWtvdsO9IGJsb2siLA0KY2hhcm1hcF9pbnNlcnQ6ICJ2bG/FviB0ZW50byB6bmFrIg0KfSk7DQo=]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/plugins/charmap/langs/zh.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ZWRpdEFyZWEuYWRkX2xhbmcoInpoIix7DQpjaGFybWFwX2J1dDogIui9r+mUruebmCIsDQpjaGFybWFwX3RpdGxlOiAi6L2v6ZSu55uYIiwNCmNoYXJtYXBfY2hvb3NlX2Jsb2NrOiAi6YCJ5oup5LiA5Liq6K+t6KiA5Z2XIiwNCmNoYXJtYXBfaW5zZXJ0OiLmj5LlhaXmraTlrZfnrKYiDQp9KTsNCg==]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/plugins/charmap/popup.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMTEvRFREL3hodG1sMTEuZHRkIj4NCjxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiB4bWw6bGFuZz0iZW4iID4NCjxoZWFkPg0KPHRpdGxlPnskY2hhcm1hcF90aXRsZX08L3RpdGxlPg0KPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiIC8+DQo8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJjc3MvY2hhcm1hcC5jc3MiIC8+DQo8c2NyaXB0IGxhbmd1YWdlPSJKYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianNjcmlwdHMvbWFwLmpzIj4NCjwvc2NyaXB0Pg0KPC9oZWFkPg0KPGJvZHkgb25sb2FkPSdtYXBfbG9hZCgpJz4NCjxkaXYgaWQ9J3ByZXZpZXdfY29kZScgY2xhc3M9J3ByZXZpZXcnPjwvZGl2Pg0KPGRpdiBpZD0ncHJldmlld19jaGFyJyBjbGFzcz0ncHJldmlldyc+PC9kaXY+DQo8aDE+eyRjaGFybWFwX3RpdGxlfTo8L2gxPg0KPHNlbGVjdCBpZD0nc2VsZWN0X3JhbmdlJyBvbmNoYW5nZT0ncmVuZGVyQ2hhck1hcEhUTUwoKScgdGl0bGU9J3skY2hhcm1hcF9jaG9vc2VfYmxvY2t9Jz4NCjwvc2VsZWN0Pg0KPGRpdiBpZD0nY2hhcl9saXN0Jz4NCg0KPC9kaXY+DQoNCg0KDQo8L2JvZHk+DQo8L2h0bWw+DQo=]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/plugins/test/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/includes/edit_area/plugins/test/css/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/includes/edit_area/plugins/test/css/test.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[c2VsZWN0I3Rlc3Rfc2VsZWN0ew0KCWJhY2tncm91bmQtY29sb3I6ICNGRjAwMDA7DQp9DQo=]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/plugins/test/images/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/includes/edit_area/plugins/test/images/test.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhFAAUAJABAAAAAAEBASH5BAEAAAEALAAAAAAUABQAAAIuhI+pwe3fDJxP0mvvzLqCvn0eAnGOGYml6lEo8wbxzJ41KN9grPGY3vG5FERiAQA7]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/plugins/test/langs/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/includes/edit_area/plugins/test/langs/bg.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoNCiAqCUJ1bGdhcmlhbiB0cmFuc2xhdGlvbg0KICoJQXV0aG9yOgkJVmFsZW50aW4gSHJpc3Rvdg0KICoJQ29tcGFueToJU09GVEtJVCBCdWxnYXJpYW4NCiAqCVNpdGU6CQlodHRwOi8vd3d3LnNvZnRraXQtYmcuY29tDQogKi8NCmVkaXRBcmVhLmFkZF9sYW5nKCJiZyIsew0KdGVzdF9zZWxlY3Q6ICLQuNC30LHQtdGA0Lgg0YLQsNCzIiwNCnRlc3RfYnV0OiAi0YLQtdGB0YLQstCw0Lkg0LrQvtC/0LjQtdGC0L4iDQp9KTsNCg==]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/plugins/test/langs/cs.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ZWRpdEFyZWEuYWRkX2xhbmcoImNzIix7DQp0ZXN0X3NlbGVjdDogInNlbGVjdCB0YWciLA0KdGVzdF9idXQ6ICJ0ZXN0IGJ1dHRvbiINCn0pOw0K]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/plugins/test/langs/de.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ZWRpdEFyZWEuYWRkX2xhbmcoImRlIix7DQp0ZXN0X3NlbGVjdDogIlRhZyBhdXN3JmF1bWw7aGxlbiIsDQp0ZXN0X2J1dDogIlRlc3QgQnV0dG9uIg0KfSk7DQo=]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/plugins/test/langs/dk.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ZWRpdEFyZWEuYWRkX2xhbmcoImRrIix7DQp0ZXN0X3NlbGVjdDogInNlbGVjdCB0YWciLA0KdGVzdF9idXQ6ICJ0ZXN0IGJ1dHRvbiINCn0pOw0K]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/plugins/test/langs/en.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ZWRpdEFyZWEuYWRkX2xhbmcoImVuIix7DQp0ZXN0X3NlbGVjdDogInNlbGVjdCB0YWciLA0KdGVzdF9idXQ6ICJ0ZXN0IGJ1dHRvbiINCn0pOw0K]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/plugins/test/langs/eo.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ZWRpdEFyZWEuYWRkX2xhbmcoImVvIix7DQp0ZXN0X3NlbGVjdDoiZWxla3RvIGRlIG1hcmtvIiwNCnRlc3RfYnV0OiAicHJvdm8tYnV0b25vIg0KfSk7DQo=]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/plugins/test/langs/es.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ZWRpdEFyZWEuYWRkX2xhbmcoImVzIix7DQp0ZXN0X3NlbGVjdDogInNlbGVjdCB0YWciLA0KdGVzdF9idXQ6ICJ0ZXN0IGJ1dHRvbiINCn0pOw0K]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/plugins/test/langs/fr.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ZWRpdEFyZWEuYWRkX2xhbmcoImZyIix7DQp0ZXN0X3NlbGVjdDoiY2hvaXggYmFsaXNlIiwNCnRlc3RfYnV0OiAiYm91dG9uIGRlIHRlc3QiDQp9KTsNCg==]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/plugins/test/langs/hr.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ZWRpdEFyZWEuYWRkX2xhbmcoImhyIix7DQp0ZXN0X3NlbGVjdDogIk9kYWJlcmkgdGFnIiwNCnRlc3RfYnV0OiAiUHJvYm5hIHRpcGthIg0KfSk7DQo=]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/plugins/test/langs/it.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ZWRpdEFyZWEuYWRkX2xhbmcoIml0Iix7DQp0ZXN0X3NlbGVjdDogInNlbGV6aW9uYSB0YWciLA0KdGVzdF9idXQ6ICJwdWxzYW50ZSBkaSB0ZXN0Ig0KfSk7DQo=]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/plugins/test/langs/ja.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ZWRpdEFyZWEuYWRkX2xhbmcoImphIix7DQp0ZXN0X3NlbGVjdDogInNlbGVjdCB0YWciLA0KdGVzdF9idXQ6ICJ0ZXN0IGJ1dHRvbiINCn0pOw0K]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/plugins/test/langs/mk.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ZWRpdEFyZWEuYWRkX2xhbmcoIm1rIix7DQp0ZXN0X3NlbGVjdDogInNlbGVjdCB0YWciLA0KdGVzdF9idXQ6ICJ0ZXN0IGJ1dHRvbiINCn0pOw0K]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/plugins/test/langs/nl.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ZWRpdEFyZWEuYWRkX2xhbmcoIm5sIix7DQp0ZXN0X3NlbGVjdDogInNlbGVjdCB0YWciLA0KdGVzdF9idXQ6ICJ0ZXN0IGJ1dHRvbiINCn0pOw0K]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/plugins/test/langs/pl.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ZWRpdEFyZWEuYWRkX2xhbmcoInBsIix7DQp0ZXN0X3NlbGVjdDogInd5YmllcnogdGFnIiwNCnRlc3RfYnV0OiAidGVzdCINCn0pOw0K]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/plugins/test/langs/pt.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ZWRpdEFyZWEuYWRkX2xhbmcoInB0Iix7DQp0ZXN0X3NlbGVjdDogInNlbGVjdCB0YWciLA0KdGVzdF9idXQ6ICJ0ZXN0IGJ1dHRvbiINCn0pOw0K]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/plugins/test/langs/ru.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ZWRpdEFyZWEuYWRkX2xhbmcoInJ1Iix7DQp0ZXN0X3NlbGVjdDogItCy0YvQsdGA0LDRgtGMINGC0Y3QsyIsDQp0ZXN0X2J1dDogItGC0LXRgdGC0LjRgNC+0LLQsNGC0Ywg0LrQvdC+0L/QutGDIg0KfSk7DQo=]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/plugins/test/langs/sk.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ZWRpdEFyZWEuYWRkX2xhbmcoInNrIix7DQp0ZXN0X3NlbGVjdDogInZ5YmVyIHRhZyIsDQp0ZXN0X2J1dDogInRlc3RvdmFjaWUgdGxhxI1pZGxvIg0KfSk7DQo=]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/plugins/test/langs/zh.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ZWRpdEFyZWEuYWRkX2xhbmcoInpoIix7DQp0ZXN0X3NlbGVjdDogIumAieaLqeagh+etviIsDQp0ZXN0X2J1dDogIua1i+ivleaMiemSriINCn0pOw0K]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/plugins/test/test.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoqDQogKiBQbHVnaW4gZGVzaWduZWQgZm9yIHRlc3QgcHJ1cG9zZS4gSXQgYWRkIGEgYnV0dG9uICh0aGF0IG1hbmFnZSBhbiBhbGVydCkgYW5kIGEgc2VsZWN0ICh0aGF0IGFsbG93IHRvIGluc2VydCB0YWdzKSBpbiB0aGUgdG9vbGJhci4NCiAqIFRoaXMgcGx1Z2luIGFsc28gZGlzYWJsZSB0aGUgImYiIGtleSBpbiB0aGUgZWRpdGFyZWEsIGFuZCBsb2FkIGEgQ1NTIGFuZCBhIEpTIGZpbGUNCiAqLyAgDQp2YXIgRWRpdEFyZWFfdGVzdD0gew0KCS8qKg0KCSAqIEdldCBjYWxsZWQgb25jZSB0aGlzIGZpbGUgaXMgbG9hZGVkIChlZGl0QXJlYSBzdGlsbCBub3QgaW5pdGlhbGl6ZWQpDQoJICoNCgkgKiBAcmV0dXJuIG5vdGhpbmcJIA0KCSAqLwkgCSAJDQoJaW5pdDogZnVuY3Rpb24oKXsJDQoJCS8vCWFsZXJ0KCJ0ZXN0IGluaXQ6ICIrIHRoaXMuX3NvbWVJbnRlcm5hbEZ1bmN0aW9uKDIsIDMpKTsNCgkJZWRpdEFyZWEubG9hZF9jc3ModGhpcy5iYXNlVVJMKyJjc3MvdGVzdC5jc3MiKTsNCgkJZWRpdEFyZWEubG9hZF9zY3JpcHQodGhpcy5iYXNlVVJMKyJ0ZXN0Mi5qcyIpOw0KCX0NCgkvKioNCgkgKiBSZXR1cm5zIHRoZSBIVE1MIGNvZGUgZm9yIGEgc3BlY2lmaWMgY29udHJvbCBzdHJpbmcgb3IgZmFsc2UgaWYgdGhpcyBwbHVnaW4gZG9lc24ndCBoYXZlIHRoYXQgY29udHJvbC4NCgkgKiBBIGNvbnRyb2wgY2FuIGJlIGEgYnV0dG9uLCBzZWxlY3QgbGlzdCBvciBhbnkgb3RoZXIgSFRNTCBpdGVtIHRvIHByZXNlbnQgaW4gdGhlIEVkaXRBcmVhIHVzZXIgaW50ZXJmYWNlLg0KCSAqIExhbmd1YWdlIHZhcmlhYmxlcyBzdWNoIGFzIHskbGFuZ19zb21la2V5fSB3aWxsIGFsc28gYmUgcmVwbGFjZWQgd2l0aCBjb250ZW50cyBmcm9tDQoJICogdGhlIGxhbmd1YWdlIHBhY2tzLg0KCSAqIA0KCSAqIEBwYXJhbSB7c3RyaW5nfSBjdHJsX25hbWU6IHRoZSBuYW1lIG9mIHRoZSBjb250cm9sIHRvIGFkZAkgIA0KCSAqIEByZXR1cm4gSFRNTCBjb2RlIGZvciBhIHNwZWNpZmljIGNvbnRyb2wgb3IgZmFsc2UuDQoJICogQHR5cGUgc3RyaW5nCW9yIGJvb2xlYW4NCgkgKi8JDQoJLGdldF9jb250cm9sX2h0bWw6IGZ1bmN0aW9uKGN0cmxfbmFtZSl7DQoJCXN3aXRjaChjdHJsX25hbWUpew0KCQkJY2FzZSAidGVzdF9idXQiOg0KCQkJCS8vIENvbnRyb2wgaWQsIGJ1dHRvbiBpbWcsIGNvbW1hbmQNCgkJCQlyZXR1cm4gcGFyZW50LmVkaXRBcmVhTG9hZGVyLmdldF9idXR0b25faHRtbCgndGVzdF9idXQnLCAndGVzdC5naWYnLCAndGVzdF9jbWQnLCBmYWxzZSwgdGhpcy5iYXNlVVJMKTsNCgkJCWNhc2UgInRlc3Rfc2VsZWN0IjoNCgkJCQlodG1sPSAiPHNlbGVjdCBpZD0ndGVzdF9zZWxlY3QnIG9uY2hhbmdlPSdqYXZhc2NyaXB0OmVkaXRBcmVhLmV4ZWNDb21tYW5kKFwidGVzdF9zZWxlY3RfY2hhbmdlXCIpJyBmaWxlU3BlY2lmaWM9J25vJz4iDQoJCQkJCSsiCQkJPG9wdGlvbiB2YWx1ZT0nLTEnPnskdGVzdF9zZWxlY3R9PC9vcHRpb24+Ig0KCQkJCQkrIgkJCTxvcHRpb24gdmFsdWU9J2gxJz5oMTwvb3B0aW9uPiINCgkJCQkJKyIJCQk8b3B0aW9uIHZhbHVlPSdoMic+aDI8L29wdGlvbj4iDQoJCQkJCSsiCQkJPG9wdGlvbiB2YWx1ZT0naDMnPmgzPC9vcHRpb24+Ig0KCQkJCQkrIgkJCTxvcHRpb24gdmFsdWU9J2g0Jz5oNDwvb3B0aW9uPiINCgkJCQkJKyIJCQk8b3B0aW9uIHZhbHVlPSdoNSc+aDU8L29wdGlvbj4iDQoJCQkJCSsiCQkJPG9wdGlvbiB2YWx1ZT0naDYnPmg2PC9vcHRpb24+Ig0KCQkJCQkrIgkJPC9zZWxlY3Q+IjsNCgkJCQlyZXR1cm4gaHRtbDsNCgkJfQ0KCQlyZXR1cm4gZmFsc2U7DQoJfQ0KCS8qKg0KCSAqIEdldCBjYWxsZWQgb25jZSBFZGl0QXJlYSBpcyBmdWxseSBsb2FkZWQgYW5kIGluaXRpYWxpc2VkDQoJICoJIA0KCSAqIEByZXR1cm4gbm90aGluZw0KCSAqLwkgCSAJDQoJLG9ubG9hZDogZnVuY3Rpb24oKXsgDQoJCWFsZXJ0KCJ0ZXN0IGxvYWQiKTsNCgl9DQoJDQoJLyoqDQoJICogSXMgY2FsbGVkIGVhY2ggdGltZSB0aGUgdXNlciB0b3VjaCBhIGtleWJvYXJkIGtleS4NCgkgKgkgDQoJICogQHBhcmFtIChldmVudCkgZTogdGhlIGtleWRvd24gZXZlbnQNCgkgKiBAcmV0dXJuIHRydWUgLSBwYXNzIHRvIG5leHQgaGFuZGxlciBpbiBjaGFpbiwgZmFsc2UgLSBzdG9wIGNoYWluIGV4ZWN1dGlvbg0KCSAqIEB0eXBlIGJvb2xlYW4JIA0KCSAqLw0KCSxvbmtleWRvd246IGZ1bmN0aW9uKGUpew0KCQl2YXIgc3RyPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGUua2V5Q29kZSk7DQoJCS8vIGRlc2FjdGl2YXRlIHRoZSAiZiIgY2hhcmFjdGVyDQoJCWlmKHN0ci50b0xvd2VyQ2FzZSgpPT0iZiIpew0KCQkJcmV0dXJuIHRydWU7DQoJCX0NCgkJcmV0dXJuIGZhbHNlOw0KCX0NCgkNCgkvKioNCgkgKiBFeGVjdXRlcyBhIHNwZWNpZmljIGNvbW1hbmQsIHRoaXMgZnVuY3Rpb24gaGFuZGxlcyBwbHVnaW4gY29tbWFuZHMuDQoJICoNCgkgKiBAcGFyYW0ge3N0cmluZ30gY21kOiB0aGUgbmFtZSBvZiB0aGUgY29tbWFuZCBiZWluZyBleGVjdXRlZA0KCSAqIEBwYXJhbSB7dW5rbm93bn0gcGFyYW06IHRoZSBwYXJhbWV0ZXIgb2YgdGhlIGNvbW1hbmQJIA0KCSAqIEByZXR1cm4gdHJ1ZSAtIHBhc3MgdG8gbmV4dCBoYW5kbGVyIGluIGNoYWluLCBmYWxzZSAtIHN0b3AgY2hhaW4gZXhlY3V0aW9uDQoJICogQHR5cGUgYm9vbGVhbgkNCgkgKi8NCgksZXhlY0NvbW1hbmQ6IGZ1bmN0aW9uKGNtZCwgcGFyYW0pew0KCQkvLyBIYW5kbGUgY29tbWFuZHMNCgkJc3dpdGNoKGNtZCl7DQoJCQljYXNlICJ0ZXN0X3NlbGVjdF9jaGFuZ2UiOg0KCQkJCXZhciB2YWw9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0X3NlbGVjdCIpLnZhbHVlOw0KCQkJCWlmKHZhbCE9LTEpDQoJCQkJCXBhcmVudC5lZGl0QXJlYUxvYWRlci5pbnNlcnRUYWdzKGVkaXRBcmVhLmlkLCAiPCIrdmFsKyI+IiwgIjwvIit2YWwrIj4iKTsNCgkJCQlkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdF9zZWxlY3QiKS5vcHRpb25zWzBdLnNlbGVjdGVkPXRydWU7IA0KCQkJCXJldHVybiBmYWxzZTsNCgkJCWNhc2UgInRlc3RfY21kIjoNCgkJCQlhbGVydCgidXNlciBjbGlja2VkIG9uIHRlc3RfY21kIik7DQoJCQkJcmV0dXJuIGZhbHNlOw0KCQl9DQoJCS8vIFBhc3MgdG8gbmV4dCBoYW5kbGVyIGluIGNoYWluDQoJCXJldHVybiB0cnVlOw0KCX0NCgkNCgkvKioNCgkgKiBUaGlzIGlzIGp1c3QgYW4gaW50ZXJuYWwgcGx1Z2luIG1ldGhvZCwgcHJlZml4IGFsbCBpbnRlcm5hbCBtZXRob2RzIHdpdGggYSBfIGNoYXJhY3Rlci4NCgkgKiBUaGUgcHJlZml4IGlzIG5lZWRlZCBzbyB0aGV5IGRvZXNuJ3QgY29sbGlkZSB3aXRoIGZ1dHVyZSBFZGl0QXJlYSBjYWxsYmFjayBmdW5jdGlvbnMuDQoJICoNCgkgKiBAcGFyYW0ge3N0cmluZ30gYSBTb21lIGFyZzEuDQoJICogQHBhcmFtIHtzdHJpbmd9IGIgU29tZSBhcmcyLg0KCSAqIEByZXR1cm4gU29tZSByZXR1cm4uDQoJICogQHR5cGUgdW5rbm93bg0KCSAqLw0KCSxfc29tZUludGVybmFsRnVuY3Rpb24gOiBmdW5jdGlvbihhLCBiKSB7DQoJCXJldHVybiBhK2I7DQoJfQ0KfTsNCg0KLy8gQWRkcyB0aGUgcGx1Z2luIGNsYXNzIHRvIHRoZSBsaXN0IG9mIGF2YWlsYWJsZSBFZGl0QXJlYSBwbHVnaW5zDQplZGl0QXJlYS5hZGRfcGx1Z2luKCJ0ZXN0IiwgRWRpdEFyZWFfdGVzdCk7DQo=]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/plugins/test/test2.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[YWxlcnQoInRlc3QyLmpzIGlzIGxvYWRlZCBmcm9tIHRlc3QgcGx1Z2luIik7DQo=]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/regexp.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[CS8qRWRpdEFyZWEucHJvdG90eXBlLmNvbW1lbnRfb3JfcXVvdGVzPSBmdW5jdGlvbih2MCwgdjEsIHYyLCB2MywgdjQsdjUsdjYsdjcsdjgsdjksIHYxMCl7DQoJCW5ld19jbGFzcz0icXVvdGVzIjsNCgkJaWYodjYgJiYgdjYgIT0gdW5kZWZpbmVkICYmIHY2IT0iIikNCgkJCW5ld19jbGFzcz0iY29tbWVudHMiOw0KCQlyZXR1cm4gIsK1X18iKyBuZXdfY2xhc3MgKyJfX8K1Iit2MCsiwrVfRU5EX8K1IjsNCg0KCX07Ki8NCgkNCi8qCUVkaXRBcmVhLnByb3RvdHlwZS5odG1sVGFnPSBmdW5jdGlvbih2MCwgdjEsIHYyLCB2MywgdjQsdjUsdjYsdjcsdjgsdjksIHYxMCl7DQoJCXJlcz0iPHNwYW4gY2xhc3M9aHRtbFRhZz4iK3YyOw0KCQlhbGVydCgidjI6ICIrdjIrIiB2MzogIit2Myk7DQoJCXRhYj12My5zcGxpdCgiPSIpOw0KCQlhdHRyaWJ1dGVzPSIiOw0KCQlpZih0YWIubGVuZ3RoPjEpew0KCQkJYXR0cmlidXRlcz0iPHNwYW4gY2xhc3M9YXR0cmlidXRlPiIrdGFiWzBdKyI8L3NwYW4+PSI7DQoJCQlmb3IoaT0xOyBpPHRhYi5sZW5ndGgtMTsgaSsrKXsNCgkJCQljdXQ9dGFiW2ldLmxhc3RJbmRleE9mKCImbmJzcDsiKTsJCQkJDQoJCQkJYXR0cmlidXRlcys9IjxzcGFuIGNsYXNzPWF0dHJpYnV0ZVZhbD4iK3RhYltpXS5zdWJzdHIoMCxjdXQpKyI8L3NwYW4+IjsNCgkJCQlhdHRyaWJ1dGVzKz0iPHNwYW4gY2xhc3M9YXR0cmlidXRlPiIrdGFiW2ldLnN1YnN0cihjdXQpKyI8L3NwYW4+PSI7DQoJCQl9DQoJCQlhdHRyaWJ1dGVzKz0iPHNwYW4gY2xhc3M9YXR0cmlidXRlVmFsPiIrdGFiW3RhYi5sZW5ndGgtMV0rIjwvc3Bhbj4iOw0KCQl9CQkNCgkJcmVzKz1hdHRyaWJ1dGVzK3Y1KyI8L3NwYW4+IjsNCgkJcmV0dXJuIHJlczsJCQ0KCX07Ki8NCgkNCgkvLyBkZXRlcm1pbmUgaWYgdGhlIHNlbGVjdGVkIHRleHQgaWYgYSBjb21tZW50IG9yIGEgcXVvdGVkIHRleHQNCglFZGl0QXJlYS5wcm90b3R5cGUuY29tbWVudF9vcl9xdW90ZT0gZnVuY3Rpb24oKXsNCgkJdmFyIG5ld19jbGFzcz0iIiwgY2xvc2VfdGFnPSIiLCBzeSwgYXJnLCBpOw0KCQlzeSAJCT0gcGFyZW50LmVkaXRBcmVhTG9hZGVyLnN5bnRheFtlZGl0QXJlYS5jdXJyZW50X2NvZGVfbGFuZ107DQoJCWFyZwkJPSBFZGl0QXJlYS5wcm90b3R5cGUuY29tbWVudF9vcl9xdW90ZS5hcmd1bWVudHNbMF07DQoJCQ0KCQlmb3IoIGkgaW4gc3lbInF1b3RlcyJdICl7DQoJCQlpZihhcmcuaW5kZXhPZihpKT09MCl7DQoJCQkJbmV3X2NsYXNzPSJxdW90ZXNtYXJrcyI7DQoJCQkJY2xvc2VfdGFnPXN5WyJxdW90ZXMiXVtpXTsNCgkJCX0NCgkJfQ0KCQlpZihuZXdfY2xhc3MubGVuZ3RoPT0wKQ0KCQl7DQoJCQlmb3IodmFyIGkgaW4gc3lbImNvbW1lbnRzIl0pew0KCQkJCWlmKCBhcmcuaW5kZXhPZihpKT09MCApew0KCQkJCQluZXdfY2xhc3M9ImNvbW1lbnRzIjsNCgkJCQkJY2xvc2VfdGFnPXN5WyJjb21tZW50cyJdW2ldOw0KCQkJCX0NCgkJCX0NCgkJfQ0KCQkvLyBmb3Igc2luZ2xlIGxpbmUgY29tbWVudCB0aGUgXG4gbXVzdCBub3QgYmUgaW5jbHVkZWQgaW4gdGhlIHNwYW4gdGFncw0KCQlpZihjbG9zZV90YWc9PSJcbiIpew0KCQkJcmV0dXJuICLCtV9fIisgbmV3X2NsYXNzICsiX1/CtSIrIGFyZy5yZXBsYWNlKC8oXHI/XG4pPyQvbSwgIsK1X0VORF/CtSQxIik7DQoJCX1lbHNlew0KCQkJLy8gdGhlIGNsb3NpbmcgdGFnIG11c3QgYmUgc2V0IG9ubHkgaWYgdGhlIGNvbW1lbnQgb3IgcXVvdGVzIGlzIGNsb3NlZCANCgkJCXJlZz0gbmV3IFJlZ0V4cChwYXJlbnQuZWRpdEFyZWFMb2FkZXIuZ2V0X2VzY2FwZWRfcmVnZXhwKGNsb3NlX3RhZykrIiQiLCAibSIpOw0KCQkJaWYoIGFyZy5zZWFyY2gocmVnKSE9LTEgKQ0KCQkJCXJldHVybiAiwrVfXyIrIG5ld19jbGFzcyArIl9fwrUiKyBhcmcgKyLCtV9FTkRfwrUiOw0KCQkJZWxzZQ0KCQkJCXJldHVybiAiwrVfXyIrIG5ld19jbGFzcyArIl9fwrUiKyBhcmc7DQoJCX0NCgl9Ow0KCQ0KLyoNCgkvLyBhcHBseSBzcGVjaWFsIHRhZ3MgYXJyb3VuZCB0ZXh0IHRvIGhpZ2hsaWdodA0KCUVkaXRBcmVhLnByb3RvdHlwZS5jdXN0b21faGlnaGxpZ2h0PSBmdW5jdGlvbigpew0KCQlyZXM9IEVkaXRBcmVhLnByb3RvdHlwZS5jdXN0b21faGlnaGxpZ2h0LmFyZ3VtZW50c1sxXSsiwrVfXyIrIGVkaXRBcmVhLnJlZ19leHBfc3Bhbl90YWcgKyJfX8K1IiArIEVkaXRBcmVhLnByb3RvdHlwZS5jdXN0b21faGlnaGxpZ2h0LmFyZ3VtZW50c1syXSsiwrVfRU5EX8K1IjsNCgkJaWYoRWRpdEFyZWEucHJvdG90eXBlLmN1c3RvbV9oaWdobGlnaHQuYXJndW1lbnRzLmxlbmd0aD41KQ0KCQkJcmVzKz0gRWRpdEFyZWEucHJvdG90eXBlLmN1c3RvbV9oaWdobGlnaHQuYXJndW1lbnRzWyBFZGl0QXJlYS5wcm90b3R5cGUuY3VzdG9tX2hpZ2hsaWdodC5hcmd1bWVudHMubGVuZ3RoLTMgXTsNCgkJcmV0dXJuIHJlczsNCgl9Ow0KCSovDQoJDQoJLy8gcmV0dXJuIGlkZW50aWNhdGlvbiB0aGF0IGFsbG93IHRvIGtub3cgaWYgcmV2YWxpZGF0aW5nIG9ubHkgdGhlIHRleHQgbGluZSB3b24ndCBtYWtlIHRoZSBzeW50YXggZ28gbWFkDQoJRWRpdEFyZWEucHJvdG90eXBlLmdldF9zeW50YXhfdHJhY2U9IGZ1bmN0aW9uKHRleHQpew0KCQlpZih0aGlzLnNldHRpbmdzWyJzeW50YXgiXS5sZW5ndGg+MCAmJiBwYXJlbnQuZWRpdEFyZWFMb2FkZXIuc3ludGF4W3RoaXMuc2V0dGluZ3NbInN5bnRheCJdXVsic3ludGF4X3RyYWNlX3JlZ2V4cCJdKQ0KCQkJcmV0dXJuIHRleHQucmVwbGFjZShwYXJlbnQuZWRpdEFyZWFMb2FkZXIuc3ludGF4W3RoaXMuc2V0dGluZ3NbInN5bnRheCJdXVsic3ludGF4X3RyYWNlX3JlZ2V4cCJdLCAiJDMiKTsNCgl9Ow0KCQ0KCQkNCglFZGl0QXJlYS5wcm90b3R5cGUuY29sb3JpemVfdGV4dD0gZnVuY3Rpb24odGV4dCl7DQoJCS8vdGV4dD0iPGRpdiBpZD0ncmVzdWx0JyBjbGFzcz0nYXJlYScgc3R5bGU9J3Bvc2l0aW9uOiByZWxhdGl2ZTsgei1pbmRleDogNDsgaGVpZ2h0OiA1MDBweDsgb3ZlcmZsb3c6IHNjcm9sbDtib3JkZXI6IHNvbGlkIGJsYWNrIDFweDsnPiAiOw0KCSAgLyoJCQ0KCQlpZih0aGlzLmlzT3BlcmEpewkNCgkJCS8vIG9wZXJhIGNhbid0IHVzZSBwcmUgZWxlbWVudCB0YWJ1bGF0aW9uIGNhdXNlIGEgdGFiPTYgY2hhcnMgaW4gdGhlIHRleHRhcmVhIGFuZCA4IGNoYXJzIGluIHRoZSBwcmUgDQoJCQl0ZXh0PSB0aGlzLnJlcGxhY2VfdGFiKHRleHQpOw0KCQl9Ki8NCgkJDQoJCXRleHQ9ICIgIit0ZXh0OyAvLyBmb3IgZWFzaWVyIHJlZ0V4cA0KCQkNCgkJLyppZih0aGlzLmRvX2h0bWxfdGFncykNCgkJCXRleHQ9IHRleHQucmVwbGFjZSgvKDxbYS16XSsgW14+XSo+KS9naSwgJ1tfX2h0bWxUYWdfX10kMVtfRU5EX10nKTsqLw0KCQlpZih0aGlzLnNldHRpbmdzWyJzeW50YXgiXS5sZW5ndGg+MCkNCgkJCXRleHQ9IHRoaXMuYXBwbHlfc3ludGF4KHRleHQsIHRoaXMuc2V0dGluZ3NbInN5bnRheCJdKTsNCg0KCQkvLyByZW1vdmUgdGhlIGZpcnN0IHNwYWNlIGFkZGVkDQoJCXJldHVybiB0ZXh0LnN1YnN0cigxKS5yZXBsYWNlKC8mL2csIiZhbXA7IikucmVwbGFjZSgvPC9nLCImbHQ7IikucmVwbGFjZSgvPi9nLCImZ3Q7IikucmVwbGFjZSgvwrVfRU5EX8K1L2csIjwvc3Bhbj4iKS5yZXBsYWNlKC/CtV9fKFthLXpBLVowLTldKylfX8K1L2csIjxzcGFuIGNsYXNzPSckMSc+Iik7DQoJfTsNCgkNCglFZGl0QXJlYS5wcm90b3R5cGUuYXBwbHlfc3ludGF4PSBmdW5jdGlvbih0ZXh0LCBsYW5nKXsNCgkJdmFyIHN5Ow0KCQl0aGlzLmN1cnJlbnRfY29kZV9sYW5nPWxhbmc7DQoJDQoJCWlmKCFwYXJlbnQuZWRpdEFyZWFMb2FkZXIuc3ludGF4W2xhbmddKQ0KCQkJcmV0dXJuIHRleHQ7DQoJCQkNCgkJc3kgPSBwYXJlbnQuZWRpdEFyZWFMb2FkZXIuc3ludGF4W2xhbmddOw0KCQlpZihzeVsiY3VzdG9tX3JlZ2V4cCJdWydiZWZvcmUnXSl7DQoJCQlmb3IoIHZhciBpIGluIHN5WyJjdXN0b21fcmVnZXhwIl1bJ2JlZm9yZSddKXsNCgkJCQl2YXIgY29udmVydD0iJDHCtV9fIisgc3lbImN1c3RvbV9yZWdleHAiXVsnYmVmb3JlJ11baV1bJ2NsYXNzJ10gKyJfX8K1JDLCtV9FTkRfwrUkMyI7DQoJCQkJdGV4dD0gdGV4dC5yZXBsYWNlKHN5WyJjdXN0b21fcmVnZXhwIl1bJ2JlZm9yZSddW2ldWydyZWdleHAnXSwgY29udmVydCk7DQoJCQl9DQoJCX0NCgkJDQoJCWlmKHN5WyJjb21tZW50X29yX3F1b3RlX3JlZ19leHAiXSl7DQoJCQkvL3NldFRpbWVvdXQoIl8kKCdkZWJ1Z19hcmVhJykudmFsdWU9ZWRpdEFyZWEuY29tbWVudF9vcl9xdW90ZV9yZWdfZXhwOyIsIDUwMCk7DQoJCQl0ZXh0PSB0ZXh0LnJlcGxhY2Uoc3lbImNvbW1lbnRfb3JfcXVvdGVfcmVnX2V4cCJdLCB0aGlzLmNvbW1lbnRfb3JfcXVvdGUpOw0KCQl9DQoJCQ0KCQlpZihzeVsia2V5d29yZHNfcmVnX2V4cCJdKXsNCgkJCWZvcih2YXIgaSBpbiBzeVsia2V5d29yZHNfcmVnX2V4cCJdKXsJDQoJCQkJdGV4dD0gdGV4dC5yZXBsYWNlKHN5WyJrZXl3b3Jkc19yZWdfZXhwIl1baV0sICfCtV9fJytpKydfX8K1JDLCtV9FTkRfwrUnKTsNCgkJCX0JCQkNCgkJfQ0KCQkNCgkJaWYoc3lbImRlbGltaXRlcnNfcmVnX2V4cCJdKXsNCgkJCXRleHQ9IHRleHQucmVwbGFjZShzeVsiZGVsaW1pdGVyc19yZWdfZXhwIl0sICfCtV9fZGVsaW1pdGVyc19fwrUkMcK1X0VORF/CtScpOw0KCQl9CQkNCgkJDQoJCWlmKHN5WyJvcGVyYXRvcnNfcmVnX2V4cCJdKXsNCgkJCXRleHQ9IHRleHQucmVwbGFjZShzeVsib3BlcmF0b3JzX3JlZ19leHAiXSwgJ8K1X19vcGVyYXRvcnNfX8K1JDHCtV9FTkRfwrUnKTsNCgkJfQ0KCQkNCgkJaWYoc3lbImN1c3RvbV9yZWdleHAiXVsnYWZ0ZXInXSl7DQoJCQlmb3IoIHZhciBpIGluIHN5WyJjdXN0b21fcmVnZXhwIl1bJ2FmdGVyJ10pew0KCQkJCXZhciBjb252ZXJ0PSIkMcK1X18iKyBzeVsiY3VzdG9tX3JlZ2V4cCJdWydhZnRlciddW2ldWydjbGFzcyddICsiX1/CtSQywrVfRU5EX8K1JDMiOw0KCQkJCXRleHQ9IHRleHQucmVwbGFjZShzeVsiY3VzdG9tX3JlZ2V4cCJdWydhZnRlciddW2ldWydyZWdleHAnXSwgY29udmVydCk7CQkJDQoJCQl9DQoJCX0NCgkJCQ0KCQlyZXR1cm4gdGV4dDsNCgl9Ow0K]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/reg_syntax.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[CUVkaXRBcmVhTG9hZGVyLnByb3RvdHlwZS5nZXRfcmVnZXhwPSBmdW5jdGlvbih0ZXh0X2FycmF5KXsNCgkJLy9yZXM9IiggfD18XFxufFxccnxcXFt8XFwofMK1fCkoIjsNCgkJcmVzPSIoXFxiKSgiOw0KCQlmb3IoaT0wOyBpPHRleHRfYXJyYXkubGVuZ3RoOyBpKyspew0KCQkJaWYoaT4wKQ0KCQkJCXJlcys9InwiOw0KCQkJLy9yZXMrPSIoIisgdGFiX3RleHRbaV0gKyIpIjsNCgkJCS8vcmVzKz10YWJfdGV4dFtpXS5yZXBsYWNlKC8oXC58XD98XCp8XCt8XFx8XCh8XCl8XFt8XF18XHt8XH0pL2csICJcXCQxIik7DQoJCQlyZXMrPXRoaXMuZ2V0X2VzY2FwZWRfcmVnZXhwKHRleHRfYXJyYXlbaV0pOw0KCQl9DQoJCS8vcmVzKz0iKSggfFxcLnw6fFxce3xcXCh8XFwpfFxcW3xcXF18XCd8XCJ8XFxyfFxcbnxcXHR8JCkiOw0KCQlyZXMrPSIpKFxcYikiOw0KCQlyZWc9IG5ldyBSZWdFeHAocmVzKTsNCgkJDQoJCXJldHVybiByZXM7DQoJfTsNCgkNCgkNCglFZGl0QXJlYUxvYWRlci5wcm90b3R5cGUuZ2V0X2VzY2FwZWRfcmVnZXhwPSBmdW5jdGlvbihzdHIpew0KCQlyZXR1cm4gc3RyLnRvU3RyaW5nKCkucmVwbGFjZSgvKFwufFw/fFwqfFwrfFxcfFwofFwpfFxbfFxdfFx9fFx7fFwkfFxefFx8KS9nLCAiXFwkMSIpOw0KCX07DQoJDQoJRWRpdEFyZWFMb2FkZXIucHJvdG90eXBlLmluaXRfc3ludGF4X3JlZ2V4cD0gZnVuY3Rpb24oKXsNCgkJdmFyIGxhbmdfc3R5bGU9IHt9OwkNCgkJZm9yKHZhciBsYW5nIGluIHRoaXMubG9hZF9zeW50YXgpew0KCQkJaWYoIXRoaXMuc3ludGF4W2xhbmddKQkvLyBpbml0IHRoZSByZWdleHAgaWYgbm90IGFscmVhZHkgaW5pdGlhbGl6ZWQNCgkJCXsNCgkJCQl0aGlzLnN5bnRheFtsYW5nXT0ge307DQoJCQkJdGhpcy5zeW50YXhbbGFuZ11bImtleXdvcmRzX3JlZ19leHAiXT0ge307DQoJCQkJdGhpcy5rZXl3b3Jkc19yZWdfZXhwX25iPTA7DQoJCQkNCgkJCQlpZih0aGlzLmxvYWRfc3ludGF4W2xhbmddWydLRVlXT1JEUyddKXsNCgkJCQkJcGFyYW09ImciOw0KCQkJCQlpZih0aGlzLmxvYWRfc3ludGF4W2xhbmddWydLRVlXT1JEX0NBU0VfU0VOU0lUSVZFJ109PT1mYWxzZSkNCgkJCQkJCXBhcmFtKz0iaSI7DQoJCQkJCWZvcih2YXIgaSBpbiB0aGlzLmxvYWRfc3ludGF4W2xhbmddWydLRVlXT1JEUyddKXsNCgkJCQkJCWlmKHR5cGVvZih0aGlzLmxvYWRfc3ludGF4W2xhbmddWydLRVlXT1JEUyddW2ldKT09ImZ1bmN0aW9uIikgY29udGludWU7DQoJCQkJCQl0aGlzLnN5bnRheFtsYW5nXVsia2V5d29yZHNfcmVnX2V4cCJdW2ldPSBuZXcgUmVnRXhwKHRoaXMuZ2V0X3JlZ2V4cCggdGhpcy5sb2FkX3N5bnRheFtsYW5nXVsnS0VZV09SRFMnXVtpXSApLCBwYXJhbSk7DQoJCQkJCQl0aGlzLmtleXdvcmRzX3JlZ19leHBfbmIrKzsNCgkJCQkJfQ0KCQkJCX0NCgkJCQkNCgkJCQlpZih0aGlzLmxvYWRfc3ludGF4W2xhbmddWydPUEVSQVRPUlMnXSl7DQoJCQkJCXZhciBzdHI9IiI7DQoJCQkJCXZhciBuYj0wOw0KCQkJCQlmb3IodmFyIGkgaW4gdGhpcy5sb2FkX3N5bnRheFtsYW5nXVsnT1BFUkFUT1JTJ10pew0KCQkJCQkJaWYodHlwZW9mKHRoaXMubG9hZF9zeW50YXhbbGFuZ11bJ09QRVJBVE9SUyddW2ldKT09ImZ1bmN0aW9uIikgY29udGludWU7DQoJCQkJCQlpZihuYj4wKQ0KCQkJCQkJCXN0cis9InwiOwkJCQkNCgkJCQkJCXN0cis9dGhpcy5nZXRfZXNjYXBlZF9yZWdleHAodGhpcy5sb2FkX3N5bnRheFtsYW5nXVsnT1BFUkFUT1JTJ11baV0pOw0KCQkJCQkJbmIrKzsNCgkJCQkJfQ0KCQkJCQlpZihzdHIubGVuZ3RoPjApDQoJCQkJCQl0aGlzLnN5bnRheFtsYW5nXVsib3BlcmF0b3JzX3JlZ19leHAiXT0gbmV3IFJlZ0V4cCgiKCIrc3RyKyIpIiwiZyIpOw0KCQkJCX0NCgkJCQkNCgkJCQlpZih0aGlzLmxvYWRfc3ludGF4W2xhbmddWydERUxJTUlURVJTJ10pew0KCQkJCQl2YXIgc3RyPSIiOw0KCQkJCQl2YXIgbmI9MDsNCgkJCQkJZm9yKHZhciBpIGluIHRoaXMubG9hZF9zeW50YXhbbGFuZ11bJ0RFTElNSVRFUlMnXSl7DQoJCQkJCQlpZih0eXBlb2YodGhpcy5sb2FkX3N5bnRheFtsYW5nXVsnREVMSU1JVEVSUyddW2ldKT09ImZ1bmN0aW9uIikgY29udGludWU7DQoJCQkJCQlpZihuYj4wKQ0KCQkJCQkJCXN0cis9InwiOw0KCQkJCQkJc3RyKz10aGlzLmdldF9lc2NhcGVkX3JlZ2V4cCh0aGlzLmxvYWRfc3ludGF4W2xhbmddWydERUxJTUlURVJTJ11baV0pOw0KCQkJCQkJbmIrKzsNCgkJCQkJfQ0KCQkJCQlpZihzdHIubGVuZ3RoPjApDQoJCQkJCQl0aGlzLnN5bnRheFtsYW5nXVsiZGVsaW1pdGVyc19yZWdfZXhwIl09IG5ldyBSZWdFeHAoIigiK3N0cisiKSIsImciKTsNCgkJCQl9DQoJCQkJDQoJCQkJDQoJCS8vCQkvKCgiKFxcInxbXiJdKSoiPyl8KCcoXFwnfFteJ10pKic/KXwoLy8oLnxccnxcdCkqXG4pfCgvXCooLnxcbnxccnxcdCkqXCovKXwoPCEtLSgufFxufFxyfFx0KSotLT4pKS9naQ0KCQkJCXZhciBzeW50YXhfdHJhY2U9W107DQoJCQkJDQoJCS8vCQkvKCIoPzpbXiJcXF0qKFxcXFwpKihcXCI/KT8pKigifCQpKS9nDQoJCQkJDQoJCQkJdGhpcy5zeW50YXhbbGFuZ11bInF1b3RlcyJdPXt9Ow0KCQkJCXZhciBxdW90ZV90YWI9IFtdOw0KCQkJCWlmKHRoaXMubG9hZF9zeW50YXhbbGFuZ11bJ1FVT1RFTUFSS1MnXSl7DQoJCQkJCWZvcih2YXIgaSBpbiB0aGlzLmxvYWRfc3ludGF4W2xhbmddWydRVU9URU1BUktTJ10pewkNCgkJCQkJCWlmKHR5cGVvZih0aGlzLmxvYWRfc3ludGF4W2xhbmddWydRVU9URU1BUktTJ11baV0pPT0iZnVuY3Rpb24iKSBjb250aW51ZTsJCQkNCgkJCQkJCXZhciB4PXRoaXMuZ2V0X2VzY2FwZWRfcmVnZXhwKHRoaXMubG9hZF9zeW50YXhbbGFuZ11bJ1FVT1RFTUFSS1MnXVtpXSk7DQoJCQkJCQl0aGlzLnN5bnRheFtsYW5nXVsicXVvdGVzIl1beF09eDsNCgkJCQkJCS8vcXVvdGVfdGFiW3F1b3RlX3RhYi5sZW5ndGhdPSIoIit4KyIoPzpcXFxcIit4KyJ8W14iK3grIl0pKigiK3grInwkKSkiOw0KCQkJCQkJLy9wcmV2aW91cyB3b3JraW5nIDogcXVvdGVfdGFiW3F1b3RlX3RhYi5sZW5ndGhdPSIoIit4KyIoPzpbXiIreCsiXFxcXF0qKFxcXFxcXFxcKSooXFxcXCIreCsiPyk/KSooIit4KyJ8JCkpIjsNCgkJCQkJCXF1b3RlX3RhYltxdW90ZV90YWIubGVuZ3RoXT0iKCIrIHggKyIoXFxcXC58W14iKyB4ICsiXSkqKD86IisgeCArInwkKSkiOw0KCQkJCQkJDQoJCQkJCQlzeW50YXhfdHJhY2UucHVzaCh4KTsJCQkNCgkJCQkJfQkJCQ0KCQkJCX0NCgkJCQkJCQ0KCQkJCXRoaXMuc3ludGF4W2xhbmddWyJjb21tZW50cyJdPXt9Ow0KCQkJCWlmKHRoaXMubG9hZF9zeW50YXhbbGFuZ11bJ0NPTU1FTlRfU0lOR0xFJ10pew0KCQkJCQlmb3IodmFyIGkgaW4gdGhpcy5sb2FkX3N5bnRheFtsYW5nXVsnQ09NTUVOVF9TSU5HTEUnXSl7CQ0KCQkJCQkJaWYodHlwZW9mKHRoaXMubG9hZF9zeW50YXhbbGFuZ11bJ0NPTU1FTlRfU0lOR0xFJ11baV0pPT0iZnVuY3Rpb24iKSBjb250aW51ZTsJCQkJCQkNCgkJCQkJCXZhciB4PXRoaXMuZ2V0X2VzY2FwZWRfcmVnZXhwKHRoaXMubG9hZF9zeW50YXhbbGFuZ11bJ0NPTU1FTlRfU0lOR0xFJ11baV0pOw0KCQkJCQkJcXVvdGVfdGFiW3F1b3RlX3RhYi5sZW5ndGhdPSIoIit4KyIoLnxcXHJ8XFx0KSooXFxufCQpKSI7DQoJCQkJCQlzeW50YXhfdHJhY2UucHVzaCh4KTsNCgkJCQkJCXRoaXMuc3ludGF4W2xhbmddWyJjb21tZW50cyJdW3hdPSJcbiI7DQoJCQkJCX0JCQkNCgkJCQl9CQkNCgkJCQkvLyAoL1wqKC58W1xyXG5dKSo/XCovKQ0KCQkJCWlmKHRoaXMubG9hZF9zeW50YXhbbGFuZ11bJ0NPTU1FTlRfTVVMVEknXSl7DQoJCQkJCWZvcih2YXIgaSBpbiB0aGlzLmxvYWRfc3ludGF4W2xhbmddWydDT01NRU5UX01VTFRJJ10pew0KCQkJCQkJaWYodHlwZW9mKHRoaXMubG9hZF9zeW50YXhbbGFuZ11bJ0NPTU1FTlRfTVVMVEknXVtpXSk9PSJmdW5jdGlvbiIpIGNvbnRpbnVlOwkJCQkJCQkNCgkJCQkJCXZhciBzdGFydD10aGlzLmdldF9lc2NhcGVkX3JlZ2V4cChpKTsNCgkJCQkJCXZhciBlbmQ9dGhpcy5nZXRfZXNjYXBlZF9yZWdleHAodGhpcy5sb2FkX3N5bnRheFtsYW5nXVsnQ09NTUVOVF9NVUxUSSddW2ldKTsNCgkJCQkJCXF1b3RlX3RhYltxdW90ZV90YWIubGVuZ3RoXT0iKCIrc3RhcnQrIigufFxcbnxcXHIpKj8oIitlbmQrInwkKSkiOw0KCQkJCQkJc3ludGF4X3RyYWNlLnB1c2goc3RhcnQpOw0KCQkJCQkJc3ludGF4X3RyYWNlLnB1c2goZW5kKTsNCgkJCQkJCXRoaXMuc3ludGF4W2xhbmddWyJjb21tZW50cyJdW2ldPXRoaXMubG9hZF9zeW50YXhbbGFuZ11bJ0NPTU1FTlRfTVVMVEknXVtpXTsNCgkJCQkJfQkJCQ0KCQkJCX0JCQ0KCQkJCWlmKHF1b3RlX3RhYi5sZW5ndGg+MCkNCgkJCQkJdGhpcy5zeW50YXhbbGFuZ11bImNvbW1lbnRfb3JfcXVvdGVfcmVnX2V4cCJdPSBuZXcgUmVnRXhwKCIoIitxdW90ZV90YWIuam9pbigifCIpKyIpIiwiZ2kiKTsNCgkJCQkNCgkJCQlpZihzeW50YXhfdHJhY2UubGVuZ3RoPjApIC8vICAgLygoLnxcbikqPykoXFwqKCJ8J3xcL1wqfFwqXC98XC9cL3wkKSkvZw0KCQkJCQl0aGlzLnN5bnRheFtsYW5nXVsic3ludGF4X3RyYWNlX3JlZ2V4cCJdPSBuZXcgUmVnRXhwKCIoKC58XG4pKj8pKFxcXFwqKCIrIHN5bnRheF90cmFjZS5qb2luKCJ8IikgKyJ8JCkpIiwgImdtaSIpOw0KCQkJCQ0KCQkJCWlmKHRoaXMubG9hZF9zeW50YXhbbGFuZ11bJ1NDUklQVF9ERUxJTUlURVJTJ10pew0KCQkJCQl0aGlzLnN5bnRheFtsYW5nXVsic2NyaXB0X2RlbGltaXRlcnMiXT0ge307DQoJCQkJCWZvcih2YXIgaSBpbiB0aGlzLmxvYWRfc3ludGF4W2xhbmddWydTQ1JJUFRfREVMSU1JVEVSUyddKXsNCgkJCQkJCWlmKHR5cGVvZih0aGlzLmxvYWRfc3ludGF4W2xhbmddWydTQ1JJUFRfREVMSU1JVEVSUyddW2ldKT09ImZ1bmN0aW9uIikgY29udGludWU7CQkJCQkJCQ0KCQkJCQkJdGhpcy5zeW50YXhbbGFuZ11bInNjcmlwdF9kZWxpbWl0ZXJzIl1baV09IHRoaXMubG9hZF9zeW50YXhbbGFuZ11bJ1NDUklQVF9ERUxJTUlURVJTJ107DQoJCQkJCX0JCQkNCgkJCQl9DQoJCQkJDQoJCQkJdGhpcy5zeW50YXhbbGFuZ11bImN1c3RvbV9yZWdleHAiXT0ge307DQoJCQkJaWYodGhpcy5sb2FkX3N5bnRheFtsYW5nXVsnUkVHRVhQUyddKXsNCgkJCQkJZm9yKHZhciBpIGluIHRoaXMubG9hZF9zeW50YXhbbGFuZ11bJ1JFR0VYUFMnXSl7DQoJCQkJCQlpZih0eXBlb2YodGhpcy5sb2FkX3N5bnRheFtsYW5nXVsnUkVHRVhQUyddW2ldKT09ImZ1bmN0aW9uIikgY29udGludWU7DQoJCQkJCQl2YXIgdmFsPSB0aGlzLmxvYWRfc3ludGF4W2xhbmddWydSRUdFWFBTJ11baV07DQoJCQkJCQlpZighdGhpcy5zeW50YXhbbGFuZ11bImN1c3RvbV9yZWdleHAiXVt2YWxbJ2V4ZWN1dGUnXV0pDQoJCQkJCQkJdGhpcy5zeW50YXhbbGFuZ11bImN1c3RvbV9yZWdleHAiXVt2YWxbJ2V4ZWN1dGUnXV09IHt9Ow0KCQkJCQkJdGhpcy5zeW50YXhbbGFuZ11bImN1c3RvbV9yZWdleHAiXVt2YWxbJ2V4ZWN1dGUnXV1baV09eydyZWdleHAnIDogbmV3IFJlZ0V4cCh2YWxbJ3NlYXJjaCddLCB2YWxbJ21vZGlmaWVycyddKQ0KCQkJCQkJCQkJCQkJCQkJCQkJCSwgJ2NsYXNzJyA6IHZhbFsnY2xhc3MnXX07DQoJCQkJCX0NCgkJCQl9DQoJCQkJDQoJCQkJaWYodGhpcy5sb2FkX3N5bnRheFtsYW5nXVsnU1RZTEVTJ10pewkJCQkJCQkNCgkJCQkJbGFuZ19zdHlsZVtsYW5nXT0ge307DQoJCQkJCWZvcih2YXIgaSBpbiB0aGlzLmxvYWRfc3ludGF4W2xhbmddWydTVFlMRVMnXSl7DQoJCQkJCQlpZih0eXBlb2YodGhpcy5sb2FkX3N5bnRheFtsYW5nXVsnU1RZTEVTJ11baV0pPT0iZnVuY3Rpb24iKSBjb250aW51ZTsNCgkJCQkJCWlmKHR5cGVvZih0aGlzLmxvYWRfc3ludGF4W2xhbmddWydTVFlMRVMnXVtpXSkgIT0gInN0cmluZyIpew0KCQkJCQkJCWZvcih2YXIgaiBpbiB0aGlzLmxvYWRfc3ludGF4W2xhbmddWydTVFlMRVMnXVtpXSl7CQkJCQkJCQ0KCQkJCQkJCQlsYW5nX3N0eWxlW2xhbmddW2pdPSB0aGlzLmxvYWRfc3ludGF4W2xhbmddWydTVFlMRVMnXVtpXVtqXTsNCgkJCQkJCQl9DQoJCQkJCQl9ZWxzZXsNCgkJCQkJCQlsYW5nX3N0eWxlW2xhbmddW2ldPSB0aGlzLmxvYWRfc3ludGF4W2xhbmddWydTVFlMRVMnXVtpXTsNCgkJCQkJCX0NCgkJCQkJfQ0KCQkJCX0NCgkJCQkvLyBidWlsZCBzdHlsZSBzdHJpbmcNCgkJCQl2YXIgc3R5bGU9IiI7CQkNCgkJCQlmb3IodmFyIGkgaW4gbGFuZ19zdHlsZVtsYW5nXSl7DQoJCQkJCWlmKGxhbmdfc3R5bGVbbGFuZ11baV0ubGVuZ3RoPjApew0KCQkJCQkJc3R5bGUrPSAiLiIrIGxhbmcgKyIgLiIrIGkudG9Mb3dlckNhc2UoKSArIiBzcGFueyIrbGFuZ19zdHlsZVtsYW5nXVtpXSsifVxuIjsNCgkJCQkJCXN0eWxlKz0gIi4iKyBsYW5nICsiIC4iKyBpLnRvTG93ZXJDYXNlKCkgKyJ7IitsYW5nX3N0eWxlW2xhbmddW2ldKyJ9XG4iOwkJCQkNCgkJCQkJfQ0KCQkJCX0NCgkJCQl0aGlzLnN5bnRheFtsYW5nXVsic3R5bGVzIl09c3R5bGU7DQoJCQl9DQoJCX0JCQkJDQoJfTsNCgkNCgllZGl0QXJlYUxvYWRlci53YWl0aW5nX2xvYWRpbmdbInJlZ19zeW50YXguanMiXT0gImxvYWRlZCI7DQo=]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/reg_syntax/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/includes/edit_area/reg_syntax/basic.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ZWRpdEFyZWFMb2FkZXIubG9hZF9zeW50YXhbImJhc2ljIl0gPSB7DQoJJ0RJU1BMQVlfTkFNRScgOiAnQmFzaWMnDQoJLCdDT01NRU5UX1NJTkdMRScgOiB7MSA6ICInIiwgMiA6ICdyZW0nfQ0KCSwnQ09NTUVOVF9NVUxUSScgOiB7IH0NCgksJ1FVT1RFTUFSS1MnIDogezE6ICciJ30NCgksJ0tFWVdPUkRfQ0FTRV9TRU5TSVRJVkUnIDogZmFsc2UNCgksJ0tFWVdPUkRTJyA6IHsNCgkJJ3N0YXRlbWVudHMnIDogWw0KCQkJJ2lmJywndGhlbicsJ2ZvcicsJ3dlbmQnLCd3aGlsZScsDQoJCQknZWxzZScsJ2Vsc2VpZicsJ3NlbGVjdCcsJ2Nhc2UnLCdlbmQgc2VsZWN0JywNCgkJCSd1bnRpbCcsJ25leHQnLCdzdGVwJywndG8nLCdlbmQgaWYnLCAnY2FsbCcNCgkJXQ0KCQksJ2tleXdvcmRzJyA6IFsNCgkJCSdzdWInLCAnZW5kIHN1YicsICdmdW5jdGlvbicsICdlbmQgZnVuY3Rpb24nLCAnZXhpdCcsDQoJCQknZXhpdCBmdW5jdGlvbicsICdkaW0nLCAncmVkaW0nLCAnc2hhcmVkJywgJ2NvbnN0JywNCgkJCSdpcycsICdhYnNvbHV0ZScsICdhY2Nlc3MnLCAnYW55JywgJ2FwcGVuZCcsICdhcycsDQoJCQknYmFzZScsICdiZWVwJywgJ2JpbmFyeScsICdibG9hZCcsICdic2F2ZScsICdjaGFpbicsDQoJCQknY2hkaXInLCAnY2lyY2xlJywgJ2NsZWFyJywgJ2Nsb3NlJywgJ2NscycsICdjb2xvcicsDQoJCQknY29tJywgJ2NvbW1vbicsICdkYXRhJywgJ2RhdGUnLCAnZGVjbGFyZScsICdkZWYnLA0KCQkJJ2RlZmRibCcsICdkZWZpbnQnLCAnZGVmbG5nJywgJ2RlZnNuZycsICdkZWZzdHInLA0KCQkJJ2RvdWJsZScsICdkcmF3JywgJ2Vudmlyb24nLCAnZXJhc2UnLCAnZXJyb3InLCAnZmllbGQnLA0KCQkJJ2ZpbGVzJywgJ2ZuJywgJ2dldCcsICdnb3N1YicsICdnb3RvJywgJ2ludGVnZXInLCAna2V5JywNCgkJCSdraWxsJywgJ2xldCcsICdsaW5lJywgJ2xpc3QnLCAnbG9jYXRlJywgJ2xvY2snLCAnbG9uZycsDQoJCQknbHByaW50JywgJ2xzZXQnLCAnbWtkaXInLCAnbmFtZScsICdvZmYnLCAnb24nLCAnb3BlbicsDQoJCQknb3B0aW9uJywgJ291dCcsICdvdXRwdXQnLCAncGFpbnQnLCAncGFsZXR0ZScsICdwY29weScsDQoJCQkncG9rZScsICdwcmVzZXQnLCAncHJpbnQnLCAncHNldCcsICdwdXQnLCAncmFuZG9tJywNCgkJCSdyYW5kb21pemUnLCAncmVhZCcsICdyZXNldCcsICdyZXN0b3JlJywgJ3Jlc3VtZScsDQoJCQkncmV0dXJuJywgJ3JtZGlyJywgJ3JzZXQnLCAncnVuJywgJ3NjcmVlbicsICdzZWcnLA0KCQkJJ3NoZWxsJywgJ3NpbmdsZScsICdzbGVlcCcsICdzb3VuZCcsICdzdGF0aWMnLCAnc3RvcCcsDQoJCQknc3RyaWcnLCAnc3RyaW5nJywgJ3N3YXAnLCAnc3lzdGVtJywgJ3RpbWUnLCAndGltZXInLA0KCQkJJ3Ryb2ZmJywgJ3Ryb24nLCAndHlwZScsICd1bmxvY2snLCAndXNpbmcnLCAndmlldycsDQoJCQknd2FpdCcsICd3aWR0aCcsICd3aW5kb3cnLCAnd3JpdGUnDQoJICAgICAgICBdDQoJCSwnZnVuY3Rpb25zJyA6IFsNCgkJCSdhYnMnLCAnYXNjJywgJ2F0bicsICdjZGJsJywgJ2NocicsICdjaW50JywgJ2NsbmcnLA0KCQkJJ2NvcycsICdjc25nJywgJ2NzcmxpbicsICdjdmQnLCAnY3ZkbWJmJywgJ2N2aScsICdjdmwnLA0KCQkJJ2N2cycsICdjdnNtYmYnLCAnZW9mJywgJ2VyZGV2JywgJ2VybCcsICdlcnInLCAnZXhwJywNCgkJCSdmaWxlYXR0cicsICdmaXgnLCAnZnJlJywgJ2ZyZWVmaWxlJywgJ2hleCcsICdpbmtleScsDQoJCQknaW5wJywgJ2lucHV0JywgJ2luc3RyJywgJ2ludCcsICdpb2N0bCcsICdsYm91bmQnLA0KCQkJJ2xjYXNlJywgJ2xlZnQnLCAnbGVuJywgJ2xvYycsICdsb2YnLCAnbG9nJywgJ2xwb3MnLA0KCQkJJ2x0cmltJywgJ21pZCcsICdta2QnLCAnbWtkbWJmJywgJ21raScsICdta2wnLCAnbWtzJywNCgkJCSdta3NtYmYnLCAnb2N0JywgJ3BlZWsnLCAncGVuJywgJ3BsYXknLCAncG1hcCcsICdwb2ludCcsDQoJCQkncG9zJywgJ3JpZ2h0JywgJ3JuZCcsICdydHJpbScsICdzZWVrJywgJ3NnbicsICdzaW4nLA0KCQkJJ3NwYWNlJywgJ3NwYycsICdzcXInLCAnc3RpY2snLCAnc3RyJywgJ3RhYicsICd0YW4nLA0KCQkJJ3Vib3VuZCcsICd1Y2FzZScsICd2YWwnLCAndmFycHRyJywgJ3ZhcnNlZycNCgkJXQ0KCQksJ29wZXJhdG9ycycgOiBbDQoJCQknYW5kJywgJ2VxdicsICdpbXAnLCAnbW9kJywgJ25vdCcsICdvcicsICd4b3InDQoJCV0NCgl9DQoJLCdPUEVSQVRPUlMnIDpbDQoJCScrJywgJy0nLCAnLycsICcqJywgJz0nLCAnPCcsICc+JywgJyEnLCAnJicNCgldDQoJLCdERUxJTUlURVJTJyA6Ww0KCQknKCcsICcpJywgJ1snLCAnXScsICd7JywgJ30nDQoJXQ0KCSwnU1RZTEVTJyA6IHsNCgkJJ0NPTU1FTlRTJzogJ2NvbG9yOiAjOTlDQzAwOycNCgkJLCdRVU9URVNNQVJLUyc6ICdjb2xvcjogIzMzMzM5OTsnDQoJCSwnS0VZV09SRFMnIDogew0KCQkJJ2tleXdvcmRzJyA6ICdjb2xvcjogIzMzNjZGRjsnDQoJCQksJ2Z1bmN0aW9ucycgOiAnY29sb3I6ICMwMDAwRkY7Jw0KCQkJLCdzdGF0ZW1lbnRzJyA6ICdjb2xvcjogIzMzNjZGRjsnDQoJCQksJ29wZXJhdG9ycycgOiAnY29sb3I6ICNGRjAwMDA7Jw0KCQkJfQ0KCQksJ09QRVJBVE9SUycgOiAnY29sb3I6ICNGRjAwMDA7Jw0KCQksJ0RFTElNSVRFUlMnIDogJ2NvbG9yOiAjMDAwMEZGOycNCg0KCX0NCn07DQo=]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/reg_syntax/css.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ZWRpdEFyZWFMb2FkZXIubG9hZF9zeW50YXhbImNzcyJdID0gew0KCSdESVNQTEFZX05BTUUnIDogJ0NTUycNCgksJ0NPTU1FTlRfU0lOR0xFJyA6IHsxIDogJ0AnfQ0KCSwnQ09NTUVOVF9NVUxUSScgOiB7Jy8qJyA6ICcqLyd9DQoJLCdRVU9URU1BUktTJyA6IFsnIicsICInIl0NCgksJ0tFWVdPUkRfQ0FTRV9TRU5TSVRJVkUnIDogZmFsc2UNCgksJ0tFWVdPUkRTJyA6IHsNCgkJJ2F0dHJpYnV0ZXMnIDogWw0KCQkJJ2FxdWEnLCAnYXppbXV0aCcsICdiYWNrZ3JvdW5kLWF0dGFjaG1lbnQnLCAnYmFja2dyb3VuZC1jb2xvcicsDQoJCQknYmFja2dyb3VuZC1pbWFnZScsICdiYWNrZ3JvdW5kLXBvc2l0aW9uJywgJ2JhY2tncm91bmQtcmVwZWF0JywNCgkJCSdiYWNrZ3JvdW5kJywgJ2JvcmRlci1ib3R0b20tY29sb3InLCAnYm9yZGVyLWJvdHRvbS1zdHlsZScsDQoJCQknYm9yZGVyLWJvdHRvbS13aWR0aCcsICdib3JkZXItbGVmdC1jb2xvcicsICdib3JkZXItbGVmdC1zdHlsZScsDQoJCQknYm9yZGVyLWxlZnQtd2lkdGgnLCAnYm9yZGVyLXJpZ2h0JywgJ2JvcmRlci1yaWdodC1jb2xvcicsDQoJCQknYm9yZGVyLXJpZ2h0LXN0eWxlJywgJ2JvcmRlci1yaWdodC13aWR0aCcsICdib3JkZXItdG9wLWNvbG9yJywNCgkJCSdib3JkZXItdG9wLXN0eWxlJywgJ2JvcmRlci10b3Atd2lkdGgnLCdib3JkZXItYm90dG9tJywgJ2JvcmRlci1jb2xsYXBzZScsDQoJCQknYm9yZGVyLWxlZnQnLCAnYm9yZGVyLXdpZHRoJywgJ2JvcmRlci1jb2xvcicsICdib3JkZXItc3BhY2luZycsDQoJCQknYm9yZGVyLXN0eWxlJywgJ2JvcmRlci10b3AnLCAnYm9yZGVyJywgICdjYXB0aW9uLXNpZGUnLA0KCQkJJ2NsZWFyJywgJ2NsaXAnLCAnY29sb3InLCAnY29udGVudCcsICdjb3VudGVyLWluY3JlbWVudCcsICdjb3VudGVyLXJlc2V0JywNCgkJCSdjdWUtYWZ0ZXInLCAnY3VlLWJlZm9yZScsICdjdWUnLCAnY3Vyc29yJywgJ2RpcmVjdGlvbicsICdkaXNwbGF5JywNCgkJCSdlbGV2YXRpb24nLCAnZW1wdHktY2VsbHMnLCAnZmxvYXQnLCAnZm9udC1mYW1pbHknLCAnZm9udC1zaXplJywNCgkJCSdmb250LXNpemUtYWRqdXN0JywgJ2ZvbnQtc3RyZXRjaCcsICdmb250LXN0eWxlJywgJ2ZvbnQtdmFyaWFudCcsDQoJCQknZm9udC13ZWlnaHQnLCAnZm9udCcsICdoZWlnaHQnLCAnbGV0dGVyLXNwYWNpbmcnLCAnbGluZS1oZWlnaHQnLA0KCQkJJ2xpc3Qtc3R5bGUnLCAnbGlzdC1zdHlsZS1pbWFnZScsICdsaXN0LXN0eWxlLXBvc2l0aW9uJywgJ2xpc3Qtc3R5bGUtdHlwZScsDQoJCQknbWFyZ2luLWJvdHRvbScsICdtYXJnaW4tbGVmdCcsICdtYXJnaW4tcmlnaHQnLCAnbWFyZ2luLXRvcCcsICdtYXJnaW4nLA0KCQkJJ21hcmtlci1vZmZzZXQnLCAnbWFya3MnLCAnbWF4LWhlaWdodCcsICdtYXgtd2lkdGgnLCAnbWluLWhlaWdodCcsDQoJCQknbWluLXdpZHRoJywgJ29wYWNpdHknLCAnb3JwaGFucycsICdvdXRsaW5lJywgJ291dGxpbmUtY29sb3InLCAnb3V0bGluZS1zdHlsZScsDQoJCQknb3V0bGluZS13aWR0aCcsICdvdmVyZmxvdycsICdwYWRkaW5nLWJvdHRvbScsICdwYWRkaW5nLWxlZnQnLA0KCQkJJ3BhZGRpbmctcmlnaHQnLCAncGFkZGluZy10b3AnLCAncGFkZGluZycsICdwYWdlJywgJ3BhZ2UtYnJlYWstYWZ0ZXInLA0KCQkJJ3BhZ2UtYnJlYWstYmVmb3JlJywgJ3BhZ2UtYnJlYWstaW5zaWRlJywgJ3BhdXNlLWFmdGVyJywgJ3BhdXNlLWJlZm9yZScsDQoJCQkncGF1c2UnLCAncGl0Y2gnLCAncGl0Y2gtcmFuZ2UnLCAgJ3BsYXktZHVyaW5nJywgJ3Bvc2l0aW9uJywgJ3F1b3RlcycsDQoJCQkncmljaG5lc3MnLCAncmlnaHQnLCAnc2l6ZScsICdzcGVhay1oZWFkZXInLCAnc3BlYWstbnVtZXJhbCcsICdzcGVhay1wdW5jdHVhdGlvbicsDQoJCQknc3BlYWsnLCAnc3BlZWNoLXJhdGUnLCAnc3RyZXNzJywgJ3RhYmxlLWxheW91dCcsICd0ZXh0LWFsaWduJywgJ3RleHQtZGVjb3JhdGlvbicsDQoJCQkndGV4dC1pbmRlbnQnLCAndGV4dC1zaGFkb3cnLCAndGV4dC10cmFuc2Zvcm0nLCAndG9wJywgJ3VuaWNvZGUtYmlkaScsDQoJCQkndmVydGljYWwtYWxpZ24nLCAndmlzaWJpbGl0eScsICd2b2ljZS1mYW1pbHknLCAndm9sdW1lJywgJ3doaXRlLXNwYWNlJywgJ3dpZG93cycsDQoJCQknd2lkdGgnLCAnd29yZC1zcGFjaW5nJywgJ3otaW5kZXgnLCAnYm90dG9tJywgJ2xlZnQnDQoJCV0NCgkJLCd2YWx1ZXMnIDogWw0KCQkJJ2Fib3ZlJywgJ2Fic29sdXRlJywgJ2Fsd2F5cycsICdhcm1lbmlhbicsICdhdXJhbCcsICdhdXRvJywgJ2F2b2lkJywNCgkJCSdiYXNlbGluZScsICdiZWhpbmQnLCAnYmVsb3cnLCAnYmlkaS1vdmVycmlkZScsICdibGFjaycsICdibHVlJywgJ2JsaW5rJywgJ2Jsb2NrJywgJ2JvbGQnLCAnYm9sZGVyJywgJ2JvdGgnLA0KCQkJJ2NhcGl0YWxpemUnLCAnY2VudGVyLWxlZnQnLCAnY2VudGVyLXJpZ2h0JywgJ2NlbnRlcicsICdjaXJjbGUnLCAnY2prLWlkZW9ncmFwaGljJywgDQogICAgICAgICAgICAnY2xvc2UtcXVvdGUnLCAnY29sbGFwc2UnLCAnY29uZGVuc2VkJywgJ2NvbnRpbnVvdXMnLCAnY3JvcCcsICdjcm9zc2hhaXInLCAnY3Jvc3MnLCAnY3Vyc2l2ZScsDQoJCQknZGFzaGVkJywgJ2RlY2ltYWwtbGVhZGluZy16ZXJvJywgJ2RlY2ltYWwnLCAnZGVmYXVsdCcsICdkaWdpdHMnLCAnZGlzYycsICdkb3R0ZWQnLCAnZG91YmxlJywNCgkJCSdlLXJlc2l6ZScsICdlbWJlZCcsICdleHRyYS1jb25kZW5zZWQnLCAnZXh0cmEtZXhwYW5kZWQnLCAnZXhwYW5kZWQnLA0KCQkJJ2ZhbnRhc3knLCAnZmFyLWxlZnQnLCAnZmFyLXJpZ2h0JywgJ2Zhc3RlcicsICdmYXN0JywgJ2ZpeGVkJywgJ2Z1Y2hzaWEnLA0KCQkJJ2dlb3JnaWFuJywgJ2dyYXknLCAnZ3JlZW4nLCAnZ3Jvb3ZlJywgJ2hlYnJldycsICdoZWxwJywgJ2hpZGRlbicsICdoaWRlJywgJ2hpZ2hlcicsDQoJCQknaGlnaCcsICdoaXJhZ2FuYS1pcm9oYScsICdoaXJhZ2FuYScsICdpY29uJywgJ2luaGVyaXQnLCAnaW5saW5lLXRhYmxlJywgJ2lubGluZScsDQoJCQknaW5zZXQnLCAnaW5zaWRlJywgJ2ludmVydCcsICdpdGFsaWMnLCAnanVzdGlmeScsICdrYXRha2FuYS1pcm9oYScsICdrYXRha2FuYScsDQoJCQknbGFuZHNjYXBlJywgJ2xhcmdlcicsICdsYXJnZScsICdsZWZ0LXNpZGUnLCAnbGVmdHdhcmRzJywgJ2xldmVsJywgJ2xpZ2h0ZXInLCAnbGltZScsICdsaW5lLXRocm91Z2gnLCAnbGlzdC1pdGVtJywgJ2xvdWQnLCAnbG93ZXItYWxwaGEnLCAnbG93ZXItZ3JlZWsnLCAnbG93ZXItcm9tYW4nLCAnbG93ZXJjYXNlJywgJ2x0cicsICdsb3dlcicsICdsb3cnLA0KCQkJJ21hcm9vbicsICdtZWRpdW0nLCAnbWVzc2FnZS1ib3gnLCAnbWlkZGxlJywgJ21peCcsICdtb25vc3BhY2UnLA0KCQkJJ24tcmVzaXplJywgJ25hcnJvd2VyJywgJ25hdnknLCAnbmUtcmVzaXplJywgJ25vLWNsb3NlLXF1b3RlJywgJ25vLW9wZW4tcXVvdGUnLCAnbm8tcmVwZWF0JywgJ25vbmUnLCAnbm9ybWFsJywgJ25vd3JhcCcsICdudy1yZXNpemUnLA0KCQkJJ29ibGlxdWUnLCAnb2xpdmUnLCAnb25jZScsICdvcGVuLXF1b3RlJywgJ291dHNldCcsICdvdXRzaWRlJywgJ292ZXJsaW5lJywNCgkJCSdwb2ludGVyJywgJ3BvcnRyYWl0JywgJ3B1cnBsZScsICdweCcsDQoJCQkncmVkJywgJ3JlbGF0aXZlJywgJ3JlcGVhdC14JywgJ3JlcGVhdC15JywgJ3JlcGVhdCcsICdyZ2InLCAncmlkZ2UnLCAncmlnaHQtc2lkZScsICdyaWdodHdhcmRzJywNCgkJCSdzLXJlc2l6ZScsICdzYW5zLXNlcmlmJywgJ3Njcm9sbCcsICdzZS1yZXNpemUnLCAnc2VtaS1jb25kZW5zZWQnLCAnc2VtaS1leHBhbmRlZCcsICdzZXBhcmF0ZScsICdzZXJpZicsICdzaG93JywgJ3NpbGVudCcsICdzaWx2ZXInLCAnc2xvdycsICdzbG93ZXInLCAnc21hbGwtY2FwcycsICdzbWFsbC1jYXB0aW9uJywgJ3NtYWxsZXInLCAnc29mdCcsICdzb2xpZCcsICdzcGVsbC1vdXQnLCAnc3F1YXJlJywNCgkJCSdzdGF0aWMnLCAnc3RhdHVzLWJhcicsICdzdXBlcicsICdzdy1yZXNpemUnLA0KCQkJJ3RhYmxlLWNhcHRpb24nLCAndGFibGUtY2VsbCcsICd0YWJsZS1jb2x1bW4nLCAndGFibGUtY29sdW1uLWdyb3VwJywgJ3RhYmxlLWZvb3Rlci1ncm91cCcsICd0YWJsZS1oZWFkZXItZ3JvdXAnLCAndGFibGUtcm93JywgJ3RhYmxlLXJvdy1ncm91cCcsICd0ZWFsJywgJ3RleHQnLCAndGV4dC1ib3R0b20nLCAndGV4dC10b3AnLCAndGhpY2snLCAndGhpbicsICd0cmFuc3BhcmVudCcsDQoJCQkndWx0cmEtY29uZGVuc2VkJywgJ3VsdHJhLWV4cGFuZGVkJywgJ3VuZGVybGluZScsICd1cHBlci1hbHBoYScsICd1cHBlci1sYXRpbicsICd1cHBlci1yb21hbicsICd1cHBlcmNhc2UnLCAndXJsJywNCgkJCSd2aXNpYmxlJywNCgkJCSd3LXJlc2l6ZScsICd3YWl0JywgJ3doaXRlJywgJ3dpZGVyJywNCgkJCSd4LWZhc3QnLCAneC1oaWdoJywgJ3gtbGFyZ2UnLCAneC1sb3VkJywgJ3gtbG93JywgJ3gtc21hbGwnLCAneC1zb2Z0JywgJ3h4LWxhcmdlJywgJ3h4LXNtYWxsJywNCgkJCSd5ZWxsb3cnLCAneWVzJw0KCQldDQoJCSwnc3BlY2lhbHMnIDogWw0KCQkJJ2ltcG9ydGFudCcNCgkJXQ0KCX0NCgksJ09QRVJBVE9SUycgOlsNCgkJJzonLCAnOycsICchJywgJy4nLCAnIycNCgldDQoJLCdERUxJTUlURVJTJyA6Ww0KCQkneycsICd9Jw0KCV0NCgksJ1NUWUxFUycgOiB7DQoJCSdDT01NRU5UUyc6ICdjb2xvcjogI0FBQUFBQTsnDQoJCSwnUVVPVEVTTUFSS1MnOiAnY29sb3I6ICM2MzgxRjg7Jw0KCQksJ0tFWVdPUkRTJyA6IHsNCgkJCSdhdHRyaWJ1dGVzJyA6ICdjb2xvcjogIzQ4QkRERjsnDQoJCQksJ3ZhbHVlcycgOiAnY29sb3I6ICMyQjYwRkY7Jw0KCQkJLCdzcGVjaWFscycgOiAnY29sb3I6ICNGRjAwMDA7Jw0KCQkJfQ0KCQksJ09QRVJBVE9SUycgOiAnY29sb3I6ICNGRjAwRkY7Jw0KCQksJ0RFTElNSVRFUlMnIDogJ2NvbG9yOiAjNjBDQTAwOycNCgkJCQkNCgl9DQp9Ow0K]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/reg_syntax/html.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoNCiogbGFzdCB1cGRhdGU6IDIwMDYtMDgtMjQNCiovDQoNCmVkaXRBcmVhTG9hZGVyLmxvYWRfc3ludGF4WyJodG1sIl0gPSB7DQoJJ0RJU1BMQVlfTkFNRScgOiAnSFRNTCcNCgksJ0NPTU1FTlRfU0lOR0xFJyA6IHt9DQoJLCdDT01NRU5UX01VTFRJJyA6IHsnPCEtLScgOiAnLS0+J30NCgksJ1FVT1RFTUFSS1MnIDogezE6ICInIiwgMjogJyInfQ0KCSwnS0VZV09SRF9DQVNFX1NFTlNJVElWRScgOiBmYWxzZQ0KCSwnS0VZV09SRFMnIDogew0KCX0NCgksJ09QRVJBVE9SUycgOlsNCgldDQoJLCdERUxJTUlURVJTJyA6Ww0KCV0NCgksJ1JFR0VYUFMnIDogew0KCQknZG9jdHlwZScgOiB7DQoJCQknc2VhcmNoJyA6ICcoKSg8IURPQ1RZUEVbXj5dKj4pKCknDQoJCQksJ2NsYXNzJyA6ICdkb2N0eXBlJw0KCQkJLCdtb2RpZmllcnMnIDogJycNCgkJCSwnZXhlY3V0ZScgOiAnYmVmb3JlJyAvLyBiZWZvcmUgb3IgYWZ0ZXINCgkJfQ0KCQksJ3RhZ3MnIDogew0KCQkJJ3NlYXJjaCcgOiAnKDwpKC8/W2Etel1bXiBcclxuXHQ+XSopKFtePl0qPiknDQoJCQksJ2NsYXNzJyA6ICd0YWdzJw0KCQkJLCdtb2RpZmllcnMnIDogJ2dpJw0KCQkJLCdleGVjdXRlJyA6ICdiZWZvcmUnIC8vIGJlZm9yZSBvciBhZnRlcg0KCQl9DQoJCSwnYXR0cmlidXRlcycgOiB7DQoJCQknc2VhcmNoJyA6ICcoIHxcbnxccnxcdCkoW14gXHJcblx0PV0rKSg9KScNCgkJCSwnY2xhc3MnIDogJ2F0dHJpYnV0ZXMnDQoJCQksJ21vZGlmaWVycycgOiAnZycNCgkJCSwnZXhlY3V0ZScgOiAnYmVmb3JlJyAvLyBiZWZvcmUgb3IgYWZ0ZXINCgkJfQ0KCX0NCgksJ1NUWUxFUycgOiB7DQoJCSdDT01NRU5UUyc6ICdjb2xvcjogI0FBQUFBQTsnDQoJCSwnUVVPVEVTTUFSS1MnOiAnY29sb3I6ICM2MzgxRjg7Jw0KCQksJ0tFWVdPUkRTJyA6IHsNCgkJCX0NCgkJLCdPUEVSQVRPUlMnIDogJ2NvbG9yOiAjRTc3NUYwOycNCgkJLCdERUxJTUlURVJTJyA6ICcnDQoJCSwnUkVHRVhQUycgOiB7DQoJCQknYXR0cmlidXRlcyc6ICdjb2xvcjogI0IxQUM0MTsnDQoJCQksJ3RhZ3MnOiAnY29sb3I6ICNFNjIyNTM7Jw0KCQkJLCdkb2N0eXBlJzogJ2NvbG9yOiAjOERDRkI1OycNCgkJCSwndGVzdCc6ICdjb2xvcjogIzAwRkYwMDsnDQoJCX0JDQoJfQkJDQp9Ow0K]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/reg_syntax/js.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ZWRpdEFyZWFMb2FkZXIubG9hZF9zeW50YXhbImpzIl0gPSB7DQoJJ0RJU1BMQVlfTkFNRScgOiAnSmF2YXNjcmlwdCcNCgksJ0NPTU1FTlRfU0lOR0xFJyA6IHsxIDogJy8vJ30NCgksJ0NPTU1FTlRfTVVMVEknIDogeycvKicgOiAnKi8nfQ0KCSwnUVVPVEVNQVJLUycgOiB7MTogIiciLCAyOiAnIid9DQoJLCdLRVlXT1JEX0NBU0VfU0VOU0lUSVZFJyA6IGZhbHNlDQoJLCdLRVlXT1JEUycgOiB7DQoJCSdzdGF0ZW1lbnRzJyA6IFsNCgkJCSdhcycsICdicmVhaycsICdjYXNlJywgJ2NhdGNoJywgJ2NvbnRpbnVlJywgJ2RlY29kZVVSSScsICdkZWxldGUnLCAnZG8nLA0KCQkJJ2Vsc2UnLCAnZW5jb2RlVVJJJywgJ2V2YWwnLCAnZmluYWxseScsICdmb3InLCAnaWYnLCAnaW4nLCAnaXMnLCAnaXRlbScsDQoJCQknaW5zdGFuY2VvZicsICdyZXR1cm4nLCAnc3dpdGNoJywgJ3RoaXMnLCAndGhyb3cnLCAndHJ5JywgJ3R5cGVvZicsICd2b2lkJywNCgkJCSd3aGlsZScsICd3cml0ZScsICd3aXRoJw0KCQldDQogCQksJ2tleXdvcmRzJyA6IFsNCgkJCSdjbGFzcycsICdjb25zdCcsICdkZWZhdWx0JywgJ2RlYnVnZ2VyJywgJ2V4cG9ydCcsICdleHRlbmRzJywgJ2ZhbHNlJywNCgkJCSdmdW5jdGlvbicsICdpbXBvcnQnLCAnbmFtZXNwYWNlJywgJ25ldycsICdudWxsJywgJ3BhY2thZ2UnLCAncHJpdmF0ZScsDQoJCQkncHJvdGVjdGVkJywgJ3B1YmxpYycsICdzdXBlcicsICd0cnVlJywgJ3VzZScsICd2YXInLCAnd2luZG93JywgJ2RvY3VtZW50JywJCQ0KCQkJLy8gdGhlIGxpc3QgYmVsb3cgbXVzdCBiZSBzb3J0ZWQgYW5kIGNoZWNrZWQgKGlmIGl0IGlzIGEga2V5d29yZHMgb3IgYSBmdW5jdGlvbiBhbmQgaWYgaXQgaXMgbm90IHByZXNlbnQgdHdpY2UNCgkJCSdMaW5rICcsICdvdXRlckhlaWdodCAnLCAnQW5jaG9yJywgJ0ZpbGVVcGxvYWQnLCANCgkJCSdsb2NhdGlvbicsICdvdXRlcldpZHRoJywgJ1NlbGVjdCcsICdBcmVhJywgJ2ZpbmQnLCAnTG9jYXRpb24nLCAnUGFja2FnZXMnLCAnc2VsZicsIA0KCQkJJ2FyZ3VtZW50cycsICdsb2NhdGlvbmJhcicsICdwYWdlWG9mZnNldCcsICdGb3JtJywgDQoJCQknTWF0aCcsICdwYWdlWW9mZnNldCcsICdzZXRUaW1lb3V0JywgJ2Fzc2lnbicsICdGcmFtZScsICdtZW51YmFyJywgJ3BhcmVudCcsICdzdGF0dXMnLCANCgkJCSdibHVyJywgJ2ZyYW1lcycsICdNaW1lVHlwZScsICdwYXJzZUZsb2F0JywgJ3N0YXR1c2JhcicsICdCb29sZWFuJywgJ0Z1bmN0aW9uJywgJ21vdmVCeScsIA0KCQkJJ3BhcnNlSW50JywgJ3N0b3AnLCAnQnV0dG9uJywgJ2dldENsYXNzJywgJ21vdmVUbycsICdQYXNzd29yZCcsICdTdHJpbmcnLCAnY2FsbGVlJywgJ0hpZGRlbicsIA0KCQkJJ25hbWUnLCAncGVyc29uYWxiYXInLCAnU3VibWl0JywgJ2NhbGxlcicsICdoaXN0b3J5JywgJ05hTicsICdQbHVnaW4nLCAnc3VuJywgJ2NhcHR1cmVFdmVudHMnLCANCgkJCSdIaXN0b3J5JywgJ25hdmlnYXRlJywgJ3ByaW50JywgJ3RhaW50JywgJ0NoZWNrYm94JywgJ2hvbWUnLCAnbmF2aWdhdG9yJywgJ3Byb21wdCcsICdUZXh0JywgDQoJCQknSW1hZ2UnLCAnTmF2aWdhdG9yJywgJ3Byb3RvdHlwZScsICdUZXh0YXJlYScsICdjbGVhclRpbWVvdXQnLCAnSW5maW5pdHknLCANCgkJCSduZXRzY2FwZScsICdSYWRpbycsICd0b29sYmFyJywgJ2Nsb3NlJywgJ2lubmVySGVpZ2h0JywgJ051bWJlcicsICdyZWYnLCAndG9wJywgJ2Nsb3NlZCcsIA0KCQkJJ2lubmVyV2lkdGgnLCAnT2JqZWN0JywgJ1JlZ0V4cCcsICd0b1N0cmluZycsICdjb25maXJtJywgJ2lzRmluaXRlJywgJ29uQmx1cicsICdyZWxlYXNlRXZlbnRzJywgDQoJCQkndW5lc2NhcGUnLCAnY29uc3RydWN0b3InLCAnaXNOYW4nLCAnb25FcnJvcicsICdSZXNldCcsICd1bnRhaW50JywgJ0RhdGUnLCAnamF2YScsICdvbkZvY3VzJywgDQoJCQkncmVzaXplQnknLCAndW53YXRjaCcsICdkZWZhdWx0U3RhdHVzJywgJ0phdmFBcnJheScsICdvbkxvYWQnLCAncmVzaXplVG8nLCAndmFsdWVPZicsICdkb2N1bWVudCcsIA0KCQkJJ0phdmFDbGFzcycsICdvblVubG9hZCcsICdyb3V0ZUV2ZW50JywgJ3dhdGNoJywgJ0RvY3VtZW50JywgJ0phdmFPYmplY3QnLCAnb3BlbicsICdzY3JvbGwnLCAnd2luZG93JywgDQoJCQknRWxlbWVudCcsICdKYXZhUGFja2FnZScsICdvcGVuZXInLCAnc2Nyb2xsYmFycycsICdXaW5kb3cnLCAnZXNjYXBlJywgJ2xlbmd0aCcsICdPcHRpb24nLCAnc2Nyb2xsQnknCQkJDQoJCV0NCiAgICAJLCdmdW5jdGlvbnMnIDogWw0KCQkJLy8gY29tbW9uIGZ1bmN0aW9ucyBmb3IgV2luZG93IG9iamVjdA0KCQkJJ2FsZXJ0JywgJ0FycmF5JywgJ2JhY2snLCAnYmx1cicsICdjbGVhckludGVydmFsJywgJ2Nsb3NlJywgJ2NvbmZpcm0nLCAnZXZhbCAnLCAnZm9jdXMnLCAnZm9yd2FyZCcsICdob21lJywNCgkJCSduYW1lJywgJ25hdmlnYXRlJywgJ29uYmx1cicsICdvbmVycm9yJywgJ29uZm9jdXMnLCAnb25sb2FkJywgJ29ubW92ZScsDQoJCQknb25yZXNpemUnLCAnb251bmxvYWQnLCAnb3BlbicsICdwcmludCcsICdwcm9tcHQnLCAnc2Nyb2xsJywgJ3Njcm9sbFRvJywgJ3NldEludGVydmFsJywgJ3N0YXR1cycsDQoJCQknc3RvcCcgDQoJCV0NCgl9DQoJLCdPUEVSQVRPUlMnIDpbDQoJCScrJywgJy0nLCAnLycsICcqJywgJz0nLCAnPCcsICc+JywgJyUnLCAnIScNCgldDQoJLCdERUxJTUlURVJTJyA6Ww0KCQknKCcsICcpJywgJ1snLCAnXScsICd7JywgJ30nDQoJXQ0KCSwnU1RZTEVTJyA6IHsNCgkJJ0NPTU1FTlRTJzogJ2NvbG9yOiAjQUFBQUFBOycNCgkJLCdRVU9URVNNQVJLUyc6ICdjb2xvcjogIzYzODFGODsnDQoJCSwnS0VZV09SRFMnIDogew0KCQkJJ3N0YXRlbWVudHMnIDogJ2NvbG9yOiAjNjBDQTAwOycNCgkJCSwna2V5d29yZHMnIDogJ2NvbG9yOiAjNDhCRERGOycNCgkJCSwnZnVuY3Rpb25zJyA6ICdjb2xvcjogIzJCNjBGRjsnDQoJCX0NCgkJLCdPUEVSQVRPUlMnIDogJ2NvbG9yOiAjRkYwMEZGOycNCgkJLCdERUxJTUlURVJTJyA6ICdjb2xvcjogIzAwMzhFMTsnDQoJCQkJDQoJfQ0KCSwnQVVUT19DT01QTEVUSU9OJyA6ICB7DQoJCSJkZWZhdWx0IjogewkvLyB0aGUgbmFtZSBvZiB0aGlzIGRlZmluaXRpb24gZ3JvdXAuIEl0J3MgcG9zaXNibGUgdG8gaGF2ZSBkaWZmZXJlbnQgcnVsZXMgaW5zaWRlIHRoZSBzYW1lIGRlZmluaXRpb24gZmlsZQ0KCQkJIlJFR0VYUCI6IHsgImJlZm9yZV93b3JkIjogIlteYS16QS1aMC05X118XiIJLy8gXFxzfFxcLnwNCgkJCQkJCSwicG9zc2libGVfd29yZHNfbGV0dGVycyI6ICJbYS16QS1aMC05X10rIg0KCQkJCQkJLCJsZXR0ZXJfYWZ0ZXJfd29yZF9tdXN0X21hdGNoIjogIlteYS16QS1aMC05X118JCINCgkJCQkJCSwicHJlZml4X3NlcGFyYXRvciI6ICJcXC4iDQoJCQkJCX0NCgkJCSwiQ0FTRV9TRU5TSVRJVkUiOiB0cnVlDQoJCQksIk1BWF9URVhUX0xFTkdUSCI6IDEwMAkJLy8gdGhlIG1heGltdW0gbGVuZ3RoIG9mIHRoZSB0ZXh0IGJlaW5nIGFuYWx5emVkIGJlZm9yZSB0aGUgY3Vyc29yIHBvc2l0aW9uDQoJCQksIktFWVdPUkRTIjogew0KCQkJCScnOiBbCS8vIHRoZSBwcmVmaXggb2YgdGhvc2VzIGl0ZW1zDQoJCQkJCQkvKioNCgkJCQkJCSAqIDAgOiB0aGUga2V5d29yZCB0aGUgdXNlciBpcyB0eXBpbmcNCgkJCQkJCSAqIDEgOiAob3B0aW9ubmFsKSB0aGUgc3RyaW5nIGluc2VydGVkIGluIGNvZGUgKCJ7QH0iIGJlaW5nIHRoZSBuZXcgcG9zaXRpb24gb2YgdGhlIGN1cnNvciwgIsKnIiBiZWVpbmcgdGhlIGVxdWl2YWxlbnQgdG8gdGhlIHZhbHVlIHRoZSB0eXBlZCBzdHJpbmcgaW5kaWNhdGVkIGlmIHRoZSBwcmV2aW91cyApDQoJCQkJCQkgKiAJCUlmIGVtcHR5IHRoZSBrZXl3b3JkIHdpbGwgYmUgZGlzcGxheWVkDQoJCQkJCQkgKiAyIDogKG9wdGlvbm5hbCkgdGhlIHRleHQgdGhhdCBhcHBlYXIgaW4gdGhlIHN1Z2dlc3Rpb24gYm94IChpZiBlbXB0eSwgdGhlIHN0cmluZyB0byBpbnNlcnQgd2lsbCBiZSBkaXNwbGF5ZWQpDQoJCQkJCQkgKi8NCgkJCQkJCSBbJ0FycmF5JywgJ8KnKCknLCAnJ10NCgkJCSAgICAJCSxbJ2FsZXJ0JywgJ8KnKHtAfSknLCAnYWxlcnQoU3RyaW5nIG1lc3NhZ2UpJ10NCgkJCSAgICAJCSxbJ2RvY3VtZW50J10NCgkJCSAgICAJCSxbJ3dpbmRvdyddDQoJCQkgICAgCV0NCgkJICAgIAksJ3dpbmRvdycgOiBbDQoJCQkgICAgCQkgWydsb2NhdGlvbiddDQoJCQkgICAgCQksWydkb2N1bWVudCddDQoJCQkgICAgCQksWydzY3JvbGxUbycsICdzY3JvbGxUbyh7QH0pJywgJ3Njcm9sbFRvKEludCB4LEludCB5KSddDQoJCQkJCV0NCgkJICAgIAksJ2xvY2F0aW9uJyA6IFsNCgkJCSAgICAJCSBbJ2hyZWYnXQ0KCQkJCQldDQoJCQl9DQoJCX0NCgl9DQp9Ow0K]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/reg_syntax/php.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ZWRpdEFyZWFMb2FkZXIubG9hZF9zeW50YXhbInBocCJdID0gew0KCSdESVNQTEFZX05BTUUnIDogJ1BocCcNCgksJ0NPTU1FTlRfU0lOR0xFJyA6IHsxIDogJy8vJywgMiA6ICcjJ30NCgksJ0NPTU1FTlRfTVVMVEknIDogeycvKicgOiAnKi8nfQ0KCSwnUVVPVEVNQVJLUycgOiB7MTogIiciLCAyOiAnIid9DQoJLCdLRVlXT1JEX0NBU0VfU0VOU0lUSVZFJyA6IGZhbHNlDQoJLCdLRVlXT1JEUycgOiB7DQoJCSdzdGF0ZW1lbnRzJyA6IFsNCgkJCSdpbmNsdWRlJywgJ3JlcXVpcmUnLCAnaW5jbHVkZV9vbmNlJywgJ3JlcXVpcmVfb25jZScsDQoJCQknZm9yJywgJ2ZvcmVhY2gnLCAnYXMnLCAnaWYnLCAnZWxzZWlmJywgJ2Vsc2UnLCAnd2hpbGUnLCAnZG8nLCAnZW5kd2hpbGUnLA0KICAgICAgICAgICAgJ2VuZGlmJywgJ3N3aXRjaCcsICdjYXNlJywgJ2VuZHN3aXRjaCcsDQoJCQkncmV0dXJuJywgJ2JyZWFrJywgJ2NvbnRpbnVlJw0KCQldDQoJCSwncmVzZXJ2ZWQnIDogWw0KCQkJJ19HRVQnLCAnX1BPU1QnLCAnX1NFU1NJT04nLCAnX1NFUlZFUicsICdfRklMRVMnLCAnX0VOVicsICdfQ09PS0lFJywgJ19SRVFVRVNUJywNCgkJCSdudWxsJywgJ19fTElORV9fJywgJ19fRklMRV9fJywNCgkJCSdmYWxzZScsICcmbHQ7P3BocCcsICc/Jmd0OycsICcmbHQ7PycsDQoJCQknJmx0O3NjcmlwdCBsYW5ndWFnZScsICcmbHQ7L3NjcmlwdCZndDsnLA0KCQkJJ3RydWUnLCAndmFyJywgJ2RlZmF1bHQnLA0KCQkJJ2Z1bmN0aW9uJywgJ2NsYXNzJywgJ25ldycsICcmYW1wO25ldycsICd0aGlzJywNCgkJCSdfX0ZVTkNUSU9OX18nLCAnX19DTEFTU19fJywgJ19fTUVUSE9EX18nLCAnUEhQX1ZFUlNJT04nLA0KCQkJJ1BIUF9PUycsICdERUZBVUxUX0lOQ0xVREVfUEFUSCcsICdQRUFSX0lOU1RBTExfRElSJywgJ1BFQVJfRVhURU5TSU9OX0RJUicsDQoJCQknUEhQX0VYVEVOU0lPTl9ESVInLCAnUEhQX0JJTkRJUicsICdQSFBfTElCRElSJywgJ1BIUF9EQVRBRElSJywgJ1BIUF9TWVNDT05GRElSJywNCgkJCSdQSFBfTE9DQUxTVEFURURJUicsICdQSFBfQ09ORklHX0ZJTEVfUEFUSCcsICdQSFBfT1VUUFVUX0hBTkRMRVJfU1RBUlQnLCAnUEhQX09VVFBVVF9IQU5ETEVSX0NPTlQnLA0KCQkJJ1BIUF9PVVRQVVRfSEFORExFUl9FTkQnLCAnRV9FUlJPUicsICdFX1dBUk5JTkcnLCAnRV9QQVJTRScsICdFX05PVElDRScsDQoJCQknRV9DT1JFX0VSUk9SJywgJ0VfQ09SRV9XQVJOSU5HJywgJ0VfQ09NUElMRV9FUlJPUicsICdFX0NPTVBJTEVfV0FSTklORycsICdFX1VTRVJfRVJST1InLA0KCQkJJ0VfVVNFUl9XQVJOSU5HJywgJ0VfVVNFUl9OT1RJQ0UnLCAnRV9BTEwnDQoJCQkNCgkJXQ0KCQksJ2Z1bmN0aW9ucycgOiBbDQoJCQknZnVuY19udW1fYXJncycsICdmdW5jX2dldF9hcmcnLCAnZnVuY19nZXRfYXJncycsICdzdHJsZW4nLCAnc3RyY21wJywgJ3N0cm5jbXAnLCAnc3RyY2FzZWNtcCcsICdzdHJuY2FzZWNtcCcsICdlYWNoJywgJ2Vycm9yX3JlcG9ydGluZycsICdkZWZpbmUnLCAnZGVmaW5lZCcsDQoJCQkndHJpZ2dlcl9lcnJvcicsICd1c2VyX2Vycm9yJywgJ3NldF9lcnJvcl9oYW5kbGVyJywgJ3Jlc3RvcmVfZXJyb3JfaGFuZGxlcicsICdnZXRfZGVjbGFyZWRfY2xhc3NlcycsICdnZXRfbG9hZGVkX2V4dGVuc2lvbnMnLA0KCQkJJ2V4dGVuc2lvbl9sb2FkZWQnLCAnZ2V0X2V4dGVuc2lvbl9mdW5jcycsICdkZWJ1Z19iYWNrdHJhY2UnLA0KCQkJJ2NvbnN0YW50JywgJ2JpbjJoZXgnLCAnc2xlZXAnLCAndXNsZWVwJywgJ3RpbWUnLCAnbWt0aW1lJywgJ2dtbWt0aW1lJywgJ3N0cmZ0aW1lJywgJ2dtc3RyZnRpbWUnLCAnc3RydG90aW1lJywgJ2RhdGUnLCAnZ21kYXRlJywgJ2dldGRhdGUnLCAnbG9jYWx0aW1lJywgJ2NoZWNrZGF0ZScsICdmbHVzaCcsICd3b3Jkd3JhcCcsICdodG1sc3BlY2lhbGNoYXJzJywgJ2h0bWxlbnRpdGllcycsICdodG1sX2VudGl0eV9kZWNvZGUnLCAnbWQ1JywgJ21kNV9maWxlJywgJ2NyYzMyJywgJ2dldGltYWdlc2l6ZScsICdpbWFnZV90eXBlX3RvX21pbWVfdHlwZScsICdwaHBpbmZvJywgJ3BocHZlcnNpb24nLCAncGhwY3JlZGl0cycsICdzdHJuYXRjbXAnLCAnc3RybmF0Y2FzZWNtcCcsICdzdWJzdHJfY291bnQnLCAnc3Ryc3BuJywgJ3N0cmNzcG4nLCAnc3RydG9rJywgJ3N0cnRvdXBwZXInLCAnc3RydG9sb3dlcicsICdzdHJwb3MnLCAnc3RycnBvcycsICdzdHJyZXYnLCAnaGVicmV2JywgJ2hlYnJldmMnLCAnbmwyYnInLCAnYmFzZW5hbWUnLCAnZGlybmFtZScsICdwYXRoaW5mbycsICdzdHJpcHNsYXNoZXMnLCAnc3RyaXBjc2xhc2hlcycsICdzdHJzdHInLCAnc3RyaXN0cicsICdzdHJyY2hyJywgJ3N0cl9zaHVmZmxlJywgJ3N0cl93b3JkX2NvdW50JywgJ3N0cmNvbGwnLCAnc3Vic3RyJywgJ3N1YnN0cl9yZXBsYWNlJywgJ3F1b3RlbWV0YScsICd1Y2ZpcnN0JywgJ3Vjd29yZHMnLCAnc3RydHInLCAnYWRkc2xhc2hlcycsICdhZGRjc2xhc2hlcycsICdydHJpbScsICdzdHJfcmVwbGFjZScsICdzdHJfcmVwZWF0JywgJ2NvdW50X2NoYXJzJywgJ2NodW5rX3NwbGl0JywgJ3RyaW0nLCAnbHRyaW0nLCAnc3RyaXBfdGFncycsICdzaW1pbGFyX3RleHQnLCAnZXhwbG9kZScsICdpbXBsb2RlJywgJ3NldGxvY2FsZScsICdsb2NhbGVjb252JywNCgkJCSdwYXJzZV9zdHInLCAnc3RyX3BhZCcsICdjaG9wJywgJ3N0cmNocicsICdzcHJpbnRmJywgJ3ByaW50ZicsICd2cHJpbnRmJywgJ3ZzcHJpbnRmJywgJ3NzY2FuZicsICdmc2NhbmYnLCAncGFyc2VfdXJsJywgJ3VybGVuY29kZScsICd1cmxkZWNvZGUnLCAncmF3dXJsZW5jb2RlJywgJ3Jhd3VybGRlY29kZScsICdyZWFkbGluaycsICdsaW5raW5mbycsICdsaW5rJywgJ3VubGluaycsICdleGVjJywgJ3N5c3RlbScsICdlc2NhcGVzaGVsbGNtZCcsICdlc2NhcGVzaGVsbGFyZycsICdwYXNzdGhydScsICdzaGVsbF9leGVjJywgJ3Byb2Nfb3BlbicsICdwcm9jX2Nsb3NlJywgJ3JhbmQnLCAnc3JhbmQnLCAnZ2V0cmFuZG1heCcsICdtdF9yYW5kJywgJ210X3NyYW5kJywgJ210X2dldHJhbmRtYXgnLCAnYmFzZTY0X2RlY29kZScsICdiYXNlNjRfZW5jb2RlJywgJ2FicycsICdjZWlsJywgJ2Zsb29yJywgJ3JvdW5kJywgJ2lzX2Zpbml0ZScsICdpc19uYW4nLCAnaXNfaW5maW5pdGUnLCAnYmluZGVjJywgJ2hleGRlYycsICdvY3RkZWMnLCAnZGVjYmluJywgJ2RlY29jdCcsICdkZWNoZXgnLCAnYmFzZV9jb252ZXJ0JywgJ251bWJlcl9mb3JtYXQnLCAnZm1vZCcsICdpcDJsb25nJywgJ2xvbmcyaXAnLCAnZ2V0ZW52JywgJ3B1dGVudicsICdnZXRvcHQnLCAnbWljcm90aW1lJywgJ2dldHRpbWVvZmRheScsICdnZXRydXNhZ2UnLCAndW5pcWlkJywgJ3F1b3RlZF9wcmludGFibGVfZGVjb2RlJywgJ3NldF90aW1lX2xpbWl0JywgJ2dldF9jZmdfdmFyJywgJ21hZ2ljX3F1b3Rlc19ydW50aW1lJywgJ3NldF9tYWdpY19xdW90ZXNfcnVudGltZScsICdnZXRfbWFnaWNfcXVvdGVzX2dwYycsICdnZXRfbWFnaWNfcXVvdGVzX3J1bnRpbWUnLA0KCQkJJ2ltcG9ydF9yZXF1ZXN0X3ZhcmlhYmxlcycsICdlcnJvcl9sb2cnLCAnc2VyaWFsaXplJywgJ3Vuc2VyaWFsaXplJywgJ21lbW9yeV9nZXRfdXNhZ2UnLCAndmFyX2R1bXAnLCAndmFyX2V4cG9ydCcsICdkZWJ1Z196dmFsX2R1bXAnLCAncHJpbnRfcicsJ2hpZ2hsaWdodF9maWxlJywgJ3Nob3dfc291cmNlJywgJ2hpZ2hsaWdodF9zdHJpbmcnLCAnaW5pX2dldCcsICdpbmlfZ2V0X2FsbCcsICdpbmlfc2V0JywgJ2luaV9hbHRlcicsICdpbmlfcmVzdG9yZScsICdnZXRfaW5jbHVkZV9wYXRoJywgJ3NldF9pbmNsdWRlX3BhdGgnLCAncmVzdG9yZV9pbmNsdWRlX3BhdGgnLCAnc2V0Y29va2llJywgJ2hlYWRlcicsICdoZWFkZXJzX3NlbnQnLCAnY29ubmVjdGlvbl9hYm9ydGVkJywgJ2Nvbm5lY3Rpb25fc3RhdHVzJywgJ2lnbm9yZV91c2VyX2Fib3J0JywgJ3BhcnNlX2luaV9maWxlJywgJ2lzX3VwbG9hZGVkX2ZpbGUnLCAnbW92ZV91cGxvYWRlZF9maWxlJywgJ2ludHZhbCcsICdmbG9hdHZhbCcsICdkb3VibGV2YWwnLCAnc3RydmFsJywgJ2dldHR5cGUnLCAnc2V0dHlwZScsICdpc19udWxsJywgJ2lzX3Jlc291cmNlJywgJ2lzX2Jvb2wnLCAnaXNfbG9uZycsICdpc19mbG9hdCcsICdpc19pbnQnLCAnaXNfaW50ZWdlcicsICdpc19kb3VibGUnLCAnaXNfcmVhbCcsICdpc19udW1lcmljJywgJ2lzX3N0cmluZycsICdpc19hcnJheScsICdpc19vYmplY3QnLCAnaXNfc2NhbGFyJywNCgkJCSdlcmVnJywgJ2VyZWdfcmVwbGFjZScsICdlcmVnaScsICdlcmVnaV9yZXBsYWNlJywgJ3NwbGl0JywgJ3NwbGl0aScsICdqb2luJywgJ3NxbF9yZWdjYXNlJywgJ2RsJywgJ3BjbG9zZScsICdwb3BlbicsICdyZWFkZmlsZScsICdyZXdpbmQnLCAncm1kaXInLCAndW1hc2snLCAnZmNsb3NlJywgJ2Zlb2YnLCAnZmdldGMnLCAnZmdldHMnLCAnZmdldHNzJywgJ2ZyZWFkJywgJ2ZvcGVuJywgJ2ZwYXNzdGhydScsICdmdHJ1bmNhdGUnLCAnZnN0YXQnLCAnZnNlZWsnLCAnZnRlbGwnLCAnZmZsdXNoJywgJ2Z3cml0ZScsICdmcHV0cycsICdta2RpcicsICdyZW5hbWUnLCAnY29weScsICd0ZW1wbmFtJywgJ3RtcGZpbGUnLCAnZmlsZScsICdmaWxlX2dldF9jb250ZW50cycsICdzdHJlYW1fc2VsZWN0JywgJ3N0cmVhbV9jb250ZXh0X2NyZWF0ZScsICdzdHJlYW1fY29udGV4dF9zZXRfcGFyYW1zJywgJ3N0cmVhbV9jb250ZXh0X3NldF9vcHRpb24nLCAnc3RyZWFtX2NvbnRleHRfZ2V0X29wdGlvbnMnLCAnc3RyZWFtX2ZpbHRlcl9wcmVwZW5kJywgJ3N0cmVhbV9maWx0ZXJfYXBwZW5kJywgJ2ZnZXRjc3YnLCAnZmxvY2snLCAnZ2V0X21ldGFfdGFncycsICdzdHJlYW1fc2V0X3dyaXRlX2J1ZmZlcicsICdzZXRfZmlsZV9idWZmZXInLCAnc2V0X3NvY2tldF9ibG9ja2luZycsICdzdHJlYW1fc2V0X2Jsb2NraW5nJywgJ3NvY2tldF9zZXRfYmxvY2tpbmcnLCAnc3RyZWFtX2dldF9tZXRhX2RhdGEnLCAnc3RyZWFtX3JlZ2lzdGVyX3dyYXBwZXInLCAnc3RyZWFtX3dyYXBwZXJfcmVnaXN0ZXInLCAnc3RyZWFtX3NldF90aW1lb3V0JywgJ3NvY2tldF9zZXRfdGltZW91dCcsICdzb2NrZXRfZ2V0X3N0YXR1cycsICdyZWFscGF0aCcsICdmbm1hdGNoJywgJ2Zzb2Nrb3BlbicsICdwZnNvY2tvcGVuJywgJ3BhY2snLCAndW5wYWNrJywgJ2dldF9icm93c2VyJywgJ2NyeXB0JywgJ29wZW5kaXInLCAnY2xvc2VkaXInLCAnY2hkaXInLCAnZ2V0Y3dkJywgJ3Jld2luZGRpcicsICdyZWFkZGlyJywgJ2RpcicsICdnbG9iJywgJ2ZpbGVhdGltZScsICdmaWxlY3RpbWUnLCAnZmlsZWdyb3VwJywgJ2ZpbGVpbm9kZScsICdmaWxlbXRpbWUnLCAnZmlsZW93bmVyJywgJ2ZpbGVwZXJtcycsICdmaWxlc2l6ZScsICdmaWxldHlwZScsICdmaWxlX2V4aXN0cycsICdpc193cml0YWJsZScsICdpc193cml0ZWFibGUnLCAnaXNfcmVhZGFibGUnLCAnaXNfZXhlY3V0YWJsZScsICdpc19maWxlJywgJ2lzX2RpcicsICdpc19saW5rJywgJ3N0YXQnLCAnbHN0YXQnLCAnY2hvd24nLA0KCQkJJ3RvdWNoJywgJ2NsZWFyc3RhdGNhY2hlJywgJ21haWwnLCAnb2Jfc3RhcnQnLCAnb2JfZmx1c2gnLCAnb2JfY2xlYW4nLCAnb2JfZW5kX2ZsdXNoJywgJ29iX2VuZF9jbGVhbicsICdvYl9nZXRfZmx1c2gnLCAnb2JfZ2V0X2NsZWFuJywgJ29iX2dldF9sZW5ndGgnLCAnb2JfZ2V0X2xldmVsJywgJ29iX2dldF9zdGF0dXMnLCAnb2JfZ2V0X2NvbnRlbnRzJywgJ29iX2ltcGxpY2l0X2ZsdXNoJywgJ29iX2xpc3RfaGFuZGxlcnMnLCAna3NvcnQnLCAna3Jzb3J0JywgJ25hdHNvcnQnLCAnbmF0Y2FzZXNvcnQnLCAnYXNvcnQnLCAnYXJzb3J0JywgJ3NvcnQnLCAncnNvcnQnLCAndXNvcnQnLCAndWFzb3J0JywgJ3Vrc29ydCcsICdzaHVmZmxlJywgJ2FycmF5X3dhbGsnLCAnY291bnQnLCAnZW5kJywgJ3ByZXYnLCAnbmV4dCcsICdyZXNldCcsICdjdXJyZW50JywgJ2tleScsICdtaW4nLCAnbWF4JywgJ2luX2FycmF5JywgJ2FycmF5X3NlYXJjaCcsICdleHRyYWN0JywgJ2NvbXBhY3QnLCAnYXJyYXlfZmlsbCcsICdyYW5nZScsICdhcnJheV9tdWx0aXNvcnQnLCAnYXJyYXlfcHVzaCcsICdhcnJheV9wb3AnLCAnYXJyYXlfc2hpZnQnLCAnYXJyYXlfdW5zaGlmdCcsICdhcnJheV9zcGxpY2UnLCAnYXJyYXlfc2xpY2UnLCAnYXJyYXlfbWVyZ2UnLCAnYXJyYXlfbWVyZ2VfcmVjdXJzaXZlJywgJ2FycmF5X2tleXMnLCAnYXJyYXlfdmFsdWVzJywgJ2FycmF5X2NvdW50X3ZhbHVlcycsICdhcnJheV9yZXZlcnNlJywgJ2FycmF5X3JlZHVjZScsICdhcnJheV9wYWQnLCAnYXJyYXlfZmxpcCcsICdhcnJheV9jaGFuZ2Vfa2V5X2Nhc2UnLCAnYXJyYXlfcmFuZCcsICdhcnJheV91bmlxdWUnLCAnYXJyYXlfaW50ZXJzZWN0JywgJ2FycmF5X2ludGVyc2VjdF9hc3NvYycsICdhcnJheV9kaWZmJywgJ2FycmF5X2RpZmZfYXNzb2MnLCAnYXJyYXlfc3VtJywgJ2FycmF5X2ZpbHRlcicsICdhcnJheV9tYXAnLCAnYXJyYXlfY2h1bmsnLCAnYXJyYXlfa2V5X2V4aXN0cycsICdwb3MnLCAnc2l6ZW9mJywgJ2tleV9leGlzdHMnLCAnYXNzZXJ0JywgJ2Fzc2VydF9vcHRpb25zJywgJ3ZlcnNpb25fY29tcGFyZScsICdmdG9rJywgJ3N0cl9yb3QxMycsICdhZ2dyZWdhdGUnLA0KCQkJJ3Nlc3Npb25fbmFtZScsICdzZXNzaW9uX21vZHVsZV9uYW1lJywgJ3Nlc3Npb25fc2F2ZV9wYXRoJywgJ3Nlc3Npb25faWQnLCAnc2Vzc2lvbl9yZWdlbmVyYXRlX2lkJywgJ3Nlc3Npb25fZGVjb2RlJywgJ3Nlc3Npb25fcmVnaXN0ZXInLCAnc2Vzc2lvbl91bnJlZ2lzdGVyJywgJ3Nlc3Npb25faXNfcmVnaXN0ZXJlZCcsICdzZXNzaW9uX2VuY29kZScsDQoJCQknc2Vzc2lvbl9zdGFydCcsICdzZXNzaW9uX2Rlc3Ryb3knLCAnc2Vzc2lvbl91bnNldCcsICdzZXNzaW9uX3NldF9zYXZlX2hhbmRsZXInLCAnc2Vzc2lvbl9jYWNoZV9saW1pdGVyJywgJ3Nlc3Npb25fY2FjaGVfZXhwaXJlJywgJ3Nlc3Npb25fc2V0X2Nvb2tpZV9wYXJhbXMnLCAnc2Vzc2lvbl9nZXRfY29va2llX3BhcmFtcycsICdzZXNzaW9uX3dyaXRlX2Nsb3NlJywgJ3ByZWdfbWF0Y2gnLCAncHJlZ19tYXRjaF9hbGwnLCAncHJlZ19yZXBsYWNlJywgJ3ByZWdfcmVwbGFjZV9jYWxsYmFjaycsICdwcmVnX3NwbGl0JywgJ3ByZWdfcXVvdGUnLCAncHJlZ19ncmVwJywgJ292ZXJsb2FkJywgJ2N0eXBlX2FsbnVtJywgJ2N0eXBlX2FscGhhJywgJ2N0eXBlX2NudHJsJywgJ2N0eXBlX2RpZ2l0JywgJ2N0eXBlX2xvd2VyJywgJ2N0eXBlX2dyYXBoJywgJ2N0eXBlX3ByaW50JywgJ2N0eXBlX3B1bmN0JywgJ2N0eXBlX3NwYWNlJywgJ2N0eXBlX3VwcGVyJywgJ2N0eXBlX3hkaWdpdCcsICd2aXJ0dWFsJywgJ2FwYWNoZV9yZXF1ZXN0X2hlYWRlcnMnLCAnYXBhY2hlX25vdGUnLCAnYXBhY2hlX2xvb2t1cF91cmknLCAnYXBhY2hlX2NoaWxkX3Rlcm1pbmF0ZScsICdhcGFjaGVfc2V0ZW52JywgJ2FwYWNoZV9yZXNwb25zZV9oZWFkZXJzJywgJ2FwYWNoZV9nZXRfdmVyc2lvbicsICdnZXRhbGxoZWFkZXJzJywgJ215c3FsX2Nvbm5lY3QnLCAnbXlzcWxfcGNvbm5lY3QnLCAnbXlzcWxfY2xvc2UnLCAnbXlzcWxfc2VsZWN0X2RiJywgJ215c3FsX2NyZWF0ZV9kYicsICdteXNxbF9kcm9wX2RiJywgJ215c3FsX3F1ZXJ5JywgJ215c3FsX3VuYnVmZmVyZWRfcXVlcnknLCAnbXlzcWxfZGJfcXVlcnknLCAnbXlzcWxfbGlzdF9kYnMnLCAnbXlzcWxfbGlzdF90YWJsZXMnLCAnbXlzcWxfbGlzdF9maWVsZHMnLCAnbXlzcWxfbGlzdF9wcm9jZXNzZXMnLCAnbXlzcWxfZXJyb3InLCAnbXlzcWxfZXJybm8nLCAnbXlzcWxfYWZmZWN0ZWRfcm93cycsICdteXNxbF9pbnNlcnRfaWQnLCAnbXlzcWxfcmVzdWx0JywgJ215c3FsX251bV9yb3dzJywgJ215c3FsX251bV9maWVsZHMnLCAnbXlzcWxfZmV0Y2hfcm93JywgJ215c3FsX2ZldGNoX2FycmF5JywgJ215c3FsX2ZldGNoX2Fzc29jJywgJ215c3FsX2ZldGNoX29iamVjdCcsICdteXNxbF9kYXRhX3NlZWsnLCAnbXlzcWxfZmV0Y2hfbGVuZ3RocycsICdteXNxbF9mZXRjaF9maWVsZCcsICdteXNxbF9maWVsZF9zZWVrJywgJ215c3FsX2ZyZWVfcmVzdWx0JywgJ215c3FsX2ZpZWxkX25hbWUnLCAnbXlzcWxfZmllbGRfdGFibGUnLCAnbXlzcWxfZmllbGRfbGVuJywgJ215c3FsX2ZpZWxkX3R5cGUnLCAnbXlzcWxfZmllbGRfZmxhZ3MnLCAnbXlzcWxfZXNjYXBlX3N0cmluZycsICdteXNxbF9yZWFsX2VzY2FwZV9zdHJpbmcnLCAnbXlzcWxfc3RhdCcsDQoJCQknbXlzcWxfdGhyZWFkX2lkJywgJ215c3FsX2NsaWVudF9lbmNvZGluZycsICdteXNxbF9nZXRfY2xpZW50X2luZm8nLCAnbXlzcWxfZ2V0X2hvc3RfaW5mbycsICdteXNxbF9nZXRfcHJvdG9faW5mbycsICdteXNxbF9nZXRfc2VydmVyX2luZm8nLCAnbXlzcWxfaW5mbycsICdteXNxbCcsICdteXNxbF9maWVsZG5hbWUnLCAnbXlzcWxfZmllbGR0YWJsZScsICdteXNxbF9maWVsZGxlbicsICdteXNxbF9maWVsZHR5cGUnLCAnbXlzcWxfZmllbGRmbGFncycsICdteXNxbF9zZWxlY3RkYicsICdteXNxbF9jcmVhdGVkYicsICdteXNxbF9kcm9wZGInLCAnbXlzcWxfZnJlZXJlc3VsdCcsICdteXNxbF9udW1maWVsZHMnLCAnbXlzcWxfbnVtcm93cycsICdteXNxbF9saXN0ZGJzJywgJ215c3FsX2xpc3R0YWJsZXMnLCAnbXlzcWxfbGlzdGZpZWxkcycsICdteXNxbF9kYl9uYW1lJywgJ215c3FsX2RibmFtZScsICdteXNxbF90YWJsZW5hbWUnLCAnbXlzcWxfdGFibGVfbmFtZScsICdwZ19jb25uZWN0JywgJ3BnX3Bjb25uZWN0JywgJ3BnX2Nsb3NlJywgJ3BnX2Nvbm5lY3Rpb25fc3RhdHVzJywgJ3BnX2Nvbm5lY3Rpb25fYnVzeScsICdwZ19jb25uZWN0aW9uX3Jlc2V0JywgJ3BnX2hvc3QnLCAncGdfZGJuYW1lJywgJ3BnX3BvcnQnLCAncGdfdHR5JywgJ3BnX29wdGlvbnMnLCAncGdfcGluZycsICdwZ19xdWVyeScsICdwZ19zZW5kX3F1ZXJ5JywgJ3BnX2NhbmNlbF9xdWVyeScsICdwZ19mZXRjaF9yZXN1bHQnLCAncGdfZmV0Y2hfcm93JywgJ3BnX2ZldGNoX2Fzc29jJywgJ3BnX2ZldGNoX2FycmF5JywgJ3BnX2ZldGNoX29iamVjdCcsICdwZ19mZXRjaF9hbGwnLCAncGdfYWZmZWN0ZWRfcm93cycsICdwZ19nZXRfcmVzdWx0JywgJ3BnX3Jlc3VsdF9zZWVrJywgJ3BnX3Jlc3VsdF9zdGF0dXMnLCAncGdfZnJlZV9yZXN1bHQnLCAncGdfbGFzdF9vaWQnLCAncGdfbnVtX3Jvd3MnLCAncGdfbnVtX2ZpZWxkcycsICdwZ19maWVsZF9uYW1lJywgJ3BnX2ZpZWxkX251bScsICdwZ19maWVsZF9zaXplJywgJ3BnX2ZpZWxkX3R5cGUnLCAncGdfZmllbGRfcHJ0bGVuJywgJ3BnX2ZpZWxkX2lzX251bGwnLCAncGdfZ2V0X25vdGlmeScsICdwZ19nZXRfcGlkJywgJ3BnX3Jlc3VsdF9lcnJvcicsICdwZ19sYXN0X2Vycm9yJywgJ3BnX2xhc3Rfbm90aWNlJywgJ3BnX3B1dF9saW5lJywgJ3BnX2VuZF9jb3B5JywgJ3BnX2NvcHlfdG8nLCAncGdfY29weV9mcm9tJywNCgkJCSdwZ190cmFjZScsICdwZ191bnRyYWNlJywgJ3BnX2xvX2NyZWF0ZScsICdwZ19sb191bmxpbmsnLCAncGdfbG9fb3BlbicsICdwZ19sb19jbG9zZScsICdwZ19sb19yZWFkJywgJ3BnX2xvX3dyaXRlJywgJ3BnX2xvX3JlYWRfYWxsJywgJ3BnX2xvX2ltcG9ydCcsICdwZ19sb19leHBvcnQnLCAncGdfbG9fc2VlaycsICdwZ19sb190ZWxsJywgJ3BnX2VzY2FwZV9zdHJpbmcnLCAncGdfZXNjYXBlX2J5dGVhJywgJ3BnX3VuZXNjYXBlX2J5dGVhJywgJ3BnX2NsaWVudF9lbmNvZGluZycsICdwZ19zZXRfY2xpZW50X2VuY29kaW5nJywgJ3BnX21ldGFfZGF0YScsICdwZ19jb252ZXJ0JywgJ3BnX2luc2VydCcsICdwZ191cGRhdGUnLCAncGdfZGVsZXRlJywgJ3BnX3NlbGVjdCcsICdwZ19leGVjJywgJ3BnX2dldGxhc3RvaWQnLCAncGdfY21kdHVwbGVzJywgJ3BnX2Vycm9ybWVzc2FnZScsICdwZ19udW1yb3dzJywgJ3BnX251bWZpZWxkcycsICdwZ19maWVsZG5hbWUnLCAncGdfZmllbGRzaXplJywgJ3BnX2ZpZWxkdHlwZScsICdwZ19maWVsZG51bScsICdwZ19maWVsZHBydGxlbicsICdwZ19maWVsZGlzbnVsbCcsICdwZ19mcmVlcmVzdWx0JywgJ3BnX3Jlc3VsdCcsICdwZ19sb3JlYWRhbGwnLCAncGdfbG9jcmVhdGUnLCAncGdfbG91bmxpbmsnLCAncGdfbG9vcGVuJywgJ3BnX2xvY2xvc2UnLCAncGdfbG9yZWFkJywgJ3BnX2xvd3JpdGUnLCAncGdfbG9pbXBvcnQnLCAncGdfbG9leHBvcnQnLA0KCQkJJ2VjaG8nLCAncHJpbnQnLCAnZ2xvYmFsJywgJ3N0YXRpYycsICdleGl0JywgJ2FycmF5JywgJ2VtcHR5JywgJ2V2YWwnLCAnaXNzZXQnLCAndW5zZXQnLCAnZGllJw0KDQoJCV0NCgl9DQoJLCdPUEVSQVRPUlMnIDpbDQoJCScrJywgJy0nLCAnLycsICcqJywgJz0nLCAnPCcsICc+JywgJyUnLCAnIScsICcmJicsICd8fCcNCgldDQoJLCdERUxJTUlURVJTJyA6Ww0KCQknKCcsICcpJywgJ1snLCAnXScsICd7JywgJ30nDQoJXQ0KCSwnUkVHRVhQUycgOiB7DQoJCS8vIGhpZ2hsaWdodCBhbGwgdmFyaWFibGVzICgkLi4uKQ0KCQkndmFyaWFibGVzJyA6IHsNCgkJCSdzZWFyY2gnIDogJygpKFxcJFxcdyspKCknDQoJCQksJ2NsYXNzJyA6ICd2YXJpYWJsZXMnDQoJCQksJ21vZGlmaWVycycgOiAnZycNCgkJCSwnZXhlY3V0ZScgOiAnYmVmb3JlJyAvLyBiZWZvcmUgb3IgYWZ0ZXINCgkJfQ0KCX0NCgksJ1NUWUxFUycgOiB7DQoJCSdDT01NRU5UUyc6ICdjb2xvcjogI0FBQUFBQTsnDQoJCSwnUVVPVEVTTUFSS1MnOiAnY29sb3I6ICM4NzlFRkE7Jw0KCQksJ0tFWVdPUkRTJyA6IHsNCgkJCSdyZXNlcnZlZCcgOiAnY29sb3I6ICM0OEJEREY7Jw0KCQkJLCdmdW5jdGlvbnMnIDogJ2NvbG9yOiAjMDA0MEZEOycNCgkJCSwnc3RhdGVtZW50cycgOiAnY29sb3I6ICM2MENBMDA7Jw0KCQkJfQ0KCQksJ09QRVJBVE9SUycgOiAnY29sb3I6ICNGRjAwRkY7Jw0KCQksJ0RFTElNSVRFUlMnIDogJ2NvbG9yOiAjMkI2MEZGOycNCgkJLCdSRUdFWFBTJyA6IHsNCgkJCSd2YXJpYWJsZXMnIDogJ2NvbG9yOiAjRTBCRDU0OycNCgkJfQkJDQoJfQ0KCSwnQVVUT19DT01QTEVUSU9OJyA6ICB7DQoJCSJkZWZhdWx0IjogewkvLyB0aGUgbmFtZSBvZiB0aGlzIGRlZmluaXRpb24gZ3JvdXAuIEl0J3MgcG9zaXNibGUgdG8gaGF2ZSBkaWZmZXJlbnQgcnVsZXMgaW5zaWRlIHRoZSBzYW1lIGRlZmluaXRpb24gZmlsZQ0KCQkJIlJFR0VYUCI6IHsgImJlZm9yZV93b3JkIjogIlteYS16QS1aMC05X118XiIJLy8gXFxzfFxcLnwNCgkJCQkJCSwicG9zc2libGVfd29yZHNfbGV0dGVycyI6ICJbYS16QS1aMC05X1wkXSsiDQoJCQkJCQksImxldHRlcl9hZnRlcl93b3JkX211c3RfbWF0Y2giOiAiW15hLXpBLVowLTlfXXwkIg0KCQkJCQkJLCJwcmVmaXhfc2VwYXJhdG9yIjogIlxcLVxcPnxcXDpcXDoiDQoJCQkJCX0NCgkJCSwiQ0FTRV9TRU5TSVRJVkUiOiB0cnVlDQoJCQksIk1BWF9URVhUX0xFTkdUSCI6IDEwMAkJLy8gdGhlIG1heGltdW0gbGVuZ3RoIG9mIHRoZSB0ZXh0IGJlaW5nIGFuYWx5emVkIGJlZm9yZSB0aGUgY3Vyc29yIHBvc2l0aW9uDQoJCQksIktFWVdPUkRTIjogew0KCQkJCQknJzogWwkvLyB0aGUgcHJlZml4IG9mIHRob3NlcyBpdGVtcw0KCQkJCQkJLyoqDQoJCQkJCQkgKiAwIDogdGhlIGtleXdvcmQgdGhlIHVzZXIgaXMgdHlwaW5nDQoJCQkJCQkgKiAxIDogKG9wdGlvbm5hbCkgdGhlIHN0cmluZyBpbnNlcnRlZCBpbiBjb2RlICgie0B9IiBiZWluZyB0aGUgbmV3IHBvc2l0aW9uIG9mIHRoZSBjdXJzb3IsICLCpyIgYmVlaW5nIHRoZSBlcXVpdmFsZW50IHRvIHRoZSB2YWx1ZSB0aGUgdHlwZWQgc3RyaW5nIGluZGljYXRlZCBpZiB0aGUgcHJldmlvdXMgKQ0KCQkJCQkJICogCQlJZiBlbXB0eSB0aGUga2V5d29yZCB3aWxsIGJlIGRpc3BsYXllZA0KCQkJCQkJICogMiA6IChvcHRpb25uYWwpIHRoZSB0ZXh0IHRoYXQgYXBwZWFyIGluIHRoZSBzdWdnZXN0aW9uIGJveCAoaWYgZW1wdHksIHRoZSBzdHJpbmcgdG8gaW5zZXJ0IHdpbGwgYmUgZGlzcGxheWVkKQ0KCQkJCQkJICovDQoJCQkJCQkgWyckX1BPU1QnXQ0KCQkJICAgIAkJLFsnJF9HRVQnXQ0KCQkJICAgIAkJLFsnJF9TRVNTSU9OJ10NCgkJCSAgICAJCSxbJyRfU0VSVkVSJ10NCgkJCSAgICAJCSxbJyRfRklMRVMnXQ0KCQkJICAgIAkJLFsnJF9FTlYnXQ0KCQkJICAgIAkJLFsnJF9DT09LSUUnXQ0KCQkJICAgIAkJLFsnJF9SRVFVRVNUJ10NCgkJCSAgICAJCS8vIG1hZ2ljIG1ldGhvZHMNCgkJCSAgICAJCSxbJ19fY29uc3RydWN0JywgJ8KnKCB7QH0gKSddDQoJCQkgICAgCQksWydfX2Rlc3RydWN0JywgJ8KnKCB7QH0gKSddDQoJCQkgICAgCQksWydfX3NsZWVwJywgJ8KnKCB7QH0gKSddDQoJCQkgICAgCQksWydfX3dha2V1cCcsICfCpygge0B9ICknXQ0KCQkJICAgIAkJLFsnX190b1N0cmluZycsICfCpygge0B9ICknXQ0KCQkJICAgIAkJLy8gaW5jbHVkZQ0KCQkJICAgIAkJLFsnaW5jbHVkZScsICfCpyAie0B9IjsnXQ0KCQkJICAgIAkJLFsnaW5jbHVkZV9vbmNlJywgJ8KnICJ7QH0iOyddDQoJCQkgICAgCQksWydyZXF1aXJlJywgJ8KnICJ7QH0iOyddDQoJCQkgICAgCQksWydyZXF1aXJlX29uY2UnLCAnwqcgIntAfSI7J10NCgkJCSAgICAJCS8vIHN0YXRlbWVudHMNCgkJCSAgICAJCSxbJ2ZvcicsICfCpygge0B9ICknXQ0KCQkJICAgIAkJLFsnZm9yZWFjaCcsICfCpygge0B9ICknXQ0KCQkJICAgIAkJLFsnaWYnLCAnwqcoIHtAfSApJ10NCgkJCSAgICAJCSxbJ2Vsc2VpZicsICfCpygge0B9ICknXQ0KCQkJICAgIAkJLFsnd2hpbGUnLCAnwqcoIHtAfSApJ10NCgkJCSAgICAJCSxbJ3N3aXRjaCcsICfCpygge0B9ICknXQ0KCQkJICAgIAkJLFsnYnJlYWsnXQ0KCQkJICAgIAkJLFsnY2FzZSddDQoJCQkgICAgCQksWydjb250aW51ZSddDQoJCQkgICAgCQksWydkbyddDQoJCQkgICAgCQksWydlbHNlJ10NCgkJCSAgICAJCSxbJ2VuZGlmJ10NCgkJCSAgICAJCSxbJ2VuZHN3aXRjaCddDQoJCQkgICAgCQksWydlbmR3aGlsZSddDQoJCQkgICAgCQksWydyZXR1cm4nXQ0KCQkJICAgIAkJLy8gZnVuY3Rpb24NCgkJCSAgICAJCSxbJ3Vuc2V0JywgJ8KnKCB7QH0gKSddDQoJCQkJCV0NCgkJCQl9DQoJCQl9DQoJCSwibGl2ZSI6IHsJDQoJCQkNCgkJCS8vIGNsYXNzIE5BTUU6IC9jbGFzc1xXKyhbYS16XSspXFcrL2dpDQoJCQkvLyBtZXRob2Q6IC9eKHB1YmxpY3xwcml2YXRlfHByb3RlY3RlZCk/XHMqZnVuY3Rpb25ccysoW2Etel1bYS16MC05XF9dKilccyooXChbXlx7XSpcKSkvZ21pDQoJCQkvLyBzdGF0aWM6IC9eKHB1YmxpY3xwcml2YXRlfHByb3RlY3RlZCk/XHMrc3RhdGljXHMrKHB1YmxpY3xwcml2YXRlfHByb3RlY3RlZCk/XHMqZnVuY3Rpb25ccysoW2Etel1bYS16MC05XF9dKilccyooXChbXlx7XSpcKSkvZ21pIA0KCQkJLy8gYXR0cmlidXRlczogLyhcJHRoaXNcLVw+fCg/OnZhcnxwdWJsaWN8cHJvdGVjdGVkfHByaXZhdGUpXFcrXCQpKFthLXowLTlcX10rKSg/IVwoKVxiL2dpIA0KCQkJLy8gCQl2MSA6IC8oXCR0aGlzXC1cPnx2YXJcVyt8cHVibGljXFcrfHByb3RlY3RlZFxXK3xwcml2YXRlXFcrKShbYS16MC05XF9dKylcVyooPXw7KS9naSANCgkJCS8vIHZhciB0eXBlOiAvKFwkKHRoaXNcLVw+KT9bYS16MC05XF9dKylccypcPVxzKm5ld1xzKyhbYS16MC05XF9dKSsvZ2kgDQoJCQkNCgkJCQ0KCQkJIlJFR0VYUCI6IHsgImJlZm9yZV93b3JkIjogIlteYS16QS1aMC05X118XiIJLy8gXFxzfFxcLnwNCgkJCQkJCSwicG9zc2libGVfd29yZHNfbGV0dGVycyI6ICJbYS16QS1aMC05X1wkXSsiDQoJCQkJCQksImxldHRlcl9hZnRlcl93b3JkX211c3RfbWF0Y2giOiAiW15hLXpBLVowLTlfXXwkIg0KCQkJCQkJLCJwcmVmaXhfc2VwYXJhdG9yIjogIlxcLVxcPiINCgkJCQkJfQ0KCQkJLCJDQVNFX1NFTlNJVElWRSI6IHRydWUNCgkJCSwiTUFYX1RFWFRfTEVOR1RIIjogMTAwCQkvLyB0aGUgbWF4aW11bSBsZW5ndGggb2YgdGhlIHRleHQgYmVpbmcgYW5hbHl6ZWQgYmVmb3JlIHRoZSBjdXJzb3IgcG9zaXRpb24NCgkJCSwiS0VZV09SRFMiOiB7DQoJCQkJCSckdGhpcyc6IFsJLy8gdGhlIHByZWZpeCBvZiB0aG9zZXMgaXRlbXMNCgkJCQkJCVsndGVzdCddDQoJCQkJCV0NCgkJCQl9DQoJCQl9DQoJfQ0KfTsNCg==]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/reg_syntax/robotstxt.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ZWRpdEFyZWFMb2FkZXIubG9hZF9zeW50YXhbInJvYm90c3R4dCJdID0gew0KCSdESVNQTEFZX05BTUUnIDogJ1JvYm90cyB0eHQnLA0KCSdDT01NRU5UX1NJTkdMRScgOiB7MSA6ICcjJ30sDQoJJ0NPTU1FTlRfTVVMVEknIDoge30sDQoJJ1FVT1RFTUFSS1MnIDogW10sDQoJJ0tFWVdPUkRfQ0FTRV9TRU5TSVRJVkUnIDogZmFsc2UsDQoJJ0tFWVdPUkRTJyA6IHsNCgkJJ2F0dHJpYnV0ZXMnIDogWydVc2VyLWFnZW50JywgJ0Rpc2FsbG93JywgJ0FsbG93JywgJ0NyYXdsLWRlbGF5J10sDQoJCSd2YWx1ZXMnIDogWycqJ10sDQoJCSdzcGVjaWFscycgOiBbJyonXQ0KCX0sDQoJJ09QRVJBVE9SUycgOlsnOiddLA0KCSdERUxJTUlURVJTJyA6W10sDQoJJ1NUWUxFUycgOiB7DQoJCSdDT01NRU5UUyc6ICdjb2xvcjogI0FBQUFBQTsnLA0KCQknUVVPVEVTTUFSS1MnOiAnY29sb3I6ICM2MzgxRjg7JywNCgkJJ0tFWVdPUkRTJyA6IHsNCgkJCSdhdHRyaWJ1dGVzJyA6ICdjb2xvcjogIzQ4QkRERjsnLA0KCQkJJ3ZhbHVlcycgOiAnY29sb3I6ICMyQjYwRkY7JywNCgkJCSdzcGVjaWFscycgOiAnY29sb3I6ICNGRjAwMDA7Jw0KCQkJfSwNCgknT1BFUkFUT1JTJyA6ICdjb2xvcjogI0ZGMDBGRjsnLA0KCSdERUxJTUlURVJTJyA6ICdjb2xvcjogIzYwQ0EwMDsnCQkJDQoJfQ0KfTsNCg==]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/reg_syntax/sql.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ZWRpdEFyZWFMb2FkZXIubG9hZF9zeW50YXhbInNxbCJdID0gew0KCSdESVNQTEFZX05BTUUnIDogJ1NRTCcNCgksJ0NPTU1FTlRfU0lOR0xFJyA6IHsxIDogJy0tJ30NCgksJ0NPTU1FTlRfTVVMVEknIDogeycvKicgOiAnKi8nfQ0KCSwnUVVPVEVNQVJLUycgOiB7MTogIiciLCAyOiAnIicsIDM6ICdgJ30NCgksJ0tFWVdPUkRfQ0FTRV9TRU5TSVRJVkUnIDogZmFsc2UNCgksJ0tFWVdPUkRTJyA6IHsNCgkJJ3N0YXRlbWVudHMnIDogWw0KCQkJJ3NlbGVjdCcsICdTRUxFQ1QnLCAnd2hlcmUnLCAnb3JkZXInLCAnYnknLA0KCQkJJ2luc2VydCcsICdmcm9tJywgJ3VwZGF0ZScsICdncmFudCcsICdsZWZ0IGpvaW4nLCAncmlnaHQgam9pbicsIA0KICAgICAgICAgICAgJ3VuaW9uJywgJ2dyb3VwJywgJ2hhdmluZycsICdsaW1pdCcsICdhbHRlcicsICdMSUtFJywnSU4nLCdDQVNFJw0KCQldDQoJCSwncmVzZXJ2ZWQnIDogWw0KCQkJJ251bGwnLCAnZW51bScsICdpbnQnLCAnYm9vbGVhbicsICdhZGQnLCAndmFyY2hhcicNCgkJCQ0KCQldDQoJCSwnZnVuY3Rpb25zJyA6IFsNCiAgICdBQlMnLCdBQ09TJywnQUREREFURScsJ0FERFRJTUUnLCdBRVNfREVDUllQVCcsJ0FFU19FTkNSWVBUJywnQVNDSUknLCdBU0lOJywnQVRBTjIgQVRBTicsJ0FUQU4nLCdBVkcnLCdCRU5DSE1BUksnLCdESVNUSU5DVCcsJ0JJTicsJ0JJVF9BTkQnLCdCSVRfQ09VTlQnLCdCSVRfTEVOR1RIJywnQklUX09SJywnQklUX1hPUicsJ0NBU1QnLCdDRUlMSU5HIENFSUwnLCdDSEFSX0xFTkdUSCcsJ0NIQVInLA0KJ0NIQVJBQ1RFUl9MRU5HVEgnLCdDSEFSU0VUJywnQ09BTEVTQ0UnLCdDT0VSQ0lCSUxJVFknLCdDT0xMQVRJT04nLCdDT01QUkVTUycsJ0NPTkNBVF9XUycsJ0NPTkNBVCcsJ0NPTk5FQ1RJT05fSUQnLCdDT05WJywnQ09OVkVSVF9UWicsJ0NPUycsJ0NPVCcsJ0NPVU5UJywnQ1JDMzInLCdDVVJEQVRFJywnQ1VSUkVOVF9EQVRFJywnQ1VSUkVOVF9USU1FJywnQ1VSUkVOVF9USU1FU1RBTVAnLCdDVVJSRU5UX1VTRVInLCdDVVJUSU1FJywnREFUQUJBU0UnLCdEQVRFX0FERCcsJ0RBVEVfRk9STUFUJywnREFURV9TVUInLCdEQVRFJywnREFURURJRkYnLCdEQVknLCdEQVlOQU1FJywnREFZT0ZNT05USCcsDQonREFZT0ZXRUVLJywnREFZT0ZZRUFSJywnREVDT0RFJywnREVGQVVMVCcsJ0RFR1JFRVMnLCdERVNfREVDUllQVCcsJ0RFU19FTkNSWVBUJywnRUxUJywnRU5DT0RFJywnRU5DUllQVCcsJ0VYUCcsJ0VYUE9SVF9TRVQnLCdFWFRSQUNUJywnRklFTEQnLCdGSU5EX0lOX1NFVCcsJ0ZMT09SJywnRk9STUFUJywnRk9VTkRfUk9XUycsJ0ZST01fREFZUycsJ0ZST01fVU5JWFRJTUUnLCdHRVRfRk9STUFUJywnR0VUX0xPQ0snLCdHUkVBVEVTVCcsJ0dST1VQX0NPTkNBVCcsJ0hFWCcsJ0hPVVInLCdJRicsJ0lGTlVMTCcsJ0lORVRfQVRPTicsJ0lORVRfTlRPQScsDQonSU5TRVJUJywnSU5TVFInLCdJTlRFUlZBTCcsJ0lTX0ZSRUVfTE9DSycsJ0lTX1VTRURfTE9DSycsJ0lTTlVMTCcsJ0xBU1RfREFZJywnTEFTVF9JTlNFUlRfSUQnLCdMQ0FTRScsJ0xFQVNUJywnTEVGVCcsJ0xFTkdUSCcsJ0xOJywnTE9BRF9GSUxFJywnTE9DQUxUSU1FJywnTE9DQUxUSU1FU1RBTVAnLCdMT0NBVEUnLCdMT0cxMCcsJ0xPRzInLCdMT0cnLCdMT1dFUicsJ0xQQUQnLCdMVFJJTScsJ01BS0VfU0VUJywnTUFLRURBVEUnLCdNQUtFVElNRScsJ01BU1RFUl9QT1NfV0FJVCcsJ01BWCcsJ01ENScsJ01JQ1JPU0VDT05EJywNCidNSUQnLCdNSU4nLCdNSU5VVEUnLCdNT0QnLCdNT05USCcsJ01PTlRITkFNRScsJ05PVycsJ05VTExJRicsJ09DVCcsJ09DVEVUX0xFTkdUSCcsJ09MRF9QQVNTV09SRCcsJ09SRCcsJ1BBU1NXT1JEJywnUEVSSU9EX0FERCcsJ1BFUklPRF9ESUZGJywnUEknLCdQT1NJVElPTicsJ1BPVycsJ1BPV0VSJywnUFJPQ0VEVVJFIEFOQUxZU0UnLCdRVUFSVEVSJywnUVVPVEUnLCdSQURJQU5TJywnUkFORCcsJ1JFTEVBU0VfTE9DSycsJ1JFUEVBVCcsJ1JFUExBQ0UnLCdSRVZFUlNFJywnUklHSFQnLCdST1VORCcsDQonUlBBRCcsJ1JUUklNJywnU0VDX1RPX1RJTUUnLCdTRUNPTkQnLCdTRVNTSU9OX1VTRVInLCdTSEExJywnU0hBJywnU0lHTicsJ1NJTicsJ1NPVU5ERVgnLCdTT1VORFMgTElLRScsJ1NQQUNFJywnU1FSVCcsJ1NURCcsJ1NURERFVicsJ1NUUl9UT19EQVRFJywnU1RSQ01QJywnU1VCREFURScsJ1NVQlNUUklOR19JTkRFWCcsJ1NVQlNUUklORycsJ1NVQlNUUicsJ1NVQlRJTUUnLCdTVU0nLCdTWVNEQVRFJywnU1lTVEVNX1VTRVInLCdUQU4nLCdUSU1FX0ZPUk1BVCcsJ1RJTUVfVE9fU0VDJywnVElNRScsJ1RJTUVESUZGJywNCidUSU1FU1RBTVAnLCdUT19EQVlTJywnVFJJTScsJ1RSVU5DQVRFJywnVUNBU0UnLCdVTkNPTVBSRVNTJywnVU5DT01QUkVTU0VEX0xFTkdUSCcsJ1VOSEVYJywnVU5JWF9USU1FU1RBTVAnLCdVUFBFUicsJ1VTRVInLCdVVENfREFURScsJ1VUQ19USU1FJywnVVRDX1RJTUVTVEFNUCcsJ1VVSUQnLCdWQUxVRVMnLCdWQVJJQU5DRScsJ1dFRUsnLCdXRUVLREFZJywnV0VFS09GWUVBUicsJ1lFQVInLCdZRUFSV0VFSycNCgkJXQ0KCX0NCgksJ09QRVJBVE9SUycgOlsNCiAgICAgJ0FORCcsJyYmJywnQkVUV0VFTicsJ0JJTkFSWScsJyYnLCd8JywnXicsJy8nLCdESVYnLCc8PT4nLCc9JywnPj0nLCc+JywnPDwnLCc+PicsJ0lTJywnTlVMTCcsJzw9JywnPCcsJy0nLCclJywnIT0nLCc8PicsJyEnLCd8fCcsJ09SJywnKycsJ1JFR0VYUCcsJ1JMSUtFJywnWE9SJywnficsJyonDQoJXQ0KCSwnREVMSU1JVEVSUycgOlsNCgkJJygnLCAnKScsICdbJywgJ10nLCAneycsICd9Jw0KCV0NCgksJ1JFR0VYUFMnIDogew0KCQkvLyBoaWdobGlnaHQgYWxsIHZhcmlhYmxlcyAoQC4uLikNCgkJJ3ZhcmlhYmxlcycgOiB7DQoJCQknc2VhcmNoJyA6ICcoKShcXEBcXHcrKSgpJw0KCQkJLCdjbGFzcycgOiAndmFyaWFibGVzJw0KCQkJLCdtb2RpZmllcnMnIDogJ2cnDQoJCQksJ2V4ZWN1dGUnIDogJ2JlZm9yZScgLy8gYmVmb3JlIG9yIGFmdGVyDQoJCX0NCgl9DQoJLCdTVFlMRVMnIDogew0KCQknQ09NTUVOVFMnOiAnY29sb3I6ICNBQUFBQUE7Jw0KCQksJ1FVT1RFU01BUktTJzogJ2NvbG9yOiAjODc5RUZBOycNCgkJLCdLRVlXT1JEUycgOiB7DQoJCQkncmVzZXJ2ZWQnIDogJ2NvbG9yOiAjNDhCRERGOycNCgkJCSwnZnVuY3Rpb25zJyA6ICdjb2xvcjogIzAwNDBGRDsnDQoJCQksJ3N0YXRlbWVudHMnIDogJ2NvbG9yOiAjNjBDQTAwOycNCgkJCX0NCgkJLCdPUEVSQVRPUlMnIDogJ2NvbG9yOiAjRkYwMEZGOycNCgkJLCdERUxJTUlURVJTJyA6ICdjb2xvcjogIzJCNjBGRjsnDQoJCSwnUkVHRVhQUycgOiB7DQoJCQkndmFyaWFibGVzJyA6ICdjb2xvcjogI0UwQkQ1NDsnDQoJCX0JCQ0KCX0NCn07DQo=]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/reg_syntax/xml.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoNCiogbGFzdCB1cGRhdGU6IDIwMDYtMDgtMjQNCiovDQoNCmVkaXRBcmVhTG9hZGVyLmxvYWRfc3ludGF4WyJ4bWwiXSA9IHsNCgknRElTUExBWV9OQU1FJyA6ICdYTUwnDQoJLCdDT01NRU5UX1NJTkdMRScgOiB7fQ0KCSwnQ09NTUVOVF9NVUxUSScgOiB7JzwhLS0nIDogJy0tPid9DQoJLCdRVU9URU1BUktTJyA6IHsxOiAiJyIsIDI6ICciJ30NCgksJ0tFWVdPUkRfQ0FTRV9TRU5TSVRJVkUnIDogZmFsc2UNCgksJ0tFWVdPUkRTJyA6IHsNCgl9DQoJLCdPUEVSQVRPUlMnIDpbDQoJXQ0KCSwnREVMSU1JVEVSUycgOlsNCgldDQoJLCdSRUdFWFBTJyA6IHsNCgkJJ3htbCcgOiB7DQoJCQknc2VhcmNoJyA6ICcoKSg8XFw/W14+XSo/XFw/PikoKScNCgkJCSwnY2xhc3MnIDogJ3htbCcNCgkJCSwnbW9kaWZpZXJzJyA6ICdnJw0KCQkJLCdleGVjdXRlJyA6ICdiZWZvcmUnIC8vIGJlZm9yZSBvciBhZnRlcg0KCQl9DQoJCSwnY2RhdGFzJyA6IHsNCgkJCSdzZWFyY2gnIDogJygpKDwhXFxbQ0RBVEFcXFsuKj9cXF1cXF0+KSgpJw0KCQkJLCdjbGFzcycgOiAnY2RhdGEnDQoJCQksJ21vZGlmaWVycycgOiAnZycNCgkJCSwnZXhlY3V0ZScgOiAnYmVmb3JlJyAvLyBiZWZvcmUgb3IgYWZ0ZXINCgkJfQ0KCQksJ3RhZ3MnIDogew0KCQkJJ3NlYXJjaCcgOiAnKDwpKC8/W2Etel1bXiBcclxuXHQ+XSopKFtePl0qPiknDQoJCQksJ2NsYXNzJyA6ICd0YWdzJw0KCQkJLCdtb2RpZmllcnMnIDogJ2dpJw0KCQkJLCdleGVjdXRlJyA6ICdiZWZvcmUnIC8vIGJlZm9yZSBvciBhZnRlcg0KCQl9DQoJCSwnYXR0cmlidXRlcycgOiB7DQoJCQknc2VhcmNoJyA6ICcoIHxcbnxccnxcdCkoW14gXHJcblx0PV0rKSg9KScNCgkJCSwnY2xhc3MnIDogJ2F0dHJpYnV0ZXMnDQoJCQksJ21vZGlmaWVycycgOiAnZycNCgkJCSwnZXhlY3V0ZScgOiAnYmVmb3JlJyAvLyBiZWZvcmUgb3IgYWZ0ZXINCgkJfQ0KCX0NCgksJ1NUWUxFUycgOiB7DQoJCSdDT01NRU5UUyc6ICdjb2xvcjogI0FBQUFBQTsnDQoJCSwnUVVPVEVTTUFSS1MnOiAnY29sb3I6ICM2MzgxRjg7Jw0KCQksJ0tFWVdPUkRTJyA6IHsNCgkJCX0NCgkJLCdPUEVSQVRPUlMnIDogJ2NvbG9yOiAjRTc3NUYwOycNCgkJLCdERUxJTUlURVJTJyA6ICcnDQoJCSwnUkVHRVhQUycgOiB7DQoJCQknYXR0cmlidXRlcyc6ICdjb2xvcjogI0IxQUM0MTsnDQoJCQksJ3RhZ3MnOiAnY29sb3I6ICNFNjIyNTM7Jw0KCQkJLCd4bWwnOiAnY29sb3I6ICM4RENGQjU7Jw0KCQkJLCdjZGF0YSc6ICdjb2xvcjogIzUwQjAyMDsnDQoJCX0JDQoJfQkJDQp9Ow0K]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/resize_area.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[CQ0KCUVkaXRBcmVhTG9hZGVyLnByb3RvdHlwZS5zdGFydF9yZXNpemVfYXJlYT0gZnVuY3Rpb24oKXsNCgkJdmFyIGQ9ZG9jdW1lbnQsYSxkaXYsd2lkdGgsaGVpZ2h0LGZhdGhlcjsNCgkJDQoJCWQub25tb3VzZXVwPSBlZGl0QXJlYUxvYWRlci5lbmRfcmVzaXplX2FyZWE7DQoJCWQub25tb3VzZW1vdmU9IGVkaXRBcmVhTG9hZGVyLnJlc2l6ZV9hcmVhOw0KCQllZGl0QXJlYUxvYWRlci50b2dnbGUoZWRpdEFyZWFMb2FkZXIucmVzaXplWyJpZCJdKTsJCQ0KCQkNCgkJYQk9IGVkaXRBcmVhc1tlZGl0QXJlYUxvYWRlci5yZXNpemVbImlkIl1dWyJ0ZXh0YXJlYSJdOw0KCQlkaXYJPSBkLmdldEVsZW1lbnRCeUlkKCJlZGl0X2FyZWFfcmVzaXplIik7DQoJCWlmKCFkaXYpew0KCQkJZGl2PSBkLmNyZWF0ZUVsZW1lbnQoImRpdiIpOw0KCQkJZGl2LmlkPSJlZGl0X2FyZWFfcmVzaXplIjsNCgkJCWRpdi5zdHlsZS5ib3JkZXI9ImRhc2hlZCAjODg4ODg4IDFweCI7DQoJCX0NCgkJd2lkdGgJPSBhLm9mZnNldFdpZHRoIC0yOw0KCQloZWlnaHQJPSBhLm9mZnNldEhlaWdodCAtMjsNCgkJDQoJCWRpdi5zdHlsZS5kaXNwbGF5CT0gImJsb2NrIjsNCgkJZGl2LnN0eWxlLndpZHRoCQk9IHdpZHRoKyJweCI7DQoJCWRpdi5zdHlsZS5oZWlnaHQJPSBoZWlnaHQrInB4IjsNCgkJZmF0aGVyPSBhLnBhcmVudE5vZGU7DQoJCWZhdGhlci5pbnNlcnRCZWZvcmUoZGl2LCBhKTsNCgkJDQoJCWEuc3R5bGUuZGlzcGxheT0ibm9uZSI7DQoJCQkJDQoJCWVkaXRBcmVhTG9hZGVyLnJlc2l6ZVsic3RhcnRfdG9wIl09IGNhbGN1bGVPZmZzZXRUb3AoZGl2KTsNCgkJZWRpdEFyZWFMb2FkZXIucmVzaXplWyJzdGFydF9sZWZ0Il09IGNhbGN1bGVPZmZzZXRMZWZ0KGRpdik7CQkNCgl9Ow0KCQ0KCUVkaXRBcmVhTG9hZGVyLnByb3RvdHlwZS5lbmRfcmVzaXplX2FyZWE9IGZ1bmN0aW9uKGUpew0KCQl2YXIgZD1kb2N1bWVudCxkaXYsYSx3aWR0aCxoZWlnaHQ7DQoJCQ0KCQlkLm9ubW91c2V1cD0iIjsNCgkJZC5vbm1vdXNlbW92ZT0iIjsJCQ0KCQkNCgkJZGl2CQk9IGQuZ2V0RWxlbWVudEJ5SWQoImVkaXRfYXJlYV9yZXNpemUiKTsJCQ0KCQlhPSBlZGl0QXJlYXNbZWRpdEFyZWFMb2FkZXIucmVzaXplWyJpZCJdXVsidGV4dGFyZWEiXTsNCgkJd2lkdGgJPSBNYXRoLm1heChlZGl0QXJlYXNbZWRpdEFyZWFMb2FkZXIucmVzaXplWyJpZCJdXVsic2V0dGluZ3MiXVsibWluX3dpZHRoIl0sIGRpdi5vZmZzZXRXaWR0aC00KTsNCgkJaGVpZ2h0CT0gTWF0aC5tYXgoZWRpdEFyZWFzW2VkaXRBcmVhTG9hZGVyLnJlc2l6ZVsiaWQiXV1bInNldHRpbmdzIl1bIm1pbl9oZWlnaHQiXSwgZGl2Lm9mZnNldEhlaWdodC00KTsNCgkJaWYoZWRpdEFyZWFMb2FkZXIuaXNJRT09Nil7DQoJCQl3aWR0aC09MjsNCgkJCWhlaWdodC09MjsJDQoJCX0NCgkJYS5zdHlsZS53aWR0aAkJPSB3aWR0aCsicHgiOw0KCQlhLnN0eWxlLmhlaWdodAkJPSBoZWlnaHQrInB4IjsNCgkJZGl2LnN0eWxlLmRpc3BsYXkJPSAibm9uZSI7DQoJCWEuc3R5bGUuZGlzcGxheQkJPSAiaW5saW5lIjsNCgkJYS5zZWxlY3Rpb25TdGFydAk9IGVkaXRBcmVhTG9hZGVyLnJlc2l6ZVsic2VsZWN0aW9uU3RhcnQiXTsNCgkJYS5zZWxlY3Rpb25FbmQJCT0gZWRpdEFyZWFMb2FkZXIucmVzaXplWyJzZWxlY3Rpb25FbmQiXTsNCgkJZWRpdEFyZWFMb2FkZXIudG9nZ2xlKGVkaXRBcmVhTG9hZGVyLnJlc2l6ZVsiaWQiXSk7DQoJCQ0KCQlyZXR1cm4gZmFsc2U7DQoJfTsNCgkNCglFZGl0QXJlYUxvYWRlci5wcm90b3R5cGUucmVzaXplX2FyZWE9IGZ1bmN0aW9uKGUpewkJDQoJCXZhciBhbGxvdyxuZXdIZWlnaHQsbmV3V2lkdGg7DQoJCWFsbG93CT0gZWRpdEFyZWFzW2VkaXRBcmVhTG9hZGVyLnJlc2l6ZVsiaWQiXV1bInNldHRpbmdzIl1bImFsbG93X3Jlc2l6ZSJdOw0KCQlpZihhbGxvdz09ImJvdGgiIHx8IGFsbG93PT0ieSIpDQoJCXsNCgkJCW5ld0hlaWdodAk9IE1hdGgubWF4KDIwLCBnZXRNb3VzZVkoZSktIGVkaXRBcmVhTG9hZGVyLnJlc2l6ZVsic3RhcnRfdG9wIl0pOw0KCQkJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVkaXRfYXJlYV9yZXNpemUiKS5zdHlsZS5oZWlnaHQ9IG5ld0hlaWdodCsicHgiOw0KCQl9DQoJCWlmKGFsbG93PT0iYm90aCIgfHwgYWxsb3c9PSJ4IikNCgkJew0KCQkJbmV3V2lkdGg9IE1hdGgubWF4KDIwLCBnZXRNb3VzZVgoZSktIGVkaXRBcmVhTG9hZGVyLnJlc2l6ZVsic3RhcnRfbGVmdCJdKTsNCgkJCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJlZGl0X2FyZWFfcmVzaXplIikuc3R5bGUud2lkdGg9IG5ld1dpZHRoKyJweCI7DQoJCX0NCgkJDQoJCXJldHVybiBmYWxzZTsNCgl9Ow0KCQ0KCWVkaXRBcmVhTG9hZGVyLndhaXRpbmdfbG9hZGluZ1sicmVzaXplX2FyZWEuanMiXT0gImxvYWRlZCI7DQo=]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/search_replace.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[CUVkaXRBcmVhLnByb3RvdHlwZS5zaG93X3NlYXJjaCA9IGZ1bmN0aW9uKCl7DQoJCWlmKF8kKCJhcmVhX3NlYXJjaF9yZXBsYWNlIikuc3R5bGUudmlzaWJpbGl0eT09InZpc2libGUiKXsNCgkJCXRoaXMuaGlkZGVuX3NlYXJjaCgpOw0KCQl9ZWxzZXsNCgkJCXRoaXMub3Blbl9pbmxpbmVfcG9wdXAoImFyZWFfc2VhcmNoX3JlcGxhY2UiKTsNCgkJCXZhciB0ZXh0PSB0aGlzLmFyZWFfZ2V0X3NlbGVjdGlvbigpOw0KCQkJdmFyIHNlYXJjaD0gdGV4dC5zcGxpdCgiXG4iKVswXTsNCgkJCV8kKCJhcmVhX3NlYXJjaCIpLnZhbHVlPSBzZWFyY2g7DQoJCQlfJCgiYXJlYV9zZWFyY2giKS5mb2N1cygpOw0KCQl9DQoJfTsNCgkNCglFZGl0QXJlYS5wcm90b3R5cGUuaGlkZGVuX3NlYXJjaD0gZnVuY3Rpb24oKXsNCgkJLypfJCgiYXJlYV9zZWFyY2hfcmVwbGFjZSIpLnN0eWxlLnZpc2liaWxpdHk9ImhpZGRlbiI7DQoJCXRoaXMudGV4dGFyZWEuZm9jdXMoKTsNCgkJdmFyIGljb249IF8kKCJzZWFyY2giKTsNCgkJc2V0QXR0cmlidXRlKGljb24sICJjbGFzcyIsIGdldEF0dHJpYnV0ZShpY29uLCAiY2xhc3MiKS5yZXBsYWNlKC8gc2VsZWN0ZWQvZywgIiIpICk7Ki8NCgkJdGhpcy5jbG9zZV9pbmxpbmVfcG9wdXAoImFyZWFfc2VhcmNoX3JlcGxhY2UiKTsNCgl9Ow0KCQ0KCUVkaXRBcmVhLnByb3RvdHlwZS5hcmVhX3NlYXJjaD0gZnVuY3Rpb24obW9kZSl7DQoJCQ0KCQlpZighbW9kZSkNCgkJCW1vZGU9InNlYXJjaCI7DQoJCV8kKCJhcmVhX3NlYXJjaF9tc2ciKS5pbm5lckhUTUw9IiI7CQkNCgkJdmFyIHNlYXJjaD1fJCgiYXJlYV9zZWFyY2giKS52YWx1ZTsJCQ0KCQkNCgkJdGhpcy50ZXh0YXJlYS5mb2N1cygpOwkJDQoJCXRoaXMudGV4dGFyZWEudGV4dGFyZWFGb2N1c2VkPXRydWU7DQoJCQ0KCQl2YXIgaW5mb3M9IHRoaXMuZ2V0X3NlbGVjdGlvbl9pbmZvcygpOwkNCgkJdmFyIHN0YXJ0PSBpbmZvc1sic2VsZWN0aW9uU3RhcnQiXTsNCgkJdmFyIHBvcz0tMTsNCgkJdmFyIHBvc19iZWdpbj0tMTsNCgkJdmFyIGxlbmd0aD1zZWFyY2gubGVuZ3RoOw0KCQkNCgkJaWYoXyQoImFyZWFfc2VhcmNoX3JlcGxhY2UiKS5zdHlsZS52aXNpYmlsaXR5IT0idmlzaWJsZSIpew0KCQkJdGhpcy5zaG93X3NlYXJjaCgpOw0KCQkJcmV0dXJuOw0KCQl9DQoJCWlmKHNlYXJjaC5sZW5ndGg9PTApew0KCQkJXyQoImFyZWFfc2VhcmNoX21zZyIpLmlubmVySFRNTD10aGlzLmdldF90cmFuc2xhdGlvbigic2VhcmNoX2ZpZWxkX2VtcHR5Iik7DQoJCQlyZXR1cm47DQoJCX0NCgkJLy8gYWR2YW5jZSB0byB0aGUgbmV4dCBvY2N1cmVuY2UgaWYgbm8gdGV4dCBzZWxlY3RlZA0KCQlpZihtb2RlIT0icmVwbGFjZSIgKXsNCgkJCWlmKF8kKCJhcmVhX3NlYXJjaF9yZWdfZXhwIikuY2hlY2tlZCkNCgkJCQlzdGFydCsrOw0KCQkJZWxzZQ0KCQkJCXN0YXJ0Kz0gc2VhcmNoLmxlbmd0aDsNCgkJfQ0KCQkNCgkJLy9zZWFyY2gNCgkJaWYoXyQoImFyZWFfc2VhcmNoX3JlZ19leHAiKS5jaGVja2VkKXsNCgkJCS8vIHJlZ2V4cCBzZWFyY2gNCgkJCXZhciBvcHQ9Im0iOw0KCQkJaWYoIV8kKCJhcmVhX3NlYXJjaF9tYXRjaF9jYXNlIikuY2hlY2tlZCkNCgkJCQlvcHQrPSJpIjsNCgkJCXZhciByZWc9IG5ldyBSZWdFeHAoc2VhcmNoLCBvcHQpOw0KCQkJcG9zPSBpbmZvc1siZnVsbF90ZXh0Il0uc3Vic3RyKHN0YXJ0KS5zZWFyY2gocmVnKTsNCgkJCXBvc19iZWdpbj0gaW5mb3NbImZ1bGxfdGV4dCJdLnNlYXJjaChyZWcpOw0KCQkJaWYocG9zIT0tMSl7DQoJCQkJcG9zKz1zdGFydDsNCgkJCQlsZW5ndGg9aW5mb3NbImZ1bGxfdGV4dCJdLnN1YnN0cihzdGFydCkubWF0Y2gocmVnKVswXS5sZW5ndGg7DQoJCQl9ZWxzZSBpZihwb3NfYmVnaW4hPS0xKXsNCgkJCQlsZW5ndGg9aW5mb3NbImZ1bGxfdGV4dCJdLm1hdGNoKHJlZylbMF0ubGVuZ3RoOw0KCQkJfQ0KCQl9ZWxzZXsNCgkJCWlmKF8kKCJhcmVhX3NlYXJjaF9tYXRjaF9jYXNlIikuY2hlY2tlZCl7DQoJCQkJcG9zPSBpbmZvc1siZnVsbF90ZXh0Il0uaW5kZXhPZihzZWFyY2gsIHN0YXJ0KTsgDQoJCQkJcG9zX2JlZ2luPSBpbmZvc1siZnVsbF90ZXh0Il0uaW5kZXhPZihzZWFyY2gpOyANCgkJCX1lbHNlew0KCQkJCXBvcz0gaW5mb3NbImZ1bGxfdGV4dCJdLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihzZWFyY2gudG9Mb3dlckNhc2UoKSwgc3RhcnQpOyANCgkJCQlwb3NfYmVnaW49IGluZm9zWyJmdWxsX3RleHQiXS50b0xvd2VyQ2FzZSgpLmluZGV4T2Yoc2VhcmNoLnRvTG93ZXJDYXNlKCkpOyANCgkJCX0JCQ0KCQl9DQoJCQ0KCQkvLyBpbnRlcnByZXQgcmVzdWx0DQoJCWlmKHBvcz09LTEgJiYgcG9zX2JlZ2luPT0tMSl7DQoJCQlfJCgiYXJlYV9zZWFyY2hfbXNnIikuaW5uZXJIVE1MPSI8c3Ryb25nPiIrc2VhcmNoKyI8L3N0cm9uZz4gIit0aGlzLmdldF90cmFuc2xhdGlvbigibm90X2ZvdW5kIik7DQoJCQlyZXR1cm47DQoJCX1lbHNlIGlmKHBvcz09LTEgJiYgcG9zX2JlZ2luICE9IC0xKXsNCgkJCWJlZ2luPSBwb3NfYmVnaW47DQoJCQlfJCgiYXJlYV9zZWFyY2hfbXNnIikuaW5uZXJIVE1MPXRoaXMuZ2V0X3RyYW5zbGF0aW9uKCJyZXN0YXJ0X3NlYXJjaF9hdF9iZWdpbiIpOw0KCQl9ZWxzZQ0KCQkJYmVnaW49IHBvczsNCgkJDQoJCS8vXyQoImFyZWFfc2VhcmNoX21zZyIpLmlubmVySFRNTCs9IjxzdHJvbmc+IitzZWFyY2grIjwvc3Ryb25nPiBmb3VuZCBhdCAiK2JlZ2luKyIgc3RyYXQgYXQgIitzdGFydCsiIHBvcyAiK3BvcysiIGN1cnMiKyBpbmZvc1siaW5kZXhPZkN1cnNvciJdKyIuIjsNCgkJaWYobW9kZT09InJlcGxhY2UiICYmIHBvcz09aW5mb3NbImluZGV4T2ZDdXJzb3IiXSl7DQoJCQl2YXIgcmVwbGFjZT0gXyQoImFyZWFfcmVwbGFjZSIpLnZhbHVlOw0KCQkJdmFyIG5ld190ZXh0PSIiOwkJCQ0KCQkJaWYoXyQoImFyZWFfc2VhcmNoX3JlZ19leHAiKS5jaGVja2VkKXsNCgkJCQl2YXIgb3B0PSJtIjsNCgkJCQlpZighXyQoImFyZWFfc2VhcmNoX21hdGNoX2Nhc2UiKS5jaGVja2VkKQ0KCQkJCQlvcHQrPSJpIjsNCgkJCQl2YXIgcmVnPSBuZXcgUmVnRXhwKHNlYXJjaCwgb3B0KTsNCgkJCQluZXdfdGV4dD0gaW5mb3NbImZ1bGxfdGV4dCJdLnN1YnN0cigwLCBiZWdpbikgKyBpbmZvc1siZnVsbF90ZXh0Il0uc3Vic3RyKHN0YXJ0KS5yZXBsYWNlKHJlZywgcmVwbGFjZSk7DQoJCQl9ZWxzZXsNCgkJCQluZXdfdGV4dD0gaW5mb3NbImZ1bGxfdGV4dCJdLnN1YnN0cigwLCBiZWdpbikgKyByZXBsYWNlICsgaW5mb3NbImZ1bGxfdGV4dCJdLnN1YnN0cihiZWdpbiArIGxlbmd0aCk7DQoJCQl9DQoJCQl0aGlzLnRleHRhcmVhLnZhbHVlPW5ld190ZXh0Ow0KCQkJdGhpcy5hcmVhX3NlbGVjdChiZWdpbiwgbGVuZ3RoKTsNCgkJCXRoaXMuYXJlYV9zZWFyY2goKTsNCgkJfWVsc2UNCgkJCXRoaXMuYXJlYV9zZWxlY3QoYmVnaW4sIGxlbmd0aCk7DQoJfTsNCgkNCgkNCgkNCgkNCglFZGl0QXJlYS5wcm90b3R5cGUuYXJlYV9yZXBsYWNlPSBmdW5jdGlvbigpewkJDQoJCXRoaXMuYXJlYV9zZWFyY2goInJlcGxhY2UiKTsNCgl9Ow0KCQ0KCUVkaXRBcmVhLnByb3RvdHlwZS5hcmVhX3JlcGxhY2VfYWxsPSBmdW5jdGlvbigpew0KCS8qCXRoaXMuYXJlYV9zZWxlY3QoMCwgMCk7DQoJCV8kKCJhcmVhX3NlYXJjaF9tc2ciKS5pbm5lckhUTUw9IiI7DQoJCXdoaWxlKF8kKCJhcmVhX3NlYXJjaF9tc2ciKS5pbm5lckhUTUw9PSIiKXsNCgkJCXRoaXMuYXJlYV9yZXBsYWNlKCk7DQoJCX0qLw0KCQ0KCQl2YXIgYmFzZV90ZXh0PSB0aGlzLnRleHRhcmVhLnZhbHVlOw0KCQl2YXIgc2VhcmNoPSBfJCgiYXJlYV9zZWFyY2giKS52YWx1ZTsJCQ0KCQl2YXIgcmVwbGFjZT0gXyQoImFyZWFfcmVwbGFjZSIpLnZhbHVlOw0KCQlpZihzZWFyY2gubGVuZ3RoPT0wKXsNCgkJCV8kKCJhcmVhX3NlYXJjaF9tc2ciKS5pbm5lckhUTUw9dGhpcy5nZXRfdHJhbnNsYXRpb24oInNlYXJjaF9maWVsZF9lbXB0eSIpOw0KCQkJcmV0dXJuIDsNCgkJfQ0KCQkNCgkJdmFyIG5ld190ZXh0PSIiOw0KCQl2YXIgbmJfY2hhbmdlPTA7DQoJCWlmKF8kKCJhcmVhX3NlYXJjaF9yZWdfZXhwIikuY2hlY2tlZCl7DQoJCQkvLyByZWdFeHANCgkJCXZhciBvcHQ9Im1nIjsNCgkJCWlmKCFfJCgiYXJlYV9zZWFyY2hfbWF0Y2hfY2FzZSIpLmNoZWNrZWQpDQoJCQkJb3B0Kz0iaSI7DQoJCQl2YXIgcmVnPSBuZXcgUmVnRXhwKHNlYXJjaCwgb3B0KTsNCgkJCW5iX2NoYW5nZT0gaW5mb3NbImZ1bGxfdGV4dCJdLm1hdGNoKHJlZykubGVuZ3RoOw0KCQkJbmV3X3RleHQ9IGluZm9zWyJmdWxsX3RleHQiXS5yZXBsYWNlKHJlZywgcmVwbGFjZSk7DQoJCQkNCgkJfWVsc2V7DQoJCQkNCgkJCWlmKF8kKCJhcmVhX3NlYXJjaF9tYXRjaF9jYXNlIikuY2hlY2tlZCl7DQoJCQkJdmFyIHRtcF90YWI9YmFzZV90ZXh0LnNwbGl0KHNlYXJjaCk7DQoJCQkJbmJfY2hhbmdlPSB0bXBfdGFiLmxlbmd0aCAtMSA7DQoJCQkJbmV3X3RleHQ9IHRtcF90YWIuam9pbihyZXBsYWNlKTsNCgkJCX1lbHNlew0KCQkJCS8vIGNhc2UgaW5zZW5zaXRpdmUNCgkJCQl2YXIgbG93ZXJfdmFsdWU9YmFzZV90ZXh0LnRvTG93ZXJDYXNlKCk7DQoJCQkJdmFyIGxvd2VyX3NlYXJjaD1zZWFyY2gudG9Mb3dlckNhc2UoKTsNCgkJCQkNCgkJCQl2YXIgc3RhcnQ9MDsNCgkJCQl2YXIgcG9zPSBsb3dlcl92YWx1ZS5pbmRleE9mKGxvd2VyX3NlYXJjaCk7CQkJCQ0KCQkJCXdoaWxlKHBvcyE9LTEpew0KCQkJCQluYl9jaGFuZ2UrKzsNCgkJCQkJbmV3X3RleHQrPSB0aGlzLnRleHRhcmVhLnZhbHVlLnN1YnN0cmluZyhzdGFydCAsIHBvcykrcmVwbGFjZTsNCgkJCQkJc3RhcnQ9cG9zKyBzZWFyY2gubGVuZ3RoOw0KCQkJCQlwb3M9IGxvd2VyX3ZhbHVlLmluZGV4T2YobG93ZXJfc2VhcmNoLCBwb3MrMSk7DQoJCQkJfQ0KCQkJCW5ld190ZXh0Kz0gdGhpcy50ZXh0YXJlYS52YWx1ZS5zdWJzdHJpbmcoc3RhcnQpOwkJCQkNCgkJCX0NCgkJfQkJCQ0KCQlpZihuZXdfdGV4dD09YmFzZV90ZXh0KXsNCgkJCV8kKCJhcmVhX3NlYXJjaF9tc2ciKS5pbm5lckhUTUw9IjxzdHJvbmc+IitzZWFyY2grIjwvc3Ryb25nPiAiK3RoaXMuZ2V0X3RyYW5zbGF0aW9uKCJub3RfZm91bmQiKTsNCgkJfWVsc2V7DQoJCQl0aGlzLnRleHRhcmVhLnZhbHVlPSBuZXdfdGV4dDsNCgkJCV8kKCJhcmVhX3NlYXJjaF9tc2ciKS5pbm5lckhUTUw9IjxzdHJvbmc+IituYl9jaGFuZ2UrIjwvc3Ryb25nPiAiK3RoaXMuZ2V0X3RyYW5zbGF0aW9uKCJvY2N1cnJlbmNlX3JlcGxhY2VkIik7DQoJCQkvLyBmaXJlZm94IGFuZCBvcGVyYSBkb2Vzbid0IG1hbmFnZSB3aXRoIHRoZSBmb2N1cyBpZiBpdCdzIGRvbmUgZGlyZWN0bHkNCgkJCS8vZWRpdEFyZWEudGV4dGFyZWEuZm9jdXMoKTtlZGl0QXJlYS50ZXh0YXJlYS50ZXh0YXJlYUZvY3VzZWQ9dHJ1ZTsNCgkJCXNldFRpbWVvdXQoImVkaXRBcmVhLnRleHRhcmVhLmZvY3VzKCk7ZWRpdEFyZWEudGV4dGFyZWEudGV4dGFyZWFGb2N1c2VkPXRydWU7IiwgMTAwKTsNCgkJfQ0KCQkNCgkJDQoJfTsNCg==]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/template.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMTEvRFREL3hodG1sMTEuZHRkIj4NCjxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiB4bWw6bGFuZz0iZW4iID4NCjxoZWFkPg0KCTx0aXRsZT5FZGl0QXJlYTwvdGl0bGU+DQoJPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiIC8+DQoJPG1ldGEgaHR0cC1lcXVpdj0iWC1VQS1Db21wYXRpYmxlIiBjb250ZW50PSJJRT1FbXVsYXRlSUU3Ii8+DQoJW19fQ1NTUlVMRVNfX10NCg0KCVtfX0pTQ09ERV9fXQ0KDQo8L2hlYWQ+DQo8Ym9keT4NCgk8ZGl2IGlkPSdlZGl0b3InPg0KCQk8ZGl2IGNsYXNzPSdhcmVhX3Rvb2xiYXInIGlkPSd0b29sYmFyXzEnPltfX1RPT0xCQVJfX108L2Rpdj4NCgkJPGRpdiBjbGFzcz0nYXJlYV90b29sYmFyJyBpZD0ndGFiX2Jyb3dzaW5nX2FyZWEnPjx1bCBpZD0ndGFiX2Jyb3dzaW5nX2xpc3QnIGNsYXNzPSdtZW51Jz4gPGxpPiA8L2xpPiA8L3VsPjwvZGl2Pg0KCQk8ZGl2IGlkPSdyZXN1bHQnPg0KCQkJPGRpdiBpZD0nbm9fZmlsZV9zZWxlY3RlZCc+PC9kaXY+DQoJCQk8ZGl2IGlkPSdjb250YWluZXInPg0KCQkJCTxkaXYgaWQ9J2N1cnNvcl9wb3MnIGNsYXNzPSdlZGl0X2FyZWFfY3Vyc29yJz4mbmJzcDs8L2Rpdj4NCgkJCQk8ZGl2IGlkPSdlbmRfYnJhY2tldCcgY2xhc3M9J2VkaXRfYXJlYV9jdXJzb3InPiZuYnNwOzwvZGl2Pg0KCQkJCTxkaXYgaWQ9J3NlbGVjdGlvbl9maWVsZCc+PC9kaXY+DQoJCQkJPGRpdiBpZD0nbGluZV9udW1iZXInIHNlbGVjPSdub25lJz48L2Rpdj4NCgkJCQk8ZGl2IGlkPSdjb250ZW50X2hpZ2hsaWdodCc+PC9kaXY+DQoJCQkJPGRpdiBpZD0ndGVzdF9mb250X3NpemUnPjwvZGl2Pg0KCQkJCTxkaXYgaWQ9J3NlbGVjdGlvbl9maWVsZF90ZXh0Jz48L2Rpdj4NCgkJCQk8dGV4dGFyZWEgaWQ9J3RleHRhcmVhJyB3cmFwPSdvZmYnIG9uY2hhbmdlPSdlZGl0QXJlYS5leGVjQ29tbWFuZCgib25jaGFuZ2UiKTsnIG9uZm9jdXM9J2phdmFzY3JpcHQ6ZWRpdEFyZWEudGV4dGFyZWFGb2N1c2VkPXRydWU7JyBvbmJsdXI9J2phdmFzY3JpcHQ6ZWRpdEFyZWEudGV4dGFyZWFGb2N1c2VkPWZhbHNlOyc+DQoJCQkJPC90ZXh0YXJlYT4NCgkJCQkNCgkJCTwvZGl2Pg0KCQk8L2Rpdj4NCgkJPGRpdiBjbGFzcz0nYXJlYV90b29sYmFyJyBpZD0ndG9vbGJhcl8yJz4NCgkJCTx0YWJsZSBjbGFzcz0nc3RhdHVzYmFyJyBjZWxsc3BhY2luZz0nMCcgY2VsbHBhZGRpbmc9JzAnPg0KCQkJCTx0cj4NCgkJCQkJPHRkIGNsYXNzPSd0b3RhbCcgc2VsZWM9J25vbmUnPnskcG9zaXRpb259OjwvdGQ+DQoJCQkJCTx0ZCBjbGFzcz0naW5mb3MnIHNlbGVjPSdub25lJz4NCgkJCQkJCXskbGluZV9hYmJyfSA8c3BhbiAgaWQ9J2xpbmVQb3MnPjA8L3NwYW4+LCB7JGNoYXJfYWJicn0gPHNwYW4gaWQ9J2N1cnJQb3MnPjA8L3NwYW4+DQoJCQkJCTwvdGQ+DQoJCQkJCTx0ZCBjbGFzcz0ndG90YWwnIHNlbGVjPSdub25lJz57JHRvdGFsfTo8L3RkPg0KCQkJCQk8dGQgY2xhc3M9J2luZm9zJyBzZWxlYz0nbm9uZSc+DQoJCQkJCQl7JGxpbmVfYWJicn0gPHNwYW4gaWQ9J25iTGluZSc+MDwvc3Bhbj4sIHskY2hhcl9hYmJyfSA8c3BhbiBpZD0nbmJDaGFyJz4wPC9zcGFuPg0KCQkJCQk8L3RkPg0KCQkJCQk8dGQgY2xhc3M9J3Jlc2l6ZSc+DQoJCQkJCQk8c3BhbiBpZD0ncmVzaXplX2FyZWEnPjxpbWcgc3JjPSdbX19CQVNFVVJMX19daW1hZ2VzL3N0YXR1c2Jhcl9yZXNpemUuZ2lmJyBhbHQ9J3Jlc2l6ZScgc2VsZWM9J25vbmUnPjwvc3Bhbj4NCgkJCQkJPC90ZD4NCgkJCQk8L3RyPg0KCQkJPC90YWJsZT4NCgkJPC9kaXY+DQoJPC9kaXY+DQoJPGRpdiBpZD0ncHJvY2Vzc2luZyc+DQoJCTxkaXYgaWQ9J3Byb2Nlc3NpbmdfdGV4dCc+DQoJCQl7JHByb2Nlc3Npbmd9DQoJCTwvZGl2Pg0KCTwvZGl2Pg0KDQoJPGRpdiBpZD0nYXJlYV9zZWFyY2hfcmVwbGFjZScgY2xhc3M9J2VkaXRhcmVhX3BvcHVwJz4NCgkJPHRhYmxlIGNlbGxzcGFjaW5nPScyJyBjZWxscGFkZGluZz0nMCcgc3R5bGU9J3dpZHRoOiAxMDAlJz4NCgkJCTx0cj4NCgkJCQk8dGQgc2VsZWM9J25vbmUnPnskc2VhcmNofTwvdGQ+DQoJCQkJPHRkPjxpbnB1dCB0eXBlPSd0ZXh0JyBpZD0nYXJlYV9zZWFyY2gnIC8+PC90ZD4NCgkJCQk8dGQgaWQ9J2Nsb3NlX2FyZWFfc2VhcmNoX3JlcGxhY2UnPg0KCQkJCQk8YSBvbmNsaWNrPSdKYXZhc2NyaXB0OmVkaXRBcmVhLmV4ZWNDb21tYW5kKCJoaWRkZW5fc2VhcmNoIiknPjxpbWcgc2VsZWM9J25vbmUnIHNyYz0nW19fQkFTRVVSTF9fXWltYWdlcy9jbG9zZS5naWYnIGFsdD0neyRjbG9zZV9wb3B1cH0nIHRpdGxlPSd7JGNsb3NlX3BvcHVwfScgLz48L2E+PGJyIC8+DQoJCQk8L3RyPjx0cj4NCgkJCQk8dGQgc2VsZWM9J25vbmUnPnskcmVwbGFjZX08L3RkPg0KCQkJCTx0ZD48aW5wdXQgdHlwZT0ndGV4dCcgaWQ9J2FyZWFfcmVwbGFjZScgLz48L3RkPg0KCQkJCTx0ZD48aW1nIGlkPSdtb3ZlX2FyZWFfc2VhcmNoX3JlcGxhY2UnIG9ubW91c2Vkb3duPSdyZXR1cm4gcGFyZW50LnN0YXJ0X21vdmVfZWxlbWVudChldmVudCwiYXJlYV9zZWFyY2hfcmVwbGFjZSIsIHBhcmVudC5mcmFtZXNbImZyYW1lXyIrZWRpdEFyZWEuaWRdKTsnICBzcmM9J1tfX0JBU0VVUkxfX11pbWFnZXMvbW92ZS5naWYnIGFsdD0neyRtb3ZlX3BvcHVwfScgdGl0bGU9J3skbW92ZV9wb3B1cH0nIC8+PC90ZD4NCgkJCTwvdHI+DQoJCTwvdGFibGU+DQoJCTxkaXYgY2xhc3M9J2J1dHRvbic+DQoJCQk8aW5wdXQgdHlwZT0nY2hlY2tib3gnIGlkPSdhcmVhX3NlYXJjaF9tYXRjaF9jYXNlJyAvPjxsYWJlbCBmb3I9J2FyZWFfc2VhcmNoX21hdGNoX2Nhc2UnIHNlbGVjPSdub25lJz57JG1hdGNoX2Nhc2V9PC9sYWJlbD4NCgkJCTxpbnB1dCB0eXBlPSdjaGVja2JveCcgaWQ9J2FyZWFfc2VhcmNoX3JlZ19leHAnIC8+PGxhYmVsIGZvcj0nYXJlYV9zZWFyY2hfcmVnX2V4cCcgc2VsZWM9J25vbmUnPnskcmVnX2V4cH08L2xhYmVsPg0KCQkJPGJyIC8+DQoJCQk8YSBvbmNsaWNrPSdKYXZhc2NyaXB0OmVkaXRBcmVhLmV4ZWNDb21tYW5kKCJhcmVhX3NlYXJjaCIpJyBzZWxlYz0nbm9uZSc+eyRmaW5kX25leHR9PC9hPg0KCQkJPGEgb25jbGljaz0nSmF2YXNjcmlwdDplZGl0QXJlYS5leGVjQ29tbWFuZCgiYXJlYV9yZXBsYWNlIiknIHNlbGVjPSdub25lJz57JHJlcGxhY2V9PC9hPg0KCQkJPGEgb25jbGljaz0nSmF2YXNjcmlwdDplZGl0QXJlYS5leGVjQ29tbWFuZCgiYXJlYV9yZXBsYWNlX2FsbCIpJyBzZWxlYz0nbm9uZSc+eyRyZXBsYWNlX2FsbH08L2E+PGJyIC8+DQoJCTwvZGl2Pg0KCQk8ZGl2IGlkPSdhcmVhX3NlYXJjaF9tc2cnIHNlbGVjPSdub25lJz48L2Rpdj4NCgk8L2Rpdj4NCgk8ZGl2IGlkPSdlZGl0X2FyZWFfaGVscCcgY2xhc3M9J2VkaXRhcmVhX3BvcHVwJz4NCgkJPGRpdiBjbGFzcz0nY2xvc2VfcG9wdXAnPg0KCQkJPGEgb25jbGljaz0nSmF2YXNjcmlwdDplZGl0QXJlYS5leGVjQ29tbWFuZCgiY2xvc2VfYWxsX2lubGluZV9wb3B1cCIpJz48aW1nIHNyYz0nW19fQkFTRVVSTF9fXWltYWdlcy9jbG9zZS5naWYnIGFsdD0neyRjbG9zZV9wb3B1cH0nIHRpdGxlPSd7JGNsb3NlX3BvcHVwfScgLz48L2E+DQoJCTwvZGl2Pg0KCQk8ZGl2PjxoMj5FZGl0YXJlYSBbX19FQV9WRVJTSU9OX19dPC9oMj48YnIgLz4NCgkJCTxoMz57JHNob3J0Y3V0c306PC9oMz4NCgkJCQl7JHRhYn06IHskYWRkX3RhYn08YnIgLz4NCgkJCQl7JHNoaWZ0fSt7JHRhYn06IHskcmVtb3ZlX3RhYn08YnIgLz4NCgkJCQl7JGN0cmx9K2Y6IHskc2VhcmNoX2NvbW1hbmR9PGJyIC8+DQoJCQkJeyRjdHJsfStyOiB7JHJlcGxhY2VfY29tbWFuZH08YnIgLz4NCgkJCQl7JGN0cmx9K2g6IHskaGlnaGxpZ2h0fTxiciAvPg0KCQkJCXskY3RybH0rZzogeyRnb190b19saW5lfTxiciAvPg0KCQkJCXskY3RybH0rejogeyR1bmRvfTxiciAvPg0KCQkJCXskY3RybH0reTogeyRyZWRvfTxiciAvPg0KCQkJCXskY3RybH0rZTogeyRoZWxwfTxiciAvPg0KCQkJCXskY3RybH0rcSwgeyRlc2N9OiB7JGNsb3NlX3BvcHVwfTxiciAvPg0KCQkJCXskYWNjZXNza2V5fSBFOiB7JHRvZ2dsZX08YnIgLz4NCgkJCTxiciAvPg0KCQkJPGVtPnskYWJvdXRfbm90aWNlfTwvZW0+DQoJCQk8YnIgLz48ZGl2IGNsYXNzPSdjb3B5cmlnaHQnPiZjb3B5OyBDaHJpc3RvcGhlIERvbGl2ZXQgMjAwNy0yMDEwPC9kaXY+DQoJCTwvZGl2Pg0KCTwvZGl2Pg0KPC9ib2R5Pg0KPC9odG1sPg0K]]></data>
	</file>
	<file>
	  <filename>/includes/edit_area/todo.txt</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Rk9SIEFVVE9DT01QTEVUSU9OOg0KLSB3b3JrIHdpdGggdGFiIGVkaXRpbmcgKGVhY2ggb25lIGhhdmluZyBpdCdzIGNvbnRleHQpDQotIGFsbG93ICQgaW4gcHJlZml4DQotIGFsbG93IHRvIGNhbGwgdXNlciBmdW5jdGlvbiBmb3IgYXV0b2NvbXBsZXRpb24NCi0gY29ycmVjdGx5IGRpc3BsYXkgdGhlIGJveCB3aXRoIHdpbmRvdyBsaW1pdHMNCi0gZW5hYmxlICJsaXZlIiBkZXRlY3Rpb24gZm9yIG5ldyBzeW50YXgga2V5d29yZCBpbiB0aGUgZmlsZQ0KLSBkaXNwbGF5IGEgbG9uZyBkZXNjcmlwdGlvbiBvZiB0aGUga2V5d29yZCAoYXJyb3VuZCB0aGUgYm94KQ0KDQpET05FOg0KLSBiZWVpbmcgYWJsZSB0byBwcmVmaXggdGhvc2Ugd29yZCBieSBrZXkgd29yZHMgKHNvcnQgb2YgbmFtZXNwYWNlKQ0KLSBoaWRlIGl0IG9uIGNsaWNrDQotIGVuYWJsZSBpdCBmb3IgY3RybCtzcGFjZSBpbiB0aGUgbWlkZGxlIG9mIGEgd29yZA0KDQovKioqKiogVG8gZG8gTmVlZGVkICoqKioqLw0KIA0KLSBJbnRlcm5ldCBleHBsb3JlcjogYWRkaW5nIGEgY2FyYWN0ZXIgb25lIHRoZSBsb25nZXN0IGxpbmUgYXMgZm9yIGNvbnNlcXVlbmNlIHRvIG1ha2UgYSBzY3JvbGxMZWZ0PTAgKGluIG5vbiB3cmFwcGVkIG1vZGUpDQotIERvIG9wdGltaXNhdGlvbiBmb3IgdHJ5aW5nIHRvIG9ubHkgdXBkYXRlIHRoZSBjaGFuZ2VkIGxpbmUgaW4gY29udGVudF9oaWdobGlnaHQNCi0gYWRkIHJlYWwgSUU4IHN1cHBvcnQgKGZpeCB0aGUgdGFidWxhdGlvbiB3aWR0aCBidWcgaW4gSUU4IHRoYXQgaGFzIG5vdyBhbHdheXMgdGhlIHNhbWUgd2lkdGggbm8gbWF0dGVyIHRoZSBmb250LXNpemUgYW5kIGZvbnQtZmFtaWx5IGluIHRleHRhcmVhIGJ1dCBub3QgaW4gPHByZT4uLi4pDQotIGNoYW5nZV9jYWxsYmFjayBpcyBjYWxsZWQgb25lIHRpbWUgYXQgdGhlIGJlZ2lubmluZyBldmVudCBpZiB0aGUgdGV4dCBoYXMgbm90IGNoYW5nZWQNCi0gY2hlY2sgbGF0ZXIgaW5pdCBjYWxsIHdpdGggc2FmYXJpIDMNCi0gaW1wcm92ZSBjYWxsYmFjayBkb2N1bWVudGF0aW9uLg0KDQovKioqKiogVG8gZG8gT3B0aW9ubmFsKioqKiovDQoNCi0gcG9zc2liaWxpdHkgdG8gc3dpdGNoIG9uL29mZiBsaW5lIG51bWJlcnMgKGFsbG93IHRvIGdldCBtb3JlIHNwYWNlKQ0KLSBhbWVsaW9yYXRpb24gb2YgdGhlIHNjcm9sbF90b192aWV3IGZ1bmN0aW9uIGZvciB3aGVuIHRoZXJlIGlzIHNldmVyYWwgbGluZXMgc2VsZWN0ZWQgKGNlbnRlciBhIGxpdHRsZSBtb3JlIHRoZSBzZWxlY3RlZCB0ZXh0KQ0KLSBpbXByb3ZlIG9wZXJhIDkgY29tcGF0aWJpbGl0eSAodmVyeSBoYXJkLCBuZWVkIGhlbHAgZm9yIHdvcmthcm91bmQpIGNmICJCcm93c2VyIHJlbWFya3MiLg0KLSBvcHRpbWl6ZSBzY3JvbGxfdG9fdmlldyBmb3IgT3BlcmE/DQotIGFkZCB3b3JkIHdyYXAgb3B0aW9uIGZvciBvcGVyYSAoYnVnIHdpdGggcmVuZGVyaW5nIG1vZGUgb2YgcHJlLXdyYXANCi0gcG9zc2liaWxpdHkgdG8gYWRkIGxhcmdlciBmb250IHNpemVzIGFzIG9wdGlvbnM/DQoNCi8qKiogQnVncyAqKiovDQoNCi0gZmlyZWZveDogd2hlbiB1c2luZyB2ZXJkYW5hIChvciBvdGhlciBub24tbW9ub3NwYWNlIGZvbnRzKSBzd2l0Y2hpbmcgdGhlIGZvbnQgc2l6ZSBhZnRlciBmb250IGxvYWQgaGFzIGFzIHJlc3VsdHMgdG8gc29tZXRpbWVzIGdpdmUgZGlmZmVyZW50IHJlbmRlciBpbiB0ZXh0YXJlYSBhbmQgaW4gY29udGVudF9oaWdobGlnaHQgKGVzcGFjaWFsbHkgbmVhciAxMSBhbmQgMTJwdCkNCi0gb3BlcmE6IChibG9jIHdvcmQtd3JhcCBvbiBvcGVyYSkgYnVnIHdpdGggY3Vyc29yX2VuZCAoKVtdIGZvciBhIHdyYXBwZWQgbGluZSAoaGFzIHdyb25nIG9mZnNldExlZnQgaWYgcmVuZGVyZWQgYXMgbXVsdGlsaW5lKQ0KLSBvcGVyYTogKGJsb2Mgd29yZC13cmFwIG9uIG9wZXJhKSBidWcgaWYgZmlyc3Qgd3JhcGVkIGNoYXJhY3RlciBmb2xsb3cgYSA8c3Bhbj4gKG9yIHNpbWlsYXIpIG9uIHdyYXBwZWQgbGluZXMNCi0gd2hlbiBwcmVzc2luZyAicmVzZXQgaGlnaGxpZ2h0IiBpbiBJRSB0aGUgdGV4dGFyZWEgc2Nyb2xsIHRvIHRoZSB0b3AgKGRvbid0IGtub3cgaG93IHRvIGZpeCB0aGlzLi4uKQ0KLSAoc3RpbGwgcGVuZGluZz8pIHdoZW4gcHJlc3NpbmcgInNoaWZ0K3BhZ2UgZG93biIgIGFuZCB0aGVuICJzaGlmdCtwYWdlIHVwIiB0aGUgdG9wIG9mIHRoZSBzZWxlY3Rpb24gbW92ZSB3aGVyZSBhcyBpdCBzaG91bGQgYmUgdG8gdGhlIGJvdHRvbSBvZiB0aGUgc2VsZWN0aW9uIHRvIG1vdmUgKHRvIGZpeCBpdDogbXVzdCBrbm93IGluIHdoaWNoIGRpcmVjdGlvbiB0aGUgc2VsZWN0aW9uIGdyb3cgaW4gImdldF9zZWxlY3Rpb25faW5mb3MiKQ0KDQoNCi8qKiogUHJvYmxlbXMgKioqLw0KDQoNCi8qKiogSGlnaGxpZ2h0IGJ1Z3MgKioqLw0KDQovKioqIEhpZ2hsaWdodCBwcm9ibGVtcyAqKiovDQotIG9ubHkgb25lIGxhbmd1YWdlIGF0IHRoZSBzYW1lIHRpbWUgKG5vIGh0bWwgYW5kIHBocCBpbiB0aGUgc2FtZSB0ZXh0YXJlYS4gVGhpcyBzaG91bGQgYmUgcG9zc2libGUsIGJ1dCB0aGVyZSB3b3VsZCBoYXZlIG5vIG9wdGltaXphdGlvbiBhbmQgYmUgdmVyeSB2ZXJ5IHNsb3cpDQoNCg0KLyoqKiBHbG9iYWwgcmVtYXJrcyAqKiovDQotIGVkaXRhcmVhIG11c3QgYmUgYWx3YXlzIHZpc2libGUsIHRvIGhpZGUgaXQgdXNlIHRoZSBoaWRlKCkgZnVuY3Rpb24NCg0KDQovKioqIEJyb3dzZXIgcmVtYXJrcy9idWdzICoqKi8NCg0KT1BFUkE6DQotIG9wZXJhIGJ1ZzogcHJlc3NpbmcgdGhlICIga2V5IGlzIGVxdWFscyB0byBwcmVzc2luZyB0aGUgc2Nyb2xsZG93biBrZXkgKHdpdGggZnJlbmNoIGtleWJvYXJkIGF0IGxlYXN0KSAoc3RpbGwgaW4gb3BlcmEgOS42PykNCi0gY3VycmVudGx5IGRpc2FibGVkOiBzY3JvbGxEb3duL1VwIGZ1bmN0aW9uIChkdWUgdG8gdGhlICIga2V5IGVycm9yKSAoc3RpbGwgaW4gb2VyYSA5LjY/KQ0KLSBvcGVyYSBpcyB2ZXJ5IHZlcnkgc2xvdyB3aXRoIHN5bnRheCBoaWdobGlnaHQgKHJlZ2V4cCkgKHN0aWxsIGluIG9lcmEgOS42PykNCi0gb3BlcmEgZG9lc24ndCBtYW5hZ2UgY29ycmVjdGx5IHRoZSB3aWR0aCAxMDAlIGZvciB0aGUgaWZyYW1lDQotIGl0J3MgcG9zc2libGUgdG8gbWFrZSBzY3JvbGwgdGhlIHdpbmRvdyBpbiBmdWxsc2NyZWVuDQoNCklFOg0KLSBJRSBpcyBmYXIgc2xvd2VyIHRoYW4gZmlyZWZveCBpbiBoaWdobGlnaHQgbW9kZSBkdWUgdG8gb3BhY2l0eSBmaWx0ZXINCi0gSXQncyBzZWVtcyBpbXBvc3NpYmxlIHRvIGdldCB0aGUgc2VsZWN0aW9uIHJhbmdlIHdoZW4gd3JhcCBtb2RlIGlzICJzb2Z0IiAoYW5kIGl0J3Mgc3RpbGwgdmVyeSBkaWZmY3VsdCB3aGVuIHdyYXAgbW9kZSBpcyBvbikNCi0gVGhlIHN5bnRheCBoaWdobGlnaHQgbW9kZSBpcyBicm9rZW4gd2hlbiB0ZXh0IGxlbmd0aCBpcyB0b28gbG9uZyAofjEwMDAwMCwgMTUwMDAwIGNoYXJzKSBkb24ndCBrbm93IHdoeS4uLg0KDQpGSVJFRk9YOg0KLSB0aGUgc2Nyb2xsSGVpZ2h0IHZhbHVlIGZvciB0aGUgdGV4dGFyZWEgbmV2ZXIgZGVjcmVzZWFzZSB3aGVuIGxpbmVzIGFyZSBkZWxldGVkIChkb24ndCByZW1lbWJlciBhbnl0aGluZyBhYm91dCB0aGlzKQ0KDQoNCg==]]></data>
	</file>
	<file>
	  <filename>/includes/flexigrid.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoNCiAqIEZsZXhpZ3JpZCBmb3IgalF1ZXJ5IC0gTmV3IFdhdmUgR3JpZA0KICoNCiAqIENvcHlyaWdodCAoYykgMjAwOCBQYXVsbyBQLiBNYXJpbmFzICh3ZWJwbGljaXR5Lm5ldC9mbGV4aWdyaWQpDQogKiBEdWFsIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgKE1JVC1MSUNFTlNFLnR4dCkNCiAqIGFuZCBHUEwgKEdQTC1MSUNFTlNFLnR4dCkgbGljZW5zZXMuDQogKg0KICogJERhdGU6IDIwMDgtMDctMTQgMDA6MDk6NDMgKzA4MDAgKFR1ZSwgMTQgSnVsIDIwMDgpICQNCiAqLw0KIA0KKGZ1bmN0aW9uKCQpew0KCQkgIA0KCSQuYWRkRmxleCA9IGZ1bmN0aW9uKHQscCkNCgl7DQoNCgkJaWYgKHQuZ3JpZCkgcmV0dXJuIGZhbHNlOyAvL3JldHVybiBpZiBhbHJlYWR5IGV4aXN0CQ0KCQkNCgkJLy8gYXBwbHkgZGVmYXVsdCBwcm9wZXJ0aWVzDQoJCXAgPSAkLmV4dGVuZCh7DQoJCQkgaGVpZ2h0OiAyMDAsIC8vZGVmYXVsdCBoZWlnaHQNCgkJCSB3aWR0aDogJ2F1dG8nLCAvL2F1dG8gd2lkdGgNCgkJCSBzdHJpcGVkOiB0cnVlLCAvL2FwcGx5IG9kZCBldmVuIHN0cmlwZXMNCgkJCSBub3ZzdHJpcGU6IGZhbHNlLA0KCQkJIG1pbndpZHRoOiAzMCwgLy9taW4gd2lkdGggb2YgY29sdW1ucw0KCQkJIG1pbmhlaWdodDogODAsIC8vbWluIGhlaWdodCBvZiBjb2x1bW5zDQoJCQkgcmVzaXphYmxlOiB0cnVlLCAvL3Jlc2l6YWJsZSB0YWJsZQ0KCQkJIHVybDogZmFsc2UsIC8vYWpheCB1cmwNCgkJCSBtZXRob2Q6ICdQT1NUJywgLy8gZGF0YSBzZW5kaW5nIG1ldGhvZA0KCQkJIGRhdGFUeXBlOiAneG1sJywgLy8gdHlwZSBvZiBkYXRhIGxvYWRlZA0KCQkJIGVycm9ybXNnOiAnQ29ubmVjdGlvbiBFcnJvcicsDQoJCQkgdXNlcGFnZXI6IGZhbHNlLCAvLw0KCQkJIG5vd3JhcDogdHJ1ZSwgLy8NCgkJCSBwYWdlOiAxLCAvL2N1cnJlbnQgcGFnZQ0KCQkJIHRvdGFsOiAxLCAvL3RvdGFsIHBhZ2VzDQoJCQkgdXNlUnA6IHRydWUsIC8vdXNlIHRoZSByZXN1bHRzIHBlciBwYWdlIHNlbGVjdCBib3gNCgkJCSBycDogMTUsIC8vIHJlc3VsdHMgcGVyIHBhZ2UNCgkJCSBycE9wdGlvbnM6IFsxMCwxNSwyMCwyNSw0MF0sDQoJCQkgdGl0bGU6IGZhbHNlLA0KCQkJIHBhZ2VzdGF0OiAnRGlzcGxheWluZyB7ZnJvbX0gdG8ge3RvfSBvZiB7dG90YWx9IGl0ZW1zJywNCgkJCSBwYWdldGV4dDogJ1BhZ2UnLA0KCQkJIG91dG9mOiAnb2YnLA0KCQkJIGZpbmR0ZXh0OiAnRmluZCcsDQoJCQkgcHJvY21zZzogJ1Byb2Nlc3NpbmcsIHBsZWFzZSB3YWl0IC4uLicsDQoJCQkgcXVlcnk6ICcnLA0KCQkJIHF0eXBlOiAnJywNCgkJCSBub21zZzogJ05vIGl0ZW1zJywNCgkJCSBtaW5Db2xUb2dnbGU6IDEsIC8vbWluaW11bSBhbGxvd2VkIGNvbHVtbiB0byBiZSBoaWRkZW4NCgkJCSBzaG93VG9nZ2xlQnRuOiB0cnVlLCAvL3Nob3cgb3IgaGlkZSBjb2x1bW4gdG9nZ2xlIHBvcHVwDQoJCQkgaGlkZU9uU3VibWl0OiB0cnVlLA0KCQkJIGF1dG9sb2FkOiB0cnVlLA0KCQkJIGJsb2NrT3BhY2l0eTogMC41LA0KCQkJIG9uRHJhZ0NvbDogZmFsc2UsDQoJCQkgb25Ub2dnbGVDb2w6IGZhbHNlLA0KCQkJIG9uQ2hhbmdlU29ydDogZmFsc2UsDQoJCQkgb25TdWNjZXNzOiBmYWxzZSwNCgkJCSBvbkVycm9yOiBmYWxzZSwNCgkJCSBvblN1Ym1pdDogZmFsc2UgLy8gdXNpbmcgYSBjdXN0b20gcG9wdWxhdGUgZnVuY3Rpb24NCgkJICB9LCBwKTsNCgkJICAJCQ0KDQoJCSQodCkNCgkJLnNob3coKSAvL3Nob3cgaWYgaGlkZGVuDQoJCS5hdHRyKHtjZWxsUGFkZGluZzogMCwgY2VsbFNwYWNpbmc6IDAsIGJvcmRlcjogMH0pICAvL3JlbW92ZSBwYWRkaW5nIGFuZCBzcGFjaW5nDQoJCS5yZW1vdmVBdHRyKCd3aWR0aCcpIC8vcmVtb3ZlIHdpZHRoIHByb3BlcnRpZXMJDQoJCTsNCgkJDQoJCS8vY3JlYXRlIGdyaWQgY2xhc3MNCgkJdmFyIGcgPSB7DQoJCQloc2V0IDoge30sDQoJCQlyZVBvc0RyYWc6IGZ1bmN0aW9uICgpIHsNCg0KCQkJdmFyIGNkbGVmdCA9IDAgLSB0aGlzLmhEaXYuc2Nyb2xsTGVmdDsNCgkJCWlmICh0aGlzLmhEaXYuc2Nyb2xsTGVmdD4wKSBjZGxlZnQgLT0gTWF0aC5mbG9vcihwLmNnd2lkdGgvMik7DQoJCQkkKGcuY0RyYWcpLmNzcyh7dG9wOmcuaERpdi5vZmZzZXRUb3ArMX0pOw0KCQkJdmFyIGNkcGFkID0gdGhpcy5jZHBhZDsNCgkJCQ0KCQkJJCgnZGl2JyxnLmNEcmFnKS5oaWRlKCk7DQoJCQkNCgkJCSQoJ3RoZWFkIHRyOmZpcnN0IHRoOnZpc2libGUnLHRoaXMuaERpdikuZWFjaA0KCQkJCSgNCgkJCSAJZnVuY3Rpb24gKCkNCgkJCQkJew0KCQkJCQl2YXIgbiA9ICQoJ3RoZWFkIHRyOmZpcnN0IHRoOnZpc2libGUnLGcuaERpdikuaW5kZXgodGhpcyk7DQoNCgkJCQkJdmFyIGNkcG9zID0gcGFyc2VJbnQoJCgnZGl2Jyx0aGlzKS53aWR0aCgpKTsNCgkJCQkJdmFyIHBwb3MgPSBjZHBvczsNCgkJCQkJaWYgKGNkbGVmdD09MCkgDQoJCQkJCQkJY2RsZWZ0IC09IE1hdGguZmxvb3IocC5jZ3dpZHRoLzIpOyANCg0KCQkJCQljZHBvcyA9IGNkcG9zICsgY2RsZWZ0ICsgY2RwYWQ7DQoJCQkJCQ0KCQkJCQkkKCdkaXY6ZXEoJytuKycpJyxnLmNEcmFnKS5jc3MoeydsZWZ0JzpjZHBvcysncHgnfSkuc2hvdygpOw0KDQoJCQkJCWNkbGVmdCA9IGNkcG9zOw0KCQkJCQl9DQoJCQkJKTsNCgkJCQkNCgkJCX0sDQoJCQlmaXhIZWlnaHQ6IGZ1bmN0aW9uIChuZXdIKSB7DQoJCQkJCW5ld0ggPSBmYWxzZTsNCgkJCQkJaWYgKCFuZXdIKSBuZXdIID0gJChnLmJEaXYpLmhlaWdodCgpOw0KCQkJCQl2YXIgaGRIZWlnaHQgPSAkKHRoaXMuaERpdikuaGVpZ2h0KCk7DQoJCQkJCSQoJ2RpdicsdGhpcy5jRHJhZykuZWFjaCgNCgkJCQkJCWZ1bmN0aW9uICgpDQoJCQkJCQkJew0KCQkJCQkJCQkkKHRoaXMpLmhlaWdodChuZXdIK2hkSGVpZ2h0KTsNCgkJCQkJCQl9DQoJCQkJCSk7DQoJCQkJCQ0KCQkJCQl2YXIgbmQgPSBwYXJzZUludCgkKGcubkRpdikuaGVpZ2h0KCkpOw0KCQkJCQkNCgkJCQkJaWYgKG5kPm5ld0gpDQoJCQkJCQkkKGcubkRpdikuaGVpZ2h0KG5ld0gpLndpZHRoKDIwMCk7DQoJCQkJCWVsc2UNCgkJCQkJCSQoZy5uRGl2KS5oZWlnaHQoJ2F1dG8nKS53aWR0aCgnYXV0bycpOw0KCQkJCQkNCgkJCQkJJChnLmJsb2NrKS5jc3Moe2hlaWdodDpuZXdILG1hcmdpbkJvdHRvbToobmV3SCAqIC0xKX0pOw0KCQkJCQkNCgkJCQkJdmFyIGhySCA9IGcuYkRpdi5vZmZzZXRUb3AgKyBuZXdIOw0KCQkJCQlpZiAocC5oZWlnaHQgIT0gJ2F1dG8nICYmIHAucmVzaXphYmxlKSBockggPSBnLnZEaXYub2Zmc2V0VG9wOw0KCQkJCQkkKGcuckRpdikuY3NzKHtoZWlnaHQ6IGhySH0pOw0KCQkJCQ0KCQkJfSwNCgkJCWRyYWdTdGFydDogZnVuY3Rpb24gKGRyYWd0eXBlLGUsb2JqKSB7IC8vZGVmYXVsdCBkcmFnIGZ1bmN0aW9uIHN0YXJ0DQoJCQkJDQoJCQkJaWYgKGRyYWd0eXBlPT0nY29scmVzaXplJykgLy9jb2x1bW4gcmVzaXplDQoJCQkJCXsNCgkJCQkJCSQoZy5uRGl2KS5oaWRlKCk7JChnLm5CdG4pLmhpZGUoKTsNCgkJCQkJCXZhciBuID0gJCgnZGl2Jyx0aGlzLmNEcmFnKS5pbmRleChvYmopOw0KCQkJCQkJdmFyIG93ID0gJCgndGg6dmlzaWJsZSBkaXY6ZXEoJytuKycpJyx0aGlzLmhEaXYpLndpZHRoKCk7DQoJCQkJCQkkKG9iaikuYWRkQ2xhc3MoJ2RyYWdnaW5nJykuc2libGluZ3MoKS5oaWRlKCk7DQoJCQkJCQkkKG9iaikucHJldigpLmFkZENsYXNzKCdkcmFnZ2luZycpLnNob3coKTsNCgkJCQkJCQ0KCQkJCQkJdGhpcy5jb2xyZXNpemUgPSB7c3RhcnRYOiBlLnBhZ2VYLCBvbDogcGFyc2VJbnQob2JqLnN0eWxlLmxlZnQpLCBvdzogb3csIG4gOiBuIH07DQoJCQkJCQkkKCdib2R5JykuY3NzKCdjdXJzb3InLCdjb2wtcmVzaXplJyk7DQoJCQkJCX0NCgkJCQllbHNlIGlmIChkcmFndHlwZT09J3ZyZXNpemUnKSAvL3RhYmxlIHJlc2l6ZQ0KCQkJCQl7DQoJCQkJCQl2YXIgaGdvID0gZmFsc2U7DQoJCQkJCQkkKCdib2R5JykuY3NzKCdjdXJzb3InLCdyb3ctcmVzaXplJyk7DQoJCQkJCQlpZiAob2JqKSANCgkJCQkJCQl7DQoJCQkJCQkJaGdvID0gdHJ1ZTsNCgkJCQkJCQkkKCdib2R5JykuY3NzKCdjdXJzb3InLCdjb2wtcmVzaXplJyk7DQoJCQkJCQkJfQ0KCQkJCQkJdGhpcy52cmVzaXplID0ge2g6IHAuaGVpZ2h0LCBzeTogZS5wYWdlWSwgdzogcC53aWR0aCwgc3g6IGUucGFnZVgsIGhnbzogaGdvfTsNCgkJCQkJCQ0KCQkJCQl9DQoNCgkJCQllbHNlIGlmIChkcmFndHlwZT09J2NvbE1vdmUnKSAvL2NvbHVtbiBoZWFkZXIgZHJhZw0KCQkJCQl7DQoJCQkJCQkkKGcubkRpdikuaGlkZSgpOyQoZy5uQnRuKS5oaWRlKCk7DQoJCQkJCQl0aGlzLmhzZXQgPSAkKHRoaXMuaERpdikub2Zmc2V0KCk7DQoJCQkJCQl0aGlzLmhzZXQucmlnaHQgPSB0aGlzLmhzZXQubGVmdCArICQoJ3RhYmxlJyx0aGlzLmhEaXYpLndpZHRoKCk7DQoJCQkJCQl0aGlzLmhzZXQuYm90dG9tID0gdGhpcy5oc2V0LnRvcCArICQoJ3RhYmxlJyx0aGlzLmhEaXYpLmhlaWdodCgpOw0KCQkJCQkJdGhpcy5kY29sID0gb2JqOw0KCQkJCQkJdGhpcy5kY29sbiA9ICQoJ3RoJyx0aGlzLmhEaXYpLmluZGV4KG9iaik7DQoJCQkJCQkNCgkJCQkJCXRoaXMuY29sQ29weSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOw0KCQkJCQkJdGhpcy5jb2xDb3B5LmNsYXNzTmFtZSA9ICJjb2xDb3B5IjsNCgkJCQkJCXRoaXMuY29sQ29weS5pbm5lckhUTUwgPSBvYmouaW5uZXJIVE1MOw0KCQkJCQkJaWYgKCQuYnJvd3Nlci5tc2llKQ0KCQkJCQkJew0KCQkJCQkJdGhpcy5jb2xDb3B5LmNsYXNzTmFtZSA9ICJjb2xDb3B5IGllIjsNCgkJCQkJCX0NCgkJCQkJCQ0KCQkJCQkJDQoJCQkJCQkkKHRoaXMuY29sQ29weSkuY3NzKHtwb3NpdGlvbjonYWJzb2x1dGUnLGZsb2F0OidsZWZ0JyxkaXNwbGF5Oidub25lJywgdGV4dEFsaWduOiBvYmouYWxpZ259KTsNCgkJCQkJCSQoJ2JvZHknKS5hcHBlbmQodGhpcy5jb2xDb3B5KTsNCgkJCQkJCSQodGhpcy5jRHJhZykuaGlkZSgpOw0KCQkJCQkJDQoJCQkJCX0NCgkJCQkJCQkJCQkJCQkJDQoJCQkJJCgnYm9keScpLm5vU2VsZWN0KCk7DQoJCQkNCgkJCX0sDQoJCQlkcmFnTW92ZTogZnVuY3Rpb24gKGUpIHsNCgkJCQ0KCQkJCWlmICh0aGlzLmNvbHJlc2l6ZSkgLy9jb2x1bW4gcmVzaXplDQoJCQkJCXsNCgkJCQkJCXZhciBuID0gdGhpcy5jb2xyZXNpemUubjsNCgkJCQkJCXZhciBkaWZmID0gZS5wYWdlWC10aGlzLmNvbHJlc2l6ZS5zdGFydFg7DQoJCQkJCQl2YXIgbmxlZnQgPSB0aGlzLmNvbHJlc2l6ZS5vbCArIGRpZmY7DQoJCQkJCQl2YXIgbncgPSB0aGlzLmNvbHJlc2l6ZS5vdyArIGRpZmY7DQoJCQkJCQlpZiAobncgPiBwLm1pbndpZHRoKQ0KCQkJCQkJCXsNCgkJCQkJCQkJJCgnZGl2OmVxKCcrbisnKScsdGhpcy5jRHJhZykuY3NzKCdsZWZ0JyxubGVmdCk7DQoJCQkJCQkJCXRoaXMuY29scmVzaXplLm53ID0gbnc7DQoJCQkJCQkJfQ0KCQkJCQl9DQoJCQkJZWxzZSBpZiAodGhpcy52cmVzaXplKSAvL3RhYmxlIHJlc2l6ZQ0KCQkJCQl7DQoJCQkJCQl2YXIgdiA9IHRoaXMudnJlc2l6ZTsNCgkJCQkJCXZhciB5ID0gZS5wYWdlWTsNCgkJCQkJCXZhciBkaWZmID0geS12LnN5Ow0KCQkJCQkJDQoJCQkJCQlpZiAoIXAuZGVmd2lkdGgpIHAuZGVmd2lkdGggPSBwLndpZHRoOw0KCQkJCQkJDQoJCQkJCQlpZiAocC53aWR0aCAhPSAnYXV0bycgJiYgIXAubm9ocmVzaXplICYmIHYuaGdvKQ0KCQkJCQkJew0KCQkJCQkJCXZhciB4ID0gZS5wYWdlWDsNCgkJCQkJCQl2YXIgeGRpZmYgPSB4IC0gdi5zeDsNCgkJCQkJCQl2YXIgbmV3VyA9IHYudyArIHhkaWZmOw0KCQkJCQkJCWlmIChuZXdXID4gcC5kZWZ3aWR0aCkNCgkJCQkJCQkJew0KCQkJCQkJCQkJdGhpcy5nRGl2LnN0eWxlLndpZHRoID0gbmV3VyArICdweCc7DQoJCQkJCQkJCQlwLndpZHRoID0gbmV3VzsNCgkJCQkJCQkJfQ0KCQkJCQkJfQ0KCQkJCQkJDQoJCQkJCQl2YXIgbmV3SCA9IHYuaCArIGRpZmY7DQoJCQkJCQlpZiAoKG5ld0ggPiBwLm1pbmhlaWdodCB8fCBwLmhlaWdodCA8IHAubWluaGVpZ2h0KSAmJiAhdi5oZ28pDQoJCQkJCQkJew0KCQkJCQkJCQl0aGlzLmJEaXYuc3R5bGUuaGVpZ2h0ID0gbmV3SCArICdweCc7DQoJCQkJCQkJCXAuaGVpZ2h0ID0gbmV3SDsNCgkJCQkJCQkJdGhpcy5maXhIZWlnaHQobmV3SCk7DQoJCQkJCQkJfQ0KCQkJCQkJdiA9IG51bGw7DQoJCQkJCX0NCgkJCQllbHNlIGlmICh0aGlzLmNvbENvcHkpIHsNCgkJCQkJJCh0aGlzLmRjb2wpLmFkZENsYXNzKCd0aE1vdmUnKS5yZW1vdmVDbGFzcygndGhPdmVyJyk7IA0KCQkJCQlpZiAoZS5wYWdlWCA+IHRoaXMuaHNldC5yaWdodCB8fCBlLnBhZ2VYIDwgdGhpcy5oc2V0LmxlZnQgfHwgZS5wYWdlWSA+IHRoaXMuaHNldC5ib3R0b20gfHwgZS5wYWdlWSA8IHRoaXMuaHNldC50b3ApDQoJCQkJCXsNCgkJCQkJCS8vdGhpcy5kcmFnRW5kKCk7DQoJCQkJCQkkKCdib2R5JykuY3NzKCdjdXJzb3InLCdtb3ZlJyk7DQoJCQkJCX0NCgkJCQkJZWxzZSANCgkJCQkJJCgnYm9keScpLmNzcygnY3Vyc29yJywncG9pbnRlcicpOw0KCQkJCQkkKHRoaXMuY29sQ29weSkuY3NzKHt0b3A6ZS5wYWdlWSArIDEwLGxlZnQ6ZS5wYWdlWCArIDIwLCBkaXNwbGF5OiAnYmxvY2snfSk7DQoJCQkJfQkJCQkJCQkJCQkJCQkNCgkJCQ0KCQkJfSwNCgkJCWRyYWdFbmQ6IGZ1bmN0aW9uICgpIHsNCg0KCQkJCWlmICh0aGlzLmNvbHJlc2l6ZSkNCgkJCQkJew0KCQkJCQkJdmFyIG4gPSB0aGlzLmNvbHJlc2l6ZS5uOw0KCQkJCQkJdmFyIG53ID0gdGhpcy5jb2xyZXNpemUubnc7DQoNCgkJCQkJCQkJJCgndGg6dmlzaWJsZSBkaXY6ZXEoJytuKycpJyx0aGlzLmhEaXYpLmNzcygnd2lkdGgnLG53KTsNCgkJCQkJCQkJJCgndHInLHRoaXMuYkRpdikuZWFjaCAoDQoJCQkJCQkJCQlmdW5jdGlvbiAoKQ0KCQkJCQkJCQkJCXsNCgkJCQkJCQkJCQkkKCd0ZDp2aXNpYmxlIGRpdjplcSgnK24rJyknLHRoaXMpLmNzcygnd2lkdGgnLG53KTsNCgkJCQkJCQkJCQl9DQoJCQkJCQkJCSk7DQoJCQkJCQkJCXRoaXMuaERpdi5zY3JvbGxMZWZ0ID0gdGhpcy5iRGl2LnNjcm9sbExlZnQ7DQoNCg0KCQkJCQkJJCgnZGl2OmVxKCcrbisnKScsdGhpcy5jRHJhZykuc2libGluZ3MoKS5zaG93KCk7DQoJCQkJCQkkKCcuZHJhZ2dpbmcnLHRoaXMuY0RyYWcpLnJlbW92ZUNsYXNzKCdkcmFnZ2luZycpOw0KCQkJCQkJdGhpcy5yZVBvc0RyYWcoKTsNCgkJCQkJCXRoaXMuZml4SGVpZ2h0KCk7DQoJCQkJCQl0aGlzLmNvbHJlc2l6ZSA9IGZhbHNlOw0KCQkJCQl9DQoJCQkJZWxzZSBpZiAodGhpcy52cmVzaXplKQ0KCQkJCQl7DQoJCQkJCQl0aGlzLnZyZXNpemUgPSBmYWxzZTsNCgkJCQkJfQ0KCQkJCWVsc2UgaWYgKHRoaXMuY29sQ29weSkNCgkJCQkJew0KCQkJCQkJJCh0aGlzLmNvbENvcHkpLnJlbW92ZSgpOw0KCQkJCQkJaWYgKHRoaXMuZGNvbHQgIT0gbnVsbCkNCgkJCQkJCQl7DQoJCQkJCQkJDQoJCQkJCQkJDQoJCQkJCQkJaWYgKHRoaXMuZGNvbG4+dGhpcy5kY29sdCkNCgkJCQkJCQkJJCgndGg6ZXEoJyt0aGlzLmRjb2x0KycpJyx0aGlzLmhEaXYpLmJlZm9yZSh0aGlzLmRjb2wpOw0KCQkJCQkJCWVsc2UNCgkJCQkJCQkJJCgndGg6ZXEoJyt0aGlzLmRjb2x0KycpJyx0aGlzLmhEaXYpLmFmdGVyKHRoaXMuZGNvbCk7DQoJCQkJCQkJDQoJCQkJCQkJDQoJCQkJCQkJDQoJCQkJCQkJdGhpcy5zd2l0Y2hDb2wodGhpcy5kY29sbix0aGlzLmRjb2x0KTsNCgkJCQkJCQkkKHRoaXMuY2Ryb3BsZWZ0KS5yZW1vdmUoKTsNCgkJCQkJCQkkKHRoaXMuY2Ryb3ByaWdodCkucmVtb3ZlKCk7DQoJCQkJCQkJdGhpcy5yZVBvc0RyYWcoKTsNCgkJCQkJCQkNCgkJCQkJCQlpZiAocC5vbkRyYWdDb2wpIHAub25EcmFnQ29sKHRoaXMuZGNvbG4sIHRoaXMuZGNvbHQpOw0KCQkJCQkJCQkJCQkJCQkJCQkJCQ0KCQkJCQkJCX0NCgkJCQkJCQ0KCQkJCQkJdGhpcy5kY29sID0gbnVsbDsNCgkJCQkJCXRoaXMuaHNldCA9IG51bGw7DQoJCQkJCQl0aGlzLmRjb2xuID0gbnVsbDsNCgkJCQkJCXRoaXMuZGNvbHQgPSBudWxsOw0KCQkJCQkJdGhpcy5jb2xDb3B5ID0gbnVsbDsNCgkJCQkJCQ0KCQkJCQkJJCgnLnRoTW92ZScsdGhpcy5oRGl2KS5yZW1vdmVDbGFzcygndGhNb3ZlJyk7DQoJCQkJCQkkKHRoaXMuY0RyYWcpLnNob3coKTsNCgkJCQkJfQkJCQkJCQkJCQkNCgkJCQkkKCdib2R5JykuY3NzKCdjdXJzb3InLCdkZWZhdWx0Jyk7DQoJCQkJJCgnYm9keScpLm5vU2VsZWN0KGZhbHNlKTsNCgkJCX0sDQoJCQl0b2dnbGVDb2w6IGZ1bmN0aW9uKGNpZCx2aXNpYmxlKSB7DQoJCQkJDQoJCQkJdmFyIG5jb2wgPSAkKCJ0aFtheGlzPSdjb2wiK2NpZCsiJ10iLHRoaXMuaERpdilbMF07DQoJCQkJdmFyIG4gPSAkKCd0aGVhZCB0aCcsZy5oRGl2KS5pbmRleChuY29sKTsNCgkJCQl2YXIgY2IgPSAkKCdpbnB1dFt2YWx1ZT0nK2NpZCsnXScsZy5uRGl2KVswXTsNCgkJCQkNCgkJCQkNCgkJCQlpZiAodmlzaWJsZT09bnVsbCkNCgkJCQkJew0KCQkJCQkJdmlzaWJsZSA9IG5jb2wuaGlkZTsNCgkJCQkJfQ0KCQkJCQ0KCQkJCQ0KCQkJCQ0KCQkJCWlmICgkKCdpbnB1dDpjaGVja2VkJyxnLm5EaXYpLmxlbmd0aDxwLm1pbkNvbFRvZ2dsZSYmIXZpc2libGUpIHJldHVybiBmYWxzZTsNCgkJCQkNCgkJCQlpZiAodmlzaWJsZSkNCgkJCQkJew0KCQkJCQkJbmNvbC5oaWRlID0gZmFsc2U7DQoJCQkJCQkkKG5jb2wpLnNob3coKTsNCgkJCQkJCWNiLmNoZWNrZWQgPSB0cnVlOw0KCQkJCQl9DQoJCQkJZWxzZQ0KCQkJCQl7DQoJCQkJCQluY29sLmhpZGUgPSB0cnVlOw0KCQkJCQkJJChuY29sKS5oaWRlKCk7DQoJCQkJCQljYi5jaGVja2VkID0gZmFsc2U7DQoJCQkJCX0NCgkJCQkJDQoJCQkJCQkkKCd0Ym9keSB0cicsdCkuZWFjaA0KCQkJCQkJCSgNCgkJCQkJCQkJZnVuY3Rpb24gKCkNCgkJCQkJCQkJCXsNCgkJCQkJCQkJCQlpZiAodmlzaWJsZSkNCgkJCQkJCQkJCQkJJCgndGQ6ZXEoJytuKycpJyx0aGlzKS5zaG93KCk7DQoJCQkJCQkJCQkJZWxzZQ0KCQkJCQkJCQkJCQkkKCd0ZDplcSgnK24rJyknLHRoaXMpLmhpZGUoKTsNCgkJCQkJCQkJCX0NCgkJCQkJCQkpOwkJCQkJCQkNCgkJCQkNCgkJCQl0aGlzLnJlUG9zRHJhZygpOw0KCQkJCQ0KCQkJCWlmIChwLm9uVG9nZ2xlQ29sKSBwLm9uVG9nZ2xlQ29sKGNpZCx2aXNpYmxlKTsNCgkJCQkNCgkJCQlyZXR1cm4gdmlzaWJsZTsNCgkJCX0sDQoJCQlzd2l0Y2hDb2w6IGZ1bmN0aW9uKGNkcmFnLGNkcm9wKSB7IC8vc3dpdGNoIGNvbHVtbnMNCgkJCQkNCgkJCQkkKCd0Ym9keSB0cicsdCkuZWFjaA0KCQkJCQkoDQoJCQkJCQlmdW5jdGlvbiAoKQ0KCQkJCQkJCXsNCgkJCQkJCQkJaWYgKGNkcmFnPmNkcm9wKQ0KCQkJCQkJCQkJJCgndGQ6ZXEoJytjZHJvcCsnKScsdGhpcykuYmVmb3JlKCQoJ3RkOmVxKCcrY2RyYWcrJyknLHRoaXMpKTsNCgkJCQkJCQkJZWxzZQ0KCQkJCQkJCQkJJCgndGQ6ZXEoJytjZHJvcCsnKScsdGhpcykuYWZ0ZXIoJCgndGQ6ZXEoJytjZHJhZysnKScsdGhpcykpOw0KCQkJCQkJCX0NCgkJCQkJKTsNCgkJCQkJDQoJCQkJCS8vc3dpdGNoIG9yZGVyIGluIG5EaXYNCgkJCQkJaWYgKGNkcmFnPmNkcm9wKQ0KCQkJCQkJJCgndHI6ZXEoJytjZHJvcCsnKScsdGhpcy5uRGl2KS5iZWZvcmUoJCgndHI6ZXEoJytjZHJhZysnKScsdGhpcy5uRGl2KSk7DQoJCQkJCWVsc2UNCgkJCQkJCSQoJ3RyOmVxKCcrY2Ryb3ArJyknLHRoaXMubkRpdikuYWZ0ZXIoJCgndHI6ZXEoJytjZHJhZysnKScsdGhpcy5uRGl2KSk7DQoJCQkJCQkNCgkJCQkJaWYgKCQuYnJvd3Nlci5tc2llJiYkLmJyb3dzZXIudmVyc2lvbjw3LjApICQoJ3RyOmVxKCcrY2Ryb3ArJykgaW5wdXQnLHRoaXMubkRpdilbMF0uY2hlY2tlZCA9IHRydWU7CQ0KCQkJCQkNCgkJCQkJdGhpcy5oRGl2LnNjcm9sbExlZnQgPSB0aGlzLmJEaXYuc2Nyb2xsTGVmdDsNCgkJCX0sCQkJDQoJCQlzY3JvbGw6IGZ1bmN0aW9uKCkgew0KCQkJCQl0aGlzLmhEaXYuc2Nyb2xsTGVmdCA9IHRoaXMuYkRpdi5zY3JvbGxMZWZ0Ow0KCQkJCQl0aGlzLnJlUG9zRHJhZygpOw0KCQkJfSwNCgkJCWFkZERhdGE6IGZ1bmN0aW9uIChkYXRhKSB7IC8vcGFyc2UgZGF0YQ0KCQkJCQ0KCQkJCWlmIChwLnByZVByb2Nlc3MpDQoJCQkJCWRhdGEgPSBwLnByZVByb2Nlc3MoZGF0YSk7DQoJCQkJDQoJCQkJJCgnLnBSZWxvYWQnLHRoaXMucERpdikucmVtb3ZlQ2xhc3MoJ2xvYWRpbmcnKTsNCgkJCQl0aGlzLmxvYWRpbmcgPSBmYWxzZTsNCg0KCQkJCWlmICghZGF0YSkgDQoJCQkJCXsNCgkJCQkJJCgnLnBQYWdlU3RhdCcsdGhpcy5wRGl2KS5odG1sKHAuZXJyb3Jtc2cpOwkNCgkJCQkJcmV0dXJuIGZhbHNlOw0KCQkJCQl9DQoNCgkJCQlpZiAocC5kYXRhVHlwZT09J3htbCcpDQoJCQkJCXAudG90YWwgPSArJCgncm93cyB0b3RhbCcsZGF0YSkudGV4dCgpOw0KCQkJCWVsc2UNCgkJCQkJcC50b3RhbCA9IGRhdGEudG90YWw7DQoJCQkJCQ0KCQkJCWlmIChwLnRvdGFsPT0wKQ0KCQkJCQl7DQoJCQkJCSQoJ3RyLCBhLCB0ZCwgZGl2Jyx0KS51bmJpbmQoKTsNCgkJCQkJJCh0KS5lbXB0eSgpOw0KCQkJCQlwLnBhZ2VzID0gMTsNCgkJCQkJcC5wYWdlID0gMTsNCgkJCQkJdGhpcy5idWlsZHBhZ2VyKCk7DQoJCQkJCSQoJy5wUGFnZVN0YXQnLHRoaXMucERpdikuaHRtbChwLm5vbXNnKTsNCgkJCQkJcmV0dXJuIGZhbHNlOw0KCQkJCQl9DQoJCQkJDQoJCQkJcC5wYWdlcyA9IE1hdGguY2VpbChwLnRvdGFsL3AucnApOw0KCQkJCQ0KCQkJCWlmIChwLmRhdGFUeXBlPT0neG1sJykNCgkJCQkJcC5wYWdlID0gKyQoJ3Jvd3MgcGFnZScsZGF0YSkudGV4dCgpOw0KCQkJCWVsc2UNCgkJCQkJcC5wYWdlID0gZGF0YS5wYWdlOw0KCQkJCQ0KCQkJCXRoaXMuYnVpbGRwYWdlcigpOw0KDQoJCQkJLy9idWlsZCBuZXcgYm9keQ0KCQkJCXZhciB0Ym9keSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3Rib2R5Jyk7DQoJCQkJDQoJCQkJaWYgKHAuZGF0YVR5cGU9PSdqc29uJykNCgkJCQl7DQoJCQkJCSQuZWFjaA0KCQkJCQkoDQoJCQkJCSBkYXRhLnJvd3MsDQoJCQkJCSBmdW5jdGlvbihpLHJvdykgDQoJCQkJCSAJew0KCQkJCQkJCXZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7DQoJCQkJCQkJaWYgKGkgJSAyICYmIHAuc3RyaXBlZCkgdHIuY2xhc3NOYW1lID0gJ2Vyb3cnOw0KCQkJCQkJCQ0KCQkJCQkJCWlmIChyb3cuaWQpIHRyLmlkID0gJ3JvdycgKyByb3cuaWQ7DQoJCQkJCQkJDQoJCQkJCQkJLy9hZGQgY2VsbA0KCQkJCQkJCSQoJ3RoZWFkIHRyOmZpcnN0IHRoJyxnLmhEaXYpLmVhY2gNCgkJCQkJCQkoDQoJCQkJCQkJIAlmdW5jdGlvbiAoKQ0KCQkJCQkJCQkJew0KCQkJCQkJCQkJCQ0KCQkJCQkJCQkJCXZhciB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7DQoJCQkJCQkJCQkJdmFyIGlkeCA9ICQodGhpcykuYXR0cignYXhpcycpLnN1YnN0cigzKTsNCgkJCQkJCQkJCQl0ZC5hbGlnbiA9IHRoaXMuYWxpZ247DQoJCQkJCQkJCQkJdGQuaW5uZXJIVE1MID0gcm93LmNlbGxbaWR4XTsNCgkJCQkJCQkJCQkkKHRyKS5hcHBlbmQodGQpOw0KCQkJCQkJCQkJCXRkID0gbnVsbDsNCgkJCQkJCQkJCX0NCgkJCQkJCQkpOyANCgkJCQkJCQkNCgkJCQkJCQkNCgkJCQkJCQlpZiAoJCgndGhlYWQnLHRoaXMuZ0RpdikubGVuZ3RoPDEpIC8vaGFuZGxlIGlmIGdyaWQgaGFzIG5vIGhlYWRlcnMNCgkJCQkJCQl7DQoNCgkJCQkJCQkJCWZvciAoaWR4PTA7aWR4PGNlbGwubGVuZ3RoO2lkeCsrKQ0KCQkJCQkJCQkJCXsNCgkJCQkJCQkJCQl2YXIgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOw0KCQkJCQkJCQkJCXRkLmlubmVySFRNTCA9IHJvdy5jZWxsW2lkeF07DQoJCQkJCQkJCQkJJCh0cikuYXBwZW5kKHRkKTsNCgkJCQkJCQkJCQl0ZCA9IG51bGw7DQoJCQkJCQkJCQkJfQ0KCQkJCQkJCX0JCQkJCQkJDQoJCQkJCQkJDQoJCQkJCQkJJCh0Ym9keSkuYXBwZW5kKHRyKTsNCgkJCQkJCQl0ciA9IG51bGw7DQoJCQkJCQl9DQoJCQkJCSk7CQkJCQ0KCQkJCQkNCgkJCQl9IGVsc2UgaWYgKHAuZGF0YVR5cGU9PSd4bWwnKSB7DQoNCgkJCQlpID0gMTsNCg0KCQkJCSQoInJvd3Mgcm93IixkYXRhKS5lYWNoDQoJCQkJKA0KCQkJCSANCgkJCQkgCWZ1bmN0aW9uICgpDQoJCQkJCQl7DQoJCQkJCQkJDQoJCQkJCQkJaSsrOw0KCQkJCQkJCQ0KCQkJCQkJCXZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7DQoJCQkJCQkJaWYgKGkgJSAyICYmIHAuc3RyaXBlZCkgdHIuY2xhc3NOYW1lID0gJ2Vyb3cnOw0KDQoJCQkJCQkJdmFyIG5pZCA9JCh0aGlzKS5hdHRyKCdpZCcpOw0KCQkJCQkJCWlmIChuaWQpIHRyLmlkID0gJ3JvdycgKyBuaWQ7DQoJCQkJCQkJDQoJCQkJCQkJbmlkID0gbnVsbDsNCgkJCQkJCQkNCgkJCQkJCQl2YXIgcm9iaiA9IHRoaXM7DQoNCgkJCQkJCQkNCgkJCQkJCQkNCgkJCQkJCQkkKCd0aGVhZCB0cjpmaXJzdCB0aCcsZy5oRGl2KS5lYWNoDQoJCQkJCQkJKA0KCQkJCQkJCSAJZnVuY3Rpb24gKCkNCgkJCQkJCQkJCXsNCgkJCQkJCQkJCQkNCgkJCQkJCQkJCQl2YXIgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOw0KCQkJCQkJCQkJCXZhciBpZHggPSAkKHRoaXMpLmF0dHIoJ2F4aXMnKS5zdWJzdHIoMyk7DQoJCQkJCQkJCQkJdGQuYWxpZ24gPSB0aGlzLmFsaWduOw0KCQkJCQkJCQkJCXRkLmlubmVySFRNTCA9ICQoImNlbGw6ZXEoIisgaWR4ICsiKSIscm9iaikudGV4dCgpOw0KCQkJCQkJCQkJCSQodHIpLmFwcGVuZCh0ZCk7DQoJCQkJCQkJCQkJdGQgPSBudWxsOw0KCQkJCQkJCQkJfQ0KCQkJCQkJCSk7DQoJCQkJCQkJDQoJCQkJCQkJDQoJCQkJCQkJaWYgKCQoJ3RoZWFkJyx0aGlzLmdEaXYpLmxlbmd0aDwxKSAvL2hhbmRsZSBpZiBncmlkIGhhcyBubyBoZWFkZXJzDQoJCQkJCQkJew0KCQkJCQkJCQkkKCdjZWxsJyx0aGlzKS5lYWNoDQoJCQkJCQkJCSgNCgkJCQkJCQkJIAlmdW5jdGlvbiAoKQ0KCQkJCQkJCQkJCXsNCgkJCQkJCQkJCQl2YXIgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOw0KCQkJCQkJCQkJCXRkLmlubmVySFRNTCA9ICQodGhpcykudGV4dCgpOw0KCQkJCQkJCQkJCSQodHIpLmFwcGVuZCh0ZCk7DQoJCQkJCQkJCQkJdGQgPSBudWxsOw0KCQkJCQkJCQkJCX0NCgkJCQkJCQkJKTsNCgkJCQkJCQl9DQoJCQkJCQkJDQoJCQkJCQkJJCh0Ym9keSkuYXBwZW5kKHRyKTsNCgkJCQkJCQl0ciA9IG51bGw7DQoJCQkJCQkJcm9iaiA9IG51bGw7DQoJCQkJCQl9DQoJCQkJKTsNCgkJCQkNCgkJCQl9DQoNCgkJCQkkKCd0cicsdCkudW5iaW5kKCk7DQoJCQkJJCh0KS5lbXB0eSgpOw0KCQkJCQ0KCQkJCSQodCkuYXBwZW5kKHRib2R5KTsNCgkJCQl0aGlzLmFkZENlbGxQcm9wKCk7DQoJCQkJdGhpcy5hZGRSb3dQcm9wKCk7DQoJCQkJDQoJCQkJLy90aGlzLmZpeEhlaWdodCgkKHRoaXMuYkRpdikuaGVpZ2h0KCkpOw0KCQkJCQ0KCQkJCXRoaXMucmVQb3NEcmFnKCk7DQoJCQkJDQoJCQkJdGJvZHkgPSBudWxsOyBkYXRhID0gbnVsbDsgaSA9IG51bGw7IA0KCQkJCQ0KCQkJCWlmIChwLm9uU3VjY2VzcykgcC5vblN1Y2Nlc3MoKTsNCgkJCQlpZiAocC5oaWRlT25TdWJtaXQpICQoZy5ibG9jaykucmVtb3ZlKCk7Ly8kKHQpLnNob3coKTsNCgkJCQkNCgkJCQl0aGlzLmhEaXYuc2Nyb2xsTGVmdCA9IHRoaXMuYkRpdi5zY3JvbGxMZWZ0Ow0KCQkJCWlmICgkLmJyb3dzZXIub3BlcmEpICQodCkuY3NzKCd2aXNpYmlsaXR5JywndmlzaWJsZScpOw0KCQkJCQ0KCQkJfSwNCgkJCWNoYW5nZVNvcnQ6IGZ1bmN0aW9uKHRoKSB7IC8vY2hhbmdlIHNvcnRvcmRlcg0KCQkJDQoJCQkJaWYgKHRoaXMubG9hZGluZykgcmV0dXJuIHRydWU7DQoJCQkJDQoJCQkJJChnLm5EaXYpLmhpZGUoKTskKGcubkJ0bikuaGlkZSgpOw0KCQkJCQ0KCQkJCWlmIChwLnNvcnRuYW1lID09ICQodGgpLmF0dHIoJ2FiYnInKSkNCgkJCQkJew0KCQkJCQkJaWYgKHAuc29ydG9yZGVyPT0nYXNjJykgcC5zb3J0b3JkZXIgPSAnZGVzYyc7IA0KCQkJCQkJZWxzZSBwLnNvcnRvcmRlciA9ICdhc2MnOwkJCQkJCQ0KCQkJCQl9DQoJCQkJDQoJCQkJJCh0aCkuYWRkQ2xhc3MoJ3NvcnRlZCcpLnNpYmxpbmdzKCkucmVtb3ZlQ2xhc3MoJ3NvcnRlZCcpOw0KCQkJCSQoJy5zZGVzYycsdGhpcy5oRGl2KS5yZW1vdmVDbGFzcygnc2Rlc2MnKTsNCgkJCQkkKCcuc2FzYycsdGhpcy5oRGl2KS5yZW1vdmVDbGFzcygnc2FzYycpOw0KCQkJCSQoJ2RpdicsdGgpLmFkZENsYXNzKCdzJytwLnNvcnRvcmRlcik7DQoJCQkJcC5zb3J0bmFtZT0gJCh0aCkuYXR0cignYWJicicpOw0KCQkJCQ0KCQkJCWlmIChwLm9uQ2hhbmdlU29ydCkNCgkJCQkJcC5vbkNoYW5nZVNvcnQocC5zb3J0bmFtZSxwLnNvcnRvcmRlcik7DQoJCQkJZWxzZQ0KCQkJCQl0aGlzLnBvcHVsYXRlKCk7CQkJCQ0KCQkJDQoJCQl9LA0KCQkJYnVpbGRwYWdlcjogZnVuY3Rpb24oKXsgLy9yZWJ1aWxkIHBhZ2VyIGJhc2VkIG9uIG5ldyBwcm9wZXJ0aWVzDQoJCQkNCgkJCSQoJy5wY29udHJvbCBpbnB1dCcsdGhpcy5wRGl2KS52YWwocC5wYWdlKTsNCgkJCSQoJy5wY29udHJvbCBzcGFuJyx0aGlzLnBEaXYpLmh0bWwocC5wYWdlcyk7DQoJCQkNCgkJCXZhciByMSA9IChwLnBhZ2UtMSkgKiBwLnJwICsgMTsgDQoJCQl2YXIgcjIgPSByMSArIHAucnAgLSAxOyANCgkJCQ0KCQkJaWYgKHAudG90YWw8cjIpIHIyID0gcC50b3RhbDsNCgkJCQ0KCQkJdmFyIHN0YXQgPSBwLnBhZ2VzdGF0Ow0KCQkJDQoJCQlzdGF0ID0gc3RhdC5yZXBsYWNlKC97ZnJvbX0vLHIxKTsNCgkJCXN0YXQgPSBzdGF0LnJlcGxhY2UoL3t0b30vLHIyKTsNCgkJCXN0YXQgPSBzdGF0LnJlcGxhY2UoL3t0b3RhbH0vLHAudG90YWwpOw0KCQkJDQoJCQkkKCcucFBhZ2VTdGF0Jyx0aGlzLnBEaXYpLmh0bWwoc3RhdCk7DQoJCQkNCgkJCX0sDQoJCQlwb3B1bGF0ZTogZnVuY3Rpb24gKCkgeyAvL2dldCBsYXRlc3QgZGF0YQ0KDQoJCQkJaWYgKHRoaXMubG9hZGluZykgcmV0dXJuIHRydWU7DQoNCgkJCQlpZiAocC5vblN1Ym1pdCkNCgkJCQkJew0KCQkJCQkJdmFyIGdoID0gcC5vblN1Ym1pdCgpOw0KCQkJCQkJaWYgKCFnaCkgcmV0dXJuIGZhbHNlOw0KCQkJCQl9DQoNCgkJCQl0aGlzLmxvYWRpbmcgPSB0cnVlOw0KCQkJCWlmICghcC51cmwpIHJldHVybiBmYWxzZTsNCgkJCQkNCgkJCQkkKCcucFBhZ2VTdGF0Jyx0aGlzLnBEaXYpLmh0bWwocC5wcm9jbXNnKTsNCgkJCQkNCgkJCQkkKCcucFJlbG9hZCcsdGhpcy5wRGl2KS5hZGRDbGFzcygnbG9hZGluZycpOw0KCQkJCQ0KCQkJCSQoZy5ibG9jaykuY3NzKHt0b3A6Zy5iRGl2Lm9mZnNldFRvcH0pOw0KCQkJCQ0KCQkJCWlmIChwLmhpZGVPblN1Ym1pdCkgJCh0aGlzLmdEaXYpLnByZXBlbmQoZy5ibG9jayk7IC8vJCh0KS5oaWRlKCk7DQoJCQkJDQoJCQkJaWYgKCQuYnJvd3Nlci5vcGVyYSkgJCh0KS5jc3MoJ3Zpc2liaWxpdHknLCdoaWRkZW4nKTsNCgkJCQkNCgkJCQlpZiAoIXAubmV3cCkgcC5uZXdwID0gMTsNCgkJCQkNCgkJCQlpZiAocC5wYWdlPnAucGFnZXMpIHAucGFnZSA9IHAucGFnZXM7DQoJCQkJLy92YXIgcGFyYW0gPSB7cGFnZTpwLm5ld3AsIHJwOiBwLnJwLCBzb3J0bmFtZTogcC5zb3J0bmFtZSwgc29ydG9yZGVyOiBwLnNvcnRvcmRlciwgcXVlcnk6IHAucXVlcnksIHF0eXBlOiBwLnF0eXBlfTsNCgkJCQl2YXIgcGFyYW0gPSBbDQoJCQkJCSB7IG5hbWUgOiAncGFnZScsIHZhbHVlIDogcC5uZXdwIH0NCgkJCQkJLHsgbmFtZSA6ICdycCcsIHZhbHVlIDogcC5ycCB9DQoJCQkJCSx7IG5hbWUgOiAnc29ydG5hbWUnLCB2YWx1ZSA6IHAuc29ydG5hbWV9DQoJCQkJCSx7IG5hbWUgOiAnc29ydG9yZGVyJywgdmFsdWUgOiBwLnNvcnRvcmRlciB9DQoJCQkJCSx7IG5hbWUgOiAncXVlcnknLCB2YWx1ZSA6IHAucXVlcnl9DQoJCQkJCSx7IG5hbWUgOiAncXR5cGUnLCB2YWx1ZSA6IHAucXR5cGV9DQoJCQkJXTsJCQkJCQkJIA0KCQkJCQkJCSANCgkJCQlpZiAocC5wYXJhbXMpDQoJCQkJCXsNCgkJCQkJCWZvciAodmFyIHBpID0gMDsgcGkgPCBwLnBhcmFtcy5sZW5ndGg7IHBpKyspIHBhcmFtW3BhcmFtLmxlbmd0aF0gPSBwLnBhcmFtc1twaV07DQoJCQkJCX0NCgkJCQkNCgkJCQkJJC5hamF4KHsNCgkJCQkJICAgdHlwZTogcC5tZXRob2QsDQoJCQkJCSAgIHVybDogcC51cmwsDQoJCQkJCSAgIGRhdGE6IHBhcmFtLA0KCQkJCQkgICBkYXRhVHlwZTogcC5kYXRhVHlwZSwNCgkJCQkJICAgc3VjY2VzczogZnVuY3Rpb24oZGF0YSl7Zy5hZGREYXRhKGRhdGEpO30sDQoJCQkJCSAgIGVycm9yOiBmdW5jdGlvbihYTUxIdHRwUmVxdWVzdCwgdGV4dFN0YXR1cywgZXJyb3JUaHJvd24pIHsgdHJ5IHsgaWYgKHAub25FcnJvcikgcC5vbkVycm9yKFhNTEh0dHBSZXF1ZXN0LCB0ZXh0U3RhdHVzLCBlcnJvclRocm93bik7IH0gY2F0Y2ggKGUpIHt9IH0NCgkJCQkJIH0pOw0KCQkJfSwNCgkJCWRvU2VhcmNoOiBmdW5jdGlvbiAoKSB7DQoJCQkJcC5xdWVyeSA9ICQoJ2lucHV0W25hbWU9cV0nLGcuc0RpdikudmFsKCk7DQoJCQkJcC5xdHlwZSA9ICQoJ3NlbGVjdFtuYW1lPXF0eXBlXScsZy5zRGl2KS52YWwoKTsNCgkJCQlwLm5ld3AgPSAxOw0KDQoJCQkJdGhpcy5wb3B1bGF0ZSgpOwkJCQkNCgkJCX0sDQoJCQljaGFuZ2VQYWdlOiBmdW5jdGlvbiAoY3R5cGUpeyAvL2NoYW5nZSBwYWdlDQoJCQkNCgkJCQlpZiAodGhpcy5sb2FkaW5nKSByZXR1cm4gdHJ1ZTsNCgkJCQ0KCQkJCXN3aXRjaChjdHlwZSkNCgkJCQl7DQoJCQkJCWNhc2UgJ2ZpcnN0JzogcC5uZXdwID0gMTsgYnJlYWs7DQoJCQkJCWNhc2UgJ3ByZXYnOiBpZiAocC5wYWdlPjEpIHAubmV3cCA9IHBhcnNlSW50KHAucGFnZSkgLSAxOyBicmVhazsNCgkJCQkJY2FzZSAnbmV4dCc6IGlmIChwLnBhZ2U8cC5wYWdlcykgcC5uZXdwID0gcGFyc2VJbnQocC5wYWdlKSArIDE7IGJyZWFrOw0KCQkJCQljYXNlICdsYXN0JzogcC5uZXdwID0gcC5wYWdlczsgYnJlYWs7DQoJCQkJCWNhc2UgJ2lucHV0JzogDQoJCQkJCQkJdmFyIG52ID0gcGFyc2VJbnQoJCgnLnBjb250cm9sIGlucHV0Jyx0aGlzLnBEaXYpLnZhbCgpKTsNCgkJCQkJCQlpZiAoaXNOYU4obnYpKSBudiA9IDE7DQoJCQkJCQkJaWYgKG52PDEpIG52ID0gMTsNCgkJCQkJCQllbHNlIGlmIChudiA+IHAucGFnZXMpIG52ID0gcC5wYWdlczsNCgkJCQkJCQkkKCcucGNvbnRyb2wgaW5wdXQnLHRoaXMucERpdikudmFsKG52KTsNCgkJCQkJCQlwLm5ld3AgPW52Ow0KCQkJCQkJCWJyZWFrOw0KCQkJCX0NCgkJCQ0KCQkJCWlmIChwLm5ld3A9PXAucGFnZSkgcmV0dXJuIGZhbHNlOw0KCQkJCQ0KCQkJCWlmIChwLm9uQ2hhbmdlUGFnZSkgDQoJCQkJCXAub25DaGFuZ2VQYWdlKHAubmV3cCk7DQoJCQkJZWxzZQkJCQkNCgkJCQkJdGhpcy5wb3B1bGF0ZSgpOw0KCQkJDQoJCQl9LA0KCQkJYWRkQ2VsbFByb3A6IGZ1bmN0aW9uICgpDQoJCQl7DQoJCQkJDQoJCQkJCSQoJ3Rib2R5IHRyIHRkJyxnLmJEaXYpLmVhY2gNCgkJCQkJKA0KCQkJCQkJZnVuY3Rpb24gKCkNCgkJCQkJCQl7DQoJCQkJCQkJCQl2YXIgdGREaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsNCgkJCQkJCQkJCXZhciBuID0gJCgndGQnLCQodGhpcykucGFyZW50KCkpLmluZGV4KHRoaXMpOw0KCQkJCQkJCQkJdmFyIHB0aCA9ICQoJ3RoOmVxKCcrbisnKScsZy5oRGl2KS5nZXQoMCk7DQoJCQkNCgkJCQkJCQkJCWlmIChwdGghPW51bGwpDQoJCQkJCQkJCQl7DQoJCQkJCQkJCQlpZiAocC5zb3J0bmFtZT09JChwdGgpLmF0dHIoJ2FiYnInKSYmcC5zb3J0bmFtZSkgDQoJCQkJCQkJCQkJew0KCQkJCQkJCQkJCXRoaXMuY2xhc3NOYW1lID0gJ3NvcnRlZCc7DQoJCQkJCQkJCQkJfQ0KCQkJCQkJCQkJICQodGREaXYpLmNzcyh7dGV4dEFsaWduOnB0aC5hbGlnbix3aWR0aDogJCgnZGl2OmZpcnN0JyxwdGgpWzBdLnN0eWxlLndpZHRofSk7DQoJCQkJCQkJCQkgDQoJCQkJCQkJCQkgaWYgKHB0aC5oaWRlKSAkKHRoaXMpLmNzcygnZGlzcGxheScsJ25vbmUnKTsNCgkJCQkJCQkJCSANCgkJCQkJCQkJCSB9DQoJCQkJCQkJCQkgDQoJCQkJCQkJCQkgaWYgKHAubm93cmFwPT1mYWxzZSkgJCh0ZERpdikuY3NzKCd3aGl0ZS1zcGFjZScsJ25vcm1hbCcpOw0KCQkJCQkJCQkJIA0KCQkJCQkJCQkJIGlmICh0aGlzLmlubmVySFRNTD09JycpIHRoaXMuaW5uZXJIVE1MID0gJyZuYnNwOyc7DQoJCQkJCQkJCQkgDQoJCQkJCQkJCQkgLy90ZERpdi52YWx1ZSA9IHRoaXMuaW5uZXJIVE1MOyAvL3N0b3JlIHByZXByb2Nlc3MgdmFsdWUNCgkJCQkJCQkJCSB0ZERpdi5pbm5lckhUTUwgPSB0aGlzLmlubmVySFRNTDsNCgkJCQkJCQkJCSANCgkJCQkJCQkJCSB2YXIgcHJudCA9ICQodGhpcykucGFyZW50KClbMF07DQoJCQkJCQkJCQkgdmFyIHBpZCA9IGZhbHNlOw0KCQkJCQkJCQkJIGlmIChwcm50LmlkKSBwaWQgPSBwcm50LmlkLnN1YnN0cigzKTsNCgkJCQkJCQkJCSANCgkJCQkJCQkJCSBpZiAocHRoIT1udWxsKQ0KCQkJCQkJCQkJIHsNCgkJCQkJCQkJCSBpZiAocHRoLnByb2Nlc3MpIHB0aC5wcm9jZXNzKHRkRGl2LHBpZCk7DQoJCQkJCQkJCQkgfQ0KCQkJCQkJCQkJIA0KCQkJCQkJCQkJJCh0aGlzKS5lbXB0eSgpLmFwcGVuZCh0ZERpdikucmVtb3ZlQXR0cignd2lkdGgnKTsgLy93cmFwIGNvbnRlbnQNCg0KCQkJCQkJCQkJLy9hZGQgZWRpdGFibGUgZXZlbnQgaGVyZSAnZGJsY2xpY2snDQoNCgkJCQkJCQl9DQoJCQkJCSk7DQoJCQkJCQ0KCQkJfSwNCgkJCWdldENlbGxEaW06IGZ1bmN0aW9uIChvYmopIC8vIGdldCBjZWxsIHByb3AgZm9yIGVkaXRhYmxlIGV2ZW50DQoJCQl7DQoJCQkJdmFyIGh0ID0gcGFyc2VJbnQoJChvYmopLmhlaWdodCgpKTsNCgkJCQl2YXIgcGh0ID0gcGFyc2VJbnQoJChvYmopLnBhcmVudCgpLmhlaWdodCgpKTsNCgkJCQl2YXIgd3QgPSBwYXJzZUludChvYmouc3R5bGUud2lkdGgpOw0KCQkJCXZhciBwd3QgPSBwYXJzZUludCgkKG9iaikucGFyZW50KCkud2lkdGgoKSk7DQoJCQkJdmFyIHRvcCA9IG9iai5vZmZzZXRQYXJlbnQub2Zmc2V0VG9wOw0KCQkJCXZhciBsZWZ0ID0gb2JqLm9mZnNldFBhcmVudC5vZmZzZXRMZWZ0Ow0KCQkJCXZhciBwZGwgPSBwYXJzZUludCgkKG9iaikuY3NzKCdwYWRkaW5nTGVmdCcpKTsNCgkJCQl2YXIgcGR0ID0gcGFyc2VJbnQoJChvYmopLmNzcygncGFkZGluZ1RvcCcpKTsNCgkJCQlyZXR1cm4ge2h0Omh0LHd0Ond0LHRvcDp0b3AsbGVmdDpsZWZ0LHBkbDpwZGwsIHBkdDpwZHQsIHBodDpwaHQsIHB3dDogcHd0fTsNCgkJCX0sDQoJCQlhZGRSb3dQcm9wOiBmdW5jdGlvbigpDQoJCQl7DQoJCQkJCSQoJ3Rib2R5IHRyJyxnLmJEaXYpLmVhY2gNCgkJCQkJKA0KCQkJCQkJZnVuY3Rpb24gKCkNCgkJCQkJCQl7DQoJCQkJCQkJJCh0aGlzKQ0KCQkJCQkJCS5jbGljaygNCgkJCQkJCQkJZnVuY3Rpb24gKGUpIA0KCQkJCQkJCQkJeyANCgkJCQkJCQkJCQl2YXIgb2JqID0gKGUudGFyZ2V0IHx8IGUuc3JjRWxlbWVudCk7IGlmIChvYmouaHJlZiB8fCBvYmoudHlwZSkgcmV0dXJuIHRydWU7DQoJCQkJCQkJCQkJJCh0aGlzKS50b2dnbGVDbGFzcygndHJTZWxlY3RlZCcpOw0KCQkJCQkJCQkJCWlmIChwLnNpbmdsZVNlbGVjdCkgJCh0aGlzKS5zaWJsaW5ncygpLnJlbW92ZUNsYXNzKCd0clNlbGVjdGVkJyk7DQoJCQkJCQkJCQl9DQoJCQkJCQkJKQ0KCQkJCQkJCS5tb3VzZWRvd24oDQoJCQkJCQkJCWZ1bmN0aW9uIChlKQ0KCQkJCQkJCQkJew0KCQkJCQkJCQkJCWlmIChlLnNoaWZ0S2V5KQ0KCQkJCQkJCQkJCXsNCgkJCQkJCQkJCQkkKHRoaXMpLnRvZ2dsZUNsYXNzKCd0clNlbGVjdGVkJyk7IA0KCQkJCQkJCQkJCWcubXVsdGlzZWwgPSB0cnVlOyANCgkJCQkJCQkJCQl0aGlzLmZvY3VzKCk7DQoJCQkJCQkJCQkJJChnLmdEaXYpLm5vU2VsZWN0KCk7DQoJCQkJCQkJCQkJfQ0KCQkJCQkJCQkJfQ0KCQkJCQkJCSkNCgkJCQkJCQkubW91c2V1cCgNCgkJCQkJCQkJZnVuY3Rpb24gKCkNCgkJCQkJCQkJCXsNCgkJCQkJCQkJCQlpZiAoZy5tdWx0aXNlbCkNCgkJCQkJCQkJCQl7DQoJCQkJCQkJCQkJZy5tdWx0aXNlbCA9IGZhbHNlOw0KCQkJCQkJCQkJCSQoZy5nRGl2KS5ub1NlbGVjdChmYWxzZSk7DQoJCQkJCQkJCQkJfQ0KCQkJCQkJCQkJfQ0KCQkJCQkJCSkNCgkJCQkJCQkuaG92ZXIoDQoJCQkJCQkJCWZ1bmN0aW9uIChlKSANCgkJCQkJCQkJCXsgDQoJCQkJCQkJCQlpZiAoZy5tdWx0aXNlbCkgDQoJCQkJCQkJCQkJew0KCQkJCQkJCQkJCSQodGhpcykudG9nZ2xlQ2xhc3MoJ3RyU2VsZWN0ZWQnKTsgDQoJCQkJCQkJCQkJfQ0KCQkJCQkJCQkJfSwNCgkJCQkJCQkJZnVuY3Rpb24gKCkge30JCQkJCQkNCgkJCQkJCQkpDQoJCQkJCQkJOw0KCQkJCQkJCQ0KCQkJCQkJCWlmICgkLmJyb3dzZXIubXNpZSYmJC5icm93c2VyLnZlcnNpb248Ny4wKQ0KCQkJCQkJCQl7DQoJCQkJCQkJCQkkKHRoaXMpDQoJCQkJCQkJCQkuaG92ZXIoDQoJCQkJCQkJCQkJZnVuY3Rpb24gKCkgeyAkKHRoaXMpLmFkZENsYXNzKCd0ck92ZXInKTsgfSwNCgkJCQkJCQkJCQlmdW5jdGlvbiAoKSB7ICQodGhpcykucmVtb3ZlQ2xhc3MoJ3RyT3ZlcicpOyB9DQoJCQkJCQkJCQkpDQoJCQkJCQkJCQk7DQoJCQkJCQkJCX0NCgkJCQkJCQl9DQoJCQkJCSk7DQoJCQkJCQ0KCQkJCQkNCgkJCX0sDQoJCQlwYWdlcjogMA0KCQkJfTsJCQ0KCQkNCgkJLy9jcmVhdGUgbW9kZWwgaWYgYW55DQoJCWlmIChwLmNvbE1vZGVsKQ0KCQl7DQoJCQl0aGVhZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RoZWFkJyk7DQoJCQl0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7DQoJCQkNCgkJCWZvciAoaT0wO2k8cC5jb2xNb2RlbC5sZW5ndGg7aSsrKQ0KCQkJCXsNCgkJCQkJdmFyIGNtID0gcC5jb2xNb2RlbFtpXTsNCgkJCQkJdmFyIHRoID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGgnKTsNCg0KCQkJCQl0aC5pbm5lckhUTUwgPSBjbS5kaXNwbGF5Ow0KCQkJCQkNCgkJCQkJaWYgKGNtLm5hbWUmJmNtLnNvcnRhYmxlKQ0KCQkJCQkJJCh0aCkuYXR0cignYWJicicsY20ubmFtZSk7DQoJCQkJCQ0KCQkJCQkvL3RoLmlkeCA9IGk7DQoJCQkJCSQodGgpLmF0dHIoJ2F4aXMnLCdjb2wnK2kpOw0KCQkJCQkNCgkJCQkJaWYgKGNtLmFsaWduKQ0KCQkJCQkJdGguYWxpZ24gPSBjbS5hbGlnbjsNCgkJCQkJCQ0KCQkJCQlpZiAoY20ud2lkdGgpIA0KCQkJCQkJJCh0aCkuYXR0cignd2lkdGgnLGNtLndpZHRoKTsNCg0KCQkJCQlpZiAoY20uaGlkZSkNCgkJCQkJCXsNCgkJCQkJCXRoLmhpZGUgPSB0cnVlOw0KCQkJCQkJfQ0KCQkJCQkJDQoJCQkJCWlmIChjbS5wcm9jZXNzKQ0KCQkJCQkJew0KCQkJCQkJCXRoLnByb2Nlc3MgPSBjbS5wcm9jZXNzOw0KCQkJCQkJfQ0KDQoJCQkJCSQodHIpLmFwcGVuZCh0aCk7DQoJCQkJfQ0KCQkJJCh0aGVhZCkuYXBwZW5kKHRyKTsNCgkJCSQodCkucHJlcGVuZCh0aGVhZCk7DQoJCX0gLy8gZW5kIGlmIHAuY29sbW9kZWwJDQoNCgkJLy9pbml0IGRpdnMNCgkJZy5nRGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7IC8vY3JlYXRlIGdsb2JhbCBjb250YWluZXINCgkJZy5tRGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7IC8vY3JlYXRlIHRpdGxlIGNvbnRhaW5lcg0KCQlnLmhEaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsgLy9jcmVhdGUgaGVhZGVyIGNvbnRhaW5lcg0KCQlnLmJEaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsgLy9jcmVhdGUgYm9keSBjb250YWluZXINCgkJZy52RGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7IC8vY3JlYXRlIGdyaXANCgkJZy5yRGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7IC8vY3JlYXRlIGhvcml6b250YWwgcmVzaXplcg0KCQlnLmNEcmFnID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7IC8vY3JlYXRlIGNvbHVtbiBkcmFnDQoJCWcuYmxvY2sgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsgLy9jcmVhdCBibG9ja2VyDQoJCWcubkRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOyAvL2NyZWF0ZSBjb2x1bW4gc2hvdy9oaWRlIHBvcHVwDQoJCWcubkJ0biA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOyAvL2NyZWF0ZSBjb2x1bW4gc2hvdy9oaWRlIGJ1dHRvbg0KCQlnLmlEaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsgLy9jcmVhdGUgZWRpdGFibGUgbGF5ZXINCgkJZy50RGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7IC8vY3JlYXRlIHRvb2xiYXINCgkJZy5zRGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7DQoJCQ0KCQlpZiAocC51c2VwYWdlcikgZy5wRGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7IC8vY3JlYXRlIHBhZ2VyIGNvbnRhaW5lcg0KCQlnLmhUYWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RhYmxlJyk7DQoNCgkJLy9zZXQgZ0Rpdg0KCQlnLmdEaXYuY2xhc3NOYW1lID0gJ2ZsZXhpZ3JpZCc7DQoJCWlmIChwLndpZHRoIT0nYXV0bycpIGcuZ0Rpdi5zdHlsZS53aWR0aCA9IHAud2lkdGggKyAncHgnOw0KDQoJCS8vYWRkIGNvbmRpdGlvbmFsIGNsYXNzZXMNCgkJaWYgKCQuYnJvd3Nlci5tc2llKQ0KCQkJJChnLmdEaXYpLmFkZENsYXNzKCdpZScpOw0KCQkNCgkJaWYgKHAubm92c3RyaXBlKQ0KCQkJJChnLmdEaXYpLmFkZENsYXNzKCdub3ZzdHJpcGUnKTsNCg0KCQkkKHQpLmJlZm9yZShnLmdEaXYpOw0KCQkkKGcuZ0RpdikNCgkJLmFwcGVuZCh0KQ0KCQk7DQoNCgkJLy9zZXQgdG9vbGJhcg0KCQlpZiAocC5idXR0b25zKSANCgkJew0KCQkJZy50RGl2LmNsYXNzTmFtZSA9ICd0RGl2JzsNCgkJCXZhciB0RGl2MiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOw0KCQkJdERpdjIuY2xhc3NOYW1lID0gJ3REaXYyJzsNCgkJCQ0KCQkJZm9yIChpPTA7aTxwLmJ1dHRvbnMubGVuZ3RoO2krKykNCgkJCQl7DQoJCQkJCXZhciBidG4gPSBwLmJ1dHRvbnNbaV07DQoJCQkJCWlmICghYnRuLnNlcGFyYXRvcikNCgkJCQkJew0KCQkJCQkJdmFyIGJ0bkRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOw0KCQkJCQkJYnRuRGl2LmNsYXNzTmFtZSA9ICdmYnV0dG9uJzsNCgkJCQkJCWJ0bkRpdi5pbm5lckhUTUwgPSAiPGRpdj48c3Bhbj4iK2J0bi5uYW1lKyI8L3NwYW4+PC9kaXY+IjsNCgkJCQkJCWlmIChidG4uYmNsYXNzKSANCgkJCQkJCQkkKCdzcGFuJyxidG5EaXYpDQoJCQkJCQkJLmFkZENsYXNzKGJ0bi5iY2xhc3MpDQoJCQkJCQkJLmNzcyh7cGFkZGluZ0xlZnQ6MjB9KQ0KCQkJCQkJCTsNCgkJCQkJCWJ0bkRpdi5vbnByZXNzID0gYnRuLm9ucHJlc3M7DQoJCQkJCQlidG5EaXYubmFtZSA9IGJ0bi5uYW1lOw0KCQkJCQkJaWYgKGJ0bi5vbnByZXNzKQ0KCQkJCQkJew0KCQkJCQkJCSQoYnRuRGl2KS5jbGljaw0KCQkJCQkJCSgJDQoJCQkJCQkJCWZ1bmN0aW9uICgpIA0KCQkJCQkJCQl7DQoJCQkJCQkJCXRoaXMub25wcmVzcyh0aGlzLm5hbWUsZy5nRGl2KTsNCgkJCQkJCQkJfQ0KCQkJCQkJCSk7DQoJCQkJCQl9DQoJCQkJCQkkKHREaXYyKS5hcHBlbmQoYnRuRGl2KTsNCgkJCQkJCWlmICgkLmJyb3dzZXIubXNpZSYmJC5icm93c2VyLnZlcnNpb248Ny4wKQ0KCQkJCQkJew0KCQkJCQkJCSQoYnRuRGl2KS5ob3ZlcihmdW5jdGlvbigpeyQodGhpcykuYWRkQ2xhc3MoJ2ZiT3ZlcicpO30sZnVuY3Rpb24oKXskKHRoaXMpLnJlbW92ZUNsYXNzKCdmYk92ZXInKTt9KTsNCgkJCQkJCX0NCgkJCQkJCQ0KCQkJCQl9IGVsc2Ugew0KCQkJCQkJJCh0RGl2MikuYXBwZW5kKCI8ZGl2IGNsYXNzPSdidG5zZXBhcmF0b3InPjwvZGl2PiIpOw0KCQkJCQl9DQoJCQkJfQ0KCQkJCSQoZy50RGl2KS5hcHBlbmQodERpdjIpOw0KCQkJCSQoZy50RGl2KS5hcHBlbmQoIjxkaXYgc3R5bGU9J2NsZWFyOmJvdGgnPjwvZGl2PiIpOw0KCQkJCSQoZy5nRGl2KS5wcmVwZW5kKGcudERpdik7DQoJCX0NCgkJDQoJCS8vc2V0IGhEaXYNCgkJZy5oRGl2LmNsYXNzTmFtZSA9ICdoRGl2JzsNCg0KCQkkKHQpLmJlZm9yZShnLmhEaXYpOw0KDQoJCS8vc2V0IGhUYWJsZQ0KCQkJZy5oVGFibGUuY2VsbFBhZGRpbmcgPSAwOw0KCQkJZy5oVGFibGUuY2VsbFNwYWNpbmcgPSAwOw0KCQkJJChnLmhEaXYpLmFwcGVuZCgnPGRpdiBjbGFzcz0iaERpdkJveCI+PC9kaXY+Jyk7DQoJCQkkKCdkaXYnLGcuaERpdikuYXBwZW5kKGcuaFRhYmxlKTsNCgkJCXZhciB0aGVhZCA9ICQoInRoZWFkOmZpcnN0Iix0KS5nZXQoMCk7DQoJCQlpZiAodGhlYWQpICQoZy5oVGFibGUpLmFwcGVuZCh0aGVhZCk7DQoJCQl0aGVhZCA9IG51bGw7DQoJCQ0KCQlpZiAoIXAuY29sbW9kZWwpIHZhciBjaSA9IDA7DQoNCgkJLy9zZXR1cCB0aGVhZAkJCQ0KCQkJJCgndGhlYWQgdHI6Zmlyc3QgdGgnLGcuaERpdikuZWFjaA0KCQkJKA0KCQkJIAlmdW5jdGlvbiAoKQ0KCQkJCQl7DQoJCQkJCQl2YXIgdGhkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsNCgkJCQkJCQ0KCQkJCQkJDQoJCQkJCQ0KCQkJCQkJaWYgKCQodGhpcykuYXR0cignYWJicicpKQ0KCQkJCQkJCXsNCgkJCQkJCQkkKHRoaXMpLmNsaWNrKA0KCQkJCQkJCQlmdW5jdGlvbiAoZSkgDQoJCQkJCQkJCQl7DQoJCQkJCQkJCQkJDQoJCQkJCQkJCQkJaWYgKCEkKHRoaXMpLmhhc0NsYXNzKCd0aE92ZXInKSkgcmV0dXJuIGZhbHNlOw0KCQkJCQkJCQkJCXZhciBvYmogPSAoZS50YXJnZXQgfHwgZS5zcmNFbGVtZW50KTsNCgkJCQkJCQkJCQlpZiAob2JqLmhyZWYgfHwgb2JqLnR5cGUpIHJldHVybiB0cnVlOyANCgkJCQkJCQkJCQlnLmNoYW5nZVNvcnQodGhpcyk7DQoJCQkJCQkJCQl9DQoJCQkJCQkJKQ0KCQkJCQkJCTsNCgkJCQkJCQkNCgkJCQkJCQlpZiAoJCh0aGlzKS5hdHRyKCdhYmJyJyk9PXAuc29ydG5hbWUpDQoJCQkJCQkJCXsNCgkJCQkJCQkJdGhpcy5jbGFzc05hbWUgPSAnc29ydGVkJzsNCgkJCQkJCQkJdGhkaXYuY2xhc3NOYW1lID0gJ3MnK3Auc29ydG9yZGVyOw0KCQkJCQkJCQl9DQoJCQkJCQkJfQ0KCQkJCQkJCQ0KCQkJCQkJCWlmICh0aGlzLmhpZGUpICQodGhpcykuaGlkZSgpOw0KCQkJCQkJCQ0KCQkJCQkJCWlmICghcC5jb2xtb2RlbCkNCgkJCQkJCQl7DQoJCQkJCQkJCSQodGhpcykuYXR0cignYXhpcycsJ2NvbCcgKyBjaSsrKTsNCgkJCQkJCQl9DQoJCQkJCQkJDQoJCQkJCQkJDQoJCQkJCQkgJCh0aGRpdikuY3NzKHt0ZXh0QWxpZ246dGhpcy5hbGlnbiwgd2lkdGg6IHRoaXMud2lkdGggKyAncHgnfSk7DQoJCQkJCQkgdGhkaXYuaW5uZXJIVE1MID0gdGhpcy5pbm5lckhUTUw7DQoJCQkJCQkgDQoJCQkJCQkkKHRoaXMpLmVtcHR5KCkuYXBwZW5kKHRoZGl2KS5yZW1vdmVBdHRyKCd3aWR0aCcpDQoJCQkJCQkubW91c2Vkb3duKGZ1bmN0aW9uIChlKSANCgkJCQkJCQl7DQoJCQkJCQkJCWcuZHJhZ1N0YXJ0KCdjb2xNb3ZlJyxlLHRoaXMpOw0KCQkJCQkJCX0pDQoJCQkJCQkuaG92ZXIoDQoJCQkJCQkJZnVuY3Rpb24oKXsNCgkJCQkJCQkJaWYgKCFnLmNvbHJlc2l6ZSYmISQodGhpcykuaGFzQ2xhc3MoJ3RoTW92ZScpJiYhZy5jb2xDb3B5KSAkKHRoaXMpLmFkZENsYXNzKCd0aE92ZXInKTsNCgkJCQkJCQkJDQoJCQkJCQkJCWlmICgkKHRoaXMpLmF0dHIoJ2FiYnInKSE9cC5zb3J0bmFtZSYmIWcuY29sQ29weSYmIWcuY29scmVzaXplJiYkKHRoaXMpLmF0dHIoJ2FiYnInKSkgJCgnZGl2Jyx0aGlzKS5hZGRDbGFzcygncycrcC5zb3J0b3JkZXIpOw0KCQkJCQkJCQllbHNlIGlmICgkKHRoaXMpLmF0dHIoJ2FiYnInKT09cC5zb3J0bmFtZSYmIWcuY29sQ29weSYmIWcuY29scmVzaXplJiYkKHRoaXMpLmF0dHIoJ2FiYnInKSkNCgkJCQkJCQkJCXsNCgkJCQkJCQkJCQl2YXIgbm8gPSAnJzsNCgkJCQkJCQkJCQlpZiAocC5zb3J0b3JkZXI9PSdhc2MnKSBubyA9ICdkZXNjJzsNCgkJCQkJCQkJCQllbHNlIG5vID0gJ2FzYyc7DQoJCQkJCQkJCQkJJCgnZGl2Jyx0aGlzKS5yZW1vdmVDbGFzcygncycrcC5zb3J0b3JkZXIpLmFkZENsYXNzKCdzJytubyk7DQoJCQkJCQkJCQl9DQoJCQkJCQkJCQ0KCQkJCQkJCQlpZiAoZy5jb2xDb3B5KSANCgkJCQkJCQkJCXsNCgkJCQkJCQkJCXZhciBuID0gJCgndGgnLGcuaERpdikuaW5kZXgodGhpcyk7DQoJCQkJCQkJCQkNCgkJCQkJCQkJCWlmIChuPT1nLmRjb2xuKSByZXR1cm4gZmFsc2U7DQoJCQkJCQkJCQkNCgkJCQkJCQkJCQ0KCQkJCQkJCQkJDQoJCQkJCQkJCQlpZiAobjxnLmRjb2xuKSAkKHRoaXMpLmFwcGVuZChnLmNkcm9wbGVmdCk7DQoJCQkJCQkJCQllbHNlICQodGhpcykuYXBwZW5kKGcuY2Ryb3ByaWdodCk7DQoJCQkJCQkJCQkNCgkJCQkJCQkJCWcuZGNvbHQgPSBuOw0KCQkJCQkJCQkJDQoJCQkJCQkJCQl9IGVsc2UgaWYgKCFnLmNvbHJlc2l6ZSkgew0KCQkJCQkJCQkJCQ0KCQkJCQkJCQkJdmFyIG52ID0gJCgndGg6dmlzaWJsZScsZy5oRGl2KS5pbmRleCh0aGlzKTsNCgkJCQkJCQkJCXZhciBvbmwgPSBwYXJzZUludCgkKCdkaXY6ZXEoJytudisnKScsZy5jRHJhZykuY3NzKCdsZWZ0JykpOw0KCQkJCQkJCQkJdmFyIG53ID0galF1ZXJ5KGcubkJ0bikub3V0ZXJXaWR0aCgpOw0KCQkJCQkJCQkJbmwgPSBvbmwgLSBudyArIE1hdGguZmxvb3IocC5jZ3dpZHRoLzIpOw0KCQkJCQkJCQkJDQoJCQkJCQkJCQkkKGcubkRpdikuaGlkZSgpOyQoZy5uQnRuKS5oaWRlKCk7DQoJCQkJCQkJCQkNCgkJCQkJCQkJCSQoZy5uQnRuKS5jc3MoeydsZWZ0JzpubCx0b3A6Zy5oRGl2Lm9mZnNldFRvcH0pLnNob3coKTsNCgkJCQkJCQkJCQ0KCQkJCQkJCQkJdmFyIG5kdyA9IHBhcnNlSW50KCQoZy5uRGl2KS53aWR0aCgpKTsNCgkJCQkJCQkJCQ0KCQkJCQkJCQkJJChnLm5EaXYpLmNzcyh7dG9wOmcuYkRpdi5vZmZzZXRUb3B9KTsNCgkJCQkJCQkJCQ0KCQkJCQkJCQkJaWYgKChubCtuZHcpPiQoZy5nRGl2KS53aWR0aCgpKQ0KCQkJCQkJCQkJCSQoZy5uRGl2KS5jc3MoJ2xlZnQnLG9ubC1uZHcrMSk7DQoJCQkJCQkJCQllbHNlDQoJCQkJCQkJCQkJJChnLm5EaXYpLmNzcygnbGVmdCcsbmwpOw0KCQkJCQkJCQkJCQ0KCQkJCQkJCQkJaWYgKCQodGhpcykuaGFzQ2xhc3MoJ3NvcnRlZCcpKSANCgkJCQkJCQkJCQkkKGcubkJ0bikuYWRkQ2xhc3MoJ3NydGQnKTsNCgkJCQkJCQkJCWVsc2UNCgkJCQkJCQkJCQkkKGcubkJ0bikucmVtb3ZlQ2xhc3MoJ3NydGQnKTsNCgkJCQkJCQkJCQkNCgkJCQkJCQkJCX0NCgkJCQkJCQkJCQ0KCQkJCQkJCX0sDQoJCQkJCQkJZnVuY3Rpb24oKXsNCgkJCQkJCQkJJCh0aGlzKS5yZW1vdmVDbGFzcygndGhPdmVyJyk7DQoJCQkJCQkJCWlmICgkKHRoaXMpLmF0dHIoJ2FiYnInKSE9cC5zb3J0bmFtZSkgJCgnZGl2Jyx0aGlzKS5yZW1vdmVDbGFzcygncycrcC5zb3J0b3JkZXIpOw0KCQkJCQkJCQllbHNlIGlmICgkKHRoaXMpLmF0dHIoJ2FiYnInKT09cC5zb3J0bmFtZSkNCgkJCQkJCQkJCXsNCgkJCQkJCQkJCQl2YXIgbm8gPSAnJzsNCgkJCQkJCQkJCQlpZiAocC5zb3J0b3JkZXI9PSdhc2MnKSBubyA9ICdkZXNjJzsNCgkJCQkJCQkJCQllbHNlIG5vID0gJ2FzYyc7DQoJCQkJCQkJCQkJDQoJCQkJCQkJCQkJJCgnZGl2Jyx0aGlzKS5hZGRDbGFzcygncycrcC5zb3J0b3JkZXIpLnJlbW92ZUNsYXNzKCdzJytubyk7DQoJCQkJCQkJCQl9DQoJCQkJCQkJCWlmIChnLmNvbENvcHkpIA0KCQkJCQkJCQkJewkJCQkJCQkJDQoJCQkJCQkJCQkkKGcuY2Ryb3BsZWZ0KS5yZW1vdmUoKTsNCgkJCQkJCQkJCSQoZy5jZHJvcHJpZ2h0KS5yZW1vdmUoKTsNCgkJCQkJCQkJCWcuZGNvbHQgPSBudWxsOw0KCQkJCQkJCQkJfQ0KCQkJCQkJCX0pDQoJCQkJCQk7IC8vd3JhcCBjb250ZW50DQoJCQkJCX0NCgkJCSk7DQoNCgkJLy9zZXQgYkRpdg0KCQlnLmJEaXYuY2xhc3NOYW1lID0gJ2JEaXYnOw0KCQkkKHQpLmJlZm9yZShnLmJEaXYpOw0KCQkkKGcuYkRpdikNCgkJLmNzcyh7IGhlaWdodDogKHAuaGVpZ2h0PT0nYXV0bycpID8gJ2F1dG8nIDogcC5oZWlnaHQrInB4In0pDQoJCS5zY3JvbGwoZnVuY3Rpb24gKGUpIHtnLnNjcm9sbCgpfSkNCgkJLmFwcGVuZCh0KQ0KCQk7DQoJCQ0KCQlpZiAocC5oZWlnaHQgPT0gJ2F1dG8nKSANCgkJCXsNCgkJCSQoJ3RhYmxlJyxnLmJEaXYpLmFkZENsYXNzKCdhdXRvaHQnKTsNCgkJCX0NCg0KDQoJCS8vYWRkIHRkIHByb3BlcnRpZXMNCgkJZy5hZGRDZWxsUHJvcCgpOw0KCQkNCgkJLy9hZGQgcm93IHByb3BlcnRpZXMNCgkJZy5hZGRSb3dQcm9wKCk7DQoJCQ0KCQkvL3NldCBjRHJhZw0KCQkNCgkJdmFyIGNkY29sID0gJCgndGhlYWQgdHI6Zmlyc3QgdGg6Zmlyc3QnLGcuaERpdikuZ2V0KDApOw0KCQkNCgkJaWYgKGNkY29sICE9IG51bGwpDQoJCXsJCQ0KCQlnLmNEcmFnLmNsYXNzTmFtZSA9ICdjRHJhZyc7DQoJCWcuY2RwYWQgPSAwOw0KCQkNCgkJZy5jZHBhZCArPSAoaXNOYU4ocGFyc2VJbnQoJCgnZGl2JyxjZGNvbCkuY3NzKCdib3JkZXJMZWZ0V2lkdGgnKSkpID8gMCA6IHBhcnNlSW50KCQoJ2RpdicsY2Rjb2wpLmNzcygnYm9yZGVyTGVmdFdpZHRoJykpKTsgDQoJCWcuY2RwYWQgKz0gKGlzTmFOKHBhcnNlSW50KCQoJ2RpdicsY2Rjb2wpLmNzcygnYm9yZGVyUmlnaHRXaWR0aCcpKSkgPyAwIDogcGFyc2VJbnQoJCgnZGl2JyxjZGNvbCkuY3NzKCdib3JkZXJSaWdodFdpZHRoJykpKTsgDQoJCWcuY2RwYWQgKz0gKGlzTmFOKHBhcnNlSW50KCQoJ2RpdicsY2Rjb2wpLmNzcygncGFkZGluZ0xlZnQnKSkpID8gMCA6IHBhcnNlSW50KCQoJ2RpdicsY2Rjb2wpLmNzcygncGFkZGluZ0xlZnQnKSkpOyANCgkJZy5jZHBhZCArPSAoaXNOYU4ocGFyc2VJbnQoJCgnZGl2JyxjZGNvbCkuY3NzKCdwYWRkaW5nUmlnaHQnKSkpID8gMCA6IHBhcnNlSW50KCQoJ2RpdicsY2Rjb2wpLmNzcygncGFkZGluZ1JpZ2h0JykpKTsgDQoJCWcuY2RwYWQgKz0gKGlzTmFOKHBhcnNlSW50KCQoY2Rjb2wpLmNzcygnYm9yZGVyTGVmdFdpZHRoJykpKSA/IDAgOiBwYXJzZUludCgkKGNkY29sKS5jc3MoJ2JvcmRlckxlZnRXaWR0aCcpKSk7IA0KCQlnLmNkcGFkICs9IChpc05hTihwYXJzZUludCgkKGNkY29sKS5jc3MoJ2JvcmRlclJpZ2h0V2lkdGgnKSkpID8gMCA6IHBhcnNlSW50KCQoY2Rjb2wpLmNzcygnYm9yZGVyUmlnaHRXaWR0aCcpKSk7IA0KCQlnLmNkcGFkICs9IChpc05hTihwYXJzZUludCgkKGNkY29sKS5jc3MoJ3BhZGRpbmdMZWZ0JykpKSA/IDAgOiBwYXJzZUludCgkKGNkY29sKS5jc3MoJ3BhZGRpbmdMZWZ0JykpKTsgDQoJCWcuY2RwYWQgKz0gKGlzTmFOKHBhcnNlSW50KCQoY2Rjb2wpLmNzcygncGFkZGluZ1JpZ2h0JykpKSA/IDAgOiBwYXJzZUludCgkKGNkY29sKS5jc3MoJ3BhZGRpbmdSaWdodCcpKSk7IA0KDQoJCSQoZy5iRGl2KS5iZWZvcmUoZy5jRHJhZyk7DQoJCQ0KCQl2YXIgY2RoZWlnaHQgPSAkKGcuYkRpdikuaGVpZ2h0KCk7DQoJCXZhciBoZGhlaWdodCA9ICQoZy5oRGl2KS5oZWlnaHQoKTsNCgkJDQoJCSQoZy5jRHJhZykuY3NzKHt0b3A6IC1oZGhlaWdodCArICdweCd9KTsNCgkJDQoJCSQoJ3RoZWFkIHRyOmZpcnN0IHRoJyxnLmhEaXYpLmVhY2gNCgkJCSgNCgkJCSAJZnVuY3Rpb24gKCkNCgkJCQkJew0KCQkJCQkJdmFyIGNnRGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7DQoJCQkJCQkkKGcuY0RyYWcpLmFwcGVuZChjZ0Rpdik7DQoJCQkJCQlpZiAoIXAuY2d3aWR0aCkgcC5jZ3dpZHRoID0gJChjZ0Rpdikud2lkdGgoKTsNCgkJCQkJCSQoY2dEaXYpLmNzcyh7aGVpZ2h0OiBjZGhlaWdodCArIGhkaGVpZ2h0fSkNCgkJCQkJCS5tb3VzZWRvd24oZnVuY3Rpb24oZSl7Zy5kcmFnU3RhcnQoJ2NvbHJlc2l6ZScsZSx0aGlzKTt9KQ0KCQkJCQkJOw0KCQkJCQkJaWYgKCQuYnJvd3Nlci5tc2llJiYkLmJyb3dzZXIudmVyc2lvbjw3LjApDQoJCQkJCQl7DQoJCQkJCQkJZy5maXhIZWlnaHQoJChnLmdEaXYpLmhlaWdodCgpKTsNCgkJCQkJCQkkKGNnRGl2KS5ob3ZlcigNCgkJCQkJCQkJZnVuY3Rpb24gKCkgDQoJCQkJCQkJCXsNCgkJCQkJCQkJZy5maXhIZWlnaHQoKTsNCgkJCQkJCQkJJCh0aGlzKS5hZGRDbGFzcygnZHJhZ2dpbmcnKSANCgkJCQkJCQkJfSwNCgkJCQkJCQkJZnVuY3Rpb24gKCkgeyBpZiAoIWcuY29scmVzaXplKSAkKHRoaXMpLnJlbW92ZUNsYXNzKCdkcmFnZ2luZycpIH0NCgkJCQkJCQkpOw0KCQkJCQkJfQ0KCQkJCQl9DQoJCQkpOw0KCQkNCgkJLy9nLnJlUG9zRHJhZygpOw0KCQkJCQkJCQ0KCQl9DQoJCQ0KDQoJCS8vYWRkIHN0cmlwCQkNCgkJaWYgKHAuc3RyaXBlZCkgDQoJCQkkKCd0Ym9keSB0cjpvZGQnLGcuYkRpdikuYWRkQ2xhc3MoJ2Vyb3cnKTsNCgkJCQ0KCQkJDQoJCWlmIChwLnJlc2l6YWJsZSAmJiBwLmhlaWdodCAhPSdhdXRvJykgDQoJCXsNCgkJZy52RGl2LmNsYXNzTmFtZSA9ICd2R3JpcCc7DQoJCSQoZy52RGl2KQ0KCQkubW91c2Vkb3duKGZ1bmN0aW9uIChlKSB7IGcuZHJhZ1N0YXJ0KCd2cmVzaXplJyxlKX0pDQoJCS5odG1sKCc8c3Bhbj48L3NwYW4+Jyk7DQoJCSQoZy5iRGl2KS5hZnRlcihnLnZEaXYpOw0KCQl9DQoJCQ0KCQlpZiAocC5yZXNpemFibGUgJiYgcC53aWR0aCAhPSdhdXRvJyAmJiAhcC5ub2hyZXNpemUpIA0KCQl7DQoJCWcuckRpdi5jbGFzc05hbWUgPSAnaEdyaXAnOw0KCQkkKGcuckRpdikNCgkJLm1vdXNlZG93bihmdW5jdGlvbiAoZSkge2cuZHJhZ1N0YXJ0KCd2cmVzaXplJyxlLHRydWUpO30pDQoJCS5odG1sKCc8c3Bhbj48L3NwYW4+JykNCgkJLmNzcygnaGVpZ2h0JywkKGcuZ0RpdikuaGVpZ2h0KCkpDQoJCTsNCgkJaWYgKCQuYnJvd3Nlci5tc2llJiYkLmJyb3dzZXIudmVyc2lvbjw3LjApDQoJCXsNCgkJCSQoZy5yRGl2KS5ob3ZlcihmdW5jdGlvbigpeyQodGhpcykuYWRkQ2xhc3MoJ2hnT3ZlcicpO30sZnVuY3Rpb24oKXskKHRoaXMpLnJlbW92ZUNsYXNzKCdoZ092ZXInKTt9KTsNCgkJfQ0KCQkkKGcuZ0RpdikuYXBwZW5kKGcuckRpdik7DQoJCX0NCgkJDQoJCS8vIGFkZCBwYWdlcg0KCQlpZiAocC51c2VwYWdlcikNCgkJew0KCQlnLnBEaXYuY2xhc3NOYW1lID0gJ3BEaXYnOw0KCQlnLnBEaXYuaW5uZXJIVE1MID0gJzxkaXYgY2xhc3M9InBEaXYyIj48L2Rpdj4nOw0KCQkkKGcuYkRpdikuYWZ0ZXIoZy5wRGl2KTsNCgkJdmFyIGh0bWwgPSAnIDxkaXYgY2xhc3M9InBHcm91cCI+IDxkaXYgY2xhc3M9InBGaXJzdCBwQnV0dG9uIj48c3Bhbj48L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0icFByZXYgcEJ1dHRvbiI+PHNwYW4+PC9zcGFuPjwvZGl2PiA8L2Rpdj4gPGRpdiBjbGFzcz0iYnRuc2VwYXJhdG9yIj48L2Rpdj4gPGRpdiBjbGFzcz0icEdyb3VwIj48c3BhbiBjbGFzcz0icGNvbnRyb2wiPicrcC5wYWdldGV4dCsnIDxpbnB1dCB0eXBlPSJ0ZXh0IiBzaXplPSI0IiB2YWx1ZT0iMSIgLz4gJytwLm91dG9mKycgPHNwYW4+IDEgPC9zcGFuPjwvc3Bhbj48L2Rpdj4gPGRpdiBjbGFzcz0iYnRuc2VwYXJhdG9yIj48L2Rpdj4gPGRpdiBjbGFzcz0icEdyb3VwIj4gPGRpdiBjbGFzcz0icE5leHQgcEJ1dHRvbiI+PHNwYW4+PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InBMYXN0IHBCdXR0b24iPjxzcGFuPjwvc3Bhbj48L2Rpdj4gPC9kaXY+IDxkaXYgY2xhc3M9ImJ0bnNlcGFyYXRvciI+PC9kaXY+IDxkaXYgY2xhc3M9InBHcm91cCI+IDxkaXYgY2xhc3M9InBSZWxvYWQgcEJ1dHRvbiI+PHNwYW4+PC9zcGFuPjwvZGl2PiA8L2Rpdj4gPGRpdiBjbGFzcz0iYnRuc2VwYXJhdG9yIj48L2Rpdj4gPGRpdiBjbGFzcz0icEdyb3VwIj48c3BhbiBjbGFzcz0icFBhZ2VTdGF0Ij48L3NwYW4+PC9kaXY+JzsNCgkJJCgnZGl2JyxnLnBEaXYpLmh0bWwoaHRtbCk7DQoJCQ0KCQkkKCcucFJlbG9hZCcsZy5wRGl2KS5jbGljayhmdW5jdGlvbigpe2cucG9wdWxhdGUoKX0pOw0KCQkkKCcucEZpcnN0JyxnLnBEaXYpLmNsaWNrKGZ1bmN0aW9uKCl7Zy5jaGFuZ2VQYWdlKCdmaXJzdCcpfSk7DQoJCSQoJy5wUHJldicsZy5wRGl2KS5jbGljayhmdW5jdGlvbigpe2cuY2hhbmdlUGFnZSgncHJldicpfSk7DQoJCSQoJy5wTmV4dCcsZy5wRGl2KS5jbGljayhmdW5jdGlvbigpe2cuY2hhbmdlUGFnZSgnbmV4dCcpfSk7DQoJCSQoJy5wTGFzdCcsZy5wRGl2KS5jbGljayhmdW5jdGlvbigpe2cuY2hhbmdlUGFnZSgnbGFzdCcpfSk7DQoJCSQoJy5wY29udHJvbCBpbnB1dCcsZy5wRGl2KS5rZXlkb3duKGZ1bmN0aW9uKGUpe2lmKGUua2V5Q29kZT09MTMpIGcuY2hhbmdlUGFnZSgnaW5wdXQnKX0pOw0KCQlpZiAoJC5icm93c2VyLm1zaWUmJiQuYnJvd3Nlci52ZXJzaW9uPDcpICQoJy5wQnV0dG9uJyxnLnBEaXYpLmhvdmVyKGZ1bmN0aW9uKCl7JCh0aGlzKS5hZGRDbGFzcygncEJ0bk92ZXInKTt9LGZ1bmN0aW9uKCl7JCh0aGlzKS5yZW1vdmVDbGFzcygncEJ0bk92ZXInKTt9KTsNCgkJCQ0KCQkJaWYgKHAudXNlUnApDQoJCQl7DQoJCQl2YXIgb3B0ID0gIiI7DQoJCQlmb3IgKHZhciBueD0wO254PHAucnBPcHRpb25zLmxlbmd0aDtueCsrKQ0KCQkJew0KCQkJCWlmIChwLnJwID09IHAucnBPcHRpb25zW254XSkgc2VsID0gJ3NlbGVjdGVkPSJzZWxlY3RlZCInOyBlbHNlIHNlbCA9ICcnOw0KCQkJCSBvcHQgKz0gIjxvcHRpb24gdmFsdWU9JyIgKyBwLnJwT3B0aW9uc1tueF0gKyAiJyAiICsgc2VsICsgIiA+IiArIHAucnBPcHRpb25zW254XSArICImbmJzcDsmbmJzcDs8L29wdGlvbj4iOw0KCQkJfTsNCgkJCSQoJy5wRGl2MicsZy5wRGl2KS5wcmVwZW5kKCI8ZGl2IGNsYXNzPSdwR3JvdXAnPjxzZWxlY3QgbmFtZT0ncnAnPiIrb3B0KyI8L3NlbGVjdD48L2Rpdj4gPGRpdiBjbGFzcz0nYnRuc2VwYXJhdG9yJz48L2Rpdj4iKTsNCgkJCSQoJ3NlbGVjdCcsZy5wRGl2KS5jaGFuZ2UoDQoJCQkJCWZ1bmN0aW9uICgpDQoJCQkJCXsNCgkJCQkJCWlmIChwLm9uUnBDaGFuZ2UpIA0KCQkJCQkJCXAub25ScENoYW5nZSgrdGhpcy52YWx1ZSk7DQoJCQkJCQllbHNlDQoJCQkJCQkJew0KCQkJCQkJCXAubmV3cCA9IDE7DQoJCQkJCQkJcC5ycCA9ICt0aGlzLnZhbHVlOw0KCQkJCQkJCWcucG9wdWxhdGUoKTsNCgkJCQkJCQl9DQoJCQkJCX0NCgkJCQkpOw0KCQkJfQ0KCQkNCgkJLy9hZGQgc2VhcmNoIGJ1dHRvbg0KCQlpZiAocC5zZWFyY2hpdGVtcykNCgkJCXsNCgkJCQkkKCcucERpdjInLGcucERpdikucHJlcGVuZCgiPGRpdiBjbGFzcz0ncEdyb3VwJz4gPGRpdiBjbGFzcz0ncFNlYXJjaCBwQnV0dG9uJz48c3Bhbj48L3NwYW4+PC9kaXY+IDwvZGl2PiAgPGRpdiBjbGFzcz0nYnRuc2VwYXJhdG9yJz48L2Rpdj4iKTsNCgkJCQkkKCcucFNlYXJjaCcsZy5wRGl2KS5jbGljayhmdW5jdGlvbigpeyQoZy5zRGl2KS5zbGlkZVRvZ2dsZSgnZmFzdCcsZnVuY3Rpb24oKXskKCcuc0Rpdjp2aXNpYmxlIGlucHV0OmZpcnN0JyxnLmdEaXYpLnRyaWdnZXIoJ2ZvY3VzJyk7fSk7fSk7CQkJCQ0KCQkJCS8vYWRkIHNlYXJjaCBib3gNCgkJCQlnLnNEaXYuY2xhc3NOYW1lID0gJ3NEaXYnOw0KCQkJCQ0KCQkJCXNpdGVtcyA9IHAuc2VhcmNoaXRlbXM7DQoJCQkJDQoJCQkJdmFyIHNvcHQgPSAiIjsNCgkJCQlmb3IgKHZhciBzID0gMDsgcyA8IHNpdGVtcy5sZW5ndGg7IHMrKykNCgkJCQl7DQoJCQkJCWlmIChwLnF0eXBlPT0nJyAmJiBzaXRlbXNbc10uaXNkZWZhdWx0PT10cnVlKQ0KCQkJCQl7DQoJCQkJCXAucXR5cGUgPSBzaXRlbXNbc10ubmFtZTsNCgkJCQkJc2VsID0gJ3NlbGVjdGVkPSJzZWxlY3RlZCInOw0KCQkJCQl9IGVsc2Ugc2VsID0gJyc7DQoJCQkJCXNvcHQgKz0gIjxvcHRpb24gdmFsdWU9JyIgKyBzaXRlbXNbc10ubmFtZSArICInICIgKyBzZWwgKyAiID4iICsgc2l0ZW1zW3NdLmRpc3BsYXkgKyAiJm5ic3A7Jm5ic3A7PC9vcHRpb24+IjsJCQkJCQkNCgkJCQl9DQoJCQkJDQoJCQkJaWYgKHAucXR5cGU9PScnKSBwLnF0eXBlID0gc2l0ZW1zWzBdLm5hbWU7DQoJCQkJDQoJCQkJJChnLnNEaXYpLmFwcGVuZCgiPGRpdiBjbGFzcz0nc0RpdjInPiIrcC5maW5kdGV4dCsiIDxpbnB1dCB0eXBlPSd0ZXh0JyBzaXplPSczMCcgbmFtZT0ncScgY2xhc3M9J3FzYm94JyAvPiA8c2VsZWN0IG5hbWU9J3F0eXBlJz4iK3NvcHQrIjwvc2VsZWN0PiA8IS0taW5wdXQgdHlwZT0nYnV0dG9uJyB2YWx1ZT0nQ2xlYXInIC8tLT48L2Rpdj4iKTsNCg0KCQkJCSQoJ2lucHV0W25hbWU9cV0sc2VsZWN0W25hbWU9cXR5cGVdJyxnLnNEaXYpLmtleWRvd24oZnVuY3Rpb24oZSl7aWYoZS5rZXlDb2RlPT0xMykgZy5kb1NlYXJjaCgpfSk7DQoJCQkJJCgnaW5wdXRbdmFsdWU9Q2xlYXJdJyxnLnNEaXYpLmNsaWNrKGZ1bmN0aW9uKCl7JCgnaW5wdXRbbmFtZT1xXScsZy5zRGl2KS52YWwoJycpOyBwLnF1ZXJ5ID0gJyc7IGcuZG9TZWFyY2goKTsgfSk7DQoJCQkJJChnLmJEaXYpLmFmdGVyKGcuc0Rpdik7CQkJCQ0KCQkJCQ0KCQkJfQ0KCQkNCgkJfQ0KCQkkKGcucERpdixnLnNEaXYpLmFwcGVuZCgiPGRpdiBzdHlsZT0nY2xlYXI6Ym90aCc+PC9kaXY+Iik7DQoJDQoJCS8vIGFkZCB0aXRsZQ0KCQlpZiAocC50aXRsZSkNCgkJew0KCQkJZy5tRGl2LmNsYXNzTmFtZSA9ICdtRGl2JzsNCgkJCWcubURpdi5pbm5lckhUTUwgPSAnPGRpdiBjbGFzcz0iZnRpdGxlIj4nK3AudGl0bGUrJzwvZGl2Pic7DQoJCQkkKGcuZ0RpdikucHJlcGVuZChnLm1EaXYpOw0KCQkJaWYgKHAuc2hvd1RhYmxlVG9nZ2xlQnRuKQ0KCQkJCXsNCgkJCQkJJChnLm1EaXYpLmFwcGVuZCgnPGRpdiBjbGFzcz0icHRvZ3RpdGxlIiB0aXRsZT0iTWluaW1pemUvTWF4aW1pemUgVGFibGUiPjxzcGFuPjwvc3Bhbj48L2Rpdj4nKTsNCgkJCQkJJCgnZGl2LnB0b2d0aXRsZScsZy5tRGl2KS5jbGljaw0KCQkJCQkoDQoJCQkJCSAJZnVuY3Rpb24gKCkNCgkJCQkJCQl7DQoJCQkJCQkJCSQoZy5nRGl2KS50b2dnbGVDbGFzcygnaGlkZUJvZHknKTsNCgkJCQkJCQkJJCh0aGlzKS50b2dnbGVDbGFzcygndnNibGUnKTsNCgkJCQkJCQl9DQoJCQkJCSk7DQoJCQkJfQ0KCQkJLy9nLnJlUG9zRHJhZygpOw0KCQl9DQoNCgkJLy9zZXR1cCBjZHJvcHMNCgkJZy5jZHJvcGxlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7DQoJCWcuY2Ryb3BsZWZ0LmNsYXNzTmFtZSA9ICdjZHJvcGxlZnQnOw0KCQlnLmNkcm9wcmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7DQoJCWcuY2Ryb3ByaWdodC5jbGFzc05hbWUgPSAnY2Ryb3ByaWdodCc7DQoNCgkJLy9hZGQgYmxvY2sNCgkJZy5ibG9jay5jbGFzc05hbWUgPSAnZ0Jsb2NrJzsNCgkJdmFyIGdoID0gJChnLmJEaXYpLmhlaWdodCgpOw0KCQl2YXIgZ3RvcCA9IGcuYkRpdi5vZmZzZXRUb3A7DQoJCSQoZy5ibG9jaykuY3NzKA0KCQl7DQoJCQl3aWR0aDogZy5iRGl2LnN0eWxlLndpZHRoLA0KCQkJaGVpZ2h0OiBnaCwNCgkJCWJhY2tncm91bmQ6ICd3aGl0ZScsDQoJCQlwb3NpdGlvbjogJ3JlbGF0aXZlJywNCgkJCW1hcmdpbkJvdHRvbTogKGdoICogLTEpLA0KCQkJekluZGV4OiAxLA0KCQkJdG9wOiBndG9wLA0KCQkJbGVmdDogJzBweCcNCgkJfQ0KCQkpOw0KCQkkKGcuYmxvY2spLmZhZGVUbygwLHAuYmxvY2tPcGFjaXR5KTsJCQkJDQoJCQ0KCQkvLyBhZGQgY29sdW1uIGNvbnRyb2wNCgkJaWYgKCQoJ3RoJyxnLmhEaXYpLmxlbmd0aCkNCgkJew0KCQkJDQoJCQlnLm5EaXYuY2xhc3NOYW1lID0gJ25EaXYnOw0KCQkJZy5uRGl2LmlubmVySFRNTCA9ICI8dGFibGUgY2VsbHBhZGRpbmc9JzAnIGNlbGxzcGFjaW5nPScwJz48dGJvZHk+PC90Ym9keT48L3RhYmxlPiI7DQoJCQkkKGcubkRpdikuY3NzKA0KCQkJew0KCQkJCW1hcmdpbkJvdHRvbTogKGdoICogLTEpLA0KCQkJCWRpc3BsYXk6ICdub25lJywNCgkJCQl0b3A6IGd0b3ANCgkJCX0NCgkJCSkubm9TZWxlY3QoKQ0KCQkJOw0KCQkJDQoJCQl2YXIgY24gPSAwOw0KCQkJDQoJCQkNCgkJCSQoJ3RoIGRpdicsZy5oRGl2KS5lYWNoDQoJCQkoDQoJCQkgCWZ1bmN0aW9uICgpDQoJCQkJCXsNCgkJCQkJCXZhciBrY29sID0gJCgidGhbYXhpcz0nY29sIiArIGNuICsgIiddIixnLmhEaXYpWzBdOw0KCQkJCQkJdmFyIGNoayA9ICdjaGVja2VkPSJjaGVja2VkIic7DQoJCQkJCQlpZiAoa2NvbC5zdHlsZS5kaXNwbGF5PT0nbm9uZScpIGNoayA9ICcnOw0KCQkJCQkJDQoJCQkJCQkkKCd0Ym9keScsZy5uRGl2KS5hcHBlbmQoJzx0cj48dGQgY2xhc3M9Im5kY29sMSI+PGlucHV0IHR5cGU9ImNoZWNrYm94IiAnKyBjaGsgKycgY2xhc3M9InRvZ0NvbCIgdmFsdWU9IicrIGNuICsnIiAvPjwvdGQ+PHRkIGNsYXNzPSJuZGNvbDIiPicrdGhpcy5pbm5lckhUTUwrJzwvdGQ+PC90cj4nKTsNCgkJCQkJCWNuKys7DQoJCQkJCX0NCgkJCSk7DQoJCQkNCgkJCWlmICgkLmJyb3dzZXIubXNpZSYmJC5icm93c2VyLnZlcnNpb248Ny4wKQ0KCQkJCSQoJ3RyJyxnLm5EaXYpLmhvdmVyDQoJCQkJKA0KCQkJCSAJZnVuY3Rpb24gKCkgeyQodGhpcykuYWRkQ2xhc3MoJ25kY29sb3ZlcicpO30sDQoJCQkJCWZ1bmN0aW9uICgpIHskKHRoaXMpLnJlbW92ZUNsYXNzKCduZGNvbG92ZXInKTt9DQoJCQkJKTsNCgkJCQ0KCQkJJCgndGQubmRjb2wyJyxnLm5EaXYpLmNsaWNrDQoJCQkoDQoJCQkgCWZ1bmN0aW9uICgpDQoJCQkJCXsNCgkJCQkJCWlmICgkKCdpbnB1dDpjaGVja2VkJyxnLm5EaXYpLmxlbmd0aDw9cC5taW5Db2xUb2dnbGUmJiQodGhpcykucHJldigpLmZpbmQoJ2lucHV0JylbMF0uY2hlY2tlZCkgcmV0dXJuIGZhbHNlOw0KCQkJCQkJcmV0dXJuIGcudG9nZ2xlQ29sKCQodGhpcykucHJldigpLmZpbmQoJ2lucHV0JykudmFsKCkpOw0KCQkJCQl9DQoJCQkpOw0KCQkJDQoJCQkkKCdpbnB1dC50b2dDb2wnLGcubkRpdikuY2xpY2sNCgkJCSgNCgkJCSAJZnVuY3Rpb24gKCkNCgkJCQkJew0KCQkJCQkJDQoJCQkJCQlpZiAoJCgnaW5wdXQ6Y2hlY2tlZCcsZy5uRGl2KS5sZW5ndGg8cC5taW5Db2xUb2dnbGUmJnRoaXMuY2hlY2tlZD09ZmFsc2UpIHJldHVybiBmYWxzZTsNCgkJCQkJCSQodGhpcykucGFyZW50KCkubmV4dCgpLnRyaWdnZXIoJ2NsaWNrJyk7DQoJCQkJCQkvL3JldHVybiBmYWxzZTsNCgkJCQkJfQ0KCQkJKTsNCg0KDQoJCQkkKGcuZ0RpdikucHJlcGVuZChnLm5EaXYpOw0KCQkJDQoJCQkkKGcubkJ0bikuYWRkQ2xhc3MoJ25CdG4nKQ0KCQkJLmh0bWwoJzxkaXY+PC9kaXY+JykNCgkJCS5hdHRyKCd0aXRsZScsJ0hpZGUvU2hvdyBDb2x1bW5zJykNCgkJCS5jbGljaw0KCQkJKA0KCQkJIAlmdW5jdGlvbiAoKQ0KCQkJCXsNCgkJCSAJJChnLm5EaXYpLnRvZ2dsZSgpOyByZXR1cm4gdHJ1ZTsNCgkJCQl9DQoJCQkpOw0KCQkJDQoJCQlpZiAocC5zaG93VG9nZ2xlQnRuKSAkKGcuZ0RpdikucHJlcGVuZChnLm5CdG4pOw0KCQkJDQoJCX0NCgkJDQoJCS8vIGFkZCBkYXRlIGVkaXQgbGF5ZXINCgkJJChnLmlEaXYpDQoJCS5hZGRDbGFzcygnaURpdicpDQoJCS5jc3Moe2Rpc3BsYXk6J25vbmUnfSkNCgkJOw0KCQkkKGcuYkRpdikuYXBwZW5kKGcuaURpdik7DQoJCQ0KCQkvLyBhZGQgZmxleGlncmlkIGV2ZW50cw0KCQkkKGcuYkRpdikNCgkJLmhvdmVyKGZ1bmN0aW9uKCl7JChnLm5EaXYpLmhpZGUoKTskKGcubkJ0bikuaGlkZSgpO30sZnVuY3Rpb24oKXtpZiAoZy5tdWx0aXNlbCkgZy5tdWx0aXNlbCA9IGZhbHNlO30pDQoJCTsNCgkJJChnLmdEaXYpDQoJCS5ob3ZlcihmdW5jdGlvbigpe30sZnVuY3Rpb24oKXskKGcubkRpdikuaGlkZSgpOyQoZy5uQnRuKS5oaWRlKCk7fSkNCgkJOw0KCQkNCgkJLy9hZGQgZG9jdW1lbnQgZXZlbnRzDQoJCSQoZG9jdW1lbnQpDQoJCS5tb3VzZW1vdmUoZnVuY3Rpb24oZSl7Zy5kcmFnTW92ZShlKX0pDQoJCS5tb3VzZXVwKGZ1bmN0aW9uKGUpe2cuZHJhZ0VuZCgpfSkNCgkJLmhvdmVyKGZ1bmN0aW9uKCl7fSxmdW5jdGlvbiAoKXtnLmRyYWdFbmQoKX0pDQoJCTsNCgkJDQoJCS8vYnJvd3NlciBhZGp1c3RtZW50cw0KCQlpZiAoJC5icm93c2VyLm1zaWUmJiQuYnJvd3Nlci52ZXJzaW9uPDcuMCkNCgkJew0KCQkJJCgnLmhEaXYsLmJEaXYsLm1EaXYsLnBEaXYsLnZHcmlwLC50RGl2LCAuc0RpdicsZy5nRGl2KQ0KCQkJLmNzcyh7d2lkdGg6ICcxMDAlJ30pOw0KCQkJJChnLmdEaXYpLmFkZENsYXNzKCdpZTYnKTsNCgkJCWlmIChwLndpZHRoIT0nYXV0bycpICQoZy5nRGl2KS5hZGRDbGFzcygnaWU2ZnVsbHdpZHRoYnVnJyk7CQkJDQoJCX0gDQoJCQ0KCQlnLnJlUG9zRHJhZygpOw0KCQlnLmZpeEhlaWdodCgpOw0KCQkNCgkJLy9tYWtlIGdyaWQgZnVuY3Rpb25zIGFjY2Vzc2libGUNCgkJdC5wID0gcDsNCgkJdC5ncmlkID0gZzsNCgkJDQoJCS8vIGxvYWQgZGF0YQ0KCQlpZiAocC51cmwmJnAuYXV0b2xvYWQpIA0KCQkJew0KCQkJZy5wb3B1bGF0ZSgpOw0KCQkJfQ0KCQkNCgkJcmV0dXJuIHQ7CQkNCgkJCQ0KCX07DQoNCgl2YXIgZG9jbG9hZGVkID0gZmFsc2U7DQoNCgkkKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbiAoKSB7ZG9jbG9hZGVkID0gdHJ1ZX0gKTsNCg0KCSQuZm4uZmxleGlncmlkID0gZnVuY3Rpb24ocCkgew0KDQoJCXJldHVybiB0aGlzLmVhY2goIGZ1bmN0aW9uKCkgew0KCQkJCWlmICghZG9jbG9hZGVkKQ0KCQkJCXsNCgkJCQkJJCh0aGlzKS5oaWRlKCk7DQoJCQkJCXZhciB0ID0gdGhpczsNCgkJCQkJJChkb2N1bWVudCkucmVhZHkNCgkJCQkJKA0KCQkJCQkJZnVuY3Rpb24gKCkNCgkJCQkJCXsNCgkJCQkJCSQuYWRkRmxleCh0LHApOw0KCQkJCQkJfQ0KCQkJCQkpOw0KCQkJCX0gZWxzZSB7DQoJCQkJCSQuYWRkRmxleCh0aGlzLHApOw0KCQkJCX0NCgkJCX0pOw0KDQoJfTsgLy9lbmQgZmxleGlncmlkDQoNCgkkLmZuLmZsZXhSZWxvYWQgPSBmdW5jdGlvbihwKSB7IC8vIGZ1bmN0aW9uIHRvIHJlbG9hZCBncmlkDQoNCgkJcmV0dXJuIHRoaXMuZWFjaCggZnVuY3Rpb24oKSB7DQoJCQkJaWYgKHRoaXMuZ3JpZCYmdGhpcy5wLnVybCkgdGhpcy5ncmlkLnBvcHVsYXRlKCk7DQoJCQl9KTsNCg0KCX07IC8vZW5kIGZsZXhSZWxvYWQNCg0KCSQuZm4uZmxleE9wdGlvbnMgPSBmdW5jdGlvbihwKSB7IC8vZnVuY3Rpb24gdG8gdXBkYXRlIGdlbmVyYWwgb3B0aW9ucw0KDQoJCXJldHVybiB0aGlzLmVhY2goIGZ1bmN0aW9uKCkgew0KCQkJCWlmICh0aGlzLmdyaWQpICQuZXh0ZW5kKHRoaXMucCxwKTsNCgkJCX0pOw0KDQoJfTsgLy9lbmQgZmxleE9wdGlvbnMNCg0KCSQuZm4uZmxleFRvZ2dsZUNvbCA9IGZ1bmN0aW9uKGNpZCx2aXNpYmxlKSB7IC8vIGZ1bmN0aW9uIHRvIHJlbG9hZCBncmlkDQoNCgkJcmV0dXJuIHRoaXMuZWFjaCggZnVuY3Rpb24oKSB7DQoJCQkJaWYgKHRoaXMuZ3JpZCkgdGhpcy5ncmlkLnRvZ2dsZUNvbChjaWQsdmlzaWJsZSk7DQoJCQl9KTsNCg0KCX07IC8vZW5kIGZsZXhUb2dnbGVDb2wNCg0KCSQuZm4uZmxleEFkZERhdGEgPSBmdW5jdGlvbihkYXRhKSB7IC8vIGZ1bmN0aW9uIHRvIGFkZCBkYXRhIHRvIGdyaWQNCg0KCQlyZXR1cm4gdGhpcy5lYWNoKCBmdW5jdGlvbigpIHsNCgkJCQlpZiAodGhpcy5ncmlkKSB0aGlzLmdyaWQuYWRkRGF0YShkYXRhKTsNCgkJCX0pOw0KDQoJfTsNCg0KCSQuZm4ubm9TZWxlY3QgPSBmdW5jdGlvbihwKSB7IC8vbm8gc2VsZWN0IHBsdWdpbiBieSBtZSA6LSkNCg0KCQlpZiAocCA9PSBudWxsKSANCgkJCXByZXZlbnQgPSB0cnVlOw0KCQllbHNlDQoJCQlwcmV2ZW50ID0gcDsNCg0KCQlpZiAocHJldmVudCkgew0KCQkNCgkJcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbiAoKQ0KCQkJew0KCQkJCWlmICgkLmJyb3dzZXIubXNpZXx8JC5icm93c2VyLnNhZmFyaSkgJCh0aGlzKS5iaW5kKCdzZWxlY3RzdGFydCcsZnVuY3Rpb24oKXtyZXR1cm4gZmFsc2U7fSk7DQoJCQkJZWxzZSBpZiAoJC5icm93c2VyLm1vemlsbGEpIA0KCQkJCQl7DQoJCQkJCQkkKHRoaXMpLmNzcygnTW96VXNlclNlbGVjdCcsJ25vbmUnKTsNCgkJCQkJCSQoJ2JvZHknKS50cmlnZ2VyKCdmb2N1cycpOw0KCQkJCQl9DQoJCQkJZWxzZSBpZiAoJC5icm93c2VyLm9wZXJhKSAkKHRoaXMpLmJpbmQoJ21vdXNlZG93bicsZnVuY3Rpb24oKXtyZXR1cm4gZmFsc2U7fSk7DQoJCQkJZWxzZSAkKHRoaXMpLmF0dHIoJ3Vuc2VsZWN0YWJsZScsJ29uJyk7DQoJCQl9KTsNCgkJCQ0KCQl9IGVsc2Ugew0KDQoJCQ0KCQlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uICgpDQoJCQl7DQoJCQkJaWYgKCQuYnJvd3Nlci5tc2llfHwkLmJyb3dzZXIuc2FmYXJpKSAkKHRoaXMpLnVuYmluZCgnc2VsZWN0c3RhcnQnKTsNCgkJCQllbHNlIGlmICgkLmJyb3dzZXIubW96aWxsYSkgJCh0aGlzKS5jc3MoJ01velVzZXJTZWxlY3QnLCdpbmhlcml0Jyk7DQoJCQkJZWxzZSBpZiAoJC5icm93c2VyLm9wZXJhKSAkKHRoaXMpLnVuYmluZCgnbW91c2Vkb3duJyk7DQoJCQkJZWxzZSAkKHRoaXMpLnJlbW92ZUF0dHIoJ3Vuc2VsZWN0YWJsZScsJ29uJyk7DQoJCQl9KTsNCgkJDQoJCX0NCg0KCX07IC8vZW5kIG5vU2VsZWN0DQoJCQ0KfSkoalF1ZXJ5KTsNCg==]]></data>
	</file>
	<file>
	  <filename>/includes/jquery.colorbox-min.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoJQ29sb3JCb3ggdjEuMy42IC0gYSBmdWxsIGZlYXR1cmVkLCBsaWdodC13ZWlnaHQsIGN1c3RvbWl6YWJsZSBsaWdodGJveCBiYXNlZCBvbiBqUXVlcnkgMS4zICovCihmdW5jdGlvbihjKXtmdW5jdGlvbiByKGIsZCl7ZD1kPT09IngiP20ud2lkdGgoKTptLmhlaWdodCgpO3JldHVybiB0eXBlb2YgYj09PSJzdHJpbmciP01hdGgucm91bmQoYi5tYXRjaCgvJS8pP2QvMTAwKnBhcnNlSW50KGIsMTApOnBhcnNlSW50KGIsMTApKTpifWZ1bmN0aW9uIE0oYil7Yj1jLmlzRnVuY3Rpb24oYik/Yi5jYWxsKGkpOmI7cmV0dXJuIGEucGhvdG98fGIubWF0Y2goL1wuKGdpZnxwbmd8anBnfGpwZWd8Ym1wKSg/Olw/KFteI10qKSk/KD86IyhcLiopKT8kL2kpfWZ1bmN0aW9uIFkoKXtmb3IodmFyIGIgaW4gYSlpZihjLmlzRnVuY3Rpb24oYVtiXSkmJmIuc3Vic3RyaW5nKDAsMikhPT0ib24iKWFbYl09YVtiXS5jYWxsKGkpO2EucmVsPWEucmVsfHxpLnJlbDthLmhyZWY9YS5ocmVmfHxpLmhyZWY7YS50aXRsZT1hLnRpdGxlfHxpLnRpdGxlfWZ1bmN0aW9uIFooYil7aT1iO2E9Yy5leHRlbmQoe30sYyhpKS5kYXRhKHEpKTtZKCk7aWYoYS5yZWwmJmEucmVsIT09Im5vZm9sbG93Iil7Zz0gYygiLmNib3hFbGVtZW50IikuZmlsdGVyKGZ1bmN0aW9uKCl7cmV0dXJuKGModGhpcykuZGF0YShxKS5yZWx8fHRoaXMucmVsKT09PWEucmVsfSk7aj1nLmluZGV4KGkpO2lmKGo8MCl7Zz1nLmFkZChpKTtqPWcubGVuZ3RoLTF9fWVsc2V7Zz1jKGkpO2o9MH1pZighQil7Qz1CPW47Tj1pO04uYmx1cigpO2MoZG9jdW1lbnQpLmJpbmQoImtleWRvd24uY2JveF9jbG9zZSIsZnVuY3Rpb24oZCl7aWYoZC5rZXlDb2RlPT09Mjcpe2QucHJldmVudERlZmF1bHQoKTtlLmNsb3NlKCl9fSkuYmluZCgia2V5ZG93bi5jYm94X2Fycm93cyIsZnVuY3Rpb24oZCl7aWYoZy5sZW5ndGg+MSlpZihkLmtleUNvZGU9PT0zNyl7ZC5wcmV2ZW50RGVmYXVsdCgpO0QuY2xpY2soKX1lbHNlIGlmKGQua2V5Q29kZT09PTM5KXtkLnByZXZlbnREZWZhdWx0KCk7RS5jbGljaygpfX0pO2Eub3ZlcmxheUNsb3NlJiZzLmNzcyh7Y3Vyc29yOiJwb2ludGVyIn0pLm9uZSgiY2xpY2siLGUuY2xvc2UpO2MuZXZlbnQudHJpZ2dlcihhYSk7IGEub25PcGVuJiZhLm9uT3Blbi5jYWxsKGkpO3MuY3NzKHtvcGFjaXR5OmEub3BhY2l0eX0pLnNob3coKTthLnc9cihhLmluaXRpYWxXaWR0aCwieCIpO2EuaD1yKGEuaW5pdGlhbEhlaWdodCwieSIpO2UucG9zaXRpb24oMCk7TyYmbS5iaW5kKCJyZXNpemUuY2JveGllNiBzY3JvbGwuY2JveGllNiIsZnVuY3Rpb24oKXtzLmNzcyh7d2lkdGg6bS53aWR0aCgpLGhlaWdodDptLmhlaWdodCgpLHRvcDptLnNjcm9sbFRvcCgpLGxlZnQ6bS5zY3JvbGxMZWZ0KCl9KX0pLnRyaWdnZXIoInNjcm9sbC5jYm94aWU2Iil9UC5hZGQoRCkuYWRkKEUpLmFkZCh0KS5hZGQoUSkuaGlkZSgpO1IuaHRtbChhLmNsb3NlKS5zaG93KCk7ZS5zbGlkZXNob3coKTtlLmxvYWQoKX12YXIgcT0iY29sb3Jib3giLEY9ImhvdmVyIixuPXRydWUsZSx4PWMuYnJvd3Nlci5tc2llJiYhYy5zdXBwb3J0Lm9wYWNpdHksTz14JiZjLmJyb3dzZXIudmVyc2lvbjw3LGFhPSJjYm94X29wZW4iLEg9ImNib3hfbG9hZCIsUz0gImNib3hfY29tcGxldGUiLFQ9InJlc2l6ZS5jYm94X3Jlc2l6ZSIscyxrLHUscCxVLFYsVyxYLGcsbSxsLEksSixLLFEsUCx0LEUsRCxSLHkseix2LHcsaSxOLGosYSxCLEMsJD17dHJhbnNpdGlvbjoiZWxhc3RpYyIsc3BlZWQ6MzUwLHdpZHRoOmZhbHNlLGhlaWdodDpmYWxzZSxpbm5lcldpZHRoOmZhbHNlLGlubmVySGVpZ2h0OmZhbHNlLGluaXRpYWxXaWR0aDoiNDAwIixpbml0aWFsSGVpZ2h0OiI0MDAiLG1heFdpZHRoOmZhbHNlLG1heEhlaWdodDpmYWxzZSxzY2FsZVBob3RvczpuLHNjcm9sbGluZzpuLGlubGluZTpmYWxzZSxodG1sOmZhbHNlLGlmcmFtZTpmYWxzZSxwaG90bzpmYWxzZSxocmVmOmZhbHNlLHRpdGxlOmZhbHNlLHJlbDpmYWxzZSxvcGFjaXR5OjAuOSxwcmVsb2FkaW5nOm4sY3VycmVudDoiaW1hZ2Uge2N1cnJlbnR9IG9mIHt0b3RhbH0iLHByZXZpb3VzOiJwcmV2aW91cyIsbmV4dDoibmV4dCIsY2xvc2U6ImNsb3NlIixvcGVuOmZhbHNlLG92ZXJsYXlDbG9zZTpuLCBzbGlkZXNob3c6ZmFsc2Usc2xpZGVzaG93QXV0bzpuLHNsaWRlc2hvd1NwZWVkOjI1MDAsc2xpZGVzaG93U3RhcnQ6InN0YXJ0IHNsaWRlc2hvdyIsc2xpZGVzaG93U3RvcDoic3RvcCBzbGlkZXNob3ciLG9uT3BlbjpmYWxzZSxvbkxvYWQ6ZmFsc2Usb25Db21wbGV0ZTpmYWxzZSxvbkNsZWFudXA6ZmFsc2Usb25DbG9zZWQ6ZmFsc2V9O2U9Yy5mbi5jb2xvcmJveD1mdW5jdGlvbihiLGQpe3ZhciBoPXRoaXM7aWYoIWgubGVuZ3RoKWlmKGguc2VsZWN0b3I9PT0iIil7aD1jKCI8YS8+Iik7Yi5vcGVuPW59ZWxzZSByZXR1cm4gdGhpcztoLmVhY2goZnVuY3Rpb24oKXt2YXIgZj1jLmV4dGVuZCh7fSxjKHRoaXMpLmRhdGEocSk/Yyh0aGlzKS5kYXRhKHEpOiQsYik7Yyh0aGlzKS5kYXRhKHEsZikuYWRkQ2xhc3MoImNib3hFbGVtZW50Iik7aWYoZCljKHRoaXMpLmRhdGEocSkub25Db21wbGV0ZT1kfSk7YiYmYi5vcGVuJiZaKGgpO3JldHVybiB0aGlzfTtlLmluaXQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiBiKGQpe3JldHVybiBjKCc8ZGl2IGlkPSJjYm94JysgZCsnIi8+Jyl9bT1jKHdpbmRvdyk7az1jKCc8ZGl2IGlkPSJjb2xvcmJveCIvPicpO3M9YigiT3ZlcmxheSIpLmhpZGUoKTt1PWIoIldyYXBwZXIiKTtwPWIoIkNvbnRlbnQiKS5hcHBlbmQobD1iKCJMb2FkZWRDb250ZW50IikuY3NzKHt3aWR0aDowLGhlaWdodDowfSksSj1iKCJMb2FkaW5nT3ZlcmxheSIpLEs9YigiTG9hZGluZ0dyYXBoaWMiKSxRPWIoIlRpdGxlIiksUD1iKCJDdXJyZW50IiksdD1iKCJTbGlkZXNob3ciKSxFPWIoIk5leHQiKSxEPWIoIlByZXZpb3VzIiksUj1iKCJDbG9zZSIpKTt1LmFwcGVuZChjKCI8ZGl2Lz4iKS5hcHBlbmQoYigiVG9wTGVmdCIpLFU9YigiVG9wQ2VudGVyIiksYigiVG9wUmlnaHQiKSksYygiPGRpdi8+IikuYXBwZW5kKFY9YigiTWlkZGxlTGVmdCIpLHAsVz1iKCJNaWRkbGVSaWdodCIpKSxjKCI8ZGl2Lz4iKS5hcHBlbmQoYigiQm90dG9tTGVmdCIpLFg9YigiQm90dG9tQ2VudGVyIiksYigiQm90dG9tUmlnaHQiKSkpLmNoaWxkcmVuKCkuY2hpbGRyZW4oKS5jc3MoeyJmbG9hdCI6ImxlZnQifSk7IEk9YygiPGRpdiBzdHlsZT0ncG9zaXRpb246YWJzb2x1dGU7IHRvcDowOyBsZWZ0OjA7IHdpZHRoOjk5OTlweDsgaGVpZ2h0OjA7Jy8+Iik7YygiYm9keSIpLnByZXBlbmQocyxrLmFwcGVuZCh1LEkpKTtpZih4KXtrLmFkZENsYXNzKCJjYm94SUUiKTtPJiZzLmNzcygicG9zaXRpb24iLCJhYnNvbHV0ZSIpfXAuY2hpbGRyZW4oKS5iaW5kKCJtb3VzZW92ZXIgbW91c2VvdXQiLGZ1bmN0aW9uKCl7Yyh0aGlzKS50b2dnbGVDbGFzcyhGKX0pLmFkZENsYXNzKEYpO3k9VS5oZWlnaHQoKStYLmhlaWdodCgpK3Aub3V0ZXJIZWlnaHQobiktcC5oZWlnaHQoKTt6PVYud2lkdGgoKStXLndpZHRoKCkrcC5vdXRlcldpZHRoKG4pLXAud2lkdGgoKTt2PWwub3V0ZXJIZWlnaHQobik7dz1sLm91dGVyV2lkdGgobik7ay5jc3MoeyJwYWRkaW5nLWJvdHRvbSI6eSwicGFkZGluZy1yaWdodCI6en0pLmhpZGUoKTtFLmNsaWNrKGUubmV4dCk7RC5jbGljayhlLnByZXYpO1IuY2xpY2soZS5jbG9zZSk7cC5jaGlsZHJlbigpLnJlbW92ZUNsYXNzKEYpOyBjKCIuY2JveEVsZW1lbnQiKS5saXZlKCJjbGljayIsZnVuY3Rpb24oZCl7aWYoZC5idXR0b24hPT0wJiZ0eXBlb2YgZC5idXR0b24hPT0idW5kZWZpbmVkIilyZXR1cm4gbjtlbHNle1oodGhpcyk7cmV0dXJuIGZhbHNlfX0pfTtlLnBvc2l0aW9uPWZ1bmN0aW9uKGIsZCl7ZnVuY3Rpb24gaChBKXtVWzBdLnN0eWxlLndpZHRoPVhbMF0uc3R5bGUud2lkdGg9cFswXS5zdHlsZS53aWR0aD1BLnN0eWxlLndpZHRoO0tbMF0uc3R5bGUuaGVpZ2h0PUpbMF0uc3R5bGUuaGVpZ2h0PXBbMF0uc3R5bGUuaGVpZ2h0PVZbMF0uc3R5bGUuaGVpZ2h0PVdbMF0uc3R5bGUuaGVpZ2h0PUEuc3R5bGUuaGVpZ2h0fXZhciBmPW0uaGVpZ2h0KCk7Zj1NYXRoLm1heChmLWEuaC12LXksMCkvMittLnNjcm9sbFRvcCgpO3ZhciBvPU1hdGgubWF4KGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aC1hLnctdy16LDApLzIrbS5zY3JvbGxMZWZ0KCk7Yj1rLndpZHRoKCk9PT1hLncrdyYmay5oZWlnaHQoKT09PSBhLmgrdj8wOmI7dVswXS5zdHlsZS53aWR0aD11WzBdLnN0eWxlLmhlaWdodD0iOTk5OXB4IjtrLmRlcXVldWUoKS5hbmltYXRlKHt3aWR0aDphLncrdyxoZWlnaHQ6YS5oK3YsdG9wOmYsbGVmdDpvfSx7ZHVyYXRpb246Yixjb21wbGV0ZTpmdW5jdGlvbigpe2godGhpcyk7Qz1mYWxzZTt1WzBdLnN0eWxlLndpZHRoPWEudyt3K3orInB4Ijt1WzBdLnN0eWxlLmhlaWdodD1hLmgrdit5KyJweCI7ZCYmZCgpfSxzdGVwOmZ1bmN0aW9uKCl7aCh0aGlzKX19KX07ZS5yZXNpemU9ZnVuY3Rpb24oYil7ZnVuY3Rpb24gZCgpe2Eudz1hLnd8fGwud2lkdGgoKTthLnc9YS5tdyYmYS5tdzxhLnc/YS5tdzphLnc7cmV0dXJuIGEud31mdW5jdGlvbiBoKCl7YS5oPWEuaHx8bC5oZWlnaHQoKTthLmg9YS5taCYmYS5taDxhLmg/YS5taDphLmg7cmV0dXJuIGEuaH1mdW5jdGlvbiBmKEcpe2UucG9zaXRpb24oRyxmdW5jdGlvbigpe2lmKEIpe2lmKHgpe0EmJmwuZmFkZUluKDEwMCk7a1swXS5zdHlsZS5yZW1vdmVBdHRyaWJ1dGUoImZpbHRlciIpfWlmKGEuaWZyYW1lKWwuYXBwZW5kKCI8aWZyYW1lIGlkPSdjYm94SWZyYW1lJyIrIChhLnNjcm9sbGluZz8iICI6InNjcm9sbGluZz0nbm8nIikrIiBuYW1lPSdpZnJhbWVfIisobmV3IERhdGUpLmdldFRpbWUoKSsiJyBmcmFtZWJvcmRlcj0wIHNyYz0nIithLmhyZWYrIicgIisoeD8iYWxsb3d0cmFuc3BhcmVuY3k9J3RydWUnIjoiIikrIiAvPiIpO2wuc2hvdygpO1Euc2hvdygpLmh0bWwoYS50aXRsZSk7aWYoZy5sZW5ndGg+MSl7UC5odG1sKGEuY3VycmVudC5yZXBsYWNlKC9ce2N1cnJlbnRcfS8saisxKS5yZXBsYWNlKC9ce3RvdGFsXH0vLGcubGVuZ3RoKSkuc2hvdygpO0UuaHRtbChhLm5leHQpLnNob3coKTtELmh0bWwoYS5wcmV2aW91cykuc2hvdygpO2Euc2xpZGVzaG93JiZ0LnNob3coKX1KLmhpZGUoKTtLLmhpZGUoKTtjLmV2ZW50LnRyaWdnZXIoUyk7YS5vbkNvbXBsZXRlJiZhLm9uQ29tcGxldGUuY2FsbChpKTthLnRyYW5zaXRpb249PT0iZmFkZSImJmsuZmFkZVRvKEwsMSxmdW5jdGlvbigpe3gmJmtbMF0uc3R5bGUucmVtb3ZlQXR0cmlidXRlKCJmaWx0ZXIiKX0pOyBtLmJpbmQoVCxmdW5jdGlvbigpe2UucG9zaXRpb24oMCl9KX19KX1pZihCKXt2YXIgbyxBLEw9YS50cmFuc2l0aW9uPT09Im5vbmUiPzA6YS5zcGVlZDttLnVuYmluZChUKTtpZihiKXtsLnJlbW92ZSgpO2w9YygnPGRpdiBpZD0iY2JveExvYWRlZENvbnRlbnQiLz4nKS5odG1sKGIpO2wuaGlkZSgpLmFwcGVuZFRvKEkpLmNzcyh7d2lkdGg6ZCgpLG92ZXJmbG93OmEuc2Nyb2xsaW5nPyJhdXRvIjoiaGlkZGVuIn0pLmNzcyh7aGVpZ2h0OmgoKX0pLnByZXBlbmRUbyhwKTtjKCIjY2JveFBob3RvIikuY3NzKHtjc3NGbG9hdDoibm9uZSJ9KTtPJiZjKCJzZWxlY3Q6bm90KCNjb2xvcmJveCBzZWxlY3QpIikuZmlsdGVyKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc3R5bGUudmlzaWJpbGl0eSE9PSJoaWRkZW4ifSkuY3NzKHt2aXNpYmlsaXR5OiJoaWRkZW4ifSkub25lKCJjYm94X2NsZWFudXAiLGZ1bmN0aW9uKCl7dGhpcy5zdHlsZS52aXNpYmlsaXR5PSJpbmhlcml0In0pO2EudHJhbnNpdGlvbj09PSAiZmFkZSImJmsuZmFkZVRvKEwsMCxmdW5jdGlvbigpe2YoMCl9KXx8ZihMKTtpZihhLnByZWxvYWRpbmcmJmcubGVuZ3RoPjEpe2I9aj4wP2dbai0xXTpnW2cubGVuZ3RoLTFdO289ajxnLmxlbmd0aC0xP2dbaisxXTpnWzBdO289YyhvKS5kYXRhKHEpLmhyZWZ8fG8uaHJlZjtiPWMoYikuZGF0YShxKS5ocmVmfHxiLmhyZWY7TShvKSYmYygiPGltZyAvPiIpLmF0dHIoInNyYyIsbyk7TShiKSYmYygiPGltZyAvPiIpLmF0dHIoInNyYyIsYil9fWVsc2Ugc2V0VGltZW91dChmdW5jdGlvbigpe3ZhciBHPWwud3JhcElubmVyKCI8ZGl2IHN0eWxlPSdvdmVyZmxvdzphdXRvJz48L2Rpdj4iKS5jaGlsZHJlbigpO2EuaD1HLmhlaWdodCgpO2wuY3NzKHtoZWlnaHQ6YS5ofSk7Ry5yZXBsYWNlV2l0aChHLmNoaWxkcmVuKCkpO2UucG9zaXRpb24oTCl9LDEpfX07ZS5sb2FkPWZ1bmN0aW9uKCl7dmFyIGIsZCxoLGY9ZS5yZXNpemU7Qz1uO2k9Z1tqXTthPWMuZXh0ZW5kKHt9LGMoaSkuZGF0YShxKSk7IFkoKTtjLmV2ZW50LnRyaWdnZXIoSCk7YS5vbkxvYWQmJmEub25Mb2FkLmNhbGwoaSk7YS5oPWEuaGVpZ2h0P3IoYS5oZWlnaHQsInkiKS12LXk6YS5pbm5lckhlaWdodD9yKGEuaW5uZXJIZWlnaHQsInkiKTpmYWxzZTthLnc9YS53aWR0aD9yKGEud2lkdGgsIngiKS13LXo6YS5pbm5lcldpZHRoP3IoYS5pbm5lcldpZHRoLCJ4Iik6ZmFsc2U7YS5tdz1hLnc7YS5taD1hLmg7aWYoYS5tYXhXaWR0aCl7YS5tdz1yKGEubWF4V2lkdGgsIngiKS13LXo7YS5tdz1hLncmJmEudzxhLm13P2EudzphLm13fWlmKGEubWF4SGVpZ2h0KXthLm1oPXIoYS5tYXhIZWlnaHQsInkiKS12LXk7YS5taD1hLmgmJmEuaDxhLm1oP2EuaDphLm1ofWI9YS5ocmVmO0ouc2hvdygpO0suc2hvdygpO2lmKGEuaW5saW5lKXtjKCc8ZGl2IGlkPSJjYm94SW5saW5lVGVtcCIgLz4nKS5oaWRlKCkuaW5zZXJ0QmVmb3JlKGMoYilbMF0pLmJpbmQoSCsiIGNib3hfY2xlYW51cCIsZnVuY3Rpb24oKXtjKHRoaXMpLnJlcGxhY2VXaXRoKGwuY2hpbGRyZW4oKSl9KTsgZihjKGIpKX1lbHNlIGlmKGEuaWZyYW1lKWYoIiAiKTtlbHNlIGlmKGEuaHRtbClmKGEuaHRtbCk7ZWxzZSBpZihNKGIpKXtkPW5ldyBJbWFnZTtkLm9ubG9hZD1mdW5jdGlvbigpe3ZhciBvO2Qub25sb2FkPW51bGw7ZC5pZD0iY2JveFBob3RvIjtjKGQpLmNzcyh7bWFyZ2luOiJhdXRvIixib3JkZXI6Im5vbmUiLGRpc3BsYXk6ImJsb2NrIixjc3NGbG9hdDoibGVmdCJ9KTtpZihhLnNjYWxlUGhvdG9zKXtoPWZ1bmN0aW9uKCl7ZC5oZWlnaHQtPWQuaGVpZ2h0Km87ZC53aWR0aC09ZC53aWR0aCpvfTtpZihhLm13JiZkLndpZHRoPmEubXcpe289KGQud2lkdGgtYS5tdykvZC53aWR0aDtoKCl9aWYoYS5taCYmZC5oZWlnaHQ+YS5taCl7bz0oZC5oZWlnaHQtYS5taCkvZC5oZWlnaHQ7aCgpfX1pZihhLmgpZC5zdHlsZS5tYXJnaW5Ub3A9TWF0aC5tYXgoYS5oLWQuaGVpZ2h0LDApLzIrInB4IjtmKGQpO2cubGVuZ3RoPjEmJmMoZCkuY3NzKHtjdXJzb3I6InBvaW50ZXIifSkuY2xpY2soZS5uZXh0KTsgaWYoeClkLnN0eWxlLm1zSW50ZXJwb2xhdGlvbk1vZGU9ImJpY3ViaWMifTtkLnNyYz1ifWVsc2UgYygiPGRpdiAvPiIpLmFwcGVuZFRvKEkpLmxvYWQoYixmdW5jdGlvbihvLEEpe0E9PT0ic3VjY2VzcyI/Zih0aGlzKTpmKGMoIjxwPlJlcXVlc3QgdW5zdWNjZXNzZnVsLjwvcD4iKSl9KX07ZS5uZXh0PWZ1bmN0aW9uKCl7aWYoIUMpe2o9ajxnLmxlbmd0aC0xP2orMTowO2UubG9hZCgpfX07ZS5wcmV2PWZ1bmN0aW9uKCl7aWYoIUMpe2o9aj4wP2otMTpnLmxlbmd0aC0xO2UubG9hZCgpfX07ZS5zbGlkZXNob3c9ZnVuY3Rpb24oKXtmdW5jdGlvbiBiKCl7dC50ZXh0KGEuc2xpZGVzaG93U3RvcCkuYmluZChTLGZ1bmN0aW9uKCl7aD1zZXRUaW1lb3V0KGUubmV4dCxhLnNsaWRlc2hvd1NwZWVkKX0pLmJpbmQoSCxmdW5jdGlvbigpe2NsZWFyVGltZW91dChoKX0pLm9uZSgiY2xpY2siLGZ1bmN0aW9uKCl7ZCgpO2ModGhpcykucmVtb3ZlQ2xhc3MoRil9KTtrLnJlbW92ZUNsYXNzKGYrICJvZmYiKS5hZGRDbGFzcyhmKyJvbiIpfXZhciBkLGgsZj0iY2JveFNsaWRlc2hvd18iO3QuYmluZCgiY2JveF9jbG9zZWQiLGZ1bmN0aW9uKCl7dC51bmJpbmQoKTtjbGVhclRpbWVvdXQoaCk7ay5yZW1vdmVDbGFzcyhmKyJvZmYgIitmKyJvbiIpfSk7ZD1mdW5jdGlvbigpe2NsZWFyVGltZW91dChoKTt0LnRleHQoYS5zbGlkZXNob3dTdGFydCkudW5iaW5kKFMrIiAiK0gpLm9uZSgiY2xpY2siLGZ1bmN0aW9uKCl7YigpO2g9c2V0VGltZW91dChlLm5leHQsYS5zbGlkZXNob3dTcGVlZCk7Yyh0aGlzKS5yZW1vdmVDbGFzcyhGKX0pO2sucmVtb3ZlQ2xhc3MoZisib24iKS5hZGRDbGFzcyhmKyJvZmYiKX07aWYoYS5zbGlkZXNob3cmJmcubGVuZ3RoPjEpYS5zbGlkZXNob3dBdXRvP2IoKTpkKCl9O2UuY2xvc2U9ZnVuY3Rpb24oKXtjLmV2ZW50LnRyaWdnZXIoImNib3hfY2xlYW51cCIpO2Eub25DbGVhbnVwJiZhLm9uQ2xlYW51cC5jYWxsKGkpO0I9ZmFsc2U7Yyhkb2N1bWVudCkudW5iaW5kKCJrZXlkb3duLmNib3hfY2xvc2Uga2V5ZG93bi5jYm94X2Fycm93cyIpOyBtLnVuYmluZChUKyIgcmVzaXplLmNib3hpZTYgc2Nyb2xsLmNib3hpZTYiKTtzLmNzcyh7Y3Vyc29yOiJhdXRvIn0pLmZhZGVPdXQoImZhc3QiKTtrLnN0b3AobixmYWxzZSkuZmFkZU91dCgiZmFzdCIsZnVuY3Rpb24oKXtjKCIjY29sb3Jib3ggaWZyYW1lIikuYXR0cigic3JjIiwiYWJvdXQ6YmxhbmsiKTtsLnJlbW92ZSgpO2suY3NzKHtvcGFjaXR5OjF9KTt0cnl7Ti5mb2N1cygpfWNhdGNoKGIpe31jLmV2ZW50LnRyaWdnZXIoImNib3hfY2xvc2VkIik7YS5vbkNsb3NlZCYmYS5vbkNsb3NlZC5jYWxsKGkpfSl9O2UuZWxlbWVudD1mdW5jdGlvbigpe3JldHVybiBjKGkpfTtlLnNldHRpbmdzPSQ7YyhlLmluaXQpfSkoalF1ZXJ5KTs=]]></data>
	</file>
	<file>
	  <filename>/includes/jquery.hotkeys.min.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[KGZ1bmN0aW9uKGpRdWVyeSl7alF1ZXJ5LmZuLl9fYmluZF9fPWpRdWVyeS5mbi5iaW5kO2pRdWVyeS5mbi5fX3VuYmluZF9fPWpRdWVyeS5mbi51bmJpbmQ7alF1ZXJ5LmZuLl9fZmluZF9fPWpRdWVyeS5mbi5maW5kO3ZhciBob3RrZXlzPXt2ZXJzaW9uOicwLjcuOScsb3ZlcnJpZGU6L2tleXByZXNzfGtleWRvd258a2V5dXAvZyx0cmlnZ2Vyc01hcDp7fSxzcGVjaWFsS2V5czp7Mjc6J2VzYycsOTondGFiJywzMjonc3BhY2UnLDEzOidyZXR1cm4nLDg6J2JhY2tzcGFjZScsMTQ1OidzY3JvbGwnLDIwOidjYXBzbG9jaycsMTQ0OidudW1sb2NrJywxOToncGF1c2UnLDQ1OidpbnNlcnQnLDM2Oidob21lJyw0NjonZGVsJywzNTonZW5kJywzMzoncGFnZXVwJywzNDoncGFnZWRvd24nLDM3OidsZWZ0JywzODondXAnLDM5OidyaWdodCcsNDA6J2Rvd24nLDEwOTonLScsMTEyOidmMScsMTEzOidmMicsMTE0OidmMycsMTE1OidmNCcsMTE2OidmNScsMTE3OidmNicsMTE4OidmNycsMTE5OidmOCcsMTIwOidmOScsMTIxOidmMTAnLDEyMjonZjExJywxMjM6J2YxMicsMTkxOicvJ30sc2hpZnROdW1zOnsiYCI6In4iLCIxIjoiISIsIjIiOiJAIiwiMyI6IiMiLCI0IjoiJCIsIjUiOiIlIiwiNiI6Il4iLCI3IjoiJiIsIjgiOiIqIiwiOSI6IigiLCIwIjoiKSIsIi0iOiJfIiwiPSI6IisiLCI7IjoiOiIsIiciOiJcIiIsIiwiOiI8IiwiLiI6Ij4iLCIvIjoiPyIsIlxcIjoifCJ9LG5ld1RyaWdnZXI6ZnVuY3Rpb24odHlwZSxjb21iaSxjYWxsYmFjayl7dmFyIHJlc3VsdD17fTtyZXN1bHRbdHlwZV09e307cmVzdWx0W3R5cGVdW2NvbWJpXT17Y2I6Y2FsbGJhY2ssZGlzYWJsZUluSW5wdXQ6ZmFsc2V9O3JldHVybiByZXN1bHQ7fX07aG90a2V5cy5zcGVjaWFsS2V5cz1qUXVlcnkuZXh0ZW5kKGhvdGtleXMuc3BlY2lhbEtleXMsezk2OicwJyw5NzonMScsOTg6JzInLDk5OiczJywxMDA6JzQnLDEwMTonNScsMTAyOic2JywxMDM6JzcnLDEwNDonOCcsMTA1Oic5JywxMDY6JyonLDEwNzonKycsMTA5OictJywxMTA6Jy4nLDExMTonLyd9KTtqUXVlcnkuZm4uZmluZD1mdW5jdGlvbihzZWxlY3Rvcil7dGhpcy5xdWVyeT1zZWxlY3RvcjtyZXR1cm4galF1ZXJ5LmZuLl9fZmluZF9fLmFwcGx5KHRoaXMsYXJndW1lbnRzKTt9O2pRdWVyeS5mbi51bmJpbmQ9ZnVuY3Rpb24odHlwZSxjb21iaSxmbil7aWYoalF1ZXJ5LmlzRnVuY3Rpb24oY29tYmkpKXtmbj1jb21iaTtjb21iaT1udWxsO30KaWYoY29tYmkmJnR5cGVvZiBjb21iaT09PSdzdHJpbmcnKXt2YXIgc2VsZWN0b3JJZD0oKHRoaXMucHJldk9iamVjdCYmdGhpcy5wcmV2T2JqZWN0LnF1ZXJ5KXx8KHRoaXNbMF0uaWQmJnRoaXNbMF0uaWQpfHx0aGlzWzBdKS50b1N0cmluZygpO3ZhciBoa1R5cGVzPXR5cGUuc3BsaXQoJyAnKTtmb3IodmFyIHg9MDt4PGhrVHlwZXMubGVuZ3RoO3grKyl7ZGVsZXRlIGhvdGtleXMudHJpZ2dlcnNNYXBbc2VsZWN0b3JJZF1baGtUeXBlc1t4XV1bY29tYmldO319CnJldHVybiB0aGlzLl9fdW5iaW5kX18odHlwZSxmbik7fTtqUXVlcnkuZm4uYmluZD1mdW5jdGlvbih0eXBlLGRhdGEsZm4pe3ZhciBoYW5kbGU9dHlwZS5tYXRjaChob3RrZXlzLm92ZXJyaWRlKTtpZihqUXVlcnkuaXNGdW5jdGlvbihkYXRhKXx8IWhhbmRsZSl7cmV0dXJuIHRoaXMuX19iaW5kX18odHlwZSxkYXRhLGZuKTt9CmVsc2V7dmFyIHJlc3VsdD1udWxsLHBhc3MyanE9alF1ZXJ5LnRyaW0odHlwZS5yZXBsYWNlKGhvdGtleXMub3ZlcnJpZGUsJycpKTtpZihwYXNzMmpxKXtyZXN1bHQ9dGhpcy5fX2JpbmRfXyhwYXNzMmpxLGRhdGEsZm4pO30KaWYodHlwZW9mIGRhdGE9PT0ic3RyaW5nIil7ZGF0YT17J2NvbWJpJzpkYXRhfTt9CmlmKGRhdGEuY29tYmkpe2Zvcih2YXIgeD0wO3g8aGFuZGxlLmxlbmd0aDt4Kyspe3ZhciBldmVudFR5cGU9aGFuZGxlW3hdO3ZhciBjb21iaT1kYXRhLmNvbWJpLnRvTG93ZXJDYXNlKCksdHJpZ2dlcj1ob3RrZXlzLm5ld1RyaWdnZXIoZXZlbnRUeXBlLGNvbWJpLGZuKSxzZWxlY3RvcklkPSgodGhpcy5wcmV2T2JqZWN0JiZ0aGlzLnByZXZPYmplY3QucXVlcnkpfHwodGhpc1swXS5pZCYmdGhpc1swXS5pZCl8fHRoaXNbMF0pLnRvU3RyaW5nKCk7dHJpZ2dlcltldmVudFR5cGVdW2NvbWJpXS5kaXNhYmxlSW5JbnB1dD1kYXRhLmRpc2FibGVJbklucHV0O2lmKCFob3RrZXlzLnRyaWdnZXJzTWFwW3NlbGVjdG9ySWRdKXtob3RrZXlzLnRyaWdnZXJzTWFwW3NlbGVjdG9ySWRdPXRyaWdnZXI7fQplbHNlIGlmKCFob3RrZXlzLnRyaWdnZXJzTWFwW3NlbGVjdG9ySWRdW2V2ZW50VHlwZV0pe2hvdGtleXMudHJpZ2dlcnNNYXBbc2VsZWN0b3JJZF1bZXZlbnRUeXBlXT10cmlnZ2VyW2V2ZW50VHlwZV07fQp2YXIgbWFwUG9pbnQ9aG90a2V5cy50cmlnZ2Vyc01hcFtzZWxlY3RvcklkXVtldmVudFR5cGVdW2NvbWJpXTtpZighbWFwUG9pbnQpe2hvdGtleXMudHJpZ2dlcnNNYXBbc2VsZWN0b3JJZF1bZXZlbnRUeXBlXVtjb21iaV09W3RyaWdnZXJbZXZlbnRUeXBlXVtjb21iaV1dO30KZWxzZSBpZihtYXBQb2ludC5jb25zdHJ1Y3RvciE9PUFycmF5KXtob3RrZXlzLnRyaWdnZXJzTWFwW3NlbGVjdG9ySWRdW2V2ZW50VHlwZV1bY29tYmldPVttYXBQb2ludF07fQplbHNle2hvdGtleXMudHJpZ2dlcnNNYXBbc2VsZWN0b3JJZF1bZXZlbnRUeXBlXVtjb21iaV1bbWFwUG9pbnQubGVuZ3RoXT10cmlnZ2VyW2V2ZW50VHlwZV1bY29tYmldO30KdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGpxRWxlbT1qUXVlcnkodGhpcyk7aWYoanFFbGVtLmF0dHIoJ2hrSWQnKSYmanFFbGVtLmF0dHIoJ2hrSWQnKSE9PXNlbGVjdG9ySWQpe3NlbGVjdG9ySWQ9anFFbGVtLmF0dHIoJ2hrSWQnKSsiOyIrc2VsZWN0b3JJZDt9CmpxRWxlbS5hdHRyKCdoa0lkJyxzZWxlY3RvcklkKTt9KTtyZXN1bHQ9dGhpcy5fX2JpbmRfXyhoYW5kbGUuam9pbignICcpLGRhdGEsaG90a2V5cy5oYW5kbGVyKX19CnJldHVybiByZXN1bHQ7fX07aG90a2V5cy5maW5kRWxlbWVudD1mdW5jdGlvbihlbGVtKXtpZighalF1ZXJ5KGVsZW0pLmF0dHIoJ2hrSWQnKSl7aWYoalF1ZXJ5LmJyb3dzZXIub3BlcmF8fGpRdWVyeS5icm93c2VyLnNhZmFyaSl7d2hpbGUoIWpRdWVyeShlbGVtKS5hdHRyKCdoa0lkJykmJmVsZW0ucGFyZW50Tm9kZSl7ZWxlbT1lbGVtLnBhcmVudE5vZGU7fX19CnJldHVybiBlbGVtO307aG90a2V5cy5oYW5kbGVyPWZ1bmN0aW9uKGV2ZW50KXt2YXIgdGFyZ2V0PWhvdGtleXMuZmluZEVsZW1lbnQoZXZlbnQuY3VycmVudFRhcmdldCksalRhcmdldD1qUXVlcnkodGFyZ2V0KSxpZHM9alRhcmdldC5hdHRyKCdoa0lkJyk7aWYoaWRzKXtpZHM9aWRzLnNwbGl0KCc7Jyk7dmFyIGNvZGU9ZXZlbnQud2hpY2gsdHlwZT1ldmVudC50eXBlLHNwZWNpYWw9aG90a2V5cy5zcGVjaWFsS2V5c1tjb2RlXSxjaGFyYWN0ZXI9IXNwZWNpYWwmJlN0cmluZy5mcm9tQ2hhckNvZGUoY29kZSkudG9Mb3dlckNhc2UoKSxzaGlmdD1ldmVudC5zaGlmdEtleSxjdHJsPWV2ZW50LmN0cmxLZXksYWx0PWV2ZW50LmFsdEtleXx8ZXZlbnQub3JpZ2luYWxFdmVudC5hbHRLZXksbWFwUG9pbnQ9bnVsbDtmb3IodmFyIHg9MDt4PGlkcy5sZW5ndGg7eCsrKXtpZihob3RrZXlzLnRyaWdnZXJzTWFwW2lkc1t4XV1bdHlwZV0pe21hcFBvaW50PWhvdGtleXMudHJpZ2dlcnNNYXBbaWRzW3hdXVt0eXBlXTticmVhazt9fQppZihtYXBQb2ludCl7dmFyIHRyaWdnZXI7aWYoIXNoaWZ0JiYhY3RybCYmIWFsdCl7dHJpZ2dlcj1tYXBQb2ludFtzcGVjaWFsXXx8KGNoYXJhY3RlciYmbWFwUG9pbnRbY2hhcmFjdGVyXSk7fQplbHNle3ZhciBtb2RpZj0nJztpZihhbHQpbW9kaWYrPSdhbHQrJztpZihjdHJsKW1vZGlmKz0nY3RybCsnO2lmKHNoaWZ0KW1vZGlmKz0nc2hpZnQrJzt0cmlnZ2VyPW1hcFBvaW50W21vZGlmK3NwZWNpYWxdO2lmKCF0cmlnZ2VyKXtpZihjaGFyYWN0ZXIpe3RyaWdnZXI9bWFwUG9pbnRbbW9kaWYrY2hhcmFjdGVyXXx8bWFwUG9pbnRbbW9kaWYraG90a2V5cy5zaGlmdE51bXNbY2hhcmFjdGVyXV18fChtb2RpZj09PSdzaGlmdCsnJiZtYXBQb2ludFtob3RrZXlzLnNoaWZ0TnVtc1tjaGFyYWN0ZXJdXSk7fX19CmlmKHRyaWdnZXIpe3ZhciByZXN1bHQ9ZmFsc2U7Zm9yKHZhciB4PTA7eDx0cmlnZ2VyLmxlbmd0aDt4Kyspe2lmKHRyaWdnZXJbeF0uZGlzYWJsZUluSW5wdXQpe3ZhciBlbGVtPWpRdWVyeShldmVudC50YXJnZXQpO2lmKGpUYXJnZXQuaXMoImlucHV0Iil8fGpUYXJnZXQuaXMoInRleHRhcmVhIil8fGpUYXJnZXQuaXMoInNlbGVjdCIpfHxlbGVtLmlzKCJpbnB1dCIpfHxlbGVtLmlzKCJ0ZXh0YXJlYSIpfHxlbGVtLmlzKCJzZWxlY3QiKSl7cmV0dXJuIHRydWU7fX0KcmVzdWx0PXJlc3VsdHx8dHJpZ2dlclt4XS5jYi5hcHBseSh0aGlzLFtldmVudF0pO30KcmV0dXJuIHJlc3VsdDt9fX19O3dpbmRvdy5ob3RrZXlzPWhvdGtleXM7cmV0dXJuIGpRdWVyeTt9KShqUXVlcnkpOw==]]></data>
	</file>
	<file>
	  <filename>/includes/jquery.metadata.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoKICogTWV0YWRhdGEgLSBqUXVlcnkgcGx1Z2luIGZvciBwYXJzaW5nIG1ldGFkYXRhIGZyb20gZWxlbWVudHMKICoKICogQ29weXJpZ2h0IChjKSAyMDA2IEpvaG4gUmVzaWcsIFllaHVkYSBLYXR6LCBK77+9w7ZybiBaYWVmZmVyZXIsIFBhdWwgTWNMYW5haGFuCiAqCiAqIER1YWwgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBhbmQgR1BMIGxpY2Vuc2VzOgogKiAgIGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UucGhwCiAqICAgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC5odG1sCiAqCiAqIFJldmlzaW9uOiAkSWQkCiAqCiAqLwoKLyoqCiAqIFNldHMgdGhlIHR5cGUgb2YgbWV0YWRhdGEgdG8gdXNlLiBNZXRhZGF0YSBpcyBlbmNvZGVkIGluIEpTT04sIGFuZCBlYWNoIHByb3BlcnR5CiAqIGluIHRoZSBKU09OIHdpbGwgYmVjb21lIGEgcHJvcGVydHkgb2YgdGhlIGVsZW1lbnQgaXRzZWxmLgogKgogKiBUaGVyZSBhcmUgdGhyZWUgc3VwcG9ydGVkIHR5cGVzIG9mIG1ldGFkYXRhIHN0b3JhZ2U6CiAqCiAqICAgYXR0cjogIEluc2lkZSBhbiBhdHRyaWJ1dGUuIFRoZSBuYW1lIHBhcmFtZXRlciBpbmRpY2F0ZXMgKndoaWNoKiBhdHRyaWJ1dGUuCiAqICAgICAgICAgIAogKiAgIGNsYXNzOiBJbnNpZGUgdGhlIGNsYXNzIGF0dHJpYnV0ZSwgd3JhcHBlZCBpbiBjdXJseSBicmFjZXM6IHsgfQogKiAgIAogKiAgIGVsZW06ICBJbnNpZGUgYSBjaGlsZCBlbGVtZW50IChlLmcuIGEgc2NyaXB0IHRhZykuIFRoZQogKiAgICAgICAgICBuYW1lIHBhcmFtZXRlciBpbmRpY2F0ZXMgKndoaWNoKiBlbGVtZW50LgogKiAgICAgICAgICAKICogVGhlIG1ldGFkYXRhIGZvciBhbiBlbGVtZW50IGlzIGxvYWRlZCB0aGUgZmlyc3QgdGltZSB0aGUgZWxlbWVudCBpcyBhY2Nlc3NlZCB2aWEgalF1ZXJ5LgogKgogKiBBcyBhIHJlc3VsdCwgeW91IGNhbiBkZWZpbmUgdGhlIG1ldGFkYXRhIHR5cGUsIHVzZSAkKGV4cHIpIHRvIGxvYWQgdGhlIG1ldGFkYXRhIGludG8gdGhlIGVsZW1lbnRzCiAqIG1hdGNoZWQgYnkgZXhwciwgdGhlbiByZWRlZmluZSB0aGUgbWV0YWRhdGEgdHlwZSBhbmQgcnVuIGFub3RoZXIgJChleHByKSBmb3Igb3RoZXIgZWxlbWVudHMuCiAqIAogKiBAbmFtZSAkLm1ldGFkYXRhLnNldFR5cGUKICoKICogQGV4YW1wbGUgPHAgaWQ9Im9uZSIgY2xhc3M9InNvbWVfY2xhc3Mge2l0ZW1faWQ6IDEsIGl0ZW1fbGFiZWw6ICdMYWJlbCd9Ij5UaGlzIGlzIGEgcDwvcD4KICogQGJlZm9yZSAkLm1ldGFkYXRhLnNldFR5cGUoImNsYXNzIikKICogQGFmdGVyICQoIiNvbmUiKS5tZXRhZGF0YSgpLml0ZW1faWQgPT0gMTsgJCgiI29uZSIpLm1ldGFkYXRhKCkuaXRlbV9sYWJlbCA9PSAiTGFiZWwiCiAqIEBkZXNjIFJlYWRzIG1ldGFkYXRhIGZyb20gdGhlIGNsYXNzIGF0dHJpYnV0ZQogKiAKICogQGV4YW1wbGUgPHAgaWQ9Im9uZSIgY2xhc3M9InNvbWVfY2xhc3MiIGRhdGE9IntpdGVtX2lkOiAxLCBpdGVtX2xhYmVsOiAnTGFiZWwnfSI+VGhpcyBpcyBhIHA8L3A+CiAqIEBiZWZvcmUgJC5tZXRhZGF0YS5zZXRUeXBlKCJhdHRyIiwgImRhdGEiKQogKiBAYWZ0ZXIgJCgiI29uZSIpLm1ldGFkYXRhKCkuaXRlbV9pZCA9PSAxOyAkKCIjb25lIikubWV0YWRhdGEoKS5pdGVtX2xhYmVsID09ICJMYWJlbCIKICogQGRlc2MgUmVhZHMgbWV0YWRhdGEgZnJvbSBhICJkYXRhIiBhdHRyaWJ1dGUKICogCiAqIEBleGFtcGxlIDxwIGlkPSJvbmUiIGNsYXNzPSJzb21lX2NsYXNzIj48c2NyaXB0PntpdGVtX2lkOiAxLCBpdGVtX2xhYmVsOiAnTGFiZWwnfTwvc2NyaXB0PlRoaXMgaXMgYSBwPC9wPgogKiBAYmVmb3JlICQubWV0YWRhdGEuc2V0VHlwZSgiZWxlbSIsICJzY3JpcHQiKQogKiBAYWZ0ZXIgJCgiI29uZSIpLm1ldGFkYXRhKCkuaXRlbV9pZCA9PSAxOyAkKCIjb25lIikubWV0YWRhdGEoKS5pdGVtX2xhYmVsID09ICJMYWJlbCIKICogQGRlc2MgUmVhZHMgbWV0YWRhdGEgZnJvbSBhIG5lc3RlZCBzY3JpcHQgZWxlbWVudAogKiAKICogQHBhcmFtIFN0cmluZyB0eXBlIFRoZSBlbmNvZGluZyB0eXBlCiAqIEBwYXJhbSBTdHJpbmcgbmFtZSBUaGUgbmFtZSBvZiB0aGUgYXR0cmlidXRlIHRvIGJlIHVzZWQgdG8gZ2V0IG1ldGFkYXRhIChvcHRpb25hbCkKICogQGNhdCBQbHVnaW5zL01ldGFkYXRhCiAqIEBkZXNjciBTZXRzIHRoZSB0eXBlIG9mIGVuY29kaW5nIHRvIGJlIHVzZWQgd2hlbiBsb2FkaW5nIG1ldGFkYXRhIGZvciB0aGUgZmlyc3QgdGltZQogKiBAdHlwZSB1bmRlZmluZWQKICogQHNlZSBtZXRhZGF0YSgpCiAqLwoKKGZ1bmN0aW9uKCQpIHsKCiQuZXh0ZW5kKHsKCW1ldGFkYXRhIDogewoJCWRlZmF1bHRzIDogewoJCQl0eXBlOiAnY2xhc3MnLAoJCQluYW1lOiAnbWV0YWRhdGEnLAoJCQljcmU6IC8oey4qfSkvLAoJCQlzaW5nbGU6ICdtZXRhZGF0YScKCQl9LAoJCXNldFR5cGU6IGZ1bmN0aW9uKCB0eXBlLCBuYW1lICl7CgkJCXRoaXMuZGVmYXVsdHMudHlwZSA9IHR5cGU7CgkJCXRoaXMuZGVmYXVsdHMubmFtZSA9IG5hbWU7CgkJfSwKCQlnZXQ6IGZ1bmN0aW9uKCBlbGVtLCBvcHRzICl7CgkJCXZhciBzZXR0aW5ncyA9ICQuZXh0ZW5kKHt9LHRoaXMuZGVmYXVsdHMsb3B0cyk7CgkJCS8vIGNoZWNrIGZvciBlbXB0eSBzdHJpbmcgaW4gc2luZ2xlIHByb3BlcnR5CgkJCWlmICggIXNldHRpbmdzLnNpbmdsZS5sZW5ndGggKSBzZXR0aW5ncy5zaW5nbGUgPSAnbWV0YWRhdGEnOwoJCQkKCQkJdmFyIGRhdGEgPSAkLmRhdGEoZWxlbSwgc2V0dGluZ3Muc2luZ2xlKTsKCQkJLy8gcmV0dXJuZWQgY2FjaGVkIGRhdGEgaWYgaXQgYWxyZWFkeSBleGlzdHMKCQkJaWYgKCBkYXRhICkgcmV0dXJuIGRhdGE7CgkJCQoJCQlkYXRhID0gInt9IjsKCQkJCgkJCWlmICggc2V0dGluZ3MudHlwZSA9PSAiY2xhc3MiICkgewoJCQkJdmFyIG0gPSBzZXR0aW5ncy5jcmUuZXhlYyggZWxlbS5jbGFzc05hbWUgKTsKCQkJCWlmICggbSApCgkJCQkJZGF0YSA9IG1bMV07CgkJCX0gZWxzZSBpZiAoIHNldHRpbmdzLnR5cGUgPT0gImVsZW0iICkgewoJCQkJaWYoICFlbGVtLmdldEVsZW1lbnRzQnlUYWdOYW1lICkKCQkJCQlyZXR1cm4gdW5kZWZpbmVkOwoJCQkJdmFyIGUgPSBlbGVtLmdldEVsZW1lbnRzQnlUYWdOYW1lKHNldHRpbmdzLm5hbWUpOwoJCQkJaWYgKCBlLmxlbmd0aCApCgkJCQkJZGF0YSA9ICQudHJpbShlWzBdLmlubmVySFRNTCk7CgkJCX0gZWxzZSBpZiAoIGVsZW0uZ2V0QXR0cmlidXRlICE9IHVuZGVmaW5lZCApIHsKCQkJCXZhciBhdHRyID0gZWxlbS5nZXRBdHRyaWJ1dGUoIHNldHRpbmdzLm5hbWUgKTsKCQkJCWlmICggYXR0ciApCgkJCQkJZGF0YSA9IGF0dHI7CgkJCX0KCQkJCgkJCWlmICggZGF0YS5pbmRleE9mKCAneycgKSA8MCApCgkJCWRhdGEgPSAieyIgKyBkYXRhICsgIn0iOwoJCQkKCQkJZGF0YSA9IGV2YWwoIigiICsgZGF0YSArICIpIik7CgkJCQoJCQkkLmRhdGEoIGVsZW0sIHNldHRpbmdzLnNpbmdsZSwgZGF0YSApOwoJCQlyZXR1cm4gZGF0YTsKCQl9Cgl9Cn0pOwoKLyoqCiAqIFJldHVybnMgdGhlIG1ldGFkYXRhIG9iamVjdCBmb3IgdGhlIGZpcnN0IG1lbWJlciBvZiB0aGUgalF1ZXJ5IG9iamVjdC4KICoKICogQG5hbWUgbWV0YWRhdGEKICogQGRlc2NyIFJldHVybnMgZWxlbWVudCdzIG1ldGFkYXRhIG9iamVjdAogKiBAcGFyYW0gT2JqZWN0IG9wdHMgQW4gb2JqZWN0IGNvbnRpYW5pbmcgc2V0dGluZ3MgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHRzCiAqIEB0eXBlIGpRdWVyeQogKiBAY2F0IFBsdWdpbnMvTWV0YWRhdGEKICovCiQuZm4ubWV0YWRhdGEgPSBmdW5jdGlvbiggb3B0cyApewoJcmV0dXJuICQubWV0YWRhdGEuZ2V0KCB0aGlzWzBdLCBvcHRzICk7Cn07Cgp9KShqUXVlcnkpOw==]]></data>
	</file>
	<file>
	  <filename>/includes/jquery.scrollTo-min.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoqDQogKiBqUXVlcnkuU2Nyb2xsVG8gLSBFYXN5IGVsZW1lbnQgc2Nyb2xsaW5nIHVzaW5nIGpRdWVyeS4NCiAqIENvcHlyaWdodCAoYykgMjAwNy0yMDA5IEFyaWVsIEZsZXNsZXIgLSBhZmxlc2xlcihhdClnbWFpbChkb3QpY29tIHwgaHR0cDovL2ZsZXNsZXIuYmxvZ3Nwb3QuY29tDQogKiBEdWFsIGxpY2Vuc2VkIHVuZGVyIE1JVCBhbmQgR1BMLg0KICogRGF0ZTogNS8yNS8yMDA5DQogKiBAYXV0aG9yIEFyaWVsIEZsZXNsZXINCiAqIEB2ZXJzaW9uIDEuNC4yDQogKg0KICogaHR0cDovL2ZsZXNsZXIuYmxvZ3Nwb3QuY29tLzIwMDcvMTAvanF1ZXJ5c2Nyb2xsdG8uaHRtbA0KICovDQo7KGZ1bmN0aW9uKGQpe3ZhciBrPWQuc2Nyb2xsVG89ZnVuY3Rpb24oYSxpLGUpe2Qod2luZG93KS5zY3JvbGxUbyhhLGksZSl9O2suZGVmYXVsdHM9e2F4aXM6J3h5JyxkdXJhdGlvbjpwYXJzZUZsb2F0KGQuZm4uanF1ZXJ5KT49MS4zPzA6MX07ay53aW5kb3c9ZnVuY3Rpb24oYSl7cmV0dXJuIGQod2luZG93KS5fc2Nyb2xsYWJsZSgpfTtkLmZuLl9zY3JvbGxhYmxlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWFwKGZ1bmN0aW9uKCl7dmFyIGE9dGhpcyxpPSFhLm5vZGVOYW1lfHxkLmluQXJyYXkoYS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpLFsnaWZyYW1lJywnI2RvY3VtZW50JywnaHRtbCcsJ2JvZHknXSkhPS0xO2lmKCFpKXJldHVybiBhO3ZhciBlPShhLmNvbnRlbnRXaW5kb3d8fGEpLmRvY3VtZW50fHxhLm93bmVyRG9jdW1lbnR8fGE7cmV0dXJuIGQuYnJvd3Nlci5zYWZhcml8fGUuY29tcGF0TW9kZT09J0JhY2tDb21wYXQnP2UuYm9keTplLmRvY3VtZW50RWxlbWVudH0pfTtkLmZuLnNjcm9sbFRvPWZ1bmN0aW9uKG4saixiKXtpZih0eXBlb2Ygaj09J29iamVjdCcpe2I9ajtqPTB9aWYodHlwZW9mIGI9PSdmdW5jdGlvbicpYj17b25BZnRlcjpifTtpZihuPT0nbWF4JyluPTllOTtiPWQuZXh0ZW5kKHt9LGsuZGVmYXVsdHMsYik7aj1qfHxiLnNwZWVkfHxiLmR1cmF0aW9uO2IucXVldWU9Yi5xdWV1ZSYmYi5heGlzLmxlbmd0aD4xO2lmKGIucXVldWUpai89MjtiLm9mZnNldD1wKGIub2Zmc2V0KTtiLm92ZXI9cChiLm92ZXIpO3JldHVybiB0aGlzLl9zY3JvbGxhYmxlKCkuZWFjaChmdW5jdGlvbigpe3ZhciBxPXRoaXMscj1kKHEpLGY9bixzLGc9e30sdT1yLmlzKCdodG1sLGJvZHknKTtzd2l0Y2godHlwZW9mIGYpe2Nhc2UnbnVtYmVyJzpjYXNlJ3N0cmluZyc6aWYoL14oWystXT0pP1xkKyhcLlxkKyk/KHB4fCUpPyQvLnRlc3QoZikpe2Y9cChmKTticmVha31mPWQoZix0aGlzKTtjYXNlJ29iamVjdCc6aWYoZi5pc3x8Zi5zdHlsZSlzPShmPWQoZikpLm9mZnNldCgpfWQuZWFjaChiLmF4aXMuc3BsaXQoJycpLGZ1bmN0aW9uKGEsaSl7dmFyIGU9aT09J3gnPydMZWZ0JzonVG9wJyxoPWUudG9Mb3dlckNhc2UoKSxjPSdzY3JvbGwnK2UsbD1xW2NdLG09ay5tYXgocSxpKTtpZihzKXtnW2NdPXNbaF0rKHU/MDpsLXIub2Zmc2V0KClbaF0pO2lmKGIubWFyZ2luKXtnW2NdLT1wYXJzZUludChmLmNzcygnbWFyZ2luJytlKSl8fDA7Z1tjXS09cGFyc2VJbnQoZi5jc3MoJ2JvcmRlcicrZSsnV2lkdGgnKSl8fDB9Z1tjXSs9Yi5vZmZzZXRbaF18fDA7aWYoYi5vdmVyW2hdKWdbY10rPWZbaT09J3gnPyd3aWR0aCc6J2hlaWdodCddKCkqYi5vdmVyW2hdfWVsc2V7dmFyIG89ZltoXTtnW2NdPW8uc2xpY2UmJm8uc2xpY2UoLTEpPT0nJSc/cGFyc2VGbG9hdChvKS8xMDAqbTpvfWlmKC9eXGQrJC8udGVzdChnW2NdKSlnW2NdPWdbY108PTA/MDpNYXRoLm1pbihnW2NdLG0pO2lmKCFhJiZiLnF1ZXVlKXtpZihsIT1nW2NdKXQoYi5vbkFmdGVyRmlyc3QpO2RlbGV0ZSBnW2NdfX0pO3QoYi5vbkFmdGVyKTtmdW5jdGlvbiB0KGEpe3IuYW5pbWF0ZShnLGosYi5lYXNpbmcsYSYmZnVuY3Rpb24oKXthLmNhbGwodGhpcyxuLGIpfSl9fSkuZW5kKCl9O2subWF4PWZ1bmN0aW9uKGEsaSl7dmFyIGU9aT09J3gnPydXaWR0aCc6J0hlaWdodCcsaD0nc2Nyb2xsJytlO2lmKCFkKGEpLmlzKCdodG1sLGJvZHknKSlyZXR1cm4gYVtoXS1kKGEpW2UudG9Mb3dlckNhc2UoKV0oKTt2YXIgYz0nY2xpZW50JytlLGw9YS5vd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxtPWEub3duZXJEb2N1bWVudC5ib2R5O3JldHVybiBNYXRoLm1heChsW2hdLG1baF0pLU1hdGgubWluKGxbY10sbVtjXSl9O2Z1bmN0aW9uIHAoYSl7cmV0dXJuIHR5cGVvZiBhPT0nb2JqZWN0Jz9hOnt0b3A6YSxsZWZ0OmF9fX0pKGpRdWVyeSk7]]></data>
	</file>
	<file>
	  <filename>/includes/jquery.scrollTo.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoqDQogKiBqUXVlcnkuU2Nyb2xsVG8NCiAqIENvcHlyaWdodCAoYykgMjAwNy0yMDA5IEFyaWVsIEZsZXNsZXIgLSBhZmxlc2xlcihhdClnbWFpbChkb3QpY29tIHwgaHR0cDovL2ZsZXNsZXIuYmxvZ3Nwb3QuY29tDQogKiBEdWFsIGxpY2Vuc2VkIHVuZGVyIE1JVCBhbmQgR1BMLg0KICogRGF0ZTogNS8yNS8yMDA5DQogKg0KICogQHByb2plY3REZXNjcmlwdGlvbiBFYXN5IGVsZW1lbnQgc2Nyb2xsaW5nIHVzaW5nIGpRdWVyeS4NCiAqIGh0dHA6Ly9mbGVzbGVyLmJsb2dzcG90LmNvbS8yMDA3LzEwL2pxdWVyeXNjcm9sbHRvLmh0bWwNCiAqIFdvcmtzIHdpdGggalF1ZXJ5ICsxLjIuNi4gVGVzdGVkIG9uIEZGIDIvMywgSUUgNi83LzgsIE9wZXJhIDkuNS82LCBTYWZhcmkgMywgQ2hyb21lIDEgb24gV2luWFAuDQogKg0KICogQGF1dGhvciBBcmllbCBGbGVzbGVyDQogKiBAdmVyc2lvbiAxLjQuMg0KICoNCiAqIEBpZCBqUXVlcnkuc2Nyb2xsVG8NCiAqIEBpZCBqUXVlcnkuZm4uc2Nyb2xsVG8NCiAqIEBwYXJhbSB7U3RyaW5nLCBOdW1iZXIsIERPTUVsZW1lbnQsIGpRdWVyeSwgT2JqZWN0fSB0YXJnZXQgV2hlcmUgdG8gc2Nyb2xsIHRoZSBtYXRjaGVkIGVsZW1lbnRzLg0KICoJICBUaGUgZGlmZmVyZW50IG9wdGlvbnMgZm9yIHRhcmdldCBhcmU6DQogKgkJLSBBIG51bWJlciBwb3NpdGlvbiAod2lsbCBiZSBhcHBsaWVkIHRvIGFsbCBheGVzKS4NCiAqCQktIEEgc3RyaW5nIHBvc2l0aW9uICgnNDQnLCAnMTAwcHgnLCAnKz05MCcsIGV0YyApIHdpbGwgYmUgYXBwbGllZCB0byBhbGwgYXhlcw0KICoJCS0gQSBqUXVlcnkvRE9NIGVsZW1lbnQgKCBsb2dpY2FsbHksIGNoaWxkIG9mIHRoZSBlbGVtZW50IHRvIHNjcm9sbCApDQogKgkJLSBBIHN0cmluZyBzZWxlY3RvciwgdGhhdCB3aWxsIGJlIHJlbGF0aXZlIHRvIHRoZSBlbGVtZW50IHRvIHNjcm9sbCAoICdsaTplcSgyKScsIGV0YyApDQogKgkJLSBBIGhhc2ggeyB0b3A6eCwgbGVmdDp5IH0sIHggYW5kIHkgY2FuIGJlIGFueSBraW5kIG9mIG51bWJlci9zdHJpbmcgbGlrZSBhYm92ZS4NCioJCS0gQSBwZXJjZW50YWdlIG9mIHRoZSBjb250YWluZXIncyBkaW1lbnNpb24vcywgZm9yIGV4YW1wbGU6IDUwJSB0byBnbyB0byB0aGUgbWlkZGxlLg0KICoJCS0gVGhlIHN0cmluZyAnbWF4JyBmb3IgZ28tdG8tZW5kLiANCiAqIEBwYXJhbSB7TnVtYmVyfSBkdXJhdGlvbiBUaGUgT1ZFUkFMTCBsZW5ndGggb2YgdGhlIGFuaW1hdGlvbiwgdGhpcyBhcmd1bWVudCBjYW4gYmUgdGhlIHNldHRpbmdzIG9iamVjdCBpbnN0ZWFkLg0KICogQHBhcmFtIHtPYmplY3QsRnVuY3Rpb259IHNldHRpbmdzIE9wdGlvbmFsIHNldCBvZiBzZXR0aW5ncyBvciB0aGUgb25BZnRlciBjYWxsYmFjay4NCiAqCSBAb3B0aW9uIHtTdHJpbmd9IGF4aXMgV2hpY2ggYXhpcyBtdXN0IGJlIHNjcm9sbGVkLCB1c2UgJ3gnLCAneScsICd4eScgb3IgJ3l4Jy4NCiAqCSBAb3B0aW9uIHtOdW1iZXJ9IGR1cmF0aW9uIFRoZSBPVkVSQUxMIGxlbmd0aCBvZiB0aGUgYW5pbWF0aW9uLg0KICoJIEBvcHRpb24ge1N0cmluZ30gZWFzaW5nIFRoZSBlYXNpbmcgbWV0aG9kIGZvciB0aGUgYW5pbWF0aW9uLg0KICoJIEBvcHRpb24ge0Jvb2xlYW59IG1hcmdpbiBJZiB0cnVlLCB0aGUgbWFyZ2luIG9mIHRoZSB0YXJnZXQgZWxlbWVudCB3aWxsIGJlIGRlZHVjdGVkIGZyb20gdGhlIGZpbmFsIHBvc2l0aW9uLg0KICoJIEBvcHRpb24ge09iamVjdCwgTnVtYmVyfSBvZmZzZXQgQWRkL2RlZHVjdCBmcm9tIHRoZSBlbmQgcG9zaXRpb24uIE9uZSBudW1iZXIgZm9yIGJvdGggYXhlcyBvciB7IHRvcDp4LCBsZWZ0OnkgfS4NCiAqCSBAb3B0aW9uIHtPYmplY3QsIE51bWJlcn0gb3ZlciBBZGQvZGVkdWN0IHRoZSBoZWlnaHQvd2lkdGggbXVsdGlwbGllZCBieSAnb3ZlcicsIGNhbiBiZSB7IHRvcDp4LCBsZWZ0OnkgfSB3aGVuIHVzaW5nIGJvdGggYXhlcy4NCiAqCSBAb3B0aW9uIHtCb29sZWFufSBxdWV1ZSBJZiB0cnVlLCBhbmQgYm90aCBheGlzIGFyZSBnaXZlbiwgdGhlIDJuZCBheGlzIHdpbGwgb25seSBiZSBhbmltYXRlZCBhZnRlciB0aGUgZmlyc3Qgb25lIGVuZHMuDQogKgkgQG9wdGlvbiB7RnVuY3Rpb259IG9uQWZ0ZXIgRnVuY3Rpb24gdG8gYmUgY2FsbGVkIGFmdGVyIHRoZSBzY3JvbGxpbmcgZW5kcy4gDQogKgkgQG9wdGlvbiB7RnVuY3Rpb259IG9uQWZ0ZXJGaXJzdCBJZiBxdWV1aW5nIGlzIGFjdGl2YXRlZCwgdGhpcyBmdW5jdGlvbiB3aWxsIGJlIGNhbGxlZCBhZnRlciB0aGUgZmlyc3Qgc2Nyb2xsaW5nIGVuZHMuDQogKiBAcmV0dXJuIHtqUXVlcnl9IFJldHVybnMgdGhlIHNhbWUgalF1ZXJ5IG9iamVjdCwgZm9yIGNoYWluaW5nLg0KICoNCiAqIEBkZXNjIFNjcm9sbCB0byBhIGZpeGVkIHBvc2l0aW9uDQogKiBAZXhhbXBsZSAkKCdkaXYnKS5zY3JvbGxUbyggMzQwICk7DQogKg0KICogQGRlc2MgU2Nyb2xsIHJlbGF0aXZlbHkgdG8gdGhlIGFjdHVhbCBwb3NpdGlvbg0KICogQGV4YW1wbGUgJCgnZGl2Jykuc2Nyb2xsVG8oICcrPTM0MHB4JywgeyBheGlzOid5JyB9ICk7DQogKg0KICogQGRlYyBTY3JvbGwgdXNpbmcgYSBzZWxlY3RvciAocmVsYXRpdmUgdG8gdGhlIHNjcm9sbGVkIGVsZW1lbnQpDQogKiBAZXhhbXBsZSAkKCdkaXYnKS5zY3JvbGxUbyggJ3AucGFyYWdyYXBoOmVxKDIpJywgNTAwLCB7IGVhc2luZzonc3dpbmcnLCBxdWV1ZTp0cnVlLCBheGlzOid4eScgfSApOw0KICoNCiAqIEAgU2Nyb2xsIHRvIGEgRE9NIGVsZW1lbnQgKHNhbWUgZm9yIGpRdWVyeSBvYmplY3QpDQogKiBAZXhhbXBsZSB2YXIgc2Vjb25kX2NoaWxkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnRhaW5lcicpLmZpcnN0Q2hpbGQubmV4dFNpYmxpbmc7DQogKgkJCSQoJyNjb250YWluZXInKS5zY3JvbGxUbyggc2Vjb25kX2NoaWxkLCB7IGR1cmF0aW9uOjUwMCwgYXhpczoneCcsIG9uQWZ0ZXI6ZnVuY3Rpb24oKXsNCiAqCQkJCWFsZXJ0KCdzY3JvbGxlZCEhJyk7CQkJCQkJCQkJCQkJCQkJCSAgIA0KICoJCQl9fSk7DQogKg0KICogQGRlc2MgU2Nyb2xsIG9uIGJvdGggYXhlcywgdG8gZGlmZmVyZW50IHZhbHVlcw0KICogQGV4YW1wbGUgJCgnZGl2Jykuc2Nyb2xsVG8oIHsgdG9wOiAzMDAsIGxlZnQ6Jys9MjAwJyB9LCB7IGF4aXM6J3h5Jywgb2Zmc2V0Oi0yMCB9ICk7DQogKi8NCjsoZnVuY3Rpb24oICQgKXsNCgkNCgl2YXIgJHNjcm9sbFRvID0gJC5zY3JvbGxUbyA9IGZ1bmN0aW9uKCB0YXJnZXQsIGR1cmF0aW9uLCBzZXR0aW5ncyApew0KCQkkKHdpbmRvdykuc2Nyb2xsVG8oIHRhcmdldCwgZHVyYXRpb24sIHNldHRpbmdzICk7DQoJfTsNCg0KCSRzY3JvbGxUby5kZWZhdWx0cyA9IHsNCgkJYXhpczoneHknLA0KCQlkdXJhdGlvbjogcGFyc2VGbG9hdCgkLmZuLmpxdWVyeSkgPj0gMS4zID8gMCA6IDENCgl9Ow0KDQoJLy8gUmV0dXJucyB0aGUgZWxlbWVudCB0aGF0IG5lZWRzIHRvIGJlIGFuaW1hdGVkIHRvIHNjcm9sbCB0aGUgd2luZG93Lg0KCS8vIEtlcHQgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IChzcGVjaWFsbHkgZm9yIGxvY2FsU2Nyb2xsICYgc2VyaWFsU2Nyb2xsKQ0KCSRzY3JvbGxUby53aW5kb3cgPSBmdW5jdGlvbiggc2NvcGUgKXsNCgkJcmV0dXJuICQod2luZG93KS5fc2Nyb2xsYWJsZSgpOw0KCX07DQoNCgkvLyBIYWNrLCBoYWNrLCBoYWNrIDopDQoJLy8gUmV0dXJucyB0aGUgcmVhbCBlbGVtZW50cyB0byBzY3JvbGwgKHN1cHBvcnRzIHdpbmRvdy9pZnJhbWVzLCBkb2N1bWVudHMgYW5kIHJlZ3VsYXIgbm9kZXMpDQoJJC5mbi5fc2Nyb2xsYWJsZSA9IGZ1bmN0aW9uKCl7DQoJCXJldHVybiB0aGlzLm1hcChmdW5jdGlvbigpew0KCQkJdmFyIGVsZW0gPSB0aGlzLA0KCQkJCWlzV2luID0gIWVsZW0ubm9kZU5hbWUgfHwgJC5pbkFycmF5KCBlbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCksIFsnaWZyYW1lJywnI2RvY3VtZW50JywnaHRtbCcsJ2JvZHknXSApICE9IC0xOw0KDQoJCQkJaWYoICFpc1dpbiApDQoJCQkJCXJldHVybiBlbGVtOw0KDQoJCQl2YXIgZG9jID0gKGVsZW0uY29udGVudFdpbmRvdyB8fCBlbGVtKS5kb2N1bWVudCB8fCBlbGVtLm93bmVyRG9jdW1lbnQgfHwgZWxlbTsNCgkJCQ0KCQkJcmV0dXJuICQuYnJvd3Nlci5zYWZhcmkgfHwgZG9jLmNvbXBhdE1vZGUgPT0gJ0JhY2tDb21wYXQnID8NCgkJCQlkb2MuYm9keSA6IA0KCQkJCWRvYy5kb2N1bWVudEVsZW1lbnQ7DQoJCX0pOw0KCX07DQoNCgkkLmZuLnNjcm9sbFRvID0gZnVuY3Rpb24oIHRhcmdldCwgZHVyYXRpb24sIHNldHRpbmdzICl7DQoJCWlmKCB0eXBlb2YgZHVyYXRpb24gPT0gJ29iamVjdCcgKXsNCgkJCXNldHRpbmdzID0gZHVyYXRpb247DQoJCQlkdXJhdGlvbiA9IDA7DQoJCX0NCgkJaWYoIHR5cGVvZiBzZXR0aW5ncyA9PSAnZnVuY3Rpb24nICkNCgkJCXNldHRpbmdzID0geyBvbkFmdGVyOnNldHRpbmdzIH07DQoJCQkNCgkJaWYoIHRhcmdldCA9PSAnbWF4JyApDQoJCQl0YXJnZXQgPSA5ZTk7DQoJCQkNCgkJc2V0dGluZ3MgPSAkLmV4dGVuZCgge30sICRzY3JvbGxUby5kZWZhdWx0cywgc2V0dGluZ3MgKTsNCgkJLy8gU3BlZWQgaXMgc3RpbGwgcmVjb2duaXplZCBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkNCgkJZHVyYXRpb24gPSBkdXJhdGlvbiB8fCBzZXR0aW5ncy5zcGVlZCB8fCBzZXR0aW5ncy5kdXJhdGlvbjsNCgkJLy8gTWFrZSBzdXJlIHRoZSBzZXR0aW5ncyBhcmUgZ2l2ZW4gcmlnaHQNCgkJc2V0dGluZ3MucXVldWUgPSBzZXR0aW5ncy5xdWV1ZSAmJiBzZXR0aW5ncy5heGlzLmxlbmd0aCA+IDE7DQoJCQ0KCQlpZiggc2V0dGluZ3MucXVldWUgKQ0KCQkJLy8gTGV0J3Mga2VlcCB0aGUgb3ZlcmFsbCBkdXJhdGlvbg0KCQkJZHVyYXRpb24gLz0gMjsNCgkJc2V0dGluZ3Mub2Zmc2V0ID0gYm90aCggc2V0dGluZ3Mub2Zmc2V0ICk7DQoJCXNldHRpbmdzLm92ZXIgPSBib3RoKCBzZXR0aW5ncy5vdmVyICk7DQoNCgkJcmV0dXJuIHRoaXMuX3Njcm9sbGFibGUoKS5lYWNoKGZ1bmN0aW9uKCl7DQoJCQl2YXIgZWxlbSA9IHRoaXMsDQoJCQkJJGVsZW0gPSAkKGVsZW0pLA0KCQkJCXRhcmcgPSB0YXJnZXQsIHRvZmYsIGF0dHIgPSB7fSwNCgkJCQl3aW4gPSAkZWxlbS5pcygnaHRtbCxib2R5Jyk7DQoNCgkJCXN3aXRjaCggdHlwZW9mIHRhcmcgKXsNCgkJCQkvLyBBIG51bWJlciB3aWxsIHBhc3MgdGhlIHJlZ2V4DQoJCQkJY2FzZSAnbnVtYmVyJzoNCgkJCQljYXNlICdzdHJpbmcnOg0KCQkJCQlpZiggL14oWystXT0pP1xkKyhcLlxkKyk/KHB4fCUpPyQvLnRlc3QodGFyZykgKXsNCgkJCQkJCXRhcmcgPSBib3RoKCB0YXJnICk7DQoJCQkJCQkvLyBXZSBhcmUgZG9uZQ0KCQkJCQkJYnJlYWs7DQoJCQkJCX0NCgkJCQkJLy8gUmVsYXRpdmUgc2VsZWN0b3IsIG5vIGJyZWFrIQ0KCQkJCQl0YXJnID0gJCh0YXJnLHRoaXMpOw0KCQkJCWNhc2UgJ29iamVjdCc6DQoJCQkJCS8vIERPTUVsZW1lbnQgLyBqUXVlcnkNCgkJCQkJaWYoIHRhcmcuaXMgfHwgdGFyZy5zdHlsZSApDQoJCQkJCQkvLyBHZXQgdGhlIHJlYWwgcG9zaXRpb24gb2YgdGhlIHRhcmdldCANCgkJCQkJCXRvZmYgPSAodGFyZyA9ICQodGFyZykpLm9mZnNldCgpOw0KCQkJfQ0KCQkJJC5lYWNoKCBzZXR0aW5ncy5heGlzLnNwbGl0KCcnKSwgZnVuY3Rpb24oIGksIGF4aXMgKXsNCgkJCQl2YXIgUG9zCT0gYXhpcyA9PSAneCcgPyAnTGVmdCcgOiAnVG9wJywNCgkJCQkJcG9zID0gUG9zLnRvTG93ZXJDYXNlKCksDQoJCQkJCWtleSA9ICdzY3JvbGwnICsgUG9zLA0KCQkJCQlvbGQgPSBlbGVtW2tleV0sDQoJCQkJCW1heCA9ICRzY3JvbGxUby5tYXgoZWxlbSwgYXhpcyk7DQoNCgkJCQlpZiggdG9mZiApey8vIGpRdWVyeSAvIERPTUVsZW1lbnQNCgkJCQkJYXR0cltrZXldID0gdG9mZltwb3NdICsgKCB3aW4gPyAwIDogb2xkIC0gJGVsZW0ub2Zmc2V0KClbcG9zXSApOw0KDQoJCQkJCS8vIElmIGl0J3MgYSBkb20gZWxlbWVudCwgcmVkdWNlIHRoZSBtYXJnaW4NCgkJCQkJaWYoIHNldHRpbmdzLm1hcmdpbiApew0KCQkJCQkJYXR0cltrZXldIC09IHBhcnNlSW50KHRhcmcuY3NzKCdtYXJnaW4nK1BvcykpIHx8IDA7DQoJCQkJCQlhdHRyW2tleV0gLT0gcGFyc2VJbnQodGFyZy5jc3MoJ2JvcmRlcicrUG9zKydXaWR0aCcpKSB8fCAwOw0KCQkJCQl9DQoJCQkJCQ0KCQkJCQlhdHRyW2tleV0gKz0gc2V0dGluZ3Mub2Zmc2V0W3Bvc10gfHwgMDsNCgkJCQkJDQoJCQkJCWlmKCBzZXR0aW5ncy5vdmVyW3Bvc10gKQ0KCQkJCQkJLy8gU2Nyb2xsIHRvIGEgZnJhY3Rpb24gb2YgaXRzIHdpZHRoL2hlaWdodA0KCQkJCQkJYXR0cltrZXldICs9IHRhcmdbYXhpcz09J3gnPyd3aWR0aCc6J2hlaWdodCddKCkgKiBzZXR0aW5ncy5vdmVyW3Bvc107DQoJCQkJfWVsc2V7IA0KCQkJCQl2YXIgdmFsID0gdGFyZ1twb3NdOw0KCQkJCQkvLyBIYW5kbGUgcGVyY2VudGFnZSB2YWx1ZXMNCgkJCQkJYXR0cltrZXldID0gdmFsLnNsaWNlICYmIHZhbC5zbGljZSgtMSkgPT0gJyUnID8gDQoJCQkJCQlwYXJzZUZsb2F0KHZhbCkgLyAxMDAgKiBtYXgNCgkJCQkJCTogdmFsOw0KCQkJCX0NCg0KCQkJCS8vIE51bWJlciBvciAnbnVtYmVyJw0KCQkJCWlmKCAvXlxkKyQvLnRlc3QoYXR0cltrZXldKSApDQoJCQkJCS8vIENoZWNrIHRoZSBsaW1pdHMNCgkJCQkJYXR0cltrZXldID0gYXR0cltrZXldIDw9IDAgPyAwIDogTWF0aC5taW4oIGF0dHJba2V5XSwgbWF4ICk7DQoNCgkJCQkvLyBRdWV1ZWluZyBheGVzDQoJCQkJaWYoICFpICYmIHNldHRpbmdzLnF1ZXVlICl7DQoJCQkJCS8vIERvbid0IHdhc3RlIHRpbWUgYW5pbWF0aW5nLCBpZiB0aGVyZSdzIG5vIG5lZWQuDQoJCQkJCWlmKCBvbGQgIT0gYXR0cltrZXldICkNCgkJCQkJCS8vIEludGVybWVkaWF0ZSBhbmltYXRpb24NCgkJCQkJCWFuaW1hdGUoIHNldHRpbmdzLm9uQWZ0ZXJGaXJzdCApOw0KCQkJCQkvLyBEb24ndCBhbmltYXRlIHRoaXMgYXhpcyBhZ2FpbiBpbiB0aGUgbmV4dCBpdGVyYXRpb24uDQoJCQkJCWRlbGV0ZSBhdHRyW2tleV07DQoJCQkJfQ0KCQkJfSk7DQoNCgkJCWFuaW1hdGUoIHNldHRpbmdzLm9uQWZ0ZXIgKTsJCQkNCg0KCQkJZnVuY3Rpb24gYW5pbWF0ZSggY2FsbGJhY2sgKXsNCgkJCQkkZWxlbS5hbmltYXRlKCBhdHRyLCBkdXJhdGlvbiwgc2V0dGluZ3MuZWFzaW5nLCBjYWxsYmFjayAmJiBmdW5jdGlvbigpew0KCQkJCQljYWxsYmFjay5jYWxsKHRoaXMsIHRhcmdldCwgc2V0dGluZ3MpOw0KCQkJCX0pOw0KCQkJfTsNCg0KCQl9KS5lbmQoKTsNCgl9Ow0KCQ0KCS8vIE1heCBzY3JvbGxpbmcgcG9zaXRpb24sIHdvcmtzIG9uIHF1aXJrcyBtb2RlDQoJLy8gSXQgb25seSBmYWlscyAobm90IHRvbyBiYWRseSkgb24gSUUsIHF1aXJrcyBtb2RlLg0KCSRzY3JvbGxUby5tYXggPSBmdW5jdGlvbiggZWxlbSwgYXhpcyApew0KCQl2YXIgRGltID0gYXhpcyA9PSAneCcgPyAnV2lkdGgnIDogJ0hlaWdodCcsDQoJCQlzY3JvbGwgPSAnc2Nyb2xsJytEaW07DQoJCQ0KCQlpZiggISQoZWxlbSkuaXMoJ2h0bWwsYm9keScpICkNCgkJCXJldHVybiBlbGVtW3Njcm9sbF0gLSAkKGVsZW0pW0RpbS50b0xvd2VyQ2FzZSgpXSgpOw0KCQkNCgkJdmFyIHNpemUgPSAnY2xpZW50JyArIERpbSwNCgkJCWh0bWwgPSBlbGVtLm93bmVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LA0KCQkJYm9keSA9IGVsZW0ub3duZXJEb2N1bWVudC5ib2R5Ow0KDQoJCXJldHVybiBNYXRoLm1heCggaHRtbFtzY3JvbGxdLCBib2R5W3Njcm9sbF0gKSANCgkJCSAtIE1hdGgubWluKCBodG1sW3NpemVdICAsIGJvZHlbc2l6ZV0gICApOw0KCQkJDQoJfTsNCg0KCWZ1bmN0aW9uIGJvdGgoIHZhbCApew0KCQlyZXR1cm4gdHlwZW9mIHZhbCA9PSAnb2JqZWN0JyA/IHZhbCA6IHsgdG9wOnZhbCwgbGVmdDp2YWwgfTsNCgl9Ow0KDQp9KSggalF1ZXJ5ICk7]]></data>
	</file>
	<file>
	  <filename>/includes/jquery.tablesorter.min.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[CihmdW5jdGlvbigkKXskLmV4dGVuZCh7dGFibGVzb3J0ZXI6bmV3IGZ1bmN0aW9uKCl7dmFyIHBhcnNlcnM9W10sd2lkZ2V0cz1bXTt0aGlzLmRlZmF1bHRzPXtjc3NIZWFkZXI6ImhlYWRlciIsY3NzQXNjOiJoZWFkZXJTb3J0VXAiLGNzc0Rlc2M6ImhlYWRlclNvcnREb3duIixzb3J0SW5pdGlhbE9yZGVyOiJhc2MiLHNvcnRNdWx0aVNvcnRLZXk6InNoaWZ0S2V5Iixzb3J0Rm9yY2U6bnVsbCxzb3J0QXBwZW5kOm51bGwsdGV4dEV4dHJhY3Rpb246InNpbXBsZSIscGFyc2Vyczp7fSx3aWRnZXRzOltdLHdpZGdldFplYnJhOntjc3M6WyJldmVuIiwib2RkIl19LGhlYWRlcnM6e30sd2lkdGhGaXhlZDpmYWxzZSxjYW5jZWxTZWxlY3Rpb246dHJ1ZSxzb3J0TGlzdDpbXSxoZWFkZXJMaXN0OltdLGRhdGVGb3JtYXQ6InVzIixkZWNpbWFsOicuJyxkZWJ1ZzpmYWxzZX07ZnVuY3Rpb24gYmVuY2htYXJrKHMsZCl7bG9nKHMrIiwiKyhuZXcgRGF0ZSgpLmdldFRpbWUoKS1kLmdldFRpbWUoKSkrIm1zIik7fXRoaXMuYmVuY2htYXJrPWJlbmNobWFyaztmdW5jdGlvbiBsb2cocyl7aWYodHlwZW9mIGNvbnNvbGUhPSJ1bmRlZmluZWQiJiZ0eXBlb2YgY29uc29sZS5kZWJ1ZyE9InVuZGVmaW5lZCIpe2NvbnNvbGUubG9nKHMpO31lbHNle2FsZXJ0KHMpO319ZnVuY3Rpb24gYnVpbGRQYXJzZXJDYWNoZSh0YWJsZSwkaGVhZGVycyl7aWYodGFibGUuY29uZmlnLmRlYnVnKXt2YXIgcGFyc2Vyc0RlYnVnPSIiO312YXIgcm93cz10YWJsZS50Qm9kaWVzWzBdLnJvd3M7aWYodGFibGUudEJvZGllc1swXS5yb3dzWzBdKXt2YXIgbGlzdD1bXSxjZWxscz1yb3dzWzBdLmNlbGxzLGw9Y2VsbHMubGVuZ3RoO2Zvcih2YXIgaT0wO2k8bDtpKyspe3ZhciBwPWZhbHNlO2lmKCQubWV0YWRhdGEmJigkKCRoZWFkZXJzW2ldKS5tZXRhZGF0YSgpJiYkKCRoZWFkZXJzW2ldKS5tZXRhZGF0YSgpLnNvcnRlcikpe3A9Z2V0UGFyc2VyQnlJZCgkKCRoZWFkZXJzW2ldKS5tZXRhZGF0YSgpLnNvcnRlcik7fWVsc2UgaWYoKHRhYmxlLmNvbmZpZy5oZWFkZXJzW2ldJiZ0YWJsZS5jb25maWcuaGVhZGVyc1tpXS5zb3J0ZXIpKXtwPWdldFBhcnNlckJ5SWQodGFibGUuY29uZmlnLmhlYWRlcnNbaV0uc29ydGVyKTt9aWYoIXApe3A9ZGV0ZWN0UGFyc2VyRm9yQ29sdW1uKHRhYmxlLGNlbGxzW2ldKTt9aWYodGFibGUuY29uZmlnLmRlYnVnKXtwYXJzZXJzRGVidWcrPSJjb2x1bW46IitpKyIgcGFyc2VyOiIrcC5pZCsiXG4iO31saXN0LnB1c2gocCk7fX1pZih0YWJsZS5jb25maWcuZGVidWcpe2xvZyhwYXJzZXJzRGVidWcpO31yZXR1cm4gbGlzdDt9O2Z1bmN0aW9uIGRldGVjdFBhcnNlckZvckNvbHVtbih0YWJsZSxub2RlKXt2YXIgbD1wYXJzZXJzLmxlbmd0aDtmb3IodmFyIGk9MTtpPGw7aSsrKXtpZihwYXJzZXJzW2ldLmlzKCQudHJpbShnZXRFbGVtZW50VGV4dCh0YWJsZS5jb25maWcsbm9kZSkpLHRhYmxlLG5vZGUpKXtyZXR1cm4gcGFyc2Vyc1tpXTt9fXJldHVybiBwYXJzZXJzWzBdO31mdW5jdGlvbiBnZXRQYXJzZXJCeUlkKG5hbWUpe3ZhciBsPXBhcnNlcnMubGVuZ3RoO2Zvcih2YXIgaT0wO2k8bDtpKyspe2lmKHBhcnNlcnNbaV0uaWQudG9Mb3dlckNhc2UoKT09bmFtZS50b0xvd2VyQ2FzZSgpKXtyZXR1cm4gcGFyc2Vyc1tpXTt9fXJldHVybiBmYWxzZTt9ZnVuY3Rpb24gYnVpbGRDYWNoZSh0YWJsZSl7aWYodGFibGUuY29uZmlnLmRlYnVnKXt2YXIgY2FjaGVUaW1lPW5ldyBEYXRlKCk7fXZhciB0b3RhbFJvd3M9KHRhYmxlLnRCb2RpZXNbMF0mJnRhYmxlLnRCb2RpZXNbMF0ucm93cy5sZW5ndGgpfHwwLHRvdGFsQ2VsbHM9KHRhYmxlLnRCb2RpZXNbMF0ucm93c1swXSYmdGFibGUudEJvZGllc1swXS5yb3dzWzBdLmNlbGxzLmxlbmd0aCl8fDAscGFyc2Vycz10YWJsZS5jb25maWcucGFyc2VycyxjYWNoZT17cm93OltdLG5vcm1hbGl6ZWQ6W119O2Zvcih2YXIgaT0wO2k8dG90YWxSb3dzOysraSl7dmFyIGM9dGFibGUudEJvZGllc1swXS5yb3dzW2ldLGNvbHM9W107Y2FjaGUucm93LnB1c2goJChjKSk7Zm9yKHZhciBqPTA7ajx0b3RhbENlbGxzOysrail7Y29scy5wdXNoKHBhcnNlcnNbal0uZm9ybWF0KGdldEVsZW1lbnRUZXh0KHRhYmxlLmNvbmZpZyxjLmNlbGxzW2pdKSx0YWJsZSxjLmNlbGxzW2pdKSk7fWNvbHMucHVzaChpKTtjYWNoZS5ub3JtYWxpemVkLnB1c2goY29scyk7Y29scz1udWxsO307aWYodGFibGUuY29uZmlnLmRlYnVnKXtiZW5jaG1hcmsoIkJ1aWxkaW5nIGNhY2hlIGZvciAiK3RvdGFsUm93cysiIHJvd3M6IixjYWNoZVRpbWUpO31yZXR1cm4gY2FjaGU7fTtmdW5jdGlvbiBnZXRFbGVtZW50VGV4dChjb25maWcsbm9kZSl7aWYoIW5vZGUpcmV0dXJuIiI7dmFyIHQ9IiI7aWYoY29uZmlnLnRleHRFeHRyYWN0aW9uPT0ic2ltcGxlIil7aWYobm9kZS5jaGlsZE5vZGVzWzBdJiZub2RlLmNoaWxkTm9kZXNbMF0uaGFzQ2hpbGROb2RlcygpKXt0PW5vZGUuY2hpbGROb2Rlc1swXS5pbm5lckhUTUw7fWVsc2V7dD1ub2RlLmlubmVySFRNTDt9fWVsc2V7aWYodHlwZW9mKGNvbmZpZy50ZXh0RXh0cmFjdGlvbik9PSJmdW5jdGlvbiIpe3Q9Y29uZmlnLnRleHRFeHRyYWN0aW9uKG5vZGUpO31lbHNle3Q9JChub2RlKS50ZXh0KCk7fX1yZXR1cm4gdDt9ZnVuY3Rpb24gYXBwZW5kVG9UYWJsZSh0YWJsZSxjYWNoZSl7aWYodGFibGUuY29uZmlnLmRlYnVnKXt2YXIgYXBwZW5kVGltZT1uZXcgRGF0ZSgpfXZhciBjPWNhY2hlLHI9Yy5yb3csbj1jLm5vcm1hbGl6ZWQsdG90YWxSb3dzPW4ubGVuZ3RoLGNoZWNrQ2VsbD0oblswXS5sZW5ndGgtMSksdGFibGVCb2R5PSQodGFibGUudEJvZGllc1swXSkscm93cz1bXTtmb3IodmFyIGk9MDtpPHRvdGFsUm93cztpKyspe3Jvd3MucHVzaChyW25baV1bY2hlY2tDZWxsXV0pO2lmKCF0YWJsZS5jb25maWcuYXBwZW5kZXIpe3ZhciBvPXJbbltpXVtjaGVja0NlbGxdXTt2YXIgbD1vLmxlbmd0aDtmb3IodmFyIGo9MDtqPGw7aisrKXt0YWJsZUJvZHlbMF0uYXBwZW5kQ2hpbGQob1tqXSk7fX19aWYodGFibGUuY29uZmlnLmFwcGVuZGVyKXt0YWJsZS5jb25maWcuYXBwZW5kZXIodGFibGUscm93cyk7fXJvd3M9bnVsbDtpZih0YWJsZS5jb25maWcuZGVidWcpe2JlbmNobWFyaygiUmVidWlsdCB0YWJsZToiLGFwcGVuZFRpbWUpO31hcHBseVdpZGdldCh0YWJsZSk7c2V0VGltZW91dChmdW5jdGlvbigpeyQodGFibGUpLnRyaWdnZXIoInNvcnRFbmQiKTt9LDApO307ZnVuY3Rpb24gYnVpbGRIZWFkZXJzKHRhYmxlKXtpZih0YWJsZS5jb25maWcuZGVidWcpe3ZhciB0aW1lPW5ldyBEYXRlKCk7fXZhciBtZXRhPSgkLm1ldGFkYXRhKT90cnVlOmZhbHNlLHRhYmxlSGVhZGVyc1Jvd3M9W107Zm9yKHZhciBpPTA7aTx0YWJsZS50SGVhZC5yb3dzLmxlbmd0aDtpKyspe3RhYmxlSGVhZGVyc1Jvd3NbaV09MDt9OyR0YWJsZUhlYWRlcnM9JCgidGhlYWQgdGgiLHRhYmxlKTskdGFibGVIZWFkZXJzLmVhY2goZnVuY3Rpb24oaW5kZXgpe3RoaXMuY291bnQ9MDt0aGlzLmNvbHVtbj1pbmRleDt0aGlzLm9yZGVyPWZvcm1hdFNvcnRpbmdPcmRlcih0YWJsZS5jb25maWcuc29ydEluaXRpYWxPcmRlcik7aWYoY2hlY2tIZWFkZXJNZXRhZGF0YSh0aGlzKXx8Y2hlY2tIZWFkZXJPcHRpb25zKHRhYmxlLGluZGV4KSl0aGlzLnNvcnREaXNhYmxlZD10cnVlO2lmKCF0aGlzLnNvcnREaXNhYmxlZCl7JCh0aGlzKS5hZGRDbGFzcyh0YWJsZS5jb25maWcuY3NzSGVhZGVyKTt9dGFibGUuY29uZmlnLmhlYWRlckxpc3RbaW5kZXhdPXRoaXM7fSk7aWYodGFibGUuY29uZmlnLmRlYnVnKXtiZW5jaG1hcmsoIkJ1aWx0IGhlYWRlcnM6Iix0aW1lKTtsb2coJHRhYmxlSGVhZGVycyk7fXJldHVybiAkdGFibGVIZWFkZXJzO307ZnVuY3Rpb24gY2hlY2tDZWxsQ29sU3Bhbih0YWJsZSxyb3dzLHJvdyl7dmFyIGFycj1bXSxyPXRhYmxlLnRIZWFkLnJvd3MsYz1yW3Jvd10uY2VsbHM7Zm9yKHZhciBpPTA7aTxjLmxlbmd0aDtpKyspe3ZhciBjZWxsPWNbaV07aWYoY2VsbC5jb2xTcGFuPjEpe2Fycj1hcnIuY29uY2F0KGNoZWNrQ2VsbENvbFNwYW4odGFibGUsaGVhZGVyQXJyLHJvdysrKSk7fWVsc2V7aWYodGFibGUudEhlYWQubGVuZ3RoPT0xfHwoY2VsbC5yb3dTcGFuPjF8fCFyW3JvdysxXSkpe2Fyci5wdXNoKGNlbGwpO319fXJldHVybiBhcnI7fTtmdW5jdGlvbiBjaGVja0hlYWRlck1ldGFkYXRhKGNlbGwpe2lmKCgkLm1ldGFkYXRhKSYmKCQoY2VsbCkubWV0YWRhdGEoKS5zb3J0ZXI9PT1mYWxzZSkpe3JldHVybiB0cnVlO307cmV0dXJuIGZhbHNlO31mdW5jdGlvbiBjaGVja0hlYWRlck9wdGlvbnModGFibGUsaSl7aWYoKHRhYmxlLmNvbmZpZy5oZWFkZXJzW2ldKSYmKHRhYmxlLmNvbmZpZy5oZWFkZXJzW2ldLnNvcnRlcj09PWZhbHNlKSl7cmV0dXJuIHRydWU7fTtyZXR1cm4gZmFsc2U7fWZ1bmN0aW9uIGFwcGx5V2lkZ2V0KHRhYmxlKXt2YXIgYz10YWJsZS5jb25maWcud2lkZ2V0czt2YXIgbD1jLmxlbmd0aDtmb3IodmFyIGk9MDtpPGw7aSsrKXtnZXRXaWRnZXRCeUlkKGNbaV0pLmZvcm1hdCh0YWJsZSk7fX1mdW5jdGlvbiBnZXRXaWRnZXRCeUlkKG5hbWUpe3ZhciBsPXdpZGdldHMubGVuZ3RoO2Zvcih2YXIgaT0wO2k8bDtpKyspe2lmKHdpZGdldHNbaV0uaWQudG9Mb3dlckNhc2UoKT09bmFtZS50b0xvd2VyQ2FzZSgpKXtyZXR1cm4gd2lkZ2V0c1tpXTt9fX07ZnVuY3Rpb24gZm9ybWF0U29ydGluZ09yZGVyKHYpe2lmKHR5cGVvZih2KSE9Ik51bWJlciIpe2k9KHYudG9Mb3dlckNhc2UoKT09ImRlc2MiKT8xOjA7fWVsc2V7aT0odj09KDB8fDEpKT92OjA7fXJldHVybiBpO31mdW5jdGlvbiBpc1ZhbHVlSW5BcnJheSh2LGEpe3ZhciBsPWEubGVuZ3RoO2Zvcih2YXIgaT0wO2k8bDtpKyspe2lmKGFbaV1bMF09PXYpe3JldHVybiB0cnVlO319cmV0dXJuIGZhbHNlO31mdW5jdGlvbiBzZXRIZWFkZXJzQ3NzKHRhYmxlLCRoZWFkZXJzLGxpc3QsY3NzKXskaGVhZGVycy5yZW1vdmVDbGFzcyhjc3NbMF0pLnJlbW92ZUNsYXNzKGNzc1sxXSk7dmFyIGg9W107JGhlYWRlcnMuZWFjaChmdW5jdGlvbihvZmZzZXQpe2lmKCF0aGlzLnNvcnREaXNhYmxlZCl7aFt0aGlzLmNvbHVtbl09JCh0aGlzKTt9fSk7dmFyIGw9bGlzdC5sZW5ndGg7Zm9yKHZhciBpPTA7aTxsO2krKyl7aFtsaXN0W2ldWzBdXS5hZGRDbGFzcyhjc3NbbGlzdFtpXVsxXV0pO319ZnVuY3Rpb24gZml4Q29sdW1uV2lkdGgodGFibGUsJGhlYWRlcnMpe3ZhciBjPXRhYmxlLmNvbmZpZztpZihjLndpZHRoRml4ZWQpe3ZhciBjb2xncm91cD0kKCc8Y29sZ3JvdXA+Jyk7JCgidHI6Zmlyc3QgdGQiLHRhYmxlLnRCb2RpZXNbMF0pLmVhY2goZnVuY3Rpb24oKXtjb2xncm91cC5hcHBlbmQoJCgnPGNvbD4nKS5jc3MoJ3dpZHRoJywkKHRoaXMpLndpZHRoKCkpKTt9KTskKHRhYmxlKS5wcmVwZW5kKGNvbGdyb3VwKTt9O31mdW5jdGlvbiB1cGRhdGVIZWFkZXJTb3J0Q291bnQodGFibGUsc29ydExpc3Qpe3ZhciBjPXRhYmxlLmNvbmZpZyxsPXNvcnRMaXN0Lmxlbmd0aDtmb3IodmFyIGk9MDtpPGw7aSsrKXt2YXIgcz1zb3J0TGlzdFtpXSxvPWMuaGVhZGVyTGlzdFtzWzBdXTtvLmNvdW50PXNbMV07by5jb3VudCsrO319ZnVuY3Rpb24gbXVsdGlzb3J0KHRhYmxlLHNvcnRMaXN0LGNhY2hlKXtpZih0YWJsZS5jb25maWcuZGVidWcpe3ZhciBzb3J0VGltZT1uZXcgRGF0ZSgpO312YXIgZHluYW1pY0V4cD0idmFyIHNvcnRXcmFwcGVyID0gZnVuY3Rpb24oYSxiKSB7IixsPXNvcnRMaXN0Lmxlbmd0aDtmb3IodmFyIGk9MDtpPGw7aSsrKXt2YXIgYz1zb3J0TGlzdFtpXVswXTt2YXIgb3JkZXI9c29ydExpc3RbaV1bMV07dmFyIHM9KGdldENhY2hlZFNvcnRUeXBlKHRhYmxlLmNvbmZpZy5wYXJzZXJzLGMpPT0idGV4dCIpPygob3JkZXI9PTApPyJzb3J0VGV4dCI6InNvcnRUZXh0RGVzYyIpOigob3JkZXI9PTApPyJzb3J0TnVtZXJpYyI6InNvcnROdW1lcmljRGVzYyIpO3ZhciBlPSJlIitpO2R5bmFtaWNFeHArPSJ2YXIgIitlKyIgPSAiK3MrIihhWyIrYysiXSxiWyIrYysiXSk7ICI7ZHluYW1pY0V4cCs9ImlmKCIrZSsiKSB7IHJldHVybiAiK2UrIjsgfSAiO2R5bmFtaWNFeHArPSJlbHNlIHsgIjt9dmFyIG9yZ09yZGVyQ29sPWNhY2hlLm5vcm1hbGl6ZWRbMF0ubGVuZ3RoLTE7ZHluYW1pY0V4cCs9InJldHVybiBhWyIrb3JnT3JkZXJDb2wrIl0tYlsiK29yZ09yZGVyQ29sKyJdOyI7Zm9yKHZhciBpPTA7aTxsO2krKyl7ZHluYW1pY0V4cCs9In07ICI7fWR5bmFtaWNFeHArPSJyZXR1cm4gMDsgIjtkeW5hbWljRXhwKz0ifTsgIjtldmFsKGR5bmFtaWNFeHApO2NhY2hlLm5vcm1hbGl6ZWQuc29ydChzb3J0V3JhcHBlcik7aWYodGFibGUuY29uZmlnLmRlYnVnKXtiZW5jaG1hcmsoIlNvcnRpbmcgb24gIitzb3J0TGlzdC50b1N0cmluZygpKyIgYW5kIGRpciAiK29yZGVyKyIgdGltZToiLHNvcnRUaW1lKTt9cmV0dXJuIGNhY2hlO307ZnVuY3Rpb24gc29ydFRleHQoYSxiKXtyZXR1cm4oKGE8Yik/LTE6KChhPmIpPzE6MCkpO307ZnVuY3Rpb24gc29ydFRleHREZXNjKGEsYil7cmV0dXJuKChiPGEpPy0xOigoYj5hKT8xOjApKTt9O2Z1bmN0aW9uIHNvcnROdW1lcmljKGEsYil7cmV0dXJuIGEtYjt9O2Z1bmN0aW9uIHNvcnROdW1lcmljRGVzYyhhLGIpe3JldHVybiBiLWE7fTtmdW5jdGlvbiBnZXRDYWNoZWRTb3J0VHlwZShwYXJzZXJzLGkpe3JldHVybiBwYXJzZXJzW2ldLnR5cGU7fTt0aGlzLmNvbnN0cnVjdD1mdW5jdGlvbihzZXR0aW5ncyl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2lmKCF0aGlzLnRIZWFkfHwhdGhpcy50Qm9kaWVzKXJldHVybjt2YXIgJHRoaXMsJGRvY3VtZW50LCRoZWFkZXJzLGNhY2hlLGNvbmZpZyxzaGlmdERvd249MCxzb3J0T3JkZXI7dGhpcy5jb25maWc9e307Y29uZmlnPSQuZXh0ZW5kKHRoaXMuY29uZmlnLCQudGFibGVzb3J0ZXIuZGVmYXVsdHMsc2V0dGluZ3MpOyR0aGlzPSQodGhpcyk7JGhlYWRlcnM9YnVpbGRIZWFkZXJzKHRoaXMpO3RoaXMuY29uZmlnLnBhcnNlcnM9YnVpbGRQYXJzZXJDYWNoZSh0aGlzLCRoZWFkZXJzKTtjYWNoZT1idWlsZENhY2hlKHRoaXMpO3ZhciBzb3J0Q1NTPVtjb25maWcuY3NzRGVzYyxjb25maWcuY3NzQXNjXTtmaXhDb2x1bW5XaWR0aCh0aGlzKTskaGVhZGVycy5jbGljayhmdW5jdGlvbihlKXskdGhpcy50cmlnZ2VyKCJzb3J0U3RhcnQiKTt2YXIgdG90YWxSb3dzPSgkdGhpc1swXS50Qm9kaWVzWzBdJiYkdGhpc1swXS50Qm9kaWVzWzBdLnJvd3MubGVuZ3RoKXx8MDtpZighdGhpcy5zb3J0RGlzYWJsZWQmJnRvdGFsUm93cz4wKXt2YXIgJGNlbGw9JCh0aGlzKTt2YXIgaT10aGlzLmNvbHVtbjt0aGlzLm9yZGVyPXRoaXMuY291bnQrKyUyO2lmKCFlW2NvbmZpZy5zb3J0TXVsdGlTb3J0S2V5XSl7Y29uZmlnLnNvcnRMaXN0PVtdO2lmKGNvbmZpZy5zb3J0Rm9yY2UhPW51bGwpe3ZhciBhPWNvbmZpZy5zb3J0Rm9yY2U7Zm9yKHZhciBqPTA7ajxhLmxlbmd0aDtqKyspe2lmKGFbal1bMF0hPWkpe2NvbmZpZy5zb3J0TGlzdC5wdXNoKGFbal0pO319fWNvbmZpZy5zb3J0TGlzdC5wdXNoKFtpLHRoaXMub3JkZXJdKTt9ZWxzZXtpZihpc1ZhbHVlSW5BcnJheShpLGNvbmZpZy5zb3J0TGlzdCkpe2Zvcih2YXIgaj0wO2o8Y29uZmlnLnNvcnRMaXN0Lmxlbmd0aDtqKyspe3ZhciBzPWNvbmZpZy5zb3J0TGlzdFtqXSxvPWNvbmZpZy5oZWFkZXJMaXN0W3NbMF1dO2lmKHNbMF09PWkpe28uY291bnQ9c1sxXTtvLmNvdW50Kys7c1sxXT1vLmNvdW50JTI7fX19ZWxzZXtjb25maWcuc29ydExpc3QucHVzaChbaSx0aGlzLm9yZGVyXSk7fX07c2V0VGltZW91dChmdW5jdGlvbigpe3NldEhlYWRlcnNDc3MoJHRoaXNbMF0sJGhlYWRlcnMsY29uZmlnLnNvcnRMaXN0LHNvcnRDU1MpO2FwcGVuZFRvVGFibGUoJHRoaXNbMF0sbXVsdGlzb3J0KCR0aGlzWzBdLGNvbmZpZy5zb3J0TGlzdCxjYWNoZSkpO30sMSk7cmV0dXJuIGZhbHNlO319KS5tb3VzZWRvd24oZnVuY3Rpb24oKXtpZihjb25maWcuY2FuY2VsU2VsZWN0aW9uKXt0aGlzLm9uc2VsZWN0c3RhcnQ9ZnVuY3Rpb24oKXtyZXR1cm4gZmFsc2V9O3JldHVybiBmYWxzZTt9fSk7JHRoaXMuYmluZCgidXBkYXRlIixmdW5jdGlvbigpe3RoaXMuY29uZmlnLnBhcnNlcnM9YnVpbGRQYXJzZXJDYWNoZSh0aGlzLCRoZWFkZXJzKTtjYWNoZT1idWlsZENhY2hlKHRoaXMpO30pLmJpbmQoInNvcnRvbiIsZnVuY3Rpb24oZSxsaXN0KXskKHRoaXMpLnRyaWdnZXIoInNvcnRTdGFydCIpO2NvbmZpZy5zb3J0TGlzdD1saXN0O3ZhciBzb3J0TGlzdD1jb25maWcuc29ydExpc3Q7dXBkYXRlSGVhZGVyU29ydENvdW50KHRoaXMsc29ydExpc3QpO3NldEhlYWRlcnNDc3ModGhpcywkaGVhZGVycyxzb3J0TGlzdCxzb3J0Q1NTKTthcHBlbmRUb1RhYmxlKHRoaXMsbXVsdGlzb3J0KHRoaXMsc29ydExpc3QsY2FjaGUpKTt9KS5iaW5kKCJhcHBlbmRDYWNoZSIsZnVuY3Rpb24oKXthcHBlbmRUb1RhYmxlKHRoaXMsY2FjaGUpO30pLmJpbmQoImFwcGx5V2lkZ2V0SWQiLGZ1bmN0aW9uKGUsaWQpe2dldFdpZGdldEJ5SWQoaWQpLmZvcm1hdCh0aGlzKTt9KS5iaW5kKCJhcHBseVdpZGdldHMiLGZ1bmN0aW9uKCl7YXBwbHlXaWRnZXQodGhpcyk7fSk7aWYoJC5tZXRhZGF0YSYmKCQodGhpcykubWV0YWRhdGEoKSYmJCh0aGlzKS5tZXRhZGF0YSgpLnNvcnRsaXN0KSl7Y29uZmlnLnNvcnRMaXN0PSQodGhpcykubWV0YWRhdGEoKS5zb3J0bGlzdDt9aWYoY29uZmlnLnNvcnRMaXN0Lmxlbmd0aD4wKXskdGhpcy50cmlnZ2VyKCJzb3J0b24iLFtjb25maWcuc29ydExpc3RdKTt9YXBwbHlXaWRnZXQodGhpcyk7fSk7fTt0aGlzLmFkZFBhcnNlcj1mdW5jdGlvbihwYXJzZXIpe3ZhciBsPXBhcnNlcnMubGVuZ3RoLGE9dHJ1ZTtmb3IodmFyIGk9MDtpPGw7aSsrKXtpZihwYXJzZXJzW2ldLmlkLnRvTG93ZXJDYXNlKCk9PXBhcnNlci5pZC50b0xvd2VyQ2FzZSgpKXthPWZhbHNlO319aWYoYSl7cGFyc2Vycy5wdXNoKHBhcnNlcik7fTt9O3RoaXMuYWRkV2lkZ2V0PWZ1bmN0aW9uKHdpZGdldCl7d2lkZ2V0cy5wdXNoKHdpZGdldCk7fTt0aGlzLmZvcm1hdEZsb2F0PWZ1bmN0aW9uKHMpe3ZhciBpPXBhcnNlRmxvYXQocyk7cmV0dXJuKGlzTmFOKGkpKT8wOmk7fTt0aGlzLmZvcm1hdEludD1mdW5jdGlvbihzKXt2YXIgaT1wYXJzZUludChzKTtyZXR1cm4oaXNOYU4oaSkpPzA6aTt9O3RoaXMuaXNEaWdpdD1mdW5jdGlvbihzLGNvbmZpZyl7dmFyIERFQ0lNQUw9J1xcJytjb25maWcuZGVjaW1hbDt2YXIgZXhwPScvKF5bK10/MCgnK0RFQ0lNQUwrJzArKT8kKXwoXihbLStdP1sxLTldWzAtOV0qKSQpfCheKFstK10/KCgwP3xbMS05XVswLTldKiknK0RFQ0lNQUwrJygwKlsxLTldWzAtOV0qKSkpJCl8KF5bLStdP1sxLTldK1swLTldKicrREVDSU1BTCsnMCskKS8nO3JldHVybiBSZWdFeHAoZXhwKS50ZXN0KCQudHJpbShzKSk7fTt0aGlzLmNsZWFyVGFibGVCb2R5PWZ1bmN0aW9uKHRhYmxlKXtpZigkLmJyb3dzZXIubXNpZSl7ZnVuY3Rpb24gZW1wdHkoKXt3aGlsZSh0aGlzLmZpcnN0Q2hpbGQpdGhpcy5yZW1vdmVDaGlsZCh0aGlzLmZpcnN0Q2hpbGQpO31lbXB0eS5hcHBseSh0YWJsZS50Qm9kaWVzWzBdKTt9ZWxzZXt0YWJsZS50Qm9kaWVzWzBdLmlubmVySFRNTD0iIjt9fTt9fSk7JC5mbi5leHRlbmQoe3RhYmxlc29ydGVyOiQudGFibGVzb3J0ZXIuY29uc3RydWN0fSk7dmFyIHRzPSQudGFibGVzb3J0ZXI7dHMuYWRkUGFyc2VyKHtpZDoidGV4dCIsaXM6ZnVuY3Rpb24ocyl7cmV0dXJuIHRydWU7fSxmb3JtYXQ6ZnVuY3Rpb24ocyl7cmV0dXJuICQudHJpbShzLnRvTG93ZXJDYXNlKCkpO30sdHlwZToidGV4dCJ9KTt0cy5hZGRQYXJzZXIoe2lkOiJkaWdpdCIsaXM6ZnVuY3Rpb24ocyx0YWJsZSl7dmFyIGM9dGFibGUuY29uZmlnO3JldHVybiAkLnRhYmxlc29ydGVyLmlzRGlnaXQocyxjKTt9LGZvcm1hdDpmdW5jdGlvbihzKXtyZXR1cm4gJC50YWJsZXNvcnRlci5mb3JtYXRGbG9hdChzKTt9LHR5cGU6Im51bWVyaWMifSk7dHMuYWRkUGFyc2VyKHtpZDoiY3VycmVuY3kiLGlzOmZ1bmN0aW9uKHMpe3JldHVybi9eW8KjJOKCrD8uXS8udGVzdChzKTt9LGZvcm1hdDpmdW5jdGlvbihzKXtyZXR1cm4gJC50YWJsZXNvcnRlci5mb3JtYXRGbG9hdChzLnJlcGxhY2UobmV3IFJlZ0V4cCgvW14wLTkuXS9nKSwiIikpO30sdHlwZToibnVtZXJpYyJ9KTt0cy5hZGRQYXJzZXIoe2lkOiJpcEFkZHJlc3MiLGlzOmZ1bmN0aW9uKHMpe3JldHVybi9eXGR7MiwzfVtcLl1cZHsyLDN9W1wuXVxkezIsM31bXC5dXGR7MiwzfSQvLnRlc3Qocyk7fSxmb3JtYXQ6ZnVuY3Rpb24ocyl7dmFyIGE9cy5zcGxpdCgiLiIpLHI9IiIsbD1hLmxlbmd0aDtmb3IodmFyIGk9MDtpPGw7aSsrKXt2YXIgaXRlbT1hW2ldO2lmKGl0ZW0ubGVuZ3RoPT0yKXtyKz0iMCIraXRlbTt9ZWxzZXtyKz1pdGVtO319cmV0dXJuICQudGFibGVzb3J0ZXIuZm9ybWF0RmxvYXQocik7fSx0eXBlOiJudW1lcmljIn0pO3RzLmFkZFBhcnNlcih7aWQ6InVybCIsaXM6ZnVuY3Rpb24ocyl7cmV0dXJuL14oaHR0cHM/fGZ0cHxmaWxlKTpcL1wvJC8udGVzdChzKTt9LGZvcm1hdDpmdW5jdGlvbihzKXtyZXR1cm4galF1ZXJ5LnRyaW0ocy5yZXBsYWNlKG5ldyBSZWdFeHAoLyhodHRwcz98ZnRwfGZpbGUpOlwvXC8vKSwnJykpO30sdHlwZToidGV4dCJ9KTt0cy5hZGRQYXJzZXIoe2lkOiJpc29EYXRlIixpczpmdW5jdGlvbihzKXtyZXR1cm4vXlxkezR9W1wvLV1cZHsxLDJ9W1wvLV1cZHsxLDJ9JC8udGVzdChzKTt9LGZvcm1hdDpmdW5jdGlvbihzKXtyZXR1cm4gJC50YWJsZXNvcnRlci5mb3JtYXRGbG9hdCgocyE9IiIpP25ldyBEYXRlKHMucmVwbGFjZShuZXcgUmVnRXhwKC8tL2cpLCIvIikpLmdldFRpbWUoKToiMCIpO30sdHlwZToibnVtZXJpYyJ9KTt0cy5hZGRQYXJzZXIoe2lkOiJwZXJjZW50IixpczpmdW5jdGlvbihzKXtyZXR1cm4vXCUkLy50ZXN0KCQudHJpbShzKSk7fSxmb3JtYXQ6ZnVuY3Rpb24ocyl7cmV0dXJuICQudGFibGVzb3J0ZXIuZm9ybWF0RmxvYXQocy5yZXBsYWNlKG5ldyBSZWdFeHAoLyUvZyksIiIpKTt9LHR5cGU6Im51bWVyaWMifSk7dHMuYWRkUGFyc2VyKHtpZDoidXNMb25nRGF0ZSIsaXM6ZnVuY3Rpb24ocyl7cmV0dXJuIHMubWF0Y2gobmV3IFJlZ0V4cCgvXltBLVphLXpdezMsMTB9XC4/IFswLTldezEsMn0sIChbMC05XXs0fXwnP1swLTldezJ9KSAoKFswLTJdP1swLTldOlswLTVdWzAtOV0pfChbMC0xXT9bMC05XTpbMC01XVswLTldXHMoQU18UE0pKSkkLykpO30sZm9ybWF0OmZ1bmN0aW9uKHMpe3JldHVybiAkLnRhYmxlc29ydGVyLmZvcm1hdEZsb2F0KG5ldyBEYXRlKHMpLmdldFRpbWUoKSk7fSx0eXBlOiJudW1lcmljIn0pO3RzLmFkZFBhcnNlcih7aWQ6InNob3J0RGF0ZSIsaXM6ZnVuY3Rpb24ocyl7cmV0dXJuL1xkezEsMn1bXC9cLV1cZHsxLDJ9W1wvXC1dXGR7Miw0fS8udGVzdChzKTt9LGZvcm1hdDpmdW5jdGlvbihzLHRhYmxlKXt2YXIgYz10YWJsZS5jb25maWc7cz1zLnJlcGxhY2UoL1wtL2csIi8iKTtpZihjLmRhdGVGb3JtYXQ9PSJ1cyIpe3M9cy5yZXBsYWNlKC8oXGR7MSwyfSlbXC9cLV0oXGR7MSwyfSlbXC9cLV0oXGR7NH0pLywiJDMvJDEvJDIiKTt9ZWxzZSBpZihjLmRhdGVGb3JtYXQ9PSJ1ayIpe3M9cy5yZXBsYWNlKC8oXGR7MSwyfSlbXC9cLV0oXGR7MSwyfSlbXC9cLV0oXGR7NH0pLywiJDMvJDIvJDEiKTt9ZWxzZSBpZihjLmRhdGVGb3JtYXQ9PSJkZC9tbS95eSJ8fGMuZGF0ZUZvcm1hdD09ImRkLW1tLXl5Iil7cz1zLnJlcGxhY2UoLyhcZHsxLDJ9KVtcL1wtXShcZHsxLDJ9KVtcL1wtXShcZHsyfSkvLCIkMS8kMi8kMyIpO31yZXR1cm4gJC50YWJsZXNvcnRlci5mb3JtYXRGbG9hdChuZXcgRGF0ZShzKS5nZXRUaW1lKCkpO30sdHlwZToibnVtZXJpYyJ9KTt0cy5hZGRQYXJzZXIoe2lkOiJ0aW1lIixpczpmdW5jdGlvbihzKXtyZXR1cm4vXigoWzAtMl0/WzAtOV06WzAtNV1bMC05XSl8KFswLTFdP1swLTldOlswLTVdWzAtOV1ccyhhbXxwbSkpKSQvLnRlc3Qocyk7fSxmb3JtYXQ6ZnVuY3Rpb24ocyl7cmV0dXJuICQudGFibGVzb3J0ZXIuZm9ybWF0RmxvYXQobmV3IERhdGUoIjIwMDAvMDEvMDEgIitzKS5nZXRUaW1lKCkpO30sdHlwZToibnVtZXJpYyJ9KTt0cy5hZGRQYXJzZXIoe2lkOiJtZXRhZGF0YSIsaXM6ZnVuY3Rpb24ocyl7cmV0dXJuIGZhbHNlO30sZm9ybWF0OmZ1bmN0aW9uKHMsdGFibGUsY2VsbCl7dmFyIGM9dGFibGUuY29uZmlnLHA9KCFjLnBhcnNlck1ldGFkYXRhTmFtZSk/J3NvcnRWYWx1ZSc6Yy5wYXJzZXJNZXRhZGF0YU5hbWU7cmV0dXJuICQoY2VsbCkubWV0YWRhdGEoKVtwXTt9LHR5cGU6Im51bWVyaWMifSk7dHMuYWRkV2lkZ2V0KHtpZDoiemVicmEiLGZvcm1hdDpmdW5jdGlvbih0YWJsZSl7aWYodGFibGUuY29uZmlnLmRlYnVnKXt2YXIgdGltZT1uZXcgRGF0ZSgpO30kKCJ0cjp2aXNpYmxlIix0YWJsZS50Qm9kaWVzWzBdKS5maWx0ZXIoJzpldmVuJykucmVtb3ZlQ2xhc3ModGFibGUuY29uZmlnLndpZGdldFplYnJhLmNzc1sxXSkuYWRkQ2xhc3ModGFibGUuY29uZmlnLndpZGdldFplYnJhLmNzc1swXSkuZW5kKCkuZmlsdGVyKCc6b2RkJykucmVtb3ZlQ2xhc3ModGFibGUuY29uZmlnLndpZGdldFplYnJhLmNzc1swXSkuYWRkQ2xhc3ModGFibGUuY29uZmlnLndpZGdldFplYnJhLmNzc1sxXSk7aWYodGFibGUuY29uZmlnLmRlYnVnKXskLnRhYmxlc29ydGVyLmJlbmNobWFyaygiQXBwbHlpbmcgWmVicmEgd2lkZ2V0Iix0aW1lKTt9fX0pO30pKGpRdWVyeSk7]]></data>
	</file>
	<file>
	  <filename>/includes/jquery.textarea.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoKICoJVGFiYnkgalF1ZXJ5IHBsdWdpbiB2ZXJzaW9uIDAuMTIKICoKICoJVGVkIERldml0byAtIGh0dHA6Ly90ZWRkZXZpdG8uY29tL2RlbW9zL3RleHRhcmVhLmh0bWwKICoKICoJWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKICoJYWxvbmcgd2l0aCBFYXN5IFdpZGdldHMuIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPgogKgogKglQbHVnaW4gZGV2ZWxvcG1lbnQgcGF0dGVybiBiYXNlZCBvbjoJaHR0cDovL3d3dy5sZWFybmluZ2pxdWVyeS5jb20vMjAwNy8xMC9hLXBsdWdpbi1kZXZlbG9wbWVudC1wYXR0ZXJuCiAqCiAqLwogCi8vIGNyZWF0ZSBjbG9zdXJlCgooZnVuY3Rpb24oJCkgewogCgkvLyBwbHVnaW4gZGVmaW5pdGlvbgoKCSQuZm4udGFiYnkgPSBmdW5jdGlvbihvcHRpb25zKSB7CgkJLy9kZWJ1Zyh0aGlzKTsKCQkvLyBidWlsZCBtYWluIG9wdGlvbnMgYmVmb3JlIGVsZW1lbnQgaXRlcmF0aW9uCgkJdmFyIG9wdHMgPSAkLmV4dGVuZCh7fSwgJC5mbi50YWJieS5kZWZhdWx0cywgb3B0aW9ucyk7CgkJdmFyIHByZXNzZWQgPSAkLmZuLnRhYmJ5LnByZXNzZWQ7IAoJCQoJCS8vIGl0ZXJhdGUgYW5kIHJlZm9ybWF0IGVhY2ggbWF0Y2hlZCBlbGVtZW50CgkJcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpIHsKCQkJJHRoaXMgPSAkKHRoaXMpOwoJCQkKCQkJLy8gYnVpbGQgZWxlbWVudCBzcGVjaWZpYyBvcHRpb25zCgkJCXZhciBvcHRpb25zID0gJC5tZXRhID8gJC5leHRlbmQoe30sIG9wdHMsICR0aGlzLmRhdGEoKSkgOiBvcHRzOwoJCQkKCQkJJHRoaXMuYmluZCgna2V5ZG93bicsZnVuY3Rpb24gKGUpIHsKCQkJCXZhciBrYyA9ICQuZm4udGFiYnkuY2F0Y2hfa2MoZSk7CgkJCQlpZiAoMTYgPT0ga2MpIHByZXNzZWQuc2hmdCA9IHRydWU7CgkJCQkvKgoJCQkJYmVjYXVzZSBib3RoIENUUkwrVEFCIGFuZCBBTFQrVEFCIGRlZmF1bHQgdG8gYW4gZXZlbnQgKGNoYW5naW5nIHRhYi93aW5kb3cpIHRoYXQgCgkJCQl3aWxsIHByZXZlbnQganMgZnJvbSBjYXB0dXJpbmcgdGhlIGtleXVwIGV2ZW50LCB3ZSdsbCBzZXQgYSB0aW1lciBvbiByZWxlYXNpbmcgdGhlbS4KCQkJCSovCgkJCQlpZiAoMTcgPT0ga2MpIHtwcmVzc2VkLmN0cmwgPSB0cnVlOwlzZXRUaW1lb3V0KCIkLmZuLnRhYmJ5LnByZXNzZWQuY3RybCA9IGZhbHNlOyIsMTAwMCk7fQoJCQkJaWYgKDE4ID09IGtjKSB7cHJlc3NlZC5hbHQgPSB0cnVlOyAJc2V0VGltZW91dCgiJC5mbi50YWJieS5wcmVzc2VkLmFsdCA9IGZhbHNlOyIsMTAwMCk7fQoJCQkJCQoJCQkJaWYgKDkgPT0ga2MgJiYgIXByZXNzZWQuY3RybCAmJiAhcHJlc3NlZC5hbHQpIHsKCQkJCQllLnByZXZlbnREZWZhdWx0OyAvLyBkb2VzIG5vdCB3b3JrIGluIE85LjYzID8/CgkJCQkJcHJlc3NlZC5sYXN0ID0ga2M7CXNldFRpbWVvdXQoIiQuZm4udGFiYnkucHJlc3NlZC5sYXN0ID0gbnVsbDsiLDApOwoJCQkJCXByb2Nlc3Nfa2V5cHJlc3MgKCQoZS50YXJnZXQpLmdldCgwKSwgcHJlc3NlZC5zaGZ0LCBvcHRpb25zKTsKCQkJCQlyZXR1cm4gZmFsc2U7CgkJCQl9CgkJCQkKCQkJfSkuYmluZCgna2V5dXAnLGZ1bmN0aW9uIChlKSB7CgkJCQlpZiAoMTYgPT0gJC5mbi50YWJieS5jYXRjaF9rYyhlKSkgcHJlc3NlZC5zaGZ0ID0gZmFsc2U7CgkJCX0pLmJpbmQoJ2JsdXInLGZ1bmN0aW9uIChlKSB7IC8vIHdvcmthcm91bmQgZm9yIE9wZXJhIC0tIGh0dHA6Ly93d3cud2ViZGV2ZWxvcGVyLmNvbS9mb3J1bS9zaG93dGhyZWFkLnBocD9wPTgwNjU4OAoJCQkJaWYgKDkgPT0gcHJlc3NlZC5sYXN0KSAkKGUudGFyZ2V0KS5vbmUoJ2ZvY3VzJyxmdW5jdGlvbiAoZSkge3ByZXNzZWQubGFzdCA9IG51bGw7fSkuZ2V0KDApLmZvY3VzKCk7CgkJCX0pOwoJCQoJCX0pOwoJfTsKCQoJLy8gZGVmaW5lIGFuZCBleHBvc2UgYW55IGV4dHJhIG1ldGhvZHMKCSQuZm4udGFiYnkuY2F0Y2hfa2MgPSBmdW5jdGlvbihlKSB7IHJldHVybiBlLmtleUNvZGUgPyBlLmtleUNvZGUgOiBlLmNoYXJDb2RlID8gZS5jaGFyQ29kZSA6IGUud2hpY2g7IH07CgkkLmZuLnRhYmJ5LnByZXNzZWQgPSB7c2hmdCA6IGZhbHNlLCBjdHJsIDogZmFsc2UsIGFsdCA6IGZhbHNlLCBsYXN0OiBudWxsfTsKCQoJLy8gcHJpdmF0ZSBmdW5jdGlvbiBmb3IgZGVidWdnaW5nCglmdW5jdGlvbiBkZWJ1Zygkb2JqKSB7CgkJaWYgKHdpbmRvdy5jb25zb2xlICYmIHdpbmRvdy5jb25zb2xlLmxvZykKCQl3aW5kb3cuY29uc29sZS5sb2coJ3RleHRhcmVhIGNvdW50OiAnICsgJG9iai5zaXplKCkpOwoJfTsKCglmdW5jdGlvbiBwcm9jZXNzX2tleXByZXNzIChvLHNoZnQsb3B0aW9ucykgewoJCXZhciBzY3JvbGxUbyA9IG8uc2Nyb2xsVG9wOwoJCS8vdmFyIHRhYlN0cmluZyA9IFN0cmluZy5mcm9tQ2hhckNvZGUoOSk7CgkJCgkJLy8gZ2Vja287IG8uc2V0U2VsZWN0aW9uUmFuZ2UgaXMgb25seSBhdmFpbGFibGUgd2hlbiB0aGUgdGV4dCBib3ggaGFzIGZvY3VzCgkJaWYgKG8uc2V0U2VsZWN0aW9uUmFuZ2UpIGdlY2tvX3RhYiAobywgc2hmdCwgb3B0aW9ucyk7CgkJCgkJLy8gaWU7IGRvY3VtZW50LnNlbGVjdGlvbiBpcyBhbHdheXMgYXZhaWxhYmxlCgkJZWxzZSBpZiAoZG9jdW1lbnQuc2VsZWN0aW9uKSBpZV90YWIgKG8sIHNoZnQsIG9wdGlvbnMpOwoJCQoJCW8uc2Nyb2xsVG9wID0gc2Nyb2xsVG87Cgl9CgkKCS8vIHBsdWdpbiBkZWZhdWx0cwoJJC5mbi50YWJieS5kZWZhdWx0cyA9IHt0YWJTdHJpbmcgOiBTdHJpbmcuZnJvbUNoYXJDb2RlKDkpfTsKCQoJZnVuY3Rpb24gZ2Vja29fdGFiIChvLCBzaGZ0LCBvcHRpb25zKSB7CgkJdmFyIHNzID0gby5zZWxlY3Rpb25TdGFydDsKCQl2YXIgZXMgPSBvLnNlbGVjdGlvbkVuZDsJCgkJCQkKCQkvLyB3aGVuIHRoZXJlJ3Mgbm8gc2VsZWN0aW9uIGFuZCB3ZSdyZSBqdXN0IHdvcmtpbmcgd2l0aCB0aGUgY2FyZXQsIHdlJ2xsIGFkZC9yZW1vdmUgdGhlIHRhYnMgYXQgdGhlIGNhcmV0LCBwcm92aWRpbmcgbW9yZSBjb250cm9sCgkJaWYoc3MgPT0gZXMpIHsKCQkJLy8gU0hJRlQrVEFCCgkJCWlmIChzaGZ0KSB7CgkJCQkvLyBjaGVjayB0byB0aGUgbGVmdCBvZiB0aGUgY2FyZXQgZmlyc3QKCQkJCWlmICgiXHQiID09IG8udmFsdWUuc3Vic3RyaW5nKHNzLW9wdGlvbnMudGFiU3RyaW5nLmxlbmd0aCwgc3MpKSB7CgkJCQkJby52YWx1ZSA9IG8udmFsdWUuc3Vic3RyaW5nKDAsIHNzLW9wdGlvbnMudGFiU3RyaW5nLmxlbmd0aCkgKyBvLnZhbHVlLnN1YnN0cmluZyhzcyk7IC8vIHB1dCBpdCBiYWNrIHRvZ2V0aGVyIG9taXR0aW5nIG9uZSBjaGFyYWN0ZXIgdG8gdGhlIGxlZnQKCQkJCQlvLmZvY3VzKCk7CgkJCQkJby5zZXRTZWxlY3Rpb25SYW5nZShzcyAtIG9wdGlvbnMudGFiU3RyaW5nLmxlbmd0aCwgc3MgLSBvcHRpb25zLnRhYlN0cmluZy5sZW5ndGgpOwoJCQkJfSAKCQkJCS8vIHRoZW4gY2hlY2sgdG8gdGhlIHJpZ2h0IG9mIHRoZSBjYXJldAoJCQkJZWxzZSBpZiAoIlx0IiA9PSBvLnZhbHVlLnN1YnN0cmluZyhzcywgc3MgKyBvcHRpb25zLnRhYlN0cmluZy5sZW5ndGgpKSB7CgkJCQkJby52YWx1ZSA9IG8udmFsdWUuc3Vic3RyaW5nKDAsIHNzKSArIG8udmFsdWUuc3Vic3RyaW5nKHNzICsgb3B0aW9ucy50YWJTdHJpbmcubGVuZ3RoKTsgLy8gcHV0IGl0IGJhY2sgdG9nZXRoZXIgb21pdHRpbmcgb25lIGNoYXJhY3RlciB0byB0aGUgcmlnaHQKCQkJCQlvLmZvY3VzKCk7CgkJCQkJby5zZXRTZWxlY3Rpb25SYW5nZShzcyxzcyk7CgkJCQl9CgkJCX0KCQkJLy8gVEFCCgkJCWVsc2UgewkJCQoJCQkJby52YWx1ZSA9IG8udmFsdWUuc3Vic3RyaW5nKDAsIHNzKSArIG9wdGlvbnMudGFiU3RyaW5nICsgby52YWx1ZS5zdWJzdHJpbmcoc3MpOwoJCQkJby5mb2N1cygpOwoJICAgIAkJby5zZXRTZWxlY3Rpb25SYW5nZShzcyArIG9wdGlvbnMudGFiU3RyaW5nLmxlbmd0aCwgc3MgKyBvcHRpb25zLnRhYlN0cmluZy5sZW5ndGgpOwoJCQl9CgkJfSAKCQkvLyBzZWxlY3Rpb25zIHdpbGwgYWx3YXlzIGFkZC9yZW1vdmUgdGFicyBmcm9tIHRoZSBzdGFydCBvZiB0aGUgbGluZQoJCWVsc2UgewoJCQkvLyBzcGxpdCB0aGUgdGV4dGFyZWEgdXAgaW50byBsaW5lcyBhbmQgZmlndXJlIG91dCB3aGljaCBsaW5lcyBhcmUgaW5jbHVkZWQgaW4gdGhlIHNlbGVjdGlvbgoJCQl2YXIgbGluZXMgPSBvLnZhbHVlLnNwbGl0KCJcbiIpOwoJCQl2YXIgaW5kaWNlcyA9IG5ldyBBcnJheSgpOwoJCQl2YXIgc2wgPSAwOyAvLyBzdGFydCBvZiB0aGUgbGluZQoJCQl2YXIgZWwgPSAwOyAvLyBlbmQgb2YgdGhlIGxpbmUKCQkJdmFyIHNlbCA9IGZhbHNlOwoJCQlmb3IgKHZhciBpIGluIGxpbmVzKSB7CgkJCQllbCA9IHNsICsgbGluZXNbaV0ubGVuZ3RoOwoJCQkJaW5kaWNlcy5wdXNoKHtzdGFydDogc2wsIGVuZDogZWwsIHNlbGVjdGVkOiAoc2wgPD0gc3MgJiYgZWwgPiBzcykgfHwgKGVsID49IGVzICYmIHNsIDwgZXMpIHx8IChzbCA+IHNzICYmIGVsIDwgZXMpfSk7CgkJCQlzbCA9IGVsICsgMTsvLyBmb3IgIlxuIgoJCQl9CgkJCQoJCQkvLyB3YWxrIHRocm91Z2ggdGhlIGFycmF5IG9mIGxpbmVzIChpbmRpY2VzKSBhbmQgYWRkIHRhYnMgd2hlcmUgYXBwcm9wcmlhdGUJCQkJCQkKCQkJdmFyIG1vZGlmaWVyID0gMDsKCQkJZm9yICh2YXIgaSBpbiBpbmRpY2VzKSB7CgkJCQlpZiAoaW5kaWNlc1tpXS5zZWxlY3RlZCkgewoJCQkJCXZhciBwb3MgPSBpbmRpY2VzW2ldLnN0YXJ0ICsgbW9kaWZpZXI7IC8vIGFkanVzdCBmb3IgdGFicyBhbHJlYWR5IGluc2VydGVkL3JlbW92ZWQKCQkJCQkvLyBTSElGVCtUQUIKCQkJCQlpZiAoc2hmdCAmJiBvcHRpb25zLnRhYlN0cmluZyA9PSBvLnZhbHVlLnN1YnN0cmluZyhwb3MscG9zK29wdGlvbnMudGFiU3RyaW5nLmxlbmd0aCkpIHsgLy8gb25seSBTSElGVCtUQUIgaWYgdGhlcmUncyBhIHRhYiBhdCB0aGUgc3RhcnQgb2YgdGhlIGxpbmUKCQkJCQkJby52YWx1ZSA9IG8udmFsdWUuc3Vic3RyaW5nKDAscG9zKSArIG8udmFsdWUuc3Vic3RyaW5nKHBvcyArIG9wdGlvbnMudGFiU3RyaW5nLmxlbmd0aCk7IC8vIG9taXQgdGhlIHRhYnN0cmluZyB0byB0aGUgcmlnaHQKCQkJCQkJbW9kaWZpZXIgLT0gb3B0aW9ucy50YWJTdHJpbmcubGVuZ3RoOwoJCQkJCX0KCQkJCQkvLyBUQUIKCQkJCQllbHNlIGlmICghc2hmdCkgewoJCQkJCQlvLnZhbHVlID0gby52YWx1ZS5zdWJzdHJpbmcoMCxwb3MpICsgb3B0aW9ucy50YWJTdHJpbmcgKyBvLnZhbHVlLnN1YnN0cmluZyhwb3MpOyAvLyBpbnNlcnQgdGhlIHRhYnN0cmluZwoJCQkJCQltb2RpZmllciArPSBvcHRpb25zLnRhYlN0cmluZy5sZW5ndGg7CgkJCQkJfQoJCQkJfQoJCQl9CgkJCW8uZm9jdXMoKTsKCQkJdmFyIG5zID0gc3MgKyAoKG1vZGlmaWVyID4gMCkgPyBvcHRpb25zLnRhYlN0cmluZy5sZW5ndGggOiAobW9kaWZpZXIgPCAwKSA/IC1vcHRpb25zLnRhYlN0cmluZy5sZW5ndGggOiAwKTsKCQkJdmFyIG5lID0gZXMgKyBtb2RpZmllcjsKCQkJby5zZXRTZWxlY3Rpb25SYW5nZShucyxuZSk7CgkJfQoJfQoJCglmdW5jdGlvbiBpZV90YWIgKG8sIHNoZnQsIG9wdGlvbnMpIHsKCQl2YXIgcmFuZ2UgPSBkb2N1bWVudC5zZWxlY3Rpb24uY3JlYXRlUmFuZ2UoKTsKCQkKCQlpZiAobyA9PSByYW5nZS5wYXJlbnRFbGVtZW50KCkpIHsKCQkJLy8gd2hlbiB0aGVyZSdzIG5vIHNlbGVjdGlvbiBhbmQgd2UncmUganVzdCB3b3JraW5nIHdpdGggdGhlIGNhcmV0LCB3ZSdsbCBhZGQvcmVtb3ZlIHRoZSB0YWJzIGF0IHRoZSBjYXJldCwgcHJvdmlkaW5nIG1vcmUgY29udHJvbAoJCQlpZiAoJycgPT0gcmFuZ2UudGV4dCkgewoJCQkJLy8gU0hJRlQrVEFCCgkJCQlpZiAoc2hmdCkgewoJCQkJCXZhciBib29rbWFyayA9IHJhbmdlLmdldEJvb2ttYXJrKCk7CgkJCQkJLy9maXJzdCB0cnkgdG8gdGhlIGxlZnQgYnkgbW92aW5nIG9wZW5pbmcgdXAgb3VyIGVtcHR5IHJhbmdlIHRvIHRoZSBsZWZ0CgkJCQkgICAgcmFuZ2UubW92ZVN0YXJ0KCdjaGFyYWN0ZXInLCAtb3B0aW9ucy50YWJTdHJpbmcubGVuZ3RoKTsKCQkJCSAgICBpZiAob3B0aW9ucy50YWJTdHJpbmcgPT0gcmFuZ2UudGV4dCkgewoJCQkJICAgIAlyYW5nZS50ZXh0ID0gJyc7CgkJCQkgICAgfSBlbHNlIHsKCQkJCSAgICAJLy8gaWYgdGhhdCBkaWRuJ3Qgd29yayB0aGVuIHJlc2V0IHRoZSByYW5nZSBhbmQgdHJ5IG9wZW5pbmcgaXQgdG8gdGhlIHJpZ2h0CgkJCQkgICAgCXJhbmdlLm1vdmVUb0Jvb2ttYXJrKGJvb2ttYXJrKTsKCQkJCSAgICAJcmFuZ2UubW92ZUVuZCgnY2hhcmFjdGVyJywgb3B0aW9ucy50YWJTdHJpbmcubGVuZ3RoKTsKCQkJCSAgICAJaWYgKG9wdGlvbnMudGFiU3RyaW5nID09IHJhbmdlLnRleHQpIAoJCQkJICAgIAkJcmFuZ2UudGV4dCA9ICcnOwoJCQkJICAgIH0KCQkJCSAgICAvLyBtb3ZlIHRoZSBwb2ludGVyIHRvIHRoZSBzdGFydCBvZiB0aGVtIGVtcHR5IHJhbmdlIGFuZCBzZWxlY3QgaXQKCQkJCSAgICByYW5nZS5jb2xsYXBzZSh0cnVlKTsKCQkJCQlyYW5nZS5zZWxlY3QoKTsKCQkJCX0KCQkJCQoJCQkJZWxzZSB7CgkJCQkJLy8gdmVyeSBzaW1wbGUgaGVyZS4ganVzdCBpbnNlcnQgdGhlIHRhYiBpbnRvIHRoZSByYW5nZSBhbmQgcHV0IHRoZSBwb2ludGVyIGF0IHRoZSBlbmQKCQkJCQlyYW5nZS50ZXh0ID0gb3B0aW9ucy50YWJTdHJpbmc7IAoJCQkJCXJhbmdlLmNvbGxhcHNlKGZhbHNlKTsKCQkJCQlyYW5nZS5zZWxlY3QoKTsKCQkJCX0KCQkJfQoJCQkvLyBzZWxlY3Rpb25zIHdpbGwgYWx3YXlzIGFkZC9yZW1vdmUgdGFicyBmcm9tIHRoZSBzdGFydCBvZiB0aGUgbGluZQoJCQllbHNlIHsKCQkJCgkJCQl2YXIgc2VsZWN0aW9uX3RleHQgPSByYW5nZS50ZXh0OwoJCQkJdmFyIHNlbGVjdGlvbl9sZW4gPSBzZWxlY3Rpb25fdGV4dC5sZW5ndGg7CgkJCQl2YXIgc2VsZWN0aW9uX2FyciA9IHNlbGVjdGlvbl90ZXh0LnNwbGl0KCJcclxuIik7CgkJCQkKCQkJCXZhciBiZWZvcmVfcmFuZ2UgPSBkb2N1bWVudC5ib2R5LmNyZWF0ZVRleHRSYW5nZSgpOwoJCQkJYmVmb3JlX3JhbmdlLm1vdmVUb0VsZW1lbnRUZXh0KG8pOwoJCQkJYmVmb3JlX3JhbmdlLnNldEVuZFBvaW50KCJFbmRUb1N0YXJ0IiwgcmFuZ2UpOwoJCQkJdmFyIGJlZm9yZV90ZXh0ID0gYmVmb3JlX3JhbmdlLnRleHQ7CgkJCQl2YXIgYmVmb3JlX2FyciA9IGJlZm9yZV90ZXh0LnNwbGl0KCJcclxuIik7CgkJCQl2YXIgYmVmb3JlX2xlbiA9IGJlZm9yZV90ZXh0Lmxlbmd0aDsgLy8gLSBiZWZvcmVfYXJyLmxlbmd0aCArIDE7CgkJCQkKCQkJCXZhciBhZnRlcl9yYW5nZSA9IGRvY3VtZW50LmJvZHkuY3JlYXRlVGV4dFJhbmdlKCk7CgkJCQlhZnRlcl9yYW5nZS5tb3ZlVG9FbGVtZW50VGV4dChvKTsKCQkJCWFmdGVyX3JhbmdlLnNldEVuZFBvaW50KCJTdGFydFRvRW5kIiwgcmFuZ2UpOwoJCQkJdmFyIGFmdGVyX3RleHQgPSBhZnRlcl9yYW5nZS50ZXh0OyAvLyB3ZSBjYW4gYWNjdXJhdGVseSBjYWxjdWxhdGUgZGlzdGFuY2UgdG8gdGhlIGVuZCBiZWNhdXNlIHdlJ3JlIG5vdCB3b3JyaWVkIGFib3V0IE1TSUUgdHJpbW1pbmcgYSBcclxuCgkJCQkKCQkJCXZhciBlbmRfcmFuZ2UgPSBkb2N1bWVudC5ib2R5LmNyZWF0ZVRleHRSYW5nZSgpOwoJCQkJZW5kX3JhbmdlLm1vdmVUb0VsZW1lbnRUZXh0KG8pOwoJCQkJZW5kX3JhbmdlLnNldEVuZFBvaW50KCJTdGFydFRvRW5kIiwgYmVmb3JlX3JhbmdlKTsKCQkJCXZhciBlbmRfdGV4dCA9IGVuZF9yYW5nZS50ZXh0OyAvLyB3ZSBjYW4gYWNjdXJhdGVseSBjYWxjdWxhdGUgZGlzdGFuY2UgdG8gdGhlIGVuZCBiZWNhdXNlIHdlJ3JlIG5vdCB3b3JyaWVkIGFib3V0IE1TSUUgdHJpbW1pbmcgYSBcclxuCgkJCQkJCQkJCgkJCQl2YXIgY2hlY2tfaHRtbCA9ICQobykuaHRtbCgpOwoJCQkJJCgiI3IzIikudGV4dChiZWZvcmVfbGVuICsgIiArICIgKyBzZWxlY3Rpb25fbGVuICsgIiArICIgKyBhZnRlcl90ZXh0Lmxlbmd0aCArICIgPSAiICsgY2hlY2tfaHRtbC5sZW5ndGgpOwkJCQkKCQkJCWlmKChiZWZvcmVfbGVuICsgZW5kX3RleHQubGVuZ3RoKSA8IGNoZWNrX2h0bWwubGVuZ3RoKSB7CgkJCQkJYmVmb3JlX2Fyci5wdXNoKCIiKTsKCQkJCQliZWZvcmVfbGVuICs9IDI7IC8vIGZvciB0aGUgXHJcbiB0aGF0IHdhcyB0cmltbWVkCQoJCQkJCWlmIChzaGZ0ICYmIG9wdGlvbnMudGFiU3RyaW5nID09IHNlbGVjdGlvbl9hcnJbMF0uc3Vic3RyaW5nKDAsb3B0aW9ucy50YWJTdHJpbmcubGVuZ3RoKSkKCQkJCQkJc2VsZWN0aW9uX2FyclswXSA9IHNlbGVjdGlvbl9hcnJbMF0uc3Vic3RyaW5nKG9wdGlvbnMudGFiU3RyaW5nLmxlbmd0aCk7CgkJCQkJZWxzZSBpZiAoIXNoZnQpIHNlbGVjdGlvbl9hcnJbMF0gPSBvcHRpb25zLnRhYlN0cmluZyArIHNlbGVjdGlvbl9hcnJbMF07CQoJCQkJfSBlbHNlIHsKCQkJCQlpZiAoc2hmdCAmJiBvcHRpb25zLnRhYlN0cmluZyA9PSBiZWZvcmVfYXJyW2JlZm9yZV9hcnIubGVuZ3RoLTFdLnN1YnN0cmluZygwLG9wdGlvbnMudGFiU3RyaW5nLmxlbmd0aCkpIAoJCQkJCQliZWZvcmVfYXJyW2JlZm9yZV9hcnIubGVuZ3RoLTFdID0gYmVmb3JlX2FycltiZWZvcmVfYXJyLmxlbmd0aC0xXS5zdWJzdHJpbmcob3B0aW9ucy50YWJTdHJpbmcubGVuZ3RoKTsKCQkJCQllbHNlIGlmICghc2hmdCkgYmVmb3JlX2FycltiZWZvcmVfYXJyLmxlbmd0aC0xXSA9IG9wdGlvbnMudGFiU3RyaW5nICsgYmVmb3JlX2FycltiZWZvcmVfYXJyLmxlbmd0aC0xXTsKCQkJCX0KCQkJCQoJCQkJZm9yICh2YXIgaSA9IDE7IGkgPCBzZWxlY3Rpb25fYXJyLmxlbmd0aDsgaSsrKSB7CgkJCQkJaWYgKHNoZnQgJiYgb3B0aW9ucy50YWJTdHJpbmcgPT0gc2VsZWN0aW9uX2FycltpXS5zdWJzdHJpbmcoMCxvcHRpb25zLnRhYlN0cmluZy5sZW5ndGgpKQoJCQkJCQlzZWxlY3Rpb25fYXJyW2ldID0gc2VsZWN0aW9uX2FycltpXS5zdWJzdHJpbmcob3B0aW9ucy50YWJTdHJpbmcubGVuZ3RoKTsKCQkJCQllbHNlIGlmICghc2hmdCkgc2VsZWN0aW9uX2FycltpXSA9IG9wdGlvbnMudGFiU3RyaW5nICsgc2VsZWN0aW9uX2FycltpXTsKCQkJCX0KCQkJCQoJCQkJaWYgKDEgPT0gYmVmb3JlX2Fyci5sZW5ndGggJiYgMCA9PSBiZWZvcmVfbGVuKSB7CgkJCQkJaWYgKHNoZnQgJiYgb3B0aW9ucy50YWJTdHJpbmcgPT0gc2VsZWN0aW9uX2FyclswXS5zdWJzdHJpbmcoMCxvcHRpb25zLnRhYlN0cmluZy5sZW5ndGgpKQoJCQkJCQlzZWxlY3Rpb25fYXJyWzBdID0gc2VsZWN0aW9uX2FyclswXS5zdWJzdHJpbmcob3B0aW9ucy50YWJTdHJpbmcubGVuZ3RoKTsKCQkJCQllbHNlIGlmICghc2hmdCkgc2VsZWN0aW9uX2FyclswXSA9IG9wdGlvbnMudGFiU3RyaW5nICsgc2VsZWN0aW9uX2FyclswXTsKCQkJCX0KCgkJCQlpZiAoKGJlZm9yZV9sZW4gKyBzZWxlY3Rpb25fbGVuICsgYWZ0ZXJfdGV4dC5sZW5ndGgpIDwgY2hlY2tfaHRtbC5sZW5ndGgpIHsKCQkJCQlzZWxlY3Rpb25fYXJyLnB1c2goIiIpOwoJCQkJCXNlbGVjdGlvbl9sZW4gKz0gMjsgLy8gZm9yIHRoZSBcclxuIHRoYXQgd2FzIHRyaW1tZWQKCQkJCX0KCQkJCQoJCQkJYmVmb3JlX3JhbmdlLnRleHQgPSBiZWZvcmVfYXJyLmpvaW4oIlxyXG4iKTsKCQkJCXJhbmdlLnRleHQgPSBzZWxlY3Rpb25fYXJyLmpvaW4oIlxyXG4iKTsKCQkJCQoJCQkJdmFyIG5ld19yYW5nZSA9IGRvY3VtZW50LmJvZHkuY3JlYXRlVGV4dFJhbmdlKCk7CgkJCQluZXdfcmFuZ2UubW92ZVRvRWxlbWVudFRleHQobyk7CgkJCQkKCQkJCWlmICgwIDwgYmVmb3JlX2xlbikJbmV3X3JhbmdlLnNldEVuZFBvaW50KCJTdGFydFRvRW5kIiwgYmVmb3JlX3JhbmdlKTsKCQkJCWVsc2UgbmV3X3JhbmdlLnNldEVuZFBvaW50KCJTdGFydFRvU3RhcnQiLCBiZWZvcmVfcmFuZ2UpOwoJCQkJbmV3X3JhbmdlLnNldEVuZFBvaW50KCJFbmRUb0VuZCIsIHJhbmdlKTsKCQkJCQoJCQkJbmV3X3JhbmdlLnNlbGVjdCgpOwoJCQkJCgkJCX0gCgkJfQoJfQoKLy8gZW5kIG9mIGNsb3N1cmUKfSkoalF1ZXJ5KTsK]]></data>
	</file>
	<file>
	  <filename>/includes/ME_1.00.00.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/includes/themes/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/includes/themes/blue/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/includes/themes/blue/asc.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhFQAEAIAAACMtMP///yH5BAEAAAEALAAAAAAVAAQAAAINjB+gC+jP2ptn0WskLQA7]]></data>
	</file>
	<file>
	  <filename>/includes/themes/blue/bg.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhFQAJAIAAACMtMP///yH5BAEAAAEALAAAAAAVAAkAAAIXjI+AywnaYnhUMoqt3gZXPmVg94yJVQAAOw==]]></data>
	</file>
	<file>
	  <filename>/includes/themes/blue/desc.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhFQAEAIAAACMtMP///yH5BAEAAAEALAAAAAAVAAQAAAINjI8Bya2wnINUMopZAQA7]]></data>
	</file>
	<file>
	  <filename>/includes/themes/blue/style.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyogdGFibGVzICovCnRhYmxlLnRhYmxlc29ydGVyIHsKCWZvbnQtZmFtaWx5OmFyaWFsOwoJYmFja2dyb3VuZC1jb2xvcjogI0NEQ0RDRDsKCW1hcmdpbjoxMHB4IDBwdCAxNXB4OwoJZm9udC1zaXplOiA4cHQ7Cgl3aWR0aDogMTAwJTsKCXRleHQtYWxpZ246IGxlZnQ7Cn0KdGFibGUudGFibGVzb3J0ZXIgdGhlYWQgdHIgdGgsIHRhYmxlLnRhYmxlc29ydGVyIHRmb290IHRyIHRoIHsKCWJhY2tncm91bmQtY29sb3I6ICNlNkVFRUU7Cglib3JkZXI6IDFweCBzb2xpZCAjRkZGOwoJZm9udC1zaXplOiA4cHQ7CglwYWRkaW5nOiA0cHg7Cn0KdGFibGUudGFibGVzb3J0ZXIgdGhlYWQgdHIgLmhlYWRlciB7CgliYWNrZ3JvdW5kLWltYWdlOiB1cmwoYmcuZ2lmKTsKCWJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7CgliYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgcmlnaHQ7CgljdXJzb3I6IHBvaW50ZXI7Cn0KdGFibGUudGFibGVzb3J0ZXIgdGJvZHkgdGQgewoJY29sb3I6ICMzRDNEM0Q7CglwYWRkaW5nOiA0cHg7CgliYWNrZ3JvdW5kLWNvbG9yOiAjRkZGOwoJdmVydGljYWwtYWxpZ246IHRvcDsKfQp0YWJsZS50YWJsZXNvcnRlciB0Ym9keSB0ci5vZGQgdGQgewoJYmFja2dyb3VuZC1jb2xvcjojRjBGMEY2Owp9CnRhYmxlLnRhYmxlc29ydGVyIHRoZWFkIHRyIC5oZWFkZXJTb3J0VXAgewoJYmFja2dyb3VuZC1pbWFnZTogdXJsKGFzYy5naWYpOwp9CnRhYmxlLnRhYmxlc29ydGVyIHRoZWFkIHRyIC5oZWFkZXJTb3J0RG93biB7CgliYWNrZ3JvdW5kLWltYWdlOiB1cmwoZGVzYy5naWYpOwp9CnRhYmxlLnRhYmxlc29ydGVyIHRoZWFkIHRyIC5oZWFkZXJTb3J0RG93biwgdGFibGUudGFibGVzb3J0ZXIgdGhlYWQgdHIgLmhlYWRlclNvcnRVcCB7CmJhY2tncm91bmQtY29sb3I6ICM4ZGJkZDg7Cn0K]]></data>
	</file>
	<file>
	  <filename>/includes/themes/green/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/includes/themes/green/asc.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/includes/themes/green/bg.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/includes/themes/green/desc.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/includes/themes/green/style.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[dGFibGUudGFibGVzb3J0ZXIgewoJZm9udC1zaXplOiAxMnB4OwoJYmFja2dyb3VuZC1jb2xvcjogIzRENEQ0RDsKCXdpZHRoOiAxMDI0cHg7Cglib3JkZXI6IDFweCBzb2xpZCAjMDAwOwp9CnRhYmxlLnRhYmxlc29ydGVyIHRoIHsKCXRleHQtYWxpZ246IGxlZnQ7CglwYWRkaW5nOiA1cHg7CgliYWNrZ3JvdW5kLWNvbG9yOiAjNkU2RTZFOwp9CnRhYmxlLnRhYmxlc29ydGVyIHRkIHsKCWNvbG9yOiAjRkZGOwoJcGFkZGluZzogNXB4Owp9CnRhYmxlLnRhYmxlc29ydGVyIC5ldmVuIHsKCWJhY2tncm91bmQtY29sb3I6ICMzRDNEM0Q7Cn0KdGFibGUudGFibGVzb3J0ZXIgLm9kZCB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjNkU2RTZFOwp9CnRhYmxlLnRhYmxlc29ydGVyIC5oZWFkZXIgewoJYmFja2dyb3VuZC1pbWFnZTogdXJsKGJnLnBuZyk7CgliYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OwoJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjRkZGOwoJYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgIzAwMDsKCWJvcmRlci10b3A6IDFweCBzb2xpZCAjRkZGOwoJcGFkZGluZy1sZWZ0OiAzMHB4OwoJcGFkZGluZy10b3A6IDhweDsKCWhlaWdodDogYXV0bzsKfQp0YWJsZS50YWJsZXNvcnRlciAuaGVhZGVyU29ydFVwIHsKCWJhY2tncm91bmQtaW1hZ2U6IHVybChhc2MucG5nKTsKCWJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7Cn0KdGFibGUudGFibGVzb3J0ZXIgLmhlYWRlclNvcnREb3duIHsKCWJhY2tncm91bmQtaW1hZ2U6IHVybChkZXNjLnBuZyk7CgliYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0Owp9]]></data>
	</file>
	<file>
	  <filename>/includes/zeroclipboard/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/includes/zeroclipboard/ZeroClipboard.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gU2ltcGxlIFNldCBDbGlwYm9hcmQgU3lzdGVtCi8vIEF1dGhvcjogSm9zZXBoIEh1Y2thYnkKCnZhciBaZXJvQ2xpcGJvYXJkID0gewoJCgl2ZXJzaW9uOiAiMS4wLjciLAoJY2xpZW50czoge30sIC8vIHJlZ2lzdGVyZWQgdXBsb2FkIGNsaWVudHMgb24gcGFnZSwgaW5kZXhlZCBieSBpZAoJbW92aWVQYXRoOiAnWmVyb0NsaXBib2FyZC5zd2YnLCAvLyBVUkwgdG8gbW92aWUKCW5leHRJZDogMSwgLy8gSUQgb2YgbmV4dCBtb3ZpZQoJCgkkOiBmdW5jdGlvbih0aGluZ3kpIHsKCQkvLyBzaW1wbGUgRE9NIGxvb2t1cCB1dGlsaXR5IGZ1bmN0aW9uCgkJaWYgKHR5cGVvZih0aGluZ3kpID09ICdzdHJpbmcnKSB0aGluZ3kgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGluZ3kpOwoJCWlmICghdGhpbmd5LmFkZENsYXNzKSB7CgkJCS8vIGV4dGVuZCBlbGVtZW50IHdpdGggYSBmZXcgdXNlZnVsIG1ldGhvZHMKCQkJdGhpbmd5LmhpZGUgPSBmdW5jdGlvbigpIHsgdGhpcy5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOyB9OwoJCQl0aGluZ3kuc2hvdyA9IGZ1bmN0aW9uKCkgeyB0aGlzLnN0eWxlLmRpc3BsYXkgPSAnJzsgfTsKCQkJdGhpbmd5LmFkZENsYXNzID0gZnVuY3Rpb24obmFtZSkgeyB0aGlzLnJlbW92ZUNsYXNzKG5hbWUpOyB0aGlzLmNsYXNzTmFtZSArPSAnICcgKyBuYW1lOyB9OwoJCQl0aGluZ3kucmVtb3ZlQ2xhc3MgPSBmdW5jdGlvbihuYW1lKSB7CgkJCQl2YXIgY2xhc3NlcyA9IHRoaXMuY2xhc3NOYW1lLnNwbGl0KC9ccysvKTsKCQkJCXZhciBpZHggPSAtMTsKCQkJCWZvciAodmFyIGsgPSAwOyBrIDwgY2xhc3Nlcy5sZW5ndGg7IGsrKykgewoJCQkJCWlmIChjbGFzc2VzW2tdID09IG5hbWUpIHsgaWR4ID0gazsgayA9IGNsYXNzZXMubGVuZ3RoOyB9CgkJCQl9CgkJCQlpZiAoaWR4ID4gLTEpIHsKCQkJCQljbGFzc2VzLnNwbGljZSggaWR4LCAxICk7CgkJCQkJdGhpcy5jbGFzc05hbWUgPSBjbGFzc2VzLmpvaW4oJyAnKTsKCQkJCX0KCQkJCXJldHVybiB0aGlzOwoJCQl9OwoJCQl0aGluZ3kuaGFzQ2xhc3MgPSBmdW5jdGlvbihuYW1lKSB7CgkJCQlyZXR1cm4gISF0aGlzLmNsYXNzTmFtZS5tYXRjaCggbmV3IFJlZ0V4cCgiXFxzKiIgKyBuYW1lICsgIlxccyoiKSApOwoJCQl9OwoJCX0KCQlyZXR1cm4gdGhpbmd5OwoJfSwKCQoJc2V0TW92aWVQYXRoOiBmdW5jdGlvbihwYXRoKSB7CgkJLy8gc2V0IHBhdGggdG8gWmVyb0NsaXBib2FyZC5zd2YKCQl0aGlzLm1vdmllUGF0aCA9IHBhdGg7Cgl9LAoJCglkaXNwYXRjaDogZnVuY3Rpb24oaWQsIGV2ZW50TmFtZSwgYXJncykgewoJCS8vIHJlY2VpdmUgZXZlbnQgZnJvbSBmbGFzaCBtb3ZpZSwgc2VuZCB0byBjbGllbnQJCQoJCXZhciBjbGllbnQgPSB0aGlzLmNsaWVudHNbaWRdOwoJCWlmIChjbGllbnQpIHsKCQkJY2xpZW50LnJlY2VpdmVFdmVudChldmVudE5hbWUsIGFyZ3MpOwoJCX0KCX0sCgkKCXJlZ2lzdGVyOiBmdW5jdGlvbihpZCwgY2xpZW50KSB7CgkJLy8gcmVnaXN0ZXIgbmV3IGNsaWVudCB0byByZWNlaXZlIGV2ZW50cwoJCXRoaXMuY2xpZW50c1tpZF0gPSBjbGllbnQ7Cgl9LAoJCglnZXRET01PYmplY3RQb3NpdGlvbjogZnVuY3Rpb24ob2JqLCBzdG9wT2JqKSB7CgkJLy8gZ2V0IGFic29sdXRlIGNvb3JkaW5hdGVzIGZvciBkb20gZWxlbWVudAoJCXZhciBpbmZvID0gewoJCQlsZWZ0OiAwLCAKCQkJdG9wOiAwLCAKCQkJd2lkdGg6IG9iai53aWR0aCA/IG9iai53aWR0aCA6IG9iai5vZmZzZXRXaWR0aCwgCgkJCWhlaWdodDogb2JqLmhlaWdodCA/IG9iai5oZWlnaHQgOiBvYmoub2Zmc2V0SGVpZ2h0CgkJfTsKCgkJd2hpbGUgKG9iaiAmJiAob2JqICE9IHN0b3BPYmopKSB7CgkJCWluZm8ubGVmdCArPSBvYmoub2Zmc2V0TGVmdDsKCQkJaW5mby50b3AgKz0gb2JqLm9mZnNldFRvcDsKCQkJb2JqID0gb2JqLm9mZnNldFBhcmVudDsKCQl9CgoJCXJldHVybiBpbmZvOwoJfSwKCQoJQ2xpZW50OiBmdW5jdGlvbihlbGVtKSB7CgkJLy8gY29uc3RydWN0b3IgZm9yIG5ldyBzaW1wbGUgdXBsb2FkIGNsaWVudAoJCXRoaXMuaGFuZGxlcnMgPSB7fTsKCQkKCQkvLyB1bmlxdWUgSUQKCQl0aGlzLmlkID0gWmVyb0NsaXBib2FyZC5uZXh0SWQrKzsKCQl0aGlzLm1vdmllSWQgPSAnWmVyb0NsaXBib2FyZE1vdmllXycgKyB0aGlzLmlkOwoJCQoJCS8vIHJlZ2lzdGVyIGNsaWVudCB3aXRoIHNpbmdsZXRvbiB0byByZWNlaXZlIGZsYXNoIGV2ZW50cwoJCVplcm9DbGlwYm9hcmQucmVnaXN0ZXIodGhpcy5pZCwgdGhpcyk7CgkJCgkJLy8gY3JlYXRlIG1vdmllCgkJaWYgKGVsZW0pIHRoaXMuZ2x1ZShlbGVtKTsKCX0KfTsKClplcm9DbGlwYm9hcmQuQ2xpZW50LnByb3RvdHlwZSA9IHsKCQoJaWQ6IDAsIC8vIHVuaXF1ZSBJRCBmb3IgdXMKCXJlYWR5OiBmYWxzZSwgLy8gd2hldGhlciBtb3ZpZSBpcyByZWFkeSB0byByZWNlaXZlIGV2ZW50cyBvciBub3QKCW1vdmllOiBudWxsLCAvLyByZWZlcmVuY2UgdG8gbW92aWUgb2JqZWN0CgljbGlwVGV4dDogJycsIC8vIHRleHQgdG8gY29weSB0byBjbGlwYm9hcmQKCWhhbmRDdXJzb3JFbmFibGVkOiB0cnVlLCAvLyB3aGV0aGVyIHRvIHNob3cgaGFuZCBjdXJzb3IsIG9yIGRlZmF1bHQgcG9pbnRlciBjdXJzb3IKCWNzc0VmZmVjdHM6IHRydWUsIC8vIGVuYWJsZSBDU1MgbW91c2UgZWZmZWN0cyBvbiBkb20gY29udGFpbmVyCgloYW5kbGVyczogbnVsbCwgLy8gdXNlciBldmVudCBoYW5kbGVycwoJCglnbHVlOiBmdW5jdGlvbihlbGVtLCBhcHBlbmRFbGVtLCBzdHlsZXNUb0FkZCkgewoJCS8vIGdsdWUgdG8gRE9NIGVsZW1lbnQKCQkvLyBlbGVtIGNhbiBiZSBJRCBvciBhY3R1YWwgRE9NIGVsZW1lbnQgb2JqZWN0CgkJdGhpcy5kb21FbGVtZW50ID0gWmVyb0NsaXBib2FyZC4kKGVsZW0pOwoJCQoJCS8vIGZsb2F0IGp1c3QgYWJvdmUgb2JqZWN0LCBvciB6SW5kZXggOTkgaWYgZG9tIGVsZW1lbnQgaXNuJ3Qgc2V0CgkJdmFyIHpJbmRleCA9IDk5OwoJCWlmICh0aGlzLmRvbUVsZW1lbnQuc3R5bGUuekluZGV4KSB7CgkJCXpJbmRleCA9IHBhcnNlSW50KHRoaXMuZG9tRWxlbWVudC5zdHlsZS56SW5kZXgsIDEwKSArIDE7CgkJfQoJCQoJCWlmICh0eXBlb2YoYXBwZW5kRWxlbSkgPT0gJ3N0cmluZycpIHsKCQkJYXBwZW5kRWxlbSA9IFplcm9DbGlwYm9hcmQuJChhcHBlbmRFbGVtKTsKCQl9CgkJZWxzZSBpZiAodHlwZW9mKGFwcGVuZEVsZW0pID09ICd1bmRlZmluZWQnKSB7CgkJCWFwcGVuZEVsZW0gPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnYm9keScpWzBdOwoJCX0KCQkKCQkvLyBmaW5kIFgvWSBwb3NpdGlvbiBvZiBkb21FbGVtZW50CgkJdmFyIGJveCA9IFplcm9DbGlwYm9hcmQuZ2V0RE9NT2JqZWN0UG9zaXRpb24odGhpcy5kb21FbGVtZW50LCBhcHBlbmRFbGVtKTsKCQkKCQkvLyBjcmVhdGUgZmxvYXRpbmcgRElWIGFib3ZlIGVsZW1lbnQKCQl0aGlzLmRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwoJCXZhciBzdHlsZSA9IHRoaXMuZGl2LnN0eWxlOwoJCXN0eWxlLnBvc2l0aW9uID0gJ2Fic29sdXRlJzsKCQlzdHlsZS5sZWZ0ID0gJycgKyBib3gubGVmdCArICdweCc7CgkJc3R5bGUudG9wID0gJycgKyBib3gudG9wICsgJ3B4JzsKCQlzdHlsZS53aWR0aCA9ICcnICsgYm94LndpZHRoICsgJ3B4JzsKCQlzdHlsZS5oZWlnaHQgPSAnJyArIGJveC5oZWlnaHQgKyAncHgnOwoJCXN0eWxlLnpJbmRleCA9IHpJbmRleDsKCQkKCQlpZiAodHlwZW9mKHN0eWxlc1RvQWRkKSA9PSAnb2JqZWN0JykgewoJCQlmb3IgKGFkZGVkU3R5bGUgaW4gc3R5bGVzVG9BZGQpIHsKCQkJCXN0eWxlW2FkZGVkU3R5bGVdID0gc3R5bGVzVG9BZGRbYWRkZWRTdHlsZV07CgkJCX0KCQl9CgkJCgkJLy8gc3R5bGUuYmFja2dyb3VuZENvbG9yID0gJyNmMDAnOyAvLyBkZWJ1ZwoJCQoJCWFwcGVuZEVsZW0uYXBwZW5kQ2hpbGQodGhpcy5kaXYpOwoJCQoJCXRoaXMuZGl2LmlubmVySFRNTCA9IHRoaXMuZ2V0SFRNTCggYm94LndpZHRoLCBib3guaGVpZ2h0ICk7Cgl9LAoJCglnZXRIVE1MOiBmdW5jdGlvbih3aWR0aCwgaGVpZ2h0KSB7CgkJLy8gcmV0dXJuIEhUTUwgZm9yIG1vdmllCgkJdmFyIGh0bWwgPSAnJzsKCQl2YXIgZmxhc2h2YXJzID0gJ2lkPScgKyB0aGlzLmlkICsgCgkJCScmd2lkdGg9JyArIHdpZHRoICsgCgkJCScmaGVpZ2h0PScgKyBoZWlnaHQ7CgkJCQoJCWlmIChuYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKC9NU0lFLykpIHsKCQkJLy8gSUUgZ2V0cyBhbiBPQkpFQ1QgdGFnCgkJCXZhciBwcm90b2NvbCA9IGxvY2F0aW9uLmhyZWYubWF0Y2goL15odHRwcy9pKSA/ICdodHRwczovLycgOiAnaHR0cDovLyc7CgkJCWh0bWwgKz0gJzxvYmplY3QgY2xhc3NpZD0iY2xzaWQ6ZDI3Y2RiNmUtYWU2ZC0xMWNmLTk2YjgtNDQ0NTUzNTQwMDAwIiBjb2RlYmFzZT0iJytwcm90b2NvbCsnZG93bmxvYWQubWFjcm9tZWRpYS5jb20vcHViL3Nob2Nrd2F2ZS9jYWJzL2ZsYXNoL3N3Zmxhc2guY2FiI3ZlcnNpb249OSwwLDAsMCIgd2lkdGg9Iicrd2lkdGgrJyIgaGVpZ2h0PSInK2hlaWdodCsnIiBpZD0iJyt0aGlzLm1vdmllSWQrJyIgYWxpZ249Im1pZGRsZSI+PHBhcmFtIG5hbWU9ImFsbG93U2NyaXB0QWNjZXNzIiB2YWx1ZT0iYWx3YXlzIiAvPjxwYXJhbSBuYW1lPSJhbGxvd0Z1bGxTY3JlZW4iIHZhbHVlPSJmYWxzZSIgLz48cGFyYW0gbmFtZT0ibW92aWUiIHZhbHVlPSInK1plcm9DbGlwYm9hcmQubW92aWVQYXRoKyciIC8+PHBhcmFtIG5hbWU9Imxvb3AiIHZhbHVlPSJmYWxzZSIgLz48cGFyYW0gbmFtZT0ibWVudSIgdmFsdWU9ImZhbHNlIiAvPjxwYXJhbSBuYW1lPSJxdWFsaXR5IiB2YWx1ZT0iYmVzdCIgLz48cGFyYW0gbmFtZT0iYmdjb2xvciIgdmFsdWU9IiNmZmZmZmYiIC8+PHBhcmFtIG5hbWU9ImZsYXNodmFycyIgdmFsdWU9IicrZmxhc2h2YXJzKyciLz48cGFyYW0gbmFtZT0id21vZGUiIHZhbHVlPSJ0cmFuc3BhcmVudCIvPjwvb2JqZWN0Pic7CgkJfQoJCWVsc2UgewoJCQkvLyBhbGwgb3RoZXIgYnJvd3NlcnMgZ2V0IGFuIEVNQkVEIHRhZwoJCQlodG1sICs9ICc8ZW1iZWQgaWQ9IicrdGhpcy5tb3ZpZUlkKyciIHNyYz0iJytaZXJvQ2xpcGJvYXJkLm1vdmllUGF0aCsnIiBsb29wPSJmYWxzZSIgbWVudT0iZmFsc2UiIHF1YWxpdHk9ImJlc3QiIGJnY29sb3I9IiNmZmZmZmYiIHdpZHRoPSInK3dpZHRoKyciIGhlaWdodD0iJytoZWlnaHQrJyIgbmFtZT0iJyt0aGlzLm1vdmllSWQrJyIgYWxpZ249Im1pZGRsZSIgYWxsb3dTY3JpcHRBY2Nlc3M9ImFsd2F5cyIgYWxsb3dGdWxsU2NyZWVuPSJmYWxzZSIgdHlwZT0iYXBwbGljYXRpb24veC1zaG9ja3dhdmUtZmxhc2giIHBsdWdpbnNwYWdlPSJodHRwOi8vd3d3Lm1hY3JvbWVkaWEuY29tL2dvL2dldGZsYXNocGxheWVyIiBmbGFzaHZhcnM9IicrZmxhc2h2YXJzKyciIHdtb2RlPSJ0cmFuc3BhcmVudCIgLz4nOwoJCX0KCQlyZXR1cm4gaHRtbDsKCX0sCgkKCWhpZGU6IGZ1bmN0aW9uKCkgewoJCS8vIHRlbXBvcmFyaWx5IGhpZGUgZmxvYXRlciBvZmZzY3JlZW4KCQlpZiAodGhpcy5kaXYpIHsKCQkJdGhpcy5kaXYuc3R5bGUubGVmdCA9ICctMjAwMHB4JzsKCQl9Cgl9LAoJCglzaG93OiBmdW5jdGlvbigpIHsKCQkvLyBzaG93IG91cnNlbHZlcyBhZnRlciBhIGNhbGwgdG8gaGlkZSgpCgkJdGhpcy5yZXBvc2l0aW9uKCk7Cgl9LAoJCglkZXN0cm95OiBmdW5jdGlvbigpIHsKCQkvLyBkZXN0cm95IGNvbnRyb2wgYW5kIGZsb2F0ZXIKCQlpZiAodGhpcy5kb21FbGVtZW50ICYmIHRoaXMuZGl2KSB7CgkJCXRoaXMuaGlkZSgpOwoJCQl0aGlzLmRpdi5pbm5lckhUTUwgPSAnJzsKCQkJCgkJCXZhciBib2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2JvZHknKVswXTsKCQkJdHJ5IHsgYm9keS5yZW1vdmVDaGlsZCggdGhpcy5kaXYgKTsgfSBjYXRjaChlKSB7O30KCQkJCgkJCXRoaXMuZG9tRWxlbWVudCA9IG51bGw7CgkJCXRoaXMuZGl2ID0gbnVsbDsKCQl9Cgl9LAoJCglyZXBvc2l0aW9uOiBmdW5jdGlvbihlbGVtKSB7CgkJLy8gcmVwb3NpdGlvbiBvdXIgZmxvYXRpbmcgZGl2LCBvcHRpb25hbGx5IHRvIG5ldyBjb250YWluZXIKCQkvLyB3YXJuaW5nOiBjb250YWluZXIgQ0FOTk9UIGNoYW5nZSBzaXplLCBvbmx5IHBvc2l0aW9uCgkJaWYgKGVsZW0pIHsKCQkJdGhpcy5kb21FbGVtZW50ID0gWmVyb0NsaXBib2FyZC4kKGVsZW0pOwoJCQlpZiAoIXRoaXMuZG9tRWxlbWVudCkgdGhpcy5oaWRlKCk7CgkJfQoJCQoJCWlmICh0aGlzLmRvbUVsZW1lbnQgJiYgdGhpcy5kaXYpIHsKCQkJdmFyIGJveCA9IFplcm9DbGlwYm9hcmQuZ2V0RE9NT2JqZWN0UG9zaXRpb24odGhpcy5kb21FbGVtZW50KTsKCQkJdmFyIHN0eWxlID0gdGhpcy5kaXYuc3R5bGU7CgkJCXN0eWxlLmxlZnQgPSAnJyArIGJveC5sZWZ0ICsgJ3B4JzsKCQkJc3R5bGUudG9wID0gJycgKyBib3gudG9wICsgJ3B4JzsKCQl9Cgl9LAoJCglzZXRUZXh0OiBmdW5jdGlvbihuZXdUZXh0KSB7CgkJLy8gc2V0IHRleHQgdG8gYmUgY29waWVkIHRvIGNsaXBib2FyZAoJCXRoaXMuY2xpcFRleHQgPSBuZXdUZXh0OwoJCWlmICh0aGlzLnJlYWR5KSB0aGlzLm1vdmllLnNldFRleHQobmV3VGV4dCk7Cgl9LAoJCglhZGRFdmVudExpc3RlbmVyOiBmdW5jdGlvbihldmVudE5hbWUsIGZ1bmMpIHsKCQkvLyBhZGQgdXNlciBldmVudCBsaXN0ZW5lciBmb3IgZXZlbnQKCQkvLyBldmVudCB0eXBlczogbG9hZCwgcXVldWVTdGFydCwgZmlsZVN0YXJ0LCBmaWxlQ29tcGxldGUsIHF1ZXVlQ29tcGxldGUsIHByb2dyZXNzLCBlcnJvciwgY2FuY2VsCgkJZXZlbnROYW1lID0gZXZlbnROYW1lLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9eb24vLCAnJyk7CgkJaWYgKCF0aGlzLmhhbmRsZXJzW2V2ZW50TmFtZV0pIHRoaXMuaGFuZGxlcnNbZXZlbnROYW1lXSA9IFtdOwoJCXRoaXMuaGFuZGxlcnNbZXZlbnROYW1lXS5wdXNoKGZ1bmMpOwoJfSwKCQoJc2V0SGFuZEN1cnNvcjogZnVuY3Rpb24oZW5hYmxlZCkgewoJCS8vIGVuYWJsZSBoYW5kIGN1cnNvciAodHJ1ZSksIG9yIGRlZmF1bHQgYXJyb3cgY3Vyc29yIChmYWxzZSkKCQl0aGlzLmhhbmRDdXJzb3JFbmFibGVkID0gZW5hYmxlZDsKCQlpZiAodGhpcy5yZWFkeSkgdGhpcy5tb3ZpZS5zZXRIYW5kQ3Vyc29yKGVuYWJsZWQpOwoJfSwKCQoJc2V0Q1NTRWZmZWN0czogZnVuY3Rpb24oZW5hYmxlZCkgewoJCS8vIGVuYWJsZSBvciBkaXNhYmxlIENTUyBlZmZlY3RzIG9uIERPTSBjb250YWluZXIKCQl0aGlzLmNzc0VmZmVjdHMgPSAhIWVuYWJsZWQ7Cgl9LAoJCglyZWNlaXZlRXZlbnQ6IGZ1bmN0aW9uKGV2ZW50TmFtZSwgYXJncykgewoJCS8vIHJlY2VpdmUgZXZlbnQgZnJvbSBmbGFzaAoJCWV2ZW50TmFtZSA9IGV2ZW50TmFtZS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvXm9uLywgJycpOwoJCQkJCgkJLy8gc3BlY2lhbCBiZWhhdmlvciBmb3IgY2VydGFpbiBldmVudHMKCQlzd2l0Y2ggKGV2ZW50TmFtZSkgewoJCQljYXNlICdsb2FkJzoKCQkJCS8vIG1vdmllIGNsYWltcyBpdCBpcyByZWFkeSwgYnV0IGluIElFIHRoaXMgaXNuJ3QgYWx3YXlzIHRoZSBjYXNlLi4uCgkJCQkvLyBidWcgZml4OiBDYW5ub3QgZXh0ZW5kIEVNQkVEIERPTSBlbGVtZW50cyBpbiBGaXJlZm94LCBtdXN0IHVzZSB0cmFkaXRpb25hbCBmdW5jdGlvbgoJCQkJdGhpcy5tb3ZpZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMubW92aWVJZCk7CgkJCQlpZiAoIXRoaXMubW92aWUpIHsKCQkJCQl2YXIgc2VsZiA9IHRoaXM7CgkJCQkJc2V0VGltZW91dCggZnVuY3Rpb24oKSB7IHNlbGYucmVjZWl2ZUV2ZW50KCdsb2FkJywgbnVsbCk7IH0sIDEgKTsKCQkJCQlyZXR1cm47CgkJCQl9CgkJCQkKCQkJCS8vIGZpcmVmb3ggb24gcGMgbmVlZHMgYSAia2ljayIgaW4gb3JkZXIgdG8gc2V0IHRoZXNlIGluIGNlcnRhaW4gY2FzZXMKCQkJCWlmICghdGhpcy5yZWFkeSAmJiBuYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKC9GaXJlZm94LykgJiYgbmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgvV2luZG93cy8pKSB7CgkJCQkJdmFyIHNlbGYgPSB0aGlzOwoJCQkJCXNldFRpbWVvdXQoIGZ1bmN0aW9uKCkgeyBzZWxmLnJlY2VpdmVFdmVudCgnbG9hZCcsIG51bGwpOyB9LCAxMDAgKTsKCQkJCQl0aGlzLnJlYWR5ID0gdHJ1ZTsKCQkJCQlyZXR1cm47CgkJCQl9CgkJCQkKCQkJCXRoaXMucmVhZHkgPSB0cnVlOwoJCQkJdGhpcy5tb3ZpZS5zZXRUZXh0KCB0aGlzLmNsaXBUZXh0ICk7CgkJCQl0aGlzLm1vdmllLnNldEhhbmRDdXJzb3IoIHRoaXMuaGFuZEN1cnNvckVuYWJsZWQgKTsKCQkJCWJyZWFrOwoJCQkKCQkJY2FzZSAnbW91c2VvdmVyJzoKCQkJCWlmICh0aGlzLmRvbUVsZW1lbnQgJiYgdGhpcy5jc3NFZmZlY3RzKSB7CgkJCQkJdGhpcy5kb21FbGVtZW50LmFkZENsYXNzKCdob3ZlcicpOwoJCQkJCWlmICh0aGlzLnJlY292ZXJBY3RpdmUpIHRoaXMuZG9tRWxlbWVudC5hZGRDbGFzcygnYWN0aXZlJyk7CgkJCQl9CgkJCQlicmVhazsKCQkJCgkJCWNhc2UgJ21vdXNlb3V0JzoKCQkJCWlmICh0aGlzLmRvbUVsZW1lbnQgJiYgdGhpcy5jc3NFZmZlY3RzKSB7CgkJCQkJdGhpcy5yZWNvdmVyQWN0aXZlID0gZmFsc2U7CgkJCQkJaWYgKHRoaXMuZG9tRWxlbWVudC5oYXNDbGFzcygnYWN0aXZlJykpIHsKCQkJCQkJdGhpcy5kb21FbGVtZW50LnJlbW92ZUNsYXNzKCdhY3RpdmUnKTsKCQkJCQkJdGhpcy5yZWNvdmVyQWN0aXZlID0gdHJ1ZTsKCQkJCQl9CgkJCQkJdGhpcy5kb21FbGVtZW50LnJlbW92ZUNsYXNzKCdob3ZlcicpOwoJCQkJfQoJCQkJYnJlYWs7CgkJCQoJCQljYXNlICdtb3VzZWRvd24nOgoJCQkJaWYgKHRoaXMuZG9tRWxlbWVudCAmJiB0aGlzLmNzc0VmZmVjdHMpIHsKCQkJCQl0aGlzLmRvbUVsZW1lbnQuYWRkQ2xhc3MoJ2FjdGl2ZScpOwoJCQkJfQoJCQkJYnJlYWs7CgkJCQoJCQljYXNlICdtb3VzZXVwJzoKCQkJCWlmICh0aGlzLmRvbUVsZW1lbnQgJiYgdGhpcy5jc3NFZmZlY3RzKSB7CgkJCQkJdGhpcy5kb21FbGVtZW50LnJlbW92ZUNsYXNzKCdhY3RpdmUnKTsKCQkJCQl0aGlzLnJlY292ZXJBY3RpdmUgPSBmYWxzZTsKCQkJCX0KCQkJCWJyZWFrOwoJCX0gLy8gc3dpdGNoIGV2ZW50TmFtZQoJCQoJCWlmICh0aGlzLmhhbmRsZXJzW2V2ZW50TmFtZV0pIHsKCQkJZm9yICh2YXIgaWR4ID0gMCwgbGVuID0gdGhpcy5oYW5kbGVyc1tldmVudE5hbWVdLmxlbmd0aDsgaWR4IDwgbGVuOyBpZHgrKykgewoJCQkJdmFyIGZ1bmMgPSB0aGlzLmhhbmRsZXJzW2V2ZW50TmFtZV1baWR4XTsKCQkJCgkJCQlpZiAodHlwZW9mKGZ1bmMpID09ICdmdW5jdGlvbicpIHsKCQkJCQkvLyBhY3R1YWwgZnVuY3Rpb24gcmVmZXJlbmNlCgkJCQkJZnVuYyh0aGlzLCBhcmdzKTsKCQkJCX0KCQkJCWVsc2UgaWYgKCh0eXBlb2YoZnVuYykgPT0gJ29iamVjdCcpICYmIChmdW5jLmxlbmd0aCA9PSAyKSkgewoJCQkJCS8vIFBIUCBzdHlsZSBvYmplY3QgKyBtZXRob2QsIGkuZS4gW215T2JqZWN0LCAnbXlNZXRob2QnXQoJCQkJCWZ1bmNbMF1bIGZ1bmNbMV0gXSh0aGlzLCBhcmdzKTsKCQkJCX0KCQkJCWVsc2UgaWYgKHR5cGVvZihmdW5jKSA9PSAnc3RyaW5nJykgewoJCQkJCS8vIG5hbWUgb2YgZnVuY3Rpb24KCQkJCQl3aW5kb3dbZnVuY10odGhpcywgYXJncyk7CgkJCQl9CgkJCX0gLy8gZm9yZWFjaCBldmVudCBoYW5kbGVyIGRlZmluZWQKCQl9IC8vIHVzZXIgZGVmaW5lZCBoYW5kbGVyIGZvciBldmVudAoJfQoJCn07Cg==]]></data>
	</file>
	<file>
	  <filename>/includes/zeroclipboard/ZeroClipboard.swf</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Q1dTCYgGAAB4nH1V61LbRhTeXV2OJNsYczFgIEC4JCGABSRpSy+B2JDQQtWJocl0BqK1tUZqhOSRZAj/8ih9hz5AXsGZTl+ndHUhxU2nO56z3/l05uye7+wc6xr6DeUxqpcUhFCNXF9ffxjNcYhRo8U8NruO0IeRLTkm+BpEa4i8/+t3GRGUrRf5tktDe41dMC8Kpd14Q/DM911GPfHCd6zCLyzwa67Tafo0sAppuOWEHZdeyY1O4ERMbnajyPcKIYteUM+qdYPQD/It12m9jX2XBcSx5EYUON6ZwunOEXsXAY+O94HsAu8iFnjULe1mYN/je5u2WLnvAsnRNGrZ6rnfDZlxwQKxRV1XSd1ulPJ1/9KDBB13pDCiZ2ygEdsGj2WHvsXU3dc7taM3e/tHanjDZVqEV2HEzpUGa3V5dVd4Ocfz+5d1/5w6nnbgU4sF+17bFwPfjzT3k691aEDPGb92KBvNX1krmrOjqLNVrVLLb7K1ln9e3WlsVjd0/Um12XXcyPFy6ZHdyHHDkT5tt1JtF/rJerqn6Wu+F/ErsWCmPyiRjrYi54KlgZP/k2Tq9gPYSh5APZOYBVra2VicAtfyn+4qZwHt2E4rVJvszPH2HNcVD2lkS5eOxW3b9f1AtplzZkeKFdDLl/wkibodmyrUsmq241raYdye5ECpdrBf+2GQf0ncA4c3gJelHRrHjd03xs+7L9UMHh9lZN149aOSwuOfcnFO3qQmbb0V44aoSVEXlHeikXQzz1/bpzek8E50XN6o4r/KLfQpU/pMx/J/yz9cxmWhDOOyhMqD5SkJjQnKYnmpIlfuVe5XHlSWKw8rC6QoEayoWk7MFwaKg6Whx4AJEBGIBEQGQQFJBaKBlAMpD6QA0gCQIsglICNAxkGYAFIBMgkwDWQGhFkgc0DuApkHsqDmMZAVIKtA1oBUgejqOmc21E1uHwF5DOQJ4C+AfAnkKyBbQL4G8g2Qb4F8B+o2wA6QZ4DrIOyCsAfCcw0lUwR/ZvgiOP3IhwgWcDZIsCipIpJkPmskBBiBgpGiIqQJOJdYPqbiOaRiUcRIQ5hrIfT055ySiKYVzMLKkKmuDM8aAyInyW1yNCOF22Q5I8Xb5FhGSjLR8n/gnv5q+U+9t4/MojnYLtEhc3jljjGCGT4Z7bXL7bG9Udwefz9xjk9Vhl3crtjqqXwifS8hWzblJToZmylTbk+vYuMOjsECWjZnkuDZvTmcwbscGvOiKVcxXThZNGVjkQebS+17pmLcJwl8sI1v4PI2uYEPt4UbuLItxrCwoplgrMagaOZTENf2NK0NryE8gWRCVE3p6ae5j3aOFwyZb8of6RT3FYn7Y9yvmjlDx1mKGncSfVTC9Z/v6QyZE7q5rpsburmpm490U+K/12g6WXYc+nR4CKX/H31zGG1z5m9Pt5ok]]></data>
	</file>
	<file>
	  <filename>/includes/zeroclipboard/ZeroClipboard10.swf</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Q1dTChQHAAB4nH1V63LTRhTeXUs6kmzHzs0QE0iAcAshVriTXkiwHQjEqIOdwnSGQWt5FanIkkeSE/jHo/Qd+gD86QOIH/3fJyldXXAT6HRHc853Ph3t7rnMkaai31AJo9a0jBBqks+fP3+cL3KIUddkHlveQOjj3B9SQvBVReuIfPj7dwkRlK/nJculob3ODpkXhWI7UQge+b7LqCcc+s6g8gsL/KbrjPo+DQYbWjn7YOCEI5e+l7qjwImY1B9Hke+VQxY9od6gOQ5CPyiZrmO+TWyXBcQZSN0ocLwDmdOjHnsXAfdO9FR+hXcRCzzqTrdzsOtxbVGT1U5cIT2aRqatDP1xyPRDFggmdV05M8dRxrf8Iw9StD8Sw4gesKluIrvcl3X8AVPar7abvTc7uz0l/MLl2QjfhxEbyl1mjnl07/Fqke/vH7X8IXU8dc+nAxbsepYvBL4fqe7EVkc0oEPGrx1Kev9XZkbn7SgabTYadOD32brpDxvb3VuNm5p2t9EfO27keMXsyHHkuOHcidxuZrldOUm2Mp1t3/S9iF+JBUsnndLUUTNyDlnmeOZ/Nlk83gKbaQu08hSzQM0qmySnzHP5b3Xlg4CObMcMlT47cLwdx3WFDo1s8cgZcGm5vh9INnMO7EgeBPToBT9JpO7IpjIdDJq24w7UTlKe9ECxubfbfFblb1Jzz+EF4GGpHX2/236j/9x+oeRwv5eTLf3lczmD+z8Vkz15kfrUfCskBVHSoA5pEH5pWBa+jfyRMumj6kFyAnUnhGjypg+qE3vHD4Y0Cou99iveJvqLznYvadkWjWjxSa+zl3Myr+rI5UWvfJW68oksT39Tk9p/l3KuhmuFGpyWRFSr1hZFdKogX6pdrkv1K/Wr9Wv11fr1+kptm1REgmVFLQql8lSlOj2zCZgAEYCIQCQoyCAqQFQQiyCWgJRBnAJSAWkayByQ01BYAFIHcgbgLJAlKCwDOQ/kApCLQFaUEgayBuQGkHUgDSCassGZm8otLm8DuQPkLuB7QO4DeQBkE8h3QL4H8gOQH0HZgtlHQJpAWjDbBrID5DGQJ4CfQuEZFPag0FFROqTwN4IvgrOXfEbhAs7nFBZERUCixEeZiAAjkDGSFYTUAi6mkk/BZMwpWBAwUhHmqSnE2mNOiURVy0Z5bcZQ1maX9SmBk+Q4OZ+TheNkLSeF4+SpnBQlopb+wrH2cvVPLd5FRsWoWtN0xphdO6fPYYZfz8dWzTq1M4+t0x8Whjhm2MVW3Vbi1+JTEdlSbEmX6ZlULnJpnb2B9XM4RSto1VhK/Zd3zuMcXuBQvyhwhwamK68vcaBfSvyNy9aV2JL1qyQzrm3hCV7dIhN8faswwWtbAsc8JjW2QL+RoEpslTI0E1vK2sMsULyO8AKSCFFUiLX4k13kwUNiKty0pE90kROyyIk7sWY0LE3fQIkyblq3Yquo3ya5dSe38v13EzNNpUJ4qS7GGkPGgmbc1Yx7mnFfMx5ohsifV+hsuuzE9eHsHMr+ZF/9ktAW5/4BvdnQmw==]]></data>
	</file>
	<file>
	  <filename>/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/lang/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/en_US.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KDQokbGFuZ1snZnJpZW5kbHluYW1lJ10gPSAnU2NyaXB0IERlcGxveSc7DQokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdUaGUgZmlyc3Qgc3RvcCB5b3VcJ2xsIHdhbnQgdG8gbWFrZSBpcyB0aGUgaGVscCc7DQokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ1BsZWFzZSBmZWVsIGZyZWUgdG8gbGV0IHVzIGtub3cgaWYgdGhlcmUgaXMgYSB3YXkgdG8gbWFrZSBTY3JpcHREZXBsb3kgYmV0dGVyLCA8YSBocmVmPSJodHRwOi8vaGVscC5jb3JiZW5zcHJvZHVjdHMuY29tL21ha2UtY29udGFjdC5odG1sIj5Db250YWN0IHVzIHdlXCdlciBoYXBweSB0byBoZWFyIGZyb20geW91LjwvYT4nOw0KJGxhbmdbJ3JlYWxseV91bmluc3RhbGwnXSA9ICdVbmluc3RhbGxpbmcgdGhpcyBtb2R1bGUgd2lsbCBub3QgYWZmZWN0IGFueSBldmVudCBkYXRhIGFuZCBhbGwgYm9va3MgdG8gZGF0ZSB3aWxsIHN0aWxsIGJlIHRoZXJlLiBEbyB5b3Ugd2lzaCB0byBjb250aW51ZT8nOw0KJGxhbmdbJ3VuaW5zdGFsbGVkJ10gPSAnTW9kdWxlIFVuaW5zdGFsbGVkLic7DQokbGFuZ1snaW5zdGFsbGVkJ10gPSAnTW9kdWxlIHZlcnNpb24gJXMgaW5zdGFsbGVkLic7DQokbGFuZ1sndXBncmFkZWQnXSA9ICdNb2R1bGUgdXBncmFkZWQgdG8gdmVyc2lvbiAlcy4nOw0KDQovLy9BZG1pbg0KJGxhbmdbJ21vZHVsZV9vcHRpb25zJ10gPSAnTW9kdWxlIE9wdGlvbnMnOw0KJGxhbmdbJ3RlbXBsYXRlX21hbmcnXSA9ICdUZW1wbGF0ZSBNYW5hZ2VtZW50JzsNCiRsYW5nWydEZXBsb3ltZW50c2V0dGluZ3MnXSA9ICdEZXBsb3ltZW50IE9wdGlvbnMnOw0KJGxhbmdbJ1ZhbHNldHRpbmdzJ10gPSAnVmFsaWRhdGlvbiBzZXR0aW5ncyc7DQoNCg0KDQoNCi8vbGFuZyBhcnJheSB2YWx1ZXMNCiRsYW5nWyJlbiJdPSdFbmdsaXNoJzsNCiRsYW5nWyJmciJdPSdGcmFuJmNjZWRpbDthaXMgKEZyZW5jaCknOw0KJGxhbmdbIml0Il09J0l0YWxpYW5vIChJdGFsaWFuKSc7DQokbGFuZ1sia28iXT0nS29yZWFuJzsNCiRsYW5nWyJqYSJdPSdKYXBhbmVzZSc7DQokbGFuZ1siZXMiXT0nRXNwYSZudGlsZGU7b2wgKFNwYW5pc2gpJzsNCiRsYW5nWyJ6aC1jbiJdPSdDaGluZXNlJzsNCiRsYW5nWyJubCJdPSdOZWRlcmxhbmRzIChEdXRjaCknOw0KJGxhbmdbImRlIl09J0RldXRzY2ggKEdlcm1hbiknOw0KJGxhbmdbInBsIl09J1BvbHNraSAoUG9saXNoKSc7DQokbGFuZ1sicm8iXT0nUm9tYW5pYW4nOw0KJGxhbmdbImNzIl09JyYjMjAwO2UmIzM1Mzt0aW5hJzsNCiRsYW5nWyJiZyJdPSdCdWxnYXJpYSc7DQokbGFuZ1sic3YiXT0nU3ZlbnNrYSc7DQokbGFuZ1siZmEiXT0nUGVyc2lhbiAoRmFyc2kpJzsNCiRsYW5nWyJydSJdPSdSdXNzaWFuICc7DQokbGFuZ1sicHQtQlIiXT0nIEJyYXppbGxpYW4gUG9ydHVndWVzZSAoc3RhbmRhcmQpJzsNCg0KDQoNCg0KJGxhbmdbIkxub25lIl09J05vIFdhcm5pbmdzJzsNCiRsYW5nWyJMMCJdPSdMZXZlbCAwJzsNCiRsYW5nWyJMMSJdPSdMZXZlbCAxJzsNCiRsYW5nWyJMMiJdPSdMZXZlbCAyJzsNCg0KDQokbGFuZ1siY3NzMSJdPSdDU1MgMSc7DQokbGFuZ1siY3NzMiJdPSdDU1MgMic7DQokbGFuZ1siY3NzMjEiXT0nQ1NTIDIuMSc7DQokbGFuZ1siY3NzMyJdPSdDU1MgMyc7DQokbGFuZ1sic3ZnIl09J1NWRyc7DQokbGFuZ1sic3ZnYmFzaWMiXT0nU1ZHIGJhc2ljJzsNCiRsYW5nWyJzdmd0aW55Il09J1NWRyB0aW55JzsNCiRsYW5nWyJtb2JpbGUiXT0nbW9iaWxlJzsNCiRsYW5nWyJhdHNjLXR2Il09J2F0c2MtdHYnOw0KJGxhbmdbInR2Il09J1RWJzsNCiRsYW5nWyJub25lIl09J25vbmUnOw0KDQoNCg0KJGxhbmdbJ0lubGluZSddPSdkZXRlY3QgYXV0b21hdGljYWxseSc7DQokbGFuZ1snSFRNTDUnXT0nSFRNTDUgKGV4cGVyaW1lbnRhbCknOw0KJGxhbmdbJ1hIVE1MIDEuMCBTdHJpY3QnXT0nWEhUTUwgMS4wIFN0cmljdCc7DQokbGFuZ1snWEhUTUwgMS4wIFRyYW5zaXRpb25hbCddPSdYSFRNTCAxLjAgVHJhbnNpdGlvbmFsJzsNCiRsYW5nWydYSFRNTCAxLjAgRnJhbWVzZXQnXT0nWEhUTUwgMS4wIEZyYW1lc2V0JzsNCiRsYW5nWydIVE1MIDQuMDEgU3RyaWN0J109J0hUTUwgNC4wMSBTdHJpY3QnOw0KJGxhbmdbJ0hUTUwgNC4wMSBUcmFuc2l0aW9uYWwnXT0nSFRNTCA0LjAxIFRyYW5zaXRpb25hbCc7DQokbGFuZ1snSFRNTCA0LjAxIEZyYW1lc2V0J109J0hUTUwgNC4wMSBGcmFtZXNldCc7DQokbGFuZ1snSFRNTCAzLjInXT0nSFRNTCAzLjInOw0KJGxhbmdbJ0hUTUwgMi4wJ109J0hUTUwgMi4wJzsNCiRsYW5nWydJU08vSUVDIDE1NDQ1OjIwMDAgKCZxdW90O0lTTyBIVE1MJnF1b3Q7KSddPSdJU08vSUVDIDE1NDQ1OjIwMDAgKCJJU08gSFRNTCIpJzsNCiRsYW5nWydYSFRNTCAxLjEnXT0nWEhUTUwgMS4xJzsNCiRsYW5nWydYSFRNTCArIFJERmEnXT0nWEhUTUwgKyBSREZhJzsNCiRsYW5nWydYSFRNTCBCYXNpYyAxLjAnXT0nWEhUTUwgQmFzaWMgMS4wJzsNCiRsYW5nWydYSFRNTCBCYXNpYyAxLjEnXT0nWEhUTUwgQmFzaWMgMS4xJzsNCiRsYW5nWydYSFRNTCBNb2JpbGUgUHJvZmlsZSAxLjInXT0nWEhUTUwgTW9iaWxlIFByb2ZpbGUgMS4yJzsNCiRsYW5nWydYSFRNTC1QcmludCAxLjAnXT0nWEhUTUwtUHJpbnQgMS4wJzsNCiRsYW5nWydYSFRNTCAxLjEgcGx1cyBNYXRoTUwgMi4wJ109J1hIVE1MIDEuMSBwbHVzIE1hdGhNTCAyLjAgJzsNCiRsYW5nWydYSFRNTCAxLjEgcGx1cyBNYXRoTUwgMi4wIHBsdXMgU1ZHIDEuMSddPSdYSFRNTCAxLjEgcGx1cyBNYXRoTUwgMi4wIHBsdXMgU1ZHIDEuMSAnOw0KJGxhbmdbJ01hdGhNTCAyLjAnXT0nTWF0aE1MIDIuMCc7DQokbGFuZ1snU1ZHIDEuMCddPSdTVkcgMS4wJzsNCiRsYW5nWydTVkcgMS4xJ109J1NWRyAxLjEnOw0KJGxhbmdbJ1NWRyAxLjEgVGlueSddPSdTVkcgMS4xIFRpbnknOw0KJGxhbmdbJ1NWRyAxLjEgQmFzaWMnXT0nU1ZHIDEuMSBCYXNpYyc7DQokbGFuZ1snU01JTCAxLjAnXT0nU01JTCAxLjAnOw0KJGxhbmdbJ1NNSUwgMi4wJ109J1NNSUwgMi4wJzsNCg0KDQoNCiRsYW5nWydkZWZhdWx0UGFnZV9sYWJsZSddPSdDaGVjayBhZ2FpbnN0IHRoaXMgcGFnZSc7DQoNCiRsYW5nWydlbmNvZGluZ19sYWJsZSddPSdFbmNvZGluZyc7DQokbGFuZ1snKGRldGVjdCBhdXRvbWF0aWNhbGx5KSddPScoZGV0ZWN0IGF1dG9tYXRpY2FsbHkpJzsNCiRsYW5nWyd1dGYtOCddPSd1dGYtOCAoVW5pY29kZSwgd29ybGR3aWRlKSc7DQokbGFuZ1sndXRmLTE2J109J3V0Zi0xNiAoVW5pY29kZSwgd29ybGR3aWRlKSc7DQokbGFuZ1snaXNvLTg4NTktMSddPSdpc28tODg1OS0xIChXZXN0ZXJuIEV1cm9wZSknOw0KJGxhbmdbJ2lzby04ODU5LTInXT0naXNvLTg4NTktMiAoQ2VudHJhbCBFdXJvcGUpJzsNCiRsYW5nWydpc28tODg1OS0zJ109J2lzby04ODU5LTMgKFNvdXRoZXJuIEV1cm9wZSknOw0KJGxhbmdbJ2lzby04ODU5LTQnXT0naXNvLTg4NTktNCAoTm9ydGggRXVyb3BlYW4pJzsNCiRsYW5nWydpc28tODg1OS01J109J2lzby04ODU5LTUgKEN5cmlsbGljKSc7DQokbGFuZ1snaXNvLTg4NTktNi1pJ109J2lzby04ODU5LTYtaSAoQXJhYmljKSc7DQokbGFuZ1snaXNvLTg4NTktNyddPSdpc28tODg1OS03IChHcmVlayknOw0KJGxhbmdbJ2lzby04ODU5LTgnXT0naXNvLTg4NTktOCAoSGVicmV3LCB2aXN1YWwpJzsNCiRsYW5nWydpc28tODg1OS04LWknXT0naXNvLTg4NTktOC1pIChIZWJyZXcsIGxvZ2ljYWwpJzsNCiRsYW5nWydpc28tODg1OS05J109J2lzby04ODU5LTkgKFR1cmtpc2gpJzsNCiRsYW5nWydpc28tODg1OS0xMCddPSdpc28tODg1OS0xMCAoTGF0aW4gNiknOw0KJGxhbmdbJ2lzby04ODU5LTExJ109J2lzby04ODU5LTExIChMYXRpbi9UaGFpKSc7DQokbGFuZ1snaXNvLTg4NTktMTMnXT0naXNvLTg4NTktMTMgKExhdGluIDcsIEJhbHRpYyBSaW0pJzsNCiRsYW5nWydpc28tODg1OS0xNCddPSdpc28tODg1OS0xNCAoTGF0aW4gOCwgQ2VsdGljKSc7DQokbGFuZ1snaXNvLTg4NTktMTUnXT0naXNvLTg4NTktMTUgKExhdGluIDkpJzsNCiRsYW5nWydpc28tODg1OS0xNiddPSdpc28tODg1OS0xNiAoTGF0aW4gMTApJzsNCiRsYW5nWyd1cy1hc2NpaSddPSd1cy1hc2NpaSAoYmFzaWMgRW5nbGlzaCknOw0KJGxhbmdbJ2V1Yy1qcCddPSdldWMtanAgKEphcGFuZXNlLCBVbml4KSc7DQokbGFuZ1snc2hpZnRfamlzJ109J3NoaWZ0X2ppcyAoSmFwYW5lc2UsIFdpbi9NYWMpJzsNCiRsYW5nWydpc28tMjAyMi1qcCddPSdpc28tMjAyMi1qcCAoSmFwYW5lc2UsIGVtYWlsKSc7DQokbGFuZ1snZXVjLWtyJ109J2V1Yy1rciAoS29yZWFuKSc7DQokbGFuZ1snZ2IyMzEyJ109J2diMjMxMiAoQ2hpbmVzZSwgc2ltcGxpZmllZCknOw0KJGxhbmdbJ2diMTgwMzAnXT0nZ2IxODAzMCAoQ2hpbmVzZSwgc2ltcGxpZmllZCknOw0KJGxhbmdbJ2JpZzUnXT0nYmlnNSAoQ2hpbmVzZSwgdHJhZGl0aW9uYWwpJzsNCiRsYW5nWydiaWc1LUhLU0NTJ109J0JpZzUtSEtTQ1MgKENoaW5lc2UsIEhvbmcgS29uZyknOw0KJGxhbmdbJ3Rpcy02MjAnXT0ndGlzLTYyMCAoVGhhaSknOw0KJGxhbmdbJ2tvaTgtciddPSdrb2k4LXIgKFJ1c3NpYW4pJzsNCiRsYW5nWydrb2k4LXUnXT0na29pOC11IChVa3JhaW5pYW4pJzsNCiRsYW5nWydpc28taXItMTExJ109J2lzby1pci0xMTEgKEN5cmlsbGljIEtPSS04KSAgJzsNCiRsYW5nWydtYWNpbnRvc2gnXT0nbWFjaW50b3NoIChNYWNSb21hbiknOw0KJGxhbmdbJ3dpbmRvd3MtMTI1MCddPSd3aW5kb3dzLTEyNTAgKENlbnRyYWwgRXVyb3BlKSc7DQokbGFuZ1snd2luZG93cy0xMjUxJ109J3dpbmRvd3MtMTI1MSAoQ3lyaWxsaWMpJzsNCiRsYW5nWyd3aW5kb3dzLTEyNTInXT0nd2luZG93cy0xMjUyIChXZXN0ZXJuIEV1cm9wZSknOw0KJGxhbmdbJ3dpbmRvd3MtMTI1MyddPSd3aW5kb3dzLTEyNTMgKEdyZWVrKSc7DQokbGFuZ1snd2luZG93cy0xMjU0J109J3dpbmRvd3MtMTI1NCAoVHVya2lzaCknOw0KJGxhbmdbJ3dpbmRvd3MtMTI1NSddPSd3aW5kb3dzLTEyNTUgKEhlYnJldyknOw0KJGxhbmdbJ3dpbmRvd3MtMTI1NiddPSd3aW5kb3dzLTEyNTYgKEFyYWJpYyknOw0KJGxhbmdbJ3dpbmRvd3MtMTI1NyddPSd3aW5kb3dzLTEyNTcgKEJhbHRpYyBSaW0pJzsNCg0KDQoNCg0KJGxhbmdbInNhdmVWQUxzZXR0aW5ncyJdPSdTYXZlIFZhbGlkYXRpb24gU2V0dGluZ3MnOw0KJGxhbmdbInNldHRpbmdzIl09IlNldHRpbmdzIjsNCiRsYW5nWyJzZXR0aW5nc3NhdmVkIl09J1NldHRpbmdzIHNhdmVkJzsNCiRsYW5nWyJsZWF2ZWNvZGUiXT0iRG8gbm90IHRvdWNoIGNvZGUiOw0KJGxhbmdbImZvcm1hdGNvZGUiXT0iRm9ybWF0IHRoZSBjb2RlIG5pY2VseSI7DQokbGFuZ1sic2NyYW1ibGVjb2RlIl09IlNjcmFtYmxlIHRoZSBjb2RlIjsNCiRsYW5nWyJjbGVhbmNvZGUiXT0iQ2xlYW4gdXAgdGhlIGNvZGUgcmVtb3Zpbmcgc3R1ZmYgdGhhdCBkb2Vzbid0IG1hdHRlciI7DQokbGFuZ1sic2V0dGluZ3NzYXZlZCJdPSJUaGUgc2V0dGluZ3Mgd2FzIHNhdmVkIjsNCiRsYW5nWyJzYXZlc2V0dGluZ3MiXT0iU2F2ZSBzZXR0aW5ncyI7DQokbGFuZ1sibWFuZ2xldHlwZXRleHQiXT0iSG93IHRvIGZvcm1hdCB0aGUgY29kZSI7DQokbGFuZ1siYnJpZWYiXT0iQnJpZWYiOw0KJGxhbmdbInZlcmJvc2UiXT0iVmVyYm9zZSI7DQokbGFuZ1siY29kZWZpeGVzIl09IkNvZGUgZml4ZXMiOw0KJGxhbmdbImZvcmNlbG93ZXJ0YWdzdGV4dCJdPSJGb3JjZSB0YWdzIHRvIGxvd2VyY2FzZSI7DQokbGFuZ1siZm9yY2Vsb3dlcnRhZ3NoZWxwIl09IkZvciBiZXR0ZXIgWEhUTUwtY29tcGF0aWJpbGl0eSI7DQokbGFuZ1siaGlkZW1lc3NhZ2VzdGV4dCJdPSJIaWRlIG1lc3NhZ2VzIGluIGJvdHRvbSBvZiAoeClodG1sLWNvZGUiOw0KJGxhbmdbImluZGVudHdpZHRodGV4dCJdPSJXaWR0aCBvZiBpbmRlbnRhdGlvbiI7DQokbGFuZ1sic3BhY2VzIl09IlNwYWNlcyI7DQokbGFuZ1siZGVidWdsZXZlbHRleHQiXT0iQW1vdW50IG9mIGRlYnVnZ2luZyBvdXRwdXQ6ICI7DQokbGFuZ1siZGVidWd0ZXh0Il09IkNvZGUgZGVidWcgbW9kZSI7DQoNCg0KJGxhbmdbJ1NjcmlwdF9saXN0J10gPSAnU2NyaXB0cyc7DQokbGFuZ1snQXNzX2hlYWRlciddID0gJ1VuaWZpZWQgU2NyaXB0cyc7DQokbGFuZ1snU2FtcGxlVGFnJ10gPSAnU2FtcGxlIFRhZyc7DQoNCiRsYW5nWydwcm9tcHRfbmV3U2NyaXB0J10gPSAnQWRkIHNjcmlwdCc7DQokbGFuZ1sncHJvbXB0X25ld1NjcmlwdEFzcyddID0gJ0FkZCBzY3JpcHQgZ3JvdXBpbmcnOw0KJGxhbmdbJ3Byb21wdF9hZGR0ZW1wbGF0ZSddID0gJ0FkZCB0ZW1wbGF0ZSc7DQoNCg0KJGxhbmdbJ2FkZExpYl9sYWJlbCddID0gJ0FkZCBhIGxpYnJhcnknOw0KDQoNCg0KJGxhbmdbJ3RpdGxlX0dyb3VwcyddID0gJ0dyb3VwZWQgU2NyaXB0IExpc3QnOw0KJGxhbmdbJ3RpdGxlX1NjcmlwdHMnXSA9ICdTaW5nbGUgU2NyaXB0cyBMaXN0JzsNCiRsYW5nWydhcmV5b3VzdXJlJ10gPSAnSW1wb3J0YW50OlxuXG5JZiB0aGlzIGlzIGRlbGV0ZWQgYWxsIGluZm9ybWF0aW9uIHdpbGwgYmUgbG9zdCFcblxuSWYgeW91IGhhdmUgdGhpcyBzY3JpcHQgaW4gYSBncm91cCB5b3Ugd2lsbCBicmVhayB0aGUgdGllIGFuZCB3aWxsIG5lZWQgdG8gZWRpdCB0aGUgZ3JvdXAuXG5JdCBpcyBiZXN0IHRvIHN0YXJ0IHRoZSBkZWxldGlvbiBwcm9jZXNzIGZyb20gdGhlIEFzc2lnbm1lbnQgYXJlYS5cblxuWU9VIEFMU08gTE9TRSBZT1VSIFJFVklTSU9OIEhJU1RPUlkgRk9SIFRISVMgU0NSSVBULi4gQVJFIFlPVSBSRUFMWSBTVVJFPz8/JzsNCg0KLy8vVGlwcyAtLQ0KJGxhbmdbJ3NtYXJ0eUhvdyddID0gJ1RoZSBzbWFydHkgd29ya3MgbGlrZSB0aGlzIGluIEpTIGFuZCBDU1MuLi4gV2hlcmUgeW91XCdkIGhhdmUgeyRzbWFydHkubm93fSB5b3UgZG8ge3skc21hcnR5Lm5vd319ICAuICBOb3cgeW91IGNhbiBkbyBzbWFydHkgc3R1ZmYuICBTbWFydHkgMyBhY2NvdW50cyBmb3IgdGhpcyBhbmQgc28gQ01TTVMgMi4wIHdpbGwgbm90IG5lZWQgdGhlIHt7IH19JzsNCiRsYW5nWyd0aXBfZ2VuZXJhbF9zbWFydHknXSA9ICdUaGUgc21hcnR5IHdvcmtzIGxpa2UgdGhpcyBpbiBKUyBhbmQgQ1NTLi4uIFdoZXJlIHlvdVwnZCBoYXZlIHskc21hcnR5Lm5vd30geW91IGRvIHt7JHNtYXJ0eS5ub3d9fSAgLiAgTm93IHlvdSBjYW4gZG8gc21hcnR5IHN0dWZmLiAgU21hcnR5IDMgYWNjb3VudHMgZm9yIHRoaXMgYW5kIHNvIENNU01TIDIuMCB3aWxsIG5vdCBuZWVkIHRoZSB7eyB9fSc7DQokbGFuZ1sndGlwX2dlbmVyYWxfZ3JvdXBpbmcnXSA9ICdKb2luaW5nIHlvdXIgQ1NTIGZpbGVzIHNwZWVkcyB1cCB5b3VyIHVzZXJzIGV4cGVyaWVuY2UgYW5kIGhlbHAgeW91IGdldCBjbG9zZXIgdG8gYW4gIkEiIGluIDxhIGhyZWY9Imh0dHA6Ly9kZXZlbG9wZXIueWFob28uY29tL3lzbG93LyIgdGFyZ2V0PSJfYmxhbmsiPnlTbG93PC9hPic7DQokbGFuZ1sndGlwX2VkaXRvcl90YWInXSA9ICdEaWQgeW91IGtub3cgdGhhdCB5b3UgY2FuIHVzZSB0aGUgVGFiIGtleSB0byBpbmRlbnQgeW91IGNvZGU/ICBUcnkgaXQgb3V0Lic7DQokbGFuZ1sndGlwX2VkaXRvcl9zZWFyY2hOcmVwbGFjZSddID0gJ0RpZCB5b3Uga25vdyB0aGF0IHlvdSBjYW4gdXNlIHJlZ3VsYXIgZXhwcmVzc2lvbiB0byBxdWlja2x5IHNlYXJjaCBhbmQgcmVwbGFjZT8gIFVzZSBDdHJsK2YgaW4gdGhlIGVkaXRvciB0byBicmluZyB1cCB0aGUgYm94Lic7DQokbGFuZ1sndGlwX2VkaXRvcl9yZXNldEhpZ2hsaWdodCddID0gJ0lmIHlvdSBhcmUgc2VlaW5nIGRvdWJsZXMgaW4gdGhlIGVkaXRvciwgaWU6IHRoZSBoaWdobGlnaHQgaXMgZGVzeW5jcm9uaXplZCBmcm9tIHRleHQganVzdCB1c2UgdGhlIHJlc2V0IGhpZ2hsaWdodCBidXR0b24gPGltZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIG9ubW91c2Vkb3duPSJlZGl0QXJlYS5yZXN0b3JlQW5kU3dpdGNoQ2xhc3ModGhpcyxcJ2VkaXRBcmVhQnV0dG9uRG93blwnKTsiIG9ubW91c2VvdXQ9ImVkaXRBcmVhLnJlc3RvcmVDbGFzcyh0aGlzKTsiIG9ubW91c2VvdmVyPSJlZGl0QXJlYS5zd2l0Y2hDbGFzcyh0aGlzLFwnZWRpdEFyZWFCdXR0b25PdmVyXCcpOyIgY2xhc3M9ImVkaXRBcmVhQnV0dG9uTm9ybWFsIiB0aXRsZT0icmVzZXQgaGlnaGxpZ2h0IChlZCkiIHNyYz0iLi4vbW9kdWxlcy9TY3JpcHREZXBsb3kvaW5jbHVkZXMvZWRpdF9hcmVhL2ltYWdlcy9yZXNldF9oaWdobGlnaHQuZ2lmIiBpZD0icmVzZXRfaGlnaGxpZ2h0Ij4nOw0KJGxhbmdbJ3RpcF90ZW1wbGF0ZV9zbWFydHknXSA9ICdTbWFydHkgc3ludGF4IGlzIHRoZSBzYW1lIGFzIGV2ZXJ5d2hlcmUgZWxzZSBqdXN0IGEgc3RyYWlnaHQgeyRzbWFydHkubm93fS4gIFRoZSB7eyB9fSBpcyBmb3IgdGhlIENTUyBhbmQgSlMgYXMge30gYXJlIGluIHRoZWlyIHN5bnRheC4gIFNtYXJ0eSAzIGFjY291bnRzIGZvciB0aGlzIGFuZCBzbyBDTVNNUyAyLjAgd2lsbCBub3QgbmVlZCB0aGUge3sgfX0nOw0KJGxhbmdbJ3RpcF9ncm91cF9kcmFnTmRyb3AnXSA9ICd0byBnZXQgc3RhcnRlZCBqdXN0IGRyYWcgZnJvbSB0aGUgcG9vbCB0byB0aGUgZ3JvdXBcJ3MgbGlzdCc7DQoNCg0KDQoNCg0KDQoNCiRsYW5nWydhbGwnXT0nU3VpdGFibGUgZm9yIGFsbCBkZXZpY2VzLic7DQokbGFuZ1snYXVyYWwnXT0nIEludGVuZGVkIGZvciBzcGVlY2ggc3ludGhlc2l6ZXJzLic7DQokbGFuZ1snYnJhaWxsZSddPSdJbnRlbmRlZCBmb3IgYnJhaWxsZSB0YWN0aWxlIGZlZWRiYWNrIGRldmljZXMuJzsNCiRsYW5nWydlbWJvc3NlZCddPSdJbnRlbmRlZCBmb3IgcGFnZWQgYnJhaWxsZSBwcmludGVycy4nOw0KJGxhbmdbJ2hhbmRoZWxkJ109J0ludGVuZGVkIGZvciBoYW5kaGVsZCBkZXZpY2VzJzsNCiRsYW5nWydwcmludCddPSdJbnRlbmRlZCBmb3IgcGFnZWQsIG9wYXF1ZSBtYXRlcmlhbCBhbmQgZm9yIGRvY3VtZW50cyB2aWV3ZWQgb24gc2NyZWVuIGluIHByaW50IHByZXZpZXcgbW9kZS4nOw0KJGxhbmdbJ3Byb2plY3Rpb24nXT0nIEludGVuZGVkIGZvciBwcm9qZWN0ZWQgcHJlc2VudGF0aW9ucywgZm9yIGV4YW1wbGUgcHJvamVjdG9ycyBvciBwcmludCB0byB0cmFuc3BhcmVuY2llcy4nOw0KJGxhbmdbJ3NjcmVlbiddPSdJbnRlbmRlZCBwcmltYXJpbHkgZm9yIGNvbG9yIGNvbXB1dGVyIHNjcmVlbnMuJzsNCiRsYW5nWyd0dHknXT0nSW50ZW5kZWQgZm9yIG1lZGlhIHVzaW5nIGEgZml4ZWQtcGl0Y2ggY2hhcmFjdGVyIGdyaWQsIHN1Y2ggYXMgdGVsZXR5cGVzIGFuZCB0ZXJtaW5hbHMuJzsNCiRsYW5nWyd0diddPSdJbnRlbmRlZCBmb3IgdGVsZXZpc2lvbi10eXBlIGRldmljZXMuJzsNCg0KJGxhbmdbJ01lZGlhVHlwZSddPSdhbGwgOiBTdWl0YWJsZSBmb3IgYWxsIGRldmljZXMuPGJyLz4NCmF1cmFsIDogSW50ZW5kZWQgZm9yIHNwZWVjaCBzeW50aGVzaXplcnMuPGJyLz4NCmJyYWlsbGUgOiBJbnRlbmRlZCBmb3IgYnJhaWxsZSB0YWN0aWxlIGZlZWRiYWNrIGRldmljZXMuPGJyLz4NCmVtYm9zc2VkIDogSW50ZW5kZWQgZm9yIHBhZ2VkIGJyYWlsbGUgcHJpbnRlcnMuPGJyLz4NCmhhbmRoZWxkIDogSW50ZW5kZWQgZm9yIGhhbmRoZWxkIGRldmljZXM8YnIvPg0KcHJpbnQgOiBJbnRlbmRlZCBmb3IgcGFnZWQsIG9wYXF1ZSBtYXRlcmlhbCBhbmQgZm9yIGRvY3VtZW50cyB2aWV3ZWQgb24gc2NyZWVuIGluIHByaW50IHByZXZpZXcgbW9kZS48YnIvPg0KcHJvamVjdGlvbiA6IEludGVuZGVkIGZvciBwcm9qZWN0ZWQgcHJlc2VudGF0aW9ucywgZm9yIGV4YW1wbGUgcHJvamVjdG9ycyBvciBwcmludCB0byB0cmFuc3BhcmVuY2llcy48YnIvPg0Kc2NyZWVuIDogSW50ZW5kZWQgcHJpbWFyaWx5IGZvciBjb2xvciBjb21wdXRlciBzY3JlZW5zLjxici8+DQp0dHkgOiBJbnRlbmRlZCBmb3IgbWVkaWEgdXNpbmcgYSBmaXhlZC1waXRjaCBjaGFyYWN0ZXIgZ3JpZCwgc3VjaCBhcyB0ZWxldHlwZXMgYW5kIHRlcm1pbmFscy48YnIvPg0KdHYgOiBJbnRlbmRlZCBmb3IgdGVsZXZpc2lvbi10eXBlIGRldmljZXMuJzsNCg0KDQoNCi8vL21lc3NhZ2VzDQoNCiRsYW5nWydDYW5jZWxlZCddID0gJ1lvdSBDYW5jZWxlZCBvdXQgb2YgdGhlIG9wZXJhdGlvbi4gIEFueSBXb3JrIHlvdSBtYXkgaGF2ZSBlbnRlcmVkIGhhcyBiZWVuIGxvc3QuJzsNCg0KJGxhbmdbJ0J0bkFEREVEJ10gPSAnWW91IEp1c3QgQWRkZWQgYSBuZXcgU2NyaXB0JzsNCiRsYW5nWydCdG5FRElURUQnXSA9ICdZb3UgSnVzdCBFZGl0ZWQgYW4gZXhpc3RpbmcgU2NyaXB0JzsNCiRsYW5nWydCdG5ERUxFVEVEJ10gPSAnWW91IEp1c3QgRGVsZXRlZCBhbiBleGlzdGluZyBTY3JpcHQnOw0KJGxhbmdbJ3R5cGVfbGFiZWwnXSA9ICdUeXBlJzsNCiRsYW5nWydyZXZpc2lvbiddID0gJ1JldmlzaW9uJzsNCiRsYW5nWydpc0VkaXQnXT0naXMgZWRpdGluZyc7DQokbGFuZ1snc3RlYWwnXT0nU3RlYWwgdGhlIGRvY3VtZW50JzsNCiRsYW5nWydnZXRfdGFnJ109J0dldCB0aGUgdGFnJzsNCg0KJGxhbmdbJ2VtdHB5R3JvdXAnXSA9ICJZb3UnbGwgbmVlZCB0byBhZGQgYSBzY3JpcHQgdG8gdGhlIGdyb3VwIGJlZm9yZSBjYWxsaW5nIGl0IjsNCiRsYW5nWydhbGxTY3JpcHRzVXNlZCddID0gIkFsbCB0aGUgc2NyaXB0cyBoYXZlIGJlZW4gdXNlZCI7DQokbGFuZ1snTm9fU2NyaXB0cyddID0gIlRoZXJlIGN1cnJlbnRseSBubyBzY3JpcHRzIjsNCiRsYW5nWydOb19Hcm91cHMnXSA9ICJUaGVyZSBjdXJyZW50bHkgbm8gZ3JvdXBzIjsNCg0KLy90aGVtcGxhdGVNYW5nDQokbGFuZ1snc2V0aW5hY3RpdmUnXSA9ICdTZXQgdGVtcGxhdGUgaW5hY3RpdmUnOw0KJGxhbmdbJ3NldGFjdGl2ZSddID0gJ1NldCB0ZW1wbGF0ZSBhY3RpdmUnOw0KJGxhbmdbJ25vdGRlZmF1bHQnXSA9ICdOb3QgdGhlIGRlZmF1bHQgdGVtcGxhdGUuJzsNCiRsYW5nWydub3R2YWxpZCddID0gJ1N0eWxlc2hlZXQgYXNzb2NpYXRpb25zIGhhdmUgbm90IGJlZW4gc2V0IHByb3Blcmx5IGZvciB0aGlzIHRlbXBsYXRlJzsNCiRsYW5nWyd0ZW1wbGF0ZV90YWInXSA9ICdTdHlsZXN3aXRjaGVyIEZvcm0gdGVtcGxhdGUnOw0KJGxhbmdbJ3BhZ2VfdGVtcGxhdGVzX3RhYiddID0gJ1BhZ2UgVGVtcGxhdGVzJzsNCiRsYW5nWydzdWJtaXQnXSA9ICdTdWJtaXQnOw0KJGxhbmdbJ2FwcGx5J10gPSAnQXBwbHknOw0KJGxhbmdbJ2NhbmNlbCddID0gJ0NhbmNlbCc7DQokbGFuZ1snZ28nXSA9ICdHbyc7DQokbGFuZ1sncHJldmlldyddID0gJ3ByZXZpZXcnOw0KDQokbGFuZ1snaW5saW5laGVscCddID0gJ0hlbHAnOw0KJGxhbmdbJ3NjaXB0b3B0aW9ucyddID0gJ09wdGlvbnMnOw0KCQ0KCQ0KDQoNCg0KDQokbGFuZ1sncGVyc2lzdGVudCddID0gJ1BlcnNpc3RlbnQnOw0KJGxhbmdbJ3ByZWZlcnJlZCddID0gJ1ByZWZlcnJlZCc7DQokbGFuZ1snYWx0ZXJuYXRlJ10gPSAnQWx0ZXJuYXRlJzsNCiRsYW5nWyduYW1lJ10gPSAnTmFtZSc7DQokbGFuZ1sndGl0bGUnXSA9ICdUaXRsZSc7DQokbGFuZ1snaWQnXSA9ICdJZCc7DQokbGFuZ1snYWN0aXZlJ10gPSAnQWN0aXZlJzsNCiRsYW5nWydkZWZhdWx0J10gPSAnRGVmYXVsdCc7DQokbGFuZ1sndmFsaWQnXSA9ICdWYWxpZCc7DQokbGFuZ1sndXNhZ2VfY291bnQnXSA9ICdVc2FnZSc7DQokbGFuZ1sneWVzJ10gPSAnWWVzJzsNCiRsYW5nWydubyddID0gJ05vJzsNCiRsYW5nWydlZGl0Y3NzJ10gPSAnRWRpdCBzdHlsZXNoZWV0IGFzc29jaWF0aW9ucyc7DQokbGFuZ1snZWRpdHRlbXBsYXRlJ10gPSAnRWRpdCBUZW1wbGF0ZSBjb250ZW50JzsNCiRsYW5nWydkZWxldGV0ZW1wbGF0ZSddID0gJ0RlbGV0ZSBUZW1wbGF0ZSc7DQokbGFuZ1snY29weXRlbXBsYXRlJ10gPSAnQ29weSBUZW1wbGF0ZSc7DQoNCiRsYW5nWydwcm9tcHRfc3R5bGVzaGVldCddID0gJ1NlbGVjdCBhIHBhZ2Ugc3R5bGUnOw0KJGxhbmdbJ3Byb21wdF90ZW1wbGF0ZSddID0gJ1RlbXBsYXRlJzsNCiRsYW5nWydwcm9tcHRfZ3JvdXBuYW1lJ10gPSAnR3JvdXAgTmFtZSc7DQokbGFuZ1sncHJvbXB0X2FkZGdyb3VwJ10gPSAnQWRkIEEgR3JvdXAnOw0KJGxhbmdbJ3Byb21wdF9ncm91cG5hbWUnXSA9ICdHcm91cCBOYW1lJzsNCiRsYW5nWydwcm9tcHRfZ3JvdXB0eXBlJ10gPSAnR3JvdXAgVHlwZSc7DQokbGFuZ1sncHJvbXB0X2FkZCddID0gJ0FkZCc7DQokbGFuZ1sncHJvbXB0X3NlbGVjdG9uZSddID0gJ1NlbGVjdCBPbmUnOw0KJGxhbmdbJ3Byb21wdF9hZGRfYWx0ZXJuYXRlJ10gPSAnQWRkIGFuIEFsdGVybmF0ZSc7DQoNCiRsYW5nWydlcnJvcl9wbGVhc2Vfc2VsZWN0X3N0eWxlc2hlZXQnXSA9ICdQbGVhc2UgU2VsZWN0IGEgU3R5bGVzaGVldCc7DQokbGFuZ1sndXNlckxvZ3MnXSA9ICdWaWV3IFVzZXIgSGlzdG9yeSBMb2dzJzsNCg0KDQovL0FjY291bnQgb3B0aW9ucw0KJGxhbmdbJ1NjcmlwdFNldF9sYWJlbCddID0gJ1NjcmlwdCBJRCc7DQokbGFuZ1snc2NyaXB0VHlwZV9sYWJlbCddID0gJ1NjcmlwdCBUeXBlJzsNCiRsYW5nWydTY3JpcHROYW1lX2xhYmVsJ10gPSAnU2NyaXB0IE5hbWUnOw0KJGxhbmdbJ3RlbXBsYXRlbmFtZV9sYWJlbCddID0gJ1RlbXBsYXRlIE5hbWUnOw0KDQoNCiRsYW5nWydTaW5nbGVDb2RlX2xhYmVsJ10gPSAnRGVmYXVsdCBUYWcnOw0KJGxhbmdbJ0dyb3VwdFNpemVfbGFiZWwnXSA9ICdUb3RhbCc7DQokbGFuZ1snbm90ZXNfbGFiZWwnXSA9ICdOb3Rlcyc7DQoNCg0KJGxhbmdbImRvY1R5cGVfbGFibGUiXT0nRG9jdHlwZSc7DQokbGFuZ1siVmFsSFRNTFZlcmJvc2VfbGFibGUiXT0nQ2hlY2sgVmVyYm9zZWx5JzsNCg0KDQoNCg0KJGxhbmdbJ1Nob3dWYWxfbGFibGUnXSA9ICdLZWVwIE1lc3NhZ2VzIE9wZW4nOw0KJGxhbmdbJ1R1cm5PTlZhbF9sYWJsZSddID0gJ1R1cm4gPHN0cm9uZz5PTjwvc3Ryb25nPiBWYWxpZGF0aW9uJzsNCg0KJGxhbmdbJ2hvdExpbmtDaGVja19sYWJsZSddID0gJ0RvIEhvdExpbmsgQ2hlY2snOw0KJGxhbmdbJ1RydW5PbmhvdExpbmtDaGVjayddID0gJ1lvdSBuZWVkIHRvIHR1cm4gb24gdGhlIEhvdExpbmsgQ2hlY2snOw0KDQoNCiRsYW5nWydmaWx0ZXJQcm9wX2xhYmxlJ10gPSAnIEZpbHRlciBvdXQgcHJvcGVydGllcyB0byBoZWxwIHZhbGlkYXRlJzsNCiRsYW5nWydDU1Nwcm9maWxlX2xhYmxlJ10gPSAnIENTUyBQcm9maWxlJzsNCiRsYW5nWyd1c2VybWVkaXVtX2xhYmxlJ10gPSAnIFVzZXIgTWVkaXVtJzsNCiRsYW5nWydWQUxMYW5nX2xhYmxlJ10gPSAnIExhbmd1YWdlJzsNCiRsYW5nWyd3M2NDU1N3YXJuaW5nX2xhYmxlJ10gPSAnIHczYyBDU1MgV2FybmluZyBMZXZlbCc7DQoNCiRsYW5nWydNZWRpYVR5cGVfbGFiZWwnXSA9ICdNZWRpYVR5cGUnOw0KJGxhbmdbJ01pbmlmeV9sYWJlbCddID0gJ01pbmlmeSBvbiBPdXRwdXQnOw0KJGxhbmdbJ0NyZWF0aW9uRGF0ZV9sYWJlbCddID0gJ0NyZWF0aW9uIERhdGUnOw0KJGxhbmdbJ01vZGlmZWREYXRlX2xhYmVsJ10gPSAnTW9kaWZpZWQgRGF0ZSc7DQokbGFuZ1sncGF0aE9wdGlvbl9sYWJlbCddID0gJ1VzZSBhIHBhdGg8ZW0+KHVzZSAiL3VwbG9hZHMvLi4uIik8L2VtPic7DQokbGFuZ1sncm9vdFVSTE9wdGlvbl9sYWJlbCddID0gJ1VzZSBhIHNwZWNpZmljIHJvb3QgVVJMJzsNCiRsYW5nWydHcm9vdFVSTCddID0gJ0dsb2JhbCBTY3JpcHQgUm9vdCBVUkwnOw0KDQoNCg0KDQoNCiRsYW5nWydlbXB0eWNhY2hlRXJyb3JfZG9BRFVJVCddID0gJ2ZhaWxlZCB0byBlbXB0eSB0aGUgY2FjaGUgYXQnOw0KJGxhbmdbJ2VtcHRpZWRDYWNoX2RvQURVSVQnXSA9ICdlbXB0aWVkIHRoZSBzY3JpcHQgY2FjaGUnOw0KJGxhbmdbJ2NsZWFyZWRSZXZpc2lvbl9kb0FEVUlUJ10gPSAnY2xlYXJlZCB0aGUgcmV2aXNpb24gaGlzdG9yeSBmb3InOw0KDQokbGFuZ1snQ2hlY2tlZE91dF9kb0FEVUlUJ10gPSAnQ2hlY2tlZCBvdXQgc2NyaXB0ICc7DQokbGFuZ1sncmVsZWFzZWRfZG9BRFVJVCddID0gJ3JlbGVhc2VkIHNjcmlwdCAnOw0KDQoNCg0KJGxhbmdbJ1NjcmlwdElzX2xhYmVsJ10gPSAnVXNlIHRoaXMgc2NyaXB0IDxlbT4oTm90ZTogSWYgYSBwYXRoIGlzIHNldCwgaXQgd2lsbCBvdmVyIHJpZGUgdGhpcyk8L2VtPic7DQokbGFuZ1snZGVidWdJVF9sYWJlbCddID0gJ2RlYnVnSVQnOw0KJGxhbmdbJ2RlYnVnSVRub3RlX2xhYmVsJ10gPSAnPGVtPihNdXN0IGhhdmUgRmlyZXBocCBtb2QpPC9lbT4nOw0KJGxhbmdbJ2RlYnVnVCddID0gJ0RlYnVnaW5nIE9wdGlvbnMnOw0KJGxhbmdbJ0VkaXRIaXN0b3J5J10gPSAnVXNlciBIaXN0b3J5IEVkaXRpbmcnOw0KDQokbGFuZ1snbm9uZUluVHlwZSddID0gJzxoMT5Zb3UgbXVzdCBmaXJzdCBhZGQgPGJyLz5hIHNjcmlwdCBpbiB0aGlzIHR5cGU8L2gxPic7DQoNCg0KJGxhbmdbJ2dyb3VweVRpdGxlJ10gPSAnTGlzdCBvZiBTY3JpcHRzIGluIGdyb3VwJzsNCiRsYW5nWydyZXZpc2lvblRpdGxlJ10gPSAnUmV2aXNpb24gSGlzdG9yeSc7DQokbGFuZ1sncmV2aXNpb25fbGFiZWwnXSA9ICc8c3Ryb25nPlR1cm4gb24gdGhlIHJldmlzaW9uIGhpc3Rvcnk8L3N0cm9uZz4nOw0KJGxhbmdbJ3JldmlzaW9uX29wJ10gPSAnPGgxPlJldmlzaW9uPC9oMT4NCjxoMz5UdXJuaW5nIHRoaXMgb2ZmIGRvZXMgbm90IGNsZWFyIHRoZSBoaXN0b3J5IGlmIGl0IHdhcyBvbiBiZWZvcmUuICBMaWtlIGl0IHRvIHBhdXNlLjwvaDM+JzsNCiRsYW5nWydyZXZpc2lvbl9MSU1JVF9sYWJlbCddID0gJ1NldCBSZXZpc2lvbiBMSU1JVCc7DQokbGFuZ1snY2xlYXJSZXYnXSA9ICdDbGVhciBIaXN0b3J5JzsNCg0KDQokbGFuZ1sncHJlbG9hZF9DU1NpbWFnZVRpdGxlJ10gPSAnUHJlbG9hZCBDc3MgSW1hZ2VzJzsNCiRsYW5nWydwcmVsb2FkX0NTU2ltYWdlX2xhYmVsJ10gPSAnPHN0cm9uZz5UdXJuIG9uIFByZWxvYWRlZCBDc3MgSW1hZ2VzPC9zdHJvbmc+JzsNCiRsYW5nWydwcmVsb2FkX0NTU2ltYWdlJ10gPSAnPGgxPlByZWxvYWQgQ3NzIEltYWdlczwvaDE+DQo8aDM+SWYgeW91IGhhdmUgeW91ciBzeXN0ZW0gYWxsIHNldCB1cCByaWdodCwgdGhpcyB3aWxsIGhlbHAgeW91IGdldCBhIGZhc3QgcGFyYWxsZWwgZG93biBsb2FkIG9mIGFsbCBlbGVtZW50cy48L2gzPic7DQoNCg0KDQoNCiRsYW5nWydnbG9iYWx1cmwnXSA9ICc8aDE+U2V0IHRoZSByb290IFVSTDwvaDE+DQo8aDM+VXNlZCBmb3Igd2hlbiB5b3UgbmVlZCBTU0wgc3VwcG9ydCBvciB3YW50IHRvIHB1c2ggdGhlIHNjcmlwdHMgdG8gYSBzdWJkb21haW4gdG8gbG9zZSB0aGUgbmVlZGxlcyBjb29raWVzLjwvaDM+PGVtPih1c2Ugc2NoZW1hICJodHRwczovL3N1Yi5kb21haW4udGxkLyIpPC9lbT4nOw0KDQokbGFuZ1snc21hcnR5T25fbGFiZWwnXSA9ICc8c3Ryb25nPlByb2Nlc3MgU21hcnR5PC9zdHJvbmc+PGJyLz4gZGF0YSBpbiBidXR0b24gZmllbGRzJzsNCiRsYW5nWydzbWFydHlPbiddID0gJzxoMT5Qcm9jZXNzIFNtYXJ0eSBkYXRhPC9oMT4NCjxoMz5XaXRoIHRoaXMgdHVybmVkIG9uIHlvdSBjYW4gc2V0IHRoZSBidXR0b24gZmllbGRzIHdpdGggdGhlIHZhbHVlcyBwYXNzZWQgYnkgb3RoZXIgbW9kdWxlcyBzdWNoIGFzIFByb2R1Y3RzIG9yIENhdGFsb2dlcjwvaDM+JzsNCg0KDQokbGFuZ1snZmlsZVRpbWVfY3NzX3VybHNfbGFiZWwnXSA9ICc8c3Ryb25nPmhlbHAgYnJlYWsgYSBjbGllbnQgc2lkZSBjYWNoZTwvc3Ryb25nPic7DQokbGFuZ1snZmlsZVRpbWVfY3NzX3VybHMnXSA9ICc8aDE+aGVscCBicmVhayBhIGNsaWVudCBzaWRlIGNhY2hlPC9oMT4NCjxoMz5UaGlzIGlzIGRvbmUgYnkgYWRkaW5nIGEgZmlsZSBjcmVhdGlvbiB0aW1lIGF0IHRoZSBlbmQgb2YgYSBmaWxlLiAgVHVybmluZyB0aGlzIG9uIHdpbGwgYWRkIHRoaXMgdG8gYWxsIGxvY2FsIHVybHMuIChDU1Mgb25seSBhdG0pIC1Ob3RoaW5nIGlzIGRvbmUgdG8gaG90bGlua3M8L2gzPic7DQoNCi8vL0FjdGlvbnMNCiRsYW5nWydlZGl0J10gPSAnRWRpdCc7DQokbGFuZ1snZGVsZXRlJ10gPSAnRGVsZXRlJzsNCiRsYW5nWydDbG9zZSddID0gJ0Nsb3NlJzsNCiRsYW5nWydPcGVuJ10gPSAnT3Blbic7DQoNCiRsYW5nWydkaXJFbXB0eSddPSJUaGUgZm9sZGVyIHdhcyBlbXB0eSI7DQoNCiRsYW5nWydjbGVhblRlbXAnXSA9ICdDbGVhbiB0aGUgdGVtcD8nOw0KJGxhbmdbJ3VyVGVtcFBhdGgnXSA9J1lvdXIgY2FjaGUgcGF0aCBpcyc7DQoNCg0KDQokbGFuZ1snTGFzdE1vZCddID0nTGFzdCBNb2RpZmllZCc7DQoNCg0KJGxhbmdbJ2NhY2hlRmVycm9yJ109J1NjcmlwdERlcGxveSBjb3VsZCBub3QgbWFrZSB0aGUgY2FjaGUgZm9sZGVyLCBjaGVjayB5b3VyIGZpbGUgcGVybWlzc2lvbnMgZm9yIHRoZSBVcGxvYWRzIGFyZWEuJzsNCg0KJGxhbmdbJ05hbWUnXT0nTmFtZSc7DQoNCi8vL0FKQVggbWVzcw0KJGxhbmdbJ1Byb2NjZXNzaW5nJ109J1Byb2Nlc3NpbmcnOw0KJGxhbmdbJ1NhdmVkJ109J1NhdmVkJzsNCiRsYW5nWydEb25lJ109J0RvbmUnOw0KJGxhbmdbJ1ZhbGlkYXRpbmcnXT0nVmFsaWRhdGluZyc7DQoNCg0KICANCiRsYW5nWydHcm91cHRTZXRfbGFiZWwnXT0nR3JvdXAgTmFtZSc7DQokbGFuZ1snR3JvdXB0VHlwZV9sYWJlbCddPSdUeXBlIG9mIHNjcmlwdHMnOw0KJGxhbmdbJ1NjcmlwdFBpY2tlcl9sYWJlbCddPSdTY3JpcHQgUG9vbCc7DQoNCi8vLS0tVmFsaWRhdGlvbnMgDQokbGFuZ1snTElORSddPSdMSU5FJzsNCiRsYW5nWydUWVBFJ109J1RZUEUnOw0KJGxhbmdbJ1NVQlRZUEUnXT0nU1VCVFlQRSc7DQokbGFuZ1snU1RSSU5HJ109J1NUUklORyc7DQokbGFuZ1snTUVTU0FHRSddPSdNRVNTQUdFJzsNCiRsYW5nWydMRVZFTCddPSdMRVZFTCc7DQoNCg0KJGxhbmdbJ05vdGVzJ109J05vdGVzJzsNCiRsYW5nWydXYXJuaW5ncyddPSdXYXJuaW5ncyc7DQokbGFuZ1snRXJyb3JzJ109J0Vycm9ycyc7DQokbGFuZ1snaGlkZGVuJ109J2hpZGRlbic7DQoNCgkNCi8vKnRhYnMNCiRsYW5nWydTY3JpcHQnXT0nU2NyaXB0JzsNCiRsYW5nWydFVVJMUyddPSdFeHRyYWN0ZWQgVXJscyc7DQokbGFuZ1snUkNTUyddPSdSZW5kZXJlZCBDU1MnOw0KJGxhbmdbJ1NDU1MnXT0nQ1NTIFN0cnVjdHVyZSc7DQokbGFuZ1snRkNPTlQnXT0nRmlsZSBjb250ZW50JzsNCg0KDQokbGFuZ1snaVVSTCddPSdpbWFnZSBVUkwnOw0KJGxhbmdbJ1R5cGUnXT0nVHlwZSc7DQokbGFuZ1snU2l6ZSddPSdTaXplJzsNCiRsYW5nWydTdGF0dXMnXT0nU3RhdHVzJzsNCg0KJGxhbmdbJ2hvdGxpbmsnXT0nPHN0cm9uZz5Ib3RsaW5raW5nOjwvc3Ryb25nPiBhcHBlYXJzICB0byBiZSBhIGhvdGxpbmsuJzsNCiRsYW5nWydCcm9rZW5saW5rJ109J0Jyb2tlbiBMaW5rJzsNCg0KJGxhbmdbJ05PY3NzSSddPSdObyBjc3MgaW1hZ2VzJzsNCg0KDQokbGFuZ1snWWVzVkFsYXN0ZXInXT0nPHN0cm9uZz4qKiB5b3UgYXJlIGZpbHRlcmluZyBlcnJvcnMgYW5kIG1heSBoYXZlIGZpbHRlcmVkIGEgcmVhbCBlcnJvciA8YSBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCkiIGlkPSJ3aGljaEZpbHRlciI+KHdoaWNoPyk8L2E+PC9zdHJvbmc+JzsNCg0KJGxhbmdbJ3JlbG9hZF9hbGVydCddPSdZb3UgYXJlIHJlbG9hZGluZyB0aGUgc3JjaXB0IGZyb20gdGhlIGxhc3Qgc2F2ZSBwb2ludC4gIFlvdSBoYXZlIHNhdmVkIHRoZSBzY3JpcHQgYWxyZWFkeSBhbmQgaWYgeW91IG5lZWQgdG8gZ28gYmFjayB0byB0aGUgdmVyc2lvbiB3aGVuIHlvdSBmaXJzdCBjYW1lIGluIHRvIGVkaXQgcGxlYXNlIGNoZWNrIHlvdXIgcmV2aXNpb24gaGlzdG9yeS4nOw0KDQoNCiRsYW5nWydpbXBvcnRFeHBvcnQnXSA9ICdJbXBvcnQvRXhwb3J0JzsNCiRsYW5nWydzdGFydEV4cG9ydCddID0gJ1N0YXJ0IEV4cG9ydCc7DQokbGFuZ1snc3RhcnRJbXBvcnQnXSA9ICdTdGFydCBJbXBvcnQnOw0KDQoNCg0KDQovL0FsZXJ0cyBhbmQgTWVzc2FnZXMNCiRsYW5nWydDbGVhckltZyddID0gJ0RlbGV0ZSBDdXJyZW50IEltYWdlJzsNCg0KJGxhbmdbJ0ZpbmlzaCddID0gJ0ZpbmlzaCc7DQoNCiRsYW5nWydyZXZlcnQnXSA9ICdSZWxvYWQnOw0KJGxhbmdbJ2FwcGx5J10gPSAnQXBwbHknOw0KJGxhbmdbJ2NhbmNlbCddID0gJ0NhbmNlbCc7DQokbGFuZ1snZm9ybV9jYW5jZWwnXSA9ICdDYW5jZWwnOw0KDQokbGFuZ1snU2F2ZSddID0gJ1NhdmUnOw0KDQokbGFuZ1snZG9uZSddID0gJ0RvbmUnOw0KJGxhbmdbJ2FkZCddID0gJ0FkZCc7DQokbGFuZ1snc3VibWl0J10gPSAnU3VibWl0JzsNCg0KDQokbGFuZ1snUkVPUkRFUiddID0gJ1Jlb3JkZXInOw0KDQokbGFuZ1snZm9ybV9zdWJtaXQnXSA9ICdTYXZlIFByZWZlcmVuY2VzJzsNCg0KJGxhbmdbJ21vZF9wcmVmc190aXRsZSddID0gJ01vZHVsZSBQcmVmZXJlbmNlcyc7DQokbGFuZ1sncHJlZnN1cGRhdGVkJ10gPSAnTW9kdWxlIHByZWZlcmVuY2VzIHVwZGF0ZWQuJzsNCiRsYW5nWydvcHRpb25zdXBkYXRlZCddID0gJ29wdGlvbnMgdXBkYXRlZCc7DQoNCg0KDQoNCg0KJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnU1BFRUQgWU9VUiBTSVRFIFVQIC4uLiEhISEgJmJ1bGw7IE91dHB1dCBkeW5hbWljIEpTIGZpbGVzIGFuZCBDU1MgV0lUSCBzbWFydHkuLi4gJmJ1bGw7IFNldCB0aGUgZmlsZXMgdG8gdXNlIGEgc3ViZG9tYWluLi4uICZidWxsOyBjYWNoZWQuLi4gJmJ1bGw7IG1pbmlmaWVkLi4uICZidWxsOyBEaWQgSSBtZW50aW9uIHlvdSBjYW4gdXNlIHNtYXJ0eSBpbiB5b3VyIEpTIGFuZCBDU1Mgc2NyaXB0ISEhISAtIFNpbXBsZSwgZmxleGlibGUhJzsNCiRsYW5nWyd3ZWxjb21lX3RleHQnXSA9ICc8cD5IZWxsbyE8L3A+JzsNCg0KJGxhbmdbJ2hlbHAnXSA9ICc8bGluayBtZWRpYT0ic2NyZWVuIiBocmVmPSIuLi9tb2R1bGVzL1NjcmlwdERlcGxveS9DU1MvTWFzdGVyQ1NTLmNzcyIgdHlwZT0idGV4dC9jc3MiIHJlbD0ic3R5bGVzaGVldCIvPjxkaXYgY2xhc3M9IlNpbVdyYXAiPjxiIGNsYXNzPSJyYm90dG9tIj48YiBjbGFzcz0icjEiPjwvYj4gPGIgY2xhc3M9InIyIj48L2I+PGIgY2xhc3M9InIzIj48L2I+IDxiIGNsYXNzPSJyNCI+PC9iPjwvYj4NCg0KPGRpdiBjbGFzcz0iU2ltY29uIj4gPGgzIGNsYXNzPSJCYWNrTGluayI+PGEgb25jbGljaz0iamF2YXNjcmlwdDp3aW5kb3cuaGlzdG9yeS5nbygtMSkiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij4mbHQ7Jmx0OyBCYWNrPC9hPjwvaDM+DQo8aDE+V2hhdCBEb2VzIFRoaXMgRG8/LS0tIHRoaXMgbmVlZHMgdXBkYXRpbmc8L2gxPg0KPGgyPldyaXRlIG1hbmFnZSBhbmQgZGVwbG95IEpTIGFuZCBDU1M8L2gyPg0KPGEgaWQ9IlNjcmlwdERlcGxveSI+PC9hPg0KPHA+U2NyaXB0RGVwbG95IG1vZHVsZSB0aGF0IGNhbiBjb21iaW5lIG11bHRpcGxlIENTUyBvciBKYXZhc2NyaXB0IGZpbGVzLCBjb21wcmVzcyB0aGVpciBjb250ZW50cyAoaS5lLiByZW1vdmFsIG9mIHVubmVjZXNzYXJ5IHdoaXRlc3BhY2UvY29tbWVudHMpLCBhbmQgc2VydmUgdGhlIHJlc3VsdHMgd2l0aCBIVFRQIGVuY29kaW5nIChnemlwL2RlZmxhdGUpIGFuZCBoZWFkZXJzIHRoYXQgYWxsb3cgb3B0aW1hbCBjbGllbnQtc2lkZSBjYWNoaW5nLiBUaGlzIGhlbHBzIHlvdSBmb2xsb3cgc2V2ZXJhbCBvZiBZYWhvbyFcJ3MgPGEgaHJlZj0iaHR0cDovL2RldmVsb3Blci55YWhvby5jb20vcGVyZm9ybWFuY2UvaW5kZXguaHRtbCNydWxlcyIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPlJ1bGVzIGZvciBIaWdoIFBlcmZvcm1hbmNlIFdlYiBTaXRlczwvYT4uIChTZWUgJnF1b3Q7UHJvYmxlbSBEb21haW4mcXVvdDsgYmVsb3cgZm9yIG1vcmUgaW5mby4pIDwvcD4NCjxoMz5UaGUgU2hvcnQgb2YgaXQ8L2gzPg0KPHA+V2lydGUgeW91ciBzY3JpcHRzLCBzZXQgdGhlIG9yZGVyIGFuZCBTY3JpcHREZXBsb3kgd2lsbCBkbyB0aGUgcmVzdCE8L3A+DQo8dGFibGU+DQogIDx0Ym9keT4NCiAgICA8dHI+DQogICAgICA8dGQgc3R5bGU9IkJPUkRFUi1SSUdIVDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctUklHSFQ6IDVweDsgQk9SREVSLVRPUDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctTEVGVDogNXB4OyBQQURESU5HLUJPVFRPTTogNXB4OyBCT1JERVItTEVGVDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctVE9QOiA1cHg7IEJPUkRFUi1CT1RUT006ICNhYWEgMXB4IHNvbGlkIj48c3Ryb25nPkJlZm9yZTwvc3Ryb25nPjwvdGQ+DQogICAgICA8dGQgc3R5bGU9IkJPUkRFUi1SSUdIVDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctUklHSFQ6IDVweDsgQk9SREVSLVRPUDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctTEVGVDogNXB4OyBQQURESU5HLUJPVFRPTTogNXB4OyBCT1JERVItTEVGVDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctVE9QOiA1cHg7IEJPUkRFUi1CT1RUT006ICNhYWEgMXB4IHNvbGlkIj48aW1nIHNyYz0iaHR0cDovL21yY2xheS5vcmcvd3AtY29udGVudC91cGxvYWRzLzIwMDgvMDkvZmlkZGxlcl9iZWZvcmUucG5nIiBhbHQ9ImFmdGVyIiAvPjwvdGQ+DQogICAgPC90cj4NCiAgICA8dHI+DQogICAgICA8dGQgc3R5bGU9IkJPUkRFUi1SSUdIVDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctUklHSFQ6IDVweDsgQk9SREVSLVRPUDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctTEVGVDogNXB4OyBQQURESU5HLUJPVFRPTTogNXB4OyBCT1JERVItTEVGVDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctVE9QOiA1cHg7IEJPUkRFUi1CT1RUT006ICNhYWEgMXB4IHNvbGlkIj48c3Ryb25nPkFmdGVyPC9zdHJvbmc+PC90ZD4NCiAgICAgIDx0ZCBzdHlsZT0iQk9SREVSLVJJR0hUOiAjYWFhIDFweCBzb2xpZDsgUEFERElORy1SSUdIVDogNXB4OyBCT1JERVItVE9QOiAjYWFhIDFweCBzb2xpZDsgUEFERElORy1MRUZUOiA1cHg7IFBBRERJTkctQk9UVE9NOiA1cHg7IEJPUkRFUi1MRUZUOiAjYWFhIDFweCBzb2xpZDsgUEFERElORy1UT1A6IDVweDsgQk9SREVSLUJPVFRPTTogI2FhYSAxcHggc29saWQiPjxpbWcgc3JjPSJodHRwOi8vbXJjbGF5Lm9yZy93cC1jb250ZW50L3VwbG9hZHMvMjAwOC8wOS9maWRkbGVyX2FmdGVyLnBuZyIgYWx0PSJiZWZvcmUiIC8+PC90ZD4NCiAgICA8L3RyPg0KICA8L3Rib2R5Pg0KPC90YWJsZT4NCg0KDQoNCjxoMj48YSBpZD0iRmVhdHVyZXMiPjwvYT5GZWF0dXJlczwvaDI+DQo8dWw+DQogIDxsaT5Db21iaW5lcyBhbmQgbWluaWZpZXMgbXVsdGlwbGUgQ1NTIG9yIEphdmFTY3JpcHQgZmlsZXMgaW50byBhIHNpbmdsZSAgIGRvd25sb2FkIDwvbGk+DQogIDxsaT5Vc2VzIGFuIDxhIGhyZWY9Imh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC9taW5pZnkvc291cmNlL2Jyb3dzZS90cnVuay9taW4vbGliL0pTTWluLnBocCIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPmVuaGFuY2VkIHBvcnQ8L2E+IG9mIERvdWdsYXMgQ3JvY2tmb3JkXCdzIDxhIGhyZWY9Imh0dHA6Ly93d3cuY3JvY2tmb3JkLmNvbS9qYXZhc2NyaXB0L2pzbWluLmh0bWwiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5KU01pbiAgIGxpYnJhcnk8L2E+IGFuZCBjdXN0b20gY2xhc3NlcyB0byBtaW5pZnkgPGEgaHJlZj0iaHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL21pbmlmeS9zb3VyY2UvYnJvd3NlL3RydW5rL21pbi9saWIvTWluaWZ5L0NTUy5waHAiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5DU1M8L2E+IGFuZCA8YSBocmVmPSJodHRwOi8vY29kZS5nb29nbGUuY29tL3AvbWluaWZ5L3NvdXJjZS9icm93c2UvdHJ1bmsvbWluL2xpYi9NaW5pZnkvSFRNTC5waHAiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5IVE1MPC9hPjwvbGk+DQogIDxsaT5DYWNoZXMgc2VydmVyLXNpZGUgdG8gYXZvaWQgZG9pbmcgdW5uZWNlc3Nhcnkgd29yayA8L2xpPg0KICA8bGk+UmVzcG9uZHMgd2l0aCBhbiBIVFRQIDMwNCAoTm90IE1vZGlmaWVkKSByZXNwb25zZSB3aGVuIHRoZSBicm93c2VyIGhhcyBhbiAgIHVwLXRvLWRhdGUgY2FjaGUgY29weSAqKiA8L2xpPg0KICA8bGk+TW9zdCBtb2R1bGVzIGFyZSBsYXp5LWxvYWRlZCBhcyBuZWVkZWQgKDMwNCByZXNwb25zZXMgdXNlIG1pbmltYWwgY29kZSkgICoqIDwvbGk+DQogIDxsaT5BdXRvbWF0aWNhbGx5IHJld3JpdGVzIHJlbGF0aXZlIFVSSXMgaW4gY29tYmluZWQgQ1NTIGZpbGVzIHRvIHBvaW50IHRvIHZhbGlkIGxvY2F0aW9ucyA8L2xpPg0KICA8bGk+V2l0aCBjYWNoaW5nIGVuYWJsZWQsIFNjcmlwdERlcGxveSBpcyBjYXBhYmxlIG9mIGhhbmRsaW5nIGh1bmRyZWRzIG9mIHJlcXVlc3RzIHBlciBzZWNvbmQgb24gYSBtb2RlcmF0ZWx5IHBvd2VyZnVsIHNlcnZlci4gPC9saT4NCiAgPGxpPkNvbnRlbnQtRW5jb2Rpbmc6IGd6aXAsIGJhc2VkIG9uIHJlcXVlc3QgaGVhZGVycy4gQ2FjaGluZyBhbGxvd3MgaXQgc28gc2VydmUgZ3ppcHBlZCBmaWxlcyBmYXN0ZXIgdGhhbiBBcGFjaGVcJ3MgbW9kX2RlZmxhdGUgb3B0aW9uISA8L2xpPg0KPC91bD4NCjxoMz48ZW0+PHN0cm9uZz4qKiBOb3RlOjwvc3Ryb25nPiBJdCBpcyBiZXN0IHRvIHVzZSBhIC5odGFjY2VzcyBzY3JpcHQgdG8gc2V0IHRoZSBhZ2UgdGltZXMuIFNjcmlwdERlcGxveSBpcyBkZXNpZ25lZCBmb3IgZWZmaWNpZW5jeSwgYnV0IGZvciB2ZXJ5IGhpZ2ggdHJhZmZpYyBzaXRlcywgU2NyaXB0RGVwbG95IG1heSBzZXJ2ZSBmaWxlcyBzbG93ZXIgdGhhbiB5b3VyIEhUVFBkIGR1ZSB0byB0aGUgQ0dJIG92ZXJoZWFkIG9mIFBIUC4gIFRvIG92ZXIgY29tZSB0aGlzIEp1c3QgY2hlY2sgInVzZSAuaHRhY2Nlc3MgaW4gb3B0aW9ucyI8L2VtPjwvaDM+DQo8aDI+PGEgbmFtZT0iUmVxdWlyZW1lbnRzIj48L2E+UmVxdWlyZW1lbnRzPC9oMj4NCjx1bD4NCiAgPGxpPlRoZSBjb21tb25seSBpbnN0YWxsZWQgPGEgaHJlZj0iaHR0cDovL3VzMy5waHAubmV0L21hbnVhbC9lbi96bGliLmluc3RhbGxhdGlvbi5waHAiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij56bGliICAgZXh0ZW5zaW9uPC9hPiBpcyByZWNvbW1lbmRlZCBmb3IgSFRUUCBlbmNvZGluZyBmdW5jdGlvbmFsaXR5LiA8L2xpPg0KPC91bD4NCjxici8+PGJyLz4NCjxoMT5Ib3cgRG8gSSBVc2UgSXQ8L2gxPg0KDQoNCjxoMz5HZXQgYSBzaW5nbGUgc2NyaXB0PC9oMz4NCnVzZSA8c3BhbiBjbGFzcz0iY29kZUhJR0hMSUdIVCI+e2Ntc19tb2R1bGUgbW9kdWxlPVNjcmlwdERlcGxveSBzY3JpcHRJRD0iMSJ9IDwvc3Bhbj4gPGJyLz48YnIvPg0KPGgzPkdldCBhIHNjcmlwdCBncm91cDwvaDM+DQp1c2UgPHNwYW4gY2xhc3M9ImNvZGVISUdITElHSFQiPntjbXNfbW9kdWxlIG1vZHVsZT1TY3JpcHREZXBsb3kgZ3JvdXBJRD0iMSJ9IDwvc3Bhbj4gPGJyLz48YnIvPg0KPGgyPkFsbCBvdXRwdXQgaXMgaW4gdGhlIFhIVE1MIGZvcm1hdCwgeW91IHNob3VsZCB3b3JrIGluIHRoYXQuPC9oMj4NCg0KPGJyLz48YnIvPg0KPGg0PlBhcmFtczwvaDQ+DQo8dWw+DQo8bGk+PHN0cm9uZz5zY3JpcHRJRD0iIiA8L3N0cm9uZz48ZW0+KFJlcXVpcmVkL29wdGlvbmFsKTwvZW0+IDxici8+fCBzZXQgdGhlIElEIFJlcXVpcmVkIG9ubHkgaWYgZ3JvdXBJRCBub3QgY2FsbGVkPGJyLz48L2xpPg0KPGxpPjxzdHJvbmc+Z3JvdXBJRD0iIiA8L3N0cm9uZz48ZW0+KFJlcXVpcmVkL29wdGlvbmFsKTwvZW0+IDxici8+fCBzZXQgdGhlIElEIFJlcXVpcmVkIG9ubHkgaWYgc2NyaXB0SUQgbm90IGNhbGxlZDxici8+PC9saT4NCjxsaT48c3Ryb25nPlN0eXBlPSIiIDwvc3Ryb25nPjxlbT4oUmVxdWlyZWQvKSBKUy9DU1M8L2VtPiA8YnIvPnwgc2V0IHRoZSBJRCBSZXF1aXJlZCBvbmx5IGlmIHNjcmlwdElEIG5vdCBjYWxsZWQ8YnIvPjwvbGk+DQoNCjxsaT48c3Ryb25nPnNtYXJ0eT0iIiA8L3N0cm9uZz48ZW0+KG9wdGlvbmFsKSB0cnVlL2ZhbHNlIDxzdHJvbmc+RGVmYXVsdDpudWxsPC9zdHJvbmc+PC9lbT4gPGJyLz58IFRoaXMgbGV0cyB5b3Ugb3ZlciByaWRlIHRoZSBnbG9ibGVzPGJyLz48L2xpPg0KPGxpPjxzdHJvbmc+bWluaWZ5PSIiIDwvc3Ryb25nPjxlbT4ob3B0aW9uYWwpIHRydWUvZmFsc2UgPHN0cm9uZz5EZWZhdWx0OnRydWU8L3N0cm9uZz48L2VtPiA8YnIvPnwgIFRoaXMgbGV0cyB5b3Ugb3ZlciByaWRlIHRoZSBnbG9ibGVzPGJyLz48L2xpPg0KDQoNCg0KDQoNCg0KPGxpPjxzdHJvbmc+bWVkaWFfdHlwZT0iIiA8L3N0cm9uZz48ZW0+KG9wdGlvbmFsKTwvZW0+IDxici8+fCBzZXQgTWVkaWEgdHlwZSBmb3IgQ1NTIGZpbGVzIGhlcmUuLi4gb3ZlcnJpZGVzIGRiIHNldGluZ3MuPGJyLz48L2xpPg0KPGxpPjxzdHJvbmc+aW1wb3J0PSIiIDwvc3Ryb25nPjxlbT4ob3B0aW9uYWwpIHRydWUvZmFsc2U8L2VtPiA8YnIvPnwgc2V0IHRoZSBpbmNsdXNpb24gc3R5bGUgZm9yIENTUyBmaWxlcyBoZXJlLi4uIG92ZXJyaWRlcyBkYiBzZXRpbmdzLiBFeDogdHJ1ZSAgZ2l2ZXMgPHN0eWxlIHR5cGU9XCJ0ZXh0L2Nzc1wiPkBpbXBvcnQgdXJsKCJ1cmwvY3NzZmlsZS5jc3MiKSBzY3JlZW47PC9zdHlsZT48YnIvPjwvbGk+DQoNCjxsaT48c3Ryb25nPmNhY2hlX2J1c3Rlcjwvc3Ryb25nPiA8ZW0+KG9wdGlvbmFsKSA8c3Ryb25nPkRlZmF1bHQ6ZmFsc2U8L3N0cm9uZz48L2VtPjxici8+fCBUaGlzIGlzIHRvIGluc3RhbnRseSB1bmNhY2hlIGFuIHNjcmlwdCBvbiB0aGUgY2xpZW50IHNpZGUgYWZ0ZXIgYSBuZXcgdXBsb2FkZWQgc2NyaXB0IGlzIGNyZWF0ZWQuLi4gaWU6IDEyLmpzPzEyNTUyMjUwMDcgIDxmb250IGNvbG9yPSJyZWQiPjxzdHJvbmc+KCB0cnVlL2ZhbHNlICk8L3N0cm9uZz48L2ZvbnQ+PC9saT4NCjxsaT48c3Ryb25nPmFzc2lnbj0iIiA8L3N0cm9uZz48ZW0+KG9wdGlvbmFsKTwvZW0+IDxici8+fCBBc3NpZ24gdGhlIG91dHB1dCAocmV0dXJuIHRoZSBzbWFydHkgYXNzaWdubWVudCkgIFVzZSBpbiBjb25qdW5jdGlvbiB3aXRoIG91dCB3aXRob3V0IFVSTDwvbGk+DQo8bGk+PHN0cm9uZz5mc2l6ZT0iIiA8L3N0cm9uZz48ZW0+KG9wdGlvbmFsKTwvZW0+IDxici8+fCBnZXQgdGhlIHNpemU8L2xpPg0KPGxpPjxzdHJvbmc+cm9vdD0iIiA8L3N0cm9uZz48ZW0+KG9wdGlvbmFsKTwvZW0+IDxici8+fCBTY3JpcHREZXBsb3kgY3JlYXRlcyBhIHRlbXAgZGlyZWN0b3IgaW4gdGhlIHVwbG9hZCBmb2xkZXIuICBJZiB5b3UgbW92ZSB0aGUgcGF0aCB0byB0aGUgdXBsYW9kIHRvIGEgc3ViZG9tYWluIHlvdSBtYXkgZ3VpZGUgdGhlIG91dHB1dCB3aXRoIHRoaXMuPC9saT4NCiAgICAgICAgPHVsIHN0eWxlPSJsaXN0LXN0eWxlLXBvc2l0aW9uOmluc2lkZTsiPjxsaT48c3Ryb25nPkV4YXBtbGU6PC9zdHJvbmc+IHlvdSBjaGFuZ2VkIDxDT0RFPiRjb25maWdbXCd1cGxvYWRzX3BhdGhcJ10gPSBcJy92YXIvd3d3L3Zob3N0cy9kb21haW4ub3JnL2h0dHBkb2NzL3VwbG9hZHNcJzs8L0NPREU+IDwvbGk+DQogICAgICAgICAgICA8bGk+PHN0cm9uZz50bzwvc3Ryb25nPiA8Q09ERT4kY29uZmlnW1wndXBsb2Fkc19wYXRoXCddID0gXC92YXIvd3d3L3Zob3N0cy9kb21haW4ub3JnL3N1YmRvbWFpbnMvbWVkaWEvaHR0cGRvY3MvdXBsb2Fkc1wnOzwvQ09ERT48L2xpPg0KICAgICAgICAgICAgPGxpPm5vdyB0aGUgdXBsb2FkcyB1cmwgd291bGQgbm90IHdvcmsgYXMgaXQgd291bGQgYmUgPHU+aHR0cDovL3d3dy5kb21haW4ub3JnL3VwbG9hZHM8L3U+PC9saT4NCiAgICAgICAgICAgIDxsaT48c3Ryb25nPlNvPC9zdHJvbmc+IGl0IGNhbiBiZSBjaGFuZ2VkIGhlcmUgdG8gPHU+aHR0cDovL21lZGlhLmRvbWFpbi5vcmcvdXBsb2FkczwvdT4gIDxmb250IGNvbG9yPSJyZWQiPjxzdHJvbmc+KE5PVEU6IHdhdGNoIHlvdXIgLyApPC9zdHJvbmc+PC9mb250PjwvbGk+DQogICAgICAgIDwvdWw+DQo8bGk+PHN0cm9uZz51cmw9IiIgPC9zdHJvbmc+PGVtPihvcHRpb25hbCk8L2VtPiA8YnIvPnxvdXRwdXRzIHRoZSB1cmwuPC9saT4NCg0KDQoNCg0KCQkNCg0KDQoNCg0KDQoNCg0KDQo8IS0tPGxpPjxzdHJvbmc+U2FuZEJveD10cnVlIDwvc3Ryb25nPjxlbT4ob3B0aW9uYWwpPC9lbT4gPGJyLz58IGZhbHNlPGJyLz48L2xpPg0KDQo8bGk+PHN0cm9uZz5SVU5hY3Rpb249IiIgPC9zdHJvbmc+PGVtPihvcHRpb25hbCk8L2VtPiA8YnIvPnwgVURUPGJyLz58IFVSTCA8ZW0+KC4uL3BsdWdpbnMvZnVuY3Rpb24uZmlsZW5hbWUucGhwKTwvZW0+PGJyLz58ICpNb3JlIGNvbWluZyBTb29uKjxici8+PC9saT4NCjxsaT48c3Ryb25nPkxhbmc9IiIgPC9zdHJvbmc+PGVtPihvcHRpb25hbCk8L2VtPiA8YnIvPnwgVXNlIENvdW50cnkgQ29kZXMgVG8gZHluYW1pY2x5IHNldCB0aGUgbGFuZ3VhZ2Ugb2YgdGhlIFBheVBhbCBwYWdlPGJyLz48L2xpPi0tPg0KDQo8L3VsPg0KPGJyLz4NCg0KPGJyLz48YnIvPg0KPGgyPjxhIGlkPSJQcm9ibGVtX0RvbWFpbiI+PC9hPlByb2JsZW0gRG9tYWluPC9oMj4NCjxwPlBhZ2VzIHRoYXQgcmVmZXIgdG8gbXVsdGlwbGUgQ1NTIG9yIEphdmFTY3JpcHQgZmlsZXMgb2Z0ZW4gc3VmZmVyIGZyb20gc2xvd2VyICAgcGFnZSBsb2FkcywgZHVlIHRvIHRoZSBicm93c2VyIHJlcXVlc3RpbmcgZWFjaCBmaWxlIGluZGl2aWR1YWxseS4gTWFueSBicm93c2VycyAgIGFsc28gYXJlIGxpbWl0ZWQgdG8gYSBmZXcgc2ltdWx0YW5lb3VzIHJlcXVlc3RzIHBlciBkb21haW4uIFRoZSB3YWl0IGZvciBhICAgc2VyaWVzIG9mIHJlcXVlc3RzIGFuZCB0aGUgdHJhbnNmZXIgb2YgdW5vcHRpbWl6ZWQgZmlsZXMgY2FuIGRyYW1hdGljYWxseSByZWR1Y2UgICB0aGUgY2xpZW50LXNpZGUgcGVyZm9ybWFuY2Ugb2YgeW91ciBzaXRlLiA8L3A+DQo8cD5IZXJlIGFyZSBhIGhhbmRmdWwgb2YgWWFob28hXCdzIGJlc3QgcHJhY3RpY2VzIHRoYXQgYXJlIGFkZHJlc3NlZCBieSB0aGUgdXNlIG9mIFNjcmlwdERlcGxveS4gPC9wPg0KPHVsPg0KICA8bGk+PGEgaHJlZj0iaHR0cDovL2RldmVsb3Blci55YWhvby5jb20vcGVyZm9ybWFuY2UvcnVsZXMuaHRtbCNudW1faHR0cCIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPk1ha2UgRmV3ZXIgSFRUUCBSZXF1ZXN0czwvYT48L2xpPg0KICA8bGk+PGEgaHJlZj0iaHR0cDovL2RldmVsb3Blci55YWhvby5jb20vcGVyZm9ybWFuY2UvcnVsZXMuaHRtbCNleHBpcmVzIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+QWRkIGFuIEV4cGlyZXMgb3IgYSBDYWNoZS1Db250cm9sIEhlYWRlcjwvYT48L2xpPg0KICA8bGk+PGEgaHJlZj0iaHR0cDovL2RldmVsb3Blci55YWhvby5jb20vcGVyZm9ybWFuY2UvcnVsZXMuaHRtbCNnemlwIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+R3ppcCBDb21wb25lbnRzPC9hPjwvbGk+DQogIDxsaT48YSBocmVmPSJodHRwOi8vZGV2ZWxvcGVyLnlhaG9vLmNvbS9wZXJmb3JtYW5jZS9ydWxlcy5odG1sI21pbmlmeSIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPk1pbmlmeSBKYXZhU2NyaXB0IGFuZCBDU1M8L2E+PC9saT4NCiAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9kZXZlbG9wZXIueWFob28uY29tL3BlcmZvcm1hbmNlL3J1bGVzLmh0bWwjZXRhZ3MiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5Db25maWd1cmUgRVRhZ3M8L2E+PC9saT4NCiAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9kZXZlbG9wZXIueWFob28uY29tL3BlcmZvcm1hbmNlL3J1bGVzLmh0bWwjdW5kZXIyNSIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPktlZXAgQ29tcG9uZW50cyB1bmRlciAyNUs8L2E+PC9saT4NCjwvdWw+DQo8aDM+PGEgbmFtZT0iQWNrbm93bGVkZ21lbnRzIj48L2E+QWNrbm93bGVkZ21lbnRzPC9oMz4NCjxwPk1pbmlmeSB3YXMgaW5zcGlyZWQgYnkgPGEgaHJlZj0iaHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL2pzY3NzY29tcC8iIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5qc2Nzc2NvbXA8L2E+IGJ5IE1heGltIE1hcnR5bnl1ayBhbmQgYnkgdGhlIGFydGljbGUgXCc8YSBocmVmPSJodHRwOi8vd3d3Lmh1bmxvY2suY29tL2Jsb2dzL1N1cGVyY2hhcmdlZF9KYXZhc2NyaXB0IiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+U3VwZXJjaGFyZ2VkIEphdmFTY3JpcHQ8L2E+XCcgYnkgUGF0cmljayBIdW5sb2NrLiA8L3A+DQo8cD5UaGUgPGEgaHJlZj0iaHR0cDovL3d3dy5jcm9ja2ZvcmQuY29tL2phdmFzY3JpcHQvanNtaW4uaHRtbCIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPkpTTWluIGxpYnJhcnk8L2E+IHVzZWQgZm9yIEphdmFTY3JpcHQgbWluaWZpY2F0aW9uIHdhcyBvcmlnaW5hbGx5ICAgd3JpdHRlbiBieSBEb3VnbGFzIENyb2NrZm9yZCBhbmQgd2FzIDxhIGhyZWY9Imh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC9qc21pbi1waHAiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5wb3J0ZWQgdG8gUEhQPC9hPiBieSBSeWFuICAgR3JvdmUgc3BlY2lmaWNhbGx5IGZvciB1c2UgaW4gTWluaWZ5LiA8L3A+DQoNCg0KPGgzPlN1cHBvcnQ8L2gzPg0KPGg0PlNjcmVlbmNhc3RzIGZvciBleHRyYSBoZWxwIHdpbGwgZmFsbG93LS0tIG9uIHRoZSBUT0RPPC9oND4NCjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4NCjx1bD4NCjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlIG9yIHRvIGZpbGUgYSBidWcgcmVwb3J0IHZpc2l0IDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvc2NyaXB0ZGVwbG95Ij50aGUgQ01TIEZvcmdlPC9hPi48L2xpPg0KPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnIj5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi48L2xpPg0KPC91bD4NCg0KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+DQo8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMDksIGplcmVteUJhc3MgJmx0OzxhIGhyZWY9Imh0dHA6Ly9jb3JiZW5zcHJvZHVjdHMuY29tIj5jb3JiZW5zcHJvZHVjdHMuY29tPC9hPiZndDsgQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPg0KPHN0cm9uZz5TdXBwb3J0IG1vcmUgbW9kcyBsaWtlIHRoaXM6PC9zdHJvbmc+PGZvcm0gYWN0aW9uPSJodHRwczovL3d3dy5wYXlwYWwuY29tL2NnaS1iaW4vd2Vic2NyIiBtZXRob2Q9InBvc3QiPg0KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY21kIiB2YWx1ZT0iX3MteGNsaWNrIj4NCjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Imhvc3RlZF9idXR0b25faWQiIHZhbHVlPSI4ODE3Njc1Ij4NCjxpbnB1dCB0eXBlPSJpbWFnZSIgc3JjPSJodHRwczovL3d3dy5wYXlwYWwuY29tL2VuX1VTL2kvYnRuL2J0bl9kb25hdGVfTEcuZ2lmIiBib3JkZXI9IjAiIG5hbWU9InN1Ym1pdCIgYWx0PSJQYXlQYWwgLSBUaGUgc2FmZXIsIGVhc2llciB3YXkgdG8gcGF5IG9ubGluZSEiPg0KPGltZyBhbHQ9IiIgYm9yZGVyPSIwIiBzcmM9Imh0dHBzOi8vd3d3LnBheXBhbC5jb20vZW5fVVMvaS9zY3IvcGl4ZWwuZ2lmIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj4NCjwvZm9ybT48YnIvPg0KPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCI+R05VIFB1YmxpYyBMaWNlbnNlPC9hPi4gWW91IG11c3QgYWdyZWUgdG8gdGhpcyBsaWNlbnNlIGJlZm9yZSB1c2luZyB0aGUgbW9kdWxlLjwvcD4NCjwvZGl2ID48YiBjbGFzcz0icmJvdHRvbSI+PGIgY2xhc3M9InI0Ij48L2I+PGIgY2xhc3M9InIzIj48L2I+IDxiIGNsYXNzPSJyMiI+PC9iPiA8YiBjbGFzcz0icjEiPjwvYj48L2I+DQoNCjwvZGl2Pg0KJzsNCj8+DQo=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/ext/de_DE.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ1NjcmlwdCBEZXBsb3knOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdTaWUgc29sbHRlbiBzaWNoIGFscyBlcnN0ZXMgZGllIEhpbGZlIGFuc2VoZW4uJzsKJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICdMYXNzZW4gU2llIHVucyB3aXNzZW4sIHdpZSB3aXIgU2NyaXB0RGVwbG95IGJlc3NlciBtYWNoZW4gayZvdW1sO25uZW4uIDxhIGhyZWY9Imh0dHA6Ly9oZWxwLmNvcmJlbnNwcm9kdWN0cy5jb20vbWFrZS1jb250YWN0Lmh0bWwiPktvbnRha3RpZXJlbiBTaWUgdW5zLCB3aXIgZnJldWVuIHVucyB2b24gSWhuZW4genUgaCZvdW1sO3Jlbi48L2E+JzsKJGxhbmdbJ3JlYWxseV91bmluc3RhbGwnXSA9ICdVbmluc3RhbGxpbmcgdGhpcyBtb2R1bGUgd2lsbCBub3QgYWZmZWN0IGFueSBldmVudCBkYXRhIGFuZCBhbGwgYm9va3MgdG8gZGF0ZSB3aWxsIHN0aWxsIGJlIHRoZXJlLiBEbyB5b3Ugd2lzaCB0byBjb250aW51ZT8nOwokbGFuZ1sndW5pbnN0YWxsZWQnXSA9ICdNb2R1bCBkZWluc3RhbGxpZXJ0Lic7CiRsYW5nWydpbnN0YWxsZWQnXSA9ICdNb2R1bHZlcnNpb24gJXMgaW5zdGFsbGllcnQuJzsKJGxhbmdbJ3VwZ3JhZGVkJ10gPSAnTW9kdWwgYXVmIFZlcnNpb24gJXMgYWt0dWFsaXNpZXJ0Lic7CiRsYW5nWydtb2R1bGVfb3B0aW9ucyddID0gJ01vZHVsb3B0aW9uZW4nOwokbGFuZ1sndGVtcGxhdGVfbWFuZyddID0gJ1RlbXBsYXRlIE1hbmFnZXInOwokbGFuZ1snRGVwbG95bWVudHNldHRpbmdzJ10gPSAnRW50d2lja2x1bmdzb3B0aW9uZW4nOwokbGFuZ1snVmFsc2V0dGluZ3MnXSA9ICdWYWxpZGllcnVuZ3NlaW5zdGVsbHVuZ2VuJzsKJGxhbmdbJ2VuJ10gPSAnRW5nbGlzY2ggKEVuZ2xpc2gpJzsKJGxhbmdbJ2ZyJ10gPSAnRnJhbiZjY2VkaWw7YWlzIChGcmFueiZvdW1sO3Npc2NoKSc7CiRsYW5nWydpdCddID0gJ0l0YWxpYW5vIChJdGFsaWVuaXNjaCknOwokbGFuZ1sna28nXSA9ICdLb3JlYW4gKEtvcmVhbmlzY2gpJzsKJGxhbmdbJ2phJ10gPSAnSmFwYW5lc2UgKEphcGFuaXNjaCknOwokbGFuZ1snZXMnXSA9ICdFc3BhJm50aWxkZTtvbCAoU3BhbmlzY2gpJzsKJGxhbmdbJ3poLWNuJ10gPSAnQ2hpbmVzZSAoQ2hpbmVzaXNjaCknOwokbGFuZ1snbmwnXSA9ICdOZWRlcmxhbmRzIChIb2xsJmF1bWw7bmRpc2NoKSc7CiRsYW5nWydkZSddID0gJ0RldXRzY2gnOwokbGFuZ1sncGwnXSA9ICdQb2xza2kgKFBvbG5pc2NoKSc7CiRsYW5nWydybyddID0gJ1JvbWFuaWFuIChSb20mYXVtbDtuaXNjaCknOwokbGFuZ1snY3MnXSA9ICcmRWdyYXZlO2Umc2Nhcm9uO3RpbmEgKEVzdGlzY2gpJzsKJGxhbmdbJ2JnJ10gPSAnQnVsZ2FyaWEnOwokbGFuZ1snc3YnXSA9ICdTdmVuc2thJzsKJGxhbmdbJ2ZhJ10gPSAnUGVyc2lhbiAoRmFyc2kpJzsKJGxhbmdbJ3J1J10gPSAnUnVzc2lhbiAnOwokbGFuZ1sncHQtQlInXSA9ICcgQnJhemlsbGlhbiBQb3J0dWd1ZXNlIChzdGFuZGFyZCknOwokbGFuZ1snTG5vbmUnXSA9ICdLZWluZSBXYXJudW5nZW4nOwokbGFuZ1snTDAnXSA9ICdMZXZlbCAwJzsKJGxhbmdbJ0wxJ10gPSAnTGV2ZWwgMSc7CiRsYW5nWydMMiddID0gJ0xldmVsIDInOwokbGFuZ1snY3NzMSddID0gJ0NTUyAxJzsKJGxhbmdbJ2NzczInXSA9ICdDU1MgMic7CiRsYW5nWydjc3MyMSddID0gJ0NTUyAyLjEnOwokbGFuZ1snY3NzMyddID0gJ0NTUyAzJzsKJGxhbmdbJ3N2ZyddID0gJ1NWRyc7CiRsYW5nWydzdmdiYXNpYyddID0gJ1NWRyBiYXNpYyc7CiRsYW5nWydzdmd0aW55J10gPSAnU1ZHIHRpbnknOwokbGFuZ1snbW9iaWxlJ10gPSAnbW9iaWxlJzsKJGxhbmdbJ2F0c2MtdHYnXSA9ICdhdHNjLXR2JzsKJGxhbmdbJ3R2J10gPSAnSW50ZW5kZWQgZm9yIHRlbGV2aXNpb24tdHlwZSBkZXZpY2VzLic7CiRsYW5nWydub25lJ10gPSAnbmljaHRzJzsKJGxhbmdbJ3NhdmVWQUxzZXR0aW5ncyddID0gJ1ZhbGlkaWVydW5nc2VpbnN0ZWxsdW5nZW4gc3BlaWNoZXJuJzsKJGxhbmdbJ3NldHRpbmdzJ10gPSAnRWluc3RlbGx1bmdlbic7CiRsYW5nWydzZXR0aW5nc3NhdmVkJ10gPSAnRWluc3RlbGx1bmdlbiBnZXNwZWljaGVydCc7CiRsYW5nWydsZWF2ZWNvZGUnXSA9ICdDb2RlIG5pY2h0IHZlciZhdW1sO25kZXJuJzsKJGxhbmdbJ2Zvcm1hdGNvZGUnXSA9ICdDb2RlIHNjaCZvdW1sO24gZm9ybWF0aWVyZW4nOwokbGFuZ1snc2NyYW1ibGVjb2RlJ10gPSAnQ29kZSB6dXNhbW1lbnNjaHJlaWJlbic7CiRsYW5nWydjbGVhbmNvZGUnXSA9ICdDb2RlIGJlcmVpbmlnZW4gdW5kIGlycmVsZXZhbnRlIFN0ZWxsZW4gZW50ZmVybmVuJzsKJGxhbmdbJ3NhdmVzZXR0aW5ncyddID0gJ0VpbnN0ZWxsdW5nZW4gc3BlaWNoZXJuJzsKJGxhbmdbJ21hbmdsZXR5cGV0ZXh0J10gPSAnQ29kZWZvcm1hdGllcnVuZyc7CiRsYW5nWydicmllZiddID0gJ0JyaWVmJzsKJGxhbmdbJ3ZlcmJvc2UnXSA9ICdWZXJib3NlJzsKJGxhbmdbJ2NvZGVmaXhlcyddID0gJ0NvZGUgZml4ZXMnOwokbGFuZ1snZm9yY2Vsb3dlcnRhZ3N0ZXh0J10gPSAnS2xlaW5idWNoc3RhYmVuIGluIFRhZ3MgZXJ6d2luZ2VuJzsKJGxhbmdbJ2ZvcmNlbG93ZXJ0YWdzaGVscCddID0gJ1p1ciBiZXNzZXJlbiBYSFRNTC1Lb21wYXRpYmlsaXQmYXVtbDt0JzsKJGxhbmdbJ2hpZGVtZXNzYWdlc3RleHQnXSA9ICdOYWNocmljaHRlbiBhbSBFbmRlIGRlcyAoWClIVE1MLUNvZGVzIHZlcmJlcmdlbic7CiRsYW5nWydpbmRlbnR3aWR0aHRleHQnXSA9ICdCcmVpdGUgZGVyIEVpbnImdXVtbDtja3VuZyc7CiRsYW5nWydzcGFjZXMnXSA9ICdMZWVyemVpY2hlbic7CiRsYW5nWydkZWJ1Z2xldmVsdGV4dCddID0gJ0Ftb3VudCBvZiBkZWJ1Z2dpbmcgb3V0cHV0OiAnOwokbGFuZ1snZGVidWd0ZXh0J10gPSAnQ29kZSBkZWJ1ZyBtb2RlJzsKJGxhbmdbJ1NjcmlwdF9saXN0J10gPSAnU2NyaXB0cyc7CiRsYW5nWydBc3NfaGVhZGVyJ10gPSAnVW5pZmllZCBTY3JpcHRzJzsKJGxhbmdbJ1NhbXBsZVRhZyddID0gJ0JlaXNwaWVsLVRhZyc7CiRsYW5nWydwcm9tcHRfbmV3U2NyaXB0J10gPSAnTmV1ZXMgU2NyaXB0IGhpbnp1ZiZ1dW1sO2dlbic7CiRsYW5nWydwcm9tcHRfbmV3U2NyaXB0QXNzJ10gPSAnTmV1ZSBTY3JpcHQtR3J1cHBpZXJ1bmcgaGluenVmJnV1bWw7Z2VuJzsKJGxhbmdbJ3Byb21wdF9hZGR0ZW1wbGF0ZSddID0gJ05ldWVzIFRlbXBsYXRlIGhpbnp1ZiZ1dW1sO2dlbic7CiRsYW5nWyd0aXRsZV9Hcm91cHMnXSA9ICdMaXN0ZSBncnVwcGllcnRlciBTY3JpcHRlJzsKJGxhbmdbJ3RpdGxlX1NjcmlwdHMnXSA9ICdMaXN0ZSBlaW56ZWxuZXIgU2NyaXB0ZSc7CiRsYW5nWydhcmV5b3VzdXJlJ10gPSAnSW1wb3J0YW50OlxuXG5JZiB0aGlzIGlzIGRlbGV0ZWQgYWxsIGluZm9ybWF0aW9uIHdpbGwgYmUgbG9zdCFcblxuSWYgeW91IGhhdmUgdGhpcyBzY3JpcHQgaW4gYSBncm91cCB5b3Ugd2lsbCBicmVhayB0aGUgdGllIGFuZCB3aWxsIG5lZWQgdG8gZWRpdCB0aGUgZ3JvdXAuXG5JdCBpcyBiZXN0IHRvIHN0YXJ0IHRoZSBkZWxldGlvbiBwcm9jZXNzIGZyb20gdGhlIEFzc2lnbm1lbnQgYXJlYS5cblxuWU9VIEFMU08gTE9TRSBZT1VSIFJFVklTSU9OIEhJU1RPUlkgRk9SIFRISVMgU0NSSVBULi4gQVJFIFlPVSBSRUFMWSBTVVJFPz8/JzsKJGxhbmdbJ3NtYXJ0eUhvdyddID0gJ1RoZSBzbWFydHkgd29ya3MgbGlrZSB0aGlzLi4uIFdoZXJlIHlvdSYjMDM5O2QgaGF2ZSB7JHNtYXJ0eS5ub3d9IHlvdSBkbyB7eyRzbWFydHkubm93fX0gIC4gIE5vdyB5b3UgY2FuIGRvIHNtYXJ0eSBzdHVmZic7CiRsYW5nWydhbGwnXSA9ICdTdWl0YWJsZSBmb3IgYWxsIGRldmljZXMuJzsKJGxhbmdbJ2F1cmFsJ10gPSAnSW50ZW5kZWQgZm9yIHNwZWVjaCBzeW50aGVzaXplcnMuJzsKJGxhbmdbJ2JyYWlsbGUnXSA9ICdJbnRlbmRlZCBmb3IgYnJhaWxsZSB0YWN0aWxlIGZlZWRiYWNrIGRldmljZXMuJzsKJGxhbmdbJ2VtYm9zc2VkJ10gPSAnSW50ZW5kZWQgZm9yIHBhZ2VkIGJyYWlsbGUgcHJpbnRlcnMuJzsKJGxhbmdbJ2hhbmRoZWxkJ10gPSAnSW50ZW5kZWQgZm9yIGhhbmRoZWxkIGRldmljZXMnOwokbGFuZ1sncHJpbnQnXSA9ICdJbnRlbmRlZCBmb3IgcGFnZWQsIG9wYXF1ZSBtYXRlcmlhbCBhbmQgZm9yIGRvY3VtZW50cyB2aWV3ZWQgb24gc2NyZWVuIGluIHByaW50IHByZXZpZXcgbW9kZS4nOwokbGFuZ1sncHJvamVjdGlvbiddID0gJyBJbnRlbmRlZCBmb3IgcHJvamVjdGVkIHByZXNlbnRhdGlvbnMsIGZvciBleGFtcGxlIHByb2plY3RvcnMgb3IgcHJpbnQgdG8gdHJhbnNwYXJlbmNpZXMuJzsKJGxhbmdbJ3NjcmVlbiddID0gJ0ludGVuZGVkIHByaW1hcmlseSBmb3IgY29sb3IgY29tcHV0ZXIgc2NyZWVucy4nOwokbGFuZ1sndHR5J10gPSAnSW50ZW5kZWQgZm9yIG1lZGlhIHVzaW5nIGEgZml4ZWQtcGl0Y2ggY2hhcmFjdGVyIGdyaWQsIHN1Y2ggYXMgdGVsZXR5cGVzIGFuZCB0ZXJtaW5hbHMuJzsKJGxhbmdbJ01lZGlhVHlwZSddID0gJ2FsbCA6IFN1aXRhYmxlIGZvciBhbGwgZGV2aWNlcy48YnIvPg0KYXVyYWwgOiBJbnRlbmRlZCBmb3Igc3BlZWNoIHN5bnRoZXNpemVycy48YnIvPg0KYnJhaWxsZSA6IEludGVuZGVkIGZvciBicmFpbGxlIHRhY3RpbGUgZmVlZGJhY2sgZGV2aWNlcy48YnIvPg0KZW1ib3NzZWQgOiBJbnRlbmRlZCBmb3IgcGFnZWQgYnJhaWxsZSBwcmludGVycy48YnIvPg0KaGFuZGhlbGQgOiBJbnRlbmRlZCBmb3IgaGFuZGhlbGQgZGV2aWNlczxici8+DQpwcmludCA6IEludGVuZGVkIGZvciBwYWdlZCwgb3BhcXVlIG1hdGVyaWFsIGFuZCBmb3IgZG9jdW1lbnRzIHZpZXdlZCBvbiBzY3JlZW4gaW4gcHJpbnQgcHJldmlldyBtb2RlLjxici8+DQpwcm9qZWN0aW9uIDogSW50ZW5kZWQgZm9yIHByb2plY3RlZCBwcmVzZW50YXRpb25zLCBmb3IgZXhhbXBsZSBwcm9qZWN0b3JzIG9yIHByaW50IHRvIHRyYW5zcGFyZW5jaWVzLjxici8+DQpzY3JlZW4gOiBJbnRlbmRlZCBwcmltYXJpbHkgZm9yIGNvbG9yIGNvbXB1dGVyIHNjcmVlbnMuPGJyLz4NCnR0eSA6IEludGVuZGVkIGZvciBtZWRpYSB1c2luZyBhIGZpeGVkLXBpdGNoIGNoYXJhY3RlciBncmlkLCBzdWNoIGFzIHRlbGV0eXBlcyBhbmQgdGVybWluYWxzLjxici8+DQp0diA6IEludGVuZGVkIGZvciB0ZWxldmlzaW9uLXR5cGUgZGV2aWNlcy4nOwokbGFuZ1snQ2FuY2VsZWQnXSA9ICdZb3UgQ2FuY2VsZWQgb3V0IG9mIHRoZSBvcGVyYXRpb24uICBBbnkgV29yayB5b3UgbWF5IGhhdmUgZW50ZXJlZCBoYXMgYmVlbiBsb3N0Lic7CiRsYW5nWydCdG5BRERFRCddID0gJ1lvdSBKdXN0IEFkZGVkIGEgbmV3IFNjcmlwdCc7CiRsYW5nWydCdG5FRElURUQnXSA9ICdZb3UgSnVzdCBFZGl0ZWQgYW4gZXhpc3RpbmcgU2NyaXB0JzsKJGxhbmdbJ0J0bkRFTEVURUQnXSA9ICdZb3UgSnVzdCBEZWxldGVkIGFuIGV4aXN0aW5nIFNjcmlwdCc7CiRsYW5nWyd0eXBlX2xhYmVsJ10gPSAnVHlwZSc7CiRsYW5nWydyZXZpc2lvbiddID0gJ1JldmlzaW9uJzsKJGxhbmdbJ2lzRWRpdCddID0gJ2lzIGVkaXRpbmcnOwokbGFuZ1snc3RlYWwnXSA9ICdTdGVhbCB0aGUgZG9jdW1lbnQnOwokbGFuZ1snZ2V0X3RhZyddID0gJ0dldCB0aGUgdGFnJzsKJGxhbmdbJ2VtdHB5R3JvdXAnXSA9ICdZb3UmIzAzOTtsbCBuZWVkIHRvIGFkZCBhIHNjcmlwdCB0byB0aGUgZ3JvdXAgYmVmb3JlIGNhbGxpbmcgaXQnOwokbGFuZ1snTm9fU2NyaXB0cyddID0gJ1RoZXJlIGN1cnJlbnRseSBubyBzY3JpcHRzJzsKJGxhbmdbJ05vX0dyb3VwcyddID0gJ1RoZXJlIGN1cnJlbnRseSBubyBncm91cHMnOwokbGFuZ1snc2V0aW5hY3RpdmUnXSA9ICdTZXQgdGVtcGxhdGUgaW5hY3RpdmUnOwokbGFuZ1snc2V0YWN0aXZlJ10gPSAnU2V0IHRlbXBsYXRlIGFjdGl2ZSc7CiRsYW5nWydub3RkZWZhdWx0J10gPSAnTm90IHRoZSBkZWZhdWx0IHRlbXBsYXRlLic7CiRsYW5nWydub3R2YWxpZCddID0gJ1N0eWxlc2hlZXQgYXNzb2NpYXRpb25zIGhhdmUgbm90IGJlZW4gc2V0IHByb3Blcmx5IGZvciB0aGlzIHRlbXBsYXRlJzsKJGxhbmdbJ3RlbXBsYXRlX3RhYiddID0gJ1N0eWxlc3dpdGNoZXIgRm9ybSB0ZW1wbGF0ZSc7CiRsYW5nWydwYWdlX3RlbXBsYXRlc190YWInXSA9ICdQYWdlIFRlbXBsYXRlcyc7CiRsYW5nWydzdWJtaXQnXSA9ICdTdWJtaXQnOwokbGFuZ1snYXBwbHknXSA9ICdBcHBseSc7CiRsYW5nWydjYW5jZWwnXSA9ICdDYW5jZWwnOwokbGFuZ1snZ28nXSA9ICdHbyc7CiRsYW5nWydwcmV2aWV3J10gPSAncHJldmlldyc7CiRsYW5nWydpbmxpbmVoZWxwJ10gPSAnSGVscCc7CiRsYW5nWydzY2lwdG9wdGlvbnMnXSA9ICdPcHRpb25zJzsKJGxhbmdbJ3BlcnNpc3RlbnQnXSA9ICdQZXJzaXN0ZW50JzsKJGxhbmdbJ3ByZWZlcnJlZCddID0gJ1ByZWZlcnJlZCc7CiRsYW5nWydhbHRlcm5hdGUnXSA9ICdBbHRlcm5hdGUnOwokbGFuZ1snbmFtZSddID0gJ05hbWUnOwokbGFuZ1sndGl0bGUnXSA9ICdUaXRsZSc7CiRsYW5nWydpZCddID0gJ0lkJzsKJGxhbmdbJ2FjdGl2ZSddID0gJ0FjdGl2ZSc7CiRsYW5nWydkZWZhdWx0J10gPSAnRGVmYXVsdCc7CiRsYW5nWyd2YWxpZCddID0gJ1ZhbGlkJzsKJGxhbmdbJ3VzYWdlX2NvdW50J10gPSAnVXNhZ2UnOwokbGFuZ1sneWVzJ10gPSAnWWVzJzsKJGxhbmdbJ25vJ10gPSAnTm8nOwokbGFuZ1snZWRpdGNzcyddID0gJ0VkaXQgc3R5bGVzaGVldCBhc3NvY2lhdGlvbnMnOwokbGFuZ1snZWRpdHRlbXBsYXRlJ10gPSAnRWRpdCBUZW1wbGF0ZSBjb250ZW50JzsKJGxhbmdbJ2RlbGV0ZXRlbXBsYXRlJ10gPSAnRGVsZXRlIFRlbXBsYXRlJzsKJGxhbmdbJ2NvcHl0ZW1wbGF0ZSddID0gJ0NvcHkgVGVtcGxhdGUnOwokbGFuZ1sncHJvbXB0X3N0eWxlc2hlZXQnXSA9ICdTZWxlY3QgYSBwYWdlIHN0eWxlJzsKJGxhbmdbJ3Byb21wdF90ZW1wbGF0ZSddID0gJ1RlbXBsYXRlJzsKJGxhbmdbJ3Byb21wdF9ncm91cG5hbWUnXSA9ICdHcm91cCBOYW1lJzsKJGxhbmdbJ3Byb21wdF9hZGRncm91cCddID0gJ0FkZCBBIEdyb3VwJzsKJGxhbmdbJ3Byb21wdF9ncm91cHR5cGUnXSA9ICdHcm91cCBUeXBlJzsKJGxhbmdbJ3Byb21wdF9hZGQnXSA9ICdBZGQnOwokbGFuZ1sncHJvbXB0X3NlbGVjdG9uZSddID0gJ1NlbGVjdCBPbmUnOwokbGFuZ1sncHJvbXB0X2FkZF9hbHRlcm5hdGUnXSA9ICdBZGQgYW4gQWx0ZXJuYXRlJzsKJGxhbmdbJ2Vycm9yX3BsZWFzZV9zZWxlY3Rfc3R5bGVzaGVldCddID0gJ1BsZWFzZSBTZWxlY3QgYSBTdHlsZXNoZWV0JzsKJGxhbmdbJ1NjcmlwdFNldF9sYWJlbCddID0gJ1NjcmlwdCBJRCc7CiRsYW5nWydzY3JpcHRUeXBlX2xhYmVsJ10gPSAnU2NyaXB0IFR5cGUnOwokbGFuZ1snU2NyaXB0TmFtZV9sYWJlbCddID0gJ1NjcmlwdCBOYW1lJzsKJGxhbmdbJ3RlbXBsYXRlbmFtZV9sYWJlbCddID0gJ1RlbXBsYXRlIE5hbWUnOwokbGFuZ1snU2luZ2xlQ29kZV9sYWJlbCddID0gJ0RlZmF1bHQgVGFnJzsKJGxhbmdbJ0dyb3VwdFNpemVfbGFiZWwnXSA9ICdUb3RhbCc7CiRsYW5nWydub3Rlc19sYWJlbCddID0gJ05vdGVzJzsKJGxhbmdbJ1Nob3dWYWxfbGFibGUnXSA9ICdLZWVwIE1lc3NhZ2VzIE9wZW4nOwokbGFuZ1snVHVybk9OVmFsX2xhYmxlJ10gPSAnVHVybiA8c3Ryb25nPk9OPC9zdHJvbmc+IFZhbGlkYXRpb24nOwokbGFuZ1snaG90TGlua0NoZWNrX2xhYmxlJ10gPSAnRG8gSG90TGluayBDaGVjayc7CiRsYW5nWydUcnVuT25ob3RMaW5rQ2hlY2snXSA9ICdZb3UgbmVlZCB0byB0dXJuIG9uIHRoZSBIb3RMaW5rIENoZWNrJzsKJGxhbmdbJ2ZpbHRlclByb3BfbGFibGUnXSA9ICcgRmlsdGVyIG91dCBwcm9wZXJ0aWVzIHRvIGhlbHAgdmFsaWRhdGUnOwokbGFuZ1snQ1NTcHJvZmlsZV9sYWJsZSddID0gJyBDU1MgUHJvZmlsZSc7CiRsYW5nWyd1c2VybWVkaXVtX2xhYmxlJ10gPSAnIFVzZXIgTWVkaXVtJzsKJGxhbmdbJ1ZBTExhbmdfbGFibGUnXSA9ICcgTGFuZ3VhZ2UnOwokbGFuZ1sndzNjQ1NTd2FybmluZ19sYWJsZSddID0gJyB3M2MgQ1NTIFdhcm5pbmcgTGV2ZWwnOwokbGFuZ1snTWVkaWFUeXBlX2xhYmVsJ10gPSAnTWVkaWFUeXBlJzsKJGxhbmdbJ01pbmlmeV9sYWJlbCddID0gJ01pbmlmeSBvbiBPdXRwdXQnOwokbGFuZ1snQ3JlYXRpb25EYXRlX2xhYmVsJ10gPSAnQ3JlYXRpb24gRGF0ZSc7CiRsYW5nWydNb2RpZmVkRGF0ZV9sYWJlbCddID0gJ01vZGlmaWVkIERhdGUnOwokbGFuZ1sncGF0aE9wdGlvbl9sYWJlbCddID0gJ1VzZSBhIHBhdGg8ZW0+KHVzZSAmcXVvdDsvdXBsb2Fkcy8uLi4mcXVvdDspPC9lbT4nOwokbGFuZ1sncm9vdFVSTE9wdGlvbl9sYWJlbCddID0gJ1VzZSBhIHNwZWNpZmljIHJvb3QgVVJMPGVtPih1c2Ugc2NoZW1hICZxdW90O2h0dHBzOi8vc3ViLmRvbWFpbi50bGQvJnF1b3Q7KTwvZW0+JzsKJGxhbmdbJ0dyb290VVJMJ10gPSAnR2xvYmFsIFNjcmlwdCBSb290IFVSTCc7CiRsYW5nWydlbXB0eWNhY2hlRXJyb3JfZG9BRFVJVCddID0gJ2ZhaWxlZCB0byBlbXB0eSB0aGUgY2FjaGUgYXQnOwokbGFuZ1snZW1wdGllZENhY2hfZG9BRFVJVCddID0gJ2VtcHRpZWQgdGhlIHNjcmlwdCBjYWNoZSc7CiRsYW5nWydjbGVhcmVkUmV2aXNpb25fZG9BRFVJVCddID0gJ2NsZWFyZWQgdGhlIHJldmlzaW9uIGhpc3RvcnkgZm9yJzsKJGxhbmdbJ0NoZWNrZWRPdXRfZG9BRFVJVCddID0gJ0NoZWNrZWQgb3V0IHNjcmlwdCAnOwokbGFuZ1sncmVsZWFzZWRfZG9BRFVJVCddID0gJ3JlbGVhc2VkIHNjcmlwdCAnOwokbGFuZ1snU2NyaXB0SXNfbGFiZWwnXSA9ICdVc2UgdGhpcyBzY3JpcHQgPGVtPihOb3RlOiBJZiBhIHBhdGggaXMgc2V0LCBpdCB3aWxsIG92ZXIgcmlkZSB0aGlzKTwvZW0+JzsKJGxhbmdbJ2RlYnVnSVRfbGFiZWwnXSA9ICdkZWJ1Z0lUJzsKJGxhbmdbJ2RlYnVnSVRub3RlX2xhYmVsJ10gPSAnPGVtPihNdXN0IGhhdmUgRmlyZXBocCBtb2QpPC9lbT4nOwokbGFuZ1snZGVidWdUJ10gPSAnRGVidWdpbmcgT3B0aW9ucyc7CiRsYW5nWydFZGl0SGlzdG9yeSddID0gJ1VzZXIgSGlzdG9yeSBFZGl0aW5nJzsKJGxhbmdbJ25vbmVJblR5cGUnXSA9ICc8aDE+WW91IG11c3QgZmlyc3QgYWRkIDxici8+YSBzY3JpcHQgaW4gdGhpcyB0eXBlPC9oMT4nOwokbGFuZ1sncmV2aXNpb25UaXRsZSddID0gJ1JldmlzaW9uIEhpc3RvcnknOwokbGFuZ1sncmV2aXNpb25fbGFiZWwnXSA9ICc8c3Ryb25nPlR1cm4gb24gdGhlIHJldmlzaW9uIGhpc3Rvcnk8L3N0cm9uZz4nOwokbGFuZ1sncmV2aXNpb25fb3AnXSA9ICc8aDE+UmV2aXNpb248L2gxPg0KPGgzPlR1cm5pbmcgdGhpcyBvZmYgZG9lcyBub3QgY2xlYXIgdGhlIGhpc3RvcnkgaWYgaXQgd2FzIG9uIGJlZm9yZS4gIExpa2UgaXQgdG8gcGF1c2UuPC9oMz4nOwokbGFuZ1sncmV2aXNpb25fTElNSVRfbGFiZWwnXSA9ICdTZXQgUmV2aXNpb24gTElNSVQnOwokbGFuZ1snY2xlYXJSZXYnXSA9ICdDbGVhciBIaXN0b3J5JzsKJGxhbmdbJ3ByZWxvYWRfQ1NTaW1hZ2VUaXRsZSddID0gJ1ByZWxvYWQgQ3NzIEltYWdlcyc7CiRsYW5nWydwcmVsb2FkX0NTU2ltYWdlX2xhYmVsJ10gPSAnPHN0cm9uZz5UdXJuIG9uIFByZWxvYWRlZCBDc3MgSW1hZ2VzPC9zdHJvbmc+JzsKJGxhbmdbJ3ByZWxvYWRfQ1NTaW1hZ2UnXSA9ICc8aDE+UHJlbG9hZCBDc3MgSW1hZ2VzPC9oMT4NCjxoMz5JZiB5b3UgaGF2ZSB5b3VyIHN5c3RlbSBhbGwgc2V0IHVwIHJpZ2h0LCB0aGlzIHdpbGwgaGVscCB5b3UgZ2V0IGEgZmFzdCBwYXJhbGxlbCBkb3duIGxvYWQgb2YgYWxsIGVsZW1lbnRzLjwvaDM+JzsKJGxhbmdbJ2dsb2JhbHVybCddID0gJzxoMT5TZXQgdGhlIHJvb3QgVVJMPC9oMT4NCjxoMz5Vc2VkIGZvciB3aGVuIHlvdSBuZWVkIFNTTCBzdXBwb3J0IG9yIHdhbnQgdG8gcHVzaCB0aGUgc2NyaXB0cyB0byBhIHN1YmRvbWFpbiB0byBsb3NlIHRoZSBuZWVkbGVzIGNvb2tpZXMuPC9oMz4nOwokbGFuZ1snc21hcnR5T25fbGFiZWwnXSA9ICc8c3Ryb25nPlByb2Nlc3MgU21hcnR5PC9zdHJvbmc+PGJyLz4gZGF0YSBpbiBidXR0b24gZmllbGRzJzsKJGxhbmdbJ3NtYXJ0eU9uJ10gPSAnPGgxPlByb2Nlc3MgU21hcnR5IGRhdGE8L2gxPg0KPGgzPldpdGggdGhpcyB0dXJuZWQgb24geW91IGNhbiBzZXQgdGhlIGJ1dHRvbiBmaWVsZHMgd2l0aCB0aGUgdmFsdWVzIHBhc3NlZCBieSBvdGhlciBtb2R1bGVzIHN1Y2ggYXMgUHJvZHVjdHMgb3IgQ2F0YWxvZ2VyPC9oMz4nOwokbGFuZ1snZmlsZVRpbWVfY3NzX3VybHNfbGFiZWwnXSA9ICc8c3Ryb25nPmhlbHAgYnJlYWsgYSBjbGllbnQgc2lkZSBjYWNoZTwvc3Ryb25nPic7CiRsYW5nWydmaWxlVGltZV9jc3NfdXJscyddID0gJzxoMT5oZWxwIGJyZWFrIGEgY2xpZW50IHNpZGUgY2FjaGU8L2gxPg0KPGgzPlRoaXMgaXMgZG9uZSBieSBhZGRpbmcgYSBmaWxlIGNyZWF0aW9uIHRpbWUgYXQgdGhlIGVuZCBvZiBhIGZpbGUuICBUdXJuaW5nIHRoaXMgb24gd2lsbCBhZGQgdGhpcyB0byBhbGwgbG9jYWwgdXJscy4gKENTUyBvbmx5IGF0bSkgLU5vdGhpbmcgaXMgZG9uZSB0byBob3RsaW5rczwvaDM+JzsKJGxhbmdbJ2VkaXQnXSA9ICdFZGl0JzsKJGxhbmdbJ2RlbGV0ZSddID0gJ0RlbGV0ZSc7CiRsYW5nWydDbG9zZSddID0gJ0Nsb3NlJzsKJGxhbmdbJ09wZW4nXSA9ICdPcGVuJzsKJGxhbmdbJ2RpckVtcHR5J10gPSAnVGhlIGZvbGRlciB3YXMgZW1wdHknOwokbGFuZ1snY2xlYW5UZW1wJ10gPSAnQ2xlYW4gdGhlIHRlbXA/JzsKJGxhbmdbJ3VyVGVtcFBhdGgnXSA9ICdZb3VyIGNhY2hlIHBhdGggaXMnOwokbGFuZ1snTGFzdE1vZCddID0gJ0xhc3QgTW9kaWZpZWQnOwokbGFuZ1snY2FjaGVGZXJyb3InXSA9ICdTY3JpcHREZXBsb3kgY291bGQgbm90IG1ha2UgdGhlIGNhY2hlIGZvbGRlciwgY2hlY2sgeW91ciBmaWxlIHBlcm1pc3Npb25zIGZvciB0aGUgVXBsb2FkcyBhcmVhLic7CiRsYW5nWydOYW1lJ10gPSAnTmFtZSc7CiRsYW5nWydQcm9jY2Vzc2luZyddID0gJ1Byb2Nlc3NpbmcnOwokbGFuZ1snU2F2ZWQnXSA9ICdTYXZlZCc7CiRsYW5nWydEb25lJ10gPSAnRG9uZSc7CiRsYW5nWydWYWxpZGF0aW5nJ10gPSAnVmFsaWRhdGluZyc7CiRsYW5nWydHcm91cHRTZXRfbGFiZWwnXSA9ICdHcm91cCBOYW1lJzsKJGxhbmdbJ0dyb3VwdFR5cGVfbGFiZWwnXSA9ICdUeXBlIG9mIHNjcmlwdHMnOwokbGFuZ1snU2NyaXB0UGlja2VyX2xhYmVsJ10gPSAnU2NyaXB0IFBvb2wnOwokbGFuZ1snTElORSddID0gJ0xJTkUnOwokbGFuZ1snVFlQRSddID0gJ1RZUEUnOwokbGFuZ1snU1VCVFlQRSddID0gJ1NVQlRZUEUnOwokbGFuZ1snU1RSSU5HJ10gPSAnU1RSSU5HJzsKJGxhbmdbJ01FU1NBR0UnXSA9ICdNRVNTQUdFJzsKJGxhbmdbJ0xFVkVMJ10gPSAnTEVWRUwnOwokbGFuZ1snTm90ZXMnXSA9ICdOb3Rlcyc7CiRsYW5nWydXYXJuaW5ncyddID0gJ1dhcm5pbmdzJzsKJGxhbmdbJ0Vycm9ycyddID0gJ0Vycm9ycyc7CiRsYW5nWydoaWRkZW4nXSA9ICdoaWRkZW4nOwokbGFuZ1snU2NyaXB0J10gPSAnU2NyaXB0JzsKJGxhbmdbJ0VVUkxTJ10gPSAnRXh0cmFjdGVkIFVybHMnOwokbGFuZ1snUkNTUyddID0gJ1JlbmRlcmVkIENTUyc7CiRsYW5nWydTQ1NTJ10gPSAnQ1NTIFN0cnVjdHVyZSc7CiRsYW5nWydGQ09OVCddID0gJ0ZpbGUgY29udGVudCc7CiRsYW5nWydpVVJMJ10gPSAnaW1hZ2UgVVJMJzsKJGxhbmdbJ1R5cGUnXSA9ICdUeXBlJzsKJGxhbmdbJ1NpemUnXSA9ICdTaXplJzsKJGxhbmdbJ1N0YXR1cyddID0gJ1N0YXR1cyc7CiRsYW5nWydob3RsaW5rJ10gPSAnPHN0cm9uZz5Ib3RsaW5raW5nOjwvc3Ryb25nPiBhcHBlYXJzICB0byBiZSBhIGhvdGxpbmsuJzsKJGxhbmdbJ0Jyb2tlbmxpbmsnXSA9ICdCcm9rZW4gTGluayc7CiRsYW5nWydOT2Nzc0knXSA9ICdObyBjc3MgaW1hZ2VzJzsKJGxhbmdbJ1llc1ZBbGFzdGVyJ10gPSAnPHN0cm9uZz4qKiB5b3UgYXJlIGZpbHRlcmluZyBlcnJvcnMgYW5kIG1heSBoYXZlIGZpbHRlcmVkIGEgcmVhbCBlcnJvciA8YSBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCkiIGlkPSJ3aGljaEZpbHRlciI+KHdoaWNoPyk8L2E+PC9zdHJvbmc+JzsKJGxhbmdbJ3JlbG9hZF9hbGVydCddID0gJ1lvdSBhcmUgcmVsb2FkaW5nIHRoZSBzcmNpcHQgZnJvbSB0aGUgbGFzdCBzYXZlIHBvaW50LiAgWW91IGhhdmUgc2F2ZWQgdGhlIHNjcmlwdCBhbHJlYWR5IGFuZCBpZiB5b3UgbmVlZCB0byBnbyBiYWNrIHRvIHRoZSB2ZXJzaW9uIHdoZW4geW91IGZpcnN0IGNhbWUgaW4gdG8gZWRpdCBwbGVhc2UgY2hlY2sgeW91ciByZXZpc2lvbiBoaXN0b3J5Lic7CiRsYW5nWydDbGVhckltZyddID0gJ0RlbGV0ZSBDdXJyZW50IEltYWdlJzsKJGxhbmdbJ0ZpbmlzaCddID0gJ0ZpbmlzaCc7CiRsYW5nWydyZXZlcnQnXSA9ICdSZWxvYWQnOwokbGFuZ1snZm9ybV9jYW5jZWwnXSA9ICdDYW5jZWwnOwokbGFuZ1snU2F2ZSddID0gJ1NhdmUnOwokbGFuZ1snZG9uZSddID0gJ0RvbmUnOwokbGFuZ1snYWRkJ10gPSAnQWRkJzsKJGxhbmdbJ1JFT1JERVInXSA9ICdSZW9yZGVyJzsKJGxhbmdbJ2Zvcm1fc3VibWl0J10gPSAnU2F2ZSBQcmVmZXJlbmNlcyc7CiRsYW5nWydtb2RfcHJlZnNfdGl0bGUnXSA9ICdNb2R1bGUgUHJlZmVyZW5jZXMnOwokbGFuZ1sncHJlZnN1cGRhdGVkJ10gPSAnTW9kdWxlIHByZWZlcmVuY2VzIHVwZGF0ZWQuJzsKJGxhbmdbJ29wdGlvbnN1cGRhdGVkJ10gPSAnb3B0aW9ucyB1cGRhdGVkJzsKJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnU1BFRUQgWU9VUiBTSVRFIFVQIC4uLiEhISEgJmJ1bGw7IE91dHB1dCBkeW5hbWljIEpTIGZpbGVzIGFuZCBDU1MgV0lUSCBzbWFydHkuLi4gJmJ1bGw7IFNldCB0aGUgZmlsZXMgdG8gdXNlIGEgc3ViZG9tYWluLi4uICZidWxsOyBjYWNoZWQuLi4gJmJ1bGw7IG1pbmlmaWVkLi4uICZidWxsOyBEaWQgSSBtZW50aW9uIHlvdSBjYW4gdXNlIHNtYXJ0eSBpbiB5b3VyIEpTIGFuZCBDU1Mgc2NyaXB0ISEhISAtIFNpbXBsZSwgZmxleGlibGUhJzsKJGxhbmdbJ3dlbGNvbWVfdGV4dCddID0gJzxwPkhlbGxvITwvcD4nOwokbGFuZ1snaGVscCddID0gJzxsaW5rIG1lZGlhPSZxdW90O3NjcmVlbiZxdW90OyBocmVmPSZxdW90Oy4uL21vZHVsZXMvU2NyaXB0RGVwbG95L0NTUy9NYXN0ZXJDU1MuY3NzJnF1b3Q7IHR5cGU9JnF1b3Q7dGV4dC9jc3MmcXVvdDsgcmVsPSZxdW90O3N0eWxlc2hlZXQmcXVvdDsvPjxkaXYgY2xhc3M9JnF1b3Q7U2ltV3JhcCZxdW90Oz48YiBjbGFzcz0mcXVvdDtyYm90dG9tJnF1b3Q7PjxiIGNsYXNzPSZxdW90O3IxJnF1b3Q7PjwvYj4gPGIgY2xhc3M9JnF1b3Q7cjImcXVvdDs+PC9iPjxiIGNsYXNzPSZxdW90O3IzJnF1b3Q7PjwvYj4gPGIgY2xhc3M9JnF1b3Q7cjQmcXVvdDs+PC9iPjwvYj4NCg0KPGRpdiBjbGFzcz0mcXVvdDtTaW1jb24mcXVvdDs+IDxoMyBjbGFzcz0mcXVvdDtCYWNrTGluayZxdW90Oz48YSBvbmNsaWNrPSJqYXZhc2NyaXB0OndpbmRvdy5oaXN0b3J5LmdvKC0xKSIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPjw8IEJhY2s8L2E+PC9oMz4NCjxoMT5XaGF0IERvZXMgVGhpcyBEbz8tLS0gdGhpcyBuZWVkcyB1cGRhdGluZzwvaDE+DQo8aDI+V3JpdGUgbWFuYWdlIGFuZCBkZXBsb3kgSlMgYW5kIENTUzwvaDI+DQo8YSBpZD0iU2NyaXB0RGVwbG95Ij48L2E+DQo8cD5TY3JpcHREZXBsb3kgbW9kdWxlIHRoYXQgY2FuIGNvbWJpbmUgbXVsdGlwbGUgQ1NTIG9yIEphdmFzY3JpcHQgZmlsZXMsIGNvbXByZXNzIHRoZWlyIGNvbnRlbnRzIChpLmUuIHJlbW92YWwgb2YgdW5uZWNlc3Nhcnkgd2hpdGVzcGFjZS9jb21tZW50cyksIGFuZCBzZXJ2ZSB0aGUgcmVzdWx0cyB3aXRoIEhUVFAgZW5jb2RpbmcgKGd6aXAvZGVmbGF0ZSkgYW5kIGhlYWRlcnMgdGhhdCBhbGxvdyBvcHRpbWFsIGNsaWVudC1zaWRlIGNhY2hpbmcuIFRoaXMgaGVscHMgeW91IGZvbGxvdyBzZXZlcmFsIG9mIFlhaG9vISYjMDM5O3MgPGEgaHJlZj0iaHR0cDovL2RldmVsb3Blci55YWhvby5jb20vcGVyZm9ybWFuY2UvaW5kZXguaHRtbCNydWxlcyIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPlJ1bGVzIGZvciBIaWdoIFBlcmZvcm1hbmNlIFdlYiBTaXRlczwvYT4uIChTZWUgJnF1b3Q7UHJvYmxlbSBEb21haW4mcXVvdDsgYmVsb3cgZm9yIG1vcmUgaW5mby4pIDwvcD4NCjxoMz5UaGUgU2hvcnQgb2YgaXQ8L2gzPg0KPHA+V2lydGUgeW91ciBzY3JpcHRzLCBzZXQgdGhlIG9yZGVyIGFuZCBTY3JpcHREZXBsb3kgd2lsbCBkbyB0aGUgcmVzdCE8L3A+DQo8dGFibGU+DQogIDx0Ym9keT4NCiAgICA8dHI+DQogICAgICA8dGQgc3R5bGU9JnF1b3Q7Qk9SREVSLVJJR0hUOiAjYWFhIDFweCBzb2xpZDsgUEFERElORy1SSUdIVDogNXB4OyBCT1JERVItVE9QOiAjYWFhIDFweCBzb2xpZDsgUEFERElORy1MRUZUOiA1cHg7IFBBRERJTkctQk9UVE9NOiA1cHg7IEJPUkRFUi1MRUZUOiAjYWFhIDFweCBzb2xpZDsgUEFERElORy1UT1A6IDVweDsgQk9SREVSLUJPVFRPTTogI2FhYSAxcHggc29saWQmcXVvdDs+PHN0cm9uZz5CZWZvcmU8L3N0cm9uZz48L3RkPg0KICAgICAgPHRkIHN0eWxlPSZxdW90O0JPUkRFUi1SSUdIVDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctUklHSFQ6IDVweDsgQk9SREVSLVRPUDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctTEVGVDogNXB4OyBQQURESU5HLUJPVFRPTTogNXB4OyBCT1JERVItTEVGVDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctVE9QOiA1cHg7IEJPUkRFUi1CT1RUT006ICNhYWEgMXB4IHNvbGlkJnF1b3Q7PjxpbWcgc3JjPSZxdW90O2h0dHA6Ly9tcmNsYXkub3JnL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDA4LzA5L2ZpZGRsZXJfYmVmb3JlLnBuZyZxdW90OyBhbHQ9JnF1b3Q7YWZ0ZXImcXVvdDsgLz48L3RkPg0KICAgIDwvdHI+DQogICAgPHRyPg0KICAgICAgPHRkIHN0eWxlPSZxdW90O0JPUkRFUi1SSUdIVDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctUklHSFQ6IDVweDsgQk9SREVSLVRPUDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctTEVGVDogNXB4OyBQQURESU5HLUJPVFRPTTogNXB4OyBCT1JERVItTEVGVDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctVE9QOiA1cHg7IEJPUkRFUi1CT1RUT006ICNhYWEgMXB4IHNvbGlkJnF1b3Q7PjxzdHJvbmc+QWZ0ZXI8L3N0cm9uZz48L3RkPg0KICAgICAgPHRkIHN0eWxlPSZxdW90O0JPUkRFUi1SSUdIVDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctUklHSFQ6IDVweDsgQk9SREVSLVRPUDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctTEVGVDogNXB4OyBQQURESU5HLUJPVFRPTTogNXB4OyBCT1JERVItTEVGVDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctVE9QOiA1cHg7IEJPUkRFUi1CT1RUT006ICNhYWEgMXB4IHNvbGlkJnF1b3Q7PjxpbWcgc3JjPSZxdW90O2h0dHA6Ly9tcmNsYXkub3JnL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDA4LzA5L2ZpZGRsZXJfYWZ0ZXIucG5nJnF1b3Q7IGFsdD0mcXVvdDtiZWZvcmUmcXVvdDsgLz48L3RkPg0KICAgIDwvdHI+DQogIDwvdGJvZHk+DQo8L3RhYmxlPg0KDQoNCg0KPGgyPjxhIGlkPSJGZWF0dXJlcyI+PC9hPkZlYXR1cmVzPC9oMj4NCjx1bD4NCiAgPGxpPkNvbWJpbmVzIGFuZCBtaW5pZmllcyBtdWx0aXBsZSBDU1Mgb3IgSmF2YVNjcmlwdCBmaWxlcyBpbnRvIGEgc2luZ2xlICAgZG93bmxvYWQgPC9saT4NCiAgPGxpPlVzZXMgYW4gPGEgaHJlZj0iaHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL21pbmlmeS9zb3VyY2UvYnJvd3NlL3RydW5rL21pbi9saWIvSlNNaW4ucGhwIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+ZW5oYW5jZWQgcG9ydDwvYT4gb2YgRG91Z2xhcyBDcm9ja2ZvcmQmIzAzOTtzIDxhIGhyZWY9Imh0dHA6Ly93d3cuY3JvY2tmb3JkLmNvbS9qYXZhc2NyaXB0L2pzbWluLmh0bWwiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5KU01pbiAgIGxpYnJhcnk8L2E+IGFuZCBjdXN0b20gY2xhc3NlcyB0byBtaW5pZnkgPGEgaHJlZj0iaHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL21pbmlmeS9zb3VyY2UvYnJvd3NlL3RydW5rL21pbi9saWIvTWluaWZ5L0NTUy5waHAiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5DU1M8L2E+IGFuZCA8YSBocmVmPSJodHRwOi8vY29kZS5nb29nbGUuY29tL3AvbWluaWZ5L3NvdXJjZS9icm93c2UvdHJ1bmsvbWluL2xpYi9NaW5pZnkvSFRNTC5waHAiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5IVE1MPC9hPjwvbGk+DQogIDxsaT5DYWNoZXMgc2VydmVyLXNpZGUgdG8gYXZvaWQgZG9pbmcgdW5uZWNlc3Nhcnkgd29yayA8L2xpPg0KICA8bGk+UmVzcG9uZHMgd2l0aCBhbiBIVFRQIDMwNCAoTm90IE1vZGlmaWVkKSByZXNwb25zZSB3aGVuIHRoZSBicm93c2VyIGhhcyBhbiAgIHVwLXRvLWRhdGUgY2FjaGUgY29weSAqKiA8L2xpPg0KICA8bGk+TW9zdCBtb2R1bGVzIGFyZSBsYXp5LWxvYWRlZCBhcyBuZWVkZWQgKDMwNCByZXNwb25zZXMgdXNlIG1pbmltYWwgY29kZSkgICoqIDwvbGk+DQogIDxsaT5BdXRvbWF0aWNhbGx5IHJld3JpdGVzIHJlbGF0aXZlIFVSSXMgaW4gY29tYmluZWQgQ1NTIGZpbGVzIHRvIHBvaW50IHRvIHZhbGlkIGxvY2F0aW9ucyA8L2xpPg0KICA8bGk+V2l0aCBjYWNoaW5nIGVuYWJsZWQsIFNjcmlwdERlcGxveSBpcyBjYXBhYmxlIG9mIGhhbmRsaW5nIGh1bmRyZWRzIG9mIHJlcXVlc3RzIHBlciBzZWNvbmQgb24gYSBtb2RlcmF0ZWx5IHBvd2VyZnVsIHNlcnZlci4gPC9saT4NCiAgPGxpPkNvbnRlbnQtRW5jb2Rpbmc6IGd6aXAsIGJhc2VkIG9uIHJlcXVlc3QgaGVhZGVycy4gQ2FjaGluZyBhbGxvd3MgaXQgc28gc2VydmUgZ3ppcHBlZCBmaWxlcyBmYXN0ZXIgdGhhbiBBcGFjaGUmIzAzOTtzIG1vZF9kZWZsYXRlIG9wdGlvbiEgPC9saT4NCjwvdWw+DQo8aDM+PGVtPjxzdHJvbmc+KiogTm90ZTo8L3N0cm9uZz4gSXQgaXMgYmVzdCB0byB1c2UgYSAuaHRhY2Nlc3Mgc2NyaXB0IHRvIHNldCB0aGUgYWdlIHRpbWVzLiBTY3JpcHREZXBsb3kgaXMgZGVzaWduZWQgZm9yIGVmZmljaWVuY3ksIGJ1dCBmb3IgdmVyeSBoaWdoIHRyYWZmaWMgc2l0ZXMsIFNjcmlwdERlcGxveSBtYXkgc2VydmUgZmlsZXMgc2xvd2VyIHRoYW4geW91ciBIVFRQZCBkdWUgdG8gdGhlIENHSSBvdmVyaGVhZCBvZiBQSFAuICBUbyBvdmVyIGNvbWUgdGhpcyBKdXN0IGNoZWNrICZxdW90O3VzZSAuaHRhY2Nlc3MgaW4gb3B0aW9ucyZxdW90OzwvZW0+PC9oMz4NCjxoMj48YSBuYW1lPSJSZXF1aXJlbWVudHMiPjwvYT5SZXF1aXJlbWVudHM8L2gyPg0KPHVsPg0KICA8bGk+VGhlIGNvbW1vbmx5IGluc3RhbGxlZCA8YSBocmVmPSJodHRwOi8vdXMzLnBocC5uZXQvbWFudWFsL2VuL3psaWIuaW5zdGFsbGF0aW9uLnBocCIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPnpsaWIgICBleHRlbnNpb248L2E+IGlzIHJlY29tbWVuZGVkIGZvciBIVFRQIGVuY29kaW5nIGZ1bmN0aW9uYWxpdHkuIDwvbGk+DQo8L3VsPg0KPGJyLz48YnIvPg0KPGgxPkhvdyBEbyBJIFVzZSBJdDwvaDE+DQoNCg0KPGgzPkdldCBhIHNpbmdsZSBzY3JpcHQ8L2gzPg0KdXNlIDxzcGFuIGNsYXNzPSZxdW90O2NvZGVISUdITElHSFQmcXVvdDs+e2Ntc19tb2R1bGUgbW9kdWxlPVNjcmlwdERlcGxveSBzY3JpcHRJRD0mcXVvdDsxJnF1b3Q7fSA8L3NwYW4+IDxici8+PGJyLz4NCjxoMz5HZXQgYSBzY3JpcHQgZ3JvdXA8L2gzPg0KdXNlIDxzcGFuIGNsYXNzPSZxdW90O2NvZGVISUdITElHSFQmcXVvdDs+e2Ntc19tb2R1bGUgbW9kdWxlPVNjcmlwdERlcGxveSBncm91cElEPSZxdW90OzEmcXVvdDt9IDwvc3Bhbj4gPGJyLz48YnIvPg0KPGgyPkFsbCBvdXRwdXQgaXMgaW4gdGhlIFhIVE1MIGZvcm1hdCwgeW91IHNob3VsZCB3b3JrIGluIHRoYXQuPC9oMj4NCg0KPGJyLz48YnIvPg0KPGg0PlBhcmFtczwvaDQ+DQo8dWw+DQo8bGk+PHN0cm9uZz5zY3JpcHRJRD0mcXVvdDsmcXVvdDsgPC9zdHJvbmc+PGVtPihSZXF1aXJlZC9vcHRpb25hbCk8L2VtPiA8YnIvPnwgc2V0IHRoZSBJRCBSZXF1aXJlZCBvbmx5IGlmIGdyb3VwSUQgbm90IGNhbGxlZDxici8+PC9saT4NCjxsaT48c3Ryb25nPmdyb3VwSUQ9JnF1b3Q7JnF1b3Q7IDwvc3Ryb25nPjxlbT4oUmVxdWlyZWQvb3B0aW9uYWwpPC9lbT4gPGJyLz58IHNldCB0aGUgSUQgUmVxdWlyZWQgb25seSBpZiBzY3JpcHRJRCBub3QgY2FsbGVkPGJyLz48L2xpPg0KPGxpPjxzdHJvbmc+U3R5cGU9JnF1b3Q7JnF1b3Q7IDwvc3Ryb25nPjxlbT4oUmVxdWlyZWQvKSBKUy9DU1M8L2VtPiA8YnIvPnwgc2V0IHRoZSBJRCBSZXF1aXJlZCBvbmx5IGlmIHNjcmlwdElEIG5vdCBjYWxsZWQ8YnIvPjwvbGk+DQoNCjxsaT48c3Ryb25nPlNtYXJ0eU9uPSZxdW90OyZxdW90OyA8L3N0cm9uZz48ZW0+KG9wdGlvbmFsKSB0cnVlL2ZhbHNlIDxzdHJvbmc+RGVmYXVsdDpudWxsPC9zdHJvbmc+PC9lbT4gPGJyLz58IFRoaXMgbGV0cyB5b3Ugb3ZlciByaWRlIHRoZSBnbG9ibGVzPGJyLz48L2xpPg0KPGxpPjxzdHJvbmc+TWluaWZ5PSZxdW90OyZxdW90OyA8L3N0cm9uZz48ZW0+KG9wdGlvbmFsKSB0cnVlL2ZhbHNlIDxzdHJvbmc+RGVmYXVsdDp0cnVlPC9zdHJvbmc+PC9lbT4gPGJyLz58ICBUaGlzIGxldHMgeW91IG92ZXIgcmlkZSB0aGUgZ2xvYmxlczxici8+PC9saT4NCg0KDQoNCg0KDQoNCjxsaT48c3Ryb25nPk1lZGlhVHlwZT0mcXVvdDsmcXVvdDsgPC9zdHJvbmc+PGVtPihvcHRpb25hbCk8L2VtPiA8YnIvPnwgc2V0IE1lZGlhIHR5cGUgZm9yIENTUyBmaWxlcyBoZXJlLi4uIG92ZXJyaWRlcyBkYiBzZXRpbmdzLjxici8+PC9saT4NCjxsaT48c3Ryb25nPmltcG9ydD0mcXVvdDsmcXVvdDsgPC9zdHJvbmc+PGVtPihvcHRpb25hbCkgdHJ1ZS9mYWxzZTwvZW0+IDxici8+fCBzZXQgdGhlIGluY2x1c2lvbiBzdHlsZSBmb3IgQ1NTIGZpbGVzIGhlcmUuLi4gb3ZlcnJpZGVzIGRiIHNldGluZ3MuIEV4OiB0cnVlICBnaXZlcyA8c3R5bGUgdHlwZT1cJnF1b3Q7dGV4dC9jc3NcJnF1b3Q7PkBpbXBvcnQgdXJsKCZxdW90O3VybC9jc3NmaWxlLmNzcyZxdW90Oykgc2NyZWVuOzwvc3R5bGU+PGJyLz48L2xpPg0KDQo8bGk+PHN0cm9uZz5jYWNoZUJ1c3Rlcjwvc3Ryb25nPiA8ZW0+KG9wdGlvbmFsKSA8c3Ryb25nPkRlZmF1bHQ6ZmFsc2U8L3N0cm9uZz48L2VtPjxici8+fCBUaGlzIGlzIHRvIGluc3RhbnRseSB1bmNhY2hlIGFuIHNjcmlwdCBvbiB0aGUgY2xpZW50IHNpZGUgYWZ0ZXIgYSBuZXcgdXBsb2FkZWQgc2NyaXB0IGlzIGNyZWF0ZWQuLi4gaWU6IDEyLmpzPzEyNTUyMjUwMDcgIDxmb250IGNvbG9yPSZxdW90O3JlZCZxdW90Oz48c3Ryb25nPiggdHJ1ZS9mYWxzZSApPC9zdHJvbmc+PC9mb250PjwvbGk+DQo8bGk+PHN0cm9uZz5hc3NpZ249JnF1b3Q7JnF1b3Q7IDwvc3Ryb25nPjxlbT4ob3B0aW9uYWwpPC9lbT4gPGJyLz58IEFzc2lnbiB0aGUgb3V0cHV0IChyZXR1cm4gdGhlIHNtYXJ0eSBhc3NpZ25tZW50KSAgVXNlIGluIGNvbmp1bmN0aW9uIHdpdGggb3V0IHdpdGhvdXQgVVJMPC9saT4NCjxsaT48c3Ryb25nPmZzaXplPSZxdW90OyZxdW90OyA8L3N0cm9uZz48ZW0+KG9wdGlvbmFsKTwvZW0+IDxici8+fCBnZXQgdGhlIHNpemU8L2xpPg0KPGxpPjxzdHJvbmc+cm9vdFVybD0mcXVvdDsmcXVvdDsgPC9zdHJvbmc+PGVtPihvcHRpb25hbCk8L2VtPiA8YnIvPnwgU2NyaXB0RGVwbG95IGNyZWF0ZXMgYSB0ZW1wIGRpcmVjdG9yIGluIHRoZSB1cGxvYWQgZm9sZGVyLiAgSWYgeW91IG1vdmUgdGhlIHBhdGggdG8gdGhlIHVwbGFvZCB0byBhIHN1YmRvbWFpbiB5b3UgbWF5IGd1aWRlIHRoZSBvdXRwdXQgd2l0aCB0aGlzLjwvbGk+DQogICAgICAgIDx1bCBzdHlsZT0mcXVvdDtsaXN0LXN0eWxlLXBvc2l0aW9uOmluc2lkZTsmcXVvdDs+PGxpPjxzdHJvbmc+RXhhcG1sZTo8L3N0cm9uZz4geW91IGNoYW5nZWQgPENPREU+JGNvbmZpZ1smIzAzOTt1cGxvYWRzX3BhdGgmIzAzOTtdID0gJiMwMzk7L3Zhci93d3cvdmhvc3RzL2RvbWFpbi5vcmcvaHR0cGRvY3MvdXBsb2FkcyYjMDM5Ozs8L0NPREU+IDwvbGk+DQogICAgICAgICAgICA8bGk+PHN0cm9uZz50bzwvc3Ryb25nPiA8Q09ERT4kY29uZmlnWyYjMDM5O3VwbG9hZHNfcGF0aCYjMDM5O10gPSBcL3Zhci93d3cvdmhvc3RzL2RvbWFpbi5vcmcvc3ViZG9tYWlucy9tZWRpYS9odHRwZG9jcy91cGxvYWRzJiMwMzk7OzwvQ09ERT48L2xpPg0KICAgICAgICAgICAgPGxpPm5vdyB0aGUgdXBsb2FkcyB1cmwgd291bGQgbm90IHdvcmsgYXMgaXQgd291bGQgYmUgPHU+aHR0cDovL3d3dy5kb21haW4ub3JnL3VwbG9hZHM8L3U+PC9saT4NCiAgICAgICAgICAgIDxsaT48c3Ryb25nPlNvPC9zdHJvbmc+IGl0IGNhbiBiZSBjaGFuZ2VkIGhlcmUgdG8gPHU+aHR0cDovL21lZGlhLmRvbWFpbi5vcmcvdXBsb2FkczwvdT4gIDxmb250IGNvbG9yPSZxdW90O3JlZCZxdW90Oz48c3Ryb25nPihOT1RFOiB3YXRjaCB5b3VyIC8gKTwvc3Ryb25nPjwvZm9udD48L2xpPg0KICAgICAgICA8L3VsPg0KPGxpPjxzdHJvbmc+VVJMPSZxdW90OyZxdW90OyA8L3N0cm9uZz48ZW0+KG9wdGlvbmFsKTwvZW0+IDxici8+fG91dHB1dHMgdGhlIHVybC48L2xpPg0KDQoNCg0KDQoJCQ0KDQoNCg0KDQoNCg0KDQoNCjwhLS08bGk+PHN0cm9uZz5TYW5kQm94PXRydWUgPC9zdHJvbmc+PGVtPihvcHRpb25hbCk8L2VtPiA8YnIvPnwgZmFsc2U8YnIvPjwvbGk+DQoNCjxsaT48c3Ryb25nPlJVTmFjdGlvbj0mYW1wO3F1b3Q7JmFtcDtxdW90OyA8L3N0cm9uZz48ZW0+KG9wdGlvbmFsKTwvZW0+IDxici8+fCBVRFQ8YnIvPnwgVVJMIDxlbT4oLi4vcGx1Z2lucy9mdW5jdGlvbi5maWxlbmFtZS5waHApPC9lbT48YnIvPnwgKk1vcmUgY29taW5nIFNvb24qPGJyLz48L2xpPg0KPGxpPjxzdHJvbmc+TGFuZz0mYW1wO3F1b3Q7JmFtcDtxdW90OyA8L3N0cm9uZz48ZW0+KG9wdGlvbmFsKTwvZW0+IDxici8+fCBVc2UgQ291bnRyeSBDb2RlcyBUbyBkeW5hbWljbHkgc2V0IHRoZSBsYW5ndWFnZSBvZiB0aGUgUGF5UGFsIHBhZ2U8YnIvPjwvbGk+LS0+DQoNCjwvdWw+DQo8YnIvPg0KDQo8YnIvPjxici8+DQo8aDI+PGEgaWQ9IlByb2JsZW1fRG9tYWluIj48L2E+UHJvYmxlbSBEb21haW48L2gyPg0KPHA+UGFnZXMgdGhhdCByZWZlciB0byBtdWx0aXBsZSBDU1Mgb3IgSmF2YVNjcmlwdCBmaWxlcyBvZnRlbiBzdWZmZXIgZnJvbSBzbG93ZXIgICBwYWdlIGxvYWRzLCBkdWUgdG8gdGhlIGJyb3dzZXIgcmVxdWVzdGluZyBlYWNoIGZpbGUgaW5kaXZpZHVhbGx5LiBNYW55IGJyb3dzZXJzICAgYWxzbyBhcmUgbGltaXRlZCB0byBhIGZldyBzaW11bHRhbmVvdXMgcmVxdWVzdHMgcGVyIGRvbWFpbi4gVGhlIHdhaXQgZm9yIGEgICBzZXJpZXMgb2YgcmVxdWVzdHMgYW5kIHRoZSB0cmFuc2ZlciBvZiB1bm9wdGltaXplZCBmaWxlcyBjYW4gZHJhbWF0aWNhbGx5IHJlZHVjZSAgIHRoZSBjbGllbnQtc2lkZSBwZXJmb3JtYW5jZSBvZiB5b3VyIHNpdGUuIDwvcD4NCjxwPkhlcmUgYXJlIGEgaGFuZGZ1bCBvZiBZYWhvbyEmIzAzOTtzIGJlc3QgcHJhY3RpY2VzIHRoYXQgYXJlIGFkZHJlc3NlZCBieSB0aGUgdXNlIG9mIFNjcmlwdERlcGxveS4gPC9wPg0KPHVsPg0KICA8bGk+PGEgaHJlZj0iaHR0cDovL2RldmVsb3Blci55YWhvby5jb20vcGVyZm9ybWFuY2UvcnVsZXMuaHRtbCNudW1faHR0cCIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPk1ha2UgRmV3ZXIgSFRUUCBSZXF1ZXN0czwvYT48L2xpPg0KICA8bGk+PGEgaHJlZj0iaHR0cDovL2RldmVsb3Blci55YWhvby5jb20vcGVyZm9ybWFuY2UvcnVsZXMuaHRtbCNleHBpcmVzIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+QWRkIGFuIEV4cGlyZXMgb3IgYSBDYWNoZS1Db250cm9sIEhlYWRlcjwvYT48L2xpPg0KICA8bGk+PGEgaHJlZj0iaHR0cDovL2RldmVsb3Blci55YWhvby5jb20vcGVyZm9ybWFuY2UvcnVsZXMuaHRtbCNnemlwIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+R3ppcCBDb21wb25lbnRzPC9hPjwvbGk+DQogIDxsaT48YSBocmVmPSJodHRwOi8vZGV2ZWxvcGVyLnlhaG9vLmNvbS9wZXJmb3JtYW5jZS9ydWxlcy5odG1sI21pbmlmeSIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPk1pbmlmeSBKYXZhU2NyaXB0IGFuZCBDU1M8L2E+PC9saT4NCiAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9kZXZlbG9wZXIueWFob28uY29tL3BlcmZvcm1hbmNlL3J1bGVzLmh0bWwjZXRhZ3MiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5Db25maWd1cmUgRVRhZ3M8L2E+PC9saT4NCiAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9kZXZlbG9wZXIueWFob28uY29tL3BlcmZvcm1hbmNlL3J1bGVzLmh0bWwjdW5kZXIyNSIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPktlZXAgQ29tcG9uZW50cyB1bmRlciAyNUs8L2E+PC9saT4NCjwvdWw+DQo8aDM+PGEgbmFtZT0iQWNrbm93bGVkZ21lbnRzIj48L2E+QWNrbm93bGVkZ21lbnRzPC9oMz4NCjxwPk1pbmlmeSB3YXMgaW5zcGlyZWQgYnkgPGEgaHJlZj0iaHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL2pzY3NzY29tcC8iIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5qc2Nzc2NvbXA8L2E+IGJ5IE1heGltIE1hcnR5bnl1ayBhbmQgYnkgdGhlIGFydGljbGUgJiMwMzk7PGEgaHJlZj0iaHR0cDovL3d3dy5odW5sb2NrLmNvbS9ibG9ncy9TdXBlcmNoYXJnZWRfSmF2YXNjcmlwdCIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPlN1cGVyY2hhcmdlZCBKYXZhU2NyaXB0PC9hPiYjMDM5OyBieSBQYXRyaWNrIEh1bmxvY2suIDwvcD4NCjxwPlRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmNyb2NrZm9yZC5jb20vamF2YXNjcmlwdC9qc21pbi5odG1sIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+SlNNaW4gbGlicmFyeTwvYT4gdXNlZCBmb3IgSmF2YVNjcmlwdCBtaW5pZmljYXRpb24gd2FzIG9yaWdpbmFsbHkgICB3cml0dGVuIGJ5IERvdWdsYXMgQ3JvY2tmb3JkIGFuZCB3YXMgPGEgaHJlZj0iaHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL2pzbWluLXBocCIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPnBvcnRlZCB0byBQSFA8L2E+IGJ5IFJ5YW4gICBHcm92ZSBzcGVjaWZpY2FsbHkgZm9yIHVzZSBpbiBNaW5pZnkuIDwvcD4NCg0KDQo8aDM+U3VwcG9ydDwvaDM+DQo8aDQ+U2NyZWVuY2FzdHMgZm9yIGV4dHJhIGhlbHAgd2lsbCBmYWxsb3ctLS0gb24gdGhlIFRPRE88L2g0Pg0KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPg0KPHVsPg0KPGxpPkZvciB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBtb2R1bGUgb3IgdG8gZmlsZSBhIGJ1ZyByZXBvcnQgdmlzaXQgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9zY3JpcHRkZXBsb3kiPnRoZSBDTVMgRm9yZ2U8L2E+LjwvbGk+DQo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LjwvbGk+DQo8L3VsPg0KDQo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4NCjxwPkNvcHlyaWdodCAmY29weTsgMjAwOSwgamVyZW15QmFzcyA8PGEgaHJlZj0iaHR0cDovL2NvcmJlbnNwcm9kdWN0cy5jb20iPmNvcmJlbnNwcm9kdWN0cy5jb208L2E+PiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+DQo8c3Ryb25nPlN1cHBvcnQgbW9yZSBtb2RzIGxpa2UgdGhpczo8L3N0cm9uZz48Zm9ybSBhY3Rpb249JnF1b3Q7aHR0cHM6Ly93d3cucGF5cGFsLmNvbS9jZ2ktYmluL3dlYnNjciZxdW90OyBtZXRob2Q9JnF1b3Q7cG9zdCZxdW90Oz4NCjxpbnB1dCB0eXBlPSZxdW90O2hpZGRlbiZxdW90OyBuYW1lPSZxdW90O2NtZCZxdW90OyB2YWx1ZT0mcXVvdDtfcy14Y2xpY2smcXVvdDs+DQo8aW5wdXQgdHlwZT0mcXVvdDtoaWRkZW4mcXVvdDsgbmFtZT0mcXVvdDtob3N0ZWRfYnV0dG9uX2lkJnF1b3Q7IHZhbHVlPSZxdW90Ozg4MTc2NzUmcXVvdDs+DQo8aW5wdXQgdHlwZT0mcXVvdDtpbWFnZSZxdW90OyBzcmM9JnF1b3Q7aHR0cHM6Ly93d3cucGF5cGFsLmNvbS9lbl9VUy9pL2J0bi9idG5fZG9uYXRlX0xHLmdpZiZxdW90OyBib3JkZXI9JnF1b3Q7MCZxdW90OyBuYW1lPSZxdW90O3N1Ym1pdCZxdW90OyBhbHQ9JnF1b3Q7UGF5UGFsIC0gVGhlIHNhZmVyLCBlYXNpZXIgd2F5IHRvIHBheSBvbmxpbmUhJnF1b3Q7Pg0KPGltZyBhbHQ9JnF1b3Q7JnF1b3Q7IGJvcmRlcj0mcXVvdDswJnF1b3Q7IHNyYz0mcXVvdDtodHRwczovL3d3dy5wYXlwYWwuY29tL2VuX1VTL2kvc2NyL3BpeGVsLmdpZiZxdW90OyB3aWR0aD0mcXVvdDsxJnF1b3Q7IGhlaWdodD0mcXVvdDsxJnF1b3Q7Pg0KPC9mb3JtPjxici8+DQo8cD5UaGlzIG1vZHVsZSBoYXMgYmVlbiByZWxlYXNlZCB1bmRlciB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5HTlUgUHVibGljIExpY2Vuc2U8L2E+LiBZb3UgbXVzdCBhZ3JlZSB0byB0aGlzIGxpY2Vuc2UgYmVmb3JlIHVzaW5nIHRoZSBtb2R1bGUuPC9wPg0KPC9kaXYgPjxiIGNsYXNzPSZxdW90O3Jib3R0b20mcXVvdDs+PGIgY2xhc3M9JnF1b3Q7cjQmcXVvdDs+PC9iPjxiIGNsYXNzPSZxdW90O3IzJnF1b3Q7PjwvYj4gPGIgY2xhc3M9JnF1b3Q7cjImcXVvdDs+PC9iPiA8YiBjbGFzcz0mcXVvdDtyMSZxdW90Oz48L2I+PC9iPg0KDQo8L2Rpdj4NCic7CiRsYW5nWyd1dG1hJ10gPSAnMTU2ODYxMzUzLjkxNTQ5NjA1Ny4xMjcwMDUzMDcxLjEyNzkyODYzOTUuMTI3OTcxOTQ3My41Nic7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEyNzk3MTk0NzMuNTYuNDUudXRtY2NuPShvcmdhbmljKXx1dG1jc3I9Z29vZ2xlfHV0bWN0cj1odHRwOi8vdHJhbnNsYXRpb25zLmNtc21hZGVzaW1wbGUub3JnL3x1dG1jbWQ9b3JnYW5pYyc7CiRsYW5nWydxY2EnXSA9ICdQMC0xMzg3Mzk1NDU2LTEyNzAwNTMwNzE1MzMnOwokbGFuZ1sndXRtYiddID0gJzE1Njg2MTM1Myc7CiRsYW5nWyd1dG1jJ10gPSAnMTU2ODYxMzUzJzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/es_ES.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ1NjcmlwdCBEZXBsb3kgKEltcGxlbWVudGFkb3IgZGUgU2NyaXB0cyknOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdFcyByZWNvbWVuZGFkbyB2aXNpdGFyIGxhIHNlY2NpJm9hY3V0ZTtuIGRlIEF5dWRhIGFudGVzIGRlIGNvbWVuemFyJzsKJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICdQb3IgZmF2b3IgZW52aWFyIGNvbWVudGFyaW9zIGFjZXJjYSBkZSBlc3RlIG0mb2FjdXRlO2R1bG8gKGZhdm9yIGVzY3JpYmlyIGVuIGluZ2wmZWFjdXRlO3MsIGVsIGlkaW9tYSBkZWwgYXV0b3IpPGEgaHJlZj0iaHR0cDovL2hlbHAuY29yYmVuc3Byb2R1Y3RzLmNvbS9tYWtlLWNvbnRhY3QuaHRtbCI+SmVyZW15IEJhc3M8L2E+JzsKJGxhbmdbJ3JlYWxseV91bmluc3RhbGwnXSA9ICdVbmluc3RhbGxpbmcgdGhpcyBtb2R1bGUgd2lsbCBub3QgYWZmZWN0IGFueSBldmVudCBkYXRhIGFuZCBhbGwgYm9va3MgdG8gZGF0ZSB3aWxsIHN0aWxsIGJlIHRoZXJlLiBEbyB5b3Ugd2lzaCB0byBjb250aW51ZT8nOwokbGFuZ1sndW5pbnN0YWxsZWQnXSA9ICdNb2R1bG8gZGVzaW5zdGFsYWRvJzsKJGxhbmdbJ2luc3RhbGxlZCddID0gJ1ZlcnNpJm9hY3V0ZTtuICVzIGluc3RhbGFkYSc7CiRsYW5nWyd1cGdyYWRlZCddID0gJ01vZHVsbyBhY3R1YWxpemFkbyBhIGxhIHZlcnNpJm9hY3V0ZTtuICVzLic7CiRsYW5nWydBQ1RvcHRpb25zJ10gPSAnT3BjaW9uZXMgZGUgSW1wbGVtZW50YWNpJm9hY3V0ZTtuJzsKJGxhbmdbJ21hbnVhbGFzc2lnbm1lbnQnXSA9ICdBZ3J1cGFjaW9uZXMgZGUgU2NyaXB0cyc7CiRsYW5nWydIVE1Mc2V0dGluZ3MnXSA9ICdJbXBsZW1lbnRhY2kmb2FjdXRlO24gSFRNTCc7CiRsYW5nWydWYWxzZXR0aW5ncyddID0gJ0FqdXN0ZXMgZGUgdmFsaWRhY2kmb2FjdXRlO24nOwokbGFuZ1snZW4nXSA9ICdJbmdsJmVhY3V0ZTtzJzsKJGxhbmdbJ2ZyJ10gPSAnRnJhbiZjY2VkaWw7YWlzIChGcmFuYyZlYWN1dGU7cyknOwokbGFuZ1snaXQnXSA9ICdJdGFsaWFubyc7CiRsYW5nWydrbyddID0gJ0tvcmVhbiAoQ29yZWFubyknOwokbGFuZ1snamEnXSA9ICdKYXBhbmVzZSAoSmFwb24mZWFjdXRlO3MpJzsKJGxhbmdbJ2VzJ10gPSAnRXNwYSZudGlsZGU7b2wnOwokbGFuZ1snemgtY24nXSA9ICdDaGluZXNlIChDaGlubyknOwokbGFuZ1snbmwnXSA9ICdOZWRlcmxhbmRzIChOZWVybGFuZCZlYWN1dGU7cyknOwokbGFuZ1snZGUnXSA9ICdEZXV0c2NoIChBbGVtJmFhY3V0ZTtuKSc7CiRsYW5nWydwbCddID0gJ1BvbHNraSAoUG9sYWNvKSc7CiRsYW5nWydMbm9uZSddID0gJ05vIGhheSBhZHZlcnRlbmNpYXMnOwokbGFuZ1snTDAnXSA9ICdOaXZlbCAwJzsKJGxhbmdbJ0wxJ10gPSAnTml2ZWwgMSc7CiRsYW5nWydMMiddID0gJ05pdmVsIDInOwokbGFuZ1snY3NzMSddID0gJ0NTUyAxICc7CiRsYW5nWydjc3MyJ10gPSAnQ1NTIDIgJzsKJGxhbmdbJ2NzczIxJ10gPSAnQ1NTIDIuMSAnOwokbGFuZ1snY3NzMyddID0gJ0NTUyAzICc7CiRsYW5nWydzdmcnXSA9ICdTVkcgJzsKJGxhbmdbJ3N2Z2Jhc2ljJ10gPSAnU1ZHIGJhc2ljbyc7CiRsYW5nWydzdmd0aW55J10gPSAnU1ZHIG1pbmltbyc7CiRsYW5nWydtb2JpbGUnXSA9ICdtb2JpbGUgJzsKJGxhbmdbJ2F0c2MtdHYnXSA9ICdhdHNjLXR2ICc7CiRsYW5nWyd0diddID0gJ0FkZWN1YWRvIHBhcmEgZGlzcG9zaXRpdm9zIGRlIHRpcG8gVFYnOwokbGFuZ1snbm9uZSddID0gJ25pbmd1bm8nOwokbGFuZ1snc2F2ZVZBTHNldHRpbmdzJ10gPSAnR3VhcmRhciBhanVzdGVzIGRlIHZhbGlkYWNpJm9hY3V0ZTtuJzsKJGxhbmdbJ3NldHRpbmdzJ10gPSAnQWp1c3Rlcyc7CiRsYW5nWydzZXR0aW5nc3NhdmVkJ10gPSAnTG9zIGFqdXN0ZXMgaGFuIHNpZG8gZ3VhcmRhZG9zJzsKJGxhbmdbJ2xlYXZlY29kZSddID0gJ05vIHRvY2FyIGVsIGMmb2FjdXRlO2RpZ28nOwokbGFuZ1snZm9ybWF0Y29kZSddID0gJ01lam9yIGZvcm1hdGVvIGRlIGMmb2FjdXRlO2RpZ28nOwokbGFuZ1snc2NyYW1ibGVjb2RlJ10gPSAnUmV2b2x2ZXIgZWwgYyZvYWN1dGU7ZGlnbyc7CiRsYW5nWydjbGVhbmNvZGUnXSA9ICdMaW1waWFyIGVsIGMmb2FjdXRlO2RpZ28sIHJlbW92aWVuZG8gY29kaWdvIGlubmVjZXNhcmlvJzsKJGxhbmdbJ3NhdmVzZXR0aW5ncyddID0gJ0d1YXJkYXIgYWp1c3Rlcyc7CiRsYW5nWydtYW5nbGV0eXBldGV4dCddID0gJ0NvbW8gZm9ybWF0ZWFyIGVsIGMmb2FjdXRlO2RpZ28nOwokbGFuZ1snYnJpZWYnXSA9ICdDb3J0byc7CiRsYW5nWyd2ZXJib3NlJ10gPSAnVmVyYm9zbyc7CiRsYW5nWydjb2RlZml4ZXMnXSA9ICdSZXBhcmFjaW9uZXMgZGUgYyZvYWN1dGU7ZGlnbyc7CiRsYW5nWydmb3JjZWxvd2VydGFnc3RleHQnXSA9ICdGb3J6YXIgbG9zIHRhZ3MgYSBtaW4mdWFjdXRlO3NjdWxhcyc7CiRsYW5nWydmb3JjZWxvd2VydGFnc2hlbHAnXSA9ICdQYXJhIG1lam9yIGNvbXBhdGliaWxpZGFkIFhIVE1MJzsKJGxhbmdbJ2hpZGVtZXNzYWdlc3RleHQnXSA9ICdFc2NvbmRlciBtZW5zYWplcyBkZSBDb2RlTWFuZ2xlciBhbCBmdW5hbCBkZWwgYyZvYWN1dGU7ZGlnbyAoeClodG1sJzsKJGxhbmdbJ2luZGVudHdpZHRodGV4dCddID0gJ0FuY2hvIGRlIGxhIHNhbmdyJmlhY3V0ZTthJzsKJGxhbmdbJ3NwYWNlcyddID0gJ0VzcGFjaW9zJzsKJGxhbmdbJ2RlYnVnbGV2ZWx0ZXh0J10gPSAnQ2FudGlkYWQgZGUgbW9kbyBkZSBkZXB1cmFjaSZvYWN1dGU7bjonOwokbGFuZ1snZGVidWd0ZXh0J10gPSAnTW9kbyBkZSBkZXB1cmFjaSZvYWN1dGU7biBkZSBjJm9hY3V0ZTtkaWdvJzsKJGxhbmdbJ1NjcmlwdF9saXN0J10gPSAnU2NyaXB0cyAnOwokbGFuZ1snQXNzX2hlYWRlciddID0gJ1NjcmlwdHMgdW5pZmljYWRvcyc7CiRsYW5nWydTYW1wbGVUYWcnXSA9ICdUYWcgZGUgbXVlc3RyYSc7CiRsYW5nWydwcm9tcHRfbmV3U2NyaXB0J10gPSAnQWdyZWdhciBudWV2byBzY3JpcHQnOwokbGFuZ1sncHJvbXB0X25ld1NjcmlwdEFzcyddID0gJ051ZXZhIGFzaWduYWNpJm9hY3V0ZTtuIGRlIHNjcmlwdCc7CiRsYW5nWyd0aXRsZV9Hcm91cHMnXSA9ICdMaXN0YSBkZSBncnVwb3MgZGUgc2NyaXB0cyc7CiRsYW5nWyd0aXRsZV9TY3JpcHRzJ10gPSAnTGlzdGEgZGUgc2NyaXB0cyBzdWVsdG9zJzsKJGxhbmdbJ2FyZXlvdXN1cmUnXSA9ICdJbXBvcnRhbnQ6XG5cbklmIHRoaXMgaXMgZGVsZXRlZCBhbGwgaW5mb3JtYXRpb24gd2lsbCBiZSBsb3N0IVxuXG5JZiB5b3UgaGF2ZSB0aGlzIHNjcmlwdCBpbiBhIGdyb3VwIHlvdSB3aWxsIGJyZWFrIHRoZSB0aWUgYW5kIHdpbGwgbmVlZCB0byBlZGl0IHRoZSBncm91cC5cbkl0IGlzIGJlc3QgdG8gc3RhcnQgdGhlIGRlbGV0aW9uIHByb2Nlc3MgZnJvbSB0aGUgQXNzaWdubWVudCBhcmVhLic7CiRsYW5nWydzbWFydHlIb3cnXSA9ICdUaGUgc21hcnR5IHdvcmtzIGxpa2UgdGhpcy4uLiBXaGVyZSB5b3UmIzAzOTtkIGhhdmUgeyRzbWFydHkubm93fSB5b3UgZG8ge3skc21hcnR5Lm5vd319ICAuICBOb3cgeW91IGNhbiBkbyBzbWFydHkgc3R1ZmYnOwokbGFuZ1snYWxsJ10gPSAnQWRlY3VhZG8gcGFyYSB0b2RvcyBsb3MgZGlzcG9zaXRpdm9zJzsKJGxhbmdbJ2F1cmFsJ10gPSAnQWRlY3VhZG8gcGFyYSBzaW50ZXRpemFkb3JlcyBkZSBwYWxhYnJhcyc7CiRsYW5nWydicmFpbGxlJ10gPSAnQWRlY3VhZG8gcGFyYSBkaXNwb3NpdGl2b3MgdGFjdGlsZXMgZGUgYnJhaWxlJzsKJGxhbmdbJ2VtYm9zc2VkJ10gPSAnQWRlY3VhZG8gcGFyYSBpbXByZXNvcmFzIGRlIGJyYWlsZSc7CiRsYW5nWydoYW5kaGVsZCddID0gJ0FkZWN1YWRvIHBhcmEgZGlzcG9zaXRpdm9zIHBvcnQmYWFjdXRlO3RpbGVzIGRlIG1hbm8nOwokbGFuZ1sncHJpbnQnXSA9ICdBZGVjdWFkbyBwYXJhIG1hdGVyaWFsIHBhZ2luYWRvLCBvcGFjbyB5IGRvY3VtZW50b3MgdmlzdG9zIGVuIHBhbnRhbGxhIGVuIG1vZG8gcHJlbGltaW5hciBkZSBpbXByZXNpJm9hY3V0ZTtuJzsKJGxhbmdbJ3Byb2plY3Rpb24nXSA9ICdBZGVjdWFkbyBwYXJhIHByZXNlbnRhY2lvbmVzIHByb3llY3RhZGFzJzsKJGxhbmdbJ3NjcmVlbiddID0gJ0FkZWN1YWRvIHByaW1vcmRpYWxtZW50ZSBwYXJhIHBhbnRhbGxhcyBkZSBjb2xvciBkZSBjb21wdXRhZG9yZXMnOwokbGFuZ1sndHR5J10gPSAnQWRlY3VhZG8gcGFyYSBtZWRpb3MgdGFsZXMgY29tbyB0ZWxldGlwb3MgeSB0ZXJtaW5hbGVzJzsKJGxhbmdbJ01lZGlhVHlwZSddID0gJ2FsbCA6IFN1aXRhYmxlIGZvciBhbGwgZGV2aWNlcy48YnIvPg0KYXVyYWwgOiBJbnRlbmRlZCBmb3Igc3BlZWNoIHN5bnRoZXNpemVycy48YnIvPg0KYnJhaWxsZSA6IEludGVuZGVkIGZvciBicmFpbGxlIHRhY3RpbGUgZmVlZGJhY2sgZGV2aWNlcy48YnIvPg0KZW1ib3NzZWQgOiBJbnRlbmRlZCBmb3IgcGFnZWQgYnJhaWxsZSBwcmludGVycy48YnIvPg0KaGFuZGhlbGQgOiBJbnRlbmRlZCBmb3IgaGFuZGhlbGQgZGV2aWNlczxici8+DQpwcmludCA6IEludGVuZGVkIGZvciBwYWdlZCwgb3BhcXVlIG1hdGVyaWFsIGFuZCBmb3IgZG9jdW1lbnRzIHZpZXdlZCBvbiBzY3JlZW4gaW4gcHJpbnQgcHJldmlldyBtb2RlLjxici8+DQpwcm9qZWN0aW9uIDogSW50ZW5kZWQgZm9yIHByb2plY3RlZCBwcmVzZW50YXRpb25zLCBmb3IgZXhhbXBsZSBwcm9qZWN0b3JzIG9yIHByaW50IHRvIHRyYW5zcGFyZW5jaWVzLjxici8+DQpzY3JlZW4gOiBJbnRlbmRlZCBwcmltYXJpbHkgZm9yIGNvbG9yIGNvbXB1dGVyIHNjcmVlbnMuPGJyLz4NCnR0eSA6IEludGVuZGVkIGZvciBtZWRpYSB1c2luZyBhIGZpeGVkLXBpdGNoIGNoYXJhY3RlciBncmlkLCBzdWNoIGFzIHRlbGV0eXBlcyBhbmQgdGVybWluYWxzLjxici8+DQp0diA6IEludGVuZGVkIGZvciB0ZWxldmlzaW9uLXR5cGUgZGV2aWNlcy4nOwokbGFuZ1snQ2FuY2VsZWQnXSA9ICdPcGVyaWFjaSZvYWN1dGU7biBjYW5jZWxhZGEuIExhIGluZm9ybWFjaSZvYWN1dGU7biBxdWUgc2UgaGF5YSBpbmdyZXNhZG8gbyBhY3R1YWxpemFkbyBubyBzZSBndWFyZCZvYWN1dGU7Lic7CiRsYW5nWydCdG5BRERFRCddID0gJ1NlIGFncmVnJm9hY3V0ZTsgdW4gbnVldm8gc2NyaXB0JzsKJGxhbmdbJ0J0bkVESVRFRCddID0gJ1NlIGVkaXQmb2FjdXRlOyB1biBzY3JpcHQgZXhpc3RlbnRlJzsKJGxhbmdbJ0J0bkRFTEVURUQnXSA9ICdTZSBlbGltaW4mb2FjdXRlOyB1biBzY3JpcHQgZXhpc3RlbnRlJzsKJGxhbmdbJ3R5cGVfbGFiZWwnXSA9ICdUaXBvJzsKJGxhbmdbJ2VtdHB5R3JvdXAnXSA9ICdZb3UmIzAzOTtsbCBuZWVkIHRvIGFkZCBhIHNjcmlwdCB0byB0aGUgZ3JvdXAgYmVmb3JlIGNhbGxpbmcgaXQnOwokbGFuZ1snU2NyaXB0U2V0X2xhYmVsJ10gPSAnSUQgZGVsIHNjcmlwdCc7CiRsYW5nWydzY3JpcHRUeXBlX2xhYmVsJ10gPSAnVGlwbyBkZSBzY3JpcHQnOwokbGFuZ1snU2NyaXB0TmFtZV9sYWJlbCddID0gJ05vbWJyZSBkZWwgc2NyaXB0ICc7CiRsYW5nWydTaW5nbGVDb2RlX2xhYmVsJ10gPSAnTGxhbWFkYSBwcmVkZXRlcm1pbmFkYSBwYXJhIGVsIHNjcmlwdCc7CiRsYW5nWydHcm91cHRTaXplX2xhYmVsJ10gPSAnVG90YWwgJzsKJGxhbmdbJ25vdGVzX2xhYmVsJ10gPSAnTm90YXMnOwokbGFuZ1snU2hvd1ZhbF9sYWJsZSddID0gJ01hbnRlbmVyIG1lbnNhamVzIGFiaWVydG9zJzsKJGxhbmdbJ1R1cm5PTlZhbF9sYWJsZSddID0gJ0Rlc2FiaWxpdGFyIHZhbGlkYWNpJm9hY3V0ZTtuJzsKJGxhbmdbJ2ZpbHRlclByb3BfbGFibGUnXSA9ICdGaWx0cmFyIHByb3BpZWRhZGVzIHBhcmEgYXl1ZGFyIGNvbiBsYSB2YWxpZGFjaSZvYWN1dGU7bic7CiRsYW5nWydDU1Nwcm9maWxlX2xhYmxlJ10gPSAnUGVyZmlsIENTUyc7CiRsYW5nWyd1c2VybWVkaXVtX2xhYmxlJ10gPSAnVXNhciBtZWRpbyc7CiRsYW5nWydWQUxMYW5nX2xhYmxlJ10gPSAnTGVuZ3VhamUnOwokbGFuZ1sndzNjQ1NTd2FybmluZ19sYWJsZSddID0gJ05pdmVsIGRlIGFkdmVydGVuY2lhIHBhcmEgdzNjIENTUyc7CiRsYW5nWydNZWRpYVR5cGVfbGFiZWwnXSA9ICdUaXBvIGRlIG1lZGlvOic7CiRsYW5nWydNaW5pZnlfbGFiZWwnXSA9ICdQcmUgTWluaW1pemFkbyc7CiRsYW5nWydtYXhBZ2VfbGFiZWwnXSA9ICdUaWVtcG8gbSZhYWN1dGU7eGltbyc7CiRsYW5nWydDcmVhdGlvbkRhdGVfbGFiZWwnXSA9ICdGZWNoYSBkZSBjcmVhY2kmb2FjdXRlO24nOwokbGFuZ1snTW9kaWZlZERhdGVfbGFiZWwnXSA9ICdGZWNoYSBkZSBtb2RpZmljYWNpJm9hY3V0ZTtuJzsKJGxhbmdbJ3BhdGhPcHRpb25fbGFiZWwnXSA9ICdVc2FyIHVuYSBydXRhIDxlbT4oZGViZSBkZSBpbmljaWFyIGNvbiAmcXVvdDsvdXBsb2Fkcy8uLi4mcXVvdDspPC9lbT4nOwokbGFuZ1snU2NyaXB0SXNfbGFiZWwnXSA9ICdVc2FyIGVzdGUgc2NyaXB0IDxlbT4oTm90YTogc2UgaGFyYSBjYXNvIG9taXNvIHNpIHNlIGVzcGVmaWMmb2FjdXRlOyB1bmEgcnV0YSk8L2VtPic7CiRsYW5nWydkZWJ1Z0lUX2xhYmVsJ10gPSAnZGVidWdJVCc7CiRsYW5nWydkZWJ1Z0lUbm90ZV9sYWJlbCddID0gJzxlbT4oTW9kbyBGaXJlcGhwIGRlYmVyJmFhY3V0ZTsgZXN0YXIgZGlzcG9uaWJsZSk8L2VtPic7CiRsYW5nWydkZWJ1Z1QnXSA9ICdPcGNpb25lcyBkZSBkZXB1cmFjaSZvYWN1dGU7bic7CiRsYW5nWydub25lSW5UeXBlJ10gPSAnPGgxPkFncmVnYXIgcHJpbWVybzxici8+dW4gc2NyaXB0IGVuIGVzdGUgdGlwbzwvaDE+JzsKJGxhbmdbJ3NtYXJ0eU9uX2xhYmVsJ10gPSAnPHN0cm9uZz5Qcm9jZXNvIFNtYXJ0eTwvc3Ryb25nPjxici8+IGNvbnRlbmlkbyBlbiBsb3MgY2FtcG9zICZxdW90O2J1dHRvbiZxdW90Oyc7CiRsYW5nWydzbWFydHlPbiddID0gJzxoMT5Qcm9jZXNzIFNtYXJ0eSBkYXRhPC9oMT4NCjxoMz5XaXRoIHRoaXMgdHVybmVkIG9uIHlvdSBjYW4gc2V0IHRoZSBidXR0b24gZmllbGRzIHdpdGggdGhlIHZhbHVlcyBwYXNzZWQgYnkgb3RoZXIgbW9kdWxlcyBzdWNoIGFzIFByb2R1Y3RzIG9yIENhdGFsb2dlcjwvaDM+JzsKJGxhbmdbJ2VkaXQnXSA9ICdFZGl0YXInOwokbGFuZ1snZGVsZXRlJ10gPSAnQm9ycmFyJzsKJGxhbmdbJ0Nsb3NlJ10gPSAnQ2VycmFyJzsKJGxhbmdbJ09wZW4nXSA9ICdBYnJpcic7CiRsYW5nWydjbGVhblRlbXAnXSA9ICdMaW1waWFyIGxhIGNhcnBldGEgdGVtcD8nOwokbGFuZ1sndXJUZW1wUGF0aCddID0gJ0xhIHJ1dGEgY2FjaGUgZXMnOwokbGFuZ1snTGFzdE1vZCddID0gJ1VsdGltYSBtb2RpZmljYWNpJm9hY3V0ZTtuJzsKJGxhbmdbJ2NhY2hlRmVycm9yJ10gPSAnU2NyaXB0RGVwbG95IG5vIHB1ZG8gY3JlYXIgbGEgY2FycGV0YSBkZSBjYWNoZSwgcmV2aXNhciBwZXJtaXNvcyBkZSBhcmNoaXZvcyBwYXJhIGxhIGNhcnBldGEgVXBsb2Fkcy4nOwokbGFuZ1snTmFtZSddID0gJ05vbWJyZSAnOwokbGFuZ1snUHJvY2Nlc3NpbmcnXSA9ICdQcm9jZXNhbmRvJzsKJGxhbmdbJ1NhdmVkJ10gPSAnR3VhcmRhZG8nOwokbGFuZ1snRG9uZSddID0gJ0NvbXBsZXRvJzsKJGxhbmdbJ1ZhbGlkYXRpbmcnXSA9ICdWYWxpZGFuZG8nOwokbGFuZ1snR3JvdXB0U2V0X2xhYmVsJ10gPSAnTm9tYnJlIGRlIGdydXBvJzsKJGxhbmdbJ0dyb3VwdFR5cGVfbGFiZWwnXSA9ICdUaXBvIGRlIHNjcmlwdHMnOwokbGFuZ1snU2NyaXB0UGlja2VyX2xhYmVsJ10gPSAnTGlzdGEgZGUgc2NyaXB0cyc7CiRsYW5nWydMSU5FJ10gPSAnTElORSc7CiRsYW5nWydUWVBFJ10gPSAnVFlQRSAnOwokbGFuZ1snU1VCVFlQRSddID0gJ1NVQlRZUEUgJzsKJGxhbmdbJ1NUUklORyddID0gJ1NUUklORyAnOwokbGFuZ1snTUVTU0FHRSddID0gJ01FU1NBR0UgJzsKJGxhbmdbJ0xFVkVMJ10gPSAnTEVWRUwgJzsKJGxhbmdbJ05vdGVzJ10gPSAnTm90YXMnOwokbGFuZ1snV2FybmluZ3MnXSA9ICdBZHZlcnRlbmNpYSc7CiRsYW5nWydFcnJvcnMnXSA9ICdFcnJvcmVzJzsKJGxhbmdbJ2hpZGRlbiddID0gJ2VzY29uZGlkbyc7CiRsYW5nWydTY3JpcHQnXSA9ICdTY3JpcHQgJzsKJGxhbmdbJ0VVUkxTJ10gPSAnVXJscyBleHRyYWlkYXMnOwokbGFuZ1snUkNTUyddID0gJ0NTUyBlamVjdXRhZG8nOwokbGFuZ1snU0NTUyddID0gJ0VzdHJ1Y3R1cmEgQ1NTICc7CiRsYW5nWydGQ09OVCddID0gJ0NvbnRlbmlkbyBkZSBhcmNoaXZvJzsKJGxhbmdbJ2lVUkwnXSA9ICdVUkwgZGUgaW1hZ2VuJzsKJGxhbmdbJ1R5cGUnXSA9ICdUeXBvJzsKJGxhbmdbJ1NpemUnXSA9ICdUYW1hJm50aWxkZTtvJzsKJGxhbmdbJ1N0YXR1cyddID0gJ1N0YXR1cyAnOwokbGFuZ1snaG90bGluayddID0gJzxzdHJvbmc+SG90bGlua2luZzo8L3N0cm9uZz4gcGFyZWNlIHNlciB1biBlbmxhY2UgZGlyZWN0byAoYWN0aXZvKS4nOwokbGFuZ1snQnJva2VubGluayddID0gJ0VubGFjZSByb3RvJzsKJGxhbmdbJ05PY3NzSSddID0gJ05vIGhheSBpbWFnZW5lcyBjc3MnOwokbGFuZ1snWWVzVkFsYXN0ZXInXSA9ICc8aDI+WW91IHZhbGlkYXRlZCEgKio8L2gyPjxpbWcgc3R5bGU9JnF1b3Q7Ym9yZGVyOjA7d2lkdGg6ODhweDtoZWlnaHQ6MzFweCZxdW90O3NyYz0mcXVvdDtodHRwOi8vamlnc2F3LnczLm9yZy9jc3MtdmFsaWRhdG9yL2ltYWdlcy92Y3NzLWJsdWUmcXVvdDthbHQ9JnF1b3Q7VmFsaWQgQ1NTISZxdW90OyAvPjxici8+IDxzdHJvbmc+KiogeW91IGFyZSBmaWx0ZXJpbmcgZXJyb3JzIGFuZCBtYXkgaGF2ZSBmaWx0ZXJlZCBhIHJlYWwgZXJyb3I8L3N0cm9uZz4nOwokbGFuZ1snWWVzVkFsJ10gPSAnPGgyPllvdSB2YWxpZGF0ZWQhPC9oMj48aW1nIHN0eWxlPSZxdW90O2JvcmRlcjowO3dpZHRoOjg4cHg7aGVpZ2h0OjMxcHgmcXVvdDtzcmM9JnF1b3Q7aHR0cDovL2ppZ3Nhdy53My5vcmcvY3NzLXZhbGlkYXRvci9pbWFnZXMvdmNzcy1ibHVlJnF1b3Q7YWx0PSZxdW90O1ZhbGlkIENTUyEmcXVvdDsgLz4nOwokbGFuZ1snQ2xlYXJJbWcnXSA9ICdCb3JyYXIgaW1hZ2VuIGFjdHVhbCc7CiRsYW5nWydGaW5pc2gnXSA9ICdUZXJtaW5hcic7CiRsYW5nWydyZXZlcnQnXSA9ICdSZXZlcnRpcic7CiRsYW5nWydhcHBseSddID0gJ0FwcGxpY2FyJzsKJGxhbmdbJ2NhbmNlbCddID0gJ0NhbmNlbGFyJzsKJGxhbmdbJ2Zvcm1fY2FuY2VsJ10gPSAnQ2FuY2VsYXInOwokbGFuZ1snU2F2ZSddID0gJ0d1YXJkYXInOwokbGFuZ1snZG9uZSddID0gJ0NvbXBsZXRvJzsKJGxhbmdbJ2FkZCddID0gJ0FncmVnYXInOwokbGFuZ1snc3VibWl0J10gPSAnRW52aWFyJzsKJGxhbmdbJ1JFT1JERVInXSA9ICdSZW9yZGVuYXInOwokbGFuZ1snZm9ybV9zdWJtaXQnXSA9ICdHdWFyZGFyIHByZWZlcmVuY2lhcyc7CiRsYW5nWydtb2RfcHJlZnNfdGl0bGUnXSA9ICdQcmVmZXJlbmNpYXMgZGUgTW9kdWxvJzsKJGxhbmdbJ3ByZWZzdXBkYXRlZCddID0gJ1ByZWZlcmVuY2lhcyBkZSBNb2R1bG8gYWN0dWFsaXphZGFzJzsKJGxhbmdbJ29wdGlvbnN1cGRhdGVkJ10gPSAnb3BjaW9uZXMgYWN0dWFsaXphZGFzJzsKJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnU1BFRUQgWU9VUiBTSVRFIFVQIC4uLiEhISEgJmJ1bGw7IE91dHB1dCBkeW5hbWljIEpTIGZpbGVzIGFuZCBDU1MgV0lUSCBzbWFydHkuLi4gJmJ1bGw7IFNldCB0aGUgZmlsZXMgdG8gdXNlIGEgc3ViZG9tYWluLi4uICZidWxsOyBjYWNoZWQuLi4gJmJ1bGw7IG1pbmlmaWVkLi4uICZidWxsOyBEaWQgSSBtZW50aW9uIHlvdSBjYW4gdXNlIHNtYXJ0eSBpbiB5b3VyIEpTIGFuZCBDU1Mgc2NyaXB0ISEhISAtIFNpbXBsZSwgZmxleGlibGUhJzsKJGxhbmdbJ3dlbGNvbWVfdGV4dCddID0gJzxwPkhvbGEhPC9wPic7CiRsYW5nWydjaGFuZ2Vsb2cnXSA9ICc8dWw+DQoNCiAgPGxpPlZlcnNpb24gMC4xIEJldGEgcmVsZWFzZS48L2xpPg0KICA8bGk+VmVyc2lvbiAwLjIgbG90cyBvZiBjaGFuZ2VzIHRvIGZpeCBidWcuLi48L2xpPg0KICAgPGxpPlZlcnNpb24gMC4zIHNldCB0aGUgc21hcnR5IHRvIHVzZSB7eyB9fTwvbGk+DQogICAgPGxpPlZlcnNpb24gMC40IGZpeGVkIGJ1Zy4uIGltcHJvdmVkIHRoZSBtaW5pYWZjYXRpb24gdG8gYSBzYXZlcyBvZiB1cCB0byA2MCU8L2xpPg0KPC91bD4nOwokbGFuZ1snaGVscCddID0gJzxsaW5rIG1lZGlhPSZxdW90O3NjcmVlbiZxdW90OyBocmVmPSZxdW90Oy4uL21vZHVsZXMvU2NyaXB0RGVwbG95L0NTUy9NYXN0ZXJDU1MuY3NzJnF1b3Q7IHR5cGU9JnF1b3Q7dGV4dC9jc3MmcXVvdDsgcmVsPSZxdW90O3N0eWxlc2hlZXQmcXVvdDsvPjxkaXYgY2xhc3M9JnF1b3Q7U2ltV3JhcCZxdW90Oz48YiBjbGFzcz0mcXVvdDtyYm90dG9tJnF1b3Q7PjxiIGNsYXNzPSZxdW90O3IxJnF1b3Q7PjwvYj4gPGIgY2xhc3M9JnF1b3Q7cjImcXVvdDs+PC9iPjxiIGNsYXNzPSZxdW90O3IzJnF1b3Q7PjwvYj4gPGIgY2xhc3M9JnF1b3Q7cjQmcXVvdDs+PC9iPjwvYj4NCg0KPGRpdiBjbGFzcz0mcXVvdDtTaW1jb24mcXVvdDs+IDxoMyBjbGFzcz0mcXVvdDtCYWNrTGluayZxdW90Oz48YSBvbmNsaWNrPSJqYXZhc2NyaXB0OndpbmRvdy5oaXN0b3J5LmdvKC0xKSIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPjw8IEJhY2s8L2E+PC9oMz4NCjxoMT5XaGF0IERvZXMgVGhpcyBEbz8tLS0gdGhpcyBuZWVkcyB1cGRhdGluZzwvaDE+DQo8aDI+V3JpdGUgbWFuYWdlIGFuZCBkZXBsb3kgSlMgYW5kIENTUzwvaDI+DQo8YSBpZD0iU2NyaXB0RGVwbG95Ij48L2E+DQo8cD5TY3JpcHREZXBsb3kgbW9kdWxlIHRoYXQgY2FuIGNvbWJpbmUgbXVsdGlwbGUgQ1NTIG9yIEphdmFzY3JpcHQgZmlsZXMsIGNvbXByZXNzIHRoZWlyIGNvbnRlbnRzIChpLmUuIHJlbW92YWwgb2YgdW5uZWNlc3Nhcnkgd2hpdGVzcGFjZS9jb21tZW50cyksIGFuZCBzZXJ2ZSB0aGUgcmVzdWx0cyB3aXRoIEhUVFAgZW5jb2RpbmcgKGd6aXAvZGVmbGF0ZSkgYW5kIGhlYWRlcnMgdGhhdCBhbGxvdyBvcHRpbWFsIGNsaWVudC1zaWRlIGNhY2hpbmcuIFRoaXMgaGVscHMgeW91IGZvbGxvdyBzZXZlcmFsIG9mIFlhaG9vISYjMDM5O3MgPGEgaHJlZj0iaHR0cDovL2RldmVsb3Blci55YWhvby5jb20vcGVyZm9ybWFuY2UvaW5kZXguaHRtbCNydWxlcyIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPlJ1bGVzIGZvciBIaWdoIFBlcmZvcm1hbmNlIFdlYiBTaXRlczwvYT4uIChTZWUgJnF1b3Q7UHJvYmxlbSBEb21haW4mcXVvdDsgYmVsb3cgZm9yIG1vcmUgaW5mby4pIDwvcD4NCjxoMz5UaGUgU2hvcnQgb2YgaXQ8L2gzPg0KPHA+V2lydGUgeW91ciBzY3JpcHRzLCBzZXQgdGhlIG9yZGVyIGFuZCBTY3JpcHREZXBsb3kgd2lsbCBkbyB0aGUgcmVzdCE8L3A+DQo8dGFibGU+DQogIDx0Ym9keT4NCiAgICA8dHI+DQogICAgICA8dGQgc3R5bGU9JnF1b3Q7Qk9SREVSLVJJR0hUOiAjYWFhIDFweCBzb2xpZDsgUEFERElORy1SSUdIVDogNXB4OyBCT1JERVItVE9QOiAjYWFhIDFweCBzb2xpZDsgUEFERElORy1MRUZUOiA1cHg7IFBBRERJTkctQk9UVE9NOiA1cHg7IEJPUkRFUi1MRUZUOiAjYWFhIDFweCBzb2xpZDsgUEFERElORy1UT1A6IDVweDsgQk9SREVSLUJPVFRPTTogI2FhYSAxcHggc29saWQmcXVvdDs+PHN0cm9uZz5CZWZvcmU8L3N0cm9uZz48L3RkPg0KICAgICAgPHRkIHN0eWxlPSZxdW90O0JPUkRFUi1SSUdIVDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctUklHSFQ6IDVweDsgQk9SREVSLVRPUDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctTEVGVDogNXB4OyBQQURESU5HLUJPVFRPTTogNXB4OyBCT1JERVItTEVGVDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctVE9QOiA1cHg7IEJPUkRFUi1CT1RUT006ICNhYWEgMXB4IHNvbGlkJnF1b3Q7PjxpbWcgc3JjPSZxdW90O2h0dHA6Ly9tcmNsYXkub3JnL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDA4LzA5L2ZpZGRsZXJfYmVmb3JlLnBuZyZxdW90OyBhbHQ9JnF1b3Q7YWZ0ZXImcXVvdDsgLz48L3RkPg0KICAgIDwvdHI+DQogICAgPHRyPg0KICAgICAgPHRkIHN0eWxlPSZxdW90O0JPUkRFUi1SSUdIVDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctUklHSFQ6IDVweDsgQk9SREVSLVRPUDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctTEVGVDogNXB4OyBQQURESU5HLUJPVFRPTTogNXB4OyBCT1JERVItTEVGVDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctVE9QOiA1cHg7IEJPUkRFUi1CT1RUT006ICNhYWEgMXB4IHNvbGlkJnF1b3Q7PjxzdHJvbmc+QWZ0ZXI8L3N0cm9uZz48L3RkPg0KICAgICAgPHRkIHN0eWxlPSZxdW90O0JPUkRFUi1SSUdIVDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctUklHSFQ6IDVweDsgQk9SREVSLVRPUDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctTEVGVDogNXB4OyBQQURESU5HLUJPVFRPTTogNXB4OyBCT1JERVItTEVGVDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctVE9QOiA1cHg7IEJPUkRFUi1CT1RUT006ICNhYWEgMXB4IHNvbGlkJnF1b3Q7PjxpbWcgc3JjPSZxdW90O2h0dHA6Ly9tcmNsYXkub3JnL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDA4LzA5L2ZpZGRsZXJfYWZ0ZXIucG5nJnF1b3Q7IGFsdD0mcXVvdDtiZWZvcmUmcXVvdDsgLz48L3RkPg0KICAgIDwvdHI+DQogIDwvdGJvZHk+DQo8L3RhYmxlPg0KDQoNCg0KPGgyPjxhIGlkPSJGZWF0dXJlcyI+PC9hPkZlYXR1cmVzPC9oMj4NCjx1bD4NCiAgPGxpPkNvbWJpbmVzIGFuZCBtaW5pZmllcyBtdWx0aXBsZSBDU1Mgb3IgSmF2YVNjcmlwdCBmaWxlcyBpbnRvIGEgc2luZ2xlICAgZG93bmxvYWQgPC9saT4NCiAgPGxpPlVzZXMgYW4gPGEgaHJlZj0iaHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL21pbmlmeS9zb3VyY2UvYnJvd3NlL3RydW5rL21pbi9saWIvSlNNaW4ucGhwIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+ZW5oYW5jZWQgcG9ydDwvYT4gb2YgRG91Z2xhcyBDcm9ja2ZvcmQmIzAzOTtzIDxhIGhyZWY9Imh0dHA6Ly93d3cuY3JvY2tmb3JkLmNvbS9qYXZhc2NyaXB0L2pzbWluLmh0bWwiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5KU01pbiAgIGxpYnJhcnk8L2E+IGFuZCBjdXN0b20gY2xhc3NlcyB0byBtaW5pZnkgPGEgaHJlZj0iaHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL21pbmlmeS9zb3VyY2UvYnJvd3NlL3RydW5rL21pbi9saWIvTWluaWZ5L0NTUy5waHAiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5DU1M8L2E+IGFuZCA8YSBocmVmPSJodHRwOi8vY29kZS5nb29nbGUuY29tL3AvbWluaWZ5L3NvdXJjZS9icm93c2UvdHJ1bmsvbWluL2xpYi9NaW5pZnkvSFRNTC5waHAiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5IVE1MPC9hPjwvbGk+DQogIDxsaT5DYWNoZXMgc2VydmVyLXNpZGUgdG8gYXZvaWQgZG9pbmcgdW5uZWNlc3Nhcnkgd29yayA8L2xpPg0KICA8bGk+UmVzcG9uZHMgd2l0aCBhbiBIVFRQIDMwNCAoTm90IE1vZGlmaWVkKSByZXNwb25zZSB3aGVuIHRoZSBicm93c2VyIGhhcyBhbiAgIHVwLXRvLWRhdGUgY2FjaGUgY29weSAqKiA8L2xpPg0KICA8bGk+TW9zdCBtb2R1bGVzIGFyZSBsYXp5LWxvYWRlZCBhcyBuZWVkZWQgKDMwNCByZXNwb25zZXMgdXNlIG1pbmltYWwgY29kZSkgICoqIDwvbGk+DQogIDxsaT5BdXRvbWF0aWNhbGx5IHJld3JpdGVzIHJlbGF0aXZlIFVSSXMgaW4gY29tYmluZWQgQ1NTIGZpbGVzIHRvIHBvaW50IHRvIHZhbGlkIGxvY2F0aW9ucyA8L2xpPg0KICA8bGk+V2l0aCBjYWNoaW5nIGVuYWJsZWQsIFNjcmlwdERlcGxveSBpcyBjYXBhYmxlIG9mIGhhbmRsaW5nIGh1bmRyZWRzIG9mIHJlcXVlc3RzIHBlciBzZWNvbmQgb24gYSBtb2RlcmF0ZWx5IHBvd2VyZnVsIHNlcnZlci4gPC9saT4NCiAgPGxpPkNvbnRlbnQtRW5jb2Rpbmc6IGd6aXAsIGJhc2VkIG9uIHJlcXVlc3QgaGVhZGVycy4gQ2FjaGluZyBhbGxvd3MgaXQgc28gc2VydmUgZ3ppcHBlZCBmaWxlcyBmYXN0ZXIgdGhhbiBBcGFjaGUmIzAzOTtzIG1vZF9kZWZsYXRlIG9wdGlvbiEgPC9saT4NCjwvdWw+DQo8aDM+PGVtPjxzdHJvbmc+KiogTm90ZTo8L3N0cm9uZz4gSXQgaXMgYmVzdCB0byB1c2UgYSAuaHRhY2Nlc3Mgc2NyaXB0IHRvIHNldCB0aGUgYWdlIHRpbWVzLiBTY3JpcHREZXBsb3kgaXMgZGVzaWduZWQgZm9yIGVmZmljaWVuY3ksIGJ1dCBmb3IgdmVyeSBoaWdoIHRyYWZmaWMgc2l0ZXMsIFNjcmlwdERlcGxveSBtYXkgc2VydmUgZmlsZXMgc2xvd2VyIHRoYW4geW91ciBIVFRQZCBkdWUgdG8gdGhlIENHSSBvdmVyaGVhZCBvZiBQSFAuICBUbyBvdmVyIGNvbWUgdGhpcyBKdXN0IGNoZWNrICZxdW90O3VzZSAuaHRhY2Nlc3MgaW4gb3B0aW9ucyZxdW90OzwvZW0+PC9oMz4NCjxoMj48YSBuYW1lPSJSZXF1aXJlbWVudHMiPjwvYT5SZXF1aXJlbWVudHM8L2gyPg0KPHVsPg0KICA8bGk+VGhlIGNvbW1vbmx5IGluc3RhbGxlZCA8YSBocmVmPSJodHRwOi8vdXMzLnBocC5uZXQvbWFudWFsL2VuL3psaWIuaW5zdGFsbGF0aW9uLnBocCIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPnpsaWIgICBleHRlbnNpb248L2E+IGlzIHJlY29tbWVuZGVkIGZvciBIVFRQIGVuY29kaW5nIGZ1bmN0aW9uYWxpdHkuIDwvbGk+DQo8L3VsPg0KPGJyLz48YnIvPg0KPGgxPkhvdyBEbyBJIFVzZSBJdDwvaDE+DQoNCg0KPGgzPkdldCBhIHNpbmdsZSBzY3JpcHQ8L2gzPg0KdXNlIDxzcGFuIGNsYXNzPSZxdW90O2NvZGVISUdITElHSFQmcXVvdDs+e2Ntc19tb2R1bGUgbW9kdWxlPVNjcmlwdERlcGxveSBzY3JpcHRJRD0mcXVvdDsxJnF1b3Q7fSA8L3NwYW4+IDxici8+PGJyLz4NCjxoMz5HZXQgYSBzY3JpcHQgZ3JvdXA8L2gzPg0KdXNlIDxzcGFuIGNsYXNzPSZxdW90O2NvZGVISUdITElHSFQmcXVvdDs+e2Ntc19tb2R1bGUgbW9kdWxlPVNjcmlwdERlcGxveSBncm91cElEPSZxdW90OzEmcXVvdDt9IDwvc3Bhbj4gPGJyLz48YnIvPg0KPGgyPkFsbCBvdXRwdXQgaXMgaW4gdGhlIFhIVE1MIGZvcm1hdCwgeW91IHNob3VsZCB3b3JrIGluIHRoYXQuPC9oMj4NCg0KPGJyLz48YnIvPg0KPGg0PlBhcmFtczwvaDQ+DQo8dWw+DQo8bGk+PHN0cm9uZz5zY3JpcHRJRD0mcXVvdDsmcXVvdDsgPC9zdHJvbmc+PGVtPihSZXF1aXJlZC9vcHRpb25hbCk8L2VtPiA8YnIvPnwgc2V0IHRoZSBJRCBSZXF1aXJlZCBvbmx5IGlmIGdyb3VwSUQgbm90IGNhbGxlZDxici8+PC9saT4NCjxsaT48c3Ryb25nPmdyb3VwSUQ9JnF1b3Q7JnF1b3Q7IDwvc3Ryb25nPjxlbT4oUmVxdWlyZWQvb3B0aW9uYWwpPC9lbT4gPGJyLz58IHNldCB0aGUgSUQgUmVxdWlyZWQgb25seSBpZiBzY3JpcHRJRCBub3QgY2FsbGVkPGJyLz48L2xpPg0KPGxpPjxzdHJvbmc+U3R5cGU9JnF1b3Q7JnF1b3Q7IDwvc3Ryb25nPjxlbT4oUmVxdWlyZWQvKSBKUy9DU1M8L2VtPiA8YnIvPnwgc2V0IHRoZSBJRCBSZXF1aXJlZCBvbmx5IGlmIHNjcmlwdElEIG5vdCBjYWxsZWQ8YnIvPjwvbGk+DQoNCjxsaT48c3Ryb25nPlNtYXJ0eU9uPSZxdW90OyZxdW90OyA8L3N0cm9uZz48ZW0+KG9wdGlvbmFsKSB0cnVlL2ZhbHNlIDxzdHJvbmc+RGVmYXVsdDpudWxsPC9zdHJvbmc+PC9lbT4gPGJyLz58IFRoaXMgbGV0cyB5b3Ugb3ZlciByaWRlIHRoZSBnbG9ibGVzPGJyLz48L2xpPg0KPGxpPjxzdHJvbmc+TWluaWZ5PSZxdW90OyZxdW90OyA8L3N0cm9uZz48ZW0+KG9wdGlvbmFsKSB0cnVlL2ZhbHNlIDxzdHJvbmc+RGVmYXVsdDpudWxsPC9zdHJvbmc+PC9lbT4gPGJyLz58ICBUaGlzIGxldHMgeW91IG92ZXIgcmlkZSB0aGUgZ2xvYmxlczxici8+PC9saT4NCg0KDQoNCg0KDQoNCjxsaT48c3Ryb25nPk1lZGlhVHlwZT0mcXVvdDsmcXVvdDsgPC9zdHJvbmc+PGVtPihvcHRpb25hbCk8L2VtPiA8YnIvPnwgc2V0IE1lZGlhIHR5cGUgZm9yIENTUyBmaWxlcyBoZXJlLi4uIG92ZXJyaWRlcyBkYiBzZXRpbmdzLjxici8+PC9saT4NCjxsaT48c3Ryb25nPmltcG9ydD0mcXVvdDsmcXVvdDsgPC9zdHJvbmc+PGVtPihvcHRpb25hbCkgdHJ1ZS9mYWxzZTwvZW0+IDxici8+fCBzZXQgdGhlIGluY2x1c2lvbiBzdHlsZSBmb3IgQ1NTIGZpbGVzIGhlcmUuLi4gb3ZlcnJpZGVzIGRiIHNldGluZ3MuIEV4OiB0cnVlICBnaXZlcyA8c3R5bGUgdHlwZT1cJnF1b3Q7dGV4dC9jc3NcJnF1b3Q7PkBpbXBvcnQgdXJsKCZxdW90O3VybC9jc3NmaWxlLmNzcyZxdW90Oykgc2NyZWVuOzwvc3R5bGU+PGJyLz48L2xpPg0KDQo8bGk+PHN0cm9uZz5jYWNoZUJ1c3Rlcjwvc3Ryb25nPiA8ZW0+KG9wdGlvbmFsKSA8c3Ryb25nPkRlZmF1bHQ6ZmFsc2U8L3N0cm9uZz48L2VtPjxici8+fCBUaGlzIGlzIHRvIGluc3RhbnRseSB1bmNhY2hlIGFuIHNjcmlwdCBvbiB0aGUgY2xpZW50IHNpZGUgYWZ0ZXIgYSBuZXcgdXBsb2FkZWQgc2NyaXB0IGlzIGNyZWF0ZWQuLi4gaWU6IDEyLmpzPzEyNTUyMjUwMDcgIDxmb250IGNvbG9yPSZxdW90O3JlZCZxdW90Oz48c3Ryb25nPiggdHJ1ZS9mYWxzZSApPC9zdHJvbmc+PC9mb250PjwvbGk+DQo8bGk+PHN0cm9uZz5hc3NpZ249JnF1b3Q7JnF1b3Q7IDwvc3Ryb25nPjxlbT4ob3B0aW9uYWwpPC9lbT4gPGJyLz58IEFzc2lnbiB0aGUgb3V0cHV0IChyZXR1cm4gdGhlIHNtYXJ0eSBhc3NpZ25tZW50KSAgVXNlIGluIGNvbmp1bmN0aW9uIHdpdGggb3V0IHdpdGhvdXQgVVJMPC9saT4NCjxsaT48c3Ryb25nPmZzaXplPSZxdW90OyZxdW90OyA8L3N0cm9uZz48ZW0+KG9wdGlvbmFsKTwvZW0+IDxici8+fCBnZXQgdGhlIHNpemU8L2xpPg0KPGxpPjxzdHJvbmc+cm9vdFVybD0mcXVvdDsmcXVvdDsgPC9zdHJvbmc+PGVtPihvcHRpb25hbCk8L2VtPiA8YnIvPnwgU2NyaXB0RGVwbG95IGNyZWF0ZXMgYSB0ZW1wIGRpcmVjdG9yIGluIHRoZSB1cGxvYWQgZm9sZGVyLiAgSWYgeW91IG1vdmUgdGhlIHBhdGggdG8gdGhlIHVwbGFvZCB0byBhIHN1YmRvbWFpbiB5b3UgbWF5IGd1aWRlIHRoZSBvdXRwdXQgd2l0aCB0aGlzLjwvbGk+DQogICAgICAgIDx1bCBzdHlsZT0mcXVvdDtsaXN0LXN0eWxlLXBvc2l0aW9uOmluc2lkZTsmcXVvdDs+PGxpPjxzdHJvbmc+RXhhcG1sZTo8L3N0cm9uZz4geW91IGNoYW5nZWQgPENPREU+JGNvbmZpZ1smIzAzOTt1cGxvYWRzX3BhdGgmIzAzOTtdID0gJiMwMzk7L3Zhci93d3cvdmhvc3RzL2RvbWFpbi5vcmcvaHR0cGRvY3MvdXBsb2FkcyYjMDM5Ozs8L0NPREU+IDwvbGk+DQogICAgICAgICAgICA8bGk+PHN0cm9uZz50bzwvc3Ryb25nPiA8Q09ERT4kY29uZmlnWyYjMDM5O3VwbG9hZHNfcGF0aCYjMDM5O10gPSBcL3Zhci93d3cvdmhvc3RzL2RvbWFpbi5vcmcvc3ViZG9tYWlucy9tZWRpYS9odHRwZG9jcy91cGxvYWRzJiMwMzk7OzwvQ09ERT48L2xpPg0KICAgICAgICAgICAgPGxpPm5vdyB0aGUgdXBsb2FkcyB1cmwgd291bGQgbm90IHdvcmsgYXMgaXQgd291bGQgYmUgPHU+aHR0cDovL3d3dy5kb21haW4ub3JnL3VwbG9hZHM8L3U+PC9saT4NCiAgICAgICAgICAgIDxsaT48c3Ryb25nPlNvPC9zdHJvbmc+IGl0IGNhbiBiZSBjaGFuZ2VkIGhlcmUgdG8gPHU+aHR0cDovL21lZGlhLmRvbWFpbi5vcmcvdXBsb2FkczwvdT4gIDxmb250IGNvbG9yPSZxdW90O3JlZCZxdW90Oz48c3Ryb25nPihOT1RFOiB3YXRjaCB5b3VyIC8gKTwvc3Ryb25nPjwvZm9udD48L2xpPg0KICAgICAgICA8L3VsPg0KPGxpPjxzdHJvbmc+VVJMPSZxdW90OyZxdW90OyA8L3N0cm9uZz48ZW0+KG9wdGlvbmFsKTwvZW0+IDxici8+fG91dHB1dHMgdGhlIHVybC48L2xpPg0KDQoNCg0KDQoJCQ0KDQoNCg0KDQoNCg0KDQoNCjwhLS08bGk+PHN0cm9uZz5TYW5kQm94PXRydWUgPC9zdHJvbmc+PGVtPihvcHRpb25hbCk8L2VtPiA8YnIvPnwgZmFsc2U8YnIvPjwvbGk+DQoNCjxsaT48c3Ryb25nPlJVTmFjdGlvbj0mYW1wO2FtcDtxdW90OyZhbXA7YW1wO3F1b3Q7IDwvc3Ryb25nPjxlbT4ob3B0aW9uYWwpPC9lbT4gPGJyLz58IFVEVDxici8+fCBVUkwgPGVtPiguLi9wbHVnaW5zL2Z1bmN0aW9uLmZpbGVuYW1lLnBocCk8L2VtPjxici8+fCAqTW9yZSBjb21pbmcgU29vbio8YnIvPjwvbGk+DQo8bGk+PHN0cm9uZz5MYW5nPSZhbXA7YW1wO3F1b3Q7JmFtcDthbXA7cXVvdDsgPC9zdHJvbmc+PGVtPihvcHRpb25hbCk8L2VtPiA8YnIvPnwgVXNlIENvdW50cnkgQ29kZXMgVG8gZHluYW1pY2x5IHNldCB0aGUgbGFuZ3VhZ2Ugb2YgdGhlIFBheVBhbCBwYWdlPGJyLz48L2xpPi0tPg0KDQo8L3VsPg0KPGJyLz4NCg0KPGJyLz48YnIvPg0KPGgyPjxhIGlkPSJQcm9ibGVtX0RvbWFpbiI+PC9hPlByb2JsZW0gRG9tYWluPC9oMj4NCjxwPlBhZ2VzIHRoYXQgcmVmZXIgdG8gbXVsdGlwbGUgQ1NTIG9yIEphdmFTY3JpcHQgZmlsZXMgb2Z0ZW4gc3VmZmVyIGZyb20gc2xvd2VyICAgcGFnZSBsb2FkcywgZHVlIHRvIHRoZSBicm93c2VyIHJlcXVlc3RpbmcgZWFjaCBmaWxlIGluZGl2aWR1YWxseS4gTWFueSBicm93c2VycyAgIGFsc28gYXJlIGxpbWl0ZWQgdG8gYSBmZXcgc2ltdWx0YW5lb3VzIHJlcXVlc3RzIHBlciBkb21haW4uIFRoZSB3YWl0IGZvciBhICAgc2VyaWVzIG9mIHJlcXVlc3RzIGFuZCB0aGUgdHJhbnNmZXIgb2YgdW5vcHRpbWl6ZWQgZmlsZXMgY2FuIGRyYW1hdGljYWxseSByZWR1Y2UgICB0aGUgY2xpZW50LXNpZGUgcGVyZm9ybWFuY2Ugb2YgeW91ciBzaXRlLiA8L3A+DQo8cD5IZXJlIGFyZSBhIGhhbmRmdWwgb2YgWWFob28hJiMwMzk7cyBiZXN0IHByYWN0aWNlcyB0aGF0IGFyZSBhZGRyZXNzZWQgYnkgdGhlIHVzZSBvZiBTY3JpcHREZXBsb3kuIDwvcD4NCjx1bD4NCiAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9kZXZlbG9wZXIueWFob28uY29tL3BlcmZvcm1hbmNlL3J1bGVzLmh0bWwjbnVtX2h0dHAiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5NYWtlIEZld2VyIEhUVFAgUmVxdWVzdHM8L2E+PC9saT4NCiAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9kZXZlbG9wZXIueWFob28uY29tL3BlcmZvcm1hbmNlL3J1bGVzLmh0bWwjZXhwaXJlcyIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPkFkZCBhbiBFeHBpcmVzIG9yIGEgQ2FjaGUtQ29udHJvbCBIZWFkZXI8L2E+PC9saT4NCiAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9kZXZlbG9wZXIueWFob28uY29tL3BlcmZvcm1hbmNlL3J1bGVzLmh0bWwjZ3ppcCIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPkd6aXAgQ29tcG9uZW50czwvYT48L2xpPg0KICA8bGk+PGEgaHJlZj0iaHR0cDovL2RldmVsb3Blci55YWhvby5jb20vcGVyZm9ybWFuY2UvcnVsZXMuaHRtbCNtaW5pZnkiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5NaW5pZnkgSmF2YVNjcmlwdCBhbmQgQ1NTPC9hPjwvbGk+DQogIDxsaT48YSBocmVmPSJodHRwOi8vZGV2ZWxvcGVyLnlhaG9vLmNvbS9wZXJmb3JtYW5jZS9ydWxlcy5odG1sI2V0YWdzIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+Q29uZmlndXJlIEVUYWdzPC9hPjwvbGk+DQogIDxsaT48YSBocmVmPSJodHRwOi8vZGV2ZWxvcGVyLnlhaG9vLmNvbS9wZXJmb3JtYW5jZS9ydWxlcy5odG1sI3VuZGVyMjUiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5LZWVwIENvbXBvbmVudHMgdW5kZXIgMjVLPC9hPjwvbGk+DQo8L3VsPg0KPGgzPjxhIG5hbWU9IkFja25vd2xlZGdtZW50cyI+PC9hPkFja25vd2xlZGdtZW50czwvaDM+DQo8cD5NaW5pZnkgd2FzIGluc3BpcmVkIGJ5IDxhIGhyZWY9Imh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC9qc2Nzc2NvbXAvIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+anNjc3Njb21wPC9hPiBieSBNYXhpbSBNYXJ0eW55dWsgYW5kIGJ5IHRoZSBhcnRpY2xlICYjMDM5OzxhIGhyZWY9Imh0dHA6Ly93d3cuaHVubG9jay5jb20vYmxvZ3MvU3VwZXJjaGFyZ2VkX0phdmFzY3JpcHQiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5TdXBlcmNoYXJnZWQgSmF2YVNjcmlwdDwvYT4mIzAzOTsgYnkgUGF0cmljayBIdW5sb2NrLiA8L3A+DQo8cD5UaGUgPGEgaHJlZj0iaHR0cDovL3d3dy5jcm9ja2ZvcmQuY29tL2phdmFzY3JpcHQvanNtaW4uaHRtbCIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPkpTTWluIGxpYnJhcnk8L2E+IHVzZWQgZm9yIEphdmFTY3JpcHQgbWluaWZpY2F0aW9uIHdhcyBvcmlnaW5hbGx5ICAgd3JpdHRlbiBieSBEb3VnbGFzIENyb2NrZm9yZCBhbmQgd2FzIDxhIGhyZWY9Imh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC9qc21pbi1waHAiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5wb3J0ZWQgdG8gUEhQPC9hPiBieSBSeWFuICAgR3JvdmUgc3BlY2lmaWNhbGx5IGZvciB1c2UgaW4gTWluaWZ5LiA8L3A+DQoNCg0KPGgzPlN1cHBvcnQ8L2gzPg0KPGg0PlNjcmVlbmNhc3RzIGZvciBleHRyYSBoZWxwIHdpbGwgZmFsbG93LS0tIG9uIHRoZSBUT0RPPC9oND4NCjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4NCjx1bD4NCjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlIG9yIHRvIGZpbGUgYSBidWcgcmVwb3J0IHZpc2l0IDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvcHBibSI+dGhlIENNUyBGb3JnZTwvYT4uPC9saT4NCjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyI+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uPC9saT4NCjwvdWw+DQoNCjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPg0KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDA5LCBqZXJlbXlCYXNzIDw8YSBocmVmPSJodHRwOi8vY29yYmVuc3Byb2R1Y3RzLmNvbSI+Y29yYmVuc3Byb2R1Y3RzLmNvbTwvYT4+IEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4NCjxzdHJvbmc+U3VwcG9ydCBtb3JlIG1vZHMgbGlrZSB0aGlzOjwvc3Ryb25nPjxmb3JtIGFjdGlvbj0mcXVvdDtodHRwczovL3d3dy5wYXlwYWwuY29tL2NnaS1iaW4vd2Vic2NyJnF1b3Q7IG1ldGhvZD0mcXVvdDtwb3N0JnF1b3Q7Pg0KPGlucHV0IHR5cGU9JnF1b3Q7aGlkZGVuJnF1b3Q7IG5hbWU9JnF1b3Q7Y21kJnF1b3Q7IHZhbHVlPSZxdW90O19zLXhjbGljayZxdW90Oz4NCjxpbnB1dCB0eXBlPSZxdW90O2hpZGRlbiZxdW90OyBuYW1lPSZxdW90O2hvc3RlZF9idXR0b25faWQmcXVvdDsgdmFsdWU9JnF1b3Q7ODgxNzY3NSZxdW90Oz4NCjxpbnB1dCB0eXBlPSZxdW90O2ltYWdlJnF1b3Q7IHNyYz0mcXVvdDtodHRwczovL3d3dy5wYXlwYWwuY29tL2VuX1VTL2kvYnRuL2J0bl9kb25hdGVfTEcuZ2lmJnF1b3Q7IGJvcmRlcj0mcXVvdDswJnF1b3Q7IG5hbWU9JnF1b3Q7c3VibWl0JnF1b3Q7IGFsdD0mcXVvdDtQYXlQYWwgLSBUaGUgc2FmZXIsIGVhc2llciB3YXkgdG8gcGF5IG9ubGluZSEmcXVvdDs+DQo8aW1nIGFsdD0mcXVvdDsmcXVvdDsgYm9yZGVyPSZxdW90OzAmcXVvdDsgc3JjPSZxdW90O2h0dHBzOi8vd3d3LnBheXBhbC5jb20vZW5fVVMvaS9zY3IvcGl4ZWwuZ2lmJnF1b3Q7IHdpZHRoPSZxdW90OzEmcXVvdDsgaGVpZ2h0PSZxdW90OzEmcXVvdDs+DQo8L2Zvcm0+PGJyLz4NCjxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+DQo8L2RpdiA+PGIgY2xhc3M9JnF1b3Q7cmJvdHRvbSZxdW90Oz48YiBjbGFzcz0mcXVvdDtyNCZxdW90Oz48L2I+PGIgY2xhc3M9JnF1b3Q7cjMmcXVvdDs+PC9iPiA8YiBjbGFzcz0mcXVvdDtyMiZxdW90Oz48L2I+IDxiIGNsYXNzPSZxdW90O3IxJnF1b3Q7PjwvYj48L2I+DQoNCjwvZGl2Pg0KJzsKJGxhbmdbJ3FjYSddID0gJ1AwLTIwOTYwNTQzNzAtMTI1OTgwMzYxNTkzOSc7CiRsYW5nWyd1dG1hJ10gPSAnMTU2ODYxMzUzLjIzODYwNjg1NC4xMjU5ODA0MzY4LjEyNjU3NzQwOTMuMTI2Njc4MjE4NC40NSc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEyNjY3ODIxODQuNDUuMjEudXRtY2NuPShyZWZlcnJhbCl8dXRtY3NyPWZvcnVtLmNtc21hZGVzaW1wbGUub3JnfHV0bWNjdD0vaW5kZXgucGhwL3RvcGljLDI2MzkuMC5odG1sfHV0bWNtZD1yZWZlcnJhbCc7CiRsYW5nWyd1dG1iJ10gPSAnMTU2ODYxMzUzLjEuMTAuMTI2Njc4MjE4NCc7CiRsYW5nWyd1dG1jJ10gPSAnMTU2ODYxMzUzJzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/fi_FI.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ1NjcmlwdCBEZXBsb3knOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdFbnNpbW0mYXVtbDtpbmVuIGFza2VsIGpvbmthIGhhbHVhdCBvdHRhYSBvbiBoZWxwJzsKJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICdNaWsmYXVtbDtsaSBzaW51bGxhIG9uIHBhcmFubnVzIGVoZG90dWtzaWEgU2NyaXB0RGVwbG95dCZhdW1sOyBrb2h0YWFuLCA8YSBocmVmPSJodHRwOi8vaGVscC5jb3JiZW5zcHJvZHVjdHMuY29tL21ha2UtY29udGFjdC5odG1sIj5PdGEgeWh0ZXl0dCZhdW1sOy48L2E+JzsKJGxhbmdbJ3JlYWxseV91bmluc3RhbGwnXSA9ICdQb2lzdGFtYWxsYSB0JmF1bWw7bSZhdW1sO24gbW9kdXVsaW4gYXNlbm51cyBlaSB2YWlrdXRhIGV2ZW50dGVpaGluIGphIGthaWtraSBraXJqYXQgb3ZhdCBlZGVsbGVlbiBhamFudGFzYWxsYS4gSGFsdWF0a28gamF0a2FhPyc7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHV1bGkgcG9pc3RldHR1Lic7CiRsYW5nWydpbnN0YWxsZWQnXSA9ICdHYWxsZXJ5IG1vZHV1bGluIHZlcnNpbyAlcyBhc2VubmV0dHUuJzsKJGxhbmdbJ3VwZ3JhZGVkJ10gPSAnTW9kdXVsaSBwJmF1bWw7aXZpdGV0dHkgdmVyc2lvb24gJXMuJzsKJGxhbmdbJ0FDVG9wdGlvbnMnXSA9ICdLJmF1bWw7eXR0Jm91bWw7Jm91bWw7bm90dG8gYXNldHVrc2V0Lic7CiRsYW5nWydtYW51YWxhc3NpZ25tZW50J10gPSAnU2NyaXB0aWVuIHJ5aG1pdHRlbHkuJzsKJGxhbmdbJ0hUTUxzZXR0aW5ncyddID0gJ0hUTUwgayZhdW1sO3l0dCZvdW1sOyZvdW1sO25vdHRvLic7CiRsYW5nWydWYWxzZXR0aW5ncyddID0gJ1ZhbGlkb2ludGkgYXNldHVrc2V0Lic7CiRsYW5nWydlbiddID0gJ0VuZ2xhbnRpJzsKJGxhbmdbJ2ZyJ10gPSAnRnJhbiZjY2VkaWw7YWlzIChSYW5za2EpJzsKJGxhbmdbJ2l0J10gPSAnSXRhbGlhbm8gKEl0YWxpYSknOwokbGFuZ1sna28nXSA9ICdLb3JlYSc7CiRsYW5nWydqYSddID0gJ0phcGFuaSc7CiRsYW5nWydlcyddID0gJ0VzcGEmbnRpbGRlO29sIChFc3BhbmphKSc7CiRsYW5nWyd6aC1jbiddID0gJ0tpaW5hJzsKJGxhbmdbJ25sJ10gPSAnTmVkZXJsYW5kcyAoSG9sbGFudGkpJzsKJGxhbmdbJ2RlJ10gPSAnRGV1dHNjaCAoU2Frc2EpJzsKJGxhbmdbJ3BsJ10gPSAnUG9sc2tpIChQdW9sYSknOwokbGFuZ1sncm8nXSA9ICdSb21hbmlhJzsKJGxhbmdbJ2NzJ10gPSAnJkVncmF2ZTtlJnNjYXJvbjt0aW5hJzsKJGxhbmdbJ2JnJ10gPSAnQnVsZ2FhcmlhJzsKJGxhbmdbJ3N2J10gPSAnUnVvdHNpJzsKJGxhbmdbJ2ZhJ10gPSAnUGVyc2lhIChGYXJzaSknOwokbGFuZ1sncnUnXSA9ICdWZW4mYXVtbDtqJmF1bWw7JzsKJGxhbmdbJ3B0LUJSJ10gPSAnQnJhc2lsaWFuIHBvcnR1Z2FsaSAoeWxlaW5lbiknOwokbGFuZ1snTG5vbmUnXSA9ICdFaSBWYXJvaXR1a3NpYSc7CiRsYW5nWydMMCddID0gJ1Rhc28gMCc7CiRsYW5nWydMMSddID0gJ1Rhc28gMSc7CiRsYW5nWydMMiddID0gJ1Rhc28gMic7CiRsYW5nWydjc3MxJ10gPSAnQ1NTIDEnOwokbGFuZ1snY3NzMiddID0gJ0NTUyAyJzsKJGxhbmdbJ2NzczIxJ10gPSAnQ1NTIDIuMSc7CiRsYW5nWydjc3MzJ10gPSAnQ1NTIDMnOwokbGFuZ1snc3ZnJ10gPSAnU1ZHJzsKJGxhbmdbJ3N2Z2Jhc2ljJ10gPSAnU1ZHIGJhc2ljJzsKJGxhbmdbJ3N2Z3RpbnknXSA9ICdTVkcgdGlueSc7CiRsYW5nWydtb2JpbGUnXSA9ICdtb2JpbGUnOwokbGFuZ1snYXRzYy10diddID0gJ2F0c2MtdHYnOwokbGFuZ1sndHYnXSA9ICdUYXJrb2l0ZXR0dSB0ZWxldmlzaW8gdHl5cHBpc2lsbGUgbGFpdHRlaWxsZS4nOwokbGFuZ1snbm9uZSddID0gJ0VpIG1pdCZhdW1sOyZhdW1sO24nOwokbGFuZ1snc2F2ZVZBTHNldHRpbmdzJ10gPSAnVGFsbGVubmEgdmFsaWRhYXRpbyBhc2V0dWtzZXQnOwokbGFuZ1snc2V0dGluZ3MnXSA9ICdBc2V0dWtzZXQnOwokbGFuZ1snc2V0dGluZ3NzYXZlZCddID0gJ0FzZXR1a3NldCB0YWxsZW5uZXR0dSc7CiRsYW5nWydsZWF2ZWNvZGUnXSA9ICcmQXVtbDtsJmF1bWw7IGtvc2tlIGtvb2RpaW4nOwokbGFuZ1snZm9ybWF0Y29kZSddID0gJ011b3RvaWxlIGtvb2RpJzsKJGxhbmdbJ3NjcmFtYmxlY29kZSddID0gJ1Nla29pdGEga29vZGknOwokbGFuZ1snY2xlYW5jb2RlJ10gPSAnUG9pc3RhIGtvb2Rpc3RhIGthaWtraSB0dXJoYSc7CiRsYW5nWydzYXZlc2V0dGluZ3MnXSA9ICdUYWxsZW5uYSBhc2V0dWtzZXQnOwokbGFuZ1snbWFuZ2xldHlwZXRleHQnXSA9ICdLb29kaW4gbXVvdG9pbHUnOwokbGFuZ1snYnJpZWYnXSA9ICdMeWh5dCc7CiRsYW5nWyd2ZXJib3NlJ10gPSAnTW9uaXNhbmFpbmVuJzsKJGxhbmdbJ2NvZGVmaXhlcyddID0gJ0tvb2RpbiBrb3JqYXVrc2V0JzsKJGxhbmdbJ2ZvcmNlbG93ZXJ0YWdzdGV4dCddID0gJ1Bha290YSB0YWdpdCBsb3dlcmNhc2Vpa3NpJzsKJGxhbmdbJ2ZvcmNlbG93ZXJ0YWdzaGVscCddID0gJ1BhcmVtbWFuIFhIVE1MLXlodGVlbnNvcGl2dXVkZW4gcHVvbGVzdGEnOwokbGFuZ1snaGlkZW1lc3NhZ2VzdGV4dCddID0gJ1BpaWxvdGEgdmllc3RpdCAoeClodG1sLWtvb2RpbiBsb3BwdW9zYXNzYSc7CiRsYW5nWydpbmRlbnR3aWR0aHRleHQnXSA9ICdTaXNlbm55a3NlbiBsZXZleXMnOwokbGFuZ1snc3BhY2VzJ10gPSAnViZhdW1sO2xpdCc7CiRsYW5nWydkZWJ1Z2xldmVsdGV4dCddID0gJ0RlYnVnIHJpdmllbiBtJmF1bWw7JmF1bWw7ciZhdW1sOzonOwokbGFuZ1snZGVidWd0ZXh0J10gPSAnS29vZGluIGRlYnVnIG1vZGUnOwokbGFuZ1snU2NyaXB0X2xpc3QnXSA9ICdTY3JpcHRpdCc7CiRsYW5nWydBc3NfaGVhZGVyJ10gPSAnWWh0ZW4mYXVtbDtpc2V0IFNjcmlwdGl0JzsKJGxhbmdbJ1NhbXBsZVRhZyddID0gJ0VzaW1lcmtraSB0YWdpJzsKJGxhbmdbJ3Byb21wdF9uZXdTY3JpcHQnXSA9ICdMaXMmYXVtbDsmYXVtbDsgVXVzaSBTY3JpcHRpJzsKJGxhbmdbJ3Byb21wdF9uZXdTY3JpcHRBc3MnXSA9ICdMaXMmYXVtbDsmYXVtbDsgVXVzaSBTY3JpcHRpIHRlaHQmYXVtbDt2JmF1bWw7JzsKJGxhbmdbJ3RpdGxlX0dyb3VwcyddID0gJ1NjcmlwdGllbiByeWhtJmF1bWw7IGxpc3RhdXMnOwokbGFuZ1sndGl0bGVfU2NyaXB0cyddID0gJ1lrc2l0dCZhdW1sO2lzdGVuIHNjcmlwdGllbiBsaXN0YXVzJzsKJGxhbmdbJ2FyZXlvdXN1cmUnXSA9ICdUJmF1bWw7cmtlJmF1bWw7JmF1bWw7OlxuXG5Kb3MgdCZhdW1sO20mYXVtbDsgcG9pc3RldGFhbiwgbmlpbiBrYWlra2kgZGF0YSB0dWhvdXR1dSFcblxuSm9zIHQmYXVtbDttJmF1bWw7IHNjcmlwdGkga3V1bHV1IHJ5aG0mYXVtbDsmYXVtbDtuLCByaWtrb28gc2Ugc2lkb2tzZW4gbWlzdCZhdW1sOyBqb2h0dWVuIGpvdWR1dCBtdW9ra2FhbWFhbiB0JmF1bWw7dCZhdW1sOyByeWhtJmF1bWw7JmF1bWw7LlxuUGFyYXN0YSBhbG9pdHRhYSBwb2lzdGFtaXMgcHJvc2Vzc2kgdGVodCZhdW1sO3ZpZW4gaGFsbGludGEgYWx1ZWVsdGEuXG5cblJFVklTSU8gSElTVE9SSUEgVFVIT1VUVVUgVCZBdW1sO00mQXVtbDtOIFRPSU1FTiBQSVRFRU4gU0VVUkFVS1NFTkEuLiBPTEVUS08gVkFSTUE/JzsKJGxhbmdbJ3NtYXJ0eUhvdyddID0gJ1NtYXJ0eSB0b2ltaWkgc2V1cmFhdmFzdGkuLi4gSm9zIGhhbHVhdCBrJmF1bWw7eXR0JmF1bWw7JmF1bWw7IHskc21hcnR5Lm5vd30sIHNlbiBzaWphYW4gayZhdW1sO3l0JmF1bWw7IHt7JHNtYXJ0eS5ub3d9fS4gTiZhdW1sO2luIHZvaXQgayZhdW1sO3l0dCZhdW1sOyZhdW1sOyBTbWFydHkmYXVtbDsnOwokbGFuZ1snYWxsJ10gPSAnWWh0ZWVuc29waXZhIGthaWtpbGxlIGxhaXR0ZWlsbGUuJzsKJGxhbmdbJ2F1cmFsJ10gPSAnVGFya29pdGV0dHUgcHVoZSBzeW50ZW50aXNhYXR0b3JlaWxsZS4nOwokbGFuZ1snYnJhaWxsZSddID0gJ1RhcmtvaXRldHR1IHNva2VhbmtpcmpvaXR1cyBrb25laWxsZS4nOwokbGFuZ1snZW1ib3NzZWQnXSA9ICdUYXJrb2l0ZXR0dSBzb2tlYW5raXJqb2l0dXMgdHVsb3N0aW1pbGxlLic7CiRsYW5nWydoYW5kaGVsZCddID0gJ1RhcmtvaXRldHR1IGhhbmRoZWxkIGxhaXR0ZWlsbGUuJzsKJGxhbmdbJ3ByaW50J10gPSAnVGFya29pdGV0dHUgc2l2dWplbiwgbCZhdW1sO3BpbiZhdW1sO2t5bSZhdW1sO3R0Jm91bWw7bSZhdW1sO24gbWF0ZXJpYWFsaW4gamEgYXNpYWtpcmpvamVuIGthdHNvbWlzZWVuIGtvbmVlbHRhIGVzaWthdHNlbHVzc2EgdGlsYXNzYS4nOwokbGFuZ1sncHJvamVjdGlvbiddID0gJ1RhcmtvaXRldHR1IHByb2plY3RlZCBlc2l0eWtzaSZhdW1sOyB2YXJ0ZW4sIGVzaW1lcmtpa3MgcHJvamVrdG9yaWVuIHRhaSB0dWxvc3RldHR1amVuIGthbHZvamVuLic7CiRsYW5nWydzY3JlZW4nXSA9ICdUYXJrb2l0ZXR0dSBwJmF1bWw7JmF1bWw7YXNpYXNzYSB2JmF1bWw7cmlsbGlzaWxsZSB0aWV0b2tvbmVlbiBuJmF1bWw7eXQmb3VtbDtpbGxlLic7CiRsYW5nWyd0dHknXSA9ICdUYXJrb2l0ZXR0dSBtZWRpYWEgdmFydGVuIGsmYXVtbDt5dGV0dCZhdW1sO3YmYXVtbDtrc2kga2lpbnRlJmF1bWw7biBtZXJra2lydXVkdWtrb24ga2Fuc3NhLCBrdXRlbiB0ZWxldHl5cHBpc2V0IGphIHRlcm1pbmFhbGl0Lic7CiRsYW5nWydNZWRpYVR5cGUnXSA9ICdhbGwgOiBZaHRlZW5zb3BpdmEga2Fpa2lsbGUgbGFpdHRlaWxsZS48YnIvPg0KYXVyYWwgOiBUYXJrb2l0ZXR0dSBwdWhlIHN5bnRlbnRpc2FhdHRvcmVpbGxlLjxici8+DQpicmFpbGxlIDogVGFya29pdGV0dHUgc29rZWFua2lyam9pdHVzIGtvbmVpbGxlLjxici8+DQplbWJvc3NlZCA6IFRhcmtvaXRldHR1IHNva2VhbmtpcmpvaXR1cyB0dWxvc3RpbWlsbGUuPGJyLz4NCmhhbmRoZWxkIDogVGFya29pdGV0dHUgaGFuZGhlbGQgbGFpdHRlaWxsZS48YnIvPg0KcHJpbnQgOiBUYXJrb2l0ZXR0dSBzaXZ1amVuLCBsJmF1bWw7cGluJmF1bWw7a3ltJmF1bWw7dHQmb3VtbDttJmF1bWw7biBtYXRlcmlhYWxpbiBqYSBhc2lha2lyam9qZW4ga2F0c29taXNlZW4ga29uZWVsdGEgZXNpa2F0c2VsdXNzYSB0aWxhc3NhLjxici8+DQpwcm9qZWN0aW9uIDogVGFya29pdGV0dHUgcHJvamVjdGVkIGVzaXR5a3NpJmF1bWw7IHZhcnRlbiwgZXNpbWVya2lrcyBwcm9qZWt0b3JpZW4gdGFpIHR1bG9zdGV0dHVqZW4ga2Fsdm9qZW4uPGJyLz4NCnNjcmVlbiA6IFRhcmtvaXRldHR1IHAmYXVtbDsmYXVtbDthc2lhc3NhIHYmYXVtbDtyaWxsaXNpbGxlIHRpZXRva29uZWVuIG4mYXVtbDt5dCZvdW1sO2lsbGUuPGJyLz4NCnR0eSA6IFRhcmtvaXRldHR1IG1lZGlhYSB2YXJ0ZW4gayZhdW1sO3l0ZXR0JmF1bWw7diZhdW1sO2tzaSBraWludGUmYXVtbDtuIG1lcmtraXJ1dWR1a2tvbiBrYW5zc2EsIGt1dGVuIHRlbGV0eXlwcGlzZXQgamEgdGVybWluYWFsaXQuPGJyLz4NCnR2IDogVGFya29pdGV0dHUgdGVsZXZpc2lvIHR5eXBwaXNpbGxlIGxhaXR0ZWlsbGUuJzsKJGxhbmdbJ0NhbmNlbGVkJ10gPSAnUGVydXV0aXQgdG9pbWlubm9uLiBLYWlra2kgZGF0YSBtZW5ldGV0JmF1bWw7JmF1bWw7bi4nOwokbGFuZ1snQnRuQURERUQnXSA9ICdVdXNpIFNjcmlwdGkgbGlzJmF1bWw7dHR5Lic7CiRsYW5nWydCdG5FRElURUQnXSA9ICdTY3JpcHRpJmF1bWw7IG11b2thdHR1Lic7CiRsYW5nWydCdG5ERUxFVEVEJ10gPSAnU2NyaXB0aSBwb2lzdGV0dHUnOwokbGFuZ1sndHlwZV9sYWJlbCddID0gJ1R5eXBwaSc7CiRsYW5nWydyZXZpc2lvbiddID0gJ1JldmlzaW8nOwokbGFuZ1snaXNFZGl0J10gPSAnZWRpdG9pJzsKJGxhbmdbJ2VtdHB5R3JvdXAnXSA9ICdTaW51biBwaXQmYXVtbDsmYXVtbDsgbGlzJmF1bWw7dCZhdW1sOyBzY3JpcHRpIHJ5aG0mYXVtbDsmYXVtbDtuIHZvaWRha3Nlc2kga3V0c3VhIHNpdCZhdW1sOyc7CiRsYW5nWydTY3JpcHRTZXRfbGFiZWwnXSA9ICdTY3JpcHRpbiBJRCc7CiRsYW5nWydzY3JpcHRUeXBlX2xhYmVsJ10gPSAnU2NyaXB0aW4gVHl5cHBpJzsKJGxhbmdbJ1NjcmlwdE5hbWVfbGFiZWwnXSA9ICdTY3JpcHRpbiBOaW1pJzsKJGxhbmdbJ1NpbmdsZUNvZGVfbGFiZWwnXSA9ICdZa3NpdHQmYXVtbDtpc2VuIFNjcmlwdGluIE9sZXR1cyBLdXRzdSc7CiRsYW5nWydHcm91cHRTaXplX2xhYmVsJ10gPSAnWWh0ZWVucyZhdW1sOyc7CiRsYW5nWydub3Rlc19sYWJlbCddID0gJ011aXN0aWlucGFub3QnOwokbGFuZ1snU2hvd1ZhbF9sYWJsZSddID0gJ1BpZCZhdW1sOyBWaWVzdGl0IEF1a2knOwokbGFuZ1snVHVybk9OVmFsX2xhYmxlJ10gPSAnUGlkJmF1bWw7IFZhbGlkb2ludGkgPHN0cm9uZz5QJkF1bWw7JkF1bWw7TEwmQXVtbDs8L3N0cm9uZz4nOwokbGFuZ1snaG90TGlua0NoZWNrX2xhYmxlJ10gPSAnVGFya2FzdGEgS3V1bWF0TGlua2l0JzsKJGxhbmdbJ1RydW5PbmhvdExpbmtDaGVjayddID0gJ1NpbnVuIHBpdCZhdW1sOyZhdW1sOyBwaXN0JmF1bWw7JmF1bWw7IEt1dW1pZW5MaW5ra2llbiB0YXJraXN0dXMgcCZhdW1sOyZhdW1sO2xsZSc7CiRsYW5nWydmaWx0ZXJQcm9wX2xhYmxlJ10gPSAnRmlsdHRlciZvdW1sO2kgdmFsaW50b2phIGVkaXN0JmF1bWw7bSZhdW1sOyZhdW1sO24gdmFsaWRvaW50aWEnOwokbGFuZ1snQ1NTcHJvZmlsZV9sYWJsZSddID0gJ0NTUyBQcm9maWlsaSc7CiRsYW5nWyd1c2VybWVkaXVtX2xhYmxlJ10gPSAnTWVkaWEgdHl5cHBpJzsKJGxhbmdbJ1ZBTExhbmdfbGFibGUnXSA9ICdLaWVsaSc7CiRsYW5nWyd3M2NDU1N3YXJuaW5nX2xhYmxlJ10gPSAnIHczYyBDU1MgVmFyb2l0dXMgVGFzbyc7CiRsYW5nWydNZWRpYVR5cGVfbGFiZWwnXSA9ICdNZWRpYSB0eXlwcGknOwokbGFuZ1snTWluaWZ5X2xhYmVsJ10gPSAnTWluaWZ5IHR1bG9zdGV0dGFlc3NhJzsKJGxhbmdbJ0NyZWF0aW9uRGF0ZV9sYWJlbCddID0gJ0x1b250aSBwJmF1bWw7aXYmYXVtbDttJmF1bWw7JmF1bWw7ciZhdW1sOyc7CiRsYW5nWydNb2RpZmVkRGF0ZV9sYWJlbCddID0gJ011b2trYXVzIHAmYXVtbDtpdiZhdW1sO20mYXVtbDsmYXVtbDtyJmF1bWw7JzsKJGxhbmdbJ3BhdGhPcHRpb25fbGFiZWwnXSA9ICdLJmF1bWw7eXQmYXVtbDsgcG9sa3VhPGVtPihlc2ltOiAmcXVvdDsvdXBsb2Fkcy8uLi4mcXVvdDspPC9lbT4nOwokbGFuZ1sncm9vdFVSTE9wdGlvbl9sYWJlbCddID0gJ0smYXVtbDt5dCZhdW1sOyB0YXJrZW5uZXR0dWEganV1cmkgVVJMOmlhPGVtPihlc2ltOiAmcXVvdDtodHRwczovL3N1Yi5kb21haW4udGxkLyZxdW90Oyk8L2VtPic7CiRsYW5nWydHcm9vdFVSTCddID0gJ1lsZWluZW4gU2NyaXB0aWVuIEp1dXJpIFVSTCc7CiRsYW5nWydlbXB0eWNhY2hlRXJyb3JfZG9BRFVJVCddID0gJ3YmYXVtbDtsaW11aXN0aW4gdHloamVubnlzIGVwJmF1bWw7b25uaXN0dWknOwokbGFuZ1snZW1wdGllZENhY2hfZG9BRFVJVCddID0gJ3R5aGplbnNpIHNjcmlwdGluIHYmYXVtbDtsaW11aXN0aW4nOwokbGFuZ1snY2xlYXJlZFJldmlzaW9uX2RvQURVSVQnXSA9ICdyZXZpc2lvIGhpc3RvcmlhIHR5aGomYXVtbDt0dHknOwokbGFuZ1snQ2hlY2tlZE91dF9kb0FEVUlUJ10gPSAnVGFya2lzdGV0dHUgc2NyaXB0aSc7CiRsYW5nWydyZWxlYXNlZF9kb0FEVUlUJ10gPSAnanVsa2Fpc3R1IHNjcmlwdGknOwokbGFuZ1snU2NyaXB0SXNfbGFiZWwnXSA9ICdLJmF1bWw7eXQmYXVtbDsgdCZhdW1sO3QmYXVtbDsgc2NyaXB0aSZhdW1sOyA8ZW0+KEh1b21pOiBKb3MgcG9sa3Ugb24gYXNldGV0dHUsIHQmYXVtbDttJmF1bWw7IG9oaXR0YWEgc2VuKTwvZW0+JzsKJGxhbmdbJ2RlYnVnSVRfbGFiZWwnXSA9ICdkZWJ1Z0lUJzsKJGxhbmdbJ2RlYnVnSVRub3RlX2xhYmVsJ10gPSAnPGVtPihGaXJlcGhwIG1vZCBwaXQmYXVtbDsmYXVtbDsgb2xsYSBhc2VubmV0dHVuYSk8L2VtPic7CiRsYW5nWydkZWJ1Z1QnXSA9ICdEZWJ1Z2dhdXMgYXNldHVrc2V0JzsKJGxhbmdbJ0VkaXRIaXN0b3J5J10gPSAnSyZhdW1sO3l0dCZhdW1sO2omYXVtbDsgSGlzdG9yaWFuIE11b2trYXVzJzsKJGxhbmdbJ25vbmVJblR5cGUnXSA9ICc8aDE+U2ludW4gcGl0JmF1bWw7JmF1bWw7IGVuc2lrc2kgbGlzJmF1bWw7dCZhdW1sOyA8YnIvPnQmYXVtbDttJmF1bWw7biB0eXlwcGluZW4gc2NyaXB0aTwvaDE+JzsKJGxhbmdbJ3JldmlzaW9uVGl0bGUnXSA9ICdSZXZpc2lvIEhpc3RvcmlhJzsKJGxhbmdbJ3JldmlzaW9uX2xhYmVsJ10gPSAnPHN0cm9uZz5LJmF1bWw7eXQmYXVtbDsgcmV2aXNpbyBoaXN0b3JpYWE8L3N0cm9uZz4nOwokbGFuZ1sncmV2aXNpb25fb3AnXSA9ICc8aDE+UmV2aXNpbzwvaDE+DQo8aDM+UG9pc3RhbWFsbGEgdCZhdW1sO20mYXVtbDsgayZhdW1sO3l0Jm91bWw7c3QmYXVtbDssIGVpIG5vbGxhYSByZXZpc2lvIGhpc3RvcmlhYS4gVCZhdW1sO20mYXVtbDsgdG9pbWlpIGt1dGVuIHBhdXNlPC9oMz4nOwokbGFuZ1sncmV2aXNpb25fTElNSVRfbGFiZWwnXSA9ICdBc2V0YSBSZXZpc2lvaWRlbiBNJkF1bWw7JkF1bWw7UiZBdW1sOyc7CiRsYW5nWydjbGVhclJldiddID0gJ1R5aGplbm4mYXVtbDsgSGlzdG9yaWEnOwokbGFuZ1sncHJlbG9hZF9DU1NpbWFnZVRpdGxlJ10gPSAnRW5uYWx0YSBsYXRhYSBDc3MgS3V2YXQnOwokbGFuZ1sncHJlbG9hZF9DU1NpbWFnZV9sYWJlbCddID0gJzxzdHJvbmc+SyZhdW1sO3l0JmF1bWw7IENzcyBrdXZpZW4gZW5uYWx0YSBsYXRhdXN0YTwvc3Ryb25nPic7CiRsYW5nWydwcmVsb2FkX0NTU2ltYWdlJ10gPSAnPGgxPkVubmFsdGEgbGF0YWEgQ3NzIEt1dmF0PC9oMT4NCjxoMz5Kb3MgaiZhdW1sO3JqZXN0ZWxtJmF1bWw7c2kgb24gb2lrZWluIGNvbmZpZ3Vyb2l0dSwgdCZhdW1sO20mYXVtbDsgbm9wZXV0dGFhIGt1dmllbiBsYXRhYW1pc3RhIGVsZW1lbnRlaXNzJmF1bWw7LjwvaDM+JzsKJGxhbmdbJ2dsb2JhbHVybCddID0gJzxoMT5Bc2V0YSBqdXVyaSBVUkw8L2gxPg0KPGgzPksmYXVtbDt5dGV0JmF1bWw7JmF1bWw7biBrdW4gdGFydml0YWFuIFNTTCB0dWtpIHRhaSBoYWx1dGFhbiB0eSZvdW1sO250JmF1bWw7JmF1bWw7IHNjcmlwdGl0IGFsYWRvbWFpbmVpaGluLjwvaDM+JzsKJGxhbmdbJ3NtYXJ0eU9uX2xhYmVsJ10gPSAnPHN0cm9uZz5Qcm9zZXNzb2kgU21hcnR5PC9zdHJvbmc+PGJyLz4gZGF0YSBwYWluaWtlIGtlbnRpc3MmYXVtbDsnOwokbGFuZ1snc21hcnR5T24nXSA9ICc8aDE+UHJvc2Vzc29pIFNtYXJ0eSBkYXRhPC9oMT4NCjxoMz5LdW4gdCZhdW1sO20mYXVtbDsgb24gcCZhdW1sOyZhdW1sO2xsJmF1bWw7LCB2b2l0IGFzZXR0YWEgcGFpbmlrZSBrZW50aWxsZSBhcnZvamEgbXVpbHRhIG1vZHV1bGVpbHRhIGt1dGUgUHJvZHVjdHMgdGFpIENhdGFsb2dlcjwvaDM+JzsKJGxhbmdbJ2ZpbGVUaW1lX2Nzc191cmxzX2xhYmVsJ10gPSAnPHN0cm9uZz5hdXR0YWEgcmlra29tYWFuIGFzaWFrYXMgcHVvbGVuIHYmYXVtbDtsaW11aXN0aW48L3N0cm9uZz4nOwokbGFuZ1snZmlsZVRpbWVfY3NzX3VybHMnXSA9ICc8aDE+YXV0dGFhIHJpa2tvbWFhbiBhc2lha2FzIHB1b2xlbiB2JmF1bWw7bGltdWlzdGluPC9oMT4NCjxoMz5UaGlzIGlzIGRvbmUgYnkgYWRkaW5nIGEgZmlsZSBjcmVhdGlvbiB0aW1lIGF0IHRoZSBlbmQgb2YgYSBmaWxlLiAgVHVybmluZyB0aGlzIG9uIHdpbGwgYWRkIHRoaXMgdG8gYWxsIGxvY2FsIHVybHMuIChDU1Mgb25seSBhdG0pIC1Ob3RoaW5nIGlzIGRvbmUgdG8gaG90bGlua3M8L2gzPic7CiRsYW5nWydlZGl0J10gPSAnTXVva2thYSc7CiRsYW5nWydkZWxldGUnXSA9ICdQb2lzdGEnOwokbGFuZ1snQ2xvc2UnXSA9ICdTdWxqZSc7CiRsYW5nWydPcGVuJ10gPSAnQXZhYSc7CiRsYW5nWydkaXJFbXB0eSddID0gJ0hha2VtaXN0byBvbGkgdHloaiZhdW1sOyc7CiRsYW5nWydjbGVhblRlbXAnXSA9ICdUeWhqZW5uJmF1bWw7IHRlbXA/JzsKJGxhbmdbJ3VyVGVtcFBhdGgnXSA9ICdWJmF1bWw7bGltdWlzdGkgcG9sa3VzaSc7CiRsYW5nWydMYXN0TW9kJ10gPSAnVmlpbWVrc2kgTXVva2F0dHUnOwokbGFuZ1snY2FjaGVGZXJyb3InXSA9ICdTY3JpcHREZXBsb3kgZWkgdm9pbnV0IGx1b2RhIHYmYXVtbDtsaW11aXN0aSBoYWtlbWlzdG9hLCB0YXJrYXN0YSBhc2V0dWtzZXNpLic7CiRsYW5nWydOYW1lJ10gPSAnTmltaSc7CiRsYW5nWydQcm9jY2Vzc2luZyddID0gJ1Byb3Nlc3NvaSc7CiRsYW5nWydTYXZlZCddID0gJ1RhbGxlbm5ldHR1JzsKJGxhbmdbJ0RvbmUnXSA9ICdWYWxtaXMnOwokbGFuZ1snVmFsaWRhdGluZyddID0gJ1ZhbGlkb2knOwokbGFuZ1snR3JvdXB0U2V0X2xhYmVsJ10gPSAnUnlobSZhdW1sO24gTmltaSc7CiRsYW5nWydHcm91cHRUeXBlX2xhYmVsJ10gPSAnU2NyaXB0aW4gdHl5cHBpJzsKJGxhbmdbJ1NjcmlwdFBpY2tlcl9sYWJlbCddID0gJ1NjcmlwdGluIHBvb2xpJzsKJGxhbmdbJ0xJTkUnXSA9ICdSSVZJJzsKJGxhbmdbJ1RZUEUnXSA9ICdUWVlQUEknOwokbGFuZ1snU1VCVFlQRSddID0gJ0FMQVRZWVBQSSc7CiRsYW5nWydTVFJJTkcnXSA9ICdKT05PJzsKJGxhbmdbJ01FU1NBR0UnXSA9ICdWSUVTVEknOwokbGFuZ1snTEVWRUwnXSA9ICdUQVNPJzsKJGxhbmdbJ05vdGVzJ10gPSAnTXVpc3RpaW5wYW5vdCc7CiRsYW5nWydXYXJuaW5ncyddID0gJ1Zhcm9pdHVrc2V0JzsKJGxhbmdbJ0Vycm9ycyddID0gJ1ZpcmhlZXQnOwokbGFuZ1snaGlkZGVuJ10gPSAncGlpbG90ZXR0dSc7CiRsYW5nWydTY3JpcHQnXSA9ICdTY3JpcHRpJzsKJGxhbmdbJ0VVUkxTJ10gPSAnUHVyZXR1dCBVUkw6aXQnOwokbGFuZ1snUkNTUyddID0gJ1JlbmRlciZvdW1sO2lkeXQgQ1NTOiZhdW1sO3QnOwokbGFuZ1snU0NTUyddID0gJ0NTUyBSYWtlbm5lJzsKJGxhbmdbJ0ZDT05UJ10gPSAnVGllZG9zdG8gc2lzJmF1bWw7bHQmb3VtbDsnOwokbGFuZ1snaVVSTCddID0gJ2t1dmFuIFVSTCc7CiRsYW5nWydUeXBlJ10gPSAnVHl5cHBpJzsKJGxhbmdbJ1NpemUnXSA9ICdLb2tvJzsKJGxhbmdbJ1N0YXR1cyddID0gJ1RpbGEnOwokbGFuZ1snaG90bGluayddID0gJzxzdHJvbmc+TGlua2l0ZXQmYXVtbDsmYXVtbDtuOjwvc3Ryb25nPiBuJmF1bWw7eXR0JmF1bWw7JmF1bWw7IG9sZXZhbiBrdXVtYWxpbmtraS4nOwokbGFuZ1snQnJva2VubGluayddID0gJ1Jpa2tpbiZhdW1sO2luZW4gTGlua2tpJzsKJGxhbmdbJ05PY3NzSSddID0gJ0VpIGNzcyBrdXZpYSc7CiRsYW5nWydZZXNWQWxhc3RlciddID0gJzxoMj5Zb3UgdmFsaWRhdGVkISAqKjwvaDI+PGltZyBzdHlsZT0mcXVvdDtib3JkZXI6MDt3aWR0aDo4OHB4O2hlaWdodDozMXB4JnF1b3Q7c3JjPSZxdW90O2h0dHA6Ly9qaWdzYXcudzMub3JnL2Nzcy12YWxpZGF0b3IvaW1hZ2VzL3Zjc3MtYmx1ZSZxdW90O2FsdD0mcXVvdDtWYWxpZCBDU1MhJnF1b3Q7IC8+PGJyLz4gPHN0cm9uZz4qKiB5b3UgYXJlIGZpbHRlcmluZyBlcnJvcnMgYW5kIG1heSBoYXZlIGZpbHRlcmVkIGEgcmVhbCBlcnJvcjwvc3Ryb25nPic7CiRsYW5nWydZZXNWQWwnXSA9ICc8aDI+WW91IHZhbGlkYXRlZCE8L2gyPjxpbWcgc3R5bGU9JnF1b3Q7Ym9yZGVyOjA7d2lkdGg6ODhweDtoZWlnaHQ6MzFweCZxdW90O3NyYz0mcXVvdDtodHRwOi8vamlnc2F3LnczLm9yZy9jc3MtdmFsaWRhdG9yL2ltYWdlcy92Y3NzLWJsdWUmcXVvdDthbHQ9JnF1b3Q7VmFsaWQgQ1NTISZxdW90OyAvPic7CiRsYW5nWydDbGVhckltZyddID0gJ1BvaXN0YSBLdXZhJzsKJGxhbmdbJ0ZpbmlzaCddID0gJ1ZhbG1pcyc7CiRsYW5nWydyZXZlcnQnXSA9ICdQYWxhdXRhJzsKJGxhbmdbJ2FwcGx5J10gPSAnSyZhdW1sO3l0JmF1bWw7JzsKJGxhbmdbJ2NhbmNlbCddID0gJ1BlcnV1dGEnOwokbGFuZ1snZm9ybV9jYW5jZWwnXSA9ICdQZXJ1dXRhJzsKJGxhbmdbJ1NhdmUnXSA9ICdUYWxsZW5uYSc7CiRsYW5nWydkb25lJ10gPSAnVmFsbWlzJzsKJGxhbmdbJ2FkZCddID0gJ0xpcyZhdW1sOyZhdW1sOyc7CiRsYW5nWydzdWJtaXQnXSA9ICdMJmF1bWw7aGV0JmF1bWw7JzsKJGxhbmdbJ1JFT1JERVInXSA9ICdVdWRlbGxlZW4gaiZhdW1sO3JqZXN0JmF1bWw7JzsKJGxhbmdbJ2Zvcm1fc3VibWl0J10gPSAnVGFsbGVubmEgQXNldHVrc2V0JzsKJGxhbmdbJ21vZF9wcmVmc190aXRsZSddID0gJ01vZHV1bGluIEFzZXR1a3NldCc7CiRsYW5nWydwcmVmc3VwZGF0ZWQnXSA9ICdNb2R1dWxpbiBhc2V0dWtzZXQgcCZhdW1sO2l2aXRldHR5Lic7CiRsYW5nWydvcHRpb25zdXBkYXRlZCddID0gJ3ZhbGlubmF0IHAmYXVtbDtpdml0ZXR0eSc7CiRsYW5nWydtb2RkZXNjcmlwdGlvbiddID0gJ05PUEVVVEEgU0FJVFRJQVNJIC4uLiEhISEgJmJ1bGw7IFR1bG9zdGEgZHluYWFtaXN0YSBKUzomYXVtbDsmYXVtbDsgc2VrJmF1bWw7IENTUzomYXVtbDsmYXVtbDsgc21hcnR5biBrYW5zc2EuLi4gJmJ1bGw7IEFzZXRhIHRpZWRvc3RvdCBrJmF1bWw7eXR0JmF1bWw7bSZhdW1sOyZhdW1sO24gYWxhZG9tYWluZWphLi4uICZidWxsOyB2JmF1bWw7bGltdWlzdGkuLi4gJmJ1bGw7IG1pbmlmaWVkLi4uICZidWxsOyBNdWlzdGlua28gbWFpbml0YSBldHQmYXVtbDsgdm9pdCBrJmF1bWw7eXR0JmF1bWw7JmF1bWw7IHNtYXJ0eWEgSlMgamEgQ1NTIHNjcmlwdGVpc3MmYXVtbDtzaSEhISEgLSBZa3NpbmtlcnRhaW5lbiwgam91c3RhdmEhJzsKJGxhbmdbJ3dlbGNvbWVfdGV4dCddID0gJzxwPkhlaSE8L3A+JzsKJGxhbmdbJ2NoYW5nZWxvZyddID0gJzx1bD4NCg0KICA8bGk+VmVyc2lvbiAwLjEgQmV0YSByZWxlYXNlLjwvbGk+DQogIDxsaT5WZXJzaW9uIDAuMiBsb3RzIG9mIGNoYW5nZXMgdG8gZml4IGJ1Zy4uLjwvbGk+DQogICA8bGk+VmVyc2lvbiAwLjMgc2V0IHRoZSBzbWFydHkgdG8gdXNlIHt7IH19PC9saT4NCiAgICA8bGk+VmVyc2lvbiAwLjQgZml4ZWQgYnVnLi4gaW1wcm92ZWQgdGhlIG1pbmlhZmNhdGlvbiB0byBhIHNhdmVzIG9mIHVwIHRvIDYwJTwvbGk+DQoJPGxpPlZlcnNpb24gMC43LjEgbWFueSBjaGFuZ2VzLi4uIDxzdHJvbmc+QlJFQUtTIFVQR1JBREU8L3N0cm9uZz4gQ29weSBzY3JpcHRzLCBpbnN0YWxsIGFuZCB0aGUgdXBsb2FkIGFuZCByZWluc3RhbGwuLi4gU29ycnkgYnV0IGl0IHdhcyBuZWVkZWQgZm9yIFZFUlNJT04gSElTVE9SWSBmaXhlZCBidWdzLi4gbWFueSBpbXByb3ZlbWVudHM8L2xpPg0KPC91bD4nOwokbGFuZ1snaGVscCddID0gJzxsaW5rIG1lZGlhPSZxdW90O3NjcmVlbiZxdW90OyBocmVmPSZxdW90Oy4uL21vZHVsZXMvU2NyaXB0RGVwbG95L0NTUy9NYXN0ZXJDU1MuY3NzJnF1b3Q7IHR5cGU9JnF1b3Q7dGV4dC9jc3MmcXVvdDsgcmVsPSZxdW90O3N0eWxlc2hlZXQmcXVvdDsvPjxkaXYgY2xhc3M9JnF1b3Q7U2ltV3JhcCZxdW90Oz48YiBjbGFzcz0mcXVvdDtyYm90dG9tJnF1b3Q7PjxiIGNsYXNzPSZxdW90O3IxJnF1b3Q7PjwvYj4gPGIgY2xhc3M9JnF1b3Q7cjImcXVvdDs+PC9iPjxiIGNsYXNzPSZxdW90O3IzJnF1b3Q7PjwvYj4gPGIgY2xhc3M9JnF1b3Q7cjQmcXVvdDs+PC9iPjwvYj4NCg0KPGRpdiBjbGFzcz0mcXVvdDtTaW1jb24mcXVvdDs+IDxoMyBjbGFzcz0mcXVvdDtCYWNrTGluayZxdW90Oz48YSBvbmNsaWNrPSJqYXZhc2NyaXB0OndpbmRvdy5oaXN0b3J5LmdvKC0xKSIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPjw8IEJhY2s8L2E+PC9oMz4NCjxoMT5XaGF0IERvZXMgVGhpcyBEbz8tLS0gdGhpcyBuZWVkcyB1cGRhdGluZzwvaDE+DQo8aDI+V3JpdGUgbWFuYWdlIGFuZCBkZXBsb3kgSlMgYW5kIENTUzwvaDI+DQo8YSBpZD0iU2NyaXB0RGVwbG95Ij48L2E+DQo8cD5TY3JpcHREZXBsb3kgbW9kdWxlIHRoYXQgY2FuIGNvbWJpbmUgbXVsdGlwbGUgQ1NTIG9yIEphdmFzY3JpcHQgZmlsZXMsIGNvbXByZXNzIHRoZWlyIGNvbnRlbnRzIChpLmUuIHJlbW92YWwgb2YgdW5uZWNlc3Nhcnkgd2hpdGVzcGFjZS9jb21tZW50cyksIGFuZCBzZXJ2ZSB0aGUgcmVzdWx0cyB3aXRoIEhUVFAgZW5jb2RpbmcgKGd6aXAvZGVmbGF0ZSkgYW5kIGhlYWRlcnMgdGhhdCBhbGxvdyBvcHRpbWFsIGNsaWVudC1zaWRlIGNhY2hpbmcuIFRoaXMgaGVscHMgeW91IGZvbGxvdyBzZXZlcmFsIG9mIFlhaG9vISYjMDM5O3MgPGEgaHJlZj0iaHR0cDovL2RldmVsb3Blci55YWhvby5jb20vcGVyZm9ybWFuY2UvaW5kZXguaHRtbCNydWxlcyIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPlJ1bGVzIGZvciBIaWdoIFBlcmZvcm1hbmNlIFdlYiBTaXRlczwvYT4uIChTZWUgJnF1b3Q7UHJvYmxlbSBEb21haW4mcXVvdDsgYmVsb3cgZm9yIG1vcmUgaW5mby4pIDwvcD4NCjxoMz5UaGUgU2hvcnQgb2YgaXQ8L2gzPg0KPHA+V2lydGUgeW91ciBzY3JpcHRzLCBzZXQgdGhlIG9yZGVyIGFuZCBTY3JpcHREZXBsb3kgd2lsbCBkbyB0aGUgcmVzdCE8L3A+DQo8dGFibGU+DQogIDx0Ym9keT4NCiAgICA8dHI+DQogICAgICA8dGQgc3R5bGU9JnF1b3Q7Qk9SREVSLVJJR0hUOiAjYWFhIDFweCBzb2xpZDsgUEFERElORy1SSUdIVDogNXB4OyBCT1JERVItVE9QOiAjYWFhIDFweCBzb2xpZDsgUEFERElORy1MRUZUOiA1cHg7IFBBRERJTkctQk9UVE9NOiA1cHg7IEJPUkRFUi1MRUZUOiAjYWFhIDFweCBzb2xpZDsgUEFERElORy1UT1A6IDVweDsgQk9SREVSLUJPVFRPTTogI2FhYSAxcHggc29saWQmcXVvdDs+PHN0cm9uZz5CZWZvcmU8L3N0cm9uZz48L3RkPg0KICAgICAgPHRkIHN0eWxlPSZxdW90O0JPUkRFUi1SSUdIVDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctUklHSFQ6IDVweDsgQk9SREVSLVRPUDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctTEVGVDogNXB4OyBQQURESU5HLUJPVFRPTTogNXB4OyBCT1JERVItTEVGVDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctVE9QOiA1cHg7IEJPUkRFUi1CT1RUT006ICNhYWEgMXB4IHNvbGlkJnF1b3Q7PjxpbWcgc3JjPSZxdW90O2h0dHA6Ly9tcmNsYXkub3JnL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDA4LzA5L2ZpZGRsZXJfYmVmb3JlLnBuZyZxdW90OyBhbHQ9JnF1b3Q7YWZ0ZXImcXVvdDsgLz48L3RkPg0KICAgIDwvdHI+DQogICAgPHRyPg0KICAgICAgPHRkIHN0eWxlPSZxdW90O0JPUkRFUi1SSUdIVDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctUklHSFQ6IDVweDsgQk9SREVSLVRPUDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctTEVGVDogNXB4OyBQQURESU5HLUJPVFRPTTogNXB4OyBCT1JERVItTEVGVDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctVE9QOiA1cHg7IEJPUkRFUi1CT1RUT006ICNhYWEgMXB4IHNvbGlkJnF1b3Q7PjxzdHJvbmc+QWZ0ZXI8L3N0cm9uZz48L3RkPg0KICAgICAgPHRkIHN0eWxlPSZxdW90O0JPUkRFUi1SSUdIVDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctUklHSFQ6IDVweDsgQk9SREVSLVRPUDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctTEVGVDogNXB4OyBQQURESU5HLUJPVFRPTTogNXB4OyBCT1JERVItTEVGVDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctVE9QOiA1cHg7IEJPUkRFUi1CT1RUT006ICNhYWEgMXB4IHNvbGlkJnF1b3Q7PjxpbWcgc3JjPSZxdW90O2h0dHA6Ly9tcmNsYXkub3JnL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDA4LzA5L2ZpZGRsZXJfYWZ0ZXIucG5nJnF1b3Q7IGFsdD0mcXVvdDtiZWZvcmUmcXVvdDsgLz48L3RkPg0KICAgIDwvdHI+DQogIDwvdGJvZHk+DQo8L3RhYmxlPg0KDQoNCg0KPGgyPjxhIGlkPSJGZWF0dXJlcyI+PC9hPkZlYXR1cmVzPC9oMj4NCjx1bD4NCiAgPGxpPkNvbWJpbmVzIGFuZCBtaW5pZmllcyBtdWx0aXBsZSBDU1Mgb3IgSmF2YVNjcmlwdCBmaWxlcyBpbnRvIGEgc2luZ2xlICAgZG93bmxvYWQgPC9saT4NCiAgPGxpPlVzZXMgYW4gPGEgaHJlZj0iaHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL21pbmlmeS9zb3VyY2UvYnJvd3NlL3RydW5rL21pbi9saWIvSlNNaW4ucGhwIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+ZW5oYW5jZWQgcG9ydDwvYT4gb2YgRG91Z2xhcyBDcm9ja2ZvcmQmIzAzOTtzIDxhIGhyZWY9Imh0dHA6Ly93d3cuY3JvY2tmb3JkLmNvbS9qYXZhc2NyaXB0L2pzbWluLmh0bWwiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5KU01pbiAgIGxpYnJhcnk8L2E+IGFuZCBjdXN0b20gY2xhc3NlcyB0byBtaW5pZnkgPGEgaHJlZj0iaHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL21pbmlmeS9zb3VyY2UvYnJvd3NlL3RydW5rL21pbi9saWIvTWluaWZ5L0NTUy5waHAiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5DU1M8L2E+IGFuZCA8YSBocmVmPSJodHRwOi8vY29kZS5nb29nbGUuY29tL3AvbWluaWZ5L3NvdXJjZS9icm93c2UvdHJ1bmsvbWluL2xpYi9NaW5pZnkvSFRNTC5waHAiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5IVE1MPC9hPjwvbGk+DQogIDxsaT5DYWNoZXMgc2VydmVyLXNpZGUgdG8gYXZvaWQgZG9pbmcgdW5uZWNlc3Nhcnkgd29yayA8L2xpPg0KICA8bGk+UmVzcG9uZHMgd2l0aCBhbiBIVFRQIDMwNCAoTm90IE1vZGlmaWVkKSByZXNwb25zZSB3aGVuIHRoZSBicm93c2VyIGhhcyBhbiAgIHVwLXRvLWRhdGUgY2FjaGUgY29weSAqKiA8L2xpPg0KICA8bGk+TW9zdCBtb2R1bGVzIGFyZSBsYXp5LWxvYWRlZCBhcyBuZWVkZWQgKDMwNCByZXNwb25zZXMgdXNlIG1pbmltYWwgY29kZSkgICoqIDwvbGk+DQogIDxsaT5BdXRvbWF0aWNhbGx5IHJld3JpdGVzIHJlbGF0aXZlIFVSSXMgaW4gY29tYmluZWQgQ1NTIGZpbGVzIHRvIHBvaW50IHRvIHZhbGlkIGxvY2F0aW9ucyA8L2xpPg0KICA8bGk+V2l0aCBjYWNoaW5nIGVuYWJsZWQsIFNjcmlwdERlcGxveSBpcyBjYXBhYmxlIG9mIGhhbmRsaW5nIGh1bmRyZWRzIG9mIHJlcXVlc3RzIHBlciBzZWNvbmQgb24gYSBtb2RlcmF0ZWx5IHBvd2VyZnVsIHNlcnZlci4gPC9saT4NCiAgPGxpPkNvbnRlbnQtRW5jb2Rpbmc6IGd6aXAsIGJhc2VkIG9uIHJlcXVlc3QgaGVhZGVycy4gQ2FjaGluZyBhbGxvd3MgaXQgc28gc2VydmUgZ3ppcHBlZCBmaWxlcyBmYXN0ZXIgdGhhbiBBcGFjaGUmIzAzOTtzIG1vZF9kZWZsYXRlIG9wdGlvbiEgPC9saT4NCjwvdWw+DQo8aDM+PGVtPjxzdHJvbmc+KiogTm90ZTo8L3N0cm9uZz4gSXQgaXMgYmVzdCB0byB1c2UgYSAuaHRhY2Nlc3Mgc2NyaXB0IHRvIHNldCB0aGUgYWdlIHRpbWVzLiBTY3JpcHREZXBsb3kgaXMgZGVzaWduZWQgZm9yIGVmZmljaWVuY3ksIGJ1dCBmb3IgdmVyeSBoaWdoIHRyYWZmaWMgc2l0ZXMsIFNjcmlwdERlcGxveSBtYXkgc2VydmUgZmlsZXMgc2xvd2VyIHRoYW4geW91ciBIVFRQZCBkdWUgdG8gdGhlIENHSSBvdmVyaGVhZCBvZiBQSFAuICBUbyBvdmVyIGNvbWUgdGhpcyBKdXN0IGNoZWNrICZxdW90O3VzZSAuaHRhY2Nlc3MgaW4gb3B0aW9ucyZxdW90OzwvZW0+PC9oMz4NCjxoMj48YSBuYW1lPSJSZXF1aXJlbWVudHMiPjwvYT5SZXF1aXJlbWVudHM8L2gyPg0KPHVsPg0KICA8bGk+VGhlIGNvbW1vbmx5IGluc3RhbGxlZCA8YSBocmVmPSJodHRwOi8vdXMzLnBocC5uZXQvbWFudWFsL2VuL3psaWIuaW5zdGFsbGF0aW9uLnBocCIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPnpsaWIgICBleHRlbnNpb248L2E+IGlzIHJlY29tbWVuZGVkIGZvciBIVFRQIGVuY29kaW5nIGZ1bmN0aW9uYWxpdHkuIDwvbGk+DQo8L3VsPg0KPGJyLz48YnIvPg0KPGgxPkhvdyBEbyBJIFVzZSBJdDwvaDE+DQoNCg0KPGgzPkdldCBhIHNpbmdsZSBzY3JpcHQ8L2gzPg0KdXNlIDxzcGFuIGNsYXNzPSZxdW90O2NvZGVISUdITElHSFQmcXVvdDs+e2Ntc19tb2R1bGUgbW9kdWxlPVNjcmlwdERlcGxveSBzY3JpcHRJRD0mcXVvdDsxJnF1b3Q7fSA8L3NwYW4+IDxici8+PGJyLz4NCjxoMz5HZXQgYSBzY3JpcHQgZ3JvdXA8L2gzPg0KdXNlIDxzcGFuIGNsYXNzPSZxdW90O2NvZGVISUdITElHSFQmcXVvdDs+e2Ntc19tb2R1bGUgbW9kdWxlPVNjcmlwdERlcGxveSBncm91cElEPSZxdW90OzEmcXVvdDt9IDwvc3Bhbj4gPGJyLz48YnIvPg0KPGgyPkFsbCBvdXRwdXQgaXMgaW4gdGhlIFhIVE1MIGZvcm1hdCwgeW91IHNob3VsZCB3b3JrIGluIHRoYXQuPC9oMj4NCg0KPGJyLz48YnIvPg0KPGg0PlBhcmFtczwvaDQ+DQo8dWw+DQo8bGk+PHN0cm9uZz5zY3JpcHRJRD0mcXVvdDsmcXVvdDsgPC9zdHJvbmc+PGVtPihSZXF1aXJlZC9vcHRpb25hbCk8L2VtPiA8YnIvPnwgc2V0IHRoZSBJRCBSZXF1aXJlZCBvbmx5IGlmIGdyb3VwSUQgbm90IGNhbGxlZDxici8+PC9saT4NCjxsaT48c3Ryb25nPmdyb3VwSUQ9JnF1b3Q7JnF1b3Q7IDwvc3Ryb25nPjxlbT4oUmVxdWlyZWQvb3B0aW9uYWwpPC9lbT4gPGJyLz58IHNldCB0aGUgSUQgUmVxdWlyZWQgb25seSBpZiBzY3JpcHRJRCBub3QgY2FsbGVkPGJyLz48L2xpPg0KPGxpPjxzdHJvbmc+U3R5cGU9JnF1b3Q7JnF1b3Q7IDwvc3Ryb25nPjxlbT4oUmVxdWlyZWQvKSBKUy9DU1M8L2VtPiA8YnIvPnwgc2V0IHRoZSBJRCBSZXF1aXJlZCBvbmx5IGlmIHNjcmlwdElEIG5vdCBjYWxsZWQ8YnIvPjwvbGk+DQoNCjxsaT48c3Ryb25nPlNtYXJ0eU9uPSZxdW90OyZxdW90OyA8L3N0cm9uZz48ZW0+KG9wdGlvbmFsKSB0cnVlL2ZhbHNlIDxzdHJvbmc+RGVmYXVsdDpudWxsPC9zdHJvbmc+PC9lbT4gPGJyLz58IFRoaXMgbGV0cyB5b3Ugb3ZlciByaWRlIHRoZSBnbG9ibGVzPGJyLz48L2xpPg0KPGxpPjxzdHJvbmc+TWluaWZ5PSZxdW90OyZxdW90OyA8L3N0cm9uZz48ZW0+KG9wdGlvbmFsKSB0cnVlL2ZhbHNlIDxzdHJvbmc+RGVmYXVsdDp0cnVlPC9zdHJvbmc+PC9lbT4gPGJyLz58ICBUaGlzIGxldHMgeW91IG92ZXIgcmlkZSB0aGUgZ2xvYmxlczxici8+PC9saT4NCg0KDQoNCg0KDQoNCjxsaT48c3Ryb25nPk1lZGlhVHlwZT0mcXVvdDsmcXVvdDsgPC9zdHJvbmc+PGVtPihvcHRpb25hbCk8L2VtPiA8YnIvPnwgc2V0IE1lZGlhIHR5cGUgZm9yIENTUyBmaWxlcyBoZXJlLi4uIG92ZXJyaWRlcyBkYiBzZXRpbmdzLjxici8+PC9saT4NCjxsaT48c3Ryb25nPmltcG9ydD0mcXVvdDsmcXVvdDsgPC9zdHJvbmc+PGVtPihvcHRpb25hbCkgdHJ1ZS9mYWxzZTwvZW0+IDxici8+fCBzZXQgdGhlIGluY2x1c2lvbiBzdHlsZSBmb3IgQ1NTIGZpbGVzIGhlcmUuLi4gb3ZlcnJpZGVzIGRiIHNldGluZ3MuIEV4OiB0cnVlICBnaXZlcyA8c3R5bGUgdHlwZT1cJnF1b3Q7dGV4dC9jc3NcJnF1b3Q7PkBpbXBvcnQgdXJsKCZxdW90O3VybC9jc3NmaWxlLmNzcyZxdW90Oykgc2NyZWVuOzwvc3R5bGU+PGJyLz48L2xpPg0KDQo8bGk+PHN0cm9uZz5jYWNoZUJ1c3Rlcjwvc3Ryb25nPiA8ZW0+KG9wdGlvbmFsKSA8c3Ryb25nPkRlZmF1bHQ6ZmFsc2U8L3N0cm9uZz48L2VtPjxici8+fCBUaGlzIGlzIHRvIGluc3RhbnRseSB1bmNhY2hlIGFuIHNjcmlwdCBvbiB0aGUgY2xpZW50IHNpZGUgYWZ0ZXIgYSBuZXcgdXBsb2FkZWQgc2NyaXB0IGlzIGNyZWF0ZWQuLi4gaWU6IDEyLmpzPzEyNTUyMjUwMDcgIDxmb250IGNvbG9yPSZxdW90O3JlZCZxdW90Oz48c3Ryb25nPiggdHJ1ZS9mYWxzZSApPC9zdHJvbmc+PC9mb250PjwvbGk+DQo8bGk+PHN0cm9uZz5hc3NpZ249JnF1b3Q7JnF1b3Q7IDwvc3Ryb25nPjxlbT4ob3B0aW9uYWwpPC9lbT4gPGJyLz58IEFzc2lnbiB0aGUgb3V0cHV0IChyZXR1cm4gdGhlIHNtYXJ0eSBhc3NpZ25tZW50KSAgVXNlIGluIGNvbmp1bmN0aW9uIHdpdGggb3V0IHdpdGhvdXQgVVJMPC9saT4NCjxsaT48c3Ryb25nPmZzaXplPSZxdW90OyZxdW90OyA8L3N0cm9uZz48ZW0+KG9wdGlvbmFsKTwvZW0+IDxici8+fCBnZXQgdGhlIHNpemU8L2xpPg0KPGxpPjxzdHJvbmc+cm9vdFVybD0mcXVvdDsmcXVvdDsgPC9zdHJvbmc+PGVtPihvcHRpb25hbCk8L2VtPiA8YnIvPnwgU2NyaXB0RGVwbG95IGNyZWF0ZXMgYSB0ZW1wIGRpcmVjdG9yIGluIHRoZSB1cGxvYWQgZm9sZGVyLiAgSWYgeW91IG1vdmUgdGhlIHBhdGggdG8gdGhlIHVwbGFvZCB0byBhIHN1YmRvbWFpbiB5b3UgbWF5IGd1aWRlIHRoZSBvdXRwdXQgd2l0aCB0aGlzLjwvbGk+DQogICAgICAgIDx1bCBzdHlsZT0mcXVvdDtsaXN0LXN0eWxlLXBvc2l0aW9uOmluc2lkZTsmcXVvdDs+PGxpPjxzdHJvbmc+RXhhcG1sZTo8L3N0cm9uZz4geW91IGNoYW5nZWQgPENPREU+JGNvbmZpZ1smIzAzOTt1cGxvYWRzX3BhdGgmIzAzOTtdID0gJiMwMzk7L3Zhci93d3cvdmhvc3RzL2RvbWFpbi5vcmcvaHR0cGRvY3MvdXBsb2FkcyYjMDM5Ozs8L0NPREU+IDwvbGk+DQogICAgICAgICAgICA8bGk+PHN0cm9uZz50bzwvc3Ryb25nPiA8Q09ERT4kY29uZmlnWyYjMDM5O3VwbG9hZHNfcGF0aCYjMDM5O10gPSBcL3Zhci93d3cvdmhvc3RzL2RvbWFpbi5vcmcvc3ViZG9tYWlucy9tZWRpYS9odHRwZG9jcy91cGxvYWRzJiMwMzk7OzwvQ09ERT48L2xpPg0KICAgICAgICAgICAgPGxpPm5vdyB0aGUgdXBsb2FkcyB1cmwgd291bGQgbm90IHdvcmsgYXMgaXQgd291bGQgYmUgPHU+aHR0cDovL3d3dy5kb21haW4ub3JnL3VwbG9hZHM8L3U+PC9saT4NCiAgICAgICAgICAgIDxsaT48c3Ryb25nPlNvPC9zdHJvbmc+IGl0IGNhbiBiZSBjaGFuZ2VkIGhlcmUgdG8gPHU+aHR0cDovL21lZGlhLmRvbWFpbi5vcmcvdXBsb2FkczwvdT4gIDxmb250IGNvbG9yPSZxdW90O3JlZCZxdW90Oz48c3Ryb25nPihOT1RFOiB3YXRjaCB5b3VyIC8gKTwvc3Ryb25nPjwvZm9udD48L2xpPg0KICAgICAgICA8L3VsPg0KPGxpPjxzdHJvbmc+VVJMPSZxdW90OyZxdW90OyA8L3N0cm9uZz48ZW0+KG9wdGlvbmFsKTwvZW0+IDxici8+fG91dHB1dHMgdGhlIHVybC48L2xpPg0KDQoNCg0KDQoJCQ0KDQoNCg0KDQoNCg0KDQoNCjwhLS08bGk+PHN0cm9uZz5TYW5kQm94PXRydWUgPC9zdHJvbmc+PGVtPihvcHRpb25hbCk8L2VtPiA8YnIvPnwgZmFsc2U8YnIvPjwvbGk+DQoNCjxsaT48c3Ryb25nPlJVTmFjdGlvbj0mYW1wO2FtcDthbXA7YW1wO2FtcDthbXA7YW1wO2FtcDthbXA7YW1wO3F1b3Q7JmFtcDthbXA7YW1wO2FtcDthbXA7YW1wO2FtcDthbXA7YW1wO2FtcDtxdW90OyA8L3N0cm9uZz48ZW0+KG9wdGlvbmFsKTwvZW0+IDxici8+fCBVRFQ8YnIvPnwgVVJMIDxlbT4oLi4vcGx1Z2lucy9mdW5jdGlvbi5maWxlbmFtZS5waHApPC9lbT48YnIvPnwgKk1vcmUgY29taW5nIFNvb24qPGJyLz48L2xpPg0KPGxpPjxzdHJvbmc+TGFuZz0mYW1wO2FtcDthbXA7YW1wO2FtcDthbXA7YW1wO2FtcDthbXA7YW1wO3F1b3Q7JmFtcDthbXA7YW1wO2FtcDthbXA7YW1wO2FtcDthbXA7YW1wO2FtcDtxdW90OyA8L3N0cm9uZz48ZW0+KG9wdGlvbmFsKTwvZW0+IDxici8+fCBVc2UgQ291bnRyeSBDb2RlcyBUbyBkeW5hbWljbHkgc2V0IHRoZSBsYW5ndWFnZSBvZiB0aGUgUGF5UGFsIHBhZ2U8YnIvPjwvbGk+LS0+DQoNCjwvdWw+DQo8YnIvPg0KDQo8YnIvPjxici8+DQo8aDI+PGEgaWQ9IlByb2JsZW1fRG9tYWluIj48L2E+UHJvYmxlbSBEb21haW48L2gyPg0KPHA+UGFnZXMgdGhhdCByZWZlciB0byBtdWx0aXBsZSBDU1Mgb3IgSmF2YVNjcmlwdCBmaWxlcyBvZnRlbiBzdWZmZXIgZnJvbSBzbG93ZXIgICBwYWdlIGxvYWRzLCBkdWUgdG8gdGhlIGJyb3dzZXIgcmVxdWVzdGluZyBlYWNoIGZpbGUgaW5kaXZpZHVhbGx5LiBNYW55IGJyb3dzZXJzICAgYWxzbyBhcmUgbGltaXRlZCB0byBhIGZldyBzaW11bHRhbmVvdXMgcmVxdWVzdHMgcGVyIGRvbWFpbi4gVGhlIHdhaXQgZm9yIGEgICBzZXJpZXMgb2YgcmVxdWVzdHMgYW5kIHRoZSB0cmFuc2ZlciBvZiB1bm9wdGltaXplZCBmaWxlcyBjYW4gZHJhbWF0aWNhbGx5IHJlZHVjZSAgIHRoZSBjbGllbnQtc2lkZSBwZXJmb3JtYW5jZSBvZiB5b3VyIHNpdGUuIDwvcD4NCjxwPkhlcmUgYXJlIGEgaGFuZGZ1bCBvZiBZYWhvbyEmIzAzOTtzIGJlc3QgcHJhY3RpY2VzIHRoYXQgYXJlIGFkZHJlc3NlZCBieSB0aGUgdXNlIG9mIFNjcmlwdERlcGxveS4gPC9wPg0KPHVsPg0KICA8bGk+PGEgaHJlZj0iaHR0cDovL2RldmVsb3Blci55YWhvby5jb20vcGVyZm9ybWFuY2UvcnVsZXMuaHRtbCNudW1faHR0cCIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPk1ha2UgRmV3ZXIgSFRUUCBSZXF1ZXN0czwvYT48L2xpPg0KICA8bGk+PGEgaHJlZj0iaHR0cDovL2RldmVsb3Blci55YWhvby5jb20vcGVyZm9ybWFuY2UvcnVsZXMuaHRtbCNleHBpcmVzIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+QWRkIGFuIEV4cGlyZXMgb3IgYSBDYWNoZS1Db250cm9sIEhlYWRlcjwvYT48L2xpPg0KICA8bGk+PGEgaHJlZj0iaHR0cDovL2RldmVsb3Blci55YWhvby5jb20vcGVyZm9ybWFuY2UvcnVsZXMuaHRtbCNnemlwIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+R3ppcCBDb21wb25lbnRzPC9hPjwvbGk+DQogIDxsaT48YSBocmVmPSJodHRwOi8vZGV2ZWxvcGVyLnlhaG9vLmNvbS9wZXJmb3JtYW5jZS9ydWxlcy5odG1sI21pbmlmeSIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPk1pbmlmeSBKYXZhU2NyaXB0IGFuZCBDU1M8L2E+PC9saT4NCiAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9kZXZlbG9wZXIueWFob28uY29tL3BlcmZvcm1hbmNlL3J1bGVzLmh0bWwjZXRhZ3MiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5Db25maWd1cmUgRVRhZ3M8L2E+PC9saT4NCiAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9kZXZlbG9wZXIueWFob28uY29tL3BlcmZvcm1hbmNlL3J1bGVzLmh0bWwjdW5kZXIyNSIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPktlZXAgQ29tcG9uZW50cyB1bmRlciAyNUs8L2E+PC9saT4NCjwvdWw+DQo8aDM+PGEgbmFtZT0iQWNrbm93bGVkZ21lbnRzIj48L2E+QWNrbm93bGVkZ21lbnRzPC9oMz4NCjxwPk1pbmlmeSB3YXMgaW5zcGlyZWQgYnkgPGEgaHJlZj0iaHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL2pzY3NzY29tcC8iIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5qc2Nzc2NvbXA8L2E+IGJ5IE1heGltIE1hcnR5bnl1ayBhbmQgYnkgdGhlIGFydGljbGUgJiMwMzk7PGEgaHJlZj0iaHR0cDovL3d3dy5odW5sb2NrLmNvbS9ibG9ncy9TdXBlcmNoYXJnZWRfSmF2YXNjcmlwdCIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPlN1cGVyY2hhcmdlZCBKYXZhU2NyaXB0PC9hPiYjMDM5OyBieSBQYXRyaWNrIEh1bmxvY2suIDwvcD4NCjxwPlRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmNyb2NrZm9yZC5jb20vamF2YXNjcmlwdC9qc21pbi5odG1sIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+SlNNaW4gbGlicmFyeTwvYT4gdXNlZCBmb3IgSmF2YVNjcmlwdCBtaW5pZmljYXRpb24gd2FzIG9yaWdpbmFsbHkgICB3cml0dGVuIGJ5IERvdWdsYXMgQ3JvY2tmb3JkIGFuZCB3YXMgPGEgaHJlZj0iaHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL2pzbWluLXBocCIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPnBvcnRlZCB0byBQSFA8L2E+IGJ5IFJ5YW4gICBHcm92ZSBzcGVjaWZpY2FsbHkgZm9yIHVzZSBpbiBNaW5pZnkuIDwvcD4NCg0KDQo8aDM+U3VwcG9ydDwvaDM+DQo8aDQ+U2NyZWVuY2FzdHMgZm9yIGV4dHJhIGhlbHAgd2lsbCBmYWxsb3ctLS0gb24gdGhlIFRPRE88L2g0Pg0KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPg0KPHVsPg0KPGxpPkZvciB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBtb2R1bGUgb3IgdG8gZmlsZSBhIGJ1ZyByZXBvcnQgdmlzaXQgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9wcGJtIj50aGUgQ01TIEZvcmdlPC9hPi48L2xpPg0KPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnIj5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi48L2xpPg0KPC91bD4NCg0KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+DQo8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMDksIGplcmVteUJhc3MgPDxhIGhyZWY9Imh0dHA6Ly9jb3JiZW5zcHJvZHVjdHMuY29tIj5jb3JiZW5zcHJvZHVjdHMuY29tPC9hPj4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPg0KPHN0cm9uZz5TdXBwb3J0IG1vcmUgbW9kcyBsaWtlIHRoaXM6PC9zdHJvbmc+PGZvcm0gYWN0aW9uPSZxdW90O2h0dHBzOi8vd3d3LnBheXBhbC5jb20vY2dpLWJpbi93ZWJzY3ImcXVvdDsgbWV0aG9kPSZxdW90O3Bvc3QmcXVvdDs+DQo8aW5wdXQgdHlwZT0mcXVvdDtoaWRkZW4mcXVvdDsgbmFtZT0mcXVvdDtjbWQmcXVvdDsgdmFsdWU9JnF1b3Q7X3MteGNsaWNrJnF1b3Q7Pg0KPGlucHV0IHR5cGU9JnF1b3Q7aGlkZGVuJnF1b3Q7IG5hbWU9JnF1b3Q7aG9zdGVkX2J1dHRvbl9pZCZxdW90OyB2YWx1ZT0mcXVvdDs4ODE3Njc1JnF1b3Q7Pg0KPGlucHV0IHR5cGU9JnF1b3Q7aW1hZ2UmcXVvdDsgc3JjPSZxdW90O2h0dHBzOi8vd3d3LnBheXBhbC5jb20vZW5fVVMvaS9idG4vYnRuX2RvbmF0ZV9MRy5naWYmcXVvdDsgYm9yZGVyPSZxdW90OzAmcXVvdDsgbmFtZT0mcXVvdDtzdWJtaXQmcXVvdDsgYWx0PSZxdW90O1BheVBhbCAtIFRoZSBzYWZlciwgZWFzaWVyIHdheSB0byBwYXkgb25saW5lISZxdW90Oz4NCjxpbWcgYWx0PSZxdW90OyZxdW90OyBib3JkZXI9JnF1b3Q7MCZxdW90OyBzcmM9JnF1b3Q7aHR0cHM6Ly93d3cucGF5cGFsLmNvbS9lbl9VUy9pL3Njci9waXhlbC5naWYmcXVvdDsgd2lkdGg9JnF1b3Q7MSZxdW90OyBoZWlnaHQ9JnF1b3Q7MSZxdW90Oz4NCjwvZm9ybT48YnIvPg0KPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCI+R05VIFB1YmxpYyBMaWNlbnNlPC9hPi4gWW91IG11c3QgYWdyZWUgdG8gdGhpcyBsaWNlbnNlIGJlZm9yZSB1c2luZyB0aGUgbW9kdWxlLjwvcD4NCjwvZGl2ID48YiBjbGFzcz0mcXVvdDtyYm90dG9tJnF1b3Q7PjxiIGNsYXNzPSZxdW90O3I0JnF1b3Q7PjwvYj48YiBjbGFzcz0mcXVvdDtyMyZxdW90Oz48L2I+IDxiIGNsYXNzPSZxdW90O3IyJnF1b3Q7PjwvYj4gPGIgY2xhc3M9JnF1b3Q7cjEmcXVvdDs+PC9iPjwvYj4NCg0KPC9kaXY+DQonOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My4xNDQ4MjM4MTEuMTI1MTM3NTQzOS4xMjc0MjgyODY0LjEyNzQyOTU2ODYuMjMwJzsKJGxhbmdbJ3V0bXonXSA9ICcxNTY4NjEzNTMuMTI3NDEwMjgyOS4yMjMuMjgudXRtY2NuPShvcmdhbmljKXx1dG1jc3I9Z29vZ2xlfHV0bWN0cj1jbXNtcyBsb2dnZWQgaW4gdXNlcmlkfHV0bWNtZD1vcmdhbmljJzsKJGxhbmdbJ3FjYSddID0gJ1AwLTEzNzk4OTMxMDUtMTI1MjA2Nzc3OTY5NCc7CiRsYW5nWyd1dG1jJ10gPSAnMTU2ODYxMzUzJzsKJGxhbmdbJ3V0bWInXSA9ICcxNTY4NjEzNTMuMS4xMC4xMjc0Mjk1Njg2JzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/fr_FR.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ1NjcmlwdCBEZXBsb3knOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdMYSBwcmVtaSZlZ3JhdmU7cmUgJmVhY3V0ZTt0YXBlICZhZ3JhdmU7IGZhaXJlIGVzdCBsJiMwMzk7YWlkZSc7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnTiYjMDM5O2gmZWFjdXRlO3NpdGV6IHBhcyAmYWdyYXZlOyBub3VzIGRpcmUgc2kgdm91cyB0cm91dmVyIHVuIG1veWVuIGQmIzAzOTthbSZlYWN1dGU7bGlvcmVyIFNjcmlwdERlcGxveSwgPGEgaHJlZj0iaHR0cDovL2hlbHAuY29yYmVuc3Byb2R1Y3RzLmNvbS9tYWtlLWNvbnRhY3QuaHRtbCI+Q29udGFjdGV6LW5vdXMsIG5vdXMgc29tbWVzIGhldXJldXggZCYjMDM5O2F2b2lyIGRlIHZvcyBub3V2ZWxsZXMuPC9hPic7CiRsYW5nWydyZWFsbHlfdW5pbnN0YWxsJ10gPSAnTGEgZCZlYWN1dGU7c2luc3RhbGxhdGlvbiBkZSBjZSBtb2R1bGUgbmUgcG9ydGVyYSBwYXMgYXR0ZWludGUgYXV4IGRvbm4mZWFjdXRlO2VzIGV0IGF1eCAmZWFjdXRlO3YmZWFjdXRlO25lbWVudHMuIFZvdWxlei12b3VzIGNvbnRpbnVlciA/JzsKJGxhbmdbJ3VuaW5zdGFsbGVkJ10gPSAnTGUgbW9kdWxlIGEgJmVhY3V0ZTt0JmVhY3V0ZTsgZCZlYWN1dGU7c2luc3RhbGwmZWFjdXRlOy4nOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnTGUgbW9kdWxlICB2ZXJzaW9uICVzIGEgJmVhY3V0ZTt0JmVhY3V0ZTsgaW5zdGFsbCZlYWN1dGU7Lic7CiRsYW5nWyd1cGdyYWRlZCddID0gJ0xlIG1vZHVsZSBhICZlYWN1dGU7dCZlYWN1dGU7IG1pcyAmYWdyYXZlOyBqb3VyICZhZ3JhdmU7IGxhIHZlcnNpb24gJXMuJzsKJGxhbmdbJ0FDVG9wdGlvbnMnXSA9ICdPcHRpb25zIGRlIGQmZWFjdXRlO3Bsb2llbWVudCc7CiRsYW5nWydtYW51YWxhc3NpZ25tZW50J10gPSAnUmVncm91cGVtZW50IGRlIHNjcmlwdCAnOwokbGFuZ1snSFRNTHNldHRpbmdzJ10gPSAnRCZlYWN1dGU7cGxvaWVtZW50IEhUTUwgJzsKJGxhbmdbJ1ZhbHNldHRpbmdzJ10gPSAnUGFyYW0mZWdyYXZlO3RyZXMgZGUgdmFsaWRhdGlvbic7CiRsYW5nWydlbiddID0gJ0FuZ2xhaXMnOwokbGFuZ1snZnInXSA9ICdGcmFuJmNjZWRpbDthaXMmbmJzcDsoRnJlbmNoKSc7CiRsYW5nWydpdCddID0gJ0l0YWxpZW4gKEl0YWxpYW4pJzsKJGxhbmdbJ2tvJ10gPSAnQ29yJmVhY3V0ZTtlbic7CiRsYW5nWydqYSddID0gJ0phcG9uYWlzJzsKJGxhbmdbJ2VzJ10gPSAnRXNwYWdub2wgKFNwYW5pc2gpJzsKJGxhbmdbJ3poLWNuJ10gPSAnQ2hpbm9pcyc7CiRsYW5nWydubCddID0gJ0hvbGxhbmRhaXMgKER1dGNoKSc7CiRsYW5nWydkZSddID0gJ0FsbGVtYW5kIChHZXJtYW4pJzsKJGxhbmdbJ3BsJ10gPSAnUG9sb25haXMgKFBvbGlzaCknOwokbGFuZ1snTG5vbmUnXSA9ICdBdWN1biBhdmVydGlzc2VtZW50JzsKJGxhbmdbJ0wwJ10gPSAnTml2ZWF1IDAnOwokbGFuZ1snTDEnXSA9ICdOaXZlYXUgMSc7CiRsYW5nWydMMiddID0gJ05pdmVhdSAyJzsKJGxhbmdbJ2NzczEnXSA9ICdDU1MgMSc7CiRsYW5nWydjc3MyJ10gPSAnQ1NTIDInOwokbGFuZ1snY3NzMjEnXSA9ICdDU1MgMi4xJzsKJGxhbmdbJ2NzczMnXSA9ICdDU1MgMyc7CiRsYW5nWydzdmcnXSA9ICdTVkcnOwokbGFuZ1snc3ZnYmFzaWMnXSA9ICdTVkcgYmFzaWMnOwokbGFuZ1snc3ZndGlueSddID0gJ1NWRyB0aW55JzsKJGxhbmdbJ21vYmlsZSddID0gJ21vYmlsZSc7CiRsYW5nWydhdHNjLXR2J10gPSAnYXRzYy10dic7CiRsYW5nWyd0diddID0gJ0EgbCYjMDM5O2F0dGVudGlvbiBkZXMgYXBwYXJlaWxzIGRlIHR5cGUgdCZlYWN1dGU7bCZlYWN1dGU7dmlzaW9uLic7CiRsYW5nWydub25lJ10gPSAnYXVjdW4nOwokbGFuZ1snc2F2ZVZBTHNldHRpbmdzJ10gPSAnRW5yZWdpc3RyZXIgbGVzIHBhcmFtJmVncmF2ZTt0cmVzIGRlIHZhbGlkYXRpb24nOwokbGFuZ1snc2V0dGluZ3MnXSA9ICdQYXJhbSZlZ3JhdmU7dHJlcyc7CiRsYW5nWydzZXR0aW5nc3NhdmVkJ10gPSAnUGFyYW0mZWdyYXZlO3RyZXMgc2F1dmVnYXJkJmVhY3V0ZTtzJzsKJGxhbmdbJ2xlYXZlY29kZSddID0gJ05lIHRvdWNoZXogcGFzIGF1IGNvZGUnOwokbGFuZ1snZm9ybWF0Y29kZSddID0gJ0Zvcm1hdHRleiBiaWVuIGxlIGNvZGUnOwokbGFuZ1snc2NyYW1ibGVjb2RlJ10gPSAnU2NyYW1ibGUgdGhlIGNvZGUnOwokbGFuZ1snY2xlYW5jb2RlJ10gPSAnTmV0dG95ZXIgbGUgY29kZSBlbiBzdXBwcmltYW50IGNlIHF1aSBuJiMwMzk7aW1wb3J0ZSBwYXMnOwokbGFuZ1snc2F2ZXNldHRpbmdzJ10gPSAnU2F1dmVnYXJkZXIgbGVzIHBhcmFtJmVncmF2ZTt0cmVzICc7CiRsYW5nWydtYW5nbGV0eXBldGV4dCddID0gJ0NvbW1lbnQgZmFpcmUgcG91ciBmb3JtYXRlciBsZSBjb2RlJzsKJGxhbmdbJ2JyaWVmJ10gPSAnQnJpZWYnOwokbGFuZ1sndmVyYm9zZSddID0gJ1ZlcmJvc2UnOwokbGFuZ1snY29kZWZpeGVzJ10gPSAnQ29kZSBmaXhlcyc7CiRsYW5nWydmb3JjZWxvd2VydGFnc3RleHQnXSA9ICdGb3JjZXIgbGVzIGJhbGlzZXMgZW4gbWludXNjdWxlcyc7CiRsYW5nWydmb3JjZWxvd2VydGFnc2hlbHAnXSA9ICdQb3VyIHVuZSBtZWlsbGV1cmUgY29tcGF0aWJpbGl0JmVhY3V0ZTsgWEhUTUwnOwokbGFuZ1snaGlkZW1lc3NhZ2VzdGV4dCddID0gJ0NhY2hlciBsZXMgbWVzc2FnZXMgQ29kZU1hbmdsZXIgZW4gYmFzIGR1IGNvZGUgKHgpaHRtbCc7CiRsYW5nWydpbmRlbnR3aWR0aHRleHQnXSA9ICdMYXJnZXVyIGRlIGwmIzAzOTtpbmRlbnRhdGlvbic7CiRsYW5nWydzcGFjZXMnXSA9ICdFc3BhY2VzJzsKJGxhbmdbJ2RlYnVnbGV2ZWx0ZXh0J10gPSAnQW1vdW50IG9mIGRlYnVnZ2luZyBvdXRwdXQ6ICc7CiRsYW5nWydkZWJ1Z3RleHQnXSA9ICdDb2RlIGRlYnVnIG1vZGUnOwokbGFuZ1snU2NyaXB0X2xpc3QnXSA9ICdTY3JpcHRzJzsKJGxhbmdbJ0Fzc19oZWFkZXInXSA9ICdVbmlmaWVkIFNjcmlwdHMnOwokbGFuZ1snU2FtcGxlVGFnJ10gPSAnRXhlbXBsZSBkZSBiYWxpc2UnOwokbGFuZ1sncHJvbXB0X25ld1NjcmlwdCddID0gJ0Fqb3V0ZXIgdW5lIG5vdXZlYXUgc2NyaXB0JzsKJGxhbmdbJ3Byb21wdF9uZXdTY3JpcHRBc3MnXSA9ICdBZGQgTmV3IFNjcmlwdCBBc3NpZ25tZW50JzsKJGxhbmdbJ3RpdGxlX0dyb3VwcyddID0gJ1NjcmlwdCBHcm91cHMgTGlzdCc7CiRsYW5nWyd0aXRsZV9TY3JpcHRzJ10gPSAnU2luZ2xlIFNjcmlwdHMgTGlzdCc7CiRsYW5nWydhcmV5b3VzdXJlJ10gPSAnSW1wb3J0YW50OlxuXG5JZiB0aGlzIGlzIGRlbGV0ZWQgYWxsIGluZm9ybWF0aW9uIHdpbGwgYmUgbG9zdCFcblxuSWYgeW91IGhhdmUgdGhpcyBzY3JpcHQgaW4gYSBncm91cCB5b3Ugd2lsbCBicmVhayB0aGUgdGllIGFuZCB3aWxsIG5lZWQgdG8gZWRpdCB0aGUgZ3JvdXAuXG5JdCBpcyBiZXN0IHRvIHN0YXJ0IHRoZSBkZWxldGlvbiBwcm9jZXNzIGZyb20gdGhlIEFzc2lnbm1lbnQgYXJlYS4nOwokbGFuZ1snc21hcnR5SG93J10gPSAnVGhlIHNtYXJ0eSB3b3JrcyBsaWtlIHRoaXMuLi4gV2hlcmUgeW91JiMwMzk7ZCBoYXZlIHskc21hcnR5Lm5vd30geW91IGRvIHt7JHNtYXJ0eS5ub3d9fSAgLiAgTm93IHlvdSBjYW4gZG8gc21hcnR5IHN0dWZmJzsKJGxhbmdbJ2FsbCddID0gJ0NvbXBhdGlibGUgcG91ciB0b3VzIGxlcyBhcHBhcmVpbHMuJzsKJGxhbmdbJ2F1cmFsJ10gPSAnQSBsJiMwMzk7YXR0ZW50aW9uIGRlcyBzeW50aCZlYWN1dGU7dGlzZXVycyBkZSB2b2l4Lic7CiRsYW5nWydicmFpbGxlJ10gPSAnQSBsJiMwMzk7YXR0ZW50aW9uIGRlcyBhcHBhcmVpbHMgdGFjdGlsZXMgZW4gYnJhaWxsZS4nOwokbGFuZ1snZW1ib3NzZWQnXSA9ICdBIGwmIzAzOTthdHRlbnRpb24gZGVzIGltcHJpbWFudGVzIGJyYWlsbGUuJzsKJGxhbmdbJ2hhbmRoZWxkJ10gPSAnQSBsJiMwMzk7YXR0ZW50aW9uIGRlcyBhcHBhcmVpbHMgZGUgcG9jaGUgKFBEQSknOwokbGFuZ1sncHJpbnQnXSA9ICdBIGwmIzAzOTthdHRlbnRpb24gZGUgZG9jdW1lbnRzIGltcHJpbSZlYWN1dGU7cyBzdXIgZHUgbWF0JmVhY3V0ZTtyaWVsIG9wYXF1ZSwgZXQgcG91ciBsZXMgZG9jdW1lbnRzIHZpc3VhbGlzJmVhY3V0ZTtzICZhZ3JhdmU7IGwmIzAzOTsmZWFjdXRlO2NyYW4gZW4gcHImZWFjdXRlO3Zpc3VhbGlzYXRpb24gZCYjMDM5O2ltcHJlc3Npb24nOwokbGFuZ1sncHJvamVjdGlvbiddID0gJ0EgbCYjMDM5O2F0dGVudGlvbiBkZXMgcHImZWFjdXRlO3NlbnRhdGlvbnMgcHJvamV0JmVhY3V0ZTtlcywgcGFyIGV4ZW1wbGUgcHJvamVjdGV1cnMgb3UgaW1wcmVzc2lvbnMgc3VyIHRyYW5zcGFyZW50cyc7CiRsYW5nWydzY3JlZW4nXSA9ICdBIGwmIzAzOTthdHRlbnRpb24gcHJpbmNpcGFsZW1lbnQgZGVzICZlYWN1dGU7Y3JhbnMgZCYjMDM5O29yZGluYXRldXJzJzsKJGxhbmdbJ3R0eSddID0gJ0EgbCYjMDM5O2F0dGVudGlvbiBkZXMgbSZlYWN1dGU7ZGlhIHV0aWxpc2FudCBkZXMgY2FyYWN0JmVncmF2ZTtyZXMgZml4ZXMsIHRlbHMgcXVlIHQmZWFjdXRlO2wmZWFjdXRlO3R5cGVzIGV0IHRlcm1pbmF1eC4nOwokbGFuZ1snTWVkaWFUeXBlJ10gPSAnVG91cyA6IGNvbXBhdGlibGUgcG91ciB0b3VzIGxlcyBhcHBhcmVpbHMuPGJyLz4NCmF1cmFsIDogJmFncmF2ZTsgbCYjMDM5O2F0dGVudGlvbiBkZXMgc3ludGgmZWFjdXRlO3Rpc2V1cnMgZGUgdm9peC48YnIvPg0KYnJhaWxsZSA6ICZhZ3JhdmU7IGwmIzAzOTthdHRlbnRpb24gZGVzIGFwcGFyZWlscyB0YWN0aWxlcyBlbiBicmFpbGxlLjxici8+DQplbWJvc3NlZCA6ICAmYWdyYXZlOyBsJiMwMzk7YXR0ZW50aW9uIGRlcyBpbXByaW1hbnRlcyBicmFpbGxlLjxici8+DQpoYW5kaGVsZCA6ICZhZ3JhdmU7IGwmIzAzOTthdHRlbnRpb24gZGVzIGFwcGFyZWlscyBkZSBwb2NoZSAoUERBKS48YnIvPg0KcHJpbnQgOiAmYWdyYXZlOyBsJiMwMzk7YXR0ZW50aW9uIGRlIGRvY3VtZW50cyBpbXByaW0mZWFjdXRlO3Mgc3VyIGR1IG1hdCZlYWN1dGU7cmllbCBvcGFxdWUsIGV0IHBvdXIgbGVzIGRvY3VtZW50cyB2aXN1YWxpcyZlYWN1dGU7cyAmYWdyYXZlOyBsJiMwMzk7JmVhY3V0ZTtjcmFuIGVuIHByJmVhY3V0ZTt2aXN1YWxpc2F0aW9uIGQmIzAzOTtpbXByZXNzaW9uLjxici8+DQpwcm9qZWN0aW9uIDogJmFncmF2ZTsgbCYjMDM5O2F0dGVudGlvbiBkZXMgcHImZWFjdXRlO3NlbnRhdGlvbnMgcHJvamV0JmVhY3V0ZTtlcywgcGFyIGV4ZW1wbGUgcHJvamVjdGV1cnMgb3UgaW1wcmVzc2lvbnMgc3VyIHRyYW5zcGFyZW50czxici8+DQpzY3JlZW4gOiAmYWdyYXZlOyBsJiMwMzk7YXR0ZW50aW9uIHByaW5jaXBhbGVtZW50IGRlcyAmZWFjdXRlO2NyYW5zIGQmIzAzOTtvcmRpbmF0ZXVycy48YnIvPg0KdHR5IDogJmFncmF2ZTsgbCYjMDM5O2F0dGVudGlvbiBkZXMgbSZlYWN1dGU7ZGlhIHV0aWxpc2FudCBkZXMgY2FyYWN0JmVncmF2ZTtyZXMgZml4ZXMsIHRlbHMgcXVlIHQmZWFjdXRlO2wmZWFjdXRlO3R5cGVzIGV0IHRlcm1pbmF1eC48YnIvPg0KdHYgOiAmYWdyYXZlOyBsJiMwMzk7YXR0ZW50aW9uIGRlcyBhcHBhcmVpbHMgZGUgdHlwZSB0JmVhY3V0ZTtsJmVhY3V0ZTt2aXNpb24uJzsKJGxhbmdbJ0NhbmNlbGVkJ10gPSAnWW91IENhbmNlbGVkIG91dCBvZiB0aGUgb3BlcmF0aW9uLiAgQW55IFdvcmsgeW91IG1heSBoYXZlIGVudGVyZWQgaGFzIGJlZW4gbG9zdC4nOwokbGFuZ1snQnRuQURERUQnXSA9ICdZb3UgSnVzdCBBZGRlZCBhIG5ldyBTY3JpcHQnOwokbGFuZ1snQnRuRURJVEVEJ10gPSAnWW91IEp1c3QgRWRpdGVkIGFuIGV4aXN0aW5nIFNjcmlwdCc7CiRsYW5nWydCdG5ERUxFVEVEJ10gPSAnWW91IEp1c3QgRGVsZXRlZCBhbiBleGlzdGluZyBTY3JpcHQnOwokbGFuZ1sndHlwZV9sYWJlbCddID0gJ1R5cGUmbmJzcDsnOwokbGFuZ1sncmV2aXNpb24nXSA9ICdSJmVhY3V0ZTt2aXNpb24nOwokbGFuZ1snaXNFZGl0J10gPSAnaXMgZWRpdGluZyc7CiRsYW5nWydlbXRweUdyb3VwJ10gPSAnWW91JiMwMzk7bGwgbmVlZCB0byBhZGQgYSBzY3JpcHQgdG8gdGhlIGdyb3VwIGJlZm9yZSBjYWxsaW5nIGl0JzsKJGxhbmdbJ1NjcmlwdFNldF9sYWJlbCddID0gJ0lEIGR1IHNjcmlwdCAnOwokbGFuZ1snc2NyaXB0VHlwZV9sYWJlbCddID0gJ1R5cGUgZGUgc2NyaXB0ICc7CiRsYW5nWydTY3JpcHROYW1lX2xhYmVsJ10gPSAnTm9tIGR1IHNjcmlwdCc7CiRsYW5nWydTaW5nbGVDb2RlX2xhYmVsJ10gPSAnQXBwZWwgZHUgc2NyaXB0IHNpbXBsZSBwYXIgZCZlYWN1dGU7ZmF1dCc7CiRsYW5nWydHcm91cHRTaXplX2xhYmVsJ10gPSAnVG90YWwnOwokbGFuZ1snbm90ZXNfbGFiZWwnXSA9ICdOb3Rlcyc7CiRsYW5nWydTaG93VmFsX2xhYmxlJ10gPSAnR2FyZGUgbGVzIG1lc3NhZ2VzIG91dmVydHMnOwokbGFuZ1snVHVybk9OVmFsX2xhYmxlJ10gPSAnTWV0dHJlIGxhIHZhbGlkYXRpb24gc3VyIDxzdHJvbmc+T048L3N0cm9uZz4nOwokbGFuZ1snaG90TGlua0NoZWNrX2xhYmxlJ10gPSAnRG8gSG90TGluayBDaGVjayc7CiRsYW5nWydUcnVuT25ob3RMaW5rQ2hlY2snXSA9ICdZb3UgbmVlZCB0byB0dXJuIG9uIHRoZSBIb3RMaW5rIENoZWNrJzsKJGxhbmdbJ2ZpbHRlclByb3BfbGFibGUnXSA9ICdGaWx0ZXIgb3V0IHByb3BlcnRpZXMgdG8gaGVscCB2YWxpZGF0ZSc7CiRsYW5nWydDU1Nwcm9maWxlX2xhYmxlJ10gPSAnUHJvZmlsIENTUyc7CiRsYW5nWyd1c2VybWVkaXVtX2xhYmxlJ10gPSAnIFVzZXIgTWVkaXVtJzsKJGxhbmdbJ1ZBTExhbmdfbGFibGUnXSA9ICcgTGFuZ2FnZSc7CiRsYW5nWyd3M2NDU1N3YXJuaW5nX2xhYmxlJ10gPSAnIE5pdmVhdSBkJiMwMzk7YXZlcnRpc3NlbWVudCB3M2MgQ1NTJzsKJGxhbmdbJ01lZGlhVHlwZV9sYWJlbCddID0gJ1R5cGUgZGUgbSZlYWN1dGU7ZGlhJzsKJGxhbmdbJ01pbmlmeV9sYWJlbCddID0gJ1ByZSBNaW5pZmllZCc7CiRsYW5nWydDcmVhdGlvbkRhdGVfbGFiZWwnXSA9ICdEYXRlIGRlIGNyJmVhY3V0ZTthdGlvbic7CiRsYW5nWydNb2RpZmVkRGF0ZV9sYWJlbCddID0gJ0RhdGUgZGUgbW9kaWZpY2F0aW9uJzsKJGxhbmdbJ3BhdGhPcHRpb25fbGFiZWwnXSA9ICdVdGlsaXNlIHVuIGNoZW1pbiA8ZW0+KHVzZSAmcXVvdDsvdXBsb2Fkcy8uLi4mcXVvdDspPC9lbT4nOwokbGFuZ1sncm9vdFVSTE9wdGlvbl9sYWJlbCddID0gJ1V0aWxpc2UgdW4gVVJMIHJhY2luZSBzcCZlYWN1dGU7Y2lmaXF1ZSA8ZW0+KHVzZSBzY2hlbWEgJnF1b3Q7aHR0cHM6Ly9zdWIuZG9tYWluLnRsZC8mcXVvdDspPC9lbT4nOwokbGFuZ1snR3Jvb3RVUkwnXSA9ICdHbG9iYWwgU2NyaXB0IFJvb3QgVVJMJzsKJGxhbmdbJ2VtcHR5Y2FjaGVFcnJvcl9kb0FEVUlUJ10gPSAnZmFpbGVkIHRvIGVtcHR5IHRoZSBjYWNoZSBhdCc7CiRsYW5nWydlbXB0aWVkQ2FjaF9kb0FEVUlUJ10gPSAnZW1wdGllZCB0aGUgc2NyaXB0IGNhY2hlJzsKJGxhbmdbJ2NsZWFyZWRSZXZpc2lvbl9kb0FEVUlUJ10gPSAnY2xlYXJlZCB0aGUgcmV2aXNpb24gaGlzdG9yeSBmb3InOwokbGFuZ1snQ2hlY2tlZE91dF9kb0FEVUlUJ10gPSAnQ2hlY2tlZCBvdXQgc2NyaXB0ICc7CiRsYW5nWydyZWxlYXNlZF9kb0FEVUlUJ10gPSAncmVsZWFzZWQgc2NyaXB0ICc7CiRsYW5nWydTY3JpcHRJc19sYWJlbCddID0gJ1VzZSB0aGlzIHNjcmlwdCA8ZW0+KE5vdGU6IElmIGEgcGF0aCBpcyBzZXQsIGl0IHdpbGwgb3ZlciByaWRlIHRoaXMpPC9lbT4nOwokbGFuZ1snZGVidWdJVF9sYWJlbCddID0gJ2RlYnVnSVQnOwokbGFuZ1snZGVidWdJVG5vdGVfbGFiZWwnXSA9ICc8ZW0+KE11c3QgaGF2ZSBGaXJlcGhwIG1vZCk8L2VtPic7CiRsYW5nWydkZWJ1Z1QnXSA9ICdEZWJ1Z2luZyBPcHRpb25zJzsKJGxhbmdbJ0VkaXRIaXN0b3J5J10gPSAnVXNlciBIaXN0b3J5IEVkaXRpbmcnOwokbGFuZ1snbm9uZUluVHlwZSddID0gJzxoMT5Zb3UgbXVzdCBmaXJzdCBhZGQgPGJyLz5hIHNjcmlwdCBpbiB0aGlzIHR5cGU8L2gxPic7CiRsYW5nWydyZXZpc2lvblRpdGxlJ10gPSAncmV2aXNpb24gSGlzdG9yeSc7CiRsYW5nWydyZXZpc2lvbl9sYWJlbCddID0gJzxzdHJvbmc+VHJ1biBvbiB0aGUgcmV2aXNpb24gaGlzdG9yeTwvc3Ryb25nPic7CiRsYW5nWydyZXZpc2lvbl9vcCddID0gJzxoMT5SZXZpc2lvbjwvaDE+DQo8aDM+VHJ1bmluZyB0aGlzIG9mZiBkb2VzIG5vdCBjbGVhciB0aGUgaGlzdG9yeSBpZiBpdCB3YXMgb24gYmVmb3JlLiAgTGlrZSBpdCB0byBwYXVzZS48L2gzPic7CiRsYW5nWydyZXZpc2lvbl9MSU1JVF9sYWJlbCddID0gJ1NldCBSZXZpc2lvbiBMSU1JVCc7CiRsYW5nWydjbGVhclJldiddID0gJ0NsZWFyIEhpc3RvcnknOwokbGFuZ1sncHJlbG9hZF9DU1NpbWFnZVRpdGxlJ10gPSAnUHJlbG9hZCBDc3MgSW1hZ2VzJzsKJGxhbmdbJ3ByZWxvYWRfQ1NTaW1hZ2VfbGFiZWwnXSA9ICc8c3Ryb25nPlR1cm4gb24gUHJlbG9hZGVkIENzcyBJbWFnZXM8L3N0cm9uZz4nOwokbGFuZ1sncHJlbG9hZF9DU1NpbWFnZSddID0gJzxoMT5QcmVsb2FkIENzcyBJbWFnZXM8L2gxPg0KPGgzPklmIHlvdSBoYXZlIHlvdXIgc3lzdGVtIGFsbCBzZXQgdXAgcmlnaHQsIHRoaXMgd2lsbCBoZWxwIHlvdSBnZXQgYSBmYXN0IHBhcmFsbGVsIGRvd24gbG9hZCBvZiBhbGwgZWxlbWVudHMuPC9oMz4nOwokbGFuZ1snZ2xvYmFsdXJsJ10gPSAnPGgxPlNldCB0aGUgcm9vdCBVUkw8L2gxPg0KPGgzPlVzZWQgZm9yIHdoZW4geW91IG5lZWQgU1NMIHN1cHBvcnQgb3Igd2FudCB0byBwdXNoIHRoZSBzY3JpcHRzIHRvIGEgc3ViZG9tYWluIHRvIGxvc2UgdGhlIG5lZWRsZXMgY29va2llcy48L2gzPic7CiRsYW5nWydzbWFydHlPbl9sYWJlbCddID0gJzxzdHJvbmc+UHJvY2VzcyBTbWFydHk8L3N0cm9uZz48YnIvPiBkYXRhIGluIGJ1dHRvbiBmaWVsZHMnOwokbGFuZ1snc21hcnR5T24nXSA9ICc8aDE+UHJvY2VzcyBTbWFydHkgZGF0YTwvaDE+DQo8aDM+V2l0aCB0aGlzIHR1cm5lZCBvbiB5b3UgY2FuIHNldCB0aGUgYnV0dG9uIGZpZWxkcyB3aXRoIHRoZSB2YWx1ZXMgcGFzc2VkIGJ5IG90aGVyIG1vZHVsZXMgc3VjaCBhcyBQcm9kdWN0cyBvciBDYXRhbG9nZXI8L2gzPic7CiRsYW5nWydmaWxlVGltZV9jc3NfdXJsc19sYWJlbCddID0gJzxzdHJvbmc+aGVscCBicmVhayBhIGNsaWVudCBzaWRlIGNhY2hlPC9zdHJvbmc+JzsKJGxhbmdbJ2ZpbGVUaW1lX2Nzc191cmxzJ10gPSAnPGgxPmhlbHAgYnJlYWsgYSBjbGllbnQgc2lkZSBjYWNoZTwvaDE+DQo8aDM+VGhpcyBpcyBkb25lIGJ5IGFkZGluZyBhIGZpbGUgY3JlYXRpb24gdGltZSBhdCB0aGUgZW5kIG9mIGEgZmlsZS4gIFR1cm5pbmcgdGhpcyBvbiB3aWxsIGFkZCB0aGlzIHRvIGFsbCBsb2NhbCB1cmxzLiAoQ1NTIG9ubHkgYXRtKSAtTm90aGluZyBpcyBkb25lIHRvIGhvdGxpbmtzPC9oMz4nOwokbGFuZ1snZWRpdCddID0gJ0VkaXRlcic7CiRsYW5nWydkZWxldGUnXSA9ICdTdXBwcmltZXInOwokbGFuZ1snQ2xvc2UnXSA9ICdGZXJtZXInOwokbGFuZ1snT3BlbiddID0gJ091dnJpcic7CiRsYW5nWydkaXJFbXB0eSddID0gJ1RoZSBmb2xkZXIgd2FzIGVtcHR5JzsKJGxhbmdbJ2NsZWFuVGVtcCddID0gJ0NsZWFuIHRoZSB0ZW1wPyc7CiRsYW5nWyd1clRlbXBQYXRoJ10gPSAnWW91ciBjYWNoZSBwYXRoIGlzJzsKJGxhbmdbJ0xhc3RNb2QnXSA9ICdEZXJuaSZlZ3JhdmU7cmUgbW9kaWZpY2F0aW9uJzsKJGxhbmdbJ2NhY2hlRmVycm9yJ10gPSAnU2NyaXB0RGVwbG95IGNvdWxkIG5vdCBtYWtlIHRoZSBjYWNoZSBmb2xkZXIsIGNoZWNrIHlvdXIgZmlsZSBwcmVtaXNzaW9ucyBmb3IgdGhlIFVwbGFvZHMgYXJlYS4nOwokbGFuZ1snTmFtZSddID0gJ05vbSc7CiRsYW5nWydQcm9jY2Vzc2luZyddID0gJ1Byb2NjZXNzaW5nJzsKJGxhbmdbJ1NhdmVkJ10gPSAnU2F1dmVnYXJkJmVhY3V0ZTsnOwokbGFuZ1snRG9uZSddID0gJ0ZhaXQnOwokbGFuZ1snVmFsaWRhdGluZyddID0gJ1ZhbGlkYXRpbmcnOwokbGFuZ1snR3JvdXB0U2V0X2xhYmVsJ10gPSAnR3JvdXAgTmFtZSc7CiRsYW5nWydHcm91cHRUeXBlX2xhYmVsJ10gPSAnVHlwZSBvZiBzY3JpcHRzJzsKJGxhbmdbJ1NjcmlwdFBpY2tlcl9sYWJlbCddID0gJ1NjcmlwdCBQb29sJzsKJGxhbmdbJ0xJTkUnXSA9ICdMSU5FJzsKJGxhbmdbJ1RZUEUnXSA9ICdUWVBFJzsKJGxhbmdbJ1NVQlRZUEUnXSA9ICdTVUJUWVBFJzsKJGxhbmdbJ1NUUklORyddID0gJ1NUUklORyc7CiRsYW5nWydNRVNTQUdFJ10gPSAnTUVTU0FHRSc7CiRsYW5nWydMRVZFTCddID0gJ0xFVkVMJzsKJGxhbmdbJ05vdGVzJ10gPSAnTm90ZXMnOwokbGFuZ1snV2FybmluZ3MnXSA9ICdXYXJuaW5ncyc7CiRsYW5nWydFcnJvcnMnXSA9ICdFcnJvcnMnOwokbGFuZ1snaGlkZGVuJ10gPSAnaGlkZGVuJzsKJGxhbmdbJ1NjcmlwdCddID0gJ1NjcmlwdCc7CiRsYW5nWydFVVJMUyddID0gJ0V4dHJhY3RlZCBVcmxzJzsKJGxhbmdbJ1JDU1MnXSA9ICdSZW5kZXJlZCBDU1MnOwokbGFuZ1snU0NTUyddID0gJ0NTUyBTdHJ1Y3R1cmUnOwokbGFuZ1snRkNPTlQnXSA9ICdGaWxlIGNvbnRlbnQnOwokbGFuZ1snaVVSTCddID0gJ2ltYWdlIFVSTCc7CiRsYW5nWydUeXBlJ10gPSAnVHlwZSc7CiRsYW5nWydTaXplJ10gPSAnU2l6ZSc7CiRsYW5nWydTdGF0dXMnXSA9ICdTdGF0dXMnOwokbGFuZ1snaG90bGluayddID0gJzxzdHJvbmc+SG90bGlua2luZzo8L3N0cm9uZz4gYXBwcmVhcyB0byBiZSBhIGhvdGxpbmsuJzsKJGxhbmdbJ0Jyb2tlbmxpbmsnXSA9ICdCcm9rZW4gTGluayc7CiRsYW5nWydOT2Nzc0knXSA9ICdObyBjc3MgaW1hZ2VzJzsKJGxhbmdbJ1llc1ZBbGFzdGVyJ10gPSAnPGgyPllvdSB2YWxpZGF0ZWQhICoqPC9oMj48aW1nIHN0eWxlPSZxdW90O2JvcmRlcjowO3dpZHRoOjg4cHg7aGVpZ2h0OjMxcHgmcXVvdDtzcmM9JnF1b3Q7aHR0cDovL2ppZ3Nhdy53My5vcmcvY3NzLXZhbGlkYXRvci9pbWFnZXMvdmNzcy1ibHVlJnF1b3Q7YWx0PSZxdW90O1ZhbGlkIENTUyEmcXVvdDsgLz48YnIvPiA8c3Ryb25nPioqIHlvdSBhcmUgZmlsdGVyaW5nIGVycm9ycyBhbmQgbWF5IGhhdmUgZmlsdGVyZWQgYSByZWFsIGVycm9yPC9zdHJvbmc+JzsKJGxhbmdbJ1llc1ZBbCddID0gJzxoMj5Zb3UgdmFsaWRhdGVkITwvaDI+PGltZyBzdHlsZT0mcXVvdDtib3JkZXI6MDt3aWR0aDo4OHB4O2hlaWdodDozMXB4JnF1b3Q7c3JjPSZxdW90O2h0dHA6Ly9qaWdzYXcudzMub3JnL2Nzcy12YWxpZGF0b3IvaW1hZ2VzL3Zjc3MtYmx1ZSZxdW90O2FsdD0mcXVvdDtWYWxpZCBDU1MhJnF1b3Q7IC8+JzsKJGxhbmdbJ0NsZWFySW1nJ10gPSAnRWxpbWluZXIgbCYjMDM5O2ltYWdlIGVuIGNvdXJzJzsKJGxhbmdbJ0ZpbmlzaCddID0gJ1Rlcm1pbmVyJzsKJGxhbmdbJ3JldmVydCddID0gJ1JldG91cm5lcic7CiRsYW5nWydhcHBseSddID0gJ0FwcGxpcXVlcic7CiRsYW5nWydjYW5jZWwnXSA9ICdBbm51bGVyJzsKJGxhbmdbJ2Zvcm1fY2FuY2VsJ10gPSAnQW5udWxlcic7CiRsYW5nWydTYXZlJ10gPSAnU2F1dmVnYXJkZXInOwokbGFuZ1snZG9uZSddID0gJ0ZhaXQnOwokbGFuZ1snYWRkJ10gPSAnQWpvdXRlcic7CiRsYW5nWydzdWJtaXQnXSA9ICdTb3VtZXR0cmUnOwokbGFuZ1snUkVPUkRFUiddID0gJ1ImZWFjdXRlO29yZG9ubmVyJzsKJGxhbmdbJ2Zvcm1fc3VibWl0J10gPSAnU2F1dmVnYXJkZXIgbGVzIHByJmVhY3V0ZTtmJmVhY3V0ZTtyZW5jZXMnOwokbGFuZ1snbW9kX3ByZWZzX3RpdGxlJ10gPSAnUHImZWFjdXRlO2YmZWFjdXRlO3JlbmNlcyBkdSBtb2R1bGUnOwokbGFuZ1sncHJlZnN1cGRhdGVkJ10gPSAnTGVzIHByJmVhY3V0ZTtmJmVhY3V0ZTtyZW5jZXMgZHUgbW9kdWxlIG9udCAmZWFjdXRlO3QmZWFjdXRlO2VzIG1pc2UgJmFncmF2ZTsgam91ci4nOwokbGFuZ1snb3B0aW9uc3VwZGF0ZWQnXSA9ICdPcHRpb25zIG1pc2UgJmFncmF2ZTsgam91cic7CiRsYW5nWydtb2RkZXNjcmlwdGlvbiddID0gJ1NQRUVEIFlPVVIgU0lURSBVUCAuLi4hISEhICZidWxsOyBPdXRwdXQgZHluYW1pYyBKUyBmaWxlcyBhbmQgQ1NTIFdJVEggc21hcnR5Li4uICZidWxsOyBTZXQgdGhlIGZpbGVzIHRvIHVzZSBhIHN1YmRvbWFpbi4uLiAmYnVsbDsgY2FjaGVkLi4uICZidWxsOyBtaW5pZmllZC4uLiAmYnVsbDsgRGlkIEkgbWVudGlvbiB5b3UgY2FuIHVzZSBzbWFydHkgaW4geW91ciBKUyBhbmQgQ1NTIHNjcmlwdCEhISEgLSBTaW1wbGUsIGZsZXhpYmxlISc7CiRsYW5nWyd3ZWxjb21lX3RleHQnXSA9ICc8cD5TYWx1dCAhPC9wPic7CiRsYW5nWydjaGFuZ2Vsb2cnXSA9ICc8dWw+DQoNCiAgPGxpPlZlcnNpb24gMC4xIEJldGEgcmVsZWFzZS48L2xpPg0KICA8bGk+VmVyc2lvbiAwLjIgbG90cyBvZiBjaGFuZ2VzIHRvIGZpeCBidWcuLi48L2xpPg0KICAgPGxpPlZlcnNpb24gMC4zIHNldCB0aGUgc21hcnR5IHRvIHVzZSB7eyB9fTwvbGk+DQogICAgPGxpPlZlcnNpb24gMC40IGZpeGVkIGJ1Zy4uIGltcHJvdmVkIHRoZSBtaW5pYWZjYXRpb24gdG8gYSBzYXZlcyBvZiB1cCB0byA2MCU8L2xpPg0KPC91bD4nOwokbGFuZ1snaGVscCddID0gJzxsaW5rIG1lZGlhPSZxdW90O3NjcmVlbiZxdW90OyBocmVmPSZxdW90Oy4uL21vZHVsZXMvU2NyaXB0RGVwbG95L0NTUy9NYXN0ZXJDU1MuY3NzJnF1b3Q7IHR5cGU9JnF1b3Q7dGV4dC9jc3MmcXVvdDsgcmVsPSZxdW90O3N0eWxlc2hlZXQmcXVvdDsvPjxkaXYgY2xhc3M9JnF1b3Q7U2ltV3JhcCZxdW90Oz48YiBjbGFzcz0mcXVvdDtyYm90dG9tJnF1b3Q7PjxiIGNsYXNzPSZxdW90O3IxJnF1b3Q7PjwvYj4gPGIgY2xhc3M9JnF1b3Q7cjImcXVvdDs+PC9iPjxiIGNsYXNzPSZxdW90O3IzJnF1b3Q7PjwvYj4gPGIgY2xhc3M9JnF1b3Q7cjQmcXVvdDs+PC9iPjwvYj4NCg0KPGRpdiBjbGFzcz0mcXVvdDtTaW1jb24mcXVvdDs+IDxoMyBjbGFzcz0mcXVvdDtCYWNrTGluayZxdW90Oz48YSBvbmNsaWNrPSJqYXZhc2NyaXB0OndpbmRvdy5oaXN0b3J5LmdvKC0xKSIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPjw8IEJhY2s8L2E+PC9oMz4NCjxoMT5XaGF0IERvZXMgVGhpcyBEbz8tLS0gdGhpcyBuZWVkcyB1cGRhdGluZzwvaDE+DQo8aDI+V3JpdGUgbWFuYWdlIGFuZCBkZXBsb3kgSlMgYW5kIENTUzwvaDI+DQo8YSBpZD0iU2NyaXB0RGVwbG95Ij48L2E+DQo8cD5TY3JpcHREZXBsb3kgbW9kdWxlIHRoYXQgY2FuIGNvbWJpbmUgbXVsdGlwbGUgQ1NTIG9yIEphdmFzY3JpcHQgZmlsZXMsIGNvbXByZXNzIHRoZWlyIGNvbnRlbnRzIChpLmUuIHJlbW92YWwgb2YgdW5uZWNlc3Nhcnkgd2hpdGVzcGFjZS9jb21tZW50cyksIGFuZCBzZXJ2ZSB0aGUgcmVzdWx0cyB3aXRoIEhUVFAgZW5jb2RpbmcgKGd6aXAvZGVmbGF0ZSkgYW5kIGhlYWRlcnMgdGhhdCBhbGxvdyBvcHRpbWFsIGNsaWVudC1zaWRlIGNhY2hpbmcuIFRoaXMgaGVscHMgeW91IGZvbGxvdyBzZXZlcmFsIG9mIFlhaG9vISYjMDM5O3MgPGEgaHJlZj0iaHR0cDovL2RldmVsb3Blci55YWhvby5jb20vcGVyZm9ybWFuY2UvaW5kZXguaHRtbCNydWxlcyIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPlJ1bGVzIGZvciBIaWdoIFBlcmZvcm1hbmNlIFdlYiBTaXRlczwvYT4uIChTZWUgJnF1b3Q7UHJvYmxlbSBEb21haW4mcXVvdDsgYmVsb3cgZm9yIG1vcmUgaW5mby4pIDwvcD4NCjxoMz5UaGUgU2hvcnQgb2YgaXQ8L2gzPg0KPHA+V2lydGUgeW91ciBzY3JpcHRzLCBzZXQgdGhlIG9yZGVyIGFuZCBTY3JpcHREZXBsb3kgd2lsbCBkbyB0aGUgcmVzdCE8L3A+DQo8dGFibGU+DQogIDx0Ym9keT4NCiAgICA8dHI+DQogICAgICA8dGQgc3R5bGU9JnF1b3Q7Qk9SREVSLVJJR0hUOiAjYWFhIDFweCBzb2xpZDsgUEFERElORy1SSUdIVDogNXB4OyBCT1JERVItVE9QOiAjYWFhIDFweCBzb2xpZDsgUEFERElORy1MRUZUOiA1cHg7IFBBRERJTkctQk9UVE9NOiA1cHg7IEJPUkRFUi1MRUZUOiAjYWFhIDFweCBzb2xpZDsgUEFERElORy1UT1A6IDVweDsgQk9SREVSLUJPVFRPTTogI2FhYSAxcHggc29saWQmcXVvdDs+PHN0cm9uZz5CZWZvcmU8L3N0cm9uZz48L3RkPg0KICAgICAgPHRkIHN0eWxlPSZxdW90O0JPUkRFUi1SSUdIVDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctUklHSFQ6IDVweDsgQk9SREVSLVRPUDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctTEVGVDogNXB4OyBQQURESU5HLUJPVFRPTTogNXB4OyBCT1JERVItTEVGVDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctVE9QOiA1cHg7IEJPUkRFUi1CT1RUT006ICNhYWEgMXB4IHNvbGlkJnF1b3Q7PjxpbWcgc3JjPSZxdW90O2h0dHA6Ly9tcmNsYXkub3JnL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDA4LzA5L2ZpZGRsZXJfYmVmb3JlLnBuZyZxdW90OyBhbHQ9JnF1b3Q7YWZ0ZXImcXVvdDsgLz48L3RkPg0KICAgIDwvdHI+DQogICAgPHRyPg0KICAgICAgPHRkIHN0eWxlPSZxdW90O0JPUkRFUi1SSUdIVDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctUklHSFQ6IDVweDsgQk9SREVSLVRPUDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctTEVGVDogNXB4OyBQQURESU5HLUJPVFRPTTogNXB4OyBCT1JERVItTEVGVDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctVE9QOiA1cHg7IEJPUkRFUi1CT1RUT006ICNhYWEgMXB4IHNvbGlkJnF1b3Q7PjxzdHJvbmc+QWZ0ZXI8L3N0cm9uZz48L3RkPg0KICAgICAgPHRkIHN0eWxlPSZxdW90O0JPUkRFUi1SSUdIVDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctUklHSFQ6IDVweDsgQk9SREVSLVRPUDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctTEVGVDogNXB4OyBQQURESU5HLUJPVFRPTTogNXB4OyBCT1JERVItTEVGVDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctVE9QOiA1cHg7IEJPUkRFUi1CT1RUT006ICNhYWEgMXB4IHNvbGlkJnF1b3Q7PjxpbWcgc3JjPSZxdW90O2h0dHA6Ly9tcmNsYXkub3JnL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDA4LzA5L2ZpZGRsZXJfYWZ0ZXIucG5nJnF1b3Q7IGFsdD0mcXVvdDtiZWZvcmUmcXVvdDsgLz48L3RkPg0KICAgIDwvdHI+DQogIDwvdGJvZHk+DQo8L3RhYmxlPg0KDQoNCg0KPGgyPjxhIGlkPSJGZWF0dXJlcyI+PC9hPkZlYXR1cmVzPC9oMj4NCjx1bD4NCiAgPGxpPkNvbWJpbmVzIGFuZCBtaW5pZmllcyBtdWx0aXBsZSBDU1Mgb3IgSmF2YVNjcmlwdCBmaWxlcyBpbnRvIGEgc2luZ2xlICAgZG93bmxvYWQgPC9saT4NCiAgPGxpPlVzZXMgYW4gPGEgaHJlZj0iaHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL21pbmlmeS9zb3VyY2UvYnJvd3NlL3RydW5rL21pbi9saWIvSlNNaW4ucGhwIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+ZW5oYW5jZWQgcG9ydDwvYT4gb2YgRG91Z2xhcyBDcm9ja2ZvcmQmIzAzOTtzIDxhIGhyZWY9Imh0dHA6Ly93d3cuY3JvY2tmb3JkLmNvbS9qYXZhc2NyaXB0L2pzbWluLmh0bWwiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5KU01pbiAgIGxpYnJhcnk8L2E+IGFuZCBjdXN0b20gY2xhc3NlcyB0byBtaW5pZnkgPGEgaHJlZj0iaHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL21pbmlmeS9zb3VyY2UvYnJvd3NlL3RydW5rL21pbi9saWIvTWluaWZ5L0NTUy5waHAiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5DU1M8L2E+IGFuZCA8YSBocmVmPSJodHRwOi8vY29kZS5nb29nbGUuY29tL3AvbWluaWZ5L3NvdXJjZS9icm93c2UvdHJ1bmsvbWluL2xpYi9NaW5pZnkvSFRNTC5waHAiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5IVE1MPC9hPjwvbGk+DQogIDxsaT5DYWNoZXMgc2VydmVyLXNpZGUgdG8gYXZvaWQgZG9pbmcgdW5uZWNlc3Nhcnkgd29yayA8L2xpPg0KICA8bGk+UmVzcG9uZHMgd2l0aCBhbiBIVFRQIDMwNCAoTm90IE1vZGlmaWVkKSByZXNwb25zZSB3aGVuIHRoZSBicm93c2VyIGhhcyBhbiAgIHVwLXRvLWRhdGUgY2FjaGUgY29weSAqKiA8L2xpPg0KICA8bGk+TW9zdCBtb2R1bGVzIGFyZSBsYXp5LWxvYWRlZCBhcyBuZWVkZWQgKDMwNCByZXNwb25zZXMgdXNlIG1pbmltYWwgY29kZSkgICoqIDwvbGk+DQogIDxsaT5BdXRvbWF0aWNhbGx5IHJld3JpdGVzIHJlbGF0aXZlIFVSSXMgaW4gY29tYmluZWQgQ1NTIGZpbGVzIHRvIHBvaW50IHRvIHZhbGlkIGxvY2F0aW9ucyA8L2xpPg0KICA8bGk+V2l0aCBjYWNoaW5nIGVuYWJsZWQsIFNjcmlwdERlcGxveSBpcyBjYXBhYmxlIG9mIGhhbmRsaW5nIGh1bmRyZWRzIG9mIHJlcXVlc3RzIHBlciBzZWNvbmQgb24gYSBtb2RlcmF0ZWx5IHBvd2VyZnVsIHNlcnZlci4gPC9saT4NCiAgPGxpPkNvbnRlbnQtRW5jb2Rpbmc6IGd6aXAsIGJhc2VkIG9uIHJlcXVlc3QgaGVhZGVycy4gQ2FjaGluZyBhbGxvd3MgaXQgc28gc2VydmUgZ3ppcHBlZCBmaWxlcyBmYXN0ZXIgdGhhbiBBcGFjaGUmIzAzOTtzIG1vZF9kZWZsYXRlIG9wdGlvbiEgPC9saT4NCjwvdWw+DQo8aDM+PGVtPjxzdHJvbmc+KiogTm90ZTo8L3N0cm9uZz4gSXQgaXMgYmVzdCB0byB1c2UgYSAuaHRhY2Nlc3Mgc2NyaXB0IHRvIHNldCB0aGUgYWdlIHRpbWVzLiBTY3JpcHREZXBsb3kgaXMgZGVzaWduZWQgZm9yIGVmZmljaWVuY3ksIGJ1dCBmb3IgdmVyeSBoaWdoIHRyYWZmaWMgc2l0ZXMsIFNjcmlwdERlcGxveSBtYXkgc2VydmUgZmlsZXMgc2xvd2VyIHRoYW4geW91ciBIVFRQZCBkdWUgdG8gdGhlIENHSSBvdmVyaGVhZCBvZiBQSFAuICBUbyBvdmVyIGNvbWUgdGhpcyBKdXN0IGNoZWNrICZxdW90O3VzZSAuaHRhY2Nlc3MgaW4gb3B0aW9ucyZxdW90OzwvZW0+PC9oMz4NCjxoMj48YSBuYW1lPSJSZXF1aXJlbWVudHMiPjwvYT5SZXF1aXJlbWVudHM8L2gyPg0KPHVsPg0KICA8bGk+VGhlIGNvbW1vbmx5IGluc3RhbGxlZCA8YSBocmVmPSJodHRwOi8vdXMzLnBocC5uZXQvbWFudWFsL2VuL3psaWIuaW5zdGFsbGF0aW9uLnBocCIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPnpsaWIgICBleHRlbnNpb248L2E+IGlzIHJlY29tbWVuZGVkIGZvciBIVFRQIGVuY29kaW5nIGZ1bmN0aW9uYWxpdHkuIDwvbGk+DQo8L3VsPg0KPGJyLz48YnIvPg0KPGgxPkhvdyBEbyBJIFVzZSBJdDwvaDE+DQoNCg0KPGgzPkdldCBhIHNpbmdsZSBzY3JpcHQ8L2gzPg0KdXNlIDxzcGFuIGNsYXNzPSZxdW90O2NvZGVISUdITElHSFQmcXVvdDs+e2Ntc19tb2R1bGUgbW9kdWxlPVNjcmlwdERlcGxveSBzY3JpcHRJRD0mcXVvdDsxJnF1b3Q7fSA8L3NwYW4+IDxici8+PGJyLz4NCjxoMz5HZXQgYSBzY3JpcHQgZ3JvdXA8L2gzPg0KdXNlIDxzcGFuIGNsYXNzPSZxdW90O2NvZGVISUdITElHSFQmcXVvdDs+e2Ntc19tb2R1bGUgbW9kdWxlPVNjcmlwdERlcGxveSBncm91cElEPSZxdW90OzEmcXVvdDt9IDwvc3Bhbj4gPGJyLz48YnIvPg0KPGgyPkFsbCBvdXRwdXQgaXMgaW4gdGhlIFhIVE1MIGZvcm1hdCwgeW91IHNob3VsZCB3b3JrIGluIHRoYXQuPC9oMj4NCg0KPGJyLz48YnIvPg0KPGg0PlBhcmFtczwvaDQ+DQo8dWw+DQo8bGk+PHN0cm9uZz5zY3JpcHRJRD0mcXVvdDsmcXVvdDsgPC9zdHJvbmc+PGVtPihSZXF1aXJlZC9vcHRpb25hbCk8L2VtPiA8YnIvPnwgc2V0IHRoZSBJRCBSZXF1aXJlZCBvbmx5IGlmIGdyb3VwSUQgbm90IGNhbGxlZDxici8+PC9saT4NCjxsaT48c3Ryb25nPmdyb3VwSUQ9JnF1b3Q7JnF1b3Q7IDwvc3Ryb25nPjxlbT4oUmVxdWlyZWQvb3B0aW9uYWwpPC9lbT4gPGJyLz58IHNldCB0aGUgSUQgUmVxdWlyZWQgb25seSBpZiBzY3JpcHRJRCBub3QgY2FsbGVkPGJyLz48L2xpPg0KPGxpPjxzdHJvbmc+U3R5cGU9JnF1b3Q7JnF1b3Q7IDwvc3Ryb25nPjxlbT4oUmVxdWlyZWQvKSBKUy9DU1M8L2VtPiA8YnIvPnwgc2V0IHRoZSBJRCBSZXF1aXJlZCBvbmx5IGlmIHNjcmlwdElEIG5vdCBjYWxsZWQ8YnIvPjwvbGk+DQoNCjxsaT48c3Ryb25nPlNtYXJ0eU9uPSZxdW90OyZxdW90OyA8L3N0cm9uZz48ZW0+KG9wdGlvbmFsKSB0cnVlL2ZhbHNlIDxzdHJvbmc+RGVmYXVsdDpudWxsPC9zdHJvbmc+PC9lbT4gPGJyLz58IFRoaXMgbGV0cyB5b3Ugb3ZlciByaWRlIHRoZSBnbG9ibGVzPGJyLz48L2xpPg0KPGxpPjxzdHJvbmc+TWluaWZ5PSZxdW90OyZxdW90OyA8L3N0cm9uZz48ZW0+KG9wdGlvbmFsKSB0cnVlL2ZhbHNlIDxzdHJvbmc+RGVmYXVsdDpudWxsPC9zdHJvbmc+PC9lbT4gPGJyLz58ICBUaGlzIGxldHMgeW91IG92ZXIgcmlkZSB0aGUgZ2xvYmxlczxici8+PC9saT4NCg0KDQoNCg0KDQoNCjxsaT48c3Ryb25nPk1lZGlhVHlwZT0mcXVvdDsmcXVvdDsgPC9zdHJvbmc+PGVtPihvcHRpb25hbCk8L2VtPiA8YnIvPnwgc2V0IE1lZGlhIHR5cGUgZm9yIENTUyBmaWxlcyBoZXJlLi4uIG92ZXJyaWRlcyBkYiBzZXRpbmdzLjxici8+PC9saT4NCjxsaT48c3Ryb25nPmltcG9ydD0mcXVvdDsmcXVvdDsgPC9zdHJvbmc+PGVtPihvcHRpb25hbCkgdHJ1ZS9mYWxzZTwvZW0+IDxici8+fCBzZXQgdGhlIGluY2x1c2lvbiBzdHlsZSBmb3IgQ1NTIGZpbGVzIGhlcmUuLi4gb3ZlcnJpZGVzIGRiIHNldGluZ3MuIEV4OiB0cnVlICBnaXZlcyA8c3R5bGUgdHlwZT1cJnF1b3Q7dGV4dC9jc3NcJnF1b3Q7PkBpbXBvcnQgdXJsKCZxdW90O3VybC9jc3NmaWxlLmNzcyZxdW90Oykgc2NyZWVuOzwvc3R5bGU+PGJyLz48L2xpPg0KDQo8bGk+PHN0cm9uZz5jYWNoZUJ1c3Rlcjwvc3Ryb25nPiA8ZW0+KG9wdGlvbmFsKSA8c3Ryb25nPkRlZmF1bHQ6ZmFsc2U8L3N0cm9uZz48L2VtPjxici8+fCBUaGlzIGlzIHRvIGluc3RhbnRseSB1bmNhY2hlIGFuIHNjcmlwdCBvbiB0aGUgY2xpZW50IHNpZGUgYWZ0ZXIgYSBuZXcgdXBsb2FkZWQgc2NyaXB0IGlzIGNyZWF0ZWQuLi4gaWU6IDEyLmpzPzEyNTUyMjUwMDcgIDxmb250IGNvbG9yPSZxdW90O3JlZCZxdW90Oz48c3Ryb25nPiggdHJ1ZS9mYWxzZSApPC9zdHJvbmc+PC9mb250PjwvbGk+DQo8bGk+PHN0cm9uZz5hc3NpZ249JnF1b3Q7JnF1b3Q7IDwvc3Ryb25nPjxlbT4ob3B0aW9uYWwpPC9lbT4gPGJyLz58IEFzc2lnbiB0aGUgb3V0cHV0IChyZXR1cm4gdGhlIHNtYXJ0eSBhc3NpZ25tZW50KSAgVXNlIGluIGNvbmp1bmN0aW9uIHdpdGggb3V0IHdpdGhvdXQgVVJMPC9saT4NCjxsaT48c3Ryb25nPmZzaXplPSZxdW90OyZxdW90OyA8L3N0cm9uZz48ZW0+KG9wdGlvbmFsKTwvZW0+IDxici8+fCBnZXQgdGhlIHNpemU8L2xpPg0KPGxpPjxzdHJvbmc+cm9vdFVybD0mcXVvdDsmcXVvdDsgPC9zdHJvbmc+PGVtPihvcHRpb25hbCk8L2VtPiA8YnIvPnwgU2NyaXB0RGVwbG95IGNyZWF0ZXMgYSB0ZW1wIGRpcmVjdG9yIGluIHRoZSB1cGxvYWQgZm9sZGVyLiAgSWYgeW91IG1vdmUgdGhlIHBhdGggdG8gdGhlIHVwbGFvZCB0byBhIHN1YmRvbWFpbiB5b3UgbWF5IGd1aWRlIHRoZSBvdXRwdXQgd2l0aCB0aGlzLjwvbGk+DQogICAgICAgIDx1bCBzdHlsZT0mcXVvdDtsaXN0LXN0eWxlLXBvc2l0aW9uOmluc2lkZTsmcXVvdDs+PGxpPjxzdHJvbmc+RXhhcG1sZTo8L3N0cm9uZz4geW91IGNoYW5nZWQgPENPREU+JGNvbmZpZ1smIzAzOTt1cGxvYWRzX3BhdGgmIzAzOTtdID0gJiMwMzk7L3Zhci93d3cvdmhvc3RzL2RvbWFpbi5vcmcvaHR0cGRvY3MvdXBsb2FkcyYjMDM5Ozs8L0NPREU+IDwvbGk+DQogICAgICAgICAgICA8bGk+PHN0cm9uZz50bzwvc3Ryb25nPiA8Q09ERT4kY29uZmlnWyYjMDM5O3VwbG9hZHNfcGF0aCYjMDM5O10gPSBcL3Zhci93d3cvdmhvc3RzL2RvbWFpbi5vcmcvc3ViZG9tYWlucy9tZWRpYS9odHRwZG9jcy91cGxvYWRzJiMwMzk7OzwvQ09ERT48L2xpPg0KICAgICAgICAgICAgPGxpPm5vdyB0aGUgdXBsb2FkcyB1cmwgd291bGQgbm90IHdvcmsgYXMgaXQgd291bGQgYmUgPHU+aHR0cDovL3d3dy5kb21haW4ub3JnL3VwbG9hZHM8L3U+PC9saT4NCiAgICAgICAgICAgIDxsaT48c3Ryb25nPlNvPC9zdHJvbmc+IGl0IGNhbiBiZSBjaGFuZ2VkIGhlcmUgdG8gPHU+aHR0cDovL21lZGlhLmRvbWFpbi5vcmcvdXBsb2FkczwvdT4gIDxmb250IGNvbG9yPSZxdW90O3JlZCZxdW90Oz48c3Ryb25nPihOT1RFOiB3YXRjaCB5b3VyIC8gKTwvc3Ryb25nPjwvZm9udD48L2xpPg0KICAgICAgICA8L3VsPg0KPGxpPjxzdHJvbmc+VVJMPSZxdW90OyZxdW90OyA8L3N0cm9uZz48ZW0+KG9wdGlvbmFsKTwvZW0+IDxici8+fG91dHB1dHMgdGhlIHVybC48L2xpPg0KDQoNCg0KDQoJCQ0KDQoNCg0KDQoNCg0KDQoNCjwhLS08bGk+PHN0cm9uZz5TYW5kQm94PXRydWUgPC9zdHJvbmc+PGVtPihvcHRpb25hbCk8L2VtPiA8YnIvPnwgZmFsc2U8YnIvPjwvbGk+DQoNCjxsaT48c3Ryb25nPlJVTmFjdGlvbj0mYW1wO2FtcDtxdW90OyZhbXA7YW1wO3F1b3Q7IDwvc3Ryb25nPjxlbT4ob3B0aW9uYWwpPC9lbT4gPGJyLz58IFVEVDxici8+fCBVUkwgPGVtPiguLi9wbHVnaW5zL2Z1bmN0aW9uLmZpbGVuYW1lLnBocCk8L2VtPjxici8+fCAqTW9yZSBjb21pbmcgU29vbio8YnIvPjwvbGk+DQo8bGk+PHN0cm9uZz5MYW5nPSZhbXA7YW1wO3F1b3Q7JmFtcDthbXA7cXVvdDsgPC9zdHJvbmc+PGVtPihvcHRpb25hbCk8L2VtPiA8YnIvPnwgVXNlIENvdW50cnkgQ29kZXMgVG8gZHluYW1pY2x5IHNldCB0aGUgbGFuZ3VhZ2Ugb2YgdGhlIFBheVBhbCBwYWdlPGJyLz48L2xpPi0tPg0KDQo8L3VsPg0KPGJyLz4NCg0KPGJyLz48YnIvPg0KPGgyPjxhIGlkPSJQcm9ibGVtX0RvbWFpbiI+PC9hPlByb2JsZW0gRG9tYWluPC9oMj4NCjxwPlBhZ2VzIHRoYXQgcmVmZXIgdG8gbXVsdGlwbGUgQ1NTIG9yIEphdmFTY3JpcHQgZmlsZXMgb2Z0ZW4gc3VmZmVyIGZyb20gc2xvd2VyICAgcGFnZSBsb2FkcywgZHVlIHRvIHRoZSBicm93c2VyIHJlcXVlc3RpbmcgZWFjaCBmaWxlIGluZGl2aWR1YWxseS4gTWFueSBicm93c2VycyAgIGFsc28gYXJlIGxpbWl0ZWQgdG8gYSBmZXcgc2ltdWx0YW5lb3VzIHJlcXVlc3RzIHBlciBkb21haW4uIFRoZSB3YWl0IGZvciBhICAgc2VyaWVzIG9mIHJlcXVlc3RzIGFuZCB0aGUgdHJhbnNmZXIgb2YgdW5vcHRpbWl6ZWQgZmlsZXMgY2FuIGRyYW1hdGljYWxseSByZWR1Y2UgICB0aGUgY2xpZW50LXNpZGUgcGVyZm9ybWFuY2Ugb2YgeW91ciBzaXRlLiA8L3A+DQo8cD5IZXJlIGFyZSBhIGhhbmRmdWwgb2YgWWFob28hJiMwMzk7cyBiZXN0IHByYWN0aWNlcyB0aGF0IGFyZSBhZGRyZXNzZWQgYnkgdGhlIHVzZSBvZiBTY3JpcHREZXBsb3kuIDwvcD4NCjx1bD4NCiAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9kZXZlbG9wZXIueWFob28uY29tL3BlcmZvcm1hbmNlL3J1bGVzLmh0bWwjbnVtX2h0dHAiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5NYWtlIEZld2VyIEhUVFAgUmVxdWVzdHM8L2E+PC9saT4NCiAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9kZXZlbG9wZXIueWFob28uY29tL3BlcmZvcm1hbmNlL3J1bGVzLmh0bWwjZXhwaXJlcyIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPkFkZCBhbiBFeHBpcmVzIG9yIGEgQ2FjaGUtQ29udHJvbCBIZWFkZXI8L2E+PC9saT4NCiAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9kZXZlbG9wZXIueWFob28uY29tL3BlcmZvcm1hbmNlL3J1bGVzLmh0bWwjZ3ppcCIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPkd6aXAgQ29tcG9uZW50czwvYT48L2xpPg0KICA8bGk+PGEgaHJlZj0iaHR0cDovL2RldmVsb3Blci55YWhvby5jb20vcGVyZm9ybWFuY2UvcnVsZXMuaHRtbCNtaW5pZnkiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5NaW5pZnkgSmF2YVNjcmlwdCBhbmQgQ1NTPC9hPjwvbGk+DQogIDxsaT48YSBocmVmPSJodHRwOi8vZGV2ZWxvcGVyLnlhaG9vLmNvbS9wZXJmb3JtYW5jZS9ydWxlcy5odG1sI2V0YWdzIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+Q29uZmlndXJlIEVUYWdzPC9hPjwvbGk+DQogIDxsaT48YSBocmVmPSJodHRwOi8vZGV2ZWxvcGVyLnlhaG9vLmNvbS9wZXJmb3JtYW5jZS9ydWxlcy5odG1sI3VuZGVyMjUiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5LZWVwIENvbXBvbmVudHMgdW5kZXIgMjVLPC9hPjwvbGk+DQo8L3VsPg0KPGgzPjxhIG5hbWU9IkFja25vd2xlZGdtZW50cyI+PC9hPkFja25vd2xlZGdtZW50czwvaDM+DQo8cD5NaW5pZnkgd2FzIGluc3BpcmVkIGJ5IDxhIGhyZWY9Imh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC9qc2Nzc2NvbXAvIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+anNjc3Njb21wPC9hPiBieSBNYXhpbSBNYXJ0eW55dWsgYW5kIGJ5IHRoZSBhcnRpY2xlICYjMDM5OzxhIGhyZWY9Imh0dHA6Ly93d3cuaHVubG9jay5jb20vYmxvZ3MvU3VwZXJjaGFyZ2VkX0phdmFzY3JpcHQiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5TdXBlcmNoYXJnZWQgSmF2YVNjcmlwdDwvYT4mIzAzOTsgYnkgUGF0cmljayBIdW5sb2NrLiA8L3A+DQo8cD5UaGUgPGEgaHJlZj0iaHR0cDovL3d3dy5jcm9ja2ZvcmQuY29tL2phdmFzY3JpcHQvanNtaW4uaHRtbCIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPkpTTWluIGxpYnJhcnk8L2E+IHVzZWQgZm9yIEphdmFTY3JpcHQgbWluaWZpY2F0aW9uIHdhcyBvcmlnaW5hbGx5ICAgd3JpdHRlbiBieSBEb3VnbGFzIENyb2NrZm9yZCBhbmQgd2FzIDxhIGhyZWY9Imh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC9qc21pbi1waHAiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5wb3J0ZWQgdG8gUEhQPC9hPiBieSBSeWFuICAgR3JvdmUgc3BlY2lmaWNhbGx5IGZvciB1c2UgaW4gTWluaWZ5LiA8L3A+DQoNCg0KPGgzPlN1cHBvcnQ8L2gzPg0KPGg0PlNjcmVlbmNhc3RzIGZvciBleHRyYSBoZWxwIHdpbGwgZmFsbG93LS0tIG9uIHRoZSBUT0RPPC9oND4NCjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4NCjx1bD4NCjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlIG9yIHRvIGZpbGUgYSBidWcgcmVwb3J0IHZpc2l0IDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvcHBibSI+dGhlIENNUyBGb3JnZTwvYT4uPC9saT4NCjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyI+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uPC9saT4NCjwvdWw+DQoNCjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPg0KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDA5LCBqZXJlbXlCYXNzIDw8YSBocmVmPSJodHRwOi8vY29yYmVuc3Byb2R1Y3RzLmNvbSI+Y29yYmVuc3Byb2R1Y3RzLmNvbTwvYT4+IEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4NCjxzdHJvbmc+U3VwcG9ydCBtb3JlIG1vZHMgbGlrZSB0aGlzOjwvc3Ryb25nPjxmb3JtIGFjdGlvbj0mcXVvdDtodHRwczovL3d3dy5wYXlwYWwuY29tL2NnaS1iaW4vd2Vic2NyJnF1b3Q7IG1ldGhvZD0mcXVvdDtwb3N0JnF1b3Q7Pg0KPGlucHV0IHR5cGU9JnF1b3Q7aGlkZGVuJnF1b3Q7IG5hbWU9JnF1b3Q7Y21kJnF1b3Q7IHZhbHVlPSZxdW90O19zLXhjbGljayZxdW90Oz4NCjxpbnB1dCB0eXBlPSZxdW90O2hpZGRlbiZxdW90OyBuYW1lPSZxdW90O2hvc3RlZF9idXR0b25faWQmcXVvdDsgdmFsdWU9JnF1b3Q7ODgxNzY3NSZxdW90Oz4NCjxpbnB1dCB0eXBlPSZxdW90O2ltYWdlJnF1b3Q7IHNyYz0mcXVvdDtodHRwczovL3d3dy5wYXlwYWwuY29tL2VuX1VTL2kvYnRuL2J0bl9kb25hdGVfTEcuZ2lmJnF1b3Q7IGJvcmRlcj0mcXVvdDswJnF1b3Q7IG5hbWU9JnF1b3Q7c3VibWl0JnF1b3Q7IGFsdD0mcXVvdDtQYXlQYWwgLSBUaGUgc2FmZXIsIGVhc2llciB3YXkgdG8gcGF5IG9ubGluZSEmcXVvdDs+DQo8aW1nIGFsdD0mcXVvdDsmcXVvdDsgYm9yZGVyPSZxdW90OzAmcXVvdDsgc3JjPSZxdW90O2h0dHBzOi8vd3d3LnBheXBhbC5jb20vZW5fVVMvaS9zY3IvcGl4ZWwuZ2lmJnF1b3Q7IHdpZHRoPSZxdW90OzEmcXVvdDsgaGVpZ2h0PSZxdW90OzEmcXVvdDs+DQo8L2Zvcm0+PGJyLz4NCjxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+DQo8L2RpdiA+PGIgY2xhc3M9JnF1b3Q7cmJvdHRvbSZxdW90Oz48YiBjbGFzcz0mcXVvdDtyNCZxdW90Oz48L2I+PGIgY2xhc3M9JnF1b3Q7cjMmcXVvdDs+PC9iPiA8YiBjbGFzcz0mcXVvdDtyMiZxdW90Oz48L2I+IDxiIGNsYXNzPSZxdW90O3IxJnF1b3Q7PjwvYj48L2I+DQoNCjwvZGl2Pg0KJzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuMzc3NTEwODYzMzg4NDkwMTAwMC4xMjM1MzkxMzYzLjEyNzQxMDkyMzUuMTI3NDEyODY3My41MCc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEyNzMyMjM2NzguMzMuMjAudXRtY3NyPWJsb2cuY21zbWFkZXNpbXBsZS5vcmd8dXRtY2NuPShyZWZlcnJhbCl8dXRtY21kPXJlZmVycmFsfHV0bWNjdD0vMjAxMC8wNS8wMS9hbm5vdW5jaW5nLWNtcy1tYWRlLXNpbXBsZS0xLTctMS1lc2NhZGUvJzsKJGxhbmdbJ3FjYSddID0gJ1AwLTE4NjMxMDk1NC0xMjU3MjQzOTg1MTc3JzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/nb_NO.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ1NjcmlwdCBEZXBsb3knOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdGJm9zbGFzaDtyc3RlIHN0b3BwIGR1IHZpbCBnaiZvc2xhc2g7cmUgbiZhcmluZzsgZXIgaSBIamVscGVzZWtzam9uZW4nOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ1BsZWFzZSBmZWVsIGZyZWUgdG8gbGV0IHVzIGtub3cgaWYgdGhlcmUgaXMgYSB3YXkgdG8gbWFrZSBTY3JpcHREZXBsb3kgYmV0dGVyLCA8YSBocmVmPSJodHRwOi8vaGVscC5jb3JiZW5zcHJvZHVjdHMuY29tL21ha2UtY29udGFjdC5odG1sIj5Db250YWN0IHVzIHdlJiMwMzk7ZXIgaGFwcHkgdG8gaGVhciBmcm9tIHlvdS48L2E+JzsKJGxhbmdbJ3JlYWxseV91bmluc3RhbGwnXSA9ICdVbmluc3RhbGxpbmcgdGhpcyBtb2R1bGUgd2lsbCBub3QgYWZmZWN0IGFueSBldmVudCBkYXRhIGFuZCBhbGwgYm9va3MgdG8gZGF0ZSB3aWxsIHN0aWxsIGJlIHRoZXJlLiBEbyB5b3Ugd2lzaCB0byBjb250aW51ZT8nOwokbGFuZ1sndW5pbnN0YWxsZWQnXSA9ICdNb2R1bGUgVW5pbnN0YWxsZWQuJzsKJGxhbmdbJ2luc3RhbGxlZCddID0gJ01vZHVsZSB2ZXJzaW9uICVzIGluc3RhbGxlZC4nOwokbGFuZ1sndXBncmFkZWQnXSA9ICdNb2R1bGUgdXBncmFkZWQgdG8gdmVyc2lvbiAlcy4nOwokbGFuZ1snQUNUb3B0aW9ucyddID0gJ0RlcGxveW1lbnQgT3B0aW9ucyc7CiRsYW5nWydtYW51YWxhc3NpZ25tZW50J10gPSAnU2NyaXB0IEdyb3VwaW5ncyc7CiRsYW5nWydIVE1Mc2V0dGluZ3MnXSA9ICdIVE1MIERlcGxveW1lbnQnOwokbGFuZ1snVmFsc2V0dGluZ3MnXSA9ICdWYWxpZGF0aW9uIHNldHRpbmdzJzsKJGxhbmdbJ2VuJ10gPSAnRW5nbGlzaCc7CiRsYW5nWydmciddID0gJ0ZyYW4mY2NlZGlsO2FpcyAoRnJlbmNoKSc7CiRsYW5nWydpdCddID0gJ0l0YWxpYW5vIChJdGFsaWFuKSc7CiRsYW5nWydrbyddID0gJ0tvcmVhbic7CiRsYW5nWydqYSddID0gJ0phcGFuZXNlJzsKJGxhbmdbJ2VzJ10gPSAnRXNwYSZudGlsZGU7b2wgKFNwYW5pc2gpJzsKJGxhbmdbJ3poLWNuJ10gPSAnQ2hpbmVzZSc7CiRsYW5nWydubCddID0gJ05lZGVybGFuZHMgKER1dGNoKSc7CiRsYW5nWydkZSddID0gJ0RldXRzY2ggKEdlcm1hbiknOwokbGFuZ1sncGwnXSA9ICdQb2xza2kgKFBvbGlzaCknOwokbGFuZ1sncm8nXSA9ICdSb21hbmlhbic7CiRsYW5nWydjcyddID0gJyZFZ3JhdmU7ZSZzY2Fyb247dGluYSc7CiRsYW5nWydiZyddID0gJ0J1bGdhcmlhJzsKJGxhbmdbJ3N2J10gPSAnU3ZlbnNrYSc7CiRsYW5nWydmYSddID0gJ1BlcnNpYW4gKEZhcnNpKSc7CiRsYW5nWydydSddID0gJ1J1c3NpYW4gJzsKJGxhbmdbJ3B0LUJSJ10gPSAnIEJyYXppbGxpYW4gUG9ydHVndWVzZSAoc3RhbmRhcmQpJzsKJGxhbmdbJ0xub25lJ10gPSAnTm8gV2FybmluZ3MnOwokbGFuZ1snTDAnXSA9ICdMZXZlbCAwJzsKJGxhbmdbJ0wxJ10gPSAnTGV2ZWwgMSc7CiRsYW5nWydMMiddID0gJ0xldmVsIDInOwokbGFuZ1snY3NzMSddID0gJ0NTUyAxJzsKJGxhbmdbJ2NzczInXSA9ICdDU1MgMic7CiRsYW5nWydjc3MyMSddID0gJ0NTUyAyLjEnOwokbGFuZ1snY3NzMyddID0gJ0NTUyAzJzsKJGxhbmdbJ3N2ZyddID0gJ1NWRyc7CiRsYW5nWydzdmdiYXNpYyddID0gJ1NWRyBiYXNpYyc7CiRsYW5nWydzdmd0aW55J10gPSAnU1ZHIHRpbnknOwokbGFuZ1snbW9iaWxlJ10gPSAnbW9iaWxlJzsKJGxhbmdbJ2F0c2MtdHYnXSA9ICdhdHNjLXR2JzsKJGxhbmdbJ3R2J10gPSAnSW50ZW5kZWQgZm9yIHRlbGV2aXNpb24tdHlwZSBkZXZpY2VzLic7CiRsYW5nWydub25lJ10gPSAnbm9uZSc7CiRsYW5nWydzYXZlVkFMc2V0dGluZ3MnXSA9ICdTYXZlIFZhbGlkYXRpb24gU2V0dGluZ3MnOwokbGFuZ1snc2V0dGluZ3MnXSA9ICdTZXR0aW5ncyc7CiRsYW5nWydzZXR0aW5nc3NhdmVkJ10gPSAnVGhlIHNldHRpbmdzIHdhcyBzYXZlZCc7CiRsYW5nWydsZWF2ZWNvZGUnXSA9ICdEbyBub3QgdG91Y2ggY29kZSc7CiRsYW5nWydmb3JtYXRjb2RlJ10gPSAnRm9ybWF0IHRoZSBjb2RlIG5pY2VseSc7CiRsYW5nWydzY3JhbWJsZWNvZGUnXSA9ICdTY3JhbWJsZSB0aGUgY29kZSc7CiRsYW5nWydjbGVhbmNvZGUnXSA9ICdDbGVhbiB1cCB0aGUgY29kZSByZW1vdmluZyBzdHVmZiB0aGF0IGRvZXNuJiMwMzk7dCBtYXR0ZXInOwokbGFuZ1snc2F2ZXNldHRpbmdzJ10gPSAnU2F2ZSBzZXR0aW5ncyc7CiRsYW5nWydtYW5nbGV0eXBldGV4dCddID0gJ0hvdyB0byBmb3JtYXQgdGhlIGNvZGUnOwokbGFuZ1snYnJpZWYnXSA9ICdCcmllZic7CiRsYW5nWyd2ZXJib3NlJ10gPSAnVmVyYm9zZSc7CiRsYW5nWydjb2RlZml4ZXMnXSA9ICdDb2RlIGZpeGVzJzsKJGxhbmdbJ2ZvcmNlbG93ZXJ0YWdzdGV4dCddID0gJ0ZvcmNlIHRhZ3MgdG8gbG93ZXJjYXNlJzsKJGxhbmdbJ2ZvcmNlbG93ZXJ0YWdzaGVscCddID0gJ0ZvciBiZXR0ZXIgWEhUTUwtY29tcGF0aWJpbGl0eSc7CiRsYW5nWydoaWRlbWVzc2FnZXN0ZXh0J10gPSAnSGlkZSBtZXNzYWdlcyBpbiBib3R0b20gb2YgKHgpaHRtbC1jb2RlJzsKJGxhbmdbJ2luZGVudHdpZHRodGV4dCddID0gJ1dpZHRoIG9mIGluZGVudGF0aW9uJzsKJGxhbmdbJ3NwYWNlcyddID0gJ1NwYWNlcyc7CiRsYW5nWydkZWJ1Z2xldmVsdGV4dCddID0gJ0Ftb3VudCBvZiBkZWJ1Z2dpbmcgb3V0cHV0OiAnOwokbGFuZ1snZGVidWd0ZXh0J10gPSAnQ29kZSBkZWJ1ZyBtb2RlJzsKJGxhbmdbJ1NjcmlwdF9saXN0J10gPSAnU2NyaXB0cyc7CiRsYW5nWydBc3NfaGVhZGVyJ10gPSAnVW5pZmllZCBTY3JpcHRzJzsKJGxhbmdbJ1NhbXBsZVRhZyddID0gJ1NhbXBsZSBUYWcnOwokbGFuZ1sncHJvbXB0X25ld1NjcmlwdCddID0gJ0FkZCBOZXcgU2NyaXB0JzsKJGxhbmdbJ3Byb21wdF9uZXdTY3JpcHRBc3MnXSA9ICdBZGQgTmV3IFNjcmlwdCBBc3NpZ25tZW50JzsKJGxhbmdbJ3RpdGxlX0dyb3VwcyddID0gJ1NjcmlwdCBHcm91cHMgTGlzdCc7CiRsYW5nWyd0aXRsZV9TY3JpcHRzJ10gPSAnU2luZ2xlIFNjcmlwdHMgTGlzdCc7CiRsYW5nWydhcmV5b3VzdXJlJ10gPSAnSW1wb3J0YW50OlxuXG5JZiB0aGlzIGlzIGRlbGV0ZWQgYWxsIGluZm9ybWF0aW9uIHdpbGwgYmUgbG9zdCFcblxuSWYgeW91IGhhdmUgdGhpcyBzY3JpcHQgaW4gYSBncm91cCB5b3Ugd2lsbCBicmVhayB0aGUgdGllIGFuZCB3aWxsIG5lZWQgdG8gZWRpdCB0aGUgZ3JvdXAuXG5JdCBpcyBiZXN0IHRvIHN0YXJ0IHRoZSBkZWxldGlvbiBwcm9jZXNzIGZyb20gdGhlIEFzc2lnbm1lbnQgYXJlYS5cblxuWU9VIEFMU08gTE9TRSBZT1VSIFJFVklTSU9OIEhJU1RPUlkgRk9SIFRISVMgU0NSSVBULi4gQVJFIFlPVSBSRUFMWSBTVVJFPz8/JzsKJGxhbmdbJ3NtYXJ0eUhvdyddID0gJ1RoZSBzbWFydHkgd29ya3MgbGlrZSB0aGlzLi4uIFdoZXJlIHlvdSYjMDM5O2QgaGF2ZSB7JHNtYXJ0eS5ub3d9IHlvdSBkbyB7eyRzbWFydHkubm93fX0gIC4gIE5vdyB5b3UgY2FuIGRvIHNtYXJ0eSBzdHVmZic7CiRsYW5nWydhbGwnXSA9ICdTdWl0YWJsZSBmb3IgYWxsIGRldmljZXMuJzsKJGxhbmdbJ2F1cmFsJ10gPSAnIEludGVuZGVkIGZvciBzcGVlY2ggc3ludGhlc2l6ZXJzLic7CiRsYW5nWydicmFpbGxlJ10gPSAnSW50ZW5kZWQgZm9yIGJyYWlsbGUgdGFjdGlsZSBmZWVkYmFjayBkZXZpY2VzLic7CiRsYW5nWydlbWJvc3NlZCddID0gJ0ludGVuZGVkIGZvciBwYWdlZCBicmFpbGxlIHByaW50ZXJzLic7CiRsYW5nWydoYW5kaGVsZCddID0gJ0ludGVuZGVkIGZvciBoYW5kaGVsZCBkZXZpY2VzJzsKJGxhbmdbJ3ByaW50J10gPSAnSW50ZW5kZWQgZm9yIHBhZ2VkLCBvcGFxdWUgbWF0ZXJpYWwgYW5kIGZvciBkb2N1bWVudHMgdmlld2VkIG9uIHNjcmVlbiBpbiBwcmludCBwcmV2aWV3IG1vZGUuJzsKJGxhbmdbJ3Byb2plY3Rpb24nXSA9ICcgSW50ZW5kZWQgZm9yIHByb2plY3RlZCBwcmVzZW50YXRpb25zLCBmb3IgZXhhbXBsZSBwcm9qZWN0b3JzIG9yIHByaW50IHRvIHRyYW5zcGFyZW5jaWVzLic7CiRsYW5nWydzY3JlZW4nXSA9ICdJbnRlbmRlZCBwcmltYXJpbHkgZm9yIGNvbG9yIGNvbXB1dGVyIHNjcmVlbnMuJzsKJGxhbmdbJ3R0eSddID0gJ0ludGVuZGVkIGZvciBtZWRpYSB1c2luZyBhIGZpeGVkLXBpdGNoIGNoYXJhY3RlciBncmlkLCBzdWNoIGFzIHRlbGV0eXBlcyBhbmQgdGVybWluYWxzLic7CiRsYW5nWydNZWRpYVR5cGUnXSA9ICdhbGwgOiBTdWl0YWJsZSBmb3IgYWxsIGRldmljZXMuPGJyLz4NCmF1cmFsIDogSW50ZW5kZWQgZm9yIHNwZWVjaCBzeW50aGVzaXplcnMuPGJyLz4NCmJyYWlsbGUgOiBJbnRlbmRlZCBmb3IgYnJhaWxsZSB0YWN0aWxlIGZlZWRiYWNrIGRldmljZXMuPGJyLz4NCmVtYm9zc2VkIDogSW50ZW5kZWQgZm9yIHBhZ2VkIGJyYWlsbGUgcHJpbnRlcnMuPGJyLz4NCmhhbmRoZWxkIDogSW50ZW5kZWQgZm9yIGhhbmRoZWxkIGRldmljZXM8YnIvPg0KcHJpbnQgOiBJbnRlbmRlZCBmb3IgcGFnZWQsIG9wYXF1ZSBtYXRlcmlhbCBhbmQgZm9yIGRvY3VtZW50cyB2aWV3ZWQgb24gc2NyZWVuIGluIHByaW50IHByZXZpZXcgbW9kZS48YnIvPg0KcHJvamVjdGlvbiA6IEludGVuZGVkIGZvciBwcm9qZWN0ZWQgcHJlc2VudGF0aW9ucywgZm9yIGV4YW1wbGUgcHJvamVjdG9ycyBvciBwcmludCB0byB0cmFuc3BhcmVuY2llcy48YnIvPg0Kc2NyZWVuIDogSW50ZW5kZWQgcHJpbWFyaWx5IGZvciBjb2xvciBjb21wdXRlciBzY3JlZW5zLjxici8+DQp0dHkgOiBJbnRlbmRlZCBmb3IgbWVkaWEgdXNpbmcgYSBmaXhlZC1waXRjaCBjaGFyYWN0ZXIgZ3JpZCwgc3VjaCBhcyB0ZWxldHlwZXMgYW5kIHRlcm1pbmFscy48YnIvPg0KdHYgOiBJbnRlbmRlZCBmb3IgdGVsZXZpc2lvbi10eXBlIGRldmljZXMuJzsKJGxhbmdbJ0NhbmNlbGVkJ10gPSAnWW91IENhbmNlbGVkIG91dCBvZiB0aGUgb3BlcmF0aW9uLiAgQW55IFdvcmsgeW91IG1heSBoYXZlIGVudGVyZWQgaGFzIGJlZW4gbG9zdC4nOwokbGFuZ1snQnRuQURERUQnXSA9ICdZb3UgSnVzdCBBZGRlZCBhIG5ldyBTY3JpcHQnOwokbGFuZ1snQnRuRURJVEVEJ10gPSAnWW91IEp1c3QgRWRpdGVkIGFuIGV4aXN0aW5nIFNjcmlwdCc7CiRsYW5nWydCdG5ERUxFVEVEJ10gPSAnWW91IEp1c3QgRGVsZXRlZCBhbiBleGlzdGluZyBTY3JpcHQnOwokbGFuZ1sndHlwZV9sYWJlbCddID0gJ1R5cGUnOwokbGFuZ1sncmV2aXNpb24nXSA9ICdSZXZpc2lvbic7CiRsYW5nWydpc0VkaXQnXSA9ICdpcyBlZGl0aW5nJzsKJGxhbmdbJ2VtdHB5R3JvdXAnXSA9ICdZb3UmIzAzOTtsbCBuZWVkIHRvIGFkZCBhIHNjcmlwdCB0byB0aGUgZ3JvdXAgYmVmb3JlIGNhbGxpbmcgaXQnOwokbGFuZ1snU2NyaXB0U2V0X2xhYmVsJ10gPSAnU2NyaXB0IElEJzsKJGxhbmdbJ3NjcmlwdFR5cGVfbGFiZWwnXSA9ICdTY3JpcHQgVHlwZSc7CiRsYW5nWydTY3JpcHROYW1lX2xhYmVsJ10gPSAnU2NyaXB0IE5hbWUnOwokbGFuZ1snU2luZ2xlQ29kZV9sYWJlbCddID0gJ0RlZmF1bHQgU2luZ2xlIFNjcmlwdCBDYWxsJzsKJGxhbmdbJ0dyb3VwdFNpemVfbGFiZWwnXSA9ICdUb3RhbCc7CiRsYW5nWydub3Rlc19sYWJlbCddID0gJ05vdGVzJzsKJGxhbmdbJ1Nob3dWYWxfbGFibGUnXSA9ICdLZWVwIE1lc3NhZ2VzIE9wZW4nOwokbGFuZ1snVHVybk9OVmFsX2xhYmxlJ10gPSAnVHVybiA8c3Ryb25nPk9OPC9zdHJvbmc+IFZhbGlkYXRpb24nOwokbGFuZ1snaG90TGlua0NoZWNrX2xhYmxlJ10gPSAnRG8gSG90TGluayBDaGVjayc7CiRsYW5nWydUcnVuT25ob3RMaW5rQ2hlY2snXSA9ICdZb3UgbmVlZCB0byB0dXJuIG9uIHRoZSBIb3RMaW5rIENoZWNrJzsKJGxhbmdbJ2ZpbHRlclByb3BfbGFibGUnXSA9ICcgRmlsdGVyIG91dCBwcm9wZXJ0aWVzIHRvIGhlbHAgdmFsaWRhdGUnOwokbGFuZ1snQ1NTcHJvZmlsZV9sYWJsZSddID0gJyBDU1MgUHJvZmlsZSc7CiRsYW5nWyd1c2VybWVkaXVtX2xhYmxlJ10gPSAnIFVzZXIgTWVkaXVtJzsKJGxhbmdbJ1ZBTExhbmdfbGFibGUnXSA9ICcgTGFuZ3VhZ2UnOwokbGFuZ1sndzNjQ1NTd2FybmluZ19sYWJsZSddID0gJyB3M2MgQ1NTIFdhcm5pbmcgTGV2ZWwnOwokbGFuZ1snTWVkaWFUeXBlX2xhYmVsJ10gPSAnTWVkaWFUeXBlJzsKJGxhbmdbJ01pbmlmeV9sYWJlbCddID0gJ01pbmlmeSBvbiBPdXRwdXQnOwokbGFuZ1snQ3JlYXRpb25EYXRlX2xhYmVsJ10gPSAnQ3JlYXRpb24gRGF0ZSc7CiRsYW5nWydNb2RpZmVkRGF0ZV9sYWJlbCddID0gJ01vZGlmaWVkIERhdGUnOwokbGFuZ1sncGF0aE9wdGlvbl9sYWJlbCddID0gJ1VzZSBhIHBhdGg8ZW0+KHVzZSAmcXVvdDsvdXBsb2Fkcy8uLi4mcXVvdDspPC9lbT4nOwokbGFuZ1sncm9vdFVSTE9wdGlvbl9sYWJlbCddID0gJ1VzZSBhIHNwZWNpZmljIHJvb3QgVVJMPGVtPih1c2Ugc2NoZW1hICZxdW90O2h0dHBzOi8vc3ViLmRvbWFpbi50bGQvJnF1b3Q7KTwvZW0+JzsKJGxhbmdbJ0dyb290VVJMJ10gPSAnR2xvYmFsIFNjcmlwdCBSb290IFVSTCc7CiRsYW5nWydlbXB0eWNhY2hlRXJyb3JfZG9BRFVJVCddID0gJ2ZhaWxlZCB0byBlbXB0eSB0aGUgY2FjaGUgYXQnOwokbGFuZ1snZW1wdGllZENhY2hfZG9BRFVJVCddID0gJ2VtcHRpZWQgdGhlIHNjcmlwdCBjYWNoZSc7CiRsYW5nWydjbGVhcmVkUmV2aXNpb25fZG9BRFVJVCddID0gJ2NsZWFyZWQgdGhlIHJldmlzaW9uIGhpc3RvcnkgZm9yJzsKJGxhbmdbJ0NoZWNrZWRPdXRfZG9BRFVJVCddID0gJ0NoZWNrZWQgb3V0IHNjcmlwdCAnOwokbGFuZ1sncmVsZWFzZWRfZG9BRFVJVCddID0gJ3JlbGVhc2VkIHNjcmlwdCAnOwokbGFuZ1snU2NyaXB0SXNfbGFiZWwnXSA9ICdVc2UgdGhpcyBzY3JpcHQgPGVtPihOb3RlOiBJZiBhIHBhdGggaXMgc2V0LCBpdCB3aWxsIG92ZXIgcmlkZSB0aGlzKTwvZW0+JzsKJGxhbmdbJ2RlYnVnSVRfbGFiZWwnXSA9ICdkZWJ1Z0lUJzsKJGxhbmdbJ2RlYnVnSVRub3RlX2xhYmVsJ10gPSAnPGVtPihNdXN0IGhhdmUgRmlyZXBocCBtb2QpPC9lbT4nOwokbGFuZ1snZGVidWdUJ10gPSAnRGVidWdpbmcgT3B0aW9ucyc7CiRsYW5nWydFZGl0SGlzdG9yeSddID0gJ1VzZXIgSGlzdG9yeSBFZGl0aW5nJzsKJGxhbmdbJ25vbmVJblR5cGUnXSA9ICc8aDE+WW91IG11c3QgZmlyc3QgYWRkIDxici8+YSBzY3JpcHQgaW4gdGhpcyB0eXBlPC9oMT4nOwokbGFuZ1sncmV2aXNpb25UaXRsZSddID0gJ1JldmlzaW9uIEhpc3RvcnknOwokbGFuZ1sncmV2aXNpb25fbGFiZWwnXSA9ICc8c3Ryb25nPlR1cm4gb24gdGhlIHJldmlzaW9uIGhpc3Rvcnk8L3N0cm9uZz4nOwokbGFuZ1sncmV2aXNpb25fb3AnXSA9ICc8aDE+UmV2aXNpb248L2gxPg0KPGgzPlR1cm5pbmcgdGhpcyBvZmYgZG9lcyBub3QgY2xlYXIgdGhlIGhpc3RvcnkgaWYgaXQgd2FzIG9uIGJlZm9yZS4gIExpa2UgaXQgdG8gcGF1c2UuPC9oMz4nOwokbGFuZ1sncmV2aXNpb25fTElNSVRfbGFiZWwnXSA9ICdTZXQgUmV2aXNpb24gTElNSVQnOwokbGFuZ1snY2xlYXJSZXYnXSA9ICdDbGVhciBIaXN0b3J5JzsKJGxhbmdbJ3ByZWxvYWRfQ1NTaW1hZ2VUaXRsZSddID0gJ1ByZWxvYWQgQ3NzIEltYWdlcyc7CiRsYW5nWydwcmVsb2FkX0NTU2ltYWdlX2xhYmVsJ10gPSAnPHN0cm9uZz5UdXJuIG9uIFByZWxvYWRlZCBDc3MgSW1hZ2VzPC9zdHJvbmc+JzsKJGxhbmdbJ3ByZWxvYWRfQ1NTaW1hZ2UnXSA9ICc8aDE+UHJlbG9hZCBDc3MgSW1hZ2VzPC9oMT4NCjxoMz5JZiB5b3UgaGF2ZSB5b3VyIHN5c3RlbSBhbGwgc2V0IHVwIHJpZ2h0LCB0aGlzIHdpbGwgaGVscCB5b3UgZ2V0IGEgZmFzdCBwYXJhbGxlbCBkb3duIGxvYWQgb2YgYWxsIGVsZW1lbnRzLjwvaDM+JzsKJGxhbmdbJ2dsb2JhbHVybCddID0gJzxoMT5TZXQgdGhlIHJvb3QgVVJMPC9oMT4NCjxoMz5Vc2VkIGZvciB3aGVuIHlvdSBuZWVkIFNTTCBzdXBwb3J0IG9yIHdhbnQgdG8gcHVzaCB0aGUgc2NyaXB0cyB0byBhIHN1YmRvbWFpbiB0byBsb3NlIHRoZSBuZWVkbGVzIGNvb2tpZXMuPC9oMz4nOwokbGFuZ1snc21hcnR5T25fbGFiZWwnXSA9ICc8c3Ryb25nPlByb2Nlc3MgU21hcnR5PC9zdHJvbmc+PGJyLz4gZGF0YSBpbiBidXR0b24gZmllbGRzJzsKJGxhbmdbJ3NtYXJ0eU9uJ10gPSAnPGgxPlByb2Nlc3MgU21hcnR5IGRhdGE8L2gxPg0KPGgzPldpdGggdGhpcyB0dXJuZWQgb24geW91IGNhbiBzZXQgdGhlIGJ1dHRvbiBmaWVsZHMgd2l0aCB0aGUgdmFsdWVzIHBhc3NlZCBieSBvdGhlciBtb2R1bGVzIHN1Y2ggYXMgUHJvZHVjdHMgb3IgQ2F0YWxvZ2VyPC9oMz4nOwokbGFuZ1snZmlsZVRpbWVfY3NzX3VybHNfbGFiZWwnXSA9ICc8c3Ryb25nPmhlbHAgYnJlYWsgYSBjbGllbnQgc2lkZSBjYWNoZTwvc3Ryb25nPic7CiRsYW5nWydmaWxlVGltZV9jc3NfdXJscyddID0gJzxoMT5oZWxwIGJyZWFrIGEgY2xpZW50IHNpZGUgY2FjaGU8L2gxPg0KPGgzPlRoaXMgaXMgZG9uZSBieSBhZGRpbmcgYSBmaWxlIGNyZWF0aW9uIHRpbWUgYXQgdGhlIGVuZCBvZiBhIGZpbGUuICBUdXJuaW5nIHRoaXMgb24gd2lsbCBhZGQgdGhpcyB0byBhbGwgbG9jYWwgdXJscy4gKENTUyBvbmx5IGF0bSkgLU5vdGhpbmcgaXMgZG9uZSB0byBob3RsaW5rczwvaDM+JzsKJGxhbmdbJ2VkaXQnXSA9ICdFZGl0JzsKJGxhbmdbJ2RlbGV0ZSddID0gJ0RlbGV0ZSc7CiRsYW5nWydDbG9zZSddID0gJ0Nsb3NlJzsKJGxhbmdbJ09wZW4nXSA9ICdPcGVuJzsKJGxhbmdbJ2RpckVtcHR5J10gPSAnVGhlIGZvbGRlciB3YXMgZW1wdHknOwokbGFuZ1snY2xlYW5UZW1wJ10gPSAnQ2xlYW4gdGhlIHRlbXA/JzsKJGxhbmdbJ3VyVGVtcFBhdGgnXSA9ICdZb3VyIGNhY2hlIHBhdGggaXMnOwokbGFuZ1snTGFzdE1vZCddID0gJ0xhc3QgTW9kaWZpZWQnOwokbGFuZ1snY2FjaGVGZXJyb3InXSA9ICdTY3JpcHREZXBsb3kgY291bGQgbm90IG1ha2UgdGhlIGNhY2hlIGZvbGRlciwgY2hlY2sgeW91ciBmaWxlIHBlcm1pc3Npb25zIGZvciB0aGUgVXBsb2FkcyBhcmVhLic7CiRsYW5nWydOYW1lJ10gPSAnTmFtZSc7CiRsYW5nWydQcm9jY2Vzc2luZyddID0gJ1Byb2Nlc3NpbmcnOwokbGFuZ1snU2F2ZWQnXSA9ICdTYXZlZCc7CiRsYW5nWydEb25lJ10gPSAnRG9uZSc7CiRsYW5nWydWYWxpZGF0aW5nJ10gPSAnVmFsaWRhdGluZyc7CiRsYW5nWydHcm91cHRTZXRfbGFiZWwnXSA9ICdHcm91cCBOYW1lJzsKJGxhbmdbJ0dyb3VwdFR5cGVfbGFiZWwnXSA9ICdUeXBlIG9mIHNjcmlwdHMnOwokbGFuZ1snU2NyaXB0UGlja2VyX2xhYmVsJ10gPSAnU2NyaXB0IFBvb2wnOwokbGFuZ1snTElORSddID0gJ0xJTkUnOwokbGFuZ1snVFlQRSddID0gJ1RZUEUnOwokbGFuZ1snU1VCVFlQRSddID0gJ1NVQlRZUEUnOwokbGFuZ1snU1RSSU5HJ10gPSAnU1RSSU5HJzsKJGxhbmdbJ01FU1NBR0UnXSA9ICdNRVNTQUdFJzsKJGxhbmdbJ0xFVkVMJ10gPSAnTEVWRUwnOwokbGFuZ1snTm90ZXMnXSA9ICdOb3Rlcyc7CiRsYW5nWydXYXJuaW5ncyddID0gJ1dhcm5pbmdzJzsKJGxhbmdbJ0Vycm9ycyddID0gJ0Vycm9ycyc7CiRsYW5nWydoaWRkZW4nXSA9ICdoaWRkZW4nOwokbGFuZ1snU2NyaXB0J10gPSAnU2NyaXB0JzsKJGxhbmdbJ0VVUkxTJ10gPSAnRXh0cmFjdGVkIFVybHMnOwokbGFuZ1snUkNTUyddID0gJ1JlbmRlcmVkIENTUyc7CiRsYW5nWydTQ1NTJ10gPSAnQ1NTIFN0cnVjdHVyZSc7CiRsYW5nWydGQ09OVCddID0gJ0ZpbGUgY29udGVudCc7CiRsYW5nWydpVVJMJ10gPSAnaW1hZ2UgVVJMJzsKJGxhbmdbJ1R5cGUnXSA9ICdUeXBlJzsKJGxhbmdbJ1NpemUnXSA9ICdTaXplJzsKJGxhbmdbJ1N0YXR1cyddID0gJ1N0YXR1cyc7CiRsYW5nWydob3RsaW5rJ10gPSAnPHN0cm9uZz5Ib3RsaW5raW5nOjwvc3Ryb25nPiBhcHBlYXJzICB0byBiZSBhIGhvdGxpbmsuJzsKJGxhbmdbJ0Jyb2tlbmxpbmsnXSA9ICdCcm9rZW4gTGluayc7CiRsYW5nWydOT2Nzc0knXSA9ICdObyBjc3MgaW1hZ2VzJzsKJGxhbmdbJ1llc1ZBbGFzdGVyJ10gPSAnPGgyPllvdSB2YWxpZGF0ZWQhICoqPC9oMj48aW1nIHN0eWxlPSZxdW90O2JvcmRlcjowO3dpZHRoOjg4cHg7aGVpZ2h0OjMxcHgmcXVvdDtzcmM9JnF1b3Q7aHR0cDovL2ppZ3Nhdy53My5vcmcvY3NzLXZhbGlkYXRvci9pbWFnZXMvdmNzcy1ibHVlJnF1b3Q7YWx0PSZxdW90O1ZhbGlkIENTUyEmcXVvdDsgLz48YnIvPiA8c3Ryb25nPioqIHlvdSBhcmUgZmlsdGVyaW5nIGVycm9ycyBhbmQgbWF5IGhhdmUgZmlsdGVyZWQgYSByZWFsIGVycm9yPC9zdHJvbmc+JzsKJGxhbmdbJ1llc1ZBbCddID0gJzxoMj5Zb3UgdmFsaWRhdGVkITwvaDI+PGltZyBzdHlsZT0mcXVvdDtib3JkZXI6MDt3aWR0aDo4OHB4O2hlaWdodDozMXB4JnF1b3Q7c3JjPSZxdW90O2h0dHA6Ly9qaWdzYXcudzMub3JnL2Nzcy12YWxpZGF0b3IvaW1hZ2VzL3Zjc3MtYmx1ZSZxdW90O2FsdD0mcXVvdDtWYWxpZCBDU1MhJnF1b3Q7IC8+JzsKJGxhbmdbJ0NsZWFySW1nJ10gPSAnRGVsZXRlIEN1cnJlbnQgSW1hZ2UnOwokbGFuZ1snRmluaXNoJ10gPSAnRmluaXNoJzsKJGxhbmdbJ3JldmVydCddID0gJ1JldmVydCc7CiRsYW5nWydhcHBseSddID0gJ0FwcGx5JzsKJGxhbmdbJ2NhbmNlbCddID0gJ0NhbmNlbCc7CiRsYW5nWydmb3JtX2NhbmNlbCddID0gJ0NhbmNlbCc7CiRsYW5nWydTYXZlJ10gPSAnU2F2ZSc7CiRsYW5nWydkb25lJ10gPSAnRG9uZSc7CiRsYW5nWydhZGQnXSA9ICdBZGQnOwokbGFuZ1snc3VibWl0J10gPSAnU3VibWl0JzsKJGxhbmdbJ1JFT1JERVInXSA9ICdSZW9yZGVyJzsKJGxhbmdbJ2Zvcm1fc3VibWl0J10gPSAnU2F2ZSBQcmVmZXJlbmNlcyc7CiRsYW5nWydtb2RfcHJlZnNfdGl0bGUnXSA9ICdNb2R1bGUgUHJlZmVyZW5jZXMnOwokbGFuZ1sncHJlZnN1cGRhdGVkJ10gPSAnTW9kdWxlIHByZWZlcmVuY2VzIHVwZGF0ZWQuJzsKJGxhbmdbJ29wdGlvbnN1cGRhdGVkJ10gPSAnb3B0aW9ucyB1cGRhdGVkJzsKJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnU1BFRUQgWU9VUiBTSVRFIFVQIC4uLiEhISEgJmJ1bGw7IE91dHB1dCBkeW5hbWljIEpTIGZpbGVzIGFuZCBDU1MgV0lUSCBzbWFydHkuLi4gJmJ1bGw7IFNldCB0aGUgZmlsZXMgdG8gdXNlIGEgc3ViZG9tYWluLi4uICZidWxsOyBjYWNoZWQuLi4gJmJ1bGw7IG1pbmlmaWVkLi4uICZidWxsOyBEaWQgSSBtZW50aW9uIHlvdSBjYW4gdXNlIHNtYXJ0eSBpbiB5b3VyIEpTIGFuZCBDU1Mgc2NyaXB0ISEhISAtIFNpbXBsZSwgZmxleGlibGUhJzsKJGxhbmdbJ3dlbGNvbWVfdGV4dCddID0gJzxwPkhlbGxvITwvcD4nOwokbGFuZ1snY2hhbmdlbG9nJ10gPSAnPHVsPg0KDQogIDxsaT5WZXJzaW9uIDAuMSBCZXRhIHJlbGVhc2UuPC9saT4NCiAgPGxpPlZlcnNpb24gMC4yIGxvdHMgb2YgY2hhbmdlcyB0byBmaXggYnVnLi4uPC9saT4NCiAgIDxsaT5WZXJzaW9uIDAuMyBzZXQgdGhlIHNtYXJ0eSB0byB1c2Uge3sgfX08L2xpPg0KICAgIDxsaT5WZXJzaW9uIDAuNCBmaXhlZCBidWcuLiBpbXByb3ZlZCB0aGUgbWluaWFmY2F0aW9uIHRvIGEgc2F2ZXMgb2YgdXAgdG8gNjAlPC9saT4NCgk8bGk+VmVyc2lvbiAwLjcuMSBtYW55IGNoYW5nZXMuLi4gPHN0cm9uZz5CUkVBS1MgVVBHUkFERTwvc3Ryb25nPiBDb3B5IHNjcmlwdHMsIGluc3RhbGwgYW5kIHRoZSB1cGxvYWQgYW5kIHJlaW5zdGFsbC4uLiBTb3JyeSBidXQgaXQgd2FzIG5lZWRlZCBmb3IgVkVSU0lPTiBISVNUT1JZIGZpeGVkIGJ1Z3MuLiBtYW55IGltcHJvdmVtZW50czwvbGk+DQo8L3VsPic7CiRsYW5nWydoZWxwJ10gPSAnPGxpbmsgbWVkaWE9JnF1b3Q7c2NyZWVuJnF1b3Q7IGhyZWY9JnF1b3Q7Li4vbW9kdWxlcy9TY3JpcHREZXBsb3kvQ1NTL01hc3RlckNTUy5jc3MmcXVvdDsgdHlwZT0mcXVvdDt0ZXh0L2NzcyZxdW90OyByZWw9JnF1b3Q7c3R5bGVzaGVldCZxdW90Oy8+PGRpdiBjbGFzcz0mcXVvdDtTaW1XcmFwJnF1b3Q7PjxiIGNsYXNzPSZxdW90O3Jib3R0b20mcXVvdDs+PGIgY2xhc3M9JnF1b3Q7cjEmcXVvdDs+PC9iPiA8YiBjbGFzcz0mcXVvdDtyMiZxdW90Oz48L2I+PGIgY2xhc3M9JnF1b3Q7cjMmcXVvdDs+PC9iPiA8YiBjbGFzcz0mcXVvdDtyNCZxdW90Oz48L2I+PC9iPg0KDQo8ZGl2IGNsYXNzPSZxdW90O1NpbWNvbiZxdW90Oz4gPGgzIGNsYXNzPSZxdW90O0JhY2tMaW5rJnF1b3Q7PjxhIG9uY2xpY2s9ImphdmFzY3JpcHQ6d2luZG93Lmhpc3RvcnkuZ28oLTEpIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+JmFtcDtsdDsmYW1wO2x0OyBCYWNrPC9hPjwvaDM+DQo8aDE+V2hhdCBEb2VzIFRoaXMgRG8/LS0tIHRoaXMgbmVlZHMgdXBkYXRpbmc8L2gxPg0KPGgyPldyaXRlIG1hbmFnZSBhbmQgZGVwbG95IEpTIGFuZCBDU1M8L2gyPg0KPGEgaWQ9IlNjcmlwdERlcGxveSI+PC9hPg0KPHA+U2NyaXB0RGVwbG95IG1vZHVsZSB0aGF0IGNhbiBjb21iaW5lIG11bHRpcGxlIENTUyBvciBKYXZhc2NyaXB0IGZpbGVzLCBjb21wcmVzcyB0aGVpciBjb250ZW50cyAoaS5lLiByZW1vdmFsIG9mIHVubmVjZXNzYXJ5IHdoaXRlc3BhY2UvY29tbWVudHMpLCBhbmQgc2VydmUgdGhlIHJlc3VsdHMgd2l0aCBIVFRQIGVuY29kaW5nIChnemlwL2RlZmxhdGUpIGFuZCBoZWFkZXJzIHRoYXQgYWxsb3cgb3B0aW1hbCBjbGllbnQtc2lkZSBjYWNoaW5nLiBUaGlzIGhlbHBzIHlvdSBmb2xsb3cgc2V2ZXJhbCBvZiBZYWhvbyEmIzAzOTtzIDxhIGhyZWY9Imh0dHA6Ly9kZXZlbG9wZXIueWFob28uY29tL3BlcmZvcm1hbmNlL2luZGV4Lmh0bWwjcnVsZXMiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5SdWxlcyBmb3IgSGlnaCBQZXJmb3JtYW5jZSBXZWIgU2l0ZXM8L2E+LiAoU2VlICZhbXA7cXVvdDtQcm9ibGVtIERvbWFpbiZhbXA7cXVvdDsgYmVsb3cgZm9yIG1vcmUgaW5mby4pIDwvcD4NCjxoMz5UaGUgU2hvcnQgb2YgaXQ8L2gzPg0KPHA+V2lydGUgeW91ciBzY3JpcHRzLCBzZXQgdGhlIG9yZGVyIGFuZCBTY3JpcHREZXBsb3kgd2lsbCBkbyB0aGUgcmVzdCE8L3A+DQo8dGFibGU+DQogIDx0Ym9keT4NCiAgICA8dHI+DQogICAgICA8dGQgc3R5bGU9JnF1b3Q7Qk9SREVSLVJJR0hUOiAjYWFhIDFweCBzb2xpZDsgUEFERElORy1SSUdIVDogNXB4OyBCT1JERVItVE9QOiAjYWFhIDFweCBzb2xpZDsgUEFERElORy1MRUZUOiA1cHg7IFBBRERJTkctQk9UVE9NOiA1cHg7IEJPUkRFUi1MRUZUOiAjYWFhIDFweCBzb2xpZDsgUEFERElORy1UT1A6IDVweDsgQk9SREVSLUJPVFRPTTogI2FhYSAxcHggc29saWQmcXVvdDs+PHN0cm9uZz5CZWZvcmU8L3N0cm9uZz48L3RkPg0KICAgICAgPHRkIHN0eWxlPSZxdW90O0JPUkRFUi1SSUdIVDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctUklHSFQ6IDVweDsgQk9SREVSLVRPUDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctTEVGVDogNXB4OyBQQURESU5HLUJPVFRPTTogNXB4OyBCT1JERVItTEVGVDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctVE9QOiA1cHg7IEJPUkRFUi1CT1RUT006ICNhYWEgMXB4IHNvbGlkJnF1b3Q7PjxpbWcgc3JjPSZxdW90O2h0dHA6Ly9tcmNsYXkub3JnL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDA4LzA5L2ZpZGRsZXJfYmVmb3JlLnBuZyZxdW90OyBhbHQ9JnF1b3Q7YWZ0ZXImcXVvdDsgLz48L3RkPg0KICAgIDwvdHI+DQogICAgPHRyPg0KICAgICAgPHRkIHN0eWxlPSZxdW90O0JPUkRFUi1SSUdIVDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctUklHSFQ6IDVweDsgQk9SREVSLVRPUDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctTEVGVDogNXB4OyBQQURESU5HLUJPVFRPTTogNXB4OyBCT1JERVItTEVGVDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctVE9QOiA1cHg7IEJPUkRFUi1CT1RUT006ICNhYWEgMXB4IHNvbGlkJnF1b3Q7PjxzdHJvbmc+QWZ0ZXI8L3N0cm9uZz48L3RkPg0KICAgICAgPHRkIHN0eWxlPSZxdW90O0JPUkRFUi1SSUdIVDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctUklHSFQ6IDVweDsgQk9SREVSLVRPUDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctTEVGVDogNXB4OyBQQURESU5HLUJPVFRPTTogNXB4OyBCT1JERVItTEVGVDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctVE9QOiA1cHg7IEJPUkRFUi1CT1RUT006ICNhYWEgMXB4IHNvbGlkJnF1b3Q7PjxpbWcgc3JjPSZxdW90O2h0dHA6Ly9tcmNsYXkub3JnL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDA4LzA5L2ZpZGRsZXJfYWZ0ZXIucG5nJnF1b3Q7IGFsdD0mcXVvdDtiZWZvcmUmcXVvdDsgLz48L3RkPg0KICAgIDwvdHI+DQogIDwvdGJvZHk+DQo8L3RhYmxlPg0KDQoNCg0KPGgyPjxhIGlkPSJGZWF0dXJlcyI+PC9hPkZlYXR1cmVzPC9oMj4NCjx1bD4NCiAgPGxpPkNvbWJpbmVzIGFuZCBtaW5pZmllcyBtdWx0aXBsZSBDU1Mgb3IgSmF2YVNjcmlwdCBmaWxlcyBpbnRvIGEgc2luZ2xlICAgZG93bmxvYWQgPC9saT4NCiAgPGxpPlVzZXMgYW4gPGEgaHJlZj0iaHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL21pbmlmeS9zb3VyY2UvYnJvd3NlL3RydW5rL21pbi9saWIvSlNNaW4ucGhwIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+ZW5oYW5jZWQgcG9ydDwvYT4gb2YgRG91Z2xhcyBDcm9ja2ZvcmQmIzAzOTtzIDxhIGhyZWY9Imh0dHA6Ly93d3cuY3JvY2tmb3JkLmNvbS9qYXZhc2NyaXB0L2pzbWluLmh0bWwiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5KU01pbiAgIGxpYnJhcnk8L2E+IGFuZCBjdXN0b20gY2xhc3NlcyB0byBtaW5pZnkgPGEgaHJlZj0iaHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL21pbmlmeS9zb3VyY2UvYnJvd3NlL3RydW5rL21pbi9saWIvTWluaWZ5L0NTUy5waHAiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5DU1M8L2E+IGFuZCA8YSBocmVmPSJodHRwOi8vY29kZS5nb29nbGUuY29tL3AvbWluaWZ5L3NvdXJjZS9icm93c2UvdHJ1bmsvbWluL2xpYi9NaW5pZnkvSFRNTC5waHAiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5IVE1MPC9hPjwvbGk+DQogIDxsaT5DYWNoZXMgc2VydmVyLXNpZGUgdG8gYXZvaWQgZG9pbmcgdW5uZWNlc3Nhcnkgd29yayA8L2xpPg0KICA8bGk+UmVzcG9uZHMgd2l0aCBhbiBIVFRQIDMwNCAoTm90IE1vZGlmaWVkKSByZXNwb25zZSB3aGVuIHRoZSBicm93c2VyIGhhcyBhbiAgIHVwLXRvLWRhdGUgY2FjaGUgY29weSAqKiA8L2xpPg0KICA8bGk+TW9zdCBtb2R1bGVzIGFyZSBsYXp5LWxvYWRlZCBhcyBuZWVkZWQgKDMwNCByZXNwb25zZXMgdXNlIG1pbmltYWwgY29kZSkgICoqIDwvbGk+DQogIDxsaT5BdXRvbWF0aWNhbGx5IHJld3JpdGVzIHJlbGF0aXZlIFVSSXMgaW4gY29tYmluZWQgQ1NTIGZpbGVzIHRvIHBvaW50IHRvIHZhbGlkIGxvY2F0aW9ucyA8L2xpPg0KICA8bGk+V2l0aCBjYWNoaW5nIGVuYWJsZWQsIFNjcmlwdERlcGxveSBpcyBjYXBhYmxlIG9mIGhhbmRsaW5nIGh1bmRyZWRzIG9mIHJlcXVlc3RzIHBlciBzZWNvbmQgb24gYSBtb2RlcmF0ZWx5IHBvd2VyZnVsIHNlcnZlci4gPC9saT4NCiAgPGxpPkNvbnRlbnQtRW5jb2Rpbmc6IGd6aXAsIGJhc2VkIG9uIHJlcXVlc3QgaGVhZGVycy4gQ2FjaGluZyBhbGxvd3MgaXQgc28gc2VydmUgZ3ppcHBlZCBmaWxlcyBmYXN0ZXIgdGhhbiBBcGFjaGUmIzAzOTtzIG1vZF9kZWZsYXRlIG9wdGlvbiEgPC9saT4NCjwvdWw+DQo8aDM+PGVtPjxzdHJvbmc+KiogTm90ZTo8L3N0cm9uZz4gSXQgaXMgYmVzdCB0byB1c2UgYSAuaHRhY2Nlc3Mgc2NyaXB0IHRvIHNldCB0aGUgYWdlIHRpbWVzLiBTY3JpcHREZXBsb3kgaXMgZGVzaWduZWQgZm9yIGVmZmljaWVuY3ksIGJ1dCBmb3IgdmVyeSBoaWdoIHRyYWZmaWMgc2l0ZXMsIFNjcmlwdERlcGxveSBtYXkgc2VydmUgZmlsZXMgc2xvd2VyIHRoYW4geW91ciBIVFRQZCBkdWUgdG8gdGhlIENHSSBvdmVyaGVhZCBvZiBQSFAuICBUbyBvdmVyIGNvbWUgdGhpcyBKdXN0IGNoZWNrICZxdW90O3VzZSAuaHRhY2Nlc3MgaW4gb3B0aW9ucyZxdW90OzwvZW0+PC9oMz4NCjxoMj48YSBuYW1lPSJSZXF1aXJlbWVudHMiPjwvYT5SZXF1aXJlbWVudHM8L2gyPg0KPHVsPg0KICA8bGk+VGhlIGNvbW1vbmx5IGluc3RhbGxlZCA8YSBocmVmPSJodHRwOi8vdXMzLnBocC5uZXQvbWFudWFsL2VuL3psaWIuaW5zdGFsbGF0aW9uLnBocCIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPnpsaWIgICBleHRlbnNpb248L2E+IGlzIHJlY29tbWVuZGVkIGZvciBIVFRQIGVuY29kaW5nIGZ1bmN0aW9uYWxpdHkuIDwvbGk+DQo8L3VsPg0KPGJyLz48YnIvPg0KPGgxPkhvdyBEbyBJIFVzZSBJdDwvaDE+DQoNCg0KPGgzPkdldCBhIHNpbmdsZSBzY3JpcHQ8L2gzPg0KdXNlIDxzcGFuIGNsYXNzPSZxdW90O2NvZGVISUdITElHSFQmcXVvdDs+e2Ntc19tb2R1bGUgbW9kdWxlPVNjcmlwdERlcGxveSBzY3JpcHRJRD0mcXVvdDsxJnF1b3Q7fSA8L3NwYW4+IDxici8+PGJyLz4NCjxoMz5HZXQgYSBzY3JpcHQgZ3JvdXA8L2gzPg0KdXNlIDxzcGFuIGNsYXNzPSZxdW90O2NvZGVISUdITElHSFQmcXVvdDs+e2Ntc19tb2R1bGUgbW9kdWxlPVNjcmlwdERlcGxveSBncm91cElEPSZxdW90OzEmcXVvdDt9IDwvc3Bhbj4gPGJyLz48YnIvPg0KPGgyPkFsbCBvdXRwdXQgaXMgaW4gdGhlIFhIVE1MIGZvcm1hdCwgeW91IHNob3VsZCB3b3JrIGluIHRoYXQuPC9oMj4NCg0KPGJyLz48YnIvPg0KPGg0PlBhcmFtczwvaDQ+DQo8dWw+DQo8bGk+PHN0cm9uZz5zY3JpcHRJRD0mcXVvdDsmcXVvdDsgPC9zdHJvbmc+PGVtPihSZXF1aXJlZC9vcHRpb25hbCk8L2VtPiA8YnIvPnwgc2V0IHRoZSBJRCBSZXF1aXJlZCBvbmx5IGlmIGdyb3VwSUQgbm90IGNhbGxlZDxici8+PC9saT4NCjxsaT48c3Ryb25nPmdyb3VwSUQ9JnF1b3Q7JnF1b3Q7IDwvc3Ryb25nPjxlbT4oUmVxdWlyZWQvb3B0aW9uYWwpPC9lbT4gPGJyLz58IHNldCB0aGUgSUQgUmVxdWlyZWQgb25seSBpZiBzY3JpcHRJRCBub3QgY2FsbGVkPGJyLz48L2xpPg0KPGxpPjxzdHJvbmc+U3R5cGU9JnF1b3Q7JnF1b3Q7IDwvc3Ryb25nPjxlbT4oUmVxdWlyZWQvKSBKUy9DU1M8L2VtPiA8YnIvPnwgc2V0IHRoZSBJRCBSZXF1aXJlZCBvbmx5IGlmIHNjcmlwdElEIG5vdCBjYWxsZWQ8YnIvPjwvbGk+DQoNCjxsaT48c3Ryb25nPlNtYXJ0eU9uPSZxdW90OyZxdW90OyA8L3N0cm9uZz48ZW0+KG9wdGlvbmFsKSB0cnVlL2ZhbHNlIDxzdHJvbmc+RGVmYXVsdDpudWxsPC9zdHJvbmc+PC9lbT4gPGJyLz58IFRoaXMgbGV0cyB5b3Ugb3ZlciByaWRlIHRoZSBnbG9ibGVzPGJyLz48L2xpPg0KPGxpPjxzdHJvbmc+TWluaWZ5PSZxdW90OyZxdW90OyA8L3N0cm9uZz48ZW0+KG9wdGlvbmFsKSB0cnVlL2ZhbHNlIDxzdHJvbmc+RGVmYXVsdDp0cnVlPC9zdHJvbmc+PC9lbT4gPGJyLz58ICBUaGlzIGxldHMgeW91IG92ZXIgcmlkZSB0aGUgZ2xvYmxlczxici8+PC9saT4NCg0KDQoNCg0KDQoNCjxsaT48c3Ryb25nPk1lZGlhVHlwZT0mcXVvdDsmcXVvdDsgPC9zdHJvbmc+PGVtPihvcHRpb25hbCk8L2VtPiA8YnIvPnwgc2V0IE1lZGlhIHR5cGUgZm9yIENTUyBmaWxlcyBoZXJlLi4uIG92ZXJyaWRlcyBkYiBzZXRpbmdzLjxici8+PC9saT4NCjxsaT48c3Ryb25nPmltcG9ydD0mcXVvdDsmcXVvdDsgPC9zdHJvbmc+PGVtPihvcHRpb25hbCkgdHJ1ZS9mYWxzZTwvZW0+IDxici8+fCBzZXQgdGhlIGluY2x1c2lvbiBzdHlsZSBmb3IgQ1NTIGZpbGVzIGhlcmUuLi4gb3ZlcnJpZGVzIGRiIHNldGluZ3MuIEV4OiB0cnVlICBnaXZlcyA8c3R5bGUgdHlwZT1cJnF1b3Q7dGV4dC9jc3NcJnF1b3Q7PkBpbXBvcnQgdXJsKCZxdW90O3VybC9jc3NmaWxlLmNzcyZxdW90Oykgc2NyZWVuOzwvc3R5bGU+PGJyLz48L2xpPg0KDQo8bGk+PHN0cm9uZz5jYWNoZUJ1c3Rlcjwvc3Ryb25nPiA8ZW0+KG9wdGlvbmFsKSA8c3Ryb25nPkRlZmF1bHQ6ZmFsc2U8L3N0cm9uZz48L2VtPjxici8+fCBUaGlzIGlzIHRvIGluc3RhbnRseSB1bmNhY2hlIGFuIHNjcmlwdCBvbiB0aGUgY2xpZW50IHNpZGUgYWZ0ZXIgYSBuZXcgdXBsb2FkZWQgc2NyaXB0IGlzIGNyZWF0ZWQuLi4gaWU6IDEyLmpzPzEyNTUyMjUwMDcgIDxmb250IGNvbG9yPSZxdW90O3JlZCZxdW90Oz48c3Ryb25nPiggdHJ1ZS9mYWxzZSApPC9zdHJvbmc+PC9mb250PjwvbGk+DQo8bGk+PHN0cm9uZz5hc3NpZ249JnF1b3Q7JnF1b3Q7IDwvc3Ryb25nPjxlbT4ob3B0aW9uYWwpPC9lbT4gPGJyLz58IEFzc2lnbiB0aGUgb3V0cHV0IChyZXR1cm4gdGhlIHNtYXJ0eSBhc3NpZ25tZW50KSAgVXNlIGluIGNvbmp1bmN0aW9uIHdpdGggb3V0IHdpdGhvdXQgVVJMPC9saT4NCjxsaT48c3Ryb25nPmZzaXplPSZxdW90OyZxdW90OyA8L3N0cm9uZz48ZW0+KG9wdGlvbmFsKTwvZW0+IDxici8+fCBnZXQgdGhlIHNpemU8L2xpPg0KPGxpPjxzdHJvbmc+cm9vdFVybD0mcXVvdDsmcXVvdDsgPC9zdHJvbmc+PGVtPihvcHRpb25hbCk8L2VtPiA8YnIvPnwgU2NyaXB0RGVwbG95IGNyZWF0ZXMgYSB0ZW1wIGRpcmVjdG9yIGluIHRoZSB1cGxvYWQgZm9sZGVyLiAgSWYgeW91IG1vdmUgdGhlIHBhdGggdG8gdGhlIHVwbGFvZCB0byBhIHN1YmRvbWFpbiB5b3UgbWF5IGd1aWRlIHRoZSBvdXRwdXQgd2l0aCB0aGlzLjwvbGk+DQogICAgICAgIDx1bCBzdHlsZT0mcXVvdDtsaXN0LXN0eWxlLXBvc2l0aW9uOmluc2lkZTsmcXVvdDs+PGxpPjxzdHJvbmc+RXhhcG1sZTo8L3N0cm9uZz4geW91IGNoYW5nZWQgPENPREU+JGNvbmZpZ1smIzAzOTt1cGxvYWRzX3BhdGgmIzAzOTtdID0gJiMwMzk7L3Zhci93d3cvdmhvc3RzL2RvbWFpbi5vcmcvaHR0cGRvY3MvdXBsb2FkcyYjMDM5Ozs8L0NPREU+IDwvbGk+DQogICAgICAgICAgICA8bGk+PHN0cm9uZz50bzwvc3Ryb25nPiA8Q09ERT4kY29uZmlnWyYjMDM5O3VwbG9hZHNfcGF0aCYjMDM5O10gPSBcL3Zhci93d3cvdmhvc3RzL2RvbWFpbi5vcmcvc3ViZG9tYWlucy9tZWRpYS9odHRwZG9jcy91cGxvYWRzJiMwMzk7OzwvQ09ERT48L2xpPg0KICAgICAgICAgICAgPGxpPm5vdyB0aGUgdXBsb2FkcyB1cmwgd291bGQgbm90IHdvcmsgYXMgaXQgd291bGQgYmUgPHU+aHR0cDovL3d3dy5kb21haW4ub3JnL3VwbG9hZHM8L3U+PC9saT4NCiAgICAgICAgICAgIDxsaT48c3Ryb25nPlNvPC9zdHJvbmc+IGl0IGNhbiBiZSBjaGFuZ2VkIGhlcmUgdG8gPHU+aHR0cDovL21lZGlhLmRvbWFpbi5vcmcvdXBsb2FkczwvdT4gIDxmb250IGNvbG9yPSZxdW90O3JlZCZxdW90Oz48c3Ryb25nPihOT1RFOiB3YXRjaCB5b3VyIC8gKTwvc3Ryb25nPjwvZm9udD48L2xpPg0KICAgICAgICA8L3VsPg0KPGxpPjxzdHJvbmc+VVJMPSZxdW90OyZxdW90OyA8L3N0cm9uZz48ZW0+KG9wdGlvbmFsKTwvZW0+IDxici8+fG91dHB1dHMgdGhlIHVybC48L2xpPg0KDQoNCg0KDQoJCQ0KDQoNCg0KDQoNCg0KDQoNCjwhLS08bGk+PHN0cm9uZz5TYW5kQm94PXRydWUgPC9zdHJvbmc+PGVtPihvcHRpb25hbCk8L2VtPiA8YnIvPnwgZmFsc2U8YnIvPjwvbGk+DQoNCjxsaT48c3Ryb25nPlJVTmFjdGlvbj0mcXVvdDsmcXVvdDsgPC9zdHJvbmc+PGVtPihvcHRpb25hbCk8L2VtPiA8YnIvPnwgVURUPGJyLz58IFVSTCA8ZW0+KC4uL3BsdWdpbnMvZnVuY3Rpb24uZmlsZW5hbWUucGhwKTwvZW0+PGJyLz58ICpNb3JlIGNvbWluZyBTb29uKjxici8+PC9saT4NCjxsaT48c3Ryb25nPkxhbmc9JnF1b3Q7JnF1b3Q7IDwvc3Ryb25nPjxlbT4ob3B0aW9uYWwpPC9lbT4gPGJyLz58IFVzZSBDb3VudHJ5IENvZGVzIFRvIGR5bmFtaWNseSBzZXQgdGhlIGxhbmd1YWdlIG9mIHRoZSBQYXlQYWwgcGFnZTxici8+PC9saT4tLT4NCg0KPC91bD4NCjxici8+DQoNCjxici8+PGJyLz4NCjxoMj48YSBpZD0iUHJvYmxlbV9Eb21haW4iPjwvYT5Qcm9ibGVtIERvbWFpbjwvaDI+DQo8cD5QYWdlcyB0aGF0IHJlZmVyIHRvIG11bHRpcGxlIENTUyBvciBKYXZhU2NyaXB0IGZpbGVzIG9mdGVuIHN1ZmZlciBmcm9tIHNsb3dlciAgIHBhZ2UgbG9hZHMsIGR1ZSB0byB0aGUgYnJvd3NlciByZXF1ZXN0aW5nIGVhY2ggZmlsZSBpbmRpdmlkdWFsbHkuIE1hbnkgYnJvd3NlcnMgICBhbHNvIGFyZSBsaW1pdGVkIHRvIGEgZmV3IHNpbXVsdGFuZW91cyByZXF1ZXN0cyBwZXIgZG9tYWluLiBUaGUgd2FpdCBmb3IgYSAgIHNlcmllcyBvZiByZXF1ZXN0cyBhbmQgdGhlIHRyYW5zZmVyIG9mIHVub3B0aW1pemVkIGZpbGVzIGNhbiBkcmFtYXRpY2FsbHkgcmVkdWNlICAgdGhlIGNsaWVudC1zaWRlIHBlcmZvcm1hbmNlIG9mIHlvdXIgc2l0ZS4gPC9wPg0KPHA+SGVyZSBhcmUgYSBoYW5kZnVsIG9mIFlhaG9vISYjMDM5O3MgYmVzdCBwcmFjdGljZXMgdGhhdCBhcmUgYWRkcmVzc2VkIGJ5IHRoZSB1c2Ugb2YgU2NyaXB0RGVwbG95LiA8L3A+DQo8dWw+DQogIDxsaT48YSBocmVmPSJodHRwOi8vZGV2ZWxvcGVyLnlhaG9vLmNvbS9wZXJmb3JtYW5jZS9ydWxlcy5odG1sI251bV9odHRwIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+TWFrZSBGZXdlciBIVFRQIFJlcXVlc3RzPC9hPjwvbGk+DQogIDxsaT48YSBocmVmPSJodHRwOi8vZGV2ZWxvcGVyLnlhaG9vLmNvbS9wZXJmb3JtYW5jZS9ydWxlcy5odG1sI2V4cGlyZXMiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5BZGQgYW4gRXhwaXJlcyBvciBhIENhY2hlLUNvbnRyb2wgSGVhZGVyPC9hPjwvbGk+DQogIDxsaT48YSBocmVmPSJodHRwOi8vZGV2ZWxvcGVyLnlhaG9vLmNvbS9wZXJmb3JtYW5jZS9ydWxlcy5odG1sI2d6aXAiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5HemlwIENvbXBvbmVudHM8L2E+PC9saT4NCiAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9kZXZlbG9wZXIueWFob28uY29tL3BlcmZvcm1hbmNlL3J1bGVzLmh0bWwjbWluaWZ5IiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+TWluaWZ5IEphdmFTY3JpcHQgYW5kIENTUzwvYT48L2xpPg0KICA8bGk+PGEgaHJlZj0iaHR0cDovL2RldmVsb3Blci55YWhvby5jb20vcGVyZm9ybWFuY2UvcnVsZXMuaHRtbCNldGFncyIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPkNvbmZpZ3VyZSBFVGFnczwvYT48L2xpPg0KICA8bGk+PGEgaHJlZj0iaHR0cDovL2RldmVsb3Blci55YWhvby5jb20vcGVyZm9ybWFuY2UvcnVsZXMuaHRtbCN1bmRlcjI1IiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+S2VlcCBDb21wb25lbnRzIHVuZGVyIDI1SzwvYT48L2xpPg0KPC91bD4NCjxoMz48YSBuYW1lPSJBY2tub3dsZWRnbWVudHMiPjwvYT5BY2tub3dsZWRnbWVudHM8L2gzPg0KPHA+TWluaWZ5IHdhcyBpbnNwaXJlZCBieSA8YSBocmVmPSJodHRwOi8vY29kZS5nb29nbGUuY29tL3AvanNjc3Njb21wLyIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPmpzY3NzY29tcDwvYT4gYnkgTWF4aW0gTWFydHlueXVrIGFuZCBieSB0aGUgYXJ0aWNsZSAmIzAzOTs8YSBocmVmPSJodHRwOi8vd3d3Lmh1bmxvY2suY29tL2Jsb2dzL1N1cGVyY2hhcmdlZF9KYXZhc2NyaXB0IiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+U3VwZXJjaGFyZ2VkIEphdmFTY3JpcHQ8L2E+JiMwMzk7IGJ5IFBhdHJpY2sgSHVubG9jay4gPC9wPg0KPHA+VGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuY3JvY2tmb3JkLmNvbS9qYXZhc2NyaXB0L2pzbWluLmh0bWwiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5KU01pbiBsaWJyYXJ5PC9hPiB1c2VkIGZvciBKYXZhU2NyaXB0IG1pbmlmaWNhdGlvbiB3YXMgb3JpZ2luYWxseSAgIHdyaXR0ZW4gYnkgRG91Z2xhcyBDcm9ja2ZvcmQgYW5kIHdhcyA8YSBocmVmPSJodHRwOi8vY29kZS5nb29nbGUuY29tL3AvanNtaW4tcGhwIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+cG9ydGVkIHRvIFBIUDwvYT4gYnkgUnlhbiAgIEdyb3ZlIHNwZWNpZmljYWxseSBmb3IgdXNlIGluIE1pbmlmeS4gPC9wPg0KDQoNCjxoMz5TdXBwb3J0PC9oMz4NCjxoND5TY3JlZW5jYXN0cyBmb3IgZXh0cmEgaGVscCB3aWxsIGZhbGxvdy0tLSBvbiB0aGUgVE9ETzwvaDQ+DQo8cD5UaGlzIG1vZHVsZSBkb2VzIG5vdCBpbmNsdWRlIGNvbW1lcmNpYWwgc3VwcG9ydC4gSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+DQo8dWw+DQo8bGk+Rm9yIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIG1vZHVsZSBvciB0byBmaWxlIGEgYnVnIHJlcG9ydCB2aXNpdCA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL3NjcmlwdGRlcGxveSI+dGhlIENNUyBGb3JnZTwvYT4uPC9saT4NCjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyI+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uPC9saT4NCjwvdWw+DQoNCjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPg0KPHA+Q29weXJpZ2h0ICZhbXA7Y29weTsgMjAwOSwgamVyZW15QmFzcyAmYW1wO2x0OzxhIGhyZWY9Imh0dHA6Ly9jb3JiZW5zcHJvZHVjdHMuY29tIj5jb3JiZW5zcHJvZHVjdHMuY29tPC9hPiZhbXA7Z3Q7IEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4NCjxzdHJvbmc+U3VwcG9ydCBtb3JlIG1vZHMgbGlrZSB0aGlzOjwvc3Ryb25nPjxmb3JtIGFjdGlvbj0mcXVvdDtodHRwczovL3d3dy5wYXlwYWwuY29tL2NnaS1iaW4vd2Vic2NyJnF1b3Q7IG1ldGhvZD0mcXVvdDtwb3N0JnF1b3Q7Pg0KPGlucHV0IHR5cGU9JnF1b3Q7aGlkZGVuJnF1b3Q7IG5hbWU9JnF1b3Q7Y21kJnF1b3Q7IHZhbHVlPSZxdW90O19zLXhjbGljayZxdW90Oz4NCjxpbnB1dCB0eXBlPSZxdW90O2hpZGRlbiZxdW90OyBuYW1lPSZxdW90O2hvc3RlZF9idXR0b25faWQmcXVvdDsgdmFsdWU9JnF1b3Q7ODgxNzY3NSZxdW90Oz4NCjxpbnB1dCB0eXBlPSZxdW90O2ltYWdlJnF1b3Q7IHNyYz0mcXVvdDtodHRwczovL3d3dy5wYXlwYWwuY29tL2VuX1VTL2kvYnRuL2J0bl9kb25hdGVfTEcuZ2lmJnF1b3Q7IGJvcmRlcj0mcXVvdDswJnF1b3Q7IG5hbWU9JnF1b3Q7c3VibWl0JnF1b3Q7IGFsdD0mcXVvdDtQYXlQYWwgLSBUaGUgc2FmZXIsIGVhc2llciB3YXkgdG8gcGF5IG9ubGluZSEmcXVvdDs+DQo8aW1nIGFsdD0mcXVvdDsmcXVvdDsgYm9yZGVyPSZxdW90OzAmcXVvdDsgc3JjPSZxdW90O2h0dHBzOi8vd3d3LnBheXBhbC5jb20vZW5fVVMvaS9zY3IvcGl4ZWwuZ2lmJnF1b3Q7IHdpZHRoPSZxdW90OzEmcXVvdDsgaGVpZ2h0PSZxdW90OzEmcXVvdDs+DQo8L2Zvcm0+PGJyLz4NCjxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+DQo8L2RpdiA+PGIgY2xhc3M9JnF1b3Q7cmJvdHRvbSZxdW90Oz48YiBjbGFzcz0mcXVvdDtyNCZxdW90Oz48L2I+PGIgY2xhc3M9JnF1b3Q7cjMmcXVvdDs+PC9iPiA8YiBjbGFzcz0mcXVvdDtyMiZxdW90Oz48L2I+IDxiIGNsYXNzPSZxdW90O3IxJnF1b3Q7PjwvYj48L2I+DQoNCjwvZGl2Pic7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEyNzMxNTA2OTguMjY5MC41OC51dG1jY249KHJlZmVycmFsKXx1dG1jc3I9Y21zdGVzdDMuaGVsbWluaWtvbi5ub3x1dG1jY3Q9L2FkbWluL2xpc3Rjb250ZW50LnBocHx1dG1jbWQ9cmVmZXJyYWwnOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My4xNzkwNTI2MjMwODQxMTAxMDAuMTIxMDQyMzU3Ny4xMjc0MTIyNDQxLjEyNzQxMzY4OTYuMjc1Mic7CiRsYW5nWydxY2EnXSA9ICcxMjEwOTcxNjkwLTI3MzA4MDczLTgxOTUyODMyJzsKJGxhbmdbJ3V0bWInXSA9ICcxNTY4NjEzNTMuMS4xMC4xMjc0MTM2ODk2JzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/nl_NL.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ1NjcmlwdCBEZXBsb3kgJzsKJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAnVSBrdW50IGhldCBiZXN0ZSBudSBlZXJzdCBkZSBoZWxwIHBhZ2luYSBsZXplbi4uLic7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnUGxlYXNlIGZlZWwgZnJlZSB0byBsZXQgdXMga25vdyBpZiB0aGVyZSBpcyBhIHdheSB0byBtYWtlIFNjcmlwdERlcGxveSBiZXR0ZXIsIDxhIGhyZWY9Imh0dHA6Ly9oZWxwLmNvcmJlbnNwcm9kdWN0cy5jb20vbWFrZS1jb250YWN0Lmh0bWwiPkNvbnRhY3QgdXMgd2UmIzAzOTtlciBoYXBweSB0byBoZWFyIGZyb20geW91LjwvYT4nOwokbGFuZ1sncmVhbGx5X3VuaW5zdGFsbCddID0gJ0hldCBkZSZpdW1sO25zdGFsbGVyZW4gdmFuIGRlemUgbW9kdWxlIHphbCBnZWVuIGVmZmVjdCBoZWJiZW4gb3AgZGUgZ2ViZXVydGVuaXNzZW4gZGF0YSBlbiBhbGxlICZxdW90O2Jvb2tzIGRhdGEmcXVvdDsgemFsIG5pZXQgd29yZGVuIHZlcndpamRlcmQuIFdpbHQgdSBkb29yZ2Fhbj8nOwokbGFuZ1sndW5pbnN0YWxsZWQnXSA9ICdNb2R1bGUgZ2VkZSZpdW1sO25zdGFsbGVlcmQuJzsKJGxhbmdbJ2luc3RhbGxlZCddID0gJ01vZHVsZSB2ZXJzaWUgJXMgZ2UmaXVtbDtuc3RhbGxlZXJkLic7CiRsYW5nWyd1cGdyYWRlZCddID0gJ01vZHVsZSBiaWpnZXdlcmt0IG5hYXIgdmVyc2llICVzLic7CiRsYW5nWydtb2R1bGVfb3B0aW9ucyddID0gJ01vZHVsZSBPcHRpZXMnOwokbGFuZ1sndGVtcGxhdGVfbWFuZyddID0gJ1NqYWJsb29uIGJlaGVlcic7CiRsYW5nWydEZXBsb3ltZW50c2V0dGluZ3MnXSA9ICdEZXBsb3ltZW50IE9wdGllcyc7CiRsYW5nWydWYWxzZXR0aW5ncyddID0gJ1ZhbGlkYXRpZSBpbnN0ZWxsaW5nZW4nOwokbGFuZ1snZW4nXSA9ICdFbmdlbHMnOwokbGFuZ1snZnInXSA9ICdGcmFucyc7CiRsYW5nWydpdCddID0gJ0l0YWxpYWFucyc7CiRsYW5nWydrbyddID0gJ0tvcmVhYW5zJzsKJGxhbmdbJ2phJ10gPSAnSmFwYW5zJzsKJGxhbmdbJ2VzJ10gPSAnU3BhYW5zJzsKJGxhbmdbJ3poLWNuJ10gPSAnQ2hpbmVlcyc7CiRsYW5nWydubCddID0gJ05lZGVybGFuZHMnOwokbGFuZ1snZGUnXSA9ICdEdWl0cyc7CiRsYW5nWydwbCddID0gJ1Bvb2xzJzsKJGxhbmdbJ3JvJ10gPSAnUm9lbWVlbnMnOwokbGFuZ1snY3MnXSA9ICdFc3RzJzsKJGxhbmdbJ2JnJ10gPSAnQnVsZ2FhcnMnOwokbGFuZ1snc3YnXSA9ICdad2VlZHMnOwokbGFuZ1snZmEnXSA9ICdQZXJzaXNjaCAoRmFyc2kpJzsKJGxhbmdbJ3J1J10gPSAnUnVzc2lzY2gnOwokbGFuZ1sncHQtQlInXSA9ICdQb3J0dWdlZXMnOwokbGFuZ1snTG5vbmUnXSA9ICdHZWVuIHdhYXJzY2h1d2luZ2VuJzsKJGxhbmdbJ0wwJ10gPSAnTGV2ZWwgMCAnOwokbGFuZ1snTDEnXSA9ICdMZXZlbCAxICc7CiRsYW5nWydMMiddID0gJ0xldmVsIDIgJzsKJGxhbmdbJ2NzczEnXSA9ICdDc3MgMSc7CiRsYW5nWydjc3MyJ10gPSAnQ3NzIDInOwokbGFuZ1snY3NzMjEnXSA9ICdDc3MgMi4xJzsKJGxhbmdbJ2NzczMnXSA9ICdDc3MgMyc7CiRsYW5nWydzdmcnXSA9ICdTdmcnOwokbGFuZ1snc3ZnYmFzaWMnXSA9ICdTdmQgc3RhbmRhYXJkJzsKJGxhbmdbJ3N2Z3RpbnknXSA9ICdTdmcgdGlueSc7CiRsYW5nWydtb2JpbGUnXSA9ICdtb2JpZWwnOwokbGFuZ1snYXRzYy10diddID0gJ0F0c2MtVHYnOwokbGFuZ1sndHYnXSA9ICdUdic7CiRsYW5nWydub25lJ10gPSAnZ2Vlbic7CiRsYW5nWydzYXZlVkFMc2V0dGluZ3MnXSA9ICdWYWxpZGF0aWUgaW5zdGVsbGluZ2VuIG9wc2xhYW4nOwokbGFuZ1snc2V0dGluZ3MnXSA9ICdJbnN0ZWxsaW5nZW4nOwokbGFuZ1snc2V0dGluZ3NzYXZlZCddID0gJ0RlIGluc3RlbGxpbmdlbiB6aWpuIG9wZ2VzbGFnZW4nOwokbGFuZ1snbGVhdmVjb2RlJ10gPSAnQ29kZSBuaWV0IGFhbnBhc3Nlbic7CiRsYW5nWydmb3JtYXRjb2RlJ10gPSAnRm9ybWF0IGRlIGNvZGUgbmV0amVzJzsKJGxhbmdbJ3NjcmFtYmxlY29kZSddID0gJ1NjcmFtYmxlIGRlIGNvZGUnOwokbGFuZ1snY2xlYW5jb2RlJ10gPSAnQ2xlYW4gdXAgdGhlIGNvZGUgcmVtb3Zpbmcgc3R1ZmYgdGhhdCBkb2VzbiYjMDM5O3QgbWF0dGVyJzsKJGxhbmdbJ3NhdmVzZXR0aW5ncyddID0gJ0luc3RlbGxpbmdlbiBvcHNsYWFuJzsKJGxhbmdbJ21hbmdsZXR5cGV0ZXh0J10gPSAnSG9lIG1vZXQgZGUgY29kZSB3b3JkZW4gd2VlcmdlZ2V2ZW4nOwokbGFuZ1snYnJpZWYnXSA9ICdLb3J0JzsKJGxhbmdbJ3ZlcmJvc2UnXSA9ICdVaXRnZWJyZWlkdCc7CiRsYW5nWydjb2RlZml4ZXMnXSA9ICdDb2RlIHJlcGFyYXRpZXMnOwokbGFuZ1snZm9yY2Vsb3dlcnRhZ3N0ZXh0J10gPSAnTWFhayB0YWdzIGluIGtsZWluZSBsZXR0ZXJzJzsKJGxhbmdbJ2ZvcmNlbG93ZXJ0YWdzaGVscCddID0gJ1Zvb3IgYmV0ZXJlIFhIVE1MLWNvbXBhdGliaWxpdGVpdCc7CiRsYW5nWydoaWRlbWVzc2FnZXN0ZXh0J10gPSAnVmVyYmVyZyBDb2RlTWFuZ2xlciBiZXJpY2h0ZW4gYWFubiBoZXQgZWluZCB2YW4gZGUgKHgpaHRtbC1jb2RlJzsKJGxhbmdbJ2luZGVudHdpZHRodGV4dCddID0gJ0JyZWVkdGUgdmFuICYjMDM5O2luZGVudGF0aW9uJiMwMzk7JzsKJGxhbmdbJ3NwYWNlcyddID0gJ1NwYXRpZXMnOwokbGFuZ1snZGVidWdsZXZlbHRleHQnXSA9ICdIb2V2ZWVsaGVpZCBkZWJ1Z2dpbmcgb3V0cHV0OiAnOwokbGFuZ1snZGVidWd0ZXh0J10gPSAnQ29kZSBkZWJ1ZyBtb2R1cyc7CiRsYW5nWydTY3JpcHRfbGlzdCddID0gJ1NjcmlwdHMgJzsKJGxhbmdbJ0Fzc19oZWFkZXInXSA9ICdVbmlmaWVkIFNjcmlwdHMgJzsKJGxhbmdbJ1NhbXBsZVRhZyddID0gJ1Zvb3JiZWVsZCBUYWcnOwokbGFuZ1sncHJvbXB0X25ld1NjcmlwdCddID0gJ05pZXV3IFNjcmlwdCBUb2V2b2VnZW4nOwokbGFuZ1sncHJvbXB0X25ld1NjcmlwdEFzcyddID0gJ05pZXV3ZSBTY3JpcHQgVmVyYmluZGluZyBUb2V2b2VnZW4nOwokbGFuZ1sncHJvbXB0X2FkZHRlbXBsYXRlJ10gPSAnTmlldXcgc2phYmxvb24gdG9ldm9lZ2VuJzsKJGxhbmdbJ3RpdGxlX0dyb3VwcyddID0gJ1NjcmlwdCBHcm9lcGVuIExpanN0JzsKJGxhbmdbJ3RpdGxlX1NjcmlwdHMnXSA9ICdFbmtlbGUgU2NyaXB0IExpanN0JzsKJGxhbmdbJ2FyZXlvdXN1cmUnXSA9ICdJbXBvcnRhbnQ6XG5cbklmIHRoaXMgaXMgZGVsZXRlZCBhbGwgaW5mb3JtYXRpb24gd2lsbCBiZSBsb3N0IVxuXG5JZiB5b3UgaGF2ZSB0aGlzIHNjcmlwdCBpbiBhIGdyb3VwIHlvdSB3aWxsIGJyZWFrIHRoZSB0aWUgYW5kIHdpbGwgbmVlZCB0byBlZGl0IHRoZSBncm91cC5cbkl0IGlzIGJlc3QgdG8gc3RhcnQgdGhlIGRlbGV0aW9uIHByb2Nlc3MgZnJvbSB0aGUgQXNzaWdubWVudCBhcmVhLlxuXG5ZT1UgQUxTTyBMT1NFIFlPVVIgUkVWSVNJT04gSElTVE9SWSBGT1IgVEhJUyBTQ1JJUFQuLiBBUkUgWU9VIFJFQUxZIFNVUkU/Pz8gJzsKJGxhbmdbJ3NtYXJ0eUhvdyddID0gJ3RoZSBzbWFydHkgd29ya3MgbGlrZSB0aGlzLi4uIFdoZXJlIHlvdSYjMDM5O2QgaGF2ZSB7JHNtYXJ0eS5ub3d9IHlvdSBkbyB7eyRzbWFydHkubm93fX0gIC4gIE5vdyB5b3UgY2FuIGRvIHNtYXJ0eSBzdHVmZic7CiRsYW5nWydhbGwnXSA9ICdUb2VwYXNiYWFyIHZvb3IgYWxsZSBhcHBhcmF0ZW4uJzsKJGxhbmdbJ2F1cmFsJ10gPSAnQmVkb2VsZCB2b29yIHNwcmFhayBzeW50aGVzaXplcnMuJzsKJGxhbmdbJ2JyYWlsbGUnXSA9ICdCZWRvZWxkIHZvb3IgYnJhaWxsZWFwcGFyYXR1dXIuJzsKJGxhbmdbJ2VtYm9zc2VkJ10gPSAnQmVkb2VsZCB2b29yIGJyYWlsbGUgcHJpbnRlcnMuJzsKJGxhbmdbJ2hhbmRoZWxkJ10gPSAnQmVkb2VsZCB2b29yIGhhbmRoZWxkIGFwcGFyYXR1dXInOwokbGFuZ1sncHJpbnQnXSA9ICdJbnRlbmRlZCBmb3IgcGFnZWQsIG9wYXF1ZSBtYXRlcmlhbCBhbmQgZm9yIGRvY3VtZW50cyB2aWV3ZWQgb24gc2NyZWVuIGluIHByaW50IHByZXZpZXcgbW9kZS4nOwokbGFuZ1sncHJvamVjdGlvbiddID0gJ0JlZG9lbGQgdm9vciBwcm9qZWN0aWVzJzsKJGxhbmdbJ3NjcmVlbiddID0gJ0JlZG9lbGQgdm9vciBrbGV1cmVuIGNvbXB1dGVyIGJlZWxkc2NoZXJtZW4uJzsKJGxhbmdbJ3R0eSddID0gJ0ludGVuZGVkIGZvciBtZWRpYSB1c2luZyBhIGZpeGVkLXBpdGNoIGNoYXJhY3RlciBncmlkLCBzdWNoIGFzIHRlbGV0eXBlcyBhbmQgdGVybWluYWxzLic7CiRsYW5nWydNZWRpYVR5cGUnXSA9ICdhbGwgOiBTdWl0YWJsZSBmb3IgYWxsIGRldmljZXMuIDxici8+DQphdXJhbCA6IEludGVuZGVkIGZvciBzcGVlY2ggc3ludGhlc2l6ZXJzLjxici8+DQpicmFpbGxlIDogSW50ZW5kZWQgZm9yIGJyYWlsbGUgdGFjdGlsZSBmZWVkYmFjayBkZXZpY2VzLjxici8+DQplbWJvc3NlZCA6IEludGVuZGVkIGZvciBwYWdlZCBicmFpbGxlIHByaW50ZXJzLjxici8+DQpoYW5kaGVsZCA6IEludGVuZGVkIGZvciBoYW5kaGVsZCBkZXZpY2VzPGJyLz4NCnByaW50IDogSW50ZW5kZWQgZm9yIHBhZ2VkLCBvcGFxdWUgbWF0ZXJpYWwgYW5kIGZvciBkb2N1bWVudHMgdmlld2VkIG9uIHNjcmVlbiBpbiBwcmludCBwcmV2aWV3IG1vZGUuPGJyLz4NCnByb2plY3Rpb24gOiBJbnRlbmRlZCBmb3IgcHJvamVjdGVkIHByZXNlbnRhdGlvbnMsIGZvciBleGFtcGxlIHByb2plY3RvcnMgb3IgcHJpbnQgdG8gdHJhbnNwYXJlbmNpZXMuPGJyLz4NCnNjcmVlbiA6IEludGVuZGVkIHByaW1hcmlseSBmb3IgY29sb3IgY29tcHV0ZXIgc2NyZWVucy48YnIvPg0KdHR5IDogSW50ZW5kZWQgZm9yIG1lZGlhIHVzaW5nIGEgZml4ZWQtcGl0Y2ggY2hhcmFjdGVyIGdyaWQsIHN1Y2ggYXMgdGVsZXR5cGVzIGFuZCB0ZXJtaW5hbHMuPGJyLz4NCnR2IDogSW50ZW5kZWQgZm9yIHRlbGV2aXNpb24tdHlwZSBkZXZpY2VzLic7CiRsYW5nWydDYW5jZWxlZCddID0gJ1V3IGhlZWZ0IGRlIGJld2Vya2luZyBnZWFubnVsZWVyZC4gQWxsZSBhYW5nZWJyYWNodGUgd2lqemlnaW5nZW4gemlqbiBoaWVyZG9vciB2ZXJsb3JlbiBnZWdhYW4uJzsKJGxhbmdbJ0J0bkFEREVEJ10gPSAnVSBoZWVmdCBlZW4gbmlldXcgc2NyaXB0IHRvZWdldm9lZ2QnOwokbGFuZ1snQnRuRURJVEVEJ10gPSAnVSBoZWVmdCBlZW4gYmVzdGFhbmQgc2NyaXB0IGdld2lqemlnZCc7CiRsYW5nWydCdG5ERUxFVEVEJ10gPSAnVSBoZWVmdCBlZW4gYmVzdGFhbmQgc2NyaXB0IGFhbmdlcGFzdCc7CiRsYW5nWyd0eXBlX2xhYmVsJ10gPSAnVHlwZSAnOwokbGFuZ1sncmV2aXNpb24nXSA9ICdSZXZpc2llJzsKJGxhbmdbJ2lzRWRpdCddID0gJ3dvcmR0IGdld2lqemlnZCc7CiRsYW5nWydzdGVhbCddID0gJ1N0ZWFsIHRoZSBkb2N1bWVudCc7CiRsYW5nWydnZXRfdGFnJ10gPSAnR2V0IHRoZSB0YWcnOwokbGFuZ1snZW10cHlHcm91cCddID0gJ1lvdSYjMDM5O2xsIG5lZWQgdG8gYWRkIGEgc2NyaXB0IHRvIHRoZSBncm91cCBiZWZvcmUgY2FsbGluZyBpdCc7CiRsYW5nWydOb19TY3JpcHRzJ10gPSAnRXIgemlqbiBub2cgZ2VlbiBzY3JpcHRzJzsKJGxhbmdbJ05vX0dyb3VwcyddID0gJ0VyIHppam4gbm9nIGdlZW4gZ3JvZXBlbic7CiRsYW5nWydzZXRpbmFjdGl2ZSddID0gJ01hYWsgc2phYmxvb24gaW5hY3RpZWYnOwokbGFuZ1snc2V0YWN0aXZlJ10gPSAnTWFhayBzamFibG9vbiBhY3RpZWYnOwokbGFuZ1snbm90ZGVmYXVsdCddID0gJ05pZXQgaGV0IHN0YW5kYWFyZCBzamFibG9vbi4nOwokbGFuZ1snbm90dmFsaWQnXSA9ICdTdHlsZXNoZWV0IGFzc29jaWF0aW9ucyBoYXZlIG5vdCBiZWVuIHNldCBwcm9wZXJseSBmb3IgdGhpcyB0ZW1wbGF0ZSc7CiRsYW5nWyd0ZW1wbGF0ZV90YWInXSA9ICdTdHlsZXN3aXRjaGVyIEZvcm0gdGVtcGxhdGUnOwokbGFuZ1sncGFnZV90ZW1wbGF0ZXNfdGFiJ10gPSAnUGFnZSBUZW1wbGF0ZXMnOwokbGFuZ1snc3VibWl0J10gPSAnVmVyc3R1cmVuJzsKJGxhbmdbJ2FwcGx5J10gPSAnVG9lcGFzc2VuJzsKJGxhbmdbJ2NhbmNlbCddID0gJ0FubnVsZWVyJzsKJGxhbmdbJ2dvJ10gPSAnVmVyZGVyJzsKJGxhbmdbJ3ByZXZpZXcnXSA9ICdWb29yYmVlbGQnOwokbGFuZ1snaW5saW5laGVscCddID0gJ0hlbHAgJzsKJGxhbmdbJ3NjaXB0b3B0aW9ucyddID0gJ09wdGllcyc7CiRsYW5nWydwZXJzaXN0ZW50J10gPSAnUGVyc2lzdGVudCc7CiRsYW5nWydwcmVmZXJyZWQnXSA9ICdWb29ya2V1cic7CiRsYW5nWydhbHRlcm5hdGUnXSA9ICdBbHRlcm5hdGllZic7CiRsYW5nWyduYW1lJ10gPSAnTmFhbSc7CiRsYW5nWyd0aXRsZSddID0gJ1RpdGVsJzsKJGxhbmdbJ2lkJ10gPSAnSUQnOwokbGFuZ1snYWN0aXZlJ10gPSAnQWN0aWVmJzsKJGxhbmdbJ2RlZmF1bHQnXSA9ICdTdGFuZGFhcmQnOwokbGFuZ1sndmFsaWQnXSA9ICdDb3JyZWN0JzsKJGxhbmdbJ3VzYWdlX2NvdW50J10gPSAnR2VicnVpayc7CiRsYW5nWyd5ZXMnXSA9ICdKYSc7CiRsYW5nWydubyddID0gJ05lZSc7CiRsYW5nWydlZGl0Y3NzJ10gPSAnRWRpdCBzdHlsZXNoZWV0IGFzc29jaWF0aW9ucyc7CiRsYW5nWydlZGl0dGVtcGxhdGUnXSA9ICdFZGl0IFRlbXBsYXRlIGNvbnRlbnQnOwokbGFuZ1snZGVsZXRldGVtcGxhdGUnXSA9ICdWZXJ3aWpkZXIgU2phYmxvb24nOwokbGFuZ1snY29weXRlbXBsYXRlJ10gPSAnS29waWVlciBTamFibG9vbic7CiRsYW5nWydwcm9tcHRfc3R5bGVzaGVldCddID0gJ1NlbGVjdCBhIHBhZ2Ugc3R5bGUnOwokbGFuZ1sncHJvbXB0X3RlbXBsYXRlJ10gPSAnU2phYmxvb24nOwokbGFuZ1sncHJvbXB0X2dyb3VwbmFtZSddID0gJ0dyb2Vwc25hYW0nOwokbGFuZ1sncHJvbXB0X2FkZGdyb3VwJ10gPSAnR3JvZXAgVG9ldm9lZ2VuJzsKJGxhbmdbJ3Byb21wdF9ncm91cHR5cGUnXSA9ICdHcm9lcCBUeXBlJzsKJGxhbmdbJ3Byb21wdF9hZGQnXSA9ICdUb2V2b2VnZW4nOwokbGFuZ1sncHJvbXB0X3NlbGVjdG9uZSddID0gJ0tpZXMgJmVhY3V0ZTsmZWFjdXRlO24nOwokbGFuZ1sncHJvbXB0X2FkZF9hbHRlcm5hdGUnXSA9ICdWb2VnIGVlbiBhbHRlcm5hdGllZiB0b2UnOwokbGFuZ1snZXJyb3JfcGxlYXNlX3NlbGVjdF9zdHlsZXNoZWV0J10gPSAnU2VsZWN0ZWVyIGVlbiBTdHlsZXNoZWV0JzsKJGxhbmdbJ3VzZXJMb2dzJ10gPSAnVmlldyBVc2VyIEhpc3RvcnkgTG9ncyc7CiRsYW5nWydTY3JpcHRTZXRfbGFiZWwnXSA9ICdTY3JpcHQgSWQnOwokbGFuZ1snc2NyaXB0VHlwZV9sYWJlbCddID0gJ1NjcmlwdCBUeXBlICc7CiRsYW5nWydTY3JpcHROYW1lX2xhYmVsJ10gPSAnU2NyaXB0IE5hYW0nOwokbGFuZ1sndGVtcGxhdGVuYW1lX2xhYmVsJ10gPSAnU2phYmxvb24gbmFhbSc7CiRsYW5nWydTaW5nbGVDb2RlX2xhYmVsJ10gPSAnRGVmYXVsdCBTaW5nbGUgU2NyaXB0IENhbGwgJzsKJGxhbmdbJ0dyb3VwdFNpemVfbGFiZWwnXSA9ICdUb3RhYWwnOwokbGFuZ1snbm90ZXNfbGFiZWwnXSA9ICdPcG1lcmtpbmdlbic7CiRsYW5nWydTaG93VmFsX2xhYmxlJ10gPSAnTGFhdCBCZXJpY2h0ZW4gT3Blbic7CiRsYW5nWydUdXJuT05WYWxfbGFibGUnXSA9ICcgWmV0IFZhbGlkYXRpZSA8c3Ryb25nPkFBTjwvc3Ryb25nPic7CiRsYW5nWydob3RMaW5rQ2hlY2tfbGFibGUnXSA9ICdWb2VyIGVlbiBIb3RMaW5rIENvbnRyb2xlIHVpdCc7CiRsYW5nWydUcnVuT25ob3RMaW5rQ2hlY2snXSA9ICdVIG1vZXQgZGUgSG90TGluayBDb250cm9sZSBpbnNjaGFrZWxlbic7CiRsYW5nWydmaWx0ZXJQcm9wX2xhYmxlJ10gPSAnIEZpbHRlciBvdXQgcHJvcGVydGllcyB0byBoZWxwIHZhbGlkYXRlJzsKJGxhbmdbJ0NTU3Byb2ZpbGVfbGFibGUnXSA9ICcgQ3NzIFByb2ZpZWwnOwokbGFuZ1sndXNlcm1lZGl1bV9sYWJsZSddID0gJyBHZWJydWlrZXIgTWVkaWEnOwokbGFuZ1snVkFMTGFuZ19sYWJsZSddID0gJ1RhYWwnOwokbGFuZ1sndzNjQ1NTd2FybmluZ19sYWJsZSddID0gJyB3M2MgQ1NTIFdhYXJzY2h1d2luZ3MgTGV2ZWwnOwokbGFuZ1snTWVkaWFUeXBlX2xhYmVsJ10gPSAnTWVkaWEgVHlwZSc7CiRsYW5nWydNaW5pZnlfbGFiZWwnXSA9ICdQcmUgTWluaWZpZWQnOwokbGFuZ1snQ3JlYXRpb25EYXRlX2xhYmVsJ10gPSAnQWFubWFhayBEYXR1bSc7CiRsYW5nWydNb2RpZmVkRGF0ZV9sYWJlbCddID0gJ1dpanppZyBEYXR1bSc7CiRsYW5nWydwYXRoT3B0aW9uX2xhYmVsJ10gPSAnVXNlIGEgcGF0aDxlbT4odXNlICZxdW90Oy91cGxvYWRzLy4uLiZxdW90Oyk8L2VtPic7CiRsYW5nWydyb290VVJMT3B0aW9uX2xhYmVsJ10gPSAnVXNlIGEgc3BlY2lmaWMgcm9vdCBVUkw8ZW0+KHVzZSBzY2hlbWEgJnF1b3Q7aHR0cHM6Ly9zdWIuZG9tYWluLnRsZC8mcXVvdDspPC9lbT4nOwokbGFuZ1snR3Jvb3RVUkwnXSA9ICdHbG9iYWwgU2NyaXB0IFJvb3QgVVJMICc7CiRsYW5nWydlbXB0eWNhY2hlRXJyb3JfZG9BRFVJVCddID0gJ0J1ZmZlciBsZWdlbiBtaXNsdWt0IGJpaic7CiRsYW5nWydlbXB0aWVkQ2FjaF9kb0FEVUlUJ10gPSAnc2NyaXB0IGJ1ZmZlciBnZWxlZWdkJzsKJGxhbmdbJ2NsZWFyZWRSZXZpc2lvbl9kb0FEVUlUJ10gPSAncmV2aXNpZSBnZXNjaGllZGVuaXMgZ2V3aXN0IHZvb3InOwokbGFuZ1snQ2hlY2tlZE91dF9kb0FEVUlUJ10gPSAnU2NyaXB0IGdlY29udHJvbGVlcmQgJzsKJGxhbmdbJ3JlbGVhc2VkX2RvQURVSVQnXSA9ICd1aXRnZXZvZXJkZSBzY3JpcHQgJzsKJGxhbmdbJ1NjcmlwdElzX2xhYmVsJ10gPSAnR2VicnVpayBkaXQgc2NyaXB0IDxlbT4oT3BtLjogQWxzIGVlbiBwYWQgaXMgaW5nZXN0ZWxkLCBkYW4gemFsIGhldCBkZXplIG92ZXJzY2hyaWp2ZW4pPC9lbT4nOwokbGFuZ1snZGVidWdJVF9sYWJlbCddID0gJ2RlYnVnIElUJzsKJGxhbmdbJ2RlYnVnSVRub3RlX2xhYmVsJ10gPSAnPGVtPihNb2V0IEZpcmVwaHAgbW9kIGhlYmJlbik8L2VtPic7CiRsYW5nWydkZWJ1Z1QnXSA9ICdEZWJ1ZyBPcHRpZXMnOwokbGFuZ1snRWRpdEhpc3RvcnknXSA9ICdHZWJydWlrZXJzd2lqemlnaW5nZW4gZ2VzY2hpZWRlbmlzJzsKJGxhbmdbJ25vbmVJblR5cGUnXSA9ICc8aDE+VSBtb2V0IGluIGRpdCB0eXBlIGVlcnN0PGJyLz5lZW4gc2NyaXB0IHRvZXZvZWdlbjwvaDE+JzsKJGxhbmdbJ3JldmlzaW9uVGl0bGUnXSA9ICdXaWp6aWdpbmdlbiBnZXNjaGllZGVuaXMnOwokbGFuZ1sncmV2aXNpb25fbGFiZWwnXSA9ICc8c3Ryb25nPktvcnQgZGUgd2lqemlnaW5nZW5nZXNjaGllZGVuaXMgaW48L3N0cm9uZz4nOwokbGFuZ1sncmV2aXNpb25fb3AnXSA9ICc8aDE+UmV2aXNpb24gPC9oMT4NCjxoMz5UcnVuaW5nIHRoaXMgb2ZmIGRvZXMgbm90IGNsZWFyIHRoZSBoaXN0b3J5IGlmIGl0IHdhcyBvbiBiZWZvcmUuICBMaWtlIGl0IHRvIHBhdXNlLjwvaDM+JzsKJGxhbmdbJ3JldmlzaW9uX0xJTUlUX2xhYmVsJ10gPSAnU3RlbCBlZW4gcmV2aXNpZSBsaW1pZXQgaW4nOwokbGFuZ1snY2xlYXJSZXYnXSA9ICdXaXMgZ2VzY2hpZWRlbmlzJzsKJGxhbmdbJ3ByZWxvYWRfQ1NTaW1hZ2VUaXRsZSddID0gJ1ByZWxvYWQgQ1NTIEFmYmVlbGRpbmdlbic7CiRsYW5nWydwcmVsb2FkX0NTU2ltYWdlX2xhYmVsJ10gPSAnPHN0cm9uZz5UcnVuIG9uIFByZWxvYWRlZCBDc3MgSW1hZ2VzPC9zdHJvbmc+JzsKJGxhbmdbJ3ByZWxvYWRfQ1NTaW1hZ2UnXSA9ICc8aDE+UHJlbG9hZCBDc3MgSW1hZ2VzIDwvaDE+DQo8aDM+SWYgeW91IGhhdmUgeW91ciBzeXN0ZW0gYWxsIHNldCB1cCByaWdodCwgdGhpcyB3aWxsIGhlbHAgeW91IGdldCBhIGZhc3QgcGFyYWxsZWwgZG93biBsb2FkIG9mIGFsbCBlbGVtZW50cy48L2gzPic7CiRsYW5nWydnbG9iYWx1cmwnXSA9ICc8aDE+U2V0IHRoZSByb290IFVSTCA8L2gxPg0KPGgzPlVzZWQgZm9yIHdoZW4geW91IG5lZWQgU1NMIHN1cHBvcnQgb3Igd2FudCB0byBwdXNoIHRoZSBzY3JpcHRzIHRvIGEgc3ViZG9tYWluIHRvIGxvc2UgdGhlIG5lZWRsZXMgY29va2llcy48L2gzPic7CiRsYW5nWydzbWFydHlPbl9sYWJlbCddID0gJzxzdHJvbmc+U21hcnR5IFVpdHZvZXJlbjwvc3Ryb25nPjxici8+IGRhdGEgaW4gYnV0dG9uIHZlbGRlbic7CiRsYW5nWydzbWFydHlPbiddID0gJzxoMT5Qcm9jZXNzIFNtYXJ0eSBkYXRhIDwvaDE+DQo8aDM+V2l0aCB0aGlzIHR1cm5lZCBvbiB5b3UgY2FuIHNldCB0aGUgYnV0dG9uIGZpZWxkcyB3aXRoIHRoZSB2YWx1ZXMgcGFzc2VkIGJ5IG90aGVyIG1vZHVsZXMgc3VjaCBhcyBQcm9kdWN0cyBvciBDYXRhbG9nZXI8L2gzPic7CiRsYW5nWydmaWxlVGltZV9jc3NfdXJsc19sYWJlbCddID0gJzxzdHJvbmc+aGVscCBicmVhayBhIGNsaWVudCBzaWRlIGNhY2hlPC9zdHJvbmc+JzsKJGxhbmdbJ2ZpbGVUaW1lX2Nzc191cmxzJ10gPSAnPGgxPmhlbHAgYnJlYWsgYSBjbGllbnQgc2lkZSBjYWNoZSA8L2gxPg0KPGgzPlRoaXMgaXMgZG9uZSBieSBhZGRpbmcgYSBmaWxlIGNyZWF0aW9uIHRpbWUgYXQgdGhlIGVuZCBvZiBhIGZpbGUuICBUdXJuaW5nIHRoaXMgb24gd2lsbCBhZGQgdGhpcyB0byBhbGwgbG9jYWwgdXJscy4gKENTUyBvbmx5IGF0bSkgLU5vdGhpbmcgaXMgZG9uZSB0byBob3RsaW5rczwvaDM+JzsKJGxhbmdbJ2VkaXQnXSA9ICdXaWp6aWcnOwokbGFuZ1snZGVsZXRlJ10gPSAnVmVyd2lqZGVyZW4nOwokbGFuZ1snQ2xvc2UnXSA9ICdTbHVpdGVuJzsKJGxhbmdbJ09wZW4nXSA9ICdPcGVuZW4nOwokbGFuZ1snZGlyRW1wdHknXSA9ICdEZSBuZXR3ZXJrbWFwIHdhcyBsZWVnJzsKJGxhbmdbJ2NsZWFuVGVtcCddID0gJ0xlZWcgZGUgdGVtcD8nOwokbGFuZ1sndXJUZW1wUGF0aCddID0gJ1V3IGJ1ZmZlciBwYWQgaXMnOwokbGFuZ1snTGFzdE1vZCddID0gJ0xhYXRzdCBnZXdpanppZ2QnOwokbGFuZ1snY2FjaGVGZXJyb3InXSA9ICdTY3JpcHREZXBsb3kga2FuIGdlZW4gYnVmZmVybWFwIGFhbm1ha2VuLCBjb250cm9sZWVyIGRlIHJlY2h0ZW4gaW4gZGUgVXBsb2Fkc21hcCBvcCBkZSBzZXJ2ZXIuJzsKJGxhbmdbJ05hbWUnXSA9ICdOYWFtJzsKJGxhbmdbJ1Byb2NjZXNzaW5nJ10gPSAnQmV3ZXJrZW4nOwokbGFuZ1snU2F2ZWQnXSA9ICdPcGdlc2xhZ2VuJzsKJGxhbmdbJ0RvbmUnXSA9ICdHZXJlZWQnOwokbGFuZ1snVmFsaWRhdGluZyddID0gJ1ZhbGlkZXJlbic7CiRsYW5nWydHcm91cHRTZXRfbGFiZWwnXSA9ICdHcm9lcCBOYWFtJzsKJGxhbmdbJ0dyb3VwdFR5cGVfbGFiZWwnXSA9ICdUeXBlIHNjcmlwdHMnOwokbGFuZ1snU2NyaXB0UGlja2VyX2xhYmVsJ10gPSAnU2NyaXB0IFBvb2wgJzsKJGxhbmdbJ0xJTkUnXSA9ICdMSU5FICc7CiRsYW5nWydUWVBFJ10gPSAnVFlQRSAnOwokbGFuZ1snU1VCVFlQRSddID0gJ1NVQlRZUEUgJzsKJGxhbmdbJ1NUUklORyddID0gJ1NUUklORyAnOwokbGFuZ1snTUVTU0FHRSddID0gJ0JFUklDSFQnOwokbGFuZ1snTEVWRUwnXSA9ICdMRVZFTCAnOwokbGFuZ1snTm90ZXMnXSA9ICdOb3RpdGllcyc7CiRsYW5nWydXYXJuaW5ncyddID0gJ1dhYXJzY2h1d2luZ2VuJzsKJGxhbmdbJ0Vycm9ycyddID0gJ0ZvdXRlbic7CiRsYW5nWydoaWRkZW4nXSA9ICdWZXJib3JnZW4nOwokbGFuZ1snU2NyaXB0J10gPSAnU2NyaXB0ICc7CiRsYW5nWydFVVJMUyddID0gJ0V4dHJhY3RlZCBVcmxzJzsKJGxhbmdbJ1JDU1MnXSA9ICdSZW5kZXJlZCBDU1MnOwokbGFuZ1snU0NTUyddID0gJ0NTUyBTdHJ1Y3R1dXInOwokbGFuZ1snRkNPTlQnXSA9ICdCZXN0YW5kc2luaG91ZCc7CiRsYW5nWydpVVJMJ10gPSAnYWZiZWVsZGluZyBVUkwnOwokbGFuZ1snVHlwZSddID0gJ1R5cGUgJzsKJGxhbmdbJ1NpemUnXSA9ICdBZm1ldGluZyc7CiRsYW5nWydTdGF0dXMnXSA9ICdTdGF0dXMgJzsKJGxhbmdbJ2hvdGxpbmsnXSA9ICc8c3Ryb25nPkhvdGxpbmtpbmc6PC9zdHJvbmc+IGxpamt0IGVlbiBob3RsaW5rLic7CiRsYW5nWydCcm9rZW5saW5rJ10gPSAnVmVyYnJva2VuIExpbmsnOwokbGFuZ1snTk9jc3NJJ10gPSAnR2VlbiBjc3MgYWZiZWVsZGluZ2VuJzsKJGxhbmdbJ1llc1ZBbGFzdGVyJ10gPSAnPGgyPllvdSB2YWxpZGF0ZWQhICoqPC9oMj48aW1nIHN0eWxlPSZxdW90O2JvcmRlcjowO3dpZHRoOjg4cHg7aGVpZ2h0OjMxcHgmcXVvdDtzcmM9JnF1b3Q7aHR0cDovL2ppZ3Nhdy53My5vcmcvY3NzLXZhbGlkYXRvci9pbWFnZXMvdmNzcy1ibHVlJnF1b3Q7YWx0PSZxdW90O1ZhbGlkIENTUyEmcXVvdDsgLz48YnIvPiA8c3Ryb25nPioqIHlvdSBhcmUgZmlsdGVyaW5nIGVycm9ycyBhbmQgbWF5IGhhdmUgZmlsdGVyZWQgYSByZWFsIGVycm9yPC9zdHJvbmc+JzsKJGxhbmdbJ3JlbG9hZF9hbGVydCddID0gJ1lvdSBhcmUgcmVsb2FkaW5nIHRoZSBzcmNpcHQgZnJvbSB0aGUgbGFzdCBzYXZlIHBvaW50LiAgWW91IGhhdmUgc2F2ZWQgdGhlIHNjcmlwdCBhbHJlYWR5IGFuZCBpZiB5b3UgbmVlZCB0byBnbyBiYWNrIHRvIHRoZSB2ZXJzaW9uIHdoZW4geW91IGZpcnN0IGNhbWUgaW4gdG8gZWRpdCBwbGVhc2UgY2hlY2sgeW91ciByZXZpc2lvbiBoaXN0b3J5Lic7CiRsYW5nWydDbGVhckltZyddID0gJ1ZlcndpamRlciBodWlkaWdlIGFmYmVlbGRpbmcnOwokbGFuZ1snRmluaXNoJ10gPSAnR2VyZWVkJzsKJGxhbmdbJ3JldmVydCddID0gJ1RlcnVnemV0dGVuJzsKJGxhbmdbJ2Zvcm1fY2FuY2VsJ10gPSAnQW5udWxlZXInOwokbGFuZ1snU2F2ZSddID0gJ09wc2xhYW4nOwokbGFuZ1snZG9uZSddID0gJ0dlcmVlZCc7CiRsYW5nWydhZGQnXSA9ICdUb2V2b2VnZW4nOwokbGFuZ1snUkVPUkRFUiddID0gJ1Jlb3JnYW5pc2VyZW4nOwokbGFuZ1snZm9ybV9zdWJtaXQnXSA9ICdJbnN0ZWxsaW5nZW4gb3BzbGFhbic7CiRsYW5nWydtb2RfcHJlZnNfdGl0bGUnXSA9ICdNb2R1bGUgaW5zdGVsbGluZ2VuJzsKJGxhbmdbJ3ByZWZzdXBkYXRlZCddID0gJ01vZHVsZSBpbnN0ZWxsaW5nZW4gYmlqZ2V3ZXJrdCc7CiRsYW5nWydvcHRpb25zdXBkYXRlZCddID0gJ29wdGllcyBiaWpnZXdlcmt0JzsKJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnU1BFRUQgWU9VUiBTSVRFIFVQIC4uLiEhISEgJmJ1bGw7IE91dHB1dCBkeW5hbWljIEpTIGZpbGVzIGFuZCBDU1MgV0lUSCBzbWFydHkuLi4gJmJ1bGw7IFNldCB0aGUgZmlsZXMgdG8gdXNlIGEgc3ViZG9tYWluLi4uICZidWxsOyBjYWNoZWQuLi4gJmJ1bGw7IG1pbmlmaWVkLi4uICZidWxsOyBEaWQgSSBtZW50aW9uIHlvdSBjYW4gdXNlIHNtYXJ0eSBpbiB5b3VyIEpTIGFuZCBDU1Mgc2NyaXB0ISEhISAtIFNpbXBsZSwgZmxleGlibGUhICc7CiRsYW5nWyd3ZWxjb21lX3RleHQnXSA9ICc8cD5IYWxsbyE8L3A+JzsKJGxhbmdbJ2hlbHAnXSA9ICc8bGluayBtZWRpYT0mcXVvdDtzY3JlZW4mcXVvdDsgaHJlZj0mcXVvdDsuLi9tb2R1bGVzL1NjcmlwdERlcGxveS9DU1MvTWFzdGVyQ1NTLmNzcyZxdW90OyB0eXBlPSZxdW90O3RleHQvY3NzJnF1b3Q7IHJlbD0mcXVvdDtzdHlsZXNoZWV0JnF1b3Q7Lz48ZGl2IGNsYXNzPSZxdW90O1NpbVdyYXAmcXVvdDs+PGIgY2xhc3M9JnF1b3Q7cmJvdHRvbSZxdW90Oz48YiBjbGFzcz0mcXVvdDtyMSZxdW90Oz48L2I+IDxiIGNsYXNzPSZxdW90O3IyJnF1b3Q7PjwvYj48YiBjbGFzcz0mcXVvdDtyMyZxdW90Oz48L2I+IDxiIGNsYXNzPSZxdW90O3I0JnF1b3Q7PjwvYj48L2I+DQoNCjxkaXYgY2xhc3M9JnF1b3Q7U2ltY29uJnF1b3Q7PiA8aDMgY2xhc3M9JnF1b3Q7QmFja0xpbmsmcXVvdDs+PGEgb25jbGljaz0iamF2YXNjcmlwdDp3aW5kb3cuaGlzdG9yeS5nbygtMSkiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij48PCBCYWNrPC9hPjwvaDM+DQo8aDE+V2hhdCBEb2VzIFRoaXMgRG8/LS0tIHRoaXMgbmVlZHMgdXBkYXRpbmc8L2gxPg0KPGgyPldyaXRlIG1hbmFnZSBhbmQgZGVwbG95IEpTIGFuZCBDU1M8L2gyPg0KPGEgaWQ9IlNjcmlwdERlcGxveSI+PC9hPg0KPHA+U2NyaXB0RGVwbG95IG1vZHVsZSB0aGF0IGNhbiBjb21iaW5lIG11bHRpcGxlIENTUyBvciBKYXZhc2NyaXB0IGZpbGVzLCBjb21wcmVzcyB0aGVpciBjb250ZW50cyAoaS5lLiByZW1vdmFsIG9mIHVubmVjZXNzYXJ5IHdoaXRlc3BhY2UvY29tbWVudHMpLCBhbmQgc2VydmUgdGhlIHJlc3VsdHMgd2l0aCBIVFRQIGVuY29kaW5nIChnemlwL2RlZmxhdGUpIGFuZCBoZWFkZXJzIHRoYXQgYWxsb3cgb3B0aW1hbCBjbGllbnQtc2lkZSBjYWNoaW5nLiBUaGlzIGhlbHBzIHlvdSBmb2xsb3cgc2V2ZXJhbCBvZiBZYWhvbyEmIzAzOTtzIDxhIGhyZWY9Imh0dHA6Ly9kZXZlbG9wZXIueWFob28uY29tL3BlcmZvcm1hbmNlL2luZGV4Lmh0bWwjcnVsZXMiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5SdWxlcyBmb3IgSGlnaCBQZXJmb3JtYW5jZSBXZWIgU2l0ZXM8L2E+LiAoU2VlICZxdW90O1Byb2JsZW0gRG9tYWluJnF1b3Q7IGJlbG93IGZvciBtb3JlIGluZm8uKSA8L3A+DQo8aDM+VGhlIFNob3J0IG9mIGl0PC9oMz4NCjxwPldpcnRlIHlvdXIgc2NyaXB0cywgc2V0IHRoZSBvcmRlciBhbmQgU2NyaXB0RGVwbG95IHdpbGwgZG8gdGhlIHJlc3QhPC9wPg0KPHRhYmxlPg0KICA8dGJvZHk+DQogICAgPHRyPg0KICAgICAgPHRkIHN0eWxlPSZxdW90O0JPUkRFUi1SSUdIVDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctUklHSFQ6IDVweDsgQk9SREVSLVRPUDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctTEVGVDogNXB4OyBQQURESU5HLUJPVFRPTTogNXB4OyBCT1JERVItTEVGVDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctVE9QOiA1cHg7IEJPUkRFUi1CT1RUT006ICNhYWEgMXB4IHNvbGlkJnF1b3Q7PjxzdHJvbmc+QmVmb3JlPC9zdHJvbmc+PC90ZD4NCiAgICAgIDx0ZCBzdHlsZT0mcXVvdDtCT1JERVItUklHSFQ6ICNhYWEgMXB4IHNvbGlkOyBQQURESU5HLVJJR0hUOiA1cHg7IEJPUkRFUi1UT1A6ICNhYWEgMXB4IHNvbGlkOyBQQURESU5HLUxFRlQ6IDVweDsgUEFERElORy1CT1RUT006IDVweDsgQk9SREVSLUxFRlQ6ICNhYWEgMXB4IHNvbGlkOyBQQURESU5HLVRPUDogNXB4OyBCT1JERVItQk9UVE9NOiAjYWFhIDFweCBzb2xpZCZxdW90Oz48aW1nIHNyYz0mcXVvdDtodHRwOi8vbXJjbGF5Lm9yZy93cC1jb250ZW50L3VwbG9hZHMvMjAwOC8wOS9maWRkbGVyX2JlZm9yZS5wbmcmcXVvdDsgYWx0PSZxdW90O2FmdGVyJnF1b3Q7IC8+PC90ZD4NCiAgICA8L3RyPg0KICAgIDx0cj4NCiAgICAgIDx0ZCBzdHlsZT0mcXVvdDtCT1JERVItUklHSFQ6ICNhYWEgMXB4IHNvbGlkOyBQQURESU5HLVJJR0hUOiA1cHg7IEJPUkRFUi1UT1A6ICNhYWEgMXB4IHNvbGlkOyBQQURESU5HLUxFRlQ6IDVweDsgUEFERElORy1CT1RUT006IDVweDsgQk9SREVSLUxFRlQ6ICNhYWEgMXB4IHNvbGlkOyBQQURESU5HLVRPUDogNXB4OyBCT1JERVItQk9UVE9NOiAjYWFhIDFweCBzb2xpZCZxdW90Oz48c3Ryb25nPkFmdGVyPC9zdHJvbmc+PC90ZD4NCiAgICAgIDx0ZCBzdHlsZT0mcXVvdDtCT1JERVItUklHSFQ6ICNhYWEgMXB4IHNvbGlkOyBQQURESU5HLVJJR0hUOiA1cHg7IEJPUkRFUi1UT1A6ICNhYWEgMXB4IHNvbGlkOyBQQURESU5HLUxFRlQ6IDVweDsgUEFERElORy1CT1RUT006IDVweDsgQk9SREVSLUxFRlQ6ICNhYWEgMXB4IHNvbGlkOyBQQURESU5HLVRPUDogNXB4OyBCT1JERVItQk9UVE9NOiAjYWFhIDFweCBzb2xpZCZxdW90Oz48aW1nIHNyYz0mcXVvdDtodHRwOi8vbXJjbGF5Lm9yZy93cC1jb250ZW50L3VwbG9hZHMvMjAwOC8wOS9maWRkbGVyX2FmdGVyLnBuZyZxdW90OyBhbHQ9JnF1b3Q7YmVmb3JlJnF1b3Q7IC8+PC90ZD4NCiAgICA8L3RyPg0KICA8L3Rib2R5Pg0KPC90YWJsZT4NCg0KDQoNCjxoMj48YSBpZD0iRmVhdHVyZXMiPjwvYT5GZWF0dXJlczwvaDI+DQo8dWw+DQogIDxsaT5Db21iaW5lcyBhbmQgbWluaWZpZXMgbXVsdGlwbGUgQ1NTIG9yIEphdmFTY3JpcHQgZmlsZXMgaW50byBhIHNpbmdsZSAgIGRvd25sb2FkIDwvbGk+DQogIDxsaT5Vc2VzIGFuIDxhIGhyZWY9Imh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC9taW5pZnkvc291cmNlL2Jyb3dzZS90cnVuay9taW4vbGliL0pTTWluLnBocCIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPmVuaGFuY2VkIHBvcnQ8L2E+IG9mIERvdWdsYXMgQ3JvY2tmb3JkJiMwMzk7cyA8YSBocmVmPSJodHRwOi8vd3d3LmNyb2NrZm9yZC5jb20vamF2YXNjcmlwdC9qc21pbi5odG1sIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+SlNNaW4gICBsaWJyYXJ5PC9hPiBhbmQgY3VzdG9tIGNsYXNzZXMgdG8gbWluaWZ5IDxhIGhyZWY9Imh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC9taW5pZnkvc291cmNlL2Jyb3dzZS90cnVuay9taW4vbGliL01pbmlmeS9DU1MucGhwIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+Q1NTPC9hPiBhbmQgPGEgaHJlZj0iaHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL21pbmlmeS9zb3VyY2UvYnJvd3NlL3RydW5rL21pbi9saWIvTWluaWZ5L0hUTUwucGhwIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+SFRNTDwvYT48L2xpPg0KICA8bGk+Q2FjaGVzIHNlcnZlci1zaWRlIHRvIGF2b2lkIGRvaW5nIHVubmVjZXNzYXJ5IHdvcmsgPC9saT4NCiAgPGxpPlJlc3BvbmRzIHdpdGggYW4gSFRUUCAzMDQgKE5vdCBNb2RpZmllZCkgcmVzcG9uc2Ugd2hlbiB0aGUgYnJvd3NlciBoYXMgYW4gICB1cC10by1kYXRlIGNhY2hlIGNvcHkgKiogPC9saT4NCiAgPGxpPk1vc3QgbW9kdWxlcyBhcmUgbGF6eS1sb2FkZWQgYXMgbmVlZGVkICgzMDQgcmVzcG9uc2VzIHVzZSBtaW5pbWFsIGNvZGUpICAqKiA8L2xpPg0KICA8bGk+QXV0b21hdGljYWxseSByZXdyaXRlcyByZWxhdGl2ZSBVUklzIGluIGNvbWJpbmVkIENTUyBmaWxlcyB0byBwb2ludCB0byB2YWxpZCBsb2NhdGlvbnMgPC9saT4NCiAgPGxpPldpdGggY2FjaGluZyBlbmFibGVkLCBTY3JpcHREZXBsb3kgaXMgY2FwYWJsZSBvZiBoYW5kbGluZyBodW5kcmVkcyBvZiByZXF1ZXN0cyBwZXIgc2Vjb25kIG9uIGEgbW9kZXJhdGVseSBwb3dlcmZ1bCBzZXJ2ZXIuIDwvbGk+DQogIDxsaT5Db250ZW50LUVuY29kaW5nOiBnemlwLCBiYXNlZCBvbiByZXF1ZXN0IGhlYWRlcnMuIENhY2hpbmcgYWxsb3dzIGl0IHNvIHNlcnZlIGd6aXBwZWQgZmlsZXMgZmFzdGVyIHRoYW4gQXBhY2hlJiMwMzk7cyBtb2RfZGVmbGF0ZSBvcHRpb24hIDwvbGk+DQo8L3VsPg0KPGgzPjxlbT48c3Ryb25nPioqIE5vdGU6PC9zdHJvbmc+IEl0IGlzIGJlc3QgdG8gdXNlIGEgLmh0YWNjZXNzIHNjcmlwdCB0byBzZXQgdGhlIGFnZSB0aW1lcy4gU2NyaXB0RGVwbG95IGlzIGRlc2lnbmVkIGZvciBlZmZpY2llbmN5LCBidXQgZm9yIHZlcnkgaGlnaCB0cmFmZmljIHNpdGVzLCBTY3JpcHREZXBsb3kgbWF5IHNlcnZlIGZpbGVzIHNsb3dlciB0aGFuIHlvdXIgSFRUUGQgZHVlIHRvIHRoZSBDR0kgb3ZlcmhlYWQgb2YgUEhQLiAgVG8gb3ZlciBjb21lIHRoaXMgSnVzdCBjaGVjayAmcXVvdDt1c2UgLmh0YWNjZXNzIGluIG9wdGlvbnMmcXVvdDs8L2VtPjwvaDM+DQo8aDI+PGEgbmFtZT0iUmVxdWlyZW1lbnRzIj48L2E+UmVxdWlyZW1lbnRzPC9oMj4NCjx1bD4NCiAgPGxpPlRoZSBjb21tb25seSBpbnN0YWxsZWQgPGEgaHJlZj0iaHR0cDovL3VzMy5waHAubmV0L21hbnVhbC9lbi96bGliLmluc3RhbGxhdGlvbi5waHAiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij56bGliICAgZXh0ZW5zaW9uPC9hPiBpcyByZWNvbW1lbmRlZCBmb3IgSFRUUCBlbmNvZGluZyBmdW5jdGlvbmFsaXR5LiA8L2xpPg0KPC91bD4NCjxici8+PGJyLz4NCjxoMT5Ib3cgRG8gSSBVc2UgSXQ8L2gxPg0KDQoNCjxoMz5HZXQgYSBzaW5nbGUgc2NyaXB0PC9oMz4NCnVzZSA8c3BhbiBjbGFzcz0mcXVvdDtjb2RlSElHSExJR0hUJnF1b3Q7PntjbXNfbW9kdWxlIG1vZHVsZT1TY3JpcHREZXBsb3kgc2NyaXB0SUQ9JnF1b3Q7MSZxdW90O30gPC9zcGFuPiA8YnIvPjxici8+DQo8aDM+R2V0IGEgc2NyaXB0IGdyb3VwPC9oMz4NCnVzZSA8c3BhbiBjbGFzcz0mcXVvdDtjb2RlSElHSExJR0hUJnF1b3Q7PntjbXNfbW9kdWxlIG1vZHVsZT1TY3JpcHREZXBsb3kgZ3JvdXBJRD0mcXVvdDsxJnF1b3Q7fSA8L3NwYW4+IDxici8+PGJyLz4NCjxoMj5BbGwgb3V0cHV0IGlzIGluIHRoZSBYSFRNTCBmb3JtYXQsIHlvdSBzaG91bGQgd29yayBpbiB0aGF0LjwvaDI+DQoNCjxici8+PGJyLz4NCjxoND5QYXJhbXM8L2g0Pg0KPHVsPg0KPGxpPjxzdHJvbmc+c2NyaXB0SUQ9JnF1b3Q7JnF1b3Q7IDwvc3Ryb25nPjxlbT4oUmVxdWlyZWQvb3B0aW9uYWwpPC9lbT4gPGJyLz58IHNldCB0aGUgSUQgUmVxdWlyZWQgb25seSBpZiBncm91cElEIG5vdCBjYWxsZWQ8YnIvPjwvbGk+DQo8bGk+PHN0cm9uZz5ncm91cElEPSZxdW90OyZxdW90OyA8L3N0cm9uZz48ZW0+KFJlcXVpcmVkL29wdGlvbmFsKTwvZW0+IDxici8+fCBzZXQgdGhlIElEIFJlcXVpcmVkIG9ubHkgaWYgc2NyaXB0SUQgbm90IGNhbGxlZDxici8+PC9saT4NCjxsaT48c3Ryb25nPlN0eXBlPSZxdW90OyZxdW90OyA8L3N0cm9uZz48ZW0+KFJlcXVpcmVkLykgSlMvQ1NTPC9lbT4gPGJyLz58IHNldCB0aGUgSUQgUmVxdWlyZWQgb25seSBpZiBzY3JpcHRJRCBub3QgY2FsbGVkPGJyLz48L2xpPg0KDQo8bGk+PHN0cm9uZz5TbWFydHlPbj0mcXVvdDsmcXVvdDsgPC9zdHJvbmc+PGVtPihvcHRpb25hbCkgdHJ1ZS9mYWxzZSA8c3Ryb25nPkRlZmF1bHQ6bnVsbDwvc3Ryb25nPjwvZW0+IDxici8+fCBUaGlzIGxldHMgeW91IG92ZXIgcmlkZSB0aGUgZ2xvYmxlczxici8+PC9saT4NCjxsaT48c3Ryb25nPk1pbmlmeT0mcXVvdDsmcXVvdDsgPC9zdHJvbmc+PGVtPihvcHRpb25hbCkgdHJ1ZS9mYWxzZSA8c3Ryb25nPkRlZmF1bHQ6bnVsbDwvc3Ryb25nPjwvZW0+IDxici8+fCAgVGhpcyBsZXRzIHlvdSBvdmVyIHJpZGUgdGhlIGdsb2JsZXM8YnIvPjwvbGk+DQoNCg0KDQoNCg0KDQo8bGk+PHN0cm9uZz5NZWRpYVR5cGU9JnF1b3Q7JnF1b3Q7IDwvc3Ryb25nPjxlbT4ob3B0aW9uYWwpPC9lbT4gPGJyLz58IHNldCBNZWRpYSB0eXBlIGZvciBDU1MgZmlsZXMgaGVyZS4uLiBvdmVycmlkZXMgZGIgc2V0aW5ncy48YnIvPjwvbGk+DQo8bGk+PHN0cm9uZz5pbXBvcnQ9JnF1b3Q7JnF1b3Q7IDwvc3Ryb25nPjxlbT4ob3B0aW9uYWwpIHRydWUvZmFsc2U8L2VtPiA8YnIvPnwgc2V0IHRoZSBpbmNsdXNpb24gc3R5bGUgZm9yIENTUyBmaWxlcyBoZXJlLi4uIG92ZXJyaWRlcyBkYiBzZXRpbmdzLiBFeDogdHJ1ZSAgZ2l2ZXMgPHN0eWxlIHR5cGU9XCZxdW90O3RleHQvY3NzXCZxdW90Oz5AaW1wb3J0IHVybCgmcXVvdDt1cmwvY3NzZmlsZS5jc3MmcXVvdDspIHNjcmVlbjs8L3N0eWxlPjxici8+PC9saT4NCg0KPGxpPjxzdHJvbmc+Y2FjaGVCdXN0ZXI8L3N0cm9uZz4gPGVtPihvcHRpb25hbCkgPHN0cm9uZz5EZWZhdWx0OmZhbHNlPC9zdHJvbmc+PC9lbT48YnIvPnwgVGhpcyBpcyB0byBpbnN0YW50bHkgdW5jYWNoZSBhbiBzY3JpcHQgb24gdGhlIGNsaWVudCBzaWRlIGFmdGVyIGEgbmV3IHVwbG9hZGVkIHNjcmlwdCBpcyBjcmVhdGVkLi4uIGllOiAxMi5qcz8xMjU1MjI1MDA3ICA8Zm9udCBjb2xvcj0mcXVvdDtyZWQmcXVvdDs+PHN0cm9uZz4oIHRydWUvZmFsc2UgKTwvc3Ryb25nPjwvZm9udD48L2xpPg0KPGxpPjxzdHJvbmc+YXNzaWduPSZxdW90OyZxdW90OyA8L3N0cm9uZz48ZW0+KG9wdGlvbmFsKTwvZW0+IDxici8+fCBBc3NpZ24gdGhlIG91dHB1dCAocmV0dXJuIHRoZSBzbWFydHkgYXNzaWdubWVudCkgIFVzZSBpbiBjb25qdW5jdGlvbiB3aXRoIG91dCB3aXRob3V0IFVSTDwvbGk+DQo8bGk+PHN0cm9uZz5mc2l6ZT0mcXVvdDsmcXVvdDsgPC9zdHJvbmc+PGVtPihvcHRpb25hbCk8L2VtPiA8YnIvPnwgZ2V0IHRoZSBzaXplPC9saT4NCjxsaT48c3Ryb25nPnJvb3RVcmw9JnF1b3Q7JnF1b3Q7IDwvc3Ryb25nPjxlbT4ob3B0aW9uYWwpPC9lbT4gPGJyLz58IFNjcmlwdERlcGxveSBjcmVhdGVzIGEgdGVtcCBkaXJlY3RvciBpbiB0aGUgdXBsb2FkIGZvbGRlci4gIElmIHlvdSBtb3ZlIHRoZSBwYXRoIHRvIHRoZSB1cGxhb2QgdG8gYSBzdWJkb21haW4geW91IG1heSBndWlkZSB0aGUgb3V0cHV0IHdpdGggdGhpcy48L2xpPg0KICAgICAgICA8dWwgc3R5bGU9JnF1b3Q7bGlzdC1zdHlsZS1wb3NpdGlvbjppbnNpZGU7JnF1b3Q7PjxsaT48c3Ryb25nPkV4YXBtbGU6PC9zdHJvbmc+IHlvdSBjaGFuZ2VkIDxDT0RFPiRjb25maWdbJiMwMzk7dXBsb2Fkc19wYXRoJiMwMzk7XSA9ICYjMDM5Oy92YXIvd3d3L3Zob3N0cy9kb21haW4ub3JnL2h0dHBkb2NzL3VwbG9hZHMmIzAzOTs7PC9DT0RFPiA8L2xpPg0KICAgICAgICAgICAgPGxpPjxzdHJvbmc+dG88L3N0cm9uZz4gPENPREU+JGNvbmZpZ1smIzAzOTt1cGxvYWRzX3BhdGgmIzAzOTtdID0gXC92YXIvd3d3L3Zob3N0cy9kb21haW4ub3JnL3N1YmRvbWFpbnMvbWVkaWEvaHR0cGRvY3MvdXBsb2FkcyYjMDM5Ozs8L0NPREU+PC9saT4NCiAgICAgICAgICAgIDxsaT5ub3cgdGhlIHVwbG9hZHMgdXJsIHdvdWxkIG5vdCB3b3JrIGFzIGl0IHdvdWxkIGJlIDx1Pmh0dHA6Ly93d3cuZG9tYWluLm9yZy91cGxvYWRzPC91PjwvbGk+DQogICAgICAgICAgICA8bGk+PHN0cm9uZz5Tbzwvc3Ryb25nPiBpdCBjYW4gYmUgY2hhbmdlZCBoZXJlIHRvIDx1Pmh0dHA6Ly9tZWRpYS5kb21haW4ub3JnL3VwbG9hZHM8L3U+ICA8Zm9udCBjb2xvcj0mcXVvdDtyZWQmcXVvdDs+PHN0cm9uZz4oTk9URTogd2F0Y2ggeW91ciAvICk8L3N0cm9uZz48L2ZvbnQ+PC9saT4NCiAgICAgICAgPC91bD4NCjxsaT48c3Ryb25nPlVSTD0mcXVvdDsmcXVvdDsgPC9zdHJvbmc+PGVtPihvcHRpb25hbCk8L2VtPiA8YnIvPnxvdXRwdXRzIHRoZSB1cmwuPC9saT4NCg0KDQoNCg0KCQkNCg0KDQoNCg0KDQoNCg0KDQo8IS0tPGxpPjxzdHJvbmc+U2FuZEJveD10cnVlIDwvc3Ryb25nPjxlbT4ob3B0aW9uYWwpPC9lbT4gPGJyLz58IGZhbHNlPGJyLz48L2xpPg0KDQo8bGk+PHN0cm9uZz5SVU5hY3Rpb249JmFtcDthbXA7YW1wO2FtcDthbXA7YW1wO2FtcDthbXA7YW1wO2FtcDthbXA7YW1wO2FtcDthbXA7YW1wO2FtcDthbXA7cXVvdDsmYW1wO2FtcDthbXA7YW1wO2FtcDthbXA7YW1wO2FtcDthbXA7YW1wO2FtcDthbXA7YW1wO2FtcDthbXA7YW1wO2FtcDtxdW90OyA8L3N0cm9uZz48ZW0+KG9wdGlvbmFsKTwvZW0+IDxici8+fCBVRFQ8YnIvPnwgVVJMIDxlbT4oLi4vcGx1Z2lucy9mdW5jdGlvbi5maWxlbmFtZS5waHApPC9lbT48YnIvPnwgKk1vcmUgY29taW5nIFNvb24qPGJyLz48L2xpPg0KPGxpPjxzdHJvbmc+TGFuZz0mYW1wO2FtcDthbXA7YW1wO2FtcDthbXA7YW1wO2FtcDthbXA7YW1wO2FtcDthbXA7YW1wO2FtcDthbXA7YW1wO2FtcDtxdW90OyZhbXA7YW1wO2FtcDthbXA7YW1wO2FtcDthbXA7YW1wO2FtcDthbXA7YW1wO2FtcDthbXA7YW1wO2FtcDthbXA7YW1wO3F1b3Q7IDwvc3Ryb25nPjxlbT4ob3B0aW9uYWwpPC9lbT4gPGJyLz58IFVzZSBDb3VudHJ5IENvZGVzIFRvIGR5bmFtaWNseSBzZXQgdGhlIGxhbmd1YWdlIG9mIHRoZSBQYXlQYWwgcGFnZTxici8+PC9saT4tLT4NCg0KPC91bD4NCjxici8+DQoNCjxici8+PGJyLz4NCjxoMj48YSBpZD0iUHJvYmxlbV9Eb21haW4iPjwvYT5Qcm9ibGVtIERvbWFpbjwvaDI+DQo8cD5QYWdlcyB0aGF0IHJlZmVyIHRvIG11bHRpcGxlIENTUyBvciBKYXZhU2NyaXB0IGZpbGVzIG9mdGVuIHN1ZmZlciBmcm9tIHNsb3dlciAgIHBhZ2UgbG9hZHMsIGR1ZSB0byB0aGUgYnJvd3NlciByZXF1ZXN0aW5nIGVhY2ggZmlsZSBpbmRpdmlkdWFsbHkuIE1hbnkgYnJvd3NlcnMgICBhbHNvIGFyZSBsaW1pdGVkIHRvIGEgZmV3IHNpbXVsdGFuZW91cyByZXF1ZXN0cyBwZXIgZG9tYWluLiBUaGUgd2FpdCBmb3IgYSAgIHNlcmllcyBvZiByZXF1ZXN0cyBhbmQgdGhlIHRyYW5zZmVyIG9mIHVub3B0aW1pemVkIGZpbGVzIGNhbiBkcmFtYXRpY2FsbHkgcmVkdWNlICAgdGhlIGNsaWVudC1zaWRlIHBlcmZvcm1hbmNlIG9mIHlvdXIgc2l0ZS4gPC9wPg0KPHA+SGVyZSBhcmUgYSBoYW5kZnVsIG9mIFlhaG9vISYjMDM5O3MgYmVzdCBwcmFjdGljZXMgdGhhdCBhcmUgYWRkcmVzc2VkIGJ5IHRoZSB1c2Ugb2YgU2NyaXB0RGVwbG95LiA8L3A+DQo8dWw+DQogIDxsaT48YSBocmVmPSJodHRwOi8vZGV2ZWxvcGVyLnlhaG9vLmNvbS9wZXJmb3JtYW5jZS9ydWxlcy5odG1sI251bV9odHRwIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+TWFrZSBGZXdlciBIVFRQIFJlcXVlc3RzPC9hPjwvbGk+DQogIDxsaT48YSBocmVmPSJodHRwOi8vZGV2ZWxvcGVyLnlhaG9vLmNvbS9wZXJmb3JtYW5jZS9ydWxlcy5odG1sI2V4cGlyZXMiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5BZGQgYW4gRXhwaXJlcyBvciBhIENhY2hlLUNvbnRyb2wgSGVhZGVyPC9hPjwvbGk+DQogIDxsaT48YSBocmVmPSJodHRwOi8vZGV2ZWxvcGVyLnlhaG9vLmNvbS9wZXJmb3JtYW5jZS9ydWxlcy5odG1sI2d6aXAiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5HemlwIENvbXBvbmVudHM8L2E+PC9saT4NCiAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9kZXZlbG9wZXIueWFob28uY29tL3BlcmZvcm1hbmNlL3J1bGVzLmh0bWwjbWluaWZ5IiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+TWluaWZ5IEphdmFTY3JpcHQgYW5kIENTUzwvYT48L2xpPg0KICA8bGk+PGEgaHJlZj0iaHR0cDovL2RldmVsb3Blci55YWhvby5jb20vcGVyZm9ybWFuY2UvcnVsZXMuaHRtbCNldGFncyIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPkNvbmZpZ3VyZSBFVGFnczwvYT48L2xpPg0KICA8bGk+PGEgaHJlZj0iaHR0cDovL2RldmVsb3Blci55YWhvby5jb20vcGVyZm9ybWFuY2UvcnVsZXMuaHRtbCN1bmRlcjI1IiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+S2VlcCBDb21wb25lbnRzIHVuZGVyIDI1SzwvYT48L2xpPg0KPC91bD4NCjxoMz48YSBuYW1lPSJBY2tub3dsZWRnbWVudHMiPjwvYT5BY2tub3dsZWRnbWVudHM8L2gzPg0KPHA+TWluaWZ5IHdhcyBpbnNwaXJlZCBieSA8YSBocmVmPSJodHRwOi8vY29kZS5nb29nbGUuY29tL3AvanNjc3Njb21wLyIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPmpzY3NzY29tcDwvYT4gYnkgTWF4aW0gTWFydHlueXVrIGFuZCBieSB0aGUgYXJ0aWNsZSAmIzAzOTs8YSBocmVmPSJodHRwOi8vd3d3Lmh1bmxvY2suY29tL2Jsb2dzL1N1cGVyY2hhcmdlZF9KYXZhc2NyaXB0IiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+U3VwZXJjaGFyZ2VkIEphdmFTY3JpcHQ8L2E+JiMwMzk7IGJ5IFBhdHJpY2sgSHVubG9jay4gPC9wPg0KPHA+VGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuY3JvY2tmb3JkLmNvbS9qYXZhc2NyaXB0L2pzbWluLmh0bWwiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5KU01pbiBsaWJyYXJ5PC9hPiB1c2VkIGZvciBKYXZhU2NyaXB0IG1pbmlmaWNhdGlvbiB3YXMgb3JpZ2luYWxseSAgIHdyaXR0ZW4gYnkgRG91Z2xhcyBDcm9ja2ZvcmQgYW5kIHdhcyA8YSBocmVmPSJodHRwOi8vY29kZS5nb29nbGUuY29tL3AvanNtaW4tcGhwIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+cG9ydGVkIHRvIFBIUDwvYT4gYnkgUnlhbiAgIEdyb3ZlIHNwZWNpZmljYWxseSBmb3IgdXNlIGluIE1pbmlmeS4gPC9wPg0KDQoNCjxoMz5TdXBwb3J0PC9oMz4NCjxoND5TY3JlZW5jYXN0cyBmb3IgZXh0cmEgaGVscCB3aWxsIGZhbGxvdy0tLSBvbiB0aGUgVE9ETzwvaDQ+DQo8cD5UaGlzIG1vZHVsZSBkb2VzIG5vdCBpbmNsdWRlIGNvbW1lcmNpYWwgc3VwcG9ydC4gSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+DQo8dWw+DQo8bGk+Rm9yIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIG1vZHVsZSBvciB0byBmaWxlIGEgYnVnIHJlcG9ydCB2aXNpdCA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL3NjcmlwdGRlcGxveSI+dGhlIENNUyBGb3JnZTwvYT4uPC9saT4NCjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyI+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uPC9saT4NCjwvdWw+DQoNCjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPg0KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDA5LCBqZXJlbXlCYXNzIDw8YSBocmVmPSJodHRwOi8vY29yYmVuc3Byb2R1Y3RzLmNvbSI+Y29yYmVuc3Byb2R1Y3RzLmNvbTwvYT4+IEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4NCjxzdHJvbmc+U3VwcG9ydCBtb3JlIG1vZHMgbGlrZSB0aGlzOjwvc3Ryb25nPjxmb3JtIGFjdGlvbj0mcXVvdDtodHRwczovL3d3dy5wYXlwYWwuY29tL2NnaS1iaW4vd2Vic2NyJnF1b3Q7IG1ldGhvZD0mcXVvdDtwb3N0JnF1b3Q7Pg0KPGlucHV0IHR5cGU9JnF1b3Q7aGlkZGVuJnF1b3Q7IG5hbWU9JnF1b3Q7Y21kJnF1b3Q7IHZhbHVlPSZxdW90O19zLXhjbGljayZxdW90Oz4NCjxpbnB1dCB0eXBlPSZxdW90O2hpZGRlbiZxdW90OyBuYW1lPSZxdW90O2hvc3RlZF9idXR0b25faWQmcXVvdDsgdmFsdWU9JnF1b3Q7ODgxNzY3NSZxdW90Oz4NCjxpbnB1dCB0eXBlPSZxdW90O2ltYWdlJnF1b3Q7IHNyYz0mcXVvdDtodHRwczovL3d3dy5wYXlwYWwuY29tL2VuX1VTL2kvYnRuL2J0bl9kb25hdGVfTEcuZ2lmJnF1b3Q7IGJvcmRlcj0mcXVvdDswJnF1b3Q7IG5hbWU9JnF1b3Q7c3VibWl0JnF1b3Q7IGFsdD0mcXVvdDtQYXlQYWwgLSBUaGUgc2FmZXIsIGVhc2llciB3YXkgdG8gcGF5IG9ubGluZSEmcXVvdDs+DQo8aW1nIGFsdD0mcXVvdDsmcXVvdDsgYm9yZGVyPSZxdW90OzAmcXVvdDsgc3JjPSZxdW90O2h0dHBzOi8vd3d3LnBheXBhbC5jb20vZW5fVVMvaS9zY3IvcGl4ZWwuZ2lmJnF1b3Q7IHdpZHRoPSZxdW90OzEmcXVvdDsgaGVpZ2h0PSZxdW90OzEmcXVvdDs+DQo8L2Zvcm0+PGJyLz4NCjxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+DQo8L2RpdiA+PGIgY2xhc3M9JnF1b3Q7cmJvdHRvbSZxdW90Oz48YiBjbGFzcz0mcXVvdDtyNCZxdW90Oz48L2I+PGIgY2xhc3M9JnF1b3Q7cjMmcXVvdDs+PC9iPiA8YiBjbGFzcz0mcXVvdDtyMiZxdW90Oz48L2I+IDxiIGNsYXNzPSZxdW90O3IxJnF1b3Q7PjwvYj48L2I+DQoNCjwvZGl2Pg0KJzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuMTczODg5NjAzOS4xMjc4ODQwMDAwLjEyODEwMTY0OTAuMTI4MTAyNTc1My45NSc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEyODEwMjg0NTcuOTUuMjEudXRtY3NyPWZlZWRidXJuZXJ8dXRtY2NuPUZlZWQ6IGNtc21hZGVzaW1wbGUvYmxvZyAoQ01TIE1hZGUgU2ltcGxlKXx1dG1jbWQ9ZmVlZCc7CiRsYW5nWydxY2EnXSA9ICdQMC04NTQzODcwNDMtMTI3ODg0MDAwMDkxNyc7CiRsYW5nWyd1dG1iJ10gPSAnMTU2ODYxMzUzLjIxLjEwLjEyODEwMjU3NTMnOwokbGFuZ1sndXRtYyddID0gJzE1Njg2MTM1Myc7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lang/ext/sv_SE.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ1NjcmlwdCBEZXBsb3knOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdGJm91bWw7cnN0YSBzdG9wcCBkdSB2aWxsIGcmb3VtbDtyYSAmYXVtbDtyIGF0dCBsJmF1bWw7c2EgaGomYXVtbDtscCc7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnUGxlYXNlIGZlZWwgZnJlZSB0byBsZXQgdXMga25vdyBpZiB0aGVyZSBpcyBhIHdheSB0byBtYWtlIFNjcmlwdERlcGxveSBiZXR0ZXIsIDxhIGhyZWY9Imh0dHA6Ly9oZWxwLmNvcmJlbnNwcm9kdWN0cy5jb20vbWFrZS1jb250YWN0Lmh0bWwiPkNvbnRhY3QgdXMgd2UmIzAzOTtlciBoYXBweSB0byBoZWFyIGZyb20geW91LjwvYT4nOwokbGFuZ1sncmVhbGx5X3VuaW5zdGFsbCddID0gJ0F2aW5zdGFsbGF0aW9uIGF2IGRlbm5hIG1vZHVsIGtvbW1lciBpbnRlIHAmYXJpbmc7dmVya2EgbiZhcmluZztnb24gZGF0YS4gVmlsbCBkdSBmb3J0cyZhdW1sO3R0YT8nOwokbGFuZ1sndW5pbnN0YWxsZWQnXSA9ICdNb2R1bGVuIGF2aW5zdGFsbGVyYWQnOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnTW9kdWwgdmVyc2lvbiAlcyBpbnN0YWxsZXJhZC4nOwokbGFuZ1sndXBncmFkZWQnXSA9ICdNb2R1bGVuIHVwcGdyYWRlcmFkIHRpbGwgdmVyc2lvbiAlcy4nOwokbGFuZ1snQUNUb3B0aW9ucyddID0gJ0Rpc3RyaWJ1dGlvbnMgQWx0ZXJuYXRpdic7CiRsYW5nWydtYW51YWxhc3NpZ25tZW50J10gPSAnU2tyaXB0IGdydXBwZXJpbmdhcic7CiRsYW5nWydIVE1Mc2V0dGluZ3MnXSA9ICdIVE1MIGFsdGVybmF0aXYnOwokbGFuZ1snVmFsc2V0dGluZ3MnXSA9ICdWYWxpZGF0aW9ucyBpbnN0JmF1bWw7bGxuaW5nYXInOwokbGFuZ1snZW4nXSA9ICdFbmdlbHNrYSc7CiRsYW5nWydmciddID0gJ0ZyYW5za2EnOwokbGFuZ1snaXQnXSA9ICdJdGFsaWVuc2thJzsKJGxhbmdbJ2tvJ10gPSAnS29yZWFuc2thJzsKJGxhbmdbJ2phJ10gPSAnSmFwYW5za2EnOwokbGFuZ1snZXMnXSA9ICdTcGFuc2thJzsKJGxhbmdbJ3poLWNuJ10gPSAnS2luZXNpc2thJzsKJGxhbmdbJ25sJ10gPSAnSG9sbCZhdW1sO25kc2thJzsKJGxhbmdbJ2RlJ10gPSAnVHlza2EnOwokbGFuZ1sncGwnXSA9ICdQb2xza2EnOwokbGFuZ1snTG5vbmUnXSA9ICdJbmdhIHZhcm5pbmdhcic7CiRsYW5nWydMMCddID0gJ0xldmVsIDAnOwokbGFuZ1snTDEnXSA9ICdMZXZlbCAxJzsKJGxhbmdbJ0wyJ10gPSAnTGV2ZWwgMic7CiRsYW5nWydjc3MxJ10gPSAnQ1NTIDEnOwokbGFuZ1snY3NzMiddID0gJ0NTUyAyJzsKJGxhbmdbJ2NzczIxJ10gPSAnQ1NTIDIuMSc7CiRsYW5nWydjc3MzJ10gPSAnQ1NTIDMnOwokbGFuZ1snc3ZnJ10gPSAnU1ZHJzsKJGxhbmdbJ3N2Z2Jhc2ljJ10gPSAnU1ZHIGJhc2ljJzsKJGxhbmdbJ3N2Z3RpbnknXSA9ICdTVkcgdGlueSc7CiRsYW5nWydtb2JpbGUnXSA9ICdtb2JpbCc7CiRsYW5nWydhdHNjLXR2J10gPSAnYXRzYy10dic7CiRsYW5nWyd0diddID0gJ0ludGVuZGVkIGZvciB0ZWxldmlzaW9uLXR5cGUgZGV2aWNlcy4nOwokbGFuZ1snbm9uZSddID0gJ2luZ2VuJzsKJGxhbmdbJ3NhdmVWQUxzZXR0aW5ncyddID0gJ1NwYXJhIHZhbGlkZXJpbmdzIGluc3QmYXVtbDtsbG5pbmdhcic7CiRsYW5nWydzZXR0aW5ncyddID0gJ0luc3QmYXVtbDtsbG5pbmdhcic7CiRsYW5nWydzZXR0aW5nc3NhdmVkJ10gPSAnSW5zdCZhdW1sO2xsbmluZ2FybmEgYmxldiBzcGFyYWRlJzsKJGxhbmdbJ2xlYXZlY29kZSddID0gJ1Imb3VtbDtyIGludGUga29kZW4nOwokbGFuZ1snZm9ybWF0Y29kZSddID0gJ0Zvcm1hdGVyYSBrb2RlbiBmaW50JzsKJGxhbmdbJ3NjcmFtYmxlY29kZSddID0gJ1NjcmFtYmxlIHRoZSBjb2RlJzsKJGxhbmdbJ2NsZWFuY29kZSddID0gJ0NsZWFuIHVwIHRoZSBjb2RlIHJlbW92aW5nIHN0dWZmIHRoYXQgZG9lc24mIzAzOTt0IG1hdHRlcic7CiRsYW5nWydzYXZlc2V0dGluZ3MnXSA9ICdTcGFyYSBpbnN0JmF1bWw7bGxuaW5nYXInOwokbGFuZ1snbWFuZ2xldHlwZXRleHQnXSA9ICdIdXIgbWFuIGZvcm1hdGVyYXIga29kZW4nOwokbGFuZ1snYnJpZWYnXSA9ICdCcmllZic7CiRsYW5nWyd2ZXJib3NlJ10gPSAnVmVyYm9zZSc7CiRsYW5nWydjb2RlZml4ZXMnXSA9ICdDb2RlIGZpeGVzJzsKJGxhbmdbJ2ZvcmNlbG93ZXJ0YWdzdGV4dCddID0gJ0ZvcmNlcmEgdGFnZ2FyIHRpbGwgZ2VtZW5lcic7CiRsYW5nWydmb3JjZWxvd2VydGFnc2hlbHAnXSA9ICdGJm91bWw7ciBiJmF1bWw7dHRyZSBYSFRNTC1rb21wYXRpYmlsaXRldCc7CiRsYW5nWydoaWRlbWVzc2FnZXN0ZXh0J10gPSAnSGlkZSBDb2RlTWFuZ2xlciBtZXNzYWdlcyBpbiBib3R0b20gb2YgKHgpaHRtbC1jb2RlJzsKJGxhbmdbJ2luZGVudHdpZHRodGV4dCddID0gJ1dpZHRoIG9mIGluZGVudGF0aW9uJzsKJGxhbmdbJ3NwYWNlcyddID0gJ0JsYW5rc3RlZyc7CiRsYW5nWydkZWJ1Z2xldmVsdGV4dCddID0gJ00mYXVtbDtuZ2QgZGVidWcgb3V0cHV0OiAnOwokbGFuZ1snZGVidWd0ZXh0J10gPSAnS29kIGRlYnVnbCZhdW1sO2dlJzsKJGxhbmdbJ1NjcmlwdF9saXN0J10gPSAnU2tyaXB0JzsKJGxhbmdbJ0Fzc19oZWFkZXInXSA9ICdHcnVwcGVyYWRlIHNrcmlwdCc7CiRsYW5nWydTYW1wbGVUYWcnXSA9ICdFeGVtcGVsIHRhZ2cnOwokbGFuZ1sncHJvbXB0X25ld1NjcmlwdCddID0gJ0wmYXVtbDtnZyB0aWxsIGV0dCBueXR0IHNrcnB0JzsKJGxhbmdbJ3Byb21wdF9uZXdTY3JpcHRBc3MnXSA9ICdBZGQgTmV3IFNjcmlwdCBBc3NpZ25tZW50JzsKJGxhbmdbJ3RpdGxlX0dyb3VwcyddID0gJ1NrcmlwdCBsaXN0YW4gJm91bWw7dmVyIGdydXBwZXInOwokbGFuZ1sndGl0bGVfU2NyaXB0cyddID0gJ0Vua2VsIHNrcmlwdCBsaXN0YSc7CiRsYW5nWydhcmV5b3VzdXJlJ10gPSAnSW1wb3J0YW50OlxuXG5JZiB0aGlzIGlzIGRlbGV0ZWQgYWxsIGluZm9ybWF0aW9uIHdpbGwgYmUgbG9zdCFcblxuSWYgeW91IGhhdmUgdGhpcyBzY3JpcHQgaW4gYSBncm91cCB5b3Ugd2lsbCBicmVhayB0aGUgdGllIGFuZCB3aWxsIG5lZWQgdG8gZWRpdCB0aGUgZ3JvdXAuXG5JdCBpcyBiZXN0IHRvIHN0YXJ0IHRoZSBkZWxldGlvbiBwcm9jZXNzIGZyb20gdGhlIEFzc2lnbm1lbnQgYXJlYS5cblxuWU9VIEFMU08gTE9TRSBZT1VSIFJFVklTSU9OIEhJU1RPUlkgRk9SIFRISVMgU0NSSVBULi4gQVJFIFlPVSBSRUFMWSBTVVJFPz8/JzsKJGxhbmdbJ3NtYXJ0eUhvdyddID0gJ1RoZSBzbWFydHkgd29ya3MgbGlrZSB0aGlzLi4uIFdoZXJlIHlvdSYjMDM5O2QgaGF2ZSB7JHNtYXJ0eS5ub3d9IHlvdSBkbyB7eyRzbWFydHkubm93fX0gIC4gIE5vdyB5b3UgY2FuIGRvIHNtYXJ0eSBzdHVmZic7CiRsYW5nWydhbGwnXSA9ICdQYXNzYXIgYWxsYSBlbmhldGVyJzsKJGxhbmdbJ2F1cmFsJ10gPSAnIEludGVuZGVkIGZvciBzcGVlY2ggc3ludGhlc2l6ZXJzLic7CiRsYW5nWydicmFpbGxlJ10gPSAnSW50ZW5kZWQgZm9yIGJyYWlsbGUgdGFjdGlsZSBmZWVkYmFjayBkZXZpY2VzLic7CiRsYW5nWydlbWJvc3NlZCddID0gJ0ludGVuZGVkIGZvciBwYWdlZCBicmFpbGxlIHByaW50ZXJzLic7CiRsYW5nWydoYW5kaGVsZCddID0gJ0ludGVuZGVkIGZvciBoYW5kaGVsZCBkZXZpY2VzJzsKJGxhbmdbJ3ByaW50J10gPSAnSW50ZW5kZWQgZm9yIHBhZ2VkLCBvcGFxdWUgbWF0ZXJpYWwgYW5kIGZvciBkb2N1bWVudHMgdmlld2VkIG9uIHNjcmVlbiBpbiBwcmludCBwcmV2aWV3IG1vZGUuJzsKJGxhbmdbJ3Byb2plY3Rpb24nXSA9ICcgSW50ZW5kZWQgZm9yIHByb2plY3RlZCBwcmVzZW50YXRpb25zLCBmb3IgZXhhbXBsZSBwcm9qZWN0b3JzIG9yIHByaW50IHRvIHRyYW5zcGFyZW5jaWVzLic7CiRsYW5nWydzY3JlZW4nXSA9ICdJbnRlbmRlZCBwcmltYXJpbHkgZm9yIGNvbG9yIGNvbXB1dGVyIHNjcmVlbnMuJzsKJGxhbmdbJ3R0eSddID0gJ0ludGVuZGVkIGZvciBtZWRpYSB1c2luZyBhIGZpeGVkLXBpdGNoIGNoYXJhY3RlciBncmlkLCBzdWNoIGFzIHRlbGV0eXBlcyBhbmQgdGVybWluYWxzLic7CiRsYW5nWydNZWRpYVR5cGUnXSA9ICdhbGwgOiBTdWl0YWJsZSBmb3IgYWxsIGRldmljZXMuPGJyLz4NCmF1cmFsIDogSW50ZW5kZWQgZm9yIHNwZWVjaCBzeW50aGVzaXplcnMuPGJyLz4NCmJyYWlsbGUgOiBJbnRlbmRlZCBmb3IgYnJhaWxsZSB0YWN0aWxlIGZlZWRiYWNrIGRldmljZXMuPGJyLz4NCmVtYm9zc2VkIDogSW50ZW5kZWQgZm9yIHBhZ2VkIGJyYWlsbGUgcHJpbnRlcnMuPGJyLz4NCmhhbmRoZWxkIDogSW50ZW5kZWQgZm9yIGhhbmRoZWxkIGRldmljZXM8YnIvPg0KcHJpbnQgOiBJbnRlbmRlZCBmb3IgcGFnZWQsIG9wYXF1ZSBtYXRlcmlhbCBhbmQgZm9yIGRvY3VtZW50cyB2aWV3ZWQgb24gc2NyZWVuIGluIHByaW50IHByZXZpZXcgbW9kZS48YnIvPg0KcHJvamVjdGlvbiA6IEludGVuZGVkIGZvciBwcm9qZWN0ZWQgcHJlc2VudGF0aW9ucywgZm9yIGV4YW1wbGUgcHJvamVjdG9ycyBvciBwcmludCB0byB0cmFuc3BhcmVuY2llcy48YnIvPg0Kc2NyZWVuIDogSW50ZW5kZWQgcHJpbWFyaWx5IGZvciBjb2xvciBjb21wdXRlciBzY3JlZW5zLjxici8+DQp0dHkgOiBJbnRlbmRlZCBmb3IgbWVkaWEgdXNpbmcgYSBmaXhlZC1waXRjaCBjaGFyYWN0ZXIgZ3JpZCwgc3VjaCBhcyB0ZWxldHlwZXMgYW5kIHRlcm1pbmFscy48YnIvPg0KdHYgOiBJbnRlbmRlZCBmb3IgdGVsZXZpc2lvbi10eXBlIGRldmljZXMuJzsKJGxhbmdbJ0NhbmNlbGVkJ10gPSAnTiZhcmluZztnb3QgZ2ljayBmZWwuIEFyYmV0ZXQga2FuIGhhIGYmb3VtbDtybG9yYXRzLic7CiRsYW5nWydCdG5BRERFRCddID0gJ0R1IGxhZGUgbnlzcyB0aWxsIGV0dCBueXR0IHNrcmlwdCc7CiRsYW5nWydCdG5FRElURUQnXSA9ICdEdSByZWRpZ2VyYWRlIGV0dCBiZWZpbnRsaWd0IHNrcmlwdCc7CiRsYW5nWydCdG5ERUxFVEVEJ10gPSAnRHUgcmFkZXJhZGUgZXR0IGJlZmludGxpZ3Qgc2tyaXB0JzsKJGxhbmdbJ3R5cGVfbGFiZWwnXSA9ICdUeXAnOwokbGFuZ1sncmV2aXNpb24nXSA9ICdSZXZpc2lvbic7CiRsYW5nWydpc0VkaXQnXSA9ICcmYXVtbDtyIHJlZGlnZXJpbmcnOwokbGFuZ1snZW10cHlHcm91cCddID0gJ0R1IG0mYXJpbmc7c3RlIGwmYXVtbDtnZ2EgdGlsbCBldHQgc2tyaXB0IHRpbGwgZ3J1cHBlbiBpbm5hbiBkdSBhbnJvcGFyIGRldCc7CiRsYW5nWydTY3JpcHRTZXRfbGFiZWwnXSA9ICdTa3JpcHQgSUQnOwokbGFuZ1snc2NyaXB0VHlwZV9sYWJlbCddID0gJ1NrcmlwdCB0eXAnOwokbGFuZ1snU2NyaXB0TmFtZV9sYWJlbCddID0gJ1NrcmlwdCBuYW1uJzsKJGxhbmdbJ1NpbmdsZUNvZGVfbGFiZWwnXSA9ICdTdGFuZGFyZCBTaW5nZWwgc2tyaXB0YW5yb3AnOwokbGFuZ1snR3JvdXB0U2l6ZV9sYWJlbCddID0gJ1RvdGFsdCc7CiRsYW5nWydub3Rlc19sYWJlbCddID0gJ0FudGVja25pbmdhcic7CiRsYW5nWydTaG93VmFsX2xhYmxlJ10gPSAnSCZhcmluZztsbCBtZWRkZWxhbmRlbiAmb3VtbDtwcGEnOwokbGFuZ1snVHVybk9OVmFsX2xhYmxlJ10gPSAnU2wmYXJpbmc7IDxzdHJvbmc+IFAmQXJpbmc7IDwvIHN0cm9uZz4gVmFsaWRlcmluZyc7CiRsYW5nWydob3RMaW5rQ2hlY2tfbGFibGUnXSA9ICdHJm91bWw7ciBlbiBIb3RMaW5rIENoZWNrJzsKJGxhbmdbJ1RydW5PbmhvdExpbmtDaGVjayddID0gJ0R1IG0mYXJpbmc7c3RlIHNsJmFyaW5nOyBwJmFyaW5nOyBIb3RsaW5rIENoZWNrJzsKJGxhbmdbJ2ZpbHRlclByb3BfbGFibGUnXSA9ICcgRmlsdGVyIG91dCBwcm9wZXJ0aWVzIHRvIGhlbHAgdmFsaWRhdGUnOwokbGFuZ1snQ1NTcHJvZmlsZV9sYWJsZSddID0gJyBDU1MgUHJvZmlsJzsKJGxhbmdbJ3VzZXJtZWRpdW1fbGFibGUnXSA9ICcgVXNlciBNZWRpdW0nOwokbGFuZ1snVkFMTGFuZ19sYWJsZSddID0gJ1NwciZhcmluZztrJzsKJGxhbmdbJ3czY0NTU3dhcm5pbmdfbGFibGUnXSA9ICdXM0MgQ1NTIFZhcm5pbmcgTGV2ZWwnOwokbGFuZ1snTWVkaWFUeXBlX2xhYmVsJ10gPSAnTWVkaWFUeXAnOwokbGFuZ1snTWluaWZ5X2xhYmVsJ10gPSAnTWluaWZ5IG9uIE91dHB1dCc7CiRsYW5nWydDcmVhdGlvbkRhdGVfbGFiZWwnXSA9ICdTa2FwYXQgZGF0dW0nOwokbGFuZ1snTW9kaWZlZERhdGVfbGFiZWwnXSA9ICcmQXVtbDtuZHJhdCBkYXR1bSc7CiRsYW5nWydwYXRoT3B0aW9uX2xhYmVsJ10gPSAnVXNlIGEgcGF0aDxlbT4odXNlICZxdW90Oy91cGxvYWRzLy4uLiZxdW90Oyk8L2VtPic7CiRsYW5nWydyb290VVJMT3B0aW9uX2xhYmVsJ10gPSAnVXNlIGEgc3BlY2lmaWMgcm9vdCBVUkw8ZW0+KHVzZSBzY2hlbWEgJnF1b3Q7aHR0cHM6Ly9zdWIuZG9tYWluLnRsZC8mcXVvdDspPC9lbT4nOwokbGFuZ1snR3Jvb3RVUkwnXSA9ICdHbG9iYWwgU2NyaXB0IFJvb3QgVVJMJzsKJGxhbmdbJ2VtcHR5Y2FjaGVFcnJvcl9kb0FEVUlUJ10gPSAnZmFpbGVkIHRvIGVtcHR5IHRoZSBjYWNoZSBhdCc7CiRsYW5nWydlbXB0aWVkQ2FjaF9kb0FEVUlUJ10gPSAndCZvdW1sO21kZSBjYWNoZSBza3JpcHRldCc7CiRsYW5nWydjbGVhcmVkUmV2aXNpb25fZG9BRFVJVCddID0gJ2NsZWFyZWQgdGhlIHJldmlzaW9uIGhpc3RvcnkgZm9yJzsKJGxhbmdbJ0NoZWNrZWRPdXRfZG9BRFVJVCddID0gJ0NoZWNrZWQgb3V0IHNjcmlwdCAnOwokbGFuZ1sncmVsZWFzZWRfZG9BRFVJVCddID0gJ3JlbGVhc2VkIHNjcmlwdCAnOwokbGFuZ1snU2NyaXB0SXNfbGFiZWwnXSA9ICdVc2UgdGhpcyBzY3JpcHQgPGVtPihOb3RlOiBJZiBhIHBhdGggaXMgc2V0LCBpdCB3aWxsIG92ZXIgcmlkZSB0aGlzKTwvZW0+JzsKJGxhbmdbJ2RlYnVnSVRfbGFiZWwnXSA9ICdkZWJ1Z0lUJzsKJGxhbmdbJ2RlYnVnSVRub3RlX2xhYmVsJ10gPSAnPGVtPihNJmFyaW5nO3N0ZSBoYSBGaXJlcGhwIG1vZCk8L2VtPic7CiRsYW5nWydkZWJ1Z1QnXSA9ICdEZWJ1Z2luZyBPcHRpb25zJzsKJGxhbmdbJ0VkaXRIaXN0b3J5J10gPSAnVXNlciBIaXN0b3J5IEVkaXRpbmcnOwokbGFuZ1snbm9uZUluVHlwZSddID0gJzxoMT4gIER1IG0mYXJpbmc7c3RlIGYmb3VtbDtyc3QgbCZhdW1sO2dnYSA8YnIvPiBldHQgc2tyaXB0IGkgZGVuIGgmYXVtbDtyIHR5cGVuIDwvIGgxPic7CiRsYW5nWydyZXZpc2lvblRpdGxlJ10gPSAnUmV2aXNpb25zIEhpc3RvcmlhJzsKJGxhbmdbJ3JldmlzaW9uX2xhYmVsJ10gPSAnPHN0cm9uZz5TbCZhcmluZzsgcCZhcmluZzsgcmV2aXNpb25zIGhpc3RvcmlrZW48L3N0cm9uZz4nOwokbGFuZ1sncmV2aXNpb25fb3AnXSA9ICc8aDE+UmV2aXNpb248L2gxPg0KPGgzPlRydW5pbmcgdGhpcyBvZmYgZG9lcyBub3QgY2xlYXIgdGhlIGhpc3RvcnkgaWYgaXQgd2FzIG9uIGJlZm9yZS4gIExpa2UgaXQgdG8gcGF1c2UuPC9oMz4nOwokbGFuZ1sncmV2aXNpb25fTElNSVRfbGFiZWwnXSA9ICdTJmF1bWw7dHQgcmV2aXNpb25zIGdyJmF1bWw7bnMnOwokbGFuZ1snY2xlYXJSZXYnXSA9ICdSYWRlcmEgaGlzdG9yaWtlbic7CiRsYW5nWydwcmVsb2FkX0NTU2ltYWdlVGl0bGUnXSA9ICdQcmVsb2FkIENzcyBJbWFnZXMnOwokbGFuZ1sncHJlbG9hZF9DU1NpbWFnZV9sYWJlbCddID0gJzxzdHJvbmc+VHJ1biBvbiBQcmVsb2FkZWQgQ3NzIEltYWdlczwvc3Ryb25nPic7CiRsYW5nWydwcmVsb2FkX0NTU2ltYWdlJ10gPSAnPGgxPlByZWxvYWQgQ3NzIEltYWdlczwvaDE+DQo8aDM+SWYgeW91IGhhdmUgeW91ciBzeXN0ZW0gYWxsIHNldCB1cCByaWdodCwgdGhpcyB3aWxsIGhlbHAgeW91IGdldCBhIGZhc3QgcGFyYWxsZWwgZG93biBsb2FkIG9mIGFsbCBlbGVtZW50cy48L2gzPic7CiRsYW5nWydnbG9iYWx1cmwnXSA9ICc8aDE+U2V0IHRoZSByb290IFVSTDwvaDE+DQo8aDM+VXNlZCBmb3Igd2hlbiB5b3UgbmVlZCBTU0wgc3VwcG9ydCBvciB3YW50IHRvIHB1c2ggdGhlIHNjcmlwdHMgdG8gYSBzdWJkb21haW4gdG8gbG9zZSB0aGUgbmVlZGxlcyBjb29raWVzLjwvaDM+JzsKJGxhbmdbJ3NtYXJ0eU9uX2xhYmVsJ10gPSAnPHN0cm9uZz5Qcm9jZXNzIFNtYXJ0eTwvc3Ryb25nPjxici8+IGRhdGEgaW4gYnV0dG9uIGZpZWxkcyc7CiRsYW5nWydzbWFydHlPbiddID0gJzxoMT5Qcm9jZXNzIFNtYXJ0eSBkYXRhPC9oMT4NCjxoMz5XaXRoIHRoaXMgdHVybmVkIG9uIHlvdSBjYW4gc2V0IHRoZSBidXR0b24gZmllbGRzIHdpdGggdGhlIHZhbHVlcyBwYXNzZWQgYnkgb3RoZXIgbW9kdWxlcyBzdWNoIGFzIFByb2R1Y3RzIG9yIENhdGFsb2dlcjwvaDM+JzsKJGxhbmdbJ2ZpbGVUaW1lX2Nzc191cmxzX2xhYmVsJ10gPSAnPHN0cm9uZz5oZWxwIGJyZWFrIGEgY2xpZW50IHNpZGUgY2FjaGU8L3N0cm9uZz4nOwokbGFuZ1snZmlsZVRpbWVfY3NzX3VybHMnXSA9ICc8aDE+aGVscCBicmVhayBhIGNsaWVudCBzaWRlIGNhY2hlPC9oMT4NCjxoMz5UaGlzIGlzIGRvbmUgYnkgYWRkaW5nIGEgZmlsZSBjcmVhdGlvbiB0aW1lIGF0IHRoZSBlbmQgb2YgYSBmaWxlLiAgVHVybmluZyB0aGlzIG9uIHdpbGwgYWRkIHRoaXMgdG8gYWxsIGxvY2FsIHVybHMuIChDU1Mgb25seSBhdG0pIC1Ob3RoaW5nIGlzIGRvbmUgdG8gaG90bGlua3M8L2gzPic7CiRsYW5nWydlZGl0J10gPSAnUmVkaWdlcmEnOwokbGFuZ1snZGVsZXRlJ10gPSAnUmFkZXJhJzsKJGxhbmdbJ0Nsb3NlJ10gPSAnU3QmYXVtbDtuZyc7CiRsYW5nWydPcGVuJ10gPSAnJk91bWw7cHBuYSc7CiRsYW5nWydkaXJFbXB0eSddID0gJ01hcHBlbiB2YXIgdG9tJzsKJGxhbmdbJ2NsZWFuVGVtcCddID0gJ1JhZGVyYSB0ZW1wIG1hcHBlbj8nOwokbGFuZ1sndXJUZW1wUGF0aCddID0gJ0RpbiBjYWNoZSBzJm91bWw7a3YmYXVtbDtnICZhdW1sO3InOwokbGFuZ1snTGFzdE1vZCddID0gJ1NlbmFzdCBtb2RpZmVyYWQnOwokbGFuZ1snY2FjaGVGZXJyb3InXSA9ICdTY3JpcHREZXBsb3kgY291bGQgbm90IG1ha2UgdGhlIGNhY2hlIGZvbGRlciwgY2hlY2sgeW91ciBmaWxlIHByZW1pc3Npb25zIGZvciB0aGUgVXBsYW9kcyBhcmVhLic7CiRsYW5nWydOYW1lJ10gPSAnTmFtbic7CiRsYW5nWydQcm9jY2Vzc2luZyddID0gJ0JlYXJiZXRuaW5nJzsKJGxhbmdbJ1NhdmVkJ10gPSAnU3BhcmFkJzsKJGxhbmdbJ0RvbmUnXSA9ICdLbGFyJzsKJGxhbmdbJ1ZhbGlkYXRpbmcnXSA9ICdWYWxpZGVyYXInOwokbGFuZ1snR3JvdXB0U2V0X2xhYmVsJ10gPSAnR3J1cHBuYW1uJzsKJGxhbmdbJ0dyb3VwdFR5cGVfbGFiZWwnXSA9ICdUeXAgYXYgc2tyaXB0cyc7CiRsYW5nWydTY3JpcHRQaWNrZXJfbGFiZWwnXSA9ICdTa3JpcHQgUG9vbCc7CiRsYW5nWydMSU5FJ10gPSAnTElORSc7CiRsYW5nWydUWVBFJ10gPSAnVFlQRSc7CiRsYW5nWydTVUJUWVBFJ10gPSAnU1VCVFlQRSc7CiRsYW5nWydTVFJJTkcnXSA9ICdTVFJJTkcnOwokbGFuZ1snTUVTU0FHRSddID0gJ01FU1NBR0UnOwokbGFuZ1snTEVWRUwnXSA9ICdMRVZFTCc7CiRsYW5nWydOb3RlcyddID0gJ0FudGVja25pbmdhcic7CiRsYW5nWydXYXJuaW5ncyddID0gJ1Zhcm5pbmdhcic7CiRsYW5nWydFcnJvcnMnXSA9ICdGZWxtZWRkZWxhbmRlbic7CiRsYW5nWydoaWRkZW4nXSA9ICdnJm91bWw7bWRhJzsKJGxhbmdbJ1NjcmlwdCddID0gJ1NrcmlwdCc7CiRsYW5nWydFVVJMUyddID0gJ0V4dHJhaGVyYWRlIFVSTGVyJzsKJGxhbmdbJ1JDU1MnXSA9ICdSZW5kZXJlZCBDU1MnOwokbGFuZ1snU0NTUyddID0gJ0NTUyBTdHJ1a3R1cic7CiRsYW5nWydGQ09OVCddID0gJ0ZpbGlubmVoJmFyaW5nO2xsJzsKJGxhbmdbJ2lVUkwnXSA9ICdiaWxkIFVSTCc7CiRsYW5nWydUeXBlJ10gPSAnVHlwJzsKJGxhbmdbJ1NpemUnXSA9ICdTdG9ybGVrJzsKJGxhbmdbJ1N0YXR1cyddID0gJ1N0YXR1cyc7CiRsYW5nWydob3RsaW5rJ10gPSAnPHN0cm9uZz5Ib3RsaW5raW5nOjwvc3Ryb25nPiBhcHByZWFzIHRvIGJlIGEgaG90bGluay4nOwokbGFuZ1snQnJva2VubGluayddID0gJ0JydXRlbiBsJmF1bWw7bmsnOwokbGFuZ1snTk9jc3NJJ10gPSAnSW5nYSBDU1MgYmlsZGVyJzsKJGxhbmdbJ1llc1ZBbGFzdGVyJ10gPSAnPGgyPllvdSB2YWxpZGF0ZWQhICoqPC9oMj48aW1nIHN0eWxlPSZxdW90O2JvcmRlcjowO3dpZHRoOjg4cHg7aGVpZ2h0OjMxcHgmcXVvdDtzcmM9JnF1b3Q7aHR0cDovL2ppZ3Nhdy53My5vcmcvY3NzLXZhbGlkYXRvci9pbWFnZXMvdmNzcy1ibHVlJnF1b3Q7YWx0PSZxdW90O1ZhbGlkIENTUyEmcXVvdDsgLz48YnIvPiA8c3Ryb25nPioqIHlvdSBhcmUgZmlsdGVyaW5nIGVycm9ycyBhbmQgbWF5IGhhdmUgZmlsdGVyZWQgYSByZWFsIGVycm9yPC9zdHJvbmc+JzsKJGxhbmdbJ1llc1ZBbCddID0gJzxoMj5Zb3UgdmFsaWRhdGVkITwvaDI+PGltZyBzdHlsZT0mcXVvdDtib3JkZXI6MDt3aWR0aDo4OHB4O2hlaWdodDozMXB4JnF1b3Q7c3JjPSZxdW90O2h0dHA6Ly9qaWdzYXcudzMub3JnL2Nzcy12YWxpZGF0b3IvaW1hZ2VzL3Zjc3MtYmx1ZSZxdW90O2FsdD0mcXVvdDtWYWxpZCBDU1MhJnF1b3Q7IC8+JzsKJGxhbmdbJ0NsZWFySW1nJ10gPSAnVGEgYm9ydCBha3R1ZWxsIGJpbGQnOwokbGFuZ1snRmluaXNoJ10gPSAnS2xhcic7CiRsYW5nWydyZXZlcnQnXSA9ICcmQXJpbmc7dGVyc3QmYXVtbDtsbCc7CiRsYW5nWydhcHBseSddID0gJ1ZlcmtzdCZhdW1sO2xsJzsKJGxhbmdbJ2NhbmNlbCddID0gJyZBcmluZztuZ3JhJzsKJGxhbmdbJ2Zvcm1fY2FuY2VsJ10gPSAnJkFyaW5nO25ncmEnOwokbGFuZ1snU2F2ZSddID0gJ1NwYXJhJzsKJGxhbmdbJ2RvbmUnXSA9ICdLbGFyJzsKJGxhbmdbJ2FkZCddID0gJ0wmYXVtbDtnZ3RpbGwnOwokbGFuZ1snc3VibWl0J10gPSAnU2tpY2thJzsKJGxhbmdbJ1JFT1JERVInXSA9ICdSZW9yZGVyJzsKJGxhbmdbJ2Zvcm1fc3VibWl0J10gPSAnU3BhcmEgaW5zdCZhdW1sO2xsbmluZ2FyJzsKJGxhbmdbJ21vZF9wcmVmc190aXRsZSddID0gJ01vZHVsIGluc3QmYXVtbDtsbG5pbmdhcic7CiRsYW5nWydwcmVmc3VwZGF0ZWQnXSA9ICdNb2R1bCBpbnN0JmF1bWw7bGxuaW5nYXJuYSAmYXVtbDtyIHVwcGRhdGVyYWRlJzsKJGxhbmdbJ29wdGlvbnN1cGRhdGVkJ10gPSAndXBwZGF0ZXJhZGUgYWx0ZXJuYXRpdic7CiRsYW5nWydtb2RkZXNjcmlwdGlvbiddID0gJ1NQRUVEIFlPVVIgU0lURSBVUCAuLi4hISEhICZidWxsOyBPdXRwdXQgZHluYW1pYyBKUyBmaWxlcyBhbmQgQ1NTIFdJVEggc21hcnR5Li4uICZidWxsOyBTZXQgdGhlIGZpbGVzIHRvIHVzZSBhIHN1YmRvbWFpbi4uLiAmYnVsbDsgY2FjaGVkLi4uICZidWxsOyBtaW5pZmllZC4uLiAmYnVsbDsgRGlkIEkgbWVudGlvbiB5b3UgY2FuIHVzZSBzbWFydHkgaW4geW91ciBKUyBhbmQgQ1NTIHNjcmlwdCEhISEgLSBTaW1wbGUsIGZsZXhpYmxlISc7CiRsYW5nWyd3ZWxjb21lX3RleHQnXSA9ICc8cD5IZWohPC9wPic7CiRsYW5nWydjaGFuZ2Vsb2cnXSA9ICc8dWw+DQoNCiAgPGxpPlZlcnNpb24gMC4xIEJldGEgcmVsZWFzZS48L2xpPg0KICA8bGk+VmVyc2lvbiAwLjIgbG90cyBvZiBjaGFuZ2VzIHRvIGZpeCBidWcuLi48L2xpPg0KICAgPGxpPlZlcnNpb24gMC4zIHNldCB0aGUgc21hcnR5IHRvIHVzZSB7eyB9fTwvbGk+DQogICAgPGxpPlZlcnNpb24gMC40IGZpeGVkIGJ1Zy4uIGltcHJvdmVkIHRoZSBtaW5pYWZjYXRpb24gdG8gYSBzYXZlcyBvZiB1cCB0byA2MCU8L2xpPg0KCTxsaT5WZXJzaW9uIDAuNy4xIG1hbnkgY2hhbmdlcy4uLiA8c3Ryb25nPkJSRUFLUyBVUEdSQURFPC9zdHJvbmc+IENvcHkgc2NyaXB0cywgaW5zdGFsbCBhbmQgdGhlIHVwbG9hZCBhbmQgcmVpbnN0YWxsLi4uIFNvcnJ5IGJ1dCBpdCB3YXMgbmVlZGVkIGZvciBWRVJTSU9OIEhJU1RPUlkgZml4ZWQgYnVncy4uIG1hbnkgaW1wcm92ZW1lbnRzPC9saT4NCjwvdWw+JzsKJGxhbmdbJ2hlbHAnXSA9ICc8bGluayBtZWRpYT0mcXVvdDtzY3JlZW4mcXVvdDsgaHJlZj0mcXVvdDsuLi9tb2R1bGVzL1NjcmlwdERlcGxveS9DU1MvTWFzdGVyQ1NTLmNzcyZxdW90OyB0eXBlPSZxdW90O3RleHQvY3NzJnF1b3Q7IHJlbD0mcXVvdDtzdHlsZXNoZWV0JnF1b3Q7Lz48ZGl2IGNsYXNzPSZxdW90O1NpbVdyYXAmcXVvdDs+PGIgY2xhc3M9JnF1b3Q7cmJvdHRvbSZxdW90Oz48YiBjbGFzcz0mcXVvdDtyMSZxdW90Oz48L2I+IDxiIGNsYXNzPSZxdW90O3IyJnF1b3Q7PjwvYj48YiBjbGFzcz0mcXVvdDtyMyZxdW90Oz48L2I+IDxiIGNsYXNzPSZxdW90O3I0JnF1b3Q7PjwvYj48L2I+DQoNCjxkaXYgY2xhc3M9JnF1b3Q7U2ltY29uJnF1b3Q7PiA8aDMgY2xhc3M9JnF1b3Q7QmFja0xpbmsmcXVvdDs+PGEgb25jbGljaz0iamF2YXNjcmlwdDp3aW5kb3cuaGlzdG9yeS5nbygtMSkiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij48PCBCYWNrPC9hPjwvaDM+DQo8aDE+V2hhdCBEb2VzIFRoaXMgRG8/LS0tIHRoaXMgbmVlZHMgdXBkYXRpbmc8L2gxPg0KPGgyPldyaXRlIG1hbmFnZSBhbmQgZGVwbG95IEpTIGFuZCBDU1M8L2gyPg0KPGEgaWQ9IlNjcmlwdERlcGxveSI+PC9hPg0KPHA+U2NyaXB0RGVwbG95IG1vZHVsZSB0aGF0IGNhbiBjb21iaW5lIG11bHRpcGxlIENTUyBvciBKYXZhc2NyaXB0IGZpbGVzLCBjb21wcmVzcyB0aGVpciBjb250ZW50cyAoaS5lLiByZW1vdmFsIG9mIHVubmVjZXNzYXJ5IHdoaXRlc3BhY2UvY29tbWVudHMpLCBhbmQgc2VydmUgdGhlIHJlc3VsdHMgd2l0aCBIVFRQIGVuY29kaW5nIChnemlwL2RlZmxhdGUpIGFuZCBoZWFkZXJzIHRoYXQgYWxsb3cgb3B0aW1hbCBjbGllbnQtc2lkZSBjYWNoaW5nLiBUaGlzIGhlbHBzIHlvdSBmb2xsb3cgc2V2ZXJhbCBvZiBZYWhvbyEmIzAzOTtzIDxhIGhyZWY9Imh0dHA6Ly9kZXZlbG9wZXIueWFob28uY29tL3BlcmZvcm1hbmNlL2luZGV4Lmh0bWwjcnVsZXMiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5SdWxlcyBmb3IgSGlnaCBQZXJmb3JtYW5jZSBXZWIgU2l0ZXM8L2E+LiAoU2VlICZxdW90O1Byb2JsZW0gRG9tYWluJnF1b3Q7IGJlbG93IGZvciBtb3JlIGluZm8uKSA8L3A+DQo8aDM+VGhlIFNob3J0IG9mIGl0PC9oMz4NCjxwPldpcnRlIHlvdXIgc2NyaXB0cywgc2V0IHRoZSBvcmRlciBhbmQgU2NyaXB0RGVwbG95IHdpbGwgZG8gdGhlIHJlc3QhPC9wPg0KPHRhYmxlPg0KICA8dGJvZHk+DQogICAgPHRyPg0KICAgICAgPHRkIHN0eWxlPSZxdW90O0JPUkRFUi1SSUdIVDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctUklHSFQ6IDVweDsgQk9SREVSLVRPUDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctTEVGVDogNXB4OyBQQURESU5HLUJPVFRPTTogNXB4OyBCT1JERVItTEVGVDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctVE9QOiA1cHg7IEJPUkRFUi1CT1RUT006ICNhYWEgMXB4IHNvbGlkJnF1b3Q7PjxzdHJvbmc+QmVmb3JlPC9zdHJvbmc+PC90ZD4NCiAgICAgIDx0ZCBzdHlsZT0mcXVvdDtCT1JERVItUklHSFQ6ICNhYWEgMXB4IHNvbGlkOyBQQURESU5HLVJJR0hUOiA1cHg7IEJPUkRFUi1UT1A6ICNhYWEgMXB4IHNvbGlkOyBQQURESU5HLUxFRlQ6IDVweDsgUEFERElORy1CT1RUT006IDVweDsgQk9SREVSLUxFRlQ6ICNhYWEgMXB4IHNvbGlkOyBQQURESU5HLVRPUDogNXB4OyBCT1JERVItQk9UVE9NOiAjYWFhIDFweCBzb2xpZCZxdW90Oz48aW1nIHNyYz0mcXVvdDtodHRwOi8vbXJjbGF5Lm9yZy93cC1jb250ZW50L3VwbG9hZHMvMjAwOC8wOS9maWRkbGVyX2JlZm9yZS5wbmcmcXVvdDsgYWx0PSZxdW90O2FmdGVyJnF1b3Q7IC8+PC90ZD4NCiAgICA8L3RyPg0KICAgIDx0cj4NCiAgICAgIDx0ZCBzdHlsZT0mcXVvdDtCT1JERVItUklHSFQ6ICNhYWEgMXB4IHNvbGlkOyBQQURESU5HLVJJR0hUOiA1cHg7IEJPUkRFUi1UT1A6ICNhYWEgMXB4IHNvbGlkOyBQQURESU5HLUxFRlQ6IDVweDsgUEFERElORy1CT1RUT006IDVweDsgQk9SREVSLUxFRlQ6ICNhYWEgMXB4IHNvbGlkOyBQQURESU5HLVRPUDogNXB4OyBCT1JERVItQk9UVE9NOiAjYWFhIDFweCBzb2xpZCZxdW90Oz48c3Ryb25nPkFmdGVyPC9zdHJvbmc+PC90ZD4NCiAgICAgIDx0ZCBzdHlsZT0mcXVvdDtCT1JERVItUklHSFQ6ICNhYWEgMXB4IHNvbGlkOyBQQURESU5HLVJJR0hUOiA1cHg7IEJPUkRFUi1UT1A6ICNhYWEgMXB4IHNvbGlkOyBQQURESU5HLUxFRlQ6IDVweDsgUEFERElORy1CT1RUT006IDVweDsgQk9SREVSLUxFRlQ6ICNhYWEgMXB4IHNvbGlkOyBQQURESU5HLVRPUDogNXB4OyBCT1JERVItQk9UVE9NOiAjYWFhIDFweCBzb2xpZCZxdW90Oz48aW1nIHNyYz0mcXVvdDtodHRwOi8vbXJjbGF5Lm9yZy93cC1jb250ZW50L3VwbG9hZHMvMjAwOC8wOS9maWRkbGVyX2FmdGVyLnBuZyZxdW90OyBhbHQ9JnF1b3Q7YmVmb3JlJnF1b3Q7IC8+PC90ZD4NCiAgICA8L3RyPg0KICA8L3Rib2R5Pg0KPC90YWJsZT4NCg0KDQoNCjxoMj48YSBpZD0iRmVhdHVyZXMiPjwvYT5GZWF0dXJlczwvaDI+DQo8dWw+DQogIDxsaT5Db21iaW5lcyBhbmQgbWluaWZpZXMgbXVsdGlwbGUgQ1NTIG9yIEphdmFTY3JpcHQgZmlsZXMgaW50byBhIHNpbmdsZSAgIGRvd25sb2FkIDwvbGk+DQogIDxsaT5Vc2VzIGFuIDxhIGhyZWY9Imh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC9taW5pZnkvc291cmNlL2Jyb3dzZS90cnVuay9taW4vbGliL0pTTWluLnBocCIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPmVuaGFuY2VkIHBvcnQ8L2E+IG9mIERvdWdsYXMgQ3JvY2tmb3JkJiMwMzk7cyA8YSBocmVmPSJodHRwOi8vd3d3LmNyb2NrZm9yZC5jb20vamF2YXNjcmlwdC9qc21pbi5odG1sIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+SlNNaW4gICBsaWJyYXJ5PC9hPiBhbmQgY3VzdG9tIGNsYXNzZXMgdG8gbWluaWZ5IDxhIGhyZWY9Imh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC9taW5pZnkvc291cmNlL2Jyb3dzZS90cnVuay9taW4vbGliL01pbmlmeS9DU1MucGhwIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+Q1NTPC9hPiBhbmQgPGEgaHJlZj0iaHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL21pbmlmeS9zb3VyY2UvYnJvd3NlL3RydW5rL21pbi9saWIvTWluaWZ5L0hUTUwucGhwIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+SFRNTDwvYT48L2xpPg0KICA8bGk+Q2FjaGVzIHNlcnZlci1zaWRlIHRvIGF2b2lkIGRvaW5nIHVubmVjZXNzYXJ5IHdvcmsgPC9saT4NCiAgPGxpPlJlc3BvbmRzIHdpdGggYW4gSFRUUCAzMDQgKE5vdCBNb2RpZmllZCkgcmVzcG9uc2Ugd2hlbiB0aGUgYnJvd3NlciBoYXMgYW4gICB1cC10by1kYXRlIGNhY2hlIGNvcHkgKiogPC9saT4NCiAgPGxpPk1vc3QgbW9kdWxlcyBhcmUgbGF6eS1sb2FkZWQgYXMgbmVlZGVkICgzMDQgcmVzcG9uc2VzIHVzZSBtaW5pbWFsIGNvZGUpICAqKiA8L2xpPg0KICA8bGk+QXV0b21hdGljYWxseSByZXdyaXRlcyByZWxhdGl2ZSBVUklzIGluIGNvbWJpbmVkIENTUyBmaWxlcyB0byBwb2ludCB0byB2YWxpZCBsb2NhdGlvbnMgPC9saT4NCiAgPGxpPldpdGggY2FjaGluZyBlbmFibGVkLCBTY3JpcHREZXBsb3kgaXMgY2FwYWJsZSBvZiBoYW5kbGluZyBodW5kcmVkcyBvZiByZXF1ZXN0cyBwZXIgc2Vjb25kIG9uIGEgbW9kZXJhdGVseSBwb3dlcmZ1bCBzZXJ2ZXIuIDwvbGk+DQogIDxsaT5Db250ZW50LUVuY29kaW5nOiBnemlwLCBiYXNlZCBvbiByZXF1ZXN0IGhlYWRlcnMuIENhY2hpbmcgYWxsb3dzIGl0IHNvIHNlcnZlIGd6aXBwZWQgZmlsZXMgZmFzdGVyIHRoYW4gQXBhY2hlJiMwMzk7cyBtb2RfZGVmbGF0ZSBvcHRpb24hIDwvbGk+DQo8L3VsPg0KPGgzPjxlbT48c3Ryb25nPioqIE5vdGU6PC9zdHJvbmc+IEl0IGlzIGJlc3QgdG8gdXNlIGEgLmh0YWNjZXNzIHNjcmlwdCB0byBzZXQgdGhlIGFnZSB0aW1lcy4gU2NyaXB0RGVwbG95IGlzIGRlc2lnbmVkIGZvciBlZmZpY2llbmN5LCBidXQgZm9yIHZlcnkgaGlnaCB0cmFmZmljIHNpdGVzLCBTY3JpcHREZXBsb3kgbWF5IHNlcnZlIGZpbGVzIHNsb3dlciB0aGFuIHlvdXIgSFRUUGQgZHVlIHRvIHRoZSBDR0kgb3ZlcmhlYWQgb2YgUEhQLiAgVG8gb3ZlciBjb21lIHRoaXMgSnVzdCBjaGVjayAmcXVvdDt1c2UgLmh0YWNjZXNzIGluIG9wdGlvbnMmcXVvdDs8L2VtPjwvaDM+DQo8aDI+PGEgbmFtZT0iUmVxdWlyZW1lbnRzIj48L2E+UmVxdWlyZW1lbnRzPC9oMj4NCjx1bD4NCiAgPGxpPlRoZSBjb21tb25seSBpbnN0YWxsZWQgPGEgaHJlZj0iaHR0cDovL3VzMy5waHAubmV0L21hbnVhbC9lbi96bGliLmluc3RhbGxhdGlvbi5waHAiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij56bGliICAgZXh0ZW5zaW9uPC9hPiBpcyByZWNvbW1lbmRlZCBmb3IgSFRUUCBlbmNvZGluZyBmdW5jdGlvbmFsaXR5LiA8L2xpPg0KPC91bD4NCjxici8+PGJyLz4NCjxoMT5Ib3cgRG8gSSBVc2UgSXQ8L2gxPg0KDQoNCjxoMz5HZXQgYSBzaW5nbGUgc2NyaXB0PC9oMz4NCnVzZSA8c3BhbiBjbGFzcz0mcXVvdDtjb2RlSElHSExJR0hUJnF1b3Q7PntjbXNfbW9kdWxlIG1vZHVsZT1TY3JpcHREZXBsb3kgc2NyaXB0SUQ9JnF1b3Q7MSZxdW90O30gPC9zcGFuPiA8YnIvPjxici8+DQo8aDM+R2V0IGEgc2NyaXB0IGdyb3VwPC9oMz4NCnVzZSA8c3BhbiBjbGFzcz0mcXVvdDtjb2RlSElHSExJR0hUJnF1b3Q7PntjbXNfbW9kdWxlIG1vZHVsZT1TY3JpcHREZXBsb3kgZ3JvdXBJRD0mcXVvdDsxJnF1b3Q7fSA8L3NwYW4+IDxici8+PGJyLz4NCjxoMj5BbGwgb3V0cHV0IGlzIGluIHRoZSBYSFRNTCBmb3JtYXQsIHlvdSBzaG91bGQgd29yayBpbiB0aGF0LjwvaDI+DQoNCjxici8+PGJyLz4NCjxoND5QYXJhbXM8L2g0Pg0KPHVsPg0KPGxpPjxzdHJvbmc+c2NyaXB0SUQ9JnF1b3Q7JnF1b3Q7IDwvc3Ryb25nPjxlbT4oUmVxdWlyZWQvb3B0aW9uYWwpPC9lbT4gPGJyLz58IHNldCB0aGUgSUQgUmVxdWlyZWQgb25seSBpZiBncm91cElEIG5vdCBjYWxsZWQ8YnIvPjwvbGk+DQo8bGk+PHN0cm9uZz5ncm91cElEPSZxdW90OyZxdW90OyA8L3N0cm9uZz48ZW0+KFJlcXVpcmVkL29wdGlvbmFsKTwvZW0+IDxici8+fCBzZXQgdGhlIElEIFJlcXVpcmVkIG9ubHkgaWYgc2NyaXB0SUQgbm90IGNhbGxlZDxici8+PC9saT4NCjxsaT48c3Ryb25nPlN0eXBlPSZxdW90OyZxdW90OyA8L3N0cm9uZz48ZW0+KFJlcXVpcmVkLykgSlMvQ1NTPC9lbT4gPGJyLz58IHNldCB0aGUgSUQgUmVxdWlyZWQgb25seSBpZiBzY3JpcHRJRCBub3QgY2FsbGVkPGJyLz48L2xpPg0KDQo8bGk+PHN0cm9uZz5TbWFydHlPbj0mcXVvdDsmcXVvdDsgPC9zdHJvbmc+PGVtPihvcHRpb25hbCkgdHJ1ZS9mYWxzZSA8c3Ryb25nPkRlZmF1bHQ6bnVsbDwvc3Ryb25nPjwvZW0+IDxici8+fCBUaGlzIGxldHMgeW91IG92ZXIgcmlkZSB0aGUgZ2xvYmxlczxici8+PC9saT4NCjxsaT48c3Ryb25nPk1pbmlmeT0mcXVvdDsmcXVvdDsgPC9zdHJvbmc+PGVtPihvcHRpb25hbCkgdHJ1ZS9mYWxzZSA8c3Ryb25nPkRlZmF1bHQ6dHJ1ZTwvc3Ryb25nPjwvZW0+IDxici8+fCAgVGhpcyBsZXRzIHlvdSBvdmVyIHJpZGUgdGhlIGdsb2JsZXM8YnIvPjwvbGk+DQoNCg0KDQoNCg0KDQo8bGk+PHN0cm9uZz5NZWRpYVR5cGU9JnF1b3Q7JnF1b3Q7IDwvc3Ryb25nPjxlbT4ob3B0aW9uYWwpPC9lbT4gPGJyLz58IHNldCBNZWRpYSB0eXBlIGZvciBDU1MgZmlsZXMgaGVyZS4uLiBvdmVycmlkZXMgZGIgc2V0aW5ncy48YnIvPjwvbGk+DQo8bGk+PHN0cm9uZz5pbXBvcnQ9JnF1b3Q7JnF1b3Q7IDwvc3Ryb25nPjxlbT4ob3B0aW9uYWwpIHRydWUvZmFsc2U8L2VtPiA8YnIvPnwgc2V0IHRoZSBpbmNsdXNpb24gc3R5bGUgZm9yIENTUyBmaWxlcyBoZXJlLi4uIG92ZXJyaWRlcyBkYiBzZXRpbmdzLiBFeDogdHJ1ZSAgZ2l2ZXMgPHN0eWxlIHR5cGU9XCZxdW90O3RleHQvY3NzXCZxdW90Oz5AaW1wb3J0IHVybCgmcXVvdDt1cmwvY3NzZmlsZS5jc3MmcXVvdDspIHNjcmVlbjs8L3N0eWxlPjxici8+PC9saT4NCg0KPGxpPjxzdHJvbmc+Y2FjaGVCdXN0ZXI8L3N0cm9uZz4gPGVtPihvcHRpb25hbCkgPHN0cm9uZz5EZWZhdWx0OmZhbHNlPC9zdHJvbmc+PC9lbT48YnIvPnwgVGhpcyBpcyB0byBpbnN0YW50bHkgdW5jYWNoZSBhbiBzY3JpcHQgb24gdGhlIGNsaWVudCBzaWRlIGFmdGVyIGEgbmV3IHVwbG9hZGVkIHNjcmlwdCBpcyBjcmVhdGVkLi4uIGllOiAxMi5qcz8xMjU1MjI1MDA3ICA8Zm9udCBjb2xvcj0mcXVvdDtyZWQmcXVvdDs+PHN0cm9uZz4oIHRydWUvZmFsc2UgKTwvc3Ryb25nPjwvZm9udD48L2xpPg0KPGxpPjxzdHJvbmc+YXNzaWduPSZxdW90OyZxdW90OyA8L3N0cm9uZz48ZW0+KG9wdGlvbmFsKTwvZW0+IDxici8+fCBBc3NpZ24gdGhlIG91dHB1dCAocmV0dXJuIHRoZSBzbWFydHkgYXNzaWdubWVudCkgIFVzZSBpbiBjb25qdW5jdGlvbiB3aXRoIG91dCB3aXRob3V0IFVSTDwvbGk+DQo8bGk+PHN0cm9uZz5mc2l6ZT0mcXVvdDsmcXVvdDsgPC9zdHJvbmc+PGVtPihvcHRpb25hbCk8L2VtPiA8YnIvPnwgZ2V0IHRoZSBzaXplPC9saT4NCjxsaT48c3Ryb25nPnJvb3RVcmw9JnF1b3Q7JnF1b3Q7IDwvc3Ryb25nPjxlbT4ob3B0aW9uYWwpPC9lbT4gPGJyLz58IFNjcmlwdERlcGxveSBjcmVhdGVzIGEgdGVtcCBkaXJlY3RvciBpbiB0aGUgdXBsb2FkIGZvbGRlci4gIElmIHlvdSBtb3ZlIHRoZSBwYXRoIHRvIHRoZSB1cGxhb2QgdG8gYSBzdWJkb21haW4geW91IG1heSBndWlkZSB0aGUgb3V0cHV0IHdpdGggdGhpcy48L2xpPg0KICAgICAgICA8dWwgc3R5bGU9JnF1b3Q7bGlzdC1zdHlsZS1wb3NpdGlvbjppbnNpZGU7JnF1b3Q7PjxsaT48c3Ryb25nPkV4YXBtbGU6PC9zdHJvbmc+IHlvdSBjaGFuZ2VkIDxDT0RFPiRjb25maWdbJiMwMzk7dXBsb2Fkc19wYXRoJiMwMzk7XSA9ICYjMDM5Oy92YXIvd3d3L3Zob3N0cy9kb21haW4ub3JnL2h0dHBkb2NzL3VwbG9hZHMmIzAzOTs7PC9DT0RFPiA8L2xpPg0KICAgICAgICAgICAgPGxpPjxzdHJvbmc+dG88L3N0cm9uZz4gPENPREU+JGNvbmZpZ1smIzAzOTt1cGxvYWRzX3BhdGgmIzAzOTtdID0gXC92YXIvd3d3L3Zob3N0cy9kb21haW4ub3JnL3N1YmRvbWFpbnMvbWVkaWEvaHR0cGRvY3MvdXBsb2FkcyYjMDM5Ozs8L0NPREU+PC9saT4NCiAgICAgICAgICAgIDxsaT5ub3cgdGhlIHVwbG9hZHMgdXJsIHdvdWxkIG5vdCB3b3JrIGFzIGl0IHdvdWxkIGJlIDx1Pmh0dHA6Ly93d3cuZG9tYWluLm9yZy91cGxvYWRzPC91PjwvbGk+DQogICAgICAgICAgICA8bGk+PHN0cm9uZz5Tbzwvc3Ryb25nPiBpdCBjYW4gYmUgY2hhbmdlZCBoZXJlIHRvIDx1Pmh0dHA6Ly9tZWRpYS5kb21haW4ub3JnL3VwbG9hZHM8L3U+ICA8Zm9udCBjb2xvcj0mcXVvdDtyZWQmcXVvdDs+PHN0cm9uZz4oTk9URTogd2F0Y2ggeW91ciAvICk8L3N0cm9uZz48L2ZvbnQ+PC9saT4NCiAgICAgICAgPC91bD4NCjxsaT48c3Ryb25nPlVSTD0mcXVvdDsmcXVvdDsgPC9zdHJvbmc+PGVtPihvcHRpb25hbCk8L2VtPiA8YnIvPnxvdXRwdXRzIHRoZSB1cmwuPC9saT4NCg0KDQoNCg0KCQkNCg0KDQoNCg0KDQoNCg0KDQo8IS0tPGxpPjxzdHJvbmc+U2FuZEJveD10cnVlIDwvc3Ryb25nPjxlbT4ob3B0aW9uYWwpPC9lbT4gPGJyLz58IGZhbHNlPGJyLz48L2xpPg0KDQo8bGk+PHN0cm9uZz5SVU5hY3Rpb249JmFtcDthbXA7YW1wO2FtcDtxdW90OyZhbXA7YW1wO2FtcDthbXA7cXVvdDsgPC9zdHJvbmc+PGVtPihvcHRpb25hbCk8L2VtPiA8YnIvPnwgVURUPGJyLz58IFVSTCA8ZW0+KC4uL3BsdWdpbnMvZnVuY3Rpb24uZmlsZW5hbWUucGhwKTwvZW0+PGJyLz58ICpNb3JlIGNvbWluZyBTb29uKjxici8+PC9saT4NCjxsaT48c3Ryb25nPkxhbmc9JmFtcDthbXA7YW1wO2FtcDtxdW90OyZhbXA7YW1wO2FtcDthbXA7cXVvdDsgPC9zdHJvbmc+PGVtPihvcHRpb25hbCk8L2VtPiA8YnIvPnwgVXNlIENvdW50cnkgQ29kZXMgVG8gZHluYW1pY2x5IHNldCB0aGUgbGFuZ3VhZ2Ugb2YgdGhlIFBheVBhbCBwYWdlPGJyLz48L2xpPi0tPg0KDQo8L3VsPg0KPGJyLz4NCg0KPGJyLz48YnIvPg0KPGgyPjxhIGlkPSJQcm9ibGVtX0RvbWFpbiI+PC9hPlByb2JsZW0gRG9tYWluPC9oMj4NCjxwPlBhZ2VzIHRoYXQgcmVmZXIgdG8gbXVsdGlwbGUgQ1NTIG9yIEphdmFTY3JpcHQgZmlsZXMgb2Z0ZW4gc3VmZmVyIGZyb20gc2xvd2VyICAgcGFnZSBsb2FkcywgZHVlIHRvIHRoZSBicm93c2VyIHJlcXVlc3RpbmcgZWFjaCBmaWxlIGluZGl2aWR1YWxseS4gTWFueSBicm93c2VycyAgIGFsc28gYXJlIGxpbWl0ZWQgdG8gYSBmZXcgc2ltdWx0YW5lb3VzIHJlcXVlc3RzIHBlciBkb21haW4uIFRoZSB3YWl0IGZvciBhICAgc2VyaWVzIG9mIHJlcXVlc3RzIGFuZCB0aGUgdHJhbnNmZXIgb2YgdW5vcHRpbWl6ZWQgZmlsZXMgY2FuIGRyYW1hdGljYWxseSByZWR1Y2UgICB0aGUgY2xpZW50LXNpZGUgcGVyZm9ybWFuY2Ugb2YgeW91ciBzaXRlLiA8L3A+DQo8cD5IZXJlIGFyZSBhIGhhbmRmdWwgb2YgWWFob28hJiMwMzk7cyBiZXN0IHByYWN0aWNlcyB0aGF0IGFyZSBhZGRyZXNzZWQgYnkgdGhlIHVzZSBvZiBTY3JpcHREZXBsb3kuIDwvcD4NCjx1bD4NCiAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9kZXZlbG9wZXIueWFob28uY29tL3BlcmZvcm1hbmNlL3J1bGVzLmh0bWwjbnVtX2h0dHAiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5NYWtlIEZld2VyIEhUVFAgUmVxdWVzdHM8L2E+PC9saT4NCiAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9kZXZlbG9wZXIueWFob28uY29tL3BlcmZvcm1hbmNlL3J1bGVzLmh0bWwjZXhwaXJlcyIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPkFkZCBhbiBFeHBpcmVzIG9yIGEgQ2FjaGUtQ29udHJvbCBIZWFkZXI8L2E+PC9saT4NCiAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9kZXZlbG9wZXIueWFob28uY29tL3BlcmZvcm1hbmNlL3J1bGVzLmh0bWwjZ3ppcCIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPkd6aXAgQ29tcG9uZW50czwvYT48L2xpPg0KICA8bGk+PGEgaHJlZj0iaHR0cDovL2RldmVsb3Blci55YWhvby5jb20vcGVyZm9ybWFuY2UvcnVsZXMuaHRtbCNtaW5pZnkiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5NaW5pZnkgSmF2YVNjcmlwdCBhbmQgQ1NTPC9hPjwvbGk+DQogIDxsaT48YSBocmVmPSJodHRwOi8vZGV2ZWxvcGVyLnlhaG9vLmNvbS9wZXJmb3JtYW5jZS9ydWxlcy5odG1sI2V0YWdzIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+Q29uZmlndXJlIEVUYWdzPC9hPjwvbGk+DQogIDxsaT48YSBocmVmPSJodHRwOi8vZGV2ZWxvcGVyLnlhaG9vLmNvbS9wZXJmb3JtYW5jZS9ydWxlcy5odG1sI3VuZGVyMjUiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5LZWVwIENvbXBvbmVudHMgdW5kZXIgMjVLPC9hPjwvbGk+DQo8L3VsPg0KPGgzPjxhIG5hbWU9IkFja25vd2xlZGdtZW50cyI+PC9hPkFja25vd2xlZGdtZW50czwvaDM+DQo8cD5NaW5pZnkgd2FzIGluc3BpcmVkIGJ5IDxhIGhyZWY9Imh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC9qc2Nzc2NvbXAvIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+anNjc3Njb21wPC9hPiBieSBNYXhpbSBNYXJ0eW55dWsgYW5kIGJ5IHRoZSBhcnRpY2xlICYjMDM5OzxhIGhyZWY9Imh0dHA6Ly93d3cuaHVubG9jay5jb20vYmxvZ3MvU3VwZXJjaGFyZ2VkX0phdmFzY3JpcHQiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5TdXBlcmNoYXJnZWQgSmF2YVNjcmlwdDwvYT4mIzAzOTsgYnkgUGF0cmljayBIdW5sb2NrLiA8L3A+DQo8cD5UaGUgPGEgaHJlZj0iaHR0cDovL3d3dy5jcm9ja2ZvcmQuY29tL2phdmFzY3JpcHQvanNtaW4uaHRtbCIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPkpTTWluIGxpYnJhcnk8L2E+IHVzZWQgZm9yIEphdmFTY3JpcHQgbWluaWZpY2F0aW9uIHdhcyBvcmlnaW5hbGx5ICAgd3JpdHRlbiBieSBEb3VnbGFzIENyb2NrZm9yZCBhbmQgd2FzIDxhIGhyZWY9Imh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC9qc21pbi1waHAiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5wb3J0ZWQgdG8gUEhQPC9hPiBieSBSeWFuICAgR3JvdmUgc3BlY2lmaWNhbGx5IGZvciB1c2UgaW4gTWluaWZ5LiA8L3A+DQoNCg0KPGgzPlN1cHBvcnQ8L2gzPg0KPGg0PlNjcmVlbmNhc3RzIGZvciBleHRyYSBoZWxwIHdpbGwgZmFsbG93LS0tIG9uIHRoZSBUT0RPPC9oND4NCjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4NCjx1bD4NCjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlIG9yIHRvIGZpbGUgYSBidWcgcmVwb3J0IHZpc2l0IDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvcHBibSI+dGhlIENNUyBGb3JnZTwvYT4uPC9saT4NCjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyI+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uPC9saT4NCjwvdWw+DQoNCjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPg0KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDA5LCBqZXJlbXlCYXNzIDw8YSBocmVmPSJodHRwOi8vY29yYmVuc3Byb2R1Y3RzLmNvbSI+Y29yYmVuc3Byb2R1Y3RzLmNvbTwvYT4+IEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4NCjxzdHJvbmc+U3VwcG9ydCBtb3JlIG1vZHMgbGlrZSB0aGlzOjwvc3Ryb25nPjxmb3JtIGFjdGlvbj0mcXVvdDtodHRwczovL3d3dy5wYXlwYWwuY29tL2NnaS1iaW4vd2Vic2NyJnF1b3Q7IG1ldGhvZD0mcXVvdDtwb3N0JnF1b3Q7Pg0KPGlucHV0IHR5cGU9JnF1b3Q7aGlkZGVuJnF1b3Q7IG5hbWU9JnF1b3Q7Y21kJnF1b3Q7IHZhbHVlPSZxdW90O19zLXhjbGljayZxdW90Oz4NCjxpbnB1dCB0eXBlPSZxdW90O2hpZGRlbiZxdW90OyBuYW1lPSZxdW90O2hvc3RlZF9idXR0b25faWQmcXVvdDsgdmFsdWU9JnF1b3Q7ODgxNzY3NSZxdW90Oz4NCjxpbnB1dCB0eXBlPSZxdW90O2ltYWdlJnF1b3Q7IHNyYz0mcXVvdDtodHRwczovL3d3dy5wYXlwYWwuY29tL2VuX1VTL2kvYnRuL2J0bl9kb25hdGVfTEcuZ2lmJnF1b3Q7IGJvcmRlcj0mcXVvdDswJnF1b3Q7IG5hbWU9JnF1b3Q7c3VibWl0JnF1b3Q7IGFsdD0mcXVvdDtQYXlQYWwgLSBUaGUgc2FmZXIsIGVhc2llciB3YXkgdG8gcGF5IG9ubGluZSEmcXVvdDs+DQo8aW1nIGFsdD0mcXVvdDsmcXVvdDsgYm9yZGVyPSZxdW90OzAmcXVvdDsgc3JjPSZxdW90O2h0dHBzOi8vd3d3LnBheXBhbC5jb20vZW5fVVMvaS9zY3IvcGl4ZWwuZ2lmJnF1b3Q7IHdpZHRoPSZxdW90OzEmcXVvdDsgaGVpZ2h0PSZxdW90OzEmcXVvdDs+DQo8L2Zvcm0+PGJyLz4NCjxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+DQo8L2RpdiA+PGIgY2xhc3M9JnF1b3Q7cmJvdHRvbSZxdW90Oz48YiBjbGFzcz0mcXVvdDtyNCZxdW90Oz48L2I+PGIgY2xhc3M9JnF1b3Q7cjMmcXVvdDs+PC9iPiA8YiBjbGFzcz0mcXVvdDtyMiZxdW90Oz48L2I+IDxiIGNsYXNzPSZxdW90O3IxJnF1b3Q7PjwvYj48L2I+DQoNCjwvZGl2Pg0KJzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuOTA2MDUyNjQyLjEyNjc4MzU3MzQuMTI4MDQyNDk5MC4xMjgwNDQxMTU5LjE0OCc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEyODA0MjQ5OTAuMTQ3LjkudXRtY2NuPShyZWZlcnJhbCl8dXRtY3NyPWZvcnVtLmNtc21hZGVzaW1wbGUub3JnfHV0bWNjdD0vfHV0bWNtZD1yZWZlcnJhbCc7CiRsYW5nWydxY2EnXSA9ICdQMC0xNjA1MTgzMDcwLTEyNjc4MzU3MzM4NjUnOwokbGFuZ1sndXRtYyddID0gJzE1Njg2MTM1Myc7CiRsYW5nWyd1dG1iJ10gPSAnMTU2ODYxMzUzJzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/_notes/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/class.adminHeaderScripts.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCi8qKg0KICogTW9kdWxlOiBTY3JpcHREZXBsb3kgLSBNaW5pZnkgYW5kIGRlcGxveW1lbnQgb2YgSlMgQ1NTIGFuZCBIVE1MDQogKiANCiAqIA0KICogQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykNCiAqIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnDQogKiBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvc2NyaXB0ZGVwbG95Lw0KICogDQogKiBAcGFja2FnZSBTY3JpcHREZXBsb3kNCiAqIEBhdXRob3IgamVyZW15QmFzcyA8amVyZW15QmFzc0BjYWJsZW9uZS5uZXQ+DQogKiBAY29weXJpZ2h0IEplcmVteSBCYXNzDQogKiBAbGljZW5zZSBodHRwOi8vd3d3LmdudS5vcmcvY29weWxlZnQvZ3BsLmh0bWwgRnJlZWx5IGF2YWlsYWJsZSB1bmRlciBHUEwNCiAqLyANCg0KaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7DQpjbGFzcyBhZG1pbkhlYWRlclNjcmlwdHMgZXh0ZW5kcyBTY3JpcHREZXBsb3l7DQoNCg0KICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoKXsNCiAgICBwYXJlbnQ6Ol9fY29uc3RydWN0KCk7DQogICAgJHRoaXMtPl9kYXRhID0gYXJyYXkoKTsNCiAgfQ0KDQoJLy8kQ01TX1VTRVJfS0VZPUNNU19TRUNVUkVfUEFSQU1fTkFNRS4nPScuJF9TRVNTSU9OW0NNU19VU0VSX0tFWV07DQoJZnVuY3Rpb24ganNOY3NzKCRwYWNrYWdlPScnKXsNCgkJZ2xvYmFsICRnQ21zOw0KCQkkZGlyID0gJGdDbXMtPmNvbmZpZ1sncm9vdF91cmwnXTsNCgkJcmV0dXJuICINCg0KCQk8bGluayBtZWRpYT0nc2NyZWVuJyBocmVmPSckZGlyL21vZHVsZXMvU2NyaXB0RGVwbG95L0NTUy9mb250cy9mb250LmNzcycgdHlwZT0ndGV4dC9jc3MnIHJlbD0nc3R5bGVzaGVldCcgLz4NCgkJPGxpbmsgbWVkaWE9J3NjcmVlbicgaHJlZj0nJGRpci9tb2R1bGVzL1NjcmlwdERlcGxveS9DU1MvTWFzdGVyQ1NTLmNzcycgdHlwZT0ndGV4dC9jc3MnIHJlbD0nc3R5bGVzaGVldCcgLz4NCgkJPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnIHNyYz0naHR0cDovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeS8xLjQuMi9qcXVlcnkubWluLmpzICc+PC9zY3JpcHQ+DQoJCTxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0JyBzcmM9J2h0dHA6Ly9hamF4Lmdvb2dsZWFwaXMuY29tL2FqYXgvbGlicy9qcXVlcnl1aS8xLjguNC9qcXVlcnktdWkubWluLmpzJz48L3NjcmlwdD4NCgkJPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnIHNyYz0naHR0cDovL2Nkbi5qcXVlcnl0b29scy5vcmcvMS4yLjQvYWxsL2pxdWVyeS50b29scy5taW4uanMnPjwvc2NyaXB0Pg0KCQk8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCcgc3JjPSdodHRwOi8vYWpheC5taWNyb3NvZnQuY29tL2FqYXgvanF1ZXJ5LnZhbGlkYXRlLzEuNy9qcXVlcnkudmFsaWRhdGUubWluLmpzJz48L3NjcmlwdD4NCgkJPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnIHNyYz0nJGRpci9tb2R1bGVzL1NjcmlwdERlcGxveS9pbmNsdWRlcy96ZXJvY2xpcGJvYXJkL1plcm9DbGlwYm9hcmQuanMnPjwvc2NyaXB0Pg0KCQk8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCcgc3JjPSckZGlyL21vZHVsZXMvU2NyaXB0RGVwbG95L2luY2x1ZGVzL2pxdWVyeS5jb2xvcmJveC1taW4uanMnPjwvc2NyaXB0Pg0KCQk8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCcgc3JjPSckZGlyL21vZHVsZXMvU2NyaXB0RGVwbG95L2luY2x1ZGVzL2pxdWVyeS5ob3RrZXlzLm1pbi5qcyc+PC9zY3JpcHQ+DQoJCTxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0JyBzcmM9JyRkaXIvbW9kdWxlcy9TY3JpcHREZXBsb3kvaW5jbHVkZXMvanF1ZXJ5LnRleHRhcmVhLmpzJz48L3NjcmlwdD4NCgkJPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnIHNyYz0nJGRpci9tb2R1bGVzL1NjcmlwdERlcGxveS9pbmNsdWRlcy9qcXVlcnkuc2Nyb2xsVG8tbWluLmpzJz48L3NjcmlwdD4NCgkJPHNjcmlwdCBsYW5ndWFnZT0nSmF2YXNjcmlwdCcgdHlwZT0ndGV4dC9qYXZhc2NyaXB0JyBzcmM9JyRkaXIvbW9kdWxlcy9TY3JpcHREZXBsb3kvaW5jbHVkZXMvZWRpdF9hcmVhL2VkaXRfYXJlYV9mdWxsLmpzJz48L3NjcmlwdD4NCg0KCQkNCgkJPGxpbmsgbWVkaWE9J3NjcmVlbicgaHJlZj0nJGRpci9tb2R1bGVzL1NjcmlwdERlcGxveS9DU1Mvc3R5bGUuY3NzJyB0eXBlPSd0ZXh0L2NzcycgcmVsPSdzdHlsZXNoZWV0JyAvPg0KCQk8bGluayBtZWRpYT0nc2NyZWVuJyBocmVmPSckZGlyL21vZHVsZXMvU2NyaXB0RGVwbG95L2luY2x1ZGVzL2FkZG9ucy9wYWdlci9qcXVlcnkudGFibGVzb3J0ZXIucGFnZXIuY3NzJyB0eXBlPSd0ZXh0L2NzcycgcmVsPSdzdHlsZXNoZWV0JyAvPg0KCQk8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCcgc3JjPSckZGlyL21vZHVsZXMvU2NyaXB0RGVwbG95L2luY2x1ZGVzL2pxdWVyeS50YWJsZXNvcnRlci5taW4uanMnPjwvc2NyaXB0Pg0KCQk8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCcgc3JjPSckZGlyL21vZHVsZXMvU2NyaXB0RGVwbG95L2luY2x1ZGVzL2FkZG9ucy9wYWdlci9qcXVlcnkudGFibGVzb3J0ZXIucGFnZXIuanMnPjwvc2NyaXB0Pg0KCQkNCiIuc2VsZjo6YnVpbGRBamF4SlMoKS5zZWxmOjpidWlsZHRhYmxlSlMoJ0lTTycpLiI8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCcgc3JjPScuLi9tb2R1bGVzL1NjcmlwdERlcGxveS9pbmNsdWRlcy9NRV8xLjAwLjAwLmpzJz48L3NjcmlwdD4iOw0KCX0NCglmdW5jdGlvbiBidWlsZEFqYXhKUygpey8vL3B1bGxMb2coJHBhZ2U9MSwkbGltaXQgPSAyMCwkd2hlcmVBUkc9JycpDQoJDQoNCglnbG9iYWwgJGdDbXM7DQoJJGRiID0mICRnQ21zLT5HZXREYigpOw0KCSRkaXIgPSAkZ0Ntcy0+Y29uZmlnWydyb290X3VybCddOw0KCSRBZG1pbmRpciA9ICRkaXIuJy8nLiRnQ21zLT5jb25maWdbJ2FkbWluX2RpciddOw0KCSRyZXN1bHQgPSAnJzsNCg0KCWlmICghaXNzZXQoJGdDbXMtPnVzZXJwcmVmcykpDQoJew0KCQlsb2FkX2FsbF9wcmVmZXJlbmNlcygkdXNlcmlkKTsNCgl9DQoNCgkkdXNlcmxhbmcgPSBzdWJzdHIoJGdDbXMtPnVzZXJwcmVmc1snZGVmYXVsdF9jbXNfbGFuZ3VhZ2UnXSwgMCwgMik7DQoJDQoJCS8vIFN0YXJ0IG9mIHNjcmlwdA0KCQlvYl9zdGFydCgpOyA/PntsaXRlcmFsfTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4NCgkJDQoJCXZhciBhamF4QXJyYXk9bmV3IEFycmF5KCk7DQoJCXZhciBVSUQ9Jyc7DQoJCXZhciBTSUQ9Jyc7DQoJCXZhciBjPTA7DQoJCXZhciB0Ow0KCQl2YXIgdGltZXJfaXNfb249MDsNCgkJdmFyIGxpbmVzID0gbnVsbDsNCgkJdmFyIHRleHQgPSBudWxsOw0KCQl2YXIgY2xpcCA9IG51bGw7DQoJCXZhciBzYXZlZD1mYWxzZTsNCgkJdmFyIGlucHJvY2Nlc3M9ZmFsc2U7DQoJCXZhciBzeW50YXhfaXM9ImpzIjsNCgkJdmFyIFRoZURhdGE9Jyc7DQoJCXZhciBhc3luY0lTPXRydWU7DQoJCXZhciB0aW1lcnMgPSBbXTsNCgkJdmFyIFRpcD0idGlwX2dlbmVyYWxfZ3JvdXBpbmciOw0KCQlmdW5jdGlvbiBjb2RlKCl7fQ0KCQkNCgkJDQoJCWZ1bmN0aW9uIGFqYXhpdChmdW5jdGlvbklTLHBhcmFtYSl7DQoJCQlpZihhc3luY0lTPT1mYWxzZSl7DQoJCQkJJC5hamF4KHthc3luYzpmYWxzZX0pOw0KCQkJCWFzeW5jSVM9dHJ1ZTsNCgkJCX0NCgkJCQkkLnBvc3QoIjw/cGhwIGVjaG8gJEFkbWluZGlyID8+L21vZHVsZWludGVyZmFjZS5waHAiLCB7IA0KCQkJCSAgIG1hY3Q6ICdTY3JpcHREZXBsb3ksbTFfLGFqYXgsMCcsDQoJCQkJICAgc3BfOiAnPD9waHAgZWNobyAkX1NFU1NJT05bQ01TX1VTRVJfS0VZXSA/PicsDQoJCQkJICAgbTFfZnVuY3Rpb246IGZ1bmN0aW9uSVMsDQoJCQkJICAgc2hvd3RlbXBsYXRlOmZhbHNlLA0KCQkJCSAgIG0xX3BhcmFtYTogcGFyYW1hDQoJCQkJICAgfSwNCgkJCQkJZnVuY3Rpb24oZGF0YSl7DQoJCQkJCQkvL2FsZXJ0KGRhdGEpOw0KCQkJCQkJVGhlRGF0YT1kYXRhOw0KCQkJCQkJYWpheEFycmF5WycnK2Z1bmN0aW9uSVMrJyddPWRhdGE7DQoJCQkJCQkvL3dpbmRvdy5zZXRUaW1lb3V0KGNvZGUsIDUwMCk7DQoJCQkJCQlyZXR1cm4gZGF0YTsNCi8vCQkJCQkJDQoJCQkJICAgfSk7DQoJCQkJcmV0dXJuIFRoZURhdGE7DQoJCX0NCgkJLy9hamF4aXQoJ3B1bGxMb2cnLCcxJyk7DQoJCS8vYWpheGl0KCdwdWxsTG9nJywnMSwyMCxpdGVtX25hbWU9XCdTY3JpcHREZXBsb3lcJycpOw0KCQkvL2FqYXhpdCgncHVsbExvZycsJzEsNScpOw0KDQoNCgkJZnVuY3Rpb24gcGFyYW0oIG5hbWUgKXsgbmFtZSA9IG5hbWUucmVwbGFjZSgvW1xbXS8sIlxcXFsiKS5yZXBsYWNlKC9bXF1dLywiXFxcXSIpOw0KCQkJCQl2YXIgcmVnZXhTID0gIltcXD8mXSIrbmFtZSsiPShbXiYjXSopIjsNCgkJCQkJdmFyIHJlZ2V4ID0gbmV3IFJlZ0V4cCggcmVnZXhTICk7DQoJCQkJCXZhciByZXN1bHRzID0gcmVnZXguZXhlYyggd2luZG93LmxvY2F0aW9uLmhyZWYgKTsNCgkJCQkJaWYoIHJlc3VsdHMgPT0gbnVsbCApIHJldHVybiBmYWxzZTsgZWxzZSByZXR1cm4gcmVzdWx0c1sxXTsNCgkJfQkNCgkJZnVuY3Rpb24gc3RvcENvdW50KCl7DQoJCQljbGVhclRpbWVvdXQodCk7DQoJCQl0aW1lcl9pc19vbj0wOw0KCQl9CQ0KDQoJCS8vIGNhbGxiYWNrIGZ1bmN0aW9ucw0KCQlmdW5jdGlvbiBteV9zYXZlKGlkLCBjb250ZW50KXsNCgkJCWFsZXJ0KCJIZXJlIGlzIHRoZSBjb250ZW50IG9mIHRoZSBFZGl0QXJlYSAnIisgaWQgKyInIGFzIHJlY2VpdmVkIGJ5IHRoZSBzYXZlIGNhbGxiYWNrIGZ1bmN0aW9uOlxuIitjb250ZW50KTsNCgkJfQ0KCQkNCgkJZnVuY3Rpb24gbXlfbG9hZChpZCl7DQoJCQllZGl0QXJlYUxvYWRlci5zZXRWYWx1ZShpZCwgIlRoZSBjb250ZW50IGlzIGxvYWRlZCBmcm9tIHRoZSBsb2FkX2NhbGxiYWNrIGZ1bmN0aW9uIGludG8gRWRpdEFyZWEiKTsNCgkJfQ0KCQkNCgkJZnVuY3Rpb24gdGVzdF9zZXRTZWxlY3Rpb25SYW5nZShpZCl7DQoJCQllZGl0QXJlYUxvYWRlci5zZXRTZWxlY3Rpb25SYW5nZShpZCwgMTAwLCAxNTApOw0KCQl9DQoJCQ0KCQlmdW5jdGlvbiB0ZXN0X2dldFNlbGVjdGlvblJhbmdlKGlkKXsNCgkJCXZhciBzZWwgPWVkaXRBcmVhTG9hZGVyLmdldFNlbGVjdGlvblJhbmdlKGlkKTsNCgkJCWFsZXJ0KCJzdGFydDogIitzZWxbInN0YXJ0Il0rIlxuZW5kOiAiK3NlbFsiZW5kIl0pOyANCgkJfQ0KCQkNCgkJZnVuY3Rpb24gdGVzdF9zZXRTZWxlY3RlZFRleHQoaWQpew0KCQkJdGV4dD0gIltSRVBMQUNFRCBTRUxFQ1RJT05dIjsgDQoJCQllZGl0QXJlYUxvYWRlci5zZXRTZWxlY3RlZFRleHQoaWQsIHRleHQpOw0KCQl9DQoJCQ0KCQlmdW5jdGlvbiB0ZXN0X2dldFNlbGVjdGVkVGV4dChpZCl7DQoJCQlhbGVydChlZGl0QXJlYUxvYWRlci5nZXRTZWxlY3RlZFRleHQoaWQpKTsgDQoJCX0NCgkJDQoJCWZ1bmN0aW9uIGVkaXRBcmVhTG9hZGVkKGlkKXsNCgkJCWlmKGlkPT0iZXhhbXBsZV8yIil7DQoJCQkJb3Blbl9maWxlMSgpOw0KCQkJCW9wZW5fZmlsZTIoKTsNCgkJCX0NCgkJfQ0KCQkNCgkJZnVuY3Rpb24gb3Blbl9maWxlMSgpew0KCQkJdmFyIG5ld19maWxlPSB7aWQ6ICJ0b1xcIiwgdGV4dDogIiRhdXRob3JzPSBhcnJheSgpO1xuJG5ld3M9IGFycmF5KCk7Iiwgc3ludGF4OiAncGhwJywgdGl0bGU6ICdiZWF1dGlmdWwgdGl0bGUnfTsNCgkJCWVkaXRBcmVhTG9hZGVyLm9wZW5GaWxlKCdleGFtcGxlXzInLCBuZXdfZmlsZSk7DQoJCX0NCgkJDQoJCWZ1bmN0aW9uIG9wZW5fZmlsZTIoKXsNCgkJCXZhciBuZXdfZmlsZT0ge2lkOiAiRmlsZW5hbWUiLCB0ZXh0OiAiPGEgaHJlZj1cInRvdG9cIj5cblx0Ym91aFxuPC9hPlxuPCEtLSBpdCdzIGEgY29tbWVudCAtLT4iLCBzeW50YXg6ICdodG1sJ307DQoJCQllZGl0QXJlYUxvYWRlci5vcGVuRmlsZSgnZXhhbXBsZV8yJywgbmV3X2ZpbGUpOw0KCQl9DQoJCQ0KCQlmdW5jdGlvbiBjbG9zZV9maWxlMSgpew0KCQkJZWRpdEFyZWFMb2FkZXIuY2xvc2VGaWxlKCdleGFtcGxlXzInLCAidG9cXCIpOw0KCQl9DQoJCQ0KCQlmdW5jdGlvbiB0b29nbGVfZWRpdGFibGUoaWQpew0KCQkJZWRpdEFyZWFMb2FkZXIuZXhlY0NvbW1hbmQoaWQsICdzZXRfZWRpdGFibGUnLCAhZWRpdEFyZWFMb2FkZXIuZXhlY0NvbW1hbmQoaWQsICdpc19lZGl0YWJsZScpKTsNCgkJfQ0KDQoNCg0KDQooZnVuY3Rpb24oJCkgew0KIA0KICAkLmZuLmxpbmVOdW1iZXIgPSBmdW5jdGlvbihvKXsNCgkgIGFyZWE9dGhpczsNCiAgICB2YXIgcyA9IHsNCgkJbWFya19saW5lOiBbbnVsbF0sICAgICAgICAgICAgICAvLyBbc3RyaW5nXSAgIHJlcXVpcmVkLCB1bmxlc3MgeW91IHdhbnQgdG8gZGlzcGxheSBvdXIgdHdlZXRzLiA6KSBpdCBjYW4gYmUgYW4gYXJyYXksIGp1c3QgZG8gWyJ1c2VybmFtZTEiLCJ1c2VybmFtZTIiLCJldGMiXQ0KICAgIAltYXJrX2NsYXNzOiBudWxsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9bc3RyaW5nXSAgIG9wdGlvbmFsIG5hbWUgb2YgbGlzdCBiZWxvbmdpbmcgdG8gdXNlcm5hbWUNCi8vICAgICAgcXVlcnk6IG51bGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFtzdHJpbmddICAgb3B0aW9uYWwgc2VhcmNoIHF1ZXJ5DQogICAgfTsNCiAgICANCiAgICBpZihvKSAkLmV4dGVuZChzLCBvKTsNCiAgICAkLmZuLmV4dGVuZCh7DQovLyAgICAgIGxpbmtVcmw6IGZ1bmN0aW9uKCkgew0KLy8gICAgICAgIHZhciByZXR1cm5pbmcgPSBbXTsNCi8vICAgICAgICB2YXIgcmVnZXhwID0gLygoZnRwfGh0dHB8aHR0cHMpOlwvXC8oXHcrOnswLDF9XHcqQCk/KFxTKykoOlswLTldKyk/KFwvfFwvKFtcdyMhOi4/Kz0mJUAhXC1cL10pKT8pL2dpOw0KLy8gICAgICAgIHRoaXMuZWFjaChmdW5jdGlvbigpIHsNCi8vICAgICAgICAgIHJldHVybmluZy5wdXNoKHRoaXMucmVwbGFjZShyZWdleHAsIjxhIGhyZWY9XCIkMVwiPiQxPC9hPiIpKTsNCi8vICAgICAgICB9KTsNCi8vICAgICAgICByZXR1cm4gJChyZXR1cm5pbmcpOw0KLy8gICAgICB9DQogICAgfSk7DQoJICBpZih0eXBlb2Yocy5tYXJrX2xpbmUpID09ICJzdHJpbmciKXsNCiAgICAgICAgcy5tYXJrX2xpbmUgPSBbcy5tYXJrX2xpbmVdOw0KICAgICAgfQ0KCSAgaWYodHlwZW9mKHMubWFya19jbGFzcykgPT0gInN0cmluZyIpew0KICAgICAgICBzLm1hcmtfY2xhc3MgPSBbcy5tYXJrX2NsYXNzXTsNCiAgICAgIH0NCg0KCWZ1bmN0aW9uIG1hcmtMaW5lKGFyZWEpIHsNCgkJDQoJCQ0KCQkkKCcjZnJhbWVfU0lBJykuY29udGVudHMoKS5maW5kKCcjbGluZV9udW1iZXIgZGl2JykucmVtb3ZlQ2xhc3MoIiIrcy5tYXJrX2NsYXNzKyIiKTsNCgkJCS8vdmFyIGMgPSBjb3VudGxpbmVzKGFyZWEpKzE7DQoJCQl2YXIgYyA9ICQoJyNmcmFtZV9TSUEnKS5jb250ZW50cygpLmZpbmQoIiNsaW5lX251bWJlciBkaXY6bGFzdCIpLmF0dHIoJ2lkJykubWF0Y2goL2xpbmVfKFxkKykvKVsxXTsJDQoJCQlmb3IgKHZhciBrPTE7azxjO2srKyl7DQoJCQkJbWFyaz0nJzsNCgkJCQl0ZXN0PSBmYWxzZTsNCgkJCQl2YXIgTD1zLm1hcmtfbGluZS5sZW5ndGg7DQoJCQkJZm9yKHZhciBqID0gMDsgaiA8IEw7IGorKyl7IA0KCQkJCQlpZihzLm1hcmtfbGluZVtqXT09IGspew0KCQkJCQkJICQoJyNmcmFtZV9TSUEnKS5jb250ZW50cygpLmZpbmQoJyNsaW5lXycgKyBrKS5hZGRDbGFzcygiIitzLm1hcmtfY2xhc3MrIiIpOw0KCQkJCQl9DQoJCQkJfQ0KCQkJfQ0KCQkJcmV0dXJuIGZhbHNlOw0KCX0NCg0KCW1hcmtMaW5lKGFyZWEpOw0KDQoJcmV0dXJuOw0KICB9Ow0KfSkoalF1ZXJ5KTsNCg0KCWZ1bmN0aW9uIGFqYXhTY3JpcHRTdWJtaXQoVVNFUil7DQoJCWlucHJvY2Nlc3M9dHJ1ZTsNCgkJUHJvY2Nlc3Npbmc9ICQoJ2lucHV0W25hbWUkPSJQcm9jY2Vzc2luZyJdJykudmFsKCk7DQoJCQkkKCJib2R5IikuYXBwZW5kKCc8ZGl2IGlkPSJBamF4T3ZlckxheSI+PC9kaXY+PGRpdiBpZD0iQWpheE1lc3NhZ2UiPjxoMj4nK1Byb2NjZXNzaW5nKyc8L2gyPjxpbWcgc3JjPSI8P3BocCBlY2hvICRkaXIgPz4vbW9kdWxlcy9TY3JpcHREZXBsb3kvaW1hZ2VzL3NjcmlwdGRlcGxveS5wbmciIGFsdD0iIiBpZD0iQUpBWGxvZ28iIC8+PGltZyBjbGFzcz0icHJvZ3Jlc3MiIHNyYz0iPD9waHAgZWNobyAkZGlyID8+L21vZHVsZXMvU2NyaXB0RGVwbG95L2ltYWdlcy9hamF4LWxvYWRlci5naWYiIGFsdD0iIi8+PC9kaXY+Jyk7DQoJCQkvLyQoInVsLnVpLXNvcnRhYmxlIikuY2xvc2VzdCgiZm9ybSIpLnNlcmlhbGl6ZSgpKyImbTFfUkVPUkRFUj1SZW9yZGVyIg0KJC5wb3N0KCJtb2R1bGVpbnRlcmZhY2UucGhwIiwgJCgiZm9ybSIpLnNlcmlhbGl6ZSgpKyImbTFfYXBwbHk9QXBwbHkmYWpheHNhdmU9dHJ1ZSZzaG93dGVtcGxhdGU9ZmFsc2UmbTFfU2NyaXB0SXNfaW5wdXQ9IitlZGl0QXJlYUxvYWRlci5nZXRWYWx1ZSgnU0lBJyksDQoJCQkJZnVuY3Rpb24oZGF0YSl7DQoJCQkJCS8vYWxlcnQoIlRoZSBTY3JpcHQgaGFzIGJlZW4gc2F2ZWQiKTsNCgkJCQkJU2F2ZWQ9ICQoJ2lucHV0W25hbWUkPSJTYXZlZCJdJykudmFsKCk7DQoJCQkJCSQoIiNBamF4TWVzc2FnZSIpLmVtcHR5KCkuYXBwZW5kKCc8aDI+JytTYXZlZCsnPC9oMj48aW1nIHNyYz0iPD9waHAgZWNobyAkZGlyID8+L21vZHVsZXMvU2NyaXB0RGVwbG95L2ltYWdlcy9zY3JpcHRkZXBsb3kucG5nIiBhbHQ9IiIgaWQ9IkFKQVhsb2dvIiAvPjxpbWcgY2xhc3M9InByb2dyZXNzIiBzcmM9Ijw/cGhwIGVjaG8gJGRpciA/Pi9tb2R1bGVzL1NjcmlwdERlcGxveS9pbWFnZXMvYWpheC1sb2FkZXIuZ2lmIiBhbHQ9IiIvPicpOw0KCQkJCQlpZigkKCdpbnB1dFtuYW1lJD0ic2NyaXB0VHlwZV9pbnB1dCJdOmNoZWNrZWQnKS52YWwoKT09J0NTUycpcmVsb2FkQ1NTU3R1ZmYoKTsNCgkJCQkJaWYoJCgnaW5wdXRbbmFtZSQ9InNjcmlwdFR5cGVfaW5wdXQiXTpjaGVja2VkJykudmFsKCk9PSdKUycpcmVsb2FkSlNTdHVmZigpOw0KCQkJCQlzYXZlZD10cnVlOw0KCQkJCQlpbnByb2NjZXNzPWZhbHNlOw0KCQkJCQlyZXBvcnRFZGl0U3RhdHVzKFNJRCxVSUQpOw0KCQkJCQkkKCIjQWpheE92ZXJMYXkiKS5yZW1vdmUoKTsNCgkJCSAgIH0pOw0KCX0NCg0KCQ0KCWZ1bmN0aW9uIHJlcG9ydEVkaXRTdGF0dXMoU0lELFVJRCl7DQoJCWRhdGE9YWpheGl0KCdjaGVja191c2VyX2VkaXRpbmcnLCdmYWxzZSx0cnVlLCcrU0lEKycsJytVSUQrJycpOw0KCQlzdG9wQ291bnQoKTsNCgkJLy9hbGVydCgncmVwb3J0aW5nJyk7DQoJCWlmKGRhdGE9dHJ1ZSl7DQoJCQlpZiAoIXRpbWVyX2lzX29uKXsNCgkJCQl0aW1lcl9pc19vbj0xOw0KCQkJCXQ9c2V0VGltZW91dChmdW5jdGlvbigpe3JlcG9ydEVkaXRTdGF0dXMoU0lELFVJRCl9LDEwMDAwKTsNCgkJCX0NCgkJfQ0KCS8vYWpheGl0KCdwdWxsTG9nJywnMSwyMCxpdGVtX25hbWU9XCdTY3JpcHREZXBsb3lcJycpOw0KCX0NCgkNCmZ1bmN0aW9uIHN0b3BUaW1lcihmdW5jKXsNCgkJY2xlYXJJbnRlcnZhbCh0aW1lcnNbZnVuY10pOw0KCX0NCg0KCWZ1bmN0aW9uIHN0YXJ0VGltZXIoZnVuYyx0aW1lKXsNCgkJdGltZXJzW2Z1bmNdID0gc2V0SW50ZXJ2YWwoZnVuYywgdGltZSk7DQoJfQ0KCQ0KCWZ1bmN0aW9uIGVkaXRTdGF0dXMoKXsNCgkJdmFyIHdpZD1qUXVlcnkoJyN0MScpLndpZHRoKCk7DQoJCWpRdWVyeSgnI3QxJykud2lkdGgod2lkKzEpOw0KCX0NCg0KCWZ1bmN0aW9uIGdldFRpcCgpew0KCQlUaXBzID0gWyAidGlwX2dlbmVyYWxfc21hcnR5IiwgInRpcF9nZW5lcmFsX2dyb3VwaW5nIiwgInRpcF9lZGl0b3JfdGFiIiwgInRpcF9lZGl0b3Jfc2VhcmNoTnJlcGxhY2UiLCAidGlwX2VkaXRvcl9yZXNldEhpZ2hsaWdodCIsICJ0aXBfdGVtcGxhdGVfc21hcnR5IiwgInRpcF9ncm91cF9kcmFnTmRyb3AiIF07IA0KCQl2YXIgVGlwID0gVGlwc1tNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqVGlwcy5sZW5ndGgpXTsgDQoJCSQoIiN0aXBlZCIpLmh0bWwoJycrYWpheGl0KCdwdWxsVGlwJyxUaXApKycnKTsNCgl9ICAgICANCg0KCQ0KDQoNCgkNCgkNCgkNCglmdW5jdGlvbiByZWxvYWRDU1NTdHVmZigpew0KCQllcj13cj12YT1mYWxzZTsNCgkJJCgiI0FqYXhNZXNzYWdlIGgyIikuZmFkZU91dCgic2xvdyIsZnVuY3Rpb24oKXsNCgkJCQkJCQkJCQkJCVZhbGlkYXRpbmc9ICQoJ2lucHV0W25hbWUkPSJWYWxpZGF0aW5nIl0nKS52YWwoKTsNCgkJCQkJCQkJCQkJCSAgJCgiI0FqYXhNZXNzYWdlIikuZW1wdHkoKS5hcHBlbmQoJzxoMj4nK1ZhbGlkYXRpbmcrJzwvaDI+PGltZyBzcmM9Ijw/cGhwIGVjaG8gJGRpciA/Pi9tb2R1bGVzL1NjcmlwdERlcGxveS9pbWFnZXMvc2NyaXB0ZGVwbG95LnBuZyIgYWx0PSIiIGlkPSJBSkFYbG9nbyIgLz48aW1nIGNsYXNzPSJwcm9ncmVzcyIgc3JjPSI8P3BocCBlY2hvICRkaXIgPz4vbW9kdWxlcy9TY3JpcHREZXBsb3kvaW1hZ2VzL2FqYXgtbG9hZGVyLmdpZiIgYWx0PSIiLz4nKTsNCgkJCQkJCQkJCQkJCSAgfSk7DQoJCQ0KCQkkKCIjRXJyb3JBcmVhIikuZW1wdHkoKS5hcHBlbmQoJzxpbWcgY2xhc3M9InByb2dyZXNzIiBzcmM9Ijw/cGhwIGVjaG8gJGRpciA/Pi9tb2R1bGVzL1NjcmlwdERlcGxveS9pbWFnZXMvYWpheC1sb2FkZXIuZ2lmIiBhbHQ9IiIvPicpOw0KCQl2YXIgcElTPSQoJ2lucHV0W25hbWUkPSJTY3JpcHRTZXQiXScpLnZhbCgpOw0KCQl2YXIgVVNFUj0kKCdpbnB1dFtuYW1lJD0ic3BfIl0nKS52YWwoKTsNCgkJDQoJCS8vdmFyIGFqYXhfciA9Jyc7DQoJCS8vYWpheF9yID0gYWpheGl0KCd2YWxfSXQnLCdDU1MsJytwSVMrJyx0cnVlJyk7DQoJCS8vYWxlcnQoYWpheF9yKTsNCgkJLy8kKCcjVkFsZWRCbG9jayAuaW5uZXInKS5odG1sKGFqYXhfcik7DQoJCSQucG9zdCgiPD9waHAgZWNobyAkQWRtaW5kaXIgPz4vbW9kdWxlaW50ZXJmYWNlLnBocD9tYWN0PVNjcmlwdERlcGxveSxtMV8sYWpheCwwJnNwXz0iK1VTRVIrIiZtMV9TY3JpcHRTZXQ9IitwSVMrIiZtMV9tb2RlPWVkaXQmc2hvd3RlbXBsYXRlPWZhbHNlJm0xX2Z1bmN0aW9uPXZhbGlkYXRlJm0xX3BhcmFtYT1DU1MsIitwSVMrIix0cnVlIg0KCQkJCQkJCSxmdW5jdGlvbihkYXRhKXsNCgkJCQkJCQkJJCgnI1ZBbGVkQmxvY2sgLmlubmVyJykuaHRtbChkYXRhKTsNCgkJCQkJCQkJRG9uZT0gJCgnaW5wdXRbbmFtZSQ9IkRvbmUiXScpLnZhbCgpOw0KCQkJCQkJCQkkKCIjQWpheE1lc3NhZ2UiKS5lbXB0eSgpLmFwcGVuZCgnPGgyPicrRG9uZSsnPC9oMj4nKTsNCgkJCQkJCQkJJCgiLnByb2dyZXNzIikuZmFkZU91dCgic2xvdyIsZnVuY3Rpb24oKXskKCIucHJvZ3Jlc3MiKS5yZW1vdmUoKTt9KTsNCgkJCQkJCQkJJCgiI0FqYXhPdmVyTGF5LCNBamF4TWVzc2FnZSIpLmZhZGVPdXQoInNsb3ciLGZ1bmN0aW9uKCl7JCgiI0FqYXhPdmVyTGF5LCNBamF4TWVzc2FnZSIpLnJlbW92ZSgpO30pOw0KCQkJCQkJCQkkKCIjRV90cmlnIikuY29sb3Jib3goe3dpZHRoOiI1MDBweCIsDQoJCQkJCQkJCQkgaHRtbDpmdW5jdGlvbigpew0KCQkJCQkJCQkJCQl0ZXh0PSQoIiNFcnJvckFyZWEiKS5odG1sKCk7DQoJCQkJCQkJCQkJCXJldHVybiAnPGRpdiBpZD0icG9wdXBFcnJvckFyZWEiPicrdGV4dCsnPC9kaXY+JzsNCgkJCQkJCQkJCQkJfSwNCgkJCQkJCQkJCSAgb3BhY2l0eTowLjI1DQoJCQkJCQkJCSAgIH0pOwkNCgkJCQkJCQkJJCgiI1dfdHJpZyIpLmNvbG9yYm94KHt3aWR0aDoiNTAwcHgiLA0KCQkJCQkJCQkJCSBodG1sOmZ1bmN0aW9uKCl7DQoJCQkJCQkJCQkJCQl0ZXh0PSQoIiN3YXJuQXJlYSIpLmh0bWwoKTsNCgkJCQkJCQkJCQkJCXJldHVybiAnPGRpdiBpZD0icG9wdXB3YXJuQXJlYSI+Jyt0ZXh0Kyc8L2Rpdj4nOw0KCQkJCQkJCQkJCQkJfSwNCgkJCQkJCQkJCQkgIG9wYWNpdHk6MC4yNQ0KCQkJCQkJCQkJICAgfSk7CQ0KCQkJCQkJCQkkKCIjd2hpY2hGaWx0ZXIiKS50b29sdGlwKHsNCgkJCQkJCQkJCQkJCXRpcDoiI2RlbW90aXAiLA0KCQkJCQkJCQkJCQkJbGF6eTp0cnVlLA0KCQkJCQkJCQkJCQkJcHJlZGVsYXk6NTAsDQoJCQkJCQkJCQkJCQlvbkJlZm9yZVNob3c6IGZ1bmN0aW9uKCkgew0KCQkJCQkJCQkJCQkJCSQoIiNkZW1vdGlwIikuaHRtbCgnPGgxPllvdSBhcmUgZmlsdGVyaW5nPC9oMT4nKyQoIiNmaWx0ZXJQcm9wIikudmFsKCkpOw0KCQkJCQkJCQkJCQkJCX0sDQoJCQkJCQkJCQkJCQlvbkhpZGU6IGZ1bmN0aW9uKCkgew0KCQkJCQkJCQkJCQkJCSQoIiNkZW1vdGlwIikuZW1wdHkoKTsNCgkJCQkJCQkJCQkJCQl9DQoJCQkJCQkJCQkJCQl9KTsNCgkJCQkJCQkJbWFya2xpbmVOdW1iZXIoKTsNCgkJCQkJCQkJJCgiI25vdGVkIikucmVtb3ZlKCk7DQoJCQkJCQkJCSQoJyNzaWRlYmFyJykuYXBwZW5kKCc8ZGl2IGlkPSJub3RlZCI+PC9kaXY+Jyk7DQoJCQkJCQkJCSQoJyNub3RlZCcpLmxvYWQoIjw/cGhwIGVjaG8gJEFkbWluZGlyID8+L21vZHVsZWludGVyZmFjZS5waHA/bWFjdD1TY3JpcHREZXBsb3ksbTFfLGVkaXRfc2NyaXB0LDAmc3BfPSIrVVNFUisiJm0xX1NjcmlwdFNldD0iK3BJUysiJm0xX21vZGU9ZWRpdCZzaG93dGVtcGxhdGU9ZmFsc2UgI25vdGVkIik7DQoJCQkJCQkJCQkJCQkJCQ0KCQkJCQl9KTsNCgkJDQoNCg0KCQkNCgl9DQoJZnVuY3Rpb24gcmVsb2FkSlNTdHVmZigpew0KCQkkKCIjQWpheE1lc3NhZ2UgaDIiKS5mYWRlT3V0KCJzbG93IixmdW5jdGlvbigpew0KCQkJCQkJCQkJCQkJICAkKCIjQWpheE1lc3NhZ2UiKS5lbXB0eSgpLmFwcGVuZCgnPGgyPkRvbmU8L2gyPjxpbWcgc3JjPSI8P3BocCBlY2hvICRkaXIgPz4vbW9kdWxlcy9TY3JpcHREZXBsb3kvaW1hZ2VzL3NjcmlwdGRlcGxveS5wbmciIGFsdD0iIiBpZD0iQUpBWGxvZ28iIC8+Jyk7DQoJCQkJCQkJCQkJCQkgIH0pOw0KCQkkKCIjQWpheE92ZXJMYXksI0FqYXhNZXNzYWdlIikuZmFkZU91dCgic2xvdyIsZnVuY3Rpb24oKXskKCIjQWpheE92ZXJMYXksI0FqYXhNZXNzYWdlIikucmVtb3ZlKCk7fSk7DQoJCS8vJCgiI0Vycm9yQXJlYSIpLmVtcHR5KCkuYXBwZW5kKCc8aW1nIGNsYXNzPSJwcm9ncmVzcyIgc3JjPSIuLi9tb2R1bGVzL1NjcmlwdERlcGxveS9pbWFnZXMvYWpheC1sb2FkZXIuZ2lmIiBhbHQ9IiIvPicpOw0KCS8vCQl2YXIgcElTPSQoJ2lucHV0W25hbWUkPSJTY3JpcHRTZXQiXScpLnZhbCgpOw0KCS8vCQl2YXIgVVNFUj0kKCdpbnB1dFtuYW1lJD0ic3BfIl0nKS52YWwoKTsNCgkvLwkJJCgiI0Vycm9yQXJlYSIpLmxvYWQoIi4uL2FkbWluL21vZHVsZWludGVyZmFjZS5waHA/bWFjdD1TY3JpcHREZXBsb3ksbTFfLGVkaXRfc2NyaXB0LDAmc3BfPSIrVVNFUisiJm0xX1NjcmlwdFNldD0iK3BJUysiJm0xX21vZGU9ZWRpdCAjRXJyb3JBcmVhSU5ORVIiDQoJLy8JCQkJCQkJLGZ1bmN0aW9uKCl7JCgiLnByb2dyZXNzIikuZmFkZU91dCgic2xvdyIsZnVuY3Rpb24oKXskKCIucHJvZ3Jlc3MiKS5yZW1vdmUoKTt9KTt9KTsNCgl9DQoJZnVuY3Rpb24gYmlnUigpew0KCQlyZXR1cm4gdHJ1ZTsJDQoJfQ0KDQoNCg0KZnVuY3Rpb24gbWFya2xpbmVOdW1iZXIoKXsNCgkJaWYgKCQoIiN3YXJuQXJlYSIpLmxlbmd0aCA+IDApew0KCQkJdmFyIGxpbmVzID0gW107IA0KCQkJJCgnI3dhcm5BcmVhIHNwYW4ubGluZScpLmVhY2goZnVuY3Rpb24oaSl7bGluZXMucHVzaCgkKHRoaXMpLnRleHQoKSk7fSk7DQoJCQkkKCcjZnJhbWVfU0lBJykuY29udGVudHMoKS5maW5kKCcjcmVzdWx0JykubGluZU51bWJlcih7bWFya19saW5lOmxpbmVzLG1hcmtfY2xhc3M6J3dhcm4nfSk7DQoJCX1lbHNlew0KCQkJJCgnI2ZyYW1lX1NJQScpLmNvbnRlbnRzKCkuZmluZCgnI3Jlc3VsdCcpLmxpbmVOdW1iZXIoe21hcmtfbGluZTpbXSxtYXJrX2NsYXNzOid3YXJuJ30pOw0KCQl9DQoJCWlmICgkKCIjRXJyb3JBcmVhIikubGVuZ3RoID4gMCl7DQoJCQl2YXIgbGluZXMgPSBbXTsgDQoJCQkkKCcjRXJyb3JBcmVhIHNwYW4ubGluZScpLmVhY2goZnVuY3Rpb24oaSl7bGluZXMucHVzaCgkKHRoaXMpLnRleHQoKSk7fSk7DQoJCQkkKCcjZnJhbWVfU0lBJykuY29udGVudHMoKS5maW5kKCcjcmVzdWx0JykubGluZU51bWJlcih7bWFya19saW5lOmxpbmVzLG1hcmtfY2xhc3M6J2Vycm9yJ30pOw0KCQl9ZWxzZXsNCgkJCSQoJyNmcmFtZV9TSUEnKS5jb250ZW50cygpLmZpbmQoJyNyZXN1bHQnKS5saW5lTnVtYmVyKHttYXJrX2xpbmU6W10sbWFya19jbGFzczonZXJyb3InfSk7DQoJCX0JDQp9DQpmdW5jdGlvbiByZXNldEhpZ2hsaXRlKHRpbWUpew0KCQlzdG9wQ291bnQoKTsNCgkJCWlmICghdGltZXJfaXNfb24pew0KCQkJCXRpbWVyX2lzX29uPTE7DQoJCQkJdD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZWRpdEFyZWFMb2FkZXIuZXhlY0NvbW1hbmQoJ3Jlc3luY19oaWdobGlnaHQnKTt9LHRpbWUpOw0KCQkJfQ0KfQkNCgkJDQpmdW5jdGlvbiBtYWtlTGlzdChuYW1lLG51bSl7DQoJcmV0dXJuICc8c3BhbiBjbGFzcz0icmVPcjMiPicrDQogICAgICAgICAgICAJJzxpbWcgY2xhc3M9ImhhbmRsZSIgYWx0PSJkcmFnIHRvIHJlb3JkZXIiIHNyYz0iPD9waHAgZWNobyAkZGlyID8+L21vZHVsZXMvU2NyaXB0RGVwbG95L2ltYWdlcy9tYXJrZXIucG5nIj4nKw0KICAgICAgICAgICAgICAgICc8aW5wdXQgdHlwZT0idGV4dCIgbWF4bGVuZ3RoPSIyIiBzaXplPSIzIiB2YWx1ZT0iJytudW0rJyIgaWQ9Im0xX1NjcmlwdE9SREVSWycrbnVtKyddIiBuYW1lPSJtMV9TY3JpcHRPUkRFUlsnK251bSsnXSIgY2xhc3M9ImNtc190ZXh0ZmllbGQiPicrDQogICAgICAgICAgICAnPC9zcGFuPicrDQogICAgICAgICAgICAnPHNwYW4gY2xhc3M9InJlT3I0Ij48L3NwYW4+JysNCiAgICAgICAgICAgJyA8c3BhbiBjbGFzcz0icmVPcjUiPicrDQogICAgICAgICAgICAgICAgJzxhIGhyZWY9Ijw/cGhwIGVjaG8gJEFkbWluZGlyID8+L21vZHVsZWludGVyZmFjZS5waHA/bWFjdD1TY3JpcHREZXBsb3ksbTFfLGVkaXRfc2NyaXB0LDAmYW1wO3NwXz1mY2EwODA4ZiZhbXA7bTFfU2NyaXB0U2V0PScrbnVtKycmYW1wO20xX2FjdGl2ZV90YWI9dGVtcGxhdGVfbWFuZyZhbXA7bTFfbW9kZT1lZGl0Ij48aW1nIHRpdGxlPSJFZGl0IiBhbHQ9IkVkaXQiIGNsYXNzPSJzeXN0ZW1pY29uIiBzcmM9InRoZW1lcy9OQ2xlYW5HcmV5L2ltYWdlcy9pY29ucy9zeXN0ZW0vZWRpdC5naWYiPjwvYT4nKw0KICAgICAgICAgICAgJzwvc3Bhbj4nKw0KICAgICAgICAgICAgJzxzcGFuIGNsYXNzPSJyZU9yMSI+JysNCiAgICAgICAgICAgIAknPGltZyBjbGFzcz0iaGFuZGxlIiBhbHQ9ImRyYWcgdG8gcmVvcmRlciIgc3JjPSI8P3BocCBlY2hvICRkaXIgPz4vbW9kdWxlcy9TY3JpcHREZXBsb3kvaW1hZ2VzL21hcmtlci5wbmciPicrDQogICAgICAgICAgICAnPC9zcGFuPicrDQogICAgICAgICAgICAnPHNwYW4gY2xhc3M9InJlT3IyIj4nKw0KICAgICAgICAgICAgCSc8c3BhbiBjbGFzcz0ibmFtZSI+JysNCiAgICAgICAgICAgICAgICAJJzxhIGhyZWY9Ijw/cGhwIGVjaG8gJEFkbWluZGlyID8+L21vZHVsZWludGVyZmFjZS5waHA/bWFjdD1TY3JpcHREZXBsb3ksbTFfLGVkaXRfc2NyaXB0LDAmYW1wO3NwXz1mY2EwODA4ZiZhbXA7bTFfU2NyaXB0U2V0PScrbnVtKycmYW1wO20xX2FjdGl2ZV90YWI9dGVtcGxhdGVfbWFuZyZhbXA7bTFfbW9kZT1lZGl0Ij4nK25hbWUrJyA8L2E+JysNCiAgICAgICAgICAgICAgICAgICAgJzxzcGFuPicrDQogICAgICAgICAgICAgICAgICAgIAknKGlkOjxhIGhyZWY9Ijw/cGhwIGVjaG8gJEFkbWluZGlyID8+L21vZHVsZWludGVyZmFjZS5waHA/bWFjdD1TY3JpcHREZXBsb3ksbTFfLGVkaXRfc2NyaXB0LDAmYW1wO3NwXz1mY2EwODA4ZiZhbXA7bTFfU2NyaXB0U2V0PScrbnVtKycmYW1wO20xX2FjdGl2ZV90YWI9dGVtcGxhdGVfbWFuZyZhbXA7bTFfbW9kZT1lZGl0Ij4nK251bSsnPC9hPiknKw0KICAgICAgICAgICAgICAgICAgICAnPC9zcGFuPicrDQogICAgICAgICAgICAgICAgICAgJyBAJysNCiAgICAgICAgICAgICAgICAnPC9zcGFuPicrDQogICAgICAgICAgICAgICAgJzxzcGFuIGNsYXNzPSJjb3VudFNpemUiPicrDQogICAgICAgICAgICAgICAgCScnKw0KICAgICAgICAgICAgICAgICc8L3NwYW4+JysNCiAgICAgICAgICAgICc8L2Rpdj4nOw0KfQ0KDQpmdW5jdGlvbiBpbml0KCkgew0KDQoNCi8vY29weSB0byBjbGlwYm9hcmQNCgkJWmVyb0NsaXBib2FyZC5zZXRNb3ZpZVBhdGgoJzw/cGhwIGVjaG8gJGRpciA/Pi9tb2R1bGVzL1NjcmlwdERlcGxveS9pbmNsdWRlcy96ZXJvY2xpcGJvYXJkL1plcm9DbGlwYm9hcmQxMC5zd2YnKTsNCgkJY2xpcCA9IG5ldyBaZXJvQ2xpcGJvYXJkLkNsaWVudCgpOw0KCQljbGlwLnNldEhhbmRDdXJzb3IoIHRydWUgKTsNCg0KCQkkKCcuZ2V0VGFnJykubW91c2VvdmVyKCBmdW5jdGlvbigpIHsNCgkJCWNsaXAuc2V0VGV4dCggJCh0aGlzKS5jaGlsZHJlbignc3BhbicpLnRleHQoKSApOw0KCQkJaWYgKGNsaXAuZGl2KSB7DQoJCQkJY2xpcC5yZWNlaXZlRXZlbnQoJ21vdXNlb3V0JywgbnVsbCk7DQoJCQkJY2xpcC5yZXBvc2l0aW9uKHRoaXMpOw0KCQkJCQ0KCQkJfQ0KCQkJZWxzZSBjbGlwLmdsdWUodGhpcyk7DQoJCQljbGlwLnJlY2VpdmVFdmVudCgnbW91c2VvdmVyJywgbnVsbCk7DQoJDQoJCX0gKTsNCgkJY2xpcC5hZGRFdmVudExpc3RlbmVyKCdjb21wbGV0ZScsIGZ1bmN0aW9uIChjbGllbnQsIHRleHQpIHsNCgkJCQlhbGVydCgiQ29waWVkIHRhZyB0byBjbGlwYm9hcmQ6XHJcbiIgKyB0ZXh0ICk7DQoJCX0pOw0KCSQoIiNzb3J0YWJsZTEiKS5zb3J0YWJsZSh7DQoJCXBsYWNlaG9sZGVyOiAndWktc3RhdGUtaGlnaGxpZ2h0JywNCgkJIGNvbm5lY3RXaXRoOiAnLmNvbm5lY3RlZFNvcnRhYmxlJywNCgkJIGNhbmNlbDogJy51aS1zdGF0ZS1kaXNhYmxlZCcsDQoJCSByZWNlaXZlOmZ1bmN0aW9uIChldmVudCwgdWkpIHsNCgkJCSB2YXIgbm1iICAgICA9IHVpLml0ZW0uYXR0cignY2xhc3MnKS5tYXRjaCgvdGFyXyhcZCspLylbMV07DQoJCQkJdmFyIHBvb2xpdGVtPSIudGFyXyIrbm1iOw0KCQkJCSQoJ3VsI3NvcnRhYmxlMSBsaScrcG9vbGl0ZW0pLnJlbW92ZUNsYXNzKCdoaWRkZW4nKS5maW5kKCdpbnB1dCcpLmF0dHIoJ2NoZWNrZWQnLGZhbHNlKTsNCgkJCQl1aS5pdGVtLnJlbW92ZSgpOw0KCQkJCS8vYWxlcnQoIiNzb3J0YWJsZTEgcmVtb3ZlOiIrcG9vbGl0ZW0pOw0KCQkJCSQucG9zdCgkKCd1bCNzb3J0YWJsZTEgbGknK3Bvb2xpdGVtKS5jbG9zZXN0KCJmb3JtIikuYXR0cignYWN0aW9uJyksJCgndWwjc29ydGFibGUxIGxpJytwb29saXRlbSkuY2xvc2VzdCgiZm9ybSIpLnNlcmlhbGl6ZSgpKyImbTFfc3VibWl0YnV0dG9uPUFkZCIpOw0KCQkJCWlmICgkKCd1bCNzb3J0YWJsZTEgbGkgOmNoZWNrYm94OmNoZWNrZWQnKS5sZW5ndGghPSQoJ3VsI3NvcnRhYmxlMSBsaSA6Y2hlY2tib3gnKS5sZW5ndGgpeyANCgkJCQkJJCgnI3Bvb2xFbXB0eScpLmFkZENsYXNzKCdoaWRkZW4nKTsNCgkJCQl9ZWxzZSBpZiAoJCgndWwjc29ydGFibGUxIGxpIDpjaGVja2VkJykubGVuZ3RoPD0wKXsgDQoJCQkJCSQoJyNwb29sRW1wdHknKS5yZW1vdmVDbGFzcygnaGlkZGVuJyk7DQoJCQkJfSANCgkJCX0NCgl9KTsNCg0KCS8vc29ydCBsaXN0cyBqUV9VSQ0KCSQoIi5wYWdldGFibGUgdWwudWktc29ydGFibGUiKS5zb3J0YWJsZSh7DQoJCXBsYWNlaG9sZGVyOiAndWktc3RhdGUtaGlnaGxpZ2h0JywNCgkJY29ubmVjdFdpdGg6ICcuY29ubmVjdGVkU29ydGFibGUnLA0KCQljYW5jZWw6ICcudWktc3RhdGUtZGlzYWJsZWQnLA0KCQlyZWNlaXZlOmZ1bmN0aW9uIChldmVudCwgdWkpIHsNCgkJCSAgIHZhciBubWIgICAgID0gdWkuaXRlbS5hdHRyKCdjbGFzcycpLm1hdGNoKC90YXJfKFxkKykvKVsxXTsNCgkJCSAgIHZhciBuYW1lID11aS5pdGVtLmNoaWxkcmVuKCdsYWJlbCcpLnRleHQoKTsNCgkJCQl2YXIgcG9vbGl0ZW09Ii50YXJfIitubWI7DQoJCQkJdmFyIHRhcmc9dWkuaXRlbTsNCgkJCQl1aS5pdGVtLmNsb25lKCkuYXBwZW5kVG8oJyNzb3J0YWJsZTEnKTsNCgkJCQl1aS5pdGVtLnJlbW92ZUNsYXNzKCd1aS1zdGF0ZS1kZWZhdWx0JykucmVtb3ZlQ2xhc3MoJ1NjcmlwdHBvb2wnKS5hZGRDbGFzcygiU2NyaXB0TGlzdCIpLmh0bWwobWFrZUxpc3QobmFtZSxubWIpKTsNCgkJCQkkKCd1bCNzb3J0YWJsZTEgbGknK3Bvb2xpdGVtKS5maW5kKCdpbnB1dCcpLmF0dHIoJ2NoZWNrZWQnLHRydWUpOw0KCQkJCSQoJ3VsI3NvcnRhYmxlMSBsaScrcG9vbGl0ZW0pLmFkZENsYXNzKCdoaWRkZW4nKTsNCgkJCQlpZiAoJCgndWwjc29ydGFibGUxIGxpIDpjaGVja2JveDpjaGVja2VkJykubGVuZ3RoIT0kKCd1bCNzb3J0YWJsZTEgbGkgOmNoZWNrYm94JykubGVuZ3RoKXsgDQoJCQkJCSQoJyNwb29sRW1wdHknKS5hZGRDbGFzcygnaGlkZGVuJyk7DQoJCQkJfWVsc2V7IA0KCQkJCQkkKCcjcG9vbEVtcHR5JykucmVtb3ZlQ2xhc3MoJ2hpZGRlbicpOw0KCQkJCX0NCgkJCQkkKCcucGFnZXRhYmxlIHVsLnVpLXNvcnRhYmxlIGxpLnRhcl8nKS5yZW1vdmUoKTsNCgkJCQkkLnBvc3QoJCgndWwjc29ydGFibGUxIGxpJytwb29saXRlbSkuY2xvc2VzdCgiZm9ybSIpLmF0dHIoJ2FjdGlvbicpLCQoJ3VsI3NvcnRhYmxlMSBsaScrcG9vbGl0ZW0pLmNsb3Nlc3QoImZvcm0iKS5zZXJpYWxpemUoKSsiJm0xX3N1Ym1pdGJ1dHRvbj1BZGQiKTsNCgkJCX0sDQoJCXVwZGF0ZSA6IGZ1bmN0aW9uIChldmVudCwgdWkpIHsNCgkJCQkvL3ZhciB0b3RhbHJvd3MgPSAkKCJ1bC51aS1zb3J0YWJsZSIpLmZpbmQoImxpIikuc2l6ZSgpOw0KCQkJCSQoIi5wYWdldGFibGUgdWwudWktc29ydGFibGUiKS5maW5kKCJsaSIpLnJlbW92ZUNsYXNzKCdyb3cxJykucmVtb3ZlQ2xhc3MoJ3JvdzInKTsNCgkJCQkkKCIucGFnZXRhYmxlIHVsLnVpLXNvcnRhYmxlIikuZmluZCgibGk6bnRoLWNoaWxkKDJuKzEpIikuYWRkQ2xhc3MoInJvdzEiKTsNCgkJCQkkKCIucGFnZXRhYmxlIHVsLnVpLXNvcnRhYmxlIikuZmluZCgibGk6bnRoLWNoaWxkKDJuKSIpLmFkZENsYXNzKCJyb3cyIik7DQoJCQkJJCgiLnBhZ2V0YWJsZSB1bC51aS1zb3J0YWJsZSIpLmZpbmQoImxpIikuZWFjaChmdW5jdGlvbigpIHsgDQoJCQkJCSQodGhpcykuZmluZCgnaW5wdXQnKS52YWwoJCh0aGlzKS5pbmRleCgpKzEpOw0KCQkJCX0pOw0KCQkJJC5wb3N0KCQoInVsLnVpLXNvcnRhYmxlIikuY2xvc2VzdCgiZm9ybSIpLmF0dHIoJ2FjdGlvbicpLCAkKCJ1bC51aS1zb3J0YWJsZSIpLmNsb3Nlc3QoImZvcm0iKS5zZXJpYWxpemUoKSsiJm0xX1JFT1JERVI9UmVvcmRlciIpOw0KCQkJLy8kKCIjaW5mbyIpLmxvYWQoInByb2Nlc3Mtc29ydGFibGUucGhwPyIrb3JkZXIpOw0KCQkJICAgIC8vdmFyICR0aGlzICAgICA9IDsNCgkJCQkvL2FsZXJ0KHVpLml0ZW0uZmluZCgnaW5wdXQnKS52YWwoKSk7DQovL3ZhciBubWIgICAgID0gdWkuaXRlbS5hdHRyKCdjbGFzcycpLm1hdGNoKC90YXJfKFxkKykvKVsxXTsNCi8vYWxlcnQobm1iKTsNCg0KCQkJfQ0KCX0pOw0KDQoNCg0KLyoNCioNCioNCioNCiovDQovL2NsZWFyIGFjdGlvbiBtZXNzYWdlcwkJCQkgICANCglpZiAoJCgiLnBhZ2VtZXNzYWdlIikubGVuZ3RoID4gMCl7DQoJCSQoIi5wYWdlbWVzc2FnZSIpLmNsb3Nlc3QoIi5wYWdlbWNvbnRhaW5lciIpDQoJCQkuZmFkZVRvKDMwMDAsIDAuOSxmdW5jdGlvbigpew0KCQkJCSQoIi5wYWdlbWVzc2FnZSIpLmZhZGVUbyg1MDAsIDAuMCxmdW5jdGlvbigpew0KCQkJCQkkKCIucGFnZW1lc3NhZ2UiKS5jbG9zZXN0KCIucGFnZW1jb250YWluZXIiKS5yZW1vdmUoKTsNCgkJCQl9KTsNCgkJCX0pOw0KCX0NCg0KLyoNCioNCioNCioNCiovDQovL0FjY29yZGlvbiAJDQoJJCgiZGl2LmFjb3IgaDMgc3BhbiIpLmNsaWNrKGZ1bmN0aW9uKGUpew0KCQllLnByZXZlbnREZWZhdWx0KCk7DQoJCXZhciB0aGlzQ29udGVudCA9ICQodGhpcykuY2xvc2VzdCgiaDMiKS5uZXh0KCJkaXYuY29udGVudCIpOw0KCQlpZiAoJCh0aGlzQ29udGVudCkuY3NzKCJkaXNwbGF5IikgIT0gIm5vbmUiKSB7DQoJCQkkKHRoaXNDb250ZW50KS5mYWRlT3V0KCJmYXN0Iik7DQoJCX1lbHNlew0KCQkJJCgiZGl2LnBhbmUgZGl2LmNvbnRlbnQiKS5mYWRlT3V0KCJmYXN0Iik7DQoJCQkkKHRoaXNDb250ZW50KS5mYWRlSW4oKTsNCgkJfQ0KCX0pOw0KDQoNCg0KYWpheGl0KCdwdWxsVGlwJyxUaXApOw0KDQoNCi8qDQoqDQoqDQoqDQoqLw0KLy9oZWxwIHRpcHMuLi4gTE9PSyBJTiBUTw0KCWlmICgkKCJpbWcuc3lzdGVtaWNvbiIpLmxlbmd0aCA+IDApeyQoImltZy5zeXN0ZW1pY29uIikubm90KCIuaGVscHRleHQgaW1nLnN5c3RlbWljb24sLnBhZ2V0YWJsZSBhIGltZy5zeXN0ZW1pY29uIikudG9vbHRpcCh7dGlwOiIjZGVtb3RpcCIsbGF6eTp0cnVlLHByZWRlbGF5OjUwLA0KCQkJLy8gY2hhbmdlIHRyaWdnZXIgb3BhY2l0eSBzbG93bHkgdG8gMC44IA0KCQkJb25CZWZvcmVTaG93OiBmdW5jdGlvbigpIHsgDQoJCQkJLy90aGlzLmdldFRyaWdnZXIoKS5mYWRlVG8oInNsb3ciLCAwLjgpOyANCgkJCQlpZigkKCIucHJvZ3Jlc3MiKS5sZW5ndGggPT0gMCl7DQoJCQkJCSQoIiNkZW1vdGlwIikuYXBwZW5kKCc8aW1nIGNsYXNzPSJwcm9ncmVzcyIgc3JjPSI8P3BocCBlY2hvICRkaXIgPz4vbW9kdWxlcy9TY3JpcHREZXBsb3kvaW1hZ2VzL2FqYXgtbG9hZGVyLmdpZiIgYWx0PSIiLz4nKTsNCgkJCQl9DQoJCQkJcElTPXRoaXMuZ2V0VHJpZ2dlcigpLmF0dHIoInJlbCIpOw0KCQkJCVVTRVI9dGhpcy5nZXRUcmlnZ2VyKCkuYXR0cigiYWx0Iik7DQoJCQkJJCgiI2RlbW90aXAiKS5sb2FkKCI8P3BocCBlY2hvICRBZG1pbmRpciA/Pi9tb2R1bGVpbnRlcmZhY2UucGhwP21hY3Q9U2NyaXB0RGVwbG95LG0xXyxkZXNjcmlwdGlvbiwwJiIrVVNFUisiJnNob3d0ZW1wbGF0ZT1mYWxzZSZtMV9EZXNjcmlwdGlvbj0iK3BJUysiICNESVNDUlAiDQoJCQkJCQkJCSxmdW5jdGlvbigpew0KCQkJCQkJCQkJJCgiLnByb2dyZXNzIikuZmFkZU91dCgic2xvdyIsZnVuY3Rpb24oKXskKCIucHJvZ3Jlc3MiKS5yZW1vdmUoKTt9KTsNCgkJCQkJCQkJfSk7DQoJCQl9LCANCgkJCW9uSGlkZTogZnVuY3Rpb24oKSB7DQoJCQkJJCgiI2RlbW90aXAiKS5lbXB0eSgpLmFwcGVuZCgnPGltZyBjbGFzcz0icHJvZ3Jlc3MiIHNyYz0iLi4vbW9kdWxlcy9TY3JpcHREZXBsb3kvaW1hZ2VzL2FqYXgtbG9hZGVyLmdpZiIgYWx0PSIiLz4nKTsNCgkJCX0NCgkJfSk7DQoJfQ0KJChkb2N1bWVudCkucmVzaXplKHJlc2V0SGlnaGxpdGUoNzUwKSk7DQokKCcjcmVzdWx0Jykuc2Nyb2xsKHJlc2V0SGlnaGxpdGUoMTAwMCkpOw0KDQppZiAoJCgiI3RpcGVkIikubGVuZ3RoID4gMCl7CQ0KCQlzdGFydFRpbWVyKGdldFRpcCw1MDAwKTsNCn0NCg0KZnVuY3Rpb24gZG9Tb21ldGhpbmcoZSkgew0KCXZhciBsZWZ0Y2xpY2s7DQoJaWYgKCFlKSB2YXIgZSA9IHdpbmRvdy5ldmVudDsNCglpZiAoZS53aGljaCkgcmlnaHRjbGljayA9IChlLndoaWNoID09IDMpOw0KCWVsc2UgaWYgKGUuYnV0dG9uKSByaWdodGNsaWNrID0gKGUuYnV0dG9uID09IDIpOw0KCWFsZXJ0KCdSaWdodGNsaWNrOiAnICsgcmlnaHRjbGljayk7IC8vIHRydWUgb3IgZmFsc2UNCn0NCg0KDQoJaWYgKCQoIiNTSUEiKS5sZW5ndGggPiAwKXsJDQoNCgkJJCgiI25hdiBhIikuY2xpY2soZnVuY3Rpb24oZSkgeyANCgkJLy8gIGlmKGUuc2hpZnRLZXkpIHsgDQoJCS8vICAgIC8vU2hpZnQtQ2xpY2sgDQoJCS8vICB9IA0KCQkgIGlmKCFlLmN0cmxLZXkmJiFlLnNoaWZ0S2V5KSB7IA0KCQkJYWpheGl0KCd1bmxvY2tfc2NyaXB0JyxTSUQpOw0KCQkJLy9hbGVydCgndW5sb2NraW5nJyk7DQoJCSAgfSANCgkJLy8gIGlmKGUuYWx0S2V5KSB7IA0KCQkvLyAgICAvL0FsdCtDbGljayANCgkJLy8gIH0gDQoJCX0pOyANCg0KCQlpZiAoJCgiI20xX3NjcmlwdFR5cGVfaW5wdXQxIikuaXMoJzpjaGVja2VkJykpIHskKCIjTWVkaWFUeXBlIikuY3NzKCJkaXNwbGF5Iiwibm9uZSIpOyQoIiNNZWRpYVR5cGUiKS5jc3MoInZpc2liaWxpdHkiLCJoaWRkZW4iKTt9DQoJCSQoImlucHV0W25hbWVePSdtMV9zY3JpcHRUeXBlJ10iKS5jbGljayhmdW5jdGlvbigpewkJCQ0KCQkJaWYgKCQoIiNtMV9zY3JpcHRUeXBlX2lucHV0MiIpLmlzKCc6Y2hlY2tlZCcpKSB7IA0KCQkJCSQoIiNNZWRpYVR5cGUiKS5jc3MoImRpc3BsYXkiLCJibG9jayIpOyQoIiNNZWRpYVR5cGUiKS5jc3MoInZpc2liaWxpdHkiLCJ2aXNpYmxlIik7DQoJCQkJJC5mbi5jb2xvcmJveC5yZXNpemUoKTsNCgkJCQlzeW50YXhfaXM9J2Nzcyc7DQoJCQkJZWRpdEFyZWFfcmVsb2FkKCk7DQoJCQl9ZWxzZSBpZiAoJCgiI20xX3NjcmlwdFR5cGVfaW5wdXQxIikuaXMoJzpjaGVja2VkJykpew0KCQkJCSQoIiNNZWRpYVR5cGUiKS5jc3MoImRpc3BsYXkiLCJub25lIik7JCgiI01lZGlhVHlwZSIpLmNzcygidmlzaWJpbGl0eSIsImhpZGRlbiIpOw0KCQkJCSQuZm4uY29sb3Jib3gucmVzaXplKCk7DQoJCQkJc3ludGF4X2lzPSdqcyc7DQoJCQkJZWRpdEFyZWFfcmVsb2FkKCk7DQoJCQl9DQoJCX0pOw0KCQkNCgkJJCgnI3NjcmlwdE5hbWUgaW5wdXQnKS5rZXl1cChmdW5jdGlvbigpIHsNCgkJICAkKCcjc2NyaXB0TmFtZV9JUycpLnRleHQoJCgnI3NjcmlwdE5hbWUgaW5wdXQnKS52YWwoKSk7DQoJCX0pOwkNCgkJaWYgKCEkKCIuY21zX2NoZWNrYm94W25hbWU9bTFfVXNlUGF0aE9wdGlvbl9pbnB1dF0iKS5pcygnOmNoZWNrZWQnKSkgeyQoIiNwYXRoT3B0aW9uIikuY3NzKCJkaXNwbGF5Iiwibm9uZSIpOyQoIiNwYXRoT3B0aW9uIikuY3NzKCJ2aXNpYmlsaXR5IiwiaGlkZGVuIik7fQ0KCQkkKCIuY21zX2NoZWNrYm94W25hbWU9bTFfVXNlUGF0aE9wdGlvbl9pbnB1dF0iKS5jbGljayhmdW5jdGlvbigpewkJCQ0KCQkJaWYgKCQoIi5jbXNfY2hlY2tib3hbbmFtZT1tMV9Vc2VQYXRoT3B0aW9uX2lucHV0XSIpLmlzKCc6Y2hlY2tlZCcpKSB7IA0KCQkJCSQoIiNwYXRoT3B0aW9uIikuY3NzKCJkaXNwbGF5IiwiYmxvY2siKTskKCIjcGF0aE9wdGlvbiIpLmNzcygidmlzaWJpbGl0eSIsInZpc2libGUiKTsNCgkJCQkkLmZuLmNvbG9yYm94LnJlc2l6ZSgpOw0KCQkJfWVsc2V7DQoJCQkJJCgiI3BhdGhPcHRpb24iKS5jc3MoImRpc3BsYXkiLCJub25lIik7JCgiI3BhdGhPcHRpb24iKS5jc3MoInZpc2liaWxpdHkiLCJoaWRkZW4iKTsNCgkJCQkkLmZuLmNvbG9yYm94LnJlc2l6ZSgpOw0KCQkJfQ0KCQl9KTsNCgkJDQoJCWlmICghJCgiLmNtc19jaGVja2JveFtuYW1lPW0xX3Jvb3RVUkxPcHRpb25faW5wdXRdIikuaXMoJzpjaGVja2VkJykpIHskKCIjcm9vdFVSTE9wdGlvbiIpLmNzcygiZGlzcGxheSIsIm5vbmUiKTskKCIjcm9vdFVSTE9wdGlvbiIpLmNzcygidmlzaWJpbGl0eSIsImhpZGRlbiIpO30NCgkJJCgiLmNtc19jaGVja2JveFtuYW1lPW0xX3Jvb3RVUkxPcHRpb25faW5wdXRdIikuY2xpY2soZnVuY3Rpb24oKXsJCQkNCgkJCWlmICgkKCIuY21zX2NoZWNrYm94W25hbWU9bTFfcm9vdFVSTE9wdGlvbl9pbnB1dF0iKS5pcygnOmNoZWNrZWQnKSkgeyANCgkJCQkkKCIjcm9vdFVSTE9wdGlvbiIpLmNzcygiZGlzcGxheSIsImJsb2NrIik7JCgiI3Jvb3RVUkxPcHRpb24iKS5jc3MoInZpc2liaWxpdHkiLCJ2aXNpYmxlIik7DQoJCQkJJC5mbi5jb2xvcmJveC5yZXNpemUoKTsNCgkJCX1lbHNlew0KCQkJCSQoIiNyb290VVJMT3B0aW9uIikuY3NzKCJkaXNwbGF5Iiwibm9uZSIpOyQoIiNyb290VVJMT3B0aW9uIikuY3NzKCJ2aXNpYmlsaXR5IiwiaGlkZGVuIik7DQoJCQkJJC5mbi5jb2xvcmJveC5yZXNpemUoKTsNCgkJCX0NCgkJfSk7DQoJCQ0KCQkkKCIjY2xvc2Vfb3B0aW9ucyIpLmNsaWNrKGZ1bmN0aW9uKCl7CQ0KCQkJCSAgICQuZm4uY29sb3Jib3guY2xvc2UoKTsNCgkJCQkgICByZXR1cm4gZmFsc2U7DQoJCX0pOw0KCQkkKCIjTm90ZV90cmlnIikuY29sb3Jib3goe3dpZHRoOiI1MDBweCIsDQoJCQkJCQkJCSBodG1sOmZ1bmN0aW9uKCl7DQoJCQkJCQkJCQkJdGV4dD0kKCIjTk9URVMiKS52YWwoKTsNCgkJCQkJCQkJCQkgaWYodGV4dD09Jycpew0KCQkJCQkJCQkJCQkgdGV4dD0nTm8gTmV3IE5vdGVzJzsNCgkJCQkJCQkJCQkJIH0NCgkJCQkJCQkJCQlyZXR1cm4gJzx0ZXh0YXJlYSBpZD0icG9wdXBOT1RFUyI+Jyt0ZXh0Kyc8L3RleHRhcmVhPic7DQoJCQkJCQkJCQkJfSwNCgkJCQkJCQkJICBvcGFjaXR5OjAuMjUNCgkJCQkJCQkgICB9KTsNCgkJDQoNCgkJJCgnI2ZyYW1lX1NJQScpLnJlYWR5KGZ1bmN0aW9uKCkgeyANCgkJCXZhciB4PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmcmFtZV9TSUEiKTsNCgkJCXZhciB5PSh4LmNvbnRlbnRXaW5kb3cgfHwgeC5jb250ZW50RG9jdW1lbnQpOw0KCQkJJCh5LmRvY3VtZW50KS5iaW5kKCdrZXlkb3duJywgJ2N0cmwrcycsIGZ1bmN0aW9uKGV2dCkgew0KCQkJCWV2dC5zdG9wUHJvcGFnYXRpb24oICk7ICAgDQoJCQkJZXZ0LnByZXZlbnREZWZhdWx0KCApOyANCgkJCQlpZiAoJCgiaW5wdXRbbmFtZSQ9J2FwcGx5J10iKS5sZW5ndGggPiAwKXsNCgkJCQkJaWYoJCgnI2Nib3hMb2FkZWRDb250ZW50JykudGV4dCgpIT0nJyl7DQoJCQkJCQkvL2FsZXJ0KCdwbGVhc2UgZmluaXNoIHRoaXMgdGFzayBiZWZvcmUgdHJ5aW5nIHRvIHNhdmUnKTsNCgkJCQkJCXJldHVybiBmYWxzZTsNCgkJCQkJfWVsc2V7DQoJCQkJCQlpZighaW5wcm9jY2Vzcyl7DQoJCQkJCQkJdmFyIFVTRVI9JCgnaW5wdXRbbmFtZSQ9InNwXyJdJykudmFsKCk7DQoJCQkJCQkJYWpheFNjcmlwdFN1Ym1pdChVU0VSKTsNCgkJCQkJCX0NCgkJCQkJCXJldHVybiBmYWxzZTsNCgkJCQkJfQ0KCQkJCX0NCgkJCX0pOw0KCQl9KTsJDQoJCW1hcmtsaW5lTnVtYmVyKCk7DQoNCgkNCgkJJCgiI0VfdHJpZyIpLmNvbG9yYm94KHt3aWR0aDoiNTAwcHgiLA0KCQkJCQkJCQkgaHRtbDpmdW5jdGlvbigpew0KCQkJCQkJCQkJCXRleHQ9JCgiI0Vycm9yQXJlYSIpLmh0bWwoKTsNCgkJCQkJCQkJCQlyZXR1cm4gJzxkaXYgaWQ9InBvcHVwRXJyb3JBcmVhIj4nK3RleHQrJzwvZGl2Pic7DQoJCQkJCQkJCQkJfSwNCgkJCQkJCQkJICBvcGFjaXR5OjAuMjUNCgkJCQkJCQkgICB9KTsJDQoJCSQoIiNXX3RyaWciKS5jb2xvcmJveCh7d2lkdGg6IjUwMHB4IiwNCgkJCQkJCQkJIGh0bWw6ZnVuY3Rpb24oKXsNCgkJCQkJCQkJCQl0ZXh0PSQoIiN3YXJuQXJlYSIpLmh0bWwoKTsNCgkJCQkJCQkJCQlyZXR1cm4gJzxkaXYgaWQ9InBvcHVwd2FybkFyZWEiPicrdGV4dCsnPC9kaXY+JzsNCgkJCQkJCQkJCQl9LA0KCQkJCQkJCQkgIG9wYWNpdHk6MC4yNQ0KCQkJCQkJCSAgIH0pOw0KCQkNCgkJDQoJCSQoIi5wb3B1cC5FVVJMUyIpLmNsaWNrKGZ1bmN0aW9uKGV2ZW50KSB7DQoJCQkJZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7ICAgDQoJCQkJZXZlbnQucHJldmVudERlZmF1bHQoKTsgDQoJCQkJCWFzeW5jSVM9ZmFsc2U7DQoJCQkJCWRhdGE9YWpheGl0KCdjc3NfdXJsX2Rpc3NlY3Rpb24nLFNJRCk7DQoJCQkJCWRhdGE9YWpheGl0KCdjc3NfdXJsX2Rpc3NlY3Rpb24nLFNJRCk7DQoJCQkJCWlmKGRhdGE9dHJ1ZSl7DQoJCQkJCQkNCgkJCQkJCXRleHQ9YWpheEFycmF5Wydjc3NfdXJsX2Rpc3NlY3Rpb24nXTsNCgkJCQkJCSQoJyNsYW5kZXInKS5odG1sKCc8ZGl2IGNsYXNzPSJyZXBvcnRBcmVhIj4nK3RleHQrJzwvZGl2PicpOw0KCQkJCQkJLy90ZXh0PSc8ZGl2IGNsYXNzPSJyZXBvcnRBcmVhIj4nKyQoJyNsYW5kZXInKS5odG1sKCkrJzwvZGl2Pic7DQoJCQkJCQkkLmZuLmNvbG9yYm94KHt3aWR0aDoiOTAlIixoZWlnaHQ6IjcwJSIsDQoJCQkJCQkJCQkgIGlubGluZTp0cnVlLA0KCQkJCQkJCQkJIGhyZWY6Jy5yZXBvcnRBcmVhJywNCgkJCQkJCQkJCQlvcGVuOnRydWUsDQoJCQkJCQkJCQkJc2Nyb2xsaW5nOmZhbHNlLA0KCQkJCQkJCQkJCW9wYWNpdHk6MC4yNQ0KCQkJCQkJCSAgIH0pOw0KCQkJCQl9DQoJCX0pOw0KCQkNCgkJJCgiLnBvcHVwLlJDU1MiKS5jbGljayhmdW5jdGlvbihldmVudCkgew0KCQkJCWV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyAgIA0KCQkJCWV2ZW50LnByZXZlbnREZWZhdWx0KCk7IA0KCQkJCQlhc3luY0lTPWZhbHNlOw0KCQkJCQlkYXRhPWFqYXhpdCgncmVuZGVyZWRfY3NzX2Rpc3NlY3Rpb24nLFNJRCk7DQoJCQkJCWRhdGE9YWpheGl0KCdyZW5kZXJlZF9jc3NfZGlzc2VjdGlvbicsU0lEKTsNCgkJCQkJaWYoZGF0YT10cnVlKXsNCgkJCQkJCQ0KCQkJCQkJdGV4dD1hamF4QXJyYXlbJ3JlbmRlcmVkX2Nzc19kaXNzZWN0aW9uJ107DQoJCQkJCQkkKCcjbGFuZGVyJykuaHRtbCgnPGRpdiBjbGFzcz0icmVwb3J0QXJlYSI+Jyt0ZXh0Kyc8L2Rpdj4nKTsNCgkJCQkJCS8vdGV4dD0nPGRpdiBjbGFzcz0icmVwb3J0QXJlYSI+JyskKCcjbGFuZGVyJykuaHRtbCgpKyc8L2Rpdj4nOw0KCQkJCQkJJC5mbi5jb2xvcmJveCh7d2lkdGg6IjkwJSIsaGVpZ2h0OiI3MCUiLA0KCQkJCQkJCQkJICBpbmxpbmU6dHJ1ZSwNCgkJCQkJCQkJCSBocmVmOicucmVwb3J0QXJlYScsDQoJCQkJCQkJCQkJb3Blbjp0cnVlLA0KCQkJCQkJCQkJCXNjcm9sbGluZzpmYWxzZSwNCgkJCQkJCQkJCQlvcGFjaXR5OjAuMjUNCgkJCQkJCQkgICB9KTsNCgkJCQkJfQ0KCQl9KTsNCg0KCQkkKCcuZ29MaW5lJykubGl2ZSgnY2xpY2snLGZ1bmN0aW9uKGV2ZW50KSB7DQoJCQlldmVudC5wcmV2ZW50RGVmYXVsdCgpOyANCgkJCWxpbmU9JCh0aGlzKS5jaGlsZHJlbignc3Bhbi5saW5lJykudGV4dCgpOw0KCQkJbGluZT1saW5lLTU7DQoJCQkkLmZuLmNvbG9yYm94LmNsb3NlKCk7DQoJCQkkKCcjZnJhbWVfU0lBJykuY29udGVudHMoKS5maW5kKCcjcmVzdWx0Jykuc2Nyb2xsVG8oJyNsaW5lXycrbGluZSwgODAwKTsgLy8oe3RvcDpsaW5lKjIxKydweCd9LCA4MDAgICk7DQoJCX0pOwkNCgkJDQoJCSQoJyNnb3RvJykuc3RvcCgpLmxpdmUoJ2tleXVwJyxmdW5jdGlvbihldmVudCkgew0KCQkJZXZlbnQucHJldmVudERlZmF1bHQoKTsgCQkJCQkJCQkJDQoJCQlzdG9wQ291bnQoKTsNCgkJCQlpZiAoIXRpbWVyX2lzX29uKXsNCgkJCQkJdGltZXJfaXNfb249MTsNCgkJCQkJdD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7DQoJCQkJCQkJCQkJICB2YXIgdGFyZ0lzPScjbGluZV8nKyQoJyNnb3RvJykudmFsKCk7DQoJCQkJCQkJCQkJICBpZiAoJCgnI2ZyYW1lX1NJQScpLmNvbnRlbnRzKCkuZmluZCh0YXJnSXMpLmxlbmd0aCA+IDApew0KCQkJCQkJCQkJCQkgIHN0b3BDb3VudCgpOw0KCQkJCQkJCQkJCQkJICQoJyNmcmFtZV9TSUEnKS5jb250ZW50cygpLmZpbmQoJyNyZXN1bHQnKS5zdG9wKCkuc2Nyb2xsVG8odGFyZ0lzLCA4MDApOw0KCQkJCQkJCQkJCSAgfWVsc2V7DQoJCQkJCQkJCQkJCSAgJCgnI2dvdG8nKS5ibHVyKCk7DQoJCQkJCQkJCQkJCSAgYWxlcnQgKCdMaW5lICcrdGFyZ0lzKycgZG9lcyBub3QgZXhpc3RcclxuUGxlYXNlIHRyeSBhZ2Fpbi4nKTsNCgkJCQkJCQkJCQkgIH0NCgkJCQkJCQkJCX0sNTAwKTsNCgkJCQl9DQoJCX0pOw0KCQkNCgkJJCgnI3BvcHVwTk9URVMnKS5saXZlKCdrZXl1cCcsZnVuY3Rpb24oKSB7DQoJCSAgJCgnI05PVEVTJykudmFsKCQoJyNwb3B1cE5PVEVTJykudmFsKCkpOw0KCQl9KTsJDQoJDQoJCSQoIiNvcGVuX29wdGlvbnMsI3NjcmlwdE5hbWVfSVMsI3NjcmlwdE9QIikuY29sb3Jib3goe3dpZHRoOiI1MDBweCIsDQoJCQkJCSAgaW5saW5lOnRydWUsDQoJCQkJCSAgaHJlZjoiI3NjcmlwdE9wdGlvbnMiLA0KCQkJCQkgIHNjcm9sbGluZzpmYWxzZSwNCgkJCQkJICBvcGFjaXR5OjAuMjUNCgkJCQkJfSk7DQoJCQ0KCQkkKCIjbTFfcmV2ZXJ0IikuYmluZCgnY2xpY2snLGZ1bmN0aW9uKCl7DQoJCQlpZiAoc2F2ZWQ9PXRydWUpewkNCgkJCQkJICBhbGVydCgnPD9waHAgZWNobyAkdGhpcy0+TGFuZygncmVsb2FkX2FsZXJ0Jyk7ID8+Jyk7DQoJCQl9DQoJCX0pOw0KCQlpZiAoJCgiI3doaWNoRmlsdGVyIikubGVuZ3RoID4gMCl7JCgiI3doaWNoRmlsdGVyIikudG9vbHRpcCh7dGlwOiIjZGVtb3RpcCIsbGF6eTp0cnVlLHByZWRlbGF5OjUwLA0KCQkJCS8vIGNoYW5nZSB0cmlnZ2VyIG9wYWNpdHkgc2xvd2x5IHRvIDAuOCANCgkJCQlvbkJlZm9yZVNob3c6IGZ1bmN0aW9uKCkgeyANCgkJCQkJJCgiI2RlbW90aXAiKS5odG1sKCc8aDE+WW91IGFyZSBmaWx0ZXJpbmc8L2gxPicrJCgiI2ZpbHRlclByb3AiKS52YWwoKSk7DQoJCQkJfSwgDQoJCQkJb25IaWRlOiBmdW5jdGlvbigpIHsNCgkJCQkJJCgiI2RlbW90aXAiKS5lbXB0eSgpOw0KCQkJCX0NCgkJCX0pOw0KCQl9DQoJfQkNCn0NCg0KCQlmdW5jdGlvbiBlZGl0QXJlYV9pbml0KCl7DQoJCQllZGl0QXJlYUxvYWRlci5pbml0KHsNCgkJCQlpZDogIlNJQSIJLy8gaWQgb2YgdGhlIHRleHRhcmVhIHRvIHRyYW5zZm9ybQkNCgkJCQksc3RhcnRfaGlnaGxpZ2h0OiB0cnVlDQoJCQkJLHdvcmRfd3JhcDogdHJ1ZQ0KCQkJCSxhbGxvd19yZXNpemU6ICJib3RoIg0KCQkJCSxhbGxvd190b2dnbGU6IGZhbHNlDQoJCQkJLGxhbmd1YWdlOiAiPD9waHAgZWNobyAkdXNlcmxhbmcgPz4iDQoJCQkJLHN5bnRheDogc3ludGF4X2lzDQoJLy8JCQksZW5kX3Rvb2xiYXI6ICIqLHRlc3RfYnV0LCB8LHRlc3Rfc2VsZWN0Ig0KCS8vCQkJLHBsdWdpbnM6ICJ0ZXN0Ig0KCQkJCSx0b29sYmFyOiAic2VhcmNoLCB8LCAgdW5kbywgcmVkbywgfCwgc2VsZWN0X2ZvbnQsICB8LCBjaGFuZ2Vfc21vb3RoX3NlbGVjdGlvbiwgcmVzZXRfaGlnaGxpZ2h0Ig0KCQkJCS8vLGlzX211bHRpX2ZpbGVzOiB0cnVlDQoJCQkJLEVBX2xvYWRfY2FsbGJhY2s6ICJpbml0Ig0KCQkJCSxzaG93X2xpbmVfY29sb3JzOiB0cnVlDQoJCQl9KTsJDQoJCX0gIA0KCQkNCgkJZnVuY3Rpb24gZWRpdEFyZWFfcmVsb2FkKCl7DQoJCQllZGl0QXJlYUxvYWRlci5kZWxldGVfaW5zdGFuY2UoJ1NJQScpOw0KCQkJZWRpdEFyZWFMb2FkZXIuaW5pdCh7DQoJCQkJaWQ6ICJTSUEiCS8vIGlkIG9mIHRoZSB0ZXh0YXJlYSB0byB0cmFuc2Zvcm0JDQoJCQkJLHN0YXJ0X2hpZ2hsaWdodDogdHJ1ZQ0KCQkJCSx3b3JkX3dyYXA6IHRydWUNCgkJCQksYWxsb3dfcmVzaXplOiAiYm90aCINCgkJCQksYWxsb3dfdG9nZ2xlOiBmYWxzZQ0KCQkJCSxsYW5ndWFnZTogIjw/cGhwIGVjaG8gJHVzZXJsYW5nID8+Ig0KCQkJCSxzeW50YXg6IHN5bnRheF9pcw0KCS8vCQkJLGVuZF90b29sYmFyOiAiKix0ZXN0X2J1dCwgfCx0ZXN0X3NlbGVjdCINCgkvLwkJCSxwbHVnaW5zOiAidGVzdCINCgkJCQksdG9vbGJhcjogInNlYXJjaCwgfCwgIHVuZG8sIHJlZG8sIHwsIHNlbGVjdF9mb250LCAgfCwgY2hhbmdlX3Ntb290aF9zZWxlY3Rpb24sIHJlc2V0X2hpZ2hsaWdodCINCgkJCQkvLyxpc19tdWx0aV9maWxlczogdHJ1ZQ0KCQkJCSxFQV9sb2FkX2NhbGxiYWNrOiAiaW5pdCINCgkJCQksc2hvd19saW5lX2NvbG9yczogdHJ1ZQ0KCQkJfSk7CQ0KCQl9IAkJDQoJCQ0KCQkNCiQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCl7CQkJCQkgICANCglpZiAoJCgiI1NJQSIpLmxlbmd0aCA+IDApew0KCQllZGl0QXJlYV9pbml0KCk7DQoJfWVsc2V7DQoJCWluaXQoKTsNCgl9DQoJdmFyIFVTRVI9JCgnaW5wdXRbbmFtZSQ9InNwXyJdJykudmFsKCk7DQoJJCgnaW5wdXRbbmFtZSQ9ImFwcGx5Il0nKS5jbGljayhmdW5jdGlvbihldmVudCl7DQoJCWV2ZW50LnByZXZlbnREZWZhdWx0KCk7IA0KCQlhamF4U2NyaXB0U3VibWl0KFVTRVIpOw0KCQkvL3JldHVybiBmYWxzZTsNCgl9KTsJDQoJaWYocGFyYW0oJ20xX3N0YXR1cycpPT0nbmV3JyYmJCgiI1NJQSIpLmxlbmd0aCA+IDApew0KCQkkLmZuLmNvbG9yYm94KHt3aWR0aDoiNTAwcHgiLA0KCQkJCQkgIGlubGluZTp0cnVlLA0KCQkJCQkgIGhyZWY6IiNzY3JpcHRPcHRpb25zIiwNCgkJCQkJICBvcGVuOnRydWUsDQoJCQkJCSAgc2Nyb2xsaW5nOmZhbHNlLA0KCQkJCQkgIG9wYWNpdHk6MC4yNQ0KCQkJCQl9KTsNCgkJDQoJfQ0KCSQoZG9jdW1lbnQpLmJpbmQoJ2tleWRvd24nLCAnY3RybCtzJywgZnVuY3Rpb24oZXZ0KSB7DQoJCWV2dC5zdG9wUHJvcGFnYXRpb24oICk7ICAgDQoJCWV2dC5wcmV2ZW50RGVmYXVsdCggKTsgDQoJCWlmICgkKCJpbnB1dFtuYW1lJD0nYXBwbHknXSIpLmxlbmd0aCA+IDApew0KCQkJaWYoJCgnI2Nib3hMb2FkZWRDb250ZW50JykudGV4dCgpIT0nJyl7DQoJCQkJLy9hbGVydCgncGxlYXNlIGZpbmlzaCB0aGlzIHRhc2sgYmVmb3JlIHRyeWluZyB0byBzYXZlJyk7DQoJCQkJcmV0dXJuIGZhbHNlOw0KCQkJfWVsc2V7DQoJCQkJaWYoIWlucHJvY2Nlc3Mpew0KCQkJCQl2YXIgVVNFUj0kKCdpbnB1dFtuYW1lJD0ic3BfIl0nKS52YWwoKTsNCgkJCQkJYWpheFNjcmlwdFN1Ym1pdChVU0VSKTsNCgkJCQl9DQoJCQkJcmV0dXJuIGZhbHNlOw0KCQkJfQ0KCQl9DQoJfSk7DQp9KTsJDQoNCiAgCQk8L3NjcmlwdD4gDQogICAgDQogICAgICAgIHsvbGl0ZXJhbH0NCgkJPD9waHAgJGlucHV0ID0gb2JfZ2V0X2NvbnRlbnRzKCk7IG9iX2VuZF9jbGVhbigpOw0KCQkNCgkJDQoJCXJldHVybiAkaW5wdXQ7DQoJfQkNCgkNCgkNCglmdW5jdGlvbiBidWlsZHRhYmxlSlMoJFRSKXsNCgkJLy8gU3RhcnQgb2Ygc2NyaXB0DQoJCW9iX3N0YXJ0KCk7ID8+e2xpdGVyYWx9DQoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4NCgkJJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7DQoJCQkkKCJ0YWJsZSNUUzEiKS50YWJsZXNvcnRlcih7d2lkdGhGaXhlZDpmYWxzZSwgd2lkZ2V0czogWyd6ZWJyYSddfSkudGFibGVzb3J0ZXJQYWdlcih7Y29udGFpbmVyOiAkKCIjcGFnZXIiKSxzaXplOjEwLHNlcGVyYXRvcjogIiBvZiAiLHBvc2l0aW9uRml4ZWQ6IGZhbHNlfSk7IA0KCQkJJCgidGFibGUjVFMyIikudGFibGVzb3J0ZXIoe3dpZHRoRml4ZWQ6ZmFsc2UsIHdpZGdldHM6IFsnemVicmEnXX0pLnRhYmxlc29ydGVyUGFnZXIoe2NvbnRhaW5lcjogJCgiI3BhZ2VyMiIpLHNpemU6NSxzZXBlcmF0b3I6ICIgb2YgIixwb3NpdGlvbkZpeGVkOiBmYWxzZX0pOyANCgkJCSQoIiNhcHBlbmQiKS5jbGljayhmdW5jdGlvbigpIHsNCgkJCQkvLyBhZGQgc29tZSBodG1sDQoJCQ0KCQkJCS8vIGFwcGVuZCBuZXcgaHRtbCB0byB0YWJsZSBib2R5IA0KCQkJCSAkKCJ0YWJsZS50YWJsZXNvcnRlciB0Ym9keSIpLmFwcGVuZChhamF4aXQoJ3B1bGxMb2dzJywnMSwyMCxpdGVtX25hbWU9XCdTY3JpcHREZXBsb3lcJycpKTsNCgkJCQkvLyBsZXQgdGhlIHBsdWdpbiBrbm93IHRoYXQgd2UgbWFkZSBhIHVwZGF0ZQ0KCQkJCSQoInRhYmxlLnRhYmxlc29ydGVyIikudHJpZ2dlcigidXBkYXRlIik7DQoJCQkJLy8gc2V0IHNvcnRpbmcgY29sdW1uIGFuZCBkaXJlY3Rpb24sIHRoaXMgd2lsbCBzb3J0IG9uIHRoZSBmaXJzdCBhbmQgdGhpcmQgY29sdW1uDQoJCQkJdmFyIHNvcnRpbmcgPSBbWzIsMV0sWzAsMF1dOw0KCQkJCS8vIHNvcnQgb24gdGhlIGZpcnN0IGNvbHVtbg0KCQkJCSQoInRhYmxlLnRhYmxlc29ydGVyIikudHJpZ2dlcigic29ydG9uIixbc29ydGluZ10pOw0KCQkJCXJldHVybiBmYWxzZTsNCgkJCX0pOw0KCQkJDQoJCQkkKCIjdmVyc2lvblBsYW5lIHRyIikuY2xpY2soZnVuY3Rpb24oKSB7DQoJCQkJLy8gYWRkIHNvbWUgaHRtbA0KCQkJCS8vR2V0VGhpc1JldmlzaW9uKCRzY3JpcHRJRCAsJHJldmlzaW9uKQ0KCQkJCSQoIiN2ZXJzaW9uUGxhbmUgdHIiKS5yZW1vdmVDbGFzcygnY3VycmVudCcpOw0KCQkJCXZhciBSaWQgPSAkKHRoaXMpLmF0dHIoJ2lkJyk7IA0KCQkJCVJpZCA9IFJpZC5yZXBsYWNlKCJSIiwgJycpOw0KCQkJCXZhciBTaWQgPSAkKCcjU2lkJykuaHRtbCgpOw0KCQkJCSQoInRleHRhcmVhI2NTY3JpcHRQbGFuZSIpLmFkZENsYXNzKCdwcm9jZXNzaW5nJyk7DQoJCQkJVGhlRGF0YT1hamF4aXQoJ0dldFRoaXNSZXZpc2lvbicsJycrU2lkKycsJytSaWQrJycpOw0KCQkJCXNldFRpbWVvdXQoZG9OZXh0LDUwLHRoaXMpOw0KCQkNCgkJCQkvL2FsZXJ0KFRoZURhdGEpOw0KCQkJfSk7DQoJCX0pOw0KCQlmdW5jdGlvbiBkb05leHQoc2VsZWN0b3Ipew0KCQkJaWYoVGhlRGF0YT09dW5kZWZpbmVkKXtzZXRUaW1lb3V0KGRvTmV4dCw1MCxzZWxlY3Rvcik7cmV0dXJuIGZhbHNlO30NCgkJCQkkKHNlbGVjdG9yKS5hZGRDbGFzcygnY3VycmVudCcpOw0KCQkJCSQoInRleHRhcmVhI2NTY3JpcHRQbGFuZSIpLmh0bWwoJycrVGhlRGF0YSsnJyk7CQ0KCQkJCSQoInRleHRhcmVhI2NTY3JpcHRQbGFuZSIpLnJlbW92ZUNsYXNzKCdwcm9jZXNzaW5nJyk7DQoJCX0NCgkJCQkNCgkJPC9zY3JpcHQ+ey9saXRlcmFsfQ0KCQk8P3BocCAkaW5wdXQgPSBvYl9nZXRfY29udGVudHMoKTsgb2JfZW5kX2NsZWFuKCk7DQoNCg0KCQlyZXR1cm4gJGlucHV0Ow0KCX0NCn0NCg0KPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/class.cmsms_http.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCi8qKg0KICogTW9kdWxlOiBTY3JpcHREZXBsb3kgLSBNaW5pZnkgYW5kIGRlcGxveW1lbnQgb2YgSlMgQ1NTIGFuZCBIVE1MDQogKiANCiAqIA0KICogQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykNCiAqIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnDQogKiBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvc2NyaXB0ZGVwbG95Lw0KICogDQogKiBAcGFja2FnZSBTY3JpcHREZXBsb3kNCiAqIEBhdXRob3IgamVyZW15QmFzcyA8amVyZW15QmFzc0BjYWJsZW9uZS5uZXQ+DQogKiBAY29weXJpZ2h0IEplcmVteSBCYXNzDQogKiBAbGljZW5zZSBodHRwOi8vd3d3LmdudS5vcmcvY29weWxlZnQvZ3BsLmh0bWwgRnJlZWx5IGF2YWlsYWJsZSB1bmRlciBHUEwNCiAqLyANCg0KaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7DQpjbGFzcyBjbXNtc19odHRwIGV4dGVuZHMgU2NyaXB0RGVwbG95ew0KDQoNCgkgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpew0KCQlwYXJlbnQ6Ol9fY29uc3RydWN0KCk7DQoJCSR0aGlzLT5fZGF0YSA9IGFycmF5KCk7DQoJICB9DQoNCgkvKioNCgkgKiBQZXJmb3JtIGFuIEhUVFAgcmVxdWVzdC4NCgkgKg0KCSAqIFRoaXMgaXMgYSBmbGV4aWJsZSBhbmQgcG93ZXJmdWwgSFRUUCBjbGllbnQgaW1wbGVtZW50YXRpb24uIENvcnJlY3RseSBoYW5kbGVzDQoJICogR0VULCBQT1NULCBQVVQgb3IgYW55IG90aGVyIEhUVFAgcmVxdWVzdHMuIEhhbmRsZXMgcmVkaXJlY3RzLg0KCSAqDQoJICogQHBhcmFtIHN0cmluZyAkdXJsIGNvbnRhaW5pbmcgYSBmdWxseSBxdWFsaWZpZWQgVVJJLg0KCSAqIEBwYXJhbSBhcnJheSAkaGVhZGVycyBjb250YWluaW5nIGFuIEhUVFAgaGVhZGVyID0+IHZhbHVlIHBhaXIuDQoJICogQHBhcmFtIHN0cmluZyAkbWV0aG9kIGRlZmluaW5nIHRoZSBIVFRQIHJlcXVlc3QgdG8gdXNlLg0KCSAqIEBwYXJhbSBzdHJpbmcgJGRhdGEgY29udGFpbmluZyBkYXRhIHRvIGluY2x1ZGUgaW4gdGhlIHJlcXVlc3QuDQoJICogQHBhcmFtIGludGVnZXIgJHJldHJ5IHJlcHJlc2VudGluZyBob3cgbWFueSB0aW1lcyB0byByZXRyeSB0aGUgcmVxdWVzdCBpbiBjYXNlIG9mIGEgcmVkaXJlY3QuDQoJICogICANCgkgKiBAcmV0dXJuIG9iamVjdCBjb250YWluaW5nIHRoZSBIVFRQIHJlcXVlc3QgaGVhZGVycywgcmVzcG9uc2UgY29kZSwgaGVhZGVycywNCgkgKiAgIGRhdGEgYW5kIHJlZGlyZWN0IHN0YXR1cy4NCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gY21zbXNfaHR0cF9yZXF1ZXN0KCR1cmwsICRoZWFkZXJzID0gYXJyYXkoKSwgJG1ldGhvZCA9ICdHRVQnLCAkZGF0YSA9IE5VTEwsICRyZXRyeSA9IDMpIHsNCgkgIGdsb2JhbCAkZGJfcHJlZml4Ow0KCQ0KCSAgJHJlc3VsdCA9IG5ldyBzdGRDbGFzcygpOw0KCQ0KCSAgLy8gUGFyc2UgdGhlIFVSTCBhbmQgbWFrZSBzdXJlIHdlIGNhbiBoYW5kbGUgdGhlIHNjaGVtYS4NCgkgICR1cmkgPSBwYXJzZV91cmwoJHVybCk7DQoJDQoJICBpZiAoJHVyaSA9PSBGQUxTRSkgew0KCQkkcmVzdWx0LT5lcnJvciA9ICd1bmFibGUgdG8gcGFyc2UgVVJMJzsNCgkJJHJlc3VsdC0+Y29kZSA9IC0xMDAxOw0KCQlyZXR1cm4gJHJlc3VsdDsNCgkgIH0NCgkNCgkgIGlmICghaXNzZXQoJHVyaVsnc2NoZW1lJ10pKSB7DQoJCSRyZXN1bHQtPmVycm9yID0gJ21pc3Npbmcgc2NoZW1hJzsNCgkJJHJlc3VsdC0+Y29kZSA9IC0xMDAyOw0KCQlyZXR1cm4gJHJlc3VsdDsNCgkgIH0NCgkNCgkgIHN3aXRjaCAoJHVyaVsnc2NoZW1lJ10pIHsNCgkJY2FzZSAnaHR0cCc6DQoJCSAgJHBvcnQgPSBpc3NldCgkdXJpWydwb3J0J10pID8gJHVyaVsncG9ydCddIDogODA7DQoJCSAgJGhvc3QgPSAkdXJpWydob3N0J10gLiAoJHBvcnQgIT0gODAgPyAnOicuICRwb3J0IDogJycpOw0KCQkgICRmcCA9IEBmc29ja29wZW4oJHVyaVsnaG9zdCddLCAkcG9ydCwgJGVycm5vLCAkZXJyc3RyLCAxNSk7DQoJCSAgYnJlYWs7DQoJCWNhc2UgJ2h0dHBzJzoNCgkJICAvLyBOb3RlOiBPbmx5IHdvcmtzIGZvciBQSFAgNC4zIGNvbXBpbGVkIHdpdGggT3BlblNTTC4NCgkJICAkcG9ydCA9IGlzc2V0KCR1cmlbJ3BvcnQnXSkgPyAkdXJpWydwb3J0J10gOiA0NDM7DQoJCSAgJGhvc3QgPSAkdXJpWydob3N0J10gLiAoJHBvcnQgIT0gNDQzID8gJzonLiAkcG9ydCA6ICcnKTsNCgkJICAkZnAgPSBAZnNvY2tvcGVuKCdzc2w6Ly8nLiAkdXJpWydob3N0J10sICRwb3J0LCAkZXJybm8sICRlcnJzdHIsIDIwKTsNCgkJICBicmVhazsNCgkJZGVmYXVsdDoNCgkJICAkcmVzdWx0LT5lcnJvciA9ICdpbnZhbGlkIHNjaGVtYSAnLiAkdXJpWydzY2hlbWUnXTsNCgkJICAkcmVzdWx0LT5jb2RlID0gLTEwMDM7DQoJCSAgcmV0dXJuICRyZXN1bHQ7DQoJICB9DQoJDQoJICAvLyBNYWtlIHN1cmUgdGhlIHNvY2tldCBvcGVuZWQgcHJvcGVybHkuDQoJICBpZiAoISRmcCkgew0KCQkvLyBXaGVuIGEgbmV0d29yayBlcnJvciBvY2N1cnMsIHdlIHVzZSBhIG5lZ2F0aXZlIG51bWJlciBzbyBpdCBkb2VzIG5vdA0KCQkvLyBjbGFzaCB3aXRoIHRoZSBIVFRQIHN0YXR1cyBjb2Rlcy4NCgkJJHJlc3VsdC0+Y29kZSA9IC0kZXJybm87DQoJCSRyZXN1bHQtPmVycm9yID0gdHJpbSgkZXJyc3RyKTsNCgkNCgkJLy8gTWFyayB0aGF0IHRoaXMgcmVxdWVzdCBmYWlsZWQuIFRoaXMgd2lsbCB0cmlnZ2VyIGEgY2hlY2sgb2YgdGhlIHdlYg0KCQkvLyBzZXJ2ZXIncyBhYmlsaXR5IHRvIG1ha2Ugb3V0Z29pbmcgSFRUUCByZXF1ZXN0cyB0aGUgbmV4dCB0aW1lIHRoYXQNCgkJLy8gcmVxdWlyZW1lbnRzIGNoZWNraW5nIGlzIHBlcmZvcm1lZC4NCgkJLy8gQHNlZSBzeXN0ZW1fcmVxdWlyZW1lbnRzKCkNCgkJLy92YXJpYWJsZV9zZXQoJ0NNU01TX2h0dHBfcmVxdWVzdF9mYWlscycsIFRSVUUpOw0KCQ0KCQlyZXR1cm4gJHJlc3VsdDsNCgkgIH0NCgkNCgkgIC8vIENvbnN0cnVjdCB0aGUgcGF0aCB0byBhY3Qgb24uDQoJICAkcGF0aCA9IGlzc2V0KCR1cmlbJ3BhdGgnXSkgPyAkdXJpWydwYXRoJ10gOiAnLyc7DQoJICBpZiAoaXNzZXQoJHVyaVsncXVlcnknXSkpIHsNCgkJJHBhdGggLj0gJz8nLiAkdXJpWydxdWVyeSddOw0KCSAgfQ0KCQ0KCSAgLy8gQ3JlYXRlIEhUVFAgcmVxdWVzdC4NCgkgICRkZWZhdWx0cyA9IGFycmF5KA0KCQkvLyBSRkMgMjYxNjogIm5vbi1zdGFuZGFyZCBwb3J0cyBNVVNULCBkZWZhdWx0IHBvcnRzIE1BWSBiZSBpbmNsdWRlZCIuDQoJCS8vIFdlIGRvbid0IGFkZCB0aGUgcG9ydCB0byBwcmV2ZW50IGZyb20gYnJlYWtpbmcgcmV3cml0ZSBydWxlcyBjaGVja2luZyB0aGUNCgkJLy8gaG9zdCB0aGF0IGRvIG5vdCB0YWtlIGludG8gYWNjb3VudCB0aGUgcG9ydCBudW1iZXIuDQoJCSdIb3N0JyA9PiAiSG9zdDogJGhvc3QiLA0KCQknVXNlci1BZ2VudCcgPT4gJ1VzZXItQWdlbnQ6IENNU01TICgraHR0cDovL2Ntc21hZGVzaW1wbGUub3JnLyknLA0KCSAgKTsNCgkNCgkgIC8vIE9ubHkgYWRkIENvbnRlbnQtTGVuZ3RoIGlmIHdlIGFjdHVhbGx5IGhhdmUgYW55IGNvbnRlbnQgb3IgaWYgaXQgaXMgYSBQT1NUDQoJICAvLyBvciBQVVQgcmVxdWVzdC4gU29tZSBub24tc3RhbmRhcmQgc2VydmVycyBnZXQgY29uZnVzZWQgYnkgQ29udGVudC1MZW5ndGggaW4NCgkgIC8vIGF0IGxlYXN0IEhFQUQvR0VUIHJlcXVlc3RzLCBhbmQgU3F1aWQgYWx3YXlzIHJlcXVpcmVzIENvbnRlbnQtTGVuZ3RoIGluDQoJICAvLyBQT1NUL1BVVCByZXF1ZXN0cy4NCgkgICRjb250ZW50X2xlbmd0aCA9IHN0cmxlbigkZGF0YSk7DQoJICBpZiAoJGNvbnRlbnRfbGVuZ3RoID4gMCB8fCAkbWV0aG9kID09ICdQT1NUJyB8fCAkbWV0aG9kID09ICdQVVQnKSB7DQoJCSRkZWZhdWx0c1snQ29udGVudC1MZW5ndGgnXSA9ICdDb250ZW50LUxlbmd0aDogJy4gJGNvbnRlbnRfbGVuZ3RoOw0KCSAgfQ0KCQ0KCSAgLy8gSWYgdGhlIHNlcnZlciB1cmwgaGFzIGEgdXNlciB0aGVuIGF0dGVtcHQgdG8gdXNlIGJhc2ljIGF1dGhlbnRpY2F0aW9uDQoJICBpZiAoaXNzZXQoJHVyaVsndXNlciddKSkgew0KCQkkZGVmYXVsdHNbJ0F1dGhvcml6YXRpb24nXSA9ICdBdXRob3JpemF0aW9uOiBCYXNpYyAnLiBiYXNlNjRfZW5jb2RlKCR1cmlbJ3VzZXInXSAuICghZW1wdHkoJHVyaVsncGFzcyddKSA/ICI6Ii4gJHVyaVsncGFzcyddIDogJycpKTsNCgkgIH0NCgkNCgkgIC8vIElmIHRoZSBkYXRhYmFzZSBwcmVmaXggaXMgYmVpbmcgdXNlZCBieSBTaW1wbGVUZXN0IHRvIHJ1biB0aGUgdGVzdHMgaW4gYSBjb3BpZWQNCgkgIC8vIGRhdGFiYXNlIHRoZW4gc2V0IHRoZSB1c2VyLWFnZW50IGhlYWRlciB0byB0aGUgZGF0YWJhc2UgcHJlZml4IHNvIHRoYXQgYW55DQoJICAvLyBjYWxscyB0byBvdGhlciBEcnVwYWwgcGFnZXMgd2lsbCBydW4gdGhlIFNpbXBsZVRlc3QgcHJlZml4ZWQgZGF0YWJhc2UuIFRoZQ0KCSAgLy8gdXNlci1hZ2VudCBpcyB1c2VkIHRvIGVuc3VyZSB0aGF0IG11bHRpcGxlIHRlc3Rpbmcgc2Vzc2lvbnMgcnVubmluZyBhdCB0aGUNCgkgIC8vIHNhbWUgdGltZSB3b24ndCBpbnRlcmZlcmUgd2l0aCBlYWNoIG90aGVyIGFzIHRoZXkgd291bGQgaWYgdGhlIGRhdGFiYXNlDQoJICAvLyBwcmVmaXggd2VyZSBzdG9yZWQgc3RhdGljYWxseSBpbiBhIGZpbGUgb3IgZGF0YWJhc2UgdmFyaWFibGUuDQoJICBpZiAoaXNfc3RyaW5nKCRkYl9wcmVmaXgpICYmIHByZWdfbWF0Y2goIi9ec2ltcGxldGVzdFxkKyQvIiwgJGRiX3ByZWZpeCwgJG1hdGNoZXMpKSB7DQoJCSRkZWZhdWx0c1snVXNlci1BZ2VudCddID0gJ1VzZXItQWdlbnQ6ICcgLiAkbWF0Y2hlc1swXTsNCgkgIH0NCgkNCgkgIGZvcmVhY2ggKCRoZWFkZXJzIGFzICRoZWFkZXIgPT4gJHZhbHVlKSB7DQoJCSRkZWZhdWx0c1skaGVhZGVyXSA9ICRoZWFkZXIgLic6ICcuICR2YWx1ZTsNCgkgIH0NCgkNCgkgICRyZXF1ZXN0ID0gJG1ldGhvZCAuJyAnLiAkcGF0aCAuIiBIVFRQLzEuMFxyXG4iOw0KCSAgJHJlcXVlc3QgLj0gaW1wbG9kZSgiXHJcbiIsICRkZWZhdWx0cyk7DQoJICAkcmVxdWVzdCAuPSAiXHJcblxyXG4iOw0KCSAgJHJlcXVlc3QgLj0gJGRhdGE7DQoJDQoJICAkcmVzdWx0LT5yZXF1ZXN0ID0gJHJlcXVlc3Q7DQoJDQoJICBmd3JpdGUoJGZwLCAkcmVxdWVzdCk7DQoJDQoJICAvLyBGZXRjaCByZXNwb25zZS4NCgkgICRyZXNwb25zZSA9ICcnOw0KCSAgd2hpbGUgKCFmZW9mKCRmcCkgJiYgJGNodW5rID0gZnJlYWQoJGZwLCAxMDI0KSkgew0KCQkkcmVzcG9uc2UgLj0gJGNodW5rOw0KCSAgfQ0KCSAgZmNsb3NlKCRmcCk7DQoJDQoJICAvLyBQYXJzZSByZXNwb25zZS4NCgkgIGxpc3QoJHNwbGl0LCAkcmVzdWx0LT5kYXRhKSA9IGV4cGxvZGUoIlxyXG5cclxuIiwgJHJlc3BvbnNlLCAyKTsNCgkgICRzcGxpdCA9IHByZWdfc3BsaXQoIi9cclxufFxufFxyLyIsICRzcGxpdCk7DQoJDQoJICBsaXN0KCRwcm90b2NvbCwgJGNvZGUsICR0ZXh0KSA9IGV4cGxvZGUoJyAnLCB0cmltKGFycmF5X3NoaWZ0KCRzcGxpdCkpLCAzKTsNCgkgICRyZXN1bHQtPmhlYWRlcnMgPSBhcnJheSgpOw0KCQ0KCSAgLy8gUGFyc2UgaGVhZGVycy4NCgkgIHdoaWxlICgkbGluZSA9IHRyaW0oYXJyYXlfc2hpZnQoJHNwbGl0KSkpIHsNCgkJbGlzdCgkaGVhZGVyLCAkdmFsdWUpID0gZXhwbG9kZSgnOicsICRsaW5lLCAyKTsNCgkJaWYgKGlzc2V0KCRyZXN1bHQtPmhlYWRlcnNbJGhlYWRlcl0pICYmICRoZWFkZXIgPT0gJ1NldC1Db29raWUnKSB7DQoJCSAgLy8gUkZDIDIxMDk6IHRoZSBTZXQtQ29va2llIHJlc3BvbnNlIGhlYWRlciBjb21wcmlzZXMgdGhlIHRva2VuIFNldC0NCgkJICAvLyBDb29raWU6LCBmb2xsb3dlZCBieSBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIG9uZSBvciBtb3JlIGNvb2tpZXMuDQoJCSAgJHJlc3VsdC0+aGVhZGVyc1skaGVhZGVyXSAuPSAnLCcuIHRyaW0oJHZhbHVlKTsNCgkJfQ0KCQllbHNlIHsNCgkJICAkcmVzdWx0LT5oZWFkZXJzWyRoZWFkZXJdID0gdHJpbSgkdmFsdWUpOw0KCQl9DQoJICB9DQoJDQoJICAkcmVzcG9uc2VzID0gYXJyYXkoDQoJCTEwMCA9PiAnQ29udGludWUnLCAxMDEgPT4gJ1N3aXRjaGluZyBQcm90b2NvbHMnLA0KCQkyMDAgPT4gJ09LJywgMjAxID0+ICdDcmVhdGVkJywgMjAyID0+ICdBY2NlcHRlZCcsIDIwMyA9PiAnTm9uLUF1dGhvcml0YXRpdmUgSW5mb3JtYXRpb24nLCAyMDQgPT4gJ05vIENvbnRlbnQnLCAyMDUgPT4gJ1Jlc2V0IENvbnRlbnQnLCAyMDYgPT4gJ1BhcnRpYWwgQ29udGVudCcsDQoJCTMwMCA9PiAnTXVsdGlwbGUgQ2hvaWNlcycsIDMwMSA9PiAnTW92ZWQgUGVybWFuZW50bHknLCAzMDIgPT4gJ0ZvdW5kJywgMzAzID0+ICdTZWUgT3RoZXInLCAzMDQgPT4gJ05vdCBNb2RpZmllZCcsIDMwNSA9PiAnVXNlIFByb3h5JywgMzA3ID0+ICdUZW1wb3JhcnkgUmVkaXJlY3QnLA0KCQk0MDAgPT4gJ0JhZCBSZXF1ZXN0JywgNDAxID0+ICdVbmF1dGhvcml6ZWQnLCA0MDIgPT4gJ1BheW1lbnQgUmVxdWlyZWQnLCA0MDMgPT4gJ0ZvcmJpZGRlbicsIDQwNCA9PiAnTm90IEZvdW5kJywgNDA1ID0+ICdNZXRob2QgTm90IEFsbG93ZWQnLCA0MDYgPT4gJ05vdCBBY2NlcHRhYmxlJywgNDA3ID0+ICdQcm94eSBBdXRoZW50aWNhdGlvbiBSZXF1aXJlZCcsIDQwOCA9PiAnUmVxdWVzdCBUaW1lLW91dCcsIDQwOSA9PiAnQ29uZmxpY3QnLCA0MTAgPT4gJ0dvbmUnLCA0MTEgPT4gJ0xlbmd0aCBSZXF1aXJlZCcsIDQxMiA9PiAnUHJlY29uZGl0aW9uIEZhaWxlZCcsIDQxMyA9PiAnUmVxdWVzdCBFbnRpdHkgVG9vIExhcmdlJywgNDE0ID0+ICdSZXF1ZXN0LVVSSSBUb28gTGFyZ2UnLCA0MTUgPT4gJ1Vuc3VwcG9ydGVkIE1lZGlhIFR5cGUnLCA0MTYgPT4gJ1JlcXVlc3RlZCByYW5nZSBub3Qgc2F0aXNmaWFibGUnLCA0MTcgPT4gJ0V4cGVjdGF0aW9uIEZhaWxlZCcsDQoJCTUwMCA9PiAnSW50ZXJuYWwgU2VydmVyIEVycm9yJywgNTAxID0+ICdOb3QgSW1wbGVtZW50ZWQnLCA1MDIgPT4gJ0JhZCBHYXRld2F5JywgNTAzID0+ICdTZXJ2aWNlIFVuYXZhaWxhYmxlJywgNTA0ID0+ICdHYXRld2F5IFRpbWUtb3V0JywgNTA1ID0+ICdIVFRQIFZlcnNpb24gbm90IHN1cHBvcnRlZCcNCgkgICk7DQoJICAvLyBSRkMgMjYxNiBzdGF0ZXMgdGhhdCBhbGwgdW5rbm93biBIVFRQIGNvZGVzIG11c3QgYmUgdHJlYXRlZCB0aGUgc2FtZSBhcyB0aGUNCgkgIC8vIGJhc2UgY29kZSBpbiB0aGVpciBjbGFzcy4NCgkgIGlmICghaXNzZXQoJHJlc3BvbnNlc1skY29kZV0pKSB7DQoJCSRjb2RlID0gZmxvb3IoJGNvZGUgLyAxMDApICogMTAwOw0KCSAgfQ0KCQ0KCSAgc3dpdGNoICgkY29kZSkgew0KCQljYXNlIDIwMDogLy8gT0sNCgkJY2FzZSAzMDQ6IC8vIE5vdCBtb2RpZmllZA0KCQkgIGJyZWFrOw0KCQljYXNlIDMwMTogLy8gTW92ZWQgcGVybWFuZW50bHkNCgkJY2FzZSAzMDI6IC8vIE1vdmVkIHRlbXBvcmFyaWx5DQoJCWNhc2UgMzA3OiAvLyBNb3ZlZCB0ZW1wb3JhcmlseQ0KCQkgICRsb2NhdGlvbiA9ICRyZXN1bHQtPmhlYWRlcnNbJ0xvY2F0aW9uJ107DQoJDQoJCSAgaWYgKCRyZXRyeSkgew0KCQkJJHJlc3VsdCA9IGNtc21zX2h0dHBfcmVxdWVzdCgkcmVzdWx0LT5oZWFkZXJzWydMb2NhdGlvbiddLCAkaGVhZGVycywgJG1ldGhvZCwgJGRhdGEsIC0tJHJldHJ5KTsNCgkJCSRyZXN1bHQtPnJlZGlyZWN0X2NvZGUgPSAkcmVzdWx0LT5jb2RlOw0KCQkgIH0NCgkJICAkcmVzdWx0LT5yZWRpcmVjdF91cmwgPSAkbG9jYXRpb247DQoJDQoJCSAgYnJlYWs7DQoJCWRlZmF1bHQ6DQoJCSAgJHJlc3VsdC0+ZXJyb3IgPSAkdGV4dDsNCgkgIH0NCgkNCgkgICRyZXN1bHQtPmNvZGUgPSAkY29kZTsNCgkgIHJldHVybiAkcmVzdWx0Ow0KCX0NCgkvKioNCgkgKiBAfSBFbmQgb2YgIkhUVFAgaGFuZGxpbmciLg0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiBSZWFsVVJMKCl7DQoJCWdsb2JhbCAkZ0NtczsNCgkJJHVybEJBU0UgPSAiaHR0cDovLyIuJF9TRVJWRVJbJ0hUVFBfSE9TVCddLiRfU0VSVkVSWydTQ1JJUFRfTkFNRSddOw0KCQlpZiAoIWVtcHR5KCRfU0VSVkVSWyJRVUVSWV9TVFJJTkciXSkpDQoJCSR1cmxCQVNFIC49ICI/Ii4kX1NFUlZFUlsnUVVFUllfU1RSSU5HJ107DQoJCWlmIChpc3NldCgkZ0Ntcy0+Y29uZmlnWydhc3N1bWVfbW9kX3Jld3JpdGUnXSkgJiYgKCRnQ21zLT5jb25maWdbJ2Fzc3VtZV9tb2RfcmV3cml0ZSddPT10cnVlKSB8fCAoaXNzZXQoJGdDbXMtPmNvbmZpZ1sndXJsX3Jld3JpdGluZyddKSYmICRnQ21zLT5jb25maWdbJ3VybF9yZXdyaXRpbmcnXT09J21vZF9yZXdyaXRlJykpew0KCQkJJHVybHMgPSBzdHJfcmVwbGFjZSgiaW5kZXgucGhwP3BhZ2U9IiwgIiIsICR1cmxCQVNFKTsNCgkJCSR1cmxzID0gc3RyX3JlcGxhY2UoImluZGV4LnBocCIsICIiLCAkdXJscyk7DQoJCX1lbHNlew0KCQkJJHVybHMgPSAkdXJsQkFTRTsNCgkJfQ0KCQlyZXR1cm4gJHVybHM7DQoJfQ0KDQoNCg0KCSANCg0KCXB1YmxpYyBmdW5jdGlvbiBteVJlZGlyZWN0VG9UYWIoICRpZCwgJHRhYiwgJHBhcmFtcyA9ICcnICl7DQoJCSRwYXJtcyA9IGFycmF5KCk7DQoJCWlmKGlzX2FycmF5KCRwYXJhbXMpKXsNCgkJCSRwYXJtcyA9ICRwYXJhbXM7DQoJCX0NCgkJJHBhcm1zID0gYXJyYXkoJ2FjdGl2ZV90YWInID0+ICR0YWIgKTsNCgkJc2VsZjo6bXlSZWRpcmVjdCggJGlkLCAnZGVmYXVsdGFkbWluJywgJHBhcm1zICk7DQoJfQ0KDQoJcHVibGljIGZ1bmN0aW9uIG15UmVkaXJlY3QoICRpZCwgJGFjdGlvbiwgJHBhcmFtcyA9ICcnICl7DQoJCXVuc2V0KCAkcGFyYW1zWydhY3Rpb24nXSApOw0KCQkkdGhpcy0+UmVkaXJlY3QoICRpZCwgJGFjdGlvbiwgJycsICRwYXJhbXMgKTsNCgl9CQ0KfQ==]]></data>
	</file>
	<file>
	  <filename>/lib/class.scriptProcessing.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCi8qKg0KICogTW9kdWxlOiBTY3JpcHREZXBsb3kgLSBNaW5pZnkgYW5kIGRlcGxveW1lbnQgb2YgSlMgQ1NTIGFuZCBIVE1MDQogKiANCiAqIA0KICogQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykNCiAqIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnDQogKiBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvc2NyaXB0ZGVwbG95Lw0KICogDQogKiBAcGFja2FnZSBTY3JpcHREZXBsb3kNCiAqIEBhdXRob3IgamVyZW15QmFzcyA8amVyZW15QmFzc0BjYWJsZW9uZS5uZXQ+DQogKiBAY29weXJpZ2h0IEplcmVteSBCYXNzDQogKiBAbGljZW5zZSBodHRwOi8vd3d3LmdudS5vcmcvY29weWxlZnQvZ3BsLmh0bWwgRnJlZWx5IGF2YWlsYWJsZSB1bmRlciBHUEwNCiAqLyANCg0KaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7DQpjbGFzcyBzY3JpcHRQcm9jZXNzaW5nIGV4dGVuZHMgU2NyaXB0RGVwbG95ew0KDQoNCgkgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpew0KCQlwYXJlbnQ6Ol9fY29uc3RydWN0KCk7DQoJCSR0aGlzLT5fZGF0YSA9IGFycmF5KCk7DQoJICB9DQoNCgkvKioNCgkqIFRha2Ugc2lnbmxlIHNjcmlwdHMgYW5kIGpvaW4sIHNtYXJ0eSBwcm9jZXNzLCBhbmQvb3IgbWluaWZ5Lg0KCSoNCgkqIEB0b2RvIFB1bGwgb3V0IHRvIGEgcHJvY2Vzc2luZyBjbGFzcw0KCSogQHBhcmFtIGludGVnZXIgJElEIC4NCgkqIEBwYXJhbSBzdHJpbmcgJGdyb3VwZWQgLg0KCSogQHBhcmFtIGJvb2xlYW4gJFNtYXJ0eSAuDQoJKiBAcGFyYW0gYm9vbGVhbiAkTWluaWZ5IC4NCgkqIEBwYXJhbSBzdHJpbmcgJGV4dCAuDQoJKiBAcGFyYW0gYm9vbGVhbiAkdmFsX21ldGggLg0KCSogQHJldHVybiBzdHJpbmcgdGhpcyBpcyB0aGUgZnVsbHkgcHJvY2Vzc2VkIHNjcmlwdA0KCSovDQoJcHVibGljIGZ1bmN0aW9uIFByb2NjZXNzU0QoJElELCRncm91cGVkLCRTbWFydHk9dHJ1ZSwkTWluaWZ5PWZhbHNlLCRleHQ9JycsJHZhbF9tZXRoPWZhbHNlKXsNCgkJZ2xvYmFsICRnQ21zOw0KCQkkY29uZmlnID0mICRnQ21zLT5HZXRDb25maWcoKTsgDQoJCSRjb2RlVG9GaWxlPScnOw0KCQkkY29kZT0nJzsNCgkJJHNtYXJ0eU9uPSR0aGlzLT5HZXRQcmVmZXJlbmNlKCdzbWFydHlPbicsJzAnKTsNCgkJJGZpbGVUaW1lX2Nzc191cmxzPSR0aGlzLT5HZXRQcmVmZXJlbmNlKCdmaWxlVGltZV9jc3NfdXJscycsJzAnKTsNCg0KCQlpZighJFNtYXJ0eSl7JHNtYXJ0eU9uPTA7fQ0KCQlpZigkZ3JvdXBlZD09InNjcmlwdElEIil7DQoJCQlAZXh0cmFjdCgkdGhpcy0+Z2V0U2NyaXB0RnVsbCgkSUQpKTsNCgkJCSRNaW5pZnk9JHRoaXMtPkdldFByZWZlcmVuY2UoJElELictTWluaWZ5LVNEJywkTWluaWZ5KTsNCgkJCWlmKCR2YWxfbWV0aD09dHJ1ZSl7JE1pbmlmeT1mYWxzZTt9DQoJCQlpZigkc21hcnR5T24pew0KCQkJCSRTY3JpcHRJcz1zZWxmOjpzbWFydHlPbigkU2NyaXB0SXMpOw0KCQkJfQ0KCQkJDQoJCQlpZigkU2NyaXB0SXMhPScnKXsNCgkJCQlpZigoJE1pbmlmeT09dHJ1ZXx8JE1pbmlmeT09JzEnKSYmJE1pbmlmeSE9JycmJiRNaW5pZnkhPWZhbHNlKXskU2NyaXB0SXM9c2VsZjo6TWluaWZ5SXQoJFNjcmlwdElzLCRleHQpO30NCgkJCQlpZigkdmFsX21ldGg9PWZhbHNlKXskY29kZT0iXHJcbiAvKiBtaW5pZmllZCAkTWluaWZ5IHJcbiBzY3JpcHQgJElEIFxyXG4gVE9ETyAtLSBwcm9maWxlIFxyXG4iLnNkX2xvZ2dpbjo6R2V0X05vdGVzKCRJRCkuIlxyXG4gKi8gXHJcbiI7fQ0KCQkJCSRjb2RlVG9GaWxlPSRjb2RlLiRTY3JpcHRJczsNCgkJCX0NCgkJCWlmKCRwYXRoT3B0aW9uKXsNCgkJCQlpZiAoKHN1YnN0cigkcGF0aE9wdGlvbiwgMCw0KSk9PSJodHRwIil7JEw9c3RybGVuKCRjb25maWdbJ3Jvb3RfdXJsJ10pOyRwYXRoT3B0aW9uID0gc3Vic3RyX3JlcGxhY2UoJHBhdGhPcHRpb24sICcnLCAwLCAkTCk7fQ0KCQkJCSRwYXRoT3B0aW9uPXJ0cmltKCRwYXRoT3B0aW9uLCAnLycpOw0KCQkJCSRwYXRoT3B0aW9uPSRjb25maWdbJ3Jvb3RfcGF0aCddLiRwYXRoT3B0aW9uOw0KCQkJCSRjb2RlVG9GaWxlPWZpbGVfZ2V0X2NvbnRlbnRzKCRwYXRoT3B0aW9uKTsNCgkJCQlpZigoJE1pbmlmeT09dHJ1ZXx8JE1pbmlmeT09JzEnKSYmJE1pbmlmeSE9JycmJiRNaW5pZnkhPWZhbHNlKXskY29kZVRvRmlsZT1zZWxmOjpNaW5pZnlJdCgkY29kZVRvRmlsZSwkZXh0KTt9DQoJCQkJaWYoJHZhbF9tZXRoPT1mYWxzZSl7JGNvZGU9IlxyXG4gLyogbWluaWZpZWQgJE1pbmlmeSAgclxuIHNjcmlwdCAkSUQgXHJcbiBwYXRoICRwYXRoT3B0aW9uIFxyXG4gVE9ETyAtLSBwcm9maWxlIFxyXG4iLnNkX2xvZ2dpbjo6R2V0X05vdGVzKCRJRCkuIlxyXG4gKi8gXHJcbiI7fQ0KCQkJCSRjb2RlVG9GaWxlPSRjb2RlLiRjb2RlVG9GaWxlOw0KCQkJfQ0KCQkJaWYoJHNjcmlwdFR5cGU9PSJDU1MiKXsNCgkJCQlpZigkdGhpcy0+R2V0UHJlZmVyZW5jZSgicHJlbG9hZF9DU1NpbWFnZSIpKXsNCgkJCQkJJHRoaXMtPkZpcmVEZWJ1ZygnZXJyb3InLCAncHJlbG9hZF9DU1NpbWFnZTogJy4kc2NyaXB0VHlwZSk7DQoJCQkJCSR0aGlzLT5TZXRQcmVmZXJlbmNlKCRJRC4nLXByZWxvYWRfQ1NTaW1hZ2Utc2NyaXB0LVNEJywkdGhpcy0+YnVpbGRfcHJlbG9hZCgkY29kZVRvRmlsZSkpOw0KCQkJCX0NCgkJCX0NCgkJfWVsc2VpZigkZ3JvdXBlZD09Imdyb3VwSUQiKXsNCgkJCSRHcm91cEFycmF5PSR0aGlzLT5zZWxlY3RHcm91cEl0ZW1zKCRJRCk7DQoJCQlmb3JlYWNoKCRHcm91cEFycmF5IGFzICRrZXkgPT4gJElEKXsNCgkJCQlAZXh0cmFjdCgkdGhpcy0+Z2V0U2NyaXB0RnVsbCgkSUQpKTsNCgkJCQkkTWluaWZ5PSR0aGlzLT5HZXRQcmVmZXJlbmNlKCRJRC4nLU1pbmlmeS1TRCcsJE1pbmlmeSk7DQoJCQkJaWYoJHZhbF9tZXRoPT10cnVlKXskTWluaWZ5PWZhbHNlO30NCgkJCQlpZigkc21hcnR5T24pew0KCQkJCQkkU2NyaXB0SXM9c2VsZjo6c21hcnR5T24oJFNjcmlwdElzKTsNCgkJCQl9DQoJCQkJDQoJCQkJaWYoJFNjcmlwdElzIT0nJyl7DQoJCQkJCWlmKCgkTWluaWZ5PT10cnVlfHwkTWluaWZ5PT0nMScpJiYkTWluaWZ5IT0nJyYmJE1pbmlmeSE9ZmFsc2UpeyRTY3JpcHRJcz1zZWxmOjpNaW5pZnlJdCgkU2NyaXB0SXMsJGV4dCk7fQ0KCQkJCQlpZigkdmFsX21ldGg9PWZhbHNlKXskY29kZT0iXHJcbiAvKiBtaW5pZmllZCAkTWluaWZ5IFxyXG4gc2NyaXB0ICRJRCBcclxuIFRPRE8gLS0gcHJvZmlsZSBcclxuIi5zZF9sb2dnaW46OkdldF9Ob3RlcygkSUQpLiJcclxuICovIFxyXG4iO30NCgkJCQkJJGNvZGVUb0ZpbGUuPSRjb2RlLiRTY3JpcHRJczsNCgkJCQl9DQoJCQkJaWYoJHBhdGhPcHRpb24pew0KCQkJCQlpZiAoKHN1YnN0cigkcGF0aE9wdGlvbiwgMCw0KSk9PSJodHRwIil7JEw9c3RybGVuKCRjb25maWdbJ3Jvb3RfdXJsJ10pOyRwYXRoT3B0aW9uID0gc3Vic3RyX3JlcGxhY2UoJHBhdGhPcHRpb24sICcnLCAwLCAkTCk7fQ0KCQkJCQkkcGF0aE9wdGlvbj1ydHJpbSgkcGF0aE9wdGlvbiwgJy8nKTsNCgkJCQkJJHBhdGhPcHRpb249JGNvbmZpZ1sncm9vdF9wYXRoJ10uJHBhdGhPcHRpb247DQoJCQkJCSRjb2RlVG9GaWxlRnJvbVBhdGg9ZmlsZV9nZXRfY29udGVudHMoJHBhdGhPcHRpb24pOw0KCQkJCQlpZigoJE1pbmlmeT09dHJ1ZXx8JE1pbmlmeT09JzEnKSYmJE1pbmlmeSE9JycmJiRNaW5pZnkhPWZhbHNlKXskY29kZVRvRmlsZUZyb21QYXRoPXNlbGY6Ok1pbmlmeUl0KCRjb2RlVG9GaWxlRnJvbVBhdGgsJGV4dCk7fQ0KCQkJCQlpZigkdmFsX21ldGg9PWZhbHNlKXskY29kZT0iXHJcbiAvKiBtaW5pZmllZCAkTWluaWZ5ICBcclxuIHNjcmlwdCAkSUQgXHJcbiAgcGF0aCAkcGF0aE9wdGlvbiBcclxuIFRPRE8gLS0gcHJvZmlsZSBcclxuIi5zZF9sb2dnaW46OkdldF9Ob3RlcygkSUQpLiJcclxuICovIFxyXG4iO30NCgkJCQkJJGNvZGVUb0ZpbGUuPSRjb2RlLiRjb2RlVG9GaWxlRnJvbVBhdGg7DQoJCQkJfQ0KCQkJfQ0KCQkJaWYoJGV4dD09IkNTUyIpew0KCQkJCWlmKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCJwcmVsb2FkX0NTU2ltYWdlIikpew0KCQkJCQkkdGhpcy0+U2V0UHJlZmVyZW5jZSgkSUQuJy1wcmVsb2FkX0NTU2ltYWdlLWdyb3VwLVNEJywkdGhpcy0+YnVpbGRfcHJlbG9hZCgkY29kZVRvRmlsZSkpOw0KCQkJCQkkdGhpcy0+RmlyZURlYnVnKCdlcnJvcicsICdwcmVsb2FkX0NTU2ltYWdlOiAnLiRleHQpOw0KCQkJCX0NCgkJCX0NCgkJfQ0KCQlpZigkZXh0PT0iQ1NTIil7DQoJCQlpZigkZmlsZVRpbWVfY3NzX3VybHMmJiEkdmFsX21ldGgpew0KCQkJCSRjb2RlVG9GaWxlPSR0aGlzLT5maWxlVGltZV9jc3NfdXJscygkY29kZVRvRmlsZSk7DQoJCQl9DQoJCX0NCgkJJG91cHV0ID0gYXJyYXkoJGNvZGVUb0ZpbGUsJGV4dCk7DQoJCXJldHVybiAkb3VwdXQ7DQoJfQ0KCQ0KCQ0KCS8qKg0KCSogVGFrZSBjb2RlIGFuZCBwcm9jZXNzIHNtYXJ0eS4NCgkqDQoJKiBOb3RlIHRoZSBzbWFydHkgZGVsaW1pdGVyIGlzIHN3aXRjaGVkIGZyb20geyB9IHRvIHt7IH19IHNvIHRoYXQgc21hcnR5DQoJKiBjYW4gYmUgdXNlZCBpbiB0aGUgamF2YXNjcmlwdCBmaWxlcw0KCSoNCgkqIEB0b2RvIFB1bGwgb3V0IHRvIGEgcHJvY2Vzc2luZyBjbGFzcw0KCSogQHJldHVybiBzdHJpbmcgdGhpcyBpcyB0aGUgc21hcnR5IHByb2Nlc3NlZCBzY3JpcHQNCgkqLw0KCXB1YmxpYyBmdW5jdGlvbiBzbWFydHlPbigkY29kZVRvRmlsZSl7DQoJCQkJJHRoaXMtPnNtYXJ0eS0+bGVmdF9kZWxpbWl0ZXIgPSAne3snOw0KCQkJCSR0aGlzLT5zbWFydHktPnJpZ2h0X2RlbGltaXRlciA9ICd9fSc7DQoJCQkJJGNvZGVUb0ZpbGU9JHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCRjb2RlVG9GaWxlKTsgDQoJCQkJJHRoaXMtPnNtYXJ0eS0+bGVmdF9kZWxpbWl0ZXIgPSAneyc7DQoJCQkJJHRoaXMtPnNtYXJ0eS0+cmlnaHRfZGVsaW1pdGVyID0gJ30nOwkNCgkJCQlyZXR1cm4gJGNvZGVUb0ZpbGU7DQoJfQ0KCQ0KCS8qKg0KCSogVGFrZSBjb2RlIGFuZCBtaW5pZnkuDQoJKg0KCSogcmlnaHQgbm93IG9ubHkgaHRtbCwgY3NzIGFuZCBqcyBpcyBsb2FkZWQNCgkqDQoJKiBAdG9kbyBQdWxsIG91dCB0byBhIHByb2Nlc3NpbmcgY2xhc3MNCgkqIEBwYXJhbSBzdHJpbmcgJGRhdGEgdGhlIGNvZGUgdGhhdCBuZWVkcyB0byBiZSBwcm9jZXNzZWQuDQoJKiBAcGFyYW0gc3RyaW5nICRleHQgdGhlIHR5cGUgb3Mgc2NyaXB0IGVnIGNzcywganMsIG9yIGh0bWwuDQoJKiBAcmV0dXJuIHN0cmluZyB0aGlzIGlzIHRoZSBzbWFydHkgcHJvY2Vzc2VkIHNjcmlwdA0KCSovDQoJcHVibGljIGZ1bmN0aW9uIE1pbmlmeUl0KCRkYXRhLCRleHQpew0KCQkkYXJnMiA9IG51bGw7DQoJCSR0eXBlSVMgPScnOw0KCQlzd2l0Y2ggKCRleHQpIHsNCgkJY2FzZSAnSlMnOg0KCQkJJHR5cGVJUyA9ICdKYXZhc2NyaXB0JzsNCgkJCWJyZWFrOw0KCQljYXNlICdDU1MnOg0KCQkJJHR5cGVJUyA9ICdDU1MnOw0KCQkJYnJlYWs7DQoJCWNhc2UgJ2h0bWwnOg0KCQkJJHR5cGVJUyA9ICdIVE1MJzsNCgkJCSRhcmcyID0gYXJyYXkoDQoJCQkJJ2Nzc01pbmlmaWVyJyA9PiBhcnJheSgnTWluaWZ5X0NTUycsICdtaW5pZnknKQ0KCQkJCSwnanNNaW5pZmllcicgPT4gYXJyYXkoJ01pbmlmeV9KYXZhc2NyaXB0JywgJ21pbmlmeScpDQoJCQkpOw0KCQl9DQoJCSRmdW5jID0gYXJyYXkoJ01pbmlmeV8nIC4gJHR5cGVJUywgJ21pbmlmeScpOw0KCQlyZXR1cm4gQGNhbGxfdXNlcl9mdW5jKCRmdW5jLCAkZGF0YSwgJGFyZzIpOw0KCX0NCg0KCQ0KfQ==]]></data>
	</file>
	<file>
	  <filename>/lib/class.script_dissection.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCi8qKg0KICogTW9kdWxlOiBTY3JpcHREZXBsb3kgLSBNaW5pZnkgYW5kIGRlcGxveW1lbnQgb2YgSlMgQ1NTIGFuZCBIVE1MDQogKiANCiAqIA0KICogQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykNCiAqIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnDQogKiBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvc2NyaXB0ZGVwbG95Lw0KICogDQogKiBAcGFja2FnZSBTY3JpcHREZXBsb3kNCiAqIEBhdXRob3IgamVyZW15QmFzcyA8amVyZW15QmFzc0BjYWJsZW9uZS5uZXQ+DQogKiBAY29weXJpZ2h0IEplcmVteSBCYXNzDQogKiBAbGljZW5zZSBodHRwOi8vd3d3LmdudS5vcmcvY29weWxlZnQvZ3BsLmh0bWwgRnJlZWx5IGF2YWlsYWJsZSB1bmRlciBHUEwNCiAqLyANCg0KaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7DQpjbGFzcyBzY3JpcHRfZGlzc2VjdGlvbiBleHRlbmRzIFNjcmlwdERlcGxveXsNCg0KDQoJICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoKXsNCgkJcGFyZW50OjpfX2NvbnN0cnVjdCgpOw0KCQkkdGhpcy0+X2RhdGEgPSBhcnJheSgpOw0KCSAgfQ0KDQoJLyoqDQoJKiBjc3NfdXJsX2Rpc3NlY3Rpb24uDQoJKg0KCSoNCgkqIEBwYXJhbSBpbnRlZ2VyICRzSUQgLg0KCSogQHJldHVybiBhcnJheSB0aGlzIGlzIGFuIGFycmF5IG9mIHRoZSBlcnJvcnMgYW5kIHdhcm5pbmdzIGZvciBjc3MNCgkqLw0KCXB1YmxpYyBmdW5jdGlvbiBjc3NfdXJsX2Rpc3NlY3Rpb24oJHNJRCkgew0KCQlnbG9iYWwgJGdDbXM7DQoJCS8vaWYoJF9TRVJWRVJbIlNFUlZFUl9OQU1FIl09PSdsb2NhbGhvc3QnfHwkX1NFUlZFUlsiU0VSVkVSX05BTUUiXT09JzEyNy4wLjAuMScpcmV0dXJuOw0KCQkkY29uZmlnID0mICRnQ21zLT5HZXRDb25maWcoKTsgDQoJCSRob3RMaW5rQ2hlY2sgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaG90TGlua0NoZWNrJywxKTsNCi8vCQkkU3ViZGlyPSdzY3JpcHRJRC0nLiRzSUQ7DQovLwkJJGZpbGViYXNlbmFtZT0kc0lEOw0KLy8JDQovLwkJJFN0eXBlPSAnY3NzJzsNCi8vCQkkZmlsZW5hbWU9JGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10uIi9saWIvU0QtdGVtcC9SUFQvJFN1YmRpci8kc0lELmNzcyI7CQ0KLy8JCWlmKGZpbGVfZXhpc3RzKCRmaWxlbmFtZSkpew0KLy8JCQkJCXVubGluayAoJGZpbGVuYW1lKTsNCi8vCQl9DQoNCgkJJGRhdGE9c2NyaXB0UHJvY2Vzc2luZzo6UHJvY2Nlc3NTRCgkc0lELCdzY3JpcHRJRCcsdHJ1ZSxmYWxzZSwnQ1NTJyk7DQovLwkJJGV2ZW50ID0gJGRhdGFbMF07DQovLwkNCi8vCQlpZighZmlsZV9leGlzdHMoJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10uIi9saWIvU0QtdGVtcC9SUFQvIi4kU3ViZGlyKSl7DQovLwkJCW1rZGlyKCRjb25maWdbJ3VwbG9hZHNfcGF0aCddLiIvbGliL1NELXRlbXAvUlBULyIuJFN1YmRpciwgMDc3NywgdHJ1ZSk7DQovLwkJfQ0KLy8JCSRvdXJGaWxlTmFtZSA9ICRmaWxlbmFtZTsNCi8vCQkkb3VyRmlsZUhhbmRsZSA9IGZvcGVuKCRvdXJGaWxlTmFtZSwgJ3cnKSBvciBkaWUoImNhbid0IG9wZW4gZmlsZSIpOw0KLy8JCWZjbG9zZSgkb3VyRmlsZUhhbmRsZSk7DQovLwkJLy8gR0VUIExFTkdUSCwgQU5EIFNUT1JFIERBVEEgVE8gT1VSIFNFUlZFUiAoT1IgREFUQSBCQVNFKQ0KLy8JCSRsZW4gPSBzdHJsZW4oJGV2ZW50KTsNCi8vCQkkY2hrID0gZmlsZV9wdXRfY29udGVudHMoJGZpbGVuYW1lLCAkZXZlbnQpOw0KLy8JCS8vIFRFU1QgRk9SIFNVQ0NFU1NGVUwgU1RPUkFHRQ0KLy8JCWlmICgkbGVuIT0kY2hrKSBkaWUoIkxFTkdUSCBNSVNNQVRDSCIpOw0KLy8JDQovLwkJJGNzc2ZpbGU9JGZpbGVuYW1lOw0KCQkvL2luY2x1ZGUoZGlybmFtZShfX0ZJTEVfXykuJy8vYWN0aW9uLkNTU3JlcG9ydC5waHAnKTsNCgkJDQoJCQ0KCQkkcGF5bG9hZD0nJzsNCgkJLy9pZigkbGVuPjApew0KCQkJLy8kY3NzPWZpbGVfZ2V0X2NvbnRlbnRzKCRjc3NmaWxlKTsNCgkJCSRjc3M9JGRhdGFbMF07DQoJCQkkcGF5bG9hZC49ICc8ZGl2IGlkPSJFVVJMUyI+PGgyPicuJHRoaXMtPkxhbmcoJ0VVUkxTJykuJzwvaDI+JzsNCgkJCSRwYXlsb2FkLj0gJzx0YWJsZSBjbGFzcz0iY2FjaGVUYWJsZSI+JzsNCgkJCSRwYXlsb2FkLj0gJzx0cj48dGg+IzwvdGg+PHRoPicuJHRoaXMtPkxhbmcoJ2lVUkwnKS4nPC90aD48IS0tPHRoPicuJHRoaXMtPkxhbmcoJ1R5cGUnKS4nPC90aD4tLT48dGg+Jy4kdGhpcy0+TGFuZygnU2l6ZScpLic8L3RoPjx0aD4nLiR0aGlzLT5MYW5nKCdTdGF0dXMnKS4nPC90aD48L3RyPic7CQ0KCQkJJGNzc191cmxzPXNlbGY6OmV4dHJhY3RfY3NzX3VybHMoJGNzcyk7DQoJCQlpZighZW1wdHkoJGNzc191cmxzKSl7DQoJCQkJDQoJCQkJaWYoISRob3RMaW5rQ2hlY2spew0KCQkJCQkkcGF5bG9hZC49ICc8dHI+JzsNCgkJCQkJJHBheWxvYWQuPSAnPHRkPjA8L3RkPic7DQoJCQkJCSRwYXlsb2FkLj0gJzx0ZD48aDM+Jy4gJHRoaXMtPkxhbmcoJ1RydW5PbmhvdExpbmtDaGVjaycpLic8L2gzPjwvdGQ+JzsNCgkJCQkJJHBheWxvYWQuPSAnPHRkPjwvdGQ+JzsNCgkJCQkJJHBheWxvYWQuPSc8dGQ+PC90ZD4nOw0KCQkJCQkkcGF5bG9hZC49JzwvdHI+JzsNCgkJCQl9ZWxzZXsNCgkJCQkJZm9yZWFjaCgkY3NzX3VybHNbJ3Byb3BlcnR5J10gYXMgJGtleT0+JGNzc191cmwpew0KCQkJCQkJJHJlcG9ydEFycmF5ID0gJHRoaXMtPkhvdGxpbmtDaGVjaygka2V5LCRjc3NfdXJsKTsNCgkJCQkJCSRwYXlsb2FkLj0gIjx0cj4iOw0KCQkJCQkJJHBheWxvYWQuPSAiPHRkPiIuJHJlcG9ydEFycmF5WzFdLiI8L3RkPiI7DQoJCQkJCQkkcGF5bG9hZC49ICc8dGQ+PGEgaHJlZj0iJy4kcmVwb3J0QXJyYXlbMl0uJyIgdGFyZ2V0PSJfYmxhbmsiPicuJHJlcG9ydEFycmF5WzRdLic8L2E+PC90ZD4nOw0KCQkJCQkJJHBheWxvYWQuPSAiPHRkPiIuJHJlcG9ydEFycmF5WzNdLiI8L3RkPiI7DQoJCQkJCQkkcGF5bG9hZC49Jzx0ZD4nLiAkcmVwb3J0QXJyYXlbMF0gLiAnIDwvdGQ+JzsNCgkJCQkJCSRwYXlsb2FkLj0nPC90cj4nOwkJCQ0KCQkJCQkJLy8kcGF5bG9hZC49ICRhZGpLZXkuJyAtIDxhIGhyZWY9IicuJGNzc191cmwuJyIgdGFyZ2V0PSJfYmxhbmsiPicuJGJhc2VVUkwuJzwvYT4nLiRjc3NfdXJsX1cuJzxici8+JzsJDQoJCQkJCX0NCgkJCQl9CQ0KCQkJfWVsc2V7DQoJCQkJJHBheWxvYWQuPSAnPHRyPic7DQoJCQkJJHBheWxvYWQuPSAnPHRkPjA8L3RkPic7DQoJCQkJJHBheWxvYWQuPSAnPHRkPjxoMz4nLiAkdGhpcy0+TGFuZygnTk9jc3NJJykuJzwvaDM+PC90ZD4nOw0KCQkJCSRwYXlsb2FkLj0gJzx0ZD48L3RkPic7DQoJCQkJJHBheWxvYWQuPSc8dGQ+PC90ZD4nOw0KCQkJCSRwYXlsb2FkLj0nPC90cj4nOw0KCQkJfQ0KCQkJJHBheWxvYWQuPSAnPC90YWJsZT48L2Rpdj4nOwkNCgkJCS8vJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdwYXlsb2FkJywkcGF5bG9hZCk7DQovLwkJfWVsc2V7DQovLwkJCSRwYXlsb2FkPSdFcnJvciBDb3VsZCBub3Qgd3JpdGUgdG8gZmlsZSc7DQovLwkJfQ0KCQkJcmV0dXJuICRwYXlsb2FkOw0KCX0NCgkNCglwdWJsaWMgZnVuY3Rpb24gcmVuZGVyZWRfY3NzX2Rpc3NlY3Rpb24oJHNJRCkgew0KCQlnbG9iYWwgJGdDbXM7DQoJCS8vaWYoJF9TRVJWRVJbIlNFUlZFUl9OQU1FIl09PSdsb2NhbGhvc3QnfHwkX1NFUlZFUlsiU0VSVkVSX05BTUUiXT09JzEyNy4wLjAuMScpcmV0dXJuOw0KDQoJCSRkYXRhPXNjcmlwdFByb2Nlc3Npbmc6OlByb2NjZXNzU0QoJHNJRCwnc2NyaXB0SUQnLHRydWUsZmFsc2UsJ0NTUycpOw0KDQoNCgkJCWluY2x1ZGVfb25jZSgiLi4vQ1NTVHJlZS5pbmMucGhwIik7DQoNCgkJCS8vJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdKU3BheWxvYWQnLCAkSlNwYXlsb2FkKTsgDQoJCQkkcGF5bG9hZD0nJzsNCgkJDQoJCQkkbnVsbD1udWxsOw0KCQkJJHRyZWUgPSBuZXcgQ1NTVHJlZSgkbnVsbCwiIik7DQoJCQkkY3NzPSRkYXRhWzBdOw0KCQkJLy8gcGFyc2UgdGhlIGNzcy1maWxlIGFuZCBnZW5lcmF0ZSB0cmVlIHN0cnVjdHVyZSANCgkJCSR0cmVlPSR0cmVlLT5wYXJzZUZpbGUoJGNzc2ZpbGUpOw0KDQoJCQkkcGF5bG9hZC49ICc8ZGl2IGlkPSJSQ1NTIj48aDI+Jy4kdGhpcy0+TGFuZygnUkNTUycpLic8L2gyPic7DQoJCQkkcGF5bG9hZC49ICc8cHJlPic7DQoJCQkkcGF5bG9hZC49ICR0cmVlLT5yZW5kZXJDU1NBbGwoKTsNCgkJCSRwYXlsb2FkLj0gJzwvcHJlPjwvZGl2Pic7DQoNCgkJCXJldHVybiAkcGF5bG9hZDsNCg0KCX0NCgkNCgkNCi8vCXB1YmxpYyBmdW5jdGlvbiBjc3NfZGlzc2VjdGlvbiggJGlkLCAkU0R0eXBlLCRhamF4PWZhbHNlKSB7DQovLwkJZ2xvYmFsICRnQ21zOw0KLy8JCS8vaWYoJF9TRVJWRVJbIlNFUlZFUl9OQU1FIl09PSdsb2NhbGhvc3QnfHwkX1NFUlZFUlsiU0VSVkVSX05BTUUiXT09JzEyNy4wLjAuMScpcmV0dXJuOw0KLy8JCSRjb25maWcgPSYgJGdDbXMtPkdldENvbmZpZygpOyANCi8vCQkkSUQ9JGlkOw0KLy8NCi8vCQkkdHlwZT0kU0R0eXBlOw0KLy8JDQovLwkJJFN1YmRpcj0nc2NyaXB0SUQtJy4kc0lEOw0KLy8JCSRmaWxlYmFzZW5hbWU9JHNJRDsNCi8vCQ0KLy8JCSRTdHlwZT0gJ2Nzcyc7DQovLwkJJGZpbGVuYW1lPSRjb25maWdbJ3VwbG9hZHNfcGF0aCddLiIvbGliL1NELXRlbXAvUlBULyRTdWJkaXIvJHNJRC5jc3MiOwkNCi8vCQlpZihmaWxlX2V4aXN0cygkZmlsZW5hbWUpKXsNCi8vCQkJCQl1bmxpbmsgKCRmaWxlbmFtZSk7DQovLwkJfQ0KLy8NCi8vCQkkZGF0YT1zY3JpcHRQcm9jZXNzaW5nOjpQcm9jY2Vzc1NEKCRzSUQsJ3NjcmlwdElEJyx0cnVlLGZhbHNlLCdDU1MnKTsNCi8vCQkkZXZlbnQgPSAkZGF0YVswXTsNCi8vCQ0KLy8JCWlmKCFmaWxlX2V4aXN0cygkY29uZmlnWyd1cGxvYWRzX3BhdGgnXS4iL2xpYi9TRC10ZW1wL1JQVC8iLiRTdWJkaXIpKXsNCi8vCQkJbWtkaXIoJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10uIi9saWIvU0QtdGVtcC9SUFQvIi4kU3ViZGlyLCAwNzc3LCB0cnVlKTsNCi8vCQl9DQovLwkJJG91ckZpbGVOYW1lID0gJGZpbGVuYW1lOw0KLy8JCSRvdXJGaWxlSGFuZGxlID0gZm9wZW4oJG91ckZpbGVOYW1lLCAndycpIG9yIGRpZSgiY2FuJ3Qgb3BlbiBmaWxlIik7DQovLwkJZmNsb3NlKCRvdXJGaWxlSGFuZGxlKTsNCi8vCQkvLyBHRVQgTEVOR1RILCBBTkQgU1RPUkUgREFUQSBUTyBPVVIgU0VSVkVSIChPUiBEQVRBIEJBU0UpDQovLwkJJGxlbiA9IHN0cmxlbigkZXZlbnQpOw0KLy8JCSRjaGsgPSBmaWxlX3B1dF9jb250ZW50cygkZmlsZW5hbWUsICRldmVudCk7DQovLwkJLy8gVEVTVCBGT1IgU1VDQ0VTU0ZVTCBTVE9SQUdFDQovLwkJaWYgKCRsZW4hPSRjaGspIGRpZSgiTEVOR1RIIE1JU01BVENIIik7DQovLwkNCi8vCQkkY3NzZmlsZT0kZmlsZW5hbWU7DQovLwkJLy9pbmNsdWRlKGRpcm5hbWUoX19GSUxFX18pLicvL2FjdGlvbi5DU1NyZXBvcnQucGhwJyk7DQovLwkJDQovLwkJDQovLwkNCi8vCQlpZigkbGVuPjApew0KLy8JCQlpbmNsdWRlKCJDU1NUcmVlLmluYy5waHAiKTsNCi8vDQovLwkJCS8vJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdKU3BheWxvYWQnLCAkSlNwYXlsb2FkKTsgDQovLwkJCSRwYXlsb2FkPScnOw0KLy8JCQkvLy8vIGR1bW15IGRhdGEgDQovLwkJCS8vJGRkYXRhPWFycmF5KCJib3JkZXIiPT4iMXB4IHNvbGlkIGJsYWNrIik7DQovLwkJCS8vJGRkYXRhMj1hcnJheSgiYm9yZGVyIj0+IjJweCBzb2xpZCBzaWx2ZXIiKTsNCi8vCQkJDQovLwkJCS8vIGNzc2ZpbGUgdG8gcmVhZCBmcm9tIA0KLy8JCQkNCi8vCQkJDQovLwkJCS8vIGluaXQgdGhlIHRyZWUgKFRyZWUuaW5jLnBocCksIGF2YWlsYWJsZSBmcm9tOg0KLy8JCQkvLyBodHRwOi8vd3d3LnBocGNsYXNzZXMub3JnL2Jyb3dzZS9wYWNrYWdlLzI4MTcuaHRtbA0KLy8JCQkNCi8vCQkJJG51bGw9bnVsbDsNCi8vCQkJJHRyZWUgPSBuZXcgQ1NTVHJlZSgkbnVsbCwiIik7DQovLw0KLy8JCQ0KLy8JCQkkY3NzPWZpbGVfZ2V0X2NvbnRlbnRzKCRjc3NmaWxlKTsNCi8vCQkJLy8gcGFyc2UgdGhlIGNzcy1maWxlIGFuZCBnZW5lcmF0ZSB0cmVlIHN0cnVjdHVyZSANCi8vCQkJJHRyZWU9JHRyZWUtPnBhcnNlRmlsZSgkY3NzZmlsZSk7DQovLw0KLy8JCSRwYXlsb2FkLj0gJzxkaXYgY2xhc3M9ImhpZGRlbiI+JzsNCi8vCQkJJHBheWxvYWQuPSAnPGRpdiBpZD0iRVVSTFMiPjxoMj4nLiR0aGlzLT5MYW5nKCdFVVJMUycpLic8L2gyPic7DQovLwkJCSRwYXlsb2FkLj0gJzx0YWJsZSBjbGFzcz0iY2FjaGVUYWJsZSI+JzsNCi8vCQkJJHBheWxvYWQuPSAnPHRyPjx0aD4jPC90aD48dGg+Jy4kdGhpcy0+TGFuZygnaVVSTCcpLic8L3RoPjwhLS08dGg+Jy4kdGhpcy0+TGFuZygnVHlwZScpLic8L3RoPi0tPjx0aD4nLiR0aGlzLT5MYW5nKCdTaXplJykuJzwvdGg+PHRoPicuJHRoaXMtPkxhbmcoJ1N0YXR1cycpLic8L3RoPjwvdHI+JzsJDQovLwkJCSRjc3NfdXJscz0kdGhpcy0+ZXh0cmFjdF9jc3NfdXJscygkY3NzKTsNCi8vCQkJaWYoIWVtcHR5KCRjc3NfdXJscykpew0KLy8JCQkJDQovLwkJCQlpZighJGhvdExpbmtDaGVjayl7DQovLwkJCQkJJHBheWxvYWQuPSAnPHRyPic7DQovLwkJCQkJJHBheWxvYWQuPSAnPHRkPjA8L3RkPic7DQovLwkJCQkJJHBheWxvYWQuPSAnPHRkPjxoMz4nLiAkdGhpcy0+TGFuZygnVHJ1bk9uaG90TGlua0NoZWNrJykuJzwvaDM+PC90ZD4nOw0KLy8JCQkJCSRwYXlsb2FkLj0gJzx0ZD48L3RkPic7DQovLwkJCQkJJHBheWxvYWQuPSc8dGQ+PC90ZD4nOw0KLy8JCQkJCSRwYXlsb2FkLj0nPC90cj4nOw0KLy8JCQkJfWVsc2V7DQovLwkJCQkJZm9yZWFjaCgkY3NzX3VybHNbJ3Byb3BlcnR5J10gYXMgJGtleT0+JGNzc191cmwpew0KLy8JCQkJCQkkcmVwb3J0QXJyYXkgPSAkdGhpcy0+SG90bGlua0NoZWNrKCRrZXksJGNzc191cmwpOw0KLy8JCQkJCQkkcGF5bG9hZC49ICI8dHI+IjsNCi8vCQkJCQkJJHBheWxvYWQuPSAiPHRkPiIuJHJlcG9ydEFycmF5WzFdLiI8L3RkPiI7DQovLwkJCQkJCSRwYXlsb2FkLj0gJzx0ZD48YSBocmVmPSInLiRyZXBvcnRBcnJheVsyXS4nIiB0YXJnZXQ9Il9ibGFuayI+Jy4kcmVwb3J0QXJyYXlbNF0uJzwvYT48L3RkPic7DQovLwkJCQkJCSRwYXlsb2FkLj0gIjx0ZD4iLiRyZXBvcnRBcnJheVszXS4iPC90ZD4iOw0KLy8JCQkJCQkkcGF5bG9hZC49Jzx0ZD4nLiAkcmVwb3J0QXJyYXlbMF0gLiAnIDwvdGQ+JzsNCi8vCQkJCQkJJHBheWxvYWQuPSc8L3RyPic7CQkJDQovLwkJCQkJCS8vJHBheWxvYWQuPSAkYWRqS2V5LicgLSA8YSBocmVmPSInLiRjc3NfdXJsLiciIHRhcmdldD0iX2JsYW5rIj4nLiRiYXNlVVJMLic8L2E+Jy4kY3NzX3VybF9XLic8YnIvPic7CQ0KLy8JCQkJCX0NCi8vCQkJCX0JDQovLwkJCX1lbHNlew0KLy8JCQkJJHBheWxvYWQuPSAnPHRyPic7DQovLwkJCQkkcGF5bG9hZC49ICc8dGQ+MDwvdGQ+JzsNCi8vCQkJCSRwYXlsb2FkLj0gJzx0ZD48aDM+Jy4gJHRoaXMtPkxhbmcoJ05PY3NzSScpLic8L2gzPjwvdGQ+JzsNCi8vCQkJCSRwYXlsb2FkLj0gJzx0ZD48L3RkPic7DQovLwkJCQkkcGF5bG9hZC49Jzx0ZD48L3RkPic7DQovLwkJCQkkcGF5bG9hZC49JzwvdHI+JzsNCi8vCQkJfQ0KLy8JCQkkcGF5bG9hZC49ICc8L3RhYmxlPjwvZGl2Pic7CQ0KLy8NCi8vCQkNCi8vCQkJJHBheWxvYWQuPSAnPGRpdiBpZD0iUkNTUyI+PGgyPicuJHRoaXMtPkxhbmcoJ1JDU1MnKS4nPC9oMj4nOw0KLy8JCQkkcGF5bG9hZC49ICc8cHJlPic7DQovLwkJCSRwYXlsb2FkLj0gJHRyZWUtPnJlbmRlckNTU0FsbCgpOw0KLy8JCQkkcGF5bG9hZC49ICc8L3ByZT48L2Rpdj4nOw0KLy8JCQkNCi8vDQovLwkJCSRwYXlsb2FkLj0gJzxkaXYgaWQ9IlNDU1MiPjxoMj4nLiR0aGlzLT5MYW5nKCdTQ1NTJykuJzwvaDI+JzsNCi8vCQkJJHBheWxvYWQuPSAnPHByZT4nOw0KLy8JCQkkcGF5bG9hZC49ICR0cmVlLT5lY2hvU3RydWN0dXJlKCk7DQovLwkJCSRwYXlsb2FkLj0gJzwvcHJlPjwvZGl2Pic7DQovLwkJDQovLw0KLy8JCQ0KLy8JCQkNCi8vCQkJJHBheWxvYWQuPSAnPGRpdiBpZD0iRkNPTlQiPjxoMj4nLiR0aGlzLT5MYW5nKCdGQ09OVCcpLic8L2gyPic7DQovLw0KLy8JCQkkcGF5bG9hZC49ZmlsZV9nZXRfY29udGVudHMoJGNzc2ZpbGUpOw0KLy8JCQkkcGF5bG9hZC49ICc8L2Rpdj4nOw0KLy8JCQ0KLy8JCQkvLyBhZGQgc29tZSBjaGlsZHMNCi8vCQkJLy8kdG1wPSYkdHJlZS0+YWRkQ2hpbGQoJ2N1c3RvbTEnLCRkZGF0YSk7DQovLwkJCS8vJHRtcD0mJHRtcC0+YWRkQ2hpbGQoJ2N1c3RvbTInLCRkZGF0YTIpOw0KLy8JCQ0KLy8JCQkvL2VjaG8gJzxoMj5fX19fX3JlbmRlckNTU1Byb3BlcnRpZXNfX19fX188L2gyPic7DQovLwkJCS8vZWNobyAnPHA+VGhpcyBpcyB3aGF0IHlvdSBuZWVkIGZvciB0YWdzICgmbHQ7ZGl2IHN0eWxlPSIiJmd0Oyk8L3A+JzsNCi8vCQkJLy9lY2hvICc8cHJlPic7DQovLwkJCS8vZWNobyAkdG1wLT5yZW5kZXJDU1NQcm9wZXJ0aWVzKCk7DQovLwkJCS8vZWNobyAnPC9wcmU+JzsNCi8vCQkNCi8vCQkJLy9lY2hvICc8aDI+X19fX19yZW5kZXJDU1MoKV9fX19fXzwvaDI+JzsNCi8vCQkJLy9lY2hvICc8cD5UaGlzIGlzIHdoYXQgeW91IG5lZWQgaW4gdGhlIGhlYWRlciBzZWN0aW9uICZsdDtzdHlsZSZndDs8L3A+JzsNCi8vCQkJLy9lY2hvICc8cHJlPic7DQovLwkJCS8vZWNobyAkdG1wLT5yZW5kZXJDU1MoKTsNCi8vCQkJLy9lY2hvICc8L3ByZT4nOw0KLy8JCQkkcGF5bG9hZC49ICc8L2Rpdj4nOw0KLy8JCQkvLyR0aGlzLT5zbWFydHktPmFzc2lnbigncGF5bG9hZCcsJHBheWxvYWQpOw0KLy8JCWlmKCRhamF4PT10cnVlKXsNCi8vCQkJcmV0dXJuICRwYXlsb2FkOw0KLy8JCX0NCi8vICAgIC8vZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdhZG1pbl92aWV3X2xvZ3MudHBsJyk7DQovLwl9DQoNCn0=]]></data>
	</file>
	<file>
	  <filename>/lib/class.sdVal.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCi8qKg0KICogTW9kdWxlOiBTY3JpcHREZXBsb3kgLSBNaW5pZnkgYW5kIGRlcGxveW1lbnQgb2YgSlMgQ1NTIGFuZCBIVE1MDQogKiANCiAqIA0KICogQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykNCiAqIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnDQogKiBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvc2NyaXB0ZGVwbG95Lw0KICogDQogKiBAcGFja2FnZSBTY3JpcHREZXBsb3kNCiAqIEBhdXRob3IgamVyZW15QmFzcyA8amVyZW15QmFzc0BjYWJsZW9uZS5uZXQ+DQogKiBAY29weXJpZ2h0IEplcmVteSBCYXNzDQogKiBAbGljZW5zZSBodHRwOi8vd3d3LmdudS5vcmcvY29weWxlZnQvZ3BsLmh0bWwgRnJlZWx5IGF2YWlsYWJsZSB1bmRlciBHUEwNCiAqLyANCg0KaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7DQpjbGFzcyBzZFZhbCBleHRlbmRzIFNjcmlwdERlcGxveXsNCg0KDQoJICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoKXsNCgkJcGFyZW50OjpfX2NvbnN0cnVjdCgpOw0KCQkkdGhpcy0+X2RhdGEgPSBhcnJheSgpOw0KCSAgfQ0KDQoJLyoqDQoJKiBDaGVjayBmb3IgZXJyb3JzIGFuZCB3YXJuaW5ncyBmb3IgY3NzLg0KCSoNCgkqDQoJKiBAdG9kbyBQdWxsIG91dCB0byBhIHZhbGlkYXRpb24gY2xhc3MNCgkqIEBwYXJhbSBpbnRlZ2VyICRpZCAuDQoJKiBAcGFyYW0gc3RyaW5nICRwcm9maWxlIC4NCgkqIEBwYXJhbSBzdHJpbmcgJGxhbmcgLg0KCSogQHBhcmFtIGludGVnZXIgJHdhcm5pbmcgLg0KCSogQHBhcmFtIHN0cmluZyAkdXNlcm1lZGl1bSAuDQoJKiBAcmV0dXJuIGFycmF5IHRoaXMgaXMgYW4gYXJyYXkgb2YgdGhlIGVycm9ycyBhbmQgd2FybmluZ3MgZm9yIGNzcw0KCSovDQoJcHVibGljIGZ1bmN0aW9uIHJldHJpZXZlQ1NTVmFsKCAkaWQsICRwcm9maWxlPSJjc3MyMSIsICRsYW5nPSJlbiIsICR3YXJuaW5nPSIyIiwgJHVzZXJtZWRpdW09ImFsbCIpIHsNCgkJZ2xvYmFsICRnQ21zOw0KCQkvL2lmKCRfU0VSVkVSWyJTRVJWRVJfTkFNRSJdPT0nbG9jYWxob3N0J3x8JF9TRVJWRVJbIlNFUlZFUl9OQU1FIl09PScxMjcuMC4wLjEnKXJldHVybjsNCgkJJGNvbmZpZyA9JiAkZ0Ntcy0+R2V0Q29uZmlnKCk7IA0KCQkkSUQ9JGlkOw0KCQkkU0R0eXBlPSJzY3JpcHRJRCI7DQoNCgkJJGZpbGViYXNlbmFtZT0kSUQ7DQoJDQoJCSRTdHlwZT0gJ2Nzcyc7DQoJCSRmaWxlbmFtZT0kY29uZmlnWyd1cGxvYWRzX3BhdGgnXS4iL2xpYi9TRC10ZW1wL1ZBTC8kU0R0eXBlLyRJRC5jc3MiOwkNCgkJaWYoZmlsZV9leGlzdHMoJGZpbGVuYW1lKSl7DQoJCQkJCXVubGluayAoJGZpbGVuYW1lKTsNCgkJfQ0KDQoJCSRTbWFydHlPbj0gdHJ1ZTsNCgkJJGRhdGE9c2NyaXB0UHJvY2Vzc2luZzo6UHJvY2Nlc3NTRCgkSUQsJFNEdHlwZSwkU21hcnR5T24sZmFsc2UsJ0NTUycsdHJ1ZSk7DQoJCSRldmVudCA9ICRkYXRhWzBdOw0KCQ0KCQlpZighZmlsZV9leGlzdHMoJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10uIi9saWIvU0QtdGVtcC9WQUwvIi4kU0R0eXBlKSl7DQoJCQlta2RpcigkY29uZmlnWyd1cGxvYWRzX3BhdGgnXS4iL2xpYi9TRC10ZW1wL1ZBTC8iLiRTRHR5cGUsIDA3NzcsIHRydWUpOw0KCQl9DQoJCSRvdXJGaWxlTmFtZSA9ICRmaWxlbmFtZTsNCgkJJG91ckZpbGVIYW5kbGUgPSBmb3Blbigkb3VyRmlsZU5hbWUsICd3Jykgb3IgZGllKCJjYW4ndCBvcGVuIGZpbGUiKTsNCgkJZmNsb3NlKCRvdXJGaWxlSGFuZGxlKTsNCgkJLy8gR0VUIExFTkdUSCwgQU5EIFNUT1JFIERBVEEgVE8gT1VSIFNFUlZFUiAoT1IgREFUQSBCQVNFKQ0KCQkkbGVuID0gc3RybGVuKCRldmVudCk7DQoJCSRjaGsgPSBmaWxlX3B1dF9jb250ZW50cygkZmlsZW5hbWUsICRldmVudCk7DQoJCS8vIFRFU1QgRk9SIFNVQ0NFU1NGVUwgU1RPUkFHRQ0KCQlpZiAoJGxlbiE9JGNoaykgZGllKCJMRU5HVEggTUlTTUFUQ0giKTsNCgkJDQoJCSRmaWxlTElOSz0kY29uZmlnWyd1cGxvYWRzX3VybCddLiIvbGliL1NELXRlbXAvVkFMLyRTRHR5cGUvJElELmNzcyI7CQ0KCQkvLyRqaWdzYXdVcmwgPSAiaHR0cDovL2ppZ3Nhdy53My5vcmcvY3NzLXZhbGlkYXRvci92YWxpZGF0b3I/b3V0cHV0PXNvYXAxMiZwcm9maWxlPSRwcm9maWxlJmxhbmc9JGxhbmcmd2FybmluZz0kd2FybmluZyZ1c2VybWVkaXVtPSR1c2VybWVkaXVtJnVyaT0kZmlsZUxJTksiOw0KCQkNCgkJDQoJCSRldmVudD11cmxlbmNvZGUodXRmOF9lbmNvZGUoJGV2ZW50KSk7DQoJCSRqaWdzYXdVcmwgPSAiaHR0cDovL2ppZ3Nhdy53My5vcmcvY3NzLXZhbGlkYXRvci92YWxpZGF0b3I/b3V0cHV0PXNvYXAxMiZwcm9maWxlPSRwcm9maWxlJmFtcDtsYW5nPSRsYW5nJndhcm5pbmc9JHdhcm5pbmcmdXNlcm1lZGl1bT0kdXNlcm1lZGl1bSZ0ZXh0PSRldmVudCI7DQoJCS8vJGppZ3Nhd1VybCA9ICJodHRwOi8vamlnc2F3LnczLm9yZy9jc3MtdmFsaWRhdG9yL3ZhbGlkYXRvciI7DQoJCS8vJG9iaiA9IGZpbGVfZ2V0X2NvbnRlbnRzKCRqaWdzYXdVcmwpOw0KCQkNCgkJJGhlYWRlcnMgPSBhcnJheSgpOw0KCQkkbWV0aG9kID0gJ0dFVCc7DQoJCSRyZXRyeSA9IDM7DQoJCSRkYXRhPScnOw0KCQkkb2JqID0gY21zbXNfaHR0cDo6Y21zbXNfaHR0cF9yZXF1ZXN0KCRqaWdzYXdVcmwsICRoZWFkZXJzLCAkbWV0aG9kLCAkZGF0YSwgJHJldHJ5KTsNCgkJLy9wcmludF9yKCc8cHJlPicpOw0KCQkvL3ByaW50X3IoJG9iaik7DQoJCS8vcHJpbnRfcignPC9wcmU+Jyk7DQoJCWlmKFNjcmlwdERlcGxveTo6R2V0UHJlZmVyZW5jZSgnZGVidWdJVCcpPT10cnVlKXByaW50KCJWYWxpZGF0aW9uIFN0YXR1cyBDb2RlIi4kb2JqLT5jb2RlLiI8YnIvPiIpOw0KCQlpZigkb2JqLT5jb2RlIT0yMDApcmV0dXJuOw0KCQkkQ1NTdmFsWG1sT2JqZWN0ID0gbmV3IFNpbXBsZVhNTEVsZW1lbnQoJG9iai0+ZGF0YSk7DQoJCQ0KCQkkcCA9IHhtbF9wYXJzZXJfY3JlYXRlKCk7DQoJCXhtbF9wYXJzZV9pbnRvX3N0cnVjdCgkcCwgJG9iai0+ZGF0YSwgJHZhbHMsICRpbmRleCk7DQoJCXhtbF9wYXJzZXJfZnJlZSgkcCk7DQoNCgkJJGVycm9ybGlzdD1hcnJheSgpOw0KDQoJCSR3YXJuaW5nbGlzdD1hcnJheSgpOw0KCQlmb3JlYWNoICgkdmFscyBhcyAkaXRlbSkgew0KCQkvLwllY2hvICI8cHJlPiI7DQoJCS8vICAgcHJpbnRfcigkaXRlbSk7IA0KCQkvLyAgIGVjaG8gIlxuXG4iOw0KCQkvLyAgIGVjaG8gIjwvcHJlPiI7DQoJCSAgIGlmICgkaXRlbVsndGFnJ10gPT0gJ006RVJST1JDT1VOVCcpeyRFUlJPUkNPVU5UPSAkaXRlbVsndmFsdWUnXTskY291bnQ9MDt9DQoJCSAgIGlmICgkaXRlbVsndGFnJ10gPT0gJ006V0FSTklOR0NPVU5UJyl7JFdBUk5JTkdDT1VOVD0gJGl0ZW1bJ3ZhbHVlJ107JGNvdW50PTA7fQ0KCQkJaWYoIWlzc2V0KCRXQVJOSU5HQ09VTlQpKXsNCgkJCSAgIGlmICgkaXRlbVsndGFnJ10gPT0gJ006TElORScpeyRjb3VudD0kY291bnQrMTskZXJyb3JsaXN0WyRjb3VudF1bJ0xJTkUnXT0gJGl0ZW1bJ3ZhbHVlJ107fQ0KCQkJICAgaWYgKCRpdGVtWyd0YWcnXSA9PSAnTTpFUlJPUlRZUEUnKXskZXJyb3JsaXN0WyRjb3VudF1bJ0VSUk9SVFlQRSddPSAkaXRlbVsndmFsdWUnXTt9DQoJCQkgICBpZiAoJGl0ZW1bJ3RhZyddID09ICdNOkVSUk9SU1VCVFlQRScpeyRlcnJvcmxpc3RbJGNvdW50XVsnRVJST1JTVUJUWVBFJ109ICRpdGVtWyd2YWx1ZSddO30NCgkJCSAgIGlmICgkaXRlbVsndGFnJ10gPT0gJ006U0tJUFBFRFNUUklORycpeyRlcnJvcmxpc3RbJGNvdW50XVsnU0tJUFBFRFNUUklORyddPSAkaXRlbVsndmFsdWUnXTt9DQoJCQkgICBpZiAoJGl0ZW1bJ3RhZyddID09ICdNOk1FU1NBR0UnKXskZXJyb3JsaXN0WyRjb3VudF1bJ01FU1NBR0UnXT0gJGl0ZW1bJ3ZhbHVlJ107fQ0KCQkJfWVsc2VpZihpc3NldCgkV0FSTklOR0NPVU5UKSl7DQoJCQkgICBpZiAoJGl0ZW1bJ3RhZyddID09ICdNOkxJTkUnKXsgJGNvdW50PSRjb3VudCsxOyR3YXJuaW5nbGlzdFskY291bnRdWydMSU5FJ109ICRpdGVtWyd2YWx1ZSddO30NCgkJCSAgIGlmICgkaXRlbVsndGFnJ10gPT0gJ006TEVWRUwnKXskd2FybmluZ2xpc3RbJGNvdW50XVsnTEVWRUwnXT0gJGl0ZW1bJ3ZhbHVlJ107fQ0KCQkJICAgaWYgKCRpdGVtWyd0YWcnXSA9PSAnTTpNRVNTQUdFJyl7JHdhcm5pbmdsaXN0WyRjb3VudF1bJ01FU1NBR0UnXT0gJGl0ZW1bJ3ZhbHVlJ107fQ0KCQkJfQ0KCQl9DQoJCSRWYWxBcnJheT1hcnJheSgkRVJST1JDT1VOVCwkZXJyb3JsaXN0LCRXQVJOSU5HQ09VTlQsJHdhcm5pbmdsaXN0KTsNCgkJcmV0dXJuICRWYWxBcnJheTsNCgl9DQoJcHVibGljIGZ1bmN0aW9uIFZhbENTU3dhcm5pbmdzKCRzSUQpew0KCQkvL2lmKCRfU0VSVkVSWyJTRVJWRVJfTkFNRSJdPT0nbG9jYWxob3N0J3x8JF9TRVJWRVJbIlNFUlZFUl9OQU1FIl09PScxMjcuMC4wLjEnKXJldHVybjsNCgkJDQoJCSRwcm9maWxlID0gU2NyaXB0RGVwbG95OjpHZXRQcmVmZXJlbmNlKCdDU1Nwcm9maWxlJywgImNzczIxIik7DQoJCSRsYW5nID0gU2NyaXB0RGVwbG95OjpHZXRQcmVmZXJlbmNlKCdWQUxMYW5nJywgImVuIik7CQkJCQkJCQkJCQkJCQkJCQkJCQ0KCQkkd2FybmluZyA9IFNjcmlwdERlcGxveTo6R2V0UHJlZmVyZW5jZSgndzNjQ1NTd2FybmluZycsICIyIik7CQkJCQkJCQkJCQkJCQkJCQkJCQ0KCQkkdXNlcm1lZGl1bSA9IFNjcmlwdERlcGxveTo6R2V0UHJlZmVyZW5jZSgndXNlcm1lZGl1bScsICJhbGwiKTsJCQkJCQkJCQkJCQkJCQkJCQkJDQoJCSRkaXNwbGF5PVNjcmlwdERlcGxveTo6R2V0UHJlZmVyZW5jZSgnU2hvd1ZhbCcsJzAnKTsNCgkJDQoJCSRWYWxBcnJheSA9IHNlbGY6OnJldHJpZXZlQ1NTVmFsKCRzSUQsJHByb2ZpbGUsJGxhbmcsJHdhcm5pbmcsJHVzZXJtZWRpdW0pOw0KCQlzbGVlcCgxKTsNCgkJJHZlcmRpY3Q9Jyc7DQoNCgkJaWYoJFZhbEFycmF5WzJdIT0wKQl7DQoJCQkkdmVyZGljdD0nPGJyLz4nLiRWYWxBcnJheVsyXS4nICcuU2NyaXB0RGVwbG95OjpMYW5nKCdXYXJuaW5ncycpLic8YnIvPic7DQoNCgkJCSRjb3VudD0wOw0KCQkJZm9yZWFjaCAoJFZhbEFycmF5WzNdIGFzICRpdGVtKSB7DQoJCQkJCSRjb3VudCs9MTsNCgkJCQkJJHZlcmRpY3QuPSI8aDM+V2FybmluZyAjJGNvdW50PC9oMz4iOwkNCgkJCQkJJHZlcmRpY3QuPSI8YSBocmVmPVwiI1wiIGNsYXNzPVwiZ29MaW5lXCI+PHN0cm9uZz4iLlNjcmlwdERlcGxveTo6TGFuZygnTElORScpLiIgOiB+IDwvc3Ryb25nPjxzcGFuIGNsYXNzPVwibGluZVwiPiIuJGl0ZW1bJ0xJTkUnXS4iPC9zcGFuPjwvYT48YnIvPiI7CQ0KCQkJCQkkdmVyZGljdC49IjxzdHJvbmc+Ii5TY3JpcHREZXBsb3k6OkxhbmcoJ0xFVkVMJykuIiA6IDwvc3Ryb25nPiIuJGl0ZW1bJ0xFVkVMJ10uIjxici8+IjsNCgkJCQkJJHZlcmRpY3QuPSI8c3Ryb25nPiIuU2NyaXB0RGVwbG95OjpMYW5nKCdNRVNTQUdFJykuIiA6IDwvc3Ryb25nPiIuJGl0ZW1bJ01FU1NBR0UnXS4iPGJyLz4iOw0KCQkJfQ0KCQl9DQoJCXJldHVybiAkdmVyZGljdDsNCgl9DQoJcHVibGljIGZ1bmN0aW9uIFZhbENTU2Vycm9ycygkc0lEKXsNCgkJLy9pZigkX1NFUlZFUlsiU0VSVkVSX05BTUUiXT09J2xvY2FsaG9zdCd8fCRfU0VSVkVSWyJTRVJWRVJfTkFNRSJdPT0nMTI3LjAuMC4xJylyZXR1cm47DQoJCQ0KCQkkcHJvZmlsZSA9IFNjcmlwdERlcGxveTo6R2V0UHJlZmVyZW5jZSgnQ1NTcHJvZmlsZScsICJjc3MyMSIpOw0KCQkkbGFuZyA9IFNjcmlwdERlcGxveTo6R2V0UHJlZmVyZW5jZSgnVkFMTGFuZycsICJlbiIpOwkJCQkJCQkJCQkJCQkJCQkJCQkNCgkJJHdhcm5pbmcgPSBTY3JpcHREZXBsb3k6OkdldFByZWZlcmVuY2UoJ3czY0NTU3dhcm5pbmcnLCAiMiIpOwkJCQkJCQkJCQkJCQkJCQkJCQkNCgkJJHVzZXJtZWRpdW0gPSBTY3JpcHREZXBsb3k6OkdldFByZWZlcmVuY2UoJ3VzZXJtZWRpdW0nLCAiYWxsIik7DQoJCSRkaXNwbGF5PVNjcmlwdERlcGxveTo6R2V0UHJlZmVyZW5jZSgnU2hvd1ZhbCcsJzAnKTsNCg0KCQkkdmVyZGljdD0nJzsNCgkJJGNvdW50PTA7DQoJCSRza2lwQ291bnQ9MDsNCgkJJHZlcmRpY3RNQVNTPScnOw0KCQkkVmFsQXJyYXkgPSBzZWxmOjpyZXRyaWV2ZUNTU1ZhbCgkc0lELCRwcm9maWxlLCRsYW5nLCR3YXJuaW5nLCR1c2VybWVkaXVtKTsNCgkJc2xlZXAoMSk7DQoNCg0KCQlpZigkVmFsQXJyYXlbMF0hPTApCXsNCgkJCWZvcmVhY2ggKCRWYWxBcnJheVsxXSBhcyAkaXRlbSkgew0KCQkJCSRza2lwPWZhbHNlOw0KCQkJCSRmaWx0ZXJQcm9wPVNjcmlwdERlcGxveTo6R2V0UHJlZmVyZW5jZSgiZmlsdGVyUHJvcCIsJycpOw0KCQkJCSRTS0lQUEVEU1RSSU5HPSRpdGVtWydTS0lQUEVEU1RSSU5HJ107DQoJCQkJJE1FU1NBR0U9JGl0ZW1bJ01FU1NBR0UnXTsNCgkJCQkJCS8vZWNobyAkU0tJUFBFRFNUUklORzsNCgkJCQkJCS8vZWNobyAkTUVTU0FHRTsNCgkJCQkNCgkJCQkkZmlsdGVyUHJvcEFycmF5PWV4cGxvZGUoJywnLCRmaWx0ZXJQcm9wKTsNCgkJCQlmb3JlYWNoKCRmaWx0ZXJQcm9wQXJyYXkgYXMgJFByb3Apew0KCQkJCQkkcG9zID0gQHN0cnBvcygkU0tJUFBFRFNUUklORywkUHJvcCk7DQoJCQkJCSRwb3MyID0gQHN0cnBvcygkTUVTU0FHRSwkUHJvcCk7DQoJCQkJCQ0KCQkJCQlpZihAc3RycG9zKCRTS0lQUEVEU1RSSU5HLCRQcm9wKSE9PSBmYWxzZSkgew0KCQkJCQkJLy9lY2hvICRTS0lQUEVEU1RSSU5HLictLScuJFByb3AuJ3RydWU8YnIvPic7DQoJCQkJCQkkc2tpcD10cnVlOw0KCQkJCQkJJHNraXBDb3VudCs9MTsNCgkJCQkJfQ0KCQkJCQlpZihAc3RycG9zKCRNRVNTQUdFLCRQcm9wKSE9PSBmYWxzZSkgew0KCQkJCQkJLy9lY2hvICRNRVNTQUdFLictLScuJFByb3AuJ3RydWU8YnIvPic7DQoJCQkJCQkkc2tpcD10cnVlOw0KCQkJCQkJJHNraXBDb3VudCs9MTsNCgkJCQkJfQ0KCQkJCX0NCgkJCQkNCgkJCQlpZigkc2tpcD09ZmFsc2Upew0KCQkJCQkkY291bnQrPTE7DQoJCQkJCSR2ZXJkaWN0TUFTUy49IjxoMz5FcnJvciAjJGNvdW50PC9oMz4iOwkNCgkJCQkJJHZlcmRpY3RNQVNTLj0iPGEgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiIGNsYXNzPVwiZ29MaW5lXCI+PHN0cm9uZz4iLlNjcmlwdERlcGxveTo6TGFuZygnTElORScpLiIgOiB+IDwvc3Ryb25nPjxzcGFuIGNsYXNzPVwibGluZVwiPiIuJGl0ZW1bJ0xJTkUnXS4iPC9zcGFuPjwvYT48YnIvPiI7CQ0KCQkJCQkkdmVyZGljdE1BU1MuPSI8c3Ryb25nPiIuU2NyaXB0RGVwbG95OjpMYW5nKCdUWVBFJykuIiA6IDwvc3Ryb25nPiIuJGl0ZW1bJ0VSUk9SVFlQRSddLiI8YnIvPiI7DQoJCQkJCSR2ZXJkaWN0TUFTUy49IjxzdHJvbmc+Ii5TY3JpcHREZXBsb3k6OkxhbmcoJ1NVQlRZUEUnKS4iIDogPC9zdHJvbmc+Ii4kaXRlbVsnRVJST1JTVUJUWVBFJ10uIjxici8+IjsNCgkJCQkJJHZlcmRpY3RNQVNTLj0iPHN0cm9uZz4iLlNjcmlwdERlcGxveTo6TGFuZygnU1RSSU5HJykuIiA6IDwvc3Ryb25nPiIuJGl0ZW1bJ1NLSVBQRURTVFJJTkcnXS4iPGJyLz4iOw0KCQkJCQkkdmVyZGljdE1BU1MuPSI8c3Ryb25nPiIuU2NyaXB0RGVwbG95OjpMYW5nKCdNRVNTQUdFJykuIiA6IDwvc3Ryb25nPiIuJGl0ZW1bJ01FU1NBR0UnXS4iPGJyLz4iOw0KCQkJCX0NCgkJCX0NCgkJCQ0KCQkJJHZlcmRpY3Q9JFZhbEFycmF5WzBdLicgJy5TY3JpcHREZXBsb3k6OkxhbmcoJ0Vycm9ycycpOw0KCQkJDQoJCQlpZigkc2tpcENvdW50IT0wKXsNCgkJCQkkdmVyZGljdC49JygnLiRza2lwQ291bnQuJyAnLlNjcmlwdERlcGxveTo6TGFuZygnaGlkZGVuJykuJylcclxuJzsNCgkJCX0NCgkJCSR2ZXJkaWN0Lj0kdmVyZGljdE1BU1M7DQoJCX0NCgkJaWYoJHNraXBDb3VudD09JFZhbEFycmF5WzBdKXsNCgkJCSR2ZXJkaWN0PScnOw0KCQl9DQoJCXJldHVybiAkdmVyZGljdDsNCgl9DQoJDQoJcHVibGljIGZ1bmN0aW9uIHZhbF9JdCgkZXh0LCRzSUQsJGFqYXg9ZmFsc2Upew0KCQlnbG9iYWwgJGdDbXM7DQoJCSRnQ21zLT5zbWFydHktPmFzc2lnbignV19pbnB1dCcsJycpOw0KCQkkZ0Ntcy0+c21hcnR5LT5hc3NpZ24oJ0VfaW5wdXQnLCcnKTsNCgkJJGdDbXMtPnNtYXJ0eS0+YXNzaWduKCdub3RlZCcsJycpOw0KCQkkZ0Ntcy0+c21hcnR5LT5hc3NpZ24oJ3JlcG9ydCcsJycpOw0KCQkkZ0Ntcy0+c21hcnR5LT5hc3NpZ24oJ21vZGUnLCAnZWRpdCcgKTsgDQoJCWlmKCRleHQ9PSdDU1MnKXsNCgkJCSR3YXJuaW5nID0gU2NyaXB0RGVwbG95OjpHZXRQcmVmZXJlbmNlKCd3M2NDU1N3YXJuaW5nJywgIjIiKTsJCQ0KCQkJaWYoJHdhcm5pbmchPSdubycpeyRXX2lucHV0PXNlbGY6OlZhbENTU3dhcm5pbmdzKCRzSUQpO31lbHNleyRXX2lucHV0PScnO30NCgkJCSRFX2lucHV0PXNlbGY6OlZhbENTU2Vycm9ycygkc0lEKTsNCgkJCWlmKCRXX2lucHV0IT0nJ3x8JEVfaW5wdXQhPScnKXsNCgkJCQkkZ0Ntcy0+c21hcnR5LT5hc3NpZ24oJ1dfaW5wdXQnLCRXX2lucHV0KTsNCgkJCQkkZ0Ntcy0+c21hcnR5LT5hc3NpZ24oJ0VfaW5wdXQnLCRFX2lucHV0KTsNCgkJCX1lbHNlaWYoJFdfaW5wdXQ9PScnJiYkRV9pbnB1dD09Jycpew0KCQkJCSRnQ21zLT5zbWFydHktPmFzc2lnbignVkFsZWQnLCc8aW1nIHN0eWxlPSJib3JkZXI6MDt3aWR0aDo4OHB4O2hlaWdodDozMXB4InNyYz0iaHR0cDovL2ppZ3Nhdy53My5vcmcvY3NzLXZhbGlkYXRvci9pbWFnZXMvdmNzcy1ibHVlImFsdD0iVmFsaWQgQ1NTISIgLz4nKTsNCgkJCQlpZihTY3JpcHREZXBsb3k6OkdldFByZWZlcmVuY2UoImZpbHRlclByb3AiLCcnKSE9Jycpew0KCQkJCQkkZ0Ntcy0+c21hcnR5LT5hc3NpZ24oJ25vdGVkJyxTY3JpcHREZXBsb3k6OkxhbmcoJ1llc1ZBbGFzdGVyJykpOwkNCgkJCQl9DQoJCQl9DQoJCX0NCg0KCQlpZigkYWpheD09dHJ1ZSl7DQoJCQlyZXR1cm4gU2NyaXB0RGVwbG95OjpQcm9jZXNzVGVtcGxhdGUoJ3ZhbF90ZW1wbGF0ZS50cGwnKTsNCgkJfQ0KCQkNCgl9DQoJDQoJDQoJDQoJDQoJLyoqDQoJKiBDaGVjayBmb3IgZXJyb3JzIGFuZCB3YXJuaW5ncyBmb3IgaHRtbCBhbmQgbGlrZS4NCgkqDQoJKg0KCSogQHRvZG8gUHVsbCBvdXQgdG8gYSB2YWxpZGF0aW9uIGNsYXNzDQoJKiBAcGFyYW0gaW50ZWdlciAkaWQgLg0KCSogQHBhcmFtIHN0cmluZyAkbGFuZyAuDQoJKiBAcGFyYW0gaW50ZWdlciAkd2FybmluZyAuDQoJKiBAcGFyYW0gc3RyaW5nICR1c2VybWVkaXVtIC4NCgkqIEByZXR1cm4gYXJyYXkgdGhpcyBpcyBhbiBhcnJheSBvZiB0aGUgZXJyb3JzIGFuZCB3YXJuaW5ncyBmb3IgY3NzDQoJKi8NCglwdWJsaWMgZnVuY3Rpb24gcmV0cmlldmVIVE1MVmFsKCAkaWQsICRsYW5nPSJlbiIsICRkb2N0eXBlPSJYSFRNTCAxLjAgVHJhbnNpdGlvbmFsIiwgJHZlcmJvc2U9MSkgew0KCQlnbG9iYWwgJGdDbXM7DQoJCS8vaWYoJF9TRVJWRVJbIlNFUlZFUl9OQU1FIl09PSdsb2NhbGhvc3QnfHwkX1NFUlZFUlsiU0VSVkVSX05BTUUiXT09JzEyNy4wLjAuMScpcmV0dXJuOw0KCQkkY29uZmlnID0mICRnQ21zLT5HZXRDb25maWcoKTsgDQoJCSRJRD0kaWQ7DQoJCSRTRHR5cGU9InNjcmlwdElEIjsNCg0KCQkkZmlsZWJhc2VuYW1lPSRJRDsNCgkNCgkJJFN0eXBlPSAnY3NzJzsNCgkJJGZpbGVuYW1lPSRjb25maWdbJ3VwbG9hZHNfcGF0aCddLiIvbGliL1NELXRlbXAvVkFMLyRTRHR5cGUvJElELmNzcyI7CQ0KCQlpZihmaWxlX2V4aXN0cygkZmlsZW5hbWUpKXsNCgkJCQkJdW5saW5rICgkZmlsZW5hbWUpOw0KCQl9DQoNCgkJJFNtYXJ0eU9uPSB0cnVlOw0KCQkkZGF0YT1zY3JpcHRQcm9jZXNzaW5nOjpQcm9jY2Vzc1NEKCRJRCwkU0R0eXBlLCRTbWFydHlPbixmYWxzZSwnQ1NTJyx0cnVlKTsNCgkJJGV2ZW50ID0gJGRhdGFbMF07DQoJDQoJCWlmKCFmaWxlX2V4aXN0cygkY29uZmlnWyd1cGxvYWRzX3BhdGgnXS4iL2xpYi9TRC10ZW1wL1ZBTC8iLiRTRHR5cGUpKXsNCgkJCW1rZGlyKCRjb25maWdbJ3VwbG9hZHNfcGF0aCddLiIvbGliL1NELXRlbXAvVkFMLyIuJFNEdHlwZSwgMDc3NywgdHJ1ZSk7DQoJCX0NCgkJJG91ckZpbGVOYW1lID0gJGZpbGVuYW1lOw0KCQkkb3VyRmlsZUhhbmRsZSA9IGZvcGVuKCRvdXJGaWxlTmFtZSwgJ3cnKSBvciBkaWUoImNhbid0IG9wZW4gZmlsZSIpOw0KCQlmY2xvc2UoJG91ckZpbGVIYW5kbGUpOw0KCQkvLyBHRVQgTEVOR1RILCBBTkQgU1RPUkUgREFUQSBUTyBPVVIgU0VSVkVSIChPUiBEQVRBIEJBU0UpDQoJCSRsZW4gPSBzdHJsZW4oJGV2ZW50KTsNCgkJJGNoayA9IGZpbGVfcHV0X2NvbnRlbnRzKCRmaWxlbmFtZSwgJGV2ZW50KTsNCgkJLy8gVEVTVCBGT1IgU1VDQ0VTU0ZVTCBTVE9SQUdFDQoJCWlmICgkbGVuIT0kY2hrKSBkaWUoIkxFTkdUSCBNSVNNQVRDSCIpOw0KCQkNCgkJJGZpbGVMSU5LPSRjb25maWdbJ3VwbG9hZHNfdXJsJ10uIi9saWIvU0QtdGVtcC9WQUwvJFNEdHlwZS8kSUQuY3NzIjsJDQoJCS8vJGppZ3Nhd1VybCA9ICJodHRwOi8vamlnc2F3LnczLm9yZy9jc3MtdmFsaWRhdG9yL3ZhbGlkYXRvcj9vdXRwdXQ9c29hcDEyJnByb2ZpbGU9JHByb2ZpbGUmbGFuZz0kbGFuZyZ3YXJuaW5nPSR3YXJuaW5nJnVzZXJtZWRpdW09JHVzZXJtZWRpdW0mdXJpPSRmaWxlTElOSyI7DQoJCQ0KCQkNCgkJJGV2ZW50PXVybGVuY29kZSh1dGY4X2VuY29kZSgkZXZlbnQpKTsNCgkJJGppZ3Nhd1VybCA9ICJodHRwOi8vamlnc2F3LnczLm9yZy9jc3MtdmFsaWRhdG9yL3ZhbGlkYXRvcj9vdXRwdXQ9c29hcDEyJnByb2ZpbGU9JHByb2ZpbGUmYW1wO2xhbmc9JGxhbmcmd2FybmluZz0kd2FybmluZyZ1c2VybWVkaXVtPSR1c2VybWVkaXVtJnRleHQ9JGV2ZW50IjsNCgkJLy8kamlnc2F3VXJsID0gImh0dHA6Ly9qaWdzYXcudzMub3JnL2Nzcy12YWxpZGF0b3IvdmFsaWRhdG9yIjsNCgkJLy8kb2JqID0gZmlsZV9nZXRfY29udGVudHMoJGppZ3Nhd1VybCk7DQoJCQ0KCQkkaGVhZGVycyA9IGFycmF5KCk7DQoJCSRtZXRob2QgPSAnR0VUJzsNCgkJJHJldHJ5ID0gMzsNCgkJJGRhdGE9Jyc7DQoJCSRvYmogPSBjbXNtc19odHRwOjpjbXNtc19odHRwX3JlcXVlc3QoJGppZ3Nhd1VybCwgJGhlYWRlcnMsICRtZXRob2QsICRkYXRhLCAkcmV0cnkpOw0KCQkvL3ByaW50X3IoJzxwcmU+Jyk7DQoJCS8vcHJpbnRfcigkb2JqKTsNCgkJLy9wcmludF9yKCc8L3ByZT4nKTsNCgkJaWYoU2NyaXB0RGVwbG95OjpHZXRQcmVmZXJlbmNlKCdkZWJ1Z0lUJyk9PXRydWUpcHJpbnQoIlZhbGlkYXRpb24gU3RhdHVzIENvZGUiLiRvYmotPmNvZGUuIjxici8+Iik7DQoJCWlmKCRvYmotPmNvZGUhPTIwMClyZXR1cm47DQoJCSRDU1N2YWxYbWxPYmplY3QgPSBuZXcgU2ltcGxlWE1MRWxlbWVudCgkb2JqLT5kYXRhKTsNCgkJDQoJCSRwID0geG1sX3BhcnNlcl9jcmVhdGUoKTsNCgkJeG1sX3BhcnNlX2ludG9fc3RydWN0KCRwLCAkb2JqLT5kYXRhLCAkdmFscywgJGluZGV4KTsNCgkJeG1sX3BhcnNlcl9mcmVlKCRwKTsNCg0KCQkkZXJyb3JsaXN0PWFycmF5KCk7DQoNCgkJJHdhcm5pbmdsaXN0PWFycmF5KCk7DQoJCWZvcmVhY2ggKCR2YWxzIGFzICRpdGVtKSB7DQoJCS8vCWVjaG8gIjxwcmU+IjsNCgkJLy8gICBwcmludF9yKCRpdGVtKTsgDQoJCS8vICAgZWNobyAiXG5cbiI7DQoJCS8vICAgZWNobyAiPC9wcmU+IjsNCgkJICAgaWYgKCRpdGVtWyd0YWcnXSA9PSAnTTpFUlJPUkNPVU5UJyl7JEVSUk9SQ09VTlQ9ICRpdGVtWyd2YWx1ZSddOyRjb3VudD0wO30NCgkJICAgaWYgKCRpdGVtWyd0YWcnXSA9PSAnTTpXQVJOSU5HQ09VTlQnKXskV0FSTklOR0NPVU5UPSAkaXRlbVsndmFsdWUnXTskY291bnQ9MDt9DQoJCQlpZighaXNzZXQoJFdBUk5JTkdDT1VOVCkpew0KCQkJICAgaWYgKCRpdGVtWyd0YWcnXSA9PSAnTTpMSU5FJyl7JGNvdW50PSRjb3VudCsxOyRlcnJvcmxpc3RbJGNvdW50XVsnTElORSddPSAkaXRlbVsndmFsdWUnXTt9DQoJCQkgICBpZiAoJGl0ZW1bJ3RhZyddID09ICdNOkVSUk9SVFlQRScpeyRlcnJvcmxpc3RbJGNvdW50XVsnRVJST1JUWVBFJ109ICRpdGVtWyd2YWx1ZSddO30NCgkJCSAgIGlmICgkaXRlbVsndGFnJ10gPT0gJ006RVJST1JTVUJUWVBFJyl7JGVycm9ybGlzdFskY291bnRdWydFUlJPUlNVQlRZUEUnXT0gJGl0ZW1bJ3ZhbHVlJ107fQ0KCQkJICAgaWYgKCRpdGVtWyd0YWcnXSA9PSAnTTpTS0lQUEVEU1RSSU5HJyl7JGVycm9ybGlzdFskY291bnRdWydTS0lQUEVEU1RSSU5HJ109ICRpdGVtWyd2YWx1ZSddO30NCgkJCSAgIGlmICgkaXRlbVsndGFnJ10gPT0gJ006TUVTU0FHRScpeyRlcnJvcmxpc3RbJGNvdW50XVsnTUVTU0FHRSddPSAkaXRlbVsndmFsdWUnXTt9DQoJCQl9ZWxzZWlmKGlzc2V0KCRXQVJOSU5HQ09VTlQpKXsNCgkJCSAgIGlmICgkaXRlbVsndGFnJ10gPT0gJ006TElORScpeyAkY291bnQ9JGNvdW50KzE7JHdhcm5pbmdsaXN0WyRjb3VudF1bJ0xJTkUnXT0gJGl0ZW1bJ3ZhbHVlJ107fQ0KCQkJICAgaWYgKCRpdGVtWyd0YWcnXSA9PSAnTTpMRVZFTCcpeyR3YXJuaW5nbGlzdFskY291bnRdWydMRVZFTCddPSAkaXRlbVsndmFsdWUnXTt9DQoJCQkgICBpZiAoJGl0ZW1bJ3RhZyddID09ICdNOk1FU1NBR0UnKXskd2FybmluZ2xpc3RbJGNvdW50XVsnTUVTU0FHRSddPSAkaXRlbVsndmFsdWUnXTt9DQoJCQl9DQoJCX0NCgkJJFZhbEFycmF5PWFycmF5KCRFUlJPUkNPVU5ULCRlcnJvcmxpc3QsJFdBUk5JTkdDT1VOVCwkd2FybmluZ2xpc3QpOw0KCQlyZXR1cm4gJFZhbEFycmF5Ow0KCX0NCgkNCgkNCgkNCgkNCn0=]]></data>
	</file>
	<file>
	  <filename>/lib/class.sd_filehandling.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCi8qKg0KICogTW9kdWxlOiBTY3JpcHREZXBsb3kgLSBNaW5pZnkgYW5kIGRlcGxveW1lbnQgb2YgSlMgQ1NTIGFuZCBIVE1MDQogKiANCiAqIA0KICogQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykNCiAqIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnDQogKiBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvc2NyaXB0ZGVwbG95Lw0KICogDQogKiBAcGFja2FnZSBTY3JpcHREZXBsb3kNCiAqIEBhdXRob3IgamVyZW15QmFzcyA8amVyZW15QmFzc0BjYWJsZW9uZS5uZXQ+DQogKiBAY29weXJpZ2h0IEplcmVteSBCYXNzDQogKiBAbGljZW5zZSBodHRwOi8vd3d3LmdudS5vcmcvY29weWxlZnQvZ3BsLmh0bWwgRnJlZWx5IGF2YWlsYWJsZSB1bmRlciBHUEwNCiAqLyANCg0KaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7DQpjbGFzcyBzZF9maWxlaGFuZGxpbmcgZXh0ZW5kcyBTY3JpcHREZXBsb3l7DQoNCg0KCSAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCl7DQoJCXBhcmVudDo6X19jb25zdHJ1Y3QoKTsNCgkJJHRoaXMtPl9kYXRhID0gYXJyYXkoKTsNCgkgIH0NCg0KCS8qKg0KCSogUmVjdXJzaXZlbHkgZGVsZXRlIGZpbGVzIGFuZCBmb2xkZXJzLg0KCSoNCgkqIEB0b2RvIFB1bGwgb3V0IHRvIGEgZmlsZV9tIGNsYXNzDQoJKiBAcGFyYW0gc3RyaW5nICRkaXIgd2hpY2ggZGlyZWN0b3J5IHRvIHN0YXJ0IHJlY3Vyc2l2ZWx5IGRlbGV0aW5nIHRoZSBmaWxlcyBhbmQgZm9sZGVycy4NCgkqDQoJKiBAcmV0dXJuIGJvb2xlYW4NCgkqLw0KCXByb3RlY3RlZCBmdW5jdGlvbiByZWN1cnNpdmVfcm1kaXIoJGRpcil7DQoJCS8vIGFsbCBzdWJkaXJlY3RvcmllcyBhbmQgY29udGVudHM6DQoJCWlmKGlzX2RpcigkZGlyKSl7DQoJCQkkZGlyX2hhbmRsZT1vcGVuZGlyKCRkaXIpOw0KCQl9ZWxzZXsgDQoJCQlzZF9sb2dnaW46Ol9kb0FEVUlUKCAnZGVzdHJveScgLCAnZXJyb3InLCAkdGhpcy0+TGFuZygnZW1wdHljYWNoZUVycm9yX2RvQURVSVQnKS4iICRkaXIiKTsNCgkJCXJldHVybiBmYWxzZTsNCgkJfQ0KCQl3aGlsZSgkZmlsZT1yZWFkZGlyKCRkaXJfaGFuZGxlKSkNCgkJew0KCQlpZigkZmlsZSE9Ii4iICYmICRmaWxlIT0iLi4iKQ0KCQl7DQoJCWlmKCFpc19kaXIoJGRpci4iLyIuJGZpbGUpKXVubGluayAoJGRpci4iLyIuJGZpbGUpOw0KCQllbHNlIHNlbGY6OnJlY3Vyc2l2ZV9ybWRpcigkZGlyLiIvIi4kZmlsZSk7DQoJCX0NCgkJfQ0KCQljbG9zZWRpcigkZGlyX2hhbmRsZSk7DQoJCXJtZGlyKCRkaXIpOw0KCQkNCgkJcmV0dXJuIHRydWU7DQoJfQ0KCQ0KCS8qKg0KCSogR2V0IGluZm9tYXRpb24gb24gdGhlIGZvbGRlciBhbmQgaXQncyBmaWxlcy4NCgkqDQoJKiBAdG9kbyBQdWxsIG91dCB0byBhIGZpbGVfbSBjbGFzcw0KCSogQHBhcmFtIHN0cmluZyAkZGlyIHdoaWNoIGRpcmVjdG9yeSB0byBzdGFydCByZXR1cm5pbmcgaW5mbyBvbiB0aGUgZmlsZXMgYW5kIGZvbGRlcnMuDQoJKiBAcGFyYW0gYm9vbGVhbiAkcmVjdXJzZSBzaG91bGQgd2UgYmUgcmVjdXJzaXZlbHkgZ2V0dGluZyB0aGUgaW5mb3JtYXRpb24uDQoJKiBAcmV0dXJuIGJvb2xlYW4NCgkqLw0KCXB1YmxpYyBmdW5jdGlvbiBwcm9jZXNzX2RpcigkZGlyLCAkcmVjdXJzZT1mYWxzZSl7DQoJCWdsb2JhbCAkZ0NtczsNCgkJJGNvbmZpZyA9JiAkZ0Ntcy0+R2V0Q29uZmlnKCk7IA0KCQkNCgkJIyBhcnJheSB0byBob2xkIHJldHVybiB2YWx1ZQ0KCQkkcmV0dmFsID0gYXJyYXkoKTsNCgkJIyBhZGQgdHJhaWxpbmcgc2xhc2ggaWYgbWlzc2luZw0KCQlpZihzdWJzdHIoJGRpciwgLTEpICE9ICIvIikgJGRpciAuPSAiLyI7DQoJDQoJCSMgb3BlbiBwb2ludGVyIHRvIGRpcmVjdG9yeSBhbmQgcmVhZCBsaXN0IG9mIGZpbGVzDQoJCSRkID0gQGRpcigkZGlyKTsNCgkJaWYoICRkPT1mYWxzZSl7cmV0dXJuIGZhbHNlO30NCgkJd2hpbGUoZmFsc2UgIT09ICgkZW50cnkgPSAkZC0+cmVhZCgpKSkgew0KCQkgICMgc2tpcCBoaWRkZW4gZmlsZXMNCgkJICBpZigkZW50cnlbMF0gPT0gIi4iKSBjb250aW51ZTsNCgkJICBpZihpc19kaXIoIiRkaXIkZW50cnkiKSkgew0KCQkJICAgJGRpcklzID0gc3RyX3JlcGxhY2UoJGNvbmZpZ1sncm9vdF9wYXRoJ10sICIiLCAkZGlyKTsNCgkJCSRyZXR2YWxbXSA9IGFycmF5KA0KCQkJICAibmFtZSIgPT4gIi4uLiRkaXJJcyRlbnRyeS8iLA0KCQkJICAidHlwZSIgPT4gZmlsZXR5cGUoIiRkaXIkZW50cnkiKSwNCgkJCSAgInNpemUiID0+ICctLScsDQoJCQkgICJsYXN0bW9kIiA9PiBmaWxlbXRpbWUoIiRkaXIkZW50cnkiKQ0KCQkJKTsNCgkJCWlmKCRyZWN1cnNlICYmIGlzX3JlYWRhYmxlKCIkZGlyJGVudHJ5LyIpKSB7DQoJCQkgICRyZXR2YWwgPSBhcnJheV9tZXJnZSgkcmV0dmFsLCBzZWxmOjpwcm9jZXNzX2RpcigiJGRpciRlbnRyeS8iLCB0cnVlKSk7DQoJCQl9DQoJCSAgfSBlbHNlaWYoaXNfcmVhZGFibGUoIiRkaXIkZW50cnkiKSkgew0KCQkJICAkZGlySXMgPSBzdHJfcmVwbGFjZSgkY29uZmlnWydyb290X3BhdGgnXSwgIiIsICRkaXIpOw0KCQkJJHJldHZhbFtdID0gYXJyYXkoDQoJCQkgICJuYW1lIiA9PiAiLi4uJGRpcklzJGVudHJ5IiwNCgkJCSAvLyAidHlwZSIgPT4gbWltZV9jb250ZW50X3R5cGUoIiRkaXIkZW50cnkiKSwNCgkJCSAic2l6ZSIgPT4gJHRoaXMtPlNpemVJdFVwKHN0cmxlbih1dGY4X2RlY29kZShmaWxlX2dldF9jb250ZW50cygiJGRpciRlbnRyeSIpKSkpLA0KCQkJICAvLyJzaXplIiA9PiAkdGhpcy0+U2l6ZUl0VXAoZmlsZXNpemUoIiRkaXIkZW50cnkiKSksDQoJCQkgICJsYXN0bW9kIiA9PiBmaWxlbXRpbWUoIiRkaXIkZW50cnkiKQ0KCQkJKTsNCgkJICB9DQoJCX0NCgkJJGQtPmNsb3NlKCk7DQoJCXJldHVybiAkcmV0dmFsOw0KICB9DQoJDQp9]]></data>
	</file>
	<file>
	  <filename>/lib/class.sd_loggin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCi8qKg0KICogTW9kdWxlOiBTY3JpcHREZXBsb3kgLSBNaW5pZnkgYW5kIGRlcGxveW1lbnQgb2YgSlMgQ1NTIGFuZCBIVE1MDQogKiANCiAqIA0KICogQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykNCiAqIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnDQogKiBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvc2NyaXB0ZGVwbG95Lw0KICogDQogKiBAcGFja2FnZSBTY3JpcHREZXBsb3kNCiAqIEBhdXRob3IgamVyZW15QmFzcyA8amVyZW15QmFzc0BjYWJsZW9uZS5uZXQ+DQogKiBAY29weXJpZ2h0IEplcmVteSBCYXNzDQogKiBAbGljZW5zZSBodHRwOi8vd3d3LmdudS5vcmcvY29weWxlZnQvZ3BsLmh0bWwgRnJlZWx5IGF2YWlsYWJsZSB1bmRlciBHUEwNCiAqLyANCg0KaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7DQpjbGFzcyBzZF9sb2dnaW4gZXh0ZW5kcyBTY3JpcHREZXBsb3l7DQoNCg0KCSAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCl7DQoJCXBhcmVudDo6X19jb25zdHJ1Y3QoKTsNCgkJJHRoaXMtPl9kYXRhID0gYXJyYXkoKTsNCgkgIH0NCg0KCS8qX19fX19fX19fX19fX19fX19fX19fKi8NCgkvKl9fX19fX19fX19fX19fX1sgIExPR0dJTkcgQU5EIE1BU1NBR0lORyBdX19fX19fX19fX19fX18qLw0KCS8qX19fX19fX19fX19fX19fX19fX19fKi8NCg0KCS8qKg0KCSogTWFrZSB0aGUgbW9kdWxlIGxvZ3MuDQoJKg0KCSogQHRvZG8gQWRkIG1vcmUgdG8gX2RvQURVSVQNCgkqIA0KCSogQHBhcmFtIHN0cmluZyAkYWN0aW9uIHdoaWNoIGFjdGlvbiB3YXMgdGFrZW4uDQoJKiBAcGFyYW0gc3RyaW5nICRsZXZlbCB3aGljaCBsZXZlbCB3YXMgdGFrZW4uDQoJKiBAcGFyYW0gc3RyaW5nICRtZXNzIHRoZSBtZXNzYWdlIHRvIGJlIHNlbnQgdG8gdGhlIGxvZy4NCgkqIEBwYXJhbSBhcnJheSAkcGFyYW1zIGFuIGFycmF5IG9mIHBhcmFtcyB0byBwYXNzIHRvIHRoZSBsb2cuDQoJKiANCgkqIEByZXR1cm4gc3RyaW5nIGNvbnRhaW5pbmcgdGhlIG5vdGVzIGZvciB0aGUgc2NyaXB0DQoJKi8NCglwdWJsaWMgZnVuY3Rpb24gX2RvQURVSVQoICRhY3Rpb24gLCAkbGV2ZWwsICRtZXNzPScnICwgJHBhcmFtcz0nJyApew0KCQlzd2l0Y2goICRhY3Rpb24gKXsNCgkJCWNhc2UgJ2FkZCc6DQoJCQkJJEEgPSAxOw0KCQkJCWJyZWFrOw0KCQkJDQoJCQljYXNlICdlZGl0JzogDQoJCQkJJEEgPSAyOw0KCQkJCWJyZWFrOw0KCQkJDQoJCQljYXNlICdkZXN0cm95JzoNCgkJCQkkQSA9IDM7DQoJCQkJYnJlYWs7DQoJCQkNCgkJCWRlZmF1bHQ6DQoJCQkJJEEgPSAwOw0KCQkJCWJyZWFrOw0KCQl9DQoJCXN3aXRjaCggJGxldmVsICl7DQoJCQljYXNlICdlcnJvcic6IA0KCQkJCSRMID0gMTsNCgkJCQlicmVhazsNCgkJCQ0KCQkJY2FzZSAnb2snOg0KCQkJCSRMID0gMDsNCgkJCQlicmVhazsNCgkJCQ0KCQkJZGVmYXVsdDoNCgkJCQkkTCA9IDA7DQoJCQkJYnJlYWs7DQoJCX0JIA0KCQkkaXRlbUlEPSRBLicwJy4kTDsNCgkJaWYgKCRwYXJhbXMhPScnKXskcGFyYW1zPSAkcGFyYW1zLid8fCc7fQ0KCQkkdGhpcy0+QXVkaXQoICRpdGVtSUQsICdTY3JpcHREZXBsb3knLCAkcGFyYW1zLiRtZXNzKTsNCgl9CQ0KCQ0KCS8qKg0KCSogRGlzcGxheSBhIHNpbXBsZSBtZXNzYWdlDQoJKi8NCglwdWJsaWMgZnVuY3Rpb24gRGlzcGxheU1lc3NhZ2UoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkLCAkdGl0bGUsICRtZXNzYWdlKXsNCgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZScsICR0aXRsZSk7DQoJCSR0aGlzLT5zbWFydHktPmFzc2lnbignbWVzc2FnZScsICRtZXNzYWdlKTsNCgkJZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdtZXNzYWdlLnRwbCcpOw0KCX0NCiAgDQoJLypfX19fX19fX19fX19fX19fX19fX18qLw0KCS8qX19fX19fX19fX19fX19fWyAgcmVwb3J0aW5nICBdX19fX19fX19fX19fX18qLw0KCS8qX19fX19fX19fX19fX19fX19fX19fKi8NCg0KCS8qKg0KCSogR2V0IHRoZSBtb2R1bGUgbG9ncy4NCgkqDQoJKiBAdG9kbyBQdWxsIG91dCB0aGUgaGFyZCBjb2RlZCBzdHJ1Y3R1cmUNCgkqIEBwYXJhbSBpbnRlZ2VyICRwYWdlIHdoaWNoIHBhZ2UgdG8gc3RhcnQgb24uDQoJKiBAcGFyYW0gaW50ZWdlciAkbGltaXQgdGhlIGxpbWl0IGZvciB0aGUgZGF0YWJhc2UgcXVlcnkuDQoJKiBAcGFyYW0gc3RyaW5nICR3aGVyZUFSRyBmb3IgdGhlIC4NCgkqDQoJKiBAcmV0dXJuIHN0cmluZyBjb250YWluaW5nIHRoZSBub3RlcyBmb3IgdGhlIHNjcmlwdA0KCSovDQoJcHVibGljIGZ1bmN0aW9uIHB1bGxMb2coJHBhZ2UgPSAxICwgJGxpbWl0ID0gOTk5OTkgLCAkd2hlcmVBUkcgPSAnJyl7DQoJCQkvL2dsb2JhbCAkZ0NtczsNCgkJCSRkYiA9JiAkdGhpcy0+R2V0RGIoKTsNCgkJCSRkYXRlZm9ybWF0ID0gdHJpbShnZXRfcHJlZmVyZW5jZShnZXRfdXNlcmlkKCksJ2RhdGVfZm9ybWF0X3N0cmluZycsJyV4ICVYJykpOyANCgkJCSAgaWYoIGVtcHR5KCRkYXRlZm9ybWF0KSApDQoJCQkgICB7DQoJCQkJICRkYXRlZm9ybWF0ID0gJyV4ICVYJzsNCgkJCSAgIH0JDQoJDQoJCSR0cnM9Jyc7DQoJCSRwYWdlX3N0cmluZyA9ICIiOw0KCQkkZnJvbSA9ICgkcGFnZSAqICRsaW1pdCkgLSAkbGltaXQ7DQoJCSR3aGVyZSA9ICcnOw0KCQlpZiAoJHdoZXJlQVJHIT0nJykgJHdoZXJlID0gJ1doZXJlICcuJHdoZXJlQVJHOw0KCQkkcmVzdWx0ID0gJGRiLT5TZWxlY3RMaW1pdCgnU0VMRUNUICogZnJvbSAnLmNtc19kYl9wcmVmaXgoKS4nYWRtaW5sb2cgJy4kd2hlcmUuJyBPUkRFUiBCWSB0aW1lc3RhbXAgREVTQycsICRsaW1pdCwgJGZyb20pOw0KCQ0KCQlpZiAoJHJlc3VsdCAmJiAkcmVzdWx0LT5SZWNvcmRDb3VudCgpID4gMCl7DQoJDQoJCQkgICAvLyRjdXJyb3cgPSAicm93MSI7DQoJCQkgICB3aGlsZSAoJHJvdyA9ICRyZXN1bHQtPkZldGNoUm93KCkpIHsgDQoJCSRjb2RlPSRyb3dbIml0ZW1faWQiXSE9LTE/JHJvd1siaXRlbV9pZCJdOiIiOw0KCQkkY29kZUlzID0nPHRkIGNsYXNzPSInLiAoICgkY29kZSAlIDIpID8gJ2Vycm9yJyA6ICdvaycgKS4nIj4nLiRjb2RlLicmbmJzcDs8L3RkPic7CSAgIA0KCQkkdHJzLj0nPHRyPjx0ZD4nDQoJCS4kcm93Wyd1c2VybmFtZSddLic8L3RkPjx0ZD4nDQoJCS4kcm93Wyd1c2VyX2lkJ10uJzwvdGQ+Jw0KCQkuJGNvZGVJcy4nPCEtLTx0ZD4nDQoJCS4kcm93WydpdGVtX25hbWUnXS4nPC90ZD4tLT48dGQ+Jw0KCQkuJHJvd1snYWN0aW9uJ10uJzwvdGQ+PHRkPicNCgkJLnN0cmZ0aW1lKCRkYXRlZm9ybWF0LCRyb3dbJ3RpbWVzdGFtcCddKS4nPC90ZD48L3RyPic7DQoJCQkgICB9DQoJCQl9ZWxzZXsNCgkJCQkkdHJzLj0nPHRyPjx0ZD5FbXB0eTwvdGQ+PHRkPi0tPC90ZD48dGQ+LS08L3RkPjx0ZD4tLTwvdGQ+PHRkPi0tPC90ZD48dGQ+LS08L3RkPjwvdHI+JzsNCgkJCX0NCgkNCgkJDQoJCXJldHVybiAkdHJzOw0KCX0NCgkNCgkNCgkNCgkNCgkvKioNCgkqIEdldCB0aGUgbm90ZXMgZm9yIGEgc2NyaXB0Lg0KCSoNCgkqIEBwYXJhbSBzdHJpbmcgJHNpZCBjb250YWluaW5nIHRoZSBzY3JpcHQgaWQuDQoJKiBAcmV0dXJuIHN0cmluZyBjb250YWluaW5nIHRoZSBub3RlcyBmb3IgdGhlIHNjcmlwdA0KCSovDQoJcHVibGljIGZ1bmN0aW9uIEdldF9Ob3Rlcygkc2lkKXsNCgkJJG5vdGU9Jyc7DQoJCSRkYiA9JiAkdGhpcy0+R2V0RGIoKTsNCgkJJHF1ZXJ5ID0gIlNFTEVDVCBub3RlcyBGUk9NICIuU0RfU0NSSVBUT1BUSU9OUy4iIFdIRVJFIElEPT8gTElNSVQgMSI7DQoJCSRub3RlID0gJiRkYi0+R2V0T25lKCRxdWVyeSxhcnJheSgkc2lkKSk7DQoJCXJldHVybiAkbm90ZTsNCgl9DQoNCg0KDQovLy90byByZW1vdmUNCglwdWJsaWMgZnVuY3Rpb24gTm90ZXMoJGlkLCRub3Rlcyl7DQoJCSRkaXNwbGF5PSR0aGlzLT5HZXRQcmVmZXJlbmNlKCdTaG93VmFsJywnMCcpOw0KCQkkU2hvdz0nJzsNCgkJJE5vU2hvdz0nJzsNCgkJJFNob3dCTE9DSz0nc3R5bGU9ImRpc3BsYXk6IG5vbmU7Iic7DQoJCSROb1Nob3dCTE9DSz0nc3R5bGU9ImRpc3BsYXk6IG5vbmU7Iic7DQoJCWlmKCAkZGlzcGxheT09MSl7DQoJCQkkU2hvdz0nY3VycmVudCc7DQoJCQkkU2hvd0JMT0NLPSdzdHlsZT0iZGlzcGxheTogYmxvY2s7Iic7DQoJCX1lbHNlew0KCQkJJE5vU2hvdz0nY3VycmVudCc7DQoJCQkkTm9TaG93QkxPQ0s9J3N0eWxlPSJkaXNwbGF5OiBibG9jazsiJzsNCgkJfQ0KCQkJJHZlcmRpY3Q9JzxkaXYgaWQ9Ik5PVEVhY2NvcmRpb24iPjxoMSBjbGFzcz0idG9nYWwgJy4kTm9TaG93LiciPjxzcGFuIGNsYXNzPSJDbG9zZSI+Jy4kdGhpcy0+TGFuZygnQ2xvc2UnKS4nJm5ic3A7Jm5ic3A7PC9zcGFuPjxzcGFuIGNsYXNzPSJPcGVuIj4nLiR0aGlzLT5MYW5nKCdPcGVuJykuJyZuYnNwOyZuYnNwOzwvc3Bhbj48L2gxPjxkaXYgY2xhc3M9Ik5PVEUgY2xvc2VyIiAnLiROb1Nob3dCTE9DSy4nPjwvZGl2PjxoMSBjbGFzcz0iJy4kU2hvdy4nIj4mbmJzcDsmbmJzcDsgJy4kdGhpcy0+TGFuZygnTm90ZXMnKS4nPC9oMT4nOw0KCQkJJHZlcmRpY3QuPSI8ZGl2IGNsYXNzPVwiTk9URVwiICRTaG93QkxPQ0s+IjsNCgkJCSR2ZXJkaWN0Lj0kdGhpcy0+Q3JlYXRlVGV4dEFyZWEoMCwkaWQsICRub3RlcywgJ25vdGVzX2lucHV0JywnJywnTk9URVMnLCcnLCcnLCcnLDEwKTsNCgkJCSR2ZXJkaWN0Lj0iPC9kaXY+PC9kaXY+IjsNCgkJcmV0dXJuICR2ZXJkaWN0Ow0KCX0JCQ0KfQ==]]></data>
	</file>
	<file>
	  <filename>/lib/class.Stylesheet_Record.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCi8qKg0KICogTW9kdWxlOiBTY3JpcHREZXBsb3kgLSBNaW5pZnkgYW5kIGRlcGxveW1lbnQgb2YgSlMgQ1NTIGFuZCBIVE1MDQogKiANCiAqIA0KICogQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykNCiAqIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnDQogKiBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvc2NyaXB0ZGVwbG95Lw0KICogDQogKiBAcGFja2FnZSBTY3JpcHREZXBsb3kNCiAqIEBhdXRob3IgamVyZW15QmFzcyA8amVyZW15QmFzc0BjYWJsZW9uZS5uZXQ+DQogKiBAY29weXJpZ2h0IEplcmVteSBCYXNzDQogKiBAbGljZW5zZSBodHRwOi8vd3d3LmdudS5vcmcvY29weWxlZnQvZ3BsLmh0bWwgRnJlZWx5IGF2YWlsYWJsZSB1bmRlciBHUEwNCiAqLyANCg0KaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7DQpjbGFzcyBTdHlsZXNoZWV0X1JlY29yZCBleHRlbmRzIFNjcmlwdERlcGxveXsNCiANCiAgdmFyICRncm91cGlkOw0KICB2YXIgJHRlbXBsYXRlX2lkOw0KICB2YXIgJHByZWZlcnJlZF9zczsNCiAgdmFyICRwZXJzaXN0ZW50Ow0KICB2YXIgJGFsdGVybmF0ZTsNCiAgDQoJICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoKXsNCgkJcGFyZW50OjpfX2NvbnN0cnVjdCgpOw0KCQkkdGhpcy0+X2RhdGEgPSBhcnJheSgpOw0KCSAgfQ0KCSAgDQogIGZ1bmN0aW9uIFN0eWxlc2hlZXRfUmVjb3JkKCR0ZW1wbGF0ZWlkID0gLTEpew0KICAgICR0aGlzLT50ZW1wbGF0ZV9pZCA9ICR0ZW1wbGF0ZWlkOw0KICAgICR0aGlzLT5wZXJzaXN0ZW50ID0gYXJyYXkoKTsNCiAgICAkdGhpcy0+YWx0ZXJuYXRlID0gYXJyYXkoKTsNCiAgfQ0KDQogIGZ1bmN0aW9uIFJldHJpZXZlKCRzdHIpew0KICAgICRvYmogPSB1bnNlcmlhbGl6ZSgkc3RyKTsNCiAgICByZXR1cm4gJG9iajsNCiAgfQ0KDQogIGZ1bmN0aW9uIFN0b3JlKCl7DQogICAgcmV0dXJuIHNlcmlhbGl6ZSgkdGhpcyk7DQogIH0NCg0KICBmdW5jdGlvbiBMb2FkKCR0ZW1wbGF0ZWlkKXsNCiAgICBnbG9iYWwgJGdDbXM7DQogICAgJGRiID0mICRnQ21zLT5HZXREYigpOw0KDQogICAgJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5TRF9UQUJMRS4nDQogICAgICAgICAgICAgICAgV0hFUkUgdGVtcGxhdGVfaWQgPSA/JzsNCiAgICAkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoICRxdWVyeSwgYXJyYXkoICR0ZW1wbGF0ZWlkICkgKTsNCiAgICBpZiggISRkYnJlc3VsdCApIHJldHVybjsNCiAgICAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpOw0KICAgIGlmKCAhJHJvdyApIHJldHVybjsNCg0KICAgICR0aGlzLT5ncm91cGlkID0gJHJvd1snZ3JvdXBpZCddOw0KICAgICR0aGlzLT50ZW1wbGF0ZV9pZCA9ICRyb3dbJ3RlbXBsYXRlX2lkJ107DQogICAgJHRoaXMtPnByZWZlcnJlZF9zcyA9ICRyb3dbJ3ByZWZlcnJlZF9zcyddOw0KDQogICAgJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5TRF9QRVJTSVNURU5ULicNCiAgICAgICAgICAgICAgICAgV0hFUkUgZ3JvdXBpZCA9ID8nOw0KICAgICRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSggJHF1ZXJ5LCBhcnJheSggJHRoaXMtPmdyb3VwaWQgKSApOw0KICAgICR0aGlzLT5wZXJzaXN0ZW50ID0gYXJyYXkoKTsNCiAgICB3aGlsZSggJGRicmVzdWx0ICYmICgkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKSApew0KCQkkdGhpcy0+cGVyc2lzdGVudFtdID0gJHJvd1snc3R5bGVzaGVldF9pZCddOw0KICAgIH0NCiAgICAgIA0KICAgICRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuU0RfQUxURVJOQVRFLicNCiAgICAgICAgICAgICAgICAgV0hFUkUgZ3JvdXBpZCA9ID8nOw0KICAgICRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSggJHF1ZXJ5LCBhcnJheSggJHRoaXMtPmdyb3VwaWQgKSApOw0KICAgICR0aGlzLT5hbHRlcm5hdGUgPSBhcnJheSgpOw0KICAgIHdoaWxlKCAkZGJyZXN1bHQgJiYgKCRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpICl7DQoJCSR0aGlzLT5hbHRlcm5hdGVbXSA9ICRyb3dbJ3N0eWxlc2hlZXRfaWQnXTsNCiAgICB9DQogIH0NCg0KICBmdW5jdGlvbiBTYXZlKCl7DQogICAgaWYoICR0aGlzLT50ZW1wbGF0ZV9pZCA8PSAwICkgcmV0dXJuOw0KICAgIA0KICAgIGdsb2JhbCAkZ0NtczsNCiAgICAkZGIgPSYgJGdDbXMtPkdldERiKCk7DQogICAgDQogICAgaWYoICR0aGlzLT5ncm91cGlkID4gMCApew0KCQkvLyBXZSBkZWxldGUgZXZlcnl0aGluZyBmaXJzdCwgdGhlbiBhZGQgaXQgYmFjaw0KCQkkcSA9ICdERUxFVEUgRlJPTSAlcyBXSEVSRSBncm91cGlkID0gPyc7DQoJCSRxMSA9IHNwcmludGYoJHEsU0RfVEFCTEUpOw0KCQkkZGItPkV4ZWN1dGUoICRxMSwgYXJyYXkoICR0aGlzLT5ncm91cGlkICkgKTsNCgkNCgkJJHExID0gc3ByaW50ZigkcSxTRF9QRVJTSVNURU5UKTsNCgkJJGRiLT5FeGVjdXRlKCAkcTEsIGFycmF5KCAkdGhpcy0+Z3JvdXBpZCApICk7DQoJDQoJCSRxMSA9IHNwcmludGYoJHEsU0RfQUxURVJOQVRFKTsNCgkJJGRiLT5FeGVjdXRlKCAkcTEsIGFycmF5KCAkdGhpcy0+Z3JvdXBpZCApICk7DQogICAgfQ0KDQogICAgJHEgPSAnSU5TRVJUIElOVE8gJy5TRF9UQUJMRS4nDQogICAgICAgICAgICAodGVtcGxhdGVfaWQscHJlZmVycmVkX3NzKQ0KICAgICAgICAgIFZBTFVFUyAoPyw/KSc7DQogICAgJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCAkcSwgDQoJCQkgICAgICBhcnJheSggJHRoaXMtPnRlbXBsYXRlX2lkLCAkdGhpcy0+cHJlZmVycmVkX3NzKSk7DQoNCiAgICBpZiggISRkYnJlc3VsdCApIGRpZSggJGRiLT5FcnJvck1zZygpICk7IC8vIHRvZG8NCiAgICANCiAgICAkcSA9ICdTRUxFQ1QgZ3JvdXBpZCBGUk9NICcuU0RfVEFCTEUuJw0KICAgICAgICAgICBXSEVSRSB0ZW1wbGF0ZV9pZCA9ID8nOw0KICAgICRncm91cGlkID0gJGRiLT5HZXRPbmUoJHEsYXJyYXkoJHRoaXMtPnRlbXBsYXRlX2lkKSk7DQogICAgDQogICAgJHEgPSAnSU5TRVJUIElOVE8gJy5TRF9QRVJTSVNURU5ULicNCiAgICAgICAgICAgICAgKGdyb3VwaWQsc3R5bGVzaGVldF9pZCkgVkFMVUVTICg/LD8pJzsNCiAgICBmb3JlYWNoKCAkdGhpcy0+cGVyc2lzdGVudCBhcyAkc3R5bGVzaGVldF9pZCApIHsNCgkJJGRiLT5FeGVjdXRlKCAkcSwgYXJyYXkoICRncm91cGlkLCAkc3R5bGVzaGVldF9pZCApICk7DQogICAgfQ0KDQogICAgJHEgPSAnSU5TRVJUIElOVE8gJy5TRF9BTFRFUk5BVEUuJw0KICAgICAgICAgICAgICAoZ3JvdXBpZCxzdHlsZXNoZWV0X2lkKSBWQUxVRVMgKD8sPyknOw0KICAgIGZvcmVhY2goICR0aGlzLT5hbHRlcm5hdGUgYXMgJHN0eWxlc2hlZXRfaWQgKXsNCgkJJGRiLT5FeGVjdXRlKCAkcSwgYXJyYXkoICRncm91cGlkLCAkc3R5bGVzaGVldF9pZCApICk7DQogICAgfQ0KICB9DQp9DQoNCg0KPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/HTTP/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/HTTP/_notes/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/HTTP/_notes/dwsync.xml</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiID8+DQo8ZHdzeW5jPg0KPGZpbGUgbmFtZT0iQ29uZGl0aW9uYWxHZXQucGhwIiBzZXJ2ZXI9Ind3dy5zanJtYy5vcmciIGxvY2FsPSIxMjg2Mjc0MTE0MDAwMDAwMDAiIHJlbW90ZT0iMTI4NjI3NDExNDAwMDAwMDAwIiAvPg0KPGZpbGUgbmFtZT0iRW5jb2Rlci5waHAiIHNlcnZlcj0id3d3LnNqcm1jLm9yZyIgbG9jYWw9IjEyODYyNzQxMTQwMDAwMDAwMCIgcmVtb3RlPSIxMjg2Mjc0MTE0MDAwMDAwMDAiIC8+DQo8L2R3c3luYz4=]]></data>
	</file>
	<file>
	  <filename>/lib/JSMin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCi8qKg0KICoganNtaW4ucGhwIC0gUEhQIGltcGxlbWVudGF0aW9uIG9mIERvdWdsYXMgQ3JvY2tmb3JkJ3MgSlNNaW4uDQogKg0KICogVGhpcyBpcyBwcmV0dHkgbXVjaCBhIGRpcmVjdCBwb3J0IG9mIGpzbWluLmMgdG8gUEhQIHdpdGgganVzdCBhIGZldw0KICogUEhQLXNwZWNpZmljIHBlcmZvcm1hbmNlIHR3ZWFrcy4gQWxzbywgd2hlcmVhcyBqc21pbi5jIHJlYWRzIGZyb20gc3RkaW4gYW5kDQogKiBvdXRwdXRzIHRvIHN0ZG91dCwgdGhpcyBsaWJyYXJ5IGFjY2VwdHMgYSBzdHJpbmcgYXMgaW5wdXQgYW5kIHJldHVybnMgYW5vdGhlcg0KICogc3RyaW5nIGFzIG91dHB1dC4NCiAqDQogKiBQSFAgNSBvciBoaWdoZXIgaXMgcmVxdWlyZWQuDQogKg0KICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCB0byB1c2UgdGhpcyB2ZXJzaW9uIG9mIHRoZSBsaWJyYXJ5IHVuZGVyIHRoZQ0KICogc2FtZSB0ZXJtcyBhcyBqc21pbi5jLCB3aGljaCBoYXMgdGhlIGZvbGxvd2luZyBsaWNlbnNlOg0KICoNCiAqIC0tDQogKiBDb3B5cmlnaHQgKGMpIDIwMDIgRG91Z2xhcyBDcm9ja2ZvcmQgICh3d3cuY3JvY2tmb3JkLmNvbSkNCiAqDQogKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5IG9mDQogKiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8gZGVhbCBpbg0KICogdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0bw0KICogdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMNCiAqIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbw0KICogc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOg0KICoNCiAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbA0KICogY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4NCiAqDQogKiBUaGUgU29mdHdhcmUgc2hhbGwgYmUgdXNlZCBmb3IgR29vZCwgbm90IEV2aWwuDQogKg0KICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1INCiAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLA0KICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFDQogKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSDQogKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLA0KICogT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUNCiAqIFNPRlRXQVJFLg0KICogLS0NCiAqDQogKiBAcGFja2FnZSBKU01pbg0KICogQGF1dGhvciBSeWFuIEdyb3ZlIDxyeWFuQHdvbmtvLmNvbT4NCiAqIEBjb3B5cmlnaHQgMjAwMiBEb3VnbGFzIENyb2NrZm9yZCA8ZG91Z2xhc0Bjcm9ja2ZvcmQuY29tPiAoanNtaW4uYykNCiAqIEBjb3B5cmlnaHQgMjAwOCBSeWFuIEdyb3ZlIDxyeWFuQHdvbmtvLmNvbT4gKFBIUCBwb3J0KQ0KICogQGxpY2Vuc2UgaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlLnBocCBNSVQgTGljZW5zZQ0KICogQHZlcnNpb24gMS4xLjEgKDIwMDgtMDMtMDIpDQogKiBAbGluayBodHRwOi8vY29kZS5nb29nbGUuY29tL3AvanNtaW4tcGhwLw0KICovDQoNCmNsYXNzIEpTTWluIHsNCiAgY29uc3QgT1JEX0xGICAgID0gMTA7DQogIGNvbnN0IE9SRF9TUEFDRSA9IDMyOw0KDQogIHByb3RlY3RlZCAkYSAgICAgICAgICAgPSAnJzsNCiAgcHJvdGVjdGVkICRiICAgICAgICAgICA9ICcnOw0KICBwcm90ZWN0ZWQgJGlucHV0ICAgICAgID0gJyc7DQogIHByb3RlY3RlZCAkaW5wdXRJbmRleCAgPSAwOw0KICBwcm90ZWN0ZWQgJGlucHV0TGVuZ3RoID0gMDsNCiAgcHJvdGVjdGVkICRsb29rQWhlYWQgICA9IG51bGw7DQogIHByb3RlY3RlZCAkb3V0cHV0ICAgICAgPSAnJzsNCg0KICAvLyAtLSBQdWJsaWMgU3RhdGljIE1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIG1pbmlmeSgkanMpIHsNCiAgICAkanNtaW4gPSBuZXcgSlNNaW4oJGpzKTsNCiAgICByZXR1cm4gJGpzbWluLT5taW4oKTsNCiAgfQ0KDQogIC8vIC0tIFB1YmxpYyBJbnN0YW5jZSBNZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQogIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkaW5wdXQpIHsNCiAgICAkdGhpcy0+aW5wdXQgICAgICAgPSBzdHJfcmVwbGFjZSgiXHJcbiIsICJcbiIsICRpbnB1dCk7DQogICAgJHRoaXMtPmlucHV0TGVuZ3RoID0gc3RybGVuKCR0aGlzLT5pbnB1dCk7DQogIH0NCg0KICAvLyAtLSBQcm90ZWN0ZWQgSW5zdGFuY2UgTWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KICBwcm90ZWN0ZWQgZnVuY3Rpb24gYWN0aW9uKCRkKSB7DQogICAgc3dpdGNoKCRkKSB7DQogICAgICBjYXNlIDE6DQogICAgICAgICR0aGlzLT5vdXRwdXQgLj0gJHRoaXMtPmE7DQoNCiAgICAgIGNhc2UgMjoNCiAgICAgICAgJHRoaXMtPmEgPSAkdGhpcy0+YjsNCg0KICAgICAgICBpZiAoJHRoaXMtPmEgPT09ICInIiB8fCAkdGhpcy0+YSA9PT0gJyInKSB7DQogICAgICAgICAgZm9yICg7Oykgew0KICAgICAgICAgICAgJHRoaXMtPm91dHB1dCAuPSAkdGhpcy0+YTsNCiAgICAgICAgICAgICR0aGlzLT5hICAgICAgID0gJHRoaXMtPmdldCgpOw0KDQogICAgICAgICAgICBpZiAoJHRoaXMtPmEgPT09ICR0aGlzLT5iKSB7DQogICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAob3JkKCR0aGlzLT5hKSA8PSBzZWxmOjpPUkRfTEYpIHsNCiAgICAgICAgICAgICAgdGhyb3cgbmV3IEpTTWluRXhjZXB0aW9uKCdVbnRlcm1pbmF0ZWQgc3RyaW5nIGxpdGVyYWwuJyk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmICgkdGhpcy0+YSA9PT0gJ1xcJykgew0KICAgICAgICAgICAgICAkdGhpcy0+b3V0cHV0IC49ICR0aGlzLT5hOw0KICAgICAgICAgICAgICAkdGhpcy0+YSAgICAgICA9ICR0aGlzLT5nZXQoKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgY2FzZSAzOg0KICAgICAgICAkdGhpcy0+YiA9ICR0aGlzLT5uZXh0KCk7DQoNCiAgICAgICAgaWYgKCR0aGlzLT5iID09PSAnLycgJiYgKA0KICAgICAgICAgICAgJHRoaXMtPmEgPT09ICcoJyB8fCAkdGhpcy0+YSA9PT0gJywnIHx8ICR0aGlzLT5hID09PSAnPScgfHwNCiAgICAgICAgICAgICR0aGlzLT5hID09PSAnOicgfHwgJHRoaXMtPmEgPT09ICdbJyB8fCAkdGhpcy0+YSA9PT0gJyEnIHx8DQogICAgICAgICAgICAkdGhpcy0+YSA9PT0gJyYnIHx8ICR0aGlzLT5hID09PSAnfCcgfHwgJHRoaXMtPmEgPT09ICc/JykpIHsNCg0KICAgICAgICAgICR0aGlzLT5vdXRwdXQgLj0gJHRoaXMtPmEgLiAkdGhpcy0+YjsNCg0KICAgICAgICAgIGZvciAoOzspIHsNCiAgICAgICAgICAgICR0aGlzLT5hID0gJHRoaXMtPmdldCgpOw0KDQogICAgICAgICAgICBpZiAoJHRoaXMtPmEgPT09ICcvJykgew0KICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0gZWxzZWlmICgkdGhpcy0+YSA9PT0gJ1xcJykgew0KICAgICAgICAgICAgICAkdGhpcy0+b3V0cHV0IC49ICR0aGlzLT5hOw0KICAgICAgICAgICAgICAkdGhpcy0+YSAgICAgICA9ICR0aGlzLT5nZXQoKTsNCiAgICAgICAgICAgIH0gZWxzZWlmIChvcmQoJHRoaXMtPmEpIDw9IHNlbGY6Ok9SRF9MRikgew0KICAgICAgICAgICAgICB0aHJvdyBuZXcgSlNNaW5FeGNlcHRpb24oJ1VudGVybWluYXRlZCByZWd1bGFyIGV4cHJlc3Npb24gJy4NCiAgICAgICAgICAgICAgICAgICdsaXRlcmFsLicpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAkdGhpcy0+b3V0cHV0IC49ICR0aGlzLT5hOw0KICAgICAgICAgIH0NCg0KICAgICAgICAgICR0aGlzLT5iID0gJHRoaXMtPm5leHQoKTsNCiAgICAgICAgfQ0KICAgIH0NCiAgfQ0KDQogIHByb3RlY3RlZCBmdW5jdGlvbiBnZXQoKSB7DQogICAgJGMgPSAkdGhpcy0+bG9va0FoZWFkOw0KICAgICR0aGlzLT5sb29rQWhlYWQgPSBudWxsOw0KDQogICAgaWYgKCRjID09PSBudWxsKSB7DQogICAgICBpZiAoJHRoaXMtPmlucHV0SW5kZXggPCAkdGhpcy0+aW5wdXRMZW5ndGgpIHsNCiAgICAgICAgJGMgPSAkdGhpcy0+aW5wdXRbJHRoaXMtPmlucHV0SW5kZXhdOw0KICAgICAgICAkdGhpcy0+aW5wdXRJbmRleCArPSAxOw0KICAgICAgfSBlbHNlIHsNCiAgICAgICAgJGMgPSBudWxsOw0KICAgICAgfQ0KICAgIH0NCg0KICAgIGlmICgkYyA9PT0gIlxyIikgew0KICAgICAgcmV0dXJuICJcbiI7DQogICAgfQ0KDQogICAgaWYgKCRjID09PSBudWxsIHx8ICRjID09PSAiXG4iIHx8IG9yZCgkYykgPj0gc2VsZjo6T1JEX1NQQUNFKSB7DQogICAgICByZXR1cm4gJGM7DQogICAgfQ0KDQogICAgcmV0dXJuICcgJzsNCiAgfQ0KDQogIHByb3RlY3RlZCBmdW5jdGlvbiBpc0FscGhhTnVtKCRjKSB7DQogICAgcmV0dXJuIG9yZCgkYykgPiAxMjYgfHwgJGMgPT09ICdcXCcgfHwgcHJlZ19tYXRjaCgnL15bXHdcJF0kLycsICRjKSA9PT0gMTsNCiAgfQ0KDQogIHByb3RlY3RlZCBmdW5jdGlvbiBtaW4oKSB7DQogICAgJHRoaXMtPmEgPSAiXG4iOw0KICAgICR0aGlzLT5hY3Rpb24oMyk7DQoNCiAgICB3aGlsZSAoJHRoaXMtPmEgIT09IG51bGwpIHsNCiAgICAgIHN3aXRjaCAoJHRoaXMtPmEpIHsNCiAgICAgICAgY2FzZSAnICc6DQogICAgICAgICAgaWYgKCR0aGlzLT5pc0FscGhhTnVtKCR0aGlzLT5iKSkgew0KICAgICAgICAgICAgJHRoaXMtPmFjdGlvbigxKTsNCiAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgJHRoaXMtPmFjdGlvbigyKTsNCiAgICAgICAgICB9DQogICAgICAgICAgYnJlYWs7DQoNCiAgICAgICAgY2FzZSAiXG4iOg0KICAgICAgICAgIHN3aXRjaCAoJHRoaXMtPmIpIHsNCiAgICAgICAgICAgIGNhc2UgJ3snOg0KICAgICAgICAgICAgY2FzZSAnWyc6DQogICAgICAgICAgICBjYXNlICcoJzoNCiAgICAgICAgICAgIGNhc2UgJysnOg0KICAgICAgICAgICAgY2FzZSAnLSc6DQogICAgICAgICAgICAgICR0aGlzLT5hY3Rpb24oMSk7DQogICAgICAgICAgICAgIGJyZWFrOw0KDQogICAgICAgICAgICBjYXNlICcgJzoNCiAgICAgICAgICAgICAgJHRoaXMtPmFjdGlvbigzKTsNCiAgICAgICAgICAgICAgYnJlYWs7DQoNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgIGlmICgkdGhpcy0+aXNBbHBoYU51bSgkdGhpcy0+YikpIHsNCiAgICAgICAgICAgICAgICAkdGhpcy0+YWN0aW9uKDEpOw0KICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICR0aGlzLT5hY3Rpb24oMik7DQogICAgICAgICAgICAgIH0NCiAgICAgICAgICB9DQogICAgICAgICAgYnJlYWs7DQoNCiAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICBzd2l0Y2ggKCR0aGlzLT5iKSB7DQogICAgICAgICAgICBjYXNlICcgJzoNCiAgICAgICAgICAgICAgaWYgKCR0aGlzLT5pc0FscGhhTnVtKCR0aGlzLT5hKSkgew0KICAgICAgICAgICAgICAgICR0aGlzLT5hY3Rpb24oMSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAkdGhpcy0+YWN0aW9uKDMpOw0KICAgICAgICAgICAgICBicmVhazsNCg0KICAgICAgICAgICAgY2FzZSAiXG4iOg0KICAgICAgICAgICAgICBzd2l0Y2ggKCR0aGlzLT5hKSB7DQogICAgICAgICAgICAgICAgY2FzZSAnfSc6DQogICAgICAgICAgICAgICAgY2FzZSAnXSc6DQogICAgICAgICAgICAgICAgY2FzZSAnKSc6DQogICAgICAgICAgICAgICAgY2FzZSAnKyc6DQogICAgICAgICAgICAgICAgY2FzZSAnLSc6DQogICAgICAgICAgICAgICAgY2FzZSAnIic6DQogICAgICAgICAgICAgICAgY2FzZSAiJyI6DQogICAgICAgICAgICAgICAgICAkdGhpcy0+YWN0aW9uKDEpOw0KICAgICAgICAgICAgICAgICAgYnJlYWs7DQoNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgaWYgKCR0aGlzLT5pc0FscGhhTnVtKCR0aGlzLT5hKSkgew0KICAgICAgICAgICAgICAgICAgICAkdGhpcy0+YWN0aW9uKDEpOw0KICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICR0aGlzLT5hY3Rpb24oMyk7DQogICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgYnJlYWs7DQoNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICR0aGlzLT5hY3Rpb24oMSk7DQogICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgIH0NCiAgICAgIH0NCiAgICB9DQoNCiAgICByZXR1cm4gJHRoaXMtPm91dHB1dDsNCiAgfQ0KDQogIHByb3RlY3RlZCBmdW5jdGlvbiBuZXh0KCkgew0KICAgICRjID0gJHRoaXMtPmdldCgpOw0KDQogICAgaWYgKCRjID09PSAnLycpIHsNCiAgICAgIHN3aXRjaCgkdGhpcy0+cGVlaygpKSB7DQogICAgICAgIGNhc2UgJy8nOg0KICAgICAgICAgIGZvciAoOzspIHsNCiAgICAgICAgICAgICRjID0gJHRoaXMtPmdldCgpOw0KDQogICAgICAgICAgICBpZiAob3JkKCRjKSA8PSBzZWxmOjpPUkRfTEYpIHsNCiAgICAgICAgICAgICAgcmV0dXJuICRjOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgIH0NCg0KICAgICAgICBjYXNlICcqJzoNCiAgICAgICAgICAkdGhpcy0+Z2V0KCk7DQoNCiAgICAgICAgICBmb3IgKDs7KSB7DQogICAgICAgICAgICBzd2l0Y2goJHRoaXMtPmdldCgpKSB7DQogICAgICAgICAgICAgIGNhc2UgJyonOg0KICAgICAgICAgICAgICAgIGlmICgkdGhpcy0+cGVlaygpID09PSAnLycpIHsNCiAgICAgICAgICAgICAgICAgICR0aGlzLT5nZXQoKTsNCiAgICAgICAgICAgICAgICAgIHJldHVybiAnICc7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KDQogICAgICAgICAgICAgIGNhc2UgbnVsbDoNCiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSlNNaW5FeGNlcHRpb24oJ1VudGVybWluYXRlZCBjb21tZW50LicpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgIH0NCg0KICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgIHJldHVybiAkYzsNCiAgICAgIH0NCiAgICB9DQoNCiAgICByZXR1cm4gJGM7DQogIH0NCg0KICBwcm90ZWN0ZWQgZnVuY3Rpb24gcGVlaygpIHsNCiAgICAkdGhpcy0+bG9va0FoZWFkID0gJHRoaXMtPmdldCgpOw0KICAgIHJldHVybiAkdGhpcy0+bG9va0FoZWFkOw0KICB9DQp9DQoNCi8vIC0tIEV4Y2VwdGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpjbGFzcyBKU01pbkV4Y2VwdGlvbiBleHRlbmRzIEV4Y2VwdGlvbiB7fQ0KPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/Minify.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCi8qKg0KICogQ2xhc3MgTWluaWZ5ICANCiAqIEBwYWNrYWdlIE1pbmlmeQ0KICovDQoNCi8qKg0KICogTWluaWZ5X1NvdXJjZQ0KICovDQpyZXF1aXJlX29uY2UgJ01pbmlmeS9Tb3VyY2UucGhwJzsNCiANCi8qKg0KICogTWluaWZ5IC0gQ29tYmluZXMsIG1pbmlmaWVzLCBhbmQgY2FjaGVzIEphdmFTY3JpcHQgYW5kIENTUyBmaWxlcyBvbiBkZW1hbmQuDQogKg0KICogU2VlIFJFQURNRSBmb3IgdXNhZ2UgaW5zdHJ1Y3Rpb25zIChmb3Igbm93KS4NCiAqDQogKiBUaGlzIGxpYnJhcnkgd2FzIGluc3BpcmVkIGJ5IHtAbGluayBtYWlsdG86Zmxhc2hrb3RAbWFpbC5ydSBqc2Nzc2NvbXAgYnkgTWF4aW0gTWFydHlueXVrfQ0KICogYW5kIGJ5IHRoZSBhcnRpY2xlIHtAbGluayBodHRwOi8vd3d3Lmh1bmxvY2suY29tL2Jsb2dzL1N1cGVyY2hhcmdlZF9KYXZhc2NyaXB0ICJTdXBlcmNoYXJnZWQgSmF2YVNjcmlwdCIgYnkgUGF0cmljayBIdW5sb2NrfS4NCiAqDQogKiBSZXF1aXJlcyBQSFAgNS4xLjAuDQogKiBUZXN0ZWQgb24gUEhQIDUuMS42Lg0KICoNCiAqIEBwYWNrYWdlIE1pbmlmeQ0KICogQGF1dGhvciBSeWFuIEdyb3ZlIDxyeWFuQHdvbmtvLmNvbT4NCiAqIEBhdXRob3IgU3RlcGhlbiBDbGF5IDxzdGV2ZUBtcmNsYXkub3JnPg0KICogQGNvcHlyaWdodCAyMDA4IFJ5YW4gR3JvdmUsIFN0ZXBoZW4gQ2xheS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9ic2QtbGljZW5zZS5waHAgIE5ldyBCU0QgTGljZW5zZQ0KICogQGxpbmsgaHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL21pbmlmeS8NCiAqLw0KY2xhc3MgTWluaWZ5IHsNCg0KICAgIGNvbnN0IFRZUEVfQ1NTID0gJ3RleHQvY3NzJzsNCiAgICBjb25zdCBUWVBFX0hUTUwgPSAndGV4dC9odG1sJzsNCiAgICAvLyB0aGVyZSBpcyBzb21lIGRlYmF0ZSBvdmVyIHRoZSBpZGVhbCBKUyBDb250ZW50LVR5cGUsIGJ1dCB0aGlzIGlzIHRoZQ0KICAgIC8vIEFwYWNoZSBkZWZhdWx0IGFuZCB3aGF0IFlhaG9vISB1c2VzLi4NCiAgICBjb25zdCBUWVBFX0pTID0gJ2FwcGxpY2F0aW9uL3gtamF2YXNjcmlwdCc7DQogICAgDQogICAgLyoqDQogICAgICogQHNlZSBzZXRDYWNoZSgpDQogICAgICogQHBhcmFtIG1peGVkICRjYWNoZSBvYmplY3Qgd2l0aCBpZGVudGljYWwgaW50ZXJmYWNlIGFzIE1pbmlmeV9DYWNoZV9GaWxlIG9yDQogICAgICogYSBkaXJlY3RvcnkgcGF0aC4gKGRlZmF1bHQgPSAnJykNCiAgICAgKiBAcmV0dXJuIG51bGwNCiAgICAgKiBAZGVwcmVjYXRlZA0KICAgICAqLw0KICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gdXNlU2VydmVyQ2FjaGUoJHBhdGggPSBudWxsKSANCiAgICB7DQogICAgICAgIHNlbGY6OnNldENhY2hlKCRwYXRoKTsNCiAgICB9DQogICAgDQogICAgLyoqDQogICAgICogU3BlY2lmeSBhIGNhY2hlIG9iamVjdCAod2l0aCBpZGVudGljYWwgaW50ZXJmYWNlIGFzIE1pbmlmeV9DYWNoZV9GaWxlKSBvcg0KICAgICAqIGEgcGF0aCB0byB1c2Ugd2l0aCBNaW5pZnlfQ2FjaGVfRmlsZS4NCiAgICAgKiANCiAgICAgKiBJZiBub3QgY2FsbGVkLCBNaW5pZnkgd2lsbCBub3QgdXNlIGEgY2FjaGUgYW5kLCBmb3IgZWFjaCAyMDAgcmVzcG9uc2UsIHdpbGwgDQogICAgICogbmVlZCB0byByZWNvbWJpbmUgZmlsZXMsIG1pbmlmeSBhbmQgZW5jb2RlIHRoZSBvdXRwdXQuDQogICAgICoNCiAgICAgKiBAcGFyYW0gbWl4ZWQgJGNhY2hlIG9iamVjdCB3aXRoIGlkZW50aWNhbCBpbnRlcmZhY2UgYXMgTWluaWZ5X0NhY2hlX0ZpbGUgb3INCiAgICAgKiBhIGRpcmVjdG9yeSBwYXRoLiAoZGVmYXVsdCA9ICcnKQ0KICAgICAqDQogICAgICogQHJldHVybiBudWxsDQogICAgICovDQogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBzZXRDYWNoZSgkY2FjaGUgPSAnJykNCiAgICB7DQogICAgICAgIGlmIChpc19zdHJpbmcoJGNhY2hlKSkgew0KICAgICAgICAgICAgcmVxdWlyZV9vbmNlICdNaW5pZnkvQ2FjaGUvRmlsZS5waHAnOw0KICAgICAgICAgICAgc2VsZjo6JF9jYWNoZSA9IG5ldyBNaW5pZnlfQ2FjaGVfRmlsZSgkY2FjaGUpOw0KICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgc2VsZjo6JF9jYWNoZSA9ICRjYWNoZTsNCiAgICAgICAgfQ0KICAgIH0NCiAgICANCiAgICBwcml2YXRlIHN0YXRpYyAkX2NhY2hlID0gbnVsbDsNCg0KICAgIC8qKg0KICAgICAqIFNlcnZlIGEgcmVxdWVzdCBmb3IgYSBtaW5pZmllZCBmaWxlLiANCiAgICAgKiANCiAgICAgKiBIZXJlIGFyZSB0aGUgYXZhaWxhYmxlIG9wdGlvbnMgYW5kIGRlZmF1bHRzIGluIHRoZSBiYXNlIGNvbnRyb2xsZXI6DQogICAgICogDQogICAgICogJ2lzUHVibGljJyA6IHNlbmQgInB1YmxpYyIgaW5zdGVhZCBvZiAicHJpdmF0ZSIgaW4gQ2FjaGUtQ29udHJvbCANCiAgICAgKiBoZWFkZXJzLCBhbGxvd2luZyBzaGFyZWQgY2FjaGVzIHRvIGNhY2hlIHRoZSBvdXRwdXQuIChkZWZhdWx0IHRydWUpDQogICAgICogDQogICAgICogJ3F1aWV0JyA6IHNldCB0byB0cnVlIHRvIGhhdmUgc2VydmUoKSByZXR1cm4gYW4gYXJyYXkgcmF0aGVyIHRoYW4gc2VuZGluZw0KICAgICAqIGFueSBoZWFkZXJzL291dHB1dCAoZGVmYXVsdCBmYWxzZSkNCiAgICAgKiANCiAgICAgKiAnZW5jb2RlT3V0cHV0JyA6IHRvIGRpc2FibGUgY29udGVudCBlbmNvZGluZywgc2V0IHRoaXMgdG8gZmFsc2UgKGRlZmF1bHQgdHJ1ZSkNCiAgICAgKiANCiAgICAgKiAnZW5jb2RlTWV0aG9kJyA6IGdlbmVyYWxseSB5b3Ugc2hvdWxkIGxldCB0aGlzIGJlIGRldGVybWluZWQgYnkgDQogICAgICogSFRUUF9FbmNvZGVyIChsZWF2ZSBudWxsKSwgYnV0IHlvdSBjYW4gZm9yY2UgYSBwYXJ0aWN1bGFyIGVuY29kaW5nDQogICAgICogdG8gYmUgcmV0dXJuZWQsIGJ5IHNldHRpbmcgdGhpcyB0byAnZ3ppcCcsICdkZWZsYXRlJywgb3IgJycgKG5vIGVuY29kaW5nKQ0KICAgICAqIA0KICAgICAqICdlbmNvZGVMZXZlbCcgOiBsZXZlbCBvZiBlbmNvZGluZyBjb21wcmVzc2lvbiAoMCB0byA5LCBkZWZhdWx0IDkpDQogICAgICogDQogICAgICogJ2NvbnRlbnRUeXBlQ2hhcnNldCcgOiBhcHBlbmRlZCB0byB0aGUgQ29udGVudC1UeXBlIGhlYWRlciBzZW50LiBTZXQgdG8gYSBmYWxzZXkNCiAgICAgKiB2YWx1ZSB0byByZW1vdmUuIChkZWZhdWx0ICdVVEYtOCcpICANCiAgICAgKiANCiAgICAgKiAnc2V0RXhwaXJlcycgOiBzZXQgdGhpcyB0byBhIHRpbWVzdGFtcCB0byBoYXZlIE1pbmlmeSBzZW5kIGFuIEhUVFAgRXhwaXJlcw0KICAgICAqIGhlYWRlciBpbnN0ZWFkIG9mIGNoZWNraW5nIGZvciBjb25kaXRpb25hbCBHRVQgKGRlZmF1bHQgbnVsbCkuIA0KICAgICAqIEUuZy4gKCRfU0VSVkVSWydSRVFVRVNUX1RJTUUnXSArIDg2NDAwICogMzY1KSBmb3IgMXlyIA0KICAgICAqIE5vdGUgdGhpcyBoYXMgbm90aGluZyB0byBkbyB3aXRoIHNlcnZlci1zaWRlIGNhY2hpbmcuDQogICAgICogDQogICAgICogJ21pbmlmaWVycycgOiB0byBvdmVycmlkZSBNaW5pZnkncyBkZWZhdWx0IGNob2ljZSBvZiBtaW5pZmllciBmdW5jdGlvbiBmb3IgDQogICAgICogYSBwYXJ0aWN1bGFyIGNvbnRlbnQtdHlwZSwgc3BlY2lmeSB5b3VyIGNhbGxiYWNrIHVuZGVyIHRoZSBrZXkgb2YgdGhlIA0KICAgICAqIGNvbnRlbnQtdHlwZToNCiAgICAgKiA8Y29kZT4NCiAgICAgKiAvLyBjYWxsIGN1c3RvbUNzc01pbmlmaWVyKCRjc3MpIGZvciBhbGwgQ1NTIG1pbmlmaWNhdGlvbg0KICAgICAqICRvcHRpb25zWydtaW5pZmllcnMnXVtNaW5pZnk6OlRZUEVfQ1NTXSA9ICdjdXN0b21Dc3NNaW5pZmllcic7DQogICAgICogDQogICAgICogLy8gZG9uJ3QgbWluaWZ5IEphdmFzY3JpcHQgYXQgYWxsDQogICAgICogJG9wdGlvbnNbJ21pbmlmaWVycyddW01pbmlmeTo6VFlQRV9KU10gPSAnJzsNCiAgICAgKiA8L2NvZGU+DQogICAgICogDQogICAgICogJ21pbmlmaWVyT3B0aW9ucycgOiB0byBzZW5kIG9wdGlvbnMgdG8gdGhlIG1pbmlmaWVyIGZ1bmN0aW9uLCBzcGVjaWZ5IHlvdXIgb3B0aW9ucw0KICAgICAqIHVuZGVyIHRoZSBrZXkgb2YgdGhlIGNvbnRlbnQtdHlwZS4gRS5nLiBUbyBzZW5kIHRoZSBDU1MgbWluaWZpZXIgYW4gb3B0aW9uOiANCiAgICAgKiA8Y29kZT4NCiAgICAgKiAvLyBnaXZlIENTUyBtaW5pZmllciBhcnJheSgnb3B0aW9uTmFtZScgPT4gJ29wdGlvblZhbHVlJykgYXMgMm5kIGFyZ3VtZW50IA0KICAgICAqICRvcHRpb25zWydtaW5pZmllck9wdGlvbnMnXVtNaW5pZnk6OlRZUEVfQ1NTXVsnb3B0aW9uTmFtZSddID0gJ29wdGlvblZhbHVlJzsNCiAgICAgKiA8L2NvZGU+DQogICAgICogDQogICAgICogQW55IGNvbnRyb2xsZXIgb3B0aW9ucyBhcmUgZG9jdW1lbnRlZCBpbiB0aGF0IGNvbnRyb2xsZXIncyBzZXR1cFNvdXJjZXMoKSBtZXRob2QuDQogICAgICogDQogICAgICogQHBhcmFtIG1peGVkIGluc3RhbmNlIG9mIHN1YmNsYXNzIG9mIE1pbmlmeV9Db250cm9sbGVyX0Jhc2Ugb3Igc3RyaW5nIG5hbWUgb2YNCiAgICAgKiBjb250cm9sbGVyLiBFLmcuICdGaWxlcycNCiAgICAgKiANCiAgICAgKiBAcGFyYW0gYXJyYXkgJG9wdGlvbnMgY29udHJvbGxlci9zZXJ2ZSBvcHRpb25zDQogICAgICogDQogICAgICogQHJldHVybiBtaXhlZCBudWxsLCBvciwgaWYgdGhlICdxdWlldCcgb3B0aW9uIGlzIHNldCB0byB0cnVlLCBhbiBhcnJheQ0KICAgICAqIHdpdGgga2V5cyAic3VjY2VzcyIgKGJvb2wpLCAic3RhdHVzQ29kZSIgKGludCksICJjb250ZW50IiAoc3RyaW5nKSwgYW5kDQogICAgICogImhlYWRlcnMiIChhcnJheSkuDQogICAgICovDQogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBzZXJ2ZSgkY29udHJvbGxlciwgJG9wdGlvbnMgPSBhcnJheSgpKSB7DQogICAgICAgIGlmIChpc19zdHJpbmcoJGNvbnRyb2xsZXIpKSB7DQogICAgICAgICAgICAvLyBtYWtlICRjb250cm9sbGVyIGludG8gb2JqZWN0DQogICAgICAgICAgICAkY2xhc3MgPSAnTWluaWZ5X0NvbnRyb2xsZXJfJyAuICRjb250cm9sbGVyOw0KICAgICAgICAgICAgaWYgKCEgY2xhc3NfZXhpc3RzKCRjbGFzcywgZmFsc2UpKSB7DQogICAgICAgICAgICAgICAgcmVxdWlyZV9vbmNlICJNaW5pZnkvQ29udHJvbGxlci97JGNvbnRyb2xsZXJ9LnBocCI7ICAgIA0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgJGNvbnRyb2xsZXIgPSBuZXcgJGNsYXNzKCk7DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIC8vIHNldCB1cCBjb250cm9sbGVyIHNvdXJjZXMgYW5kIG1peCByZW1haW5pbmcgb3B0aW9ucyB3aXRoDQogICAgICAgIC8vIGNvbnRyb2xsZXIgZGVmYXVsdHMNCiAgICAgICAgJG9wdGlvbnMgPSAkY29udHJvbGxlci0+c2V0dXBTb3VyY2VzKCRvcHRpb25zKTsNCiAgICAgICAgJG9wdGlvbnMgPSAkY29udHJvbGxlci0+YW5hbHl6ZVNvdXJjZXMoJG9wdGlvbnMpOw0KICAgICAgICBzZWxmOjokX29wdGlvbnMgPSAkY29udHJvbGxlci0+bWl4SW5EZWZhdWx0T3B0aW9ucygkb3B0aW9ucyk7DQogICAgICAgIA0KICAgICAgICBpZiAoISAkY29udHJvbGxlci0+c291cmNlcykgew0KICAgICAgICAgICAgLy8gaW52YWxpZCByZXF1ZXN0IQ0KICAgICAgICAgICAgaWYgKCEgc2VsZjo6JF9vcHRpb25zWydxdWlldCddKSB7DQogICAgICAgICAgICAgICAgaGVhZGVyKHNlbGY6OiRfb3B0aW9uc1snYmFkUmVxdWVzdEhlYWRlciddKTsNCiAgICAgICAgICAgICAgICBlY2hvIHNlbGY6OiRfb3B0aW9uc1snYmFkUmVxdWVzdEhlYWRlciddOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgbGlzdCgsJHN0YXR1c0NvZGUpID0gZXhwbG9kZSgnICcsIHNlbGY6OiRfb3B0aW9uc1snYmFkUmVxdWVzdEhlYWRlciddKTsNCiAgICAgICAgICAgICAgICByZXR1cm4gYXJyYXkoDQogICAgICAgICAgICAgICAgICAgICdzdWNjZXNzJyA9PiBmYWxzZQ0KICAgICAgICAgICAgICAgICAgICAsJ3N0YXR1c0NvZGUnID0+IChpbnQpJHN0YXR1c0NvZGUNCiAgICAgICAgICAgICAgICAgICAgLCdjb250ZW50JyA9PiAnJw0KICAgICAgICAgICAgICAgICAgICAsJ2hlYWRlcnMnID0+IGFycmF5KCkNCiAgICAgICAgICAgICAgICApOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICBzZWxmOjokX2NvbnRyb2xsZXIgPSAkY29udHJvbGxlcjsNCg0KICAgICAgICBpZiAobnVsbCA9PT0gc2VsZjo6JF9vcHRpb25zWydzZXRFeHBpcmVzJ10pIHsNCiAgICAgICAgICAgIC8vIGNvbmRpdGlvbmFsIEdFVA0KICAgICAgICAgICAgcmVxdWlyZV9vbmNlICdIVFRQL0NvbmRpdGlvbmFsR2V0LnBocCc7DQogICAgICAgICAgICAkY2cgPSBuZXcgSFRUUF9Db25kaXRpb25hbEdldChhcnJheSgNCiAgICAgICAgICAgICAgICAnbGFzdE1vZGlmaWVkVGltZScgPT4gc2VsZjo6JF9vcHRpb25zWydsYXN0TW9kaWZpZWRUaW1lJ10NCiAgICAgICAgICAgICAgICAsJ2lzUHVibGljJyA9PiBzZWxmOjokX29wdGlvbnNbJ2lzUHVibGljJ10NCiAgICAgICAgICAgICkpOw0KICAgICAgICAgICAgaWYgKCRjZy0+Y2FjaGVJc1ZhbGlkKSB7DQogICAgICAgICAgICAgICAgLy8gY2xpZW50J3MgY2FjaGUgaXMgdmFsaWQNCiAgICAgICAgICAgICAgICBpZiAoISBzZWxmOjokX29wdGlvbnNbJ3F1aWV0J10pIHsNCiAgICAgICAgICAgICAgICAgICAgJGNnLT5zZW5kSGVhZGVycygpOw0KICAgICAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFycmF5KA0KICAgICAgICAgICAgICAgICAgICAgICAgJ3N1Y2Nlc3MnID0+IHRydWUNCiAgICAgICAgICAgICAgICAgICAgICAgICwnc3RhdHVzQ29kZScgPT4gMzA0IA0KICAgICAgICAgICAgICAgICAgICAgICAgLCdjb250ZW50JyA9PiAnJw0KICAgICAgICAgICAgICAgICAgICAgICAgLCdoZWFkZXJzJyA9PiBhcnJheSgpDQogICAgICAgICAgICAgICAgICAgICk7ICAgIA0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgLy8gY2xpZW50IHdpbGwgbmVlZCBvdXRwdXQNCiAgICAgICAgICAgICAgICAkaGVhZGVycyA9ICRjZy0+Z2V0SGVhZGVycygpOw0KICAgICAgICAgICAgICAgIHVuc2V0KCRjZyk7DQogICAgICAgICAgICB9DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAvLyBkb24ndCBuZWVkIGNvbmRpdGlvbmFsIEdFVA0KICAgICAgICAgICAgJHByaXZhY3kgPSBzZWxmOjokX29wdGlvbnNbJ2lzUHVibGljJ10NCiAgICAgICAgICAgICAgICA/ICdwdWJsaWMnDQogICAgICAgICAgICAgICAgOiAncHJpdmF0ZSc7DQogICAgICAgICAgICAkaGVhZGVycyA9IGFycmF5KA0KICAgICAgICAgICAgICAgICdDYWNoZS1Db250cm9sJyA9PiAkcHJpdmFjeSAuICcsIG1heC1hZ2U9JyANCiAgICAgICAgICAgICAgICAgICAgLiAoc2VsZjo6JF9vcHRpb25zWydzZXRFeHBpcmVzJ10gLSAkX1NFUlZFUlsnUkVRVUVTVF9USU1FJ10pDQogICAgICAgICAgICAgICAgLCdFeHBpcmVzJyA9PiBnbWRhdGUoJ0QsIGQgTSBZIEg6aTpzIFxHXE1cVCcsIHNlbGY6OiRfb3B0aW9uc1snc2V0RXhwaXJlcyddKQ0KICAgICAgICAgICAgKTsNCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgLy8gZGV0ZXJtaW5lIGVuY29kaW5nDQogICAgICAgIGlmIChzZWxmOjokX29wdGlvbnNbJ2VuY29kZU91dHB1dCddKSB7DQogICAgICAgICAgICBpZiAoc2VsZjo6JF9vcHRpb25zWydlbmNvZGVNZXRob2QnXSAhPT0gbnVsbCkgew0KICAgICAgICAgICAgICAgIC8vIGNvbnRyb2xsZXIgc3BlY2lmaWNhbGx5IHJlcXVlc3RlZCB0aGlzDQogICAgICAgICAgICAgICAgJGNvbnRlbnRFbmNvZGluZyA9IHNlbGY6OiRfb3B0aW9uc1snZW5jb2RlTWV0aG9kJ107DQogICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgIC8vIHNuaWZmIHJlcXVlc3QgaGVhZGVyDQogICAgICAgICAgICAgICAgcmVxdWlyZV9vbmNlICdIVFRQL0VuY29kZXIucGhwJzsNCiAgICAgICAgICAgICAgICAvLyBkZXBlbmRpbmcgb24gd2hhdCB0aGUgY2xpZW50IGFjY2VwdHMsICRjb250ZW50RW5jb2RpbmcgbWF5IGJlIA0KICAgICAgICAgICAgICAgIC8vICd4LWd6aXAnIHdoaWxlIG91ciBpbnRlcm5hbCBlbmNvZGVNZXRob2QgaXMgJ2d6aXAnLiBDYWxsaW5nDQogICAgICAgICAgICAgICAgLy8gZ2V0QWNjZXB0ZWRFbmNvZGluZygpIHdpdGggZmFsc2UgbGVhdmVzIG91dCBjb21wcmVzcyBhcyBhbiBvcHRpb24uDQogICAgICAgICAgICAgICAgbGlzdChzZWxmOjokX29wdGlvbnNbJ2VuY29kZU1ldGhvZCddLCAkY29udGVudEVuY29kaW5nKSA9IEhUVFBfRW5jb2Rlcjo6Z2V0QWNjZXB0ZWRFbmNvZGluZyhmYWxzZSk7DQogICAgICAgICAgICB9DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICBzZWxmOjokX29wdGlvbnNbJ2VuY29kZU1ldGhvZCddID0gJyc7IC8vIGlkZW50aXR5IChubyBlbmNvZGluZykNCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgaWYgKG51bGwgIT09IHNlbGY6OiRfY2FjaGUpIHsNCiAgICAgICAgICAgIC8vIHVzaW5nIGNhY2hlDQogICAgICAgICAgICAvLyB0aGUgZ29hbCBpcyB0byB1c2Ugb25seSB0aGUgY2FjaGUgbWV0aG9kcyB0byBzbmlmZiB0aGUgbGVuZ3RoIGFuZCANCiAgICAgICAgICAgIC8vIG91dHB1dCB0aGUgY29udGVudCwgYXMgdGhleSBkbyBub3QgcmVxdWlyZSBldmVyIGxvYWRpbmcgdGhlIGZpbGUgaW50bw0KICAgICAgICAgICAgLy8gbWVtb3J5Lg0KICAgICAgICAgICAgJGNhY2hlSWQgPSAnbWluaWZ5XycgLiBzZWxmOjpfZ2V0Q2FjaGVJZCgpOw0KICAgICAgICAgICAgJGVuY29kaW5nRXh0ZW5zaW9uID0gc2VsZjo6JF9vcHRpb25zWydlbmNvZGVNZXRob2QnXQ0KICAgICAgICAgICAgICAgID8gKCdkZWZsYXRlJyA9PT0gc2VsZjo6JF9vcHRpb25zWydlbmNvZGVNZXRob2QnXQ0KICAgICAgICAgICAgICAgICAgICA/ICcuemQnDQogICAgICAgICAgICAgICAgICAgIDogJy56ZycpDQogICAgICAgICAgICAgICAgOiAnJzsNCiAgICAgICAgICAgICRmdWxsQ2FjaGVJZCA9ICRjYWNoZUlkIC4gJGVuY29kaW5nRXh0ZW5zaW9uOw0KICAgICAgICAgICAgLy8gY2hlY2sgY2FjaGUgZm9yIHZhbGlkIGVudHJ5DQogICAgICAgICAgICAkY2FjaGVJc1JlYWR5ID0gc2VsZjo6JF9jYWNoZS0+aXNWYWxpZCgkZnVsbENhY2hlSWQsIHNlbGY6OiRfb3B0aW9uc1snbGFzdE1vZGlmaWVkVGltZSddKTsgDQogICAgICAgICAgICBpZiAoJGNhY2hlSXNSZWFkeSkgew0KICAgICAgICAgICAgICAgICRjYWNoZUNvbnRlbnRMZW5ndGggPSBzZWxmOjokX2NhY2hlLT5nZXRTaXplKCRmdWxsQ2FjaGVJZCk7ICAgIA0KICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAvLyBnZW5lcmF0ZSAmIGNhY2hlIGNvbnRlbnQNCiAgICAgICAgICAgICAgICAkY29udGVudCA9IHNlbGY6Ol9jb21iaW5lTWluaWZ5KCk7DQogICAgICAgICAgICAgICAgc2VsZjo6JF9jYWNoZS0+c3RvcmUoJGNhY2hlSWQsICRjb250ZW50KTsNCiAgICAgICAgICAgICAgICBzZWxmOjokX2NhY2hlLT5zdG9yZSgkY2FjaGVJZCAuICcuemQnLCBnemRlZmxhdGUoJGNvbnRlbnQsIHNlbGY6OiRfb3B0aW9uc1snZW5jb2RlTGV2ZWwnXSkpOw0KICAgICAgICAgICAgICAgIHNlbGY6OiRfY2FjaGUtPnN0b3JlKCRjYWNoZUlkIC4gJy56ZycsIGd6ZW5jb2RlKCRjb250ZW50LCBzZWxmOjokX29wdGlvbnNbJ2VuY29kZUxldmVsJ10pKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgIC8vIG5vIGNhY2hlDQogICAgICAgICAgICAkY2FjaGVJc1JlYWR5ID0gZmFsc2U7DQogICAgICAgICAgICAkY29udGVudCA9IHNlbGY6Ol9jb21iaW5lTWluaWZ5KCk7DQogICAgICAgIH0NCiAgICAgICAgaWYgKCEgJGNhY2hlSXNSZWFkeSAmJiBzZWxmOjokX29wdGlvbnNbJ2VuY29kZU1ldGhvZCddKSB7DQogICAgICAgICAgICAvLyBzdGlsbCBuZWVkIHRvIGVuY29kZQ0KICAgICAgICAgICAgJGNvbnRlbnQgPSAoJ2RlZmxhdGUnID09PSBzZWxmOjokX29wdGlvbnNbJ2VuY29kZU1ldGhvZCddKQ0KICAgICAgICAgICAgICAgID8gZ3pkZWZsYXRlKCRjb250ZW50LCBzZWxmOjokX29wdGlvbnNbJ2VuY29kZUxldmVsJ10pDQogICAgICAgICAgICAgICAgOiBnemVuY29kZSgkY29udGVudCwgc2VsZjo6JF9vcHRpb25zWydlbmNvZGVMZXZlbCddKTsNCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgLy8gYWRkIGhlYWRlcnMNCiAgICAgICAgJGhlYWRlcnNbJ0NvbnRlbnQtTGVuZ3RoJ10gPSAkY2FjaGVJc1JlYWR5DQogICAgICAgICAgICA/ICRjYWNoZUNvbnRlbnRMZW5ndGgNCiAgICAgICAgICAgIDogc3RybGVuKCRjb250ZW50KTsNCiAgICAgICAgJGhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddID0gc2VsZjo6JF9vcHRpb25zWydjb250ZW50VHlwZUNoYXJzZXQnXQ0KICAgICAgICAgICAgPyBzZWxmOjokX29wdGlvbnNbJ2NvbnRlbnRUeXBlJ10gLiAnOyBjaGFyc2V0PScgLiBzZWxmOjokX29wdGlvbnNbJ2NvbnRlbnRUeXBlQ2hhcnNldCddDQogICAgICAgICAgICA6IHNlbGY6OiRfb3B0aW9uc1snY29udGVudFR5cGUnXTsNCiAgICAgICAgaWYgKHNlbGY6OiRfb3B0aW9uc1snZW5jb2RlTWV0aG9kJ10gIT09ICcnKSB7DQogICAgICAgICAgICAkaGVhZGVyc1snQ29udGVudC1FbmNvZGluZyddID0gJGNvbnRlbnRFbmNvZGluZzsNCiAgICAgICAgICAgICRoZWFkZXJzWydWYXJ5J10gPSAnQWNjZXB0LUVuY29kaW5nJzsNCiAgICAgICAgfQ0KDQogICAgICAgIGlmICghIHNlbGY6OiRfb3B0aW9uc1sncXVpZXQnXSkgew0KICAgICAgICAgICAgLy8gb3V0cHV0IGhlYWRlcnMgJiBjb250ZW50DQogICAgICAgICAgICBmb3JlYWNoICgkaGVhZGVycyBhcyAkbmFtZSA9PiAkdmFsKSB7DQogICAgICAgICAgICAgICAgaGVhZGVyKCRuYW1lIC4gJzogJyAuICR2YWwpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKCRjYWNoZUlzUmVhZHkpIHsNCiAgICAgICAgICAgICAgICBzZWxmOjokX2NhY2hlLT5kaXNwbGF5KCRmdWxsQ2FjaGVJZCk7DQogICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgIGVjaG8gJGNvbnRlbnQ7DQogICAgICAgICAgICB9DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICByZXR1cm4gYXJyYXkoDQogICAgICAgICAgICAgICAgJ3N1Y2Nlc3MnID0+IHRydWUNCiAgICAgICAgICAgICAgICAsJ3N0YXR1c0NvZGUnID0+IDIwMA0KICAgICAgICAgICAgICAgICwnY29udGVudCcgPT4gJGNhY2hlSXNSZWFkeQ0KICAgICAgICAgICAgICAgICAgICA/IHNlbGY6OiRfY2FjaGUtPmZldGNoKCRmdWxsQ2FjaGVJZCkNCiAgICAgICAgICAgICAgICAgICAgOiAkY29udGVudA0KICAgICAgICAgICAgICAgICwnaGVhZGVycycgPT4gJGhlYWRlcnMgICAgICAgICAgICAgICAgDQogICAgICAgICAgICApOw0KICAgICAgICB9DQogICAgfQ0KICAgIA0KICAgIC8qKg0KICAgICAqIEB2YXIgTWluaWZ5X0NvbnRyb2xsZXIgYWN0aXZlIGNvbnRyb2xsZXIgZm9yIGN1cnJlbnQgcmVxdWVzdA0KICAgICAqLw0KICAgIHByb3RlY3RlZCBzdGF0aWMgJF9jb250cm9sbGVyID0gbnVsbDsNCiAgICANCiAgICAvKioNCiAgICAgKiBAdmFyIGFycmF5IG9wdGlvbnMgZm9yIGN1cnJlbnQgcmVxdWVzdA0KICAgICAqLw0KICAgIHByb3RlY3RlZCBzdGF0aWMgJF9vcHRpb25zID0gbnVsbDsNCiAgICANCiAgICAvKioNCiAgICAgKiBDb21iaW5lcyBzb3VyY2VzIGFuZCBtaW5pZmllcyB0aGUgcmVzdWx0Lg0KICAgICAqDQogICAgICogQHJldHVybiBzdHJpbmcNCiAgICAgKi8NCiAgICBwcm90ZWN0ZWQgc3RhdGljIGZ1bmN0aW9uIF9jb21iaW5lTWluaWZ5KCkgew0KICAgICAgICAkdHlwZSA9IHNlbGY6OiRfb3B0aW9uc1snY29udGVudFR5cGUnXTsgLy8gZWFzZSByZWFkYWJpbGl0eQ0KICAgICAgICANCiAgICAgICAgLy8gd2hlbiBjb21iaW5pbmcgc2NyaXB0cywgbWFrZSBzdXJlIGFsbCBzdGF0ZW1lbnRzIHNlcGFyYXRlZA0KICAgICAgICAkaW1wbG9kZVNlcGFyYXRvciA9ICgkdHlwZSA9PT0gc2VsZjo6VFlQRV9KUykNCiAgICAgICAgICAgID8gJzsnDQogICAgICAgICAgICA6ICcnOw0KICAgICAgICANCiAgICAgICAgLy8gYWxsb3cgdGhlIHVzZXIgdG8gcGFzcyBhIHBhcnRpY3VsYXIgYXJyYXkgb2Ygb3B0aW9ucyB0byBlYWNoDQogICAgICAgIC8vIG1pbmlmaWVyIChkZXNpZ25hdGVkIGJ5IHR5cGUpLiBzb3VyY2Ugb2JqZWN0cyBtYXkgc3RpbGwgb3ZlcnJpZGUNCiAgICAgICAgLy8gdGhlc2UNCiAgICAgICAgJGRlZmF1bHRPcHRpb25zID0gaXNzZXQoc2VsZjo6JF9vcHRpb25zWydtaW5pZmllck9wdGlvbnMnXVskdHlwZV0pDQogICAgICAgICAgICA/IHNlbGY6OiRfb3B0aW9uc1snbWluaWZpZXJPcHRpb25zJ11bJHR5cGVdDQogICAgICAgICAgICA6IGFycmF5KCk7DQogICAgICAgIC8vIGlmIG1pbmlmaWVyIG5vdCBzZXQsIGRlZmF1bHQgaXMgbm8gbWluaWZpY2F0aW9uLiBzb3VyY2Ugb2JqZWN0cw0KICAgICAgICAvLyBtYXkgc3RpbGwgb3ZlcnJpZGUgdGhpcw0KICAgICAgICAkZGVmYXVsdE1pbmlmaWVyID0gaXNzZXQoc2VsZjo6JF9vcHRpb25zWydtaW5pZmllcnMnXVskdHlwZV0pDQogICAgICAgICAgICA/IHNlbGY6OiRfb3B0aW9uc1snbWluaWZpZXJzJ11bJHR5cGVdDQogICAgICAgICAgICA6IGZhbHNlOw0KICAgICAgIA0KICAgICAgICBpZiAoTWluaWZ5X1NvdXJjZTo6aGF2ZU5vTWluaWZ5UHJlZnMoc2VsZjo6JF9jb250cm9sbGVyLT5zb3VyY2VzKSkgew0KICAgICAgICAgICAgLy8gYWxsIHNvdXJjZSBoYXZlIHNhbWUgb3B0aW9ucy9taW5pZmllciwgYmV0dGVyIHBlcmZvcm1hbmNlDQogICAgICAgICAgICAvLyB0byBjb21iaW5lLCB0aGVuIG1pbmlmeSBvbmNlDQogICAgICAgICAgICBmb3JlYWNoIChzZWxmOjokX2NvbnRyb2xsZXItPnNvdXJjZXMgYXMgJHNvdXJjZSkgew0KICAgICAgICAgICAgICAgICRwaWVjZXNbXSA9ICRzb3VyY2UtPmdldENvbnRlbnQoKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgICRjb250ZW50ID0gaW1wbG9kZSgkaW1wbG9kZVNlcGFyYXRvciwgJHBpZWNlcyk7DQogICAgICAgICAgICBpZiAoJGRlZmF1bHRNaW5pZmllcikgew0KICAgICAgICAgICAgICAgIHNlbGY6OiRfY29udHJvbGxlci0+bG9hZE1pbmlmaWVyKCRkZWZhdWx0TWluaWZpZXIpOw0KICAgICAgICAgICAgICAgICRjb250ZW50ID0gY2FsbF91c2VyX2Z1bmMoJGRlZmF1bHRNaW5pZmllciwgJGNvbnRlbnQsICRkZWZhdWx0T3B0aW9ucyk7ICAgIA0KICAgICAgICAgICAgfQ0KICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgLy8gbWluaWZ5IGVhY2ggc291cmNlIHdpdGggaXRzIG93biBvcHRpb25zIGFuZCBtaW5pZmllciwgdGhlbiBjb21iaW5lDQogICAgICAgICAgICBmb3JlYWNoIChzZWxmOjokX2NvbnRyb2xsZXItPnNvdXJjZXMgYXMgJHNvdXJjZSkgew0KICAgICAgICAgICAgICAgIC8vIGFsbG93IHRoZSBzb3VyY2UgdG8gb3ZlcnJpZGUgb3VyIG1pbmlmaWVyIGFuZCBvcHRpb25zDQogICAgICAgICAgICAgICAgJG1pbmlmaWVyID0gKG51bGwgIT09ICRzb3VyY2UtPm1pbmlmaWVyKQ0KICAgICAgICAgICAgICAgICAgICA/ICRzb3VyY2UtPm1pbmlmaWVyDQogICAgICAgICAgICAgICAgICAgIDogJGRlZmF1bHRNaW5pZmllcjsNCiAgICAgICAgICAgICAgICAkb3B0aW9ucyA9IChudWxsICE9PSAkc291cmNlLT5taW5pZnlPcHRpb25zKQ0KICAgICAgICAgICAgICAgICAgICA/IGFycmF5X21lcmdlKCRkZWZhdWx0T3B0aW9ucywgJHNvdXJjZS0+bWluaWZ5T3B0aW9ucykNCiAgICAgICAgICAgICAgICAgICAgOiAkZGVmYXVsdE9wdGlvbnM7DQogICAgICAgICAgICAgICAgaWYgKCRkZWZhdWx0TWluaWZpZXIpIHsNCiAgICAgICAgICAgICAgICAgICAgc2VsZjo6JF9jb250cm9sbGVyLT5sb2FkTWluaWZpZXIoJG1pbmlmaWVyKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gZ2V0IHNvdXJjZSBjb250ZW50IGFuZCBtaW5pZnkgaXQNCiAgICAgICAgICAgICAgICAgICAgJHBpZWNlc1tdID0gY2FsbF91c2VyX2Z1bmMoJG1pbmlmaWVyLCAkc291cmNlLT5nZXRDb250ZW50KCksICRvcHRpb25zKTsgICAgIA0KICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICRwaWVjZXNbXSA9ICRzb3VyY2UtPmdldENvbnRlbnQoKTsgICAgIA0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgICRjb250ZW50ID0gaW1wbG9kZSgkaW1wbG9kZVNlcGFyYXRvciwgJHBpZWNlcyk7DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIC8vIGRvIGFueSBwb3N0LXByb2Nlc3NpbmcgKGVzcC4gZm9yIGVkaXRpbmcgYnVpbGQgVVJJcykNCiAgICAgICAgaWYgKHNlbGY6OiRfb3B0aW9uc1sncG9zdHByb2Nlc3NvclJlcXVpcmUnXSkgew0KICAgICAgICAgICAgcmVxdWlyZV9vbmNlIHNlbGY6OiRfb3B0aW9uc1sncG9zdHByb2Nlc3NvclJlcXVpcmUnXTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoc2VsZjo6JF9vcHRpb25zWydwb3N0cHJvY2Vzc29yJ10pIHsNCiAgICAgICAgICAgICRjb250ZW50ID0gY2FsbF91c2VyX2Z1bmMoc2VsZjo6JF9vcHRpb25zWydwb3N0cHJvY2Vzc29yJ10sICRjb250ZW50LCAkdHlwZSk7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuICRjb250ZW50Ow0KICAgIH0NCiAgICANCiAgICAvKioNCiAgICAgKiBNYWtlIGEgdW5pcXVlIGNhY2hlIGlkIGZvciBmb3IgdGhpcyByZXF1ZXN0Lg0KICAgICAqIA0KICAgICAqIEFueSBzZXR0aW5ncyB0aGF0IGNvdWxkIGFmZmVjdCBvdXRwdXQgYXJlIHRha2VuIGludG8gY29uc2lkZXJhdGlvbiAgDQogICAgICoNCiAgICAgKiBAcmV0dXJuIHN0cmluZw0KICAgICAqLw0KICAgIHByb3RlY3RlZCBzdGF0aWMgZnVuY3Rpb24gX2dldENhY2hlSWQoKSB7DQogICAgICAgIHJldHVybiBtZDUoc2VyaWFsaXplKGFycmF5KA0KICAgICAgICAgICAgTWluaWZ5X1NvdXJjZTo6Z2V0RGlnZXN0KHNlbGY6OiRfY29udHJvbGxlci0+c291cmNlcykNCiAgICAgICAgICAgICxzZWxmOjokX29wdGlvbnNbJ21pbmlmaWVycyddIA0KICAgICAgICAgICAgLHNlbGY6OiRfb3B0aW9uc1snbWluaWZpZXJPcHRpb25zJ10NCiAgICAgICAgKSkpOw0KICAgIH0gICAgDQp9DQo=]]></data>
	</file>
	<file>
	  <filename>/lib/Minify/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/Minify/Cache/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/Minify/Cache/_notes/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/Minify/Cache/_notes/dwsync.xml</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiID8+DQo8ZHdzeW5jPg0KPGZpbGUgbmFtZT0iRmlsZS5waHAiIHNlcnZlcj0id3d3LnNqcm1jLm9yZyIgbG9jYWw9IjEyODYyNzQxMTQwMDAwMDAwMCIgcmVtb3RlPSIxMjg2Mjc0MTE0MDAwMDAwMDAiIC8+DQo8L2R3c3luYz4=]]></data>
	</file>
	<file>
	  <filename>/lib/Minify/Controller/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/Minify/Controller/_notes/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/Minify/Controller/_notes/dwsync.xml</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiID8+DQo8ZHdzeW5jPg0KPGZpbGUgbmFtZT0iQmFzZS5waHAiIHNlcnZlcj0id3d3LnNqcm1jLm9yZyIgbG9jYWw9IjEyODYyNzQxMTQwMDAwMDAwMCIgcmVtb3RlPSIxMjg2Mjc0MTE0MDAwMDAwMDAiIC8+DQo8ZmlsZSBuYW1lPSJGaWxlcy5waHAiIHNlcnZlcj0id3d3LnNqcm1jLm9yZyIgbG9jYWw9IjEyODYyNzQxMTQwMDAwMDAwMCIgcmVtb3RlPSIxMjg2Mjc0MTE0MDAwMDAwMDAiIC8+DQo8ZmlsZSBuYW1lPSJHcm91cHMucGhwIiBzZXJ2ZXI9Ind3dy5zanJtYy5vcmciIGxvY2FsPSIxMjg2Mjc0MTE0MDAwMDAwMDAiIHJlbW90ZT0iMTI4NjI3NDExNDAwMDAwMDAwIiAvPg0KPGZpbGUgbmFtZT0iUGFnZS5waHAiIHNlcnZlcj0id3d3LnNqcm1jLm9yZyIgbG9jYWw9IjEyODYyNzQxMTQwMDAwMDAwMCIgcmVtb3RlPSIxMjg2Mjc0MTE0MDAwMDAwMDAiIC8+DQo8ZmlsZSBuYW1lPSJWZXJzaW9uMS5waHAiIHNlcnZlcj0id3d3LnNqcm1jLm9yZyIgbG9jYWw9IjEyODYyNzQxMTQwMDAwMDAwMCIgcmVtb3RlPSIxMjg2Mjc0MTE0MDAwMDAwMDAiIC8+DQo8L2R3c3luYz4=]]></data>
	</file>
	<file>
	  <filename>/lib/Minify/CSS.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCi8qKg0KICogQ2xhc3MgTWluaWZ5X0NTUyAgDQogKiBAcGFja2FnZSBNaW5pZnkNCiAqLw0KDQovKioNCiAqIENvbXByZXNzIENTUw0KICoNCiAqIFRoaXMgaXMgYSBoZWF2eSByZWdleC1iYXNlZCByZW1vdmFsIG9mIHdoaXRlc3BhY2UsIHVubmVjZXNzYXJ5DQogKiBjb21tZW50cyBhbmQgdG9rZW5zLCBhbmQgc29tZSBDU1MgdmFsdWUgbWluaW1pemF0aW9uLCB3aGVyZSBwcmFjdGljYWwuDQogKiBNYW55IHN0ZXBzIGhhdmUgYmVlbiB0YWtlbiB0byBhdm9pZCBicmVha2luZyBjb21tZW50LWJhc2VkIGhhY2tzLCANCiAqIGluY2x1ZGluZyB0aGUgaWU1L21hYyBmaWx0ZXIgKGFuZCBpdHMgaW52ZXJzaW9uKSwgYnV0IGV4cGVjdCB0cmlja3kNCiAqIGhhY2tzIGludm9sdmluZyBjb21tZW50IHRva2VucyBpbiAnY29udGVudCcgdmFsdWUgc3RyaW5ncyB0byBicmVhaw0KICogbWluaW1pemF0aW9uIGJhZGx5LiBBIHRlc3Qgc3VpdGUgaXMgYXZhaWxhYmxlLg0KICogDQogKiBAcGFja2FnZSBNaW5pZnkNCiAqIEBhdXRob3IgU3RlcGhlbiBDbGF5IDxzdGV2ZUBtcmNsYXkub3JnPg0KICovDQpjbGFzcyBNaW5pZnlfQ1NTIHsNCiAgICANCiAgICAvKioNCiAgICAgKiBNaW5pZnkgYSBDU1Mgc3RyaW5nDQogICAgICogDQogICAgICogQHBhcmFtIHN0cmluZyAkY3NzDQogICAgICogDQogICAgICogQHBhcmFtIGFycmF5ICRvcHRpb25zIGF2YWlsYWJsZSBvcHRpb25zOg0KICAgICAqIA0KICAgICAqICdwcmVzZXJ2ZUNvbW1lbnRzJzogKGRlZmF1bHQgdHJ1ZSkgbXVsdGktbGluZSBjb21tZW50cyB0aGF0IGJlZ2luDQogICAgICogd2l0aCAiLyohIiB3aWxsIGJlIHByZXNlcnZlZCB3aXRoIG5ld2xpbmVzIGJlZm9yZSBhbmQgYWZ0ZXIgdG8NCiAgICAgKiBlbmhhbmNlIHJlYWRhYmlsaXR5Lg0KICAgICAqIA0KICAgICAqIEByZXR1cm4gc3RyaW5nDQogICAgICovDQogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBtaW5pZnkoJGNzcywgJG9wdGlvbnMgPSBhcnJheSgpKSANCiAgICB7DQogICAgICAgIGlmIChpc3NldCgkb3B0aW9uc1sncHJlc2VydmVDb21tZW50cyddKSANCiAgICAgICAgICAgICYmICEkb3B0aW9uc1sncHJlc2VydmVDb21tZW50cyddKSB7DQogICAgICAgICAgICByZXR1cm4gc2VsZjo6X21pbmlmeSgkY3NzLCAkb3B0aW9ucyk7ICAgIA0KICAgICAgICB9DQogICAgICAgICRyZXQgPSAnJzsNCiAgICAgICAgd2hpbGUgKDEpIHsNCiAgICAgICAgICAgIGxpc3QoJGJlZm9yZUNvbW1lbnQsICRjb21tZW50LCAkYWZ0ZXJDb21tZW50KQ0KICAgICAgICAgICAgICAgID0gc2VsZjo6X25leHRZdWlDb21tZW50KCRjc3MpOw0KICAgICAgICAgICAgJHJldCAuPSBzZWxmOjpfbWluaWZ5KCRiZWZvcmVDb21tZW50LCAkb3B0aW9ucyk7DQogICAgICAgICAgICBpZiAoZmFsc2UgPT09ICRjb21tZW50KSB7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAkcmV0IC49ICRjb21tZW50Ow0KICAgICAgICAgICAgJGNzcyA9ICRhZnRlckNvbW1lbnQ7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuICRyZXQ7DQogICAgfQ0KDQogICAgLyoqDQogICAgICogRXh0cmFjdCBjb21tZW50cyB0aGF0IFlVSSBDb21wcmVzc29yIHByZXNlcnZlcy4NCiAgICAgKiANCiAgICAgKiBAcGFyYW0gc3RyaW5nICRpbiBpbnB1dA0KICAgICAqIA0KICAgICAqIEByZXR1cm4gYXJyYXkgMyBlbGVtZW50cyBhcmUgcmV0dXJuZWQuIElmIGEgWVVJIGNvbW1lbnQgaXMgZm91bmQsIHRoZQ0KICAgICAqIDJuZCBlbGVtZW50IGlzIHRoZSBjb21tZW50IGFuZCB0aGUgMXN0IGFuZCAybmQgYXJlIHRoZSBzdXJyb3VuZGluZw0KICAgICAqIHN0cmluZ3MuIElmIG5vIGNvbW1lbnQgaXMgZm91bmQsIHRoZSBlbnRpcmUgc3RyaW5nIGlzIHJldHVybmVkIGFzIHRoZSANCiAgICAgKiAxc3QgZWxlbWVudCBhbmQgdGhlIG90aGVyIHR3byBhcmUgZmFsc2UuDQogICAgICovDQogICAgcHJpdmF0ZSBzdGF0aWMgZnVuY3Rpb24gX25leHRZdWlDb21tZW50KCRpbikNCiAgICB7DQogICAgICAgIHJldHVybiAoDQogICAgICAgICAgICAoZmFsc2UgIT09ICgkc3RhcnQgPSBzdHJwb3MoJGluLCAnLyohJykpKQ0KICAgICAgICAgICAgJiYgKGZhbHNlICE9PSAoJGVuZCA9IHN0cnBvcygkaW4sICcqLycsICRzdGFydCArIDMpKSkNCiAgICAgICAgKQ0KICAgICAgICAgICAgPyBhcnJheSgNCiAgICAgICAgICAgICAgICBzdWJzdHIoJGluLCAwLCAkc3RhcnQpDQogICAgICAgICAgICAgICAgLCJcbi8qIiAuIHN1YnN0cigkaW4sICRzdGFydCArIDMsICRlbmQgLSAkc3RhcnQgLSAxKSAuICJcbiINCiAgICAgICAgICAgICAgICAsc3Vic3RyKCRpbiwgLShzdHJsZW4oJGluKSAtICRlbmQgLSAyKSkNCiAgICAgICAgICAgICkNCiAgICAgICAgICAgIDogYXJyYXkoJGluLCBmYWxzZSwgZmFsc2UpOw0KICAgIH0NCiAgICANCiAgICAvKioNCiAgICAgKiBNaW5pZnkgYSBDU1Mgc3RyaW5nDQogICAgICogDQogICAgICogQHBhcmFtIHN0cmluZyAkY3NzDQogICAgICogDQogICAgICogQHBhcmFtIGFycmF5ICRvcHRpb25zIFRvIGVuYWJsZSBVUkwgcmV3cml0aW5nLCBzZXQgdGhlIHZhbHVlDQogICAgICogZm9yIGtleSAncHJlcGVuZFJlbGF0aXZlUGF0aCcuDQogICAgICogDQogICAgICogQHJldHVybiBzdHJpbmcNCiAgICAgKi8NCiAgICBwcm90ZWN0ZWQgc3RhdGljIGZ1bmN0aW9uIF9taW5pZnkoJGNzcywgJG9wdGlvbnMpIA0KICAgIHsNCiAgICAgICAgLy8gcHJlc2VydmUgZW1wdHkgY29tbWVudCBhZnRlciAnPicNCiAgICAgICAgLy8gaHR0cDovL3d3dy53ZWJkZXZvdXQubmV0L2Nzcy1oYWNrcyNpbl9jc3Mtc2VsZWN0b3JzDQogICAgICAgICRjc3MgPSBwcmVnX3JlcGxhY2UoJy8+XFwvXFwqXFxzKlxcKlxcLy8nLCAnPi8qa2VlcCovJywgJGNzcyk7DQogICAgICAgIA0KICAgICAgICAvLyBwcmVzZXJ2ZSBlbXB0eSBjb21tZW50IGJldHdlZW4gcHJvcGVydHkgYW5kIHZhbHVlDQogICAgICAgIC8vIGh0dHA6Ly9jc3MtZGlzY3Vzcy5pbmN1dGlvLmNvbS8/cGFnZT1Cb3hNb2RlbEhhY2sNCiAgICAgICAgJGNzcyA9IHByZWdfcmVwbGFjZSgnL1xcL1xcKlxccypcXCpcXC9cXHMqOi8nLCAnLyprZWVwKi86JywgJGNzcyk7DQogICAgICAgICRjc3MgPSBwcmVnX3JlcGxhY2UoJy86XFxzKlxcL1xcKlxccypcXCpcXC8vJywgJzovKmtlZXAqLycsICRjc3MpOw0KICAgICAgICANCiAgICAgICAgLy8gYXBwbHkgY2FsbGJhY2sgdG8gYWxsIHZhbGlkIGNvbW1lbnRzIChhbmQgc3RyaXAgb3V0IHN1cnJvdW5kaW5nIHdzDQogICAgICAgIHNlbGY6OiRfaW5IYWNrID0gZmFsc2U7DQogICAgICAgICRjc3MgPSBwcmVnX3JlcGxhY2VfY2FsbGJhY2soJy9cXHMqXFwvXFwqKFtcXHNcXFNdKj8pXFwqXFwvXFxzKi8nDQogICAgICAgICAgICAsYXJyYXkoJ01pbmlmeV9DU1MnLCAnX2NvbW1lbnRDQicpLCAkY3NzKTsNCg0KICAgICAgICAvLyBjb21wcmVzcyB3aGl0ZXNwYWNlLg0KICAgICAgICAkY3NzID0gcHJlZ19yZXBsYWNlKCcvXHMrLycsICcgJywgJGNzcyk7DQoNCiAgICAgICAgLy8gbGVhdmUgbmVlZGVkIGNvbW1lbnRzDQogICAgICAgICRjc3MgPSBzdHJfcmVwbGFjZSgnLyprZWVwKi8nLCAnLyoqLycsICRjc3MpOw0KICAgICAgICANCiAgICAgICAgLy8gcmVtb3ZlIHdzIGFyb3VuZCB7IH0NCiAgICAgICAgJGNzcyA9IHByZWdfcmVwbGFjZSgnL1xccyp7XFxzKi8nLCAneycsICRjc3MpOw0KICAgICAgICAkY3NzID0gcHJlZ19yZXBsYWNlKCcvOz9cXHMqfVxccyovJywgJ30nLCAkY3NzKTsNCiAgICAgICAgDQogICAgICAgIC8vIHJlbW92ZSB3cyBiZXR3ZWVuIHJ1bGVzDQogICAgICAgICRjc3MgPSBwcmVnX3JlcGxhY2UoJy9cXHMqO1xccyovJywgJzsnLCAkY3NzKTsNCiAgICAgICAgDQogICAgICAgIC8vIHJlbW92ZSB3cyBhcm91bmQgdXJscw0KICAgICAgICAkY3NzID0gcHJlZ19yZXBsYWNlKCcvdXJsXFwoW1xcc10qKFteXFwpXSs/KVtcXHNdKlxcKS8nLCAndXJsKCQxKScsICRjc3MpOw0KICAgICAgICANCiAgICAgICAgLy8gcmVtb3ZlIHdzIGJldHdlZW4gcnVsZXMgYW5kIGNvbG9ucw0KICAgICAgICAkY3NzID0gcHJlZ19yZXBsYWNlKCcvXFxzKihbeztdKVxccyooW1xcd1xcLV0rKVxccyo6XFxzKlxcYi8nLCAnJDEkMjonLCAkY3NzKTsNCiAgICAgICAgDQogICAgICAgIC8vIHJlbW92ZSB3cyBpbiBzZWxlY3RvcnMNCiAgICAgICAgJGNzcyA9IHByZWdfcmVwbGFjZV9jYWxsYmFjaygnLyg/OlxccypbXn4+KyxcXHNdK1xccypbLD4rfl0pK1xccypbXn4+KyxcXHNdK3svJw0KICAgICAgICAgICAgLGFycmF5KCdNaW5pZnlfQ1NTJywgJ19zZWxlY3RvcnNDQicpLCAkY3NzKTsNCiAgICAgICAgDQogICAgICAgIC8vIG1pbmltaXplIGhleCBjb2xvcnMNCiAgICAgICAgJGNzcyA9IHByZWdfcmVwbGFjZSgnLyhbXj1dKSMoW2EtZlxcZF0pXFwyKFthLWZcXGRdKVxcMyhbYS1mXFxkXSlcXDQoW1xccztcXH1dKS9pJw0KICAgICAgICAgICAgLCAnJDEjJDIkMyQ0JDUnLCAkY3NzKTsNCiAgICAgICAgDQogICAgICAgICRyZXdyaXRlID0gZmFsc2U7DQogICAgICAgIGlmIChpc3NldCgkb3B0aW9uc1sncHJlcGVuZFJlbGF0aXZlUGF0aCddKSkgew0KICAgICAgICAgICAgc2VsZjo6JF90ZW1wUHJlcGVuZCA9ICRvcHRpb25zWydwcmVwZW5kUmVsYXRpdmVQYXRoJ107DQogICAgICAgICAgICAkcmV3cml0ZSA9IHRydWU7DQogICAgICAgIH0gZWxzZWlmIChpc3NldCgkb3B0aW9uc1snY3VycmVudFBhdGgnXSkpIHsNCiAgICAgICAgICAgIHNlbGY6OiRfdGVtcEN1cnJlbnRQYXRoID0gJG9wdGlvbnNbJ2N1cnJlbnRQYXRoJ107DQogICAgICAgICAgICAkcmV3cml0ZSA9IHRydWU7DQogICAgICAgIH0NCiAgICAgICAgaWYgKCRyZXdyaXRlKSB7DQogICAgICAgICAgICAkY3NzID0gcHJlZ19yZXBsYWNlX2NhbGxiYWNrKCcvQGltcG9ydCAoW1wnIl0pKC4qPylbXCciXVxccyo7LycNCiAgICAgICAgICAgICAgICAsYXJyYXkoJ01pbmlmeV9DU1MnLCAnX3VybENCJyksICRjc3MpOw0KICAgICAgICAgICAgJGNzcyA9IHByZWdfcmVwbGFjZV9jYWxsYmFjaygnL3VybFxcKChbXlxcKV0rKVxcKS8nDQogICAgICAgICAgICAgICAgLGFycmF5KCdNaW5pZnlfQ1NTJywgJ191cmxDQicpLCAkY3NzKTsNCiAgICAgICAgfQ0KICAgICAgICBzZWxmOjokX3RlbXBQcmVwZW5kID0gc2VsZjo6JF90ZW1wQ3VycmVudFBhdGggPSAnJzsNCiAgICAgICAgcmV0dXJuIHRyaW0oJGNzcyk7DQogICAgfQ0KICAgIA0KICAgIC8qKg0KICAgICAqIEB2YXIgYm9vbCBBcmUgd2UgImluIiBhIGhhY2s/IA0KICAgICAqIA0KICAgICAqIEkuZS4gYXJlIHNvbWUgYnJvd3NlcnMgdGFyZ2V0dGVkIHVudGlsIHRoZSBuZXh0IGNvbW1lbnQ/ICAgDQogICAgICovDQogICAgcHJvdGVjdGVkIHN0YXRpYyAkX2luSGFjayA9IGZhbHNlOw0KICAgIA0KICAgIC8qKg0KICAgICAqIEB2YXIgc3RyaW5nIHN0cmluZyB0byBiZSBwcmVwZW5kZWQgdG8gcmVsYXRpdmUgVVJJcyAgIA0KICAgICAqLw0KICAgIHByb3RlY3RlZCBzdGF0aWMgJF90ZW1wUHJlcGVuZCA9ICcnOw0KICAgIA0KICAgIC8qKg0KICAgICAqIEB2YXIgc3RyaW5nIHBhdGggb2YgdGhpcyBzdHlsZXNoZWV0IGZvciByZXdyaXRpbmcgcHVycG9zZXMgICANCiAgICAgKi8NCiAgICBwcm90ZWN0ZWQgc3RhdGljICRfdGVtcEN1cnJlbnRQYXRoID0gJyc7DQogICAgDQogICAgLyoqDQogICAgICogUHJvY2VzcyB3aGF0IGxvb2tzIGxpa2UgYSBjb21tZW50IGFuZCByZXR1cm4gYSByZXBsYWNlbWVudA0KICAgICAqIA0KICAgICAqIEBwYXJhbSBhcnJheSAkbSByZWdleCBtYXRjaGVzDQogICAgICogDQogICAgICogQHJldHVybiBzdHJpbmcgICANCiAgICAgKi8NCiAgICBwcm90ZWN0ZWQgc3RhdGljIGZ1bmN0aW9uIF9jb21tZW50Q0IoJG0pDQogICAgew0KICAgICAgICAkbSA9ICRtWzFdOyANCiAgICAgICAgLy8gJG0gaXMgZXZlcnl0aGluZyBhZnRlciB0aGUgb3BlbmluZyB0b2tlbnMgYW5kIGJlZm9yZSB0aGUgY2xvc2luZyANCiAgICAgICAgLy8gdG9rZW5zIGJ1dCByZXR1cm4gd2lsbCByZXBsYWNlIHRoZSBlbnRpcmUgY29tbWVudC4NCiAgICAgICAgaWYgKCRtID09PSAna2VlcCcpIHsNCiAgICAgICAgICAgIHJldHVybiAnLyprZWVwKi8nOw0KICAgICAgICB9DQogICAgICAgIGlmIChzZWxmOjokX2luSGFjaykgew0KICAgICAgICAgICAgLy8gaW52ZXJzaW9uOiBmZWVkaW5nIG9ubHkgdG8gb25lIGJyb3dzZXINCiAgICAgICAgICAgIGlmIChwcmVnX21hdGNoKCcvXlxcL1xccyooXFxTW1xcc1xcU10rPylcXHMqXFwvXFwqLycsICRtLCAkbikpIHsNCiAgICAgICAgICAgICAgICBzZWxmOjokX2luSGFjayA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIHJldHVybiAiLyoveyRuWzFdfS8qa2VlcCovIjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICBpZiAoc3Vic3RyKCRtLCAtMSkgPT09ICdcXCcpIHsNCiAgICAgICAgICAgIHNlbGY6OiRfaW5IYWNrID0gdHJ1ZTsNCiAgICAgICAgICAgIHJldHVybiAnLypcXCovJzsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoJG1bMF0gPT09ICcvJykgew0KICAgICAgICAgICAgc2VsZjo6JF9pbkhhY2sgPSB0cnVlOw0KICAgICAgICAgICAgcmV0dXJuICcvKi8qLyc7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNlbGY6OiRfaW5IYWNrKSB7DQogICAgICAgICAgICBzZWxmOjokX2luSGFjayA9IGZhbHNlOw0KICAgICAgICAgICAgcmV0dXJuICcvKmtlZXAqLyc7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuICcnOw0KICAgIH0NCiAgICANCiAgICAvKioNCiAgICAgKiBSZXBsYWNlIHdoYXQgbG9va3MgbGlrZSBhIHNldCBvZiBzZWxlY3RvcnMgIA0KICAgICAqDQogICAgICogQHBhcmFtIGFycmF5ICRtIHJlZ2V4IG1hdGNoZXMNCiAgICAgKiANCiAgICAgKiBAcmV0dXJuIHN0cmluZw0KICAgICAqLw0KICAgIHByb3RlY3RlZCBzdGF0aWMgZnVuY3Rpb24gX3NlbGVjdG9yc0NCKCRtKQ0KICAgIHsNCiAgICAgICAgcmV0dXJuIHByZWdfcmVwbGFjZSgnL1xccyooWyw+K35dKVxccyovJywgJyQxJywgJG1bMF0pOw0KICAgIH0NCiAgICANCiAgICBwcm90ZWN0ZWQgc3RhdGljIGZ1bmN0aW9uIF91cmxDQigkbSkNCiAgICB7DQogICAgICAgICRpc0ltcG9ydCA9ICgwID09PSBzdHJwb3MoJG1bMF0sICdAaW1wb3J0JykpOw0KICAgICAgICBpZiAoJGlzSW1wb3J0KSB7DQogICAgICAgICAgICAkcXVvdGUgPSAkbVsxXTsNCiAgICAgICAgICAgICR1cmwgPSAkbVsyXTsNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgIC8vICRtWzFdIGlzIHN1cnJvdW5kZWQgYnkgcXVvdGVzIG9yIG5vdA0KICAgICAgICAgICAgJHF1b3RlID0gKCRtWzFdWzBdID09PSAnXCcnIHx8ICRtWzFdWzBdID09PSAnIicpDQogICAgICAgICAgICAgICAgPyAkbVsxXVswXQ0KICAgICAgICAgICAgICAgIDogJyc7DQogICAgICAgICAgICAkdXJsID0gKCRxdW90ZSA9PT0gJycpDQogICAgICAgICAgICAgICAgPyAkbVsxXQ0KICAgICAgICAgICAgICAgIDogc3Vic3RyKCRtWzFdLCAxLCBzdHJsZW4oJG1bMV0pIC0gMik7DQogICAgICAgIH0NCiAgICAgICAgaWYgKCcvJyAhPT0gJHVybFswXSkgew0KICAgICAgICAgICAgaWYgKHN0cnBvcygkdXJsLCAnLy8nKSA+IDApIHsNCiAgICAgICAgICAgICAgICAvLyBwcm9iYWJseSBzdGFydHMgd2l0aCBwcm90b2NvbCwgZG8gbm90IGFsdGVyDQogICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgIC8vIHJlbGF0aXZlIFVSSSwgcmV3cml0ZSENCiAgICAgICAgICAgICAgICBpZiAoc2VsZjo6JF90ZW1wUHJlcGVuZCkgew0KICAgICAgICAgICAgICAgICAgICAkdXJsID0gc2VsZjo6JF90ZW1wUHJlcGVuZCAuICR1cmw7ICAgIA0KICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIC8vIHJld3JpdGUgYWJzb2x1dGUgdXJsIGZyb20gc2NyYXRjaCENCiAgICAgICAgICAgICAgICAgICAgLy8gcHJlcGVuZCBwYXRoIHdpdGggY3VycmVudCBkaXIgc2VwYXJhdG9yIChPUy1pbmRlcGVuZGVudCkNCiAgICAgICAgICAgICAgICAgICAgJHBhdGggPSBzZWxmOjokX3RlbXBDdXJyZW50UGF0aCANCiAgICAgICAgICAgICAgICAgICAgICAgIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuIHN0cnRyKCR1cmwsICcvJywgRElSRUNUT1JZX1NFUEFSQVRPUik7DQogICAgICAgICAgICAgICAgICAgIC8vIHN0cmlwIGRvYyByb290DQogICAgICAgICAgICAgICAgICAgICRwYXRoID0gc3Vic3RyKCRwYXRoLCBzdHJsZW4oJF9TRVJWRVJbJ0RPQ1VNRU5UX1JPT1QnXSkpOw0KICAgICAgICAgICAgICAgICAgICAvLyBmaXggdG8gYWJzb2x1dGUgVVJMDQogICAgICAgICAgICAgICAgICAgICR1cmwgPSBzdHJ0cigkcGF0aCwgRElSRUNUT1JZX1NFUEFSQVRPUiwgJy8nKTsNCiAgICAgICAgICAgICAgICAgICAgJHVybCA9IHN0cl9yZXBsYWNlKCcvLi8nLCAnLycsICR1cmwpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICBpZiAoJGlzSW1wb3J0KSB7DQogICAgICAgICAgICByZXR1cm4gIkBpbXBvcnQgeyRxdW90ZX17JHVybH17JHF1b3RlfTsiOw0KICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgcmV0dXJuICJ1cmwoeyRxdW90ZX17JHVybH17JHF1b3RlfSkiOw0KICAgICAgICB9DQogICAgfQ0KfQ0KDQo=]]></data>
	</file>
	<file>
	  <filename>/lib/Minify/HTML.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCi8qKg0KICogQ2xhc3MgTWluaWZ5X0hUTUwgIA0KICogQHBhY2thZ2UgTWluaWZ5DQogKi8NCg0KLyoqDQogKiBDb21wcmVzcyBIVE1MDQogKg0KICogVGhpcyBpcyBhIGhlYXZ5IHJlZ2V4LWJhc2VkIHJlbW92YWwgb2Ygd2hpdGVzcGFjZSwgdW5uZWNlc3NhcnkNCiAqIGNvbW1lbnRzIGFuZCB0b2tlbnMuDQogKiANCiAqIElFIGNvbmRpdGlvbmFsIGNvbW1lbnRzIGFyZSBwcmVzZXJ2ZWQuIFRoZXJlIGFyZSBhbHNvIG9wdGlvbnMgdG8gaGF2ZSBTVFlMRQ0KICogYW5kIFNDUklQVCBibG9ja3MgY29tcHJlc3NlZCBieSBjYWxsYmFjayBmdW5jdGlvbnMuIEEgdGVzdCBzdWl0ZSBpcyBhdmFpbGFibGUuDQogKiANCiAqIEBwYWNrYWdlIE1pbmlmeQ0KICogQGF1dGhvciBTdGVwaGVuIENsYXkgPHN0ZXZlQG1yY2xheS5vcmc+DQogKi8NCmNsYXNzIE1pbmlmeV9IVE1MIHsNCiAgICANCiAgICAvKioNCiAgICAgKiAiTWluaWZ5IiBhbiBIVE1MIHBhZ2UNCiAgICAgKg0KICAgICAqIEB0b2RvOiBUbyBhbHNvIG1pbmlmeSBlbWJlZGRlZCBKYXZhc2NyaXB0L0NTUywgeW91IG11c3QuLi4NCiAgICAgKiANCiAgICAgKi8NCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIG1pbmlmeSgkc3RyaW5nLCAkb3B0aW9ucyA9IGFycmF5KCkpIHsNCiAgICAgICAgDQogICAgICAgIGlmIChpc3NldCgkb3B0aW9uc1snY3NzTWluaWZpZXInXSkpIHsNCiAgICAgICAgICAgIHNlbGY6OiRfY3NzTWluaWZpZXIgPSAkb3B0aW9uc1snY3NzTWluaWZpZXInXTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoaXNzZXQoJG9wdGlvbnNbJ2pzTWluaWZpZXInXSkpIHsNCiAgICAgICAgICAgIHNlbGY6OiRfanNNaW5pZmllciA9ICRvcHRpb25zWydqc01pbmlmaWVyJ107DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgICRodG1sID0gdHJpbSgkc3RyaW5nKTsNCiAgICAgICAgDQogICAgICAgIHNlbGY6OiRfaXNYaHRtbCA9IChmYWxzZSAhPT0gc3RycG9zKCRodG1sLCAnPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCcpKTsNCiAgICAgICAgDQogICAgICAgIHNlbGY6OiRfcmVwbGFjZW1lbnRIYXNoID0gJ01JTklGWUhUTUwnIC4gbWQ1KHRpbWUoKSk7DQogICAgICAgIA0KICAgICAgICAvLyByZW1vdmUgU0NSSVBUcyAoYW5kIG1pbmlmeSkNCiAgICAgICAgJGh0bWwgPSBwcmVnX3JlcGxhY2VfY2FsbGJhY2soJy9cXHMqKDxzY3JpcHRcXGJbXj5dKj8+KShbXFxzXFxTXSo/KTxcXC9zY3JpcHQ+XFxzKi9pJywNCiAgICAgICAgICAgIGFycmF5KCdNaW5pZnlfSFRNTCcsICdfcmVtb3ZlU2NyaXB0Q0InKSwgJGh0bWwpOw0KICAgICAgICANCiAgICAgICAgLy8gcmVtb3ZlIFNUWUxFcyAoYW5kIG1pbmlmeSkNCiAgICAgICAgJGh0bWwgPSBwcmVnX3JlcGxhY2VfY2FsbGJhY2soJy9cXHMqKDxzdHlsZVxcYltePl0qPz4pKFtcXHNcXFNdKj8pPFxcL3N0eWxlPlxccyovaScsDQogICAgICAgICAgICBhcnJheSgnTWluaWZ5X0hUTUwnLCAnX3JlbW92ZVN0eWxlQ0InKSwgJGh0bWwpOw0KICAgICAgICANCiAgICAgICAgLy8gcmVtb3ZlIEhUTUwgY29tbWVudHMgKGJ1dCBub3QgSUUgY29uZGl0aW9uYWwgY29tbWVudHMpLg0KICAgICAgICAkaHRtbCA9IHByZWdfcmVwbGFjZSgnLzwhLS1bXlxcW11bXFxzXFxTXSo/LS0+LycsICcnLCAkaHRtbCk7DQogICAgICAgIA0KICAgICAgICAvLyByZXBsYWNlIFBSRXMgd2l0aCB0b2tlbiB0ZXh0DQogICAgICAgIHNlbGY6OiRfcHJlcyA9IGFycmF5KCk7DQogICAgICAgICRodG1sID0gcHJlZ19yZXBsYWNlX2NhbGxiYWNrKCcvXFxzKig8cHJlXFxiW14+XSo/PltcXHNcXFNdKj88XFwvcHJlPilcXHMqL2knDQogICAgICAgICAgICAsYXJyYXkoJ01pbmlmeV9IVE1MJywgJ19yZW1vdmVQcmVDQicpDQogICAgICAgICAgICAsICRodG1sKTsNCiAgICAgICAgDQogICAgICAgIC8vIHJlbW92ZSBsZWFkaW5nIGFuZCB0cmFpbGluZyB3cyBmcm9tIGVhY2ggbGluZS4NCiAgICAgICAgLy8gQHRvZG8gdGFrZSBpbnRvIGFjY291bnQgYXR0cmlidXRlIHZhbHVlcyB0aGF0IHNwYW4gbXVsdGlwbGUgbGluZXMuDQogICAgICAgICRodG1sID0gcHJlZ19yZXBsYWNlKCcvXlxccyooLio/KVxccyokL20nLCAiJDEiLCAkaHRtbCk7DQogICAgICAgIA0KICAgICAgICAvLyByZW1vdmUgd3MgYXJvdW5kIGJsb2NrL3VuZGlzcGxheWVkIGVsZW1lbnRzDQogICAgICAgICRodG1sID0gcHJlZ19yZXBsYWNlKCcvXFxzKig8XFwvPyg/OmFyZWF8YmFzZSg/OmZvbnQpP3xibG9ja3F1b3RlfGJvZHknDQogICAgICAgICAgICAuJ3xjYXB0aW9ufGNlbnRlcnxjaXRlfGNvbCg/Omdyb3VwKT98ZGR8ZGlyfGRpdnxkbHxkdHxmaWVsZHNldHxmb3JtJw0KICAgICAgICAgICAgLid8ZnJhbWUoPzpzZXQpP3xoWzEtNl18aGVhZHxocnxodG1sfGxlZ2VuZHxsaXxsaW5rfG1hcHxtZW51fG1ldGEnDQogICAgICAgICAgICAuJ3xvbHxvcHQoPzpncm91cHxpb24pfHB8cGFyYW18dCg/OmFibGV8Ym9keXxoZWFkfGR8aHx8cnxmb290KXx0aXRsZScNCiAgICAgICAgICAgIC4nfHVsKVxcYltePl0qPikvaScsICckMScsICRodG1sKTsNCiAgICAgICAgDQogICAgICAgIC8vIHJlbW92ZSB3cyBiZXR3ZWVuIGFuZCBpbnNpZGUgZWxlbWVudHMuDQogICAgICAgICRodG1sID0gcHJlZ19yZXBsYWNlKCcvPlxccysoXFxTW1xcc1xcU10qPyk/PC8nLCAiPiAkMTwiLCAkaHRtbCk7DQogICAgICAgICRodG1sID0gcHJlZ19yZXBsYWNlKCcvPihcXFNbXFxzXFxTXSo/KT9cXHMrPC8nLCAiPiQxIDwiLCAkaHRtbCk7DQogICAgICAgICRodG1sID0gcHJlZ19yZXBsYWNlKCcvPlxccys8LycsICI+IDwiLCAkaHRtbCk7DQogICAgICAgIA0KICAgICAgICAvLyByZXBsYWNlIFBSRXMNCiAgICAgICAgJGkgPSBjb3VudChzZWxmOjokX3ByZXMpOw0KICAgICAgICB3aGlsZSAoJGkgPiAwKSB7DQogICAgICAgICAgICAkcmVwID0gYXJyYXlfcG9wKHNlbGY6OiRfcHJlcyk7DQogICAgICAgICAgICAkaHRtbCA9IHN0cl9yZXBsYWNlKHNlbGY6OiRfcmVwbGFjZW1lbnRIYXNoIC4gJ1BSRScgLiAkaSwgJHJlcCwgJGh0bWwpOw0KICAgICAgICAgICAgJGktLTsNCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgLy8gcmVwbGFjZSBTQ1JJUFRzDQogICAgICAgICRpID0gY291bnQoc2VsZjo6JF9zY3JpcHRzKTsNCiAgICAgICAgd2hpbGUgKCRpID4gMCkgew0KICAgICAgICAgICAgJHJlcCA9IGFycmF5X3BvcChzZWxmOjokX3NjcmlwdHMpOw0KICAgICAgICAgICAgJGh0bWwgPSBzdHJfcmVwbGFjZShzZWxmOjokX3JlcGxhY2VtZW50SGFzaCAuICdTQ1JJUFQnIC4gJGksICRyZXAsICRodG1sKTsNCiAgICAgICAgICAgICRpLS07DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIC8vIHJlcGxhY2UgU1RZTEVzDQogICAgICAgICRpID0gY291bnQoc2VsZjo6JF9zdHlsZXMpOw0KICAgICAgICB3aGlsZSAoJGkgPiAwKSB7DQogICAgICAgICAgICAkcmVwID0gYXJyYXlfcG9wKHNlbGY6OiRfc3R5bGVzKTsNCiAgICAgICAgICAgICRodG1sID0gc3RyX3JlcGxhY2Uoc2VsZjo6JF9yZXBsYWNlbWVudEhhc2ggLiAnU1RZTEUnIC4gJGksICRyZXAsICRodG1sKTsNCiAgICAgICAgICAgICRpLS07DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIHNlbGY6OiRfY3NzTWluaWZpZXIgPSBzZWxmOjokX2pzTWluaWZpZXIgPSBudWxsOw0KICAgICAgICByZXR1cm4gJGh0bWw7DQogICAgfQ0KDQogICAgcHJvdGVjdGVkIHN0YXRpYyAkX2lzWGh0bWwgPSBmYWxzZTsNCiAgICBwcm90ZWN0ZWQgc3RhdGljICRfcmVwbGFjZW1lbnRIYXNoID0gbnVsbDsNCiAgICBwcm90ZWN0ZWQgc3RhdGljICRfcHJlcyA9IGFycmF5KCk7DQogICAgcHJvdGVjdGVkIHN0YXRpYyAkX3NjcmlwdHMgPSBhcnJheSgpOw0KICAgIHByb3RlY3RlZCBzdGF0aWMgJF9zdHlsZXMgPSBhcnJheSgpOw0KICAgIHByb3RlY3RlZCBzdGF0aWMgJF9jc3NNaW5pZmllciA9IG51bGw7DQogICAgcHJvdGVjdGVkIHN0YXRpYyAkX2pzTWluaWZpZXIgPSBudWxsOw0KDQogICAgcHJvdGVjdGVkIHN0YXRpYyBmdW5jdGlvbiBfcmVtb3ZlUHJlQ0IoJG0pDQogICAgew0KICAgICAgICBzZWxmOjokX3ByZXNbXSA9ICRtWzFdOw0KICAgICAgICByZXR1cm4gc2VsZjo6JF9yZXBsYWNlbWVudEhhc2ggLiAnUFJFJyAuIGNvdW50KHNlbGY6OiRfcHJlcyk7DQogICAgfQ0KDQogICAgcHJvdGVjdGVkIHN0YXRpYyBmdW5jdGlvbiBfcmVtb3ZlU3R5bGVDQigkbSkNCiAgICB7DQogICAgICAgICRvcGVuU3R5bGUgPSAkbVsxXTsNCiAgICAgICAgJGNzcyA9ICRtWzJdOw0KICAgICAgICAvLyByZW1vdmUgSFRNTCBjb21tZW50cw0KICAgICAgICAkY3NzID0gcHJlZ19yZXBsYWNlKCcvKD86Xlxccyo8IS0tfC0tPlxccyokKS8nLCAnJywgJGNzcyk7DQogICAgICAgIA0KICAgICAgICAvLyByZW1vdmUgQ0RBVEEgc2VjdGlvbiBtYXJrZXJzDQogICAgICAgICRjc3MgPSBzZWxmOjpfcmVtb3ZlQ2RhdGEoJGNzcyk7DQogICAgICAgIA0KICAgICAgICAvLyBtaW5pZnkNCiAgICAgICAgJG1pbmlmaWVyID0gc2VsZjo6JF9jc3NNaW5pZmllcg0KICAgICAgICAgICAgPyBzZWxmOjokX2Nzc01pbmlmaWVyDQogICAgICAgICAgICA6ICd0cmltJzsNCiAgICAgICAgJGNzcyA9IGNhbGxfdXNlcl9mdW5jKCRtaW5pZmllciwgJGNzcyk7DQogICAgICAgIA0KICAgICAgICAvLyBzdG9yZQ0KICAgICAgICBzZWxmOjokX3N0eWxlc1tdID0gc2VsZjo6X25lZWRzQ2RhdGEoJGNzcykNCiAgICAgICAgICAgID8gInskb3BlblN0eWxlfS8qPCFbQ0RBVEFbKi97JGNzc30vKl1dPiovPC9zdHlsZT4iDQogICAgICAgICAgICA6ICJ7JG9wZW5TdHlsZX17JGNzc308L3N0eWxlPiI7IA0KICAgICAgICANCiAgICAgICAgDQogICAgICAgIHJldHVybiBzZWxmOjokX3JlcGxhY2VtZW50SGFzaCAuICdTVFlMRScgLiBjb3VudChzZWxmOjokX3N0eWxlcyk7DQogICAgfQ0KDQogICAgcHJvdGVjdGVkIHN0YXRpYyBmdW5jdGlvbiBfcmVtb3ZlU2NyaXB0Q0IoJG0pDQogICAgew0KICAgICAgICAkb3BlblNjcmlwdCA9ICRtWzFdOw0KICAgICAgICAkanMgPSAkbVsyXTsNCiAgICAgICAgDQogICAgICAgIC8vIHJlbW92ZSBIVE1MIGNvbW1lbnRzIChhbmQgZW5kaW5nICIvLyIgaWYgcHJlc2VudCkNCiAgICAgICAgJGpzID0gcHJlZ19yZXBsYWNlKCcvKD86Xlxccyo8IS0tXFxzKnxcXHMqKD86XFwvXFwvKT9cXHMqLS0+XFxzKiQpLycsICcnLCAkanMpOw0KICAgICAgICAgICAgDQogICAgICAgIC8vIHJlbW92ZSBDREFUQSBzZWN0aW9uIG1hcmtlcnMNCiAgICAgICAgJGpzID0gc2VsZjo6X3JlbW92ZUNkYXRhKCRqcyk7DQogICAgICAgIA0KICAgICAgICAvLyBtaW5pZnkNCiAgICAgICAgJG1pbmlmaWVyID0gc2VsZjo6JF9qc01pbmlmaWVyDQogICAgICAgICAgICA/IHNlbGY6OiRfanNNaW5pZmllcg0KICAgICAgICAgICAgOiAndHJpbSc7IA0KICAgICAgICAkanMgPSBjYWxsX3VzZXJfZnVuYygkbWluaWZpZXIsICRqcyk7DQogICAgICAgIA0KICAgICAgICAvLyBzdG9yZQ0KICAgICAgICBzZWxmOjokX3NjcmlwdHNbXSA9IHNlbGY6Ol9uZWVkc0NkYXRhKCRqcykNCiAgICAgICAgICAgID8gInskb3BlblNjcmlwdH0vKjwhW0NEQVRBWyoveyRqc30vKl1dPiovPC9zY3JpcHQ+Ig0KICAgICAgICAgICAgOiAieyRvcGVuU2NyaXB0fXskanN9PC9zY3JpcHQ+IjsNCiAgICAgICAgcmV0dXJuIHNlbGY6OiRfcmVwbGFjZW1lbnRIYXNoIC4gJ1NDUklQVCcgLiBjb3VudChzZWxmOjokX3NjcmlwdHMpOw0KICAgIH0NCg0KICAgIHByb3RlY3RlZCBzdGF0aWMgZnVuY3Rpb24gX3JlbW92ZUNkYXRhKCRzdHIpDQogICAgew0KICAgICAgICByZXR1cm4gKGZhbHNlICE9PSBzdHJwb3MoJHN0ciwgJzwhW0NEQVRBWycpKQ0KICAgICAgICAgICAgPyBzdHJfcmVwbGFjZShhcnJheSgnPCFbQ0RBVEFbJywgJ11dPicpLCAnJywgJHN0cikNCiAgICAgICAgICAgIDogJHN0cjsNCiAgICB9DQogICAgDQogICAgcHJvdGVjdGVkIHN0YXRpYyBmdW5jdGlvbiBfbmVlZHNDZGF0YSgkc3RyKQ0KICAgIHsNCiAgICAgICAgcmV0dXJuIChzZWxmOjokX2lzWGh0bWwgJiYgcHJlZ19tYXRjaCgnLyg/Ols8Jl18XFwtXFwtfFxcXVxcXT4pLycsICRzdHIpKTsNCiAgICB9DQp9DQoNCg==]]></data>
	</file>
	<file>
	  <filename>/lib/Minify/Javascript.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCi8qKg0KICogQ2xhc3MgTWluaWZ5X0phdmFzY3JpcHQgIA0KICogQHBhY2thZ2UgTWluaWZ5DQogKi8NCg0KcmVxdWlyZSAnSlNNaW4ucGhwJzsNCg0KLyoqDQogKiBDb21wcmVzcyBKYXZhc2NyaXB0IHVzaW5nIFJ5YW4gR3JvdmUncyBKU01pbiBjbGFzcw0KICoNCiAqIEBwYWNrYWdlIE1pbmlmeQ0KICogQGF1dGhvciBTdGVwaGVuIENsYXkgPHN0ZXZlQG1yY2xheS5vcmc+DQogKi8NCmNsYXNzIE1pbmlmeV9KYXZhc2NyaXB0IHsNCg0KICAgIC8qKg0KICAgICAqIE1pbmlmeSBhIEphdmFzY3JpcHQgc3RyaW5nDQogICAgICogDQogICAgICogQHBhcmFtIHN0cmluZyAkanMNCiAgICAgKiANCiAgICAgKiBAcGFyYW0gYXJyYXkgJG9wdGlvbnMgYXZhaWxhYmxlIG9wdGlvbnM6DQogICAgICogDQogICAgICogJ3ByZXNlcnZlQ29tbWVudHMnOiAoZGVmYXVsdCB0cnVlKSBtdWx0aS1saW5lIGNvbW1lbnRzIHRoYXQgYmVnaW4NCiAgICAgKiB3aXRoICIvKiEiIHdpbGwgYmUgcHJlc2VydmVkIHdpdGggbmV3bGluZXMgYmVmb3JlIGFuZCBhZnRlciB0bw0KICAgICAqIGVuaGFuY2UgcmVhZGFiaWxpdHkuDQogICAgICogDQogICAgICogQHJldHVybiBzdHJpbmcgDQogICAgICovDQogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBtaW5pZnkoJGpzLCAkb3B0aW9ucyA9IGFycmF5KCkpIA0KICAgIHsNCiAgICAgICAgaWYgKGlzc2V0KCRvcHRpb25zWydwcmVzZXJ2ZUNvbW1lbnRzJ10pIA0KICAgICAgICAgICAgJiYgISRvcHRpb25zWydwcmVzZXJ2ZUNvbW1lbnRzJ10pIHsNCiAgICAgICAgICAgIHJldHVybiB0cmltKEpTTWluOjptaW5pZnkoJGpzKSk7ICAgIA0KICAgICAgICB9DQogICAgICAgICRyZXQgPSAnJzsNCiAgICAgICAgd2hpbGUgKDEpIHsNCiAgICAgICAgICAgIGxpc3QoJGJlZm9yZUNvbW1lbnQsICRjb21tZW50LCAkYWZ0ZXJDb21tZW50KQ0KICAgICAgICAgICAgICAgID0gc2VsZjo6X25leHRZdWlDb21tZW50KCRqcyk7DQogICAgICAgICAgICAkcmV0IC49IHRyaW0oSlNNaW46Om1pbmlmeSgkYmVmb3JlQ29tbWVudCkpOw0KICAgICAgICAgICAgaWYgKGZhbHNlID09PSAkY29tbWVudCkgew0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgJHJldCAuPSAkY29tbWVudDsNCiAgICAgICAgICAgICRqcyA9ICRhZnRlckNvbW1lbnQ7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuICRyZXQ7DQogICAgfQ0KICAgIA0KICAgIC8qKg0KICAgICAqIEV4dHJhY3QgY29tbWVudHMgdGhhdCBZVUkgQ29tcHJlc3NvciBwcmVzZXJ2ZXMuDQogICAgICogDQogICAgICogQHBhcmFtIHN0cmluZyAkaW4gaW5wdXQNCiAgICAgKiANCiAgICAgKiBAcmV0dXJuIGFycmF5IDMgZWxlbWVudHMgYXJlIHJldHVybmVkLiBJZiBhIFlVSSBjb21tZW50IGlzIGZvdW5kLCB0aGUNCiAgICAgKiAybmQgZWxlbWVudCBpcyB0aGUgY29tbWVudCBhbmQgdGhlIDFzdCBhbmQgMm5kIGFyZSB0aGUgc3Vycm91bmRpbmcNCiAgICAgKiBzdHJpbmdzLiBJZiBubyBjb21tZW50IGlzIGZvdW5kLCB0aGUgZW50aXJlIHN0cmluZyBpcyByZXR1cm5lZCBhcyB0aGUgDQogICAgICogMXN0IGVsZW1lbnQgYW5kIHRoZSBvdGhlciB0d28gYXJlIGZhbHNlLg0KICAgICAqLw0KICAgIHByaXZhdGUgc3RhdGljIGZ1bmN0aW9uIF9uZXh0WXVpQ29tbWVudCgkaW4pDQogICAgew0KICAgICAgICByZXR1cm4gKA0KICAgICAgICAgICAgKGZhbHNlICE9PSAoJHN0YXJ0ID0gc3RycG9zKCRpbiwgJy8qIScpKSkNCiAgICAgICAgICAgICYmIChmYWxzZSAhPT0gKCRlbmQgPSBzdHJwb3MoJGluLCAnKi8nLCAkc3RhcnQgKyAzKSkpDQogICAgICAgICkNCiAgICAgICAgICAgID8gYXJyYXkoDQogICAgICAgICAgICAgICAgc3Vic3RyKCRpbiwgMCwgJHN0YXJ0KQ0KICAgICAgICAgICAgICAgICwiXG4vKiIgLiBzdWJzdHIoJGluLCAkc3RhcnQgKyAzLCAkZW5kIC0gJHN0YXJ0IC0gMSkgLiAiXG4iDQogICAgICAgICAgICAgICAgLHN1YnN0cigkaW4sIC0oc3RybGVuKCRpbikgLSAkZW5kIC0gMikpDQogICAgICAgICAgICApDQogICAgICAgICAgICA6IGFycmF5KCRpbiwgZmFsc2UsIGZhbHNlKTsNCiAgICB9DQp9DQoNCg==]]></data>
	</file>
	<file>
	  <filename>/lib/Minify/_notes/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/Minify/_notes/dwsync.xml</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiID8+DQo8ZHdzeW5jPg0KPGZpbGUgbmFtZT0iQnVpbGQucGhwIiBzZXJ2ZXI9Ind3dy5zanJtYy5vcmciIGxvY2FsPSIxMjg2Mjc0MTE0MDAwMDAwMDAiIHJlbW90ZT0iMTI4NjI3NDExNDAwMDAwMDAwIiAvPg0KPGZpbGUgbmFtZT0iQ1NTLnBocCIgc2VydmVyPSJ3d3cuc2pybWMub3JnIiBsb2NhbD0iMTI4NjI3NDExNDAwMDAwMDAwIiByZW1vdGU9IjEyODYyNzQxMTQwMDAwMDAwMCIgLz4NCjxmaWxlIG5hbWU9IkhUTUwucGhwIiBzZXJ2ZXI9Ind3dy5zanJtYy5vcmciIGxvY2FsPSIxMjg2Mjc0MTE0MDAwMDAwMDAiIHJlbW90ZT0iMTI4NjI3NDExNDAwMDAwMDAwIiAvPg0KPGZpbGUgbmFtZT0iSmF2YXNjcmlwdC5waHAiIHNlcnZlcj0id3d3LnNqcm1jLm9yZyIgbG9jYWw9IjEyODYyNzQxMTQwMDAwMDAwMCIgcmVtb3RlPSIxMjg2Mjc0MTE0MDAwMDAwMDAiIC8+DQo8ZmlsZSBuYW1lPSJQYWNrZXIucGhwIiBzZXJ2ZXI9Ind3dy5zanJtYy5vcmciIGxvY2FsPSIxMjg2Mjc0MTE0MDAwMDAwMDAiIHJlbW90ZT0iMTI4NjI3NDExNDAwMDAwMDAwIiAvPg0KPGZpbGUgbmFtZT0iU291cmNlLnBocCIgc2VydmVyPSJ3d3cuc2pybWMub3JnIiBsb2NhbD0iMTI4NjI3NDExNDAwMDAwMDAwIiByZW1vdGU9IjEyODYyNzQxMTQwMDAwMDAwMCIgLz4NCjwvZHdzeW5jPg==]]></data>
	</file>
	<file>
	  <filename>/lib/Solar/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/Solar/_notes/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/Solar/_notes/dwsync.xml</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiID8+DQo8ZHdzeW5jPg0KPGZpbGUgbmFtZT0iRGlyLnBocCIgc2VydmVyPSJ3d3cuc2pybWMub3JnIiBsb2NhbD0iMTI4NjI3NDEyMDAwMDAwMDAwIiByZW1vdGU9IjEyODYyNzQxMjAwMDAwMDAwMCIgLz4NCjwvZHdzeW5jPg==]]></data>
	</file>
	<file>
	  <filename>/lib/_notes/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/_notes/dwsync.xml</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiID8+DQo8ZHdzeW5jPg0KPGZpbGUgbmFtZT0iSlNNaW4ucGhwIiBzZXJ2ZXI9Ind3dy5zanJtYy5vcmciIGxvY2FsPSIxMjg2Mjc0MTE0MDAwMDAwMDAiIHJlbW90ZT0iMTI4NjI3NDExNDAwMDAwMDAwIiAvPg0KPGZpbGUgbmFtZT0iTWluaWZ5LnBocCIgc2VydmVyPSJ3d3cuc2pybWMub3JnIiBsb2NhbD0iMTI4NjI3NDEyMDAwMDAwMDAwIiByZW1vdGU9IjEyODYyNzQxMjAwMDAwMDAwMCIgLz4NCjwvZHdzeW5jPg==]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCi8qKg0KICogTW9kdWxlOiBTY3JpcHREZXBsb3kgLSBNaW5pZnkgYW5kIGRlcGxveW1lbnQgb2YgSlMgQ1NTIGFuZCBIVE1MDQogKiANCiAqIA0KICogQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykNCiAqIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnDQogKiBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvc2NyaXB0ZGVwbG95Lw0KICogDQogKiBAcGFja2FnZSBTY3JpcHREZXBsb3kNCiAqIEBhdXRob3IgamVyZW15QmFzcyA8amVyZW15QmFzc0BjYWJsZW9uZS5uZXQ+DQogKiBAY29weXJpZ2h0IEplcmVteSBCYXNzDQogKiBAbGljZW5zZSBodHRwOi8vd3d3LmdudS5vcmcvY29weWxlZnQvZ3BsLmh0bWwgRnJlZWx5IGF2YWlsYWJsZSB1bmRlciBHUEwNCiAqLyANCg0KaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7DQoJJGNvbmZpZyA9JiAkZ0Ntcy0+R2V0Q29uZmlnKCk7IA0KCS8vJGRiID0mICRnQ21zLT5HZXREYigpOw0KCSR0YWJvcHRhcnJheSA9IGFycmF5KCdteXNxbCcgPT4gJ1RZUEU9TXlJU0FNJyk7DQoJJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSgkZGIpOw0KCQ0KLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLw0KCSRmbGRzID0gIg0KCQlJRCBJIEtFWSBBVVRPLA0KCQlTY3JpcHRTZXQgQygyNTUpDQoJCSI7DQoJJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKFNEX1NDUklQVE5BTUVTLCRmbGRzLCAkdGFib3B0YXJyYXkpOw0KCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsNCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8NCgkkZmxkcyA9ICINCgkJSUQgSSBLRVkgTk9UIE5VTEwsDQoJCXVzZXJJRCBJLA0KCQlyZXZpc2lvbiBJLA0KCQlwYXRoT3B0aW9uIEMoMjU1KSwNCgkJbm90ZXMgQygxMDI0KSwNCgkJc2NyaXB0VHlwZSBDKDMpLA0KCQl2YWxpZCBJLA0KCQlzY3JpcHRTaXplIEksDQoJCUN1cnJlbnRyZXZpc2lvbiBJLA0KCQljcmVhdGVkICIgLiBDTVNfQURPREJfRFQgLiAiLA0KCQlsYXN0X2VkaXQgIiAuIENNU19BRE9EQl9EVCAuICINCgkJIjsNCgkkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoU0RfU0NSSVBUT1BUSU9OUywkZmxkcywgJHRhYm9wdGFycmF5KTsNCgkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7DQovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovDQoJJGZsZHMgPSAiDQoJCUlEIEksDQoJCVNjcmlwdElzIFgyDQoJCSI7DQoJJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKFNEX1NDUklQVFBBUlRTLCRmbGRzLCAkdGFib3B0YXJyYXkpOw0KCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsNCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8NCgkkZmxkcyA9ICINCgkJdXNlcklEIEksDQoJCXNjcmlwdElEIEksDQoJCXJldmlzaW9uIEksDQoJCVNjcmlwdElzQktVUCBYMiwNCgkJY3JlYXRlZCAiIC4gQ01TX0FET0RCX0RUIC4gIg0KCQkiOw0KCSRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChTRF9TQ1JJUFRVTkRPLCRmbGRzLCAkdGFib3B0YXJyYXkpOw0KCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsNCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8NCgkkZmxkcyA9ICINCgkJSUQgSSBLRVkgQVVUTywNCgkJR3JvdXB0U2V0IEMoMjU1KSwNCgkJR3JvdXB0VHlwZSBDKDMpDQoJCSI7DQoJJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKFNEX0dST1VQLCRmbGRzLCAkdGFib3B0YXJyYXkpOw0KCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsNCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8NCgkkZmxkcyA9ICINCgkJR3JvdXB0U2V0SUQgSSwNCgkJU2NyaXB0SUQgSSwNCgkJU2NyaXB0T1JERVIgSQ0KCQkiOw0KCSRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChTRF9HUk9VUEFTU0lHTk1FTlQsJGZsZHMsICR0YWJvcHRhcnJheSk7DQoJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOw0KLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwkNCgkkZmxkcyA9ICINCgkJCSBncm91cGlkIEkgS0VZIEFVVE8sDQoJCQkgdGVtcGxhdGVfaWQgSSBLRVksDQoJCQkgcHJlZmVycmVkX3NzIEkNCgkJCSI7DQoJJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKFNEX1RBQkxFLCAkZmxkcywgJHRhYm9wdGFycmF5KTsNCgkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCAkc3FsYXJyYXkgKTsNCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8NCgkkZmxkcyA9ICJncm91cGlkIEksDQoJCQkgc3R5bGVzaGVldF9pZCBJIjsNCgkkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoU0RfUEVSU0lTVEVOVCwgJGZsZHMsICR0YWJvcHRhcnJheSk7DQoJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSggJHNxbGFycmF5ICk7DQovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovDQoJJGZsZHMgPSAiZ3JvdXBpZCBJLA0KCQkJIHN0eWxlc2hlZXRfaWQgSSI7DQoJJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKFNEX0FMVEVSTkFURSwgJGZsZHMsICR0YWJvcHRhcnJheSk7DQoJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSggJHNxbGFycmF5ICk7DQoNCi8qDQouDQouDQouIA0KLg0KLg0KKi8NCiAgICAvLyBTZXRQcmVmZXJlbmNlDQoJJHRoaXMtPlNldFByZWZlcmVuY2UoJ2RlYnVnSVQnLCAwKTsNCgkkdGhpcy0+U2V0UHJlZmVyZW5jZSgnU2hvd1ZhbCcsIDApOw0KCSR0aGlzLT5TZXRQcmVmZXJlbmNlKCdUdXJuT05WYWwnLCAxKTsNCgkkdGhpcy0+U2V0UHJlZmVyZW5jZSgnZmlsZVRpbWVfY3NzX3VybHMnLCAwKTsNCg0KCSR0aGlzLT5TZXRQcmVmZXJlbmNlKCdDU1Nwcm9maWxlJywgJ2NzczIxJyk7DQoJJHRoaXMtPlNldFByZWZlcmVuY2UoJ1ZBTExhbmcnLCAnZW4nKTsNCgkkdGhpcy0+U2V0UHJlZmVyZW5jZSgndzNjQ1NTd2FybmluZycsIDApOw0KCSR0aGlzLT5TZXRQcmVmZXJlbmNlKCd1c2VybWVkaXVtJywgJ2FsbCcpOw0KCSR0aGlzLT5TZXRQcmVmZXJlbmNlKCdmaWx0ZXJQcm9wJywgJ2JvcmRlci1yYWRpdXMsb3BhY2l0eScpOw0KCSR0aGlzLT5TZXRQcmVmZXJlbmNlKCdob3RMaW5rQ2hlY2snLDEpOw0KCSR0aGlzLT5TZXRQcmVmZXJlbmNlKCdzbWFydHlPbicsMSk7DQoJJHRoaXMtPlNldFByZWZlcmVuY2UoJ3JldmlzaW9uJywgMSk7DQoJJHRoaXMtPlNldFByZWZlcmVuY2UoJ3JldmlzaW9uX0xJTUlUJywgMTApOw0KCSR0aGlzLT5TZXRQcmVmZXJlbmNlKCdwcmVsb2FkX0NTU2ltYWdlJywwKTsNCgkNCg0KICAgIC8vIEV2ZW50cw0KCSR0aGlzLT5BZGRFdmVudEhhbmRsZXIoICdDb3JlJywgJ0NvbnRlbnRQb3N0UmVuZGVyJywgZmFsc2UpOw0KDQogICAgLy8gcGVybWlzc2lvbnMNCiAgICAkdGhpcy0+Q3JlYXRlUGVybWlzc2lvbignTW9kaWZ5IFNjcmlwdERlcGxveScsJ01vZGlmeSBTY3JpcHREZXBsb3kgT3B0aW9ucycpOw0KICAgICR0aGlzLT5DcmVhdGVQZXJtaXNzaW9uKCdSZW1vdmUgU2NyaXB0RGVwbG95U2NyaXB0JywnUmVtb3ZlIFNjcmlwdERlcGxveSBTY3JpcHQnKTsNCgkkdGhpcy0+Q3JlYXRlUGVybWlzc2lvbignUmVtb3ZlIFNjcmlwdERlcGxveUdyb3VwJywnUmVtb3ZlIFNjcmlwdERlcGxveSBHcm91cCcpOw0KCSR0aGlzLT5DcmVhdGVQZXJtaXNzaW9uKCdFZGl0IFNjcmlwdERlcGxveVNjcmlwdCcsJ0VkaXQgU2NyaXB0RGVwbG95IFNjcmlwdCcpOw0KCSR0aGlzLT5DcmVhdGVQZXJtaXNzaW9uKCdFZGl0IFNjcmlwdERlcGxveUdyb3VwJywnRWRpdCBTY3JpcHREZXBsb3kgR3JvdXAnKTsJCQkJDQoJJHRoaXMtPkNyZWF0ZVBlcm1pc3Npb24oJ1N0ZWFsIFNjcmlwdERlcGxveVNjcmlwdCcsJ1N0ZWFsIFNjcmlwdERlcGxveSBTY3JpcHQnKTsNCgkNCgkvLyBwZXJtaXNzaW9ucw0KCSR0aGlzLT5TZXRUZW1wbGF0ZSgnZm9ybV90ZW1wbGF0ZScsJHRoaXMtPmRmbHRfZm9ybV90ZW1wbGF0ZSk7DQoNCgkvLyBwdXQgbWVudGlvbiBpbnRvIHRoZSBhZG1pbiBsb2cNCgkkdGhpcy0+QXVkaXQoIDAsICR0aGlzLT5MYW5nKCdmcmllbmRseW5hbWUnKSwgJHRoaXMtPkxhbmcoJ2luc3RhbGxlZCcsJHRoaXMtPkdldFZlcnNpb24oKSkpOw0KCWlmKCFmaWxlX2V4aXN0cygkY29uZmlnWyd1cGxvYWRzX3BhdGgnXS4iL2xpYi9TRC10ZW1wIikpe21rZGlyKCRjb25maWdbJ3VwbG9hZHNfcGF0aCddLiIvbGliL1NELXRlbXAiLCAwNzc3LCB0cnVlKTt9DQoJJHRoaXMtPkF1ZGl0KCAxLCAkdGhpcy0+TGFuZygnZnJpZW5kbHluYW1lJyksICRjb25maWdbJ3VwbG9hZHNfcGF0aCddLiIvbGliL1NELXRlbXAvIHdhcyBjcmVhdGVkIG9uIHRoZSBpbnN0YWxsIik7DQoJDQoJDQoNCj8+]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCi8qKg0KICogTW9kdWxlOiBTY3JpcHREZXBsb3kgLSBNaW5pZnkgYW5kIGRlcGxveW1lbnQgb2YgSlMgQ1NTIGFuZCBIVE1MDQogKiANCiAqIA0KICogQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykNCiAqIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnDQogKiBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvc2NyaXB0ZGVwbG95Lw0KICogDQogKiBAcGFja2FnZSBTY3JpcHREZXBsb3kNCiAqIEBhdXRob3IgamVyZW15QmFzcyA8amVyZW15QmFzc0BjYWJsZW9uZS5uZXQ+DQogKiBAY29weXJpZ2h0IEplcmVteSBCYXNzDQogKiBAbGljZW5zZSBodHRwOi8vd3d3LmdudS5vcmcvY29weWxlZnQvZ3BsLmh0bWwgRnJlZWx5IGF2YWlsYWJsZSB1bmRlciBHUEwNCiAqLyANCg0KLyoNCiAgICBGb3Igc2VwYXJhdGVkIG1ldGhvZHMsIHlvdSdsbCBhbHdheXMgd2FudCB0byBzdGFydCB3aXRoIHRoZSBmb2xsb3dpbmcNCiAgICBsaW5lIHdoaWNoIGNoZWNrIHRvIG1ha2Ugc3VyZSB0aGF0IG1ldGhvZCB3YXMgY2FsbGVkIGZyb20gdGhlIG1vZHVsZQ0KICAgIEFQSSwgYW5kIHRoYXQgZXZlcnl0aGluZydzIHNhZmUgdG8gY29udGludWU6DQoqLyANCmlmICghaXNzZXQoJGdDbXMpKSBleGl0Ow0KDQoJJGRiID0mICRnQ21zLT5HZXREYigpOw0KLy8JDQoJLy8gcmVtb3ZlIHRoZSBkYXRhYmFzZSB0YWJsZQ0KCSRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoICRkYiApOw0KCSRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoIFNEX1NDUklQVE5BTUVTICk7DQoJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOw0KCQ0KCSRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoIFNEX1NDUklQVE9QVElPTlMgKTsNCgkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7DQoJDQoJJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTCggU0RfU0NSSVBUUEFSVFMgKTsNCgkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7DQoJDQoJJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTCggU0RfR1JPVVAgKTsNCgkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CQ0KCQ0KCSRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoIFNEX0dST1VQQVNTSUdOTUVOVCApOw0KCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsJDQoNCgkkc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKCBTRF9TQ1JJUFRVTkRPICk7DQoJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwkNCgkNCgkkc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKCBTRF9UQUJMRSApOw0KCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsJDQoJDQoJJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTCggU0RfUEVSU0lTVEVOVCApOw0KCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsJDQoJDQoJJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTCggU0RfQUxURVJOQVRFICk7DQoJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwkJDQoJDQoJJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTCggY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfc2NyaXB0ZGVwbG95X3NjcmlwdGxvZ2dpbiIgKTsNCgkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7DQoJDQoJLy8gcmVtb3ZlIHRoZSBzZXF1ZW5jZQ0KCS8vICRkYi0+RHJvcFNlcXVlbmNlKCBjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9yYXRlX3RoaXNfc2VxIiApOw0KLy8JDQovLwkNCi8vCQ0KLy8JLy8gcmVtb3ZlIHRoZSBwcmVmZXJlbmNlcw0KLy8JJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoImJvb2tpZSIpOw0KDQokdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgpOw0KLy8JDQovLwkvLyBSZW1vdmUgYWxsIGV2ZW50IGhhbmRsZXJzDQovLwkkdGhpcy0+UmVtb3ZlRXZlbnRIYW5kbGVyKCdGcm9udEVuZFVzZXJzJywnT25DcmVhdGVVc2VyJyk7DQovLwkkdGhpcy0+UmVtb3ZlRXZlbnRIYW5kbGVyKCdGcm9udEVuZFVzZXJzJywnT25EZWxldGVVc2VyJyk7DQovLwkkdGhpcy0+UmVtb3ZlRXZlbnRIYW5kbGVyKCdGcm9udEVuZFVzZXJzJywnT25VcGRhdGVVc2VyJyk7DQovLwkkdGhpcy0+UmVtb3ZlRXZlbnRIYW5kbGVyKCdGcm9udEVuZFVzZXJzJywnT25FeHBpcmVVc2VyJyk7DQovLwkkdGhpcy0+UmVtb3ZlRXZlbnRIYW5kbGVyKCdGcm9udEVuZFVzZXJzJywnT25Mb2dpbicpOw0KLy8JJHRoaXMtPlJlbW92ZUV2ZW50SGFuZGxlcignRnJvbnRFbmRVc2VycycsJ09uTG9nb3V0Jyk7DQovLwkNCgkvLyBwdXQgbWVudGlvbiBpbnRvIHRoZSBhZG1pbiBsb2cNCgkkdGhpcy0+QXVkaXQoIDAsICR0aGlzLT5MYW5nKCdmcmllbmRseW5hbWUnKSwgJHRoaXMtPkxhbmcoJ3VuaW5zdGFsbGVkJykpOw0KDQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/method.upgrade.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCi8qKg0KICogTW9kdWxlOiBTY3JpcHREZXBsb3kgLSBNaW5pZnkgYW5kIGRlcGxveW1lbnQgb2YgSlMgQ1NTIGFuZCBIVE1MDQogKiANCiAqIA0KICogQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykNCiAqIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnDQogKiBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvc2NyaXB0ZGVwbG95Lw0KICogDQogKiBAcGFja2FnZSBTY3JpcHREZXBsb3kNCiAqIEBhdXRob3IgamVyZW15QmFzcyA8amVyZW15QmFzc0BjYWJsZW9uZS5uZXQ+DQogKiBAY29weXJpZ2h0IEplcmVteSBCYXNzDQogKiBAbGljZW5zZSBodHRwOi8vd3d3LmdudS5vcmcvY29weWxlZnQvZ3BsLmh0bWwgRnJlZWx5IGF2YWlsYWJsZSB1bmRlciBHUEwNCiAqLyANCg0KLyoNCiAgICBGb3Igc2VwYXJhdGVkIG1ldGhvZHMsIHlvdSdsbCBhbHdheXMgd2FudCB0byBzdGFydCB3aXRoIHRoZSBmb2xsb3dpbmcNCiAgICBsaW5lIHdoaWNoIGNoZWNrIHRvIG1ha2Ugc3VyZSB0aGF0IG1ldGhvZCB3YXMgY2FsbGVkIGZyb20gdGhlIG1vZHVsZQ0KICAgIEFQSSwgYW5kIHRoYXQgZXZlcnl0aGluZydzIHNhZmUgdG8gY29udGludWU6DQoqLyANCmlmICghaXNzZXQoJGdDbXMpKSBleGl0Ow0KDQoNCi8qIEFmdGVyIHRoaXMsIHRoZSBjb2RlIGlzIGlkZW50aWNhbCB0byB0aGUgY29kZSB0aGF0IHdvdWxkIG90aGVyd2lzZSBiZQ0KICAgIHdyYXBwZWQgaW4gdGhlIFVwZ3JhZGUoKSBtZXRob2QgaW4gdGhlIG1vZHVsZSBib2R5Lg0KKi8NCg0KDQoNCi8qIEFmdGVyIHRoaXMsIHRoZSBjb2RlIGlzIGlkZW50aWNhbCB0byB0aGUgY29kZSB0aGF0IHdvdWxkIG90aGVyd2lzZSBiZQ0KICAgIHdyYXBwZWQgaW4gdGhlIFVwZ3JhZGUoKSBtZXRob2QgaW4gdGhlIG1vZHVsZSBib2R5Lg0KKi8NCg0KCQkkZGIgPSAkdGhpcy0+R2V0RGIoKTsNCgkJJGN1cnJlbnRfdmVyc2lvbiA9ICRvbGR2ZXJzaW9uOw0KCQkkZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCRkYik7DQoJCSR0YWJvcHRhcnJheSA9IGFycmF5KCdteXNxbCcgPT4gJ1RZUEU9TXlJU0FNJyk7DQoJCWRlYnVnX2Rpc3BsYXkoJ0N1cnJlbnQtdmVyc2lvbjogJy4kY3VycmVudF92ZXJzaW9uKTsNCgkJc3dpdGNoKCRjdXJyZW50X3ZlcnNpb24pDQoJCXsNCgkJCWNhc2UgIjAuMSI6DQoJCQljYXNlICIwLjIiOg0KCQkJe30NCgkJCWNhc2UgIjAuMyI6DQoJCQl7fQ0KCQkJY2FzZSAiMC40IjoNCgkJCXt9DQoJCQljYXNlICIwLjUiOg0KCQkJe30NCgkJCWNhc2UgIjAuNiI6DQoJCQl7fQ0KCQkJY2FzZSAiMC43IjoNCgkJCXt9CQ0KCQkJY2FzZSAiMC43LjEiOg0KCQkJe30NCgkJCWNhc2UgIjAuNy4yIjoNCgkJCXt9DQoJCQljYXNlICIwLjcuMyI6DQoJCQl7fQ0KCQkJY2FzZSAiMC43LjMiOg0KCQkJew0KLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwkNCgkkZmxkcyA9ICINCgkJCSBncm91cGlkIEkgS0VZIEFVVE8sDQoJCQkgdGVtcGxhdGVfaWQgSSBLRVksDQoJCQkgcHJlZmVycmVkX3NzIEkNCgkJCSI7DQoJJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKFNEX1RBQkxFLCAkZmxkcywgJHRhYm9wdGFycmF5KTsNCgkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCAkc3FsYXJyYXkgKTsNCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8NCgkkZmxkcyA9ICJncm91cGlkIEksDQoJCQkgc3R5bGVzaGVldF9pZCBJIjsNCgkkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoU0RfUEVSU0lTVEVOVCwgJGZsZHMsICR0YWJvcHRhcnJheSk7DQoJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSggJHNxbGFycmF5ICk7DQovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovDQoJJGZsZHMgPSAiZ3JvdXBpZCBJLA0KCQkJIHN0eWxlc2hlZXRfaWQgSSI7DQoJJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKFNEX0FMVEVSTkFURSwgJGZsZHMsICR0YWJvcHRhcnJheSk7DQoJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSggJHNxbGFycmF5ICk7DQoNCgkJCQ0KICAgICR0aGlzLT5DcmVhdGVQZXJtaXNzaW9uKCdNb2RpZnkgU2NyaXB0RGVwbG95JywnTW9kaWZ5IFNjcmlwdERlcGxveSBPcHRpb25zJyk7DQogICAgJHRoaXMtPkNyZWF0ZVBlcm1pc3Npb24oJ1JlbW92ZSBTY3JpcHREZXBsb3lTY3JpcHQnLCdSZW1vdmUgU2NyaXB0RGVwbG95IFNjcmlwdCcpOw0KCSR0aGlzLT5DcmVhdGVQZXJtaXNzaW9uKCdSZW1vdmUgU2NyaXB0RGVwbG95R3JvdXAnLCdSZW1vdmUgU2NyaXB0RGVwbG95IEdyb3VwJyk7DQoJJHRoaXMtPkNyZWF0ZVBlcm1pc3Npb24oJ0VkaXQgU2NyaXB0RGVwbG95U2NyaXB0JywnRWRpdCBTY3JpcHREZXBsb3kgU2NyaXB0Jyk7DQoJJHRoaXMtPkNyZWF0ZVBlcm1pc3Npb24oJ0VkaXQgU2NyaXB0RGVwbG95R3JvdXAnLCdFZGl0IFNjcmlwdERlcGxveSBHcm91cCcpOwkJCQkNCgkkdGhpcy0+Q3JlYXRlUGVybWlzc2lvbignU3RlYWwgU2NyaXB0RGVwbG95U2NyaXB0JywnU3RlYWwgU2NyaXB0RGVwbG95IFNjcmlwdCcpOw0KCQkJfQ0KDQoJCQ0KCQl9DQoJCQ0KCQkvLyBwdXQgbWVudGlvbiBpbnRvIHRoZSBhZG1pbiBsb2cNCgkJJHRoaXMtPkF1ZGl0KCAwLCAkdGhpcy0+TGFuZygnZnJpZW5kbHluYW1lJyksICR0aGlzLT5MYW5nKCd1cGdyYWRlZCcsJHRoaXMtPkdldFZlcnNpb24oKSkpOw0KDQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/necho.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9QSFANCi8qKg0KICogTW9kdWxlOiBTY3JpcHREZXBsb3kgLSBNaW5pZnkgYW5kIGRlcGxveW1lbnQgb2YgSlMgQ1NTIGFuZCBIVE1MDQogKiANCiAqIA0KICogQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykNCiAqIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnDQogKiBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvc2NyaXB0ZGVwbG95Lw0KICogDQogKiBAcGFja2FnZSBTY3JpcHREZXBsb3kNCiAqIEBhdXRob3IgamVyZW15QmFzcyA8amVyZW15QmFzc0BjYWJsZW9uZS5uZXQ+DQogKiBAY29weXJpZ2h0IEplcmVteSBCYXNzDQogKiBAbGljZW5zZSBodHRwOi8vd3d3LmdudS5vcmcvY29weWxlZnQvZ3BsLmh0bWwgRnJlZWx5IGF2YWlsYWJsZSB1bmRlciBHUEwNCiAqLyANCg0KDQovKi0tLS0tLS0tLS0tLS0tLS0tLS1MTi0tDQogKiBUaGUgbGl0ZU51a2UgU3lzdGVtICB8DQogKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS18DQogKiAgd3d3LmdpbmdlcndhcmUub3JnICB8DQogKioqKioqKioqKioqKioqKioqKioqKioqLw0KDQovKg0KIFVzYWdlOg0KIDEuIFNldCB0aGUgR0xPQkFMIHZhciB0byBvbmUgb2Y6DQogZm9ybWF0IChkZWZhdWx0KSA6IGRvIGZ1bGwgZm9ybWF0dGluZyBvZiBhbGwgb3V0cHV0DQogcmF3IDogZG8gbm8gZm9ybWF0dGluZyB3aGF0c29ldmVyLCBkdW1waW5nIGFsbCBkYXRhIHJhdyB0byB0aGUgYnJvd3Nlcg0KIGR1bGwgOiByZW1vdmUgYWxsIHNwYWNlcyBwcmVjZWRpbmcgZGF0YSBpbiBldmVyeSBsaW5lDQogdWdseSA6IGZvcmNlIGFsbCBjb2RlIGludG8gMSBsb25nIGxpbmUgcmVuZGVyaW5nIGl0IHByYWN0aWNhbGx5IHVucmVhZGFibGUNCiAyLiBtYWtlIHN1cmUgbmVjaG9fc3RhcnQoKSBpcyBjYWxsZWQgYmVmb3JlIGFueSBodG1sLWNvZGUgaXMgd3JpdHRlbg0KIDMuIG1ha2Ugc3VyZSBuZWNob19lbmQoKSBpcyBjYWxsZWQgYWZ0ZXIgbGFzdCBodG1sLWNvZGUgaXMgd3JpdHRlbg0KIDQuIHlvdSBjYW4gdXNlIHRoZSBzdXBwbGllZCBuZWNob18qIGZ1bmN0aW9ucyB0byB3cml0ZSwgYnV0IGRvIG5vdCBoYXZlIHRvDQoNCiBoYXZlIGZ1bg0KICovDQoNCmlmICghaXNzZXQoJEdMT0JBTFNbIm5lY2hvX2h0bWxzdGF0ZSJdKSkNCiRHTE9CQUxTWyJuZWNob19odG1sc3RhdGUiXT0iZm9ybWF0IjsNCiRHTE9CQUxTWyJuZWNob19pbmRlbnR3aWR0aCJdPTI7DQokR0xPQkFMU1sibmVjaG9fZm9yY2Vsb3dlcnRhZ3MiXT1mYWxzZTsNCiRHTE9CQUxTWyJuZWNob19kZWJ1Z21vZGUiXT1mYWxzZTsNCiRHTE9CQUxTWyJuZWNob19kZWJ1Z2xldmVsIl09ImJyaWVmIjsNCiRHTE9CQUxTWyJuZWNob19lcnJvcnMiXT0wOw0KJEdMT0JBTFNbIm5lY2hvX3ZlcnNpb24iXT0ibkVjaG8gMC4zLjIgWyIuJEdMT0JBTFNbIm5lY2hvX2h0bWxzdGF0ZSJdLiJdIC0gYSBOaWNlIEhUTUwgZWNobyBmdW5jdGlvbiI7DQoNCiRHTE9CQUxTWyJuZWNob19pbmRlbnRsZXZlbCJdPTA7DQokR0xPQkFMU1sibmVjaG9fdGltZXIiXT0wOw0KDQovL0hpc3RvcnkgYXQgdGhlIGJvdHRvbSENCg0KaWYgKCFmdW5jdGlvbl9leGlzdHMoIm5lY2hvX2lzcmF3IikpIHsNCiAgZnVuY3Rpb24gbmVjaG9faXNyYXcoKSB7DQogICAgcmV0dXJuICgkR0xPQkFMU1sibmVjaG9faHRtbHN0YXRlIl09PSJyYXciKTsNCiAgfQ0KfS8vZnVuY3Rpb25fZXhpc3RzDQoNCmlmICghZnVuY3Rpb25fZXhpc3RzKCJfbmVjaG9fY2xlYW4iKSkgew0KICBmdW5jdGlvbiBfbmVjaG9fY2xlYW4oJHMpIHsgLy9DbGVhbiBvZmYgYW55dGhpbmcgcHJlY2VkaW5nIGEgc3RyaW5nPWxlZnRpbmRlbnQgZXZlcnl0aGluZw0KDQogICAgJHJlc3VsdD1zdHJfcmVwbGFjZSgiXHQiLCIgIiwkcyk7DQoNCiAgICAkcmVzdWx0PXN0cl9yZXBsYWNlKCJcciIsIiAiLCRyZXN1bHQpOw0KICAgICANCiAgIAkkcmVzdWx0PXN0cl9yZXBsYWNlKCJcbiIsIiAiLCRyZXN1bHQpOw0KICAgCXdoaWxlIChzdHJwb3MoJHJlc3VsdCwnICAnKSAhPT0gZmFsc2UpICRyZXN1bHQgPSBzdHJfcmVwbGFjZSgnICAnLCcgJywkcmVzdWx0KTsNCiAgICByZXR1cm4gJHJlc3VsdDsNCiAgfQ0KfS8vZnVuY3Rpb25fZXhpc3RzDQoNCmlmICghZnVuY3Rpb25fZXhpc3RzKCJuZWNob19jbGVhbiIpKSB7DQogIGZ1bmN0aW9uIG5lY2hvX2NsZWFuKCRzLyosJGxlZnRpbmRlbnQ9ZmFsc2UqLykgeyAvL0NsZWFuIG9mZiBhbnl0aGluZyBwcmVjZWRpbmcgYSBzdHJpbmc9bGVmdGluZGVudCBldmVyeXRoaW5nDQogICAgLy9NdXN0IGhhbmRsZSB0ZXh0YXJlYXMgY29ycmVjdGx5ISEhDQogICAgLy9za2FsIGRlbGUgJHMgb3AgaSBiaWRkZXIsIGh2aXMgZGVyIGVyIHRleHQtYXJlYXMsIG9nIGlra2UgYmVoYW5kbGVyIGRlbGVuZSBpbmRlIGkuLi4NCiAgICAvLyRwb3M9c3RyDQogICAgJHJlc3VsdD1fbmVjaG9fY2xlYW4oJHMpOw0KDQogICAgcmV0dXJuICRyZXN1bHQ7DQogIH0NCn0vL2Z1bmN0aW9uX2V4aXN0cw0KDQppZiAoIWZ1bmN0aW9uX2V4aXN0cygibmVjaG9fZmluZHNjcmlwdHMiKSkgew0KICBmdW5jdGlvbiBuZWNob19maW5kc2NyaXB0cygkX3MsJG9mZnNldD0wKSB7DQogICAgLy8gIGVjaG8gIm9mZnNldDoiLiRvZmZzZXQuIjxicj4iOw0KICAgIGlmICgkb2Zmc2V0PnN0cmxlbigkX3MpKSByZXR1cm4gZmFsc2U7DQogICAgJHA9c3RycG9zKCRfcywiPHNjcmlwdCIsJG9mZnNldCk7DQogICAgaWYgKCRwPT09ZmFsc2UpICRwPXN0cnBvcygkX3MsIjxTQ1JJUFQiLCRvZmZzZXQpOw0KICAgIGlmICgkcD09PWZhbHNlKSAkcD1zdHJwb3MoJF9zLCI8cHJlIiwkb2Zmc2V0KTsNCiAgICBpZiAoJHA9PT1mYWxzZSkgJHA9c3RycG9zKCRfcywiPFBSRSIsJG9mZnNldCk7DQogICAgcmV0dXJuICRwOw0KICB9DQp9Ly9mdW5jdGlvbl9leGlzdHMNCg0KaWYgKCFmdW5jdGlvbl9leGlzdHMoIm5lY2hvX2ZpbmRlbmRzY3JpcHRzIikpIHsNCiAgZnVuY3Rpb24gbmVjaG9fZmluZGVuZHNjcmlwdHMoJF9zLCRvZmZzZXQ9MCkgew0KICAgIGlmICgkb2Zmc2V0PnN0cmxlbigkX3MpKSByZXR1cm4gZmFsc2U7DQogICAgJHA9c3RycG9zKCRfcywiPC9zY3JpcHQ+Iiwkb2Zmc2V0KTsNCiAgICBpZiAoJHA9PT1mYWxzZSkgJHA9c3RycG9zKCRfcywiPC9TQ1JJUFQ+Iiwkb2Zmc2V0KTsgZWxzZSAkcCs9OTsNCiAgICBpZiAoJHA9PT1mYWxzZSkgJHA9c3RycG9zKCRfcywiPC9wcmU+Iiwkb2Zmc2V0KTsgZWxzZSAkcCs9OTsNCiAgICBpZiAoJHA9PT1mYWxzZSkgJHA9c3RycG9zKCRfcywiPC9QUkU+Iiwkb2Zmc2V0KTsgZWxzZSAkcCs9NjsNCiAgICBpZiAoJHApICRwKz02Ow0KICAgIC8vCWVjaG8gIk9VVDokcCI7DQogICAgcmV0dXJuICRwOw0KICB9DQp9DQoNCg0KaWYgKCFmdW5jdGlvbl9leGlzdHMoIm5lY2hvX3VnbHlmeSIpKSB7DQogIGZ1bmN0aW9uIG5lY2hvX3VnbHlmeSgkX3MpIHsgLy9DbGVhbiBvZmYgRVZFUllUSElORywgPSAxIHZlcnkgbG9uZyBzdHJpbmcsIGV4Y2VwdCA8c2NyaXB0PidzIGFuZCA8cHJlPidzDQogICAgaWYgKG5lY2hvX2ZpbmRzY3JpcHRzKCRfcyk9PT1mYWxzZSkgIHJldHVybiBuZWNob19jbGVhbigkX3MpOw0KICAgICRzPSRfczsNCiAgICAkcmVzdWx0PSIiOw0KICAgICRpbnNpZGU9ZmFsc2U7DQogICAgLy8JJGxhc3RwPTA7DQogICAgJHA9bmVjaG9fZmluZHNjcmlwdHMoJHMpOw0KICAgIHdoaWxlICgkcCE9ZmFsc2UpIHsNCiAgICAgIC8vCSAgJHJlc3VsdC49IioiOw0KICAgICAgaWYgKCRpbnNpZGUpIHsNCiAgICAgICAgJHJlc3VsdC49c3Vic3RyKCRzLDAsJHApOw0KICAgICAgICAkcz1zdWJzdHIoJHMsJHAsMTAwMDAwKTsNCiAgICAgICAgJHA9bmVjaG9fZmluZHNjcmlwdHMoJHMpOw0KICAgICAgICAkaW5zaWRlPWZhbHNlOw0KICAgICAgfSBlbHNlIHsNCiAgICAgICAgJHJlc3VsdC49bmVjaG9fY2xlYW4oc3Vic3RyKCRzLDAsJHApKTsNCiAgICAgICAgJHM9c3Vic3RyKCRzLCRwLDEwMDAwMCk7DQogICAgICAgICRwPW5lY2hvX2ZpbmRlbmRzY3JpcHRzKCRzKTsNCiAgICAgICAgJGluc2lkZT10cnVlOw0KICAgICAgfQ0KICAgIH0NCiAgICBpZiAoJHMhPSIiKSB7DQogICAgICBpZiAoJGluc2lkZSkgew0KICAgICAgICAkcmVzdWx0Lj0kczsNCiAgICAgIH0gZWxzZSB7DQogICAgICAgICRyZXN1bHQuPW5lY2hvX2NsZWFuKCRzKTsNCiAgICAgIH0NCiAgICB9DQoNCiAgICByZXR1cm4gJHJlc3VsdDsNCiAgfQ0KfS8vZnVuY3Rpb25fZXhpc3RzDQoNCg0KDQppZiAoIWZ1bmN0aW9uX2V4aXN0cygibmVjaG9fbWtpbmRlbnQiKSkgew0KICBmdW5jdGlvbiBuZWNob19ta2luZGVudCgkaW5kLCRyZXR1cm49dHJ1ZSkgeyAgICAgDQogICAgaWYgKCRyZXR1cm4pICRyZXN1bHQ9IlxuIjsgZWxzZSAkcmVzdWx0PSIiOw0KICAgIGZvciAoJGk9MDsgJGk8JGluZDsgJGkrKykgew0KICAgICAgJHJlc3VsdC49c3Vic3RyKCIgICAgICAgICAgICAgICAgICIsMCwgJEdMT0JBTFNbIm5lY2hvX2luZGVudHdpZHRoIl0pOw0KICAgIH0NCiAgICBzdGF0aWMgJGxldmVsPTA7DQogICAgaWYgKCRpbmQ9PSRsZXZlbCsxKSB7DQogICAgICAkR0xPQkFMU1sibmVjaG9faW5kZW50bGV2ZWwiXSsrOw0KICAgICAgJGxldmVsKys7DQogICAgfSBlbHNlIHsNCiAgICAgIGlmICgkaW5kPT0kbGV2ZWwtMSkgew0KICAgICAgICAkR0xPQkFMU1sibmVjaG9faW5kZW50bGV2ZWwiXS0tOw0KICAgICAgICAkbGV2ZWwtLTsNCiAgICAgIH0NCiAgICB9DQogICAgcmV0dXJuICRyZXN1bHQ7DQogIH0NCn0vL2Z1bmN0aW9uX2V4aXN0cw0KDQppZiAoIWZ1bmN0aW9uX2V4aXN0cygibmVjaG9fYWRkdGFnIikpIHsNCiAgZnVuY3Rpb24gbmVjaG9fYWRkdGFnKCR0YWcpIHsNCiAgICAkcmVzdWx0PXRyaW0oJHRhZyk7DQogICAgaWYgKCRHTE9CQUxTWyJuZWNob19mb3JjZWxvd2VydGFncyJdKSB7DQogICAgICAkcmVzdWx0PXN0cnRvbG93ZXIoJHJlc3VsdCk7DQogICAgICANCiAgICB9DQogICAgcmV0dXJuICRyZXN1bHQ7DQogIH0NCn0vL2Z1bmN0aW9uX2V4aXN0cw0KDQppZiAoIWZ1bmN0aW9uX2V4aXN0cygibmVjaG9fZm9ybWF0IikpIHsNCiAgZnVuY3Rpb24gbmVjaG9fZm9ybWF0KCRzKSB7DQogICAgJHN0YXJ0dGltZT1taWNyb3RpbWUodHJ1ZSk7DQogICAgc3RhdGljICRpbmRlbnRhcnJheT1hcnJheSgpOw0KICAgIHN0YXRpYyAkaW5kZW50bWVzc2FnZT0iIjsNCiAgICBzdGF0aWMgJGluZD0wOw0KICAgICRyZXN1bHQ9IiI7DQogICAgJHA9MDsNCg0KICAgIC8vVGFncyB3aGljaCBzaG91bGQgYmUgcHJlY2VkZWQgYnkgYSBuZXdsaW5lIGFuZCBhbiBpbmNyZWFzZSBvZiBpbmRlbnRpb24NCiAgICAkaW5kZW50cz1hcnJheSgiPFREIiwiPFRSIiwiPFRIIiwiPFRBQkxFIiwiPERJViIsIjxTUEFOIiwiPEEiLCI8UCIsIjxCT0RZIiwiPEhUTUwiLCI8SEVBRCIsIjxDRU5URVIiLCI8VElUTEUiLCI8U0VMRUNUIiwiPE9QVElPTiIsIjxGT1JNIiwiPExJIiwiPE9MIiwiPFVMIiwiPERGTiIsIjxUSEVBRCIsIjxUQk9EWSIsIjxIMSIsIjxIMiIsIjxIMyIsIjxINCIsIjxMQUJFTCIsIjxTVFlMRSIpOw0KDQogICAgLy9UYWdzIHdoaWNoIHNob3VsZCBiZSBmb2xsb3dlZCBieSBhIG5ld2xpbmUgYW5kIGEgZGVjcmVhc2Ugb2YgaW5kZW50aW9uDQogICAgJGFudGluZGVudHM9YXJyYXkoIjwvVEQiLCI8L1RSIiwiPC9USCIsIjwvVEFCTEUiLCI8L0RJViIsIjwvU1BBTiIsIjwvQSIsIjwvUCIsIjwvQk9EWSIsIjwvSFRNTCIsIjwvSEVBRCIsIjwvQ0VOVEVSIiwiPC9USVRMRSIsIjwvU0VMRUNUIiwiPC9PUFRJT04iLCI8L0ZPUk0iLCI8L0xJIiwiPC9PTCIsIjwvVUwiLCI8L0RGTiIsIjwvVEhFQUQiLCI8L1RCT0RZIiwiPC9IMSIsIjwvSDIiLCI8L0gzIiwiPC9INCIsIjwvTEFCRUwiLCI8L1NUWUxFIik7DQoNCiAgICAvL1N0YW5kIGFsb25lIHRhZ3Mgd2hpY2ggc2hvdWxkIGJlIGluZGVudGVkIGJ1dCBub3QgZXhwZWN0aW5nIGEgY2xvc2UgdGFnDQogICAgJHN0YW5kYWxvbmU9YXJyYXkoIjxJTUciLCI8SFIiLCI8QlIiLCI8TElOSyIsIjxNRVRBIiwiPElOUFVUIiwiPEJBU0UiKTsNCiAgICAkbGVmdHM9YXJyYXkoIjwhLS0iLCI8IURPQ1RZUEUiLCI8P1hNTCIpOyAvL1RBR1Mgd2hpY2ggc2hvdWxkIGFsd2F5cyBiZSBjb21wbGV0ZWx5IGxlZnRhbGlnbmVkDQogICAgJHJhd3N0YXJ0cz1hcnJheSgiPFRFWFRBUkVBIiwiPFBSRSIpOyAvL1RhZ3Mgd2hvc2UgY29udGVudCBzaG91bGQgYmUgb3V0cHV0IHJhdw0KICAgICRyYXdlbmRzPWFycmF5KCI8L1RFWFRBUkVBIiwiPC9QUkUiKTsJLy9FbmQgcmF3IG91dHB1dCB0YWdzDQogICAgJHNjcmlwdHN0YXJ0cz1hcnJheSgiPFNDUklQVCIsIjxOT1NDUklQVCIpOyAvL1RhZ3Mgd2hvc2UgY29udGVudCBzaG91bGQgYmUgb3V0cHV0IHJhdywgYnV0IHdoZXJlIHN0YXJ0IGFuZCBlbmQgdGFncyBjYW4gYmUgaW5kZW50ZWQNCiAgICAkc2NyaXB0ZW5kcz1hcnJheSgiPC9TQ1JJUFQiLCI8L05PU0NSSVBUIik7CS8vRW5kIHJhdyBvdXRwdXQgdGFncywgYnV0IHdoZXJlIHN0YXJ0IGFuZCBlbmQgdGFncyBjYW4gYmUgaW5kZW50ZWQNCg0KICAgIC8vV2VsbCwgdGhpcyBmb2xsb3dpbmcgc21hbGwgc3RhdGUtbWFjaGluZSBkb2VzIGFsbCB0aGUgcGFyc2luZw0KICAgICRzdGF0ZT0ib3V0c2lkZSI7DQogICAgJHRhZz0iIjsNCiAgICAkcmV0dXJuc2VudD1mYWxzZTsNCiAgICAkbmVlZHJldHVybj1mYWxzZTsNCiAgICAkcmF3b3V0cHV0PWZhbHNlOw0KICAgICRpbnNpZGVzdGFuZGFsb25lPWZhbHNlOw0KICAgICRhbHJlYWR5aW5kZW50ZWQ9ZmFsc2U7DQogICAgJGluc2lkZV9xX3NpbmdsZT1mYWxzZTsNCiAgICAkaW5zaWRlX3FfZG91YmxlPWZhbHNlOw0KICAgIHdoaWxlICgkcDxzdHJsZW4oJHMpKSB7DQogICAgICBzd2l0Y2ggKCRzdGF0ZSkgew0KICAgICAgICBjYXNlICJvdXRzaWRlIiA6IHsgLy8gT0ssIHdlJ3JlIG91dHNpZGUgYW55IHRhZ3MNCiAgICAgICAgICBpZiAoJHNbJHBdPT0iPCIpIHsgLy9TdGFydGluZyBhIHRhZz8NCiAgICAgICAgICAgICRzdGF0ZT0ic2VhcmNoaW5nIjsgLy9XZWxsLCBsZXQncyBjaGFuZ2Ugc3RhdGUNCiAgICAgICAgICAgICR0YWc9IjwiOyAvL1RoZSB0YWctdmFyIGlzIHVwZGF0ZWQgICAgICAgICAgICANCiAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgaWYgKCEkcmF3b3V0cHV0KSB7IC8vb3V0cHV0dGluZyByYXc/DQogICAgICAgICAgICAgIGlmICghJHJldHVybnNlbnQpIHsgLy9Ob3Qgc3RhcnRpbmcgYSB0YWcNCiAgICAgICAgICAgICAgICBpZiAoJHNbJHBdIT0iICIpIHsgLy9JZiBhbnl0aGluZyBlbHNlIGJ1dCBzcGFjZXMsIGxldHMgaW5kZW50IGFzIGlzIGFwcHJvcHJhaXRlDQogICAgICAgICAgICAgICAgICAkcmVzdWx0Lj0obmVjaG9fbWtpbmRlbnQoJGluZCwvKiRuZWVkcmV0dXJuKi90cnVlKSk7DQogICAgICAgICAgICAgICAgICAkcmV0dXJuc2VudD10cnVlOw0KICAgICAgICAgICAgICAgICAgJG5lZWRyZXR1cm49ZmFsc2U7DQogICAgICAgICAgICAgICAgICAkYWxyZWFkeWluZGVudGVkPXRydWU7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgIGlmIChzdHJwb3MoIlxuXHRcciIsJHNbJHBdKT09PWZhbHNlKSAkcmVzdWx0Lj0kc1skcF07IC8vQW5kIGFkZCB0aGUgY2hhciBpZiBpdCdzIG5vdCBhIG5ld2xpbmUNCiAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICRyZXN1bHQuPSRzWyRwXTsgLy9BbmQgYWRkIHRoZSBjaGFyDQogICAgICAgICAgICB9DQogICAgICAgICAgfQ0KICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIGNhc2UgInNlYXJjaGluZyIgOiB7DQogICAgICAgICAgaWYgKCRzWyRwXT09Ij4iKSB7IC8vRW5kIG9mIHRhZz8/DQogICAgICAgICAgICAkdGFnLj0iPiI7IC8vTm90IGZvdW5kLCBkb2VzIG5vdCBrbm93IHdoYXQgdG8gZG8uLi4NCiAgICAgICAgICAgICRyZXN1bHQuPW5lY2hvX2FkZHRhZygkdGFnKTsgLy9TaW1wbHkgYWRkIGl0Li4uDQogICAgICAgICAgICAkc3RhdGU9Im91dHNpZGUiOyAvL0FuZCBjaGFuZ2Ugc3RhdGUNCiAgICAgICAgICAgICRyZXR1cm5zZW50PXRydWU7ICAvL05vIHJldHVybiBzZW50LCBidXQgYXMgd2UgZm91bmQgbm8gdGFnIGl0IHNob3VsZG4ndCBwcm9iYWJseQ0KICAgICAgICAgIH0gZWxzZSBpZiAoJHNbJHBdPT0iPCIpIHsvL2htbW0NCiAgICAgICAgICAgICR0YWcuPSI8IjsgLy9XZWxsLCBub3RoaW5nIHRvIGRvIGJ1dCB0byBhZGQgdGhlIHRoaW5nLi4uDQogICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICR0YWcuPSRzWyRwXTsgLy9BZGQgdG8gdGhlIHRhZyAiaW4gcHJvZ3Jlc3MiDQogICAgICAgICAgICAkcGVlaz0iIjsNCiAgICAgICAgICAgIGlmICgkcDxzdHJsZW4oJHMpKSB7DQogICAgICAgICAgICAgICRwZWVrPSRzWyRwKzFdOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy9pZiAoJHNbJHBdPT0iICIpIGNvbnRpbnVlOyAvL1RhZyBub3QgY29tcGxldGUgeWV0DQogICAgICAgICAgICAkZm91bmQ9ZmFsc2U7IC8vbm90IGZvdW5kIHlldCENCiAgICAgICAgICAgICR1dGFnPXN0cnRvdXBwZXIoJHRhZyk7IC8vUHJlcGFyZSBhbiB1cHBlcmNhc2UgdGFnIHZlcnNpb24NCiAgICAgICAgICAgIGZvciAoJGk9MDsgJGk8Y291bnQoJGluZGVudHMpOyRpKyspIHsgLy9TZWFyY2ggdGhlIGluZGVudCBhcnJheQ0KICAgICAgICAgICAgICBpZiAoJHV0YWc9PSRpbmRlbnRzWyRpXSAmJiAoJHBlZWs9PSIgIiB8fCAkcGVlaz09Ij4iIHx8ICRwZWVrPT0iLyIpKSB7DQogICAgICAgICAgICAgICAgJHJlc3VsdC49KG5lY2hvX21raW5kZW50KCRpbmQsdHJ1ZSkubmVjaG9fYWRkdGFnKCR0YWcpKTsNCiAgICAgICAgICAgICAgICAvLyEkcmV0dXJuc2VudA0KICAgICAgICAgICAgICAgIGlmICgkR0xPQkFMU1sibmVjaG9fZGVidWdtb2RlIl0pIHsNCiAgICAgICAgICAgICAgICAgIGFycmF5X3B1c2goJGluZGVudGFycmF5LCR1dGFnKTsNCiAgICAgICAgICAgICAgICAgIGlmICgkR0xPQkFMU1sibmVjaG9fZGVidWdsZXZlbCJdPT0idmVyYm9zZSIpIHsNCiAgICAgICAgICAgICAgICAgICAgJGluZGVudG1lc3NhZ2U9IiA8IS0tIGFkZGVkIHRvIHN0YWNrICIuc3Vic3RyKCR1dGFnLDEpLiIgLS0+IjsNCiAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgJHN0YXRlPSJpbnNpZGUiOyAkZm91bmQ9dHJ1ZTsgLy9mb3VuZCEgTm93IHdlJ3JlIGluc2lkZSBhIGtub3duIHRhZyENCiAgICAgICAgICAgICAgICAkaW5kKys7CS8vSW5jcmVhc2UgaW5kZW50YXRpb24NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKCEkZm91bmQpIHsgLy9zZWFyY2ggdGhlIEFudGktSW5kZW50YXJyYXkNCiAgICAgICAgICAgICAgZm9yICgkaT0wOyAkaTxjb3VudCgkYW50aW5kZW50cyk7JGkrKykgew0KICAgICAgICAgICAgICAgIGlmICgkdXRhZz09JGFudGluZGVudHNbJGldKSB7DQogICAgICAgICAgICAgICAgICAkaW5kLS07IC8vRGVjcmVhc2UgaW5kZW50YXRpb24NCiAgICAgICAgICAgICAgICAgIGlmICgkR0xPQkFMU1sibmVjaG9fZGVidWdtb2RlIl0pIHsNCiAgICAgICAgICAgICAgICAgICAgJGV4cGVjdGVkPWFycmF5X3BvcCgkaW5kZW50YXJyYXkpOw0KICAgICAgICAgICAgICAgICAgICAkZXhwZWN0ZWQ9JGV4cGVjdGVkWzBdLiIvIi5zdWJzdHIoJGV4cGVjdGVkLDEpOw0KICAgICAgICAgICAgICAgICAgICBpZiAoJHV0YWc9PSRleHBlY3RlZCkgew0KICAgICAgICAgICAgICAgICAgICAgIGlmICgkR0xPQkFMU1sibmVjaG9fZGVidWdsZXZlbCJdPT0idmVyYm9zZSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICRpbmRlbnRtZXNzYWdlPSIgPCEtLSByZW1vdmVkIHRvIHN0YWNrICIuc3Vic3RyKCR1dGFnLDEpLiIgLS0+IjsNCiAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgJGluZGVudG1lc3NhZ2U9IiA8IS0tIGVycm9yOiByZW1vdmVkIGZyb20gc3RhY2sgIi5zdWJzdHIoJHV0YWcsMSkuIiwgZXhwZWN0ZWQgIi5zdWJzdHIoJGV4cGVjdGVkLDEpLiIgLS0+IjsNCiAgICAgICAgICAgICAgICAgICAgICAkR0xPQkFMU1sibmVjaG9fZXJyb3JzIl0rKzsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgJHJlc3VsdC49KG5lY2hvX21raW5kZW50KCRpbmQpLm5lY2hvX2FkZHRhZygkdGFnKSk7IC8vSnVzdCBwdXQgaXQgdGhlcmUNCiAgICAgICAgICAgICAgICAgICRzdGF0ZT0iaW5zaWRlIjsgJGZvdW5kPXRydWU7IC8vZm91bmQhIE5vdyB3ZSdyZSBpbnNpZGUgYSBrbm93biB0YWchDQogICAgICAgICAgICAgICAgICAkbmVlZHJldHVybj10cnVlOw0KICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAoISRmb3VuZCkgeyAvL3NlYXJjaCB0aGUgbGVmdC1hbGlnbmVkIGFycmF5DQogICAgICAgICAgICAgIGZvciAoJGk9MDsgJGk8Y291bnQoJGxlZnRzKTskaSsrKSB7DQogICAgICAgICAgICAgICAgaWYgKCR1dGFnPT0kbGVmdHNbJGldKSB7DQogICAgICAgICAgICAgICAgICAkcmVzdWx0Lj0obmVjaG9fbWtpbmRlbnQoMCkubmVjaG9fYWRkdGFnKCR0YWcpKTsgLy9KdXN0IHB1dCBpdCB0aGVyZQ0KICAgICAgICAgICAgICAgICAgJHN0YXRlPSJpbnNpZGUiOyAkZm91bmQ9dHJ1ZTsgLy9XZSdyZSBpbnNpZGUgYSBrbm93biB0YWchDQogICAgICAgICAgICAgICAgICAvLyRlbmRyZXR1cm49dHJ1ZTsNCiAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKCEkZm91bmQpIHsNCiAgICAgICAgICAgICAgZm9yICgkaT0wOyAkaTxjb3VudCgkc3RhbmRhbG9uZSk7JGkrKykgeyAvL1NlYXJjaCB0aGUgc3RhbmQtYWxvbmUtdGFnIGFycmF5DQogICAgICAgICAgICAgICAgaWYgKCR1dGFnPT0kc3RhbmRhbG9uZVskaV0pIHsNCiAgICAgICAgICAgICAgICAgICRyZXN1bHQuPShuZWNob19ta2luZGVudCgkaW5kKS5uZWNob19hZGR0YWcoJHRhZykpOyAvL1B1dCBpdCB0aGVyZSBwcm9wZXJseSBpbmRlbnRlZA0KICAgICAgICAgICAgICAgICAgJHN0YXRlPSJpbnNpZGUiOyAkZm91bmQ9dHJ1ZTsJCS8vV2UncmUgaW5zaWRlIGEga25vd24gdGFnIQ0KICAgICAgICAgICAgICAgICAgJGluc2lkZXN0YW5kYWxvbmU9dHJ1ZTsNCiAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKCEkZm91bmQpIHsNCiAgICAgICAgICAgICAgZm9yICgkaT0wOyAkaTxjb3VudCgkcmF3c3RhcnRzKTskaSsrKSB7IC8vU2VhcmNoIHRoZSByYXdzdGFydGVycy10YWcgYXJyYXkNCiAgICAgICAgICAgICAgICBpZiAoJHV0YWc9PSRyYXdzdGFydHNbJGldKSB7DQogICAgICAgICAgICAgICAgICAkcmVzdWx0Lj1uZWNob19hZGR0YWcoJHRhZyk7IC8vQWRkIHRoZSB0YWcgd2l0aG91dCBpbmRlbnRhdGlvbnMNCiAgICAgICAgICAgICAgICAgICRzdGF0ZT0iaW5zaWRlIjsgJGZvdW5kPXRydWU7CQkvL1dlJ3JlIGluc2lkZSBhIGtub3duIHRhZyENCiAgICAgICAgICAgICAgICAgICRyYXdvdXRwdXQ9dHJ1ZTsgIC8vUmF3IG91dHB1dA0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKCEkZm91bmQpIHsNCiAgICAgICAgICAgICAgZm9yICgkaT0wOyAkaTxjb3VudCgkcmF3ZW5kcyk7JGkrKykgeyAvL1NlYXJjaCB0aGUgcmF3c3RhcnRlcnMtdGFnIGFycmF5DQogICAgICAgICAgICAgICAgaWYgKCR1dGFnPT0kcmF3ZW5kc1skaV0pIHsNCiAgICAgICAgICAgICAgICAgICRyZXN1bHQuPW5lY2hvX2FkZHRhZygkdGFnKTsvL0FkZCB0aGUgdGFnIHdpdGhvdXQgaW5kZW50YXRpb25zDQogICAgICAgICAgICAgICAgICAkc3RhdGU9Imluc2lkZSI7ICRmb3VuZD10cnVlOwkJLy9XZSdyZSBpbnNpZGUgYSBrbm93biB0YWchDQogICAgICAgICAgICAgICAgICAkcmF3b3V0cHV0PWZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKCEkZm91bmQpIHsNCiAgICAgICAgICAgICAgZm9yICgkaT0wOyAkaTxjb3VudCgkc2NyaXB0c3RhcnRzKTskaSsrKSB7IC8vU2VhcmNoIHRoZSBzY3JpcHRzdGFydGVycy10YWcgYXJyYXkNCiAgICAgICAgICAgICAgICBpZiAoJHV0YWc9PSRzY3JpcHRzdGFydHNbJGldKSB7DQogICAgICAgICAgICAgICAgICAkcmVzdWx0Lj0obmVjaG9fbWtpbmRlbnQoJGluZCkubmVjaG9fYWRkdGFnKCR0YWcpKTsgLy9QdXQgaXQgdGhlcmUgcHJvcGVybHkgaW5kZW50ZWQNCiAgICAgICAgICAgICAgICAgICRzdGF0ZT0iaW5zaWRlIjsgJGZvdW5kPXRydWU7CQkvL1dlJ3JlIGluc2lkZSBhIGtub3duIHRhZyENCiAgICAgICAgICAgICAgICAgICRyYXdvdXRwdXQ9dHJ1ZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmICghJGZvdW5kKSB7DQogICAgICAgICAgICAgIGZvciAoJGk9MDsgJGk8Y291bnQoJHNjcmlwdGVuZHMpOyRpKyspIHsgLy9TZWFyY2ggdGhlIHJhd3N0YXJ0ZXJzLXRhZyBhcnJheQ0KICAgICAgICAgICAgICAgIGlmICgkdXRhZz09JHNjcmlwdGVuZHNbJGldKSB7DQogICAgICAgICAgICAgICAgICAkcmVzdWx0Lj0obmVjaG9fbWtpbmRlbnQoJGluZCkubmVjaG9fYWRkdGFnKCR0YWcpKTsgLy9QdXQgaXQgdGhlcmUgcHJvcGVybHkgaW5kZW50ZWQNCiAgICAgICAgICAgICAgICAgICRzdGF0ZT0iaW5zaWRlIjsgJGZvdW5kPXRydWU7CQkvL1dlJ3JlIGluc2lkZSBhIGtub3duIHRhZyENCiAgICAgICAgICAgICAgICAgICRyYXdvdXRwdXQ9ZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgfQ0KICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIGNhc2UgImluc2lkZSIgOiB7DQogICAgICAgICAgaWYgKCRzWyRwXT09Ij4iKSB7IC8vRW5kIG9mIHRhZyBmb3VuZCENCiAgICAgICAgICAgIGlmICgoJGluc2lkZV9xX3NpbmdsZT09dHJ1ZSkgfHwgKCRpbnNpZGVfcV9kb3VibGU9PXRydWUpKSAgew0KICAgICAgICAgICAgICAkcmVzdWx0Lj0iPiI7IC8vQWRkIHRvIG91dHB1dCwgc3RpbGwgaW5zaWRlIGEgdGFnDQogICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAkcmVzdWx0Lj0iPiI7IC8vQWRkIGl0IHRvIG91dHB1dA0KICAgICAgICAgICAgICAkcmV0dXJuc2VudD1mYWxzZTsgLy9ObyByZXR1cm4gc2VudA0KICAgICAgICAgICAgICAkc3RhdGU9Im91dHNpZGUiOyAvL0FuZCBjaGFuZ2Ugc3RhdGUNCiAgICAgICAgICAgICAgaWYgKCRHTE9CQUxTWyJuZWNob19kZWJ1Z21vZGUiXSkgew0KICAgICAgICAgICAgICAgIGlmICgkaW5kZW50bWVzc2FnZSE9IiIpIHsNCiAgICAgICAgICAgICAgICAgICRyZXN1bHQuPSRpbmRlbnRtZXNzYWdlOw0KICAgICAgICAgICAgICAgICAgJGluZGVudG1lc3NhZ2U9IiI7DQogICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgIGlmICgkaW5zaWRlc3RhbmRhbG9uZSkgew0KICAgICAgICAgICAgICAgICAgICBpZiAoc3Vic3RyKCRyZXN1bHQsLTIsMSkhPSIvIikgew0KICAgICAgICAgICAgICAgICAgICAgICRyZXN1bHQuPSIgPCEtLSBlcnJvcjogRGlkIHlvdSByZW1lbWJlciB0byBhZGQgLyB0byBzdGFuZGFsb25lIHRhZz8gLS0+IjsNCiAgICAgICAgICAgICAgICAgICAgICAkR0xPQkFMU1sibmVjaG9fZXJyb3JzIl0rKzsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgJGluc2lkZXN0YW5kYWxvbmU9ZmFsc2U7DQogICAgICAgICAgICB9DQogICAgICAgICAgfSBlbHNlIGlmICgkc1skcF09PSI8Iikgey8vaG1tbSwgaHRtbC1lcnJvcj8NCiAgICAgICAgICAgICRyZXN1bHQuPSI8IjsgLy9XZWxsLCBqdXN0IGFkZCB0aGUgdGhpbmcuLi4NCg0KICAgICAgICAgIH0NCiAgICAgICAgICBlbHNlIGlmICgkc1skcF09PSJcIiIpIHsNCiAgICAgICAgICAgIGlmICgkaW5zaWRlX3FfZG91YmxlPT10cnVlKSB7DQogICAgICAgICAgICAgICRpbnNpZGVfcV9kb3VibGU9ZmFsc2U7ICAvL09LLCBlbmQgb2YgcGFyYW1ldGVyDQogICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAkaW5zaWRlX3FfZG91YmxlPXRydWU7ICAvL09LLCB0aGlzIG11c3QgYmUgYSBwYXJhbWV0ZXINCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgICRyZXN1bHQuPSRzWyRwXTsgLy9BZGQgdG8gb3V0cHV0LCBzdGlsbCBpbnNpZGUgYSB0YWcNCiAgICAgICAgICB9IGVsc2UgaWYgKCRzWyRwXT09IlwnIikgew0KICAgICAgICAgICAgaWYgKCRpbnNpZGVfcV9zaW5nbGU9PXRydWUpIHsNCiAgICAgICAgICAgICAgJGluc2lkZV9xX3NpbmdsZT1mYWxzZTsgIC8vT0ssIGVuZCBvZiBwYXJhbWV0ZXINCiAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICRpbnNpZGVfcV9zaW5nbGU9dHJ1ZTsgIC8vT0ssIHRoaXMgbXVzdCBiZSBhIHBhcmFtZXRlcg0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgJHJlc3VsdC49JHNbJHBdOyAvL0FkZCB0byBvdXRwdXQsIHN0aWxsIGluc2lkZSBhIHRhZw0KICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAkcmVzdWx0Lj0kc1skcF07IC8vQWRkIHRvIG91dHB1dCwgc3RpbGwgaW5zaWRlIGEgdGFnDQogICAgICAgICAgfQ0KICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICB9DQogICAgICAkcCsrOyAgLy9JbmNyZWFzZSBwb2ludGVyIGluIHN0cmluZw0KICAgIH0NCiAgICAkR0xPQkFMU1sibmVjaG9fdGltZXIiXSs9KG1pY3JvdGltZSh0cnVlKS0kc3RhcnR0aW1lKTsNCiAgICByZXR1cm4gJHJlc3VsdDsNCiAgfQ0KfSAvL2lvbl9leGlzdHMNCg0KaWYgKCFmdW5jdGlvbl9leGlzdHMoIm5lY2hvX3N0YXJ0IikpIHsNCiAgZnVuY3Rpb24gbmVjaG9fc3RhcnQoKSB7DQogICAgb2Jfc3RhcnQoImd6X2hhbmRsZXIiKTsgLy9HTG9iYWwgb3V0cHV0IGJ1ZmZlciwgR1onZWQNCiAgICBpZiAoIW5lY2hvX2lzcmF3KCkpIHsNCiAgICAgIG9iX3N0YXJ0KCk7IC8vaW50ZXJuYWwgbmVjaG8tYnVmZmVyDQogICAgICBuZWNobygiPCEtLSBORUNITyBPVVRQVVQgU1RBUlQgIi4kR0xPQkFMU1sibmVjaG9fdmVyc2lvbiJdLiIgLS0+XG4iKTsNCiAgICB9DQogIH0NCn0gLy9mdW5jdGlvbl9leGlzdHMNCg0KDQppZiAoIWZ1bmN0aW9uX2V4aXN0cygibmVjaG8iKSkgew0KICBmdW5jdGlvbiBuZWNobygkczEsJGZsdXNoPWZhbHNlLCRyZWN1cnNlPXRydWUpIHsNCiAgICAvLyAgZWNobyAkczEuIlxuIjsgcmV0dXJuOw0KICAgIGlmIChuZWNob19pc3JhdygpKSB7ZWNobyAkczEuIlxuIjsgcmV0dXJuO307IC8vaWYgbm90IGVuYWJsZWQgc2ltcGx5IG91dHB1dA0KICAgIHN0YXRpYyAkX3M7DQogICAgaWYgKCRyZWN1cnNlKSB7DQogICAgICAkX2J1ZmZlcj1vYl9nZXRfY29udGVudHMoKTsgLy8ic2F2ZSIgYW55IGNvbnRlbnQgbm90IHNlbmQgdGhyb3VnaCBuZWNobw0KICAgICAgb2JfZW5kX2NsZWFuKCk7IG9iX3N0YXJ0KCk7IC8vQ2xlYXIgdGhlIGludGVybmFsIG5lY2hvLWJ1ZmZlcg0KICAgICAgLy9vYl9jbGVhbigpOyAvL1BIUCB2ZXJzaW9uIDQuMi4wKw0KICAgICAgbmVjaG8oJF9idWZmZXIsZmFsc2UsZmFsc2UpOyAvL0FuZCBmb3JtYXQvc2hvdyB0aGlzIGNvbnRlbnQNCg0KICAgIH0NCiAgICAkczE9dHJpbSgkczEpOw0KICAgIGlmICgkczEhPSIiKSAkX3MuPSgkczEuIlxuIik7DQogICAgaWYgKChzdHJsZW4oJF9zKT4xMDI0KSB8fCAkZmx1c2gpIHsNCiAgICAgIHN3aXRjaCAoJEdMT0JBTFNbIm5lY2hvX2h0bWxzdGF0ZSJdKSB7DQogICAgICAgIGNhc2UgInVnbHkiIDogJF9zPW5lY2hvX3VnbHlmeSgkX3MpOyBicmVhazsNCiAgICAgICAgY2FzZSAiZHVsbCIgOiAkX3M9bmVjaG9fY2xlYW4oJF9zKTsgYnJlYWs7DQogICAgICAgIGNhc2UgImZvcm1hdCIgOiAkX3M9bmVjaG9fdWdseWZ5KCRfcyk7ICRfcz1uZWNob19mb3JtYXQoJF9zKTsgYnJlYWs7DQogICAgICAgIGRlZmF1bHQgOiA7ICAvL3JhdyBoYXMgYmVlbiB0YWtlbiBjYXJlIG9mIGFib3ZlLi4uDQogICAgICB9DQoNCiAgICAgIGVjaG8gJF9zOw0KICAgICAgb2JfZW5kX2ZsdXNoKCk7IG9iX3N0YXJ0KCk7DQogICAgICAkX3M9IiI7DQogICAgfQ0KDQogIH0NCn0gLy9mdW5jdGlvbl9leGlzdHMNCg0KaWYgKCFmdW5jdGlvbl9leGlzdHMoIm5lY2hvX3JhdyIpKSB7DQogIGZ1bmN0aW9uIG5lY2hvX3JhdygkczEpIHsNCiAgICBpZiAoIW5lY2hvX2lzcmF3KCkpIHsNCiAgICAgIG5lY2hvX2ZsdXNoKCk7IC8vRW1wdHkgb3V0cHV0IGJ1ZmZlciwgZm9ybWF0dGluZyBpdCBhcyBpdCBzaG91bGQNCiAgICAgIG9iX2VuZF9jbGVhbigpOyAvL1N0b3AgaW5uZXIgYnVmZmVyDQogICAgICBlY2hvICRzMS4iXG4iOyAvL091dHB1dCByYXcNCiAgICAgIG9iX3N0YXJ0KCk7DQogICAgfSBlbHNlIHsNCiAgICAgIG5lY2hvKCRzMSk7DQogICAgfQ0KDQogICAgLy8JbmVjaG9fZmx1c2goKTsgIC8vRmx1c2ggYWdhaW4NCiAgfQ0KfSAvL2Z1bmN0aW9uX2V4aXN0cw0KDQppZiAoIWZ1bmN0aW9uX2V4aXN0cygibmVjaG9fbmJzcCIpKSB7DQogIGZ1bmN0aW9uIG5lY2hvX25ic3AoJHMxKSB7DQogICAgbmVjaG8oc3RyX3JlcGxhY2UoIiAiLCImbmJzcDsiLCRzMSkpOyAvL2V4Y2hhbmdlIHNwYWNlcyB0byBlbnRpdGllcywgYW5kIGVjaG8NCiAgfQ0KfSAvL2Z1bmN0aW9uX2V4aXN0cw0KDQppZiAoIWZ1bmN0aW9uX2V4aXN0cygibmJzcCIpKSB7DQogIGZ1bmN0aW9uIG5ic3AoJHMxKSB7DQogICAgcmV0dXJuIHN0cl9yZXBsYWNlKCIgIiwiJm5ic3A7IiwkczEpOwkvL2V4Y2hhbmdlIHNwYWNlcyB0byBlbnRpdGllcywgYW5kIHJldHVybiBpdA0KICB9DQp9IC8vZnVuY3Rpb25fZXhpc3RzDQoNCg0KaWYgKCFmdW5jdGlvbl9leGlzdHMoIm5lY2hvX2VuZCIpKSB7DQogIGZ1bmN0aW9uIG5lY2hvX2VuZCgpIHsNCiAgICBpZiAoIW5lY2hvX2lzcmF3KCkpIHsNCiAgICAgIG5lY2hvKCI8IS0tIE5FQ0hPIE9VVFBVVCBFTkQgW2VuZCBpbmRlbnQgbGV2ZWwgaXMgIi4kR0xPQkFMU1sibmVjaG9faW5kZW50bGV2ZWwiXS4iIHNob3VsZCBiZSAwXSBHZW5lcmF0aW9uIHRpbWU6ICIuZGF0ZSgiSDppOnMgZC9tL3kiKS4iLS0+Iik7DQogICAgICBuZWNobygiIix0cnVlLHRydWUpOyAvL0ZsdXNoIGFsbA0KICAgICAgb2JfZW5kX2ZsdXNoKCk7IC8vdGhlIGludGVybmFsIG5lY2hvX2J1ZmZlcg0KICAgIH0NCiAgICBvYl9lbmRfZmx1c2goKTsNCiAgfQ0KDQp9IC8vZnVuY3Rpb25fZXhpc3RzDQoNCi8vSG1tbSwgZG9uJ3Qga25vdyBpZiB0aGlzIHdvcmtzLCBidXQgaXQgaXMgbWVhbnQgdG8gc2hvdyBzb21lIHByb2dyZXNzIGluIHRoZQ0KLy9jbGllbnQgYnJvd3Nlcg0KaWYgKCFmdW5jdGlvbl9leGlzdHMoIm5lY2hvX2ZsdXNoIikpIHsNCiAgZnVuY3Rpb24gbmVjaG9fZmx1c2goKSB7DQogICAgaWYgKCFuZWNob19pc3JhdygpKSB7IC8vaWYgbmVjaG9fYnVmZmVyaW5nIGVuYWJsZWQgZmx1c2ggaXQNCiAgICAgIG5lY2hvKCIiLHRydWUsdHJ1ZSk7IC8vRmx1c2ggYWxsDQogICAgICBvYl9lbmRfZmx1c2goKTsgLy90aGUgaW50ZXJuYWwgbmVjaG9fYnVmZmVyDQogICAgfQ0KICAgIG9iX2VuZF9mbHVzaCgpOyAvL2ZsdXNoIHRoZSBvYmxpb2dhdG9yeSBnei1idWZmZXINCg0KICAgIG9iX3N0YXJ0KCJnel9oYW5kbGVyIik7IC8vR0xvYmFsIG91dHB1dCBidWZmZXIsIEdaJ2VkDQogICAgaWYgKCFuZWNob19pc3JhdygpKSB7DQogICAgICBvYl9zdGFydCgpOyAvL2ludGVybmFsIG5lY2hvLWJ1ZmZlcg0KICAgIH0NCiAgfQ0KfSAvL2Z1bmN0aW9uX2V4aXN0cw0KDQoNCi8qDQogSElTVE9SWQ0KIDAuMy4yIC0gQWRkZWQgPHN0eWxlPiB0byBpbmRlbnRhdGlvbnMNCiAwLjMuMSAtIEFkZGVkIG9wdGlvbiB0byBmb3JjZSBsb3dlcmNhc2UgdGFncy4NCiAwLjMuMCAtIEZpeGVkIExJTksgdG8gbm90IGluZGVudCwgYWRkZWQgQkFTRSB0byBzdGFuZGFsb25lbGlzdC4NCiAwLjIuMSAtDQogMC4yLjAgLSBjb3JyZWN0bHkgaGFuZGxlIHRhZ3MgaW5zaWRlIHRhZy1wYXJhbWV0cmVzLCBmLmV4LiBlbWJlZGRlZCBqYXZhc2NyaXB0IG91dHB1dHRpbmcgdGFncw0KIDAuMS45IC0gRml4ZWQgc29tIGlzc3VlcyB3aGVyZSB0aGVyZSBhcHBlYXJlZCBhIGxpbmUgZmVlZCBpbnN0ZWFkIG9mIGEgc3BhY2UuLi4NCiAwLjEuNiAtIFdvcmtlZCBvbiA8c2NyaXB0PiBwcm9jZXNzaW5nDQogMC4xLjUgLSBhZGRlZCA8c2NyaXB0PiB0byBub25mb3JtYXR0ZWQgb3V0cHV0DQogMC4xLjQgLSBmaXhlZCA8dGV4dGFyZWE+IGFuZCA8cHJlPiBvdXRwdXQgb25jZSBhZ2Fpbg0KIDAuMS4zIC0gRml4ZWQgYSBidWcgY2F1c2luZyBvY2Nhc3NvaW5hbCB0cm91YmxlIHdpdGggZWFybHkgc2VudCBkYXRhLCB3aGljaCBjYXVzZWQgaGVhZGVyL2Nvb2tpZXMgdG8gZmFpbA0KIDAuMS4yIC0gRml4ZWQgYSBidWcgY2F1c2luZyBzb21lIGV4dHJhIHNwYWNlcyB0byBiZSBhZGRlZCB0byA8dGV4dGFyZWE+IC0gY29udGVudA0KIDAuMS4xIC0gU29tZSBpc3N1ZXMgZml4ZWQuLi4gQSBjb3VwbGUgb2YgZGV0YWlscyB0byBnbywgYnV0IGdlbmVyYWxseSBpdCB3b3JrcyBncmVhdCENCiAwLjEuMCAtIFdlbGwsIEkgYWN0dWFsbHkgZ290IHRoZSBmb3JtYXR0aW5nIHRvIHdvcmssIHdoaWNoIHdhcyB0aGUgbWFpbiByZWFzb24NCiBJIHN0YXJ0ZWQgdGhpcyBwcm9qZWN0LCBzbyBJIGd1ZXNzIHZlcnNpb24gMC4xLjAgaXMgaW4gb3JkZXIuLi4NCiBOb3QsIGV4YWN0bHkgcGVyZmVjdCwgdGhvdWdoIDstKQ0KIDAuMC4zIC0gSG1tbSwgSSBmb3Jnb3QNCiAwLjAuMiAtIGFkZGVkIG5lY2hvX2ZsdXNoIGFuZCBmaXhlZCBzb21lIGJ1Z3MNCiAwLjAuMSAtIGZpcnN0IHJlbGVhc2Ugd2l0aCBsaXRlTnVrZQ0KDQogKi8NCg0KPz4NCg==]]></data>
	</file>
	<file>
	  <filename>/ScriptDeploy.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCi8qKg0KICogTW9kdWxlOiBTY3JpcHREZXBsb3kgLSBNaW5pZnkgYW5kIGRlcGxveW1lbnQgb2YgSlMgQ1NTIGFuZCBIVE1MDQogKiANCiAqIA0KICogQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykNCiAqIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnDQogKiBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvc2NyaXB0ZGVwbG95Lw0KICogDQogKiBAcGFja2FnZSBTY3JpcHREZXBsb3kNCiAqIEBhdXRob3IgamVyZW15QmFzcyA8amVyZW15QmFzc0BjYWJsZW9uZS5uZXQ+DQogKiBAY29weXJpZ2h0IEplcmVteSBCYXNzDQogKiBAbGljZW5zZSBodHRwOi8vd3d3LmdudS5vcmcvY29weWxlZnQvZ3BsLmh0bWwgRnJlZWx5IGF2YWlsYWJsZSB1bmRlciBHUEwNCiAqLw0KDQpkZWZpbmUoJ1NEX1RBQkxFJyxjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9zY3JpcHRkZXBsb3knKTsNCmRlZmluZSgnU0RfUEVSU0lTVEVOVCcsY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfc2NyaXB0ZGVwbG95X3BlcnNpc3RlbnQnKTsNCmRlZmluZSgnU0RfQUxURVJOQVRFJyxjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9zY3JpcHRkZXBsb3lfYWx0ZXJuYXRlJyk7DQpkZWZpbmUoJ1NEX0dST1VQQVNTSUdOTUVOVCcsY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfc2NyaXB0ZGVwbG95X2dyb3VwYXNzaWdubWVudCcpOw0KZGVmaW5lKCdTRF9HUk9VUCcsY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfc2NyaXB0ZGVwbG95X2dyb3VwJyk7DQpkZWZpbmUoJ1NEX1NDUklQVE5BTUVTJyxjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9zY3JpcHRkZXBsb3lfc2NyaXB0bmFtZXMnKTsNCmRlZmluZSgnU0RfU0NSSVBUT1BUSU9OUycsY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfc2NyaXB0ZGVwbG95X3NjcmlwdG9wdGlvbnMnKTsNCmRlZmluZSgnU0RfU0NSSVBUUEFSVFMnLGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3NjcmlwdGRlcGxveV9zY3JpcHRwYXJ0cycpOw0KZGVmaW5lKCdTRF9TQ1JJUFRVTkRPJyxjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9zY3JpcHRkZXBsb3lfc2NyaXB0dW5kbycpOw0KDQppbmlfc2V0KCdpbmNsdWRlX3BhdGgnLCANCglkaXJuYW1lKF9fRklMRV9fKSAuICcvbGliJw0KCS4gUEFUSF9TRVBBUkFUT1IgLiBpbmlfZ2V0KCdpbmNsdWRlX3BhdGgnKQ0KKTsNCmluY2x1ZGVfb25jZShkaXJuYW1lKF9fRklMRV9fKS4iL25lY2hvLnBocCIpOw0KcmVxdWlyZV9vbmNlICdNaW5pZnkvQ1NTLnBocCc7DQpyZXF1aXJlX29uY2UgJ01pbmlmeS9KYXZhc2NyaXB0LnBocCc7DQoNCmNsYXNzIFNjcmlwdERlcGxveSBleHRlbmRzIENNU01vZHVsZXsNCgl2YXIgJGRmbHRfZm9ybV90ZW1wbGF0ZSA9ICcNCgkJe2xpdGVyYWx9DQoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4NCgkJZnVuY3Rpb24gc2VsZWN0c3R5bGUoKXsNCgkJICB2YXIgaWR4ID0gd2luZG93LmRvY3VtZW50LnN0eWxlc3dpdGNoZXIuc3R5bGVzZWxlY3Rvci5zZWxlY3RlZEluZGV4Ow0KCQkgIHZhciBzdHlsZSA9IHdpbmRvdy5kb2N1bWVudC5zdHlsZXN3aXRjaGVyLnN0eWxlc2VsZWN0b3Iub3B0aW9uc1tpZHhdLnZhbHVlOw0KCQkgIGNoYW5nZVN0eWxlKHN0eWxlKTsNCgkJfQ0KCQk8L3NjcmlwdD4NCgkJey9saXRlcmFsfQ0KCQk8Zm9ybSBuYW1lPSJzdHlsZXN3aXRjaGVyIiBtZXRob2Q9ImdldCIgYWN0aW9uPSIiIG9uc3VibWl0PSJyZXR1cm4gZmFsc2U7Ij4NCgkJICB7JHByb21wdF9zdHlsZXNoZWV0fQ0KCQkgIDxzZWxlY3QgaWQ9InN0eWxlc2VsZWN0b3IiIG9uY2xpY2s9InNlbGVjdHN0eWxlKCkiPg0KCQkgIHtmb3JlYWNoIGZyb209JG9wdGlvbnMgaXRlbT0ib3B0In0NCgkJCTxvcHRpb24gdmFsdWU9Inskb3B0LT5uYW1lfSI+eyRvcHQtPm5hbWV9PC9vcHRpb24+DQoJCSAgey9mb3JlYWNofQ0KCQkgIDwvc2VsZWN0Pg0KCQk8L2Zvcm0+JzsJDQogICAgdmFyICRjc3NfdXJsX1c9Jyc7DQogICAgdmFyICRhZGpLZXk9Jyc7DQogICAgdmFyICRjc3NfdXJsPScnOw0KICAgIHZhciAkZlNpemU9Jyc7CQ0KICAgIHZhciAkYmFzZVVSTD0nJzsJDQogICAgdmFyICRjc3NfcGF0aD0nJzsJDQogICAgdmFyICRlcnJvcj0nJzsNCgl2YXIgJHJlcG9ydD0nJzsNCgl2YXIgJFdfaW5wdXQ9Jyc7DQoJdmFyICRFX2lucHV0PScnOw0KCXZhciAkU0NSSVBUX1BBQ0tBR0U9Jyc7DQoNCgkNCglwdWJsaWMgZnVuY3Rpb24gR2V0TmFtZSgpe3JldHVybiBnZXRfY2xhc3MoJHRoaXMpO30NCglwdWJsaWMgZnVuY3Rpb24gR2V0RnJpZW5kbHlOYW1lKCl7cmV0dXJuICR0aGlzLT5MYW5nKCdmcmllbmRseW5hbWUnKTt9DQoJcHVibGljIGZ1bmN0aW9uIEdldFZlcnNpb24oKXtyZXR1cm4gJzAuNy42Jzt9DQoJcHVibGljIGZ1bmN0aW9uIEdldEhlbHAoKXtyZXR1cm4gJHRoaXMtPkxhbmcoJ2hlbHAnKTt9DQoJcHVibGljIGZ1bmN0aW9uIEdldEF1dGhvcigpe3JldHVybiAnamVyZW15QmFzcyc7fQ0KCXB1YmxpYyBmdW5jdGlvbiBHZXRBdXRob3JFbWFpbCgpe3JldHVybiAnamVyZW15YmFzc0BjYWJsZW9uZS5uZXQnO30NCglwdWJsaWMgZnVuY3Rpb24gR2V0Q2hhbmdlTG9nKCl7cmV0dXJuIGZpbGVfZ2V0X2NvbnRlbnRzKGRpcm5hbWUoX19GSUxFX18pLicvY2hhbmdlbG9nLmluYycpO30NCglwdWJsaWMgZnVuY3Rpb24gSXNQbHVnaW5Nb2R1bGUoKXtyZXR1cm4gdHJ1ZTt9DQoJcHVibGljIGZ1bmN0aW9uIEhhc0FkbWluKCl7cmV0dXJuIHRydWU7fQ0KCXB1YmxpYyBmdW5jdGlvbiBHZXRBZG1pblNlY3Rpb24oKXtyZXR1cm4gJ2xheW91dCc7fQ0KCXB1YmxpYyBmdW5jdGlvbiBHZXRBZG1pbkRlc2NyaXB0aW9uKCl7cmV0dXJuICR0aGlzLT5MYW5nKCdtb2RkZXNjcmlwdGlvbicpO30NCglwdWJsaWMgZnVuY3Rpb24gVmlzaWJsZVRvQWRtaW5Vc2VyKCl7cmV0dXJuICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBTdHlsZXNoZWV0IEFzc29jaWF0aW9ucycpIHx8DQogICAgICAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgVGVtbXBsYXRlcycpIHx8DQogICAgICAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdBZGQgU3R5bGVzaGVldCBBc3NvY2lhdGlvbnMnKSB8fA0KICAgICAgJHRoaXMtPkNoZWNrUGVybWlzc2lvbignQWRkIFRlbXBsYXRlcycpIHx8DQogICAgICAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdSZW1vdmUgVGVtcGxhdGVzJyk7fQ0KCXB1YmxpYyBmdW5jdGlvbiBHZXREZXBlbmRlbmNpZXMoKXtyZXR1cm4gYXJyYXkoKTt9DQoJcHVibGljIGZ1bmN0aW9uIE1pbmltdW1DTVNWZXJzaW9uKCl7cmV0dXJuICIxLjYuNyI7fQ0KCXB1YmxpYyBmdW5jdGlvbiBJbnN0YWxsUG9zdE1lc3NhZ2UoKXtyZXR1cm4gJHRoaXMtPkxhbmcoJ3Bvc3RpbnN0YWxsJyk7fQ0KCXB1YmxpYyBmdW5jdGlvbiBVbmluc3RhbGxQb3N0TWVzc2FnZSgpe3JldHVybiAkdGhpcy0+TGFuZygncG9zdHVuaW5zdGFsbCcpO30NCglwdWJsaWMgZnVuY3Rpb24gVW5pbnN0YWxsUHJlTWVzc2FnZSgpe3JldHVybiBmYWxzZTt9Ly8kdGhpcy0+TGFuZygncmVhbGx5X3VuaW5zdGFsbCcpOw0KCXB1YmxpYyBmdW5jdGlvbiBGaXJlRGVidWcoJGNvbW1hbmQsJG1lc3NhZ2UsJHZhcmlhYmxlcz1hcnJheSgpKXsNCgkgaWYoJHRoaXMtPkdldFByZWZlcmVuY2UoJ2RlYnVnSVQnKT09MSl7JGZpcmVwaHBtb2R1bGU9JHRoaXMtPkdldE1vZHVsZUluc3RhbmNlKCdGaXJlUEhQRGVidWcnKTsNCgkgIGlmICgkZmlyZXBocG1vZHVsZSl7DQoJCS8vTW9kdWxlIGZvdW5kDQoJCSRmaXJlcGhwbW9kdWxlLT5TZXRNb2R1bGVOYW1lKCR0aGlzLT5HZXROYW1lKCkpOw0KCQkkZmlyZXBocG1vZHVsZS0+Q29tbWFuZCgkY29tbWFuZCwgJG1lc3NhZ2UsICR2YXJpYWJsZXMpOw0KCSAgfSAvL2Vsc2UgTW9kdWxlIG5vdCBmb3VuZA0KCSB9DQoJfS8vJHRoaXMtPkZpcmVEZWJ1ZygnbWVzc2FnZScsJGspOy8vPDw8PC0tLS0tLUZpcmUgUEhQIG1lc3NhZ2UNCgkNCgkNCgkvL2FqYXggaG9va3MNCglwdWJsaWMgZnVuY3Rpb24gdmFsaWRhdGUoJHNjcmlwdFR5cGUsJHNJRCwkYWpheCl7DQoJCQkkVHVybk9OVmFsPSR0aGlzLT5HZXRQcmVmZXJlbmNlKCdUdXJuT05WYWwnLDEpOw0KCQkJaWYoJFR1cm5PTlZhbCl7DQoJCQkJcmV0dXJuIHNkVmFsOjp2YWxfSXQoJHNjcmlwdFR5cGUsJHNJRCwkYWpheCk7DQoJCQl9ZWxzZXsNCgkJCQlyZXR1cm4gZmFsc2U7DQoJCQl9DQoJCQlleGl0KCk7DQoJCX0NCglwdWJsaWMgZnVuY3Rpb24gcHVsbExvZ3MoJHBhZ2UsICRsaW1pdCwgJHdoZXJlQVJHKXtyZXR1cm4gc2RfbG9nZ2luOjpwdWxsTG9nKCRwYWdlLCAkbGltaXQsICR3aGVyZUFSRyk7ZXhpdCgpO30NCglwdWJsaWMgZnVuY3Rpb24gY3NzX3VybF9kaXNzZWN0aW9uKCRzSUQpe3JldHVybiBzY3JpcHRfZGlzc2VjdGlvbjo6Y3NzX3VybF9kaXNzZWN0aW9uKCRzSUQpO2V4aXQoKTt9DQoJDQoJLyoqDQoJICogTWV0aG9kOiBHZXRIZWFkZXJIVE1MDQoJICogDQoJICogDQoJICogQHNlZSBTY3JpcHREZXBsb3k6OkdldEhlYWRlckhUTUwoKQ0KCSAqIEBhY2Nlc3MgcHVibGljDQoJICogQHJldHVybiBIZWFkZXIgSlMgYW5kIENTUw0KCSAqLyANCglwdWJsaWMgZnVuY3Rpb24gR2V0SGVhZGVySFRNTCgpew0KCQkkb2JqID0mICR0aGlzLT5HZXRNb2R1bGVJbnN0YW5jZSgnU2NyaXB0RGVwbG95Jyk7DQoJCWlmKCBpc19vYmplY3QoJG9iaikgKXsNCgkJCWdsb2JhbCAkZ0NtczsNCgkJCXJldHVybiAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoYWRtaW5IZWFkZXJTY3JpcHRzOjpqc05jc3MoKSk7DQoJCX0NCgl9DQoJLy9mdW5jdGlvbiBTdXBwcmVzc0FkbWluT3V0cHV0KCYkcmVxdWVzdCl7cmV0dXJuIHRydWU7fQ0KCQ0KCXB1YmxpYyBmdW5jdGlvbiBzdGFydEFkbWluQnVpbGQoJHBhY2thZ2U9Jycpew0KDQoJfQ0KCXB1YmxpYyBmdW5jdGlvbiBTZXRQYXJhbWV0ZXJzKCl7DQoJCSR0aGlzLT5SZXN0cmljdFVua25vd25QYXJhbXMoKTsNCgkJJHRoaXMtPlJlZ2lzdGVyTW9kdWxlUGx1Z2luKCk7DQoJCSR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ1N0eXBlJywnJywnQ1NTJyk7DQoJCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdTdHlwZScsQ0xFQU5fU1RSSU5HKTsNCgkJDQoJCSR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ3NtYXJ0eScsJycsJ3R1cm4gc21hcnR5IG9uJyk7DQoJCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdzbWFydHknLENMRUFOX1NUUklORyk7DQoJCSR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ21pbmlmeScsJycsJ3RydW4gbWluaWZ5IG9uJyk7DQoJCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdtaW5pZnknLENMRUFOX1NUUklORyk7CQkNCgkJJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignbWVkaWFfdHlwZScsJycsJ3NldCBhIG1lZGlhIHR5cGUgaWU6IG1vcmUgdGhlbiBvbmUnKTsNCgkJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ21lZGlhX3R5cGUnLENMRUFOX1NUUklORyk7CQ0KCQkkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdjYWNoZV9idXN0ZXInLCcnLCd0dXJuIG9mZicpOw0KCQkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnY2FjaGVfYnVzdGVyJyxDTEVBTl9TVFJJTkcpOwkNCgkJJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignZnNpemUnLCcnLCdnZXQgc2l6ZScpOw0KCQkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnZnNpemUnLENMRUFOX1NUUklORyk7CQkNCgkJJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcigncm9vdCcsJycsJ3NldCB0aGUgcm9vdCB1cmwnKTsNCgkJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3Jvb3QnLENMRUFOX1NUUklORyk7CQ0KCQkkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdkeW5hbWljJywnJywnZm9yY2UgaXQgdG8gYWx3YXlzIHJlYnVpbGQnKTsNCgkJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2R5bmFtaWMnLENMRUFOX1NUUklORyk7CQkJDQoJCSR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2ltcG9ydCcsJycsJ3NldCwgd2hlbiBjc3MsIHRvIHVzZSBpbXBvcnQgZm9yIGlubGluZScpOw0KCQkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnaW1wb3J0JyxDTEVBTl9TVFJJTkcpOw0KCQkkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdkdW1wJywnJywnZHVtcCBvdXQgdGhlIGNvbnRhaW50cycpOw0KCQkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnZHVtcCcsQ0xFQU5fU1RSSU5HKTsJDQoJCQ0KCQkkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCd1cmwnLCcnLCdnZXQgb25seSB0aGUgdXJsIHRvIHRoZSBmaWxlJyk7DQoJCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCd1cmwnLENMRUFOX1NUUklORyk7CQkJDQoJCSANCgkJJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignZ3JvdXBJRCcsJycsJ3doYXQgaXMgdGhlIGdyb3VwIGlkJyk7DQoJCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdncm91cElEJyxDTEVBTl9JTlQpOw0KCQkkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdzY3JpcHRJRCcsJycsJ3doYXQgaXMgdGhlIHNjcmlwdCBpZCcpOw0KCQkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnc2NyaXB0SUQnLENMRUFOX0lOVCk7DQoJCQ0KCQkkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdhY3Rpb24nLCdkZWZhdWx0JywkdGhpcy0+TGFuZygnaGVscF9hY3Rpb24nKSk7DQoJCSR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2R1cmF0aW9uJywnJywkdGhpcy0+TGFuZygnaGVscF9kdXJhdGlvbicpKTsNCgkJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2R1cmF0aW9uJyxDTEVBTl9JTlQpOw0KCQkkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdjb29raWVuYW1lJywnY21zX3N0eWxlbmFtZScsJHRoaXMtPkxhbmcoJ2hlbHBfY29va2llbmFtZScpKTsNCgkJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2Nvb2tpZW5hbWUnLENMRUFOX1NUUklORyk7DQoJCQ0KCX0NCg0KDQovKl9fX19fX19fX19fX19fX1sgSEVMUCBdX19fX19fX19fX19fX18qLw0KIA0KCS8qKg0KCSogbG9vayB1cCB0aXAuDQoJKg0KCSogDQoJKiBAc2VlIFNjcmlwdERlcGxveTo6aXNfZWRpdGFibGUoKQ0KCSoNCgkqIEBwYXJhbSBzdHJpbmcgJHRpcCBjb250YWluaW5nIHdoaWNoIG9uZSB0byByZXR1cm4gZGlyZWN0bHkuDQoJKiBAcmV0dXJuIHN0cmluZw0KCSovDQoNCglwdWJsaWMgZnVuY3Rpb24gcHVsbFRpcCgkdGlwKXsNCgkJcmV0dXJuICR0aGlzLT5MYW5nKCR0aXApOw0KCX0NCg0KDQoNCg0KDQoNCg0KDQoNCg0KLypfX19fX19fX19fX19fX19bIFVTRVIgTE9DS1MgQU5EIENPTlRST0wgXV9fX19fX19fX19fX19fKi8NCiANCgkvKioNCgkqIFRvIGNoZWNrICBpZiB0aGUgc3JpcHQgY2FuIGJlIGVkaXRlZC4NCgkqDQoJKiANCgkqIEBzZWUgU2NyaXB0RGVwbG95Ojppc19lZGl0YWJsZSgpDQoJKg0KCSogQHBhcmFtIGludGVnZXIgJFNpZCBjb250YWluaW5nIHRoZSBzY3JpcHQgaWQuDQoJKiBAcGFyYW0gaW50ZWdlciAkdWlkIGNvbnRhaW5pbmcgdGhlIFVzZXIgaWQuDQoJKiBAcmV0dXJuIGJvb2xlYW4NCgkqLw0KCXB1YmxpYyBmdW5jdGlvbiBpc19lZGl0YWJsZSgkU2lkLCR1aWQ9Jycpew0KCQkkc3RhdHVzPSR0aGlzLT5HZXRQcmVmZXJlbmNlKCRTaWQuJy1Mb2NrZWQtU0QnLCcwJyk7DQoJCWlmKCRzdGF0dXM9PScwJyl7DQoJCQlyZXR1cm4gdHJ1ZTsNCgkJfWVsc2V7DQoJCQlpZigkdGhpcy0+U1RBUlR1bmxvY2tfc2NyaXB0KCRTaWQpKXsNCgkJCQlyZXR1cm4gdHJ1ZTsNCgkJCX1lbHNlew0KCQkJCXJldHVybiBmYWxzZTsNCgkJCX0NCgkJfQkNCgl9DQoJDQoJLyoqDQoJKiBTZXRzIHRoZSBTY3JpcHQgdG8gbG9jaywgd2hvIGxvY2tzIGl0LCBhbmQgd2hhdCB0aW1lIGl0J3MgYmVlbiBsb2NrZWQgYXQNCgkqIA0KCSogQHNlZSBTY3JpcHREZXBsb3k6OmxvY2tfc2NyaXB0KCkNCgkqDQoJKiBAcGFyYW0gaW50ZWdlciAkU2lkIGNvbnRhaW5pbmcgdGhlIHNjcmlwdCBpZC4NCgkqIEBwYXJhbSBpbnRlZ2VyICR1aWQgY29udGFpbmluZyB0aGUgVXNlciBpZC4NCgkqLw0KCXB1YmxpYyBmdW5jdGlvbiBsb2NrX3NjcmlwdCgkU2lkLCR1aWQpew0KCQkkdGhpcy0+U2V0UHJlZmVyZW5jZSgkU2lkLictTG9ja2VkLVNEJywnMScpOw0KCQkkdGhpcy0+U2V0UHJlZmVyZW5jZSgkU2lkLictTG9ja2VkLUVkaXRvci1TRCcsJHVpZCk7DQoJCSRub3cgPSBkYXRlKCJZLW0tZCBIOmk6cyIpOyANCgkJJHRoaXMtPlNldFByZWZlcmVuY2UoJFNpZC4nLUxvY2tlZC1FZGl0ZWRUaW1lLVNEJywkbm93KTsNCgkJDQoJfQ0KCQ0KCS8qKg0KCSogU2V0cyB0aGUgU2NyaXB0IHRvIHVubG9ja2VkLCBkZWxldGVzIHdobyBsb2NrcyBpdCBhbmQgYWxsIHJlZmVyZW5jZQ0KCSogDQoJKiBAc2VlIFNjcmlwdERlcGxveTo6dW5sb2NrX3NjcmlwdCgpDQoJKg0KCSogQHBhcmFtIGludGVnZXIgJFNpZCBjb250YWluaW5nIHRoZSBzY3JpcHQgaWQuDQoJKi8NCglwdWJsaWMgZnVuY3Rpb24gdW5sb2NrX3NjcmlwdCgkU2lkKXsNCgkJJHRoaXMtPlNldFByZWZlcmVuY2UoJFNpZC4nLUxvY2tlZC1TRCcsJzAnKTsNCgkJJHRoaXMtPlNldFByZWZlcmVuY2UoJFNpZC4nLUxvY2tlZC1FZGl0b3ItU0QnLCcnKTsNCgkJJHRoaXMtPlNldFByZWZlcmVuY2UoJFNpZC4nLUxvY2tlZC1FZGl0ZWRUaW1lLVNEJywnJyk7DQoJCXNkX2xvZ2dpbjo6X2RvQURVSVQoICdlZGl0JyAsICdvaycsICR0aGlzLT5MYW5nKCdyZWxlYXNlZF9kb0FEVUlUJykuIiBpZDokU2lkIik7DQoJfQ0KCQ0KCS8qKg0KCSogU3RhcnRpbmcgdG8gdW5sb2NrIHRoZSBTY3JpcHQNCgkqIA0KCSogQHNlZSBTY3JpcHREZXBsb3k6OlNUQVJUdW5sb2NrX3NjcmlwdCgpDQoJKg0KCSogQHBhcmFtIGludGVnZXIgJFNpZCBjb250YWluaW5nIHRoZSBzY3JpcHQgaWQuDQoJKi8NCglwdWJsaWMgZnVuY3Rpb24gU1RBUlR1bmxvY2tfc2NyaXB0KCRTaWQpew0KCQkNCgkJJGxhc3RfdXBkYXRlPSR0aGlzLT5HZXRQcmVmZXJlbmNlKCRTaWQuJy1Mb2NrZWQtRWRpdGVkVGltZS1TRCcpOw0KCQkkbGFzdF91cGRhdGU9c3RydG90aW1lKCRsYXN0X3VwZGF0ZSk7IA0KDQoJCSRob3dfbG9uZ19hZ28gPSB0aW1lKCkgLSAkbGFzdF91cGRhdGU7IA0KCQkvLyR0aGlzLT5TZXRQcmVmZXJlbmNlKCRTaWQuJy1MYXN0RWRpdC1TRCcsJGhvd19sb25nX2Fnbyk7IC8vdGhpcyB3YXMgdG8gY2hlY2sgdGhlIG91dHB1dA0KCQkvL3NsZWVwKDMwKTsvL3RoaXMgc2VlbXMgdG8gYmUgbG9ja2luZyBpdCB1cD8/Pw0KCQlpZigkaG93X2xvbmdfYWdvPjIxKXsJDQoJCQkkdGhpcy0+dW5sb2NrX3NjcmlwdCgkU2lkKTsNCgkJCXJldHVybiB0cnVlOw0KCQl9ZWxzZXsNCgkJCXJldHVybiBmYWxzZTsNCgkJfQ0KCX0JDQoNCgkvKioNCgkqIEdldCB0aGUgbW9kdWxlIGxvZ3MuDQoJKg0KCSogQHNlZSBTY3JpcHREZXBsb3k6OmNoZWNrX3VzZXJfZWRpdGluZygpDQoJKg0KCSogQHBhcmFtIGJvb2xlYW4gJGV4aXQgd2hlcmUgb3Igbm90IHRvIHN0YXJ0IHRvIGV4aXQuDQoJKiBAcGFyYW0gYm9vbGVhbiAkYWxpdmUgaXMgdGhlIHNjcmlwdCBzdGlsbCBiZWluZyBhY2Nlc3NlZC4NCgkqIEBwYXJhbSBpbnRlZ2VyICRTaWQgdGhlIHNjcmlwdCBpZC4NCgkqIEBwYXJhbSBpbnRlZ2VyICR1aWQgdGhlIHVzZXIgaWQuDQoJKiBAcmV0dXJuIHN0cmluZyBjb250YWluaW5nIHRoZSBub3RlcyBmb3IgdGhlIHNjcmlwdA0KCSovDQoJcHVibGljIGZ1bmN0aW9uIGNoZWNrX3VzZXJfZWRpdGluZygkZXhpdD10cnVlLCRhbGl2ZT1mYWxzZSwkU2lkLCR1aWQ9Jycpew0KCQlzbGVlcCgxKTsvL3NsZWVwIHRvIGdpdmUgdGltZSBmb3IgdGhpbmdzIHRvIGV2ZW4gb3V0DQoJCWlmKCRhbGl2ZT09dHJ1ZSl7DQoJCQkJJHRoaXMtPmxvY2tfc2NyaXB0KCRTaWQsJHVpZCk7DQoJCQkJcHJpbnQoJ3RydWUnKTsNCgkJfQ0KCX0NCgkNCgkNCiBwdWJsaWMgZnVuY3Rpb24gX0hhc1N1ZmZpY2llbnRQZXJtaXNzaW9ucyggJHBlcm0gPSAnJyApew0KDQogICAkcDEgPSAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCAnTW9kaWZ5IFNjcmlwdERlcGxveSBPcHRpb25zJyApOw0KICAgJHAyID0gJHRoaXMtPkNoZWNrUGVybWlzc2lvbiggJ1JlbW92ZSBTY3JpcHREZXBsb3kgU2NyaXB0JyApOw0KICAgJHAzID0gJHRoaXMtPkNoZWNrUGVybWlzc2lvbiggJ1JlbW92ZSBTY3JpcHREZXBsb3kgR3JvdXAnICk7DQogICAkcDQgPSAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCAnRWRpdCBTY3JpcHREZXBsb3kgU2NyaXB0JyApOw0KICAgJHA1ID0gJHRoaXMtPkNoZWNrUGVybWlzc2lvbiggJ0VkaXQgU2NyaXB0RGVwbG95IEdyb3VwJyApOw0KICAgJHA2ID0gJHRoaXMtPkNoZWNrUGVybWlzc2lvbiggJ1N0ZWFsIFNjcmlwdERlcGxveSBTY3JpcHQnICk7DQoNCg0KICAgJHJldCA9IDA7DQogICBzd2l0Y2goICRwZXJtICkNCiAgICAgew0KICAgICBjYXNlICcnOiAgLy8gYW55IHBlcm1pc3Npb24NCiAgICAgICAkcmV0ID0gKCRwMSB8fCAkcDIgfHwgJHAzIHx8ICRwNCB8fCAkcDUgfHwgJHA2ICk7DQogICAgICAgYnJlYWs7DQogICAgICAgDQogICAgIGNhc2UgJ2FkZGdyb3VwJzoNCiAgICAgICAkcmV0ID0gKCRwNCk7DQogICAgICAgYnJlYWs7DQogICAgICAgDQogICAgIGNhc2UgJ2FkZHVzZXInOg0KICAgICAgICRyZXQgPSAoJHAxKTsNCiAgICAgICBicmVhazsNCiAgICAgICANCiAgICAgY2FzZSAnYWRkcHJvcCc6DQogICAgIGNhc2UgJ2FkZHByb3AyJzoNCiAgICAgY2FzZSAnZWRpdHByb3AnOg0KICAgICBjYXNlICdkZWxldGVwcm9wJzoNCiAgICAgY2FzZSAncHJvcGVydGllcyc6DQogICAgICAgJHJldCA9ICgkcDkpOw0KICAgICAgIGJyZWFrOw0KICAgICANCiAgICAgY2FzZSAnbGlzdHVzZXJzJzoNCiAgICAgICAkcmV0ID0gKCRwMiB8fCAkcDMpOw0KICAgICAgIGJyZWFrOw0KICAgICAgIA0KICAgICBjYXNlICdsaXN0Z3JvdXBzJzoNCiAgICAgICAkcmV0ID0gKCRwNSB8fCAkcDYpOw0KICAgICAgIGJyZWFrOw0KICAgICAgIA0KICAgICBjYXNlICdlZGl0Z3JvdXBzJzoNCiAgICAgICAkcmV0ID0gKCRwNSB8fCAkcDYpOw0KICAgICAgIGJyZWFrOw0KICAgICAgIA0KICAgICBjYXNlICdlZGl0dXNlcnMnOg0KICAgICAgICRyZXQgPSAoJHAyKTsNCiAgICAgICBicmVhazsNCiAgICAgICANCiAgICAgY2FzZSAncmVtb3ZlZ3JvdXBzJzoNCiAgICAgICAkcmV0ID0gKCRwNyk7DQogICAgICAgYnJlYWs7DQogICAgICAgDQogICAgIGNhc2UgJ3JlbW92ZXVzZXJzJzoNCiAgICAgICAkcmV0ID0gKCRwMyk7DQogICAgICAgYnJlYWs7DQoNCiAgICAgY2FzZSAnZWRpdHByZWZzJzoNCiAgICAgY2FzZSAnc2l0ZXByZWZzJzoNCiAgICAgICAkcmV0ID0gKCRwOCk7DQogICAgICAgYnJlYWs7DQogICAgICAgDQogICAgIGNhc2UgJ3VzZXJzbmdyb3Vwcyc6DQogICAgICAgJHJldCA9ICgkcDEgfHwgJHAyIHx8ICRwMyB8fCAkcDQgfHwgJHA1IHx8ICRwNiB8fCAkcDcpOw0KICAgICAgIGJyZWFrOw0KICAgICAgIA0KICAgICBjYXNlICd0ZW1wbGF0ZXMnOg0KICAgICAgICRyZXQgPSAoJHAxMCk7DQogICAgICAgYnJlYWs7DQogICAgICAgDQogICAgIGRlZmF1bHQ6DQogICAgICAgJHJldCA9IDA7DQogICAgICAgYnJlYWs7DQogICAgIH0NCg0KICAgcmV0dXJuICRyZXQ7DQogfQ0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KCQ0KCQ0KCS8qLS0tLU1ha2VpbmctYWxsLXRoZS1TZWxlY3Rpb25zLS1EQi1jYWxscy0tLS0tLS0tLS0tLSovDQoJcHVibGljIGZ1bmN0aW9uIGdldFNjcmlwdEZ1bGwoJHNjcmlwdElEKXsNCgkJZ2xvYmFsICRnQ21zOw0KCQkkZGIgPSYgJHRoaXMtPkdldERiKCk7DQoNCgkJCSRyZXRyZXN1bHQgPSBhcnJheSgpOw0KCQkJJHJlc3VsdHMgPSBhcnJheSgpOwkNCgkJCQ0KCQkJJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5TRF9TQ1JJUFROQU1FUy4nIEFTIHNuICcNCgkJCQkuJ0xFRlQgSk9JTiAnLlNEX1NDUklQVE9QVElPTlMuJyBBUyBzbyBPTiBzbi5JRCA9IHNvLklEICcNCgkJCQkuJ0xFRlQgSk9JTiAnLlNEX1NDUklQVFBBUlRTLicgQVMgc3AgT04gc24uSUQgPSBzcC5JRCAnDQoJCQkJLidXSEVSRSBzbi5JRCA9Pyc7DQoJCQkJDQoJCQkkcmVzdWx0ID0gJiRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJHNjcmlwdElEKSk7DQoJCQ0KCQkJd2hpbGUgKCRyZXN1bHQgJiYgISRyZXN1bHQtPkVPRil7DQoJCQkJJGRhS2V5PSRyZXN1bHQtPmZpZWxkc1snSUQnXTsNCgkJCQkkcmVzdWx0c1snU2NyaXB0SUQnXT0gJHJlc3VsdC0+ZmllbGRzWydJRCddOw0KCQkJCSRyZXN1bHRzWydTY3JpcHRTZXQnXT0gJHJlc3VsdC0+ZmllbGRzWydTY3JpcHRTZXQnXTsNCgkJCQkkcmVzdWx0c1sncGF0aE9wdGlvbiddPSAkcmVzdWx0LT5maWVsZHNbJ3BhdGhPcHRpb24nXTsNCgkJCQkkcmVzdWx0c1snU2NyaXB0SXMnXT0gJHJlc3VsdC0+ZmllbGRzWydTY3JpcHRJcyddOw0KCQkJCSRyZXN1bHRzWydzY3JpcHRUeXBlJ109ICRyZXN1bHQtPmZpZWxkc1snc2NyaXB0VHlwZSddOw0KCQkJCSRyZXN1bHRzWydzY3JpcHRTaXplJ109ICRyZXN1bHQtPmZpZWxkc1snc2NyaXB0U2l6ZSddOw0KCQkJCSRyZXN1bHRzWydub3RlcyddPSAkcmVzdWx0LT5maWVsZHNbJ25vdGVzJ107DQoJCQkJJHJldHJlc3VsdFskZGFLZXldID0gJHJlc3VsdHM7DQoJCQkJJHJlc3VsdC0+TW92ZU5leHQoKTsNCgkJCX0NCgkJCSR0aGlzLT5GaXJlRGVidWcoJ21lc3NhZ2UnLCdSZXN1bHRzICcuJHJldHJlc3VsdFskc2NyaXB0SURdKTsvLzw8PDwtLS0tLS1GaXJlIFBIUCBtZXNzYWdlDQoJCQlyZXR1cm4gJHJldHJlc3VsdFskc2NyaXB0SURdOwkJDQoJfQ0KDQoJcHVibGljIGZ1bmN0aW9uIEdldFNjcmlwdE5hbWUoJFNjcmlwdElEKXsNCgkJCSRkYiA9JiAkdGhpcy0+R2V0RGIoKTsNCgkJCSRxdWVyeSA9ICJTRUxFQ1QgU2NyaXB0U2V0IEZST00gIi5TRF9TQ1JJUFROQU1FUy4iIFdIRVJFIElEID0/IjsNCgkJCSRTY3JpcHRTZXQgPSAmJGRiLT5HZXRPbmUoJHF1ZXJ5LGFycmF5KCRTY3JpcHRJRCkpOwkNCgkJCXJldHVybiAkU2NyaXB0U2V0Ow0KCX0JDQoNCg0KCXB1YmxpYyBmdW5jdGlvbiBnZXRVc2VySW5mbygkVWlkPScnKXsNCgkJZ2xvYmFsICRnQ21zOw0KCQkkVXNlcmlkID0gMDsNCgkJaWYoIGdldF91c2VyaWQoKSAhPSBmYWxzZSApew0KCQkgICRVc2VyaWQgPSBnZXRfdXNlcmlkKCk7DQoJCX0NCgkJaWYoJFVpZCE9JycpeyRVc2VyaWQ9JFVpZDt9DQoJCSRVc2VySW5mb1snVXNlcmlkJ109JFVzZXJpZDsNCgkJaWYoICRVc2VyaWQgPiAwICl7DQoJCQkkdXNlcm9wcyA9JiAkZ0Ntcy0+R2V0VXNlck9wZXJhdGlvbnMoKTsNCgkJCSR0aGV1c2VyID0gJHVzZXJvcHMtPkxvYWRVc2VyQnlJZCggJFVzZXJpZCApOw0KCQkJJFVzZXJJbmZvWyd1c2VybmFtZSddID0gJHRoZXVzZXItPnVzZXJuYW1lOw0KCQkJJFVzZXJJbmZvWydmdWxsdXNlcm5hbWUnXSA9ICR0aGV1c2VyLT5maXJzdG5hbWUuJyAnLiR0aGV1c2VyLT5sYXN0bmFtZTsNCgkJICB9DQoJCSAgcmV0dXJuICRVc2VySW5mbzsNCgl9DQoNCgkNCglwdWJsaWMgZnVuY3Rpb24gZ2V0U2NyaXB0c0xpc3QoKXsJDQoJCQkkdGhpcy0+RmlyZURlYnVnKCdtZXNzYWdlJywnR290IGhlcmUnKTsvLzw8PDwtLS0tLS1GaXJlIFBIUCBtZXNzYWdlDQoJCQkkZGIgPSYgJHRoaXMtPkdldERiKCk7DQoJCQ0KCQkJJHJldHJlc3VsdCA9IGFycmF5KCk7DQoJCQkkcmVzdWx0cyA9IGFycmF5KCk7CQ0KCQkNCgkJCSRxdWVyeSA9ICdTRUxFQ1Qgc28uSUQsc24uU2NyaXB0U2V0LHNvLnBhdGhPcHRpb24sc28uc2NyaXB0VHlwZSxzby5zY3JpcHRTaXplLHNvLm5vdGVzIEZST00gJy5TRF9TQ1JJUFROQU1FUy4nIEFTIHNuICcNCgkJCS4nTEVGVCBKT0lOICcuU0RfU0NSSVBUT1BUSU9OUy4nIEFTIHNvIE9OIHNuLklEID0gc28uSUQnOw0KCQkJJHJlc3VsdCA9ICYkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsNCgkJDQoJCQl3aGlsZSAoJHJlc3VsdCAmJiAhJHJlc3VsdC0+RU9GKXsNCgkJCQkkZGFLZXk9JHJlc3VsdC0+ZmllbGRzWydJRCddOw0KCQkJCSRyZXN1bHRzWydTY3JpcHRTZXQnXT0gJHJlc3VsdC0+ZmllbGRzWydTY3JpcHRTZXQnXTsNCgkJCQkkcmVzdWx0c1sncGF0aE9wdGlvbiddPSAkcmVzdWx0LT5maWVsZHNbJ3BhdGhPcHRpb24nXTsNCgkJCQkkcmVzdWx0c1snc2NyaXB0VHlwZSddPSAkcmVzdWx0LT5maWVsZHNbJ3NjcmlwdFR5cGUnXTsNCgkJCQkkcmVzdWx0c1snc2NyaXB0U2l6ZSddPSAkcmVzdWx0LT5maWVsZHNbJ3NjcmlwdFNpemUnXTsNCgkJCQkkcmVzdWx0c1snbm90ZXMnXT0gJHJlc3VsdC0+ZmllbGRzWydub3RlcyddOw0KCQkJCSRyZXRyZXN1bHRbJGRhS2V5XSA9ICRyZXN1bHRzOw0KCQkJCSRyZXN1bHQtPk1vdmVOZXh0KCk7DQoJCQl9DQoJCQlyZXR1cm4gJHJldHJlc3VsdDsNCgl9DQoJcHVibGljIGZ1bmN0aW9uIGdldEdyb3Vwc0xpc3QoKXsJCQkNCgkJCS8vZ2xvYmFsICRnQ21zOw0KCQkJJGRiID0mICR0aGlzLT5HZXREYigpOw0KCQkNCgkJCSRyZXRyZXN1bHQgPSBhcnJheSgpOw0KCQkJJHJlc3VsdHMgPSBhcnJheSgpOwkNCg0KCQkJJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5TRF9HUk9VUC4nIEFTIHNkRyAnDQoJCQkJLidMRUZUIEpPSU4gJy5TRF9HUk9VUEFTU0lHTk1FTlQuJyBBUyBzZEdtIE9OIHNkRy5JRCA9IHNkR20uR3JvdXB0U2V0SUQnOw0KCQkJJHJlc3VsdCA9ICYkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsNCg0KCQkJd2hpbGUgKCRyZXN1bHQgJiYgISRyZXN1bHQtPkVPRil7DQoJCQkJJGRhS2V5PSRyZXN1bHQtPmZpZWxkc1snSUQnXTsNCgkJCQkkcmVzdWx0c1snR3JvdXB0U2V0J109ICRyZXN1bHQtPmZpZWxkc1snR3JvdXB0U2V0J107DQoJCQkJJHJlc3VsdHNbJ0dyb3VwdFR5cGUnXT0gJHJlc3VsdC0+ZmllbGRzWydHcm91cHRUeXBlJ107DQoJCQkJDQoJCQkJaWYoaXNzZXQoJHJlc3VsdC0+ZmllbGRzWydTY3JpcHRJRCddKSl7DQoJCQkJCSRyZXN1bHRzWydTY3JpcHRJRCddPSAnJzsNCgkJCQl9ZWxzZXsNCgkJCQkJJHJlc3VsdHNbJ1NjcmlwdElEJ109ICcnOw0KCQkJCX0NCgkJCQkkcmV0cmVzdWx0WyRkYUtleV0gPSAkcmVzdWx0czsNCgkJCQkkcmVzdWx0LT5Nb3ZlTmV4dCgpOw0KCQkJfQ0KCQkJcmV0dXJuICRyZXRyZXN1bHQ7DQoJfQ0KCXB1YmxpYyBmdW5jdGlvbiBHZXRHcm91cERhdGEoJEdyb3VwdElEKXsJDQoJCQkkdGhpcy0+RmlyZURlYnVnKCdtZXNzYWdlJywnR290IGhlcmUnKTsvLzw8PDwtLS0tLS1GaXJlIFBIUCBtZXNzYWdlDQoJCQkkZGIgPSYgJHRoaXMtPkdldERiKCk7DQoJCQ0KCQkJJHJldHJlc3VsdCA9IGFycmF5KCk7DQoJCQkkcmVzdWx0cyA9IGFycmF5KCk7CQ0KDQoJCQkkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLlNEX0dST1VQLicgQVMgc2RHICcNCgkJCQkuJ1dIRVJFIHNkRy5JRCA9Pyc7DQoJCQkkcmVzdWx0ID0gJiRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJEdyb3VwdElEKSk7DQoJCQ0KCQkJd2hpbGUgKCRyZXN1bHQgJiYgISRyZXN1bHQtPkVPRil7DQoJCQkJJGRhS2V5PSRyZXN1bHQtPmZpZWxkc1snSUQnXTsNCgkJCQkkcmVzdWx0c1snR3JvdXB0U2V0J109ICRyZXN1bHQtPmZpZWxkc1snR3JvdXB0U2V0J107DQoJCQkJJHJlc3VsdHNbJ0dyb3VwdFR5cGUnXT0gJHJlc3VsdC0+ZmllbGRzWydHcm91cHRUeXBlJ107DQoJCQkJDQoJCQkJDQoJCQkJJHJldHJlc3VsdFskZGFLZXldID0gJHJlc3VsdHM7DQoJCQkJJHJlc3VsdC0+TW92ZU5leHQoKTsNCgkJCX0NCgkJCXJldHVybiAkcmV0cmVzdWx0WyRHcm91cHRJRF07CQ0KCX0NCglwdWJsaWMgZnVuY3Rpb24gR2V0R3JvdXBzU2NyaXB0TlVNKCRHcm91cHRJRCl7DQoJCQkvL2dsb2JhbCAkZ0NtczsNCgkJCSRkYiA9JiAkdGhpcy0+R2V0RGIoKTsNCgkJDQoJCQkkcmV0cmVzdWx0ID0gYXJyYXkoKTsNCgkJCSRyZXN1bHRzID0gYXJyYXkoKTsJDQoNCgkJCSRxdWVyeSA9ICdTRUxFQ1QgU2NyaXB0SUQgRlJPTSAnLlNEX0dST1VQQVNTSUdOTUVOVC4nIEFTIHNkR20gJw0KCQkJCS4nV0hFUkUgc2RHbS5Hcm91cHRTZXRJRD0/JzsNCgkJCSRyZXN1bHQgPSAmJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkR3JvdXB0SUQpKTsNCgkJCSRzY2lwdG51bWJlcj0wOw0KCQkJd2hpbGUgKCRyZXN1bHQgJiYgISRyZXN1bHQtPkVPRil7DQoJCQkJJHNjaXB0bnVtYmVyPSRzY2lwdG51bWJlcisxOw0KCQkJCSRyZXN1bHQtPk1vdmVOZXh0KCk7DQoJCQl9DQoJCQlyZXR1cm4gJHNjaXB0bnVtYmVyOwkNCgl9DQoJcHVibGljIGZ1bmN0aW9uIHNlbGVjdEdyb3Vwc0xpc3RpbmdzKCRHcm91cHRJRCl7DQoJCQkvL2dsb2JhbCAkZ0NtczsNCgkJCSRkYiA9JiAkdGhpcy0+R2V0RGIoKTsNCg0KCQkJJHJldHJlc3VsdCA9IGFycmF5KCk7DQoJCQkkcmVzdWx0cyA9IGFycmF5KCk7CQ0KDQoJCQkkcXVlcnkgPSAnU0VMRUNUIHNuLlNjcmlwdFNldCxzby5zY3JpcHRTaXplLHNkR20uU2NyaXB0SUQsc2RHbS5TY3JpcHRPUkRFUiBGUk9NICcuU0RfR1JPVVAuJyBBUyBzZEcgJw0KCQkJCS4nTEVGVCBKT0lOICcuU0RfR1JPVVBBU1NJR05NRU5ULicgQVMgc2RHbSBPTiBzZEcuSUQgPSBzZEdtLkdyb3VwdFNldElEICcNCgkJCQkuJ0xFRlQgSk9JTiAnLlNEX1NDUklQVE9QVElPTlMuJyBBUyBzbyBPTiBzby5JRCA9IHNkR20uU2NyaXB0SUQgJw0KCQkJCS4nTEVGVCBKT0lOICcuU0RfU0NSSVBUTkFNRVMuJyBBUyBzbiBPTiBzby5JRCA9IHNuLklEICcNCgkJCQkuJ1dIRVJFIHNkRy5JRCA9ID8gT1JERVIgQlkgc2RHbS5TY3JpcHRPUkRFUiBBU0MnOw0KCQkJJHJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJEdyb3VwdElEKSk7DQoJCQkNCgkJCXdoaWxlICgkcmVzdWx0ICYmICEkcmVzdWx0LT5FT0Ypew0KCQkJCSRkYUtleT0kcmVzdWx0LT5maWVsZHNbJ1NjcmlwdElEJ107DQoJCQkJJHJlc3VsdHNbJ1NjcmlwdFNldCddPSAkcmVzdWx0LT5maWVsZHNbJ1NjcmlwdFNldCddOw0KCQkJCSRyZXN1bHRzWydzY3JpcHRTaXplJ109ICRyZXN1bHQtPmZpZWxkc1snc2NyaXB0U2l6ZSddOw0KCQkJCSRyZXN1bHRzWydTY3JpcHRPUkRFUiddPSAkcmVzdWx0LT5maWVsZHNbJ1NjcmlwdE9SREVSJ107DQoJCQkJJHJldHJlc3VsdFskZGFLZXldID0gJHJlc3VsdHM7DQoJCQkJJHJlc3VsdC0+TW92ZU5leHQoKTsNCgkJCX0NCgkJCXJldHVybiAkcmV0cmVzdWx0Ow0KCX0NCglwdWJsaWMgZnVuY3Rpb24gc2VsZWN0R3JvdXBJdGVtcygkR3JvdXB0SUQpew0KCQkJLy9nbG9iYWwgJGdDbXM7DQoJCQkkZGIgPSYgJHRoaXMtPkdldERiKCk7DQoJCQkkdGhpcy0+RmlyZURlYnVnKCdtZXNzYWdlJywnR290IGhlcmUnKTsvLzw8PDwtLS0tLS1GaXJlIFBIUCBtZXNzYWdlDQoJCQkkcmV0cmVzdWx0ID0gYXJyYXkoKTsNCgkJCSRyZXN1bHRzID0gYXJyYXkoKTsJDQoNCgkJCSRxdWVyeSA9ICdTRUxFQ1QgU2NyaXB0SUQgRlJPTSAnLlNEX0dST1VQQVNTSUdOTUVOVC4nIEFTIHNkR20gJw0KCQkJCS4nV0hFUkUgc2RHbS5Hcm91cHRTZXRJRD0/IE9SREVSIEJZIFNjcmlwdE9SREVSIEFTQyc7DQoJCQkkcmVzdWx0ID0gJiRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJEdyb3VwdElEKSk7DQoJCQl3aGlsZSAoJHJlc3VsdCAmJiAhJHJlc3VsdC0+RU9GKXsNCgkJCQlhcnJheV9wdXNoKCRyZXN1bHRzLCAkcmVzdWx0LT5maWVsZHNbJ1NjcmlwdElEJ10pOw0KCQkJCSRyZXN1bHQtPk1vdmVOZXh0KCk7DQoJCQl9DQoJCQlyZXR1cm4gJHJlc3VsdHM7CQkNCgl9DQoJcHVibGljIGZ1bmN0aW9uIENoZWNrU2NyaXB0KCRzY3JpcHRJRCwkR3JvdXB0SUQpew0KCQkJLy9nbG9iYWwgJGdDbXM7DQoJCQkkZGIgPSYgJHRoaXMtPkdldERiKCk7DQoJCQkkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLlNEX0dST1VQQVNTSUdOTUVOVC4nICcNCgkJCQkuJ1dIRVJFIFNjcmlwdElEPT8gQU5EIEdyb3VwdFNldElEPT8nOw0KCQkJJHJlc3VsdCA9ICYkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRzY3JpcHRJRCwkR3JvdXB0SUQpKTsNCgkJCQlpZigkcmVzdWx0ICYmICEkcmVzdWx0LT5FT0YpeyRyPSRzY3JpcHRJRDt9ZWxzZXskcj0nJzt9DQoJCQkJJHRoaXMtPkZpcmVEZWJ1ZygnbWVzc2FnZScsJ2ZvciBTY3JpcHRJRCAnLiRzY3JpcHRJRC4nIGhhczogJy4kcik7Ly88PDw8LS0tLS0tRmlyZSBQSFAgbWVzc2FnZQ0KCQkJcmV0dXJuICRyOw0KCX0NCglwdWJsaWMgZnVuY3Rpb24gR2V0U2NyaXB0R3JvdXBJbmZvKCRzSUQpewkNCgkJJEdyb3Vwcz0kdGhpcy0+R2V0U2NyaXB0R3JvdXBzKCRzSUQpOw0KCQkkUmc9Jyc7DQoJCSRsYXN0PScnOw0KCQlmb3JlYWNoKCRHcm91cHMgYXMgJGtleT0+JEdyb3VwKXsNCgkJCWlmKCRrZXk9PTApew0KCQkJCSRSZy49JycuJHRoaXMtPkdldEdyb3VwTmFtZSgkR3JvdXApOw0KCQkJfWVsc2V7DQoJCQkJJFJnLj0nLCcuJHRoaXMtPkdldEdyb3VwTmFtZSgkR3JvdXApOw0KCQkJfQ0KCQkJJGxhc3Q9JGtleSsxOw0KCQl9DQoJCWlmKCRSZyE9JycmJiRsYXN0IT0nJyl7DQoJCQlyZXR1cm4gYXJyYXkoJGxhc3QsJFJnKTsNCgkJfWVsc2V7DQoJCQlyZXR1cm4gZmFsc2U7DQoJCX0NCgl9DQoJcHVibGljIGZ1bmN0aW9uIEdldFNjcmlwdEdyb3Vwcygkc2NyaXB0SUQpew0KCQkJLy9nbG9iYWwgJGdDbXM7DQoJCQkkZGIgPSYgJHRoaXMtPkdldERiKCk7DQoJCQkkcmVzdWx0cyA9IGFycmF5KCk7CQ0KCQkJJHF1ZXJ5ID0gJ1NFTEVDVCBHcm91cHRTZXRJRCBGUk9NICcuU0RfR1JPVVBBU1NJR05NRU5ULicgJw0KCQkJCS4nV0hFUkUgU2NyaXB0SUQ9PyAnOw0KCQkJJHJlc3VsdCA9ICYkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRzY3JpcHRJRCkpOw0KCQkJd2hpbGUgKCRyZXN1bHQgJiYgISRyZXN1bHQtPkVPRil7DQoJCQkJYXJyYXlfcHVzaCgkcmVzdWx0cywgJHJlc3VsdC0+ZmllbGRzWydHcm91cHRTZXRJRCddKTsNCgkJCQkkcmVzdWx0LT5Nb3ZlTmV4dCgpOw0KCQkJfQ0KCQkJcmV0dXJuICRyZXN1bHRzOwkNCgl9DQoJcHVibGljIGZ1bmN0aW9uIEdldEdyb3VwSUQoJGdyb3VwTmFtZSl7DQoJCQkvL2dsb2JhbCAkZ0NtczsNCgkJCSRkYiA9JiAkdGhpcy0+R2V0RGIoKTsNCgkJCSRxdWVyeSA9ICdTRUxFQ1QgSUQgRlJPTSAnLlNEX0dST1VQLicgJw0KCQkJCS4nV0hFUkUgR3JvdXB0U2V0PT8nOw0KCQkJJHJlc3VsdCA9ICYkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRncm91cE5hbWUpKTsNCgkJCXdoaWxlICgkcmVzdWx0ICYmICEkcmVzdWx0LT5FT0Ypew0KCQkJCSRyZXN1bHRzPSRyZXN1bHQtPmZpZWxkc1snSUQnXTsNCgkJCQkkcmVzdWx0LT5Nb3ZlTmV4dCgpOw0KCQkJfQ0KCQkJcmV0dXJuICRyZXN1bHRzOwkJDQoJfQ0KCXB1YmxpYyBmdW5jdGlvbiBHZXRHcm91cE5hbWUoJGdJRCl7DQoJCQkvL2dsb2JhbCAkZ0NtczsNCgkJCSRkYiA9JiAkdGhpcy0+R2V0RGIoKTsNCgkJCSRxdWVyeSA9ICdTRUxFQ1QgR3JvdXB0U2V0IEZST00gJy5TRF9HUk9VUC4nICcNCgkJCQkuJ1dIRVJFIElEPT8nOw0KCQkJJHJlc3VsdCA9ICYkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRnSUQpKTsNCgkJCXdoaWxlICgkcmVzdWx0ICYmICEkcmVzdWx0LT5FT0Ypew0KCQkJCSRyZXN1bHRzPSRyZXN1bHQtPmZpZWxkc1snR3JvdXB0U2V0J107DQoJCQkJJHJlc3VsdC0+TW92ZU5leHQoKTsNCgkJCX0NCgkJCXJldHVybiAkcmVzdWx0czsJCQ0KCX0NCg0KCXB1YmxpYyBmdW5jdGlvbiBHZXRTY3JpcHRCYWNrdXAoJElELCRyZXZpc2lvbil7DQoJCQkvL2dsb2JhbCAkZ0NtczsNCgkJCSRkYiA9JiAkdGhpcy0+R2V0RGIoKTsNCgkJCSRyZXRyZXN1bHQgPSBhcnJheSgpOw0KCQkJJHJlc3VsdHMgPSBhcnJheSgpOwkNCgkJCSRxdWVyeSA9ICdTRUxFQ1QgU2NyaXB0SXNCS1VQIEZST00gJy5TRF9TQ1JJUFRVTkRPLicgJw0KCQkJCS4nV0hFUkUgSUQ9PyBBTkQgcmV2aXNpb249Pyc7DQoJCQkkcmVzdWx0ID0gJiRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJElELCRyZXZpc2lvbikpOw0KCQkJd2hpbGUgKCRyZXN1bHQgJiYgISRyZXN1bHQtPkVPRil7DQoJCQkJJHJlc3VsdHM9JHJlc3VsdC0+ZmllbGRzWydTY3JpcHRJc0JLVVAnXTsNCgkJCQkkcmVzdWx0LT5Nb3ZlTmV4dCgpOw0KCQkJfQ0KCQkJcmV0dXJuICRyZXN1bHRzOwkNCgl9DQoJcHVibGljIGZ1bmN0aW9uIGdldFNjcmlwdEJLdXAoJHNjcmlwdElELCRyZXZpc2lvbil7DQoJCSRkYiA9JiAkdGhpcy0+R2V0RGIoKTsNCgkJJHEgPSAnU0VMRUNUIFNjcmlwdElzQktVUCBGUk9NICcuU0RfU0NSSVBUVU5ETy4nICcNCgkJCQkJLidXSEVSRSBzY3JpcHRJRCA9PyBBTkQgcmV2aXNpb249Pyc7DQoJCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSggJHEsIGFycmF5KCRzY3JpcHRJRCwkcmV2aXNpb24pICk7DQoJCWlmKCAhJGRicmVzdWx0ICkNCgkJICB7DQoJCQkJCXJldHVybiBhcnJheShGQUxTRSwkZGItPkVycm9yTXNnKCkpOw0KCQkgIH0NCgkJJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKTsNCgkJCSRkYnJlc3VsdC0+Q2xvc2UoKTsNCgkJcmV0dXJuICRyb3c7DQoJfQ0KI2NTY3JpcHRQbGFuZQ0KCXB1YmxpYyBmdW5jdGlvbiBHZXRSZXZpc2lvbnMoJFNjcmlwdElELCRwYWdlID0gMSwgJGxpbWl0ID0gOTk5OTksICR3aGVyZUFSRyA9ICcnKXsNCgkJLy9nbG9iYWwgJGdDbXM7DQoJCSRkYiA9JiAkdGhpcy0+R2V0RGIoKTsNCgkJJHRycz0nJzsNCgkJJHBhZ2Vfc3RyaW5nID0gIiI7DQoJCSRmcm9tID0gKCRwYWdlICogJGxpbWl0KSAtICRsaW1pdDsNCgkJJHdoZXJlID0gJyc7DQoJCWlmICgkd2hlcmVBUkchPScnKSAkd2hlcmUgPSAnV2hlcmUgJy4kd2hlcmVBUkc7DQoJCSRyZXN1bHQgPSAkZGItPlNlbGVjdExpbWl0KCdTRUxFQ1QgKiBmcm9tICcuU0RfU0NSSVBUVU5ETy4nICcuJHdoZXJlLicgT1JERVIgQlkgcmV2aXNpb24gREVTQycsICRsaW1pdCwgJGZyb20pOw0KCQ0KCQlpZiAoJHJlc3VsdCAmJiAkcmVzdWx0LT5SZWNvcmRDb3VudCgpID4gMCl7DQoJDQoJCQkgICAvLyRjdXJyb3cgPSAicm93MSI7DQoJCQkgICAkZj10cnVlOw0KCQkJICAgd2hpbGUgKCRyb3cgPSAkcmVzdWx0LT5GZXRjaFJvdygpKSB7DQoJCQkJICAgJFVpbmZvPSR0aGlzLT5nZXRVc2VySW5mbygkcm93Wyd1c2VySUQnXSk7DQoJCQkJICAgaWYoJGY9PXRydWUpeyR0PScgY2xhc3M9ImN1cnJlbnQiJzt9DQoJCSR0cnMuPSc8dHIgaWQ9IlInLiRyb3dbJ3JldmlzaW9uJ10uJyIgJy4kdC4nPjx0ZD4nDQoJCS4kVWluZm9bJ3VzZXJuYW1lJ10uJzwvdGQ+PHRkPicNCgkJLiRyb3dbJ3JldmlzaW9uJ10uJzwvdGQ+PHRkPicNCgkJLiRyb3dbJ2NyZWF0ZWQnXS4nPC90ZD48L3RyPic7DQoJCSAkZj1mYWxzZTsNCgkJICR0PScnOw0KCQkJICAgfQ0KCQkJfWVsc2V7DQoJCQkJJHRycy49Jzx0cj48dGQ+RW1wdHk8L3RkPjx0ZD4tLTwvdGQ+PHRkPi0tPC90ZD48dGQ+LS08L3RkPjwvdHI+JzsNCgkJCX0NCgkNCgkJDQoJCXJldHVybiAkdHJzOw0KCX0NCglwdWJsaWMgZnVuY3Rpb24gR2V0VGhpc1JldmlzaW9uKCRzSUQgLCRyZXZpc2lvbil7DQoJCQkkZGIgPSYgJHRoaXMtPkdldERiKCk7DQoJCQkkcXVlcnkgPSAnU0VMRUNUIFNjcmlwdElzQktVUCBmcm9tICcuU0RfU0NSSVBUVU5ETy4iIFdIRVJFIHNjcmlwdElEPT8gQU5EIHJldmlzaW9uPT8iOw0KCQkJJHZlcnNpb24gPSAmJGRiLT5HZXRPbmUoJHF1ZXJ5LGFycmF5KCRzSUQsJHJldmlzaW9uKSk7DQoJCQlyZXR1cm4gJHZlcnNpb247DQoJfQkNCglwdWJsaWMgZnVuY3Rpb24gQ2xlYXJUaGlzUmV2aXNpb24oJHNJRCwkTElNSVQ9MSl7DQoJCQkkZGIgPSYgJHRoaXMtPkdldERiKCk7DQoNCgkJCSRxdWVyeSA9ICdERUxFVEUgRlJPTSAnLlNEX1NDUklQVFVORE8uJyBXSEVSRSBzY3JpcHRJRD0/IEFORCByZXZpc2lvbiA8ICggU0VMRUNUIG1pbihyZXZpc2lvbikgRlJPTSAoIFNFTEVDVCByZXZpc2lvbiBGUk9NICcuU0RfU0NSSVBUVU5ETy4nIFdIRVJFIHNjcmlwdElEPT8gT1JERVIgQlkgcmV2aXNpb24gREVTQyBMSU1JVCAnLiRMSU1JVC4nICkgQVMgbXlzZWxlY3QgKSc7DQoNCgkJCSRyZXN1bHQgPSAmJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkc0lELCRzSUQpKTsNCgkJCSRTY3JpcHROYW1lPSR0aGlzLT5HZXRTY3JpcHROYW1lKCRzSUQpOw0KCQkJc2RfbG9nZ2luOjpfZG9BRFVJVCggJ2Rlc3Ryb3knICwgJ29rJywgJHRoaXMtPkxhbmcoJ2NsZWFyZWRSZXZpc2lvbl9kb0FEVUlUJykuIiAkU2NyaXB0TmFtZSAtIHNjcmlwdCBpZDokc0lEIik7DQoNCgkJCXJldHVybiAkcmVzdWx0Ow0KCX0JDQoJcHVibGljIGZ1bmN0aW9uIEdldExhc3RSZXZpc2lvbigkc0lEKXsNCgkJCSRkYiA9JiAkdGhpcy0+R2V0RGIoKTsNCgkJCSRxdWVyeSA9ICJTRUxFQ1QgcmV2aXNpb24gRlJPTSAiLlNEX1NDUklQVFVORE8uIiBXSEVSRSBzY3JpcHRJRD0/IE9SREVSIEJZIHJldmlzaW9uIERFU0MgTElNSVQgMSI7DQoJCQkkUmV2aXNpb24gPSAmJGRiLT5HZXRPbmUoJHF1ZXJ5LGFycmF5KCRzSUQpKTsJDQoJCQlyZXR1cm4gJFJldmlzaW9uOw0KCX0JDQovLwlwcm90ZWN0ZWQgZnVuY3Rpb24gU2V0U2NyaXB0QmFja3VwKCRzSUQsJFNjcmlwdElzQktVUCwkcmV2aXNpb249MSl7DQoJcHVibGljIGZ1bmN0aW9uIFNldFNjcmlwdEJhY2t1cCgkc0lELCRTY3JpcHRJc0JLVVAsJHJldmlzaW9uPTEpew0KCQkkZGIgPSYgJHRoaXMtPkdldERiKCk7DQoJCQ0KCQkkbm93ID0gdHJpbSgkZGItPkRCVGltZVN0YW1wKHRpbWUoKSksICInIik7CQ0KCQkkcXVlcnkgPSAiSU5TRVJUIElOVE8gIi5TRF9TQ1JJUFRVTkRPLiIgIg0KCQkJLiIodXNlcklELHNjcmlwdElELHJldmlzaW9uLFNjcmlwdElzQktVUCxjcmVhdGVkKSAiDQoJCQkuIlZBTFVFUyAoPyw/LD8sPyw/KSI7DQoJCQkkVXNlcmlkPSR0aGlzLT5nZXRVc2VySW5mbygpOw0KCQkJJHVJRD0kVXNlcmlkWydVc2VyaWQnXTsNCgkJCSRyZXN1bHQgPSAmJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkdUlELCRzSUQsJHJldmlzaW9uLCRTY3JpcHRJc0JLVVAsJG5vdykpOw0KCQkJaWYoISRyZXN1bHQpew0KCQkJICAvL2VjaG8gJ0Vycm9yOiAnLm15c3FsX2Vycm9yKCk7DQoJCQkgICRwYXJhbXNbJ21lc3NhZ2UnXSA9IG15c3FsX2Vycm9yKCk7DQoJCQl9ZWxzZXsNCgkJCSAgICRwYXJhbXNbJ21lc3NhZ2UnXSA9ICR0aGlzLT5MYW5nKCdwcmVmc3VwZGF0ZWQnKTsNCgkJCX0JDQoJfQ0KLyotLS0tR2V0LXRoZS1zZXQtb2YtdGhlLWZpbGUtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8NCgkNCglwdWJsaWMgZnVuY3Rpb24gU2l6ZUl0VXAoJHNpemUpew0KCQkgaWYoJHNpemUgPCAxMDI0KXsNCgkJCSAgJHNpemUyPSIkc2l6ZSBieXRlcyI7DQoJCSAgfQ0KCQkgIGlmKCRzaXplID4gMTAyNCAmJiAkc2l6ZSA8IDEwNDg1NzYpew0KCQkJICAkc2l6ZTE9IG51bWJlcl9mb3JtYXQoJHNpemUvMTAyNCwyKTsNCgkJCSAgJHNpemUyPSIkc2l6ZTEgS2IiOw0KCQkgIH0NCgkJICBpZigkc2l6ZSA+IDEwNDg1NzYpew0KCQkJICAkc2l6ZTE9IG51bWJlcl9mb3JtYXQoJHNpemUvMTA0ODU3NiwyKTsNCgkJCSAgJHNpemUyPSIkc2l6ZTEgTWIiOw0KCQkgIH0JDQoJCSAgcmV0dXJuICRzaXplMjsNCgl9DQoNCglwdWJsaWMgZnVuY3Rpb24gZ2V0X2hlYWRlcigkVXJsLCAkRm9ybWF0PSAwLCAkRGVwdGg9IDApIHsNCgkJaWYgKCREZXB0aCA+IDUpIHJldHVybjsNCgkJJFBhcnRzID0gcGFyc2VfdXJsKCRVcmwpOw0KCQlpZiAoIWFycmF5X2tleV9leGlzdHMoJ3BhdGgnLCAkUGFydHMpKSAgICRQYXJ0c1sncGF0aCddID0gJy8nOw0KCQlpZiAoIWFycmF5X2tleV9leGlzdHMoJ3BvcnQnLCAkUGFydHMpKSAgICRQYXJ0c1sncG9ydCddID0gODA7DQoJCWlmICghYXJyYXlfa2V5X2V4aXN0cygnc2NoZW1lJywgJFBhcnRzKSkgJFBhcnRzWydzY2hlbWUnXSA9ICdodHRwJzsNCgkNCgkJJFJldHVybiA9IGFycmF5KCk7DQoJCSRmcCA9IGZzb2Nrb3BlbigkUGFydHNbJ2hvc3QnXSwgJFBhcnRzWydwb3J0J10sICRlcnJubywgJGVycnN0ciwgMzApOw0KCQlpZiAoJGZwKSB7DQoJCQkkT3V0ID0gJ0dFVCAnLiRQYXJ0c1sncGF0aCddLihpc3NldCgkUGFydHNbJ3F1ZXJ5J10pID8gJz8nLkAkUGFydHNbJ3F1ZXJ5J10gOiAnJykuIiBIVFRQLzEuMVxyXG4iLg0KCQkJCSAgICdIb3N0OiAnLiRQYXJ0c1snaG9zdCddLigkUGFydHNbJ3BvcnQnXSAhPSA4MCA/ICc6Jy4kUGFydHNbJ3BvcnQnXSA6ICcnKS4iXHJcbiIuDQoJCQkJICAgJ0Nvbm5lY3Rpb246IENsb3NlJy4iXHJcbiI7DQoJCQlmd3JpdGUoJGZwLCAkT3V0LiJcclxuIik7DQoJCQkkUmVkaXJlY3QgPSBmYWxzZTsgJFJlZGlyZWN0VXJsID0gJyc7DQoJCQl3aGlsZSAoIWZlb2YoJGZwKSAmJiAkSW5MaW5lID0gZmdldHMoJGZwLCAxMjgwKSkgew0KCQkJCWlmICgkSW5MaW5lID09ICJcclxuIikgYnJlYWs7DQoJCQkJJEluTGluZSA9IHJ0cmltKCRJbkxpbmUpOw0KCQ0KCQkJCWxpc3QoJEtleSwgJFZhbHVlKSA9IGV4cGxvZGUoJzogJywgJEluTGluZSwgMik7DQoJCQkJaWYgKCRLZXkgPT0gJEluTGluZSkgew0KCQkJCQlpZiAoJEZvcm1hdCA9PSAxKQ0KCQkJCQkJCSRSZXR1cm5bJERlcHRoXSA9ICRJbkxpbmU7DQoJCQkJCWVsc2UgICAgJFJldHVybltdID0gJEluTGluZTsNCgkJCQkJaWYgKHN0cnBvcygkSW5MaW5lLCAnTW92ZWQnKSA+IDApICRSZWRpcmVjdCA9IHRydWU7DQoJCQkJfSBlbHNlIHsNCgkJCQkJaWYgKCRLZXkgPT0gJ0xvY2F0aW9uJykgJFJlZGlyZWN0VXJsID0gJFZhbHVlOw0KCQkJCQlpZiAoJEZvcm1hdCA9PSAxKQ0KCQkJCQkJCSRSZXR1cm5bJEtleV0gPSAkVmFsdWU7DQoJCQkJCWVsc2UgICAgJFJldHVybltdID0gJEtleS4nOiAnLiRWYWx1ZTsNCgkJCQl9DQoJCQl9DQoJCQlmY2xvc2UoJGZwKTsNCgkJCWlmICgkUmVkaXJlY3QgJiYgIWVtcHR5KCRSZWRpcmVjdFVybCkpIHsNCgkJCQkkTmV3UGFydHMgPSBwYXJzZV91cmwoJFJlZGlyZWN0VXJsKTsNCgkJCQlpZiAoIWFycmF5X2tleV9leGlzdHMoJ2hvc3QnLCAkTmV3UGFydHMpKSAgICRSZWRpcmVjdFVybCA9ICRQYXJ0c1snaG9zdCddLiRSZWRpcmVjdFVybDsNCgkJCQlpZiAoIWFycmF5X2tleV9leGlzdHMoJ3NjaGVtZScsICROZXdQYXJ0cykpICRSZWRpcmVjdFVybCA9ICRQYXJ0c1snc2NoZW1lJ10uJzovLycuJFJlZGlyZWN0VXJsOw0KCQkJCSRSZWRpcmVjdEhlYWRlcnMgPSAgJHRoaXMtPmdldF9oZWFkZXIoJFJlZGlyZWN0VXJsLCAkRm9ybWF0LCAkRGVwdGgrMSk7DQoJCQkJaWYgKCRSZWRpcmVjdEhlYWRlcnMpICRSZXR1cm4gPSBhcnJheV9tZXJnZV9yZWN1cnNpdmUoJFJldHVybiwgJFJlZGlyZWN0SGVhZGVycyk7DQoJCQl9DQoJCQlyZXR1cm4gJFJldHVybjsNCgkJfQ0KCQlyZXR1cm4gZmFsc2U7DQoJfQ0KDQoJcHVibGljIGZ1bmN0aW9uIEhvdGxpbmtDaGVjaygka2V5LCRjc3NfdXJsKXsNCg0KCQkJZ2xvYmFsICRnQ21zOw0KCQkJJGNvbmZpZyA9JiAkZ0Ntcy0+R2V0Q29uZmlnKCk7IAkNCgkJCSRyZXBvcnQ9YXJyYXkoKTsNCgkJCSR0aGlzLT5hZGpLZXk9JGtleSsxOw0KCQkJJHRoaXMtPmNzc191cmxfVyA9ICcnOw0KCQkJJHRoaXMtPmZTaXplPSctLSc7DQoJCQkkdGhpcy0+YmFzZVVSTD0kY3NzX3VybDsNCgkJCSR0aGlzLT5GaXJlRGVidWcoJ2Vycm9yJywgJ0hvdGxpbmtDaGVjay1iYXNlVVJMOiAnLiR0aGlzLT5iYXNlVVJMKTsNCgkJCWlmICgoc3Vic3RyKCRjc3NfdXJsLCAwLDUpKT09Imh0dHA6Inx8KHN1YnN0cigkY3NzX3VybCwgMCw2KSk9PSJodHRwczoiKXsNCgkJCQlpZihzdHJwb3MoJGNzc191cmwsJGNvbmZpZ1sncm9vdF91cmwnXSkgPT09IGZhbHNlKXsNCgkJCQkJJHRoaXMtPmNzc191cmxfVyAuPSAkdGhpcy0+TGFuZygnaG90bGluaycpOw0KCQkJCX0NCgkJCX1lbHNleyR0aGlzLT5GaXJlRGVidWcoJ2Vycm9yJywgJ0hvdGxpbmtDaGVjay1jc3NfdXJsOiAnLiRjc3NfdXJsKTsNCgkJCQlpZiAoKHN1YnN0cigkY3NzX3VybCwgMCw1KSk9PSJodHRwOiIpeyRMPXN0cmxlbigkY29uZmlnWydyb290X3VybCddKTskY3NzX3VybCA9IHN1YnN0cl9yZXBsYWNlKCRjc3NfdXJsLCAnJywgMCwgJEwpO30NCgkJCQlpZiAoKHN1YnN0cigkY3NzX3VybCwgMCwxKSk9PScvJyl7JGNzc191cmw9c3Vic3RyX3JlcGxhY2UoJGNzc191cmwsICcnLCAwLCAxKTt9DQoJCQkJJGNzc19wYXRoPSRjb25maWdbJ3Jvb3RfcGF0aCddLicvJy4kY3NzX3VybDsNCgkJCQkkY3NzX3VybD0kY29uZmlnWydyb290X3VybCddLicvJy4kY3NzX3VybDsNCgkJCQkkdGhpcy0+Y3NzX3VybF9XID0gJ09LJzsNCgkJCX0NCgkJCSR0aGlzLT5GaXJlRGVidWcoJ2Vycm9yJywgJ0hvdGxpbmtDaGVjay1jc3NfdXJsKHBybyk6ICcuJGNzc191cmwpOw0KCQkJDQoJCQlpZiAoIWZ1bmN0aW9uX2V4aXN0cygnZ2V0X2hlYWRlcnMnKSkgew0KCQkJCSRoZWFkZXJzID0gJHRoaXMtPmdldF9oZWFkZXIoJGNzc191cmwsIDEpOyANCgkJCX1lbHNlew0KCQkJCSRoZWFkZXJzID0gQGdldF9oZWFkZXJzKCRjc3NfdXJsLCAxKTsgCQ0KCQkJfQ0KCQkJDQoJCQkNCgkJCQ0KCQkJaWYgKCRoZWFkZXJzWzBdID09ICdIVFRQLzEuMSAyMDAgT0snJiYkaGVhZGVyc1snQ29udGVudC1MZW5ndGgnXSE9JycpIHsgDQoJCQkJJHRoaXMtPmNzc191cmxfVyAuPSAnJzsgDQoJCQl9ZWxzZXsNCgkJCQlpZigkdGhpcy0+Y3NzX3VybF9XID09ICdPSycpew0KCQkJCQkkdGhpcy0+Y3NzX3VybF9XID0gJzxzdHJvbmc+Jy4gJHRoaXMtPkxhbmcoJ0Jyb2tlbmxpbmsnKS4nOjwvc3Ryb25nPiAnLiRoZWFkZXJzWzBdOyANCgkJCQl9ZWxzZXsNCgkJCQkJJHRoaXMtPmNzc191cmxfVyAuPSAnPHN0cm9uZz5WYWxpZCBMaW5rOjwvc3Ryb25nPiAnLiRoZWFkZXJzWzBdOyANCgkJCQl9DQoJCQl9DQoJCQlpZihpc3NldCgkaGVhZGVyc1snQ29udGVudC1MZW5ndGgnXSkmJiRoZWFkZXJzWydDb250ZW50LUxlbmd0aCddIT0nJyl7DQoJCQkJJHRoaXMtPmZTaXplPSR0aGlzLT5TaXplSXRVcCgkaGVhZGVyc1snQ29udGVudC1MZW5ndGgnXSk7DQoJCQl9DQoJCQkkdGhpcy0+RmlyZURlYnVnKCdlcnJvcicsICdjc3NfdXJsX1c6ICcuJHRoaXMtPmNzc191cmxfVyk7DQoJCQkkcmVwb3J0PWFycmF5KCR0aGlzLT5jc3NfdXJsX1csJHRoaXMtPmFkaktleSwkY3NzX3VybCwkdGhpcy0+ZlNpemUsJHRoaXMtPmJhc2VVUkwsJHRoaXMtPmNzc19wYXRoLCR0aGlzLT5lcnJvcik7DQoJCQlyZXR1cm4gJHJlcG9ydDsNCgl9DQoNCglwdWJsaWMgZnVuY3Rpb24gZmlsZVRpbWVfY3NzX3VybHMoJHRleHQpew0KCQlnbG9iYWwgJGdDbXM7DQoJCSRjb25maWcgPSYgJGdDbXMtPkdldENvbmZpZygpOyAJDQoJCSRob3RMaW5rQ2hlY2sgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaG90TGlua0NoZWNrJywxKTsNCgkJJGNzc191cmxzID0gJHRoaXMtPmV4dHJhY3RfY3NzX3VybHMoICR0ZXh0ICk7DQoJCSR0aGlzLT5GaXJlRGVidWcoJ2Vycm9yJywgJ2Nzc191cmxzLUFSUkFZOiAnLiRjc3NfdXJscyk7DQoJCWlmKCFlbXB0eSgkY3NzX3VybHMpKXsNCgkJCSRjc3NfdXJscz0kY3NzX3VybHNbJ3Byb3BlcnR5J107DQoJCQlpZihpc19hcnJheSgkY3NzX3VybHMpKXsNCgkJCQkkY3NzX3VybHMgPSBhcnJheV91bmlxdWUoJGNzc191cmxzKTsNCgkJCQlmb3JlYWNoKCRjc3NfdXJscyBhcyAka2V5PT4kY3NzX3VybCl7DQoJCQkJCSR0aGlzLT5GaXJlRGVidWcoJ2Vycm9yJywgJ2Nzc191cmw6ICcuJGNzc191cmwpOw0KCQkJCQlpZiggJGhvdExpbmtDaGVjayl7DQoJCQkJCQkkcmVzdWx0ID0gJHRoaXMtPkhvdGxpbmtDaGVjaygka2V5LCRjc3NfdXJsKTsNCgkJCQkJCWlmKCRyZXN1bHRbMF09PSdPSycpew0KCQkJCQkJCSRjc3NfcGF0aD0kY29uZmlnWydyb290X3BhdGgnXS4nLycuJHJlc3VsdFs0XTsNCgkJCQkJCQkkdGV4dD1zdHJfcmVwbGFjZSgkcmVzdWx0WzRdLCAkcmVzdWx0WzRdLiI/Ii5AZmlsZW10aW1lKCRjc3NfcGF0aCksICR0ZXh0KTsNCgkJCQkJCQkkdGhpcy0+RmlyZURlYnVnKCdlcnJvcicsICdmaWxlVGltZV9jc3NfdXJsczogJy4kcmVzdWx0WzFdKTsNCgkJCQkJCQkkdGhpcy0+RmlyZURlYnVnKCdlcnJvcicsICdmaWxlVGltZV9jc3NfdXJsczogJy4kcmVzdWx0WzJdKTsNCgkJCQkJCQkkdGhpcy0+RmlyZURlYnVnKCdlcnJvcicsICdmaWxlVGltZV9jc3NfdXJsczogJy4kcmVzdWx0WzNdKTsNCgkJCQkJCQkkdGhpcy0+RmlyZURlYnVnKCdlcnJvcicsICdmaWxlVGltZV9jc3NfdXJsczogJy4kcmVzdWx0WzRdKTsNCgkJCQkJCQkkdGhpcy0+RmlyZURlYnVnKCdlcnJvcicsICdmaWxlVGltZV9jc3NfdXJsczogJy4kY3NzX3BhdGgpOw0KCQkJCQkJLy8kdGV4dD1wcmVnX3JlcGxhY2UoJHJlc3VsdFs0XSwgJyR7MX0/Jy5maWxlbXRpbWUoJHJlc3VsdFs1XSksICk7DQoJCQkJCQl9DQoJCQkJCX1lbHNlew0KCQkJCQkJJGJhc2VVUkw9JGNzc191cmw7DQoJCQkJCQlpZiAoKHN1YnN0cigkY3NzX3VybCwgMCw1KSk9PSJodHRwOiIpeyRMPXN0cmxlbigkY29uZmlnWydyb290X3VybCddKTskY3NzX3VybCA9IHN1YnN0cl9yZXBsYWNlKCRjc3NfdXJsLCAnJywgMCwgJEwpO30NCgkJCQkJCWlmICgoc3Vic3RyKCRjc3NfdXJsLCAwLDEpKT09Jy8nKXskY3NzX3VybD1zdWJzdHJfcmVwbGFjZSgkY3NzX3VybCwgJycsIDAsIDEpO30NCgkJCQkJCSRjc3NfcGF0aD0kY29uZmlnWydyb290X3BhdGgnXS4nLycuJGNzc191cmw7DQoJCQkJCQkkY3NzX3VybD0kY29uZmlnWydyb290X3VybCddLicvJy4kY3NzX3VybDsNCgkJCQkJCS8vJEZUPUBmaWxlbXRpbWUoJGNzc19wYXRoKTsNCgkJCQkJCSRGVCA9IEBmaWxlbXRpbWUoJGNzc19wYXRoKSA/ICI/Ii5maWxlbXRpbWUoJGNzc19wYXRoKTonJzsNCgkJCQkJCSR0ZXh0PXN0cl9yZXBsYWNlKCRiYXNlVVJMLCAkYmFzZVVSTC4kRlQsICR0ZXh0KTsNCgkJCQkJfQ0KCQkJCX0NCgkJCX0NCgkJfQ0KCQlyZXR1cm4gJHRleHQ7DQoJfQ0KCQ0KCXB1YmxpYyBmdW5jdGlvbiBidWlsZF9wcmVsb2FkKCR0ZXh0KXsNCgkJZ2xvYmFsICRnQ21zOw0KCQkkY29uZmlnID0mICRnQ21zLT5HZXRDb25maWcoKTsgCQ0KCQkkY3NzX3VybHMgPSAkdGhpcy0+ZXh0cmFjdF9jc3NfdXJscyggJHRleHQgKTsNCgkJLy8kdGhpcy0+RmlyZURlYnVnKCdlcnJvcicsICdidWlsZF9wcmVsb2FkIGNzc191cmxzLUFSUkFZOiAnLiRjc3NfdXJscyk7DQoJCSR1cmxQYWNrYWdlPScnOw0KCQlpZighZW1wdHkoJGNzc191cmxzKSl7DQoJCQkkY3NzX3VybHM9JGNzc191cmxzWydwcm9wZXJ0eSddOw0KCQkJaWYoaXNfYXJyYXkoJGNzc191cmxzKSl7DQoJCQkJJGNzc191cmxzID0gYXJyYXlfdW5pcXVlKCRjc3NfdXJscyk7DQoJCQkJDQoJCQkJZm9yZWFjaCgkY3NzX3VybHMgYXMgJGtleT0+JGNzc191cmwpew0KCQkJCQkkdGhpcy0+RmlyZURlYnVnKCdlcnJvcicsICdidWlsZF9wcmVsb2FkIGNzc191cmw6ICcuJGNzc191cmwpOw0KCQkJCQkJJGJhc2VVUkw9JGNzc191cmw7DQoJCQkJCQlpZiAoKHN1YnN0cigkY3NzX3VybCwgMCw1KSk9PSJodHRwOiIpeyRMPXN0cmxlbigkY29uZmlnWydyb290X3VybCddKTskY3NzX3VybCA9IHN1YnN0cl9yZXBsYWNlKCRjc3NfdXJsLCAnJywgMCwgJEwpO30NCgkJCQkJCWlmICgoc3Vic3RyKCRjc3NfdXJsLCAwLDEpKT09Jy8nKXskY3NzX3VybD1zdWJzdHJfcmVwbGFjZSgkY3NzX3VybCwgJycsIDAsIDEpO30NCgkJCQkJCSRjc3NfcGF0aD0kY29uZmlnWydyb290X3BhdGgnXS4nLycuJGNzc191cmw7DQoJCQkJCQkkdGhpcy0+RmlyZURlYnVnKCdlcnJvcicsICdidWlsZF9wcmVsb2FkIGNzc19wYXRoOiAnLiRjc3NfcGF0aCk7DQoJCQkJCQkvLyRGVD1AZmlsZW10aW1lKCRjc3NfcGF0aCk7DQoJCQkJCQkkRlQgPSBAZmlsZW10aW1lKCRjc3NfcGF0aCkgPyAiPyIuZmlsZW10aW1lKCRjc3NfcGF0aCk6Jyc7DQoJCQkJCQ0KCQkJCQkkdXJsUGFja2FnZS49JzxpbWcgc3JjPSInLiRiYXNlVVJMLiRGVC4nIiBhbHQ9IiIgLz4nOw0KCQkJCX0NCgkJCX0NCgkJfQ0KCQlyZXR1cm4gJHVybFBhY2thZ2U7DQoJfQ0KDQoJcHVibGljIGZ1bmN0aW9uIGV4dHJhY3RfY3NzX3VybHMoICR0ZXh0ICl7DQoJCSR1cmxzID0gYXJyYXkoICk7DQoNCgkJJHVybF9wYXR0ZXJuICAgICA9ICcoKFteXFxcXFwnIiwgXChcKV0qKFxcXFwuKT8pKyknOw0KCQkkdXJsZnVuY19wYXR0ZXJuID0gJ3VybFwoXHMqW1wnIl0/JyAuICR1cmxfcGF0dGVybiAuICdbXCciXT9ccypcKSc7DQoJCSRwYXR0ZXJuICAgICAgICAgPSAnLygnIC4NCgkJCSAnKEBpbXBvcnRccypbXCciXScgLiAkdXJsX3BhdHRlcm4gICAgIC4gJ1tcJyJdKScgLg0KCQkJJ3woQGltcG9ydFxzKicgICAgICAuICR1cmxmdW5jX3BhdHRlcm4gLiAnKScgICAgICAuDQoJCQknfCgnICAgICAgICAgICAgICAgIC4gJHVybGZ1bmNfcGF0dGVybiAuICcpJyAgICAgIC4gICcpL2l1JzsNCgkJaWYgKCAhcHJlZ19tYXRjaF9hbGwoICRwYXR0ZXJuLCAkdGV4dCwgJG1hdGNoZXMgKSApew0KCQkJcmV0dXJuICR1cmxzOw0KCQl9DQoJDQoJCS8vIEBpbXBvcnQgJy4uLicNCgkJLy8gQGltcG9ydCAiLi4uIg0KCQlmb3JlYWNoICggJG1hdGNoZXNbM10gYXMgJG1hdGNoICkgew0KCQkJaWYgKCAhZW1wdHkoJG1hdGNoKSApIHsNCgkJCQkkdXJsc1snaW1wb3J0J11bXSA9IHByZWdfcmVwbGFjZSggJy9cXFxcKC4pL3UnLCAnXFwxJywgJG1hdGNoICk7DQoJCQl9DQoJCX0NCgkNCgkJLy8gQGltcG9ydCB1cmwoLi4uKQ0KCQkvLyBAaW1wb3J0IHVybCgnLi4uJykNCgkJLy8gQGltcG9ydCB1cmwoIi4uLiIpDQoJCWZvcmVhY2ggKCAkbWF0Y2hlc1s3XSBhcyAkbWF0Y2ggKXsNCgkJCWlmICggIWVtcHR5KCRtYXRjaCkgKXsNCgkJCQkkdXJsc1snaW1wb3J0J11bXSA9IHByZWdfcmVwbGFjZSggJy9cXFxcKC4pL3UnLCAnXFwxJywgJG1hdGNoICk7DQoJCQl9DQoJCX0NCgkJLy8gdXJsKC4uLikNCgkJLy8gdXJsKCcuLi4nKQ0KCQkvLyB1cmwoIi4uLiIpDQoJCWZvcmVhY2ggKCAkbWF0Y2hlc1sxMV0gYXMgJG1hdGNoICl7DQoJCQlpZiAoICFlbXB0eSgkbWF0Y2gpICl7DQoJCQkJJHVybHNbJ3Byb3BlcnR5J11bXSA9IHByZWdfcmVwbGFjZSggJy9cXFxcKC4pL3UnLCAnXFwxJywgJG1hdGNoICk7DQoJCQl9DQoJCX0NCgkJcmV0dXJuICR1cmxzOw0KCX0NCg0KCS8qLS0tLVNjcmlwdC1MaXN0LVNldC11cC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovDQoJcHVibGljIGZ1bmN0aW9uIF9BZG1pbkNyZWF0ZVNjcmlwdExpc3QoICRpZCwgJHJldHVybmlkLCAkcHJlZml4LCAkZGVmYXVsdHRlbXBsYXRlcHJlZiwkYWN0aXZlX3RhYiwgJGRlZmF1bHRwcmVmbmFtZSwkdGl0bGUsJHR5cGVJUyl7DQoJCWluY2x1ZGUoZGlybmFtZShfX0ZJTEVfXykuJy9mdW5jdGlvbi5hZG1pbl9zY3JpcHRsaXN0X3RhYi5waHAnKTsNCgl9DQoNCglwdWJsaWMgZnVuY3Rpb24gdGVtcGxhdGVfcHJldmlldygkcGFyYW1zKXsNCgkJZ2xvYmFsICRnQ21zOw0KCQlyZXF1aXJlX29uY2UoJy4uL2FkbWluL2VkaXRjb250ZW50X2V4dHJhLnBocCcpOw0KCQkkdXJsZXh0PSc/Jy5DTVNfU0VDVVJFX1BBUkFNX05BTUUuJz0nLiRfU0VTU0lPTltDTVNfVVNFUl9LRVldOw0KCQkkY29uZmlnID0mICRnQ21zLT5HZXRDb25maWcoKTsNCgkJJGNvbnRlbnRvcHMgPSYgJGdDbXMtPkdldENvbnRlbnRPcGVyYXRpb25zKCk7DQoJDQoJCSRjb250ZW50X3R5cGUgPSAnQ29udGVudCc7Ly8kcGFyYW1zWydjb250ZW50X3R5cGUnXTsNCgkJJGNvbnRlbnRvcHMtPkxvYWRDb250ZW50VHlwZSgkY29udGVudF90eXBlKTsNCgkNCgkJJGNvbmZpZyA9JiAkZ0Ntcy0+R2V0Q29uZmlnKCk7DQoJCSR0ZW1wbGF0ZW9wcyA9JiAkZ0Ntcy0+R2V0VGVtcGxhdGVPcGVyYXRpb25zKCk7DQoJDQoJCSRkYXRhWyJjb250ZW50X2lkIl0gPSA5OTk5Ow0KCQkkZGF0YVsnY29udGVudF90eXBlJ10gPSAnQ29udGVudCc7DQoJCSRkYXRhWyJ0aXRsZSJdID0gJ1ByZXZpZXcnOw0KCQkkZGF0YVsibWVudXRleHQiXSA9ICdQcmV2aWV3JzsNCgkJJGRhdGFbImNvbnRlbnQiXSA9IHVuc2VyaWFsaXplKCRwYXJhbXNbInNlcmlhbGl6ZWRfY29udGVudCJdKTsNCgkJJGRhdGFbInRlbXBsYXRlX2lkIl0gPSA5OTk5Ow0KCQkkZGF0YVsiaGllcmFyY2h5Il0gPSA5OTk5Ow0KCQkNCgkJJHRlbXBsYXRlb2JqID0gJHRlbXBsYXRlb3BzLT5Mb2FkVGVtcGxhdGVCeUlkKCRwYXJhbXNbJ3RlbXBsYXRlX2lkJ10pOw0KCQkkZGF0YVsndGVtcGxhdGUnXSA9ICR0ZW1wbGF0ZW9iai0+Y29udGVudDsNCgkNCgkJJHN0eWxlc2hlZXRvYmogPSBnZXRfc3R5bGVzaGVldCgkcGFyYW1zWyd0ZW1wbGF0ZV9pZCddKTsNCgkJJGRhdGFbJ2VuY29kaW5nJ10gPSAkc3R5bGVzaGVldG9ialsnZW5jb2RpbmcnXTsNCgkJJGRhdGFbJ3NlcmlhbGl6ZWRfY29udGVudCddID0gc2VyaWFsaXplKCRwYXJhbXNbInNlcmlhbGl6ZWRfY29udGVudCJdKTsNCgkNCgkJJHRtcGZuYW1lID0gJyc7DQoJCSR0bXBmbmFtZSA9IHRlbXBuYW0oJGNvbmZpZ1sicHJldmlld3NfcGF0aCJdLCAiY21zcHJldmlldyIpOw0KCQ0KCQkkaGFuZGxlID0gZm9wZW4oJHRtcGZuYW1lLCAidyIpOw0KCQlmd3JpdGUoJGhhbmRsZSwgc2VyaWFsaXplKCRkYXRhKSk7DQoJCWZjbG9zZSgkaGFuZGxlKTsNCgkNCgkNCgkJLy8gc3RyX3JlcGxhY2UgaXMgYmVjYXVzZSBvZiBzdHVwaWQgd2luZG93cyBtYWNoaW5lcy4uLi4gd2hlbiB3aWxsIHRoZXkgZGllLg0KCQkkX1NFU1NJT05bJ2Ntc19wcmV2aWV3J10gPSBzdHJfcmVwbGFjZSgnXFwnLCcvJywkdG1wZm5hbWUpOw0KCQkkdG1wdmFyID0gc3Vic3RyKHN0cl9zaHVmZmxlKG1kNSgkdG1wZm5hbWUpKSwtMyk7DQoJCSR1cmwgPSAkY29uZmlnWyJyb290X3VybCJdLicvaW5kZXgucGhwPycuJGNvbmZpZ1sncXVlcnlfdmFyJ10uIj1fX0NNU19QUkVWSUVXX1BBR0VfXyZyPSR0bXB2YXIiOyAvLyB0ZW1wb3JhcnkNCgkJcmV0dXJuICR1cmw7DQoJfQ0KCQ0KCQ0KCQ0KCQ0KCQ0KCQ0KCQ0KCQ0KCQ0KCS8vdGVtcGxhdGUgY2FsbHMtLXNldHMgYW5kIGdldHMNCgkNCglwdWJsaWMgZnVuY3Rpb24gYWRkX3RlbXBsYXRlKCRwYXJhbXMpew0KCQlnbG9iYWwgJGdDbXM7DQoJCQ0KCQkkZm4gPSBkaXJuYW1lKF9fRklMRV9fKS4nL3RlbXBsYXRlcy9vcmlnX25ld190ZW1wbGF0ZS50cGwnOw0KCQkkZGZsdF9jb250ZW50ID0gQGZpbGVfZ2V0X2NvbnRlbnRzKCRmbik7DQoJCQ0KCQkkdGVtcGxhdGUgPSAiIjsNCgkJaWYgKGlzc2V0KCRfUE9TVFsidGVtcGxhdGUiXSkpICR0ZW1wbGF0ZSA9ICRfUE9TVFsidGVtcGxhdGUiXTsNCgkJDQoJCSRjb250ZW50ID0gJGRmbHRfY29udGVudDsNCgkJaWYgKGlzc2V0KCRfUE9TVFsiY29udGVudCJdKSkgJGNvbnRlbnQgPSAkX1BPU1RbImNvbnRlbnQiXTsNCgkJDQoJCSRzdHlsZXNoZWV0ID0gIiI7DQoJCWlmIChpc3NldCgkX1BPU1RbInN0eWxlc2hlZXQiXSkpICRzdHlsZXNoZWV0ID0gJF9QT1NUWyJzdHlsZXNoZWV0Il07DQoJCQ0KCQkkYWN0aXZlID0gMTsNCgkJaWYgKCFpc3NldCgkX1BPU1RbImFjdGl2ZSJdKSAmJiBpc3NldCgkX1BPU1RbImFkZHNlY3Rpb24iXSkpICRhY3RpdmUgPSAwOw0KCQkNCgkJLy8vLy8vLy8vDQoJCS8vQWRkIGEgcmVkaXJlY3QNCgkJLy9UT0RPDQoJCS8vDQoJCS8vLy8vLy8vLy8NCgkJDQoJCWdsb2JhbCAkZ0NtczsNCgkJJGRiID0mICRnQ21zLT5HZXREYigpOw0KCQkkdGVtcGxhdGVvcHMgPSYgJGdDbXMtPkdldFRlbXBsYXRlT3BlcmF0aW9ucygpOw0KCQkNCgkJJHVzZXJpZCA9IGdldF91c2VyaWQoKTsNCgkJJGFjY2VzcyA9IGNoZWNrX3Blcm1pc3Npb24oJHVzZXJpZCwgJ0FkZCBUZW1wbGF0ZXMnKTsNCgkJDQoJCSR1c2VfamF2YXN5bnRheCA9IGZhbHNlOw0KCQlpZiAoZ2V0X3ByZWZlcmVuY2UoJHVzZXJpZCwgJ3VzZV9qYXZhc3ludGF4JykgPT0gIjEiKSAkdXNlX2phdmFzeW50YXggPSB0cnVlOw0KCQkNCgkJaWYgKCRhY2Nlc3MpDQoJCXsNCgkJCWlmIChpc3NldCgkX1BPU1RbImFkZHRlbXBsYXRlIl0pICYmICEkcHJldmlldykNCgkJCXsNCgkJCQkkdmFsaWRpbmZvID0gdHJ1ZTsNCgkJDQoJCQkJaWYgKCR0ZW1wbGF0ZSA9PSAiIikNCgkJCQl7DQoJCQkJCSRlcnJvciAuPSAiPGxpPiIubGFuZygibm9maWVsZGdpdmVuIixhcnJheShsYW5nKCduYW1lJykpKS4iPC9saT4iOw0KCQkJCQkkdmFsaWRpbmZvID0gZmFsc2U7DQoJCQkJfQ0KCQkJCWVsc2UNCgkJCQl7DQoJCQkJCSRxdWVyeSA9ICJTRUxFQ1QgdGVtcGxhdGVfaWQgZnJvbSAiLmNtc19kYl9wcmVmaXgoKS4idGVtcGxhdGVzIFdIRVJFIHRlbXBsYXRlX25hbWUgPSAiIC4gJGRiLT5xc3RyKCR0ZW1wbGF0ZSk7DQoJCQkJCSRyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsNCgkJDQoJCQkJCWlmICgkcmVzdWx0ICYmICRyZXN1bHQtPlJlY29yZENvdW50KCkgPiAwKQ0KCQkJCQl7DQoJCQkJCQkkZXJyb3IgLj0gIjxsaT4iLmxhbmcoJ3RlbXBsYXRlZXhpc3RzJykuIjwvbGk+IjsNCgkJCQkJCSR2YWxpZGluZm8gPSBmYWxzZTsNCgkJCQkJfQ0KCQkJCX0NCgkJDQoJCQkJaWYgKCRjb250ZW50ID09ICIiKQ0KCQkJCXsNCgkJCQkJJGVycm9yIC49ICI8bGk+Ii5sYW5nKCdub2ZpZWxkZ2l2ZW4nLCBhcnJheShsYW5nKCdjb250ZW50JykpKS4iPC9saT4iOw0KCQkJCQkkdmFsaWRpbmZvID0gZmFsc2U7DQoJCQkJfQ0KCQkNCgkJCQlpZiAoJHZhbGlkaW5mbykNCgkJCQl7DQoJCQkJCSRuZXd0ZW1wbGF0ZSA9IG5ldyBUZW1wbGF0ZSgpOw0KCQkJCQkkbmV3dGVtcGxhdGUtPm5hbWUgPSAkdGVtcGxhdGU7DQoJCQkJCSRuZXd0ZW1wbGF0ZS0+Y29udGVudCA9ICRjb250ZW50Ow0KCQkJCQkkbmV3dGVtcGxhdGUtPnN0eWxlc2hlZXQgPSAkc3R5bGVzaGVldDsNCgkJCQkJJG5ld3RlbXBsYXRlLT5hY3RpdmUgPSAkYWN0aXZlOw0KCQkJCQkkbmV3dGVtcGxhdGUtPmRlZmF1bHQgPSAwOw0KCQkNCgkJCQkJI1BlcmZvcm0gdGhlIGFkZHRlbXBsYXRlX3ByZSBjYWxsYmFjaw0KCQkJCQlmb3JlYWNoKCRnQ21zLT5tb2R1bGVzIGFzICRrZXk9PiR2YWx1ZSkNCgkJCQkJew0KCQkJCQkJaWYgKCRnQ21zLT5tb2R1bGVzWyRrZXldWydpbnN0YWxsZWQnXSA9PSB0cnVlICYmDQoJCQkJCQkJJGdDbXMtPm1vZHVsZXNbJGtleV1bJ2FjdGl2ZSddID09IHRydWUpDQoJCQkJCQl7DQoJCQkJCQkJJGdDbXMtPm1vZHVsZXNbJGtleV1bJ29iamVjdCddLT5BZGRUZW1wbGF0ZVByZSgkbmV3dGVtcGxhdGUpOw0KCQkJCQkJfQ0KCQkJCQl9DQoJCQkJCQ0KCQkJCQlFdmVudHM6OlNlbmRFdmVudCgnQ29yZScsICdBZGRUZW1wbGF0ZVByZScsIGFycmF5KCd0ZW1wbGF0ZScgPT4gJiRuZXd0ZW1wbGF0ZSkpOw0KCQkNCgkJCQkJJHJlc3VsdCA9ICRuZXd0ZW1wbGF0ZS0+c2F2ZSgpOw0KCQkNCgkJCQkJaWYgKCRyZXN1bHQpDQoJCQkJCXsNCgkJCQkJCSNQZXJmb3JtIHRoZSBhZGR0ZW1wbGF0ZV9wb3N0IGNhbGxiYWNrDQoJCQkJCQlmb3JlYWNoKCRnQ21zLT5tb2R1bGVzIGFzICRrZXk9PiR2YWx1ZSkNCgkJCQkJCXsNCgkJCQkJCQlpZiAoJGdDbXMtPm1vZHVsZXNbJGtleV1bJ2luc3RhbGxlZCddID09IHRydWUgJiYNCgkJCQkJCQkJJGdDbXMtPm1vZHVsZXNbJGtleV1bJ2FjdGl2ZSddID09IHRydWUpDQoJCQkJCQkJew0KCQkJCQkJCQkkZ0Ntcy0+bW9kdWxlc1ska2V5XVsnb2JqZWN0J10tPkFkZFRlbXBsYXRlUG9zdCgkbmV3dGVtcGxhdGUpOw0KCQkJCQkJCX0NCgkJCQkJCX0NCgkJCQkJCQ0KCQkJCQkJRXZlbnRzOjpTZW5kRXZlbnQoJ0NvcmUnLCAnQWRkVGVtcGxhdGVQb3N0JywgYXJyYXkoJ3RlbXBsYXRlJyA9PiAmJG5ld3RlbXBsYXRlKSk7DQoJCQ0KCQkJCQkJYXVkaXQoJG5ld3RlbXBsYXRlLT5pZCwgJHRlbXBsYXRlLCAnQWRkZWQgVGVtcGxhdGUnKTsNCgkJCQkJCXJlZGlyZWN0KCRmcm9tKTsNCgkJCQkJCXJldHVybjsNCgkJCQkJfQ0KCQkJCQllbHNlDQoJCQkJCXsNCgkJCQkJCSRlcnJvciAuPSAiPGxpPiIubGFuZygnZXJyb3JpbnNlcnRpbmd0ZW1wbGF0ZScpLiIkcXVlcnk8L2xpPiI7DQoJCQkJCX0NCgkJCQl9DQoJCQl9DQoJCX0NCgl9DQoNCg0KDQoNCg0KDQoNCn0NCj8+DQo=]]></data>
	</file>
	<file>
	  <filename>/swapstyle.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2NyaXB0IHRvIHN3YXAgYmV0d2VlbiBzdHlsZXNoZWV0cwogIFdyaXR0ZW4gYnkgTWFyayBXaWx0b24tSm9uZXMsIDA1LzEyLzIwMDIuIHYyLjIuMSB1cGRhdGVkIDE0LzAzLzIwMDYgZm9yIGR5bmFtaWMgc3R5bGVzaGVldHMKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCgpQbGVhc2Ugc2VlIGh0dHA6Ly93d3cuaG93dG9jcmVhdGUuY28udWsvanNsaWJzLyBmb3IgZGV0YWlscyBhbmQgYSBkZW1vIG9mIHRoaXMgc2NyaXB0ClBsZWFzZSBzZWUgaHR0cDovL3d3dy5ob3d0b2NyZWF0ZS5jby51ay9qc2xpYnMvdGVybXNPZlVzZS5odG1sIGZvciB0ZXJtcyBvZiB1c2UKClRvIHNldCB1cCB0aGUgcGFnZSBpbiB0aGUgZmlyc3QgcGxhY2U6CgoJSW5iZXR3ZWVuIHRoZSA8aGVhZD4gdGFncywgcHV0OgoKCQk8c2NyaXB0IHNyYz0iUEFUSCBUTyBTQ1JJUFQvc3dhcHN0eWxlLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGxhbmd1YWdlPSJqYXZhc2NyaXB0MS4yIj48L3NjcmlwdD4KCglBbHNvIGJldHdlZW4gdGhlIGhlYWQgdGFncywgcHV0IHlvdXIgc3R5bGVzaGVldHMsIGJlc3QgZG9uZSBhcyBleHRlcm5hbCBsaW5rcywgYnV0IHlvdSBjYW4gdXNlCgk8c3R5bGUgLi4uPiB0YWdzIGFzIHdlbGwuCgoJCVN0eWxlc2hlZXRzIGNhbm5vdCBiZSBzd2l0Y2hlZCBpZiB0aGV5IGhhdmUgbm8gdGl0bGUgYXR0cmlidXRlIGFuZCB3aWxsIGJlIHVzZWQgYXQgYWxsIHRpbWVzOgoKCQkJPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iYWxsLmNzcyI+CgoJCVN0eWxlc2hlZXRzIHdpbGwgYmUgb24gYnkgZGVmYXVsdCBpZiB0aGV5IGhhdmUgYSB0aXRsZSBhdHRyaWJ1dGUgYW5kIHRoZWlyIHJlbCBhdHRyaWJ1dGUgaXMgc2V0IHRvICdzdHlsZXNoZWV0Jy4KCQlNb3N0IGJyb3dzZXJzIHdpbGwgb25seSBhbGxvdyBvbmUgb2YgdGhlc2UgdG8gYmUgZGVmaW5lZCAob3Igc2V2ZXJhbCBzaGFyaW5nIHRoZSBzYW1lIHRpdGxlKToKCgkJCTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9ImRlZmF1bHQuY3NzIiB0aXRsZT0iRGVmYXVsdCI+CgoJCVN0eWxlc2hlZXRzIHdpbGwgYmUgb2ZmIGJ5IGRlZmF1bHQgaWYgdGhleSBoYXZlIGEgdGl0bGUgYXR0cmlidXRlIGFuZCB0aGVpciByZWwgYXR0cmlidXRlIGlzIHNldCB0byAnYWx0ZXJuYXRlIHN0eWxlc2hlZXQnOgoKCQkJPGxpbmsgcmVsPSJhbHRlcm5hdGUgc3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9ImNvbnRyYXN0LmNzcyIgdGl0bGU9IkhpZ2ggQ29udHJhc3QiPgoJCQk8bGluayByZWw9ImFsdGVybmF0ZSBzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iYmlnRm9udC5jc3MiIHRpdGxlPSJCaWcgRm9udCI+CgpUbyBzd2FwIGJldHdlZW4gc3R5bGVzaGVldHM6CgoJY2hhbmdlU3R5bGUoKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvL3N3aXRjaGVzIG9mZiBhbGwgc3R5bGVzaGVldHMgdGhhdCBoYXZlIHRpdGxlIGF0dHJpYnV0ZXMKCWNoYW5nZVN0eWxlKCdEZWZhdWx0Jyk7ICAgICAgICAgICAgICAgICAgLy9zd2l0Y2hlcyBvZmYgYWxsIHN0eWxlc2hlZXRzIHRoYXQgaGF2ZSB0aXRsZSBhdHRyaWJ1dGVzIHRoYXQgZG8gbm90IG1hdGNoICdEZWZhdWx0JwoJY2hhbmdlU3R5bGUoJ0hpZ2ggQ29udHJhc3QnKTsgICAgICAgICAgICAvL3N3aXRjaGVzIG9mZiBhbGwgc3R5bGVzaGVldHMgdGhhdCBoYXZlIHRpdGxlIGF0dHJpYnV0ZXMgdGhhdCBkbyBub3QgbWF0Y2ggJ0hpZ2ggQ29udHJhc3QnCgljaGFuZ2VTdHlsZSgnQmlnIEZvbnQnKTsgICAgICAgICAgICAgICAgIC8vc3dpdGNoZXMgb2ZmIGFsbCBzdHlsZXNoZWV0cyB0aGF0IGhhdmUgdGl0bGUgYXR0cmlidXRlcyB0aGF0IGRvIG5vdCBtYXRjaCAnQmlnIEZvbnQnCgljaGFuZ2VTdHlsZSgnSGlnaCBDb250cmFzdCcsJ0JpZyBGb250Jyk7IC8vc3dpdGNoZXMgb2ZmIGFsbCBzdHlsZXNoZWV0cyB0aGF0IGhhdmUgdGl0bGUgYXR0cmlidXRlcyB0aGF0IGRvIG5vdCBtYXRjaCAnSGlnaCBDb250cmFzdCcgb3IgJ0JpZyBGb250JwoKCU9wZXJhIDcrIGFuZCBNb3ppbGxhIGFsc28gYWxsb3cgdXNlcnMgdG8gc3dpdGNoIGJldHdlZW4gc3R5bGVzaGVldHMgdXNpbmcgdGhlIHZpZXcgbWVudSAob25seSBvbmUgYXQgYSB0aW1lIHRob3VnaCAuLi4pCgpUbyBtYWtlIHRoZSBzY3JpcHQgcmVtZW1iZXIgdGhlIHVzZXIncyBjaG9pY2Ugb2Ygc3R5bGVzaGVldHMsIGZvciBleGFtcGxlIHRvIHVzZSBvbiBtb3JlIHRoYW4gb25lIHBhZ2Ugb3IgaWYgdGhleSByZWxvYWQKLSBpbmNsdWRlcyBzdHlsZXNoZWV0cyBjaG9zZW4gdXNpbmcgdGhlIHZpZXcgbWVudSBpbiBHZWNrbyAtIGl0IHdpbGwgb25seSBhdHRlbXB0IHRvIHN0b3JlIGEgY29va2llIGlmIHRoZXkgYWN0dWFsbHkKY2hhbmdlZCBzb21ldGhpbmc6CgoJSW4gdGhlc2UgZXhhbXBsZXMsIEkgY2FsbCB0aGUgY29va2llIHVzZWQgdG8gc3RvcmUgdGhlIGNob2ljZSAnc3R5bGVUZXN0U3RvcmUnLiBZb3UgY291bGQgdXNlIGFueSBuYW1lIHlvdSBsaWtlLgoKCVRvIHJlbWVtYmVyIG9ubHkgdW50aWwgdGhlIGJyb3dzZXIgd2luZG93IGlzIGNsb3NlZDoKCgkJPGJvZHkgb25sb2FkPSJ1c2VTdHlsZUFnYWluKCdzdHlsZVRlc3RTdG9yZScpOyIgb251bmxvYWQ9InJlbWVtYmVyU3R5bGUoJ3N0eWxlVGVzdFN0b3JlJyk7Ij4KCglUbyByZW1lbWJlciBmb3IgMTAgZGF5cyAoZm9yIGV4YW1wbGUpOgoKCQk8Ym9keSBvbmxvYWQ9InVzZVN0eWxlQWdhaW4oJ3N0eWxlVGVzdFN0b3JlJyk7IiBvbnVubG9hZD0icmVtZW1iZXJTdHlsZSgnc3R5bGVUZXN0U3RvcmUnLDEwKTsiPgoKTm90ZSB0aGF0IHNvbWUgYnJvd3NlcnMgKG1vc3Qgbm90YWJseSBPcGVyYSkgZG8gbm90IGZpcmUgdGhlIG9udW5sb2FkIGV2ZW50IHdoZW4gdGhlIHBhZ2UgaXMKcmVsb2FkZWQsIGFuZCB3aWxsIG9ubHkgZmlyZSBpdCB3aGVuIHRoZSB1c2VyIGNsaWNrcyBhIGxpbmsgb3Igc3VibWl0cyBhIGZvcm0uIElmIHlvdSBuZWVkIHRoZQpzdHlsZSBwcmVmZXJlbmNlIHRvIGJlIHN0b3JlZCBldmVuIHdoZW4gcmVsb2FkaW5nLCB5b3Ugc2hvdWxkIGNhbGwgcmVtZW1iZXJTdHlsZSBpbW1lZGlhdGVseQphZnRlciB5b3UgY2FsbCBjaGFuZ2VTdHlsZS4KCklmIHlvdSBhcmUgZ29pbmcgdG8gcHJvdmlkZSB1c2VycyB3aXRoIGEgbWVjaGFuaXNtIHRvIGNoYW5nZSBzdHlsZXNoZWV0cywgeW91IG1heSB3YW50IHRvIGNoZWNrCmlmIHRoZSBicm93c2VyIHdpbGwgYWxsb3cgeW91IHRvIGNoYW5nZSBzdHlsZXNoZWV0cyBmaXJzdC4gVXNlOgoKCWlmKCBkb2N1bWVudC5zdHlsZVNoZWV0cyB8fCAoIHdpbmRvdy5vcGVyYSAmJiBkb2N1bWVudC5jaGlsZE5vZGVzICkgfHwgKCB3aW5kb3cuU2NyaXB0RW5naW5lICYmIFNjcmlwdEVuZ2luZSgpLmluZGV4T2YoJ0luU2NyaXB0JykgKyAxICYmIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQgKSApIHsKCQlkb2N1bWVudC53cml0ZSgnU29tZXRoaW5nIHRoYXQgYWxsb3dzIHRoZW0gdG8gY2hvb3NlIHN0eWxlc2hlZXRzJyk7Cgl9CgpJdCdzIG5vdCBwZXJmZWN0LCBiZWNhdXNlIGl0IHdpbGwgYWxzbyBhcHBlYXIgaW4gSUNFYnJvd3Nlciwgd2hpY2ggbWFrZXMgYSBtZXNzIHdoZW4gaXQgdHJpZXMgdG8KY2hhbmdlIHRvIGFuIGFsdGVybmF0ZSBzdHlsZXNoZWV0LiBJZiB5b3Ugd2FudCwgeW91IGNhbiB1c2UKCWlmKCAoIGRvY3VtZW50LnN0eWxlU2hlZXRzIHx8ICggd2luZG93Lm9wZXJhICYmIGRvY3VtZW50LmNoaWxkTm9kZXMgKSB8fCAoIHdpbmRvdy5TY3JpcHRFbmdpbmUgJiYgU2NyaXB0RW5naW5lKCkuaW5kZXhPZignSW5TY3JpcHQnKSArIDEgJiYgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCApICkgJiYgIW5hdmlnYXRvci5fX2ljZV92ZXJzaW9uICkgewpidXQgeW91IHNob3VsZCB0aGVuIHVwZGF0ZSB0aGF0IGlmIElDRSBpcyB1cGRhdGVkIHRvIG1ha2UgaXQgd29yayBwcm9wZXJseS4KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fKi8KCmZ1bmN0aW9uIGdldEFsbFNoZWV0cygpIHsKCWlmKCAhd2luZG93LlNjcmlwdEVuZ2luZSAmJiBuYXZpZ2F0b3IuX19pY2VfdmVyc2lvbiApIHsgcmV0dXJuIGRvY3VtZW50LnN0eWxlU2hlZXRzOyB9CglpZiggZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUgKSB7IHZhciBMdCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdsaW5rJyksIFN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3N0eWxlJyk7Cgl9IGVsc2UgaWYoIGRvY3VtZW50LnN0eWxlU2hlZXRzICYmIGRvY3VtZW50LmFsbCApIHsgdmFyIEx0ID0gZG9jdW1lbnQuYWxsLnRhZ3MoJ0xJTksnKSwgU3QgPSBkb2N1bWVudC5hbGwudGFncygnU1RZTEUnKTsKCX0gZWxzZSB7IHJldHVybiBbXTsgfSBmb3IoIHZhciB4ID0gMCwgb3MgPSBbXTsgTHRbeF07IHgrKyApIHsKCQl2YXIgcmVsID0gTHRbeF0ucmVsID8gTHRbeF0ucmVsIDogTHRbeF0uZ2V0QXR0cmlidXRlID8gTHRbeF0uZ2V0QXR0cmlidXRlKCdyZWwnKSA6ICcnOwoJCWlmKCB0eXBlb2YoIHJlbCApID09ICdzdHJpbmcnICYmIHJlbC50b0xvd2VyQ2FzZSgpLmluZGV4T2YoJ3N0eWxlJykgKyAxICkgeyBvc1tvcy5sZW5ndGhdID0gTHRbeF07IH0KCX0gZm9yKCB2YXIgeCA9IDA7IFN0W3hdOyB4KysgKSB7IG9zW29zLmxlbmd0aF0gPSBTdFt4XTsgfSByZXR1cm4gb3M7Cn0KZnVuY3Rpb24gY2hhbmdlU3R5bGUoKSB7Cgl3aW5kb3cudXNlckhhc0Nob3NlbiA9IHdpbmRvdy5NV0pzczsKCWZvciggdmFyIHggPSAwLCBzcyA9IGdldEFsbFNoZWV0cygpOyBzc1t4XTsgeCsrICkgewoJCWlmKCBzc1t4XS50aXRsZSApIHsgc3NbeF0uZGlzYWJsZWQgPSB0cnVlOyB9CgkJZm9yKCB2YXIgeSA9IDA7IHkgPCBhcmd1bWVudHMubGVuZ3RoOyB5KysgKSB7IGlmKCBzc1t4XS50aXRsZSA9PSBhcmd1bWVudHNbeV0gKSB7IHNzW3hdLmRpc2FibGVkID0gZmFsc2U7IH0gfQp9IH0KZnVuY3Rpb24gcmVtZW1iZXJTdHlsZSggY29va2llTmFtZSwgY29va2llTGlmZSApIHsKCWZvciggdmFyIHZpZXdVc2VkID0gZmFsc2UsIHNzID0gZ2V0QWxsU2hlZXRzKCksIHggPSAwOyB3aW5kb3cuTVdKc3MgJiYgTVdKc3NbeF0gJiYgc3NbeF07IHgrKyApIHsgaWYoIHNzW3hdLmRpc2FibGVkICE9IE1XSnNzW3hdICkgeyB2aWV3VXNlZCA9IHRydWU7IGJyZWFrOyB9IH0KCWlmKCAhd2luZG93LnVzZXJIYXNDaG9zZW4gJiYgIXZpZXdVc2VkICkgeyByZXR1cm47IH0KCWZvciggdmFyIHggPSAwLCBvdXRMaW5lID0gJycsIGRvbmVZZXQgPSBbXTsgc3NbeF07IHgrKyApIHsKCQlpZiggc3NbeF0udGl0bGUgJiYgc3NbeF0uZGlzYWJsZWQgPT0gZmFsc2UgJiYgIWRvbmVZZXRbc3NbeF0udGl0bGVdICkgeyBkb25lWWV0W3NzW3hdLnRpdGxlXSA9IHRydWU7IG91dExpbmUgKz0gKCBvdXRMaW5lID8gJyBNV0ogJyA6ICcnICkgKyBlc2NhcGUoIHNzW3hdLnRpdGxlICk7IH0gfQoJaWYoIHNzLmxlbmd0aCApIHsgZG9jdW1lbnQuY29va2llID0gZXNjYXBlKCBjb29raWVOYW1lICkgKyAnPScgKyBlc2NhcGUoIG91dExpbmUgKSArICggY29va2llTGlmZSA/ICc7ZXhwaXJlcz0nICsgbmV3IERhdGUoICggbmV3IERhdGUoKSApLmdldFRpbWUoKSArICggY29va2llTGlmZSAqIDg2NDAwMDAwICkgKS50b0dNVFN0cmluZygpIDogJycgKSArICc7cGF0aD0vJzsgfQp9CmZ1bmN0aW9uIHVzZVN0eWxlQWdhaW4oIGNvb2tpZU5hbWUgKSB7Cglmb3IoIHZhciB4ID0gMDsgeCA8IGRvY3VtZW50LmNvb2tpZS5zcGxpdCggIjsgIiApLmxlbmd0aDsgeCsrICkgewoJCXZhciBvbmVDb29raWUgPSBkb2N1bWVudC5jb29raWUuc3BsaXQoICI7ICIgKVt4XS5zcGxpdCggIj0iICk7CgkJaWYoIG9uZUNvb2tpZVswXSA9PSBlc2NhcGUoIGNvb2tpZU5hbWUgKSApIHsKCQkJdmFyIHN0eWxlU3RyaW5ncyA9IHVuZXNjYXBlKCBvbmVDb29raWVbMV0gKS5zcGxpdCggIiBNV0ogIiApOwoJCQlmb3IoIHZhciB5ID0gMCwgZnVuY1N0ciA9ICcnOyBzdHlsZVN0cmluZ3NbeV07IHkrKyApIHsgZnVuY1N0ciArPSAoIHkgPyAnLCcgOiAnJyApICsgJ3VuZXNjYXBlKCBzdHlsZVN0cmluZ3NbJyArIHkgKyAnXSApJzsgfQoJCQlldmFsKCAnY2hhbmdlU3R5bGUoJyArIGZ1bmNTdHIgKyAnKTsnICk7IGJyZWFrOwoJfSB9IHdpbmRvdy5NV0pzcyA9IFtdOyBmb3IoIHZhciBzcyA9IGdldEFsbFNoZWV0cygpLCB4ID0gMDsgc3NbeF07IHgrKyApIHsgTVdKc3NbeF0gPSBzc1t4XS5kaXNhYmxlZDsgfQp9]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/admin_Deploymentsettings.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[DQp7JGZvcm1zdGFydH0NCg0KDQo8ZmllbGRzZXQ+DQo8bGVnZW5kPkdlbmVyYWw8L2xlZ2VuZD4NCjxkaXYgc3R5bGU9IndpZHRoOiAzMCU7IG1pbi13aWR0aDoxMTBweDsgaGVpZ2h0OjExMHB4O3BhZGRpbmc6IDEwcHg7IGJvcmRlcjogMXB4IHNvbGlkIHJnYigxNTMsIDE1MywgMTUzKTsgZmxvYXQ6bGVmdDsiPjxoMT57JEdyb290VVJMfTwvaDE+DQogICAgICAgIDxwPnskcm9vdFVSTE9wdGlvbl9pbnB1dH17JHJvb3RVUkxPcHRpb25fbGFiZWx9OjwvcD4NCgkJPHAgaWQ9InJvb3RVUkxPcHRpb24iPnskcm9vdFVSTF9pbnB1dH08L3A+DQogICAgICAgIDxici8+PC9kaXY+DQoNCjxkaXYgc3R5bGU9IndpZHRoOiAzMCU7bWluLXdpZHRoOjExMHB4OyBoZWlnaHQ6MTEwcHg7cGFkZGluZzogMTBweDsgYm9yZGVyOiAxcHggc29saWQgcmdiKDE1MywgMTUzLCAxNTMpOyBmbG9hdDpsZWZ0OyI+PGgxPnNtYXJ0eU9uPC9oMT4NCiAgICAgICAgPHA+eyRzbWFydHlPbl9sYWJlbH06PC9wPg0KCQk8cD57JHNtYXJ0eU9uX2lucHV0fTwvcD4NCiAgICAgICAgPGJyLz48L2Rpdj4NCg0KPC9maWVsZHNldD4NCg0KDQo8ZmllbGRzZXQ+DQo8bGVnZW5kPkNTUzwvbGVnZW5kPg0KPGRpdiBzdHlsZT0id2lkdGg6IDMwJTttaW4td2lkdGg6MTEwcHg7IGhlaWdodDoxMTBweDtwYWRkaW5nOiAxMHB4OyBib3JkZXI6IDFweCBzb2xpZCByZ2IoMTUzLCAxNTMsIDE1Myk7IGZsb2F0OmxlZnQ7Ij48aDE+ZmlsZVRpbWVfY3NzX3VybHM8L2gxPg0KICAgICAgICA8cD57JGZpbGVUaW1lX2Nzc191cmxzX2xhYmVsfTo8L3A+DQoJCTxwPnskZmlsZVRpbWVfY3NzX3VybHNfaW5wdXR9PC9wPg0KICAgICAgICA8YnIvPiAgPC9kaXY+ICAgICAgDQo8ZGl2IHN0eWxlPSJ3aWR0aDogMzAlO21pbi13aWR0aDoxMTBweDsgaGVpZ2h0OjExMHB4O3BhZGRpbmc6IDEwcHg7IGJvcmRlcjogMXB4IHNvbGlkIHJnYigxNTMsIDE1MywgMTUzKTsgZmxvYXQ6bGVmdDsiPjxoMT57JHByZWxvYWRfQ1NTaW1hZ2VUaXRsZX08L2gxPg0KICAgICAgICA8cD57JHByZWxvYWRfQ1NTaW1hZ2VfbGFiZWx9OjwvcD4NCgkJPHA+eyRwcmVsb2FkX0NTU2ltYWdlX2lucHV0fTwvcD4NCiAgICAgICAgPGJyLz4gIDwvZGl2PiAgDQo8L2ZpZWxkc2V0Pg0KDQo8ZmllbGRzZXQ+DQo8bGVnZW5kPkhUTUw8L2xlZ2VuZD4NCg0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgk8cCBjbGFzcz0icGFnZXRleHQiPnskbWFuZ2xldHlwZXRleHR9OjwvcD4NCgk8cCBjbGFzcz0icGFnZWlucHV0Ij57JG1hbmdsZXR5cGV9PC9wPg0KPC9kaXY+DQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRoaWRlbWVzc2FnZXN0ZXh0fTo8L3A+DQoJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRoaWRlbWVzc2FnZXNpbnB1dH08L3A+DQo8L2Rpdj4NCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGRlYnVndGV4dH06PC9wPg0KCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskZGVidWdpbnB1dH0geyRkZWJ1Z2xldmVsdGV4dH0geyRkZWJ1Z2xldmVsaW5wdXR9PC9wPg0KPC9kaXY+DQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRpbmRlbnR3aWR0aHRleHR9OjwvcD4NCgk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGluZGVudHdpZHRoaW5wdXR9IHskc3BhY2VzfTwvcD4NCjwvZGl2Pg0KDQoNCg0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgk8cCBjbGFzcz0icGFnZXRleHQiPnskZm9yY2Vsb3dlcnRhZ3N0ZXh0fTo8L3A+DQoJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRmb3JjZWxvd2VydGFnc2lucHV0fSB7JGZvcmNlbG93ZXJ0YWdzaGVscH08L3A+DQo8L2Rpdj4NCjwvZmllbGRzZXQ+DQoNCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJPHAgY2xhc3M9InBhZ2V0ZXh0Ij48L3A+DQoJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRzdWJtaXR9PC9wPg0KPC9kaXY+DQp7JGZvcm1lbmR9]]></data>
	</file>
	<file>
	  <filename>/templates/admin_email.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kX3ByZWZzX3RpdGxlfTwvaDM+DQoNCntpZiAkbWVzc2FnZSE9Jyd9PHA+eyRtZXNzYWdlfTwvcD57L2lmfQ0KeyRmb3JtX3N0YXJ0fQ0KDQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGFsbG93X2d1ZXN0X2xhYmVsfTo8L3A+DQoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskYWxsb3dfZ3Vlc3RfaW5wdXR9PC9wPg0KCTwvZGl2Pg0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRncm91cF9sYWJlbH06PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGdyb3VwX2lucHV0fTwvcD4NCgk8L2Rpdj4NCgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskd3lzaXd5Z19sYWJlbH06PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JHd5c2l3eWdfaW5wdXR9PC9wPg0KCTwvZGl2Pg0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJCTxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGZvcm1fc3VibWl0fTwvcD4NCgk8L2Rpdj4NCnskZm9ybV9lbmR9DQo=]]></data>
	</file>
	<file>
	  <filename>/templates/admin_importExport.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGZpZWxkc2V0IHN0eWxlPSJ3aWR0aDoyNTBweDsgZmxvYXQ6bGVmdDsiPjxsZWdlbmQ+PGZvbnQgc2l6ZT0iKzMiPkltcG9ydDwvZm9udD4gPGZvbnQgc2l6ZT0iLTEiIGNvbG9yPSIjOTkwMDAwIj5Db21pbmcgc29vbjwvZm9udD48L2xlZ2VuZD4NCnskZm9ybXN0YXJ0SW1wb3J0fQ0KIHsqICAgPGRpdj4NCiAgICAgICAgPHA+eyRUdXJuT05WYWxfbGFibGV9OiB7JFR1cm5PTlZhbF9pbnB1dH08L3A+DQogICAgPC9kaXY+DQogICAgPGRpdj4NCiAgICAgICAgPHA+eyRob3RMaW5rQ2hlY2tfbGFibGV9OiB7JGhvdExpbmtDaGVja19pbnB1dH08L3A+DQogICAgPC9kaXY+DQogICAgPGRpdj4NCiAgICAgICAgPHA+eyRTaG93VmFsX2xhYmxlfTogeyRTaG93VmFsX2lucHV0fTwvcD4NCiAgICA8L2Rpdj4NCiAgICA8ZGl2Pg0KICAgICAgICA8cD57JENTU3Byb2ZpbGVfbGFibGV9OiB7JENTU3Byb2ZpbGVfaW5wdXR9PC9wPg0KICAgIDwvZGl2Pg0KICAgIDxkaXY+DQogICAgICAgIDxwPnskdXNlcm1lZGl1bV9sYWJsZX06IHskdXNlcm1lZGl1bV9pbnB1dH08L3A+DQogICAgPC9kaXY+DQogICAgPGRpdj4NCiAgICAgICAgPHA+eyRWQUxMYW5nX2xhYmxlfTogeyRWQUxMYW5nX2lucHV0fTwvcD4NCiAgICA8L2Rpdj4NCiAgICA8ZGl2Pg0KICAgICAgICA8cD57JHczY0NTU3dhcm5pbmdfbGFibGV9OiB7JHczY0NTU3dhcm5pbmdfaW5wdXR9PC9wPg0KICAgIDwvZGl2Pg0KICAgIDxkaXY+DQogICAgICAgIDxwPnskZmlsdGVyUHJvcF9sYWJsZX06PC9wPg0KICAgICAgICA8cD57JGZpbHRlclByb3BfaW5wdXR9PC9wPg0KICAgIDwvZGl2Pip9DQoNCg0KICAgIDxkaXY+DQogICAgICAgIDxwPjwvcD4NCiAgICAgICAgPHA+eyRzdWJtaXRJbXBvcnR9PC9wPg0KICAgIDwvZGl2Pg0KeyRmb3JtZW5kfQ0KPC9maWVsZHNldD4NCg0KDQoNCjxmaWVsZHNldCBzdHlsZT0id2lkdGg6MjUwcHg7IGZsb2F0OmxlZnQ7Ij48bGVnZW5kPjxmb250IHNpemU9IiszIj5FeHBvcnQ8L2ZvbnQ+IDxmb250IHNpemU9Ii0xIiBjb2xvcj0iIzk5MDAwMCI+Q29taW5nIHNvb248L2ZvbnQ+PC9sZWdlbmQ+DQp7JGZvcm1zdGFydEV4cG9ydH0NCiB7KiAgIDxkaXY+DQogICAgICAgIDxwPnskVHVybk9OVmFsX2xhYmxlfTogeyRUdXJuT05WYWxIVE1MX2lucHV0fTwvcD4NCiAgICA8L2Rpdj4NCiAgICA8ZGl2Pg0KICAgICAgICA8cD57JGRvY1R5cGVfbGFibGV9OjwvcD4NCiAgICAgICAgPHA+eyRkb2NUeXBlX2lucHV0fTwvcD4NCiAgICA8L2Rpdj4NCiAgICAgPGRpdj4NCiAgICAgICAgPHA+eyRlbmNvZGluZ19sYWJsZX06PC9wPg0KICAgICAgICA8cD57JGVuY29kaW5nX2lucHV0fTwvcD4NCiAgICA8L2Rpdj4gICANCiAgICA8ZGl2Pg0KICAgICAgICA8cD57JFZBTExhbmdfbGFibGV9OjwvcD4NCiAgICAgICAgPHA+eyRWQUxMYW5nX2lucHV0fTwvcD4NCiAgICA8L2Rpdj4NCiAgICA8ZGl2Pg0KICAgICAgICA8cD57JFZhbEhUTUxWZXJib3NlX2xhYmxlfTogeyRWYWxIVE1MVmVyYm9zZV9pbnB1dH08L3A+DQogICAgPC9kaXY+DQogICAgPGRpdj4NCiAgICAgICAgPHA+eyRkZWZhdWx0UGFnZV9sYWJsZX06PC9wPg0KICAgICAgICA8cD57JGRlZmF1bHRQYWdlX2lucHV0fTwvcD4NCiAgICA8L2Rpdj4NCip9DQoNCg0KICAgIDxkaXY+DQogICAgICAgIDxwPjwvcD4NCiAgICAgICAgPHA+eyRzdWJtaXRFeHBvcnR9PC9wPg0KICAgIDwvZGl2Pg0KeyRmb3JtZW5kfQ0KPC9maWVsZHNldD4NCg0KPGRpdiBzdHlsZT0iY2xlYXI6Ym90aDsiPjwvZGl2Pg==]]></data>
	</file>
	<file>
	  <filename>/templates/admin_options.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[DQo8aDM+eyRtb2RfcHJlZnNfdGl0bGV9PC9oMz4NCjxoci8+DQoNCntpZiAkbWVzc2FnZSE9Jyd9PHA+eyRtZXNzYWdlfTwvcD57L2lmfQ0KeyRmb3JtX3N0YXJ0fQ0KDQoNCjxkaXYgc3R5bGU9IndpZHRoOiAzMCU7bWluLXdpZHRoOjExMHB4OyBoZWlnaHQ6MTEwcHg7cGFkZGluZzogMTBweDsgYm9yZGVyOiAxcHggc29saWQgcmdiKDE1MywgMTUzLCAxNTMpOyBmbG9hdDpsZWZ0OyI+PGgxPnskcmV2aXNpb25UaXRsZX08L2gxPg0KICAgICAgICA8cD57JHJldmlzaW9uX2xhYmVsfTo8L3A+DQoJCTxwPnskcmV2aXNpb25faW5wdXR9PC9wPg0KICAgICAgICA8cD57JHJldmlzaW9uX0xJTUlUX2xhYmVsfTp7JHJldmlzaW9uX0xJTUlUX2lucHV0fTwvcD4gICAgICAgIA0KICAgICAgICA8YnIvPjwvZGl2Pg0KICANCiAgICAgICAgDQo8ZGl2IHN0eWxlPSJ3aWR0aDogMzAlO21pbi13aWR0aDoxMTBweDtoZWlnaHQ6MTEwcHg7IHBhZGRpbmc6IDEwcHg7IGJvcmRlcjogMXB4IHNvbGlkIHJnYigxNTMsIDE1MywgMTUzKTsgZmxvYXQ6bGVmdDsiPjxoMT57JGRlYnVnVH08L2gxPg0KCTxkaXY+DQogICAgICAgIDxwPnskZGVidWdJVF9sYWJlbH06PC9wPg0KICAgICAgICA8cD57JGRlYnVnSVRfaW5wdXR9PC9wPjxici8+PGJyLz4NCgk8L2Rpdj48L2Rpdj4NCgk8ZGl2IHN0eWxlPSJjbGVhcjpsZWZ0OyI+DQoJCTxwPnskZm9ybV9zdWJtaXR9PC9wPg0KCTwvZGl2Pg0KPGhyLz4NCjxkaXYgIHN0eWxlPSIgdGV4dC1hbGlnbjpjZW50ZXI7IGNsZWFyOmxlZnQ7Ij48ZGl2IHN0eWxlPSJmbG9hdDpyaWdodDsiPnskQ2xlYXJfaW5wdXR9PC9kaXY+PGgxICBzdHlsZT0iZmxvYXQ6bGVmdDsiPkNhY2hlIEluZm88L2gxPnskY2xlYXJlZF9sYWJlbH08L2Rpdj4NCg0KeyRjYWNoZUluZm99DQogICAgIAkNCnskZm9ybV9lbmR9DQo=]]></data>
	</file>
	<file>
	  <filename>/templates/admin_Valsettings.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGZpZWxkc2V0IHN0eWxlPSJ3aWR0aDoyNTBweDsgZmxvYXQ6bGVmdDsiPjxsZWdlbmQ+PGZvbnQgc2l6ZT0iKzMiPkNTUzwvZm9udD48L2xlZ2VuZD4NCnskZm9ybXN0YXJ0fQ0KICAgIDxkaXY+DQogICAgICAgIDxwPnskVHVybk9OVmFsX2xhYmxlfTogeyRUdXJuT05WYWxfaW5wdXR9PC9wPg0KICAgIDwvZGl2Pg0KICAgIDxkaXY+DQogICAgICAgIDxwPnskaG90TGlua0NoZWNrX2xhYmxlfTogeyRob3RMaW5rQ2hlY2tfaW5wdXR9PC9wPg0KICAgIDwvZGl2Pg0KICAgIDxkaXY+DQogICAgICAgIDxwPnskU2hvd1ZhbF9sYWJsZX06IHskU2hvd1ZhbF9pbnB1dH08L3A+DQogICAgPC9kaXY+DQogICAgPGRpdj4NCiAgICAgICAgPHA+eyRDU1Nwcm9maWxlX2xhYmxlfTogeyRDU1Nwcm9maWxlX2lucHV0fTwvcD4NCiAgICA8L2Rpdj4NCiAgICA8ZGl2Pg0KICAgICAgICA8cD57JHVzZXJtZWRpdW1fbGFibGV9OiB7JHVzZXJtZWRpdW1faW5wdXR9PC9wPg0KICAgIDwvZGl2Pg0KICAgIDxkaXY+DQogICAgICAgIDxwPnskVkFMTGFuZ19sYWJsZX06IHskVkFMTGFuZ19pbnB1dH08L3A+DQogICAgPC9kaXY+DQogICAgPGRpdj4NCiAgICAgICAgPHA+eyR3M2NDU1N3YXJuaW5nX2xhYmxlfTogeyR3M2NDU1N3YXJuaW5nX2lucHV0fTwvcD4NCiAgICA8L2Rpdj4NCiAgICA8ZGl2Pg0KICAgICAgICA8cD57JGZpbHRlclByb3BfbGFibGV9OjwvcD4NCiAgICAgICAgPHA+eyRmaWx0ZXJQcm9wX2lucHV0fTwvcD4NCiAgICA8L2Rpdj4NCg0KDQogICAgPGRpdj4NCiAgICAgICAgPHA+PC9wPg0KICAgICAgICA8cD57JHN1Ym1pdH08L3A+DQogICAgPC9kaXY+DQp7JGZvcm1lbmR9DQo8L2ZpZWxkc2V0Pg0KDQoNCg0KPGZpZWxkc2V0IHN0eWxlPSJ3aWR0aDoyNTBweDsgZmxvYXQ6bGVmdDsiPjxsZWdlbmQ+PGZvbnQgc2l6ZT0iKzMiPkhUTUw8L2ZvbnQ+IDxmb250IHNpemU9Ii0xIiBjb2xvcj0iIzk5MDAwMCI+Q29taW5nIHNvb248L2ZvbnQ+PC9sZWdlbmQ+DQp7JGZvcm1zdGFydEhUTUx9DQogICAgPGRpdj4NCiAgICAgICAgPHA+eyRUdXJuT05WYWxfbGFibGV9OiB7JFR1cm5PTlZhbEhUTUxfaW5wdXR9PC9wPg0KICAgIDwvZGl2Pg0KICAgIDxkaXY+DQogICAgICAgIDxwPnskZG9jVHlwZV9sYWJsZX06PC9wPg0KICAgICAgICA8cD57JGRvY1R5cGVfaW5wdXR9PC9wPg0KICAgIDwvZGl2Pg0KICAgICA8ZGl2Pg0KICAgICAgICA8cD57JGVuY29kaW5nX2xhYmxlfTo8L3A+DQogICAgICAgIDxwPnskZW5jb2RpbmdfaW5wdXR9PC9wPg0KICAgIDwvZGl2PiAgIA0KICAgIDxkaXY+DQogICAgICAgIDxwPnskVkFMTGFuZ19sYWJsZX06PC9wPg0KICAgICAgICA8cD57JFZBTExhbmdfaW5wdXR9PC9wPg0KICAgIDwvZGl2Pg0KICAgIDxkaXY+DQogICAgICAgIDxwPnskVmFsSFRNTFZlcmJvc2VfbGFibGV9OiB7JFZhbEhUTUxWZXJib3NlX2lucHV0fTwvcD4NCiAgICA8L2Rpdj4NCiAgICA8ZGl2Pg0KICAgICAgICA8cD57JGRlZmF1bHRQYWdlX2xhYmxlfTo8L3A+DQogICAgICAgIDxwPnskZGVmYXVsdFBhZ2VfaW5wdXR9PC9wPg0KICAgIDwvZGl2Pg0KDQoNCg0KICAgIDxkaXY+DQogICAgICAgIDxwPjwvcD4NCiAgICAgICAgPHA+eyRzdWJtaXRIVE1MfTwvcD4NCiAgICA8L2Rpdj4NCnskZm9ybWVuZH0NCjwvZmllbGRzZXQ+DQoNCjxkaXYgc3R5bGU9ImNsZWFyOmJvdGg7Ij48L2Rpdj4=]]></data>
	</file>
	<file>
	  <filename>/templates/admin_view_logs.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[DQo8YSBocmVmPSJqYXZhc2NyaXB0OiBoaXN0b3J5LmdvKC0xKSIgaWQ9IkV4aXQiPkV4aXQ8L2E+IDwvcD4NCnskY2FjaGVJbmZvfQ0KPGEgaHJlZj0iamF2YXNjcmlwdDogaGlzdG9yeS5nbygtMSkiIGlkPSJFeGl0Ij5FeGl0PC9hPiA8L3A+DQo=]]></data>
	</file>
	<file>
	  <filename>/templates/associations.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGZvbnQgc2l6ZT0iLTEiIGNvbG9yPSIjOTkwMDAwIj5Db21pbmcgc29vbjwvZm9udD4NCg0KDQo8dGFibGUgY2VsbHNwYWNpbmc9IjAiIGNsYXNzPSJwYWdldGFibGUiPg0KICA8dGhlYWQ+DQogICAgIDx0aD57JGlkdGV4dH08L3RoPg0KICAgICA8dGg+eyRuYW1ldGV4dH08L3RoPg0KICAgICA8dGggY2xhc3M9InBhZ2VpY29uIj57JGFjdGl2ZXRleHR9Jm5ic3A7PC90aD4NCiAgICAgPHRoIGNsYXNzPSJwYWdlaWNvbiI+eyRkZWZhdWx0dGV4dH0mbmJzcDs8L3RoPg0KICAgICA8dGggY2xhc3M9InBhZ2VpY29uIj57JHZhbGlkdGV4dH08L3RoPg0KICAgICA8dGggY2xhc3M9InBhZ2VpY29uIj4mbmJzcDt7JHVzZWR0ZXh0fTwvdGg+DQogICAgIDx0aCBjbGFzcz0icGFnZWljb24iPiZuYnNwOyZuYnNwOzwvdGg+DQogICAgIDx0aCBjbGFzcz0icGFnZWljb24iPiZuYnNwOyZuYnNwOzwvdGg+DQogICAgIDx0aCBjbGFzcz0icGFnZWljb24iPiZuYnNwOyZuYnNwOzwvdGg+DQogICAgIDx0aCBjbGFzcz0icGFnZWljb24iPiZuYnNwOyZuYnNwOzwvdGg+DQogIDwvdGhlYWQ+DQogIDx0Ym9keT4NCiAgICB7Zm9yZWFjaCBmcm9tPSR0ZW1wbGF0ZXMgaXRlbT0nZW50cnknfQ0KICAgICAgPHRyIGNsYXNzPSJ7JGVudHJ5LT5yb3djbGFzc30iIG9ubW91c2VvdmVyPSJ0aGlzLmNsYXNzTmFtZT0neyRlbnRyeS0+cm93Y2xhc3N9aG92ZXInOyIgb25tb3VzZW91dD0idGhpcy5jbGFzc05hbWU9J3skZW50cnktPnJvd2NsYXNzfSc7Ij4NCgk8dGQ+eyRlbnRyeS0+aWR9PC90ZD4NCgk8dGQ+eyRlbnRyeS0+bmFtZX08L3RkPg0KCTx0ZD57JGVudHJ5LT5hY3RpdmVfZmxhZ308L3RkPg0KCTx0ZD57JGVudHJ5LT5kZWZhdWx0X2ZsYWd9PC90ZD4NCiAgICAgICAgPHRkPnskZW50cnktPnZhbGlkX2ZsYWd9PC90ZD4NCiAgICAgICAgPHRkIGFsaWduPSJjZW50ZXIiPnskZW50cnktPnVzZWRfY291bnR9PC90ZD4NCiAgICAgICAgPHRkPnskZW50cnktPmVkaXRjc3NfbGlua308L3RkPg0KICAgICAgICA8dGQ+eyRlbnRyeS0+Y29weV9saW5rfTwvdGQ+DQogICAgICAgIDx0ZD57JGVudHJ5LT5lZGl0X2xpbmt9PC90ZD4NCiAgICAgICAgPHRkPnskZW50cnktPmRlbGV0ZV9saW5rfTwvdGQ+DQogICAgICA8L3RyPg0KICAgIHsvZm9yZWFjaH0NCiAgPC90ZG9keT4NCjwvdGFibGU+DQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICAgIDxzcGFuIHN0eWxlPSJmbG9hdDogbGVmdDsiPnskYWRkX2xpbmt9PC9zcGFuPg0KPC9kaXY+DQoNCg==]]></data>
	</file>
	<file>
	  <filename>/templates/editAssignment.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2xpdGVyYWx9DQoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg0KLy92YXIgb3V0PTA7DQovL2lmKG91dD09MCl7DQovLwlhbGVydE91dCgpOw0KLy99DQovL2Z1bmN0aW9uIGFsZXJ0T3V0KCl7DQovLwkkKCd1bC5kcm9wZmFsc2UnKS5iaW5kKCdzb3J0b3V0JywgZnVuY3Rpb24oZXZlbnQsIHVpKSB7DQovLwkJDQovLwl9KTsNCi8vCW91dD0xOw0KLy99DQovLw0KLy8kKGZ1bmN0aW9uKCkgew0KLy8JJCgidWwuZHJvcHRydWUiKS5zb3J0YWJsZSh7DQovLwkJY29ubmVjdFdpdGg6ICd1bCcNCi8vCX0pOw0KLy8NCi8vCSQoInVsLmRyb3BmYWxzZSIpLnNvcnRhYmxlKHsNCi8vCQljb25uZWN0V2l0aDogJ3VsJywNCi8vCQlkcm9wT25FbXB0eTogdHJ1ZQ0KLy8JfSk7DQovLw0KLy8JJCgiI3NvcnRhYmxlMSwgI3NvcnRhYmxlMiwgI3NvcnRhYmxlMyIpLmRpc2FibGVTZWxlY3Rpb24oKTsNCi8vDQovLw0KLy8kKCd1bC5kcm9wZmFsc2UnKS5iaW5kKCdzb3J0YmVmb3JlU3RvcCcsIGZ1bmN0aW9uKGV2ZW50LCB1aSkgew0KLy8gIGFsZXJ0ICgnQWRkaW5nIGEgc2NyaXB0Jyk7DQovL30pOw0KLy8NCi8vJCgndWwuZHJvcHRydWUnKS5iaW5kKCdzb3J0YmVmb3JlU3RvcCcsIGZ1bmN0aW9uKGV2ZW50LCB1aSkgew0KLy8gIGFsZXJ0ICgnUmVtb3ZpbmcgYSBzY3JpcHQnKTsNCi8vfSk7DQovLw0KLy99KTsNCgkNCg0KCQ0KCTwvc2NyaXB0Pg0KDQp7L2xpdGVyYWx9DQoNCg0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCjxoMz57KiR0aXRsZSp9PC9oMz4NCjwvZGl2Pg0KeyRmb3Jtc3RhcnR9eyokaGlkZGVuKn17JGhpZGRlbk1vZGV9DQoge2lmICgkU2NyaXB0UGlja2VyIT0nJyl9PGgxIGNsYXNzPSJpbmlTaXplIiBzdHlsZT0iZmxvYXQ6cmlnaHQ7Ij57JGNhbmNlbH08L2gxPnsvaWZ9DQo8ZGl2Pg0KPGRpdiBzdHlsZT0iZmxvYXQ6bGVmdDsiPiANCntpZiAoJFNjcmlwdFBpY2tlcj09JycpfTxzcGFuIHN0eWxlPSJmbG9hdDpyaWdodDsiPnskU2F2ZX08L3NwYW4+ey9pZn0NCjxoMj57JEdyb3VwdFNldF9sYWJlbH08L2gyPg0KIHskR3JvdXB0U2V0fQ0KICA8YnIvPjxici8+IA0KICAgPGgyPnskR3JvdXB0VHlwZV9sYWJlbH08L2gyPg0KICB7JEdyb3VwdFR5cGV9DQogIA0KICA8L2Rpdj4NCiAgDQoge2lmICgkU2NyaXB0UGlja2VyIT0nJyl9IDxkaXYgc3R5bGU9ImZsb2F0OmxlZnQ7IHBhZGRpbmctbGVmdDoyMHB4OyI+DQogDQogDQogPGgxPnskU2NyaXB0UGlja2VyX2xhYmVsfTwvaDE+DQogIDxkaXYgY2xhc3M9IkFzc1BvdExpc3QiPg0KPGRpdiBjbGFzcz0iQXNzUG90TGlzdENPTiI+DQoNCnsqZm9yZWFjaCBmcm9tPSRTY3JpcHRQaWNrZXIgaXRlbT1lbnRyeX0NCiAgIHskZW50cnktPlNjcmlwdG5hbWV9PGxhYmVsPnskZW50cnktPlNjcmlwdG5hbWVMYWJsZX08L2xhYmVsPjxici8+DQp7L2ZvcmVhY2gqfQ0KDQo8dWwgaWQ9InNvcnRhYmxlMSIgY2xhc3M9J3sqZHJvcGZhbHNlKn0gY29ubmVjdGVkU29ydGFibGUgdWktc29ydGFibGUnPg0KCXtmb3JlYWNoIGZyb209JFNjcmlwdFBpY2tlciBpdGVtPWVudHJ5IG5hbWU9U2l0fQ0KCQl7aWYgISRhbGxTY3JpcHRzVXNlZH08bGkgY2xhc3M9InVpLXN0YXRlLWRlZmF1bHQgdGFyX3skZW50cnktPlNjcmlwdGlkfSBTY3JpcHRwb29sIj48aW1nIHNyYz0nLi4vbW9kdWxlcy9TY3JpcHREZXBsb3kvaW1hZ2VzL21hcmtlci5wbmcnIGFsdD0nZHJhZyB0byByZW9yZGVyJyBjbGFzcz0naGFuZGxlJyAvPnskZW50cnktPlNjcmlwdG5hbWV9PGxhYmVsPnskZW50cnktPlNjcmlwdG5hbWVMYWJsZX08L2xhYmVsPjxici8+PC9saT57L2lmfSAgDQogICAgey9mb3JlYWNofQ0KICAgIDxsaSBpZD0ncG9vbEVtcHR5JyBjbGFzcz0ndWktc3RhdGUtZGlzYWJsZWQge2lmICEkYWxsU2NyaXB0c1VzZWR9aGlkZGVuey9pZn0nPnskU2NyaXB0bmFtZU1lc3N9PC9saT4NCiAJe2ZvcmVhY2ggZnJvbT0kU2NyaXB0UGlja2VyaGlkZGVuIGl0ZW09ZW50cnl9DQoJCTxsaSBjbGFzcz0ndWktc3RhdGUtZGVmYXVsdCBoaWRkZW4gdGFyX3skZW50cnktPlNjcmlwdGlkfSBTY3JpcHRwb29sJz48aW1nIHNyYz0nLi4vbW9kdWxlcy9TY3JpcHREZXBsb3kvaW1hZ2VzL21hcmtlci5wbmcnIGFsdD0nZHJhZyB0byByZW9yZGVyJyBjbGFzcz0naGFuZGxlJyAvPnskZW50cnktPlNjcmlwdG5hbWV9PGxhYmVsPnskZW50cnktPlNjcmlwdG5hbWVMYWJsZX08L2xhYmVsPjxici8+PC9saT4NCiAgICB7L2ZvcmVhY2h9ICAgDQogICAgDQogICAgDQogICAgDQo8L3VsPg0KDQo8L2Rpdj4NCjwvZGl2Pg0KIDxzcGFuIGNsYXNzPSdoaWRkZW4nPiB7JGFkZH08L3NwYW4+DQoNCiAgPC9kaXY+ey9pZn0NCjwvZGl2Pg0KeyRmb3JtZW5kfQ0Ke2lmIGlzc2V0KCRTY3JpcHRMaXN0KX0NCntpZiAoKCRTY3JpcHRMaXN0IT0nJykmJihjb3VudCgkU2NyaXB0TGlzdCkhPTAmJmNvdW50KCRTY3JpcHRMaXN0KSE9bnVsbCkpfTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyIgc3R5bGU9IntpZiAhaXNzZXQoJFNjcmlwdExpc3QpfWRpc3BsYXk6bm9uZTt7L2lmfSI+DQp7JGZvcm1SRU9SREVSc3RhcnR9PGRpdiBjZWxsc3BhY2luZz0iMCIgY2xhc3M9InBhZ2V0YWJsZSIgPg0Keyo8dWwgaWQ9J2hlYWRlcnMnPg0KICAgICAgPGxpIGlkPSJyZU9yMSI+eyROYW1lX2xhYmVsfTwvbGk+DQogICAgICA8bGkgaWQ9InJlT3IyIj57JFNjcmlwdE5hbWVfbGFiZWx9PC9saT4NCiAgICAgIDxsaSBpZD0icmVPcjMiIGNsYXNzPSJwYWdlaWNvbiI+Jm5ic3A7PC9saT4NCiAgICAgIDxsaSBpZD0icmVPcjQiIGNsYXNzPSJwYWdlaWNvbiI+Jm5ic3A7PC9saT4NCiAgICAgIDxsaSBpZD0icmVPcjUiIGNsYXNzPSJwYWdlaWNvbiI+Jm5ic3A7PC9saT4NCjwvdWw+Kn0NCg0KIDxoMT57JGdyb3VweVRpdGxlfSA8L2gxPg0KPHVsIGNsYXNzPSJ1aS1zb3J0YWJsZSBjb25uZWN0ZWRTb3J0YWJsZSI+DQogICAge2ZvcmVhY2ggZnJvbT0kU2NyaXB0TGlzdCBpdGVtPWVudHJ5fQ0KICAgICAgIDxsaSBjbGFzcz0ieyRlbnRyeS0+cm93Y2xhc3N9IHskZW50cnktPmVkaXRNb2RlfSB0YXJfeyRlbnRyeS0+U2NyaXB0aWR9IFNjcmlwdExpc3QiPg0KICAgICAgICAJPHNwYW4gY2xhc3M9J3JlT3IzJz4NCiAgICAgICAgICAgIAk8aW1nIHNyYz0nLi4vbW9kdWxlcy9TY3JpcHREZXBsb3kvaW1hZ2VzL21hcmtlci5wbmcnIGFsdD0nZHJhZyB0byByZW9yZGVyJyBjbGFzcz0naGFuZGxlJyAvPg0KICAgICAgICAgICAgICAgIHskZW50cnktPlNjcmlwdE9SREVSfQ0KICAgICAgICAgICAgPC9zcGFuPg0KICAgICAgICAgICAgPHNwYW4gY2xhc3M9J3JlT3I0Jz48L3NwYW4+DQogICAgICAgICAgICA8c3BhbiBjbGFzcz0ncmVPcjUnPg0KICAgICAgICAgICAgICAgIHskZW50cnktPmVkaXRsaW5rfQ0KICAgICAgICAgICAgPC9zcGFuPg0KICAgICAgICAgICAgPHNwYW4gY2xhc3M9J3JlT3IxJz4NCiAgICAgICAgICAgIAk8aW1nIHNyYz0nLi4vbW9kdWxlcy9TY3JpcHREZXBsb3kvaW1hZ2VzL21hcmtlci5wbmcnIGFsdD0nZHJhZyB0byByZW9yZGVyJyBjbGFzcz0naGFuZGxlJyAvPg0KICAgICAgICAgICAgPC9zcGFuPg0KICAgICAgICAgICAgPHNwYW4gY2xhc3M9J3JlT3IyJz4NCiAgICAgICAgICAgIAk8c3BhbiBjbGFzcz0nbmFtZSc+DQogICAgICAgICAgICAgICAgCXskZW50cnktPmRlZmF1bHR9DQogICAgICAgICAgICAgICAgICAgIDxzcGFuPg0KICAgICAgICAgICAgICAgICAgICAJKGlkOnskZW50cnktPm5hbWV9KQ0KICAgICAgICAgICAgICAgICAgICA8L3NwYW4+DQogICAgICAgICAgICAgICAgICAgIEANCiAgICAgICAgICAgICAgICA8L3NwYW4+DQogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvdW50U2l6ZSI+DQogICAgICAgICAgICAgICAgCXskZW50cnktPnNjcmlwdFNpemV9DQogICAgICAgICAgICAgICAgPC9zcGFuPg0KICAgICAgICAgICAgPC9zcGFuPg0KICAgICAgICA8L2xpPg0KICAgIHsvZm9yZWFjaH0NCjwvdWw+DQoNCjwvZGl2Pg0KPGgxIHN0eWxlPSJmbG9hdDpyaWdodDsgZGlzcGxheTppbmxpbmU7Ij57JFJFT1JERVJ9PC9oMT4gPGgxIHN0eWxlPSJmbG9hdDpsZWZ0OyBkaXNwbGF5OmlubGluZTsiPnskR3JvdXB0U2l6ZV9sYWJlbH06IDxzcGFuPnskR3JvdXB0U2l6ZX08L3NwYW4+PC9oMT4NCnskZm9ybWVuZH17L2lmfXsvaWZ9DQo8L2Rpdj4NCg0KPGRpdiBzdHlsZT0iY2xlYXI6Ym90aDsiPiA8L2Rpdj4NCg0K]]></data>
	</file>
	<file>
	  <filename>/templates/editAssignments.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCjx0YWJsZSBjZWxsc3BhY2luZz0iMCIgY2xhc3M9InBhZ2V0YWJsZSI+DQogIDx0aGVhZD4NCiAgICA8dHI+DQogICAgPHRoID57JHR5cGVfbGFiZWx9PC90aD4NCiAgICAgIDx0aCA+eyRBc3NfaGVhZGVyfTwvdGg+DQogICAgICA8dGg+eyRTYW1wbGVDb2RlfTwvdGg+DQoNCiAgICAgIDx0aCBjbGFzcz0icGFnZWljb24iPiZuYnNwOzwvdGg+DQogICAgICA8dGggY2xhc3M9InBhZ2VpY29uIj4mbmJzcDs8L3RoPg0KICAgIDwvdHI+DQogIDwvdGhlYWQ+DQogIDx0Ym9keT4NCiAge2lmIGVtcHR5KCRBc3NfaXRlbXMpfTx0cj48dGQgY29sc3Bhbj0iNSI+eyROb19Hcm91cHN9PC90ZD48L3RyPntlbHNlfQ0Ke2ZvcmVhY2ggZnJvbT0kQXNzX2l0ZW1zIGl0ZW09ZW50cnl9DQogICA8dHIgY2xhc3M9InskZW50cnktPnJvd2NsYXNzfSI+DQogIA0KICAgIDx0ZD57JGVudHJ5LT50eXBlSWNvbn08L3RkPg0KDQogICAgIDx0ZD48aDIgc3R5bGU9ImRpc3BsYXk6aW5saW5lOyI+eyRlbnRyeS0+TnVtYmVyT2Z9IGluICA8L2gyPjxoMSBzdHlsZT0iZGlzcGxheTppbmxpbmU7Ij57JGVudHJ5LT5kZWZhdWx0fTwvaDE+PGg0IHN0eWxlPSJkaXNwbGF5OmlubGluZTsiPkB7U2NyaXB0RGVwbG95IGdyb3VwSUQ9JGVudHJ5LT5CdG4gU3R5cGU9JGVudHJ5LT5Hcm91cHRUeXBlIHVybD10cnVlIGZzaXplPXRydWV9PC9oND48aDYgc3R5bGU9ImRpc3BsYXk6aW5saW5lOyI+KG1pbmlmaWVkKTwvaDY+PC90ZD4NCiAgICAgPHRkPnskZW50cnktPlNhbXBsZX08L3RkPg0KICAgICA8dGQ+eyRlbnRyeS0+ZWRpdGxpbmt9PC90ZD4NCiAgICAgPHRkPnskZW50cnktPmRlbGV0ZWxpbmt9PC90ZD4NCiAgIDwvdHI+DQp7L2ZvcmVhY2h9ey9pZn0NCjwvdGJvZHk+DQo8L3RhYmxlPg0KPC9kaXY+DQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICA8cCBjbGFzcz0icGFnZW9wdGlvbnMiPnskbmV3U2NyaXB0QXNzbGlua308L3A+DQo8L2Rpdj4NCg==]]></data>
	</file>
	<file>
	  <filename>/templates/editcssassoc.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmIGlzc2V0KCRlcnJvcil9CiAgPGg0Pjxmb250IGNvbG9yPSJyZWQiPkVycm9yOiB7JGVycm9yfTwvZm9udD48L2g0Pgp7L2lmfQp7JHN0YXJ0Zm9ybX17JGhpZGRlbn0KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb21wdF90ZW1wbGF0ZX06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRsYWJlbF90ZW1wbGF0ZX08L3A+CiAgPC9kaXY+CiAgCiAgPGZpZWxkc2V0PgogICAgPGxlZ2VuZD57JHByb21wdF9wZXJzaXN0ZW50fTwvbGVnZW5kPgogICAge2lmIGlzc2V0KCRwZXJzaXN0ZW50cykgJiYgY291bnQoJHBlcnNpc3RlbnRzKSA+IDB9CiAgICA8dGFibGUgY2VsbHNwYWNpbmc9IjAiIGNsYXNzPSJwYWdldGFibGUiPgogICAgICA8dGhlYWQ+CiAgICAgICAgPHRoPnskbmFtZXRleHR9PC90aD4KIAk8dGggY2xhc3M9InBhZ2VpY29uIj4mbmJzcDs8L3RoPgogCTx0aCBjbGFzcz0icGFnZWljb24iPiZuYnNwOzwvdGg+CiAJPHRoIGNsYXNzPSJwYWdlaWNvbiI+Jm5ic3A7PC90aD4KIAk8dGggY2xhc3M9InBhZ2VpY29uIj4mbmJzcDs8L3RoPgogICAgICA8L3RoZWFkPgogICAgICA8dGJvZHk+IAogICAgICAgIHtmb3JlYWNoIGZyb209JHBlcnNpc3RlbnRzIGl0ZW09J3BlcnNpc3QnfQoJICA8dHIgY2xhc3M9InskcGVyc2lzdC0+cm93Y2xhc3N9IiBvbm1vdXNlb3Zlcj0idGhpcy5jbGFzc05hbWU9J3skcGVyc2lzdC0+cm93Y2xhc3N9aG92ZXInOyIgb25tb3VzZW91dD0idGhpcy5jbGFzc05hbWU9J3skcGVyc2lzdC0+cm93Y2xhc3N9JzsiPgogICAgICAgICAgICA8dGQ+eyRwZXJzaXN0LT5uYW1lfTwvdGQ+CiAgICAgICAgICAgIDx0ZD57JHBlcnNpc3QtPmVkaXRsaW5rfTwvdGQ+CiAgICAgICAgICAgIDx0ZD57JHBlcnNpc3QtPm1vdmV1cGxpbmt9PC90ZD4KICAgICAgICAgICAgPHRkPnskcGVyc2lzdC0+bW92ZWRvd25saW5rfTwvdGQ+CiAgICAgICAgICAgIDx0ZD57JHBlcnNpc3QtPnJlbW92ZWxpbmt9PC90ZD4KICAgICAgICAgIDwvdHI+CiAgICAgICAgey9mb3JlYWNofQogICAgICA8L3Rib2R5PgogICAgPC90YWJsZT4KICAgIHsvaWZ9CgogICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb21wdF9hZGR9PC9wPgogICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2FkZHBlcnNpc3R9eyRidXR0b25fYWRkcGVyc2lzdH08L3A+CiAgICA8L2Rpdj4KICA8L2ZpZWxkc2V0PgoKICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb21wdF9wcmVmZXJyZWR9PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9wcmVmZXJyZWRfc3R5bGVzaGVldH08L3A+CiAgPC9kaXY+CgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskcHJvbXB0X2FsdGVybmF0ZV9zdHlsZXNoZWV0fTwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfYWx0ZXJuYXRlX3N0eWxlc2hlZXR9PC9wPgogIDwvZGl2PgoKICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij4mbmJzcDs8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JHN1Ym1pdH17JGFwcGx5fXskY2FuY2VsfTwvcD4KICA8L2Rpdj4KeyRlbmRmb3JtfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/edit_script.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij57JHNjcmlwdFR5cGVKU30NCjwvZGl2Pg0KeyRmb3Jtc3RhcnR9eyRoaWRkZW59DQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciIHN0eWxlPSJwYWRkaW5nLWxlZnQ6MjBweDsiPg0KIHskc3VibWl0fXskY2FuY2VsfXtpZiAkbW9kZT09J2VkaXQnfXskcmV2ZXJ0fXskYXBwbHl9ey9pZn0NCjwvZGl2Pg0KDQoNCg0KPGRpdiBjbGFzcz0iaGlkZGVuIiA+DQogICAgPGRpdiBzdHlsZT0iIiBpZD0ic2NyaXB0T3B0aW9ucyI+DQogICAgICAgIDxkaXY+DQogICAgICAgICAgPHAgPnskU2NyaXB0TmFtZV9sYWJlbH06PC9wPg0KICAgICAgICAgIDxwIGlkPSJzY3JpcHROYW1lIj57JFNjcmlwdFNldF9pbnB1dH08L3A+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICA8ZGl2Pg0KICAgICAgICAgIDxwID57JHNjcmlwdFR5cGVfbGFiZWx9OjwvcD4NCiAgICAgICAgICA8cCA+eyRzY3JpcHRUeXBlX2lucHV0fTwvcD4NCiAgICAgICAgPC9kaXY+DQogICAgICAge2lmIGlzc2V0KCRNZWRpYVR5cGVfbGFiZWwpfQ0KICAgICAgIDxkaXYgaWQ9Ik1lZGlhVHlwZSIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPg0KICAgICAgICAgIDxwID57JE1lZGlhVHlwZV9sYWJlbH06PC9wPg0KICAgICAgICAgIDxwID57JE1lZGlhVHlwZV9pbnB1dH08L3A+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICB7L2lmfQ0KICAgICAgICA8ZGl2ID4NCiAgICAgICAgICA8cCA+eyRNaW5pZnlfbGFiZWx9OjwvcD4NCiAgICAgICAgICA8cCA+eyRNaW5pZnlfaW5wdXR9PC9wPg0KICAgICAgICA8L2Rpdj4NCiAgICAgICAgPGRpdj4NCiAgICAgICAgICA8cCA+eyRyb290VVJMT3B0aW9uX2lucHV0fXskcm9vdFVSTE9wdGlvbl9sYWJlbH06PC9wPg0KICAgICAgICAgIDxwIGlkPSJyb290VVJMT3B0aW9uIiBzdHlsZT0iZGlzcGxheTpub25lOyI+eyRyb290VVJMX2lucHV0fTwvcD4NCiAgICAgICAgPC9kaXY+DQogICAgICAgIDxkaXY+DQogICAgICAgICAgPHAgPnskVXNlUGF0aE9wdGlvbl9pbnB1dH17JHBhdGhPcHRpb25fbGFiZWx9OjwvcD4NCiAgICAgICAgICA8cCBpZD0icGF0aE9wdGlvbiIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPnskcGF0aE9wdGlvbl9pbnB1dH08L3A+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICA8YSBocmVmPSIjIiBpZD0iY2xvc2Vfb3B0aW9ucyI+Q2xvc2U8L2E+DQoJPC9kaXY+DQogICAgPHRleHRhcmVhIGlkPSJmaWx0ZXJQcm9wIiByb3dzPSIxIiBjb2xzPSIxIj57JGZpbHRlclByb3B9PC90ZXh0YXJlYT4NCjwvZGl2Pg0KDQoNCjxkaXYgc3R5bGU9ImZsb2F0OnJpZ2h0OyB3aWR0aDoxNTBweDsiIGlkPSJzaWRlYmFyIj4NCiAgICA8aDE+VGlwczo8L2gxPg0KICAgIDxkaXYgaWQ9J3RpcGVkJz57JHNtYXJ0eUhvd19sYWJlbH08L2Rpdj4NCiAgICB7aWYgJG5vdGVkIT0nJ308ZGl2IGlkPSJub3RlZCI+PGJyLz48YnIvPg0KICAgIDxoMSBpZD0ic2lkZW5vdGUiPjxzcGFuIGlkPSJhc3RlciI+Kjwvc3Bhbj5Ob3RlOjwvaDE+DQogICAgPHA+eyRub3RlZH08L3A+PC9kaXY+DQogICAgey9pZn0NCjwvZGl2Pg0KPGRpdiBjbGFzcz0iZGlhbG9nIiBzdHlsZT0ibWFyZ2luLXJpZ2h0OjE3MHB4OyI+DQogPGRpdiBjbGFzcz0iaGQiPjxkaXYgY2xhc3M9ImMiPjwvZGl2PjwvZGl2Pg0KIDxkaXYgY2xhc3M9ImJkIj4NCiAgPGRpdiBjbGFzcz0iYyI+DQogICA8ZGl2IGNsYXNzPSJzIj4NCg0KICAgIDwhLS0gY29udGVudCBhcmVhIC0tPg0KICAgIDxkaXYgaWQ9Im5vdGljZWJhciI+DQogICAgICAgICAge2lmICRtb2RlPT0nZWRpdCd9DQogICAgICAgICAgICAgIDxkaXYgaWQ9IlZBbGVkQmxvY2siPg0KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5uZXIiPg0KICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlZBbGVkIj57JFZBbGVkfTwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgIHtpZiAkRV9pbnB1dCE9Jyd9PGEgaHJlZj0iIyIgaWQ9IkVfdHJpZyI+PGltZyBzcmM9Ii4uL21vZHVsZXMvU2NyaXB0RGVwbG95L2ltYWdlcy9jc3MtZXJyb3IucG5nIiBhbHQ9IiIvPjxici8+RXJyb3JzPC9hPnsvaWZ9DQogICAgICAgICAgICAgICAgICAgICAge2lmICRXX2lucHV0IT0nJ308YSBocmVmPSIjIiBpZD0iV190cmlnIj48aW1nIHNyYz0iLi4vbW9kdWxlcy9TY3JpcHREZXBsb3kvaW1hZ2VzL2Nzcy13YXJuLnBuZyIgYWx0PSIiLz48YnIvPldhcm5pbmdzPC9hPnsvaWZ9DQogICAgICAgICAgICAgICAgIAkJPGRpdiBjbGFzcz0iaGlkZGVuIiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7IHRvcDotOTk5OWVtOyBsZWZ0Oi05OTk5ZW07Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICB7JHJlcG9ydH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aWYgJG1vZGU9PSdlZGl0J30NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2lmICRFX2lucHV0IT0nJ308ZGl2IGNsYXNzPSJoaWRkZW4iID48ZGl2IGlkPSJFcnJvckFyZWEiPnskRV9pbnB1dH08L2Rpdj48L2Rpdj57L2lmfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aWYgJFdfaW5wdXQhPScnfTxkaXYgY2xhc3M9ImhpZGRlbiIgPjxkaXYgaWQ9Indhcm5BcmVhIj57JFdfaW5wdXR9PC9kaXY+PC9kaXY+IHsvaWZ9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgey9pZn0NCiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgIHsvaWZ9DQogICAgICAgICAgPGEgaHJlZj0iIyIgaWQ9Ik5vdGVfdHJpZyI+PGltZyBzcmM9Ii4uL21vZHVsZXMvU2NyaXB0RGVwbG95L2ltYWdlcy9ub3Rlcy5wbmciIGFsdD0iIi8+PGJyLz5Ob3RlPC9hPg0KICAgICAgICAgICANCiAgICA8L2Rpdj4NCiAgICA8aDEgaWQ9InNjcmlwdE5hbWVfSVMiIGNsYXNzPSJleHRlcm5hbCI+e2lmICRzY3JpcHRzX25hbWUhPScnfXskc2NyaXB0c19uYW1lfXtlbHNlfVVuc2V0ey9pZn08L2gxPntpZiBpc3NldCgkc2NyaXB0c0dyb3VwKSYmJHNjcmlwdHNHcm91cCE9Jyd9PHNwYW4gaWQ9IlNjcmlwdF9ncm91cHMiPkdyb3VwczogeyRzY3JpcHRzR3JvdXBOdW1iZXJ9ICh7JHNjcmlwdHNHcm91cH0pPC9zcGFuPnsvaWZ9DQogICAgPGRpdiBzdHlsZT0iY2xlYXI6cmlnaHQ7cGFkZGluZzo3OHB4IDAgMjZweDtwb3NpdGlvbjpyZWxhdGl2ZTsiPg0KICAgICAgICA8ZGl2IGlkPSJ0b29sQmFyLXQiPg0KICAgICAgICAgICAgPGRpdiBpZD0iZ290b0JveCI+R28gdG8gTGluZTogIDxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iIiBpZD0iZ290byIgLz48L2Rpdj4NCiAgICAgICAgICAgIDxkaXYgaWQ9Im9wQmFyIj57JG9wdGlvbmJhcn08L2Rpdj4NCiAgICAgICAgICAgIA0KICAgICAgICAgICAgDQogICAgICAgIDwvZGl2Pg0KICAgICAgICA8ZGl2IGlkPSJKQl9udW1hcmVhIj4NCiAgICAgICAgICAgIHskU2NyaXB0SXNfaW5wdXR9DQogICAgICAgIDwvZGl2Pg0KICAgICAgICA8ZGl2IGlkPSJ0b29sQmFyLWIiPjxkaXYgY2xhc3M9ImlubmVyIj57JHJlcG9ydGJhcn08L2Rpdj48L2Rpdj4NCiAgICA8L2Rpdj4NCg0KDQogICAgPCEtLSBjb250ZW50IGFyZWEgLS0+DQoNCiAgIDwvZGl2Pg0KICA8L2Rpdj4NCiA8L2Rpdj4NCiA8ZGl2IGNsYXNzPSJmdCI+PGRpdiBjbGFzcz0iYyI+PC9kaXY+PC9kaXY+DQo8L2Rpdj4NCg0KDQogICAgICAgICAgICAgICAgIAkJPGRpdiBpZD0ibGFuZGVyIiBjbGFzcz0iaGlkZGVuIiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7IHRvcDotOTk5OWVtOyBsZWZ0Oi05OTk5ZW07Ij4NCiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KDQoNCg0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93IiBzdHlsZT0icGFkZGluZy1sZWZ0OjIwcHg7Ij4NCnskc3VibWl0fXskY2FuY2VsfXtpZiAkbW9kZT09J2VkaXQnfXskcmV2ZXJ0fXskYXBwbHl9ey9pZn0NCjwvZGl2Pg0KeyRub3Rlc19pbnB1dH0NCnskZm9ybWVuZH0NCg0K]]></data>
	</file>
	<file>
	  <filename>/templates/edit_script_list.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCjx0YWJsZSBjZWxsc3BhY2luZz0iMCIgY2xhc3M9InBhZ2V0YWJsZSI+DQogIDx0aGVhZD4NCiAgICA8dHI+DQogICAgIDx0aCA+eyR0eXBlX2xhYmVsfTwvdGg+DQogICAgICA8dGggPnskTmFtZV9sYWJlbH08L3RoPg0KICAgICAgPHRoPnskU2NyaXB0TmFtZV9sYWJlbH08L3RoPg0KICAgICAgPHRoPnskU2luZ2xlQ29kZV9sYWJlbH08L3RoPg0KICAgICAgPHRoID4mbmJzcDs8L3RoPg0KICAgIDwvdHI+DQogIDwvdGhlYWQ+DQogIA0KICAgIHtpZiBlbXB0eSgkaXRlbXMpfTx0cj48dGQgY29sc3Bhbj0iNSI+eyROb19TY3JpcHRzfTwvdGQ+PC90cj57ZWxzZX0NCg0KICANCntmb3JlYWNoIGZyb209JGl0ZW1zIGl0ZW09ZW50cnl9DQogICA8dHIgY2xhc3M9InskZW50cnktPnJvd2NsYXNzfSB7JGVudHJ5LT5lZGl0TW9kZX0iPg0KICAgICA8dGQ+eyRlbnRyeS0+dHlwZUljb259PC90ZD4NCiAgICAgPHRkPjxoMz57JGVudHJ5LT5uYW1lfTwvaDM+PC90ZD4NCiAgICAgPHRkPjxoNCBzdHlsZT0iZGlzcGxheTppbmxpbmU7Ij57JGVudHJ5LT5kZWZhdWx0fSBAIHskZW50cnktPnNjcmlwdFNpemV9IHtpZiAkZW50cnktPlJldmlzaW9uIT0nJ30gLS0gIHskZW50cnktPlJldmlzaW9ufXsvaWZ9PC9oND48L3RkPg0KICAgICA8dGQ+PGg0PnskZW50cnktPmdldFRhZ308L2g0PjwvdGQ+DQogICAgIDx0ZCA+PGRpdiBjbGFzcz0iZWRpdGJhciB7JGVudHJ5LT5lZGl0TW9kZX0iPnskZW50cnktPnN0ZWFsfXskZW50cnktPmVkaXRsaW5rfXskZW50cnktPnJldmVydH17JGVudHJ5LT5kZWxldGVsaW5rfTwvZGl2PjwvdGQ+DQogICA8L3RyPg0Key9mb3JlYWNofXsvaWZ9DQo8L3RhYmxlPg0KPC9kaXY+DQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICA8cCBjbGFzcz0icGFnZW9wdGlvbnMiPnskbmV3X3NjcmlwdF9saW5rfTwvcD4NCjwvZGl2Pg0K]]></data>
	</file>
	<file>
	  <filename>/templates/edit_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij57JHNjcmlwdFR5cGVKU30NCjwvZGl2Pg0KeyRmb3Jtc3RhcnR9eyRoaWRkZW59DQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciIHN0eWxlPSJwYWRkaW5nLWxlZnQ6MjBweDsiPg0KIHsqeyRzdWJtaXR9Kn17JGNhbmNlbH17KntpZiAkbW9kZT09J2VkaXQnfXskcmV2ZXJ0fXskYXBwbHl9ey9pZn0qfQ0KPC9kaXY+DQoNCg0KDQo8ZGl2IGNsYXNzPSJoaWRkZW4iID4NCiAgICA8ZGl2IHN0eWxlPSIiIGlkPSJzY3JpcHRPcHRpb25zIj4NCiAgICAgICAgPGRpdj4NCiAgICAgICAgICA8cCA+eyR0ZW1wbGF0ZW5hbWVfbGFiZWx9OjwvcD4NCiAgICAgICAgICA8cCBpZD0ic2NyaXB0TmFtZSI+eyR0ZW1wbGF0ZW5hbWVfaW5wdXR9PC9wPg0KICAgICAgICA8L2Rpdj4NCjxici8+PGJyLz4NCiAgICAgICAgPGEgaHJlZj0iIyIgaWQ9ImNsb3NlX29wdGlvbnMiPkNsb3NlPC9hPg0KCTwvZGl2Pg0KICAgIDx0ZXh0YXJlYSBpZD0iZmlsdGVyUHJvcCIgcm93cz0iMSIgY29scz0iMSI+eyRmaWx0ZXJQcm9wfTwvdGV4dGFyZWE+DQo8L2Rpdj4NCg0KDQo8ZGl2IHN0eWxlPSJmbG9hdDpyaWdodDsgd2lkdGg6MTUwcHg7IiBpZD0ic2lkZWJhciI+DQogICAgPGgxPlRpcHM6PC9oMT4NCiAgICB7JHNtYXJ0eUhvd19sYWJlbH0NCiAgICB7aWYgJG5vdGVkIT0nJ308YnIvPjxici8+DQogICAgPGgxIGlkPSJzaWRlbm90ZSI+PHNwYW4gaWQ9ImFzdGVyIj4qPC9zcGFuPk5vdGU6PC9oMT4NCiAgICA8cD57JG5vdGVkfTwvcD4NCiAgICB7L2lmfQ0KPC9kaXY+DQoNCjxoMj57JGFkZExpYl9sYWJlbH08L2gyPg0KPHNlbGVjdCBpZD0ibGlicmFyeSI+DQo8b3B0aW9uIHZhbHVlPSJub25lIj5Ob25lPC9vcHRpb24+eyoqfQ0KPG9wdGdyb3VwIGxhYmVsPSJqUXVlcnkiPg0KPG9wdGlvbiB2YWx1ZT0iMC0wIj48c3Ryb25nPmpRdWVyeSBsYXRlc3Q8L3N0cm9uZz48L29wdGlvbj57Kmh0dHA6Ly9hamF4Lmdvb2dsZWFwaXMuY29tL2FqYXgvbGlicy9qcXVlcnkvMS9qcXVlcnkubWluLmpzKn0NCjxvcHRpb24gdmFsdWU9IjAtMS0xIj5qUXVlcnkgMS40LjIgPGVtPihnb29nbGVhcGlzKTwvZW0+PC9vcHRpb24+eypodHRwOi8vYWpheC5nb29nbGVhcGlzLmNvbS9hamF4L2xpYnMvanF1ZXJ5LzEuNC4yL2pxdWVyeS5taW4uanMqfQ0KPG9wdGlvbiB2YWx1ZT0iMC0xLTIiPmpRdWVyeSAxLjQuMiA8ZW0+KG1pY3Jvc29mdCk8L2VtPjwvb3B0aW9uPnsqaHR0cDovL2FqYXgubWljcm9zb2Z0LmNvbS9hamF4L2pRdWVyeS9qcXVlcnktMS40LjIubWluLmpzKn0NCjxvcHRpb24gdmFsdWU9IjAtMi0xIj5qUXVlcnkgMS40LjAgPGVtPihnb29nbGVhcGlzKTwvZW0+PC9vcHRpb24+eypodHRwOi8vYWpheC5nb29nbGVhcGlzLmNvbS9hamF4L2xpYnMvanF1ZXJ5LzEuNC4wL2pxdWVyeS5taW4uanMqfQ0KPG9wdGlvbiB2YWx1ZT0iMC0yLTIiPmpRdWVyeSAxLjQuMCA8ZW0+KG1pY3Jvc29mdCk8L2VtPjwvb3B0aW9uPnsqaHR0cDovL2FqYXgubWljcm9zb2Z0LmNvbS9hamF4L2pRdWVyeS9qcXVlcnktMS40LjEubWluLmpzKn0NCjxvcHRpb24gdmFsdWU9IjAtMy0xIj5qUXVlcnkgMS4zLjIgPGVtPihnb29nbGVhcGlzKTwvZW0+PC9vcHRpb24+eypodHRwOi8vYWpheC5nb29nbGVhcGlzLmNvbS9hamF4L2xpYnMvanF1ZXJ5LzEuMy4yL2pxdWVyeS5taW4uanMqfQ0KPG9wdGlvbiB2YWx1ZT0iMC0zLTIiPmpRdWVyeSAxLjMuMiA8ZW0+KG1pY3Jvc29mdCk8L2VtPjwvb3B0aW9uPnsqaHR0cDovL2FqYXgubWljcm9zb2Z0LmNvbS9hamF4L2pRdWVyeS9qcXVlcnktMS4zLjIubWluLmpzKn0NCjxvcHRpb24gdmFsdWU9IjAtNCI+alF1ZXJ5IDEuMi42PC9vcHRpb24+eypodHRwOi8vYWpheC5nb29nbGVhcGlzLmNvbS9hamF4L2xpYnMvanF1ZXJ5LzEuMi42L2pxdWVyeS5taW4uanMqfQ0KPC9vcHRncm91cD4NCjxvcHRncm91cCBsYWJlbD0ialF1ZXJ5IFRvb2xzIj4NCjxvcHRpb24gdmFsdWU9IjgtMCI+PHN0cm9uZz5qUXVlcnkgVG9vbHMgLSBBbGw8L3N0cm9uZz48L29wdGlvbj57Kmh0dHA6Ly9jZG4uanF1ZXJ5dG9vbHMub3JnLzEuMi40L2FsbC9qcXVlcnkudG9vbHMubWluLmpzKn0NCjxvcHRpb24gdmFsdWU9IjgtMSI+alF1ZXJ5IFRvb2xzIC0gRm9ybSB0b29sczogRGF0ZWlucHV0LCBSYW5nZWlucHV0IGFuZCBWYWxpZGF0b3IuIE5vIGpRdWVyeSBsaWJyYXJ5Ljwvb3B0aW9uPnsqaHR0cDovL2Nkbi5qcXVlcnl0b29scy5vcmcvMS4yLjQvZm9ybS9qcXVlcnkudG9vbHMubWluLmpzKn0NCjxvcHRpb24gdmFsdWU9IjgtMiI+alF1ZXJ5IFRvb2xzIC0gVUkgVG9vbHM6IFRhYnMsIFRvb2x0aXAsIFNjcm9sbGFibGUgYW5kIE92ZXJsYXkuPC9vcHRpb24+eypodHRwOi8vY2RuLmpxdWVyeXRvb2xzLm9yZy8xLjIuNC90aW55L2pxdWVyeS50b29scy5taW4uanMqfQ0KPC9vcHRncm91cD4NCjxvcHRncm91cCBsYWJlbD0ianF1ZXJ5LnZhbGlkYXRlIj4NCjxvcHRpb24gdmFsdWU9IjktMCI+PHN0cm9uZz52ZXJzaW9uIDEuNzwvc3Ryb25nPjwvb3B0aW9uPnsqaHR0cDovL2FqYXgubWljcm9zb2Z0LmNvbS9hamF4L2pxdWVyeS52YWxpZGF0ZS8xLjcvanF1ZXJ5LnZhbGlkYXRlLmpzKn0NCjxvcHRpb24gdmFsdWU9IjktMSI+dmVyc2lvbiAxLjcgKyBhZGRpdGlvbmFsLW1ldGhvZHM8L29wdGlvbj57Kmh0dHA6Ly9hamF4Lm1pY3Jvc29mdC5jb20vYWpheC9qcXVlcnkudmFsaWRhdGUvMS43L2pxdWVyeS52YWxpZGF0ZS5qcyB8IGh0dHA6Ly9hamF4Lm1pY3Jvc29mdC5jb20vYWpheC9qcXVlcnkudmFsaWRhdGUvMS43L2FkZGl0aW9uYWwtbWV0aG9kcy5qcyp9DQo8L29wdGdyb3VwPg0KPG9wdGdyb3VwIGxhYmVsPSJqUXVlcnkgVUkiPg0KPG9wdGlvbiB2YWx1ZT0iMS0wIj48c3Ryb25nPmpRdWVyeSBVSSAxLjguMDwvc3Ryb25nPjwvb3B0aW9uPnsqaHR0cDovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeXVpLzEvdGhlbWVzL2Jhc2UvanF1ZXJ5LXVpLmNzcyB8IGh0dHA6Ly9hamF4Lmdvb2dsZWFwaXMuY29tL2FqYXgvbGlicy9qcXVlcnl1aS8xLjguMC9qcXVlcnktdWkubWluLmpzKn0NCjxvcHRpb24gdmFsdWU9IjEtMSI+alF1ZXJ5IFVJIDEuNy4yPC9vcHRpb24+eypodHRwOi8vYWpheC5nb29nbGVhcGlzLmNvbS9hamF4L2xpYnMvanF1ZXJ5dWkvMS90aGVtZXMvYmFzZS9qcXVlcnktdWkuY3NzIHwgaHR0cDovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeXVpLzEuNy4yL2pxdWVyeS11aS5taW4uanMqfQ0KPC9vcHRncm91cD4NCjxvcHRncm91cCBsYWJlbD0iUHJvdG90eXBlIj4NCjxvcHRpb24gdmFsdWU9IjItMCI+PHN0cm9uZz5Qcm90b3R5cGUgbGF0ZXN0PC9zdHJvbmc+PC9vcHRpb24+eypodHRwOi8vYWpheC5nb29nbGVhcGlzLmNvbS9hamF4L2xpYnMvcHJvdG90eXBlLzEvcHJvdG90eXBlLmpzKn0NCjxvcHRpb24gdmFsdWU9IjItMSI+UHJvdG90eXBlIDEuNi4xLjA8L29wdGlvbj57Kmh0dHA6Ly9hamF4Lmdvb2dsZWFwaXMuY29tL2FqYXgvbGlicy9wcm90b3R5cGUvMS42LjEuMC9wcm90b3R5cGUuanMqfQ0KPG9wdGlvbiB2YWx1ZT0iMi0yIj5Qcm90b3R5cGUgMS42LjAuMzwvb3B0aW9uPnsqaHR0cDovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL3Byb3RvdHlwZS8xLjYuMC4zL3Byb3RvdHlwZS5qcyp9DQo8L29wdGdyb3VwPg0KPG9wdGdyb3VwIGxhYmVsPSJzY3JpcHQuYWN1bG8udXMiPg0KPG9wdGlvbiB2YWx1ZT0iMy0wIj48c3Ryb25nPnNjcmlwdC5hY3Vsby51cyAxLjguMzwvc3Ryb25nPjwvb3B0aW9uPnsqaHR0cDovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL3Byb3RvdHlwZS8xL3Byb3RvdHlwZS5qcyB8IGh0dHA6Ly9hamF4Lmdvb2dsZWFwaXMuY29tL2FqYXgvbGlicy9zY3JpcHRhY3Vsb3VzLzEuOC4zL3NjcmlwdGFjdWxvdXMuanMqfQ0KPC9vcHRncm91cD4NCjxvcHRncm91cCBsYWJlbD0iWVVJIj4NCjxvcHRpb24gdmFsdWU9IjQtMCI+PHN0cm9uZz5ZVUkgMi44LjByNDwvc3Ryb25nPjwvb3B0aW9uPnsqaHR0cDovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL3l1aS8yLjguMHI0L2J1aWxkL3l1aWxvYWRlci95dWlsb2FkZXItbWluLmpzKn0NCjxvcHRpb24gdmFsdWU9IjQtMSI+WVVJIDIuNy4wPC9vcHRpb24+eyoiaHR0cDovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL3l1aS8yLjcuMC9idWlsZC95dWlsb2FkZXIveXVpbG9hZGVyLW1pbi5qcyp9DQo8L29wdGdyb3VwPg0KPG9wdGdyb3VwIGxhYmVsPSJNb29Ub29scyI+DQo8b3B0aW9uIHZhbHVlPSI1LTAiPjxzdHJvbmc+TW9vdG9vbHMgMS4yLjQ8L3N0cm9uZz48L29wdGlvbj57Kmh0dHA6Ly9hamF4Lmdvb2dsZWFwaXMuY29tL2FqYXgvbGlicy9tb290b29scy8xLjIuNC9tb290b29scy15dWktY29tcHJlc3NlZC5qcyp9DQo8b3B0aW9uIHZhbHVlPSI1LTEiPk1vb3Rvb2xzIDEuMi4zPC9vcHRpb24+eypodHRwOi8vYWpheC5nb29nbGVhcGlzLmNvbS9hamF4L2xpYnMvbW9vdG9vbHMvMS4yLjMvbW9vdG9vbHMteXVpLWNvbXByZXNzZWQuanMqfQ0KPC9vcHRncm91cD4NCjxvcHRncm91cCBsYWJlbD0iRG9qbyI+DQo8b3B0aW9uIHZhbHVlPSI2LTAiPjxzdHJvbmc+RG9qbyAxLjQuMTwvc3Ryb25nPjwvb3B0aW9uPnsqaHR0cDovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2Rvam8vMS40LjEvZG9qby9kb2pvLnhkLmpzKn0NCjxvcHRpb24gdmFsdWU9IjYtMSI+RG9qbyAxLjMuMjwvb3B0aW9uPnsqaHR0cDovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2Rvam8vMS4zLjIvZG9qby9kb2pvLnhkLmpzKn0NCjwvb3B0Z3JvdXA+DQo8b3B0Z3JvdXAgbGFiZWw9IkV4dCBDb3JlIj4NCjxvcHRpb24gdmFsdWU9IjctMCI+PHN0cm9uZz5FeHQgQ29yZSAzLjE8L3N0cm9uZz48L29wdGlvbj57Kmh0dHA6Ly9leHRqcy5jYWNoZWZseS5uZXQvZXh0LTIuMi9yZXNvdXJjZXMvY3NzL2V4dC1hbGwuY3NzIHwgaHR0cDovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2V4dC1jb3JlLzMuMS4wL2V4dC1jb3JlLmpzKn0NCjwvb3B0Z3JvdXA+DQo8L3NlbGVjdD4NCg0KPGRpdiBjbGFzcz0iZGlhbG9nIiBzdHlsZT0ibWFyZ2luLXJpZ2h0OjE3MHB4OyI+DQogPGRpdiBjbGFzcz0iaGQiPjxkaXYgY2xhc3M9ImMiPjwvZGl2PjwvZGl2Pg0KIDxkaXYgY2xhc3M9ImJkIj4NCiAgPGRpdiBjbGFzcz0iYyI+DQogICA8ZGl2IGNsYXNzPSJzIj4NCg0KICAgIDwhLS0gY29udGVudCBhcmVhIC0tPg0KICAgIDxkaXYgaWQ9Im5vdGljZWJhciI+DQogICAgICAgICAge2lmICRtb2RlPT0nZWRpdCd9DQogICAgICAgICAgICAgIDxkaXYgaWQ9IlZBbGVkQmxvY2siPg0KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5uZXIiPg0KICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlZBbGVkIj57JFZBbGVkfTwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgIHtpZiAkRV9pbnB1dCE9Jyd9PGEgaHJlZj0iIyIgaWQ9IkVfdHJpZyI+PGltZyBzcmM9Ii4uL21vZHVsZXMvU2NyaXB0RGVwbG95L2ltYWdlcy9jc3MtZXJyb3IucG5nIiBhbHQ9IiIvPjxici8+RXJyb3JzPC9hPnsvaWZ9DQogICAgICAgICAgICAgICAgICAgICAge2lmICRXX2lucHV0IT0nJ308YSBocmVmPSIjIiBpZD0iV190cmlnIj48aW1nIHNyYz0iLi4vbW9kdWxlcy9TY3JpcHREZXBsb3kvaW1hZ2VzL2Nzcy13YXJuLnBuZyIgYWx0PSIiLz48YnIvPldhcm5pbmdzPC9hPnsvaWZ9DQogICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgey9pZn0NCiAgICAgICAgICA8YSBocmVmPSIjIiBpZD0iTm90ZV90cmlnIj48aW1nIHNyYz0iLi4vbW9kdWxlcy9TY3JpcHREZXBsb3kvaW1hZ2VzL25vdGVzLnBuZyIgYWx0PSIiLz48YnIvPk5vdGU8L2E+DQogICAgICAgICAgIA0KICAgIDwvZGl2Pg0KICAgIDxoMSBpZD0ic2NyaXB0TmFtZV9JUyIgY2xhc3M9ImV4dGVybmFsIj57aWYgJHRlbXBsYXRlbmFtZSE9Jyd9eyR0ZW1wbGF0ZW5hbWV9e2Vsc2V9VW5zZXR7L2lmfTwvaDE+e2lmIGlzc2V0KCRzY3JpcHRzR3JvdXApJiYkc2NyaXB0c0dyb3VwIT0nJ308c3BhbiBpZD0iU2NyaXB0X2dyb3VwcyI+PGEgaHJlZj0iIyIgaWQ9IiI+R3JvdXBzPC9hPnskc2NyaXB0c0dyb3VwTnVtYmVyfSAoeyRzY3JpcHRzR3JvdXB9KTwvc3Bhbj57L2lmfQ0KICAgIDxkaXYgc3R5bGU9ImNsZWFyOnJpZ2h0O3BhZGRpbmc6NzhweCAwIDI2cHg7cG9zaXRpb246cmVsYXRpdmU7Ij4NCiAgICAgICAgPGRpdiBpZD0idG9vbEJhci10Ij4NCiAgICAgICAgICAgIDxkaXYgaWQ9ImdvdG9Cb3giPkdvIHRvIExpbmU6ICA8aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IiIgaWQ9ImdvdG8iIC8+PC9kaXY+DQogICAgICAgICAgICA8ZGl2IGlkPSJvcEJhciI+eyRvcHRpb25iYXJ9PC9kaXY+DQogICAgICAgICAgICANCiAgICAgICAgICAgIA0KICAgICAgICA8L2Rpdj4NCiAgICAgICAgPGRpdiBpZD0iSkJfbnVtYXJlYSI+DQogICAgICAgICAgICB7JFNjcmlwdElzX2lucHV0fQ0KICAgICAgICA8L2Rpdj4NCiAgICAgICAgPGRpdiBpZD0idG9vbEJhci1iIj57JHJlcG9ydGJhcn08L2Rpdj4NCiAgICA8L2Rpdj4NCg0KDQogICAgPCEtLSBjb250ZW50IGFyZWEgLS0+DQoNCiAgIDwvZGl2Pg0KICA8L2Rpdj4NCiA8L2Rpdj4NCiA8ZGl2IGNsYXNzPSJmdCI+PGRpdiBjbGFzcz0iYyI+PC9kaXY+PC9kaXY+DQo8L2Rpdj4NCg0KDQoNCg0KDQoNCg0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93IiBzdHlsZT0icGFkZGluZy1sZWZ0OjIwcHg7Ij4NCnsqeyRzdWJtaXR9Kn17JGNhbmNlbH17KntpZiAkbW9kZT09J2VkaXQnfXskcmV2ZXJ0fXskYXBwbHl9ey9pZn0qfQ0KPC9kaXY+DQp7JG5vdGVzX2lucHV0fQ0KeyRmb3JtZW5kfQ0KPGRpdiBzdHlsZT0iIGNsZWFyOmxlZnQ7Ij4NCg0KICB7JHJlcG9ydH0NCiAgICAgICAgICB7aWYgJG1vZGU9PSdlZGl0J30NCiAgICAgICAgICAgICAge2lmICRFX2lucHV0IT0nJ308ZGl2IGNsYXNzPSJoaWRkZW4iID48ZGl2IGlkPSJFcnJvckFyZWEiPnskRV9pbnB1dH08L2Rpdj48L2Rpdj57L2lmfQ0KICAgICAgICAgICAgICB7aWYgJFdfaW5wdXQhPScnfTxkaXYgY2xhc3M9ImhpZGRlbiIgPjxkaXYgaWQ9Indhcm5BcmVhIj57JFdfaW5wdXR9PC9kaXY+PC9kaXY+IHsvaWZ9DQogICAgICAgICAgey9pZn0NCjwvZGl2Pg0K]]></data>
	</file>
	<file>
	  <filename>/templates/Email_Userform_form.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmb3JtX3N0YXJ0T0ZGfQ0KeyRmb3JtX2hpZGRlbk9GRn0NCnskZm9ybV9zdWJtaXRPRkZ9DQp7JGZvcm1fZW5kT0ZGfQ0KDQo=]]></data>
	</file>
	<file>
	  <filename>/templates/message.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskdGl0bGV9PC9oMz4KPHA+eyRtZXNzYWdlfTwvcD4=]]></data>
	</file>
	<file>
	  <filename>/templates/orig_email_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBFTUFJTC0tPg==]]></data>
	</file>
	<file>
	  <filename>/templates/revert.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRjbGVhclJldl9zdGFydH0NCnskaGlkZGVufQ0KeyRjbGVhclJldn0NCnskY2xlYXJSZXZfZW5kfQ0KDQo8cCA+DQoNCg0KPGEgaHJlZj0iamF2YXNjcmlwdDogaGlzdG9yeS5nbygtMSkiIGlkPSJFeGl0Ij5FeGl0PC9hPiA8L3A+DQp7JHRhYmxlfQ0KPGEgaHJlZj0iamF2YXNjcmlwdDogaGlzdG9yeS5nbygtMSkiIGlkPSJFeGl0Ij5FeGl0PC9hPiA8L3A+DQo=]]></data>
	</file>
	<file>
	  <filename>/templates/sample.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2Ntc19tb2R1bGUgbW9kdWxlPVNjcmlwdERlcGxveSBNb2RlPSJkZWZhdWx0IiBCdG49Ik1vZHVsZURvbmF0ZSJ9]]></data>
	</file>
	<file>
	  <filename>/templates/template_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmb3Jtc3RhcnR9CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9tcHRfdGVtcGxhdGV9OjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfdGVtcGxhdGV9PC9wPgogIDwvZGl2PgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPiZuYnNwOzwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskc3VibWl0fTwvcD4KICA8L2Rpdj4KeyRmb3JtZW5kfQo=]]></data>
	</file>
	<file>
	  <filename>/templates/val_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlZBbGVkIj57JFZBbGVkfTwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgIHtpZiAkRV9pbnB1dCE9Jyd9PGEgaHJlZj0iIyIgaWQ9IkVfdHJpZyI+PGltZyBzcmM9Ii4uL21vZHVsZXMvU2NyaXB0RGVwbG95L2ltYWdlcy9jc3MtZXJyb3IucG5nIiBhbHQ9IiIvPjxici8+RXJyb3JzPC9hPnsvaWZ9DQogICAgICAgICAgICAgICAgICAgICAge2lmICRXX2lucHV0IT0nJ308YSBocmVmPSIjIiBpZD0iV190cmlnIj48aW1nIHNyYz0iLi4vbW9kdWxlcy9TY3JpcHREZXBsb3kvaW1hZ2VzL2Nzcy13YXJuLnBuZyIgYWx0PSIiLz48YnIvPldhcm5pbmdzPC9hPnsvaWZ9DQogICAgICAgICAgICAgICAgIAkJPGRpdiBjbGFzcz0iaGlkZGVuIiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7IHRvcDotOTk5OWVtOyBsZWZ0Oi05OTk5ZW07Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICB7JHJlcG9ydH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aWYgJG1vZGU9PSdlZGl0J30NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2lmICRFX2lucHV0IT0nJ308ZGl2IGNsYXNzPSJoaWRkZW4iID48ZGl2IGlkPSJFcnJvckFyZWEiPnskRV9pbnB1dH08L2Rpdj48L2Rpdj57L2lmfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aWYgJFdfaW5wdXQhPScnfTxkaXYgY2xhc3M9ImhpZGRlbiIgPjxkaXYgaWQ9Indhcm5BcmVhIj57JFdfaW5wdXR9PC9kaXY+PC9kaXY+IHsvaWZ9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgey9pZn0NCiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCg==]]></data>
	</file>
	<file>
	  <filename>/Tree.inc.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KCS8qKg0KCSogQHBhY2thZ2UgVHJlZQ0KCSogQHRvZG8gbW92ZSBmdW5jdGlvbiB0byBtb3ZlIGEgbm9kZSBlbHNld2hlcmUgaW4gdGhlIHRyZWU/IEhvdyB0byBkZW5vdGUgbG9jYXRpb25zIChwYXRocyk/DQoJKi8NCgkNCgkvKioNCgkqIFBIUDQgVHJlZSBjbGFzcw0KCSoNCgkqPGNvZGU+DQoJKiAvL2NyZWF0ZSBhIHJvb3Qgbm9kZSBieSBwYXNzaW5nIGEgdmFyaWFibGUgd2l0aCB2YWx1ZSBudWxsLCANCgkqIC8vcmV0dXJucyBhIHJlZmVyZW5jZSB0byB0aGUgcm9vdCBub2RlDQoJKiRudWxsID0gbnVsbDsNCgkqJGRhdGEgPSBhcnJheSgiZHVtbXlrZXkiPT4iZHVtbXl2YWx1ZSIpOw0KCSokdHJlZSA9IG5ldyBUcmVlKCRudWxsKTsNCgkqDQoJKiAvLyB5b3UgY2FuIGFkZCB5b3VyIGRhdGEgbG9hZCBhbHNvOg0KCSogLy8kdHJlZSA9IG5ldyBUcmVlKCRudWxsLCRkYXRhKTsNCgkqDQoJKiAvLyBjcmVhdGUgYSBub2RlLCAkbm9kZSBpcyBhIHJlZmVyZW5jZSB0byBhIFRyZWUgb2JqZWN0LCB1c2UgJyYnIQ0KCSokbm9kZSA9ICYkdHJlZS0+YWRkQ2hpbGQoJGRhdGEpOw0KCSogLy8gY3JlYXRlIGFub3RoZXIgbm9kZSBhcyBzdWJub2RlIG9mICRub2RlDQoJKiRzdWJub2RlID0gJiRub2RlLT5hZGRDaGlsZCgkZGF0YSk7DQoJKg0KCSogLy8gZ2V0IHRoZSBsZXZlbCBvZiB0aGlzIG5vZGU6DQoJKmVjaG8gJ3N1Ym5vZGUgaXMgb24gbGV2ZWwnLiRzdWJub2RlLT5nZXRMZXZlbCgpOw0KCSoNCgkqIC8vIGhhdmUgYSBsb29rIG9uIHRoZSBzdHJ1Y3R1cmUNCgkqZWNobyAnPHByZT4nOw0KCSokdHJlZS0+ZWNob1N0cnVjdHVyZSgpOw0KCSplY2hvICc8L3ByZT4nOw0KCSoNCgkqIC8vIGRlbGV0ZSBhIG5vZGUNCgkqJHN1Ym5vZGUtPmRlbGV0ZSgpOw0KCSoNCgkqPC9jb2RlPg0KCSoNCgkqIEBhdXRob3IgTWFydGluIFdlaXMgPHRyZWVAZGF0ZW5yb3VsZXR0ZS5kZT4NCiAgICogQGxpY2Vuc2UgaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2dwbC1saWNlbnNlLnBocCBHTlUgUHVibGljIExpY2Vuc2UNCiAgICogQHZlcnNpb24gZWFybHkgcmVsZWFzZSwgdmVyc2lvbiAwLjUNCiAgICogQGNvcHlyaWdodCBDb3B5cmlnaHQgMjAwNSwgTWFydGluIFdlaXMJDQogICAqLwkNCmNsYXNzIFRyZWUgew0KCS8qKg0KCSogQHBhY2thZ2UgVHJlZQ0KCSogQHRvZG8gbW92ZSBmdW5jdGlvbiB0byBtb3ZlIGEgbm9kZSBlbHNld2hlcmUgaW4gdGhlIHRyZWU/DQoJKi8NCgkJDQoJLyoqDQoJKiBWYXJpYWJsZSBkZWNsYXJhdGlvbg0KCSovDQoJDQoJLyoqDQoJKiBJRCBvZiB0aGlzIE5vZGUNCgkqIEB2YXIgaW50IA0KCSogQGFjY2VzcyBwcml2YXRlDQoJKi8NCgl2YXIgJF9pZDsNCgkNCgkvKioNCgkqIGxldmVsIG9mIHRoaXMgTm9kZQ0KCSogQHZhciBpbnQgDQoJKiBAYWNjZXNzIHByaXZhdGUNCgkqIEBkZXByZWNhdGVkIHVzZSBmdW5jdGlvbiB7QGxpbmsgZ2V0TGV2ZWwoKX0NCgkqLw0KCXZhciAkX2xldmVsOw0KDQoJLyoqDQoJKiBwYXJlbnQgbm9kZSAocmVmZXJlbmNlKQ0KCSogQHZhciBUcmVlIA0KCSogQGFjY2VzcyBwcml2YXRlDQoJKi8NCgl2YXIgJF9wYXJlbnQ7DQoNCgkvKioNCgkqIGFycmF5IG9mIGNoaWxkcmVuLCB3aXRoIHJlZmVyZW5jZXMNCgkqIEB2YXIgYXJyYXkgDQoJKiBAYWNjZXNzIHByaXZhdGUNCgkqLw0KCXZhciAkX2NoaWxkcmVuOw0KDQoJLyoqDQoJKiBkYXRhIGxvYWQgb2YgdGhpcyBub2RlDQoJKiBAYWNjZXNzIHByaXZhdGUNCgkqLw0KCXZhciAkZGF0YTsNCg0KCS8qKg0KCSogZGVmYXVsdCBjb25zdHJ1Y3Rvcg0KCSogDQoJKiBjcmVhdGVzIGEgbm9kZQ0KCSogQGFjY2VzcyBwdWJsaWMNCgkqIEBwYXJhbSAmVHJlZSBvciBudWxsLCBzZXQgcGFyZW50IG9yIG51bGwgZm9yIHJvb3Qgbm9kZSAgDQoJKiBAcGFyYW0gbWl4ZWQgZGF0YSBsb2FkDQoJKiBAcmV0dXJuIFRyZWUNCgkqLw0KCSAgIGZ1bmN0aW9uIFRyZWUoJiRfcGFyZW50LCRkYXRhPW51bGwpIHsNCgkgICAJDQoJICAgCWlmICgkX3BhcmVudD09PW51bGwpew0KCSAgIAkJLy8gdGhpcyBpcyBhIHJvb3Qgbm9kZQ0KCSAgIAkJJHRoaXMtPl9sZXZlbD0wOw0KCSAgIAl9DQoJICAgCSR0aGlzLT5kYXRhPSRkYXRhOw0KCQkJJHRoaXMtPl9jaGlsZHJlbj1hcnJheSgpOyAvL2luaXRpYWxpemUgd2l0aCBubyBjaGlsZHJlbgkJCQ0KCQkJLy8gZm9yIHRoZSByb290IG5vZGUgcGFyZW50IHdpbGwgYmUgbnVsbCANCgkJCSR0aGlzLT5fcGFyZW50PSYkX3BhcmVudDsNCgkJCS8vJHRoaXMtPl9pZD0kaWRfdG9fc2V0Ow0KCQkJLyoNCgkJCWVjaG8gImNyZWF0ZWQgbm9kZSB3aXRoIGlkOiIuJHRoaXMtPl9pZC4iIGFuZCBfcGFyZW50OiIuJF9wYXJlbnQtPmlkOw0KCQkJZWNobyAiY2hpbGRyZW46IjsNCgkJCWVjaG8gIjxwcmU+IjsNCgkJCXByaW50X3IoJHRoaXMtPl9jaGlsZHJlbik7DQoJCQllY2hvICI8L3ByZT4iOw0KCQkJZWNobyAiZGF0YTogIi4kdGhpcy0+ZGF0YTsNCgkJCSovDQoJfQ0KCQ0KCS8qKg0KCSogYWRkIGEgY2hpbGQNCgkqIEBhY2Nlc3MgcHVibGljDQoJKiBAcGFyYW0gbWl4ZWQgZGF0YSBsb2FkDQoJKiBAcmV0dXJuIFRyZWUgcmVmZXJlbmNlIHRvIHRoZSBjaGlsZA0KCSovDQoJZnVuY3Rpb24gJmFkZENoaWxkKCRkYXRhKSB7DQoJCQ0KCQkkdGhpcy0+X2NoaWxkcmVuW109bmV3IFRyZWUoJHRoaXMsJGRhdGEpOw0KCQkvL2dldCB0aGUgYXV0b21hdGljYWxseSBzZXQgaWQgKD1hcnJheSBrZXkpIC0gaXQgaXMgdGhlIGxhc3QgZWxlbWVudCBub3cNCgkJZW5kKCR0aGlzLT5fY2hpbGRyZW4pOw0KCQkka2V5PWtleSgkdGhpcy0+X2NoaWxkcmVuKTsNCgkJJHRoaXMtPl9jaGlsZHJlblska2V5XS0+X3NldElkKCRrZXkpOw0KCQkkdGhpcy0+X2NoaWxkcmVuWyRrZXldLT5sZXZlbCA9ICR0aGlzLT5fbGV2ZWwgKyAxOw0KCQkJLyoNCgkJCWVjaG8gIlxuPGJyPmFkZGVkIGNoaWxkIHdpdGggaWQgIi4ka2V5Ow0KCQkJZWNobyAiY2hpbGRyZW46IjsNCgkJCWVjaG8gIjxwcmU+IjsNCgkJCXByaW50X3IoJHRoaXMtPl9jaGlsZHJlbik7DQoJCQllY2hvICI8L3ByZT4iOw0KCQkJKi8NCgkJcmV0dXJuICR0aGlzLT5fY2hpbGRyZW5bJGtleV07DQoJfQ0KCQ0KCQ0KCS8qKg0KCSogcmVtb3ZlcyBhIGNoaWxkDQoJKiBAcGFyYW0gaW50IGlkDQoJKiBAcmV0dXJuIGJvb2xlYW4gc3VjY2VzcyAodHJ1ZS9mYWxzZSkNCgkqLw0KCWZ1bmN0aW9uIHJlbW92ZUNoaWxkKCRpZCkgew0KCQlpZiAoIWFycmF5X2tleV9leGlzdHMoJGlkLCR0aGlzLT5fY2hpbGRyZW4pKXsNCgkJLy9lY2hvICJyZW1vdmFsIG9mIGNoaWxkIHdpdGgga2V5ICIuJGlkLiIgZmFpbGVkOiBkb2VzIG5vdCBleGlzdCI7DQoJCXJldHVybiBmYWxzZTsNCgkJfQ0KCQllbHNlew0KCQl1bnNldCgkdGhpcy0+X2NoaWxkcmVuWyRpZF0pOw0KCQlyZXR1cm4gdHJ1ZTsNCgkJfQ0KCX0NCg0KCS8qKg0KCSogZGVsZXRlIHRoaXMgbm9kZQ0KCSogQHJldHVybiBib29sZWFuIHN1Y2Nlc3Mgc3RhdGUNCgkqLw0KDQoJZnVuY3Rpb24gZGVsZXRlKCl7DQoJCWlmICghJHRoaXMtPmlzUm9vdCl7DQoJCQkvLyByZW1vdmUgdXNpbmcgdGhlIF9wYXJlbnQNCgkJCXJldHVybiAkdGhpcy0+X3BhcmVudC0+cmVtb3ZlQ2hpbGQoJHRoaXMtPl9pZCk7DQoJCX0NCgkJZWxzZSB7DQoJCQkvLyBpbiB0aGUgcm9vdCBub2RlIHVuc2V0IG9iamVjdA0KCQkJdW5zZXQgKCR0aGlzKTsgLy8tPl9jaGlsZHJlbj1hcnJheSgpOw0KCQkJcmV0dXJuIHRydWU7DQoJCX0NCgl9DQoJCQ0KCS8qKg0KCSogZ2V0IG9iamVjdCBpZA0KCSogQHJldHVybiBpbnQNCgkqLw0KCS8qCQ0KCWZ1bmN0aW9uIHJldHVybkNoaWxkKCRpZCl7DQoJCSRyZXQ9JiRjaGlsZHJlblskaWRdOw0KCQllY2hvICJyZXR1cm4gY2hpbGQ6ICIuJHJldDsNCgkJcmV0dXJuICRyZXQ7DQoJfQ0KCSovDQoJCQ0KCS8qKg0KCSogZ2V0IG9iamVjdCBpZA0KCSogQHJldHVybiBpbnQgaWQNCgkqLw0KCWZ1bmN0aW9uIGdldElkKCl7DQoJCXJldHVybiAkdGhpcy0+X2lkOw0KCX0NCgkNCgkvKioNCgkqIHNldCBvYmplY3QgaWQNCgkqIEBhY2Nlc3MgcHJpdmF0ZQ0KCSogQHJldHVybiB2b2lkDQoJKi8NCglmdW5jdGlvbiBfc2V0SWQoJGlkKXsNCgkJICR0aGlzLT5faWQ9JGlkOw0KCX0NCgkNCgkvKioNCgkqIGdldCBudW1iZXIgb2YgY2hpbGRyZW4NCgkqIEByZXR1cm4gaW50IG51bWJlciBvZiBjaGlsZHJlbgkNCgkqLw0KCWZ1bmN0aW9uIG51bUNoaWxkcmVuKCl7DQoJCXJldHVybiBjb3VudCgkdGhpcy0+X2NoaWxkcmVuKTsNCgl9DQoNCgkvKioNCgkqIGdldCBJRHMgb2YgdGhlIGNoaWxkcmVuDQoJKiBAcmV0dXJuIGFycmF5IG9mIElEcw0KCSovDQoJZnVuY3Rpb24gZ2V0Q2hpbGRyZW5JZHMoKXsNCgkJcmV0dXJuIGFycmF5X2tleXMoJHRoaXMtPl9jaGlsZHJlbik7DQoJfQ0KCQ0KCS8qKg0KCSogY2hlY2sgaWYgdGhpcyBpcyB0aGUgcm9vdCBub2RlDQoJKiBAcmV0dXJuIGJvb2xlYW4NCgkqLw0KCWZ1bmN0aW9uIGlzUm9vdCgpew0KCQlpZiAoJHRoaXMtPl9wYXJlbnQ9PW51bGwpew0KCQkJcmV0dXJuIHRydWU7DQoJCX0NCgkJZWxzZXsNCgkJCXJldHVybiBmYWxzZTsNCgkJfQ0KCX0NCgkNCgkvKioNCgkqIGdldCByb290IE5vZGUNCgkqIEByZXR1cm4gVHJlZSBvYmplY3QgcmVmZXJlbmNlIHRvIHJvb3Qgbm9kZQ0KCSovDQoJZnVuY3Rpb24gJmdldFJvb3QoKXsNCgkJCSR0bXA9JiR0aGlzOw0KCQkJd2hpbGUgKCEkdG1wLT5pc1Jvb3QoKSl7DQoJCQkJLy8gaXRlcmF0ZSB0aHJvdWdoIHBhcmVudHMsIGFkZCBJRHMgdG8gKGJlZ2luIG9mKSBhcnJheQ0KCQkJCSR0bXA9JiR0bXAtPl9wYXJlbnQ7DQoJCQl9DQoJCQlyZXR1cm4gJHRtcDsNCgkJDQoJfQ0KCQ0KCS8qKg0KCSogZ2V0IHRoZSAncGF0aCcgb2YgdGhlIHJvb3Qgbm9kZSB0byB0aGlzIG5vZGUgKElEcykNCgkqIEByZXR1cm4gYXJyYXkgb2YgYW5jZXN0b3JzIElEcw0KCSovDQoJZnVuY3Rpb24gZ2V0UGF0aCgpew0KCQkJJGlkYXJyYXk9YXJyYXkoKTsNCgkJCSR0bXA9JiR0aGlzOw0KCQkJd2hpbGUgKCEkdG1wLT5pc1Jvb3QoKSl7DQoJCQkJLy8gaXRlcmF0ZSB0aHJvdWdoIHBhcmVudHMsIGFkZCBJRHMgdG8gKGJlZ2luIG9mKSBhcnJheQ0KCQkJCWFycmF5X3Vuc2hpZnQgKCRpZGFycmF5LCAkdG1wLT5faWQpOw0KCQkJCSR0bXA9JiR0bXAtPl9wYXJlbnQ7DQoJCQl9DQoJCQlyZXR1cm4gJGlkYXJyYXk7DQoJCQ0KCX0NCgkNCgkvKioNCgkqIGdldCBMZXZlbA0KCSogQHJldHVybiBpbnQgbGV2ZWwNCgkqLw0KCWZ1bmN0aW9uIGdldExldmVsKCl7DQoJCQkkbGV2ZWw9MDsNCgkJCSR0bXA9JiR0aGlzOw0KCQkJd2hpbGUgKCEkdG1wLT5pc1Jvb3QoKSl7DQoJCQkvL2VjaG8gImFkZGluZyBsZXZlbCBmb3IgcGFyZW50LCBpZCA6Ii4kdGhpcy0+X2lkOw0KCQkJCSR0bXA9JiR0bXAtPl9wYXJlbnQ7DQoJCQkJJGxldmVsKys7DQoJCQl9DQoJCQlyZXR1cm4gJGxldmVsOw0KCQkvKg0KCQlpZiAoISR0aGlzLT5pc1Jvb3QoKSl7DQoJCQkvLyBpdGVyYXRlIHRocm91Z2ggX3BhcmVudHMgYW5kIGNvdW50CQkJDQoJCQkNCgkJCXJldHVybiAkbGV2ZWw7DQoJCX0NCgkJCWVsc2V7DQoJCQkJcmV0dXJuIDA7CQkJCQ0KCQl9DQoJCSovDQoJfQ0KCQ0KCS8qDQoJKiBwcmludCB0aGUgVHJlZQ0KCSovDQoJLyoJDQoJZnVuY3Rpb24gcHJpbnRUcmVlKCRwcmVmaXg9JycpIHsNCgkkcHJlZml4Lj0oc3RyaW5nKSR0aGlzLT5faWQuJy4nOw0KCWVjaG8gIlxuPGJyPiI7DQoJZWNobyAnPGZvbnQgY29sb3I9InJlZCI+JzsNCglpZiAoJHRoaXMtPmlzUm9vdCgpKXsNCgkJZWNobyAiUk9PVCI7DQoJfQ0KCWVsc2V7DQoJZWNobyAiSSBhbSBjaGlsZCBub2RlICIuJHByZWZpeDsvLyR0aGlzLT5nZXRMZXZlbCgpLiIuIi4kdGhpcy0+X2lkOw0KCX0NCgllY2hvICJcbjxicj4iOw0KCWVjaG8gIkkgYW0gb24gTGV2ZWw6ICIuJHRoaXMtPmdldExldmVsKCk7DQoJZWNobyAiXG48YnI+IjsNCglpZiAoJHRoaXMtPm51bUNoaWxkcmVuKCk9PTApew0KCQllY2hvICJJIGhhdmUgTk8gY2hpbGRzIChsZWFmIG5vZGUpIjsNCgl9DQoJZWxzZQ0KCXsNCgkJZWNobyAiSSBoYXZlICIuJHRoaXMtPm51bUNoaWxkcmVuKCkuIiBjaGlsZHMiOw0KCQkJZWNobyAiOjxicj48cHJlPiI7DQoJCQlwcmludF9yKCR0aGlzLT5nZXRDaGlsZHJlbklkcygpKTsNCgkJCWVjaG8gIjo8L3ByZT4iOw0KCQkvL2VjaG8gIktsYXNzZW50eXAgY2hpbGQ6ICIuaXNfb2JqZWN0KCR0aGlzLT5fY2hpbGRyZW4pLmdldF9jbGFzcygkdGhpcy0+X2NoaWxkcmVuKTsNCgkJZWNobyAiZGF0YTogPHByZT4iOw0KCX0NCgkJZWNobyAiXG48YnI+IjsNCglwcmludF9yKCR0aGlzLT5kYXRhKTsNCgllY2hvICI8L3ByZT4iOw0KCWVjaG8gIjwvZm9udD4iOw0KCWVjaG8gIlxuPGJyPiI7DQoJDQoJCWlmICgkdGhpcy0+bnVtQ2hpbGRyZW4oKT4wKXsNCgkJCWZvcmVhY2ggKCR0aGlzLT5fY2hpbGRyZW4gYXMgJGNoaWxkKSB7DQoJICAgIAkJJGNoaWxkLT5wcmludFRyZWUoJHByZWZpeCk7DQoJCQl9DQoJCX0NCgl9DQoJKi8NCgkNCgkvKioNCgkqIGVjaG8gdGhlIHN0cnVjdHVyZSBvZiB0aGUgc3Vibm9kZXMgb2Ygb3VyIHRyZWUvbm9kZQ0KCSogQHBhcmFtIHN0cmluZyBwcmVmaXggKHVzZWQgZm9yIHRoZSByZWN1cnNpdmUgb3V0cHV0KQ0KCSogQHJldHVybiB2b2lkDQoJKi8NCglmdW5jdGlvbiBlY2hvU3RydWN0dXJlKCRwcmU9JycpIHsNCgkJZm9yICgkaT0wOyRpPCR0aGlzLT5nZXRMZXZlbCgpOyRpKyspew0KCQkJJHByZS49J3wnOy8vJHRoaXMtPmdldExldmVsKCk7DQoJCX0NCgkJLy8gb3V0cHV0IHRoaXMgbm9kZQ0KCQkvKg0KCQlpZiAoJHRoaXMtPm51bUNoaWxkcmVuKCk+MCl7DQoJCQkkc2lnPScrJzsNCgkJfQ0KCQllbHNlew0KCQkJJHNpZz0nLSc7DQoJCX0NCgkJKi8NCgkJZWNobyAkcHJlLiIrWyIuJHRoaXMtPl9pZC4nXSc7DQoJCWlmIChpc19hcnJheSgkdGhpcy0+ZGF0YSkpew0KCQkJZm9yZWFjaCAoJHRoaXMtPmRhdGEgYXMgJGtleT0+JHZhbHVlKSB7DQoJCSAgICAJCSBlY2hvICcoJy4ka2V5Lid8Jy4kdmFsdWUuJyknOw0KCSAgICAJfQ0KICAgIAl9DQogICAgCQllY2hvICJcbiI7DQoJCWlmICgkdGhpcy0+bnVtQ2hpbGRyZW4oKT4wKXsNCgkJCQ0KCQkJZm9yZWFjaCAoJHRoaXMtPl9jaGlsZHJlbiBhcyAkY2hpbGQpIHsNCgkJICAgIAkkY2hpbGQtPmVjaG9TdHJ1Y3R1cmUoJHByZWZpeCk7DQoJCQl9DQoJCX0NCgl9DQoJLyoNCgkqIA0KCSovDQovKglmdW5jdGlvbiAoKXsNCgl9DQoqLwkNCn0NCg0KPz4NCg==]]></data>
	</file>
</module>
