<?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>babel</name>
	<version>0.4</version>
  <mincmsversion>1.9</mincmsversion>
	<help><![CDATA[PGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+CgkJCQk8cD5UaGlzIG1vZHVsZSBtYW5hZ2VzIG11bHRpcGxlcyBsYW5ndWFnZXMgZm9yIHRoZSBmcm9udGVuZCBhbmQgbmF2aWdhdGlvbiB0aHJvdWdoIHRoZSBsYW5ndWFnZXMuPC9wPgoJCQk8YnIvPjxoMz5Ib3cgRG8gSSBVc2UgSXQ/PC9oMz4KCQkJCTxici8+PGg0PlRyZWUgYnJhbmNoZXM8L2g0PgoJCQkJCTxwPlRoaXMgbW9kdWxlIHVzZXMgYW4gYXBwcm9hY2ggdG8gbXVsdGlsaW5ndWFsIHNpdGVzIGNhbGxlZCAic2VwYXJhdGVkIHRyZWUgYnJhbmNoZXMiLCB3aGljaCBoYXMgYmVlbiBkZXZlbG9wcGVkIGJ5IG90aGVyIGNtc21zIGRldmVsb3BlcnMgKG5hbWVseSBNYXJjb3MgQ3J1eiAtIHNlZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmcvaW5kZXgucGhwL3RvcGljLDE5MDk5Lm1zZzk0NzQ5Lmh0bWwjbXNnOTQ3NDkiIHRhcmdldD0iX2JsYW5rIj50aGlzIHRvcGljPC9hPikuPC9wPjxici8+CgkJCQkJPHA+U2hvdWxkIHlvdSBuZWVkIHRvIHVzZSBpdCBpbiB5b3VyIHRlbXBsYXRlcywgdGhlIGN1cnJlbnQgbGFuZ3VhZ2UgY29kZSB3aWxsIGJlIHN0b3JlZCBpbiB0aGUgJHBhZ2VfbGFuZyB2YXJpYWJsZS4gTW9yZSBpbmZvcm1hdGlvbiBvbiB0aGUgbGFuZ3VhZ2UgY2FuIGFsc28gYmUgcmV0cmlldmVkIHVzaW5nIHRoZSAkcGFnZV9sYW5nX2luZm8gb2JqZWN0ICh3aXRoIHRoZSBzYW1lIGF0dHJpYnV0ZXMgYXMgaW4gdGhlIG1lbnUgdGVtcGxhdGVzKS48L3A+CgkJCQk8aDQ+UGFydCAxOiBzZXR0aW5nIHVwIHRoZSBwYWdlczwvaDQ+CQkJCgkJCQkJPHA+VG8gdXNlIHRoaXMsIHlvdSB3aWxsIGhhdmUgdG8gY3JlYXRlIGRpZmZlcmVudCByb290IHBhZ2VzIGZvciBlYWNoIGxhbmd1YWdlLiBGb3IgZXhhbXBsZTo8L3A+CgkJCQkJPHVsPgoJCQkJCQk8bGk+MS4gRW5nbGlzaDx1bD4KCQkJCQkJCTxsaT4xLjEuIDFzdCBwYWdlPC9saT4KCQkJCQkJCTxsaT4xLjIuIDJuZCBwYWdlPC9saT4KCQkJCQkJCTxsaT4xLjMuIDNyZCBwYWdlPC9saT4KCQkJCQkJPC91bD48L2xpPgoJCQkJCQk8bGk+Mi4gRnJhbiZjY2VkaWw7YWlzPHVsPgoJCQkJCQkJPGxpPjIuMS4gUGFnZSAxPC9saT4KCQkJCQkJCTxsaT4yLjIuIFBhZ2UgMjwvbGk+CgkJCQkJCQk8bGk+Mi4zLiBQYWdlIDM8L2xpPgoJCQkJCQk8L3VsPjwvbGk+CgkJCQkJPC91bD4KCQkJCQk8cD5Sb290IGxhbmd1YWdlIHBhZ2VzICgxLiBhbmQgMi4pIHNob3VsZCBiZSBzZWN0aW9uIGhlYWRlcnMuIFlvdSBjYW4gbmFtZSB0aGVtIChhbGlhcyBhbmQgYWxsKSBhbnkgd2F5IHlvdSB3YW50LjwvcD4KCQkJCQk8cD5JbiBvcmRlciB0byBkaXNwbGF5IG1lbnUgY29ycmVjdGx5ICh0aGF0IGlzLCBub3QgdG8gZGlzcGxheSBsYW5ndWFnZSBoZWFkZXIgcGFnZXMgYW5kIHBhZ2VzIGJlbG9uZ2luZyB0byBvdGhlciBsYW5ndWFnZXMpLCBhbGwgeW91IGhhdmUgdG8gZG8gaXMgYWRkIHRoZSBzdGFydF9sZXZlbD0iMiIgdG8geW91ciBtZW51IHRhZ3M6PGJyLz4KCQkJCQl7bWVudSBzdGFydF9sZXZlbD0iMiJ9PC9wPgoJCQkJPGJyLz48aDQ+UGFydCAyOiBzZXR0aW5nIHVwIHRoZSBsYW5ndWFnZXM8L2g0PgoJCQkJCTxwPk5leHQsIGdvIHRvIEV4dGVuc2lvbnMtJmd0O0JhYmVsOiBNdWx0aWxpbmd1YWwgc2l0ZS4gRm9yIGVhY2ggbGFuZ3VhZ2UsIGNsaWNrIEFkZCBMYW5ndWFnZSBhbmQgZW50ZXIgdGhlIGFwcHJvcHJpYXRlIGluZm9ybWF0aW9ucy4gVGhlICJSb290IHBhZ2UiIHNob3VsZCBiZSB0aGUgc2VjdGlvbiBoZWFkZXJzIHlvdSd2ZSBjcmVhdGVkIGZvciBlYWNoIGxhbmd1YWdlICgxLkVuZ2xpc2gsIDIuRnJhbiZjY2VkaWw7YWlzKS4gVGhlICJEZWZhdWx0IHBhZ2UiIHNob3VsZCBiZSB0aGUgaG9tZSBwYWdlIGZvciBlYWNoIGxhbmd1YWdlLiBBcyBvZiB0aGUgbGFuZ3VhZ2UgY29kZSwgeW91IGNvdWxkIHVzZSBhbnkgNSBjaGFyYWN0ZXJzIGNvZGUsIGJ1dCBpbiBvcmRlciB0byBwcm92aWRlIGdvb2QgY29tcGF0aWJpbGl0eSB3aXRoIHRoZSBtb2R1bGVzLCB5b3Ugc2hvdWxkIHVzZSB0aGUgc2FtZSBhcyB0aGUgY21zICh5b3UgbWF5IHVzZSB0aGUgZHJvcCBkb3duIGxpc3Qgb24gdGhlIHRvcCByaWdodCB0byBwYXJ0aWFsbHkgZmlsbCB0aGUgZm9ybSkuPC9wPgoJCQkJCTxwPiggKldoZW4gcmVhZHksIG1ha2Ugc3VyIHlvdSBhY3RpdmF0ZSBlYWNoIGxhbmd1YWdlLi4uICk8L3A+CgkJCQk8YnIvPjxoND5QYXJ0IDM6IExhbmd1YWdlIG1lbnU8L2g0PgoJCQkJCTxwPlRvIGdldCBhIGxhbmd1YWdlIG1lbnUsIHlvdSBtYXkgdXNlIHRoZSBmb2xsb3dpbmcgdGFnOjxici8+CgkJCQkJe2JhYmVsIGFjdGlvbj0ibWVudSJ9PGJyLz4KCQkJCQlvciwgdG8gdXNlIGEgdGVtcGxhdGUgb3RoZXIgdGhhbiB0aGUgZGVmYXVsdCBvbmU6PGJyLz4KCQkJCQl7YmFiZWwgYWN0aW9uPSJtZW51IiB0ZW1wbGF0ZT0idGVtcGxhdGVfbmFtZSJ9PC9wPgoJCQkJCTxwPlRoZSAic2hvdyIgcGFyYW1ldGVyIGNhbiBiZSB1c2VkIHRvIGNob29zZSB3aGljaCBsYW5ndWFnZXMgc2hvdWxkIGJlIGRpc3BsYXllZC48L3A+CgkJCQk8YnIvPjxoND5QYXJ0IDQgKG9wdGlvbmFsKSA6IEN1c3RvbSBsYW5ndWFnZSBlbnRyaWVzPC9oND4KCQkJCQk8cD5JbiBtb2R1bGVzLCBnbG9iYWwgY29udGVudCBibG9ja3Mgb3Igd2hhdHNvZXZlciwgeW91IHdpbGwgbmVlZCB0byBjaGFuZ2UgdGhlIGNvbnRlbnQgZGVwZW5kaW5nIG9uIHRoZSBsYW5ndWFnZS4gVGhlIHRyYWRpdGlvbmFsIHdheSB0byBkbyB0aGlzIHdhcyB0byBjcmVhdGUgY29uZGl0aW9ucyB3aXRoIHRoZSBwYWdlX2xhbmcgdmFyaWFibGU6PGJyLz4KCQkJCQl7aWYgJHBhZ2VfbGFuZyA9PSAiZW5fVVMifUVuZ2xpc2ggdGV4dHtlbHNlaWYgJHBhZ2VfbGFuZyA9PSAiZnJfRlIifVRleHRlIGVuIGZyYW4mY2NlZGlsO2Fpc3svaWZ9PC9wPgoJCQkJCTxwPldpbGwgeW91IGNhbiBzdGlsbCB1c2UgdGhpcyBtZXRob2Qgd2l0aCB0aGUgbW9kdWxlLCBhbm90aGVyIG1vcmUgY2VudHJhbGl6ZWQgd2F5IGlzIHByb3ZpZGVkLiBJbiB0aGUgYWRtaW4gcGFuZWwgb2YgdGhpcyBtb2R1bGUsIHlvdSB3aWxsIGZpbmQgZm9yIGVhY2ggbGFuZ3VhZ2UgYSBsaW5rIHRvIGVkaXQgdGhlIGxhbmd1YWdlIGVudHJpZXMuIExhbmd1YWdlIGVudHJpZXMgYXJlIHN0cmluZ3MgdGhhdCBleGlzdCBmb3IgZWFjaCBsYW5ndWFnZSBidXQgaG9sZCBkaWZmZXJlbnQgdGV4dCAob3IgaHRtbCkuIFdoYXQgeW91IGNhbiBkbyBpcyB0byBjcmVhdGUgYSBuZXcgbGFuZ3VhZ2UgZW50cnkgKGZvciBleGFtcGxlOiAid2VsY29tZSB0ZXh0IiwgZW50ZXIgaXRzIGNvbnRlbnQgZm9yIGFsbCBsYW5ndWFnZXMsIGFuZCBzaW1wbHkgY2FsbCB0aGUgZW50cnkgd2hlcmV2ZXIgeW91IG5lZWQgaXQgdXNpbmcgdGhlIGRlZmF1bHQgYWN0aW9uOjxici8+CgkJCQkJe2JhYmVsIHNob3c9IndlbGNvbWUgdGV4dCJ9PGJyLz4KCQkJCQlTaG91bGQgeW91IGV2ZXIgbmVlZCB0byBlZGl0IHRoZSBzdHJpbmdzIGFuZCBhZGQgbGFuZ3VhZ2VzLCB5b3Ugd2lsbCBmaW5kIHRoaXMgc29sdXRpb24gdG8gYmUgbW9yZSBoYW5keS4gQnV0IGlmIHlvdSBwcmVmZXIgdGhlIG9sZCBvbmUsIGl0IHdpbGwgd29yayBqdXN0IGFzIG11Y2guPC9wPgoJCQkJCTxwPllvdSBjYW4gYWxzbyBhc3NpZ24gbGFuZ3VhZ2UgZW50cmllcyB0byBzbWFydHkgdmFyaWFibGVzLCB1c2luZzogPGJyLz4KCQkJCQl7YmFiZWwgc2hvdz0id2VsY29tZSB0ZXh0IiBhc3NpZ249IndlbGNvbWUifTxici8+CgkJCQkJb3IsIGlmIHlvdSB3YW50IHRvIGFzc2lnbiBtdWx0aXBsZSBlbnRyaWVzLCBzZXBlcmF0ZSB0aGVtIGJ5IGNvbW1hczo8YnIvPgoJCQkJCXtiYWJlbCBzaG93PSJlbnRyeTEsZW50cnkyLGVudHJ5MyIgYXNzaWduPSJ2YXIxLHZhcjIsdmFyMyJ9PC9wPgoJCQk8YnIvPjxoMz5MYW5ndWFnZSByZWRpcmVjdGlvbiBtZXRob2RzPC9oMz4JCgkJCQk8cD5UaGVyZSBhcmUgdHdvIHBvc3NpYmxlIG1ldGhvZHMgdG8gdGVsbCB0aGUgY21zIHdoaWNoIHBhZ2UgaXMgdGhlIGVxdWl2YWxlbnQgaW4gYW5vdGhlciBsYW5ndWFnZSBvZiBhIGdpdmVuIHBhZ2UuIEJ5IGRlZmF1bHQsIHRoZSBoaXJlcmFyY2h5IHNvbHV0aW9uIGlzIGFjdGl2YXRlZCwgYnV0IHlvdSBjYW4gY2hhbmdlIHRoYXQgaW4gdGhlIHNldHRpbmdzIHRhYi48L3A+CgkJCQk8YnIvPjxoND5NYXJjb3MgQ3J1eidzIGRlZmluaXRpb24gc29sdXRpb248L2g0PgoJCQkJCTxwPjxpPlByb3M6PC9pPiBhbGxvd3MgdGhpZ2h0IGN1c3RvbWl6YXRpb24gYW5kIHBhcnRpYWwgdHJhbnNsYXRpb24uPGJyLz4KCQkJCQk8aT5Db25zOjwvaT4gbmVlZCB0byBzcGVjaWZ5IGxhbmd1YWdlIGFsdGVybmF0aXZlcyBmb3IgZWFjaCBwYWdlLCBhbmQgdG8gdXBkYXRlIGl0IGlmIGFuIGFsaWFzIGNoYW5nZXMuPC9wPgoJCQkJCTxwPkFkZCB0aGUgZm9sbG93aW5nIHRhZyBpbiBlYWNoIG9mIHlvdXIgcGFnZSB0ZW1wbGF0ZXMgOjxici8+CgkJCQkJe2NvbnRlbnQgYmxvY2s9J090aGVyIGxhbmd1YWdlcycgb25lbGluZT0ndHJ1ZScgYXNzaWduPW90aGVyX2xhbmd1YWdlcyB3eXNpd3lnPSdmYWxzZSd9PGJyLz4KCQkJCQlUaGlzIHdpbGwgYWRkIGEgY29udGVudCBibG9jayB0byBiZSBmaWxsZWQgd2hlbiB5b3UgZWRpdCB0aGUgcGFnZS4gV2Ugd2lsbCB1c2UgdGhpcyBibG9jayB0byBkZWZpbmUgdGhlIGVxdWl2YWxlbnRzIGluIG90aGVyIGxhbmd1YWdlcyBmb3IgdGhpcyBwYWdlLCBieSBmaWxsaW5nIGl0IGluIHRoZSBmb2xsb3dpbmcgd2F5Ojxici8+CgkJCQkJImVuX1VTPXBhZ2UxO2ZyX0ZSPXBhZ2UyO2RlX0RFPXBhZ2UzIiAod2l0aG91dCB0aGUgcXVvdGVzIC0gdGhlIG9yZGVyIGRvZXMgbm90IG1hdHRlciwgYnV0IG5vIHNwYWNlcyBhcmUgYWxsb3dlZCk8YnIvPgoJCQkJCXdoZXJlIHBhZ2UxLCBwYWdlMiBhbmQgcGFnZTMgYXJlIHRoZSBwYWdlIGFsaWFzZXMuPC9wPgoJCQkJCTxwPlRvIG1ha2Ugc3VyZSB0aGUgbW9kdWxlcyB1c2VzIHRoaXMgbWV0aG9kLCBtYWtlIHN1cmUgdG8gdW50aWNrIHRoZSAiVXNlIGhpZXJhcmNoeSBmb3IgcmVkaXJlY3Rpb24iIG9wdGlvbiBpbiB0aGUgc2V0dGluZ3MgdGFiLjwvcD4KCQkJCTxici8+PGg0PlRoZSBoaWVyYXJjaHkgc29sdXRpb248L2g0PgoJCQkJCTxwPjxpPlByb3M6PC9pPiBpdCdzIGF1dG9tYXRpYyAtIHlvdSBkb24ndCBoYXZlIHRvIGRvIGFueXRoaW5nLjxici8+CgkJCQkJPGk+Q29uczo8L2k+IHRoZSBwYWdlIHN0cnVjdHVyZSBtdXN0IGJlIGlkZW50aWNhbCBmb3IgZWFjaCBsYW5ndWFnZS48L3A+CgkJCQkJPHA+VGhpcyBzb2x1dGlvbiB1c2VzIHRoZSBwYWdlIGhpZXJhcmNoeSB0byBrbm93IHdoaWNoIHBhZ2VzIGFyZSBlcXVpdmFsZW50LiBJbiBvdXIgZXhhbXBsZSBhYm92ZSwgIjIuMy4gUGFnZSAzIiB3b3VsZCBiZSB0aGUgZnJlbmNoIGVxdWl2YWxlbnQgb2YgIjEuMy4gM3JkIHBhZ2UiLCBiZWNhdXNlIGl0IG9jY3VwaWVzIHRoZSBlcXVpdmFsZW50IHBvc2l0aW9uIGluIHRoZSBmcmVuY2ggYnJhbmNoLjxici8+CgkJCQkJSW4gb3RoZXIgd29yZHMsIHNob3VsZCB0aGUgcGFnZSBiZSBvcmRlcmVkIGRpZmZlcmVudGx5LCBhbGwgd291bGQgYmUgbWVzc2VkIHVwOjwvcD4KCQkJCQk8dWw+CgkJCQkJCTxsaT4xLiBFbmdsaXNoPHVsPgoJCQkJCQkJPGxpPjEuMS4gMXN0IHBhZ2U8L2xpPgoJCQkJCQkJPGxpPjEuMi4gMm5kIHBhZ2U8L2xpPgoJCQkJCQkJPGxpPjEuMy4gM3JkIHBhZ2U8L2xpPgoJCQkJCQk8L3VsPjwvbGk+CgkJCQkJCTxsaT4yLiBGcmFuJmNjZWRpbDthaXM8dWw+CgkJCQkJCQk8bGk+Mi4xLiBQYWdlIDE8L2xpPgoJCQkJCQkJPGxpPjIuMi4gUGFnZSAzPC9saT4KCQkJCQkJCTxsaT4yLjMuIFBhZ2UgMjwvbGk+CgkJCQkJCTwvdWw+PC9saT4KCQkJCQk8L3VsPgoJCQkJCTxwPkhlcmUsICJQYWdlIDIiIG9jY3VwaWVzIHRoZSB0aGlyZCBwb3NpdGlvbiwgc28gaXQgd291bGQgYmUgZGVlbWVkIGVxdWl2YWxlbnQgdG8gdGhlIDNyZCBwYWdlIGluIGVuZ2xpc2guPGJyLz4KCQkJCQlUaGlzIGFsc28gbWVhbnMgdGhhdCBpZiBhbGwgcGFnZXMgZG8gbm90IGV4aXN0IGluIGFsbCBsYW5ndWFnZXMsIHlvdSBoYXZlIHRvIGJlIGNhcmVmdWwuIEZvciBleGFtcGxlOjwvcD4KCQkJCQk8dWw+CgkJCQkJCTxsaT4xLiBFbmdsaXNoPHVsPgoJCQkJCQkJPGxpPjEuMS4gMXN0IHBhZ2U8L2xpPgoJCQkJCQkJPGxpPjEuMi4gMm5kIHBhZ2U8L2xpPgoJCQkJCQkJPGxpPjEuMy4gM3JkIHBhZ2U8L2xpPgoJCQkJCQk8L3VsPjwvbGk+CgkJCQkJCTxsaT4yLiBGcmFuJmNjZWRpbDthaXM8dWw+CgkJCQkJCQk8bGk+Mi4xLiBQYWdlIDI8L2xpPgoJCQkJCQkJPGxpPjIuMi4gUGFnZSAzPC9saT4KCQkJCQkJPC91bD48L2xpPgoJCQkJCTwvdWw+CgkJCQkJPHA+SGVyZSwgIjFzdCBwYWdlIiB3b3VsZCBiZSB0YWtlbiB0byBiZSBlcXVpdmFsZW50IHRvICJQYWdlIDIiIGFuZCAiM3JkIHBhZ2UiIHdvdWxkIGJlIGRlZW1lZCB0byBoYXZlIG5vIHRyYWR1Y3Rpb24sIGFsdGhvdWdoIGl0IGRvZXMuPC9wPgoJCQk8YnIvPjxoMz5Ucm91Ymxlc2hvb3Rpbmc8L2gzPgoJCQkJPHA+UGFnZSBsYW5ndWFnZSBzaG91bGQgYmUgZGV0ZWN0ZWQgYW5kIGFzc2lnbmVkIHRvIHRoZSBzbWFydHkgdmFyaWFibGVzIGJlZm9yZSB0aGUgdGVtcGxhdGUgaXMgcHJvY2Vzc2VkIGJ5IGFuIGV2ZW50IGhhbmRsZXIuIEhvd2V2ZXIsIGl0IGlzIHBvc3NpYmxlIHRoYXQgYXQgc29tZSBwb2ludCBpbiB0aGUgcGFnZSB0ZW1wbGF0ZSB0aGUgcGFnZSBsYW5ndWFnZSBpcyBsb3N0IChlc3BlY2lhbGx5IHNpbmNlIHRoZSBwYWdlIGhlYWQgaXMgcHJvY2Vzc2VkIHNlcGFyYXRseSBmcm9tIHRoZSBwYWdlIGJvZHkpLiBTaG91bGQgaXQgaGFwcGVuZCwgeW91IGNhbiB1c2UgdGhlIHRhZyB7YmFiZWwgYWN0aW9uPSJhc3NpZ24ifSB0byByZWFzc2lnbiBpdC48YnIvPgoJCQkJTm90ZSB0aGF0IHlvdSBtYXkgYWxzbyB1c2Uge2JhYmVsIGFjdGlvbj0iYXV0b19yZWRpcmVjdCIgYXQgdGhlIGJlZ2lubmluZyBvZiB5b3VyIHRlbXBsYXRlIGlmLCBmb3Igc29tZSByZWFzb24sIHJlZGlyZWN0aW9uIGRvZXMgbm90IG9jY3VyIChJIGRvbid0IHNlZSB3aHkgdGhpcyBzaG91bGQgaGFwcGVuIHRob3VnaCkuPC9wPgoJCQk8YnIvPjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPgoJCQkJPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gY3JlYXRlZCBieSBQaWVycmUtTHVjIEdlcm1haW4gKHBsZ2VyKSwgYmFzZWQgb24gYW4gYXBwcm9hY2ggYnkgTWFyY29zIENydXosIGFuZCBpcyByZWxlYXNlZCB1bmRlciB0aGUgR05VIFB1YmxpYyBMaWNlbnNlLjwvcD48YnIvPjxici8+PGgzPlBhcmFtZXRlcnM8L2gzPjx1bD48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBsYW5nPSJlbl9VUyIgLSBQYXJhbWV0ZXIgaXMgdXNlZCB0byBzcGVjaWZ5IHdoYXQgbGFuZ3VhZ2UgdG8gdXNlIGZvciBkaXNwbGF5IG9uIHRoZSBmcm9udGVuZC4gTm90IGFsbCBtb2R1bGVzIHN1cHBvcnQgb3IgbmVlZCB0aGlzLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gYWN0aW9uPSJkZWZhdWx0IiAtIFBvc3NpYmxlIGFjdGlvbnM6ICJkZWZhdWx0IiAoZm9yIHRyYW5zbGF0aW9ucykgb3IgIm1lbnUiLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gc2hvdz0iIiAtIEZvciB0aGUgbWVudSBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB3aGljaCBsYW5ndWFnZXMgdG8gc2hvdyBpbiB0aGUgbWVudSAodXNlIGxhbmd1YWdlIGNvZGUgYW5kIHNlcGFyYXRlIHdpdGggYSBjb21tYSkuIEZvciB0aGUgZGVmYXVsdCBhY3Rpb24sIHRoaXMgaG9sZHMgdGhlIGtleSB0byB0aGUgc3RyaW5nIHRvIGJlIHRyYW5zbGF0ZWQuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiB0ZW1wbGF0ZT0iIiAtIFRlbXBsYXRlIHRvIHVzZSBmb3IgdGhlIG1lbnUuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBhc3NpZ249IiIgLSBJbnN0ZWFkIG9mIGRpc3BsYXlpbmcgdGhlIHJlc3VsdCBpbW1lZGlhdGVseSwgeW91IGNhbiBhc3NpZ24gaXQgdG8gYSBzbWFydHkgdmFyaWFibGUgc3BlY2lmaWVkIHdpdGggdGhlICJhc3NpZ24iIHBhcmFtZXRlci48L2xpPjwvdWw+]]></help>
	<about><![CDATA[PGJyIC8+QXV0aG9yOiBQaWVycmUtTHVjIEdlcm1haW4gKHBsZ2VyKTxiciAvPjxiciAvPlZlcnNpb246IDAuNDxiciAvPjxiciAvPkNoYW5nZSBIaXN0b3J5OjxiciAvPjxici8+PHByZT5WRVJTSU9OIDAuNAotIGFkZGVkIGNvbXBhdGliaWxpdHkgd2l0aCBjbXNtcyAxLjkrCi0gc29sdmVkIGFzc2lnbiBidWcgKCM1Mzg2KQotIHBvc3NpYmlsaXR5IHRvIGRlbGV0ZSBsYW5ndWFnZSBlbnRyaWVzIChidWcgIzQ3NTgpCi0gYWRkZWQgRlIgIzUzODUKClZFUlNJT04gMC4zLjQKLSBzb2x2ZWQgYnVncyAjNDE3MCwjNDE4NywjNDE4OCwjNDE4OSwjNDIwNgoKVkVSU0lPTiAwLjMuMzoKLSBzb2x2ZWQgdGhlIGJsYW5rIHBhZ2UgcHJvYmxlbSBpbiByZWRpcmVjdC5waHAKClZFUlNJT04gMC4zLjI6Ci0gc29sdmVkIGJ1Z3MgIzM5OTMgYW5kICMzOTk0IChUaGFua3MgdG8gSmFuIFdhbGRlY2spCi0gYWRkZWQgZnJlbmNoIGxhbmd1YWdlIGZpbGVzCgpWRVJTSU9OIDAuMy4xOgotIHNvbHZlZCBidWcgIzM5NTkgKGh0dHAgNDA0IGVycm9yIG9uIHJlZGlyZWN0aW9uKSAtIFRoYW5rcyB0byBZdW5nCgpWRVJTSU9OIDAuMzoKLSBjaGFuZ2VkIHRoZSBjb2RlIHRvIG1pbmltaXplIHRoZSBhbW91bnQgb2YgcXVlcmllcwotIHJlcGxhY2VkIGxpbmtzIHdpdGggdXJscwoKVkVSU0lPTiAwLjI6IGZpcnN0IHB1YmxpYyB2ZXJzaW9uCjwvcHJlPjxiciAvPg==]]></about>
	<description><![CDATA[Manage frontend languages and multilingual behaviors.]]></description>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCmlmICghaXNzZXQoJGdDbXMpKSBleGl0Ow0KaWYoISR0aGlzLT5DaGVja1Blcm1pc3Npb24oImFkbWluX2JhYmVsIikpIHsJZWNobyAkdGhpcy0+U2hvd0Vycm9ycygiUGVybWlzc2lvbiBkZW5pZWQuIik7IHJldHVybiBmYWxzZTsgfQ0KDQokYWRtaW50aGVtZSA9ICRnQ21zLT52YXJpYWJsZXNbImFkbWludGhlbWUiXTsNCiRhY3RpdmVfdGFiID0gaXNzZXQoJHBhcmFtc1siYWN0aXZlX3RhYiJdKT8kcGFyYW1zWyJhY3RpdmVfdGFiIl06Imxhbmd1YWdlcyI7DQoNCmVjaG8gJHRoaXMtPlN0YXJ0VGFiSGVhZGVycygpOw0KCWVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcigibGFuZ3VhZ2VzIiwgJHRoaXMtPkxhbmcoImxhbmd1YWdlcyIpLCAibGFuZ3VhZ2VzIiA9PSAkYWN0aXZlX3RhYiA/IHRydWUgOiBmYWxzZSk7DQoJZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCJ0ZW1wbGF0ZXMiLCAkdGhpcy0+TGFuZygidGVtcGxhdGVzIiksICJ0ZW1wbGF0ZXMiID09ICRhY3RpdmVfdGFiID8gdHJ1ZSA6IGZhbHNlKTsNCgllY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoInNldHRpbmdzIiwgJHRoaXMtPkxhbmcoInNldHRpbmdzIiksICJzZXR0aW5ncyIgPT0gJGFjdGl2ZV90YWIgPyB0cnVlIDogZmFsc2UpOw0KZWNobyAkdGhpcy0+RW5kVGFiSGVhZGVycygpOw0KDQplY2hvICR0aGlzLT5TdGFydFRhYkNvbnRlbnQoKTsNCg0KCWVjaG8gJHRoaXMtPlN0YXJ0VGFiKCJsYW5ndWFnZXMiKTsNCg0KCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oImFkZG5ldyIsICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgImVkaXRsYW5nIiwgJHJldHVybmlkLCAkYWRtaW50aGVtZS0+RGlzcGxheUltYWdlKCJpY29ucy9zeXN0ZW0vbmV3b2JqZWN0LmdpZiIsICIiLCIiLCIiLCJzeXN0ZW1pY29uIikuIiAiLiR0aGlzLT5MYW5nKCJhZGRfbGFuZ3VhZ2UiKSxhcnJheSgiaXNfbmV3Ij0+MSkpKTsNCgkJDQoJCSRpdGVtbGlzdCA9ICR0aGlzLT5hZG1pbl9yZXRyaWV2ZV9sYW5ndWFnZXMoJGlkLCAkcmV0dXJuaWQpOw0KCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oIml0ZW1saXN0IiwgJGl0ZW1saXN0KTsNCg0KCQkkYWRtaW5zaG93ID0gYXJyYXkoDQoJCQlhcnJheSgkdGhpcy0+TGFuZygibGFuZ2NvZGUiKSwiY29kZWxpbmsiKSwNCgkJCWFycmF5KCR0aGlzLT5MYW5nKCJuYW1lIiksIm5hbWVsaW5rIiksDQoJCQlhcnJheSgkdGhpcy0+TGFuZygiYWN0aXZlIiksInRvZ2dsZWFjdGl2ZSIpLA0KCQkJYXJyYXkoJHRoaXMtPkxhbmcoImlzZGVmYXVsdCIpLCJ0b2dnbGVkZWZhdWx0IiksDQoJCQlhcnJheSgkdGhpcy0+TGFuZygicmVvcmRlciIpLCJtb3ZlbGlua3MiKSwNCgkJCWFycmF5KCR0aGlzLT5MYW5nKCJhY3Rpb25zIiksImFjdGlvbnMiKQkJDQoJCQkpOw0KCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oImFkbWluc2hvdyIsICRhZG1pbnNob3cpOw0KCQllY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoImFkbWlucGFuZWwudHBsIik7DQoNCgllY2hvICR0aGlzLT5FbmRUYWIoKTsNCg0KDQoJZWNobyAkdGhpcy0+U3RhcnRUYWIoInRlbXBsYXRlcyIpOw0KCQ0KCQlpZihpc3NldCgkcGFyYW1zWyJkZWZhdWx0dGVtcGxhdGUiXSkpCSR0aGlzLT5TZXRQcmVmZXJlbmNlKCJkZWZhdWx0dGVtcGxhdGUiLCRwYXJhbXNbImRlZmF1bHR0ZW1wbGF0ZSJdKTsNCgkJZWNobyAiPGZpZWxkc2V0IHN0eWxlPVwid2lkdGg6IDYwMHB4O1wiPjxsZWdlbmQ+PGI+Ii4kdGhpcy0+TGFuZygiZGVmYXVsdHRlbXBsYXRlIikuIjwvYj48L2xlZ2VuZD4iOw0KCQllY2hvICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAiZGVmYXVsdGFkbWluIiwgJHJldHVybmlkKTsNCgkJZWNobyAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAiYWN0aXZlX3RhYiIsICJ0ZW1wbGF0ZXMiKTsNCgkJJHRlbXBsYXRlbGlzdCA9ICR0aGlzLT5MaXN0VGVtcGxhdGVzKCR0aGlzLT5HZXROYW1lKCkpOw0KCQkkZGVmdHBsID0gJHRoaXMtPkdldFByZWZlcmVuY2UoImRlZmF1bHR0ZW1wbGF0ZSIpOw0KCQkkdHBsb3B0aW9ucyA9IGFycmF5KCk7DQoJCSRpdGVtbGlzdCA9IGFycmF5KCk7DQoJCWZvcmVhY2goJHRlbXBsYXRlbGlzdCBhcyAkb25ldHBsKXsNCgkJICAgJHRwbG9wdGlvbnNbJG9uZXRwbF0gPSAkb25ldHBsOw0KCQkgICAkdHBsID0gbmV3IHN0ZENsYXNzKCk7DQoJCSAgICR0cGwtPmVkaXRsaW5rID0gJHRoaXMtPkNyZWF0ZUxpbmsoICRpZCwgImVkaXRUZW1wbGF0ZSIsICRyZXR1cm5pZCwgJG9uZXRwbCwgYXJyYXkoInRwbG5hbWUiPT4kb25ldHBsKSApOw0KCQkgICAkdHBsLT5kZWxldGVsaW5rID0gKCRvbmV0cGwgPT0gJGRlZnRwbCk/IiI6JHRoaXMtPkNyZWF0ZUxpbmsoICRpZCwgImRlbGV0ZXRwbCIsICRyZXR1cm5pZCwgJGFkbWludGhlbWUtPkRpc3BsYXlJbWFnZSgiaWNvbnMvc3lzdGVtL2RlbGV0ZS5naWYiLCAkdGhpcy0+TGFuZygiZGVsZXRlIiksICIiLCAiIiwgInN5c3RlbWljb24iKSwgYXJyYXkoInRwbG5hbWUiPT4kb25ldHBsKSApOw0KCQkgICBhcnJheV9wdXNoKCRpdGVtbGlzdCwgJHRwbCk7DQoJCX0NCgkJZWNobyAnPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij48cCBjbGFzcz0icGFnZWlucHV0Ij4nLiR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwiZGVmYXVsdHRlbXBsYXRlIiwkdHBsb3B0aW9ucywtMSwkZGVmdHBsKS4iPGJyLz4iLiR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICJzdWJtaXQiLCBsYW5nKCJzdWJtaXQiKSkuJzwvcD48L2Rpdj4NCgkJJzsNCgkJZWNobyAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpOw0KCQllY2hvICI8L2ZpZWxkc2V0Pjxici8+PGJyLz4iOw0KCQkNCgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJpdGVtbGlzdCIsICRpdGVtbGlzdCk7DQoJCSR0aGlzLT5zbWFydHktPmFzc2lnbigiYWRkbmV3IiwgJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAiZWRpdFRlbXBsYXRlIiwgJHJldHVybmlkLCAkYWRtaW50aGVtZS0+RGlzcGxheUltYWdlKCJpY29ucy9zeXN0ZW0vbmV3b2JqZWN0LmdpZiIsICIiLCIiLCIiLCJzeXN0ZW1pY29uIikuIiAiLiR0aGlzLT5MYW5nKCJhZGR0ZW1wbGF0ZSIpKSk7DQoJCSRhZG1pbnNob3cgPSBhcnJheSgJYXJyYXkoJHRoaXMtPkxhbmcoInRlbXBsYXRlIiksICJlZGl0bGluayIpLCBhcnJheSgkdGhpcy0+TGFuZygiYWN0aW9ucyIpLCAiZGVsZXRlbGluayIpCSk7DQoJCSR0aGlzLT5zbWFydHktPmFzc2lnbigiYWRtaW5zaG93IiwgJGFkbWluc2hvdyk7DQoJCWVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgiYWRtaW5wYW5lbC50cGwiKTsNCgkJDQoJZWNobyAkdGhpcy0+RW5kVGFiKCk7DQoNCg0KCWVjaG8gJHRoaXMtPlN0YXJ0VGFiKCJzZXR0aW5ncyIpOw0KDQoJCWVjaG8gJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsICJjaGFuZ2VzZXR0aW5ncyIsICRyZXR1cm5pZCk7DQoNCgkJJG1vZHByZWZzID0gJHRoaXMtPmdldF9tb2RwcmVmcygpOw0KCQlmb3JlYWNoKCRtb2RwcmVmcyBhcyAkb25lcHJlZil7DQoJCQkkdGhlcHJlZiA9ICRvbmVwcmVmWzBdOw0KCQkJZWNobyAnDQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij4nLiR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwgJHRoZXByZWYsIHRydWUsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCR0aGVwcmVmLGZhbHNlKSkuIiAiLiR0aGlzLT5MYW5nKCJwcmVmXyIuJHRoZXByZWYpLic8L3A+DQoJPC9kaXY+JzsNCgkJfQ0KCQllY2hvICI8YnIvPjxwPiIuJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgInN1Ym1pdCIsIGxhbmcoInN1Ym1pdCIpKS4iPC9wPiI7DQoJCWVjaG8gJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKTsNCgllY2hvICR0aGlzLT5FbmRUYWIoKTsNCg0KZWNobyAkdGhpcy0+RW5kVGFiQ29udGVudCgpOw0KDQo/Pg0K]]></data>
	</file>
	<file>
	  <filename>/action.editentries.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYoIWlzc2V0KCRnQ21zKSkJZXhpdDsKaWYoISR0aGlzLT5DaGVja1Blcm1pc3Npb24oImFkbWluX2JhYmVsIikpewoJZWNobyAnPHA+Jy4kdGhpcy0+TGFuZygiZXJyb3JfZGVuaWVkIikuJzwvcD4nOwoJcmV0dXJuIGZhbHNlOwp9CmlmKGlzc2V0KCRwYXJhbXNbImNhbmNlbCJdKSB8fCAhaXNzZXQoJHBhcmFtc1sibGFuZ2NvZGUiXSkgfHwgISR0aGlzLT5pc19sYW5ndWFnZSgkcGFyYW1zWyJsYW5nY29kZSJdLCBmYWxzZSkpCQkkdGhpcy0+UmVkaXJlY3QoJGlkLCAiZGVmYXVsdGFkbWluIiwgJHJldHVybmlkLCBhcnJheSgpKTsKCiR3eXNpd3lnID0gJHRoaXMtPkdldFByZWZlcmVuY2UoInd5c2l3eWciLGZhbHNlKTsKCiRsYW5ndWFnZXMgPSAkdGhpcy0+Z2V0bGFuZ3VhZ2VzKHRydWUpOwokbGFuZ3VhZ2UgPSAkbGFuZ3VhZ2VzWyRwYXJhbXNbImxhbmdjb2RlIl1dOwoKJG5ld2VudHJ5ID0gJzxkaXYgc3R5bGU9ImZsb2F0OiByaWdodDsiPicuJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAiZWRpdGVudHJ5IiwgJHJldHVybmlkLCAkZ0Ntcy0+dmFyaWFibGVzWyJhZG1pbnRoZW1lIl0tPkRpc3BsYXlJbWFnZSgiaWNvbnMvc3lzdGVtL25ld29iamVjdC5naWYiLCAiIiwiIiwiIiwic3lzdGVtaWNvbiIpLiIgIi4kdGhpcy0+TGFuZygiYWRkX2VudHJ5IikpLic8L2Rpdj4nOwplY2hvICRuZXdlbnRyeTsKZWNobyAiPGgxPiIuJGxhbmd1YWdlWyduYW1lJ10uIiAoIi4kbGFuZ3VhZ2VbJ2xhbmdjb2RlJ10uIik8L2gxPjxici8+IjsKCiRkYiA9ICR0aGlzLT5HZXREYigpOwokcXVlcnkgPSAiU0VMRUNUIGxhbmdrZXlzLnN0cmluZ2lkIHN0cmluZ2lkLCBsYW5na2V5cy5jYXB0aW9uIGNhcHRpb24sIGxhbmdlbnRyaWVzLnZhbHVlIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9iYWJlbF9sYW5na2V5cyBsYW5na2V5cyBMRUZUIEpPSU4gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9iYWJlbF9sYW5nZW50cmllcyBsYW5nZW50cmllcyBPTiBsYW5na2V5cy5zdHJpbmdpZCA9IGxhbmdlbnRyaWVzLnN0cmluZ2lkIFdIRVJFIGxhbmdlbnRyaWVzLmxhbmdjb2RlPT8iOwokZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRwYXJhbXNbImxhbmdjb2RlIl0pKTsKJHZhbHVlcyA9IGFycmF5KCk7CiRjYXB0aW9ucyA9IGFycmF5KCk7CndoaWxlKCRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKXsKCSRjYXB0aW9uc1skcm93WyJzdHJpbmdpZCJdXSA9ICRyb3dbImNhcHRpb24iXTsKCSR2YWx1ZXNbJHJvd1sic3RyaW5naWQiXV0gPSAkcm93WyJ2YWx1ZSJdOwp9CgkKaWYoaXNzZXQoJHBhcmFtc1sic3VibWl0Il0pIHx8IGlzc2V0KCRwYXJhbXNbImFwcGx5Il0pKQl7CgkkcXVlcnkgPSAiREVMRVRFIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9iYWJlbF9sYW5nZW50cmllcyBXSEVSRSBsYW5nY29kZT0/IjsKCSRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRwYXJhbXNbImxhbmdjb2RlIl0pKTsKCSR2YWx1ZXMgPSBhcnJheSgpOwoJJHF1ZXJ5ID0gIklOU0VSVCBJTlRPICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfYmFiZWxfbGFuZ2VudHJpZXMgU0VUIGxhbmdjb2RlPT8sIHN0cmluZ2lkPT8sIHZhbHVlPT8iOwoJZm9yZWFjaCgkcGFyYW1zIGFzICRrZXk9PiR2YWx1ZSl7CgkJaWYoc3Vic3RyKCRrZXksMCw2KSA9PSAiZW50cnlfIiAmJiAkdmFsdWUgIT0gIiIpewoJCQkkdmFsdWVzW3N1YnN0cigka2V5LDYpXSA9ICR2YWx1ZTsKCQkJJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJHBhcmFtc1sibGFuZ2NvZGUiXSwgc3Vic3RyKCRrZXksNiksICR2YWx1ZSkpOwoJCX0KCX0KCWlmKGlzc2V0KCRwYXJhbXNbInN1Ym1pdCJdKSl7CgkJJHRoaXMtPlJlZGlyZWN0KCRpZCwgImRlZmF1bHRhZG1pbiIsICRyZXR1cm5pZCwgYXJyYXkoJ21vZHVsZV9tZXNzYWdlJz0+JHRoaXMtPkxhbmcoIm1lc3NhZ2VfbW9kaWZpZWQiKSkpOwoJfWVsc2V7CgkJZWNobyAkdGhpcy0+U2hvd01lc3NhZ2UoJHRoaXMtPkxhbmcoIm1lc3NhZ2VfbW9kaWZpZWQiKSk7Cgl9Cn0JCgokYnV0dG9ucyA9ICc8cD4nLiR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICJzdWJtaXQiLCBsYW5nKCJzdWJtaXQiKSkuJyAnLiR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICJhcHBseSIsIGxhbmcoImFwcGx5IikpLicgJy4kdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAiY2FuY2VsIiwgbGFuZygiY2FuY2VsIikpLic8L3A+JzsKCmVjaG8gJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsICJlZGl0ZW50cmllcyIsICRyZXR1cm5pZCk7CmVjaG8gJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgImxhbmdjb2RlIiwgJHBhcmFtc1sibGFuZ2NvZGUiXSk7CmlmKCEkd3lzaXd5ZykJZWNobyAnCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KZnVuY3Rpb24gaW5zdGFudF90YWJsZV9zZWFyY2god2hhdCl7Cgl2YXIgZGVzdGluYXRpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYmFiZWxfbGFuZ3VhZ2VfZW50cmllcyIpOwoJaWYoIWRlc3RpbmF0aW9uKSByZXR1cm47Cgl2YXIgdGhlcm93cyA9IGRlc3RpbmF0aW9uLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0Ym9keSIpWzBdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0ciIpOwoJZm9yKGk9MDtpPHRoZXJvd3MubGVuZ3RoO2krKyl7CgkJdmFyIHRoZWNvbHVtbiA9IHRoZXJvd3NbaV0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoInRkIilbMF0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoImEiKVswXTsKCQlpZih0aGVjb2x1bW4gJiYgdGhlY29sdW1uLmlubmVySFRNTC50b0xvd2VyQ2FzZSgpLmluZGV4T2Yod2hhdC50b0xvd2VyQ2FzZSgpKSA+PSAwKXsKCQkJdGhlcm93c1tpXS5zdHlsZS5kaXNwbGF5ID0gInRhYmxlLXJvdyI7CgkJfWVsc2V7CgkJCXRoZXJvd3NbaV0uc3R5bGUuZGlzcGxheSA9ICJub25lIjsKCQl9Cgl9Cn0KPC9zY3JpcHQ+Cic7CmVjaG8gJGJ1dHRvbnM7CmVjaG8gJzx0YWJsZSBpZD0iYmFiZWxfbGFuZ3VhZ2VfZW50cmllcyIgY2VsbHNwYWNpbmc9IjAiIGNsYXNzPSJwYWdldGFibGUiPgonOwppZighJHd5c2l3eWcpIGVjaG8gJwo8dGhlYWQ+Cgk8dHI+PHRoPicuJHRoaXMtPkxhbmcoInNlYXJjaHRoaXN0YWJsZSIpLic8aW5wdXQgdHlwZT0idGV4dCIgb25rZXl1cD0iaW5zdGFudF90YWJsZV9zZWFyY2godGhpcy52YWx1ZSk7Ii8+PC90aD48dGg+PC90aD48L3RyPgo8L3RoZWFkPgonOwplY2hvICc8dGJvZHk+CgknOwpmb3JlYWNoKCRjYXB0aW9ucyBhcyAka2V5PT4kbGFiZWwpewoJZWNobyAnPHRyPgoJCTx0ZD4nLiR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgImVkaXRlbnRyeSIsICRyZXR1cm5pZCwgJGxhYmVsLCBhcnJheSgiZW50cnlrZXkiPT4ka2V5KSkuJzwvdGQ+CgkJPHRkPicuJHRoaXMtPkNyZWF0ZVRleHRBcmVhKCR3eXNpd3lnLCRpZCwoaXNzZXQoJHZhbHVlc1ska2V5XSkgJiYgJHZhbHVlc1ska2V5XSk/JHZhbHVlc1ska2V5XToiIiwnZW50cnlfJy4ka2V5KS4nPC90ZD4KCTwvdHI+CgknOwp9CmVjaG8gJwo8L3Rib2R5Pgo8L3RhYmxlPgonOwplY2hvICRidXR0b25zOwplY2hvICRuZXdlbnRyeTsKZWNobyAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpOwoKPz4K]]></data>
	</file>
	<file>
	  <filename>/action.editentry.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYoIWlzc2V0KCRnQ21zKSkJZXhpdDsKaWYoISR0aGlzLT5DaGVja1Blcm1pc3Npb24oImFkbWluX2JhYmVsIikpewoJZWNobyAnPHA+Jy4kdGhpcy0+TGFuZygiZXJyb3JfZGVuaWVkIikuJzwvcD4nOwoJcmV0dXJuIGZhbHNlOwp9CmlmKGlzc2V0KCRwYXJhbXNbImNhbmNlbCJdKSkJCSR0aGlzLT5SZWRpcmVjdCgkaWQsICJkZWZhdWx0YWRtaW4iLCAkcmV0dXJuaWQsIGFycmF5KCkpOwoKCiR3eXNpd3lnID0gJHRoaXMtPkdldFByZWZlcmVuY2UoInd5c2l3eWciLGZhbHNlKTsKCiRkYiA9ICR0aGlzLT5HZXREYigpOwoKJGVudHJ5ID0gaXNzZXQoJHBhcmFtc1siZW50cnlrZXkiXSk/JHBhcmFtc1siZW50cnlrZXkiXTpmYWxzZTsKJGNhcHRpb24gPSBpc3NldCgkcGFyYW1zWyJjYXB0aW9uIl0pPyRwYXJhbXNbImNhcHRpb24iXToiIjsKJHZhbHVlcyA9IGFycmF5KCk7CgppZigkY2FwdGlvbiAhPSAiIiAmJiAoaXNzZXQoJHBhcmFtc1sic3VibWl0Il0pIHx8IGlzc2V0KCRwYXJhbXNbImFwcGx5Il0pKSl7CgkkY2FwdGlvbiA9IHByZWdfcmVwbGFjZSgiL1teYS16QS1aMC05Xy1cc10vIiwgIiIsICRjYXB0aW9uKTsKCWlmKCRlbnRyeSl7CgkJJHF1ZXJ5ID0gIkRFTEVURSBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfYmFiZWxfbGFuZ2VudHJpZXMgV0hFUkUgc3RyaW5naWQ9PyI7CgkJJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGVudHJ5KSk7Cgl9ZWxzZXsKCQkkZW50cnkgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2JhYmVsX2xhbmdlbnRyaWVzX3NlcSIpOwoJCSRxdWVyeSA9ICJJTlNFUlQgSU5UTyAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2JhYmVsX2xhbmdrZXlzIFNFVCBzdHJpbmdpZD0/LCBjYXB0aW9uPT8iOwoJCSRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRlbnRyeSwgJGNhcHRpb24pKTsKCX0KCSRxdWVyeSA9ICJJTlNFUlQgSU5UTyAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2JhYmVsX2xhbmdlbnRyaWVzIFNFVCBzdHJpbmdpZD0/LCBsYW5nY29kZT0/LCB2YWx1ZT0/IjsKCWZvcmVhY2goJHBhcmFtcyBhcyAka2V5PT4kdmFsdWUpewoJCWlmKHN1YnN0cigka2V5LDAsNikgPT0gImVudHJ5XyIgJiYgJHZhbHVlICE9ICIiKXsKCQkJJHZhbHVlc1tzdWJzdHIoJGtleSw2KV0gPSAkdmFsdWU7CgkJCSRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRlbnRyeSwgc3Vic3RyKCRrZXksNiksICR2YWx1ZSkpOwoJCX0KCX0KCWlmKGlzc2V0KCRwYXJhbXNbInN1Ym1pdCJdKSl7CgkJJHRoaXMtPlJlZGlyZWN0KCRpZCwgImRlZmF1bHRhZG1pbiIsICRyZXR1cm5pZCwgYXJyYXkoJ21vZHVsZV9tZXNzYWdlJz0+JHRoaXMtPkxhbmcoIm1lc3NhZ2VfbW9kaWZpZWQiKSkpOwoJfWVsc2V7CgkJZWNobyAkdGhpcy0+U2hvd01lc3NhZ2UoJHRoaXMtPkxhbmcoIm1lc3NhZ2VfbW9kaWZpZWQiKSk7Cgl9CgkKfWVsc2VpZigkZW50cnkpewoJJHF1ZXJ5ID0gIlNFTEVDVCBzdHJpbmdpZCwgY2FwdGlvbiBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfYmFiZWxfbGFuZ2tleXMgV0hFUkUgc3RyaW5naWQ9PyBMSU1JVCAxIjsKCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRlbnRyeSkpOwoJaWYoJGRicmVzdWx0ICYmICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpewoJCSRlbnRyeSA9ICRyb3dbInN0cmluZ2lkIl07CgkJJGNhcHRpb24gPSAkcm93WyJjYXB0aW9uIl07CgkJJHF1ZXJ5ID0gIlNFTEVDVCBsYW5nY29kZSwgdmFsdWUgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2JhYmVsX2xhbmdlbnRyaWVzIFdIRVJFIHN0cmluZ2lkPT8iOwoJCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRlbnRyeSkpOwoJCXdoaWxlKCRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKXsKCQkJJHZhbHVlc1skcm93WyJsYW5nY29kZSJdXSA9ICRyb3dbInZhbHVlIl07CgkJfQoJfQp9CgokbGFuZ3VhZ2VzID0gJHRoaXMtPmdldGxhbmd1YWdlcyh0cnVlKTsKCiRidXR0b25zID0gJzxwPicuJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgInN1Ym1pdCIsIGxhbmcoInN1Ym1pdCIpKS4nICcuJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgImFwcGx5IiwgbGFuZygiYXBwbHkiKSkuJyAnLiR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICJjYW5jZWwiLCBsYW5nKCJjYW5jZWwiKSkuJzwvcD4nOwoKZWNobyAiPGgxPiIuJHRoaXMtPkxhbmcoImVudHJ5IikuIjwvaDE+PGJyLz4iOwoKZWNobyAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwgImVkaXRlbnRyeSIsICRyZXR1cm5pZCk7CgplY2hvICRidXR0b25zOwoKaWYoJGVudHJ5KXsKCWVjaG8gJzxwPicuJHRoaXMtPkxhbmcoImVudHJ5bmFtZSIpLicgOiAnLiRjYXB0aW9uLic8L3A+JzsKCWVjaG8gJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgImVudHJ5a2V5IiwgJGVudHJ5KTsKCWVjaG8gJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgImNhcHRpb24iLCAkY2FwdGlvbik7CgllY2hvICc8cD4nLiR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2RlbGV0ZUVudHJ5JywgJHJldHVybmlkLCAkdGhpcy0+TGFuZygiZGVsZXRlX2VudHJ5IiksIGFycmF5KCdlbnRyeWtleSc9PiRlbnRyeSksICR0aGlzLT5MYW5nKCdwcm9tcHRfZGVsZXRlZW50cnknKSkuJzwvcD4nOwp9ZWxzZXsKCWVjaG8gJzxwPicuJHRoaXMtPkxhbmcoImVudHJ5bmFtZSIpLicqIDogJy4kdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgImNhcHRpb24iLCAkcmV0dXJuaWQsICIiLCA2NCwgNjQpLic8L3A+JzsKfQplY2hvICc8dGFibGUgY2VsbHNwYWNpbmc9IjAiIGNsYXNzPSJwYWdldGFibGUiPic7CmZvcmVhY2goJGxhbmd1YWdlcyBhcyAka2V5PT4kb25lbGFuZyl7CgllY2hvICcKCTx0cj4KCQk8dGQ+Jy4kdGhpcy0+Q3JlYXRlTGluaygkaWQsICJlZGl0ZW50cmllcyIsICRyZXR1cm5pZCwgJG9uZWxhbmdbIm5hbWUiXS4nICgnLiRrZXkuJyknLCBhcnJheSgibGFuZ2NvZGUiPT4ka2V5KSkuJzwvdGQ+CgkJPHRkPicuJHRoaXMtPkNyZWF0ZVRleHRBcmVhKCR3eXNpd3lnLCRpZCwoaXNzZXQoJHZhbHVlc1ska2V5XSkgJiYgJHZhbHVlc1ska2V5XSk/JHZhbHVlc1ska2V5XToiIiwnZW50cnlfJy4ka2V5KS4nPC90ZD4KCTwvdHI+JzsKfQplY2hvICcKPC90Ym9keT4KPC90YWJsZT4KJzsKZWNobyAkYnV0dG9uczsKZWNobyAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpOwoKPz4KCgo=]]></data>
	</file>
	<file>
	  <filename>/action.editlang.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYoIWlzc2V0KCRnQ21zKSkJZXhpdDsKaWYoISR0aGlzLT5DaGVja1Blcm1pc3Npb24oImFkbWluX2JhYmVsIikpewoJZWNobyAnPHA+Jy4kdGhpcy0+TGFuZygiZXJyb3JfZGVuaWVkIikuJzwvcD4nOwoJcmV0dXJuIGZhbHNlOwp9CmlmKGlzc2V0KCRwYXJhbXNbImNhbmNlbCJdKSkJJHRoaXMtPlJlZGlyZWN0KCRpZCwgImRlZmF1bHRhZG1pbiIsICRyZXR1cm5pZCwgYXJyYXkoKSk7CgokYWRtaW50aGVtZSA9ICRnQ21zLT52YXJpYWJsZXNbImFkbWludGhlbWUiXTsKCiRpc19uZXcgPSBpc3NldCgkcGFyYW1zWyJpc19uZXciXSk/JHBhcmFtc1siaXNfbmV3Il06MDsKCiRkYiA9JiAkdGhpcy0+R2V0RGIoKTsKCgovLyBDSEVDSyBJRiBUSEUgRk9STSBJUyBCRUlORyBTVUJNSVRURUQgOgppZiAoaXNzZXQoJHBhcmFtc1sic3VibWl0Il0pIHx8IGlzc2V0KCRwYXJhbXNbImFwcGx5Il0pICkJewoKCS8vIFJFVFJJRVZJTkcgVEhFIEZPUk0gVkFMVUVTCglpZighaXNzZXQoJGl0ZW0pKSAkaXRlbSA9IG5ldyBzdGRDbGFzcygpOwoJJGl0ZW0tPmxhbmdjb2RlID0gJHRoaXMtPnBsY3JlYXRlYWxpYXMoKGlzc2V0KCRwYXJhbXNbImxhbmdjb2RlIl0pPyRwYXJhbXNbImxhbmdjb2RlIl06IiIpKTsKCSRpdGVtLT5yb290X2lkID0gaXNzZXQoJHBhcmFtc1sicm9vdF9pZCJdKT8kcGFyYW1zWyJyb290X2lkIl06ZmFsc2U7CgkkaXRlbS0+ZGVmYXVsdF9pZCA9IGlzc2V0KCRwYXJhbXNbImRlZmF1bHRfaWQiXSk/JHBhcmFtc1siZGVmYXVsdF9pZCJdOiIiOwoJJGl0ZW0tPm5hbWUgPSBpc3NldCgkcGFyYW1zWyJuYW1lIl0pPyRwYXJhbXNbIm5hbWUiXToiIjsKCSRpdGVtLT5tZW51X25hbWUgPSBpc3NldCgkcGFyYW1zWyJtZW51X25hbWUiXSk/JHBhcmFtc1sibWVudV9uYW1lIl06IiI7CgkKCWlmKCEkaXRlbS0+cm9vdF9pZCB8fCAkaXRlbS0+bGFuZ2NvZGUgPT0gIiIgfHwgJGl0ZW0tPm5hbWUgPT0gIiIpewoJCWVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoImVycm9yX21pc3NnaW52YWx1ZSIpKTsKCX1lbHNlewoJCSMjIyMjIyMjIyMjIyBET0lORyBUSEUgVVBEQVRFCgoKCQkvLyBGSUVMRFMgVE8gVVBEQVRFCgkJJHF1ZXJ5ID0gKCRpc19uZXc/IklOU0VSVCBJTlRPICI6IlVQREFURSAiKS5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9iYWJlbF9sYW5ndWFnZXMgU0VUIAoJCQlyb290X2lkPT8sCgkJCWRlZmF1bHRfaWQ9PywKCQkJbmFtZT0/LAoJCQltZW51X25hbWU9PyI7CgkJCQoJCS8vIFZBTFVFUwoJCSR2YWx1ZXMgPSBhcnJheSgkaXRlbS0+cm9vdF9pZCwgJGl0ZW0tPmRlZmF1bHRfaWQsICRpdGVtLT5uYW1lLCAkaXRlbS0+bWVudV9uYW1lLCAkaXRlbS0+bGFuZ2NvZGUpOwoKCQlpZigkaXNfbmV3KXsKCQkJLy8gTkVXIElURU0KCQkJJG5ld19vcmRlciA9ICR0aGlzLT5jb3VudHNvbWV0aGluZygibGFuZ3VhZ2VzIiwibGFuZ2NvZGUiKSArIDE7CgkJCSRxdWVyeSAuPSAiLCBsYW5nY29kZT0/LCBpdGVtX29yZGVyPT8sIGFjdGl2ZT0wIjsKCQkJYXJyYXlfcHVzaCgkdmFsdWVzLCRuZXdfb3JkZXIpOwoJCX1lbHNlewoJCQkvLyBFWElTVElORyBJVEVNCgkJCSRxdWVyeSAuPSAiIFdIRVJFIGxhbmdjb2RlPT8gTElNSVQgMSI7CgkJfQoJCSRkYi0+RXhlY3V0ZSgkcXVlcnksICR2YWx1ZXMpOwoKCQlpZihteXNxbF9lcnJvcigpKXsKCQkJZWNobyAkdGhpcy0+U2hvd0Vycm9ycyhteXNxbF9lcnJvcigpKTsKCQkJZWNobyAkdGhpcy0+U2hvd01lc3NhZ2UoJHRoaXMtPkxhbmcoImVycm9yX2NvdWxkbm90aW5zZXJ0IikpOwoJCX1lbHNlewoJCQkkaXNfbmV3ID0gZmFsc2U7CgkJCWlmKGlzc2V0KCRwYXJhbXNbImFwcGx5Il0pKXsKCQkJCWVjaG8gJHRoaXMtPlNob3dNZXNzYWdlKCR0aGlzLT5MYW5nKCJtZXNzYWdlX21vZGlmaWVkIikpOwoJCQl9ZWxzZXsKCQkJCSR0aGlzLT5SZWRpcmVjdCgkaWQsICJkZWZhdWx0YWRtaW4iLCAkcmV0dXJuaWQsIGFycmF5KCJtb2R1bGVfbWVzc2FnZSIgPT4gJHRoaXMtPkxhbmcoIm1lc3NhZ2VfbW9kaWZpZWQiKSkpOwkKCQkJfQoJCX0KCX0KCS8vIEVORCBPRiBGT1JNIFNVQk1JU1NJT04KfWVsc2VpZihpc3NldCgkcGFyYW1zWyJsYW5nY29kZSJdKSl7CgkkaXRlbSA9ICR0aGlzLT5nZXRfbGFuZ3VhZ2VfZGV0YWlscygkcGFyYW1zWyJsYW5nY29kZSJdKTsKfQoKLyogIyMgUFJFUEFSSU5HIFNNQVJUWSBFTEVNRU5UUyAqLwokaGlkZGVuID0gIiI7CgovLyBwcmVwYXJlIHJvb3QgcGFnZXMgY29tYm8KJGxhbmd1YWdlcyA9ICR0aGlzLT5nZXRsYW5ndWFnZXMoKTsKJGxhbmd1YWdlc19yb290aWRzID0gYXJyYXkoKTsKJGxhbmd1YWdlc19jb2RlcyA9IGFycmF5KCk7CmZvcmVhY2goJGxhbmd1YWdlcyBhcyAkb25lbGFuZyl7CgkkbGFuZ3VhZ2VzX3Jvb3RpZHNbXSA9ICRvbmVsYW5nWyJyb290X2lkIl07CgkkbGFuZ3VhZ2VzX2NvZGVzW10gPSAkb25lbGFuZ1sibGFuZ2NvZGUiXTsKfQokZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoIlNFTEVDVCBjb250ZW50X2lkLCBjb250ZW50X25hbWUgRlJPTSBgIi5jbXNfZGJfcHJlZml4KCkuImNvbnRlbnRgIFdIRVJFIHBhcmVudF9pZCA8IDEiKTsKJG9wdGlvbnMgPSBhcnJheSgpOwp3aGlsZSgkZGJyZXN1bHQgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSl7CglpZighaW5fYXJyYXkoJHJvd1siY29udGVudF9pZCJdLCAkbGFuZ3VhZ2VzX3Jvb3RpZHMpIHx8IChpc3NldCgkaXRlbS0+cm9vdF9pZCkgJiYgJHJvd1siY29udGVudF9pZCJdID09ICRpdGVtLT5yb290X2lkKSkJJG9wdGlvbnNbJHJvd1siY29udGVudF9uYW1lIl1dID0gJHJvd1siY29udGVudF9pZCJdOwp9CiR0aGlzLT5zbWFydHktPmFzc2lnbigicm9vdF9pZF9pbnB1dCIsICR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwicm9vdF9pZCIsJG9wdGlvbnMsLTEsaXNzZXQoJGl0ZW0pPyRpdGVtLT5yb290X2lkOjApKTsKCi8vIHByZXBhcmUgZGVmYXVsdCBwYWdlcyBjb21ibwokY250b3BlcmF0aW9ucyA9ICRnQ21zLT5nZXRDb250ZW50T3BlcmF0aW9ucygpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oImRlZmF1bHRfaWRfaW5wdXQiLCAkY250b3BlcmF0aW9ucy0+Q3JlYXRlSGllcmFyY2h5RHJvcGRvd24oIiIsaXNzZXQoJGl0ZW0tPmRlZmF1bHRfaWQpPyRpdGVtLT5kZWZhdWx0X2lkOiItMSIsJGlkLiJkZWZhdWx0X2lkIikpOwoKaWYoJGlzX25ldyl7CglpZihmdW5jdGlvbl9leGlzdHMoJ2dldF9sYW5ndWFnZV9saXN0JykpewoJCSRsYW5nbGlzdCA9IGdldF9sYW5ndWFnZV9saXN0KCk7Cgl9ZWxzZXsKCQkvLyBvbGRlciBjbXNtcwoJCWdsb2JhbCAkbmxzOwoJCSRsYW5nbGlzdCA9ICRubHNbImxhbmd1YWdlIl07Cgl9CgkkcG9zc2libGVsYW5ncyA9IGFycmF5KCItIj0+Ii8iKTsKCWFzb3J0KCRsYW5nbGlzdCk7Cglmb3JlYWNoICgkbGFuZ2xpc3QgYXMgJGtleT0+JHZhbCkgewoJCSRsbmFtZSA9IGV4cGxvZGUoJygnLCAkdmFsKTsKCQlpZihjb3VudCgkbG5hbWUpID09IDEpewoJCQkkbG5hbWUgPSAkdmFsOwoJCX1lbHNlewoJCQkkbG5hbWUgPSB0cmltKHRyaW0oJGxuYW1lWzFdLCcpJykpOwoJCX0KCQlpZighaW5fYXJyYXkoJGtleSwkbGFuZ3VhZ2VzX2NvZGVzKSkJJHBvc3NpYmxlbGFuZ3NbJGtleS4iIC8gIi4kdmFsXSA9ICRrZXkuJy8nLiRsbmFtZTsKCX0KCSRsYW5nc2VsZWN0ID0gJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCJsYW5nc2VsZWN0IiwkcG9zc2libGVsYW5ncyk7CgkkbGFuZ2NvZGVfaW5wdXQgPSAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAiaXNfbmV3IiwgMSkuJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsImxhbmdjb2RlIiwiIiwxNSw4KTsKfWVsc2V7CgkkbGFuZ2NvZGVfaW5wdXQgPSAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAiaXNfbmV3IiwgMCkuJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgImxhbmdjb2RlIiwgJGl0ZW0tPmxhbmdjb2RlKS4kaXRlbS0+bGFuZ2NvZGU7CgkkbGFuZ3NlbGVjdCA9IGZhbHNlOwp9CiR0aGlzLT5zbWFydHktPmFzc2lnbigibGFuZ3NlbGVjdCIsICRsYW5nc2VsZWN0KTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJsYW5nY29kZV9pbnB1dCIsICRsYW5nY29kZV9pbnB1dCk7CgokdGhpcy0+c21hcnR5LT5hc3NpZ24oIm5hbWVfaW5wdXQiLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwibmFtZSIsaXNzZXQoJGl0ZW0pPyRpdGVtLT5uYW1lOiIiLDUwLDY0KSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbigibWVudV9uYW1lX2lucHV0IiwgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsIm1lbnVfbmFtZSIsaXNzZXQoJGl0ZW0pPyRpdGVtLT5tZW51X25hbWU6IiIsNTAsNjQpKTsKCi8vIHByZXBhcmluZyBsYWJlbHMKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJuYW1lX2xhYmVsIiwgJHRoaXMtPkxhbmcoIm5hbWUiKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbigibWVudV9uYW1lX2xhYmVsIiwgJHRoaXMtPkxhbmcoIm1lbnVfbmFtZSIpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJyb290X2lkX2xhYmVsIiwgJHRoaXMtPkxhbmcoInJvb3RfaWQiKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbigiZGVmYXVsdF9pZF9sYWJlbCIsICR0aGlzLT5MYW5nKCJkZWZhdWx0X2lkIikpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oImxhbmdjb2RlX2xhYmVsIiwgJHRoaXMtPkxhbmcoImxhbmdjb2RlX3Byb21wdCIpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJsYW5nc2VsZWN0X2xhYmVsIiwgJHRoaXMtPkxhbmcoImxhbmdzZWxlY3QiKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbigicGxpZCIsICRpZCk7CgokdGhpcy0+c21hcnR5LT5hc3NpZ24oImVkaXR0aXRsZSIsICRpc19uZXc/JHRoaXMtPkxhbmcoImFkZF9sYW5ndWFnZSIpOiR0aGlzLT5MYW5nKCJlZGl0X2xhbmd1YWdlIikpOwoKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJzdWJtaXQiLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAic3VibWl0IiwgbGFuZygic3VibWl0IikpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJhcHBseSIsIChpc3NldCgkaXRlbSkgJiYgaXNzZXQoJGl0ZW0tPmlkKSk/JHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgImFwcGx5IiwgbGFuZygiYXBwbHkiKSk6IiIpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oImNhbmNlbCIsICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICJjYW5jZWwiLCBsYW5nKCJjYW5jZWwiKSkpOwoKCi8vIERJU1BMQVlJTkcKZWNobyAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwgImVkaXRsYW5nIiwgJHJldHVybmlkKTsKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCJlZGl0bGFuZy50cGwiKTsKZWNobyAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpOwoKPz4K]]></data>
	</file>
	<file>
	  <filename>/action.editTemplate.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgppZiggaXNzZXQoJHBhcmFtc1snY2FuY2VsJ10pICkJJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCwgYXJyYXkoJ2FjdGl2ZV90YWInPT4ndGVtcGxhdGVzJykgKTsKCiR0cGxjb250ZW50ID0gJyc7CmlmKCAoIGlzc2V0KCRwYXJhbXNbJ3N1Ym1pdCddKSB8fCBpc3NldCgkcGFyYW1zWydhcHBseSddKSApICYmIGlzc2V0KCRwYXJhbXNbJ3RwbG5hbWUnXSkgKXsKCSR0cGxjb250ZW50ID0gJHBhcmFtc1sndHBsY29udGVudCddOwoJaWYoJHBhcmFtc1sndHBsbmFtZSddICE9ICcnKXsKCQlpZihpc3NldCgkcGFyYW1zWydpc25ldyddKSkJJHBhcmFtc1sndHBsbmFtZSddID0gbXVuZ2Vfc3RyaW5nX3RvX3VybCgkcGFyYW1zWyd0cGxuYW1lJ10sIGZhbHNlKTsKCQlpZigkdGhpcy0+U2V0VGVtcGxhdGUoJHBhcmFtc1sndHBsbmFtZSddLCRwYXJhbXNbJ3RwbGNvbnRlbnQnXSwkdGhpcy0+R2V0TmFtZSgpKSk7CgkJaWYoaXNzZXQoJHBhcmFtc1snc3VibWl0J10pKXsKCQkJJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCwgYXJyYXkoIm1vZHVsZV9tZXNzYWdlIiA9PiAkdGhpcy0+TGFuZygibWVzc2FnZV9tb2RpZmllZCIpLCAnYWN0aXZlX3RhYic9Pid0ZW1wbGF0ZXMnKSApOwoJCX1lbHNlewoJCQllY2hvICR0aGlzLT5TaG93TWVzc2FnZSgkdGhpcy0+TGFuZygibWVzc2FnZV9tb2RpZmllZCIpKTsKCQl9Cgl9ZWxzZXsKCQllY2hvICc8ZGl2IGNsYXNzPSJwYWdlZXJyb3Jjb250YWluZXIiPicuJHRoaXMtPkxhbmcoJ2Vycm9yX21pc3NnaW52YWx1ZScpLic8L2Rpdj4nOwoJfQp9ZWxzZWlmKCBpc3NldCgkcGFyYW1zWyd0cGxuYW1lJ10pICl7CgkkdHBsY29udGVudCA9ICR0aGlzLT5HZXRUZW1wbGF0ZSggJHBhcmFtc1sndHBsbmFtZSddLCAkdGhpcy0+R2V0TmFtZSgpICk7Cn0KCmVjaG8gJzxoMT4nLiR0aGlzLT5MYW5nKCJlZGl0dGVtcGxhdGUiKS4nPC9oMT4nOwplY2hvICc8ZGl2IHN0eWxlPSJmbG9hdDogcmlnaHQ7Ij4nLiR0aGlzLT5MYW5nKCJ0ZW1wbGF0ZWhlbHAiKS4nPC9kaXY+JzsKZWNobyAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwgImVkaXRUZW1wbGF0ZSIsICRyZXR1cm5pZCk7CmVjaG8gJwk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+Jy4kdGhpcy0+TGFuZygnbmFtZScpLicgOjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij4nOwppZihpc3NldCgkcGFyYW1zWyd0cGxuYW1lJ10pICYmICRwYXJhbXNbJ3RwbG5hbWUnXSAhPSAnJyl7CgllY2hvICRwYXJhbXNbJ3RwbG5hbWUnXS4kdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAidHBsbmFtZSIsICRwYXJhbXNbJ3RwbG5hbWUnXSk7Cn1lbHNlewoJZWNobyAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwndHBsbmFtZScsJycsMzAsNjQpOwp9CmVjaG8gJzwvcD4KCTwvZGl2PgonOwplY2hvICcJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPicuJHRoaXMtPkxhbmcoJ3RlbXBsYXRlJykuJyA6PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPicuJHRoaXMtPkNyZWF0ZVRleHRBcmVhKGZhbHNlLCRpZCwkdHBsY29udGVudCwndHBsY29udGVudCcpLic8L3A+Cgk8L2Rpdj4KJzsKZWNobyAnPHA+Jy4kdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAic3VibWl0IiwgbGFuZygic3VibWl0IikpLicgJy4kdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAiYXBwbHkiLCBsYW5nKCJhcHBseSIpKS4nICcuJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgImNhbmNlbCIsIGxhbmcoImNhbmNlbCIpKS4nPC9wPic7CmlmKCFpc3NldCgkcGFyYW1zWyJ0cGxuYW1lIl0pIHx8ICRwYXJhbXNbInRwbG5hbWUiXSA9PSAnJykJZWNobyAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAiaXNuZXciLCAxKTsKZWNobyAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpOwoKPz4K]]></data>
	</file>
	<file>
	  <filename>/action.menu.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CmlmKCEkdGhpcy0+Y3VycmVudF9sYW5nY29kZSkJJHRoaXMtPmFzc2lnbl9wYWdlX2xhbmcoKTsKaWYoISR0aGlzLT5jdXJyZW50X2xhbmdjb2RlKQlyZXR1cm4gZmFsc2U7CS8vIG5vIHBhZ2UgbGFuZyBhc3NpZ25lZC4uLiBtYXliZSB3ZSBhcmVuJ3QgaW4gYSBwYWdlIHRoYXQgaGFzIGEgcGFydGljdWxhciBsYW5ndWFnZT8KJGN1cnJlbnRfbGFuZ3VhZ2UgPSAkdGhpcy0+Y3VycmVudF9sYW5nY29kZTsKCiRzaG93biA9IChpc3NldCgkcGFyYW1zWyJzaG93Il0pICYmICRwYXJhbXNbInNob3ciXSAhPSAiIik/ZXhwbG9kZSgiLCIsJHBhcmFtc1sic2hvdyJdKTpmYWxzZTsKCiR1c2VfY29va2llcyA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCJjb29raWVzX2F1dG9yZWRpcmVjdF9hbGwiLCBmYWxzZSkgfHwgJHRoaXMtPkdldFByZWZlcmVuY2UoImNvb2tpZXNfYXV0b3JlZGlyZWN0X2hvbWUiLGZhbHNlKTsKJGRlZmF1bHRfaGlkZSA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCJkZWZhdWx0X2hpZGUiLCBmYWxzZSk7CiR1c2VfcGFnZV90aXRsZSA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCJ1c2VfcGFnZV90aXRsZSIsZmFsc2UpOwoKJGxhbmd1YWdlcyA9ICR0aGlzLT5nZXRsYW5ndWFnZXMoKTsKCiRsaW5rcyA9ICR0aGlzLT5nZXRfdXJscygpOwoKJGl0ZW1saXN0ID0gYXJyYXkoKTsKJHNob3dfY3VycmVudCA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCJjdXJyZW50X2xpbmsiLGZhbHNlKTsKCmZvcmVhY2goJGxhbmd1YWdlcyBhcyAkbGFuZ3VhZ2UpewoJaWYoKCEkc2hvd24gfHwgaW5fYXJyYXkoJGxhbmd1YWdlLT5sYW5nY29kZSwgJHNob3duKSkgJiYgKCRzaG93X2N1cnJlbnQgfHwgJGxhbmd1YWdlWydsYW5nY29kZSddICE9ICRjdXJyZW50X2xhbmd1YWdlKSl7CgkJJGl0ZW0gPSBuZXcgU3RkQ2xhc3MoKTsKCQkkaXRlbS0+Y29kZSA9ICRsYW5ndWFnZVsnbGFuZ2NvZGUnXTsKCQkkaXRlbS0+bmFtZSA9ICRsYW5ndWFnZVsnbmFtZSddOwoJCSRpdGVtLT5tZW51X25hbWUgPSAkbGFuZ3VhZ2VbJ21lbnVfbmFtZSddOwoJCSRpdGVtLT5pc19jdXJyZW50ID0gKCRsYW5ndWFnZVsnbGFuZ2NvZGUnXSA9PSAkY3VycmVudF9sYW5ndWFnZSk7CgkJJGl0ZW0tPnBhZ2VfbWVudV90ZXh0ID0gaXNzZXQoJGxpbmtzWyRpdGVtLT5jb2RlXSk/JGxpbmtzWyRpdGVtLT5jb2RlXVsnbWVudV90ZXh0J106IiI7CgkJJGl0ZW0tPnBhZ2VfbmFtZSA9IGlzc2V0KCRsaW5rc1skaXRlbS0+Y29kZV0pPyRsaW5rc1skaXRlbS0+Y29kZV1bJ25hbWUnXToiIjsKCQkkaXRlbS0+dXJsID0gKGlzc2V0KCRsaW5rc1skaXRlbS0+Y29kZV0pICYmICRsaW5rc1skaXRlbS0+Y29kZV0pPyRsaW5rc1skaXRlbS0+Y29kZV1bJ3VybCddLiRnQ21zLT5jb25maWdbJ3BhZ2VfZXh0ZW5zaW9uJ106ZmFsc2U7CgkJaWYoJGl0ZW0tPnVybCAmJiAkdXNlX2Nvb2tpZXMpCQkkaXRlbS0+dXJsID0gJGdDbXMtPmNvbmZpZ1sncm9vdF91cmwnXS4nL21vZHVsZXMvYmFiZWwvcmVkaXJlY3QucGhwP25ld2xhbmc9Jy4kaXRlbS0+Y29kZS4nJmFtcDtuZXd1cmw9Jy4kaXRlbS0+dXJsOwoKCQlpZigkaXRlbS0+dXJsIHx8ICEkZGVmYXVsdF9oaWRlIHx8ICRpdGVtLT5pc19jdXJyZW50KQlhcnJheV9wdXNoKCRpdGVtbGlzdCwgJGl0ZW0pOwoJfQp9CiR0aGlzLT5zbWFydHktPmFzc2lnbigibGFuZ3VhZ2VzIiwgJGl0ZW1saXN0KTsKCmlmIChpc3NldCgkcGFyYW1zWyJ0ZW1wbGF0ZSJdKSAmJiAoJHRlbXBsYXRlID0gJHRoaXMtPkdldFRlbXBsYXRlKCRwYXJhbXNbInRlbXBsYXRlIl0pKSl7CgllY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkdGVtcGxhdGUpOwp9ZWxzZXsKCSR0ZW1wbGF0ZSA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCJkZWZhdWx0dGVtcGxhdGUiLCJkZWZhdWx0Iik7CglpZigkdGVtcGxhdGUpCWVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhYmFzZSgkdGVtcGxhdGUpOwkKfQoK]]></data>
	</file>
	<file>
	  <filename>/action.movesomething.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCmlmICghaXNzZXQoJGdDbXMpKSBleGl0Ow0KDQokbmV3cGFyYW1zID0gaXNzZXQoJHBhcmFtc1sibGV2ZWxuYW1lIl0pP2FycmF5KCJhY3RpdmVfdGFiIj0+JHBhcmFtc1sibGV2ZWxuYW1lIl0pOmFycmF5KCk7DQoNCmlmICghaXNzZXQoJHBhcmFtc1sibW92ZSJdKSB8fCAhaXNzZXQoJHBhcmFtc1sibGFuZ2NvZGUiXSkgfHwgIWlzc2V0KCRwYXJhbXNbImN1cnJlbnRvcmRlciJdKSApDQokdGhpcy0+UmVkaXJlY3QoJGlkLCAiZGVmYXVsdGFkbWluIiwgJHJldHVybmlkLCAkbmV3cGFyYW1zKTsNCg0KJGRiID0mICR0aGlzLT5HZXREYigpOw0KJGRidGFibGUgPSBjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9iYWJlbF9sYW5ndWFnZXMiOw0KJGN1cnJlbnRvcmRlciA9ICRwYXJhbXNbImN1cnJlbnRvcmRlciJdOw0KJGxhbmdjb2RlID0gJHBhcmFtc1sibGFuZ2NvZGUiXTsNCg0Kc3dpdGNoKCRwYXJhbXNbIm1vdmUiXSl7DQoJDQoJY2FzZSAiZGVsZXRlIjoNCgkJJHF1ZXJ5ID0gIkRFTEVURSBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfbGFuZ2VudHJpZXMgV0hFUkUgbGFuZ2NvZGU9PyI7DQoJCSRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRsYW5nY29kZSkpOw0KCQkkcXVlcnkgPSAiREVMRVRFIEZST00gJGRidGFibGUgV0hFUkUgbGFuZ2NvZGUgPSA/IExJTUlUIDEiOw0KCQkkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkbGFuZ2NvZGUpKTsNCg0KCQkvLyBVUERBVEUgVEhFIE9SREVSIE9GIFRIRSBJVEVNUw0KCQkkcXVlcnkgPSAiVVBEQVRFICRkYnRhYmxlIFNFVCBpdGVtX29yZGVyPShpdGVtX29yZGVyLTEpIFdIRVJFIGl0ZW1fb3JkZXIgPiA/ICI7DQoJCSRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRjdXJyZW50b3JkZXIpKTsNCgkJDQoJCSRuZXdwYXJhbXNbIm1vZHVsZV9tZXNzYWdlIl0gPSAkdGhpcy0+bGFuZygibWVzc2FnZV9kZWxldGVkIik7DQoJCWJyZWFrOwkNCg0KCWNhc2UgInVwIjoNCgkJaWYgKCRjdXJyZW50b3JkZXIgIT0gMSl7DQoJCQkkcXVlcnkgPSAiVVBEQVRFICRkYnRhYmxlIFNFVCBpdGVtX29yZGVyPShpdGVtX29yZGVyKzEpIFdIRVJFIGl0ZW1fb3JkZXIgPSA/IExJTUlUIDE7IjsNCgkJCSRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRjdXJyZW50b3JkZXItMSkpOw0KCQkJJHF1ZXJ5ID0gIlVQREFURSAkZGJ0YWJsZSBTRVQgaXRlbV9vcmRlcj0oaXRlbV9vcmRlci0xKSBXSEVSRSBsYW5nY29kZSA9ID8gTElNSVQgMTsiOw0KCQkJJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGxhbmdjb2RlKSk7DQoJCX0NCgkJYnJlYWs7DQoJCQ0KCWNhc2UgImRvd24iOg0KCQkkcXVlcnkgPSAiVVBEQVRFICRkYnRhYmxlIFNFVCBpdGVtX29yZGVyPShpdGVtX29yZGVyLTEpIFdIRVJFIGl0ZW1fb3JkZXIgPSA/IExJTUlUIDE7IjsNCgkJaWYoICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRjdXJyZW50b3JkZXIrMSkpICl7DQoJCQkkcXVlcnkgPSAiVVBEQVRFICRkYnRhYmxlIFNFVCBpdGVtX29yZGVyPShpdGVtX29yZGVyKzEpIFdIRVJFIGxhbmdjb2RlID0gPyBMSU1JVCAxOyI7DQoJCQkkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkbGFuZ2NvZGUpKTsNCgkJfQ0KCQlicmVhazsNCn0NCg0KJHRoaXMtPlJlZGlyZWN0KCRpZCwgImRlZmF1bHRhZG1pbiIsICRyZXR1cm5pZCk7DQo/Pg0K]]></data>
	</file>
	<file>
	  <filename>/babel.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE1vZHVsZTogQmFiZWw6IE11bHRpbGluZ3VhbCBzaXRlDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDggYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQ0KIyBUaGlzIHByb2plY3QicyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZw0KIw0KIyBUaGlzIG1vZHVsZSB3YXMgY3JlYXRlZCB3aXRoIENUTE1vZHVsZU1ha2VyIDEuOC44LjINCiMgQ1RMTW9kdWxlTWFrZXIgd2FzIGNyZWF0ZWQgYnkgUGllcnJlLUx1YyBHZXJtYWluIGFuZCBpcyByZWxlYXNlZCB1bmRlciBHTlUNCiMgaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9jdGxtb2R1bGVtYWtlcg0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkNCiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkNCiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3INCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4NCiMNCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsDQojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mDQojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUNCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4NCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UNCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUNCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0ENCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTA0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KY2xhc3MgYmFiZWwgZXh0ZW5kcyBDTVNNb2R1bGUNCnsNCgl2YXIgJGF2YWlsYWJsZV9sYW5ndWFnZXMgPSBmYWxzZTsNCgl2YXIgJGFsbF9sYW5ndWFnZXMgPSBmYWxzZTsNCgl2YXIgJGN1cnJlbnRfbGFuZ3VhZ2UgPSBmYWxzZTsNCgl2YXIgJGN1cnJlbnRfbGFuZ2NvZGUgPSBmYWxzZTsNCgl2YXIgJGN1cnJlbnRfbGFuZ2VudHJpZXMgPSBmYWxzZTsNCg0KCWZ1bmN0aW9uIEdldE5hbWUoKQ0KCXsNCgkJcmV0dXJuICJiYWJlbCI7DQoJfQ0KDQoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCgkgICBHZXRGcmllbmRseU5hbWUoKQ0KCSAgIFRoaXMgY2FuIHJldHVybiBhbnkgc3RyaW5nLCBwcmVmZXJhYmx5IGEgbG9jYWxpemVkIG5hbWUNCgkgICBvZiB0aGUgbW9kdWxlLiBUaGlzIGlzIHRoZSBuYW1lIHRoYXQicyBzaG93biBpbiB0aGUNCgkgICBBZG1pbiBNZW51cyBhbmQgc2VjdGlvbiBwYWdlcyAoaWYgdGhlIG1vZHVsZSBoYXMgYW4gYWRtaW4NCgkgICBjb21wb25lbnQpLg0KCSAgIA0KCSAgIFNlZSB0aGUgbm90ZSBvbiBsb2NhbGl6YXRpb24gYXQgdGhlIHRvcCBvZiB0aGlzIGZpbGUuDQoJICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLw0KCWZ1bmN0aW9uIEdldEZyaWVuZGx5TmFtZSgpDQoJew0KCQlyZXR1cm4gJHRoaXMtPkxhbmcoImZyaWVuZGx5bmFtZSIpOw0KCX0NCgkNCgkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KCSAgIEdldFZlcnNpb24oKQ0KCSAgIFRoaXMgY2FuIHJldHVybiBhbnkgc3RyaW5nLCBwcmVmZXJhYmx5IGEgbnVtYmVyIG9yDQoJICAgc29tZXRoaW5nIHRoYXQgbWFrZXMgc2Vuc2UgZm9yIGRlc2lnbmF0aW5nIGEgdmVyc2lvbi4NCgkgICBUaGUgQ01TIHdpbGwgdXNlIHRoaXMgdG8gaWRlbnRpZnkgd2hldGhlciBvciBub3QNCgkgICB0aGUgaW5zdGFsbGVkIHZlcnNpb24gb2YgdGhlIG1vZHVsZSBpcyBjdXJyZW50LCBhbmQNCgkgICB0aGUgbW9kdWxlIHdpbGwgdXNlIGl0IHRvIGZpZ3VyZSBvdXQgaG93IHRvIHVwZ3JhZGUNCgkgICBpdHNlbGYgaWYgcmVxdWVzdGVkLgkgICANCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovDQoJZnVuY3Rpb24gR2V0VmVyc2lvbigpDQoJew0KCQlyZXR1cm4gIjAuNCI7DQoJfQ0KDQoNCgkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KCSAgIEdldERlcGVuZGVuY2llcygpDQoJICAgWW91ciBtb2R1bGUgbWF5IG5lZWQgYW5vdGhlciBtb2R1bGUgdG8gYWxyZWFkeSBiZSBpbnN0YWxsZWQNCgkgICBiZWZvcmUgeW91IGNhbiBpbnN0YWxsIGl0Lg0KCSAgIFRoaXMgbWV0aG9kIHJldHVybnMgYSBsaXN0IG9mIHRob3NlIGRlcGVuZGVuY2llcyBhbmQNCgkgICBtaW5pbXVtIHZlcnNpb24gbnVtYmVycyB0aGF0IHRoaXMgbW9kdWxlIHJlcXVpcmVzLg0KCSAgIA0KCSAgIEl0IHNob3VsZCByZXR1cm4gYW4gaGFzaCwgZWcuDQoJICAgcmV0dXJuIGFycmF5KCJzb21lbW9kdWxlIj0+IjEuMCIsICJvdGhlcm1vZHVsZSI9PiIxLjEiKTsNCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovDQoJZnVuY3Rpb24gR2V0RGVwZW5kZW5jaWVzKCkNCgl7DQoJCXJldHVybiBhcnJheSgpOw0KCX0NCg0KCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoJICAgR2V0SGVscCgpDQoJICAgVGhpcyByZXR1cm5zIEhUTUwgaW5mb3JtYXRpb24gb24gdGhlIG1vZHVsZS4NCgkgICBUeXBpY2FsbHksIHlvdSJsbCB3YW50IHRvIGluY2x1ZGUgaW5mb3JtYXRpb24gb24gaG93IHRvDQoJICAgdXNlIHRoZSBtb2R1bGUuDQoJICAgDQoJICAgU2VlIHRoZSBub3RlIG9uIGxvY2FsaXphdGlvbiBhdCB0aGUgdG9wIG9mIHRoaXMgZmlsZS4NCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovDQoJZnVuY3Rpb24gR2V0SGVscCgpDQoJew0KCQlyZXR1cm4gJHRoaXMtPkxhbmcoImhlbHAiKTsNCgl9DQoNCgkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KCSAgIEdldEF1dGhvcigpDQoJICAgVGhpcyByZXR1cm5zIGEgc3RyaW5nIHRoYXQgaXMgcHJlc2VudGVkIGluIHRoZSBNb2R1bGUNCgkgICBBZG1pbiBpZiB5b3UgY2xpY2sgb24gdGhlICJBYm91dCIgbGluay4NCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovDQoJZnVuY3Rpb24gR2V0QXV0aG9yKCkNCgl7DQoJCXJldHVybiAiUGllcnJlLUx1YyBHZXJtYWluIChwbGdlcikiOw0KCX0NCg0KDQoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCgkgICBHZXRBdXRob3JFbWFpbCgpDQoJICAgVGhpcyByZXR1cm5zIGEgc3RyaW5nIHRoYXQgaXMgcHJlc2VudGVkIGluIHRoZSBNb2R1bGUNCgkgICBBZG1pbiBpZiB5b3UgY2xpY2sgb24gdGhlICJBYm91dCIgbGluay4gSXQgaGVscHMgdXNlcnMNCgkgICBvZiB5b3VyIG1vZHVsZSBnZXQgaW4gdG91Y2ggd2l0aCB5b3UgdG8gc2VuZCBidWcgcmVwb3J0cywNCgkgICBxdWVzdGlvbnMsIGNhc2VzIG9mIGJlZXIsIGFuZC9vciBsYXJnZSBzdW1zIG9mIG1vbmV5Lg0KCSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8NCglmdW5jdGlvbiBHZXRBdXRob3JFbWFpbCgpDQoJew0KCQlyZXR1cm4gIiI7DQoJfQ0KDQogICAgZnVuY3Rpb24gR2V0Q2hhbmdlTG9nKCkNCiAgICB7DQoJCSRmaWxlcGF0aCA9IGRpcm5hbWUoX19GSUxFX18pLkRJUkVDVE9SWV9TRVBBUkFUT1IuImNoYW5nZWxvZy50eHQiOw0KCQlpZihmaWxlX2V4aXN0cygkZmlsZXBhdGgpKXsNCgkJCSRmaGFuZGxlID0gZm9wZW4oJGZpbGVwYXRoLCAncisnKTsNCgkJCSRjb250ZW50ID0gZnJlYWQoJGZoYW5kbGUsIGZpbGVzaXplKCRmaWxlcGF0aCkpOw0KCQkJcmV0dXJuICc8YnIvPjxwcmU+Jy4kY29udGVudC4nPC9wcmU+JzsNCgkJfWVsc2V7DQoJCQlyZXR1cm4gIiI7DQoJCX0NCiAgICB9DQoNCgkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KCSAgIElzUGx1Z2luTW9kdWxlKCkNCgkgICBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdHJ1ZSBvciBmYWxzZSwgZGVwZW5kaW5nIHVwb24NCgkgICB3aGV0aGVyIHVzZXJzIGNhbiBpbmNsdWRlIHRoZSBtb2R1bGUgaW4gYSBwYWdlIG9yDQoJICAgdGVtcGxhdGUgdXNpbmcgYSBzbWFydHkgdGFnIG9mIHRoZSBmb3JtDQoJICAge2Ntc19tb2R1bGUgbW9kdWxlPSJQcm9kIiBwYXJhbTE9dmFsIHBhcmFtMj12YWwuLi59DQoJICAgDQoJICAgSWYgeW91ciBtb2R1bGUgZG9lcyBub3QgZ2V0IGluY2x1ZGVkIGluIHBhZ2VzIG9yDQoJICAgdGVtcGxhdGVzLCByZXR1cm4gImZhbHNlIiBoZXJlLg0KCSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8NCglmdW5jdGlvbiBJc1BsdWdpbk1vZHVsZSgpDQoJew0KCQlyZXR1cm4gdHJ1ZTsNCgl9DQoNCg0KCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoJICAgSGFzQWRtaW4oKQ0KCSAgIFRoaXMgZnVuY3Rpb24gcmV0dXJucyBhIGJvb2xlYW4gdmFsdWUsIGRlcGVuZGluZyBvbg0KCSAgIHdoZXRoZXIgeW91ciBtb2R1bGUgYWRkcyBhbnl0aGluZyB0byB0aGUgQWRtaW4gYXJlYSBvZg0KCSAgIHRoZSBzaXRlLiBGb3IgdGhlIHJlc3Qgb2YgdGhlc2UgY29tbWVudHMsIEkibGwgYmUgY2FsbGluZw0KCSAgIHRoZSBhZG1pbiBwYXJ0IG9mIHlvdXIgbW9kdWxlIHRoZSAiQWRtaW4gUGFuZWwiIGZvcg0KCSAgIHdhbnQgb2YgYSBiZXR0ZXIgdGVybS4NCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovDQoJZnVuY3Rpb24gSGFzQWRtaW4oKSB7CXJldHVybiB0cnVlOwl9DQoJZnVuY3Rpb24gR2V0QWRtaW5TZWN0aW9uKCkge3JldHVybiAiZXh0ZW5zaW9ucyI7fQ0KCWZ1bmN0aW9uIEdldEFkbWluRGVzY3JpcHRpb24oKSB7cmV0dXJuICR0aGlzLT5MYW5nKCJhZG1pbmRlc2NyaXB0aW9uIik7fQ0KDQoJZnVuY3Rpb24gVmlzaWJsZVRvQWRtaW5Vc2VyKCl7DQoJCXJldHVybiAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCJhZG1pbl9iYWJlbCIpOw0KCX0NCgkJDQoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCgkgICBTZXRQYXJhbWV0ZXJzKCkNCgkgICBUaGlzIGZ1bmN0aW9uIGVuYWJsZXMgeW91IHRvIGNyZWF0ZSBtYXBwaW5ncyBmb3INCgkgICB5b3VyIG1vZHVsZSB3aGVuIHVzaW5nICJQcmV0dHkgVXJscyIuDQoJICAgDQoJICAgVHlwaWNhbGx5LCBtb2R1bGVzIGNyZWF0ZSBpbnRlcm5hbCBsaW5rcyB0aGF0IGhhdmUNCgkgICBiaWcgdWdseSBzdHJpbmdzIGFsb25nIHRoZSBsaW5lcyBvZjoNCgkgICBpbmRleC5waHA/bWFjdD1Nb2ROYW1lLGNudG50MDEsYWN0aW9uTmFtZSwwJmNudG50MDFwYXJhbTE9MSZjbnRudDAxcGFyYW0yPTImY250bnQwMXJldHVybmlkPTMNCgkgICANCgkgICBZb3UgbWlnaHQgcHJlZmVyIHRoZXNlIHRvIGxvb2sgbGlrZToNCgkgICAvTW9kdWxlRnVuY3Rpb24vMi8zDQoJICAgDQoJICAgVG8gZG8gdGhpcywgeW91IGhhdmUgdG8gcmVnaXN0ZXIgcm91dGVzIGFuZCBtYXANCgkgICB5b3VyIHBhcmFtZXRlcnMgaW4gYSB3YXkgdGhhdCB0aGUgQVBJIHdpbGwgYmUgYWJsZQ0KCSAgIHRvIHVuZGVyc3RhbmQuDQoNCgkgICBBbHNvIG5vdGUgdGhhdCBhbnkgY2FsbHMgdG8gQ3JlYXRlTGluayB3aWxsIG5lZWQgdG8NCgkgICBiZSB1cGRhdGVkIHRvIHBhc3MgdGhlIHByZXR0eSB1cmwgcGFyYW1ldGVyLg0KCSAgIA0KCSAgIFNpbmNlIHRoZSBTa2VsZXRvbiBkb2VzbiJ0IHJlYWxseSBjcmVhdGUgYW55IGxpbmtzLA0KCSAgIHRoZSBzZWN0aW9uIGJlbG93IGlzIGNvbW1lbnRlZCBvdXQsIGJ1dCB5b3UgY2FuDQoJICAgdXNlIGl0IHRvIGZpZ3VyZSBvdXQgcHJldHR5IHVybHMuDQoJICAgDQoJICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8NCglmdW5jdGlvbiBTZXRQYXJhbWV0ZXJzKCkNCgl7DQoJCSR0aGlzLT5SZWdpc3Rlck1vZHVsZVBsdWdpbigpOw0KCQkkdGhpcy0+UmVnaXN0ZXJFdmVudHMoKTsNCgkJJHRoaXMtPlJlc3RyaWN0VW5rbm93blBhcmFtcygpOw0KCQkNCgkJJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcigiYWN0aW9uIiwgImRlZmF1bHQiLCAkdGhpcy0+TGFuZygicGhlbHBfYWN0aW9uIikpOw0KCQkkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCJzaG93IiwgIiIsICR0aGlzLT5MYW5nKCJwaGVscF9zaG93IikpOw0KCQkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgic2hvdyIsQ0xFQU5fU1RSSU5HKTsNCgkJJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcigidGVtcGxhdGUiLCAiIiwgJHRoaXMtPkxhbmcoInBoZWxwX3RlbXBsYXRlIikpOw0KCQkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgidGVtcGxhdGUiLENMRUFOX1NUUklORyk7DQoJCSR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoImFzc2lnbiIsICIiLCAkdGhpcy0+TGFuZygicGhlbHBfYXNzaWduIikpOw0KCQkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgiYXNzaWduIixDTEVBTl9TVFJJTkcpOw0KCQkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgibmV3bGFuZyIsQ0xFQU5fU1RSSU5HKTsNCgkJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoIm5ld3VybCIsQ0xFQU5fU1RSSU5HKTsNCgl9DQoJDQoJZnVuY3Rpb24gSGFuZGxlc0V2ZW50cygpew0KCQlyZXR1cm4gdHJ1ZTsNCgl9DQoJZnVuY3Rpb24gUmVnaXN0ZXJFdmVudHMoKXsNCgkJJHRoaXMtPkFkZEV2ZW50SGFuZGxlciggJ0NvcmUnLCAnQ29udGVudFByZUNvbXBpbGUnLCBmYWxzZSApOw0KCX0NCglmdW5jdGlvbiBEb0V2ZW50KCRvcmlnaW5hdG9yLCAkZXZlbnRuYW1lLCAmJHBhcmFtcyl7DQoJCWlmKCRldmVudG5hbWUgPT0gJ0NvbnRlbnRQcmVDb21waWxlJyl7DQoJCQkkdGhpcy0+YXNzaWduX3BhZ2VfbGFuZygpOw0KCQkJJHRoaXMtPmF1dG9fcmVkaXJlY3QoKTsNCgkJfQ0KCX0NCglmdW5jdGlvbiBJbnN0YWxsUG9zdE1lc3NhZ2UoKQ0KCXsNCgkJcmV0dXJuICR0aGlzLT5MYW5nKCJwb3N0aW5zdGFsbCIpOw0KCX0NCglmdW5jdGlvbiBVbmluc3RhbGxQb3N0TWVzc2FnZSgpDQoJew0KCQlyZXR1cm4gJHRoaXMtPkxhbmcoInBvc3R1bmluc3RhbGwiKTsNCgl9DQoJZnVuY3Rpb24gVW5pbnN0YWxsUHJlTWVzc2FnZSgpDQoJew0KCQlyZXR1cm4gJHRoaXMtPkxhbmcoInJlYWxseV91bmluc3RhbGwiKTsNCgl9DQoNCg0KCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoJICAgSW5zdGFsbCgpDQoJICAgV2hlbiB5b3VyIG1vZHVsZSBpcyBpbnN0YWxsZWQsIHlvdSBtYXkgbmVlZCB0byBkbyBzb21lDQoJICAgc2V0dXAuIFR5cGljYWwgdGhpbmdzIHRoYXQgaGFwcGVuIGhlcmUgYXJlIHRoZSBjcmVhdGlvbg0KCSAgIGFuZCBwcmVwb3B1bGF0aW9uIG9mIGRhdGFiYXNlIHRhYmxlcywgZGF0YWJhc2Ugc2VxdWVuY2VzLA0KCSAgIHBlcm1pc3Npb25zLCBwcmVmZXJlbmNlcywgZXRjLg0KCSAgIAkgICANCgkgICBGb3IgaW5mb3JtYXRpb24gb24gdGhlIGNyZWF0aW9uIG9mIGRhdGFiYXNlIHRhYmxlcywNCgkgICBjaGVjayBvdXQgdGhlIEFET0RCIERhdGEgRGljdGlvbmFyeSBwYWdlIGF0DQoJICAgaHR0cDovL3BocGxlbnMuY29tL2xlbnMvYWRvZGIvZG9jcy1kYXRhZGljdC5odG0NCgkgICANCgkgICBUaGlzIGZ1bmN0aW9uIGNhbiByZXR1cm4gYSBzdHJpbmcgaW4gY2FzZSBvZiBhbnkgZXJyb3IsDQoJICAgYW5kIENNUyB3aWxsIG5vdCBjb25zaWRlciB0aGUgbW9kdWxlIGluc3RhbGxlZC4NCgkgICBTdWNjZXNzZnVsIGluc3RhbGxzIHNob3VsZCByZXR1cm4gRkFMU0Ugb3Igbm90aGluZyBhdCBhbGwuDQoJICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLw0KCWZ1bmN0aW9uIEluc3RhbGwoKQ0KCXsNCgkJaWYoZnVuY3Rpb25fZXhpc3RzKCdjbXNtcycpKXsgJGdDbXMgPSBjbXNtcygpOyB9ZWxzZXsgZ2xvYmFsICRnQ21zOwl9DQoJCXJlcXVpcmUgIm1ldGhvZC5pbnN0YWxsLnBocCI7DQoJfQ0KDQoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCgkgICBVbmluc3RhbGwoKQ0KCSAgIFNvbWV0aW1lcywgYW4gZXhjZXB0aW9uYWxseSB1bmVubGlnaHRlbmVkIG9yIGlnbm9yYW50DQoJICAgYWRtaW4gd2lsbCB3aXNoIHRvIHVuaW5zdGFsbCB5b3VyIG1vZHVsZS4gV2hpbGUgaXQNCgkgICB3b3VsZCBiZSBiZXN0IHRvIGxheSBpbnRvIHRoZXNlIGlkaW90cyB3aXRoIGEgY2x1ZXN0aWNrLA0KCSAgIHdlIHdpbGwgZG8gdGhlIG1hZ25hbmltb3VzIHRoaW5nIGFuZCByZW1vdmUgdGhlIG1vZHVsZQ0KCSAgIGFuZCBjbGVhbiB1cCB0aGUgZGF0YWJhc2UsIHBlcm1pc3Npb25zLCBhbmQgcHJlZmVyZW5jZXMNCgkgICB0aGF0IGFyZSBzcGVjaWZpYyB0byBpdC4NCgkgICBUaGlzIGlzIHRoZSBtZXRob2Qgd2hlcmUgd2UgZG8gdGhpcy4NCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovDQoJZnVuY3Rpb24gVW5pbnN0YWxsKCkNCgl7DQoJCWdsb2JhbCAkZ0NtczsNCgkJcmVxdWlyZSAibWV0aG9kLnVuaW5zdGFsbC5waHAiOw0KCX0NCg0KDQovKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCk5PVCBQQVJUIE9GIFRIRSBOT1JNQUwgTU9EVUxFIEFQSQ0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovDQoNCg0KCWZ1bmN0aW9uIGdldF9tb2RwcmVmcygpew0KCQkvLyBhcnJheSgncHJlZmVyZW5jZV9uYW1lJyx2YWx1ZV9vbl9pbnN0YWxsKTsNCgkJcmV0dXJuIGFycmF5KA0KCQkJCWFycmF5KCdhdXRvcmVkaXJlY3RfaG9tZScsdHJ1ZSksDQoJCQkJYXJyYXkoJ2F1dG9yZWRpcmVjdF9hbGwnLGZhbHNlKSwJCQ0KCQkJCWFycmF5KCdjb29raWVzX2F1dG9yZWRpcmVjdF9ob21lJyx0cnVlKSwNCgkJCQlhcnJheSgnY29va2llc19hdXRvcmVkaXJlY3RfYWxsJyxmYWxzZSksDQoJCQkJYXJyYXkoJ2hpZXJhcmNoeV9yZWRpcmVjdCcsdHJ1ZSksDQoJCQkJYXJyYXkoJ2N1cnJlbnRfbGluaycsZmFsc2UpLA0KCQkJCWFycmF5KCdkZWZhdWx0X2hpZGUnLHRydWUpLA0KCQkJCWFycmF5KCdkZWZhdWx0X3RyYW5zbGF0ZScsdHJ1ZSksDQoJCQkJYXJyYXkoJ2hpZGVfbWlzc2luZ2VudHJpZXMnLGZhbHNlKSwNCgkJCQlhcnJheSgnd3lzaXd5ZycsZmFsc2UpDQoJCQkJKTsNCgl9DQoNCglmdW5jdGlvbiBwbGNyZWF0ZWFsaWFzKCRuYW1lKXsNCgkJLy8gZmlsdGVyIGtleXMgZm9yIGxhbmd1YWdlIGVudHJpZXMNCgkJLy8gYXMgYSBzdWdnZXN0aW9uIGZyb20gQU1ULCB0aGUgZmlyc3QgcGFydCBkZWFscyB3aXRoIHNtYXJ0IHF1b3Rlcw0KIAkJJHNlYXJjaCA9IGFycmF5KGNocigweGUyKSAuIGNocigweDgwKSAuIGNocigweDk4KSwNCgkJCQkJCSAgY2hyKDB4ZTIpIC4gY2hyKDB4ODApIC4gY2hyKDB4OTkpLA0KCQkJCQkJICBjaHIoMHhlMikgLiBjaHIoMHg4MCkgLiBjaHIoMHg5YyksDQoJCQkJCQkgIGNocigweGUyKSAuIGNocigweDgwKSAuIGNocigweDlkKSwNCgkJCQkJCSAgY2hyKDB4ZTIpIC4gY2hyKDB4ODApIC4gY2hyKDB4OTMpLA0KCQkJCQkJICBjaHIoMHhlMikgLiBjaHIoMHg4MCkgLiBjaHIoMHg5NCkpOw0KIAkJJG5hbWUgPSBzdHJfcmVwbGFjZSgkc2VhcmNoLCAiIiwgJG5hbWUpOw0KIAkJLy8gdGhlIHNlY29uZCBwYXJ0IHVzZXMgdGhlIGNtcyB2ZXJzaW9uDQogCQkkYWxpYXMgPSBtdW5nZV9zdHJpbmdfdG9fdXJsKCRuYW1lLCBmYWxzZSk7DQogCQlyZXR1cm4gJGFsaWFzOw0KCX0gDQoNCglmdW5jdGlvbiBEb0FjdGlvbigkYWN0aW9uLCAkaWQsICRwYXJhbXMsICRyZXR1cm5pZD0tMSl7DQoJCWlmKGZ1bmN0aW9uX2V4aXN0cygnY21zbXMnKSl7DQoJCQkkZ0NtcyA9IGNtc21zKCk7DQoJCX1lbHNlew0KCQkJZ2xvYmFsICRnQ21zOw0KCQl9DQoJCQ0KCQlzd2l0Y2goJGFjdGlvbil7DQoJCQljYXNlICJhdXRvX3JlZGlyZWN0IjoNCgkJCQlpZighJHRoaXMtPmN1cnJlbnRfbGFuZ2NvZGUpCSR0aGlzLT5hc3NpZ25fcGFnZV9sYW5nKCk7DQoJCQkJJHRoaXMtPmF1dG9fcmVkaXJlY3QoKTsNCgkJCWNhc2UgImFzc2lnbiI6DQoJCQkJaWYoJHRoaXMtPmN1cnJlbnRfbGFuZ2NvZGUpew0KCQkJCQlnbG9iYWwgJHNtYXJ0eTsNCgkJCQkJJHNtYXJ0eS0+YXNzaWduKCdwYWdlX2xhbmcnLCR0aGlzLT5jdXJyZW50X2xhbmdjb2RlKTsNCgkJCQkJJHNtYXJ0eS0+YXNzaWduKCdwYWdlX2xhbmdfaW5mbycsJHRoaXMtPmN1cnJlbnRfbGFuZ3VhZ2UpOw0KCQkJCX1lbHNlew0KCQkJCQkkdGhpcy0+YXNzaWduX3BhZ2VfbGFuZygpOw0KCQkJCX0NCgkJCQlicmVhazsNCgkJCWNhc2UgInNpdGVtYXAiOg0KCQkJCWlmKCEkdGhpcy0+Y3VycmVudF9sYW5ndWFnZSkgcmV0dXJuIGZhbHNlOw0KCQkJCSRoaWVyTWFuYWdlciA9ICRnQ21zLT5HZXRIaWVyYXJjaHlNYW5hZ2VyKCk7DQoJCQkJJGhpZXJhcmNoeSA9ICRoaWVyTWFuYWdlci0+Z2V0Tm9kZUJ5SWQoJHRoaXMtPmN1cnJlbnRfbGFuZ3VhZ2VbJ3Jvb3RfaWQnXSk7DQoNCgkJCQlpZiAoJGhpZXJhcmNoeSAmJiAkaGllcmFyY2h5LT5oYXNDaGlsZHJlbigpKXsNCgkJCQkJZWNobyAnPHVsIGNsYXNzPSJzaXRlbWFwIj4nOw0KCQkJCQkkcGFnZWxpc3QgPSBhcnJheSgpOw0KCQkJCQlmb3JlYWNoICgkaGllcmFyY2h5LT5nZXRDaGlsZHJlbigpIGFzICRub2RlKQkkdGhpcy0+ZWNob19saW5lKCRub2RlKTsNCgkJCQkJZWNobyAnPC91bD4nOw0KCQkJCX0JDQoJCQkJYnJlYWs7CQkNCgkJCWNhc2UgImRlZmF1bHRhZG1pbiI6DQoJCQkJcmVxdWlyZSAiYWN0aW9uLmRlZmF1bHRhZG1pbi5waHAiOw0KCQkJCWJyZWFrOw0KCQkJY2FzZSAibWVudSI6DQoJCQkJcmVxdWlyZSAiYWN0aW9uLm1lbnUucGhwIjsNCgkJCQlicmVhazsNCgkJCWNhc2UgIm1vdmVzb21ldGhpbmciOg0KCQkJCXJlcXVpcmUgImFjdGlvbi5tb3Zlc29tZXRoaW5nLnBocCI7DQoJCQkJYnJlYWs7DQoJCQljYXNlICJlZGl0bGFuZyI6DQoJCQkJcmVxdWlyZSAiYWN0aW9uLmVkaXRsYW5nLnBocCI7DQoJCQkJYnJlYWs7DQoJCQljYXNlICJlZGl0ZW50cmllcyI6DQoJCQkJcmVxdWlyZSAiYWN0aW9uLmVkaXRlbnRyaWVzLnBocCI7DQoJCQkJYnJlYWs7DQoJCQljYXNlICJlZGl0ZW50cnkiOg0KCQkJCXJlcXVpcmUgImFjdGlvbi5lZGl0ZW50cnkucGhwIjsNCgkJCQlicmVhazsNCgkJCWNhc2UgImVkaXRUZW1wbGF0ZSI6DQoJCQkJcmVxdWlyZSAiYWN0aW9uLmVkaXRUZW1wbGF0ZS5waHAiOw0KCQkJCWJyZWFrOw0KCQkJY2FzZSAiZGVsZXRlRW50cnkiOg0KCQkJCWlmKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCJhZG1pbl9iYWJlbCIpKQlyZXR1cm4gZmFsc2U7DQoJCQkJJGVudHJ5ID0gKGlzc2V0KCRwYXJhbXNbJ2VudHJ5a2V5J10pICYmICRwYXJhbXNbJ2VudHJ5a2V5J10gIT0gJycpPyRwYXJhbXNbJ2VudHJ5a2V5J106ZmFsc2U7DQoJCQkJaWYoJGVudHJ5KXsNCgkJCQkJJGRiID0gJHRoaXMtPkdldERiKCk7DQoJCQkJCSRxdWVyeSA9ICJERUxFVEUgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2JhYmVsX2xhbmdlbnRyaWVzIFdIRVJFIHN0cmluZ2lkPT8iOw0KCQkJCQkkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkZW50cnkpKTsNCgkJCQkJJHF1ZXJ5ID0gIkRFTEVURSBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfYmFiZWxfbGFuZ2tleXMgV0hFUkUgc3RyaW5naWQ9PyI7DQoJCQkJCSRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRlbnRyeSkpOwkJCQkJDQoJCQkJCSR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAkcmV0dXJuaWQsIGFycmF5KCdtb2R1bGVfbWVzc2FnZSc9PiR0aGlzLT5MYW5nKCdtZXNzYWdlX2RlbGV0ZWQnKSkpOw0KCQkJCX1lbHNlew0KCQkJCQkkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkKTsNCgkJCQl9DQoJCQkJYnJlYWs7DQoJCQljYXNlICJ0b2dnbGVhY3RpdmUiOg0KCQkJCWlmKGlzc2V0KCRwYXJhbXNbImxhbmdjb2RlIl0pKXsNCgkJCQkJJG5ld3ZhbCA9IGlzc2V0KCRwYXJhbXNbIm5ld3ZhbCJdKT8kcGFyYW1zWyJuZXd2YWwiXTowOw0KCQkJCQkkZGIgPSAkdGhpcy0+R2V0RGIoKTsNCgkJCQkJJHF1ZXJ5ID0gIlVQREFURSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2JhYmVsX2xhbmd1YWdlcyBTRVQgYWN0aXZlPT8gV0hFUkUgbGFuZ2NvZGU9PyBMSU1JVCAxIjsNCgkJCQkJJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJG5ld3ZhbCwkcGFyYW1zWyJsYW5nY29kZSJdKSk7DQoJCQkJfQ0KCQkJCSR0aGlzLT5SZWRpcmVjdCgkaWQsICJkZWZhdWx0YWRtaW4iLCAkcmV0dXJuaWQpOw0KCQkJCWJyZWFrOw0KCQkJY2FzZSAidG9nZ2xlZGVmYXVsdCI6DQoJCQkJaWYoaXNzZXQoJHBhcmFtc1sibGFuZ2NvZGUiXSkpCSR0aGlzLT5TZXRQcmVmZXJlbmNlKCJkZWZhdWx0X2xhbmd1YWdlIiwkcGFyYW1zWyJsYW5nY29kZSJdKTsNCgkJCQkkdGhpcy0+UmVkaXJlY3QoJGlkLCAiZGVmYXVsdGFkbWluIiwgJHJldHVybmlkKTsNCgkJCQlicmVhazsNCgkJCWNhc2UgImNoYW5nZXNldHRpbmdzIjoNCgkJCQkkbW9kcHJlZnMgPSAkdGhpcy0+Z2V0X21vZHByZWZzKCk7DQoJCQkJZm9yZWFjaCgkbW9kcHJlZnMgYXMgJHByZWYpCSR0aGlzLT5TZXRQcmVmZXJlbmNlKCRwcmVmWzBdLCBpc3NldCgkcGFyYW1zWyRwcmVmWzBdXSkpOw0KCQkJCSR0aGlzLT5SZWRpcmVjdCgkaWQsICJkZWZhdWx0YWRtaW4iLCAkcmV0dXJuaWQsIGFycmF5KCJhY3RpdmVfdGFiIj0+InNldHRpbmdzIiwgIm1vZHVsZV9tZXNzYWdlIj0+JHRoaXMtPkxhbmcoIm1lc3NhZ2VfbW9kaWZpZWQiKSkpOw0KCQkJCWJyZWFrOw0KCQkJY2FzZSAiZGVsZXRldHBsIjoNCgkJCQkkbmV3cGFyYW1zID0gYXJyYXkoImFjdGl2ZV90YWIiPT4idGVtcGxhdGVzIik7DQoJCQkgICAgaWYoaXNzZXQoJHBhcmFtc1sidHBsbmFtZSJdKSAmJiAkdGhpcy0+RGVsZXRlVGVtcGxhdGUoJHBhcmFtc1sidHBsbmFtZSJdKSkJICAgJG5ld3BhcmFtc1sibW9kdWxlX21lc3NhZ2U+Il0gPSAkdGhpcy0+TGFuZygibWVzc2FnZV9tb2RpZmllZCIpOw0KCQkJCSR0aGlzLT5SZWRpcmVjdCgkaWQsICJkZWZhdWx0YWRtaW4iLCAkcmV0dXJuaWQsICRuZXdwYXJhbXMpOw0KCQkJCWJyZWFrOw0KDQoJCQljYXNlICJkZWZhdWx0IjoNCgkJCWRlZmF1bHQ6DQoJCQkJaWYoaXNzZXQoJHBhcmFtc1sic2hvdyJdKSl7DQoJCQkJCSRvdXRwdXQgPSAkdGhpcy0+cmV0cmlldmVfdHJhbnNsYXRpb24oJHBhcmFtc1sic2hvdyJdKTsNCgkJCQkJaWYoIWlzX2FycmF5KCRvdXRwdXQpKQkkb3V0cHV0ID0gYXJyYXkoJG91dHB1dCk7DQoJCQkJCWlmKGlzc2V0KCRwYXJhbXNbImFzc2lnbiJdKSAmJiAkcGFyYW1zWyJhc3NpZ24iXSAhPSAiIil7DQoJCQkJCQkka2V5cyA9IGV4cGxvZGUoJywnLCRwYXJhbXNbImFzc2lnbiJdKTsNCgkJCQkJCWlmKGNvdW50KCRrZXlzKSAhPSBjb3VudCgkb3V0cHV0KSl7DQoJCQkJCQkJZWNobyAnDQotLSBCYWJlbCBmYWlsZWQgdG8gYXNzaWduOiB2YXIgY291bnQgZG9lcyBub3QgbWF0Y2ggLS0NCic7DQoJCQkJCQl9ZWxzZXsNCgkJCQkJCQkkc21hcnR5ID0mICRnQ21zLT5HZXRTbWFydHkoKTsNCgkJCQkJCQkkaSA9IDA7DQoJCQkJCQkJd2hpbGUoaXNzZXQoJG91dHB1dFskaV0pKXsNCgkJCQkJCQkJJHNtYXJ0eS0+YXNzaWduKCRrZXlzWyRpXSwkb3V0cHV0WyRpXSk7DQoJCQkJCQkJCSRpKys7DQoJCQkJCQkJfQ0KCQkJCQkJfQ0KCQkJCQl9ZWxzZXsNCgkJCQkJCWVjaG8gaW1wbG9kZSgkb3V0cHV0KTsNCgkJCQkJfQ0KCQkJCX0NCgkJCQlicmVhazsNCgkJfQ0KDQoJfQ0KCQ0KCWZ1bmN0aW9uIGNvdW50c29tZXRoaW5nKCR0YWJsZW5hbWUsJHdoYXQ9ImlkIiwkd2hlcmU9YXJyYXkoKSl7DQoJCS8vIHJldHVybnMgdGhlIG51bWJlciBvZiBlbGVtZW50cyBpbiBhIHRhYmxlDQoJCSRkYiA9JiAkdGhpcy0+R2V0RGIoKTsNCgkJJHdoZXJlc3RyaW5nID0gIiI7DQoJCSR3aGVyZXZhbHVlcyA9IGFycmF5KCk7DQoJCWZvcmVhY2goJHdoZXJlIGFzICRrZXk9PiR2YWx1ZSl7DQoJCQkkd2hlcmVzdHJpbmcgLj0gKCR3aGVyZXN0cmluZyA9PSAiIj8iIFdIRVJFICI6IiBBTkQgIikuJGtleS4iPT8iOw0KCQkJJHdoZXJldmFsdWVzW10gPSAkdmFsdWU7DQoJCX0NCgkJJHF1ZXJ5ID0gIlNFTEVDVCBDT1VOVCgkd2hhdCkgb3VyY291bnQgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2JhYmVsXyR0YWJsZW5hbWUiLiR3aGVyZXN0cmluZzsNCgkJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwkd2hlcmV2YWx1ZXMpOw0KCQlpZiAoJGRicmVzdWx0ICYmICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpew0KCQkJcmV0dXJuICRyb3dbIm91cmNvdW50Il07DQoJCX1lbHNlew0KCQkJcmV0dXJuIDA7DQoJCX0NCgl9CQ0KCQ0KCWZ1bmN0aW9uIGdldEZpbGVDb250ZW50KCRmaWxlbmFtZSl7DQoJCSRmaWxlcGF0aCA9IGRpcm5hbWUoX19GSUxFX18pLkRJUkVDVE9SWV9TRVBBUkFUT1IuJGZpbGVuYW1lOw0KCQlpZihmaWxlX2V4aXN0cygkZmlsZXBhdGgpKXsNCgkJCSRmaGFuZGxlID0gZm9wZW4oJGZpbGVwYXRoLCAicisiKTsNCgkJCSRjb250ZW50ID0gZnJlYWQoJGZoYW5kbGUsIGZpbGVzaXplKCRmaWxlcGF0aCkpOw0KCQkJcmV0dXJuICRjb250ZW50Ow0KCQl9ZWxzZXsNCgkJCXJldHVybiBmYWxzZTsNCgkJfQ0KCX0NCgkNCglmdW5jdGlvbiByZXRyaWV2ZV9wYWdlX2xhbmcoKXsNCgkJLy8gcmV0cmlldmUgcm9vdCBpZA0KCQlpZighJHRoaXMtPmF2YWlsYWJsZV9sYW5ndWFnZXMpCSR0aGlzLT5yZXRyaWV2ZV9sYW5ndWFnZXMoKTsNCgkJaWYoISR0aGlzLT5hdmFpbGFibGVfbGFuZ3VhZ2VzKQlyZXR1cm4gZmFsc2U7DQoJCWZvcmVhY2goJHRoaXMtPmF2YWlsYWJsZV9sYW5ndWFnZXMgYXMgJG9uZWxhbmcpew0KCQkJaWYoJG9uZWxhbmdbInJvb3RfaWQiXSA9PSAkcm9vdF9pZCl7DQoJCQkJJHRoaXMtPmN1cnJlbnRfbGFuZ2NvZGUgPSAkb25lbGFuZ1sibGFuZ2NvZGUiXTsNCgkJCQkkdGhpcy0+Y3VycmVudF9sYW5ndWFnZSA9ICRvbmVsYW5nOw0KCQkJfQ0KCQl9DQoJCSR0aGlzLT5zbWFydHktPmFzc2lnbigicGFnZV9sYW5nIiwgJHRoaXMtPmN1cnJlbnRfbGFuZ2NvZGUpOw0KCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oImN1cnJlbnRfbGFuZ3VhZ2UiLCAkdGhpcy0+Y3VycmVudF9sYW5ndWFnZSk7DQoJfQ0KDQoJZnVuY3Rpb24gZ2V0bGFuZ3VhZ2VzKCRpbmFjdGl2ZT1mYWxzZSl7DQoJCWlmKCR0aGlzLT5hdmFpbGFibGVfbGFuZ3VhZ2VzID09IGZhbHNlKQkkdGhpcy0+cmV0cmlldmVfbGFuZ3VhZ2VzKCk7DQoJCXJldHVybgkkaW5hY3RpdmU/JHRoaXMtPmFsbF9sYW5ndWFnZXM6JHRoaXMtPmF2YWlsYWJsZV9sYW5ndWFnZXM7DQoJfQ0KDQoJZnVuY3Rpb24gcmV0cmlldmVfbGFuZ3VhZ2VzKCl7DQoJCS8vIHJldHJpZXZlcyBsYW5ndWFnZXMgZnJvbSB0aGUgZGF0YWJhc2UgYW5kIHN0b3JlIHRoZW0gaW4gdGhlIG1vZHVsZSBvYmplY3QNCgkJLy8gdG8gYXZvaWQgbXVsdGlwbGUgcmV0cmlldmFsLCB1c2UgZ2V0bGFuZ3VhZ2VzKCk7DQoJCSRkYiA9ICR0aGlzLT5HZXREYigpOw0KCQkkcXVlcnkgPSAiU0VMRUNUICogRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2JhYmVsX2xhbmd1YWdlcyBPUkRFUiBCWSBpdGVtX29yZGVyIjsNCgkJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSk7DQoJCSRvdXRwdXQgPSBhcnJheSgpOw0KCQkkYWxsID0gYXJyYXkoKTsNCgkJd2hpbGUoJGRicmVzdWx0ICYmICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpew0KCQkJJGFsbFskcm93WyJsYW5nY29kZSJdXSA9ICRyb3c7DQoJCQlpZigkcm93WyJhY3RpdmUiXSkJJG91dHB1dFskcm93WyJsYW5nY29kZSJdXSA9ICRyb3c7DQoJCX0NCgkJJHRoaXMtPmFsbF9sYW5ndWFnZXMgPSAkYWxsOw0KCQkkdGhpcy0+YXZhaWxhYmxlX2xhbmd1YWdlcyA9ICRvdXRwdXQ7DQoJfQ0KCQ0KCWZ1bmN0aW9uIGFkbWluX3JldHJpZXZlX2xhbmd1YWdlcygkaWQsICRyZXR1cm5pZCl7DQoJCWlmKGZ1bmN0aW9uX2V4aXN0cygnY21zbXMnKSl7ICRnQ21zID0gY21zbXMoKTsgfWVsc2V7IGdsb2JhbCAkZ0NtczsJfQ0KCQkkYWRtaW50aGVtZSA9ICRnQ21zLT52YXJpYWJsZXNbImFkbWludGhlbWUiXTsNCgkJJGRiID0gJHRoaXMtPkdldERiKCk7DQoJCSRkZWZhdWx0bGFuZyA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCJkZWZhdWx0X2xhbmd1YWdlIiwgZmFsc2UpOw0KCQkkcXVlcnkgPSAiU0VMRUNUICogRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2JhYmVsX2xhbmd1YWdlcyBPUkRFUiBCWSBpdGVtX29yZGVyIjsNCgkJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSk7DQoJCSRvdXRwdXQgPSBhcnJheSgpOw0KCQl3aGlsZSgkZGJyZXN1bHQgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSl7DQoJCQkkaXRlbSA9IG5ldyBTdGRDbGFzcygpOw0KCQkJZm9yZWFjaCgkcm93IGFzICRrZXk9PiR2YWx1ZSl7DQoJCQkJJGl0ZW0tPiRrZXkgPSAkdmFsdWU7DQoJCQl9DQoJCQkkbW92ZXBhcmFtcyA9IGFycmF5KCJsYW5nY29kZSI9PiRpdGVtLT5sYW5nY29kZSwiY3VycmVudG9yZGVyIj0+JGl0ZW0tPml0ZW1fb3JkZXIpOw0KCQkJJGl0ZW0tPm5hbWVsaW5rID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAiZWRpdGxhbmciLCAkcmV0dXJuaWQsICRpdGVtLT5uYW1lLCBhcnJheSgibGFuZ2NvZGUiPT4kaXRlbS0+bGFuZ2NvZGUpKTsNCgkJCSRpdGVtLT5jb2RlbGluayA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgImVkaXRsYW5nIiwgJHJldHVybmlkLCAkaXRlbS0+bGFuZ2NvZGUsIGFycmF5KCJsYW5nY29kZSI9PiRpdGVtLT5sYW5nY29kZSkpOw0KCQkJJGl0ZW0tPmVkaXRlbnRyaWVzID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAiZWRpdGVudHJpZXMiLCAkcmV0dXJuaWQsICR0aGlzLT5MYW5nKCJlZGl0X2VudHJpZXMiKSwgYXJyYXkoImxhbmdjb2RlIj0+JGl0ZW0tPmxhbmdjb2RlKSk7DQoJCQkkaXRlbS0+ZGVsZXRlbGluayA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgIm1vdmVzb21ldGhpbmciLCAkcmV0dXJuaWQsICRhZG1pbnRoZW1lLT5EaXNwbGF5SW1hZ2UoImljb25zL3N5c3RlbS9kZWxldGUuZ2lmIixsYW5nKCJkZWxldGUiKSwiIiwiIiwic3lzdGVtaWNvbiIpLCBhcnJheV9tZXJnZShhcnJheSgibW92ZSI9PiJkZWxldGUiKSwkbW92ZXBhcmFtcyksICR0aGlzLT5MYW5nKCJwcm9tcHRfZGVsZXRlbGFuZ3VhZ2UiLCBzdHJfcmVwbGFjZSgiJyIsIlwnIiwkaXRlbS0+bmFtZSkpKTsNCgkJCSRpdGVtLT5hY3Rpb25zID0gJGl0ZW0tPmVkaXRlbnRyaWVzLiIgIi4kaXRlbS0+ZGVsZXRlbGluazsNCgkJCSRpdGVtLT5tb3ZldXBsaW5rID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAibW92ZXNvbWV0aGluZyIsICRyZXR1cm5pZCwgJGFkbWludGhlbWUtPkRpc3BsYXlJbWFnZSgiaWNvbnMvc3lzdGVtL2Fycm93LXUuZ2lmIixsYW5nKCJ1cCIpLCIiLCIiLCJzeXN0ZW1pY29uIiksIGFycmF5X21lcmdlKGFycmF5KCJtb3ZlIj0+InVwIiksJG1vdmVwYXJhbXMpKTsNCgkJCSRpdGVtLT5tb3ZlZG93bmxpbmsgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICJtb3Zlc29tZXRoaW5nIiwgJHJldHVybmlkLCAkYWRtaW50aGVtZS0+RGlzcGxheUltYWdlKCJpY29ucy9zeXN0ZW0vYXJyb3ctZC5naWYiLGxhbmcoImRvd24iKSwiIiwiIiwic3lzdGVtaWNvbiIpLCBhcnJheV9tZXJnZShhcnJheSgibW92ZSI9PiJkb3duIiksJG1vdmVwYXJhbXMpKTsNCgkJCSRpdGVtLT5tb3ZlbGlua3MgPSAkaXRlbS0+bW92ZXVwbGluayAuIiAiLiAkaXRlbS0+bW92ZWRvd25saW5rOw0KCQkJaWYoJGRlZmF1bHRsYW5nID09ICRpdGVtLT5sYW5nY29kZSl7DQoJCQkJJGl0ZW0tPnRvZ2dsZWRlZmF1bHQgPSAkYWRtaW50aGVtZS0+RGlzcGxheUltYWdlKCJpY29ucy9zeXN0ZW0vdHJ1ZS5naWYiLCJ0cnVlIiwiIiwiIiwic3lzdGVtaWNvbiIpOw0KCQkJfWVsc2V7DQoJCQkJJGl0ZW0tPnRvZ2dsZWRlZmF1bHQgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICJ0b2dnbGVkZWZhdWx0IiwgJHJldHVybmlkLCAkYWRtaW50aGVtZS0+RGlzcGxheUltYWdlKCJpY29ucy9zeXN0ZW0vZmFsc2UuZ2lmIixsYW5nKCJzZXR0cnVlIiksIiIsIiIsInN5c3RlbWljb24iKSwgYXJyYXkoImxhbmdjb2RlIj0+JGl0ZW0tPmxhbmdjb2RlKSk7DQoJCQl9DQoJCQlpZigkaXRlbS0+YWN0aXZlKXsNCgkJCQkkaXRlbS0+dG9nZ2xlYWN0aXZlID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAidG9nZ2xlYWN0aXZlIiwgJHJldHVybmlkLCAkYWRtaW50aGVtZS0+RGlzcGxheUltYWdlKCJpY29ucy9zeXN0ZW0vdHJ1ZS5naWYiLGxhbmcoInNldGZhbHNlIiksIiIsIiIsInN5c3RlbWljb24iKSwgYXJyYXkoImxhbmdjb2RlIj0+JGl0ZW0tPmxhbmdjb2RlLCAibmV3dmFsIj0+MCkpOw0KCQkJfWVsc2V7DQoJCQkJJGl0ZW0tPnRvZ2dsZWFjdGl2ZSA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgInRvZ2dsZWFjdGl2ZSIsICRyZXR1cm5pZCwgJGFkbWludGhlbWUtPkRpc3BsYXlJbWFnZSgiaWNvbnMvc3lzdGVtL2ZhbHNlLmdpZiIsbGFuZygic2V0dHJ1ZSIpLCIiLCIiLCJzeXN0ZW1pY29uIiksIGFycmF5KCJsYW5nY29kZSI9PiRpdGVtLT5sYW5nY29kZSwgIm5ld3ZhbCI9PjEpKTsNCgkJCX0NCgkJCWFycmF5X3B1c2goJG91dHB1dCwgJGl0ZW0pOw0KCQl9DQoJCXJldHVybiAkb3V0cHV0Ow0KCX0NCgkNCglmdW5jdGlvbiBnZXRfbGFuZ3VhZ2VfZGV0YWlscygkbGFuZ2NvZGUpew0KCQkkZGIgPSAkdGhpcy0+R2V0RGIoKTsNCgkJJHF1ZXJ5ID0gIlNFTEVDVCAqIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9iYWJlbF9sYW5ndWFnZXMgV0hFUkUgbGFuZ2NvZGU9PyI7DQoJCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRsYW5nY29kZSkpOw0KCQlpZigkZGJyZXN1bHQgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSl7DQoJCQkkaXRlbSA9IG5ldyBTdGRDbGFzcygpOw0KCQkJZm9yZWFjaCgkcm93IGFzICRrZXk9PiR2YWx1ZSl7DQoJCQkJJGl0ZW0tPiRrZXkgPSAkdmFsdWU7DQoJCQl9DQoJCX1lbHNlew0KCQkJJGl0ZW0gPSBmYWxzZTsNCgkJfQ0KCQlyZXR1cm4gJGl0ZW07DQoJfQ0KCQ0KCWZ1bmN0aW9uIHJldHJpZXZlX2xhbmdlbnRyaWVzKCl7DQoJCS8vIHJldHJpZXZlcyB0aGUgbGFuZ3VhZ2UgZW50cmllcyBmb3IgdGhlIGN1cnJlbnQgbGFuZ3VhZ2UNCgkJaWYoISR0aGlzLT5jdXJyZW50X2xhbmd1YWdlKQkkdGhpcy0+cmV0cmlldmVfcGFnZV9sYW5nKCk7DQoJCWlmKCEkdGhpcy0+Y3VycmVudF9sYW5ndWFnZSkJcmV0dXJuIGZhbHNlOw0KCQkkZGVmbGFuZyA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCJkZWZhdWx0X2xhbmd1YWdlIixmYWxzZSk7DQoJCSRwYXJ0aWFsX2ltcG9ydCA9IGZhbHNlOw0KCQlpZigkZGVmbGFuZyAmJiAkZGVmbGFuZyAhPSAkdGhpcy0+Y3VycmVudF9sYW5ndWFnZSAmJiAkdGhpcy0+R2V0UHJlZmVyZW5jZSgiZGVmYXVsdF90cmFuc2xhdGUiLGZhbHNlKSl7DQoJCQkvLyB3aGVuIHRoZSBlbnRyeSBkb2Vzbid0IGV4aXN0IGluIHRoZSBjdXJyZW50IGxhbmd1YWdlLCB3ZSB1c2UgdGhlIG9uZSBmcm9tIHRoZSBkZWZhdWx0IGxhbmd1YWdlLA0KCQkJLy8gc28gd2UgbG9hZCB0aGlzIG9uZSBmaXJzdA0KCQkJJHBhcnRpYWxfaW1wb3J0ID0gdHJ1ZTsNCgkJCSR0aGlzLT5jdXJyZW50X2xhbmdlbnRyaWVzID0gJHRoaXMtPmxvYWRfbGFuZ2VudHJpZXMoJGRlZmxhbmcpOw0KCQl9DQoJCSRjdXJyZW50X2VudHJpZXMgPSAkdGhpcy0+bG9hZF9sYW5nZW50cmllcygkdGhpcy0+Y3VycmVudF9sYW5nY29kZSk7DQoJCWlmKCRwYXJ0aWFsX2ltcG9ydCl7DQoJCQkvLyB3ZSd2ZSBhbHJlYWR5IGxvYWRlZCB0aGUgZGVmYXVsdCBlbnRyaWVzLCBzbyB3ZSBhZGQvcmVwbGFjZSB0aGUgb25lcyBmb3IgdGhlIGN1cnJlbnQgbGFuZ3VhZ2UNCgkJCWZvcmVhY2goJGN1cnJlbnRfZW50cmllcyBhcyAka2V5PT4kdmFsdWUpew0KCQkJCWlmKCR2YWx1ZSAmJiAkdmFsdWUgIT0gIiIpCSR0aGlzLT5jdXJyZW50X2xhbmdlbnRyaWVzWyRrZXldID0gJHZhbHVlOw0KCQkJfQ0KCQl9ZWxzZXsNCgkJCS8vIG5vIG5lZWQgZm9yIGRlZmF1bHQgZW50cmllcw0KCQkJJHRoaXMtPmN1cnJlbnRfbGFuZ2VudHJpZXMgPSAkY3VycmVudF9lbnRyaWVzOw0KCQl9DQoJfQ0KCQ0KCWZ1bmN0aW9uIGxvYWRfbGFuZ2VudHJpZXMoJGxhbmcpew0KCQkvLyByZXRyaWV2ZXMgbGFuZ3VhZ2UgZW50cmllcyBmb3IgYW55IGxhbmd1YWdlDQoJCWlmKCEkdGhpcy0+aXNfbGFuZ3VhZ2UoJGxhbmcpKQlyZXR1cm4gZmFsc2U7DQoJCSRkYiA9ICR0aGlzLT5HZXREYigpOw0KCQkkcXVlcnkgPSAiU0VMRUNUIGxhbmdrZXlzLmNhcHRpb24gY2FwdGlvbiwgbGFuZ2VudHJpZXMudmFsdWUgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2JhYmVsX2xhbmdrZXlzIGxhbmdrZXlzIExFRlQgSk9JTiAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2JhYmVsX2xhbmdlbnRyaWVzIGxhbmdlbnRyaWVzIE9OIGxhbmdrZXlzLnN0cmluZ2lkID0gbGFuZ2VudHJpZXMuc3RyaW5naWQgV0hFUkUgbGFuZ2VudHJpZXMubGFuZ2NvZGU9PyI7DQoJCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJGxhbmcpKTsNCgkJJG91dHB1dCA9IGFycmF5KCk7DQoJCXdoaWxlKCRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKXsNCgkJCSRvdXRwdXRbJHJvd1siY2FwdGlvbiJdXSA9ICRyb3dbInZhbHVlIl0/JHJvd1sidmFsdWUiXToiIjsNCgkJfQ0KCQlyZXR1cm4gJG91dHB1dDsNCgl9DQoJDQoJZnVuY3Rpb24gaXNfbGFuZ3VhZ2UoJGNvZGUpew0KCQkvLyByZXR1cm5zIHRydWUgaWYgJGNvZGUgaXMgYW4gYWN0aXZlIGxhbmd1YWdlDQoJCWlmKCEkdGhpcy0+YXZhaWxhYmxlX2xhbmd1YWdlcykJJHRoaXMtPnJldHJpZXZlX2xhbmd1YWdlcygpOw0KCQlpZighJHRoaXMtPmF2YWlsYWJsZV9sYW5ndWFnZXMpCXJldHVybiBmYWxzZTsNCgkJJHJlc3VsdCA9IGlzc2V0KCR0aGlzLT5hdmFpbGFibGVfbGFuZ3VhZ2VzWyRjb2RlXSk7DQoJCWlmKCEkcmVzdWx0KSBlY2hvICRjb2RlLicgaXMgbm90IGEgbGFuZ3VhZ2UnOw0KCQlyZXR1cm4gJHJlc3VsdDsNCgl9DQoJDQoJZnVuY3Rpb24gcmV0cmlldmVfdHJhbnNsYXRpb24oJGtleSl7DQoJCS8vIHJldHVybnMgc3RyaW5nIGNvcnJlc3BvbmRpbmcgdG8gJGtleSBpbiB0aGUgY3VycmVudCBsYW5ndWFnZQ0KCQlpZighJHRoaXMtPmN1cnJlbnRfbGFuZ2VudHJpZXMpCSR0aGlzLT5yZXRyaWV2ZV9sYW5nZW50cmllcygpOw0KCQlpZighJHRoaXMtPmN1cnJlbnRfbGFuZ2VudHJpZXMpCXJldHVybiBmYWxzZTsNCgkJJGtleXMgPSBleHBsb2RlKCcsJywka2V5KTsNCgkJJG91dHB1dCA9IGFycmF5KCk7DQoJCWZvcmVhY2goJGtleXMgYXMgJGtleSl7DQoJCQlpZihpc3NldCgkdGhpcy0+Y3VycmVudF9sYW5nZW50cmllc1ska2V5XSkgJiYgICR0aGlzLT5jdXJyZW50X2xhbmdlbnRyaWVzWyRrZXldICE9ICIiKXsNCgkJCQlhcnJheV9wdXNoKCRvdXRwdXQsICR0aGlzLT5jdXJyZW50X2xhbmdlbnRyaWVzWyRrZXldKTsNCgkJCX1lbHNlaWYoISR0aGlzLT5HZXRQcmVmZXJlbmNlKCJoaWRlX21pc3NpbmdlbnRyaWVzIixmYWxzZSkpew0KCQkJCWFycmF5X3B1c2goJG91dHB1dCwgIkFkZCBtZTogIi4ka2V5LiIgKCIuJHRoaXMtPmN1cnJlbnRfbGFuZ3VhZ2UuIikiKTsNCgkJCX1lbHNlew0KCQkJCWFycmF5X3B1c2goJG91dHB1dCwgIiIpOw0KCQkJfQ0KCQl9DQoJCWlmKGNvdW50KCRvdXRwdXQpPT0xKQlyZXR1cm4gJG91dHB1dFswXTsNCgkJcmV0dXJuICRvdXRwdXQ7DQoJfQ0KCQ0KCWZ1bmN0aW9uIGFzc2lnbl9wYWdlX2xhbmcoKXsNCgkJLy8gZGV0ZWN0cyBjdXJyZW50IGxhbmd1YWdlIGJhc2VkIG9uIGhpZXJhcmNoeSBhbmQgYXNzaWduIGl0IHRvIHNtYXJ0eQ0KCQlpZihmdW5jdGlvbl9leGlzdHMoJ2Ntc21zJykpeyAkZ0NtcyA9IGNtc21zKCk7IH1lbHNleyBnbG9iYWwgJGdDbXM7CX0NCgkJJHNtYXJ0eSA9JiAkZ0Ntcy0+Z2V0U21hcnR5KCk7DQoNCgkJJGNvbnRlbnRvcHMgPSAkZ0Ntcy0+R2V0Q29udGVudE9wZXJhdGlvbnMoKTsNCgkJJHJvb3RfaWQgPSAkZ0Ntcy0+dmFyaWFibGVzWydjb250ZW50X2lkJ107DQoJCSR0bXBpZCA9ICRyb290X2lkOw0KCQl3aGlsZSggJHRtcGlkID4gMCl7DQoJCQkkcm9vdF9pZCA9ICR0bXBpZDsNCgkJCSRjdXJyZW50Tm9kZSA9ICRjb250ZW50b3BzLT5Mb2FkQ29udGVudEZyb21JZCgkdG1waWQpOw0KCQkJJHRtcGlkID0gJGN1cnJlbnROb2RlPyRjdXJyZW50Tm9kZS0+UGFyZW50SWQoKTotMTsNCgkJfQ0KCQkkbGFuZ3VhZ2VzID0gJHRoaXMtPmdldGxhbmd1YWdlcygpOw0KCQlmb3JlYWNoKCRsYW5ndWFnZXMgYXMgJGxhbmd1YWdlKXsNCgkJCWlmKCRsYW5ndWFnZVsncm9vdF9pZCddID09ICRyb290X2lkKXsNCgkJCQkkdGhpcy0+Y3VycmVudF9sYW5ndWFnZSA9ICRsYW5ndWFnZTsNCgkJCQkkdGhpcy0+Y3VycmVudF9sYW5nY29kZSA9ICRsYW5ndWFnZVsnbGFuZ2NvZGUnXTsNCgkJCX0NCgkJfQ0KCQlpZighJHRoaXMtPmN1cnJlbnRfbGFuZ2NvZGUpew0KCQkJLy8gdGhhbmtzIG5pbm8gZm9yIHRoaXMgYWRkDQoJCQkkZGVmbGFuZyA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCJkZWZhdWx0X2xhbmd1YWdlIiwgZmFsc2UpOw0KCQkJaWYoJGRlZmxhbmcgJiYgYXJyYXlfa2V5X2V4aXN0cyggJGRlZmxhbmcsICRsYW5ndWFnZXMgKSApIHsNCgkJCQkkdGhpcy0+Y3VycmVudF9sYW5ndWFnZSA9ICRsYW5ndWFnZXNbICRkZWZsYW5nIF07DQoJCQkJJHRoaXMtPmN1cnJlbnRfbGFuZ2NvZGUgPSAkZGVmbGFuZzsNCgkJCX0NCgkJfQ0KCQkkc21hcnR5LT5hc3NpZ24oJ3BhZ2VfbGFuZycsJHRoaXMtPmN1cnJlbnRfbGFuZ2NvZGUpOw0KCQkkc21hcnR5LT5hc3NpZ24oJ3BhZ2VfbGFuZ19pbmZvJywkdGhpcy0+Y3VycmVudF9sYW5ndWFnZSk7DQoJfQ0KCQ0KCWZ1bmN0aW9uIGF1dG9fcmVkaXJlY3QoKXsNCgkJLy8gcmVkaXJlY3RzIHRvIHRoZSB1c2VyIGxhbmd1YWdlIHdoZW4gYSB1cmwgaXMgcmVxdWVzdGVkDQoJCWlmKGZ1bmN0aW9uX2V4aXN0cygnY21zbXMnKSl7ICRnQ21zID0gY21zbXMoKTsgfWVsc2V7IGdsb2JhbCAkZ0NtczsJfQ0KCQlpZighJHRoaXMtPmN1cnJlbnRfbGFuZ3VhZ2UpCXJldHVybiBmYWxzZTsNCgkJJHByZWZfYnJvd3Nlcl9ob21lID0gJHRoaXMtPkdldFByZWZlcmVuY2UoImF1dG9yZWRpcmVjdF9ob21lIik7DQoJCSRwcmVmX2Jyb3dzZXJfYWxsID0gJHRoaXMtPkdldFByZWZlcmVuY2UoImF1dG9yZWRpcmVjdF9hbGwiKTsNCgkJJHByZWZfY29va2llX2hvbWUgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgiY29va2llc19hdXRvcmVkaXJlY3RfaG9tZSIpOw0KCQkkcHJlZl9jb29raWVfYWxsID0gJHRoaXMtPkdldFByZWZlcmVuY2UoImNvb2tpZXNfYXV0b3JlZGlyZWN0X2FsbCIpOw0KCQlpZighJHByZWZfY29va2llX2hvbWUgJiYgISRwcmVmX2Nvb2tpZV9hbGwgJiYgISRwcmVmX2Jyb3dzZXJfaG9tZSAmJiAhJHByZWZfYnJvd3Nlcl9hbGwpCXJldHVybiBmYWxzZTsNCgkJJHBhZ2VpZCA9ICRnQ21zLT52YXJpYWJsZXNbJ2NvbnRlbnRfaWQnXTsNCgkJJGxhbmd1YWdlcyA9ICR0aGlzLT5nZXRsYW5ndWFnZXMoKTsNCgkJJGlzX2hvbWVwYWdlID0gZmFsc2U7DQoJCSRsYW5nY29kZXMgPSBhcnJheSgpOw0KCQkkdHJ1bmNhdGVkID0gYXJyYXkoKTsNCgkJZm9yZWFjaCgkbGFuZ3VhZ2VzIGFzICRsYW5ndWFnZSl7DQoJCQlhcnJheV9wdXNoKCRsYW5nY29kZXMsJGxhbmd1YWdlWydsYW5nY29kZSddKTsNCgkJCSR0cnVuY2F0ZWRbc3Vic3RyKCRsYW5ndWFnZVsnbGFuZ2NvZGUnXSwwLDIpXSA9ICRsYW5ndWFnZVsnbGFuZ2NvZGUnXTsNCgkJCWlmKCRsYW5ndWFnZVsnZGVmYXVsdF9pZCddID09ICRwYWdlaWQpCSRpc19ob21lcGFnZSA9IHRydWU7DQoJCX0NCgkJJGNvb2tpZSA9ICgkaXNfaG9tZXBhZ2UgJiYgJHByZWZfY29va2llX2hvbWUpIHx8ICRwcmVmX2Nvb2tpZV9hbGw7DQoJCSRicm93c2VyID0gKCRpc19ob21lcGFnZSAmJiAkcHJlZl9icm93c2VyX2hvbWUpIHx8ICRwcmVmX2Jyb3dzZXJfYWxsOw0KCQlpZighJGNvb2tpZSAmJiAhJGJyb3dzZXIpCXJldHVybiBmYWxzZTsNCg0KCQkvLyByZXRyaWV2ZSB1c2VyIGxhbmd1YWdlIDoNCgkJJHVzcmxhbmcgPSBmYWxzZTsNCgkJaWYoaXNzZXQoJF9DT09LSUVbJ3VzcmxhbmcnXSkgJiYgJGNvb2tpZSAmJiBpbl9hcnJheSgkX0NPT0tJRVsndXNybGFuZyddLCAkbGFuZ2NvZGVzKSl7DQoJCQkkdXNybGFuZyA9ICRfQ09PS0lFWyd1c3JsYW5nJ107DQoJCX1lbHNlaWYoJGJyb3dzZXIpewkJCQ0KCQkJJGxhbmd1YWdlcyA9IHN0cnRvbG93ZXIoICRfU0VSVkVSWyJIVFRQX0FDQ0VQVF9MQU5HVUFHRSJdICk7DQoJCQkkbGFuZ3VhZ2VzID0gc3RyX3JlcGxhY2UoICcgJywgJycsICRsYW5ndWFnZXMgKTsNCgkJCSRsYW5ndWFnZXMgPSBleHBsb2RlKCAiLCIsICRsYW5ndWFnZXMgKTsNCgkJCSRsYW5ndWFnZSA9IHN1YnN0ciggJGxhbmd1YWdlc1swXSwgMCwgMiApOw0KCQkJaWYoaXNzZXQoJHRydW5jYXRlZFskbGFuZ3VhZ2VdKSkJJHVzcmxhbmcgPSAkdHJ1bmNhdGVkWyRsYW5ndWFnZV07DQoJCX0NCg0KCQlpZigkdXNybGFuZyAmJiAoJHByZWZfY29va2llX2FsbCB8fCAkcHJlZl9jb29raWVfaG9tZSkgKQlzZXRjb29raWUoJ3VzcmxhbmcnLCR1c3JsYW5nLHRpbWUoKSs4NjQwMCozNjUsJy8nKTsNCg0KCQlpZigkdXNybGFuZyAmJiAkdXNybGFuZyAhPSAkdGhpcy0+Y3VycmVudF9sYW5nY29kZSl7DQoJCQkkZGVzdHBhZ2UgPSAkdGhpcy0+Z2V0X3VybHMoJHVzcmxhbmcpOw0KCQkJaWYoaXNzZXQoJGRlc3RwYWdlWyR1c3JsYW5nXSkpCWhlYWRlcigibG9jYXRpb246ICIuJGRlc3RwYWdlWyR1c3JsYW5nXVsndXJsJ10uJGdDbXMtPmNvbmZpZ1sncGFnZV9leHRlbnNpb24nXSk7DQoJCX0JCQ0KCX0NCgkNCglmdW5jdGlvbiBnZXRfdXJscygkZGVzaXJlZF9sYW5nPWZhbHNlKXsNCgkJaWYoJHRoaXMtPkdldFByZWZlcmVuY2UoJ2hpZXJhcmNoeV9yZWRpcmVjdCcsdHJ1ZSkpew0KCQkJcmV0dXJuICR0aGlzLT5oaWVyYXJjaHlfZ2V0X2xpbmtzKCRkZXNpcmVkX2xhbmcpOw0KCQl9ZWxzZXsNCgkJCXJldHVybiAkdGhpcy0+bWFudWFsX2dldF9saW5rcygkZGVzaXJlZF9sYW5nKTsNCgkJfQ0KCX0NCgkNCglmdW5jdGlvbiBjbGVhbkhpZXIoJHZhbHVlKXsNCgkJJHBhcnRzID0gZXhwbG9kZSgnLicsJHZhbHVlKTsNCgkJJGkgPSAwOw0KCQl3aGlsZShpc3NldCgkcGFydHNbJGldKSl7DQoJCQkkcGFydHNbJGldID0gc3RyX3BhZCgkcGFydHNbJGldLCA1LCAiMCIsIFNUUl9QQURfTEVGVCk7DQoJCQkkaSsrOw0KCQl9DQoJCXJldHVybiBpbXBsb2RlKCcuJywkcGFydHMpOw0KCX0NCgkNCglmdW5jdGlvbiBoaWVyYXJjaHlfZ2V0X2xpbmtzKCRkZXNpcmVkX2xhbmc9ZmFsc2Upew0KCQkvLyByZXRyaWV2ZXMgdGhlIHVybCB0byB0aGUgcGFnZSBpbiB0aGUgZGVzaXJlZCBsYW5ndWFnZShzKSBlcXVpdmFsZW50IHRvIHRoZSBjdXJyZW50IHBhZ2UsDQoJCS8vIGJhc2VkIG9uIGhpZXJhcmNoeQ0KCQkvLyBpZiAkZGVzaXJlZF9sYW5nIGlzIGZhbHNlLCBsaW5rcyBmb3IgYWxsIGFjdGl2ZSBsYW5ndWFnZXMgd2lsbCBiZSByZXR1cm5lZA0KCQlpZighJHRoaXMtPmF2YWlsYWJsZV9sYW5ndWFnZXMgfHwgY291bnQoJHRoaXMtPmF2YWlsYWJsZV9sYW5ndWFnZXMpID09IDApCXJldHVybiBmYWxzZTsNCgkJaWYoZnVuY3Rpb25fZXhpc3RzKCdjbXNtcycpKXsgJGdDbXMgPSBjbXNtcygpOyB9ZWxzZXsgZ2xvYmFsICRnQ21zOwl9DQoJCSRkYiA9ICR0aGlzLT5HZXREYigpOw0KCQkkYmFzZV91cmwgPSAkdGhpcy0+Z2V0X2Jhc2VfdXJsKCk7DQoJCSRkZWZhdWx0X2hpZGUgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGVmYXVsdF9oaWRlJywgZmFsc2UpOw0KCQlpZigkZGVzaXJlZF9sYW5nICYmIGlzc2V0KCR0aGlzLT5hdmFpbGFibGVfbGFuZ3VhZ2VzWyRkZXNpcmVkX2xhbmddKSl7DQoJCQkkbGFuZ3MgPSBhcnJheSgkZGVzaXJlZF9sYW5nPT4kdGhpcy0+YXZhaWxhYmxlX2xhbmd1YWdlc1skZGVzaXJlZF9sYW5nXSk7DQoJCX1lbHNlew0KCQkJJGxhbmdzID0gJHRoaXMtPmF2YWlsYWJsZV9sYW5ndWFnZXM7DQoJCX0NCgkJJG1vZHVsZV9saW5rcyA9ICR0aGlzLT5tb2R1bGVfZ2V0X3VybCgpOw0KCQlpZihjb3VudCgkbW9kdWxlX2xpbmtzKSA9PSBjb3VudCgkbGFuZ3MpICYmIGlzc2V0KCRtb2R1bGVfbGlua3NbJGxhbmdbMF1bJ2xhbmdjb2RlJ11dKSkJcmV0dXJuICRtb2R1bGVfbGlua3M7DQoJCSRjdXJyZW50X3Bvc2l0aW9uID0gZXhwbG9kZSgnLicsICRnQ21zLT52YXJpYWJsZXNbJ3Bvc2l0aW9uJ10pOw0KCQkkb3V0cHV0ID0gYXJyYXkoKTsNCgkJJHJvb3RpZHMgPSBhcnJheSgpOw0KCQkkaGllcmFyY2hpZXMgPSBhcnJheSgpOw0KCQkkd2hlcmUgPSAiIjsNCgkJJHF1ZXJ5X3ZhbHVlcyA9IGFycmF5KCk7DQoJCSRkZWZhdWx0X3BhdGhzID0gYXJyYXkoKTsNCgkJZm9yZWFjaCgkbGFuZ3MgYXMgJG9uZWxhbmcpew0KCQkJJG91dHB1dFskb25lbGFuZ1snbGFuZ2NvZGUnXV0gPSBhcnJheSgnbWVudV90ZXh0Jz0+IiIsICduYW1lJz0+IiIsICd1cmwnPT4iIik7DQoJCQkkcm9vdGlkc1skb25lbGFuZ1sncm9vdF9pZCddXSA9ICRvbmVsYW5nWydsYW5nY29kZSddOw0KCQkJJHdoZXJlIC49ICgkd2hlcmUgPT0gIiI/IiI6IiBPUiAiKS4iY29udGVudF9pZD0/IjsNCgkJCWFycmF5X3B1c2goJHF1ZXJ5X3ZhbHVlcywgJG9uZWxhbmdbJ3Jvb3RfaWQnXSk7DQoJCX0NCgkJJHF1ZXJ5ID0gIlNFTEVDVCBjb250ZW50X25hbWUsIG1lbnVfdGV4dCwgY29udGVudF9pZCwgaGllcmFyY2h5LCBoaWVyYXJjaHlfcGF0aCBGUk9NICIgLiBjbXNfZGJfcHJlZml4KCkuImNvbnRlbnQgV0hFUkUgKCIuJHdoZXJlLiIpIjsNCgkJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgJHF1ZXJ5X3ZhbHVlcyk7DQoJCSRxdWVyeV92YWx1ZXMgPSBhcnJheSgpOw0KCQkkd2hlcmUgPSAiIjsNCgkJJG5ld3BhdGhzID0gYXJyYXkoKTsNCgkJd2hpbGUoJGRicmVzdWx0ICYmICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpew0KCQkJJHBvc2l0aW9uID0gZXhwbG9kZSgnLicsJHJvd1snaGllcmFyY2h5J10pOw0KCQkJJG5ld3Bvc2l0aW9uID0gJGN1cnJlbnRfcG9zaXRpb247DQoJCQkkbmV3cG9zaXRpb25bMF0gPSAkcG9zaXRpb25bMF07DQoJCQkkbmV3X2hpZXJhcmNoeSA9ICR0aGlzLT5jbGVhbkhpZXIoaW1wbG9kZSgnLicsJG5ld3Bvc2l0aW9uKSk7DQoJCQkkaGllcmFyY2hpZXNbJHJvb3RpZHNbJHJvd1snY29udGVudF9pZCddXV0gPSAkbmV3X2hpZXJhcmNoeTsNCgkJCWFycmF5X3B1c2goJHF1ZXJ5X3ZhbHVlcywkbmV3X2hpZXJhcmNoeSk7DQoJCQkkbmV3cGF0aHNbJG5ld19oaWVyYXJjaHldID0gJHJvb3RpZHNbJHJvd1snY29udGVudF9pZCddXTsNCgkJCSRkZWZhdWx0X3BhdGhzWyRyb290aWRzWyRyb3dbJ2NvbnRlbnRfaWQnXV1dID0gYXJyYXkoInVybCI9PiRiYXNlX3VybC4kcm93WyJoaWVyYXJjaHlfcGF0aCJdLCAibmFtZSI9PiRyb3dbImNvbnRlbnRfbmFtZSJdLCAibWVudV90ZXh0Ij0+JHJvd1sibWVudV90ZXh0Il0pOw0KCQkJJHdoZXJlIC49ICgkd2hlcmUgPT0gIiI/IiI6IiBPUiAiKS4iaGllcmFyY2h5PT8iOw0KCQl9DQoJCSRxdWVyeSA9ICJTRUxFQ1QgY29udGVudF9pZCwgY29udGVudF9uYW1lLCBtZW51X3RleHQsIGhpZXJhcmNoeSwgaGllcmFyY2h5X3BhdGggRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4iY29udGVudCBXSEVSRSAoIi4kd2hlcmUuIikiOw0KCQkkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCAkcXVlcnlfdmFsdWVzKTsNCgkJJHJlZGlyZWN0aW9uID0gJHRoaXMtPmdldF91cmx0eXBlKCk7DQoJCXdoaWxlKCRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKXsNCgkJCWlmKCRyZWRpcmVjdGlvbiA9PSAnaW50ZXJuYWwnIHx8ICRyZWRpcmVjdGlvbiA9PSAnbW9kX3Jld3JpdGUnKXsNCgkJCQkkdXJsID0gJGJhc2VfdXJsLiRyb3dbJ2hpZXJhcmNoeV9wYXRoJ107DQoJCQl9ZWxzZXsNCgkJCQkkcGF0aHBhcnRzID0gZXhwbG9kZSgnLycsJHJvd1snaGllcmFyY2h5X3BhdGgnXSk7DQoJCQkJJHVybCA9ICRiYXNlX3VybC4kcGF0aHBhcnRzW2NvdW50KCRwYXRocGFydHMpLTFdOw0KCQkJfQ0KCQkJJG91dHB1dFskbmV3cGF0aHNbJHJvd1siaGllcmFyY2h5Il1dXSA9IGFycmF5KCJ1cmwiPT4kdXJsLCAibmFtZSI9PiRyb3dbImNvbnRlbnRfbmFtZSJdLCAibWVudV90ZXh0Ij0+JHJvd1sibWVudV90ZXh0Il0pOw0KCQl9DQoJCSRmaW5hbCA9IGFycmF5KCk7DQoJCWZvcmVhY2goJG91dHB1dCBhcyAkbGFuZz0+JHZhbHVlKXsNCgkJCWlmKGlzc2V0KCRtb2R1bGVfbGlua3NbJGxhbmddKSl7DQoJCQkJJHZhbHVlWyJ1cmwiXSA9ICRtb2R1bGVfbGlua3NbJGxhbmddWyJ1cmwiXTsNCgkJCQkkdmFsdWVbIm5hbWUiXSA9ICRtb2R1bGVfbGlua3NbJGxhbmddWyJuYW1lIl07DQoJCQl9DQoJCQlpZigkdmFsdWVbInVybCJdID09ICIiICYmICRkZWZhdWx0X2hpZGUpew0KCQkJfWVsc2VpZigkdmFsdWVbInVybCJdID09ICIiKXsNCgkJCQkkZmluYWxbJGxhbmddID0gJGRlZmF1bHRfcGF0aHNbJGxhbmddOw0KCQkJfWVsc2V7DQoJCQkJJGZpbmFsWyRsYW5nXSA9ICR2YWx1ZTsNCgkJCX0NCgkJfQ0KCQlyZXR1cm4gJGZpbmFsOw0KCX0NCgkNCgkNCglmdW5jdGlvbiBtYW51YWxfZ2V0X2xpbmtzKCRkZXNpcmVkX2xhbmc9ZmFsc2Upew0KCQkvLyByZXRyaWV2ZXMgdGhlIHVybCB0byB0aGUgcGFnZSBpbiB0aGUgZGVzaXJlZCBsYW5ndWFnZShzKSBlcXVpdmFsZW50IHRvIHRoZSBjdXJyZW50IHBhZ2UsDQoJCS8vIGJhc2VkIG9uIE1hcmNvcyBDcnV6IG1hbnVhbCBwcm9jZWR1cmUgKHNlZSBoZWxwKQ0KCQkvLyBpZiAkZGVzaXJlZF9sYW5nIGlzIGZhbHNlLCBsaW5rcyBmb3IgYWxsIGFjdGl2ZSBsYW5ndWFnZXMgd2lsbCBiZSByZXR1cm5lZA0KCQlpZighJHRoaXMtPmF2YWlsYWJsZV9sYW5ndWFnZXMgfHwgY291bnQoJHRoaXMtPmF2YWlsYWJsZV9sYW5ndWFnZXMpID09IDApCXJldHVybiBmYWxzZTsNCgkJaWYoZnVuY3Rpb25fZXhpc3RzKCdjbXNtcycpKXsgJGdDbXMgPSBjbXNtcygpOyB9ZWxzZXsgZ2xvYmFsICRnQ21zOwl9DQoJCSRkYiA9ICR0aGlzLT5HZXREYigpOw0KCQkkYmFzZV91cmwgPSAkdGhpcy0+Z2V0X2Jhc2VfdXJsKCk7DQoJCWlmKCRkZXNpcmVkX2xhbmcgJiYgaXNzZXQoJHRoaXMtPmF2YWlsYWJsZV9sYW5ndWFnZXNbJGRlc2lyZWRfbGFuZ10pKXsNCgkJCSRsYW5ncyA9IGFycmF5KCRkZXNpcmVkX2xhbmc9PiR0aGlzLT5hdmFpbGFibGVfbGFuZ3VhZ2VzWyRkZXNpcmVkX2xhbmddKTsNCgkJfWVsc2V7DQoJCQkkbGFuZ3MgPSAkdGhpcy0+YXZhaWxhYmxlX2xhbmd1YWdlczsNCgkJfQ0KCQkkbW9kdWxlX2xpbmtzID0gJHRoaXMtPm1vZHVsZV9nZXRfdXJsKCk7DQoJCWlmKGNvdW50KCRtb2R1bGVfbGlua3MpID09IGNvdW50KCRsYW5ncykgJiYgaXNzZXQoJG1vZHVsZV9saW5rc1skbGFuZ1swXVsnbGFuZ2NvZGUnXV0pKQlyZXR1cm4gJG1vZHVsZV9saW5rczsNCgkJJG91dHB1dCA9IGFycmF5KCk7DQoJCWZvcmVhY2goJGxhbmdzIGFzICRvbmVsYW5nKXsNCgkJCSRvdXRwdXRbJG9uZWxhbmdbJ2xhbmdjb2RlJ11dID0gZmFsc2U7DQoJCX0NCgkJJGJ0bl90ZXh0ID0gJHRoaXMtPkdldFByZWZlcmVuY2UoInVzZV9wYWdlX3RpdGxlIixmYWxzZSk/IiI6JG5ld2xhbmdbJ21lbnVfbmFtZSddOw0KDQoJCS8vIHdlIHJldHJpZXZlIHRoZSBhbHRlcm5hdGl2ZXMgZnJvbSB0aGUgY29udGVudCBibG9jaw0KCQkkb3RoZXJfbGFuZ3VhZ2VzID0gJGdDbXMtPnNtYXJ0eS0+Z2V0X3RlbXBsYXRlX3ZhcnMoJ290aGVyX2xhbmd1YWdlcycpOw0KCQkkYWx0ZXJuYXRpdmVzID0gYXJyYXkoKTsNCgkJJHdoZXJldmFsdWVzID0gYXJyYXkoKTsNCgkJJHdoZXJlID0gIiI7DQoJCWZvcmVhY2ggKCBleHBsb2RlKCc7JywgJG90aGVyX2xhbmd1YWdlcykgYXMgJG9uZWxhbmcgKXsNCgkJCSRwYXJ0cyA9IGV4cGxvZGUoJz0nLCRvbmVsYW5nKTsNCgkJCWlmKGNvdW50KCRwYXJ0cyk9PTIpew0KCQkJCSR3aGVyZSAuPSAoJHdoZXJlPT0iIj8iIjoiIE9SICIpLiJjb250ZW50X2FsaWFzPT8iOw0KCQkJCSRhbHRlcm5hdGl2ZXNbJHBhcnRzWzFdXSA9ICRwYXJ0c1swXTsNCgkJCQlhcnJheV9wdXNoKCR3aGVyZXZhbHVlcywgJHBhcnRzWzFdKTsNCgkJCX0NCgkJfQ0KCQkkcXVlcnkgPSAiU0VMRUNUIG1lbnVfdGV4dCwgY29udGVudF9uYW1lLCBjb250ZW50X2FsaWFzLCBoaWVyYXJjaHlfcGF0aCBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJjb250ZW50IFdIRVJFICgiLiR3aGVyZS4iKSI7DQoJCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksICR3aGVyZXZhbHVlcyk7DQoJCXdoaWxlKCRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKXsNCgkJCSRvdXRwdXRbJGFsdGVybmF0aXZlc1skcm93WyJjb250ZW50X2FsaWFzIl1dXSA9IGFycmF5KCJ1cmwiPT4kYmFzZV91cmwuJHJvd1siaGllcmFyY2h5X3BhdGgiXSwgIm5hbWUiPT4kcm93WyJjb250ZW50X25hbWUiXSwgIm1lbnVfdGV4dCI9PiRyb3dbIm1lbnVfdGV4dCJdKTsNCgkJfQ0KCQlpZigkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGVmYXVsdF9oaWRlJywgZmFsc2UpKQlyZXR1cm4gJG91dHB1dDsNCg0KCQkvLyB3ZSBjaGVjayBmb3IgZGVmYXVsdCBhbHRlcm5hdGl2ZXMNCgkJJHdoZXJlID0gIiI7DQoJCSR3aGVyZXZhbHVlcyA9IGFycmF5KCk7DQoJCSRpZHRvbGFuZyA9IGFycmF5KCk7DQoJCWZvcmVhY2goJG91dHB1dCBhcyAkbGFuZz0+JHBhdGgpew0KCQkJaWYoISRwYXRoKXsNCgkJCQkkd2hlcmUgLj0gKCR3aGVyZT09IiI/IiI6IiBPUiAiKS4iY29udGVudF9pZD0/IjsNCgkJCQlhcnJheV9wdXNoKCR3aGVyZXZhbHVlcywgJGxhbmdzWyRsYW5nXVsnZGVmYXVsdF9pZCddKTsNCgkJCQkkaWR0b2xhbmdbJGxhbmdzWyRsYW5nXVsnZGVmYXVsdF9pZCddXSA9ICRsYW5nOw0KCQkJfQ0KCQl9DQoJCWlmKCR3aGVyZSA9PSAiIikJcmV0dXJuICRvdXRwdXQ7DQoJCQ0KCQkkcXVlcnkgPSAiU0VMRUNUIG1lbnVfdGV4dCwgY29udGVudF9uYW1lLCBjb250ZW50X2lkLCBoaWVyYXJjaHksIGhpZXJhcmNoeV9wYXRoIEZST00gIiAuIGNtc19kYl9wcmVmaXgoKS4iY29udGVudCBXSEVSRSAoIi4kd2hlcmUuIikiOw0KCQkkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCAkd2hlcmV2YWx1ZXMpOw0KCQl3aGlsZSgkZGJyZXN1bHQgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSl7DQoJCQkkb3V0cHV0WyRpZHRvbGFuZ1skcm93WyJjb250ZW50X2lkIl1dXSA9IGFycmF5KCJ1cmwiPT4kYmFzZV91cmwuJHJvd1siaGllcmFyY2h5X3BhdGgiXSwgIm5hbWUiPT4kcm93WyJjb250ZW50X25hbWUiXSwgIm1lbnVfdGV4dCI9PiRyb3dbIm1lbnVfdGV4dCJdKTsNCgkJfQ0KCQlyZXR1cm4gJG91dHB1dDsNCgl9DQoNCglmdW5jdGlvbiBnZXRfdXJsdHlwZSgpew0KCQlpZihmdW5jdGlvbl9leGlzdHMoJ2Ntc21zJykpeyAkZ0NtcyA9IGNtc21zKCk7IH1lbHNleyBnbG9iYWwgJGdDbXM7CX0NCgkJJHJlZGlyZWN0aW9uID0gZmFsc2U7DQoJCWlmKGlzc2V0KCRnQ21zLT5jb25maWdbInVybF9yZXdyaXRpbmciXSkpew0KCQkJLy8gY29yZSAxLjYgb3IgbW9yZQ0KCQkJJHJlZGlyZWN0aW9uID0gJGdDbXMtPmNvbmZpZ1sidXJsX3Jld3JpdGluZyJdOw0KCQl9ZWxzZXsNCgkJCS8vIGNvcmUgYmVsb3cgMS42DQoJCQlpZigkZ0Ntcy0+Y29uZmlnWyJhc3N1bWVfbW9kX3Jld3JpdGUiXSl7DQoJCQkJJHJlZGlyZWN0aW9uID0gIm1vZF9yZXdyaXRlIjsNCgkJCX1lbHNlaWYoISRnQ21zLT5jb25maWdbImFzc3VtZV9tb2RfcmV3cml0ZSJdICYmICRnQ21zLT5jb25maWdbImludGVybmFsX3ByZXR0eV91cmxzIl0pew0KCQkJCSRyZWRpcmVjdGlvbiA9ICJpbnRlcm5hbCI7DQoJCQl9DQoJCX0JCQ0KCQlyZXR1cm4gJHJlZGlyZWN0aW9uOw0KCX0NCg0KCWZ1bmN0aW9uIGdldF9iYXNlX3VybCgpew0KCQlpZihmdW5jdGlvbl9leGlzdHMoJ2Ntc21zJykpeyAkZ0NtcyA9IGNtc21zKCk7IH1lbHNleyBnbG9iYWwgJGdDbXM7CX0NCgkJJHJlZGlyZWN0aW9uID0gJHRoaXMtPmdldF91cmx0eXBlKCk7DQoJCSRiYXNldXJsID0gJGdDbXMtPmNvbmZpZ1sncm9vdF91cmwnXTsNCgkJaWYoJHJlZGlyZWN0aW9uID09ICJtb2RfcmV3cml0ZSIpew0KCQkJJGJhc2V1cmwgLj0gJy8nOw0KCQl9ZWxzZWlmKCRyZWRpcmVjdGlvbiA9PSAiaW50ZXJuYWwiKXsNCgkJCSRiYXNldXJsIC49ICcvaW5kZXgucGhwLyc7DQoJCX1lbHNlew0KCQkJJGJhc2V1cmwgLj0gJy9pbmRleC5waHA/Jy4kZ0Ntcy0+Y29uZmlnWydxdWVyeV92YXInXS4nPSc7DQoJCX0NCgkJcmV0dXJuICRiYXNldXJsOw0KCX0NCgkNCglmdW5jdGlvbiBtb2R1bGVfZ2V0X3VybCgpew0KCQlyZXR1cm4gYXJyYXkoKTsNCgkJLy8gZXZlbnR1YWxseSwgc29tZSBjdXN0b20gY29kZSBoZXJlIGNhbiBjaGVjayBpZiB3ZSBhcmUgaW4gYSBtb2R1bGUgYWN0aW9uDQoJCS8vIGFuZCByZXRyaWV2ZSBsYW5ndWFnZSBsaW5rcyBmcm9tIHRoZSBtb2R1bGUNCgl9DQoJDQp9DQoNCg==]]></data>
	</file>
	<file>
	  <filename>/changelog.txt</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[VkVSU0lPTiAwLjQKLSBhZGRlZCBjb21wYXRpYmlsaXR5IHdpdGggY21zbXMgMS45KwotIHNvbHZlZCBhc3NpZ24gYnVnICgjNTM4NikKLSBwb3NzaWJpbGl0eSB0byBkZWxldGUgbGFuZ3VhZ2UgZW50cmllcyAoYnVnICM0NzU4KQotIGFkZGVkIEZSICM1Mzg1CgpWRVJTSU9OIDAuMy40Ci0gc29sdmVkIGJ1Z3MgIzQxNzAsIzQxODcsIzQxODgsIzQxODksIzQyMDYKClZFUlNJT04gMC4zLjM6Ci0gc29sdmVkIHRoZSBibGFuayBwYWdlIHByb2JsZW0gaW4gcmVkaXJlY3QucGhwCgpWRVJTSU9OIDAuMy4yOgotIHNvbHZlZCBidWdzICMzOTkzIGFuZCAjMzk5NCAoVGhhbmtzIHRvIEphbiBXYWxkZWNrKQotIGFkZGVkIGZyZW5jaCBsYW5ndWFnZSBmaWxlcwoKVkVSU0lPTiAwLjMuMToKLSBzb2x2ZWQgYnVnICMzOTU5IChodHRwIDQwNCBlcnJvciBvbiByZWRpcmVjdGlvbikgLSBUaGFua3MgdG8gWXVuZwoKVkVSU0lPTiAwLjM6Ci0gY2hhbmdlZCB0aGUgY29kZSB0byBtaW5pbWl6ZSB0aGUgYW1vdW50IG9mIHF1ZXJpZXMKLSByZXBsYWNlZCBsaW5rcyB3aXRoIHVybHMKClZFUlNJT04gMC4yOiBmaXJzdCBwdWJsaWMgdmVyc2lvbgo=]]></data>
	</file>
	<file>
	  <filename>/images/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/images/icon.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhMAAwAOeOAAAAADo6Oj09PT8/P0BAQEFBQUJCQkNDQ0REREVFRUZGRkdHR0hISElJSUpKSktLS0xMTE1NTU5OTk9PT1BQUFFRUVJSUlNTU1RUVFVVVVZWVldXV1hYWFlZWVpaWltbW1xcXF1dXV5eXl9fX2BgYGFhYWJiYmNjY2RkZGVlZWZmZmdnZ2hoaGlpaWpqamtra2xsbG1tbW5ubm9vb3BwcHFxcXJycnNzc3R0dHV1dXZ2dnd3d3h4eHl5eXp6ent7e3x8fH19fX5+fn9/f4CAgIGBgYKCgoODg4SEhIWFhYaGhoeHh4iIiImJiYqKiouLi4yMjI2NjY6Ojo+Pj5CQkJGRkZKSkpOTk5SUlJWVlZaWlpeXl5iYmJmZmZqampubm5ycnJ2dnZ6enp+fn6CgoKGhoaKioqOjo6SkpKWlpaampqenp6ioqKmpqaqqqqurq6ysrK2tra6urq+vr7CwsLGxsbKysrOzs7S0tLW1tba2tre3t7i4uLm5ubq6uru7u7y8vL6+vr+/v8DAwMHBwcLCwsTExMXFxcfHx8vLy83NzdDQ0NPT09fX1////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////yH+EUNyZWF0ZWQgd2l0aCBHSU1QACH5BAEKAP8ALAAAAAAwADAAAAj+AMeUUXMGipAfPIYI8bFDx44fQGawYOHiRIoTJVKoSFGCxQwZMGTIiDFSBo0ZIUfGiPHiBZcvY+DAkXIEiY4eQIQAyQFRRwsUJz6IIGHiRNETKly4WKG0hYwXNmzQoEGyKkssXp4wUaIFjpksUZLs6IHDhg4WJVSsaNFiRQoUF1ewaKECxYoZO2romCFVxpAjQYL0uDEDTR0zU5pgOYPGCxcvNHncoGEixVuNP1G0gAGD5Yq6NoD88KGjRo0YOYIY+TvEBpoya7I8wWLGzZbbX7hw+WFDhVGkGlFQVEqSBowWNgLzAFKjhw6TPIQMMRKEjBgwYcyQccMmTh07drT+dLnSg4aMGjPotrDM4oVSvT168DDCBYkRJESKEDlShId8IdaBIUYYYaQBhhpirHGHGFlIgQMNN9yQwwwvxDBVDBc5VYMNPgSBBBhdZGHFE07wB0RgQQhRxhcCguFFFliU4cUZdFihxRNA9FBGGVnUQEMLSsFQQw44tPCCDD78MEQXYHyxhRa5ddEFdTmFQUYXXmzxRBJNSFGFFV50wQUWXWChBFdUjNEDDE21wNILGgJBxhhjgGGnnV1YUQUURUyRpRVXNLEEE1TAmEUWW0zBRBNFFMGllizI1QJF7bkQQ4RTkFFGGCyCoYUWV1RBRZdWTLHEEmdylQUXIkZRhBD++qmmnxAuaKaCWm3CMMOHZIThRW5bjBnqFElUEYUTTzSBhH5baWFFE8j+YEQROtjwVA4nwTBXCi5E6gIMPmzhBYFhcKGFF796YYURTSSBxBJHDIEfQjolsYQTSTARAw8s2EXXtyvJkAIJKaywAg1abAqGblisyuoVqFInhH1FKAQrDkKkaoQPQBCMggkUwfCCD5vB4JsKMUgxxoBiZKkFF1hqMQUUXUYhBRVSKLHEFErYMNFEJ4zQkQkZrcBmyd++wOYLLChhRhramdvFF190AUUUV0cxRRVYXIFFGFYUEQNwJhC1UcFszTBDt0bG0MINpgFxRRlkpJGGjHWDQYX+zVBQ8SUVWoz60hRIwCDCCSegcOtGbZmgAgw0AFEEDjIsm5MRSjQBBRhrSPFFGnBkEeKqXWgBYxNKXJ1FE1gD0Z5vIlRAQQUXgIDCByaEUMMNNnwwggtNHFTEfRz7QIQYYnBhZZinMyHFE3s3MYUWWOgAxA0lcMBBBhFAgMEFGGjgwfgggFACGmqYsQUYaGgRxRJDrIEdGGN058UVT1QxBRWFXiGmiPq7QQc0kAHxhcADFpBABCSwgQ6AwARrQAOdvICdMIihC2mggxvg0AYviEEPfOjDH+JwqC10QQxfIBNkoJCEKVxhCDkYgQY2wIENEFADE7BAGLizhjPMaQz+TDKDGt5gBjqFgQ118MMc+mCHJwAGBz7IQQ+E0AQagEAFPGBaBy5gAS5awAIaACMLhMC5NdytDChUwxjO0CQvkMEMb9iDH9jQBynIEAMWoIAEMMCBCTCAARVogAMoQIEHWOABEQDj7CoAAiSg725mWNERkmCF9WlBCVKo5BissIQZETFZOIBABihwgQlAoAIVyGMEurdABuRxAhwgAhrOUIaV1QkISPASFYYQBFRJgUxaIcMbwGAGCirBAwlggAMmgAEMZKCLEnAABCZAgQRKQANDgNpreiUGjhFhNWMBwiShEKInTHALYSjDGUBlgtkpEwIWCAEHLJBKDMiOAhv+2AEZzsAY7aBhNDqAmw50EIQMoOAGRBhLD77ZBCY4IQp7SxZgVBCCD2jgAg6QZiozgIENxGANbFiDG9oA0iAM4QejQcITpBABDHzgBTjIERBukgMg7EcJKEXIckDQQI5awJQRqEAHXLAjH9KtDEA4keT8p4UIcJGPJegBEoYwhB6kSAhCIIIQVDMEIvAgBzXIQAYusAF7SgACIRiDENHwGhR2gUBo7MIYFgABCdCTdhOoQAQ6QIMVaICPz7yAB1AQxSJ9YAJj/WleO2ADJqSBDKwCg3XQwAbukOEBEtCrXmd3AfBNIAKzk0BeG9iBD3BAA9xqQQcakFlCYsADrhH+CBhqeYUvsAEHIxiBAxqgAAc8oAEPMOQG6EnKCTyAlOHjQAc2cAE9MnOPE2jABMAXA+6kYQ1QyNwTrnBRxU7grBJYpGLvCQEINAABDAhucBeISgpM1wIYOC4ItBOGMURBczazwCofkNdUwpeAz3Sm9vjIge9VAAJ/RIABEJBX5GpgdiNwERfEMLMnIKEGFXBA9wDJUdqNtaOdhW/tQhCCBpaVAhB4wAIQgAAFgE+xHciCY8QgBS/BAAQgbq4FmLtjGm5ArATsYgcyUOAZ/rWLFuhABzyAAQcc4AAO2MB9QoUFKjhBBgO8QAXE2sy/dqCGF82Ajy3ggQ58L3wX3XL+R/8qZgwwoAAE+EEQzpSFKQhhBIf1qQXG2tkbfo8CHiiwYD9Q1gsAOXyl1J4N8+jMESTEoVGQXQT+2IAGJEABByBAiysd3MyGIIwZqIAGwpgCD/x41KVdbgFJOUAPuGANS3jCKTfwAQ+EWoHKRGQEHmDeBSjAAinIaEtrqIQLaG+5vgOBCAJt6CFz4ARjmAEQMHsBDSxXezU8rYm/F0YFWIEBCmBAAhzAAC544AMfkOcIQqDsMmughjQUQRU+/eLTvhufHGByR8s8vncfQAczHAEKNqCG0z4gAQugAAfwTGjTlm/JRSjrdy8wZLGmcrofkEAGal1aG1LgDDcQQL/0LjAEEoBgBCT4tAQWkOQll7bWHmCCBMKbQw40F8hlBUFnQ6DkEi95A4hQQBBC0IIlsHvduCtBCTIwyI4KbQQgOAIBFqDAJB971DRkNwk8kNsSlHnJD0DBF9QACMMNcANcD4EIlG5ym5N1AzQggAGe3FsFvn3J5UOBCEZAtBEomQQdSOshFrEDEJi2hiSuqNIdSAJCY6ADsrN5ASBwAAMMQAHhZoBdO/qBxpcAzyU4wQSYYAhFpMEDIBgfrcvHgbXXWu0gICDFXzCCDAihB0XgNhhR/+W86lcBBhCzB06wBTUU4twjWPayP5B6EnCgfCL46wUCAgA7]]></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[PD9waHANCiRsYW5nWyJmcmllbmRseW5hbWUiXSA9ICJCYWJlbDogTXVsdGlsaW5ndWFsIHNpdGUiOw0KJGxhbmdbIm1vZGRlc2NyaXB0aW9uIl0gPSAiQWxsb3dzIHRoZSBtYW5hZ2VtZW50IG9mIChhbmQgbmF2aWdhdGlvbiB0aHJvdWdoKSBtdWx0aXBsZSBsYW5ndWFnZXMgZm9yIHRoZSBmcm9udGVuZC4iOw0KJGxhbmdbImFkbWluZGVzY3JpcHRpb24iXSA9ICJNYW5hZ2UgZnJvbnRlbmQgbGFuZ3VhZ2VzIGFuZCBtdWx0aWxpbmd1YWwgYmVoYXZpb3JzLiI7DQoNCiRsYW5nWyJhY3RpdmUiXSA9ICJBY3RpdmUiOwoKJGxhbmdbImxhbmd1YWdlIl0gPSAiTGFuZ3VhZ2UiOw0KJGxhbmdbImxhbmd1YWdlcyJdID0gIkxhbmd1YWdlcyI7DQokbGFuZ1siYWRkX2xhbmd1YWdlIl0gPSAiQWRkIGxhbmd1YWdlIjsKJGxhbmdbImFkZF9lbnRyeSJdID0gIkFkZCBhIG5ldyBsYW5ndWFnZSBlbnRyeSI7CiRsYW5nWyJlbnRyeSJdID0gIkxhbmd1YWdlIGVudHJ5IjsNCiRsYW5nWyJlZGl0X2xhbmd1YWdlIl0gPSAiRWRpdCBsYW5ndWFnZSI7CiRsYW5nWyJuYW1lIl0gPSAiTmFtZSI7CiRsYW5nWyJlbnRyeW5hbWUiXSA9ICJFbnRyeSBuYW1lICh1c2VkIHRvIGNhbGwgdGhpcyBsYW5ndWFnZSBlbnRyeSkiOwokbGFuZ1sibWVudV9uYW1lIl0gPSAiTWVudSBuYW1lIjsKJGxhbmdbImxhbmdjb2RlIl0gPSAiTGFuZ3VhZ2UgY29kZSI7CiRsYW5nWyJsYW5nY29kZV9wcm9tcHQiXSA9ICJMYW5ndWFnZSBjb2RlIChlZzogZW5fVVMgKSI7CiRsYW5nWyJyb290X2lkIl0gPSAiUm9vdCBwYWdlIGFzc29jaWF0ZWQgd2l0aCB0aGUgbGFuZ3VhZ2UiOwokbGFuZ1siZGVmYXVsdF9pZCJdID0gIkRlZmF1bHQgcGFnZSBmb3IgcmVkaXJlY3Rpb24gdG8gdGhpcyBsYW5ndWFnZSI7CiRsYW5nWyJsYW5nc2VsZWN0Il0gPSAiKG9wdGlvbmFsKSBBdXRvLWZpbGwgZm9yIHRoZSBmb2xsb3dpbmcgbGFuZ3VhZ2U6IjsKJGxhbmdbImlzZGVmYXVsdCJdID0gIkRlZmF1bHQ/IjsKJGxhbmdbImFjdGlvbnMiXSA9ICJBY3Rpb25zIjsKJGxhbmdbImFjdGl2ZSJdID0gIkFjdGl2ZSI7DQokbGFuZ1sicHJvbXB0X2RlbGV0ZWxhbmd1YWdlIl0gPSAiUmVhbGx5IGRlbGV0ZSB0aGlzIGxhbmd1YWdlICglcyk/IjsKJGxhbmdbInByb21wdF9kZWxldGVlbnRyeSJdID0gIlJlYWxseSBkZWxldGUgdGhpcyBlbnRyeT8iOwokbGFuZ1siZGVsZXRlX2VudHJ5Il0gPSAiRGVsZXRlIHRoaXMgZW50cnkiOwoKJGxhbmdbInN1Ym1pdCJdID0gIlN1Ym1pdCI7CiRsYW5nWyJjYW5jZWwiXSA9ICJDYW5jZWwiOwokbGFuZ1siYXBwbHkiXSA9ICJBcHBseSI7DQoKJGxhbmdbImVkaXRfZW50cmllcyJdID0gIkVkaXQgbGFuZ3VhZ2UgZW50cmllcyI7CgoKCg0KJGxhbmdbInRlbXBsYXRlaGVscCJdID0gJzx1bD4KPGxpPiRsYW5ndWFnZXMgKGFycmF5IG9mICRsYW5ndWFnZSk8L2xpPg0KPGxpPiRsYW5ndWFnZS0mZ3Q7bmFtZTwvbGk+DQo8bGk+JGxhbmd1YWdlLSZndDtjb2RlPC9saT4NCjxsaT4kbGFuZ3VhZ2UtJmd0O21lbnVfbmFtZTwvbGk+CjxsaT4kbGFuZ3VhZ2UtJmd0O3BhZ2VfbmFtZTwvbGk+CjxsaT4kbGFuZ3VhZ2UtJmd0O3BhZ2VfbWVudV90ZXh0PC9saT4NCjxsaT4kbGFuZ3VhZ2UtJmd0O3VybDwvbGk+DQo8bGk+JGxhbmd1YWdlLSZndDtpc19jdXJyZW50PC9saT4NCjwvdWw+JzsKCQovLyBHRU5FUkFMCiRsYW5nWyJhY3RpdmF0ZSJdID0gIkFjdGl2YXRlIjsKJGxhbmdbInVuYWN0aXZhdGUiXSA9ICJUdXJuIG9mZiI7CiRsYW5nWyJzZWFyY2h0aGlzdGFibGUiXSA9ICJTZWFyY2ggdGhpcyB0YWJsZSBmb3I6IjsKJGxhbmdbIlllcyJdID0gIlllcyI7CiRsYW5nWyJObyJdID0gIk5vIjsKJGxhbmdbIkFjdGlvbnMiXSA9ICJBY3Rpb25zIjsKJGxhbmdbInJlb3JkZXIiXSA9ICJSZW9yZGVyIjsKJGxhbmdbImxpc3R0ZW1wbGF0ZSJdID0gIkxpc3QgdGVtcGxhdGUgZm9yIjsKJGxhbmdbInRlbXBsYXRlcyJdID0gIk1lbnUgdGVtcGxhdGVzIjsKJGxhbmdbInRlbXBsYXRlIl0gPSAiVGVtcGxhdGUiOwokbGFuZ1siZGVmYXVsdHRlbXBsYXRlIl0gPSAiRGVmYXVsdCB0ZW1wbGF0ZSI7CiRsYW5nWyJ0ZW1wbGF0ZXZhcnMiXSA9ICJUZW1wbGF0ZSB2YXJpYWJsZXMiOwokbGFuZ1siZWRpdHRlbXBsYXRlIl0gPSAiRWRpdCB0ZW1wbGF0ZSI7CiRsYW5nWyJhZGR0ZW1wbGF0ZSJdID0gIkFkZCB0ZW1wbGF0ZSI7CiRsYW5nWyJmaWx0ZXJieSJdID0gIkZpbHRlciBieSI7CiRsYW5nWyJzaG93YWxsIl0gPSAiU2hvdyBhbGwgKG5vIGZpbHRlcikiOwokbGFuZ1sibWVzc2FnZV9kZWxldGVkIl0gPSAiRWxlbWVudCBkZWxldGVkIjsKJGxhbmdbIm1lc3NhZ2VfbW9kaWZpZWQiXSA9ICJNb2RpZmljYXRpb24gc2F2ZWQiOwokbGFuZ1siZXJyb3JfbWlzc2dpbnZhbHVlIl0gPSAiT25lIG9yIG1vcmUgbmVjZXNzYXJ5IHZhbHVlcyBoYXZlIG5vdCBiZWVuIGVudGVyZWQuIjsKJGxhbmdbImVycm9yX2FscmVhZHlleGlzdHMiXSA9ICJUaGVyZSBpcyBhbHJlYWR5IGFuIGVsZW1lbnQgYmVhcmluZyB0aGF0IG5hbWUuIjsKJGxhbmdbImVycm9yX25vcGFyZW50Il0gPSAiTm8gcGFyZW50IGlzIGRlZmluZWQhIjsKJGxhbmdbImVycm9yX25vdGZvdW5kIl0gPSAiVGhlIGl0ZW0gY291bGQgbm90IGJlIGZvdW5kLiI7CiRsYW5nWyJlcnJvcl9ub2l0ZW1mb3VuZCJdID0gIk5vIGl0ZW0gZm91bmQuIjsKJGxhbmdbImVycm9yX2RlbmllZCJdID0gIlBlcm1pc3Npb24gZGVuaWVkIjsKJGxhbmdbImdpdmVuZXJyb3IiXSA9ICJFcnJvcjogIjsKJGxhbmdbInByb21wdF9nZW5lcmFsZGVsZXRlIl0gPSAiRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzPyI7CiRsYW5nWyJyZXN1bHRzIl0gPSAiUmVzdWx0cyI7CgovLyBNT0RVTEUgSU5URVJBQ1RJT04KJGxhbmdbInBvc3RpbnN0YWxsIl0gPSAiTW9kdWxlIHN1Y2Nlc3NmdWxseSBhZGRlZC4iOwokbGFuZ1sicG9zdHVuaW5zdGFsbCJdID0gIk1vZHVsZSBzdWNjZXNzZnVsbHkgcmVtb3ZlZC4iOwokbGFuZ1sicmVhbGx5X3VuaW5zdGFsbCJdID0gIkFsbCBvZiB0aGlzIG1vZHVsZSdzIGNvbnRlbnQgd2lsbCBiZSBsb3N0LiBDb250aW51ZT8iOwokbGFuZ1sidW5pbnN0YWxsZWQiXSA9ICJNb2R1bGUgVW5pbnN0YWxsZWQuIjsKJGxhbmdbImluc3RhbGxlZCJdID0gIk1vZHVsZSB2ZXJzaW9uICVzIGluc3RhbGxlZC4iOwokbGFuZ1siaGVscCJdID0gIjxoMz5XaGF0IERvZXMgVGhpcyBEbz88L2gzPgoJCQkJPHA+VGhpcyBtb2R1bGUgbWFuYWdlcyBtdWx0aXBsZXMgbGFuZ3VhZ2VzIGZvciB0aGUgZnJvbnRlbmQgYW5kIG5hdmlnYXRpb24gdGhyb3VnaCB0aGUgbGFuZ3VhZ2VzLjwvcD4KCQkJPGJyLz48aDM+SG93IERvIEkgVXNlIEl0PzwvaDM+CgkJCQk8YnIvPjxoND5UcmVlIGJyYW5jaGVzPC9oND4KCQkJCQk8cD5UaGlzIG1vZHVsZSB1c2VzIGFuIGFwcHJvYWNoIHRvIG11bHRpbGluZ3VhbCBzaXRlcyBjYWxsZWQgXCJzZXBhcmF0ZWQgdHJlZSBicmFuY2hlc1wiLCB3aGljaCBoYXMgYmVlbiBkZXZlbG9wcGVkIGJ5IG90aGVyIGNtc21zIGRldmVsb3BlcnMgKG5hbWVseSBNYXJjb3MgQ3J1eiAtIHNlZSA8YSBocmVmPVwiaHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnL2luZGV4LnBocC90b3BpYywxOTA5OS5tc2c5NDc0OS5odG1sI21zZzk0NzQ5XCIgdGFyZ2V0PVwiX2JsYW5rXCI+dGhpcyB0b3BpYzwvYT4pLjwvcD48YnIvPgoJCQkJCTxwPlNob3VsZCB5b3UgbmVlZCB0byB1c2UgaXQgaW4geW91ciB0ZW1wbGF0ZXMsIHRoZSBjdXJyZW50IGxhbmd1YWdlIGNvZGUgd2lsbCBiZSBzdG9yZWQgaW4gdGhlICQiLiJwYWdlX2xhbmcgdmFyaWFibGUuIE1vcmUgaW5mb3JtYXRpb24gb24gdGhlIGxhbmd1YWdlIGNhbiBhbHNvIGJlIHJldHJpZXZlZCB1c2luZyB0aGUgJCIuInBhZ2VfbGFuZ19pbmZvIG9iamVjdCAod2l0aCB0aGUgc2FtZSBhdHRyaWJ1dGVzIGFzIGluIHRoZSBtZW51IHRlbXBsYXRlcykuPC9wPgoJCQkJPGg0PlBhcnQgMTogc2V0dGluZyB1cCB0aGUgcGFnZXM8L2g0PgkJCQoJCQkJCTxwPlRvIHVzZSB0aGlzLCB5b3Ugd2lsbCBoYXZlIHRvIGNyZWF0ZSBkaWZmZXJlbnQgcm9vdCBwYWdlcyBmb3IgZWFjaCBsYW5ndWFnZS4gRm9yIGV4YW1wbGU6PC9wPgoJCQkJCTx1bD4KCQkJCQkJPGxpPjEuIEVuZ2xpc2g8dWw+CgkJCQkJCQk8bGk+MS4xLiAxc3QgcGFnZTwvbGk+CgkJCQkJCQk8bGk+MS4yLiAybmQgcGFnZTwvbGk+CgkJCQkJCQk8bGk+MS4zLiAzcmQgcGFnZTwvbGk+CgkJCQkJCTwvdWw+PC9saT4KCQkJCQkJPGxpPjIuIEZyYW4mY2NlZGlsO2Fpczx1bD4KCQkJCQkJCTxsaT4yLjEuIFBhZ2UgMTwvbGk+CgkJCQkJCQk8bGk+Mi4yLiBQYWdlIDI8L2xpPgoJCQkJCQkJPGxpPjIuMy4gUGFnZSAzPC9saT4KCQkJCQkJPC91bD48L2xpPgoJCQkJCTwvdWw+CgkJCQkJPHA+Um9vdCBsYW5ndWFnZSBwYWdlcyAoMS4gYW5kIDIuKSBzaG91bGQgYmUgc2VjdGlvbiBoZWFkZXJzLiBZb3UgY2FuIG5hbWUgdGhlbSAoYWxpYXMgYW5kIGFsbCkgYW55IHdheSB5b3Ugd2FudC48L3A+CgkJCQkJPHA+SW4gb3JkZXIgdG8gZGlzcGxheSBtZW51IGNvcnJlY3RseSAodGhhdCBpcywgbm90IHRvIGRpc3BsYXkgbGFuZ3VhZ2UgaGVhZGVyIHBhZ2VzIGFuZCBwYWdlcyBiZWxvbmdpbmcgdG8gb3RoZXIgbGFuZ3VhZ2VzKSwgYWxsIHlvdSBoYXZlIHRvIGRvIGlzIGFkZCB0aGUgc3RhcnRfbGV2ZWw9XCIyXCIgdG8geW91ciBtZW51IHRhZ3M6PGJyLz4KCQkJCQl7bWVudSBzdGFydF9sZXZlbD1cIjJcIn08L3A+CgkJCQk8YnIvPjxoND5QYXJ0IDI6IHNldHRpbmcgdXAgdGhlIGxhbmd1YWdlczwvaDQ+CgkJCQkJPHA+TmV4dCwgZ28gdG8gRXh0ZW5zaW9ucy0mZ3Q7QmFiZWw6IE11bHRpbGluZ3VhbCBzaXRlLiBGb3IgZWFjaCBsYW5ndWFnZSwgY2xpY2sgQWRkIExhbmd1YWdlIGFuZCBlbnRlciB0aGUgYXBwcm9wcmlhdGUgaW5mb3JtYXRpb25zLiBUaGUgXCJSb290IHBhZ2VcIiBzaG91bGQgYmUgdGhlIHNlY3Rpb24gaGVhZGVycyB5b3UndmUgY3JlYXRlZCBmb3IgZWFjaCBsYW5ndWFnZSAoMS5FbmdsaXNoLCAyLkZyYW4mY2NlZGlsO2FpcykuIFRoZSBcIkRlZmF1bHQgcGFnZVwiIHNob3VsZCBiZSB0aGUgaG9tZSBwYWdlIGZvciBlYWNoIGxhbmd1YWdlLiBBcyBvZiB0aGUgbGFuZ3VhZ2UgY29kZSwgeW91IGNvdWxkIHVzZSBhbnkgNSBjaGFyYWN0ZXJzIGNvZGUsIGJ1dCBpbiBvcmRlciB0byBwcm92aWRlIGdvb2QgY29tcGF0aWJpbGl0eSB3aXRoIHRoZSBtb2R1bGVzLCB5b3Ugc2hvdWxkIHVzZSB0aGUgc2FtZSBhcyB0aGUgY21zICh5b3UgbWF5IHVzZSB0aGUgZHJvcCBkb3duIGxpc3Qgb24gdGhlIHRvcCByaWdodCB0byBwYXJ0aWFsbHkgZmlsbCB0aGUgZm9ybSkuPC9wPgoJCQkJCTxwPiggKldoZW4gcmVhZHksIG1ha2Ugc3VyIHlvdSBhY3RpdmF0ZSBlYWNoIGxhbmd1YWdlLi4uICk8L3A+CgkJCQk8YnIvPjxoND5QYXJ0IDM6IExhbmd1YWdlIG1lbnU8L2g0PgoJCQkJCTxwPlRvIGdldCBhIGxhbmd1YWdlIG1lbnUsIHlvdSBtYXkgdXNlIHRoZSBmb2xsb3dpbmcgdGFnOjxici8+CgkJCQkJe2JhYmVsIGFjdGlvbj1cIm1lbnVcIn08YnIvPgoJCQkJCW9yLCB0byB1c2UgYSB0ZW1wbGF0ZSBvdGhlciB0aGFuIHRoZSBkZWZhdWx0IG9uZTo8YnIvPgoJCQkJCXtiYWJlbCBhY3Rpb249XCJtZW51XCIgdGVtcGxhdGU9XCJ0ZW1wbGF0ZV9uYW1lXCJ9PC9wPgoJCQkJCTxwPlRoZSBcInNob3dcIiBwYXJhbWV0ZXIgY2FuIGJlIHVzZWQgdG8gY2hvb3NlIHdoaWNoIGxhbmd1YWdlcyBzaG91bGQgYmUgZGlzcGxheWVkLjwvcD4KCQkJCTxici8+PGg0PlBhcnQgNCAob3B0aW9uYWwpIDogQ3VzdG9tIGxhbmd1YWdlIGVudHJpZXM8L2g0PgoJCQkJCTxwPkluIG1vZHVsZXMsIGdsb2JhbCBjb250ZW50IGJsb2NrcyBvciB3aGF0c29ldmVyLCB5b3Ugd2lsbCBuZWVkIHRvIGNoYW5nZSB0aGUgY29udGVudCBkZXBlbmRpbmcgb24gdGhlIGxhbmd1YWdlLiBUaGUgdHJhZGl0aW9uYWwgd2F5IHRvIGRvIHRoaXMgd2FzIHRvIGNyZWF0ZSBjb25kaXRpb25zIHdpdGggdGhlIHBhZ2VfbGFuZyB2YXJpYWJsZTo8YnIvPgoJCQkJCXtpZiAkIi4icGFnZV9sYW5nID09IFwiZW5fVVNcIn1FbmdsaXNoIHRleHR7ZWxzZWlmICQiLiJwYWdlX2xhbmcgPT0gXCJmcl9GUlwifVRleHRlIGVuIGZyYW4mY2NlZGlsO2Fpc3svaWZ9PC9wPgoJCQkJCTxwPldpbGwgeW91IGNhbiBzdGlsbCB1c2UgdGhpcyBtZXRob2Qgd2l0aCB0aGUgbW9kdWxlLCBhbm90aGVyIG1vcmUgY2VudHJhbGl6ZWQgd2F5IGlzIHByb3ZpZGVkLiBJbiB0aGUgYWRtaW4gcGFuZWwgb2YgdGhpcyBtb2R1bGUsIHlvdSB3aWxsIGZpbmQgZm9yIGVhY2ggbGFuZ3VhZ2UgYSBsaW5rIHRvIGVkaXQgdGhlIGxhbmd1YWdlIGVudHJpZXMuIExhbmd1YWdlIGVudHJpZXMgYXJlIHN0cmluZ3MgdGhhdCBleGlzdCBmb3IgZWFjaCBsYW5ndWFnZSBidXQgaG9sZCBkaWZmZXJlbnQgdGV4dCAob3IgaHRtbCkuIFdoYXQgeW91IGNhbiBkbyBpcyB0byBjcmVhdGUgYSBuZXcgbGFuZ3VhZ2UgZW50cnkgKGZvciBleGFtcGxlOiBcIndlbGNvbWUgdGV4dFwiLCBlbnRlciBpdHMgY29udGVudCBmb3IgYWxsIGxhbmd1YWdlcywgYW5kIHNpbXBseSBjYWxsIHRoZSBlbnRyeSB3aGVyZXZlciB5b3UgbmVlZCBpdCB1c2luZyB0aGUgZGVmYXVsdCBhY3Rpb246PGJyLz4KCQkJCQl7YmFiZWwgc2hvdz1cIndlbGNvbWUgdGV4dFwifTxici8+CgkJCQkJU2hvdWxkIHlvdSBldmVyIG5lZWQgdG8gZWRpdCB0aGUgc3RyaW5ncyBhbmQgYWRkIGxhbmd1YWdlcywgeW91IHdpbGwgZmluZCB0aGlzIHNvbHV0aW9uIHRvIGJlIG1vcmUgaGFuZHkuIEJ1dCBpZiB5b3UgcHJlZmVyIHRoZSBvbGQgb25lLCBpdCB3aWxsIHdvcmsganVzdCBhcyBtdWNoLjwvcD4KCQkJCQk8cD5Zb3UgY2FuIGFsc28gYXNzaWduIGxhbmd1YWdlIGVudHJpZXMgdG8gc21hcnR5IHZhcmlhYmxlcywgdXNpbmc6IDxici8+CgkJCQkJe2JhYmVsIHNob3c9XCJ3ZWxjb21lIHRleHRcIiBhc3NpZ249XCJ3ZWxjb21lXCJ9PGJyLz4KCQkJCQlvciwgaWYgeW91IHdhbnQgdG8gYXNzaWduIG11bHRpcGxlIGVudHJpZXMsIHNlcGVyYXRlIHRoZW0gYnkgY29tbWFzOjxici8+CgkJCQkJe2JhYmVsIHNob3c9XCJlbnRyeTEsZW50cnkyLGVudHJ5M1wiIGFzc2lnbj1cInZhcjEsdmFyMix2YXIzXCJ9PC9wPgoJCQk8YnIvPjxoMz5MYW5ndWFnZSByZWRpcmVjdGlvbiBtZXRob2RzPC9oMz4JCgkJCQk8cD5UaGVyZSBhcmUgdHdvIHBvc3NpYmxlIG1ldGhvZHMgdG8gdGVsbCB0aGUgY21zIHdoaWNoIHBhZ2UgaXMgdGhlIGVxdWl2YWxlbnQgaW4gYW5vdGhlciBsYW5ndWFnZSBvZiBhIGdpdmVuIHBhZ2UuIEJ5IGRlZmF1bHQsIHRoZSBoaXJlcmFyY2h5IHNvbHV0aW9uIGlzIGFjdGl2YXRlZCwgYnV0IHlvdSBjYW4gY2hhbmdlIHRoYXQgaW4gdGhlIHNldHRpbmdzIHRhYi48L3A+CgkJCQk8YnIvPjxoND5NYXJjb3MgQ3J1eidzIGRlZmluaXRpb24gc29sdXRpb248L2g0PgoJCQkJCTxwPjxpPlByb3M6PC9pPiBhbGxvd3MgdGhpZ2h0IGN1c3RvbWl6YXRpb24gYW5kIHBhcnRpYWwgdHJhbnNsYXRpb24uPGJyLz4KCQkJCQk8aT5Db25zOjwvaT4gbmVlZCB0byBzcGVjaWZ5IGxhbmd1YWdlIGFsdGVybmF0aXZlcyBmb3IgZWFjaCBwYWdlLCBhbmQgdG8gdXBkYXRlIGl0IGlmIGFuIGFsaWFzIGNoYW5nZXMuPC9wPgoJCQkJCTxwPkFkZCB0aGUgZm9sbG93aW5nIHRhZyBpbiBlYWNoIG9mIHlvdXIgcGFnZSB0ZW1wbGF0ZXMgOjxici8+CgkJCQkJe2NvbnRlbnQgYmxvY2s9J090aGVyIGxhbmd1YWdlcycgb25lbGluZT0ndHJ1ZScgYXNzaWduPW90aGVyX2xhbmd1YWdlcyB3eXNpd3lnPSdmYWxzZSd9PGJyLz4KCQkJCQlUaGlzIHdpbGwgYWRkIGEgY29udGVudCBibG9jayB0byBiZSBmaWxsZWQgd2hlbiB5b3UgZWRpdCB0aGUgcGFnZS4gV2Ugd2lsbCB1c2UgdGhpcyBibG9jayB0byBkZWZpbmUgdGhlIGVxdWl2YWxlbnRzIGluIG90aGVyIGxhbmd1YWdlcyBmb3IgdGhpcyBwYWdlLCBieSBmaWxsaW5nIGl0IGluIHRoZSBmb2xsb3dpbmcgd2F5Ojxici8+CgkJCQkJXCJlbl9VUz1wYWdlMTtmcl9GUj1wYWdlMjtkZV9ERT1wYWdlM1wiICh3aXRob3V0IHRoZSBxdW90ZXMgLSB0aGUgb3JkZXIgZG9lcyBub3QgbWF0dGVyLCBidXQgbm8gc3BhY2VzIGFyZSBhbGxvd2VkKTxici8+CgkJCQkJd2hlcmUgcGFnZTEsIHBhZ2UyIGFuZCBwYWdlMyBhcmUgdGhlIHBhZ2UgYWxpYXNlcy48L3A+CgkJCQkJPHA+VG8gbWFrZSBzdXJlIHRoZSBtb2R1bGVzIHVzZXMgdGhpcyBtZXRob2QsIG1ha2Ugc3VyZSB0byB1bnRpY2sgdGhlIFwiVXNlIGhpZXJhcmNoeSBmb3IgcmVkaXJlY3Rpb25cIiBvcHRpb24gaW4gdGhlIHNldHRpbmdzIHRhYi48L3A+CgkJCQk8YnIvPjxoND5UaGUgaGllcmFyY2h5IHNvbHV0aW9uPC9oND4KCQkJCQk8cD48aT5Qcm9zOjwvaT4gaXQncyBhdXRvbWF0aWMgLSB5b3UgZG9uJ3QgaGF2ZSB0byBkbyBhbnl0aGluZy48YnIvPgoJCQkJCTxpPkNvbnM6PC9pPiB0aGUgcGFnZSBzdHJ1Y3R1cmUgbXVzdCBiZSBpZGVudGljYWwgZm9yIGVhY2ggbGFuZ3VhZ2UuPC9wPgoJCQkJCTxwPlRoaXMgc29sdXRpb24gdXNlcyB0aGUgcGFnZSBoaWVyYXJjaHkgdG8ga25vdyB3aGljaCBwYWdlcyBhcmUgZXF1aXZhbGVudC4gSW4gb3VyIGV4YW1wbGUgYWJvdmUsIFwiMi4zLiBQYWdlIDNcIiB3b3VsZCBiZSB0aGUgZnJlbmNoIGVxdWl2YWxlbnQgb2YgXCIxLjMuIDNyZCBwYWdlXCIsIGJlY2F1c2UgaXQgb2NjdXBpZXMgdGhlIGVxdWl2YWxlbnQgcG9zaXRpb24gaW4gdGhlIGZyZW5jaCBicmFuY2guPGJyLz4KCQkJCQlJbiBvdGhlciB3b3Jkcywgc2hvdWxkIHRoZSBwYWdlIGJlIG9yZGVyZWQgZGlmZmVyZW50bHksIGFsbCB3b3VsZCBiZSBtZXNzZWQgdXA6PC9wPgoJCQkJCTx1bD4KCQkJCQkJPGxpPjEuIEVuZ2xpc2g8dWw+CgkJCQkJCQk8bGk+MS4xLiAxc3QgcGFnZTwvbGk+CgkJCQkJCQk8bGk+MS4yLiAybmQgcGFnZTwvbGk+CgkJCQkJCQk8bGk+MS4zLiAzcmQgcGFnZTwvbGk+CgkJCQkJCTwvdWw+PC9saT4KCQkJCQkJPGxpPjIuIEZyYW4mY2NlZGlsO2Fpczx1bD4KCQkJCQkJCTxsaT4yLjEuIFBhZ2UgMTwvbGk+CgkJCQkJCQk8bGk+Mi4yLiBQYWdlIDM8L2xpPgoJCQkJCQkJPGxpPjIuMy4gUGFnZSAyPC9saT4KCQkJCQkJPC91bD48L2xpPgoJCQkJCTwvdWw+CgkJCQkJPHA+SGVyZSwgXCJQYWdlIDJcIiBvY2N1cGllcyB0aGUgdGhpcmQgcG9zaXRpb24sIHNvIGl0IHdvdWxkIGJlIGRlZW1lZCBlcXVpdmFsZW50IHRvIHRoZSAzcmQgcGFnZSBpbiBlbmdsaXNoLjxici8+CgkJCQkJVGhpcyBhbHNvIG1lYW5zIHRoYXQgaWYgYWxsIHBhZ2VzIGRvIG5vdCBleGlzdCBpbiBhbGwgbGFuZ3VhZ2VzLCB5b3UgaGF2ZSB0byBiZSBjYXJlZnVsLiBGb3IgZXhhbXBsZTo8L3A+CgkJCQkJPHVsPgoJCQkJCQk8bGk+MS4gRW5nbGlzaDx1bD4KCQkJCQkJCTxsaT4xLjEuIDFzdCBwYWdlPC9saT4KCQkJCQkJCTxsaT4xLjIuIDJuZCBwYWdlPC9saT4KCQkJCQkJCTxsaT4xLjMuIDNyZCBwYWdlPC9saT4KCQkJCQkJPC91bD48L2xpPgoJCQkJCQk8bGk+Mi4gRnJhbiZjY2VkaWw7YWlzPHVsPgoJCQkJCQkJPGxpPjIuMS4gUGFnZSAyPC9saT4KCQkJCQkJCTxsaT4yLjIuIFBhZ2UgMzwvbGk+CgkJCQkJCTwvdWw+PC9saT4KCQkJCQk8L3VsPgoJCQkJCTxwPkhlcmUsIFwiMXN0IHBhZ2VcIiB3b3VsZCBiZSB0YWtlbiB0byBiZSBlcXVpdmFsZW50IHRvIFwiUGFnZSAyXCIgYW5kIFwiM3JkIHBhZ2VcIiB3b3VsZCBiZSBkZWVtZWQgdG8gaGF2ZSBubyB0cmFkdWN0aW9uLCBhbHRob3VnaCBpdCBkb2VzLjwvcD4KCQkJPGJyLz48aDM+VHJvdWJsZXNob290aW5nPC9oMz4KCQkJCTxwPlBhZ2UgbGFuZ3VhZ2Ugc2hvdWxkIGJlIGRldGVjdGVkIGFuZCBhc3NpZ25lZCB0byB0aGUgc21hcnR5IHZhcmlhYmxlcyBiZWZvcmUgdGhlIHRlbXBsYXRlIGlzIHByb2Nlc3NlZCBieSBhbiBldmVudCBoYW5kbGVyLiBIb3dldmVyLCBpdCBpcyBwb3NzaWJsZSB0aGF0IGF0IHNvbWUgcG9pbnQgaW4gdGhlIHBhZ2UgdGVtcGxhdGUgdGhlIHBhZ2UgbGFuZ3VhZ2UgaXMgbG9zdCAoZXNwZWNpYWxseSBzaW5jZSB0aGUgcGFnZSBoZWFkIGlzIHByb2Nlc3NlZCBzZXBhcmF0bHkgZnJvbSB0aGUgcGFnZSBib2R5KS4gU2hvdWxkIGl0IGhhcHBlbmQsIHlvdSBjYW4gdXNlIHRoZSB0YWcge2JhYmVsIGFjdGlvbj1cImFzc2lnblwifSB0byByZWFzc2lnbiBpdC48YnIvPgoJCQkJTm90ZSB0aGF0IHlvdSBtYXkgYWxzbyB1c2Uge2JhYmVsIGFjdGlvbj1cImF1dG9fcmVkaXJlY3RcIiBhdCB0aGUgYmVnaW5uaW5nIG9mIHlvdXIgdGVtcGxhdGUgaWYsIGZvciBzb21lIHJlYXNvbiwgcmVkaXJlY3Rpb24gZG9lcyBub3Qgb2NjdXIgKEkgZG9uJ3Qgc2VlIHdoeSB0aGlzIHNob3VsZCBoYXBwZW4gdGhvdWdoKS48L3A+CgkJCTxici8+PGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+CgkJCQk8cD5UaGlzIG1vZHVsZSBoYXMgYmVlbiBjcmVhdGVkIGJ5IFBpZXJyZS1MdWMgR2VybWFpbiAocGxnZXIpLCBiYXNlZCBvbiBhbiBhcHByb2FjaCBieSBNYXJjb3MgQ3J1eiwgYW5kIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBHTlUgUHVibGljIExpY2Vuc2UuPC9wPjxici8+PGJyLz4iOwoKCi8vU0VUVElOR1MKJGxhbmdbInNldHRpbmdzIl0gPSAiU2V0dGluZ3MiOwokbGFuZ1sicHJlZl9hdXRvcmVkaXJlY3RfaG9tZSJdID0gIkF1dG8tcmVkaXJlY3Qgb24gaG9tZSBwYWdlIGJhc2VkIG9uIHJlcXVlc3QgKGJyb3dzZXIpIGxhbmd1YWdlPyo8YnIvPldoZW4gdGhlIHVzZXIgZ2V0cyBvbiBhIGhvbWUgcGFnZSAoYSBwYWdlIGRlZmluZWQgYXMgZGVmYXVsdCBwYWdlIGZvciBhIGxhbmd1YWdlKSwgaWYgaGlzIGJyb3dzZXIgbGFuZ3VhZ2UgaXMgZGlmZmVyZW50IGZyb20gdGhlIHBhZ2UgbGFuZ3VhZ2UgaGUgd2lsbCBiZSByZWRpcmVjdGVkIHRvIHRoZSBhcHByb3ByaWF0ZSBwYWdlLiI7CiRsYW5nWyJwcmVmX2F1dG9yZWRpcmVjdF9hbGwiXSA9ICJBdXRvLXJlZGlyZWN0IG9uIGFsbCBwYWdlcyBiYXNlZCBvbiByZXF1ZXN0IGxhbmd1YWdlPyo8YnIvPihzYW1lIGFzIGFib3ZlLCBidXQgZm9yIGFsbCBwYWdlcykiOwokbGFuZ1sicHJlZl9jb29raWVzX2F1dG9yZWRpcmVjdF9ob21lIl0gPSAiQXV0by1yZWRpcmVjdCBvbiBob21lIHBhZ2UgYmFzZWQgb24gbGFuZ3VhZ2Ugc3RvcmVkIGluIGNvb2tpZXM/PGJyLz5JZiB0aGUgdXNlciBoYXMgcHJldmlvdXNseSBuYXZpZ2F0ZWQgdGhlIHNpdGUgaW4gYSBzZWxlY3RlZCBsYW5ndWFnZSBiZWZvcmUsIGhlIHdpbGwgYmUgZm93YXJkZWQgdG8gdGhpcyBsYW5ndWFnZSB1cG9uIHZpc2l0aW5nIGFueSBob21lIHBhZ2UgKGFueSBwYWdlIHRoYXQgaGFzIGJlZW4gc2V0IGFzIGRlZmF1bHQgcGFnZSBmb3IgYSBsYW5ndWFnZSkuIjsKJGxhbmdbInByZWZfY29va2llc19hdXRvcmVkaXJlY3RfYWxsIl0gPSAiQXV0by1yZWRpcmVjdCBvbiBhbGwgcGFnZXMgYmFzZWQgb24gY29va2llcz88YnIvPihzYW1lIGFzIGFib3ZlLCBidXQgZm9yIGFsbCBwYWdlcykiOwokbGFuZ1sicHJlZl9oaWVyYXJjaHlfcmVkaXJlY3QiXSA9ICJVc2UgaGllcmFyY2h5IGZvciByZWRpcmVjdGlvbj8gKHNlZSBoZWxwIGZvciBtb3JlIGluZm8pPGJyLz5UaGlzIG1lYW5zIHRoYXQgdGhlIHBhZ2Ugc3RydWN0dXJlIG11c3QgYmUgZXhhY3RseSB0aGUgc2FtZSBmb3IgYWxsIGxhbmd1YWdlcy4gSWYgeW91IGRvbid0IHVzZSB0aGUgaGllcmFyY2h5LCB5b3Ugd2lsbCBoYXZlIHRvIHNwZWNpZnkgdGhlIHBhZ2VzIG1hbnVhbGx5LiI7CiRsYW5nWyJwcmVmX2RlZmF1bHRfaGlkZSJdID0gIkhpZGUgbWVudSBsaW5rIHdoZW4gdGhlIGFjY29yZGluZyBwYWdlIGRvZXMgbm90IGV4aXN0Pzxici8+SWYgdGhlIGxhbmd1YWdlIGxpbmsgc2hvdWxkIGxlYWQgdG8gYSBwYWdlIHRoYXQgZG9lcyBub3QgZXhpc3QsIGhpZGUgdGhlIGxpbmsgKG90aGVyd2lzZSwgdGhlIGxpbmsgd2lsbCBsZWFkIHRvIHRoZSBsYW5ndWFnZSdzIGRlZmF1bHQgcGFnZSkuIjsKJGxhbmdbInByZWZfZGVmYXVsdF90cmFuc2xhdGUiXSA9ICJVc2UgZGVmYXVsdCBsYW5ndWFnZSB3aGVyZSBsYW5ndWFnZS1zcGVjaWZpYyBlbnRyaWVzIGhhdmVuJ3QgYmVlbiBzdXBwbGllZC4iOwokbGFuZ1sicHJlZl9oaWRlX21pc3NpbmdlbnRyaWVzIl0gPSAiSGlkZSBlcnJvciBtZXNzYWdlIGZvciB1bmtub3duIGxhbmd1YWdlIGVudHJpZXMuIjsKJGxhbmdbInByZWZfd3lzaXd5ZyJdID0gIkVuYWJsZSB3eXNpd3lnIGluIGxhbmd1YWdlIGVudHJpZXMuIjsKJGxhbmdbInByZWZfdXNlX3BhZ2VfdGl0bGUiXSA9ICJVc2UgcGFnZSB0aXRsZSBpbiBsYW5ndWFnZSBsaW5rcyAoaW5zdGVhZCBvZiBsYW5ndWFnZSBuYW1lKS4iOwokbGFuZ1sicHJlZl9jdXJyZW50X2xpbmsiXSA9ICJJbiB0aGUgbGFuZ3VhZ2UgbWVudSwgc2hvdyBsaW5rIGZvciBjdXJyZW50IHBhZ2UgKHRoYXQgaXMsIGN1cnJlbnQgbGFuZ3VhZ2UpIHRvby4iOwokbGFuZ1siaGVscF9yZWRpcmVjdGlvbiJdID0gIipOb3RlOiBJZiB5b3UgdXNlIHJlZGlyZWN0aW9uIGJhc2VkIG9uIHJlcXVlc3QgKGJyb3dzZXIpIGxhbmd1YWdlLCBtYWtlIHN1cmUgdG8gYWN0aXZhdGUgdGhlIGNvcnJlc3BvbmRpbmcgY29va2llIHJlZGlyZWN0aW9uLCBvdGhlcndpc2UgdGhlIHVzZXJzIHdpbGwgYmUgPGI+Zm9yY2VkPC9iPiB0byB2aWV3IHRoZSBwYWdlIGluIHRoZWlyIGJyb3dzZXIgbGFuZ3VhZ2UuIjsKCgovL1BBUkFNRVRFUlMKJGxhbmdbInBoZWxwX2FjdGlvbiJdID0gIlBvc3NpYmxlIGFjdGlvbnM6IFwiZGVmYXVsdFwiIChmb3IgdHJhbnNsYXRpb25zKSBvciBcIm1lbnVcIi4iOwokbGFuZ1sicGhlbHBfc2hvdyJdID0gIkZvciB0aGUgbWVudSBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB3aGljaCBsYW5ndWFnZXMgdG8gc2hvdyBpbiB0aGUgbWVudSAodXNlIGxhbmd1YWdlIGNvZGUgYW5kIHNlcGFyYXRlIHdpdGggYSBjb21tYSkuIEZvciB0aGUgZGVmYXVsdCBhY3Rpb24sIHRoaXMgaG9sZHMgdGhlIGtleSB0byB0aGUgc3RyaW5nIHRvIGJlIHRyYW5zbGF0ZWQuIjsKJGxhbmdbInBoZWxwX3RlbXBsYXRlIl0gPSAiVGVtcGxhdGUgdG8gdXNlIGZvciB0aGUgbWVudS4iOwokbGFuZ1sicGhlbHBfYXNzaWduIl0gPSAiSW5zdGVhZCBvZiBkaXNwbGF5aW5nIHRoZSByZXN1bHQgaW1tZWRpYXRlbHksIHlvdSBjYW4gYXNzaWduIGl0IHRvIGEgc21hcnR5IHZhcmlhYmxlIHNwZWNpZmllZCB3aXRoIHRoZSBcImFzc2lnblwiIHBhcmFtZXRlci4iOwoKCg0KPz4K]]></data>
	</file>
	<file>
	  <filename>/lang/ext/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/ext/fr_FR.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiRsYW5nWyJmcmllbmRseW5hbWUiXSA9ICJCYWJlbDogU2l0ZSBtdWx0aWxpbmd1ZSI7DQokbGFuZ1sibW9kZGVzY3JpcHRpb24iXSA9ICJQZXJtZXQgbGEgZ2VzdGlvbiBkZSBwbHVzaWV1cnMgbGFuZ3VlcyBwb3VyIGxlIGZyb250ZW5kIGV0IGxhIG5hdmlnYXRpb24gw6AgdHJhdmVycyBjZWxsZXMtY2kuIjsNCiRsYW5nWyJhZG1pbmRlc2NyaXB0aW9uIl0gPSAiR2VzdGlvbiBkZXMgbGFuZ3VlcyBkZSBjb250ZW51IGV0IGRlcyBwYXJhbSZlZ3JhdmU7dHJlcyBkZSBsYW5ndWUuIjsKCiRsYW5nWyJsYW5ndWFnZSJdID0gIkxhbmd1ZSI7DQokbGFuZ1sibGFuZ3VhZ2VzIl0gPSAiTGFuZ3VlcyI7DQokbGFuZ1siYWRkX2xhbmd1YWdlIl0gPSAiQWpvdXRlciB1bmUgbGFuZ3VlIjsKJGxhbmdbImFkZF9lbnRyeSJdID0gIkFqb3V0ZXIgdW5lIGVudHImZWFjdXRlO2UgbGluZ3Vpc3RpcXVlIjsKJGxhbmdbImVudHJ5Il0gPSAiRW50ciZlYWN1dGU7ZSBsaW5ndWlzdGlxdWUiOw0KJGxhbmdbImVkaXRfbGFuZ3VhZ2UiXSA9ICJNb2RpZmllciBsYSBsYW5ndWUiOwokbGFuZ1sibmFtZSJdID0gIk5vbSI7CiRsYW5nWyJlbnRyeW5hbWUiXSA9ICJOb20gZGUgbCdlbnRyJmVhY3V0ZTsgKHNlcmEgdXRpbGlzJmVhY3V0ZTsgcG91ciBsJ2FwcGVsZXIpIjsKJGxhbmdbIm1lbnVfbmFtZSJdID0gIk5vbSBkYW5zIGxlIG1lbnUiOwokbGFuZ1sibGFuZ2NvZGUiXSA9ICJDb2RlIGRlIGxhbmd1ZSI7CiRsYW5nWyJsYW5nY29kZV9wcm9tcHQiXSA9ICJDb2RlIGRlIGxhbmdlIChleDogZW5fVVMgKSI7CiRsYW5nWyJyb290X2lkIl0gPSAiUGFnZSByYWNpbmUgYXNzb2NpJmVhY3V0ZTtlICZhZ3JhdmU7IGxhIGxhbmd1ZSI7CiRsYW5nWyJkZWZhdWx0X2lkIl0gPSAiUGFnZSBwYXIgZCZlYWN1dGU7ZmF1dCBwb3VyIGxhIHJlZGlyZWN0aW9uICZhZ3JhdmU7IGNldHRlIGxhbmd1ZSI7CiRsYW5nWyJsYW5nc2VsZWN0Il0gPSAiKGZhY3VsdGF0aWYpIFJlbXBsaXIgYXV0b21hdGlxdWVtZW50IHBvdXIgbGEgbGFuZ3VlIHN1aXZhbnRlOiI7CiRsYW5nWyJpc2RlZmF1bHQiXSA9ICJQYXIgZCZlYWN1dGU7ZmF1dD8iOwokbGFuZ1siYWN0aW9ucyJdID0gIkFjdGlvbnMiOwokbGFuZ1siYWN0aXZlIl0gPSAiQWN0aXZlIjsNCiRsYW5nWyJwcm9tcHRfZGVsZXRlbGFuZ3VhZ2UiXSA9ICJWcmFpbWVudCBzdXBwcmltZXIgY2V0dGUgbGFuZ3VlICglcyk/IjsKJGxhbmdbInByb21wdF9kZWxldGVlbnRyeSJdID0gIlZvdWxlei12b3VzIHZyYWltZW50IHN1cHByaW1lciBjZXR0ZSBlbnRyJmVhY3V0ZTtlPyI7CiRsYW5nWyJkZWxldGVfZW50cnkiXSA9ICJTdXBwcmltZXIgY2V0dGUgZW50ciZlYWN1dGU7ZSI7CgoKJGxhbmdbInN1Ym1pdCJdID0gIkVudm95ZXIiOwokbGFuZ1siY2FuY2VsIl0gPSAiQW5udWxlciI7CiRsYW5nWyJhcHBseSJdID0gIkFwcGxpcXVlciI7DQoKJGxhbmdbImVkaXRfZW50cmllcyJdID0gIk1vZGlmaWVyIGxlcyBlbnRyJmVhY3V0ZTtlcyBsaW5ndWlzdGlxdWVzIjsKCgoKDQokbGFuZ1sidGVtcGxhdGVoZWxwIl0gPSAnPHVsPgo8bGk+JGxhbmd1YWdlcyAoYXJyYXkgb2YgJGxhbmd1YWdlKTwvbGk+DQo8bGk+JGxhbmd1YWdlLSZndDtuYW1lPC9saT4NCjxsaT4kbGFuZ3VhZ2UtJmd0O2NvZGU8L2xpPg0KPGxpPiRsYW5ndWFnZS0mZ3Q7bWVudV9uYW1lPC9saT4KPGxpPiRsYW5ndWFnZS0mZ3Q7cGFnZV9uYW1lPC9saT4KPGxpPiRsYW5ndWFnZS0mZ3Q7cGFnZV9tZW51X3RleHQ8L2xpPg0KPGxpPiRsYW5ndWFnZS0mZ3Q7dXJsPC9saT4NCjxsaT4kbGFuZ3VhZ2UtJmd0O2lzX2N1cnJlbnQ8L2xpPg0KPC91bD4nOwoJCi8vIEdFTkVSQUwKJGxhbmdbImFjdGl2YXRlIl0gPSAiQWN0aXZlciI7CiRsYW5nWyJ1bmFjdGl2YXRlIl0gPSAiRCZlYWN1dGU7c2FjdGl2ZXIiOwokbGFuZ1sic2VhcmNodGhpc3RhYmxlIl0gPSAiQ2hlcmNoZXIgZGFucyBjZSB0YWJsZWF1OiI7CiRsYW5nWyJZZXMiXSA9ICJPdWkiOwokbGFuZ1siTm8iXSA9ICJOb24iOwokbGFuZ1siQWN0aW9ucyJdID0gIkFjdGlvbnMiOwokbGFuZ1sicmVvcmRlciJdID0gIlImZWFjdXRlO29yZG9ubmVyIjsKJGxhbmdbInRlbXBsYXRlcyJdID0gIkdhYmFyaXRzIGRlIG1lbnUiOwokbGFuZ1sidGVtcGxhdGUiXSA9ICJHYWJhcml0IjsKJGxhbmdbImRlZmF1bHR0ZW1wbGF0ZSJdID0gIkdhYmFyaXQgcGFyIGQmZWFjdXRlO2ZhdXQiOwokbGFuZ1sidGVtcGxhdGV2YXJzIl0gPSAiVmFyaWFibGVzIHNtYXJ0eSI7CiRsYW5nWyJlZGl0dGVtcGxhdGUiXSA9ICJNb2RpZmllciBsZSBnYWJhcml0IjsKJGxhbmdbImFkZHRlbXBsYXRlIl0gPSAiQWpvdXRlciB1biBnYWJhcml0IjsKJGxhbmdbImZpbHRlcmJ5Il0gPSAiRmlsdHJlciBwYXIiOwokbGFuZ1sic2hvd2FsbCJdID0gIlRvdXQgYWZmaWNoZXIgKGF1Y3VuIGZpbHRyZSkiOwokbGFuZ1sibWVzc2FnZV9kZWxldGVkIl0gPSAiU3VwcHJpbSZlYWN1dGU7IjsKJGxhbmdbIm1lc3NhZ2VfbW9kaWZpZWQiXSA9ICJNb2RpZmljYXRpb24gc2F1dmVnYXJkJmVhY3V0ZTtlIjsKJGxhbmdbImVycm9yX21pc3NnaW52YWx1ZSJdID0gIkRlcyB2YWxldXJzIG9ibGlnYXRvaXJlcyBzb250IG1hbnF1YW50ZXMuIjsKJGxhbmdbImVycm9yX2FscmVhZHlleGlzdHMiXSA9ICJJbCB5IGEgZCZlYWN1dGU7aiZhZ3JhdmU7IHVuICZlYWN1dGU7bCZlYWN1dGU7bWVudCBwb3J0YW50IGNlIG5vbS4iOwokbGFuZ1siZXJyb3Jfbm90Zm91bmQiXSA9ICJBdWN1biByJmVhY3V0ZTtzdWx0YXQuIjsKJGxhbmdbImVycm9yX25vaXRlbWZvdW5kIl0gPSAiQXVjdW4gciZlYWN1dGU7c3VsdGF0LiI7CiRsYW5nWyJnaXZlbmVycm9yIl0gPSAiRXJyZXVyOiAiOwokbGFuZ1sicHJvbXB0X2dlbmVyYWxkZWxldGUiXSA9ICJTdXBwcmltZXI/IjsKCgovLyBNT0RVTEUgSU5URVJBQ1RJT04KJGxhbmdbInBvc3RpbnN0YWxsIl0gPSAiTW9kdWxlIGFqb3V0JmVhY3V0ZTsuIjsKJGxhbmdbInBvc3R1bmluc3RhbGwiXSA9ICJNb2R1bGUgZCZlYWN1dGU7c2luc3RhbGwmZWFjdXRlOy4iOwokbGFuZ1sicmVhbGx5X3VuaW5zdGFsbCJdID0gIlZyYWltZW50IGQmZWFjdXRlO3NpbnN0YWxsZXIgYmFiZWw/IjsKJGxhbmdbInVuaW5zdGFsbGVkIl0gPSAiTW9kdWxlIGQmZWFjdXRlO3NpbnN0YWxsJmVhY3V0ZTsuIjsKJGxhbmdbImluc3RhbGxlZCJdID0gIk1vZHVsZSB2ZXJzaW9uICVzIGluc3RhbGwmZWFjdXRlOy4iOwoKJGxhbmdbImhlbHAiXSA9ICI8aDM+JnF1b3Q7VHJlZSBicmFuY2hlcyZxdW90OzwvaDM+CgkJCQkJPHA+Q2UgbW9kdWxlIHV0aWxpc2UgdW5lIGFwcHJvY2hlIGRlICZxdW90O2JyYW5jaGVzIHMmZWFjdXRlO3BhciZlYWN1dGU7ZXMmcXVvdDsgKFwic2VwYXJhdGVkIHRyZWUgYnJhbmNoZXNcIikgZGVzIHNpdGVzIG11bHRpbGluZ3VlIGQmZWFjdXRlO3ZlbG9wcCZlYWN1dGU7ZSBwYXIgZCdhdXRyZXMgZCZlYWN1dGU7dmVsb3BwZXVycyBkZSBjbXNtcyAocHJpbmNpcGFsZW1lbnQgTWFyY29zIENydXogLSB2b2lyIDxhIGhyZWY9XCJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmcvaW5kZXgucGhwL3RvcGljLDE5MDk5Lm1zZzk0NzQ5Lmh0bWwjbXNnOTQ3NDlcIiB0YXJnZXQ9XCJfYmxhbmtcIj5jZXR0ZSBjb252ZXJzYXRpb248L2E+KS48L3A+PGJyLz4KCQkJCQk8cD5EYW5zIHZvcyBnYWJhcml0cywgdm91cyBwb3VycmV6IHImZWFjdXRlO2N1cCZlYWN1dGU7cmVyIGxlIGNvZGUgZGUgbGEgbGFuZ3VlIGFjdHVlbGxlICZhZ3JhdmU7IGwnYWlkZSBkZSB7Ii4nJHBhZ2VfbGFuZycuIn0sIGV0IHBsdXMgZCdpbmZvcm1hdGlvbnMgc3VyIGxhIGxhbmd1ZSAmYWdyYXZlOyBsJ2FpZGUgZGUgbCdvYmpldCB7Ii4nJHBhZ2VfbGFuZ19pbmZvJy4ifSAoYXZlYyBsZXMgbSZlY2lyYzttZXMgYXR0cmlidXRzIHF1ZSBkYW5zIGxlcyBnYWJhcml0cyBkZSBtZW51KS48L3A+CgkJCQk8YnIvPjxoMz4mRWFjdXRlO3RhcGUgMTogcHImZWFjdXRlO3BhcmF0aW9uIGRlcyBwYWdlczwvaDM+CQkJCgkJCQkJPHA+Vm91cyBkZXZleiBkJ2Fib3JkIGNyJmVhY3V0ZTtlciBkaWZmJmVhY3V0ZTtyZW50ZXMgcGFnZXMgcmFjaW5lIHBvdXIgY2hhcXVlIGxhbmd1ZS4gUGFyIGV4YW1wbGU6PC9wPgoJCQkJCTx1bD4KCQkJCQkJPGxpPjEuIEVuZ2xpc2g8dWw+CgkJCQkJCQk8bGk+MS4xLiAxc3QgcGFnZTwvbGk+CgkJCQkJCQk8bGk+MS4yLiAybmQgcGFnZTwvbGk+CgkJCQkJCQk8bGk+MS4zLiAzcmQgcGFnZTwvbGk+CgkJCQkJCTwvdWw+PC9saT4KCQkJCQkJPGxpPjIuIEZyYW4mY2NlZGlsO2Fpczx1bD4KCQkJCQkJCTxsaT4yLjEuIFBhZ2UgMTwvbGk+CgkJCQkJCQk8bGk+Mi4yLiBQYWdlIDI8L2xpPgoJCQkJCQkJPGxpPjIuMy4gUGFnZSAzPC9saT4KCQkJCQkJPC91bD48L2xpPgoJCQkJCTwvdWw+CgkJCQkJPHA+TGVzIHBhZ2VzIHJhY2luZSAoMS4gYW5kIDIuKSBkZXZyYWl0ICZlY2lyYzt0cmUgZGVzIGVuLXQmZWNpcmM7dGVzIGRlIHNlY3Rpb24uIFZvdXMgcG91dmV6IGxldXIgZG9ubmVyIG4naW1wb3J0ZSBxdWVsIG5vbSBvdSBhbGlhcy48L3A+CgkJCQkJPHA+UG91ciBhZmZpY2hlciB2b3MgbWVudXMgY29ycmVjdGVtZW50IChjJ2VzdC0mYWdyYXZlOy1kaXJlLCBwb3VyIG5lIHBhcyBhZmZpY2hlciBsZXMgcGFnZXMgcmFjaW5lcyBldCBsZXMgcGFnZXMgZCd1bmUgYXV0cmUgbGFuZ3VlKSwgaWwgdm91cyBzdWZmaXJhIGQnYWpvdXRlciBzdGFydF9sZXZlbD1cIjJcIiAmYWdyYXZlOyB2b3MgYmFsaXNlcyBkZSBtZW51Ojxici8+CgkJCQkJe21lbnUgc3RhcnRfbGV2ZWw9XCIyXCJ9PC9wPgoJCQkJPGJyLz48aDM+JkVhY3V0ZTt0YXBlIDI6IGNyJmVhY3V0ZTthdGlvbiBkZXMgbGFuZ3VlczwvaDM+CgkJCQkJPHA+RW5zdWl0ZSwgcmVuZGV6LXZvdXMgZGFucyBFeHRlbnNpb25zLSZndDtCYWJlbDogU2l0ZSBtdWx0aWxpbmd1ZS4gUG91ciBjaGFxdWUgbGFuZ3VlLCBjbGlxdWV6IEFqb3V0ZXIgdW5lIGxhbmd1ZSBldCBlbnRyZXogbGVzIGluZm9ybWF0aW9ucyBhcHByb3ByaSZlYWN1dGU7ZXMuIExhIFwiUGFnZSByYWNpbmVcIiBkZXZyYWl0ICZlY2lyYzt0cmUgbCdlbi10JmVjaXJjO3RlIGRlIHNlY3Rpb24gcXVlIHZvdXMgYXZleiBjciZlYWN1dGU7JmVhY3V0ZTsgcG91ciBjaGFxdWUgbGFuZ3VlICgxLkVuZ2xpc2gsIDIuRnJhbiZjY2VkaWw7YWlzKS4gTGEgXCJQYWdlIHBhciBkJmVhY3V0ZTtmYXV0XCIgZGV2cmFpdCDDqnRyZSBsYSBwYWdlIGQnYWNjdWVpbCBwb3VyIGNoYXF1ZSBsYW5ndWUuIEVuIGNlIHF1aSBjb25jZXJuZSBsZSBjb2RlIGRlIGxhbmd1ZSwgdm91cyBwb3VycmlleiB1dGlsaXNlciBuJ2ltcG9ydGUgcXVlbCBjb2RlIGRlIDUgY2FyYWN0JmVncmF2ZTtyZXMsIG1haXMgcG91ciB1bmUgYm9ubmUgY29tcGF0aWJpbGl0JmVhY3V0ZTsgYXZlYyBsZXMgYXV0cmVzIG1vZHVsZXMsIGlsIGVzdCBwciZlYWN1dGU7ZiZlYWN1dGU7cmFibGUgZCd1dGlsaXNlciBsZXMgbSZlY2lyYzttZXMgcXVlIGxlIGNtcyAodm91cyBwb3V2ZXogdXRpbGlzZXIgbGEgbGlzdGUgZCZlYWN1dGU7cm91bGFudGUgZW4gaGF1dCAmYWdyYXZlOyBkcm9pdGUgcG91ciByZW1wbGlyIHBhcnRpZWxsZW1lbnQgbGUgZm9ybXVsYWlyZSkuPC9wPgoJCQkJCTxwPiggKkxvcnNxdWUgbGVzIGxhbmd1ZXMgc29udCBwciZlY2lyYzt0ZXMgJmFncmF2ZTsgbCd1dGlsaXNhdGlvbiwgbidvdWJsaWV6IHBhcyBkZSBsZXMgYWN0aXZlci4uLik8L3A+CgkJCQk8YnIvPjxoMz4mRWFjdXRlO3RhcGUgMzogbWVudSBkZSBsYW5ndWVzPC9oMz4KCQkJCQk8cD5Qb3VyIGFmZmljaGVyIGxlIG1lbnUgZGVzIGxhbmd1ZXMsIHV0aWxpc2V6IGxhIGJhbGlzZSBzdWl2YW50ZTo8YnIvPgoJCQkJCXtiYWJlbCBhY3Rpb249XCJtZW51XCJ9PGJyLz4KCQkJCQlvdSwgcG91ciBzcCZlYWN1dGU7Y2lmaWVyIHVuIGF1dHJlIGdhYmFyaXQgcXVlIGNlbHVpIHBhciBkJmVhY3V0ZTtmYXV0Ojxici8+CgkJCQkJe2JhYmVsIGFjdGlvbj1cIm1lbnVcIiB0ZW1wbGF0ZT1cInRlbXBsYXRlX25hbWVcIn08L3A+CgkJCQkJPHA+TGUgcGFyYW0mZWdyYXZlO3RyZSBcInNob3dcIiBwZXV0ICZlY2lyYzt0cmUgdXRpbGlzJmVhY3V0ZTsgcG91ciBjaG9pc2lyIHF1ZWxsZXMgbGFuZ3VlcyBhZmZpY2hlci48L3A+CgkJCQk8YnIvPjxoMz4mRWFjdXRlO3RhcGUgNCAoZmFjdWx0YXRpdmUpIDogRW50ciZlYWN1dGU7ZXMgbGluZ3Vpc3RpcXVlczwvaDM+CgkJCQkJPHA+RGFucyBsZXMgbW9kdWxlcywgbGVzIGJsb2NzIGRlIGNvbnRlbnUgZ2xvYmF1eCBvdSBuJ2ltcG9ydGUgbyZ1Z3JhdmU7LCB2b3VzIGF1cmV6IGJlc29pbiBkJ2FmZmljaGVyIGR1IGNvbnRlbnUgZCZlYWN1dGU7cGVuZGFudCBkZSBsYSBsYW5ndWUuIFRyYWRpdGlvbm5lbGxlbWVudCwgY2VsYSBlc3QgYWNjb21wbGkgZW4gdXRpbGlzYW50IGRlcyBjb25kaXRpb25zIGF2ZWMgbGEgdmFyaWFibGUgcGFnZV9sYW5nOjxici8+CgkJCQkJe2lmICQiLiJwYWdlX2xhbmcgPT0gXCJlbl9VU1wifUVuZ2xpc2ggdGV4dHtlbHNlaWYgJCIuInBhZ2VfbGFuZyA9PSBcImZyX0ZSXCJ9VGV4dGUgZW4gZnJhbiZjY2VkaWw7YWlzey9pZn08L3A+CgkJCQkJPHA+Q2V0dGUgbSZlYWN1dGU7dGhvZGUgZm9uY3Rpb25uZSB0b3Vqb3VycyBhdmVjIGNlIG1vZHVsZSwgbWFpcyB1bmUgYXV0cmUgbSZlYWN1dGU7dGhvZGUsIHBsdXMgY2VudHJhbGlzJmVhY3V0ZTtlLCB2b3VzIGVzdCBvZmZlcnRlLiBEYW5zIGxlIHBhbm5lYXUgZCdhZG1pbmlzdHJhdGlvbiBkdSBtb2R1bGUsIHZvdXMgdHJvdXZlcmV6IHBvdXIgY2hhcXVlIGxhbmd1ZSB1biBsaWVuIHBvdXIgbW9kaWZpZXIgc2VzIGVudHImZWFjdXRlO2VzIGxpbmd1aXN0aXF1ZXMuIExlcyBlbnRyJmVhY3V0ZTtlcyBsaW5ndWlzdGlxdWVzIHNvbnQgZGVzIGJvdXRzIGRlIHRleHRlIChvdSBodG1sKSBheWFudCB1biBjb250ZW51IGRpZmYmZWFjdXRlO3JlbnQgcG91ciBjaGFxdWUgbGFuZ3VlLiBWb3VzIGNyJmVhY3V0ZTtleiB1bmUgZW50ciZlYWN1dGU7ZSBsaW5ndWlzaXRxdWUgKHBhciBleGFtcGxlOiBcIndlbGNvbWUgdGV4dFwiKSwgZW50cmV6IHNvbiBjb250ZW51IHBvdXIgY2hhcXVlIGxhbmd1ZSwgZXQgYXBwZWxleiBsJ2VudHImZWFjdXRlO2UgbGEgb8O5IHZvdXMgZW4gYXZleiBiZXNvaW4gZGFucyBsZXMgZ2FiYXJpdHMgZW4gdXRpbGlzYW50IGwnYWN0aW9uIHBhciBkJmVhY3V0ZTtmYXV0IGV0IGxlIHBhcmFtJmVncmF2ZTt0cmUgXCJzaG93XCI6PGJyLz4KCQkJCQl7YmFiZWwgc2hvdz1cIndlbGNvbWUgdGV4dFwifTxici8+CgkJCQkJU2kgdm91cyBhdmV6IHBsdXNpZXVycyBsYW5ndWVzLCBvdSBzaSB2b3VzIGF2ZXogcGx1cyB0YXJkICZhZ3JhdmU7IG1vZGlmaWVyIGxlcyBlbnRyJmVhY3V0ZTtlcyBvdSBham91dGVyIGRlcyBsYW5ndWVzLCB2b3VzIHRyb3V2ZXogY2V0dGUgc29sdXRpb24gYmVhdWNvdXAgcGx1cyBwcmF0aXF1ZS4gTWFpcyBzaSB2b3VzIHByJmVhY3V0ZTtmJmVhY3V0ZTtyZXogbGEgcHJlbWkmZWdyYXZlO3JlLCBlbGxlIG5lIGZvbmN0aW9ubmUgcGFzIG1vaW5zLjwvcD4KCQkJCQk8cD5JbCBlc3QgYXVzc2kgcG9zc2libGUgZCdhc3NpZ25lciBsZXMgZW50ciZlYWN1dGU7ZXM6IDxici8+CgkJCQkJe2JhYmVsIHNob3c9XCJ3ZWxjb21lIHRleHRcIiBhc3NpZ249XCJ3ZWxjb21lXCJ9PGJyLz4KCQkJCQlvdSwgc2kgdm91cyB2b3VsZXogYXNzaWduZXIgcGx1c2lldXJzIGVudHImZWFjdXRlO2VzIGQndW4gc2V1bCBjb3VwLCBpbCBzdWZmaXQgZGUgbGVzIHMmZWFjdXRlO3BhcmVyIHBhciBkZXMgdmlyZ3VsZXM6PGJyLz4KCQkJCQl7YmFiZWwgc2hvdz1cImVudHJ5MSxlbnRyeTIsZW50cnkzXCIgYXNzaWduPVwidmFyMSx2YXIyLHZhcjNcIn08L3A+CQoJCQk8YnIvPjxoMz5NJmVhY3V0ZTt0aG9kZXMgZGUgcmVkaXJlY3Rpb248L2gzPgkKCQkJCTxwPklsIHkgYSBkZXV4IG0mZWFjdXRlO3Rob2RlcyBwb3NzaWJsZXMgcG91ciBkaXJlIGF1IGNtcyBxdWVsbGUgcGFnZSBlc3QgJmVhY3V0ZTtxdWl2YWxlbnRlICZhZ3JhdmU7IGxhIHBhZ2UgYWN0dWVsbGUuIFBhciBkJmVhY3V0ZTtmYXV0LCBsYSBtJmVhY3V0ZTt0aG9kZSBoaSZlYWN1dGU7cmFyY2hpcXVlIGVzdCBhY3RpdiZlYWN1dGU7ZSwgbWFpcyB2b3VzIHBvdXZleiBjaGFuZ2VyIGRlIG0mZWFjdXRlO3Rob2RlIGRhbnMgbCdvbmdsZXQgcGFyYW0mZWdyYXZlO3RyZXMgZHUgbW9kdWxlLjwvcD4KCQkJCTxici8+PGg0PkxhIG0mZWFjdXRlO3Rob2RlIHBhciBkJmVhY3V0ZTtmaW5pdGlvbiBkZSBNYXJjb3MgQ3J1ejwvaDQ+CgkJCQkJPHA+PGk+QXZhbnRhZ2VzOjwvaT4gUGVybWV0IGxhIHBlcnNvbm5hbGlzYXRpb24gZXQgbGVzIHRyYWR1Y3Rpb25zIHBhcnRpZWxsZXMuPGJyLz4KCQkJCQk8aT5JbmNvbnYmZWFjdXRlO25pZW50czo8L2k+IFZvdXMgZGV2ZXogc3AmZWFjdXRlO2NpZmllciBsZXMgYWx0ZXJuYXRpdmVzIGxpbmd1aXN0aXF1ZXMgcG91ciBjaGFxdWUgcGFnZSwgZXQgbGVzIG1ldHRyZSAmYWdyYXZlOyBqb3VyIHNpciBsJ2FsaWFzIGNoYW5nZS48L3A+CgkJCQkJPHA+QWpvdXRlciBsYSBiYWxpc2Ugc3VpdmFudGUgZGFucyBjaGFjdW4gZGUgdm9zIGdhYmFyaXQgZGUgcGFnZSA6PGJyLz4KCQkJCQl7Y29udGVudCBibG9jaz0nQXV0cmVzIGxhbmd1ZXMnIG9uZWxpbmU9J3RydWUnIGFzc2lnbj1vdGhlcl9sYW5ndWFnZXMgd3lzaXd5Zz0nZmFsc2UnfTxici8+CgkJCQkJVW4gbm91dmVhdSBibG9jIGRlIGNvbnRlbnUgJmFncmF2ZTsgcmVtcGxpciBzZXJhIGFqb3V0JmVhY3V0ZTsgbG9yc3F1ZSB2b3VzIG1vZGlmaWVyIGxhIHBhZ2UuIENlIGJsb2Mgc2VyYSB1dGlsaXMmZWFjdXRlOyBwb3VyIGQmZWFjdXRlO2ZpbmlyIGxlcyAmZWFjdXRlO3F1aXZhbGVudHMgbGluZ3Vpc2l0aXF1ZXMgZGFucyBsZXMgYXV0cmVzIGxhbmd1ZXMgcG91ciBjZXR0ZSBwYWdlLCBkZSBsYSBtYW5pJmVncmF2ZTtyZSBzdWl2YW50ZTo8YnIvPgoJCQkJCVwiZW5fVVM9cGFnZTE7ZnJfRlI9cGFnZTI7ZGVfREU9cGFnZTNcIiAoc2FucyBsZXMgZ3VpbGxlbWV0cyAtIGwnb3JkcmUgZXN0IHNhbnMgaW1wb3J0YW5jZSwgbWFpcyBpbCBuZSBkb2l0IHBhcyB5IGF2b2lyIGQnZXNwYWNlKTxici8+CgkJCQkJbyZ1Z3JhdmU7IHBhZ2UxLCBwYWdlMiBldCBwYWdlMyBzb250IHJlc3BlY3RpdmVtZW50IGxlcyBhbGlhcyBkZXMgcGFnZXMuPC9wPgoJCQkJCTxwPlBvdXIgcXVlIGxlIG1vZHVsZSB1dGlsaXNlIGNldHRlIG0mZWFjdXRlO3Rob2RlLCBhc3N1cmV6LXZvdXMgcXVlIGwnb3B0aW9uIFwiVXRpbGlzZXIgbGEgaGllcmFyY2hpZSBwb3VyIGxhIHJlZGlyZWN0aW9uXCIgZXN0IGQmZWFjdXRlO2NvY2gmZWFjdXRlO2UgZGFucyBsJ29uZ2xldCBwYXJhbSZlZ3JhdmU7dHJlcy48L3A+CgkJCQk8YnIvPjxoND5MYSBtJmVhY3V0ZTt0aG9kZSBoaSZlYWN1dGU7cmFyY2hpcXVlPC9oND4KCQkJCQk8cD48aT5BdmFudGFnZXM6PC9pPiBjJ2VzdCBhdXRvbWF0aXF1ZSAtIHZvdXMgbidhdmV6IHJpZW4gJmFncmF2ZTsgZmFpcmUuPGJyLz4KCQkJCQk8aT5JbmNvbnYmZWFjdXRlO25pZW50czo8L2k+IGxhIHN0cnVjdHVyZSBkZXMgcGFnZXMgZG9pdCAmZWNpcmM7dHJlIGlkZW50aXF1ZSBwb3VyIGNoYXF1ZSBsYW5ndWUuPC9wPgoJCQkJCTxwPkNldHRlIHNvbHV0aW9uIHV0aWxpc2UgbGEgaGkmZWFjdXRlO3JhcmNoaWUgZGVzIHBhZ2VzIHBvdXIgc2F2b2lyIHF1ZWxsZXMgcGFnZXMgc29udCAmZWFjdXRlO3F1aXZhbGVudGVzLiBEYW5zIGwnZXhlbXBsZSBjaS1oYXV0LCBcIjIuMy4gUGFnZSAzXCIgc2VyYWl0IGwnJmVhY3V0ZTtxdWl2YWxlbnQgZnJhbiZjY2VkaWw7YWlzIGRlIFwiMS4zLiAzcmQgcGFnZVwiLCBwYXJjZSBxdSdlbGxlIG9jY3VwZSBsYSBtJmVjaXJjO21lIHBvc2l0aW9uIHJlbGF0aXZlIGRhbnMgbGEgYnJhbmNoZSBmcmFuJmNjZWRpbDthaXNlLjxici8+CgkJCQkJRW4gZCdhdXRyZXMgbW90cywgc2kgbGVzIHBhZ2VzICZlYWN1dGU7dGFpZW50IG9yZG9ubiZlYWN1dGU7ZXMgZGlmZiZlYWN1dGU7cmVtbWVudCwgdG91dCBzZXJhaXQgbSZlYWN1dGU7bGFuZyZlYWN1dGU7OjwvcD4KCQkJCQk8dWw+CgkJCQkJCTxsaT4xLiBFbmdsaXNoPHVsPgoJCQkJCQkJPGxpPjEuMS4gMXN0IHBhZ2U8L2xpPgoJCQkJCQkJPGxpPjEuMi4gMm5kIHBhZ2U8L2xpPgoJCQkJCQkJPGxpPjEuMy4gM3JkIHBhZ2U8L2xpPgoJCQkJCQk8L3VsPjwvbGk+CgkJCQkJCTxsaT4yLiBGcmFuJmNjZWRpbDthaXM8dWw+CgkJCQkJCQk8bGk+Mi4xLiBQYWdlIDE8L2xpPgoJCQkJCQkJPGxpPjIuMi4gUGFnZSAzPC9saT4KCQkJCQkJCTxsaT4yLjMuIFBhZ2UgMjwvbGk+CgkJCQkJCTwvdWw+PC9saT4KCQkJCQk8L3VsPgoJCQkJCTxwPkljaSwgXCJQYWdlIDJcIiBvY2N1cGUgbGEgdHJvaXNpJmVncmF2ZTttZSBwb3NpdGlvbiwgYWluc2kgZWxsZSBzZXJhaXQgcHJpc2UgcG91ciAmZWFjdXRlO3F1aXZhbGVudCAmYWdyYXZlOyBsYSB0cm9pc2kmZWdyYXZlO21lIHBhZ2UgKDEuMy4gM3JkIHBhZ2UpIGVuIGFuZ2xhaXMuPGJyLz4KCQkJCQlDZWxhIHNpZ25pZmllIGF1c3NpIHF1ZSBzaSB0b3V0ZXMgbGVzIHBhZ2VzIG4nZXhpc3RlbnQgcGFzIGRhbnMgdG91dGVzIGxlcyBsYW5ndWVzLCB2b3VzIGRldmV6IGZhaXJlIGF0dGVudGlvbi4gUGFyIGV4YW1wbGU6PC9wPgoJCQkJCTx1bD4KCQkJCQkJPGxpPjEuIEVuZ2xpc2g8dWw+CgkJCQkJCQk8bGk+MS4xLiAxc3QgcGFnZTwvbGk+CgkJCQkJCQk8bGk+MS4yLiAybmQgcGFnZTwvbGk+CgkJCQkJCQk8bGk+MS4zLiAzcmQgcGFnZTwvbGk+CgkJCQkJCTwvdWw+PC9saT4KCQkJCQkJPGxpPjIuIEZyYW4mY2NlZGlsO2Fpczx1bD4KCQkJCQkJCTxsaT4yLjEuIFBhZ2UgMjwvbGk+CgkJCQkJCQk8bGk+Mi4yLiBQYWdlIDM8L2xpPgoJCQkJCQk8L3VsPjwvbGk+CgkJCQkJPC91bD4KCQkJCQk8cD5JY2ksIFwiMXN0IHBhZ2VcIiBzZXJhaXQgbCcmZWFjdXRlO3F1aXZhbGVudCBkZSBcIlBhZ2UgMlwiIGV0IGxlIHN5c3QmZWdyYXZlO21lIGNyb2lyYWl0IHF1ZSBcIjNyZCBwYWdlXCIgbidhIHBhcyBkZSB0cmFkdWN0aW9uLCBhbG9ycyBxdSdlbGxlIGVuIGEgYmllbiB1bmUuPC9wPgoJCQk8YnIvPjxoMz5Qcm9ibCZlZ3JhdmU7bWVzPC9oMz4KCQkJCTxwPkxhIGxhbmd1ZSBkZSBsYSBwYWdlIGRldnJhaXQgJmVjaXJjO3RyZSBkJmVhY3V0ZTt0ZWN0JmVhY3V0ZTtlIGF1dG9tYXRpcXVlbWVudCAoc3VyIGxhIGJhc2UgZCd1biAmZWFjdXRlO3YmZWFjdXRlO25lbWVudCkgZXQgYXNzaWduJmVhY3V0ZTtlIGF1eCB2YXJpYWJsZXMgc21hcnR5IGF2YWl0IHF1ZSBsZSBnYWJhcml0IG5lIHNvaXQgdHJhaXQmZWFjdXRlOy4gSWwgZXN0IHRvdXRlZm9pcyBwb3NzaWJsZSBxdScmYWdyYXZlOyBjZXJ0YWlucyBlbmRyb2l0cyBkYW5zIGxlIGdhYmFyaXQgZGUgcGFnZSAoY29uc2lkJmVhY3V0ZTtyYW50IHF1J2lsIGVzdCB0cmFpdCZlYWN1dGU7IHBhciBtb3JjZWF1eCkgbGEgdmFyaWFibGUgY29udGVudSBsYSBsYW5ndWUgc29pdCBwZXJkdWUuIFNpIHZvdXMgcmVuY29udHJleiBkZXMgcHJvYmwmZWdyYXZlO21lcyBkZSBjZSBnZW5yZSwgdm91cyBwb3V2ZXogdXRpbGlzZXIgbGEgYmFsaXNlIHtiYWJlbCBhY3Rpb249XCJhc3NpZ25cIn0gcG91ciBsYSByJmVhY3V0ZTthc3NpZ25lci48YnIvPgoJCQkJTm90ZXogcXVlIHZvdXMgcG91dmV6IGF1c3NpIHV0aWxpc2VyIHtiYWJlbCBhY3Rpb249XCJhdXRvX3JlZGlyZWN0XCJ9IGF1IGQmZWFjdXRlO2J1dCBkZSB2b3MgZ2FiYXJpdCBzaSAoamUgbmUgdm9pcyBwYXMgZGUgcmFpc29uKSBsYSByZWRpcmVjdGlvbiBuZSBzJ2VmZmVjdHVlIHBhcyBhdXRvbWF0aXF1ZW1lbnQuPC9wPgoJCQk8YnIvPjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPgoJCQkJPHA+Q2UgbW9kdWxlIGEgJmVhY3V0ZTt0JmVhY3V0ZTsgY3ImZWFjdXRlOyZlYWN1dGU7IHBhciBQaWVycmUtTHVjIEdlcm1haW4gKHBsZ2VyKSwgYmFzJmVhY3V0ZTsgc3VyIHVuZSBhcHByb2NoZSBwYXIgTWFyY29zIENydXosIGV0IGVzdCByZW5kdSBwdWJsaXF1ZSBzb3VzIGxhIEdOVSBQdWJsaWMgTGljZW5zZS48L3A+PGJyLz48YnIvPiI7CgoKLy9TRVRUSU5HUwokbGFuZ1sic2V0dGluZ3MiXSA9ICJQYXJhbSZlZ3JhdmU7dHJlcyI7CiRsYW5nWyJwcmVmX2F1dG9yZWRpcmVjdF9ob21lIl0gPSAiUmVkaXJlY3Rpb24gYXV0b21hdGlxdWUgc3VyIGxlcyBwYWdlcyBzZWxvbiBsYSBsYW5ndWUgZHUgbmF2aWdhdGV1cj8qPGJyLz5Mb3JzcXVlIGwndXRpbGlzYXRldXIgYXJyaXZlIHN1ciB1bmUgZGVzIHBhZ2VzIGQnYWNjdWVpbCwgc2kgbGEgbGFuZ3VlIGRlIHNvbiBuYXZpZ2F0ZXVyIGNvcnJlc3BvbmQgJmFncmF2ZTsgbCd1bmUgZGVzIGxhbmd1ZXMgZGlzcG9uaWJsZXMgaWwgc2VyYSByZWRpcmlnJmVhY3V0ZTsgdmVycyBjZXR0ZSBsYW5ndWUuIjsKJGxhbmdbInByZWZfYXV0b3JlZGlyZWN0X2FsbCJdID0gIlJlZGlyZWN0aW9uIGF1dG9tYXRpcXVlIHBvdXIgdG91dGVzIGxlcyBwYWdlcyBzZWxvbiBsYSBsYW5ndWUgZHUgbmF2aWdhdGV1cj8qPGJyLz4oY29tbWUgbCdvcHRpb24gcHImZWFjdXRlO2MmZWFjdXRlO2RlbnRlLCBtYWlzIHBvdXIgdG91dGVzIGxlcyBwYWdlcykiOwokbGFuZ1sicHJlZl9jb29raWVzX2F1dG9yZWRpcmVjdF9ob21lIl0gPSAiUmVkaXJlY3Rpb24gYXV0b21hdGlxdWUgc2Vsb24gbGEgbGFuZ3VlIGVucmVnaXN0ciZlYWN1dGU7ZSBkYW5zIGxlcyBjb29raWVzIHBvdXIgbGVzIHBhZ2VzIGQnYWNjdWVpbD88YnIvPlNpIGwndXRpbGlzYXRldXIgYXJyaXZlIHN1ciB1bmUgZGVzIHBhZ2VzIGQnYWNjdWVpbCBldCBhIGF1cGFyYXZhbnQgbmF2aWd1JmVhY3V0ZTsgbGUgc2l0ZSBkYW5zIHVuZSBhdXRyZSBsYW5ndWUsIGlsIHNlcmEgcmVkaXJpZyZlYWN1dGU7IHZlcnMgY2V0dGUgbGFuZ3VlLiI7CiRsYW5nWyJwcmVmX2Nvb2tpZXNfYXV0b3JlZGlyZWN0X2FsbCJdID0gIlJlZGlyZWN0aW9uIGF1dG9tYXRpcXVlIHNlbG9uIGxhIGxhbmd1ZSBlbnJlZ2lzdHImZWFjdXRlO2UgZGFucyBsZXMgY29va2llcyBwb3VyIHRvdXRlcyBsZXMgcGFnZXM/PGJyLz4oY29tbWUgbCdvcHRpb24gcHImZWFjdXRlO2MmZWFjdXRlO2RlbnRlLCBtYWlzIHBvdXIgdG91dGVzIGxlcyBwYWdlcykiOwokbGFuZ1sicHJlZl9oaWVyYXJjaHlfcmVkaXJlY3QiXSA9ICJVdGlsaXNlciBsYSBoaSZlYWN1dGU7cmFyY2hpZSBwb3VyIGxhIHJlZGlyZWN0aW9uPyAodm9pciBsJ2FpZGUgcG91ciBwbHVzIGQnaW5mb3JtYXRpb24pPGJyLz5DZWxhIGltcGxpcXVlIHF1ZSBsYSBzdHJ1Y3R1cmUgZGVzIHBhZ2VzIGRvaXQgJmVjaXJjO3RyZSBsYSBtJmVjaXJjO21lIHBvdXIgY2hhcXVlIGxhbmd1ZS4gU2kgdm91cyBuJ3V0aWxpc2V6IHBhcyBjZXR0ZSBvcHRpb24sIGlsIHZvdXMgZmF1ZHJhIGQmZWFjdXRlO2ZpbmlyIGxlcyBhbHRlcm5hdGl2ZXMgbGluZ3Vpc3RpcXVlcyBtYW51ZWxsZW1lbnQuIjsKJGxhbmdbInByZWZfZGVmYXVsdF9oaWRlIl0gPSAiQ2FjaGVyIGxlIGxpZW4gZGFucyBsZSBtZW51IGRlIGxhbmd1ZXMgbG9yc3F1ZSBsYSBwYWdlIG4nZXhpc3RlIHBhcy48YnIvPlNpIGxlIGxpZW4gZGUgbGFuZ3VlIHBvaW50ZSB2ZXJzIHVuZSBwYWdlIHF1aSBuJ2V4aXN0ZSBwYXMsIGNhY2hlciBsZSBsaWVuIChzaW5vbiwgbGUgbGllbiBwb2ludGVyYSB2ZXJzIGxhIHBhZ2UgcGFyIGQmZWFjdXRlO2ZhdXQgZGUgbGEgbGFuZ3VlKS4iOwokbGFuZ1sicHJlZl9kZWZhdWx0X3RyYW5zbGF0ZSJdID0gIlV0aWxpc2VyIGxhIGxhbmd1ZSBwYXIgZCZlYWN1dGU7ZmF1dCBsb3JzcXVlIGxlcyBlbnRyJmVhY3V0ZTtlcyBsaW5ndWlzdGlxdWVzIHNvbnQgdmlkZXMgcG91ciBsYSBsYW5ndWUgYWN0dWVsbGUuIjsKJGxhbmdbInByZWZfaGlkZV9taXNzaW5nZW50cmllcyJdID0gIkNhY2hlciBsZXMgbWVzc2FnZXMgZCdlcnJldXIgcG91ciBsZXMgZW50ciZlYWN1dGU7ZXMgbGluZ3Vpc3RpcXVlcyBpbmNvbm51ZXMuIjsKJGxhbmdbInByZWZfd3lzaXd5ZyJdID0gIkFjdGl2ZXIgbGUgd3lzaXd5ZyBkYW5zIGxlcyBlbnRyJmVhY3V0ZTtlcyBsaW5ndWlzdGlxdWVzLiI7CiRsYW5nWyJwcmVmX3VzZV9wYWdlX3RpdGxlIl0gPSAiVXRpbGlzZXIgbGUgdGl0cmUgZGVzIHBhZ2VzIGRhbnMgbGVzIGxpZW5zIGR1IG1lbnUgZGUgbGFuZ3VlcyAocGx1dCZvY2lyYzt0IHF1ZSBsZSBub20gZGUgbGEgbGFuZ3VlKS4iOwokbGFuZ1sicHJlZl9jdXJyZW50X2xpbmsiXSA9ICJEYW5zIGxlIG1lbnUgZGUgbGFuZ3VlcywgYWZmaWNoZXIgYXVzc2kgbGUgbGllbiB2ZXJzIGxhIHBhZ2UgKGxhIGxhbmd1ZSkgYWN0dWVsbGUuIjsKJGxhbmdbImhlbHBfcmVkaXJlY3Rpb24iXSA9ICIqTm90ZTogU2kgdm91cyB1dGlsaXNleiBsYSByZWRpcmVjdGlvbiBzZWxvbiBsYSBsYW5ndWUgZHUgbmF2aWdhdGV1ciwgYXNzdXJlei12b3VzIGQndXRpbGlzZXIgYXVzc2kgbGEgcmVkaXJlY3Rpb24gcGFyIGNvb2tpZXMgY29ycmVzcG9uZGFudGUsIHNpbm9uIHZvcyB1dGlsaXNhdGV1cnMgc2Vyb250IDxiPmZvcmMmZWFjdXRlO3M8L2I+IGRlIHZvaXIgbGEgcGFnZSBkYW5zIGxhIGxhbmd1ZSBkZSBsZXVyIG5hdmlnYXRldXIuIjsKCgovL1BBUkFNRVRFUlMKJGxhbmdbInBoZWxwX2FjdGlvbiJdID0gIkFjdGlvbnMgZGlzcG9uaWJsZXM6IFwiZGVmYXVsdFwiIChwb3VyIGxlcyB0cmFkdWN0aW9ucykgb3UgXCJtZW51XCIuIjsKJGxhbmdbInBoZWxwX3Nob3ciXSA9ICJQb3VyIGwnYWN0aW9uIG1lbnUsIHNwJmVhY3V0ZTtjaWZpZSBsZXMgbGFuZ3VlcyAmYWdyYXZlOyBhZmZpY2hlciAodXRpbGlzZXIgbGVzIGNvZGVzIGRlIGxhbmd1ZSBldCBzJmVhY3V0ZTtwYXJlciBwYXIgZGVzIHZpcmd1bGVzKS4gUG91ciBsJ2FjdGlvbiBwYXIgZCZlYWN1dGU7ZmF1dCwgc3AmZWFjdXRlO2NpZmllIGxlIG5vbSBkZSBsJ2VudHImZWFjdXRlO2UgbGluZ3Vpc3RpcXVlICZhZ3JhdmU7IGFmZmljaGVyLiI7CiRsYW5nWyJwaGVscF90ZW1wbGF0ZSJdID0gIkdhYmFyaXQgJmFncmF2ZTsgdXRpbGlzZXIgcG91ciBsZSBtZW51LiI7CiRsYW5nWyJwaGVscF9hc3NpZ24iXSA9ICJQbHV0Jm9jaXJjO3QgcXVlIGQnYWZmaWNoZXIgbGUgciZlYWN1dGU7c3VsdGF0IGltbSZlYWN1dGU7ZGlhdGVtZW50LCB2b3VzIHBvdXZleiBsJ2Fzc2lnbmVyICZhZ3JhdmU7IGxhIHZhcmlhYmxlIHNwJmVhY3V0ZTtjaWZpJmVhY3V0ZTtlIHBhciBjZSBwYXJhbSZlZ3JhdmU7dHJlLiI7CgoKDQo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCmlmKCFpc3NldCgkZ0NtcykpIGV4aXQ7DQoNCi8vIFR5cGljYWwgRGF0YWJhc2UgSW5pdGlhbGl6YXRpb24NCiRkYiA9ICYkdGhpcy0+Y21zLT5kYjsNCiRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoJGRiKTsNCgkJDQovLyBteXNxbC1zcGVjaWZpYywgYnV0IGlnbm9yZWQgYnkgb3RoZXIgZGF0YWJhc2UNCiR0YWJvcHRhcnJheSA9IGFycmF5KCJteXNxbCIgPT4gIlRZUEU9TXlJU0FNIik7DQoNCg0KLy8gQ3JlYXRlcyB0aGUgbGFuZ3VhZ2VzIHRhYmxlDQokZmxkcyA9ICINCglsYW5nY29kZSBDKDgpIEtFWSwNCglyb290X2lkIEksDQoJZGVmYXVsdF9pZCBJLA0KCW5hbWUgQyg2NCksDQoJbWVudV9uYW1lIEMoNjQpLA0KCWFjdGl2ZSBMLA0KCWl0ZW1fb3JkZXIgSQ0KCSI7DQoNCiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9iYWJlbF9sYW5ndWFnZXMiLCAkZmxkcywgJHRhYm9wdGFycmF5KTsNCiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsNCiRkYi0+Q3JlYXRlU2VxdWVuY2UoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfYmFiZWxfbGFuZ3VhZ2VzX3NlcSIpOw0KCQ0KDQovLyBDcmVhdGVzIHRoZSBsYW5ndWFnZSBrZXlzIHRhYmxlDQokZmxkcyA9ICINCglzdHJpbmdpZCBJIEtFWSwNCgljYXB0aW9uIEMoMTI4KQ0KCSI7DQoNCiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9iYWJlbF9sYW5na2V5cyIsICRmbGRzLCAkdGFib3B0YXJyYXkpOw0KJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOw0KJGRiLT5DcmVhdGVTZXF1ZW5jZShjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9iYWJlbF9sYW5na2V5c19zZXEiKTsNCg0KDQovLyBDcmVhdGVzIHRoZSBsYW5ndWFnZSBlbnRyaWVzIHRhYmxlDQokZmxkcyA9ICINCglzdHJpbmdpZCBJLA0KCWxhbmdjb2RlIEMoNSksDQoJdmFsdWUgQygyNTUpDQoJIjsNCg0KJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2JhYmVsX2xhbmdlbnRyaWVzIiwgJGZsZHMsICR0YWJvcHRhcnJheSk7DQokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7DQoNCiR0aGlzLT5DcmVhdGVQZXJtaXNzaW9uKCJhZG1pbl9iYWJlbCIsICJCYWJlbDogYWRtaW4iKTsNCg0KJG1vZHByZWZzID0gJHRoaXMtPmdldF9tb2RwcmVmcygpOw0KZm9yZWFjaCgkbW9kcHJlZnMgYXMgJG9uZXByZWYpCSR0aGlzLT5TZXRQcmVmZXJlbmNlKCRvbmVwcmVmWzBdLCRvbmVwcmVmWzFdKTsNCg0KJGRlZnRwbCA9ICc8dWwgaWQ9Imxhbmd1YWdlX21lbnUiPg0Ke2ZvcmVhY2ggZnJvbT0kbGFuZ3VhZ2VzIGl0ZW09Imxhbmd1YWdlIn0NCiAgIHtpZiAkbGFuZ3VhZ2UtPmlzX2N1cnJlbnR9PGxpIGNsYXNzPSJhY3RpdmUiPjxhIHtpZiAkbGFuZ3VhZ2UtPnVybH1ocmVmPSJ7JGxhbmd1YWdlLT51cmx9IiB7L2lmfWNsYXNzPSJhY3RpdmUiPntlbHNlfTxsaT48YSBocmVmPSJ7JGxhbmd1YWdlLT51cmx9Ij57L2lmfXskbGFuZ3VhZ2UtPm1lbnVfbmFtZX08L2E+PC9saT4NCnsvZm9yZWFjaH0NCjwvdWw+JzsNCiR0aGlzLT5TZXRUZW1wbGF0ZSgiZGVmYXVsdCIsJGRlZnRwbCk7DQokdGhpcy0+U2V0UHJlZmVyZW5jZSgiZGVmYXVsdHRlbXBsYXRlIiwiZGVmYXVsdCIpOw0KJHRoaXMtPlJlZ2lzdGVyRXZlbnRzKCk7DQoNCi8vIHB1dCBtZW50aW9uIGludG8gdGhlIGFkbWluIGxvZw0KCSR0aGlzLT5BdWRpdCggMCwgJHRoaXMtPkxhbmcoImZyaWVuZGx5bmFtZSIpLCAkdGhpcy0+TGFuZygiaW5zdGFsbGVkIiwkdGhpcy0+R2V0VmVyc2lvbigpKSk7DQoNCj8+DQo=]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCmlmKCFpc3NldCgkZ0NtcykpIGV4aXQ7DQoNCi8vIFR5cGljYWwgRGF0YWJhc2UgSW5pdGlhbGl6YXRpb24NCiRkYiA9ICYkdGhpcy0+Y21zLT5kYjsNCiRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoJGRiKTsNCg0KDQoNCgkkc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2JhYmVsX2xhbmd1YWdlcyIpOw0KCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsNCgkkZGItPkRyb3BTZXF1ZW5jZShjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9iYWJlbF9sYW5ndWFnZXNfc2VxIik7DQoJDQoNCgkkc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2JhYmVsX2xhbmdrZXlzIik7DQoJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOw0KCSRkYi0+RHJvcFNlcXVlbmNlKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2JhYmVsX2xhbmdrZXlzX3NlcSIpOw0KCQ0KDQoJJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9iYWJlbF9sYW5nZW50cmllcyIpOw0KCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsNCgkNCgkkdGhpcy0+RGVsZXRlVGVtcGxhdGUoIiIsJHRoaXMtPkdldE5hbWUoKSk7DQoNCgkkdGhpcy0+UmVtb3ZlUGVybWlzc2lvbigiYWRtaW5fYmFiZWwiKTsNCgkkdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgpOw0KDQovLyBwdXQgbWVudGlvbiBpbnRvIHRoZSBhZG1pbiBsb2cNCgkkdGhpcy0+QXVkaXQoIDAsICR0aGlzLT5MYW5nKCJmcmllbmRseW5hbWUiKSwgJHRoaXMtPkxhbmcoInVuaW5zdGFsbGVkIikpOw0KDQo/Pg0K]]></data>
	</file>
	<file>
	  <filename>/redirect.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKZXJyb3JfcmVwb3J0aW5nKDApOwppZighaXNzZXQoJF9HRVRbIm5ld3VybCJdKSApewoJaGVhZGVyKCJsb2NhdGlvbjogaW5kZXgucGhwIik7Cn1lbHNlewoJaWYoaXNzZXQoJF9HRVRbIm5ld2xhbmciXSkpCXNldGNvb2tpZSgndXNybGFuZycsJF9HRVRbIm5ld2xhbmciXSx0aW1lKCkrODY0MDAqMzAsJy8nKTsKCWhlYWRlcigibG9jYXRpb246ICIuJF9HRVRbIm5ld3VybCJdKTsKfQo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/adminpanel.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHA+eyRhZGRuZXd9PC9wPgp7aWYgY291bnQoJGl0ZW1saXN0KSA+IDB9CjxkaXY+Cjx0YWJsZSBjZWxsc3BhY2luZz0iMCIgY2xhc3M9InBhZ2V0YWJsZSI+Cjx0aGVhZD48dHI+Cgl7Zm9yZWFjaCBmcm9tPSRhZG1pbnNob3cgaXRlbT1jb2x1bW59CgkJPHRoPnskY29sdW1uWzBdfTwvdGg+Cgl7L2ZvcmVhY2h9CjwvdHI+PC90aGVhZD4KPHRib2R5Pgp7Y3ljbGUgdmFsdWVzPSJyb3cyLHJvdzEiIGFzc2lnbj1yb3djbGFzcyByZXNldD10cnVlfQp7Zm9yZWFjaCBmcm9tPSRpdGVtbGlzdCBpdGVtPW9uZWl0ZW19CntjeWNsZSB2YWx1ZXM9InJvdzIscm93MSIgYXNzaWduPXJvd2NsYXNzfQo8dHIgY2xhc3M9Inskcm93Y2xhc3N9IiBvbm1vdXNlb3Zlcj0idGhpcy5jbGFzc05hbWU9J3skcm93Y2xhc3N9aG92ZXInOyIgb25tb3VzZW91dD0idGhpcy5jbGFzc05hbWU9J3skcm93Y2xhc3N9JzsiPgoJe2ZvcmVhY2ggZnJvbT0kYWRtaW5zaG93IGl0ZW09Y29sdW1ufQoJCXthc3NpZ24gdmFyPW9uZXZhbCB2YWx1ZT0kY29sdW1uWzFdfQoJCTx0ZD57JG9uZWl0ZW0tPiRvbmV2YWx9PC90ZD4KCXsvZm9yZWFjaH0KPC90cj4Key9mb3JlYWNofQo8L3Rib2R5Pgo8L3RhYmxlPgo8L2Rpdj4KPHA+eyRhZGRuZXd9PC9wPnsvaWZ9Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/editlang.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgxPnskZWRpdHRpdGxlfTwvaDE+DQp7aWYgJGxhbmdzZWxlY3R9DQoJPGRpdiBpZD0iYmFiZWxfbGFuZ3NlbGVjdGRpdiIgY2xhc3M9InBhZ2VvdmVyZmxvdyIgc3R5bGU9InRleHQtYWxpZ246IHJpZ2h0OyBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzAwMDsiPg0KCQk8cD57JGxhbmdzZWxlY3RfbGFiZWx9PGJyLz57JGxhbmdzZWxlY3R9PGJyLz48L3A+DQoJPC9kaXY+DQp7L2lmfQ0KDQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG5hbWVfbGFiZWx9KiA6PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JG5hbWVfaW5wdXR9PC9wPg0KCTwvZGl2Pg0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRsYW5nY29kZV9sYWJlbH0qIDo8L3A+DQoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskbGFuZ2NvZGVfaW5wdXR9PC9wPg0KCTwvZGl2Pg0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRtZW51X25hbWVfbGFiZWx9IDo8L3A+DQoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskbWVudV9uYW1lX2lucHV0fTwvcD4NCgk8L2Rpdj4NCgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskcm9vdF9pZF9sYWJlbH0qIDo8L3A+DQoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskcm9vdF9pZF9pbnB1dH08L3A+DQoJPC9kaXY+DQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGRlZmF1bHRfaWRfbGFiZWx9IDo8L3A+DQoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskZGVmYXVsdF9pZF9pbnB1dH08L3A+DQoJPC9kaXY+DQo8YnIvPg0KPHA+eyRzdWJtaXR9IHskYXBwbHl9IHskY2FuY2VsfTwvcD4NCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4NCnZhciBtb2R1bGVpZCA9ICJ7JHBsaWR9IjsNCntsaXRlcmFsfQ0KZnVuY3Rpb24gbGFuZ3VhZ2VmaWxsKHJhd2RhdGEpew0KCXZhciBuZXdkYXRhID0gcmF3ZGF0YS5zcGxpdCgnLycpOw0KCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKG1vZHVsZWlkKydsYW5nY29kZScpLnZhbHVlID0gbmV3ZGF0YVswXTsNCglkb2N1bWVudC5nZXRFbGVtZW50QnlJZChtb2R1bGVpZCsnbmFtZScpLnZhbHVlID0gbmV3ZGF0YVsxXTsNCglkb2N1bWVudC5nZXRFbGVtZW50QnlJZChtb2R1bGVpZCsnbWVudV9uYW1lJykudmFsdWUgPSBuZXdkYXRhWzFdOw0KCXJldHVybiBmYWxzZTsNCn0NCnZhciBsYW5nc2VsZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhYmVsX2xhbmdzZWxlY3RkaXYnKS5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc2VsZWN0Jyk7DQppZihsYW5nc2VsZWN0WzBdKSBsYW5nc2VsZWN0WzBdLm9uY2hhbmdlID0gZnVuY3Rpb24oKXsNCglsYW5ndWFnZWZpbGwodGhpcy52YWx1ZSk7DQp9Ow0KbGFuZ3NlbGVjdCA9IG51bGw7DQp7L2xpdGVyYWx9DQo8L3NjcmlwdD4NCg==]]></data>
	</file>
	<file>
	  <filename>/templates/entriestable.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
</module>
