<?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>FormBuilder</name>
	<version>0.2.4</version>
  <mincmsversion>1.0-svn</mincmsversion>
	<help>PGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+CjxwPlRoZSBGb3JtIEJ1aWxkZXIgTW9kdWxlIGFsbG93cyB5b3UgdG8gY3JlYXRlIGZlZWRiYWNrIGZvcm1zIChpbiBmYWN0LCBpdCdzIGEgcmVwbGFjZW1lbnQgb2YgdGhlIG9yaWdpbmFsIEZlZWRiYWNrIEZvcm0gbW9kdWxlKSwgd2l0aCB0aGUgYWRkZWQgcG93ZXIgb2YgZGF0YWJhc2Ugc3RvcmFnZS4gV2l0aCBpdHMgY29tcGFuaW9uIG1vZHVsZSBGb3JtIEJyb3dzZXIsIHlvdSBjYW4gdXNlIGl0IHRvIGNyZWF0ZSBzaW1wbGUgZGF0YWJhc2UgYXBwbGljYXRpb25zLjwvcD4KPHA+VGhlIGZvcm1zIGNyZWF0ZWQgdXNpbmcgdGhlIEZvcm0gQnVpbGRlciBtYXkgYmUgaW5zZXJ0ZWQKaW50byB0ZW1wbGF0ZXMgYW5kL29yIGNvbnRlbnQgcGFnZXMuIEZvcm1zIG1heSBjb250YWluIG1hbnkga2luZHMgb2YgaW5wdXRzLCBhbmQgbWF5IGhhdmUKdmFsaWRhdGlvbiBhcHBsaWVkIHRvIHRoZXNlIGlucHV0cy4gVGhlIHJlc3VsdHMgb2YgdGhlc2UgZm9ybXMgbWF5IGJlIGhhbmRsZWQgaW4gYSB2YXJpZXR5IG9mIHdheXMuPC9wPgoKPGgzPkhvdyBEbyBJIFVzZSBpdD88L2gzPgo8UD5JbnN0YWxsIGl0LCBhbmQgcG9rZSBhcm91bmQgdGhlIG1lbnVzLiBQbGF5IHdpdGggaXQuIFRyeSBjcmVhdGluZyBmb3JtcywgYW5kIGFkZGluZyB0aGVtIHRvIHlvdXIgY29udGVudC4KSWYgeW91IGdldCBzdHVjaywgY2hhdCB3aXRoIG1lIG9uIHRoZSAjY21zIElSQyBjaGFubmVsLCBwb3N0IHRvIHRoZSBmb3J1bSwgc2VuZCBtZSBlbWFpbCwgb3IsIGlmIHlvdSdyZQpyZWFsbHkgZGVzcGVyYXRlLCByZWFkIHRoZSByZXN0IG9mIHRoaXMgcGFnZS48L1A+Cgo8aDM+SG93IERvIEkgQ3JlYXRlIGEgRm9ybTwvaDM+CjxwPkluIHRoZSBDTVMgQWRtaW4gTWVudSwgeW91IHNob3VsZCBnZXQgYSBuZXcgbWVudSBpdGVtIGNhbGxlZCBGb3JtQnVpbGRlci4gQ2xpY2sgb24gdGhpcy4gT24gdGhlIHBhZ2UKdGhhdCBnZXRzIHNob3duLCB0aGVyZSBhcmUgb3B0aW9ucyAoYXQgdGhlIGJvdHRvbSBvZiB0aGUgbGlzdCBvZiBGb3JtcykgdG8gQWRkIGEgTmV3IEZvcm0gb3IgTW9kaWZ5CkNvbmZpZ3VyYXRpb24uPC9wPgoKPGgzPkFkZGluZyBhIEZvcm0gdG8gYSBQYWdlPC9oMz4KPHA+SW4gdGhlIG1haW4gRm9ybUJ1aWxkZXIgYWRtaW4gcGFnZSwgeW91IGNhbiBzZWUgYW4gZXhhbXBsZSBvZiB0aGUgdGFnIHVzZWQgdG8gZGlzcGxheSBlYWNoIGZvcm0uIEl0IGxvb2tzCnNvbWV0aGluZyBsaWtlIHtjbXNfbW9kdWxlIG1vZHVsZT0nRm9ybUJ1aWxkZXInIGZvcm09J3NhbXBsZV9mb3JtJ308L3A+CjxwPkJ5IGNvcHlpbmcgdGhpcyB0YWcgaW50byB0aGUgY29udGVudCBvZiBhIHBhZ2UsIG9yIGludG8gYSB0ZW1wbGF0ZSwgd2lsbCBjYXVzZSB0aGF0IGZvcm0gdG8gYmUgZGlzcGxheWVkLgpJbiB0aGVvcnksIHlvdSBjYW4gaGF2ZSBtdWx0aXBsZSBmb3JtcyBvbiBhIHBhZ2UgaWYgeW91IHJlYWxseSB3YW50IHRvLiBCZSBjYXJlZnVsIHdoZW4gcGFzdGluZyB0aGUgdGFnCmludG8gYSBwYWdlJ3MgY29udGVudCBpZiB5b3UgdXNlIGEgV1lTSVdZRyBlZGl0b3Igc3VjaCBhcyBUaW55TUNFIG9yIEhUTUxBcmVhLiBUaGVzZSBlZGl0b3JzIG1heSBzdGVhbHRoaWx5CmNoYW5nZSB0aGUgcXVvdGUgbWFya3MgKCIpIGludG8gSFRNTCBlbnRpdGllcyAoJmFtcDtxdW90OyksIGFuZCB0aGUgZm9ybXMgd2lsbCBub3Qgc2hvdyB1cC4gVHJ5IHVzaW5nCnNpbmdsZSBxdW90ZXMgKCcpIG9yIGVkaXRpbmcgdGhlIEhUTUwgZGlyZWN0bHkuCgo8aDM+V29ya2luZyB3aXRoIEZvcm1zPC9oMz4KPHA+QnkgY2xpY2tpbmcgb24gYSBGb3JtJ3MgbmFtZSwgeW91IGVudGVyIHRoZSBGb3JtIEVkaXQgcGFnZS4gVGhlcmUgYXJlIHNldmVyYWwgdGFicywgd2hpY2ggYXJlIGRlc2NyaWJlZCBiZWxvdzo8L3A+CjxoND5NYWluPC9oND4KPHA+VGhpcyBpcyB0aGUgbWFpbiBwbGFjZSB5b3UnbGwgd29yayBvbiB5b3VyIGZvcm0uIEhlcmUsIHlvdSBnaXZlIGl0IGEgbmFtZSwgYW4gYWxpYXMgKHdoaWNoIGlzIHVzZWQgdG8gaWRlbnRpZnkgaXQgZm9yIHBsYWNpbmcgaXQgaW4gYSBwYWdlIG9yIHRlbXBsYXRlKSwgYW5kLCBvcHRpb25hbGx5LCBhIENTUyBjbGFzcyB3aXRoIHdoaWNoIHRvIHdyYXAgdGhlIHdob2xlIHRoaW5nLiBZb3UgYWxzbyBzZWxlY3QgdGhlIGRpc3BsYXkgdHlwZS4gWW91ciBjaG9pY2VzIGFyZTo8L3A+Cjx1bD4KPGxpPlRhYmxlL0NTUy4gVGhlIGZvcm0gaXMgY3JlYXRlZCB1c2luZyBIVE1MIHRhYmxlcy4gSWYgeW91IGRvbid0IGtub3cgd2hhdCB0byBjaG9vc2UsIHRoaXMgaXMgdGhlIGVhc2llc3Qgb3B0aW9uLCBhbmQgd2lsbCBwcm9iYWJseSBkbyBtb3N0IG9mIHdoYXQgeW91IHdhbnQuIFlvdSBjYW4gc3RpbGwgdXNlIENTUyB0byBzdHlsZSB0aGUgZm9ybSBpZiB5b3Ugd2FudC48L2xpPgo8bGk+UHVyZSBDU1MuIFRoZSBmb3JtIGlzIGNyZWF0ZWQsIHdpdGggYWxsIHRoZSBmaWVsZHMgd3JhcHBlZCBpbiAmbHQ7ZGl2Jmd0OyB0YWdzLiBZb3UgY2FuIHRoZW4gc3R5bGUgdGhlIGZvcm0gYXMgeW91IHNlZSBmaXQuPC9saT4KPGxpPkN1c3RvbSBUZW1wbGF0ZS4gQmFzaWNhbGx5LCB5b3UgZ2V0IGEgc21hcnR5IHRlbXBsYXRlLCBhIGJ1bmNoIG9mIHZhcmlhYmxlcywgYW5kIHlvdSdyZSBvbiB5b3VyIG93bi4gWW91IGhhdmUgdGhlIHBvd2VyIHRvIGNyZWF0ZSB3aGF0ZXZlciB5b3Ugd2FudC48L2xpPgo8L3VsPgo8cD5CZWxvdyB0aGlzLCBpZiB5b3UgaGF2ZSBpdCBlbmFibGVkLCBpcyB0aGUgImZhc3QgZmllbGQgYWRkZXIiIHB1bGxkb3duLCB0aGF0IGxldHMgeW91IHF1aWNrbHkgYWRkIGEgZmllbGQgdG8gdGhlIGVuZCBvZiB5b3VyIGZvcm0gYnkgc2VsZWN0aW5nIHRoZSBmaWVsZCB0eXBlLjwvcD4KPHA+QmVsb3cgdGhpcyBpcyB0aGUgbGlzdCBvZiBmaWVsZHMgdGhhdCBtYWtlIHVwIHlvdXIgZm9ybS4gTW9yZSBkZXRhaWwgb24gdGhpcyBpcyBkZXNjcmliZWQgYmVsb3cuPC9wPgo8aDQ+Rm9ybSBTZXR0aW5nczwvaDQ+CjxwPkZvcm0gU2V0dGluZ3MgYWxsb3dzIHlvdSB0byBjdXN0b21pemUgYSBsb3Qgb2YgdGhlIG1lc3NhZ2VzIGFuZCB0ZXh0IGluIHRoZSBjb250cm9scyBmb3IgeW91ciBmb3JtLiBJdCBhbHNvIGFsbG93cyB5b3UgdG8gcGljayBhIHBhZ2UgdG8gcmVkaXJlY3QgdXNlcnMgdG8gYWZ0ZXIgYSBzdWNjZXNzZnVsIGZvcm0gc3VibWlzc2lvbi48L3A+CjxoND5UYWJsZS1iYXNlZCBMYXlvdXQgT3B0aW9uczwvaDQ+CjxwPlRhYmxlLWxheW91dHMgaGF2ZSBnb3R0ZW4gc2ltcGxlciwgc28geW91ciBvbmx5IG9wdGlvbiBoZXJlIGlzIHRoZSBwb3NpdGlvbiBvZiB0aGUgZmllbGQgbmFtZXMgcmVsYXRpdmUgdG8gdGhlIGlucHV0cy4gSWYgeW91J3JlIHVzaW5nIGEgVGFibGUvQ1NTIGxheW91dCwgeW91IGNhbiB1c2UgdGhpcyB0YWIgdG8gc2VsZWN0IHRoZSBmaWVsZCBuYW1lIHBvc2l0aW9ucy48L3A+CjxoND5UZW1wbGF0ZSBMYXlvdXQgT3B0aW9uczwvaDQ+CjxwPlRoaXMgaXMgd2hlcmUgeW91IGRvIHlvdXIgY3VzdG9taXphdGlvbiB3b3JrIGlmIHlvdXIgZm9ybSB1c2VzIGEgQ3VzdG9tIFRlbXBsYXRlLjwvcD4KPHA+VGhlIGZvcm0gc2hvdWxkIGRlZmF1bHQgdG8gYSBhIEN1c3RvbSB0ZW1wbGF0ZSB0aGF0IGRvY3VtZW50cyB0aGUgc21hcnR5IHRhZ3MgYXZhaWxhYmxlIHRvIHlvdS4gVW5sZXNzIHlvdSdyZSBhIHNtYXJ0eSBleHBlcnQsIHlvdSBwcm9iYWJseSBkb24ndCB3YW50IHRvIG1lc3MgYXJvdW5kIHdpdGggdGhpcy4gSWYgeW91IGFyZSBhIHNtYXJ0eSBleHBlcnQsIHRoaXMgaXMgd2hlcmUgeW91IGNhbiB1bmxlYXNoIHlvdXIgbWFnaWMuPC9wPgo8aDM+QWRkaW5nIEZpZWxkcyB0byB5b3VyIEZvcm08L2gzPgo8cD5UaGUgdHlwZXMgb2YgZmllbGRzIHRoYXQgYXJlIGN1cnJlbnRseSBzdXBwb3J0ZWQgZml0IGludG8gZm91ciBncm91cHM6IHN0YW5kYXJkIGlucHV0IGZpZWxkcywgZGlzcGxheSBjb250cm9sIGZpZWxkcywgZW1haWwtc3BlY2lmaWMgZmllbGRzLCBhbmQgZm9ybSByZXN1bHQgaGFuZGxpbmcgZmllbGRzIChhbHNvIGNhbGxlZCBGb3JtIERpc3Bvc2l0aW9ucyBpbiBwbGFjZXMpOjwvcD4KPHVsPgo8bGk+U3RhbmRhcmQgSW5wdXQgRmllbGRzIC0gdGhlc2UgYXJlIGlucHV0cyB0aGF0IGFsbG93IGVudHJ5IG9mIHR5cGljYWwgZm9ybSBlbGVtZW50czsgdGV4dCBpbnB1dHMsIHJhZGlvIGJ1dHRvbnMsIGV0Yy48L2xpPgo8bGk+RGlzcGxheSBDb250cm9sIEZpZWxkcyAtIHRoZXNlIGlucHV0IGNvbnRyb2wgaG93IHRoZSB1c2VyIHdpbGwgc2VlIHRoZSBkaXNwbGF5IG9mIHRoZSBmb3JtOyBwYWdlIGJyZWFrcywgc3RhdGljIHRleHQsIGV0Yy48L2xpPgo8bGk+RW1haWwtc3BlY2lmaWMgRmllbGRzIC0gc29tZSBmb3JtcyBnZW5lcmF0ZSBlbWFpbCwgYW5kIGVtYWlsLXNwZWNpZmljIGZpZWxkcyBjYW4gYWx0ZXIgYXR0cmlidXRlcyBvZiB0aGUgZW1haWxzIHNlbnQuPC9saT4KPGxpPkZvcm0gRGlzcG9zaXRpb25zIC0gVGhlc2UgZGV0ZXJtaW5lIHdoYXQgaGFwcGVucyB3aGVuIHRoZSB1c2VyCnN1Ym1pdHMgdGhlIGZvcm07IGZvciBlYWNoIHJlc3VsdCBoYW5kbGluZyBmaWVsZCwgc29tZSBtZXRob2Qgb2YgdHJhbnNtaXR0aW5nLCBzYXZpbmcsIG9yIGVtYWlsaW5nIHRoZQpmb3JtIGNvbnRlbnRzIHRha2VzIHBsYWNlLiBBIGZvcm0gbWF5IGhhdmUgbXVsdGlwbGUgZm9ybSBkaXNwb3NpdGlvbnMuPC9saT4KPC91bD4KPHA+Rm9ybSBmaWVsZHMgYXJlIGFzc2lnbmVkIG5hbWVzLiBUaGVzZSBuYW1lcyBpZGVudGlmeSB0aGUgZmllbGQsIG5vdCBvbmx5IG9uIHRoZSBzY3JlZW4gYXMgbGFiZWxzIGZvciB0aGUgdXNlciwKYnV0IGluIHRoZSBkYXRhIHdoZW4gaXQncyBzdWJtaXR0ZWQgc28geW91IGtub3cgd2hhdCB0aGUgdXNlciBpcyByZXNwb25kaW5nIHRvLiBQaHJhc2luZyB0aGUgbmFtZSBsaWtlIGEgcXVlc3Rpb24KaXMgYSBoYW5keSB3YXkgb2YgbWFraW5nIGl0IGNsZWFyIHRvIHRoZSB1c2VyIHdoYXQgaXMgZXhwZWN0ZWQuIFNpbWlsYXJseSwgbWFueSBmaWVsZHMgaGF2ZSBib3RoIE5hbWVzIGFuZCBWYWx1ZXMuClRoZSBOYW1lcyBhcmUgd2hhdCBnZXRzIHNob3duIHRvIHRoZSB1c2VyOyB0aGUgVmFsdWUgaXMgd2hhdCBnZXRzIHNhdmVkIG9yIHRyYW5zbWl0dGVkIHdoZW4gdGhlIHVzZXIgc3VibWl0cwp0aGUgZm9ybS4gVGhlIFZhbHVlcyBhcmUgbmV2ZXIgc2VlbiBieSB0aGUgdXNlciwgbm9yIGFyZSB0aGV5IHZpc2libGUgaW4gdGhlIEhUTUwsIHNvIGl0J3Mgc2FmZSB0byB1c2UgZm9yCmVtYWlsIGFkZHJlc3NlcyBhbmQgc3VjaC48L3A+CjxwPlNvbWUgZmllbGRzIGNhbiBoYXZlIG11bHRpcGxlIHZhbHVlcywgb3IgbXVsdGlwbGUgbmFtZS92YWx1ZSBwYWlycy4gV2hlbiB5b3UgZmlyc3QgY3JlYXRlIHN1Y2ggYSBmaWVsZCwKdGhlcmUgbWF5IG5vdCBiZSBzdWZmaWNpZW50IGlucHV0cyBmb3IgeW91IHRvIHNwZWNpZnkgYWxsIHRoZSB2YWx1ZXMgeW91IHdhbnQuIFRvIGdldCBtb3JlIHNwYWNlIGZvciBpbnB1dHRpbmcKdGhlc2UgdmFsdWVzLCB1c2UgdGhlIGJ1dHRvbnMgYXQgdGhlIGJvdHRvbSBvZiB0aGUgcGFnZSBmb3IgYWRkaW5nIG9wdGlvbnMuPC9wPgo8cD5GaWVsZHMgY2FuIGJlIGFzc2lnbmVkIHZhbGlkYXRpb24gcnVsZXMsIHdoaWNoIHZhcnkgYWNjb3JkaW5nIHRvIHRoZSB0eXBlIG9mIHRoZSBmaWVsZC4gVGhlc2UgcnVsZXMgaGVscAplbnN1cmUgdGhhdCB0aGUgdXNlciBlbnRlcnMgdmFsaWQgZGF0YS4gVGhleSBtYXkgYWxzbyBiZQpzZXBhcmF0ZWx5IG1hcmtlZCAiUmVxdWlyZWQiLCB3aGljaCB3aWxsIGZvcmNlIHRoZSB1c2VyIHRvIGVudGVyIGEgcmVzcG9uc2UuPC9wPgo8cD5GaWVsZHMgYWxzbyBtYXkgYmUgYXNzaWduZWQgYSBDU1MgY2xhc3MuIFRoaXMgc2ltcGx5IHdyYXBzIHRoZSBpbnB1dCBpbiBhIGRpdiB3aXRoIHRoYXQgY2xhc3MsIHNvIGFzIHRvIGFsbG93CmN1c3RvbWl6ZWQgbGF5b3V0cy4gVG8gdXNlIHRoaXMgZWZmZWN0aXZlbHksIHlvdSBtYXkgbmVlZCB0byAidmlldyBzb3VyY2UiIG9uIHRoZSBnZW5lcmF0ZWQgZm9ybSwgYW5kIHRoZW4Kd3JpdGUgeW91ciBDU1MuPC9wPgo8dWw+CjxsaT5TdGFuZGFyZCBJbnB1dHMKPHVsPjxsaT5UZXh0IElucHV0LiBUaGlzIGlzIGEgc3RhbmRhcmQgdGV4dCBmaWVsZC4gWW91IGNhbiBsaW1pdCB0aGUgbGVuZ3RoLCBhbmQgYXBwbHkgdmFyaW91cyB2YWxpZGF0aW9uCmZ1bmN0aW9ucyB0byB0aGUgZmllbGQuPC9saT4KPGxpPlRleHQgQXJlYS4gVGhpcyBpcyBhIGJpZywgZnJlZS1mb3JtIHRleHQgaW5wdXQgZmllbGQuPC9saT4KPGxpPkNoZWNrYm94LiBUaGlzIGlzIGEgc3RhbmRhcmQgY2hlY2sgYm94LjwvbGk+CjxsaT5DaGVja2JveCBHcm91cC4gVGhpcyBpcyBhIGNvbGxlY3Rpb24gb2YgY2hlY2tib3hlcy4gVGhlIG9ubHkgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoaXMgaW5wdXQgYW5kIGEKY29sbGVjdGlvbiBvZiBDaGVja2JveCBpbnB1dHMgaXMgdGhhdCB0aGV5IGFyZSBwcmVzZW50ZWQgYXMgYSBncm91cCwgd2l0aCBvbmUgbmFtZSwgYW5kIGNhbiBoYXZlIGEgdmFsaWRhdGlvbiBmdW5jdGlvbiByZXF1aXJpbmcgdGhhdCB5b3UgY2hlY2sgb25lIG9yIG1vcmUgb2YgdGhlIGJveGVzIGluIHRoZSBncm91cC48L2xpPgo8bGk+UmFkaW8gR3JvdXAuIFRoaXMgaXMgYSBjb2xsZWN0aW9uIG9mIHJhZGlvIGJ1dHRvbnMuIE9ubHkgb25lIG9mIHRoZSBncm91cCBtYXkgYmUgc2VsZWN0ZWQgYnkgdGhlIHVzZXIuPC9saT4KPGxpPlB1bGxkb3duLiBUaGlzIGlzIGEgc3RhbmRhcmQgcHVsbGRvd24gbWVudS4gSXQncyByZWFsbHkgY29uY2VwdHVhbGx5IHRoZSBzYW1lIHRoaW5nIGFzIGEgcmFkaW8gYnV0dG9uCmdyb3VwLCBidXQgaXMgYmV0dGVyIHdoZW4gdGhlcmUgYXJlIGEgbGFyZ2UgbnVtYmVyIG9mIG9wdGlvbnMuPC9saT4KPGxpPk11bHRpc2VsZWN0LiBUaGlzIGlzIGEgbXVsdGktc2VsZWN0IGZpZWxkLiBJdCdzIHJlYWxseSBjb25jZXB0dWFsbHkgdGhlIHNhbWUgdGhpbmcgYXMgYSBjaGVja2JveCBidXR0b24KZ3JvdXAsIGJ1dCBpcyBiZXR0ZXIgd2hlbiB0aGVyZSBhcmUgYSBsYXJnZSBudW1iZXIgb2Ygb3B0aW9ucywgYXMgeW91IGNhbiBsaW1pdCB0aGUgbnVtYmVyIGRpc3BsYXllZCBvbiB0aGUgc2NyZWVuIGF0IGFueSBvbmUgdGltZS48L2xpPgo8bGk+U3RhdGUuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBTdGF0ZXMgb2YgdGhlIFUuUy48L2xpPgo8bGk+Q291bnRyaWVzLiBUaGlzIGlzIGEgcHVsbGRvd24gbGlzdGluZyB0aGUgQ291bnRyaWVzIG9mIHRoZSB3b3JsZCAoYXMgb2YgSnVseSAyMDA1KS48L2xpPgo8bGk+RGF0ZSBQaWNrZXIuIFRoaXMgaXMgYSB0cmlwbGUgcHVsbGRvd24gYWxsb3dpbmcgdGhlIHVzZXIgdG8gc2VsZWN0IGEgZGF0ZS48L2xpPgo8bGk+VGltZSBQaWNrZXIuIFRoaXMgaXMgYSBzZXQgb2YgcHVsbGRvd25zIGFsbG93aW5nIHRoZSB1c2VyIHRvIHNlbGVjdCBhIHRpbWUgKHVzaW5nIDEyIG9yIDI0IGhvdXIgY2xvY2spLjwvbGk+CjxsaT5IaWRkZW4gRmllbGQuIFRoaXMgYWxsb3dzIHlvdSB0byBlbWJlZCBhIGhpZGRlbiBmaWVsZCBpbiB5b3VyIGZvcm0uPC9saT4KPGxpPkZpbGUgVXBsb2FkLiBUaGlzIGlzIGEgZmlsZSB1cGxvYWQgZmllbGQuPC9saT4KPGxpPkxpbmsgKFVzZXIgRW50ZXJlZCkuIFRoaXMgY3JlYXRlcyBhIGRvdWJsZSBpbnB1dCBmaWVsZCBmb3IgZ2V0dGluZyBhIGxpbmsgVVJMIGFuZCBsaW5rIHRpdGxlLjwvbGk+CjwvdWw+PC9saT4KCjxsaT5FbWFpbC1zcGVjaWZpYyBJbnB1dHMKPHVsPjxsaT5FbWFpbCBGcm9tIEFkZHJlc3MgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgdGhlaXIgZW1haWwgYWRkcmVzcy4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIGFkZHJlc3MgaW4gdGhlICJGcm9tIiBmaWVsZC48L2xpPgo8bGk+RW1haWwgRnJvbSBOYW1lIEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIHRoZWlyIG5hbWUuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBuYW1lIGluIHRoZSAiRnJvbSIgZmllbGQuPC9saT4KPC91bD48L2xpPgoKPGxpPkRpc3BsYXkgQ29udHJvbCBGaWVsZHM8dWw+CjxsaT4tUGFnZSBCcmVhay4gVGhpcyBhbGxvd3MgeW91IHRvIHNwbGl0IHlvdXIgZmVlZGJhY2sgZm9ybSBpbnRvIG11bHRpcGxlIHBhZ2VzLiBFYWNoIHBhZ2UgaXMKaW5kZXBlbmRlbnRseSB2YWxpZGF0ZWQuIFRoaXMgaXMgZ29vZCBmb3IgYXBwbGljYXRpb25zIGxpa2Ugb25saW5lIHN1cnZleXMuPC9saT4KPGxpPi1GaWVsZHNldCBTdGFydC4gQ29tYmluZWQgd2l0aCBGaWVsZHNldCBFbmQsIHRoaXMgYWxsb3dzIHlvdSB0byBncm91cCB2YXJpb3VzIGZpZWxkcyB3aXRoaW4geW91ciBmb3JtLiBVc2UgdGhpcyB0byBzdGFydCBhIGdpdmVuIGdyb3VwaW5nLjwvbGk+CjxsaT4tRmllbGRzZXQgRW5kLiBDb21iaW5lZCB3aXRoIEZpZWxkc2V0IFN0YXJ0LCB0aGlzIGFsbG93cyB5b3UgdG8gZ3JvdXAgdmFyaW91cyBmaWVsZHMgd2l0aGluIHlvdXIgZm9ybS4gVXNlIHRoaXMgdG8gZW5kIGEgZ2l2ZW4gZ3JvdXBpbmcuPC9saT4KPGxpPi1TdGF0aWMgVGV4dC4gVGhpcyBhbGxvd3MgeW91IHRvIHB1dCB0ZXh0IG9yIGEgbGFiZWwgaW4gdGhlIG1pZGRsZSBvZiB5b3VyIGZvcm0uIFRoaXMgaXMgdXNlZnVsIGZvciBnaXZpbmcgYWRkaXRpb25hbCBoZWxwIHRleHQsIGVzcGVjaWFsbHkgaWYgeW91J3JlIG5vdCB1c2luZyBhIEN1c3RvbSBUZW1wbGF0ZSB0byByZW5kZXIgeW91ciBmb3JtLjwvbGk+CjxsaT4tU3RhdGljIExpbmsuIFRoaXMgYWxsb3dzIHlvdSB0byBwdXQgYSBsaW5rIHRvIGEgZ2l2ZW4gcGFnZSBpbnRvIHlvdXIgZm9ybS4gT3B0aW9uYWxseSwgeW91IGNhbiBoYXZlIGl0IGF1dG9wb3B1bGF0ZSB3aXRoIHRoZSBwYWdlIHdoZXJlIHRoZSBmb3JtIGlzIGVtYmVkZGVkICh1c2VmdWwgaWYgeW91XCdyZSBzZW5kaW5nIHJlc3VsdHMgdmlhIGVtYWlsKS48L2xpPgo8L3VsPjwvbGk+Cgo8bGk+Rm9ybSBIYW5kbGluZyBJbnB1dHMgKERpc3Bvc2l0aW9ucykKPGxpPipDYWxsIGEgVXNlciBEZWZpbmVkIFRhZyBXaXRoIHRoZSBGb3JtIFJlc3VsdHMuIFRoaXMgc3VibWl0cyBhbGwgdGhlIGZvcm0gcmVzdWx0cyB0byB0aGUgVXNlci1EZWZpbmVkIFRhZyB5b3Ugc3BlY2lmeS4gVGhlIFVEVCBjYW4gaGFuZGxlIHRoZSByZXN1bHRzIGhvd2V2ZXIgaXQgd2FudHMuPC9saT4KPHVsPjxsaT4qRW1haWwgUmVzdWx0cyBCYXNlZCBvbiBQdWxsZG93bi4gVGhpcyBpcyB1c2VmdWwgZm9yIHdlYiBzaXRlcyB3aGVyZSBjb21tZW50cyBnZXQgcm91dGVkIGJhc2VkIG9uIHRoZWlyIHN1YmplY3QgbWF0dGVyLCBlLmcuLCBidWdzIGdldCBzZW50IHRvIG9uZSBwZXJzb24sIG1hcmtldGluZyBxdWVzdGlvbnMgdG8gYW5vdGhlciBwZXJzb24sIHNhbGVzIHJlcXVlc3RzIHRvIHNvbWVvbmUgZWxzZSwgZXRjLiBUaGUgcHVsbGRvd24gaXMgcG9wdWxhdGVkIHdpdGggdGhlIHN1YmplY3RzLCBhbmQgZWFjaCBnZXRzIGRpcmVjdGVkIHRvIGEgc3BlY2lmaWMgZW1haWwgYWRkcmVzcy4gWW91IHNldCB1cCB0aGVzZSBtYXBwaW5ncyBpbiB0aGUgd2hlbiB5b3UgY3JlYXRlIG9yIGVkaXQgYSBmaWVsZCBvZiB0aGlzIHR5cGUuIElmIHlvdSB1c2Ugb25lIG9mIHRoZXNlICJEaXJlY3RvciIgcHVsbGRvd25zLCB0aGUgdXNlciBtdXN0IG1ha2UgYSBzZWxlY3Rpb24gaW4gb3JkZXIgdG8gc3VibWl0IHRoZQpmb3JtLiBUaGlzIGlucHV0IGlzIHBhcnQgb2YgdGhlIGZvcm0gdGhlIHVzZXIgc2VlcywgYWx0aG91Z2ggdGhlIGVtYWlsIGFkZHJlc3NlcyBhcmUgbm90IG1hZGUgdmlzaWJsZSBub3IKYXJlIHRoZXkgZW1iZWRkZWQgaW4gdGhlIEhUTUwuPC9saT4KPGxpPipFbWFpbCBSZXN1bHRzIHRvIHNldCBBZGRyZXNzKGVzKS4gVGhpcyBzaW1wbHkgc2VuZHMgdGhlIGZvcm0gcmVzdWx0cyB0byBvbmUgb3IgbW9yZSBlbWFpbCBhZGRyZXNzZXMgdGhhdCB5b3UgZW50ZXIgd2hlbiB5b3UgY3JlYXRlIG9yIGVkaXQgdGhpcyB0eXBlIG9mIGZpZWxkLiBUaGlzIGZpZWxkIGFuZCBpdHMgbmFtZSBhcmUgbm90IHZpc2libGUgaW4gdGhlCmZvcm0gdGhhdCB0aGUgdXNlciBzZWVzLiBUaGUgZW1haWwgYWRkcmVzc2VzIGFyZSBub3QgbWFkZSB2aXNpYmxlIG5vcgphcmUgdGhleSBlbWJlZGRlZCBpbiB0aGUgSFRNTC48L2xpPgo8bGk+KkVtYWlsIHRvIFVzZXItU3VwcGxpZWQgQWRkcmVzcy4gVGhpcyBwdXRzIGFuIGlucHV0IGZpZWxkIGluIHRoZSBmb3JtIGZvciB0aGUgdXNlciB0byBwb3B1bGF0ZSB3aXRoIGFuIGVtYWlsIGFkZHJlc3MuIFRoZSBmb3JtIHJlc3VsdHMgZ2V0IHNlbnQgdG8gdGhhdCBhZGRyZXNzLiBCZXdhcmUgb2YgU3BhbSBhYnVzZSEgQWN0aXZlIHRoZSBwcmltaXRpdmUgYW50aS1zcGFtIGZlYXR1cmVzIGluIHRoZSBGb3JtQnVpbGRlciBjb25maWd1cmF0aW9uIHNjcmVlbi48L2xpPgo8bGk+KlN0b3JlIFJlc3VsdHMgaW4gRGF0YWJhc2UuIFRoaXMgd2lsbCBzdG9yZSB0aGUgZm9ybSBjb250ZW50cyBpbiBhbiBpbnRlcm5hbCBkYXRhYmFzZS4gWW91IHdpbGwgYWx3YXlzIHVzZSB0aGlzIGRpc3Bvc2l0aW9uIGlmIHlvdSB1c2UgdGhlIGZvcm0gd2l0aCBGb3JtQnJvd3Nlci48L2xpPgo8bGk+KlZhbGlkYXRlIHZpYSBFbWFpbC4gVGhpcyBpcyBhIHN0cmFuZ2UgYW5kIHBvd2VyZnVsIGZpZWxkLiBJdCBwcm92aWRlcyB0aGUgdXNlciBhIG1hbmRhdG9yeSBpbnB1dCBmb3IgdGhlaXIgZW1haWwgYWRkcmVzcy4gT25jZSB0aGV5IHN1Ym1pdCB0aGVpciBmb3JtLCB0aGUgc3RhbmRhcmQgZm9ybSBkaXNwb3NpdGlvbnMgYXJlIG5vdCBwZXJmb3JtZWQgLS0gcmF0aGVyLCBpdCBzZW5kIHRoZSB1c2VyIGFuIGVtYWlsIHdpdGggYSBzcGVjaWFsIGNvZGVkIGxpbmsuIElmIHRoZXkgY2xpY2sgb24gdGhlIGxpbmssIHRoZSBvdGhlciBmb3JtIGlzIGNvbnNpZGVyZWQgImFwcHJvdmVkLCIgYW5kIHRoZSBvdGhlciBkaXNwb3NpdGlvbnMgYXJlIGFsbCBwZXJmb3JtZWQuPC9saT4KPGxpPipXcml0ZSBSZXN1bHRzIHRvIEZsYXQgRmlsZS4gVGhpcyB0YWtlcyB0aGUgZm9ybSByZXN1bHRzIGFuZCB3cml0ZXMgdGhlbSBpbnRvIGEgdGV4dCBmaWxlLiBZb3UgbWF5CnNlbGVjdCB0aGUgbmFtZSBvZiB0aGUgZmlsZSwgYW5kIHNldCBpdHMgZm9ybWF0LiBUaGVzZSBmaWxlcyBhcmUgd3JpdHRlbiB0byB0aGUgIm91dHB1dCIgZGlyZWN0b3J5IHVuZGVyIHRoZQptb2R1bGUncyBpbnN0YWxsYXRpb24gZGlyZWN0b3J5LCBhc3N1bWluZyB0aGUgd2ViIHNlcnZlciBoYXMgcGVybWlzc2lvbiB0byB3cml0ZSB0aGVyZS48L2xpPgo8L3VsPjwvbGk+PC9saT48L3VsPgoKPGgzPkVtYWlsIGFuZCBGbGF0IEZpbGUgVGVtcGxhdGVzPC9oMz4KPHA+TWFueSBkaXNwb3NpdGlvbiB0eXBlcyBhbGxvdyB5b3UgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZm9yIHRoZSBlbWFpbCB0aGF0IGlzIGdlbmVyYXRlZCwgb3IgZm9yIHRoZSB3YXkgdGhlIHJlc3VsdHMgYXJlIHdyaXR0ZW4gdG8gYSBmaWxlLiBJZiB5b3Ugb3B0IG5vdCB0byBjcmVhdGUgYSB0ZW1wbGF0ZSwgdGhlIEZvcm1CdWlsZGVyIHdpbGwgdXNlIGl0J3Mgb3duIGJlc3QgZ3Vlc3MsIHdoaWNoIG1heSBvciBtYXkgbm90IHdvcmsgb3V0IHRvIHlvdXIgbGlraW5nLiBZb3UgY2FuIGFsd2F5cyBjbGljayBvbiB0aGUgIkNyZWF0ZSBTYW1wbGUgVGVtcGxhdGUiIGFuZCB0aGVuIGN1c3RvbWl6ZSB0aGUgcmVzdWx0cy48L3A+CjxwPk5vdGUgdGhhdCBvbmNlIHlvdSd2ZSBjaGFuZ2VkIGEgdGVtcGxhdGUsIGl0IHdpbGwgbm8gbG9uZ2VyIGF1dG9tYXRpY2FsbHkgYWRkIG5ldyBmaWVsZHMuIEZvciB0aGlzIHJlYXNvbiwgaXQncyB1c3VhbGx5IGJlc3QgdG8gY3JlYXRlIHlvdXIgdGVtcGxhdGVzIGFzIHRoZSBsYXN0IHN0ZXAgb2YgY3JlYXRpbmcgeW91ciBmb3JtLjwvcD4KCjxoMz5Lbm93biBJc3N1ZXM8L2gzPgo8dWw+CjxsaT5Gb3JtQnVpbGRlciBpcyBub3QgeWV0IGludGVncmF0ZWQgd2l0aCBGcm9udEVuZCBVc2Vycy4gSXQgd2lsbCBiZS48L2xpPgo8bGk+Rm9ybUJ1aWxkZXIgY2Fubm90IHlldCBiZSBpbmxpbmVkLiBUaGF0IHNob3VsZCBiZSBhIHNpbXBsZSB1cGdyYWRlIGRvd24gdGhlIGxpbmUuPC9saT4KPGxpPkZvcm1CdWlsZGVyIGRvZXMgbm90IHlldCBzdXBwb3J0IHByZXR0eSB1cmxzLCBhbHRob3VnaCB0aGF0IHNob3VsZG4ndCBtYXR0ZXIgc2luY2UgdGhlIHVzZXIgc2lkZSBpcyBwcmV0dHkgc2ltcGxlLjwvbGk+CjwvdWw+Cgo8aDM+VHJvdWJsZXNob290aW5nPC9oMz4KPG9sPjxsaT4gRmlyc3Qgc3RlcCBpcyB0byBjaGVjayB5b3UncmUgcnVubmluZyBDTVMgMS4wLXN2biBvciBsYXRlci48L2xpPgo8bGk+IFNlY29uZCBzdGVwIGlzIHRvIHJlYWQgYW5kIHVuZGVyc3RhbmQgdGhlIGNhdmVhdCBhYm91dCBXWVNJV1lHIGVkaXRvcnMgdXAgaW4gdGhlCnNlY3Rpb24gPGVtPkFkZGluZyBhIEZvcm0gdG8gYSBQYWdlPC9lbT4uPC9saT4KPGxpPiBJZiB5b3UncmUgbWlzc2luZyBmaWVsZHMgaW4gYW4gZW1haWwgdGhhdCBnZXRzIGdlbmVyYXRlZCwgY2hlY2sgdGhlIGRpc3Bvc2l0aW9uIGZpZWxkJ3MgdGVtcGxhdGUsIGFuZCBtYWtlIHN1cmUgeW91J3JlIHNwZWNpZnlpbmcgdGhlIG1pc3NpbmcgZmllbGRzLiBTZWVtcyBvYnZpb3VzLCBidXQgaXQncyBhbiBlYXN5IG1pc3Rha2UgdG8gbWFrZS48L2xpPgo8bGk+IEp1c3QgbWVzcyBhcm91bmQgYW5kIHRyeSBjbGlja2luZyBvbiBsaW5rcyBhbmQgaWNvbnMgYW5kIHN0dWZmLiBTZWUgd2hhdCBoYXBwZW5zLjwvbGk+CjxsaT4gTGFzdCByZXNwb3J0IGlzIHRvIGVtYWlsIG1lIG9yIGNhdGNoIG1lIG9uIElSQyBhbmQgd2UgY2FuIGdvIGZyb20gdGhlcmUuPC9saT4KPC9vbD4gCjxwPlRoaXMgaXMgYSBmYWlybHkgZWFybHkgdmVyc2lvbiwgaWYgbm90IGEgcmFuayBiZXRhIHJlbGVhc2UsIGFuZCBpdCBpcyBwcm9iYWJseSBzdGlsbCBidWdneS4gV2hpbGUgSSd2ZSBkb25lIGFsbCBJIGNhbgp0byBtYWtlIHN1cmUgbm8gZWdyZWdpb3VzIGJ1Z3MgaGF2ZSBjcmVwdCBpbiwgSSBoYXZlIHRvIGFkbWl0IHRoYXQgZHVyaW5nIHRlc3RpbmcsIHRoaXMgcHJvZ3JhbQpyZXZlYWxlZCBzZXZlbiBjb2Nrcm9hY2hlcywgdHdvIGVhcndpZ3MsIGEgc21hbGwgZmFtaWx5IG9mIGFwaGlkcywgYW5kIGEgd2Fsa2luZy1zdGljayBpbnNlY3QuIEl0IGFsc28KYXRlIHRoZSBuZWlnaGJvcidzIG5hc3R5IGxpdHRsZSB5YXAgZG9nLCBmb3Igd2hpY2ggSSB3YXMgaW5hcHByb3ByaWF0ZWx5IGdyYXRlZnVsLjwvcD4KPHA+VGhlIGZpbmFsIHJlbGVhc2Ugd2lsbCBpbmNsdWRlIGJ1ZyBmaXhlcywgZG9jdW1lbnRhdGlvbiwgYW5kIHVuY29uZGl0aW9uYWwgbG92ZS48L3A+CjxoMz5TdXBwb3J0PC9oMz4KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPgo8dWw+CjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlLCBGQVFzLCBvciB0byBmaWxlIGEgQnVnIFJlcG9ydCwgcGxlYXNlIHZpc2l0IHRoZSBDTVMgTWFkZSBTaW1wbGUgIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmciPkRldmVsb3BlciBGb3JnZTwvYT4uPC9saT4KPGxpPlRvIG9idGFpbiBjb21tZXJjaWFsIHN1cHBvcnQsIHBsZWFzZSBzZW5kIGFuIGVtYWlsIHRvIHRoZSBhdXRob3IgYXQgPGEgaHJlZj0ibWFpbHRvOnNqZ0BjbXNtb2R1bGVzLmNvbSI+Jmx0O3NqZ0BjbXNtb2R1bGVzLmNvbSZndDs8L2E+LjwvbGk+CjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyI+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uPC9saT4KPGxpPlRoZSBhdXRob3IgY2FuIG9mdGVuIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXMiPkNNUyBJUkMgQ2hhbm5lbDwvYT4uPC9saT4KPGxpPkxhc3RseSwgeW91IG1heSBoYXZlIHNvbWUgc3VjY2VzcyBlbWFpbGluZyB0aGUgYXV0aG9yIGRpcmVjdGx5IGFuZCBncm92ZWxsaW5nIGZvciBmcmVlIHN1cHBvcnQuPC9saT4KPC91bD4KPHA+QXMgcGVyIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgYXMtaXMuIFBsZWFzZSByZWFkIHRoZSB0ZXh0Cm9mIHRoZSBsaWNlbnNlIGZvciB0aGUgZnVsbCBkaXNjbGFpbWVyLjwvcD4KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+CjxwPkNvcHlyaWdodCAmY29weTsgMjAwNywgU2FtdWVsIEdvbGRzdGVpbiA8YSBocmVmPSJtYWlsdG86c2pnQGNtc21vZHVsZXMuY29tIj4mbHQ7c2pnQGNtc21vZHVsZXMuY29tJmd0OzwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4KPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCI+R05VIFB1YmxpYyBMaWNlbnNlPC9hPi4gWW91IG11c3QgYWdyZWUgdG8gdGhpcyBsaWNlbnNlIGJlZm9yZSB1c2luZyB0aGUgbW9kdWxlLjwvcD48aDM+RGVwZW5kZW5jaWVzPC9oMz48dWw+PGxpPkNNU01haWxlciA9Jmd0OyAxLjczPC9saT48L3VsPjxoMz5QYXJhbWV0ZXJzPC9oMz48dWw+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gbGFuZz0iZW5fVVMiIC0gUGFyYW1ldGVyIGlzIHVzZWQgdG8gc3BlY2lmeSB3aGF0IGxhbmd1YWdlIHRvIHVzZSBmb3IgZGlzcGxheSBvbiB0aGUgZnJvbnRlbmQuIE5vdCBhbGwgbW9kdWxlcyBzdXBwb3J0IG9yIG5lZWQgdGhpcy48L2xpPjwvdWw+</help>
	<about>PGJyIC8+QXV0aG9yOiBTakcgJmx0O3NqZ0BjbXNtb2R1bGVzLmNvbSZndDs8YnIgLz48YnIgLz5WZXJzaW9uOiAwLjIuNDxiciAvPjxiciAvPkNoYW5nZSBIaXN0b3J5OjxiciAvPgoJCSAgICA8dWw+CgkJICAgIAkJCSAgPGxpPlZlcnNpb24gMC4yLjQKCQkJCQkJCQk8cD5CaWcgcmVsZWFzZToKCQkJCQkJCQlBZGRlZCAiRW1haWwgRm9ybSB0byBVc2VyLVN1cHBsaWVkIEFkZHJlc3MiIGRpc3Bvc2l0aW9uLgoJCQkJCQkJCUFkZGVkICJUaW1lUGlja2VyIiBmaWVsZCB0eXBlLiBTcGxpdCAiTGluayIgZmllbGQgaW50byBhICJVc2VyLXN1cHBsaWVkIExpbmsiIGZpZWxkIGFuZCBhICJTdGF0aWMgTGluayIgZmllbGQuCgkJCQkJCQkJQWRkZWQgSFRNTCBlbWFpbCBvcHRpb24gYW5kIGF1dG8tdGVtcGxhdGVzIGZvciBhbGwgZW1haWwgZGlzcG9zaXRpb25zLgoJCQkJCQkJCUFkZGVkIHByaW1pdGl2ZSBhbnRpLXNwYW0gZmVhdHVyZXMuCgkJCQkJCQkJQWRkZWQgWE1MLWJhc2VkIGltcG9ydCBhbmQgZXhwb3J0IG9mIGZvcm1zLgoJCQkJCQkJCTwvcD4KCQkJCQkJICA8L2xpPgogICAgICAgICAgICAgICAgICAgIDxsaT5WZXJzaW9uIDAuMi4zCiAgICAgICAgICAgICAgICAgICAgICA8cD5BZGQgdGhlIGFiaWxpdHkgdG8gY2FsbCBhIHNlbGVjdGFibGUgdXNlciBkZWZpbmVkIHRhZyB1cG9uIGRpc3Bvc2l0aW9uIG9mIHRoZSBmb3JtLjwvcD4KICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgIDxsaT5WZXJzaW9uIDAuMi4yCiAgICAgICAgICAgICAgICAgICAgICAgPHA+TWFueSB0aGFua3MgdG8gVXR0ZXIgRGVzaWduIGZvciBzcG9uc29yaW5nIHNvbWUgY2hhbmdlcyBhbmQgYnVnZml4ZXMsIHdoaWNoIGluY2x1ZGU6CiAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPkFkZGVkIGZpbGUgdXBsb2FkIGNhcGFiaWxpdGllcyB0byB0aGUgZW1haWwgZGlzcG9zaXRpb248L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPkFkZCBQYWdlU2V0U3RhcnQgYW5kIFBhZ2VTZXRFbmQgZmllbGQgdHlwZXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5UaGVzZSBmaWVsZCB0eXBlcyBhbGxvdyB5b3UgdG8gY3JlYXRlIGZpZWxkc2V0cyBpbiB5b3VyIGZvcm0sIGFuZCBvcmdhbmlzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHlvdXIgZmllbGRzIGxvZ2ljYWxseSBmb3IgdGhlIHVzZXIuICBZb3UgY2FuIGV2ZW4gbmVzdCBmaWVsZHNldHMsIGFuZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc29jaWF0ZSBhIHN0eWxlIHdpdGggdGhlbSBhcHByb3ByaWF0ZWx5LiAgVGhlIGRlZmF1bHQgdGVtcGxhdGUgd2FzIGNoYW5nZWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0byBwcmV2ZW50IGl0IGZyb20gd3JhcHBpbmcgYSBkaXYgYXJvdW5kIHRoZXNlIHR5cGVzIG9mIGZpZWxkcy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPkZpeGVkIGEgcHJvYmxlbSB3aXRoIERBVEVUSU1FIGZpZWxkcyBvbiBpbnN0YWxsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+VGhpcyBzb2x2ZXMgYSBwcm9ibGVtIHdoZW4gb24gaW5zdGFsbCB0aGUgcmVzcG9uc2UgdGFibGUgd291bGQgc29tZXRpbWVzIG5vdCBnZXQgY3JlYXRlZCB3aGVuIHVzaW5nIGFkb2RiIGxpdGU8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgICAgIDwvcD4KCQkgICAgPGxpPlZlcnNpb24gMC4yIC0gMTQgTm92ZW1iZXIgMjAwNi4gQ2FsZ3V5ICZhbXA7IHRzdydzIGJ1ZyBmaXhlcyBmb3IgZmllbGQgcmUtb3JkZXJpbmcgYW5kIGN1c3RvbSB0ZW1wbGF0ZXMuIEFkZGl0aW9uYWwgYnVnIGZpeGVzIGZvciBmaWVsZCBsYWJlbHMuPC9saT4KCQkgICAgPGxpPlZlcnNpb24gMC4xIC0gOCBKdWx5IDIwMDYuIEluaXRpYWwgUmVsZWFzZTwvbGk+CiAgICAgICAgICAgICAgICAgICAgPC91bD4KCQk8YnIgLz4=</about>
	<description>Add, edit and manage interactive Forms</description>
	<requires>
	  <requiredname>CMSMailer</requiredname>
	  <requiredversion>1.73</requiredversion>
	</requires>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/action.admin_add_edit_field.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCgkJJHRoaXMtPmluaXRpYWxpemUoKTsKCQkKCQkkYWVmb3JtID0gbmV3IGZiRm9ybSgkdGhpcywgJHBhcmFtcyx0cnVlKTsKCQkkYWVmaWVsZCA9ICRhZWZvcm0tPk5ld0ZpZWxkKCRwYXJhbXMpOwoJCWlmIChpc3NldCgkcGFyYW1zWydhZWZfdXBkJ10pIHx8CgkJCShpc3NldCgkcGFyYW1zWydhZWZfYWRkJ10pICYmICRhZWZpZWxkLT5HZXRGaWVsZFR5cGUoKSAhPSAnJykpCgkJCXsKCQkJLy8gc2F2ZSB0aGUgZmllbGQuCgkJCSR0aGlzLT5Eb0FjdGlvbignYWRtaW5fc3RvcmVfZmllbGQnLCAkaWQsICRwYXJhbXMpOwoJCQlyZXR1cm47CgkJCX0KCQllbHNlaWYgKGlzc2V0KCRwYXJhbXNbJ2FlZl9hZGQnXSkpCgkJCXsKCQkJLy8gc2hvdWxkIGhhdmUgZ290IGEgZmllbGQgdHlwZSBkZWZpbml0aW9uLCBzbyBnaXZlIHJlc3Qgb2YgdGhlIGZpZWxkIG9wdGlvbnMKCQkJLy8gcmVzZXJ2ZSB0aGlzIHNwYWNlIGZvciBzcGVjaWFsIG9wcyA6KQoJCQl9CgkJZWxzZWlmIChpc3NldCgkcGFyYW1zWydhZWZfb3B0YWRkJ10pKQoJCQl7CgkJCS8vIGNhbGwgdGhlIGZpZWxkJ3Mgb3B0aW9uIGFkZCBtZXRob2QsIHdpdGggYWxsIGF2YWlsYWJsZSBwYXJhbWV0ZXJzCgkJCSRhZWZpZWxkLT5Eb09wdGlvbkFkZCgkcGFyYW1zKTsKCQkJfQoJCWVsc2VpZiAoaXNzZXQoJHBhcmFtc1snYWVmX29wdGRlbCddKSkKCQkJewoJCQkvLyBjYWxsIHRoZSBmaWVsZCdzIG9wdGlvbiBkZWxldGUgbWV0aG9kLCB3aXRoIGFsbCBhdmFpbGFibGUgcGFyYW1ldGVycwoJCQkkYWVmaWVsZC0+RG9PcHRpb25EZWxldGUoJHBhcmFtcyk7CgkJCX0KCQllbHNlCgkJCXsKCQkJLy8gbmV3IGZpZWxkLCBvciBpbXBsaWNpdCBhZWZfYWRkLgoJCQkvLyBhZ2FpbiwgcmVzZXJ2aW5nIHRoZSBzcGFjZSBmb3IgZnV0dXJlIGVuZGVhdm9ycwoJCQl9CgkJZWNobyAkYWVmb3JtLT5BZGRFZGl0RmllbGQoJGlkLCAkYWVmaWVsZCwgKGlzc2V0KCRwYXJhbXNbJ2Rpc3Bvc2Vfb25seSddKT8kcGFyYW1zWydkaXNwb3NlX29ubHknXTowKSwgJHJldHVybmlkLCBpc3NldCgkcGFyYW1zWydtZXNzYWdlJ10pPyRwYXJhbXNbJ21lc3NhZ2UnXTonJyk7CgkJCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_add_edit_form.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCgkJJGFlZm9ybSA9IG5ldyBmYkZvcm0oJHRoaXMsICRwYXJhbXMsIHRydWUpOwoJCWVjaG8gJGFlZm9ybS0+QWRkRWRpdEZvcm0oJGlkLCAkcmV0dXJuaWQsIGlzc2V0KCRwYXJhbXNbJ21lc3NhZ2UnXSk/JHRoaXMtPlNob3dNZXNzYWdlKCRwYXJhbXNbJ21lc3NhZ2UnXSk6JycpOwoKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.admin_delete_field.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCiAgICAgICAgJGFlZm9ybSA9IG5ldyBmYkZvcm0oJHRoaXMsICRwYXJhbXMsIHRydWUpOwogICAgICAgICRhZWZvcm0tPkRlbGV0ZUZpZWxkKCRwYXJhbXNbJ2ZpZWxkX2lkJ10pOwoJCWVjaG8gJGFlZm9ybS0+QWRkRWRpdEZvcm0oJGlkLCAkcmV0dXJuaWQsICR0aGlzLT5MYW5nKCdmaWVsZF9kZWxldGVkJykpOwo/PgoK]]></data>
	</file>
	<file>
	  <filename>/action.admin_delete_form.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCiAgICAgICAgJGFlZm9ybSA9IG5ldyBmYkZvcm0oJHRoaXMsICRwYXJhbXMsIHRydWUpOwogICAgICAgICRhZWZvcm0tPkRlbGV0ZSgpOwoKICAgICAgICAkcGFyYW1zWydtZXNzYWdlJ10gPSAkdGhpcy0+TGFuZygnZm9ybV9kZWxldGVkJyk7CiAgICAgICAgJHRoaXMtPkRvQWN0aW9uKCdkZWZhdWx0YWRtaW4nLCAkaWQsICRwYXJhbXMpOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_store_field.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCiRhZWZvcm0gPSBuZXcgZmJGb3JtKCR0aGlzLCAkcGFyYW1zKTsKJGFlZmllbGQgPSAkYWVmb3JtLT5OZXdGaWVsZCgkcGFyYW1zKTsKJHZhbCA9ICRhZWZpZWxkLT5BZG1pblZhbGlkYXRlKCk7CmlmICgkdmFsWzBdKQogIHsKICAgICRhZWZpZWxkLT5Qb3N0QWRtaW5TdWJtaXRDbGVhbnVwKCk7CiAgICAkYWVmaWVsZC0+U3RvcmUodHJ1ZSk7CiAgICAkcGFyYW1zWydtZXNzYWdlJ109JHBhcmFtc1snb3AnXTsKICAgICR0aGlzLT5Eb0FjdGlvbignYWRtaW5fYWRkX2VkaXRfZm9ybScsICRpZCwgJHBhcmFtcyk7CiAgfQogZWxzZQogICB7CiAgICAgJGFlZmllbGQtPkxvYWRGaWVsZCgkcGFyYW1zKTsKICAgICAkcGFyYW1zWydtZXNzYWdlJ10gPSAkdmFsWzFdOwogICAgIGVjaG8gJGFlZm9ybS0+QWRkRWRpdEZpZWxkKCRpZCwgJGFlZmllbGQsIChpc3NldCgkcGFyYW1zWydkaXNwb3NlX29ubHknXSk/JHBhcmFtc1snZGlzcG9zZV9vbmx5J106MCksICRyZXR1cm5pZCwgaXNzZXQoJHBhcmFtc1snbWVzc2FnZSddKT8kcGFyYW1zWydtZXNzYWdlJ106JycpOwogICB9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/action.admin_store_form.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCiAgICAgICAgJGFlZm9ybSA9IG5ldyBmYkZvcm0oJHRoaXMsICRwYXJhbXMsIHRydWUpOwogICAgICAgICRhZWZvcm0tPlN0b3JlKCk7CiAgICAgICAgaWYgKCRwYXJhbXNbJ3N1Ym1pdCddID09ICR0aGlzLT5MYW5nKCdzYXZlJykpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgJHBhcmFtc1snbWVzc2FnZSddID0gJHRoaXMtPkxhbmcoJ2Zvcm0nLCRwYXJhbXNbJ2Zvcm1fb3AnXSk7CiAgICAgICAgICAgICR0aGlzLT5Eb0FjdGlvbignZGVmYXVsdGFkbWluJywgJGlkLCAkcGFyYW1zKTsKICAgICAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICAJewoJCQllY2hvICRhZWZvcm0tPkFkZEVkaXRGb3JtKCRpZCwgJHJldHVybmlkLCR0aGlzLT5MYW5nKCdmb3JtJywkcGFyYW1zWydmb3JtX29wJ10pKTsKCQkJfQo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/action.admin_update_config.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCgkJJHRoaXMtPlNldFByZWZlcmVuY2UoJ2hpZGVfZXJyb3JzJyxpc3NldCgkcGFyYW1zWydoaWRlX2Vycm9ycyddKT8kcGFyYW1zWydoaWRlX2Vycm9ycyddOjApOwoJCSR0aGlzLT5TZXRQcmVmZXJlbmNlKCdzaG93X3ZlcnNpb24nLGlzc2V0KCRwYXJhbXNbJ3Nob3dfdmVyc2lvbiddKT8kcGFyYW1zWydzaG93X3ZlcnNpb24nXTowKTsKCQkkdGhpcy0+U2V0UHJlZmVyZW5jZSgncmVsYXhlZF9lbWFpbF9yZWdleCcsaXNzZXQoJHBhcmFtc1sncmVsYXhlZF9lbWFpbF9yZWdleCddKT8kcGFyYW1zWydyZWxheGVkX2VtYWlsX3JlZ2V4J106MCk7CgkJJHRoaXMtPlNldFByZWZlcmVuY2UoJ2VuYWJsZV9mYXN0YWRkJyxpc3NldCgkcGFyYW1zWydlbmFibGVfZmFzdGFkZCddKT8kcGFyYW1zWydlbmFibGVfZmFzdGFkZCddOjApOwoJCSR0aGlzLT5TZXRQcmVmZXJlbmNlKCdlbmFibGVfYW50aXNwYW0nLGlzc2V0KCRwYXJhbXNbJ2VuYWJsZV9hbnRpc3BhbSddKT8kcGFyYW1zWydlbmFibGVfYW50aXNwYW0nXTowKTsKCgkJJHBhcmFtc1snbWVzc2FnZSddID0gJHRoaXMtPkxhbmcoJ2NvbmZpZ3VyYXRpb25fdXBkYXRlZCcpOwogICAgICAgICR0aGlzLT5Eb0FjdGlvbignZGVmYXVsdGFkbWluJywgJGlkLCAkcGFyYW1zKTsKCj8+]]></data>
	</file>
	<file>
	  <filename>/action.admin_update_field_order.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCiAgICAgICAgJGFlZm9ybSA9IG5ldyBmYkZvcm0oJHRoaXMsICRwYXJhbXMsIHRydWUpOwogICAgICAgICRzcmNJbmRleCA9ICRhZWZvcm0tPkdldEZpZWxkSW5kZXhGcm9tSWQoJHBhcmFtc1snZmllbGRfaWQnXSk7CiAgICAgICAgaWYgKCRwYXJhbXNbJ2RpciddID09ICd1cCcpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgJGRlc3RJbmRleCA9ICRzcmNJbmRleCAtIDE7CiAgICAgICAgICAgIH0KICAgICAgICBlbHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgJGRlc3RJbmRleCA9ICRzcmNJbmRleCArIDE7CiAgICAgICAgICAgIH0KICAgICAgICAkYWVmb3JtLT5Td2FwRmllbGRzQnlJbmRleCgkc3JjSW5kZXgsJGRlc3RJbmRleCk7CgovLyBmb3JjZSByZWxvYWQgb2YgZm9ybSwgdGhpcyBpcyBraW5kYSBoYWNraXNoIGJ1dCBjYW50IHRoaW5rIG9mIGFueXRoaW5nIGVsc2UgOykKJGFlZm9ybSA9IG5ldyBmYkZvcm0oJHRoaXMsICRwYXJhbXMsIHRydWUpOwoKCiAgICAgICAgZWNobyAkYWVmb3JtLT5BZGRFZGl0Rm9ybSgkaWQsICRyZXR1cm5pZCwgJHRoaXMtPlNob3dNZXNzYWdlKCR0aGlzLT5MYW5nKCdmaWVsZF9vcmRlcl91cGRhdGVkJykpKTsKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.admin_update_field_required.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCiAgICAgICAgJGFlZm9ybSA9IG5ldyBmYkZvcm0oJHRoaXMsICRwYXJhbXMsIHRydWUpOwogICAgICAgIAogICAgICAgICRhZWZpZWxkID0gJGFlZm9ybS0+R2V0RmllbGRCeUlkKCRwYXJhbXNbJ2ZpZWxkX2lkJ10pOwoJCWlmICgkYWVmaWVsZCAhPT0gZmFsc2UpCgkJCXsKCQkJJGFlZmllbGQtPlNldFJlcXVpcmVkKCRwYXJhbXNbJ2FjdGl2ZSddPT0nb24nP3RydWU6ZmFsc2UpOwoJCQkkYWVmaWVsZC0+U3RvcmUoKTsKCQkJfQoJCWVjaG8gJGFlZm9ybS0+QWRkRWRpdEZvcm0oJGlkLCAkcmV0dXJuaWQsICR0aGlzLT5MYW5nKCdmaWVsZF9yZXF1aXJlbWVudF91cGRhdGVkJykpOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.default.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKaWYgKCEgaXNzZXQoJHBhcmFtc1snZm9ybV9pZCddKSAmJiBpc3NldCgkcGFyYW1zWydmb3JtJ10pKQogIHsKICAgIC8vIGdldCB0aGUgZm9ybSBieSBuYW1lLCBub3QgSUQKICAgICRwYXJhbXNbJ2Zvcm1faWQnXSA9ICR0aGlzLT5HZXRGb3JtSURGcm9tQWxpYXMoJHBhcmFtc1snZm9ybSddKTsKICB9CgokYWVmb3JtID0gbmV3IGZiRm9ybSgkdGhpcywkcGFyYW1zLHRydWUpOwoKZWNobyAkYWVmb3JtLT5SZW5kZXJGb3JtSGVhZGVyKCk7CiRmaW5pc2hlZCA9IGZhbHNlOwppZiAoKCRhZWZvcm0tPkdldFBhZ2VDb3VudCgpID4gMSAmJiAkYWVmb3JtLT5HZXRQYWdlTnVtYmVyKCkgPiAwKSB8fAogICAgKGlzc2V0KCRwYXJhbXNbJ2RvbmUnXSkmJiAkcGFyYW1zWydkb25lJ109PTEpKQogIHsKICAgICRyZXMgPSAkYWVmb3JtLT5WYWxpZGF0ZSgpOwogICAgCiAgICBpZiAoJHJlc1swXSA9PT0gZmFsc2UpCiAgICAgIHsKCWVjaG8gJHJlc1sxXS4iXG4iOwoJJGFlZm9ybS0+UGFnZUJhY2soKTsKICAgICAgfQogICAgZWxzZSBpZiAoaXNzZXQoJHBhcmFtc1snZG9uZSddKSAmJiAkcGFyYW1zWydkb25lJ109PTEpCiAgICAgIHsKCSRmaW5pc2hlZCA9IHRydWU7CgkkcmVzdWx0cyA9ICRhZWZvcm0tPkRpc3Bvc2UoJHJldHVybmlkKTsKICAgICAgfQogIH0KCmlmICghICRmaW5pc2hlZCkKICB7CiAgICAkcGFybXMgPSBhcnJheSgpOwogICAgJHBhcm1zWydmb3JtX25hbWUnXSA9ICRhZWZvcm0tPkdldE5hbWUoKTsKICAgICRwYXJtc1snZm9ybV9pZCddID0gJGFlZm9ybS0+R2V0SWQoKTsKICAgICR0aGlzLT5TZW5kRXZlbnQoJ09uRm9ybUJ1aWxkZXJGb3JtRGlzcGxheScsJHBhcm1zKTsKICAgIAogICAgZWNobyAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwgJ2RlZmF1bHQnLCAkcmV0dXJuaWQsICdwb3N0JywgJ211bHRpcGFydC9mb3JtLWRhdGEnKTsKICAgIGVjaG8gJGFlZm9ybS0+UmVuZGVyRm9ybSgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCk7CiAgICBlY2hvICR0aGlzLT5DcmVhdGVGb3JtRW5kKCk7CiAgfQogZWxzZQogICB7CiAgICAgaWYgKCRyZXN1bHRzWzBdID09IHRydWUpCiAgICAgICB7CgkgJHBhcm1zID0gYXJyYXkoKTsKCSAkcGFybXNbJ2Zvcm1fbmFtZSddID0gJGFlZm9ybS0+R2V0TmFtZSgpOwoJICRwYXJtc1snZm9ybV9pZCddID0gJGFlZm9ybS0+R2V0SWQoKTsKCSAkdGhpcy0+U2VuZEV2ZW50KCdPbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdCcsJHBhcm1zKTsKCSAKCSAkcmV0ID0gJGFlZm9ybS0+R2V0QXR0cigncmVkaXJlY3RfcGFnZScsJy0xJyk7CgkgaWYgKCRyZXQgIT0gLTEpCgkgICB7CgkgICAgICR0aGlzLT5SZWRpcmVjdENvbnRlbnQoJHJldCk7CgkgICB9CiAgICAgICB9CiAgICAgZWxzZQogICAgICAgewoJICRwYXJtcyA9IGFycmF5KCk7CgkgJHBhcmFtc1snZXJyb3InXT0nJzsKCSBlY2hvICR0aGlzLT5MYW5nKCdzdWJtaXNzaW9uX2Vycm9yJyk7CgkgJHNob3cgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaGlkZV9lcnJvcnMnLDApOwoJIGZvcmVhY2ggKCRyZXN1bHRzWzFdIGFzICR0aGlzUmVzKQoJICAgewoJICAgICBpZiAoJHNob3cpCgkgICAgICAgewoJCSBlY2hvICR0aGlzUmVzIC4gJzxiciAvPic7CgkgICAgICAgfQoJICAgICAkcGFyYW1zWydlcnJvciddIC49ICR0aGlzUmVzLiJcbiI7CgkgICB9CgkgJHBhcm1zWydmb3JtX25hbWUnXSA9ICRhZWZvcm0tPkdldE5hbWUoKTsKCSAkcGFybXNbJ2Zvcm1faWQnXSA9ICRhZWZvcm0tPkdldElkKCk7CgkgJHRoaXMtPlNlbmRFdmVudCgnT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvcicsJHBhcm1zKTsKICAgICAgIH0KICAgfQplY2hvICRhZWZvcm0tPlJlbmRlckZvcm1Gb290ZXIoKTsKPz4K]]></data>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKCQkvLyBhbmQgYSBsaXN0IG9mIGFsbCB0aGUgZXh0YW50IGZvcm1zLgogICAgICAgICRmb3JtcyA9ICR0aGlzLT5HZXRGb3JtcygpOwoJCSRudW1fZm9ybXMgPSBjb3VudCgkZm9ybXMpOwogICAgICAgIAogICAgICAgICR0aGlzLT5zbWFydHktPmFzc2lnbigndGFiaGVhZGVycycsICR0aGlzLT5TdGFydFRhYkhlYWRlcnMoKSAuCgkJCSR0aGlzLT5TZXRUYWJIZWFkZXIoJ2Zvcm1zJywkdGhpcy0+TGFuZygnZm9ybXMnKSkgLgoJCQkkdGhpcy0+U2V0VGFiSGVhZGVyKCdjb25maWcnLCR0aGlzLT5MYW5nKCdjb25maWd1cmF0aW9uJykpIC4KCQkJJHRoaXMtPkVuZFRhYkhlYWRlcnMoKS4KCQkJJHRoaXMtPlN0YXJ0VGFiQ29udGVudCgpKTsKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3N0YXJ0X2Zvcm10YWInLCR0aGlzLT5TdGFydFRhYigiZm9ybXMiKSk7CgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzdGFydF9jb25maWd0YWInLCR0aGlzLT5TdGFydFRhYigiY29uZmlnIikpOwoJCSR0aGlzLT5zbWFydHktPmFzc2lnbignZW5kX3RhYicsJHRoaXMtPkVuZFRhYigpKTsKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2VuZF90YWJzJywkdGhpcy0+RW5kVGFiQ29udGVudCgpKTsKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2Zvcm1fbmFtZScsJHRoaXMtPkxhbmcoJ3RpdGxlX2Zvcm1fbmFtZScpKTsKICAgICAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2Zvcm1fYWxpYXMnLCR0aGlzLT5MYW5nKCd0aXRsZV9mb3JtX2FsaWFzJykpOwogICAgICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignc3RhcnRfY29uZmlnZm9ybScsJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsCgkJCSdhZG1pbl91cGRhdGVfY29uZmlnJywgJHJldHVybmlkKSk7CiAgICAgICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdtZXNzYWdlJywgaXNzZXQoJHBhcmFtc1snbWVzc2FnZSddKT8kcGFyYW1zWydtZXNzYWdlJ106JycpOwoKCQkkZm9ybUFycmF5ID0gYXJyYXkoKTsKCQkkY3Vycm93ID0gInJvdzEiOwoJCWZvcmVhY2ggKCRmb3JtcyBhcyAkdGhpc0Zvcm0pCiAgICAJCXsKCQkJJG9uZXNldCA9IG5ldyBzdGRDbGFzcygpOwoJCQkkb25lc2V0LT5yb3djbGFzcyA9ICRjdXJyb3c7CgkJCWlmICgkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgRm9ybXMnKSkKCQkJCXsKCQkJCSRvbmVzZXQtPm5hbWUgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsCgkJCQkgCSdhZG1pbl9hZGRfZWRpdF9mb3JtJywgJycsCiAgICAgICAgICAgIAkJJHRoaXNGb3JtWyduYW1lJ10sIGFycmF5KCdmb3JtX2lkJz0+JHRoaXNGb3JtWydmb3JtX2lkJ10pKTsKCQkJCSRvbmVzZXQtPnhtbCA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwnZXhwb3J0eG1sJywnJywiPGltZyBzcmM9XCIiLiRnQ21zLT5jb25maWdbJ3Jvb3RfdXJsJ10uIi9pbWFnZXMvY21zL3htbF9yc3MuZ2lmXCIgY2xhc3M9XCJzeXN0ZW1pY29uXCIgYWx0PVwiRXhwb3J0IEZvcm0gYXMgWE1MXCIgLz4iLGFycmF5KCdmb3JtX2lkJz0+JHRoaXNGb3JtWydmb3JtX2lkJ10pKTsKCQkJCSRvbmVzZXQtPmVkaXRsaW5rID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLAoJCQkJCSdhZG1pbl9hZGRfZWRpdF9mb3JtJywgJycsCgkJCQkJJGdDbXMtPnZhcmlhYmxlc1snYWRtaW50aGVtZSddLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9lZGl0LmdpZicsJ2VkaXQnLCcnLCcnLCdzeXN0ZW1pY29uJyksCgkJCQkJCWFycmF5KCdmb3JtX2lkJz0+JHRoaXNGb3JtWydmb3JtX2lkJ10pKTsKCQkJCSRvbmVzZXQtPmRlbGV0ZWxpbmsgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsCgkJCQkJJ2FkbWluX2RlbGV0ZV9mb3JtJywgJycsCgkJCQkJJGdDbXMtPnZhcmlhYmxlc1snYWRtaW50aGVtZSddLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9kZWxldGUuZ2lmJywnZGVsZXRlJywnJywnJywnc3lzdGVtaWNvbicpLAoJCQkJCWFycmF5KCdmb3JtX2lkJz0+JHRoaXNGb3JtWydmb3JtX2lkJ10pLAoJCQkJCSR0aGlzLT5MYW5nKCdhcmVfeW91X3N1cmVfZGVsZXRlX2Zvcm0nLCR0aGlzRm9ybVsnbmFtZSddKSk7CgoJCQkJfQoJCQllbHNlCgkJCQl7CgkJCQkkb25lc2V0LT5uYW1lPSR0aGlzRm9ybVsnbmFtZSddOwoJCQkJJG9uZXNldC0+ZWRpdGxpbmsgPSAnJzsKCQkJCSRvbmVzZXQtPmRlbGV0ZWxpbmsgPSAnJzsKCQkJCX0KCQkJJG9uZXNldC0+dXNhZ2UgPSAkdGhpc0Zvcm1bJ2FsaWFzJ107CgkJCWFycmF5X3B1c2goJGZvcm1BcnJheSwkb25lc2V0KTsKCQkJKCRjdXJyb3cgPT0gInJvdzEiPyRjdXJyb3c9InJvdzIiOiRjdXJyb3c9InJvdzEiKTsKCQkJfQoJCWlmICgkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgRm9ybXMnKSkKCQkJewoJCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2FkZGxpbmsnLCR0aGlzLT5DcmVhdGVMaW5rKCRpZCwKCQkJCSdhZG1pbl9hZGRfZWRpdF9mb3JtJywgJycsCgkJCQkkZ0Ntcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL25ld29iamVjdC5naWYnLCAkdGhpcy0+TGFuZygndGl0bGVfYWRkX25ld19mb3JtJyksJycsCgkJCQkJJycsJ3N5c3RlbWljb24nKSwgYXJyYXkoKSkpOwoJCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2FkZGZvcm0nLCR0aGlzLT5DcmVhdGVMaW5rKCRpZCwKCQkJCSdhZG1pbl9hZGRfZWRpdF9mb3JtJywgJycsICR0aGlzLT5MYW5nKCd0aXRsZV9hZGRfbmV3X2Zvcm0nKSwKCQkJCWFycmF5KCkpKTsKCQkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdtYXlfY29uZmlnJywxKTsKCQkJfQoJCWVsc2UKCQkJewoJCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ25vX3Blcm1pc3Npb24nLAoJCQkJJHRoaXMtPkxhbmcoJ2xhY2twZXJtaXNzaW9uJykpOwoJCQl9CgkKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2hpZGVfZXJyb3JzJywkdGhpcy0+TGFuZygndGl0bGVfaGlkZV9lcnJvcnMnKSk7CQkKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X2hpZGVfZXJyb3JzJywkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsICdoaWRlX2Vycm9ycycsIDEsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdoaWRlX2Vycm9ycycsJzEnKSkuICR0aGlzLT5MYW5nKCd0aXRsZV9oaWRlX2Vycm9yc19sb25nJykpOwkJCgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9yZWxheGVkX2VtYWlsX3JlZ2V4JywkdGhpcy0+TGFuZygndGl0bGVfcmVsYXhlZF9lbWFpbF9yZWdleCcpKTsJCQoJCSR0aGlzLT5zbWFydHktPmFzc2lnbignaW5wdXRfcmVsYXhlZF9lbWFpbF9yZWdleCcsJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAncmVsYXhlZF9lbWFpbF9yZWdleCcsIDEsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdyZWxheGVkX2VtYWlsX3JlZ2V4JywnMCcpKS4gJHRoaXMtPkxhbmcoJ3RpdGxlX3JlbGF4ZWRfcmVnZXhfbG9uZycpKTsKCgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9lbmFibGVfZmFzdGFkZCcsJHRoaXMtPkxhbmcoJ3RpdGxlX2VuYWJsZV9mYXN0YWRkJykpOwoJCSR0aGlzLT5zbWFydHktPmFzc2lnbignaW5wdXRfZW5hYmxlX2Zhc3RhZGQnLCR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwgJ2VuYWJsZV9mYXN0YWRkJywgMSwgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2VuYWJsZV9mYXN0YWRkJywnMScpKS4gJHRoaXMtPkxhbmcoJ3RpdGxlX2VuYWJsZV9mYXN0YWRkX2xvbmcnKSk7CQkKCgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9lbmFibGVfYW50aXNwYW0nLCR0aGlzLT5MYW5nKCd0aXRsZV9lbmFibGVfYW50aXNwYW0nKSk7CgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF9lbmFibGVfYW50aXNwYW0nLCR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwgJ2VuYWJsZV9hbnRpc3BhbScsIDEsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdlbmFibGVfYW50aXNwYW0nLCcxJykpLiAkdGhpcy0+TGFuZygndGl0bGVfZW5hYmxlX2FudGlzcGFtX2xvbmcnKSk7CgoKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX3Nob3dfdmVyc2lvbicsJHRoaXMtPkxhbmcoJ3RpdGxlX3Nob3dfdmVyc2lvbicpKTsKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X3Nob3dfdmVyc2lvbicsJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAnc2hvd192ZXJzaW9uJywgMSwgJHRoaXMtPkdldFByZWZlcmVuY2UoJ3Nob3dfdmVyc2lvbicsJzEnKSkuICR0aGlzLT5MYW5nKCd0aXRsZV9zaG93X3ZlcnNpb25fbG9uZycpKTsJCQkJCgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnc3VibWl0JywgJHRoaXMtPkxhbmcoJ3NhdmUnKSkpOwoJCSR0aGlzLT5zbWFydHktPmFzc2lnbignZW5kX2NvbmZpZ2Zvcm0nLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwoKICAgICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzdGFydF94bWxmb3JtJywkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwKCQkJJ2ltcG9ydHhtbCcsICRyZXR1cm5pZCwgJ3Bvc3QnLCdtdWx0aXBhcnQvZm9ybS1kYXRhJykpOwoJCSR0aGlzLT5zbWFydHktPmFzc2lnbignc3VibWl0eG1sJywgJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ3N1Ym1pdCcsICR0aGlzLT5MYW5nKCd1cGxvYWQnKSkpOwoJCSR0aGlzLT5zbWFydHktPmFzc2lnbignZW5kX3htbGZvcm0nLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwogICAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X3htbF90b191cGxvYWQnLCR0aGlzLT5DcmVhdGVJbnB1dEZpbGUoJGlkLCAneG1sZmlsZScpKTsKICAgICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV94bWxfdG9fdXBsb2FkJywkdGhpcy0+TGFuZygndGl0bGVfeG1sX3RvX3VwbG9hZCcpKTsKCiAgICAgICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduX2J5X3JlZignZm9ybXMnLCAkZm9ybUFycmF5KTsJCQkKICAgICAgICBlY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ0FkbWluTWFpbi50cGwnKTsKPz4K]]></data>
	</file>
	<file>
	  <filename>/action.exportxml.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgppZiAoISBpc3NldCgkcGFyYW1zWydmb3JtX2lkJ10pICYmIGlzc2V0KCRwYXJhbXNbJ2Zvcm0nXSkpCiAgewogICAgLy8gZ2V0IHRoZSBmb3JtIGJ5IG5hbWUsIG5vdCBJRAogICAgJHBhcmFtc1snZm9ybV9pZCddID0gJHRoaXMtPkdldEZvcm1JREZyb21BbGlhcygkcGFyYW1zWydmb3JtJ10pOwogIH0KCiRhZWZvcm0gPSBuZXcgZmJGb3JtKCR0aGlzLCRwYXJhbXMsdHJ1ZSk7Cgokc3BlYyA9ICRhZWZvcm0tPkdldE5hbWUoKS4iLnhtbCI7CiRzcGVjID0gcHJlZ19yZXBsYWNlKCcvW15cd1xkXC5cLVxfXS8nLCdfJywkc3BlYyk7CiR4bWxzdHIgPSAkYWVmb3JtLT5FeHBvcnRYTUwoaXNzZXQoJHBhcmFtc1snZXhwb3J0X3ZhbHVlcyddKT90cnVlOmZhbHNlKTsKCiAgICBAb2JfY2xlYW4oKTsKICAgIEBvYl9jbGVhbigpOwogICAgaGVhZGVyKCdQcmFnbWE6IHB1YmxpYycpOwogICAgaGVhZGVyKCdFeHBpcmVzOiAwJyk7CiAgICBoZWFkZXIoJ0NhY2hlLUNvbnRyb2w6IG11c3QtcmV2YWxpZGF0ZSwgcG9zdC1jaGVjaz0wLCBwcmUtY2hlY2s9MCcpOwogICAgaGVhZGVyKCdDYWNoZS1Db250cm9sOiBwcml2YXRlJyxmYWxzZSk7CiAgICBoZWFkZXIoJ0NvbnRlbnQtRGVzY3JpcHRpb246IEZpbGUgVHJhbnNmZXInKTsKICAgIGhlYWRlcignQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9mb3JjZS1kb3dubG9hZDsgY2hhcnNldD11dGYtOCcpOwogICAgaGVhZGVyKCdDb250ZW50LUxlbmd0aDogJyAuIHN0cmxlbigkeG1sc3RyKSk7CiAgICBoZWFkZXIoJ0NvbnRlbnQtRGlzcG9zaXRpb246IGF0dGFjaG1lbnQ7IGZpbGVuYW1lPScgLiAkc3BlYyk7CiAgICBlY2hvICR4bWxzdHI7CiAgICBleGl0Owo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.importxml.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCiRwYXJhbXNbJ3htbF9maWxlJ10gPSAkX0ZJTEVTWyRpZC4neG1sZmlsZSddWyd0bXBfbmFtZSddOwoKJGFlZm9ybSA9IG5ldyBmYkZvcm0oJHRoaXMsICRwYXJhbXMsIHRydWUpOwokcmVzID0gJGFlZm9ybS0+SW1wb3J0WE1MKCRwYXJhbXMpOwoKaWYgKCRyZXMpCgl7CgkkcGFyYW1zWydtZXNzYWdlJ10gPSAkdGhpcy0+TGFuZygnZm9ybV9pbXBvcnRlZCcpOwoJfQplbHNlCgl7CgkkcGFyYW1zWydtZXNzYWdlJ10gPSAkdGhpcy0+TGFuZygnZm9ybV9pbXBvcnRfZmFpbGVkJyk7Cgl9CiR0aGlzLT5Eb0FjdGlvbignZGVmYXVsdGFkbWluJywgJGlkLCAkcGFyYW1zKTsKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.validate.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgkJCmlmICghaXNzZXQoJHBhcmFtc1snZiddKSB8fCAhaXNzZXQoJHBhcmFtc1snciddKSB8fCAhaXNzZXQoJHBhcmFtc1snYyddKSkKCXsKCWVjaG8gJHRoaXMtPkxhbmcoJ3ZhbGlkYXRpb25fcGFyYW1fZXJyb3InKTsKCX0KJHBhcmFtc1sncmVzcG9uc2VfaWQnXT0kcGFyYW1zWydyJ107CiRwYXJhbXNbJ2Zvcm1faWQnXT0kcGFyYW1zWydmJ107CiRwYXJhbXNbJ3VzZXJfZm9ybV92YWxpZGF0ZSddPXRydWU7CiRhZWZvcm0gPSBuZXcgZmJGb3JtKCR0aGlzLCAkcGFyYW1zLCB0cnVlKTsKCmlmICghJGFlZm9ybS0+Q2hlY2tSZXNwb25zZSgkcGFyYW1zWydmJ10sICRwYXJhbXNbJ3InXSwgJHBhcmFtc1snYyddKSkKCXsKCWVjaG8gJHRoaXMtPkxhbmcoJ3ZhbGlkYXRpb25fcmVzcG9uc2VfZXJyb3InKTsKCX0KCiRmaWVsZHMgPSAkYWVmb3JtLT5HZXRGaWVsZHMoKTsKJGNvbmZpcm1hdGlvbkZpZWxkID0gLTE7CmZvcigkaT0wOyRpPGNvdW50KCRmaWVsZHMpOyRpKyspCgl7CglpZiAoJGZpZWxkc1skaV0tPkdldEZpZWxkVHlwZSgpID09ICdEaXNwb3NpdGlvbkVtYWlsQ29uZmlybWF0aW9uJykKCQl7CgkJJGNvbmZpcm1hdGlvbkZpZWxkID0gJGk7CgkJfQoJfQppZiAoJGNvbmZpcm1hdGlvbkZpZWxkICE9IC0xKQoJewoJJGZpZWxkc1skY29uZmlybWF0aW9uRmllbGRdLT5BcHByb3ZlVG9HbygkcGFyYW1zWydyJ10pOwoJJHJlc3VsdHMgPSAkYWVmb3JtLT5EaXNwb3NlKCRyZXR1cm5pZCk7CglpZiAoJHJlc3VsdHNbMF0gPT0gdHJ1ZSkKCQl7CgkJJHJldCA9ICRmaWVsZHNbJGNvbmZpcm1hdGlvbkZpZWxkXS0+R2V0T3B0aW9uKCdyZWRpcmVjdF9wYWdlJywnLTEnKTsKCQlpZiAoJHJldCAhPSAtMSkKCQkJewoJCQkkdGhpcy0+UmVkaXJlY3RDb250ZW50KCRyZXQpOwoJCQl9CgkJfQoJZWxzZQoJCXsKCQllY2hvICJFcnJvciE6ICI7CgkJZm9yZWFjaCAoJHJlc3VsdHNbMV0gYXMgJHRoaXNSZXMpCgkJCXsKCQkJZWNobyAkdGhpc1JlcyAuICc8YnIgLz4nOwoJCQl9CgkJfQoJfQplbHNlCgl7CgkJZWNobyAkdGhpcy0+TGFuZygndmFsaWRhdGlvbl9ub19maWVsZF9lcnJvcicpOwoJfQo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/classes/CheckboxField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkNoZWNrYm94RmllbGQgZXh0ZW5kcyBmYkZpZWxkQmFzZSB7CgoJZnVuY3Rpb24gZmJDaGVja2JveEZpZWxkKCYkZm9ybV9wdHIsICYkcGFyYW1zKQoJewogICAgICAgICR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgICAgICRtb2QgPSAmJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gICdDaGVja2JveEZpZWxkJzsKCQkkdGhpcy0+RGlzcGxheUluRm9ybSA9IHRydWU7CgkJJHRoaXMtPk5vblJlcXVpcmFibGVGaWVsZCA9IHRydWU7CgkJJHRoaXMtPlJlcXVpcmVkID0gZmFsc2U7CgkJJHRoaXMtPlZhbGlkYXRpb25UeXBlcyA9IGFycmF5KAogICAgICAgICAgICAkbW9kLT5MYW5nKCd2YWxpZGF0aW9uX25vbmUnKT0+J25vbmUnLAogICAgICAgICAgICAkbW9kLT5MYW5nKCd2YWxpZGF0aW9uX211c3RfY2hlY2snKT0+J2NoZWNrZWQnCiAgICAgICAgICAgICk7Cgl9CgoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJGxhYmVsID0gJyc7CgkJaWYgKHN0cmxlbigkdGhpcy0+R2V0T3B0aW9uKCdsYWJlbCcsJycpKSA+IDApCgkJCXsKCQkJJGxhYmVsID0gJyZuYnNwOzxsYWJlbCBmb3I9IicuJGlkLidfJy4kdGhpcy0+SWQuJyI+Jy4kdGhpcy0+R2V0T3B0aW9uKCdsYWJlbCcpLic8L2xhYmVsPic7CgkJCX0KCQlpZiAoJHRoaXMtPlZhbHVlID09PSBmYWxzZSAmJiAkdGhpcy0+R2V0T3B0aW9uKCdpc19jaGVja2VkJywnMCcpPT0nMScpCgkJCXsKCQkJJHRoaXMtPlZhbHVlID0gJ3QnOwoJCQl9CgkJcmV0dXJuICRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAnXycuJHRoaXMtPklkLCAndCcsJHRoaXMtPlZhbHVlKS4kbGFiZWw7Cgl9CgoJZnVuY3Rpb24gR2V0SHVtYW5SZWFkYWJsZVZhbHVlKCkKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQlpZiAoJHRoaXMtPlZhbHVlID09PSBmYWxzZSkKCQkJewoJCQlyZXR1cm4gJHRoaXMtPkdldE9wdGlvbigndW5jaGVja2VkX3ZhbHVlJywkbW9kLT5MYW5nKCd2YWx1ZV91bmNoZWNrZWQnKSk7CgkJCX0KCQllbHNlCgkJCXsKCQkJcmV0dXJuICR0aGlzLT5HZXRPcHRpb24oJ2NoZWNrZWRfdmFsdWUnLCRtb2QtPkxhbmcoJ3ZhbHVlX2NoZWNrZWQnKSk7CgkJCX0JCgl9CgoKCWZ1bmN0aW9uIFBvc3RQb3B1bGF0ZUFkbWluRm9ybSgmJG1haW5BcnJheSwgJiRhZHZBcnJheSkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCS8vIHJlbW92ZSB0aGUgInJlcXVpcmVkIiBmaWVsZCwgc2luY2UgdGhpcyBjYW4gb25seSBiZSBkb25lIHZpYSB2YWxpZGF0aW9uCgkJJHJlcUluZGV4ID0gLTE7CgkJZm9yICgkaT0wOyRpPGNvdW50KCRtYWluQXJyYXkpOyRpKyspCgkJCXsKCQkJaWYgKCRtYWluQXJyYXlbJGldLT50aXRsZSA9PSAkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9yZXF1aXJlZCcpKQoJCQkJewoJCQkJJHJlcUluZGV4ID0gJGk7CgkJCQl9CgkJCX0KCQlpZiAoJHJlcUluZGV4ICE9IC0xKQoJCQl7CgkJCWFycmF5X3NwbGljZSgkbWFpbkFycmF5LCAkcmVxSW5kZXgsMSk7CgkJCX0KCX0KCgoKCWZ1bmN0aW9uIFN0YXR1c0luZm8oKQoJewoJCWlmIChzdHJsZW4oJHRoaXMtPlZhbGlkYXRpb25UeXBlKT4wKQoJCSAgewoJCSAgCXJldHVybiBhcnJheV9zZWFyY2goJHRoaXMtPlZhbGlkYXRpb25UeXBlLCR0aGlzLT5WYWxpZGF0aW9uVHlwZXMpOwoJCSAgfQoJfQoKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkbWFpbiA9IGFycmF5KAoJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9jaGVja2JveF9sYWJlbCcpLAogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdvcHRfbGFiZWwnLAogICAgICAgICAgICAJCSR0aGlzLT5HZXRPcHRpb24oJ2xhYmVsJywnJyksMjUsMjU1KSksCiAgICAgICAgICAgIGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2NoZWNrZWRfdmFsdWUnKSwKICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnb3B0X2NoZWNrZWRfdmFsdWUnLAogICAgICAgICAgICAJCSR0aGlzLT5HZXRPcHRpb24oJ2NoZWNrZWRfdmFsdWUnLCRtb2QtPkxhbmcoJ3ZhbHVlX2NoZWNrZWQnKSksMjUsMjU1KSksCiAgICAgICAgICAgIGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3VuY2hlY2tlZF92YWx1ZScpLAogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdvcHRfdW5jaGVja2VkX3ZhbHVlJywKICAgICAgICAgICAgCQkkdGhpcy0+R2V0T3B0aW9uKCd1bmNoZWNrZWRfdmFsdWUnLCRtb2QtPkxhbmcoJ3ZhbHVlX3VuY2hlY2tlZCcpKSwyNSwyNTUpKSwgICAgICAgICAgICAJCQoJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9kZWZhdWx0X3NldCcpLAoJCQkJJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdvcHRfaXNfY2hlY2tlZCcsICcxJywgJHRoaXMtPkdldE9wdGlvbignaXNfY2hlY2tlZCcsJzAnKSkpCgkJCQkpOwoJCSRhZHYgPSBhcnJheSgKCQkpOwoJCXJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLCdhZHYnPT4kYWR2KTsKCX0KCglmdW5jdGlvbiBWYWxpZGF0ZSgpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHJlc3VsdCA9IHRydWU7CgkJJG1lc3NhZ2UgPSAnJzsKCgkJc3dpdGNoICgkdGhpcy0+VmFsaWRhdGlvblR5cGUpCgkJICB7CgkJICAJICAgY2FzZSAnbm9uZSc6CgkJICAJICAgICAgIGJyZWFrOwoJCSAgCSAgIGNhc2UgJ2NoZWNrZWQnOgoJCSAgCSAgICAgICBpZiAoJHRoaXMtPlZhbHVlID09PSBmYWxzZSkKCQkgIAkgICAgICAgICAgIHsKCQkgIAkgICAgICAgICAgICRyZXN1bHQgPSBmYWxzZTsKCQkgIAkgICAgICAgICAgICRtZXNzYWdlID0gJG1vZC0+TGFuZygneW91X211c3RfY2hlY2snLCR0aGlzLT5HZXRPcHRpb24oJ2xhYmVsJywnJykpOwoJCSAgCSAgICAgICAgICAgfQoJCSAgCSAgICAgICBicmVhazsKCQkgIH0KCQlyZXR1cm4gYXJyYXkoJHJlc3VsdCwgJG1lc3NhZ2UpOwoJfQoKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/CheckboxGroupField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkNoZWNrYm94R3JvdXBGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCgl2YXIgJGJveENvdW50OwoJdmFyICRib3hBZGQ7CgkKCWZ1bmN0aW9uIGZiQ2hlY2tib3hHcm91cEZpZWxkKCYkZm9ybV9wdHIsICYkcGFyYW1zKQoJewogICAgICAgICR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgICAgICRtb2QgPSAmJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gJ0NoZWNrYm94R3JvdXBGaWVsZCc7CgkJJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwoJCSR0aGlzLT5IYXNBZGRPcCA9IHRydWU7CgkJJHRoaXMtPkhhc0RlbGV0ZU9wID0gdHJ1ZTsKCQkkdGhpcy0+Tm9uUmVxdWlyYWJsZUZpZWxkID0gdHJ1ZTsKCQkkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoCiAgICAgICAgICAgICk7CiAgICAgICAgJHRoaXMtPmJveEFkZCA9IDA7CiAgICAgICAgJHRoaXMtPmhhc011bHRpcGxlRm9ybUNvbXBvbmVudHMgPSB0cnVlOwoJfQoKCWZ1bmN0aW9uIGNvdW50Qm94ZXMoKQoJewoJCQkkdG1wID0gJiR0aGlzLT5HZXRPcHRpb25SZWYoJ2JveF9uYW1lJyk7CgkJCWlmIChpc19hcnJheSgkdG1wKSkKCQkJCXsKCSAgICAgICAgCSR0aGlzLT5ib3hDb3VudCA9IGNvdW50KCR0bXApOwoJICAgICAgICAJfQoJICAgICAgICBlbHNlaWYgKCR0bXAgIT09IGZhbHNlKQoJICAgICAgICAJewoJICAgICAgICAJJHRoaXMtPmJveENvdW50ID0gMTsKCSAgICAgICAgCX0KCSAgICAgICAgZWxzZQoJICAgICAgICAJewoJICAgICAgICAJJHRoaXMtPmJveENvdW50ID0gMDsKCSAgICAgICAgCX0KCX0KCiAgICBmdW5jdGlvbiBTdGF0dXNJbmZvKCkKCXsKICAgICAgICAkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkdGhpcy0+Y291bnRCb3hlcygpOwoJCSRyZXQgPSAkbW9kLT5MYW5nKCdib3hlcycsJHRoaXMtPmJveENvdW50KTsKCQlpZiAoc3RybGVuKCR0aGlzLT5WYWxpZGF0aW9uVHlwZSk+MCkKCQkgIHsKCQkgIAkkcmV0IC49ICIsICIuYXJyYXlfc2VhcmNoKCR0aGlzLT5WYWxpZGF0aW9uVHlwZSwkdGhpcy0+VmFsaWRhdGlvblR5cGVzKTsKCQkgIH0KCQkgcmV0dXJuICRyZXQ7Cgl9CgoJZnVuY3Rpb24gR2V0T3B0aW9uQWRkQnV0dG9uKCkKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQlyZXR1cm4gJG1vZC0+TGFuZygnYWRkX2NoZWNrYm94ZXMnKTsKCX0KCglmdW5jdGlvbiBHZXRPcHRpb25EZWxldGVCdXR0b24oKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCXJldHVybiAkbW9kLT5MYW5nKCdkZWxldGVfY2hlY2tib3hlcycpOwoJfQoKCWZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRuYW1lcyA9ICYkdGhpcy0+R2V0T3B0aW9uUmVmKCdib3hfbmFtZScpOwoJCSRpc19zZXQgPSAmJHRoaXMtPkdldE9wdGlvblJlZignYm94X2lzX3NldCcpOwoJCWlmICghIGlzX2FycmF5KCRuYW1lcykpCgkJCXsKCQkJJG5hbWVzID0gYXJyYXkoJG5hbWVzKTsKCQkJfQkKCQlpZiAoISBpc19hcnJheSgkaXNfc2V0KSkKCQkJewoJCQkkaXNfc2V0ID0gYXJyYXkoJGlzX3NldCk7CgkJCX0KCQkkZmllbGREaXNwID0gYXJyYXkoKTsKCQlmb3IgKCRpPTA7JGk8Y291bnQoJG5hbWVzKTskaSsrKQoJCQl7CgkJCSRsYWJlbCA9ICcnOwoJCQkkdGhpc0JveCA9IG5ldyBzdGRDbGFzcygpOwoJCQlpZiAoc3RybGVuKCRuYW1lc1skaV0pID4gMCkKCQkJCXsKCQkJCSR0aGlzQm94LT5uYW1lID0gJzxsYWJlbCBmb3I9IicuJGlkLidfJy4kdGhpcy0+SWQuJ1tdIj4nLiRuYW1lc1skaV0uJzwvbGFiZWw+JzsKCQkJCSR0aGlzQm94LT50aXRsZSA9ICRuYW1lc1skaV07CgkJCQl9CgkJCSRjaGVja192YWwgPSBmYWxzZTsKCQkJaWYgKCR0aGlzLT5WYWx1ZSAhPT0gZmFsc2UpCgkJCQl7CgkJCQkkY2hlY2tfdmFsID0gJHRoaXMtPkZpbmRBcnJheVZhbHVlKCRpKTsKCQkJCX0KCQkJZWxzZQoJCQkJewoJCQkJaWYgKGlzc2V0KCRpc19zZXRbJGldKSAmJiAkaXNfc2V0WyRpXSA9PSAneScpCgkJCQkJewoJCQkJCSRjaGVja192YWwgPSB0cnVlOwoJCQkJCX0KCQkJCX0KCQkJJHRoaXNCb3gtPmlucHV0ID0gJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsICdfJy4kdGhpcy0+SWQuJ1tdJywgJGksCgkJCQkkY2hlY2tfdmFsICE9PSBmYWxzZT8kaTonLTEnKTsKCQkJYXJyYXlfcHVzaCgkZmllbGREaXNwLCAkdGhpc0JveCk7CgkJCX0JCQkKCQlyZXR1cm4gJGZpZWxkRGlzcDsKCX0KCglmdW5jdGlvbiBHZXRIdW1hblJlYWRhYmxlVmFsdWUoKQoJewoJCSRmb3JtID0gJiR0aGlzLT5mb3JtX3B0cjsKCQkkbmFtZXMgPSAmJHRoaXMtPkdldE9wdGlvblJlZignYm94X25hbWUnKTsKCQlpZiAoISBpc19hcnJheSgkbmFtZXMpKQoJCQl7CgkJCSRuYW1lcyA9IGFycmF5KCRuYW1lcyk7CgkJCX0JCQoJCSRjaGVja2VkID0gJiR0aGlzLT5HZXRPcHRpb25SZWYoJ2JveF9jaGVja2VkJyk7CgkJaWYgKCEgaXNfYXJyYXkoJGNoZWNrZWQpKQoJCQl7CgkJCSRjaGVja2VkID0gYXJyYXkoJGNoZWNrZWQpOwoJCQl9CgkJJHVuY2hlY2tlZCA9ICYkdGhpcy0+R2V0T3B0aW9uUmVmKCdib3hfdW5jaGVja2VkJyk7CgkJaWYgKCEgaXNfYXJyYXkoJHVuY2hlY2tlZCkpCgkJCXsKCQkJJHVuY2hlY2tlZCA9IGFycmF5KCR1bmNoZWNrZWQpOwoJCQl9CgkJJGZpZWxkUmV0ID0gYXJyYXkoKTsKCQlmb3IgKCRpPTA7JGk8Y291bnQoJG5hbWVzKTskaSsrKQoJCQl7CgkJCWlmICgkdGhpcy0+RmluZEFycmF5VmFsdWUoJGkpID09PSBmYWxzZSkKCQkJCXsKCQkJCWFycmF5X3B1c2goJGZpZWxkUmV0LCAkdW5jaGVja2VkWyRpXSk7CgkJCQl9CgkJCWVsc2UKCQkJCXsKCQkJCWFycmF5X3B1c2goJGZpZWxkUmV0LCAkY2hlY2tlZFskaV0pOwoJCQkJfQoJCQl9CgkJcmV0dXJuIGpvaW4oJGZvcm0tPkdldEF0dHIoJ2xpc3RfZGVsaW1pdGVyJywnLCcpLCRmaWVsZFJldCk7CQkJCgl9CgoKCWZ1bmN0aW9uIERvT3B0aW9uQWRkKCYkcGFyYW1zKQoJewoJCSR0aGlzLT5ib3hBZGQgPSAxOwoJfQoKCWZ1bmN0aW9uIERvT3B0aW9uRGVsZXRlKCYkcGFyYW1zKQoJewoJCSRkZWxjb3VudCA9IDA7CgkJZm9yZWFjaCAoJHBhcmFtcyBhcyAkdGhpc0tleT0+JHRoaXNWYWwpCgkJCXsKCQkJaWYgKHN1YnN0cigkdGhpc0tleSwwLDQpID09ICdkZWxfJykKCQkJCXsKCQkJCSR0aGlzLT5SZW1vdmVPcHRpb25FbGVtZW50KCdib3hfbmFtZScsICR0aGlzVmFsIC0gJGRlbGNvdW50KTsKCQkJCSR0aGlzLT5SZW1vdmVPcHRpb25FbGVtZW50KCdib3hfY2hlY2tlZCcsICR0aGlzVmFsIC0gJGRlbGNvdW50KTsKCQkJCSR0aGlzLT5SZW1vdmVPcHRpb25FbGVtZW50KCdib3hfdW5jaGVja2VkJywgJHRoaXNWYWwgLSAkZGVsY291bnQpOwoJCQkJJHRoaXMtPlJlbW92ZU9wdGlvbkVsZW1lbnQoJ2JveF9pc19zZXQnLCAkdGhpc1ZhbCAtICRkZWxjb3VudCk7CgkJCQkkZGVsY291bnQrKzsKCQkJCX0KCQkJfQoJfQoKCglmdW5jdGlvbiBQcmVQb3B1bGF0ZUFkbWluRm9ybSgkZm9ybURlc2NyaXB0b3IpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHllc05vID0gYXJyYXkoJG1vZC0+TGFuZygnbm8nKT0+J24nLCRtb2QtPkxhbmcoJ3llcycpPT4neScpOwoKCQkkdGhpcy0+Y291bnRCb3hlcygpOwoJCWlmICgkdGhpcy0+Ym94QWRkID4gMCkKCQkJewoJCQkkdGhpcy0+Ym94Q291bnQgKz0gJHRoaXMtPmJveEFkZDsKCQkJJHRoaXMtPmJveEFkZCA9IDA7CgkJCX0KCQkkYm94ZXMgPSAnPHRhYmxlIGNsYXNzPSJtb2R1bGVfZmJfdGFibGUiPjx0cj48dGg+Jy4kbW9kLT5MYW5nKCd0aXRsZV9jaGVja2JveF9sYWJlbCcpLic8L3RoPjx0aD4nLgoJCQkkbW9kLT5MYW5nKCd0aXRsZV9jaGVja2VkX3ZhbHVlJykuJzwvdGg+PHRoPicuCgkJCSRtb2QtPkxhbmcoJ3RpdGxlX3VuY2hlY2tlZF92YWx1ZScpLic8L3RoPjx0aD4nLgoJCQkkbW9kLT5MYW5nKCd0aXRsZV9kZWZhdWx0X3NldCcpLic8L3RoPjx0aD4nLgoJCQkkbW9kLT5MYW5nKCd0aXRsZV9kZWxldGUnKS4nPC90aD48L3RyPic7CgoKCQlmb3IgKCRpPTA7JGk8KCR0aGlzLT5ib3hDb3VudD4xPyR0aGlzLT5ib3hDb3VudDoxKTskaSsrKQoJCQl7CgkJCSRib3hlcyAuPSAnPHRyPjx0ZD4nLgogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdvcHRfYm94X25hbWVbXScsJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ2JveF9uYW1lJywkaSksMjUsMTI4KS4KICAgICAgICAgICAgCQknPC90ZD48dGQ+Jy4KICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnb3B0X2JveF9jaGVja2VkW10nLCR0aGlzLT5HZXRPcHRpb25FbGVtZW50KCdib3hfY2hlY2tlZCcsJGkpLDI1LDEyOCkuCiAgICAgICAgICAgIAkJJzwvdGQ+PHRkPicuCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ29wdF9ib3hfdW5jaGVja2VkW10nLCR0aGlzLT5HZXRPcHRpb25FbGVtZW50KCdib3hfdW5jaGVja2VkJywkaSksMjUsMTI4KS4KICAgICAgICAgICAgCQknPC90ZD48dGQ+Jy4gICAgICAgICAgICAJCSAgICAKICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRmb3JtRGVzY3JpcHRvciwgJ29wdF9ib3hfaXNfc2V0W10nLCAkeWVzTm8sIC0xLCAkdGhpcy0+R2V0T3B0aW9uRWxlbWVudCgnYm94X2lzX3NldCcsJGkpKS4KICAgICAgICAgICAgCQkKICAgICAgICAgICAgCQkKICAgICAgICAgICAgCQknPC90ZD48dGQ+Jy4KLy9DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwgJG5hbWUsICR2YWx1ZT0nJywgJHNlbGVjdGVkdmFsdWU9JycsCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdkZWxfJy4kaSwgJGksLTEpLgogICAgICAgICAgICAgCQknPC90ZD48L3RyPic7CgkJCX0KCQkkYm94ZXMgLj0gJzwvdGFibGU+JzsKCQkkbWFpbiA9IGFycmF5KAoJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9jaGVja2JveF9kZXRhaWxzJyksJGJveGVzKQoJCSk7CgkJJGFkdiA9IGFycmF5KCk7CgkJcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwoJfQoKCWZ1bmN0aW9uIFBvc3RQb3B1bGF0ZUFkbWluRm9ybSgmJG1haW5BcnJheSwgJiRhZHZBcnJheSkKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkvLyByZW1vdmUgdGhlICJyZXF1aXJlZCIgZmllbGQsIHNpbmNlIHRoaXMgY2FuIG9ubHkgYmUgZG9uZSB2aWEgdmFsaWRhdGlvbgoJCSRyZXFJbmRleCA9IC0xOwoJCWZvciAoJGk9MDskaTxjb3VudCgkbWFpbkFycmF5KTskaSsrKQoJCQl7CgkJCWlmICgkbWFpbkFycmF5WyRpXS0+dGl0bGUgPT0gJG1vZC0+TGFuZygndGl0bGVfZmllbGRfcmVxdWlyZWQnKSkKCQkJCXsKCQkJCSRyZXFJbmRleCA9ICRpOwoJCQkJfQoJCQl9CgkJaWYgKCRyZXFJbmRleCAhPSAtMSkKCQkJewoJCQlhcnJheV9zcGxpY2UoJG1haW5BcnJheSwgJHJlcUluZGV4LDEpOwoJCQl9Cgl9CgoKCWZ1bmN0aW9uIFBvc3RBZG1pblN1Ym1pdENsZWFudXAoKQoJewoJCSRuYW1lcyA9ICYkdGhpcy0+R2V0T3B0aW9uUmVmKCdib3hfbmFtZScpOwoJCSRjaGVja2VkID0gJiR0aGlzLT5HZXRPcHRpb25SZWYoJ2JveF9jaGVja2VkJyk7CgkJJHVuY2hlY2tlZCA9ICYkdGhpcy0+R2V0T3B0aW9uUmVmKCdib3hfdW5jaGVja2VkJyk7CgkJJGlzX3NldCA9ICYkdGhpcy0+R2V0T3B0aW9uUmVmKCdib3hfaXNfc2V0Jyk7CgkJZm9yICgkaT0wOyRpPGNvdW50KCRuYW1lcyk7JGkrKykKCQkJewoJCQlpZiAoJG5hbWVzWyRpXSA9PSAnJyAmJiAkY2hlY2tlZFskaV0gPT0gJycgKQoJCQkJewoJCQkJJHRoaXMtPlJlbW92ZU9wdGlvbkVsZW1lbnQoJ2JveF9uYW1lJywgJGkpOwoJCQkJJHRoaXMtPlJlbW92ZU9wdGlvbkVsZW1lbnQoJ2JveF9jaGVja2VkJywgJGkpOwoJCQkJJHRoaXMtPlJlbW92ZU9wdGlvbkVsZW1lbnQoJ2JveF91bmNoZWNrZWQnLCAkaSk7CgkJCQkkdGhpcy0+UmVtb3ZlT3B0aW9uRWxlbWVudCgnYm94X2lzX3NldCcsICRpKTsKCQkJCSRpLS07CgkJCQl9CgkJCX0KCQkkdGhpcy0+Y291bnRCb3hlcygpOwoJfQoKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/CountryPickerField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmNsYXNzIGZiQ291bnRyeVBpY2tlckZpZWxkIGV4dGVuZHMgZmJGaWVsZEJhc2UgewoKCXZhciAkQ291bnRyaWVzOwoJCglmdW5jdGlvbiBmYkNvdW50cnlQaWNrZXJGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJiRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkdGhpcy0+VHlwZSA9ICdDb3VudHJ5UGlja2VyRmllbGQnOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoCiAgICAgICAgICAgICk7CgogICAgICAgICR0aGlzLT5Db3VudHJpZXMgPSBhcnJheSgkbW9kLT5MYW5nKCdub19kZWZhdWx0Jyk9PicnLAogICAgICAgICdBZmdoYW5pc3Rhbic9PidBRicsICdBbGFuZCBJc2xhbmRzJz0+J0FYJywgCiAgICAgICAgJ0FsYmFuaWEnPT4nQUwnLCAgJ0FsZ2VyaWEnPT4nRFonLCAnQW1lcmljYW4gU2Ftb2EnPT4nQVMnLCAnQW5kb3JyYSc9PidBRCcsCiAgICAgICAgICdBbmdvbGEnPT4nQU8nLCAnQW5ndWlsbGEnPT4nQUknLCAnQW50YXJjdGljYSc9PidBUScsICAnQW50aWd1YSBhbmQgQmFyYnVkYSc9PidBRycsCiAgICAgICAgJ0FyZ2VudGluYSc9PidBUicsICdBcm1lbmlhJz0+J0FNJywgJ0FydWJhJz0+J0FXJywgJ0F1c3RyYWxpYSc9PidBVScsICdBdXN0cmlhJz0+J0FUJywgCQknQXplcmJhaWphbic9PidBWicsICdCYWhhbWFzJz0+J0JTJywgJ0JhaHJhaW4nPT4nQkgnLCAnQmFyYmFkb3MnPT4nIEJCJywKICAgICAgICAnQmFuZ2xhZGVzaCc9PidCRCcsICdCZWxhcnVzJz0+J0JZJywgJ0JlbGdpdW0nPT4nQkUnLAogICAgICAgICdCZWxpemUnPT4nQlonLCAnQmVuaW4nPT4nQkonLCAnQmVybXVkYSc9PidCTScsICdCaHV0YW4nPT4nQlQnLCAnQm90c3dhbmEnPT4nQlcnLAogICAgICAgICdCb2xpdmlhJz0+J0JPJywgJ0Jvc25pYSBhbmQgSGVyemVnb3ZpbmEnPT4nQkEnLCAnQm91dmV0IElzbGFuZCc9PidCVicsCiAgICAgICAgJ0JyYXppbCc9PidCUicsICdCcml0aXNoIEluZGlhbiBPY2VhbiBUZXJyaXRvcnknPT4nSU8nLCAnQnJ1bmVpIERhcnVzc2FsYW0nPT4nQk4nLCAnQnVsZ2FyaWEnPT4nQkcnLAogICAgICAgICdCdXJraW5hIEZhc28nPT4nQkYnLCAnQnVydW5kaSc9PidCSScsICdDYW1ib2RpYSc9PidLSCcsCiAgICAgICAgJ0NhbWVyb29uJz0+J0NNJywgJ0NhbmFkYSc9PidDQScgLCAnQ2FwZSBWZXJkZSc9PidDVicsICdDYXltYW4gSXNsYW5kcyc9PidLWScsIAogICAgICAgICdDZW50cmFsIEFmcmljYW4gUmVwdWJsaWMnPT4nQ0YnLCAnQ2hhZCc9PidURCcsCiAgICAgICAgJ0NoaWxlJz0+J0NMJywgJ0NoaW5hJz0+J0NOJywgJ0NocmlzdG1hcyBJc2xhbmQnPT4nQ1gnLCAKICAgICAgICAnQ29jb3MgKEtlZWxpbmcpIElzbGFuZHMnPT4nQ0MnLCAnQ29sb21iaWEnPT4nQ08nLCAnQ29tb3Jvcyc9PidLTScsCiAgICAgICAgJ0NvbmdvJz0+J0NHJywgJ0NvbmdvLCAgRGVtb2NyYXRpYyBSZXB1YmxpYyc9PidDRCcsICAnQ29vayBJc2xhbmRzJz0+J0NLJywKICAgICAgICAnQ29zdGEgUmljYSc9PidDUicsICdDb3RlIERcJ0l2b2lyZSAoSXZvcnkgQ29hc3QpJz0+J0NJJywgJ0Nyb2F0aWEgKEhydmF0c2thKSc9PidIUicsICAnQ3ViYSc9PidDVScsCiAgICAgICAgJ0N5cHJ1cyc9PidDWScsICdDemVjaCBSZXB1YmxpYyc9PidDWicsICdEZW5tYXJrJz0+J0RLJywKICAgICAgICAnRGppYm91dGknPT4nREonLCAnRG9taW5pY2EnPT4nRE0gJywgICdEb21pbmljYW4gUmVwdWJsaWMnPT4nRE8nLAogICAgICAgICdFYXN0IFRpbW9yJz0+J1RQJywgJ0VjdWFkb3InPT4nRUMnLAogICAgICAgICdFZ3lwdCc9PidFRycsICdFbCBTYWx2YWRvcic9PidTVicsICdFcXVhdG9yaWFsIEd1aW5lYSc9PidHUScsCiAgICAgICAgJ0VyaXRyZWEnPT4nRVInLCAnRXN0b25pYSc9PidFRScsICdFdGhpb3BpYSc9PidFVCcsICdGYWxrbGFuZCBJc2xhbmRzIChNYWx2aW5hcyknPT4nRksnLAogICAgICAgICdGYXJvZSBJc2xhbmRzJz0+J0ZPJywgJ0ZpamknPT4nRkonLAogICAgICAgICdGaW5sYW5kJz0+J0ZJJywgJ0ZyYW5jZSc9PidGUicsICdGcmFuY2UsICBNZXRyb3BvbGl0YW4nPT4nRlgnLAogICAgICAgICAnRnJlbmNoIEd1aWFuYSc9PidHRicsICdGcmVuY2ggUG9seW5lc2lhJz0+J1BGJywgJ0ZyZW5jaCBTb3V0aGVybiBUZXJyaXRvcmllcyc9PidURicsCiAgICAgICAgICdGLlkuUi5PLk0uIChNYWNlZG9uaWEpJz0+J01LJywKICAgICAgICAnR2Fib24nPT4nR0EnLCAnR2FtYmlhJz0+J0dNJywgJ0dlb3JnaWEnPT4nR0UnLCAnR2VybWFueSc9PidERScsCiAgICAgICAgICdHaGFuYSc9PidHSCcsICdHaWJyYWx0YXInPT4nR0knLCAnR3JlYXQgQnJpdGFpbiAoVUspJz0+J0dCJywKICAgICAgICAnR3JlZWNlJz0+J0dSJywgJ0dyZWVubGFuZCc9PidHTCcsICAnR3JlbmFkYSc9PidHRCcsCiAgICAgICAgJ0d1YWRlbG91cGUnPT4nR1AnLCAgJ0d1YW0nPT4nR1UnLCAgJ0d1YXRlbWFsYSc9PidHVCcsCiAgICAgICAgJ0d1ZXJuc2V5Jz0+J0dGJywgICdHdWluZWEnPT4nR04nLCAgJ0d1aW5lYS1CaXNzYXUnPT4nR1cnLAogICAgICAgICdHdXlhbmEnPT4nR1knLCAgJ0hhaXRpJz0+J0hUJywgICdIZWFyZCBhbmQgTWNEb25hbGQgSXNsYW5kcyc9PidITScsCiAgICAgICAgJ0hvbmR1cmFzJz0+J0hOJywgICdIb25nIEtvbmcnPT4nSEsnLAogICAgICAgICdIdW5nYXJ5Jz0+J0hVJywgICdJY2VsYW5kJz0+J0lTJywgICdJbmRpYSc9PidJTicsCiAgICAgICAgJ0luZG9uZXNpYSc9PidJRCcsICAnSXJhbic9PidJUicsICAnSXJhcSc9PidJUScsIAogICAgICAgICdJcmVsYW5kJz0+J0lFJywgJ0lzcmFlbCc9PidJTCcsICAnSXNsZSBvZiBNYW4nPT4nSU0nLCAKICAgICAgICAnSXRhbHknPT4nSVQnLCAnSmVyc2V5Jz0+J0pFJywgICdKYW1haWNhJz0+J0pNJywgICdKYXBhbic9PidKUCcsCiAgICAgICAgICdKb3JkYW4nPT4nSk8nLCAnS2F6YWtoc3Rhbic9PidLWicsICAnS2VueWEnPT4nS0UnLCAKICAgICAgICAnS2lyaWJhdGknPT4nS0knLCAgJ0tvcmVhIChOb3J0aCknPT4nS1AnLCAgJ0tvcmVhIChTb3V0aCknPT4nS1InLCAKICAgICAgICAnS3V3YWl0Jz0+J0tXJywgJ0t5cmd5enN0YW4nPT4nS0cnLCAKICAgICAgICAnTGFvcyc9PidMQScsICAnTGF0dmlhJz0+J0xWJywgJ0xlYmFub24nPT4nTEInLCAKICAgICAgICAnTGllY2h0ZW5zdGVpbic9PidMSScsICAnTGliZXJpYSc9PidMUicsICdMaWJ5YSc9PidMWScsIAogICAgICAgICdMZXNvdGhvJz0+J0xTJywgICdMaXRodWFuaWEnPT4nTFQnLCAnTHV4ZW1ib3VyZyc9PidMVScsIAogICAgICAgICdNYWNhdSc9PidNTycsICAnTWFkYWdhc2Nhcic9PidNRycsICdNYWxhd2knPT4nTVcnLCAKICAgICAgICAnTWFsYXlzaWEnPT4nTVknLCAgJ01hbGRpdmVzJz0+J01WJywgJ01hbGknPT4nTUwnLCAKICAgICAgICAnTWFsdGEnPT4nTVQnLCAgJ01hcnNoYWxsIElzbGFuZHMnPT4nTUgnLCAnTWFydGluaXF1ZSc9PidNUScsIAogICAgICAgICdNYXVyaXRhbmlhJz0+J01SJywgICdNYXVyaXRpdXMnPT4nTVUnLCAnTWF5b3R0ZSc9PidZVCcsIAogICAgICAgICdNZXhpY28nPT4nTVgnLCAgJ01pY3JvbmVzaWEnPT4nRk0nLCAnTW9uYWNvJz0+J01DJywgCiAgICAgICAgJ01vbGRvdmEnPT4nTUQnLCAgJ01vcm9jY28nPT4nTUEnLCAnTW9uZ29saWEnPT4nTU4nLCAKICAgICAgICAnTW9udHNlcnJhdCc9PidNUycsICAnTW96YW1iaXF1ZSc9PidNWicsICdNeWFubWFyJz0+J01NJywgCiAgICAgICAgJ05hbWliaWEnPT4nTkEnLCAgJ05hdXJ1Jz0+J05SJywgICdOZXBhbCc9PidOUCcsCiAgICAgICAgJ05ldGhlcmxhbmRzJz0+J05MJywgICdOZXRoZXJsYW5kcyBBbnRpbGxlcyc9PidBTicsICAnTmV1dHJhbCBab25lJz0+J05UJywKICAgICAgICAnTmV3IENhbGVkb25pYSc9PidOQycsICAnTmV3IFplYWxhbmQgKEFvdGVhcm9hKSc9PidOWicsICAnTmljYXJhZ3VhJz0+J05JJywgICdOaWdlcic9PidORScsCiAgICAgICAgJ05pZ2VyaWEnPT4nTkcnLCAgJ05pdWUnPT4nTlUnLCAgJ05vcmZvbGsgSXNsYW5kJz0+J05GJywgCiAgICAgICAgJ05vcnRoZXJuIE1hcmlhbmEgSXNsYW5kcyc9PidNUCcsICAnTm9yd2F5Jz0+J05PJywgCiAgICAgICAgJ09tYW4nPT4nT00nLCAnUGFraXN0YW4nPT4nUEsnLCAgJ1BhbGF1Jz0+J1BXJywgICdQYWxlc3RpbmlhbiBUZXJyaXRvcnknPT4nUFMnLAogICAgICAgICdQYW5hbWEnPT4nUEEnLCAgJ1BhcHVhIE5ldyBHdWluZWEnPT4nUEcnLCAKICAgICAgICAnUGFyYWd1YXknPT4nUFknLCAnUGVydSc9PidQRScsICAnUGhpbGlwcGluZXMnPT4nUEgnLCAKICAgICAgICAnUGl0Y2Fpcm4nPT4nUE4nLCAnUG9sYW5kJz0+J1BMJywgICdQb3J0dWdhbCc9PidQVCcsICAnUHVlcnRvIFJpY28nPT4nUFInLAogICAgICAgICdRYXRhcic9PidRQScsICAnUmV1bmlvbic9PidSRScsICAnUm9tYW5pYSc9PidSTycsIAogICAgICAgICdSdXNzaWFuIEZlZGVyYXRpb24nPT4nUlUnLCAgJ1J3YW5kYSc9PidSVycsICAnUy4gR2VvcmdpYSBhbmQgUy4gU2FuZHdpY2ggSXNscy4nPT4nR1MnLAogICAgICAgICdTYWludCBLaXR0cyBhbmQgTmV2aXMnPT4nS04nLCAgJ1NhaW50IEx1Y2lhJz0+J0xDJywgICdTYWludCBWaW5jZW50ICZhbXA7IHRoZSBHcmVuYWRpbmVzJz0+J1ZDJywKICAgICAgICAnU2Ftb2EnPT4nV1MnLCAgJ1NhbiBNYXJpbm8nPT4nU00nLCAgJ1NhbyBUb21lIGFuZCBQcmluY2lwZSc9PidTVCcsCiAgICAgICAgICdTYXVkaSBBcmFiaWEnPT4nU0EnLCAgJ1NlbmVnYWwnPT4nU04nLAogICAgICAgICdTZXljaGVsbGVzJz0+J1NDJywgICdTaWVycmEgTGVvbmUnPT4nU0wnLCAgJ1NpbmdhcG9yZSc9PidTRycsCiAgICAgICAgJ1Nsb3ZlbmlhJz0+J1NJJywgICdTbG92YWsgUmVwdWJsaWMnPT4nU0snLCAgJ1NvbG9tb24gSXNsYW5kcyc9PidTQicsICAnU29tYWxpYSc9PidTTycsIAogICAgICAgICdTb3V0aCBBZnJpY2EnPT4nWkEnLAogICAgICAgICdTcGFpbic9PidFUycsICAnU3JpIExhbmthJz0+J0xLJywgICdTdC4gSGVsZW5hJz0+J1NIJywgICdTdC4gUGllcnJlIGFuZCBNaXF1ZWxvbiAnPT4nUE0nLAogICAgICAgICdTdWRhbic9PidTRCcsICAnU3VyaW5hbWUnPT4nU1InLAogICAgICAgICdTdmFsYmFyZCAmYW1wOyBKYW4gTWF5ZW4gSXNsYW5kcyc9PidTSicsICAnU3dhemlsYW5kJz0+J1NaJywKICAgICAgICAnU3dlZGVuJz0+J1NFJywgICdTd2l0emVybGFuZCc9PidDSCcsICAnU3lyaWEnPT4nU1knLAogICAgICAgICdUYWl3YW4nPT4nVFcnLCAgJ1RhamlraXN0YW4nPT4nVEonLCAgJ1RhbnphbmlhJz0+J1RaJywKICAgICAgICAnVGhhaWxhbmQnPT4nVEgnLCAgJ1RvZ28nPT4nVEcnLCAgJ1Rva2VsYXUnPT4nVEsnLCAKICAgICAgICAnVG9uZ2EnPT4nVE8nLCAnVHJpbmlkYWQgYW5kIFRvYmFnbyc9PidUVCcsICAnVHVuaXNpYSc9PidUTicsIAogICAgICAgICdUdXJrZXknPT4nVFInLCAnVHVya21lbmlzdGFuJz0+J1RNJywgICdUdXJrcyBhbmQgQ2FpY29zIElzbGFuZHMnPT4nVEMnLAogICAgICAgICdUdXZhbHUnPT4nVFYnLCAgJ1VnYW5kYSc9PidVRycsIAogICAgICAgICdVa3JhaW5lJz0+J1VBJywgICdVbml0ZWQgQXJhYiBFbWlyYXRlcyc9PidBRScsICAnVW5pdGVkIEtpbmdkb20nPT4nVUsnLAogICAgICAgICdVbml0ZWQgU3RhdGVzJz0+J1VTJywgJ1VTIE1pbm9yIE91dGx5aW5nIElzbGFuZHMnPT4nVU0nLCAgJ1VydWd1YXknPT4nVVknLCAKICAgICAgICAnVXpiZWtpc3Rhbic9PidVWicsIAogICAgICAgICdWYW51YXR1Jz0+J1ZVJywgICdWYXRpY2FuIENpdHkgU3RhdGUgKEhvbHkgU2VlKSc9PidWQScsIAogICAgICAgICdWZW5lenVlbGEnPT4nVkUnLCAgJ1ZpZXQgTmFtJz0+J1ZOJywgICdWaXJnaW4gSXNsYW5kcyAoQnJpdGlzaCknPT4nVkcnLAogICAgICAgICdWaXJnaW4gSXNsYW5kcyAoVS5TLiknPT4nVkknLCAgJ1dhbGxpcyBhbmQgRnV0dW5hIElzbGFuZHMnPT4nV0YnLCAKICAgICAgICAnV2VzdGVybiBTYWhhcmEnPT4nRUgnLCAnWWVtZW4nPT4nWUUnLCAKICAgICAgICAnWXVnb3NsYXZpYSc9PidZVScsICAnWmFtYmlhJz0+J1pNJywgJ1ppbWJhYndlJz0+J1pXJyApOwoJfQoKCiAgICBmdW5jdGlvbiBTdGF0dXNJbmZvKCkKCXsKCQlyZXR1cm4gJyc7Cgl9CgoJZnVuY3Rpb24gR2V0SHVtYW5SZWFkYWJsZVZhbHVlKCkKCXsKCQlyZXR1cm4gYXJyYXlfc2VhcmNoKCR0aGlzLT5WYWx1ZSwkdGhpcy0+Q291bnRyaWVzKTsKCX0KCglmdW5jdGlvbiBHZXRGaWVsZElucHV0KCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCgkJdW5zZXQoJHRoaXMtPkNvdW50cmllc1skbW9kLT5MYW5nKCdub19kZWZhdWx0JyldKTsKCQlpZiAoJHRoaXMtPkdldE9wdGlvbignc2VsZWN0X29uZScsJycpICE9ICcnKQoJCQl7CgkJCSR0aGlzLT5Db3VudHJpZXMgPSBhcnJheV9tZXJnZShhcnJheSgkdGhpcy0+R2V0T3B0aW9uKCdzZWxlY3Rfb25lJywnJyk9PicnKSwkdGhpcy0+Q291bnRyaWVzKTsKCQkJfQoJCWVsc2UKCQkJewoJCQkkdGhpcy0+Q291bnRyaWVzID0gYXJyYXlfbWVyZ2UoYXJyYXkoJG1vZC0+TGFuZygnc2VsZWN0X29uZScpPT4nJyksJHRoaXMtPkNvdW50cmllcyk7CgkJCX0KCgkJaWYgKCEgJHRoaXMtPkhhc1ZhbHVlKCkgJiYgJHRoaXMtPkdldE9wdGlvbignZGVmYXVsdCcsJycpICE9ICcnKQoJCSAgewoJCSAgJHRoaXMtPlNldFZhbHVlKCR0aGlzLT5HZXRPcHRpb24oJ2RlZmF1bHQnLCcnKSk7CgkJICB9CgoJCXJldHVybiAkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ18nLiR0aGlzLT5JZCwgJHRoaXMtPkNvdW50cmllcywgLTEsICR0aGlzLT5WYWx1ZSk7Cgl9CgoJZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCWtzb3J0KCR0aGlzLT5Db3VudHJpZXMpOwoKCQkkbWFpbiA9IGFycmF5KAoJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9zZWxlY3RfZGVmYXVsdF9jb3VudHJ5JyksCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkZm9ybURlc2NyaXB0b3IsICdvcHRfZGVmYXVsdCcsCiAgICAgICAgICAgIAkJJHRoaXMtPkNvdW50cmllcywgLTEsICR0aGlzLT5HZXRPcHRpb24oJ2RlZmF1bHQnLCcnKSkpLAoJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9zZWxlY3Rfb25lX21lc3NhZ2UnKSwKICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnb3B0X3NlbGVjdF9vbmUnLAogICAgICAgICAgICAJCSR0aGlzLT5HZXRPcHRpb24oJ3NlbGVjdF9vbmUnLCRtb2QtPkxhbmcoJ3NlbGVjdF9vbmUnKSkpKQoJCSk7CgkJcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sYXJyYXkoKSk7Cgl9CgoKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/DatePickerField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkRhdGVQaWNrZXJGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCgl2YXIgJE1vbnRoczsKCQoJZnVuY3Rpb24gZmJEYXRlUGlja2VyRmllbGQoJiRmb3JtX3B0ciwgJiRwYXJhbXMpCgl7CiAgICAgICAgJHRoaXMtPmZiRmllbGRCYXNlKCRmb3JtX3B0ciwgJHBhcmFtcyk7CiAgICAgICAgJG1vZCA9ICYkZm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHRoaXMtPlR5cGUgPSAnRGF0ZVBpY2tlckZpZWxkJzsKCQkkdGhpcy0+RGlzcGxheUluRm9ybSA9IHRydWU7CgkJJHRoaXMtPlZhbGlkYXRpb25UeXBlcyA9IGFycmF5KAogICAgICAgICAgICAkbW9kLT5MYW5nKCd2YWxpZGF0aW9uX25vbmUnKT0+J25vbmUnLAogICAgICAgICAgICApOwogICAgICAgICR0aGlzLT5Nb250aHMgPSBhcnJheSgKICAgICAgICAgICAgJG1vZC0+TGFuZygnZGF0ZV9qYW51YXJ5Jyk9PjEsCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ2RhdGVfZmVicnVhcnknKT0+MiwKICAgICAgICAgICAgJG1vZC0+TGFuZygnZGF0ZV9tYXJjaCcpPT4zLAogICAgICAgICAgICAkbW9kLT5MYW5nKCdkYXRlX2FwcmlsJyk9PjQsCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ2RhdGVfbWF5Jyk9PjUsCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ2RhdGVfanVuZScpPT42LAogICAgICAgICAgICAkbW9kLT5MYW5nKCdkYXRlX2p1bHknKT0+NywKICAgICAgICAgICAgJG1vZC0+TGFuZygnZGF0ZV9hdWd1c3QnKT0+OCwKICAgICAgICAgICAgJG1vZC0+TGFuZygnZGF0ZV9zZXB0ZW1iZXInKT0+OSwKICAgICAgICAgICAgJG1vZC0+TGFuZygnZGF0ZV9vY3RvYmVyJyk9PjEwLAogICAgICAgICAgICAkbW9kLT5MYW5nKCdkYXRlX25vdmVtYmVyJyk9PjExLAogICAgICAgICAgICAkbW9kLT5MYW5nKCdkYXRlX2RlY2VtYmVyJyk9PjEyKTsKCX0KCgogICAgZnVuY3Rpb24gU3RhdHVzSW5mbygpCgl7CgkJcmV0dXJuICcnOwoJfQoKCglmdW5jdGlvbiBHZXRGaWVsZElucHV0KCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICAgICR0b2RheSA9IGdldGRhdGUoKTsKICAgICAgICREYXlzID0gYXJyYXkoKTsKICAgICAgIGZvciAoJGk9MTskaTwzMjskaSsrKQogICAgICAgICB7CiAgICAgICAgIAkkRGF5c1skaV09JGk7CiAgICAgICAgIH0KICAgICAgICRZZWFyID0gYXJyYXkoKTsKICAgICAgIGZvciAoJGk9JHRvZGF5Wyd5ZWFyJ10tMTA7JGk8JHRvZGF5Wyd5ZWFyJ10rMTA7JGkrKykKICAgICAgICAgewogICAgICAgICAJJFllYXJbJGldPSRpOwogICAgICAgICB9CgkJaWYgKCR0aGlzLT5IYXNWYWx1ZSgpKQoJCQl7CgkJCSR0b2RheVsnbWRheSddID0gJHRoaXMtPkdldEFycmF5VmFsdWUoMCk7CgkJCSR0b2RheVsnbW9uJ10gPSAkdGhpcy0+R2V0QXJyYXlWYWx1ZSgxKTsKCQkJJHRvZGF5Wyd5ZWFyJ10gPSAkdGhpcy0+R2V0QXJyYXlWYWx1ZSgyKTsJCQkKCQkJfQoKCiAgICAgICByZXR1cm4gJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICdfJy4kdGhpcy0+SWQuJ1tdJywgJERheXMsIC0xLCAkdG9kYXlbJ21kYXknXSkgLgogICAgICAgCQkJJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICdfJy4kdGhpcy0+SWQuJ1tdJywgJHRoaXMtPk1vbnRocywgLTEsICR0b2RheVsnbW9uJ10pLgogICAgICAgCQkJJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICdfJy4kdGhpcy0+SWQuJ1tdJywgJFllYXIsIC0xLCAkdG9kYXlbJ3llYXInXSk7Cgl9CgoJZnVuY3Rpb24gR2V0SHVtYW5SZWFkYWJsZVZhbHVlKCkKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQlpZiAoJHRoaXMtPkhhc1ZhbHVlKCkpCgkJCXsKCQkJJHRoZURhdGUgPSBta3RpbWUgKCAxLCAxLCAxLCAkdGhpcy0+R2V0QXJyYXlWYWx1ZSgxKSwgICR0aGlzLT5HZXRBcnJheVZhbHVlKDApLCAkdGhpcy0+R2V0QXJyYXlWYWx1ZSgyKSApOwoJCQlyZXR1cm4gZGF0ZSgkdGhpcy0+R2V0T3B0aW9uKCdkYXRlZm9ybWF0JywnaiBGIFknKSwgJHRoZURhdGUpOwoJCQl9CgkJZWxzZQoJCQl7CgkJCXJldHVybiAkbW9kLT5MYW5nKCd1bnNwZWNpZmllZCcpOwoJCQl9CQoJfQoKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkbWFpbiA9IGFycmF5KAoJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9kYXRlX2Zvcm1hdCcpLAogICAgICAgICAgICAJCWFycmF5KCRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdvcHRfZGF0ZV9mb3JtYXQnLAogICAgICAgICAgICAJCSR0aGlzLT5HZXRPcHRpb24oJ2RhdGVfZm9ybWF0JywnaiBGIFknKSwyNSwyNSksJG1vZC0+TGFuZygnaGVscF9kYXRlX2Zvcm1hdCcpKQoJCSkpOwoJCXJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLGFycmF5KCkpOwoJfQoKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionDatabase.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkRpc3Bvc2l0aW9uRGF0YWJhc2UgZXh0ZW5kcyBmYkZpZWxkQmFzZSB7CgoJdmFyICRhcHByb3ZlZEJ5OwoKCWZ1bmN0aW9uIGZiRGlzcG9zaXRpb25EYXRhYmFzZSgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgJHRoaXMtPmZiRmllbGRCYXNlKCRmb3JtX3B0ciwgJHBhcmFtcyk7CiAgICAgICRtb2QgPSAmJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gJ0Rpc3Bvc2l0aW9uRGF0YWJhc2UnOwoJCSR0aGlzLT5Jc0Rpc3Bvc2l0aW9uID0gdHJ1ZTsKCQkkdGhpcy0+Tm9uUmVxdWlyYWJsZUZpZWxkID0gdHJ1ZTsKCQkkdGhpcy0+RGlzcGxheUluRm9ybSA9IHRydWU7CgkJJHRoaXMtPkRpc3BsYXlJblN1Ym1pc3Npb24gPSBmYWxzZTsKCQkkdGhpcy0+SGlkZUxhYmVsID0gMTsKCQkkdGhpcy0+YXBwcm92ZWRCeSA9ICcnOwoJfQoKCWZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCWlmICgkdGhpcy0+VmFsdWUgPT09IGZhbHNlKQoJCQl7CgkJCXJldHVybiAnJzsKCQkJfQoJCXJldHVybiAkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdfJy4kdGhpcy0+SWQsCQoJCQkkdGhpcy0+RW5jb2RlUmVxSWQoJHRoaXMtPlZhbHVlKSk7Cgl9CgoJZnVuY3Rpb24gU2V0QXBwcm92YWxOYW1lKCRuYW1lKQoJewoJCSR0aGlzLT5hcHByb3ZlZEJ5ID0gJG5hbWU7Cgl9CgoJZnVuY3Rpb24gU3RhdHVzSW5mbygpCgl7CgkJIHJldHVybiAnJzsKCX0KCQoJZnVuY3Rpb24gRGVjb2RlUmVxSWQoJHRoZVZhbCkKCXsKCQkkdG1wID0gYmFzZTY0X2RlY29kZSgkdGhlVmFsKTsKCQkkdG1wMiA9IHN0cl9yZXBsYWNlKHNlc3Npb25faWQoKSwnJywkdG1wKTsKCQlpZiAoc3Vic3RyKCR0bXAyLDAsMSkgPT0gJ18nKQoJCQl7CgkJCXJldHVybiBzdWJzdHIoJHRtcDIsMSk7CgkJCX0KCQllbHNlCgkJCXsKCQkJcmV0dXJuIC0xOwoJCQl9Cgl9CgkKCWZ1bmN0aW9uIEVuY29kZVJlcUlkKCRyZXFfaWQpCgl7CgkJcmV0dXJuIGJhc2U2NF9lbmNvZGUoc2Vzc2lvbl9pZCgpLidfJy4kcmVxX2lkKTsKCX0KCQoJCglmdW5jdGlvbiBTZXRWYWx1ZSgkdmFsKQoJewoKCQkkZGVjdmFsID0gYmFzZTY0X2RlY29kZSgkdmFsKTsKICAgCgkJaWYgKCR2YWwgPT09IGZhbHNlKQoJCQl7CgkJCS8vIG5vIHZhbHVlIHNldCwgc28gd2UnbGwgbGVhdmUgdmFsdWUgYXMgZmFsc2UKCQkJfQoJCWVsc2VpZiAoc3RycG9zKCRkZWN2YWwsJ18nKSA9PT0gZmFsc2UpCgkJCXsKCQkJLy8gdW5lbmNyeXB0ZWQgdmFsdWUsIGNvbWluZyBpbiBmcm9tIHByZXZpb3VzIHJlc3BvbnNlCgkJCSR0aGlzLT5WYWx1ZSA9ICR2YWw7CgkJCX0KCQllbHNlCgkJCXsKCQkJLy8gZW5jcnlwdGVkIHZhbHVlIGNvbWluZyBpbiBmcm9tIGEgZm9ybSwgc28gd2UnbGwgdXBkYXRlLgoJCQkkdGhpcy0+VmFsdWUgPSAkdGhpcy0+RGVjb2RlUmVxSWQoJHZhbCk7CgkJCX0KCX0KCQoJZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQoJewoJCXJldHVybiBhcnJheSgpOwoJfQoKCWZ1bmN0aW9uIFBvc3RQb3B1bGF0ZUFkbWluRm9ybSgmJG1haW5BcnJheSwgJiRhZHZBcnJheSkKCXsKCQkkdGhpcy0+SGlkZGVuRGlzcG9zaXRpb25GaWVsZHMoJG1haW5BcnJheSwgJGFkdkFycmF5KTsKCX0KCiAgICAvLyBXcml0ZSBUbyB0aGUgRGF0YWJhc2UKCWZ1bmN0aW9uIERpc3Bvc2VGb3JtKCRyZXR1cm5pZCkKCXsKCQkkZm9ybSA9ICYkdGhpcy0+Zm9ybV9wdHI7CgkJJGZvcm0tPlN0b3JlUmVzcG9uc2UoKCR0aGlzLT5WYWx1ZT8kdGhpcy0+VmFsdWU6LTEpLCR0aGlzLT5hcHByb3ZlZEJ5KTsKCQlyZXR1cm4gYXJyYXkodHJ1ZSwnJyk7CSAgIAoJfQoKCWZ1bmN0aW9uIFZhbGlkYXRlKCkKCXsKCQlyZXR1cm4gYXJyYXkodHJ1ZSwgJycpOwoJfQoKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionDeliverToEmailAddressField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCnJlcXVpcmVfb25jZShkaXJuYW1lKF9fRklMRV9fKS4nL0Rpc3Bvc2l0aW9uRW1haWxCYXNlLmNsYXNzLnBocCcpOwoKY2xhc3MgZmJEaXNwb3NpdGlvbkRlbGl2ZXJUb0VtYWlsQWRkcmVzc0ZpZWxkIGV4dGVuZHMgZmJEaXNwb3NpdGlvbkVtYWlsQmFzZSB7CgoJZnVuY3Rpb24gZmJEaXNwb3NpdGlvbkRlbGl2ZXJUb0FkZHJlc3NGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgJHRoaXMtPmZiRGlzcG9zaXRpb25FbWFpbEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgJG1vZCA9ICYkZm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHRoaXMtPlR5cGUgPSAnRGlzcG9zaXRpb25EZWxpdmVyVG9FbWFpbEFkZHJlc3NGaWVsZCc7CiAgICAgICR0aGlzLT5Jc0Rpc3Bvc2l0aW9uID0gdHJ1ZTsKCQkkdGhpcy0+RGlzcGxheUluRm9ybSA9IHRydWU7CgkJJHRoaXMtPlZhbGlkYXRpb25UeXBlcyA9IGFycmF5KAogICAgICAgICAgICAkbW9kLT5MYW5nKCd2YWxpZGF0aW9uX2VtYWlsX2FkZHJlc3MnKT0+J2VtYWlsJywKICAgICAgICAgICAgKTsKICAgICAgJHRoaXMtPlZhbGlkYXRpb25UeXBlID0gJ2VtYWlsJzsKCSAgICR0aGlzLT5tb2RpZmllc090aGVyRmllbGRzID0gZmFsc2U7Cgl9CgoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJcmV0dXJuICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdfJy4kdGhpcy0+SWQsCgkJCWh0bWxzcGVjaWFsY2hhcnMoJHRoaXMtPlZhbHVlLCBFTlRfUVVPVEVTKSwKICAgICAgICAgICAyNSwxMjgpOwoJfQoKCWZ1bmN0aW9uIERpc3Bvc2VGb3JtKCkKCXsKCQlyZXR1cm4gJHRoaXMtPlNlbmRGb3JtKCR0aGlzLT5WYWx1ZSwkdGhpcy0+R2V0T3B0aW9uKCdlbWFpbF9zdWJqZWN0JykpOwoJfQoKCglmdW5jdGlvbiBTdGF0dXNJbmZvKCkKCXsKCQlyZXR1cm4gJyc7Cgl9CgoJZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQoJewoJCWxpc3QoJG1haW4sJGFkdikgPSAkdGhpcy0+UHJlUG9wdWxhdGVBZG1pbkZvcm1CYXNlKCRmb3JtRGVzY3JpcHRvcik7CgkJcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwoJfQoKCglmdW5jdGlvbiBQb3N0UG9wdWxhdGVBZG1pbkZvcm0oJiRtYWluQXJyYXksICYkYWR2QXJyYXkpCgl7CgkJJHRoaXMtPkhpZGRlbkRpc3Bvc2l0aW9uRmllbGRzKCRtYWluQXJyYXksICRhZHZBcnJheSk7Cgl9CgoJZnVuY3Rpb24gVmFsaWRhdGUoKQoJewoJCSRyZXN1bHQgPSB0cnVlOwoJCSRtZXNzYWdlID0gJyc7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJc3dpdGNoICgkdGhpcy0+VmFsaWRhdGlvblR5cGUpCgkJICB7CgkJICAJICAgY2FzZSAnZW1haWwnOgogICAgICAgICAgICAgICAgICBpZiAoJHRoaXMtPlZhbHVlICE9PSBmYWxzZSAmJgogICAgICAgICAgICAgICAgICAgICAgISBwcmVnX21hdGNoKCgkbW9kLT5HZXRQcmVmZXJlbmNlKCdyZWxheGVkX2VtYWlsX3JlZ2V4JywnMCcpPT0wPyRtb2QtPmVtYWlsX3JlZ2V4OiRtb2QtPmVtYWlsX3JlZ2V4X3JlbGF4ZWQpLCAkdGhpcy0+VmFsdWUpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAkcmVzdWx0ID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgJG1lc3NhZ2UgPSAkbW9kLT5MYW5nKCdwbGVhc2VfZW50ZXJfYW5fZW1haWwnLCR0aGlzLT5OYW1lKTsKICAgICAgICAgICAgICAgICAgICB9CgkJICAJICAgICAgIGJyZWFrOwoJCSAgfQoJCXJldHVybiBhcnJheSgkcmVzdWx0LCAkbWVzc2FnZSk7Cgl9Cn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionDirector.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpyZXF1aXJlX29uY2UoJ0Rpc3Bvc2l0aW9uRW1haWxCYXNlLmNsYXNzLnBocCcpOwoKY2xhc3MgZmJEaXNwb3NpdGlvbkRpcmVjdG9yIGV4dGVuZHMgZmJEaXNwb3NpdGlvbkVtYWlsQmFzZSB7CgoJdmFyICRhZGRyZXNzQ291bnQ7Cgl2YXIgJGFkZHJlc3NBZGQ7CgoJZnVuY3Rpb24gZmJEaXNwb3NpdGlvbkRpcmVjdG9yKCYkZm9ybV9wdHIsICYkcGFyYW1zKQoJewogICAgICAgJHRoaXMtPmZiRGlzcG9zaXRpb25FbWFpbEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJiRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkdGhpcy0+VHlwZSA9ICdEaXNwb3NpdGlvbkRpcmVjdG9yJzsKCQkkdGhpcy0+RGlzcGxheUluRm9ybSA9IHRydWU7CgkJJHRoaXMtPk5vblJlcXVpcmFibGVGaWVsZCA9IGZhbHNlOwoJCSR0aGlzLT5Jc0Rpc3Bvc2l0aW9uID0gdHJ1ZTsKCQkkdGhpcy0+SGFzQWRkT3AgPSB0cnVlOwoJCSR0aGlzLT5IYXNEZWxldGVPcCA9IHRydWU7CgkJJHRoaXMtPlZhbGlkYXRpb25UeXBlcyA9IGFycmF5KAogICAgICAgCQkpOwogICAgICAgCSR0aGlzLT5hZGRyZXNzQWRkID0gMDsKCX0KCglmdW5jdGlvbiBHZXRPcHRpb25BZGRCdXR0b24oKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCXJldHVybiAkbW9kLT5MYW5nKCdhZGRfZGVzdGluYXRpb24nKTsKCX0KCglmdW5jdGlvbiBHZXRPcHRpb25EZWxldGVCdXR0b24oKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCXJldHVybiAkbW9kLT5MYW5nKCdkZWxldGVfZGVzdGluYXRpb24nKTsKCX0KCglmdW5jdGlvbiBEb09wdGlvbkFkZCgmJHBhcmFtcykKCXsKCQkkdGhpcy0+YWRkcmVzc0FkZCA9IDE7Cgl9CgoJZnVuY3Rpb24gRG9PcHRpb25EZWxldGUoJiRwYXJhbXMpCgl7CgkJJGRlbGNvdW50ID0gMDsKCQlmb3JlYWNoICgkcGFyYW1zIGFzICR0aGlzS2V5PT4kdGhpc1ZhbCkKCQkJewoJCQlpZiAoc3Vic3RyKCR0aGlzS2V5LDAsNCkgPT0gJ2RlbF8nKQoJCQkJewoJCQkJJHRoaXMtPlJlbW92ZU9wdGlvbkVsZW1lbnQoJ2Rlc3RpbmF0aW9uX2FkZHJlc3MnLCAkdGhpc1ZhbCAtICRkZWxjb3VudCk7CgkJCQkkdGhpcy0+UmVtb3ZlT3B0aW9uRWxlbWVudCgnZGVzdGluYXRpb25fc3ViamVjdCcsICR0aGlzVmFsIC0gJGRlbGNvdW50KTsKCQkJCSRkZWxjb3VudCsrOwoJCQkJfQoJCQl9Cgl9CgoJZnVuY3Rpb24gY291bnRBZGRyZXNzZXMoKQoJewoJCQkkdG1wID0gJiR0aGlzLT5HZXRPcHRpb25SZWYoJ2Rlc3RpbmF0aW9uX2FkZHJlc3MnKTsKCQkJaWYgKGlzX2FycmF5KCR0bXApKQoJCQkJewoJICAgICAgICAJJHRoaXMtPmFkZHJlc3NDb3VudCA9IGNvdW50KCR0bXApOwoJICAgICAgICAJfQoJICAgICAgICBlbHNlaWYgKCR0bXAgIT09IGZhbHNlKQoJICAgICAgICAJewoJICAgICAgICAJJHRoaXMtPmFkZHJlc3NDb3VudCA9IDE7CgkgICAgICAgIAl9CgkgICAgICAgIGVsc2UKCSAgICAgICAgCXsKCSAgICAgICAgCSR0aGlzLT5hZGRyZXNzQ291bnQgPSAwOwoJICAgICAgICAJfQoJfQoKCWZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoKCQkvLyB3aHkgYWxsIHRoaXM/IEFzc29jaWF0aXZlIGFycmF5cyBhcmUgbm90IGd1YXJhbnRlZWQgdG8gcHJlc2VydmUKCQkvLyBvcmRlciwgZXhjZXB0IGluICJjaHJvbm9sb2dpY2FsIiBjcmVhdGlvbiBvcmRlci4KCQkkc29ydGVkID1hcnJheSgpOwoJCWlmICgkdGhpcy0+R2V0T3B0aW9uKCdzZWxlY3Rfb25lJywnJykgIT0gJycpCgkJCXsKCQkJJHNvcnRlZFsnICcuJHRoaXMtPkdldE9wdGlvbignc2VsZWN0X29uZScsJycpXT0nJzsKCQkJfQoJCWVsc2UKCQkJewoJCQkkc29ydGVkWycgJy4kbW9kLT5MYW5nKCdzZWxlY3Rfb25lJyldPScnOwoJCQl9CgkJJHN1YmplY3RzID0gJiR0aGlzLT5HZXRPcHRpb25SZWYoJ2Rlc3RpbmF0aW9uX3N1YmplY3QnKTsKCgkJaWYgKGNvdW50KCRzdWJqZWN0cykgPiAxKQoJCQl7CgkJCWZvcigkaT0wOyRpPGNvdW50KCRzdWJqZWN0cyk7JGkrKykKCQkJCXsKCQkJCSRzb3J0ZWRbJHN1YmplY3RzWyRpXV09KCRpKzEpOwoJCQkJfQoJCQl9CgkJZWxzZQoJCQl7CgkJCSRzb3J0ZWRbJHN1YmplY3RzXSA9ICcxJzsKCQkJfQoJCXJldHVybiAkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ18nLiR0aGlzLT5JZCwgJHNvcnRlZCwgLTEsICR0aGlzLT5WYWx1ZSk7Cgl9CgoKCiAgICBmdW5jdGlvbiBTdGF0dXNJbmZvKCkKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkb3B0ID0gJHRoaXMtPkdldE9wdGlvbignZGVzdGluYXRpb25fYWRkcmVzcycsJycpOwoJCQoJCWlmIChpc19hcnJheSgkb3B0KSkKCQkgIHsKCQkgICAgICAkbnVtID0gY291bnQoJG9wdCk7CgkJICB9CgkJZWxzZWlmICgkb3B0ICE9ICcnKQoJCQl7CgkJCSRudW0gPSAxOwoJCQl9CgkJZWxzZQoJCSAgewogICAgICAgICAgJG51bSA9IDA7CiAgICAgICAgICB9CiAgICAgICAgICRyZXQ9ICRtb2QtPkxhbmcoJ2Rlc3RpbmF0aW9uX2NvdW50JywkbnVtKTsKICAgICAgICAkcmV0Lj0gJHRoaXMtPlRlbXBsYXRlU3RhdHVzKCk7CiAgICAgICAgcmV0dXJuICRyZXQ7Cgl9CgkKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCgkJJHRoaXMtPmNvdW50QWRkcmVzc2VzKCk7CgkJaWYgKCR0aGlzLT5hZGRyZXNzQWRkID4gMCkKCQkJewoJCQkkdGhpcy0+YWRkcmVzc0NvdW50ICs9ICR0aGlzLT5hZGRyZXNzQWRkOwoJCQkkdGhpcy0+YWRkcmVzc0FkZCA9IDA7CgkJCX0KCQkkZGVzdHMgPSAnPHRhYmxlIGNsYXNzPSJtb2R1bGVfZmJfdGFibGUiPjx0cj48dGg+Jy4kbW9kLT5MYW5nKCd0aXRsZV9zZWxlY3Rpb25fc3ViamVjdCcpLic8L3RoPjx0aD4nLgoJCQkkbW9kLT5MYW5nKCd0aXRsZV9kZXN0aW5hdGlvbl9hZGRyZXNzJykuJzwvdGg+PHRoPicuCgkJCSRtb2QtPkxhbmcoJ3RpdGxlX2RlbGV0ZScpLic8L3RoPjwvdHI+JzsKCgoJCWZvciAoJGk9MDskaTwoJHRoaXMtPmFkZHJlc3NDb3VudD4xPyR0aGlzLT5hZGRyZXNzQ291bnQ6MSk7JGkrKykKCQkJewoJCQkkZGVzdHMgLj0gICc8dHI+PHRkPicuCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ29wdF9kZXN0aW5hdGlvbl9zdWJqZWN0W10nLCR0aGlzLT5HZXRPcHRpb25FbGVtZW50KCdkZXN0aW5hdGlvbl9zdWJqZWN0JywkaSksMjUsMTI4KS4KICAgICAgICAgICAgCQknPC90ZD48dGQ+Jy4KICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnb3B0X2Rlc3RpbmF0aW9uX2FkZHJlc3NbXScsJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ2Rlc3RpbmF0aW9uX2FkZHJlc3MnLCRpKSwyNSwxMjgpLgogICAgICAgICAgICAJCSc8L3RkPjx0ZD4nLgogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnZGVsXycuJGksICRpLC0xKS4KICAgICAgICAgICAgIAkJJzwvdGQ+PC90cj4nOwoJCQl9CgkJJGRlc3RzIC49ICc8L3RhYmxlPic7CgkJbGlzdCgkbWFpbiwkYWR2KSA9ICR0aGlzLT5QcmVQb3B1bGF0ZUFkbWluRm9ybUJhc2UoJGZvcm1EZXNjcmlwdG9yKTsKCQlhcnJheV9wdXNoKCRtYWluLGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3NlbGVjdF9vbmVfbWVzc2FnZScpLAoJCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnb3B0X3NlbGVjdF9vbmUnLAoJCQkkdGhpcy0+R2V0T3B0aW9uKCdzZWxlY3Rfb25lJywkbW9kLT5MYW5nKCdzZWxlY3Rfb25lJykpLDI1LDEyOCkpKTsKCQlhcnJheV9wdXNoKCRtYWluLGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2RpcmVjdG9yX2RldGFpbHMnKSwkZGVzdHMpKTsKCQlyZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7Cgl9CgoJZnVuY3Rpb24gUG9zdFBvcHVsYXRlQWRtaW5Gb3JtKCYkbWFpbkFycmF5LCAmJGFkdkFycmF5KQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCS8vIHJlbW92ZSB0aGUgInJlcXVpcmVkIiBmaWVsZAoJCSRyZXFJbmRleCA9IC0xOwoJCWZvciAoJGk9MDskaTxjb3VudCgkbWFpbkFycmF5KTskaSsrKQoJCQl7CgkJCWlmICgkbWFpbkFycmF5WyRpXS0+dGl0bGUgPT0gJG1vZC0+TGFuZygndGl0bGVfZmllbGRfcmVxdWlyZWQnKSkKCQkJCXsKCQkJCSRyZXFJbmRleCA9ICRpOwoJCQkJfQoJCQl9CgkJaWYgKCRyZXFJbmRleCAhPSAtMSkKCQkJewoJCQlhcnJheV9zcGxpY2UoJG1haW5BcnJheSwgJHJlcUluZGV4LDEpOwoJCQl9CgkJLy8gcmVtb3ZlIHRoZSAiZW1haWwgc3ViamVjdCIgZmllbGQKCQkkaGlkZUluZGV4ID0gLTE7CgkJZm9yICgkaT0wOyRpPGNvdW50KCRtYWluQXJyYXkpOyRpKyspCgkJCXsKCQkJaWYgKCRtYWluQXJyYXlbJGldLT50aXRsZSA9PSAkbW9kLT5MYW5nKCd0aXRsZV9lbWFpbF9zdWJqZWN0JykpCgkJCQl7CgkJCQkkaGlkZUluZGV4ID0gJGk7CgkJCQl9CgkJCX0KCQlpZiAoJGhpZGVJbmRleCAhPSAtMSkKCQkJewoJCQlhcnJheV9zcGxpY2UoJG1haW5BcnJheSwgJGhpZGVJbmRleCwxKTsKCQkJfQoJCS8vIHJlbW92ZSB0aGUgImhpZGUgY3NzIiBmaWVsZAoJCSRoaWRlSW5kZXggPSAtMTsKCQlmb3IgKCRpPTA7JGk8Y291bnQoJGFkdkFycmF5KTskaSsrKQoJCQl7CgkJCWlmICgkYWR2QXJyYXlbJGldLT50aXRsZSA9PSAkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9jc3NfY2xhc3MnKSkKCQkJCXsKCQkJCSRoaWRlSW5kZXggPSAkaTsKCQkJCX0KCQkJfQoJCWlmICgkaGlkZUluZGV4ICE9IC0xKQoJCQl7CgkJCWFycmF5X3NwbGljZSgkYWR2QXJyYXksICRoaWRlSW5kZXgsMSk7CgkJCX0KCQlpZiAoY291bnQoJGFkdkFycmF5KSA9PSAwKQoJCQl7CgkJCSRhZHZBcnJheVswXS0+dGl0bGUgPSAkbW9kLT5MYW5nKCd0YWJfYWR2YW5jZWQnKTsKCQkJJGFkdkFycmF5WzBdLT5pbnB1dCA9ICRtb2QtPkxhbmcoJ3RpdGxlX25vX2FkdmFuY2VkX29wdGlvbnMnKTsKCQkJfQoJfQoKCWZ1bmN0aW9uIEdldEh1bWFuUmVhZGFibGVWYWx1ZSgpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJaWYgKCR0aGlzLT5IYXNWYWx1ZSgpKQoJCQl7CgkJCXJldHVybiAkdGhpcy0+R2V0T3B0aW9uRWxlbWVudCgnZGVzdGluYXRpb25fYWRkcmVzcycsKCR0aGlzLT5WYWx1ZSAtIDEpKTsKCQkJfQoJCWVsc2UKCQkJewoJCQlyZXR1cm4gJG1vZC0+TGFuZygndW5zcGVjaWZpZWQnKTsKCQkJfQkKCX0KCQoJZnVuY3Rpb24gRGlzcG9zZUZvcm0oJHJldHVybmlkKQoJewoJCXJldHVybiAkdGhpcy0+U2VuZEZvcm0oJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ2Rlc3RpbmF0aW9uX2FkZHJlc3MnLCgkdGhpcy0+VmFsdWUgLSAxKSksCgkJCSR0aGlzLT5HZXRPcHRpb25FbGVtZW50KCdkZXN0aW5hdGlvbl9zdWJqZWN0JywoJHRoaXMtPlZhbHVlIC0gMSkpKTsKCX0KCgoJZnVuY3Rpb24gQWRtaW5WYWxpZGF0ZSgpCiAgICB7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAJJG9wdCA9ICR0aGlzLT5HZXRPcHRpb24oJ2Rlc3RpbmF0aW9uX2FkZHJlc3MnKTsKCQlsaXN0KCRyZXQsICRtZXNzYWdlKSA9ICR0aGlzLT5Eb2VzRmllbGROYW1lRXhpc3QoKTsKCQlpZiAoY291bnQoJG9wdCkgPT0gMCkKCQkJewoJCQkkcmV0ID0gZmFsc2U7CgkJCSRtZXNzYWdlIC49ICRtb2QtPkxhbmcoJ211c3Rfc3BlY2lmeV9vbmVfZGVzdGluYXRpb24nKS4nPC9icj4nOwoJCQl9CgkJaWYgKCEgcHJlZ19tYXRjaCgoJG1vZC0+R2V0UHJlZmVyZW5jZSgncmVsYXhlZF9lbWFpbF9yZWdleCcsJzAnKT09MD8kbW9kLT5lbWFpbF9yZWdleDokbW9kLT5lbWFpbF9yZWdleF9yZWxheGVkKSwkdGhpcy0+R2V0T3B0aW9uKCdlbWFpbF9mcm9tX2FkZHJlc3MnKSkpCgkJCXsKICAgIAkgICAgICAgCSRyZXQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICRtZXNzYWdlIC49ICRtb2QtPkxhbmcoJ25vdF92YWxpZF9lbWFpbCcsJHRoaXMtPkdldE9wdGlvbignZW1haWxfZnJvbV9hZGRyZXNzJykpIC4gJzxici8+JzsKCQkJfQogICAgICAgIGZvcigkaT0wOyRpPGNvdW50KCRvcHQpOyRpKyspCiAgICAJICAgewoJCQlpZiAoISBwcmVnX21hdGNoKCRtb2QtPmVtYWlsX3JlZ2V4LCAkb3B0WyRpXSkpCiAgICAJICAgICAgIHsKICAgIAkgICAgICAgCSRyZXQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICRtZXNzYWdlIC49ICRtb2QtPkxhbmcoJ25vdF92YWxpZF9lbWFpbCcsJG9wdFskaV0pLic8YnIvPic7CiAgICAJICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIGFycmF5KCRyZXQsJG1lc3NhZ2UpOwogICAgfQoKfQo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionEmail.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpyZXF1aXJlX29uY2UoZGlybmFtZShfX0ZJTEVfXykuJy9EaXNwb3NpdGlvbkVtYWlsQmFzZS5jbGFzcy5waHAnKTsKCmNsYXNzIGZiRGlzcG9zaXRpb25FbWFpbCBleHRlbmRzIGZiRGlzcG9zaXRpb25FbWFpbEJhc2UgewoKCXZhciAkYWRkcmVzc0NvdW50OwoJdmFyICRhZGRyZXNzQWRkOwoKCWZ1bmN0aW9uIGZiRGlzcG9zaXRpb25FbWFpbCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgICAkdGhpcy0+ZmJEaXNwb3NpdGlvbkVtYWlsQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgICAgICRtb2QgPSAmJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gJ0Rpc3Bvc2l0aW9uRW1haWwnOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gZmFsc2U7CgkJJHRoaXMtPk5vblJlcXVpcmFibGVGaWVsZCA9IHRydWU7CgkJJHRoaXMtPklzRGlzcG9zaXRpb24gPSB0cnVlOwoJCSR0aGlzLT5IYXNBZGRPcCA9IHRydWU7CgkJJHRoaXMtPkhhc0RlbGV0ZU9wID0gdHJ1ZTsKCQkkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoCiAgICAgICAJCSk7CiAgICB9CgoJZnVuY3Rpb24gR2V0T3B0aW9uQWRkQnV0dG9uKCkKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQlyZXR1cm4gJG1vZC0+TGFuZygnYWRkX2FkZHJlc3MnKTsKCX0KCglmdW5jdGlvbiBHZXRPcHRpb25EZWxldGVCdXR0b24oKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCXJldHVybiAkbW9kLT5MYW5nKCdkZWxldGVfYWRkcmVzcycpOwoJfQoKCWZ1bmN0aW9uIERvT3B0aW9uQWRkKCYkcGFyYW1zKQoJewoJCSR0aGlzLT5hZGRyZXNzQWRkID0gMTsKCX0KCglmdW5jdGlvbiBEb09wdGlvbkRlbGV0ZSgmJHBhcmFtcykKCXsKCQkkZGVsY291bnQgPSAwOwoJCWZvcmVhY2ggKCRwYXJhbXMgYXMgJHRoaXNLZXk9PiR0aGlzVmFsKQoJCQl7CgkJCWlmIChzdWJzdHIoJHRoaXNLZXksMCw0KSA9PSAnZGVsXycpCgkJCQl7CgkJCQkkdGhpcy0+UmVtb3ZlT3B0aW9uRWxlbWVudCgnZGVzdGluYXRpb25fYWRkcmVzcycsICR0aGlzVmFsIC0gJGRlbGNvdW50KTsKCQkJCSRkZWxjb3VudCsrOwoJCQkJfQoJCQl9Cgl9CgoKCiAgICBmdW5jdGlvbiBTdGF0dXNJbmZvKCkKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkb3B0ID0gJHRoaXMtPkdldE9wdGlvbignZGVzdGluYXRpb25fYWRkcmVzcycsJycpOwoJCSRyZXQ9ICRtb2QtPkxhbmcoJ3RvJykuIjogIjsKCQlpZiAoaXNfYXJyYXkoJG9wdCkpCgkJICB7CgkJICBpZiAoY291bnQoJG9wdCk+MSkKCQkgICAgICB7CgkJICAgICAgJHJldC49IGNvdW50KCRvcHQpOwoJCSAgICAgICRyZXQuPSAiICIuJG1vZC0+TGFuZygncmVjaXBpZW50cycpOwoJCSAgICAgIH0KCQkgIGVsc2UKCQkgICAgICB7CgkJICAgICAgJHJldC49ICRvcHRbMF07CgkJICAgICAgfQoJCSAgfQoJCWVsc2VpZiAoJG9wdCAhPSAnJykKCQkJewoJCQkkcmV0IC49ICRvcHQ7CgkJCX0KCQllbHNlCgkJICB7CiAgICAgICAgICAkcmV0Lj0gJG1vZC0+TGFuZygndW5zcGVjaWZpZWQnKTsKICAgICAgICAgIH0KICAgICAgICAkcmV0Lj0gJHRoaXMtPlRlbXBsYXRlU3RhdHVzKCk7CiAgICAgICAgcmV0dXJuICRyZXQ7Cgl9CgoJZnVuY3Rpb24gY291bnRBZGRyZXNzZXMoKQoJewoJCQkkdG1wID0gJiR0aGlzLT5HZXRPcHRpb25SZWYoJ2Rlc3RpbmF0aW9uX2FkZHJlc3MnKTsKCQkJaWYgKGlzX2FycmF5KCR0bXApKQoJCQkJewoJICAgICAgICAJJHRoaXMtPmFkZHJlc3NDb3VudCA9IGNvdW50KCR0bXApOwoJICAgICAgICAJfQoJICAgICAgICBlbHNlaWYgKCR0bXAgIT09IGZhbHNlKQoJICAgICAgICAJewoJICAgICAgICAJJHRoaXMtPmFkZHJlc3NDb3VudCA9IDE7CgkgICAgICAgIAl9CgkgICAgICAgIGVsc2UKCSAgICAgICAgCXsKCSAgICAgICAgCSR0aGlzLT5hZGRyZXNzQ291bnQgPSAwOwoJICAgICAgICAJfQoJfQoKCiAgICAvLyBTZW5kIG9mZiB0aG9zZSBlbWFpbHMKCWZ1bmN0aW9uIERpc3Bvc2VGb3JtKCkKCXsKCQkkdG1wID0gJiR0aGlzLT5HZXRPcHRpb25SZWYoJ2Rlc3RpbmF0aW9uX2FkZHJlc3MnKTsKCQlyZXR1cm4gJHRoaXMtPlNlbmRGb3JtKCR0bXAsJHRoaXMtPkdldE9wdGlvbignZW1haWxfc3ViamVjdCcpKTsKCX0KCglmdW5jdGlvbiBQcmVQb3B1bGF0ZUFkbWluRm9ybSgkZm9ybURlc2NyaXB0b3IpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgoJCSR0aGlzLT5jb3VudEFkZHJlc3NlcygpOwoJCWlmICgkdGhpcy0+YWRkcmVzc0FkZCA+IDApCgkJCXsKCQkJJHRoaXMtPmFkZHJlc3NDb3VudCArPSAkdGhpcy0+YWRkcmVzc0FkZDsKCQkJJHRoaXMtPmFkZHJlc3NBZGQgPSAwOwoJCQl9CgkJJGRlc3RzID0gJzx0YWJsZSAgY2xhc3M9Im1vZHVsZV9mYl90YWJsZSI+PHRyPjx0aD4nLiRtb2QtPkxhbmcoJ3RpdGxlX2Rlc3RpbmF0aW9uX2FkZHJlc3MnKS4nPC90aD48dGg+Jy4KCQkJJG1vZC0+TGFuZygndGl0bGVfZGVsZXRlJykuJzwvdGg+PC90cj4nOwoKCgkJZm9yICgkaT0wOyRpPCgkdGhpcy0+YWRkcmVzc0NvdW50PjE/JHRoaXMtPmFkZHJlc3NDb3VudDoxKTskaSsrKQoJCQl7CgkJCSRkZXN0cyAuPSAnPHRyPjx0ZD4nLgogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdvcHRfZGVzdGluYXRpb25fYWRkcmVzc1tdJywkdGhpcy0+R2V0T3B0aW9uRWxlbWVudCgnZGVzdGluYXRpb25fYWRkcmVzcycsJGkpLDI1LDEyOCkuCiAgICAgICAgICAgIAkJJzwvdGQ+PHRkPicuCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdkZWxfJy4kaSwgJGksLTEpLgogICAgICAgICAgICAgCQknPC90ZD48L3RyPic7CgkJCX0KCQkkZGVzdHMgLj0gJzwvdGFibGU+JzsKCQlsaXN0KCRtYWluLCRhZHYpID0gJHRoaXMtPlByZVBvcHVsYXRlQWRtaW5Gb3JtQmFzZSgkZm9ybURlc2NyaXB0b3IpOwoJCWFycmF5X3B1c2goJG1haW4sYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZGVzdGluYXRpb25fYWRkcmVzcycpLCRkZXN0cykpOwoJCXJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLCdhZHYnPT4kYWR2KTsKCX0KCglmdW5jdGlvbiBQb3N0UG9wdWxhdGVBZG1pbkZvcm0oJiRtYWluQXJyYXksICYkYWR2QXJyYXkpCgl7CgkJJHRoaXMtPkhpZGRlbkRpc3Bvc2l0aW9uRmllbGRzKCRtYWluQXJyYXksICRhZHZBcnJheSk7Cgl9CgoKCWZ1bmN0aW9uIEFkbWluVmFsaWRhdGUoKQogICAgewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgCSRvcHQgPSAmJHRoaXMtPkdldE9wdGlvblJlZignZGVzdGluYXRpb25fYWRkcmVzcycpOwoJCWxpc3QoJHJldCwgJG1lc3NhZ2UpID0gJHRoaXMtPkRvZXNGaWVsZE5hbWVFeGlzdCgpOwoJCWlmICgkb3B0ID09PSBmYWxzZSB8fCBjb3VudCgkb3B0KSA9PSAwKQoJCQl7CgkJCSRyZXQgPSBmYWxzZTsKCQkJJG1lc3NhZ2UgLj0gJG1vZC0+TGFuZygnbXVzdF9zcGVjaWZ5X29uZV9kZXN0aW5hdGlvbicpLic8L2JyPic7CgkJCX0KCQlpZiAoISBwcmVnX21hdGNoKCgkbW9kLT5HZXRQcmVmZXJlbmNlKCdyZWxheGVkX2VtYWlsX3JlZ2V4JywnMCcpPT0wPyRtb2QtPmVtYWlsX3JlZ2V4OiRtb2QtPmVtYWlsX3JlZ2V4X3JlbGF4ZWQpLCR0aGlzLT5HZXRPcHRpb24oJ2VtYWlsX2Zyb21fYWRkcmVzcycpKSkKCQkJewogICAgCSAgICAgICAJJHJldCA9IGZhbHNlOwogICAgICAgICAgICAgICAgJG1lc3NhZ2UgLj0gJG1vZC0+TGFuZygnbm90X3ZhbGlkX2VtYWlsJywkdGhpcy0+R2V0T3B0aW9uKCdlbWFpbF9mcm9tX2FkZHJlc3MnKSkgLiAnPGJyLz4nOwoJCQl9CiAgICAgICAgZm9yKCRpPTA7JGk8Y291bnQoJG9wdCk7JGkrKykKICAgIAkgICB7CiAgICAJICAgaWYgKCEgcHJlZ19tYXRjaCgoJG1vZC0+R2V0UHJlZmVyZW5jZSgncmVsYXhlZF9lbWFpbF9yZWdleCcsJzAnKT09MD8kbW9kLT5lbWFpbF9yZWdleDokbW9kLT5lbWFpbF9yZWdleF9yZWxheGVkKSwgJG9wdFskaV0pKQogICAgCSAgICAgICB7CiAgICAJICAgICAgIAkkcmV0ID0gZmFsc2U7CiAgICAgICAgICAgICAgICAkbWVzc2FnZSAuPSAkbW9kLT5MYW5nKCdub3RfdmFsaWRfZW1haWwnLCRvcHRbJGldKSAuICc8YnIvPic7CiAgICAJICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIGFycmF5KCRyZXQsJG1lc3NhZ2UpOyAgICAgICAKICAgIH0KCgoJZnVuY3Rpb24gVmFsaWRhdGUoKQoJewoJCXJldHVybiBhcnJheSh0cnVlLCAnJyk7Cgl9Cgp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionEmailBase.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkRpc3Bvc2l0aW9uRW1haWxCYXNlIGV4dGVuZHMgZmJGaWVsZEJhc2UgCnsKCiAgdmFyICRzYW1wbGVUZW1wbGF0ZUNvZGU7CiAgdmFyICR0ZW1wbGF0ZVZhcmlhYmxlczsKCQogIGZ1bmN0aW9uIGZiRGlzcG9zaXRpb25FbWFpbEJhc2UoJiRmb3JtX3B0ciwgJiRwYXJhbXMpCiAgewogICAgJHRoaXMtPmZiRmllbGRCYXNlKCRmb3JtX3B0ciwgJHBhcmFtcyk7CiAgICAkbW9kID0gJiRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICR0aGlzLT5Jc0Rpc3Bvc2l0aW9uID0gdHJ1ZTsKICAgICR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgpOwogICAgCiAgICAkdGhpcy0+c2FtcGxlVGVtcGxhdGVDb2RlID0gIjxzY3JpcHQgdHlwZT1cInRleHQvamF2YXNjcmlwdFwiPlxuCmZ1bmN0aW9uIHBvcHVsYXRlKGZvcm1uYW1lKQogICAgewogICAgdmFyIGZuYW1lID0gJ0lEb3B0X2VtYWlsX3RlbXBsYXRlJzsKICAgIGZvcm1uYW1lW2ZuYW1lXS52YWx1ZT18VEVNUExBVEV8OwogICAgfQpmdW5jdGlvbiBwb3B1bGF0ZV9odG1sKGZvcm1uYW1lKQogICAgewogICAgdmFyIGZuYW1lID0gJ0lEb3B0X2VtYWlsX3RlbXBsYXRlJzsKICAgIGZvcm1uYW1lW2ZuYW1lXS52YWx1ZT18SFRNTFRFTVBMQVRFfDsKCSB9Cjwvc2NyaXB0Pgo8aW5wdXQgdHlwZT1cImJ1dHRvblwiIHZhbHVlPVwiIi4kbW9kLT5MYW5nKCd0aXRsZV9jcmVhdGVfc2FtcGxlX3RlbXBsYXRlJykuIlwiIG9uQ2xpY2s9XCJqYXZhc2NyaXB0OnBvcHVsYXRlKHRoaXMuZm9ybSlcIiAvPgo8aW5wdXQgdHlwZT1cImJ1dHRvblwiIHZhbHVlPVwiIi4kbW9kLT5MYW5nKCd0aXRsZV9jcmVhdGVfc2FtcGxlX2h0bWxfdGVtcGxhdGUnKS4iXCIgb25DbGljaz1cImphdmFzY3JpcHQ6cG9wdWxhdGVfaHRtbCh0aGlzLmZvcm0pXCIgLz4iOwoKICAgICR0aGlzLT50ZW1wbGF0ZVZhcmlhYmxlcyA9IEFycmF5KAoJCQkJICAgICAneyRzdWJfZm9ybV9uYW1lfSc9PiRtb2QtPkxhbmcoJ3RpdGxlX2Zvcm1fbmFtZScpLAoJCQkJICAgICAneyRzdWJfZGF0ZX0nPT4kbW9kLT5MYW5nKCdoZWxwX3N1Ym1pc3Npb25fZGF0ZScpLAoJCQkJICAgICAneyRzdWJfaG9zdH0nPT4kbW9kLT5MYW5nKCdoZWxwX3NlcnZlcl9uYW1lJyksCgkJCQkgICAgICd7JHN1Yl9zb3VyY2VfaXB9Jz0+JG1vZC0+TGFuZygnaGVscF9zdWJfc291cmNlX2lwJyksCgkJCQkgICAgICd7JHN1Yl91cmx9Jz0+JG1vZC0+TGFuZygnaGVscF9zdWJfdXJsJykKCQkJCSAgICAgKTsKICB9CgogIC8vIG92ZXJyaWRlIG1lIQogIGZ1bmN0aW9uIFN0YXR1c0luZm8oKQogIHsKICB9CgogIGZ1bmN0aW9uIFRlbXBsYXRlU3RhdHVzKCkKICB7CiAgICAkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgIGlmICgkdGhpcy0+R2V0T3B0aW9uKCdlbWFpbF90ZW1wbGF0ZScsJycpID09ICcnKQogICAgICB7CglyZXR1cm4gJG1vZC0+TGFuZygnZW1haWxfdGVtcGxhdGVfbm90X3NldCcpOwogICAgICB9CiAgfQoKICAvLyBvdmVycmlkZSBtZSEKICBmdW5jdGlvbiBEaXNwb3NlRm9ybSgpCiAgewogICAgcmV0dXJuIGFycmF5KHRydWUsJycpOwogIH0KCiAgZnVuY3Rpb24gQWRkVGVtcGxhdGVWYXJpYWJsZSgkbmFtZSwkZGVmKQogIHsKICAgICR0aGVLZXkgPSAneyQnLiRuYW1lLid9JzsKICAgICR0aGlzLT50ZW1wbGF0ZVZhcmlhYmxlc1skdGhlS2V5XSA9ICRkZWY7CiAgfQoKICBmdW5jdGlvbiBNYWtlVmFyKCRzdHJpbmcpCiAgewogICAgJG1heHZhcmxlbiA9IDI0OwogICAgJHN0cmluZyA9IHN0cnRvbG93ZXIocHJlZ19yZXBsYWNlKCcvXHMrLycsJ18nLCRzdHJpbmcpKTsKICAgICRzdHJpbmcgPSBzdHJ0b2xvd2VyKHByZWdfcmVwbGFjZSgnL1xXLycsJ18nLCRzdHJpbmcpKTsKICAgIGlmIChzdHJsZW4oJHN0cmluZykgPiAkbWF4dmFybGVuKQogICAgICB7Cgkkc3RyaW5nID0gc3Vic3RyKCRzdHJpbmcsMCwkbWF4dmFybGVuKTsKCSRwb3MgPSBzdHJycG9zKCRzdHJpbmcsJ18nKTsKCWlmICgkcG9zICE9PSBmYWxzZSkKCSAgewoJICAgICRzdHJpbmcgPSBzdWJzdHIoJHN0cmluZywwLCRwb3MpOwoJICB9CiAgICAgIH0KICAgIHJldHVybiAkc3RyaW5nOwogIH0KCiAgZnVuY3Rpb24gY3JlYXRlU2FtcGxlVGVtcGxhdGUoJGh0bWxpc2g9ZmFsc2UpCiAgewogICAgJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICBpZiAoJGh0bWxpc2gpCiAgICAJewoJCSRyZXQgPSAiPGgxPiIuJG1vZC0+TGFuZygnZW1haWxfZGVmYXVsdF90ZW1wbGF0ZScpLiI8L2gxPlxuIjsKCQl9CgkgZWxzZQoJICAgewoJCSRyZXQgPSAkbW9kLT5MYW5nKCdlbWFpbF9kZWZhdWx0X3RlbXBsYXRlJykuIlxuIjsKCQl9CiAgICBmb3JlYWNoKCR0aGlzLT50ZW1wbGF0ZVZhcmlhYmxlcyBhcyAkdGhpc0tleT0+JHRoaXNWYWwpCiAgICAgIHsKCQlpZiAoJGh0bWxpc2gpCgkJCXsKCQkJJHJldCAuPSAnPHN0cm9uZz4nLiR0aGlzVmFsLic8L3N0cm9uZz46ICcuJHRoaXNLZXkuIjxiciAvPlxuIjsKCQkJfQoJCWVsc2UKCQkJewoJCQkkcmV0IC49ICR0aGlzVmFsLic6ICcuJHRoaXNLZXkuIlxuIjsKCQkJfQogICAgICB9CiAgICAgaWYgKCRodG1saXNoKQogICAgIAkgIHsKCQkgICRyZXQgLj0gIlxuPGhyIC8+XG4iOwoJICAJICB9CgkgIGVsc2UKCSAgCSAgewogICAgCSAgJHJldCAuPSAiXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iOwogICAgCSAgfQogICAgJG90aGVycyA9ICYkdGhpcy0+Zm9ybV9wdHItPkdldEZpZWxkcygpOwogICAgZm9yKCRpPTA7JGk8Y291bnQoJG90aGVycyk7JGkrKykKICAgICAgewoJaWYgKCRvdGhlcnNbJGldLT5EaXNwbGF5SW5TdWJtaXNzaW9uKCkpCgkgIHsKCSAgaWYgKCRodG1saXNoKQogICAgIAkgIHsKICAJCQkkcmV0IC49ICc8c3Ryb25nPicuJG90aGVyc1skaV0tPkdldE5hbWUoKSAuICc8L3N0cm9uZz46IHskJyAuICR0aGlzLT5NYWtlVmFyKCRvdGhlcnNbJGldLT5HZXROYW1lKCkpIC4gIn08YnIgLz5cbiI7CiAgCQkgIH0KICAJICBlbHNlCiAgCSAgCSAgewoJICAgICAkcmV0IC49ICRvdGhlcnNbJGldLT5HZXROYW1lKCkgLiAnOiB7JCcgLiAkdGhpcy0+TWFrZVZhcigkb3RoZXJzWyRpXS0+R2V0TmFtZSgpKSAuICJ9XG4iOwoJICAgICB9CgkgIH0KICAgICAgfQogICAgcmV0dXJuICRyZXQ7CiAgfQoKICAvLyBvdmVycmlkZSBtZSBhcyBuZWNlc3NhcnkKICBmdW5jdGlvbiBTZXRGcm9tQWRkcmVzcygpCiAgewogICAgcmV0dXJuIHRydWU7CiAgfQoKICAvLyBvdmVycmlkZSBtZSBhcyBuZWNlc3NhcnkKICBmdW5jdGlvbiBTZXRGcm9tTmFtZSgpCiAgewogICAgcmV0dXJuIHRydWU7CiAgfQoKICAvLyBTZW5kIG9mZiB0aG9zZSBlbWFpbHMKICBmdW5jdGlvbiBTZW5kRm9ybSgkZGVzdGluYXRpb25fYXJyYXksICRzdWJqZWN0KQogIHsKICAgIGdsb2JhbCAkZ0NtczsKICAgICRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoKCSBpZiAoJG1vZC0+R2V0UHJlZmVyZW5jZSgnZW5hYmxlX2FudGlzcGFtJywxKSkKCSAJewoJCSRkYiA9JiAkZ0Ntcy0+R2V0RGIoKTsKCQkkcXVlcnkgPSAnc2VsZWN0IGNvdW50KHNyY19pcCkgYXMgc2VudCBmcm9tICcuY21zX2RiX3ByZWZpeCgpLgoJCQknbW9kdWxlX2ZiX2lwX2xvZyB3aGVyZSBzcmNfaXA9PyBBTkQgc2VudF90aW1lID4gPyc7CgkgICAKCQkkZGJyZXN1bHQgPSAkZGItPkdldE9uZSgkcXVlcnksIGFycmF5KCRfU0VSVkVSWydSRU1PVEVfQUREUiddLAoJCQkJCQkgICB0cmltKCRkYi0+REJUaW1lU3RhbXAodGltZSgpIC0gMzYwMCksIiciKSkpOwoKCQlpZiAoJGRicmVzdWx0ICYmICRkYnJlc3VsdFsnc2VudCddID4gOSkKCQkJewoJCQkvLyB0b28gbWFueSBmcm9tIHRoaXMgSVAgYWRkcmVzcy4gS2lsbCBpdC4KCSAgICAJJG1zZyA9ICc8aHIgLz4nLiRtb2QtPkxhbmcoJ3N1c3BlY3RlZF9zcGFtJykuICc8aHIgLz4nOwoJCQlhdWRpdCgtMSwgJG1vZC0+R2V0TmFtZSgpLCRtb2QtPkxhbmcoJ2xvZ19zdXNwZWN0ZWRfc3BhbScsJF9TRVJWRVJbJ1JFTU9URV9BRERSJ10pKTsKCQkJcmV0dXJuIGFycmF5KGZhbHNlLCRtc2cpOwoJCQl9CgkJfQoKICAgICRtYWlsID0gJG1vZC0+R2V0TW9kdWxlSW5zdGFuY2UoJ0NNU01haWxlcicpOwogICAgaWYgKCRtYWlsID09IEZBTFNFKQogICAgICB7CgkkbXNnID0gJyc7CglpZiAoISAkbW9kLT5HZXRQcmVmZXJlbmNlKCdoaWRlX2Vycm9ycycsMCkpCgkgIHsKCSAgICAkbXNnID0gJzxociAvPicuJG1vZC0+TGFuZygnbWlzc2luZ19jbXNfbWFpbGVyJykuICc8aHIgLz4nOwoJICB9IAoJYXVkaXQoLTEsICRtb2QtPkdldE5hbWUoKSwkbW9kLT5MYW5nKCdtaXNzaW5nX2Ntc19tYWlsZXInKSk7CglyZXR1cm4gYXJyYXkoZmFsc2UsJG1zZyk7CiAgICAgIH0KICAgICRtYWlsLT5yZXNldCgpOwogICAgaWYgKCR0aGlzLT5TZXRGcm9tQWRkcmVzcygpKQogICAgICB7CgkkbWFpbC0+U2V0RnJvbSgkdGhpcy0+R2V0T3B0aW9uKCdlbWFpbF9mcm9tX2FkZHJlc3MnKSk7CiAgICAgIH0KICAgIGlmICgkdGhpcy0+U2V0RnJvbU5hbWUoKSkKICAgICAgewoJJG1haWwtPlNldEZyb21OYW1lKCR0aGlzLT5HZXRPcHRpb24oJ2VtYWlsX2Zyb21fbmFtZScpKTsKICAgICAgfQogICAgJG1haWwtPlNldENoYXJTZXQoJHRoaXMtPkdldE9wdGlvbignZW1haWxfZW5jb2RpbmcnLCd1dGYtOCcpKTsKCiAgICAkbWVzc2FnZSA9ICR0aGlzLT5HZXRPcHRpb24oJ2VtYWlsX3RlbXBsYXRlJywnJyk7CiAgICAkaHRtbGVtYWlsID0gKCR0aGlzLT5HZXRPcHRpb24oJ2h0bWxfZW1haWwnLCcwJykgPT0gJzEnKTsKICAgIGlmICgkaHRtbGVtYWlsKQoJIAl7CgkJJG1haWwtPklzSFRNTCh0cnVlKTsKCQl9CgoJIGlmICgkbWVzc2FnZSA9PSAnJykKICAgICAgewoJCSRtZXNzYWdlID0gJHRoaXMtPmNyZWF0ZVNhbXBsZVRlbXBsYXRlKGZhbHNlKTsKICAgIAlpZiAoJGh0bWxlbWFpbCkKCSAJCXsKCQkJJG1lc3NhZ2UyID0gJHRoaXMtPmNyZWF0ZVNhbXBsZVRlbXBsYXRlKHRydWUpOwoJCQl9CiAgICAgIH0KICAgIGVsc2VpZiAoJGh0bWxlbWFpbCkKICAgIAl7CgkJJG1lc3NhZ2UyID0gJG1lc3NhZ2U7CgkJfQoJICAKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdzdWJfZm9ybV9uYW1lJywkdGhpcy0+Zm9ybV9wdHItPkdldE5hbWUoKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignc3ViX2RhdGUnLGRhdGUoJ3InKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignc3ViX2hvc3QnLCRfU0VSVkVSWydTRVJWRVJfTkFNRSddKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdzdWJfc291cmNlX2lwJywkX1NFUlZFUlsnUkVNT1RFX0FERFInXSk7CiAgICBpZiAoZW1wdHkoJF9TRVJWRVJbJ0hUVFBfUkVGRVJFUiddKSkKICAgICAgewoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3N1Yl91cmwnLCRtb2QtPkxhbmcoJ25vX3JlZmVycmVyX2luZm8nKSk7CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3N1Yl91cmwnLCRfU0VSVkVSWydIVFRQX1JFRkVSRVInXSk7CiAgICAgIH0KICAgICRvdGhlcnMgPSAmJHRoaXMtPmZvcm1fcHRyLT5HZXRGaWVsZHMoKTsKICAgICR1bnNwZWMgPSAkdGhpcy0+Zm9ybV9wdHItPkdldEF0dHIoJ3Vuc3BlY2lmaWVkJywkbW9kLT5MYW5nKCd1bnNwZWNpZmllZCcpKTsKCQkKICAgIGZvcigkaT0wOyRpPGNvdW50KCRvdGhlcnMpOyRpKyspCiAgICAgIHsKCSRmaWVsZCA9JiAkb3RoZXJzWyRpXTsKCSRyZXBsVmFsID0gJyc7CglpZiAoJGZpZWxkLT5EaXNwbGF5SW5TdWJtaXNzaW9uKCkpCgkgIHsKCSAgICAkcmVwbFZhbCA9ICRmaWVsZC0+R2V0SHVtYW5SZWFkYWJsZVZhbHVlKCk7CgkgICAgaWYgKCRyZXBsVmFsID09ICcnKQoJICAgICAgewoJCSRyZXBsVmFsID0gJHVuc3BlYzsKCSAgICAgIH0KCSAgfQoJaWYoIGdldF9jbGFzcygkb3RoZXJzWyRpXSkgPT0gJ2ZiRmlsZVVwbG9hZEZpZWxkJyApCgkgIHsKCSAgICAvLwoJICAgIC8vIEhhbmRsZSBmaWxlIHVwbG9hZHMKCSAgICAvLyBpZiB0aGUgdXBsb2FkcyBtb2R1bGUgaXMgZm91bmQsIGFuZCB0aGUgb3B0aW9uIGlzIGNoZWNrZWQgaW4KCSAgICAvLyB0aGUgZmllbGQsIHRoZW4gdGhlIGZpbGUgaXMgYWRkZWQgdG8gdGhlIHVwbG9hZHMgbW9kdWxlCgkgICAgLy8gYW5kIGEgbGluayBpcyBhZGRlZCB0byB0aGUgcmVzdWx0cwoJICAgIC8vIGlmIHRoZSBvcHRpb24gaXMgbm90IGNoZWNrZWQsIHRoZW4gdGhlIGZpbGUgaXMgYWRkZWQgYXMKCSAgICAvLyBhbiBhdHRhY2htZW50CgkgICAgLy8KCSAgICAkX2lkID0gJGZpZWxkLT5HZXRWYWx1ZSgpOwoJICAgIGlmKCBpc3NldCggJF9GSUxFU1skX2lkXSApICYmICRfRklMRVNbJF9pZF1bJ3NpemUnXSA+IDAgKQoJICAgICAgewoJCSR0aGlzRmlsZSA9JiAkX0ZJTEVTWyRfaWRdOwoKCQlpZiggJGZpZWxkLT5HZXRPcHRpb24oJ3NlbmR0b191cGxvYWRzJykgKQoJCSAgewoJCSAgICAvLyB3ZSBoYXZlIGEgZmlsZSB3ZSBjYW4gc2VuZCB0byB0aGUgdXBsb2FkcwoJCSAgICAkdXBsb2FkcyA9ICRtb2QtPkdldE1vZHVsZUluc3RhbmNlKCdVcGxvYWRzJyk7CgkJICAgIGlmKCAhJHVwbG9hZHMgKQoJCSAgICAgIHsKCQkJLy8gbm8gdXBsb2FkcyBtb2R1bGUKCQkJYXVkaXQoLTEsICRtb2QtPkdldE5hbWUoKSwgJG1vZC0+TGFuZygnc3VibWl0X2Vycm9yJyksJG1haWwtPkdldEVycm9ySW5mbygpKTsKCQkJZWNobyAiREVCVUc6IGNvdWxkIG5vdCBnZXQgdXBsb2FkcyBtb2R1bGU8YnIvPiI7CgkJICAgICAgICByZXR1cm4gYXJyYXkoJHJlcywgJG1vZC0+TGFuZygnbm91cGxvYWRzX2Vycm9yJykpOwoKCQkgICAgICB9CgoJCSAgICAkcGFybXMgPSBhcnJheSgpOwoJCSAgICAkcGFybXNbJ2lucHV0X2F1dGhvciddID0gJG1vZC0+TGFuZygnYW5vbnltb3VzJyk7CgkJICAgICRwYXJtc1snaW5wdXRfc3VtbWFyeSddID0gJG1vZC0+TGFuZygndGl0bGVfdXBsb2FkbW9kdWxlX3N1bW1hcnknKTsKCQkgICAgJHBhcm1zWydjYXRlZ29yeV9pZCddID0gJGZpZWxkLT5HZXRPcHRpb24oJ3VwbG9hZHNfY2F0ZWdvcnknKTsKCQkgICAgJHBhcm1zWydmaWVsZF9uYW1lJ10gPSAkX2lkOwoJCSAgICAkcmVzID0gJHVwbG9hZHMtPkF0dGVtcHRVcGxvYWQoLTEsJHBhcm1zLC0xKTsKCQkgICAgaWYoICRyZXNbMF0gPT0gZmFsc2UgKQoJCSAgICAgIHsKCQkJLy8gZmFpbGVkIHVwbG9hZCBraWxscyB0aGUgc2VuZC4KCQkJYXVkaXQoLTEsICRtb2QtPkdldE5hbWUoKSwgJG1vZC0+TGFuZygnc3VibWl0X2Vycm9yJywkbWFpbC0+R2V0RXJyb3JJbmZvKCkpKTsKCQkJcmV0dXJuIGFycmF5KCRyZXNbMF0sICRtb2QtPkxhbmcoJ3VwbG9hZHNfZXJyb3InLCRyZXNbMV0pKTsKCQkgICAgICB9CgoJCSAgICAkdXBsb2Fkc19kZXN0cGFnZSA9ICRmaWVsZC0+R2V0T3B0aW9uKCd1cGxvYWRzX2Rlc3RwYWdlJyk7CgkJICAgICR1cmwgPSAkdXBsb2Fkcy0+Q3JlYXRlTGluayAoLTEsICdnZXRmaWxlJywgJHVwbG9hZHNfZGVzdHBhZ2UsICcnLAoJCQkJCQkgYXJyYXkgKCd1cGxvYWRfaWQnID0+ICRyb3dbJ3VwbG9hZF9pZCddKSwgJycsIHRydWUpOwoJCSAgICAkcmVwbFZhbCA9ICR1cmw7CgkJICB9CgkJZWxzZQoJCSAgewoJCSAgICAvLyB3ZSBoYXZlIGEgZmlsZSB3ZSBjYW4gYXR0YWNoCgkJICAgIGlmICghICRtYWlsLT5BZGRBdHRhY2htZW50KCR0aGlzRmlsZVsndG1wX25hbWUnXSwgJHRoaXNGaWxlWyduYW1lJ10sICJiYXNlNjQiLCAkdGhpc0ZpbGVbJ3R5cGUnXSkpCgkJICAgICAgewoJCQkvLyBmYWlsZWQgdXBsb2FkIGtpbGxzIHRoZSBzZW5kLgoJCQlhdWRpdCgtMSwgKGlzc2V0KCRuYW1lKT8kbmFtZToiIiksICRtb2QtPkxhbmcoJ3N1Ym1pdF9lcnJvcicsJG1haWwtPkdldEVycm9ySW5mbygpKSk7CgkJCXJldHVybiBhcnJheSgkcmVzLCAkbW9kLT5MYW5nKCd1cGxvYWRfYXR0YWNoX2Vycm9yJywKCQkJCQkJICAgICAgYXJyYXkoJHRoaXNGaWxlWyduYW1lJ10sJHRoaXNGaWxlWyd0bXBfbmFtZSddICwkdGhpc0ZpbGVbJ3R5cGUnXSkpKTsKCQkgICAgICB9CgoJCSAgICAkcmVwbFZhbCA9ICR0aGlzRmlsZVsnbmFtZSddOwoJCSAgfQoJICAgICAgfQoJICB9CgoJaWYoICRyZXBsVmFsICE9ICcnICkKCSAgewoJICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCR0aGlzLT5NYWtlVmFyKCRmaWVsZC0+R2V0TmFtZSgpKSwkcmVwbFZhbCk7CgkgIH0KICAgICAgfQoKICAgICRtZXNzYWdlID0gJG1vZC0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoICRtZXNzYWdlICk7CiAgICAkbWFpbC0+U2V0U3ViamVjdCgkc3ViamVjdCk7CiAgICAgaWYgKCRodG1sZW1haWwpCgkgCXsKCQkkbWVzc2FnZTIgPSAkbW9kLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkbWVzc2FnZTIpOwoJCSRtYWlsLT5TZXRBbHRCb2R5KHN0cmlwX3RhZ3MoaHRtbF9lbnRpdHlfZGVjb2RlKCRtZXNzYWdlKSkpOwoJCSRtYWlsLT5TZXRCb2R5KCRtZXNzYWdlMik7CgkJfQoJIGVsc2UKCSAJewoJIAkkbWFpbC0+U2V0Qm9keShodG1sX2VudGl0eV9kZWNvZGUoJG1lc3NhZ2UpKTsKCQl9CiAgICAvLyBzZW5kIHRoZSBtZXNzYWdlLi4uCiAgICBpZiAoISBpc19hcnJheSgkZGVzdGluYXRpb25fYXJyYXkpKQogICAgICB7CgkkZGVzdGluYXRpb25fYXJyYXkgPSBhcnJheSgkZGVzdGluYXRpb25fYXJyYXkpOwogICAgICB9CiAgICBmb3JlYWNoICgkZGVzdGluYXRpb25fYXJyYXkgYXMgJHRoaXNEZXN0KQogICAgICB7CgkkbWFpbC0+QWRkQWRkcmVzcygkdGhpc0Rlc3QpOwogICAgICB9CgogICAgJHJlcyA9ICRtYWlsLT5TZW5kKCk7CiAgICBpZiAoJHJlcyA9PT0gZmFsc2UpCiAgICAgIHsKCWF1ZGl0KC0xLCAoaXNzZXQoJG5hbWUpPyRuYW1lOiIiKSwgJG1vZC0+TGFuZygnc3VibWl0X2Vycm9yJywkbWFpbC0+R2V0RXJyb3JJbmZvKCkpKTsKICAgICAgfQogICAgZWxzZSBpZiAoJG1vZC0+R2V0UHJlZmVyZW5jZSgnZW5hYmxlX2FudGlzcGFtJywxKSkKCSAJewoJCSRkYiA9JiAkZ0Ntcy0+R2V0RGIoKTsKCgkJJHJlY19pZCA9ICRkYi0+R2VuSUQoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfaXBfbG9nX3NlcScpOwoJCSRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLmNtc19kYl9wcmVmaXgoKS4KCQkJJ21vZHVsZV9mYl9pcF9sb2cgKHNlbnRfaWQsIHNyY19pcCwgc2VudF90aW1lKSBWQUxVRVMgKD8sID8sID8pJzsKCSAgIAoJCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRyZWNfaWQsICRfU0VSVkVSWydSRU1PVEVfQUREUiddLAoJCQkJCQkgICB0cmltKCRkYi0+REJUaW1lU3RhbXAodGltZSgpKSwiJyIpKSk7CgkJfQogICAgcmV0dXJuIGFycmF5KCRyZXMsICRtYWlsLT5HZXRFcnJvckluZm8oKSk7CiAgfQoKICBmdW5jdGlvbiBQcmVQb3B1bGF0ZUFkbWluRm9ybUJhc2UoJGZvcm1EZXNjcmlwdG9yKQogIHsKICAgICRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgJG1lc3NhZ2UgPSAkdGhpcy0+R2V0T3B0aW9uKCdlbWFpbF90ZW1wbGF0ZScsJycpOwogICAgJHJldCA9ICc8dGFibGUgY2xhc3M9Im1vZHVsZV9mYl9sZWdlbmQiPjx0cj48dGggY29sc3Bhbj0iMiI+Jy4kbW9kLT5MYW5nKCdoZWxwX3ZhcmlhYmxlc19mb3JfdGVtcGxhdGUnKS4nPC90aD48L3RyPic7CiAgICAkcmV0IC49ICc8dHI+PHRoPicuJG1vZC0+TGFuZygnaGVscF92YXJpYWJsZV9uYW1lJykuJzwvdGg+PHRoPicuJG1vZC0+TGFuZygnaGVscF9mb3JtX2ZpZWxkJykuJzwvdGg+PC90cj4nOwogICAgZm9yZWFjaCgkdGhpcy0+dGVtcGxhdGVWYXJpYWJsZXMgYXMgJHRoaXNLZXk9PiR0aGlzVmFsKQogICAgICB7CgkkcmV0IC49ICc8dHI+PHRkPicuJHRoaXNLZXkuJzwvdGQ+PHRkPicuJHRoaXNWYWwuJzwvdGQ+PC90cj4nOwogICAgICB9CgogICAgJG90aGVycyA9ICYkdGhpcy0+Zm9ybV9wdHItPkdldEZpZWxkcygpOwogICAgZm9yKCRpPTA7JGk8Y291bnQoJG90aGVycyk7JGkrKykKICAgICAgewoJaWYgKCRvdGhlcnNbJGldLT5EaXNwbGF5SW5TdWJtaXNzaW9uKCkpCgkgIHsgICAgICAgICAgICAgICAgCgkgICAgJHJldCAuPSAnPHRyPjx0ZD57JCcuJHRoaXMtPk1ha2VWYXIoJG90aGVyc1skaV0tPkdldE5hbWUoKSkgLid9PC90ZD48dGQ+JyAuJG90aGVyc1skaV0tPkdldE5hbWUoKSAuICc8L3RkPjwvdHI+JzsKCSAgfQogICAgICB9CiAgICAgICAJCiAgICAkcmV0IC49ICc8dHI+PHRkIGNvbHNwYW49IjIiPicuJG1vZC0+TGFuZygnaGVscF9vdGhlcl9maWVsZHMnKS4nPC90ZD48L3RyPic7CiAgICAgICAgCiAgICAkZXNjYXBlZFNhbXBsZSA9IHByZWdfcmVwbGFjZSgnL1wnLycsIlxcJyIsJHRoaXMtPmNyZWF0ZVNhbXBsZVRlbXBsYXRlKGZhbHNlKSk7CiAgICAkZXNjYXBlZFNhbXBsZUhUTUwgPSBwcmVnX3JlcGxhY2UoJy9cJy8nLCJcXCciLCR0aGlzLT5jcmVhdGVTYW1wbGVUZW1wbGF0ZSh0cnVlKSk7CiAgICAkZXNjYXBlZFNhbXBsZSA9IHByZWdfcmVwbGFjZSgnL1xuLycsIlxcbicrXG4nIiwgJGVzY2FwZWRTYW1wbGUpOwogICAgJGVzY2FwZWRTYW1wbGVIVE1MID0gcHJlZ19yZXBsYWNlKCcvXG4vJywiXFxuJytcbiciLCAkZXNjYXBlZFNhbXBsZUhUTUwpOwogICAgJHRoaXMtPnNhbXBsZVRlbXBsYXRlQ29kZSA9IHByZWdfcmVwbGFjZSgnL1x8VEVNUExBVEVcfC8nLCInIi4kZXNjYXBlZFNhbXBsZS4iJyIsJHRoaXMtPnNhbXBsZVRlbXBsYXRlQ29kZSk7CiAgICAkdGhpcy0+c2FtcGxlVGVtcGxhdGVDb2RlID0gcHJlZ19yZXBsYWNlKCcvXHxIVE1MVEVNUExBVEVcfC8nLCInIi4kZXNjYXBlZFNhbXBsZUhUTUwuIiciLCR0aGlzLT5zYW1wbGVUZW1wbGF0ZUNvZGUpOwogICAgJHRoaXMtPnNhbXBsZVRlbXBsYXRlQ29kZSA9IHByZWdfcmVwbGFjZSgnL0lELycsJGZvcm1EZXNjcmlwdG9yLCAkdGhpcy0+c2FtcGxlVGVtcGxhdGVDb2RlKTsKICAgICRyZXQgLj0gJzx0cj48dGQgY29sc3Bhbj0iMiI+Jy4kdGhpcy0+c2FtcGxlVGVtcGxhdGVDb2RlLic8L3RkPjwvdHI+JzsKICAgICRyZXQgLj0gJzwvdGFibGU+JzsKCiAgICByZXR1cm4gYXJyYXkoCgkJIGFycmF5KAoJCSAgICAgICBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9lbWFpbF9zdWJqZWN0JyksJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ29wdF9lbWFpbF9zdWJqZWN0JywkdGhpcy0+R2V0T3B0aW9uKCdlbWFpbF9zdWJqZWN0JywnJyksMjUsMTI4KSksCgkJICAgICAgIGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2VtYWlsX2Zyb21fbmFtZScpLCRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdvcHRfZW1haWxfZnJvbV9uYW1lJywkdGhpcy0+R2V0T3B0aW9uKCdlbWFpbF9mcm9tX25hbWUnLCRtb2QtPkxhbmcoJ2ZyaWVuZGx5bmFtZScpKSwyNSwxMjgpKSwKCQkgICAgICAgYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZW1haWxfZnJvbV9hZGRyZXNzJyksJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ29wdF9lbWFpbF9mcm9tX2FkZHJlc3MnLCR0aGlzLT5HZXRPcHRpb24oJ2VtYWlsX2Zyb21fYWRkcmVzcycsJycpLDI1LDEyOCkpLAoJCSAgICAgICApLAoJCSBhcnJheSgKCQkgCQkgYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfaHRtbF9lbWFpbCcpLCRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnb3B0X2h0bWxfZW1haWwnLAogICAgICAgICAgICAJCScxJywkdGhpcy0+R2V0T3B0aW9uKCdodG1sX2VtYWlsJywnMCcpKSksCgkJICAgICAgIGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2VtYWlsX3RlbXBsYXRlJyksCgkJCSAgICAgYXJyYXkoJG1vZC0+Q3JlYXRlVGV4dEFyZWEoZmFsc2UsICRmb3JtRGVzY3JpcHRvciwKCQkJCQkJCSgkdGhpcy0+R2V0T3B0aW9uKCdodG1sX2VtYWlsJywnMCcpPT0nMSc/JG1lc3NhZ2U6aHRtbHNwZWNpYWxjaGFycygkbWVzc2FnZSkpLCdvcHRfZW1haWxfdGVtcGxhdGUnLCAnbW9kdWxlX2ZiX2FyZWFfd2lkZScsICcnLCcnLDAsMCksJHJldCkpLAoJCSAgICAgICBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9lbWFpbF9lbmNvZGluZycpLCRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdvcHRfZW1haWxfZW5jb2RpbmcnLCR0aGlzLT5HZXRPcHRpb24oJ2VtYWlsX2VuY29kaW5nJywndXRmLTgnKSwyNSwxMjgpKQoJCSAgICAgICApCgkJICk7CiAgfQoKfQoKLy8gRU9GCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionEmailConfirmation.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpyZXF1aXJlX29uY2UoJ0Rpc3Bvc2l0aW9uRW1haWxCYXNlLmNsYXNzLnBocCcpOwoKY2xhc3MgZmJEaXNwb3NpdGlvbkVtYWlsQ29uZmlybWF0aW9uIGV4dGVuZHMgZmJEaXNwb3NpdGlvbkVtYWlsQmFzZSB7CgoJdmFyICR2YWxpZGF0ZWQ7CgoJZnVuY3Rpb24gZmJEaXNwb3NpdGlvbkVtYWlsQ29uZmlybWF0aW9uKCYkZm9ybV9wdHIsICYkcGFyYW1zKQoJewogICAgICAgICR0aGlzLT5mYkRpc3Bvc2l0aW9uRW1haWxCYXNlKCRmb3JtX3B0ciwgJHBhcmFtcyk7CiAgICAgICAgJG1vZCA9ICYkZm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHRoaXMtPlR5cGUgPSAnRGlzcG9zaXRpb25FbWFpbENvbmZpcm1hdGlvbic7CgkJJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwoJCSR0aGlzLT5Ob25SZXF1aXJhYmxlRmllbGQgPSBmYWxzZTsKCQkkdGhpcy0+RGlzcGxheUluU3VibWlzc2lvbiA9IHRydWU7CgkJJHRoaXMtPklzRGlzcG9zaXRpb24gPSB0cnVlOwoJCSR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgKICAgICAgIAkJKTsKICAgICAgIAkkdGhpcy0+VmFsaWRhdGlvblR5cGUgPSAnZW1haWwnOwogICAgICAgCSR0aGlzLT5tb2RpZmllc090aGVyRmllbGRzID0gdHJ1ZTsKICAgICAgIAkkdGhpcy0+QWRkVGVtcGxhdGVWYXJpYWJsZSgnY29uZmlybV91cmwnLAogICAgICAgCQkkbW9kLT5MYW5nKCd0aXRsZV9jb25maXJtYXRpb25fdXJsJykpOwogICAgICAgCSR0aGlzLT5hcHByb3ZlZFRvR28gPSBmYWxzZTsKICAgIH0KCiAgICBmdW5jdGlvbiBTdGF0dXNJbmZvKCkKCXsKICAgICAgICByZXR1cm4gJHRoaXMtPlRlbXBsYXRlU3RhdHVzKCk7Cgl9CgoJZnVuY3Rpb24gQXBwcm92ZVRvR28oJHJlc3BvbnNlX2lkKQoJewoJJHRoaXMtPmFwcHJvdmVkVG9HbyA9IHRydWU7Cgl9CgoJZnVuY3Rpb24gTW9kaWZ5T3RoZXJGaWVsZHMoKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoKCQlpZiAoJHRoaXMtPmZvcm1fcHRyLT5HZXRGb3JtU3RhdGUoKSA9PSAndXBkYXRlJykKCQkJewoJCQkkdGhpcy0+YXBwcm92ZWRUb0dvID0gdHJ1ZTsKCQkJcmV0dXJuOwoJCQl9CgkJLy8gSWYgd2UgaGF2ZW4ndCBiZWVuIGFwcHJvdmVkLCBpbmhpYml0IGFsbCBvdGhlciBkaXNwb3NpdGlvbnMhCgkJJG90aGVycyA9ICYkdGhpcy0+Zm9ybV9wdHItPkdldEZpZWxkcygpOwoKCQlmb3IoJGk9MDskaTxjb3VudCgkb3RoZXJzKTskaSsrKQoJCQl7CgkJCWlmICgkdGhpcy0+YXBwcm92ZWRUb0dvICYmICRvdGhlcnNbJGldLT5HZXRGaWVsZFR5cGUoKSA9PSAnRGlzcG9zaXRpb25EYXRhYmFzZScpCgkJCQl7CgkJCQkkb3RoZXJzWyRpXS0+U2V0QXBwcm92YWxOYW1lKCR0aGlzLT5HZXRWYWx1ZSgpKTsKCQkJCX0KCQkJZWxzZWlmICghICR0aGlzLT5hcHByb3ZlZFRvR28gJiYgJG90aGVyc1skaV0tPklzRGlzcG9zaXRpb24oKSkKCQkJCXsKCQkJCSRvdGhlcnNbJGldLT5TZXREaXNwb3NpdGlvblBlcm1pc3Npb24oZmFsc2UpOwoJCQkJfQoJCQl9CgkJJHRoaXMtPlNldERpc3Bvc2l0aW9uUGVybWlzc2lvbih0cnVlKTsJCQoJfQoKCWZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCXJldHVybiAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnXycuJHRoaXMtPklkLAoJCQlodG1sc3BlY2lhbGNoYXJzKCR0aGlzLT5WYWx1ZSwgRU5UX1FVT1RFUyksMjUsODApOwoJfQoKCiAgICAvLyBTZW5kIG9mZiB0aG9zZSBlbWFpbHMKCWZ1bmN0aW9uIERpc3Bvc2VGb3JtKCRyZXR1cm5pZCkKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQlpZiAoISAkdGhpcy0+YXBwcm92ZWRUb0dvKQoJCQl7CgkJCS8vIGNyZWF0ZSByZXNwb25zZSBVUkwKCQkJbGlzdCgkcmlkLCRjb2RlKSA9ICR0aGlzLT5mb3JtX3B0ci0+U3RvcmVSZXNwb25zZSgpOwoJCQkJCQoJCQkkbW9kLT5zbWFydHktPmFzc2lnbignY29uZmlybV91cmwnLCRtb2QtPkNyZWF0ZUZyb250ZW5kTGluaygnJywgJHJldHVybmlkLAoJCQkJJ3ZhbGlkYXRlJywgJycsIGFycmF5KCdmJz0+JHRoaXMtPmZvcm1fcHRyLT5HZXRJZCgpLCdyJz0+JHJpZCwnYyc9PiRjb2RlKSwgJycsCgkJCQl0cnVlLGZhbHNlLCcnLHRydWUpKTsKCQkJcmV0dXJuICR0aGlzLT5TZW5kRm9ybSgkdGhpcy0+R2V0VmFsdWUoKSwkdGhpcy0+R2V0T3B0aW9uKCdlbWFpbF9zdWJqZWN0JykpOwoJCQl9CgkJZWxzZQoJCQl7CgkJCXJldHVybiBhcnJheSh0cnVlLCcnKTsKCQkJfQoJfQoKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCSAgJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkgIAoJICBnbG9iYWwgJGdDbXM7CgkgICRjb250ZW50b3BzID0mICRnQ21zLT5HZXRDb250ZW50T3BlcmF0aW9ucygpOwoKCSAgbGlzdCgkbWFpbiwkYWR2KSA9ICR0aGlzLT5QcmVQb3B1bGF0ZUFkbWluRm9ybUJhc2UoJGZvcm1EZXNjcmlwdG9yKTsKCSAgYXJyYXlfcHVzaCgkbWFpbixhcnJheSgkbW9kLT5MYW5nKCdyZWRpcmVjdF9hZnRlcl9hcHByb3ZhbCcpLAoJCQkJIEAkY29udGVudG9wcy0+Q3JlYXRlSGllcmFyY2h5RHJvcGRvd24oJycsJHRoaXMtPkdldE9wdGlvbigncmVkaXJlY3RfcGFnZScsJzAnKSwgJGZvcm1EZXNjcmlwdG9yLidvcHRfcmVkaXJlY3RfcGFnZScpKSk7CgkgIHJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLCdhZHYnPT4kYWR2KTsKCX0KCglmdW5jdGlvbiBQb3N0UG9wdWxhdGVBZG1pbkZvcm0oJiRtYWluQXJyYXksICYkYWR2QXJyYXkpCgl7CgkJJHRoaXMtPkhpZGRlbkRpc3Bvc2l0aW9uRmllbGRzKCRtYWluQXJyYXksICRhZHZBcnJheSk7CgkJCgl9CgoJZnVuY3Rpb24gVmFsaWRhdGUoKQoJewoJCSRyZXN1bHQgPSB0cnVlOwoJCSRtZXNzYWdlID0gJyc7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJc3dpdGNoICgkdGhpcy0+VmFsaWRhdGlvblR5cGUpCgkJICB7CgkJICAJICAgY2FzZSAnZW1haWwnOgogICAgICAgICAgICAgICAgICBpZiAoJHRoaXMtPlZhbHVlICE9PSBmYWxzZSAmJgogICAgICAgICAgICAgICAgICAgICAgISBwcmVnX21hdGNoKCgkbW9kLT5HZXRQcmVmZXJlbmNlKCdyZWxheGVkX2VtYWlsX3JlZ2V4JywnMCcpPT0wPyRtb2QtPmVtYWlsX3JlZ2V4OiRtb2QtPmVtYWlsX3JlZ2V4X3JlbGF4ZWQpLCAkdGhpcy0+VmFsdWUpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAkcmVzdWx0ID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgJG1lc3NhZ2UgPSAkbW9kLT5MYW5nKCdwbGVhc2VfZW50ZXJfYW5fZW1haWwnLCR0aGlzLT5OYW1lKTsKICAgICAgICAgICAgICAgICAgICB9CgkJICAJICAgICAgIGJyZWFrOwoJCSAgfQoJCXJldHVybiBhcnJheSgkcmVzdWx0LCAkbWVzc2FnZSk7Cgl9CgoKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionFile.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkRpc3Bvc2l0aW9uRmlsZSBleHRlbmRzICBmYkZpZWxkQmFzZSAKewoKICB2YXIgJHNhbXBsZVRlbXBsYXRlQ29kZTsKICB2YXIgJHNhbXBsZUhlYWRlcjsKCiAgZnVuY3Rpb24gZmJEaXNwb3NpdGlvbkZpbGUoJiRmb3JtX3B0ciwgJiRwYXJhbXMpCiAgewogICAgJHRoaXMtPmZiRmllbGRCYXNlKCRmb3JtX3B0ciwgJHBhcmFtcyk7CiAgICAkbW9kID0gJiRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICR0aGlzLT5UeXBlID0gJ0Rpc3Bvc2l0aW9uRmlsZSc7CiAgICAkdGhpcy0+SXNEaXNwb3NpdGlvbiA9IHRydWU7CiAgICAkdGhpcy0+Tm9uUmVxdWlyYWJsZUZpZWxkID0gdHJ1ZTsKICAgICR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gZmFsc2U7CiAgICAkdGhpcy0+c2FtcGxlVGVtcGxhdGVDb2RlID0gIjxzY3JpcHQgdHlwZT1cInRleHQvamF2YXNjcmlwdFwiPlxuCmZ1bmN0aW9uIHBvcHVsYXRlX2ZpbGUoZm9ybW5hbWUpCiAgICB7CiAgICB2YXIgZm5hbWUgPSAnSURvcHRfZmlsZV90ZW1wbGF0ZSc7CiAgICBmb3JtbmFtZVtmbmFtZV0udmFsdWU9VEVNUExBVEU7CiAgICB9Cjwvc2NyaXB0Pgo8aW5wdXQgdHlwZT1cImJ1dHRvblwiIHZhbHVlPVwiIi4kbW9kLT5MYW5nKCd0aXRsZV9jcmVhdGVfc2FtcGxlX3RlbXBsYXRlJykuIlwiIG9uQ2xpY2s9XCJqYXZhc2NyaXB0OnBvcHVsYXRlX2ZpbGUodGhpcy5mb3JtKVwiIC8+IjsKICAgICR0aGlzLT5zYW1wbGVIZWFkZXIgPSAiPHNjcmlwdCB0eXBlPVwidGV4dC9qYXZhc2NyaXB0XCI+XG4KZnVuY3Rpb24gcG9wdWxhdGVfaGVhZGVyKGZvcm1uYW1lKQogICAgewogICAgdmFyIGZuYW1lID0gJ0lEb3B0X2ZpbGVfaGVhZGVyJzsKICAgIGZvcm1uYW1lW2ZuYW1lXS52YWx1ZT1URU1QTEFURTsKICAgIH0KPC9zY3JpcHQ+CjxpbnB1dCB0eXBlPVwiYnV0dG9uXCIgdmFsdWU9XCIiLiRtb2QtPkxhbmcoJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaGVhZGVyJykuIlwiIG9uQ2xpY2s9XCJqYXZhc2NyaXB0OnBvcHVsYXRlX2hlYWRlcih0aGlzLmZvcm0pXCIgLz4iOwogIH0KCiAgZnVuY3Rpb24gU3RhdHVzSW5mbygpCiAgewogICAgJG1vZD0mJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgcmV0dXJuICR0aGlzLT5HZXRPcHRpb24oJ2ZpbGVzcGVjJywkbW9kLT5MYW5nKCd1bnNwZWNpZmllZCcpKTsKICB9CgogIGZ1bmN0aW9uIERpc3Bvc2VGb3JtKCRyZXR1cm5pZCkKICB7CiAgICAkbW9kPSYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkY291bnQgPSAwOwogICAgd2hpbGUgKCEgJG1vZC0+R2V0RmlsZUxvY2soKSAmJiAkY291bnQ8MjAwKQogICAgICB7CgkkY291bnQrKzsKCXVzbGVlcCg1MDApOwogICAgICB9CiAgICBpZiAoJGNvdW50ID09IDIwMCkKICAgICAgewoJcmV0dXJuIGFycmF5KGZhbHNlLCAkbW9kLT5MYW5nKCdzdWJtaXNzaW9uX2Vycm9yX2ZpbGVfbG9jaycpKTsKICAgICAgfQoKICAgICRmaWxlc3BlYyA9ICRtb2QtPmNvbmZpZ1sncm9vdF9wYXRoJ10uJy9tb2R1bGVzL0Zvcm1CdWlsZGVyL291dHB1dC8nLgogICAgICBwcmVnX3JlcGxhY2UoIi9bXlx3XGRcLl18XC5cLi8iLCAiXyIsICR0aGlzLT5HZXRPcHRpb24oJ2ZpbGVzcGVjJywnZm9ybV9zdWJtaXNzaW9ucy50eHQnKSk7CgogICAgJGxpbmUgPSAnJzsKICAgIGlmICghIGZpbGVfZXhpc3RzKCRmaWxlc3BlYykpCiAgICAgIHsKCSRoZWFkZXIgPSAkdGhpcy0+R2V0T3B0aW9uKCdmaWxlX2hlYWRlcicsJycpOwoJaWYgKCRoZWFkZXIgPT0gJycpCgkgIHsKCSAgICAkaGVhZGVyID0gJHRoaXMtPmNyZWF0ZVNhbXBsZUhlYWRlcigpOwoJICB9IAoJJGhlYWRlciAuPSAiXG4iOwogICAgICB9CiAgICAkdGVtcGxhdGUgPSAkdGhpcy0+R2V0T3B0aW9uKCdmaWxlX3RlbXBsYXRlJywnJyk7CiAgICBpZiAoJHRlbXBsYXRlID09ICcnKQogICAgICB7CgkkdGVtcGxhdGUgPSAkdGhpcy0+Y3JlYXRlU2FtcGxlVGVtcGxhdGUoKTsKICAgICAgfQogICAgJGxpbmUgPSAkaGVhZGVyLiR0ZW1wbGF0ZTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdzdWJfZm9ybV9uYW1lJywkdGhpcy0+Zm9ybV9wdHItPkdldE5hbWUoKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignc3ViX2RhdGUnLGRhdGUoJ3InKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignc3ViX2hvc3QnLCRfU0VSVkVSWydTRVJWRVJfTkFNRSddKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdzdWJfc291cmNlX2lwJywkX1NFUlZFUlsnUkVNT1RFX0FERFInXSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignc3ViX3VybCcsJF9TRVJWRVJbJ0hUVFBfUkVGRVJFUiddKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdUQUInLCJcdCIpOwogICAgJG90aGVycyA9ICYkdGhpcy0+Zm9ybV9wdHItPkdldEZpZWxkcygpOwogICAgJHVuc3BlYyA9ICR0aGlzLT5mb3JtX3B0ci0+R2V0QXR0cigndW5zcGVjaWZpZWQnLCRtb2QtPkxhbmcoJ3Vuc3BlY2lmaWVkJykpOwoJCQogICAgZm9yKCRpPTA7JGk8Y291bnQoJG90aGVycyk7JGkrKykKICAgICAgewoJJHJlcGxWYWwgPSAnJzsKCWlmICgkb3RoZXJzWyRpXS0+RGlzcGxheUluU3VibWlzc2lvbigpKQoJICB7CgkgICAgJHJlcGxWYWwgPSAkb3RoZXJzWyRpXS0+R2V0SHVtYW5SZWFkYWJsZVZhbHVlKCk7CgkgICAgaWYgKCRyZXBsVmFsID09ICcnKQoJICAgICAgewoJCSRyZXBsVmFsID0gJHVuc3BlYzsKCSAgICAgIH0KCSAgfQoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJHRoaXMtPk1ha2VWYXIoJG90aGVyc1skaV0tPkdldG5hbWUoKSksJHJlcGxWYWwpOwogICAgICB9CgogICAgJG5ld2xpbmUgPSAkbW9kLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSggJGxpbmUgKTsKICAgIGlmIChzdWJzdHIoJG5ld2xpbmUsLTEsMSkgIT0gIlxuIikKICAgICAgewoJJG5ld2xpbmUgLj0gIlxuIjsKICAgICAgfQogICAgJGYyID0gZm9wZW4oJGZpbGVzcGVjLCJhIik7CiAgICBmd3JpdGUoJGYyLCRuZXdsaW5lKTsKICAgIGZjbG9zZSgkZjIpOyAKICAgICRtb2QtPlJldHVybkZpbGVMb2NrKCk7CiAgICByZXR1cm4gYXJyYXkodHJ1ZSwnJyk7ICAgICAgICAKICB9CgogIGZ1bmN0aW9uIE1ha2VWYXIoJHN0cmluZykKICB7CiAgICAkbWF4dmFybGVuID0gMjQ7CiAgICAkc3RyaW5nID0gc3RydG9sb3dlcihwcmVnX3JlcGxhY2UoJy9ccysvJywnXycsJHN0cmluZykpOwogICAgJHN0cmluZyA9IHN0cnRvbG93ZXIocHJlZ19yZXBsYWNlKCcvXFcvJywnXycsJHN0cmluZykpOwogICAgaWYgKHN0cmxlbigkc3RyaW5nKSA+ICRtYXh2YXJsZW4pCiAgICAgIHsKCSRzdHJpbmcgPSBzdWJzdHIoJHN0cmluZywwLCRtYXh2YXJsZW4pOwoJJHBvcyA9IHN0cnJwb3MoJHN0cmluZywnXycpOwoJaWYgKCRwb3MgIT09IGZhbHNlKQoJICB7CgkgICAgJHN0cmluZyA9IHN1YnN0cigkc3RyaW5nLDAsJHBvcyk7CgkgIH0KICAgICAgfQogICAgcmV0dXJuICRzdHJpbmc7CiAgfQoKCiAgZnVuY3Rpb24gY3JlYXRlU2FtcGxlSGVhZGVyKCkKICB7CiAgICAkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICRvdGhlcnMgPSAmJHRoaXMtPmZvcm1fcHRyLT5HZXRGaWVsZHMoKTsKICAgICRmaWVsZHMgPSBhcnJheSgpOwogICAgZm9yKCRpPTA7JGk8Y291bnQoJG90aGVycyk7JGkrKykKICAgICAgewoJaWYgKCRvdGhlcnNbJGldLT5EaXNwbGF5SW5TdWJtaXNzaW9uKCkpCgkgIHsKCSAgICBhcnJheV9wdXNoKCRmaWVsZHMsJG90aGVyc1skaV0tPkdldE5hbWUoKSk7CgkgIH0KICAgICAgfQogICAgcmV0dXJuIGltcGxvZGUoJ3skVEFCfScsJGZpZWxkcyk7CiAgfQoKCiAgZnVuY3Rpb24gY3JlYXRlU2FtcGxlVGVtcGxhdGUoKQogIHsKICAgICRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgJG90aGVycyA9ICYkdGhpcy0+Zm9ybV9wdHItPkdldEZpZWxkcygpOwogICAgJGZpZWxkcyA9IGFycmF5KCk7CiAgICBmb3IoJGk9MDskaTxjb3VudCgkb3RoZXJzKTskaSsrKQogICAgICB7CglpZiAoJG90aGVyc1skaV0tPkRpc3BsYXlJblN1Ym1pc3Npb24oKSkKCSAgewoJICAgIGFycmF5X3B1c2goJGZpZWxkcywneyQnIC4gJHRoaXMtPk1ha2VWYXIoJG90aGVyc1skaV0tPkdldE5hbWUoKSkgLiAnfScpOwoJICB9CiAgICAgIH0KICAgIHJldHVybiBpbXBsb2RlKCd7JFRBQn0nLCRmaWVsZHMpOwogIH0KCgogIGZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKICB7CiAgICAkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICRyZXQgPSAnPHRhYmxlIGNsYXNzPSJtb2R1bGVfZmJfbGVnZW5kIj48dHI+PHRoIGNvbHNwYW49IjIiPicuJG1vZC0+TGFuZygnaGVscF92YXJpYWJsZXNfZm9yX3RlbXBsYXRlJykuJzwvdGg+PC90cj4nOwogICAgJHJldCAuPSAnPHRyPjx0aD4nLiRtb2QtPkxhbmcoJ2hlbHBfdmFyaWFibGVfbmFtZScpLic8L3RoPjx0aD4nLiRtb2QtPkxhbmcoJ2hlbHBfZm9ybV9maWVsZCcpLic8L3RoPjwvdHI+JzsKICAgICRyZXQgLj0gJzx0cj48dGQ+eyRzdWJfZm9ybV9uYW1lfTwvdGQ+PHRkPicuJG1vZC0+TGFuZygndGl0bGVfZm9ybV9uYW1lJykuJzwvdGQ+PC90cj4nOwogICAgJHJldCAuPSAnPHRyPjx0ZD57JHN1Yl9kYXRlfTwvdGQ+PHRkPicuJG1vZC0+TGFuZygnaGVscF9zdWJtaXNzaW9uX2RhdGUnKS4nPC90ZD48L3RyPic7CiAgICAkcmV0IC49ICc8dHI+PHRkPnskc3ViX2hvc3R9PC90ZD48dGQ+Jy4kbW9kLT5MYW5nKCdoZWxwX3NlcnZlcl9uYW1lJykuJzwvdGQ+PC90cj4nOwogICAgJHJldCAuPSAnPHRyPjx0ZD57JHN1Yl9zb3VyY2VfaXB9PC90ZD48dGQ+Jy4kbW9kLT5MYW5nKCdoZWxwX3N1Yl9zb3VyY2VfaXAnKS4nPC90ZD48L3RyPic7CiAgICAkcmV0IC49ICc8dHI+PHRkPnskc291cmNlX3VybH08L3RkPjx0ZD4nLiRtb2QtPkxhbmcoJ2hlbHBfc3ViX3VybCcpLic8L3RkPjwvdHI+JzsKICAgICRvdGhlcnMgPSAmJHRoaXMtPmZvcm1fcHRyLT5HZXRGaWVsZHMoKTsKICAgIGZvcigkaT0wOyRpPGNvdW50KCRvdGhlcnMpOyRpKyspCiAgICAgIHsKCWlmICgkb3RoZXJzWyRpXS0+RGlzcGxheUluU3VibWlzc2lvbigpKQoJICB7ICAgICAgICAgICAgICAgIAoJICAgICRyZXQgLj0gJzx0cj48dGQ+JHsnLiR0aGlzLT5NYWtlVmFyKCRvdGhlcnNbJGldLT5HZXROYW1lKCkpIC4nfTwvdGQ+PHRkPicgLiRvdGhlcnNbJGldLT5HZXROYW1lKCkgLiAnPC90ZD48L3RyPic7CgkgIH0KICAgICAgfQoKICAgICRyZXQgLj0gJzx0cj48dGQ+eyRUQUJ9PC90ZD48dGQ+Jy4kbW9kLT5MYW5nKCdoZWxwX3RhYl9zeW1ib2wnKS4nPC90ZD48L3RyPic7ICAgICAgIAkKICAgICRyZXQgLj0gJzx0cj48dGQgY29sc3Bhbj0iMiI+Jy4kbW9kLT5MYW5nKCdoZWxwX290aGVyX2ZpZWxkcycpLic8L3RkPjwvdHI+JzsKICAgICAgICAKICAgICRlc2NhcGVkU2FtcGxlID0gcHJlZ19yZXBsYWNlKCcvXCcvJywiXFwnIiwkdGhpcy0+Y3JlYXRlU2FtcGxlVGVtcGxhdGUoKSk7CiAgICAkZXNjYXBlZFNhbXBsZSA9IHByZWdfcmVwbGFjZSgnL1xuLycsIlxcbicrXG4nIiwgJGVzY2FwZWRTYW1wbGUpOwogICAgJHRoaXMtPnNhbXBsZVRlbXBsYXRlQ29kZSA9IHByZWdfcmVwbGFjZSgnL1RFTVBMQVRFLycsIiciLiRlc2NhcGVkU2FtcGxlLiInIiwkdGhpcy0+c2FtcGxlVGVtcGxhdGVDb2RlKTsKICAgICR0aGlzLT5zYW1wbGVUZW1wbGF0ZUNvZGUgPSBwcmVnX3JlcGxhY2UoJy9JRC8nLCRmb3JtRGVzY3JpcHRvciwgJHRoaXMtPnNhbXBsZVRlbXBsYXRlQ29kZSk7CgkgICAKICAgICRlc2NhcGVkSGVhZGVyID0gcHJlZ19yZXBsYWNlKCcvXCcvJywiXFwnIiwkdGhpcy0+Y3JlYXRlU2FtcGxlSGVhZGVyKCkpOwogICAgJGVzY2FwZWRIZWFkZXIgPSBwcmVnX3JlcGxhY2UoJy9cbi8nLCJcXG4nK1xuJyIsICRlc2NhcGVkSGVhZGVyKTsKICAgICR0aGlzLT5zYW1wbGVIZWFkZXIgPSBwcmVnX3JlcGxhY2UoJy9URU1QTEFURS8nLCInIi4kZXNjYXBlZEhlYWRlci4iJyIsJHRoaXMtPnNhbXBsZUhlYWRlcik7CiAgICAkdGhpcy0+c2FtcGxlSGVhZGVyID0gcHJlZ19yZXBsYWNlKCcvSUQvJywkZm9ybURlc2NyaXB0b3IsICR0aGlzLT5zYW1wbGVIZWFkZXIpOwoJICAgCiAgICAkcmV0IC49ICc8dHI+PHRkIGNvbHNwYW49IjIiPicuJHRoaXMtPnNhbXBsZUhlYWRlci4nPC90ZD48L3RyPic7CiAgICAkcmV0IC49ICc8dHI+PHRkIGNvbHNwYW49IjIiPicuJHRoaXMtPnNhbXBsZVRlbXBsYXRlQ29kZS4nPC90ZD48L3RyPic7CgogICAgJHJldCAuPSAnPC90YWJsZT4nOwoKCiAgICAkbWFpbiA9IGFycmF5KCk7CiAgICAkYWR2ID0gYXJyYXkoKTsKICAgIGFycmF5X3B1c2goJG1haW4sYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZmlsZV9uYW1lJyksCgkJCSAgICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdvcHRfZmlsZXNwZWMnLAoJCQkJCQkgJHRoaXMtPkdldE9wdGlvbignZmlsZXNwZWMnLCdmb3JtX3N1Ym1pc3Npb25zLnR4dCcpLDI1LDEyOCkpKTsKICAgIGFycmF5X3B1c2goJGFkdixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9maWxlX3RlbXBsYXRlJyksCgkJCSAgYXJyYXkoJG1vZC0+Q3JlYXRlVGV4dEFyZWEoZmFsc2UsICRmb3JtRGVzY3JpcHRvciwKCQkJCQkJICAgICBodG1sc3BlY2lhbGNoYXJzKCR0aGlzLT5HZXRPcHRpb24oJ2ZpbGVfdGVtcGxhdGUnLCcnKSksJ29wdF9maWxlX3RlbXBsYXRlJywgJ21vZHVsZV9mYl9hcmVhX3Nob3J0JywgJycsJycsMCwwKSwkcmV0KSkpOwogICAgYXJyYXlfcHVzaCgkYWR2LGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2ZpbGVfaGVhZGVyJyksCgkJCSAgJG1vZC0+Q3JlYXRlVGV4dEFyZWEoZmFsc2UsICRmb3JtRGVzY3JpcHRvciwKCQkJCQkgICAgICAgaHRtbHNwZWNpYWxjaGFycygkdGhpcy0+R2V0T3B0aW9uKCdmaWxlX2hlYWRlcicsJycpKSwnb3B0X2ZpbGVfaGVhZGVyJywgJ21vZHVsZV9mYl9hcmVhX3Nob3J0JywgJycsJycsMCwwKSkpOwoKICAgIHJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLCdhZHYnPT4kYWR2KTsKICB9CgogIGZ1bmN0aW9uIFBvc3RQb3B1bGF0ZUFkbWluRm9ybSgmJG1haW5BcnJheSwgJiRhZHZBcnJheSkKICB7CiAgICAkdGhpcy0+SGlkZGVuRGlzcG9zaXRpb25GaWVsZHMoJG1haW5BcnJheSwgJGFkdkFycmF5KTsKICB9Cn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionUserTag.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkRpc3Bvc2l0aW9uVXNlclRhZyBleHRlbmRzICBmYkZpZWxkQmFzZSAKewoKICB2YXIgJHNhbXBsZVRlbXBsYXRlQ29kZTsKICB2YXIgJHNhbXBsZUhlYWRlcjsKCiAgZnVuY3Rpb24gZmJEaXNwb3NpdGlvblVzZXJUYWcoJiRmb3JtX3B0ciwgJiRwYXJhbXMpCiAgewogICAgJHRoaXMtPmZiRmllbGRCYXNlKCRmb3JtX3B0ciwgJHBhcmFtcyk7CiAgICAkbW9kID0gJiRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICR0aGlzLT5UeXBlID0gJ0Rpc3Bvc2l0aW9uVXNlclRhZyc7CiAgICAkdGhpcy0+SXNEaXNwb3NpdGlvbiA9IHRydWU7CiAgICAkdGhpcy0+Tm9uUmVxdWlyYWJsZUZpZWxkID0gdHJ1ZTsKICAgICR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gZmFsc2U7CiAgfQoKICBmdW5jdGlvbiBTdGF0dXNJbmZvKCkKICB7CiAgICAkbW9kPSYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICByZXR1cm4gJHRoaXMtPkdldE9wdGlvbigndWR0bmFtZScsJG1vZC0+TGFuZygndW5zcGVjaWZpZWQnKSk7CiAgfQoKICBmdW5jdGlvbiBEaXNwb3NlRm9ybSgkcmV0dXJuaWQpCiAgewogICAgJG1vZD0mJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgJG90aGVycyA9ICYkdGhpcy0+Zm9ybV9wdHItPkdldEZpZWxkcygpOwogICAgJHVuc3BlYyA9ICR0aGlzLT5mb3JtX3B0ci0+R2V0QXR0cigndW5zcGVjaWZpZWQnLCRtb2QtPkxhbmcoJ3Vuc3BlY2lmaWVkJykpOwogICAgJHBhcmFtcyA9IGFycmF5KCk7CiAgICBmb3IoJGk9MDskaTxjb3VudCgkb3RoZXJzKTskaSsrKQogICAgICB7CgkkcmVwbFZhbCA9ICcnOwoJaWYgKCRvdGhlcnNbJGldLT5EaXNwbGF5SW5TdWJtaXNzaW9uKCkpCgkgIHsKCSAgICAkcmVwbFZhbCA9ICRvdGhlcnNbJGldLT5HZXRIdW1hblJlYWRhYmxlVmFsdWUoKTsKCSAgICBpZiAoJHJlcGxWYWwgPT0gJycpCgkgICAgICB7CgkJJHJlcGxWYWwgPSAkdW5zcGVjOwoJICAgICAgfQoJICB9CgkkcGFyYW1zWyRvdGhlcnNbJGldLT5HZXROYW1lKCldID0gJHJlcGxWYWw7CiAgICAgIH0KCiAgICBnbG9iYWwgJGdDbXM7CiAgICAkdXNlcnRhZ29wcyA9JiAkZ0Ntcy0+R2V0VXNlclRhZ09wZXJhdGlvbnMoKTsKICAgICR1c2VydGFnb3BzLT5DYWxsVXNlclRhZyggJHRoaXMtPkdldE9wdGlvbigndWR0bmFtZScpLCAkcGFyYW1zKTsKCiAgICByZXR1cm4gYXJyYXkodHJ1ZSwnJyk7ICAgICAgICAKICB9CgogIGZ1bmN0aW9uIE1ha2VWYXIoJHN0cmluZykKICB7CiAgICAkbWF4dmFybGVuID0gMjQ7CiAgICAkc3RyaW5nID0gc3RydG9sb3dlcihwcmVnX3JlcGxhY2UoJy9ccysvJywnXycsJHN0cmluZykpOwogICAgJHN0cmluZyA9IHN0cnRvbG93ZXIocHJlZ19yZXBsYWNlKCcvXFcvJywnXycsJHN0cmluZykpOwogICAgaWYgKHN0cmxlbigkc3RyaW5nKSA+ICRtYXh2YXJsZW4pCiAgICAgIHsKCSRzdHJpbmcgPSBzdWJzdHIoJHN0cmluZywwLCRtYXh2YXJsZW4pOwoJJHBvcyA9IHN0cnJwb3MoJHN0cmluZywnXycpOwoJaWYgKCRwb3MgIT09IGZhbHNlKQoJICB7CgkgICAgJHN0cmluZyA9IHN1YnN0cigkc3RyaW5nLDAsJHBvcyk7CgkgIH0KICAgICAgfQogICAgcmV0dXJuICRzdHJpbmc7CiAgfQoKCiAgZnVuY3Rpb24gY3JlYXRlU2FtcGxlSGVhZGVyKCkKICB7CiAgICAkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICRvdGhlcnMgPSAmJHRoaXMtPmZvcm1fcHRyLT5HZXRGaWVsZHMoKTsKICAgICRmaWVsZHMgPSBhcnJheSgpOwogICAgZm9yKCRpPTA7JGk8Y291bnQoJG90aGVycyk7JGkrKykKICAgICAgewoJaWYgKCRvdGhlcnNbJGldLT5EaXNwbGF5SW5TdWJtaXNzaW9uKCkpCgkgIHsKCSAgICBhcnJheV9wdXNoKCRmaWVsZHMsJG90aGVyc1skaV0tPkdldE5hbWUoKSk7CgkgIH0KICAgICAgfQogICAgcmV0dXJuIGltcGxvZGUoJ3skVEFCfScsJGZpZWxkcyk7CiAgfQoKCiAgZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQogIHsKICAgICRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgJG1haW4gPSBhcnJheSgpOwogICAgJGFkdiA9IGFycmF5KCk7CgogICAgZ2xvYmFsICRnQ21zOwogICAgJHVzZXJ0YWdvcHMgPSYgJGdDbXMtPkdldFVzZXJUYWdPcGVyYXRpb25zKCk7CiAgICAkdXNlcnRhZ3MgPSAkdXNlcnRhZ29wcy0+TGlzdFVzZXJUYWdzKCk7CiAgICAkdXNlcnRhZ2xpc3QgPSBhcnJheSgpOwogICAgZm9yZWFjaCggJHVzZXJ0YWdzIGFzICRrZXkgPT4gJHZhbHVlICkKICAgICAgewoJJHVzZXJ0YWdsaXN0WyR2YWx1ZV0gPSAka2V5OwogICAgICB9CiAgICAkbWFpbltdID0gYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfdWR0X25hbWUnKSwKCQkgICAgJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkZm9ybURlc2NyaXB0b3IsCgkJCQkJICAgICAgJ29wdF91ZHRuYW1lJywkdXNlcnRhZ2xpc3QsLTEsCgkJCQkJICAgICAgJHRoaXMtPkdldE9wdGlvbigndWR0bmFtZScpKSk7CgogICAgcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwogIH0KCiAgZnVuY3Rpb24gUG9zdFBvcHVsYXRlQWRtaW5Gb3JtKCYkbWFpbkFycmF5LCAmJGFkdkFycmF5KQogIHsKICAgICR0aGlzLT5IaWRkZW5EaXNwb3NpdGlvbkZpZWxkcygkbWFpbkFycmF5LCAkYWR2QXJyYXkpOwogIH0KfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/FieldBase.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkZpZWxkQmFzZSB7CgogIHZhciAkSWQ9LTE7CiAgdmFyICRGb3JtSWQ7CiAgdmFyICROYW1lOwogIHZhciAkVHlwZTsKICB2YXIgJFJlcXVpcmVkPS0xOwogIHZhciAkT3JkZXJCeTsKICB2YXIgJEhpZGVMYWJlbD0tMTsKICB2YXIgJEhhc0xhYmVsPTE7CiAgICAKICB2YXIgJFZhbGlkYXRpb25UeXBlczsKICB2YXIgJFZhbGlkYXRpb25UeXBlOwoKICB2YXIgJERpc3BsYXlJbkZvcm07CiAgdmFyICREaXNwbGF5SW5TdWJtaXNzaW9uOwogIHZhciAkRGlzcG9zaXRpb25QZXJtaXR0ZWQ7CiAgdmFyICROb25SZXF1aXJhYmxlRmllbGQ7CiAgdmFyICRIYXNBZGRPcDsKICB2YXIgJEhhc0RlbGV0ZU9wOwogIHZhciAkbW9kaWZpZXNPdGhlckZpZWxkczsKICB2YXIgJGhhc011bHRpcGxlRm9ybUNvbXBvbmVudHM7CgogIHZhciAkVmFsdWU9ZmFsc2U7CiAgdmFyICRmb3JtX3B0cjsKICB2YXIgJE9wdGlvbnM7CiAgdmFyICRsb2FkZWQ7CgogIGZ1bmN0aW9uIGZiRmllbGRCYXNlKCYkZm9ybV9wdHIsICYkcGFyYW1zKQogIHsKCiAgICAkdGhpcy0+Zm9ybV9wdHIgPSAmJGZvcm1fcHRyOwogICAgJG1vZCA9ICYkZm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkdGhpcy0+T3B0aW9ucyA9IGFycmF5KCk7CiAgICAkdGhpcy0+RGlzcGxheUluRm9ybSA9IHRydWU7CiAgICAkdGhpcy0+RGlzcGxheUluU3VibWlzc2lvbiA9IHRydWU7CiAgICAkdGhpcy0+SXNEaXNwb3NpdGlvbiA9IGZhbHNlOwogICAgJHRoaXMtPlZhbGlkYXRpb25UeXBlcyA9IGFycmF5KCRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25fbm9uZScpPT4nbm9uZScpOwogICAgJHRoaXMtPmxvYWRlZCA9IGZhbHNlOwogICAgJHRoaXMtPk5vblJlcXVpcmFibGVGaWVsZCA9IGZhbHNlOwogICAgJHRoaXMtPkhhc0FkZE9wID0gZmFsc2U7CiAgICAkdGhpcy0+SGFzRGVsZXRlT3AgPSBmYWxzZTsKICAgICR0aGlzLT5tb2RpZmllc090aGVyRmllbGRzID0gZmFsc2U7CiAgICAkdGhpcy0+aGFzTXVsdGlwbGVGb3JtQ29tcG9uZW50cyA9IGZhbHNlOwogICAgJHRoaXMtPkRpc3Bvc2l0aW9uUGVybWl0dGVkID0gdHJ1ZTsKCiAgICBpZiAoaXNzZXQoJHBhcmFtc1snZm9ybV9pZCddKSkKICAgICAgewoJJHRoaXMtPkZvcm1JZCA9ICRwYXJhbXNbJ2Zvcm1faWQnXTsKICAgICAgfQogICAgaWYgKGlzc2V0KCRwYXJhbXNbJ2ZpZWxkX2lkJ10pKQogICAgICB7CgkkdGhpcy0+SWQgPSAkcGFyYW1zWydmaWVsZF9pZCddOwogICAgICB9CiAgICBpZiAoaXNzZXQoJHBhcmFtc1snZmllbGRfbmFtZSddKSkKICAgICAgewoJJHRoaXMtPk5hbWUgPSAkcGFyYW1zWydmaWVsZF9uYW1lJ107CiAgICAgIH0KICAgIGlmIChpc3NldCgkcGFyYW1zWydmaWVsZF90eXBlJ10pKQogICAgICB7CgkkdGhpcy0+VHlwZSA9ICRwYXJhbXNbJ2ZpZWxkX3R5cGUnXTsKICAgICAgfQogICAgZWxzZQogICAgICB7CgkkdGhpcy0+VHlwZSA9ICcnOwogICAgICB9CiAgICBpZiAoaXNzZXQoJHBhcmFtc1snb3JkZXJfYnknXSkpCiAgICAgIHsKCSR0aGlzLT5PcmRlckJ5ID0gJHBhcmFtc1snb3JkZXJfYnknXTsKICAgICAgfQogICAgaWYgKGlzc2V0KCRwYXJhbXNbJ2hpZGVfbGFiZWwnXSkpCiAgICAgIHsKCSR0aGlzLT5IaWRlTGFiZWwgPSAkcGFyYW1zWydoaWRlX2xhYmVsJ107CiAgICAgIH0KICAgIGVsc2UgaWYgKGlzc2V0KCRwYXJhbXNbJ3NldF9mcm9tX2Zvcm0nXSkpCiAgICAgIHsKCSR0aGlzLT5IaWRlTGFiZWwgPSAwOwogICAgICB9CiAgICBpZiAoaXNzZXQoJHBhcmFtc1sncmVxdWlyZWQnXSkpCiAgICAgIHsKCSR0aGlzLT5SZXF1aXJlZCA9ICRwYXJhbXNbJ3JlcXVpcmVkJ107CiAgICAgIH0KICAgIGVsc2UgaWYgKGlzc2V0KCRwYXJhbXNbJ3NldF9mcm9tX2Zvcm0nXSkpCiAgICAgIHsKCSR0aGlzLT5SZXF1aXJlZCA9IDA7CiAgICAgIH0KICAgIGlmIChpc3NldCgkcGFyYW1zWyd2YWxpZGF0aW9uX3R5cGUnXSkpCiAgICAgIHsKCSR0aGlzLT5WYWxpZGF0aW9uVHlwZSA9ICRwYXJhbXNbJ3ZhbGlkYXRpb25fdHlwZSddOwogICAgICB9CgogICAgZm9yZWFjaCAoJHBhcmFtcyBhcyAkdGhpc1BhcmFtS2V5PT4kdGhpc1BhcmFtVmFsKQogICAgICB7CglpZiAoc3Vic3RyKCR0aGlzUGFyYW1LZXksMCw0KSA9PSAnb3B0XycpCgkgIHsKCSAgICAkdGhpc1BhcmFtS2V5ID0gc3Vic3RyKCR0aGlzUGFyYW1LZXksNCk7CgkgICAgJHRoaXMtPk9wdGlvbnNbJHRoaXNQYXJhbUtleV0gPSAkdGhpc1BhcmFtVmFsOwoJICB9CiAgICAgIH0KCiAgICBpZiAoaXNzZXQoJHBhcmFtc1snXycuJHRoaXMtPklkXSkgJiYKCShpc19hcnJheSgkcGFyYW1zWydfJy4kdGhpcy0+SWRdKSB8fAoJIHN0cmxlbigkcGFyYW1zWydfJy4kdGhpcy0+SWRdKSA+IDApKQogICAgICB7CgkkdGhpcy0+U2V0VmFsdWUoJHBhcmFtc1snXycuJHRoaXMtPklkXSk7CiAgICAgIH0KICB9CgogIGZ1bmN0aW9uIEhhc011bHRpcGxlRm9ybUNvbXBvbmVudHMoKQogIHsKICAgIHJldHVybiAkdGhpcy0+aGFzTXVsdGlwbGVGb3JtQ29tcG9uZW50czsKICB9CgogIGZ1bmN0aW9uIEdldEZpZWxkSW5wdXRJZCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCiAgewogICAgcmV0dXJuICRpZC4nXycuJHRoaXMtPklkOwogIH0KCiAgZnVuY3Rpb24gTW9kaWZpZXNPdGhlckZpZWxkcygpCiAgewogICAgcmV0dXJuICR0aGlzLT5tb2RpZmllc090aGVyRmllbGRzOwogIH0KCiAgLy8gbWVjaGFuaXNtIGZvciBmaWVsZHMvZGlzcG9zaXRpb25zIHRvIGluaGliaXQgb3RoZXIgZGlzcG9zaXRpb25zCiAgZnVuY3Rpb24gRGlzcG9zaXRpb25Jc1Blcm1pdHRlZCgpCiAgewogICAgcmV0dXJuICR0aGlzLT5EaXNwb3NpdGlvblBlcm1pdHRlZDsKICB9CgogIC8vIG1lY2hhbmlzbSBmb3IgZmllbGRzL2Rpc3Bvc2l0aW9ucyB0byBpbmhpYml0IG90aGVyIGRpc3Bvc2l0aW9ucwogIGZ1bmN0aW9uIFNldERpc3Bvc2l0aW9uUGVybWlzc2lvbigkcGVybWl0dGVkPXRydWUpCiAgewogICAgJHRoaXMtPkRpc3Bvc2l0aW9uUGVybWl0dGVkID0gJHBlcm1pdHRlZDsKICB9CgoKICAvLyBvdmVycmlkZSBtZSBpZiB5b3UncmUganVzdCB0d2Vha2luZyBvdGhlciBmaWVsZHMgYmVmb3JlIGRpc3Bvc2l0aW9uCiAgZnVuY3Rpb24gTW9kaWZ5T3RoZXJGaWVsZHMoKQogIHsKICB9CgogIC8vIG92ZXJyaWRlIG1lIHdpdGggYSBmb3JtIGlucHV0IHN0cmluZyBvciBzb21ldGhpbmcKICAvLyB0aGlzIHNob3VsZCBqdXN0IGJlIHRoZSBpbnB1dCBwb3J0aW9uLiBUaGUgdGl0bGUKICAvLyBhbmQgYW55IHdyYXBwaW5nIGRpdnMgd2lsbCBiZSBwcm92aWRlZCBieSB0aGUgZm9ybQogIC8vIHJlbmRlcmVyLgogIGZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQogIHsKICAgIHJldHVybiAnJzsKICB9CgkKICAvLyBvdmVycmlkZSBtZSB3aXRoIHNvbWV0aGluZyB0byBzaG93IHVzZXJzCiAgZnVuY3Rpb24gU3RhdHVzSW5mbygpCiAgewogICAgcmV0dXJuICcnOwogIH0KCiAgZnVuY3Rpb24gRGVidWdEaXNwbGF5KCkKICB7CiAgICAkdG1wID0gJHRoaXMtPmZvcm1fcHRyOwogICAgJHRoaXMtPmZvcm1fcHRyID0gJ1tmcm1wdHI6ICcuJHRtcC0+R2V0SWQoKS4nXSc7CiAgICBkZWJ1Z19kaXNwbGF5KCR0aGlzKTsKICAgICR0aGlzLT5mb3JtX3B0ciA9ICR0bXA7CiAgfQoKICBmdW5jdGlvbiBHZXRJZCgpCiAgewogICAgcmV0dXJuICR0aGlzLT5JZDsKICB9CgogIGZ1bmN0aW9uIEhhc0FkZE9wKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPkhhc0FkZE9wOwogIH0KCiAgLy8gb3ZlcnJpZGUgbWUsIHdoZW4gbmVjZXNzYXJ5IG9yIHVzZWZ1bAogIGZ1bmN0aW9uIERvT3B0aW9uQWRkKCYkcGFyYW1zKQogIHsKICB9CgogIC8vIG92ZXJyaWRlIG1lCiAgZnVuY3Rpb24gR2V0T3B0aW9uQWRkQnV0dG9uKCkKICB7CiAgICAkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgcmV0dXJuICRtb2QtPkxhbmcoJ2FkZF9vcHRpb25zJyk7CiAgfQoJCiAgZnVuY3Rpb24gSGFzRGVsZXRlT3AoKQogIHsKICAgIHJldHVybiAkdGhpcy0+SGFzRGVsZXRlT3A7CiAgfQoKICAvLyBvdmVycmlkZSBtZSwgd2hlbiBuZWNlc3Nhcnkgb3IgdXNlZnVsCiAgZnVuY3Rpb24gRG9PcHRpb25EZWxldGUoJiRwYXJhbXMpCiAgewogIH0KCiAgLy8gb3ZlcnJpZGUgbWUKICBmdW5jdGlvbiBHZXRPcHRpb25EZWxldGVCdXR0b24oKQogIHsKICAgICRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICByZXR1cm4gJG1vZC0+TGFuZygnZGVsZXRlX29wdGlvbnMnKTsKICB9CgogIGZ1bmN0aW9uIFNldE5hbWUoJG5hbWUpCiAgewogIAkkdGhpcy0+TmFtZSA9ICRuYW1lOwogIH0KICAKICBmdW5jdGlvbiBHZXROYW1lKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPk5hbWU7CiAgfQoKICBmdW5jdGlvbiBHZXRPcmRlcigpCiAgewogICAgcmV0dXJuICR0aGlzLT5PcmRlckJ5OwogIH0KCQogIGZ1bmN0aW9uIFNldE9yZGVyKCRvcmRlcikKICB7CiAgICAkdGhpcy0+T3JkZXJCeSA9ICRvcmRlcjsKICB9CgkKICBmdW5jdGlvbiBHZXRGaWVsZFR5cGUoKQogIHsKICAgIHJldHVybiAkdGhpcy0+VHlwZTsKICB9CgogIGZ1bmN0aW9uIFNldEZpZWxkVHlwZSgkdHlwZSkKICB7CiAgICByZXR1cm4gJHRoaXMtPlR5cGUgPSAkdHlwZTsKICB9CgoJCiAgZnVuY3Rpb24gSXNEaXNwb3NpdGlvbigpCiAgewogICAgcmV0dXJuICR0aGlzLT5Jc0Rpc3Bvc2l0aW9uOwogIH0KCiAgZnVuY3Rpb24gSGFzTGFiZWwoKQogIHsKICAgIHJldHVybiAkdGhpcy0+SGFzTGFiZWw7CiAgfQoKICBmdW5jdGlvbiBTZXRIaWRlTGFiZWwoJGhpZGUpCiAgewogIAkkdGhpcy0+SGlkZUxhYmVsID0gJGhpZGU/MTowOwogIH0KICAJCiAgZnVuY3Rpb24gSGlkZUxhYmVsKCkKICB7CiAgICByZXR1cm4gKCR0aGlzLT5IaWRlTGFiZWw9PTE/dHJ1ZTpmYWxzZSk7CiAgfQoKICBmdW5jdGlvbiBEaXNwbGF5SW5Gb3JtKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPkRpc3BsYXlJbkZvcm07CiAgfQoKICBmdW5jdGlvbiBEaXNwbGF5SW5TdWJtaXNzaW9uKCkKICB7CiAgICByZXR1cm4gKCR0aGlzLT5EaXNwbGF5SW5Gb3JtICYmICR0aGlzLT5EaXNwbGF5SW5TdWJtaXNzaW9uKTsKICB9CgoJCiAgZnVuY3Rpb24gSXNOb25SZXF1aXJhYmxlRmllbGQoKQogIHsKICAgIHJldHVybiAkdGhpcy0+Tm9uUmVxdWlyYWJsZUZpZWxkOwogIH0KCiAgZnVuY3Rpb24gSXNSZXF1aXJlZCgpCiAgewogICAgcmV0dXJuICgkdGhpcy0+UmVxdWlyZWQgPT0gMT90cnVlOmZhbHNlKTsKICB9CgogIGZ1bmN0aW9uIFNldFJlcXVpcmVkKCRyZXF1aXJlZCkKICB7CiAgICAkdGhpcy0+UmVxdWlyZWQgPSAoJHJlcXVpcmVkPzE6MCk7CiAgfQoJCiAgZnVuY3Rpb24gR2V0VmFsaWRhdGlvblR5cGVzKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPlZhbGlkYXRpb25UeXBlczsKICB9CgkKICBmdW5jdGlvbiBHZXRWYWxpZGF0aW9uVHlwZSgpCiAgewogICAgcmV0dXJuICR0aGlzLT5WYWxpZGF0aW9uVHlwZTsKICB9CgogIGZ1bmN0aW9uIFNldFZhbGlkYXRpb25UeXBlKCR0aGVUeXBlKQogIHsKICAgICR0aGlzLT5WYWxpZGF0aW9uVHlwZSA9ICR0aGVUeXBlOwogIH0KCgogIC8vIG92ZXJyaWRlIG1lIHdpdGggYSBkaXNwbGF5YWJsZSB0eXBlCiAgZnVuY3Rpb24gR2V0RGlzcGxheVR5cGUoKQogIHsKICAgIHJldHVybiAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHItPkxhbmcoJ2ZpZWxkX3R5cGVfJy4kdGhpcy0+VHlwZSk7CiAgfQoKCiAgZnVuY3Rpb24gUHJlUG9wdWxhdGVCYXNlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvciwkZGlzcG9zZU9ubHk9MCkKICB7CiAgICAkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgaWYgKCR0aGlzLT5UeXBlID09ICcnKQogICAgICB7CglpZiAoJGRpc3Bvc2VPbmx5ID09IDEpCgkgIHsKCSAgICAkdHlwZUlucHV0ID0gJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkZm9ybURlc2NyaXB0b3IsICdmaWVsZF90eXBlJyxhcnJheV9tZXJnZShhcnJheSgkbW9kLT5MYW5nKCdzZWxlY3RfdHlwZScpPT4nJyksJG1vZC0+ZGlzcF9maWVsZF90eXBlcyksIC0xLCcnLCAnb25jaGFuZ2U9InRoaXMuZm9ybS5zdWJtaXQoKSInKTsKCSAgfQoJZWxzZQoJICB7CgkgICAgJHR5cGVJbnB1dCA9ICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGZvcm1EZXNjcmlwdG9yLCAnZmllbGRfdHlwZScsYXJyYXlfbWVyZ2UoYXJyYXkoJG1vZC0+TGFuZygnc2VsZWN0X3R5cGUnKT0+JycpLCRtb2QtPmZpZWxkX3R5cGVzKSwgLTEsJycsICdvbmNoYW5nZT0idGhpcy5mb3JtLnN1Ym1pdCgpIicpOwoJICB9CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJJHR5cGVJbnB1dCA9ICR0aGlzLT5HZXREaXNwbGF5VHlwZSgpLiRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRmb3JtRGVzY3JpcHRvciwgJ2ZpZWxkX3R5cGUnLCAkdGhpcy0+VHlwZSk7CiAgICAgIH0KCQkKICAgICRtYWluID0gYXJyYXkoCgkJICBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9uYW1lJyksCgkJCSRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmaWVsZF9uYW1lJywgJHRoaXMtPkdldE5hbWUoKSwgNTApKSwKCQkgIGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX3R5cGUnKSwkdHlwZUlucHV0KSwKCQkgICk7CgkJCiAgICAkYWR2ID0gYXJyYXkoKTsKCiAgICAvLyBpZiB3ZSBrbm93IG91ciB0eXBlLCB3ZSBjYW4gbG9hZCB1cCB3aXRoIGFkZGl0aW9uYWwgb3B0aW9ucwogICAgaWYgKCR0aGlzLT5UeXBlICE9ICcnKQogICAgICB7CgkJCQoJLy8gdmFsaWRhdGlvbiB0eXBlcz8KCWlmIChjb3VudCgkdGhpcy0+R2V0VmFsaWRhdGlvblR5cGVzKCkpID4gMSkKCSAgewoJICAgICR2YWxpZElucHV0ID0gJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkZm9ybURlc2NyaXB0b3IsICd2YWxpZGF0aW9uX3R5cGUnLCAkdGhpcy0+R2V0VmFsaWRhdGlvblR5cGVzKCksIC0xLCAkdGhpcy0+R2V0VmFsaWRhdGlvblR5cGUoKSk7CgkgIH0KCWVsc2UKCSAgewoJICAgICR2YWxpZElucHV0ID0gJG1vZC0+TGFuZygnYXV0b21hdGljJyk7CgkgIH0KCQkJCQoJLy8gcmVxdWlyYWJsZT8KCWlmICghJHRoaXMtPklzRGlzcG9zaXRpb24oKSAmJiAhJHRoaXMtPklzTm9uUmVxdWlyYWJsZUZpZWxkKCkpCgkgIHsKCSAgICBhcnJheV9wdXNoKCRtYWluLCBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9yZXF1aXJlZCcpLCRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAncmVxdWlyZWQnLCAxLCAkdGhpcy0+SXNSZXF1aXJlZCgpKS4kbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9yZXF1aXJlZF9sb25nJykpKTsKCSAgfQoJCQkJCglhcnJheV9wdXNoKCRtYWluLCBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF92YWxpZGF0aW9uJyksJHZhbGlkSW5wdXQpKTsKCglpZiggJHRoaXMtPkhhc0xhYmVsID09IDEgKQoJICB7CgkgICAgYXJyYXlfcHVzaCgkYWR2LCBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9oaWRlX2xhYmVsJyksJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdoaWRlX2xhYmVsJywgMSwgJHRoaXMtPkhpZGVMYWJlbCgpKS4kbW9kLT5MYW5nKCd0aXRsZV9oaWRlX2xhYmVsX2xvbmcnKSkpOwoJICB9CgoJaWYgKCR0aGlzLT5EaXNwbGF5SW5Gb3JtKCkpCgkgIHsKCSAgICBhcnJheV9wdXNoKCRhZHYsYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZmllbGRfY3NzX2NsYXNzJyksJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ29wdF9jc3NfY2xhc3MnLCAkdGhpcy0+R2V0T3B0aW9uKCdjc3NfY2xhc3MnKSwgNTApKSk7CgkgIH0KCQkJCiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJLy8gbm8gYWR2YW5jZWQgb3B0aW9ucyB1bnRpbCB3ZSBrbm93IG91ciB0eXBlCglhcnJheV9wdXNoKCRhZHYsYXJyYXkoJG1vZC0+TGFuZygndGFiX2FkdmFuY2VkJyksJG1vZC0+TGFuZygnbm90aWNlX3NlbGVjdF90eXBlJykpKTsKICAgICAgfQoJCQkJCiAgICByZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwgJ2Fkdic9PiRhZHYpOwogIH0KCQoJCiAgLy8gb3ZlcnJpZGUgbWUuCiAgLy8gSSByZXR1cm4gYW4gdWdseSBkYXRhIHN0cnVjdHVyZToKICAvLyBJdCdzIGFuIGFzc29jaWF0aXZlIGFycmF5IHdpdGggdHdvIGl0ZW1zLCAnbWFpbicgYW5kICdhZHYnIChmb3IgdGhlCiAgLy8gbWFpbiBhbmQgYWR2YW5jZWQgc2V0dGluZyB0YWJzKS4KICAvLyBFYWNoIG9mIHRoZXNlIGlzIGFuIGFzc29jaWF0aXZlIGFycmF5IG9mIFRpdGxlIC8gSW5wdXQgdmFsdWVzLgogIC8vIFRoZSBUaXRsZSB3aWxsIGJlIGRpc3BsYXllZCBpZiBpdCBoYXMgYSBsZW5ndGg7CiAgLy8gdGhlICJJbnB1dCIgc2hvdWxkIGJlIGEgRm9ybSBpbnB1dCBmb3IgdGhhdCBmaWVsZCBhdHRyaWJ1dGUvb3B0aW9uCiAgZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQogIHsKICAgIHJldHVybiBhcnJheSgpOwogIH0KCiAgLy8gb3ZlcnJpZGUgbWUuCiAgLy8gVGhpcyBnaXZlcyB5b3UgYSBjaGFuY2UgdG8gYWx0ZXIgdGhlIGFycmF5IGNvbnRlbnRzIGJlZm9yZQogIC8vIHRoZXkgZ2V0IHJlbmRlcmVkLiAKICBmdW5jdGlvbiBQb3N0UG9wdWxhdGVBZG1pbkZvcm0oJiRtYWluQXJyYXksICYkYWR2QXJyYXkpCiAgewogIH0KCgogIC8vIG92ZXJyaWRlIG1lIGFzIG5lY2Vzc2FyeQogIGZ1bmN0aW9uIFBvc3RBZG1pblN1Ym1pdENsZWFudXAoKQogIHsKICB9CgogIC8vIGNsZWFyIGZpZWxkcyB1bnVzZWQgYnkgaW52aXNpYmxlIGRpc3Bvc2l0aW9ucwogIGZ1bmN0aW9uIEhpZGRlbkRpc3Bvc2l0aW9uRmllbGRzKCYkbWFpbkFycmF5LCAmJGFkdkFycmF5KQogIHsKICAgICRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgLy8gcmVtb3ZlIHRoZSAicmVxdWlyZWQiIGZpZWxkCiAgICAkcmVxSW5kZXggPSAtMTsKICAgIGZvciAoJGk9MDskaTxjb3VudCgkbWFpbkFycmF5KTskaSsrKQogICAgICB7CglpZiAoJG1haW5BcnJheVskaV0tPnRpdGxlID09ICRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkJykpCgkgIHsKCSAgICAkcmVxSW5kZXggPSAkaTsKCSAgfQogICAgICB9CiAgICBpZiAoJHJlcUluZGV4ICE9IC0xKQogICAgICB7CglhcnJheV9zcGxpY2UoJG1haW5BcnJheSwgJHJlcUluZGV4LDEpOwogICAgICB9CiAgICAvLyByZW1vdmUgdGhlICJoaWRlIG5hbWUiIGZpZWxkCiAgICAkaGlkZUluZGV4ID0gLTE7CiAgICBmb3IgKCRpPTA7JGk8Y291bnQoJGFkdkFycmF5KTskaSsrKQogICAgICB7CglpZiAoJGFkdkFycmF5WyRpXS0+dGl0bGUgPT0gJG1vZC0+TGFuZygndGl0bGVfaGlkZV9sYWJlbCcpKQoJICB7CgkgICAgJGhpZGVJbmRleCA9ICRpOwoJICB9CiAgICAgIH0KICAgIGlmICgkaGlkZUluZGV4ICE9IC0xKQogICAgICB7CglhcnJheV9zcGxpY2UoJGFkdkFycmF5LCAkaGlkZUluZGV4LDEpOwogICAgICB9CiAgICAvLyByZW1vdmUgdGhlICJjc3MiIGZpZWxkCiAgICAkaGlkZUluZGV4ID0gLTE7CiAgICBmb3IgKCRpPTA7JGk8Y291bnQoJGFkdkFycmF5KTskaSsrKQogICAgICB7CglpZiAoJGFkdkFycmF5WyRpXS0+dGl0bGUgPT0gJG1vZC0+TGFuZygndGl0bGVfZmllbGRfY3NzX2NsYXNzJykpCgkgIHsKCSAgICAkaGlkZUluZGV4ID0gJGk7CgkgIH0KICAgICAgfQogICAgaWYgKCRoaWRlSW5kZXggIT0gLTEpCiAgICAgIHsKCWFycmF5X3NwbGljZSgkYWR2QXJyYXksICRoaWRlSW5kZXgsMSk7CiAgICAgIH0KICAgIGlmIChjb3VudCgkYWR2QXJyYXkpID09IDApCiAgICAgIHsKCSRhZHZBcnJheVswXS0+dGl0bGUgPSAkbW9kLT5MYW5nKCd0YWJfYWR2YW5jZWQnKTsKCSRhZHZBcnJheVswXS0+aW5wdXQgPSAkbW9kLT5MYW5nKCd0aXRsZV9ub19hZHZhbmNlZF9vcHRpb25zJyk7CiAgICAgIH0KICB9CgkKCiAgLy8gb3ZlcnJpZGUgbWUuIFJldHVybnMgYW4gYXJyYXk6IGZpcnN0IHZhbHVlIGlzIGEgdHJ1ZSBvciBmYWxzZSAod2hldGhlciBvciBub3QKICAvLyB0aGUgdmFsdWUgaXMgdmFsaWQpLCB0aGUgc2Vjb25kIGlzIGEgbWVzc2FnZQogIGZ1bmN0aW9uIFZhbGlkYXRlKCkKICB7CiAgICByZXR1cm4gYXJyYXkodHJ1ZSwnJyk7CiAgfQoKCiAgZnVuY3Rpb24gR2V0SHVtYW5SZWFkYWJsZVZhbHVlKCkKICB7CiAgICAkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgIGlmICgkdGhpcy0+VmFsdWUgIT09IGZhbHNlKQogICAgICB7CglyZXR1cm4gJHRoaXMtPlZhbHVlOwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCXJldHVybiAkdGhpcy0+Zm9ybV9wdHItPkdldEF0dHIoJ3Vuc3BlY2lmaWVkJywkbW9kLT5MYW5nKCd1bnNwZWNpZmllZCcpKTsKICAgICAgfQogIH0KCgogIC8vIG92ZXJyaWRlIHRoaXMgaWYgeW91IGhhdmUgc29tZSB1bnVzdWFsIGZvcm1hdCBmb3IgdmFsdWVzLAogIC8vIGVzcGVjaWFsbHkgaWYgImZhbHNlIiBpcyBhIHZhbGlkIHZhbHVlIQogIGZ1bmN0aW9uIEhhc1ZhbHVlKCkKICB7CiAgICByZXR1cm4gKCR0aGlzLT5WYWx1ZSAhPT0gZmFsc2UpOwogIH0KCQogIC8vIHByb2JhYmx5IGRvbid0IG5lZWQgdG8gb3ZlcnJpZGUgdGhpcwogIGZ1bmN0aW9uIEdldFZhbHVlKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPlZhbHVlOwogIH0KCiAgLy8gb3ZlcnJpZGUgbWU/IFJldHVybnMgdGhlIChwb3NzaWJseSBjb252ZXJ0ZWQpIHZhbHVlIG9mIHRoZSBmaWVsZC4KICBmdW5jdGlvbiBHZXRBcnJheVZhbHVlKCRpbmRleCkKICB7CiAgICBpZiAoJHRoaXMtPlZhbHVlICE9PSBmYWxzZSkKICAgICAgewoJaWYgKGlzX2FycmF5KCR0aGlzLT5WYWx1ZSkpCgkgIHsKCSAgICBpZiAoaXNzZXQoJHRoaXMtPlZhbHVlWyRpbmRleF0pKQoJICAgICAgewoJCXJldHVybiAkdGhpcy0+VmFsdWVbJGluZGV4XTsKCSAgICAgIH0KCSAgfQoJZWxzZWlmICgkaW5kZXggPT0gMCkKCSAgewoJICAgIHJldHVybiAkdGhpcy0+VmFsdWU7CgkgIH0KICAgICAgfQogICAgcmV0dXJuIGZhbHNlOwogIH0KCiAgLy8gb3ZlcnJpZGUgbWU/IFJldHVybnMgdHJ1ZSBpZiB0aGUgdmFsdWUgaXMgY29udGFpbmVkIGluIHRoZSBWYWx1ZSBhcnJheQogIGZ1bmN0aW9uIEZpbmRBcnJheVZhbHVlKCR2YWx1ZSkKICB7CiAgICBpZiAoJHRoaXMtPlZhbHVlICE9PSBmYWxzZSkKICAgICAgewoJaWYgKGlzX2FycmF5KCR0aGlzLT5WYWx1ZSkpCgkgIHsKCSAgICByZXR1cm4gYXJyYXlfc2VhcmNoKCR2YWx1ZSwkdGhpcy0+VmFsdWUpOwoJICB9CgllbHNlaWYgKCR0aGlzLT5WYWx1ZSA9PSAkdmFsdWUpCgkgIHsKCSAgICByZXR1cm4gdHJ1ZTsKCSAgfQogICAgICB9CiAgICByZXR1cm4gZmFsc2U7CiAgfQoKICBmdW5jdGlvbiBSZXNldFZhbHVlKCkKICB7CiAgICAkdGhpcy0+VmFsdWUgPSBmYWxzZTsKICB9CgogIC8vIG92ZXJyaWRlIG1lLCBpZiBuZWNlc3NhcnkgdG8gY29udmVydCB0eXBlIG9yIHNvbWV0aGluZy4KICBmdW5jdGlvbiBTZXRWYWx1ZSgkdmFsU3RyKQogIHsKICAgIGlmICgkdGhpcy0+VmFsdWUgPT09IGZhbHNlKQogICAgICB7CgkkdGhpcy0+VmFsdWUgPSAkdmFsU3RyOwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCWlmICghIGlzX2FycmF5KCR0aGlzLT5WYWx1ZSkpCgkgIHsKCSAgICAkdGhpcy0+VmFsdWUgPSBhcnJheSgkdGhpcy0+VmFsdWUpOwoJICB9CglhcnJheV9wdXNoKCR0aGlzLT5WYWx1ZSwkdmFsU3RyKTsKICAgICAgfQogIH0KCiAgZnVuY3Rpb24gUmVxdWlyZXNWYWxpZGF0aW9uKCkKICB7CiAgICBpZiAoJHRoaXMtPlZhbGlkYXRpb25UeXBlID09ICdub25lJykKICAgICAgewoJcmV0dXJuIGZhbHNlOwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCXJldHVybiB0cnVlOwogICAgICB9CiAgfQoKICBmdW5jdGlvbiBEb2VzRmllbGROYW1lRXhpc3QoKQogIHsKICAgICRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJCiAgICAvLyBmaWVsZCBuYW1lIGluIHVzZT8/CiAgICBpZiAoJHRoaXMtPmZvcm1fcHRyLT5IYXNGaWVsZE5hbWVkKCR0aGlzLT5HZXROYW1lKCkpKQogICAgICB7CglyZXR1cm4gYXJyYXkoZmFsc2UsJG1vZC0+TGFuZygnZmllbGRfbmFtZV9pbl91c2UnLCR0aGlzLT5HZXROYW1lKCkpLic8YnIgLz4nKTsKICAgICAgfQoJCQogICAgcmV0dXJuIGFycmF5KHRydWUsJycpOwogIH0KCiAgLy8gb3ZlcnJpZGUgbWUsIGlmIG5lZWRlZC4gUmV0dXJucyBhbiBhcnJheTogZmlyc3QgdmFsdWUgaXMgYSB0cnVlIG9yCiAgLy8gZmFsc2UgKHdoZXRoZXIgb3Igbm90IHRoZSB2YWx1ZSBpcyB2YWxpZCksIHRoZSBzZWNvbmQgaXMgYSBtZXNzYWdlCiAgZnVuY3Rpb24gQWRtaW5WYWxpZGF0ZSgpCiAgewogICAgcmV0dXJuICR0aGlzLT5Eb2VzRmllbGROYW1lRXhpc3QoKTsKICB9CgoKICAvLyBvdmVycmlkZSBtZSBpZiB5b3UncmUgYSBGb3JtIERpc3Bvc2l0aW9uIHBzZXVkby1maWVsZC4KICAvLyBUaGlzIG1ldGhvZCBjYW4gZG8ganVzdAogIC8vIGFib3V0IGFueXRoaW5nIHlvdSB3YW50IGl0IHRvLCBpbiBvcmRlciB0byBoYW5kbGUgZm9ybSBjb250ZW50cy4KICAvLyBpdCByZXR1cm5zIGFuIGFycmF5LCB3aGVyZSB0aGUgZmlyc3QgZWxlbWVudCBpcyB0cnVlIG9uIHN1Y2Nlc3MsCiAgLy8gb3IgZmFsc2Ugb24gZmFpbHVyZSwgYW5kIHRoZSBzZWNvbmQgZWxlbWVudCBpcyBleHBsYW5hdG9yeQogIC8vIHRleHQgZm9yIHRoZSBmYWlsdXJlCiAgZnVuY3Rpb24gRGlzcG9zZUZvcm0oKQogIHsKICAgIHJldHVybiBhcnJheSh0cnVlLCAnJyk7CiAgfQkKCiAgZnVuY3Rpb24gRXhwb3J0WE1MKCRleHBvcnRWYWx1ZXMgPSBmYWxzZSkKICB7CgkkeG1sc3RyID0gIlx0PGZpZWxkIGlkPVwiIi4kdGhpcy0+SWQuIlwiXG4iOwoJJHhtbHN0ciAuPSAiXHRcdHR5cGU9XCIiLiR0aGlzLT5UeXBlLiJcIlxuIjsKCSR4bWxzdHIgLj0gIlx0XHRuYW1lPVwiIi4kdGhpcy0+TmFtZS4iXCJcbiI7CgkkeG1sc3RyIC49ICJcdFx0dmFsaWRhdGlvbl90eXBlPVwiIi4kdGhpcy0+VmFsaWRhdGlvblR5cGUuIlwiXG4iOwoJJHhtbHN0ciAuPSAiXHRcdG9yZGVyX2J5PVwiIi4kdGhpcy0+T3JkZXJCeS4iXCJcbiI7CgkkeG1sc3RyIC49ICJcdFx0cmVxdWlyZWQ9XCIiLiR0aGlzLT5SZXF1aXJlZC4iXCJcbiI7CgkkeG1sc3RyIC49ICJcdFx0aGlkZV9sYWJlbD1cIiIuJHRoaXMtPkhpZGVMYWJlbC4iXCI+XG4iOwoJZm9yZWFjaCgkdGhpcy0+T3B0aW9ucyBhcyAkbmFtZT0+JHZhbHVlKQoJCXsKCQlpZiAoaXNfYXJyYXkoJHZhbHVlKSkKCQkJewoJCQlmb3JlYWNoICgkdmFsdWUgYXMgJHRoaXNWYWwpCgkJCQl7CgkJCQkkeG1sc3RyIC49ICJcdFx0XHQ8b3B0aW9uIG5hbWU9XCIkbmFtZVwiPjwhW0NEQVRBWyR0aGlzVmFsXV0+PC9vcHRpb24+XG4iOwoJCQkJfQoJCQl9CgkJZWxzZQoJCQl7CgkJCSR4bWxzdHIgLj0gIlx0XHRcdDxvcHRpb24gbmFtZT1cIiRuYW1lXCI+PCFbQ0RBVEFbJHZhbHVlXV0+PC9vcHRpb24+XG4iOwoJCQl9CgkJfQoJaWYgKCRleHBvcnRWYWx1ZXMpCgkJewoJCWZvcmVhY2goJHRoaXMtPlZhbHVlIGFzICRuYW1lPT4kdmFsdWUpCgkJCXsKCQkJaWYgKGlzX2FycmF5KCR2YWx1ZSkpCgkJCQl7CgkJCQlmb3JlYWNoICgkdmFsdWUgYXMgJHRoaXNWYWwpCgkJCQkJewoJCQkJCSR4bWxzdHIgLj0gIlx0XHRcdDx2YWx1ZSBuYW1lPVwiJG5hbWVcIj48IVtDREFUQVskdGhpc1ZhbF1dPjwvdmFsdWU+XG4iOwoJCQkJCX0KCQkJCX0KCQkJZWxzZQoJCQkJewoJCQkJJHhtbHN0ciAuPSAiXHRcdFx0PHZhbHVlIG5hbWU9XCIkbmFtZVwiPjwhW0NEQVRBWyR2YWx1ZV1dPjwvdmFsdWU+XG4iOwoJCQkJfQoJCQl9CgkJfQoKCSR4bWxzdHIgLj0gIjwvZmllbGQ+XG4iOwoJcmV0dXJuICR4bWxzdHI7CiAgfQoKICBmdW5jdGlvbiBHZXRPcHRpb25OYW1lcygpCiAgewogICAgcmV0dXJuIGFycmF5X2tleXMoJHRoaXMtPk9wdGlvbnMpOwogIH0KCiAgZnVuY3Rpb24gR2V0T3B0aW9uKCRvcHRpb25OYW1lLCAkZGVmYXVsdD0nJykKICB7CiAgICBpZiAoaXNzZXQoJHRoaXMtPk9wdGlvbnNbJG9wdGlvbk5hbWVdKSkKICAgICAgewoJcmV0dXJuICR0aGlzLT5PcHRpb25zWyRvcHRpb25OYW1lXTsKICAgICAgfQogICAgcmV0dXJuICRkZWZhdWx0OwogIH0KCiAgZnVuY3Rpb24gJkdldE9wdGlvblJlZigkb3B0aW9uTmFtZSkKICAgIHsKICAgICAgaWYgKGlzc2V0KCR0aGlzLT5PcHRpb25zWyRvcHRpb25OYW1lXSkpCgl7CgkgIHJldHVybiAkdGhpcy0+T3B0aW9uc1skb3B0aW9uTmFtZV07Cgl9CiAgICAgICR0bXAgPSBmYWxzZTsKICAgICAgcmV0dXJuICR0bXA7CiAgICB9CgoJCiAgZnVuY3Rpb24gUmVtb3ZlT3B0aW9uRWxlbWVudCgkb3B0aW9uTmFtZSwgJGluZGV4KQogIHsKICAgIGlmIChpc3NldCgkdGhpcy0+T3B0aW9uc1skb3B0aW9uTmFtZV0pKQogICAgICB7CglpZiAoaXNfYXJyYXkoJHRoaXMtPk9wdGlvbnNbJG9wdGlvbk5hbWVdKSkKCSAgewoJICAgIGlmIChpc3NldCgkdGhpcy0+T3B0aW9uc1skb3B0aW9uTmFtZV1bJGluZGV4XSkpCgkgICAgICB7CgkJYXJyYXlfc3BsaWNlKCR0aGlzLT5PcHRpb25zWyRvcHRpb25OYW1lXSwkaW5kZXgsMSk7CgkgICAgICB9CgkgIH0KICAgICAgfQogIH0KCQogIGZ1bmN0aW9uIEdldE9wdGlvbkVsZW1lbnQoJG9wdGlvbk5hbWUsICRpbmRleCwgJGRlZmF1bHQ9IiIpCiAgewogICAgaWYgKGlzc2V0KCR0aGlzLT5PcHRpb25zWyRvcHRpb25OYW1lXSkpCiAgICAgIHsKCWlmIChpc19hcnJheSgkdGhpcy0+T3B0aW9uc1skb3B0aW9uTmFtZV0pKQoJICB7CgkgICAgaWYgKGlzc2V0KCR0aGlzLT5PcHRpb25zWyRvcHRpb25OYW1lXVskaW5kZXhdKSkKCSAgICAgIHsKCQlyZXR1cm4gJHRoaXMtPk9wdGlvbnNbJG9wdGlvbk5hbWVdWyRpbmRleF07CgkgICAgICB9CgkgIH0KCWVsc2VpZiAoJGluZGV4ID09IDApCgkgIHsKCSAgICByZXR1cm4gJHRoaXMtPk9wdGlvbnNbJG9wdGlvbk5hbWVdOwoJICB9CiAgICAgIH0KCiAgICByZXR1cm4gJGRlZmF1bHQ7CQkKICB9CgogIGZ1bmN0aW9uIFNldE9wdGlvbigkb3B0aW9uTmFtZSwgJG9wdGlvblZhbHVlKQogIHsKICAgICR0aGlzLT5PcHRpb25zWyRvcHRpb25OYW1lXSA9ICRvcHRpb25WYWx1ZTsKICB9CiAgCiAgZnVuY3Rpb24gUHVzaE9wdGlvbkVsZW1lbnQoJG9wdGlvbk5hbWUsICR2YWwpCiAgewogIAlpZiAoaXNzZXQoJHRoaXMtPk9wdGlvbnNbJG9wdGlvbk5hbWVdKSkKICAJCXsKICAJCWlmIChpc19hcnJheSgkdGhpcy0+T3B0aW9uc1skb3B0aW9uTmFtZV0pKQogIAkJCXsKICAJCQlhcnJheV9wdXNoKCR0aGlzLT5PcHRpb25zWyRvcHRpb25OYW1lXSwkdmFsKTsKICAJCQl9CiAgCQllbHNlCiAgCQkJewogIAkJCSR0aGlzLT5PcHRpb25zWyRvcHRpb25OYW1lXSA9IGFycmF5KCR0aGlzLT5PcHRpb25zWyRvcHRpb25OYW1lXSwkdmFsKTsKICAJCQl9CiAgCQl9CiAgCWVsc2UKICAJCXsKICAJCSR0aGlzLT5PcHRpb25zWyRvcHRpb25OYW1lXSA9ICR2YWw7CiAgCQl9CiAgfQoKICBmdW5jdGlvbiBMb2FkRmllbGQoJiRwYXJhbXMpCiAgewogICAgaWYgKCR0aGlzLT5JZCA+IDApCiAgICAgIHsKCSR0aGlzLT5Mb2FkKCR0aGlzLT5JZCwgJHBhcmFtcywgdHJ1ZSk7CiAgICAgIH0KICAgIHJldHVybjsKICB9CgogIC8vIGxvYWREZWVwIGFsc28gbG9hZHMgYWxsIG9wdGlvbnMgZm9yIGEgZmllbGQuCiAgZnVuY3Rpb24gTG9hZCgkaWQsICYkcGFyYW1zLCAkbG9hZERlZXA9ZmFsc2UpCiAgewogICAgJHNxbCA9ICdTRUxFQ1QgKiBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX2ZiX2ZpZWxkIFdIRVJFIGZpZWxkX2lkPT8nOwogICAgaWYoJHJlc3VsdCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0ci0+ZGJIYW5kbGUtPkdldFJvdygkc3FsLCBhcnJheSgkdGhpcy0+SWQpKSkKICAgICAgewoJaWYgKHN0cmxlbigkdGhpcy0+TmFtZSkgPCAxKQoJICB7CgkgICAgJHRoaXMtPk5hbWUgPSAkcmVzdWx0WyduYW1lJ107CgkgIH0KCWlmIChzdHJsZW4oJHRoaXMtPlZhbGlkYXRpb25UeXBlKSA8IDEpCgkgIHsKCSAgICAkdGhpcy0+VmFsaWRhdGlvblR5cGUgPSAkcmVzdWx0Wyd2YWxpZGF0aW9uX3R5cGUnXTsKCSAgfQoJJHRoaXMtPlR5cGUgPSAkcmVzdWx0Wyd0eXBlJ107CgkkdGhpcy0+T3JkZXJCeSA9ICRyZXN1bHRbJ29yZGVyX2J5J107CglpZiAoJHRoaXMtPlJlcXVpcmVkID09IC0xKQoJICB7CgkgICAgJHRoaXMtPlJlcXVpcmVkID0gJHJlc3VsdFsncmVxdWlyZWQnXTsKCSAgfQoJaWYgKCR0aGlzLT5IaWRlTGFiZWwgPT0gLTEpCgkgIHsKCSAgICAkdGhpcy0+SGlkZUxhYmVsID0gJHJlc3VsdFsnaGlkZV9sYWJlbCddOwoJICB9CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJcmV0dXJuIGZhbHNlOwogICAgICB9CiAgICAkdGhpcy0+bG9hZGVkID0gdHJ1ZTsKICAgIGlmICgkbG9hZERlZXApCiAgICAgIHsKCSRzcWwgPSAnU0VMRUNUIG5hbWUsIHZhbHVlIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuCgkgICdtb2R1bGVfZmJfZmllbGRfb3B0IFdIRVJFIGZpZWxkX2lkPT8gT1JERVIgQlkgb3B0aW9uX2lkJzsKCSRycyA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0ci0+ZGJIYW5kbGUtPkV4ZWN1dGUoJHNxbCwKCQkJCQkJCSAgICAgYXJyYXkoJHRoaXMtPklkKSk7CgkkdG1wT3B0cyA9IGFycmF5KCk7Cgl3aGlsZSAoJHJzICYmICRyZXN1bHRzID0gJHJzLT5GZXRjaFJvdygpKQoJICB7CgkgICAgaWYgKGlzc2V0KCR0bXBPcHRzWyRyZXN1bHRzWyduYW1lJ11dKSkKCSAgICAgIHsKCQlpZiAoISBpc19hcnJheSgkdG1wT3B0c1skcmVzdWx0c1snbmFtZSddXSkpCgkJICB7CgkJICAgICR0bXBPcHRzWyRyZXN1bHRzWyduYW1lJ11dID0gYXJyYXkoJHRtcE9wdHNbJHJlc3VsdHNbJ25hbWUnXV0pOwoJCSAgfQoJCWFycmF5X3B1c2goJHRtcE9wdHNbJHJlc3VsdHNbJ25hbWUnXV0sJHJlc3VsdHNbJ3ZhbHVlJ10pOwoJICAgICAgfQoJICAgIGVsc2UKCSAgICAgIHsKCQkkdG1wT3B0c1skcmVzdWx0c1snbmFtZSddXT0kcmVzdWx0c1sndmFsdWUnXTsKCSAgICAgIH0KCSAgfQoJJHRoaXMtPk9wdGlvbnMgPSBhcnJheV9tZXJnZSgkdG1wT3B0cywkdGhpcy0+T3B0aW9ucyk7CgoJaWYgKGlzc2V0KCRwYXJhbXNbJ3ZhbHVlXycuJHRoaXMtPk5hbWVdKSAmJgoJICAgIChpc19hcnJheSgkcGFyYW1zWyd2YWx1ZV8nLiR0aGlzLT5OYW1lXSkgfHwKCSAgICAgc3RybGVuKCRwYXJhbXNbJ3ZhbHVlXycuJHRoaXMtPk5hbWVdKSA+IDApKQoJICB7CgkgICAgJHRoaXMtPlNldFZhbHVlKCRwYXJhbXNbJ3ZhbHVlXycuJHRoaXMtPk5hbWVdKTsKCSAgfQogICAgICB9CgoKICAgIHJldHVybiB0cnVlOwogIH0KCgogIGZ1bmN0aW9uIFN0b3JlKCRzdG9yZURlZXA9ZmFsc2UpCiAgewogICAgJG1vZCA9ICAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICBpZiAoJHRoaXMtPklkID09IC0xKQogICAgICB7CgkkdGhpcy0+SWQgPSAkbW9kLT5kYkhhbmRsZS0+R2VuSUQoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGRfc2VxJyk7Cgkkc3FsID0gJ0lOU0VSVCBJTlRPICcgLmNtc19kYl9wcmVmaXgoKS4KCSAgJ21vZHVsZV9mYl9maWVsZCAoZmllbGRfaWQsIGZvcm1faWQsIG5hbWUsIHR5cGUsICcgLgoJICAncmVxdWlyZWQsIHZhbGlkYXRpb25fdHlwZSwgaGlkZV9sYWJlbCwgb3JkZXJfYnkpICcuCgkgICcgVkFMVUVTICg/LCA/LCA/LCA/LCA/LCA/LCA/LCA/KSc7CgkkcmVzID0gJG1vZC0+ZGJIYW5kbGUtPkV4ZWN1dGUoJHNxbCwKCQkJCSAgICAgICBhcnJheSgkdGhpcy0+SWQsICR0aGlzLT5Gb3JtSWQsICR0aGlzLT5OYW1lLAoJCQkJCSAgICAgJHRoaXMtPlR5cGUsICgkdGhpcy0+UmVxdWlyZWQ/MTowKSwgCgkJCQkJICAgICAkdGhpcy0+VmFsaWRhdGlvblR5cGUsICR0aGlzLT5IaWRlTGFiZWwsICR0aGlzLT5PcmRlckJ5KSk7CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJJHNxbCA9ICdVUERBVEUgJyAuIGNtc19kYl9wcmVmaXgoKSAuCgkgICdtb2R1bGVfZmJfZmllbGQgc2V0IG5hbWU9PywgdHlwZT0/LCcuCgkgICdyZXF1aXJlZD0/LCB2YWxpZGF0aW9uX3R5cGU9Pywgb3JkZXJfYnk9PywgJy4KCSAgJ2hpZGVfbGFiZWw9PyB3aGVyZSBmaWVsZF9pZD0/JzsKCSRyZXMgPSAkbW9kLT5kYkhhbmRsZS0+RXhlY3V0ZSgkc3FsLAoJCQkJICAgICAgIGFycmF5KCR0aGlzLT5OYW1lLCAkdGhpcy0+VHlwZSwgKCR0aGlzLT5SZXF1aXJlZD8xOjApLAoJCQkJCSAgICAgJHRoaXMtPlZhbGlkYXRpb25UeXBlLAoJCQkJCSAgICAgJHRoaXMtPk9yZGVyQnksICR0aGlzLT5IaWRlTGFiZWwsICR0aGlzLT5JZCkpOwogICAgICB9CiAgICAgICAgICAgIAogICAgaWYgKCRzdG9yZURlZXApCiAgICAgIHsKCS8vIGRyb3Agb2xkIG9wdGlvbnMKCSRzcWwgPSAnREVMRVRFIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuCgkgICdtb2R1bGVfZmJfZmllbGRfb3B0IHdoZXJlIGZpZWxkX2lkPT8nOwoJJHJlcyA9ICRtb2QtPmRiSGFuZGxlLT5FeGVjdXRlKCRzcWwsCgkJCQkgICAgICAgYXJyYXkoJHRoaXMtPklkKSk7CgoJZm9yZWFjaCAoJHRoaXMtPk9wdGlvbnMgYXMgJHRoaXNPcHRLZXk9PiR0aGlzT3B0VmFsdWVMaXN0KQoJICB7CgkgICAgaWYgKCEgaXNfYXJyYXkoJHRoaXNPcHRWYWx1ZUxpc3QpKQoJICAgICAgewoJCSR0aGlzT3B0VmFsdWVMaXN0ID0gYXJyYXkoJHRoaXNPcHRWYWx1ZUxpc3QpOwoJICAgICAgfQoJICAgIGZvcmVhY2ggKCR0aGlzT3B0VmFsdWVMaXN0IGFzICR0aGlzT3B0VmFsdWUpCgkgICAgICB7CgkJJG9wdElkID0gJG1vZC0+ZGJIYW5kbGUtPkdlbklEKAoJCQkJCSAgICAgICBjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9maWVsZF9vcHRfc2VxJyk7CgkJJHNxbCA9ICdJTlNFUlQgSU5UTyAnIC4gY21zX2RiX3ByZWZpeCgpLgoJCSAgJ21vZHVsZV9mYl9maWVsZF9vcHQgKG9wdGlvbl9pZCwgZmllbGRfaWQsIGZvcm1faWQsICcuCgkJICAnbmFtZSwgdmFsdWUpIFZBTFVFUyAoPywgPywgPywgPywgPyknOwoJCSRyZXMgPSAkbW9kLT5kYkhhbmRsZS0+RXhlY3V0ZSgkc3FsLAoJCQkJCSAgICAgICBhcnJheSgkb3B0SWQsICR0aGlzLT5JZCwgJHRoaXMtPkZvcm1JZCwgJHRoaXNPcHRLZXksCgkJCQkJCSAgICAgJHRoaXNPcHRWYWx1ZSkpOwoJICAgICAgfQoJICB9CiAgICAgIH0KICAgIHJldHVybiAkcmVzOwogIH0KCiAgZnVuY3Rpb24gRGVsZXRlKCkKICB7CiAgICBpZiAoJHRoaXMtPklkID09IC0xKQogICAgICB7CglyZXR1cm4gZmFsc2U7CiAgICAgIH0KICAgICRzcWwgPSAnREVMRVRFIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfZmJfZmllbGQgd2hlcmUgZmllbGRfaWQ9Pyc7CiAgICAkcmVzID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyLT5kYkhhbmRsZS0+RXhlY3V0ZSgkc3FsLAoJCQkJCQkJICBhcnJheSgkdGhpcy0+SWQpKTsKICAgICRzcWwgPSAnREVMRVRFIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfZmJfZmllbGRfb3B0IHdoZXJlIGZpZWxkX2lkPT8nOwogICAgJHJlcyA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0ci0+ZGJIYW5kbGUtPkV4ZWN1dGUoJHNxbCwKCQkJCQkJCSAgYXJyYXkoJHRoaXMtPklkKSk7CiAgICByZXR1cm4gdHJ1ZTsKICB9Cn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/FieldsetEnd.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkZpZWxkc2V0RW5kIGV4dGVuZHMgZmJGaWVsZEJhc2UgewoKICBmdW5jdGlvbiBmYkZpZWxkc2V0RW5kKCYkZm9ybV9wdHIsICYkcGFyYW1zKQogIHsKICAgICR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgJG1vZCA9ICYkZm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkdGhpcy0+VHlwZSA9ICdGaWVsZHNldEVuZCc7CiAgICAkdGhpcy0+RGlzcGxheUluRm9ybSA9IHRydWU7CiAgICAkdGhpcy0+RGlzcGxheUluU3VibWlzc2lvbiA9IGZhbHNlOwogICAgJHRoaXMtPk5vblJlcXVpcmFibGVGaWVsZCA9IHRydWU7CiAgICAkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoKTsgICAgCiAgICAkdGhpcy0+SGFzTGFiZWwgPSAwOwogIH0KCiAgZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCiAgewogICAgcmV0dXJuICc8L2ZpZWxkc2V0Pic7CiAgfQoKICBmdW5jdGlvbiBTdGF0dXNJbmZvKCkKICB7CiAgICByZXR1cm4gJyc7CiAgfQoKICBmdW5jdGlvbiBHZXRIdW1hblJlYWRhYmxlVmFsdWUoKQogIHsKICAgIC8vIHRoZXJlJ3Mgbm90aGluZyBodW1hbiByZWFkYWJsZSBhYm91dCBhIGZpZWxkc2V0LgogICAgcmV0dXJuICdbRW5kIEZpZWxkc2V0OiAnLiR0aGlzLT5WYWx1ZS4nXSc7CiAgfQoJCiAgZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQogIHsKICAgICRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgJG1haW4gPSBhcnJheSgpOwogICAgJGFkdiA9IGFycmF5KCk7CiAgICByZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7CiAgfQoKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/FieldsetStart.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkZpZWxkc2V0U3RhcnQgZXh0ZW5kcyBmYkZpZWxkQmFzZSB7CgogIGZ1bmN0aW9uIGZiRmllbGRzZXRTdGFydCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKICB7CiAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICRtb2QgPSAmJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgJHRoaXMtPlR5cGUgPSAnRmllbGRzZXRTdGFydCc7CiAgICAkdGhpcy0+RGlzcGxheUluRm9ybSA9IHRydWU7CiAgICAkdGhpcy0+RGlzcGxheUluU3VibWlzc2lvbiA9IGZhbHNlOwogICAgJHRoaXMtPk5vblJlcXVpcmFibGVGaWVsZCA9IHRydWU7CiAgICAkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoKTsgICAgCiAgICAkdGhpcy0+SGFzTGFiZWwgPSAwOwogIH0KCiAgZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCiAgewogICAgJHN0ciA9ICc8ZmllbGRzZXQnOwogICAgJGNsYXNzID0gJHRoaXMtPkdldE9wdGlvbignY3NzX2NsYXNzJyk7CiAgICAkbGVnZW5kID0gJHRoaXMtPkdldE9wdGlvbignbGVnZW5kJyk7CiAgICBpZiggJGNsYXNzICE9ICcnICkKICAgICAgewoJJHN0ciAuPSAiIGNsYXNzPVwiJGNsYXNzXCIiOwogICAgICB9CiAgICAkc3RyIC49ICc+JzsKICAgIGlmKCAkbGVnZW5kICE9ICcnICkKICAgICAgewoJJHN0ciAuPSAnPGxlZ2VuZD4nLiRsZWdlbmQuJzwvbGVnZW5kPic7CiAgICAgIH0KICAgIHJldHVybiAkc3RyOwogIH0KCiAgZnVuY3Rpb24gU3RhdHVzSW5mbygpCiAgewogICAgcmV0dXJuICcnOwogIH0KCiAgZnVuY3Rpb24gR2V0SHVtYW5SZWFkYWJsZVZhbHVlKCkKICB7CiAgICAvLyB0aGVyZSdzIG5vdGhpbmcgaHVtYW4gcmVhZGFibGUgYWJvdXQgYSBmaWVsZHNldC4KICAgIHJldHVybiAnW0JlZ2luIEZpZWxkc2V0OiAnLiR0aGlzLT5WYWx1ZS4nXSc7CiAgfQoJCiAgZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQogIHsKICAgICRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgJG1haW4gPSBhcnJheSgKCQkgIGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2xlZ2VuZCcpLAogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsJ29wdF9sZWdlbmQnLAoJCQkJCSAgICAgICR0aGlzLT5HZXRPcHRpb24oJ2xlZ2VuZCcsJycpLCA1MCkpKTsKICAgICRhZHYgPSBhcnJheSgpOwogICAgcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwogIH0KCn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/FileUpload.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLy8gRmVlZGJhY2sgRm9ybS4gMDIvMjAwNSBTakcgPGZlZWRiYWNrZm9ybV9jbXNtb2R1bGVAZm9nYm91bmQubmV0PgovLyBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCAoYykyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKLy8gVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKCmNsYXNzIGZmRmlsZVVwbG9hZCBleHRlbmRzIGZmSW5wdXQgewoKCWZ1bmN0aW9uIGZmRmlsZVVwbG9hZCgmJG1vZF9nbG9iYWxzLCAkZm9ybVJlZiwgJHBhcmFtcz1hcnJheSgpKQoJewogICAgICAgICR0aGlzLT5mZklucHV0KCRtb2RfZ2xvYmFscywgJGZvcm1SZWYsICRwYXJhbXMpOwoJCSR0aGlzLT5UeXBlID0gJ0ZpbGVVcGxvYWQnOwoJCSR0aGlzLT5EaXNwbGF5VHlwZSA9ICR0aGlzLT5tb2RfZ2xvYmFscy0+TGFuZygnZmllbGRfdHlwZV9maWxlX3VwbG9hZCcpOwoJCSR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgKICAgICAgICAgICAgJHRoaXMtPm1vZF9nbG9iYWxzLT5MYW5nKCd2YWxpZGF0aW9uX25vbmUnKT0+J25vbmUnKTsKCQlpZiAoZmZVdGlsaXR5RnVuY3Rpb25zOjpkZWYoJHBhcmFtc1snbWF4X3NpemUnXSkpCgkJICB7CgkJICAkdGhpcy0+QWRkT3B0aW9uKCdtYXhfc2l6ZScsICdtYXhfc2l6ZScsICRwYXJhbXNbJ21heF9zaXplJ10pOwogICAgICAgICAgfQoJCWlmIChmZlV0aWxpdHlGdW5jdGlvbnM6OmRlZigkcGFyYW1zWydwZXJtaXR0ZWRfZXh0ZW5zaW9ucyddKSkKCQkgIHsKCQkgICR0aGlzLT5BZGRPcHRpb24oJ3Blcm1pdHRlZF9leHRlbnNpb25zJywgJ3Blcm1pdHRlZF9leHRlbnNpb25zJywgJHBhcmFtc1sncGVybWl0dGVkX2V4dGVuc2lvbnMnXSk7CiAgICAgICAgICB9CgkJaWYgKGZmVXRpbGl0eUZ1bmN0aW9uczo6ZGVmKCRwYXJhbXNbJ3Nob3dfZGV0YWlscyddKSkKCQkgIHsKCQkgICR0aGlzLT5BZGRPcHRpb24oJ3Nob3dfZGV0YWlscycsICdzaG93X2RldGFpbHMnLCAkcGFyYW1zWydzaG93X2RldGFpbHMnXSk7CiAgICAgICAgICB9CgoJfQoKCWZ1bmN0aW9uIFdyaXRlVG9QdWJsaWNGb3JtKCRpZCwgJiRwYXJhbXMsICRyZXR1cm5faWQpCgl7CiAgICAgICAgJHNob3cgPSAkdGhpcy0+R2V0T3B0aW9uQnlLaW5kKCdzaG93X2RldGFpbHMnKTsKICAgICAgICBpZiAoc3RybGVuKCR0aGlzLT5DU1NDbGFzcyk+MCkKICAgICAgICAJewogICAgICAgIAllY2hvICI8ZGl2IGNsYXNzPVwiIi4kdGhpcy0+Q1NTQ2xhc3MuIlwiPiI7CiAgICAgICAgCX0KCQllY2hvIENNU01vZHVsZTo6Q3JlYXRlRmlsZVVwbG9hZElucHV0KCRpZCwgJHRoaXMtPkFsaWFzLCR0aGlzLT5tb2RfZ2xvYmFscy0+VXNlSURBbmROYW1lPydpZD0iJy4kdGhpcy0+QWxpYXMuJyInOicnKTsKICAgICAgICBpZiAoZmZVdGlsaXR5RnVuY3Rpb25zOjpkZWYoJHNob3dbMF0tPlZhbHVlKSkKICAgICAgICAgICAgewogICAgICAgICAgICAkbXMgPSAkdGhpcy0+R2V0T3B0aW9uQnlLaW5kKCdtYXhfc2l6ZScpOwogICAgICAgICAgICAkZXh0cyA9ICR0aGlzLT5HZXRPcHRpb25CeUtpbmQoJ3Blcm1pdHRlZF9leHRlbnNpb25zJyk7CiAgICAgICAgICAgIGlmIChmZlV0aWxpdHlGdW5jdGlvbnM6OmRlZigkbXNbMF0tPlZhbHVlKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGVjaG8gJHRoaXMtPm1vZF9nbG9iYWxzLT5MYW5nKCdtYXhpbXVtX3NpemUnKS4nOiAnLiRtc1swXS0+VmFsdWUuJ2tiJzsKICAgICAgICAgICAgICAgIH0KCSAgICAgICAgaWYgKGZmVXRpbGl0eUZ1bmN0aW9uczo6ZGVmKCRleHRzWzBdLT5WYWx1ZSkpCgkgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGlmIChmZlV0aWxpdHlGdW5jdGlvbnM6OmRlZigkbXNbMF0tPlZhbHVlKSkKCSAgIAkgICAgICAgICAgIHsKCSAgIAkgICAgICAgICAgIGVjaG8gJywgJzsKCSAgIAkgICAgICAgICAgIH0KCSAgICAgICAgICAgIGVjaG8gJHRoaXMtPm1vZF9nbG9iYWxzLT5MYW5nKCdwZXJtaXR0ZWRfZmlsZXR5cGVzJykgLiAnOiAnLiRleHRzWzBdLT5WYWx1ZTsKCQkgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIGlmIChzdHJsZW4oJHRoaXMtPkNTU0NsYXNzKT4wKQogICAgICAgIAl7CiAgICAgICAgCWVjaG8gIjwvZGl2PiI7CiAgICAgICAgCX0KCX0KCgoJZnVuY3Rpb24gU3RhdHVzSW5mbygpCgl7CgkgJG1zID0gJHRoaXMtPkdldE9wdGlvbkJ5S2luZCgnbWF4X3NpemUnKTsKICAgICAkZXh0cyA9ICR0aGlzLT5HZXRPcHRpb25CeUtpbmQoJ3Blcm1pdHRlZF9leHRlbnNpb25zJyk7CgkgJHJldCA9ICcnOwoJIGlmIChmZlV0aWxpdHlGdW5jdGlvbnM6OmRlZigkbXNbMF0tPlZhbHVlKSkKCSAgIHsKCSAgICAkcmV0IC49ICR0aGlzLT5tb2RfZ2xvYmFscy0+TGFuZygnbWF4aW11bV9zaXplJykuJzogJy4kbXNbMF0tPlZhbHVlLidrYic7CgkJfQoJIGlmIChmZlV0aWxpdHlGdW5jdGlvbnM6OmRlZigkZXh0c1swXS0+VmFsdWUpKQoJICAgewoJICAgaWYgKGZmVXRpbGl0eUZ1bmN0aW9uczo6ZGVmKCRtc1swXS0+VmFsdWUpKQoJICAgCSAgewoJICAgCSAgJHJldCAuPSAnLCAnOwoJICAgCSAgfQoJICAgICRyZXQgLj0gJHRoaXMtPm1vZF9nbG9iYWxzLT5MYW5nKCdwZXJtaXR0ZWRfZXh0ZW5zaW9ucycpIC4gJzogJy4kZXh0c1swXS0+VmFsdWU7CgkJfQoJfQoKCglmdW5jdGlvbiBSZW5kZXJBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQoJewoJICRtcyA9ICR0aGlzLT5HZXRPcHRpb25CeUtpbmQoJ21heF9zaXplJyk7CiAgICAgJGV4dHMgPSAkdGhpcy0+R2V0T3B0aW9uQnlLaW5kKCdwZXJtaXR0ZWRfZXh0ZW5zaW9ucycpOwogICAgICRzaG93ID0gJHRoaXMtPkdldE9wdGlvbkJ5S2luZCgnc2hvd19kZXRhaWxzJyk7CgoJIHJldHVybiBhcnJheSgkdGhpcy0+bW9kX2dsb2JhbHMtPkxhbmcoJ3RpdGxlX21heGltdW1fc2l6ZScpLic6Jz0+CiAgICAgICAgICAgIENNU01vZHVsZTo6Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ21heF9zaXplJywKICAgICAgICAgICAgCWZmVXRpbGl0eUZ1bmN0aW9uczo6ZGVmKCRtc1swXS0+VmFsdWUpPyRtc1swXS0+VmFsdWU6KCR0aGlzLT5tb2RfZ2xvYmFscy0+TWF4VXBsb2FkU2l6ZS8xMDAwKSwyNSwyNSksCiAgICAgICAgICAgIAkkdGhpcy0+bW9kX2dsb2JhbHMtPkxhbmcoJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zJykuJzonPT4KICAgICAgICAgICAgQ01TTW9kdWxlOjpDcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAncGVybWl0dGVkX2V4dGVuc2lvbnMnLAogICAgICAgICAgICAJZmZVdGlsaXR5RnVuY3Rpb25zOjpkZWYoJGV4dHNbMF0tPlZhbHVlKT8kZXh0c1swXS0+VmFsdWU6JycsMjUsODApLic8YnIgLz4nLgogICAgICAgICAgICAJJHRoaXMtPm1vZF9nbG9iYWxzLT5MYW5nKCd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9uc19sb25nJyksCiAgICAgICAgICAgICR0aGlzLT5tb2RfZ2xvYmFscy0+TGFuZygndGl0bGVfc2hvd19saW1pdGF0aW9ucycpLic6Jz0+Q01TTW9kdWxlOjpDcmVhdGVJbnB1dENoZWNrYm94KCRmb3JtRGVzY3JpcHRvciwgJ3Nob3dfZGV0YWlscycsICd0cnVlJywgZmZVdGlsaXR5RnVuY3Rpb25zOjpkZWYoJHNob3dbMF0tPlZhbHVlKT8kc2hvd1swXS0+VmFsdWU6JycpLgoJCQknICcuJHRoaXMtPm1vZF9nbG9iYWxzLT5MYW5nKCd0aXRsZV9zaG93X2xpbWl0YXRpb25zX2xvbmcnKQogICAgICAgICAgICAgICAgKTsKCX0KCgoJZnVuY3Rpb24gVmFsaWRhdGUoKQoJewoJCSRyZXN1bHQgPSB0cnVlOwoJCSRtZXNzYWdlID0gJyc7CgkgCSRtcyA9ICR0aGlzLT5HZXRPcHRpb25CeUtpbmQoJ21heF9zaXplJyk7CiAgICAgCSRleHRzID0gJHRoaXMtPkdldE9wdGlvbkJ5S2luZCgncGVybWl0dGVkX2V4dGVuc2lvbnMnKTsKCQkkZnVsbEFsaWFzID0gJHRoaXMtPm1vZF9nbG9iYWxzLT5Nb2R1bGVJbnB1dFByZWZpeC4kdGhpcy0+QWxpYXM7CgkJaWYgKCRfRklMRVNbJGZ1bGxBbGlhc11bJ3NpemUnXSA8IDEgJiYgISAkdGhpcy0+UmVxdWlyZWQpCgkJCXsKCQkJcmV0dXJuIGFycmF5KHRydWUsJycpOwoJCQl9CgkJaWYgKGZmVXRpbGl0eUZ1bmN0aW9uczo6ZGVmKCRtc1swXS0+VmFsdWUpICYmICRfRklMRVNbJGZ1bGxBbGlhc11bJ3NpemUnXSA+ICgkbXNbMF0tPlZhbHVlICogMTAwMCkpCgkJCXsKCQkJJG1lc3NhZ2UgPSAkdGhpcy0+bW9kX2dsb2JhbHMtPkxhbmcoJ2ZpbGVfdG9vX2xhcmdlJykuICcgJy4oJG1zWzBdLT5WYWx1ZSAqIDEwMDApLidrYic7CgkJCSRyZXN1bHQgPSBmYWxzZTsKCQkJfQoJCWlmIChmZlV0aWxpdHlGdW5jdGlvbnM6OmRlZigkZXh0c1swXS0+VmFsdWUpKQoJCQl7CgkJCSRtYXRjaCA9IGZhbHNlOwoJCQkkbGVnYWxFeHRzID0gZXhwbG9kZSgnLCcsJGV4dHNbMF0tPlZhbHVlKTsKCQkJZm9yZWFjaCAoJGxlZ2FsRXh0cyBhcyAkdGhpc0V4dCkKCQkJCXsKCQkJCWlmIChwcmVnX21hdGNoKCcvXC4nLnRyaW0oJHRoaXNFeHQpLickL2knLCRfRklMRVNbJGZ1bGxBbGlhc11bJ25hbWUnXSkpCgkJCQkJewoJCQkJCSRtYXRjaCA9IHRydWU7CgkJCQkJfQoJCQkJZWxzZSBpZiAocHJlZ19tYXRjaCgnLycudHJpbSgkdGhpc0V4dCkuJy9pJywkX0ZJTEVTWyRmdWxsQWxpYXNdWyd0eXBlJ10pKQoJCQkJCXsKCQkJCQkkbWF0Y2ggPSB0cnVlOwoJCQkJCX0KCQkJCX0KCQkJaWYgKCEgJG1hdGNoKQoJCQkJewoJCQkJJG1lc3NhZ2UgPSAkdGhpcy0+bW9kX2dsb2JhbHMtPkxhbmcoJ2lsbGVnYWxfZmlsZV90eXBlJyk7CgkJCQkkcmVzdWx0ID0gZmFsc2U7CgkJCQl9CgkJCX0KCQlyZXR1cm4gYXJyYXkoJHJlc3VsdCwgJG1lc3NhZ2UpOwoJfQoKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/FileUploadField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLy8gRmVlZGJhY2sgRm9ybS4gMDIvMjAwNSBTakcgPGZlZWRiYWNrZm9ybV9jbXNtb2R1bGVAZm9nYm91bmQubmV0PgovLyBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCAoYykyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKLy8gVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKCmNsYXNzIGZiRmlsZVVwbG9hZEZpZWxkIGV4dGVuZHMgZmJGaWVsZEJhc2UgewoKICBmdW5jdGlvbiBmYkZpbGVVcGxvYWQoJiRmb3JtX3B0ciwgJiRwYXJhbXMpCiAgewogICAgJHRoaXMtPmZiRmllbGRCYXNlKCRmb3JtX3B0ciwgJHBhcmFtcyk7CiAgICAkbW9kID0gJiRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICR0aGlzLT5UeXBlID0gJ0ZpbGVVcGxvYWQnOwogICAgLy8gICAgJHRoaXMtPkRpc3BsYXlUeXBlID0gJG1vZC0+TGFuZygnZmllbGRfdHlwZV9maWxlX3VwbG9hZCcpOwogICAgJHRoaXMtPlZhbGlkYXRpb25UeXBlcyA9IGFycmF5KAoJCQkJICAgJG1vZC0+TGFuZygndmFsaWRhdGlvbl9ub25lJyk9Pidub25lJyk7CiAgfQoKICBmdW5jdGlvbiBHZXRGaWVsZElucHV0KCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkKICB7CiAgICAkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICR0eHQgPSAkbW9kLT5DcmVhdGVGaWxlVXBsb2FkSW5wdXQoJGlkLCdfJy4kdGhpcy0+SWQpOwogICAgcmV0dXJuICR0eHQ7CiAgfQoKCiAgZnVuY3Rpb24gTG9hZCgkaWQsICYkcGFyYW1zLCAkbG9hZERlZXA9ZmFsc2UpCiAgewogICAgJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICBwYXJlbnQ6OkxvYWQoJGlkLCRwYXJhbXMsJGxvYWREZWVwKTsKICAgIGlmKCBpc3NldCggJF9GSUxFUyApICYmIGlzc2V0KCAkX0ZJTEVTWyRtb2QtPm1vZHVsZV9pZC4nXycuJHRoaXMtPklkXSApICkKICAgICAgewoJLy8gT2theSwgYSBmaWxlIHdhcyB1cGxvYWRlZAoJJHRoaXMtPlNldFZhbHVlKCRtb2QtPm1vZHVsZV9pZC4nXycuJHRoaXMtPklkKTsKICAgICAgfQogIH0KCiAgZnVuY3Rpb24gU3RhdHVzSW5mbygpCiAgewogICAgJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkbXMgPSAkdGhpcy0+R2V0T3B0aW9uKCdtYXhfc2l6ZScpOwogICAgJGV4dHMgPSAkdGhpcy0+R2V0T3B0aW9uKCdwZXJtaXR0ZWRfZXh0ZW5zaW9ucycpOwogICAgJHJldCA9ICcnOwogICAgJHJldCAuPSAkbW9kLT5MYW5nKCdtYXhpbXVtX3NpemUnKS4nOiAnLiRtcy4na2InOwogICAgJHJldCAuPSAnLCAnOwogICAgJHJldCAuPSAkbW9kLT5MYW5nKCdwZXJtaXR0ZWRfZXh0ZW5zaW9ucycpIC4gJzogJy4kZXh0czsKICAgIHJldHVybiAkcmV0OwogIH0KICAKICAKICBmdW5jdGlvbiBQcmVQb3B1bGF0ZUFkbWluRm9ybSgkZm9ybURlc2NyaXB0b3IpCiAgewogICAgJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkbXMgPSAkdGhpcy0+R2V0T3B0aW9uKCdtYXhfc2l6ZScpOwogICAgJGV4dHMgPSAkdGhpcy0+R2V0T3B0aW9uKCdwZXJtaXR0ZWRfZXh0ZW5zaW9ucycpOwogICAgJHNob3cgPSAkdGhpcy0+R2V0T3B0aW9uKCdzaG93X2RldGFpbHMnKTsKICAgICRzZW5kdG9fdXBsb2FkcyA9ICR0aGlzLT5HZXRPcHRpb24oJ3NlbmR0b191cGxvYWRzJywnZmFsc2UnKTsKICAgICR1cGxvYWRzX2NhdGVnb3J5ID0gJHRoaXMtPkdldE9wdGlvbigndXBsb2Fkc19jYXRlZ29yeScpOwogICAgJHVwbG9hZHNfZGVzdHBhZ2UgPSAkdGhpcy0+R2V0T3B0aW9uKCd1cGxvYWRzX2Rlc3RwYWdlJyk7CgogICAgJG1haW4gPSBhcnJheSgKCQkgIGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX21heGltdW1fc2l6ZScpLic6JywKCQkJJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgCgkJCQkJICAgICAgJ29wdF9tYXhfc2l6ZScsICRtcywgNSwgNSkuCgkJCScgJy4kbW9kLT5MYW5nKCd0aXRsZV9tYXhpbXVtX3NpemVfbG9uZycpKSwKCQkgIGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zJykuJzonLAoJCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAKCQkJCQkgICAgICAnb3B0X3Blcm1pdHRlZF9leHRlbnNpb25zJywKCQkJCQkgICAgICAkZXh0cywyNSw4MCkuJzxici8+Jy4KCQkJJG1vZC0+TGFuZygndGl0bGVfcGVybWl0dGVkX2V4dGVuc2lvbnNfbG9uZycpKSwKCQkgIGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnMnKS4nOicsCgkJCSRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAKCQkJCQkJICAnb3B0X3Nob3dfZGV0YWlscycsICd0cnVlJywgCgkJCQkJCSAgJHNob3cpLgoJCQknICcuJG1vZC0+TGFuZygndGl0bGVfc2hvd19saW1pdGF0aW9uc19sb25nJykpCgkJICk7CgogICAgJHVwbG9hZHMgPSAkbW9kLT5HZXRNb2R1bGVJbnN0YW5jZSgnVXBsb2FkcycpOwogICAgJHNlbmR0b191cGxvYWRzX2xpc3QgPSBhcnJheSgkbW9kLT5MYW5nKCdubycpPT4wLAoJCQkJICRtb2QtPkxhbmcoJ3llcycpPT4xKTsKICAgIGlmKCAkdXBsb2FkcyApCiAgICAgIHsKCSRjYXRlZ29yeWxpc3QgPSAkdXBsb2Fkcy0+Z2V0Q2F0ZWdvcnlMaXN0KCk7CgkkYWR2ID0gYXJyYXkoCgkJICAgICBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9zZW5kdG9fdXBsb2FkcycpLic6JywKCQkJICAgJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkZm9ybURlc2NyaXB0b3IsCgkJCQkJCSAgICAgJ29wdF9zZW5kdG9fdXBsb2FkcycsJHNlbmR0b191cGxvYWRzX2xpc3QsCgkJCQkJCSAgICAgJHNlbmR0b191cGxvYWRzKSksCgkJICAgICBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV91cGxvYWRzX2NhdGVnb3J5JykuJzonLAoJCQkgICAkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRmb3JtRGVzY3JpcHRvciwKCQkJCQkJICAgICAnb3B0X3VwbG9hZHNfY2F0ZWdvcnknLCRjYXRlZ29yeWxpc3QsCgkJCQkJCSAgICAgJHVwbG9hZHNfY2F0ZWdvcnkpKSwKCQkgICAgIGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3VwbG9hZHNfZGVzdHBhZ2UnKS4nOicsCgkJCSAgICRtb2QtPkNyZWF0ZVBhZ2VEcm9wZG93bigkZm9ybURlc2NyaXB0b3IsCgkJCQkJCSAgICAnb3B0X3VwbG9hZHNfZGVzdHBhZ2UnLCR1cGxvYWRzX2Rlc3RwYWdlKSkKCQkJCQkJICAKCQkgICAgICk7CiAgICAgIH0KCiAgICByZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7CiAgfQoKCiAgZnVuY3Rpb24gVmFsaWRhdGUoKQogIHsKICAgICRyZXN1bHQgPSB0cnVlOwogICAgJG1lc3NhZ2UgPSAnJzsKICAgICRtcyA9ICR0aGlzLT5HZXRPcHRpb24oJ21heF9zaXplJyk7CiAgICAkZXh0cyA9ICR0aGlzLT5HZXRPcHRpb24oJ3Blcm1pdHRlZF9leHRlbnNpb25zJyk7CiAgICAkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICRmdWxsQWxpYXMgPSAkdGhpcy0+R2V0VmFsdWUoKTsKICAgIGlmICgkX0ZJTEVTWyRmdWxsQWxpYXNdWydzaXplJ10gPCAxICYmICEgJHRoaXMtPlJlcXVpcmVkKQogICAgICB7CglyZXR1cm4gYXJyYXkodHJ1ZSwnJyk7CiAgICAgIH0KICAgIGlmICgkX0ZJTEVTWyRmdWxsQWxpYXNdWydzaXplJ10gPCAxICYmICR0aGlzLT5SZXF1aXJlZCApCiAgICAgIHsKIAkkcmVzdWx0ID0gZmFsc2U7CiAJJG1lc3NhZ2UgPSAkbW9kLT5MYW5nKCdyZXF1aXJlZF9maWVsZF9taXNzaW5nJyk7CiAgICAgIH0KICAgIGVsc2UgaWYgKCRtcyAhPSAnJyAmJiAkX0ZJTEVTWyRmdWxsQWxpYXNdWydzaXplJ10gPiAoJG1zICogMTAwMCkpCiAgICAgIHsKCSRtZXNzYWdlID0gJG1vZC0+TGFuZygnZmlsZV90b29fbGFyZ2UnKS4gJyAnLigkbXMgKiAxMDAwKS4na2InOwoJJHJlc3VsdCA9IGZhbHNlOwogICAgICB9CiAgICBlbHNlIGlmICgkZXh0cykKICAgICAgewoJJG1hdGNoID0gZmFsc2U7CgkkbGVnYWxFeHRzID0gZXhwbG9kZSgnLCcsJGV4dHMpOwoJZm9yZWFjaCAoJGxlZ2FsRXh0cyBhcyAkdGhpc0V4dCkKCSAgewoJICAgIGlmIChwcmVnX21hdGNoKCcvXC4nLnRyaW0oJHRoaXNFeHQpLickL2knLCRfRklMRVNbJGZ1bGxBbGlhc11bJ25hbWUnXSkpCgkgICAgICB7CgkJJG1hdGNoID0gdHJ1ZTsKCSAgICAgIH0KCSAgICBlbHNlIGlmIChwcmVnX21hdGNoKCcvJy50cmltKCR0aGlzRXh0KS4nL2knLCRfRklMRVNbJGZ1bGxBbGlhc11bJ3R5cGUnXSkpCgkgICAgICB7CgkJJG1hdGNoID0gdHJ1ZTsKCSAgICAgIH0KCSAgfQoJaWYgKCEgJG1hdGNoKQoJICB7CgkgICAgJG1lc3NhZ2UgPSAkbW9kLT5MYW5nKCdpbGxlZ2FsX2ZpbGVfdHlwZScpOwoJICAgICRyZXN1bHQgPSBmYWxzZTsKCSAgfQogICAgICB9CiAgICByZXR1cm4gYXJyYXkoJHJlc3VsdCwgJG1lc3NhZ2UpOwogIH0KICAKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/Form.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkZvcm0gewoKICB2YXIgJG1vZHVsZV9wdHIgPSAtMTsKICB2YXIgJElkID0gLTE7CiAgdmFyICROYW1lID0gJyc7CiAgdmFyICRBbGlhcyA9ICcnOwogIHZhciAkbG9hZGVkID0gJ25vdCc7CiAgdmFyICRmb3JtVG90YWxQYWdlcyA9IDA7CiAgdmFyICRQYWdlOwogIHZhciAkQXR0cnM7CiAgdmFyICRGaWVsZHM7CiAgdmFyICRmb3JtU3RhdGU7CgogIGZ1bmN0aW9uIGZiRm9ybSgmJG1vZHVsZV9wdHIsICYkcGFyYW1zLCAkbG9hZERlZXA9ZmFsc2UpCiAgewogICAgJHRoaXMtPm1vZHVsZV9wdHIgPSYgJG1vZHVsZV9wdHI7CiAgICAkdGhpcy0+RmllbGRzID0gYXJyYXkoKTsKICAgICR0aGlzLT5BdHRycyA9IGFycmF5KCk7CiAgICAkdGhpcy0+Zm9ybVN0YXRlID0gJ25ldyc7CiAgICBpZiAoaXNzZXQoJHBhcmFtc1snZm9ybV9pZCddKSkKICAgICAgewoJJHRoaXMtPklkID0gJHBhcmFtc1snZm9ybV9pZCddOwogICAgICB9CiAgICBpZiAoaXNzZXQoJHBhcmFtc1snZm9ybV9hbGlhcyddKSkKICAgICAgewoJJHRoaXMtPkFsaWFzID0gJHBhcmFtc1snZm9ybV9hbGlhcyddOwogICAgICB9CiAgICBpZiAoaXNzZXQoJHBhcmFtc1snZm9ybV9uYW1lJ10pKQogICAgICB7CgkkdGhpcy0+TmFtZSA9ICRwYXJhbXNbJ2Zvcm1fbmFtZSddOwogICAgICB9CiAgICBpZiAoaXNzZXQoJHBhcmFtc1snY29udGludWUnXSkpCiAgICAgIHsKCSR0aGlzLT5QYWdlID0gJHBhcmFtc1snY29udGludWUnXTsKICAgICAgfQogICAgZWxzZQogICAgICB7CgkkdGhpcy0+UGFnZSA9IDE7CiAgICAgIH0KICAgIGlmIChpc3NldCgkcGFyYW1zWydwcmV2J10pICYmIGlzc2V0KCRwYXJhbXNbJ3ByZXZpb3VzJ10pKQogICAgICB7CgkkdGhpcy0+UGFnZSA9ICRwYXJhbXNbJ3ByZXZpb3VzJ107CgkkcGFyYW1zWydkb25lJ10gPSAwOwogICAgICB9CiAgICAkdGhpcy0+Zm9ybVRvdGFsUGFnZXMgPSAxOwogICAgaWYgKGlzc2V0KCRwYXJhbXNbJ2RvbmUnXSkmJiAkcGFyYW1zWydkb25lJ109PTEpCiAgICAgIHsKCSR0aGlzLT5mb3JtU3RhdGUgPSAnc3VibWl0JzsKICAgICAgfQogICAgaWYgKGlzc2V0KCRwYXJhbXNbJ3VzZXJfZm9ybV92YWxpZGF0ZSddKSAmJiAkcGFyYW1zWyd1c2VyX2Zvcm1fdmFsaWRhdGUnXT09dHJ1ZSkKICAgICAgewoJJHRoaXMtPmZvcm1TdGF0ZSA9ICdjb25maXJtJzsKICAgICAgfQogICAgaWYgKCR0aGlzLT5JZCAhPSAtMSkKICAgICAgewoJaWYgKGlzc2V0KCRwYXJhbXNbJ3Jlc3BvbnNlX2lkJ10pICYmICR0aGlzLT5mb3JtU3RhdGUgPT0gJ3N1Ym1pdCcpCgkgIHsKCSAgICAkdGhpcy0+Zm9ybVN0YXRlID0gJ3VwZGF0ZSc7CgkgIH0KCSR0aGlzLT5Mb2FkKCR0aGlzLT5JZCwgJHBhcmFtcywgJGxvYWREZWVwKTsKICAgICAgfQogICAgZm9yZWFjaCAoJHBhcmFtcyBhcyAkdGhpc1BhcmFtS2V5PT4kdGhpc1BhcmFtVmFsKQogICAgICB7CglpZiAoc3Vic3RyKCR0aGlzUGFyYW1LZXksMCw2KSA9PSAnZm9ybWFfJykKCSAgewoJICAgICR0aGlzUGFyYW1LZXkgPSBzdWJzdHIoJHRoaXNQYXJhbUtleSw2KTsKCSAgICAkdGhpcy0+QXR0cnNbJHRoaXNQYXJhbUtleV0gPSAkdGhpc1BhcmFtVmFsOwoJICB9CgllbHNlIGlmICgkdGhpc1BhcmFtS2V5ID09ICdmb3JtX3RlbXBsYXRlJyAmJiAkdGhpcy0+SWQgIT0gLTEpCgkgIHsKCSAgICAkdGhpcy0+bW9kdWxlX3B0ci0+U2V0VGVtcGxhdGUoJ2ZiXycuJHRoaXMtPklkLCR0aGlzUGFyYW1WYWwpOwoJICB9CiAgICAgIH0KICB9CgogIGZ1bmN0aW9uIFNldEF0dHJpYnV0ZXMoJGF0dHJBcnJheSkKICB7CiAgICAkdGhpcy0+QXR0cnMgPSBhcnJheV9tZXJnZSgkdGhpcy0+QXR0cnMsJGF0dHJBcnJheSk7CiAgfQoKICBmdW5jdGlvbiBTZXRUZW1wbGF0ZSgkdGVtcGxhdGUpCiAgewogICAgJHRoaXMtPkF0dHJzWydmb3JtX3RlbXBsYXRlJ10gPSAkdGVtcGxhdGU7CiAgICAkdGhpcy0+bW9kdWxlX3B0ci0+U2V0VGVtcGxhdGUoJ2ZiXycuJHRoaXMtPklkLCR0ZW1wbGF0ZSk7CiAgfQoKICBmdW5jdGlvbiBHZXRJZCgpCiAgewogICAgcmV0dXJuICR0aGlzLT5JZDsKICB9CgogIGZ1bmN0aW9uIFNldElkKCRpZCkKICB7CiAgICAkdGhpcy0+SWQgPSAkaWQ7CiAgfQoKICBmdW5jdGlvbiBHZXROYW1lKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPk5hbWU7CiAgfQoJCiAgZnVuY3Rpb24gR2V0Rm9ybVN0YXRlKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPmZvcm1TdGF0ZTsKICB9CgkKICBmdW5jdGlvbiBHZXRQYWdlQ291bnQoKQogIHsKICAgIHJldHVybiAkdGhpcy0+Zm9ybVRvdGFsUGFnZXM7CiAgfQoJCiAgZnVuY3Rpb24gR2V0UGFnZU51bWJlcigpCiAgewogICAgcmV0dXJuICR0aGlzLT5QYWdlOwogIH0KCiAgZnVuY3Rpb24gUGFnZUJhY2soKQogIHsKICAgICR0aGlzLT5QYWdlLS07CiAgfQoKCiAgZnVuY3Rpb24gU2V0TmFtZSgkbmFtZSkKICB7CiAgICAkdGhpcy0+TmFtZSA9ICRuYW1lOwogIH0KCQogIGZ1bmN0aW9uIEdldEFsaWFzKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPkFsaWFzOwogIH0KCiAgZnVuY3Rpb24gU2V0QWxpYXMoJGFsaWFzKQogIHsKICAgICR0aGlzLT5BbGlhcyA9ICRhbGlhczsKICB9CgogIGZ1bmN0aW9uIERlYnVnRGlzcGxheSgpCiAgewogICAgJHRtcCA9ICR0aGlzLT5tb2R1bGVfcHRyOwogICAgJHRoaXMtPm1vZHVsZV9wdHIgPSAnW21kcHRyXSc7CiAgICAkdGVtcGxhdGVfdG1wID0gJHRoaXMtPkdldEF0dHIoJ2Zvcm1fdGVtcGxhdGUnLCcnKTsKICAgICR0aGlzLT5TZXRBdHRyKCdmb3JtX3RlbXBsYXRlJyxzdHJsZW4oJHRlbXBsYXRlX3RtcCkuJyBjaGFyYWN0ZXJzJyk7CiAgICAkZmllbGRfdG1wID0gJHRoaXMtPkZpZWxkczsKICAgICR0aGlzLT5GaWVsZHMgPSAnRmllbGQgQXJyYXk6ICcuY291bnQoJGZpZWxkX3RtcCk7CiAgICBkZWJ1Z19kaXNwbGF5KCR0aGlzKTsKICAgICR0aGlzLT5TZXRBdHRyKCdmb3JtX3RlbXBsYXRlJywkdGVtcGxhdGVfdG1wKTsKICAgICR0aGlzLT5GaWVsZHMgPSAkZmllbGRfdG1wOwogICAgZm9yZWFjaCgkdGhpcy0+RmllbGRzIGFzICRmbGQpCiAgICAgIHsKCQkkZmxkLT5EZWJ1Z0Rpc3BsYXkoKTsKICAgICAgfQogICAgJHRoaXMtPm1vZHVsZV9wdHIgPSAkdG1wOwogIH0KCgkKICBmdW5jdGlvbiBTZXRBdHRyKCRhdHRybmFtZSwgJHZhbCkKICB7CiAgICAkdGhpcy0+QXR0cnNbJGF0dHJuYW1lXSA9ICR2YWw7CiAgfQoJCiAgZnVuY3Rpb24gR2V0QXR0cigkYXR0cm5hbWUsICRkZWZhdWx0PSIiKQogIHsKICAgIGlmIChpc3NldCgkdGhpcy0+QXR0cnNbJGF0dHJuYW1lXSkpCiAgICAgIHsKCXJldHVybiAkdGhpcy0+QXR0cnNbJGF0dHJuYW1lXTsKICAgICAgfQogICAgZWxzZQogICAgICB7CglyZXR1cm4gJGRlZmF1bHQ7CiAgICAgIH0KICB9CgkKICBmdW5jdGlvbiBHZXRGaWVsZENvdW50KCkKICB7CiAgICByZXR1cm4gY291bnQoJHRoaXMtPkZpZWxkcyk7CiAgfQoKICBmdW5jdGlvbiBIYXNGaWVsZE5hbWVkKCRuYW1lKQogIHsKICAgICRyZXQgPSBmYWxzZTsKICAgIGZvcigkaT0wOyRpPGNvdW50KCR0aGlzLT5GaWVsZHMpOyRpKyspCiAgICAgIHsKCWlmICgkdGhpcy0+RmllbGRzWyRpXS0+R2V0TmFtZSgpID09ICRuYW1lKQoJICB7CgkgICAgJHJldCA9IHRydWU7CgkgIH0KICAgICAgfQogICAgcmV0dXJuICRyZXQ7CiAgfQoKCiAgZnVuY3Rpb24gVmFsaWRhdGUoKQogIHsKICAgICR2YWxpZGF0ZWQgPSB0cnVlOwogICAgJG1lc3NhZ2UgPSAnJzsKICAgICRmb3JtUGFnZUNvdW50PTE7CiAgICAkdmFsUGFnZSA9ICR0aGlzLT5QYWdlIC0gMTsKICAgIGZvcigkaT0wOyRpPGNvdW50KCR0aGlzLT5GaWVsZHMpOyRpKyspCiAgICAgIHsKCWlmICgkdGhpcy0+RmllbGRzWyRpXS0+R2V0RmllbGRUeXBlKCkgPT0gJ1BhZ2VCcmVha0ZpZWxkJykKCSAgewoJICAgICRmb3JtUGFnZUNvdW50Kys7CgkgIH0KCWlmICgkdmFsUGFnZSAhPSAkZm9ybVBhZ2VDb3VudCkKCSAgewoJICAgIGNvbnRpbnVlOwoJICB9CglpZiAoISAkdGhpcy0+RmllbGRzWyRpXS0+SXNEaXNwb3NpdGlvbigpICYmCgkgICAgJHRoaXMtPkZpZWxkc1skaV0tPklzUmVxdWlyZWQoKSAmJgoJICAgICR0aGlzLT5GaWVsZHNbJGldLT5IYXNWYWx1ZSgpID09IGZhbHNlKQoJICB7CgkgICAgJG1lc3NhZ2UgLj0gIjxoND4iLiR0aGlzLT5tb2R1bGVfcHRyLT5MYW5nKCdwbGVhc2VfZW50ZXJfYV92YWx1ZScsJHRoaXMtPkZpZWxkc1skaV0tPkdldE5hbWUoKSkuIjwvaDQ+XG4iOwoJICAgICR2YWxpZGF0ZWQgPSBmYWxzZTsKCSAgICAkdGhpcy0+RmllbGRzWyRpXS0+U2V0T3B0aW9uKCdpc192YWxpZCcsZmFsc2UpOwoJICB9CgllbHNlIGlmICgkdGhpcy0+RmllbGRzWyRpXS0+R2V0VmFsdWUoKSAhPSAkdGhpcy0+bW9kdWxlX3B0ci0+TGFuZygndW5zcGVjaWZpZWQnKSkKCSAgeyAKCSAgICAkcmVzID0gJHRoaXMtPkZpZWxkc1skaV0tPlZhbGlkYXRlKCk7CgkgICAgaWYgKCRyZXNbMF0gIT0gdHJ1ZSkKCSAgICAgIHsKCQkkbWVzc2FnZSAuPSAiPGg0PiIuICRyZXNbMV0uIjwvaDQ+XG4iOwoJCSR2YWxpZGF0ZWQgPSBmYWxzZTsKCQkkdGhpcy0+RmllbGRzWyRpXS0+U2V0T3B0aW9uKCdpc192YWxpZCcsZmFsc2UpOwoJICAgICAgfQoJICAgIGVsc2UKCSAgICAgIHsKCQkkdGhpcy0+RmllbGRzWyRpXS0+U2V0T3B0aW9uKCdpc192YWxpZCcsdHJ1ZSk7CgkgICAgICB9CgkgIH0KICAgICAgfQogICAgcmV0dXJuIGFycmF5KCR2YWxpZGF0ZWQsICRtZXNzYWdlKTsKICB9CgoKICBmdW5jdGlvbiBIYXNEaXNwb3NpdGlvbigpCiAgewogICAgJGhhc0Rpc3AgPSBmYWxzZTsKICAgIGZvcigkaT0wOyRpPGNvdW50KCR0aGlzLT5GaWVsZHMpOyRpKyspCiAgICAgIHsKCWlmICgkdGhpcy0+RmllbGRzWyRpXS0+SXNEaXNwb3NpdGlvbigpKQoJICB7CgkgICAgJGhhc0Rpc3AgPSB0cnVlOwoJICB9CiAgICAgIH0KICAgIHJldHVybiAkaGFzRGlzcDsKICB9CgogIC8vIHJldHVybiBhbiBhcnJheTogZWxlbWVudCAwIGlzIHRydWUgZm9yIHN1Y2Nlc3MsIGZhbHNlIGZvciBmYWlsdXJlCiAgLy8gZWxlbWVudCAxIGlzIGFuIGFycmF5IG9mIHJlYXNvbnMsIGluIHRoZSBldmVudCBvZiBmYWlsdXJlLgogIGZ1bmN0aW9uIERpc3Bvc2UoJHJldHVybmlkKQogIHsKICAgIC8vIGZpcnN0LCB3ZSBydW4gYWxsIGZpZWxkIG1ldGhvZHMgdGhhdCB3aWxsIG1vZGlmeSBvdGhlciBmaWVsZHMKICAgIGZvcigkaT0wOyRpPGNvdW50KCR0aGlzLT5GaWVsZHMpOyRpKyspCiAgICAgIHsKCWlmICgkdGhpcy0+RmllbGRzWyRpXS0+TW9kaWZpZXNPdGhlckZpZWxkcygpKQoJICB7CgkgICAgJHRoaXMtPkZpZWxkc1skaV0tPk1vZGlmeU90aGVyRmllbGRzKCk7CgkgIH0KICAgICAgfQoKICAgICRyZXNBcnJheSA9IGFycmF5KCk7CiAgICAkcmV0Q29kZSA9IHRydWU7CiAgICAvLyBmb3IgZWFjaCBmb3JtIGRpc3Bvc2l0aW9uIHBzZXVkby1maWVsZCwgZGlzcG9zZSB0aGUgZm9ybSByZXN1bHRzCiAgICBmb3IoJGk9MDskaTxjb3VudCgkdGhpcy0+RmllbGRzKTskaSsrKQogICAgICB7CglpZiAoJHRoaXMtPkZpZWxkc1skaV0tPklzRGlzcG9zaXRpb24oKSAmJiAkdGhpcy0+RmllbGRzWyRpXS0+RGlzcG9zaXRpb25Jc1Blcm1pdHRlZCgpKQoJICB7CgkgICAgJHJlcyA9ICR0aGlzLT5GaWVsZHNbJGldLT5EaXNwb3NlRm9ybSgkcmV0dXJuaWQpOwoJICAgIGlmICgkcmVzWzBdID09IGZhbHNlKQoJICAgICAgewoJCSRyZXRDb2RlID0gZmFsc2U7CgkJYXJyYXlfcHVzaCgkcmVzQXJyYXksJHJlc1sxXSk7CgkgICAgICB9CgkgIH0KICAgICAgfQogICAgcmV0dXJuIGFycmF5KCRyZXRDb2RlLCRyZXNBcnJheSk7CQkKICB9CgogIGZ1bmN0aW9uIFJlbmRlckZvcm1IZWFkZXIoKQogIHsKICAgIGlmICgkdGhpcy0+bW9kdWxlX3B0ci0+R2V0UHJlZmVyZW5jZSgnc2hvd192ZXJzaW9uJywwKSA9PSAxKQogICAgICB7CglyZXR1cm4gIlxuPCEtLSBTdGFydCBGb3JtQnVpbGRlciBNb2R1bGUgKCIuJHRoaXMtPm1vZHVsZV9wdHItPkdldFZlcnNpb24oKS4iKSAtLT5cbiI7CiAgICAgIH0KICB9CgogIGZ1bmN0aW9uIFJlbmRlckZvcm1Gb290ZXIoKQogIHsKICAgIGlmICgkdGhpcy0+bW9kdWxlX3B0ci0+R2V0UHJlZmVyZW5jZSgnc2hvd192ZXJzaW9uJywwKSA9PSAxKQogICAgICB7CglyZXR1cm4gIlxuPCEtLSBFbmQgRm9ybUJ1aWxkZXIgTW9kdWxlIC0tPlxuIjsKICAgICAgfQogIH0KCgogIC8vIHJldHVybnMgYSBzdHJpbmcuCiAgZnVuY3Rpb24gUmVuZGVyRm9ybSgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCiAgewogICAgJG1vZCA9ICR0aGlzLT5tb2R1bGVfcHRyOwogICAgaWYgKCR0aGlzLT5JZCA9PSAtMSkKICAgICAgewoJcmV0dXJuICI8IS0tIG5vIGZvcm0gLS0+XG4iOwogICAgICB9CiAgICBpZiAoJHRoaXMtPmxvYWRlZCAhPSAnZnVsbCcpCiAgICAgIHsKCSR0aGlzLT5Mb2FkKCR0aGlzLT5JZCwkcGFyYW1zLHRydWUpOwogICAgICB9CiAgICAkcmVxU3ltYm9sID0gJHRoaXMtPkdldEF0dHIoJ3JlcXVpcmVkX2ZpZWxkX3N5bWJvbCcsJyonKTsKCQkJCQogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX3BhZ2VfeF9vZl95JywkbW9kLT5MYW5nKCd0aXRsZV9wYWdlX3hfb2ZfeScsYXJyYXkoJHRoaXMtPlBhZ2UsJHRoaXMtPmZvcm1Ub3RhbFBhZ2VzKSkpOwoJCQogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2Nzc19jbGFzcycsJHRoaXMtPkdldEF0dHIoJ2Nzc19jbGFzcycsJycpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0b3RhbF9wYWdlcycsJHRoaXMtPmZvcm1Ub3RhbFBhZ2VzKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aGlzX3BhZ2UnLCR0aGlzLT5QYWdlKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdmb3JtX25hbWUnLCR0aGlzLT5OYW1lKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdmb3JtX2lkJywkdGhpcy0+SWQpOwoJCQogICAgJGhpZGRlbiA9ICRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ2Zvcm1faWQnLCAkdGhpcy0+SWQpOwogICAgJGhpZGRlbiAuPSAkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdjb250aW51ZScsICgkdGhpcy0+UGFnZSArIDEpKTsKICAgIGlmIChpc3NldCgkcGFyYW1zWydicm93c2VyX2lkJ10pKQogICAgICB7CgkkaGlkZGVuIC49ICRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwnYnJvd3Nlcl9pZCcsJHBhcmFtc1snYnJvd3Nlcl9pZCddKTsKICAgICAgfQogICAgaWYgKCR0aGlzLT5QYWdlID4gMSkKICAgICAgewoJJGhpZGRlbiAuPSAkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdwcmV2aW91cycsICgkdGhpcy0+UGFnZSAtIDEpKTsKICAgICAgfQogICAgaWYgKCR0aGlzLT5QYWdlID09ICR0aGlzLT5mb3JtVG90YWxQYWdlcykKICAgICAgewoJJGhpZGRlbiAuPSAkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdkb25lJywgMSk7CiAgICAgIH0KICAgICRmaWVsZHMgPSBhcnJheSgpOwogICAgJGZvcm1QYWdlQ291bnQgPSAxOwogICAgZm9yICgkaT0wOyAkaSA8IGNvdW50KCR0aGlzLT5GaWVsZHMpOyAkaSsrKQogICAgICB7CgkkdGhpc0ZpZWxkID0gJiR0aGlzLT5GaWVsZHNbJGldOwoJaWYgKCR0aGlzRmllbGQtPkdldEZpZWxkVHlwZSgpID09ICdQYWdlQnJlYWtGaWVsZCcpCgkgIHsKCSAgICAkZm9ybVBhZ2VDb3VudCsrOwoJICB9CglpZiAoJGZvcm1QYWdlQ291bnQgIT0gJHRoaXMtPlBhZ2UpCgkgIHsKCSAgICAkdGVzdEluZGV4ID0gJ18nLiR0aGlzLT5GaWVsZHNbJGldLT5HZXRJZCgpOwoJICAgIGlmICghaXNzZXQoJHBhcmFtc1skdGVzdEluZGV4XSkpCgkgICAgICB7CgkJLy8gZG8gd2UgbmVlZCB0byB3cml0ZSBzb21ldGhpbmc/CgkgICAgICB9CgkgICAgZWxzZWlmIChpc19hcnJheSgkcGFyYW1zWyR0ZXN0SW5kZXhdKSkKCSAgICAgIHsKCQlmb3JlYWNoICgkcGFyYW1zWyR0ZXN0SW5kZXhdIGFzICR2YWwpCgkJICB7CgkJICAgICRoaWRkZW4gLj0gJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLAoJCQkJCQkgICAgICAgJHRlc3RJbmRleC4nW10nLAoJCQkJCQkgICAgICAgaHRtbHNwZWNpYWxjaGFycygkdmFsLEVOVF9RVU9URVMpKTsKCQkgIH0KCSAgICAgIH0KCSAgICBlbHNlCgkgICAgICB7CgkJJGhpZGRlbiAuPSAkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsCgkJCQkJCSAgICR0ZXN0SW5kZXgsCgkJCQkJCSAgIGh0bWxzcGVjaWFsY2hhcnMoJHBhcmFtc1skdGVzdEluZGV4XSxFTlRfUVVPVEVTKSk7CgkgICAgICB9CgkgICAgY29udGludWU7CgkgIH0KCSRvbmVzZXQgPSBuZXcgc3RkQ2xhc3MoKTsKCSRvbmVzZXQtPmRpc3BsYXkgPSAkdGhpc0ZpZWxkLT5EaXNwbGF5SW5Gb3JtKCk/MTowOwoJJG9uZXNldC0+cmVxdWlyZWQgPSAkdGhpc0ZpZWxkLT5Jc1JlcXVpcmVkKCk/MTowOwoJJG9uZXNldC0+cmVxdWlyZWRfc3ltYm9sID0gJHRoaXNGaWVsZC0+SXNSZXF1aXJlZCgpPyRyZXFTeW1ib2w6Jyc7Cgkkb25lc2V0LT5jc3NfY2xhc3MgPSAkdGhpc0ZpZWxkLT5HZXRPcHRpb24oJ2Nzc19jbGFzcycpOwoJJG9uZXNldC0+dmFsaWQgPSAkdGhpc0ZpZWxkLT5HZXRPcHRpb24oJ2lzX3ZhbGlkJyx0cnVlKT8xOjA7Cgkkb25lc2V0LT5oaWRlX25hbWUgPSAwOwoJaWYoICghJHRoaXNGaWVsZC0+SGFzTGFiZWwoKSkgfHwgJHRoaXNGaWVsZC0+SGlkZUxhYmVsKCkgKQoJICB7CgkgICAgJG9uZXNldC0+aGlkZV9uYW1lID0gMTsKCSAgfQoJJG9uZXNldC0+bmFtZSA9ICR0aGlzRmllbGQtPkdldE5hbWUoKTsKCSRvbmVzZXQtPmlucHV0ID0gJHRoaXNGaWVsZC0+R2V0RmllbGRJbnB1dCgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCk7Cgkkb25lc2V0LT5pbnB1dF9pZCA9ICRpZC4nXycuJHRoaXNGaWVsZC0+R2V0SUQoKTsKCSRvbmVzZXQtPm11bHRpcGxlX3BhcnRzID0gJHRoaXNGaWVsZC0+SGFzTXVsdGlwbGVGb3JtQ29tcG9uZW50cygpPzE6MDsKCSRvbmVzZXQtPnR5cGUgPSAkdGhpc0ZpZWxkLT5HZXREaXNwbGF5VHlwZSgpOwoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJHRoaXNGaWVsZC0+R2V0TmFtZSgpLCRvbmVzZXQpOwoJYXJyYXlfcHVzaCgkZmllbGRzLCRvbmVzZXQpOwogICAgICB9CgogICAgJG1vZC0+c21hcnR5LT5hc3NpZ25fYnlfcmVmKCdoaWRkZW4nLCRoaWRkZW4pOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ25fYnlfcmVmKCdmaWVsZHMnLCRmaWVsZHMpOwoKICAgICRqc1N0ciA9ICcnOwogICAgaWYgKCR0aGlzLT5HZXRBdHRyKCdpbnB1dF9idXR0b25fc2FmZXR5JywnMCcpID09ICcxJykKICAgICAgewoJJGpzU3RyID0gJzxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiPgogICAgdmFyIHN1Ym1pdHRlZCA9IDA7CiAgICBmdW5jdGlvbiBMb2NrQnV0dG9uIChmb3JtLGVsZW1lbnQpIHsKICAgICAgIGlmICggISBzdWJtaXR0ZWQgKSB7IAogICAgICAgICAgIGZvcm0uZWxlbWVudHNbZWxlbWVudF0uZGlzYWJsZWQ9dHJ1ZTsKICAgICAgICAgICBzdWJtaXR0ZWQgPSAxOwogICAgICAgICAgIGZvcm0uc3VibWl0OwogICAgICAgfQogICAgICB9CiAgICB9Cjwvc2NyaXB0Pic7CiAgICAgIH0KCiAgICBpZiAoJHRoaXMtPlBhZ2UgPiAxKQogICAgICB7CgkkbW9kLT5zbWFydHktPmFzc2lnbigncHJldicsJG1vZC0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAncHJldicsCgkJCQkJCQkgICAgJHRoaXMtPkdldEF0dHIoJ3ByZXZfYnV0dG9uX3RleHQnKSwKCQkJCQkJCSAgICAnY2xhc3M9ImZic3VibWl0X3ByZXYiJykpOwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdwcmV2JywnJyk7CiAgICAgIH0KCiAgICBpZiAoJHRoaXMtPlBhZ2UgPCAkZm9ybVBhZ2VDb3VudCkKICAgICAgewoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3N1Ym1pdCcsJG1vZC0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnc3VibWl0JywKCQkJCQkJCSAgICAgICR0aGlzLT5HZXRBdHRyKCduZXh0X2J1dHRvbl90ZXh0JyksCgkJCQkJCQkgICAgICAnY2xhc3M9ImZic3VibWl0X25leHQiJykpOwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCRtb2QtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ3N1Ym1pdCcsCgkJCQkJCQkgICAgICAkdGhpcy0+R2V0QXR0cignc3VibWl0X2J1dHRvbl90ZXh0JyksCgkJCQkJCQkgICAgICAnY2xhc3M9ImZic3VibWl0IicpKTsKICAgICAgfQoKICAgIC8vIGZpZ3VyZSBvdXQgaG93IHRvIHJlbmRlciB0aGUgZm9ybSwgbm93IHRoYXQgaXQncyBzbWFydHktaXplZAogICAgc3dpdGNoICgkdGhpcy0+R2V0QXR0cignZm9ybV9kaXNwbGF5dHlwZScsJ3RhYicpKQogICAgICB7CiAgICAgIGNhc2UgJ3RhYic6Cgl7CgkgIGlmICgkdGhpcy0+R2V0QXR0cigndGl0bGVfcG9zaXRpb24nLCdsZWZ0JykgPT0gJ2xlZnQnKQoJICAgIHsKCSAgICAgIHJldHVybiAkbW9kLT5Qcm9jZXNzVGVtcGxhdGUoJ1JlbmRlckZvcm1UYWJsZVRpdGxlTGVmdC50cGwnKTsKCSAgICB9CgkgIGVsc2UKCSAgICB7CgkgICAgICByZXR1cm4gJG1vZC0+UHJvY2Vzc1RlbXBsYXRlKCdSZW5kZXJGb3JtVGFibGVUaXRsZVRvcC50cGwnKTsKCSAgICB9Cgl9CiAgICAgIGNhc2UgJ2Nzc29ubHknOgoJewoJICByZXR1cm4gJG1vZC0+UHJvY2Vzc1RlbXBsYXRlKCdSZW5kZXJGb3JtQ1NTLnRwbCcpOwoJfQogICAgICBjYXNlICd0ZW1wbGF0ZSc6Cgl7CgkgIHJldHVybiAkbW9kLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YWJhc2UoJ2ZiXycuJHRoaXMtPklkKTsKCX0KICAgICAgfQogIH0KCiAgZnVuY3Rpb24gTG9hZEZvcm0oJGxvYWREZWVwPWZhbHNlKQogIHsKICAgIHJldHVybiAkdGhpcy0+TG9hZCgkdGhpcy0+SWQsIGFycmF5KCksICRsb2FkRGVlcCk7CiAgfQoKICBmdW5jdGlvbiBMb2FkKCRmb3JtSWQsICYkcGFyYW1zLCAkbG9hZERlZXA9ZmFsc2UpCiAgewogICAgJHNxbCA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZm9ybSBXSEVSRSBmb3JtX2lkPT8nOwogICAgJHJzID0gJHRoaXMtPm1vZHVsZV9wdHItPmRiSGFuZGxlLT5FeGVjdXRlKCRzcWwsIGFycmF5KCRmb3JtSWQpKTsKICAgIGlmKCRycyAmJiAkcnMtPlJlY29yZENvdW50KCkgPiAwKQogICAgICB7CgkkcmVzdWx0ID0gJHJzLT5GZXRjaFJvdygpOwoJJHRoaXMtPklkID0gJHJlc3VsdFsnZm9ybV9pZCddOwoJaWYgKCFpc3NldCgkcGFyYW1zWydmb3JtX25hbWUnXSkgfHwgZW1wdHkoJHBhcmFtc1snZm9ybV9uYW1lJ10pKQoJICB7CgkgICAgJHRoaXMtPk5hbWUgPSAkcmVzdWx0WyduYW1lJ107CgkgIH0KCWlmICghaXNzZXQoJHBhcmFtc1snZm9ybV9hbGlhcyddKSB8fCBlbXB0eSgkcGFyYW1zWydmb3JtX2FsaWFzJ10pKQoJICB7CgkgICAgJHRoaXMtPkFsaWFzID0gJHJlc3VsdFsnYWxpYXMnXTsKCSAgfQogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCXJldHVybiBmYWxzZTsKICAgICAgfQogICAgJHNxbCA9ICdTRUxFQ1QgbmFtZSx2YWx1ZSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLgogICAgICAnbW9kdWxlX2ZiX2Zvcm1fYXR0ciBXSEVSRSBmb3JtX2lkPT8nOwogICAgJHJzID0gJHRoaXMtPm1vZHVsZV9wdHItPmRiSGFuZGxlLT5FeGVjdXRlKCRzcWwsIGFycmF5KCRmb3JtSWQpKTsKICAgIHdoaWxlICgkcnMgJiYgJHJlc3VsdD0kcnMtPkZldGNoUm93KCkpCiAgICAgIHsKCSR0aGlzLT5BdHRyc1skcmVzdWx0WyduYW1lJ11dID0gJHJlc3VsdFsndmFsdWUnXTsKICAgICAgfQogICAgICAgICAgCiAgICAkdGhpcy0+bG9hZGVkID0gJ3N1bW1hcnknOwoKICAgIGlmIChpc3NldCgkcGFyYW1zWydyZXNwb25zZV9pZCddKSkKICAgICAgewoJJGxvYWREZWVwID0gdHJ1ZTsKICAgICAgfQoJCQkKICAgIGlmICgkbG9hZERlZXApCiAgICAgIHsKCS8vIGlmIGl0J3MgYSBzdG9yZWQgZm9ybSwgbG9hZCB0aGUgcmVzdWx0cyAtLSBidXQgd2UgbmVlZCB0byBtYW51YWxseSBtZXJnZSB0aGVtLAoJLy8gc2luY2UgJHBhcmFtc1tdIHNob3VsZCBvdmVycmlkZSB0aGUgZGF0YWJhc2UgdmFsdWUgKHNheSB3ZSdyZSByZXN1Ym1pdHRpbmcgYSBmb3JtKQoJaWYgKGlzc2V0KCRwYXJhbXNbJ3Jlc3BvbnNlX2lkJ10pKQoJICB7CgkgICAgJGxvYWRQYXJhbXMgPSBhcnJheSgncmVzcG9uc2VfaWQnPT4kcGFyYW1zWydyZXNwb25zZV9pZCddKTsKCSAgICAkdGhpcy0+TG9hZFJlc3BvbnNlVmFsdWVzKCRsb2FkUGFyYW1zKTsKCSAgICBmb3JlYWNoICgkbG9hZFBhcmFtcyBhcyAkdGhpc1BhcmFtS2V5PT4kdGhpc1BhcmFtVmFsdWUpCgkgICAgICB7CgkJaWYgKCEgaXNzZXQoJHBhcmFtc1skdGhpc1BhcmFtS2V5XSkpCgkJICB7CgkJICAgICRwYXJhbXNbJHRoaXNQYXJhbUtleV0gPSAkdGhpc1BhcmFtVmFsdWU7CgkJICB9CgkgICAgICB9CgkgIH0KCgkkc3FsID0gJ1NFTEVDVCAqIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKS4KCSAgJ21vZHVsZV9mYl9maWVsZCBXSEVSRSBmb3JtX2lkPT8gT1JERVIgQlkgb3JkZXJfYnknOwoJJHJzID0gJHRoaXMtPm1vZHVsZV9wdHItPmRiSGFuZGxlLT5FeGVjdXRlKCRzcWwsIGFycmF5KCRmb3JtSWQpKTsKCSRyZXN1bHQgPSBhcnJheSgpOwoJaWYgKCRycyAmJiAkcnMtPlJlY29yZENvdW50KCkgPiAwKQoJICB7CgkgICAgJHJlc3VsdCA9ICRycy0+R2V0QXJyYXkoKTsKCSAgfQoJJGZpZWxkQ291bnQgPSAwOwoJaWYgKGNvdW50KCRyZXN1bHQpID4gMCkKCSAgewoJICAgIGZvcmVhY2goJHJlc3VsdCBhcyAkdGhpc1JlcykKCSAgICAgIHsKCQkkY2xhc3NOYW1lID0gJHRoaXMtPk1ha2VDbGFzc05hbWUoJHRoaXNSZXNbJ3R5cGUnXSwgJycpOwoJCS8vIGNyZWF0ZSB0aGUgZmllbGQgb2JqZWN0CgkJaWYgKAoJCSAgICAoIAoJCSAgICAgaXNzZXQoJHRoaXNSZXNbJ2ZpZWxkX2lkJ10pICYmCgkJICAgICAgKAoJCSAgICAgICBpc3NldCgkcGFyYW1zWydfJy4kdGhpc1Jlc1snZmllbGRfaWQnXV0pIHx8CgkJICAgICAgIGlzc2V0KCRwYXJhbXNbJ19fJy4kdGhpc1Jlc1snZmllbGRfaWQnXV0pCgkJICAgICAgICkKCQkgICAgICApIHx8CgkJICAgIChpc3NldCgkdGhpc1Jlc1snZmllbGRfaWQnXSkgJiYKCQkgICAgIGlzc2V0KCRwYXJhbXNbJ3ZhbHVlXycuJHRoaXNSZXNbJ25hbWUnXV0pKSB8fAoJCSAgICAoCgkJICAgICBpc3NldCgkcGFyYW1zWydmaWVsZF9pZCddKSAmJiBpc3NldCgkdGhpc1Jlc1snZmllbGRfaWQnXSkgJiYKCQkgICAgICRwYXJhbXNbJ2ZpZWxkX2lkJ10gPT0gJHRoaXNSZXNbJ2ZpZWxkX2lkJ10KCQkgICAgICkKCQkgICAgKQoJCSAgewoJCSAgICAkdGhpc1JlcyA9IGFycmF5X21lcmdlKCR0aGlzUmVzLCRwYXJhbXMpOwoJCSAgfQoJCSR0aGlzLT5GaWVsZHNbJGZpZWxkQ291bnRdID0gJiR0aGlzLT5OZXdGaWVsZCgkdGhpc1Jlcyk7CgkJJGZpZWxkQ291bnQrKzsKCSAgICAgIH0KCSAgfQoJJHRoaXMtPmxvYWRlZCA9ICdmdWxsJzsKICAgICAgfQoKCQkKICAgIGZvciAoJGk9MDsgJGkgPCBjb3VudCgkdGhpcy0+RmllbGRzKTsgJGkrKykKICAgICAgewoJaWYgKCR0aGlzLT5GaWVsZHNbJGldLT5UeXBlID09ICdQYWdlQnJlYWtGaWVsZCcpCgkgIHsKCSAgICAkdGhpcy0+Zm9ybVRvdGFsUGFnZXMrKzsKCSAgfQogICAgICB9CgogICAgcmV0dXJuIHRydWU7CiAgfQoKICBmdW5jdGlvbiBJbXBvcnRYTUwoJiRwYXJhbXMpCiAgewogIAkvLyB4bWxfcGFyc2VyX2NyZWF0ZSwgeG1sX3BhcnNlX2ludG9fc3RydWN0CiAgCSRwYXJzZXIgPSB4bWxfcGFyc2VyX2NyZWF0ZSgnJyk7CiAgIHhtbF9wYXJzZXJfc2V0X29wdGlvbiggJHBhcnNlciwgWE1MX09QVElPTl9DQVNFX0ZPTERJTkcsIDAgKTsKICAgeG1sX3BhcnNlcl9zZXRfb3B0aW9uKCAkcGFyc2VyLCBYTUxfT1BUSU9OX1NLSVBfV0hJVEUsIDEgKTsKCXhtbF9wYXJzZV9pbnRvX3N0cnVjdCgkcGFyc2VyLCBmaWxlX2dldF9jb250ZW50cygkcGFyYW1zWyd4bWxfZmlsZSddKSwgJHZhbHMpOwoJeG1sX3BhcnNlcl9mcmVlKCRwYXJzZXIpOwoJJGVsZW1lbnRzID0gYXJyYXkoKTsKCSRzdGFjayA9IGFycmF5KCk7Cglmb3JlYWNoICggJHZhbHMgYXMgJHRhZyApCgkJewoJCSRpbmRleCA9IGNvdW50KCAkZWxlbWVudHMgKTsKCQlpZiAoICR0YWdbJ3R5cGUnXSA9PSAiY29tcGxldGUiIHx8ICR0YWdbJ3R5cGUnXSA9PSAib3BlbiIgKQoJCQl7CgkJCSRlbGVtZW50c1skaW5kZXhdID0gYXJyYXkoKTsKCQkJJGVsZW1lbnRzWyRpbmRleF1bJ25hbWUnXSA9ICR0YWdbJ3RhZyddOwoJCQkkZWxlbWVudHNbJGluZGV4XVsnYXR0cmlidXRlcyddID0gZW1wdHkoJHRhZ1snYXR0cmlidXRlcyddKSA/ICIiIDogJHRhZ1snYXR0cmlidXRlcyddOwoJCQkkZWxlbWVudHNbJGluZGV4XVsnY29udGVudCddICAgID0gZW1wdHkoJHRhZ1sndmFsdWUnXSkgPyAiIiA6ICR0YWdbJ3ZhbHVlJ107CgkJCWlmICggJHRhZ1sndHlwZSddID09ICJvcGVuIiApCgkJCQl7ICAgICMgcHVzaAoJCQkJJGVsZW1lbnRzWyRpbmRleF1bJ2NoaWxkcmVuJ10gPSBhcnJheSgpOwoJCQkJJHN0YWNrW2NvdW50KCRzdGFjayldID0gJiRlbGVtZW50czsKCQkJCSRlbGVtZW50cyA9ICYkZWxlbWVudHNbJGluZGV4XVsnY2hpbGRyZW4nXTsKCQkJCX0KICAgICAgICB9CgkJaWYgKCAkdGFnWyd0eXBlJ10gPT0gImNsb3NlIiApCgkJCXsgICAgIyBwb3AKCQkJJGVsZW1lbnRzID0gJiRzdGFja1tjb3VudCgkc3RhY2spIC0gMV07CgkJCXVuc2V0KCRzdGFja1tjb3VudCgkc3RhY2spIC0gMV0pOwoJCQl9CgkJfQoJaWYgKCFpc3NldCgkZWxlbWVudHNbMF0pIHx8ICFpc3NldCgkZWxlbWVudHNbMF0pIHx8ICFpc3NldCgkZWxlbWVudHNbMF1bJ2F0dHJpYnV0ZXMnXSkpCgkJewoJCS8vcGFyc2luZyBmYWlsZWQsIG9yIGludmFsaWQgZmlsZS4KCQlyZXR1cm4gZmFsc2U7CgkJfQoJJHBhcmFtc1snZm9ybV9pZCddID0gLTE7IC8vIG92ZXJyaWRlIGFueSBmb3JtX2lkIHZhbHVlcyB0aGF0IG1heSBiZSBhcm91bmQKCSRmb3JtQXR0cnMgPSAmJGVsZW1lbnRzWzBdWydhdHRyaWJ1dGVzJ107CglpZiAoJHRoaXMtPmluWE1MKCRmb3JtQXR0cnNbJ25hbWUnXSkpCgkJewoJCSR0aGlzLT5TZXROYW1lKCRmb3JtQXR0cnNbJ25hbWUnXSk7CgkJfQoJaWYgKCR0aGlzLT5pblhNTCgkZm9ybUF0dHJzWydhbGlhcyddKSkKCQl7CgkJJHRoaXMtPlNldEFsaWFzKCRmb3JtQXR0cnNbJ2FsaWFzJ10pOwoJCX0KCS8vIHBvcHVsYXRlIHRoZSBhdHRyaWJ1dGVzIGZpcnN0LCBzbyB3ZSBjYW4gc2F2ZSB0aGUgZm9ybSBhbmQgdGhlbiBzdGFydCBhZGRpbmcgZmllbGRzIHRvIGl0LgoJZm9yZWFjaCAoJGVsZW1lbnRzWzBdWydjaGlsZHJlbiddIGFzICR0aGlzQ2hpbGQpCgkJewoJCWlmICgkdGhpc0NoaWxkWyduYW1lJ10gPT0gJ2F0dHJpYnV0ZScpCgkJCXsKCQkJJHRoaXMtPlNldEF0dHIoJHRoaXNDaGlsZFsnYXR0cmlidXRlcyddWydrZXknXSwgJHRoaXNDaGlsZFsnY29udGVudCddKTsKCQkJfQoJCX0KCSR0aGlzLT5TdG9yZSgpOwoJJHBhcmFtc1snZm9ybV9pZCddID0gJHRoaXMtPkdldElkKCk7Cglmb3JlYWNoICgkZWxlbWVudHNbMF1bJ2NoaWxkcmVuJ10gYXMgJHRoaXNDaGlsZCkKCQl7CgkJaWYgKCR0aGlzQ2hpbGRbJ25hbWUnXSA9PSAnZmllbGQnKQoJCQl7CgkJCSRuZXdGaWVsZCA9IG5ldyBmYkZpZWxkQmFzZSgkdGhpcywgJHBhcmFtcyk7CgkJCSRmaWVsZEF0dHJzID0gJiR0aGlzQ2hpbGRbJ2F0dHJpYnV0ZXMnXTsKCQkJaWYgKCR0aGlzLT5pblhNTCgkZmllbGRBdHRyc1snbmFtZSddKSkKCQkJCXsKCQkJCSRuZXdGaWVsZC0+U2V0TmFtZSgkZmllbGRBdHRyc1snbmFtZSddKTsKCQkJCX0KCQkJaWYgKCR0aGlzLT5pblhNTCgkZmllbGRBdHRyc1sndHlwZSddKSkKCQkJCXsKCQkJCSRuZXdGaWVsZC0+U2V0RmllbGRUeXBlKCRmaWVsZEF0dHJzWyd0eXBlJ10pOwoJCQkJfQoJCQkkbmV3RmllbGQtPlNldFZhbGlkYXRpb25UeXBlKCRmaWVsZEF0dHJzWyd2YWxpZGF0aW9uX3R5cGUnXSk7CgkJCWlmICgkdGhpcy0+aW5YTUwoJGZpZWxkQXR0cnNbJ29yZGVyX2J5J10pKQoJCQkJewoJCQkJJG5ld0ZpZWxkLT5TZXRPcmRlcigkZmllbGRBdHRyc1snb3JkZXJfYnknXSk7CgkJCQl9CgkJCWlmICgkdGhpcy0+aW5YTUwoJGZpZWxkQXR0cnNbJ3JlcXVpcmVkJ10pKQoJCQkJewoJCQkJJG5ld0ZpZWxkLT5TZXRSZXF1aXJlZCgkZmllbGRBdHRyc1sncmVxdWlyZWQnXSk7CgkJCQl9CgkJCWlmICgkdGhpcy0+aW5YTUwoJGZpZWxkQXR0cnNbJ2hpZGVfbGFiZWwnXSkpCgkJCQl7CgkJCQkkbmV3RmllbGQtPlNldEhpZGVMYWJlbCgkZmllbGRBdHRyc1snaGlkZV9sYWJsZSddKTsKCQkJCX0KCQkJZm9yZWFjaCAoJHRoaXNDaGlsZFsnY2hpbGRyZW4nXSBhcyAkdGhpc09wdCkKCQkJCXsKCQkJCSRuZXdGaWVsZC0+UHVzaE9wdGlvbkVsZW1lbnQoJHRoaXNPcHRbJ2F0dHJpYnV0ZXMnXVsnbmFtZSddLAoJCQkJCSR0aGlzT3B0Wydjb250ZW50J10pOwoJCQkJfQoJCQkkbmV3RmllbGQtPlN0b3JlKHRydWUpOwoJCQl9CgkJfQoJcmV0dXJuIHRydWU7CQogIH0KCiAgZnVuY3Rpb24gaW5YTUwoJiR2YXIpCiAgewogIAkJaWYgKGlzc2V0KCR2YXIpICYmIHN0cmxlbigkdmFyKSA+IDApCiAgCQkJewoJCQlyZXR1cm4gdHJ1ZTsKCQkJfQoJCWVsc2UKCQkJewoJCQlyZXR1cm4gZmFsc2U7CgkJCX0KICB9CgogIGZ1bmN0aW9uIEV4cG9ydFhNTCgkZXhwb3J0VmFsdWVzID0gZmFsc2UpCiAgewoJJHhtbHN0ciA9ICI8P3htbCB2ZXJzaW9uPVwiMS4wXCIgZW5jb2Rpbmc9XCJ1dGYtOFwiPz5cbiI7CgkkeG1sc3RyIC49ICI8Zm9ybSBpZD1cIiIuJHRoaXMtPklkLiJcIlxuIjsKCSR4bWxzdHIgLj0gIlx0bmFtZT1cIiIuJHRoaXMtPk5hbWUuIlwiXG4iOwoJJHhtbHN0ciAuPSAiXHRhbGlhcz1cIiIuJHRoaXMtPkFsaWFzLiJcIj5cbiI7CiAgIGZvcmVhY2ggKCR0aGlzLT5BdHRycyBhcyAkdGhpc0F0dHJLZXk9PiR0aGlzQXR0clZhbHVlKQogICAgICB7CgkJJHhtbHN0ciAuPSAiXHRcdDxhdHRyaWJ1dGUga2V5PVwiJHRoaXNBdHRyS2V5XCI+PCFbQ0RBVEFbJHRoaXNBdHRyVmFsdWVdXT48L2F0dHJpYnV0ZT5cbiI7CgkJfQoJZm9yZWFjaCgkdGhpcy0+RmllbGRzIGFzICR0aGlzRmllbGQpCgkJewoJCQkkeG1sc3RyIC49ICR0aGlzRmllbGQtPkV4cG9ydFhNTCgkZXhwb3J0dmFsdWVzKTsKCQl9CgkkeG1sc3RyIC49ICI8L2Zvcm0+XG4iOwoJcmV0dXJuICR4bWxzdHI7CiAgfQoKCiAgLy8gc3RvcmVEZWVwIGFsc28gc3RvcmVzIGFsbCBmaWVsZHMgYW5kIG9wdGlvbnMgZm9yIGEgZm9ybQogIGZ1bmN0aW9uIFN0b3JlKCRzdG9yZURlZXA9ZmFsc2UpCiAgewogICAgaWYgKCR0aGlzLT5JZCA9PSAtMSkKICAgICAgewoJJHRoaXMtPklkID0gJHRoaXMtPm1vZHVsZV9wdHItPmRiSGFuZGxlLT5HZW5JRChjbXNfZGJfcHJlZml4KCkuCgkJCQkJCSAgICAgICAnbW9kdWxlX2ZiX2Zvcm1fc2VxJyk7Cgkkc3FsID0gJ0lOU0VSVCBJTlRPICcgLiBjbXNfZGJfcHJlZml4KCkuCgkgICdtb2R1bGVfZmJfZm9ybSAoZm9ybV9pZCwgbmFtZSwgYWxpYXMpICcuCgkgICdWQUxVRVMgKD8sID8sID8pJzsKCSRyZXMgPSAkdGhpcy0+bW9kdWxlX3B0ci0+ZGJIYW5kbGUtPkV4ZWN1dGUoJHNxbCwKCQkJCQkJICAgIGFycmF5KCR0aGlzLT5JZCwgJHRoaXMtPk5hbWUsICR0aGlzLT5BbGlhcykpOwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCSRzcWwgPSAnVVBEQVRFICcgLiBjbXNfZGJfcHJlZml4KCkuCgkgICdtb2R1bGVfZmJfZm9ybSBzZXQgbmFtZT0/LCBhbGlhcz0/IHdoZXJlIGZvcm1faWQ9Pyc7CgkkcmVzID0gJHRoaXMtPm1vZHVsZV9wdHItPmRiSGFuZGxlLT5FeGVjdXRlKCRzcWwsCgkJCQkJCSAgICBhcnJheSgkdGhpcy0+TmFtZSwgJHRoaXMtPkFsaWFzLCAkdGhpcy0+SWQpKTsKICAgICAgfQogICAgLy8gc2F2ZSBvdXQgdGhlIGF0dHJzCiAgICAkc3FsID0gJ0RFTEVURSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLgogICAgICAnbW9kdWxlX2ZiX2Zvcm1fYXR0ciBXSEVSRSBmb3JtX2lkPT8nOwogICAgJHJlcyA9ICR0aGlzLT5tb2R1bGVfcHRyLT5kYkhhbmRsZS0+RXhlY3V0ZSgkc3FsLCBhcnJheSgkdGhpcy0+SWQpKTsKICAgIGZvcmVhY2ggKCR0aGlzLT5BdHRycyBhcyAkdGhpc0F0dHJLZXk9PiR0aGlzQXR0clZhbHVlKQogICAgICB7CgkkZm9ybUF0dHJJZCA9ICR0aGlzLT5tb2R1bGVfcHRyLT5kYkhhbmRsZS0+R2VuSUQoY21zX2RiX3ByZWZpeCgpLgoJCQkJCQkJICdtb2R1bGVfZmJfZm9ybV9hdHRyX3NlcScpOwoJJHNxbCA9ICdJTlNFUlQgSU5UTyAnIC4gY21zX2RiX3ByZWZpeCgpLgoJICAnbW9kdWxlX2ZiX2Zvcm1fYXR0ciAoZm9ybV9hdHRyX2lkLCBmb3JtX2lkLCBuYW1lLCB2YWx1ZSkgJy4KCSAgJ1ZBTFVFUyAoPywgPywgPywgPyknOwoJJHJlcyA9ICR0aGlzLT5tb2R1bGVfcHRyLT5kYkhhbmRsZS0+RXhlY3V0ZSgkc3FsLAoJCQkJCQkgICAgYXJyYXkoJGZvcm1BdHRySWQsICR0aGlzLT5JZCwgJHRoaXNBdHRyS2V5LAoJCQkJCQkJICAkdGhpc0F0dHJWYWx1ZSkpOwoJaWYgKCR0aGlzQXR0cktleSA9PSAnZm9ybV90ZW1wbGF0ZScpCgkgIHsKCSAgICAkdGhpcy0+bW9kdWxlX3B0ci0+U2V0VGVtcGxhdGUoJ2ZiXycuJHRoaXMtPklkLCR0aGlzQXR0clZhbHVlKTsKCSAgfQogICAgICB9CgkJCiAgICByZXR1cm4gJHJlczsKICB9CgogIGZ1bmN0aW9uIERlbGV0ZSgpCiAgewogICAgaWYgKCR0aGlzLT5JZCA9PSAtMSkKICAgICAgewoJcmV0dXJuIGZhbHNlOwogICAgICB9CiAgICBpZiAoJHRoaXMtPmxvYWRlZCAhPSAnZnVsbCcpCiAgICAgIHsKCSR0aGlzLT5Mb2FkKCR0aGlzLT5JZCxhcnJheSgpLHRydWUpOwogICAgICB9CiAgICBmb3JlYWNoICgkdGhpcy0+RmllbGRzIGFzICRmaWVsZCkKICAgICAgewoJJGZpZWxkLT5EZWxldGUoKTsKICAgICAgfQogICAgJHRoaXMtPm1vZHVsZV9wdHItPkRlbGV0ZVRlbXBsYXRlKCdmYl8nLiR0aGlzLT5JZCk7CiAgICAkc3FsID0gJ0RFTEVURSBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX2ZiX2Zvcm0gd2hlcmUgZm9ybV9pZD0/JzsKICAgICRyZXMgPSAkdGhpcy0+bW9kdWxlX3B0ci0+ZGJIYW5kbGUtPkV4ZWN1dGUoJHNxbCwgYXJyYXkoJHRoaXMtPklkKSk7CiAgICAkc3FsID0gJ0RFTEVURSBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX2ZiX2Zvcm1fYXR0ciB3aGVyZSBmb3JtX2lkPT8nOwogICAgJHJlcyA9ICR0aGlzLT5tb2R1bGVfcHRyLT5kYkhhbmRsZS0+RXhlY3V0ZSgkc3FsLCBhcnJheSgkdGhpcy0+SWQpKTsKICAgIHJldHVybiB0cnVlOwogIH0KCiAgLy8gcmV0dXJucyBhIGNsYXNzIG5hbWUsIGFuZCBtYWtlcyBzdXJlIHRoZSBmaWxlIHdoZXJlIHRoZSBjbGFzcyBpcwogIC8vIGRlZmluZWQgaGFzIGJlZW4gbG9hZGVkLgogIGZ1bmN0aW9uIE1ha2VDbGFzc05hbWUoJHR5cGUsICRjbGFzc0RpclByZWZpeCkKICB7CiAgICAvLyBwZXJmb3JtIHJ1ZGltZW50YXJ5IHNlY3VyaXR5LCBzaW5jZSBUeXBlIGNvdWxkIGNvbWUgaW4gZnJvbSBhIGZvcm0KICAgICR0eXBlID0gcHJlZ19yZXBsYWNlKCIvW1xXXXxcLlwuLyIsICJfIiwgJHR5cGUpOwogICAgaWYgKCR0eXBlID09ICcnIHx8IHN0cmxlbigkdHlwZSkgPCAxKQogICAgICB7CgkkdHlwZSA9ICdGaWVsZCc7CiAgICAgIH0KICAgICRjbGFzc0ZpbGU9Jyc7CiAgICBpZiAoc3RybGVuKCRjbGFzc0RpclByZWZpeCkgPiAwKQogICAgICB7CgkkY2xhc3NGaWxlID0gJGNsYXNzRGlyUHJlZml4IC4nLycuJHR5cGUuJy5jbGFzcy5waHAnOwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCSRjbGFzc0ZpbGUgPSAkdHlwZS4nLmNsYXNzLnBocCc7CiAgICAgIH0KICAgIHJlcXVpcmVfb25jZSBkaXJuYW1lKF9fRklMRV9fKS4nLycuJGNsYXNzRmlsZTsKICAgIC8vIGNsYXNzIG5hbWVzIGFyZSBwcmVwZW5kZWQgd2l0aCAiZmIiIHRvIHByZXZlbnQgbmFtZXNwYWNlIGNsYXNoLgogICAgcmV0dXJuICggJ2ZiJy4kdHlwZSApOwogIH0KCiAgZnVuY3Rpb24gQWRkRWRpdEZvcm0oJGlkLCAkcmV0dXJuaWQsICRtZXNzYWdlPScnKQogIHsKICAgICRtb2QgPSAmJHRoaXMtPm1vZHVsZV9wdHI7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignbWVzc2FnZScsJG1lc3NhZ2UpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2Zvcm1zdGFydCcsCgkJCSAkbW9kLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAnYWRtaW5fc3RvcmVfZm9ybScsICRyZXR1cm5pZCkpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2Zvcm1pZCcsCgkJCSAkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdmb3JtX2lkJywgJHRoaXMtPklkKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGFiX3N0YXJ0JywkbW9kLT5TdGFydFRhYkhlYWRlcnMoKS4KCQkJICRtb2QtPlNldFRhYkhlYWRlcignbWFpbnRhYicsJG1vZC0+TGFuZygndGFiX21haW4nKSkuCgkJCSAkbW9kLT5TZXRUYWJIZWFkZXIoJ2FkZGl0aW9uJywkbW9kLT5MYW5nKCd0YWJfYWRkaXRpb25hbCcpKS4KCQkJICRtb2QtPlNldFRhYkhlYWRlcigndGFibGVsYXlvdXQnLCRtb2QtPkxhbmcoJ3RhYl90YWJsZWxheW91dCcpKS4KCQkJICRtb2QtPlNldFRhYkhlYWRlcigndGVtcGxhdGVsYXlvdXQnLCRtb2QtPkxhbmcoJ3RhYl90ZW1wbGF0ZWxheW91dCcpKS4KCQkJICAgICAgIAoJCQkgJG1vZC0+RW5kVGFiSGVhZGVycygpIC4gJG1vZC0+U3RhcnRUYWJDb250ZW50KCkpOwoJICAKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0YWJzX2VuZCcsJG1vZC0+RW5kVGFiQ29udGVudCgpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdtYWludGFiX3N0YXJ0JywkbW9kLT5TdGFydFRhYigibWFpbnRhYiIpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdhZGRpdGlvbmFsdGFiX3N0YXJ0JywkbW9kLT5TdGFydFRhYigiYWRkaXRpb24iKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGFibGV0YWJfc3RhcnQnLCRtb2QtPlN0YXJ0VGFiKCJ0YWJsZWxheW91dCIpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0ZW1wbGF0ZXRhYl9zdGFydCcsJG1vZC0+U3RhcnRUYWIoInRlbXBsYXRlbGF5b3V0IikpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RhYl9lbmQnLCRtb2QtPkVuZFRhYigpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdmb3JtX2VuZCcsJG1vZC0+Q3JlYXRlRm9ybUVuZCgpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9mb3JtX25hbWUnLCRtb2QtPkxhbmcoJ3RpdGxlX2Zvcm1fbmFtZScpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF9mb3JtX25hbWUnLAoJCQkgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2Zvcm1fbmFtZScsCgkJCQkJICAgICAgICR0aGlzLT5OYW1lLCA1MCkpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2Zvcm1fdW5zcGVjaWZpZWQnLCRtb2QtPkxhbmcoJ3RpdGxlX2Zvcm1fdW5zcGVjaWZpZWQnKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignaW5wdXRfZm9ybV91bnNwZWNpZmllZCcsCgkJCSAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnZm9ybWFfdW5zcGVjaWZpZWQnLAoJCQkJCSAgICAgICAkdGhpcy0+R2V0QXR0cigndW5zcGVjaWZpZWQnLCRtb2QtPkxhbmcoJ3Vuc3BlY2lmaWVkJykpLCA1MCkpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2Zvcm1fc3RhdHVzJywKCQkJICRtb2QtPkxhbmcoJ3RpdGxlX2Zvcm1fc3RhdHVzJykpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RleHRfcmVhZHknLAoJCQkgJG1vZC0+TGFuZygndGl0bGVfcmVhZHlfZm9yX2RlcGxveW1lbnQnKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfZm9ybV9hbGlhcycsJG1vZC0+TGFuZygndGl0bGVfZm9ybV9hbGlhcycpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF9mb3JtX2FsaWFzJywKCQkJICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdmb3JtX2FsaWFzJywKCQkJCQkgICAgICAgJHRoaXMtPkFsaWFzLCA1MCkpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2Zvcm1fY3NzX2NsYXNzJywKCQkJICRtb2QtPkxhbmcoJ3RpdGxlX2Zvcm1fY3NzX2NsYXNzJykpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X2Zvcm1fY3NzX2NsYXNzJywKCQkJICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdmb3JtYV9jc3NfY2xhc3MnLAoJCQkJCSAgICAgICAkdGhpcy0+R2V0QXR0cignY3NzX2NsYXNzJywnZm9ybWJ1aWxkZXJmb3JtJyksIDUwLDUwKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfZm9ybV9maWVsZHMnLAoJCQkgJG1vZC0+TGFuZygndGl0bGVfZm9ybV9maWVsZHMnKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfZmllbGRfbmFtZScsCgkJCSAkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9uYW1lJykpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2ZpZWxkX3R5cGUnLAoJCQkgJG1vZC0+TGFuZygndGl0bGVfZmllbGRfdHlwZScpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9maWVsZF90eXBlJywKCQkJICRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX3R5cGUnKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfZm9ybV90ZW1wbGF0ZScsCgkJCSAkbW9kLT5MYW5nKCd0aXRsZV9mb3JtX3RlbXBsYXRlJykpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2xpc3RfZGVsaW1pdGVyJywKCQkJICRtb2QtPkxhbmcoJ3RpdGxlX2xpc3RfZGVsaW1pdGVyJykpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX3JlZGlyZWN0X3BhZ2UnLAoJCQkgJG1vZC0+TGFuZygndGl0bGVfcmVkaXJlY3RfcGFnZScpKTsKCSAgCiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfaW5mb3JtYXRpb24nLCRtb2QtPkxhbmcoJ2luZm9ybWF0aW9uJykpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX29yZGVyJywkbW9kLT5MYW5nKCdvcmRlcicpKTsgICAgCiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfZm9ybV9kaXNwbGF5dHlwZScsICRtb2QtPkxhbmcoJ3RpdGxlX2Zvcm1fZGlzcGxheXR5cGUnKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfZmllbGRfcmVxdWlyZWRfYWJicmV2JywkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9yZXF1aXJlZF9hYmJyZXYnKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignaGFzZGlzcG9zaXRpb24nLCR0aGlzLT5IYXNEaXNwb3NpdGlvbigpPzE6MCk7CiAgICAkbWF4T3JkZXIgPSAxOwogICAgaWYoJHRoaXMtPklkID4gMCkKICAgICAgewoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3N1Ym1pdF9idXR0b24nLAoJCQkgICAgICRtb2QtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ3N1Ym1pdCcsCgkJCQkJCSAgICAgJG1vZC0+TGFuZygnc2F2ZV9hbmRfY29udGludWUnKSkpOwoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2hpZGRlbicsCgkJCSAgICAgJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnZm9ybV9vcCcsJG1vZC0+TGFuZygndXBkYXRlZCcpKSk7CgkkbW9kLT5zbWFydHktPmFzc2lnbignYWRkaW5nJywwKTsKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdzYXZlX2J1dHRvbicsCgkJCSAgICAgJG1vZC0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnc3VibWl0JywgJG1vZC0+TGFuZygnc2F2ZScpKSk7CgkkZmllbGRMaXN0ID0gYXJyYXkoKTsKCSRjdXJyb3cgPSAicm93MSI7CgkkY291bnQgPSAxOwoJJGxhc3QgPSAkdGhpcy0+R2V0RmllbGRDb3VudCgpOwoJZm9yZWFjaCAoJHRoaXMtPkZpZWxkcyBhcyAkdGhpc0ZpZWxkKQoJICB7CgkgICAgJG9uZXNldCA9IG5ldyBzdGRDbGFzcygpOwoJICAgICRvbmVzZXQtPnJvd2NsYXNzID0gJGN1cnJvdzsKCSAgICAkb25lc2V0LT5uYW1lID0gJG1vZC0+Q3JlYXRlTGluaygkaWQsICdhZG1pbl9hZGRfZWRpdF9maWVsZCcsICcnLCAkdGhpc0ZpZWxkLT5HZXROYW1lKCksIGFycmF5KCdmaWVsZF9pZCc9PiR0aGlzRmllbGQtPkdldElkKCksJ2Zvcm1faWQnPT4kdGhpcy0+SWQpKTsKCSAgICAkb25lc2V0LT50eXBlID0gJHRoaXNGaWVsZC0+R2V0RGlzcGxheVR5cGUoKTsKCSAgICBpZiAoJHRoaXNGaWVsZC0+SXNEaXNwb3NpdGlvbigpIHx8CgkJISR0aGlzRmllbGQtPkRpc3BsYXlJbkZvcm0oKSB8fAoJCSR0aGlzRmllbGQtPklzTm9uUmVxdWlyYWJsZUZpZWxkKCkpCgkgICAgICB7CgkJJG9uZXNldC0+ZGlzcG9zaXRpb24gPSAnLic7CgkgICAgICB9CgkgICAgZWxzZSBpZiAoJHRoaXNGaWVsZC0+SXNSZXF1aXJlZCgpKQoJICAgICAgewoJCSRvbmVzZXQtPmRpc3Bvc2l0aW9uID0gJG1vZC0+Q3JlYXRlTGluaygkaWQsICdhZG1pbl91cGRhdGVfZmllbGRfcmVxdWlyZWQnLCAnJywgJG1vZC0+Y21zLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vdHJ1ZS5naWYnLCd0cnVlJywnJywnJywnc3lzdGVtaWNvbicpLCBhcnJheSgnZm9ybV9pZCc9PiR0aGlzLT5JZCwnYWN0aXZlJz0+J29mZicsJ2ZpZWxkX2lkJz0+JHRoaXNGaWVsZC0+R2V0SWQoKSkpOwoJICAgICAgfQoJICAgIGVsc2UKCSAgICAgIHsKCQkkb25lc2V0LT5kaXNwb3NpdGlvbiA9ICRtb2QtPkNyZWF0ZUxpbmsoJGlkLCAnYWRtaW5fdXBkYXRlX2ZpZWxkX3JlcXVpcmVkJywgJycsICRtb2QtPmNtcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2ZhbHNlLmdpZicsJ2ZhbHNlJywnJywnJywnc3lzdGVtaWNvbicpLCBhcnJheSgnZm9ybV9pZCc9PiR0aGlzLT5JZCwnYWN0aXZlJz0+J29uJywnZmllbGRfaWQnPT4kdGhpc0ZpZWxkLT5HZXRJZCgpKSk7CgkgICAgICB9CgkgICAgJG9uZXNldC0+ZmllbGRfc3RhdHVzID0gJHRoaXNGaWVsZC0+U3RhdHVzSW5mbygpOwoJICAgIGlmICgkY291bnQgPiAxKQoJICAgICAgewoJCSRvbmVzZXQtPnVwID0gJG1vZC0+Q3JlYXRlTGluaygkaWQsICdhZG1pbl91cGRhdGVfZmllbGRfb3JkZXInLCAnJywgJG1vZC0+Y21zLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vYXJyb3ctdS5naWYnLCd1cCcsJycsJycsJ3N5c3RlbWljb24nKSwgYXJyYXkoJ2Zvcm1faWQnPT4kdGhpcy0+SWQsJ2Rpcic9Pid1cCcsJ2ZpZWxkX2lkJz0+JHRoaXNGaWVsZC0+R2V0SWQoKSkpOwoJICAgICAgfQoJICAgIGVsc2UKCSAgICAgIHsKCQkkb25lc2V0LT51cCA9ICcmbmJzcDsnOwoJICAgICAgfQoJICAgIGlmICgkY291bnQgPCAkbGFzdCkKCSAgICAgIHsKCQkkb25lc2V0LT5kb3duPSRtb2QtPkNyZWF0ZUxpbmsoJGlkLCAnYWRtaW5fdXBkYXRlX2ZpZWxkX29yZGVyJywgJycsICRtb2QtPmNtcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2Fycm93LWQuZ2lmJywnZG93bicsJycsJycsJ3N5c3RlbWljb24nKSwgYXJyYXkoJ2Zvcm1faWQnPT4kdGhpcy0+SWQsJ2Rpcic9Pidkb3duJywnZmllbGRfaWQnPT4kdGhpc0ZpZWxkLT5HZXRJZCgpKSk7CgkgICAgICB9CgkgICAgZWxzZQoJICAgICAgewoJCSRvbmVzZXQtPmRvd24gPSAnJm5ic3A7JzsKCSAgICAgIH0KCSAgICAkb25lc2V0LT5lZGl0bGluayA9ICRtb2QtPkNyZWF0ZUxpbmsoJGlkLCAnYWRtaW5fYWRkX2VkaXRfZmllbGQnLCAnJywgJG1vZC0+Y21zLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vZWRpdC5naWYnLCdlZGl0JywnJywnJywnc3lzdGVtaWNvbicpLCBhcnJheSgnZmllbGRfaWQnPT4kdGhpc0ZpZWxkLT5HZXRJZCgpLCdmb3JtX2lkJz0+JHRoaXMtPklkKSk7CgkgICAgJG9uZXNldC0+ZGVsZXRlbGluayA9ICRtb2QtPkNyZWF0ZUxpbmsoJGlkLCAnYWRtaW5fZGVsZXRlX2ZpZWxkJywgJycsICRtb2QtPmNtcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2RlbGV0ZS5naWYnLCdkZWxldGUnLCcnLCcnLCdzeXN0ZW1pY29uJyksIGFycmF5KCdmaWVsZF9pZCc9PiR0aGlzRmllbGQtPkdldElkKCksJ2Zvcm1faWQnPT4kdGhpcy0+SWQpLCRtb2QtPkxhbmcoJ2FyZV95b3Vfc3VyZV9kZWxldGVfZmllbGQnLCR0aGlzRmllbGQtPkdldE5hbWUoKSkpOwoJICAgICgkY3Vycm93ID09ICJyb3cxIj8kY3Vycm93PSJyb3cyIjokY3Vycm93PSJyb3cxIik7CgkgICAgJGNvdW50Kys7CgkgICAgaWYgKCR0aGlzRmllbGQtPkdldE9yZGVyKCkgPj0gJG1heE9yZGVyKQoJICAgICAgewoJCSRtYXhPcmRlciA9ICR0aGlzRmllbGQtPkdldE9yZGVyKCkgKyAxOwoJICAgICAgfQoJICAgIGFycmF5X3B1c2goJGZpZWxkTGlzdCwgJG9uZXNldCk7CgkgIH0KCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdmaWVsZHMnLCRmaWVsZExpc3QpOwoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2FkZF9maWVsZF9saW5rJywKCQkJICAgICAkbW9kLT5DcmVhdGVMaW5rKCRpZCwgJ2FkbWluX2FkZF9lZGl0X2ZpZWxkJywgJHJldHVybmlkLCRtb2QtPmNtcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL25ld29iamVjdC5naWYnLCRtb2QtPkxhbmcoJ3RpdGxlX2FkZF9uZXdfZmllbGQnKSwnJywnJywnc3lzdGVtaWNvbicpLGFycmF5KCdmb3JtX2lkJz0+JHRoaXMtPklkLCAnb3JkZXJfYnknPT4kbWF4T3JkZXIpLCAnJywgZmFsc2UpIC4gJG1vZC0+Q3JlYXRlTGluaygkaWQsICdhZG1pbl9hZGRfZWRpdF9maWVsZCcsICRyZXR1cm5pZCwkbW9kLT5MYW5nKCd0aXRsZV9hZGRfbmV3X2ZpZWxkJyksYXJyYXkoJ2Zvcm1faWQnPT4kdGhpcy0+SWQsICdvcmRlcl9ieSc9PiRtYXhPcmRlciksICcnLCBmYWxzZSkpOwoJaWYgKCRtb2QtPkdldFByZWZlcmVuY2UoJ2VuYWJsZV9mYXN0YWRkJywxKSA9PSAxKQoJICB7CgkgICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2Zhc3RhZGQnLDEpOwoJICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9mYXN0YWRkJywkbW9kLT5MYW5nKCd0aXRsZV9mYXN0YWRkJykpOwoJICAgICR0eXBlSW5wdXQgPSAiPHNjcmlwdCB0eXBlPVwidGV4dC9qYXZhc2NyaXB0XCI+CmZ1bmN0aW9uIGZhc3RfYWRkKGZpZWxkX3R5cGUpCnsKCXZhciB0eXBlPWZpZWxkX3R5cGUub3B0aW9uc1tmaWVsZF90eXBlLnNlbGVjdGVkSW5kZXhdLnZhbHVlOwoJdmFyIGxpbmsgPSAnIi4kbW9kLT5DcmVhdGVMaW5rKCRpZCwgJ2FkbWluX2FkZF9lZGl0X2ZpZWxkJywgJHJldHVybmlkLCcnLGFycmF5KCdmb3JtX2lkJz0+JHRoaXMtPklkLCAnb3JkZXJfYnknPT4kbWF4T3JkZXIpLCAnJywgdHJ1ZSx0cnVlKS4iJiIuJGlkLiJmaWVsZF90eXBlPScrdHlwZTsKCXRoaXMubG9jYXRpb249bGluazsKCXJldHVybiB0cnVlOwp9Cjwvc2NyaXB0PiI7CgkgICAgJHR5cGVJbnB1dCA9IHN0cl9yZXBsYWNlKCcmYW1wOycsJyYnLCR0eXBlSW5wdXQpOyAKCSAgICAkbW9kLT5pbml0aWFsaXplKCk7CgkgICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X2Zhc3RhZGQnLCR0eXBlSW5wdXQuJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICdmaWVsZF90eXBlJyxhcnJheV9tZXJnZShhcnJheSgkbW9kLT5MYW5nKCdzZWxlY3RfdHlwZScpPT4nJyksJG1vZC0+ZmllbGRfdHlwZXMpLCAtMSwnJywgJ29uY2hhbmdlPSJmYXN0X2FkZCh0aGlzKSInKSk7CgkgIH0JCQkJCQkJCiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3NhdmVfYnV0dG9uJywnJyk7CgkkbW9kLT5zbWFydHktPmFzc2lnbignc3VibWl0X2J1dHRvbicsCgkJCSAgICAgJG1vZC0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnc3VibWl0JywgJG1vZC0+TGFuZygnYWRkJykpKTsKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdoaWRkZW4nLAoJCQkgICAgICRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ2Zvcm1fb3AnLCRtb2QtPkxhbmcoJ2FkZGVkJykpKTsKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdhZGRpbmcnLDEpOwogICAgICB9CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignbGlua19ub3RyZWFkeScsIjxzdHJvbmc+Ii4kbW9kLT5MYW5nKCd0aXRsZV9ub3RfcmVhZHkxJykuIjwvc3Ryb25nPiAiLiRtb2QtPkxhbmcoJ3RpdGxlX25vdF9yZWFkeTInKS4iICIuJG1vZC0+Q3JlYXRlTGluaygkaWQsICdhZG1pbl9hZGRfZWRpdF9maWVsZCcsICRyZXR1cm5pZCwkbW9kLT5MYW5nKCd0aXRsZV9ub3RfcmVhZHlfbGluaycpLGFycmF5KCdmb3JtX2lkJz0+JHRoaXMtPklkLCAnb3JkZXJfYnknPT4kbWF4T3JkZXIsJ2Rpc3Bvc2Vfb25seSc9PjEpLCAnJywgZmFsc2UsIGZhbHNlLCdjbGFzcz0ibW9kdWxlX2ZiX2xpbmsiJykuIiAiLiRtb2QtPkxhbmcoJ3RpdGxlX25vdF9yZWFkeTMnKQoJCQkgKTsKCiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfZm9ybV9zdWJtaXRfYnV0dG9uJywKCQkJICRtb2QtPkxhbmcoJ3RpdGxlX2Zvcm1fc3VibWl0X2J1dHRvbicpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF9mb3JtX3N1Ym1pdF9idXR0b24nLAoJCQkgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2Zvcm1hX3N1Ym1pdF9idXR0b25fdGV4dCcsCgkJCQkJICAgICAgICR0aGlzLT5HZXRBdHRyKCdzdWJtaXRfYnV0dG9uX3RleHQnLCRtb2QtPkxhbmcoJ2J1dHRvbl9zdWJtaXQnKSksIDM1LCAzNSkpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5JywKCQkJICRtb2QtPkxhbmcoJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5JykpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X3N1Ym1pdF9idXR0b25fc2FmZXR5JywkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsJ2Zvcm1hX2lucHV0X2J1dHRvbl9zYWZldHknLCcwJykuCgkJCSAkbW9kLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwnZm9ybWFfaW5wdXRfYnV0dG9uX3NhZmV0eScsJzEnLCR0aGlzLT5HZXRBdHRyKCdpbnB1dF9idXR0b25fc2FmZXR5JywnMCcpKS4KCQkJICRtb2QtPkxhbmcoJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5X2hlbHAnKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfZm9ybV9wcmV2X2J1dHRvbicsCgkJCSAkbW9kLT5MYW5nKCd0aXRsZV9mb3JtX3ByZXZfYnV0dG9uJykpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X2Zvcm1fcHJldl9idXR0b24nLAoJCQkgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2Zvcm1hX3ByZXZfYnV0dG9uX3RleHQnLAoJCQkJCSAgICAgICAkdGhpcy0+R2V0QXR0cigncHJldl9idXR0b25fdGV4dCcsJG1vZC0+TGFuZygnYnV0dG9uX3ByZXZpb3VzJykpLCAzNSwgMzUpKTsKCgogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2Zvcm1fbmV4dF9idXR0b24nLAoJCQkgJG1vZC0+TGFuZygndGl0bGVfZm9ybV9uZXh0X2J1dHRvbicpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF9mb3JtX25leHRfYnV0dG9uJywKCQkJICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdmb3JtYV9uZXh0X2J1dHRvbl90ZXh0JywKCQkJCQkgICAgICAgJHRoaXMtPkdldEF0dHIoJ25leHRfYnV0dG9uX3RleHQnLCRtb2QtPkxhbmcoJ2J1dHRvbl9jb250aW51ZScpKSwgMzUsIDM1KSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfZm9ybV9yZXF1aXJlZF9zeW1ib2wnLAoJCQkgJG1vZC0+TGFuZygndGl0bGVfZm9ybV9yZXF1aXJlZF9zeW1ib2wnKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignaW5wdXRfZm9ybV9yZXF1aXJlZF9zeW1ib2wnLAoJCQkgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2Zvcm1hX3JlcXVpcmVkX2ZpZWxkX3N5bWJvbCcsCgkJCQkJICAgICAgICR0aGlzLT5HZXRBdHRyKCdyZXF1aXJlZF9maWVsZF9zeW1ib2wnLCcqJyksIDUwKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignaW5wdXRfbGlzdF9kZWxpbWl0ZXInLAoJCQkgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2Zvcm1hX2xpc3RfZGVsaW1pdGVyJywKCQkJCQkgICAgICAgJHRoaXMtPkdldEF0dHIoJ2xpc3RfZGVsaW1pdGVyJywnLCcpLCA1MCkpOwoKICAgIGdsb2JhbCAkZ0NtczsKICAgICRjb250ZW50b3BzID0mICRnQ21zLT5HZXRDb250ZW50T3BlcmF0aW9ucygpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X3JlZGlyZWN0X3BhZ2UnLCRjb250ZW50b3BzLT5DcmVhdGVIaWVyYXJjaHlEcm9wZG93bignJywkdGhpcy0+R2V0QXR0cigncmVkaXJlY3RfcGFnZScsJzAnKSwgJGlkLidmb3JtYV9yZWRpcmVjdF9wYWdlJykpOwoKCiAgICAkZGlzcGxheVR5cGVzID0gYXJyYXkoJG1vZC0+TGFuZygnZGlzcHR5cGVfdGFibGUnKT0+J3RhYicsCgkJCSAgJG1vZC0+TGFuZygnZGlzcHR5cGVfY3NzJyk9Pidjc3Nvbmx5JywKCQkJICAkbW9kLT5MYW5nKCdkaXNwdHlwZV90ZW1wbGF0ZScpPT4ndGVtcGxhdGUnKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF9mb3JtX2Rpc3BsYXl0eXBlJywKCQkJICRtb2QtPkNyZWF0ZUlucHV0UmFkaW9Hcm91cCgkaWQsICdmb3JtYV9mb3JtX2Rpc3BsYXl0eXBlJywgJGRpc3BsYXlUeXBlcywgJHRoaXMtPkdldEF0dHIoJ2Zvcm1fZGlzcGxheXR5cGUnLCd0YWInKSkpOwoJCQkJCiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfdGl0bGVfcG9zaXRpb24nLAoJCQkgJG1vZC0+TGFuZygndGl0bGVfdGl0bGVfcG9zaXRpb24nKSk7CiAgICAkcG9zID0gYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfdGFibGVfbGF5b3V0X2xlZnQnKT0+J2xlZnQnLCRtb2QtPkxhbmcoJ3RpdGxlX3RhYmxlX2xheW91dF9hYm92ZScpPT4ndG9wJyk7CQogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X3RpdGxlX3Bvc2l0aW9uJywKCQkJICRtb2QtPkNyZWF0ZUlucHV0UmFkaW9Hcm91cCgkaWQsICdmb3JtYV90aXRsZV9wb3NpdGlvbicsCgkJCQkJCSAgICAgJHBvcywgJHRoaXMtPkdldEF0dHIoJ3RpdGxlX3Bvc2l0aW9uJywnbGVmdCcpKSk7CQkKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF9mb3JtX3RlbXBsYXRlJywKCQkJICRtb2QtPkNyZWF0ZVRleHRBcmVhKGZhbHNlLCAkaWQsCgkJCQkJICAgICAgJHRoaXMtPkdldEF0dHIoJ2Zvcm1fdGVtcGxhdGUnLCR0aGlzLT5EZWZhdWx0VGVtcGxhdGUoKSksICdmb3JtYV9mb3JtX3RlbXBsYXRlJykpOwogICAgcmV0dXJuICRtb2QtPlByb2Nlc3NUZW1wbGF0ZSgnQWRkRWRpdEZvcm0udHBsJyk7CiAgfQoKCiAgZnVuY3Rpb24gJk9sZE5ld0ZpZWxkKCYkcGFyYW1zKQogICAgewogICAgICAkYWVmaWVsZCA9IG5ldyBmYkZpZWxkQmFzZSgkdGhpcywkcGFyYW1zKTsKICAgICAgaWYgKCRhZWZpZWxkLT5HZXRJZCgpICE9IC0xICkKCXsKCSAgLy8gd2UncmUgbG9hZGluZyBhbiBleHRhbnQgZmllbGQKCSAgJHNxbCA9ICdTRUxFQ1QgdHlwZSBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX2ZiX2ZpZWxkIFdIRVJFIGZpZWxkX2lkPT8nOwoJICAkcnMgPSAkdGhpcy0+bW9kdWxlX3B0ci0+ZGJIYW5kbGUtPkV4ZWN1dGUoJHNxbCwgYXJyYXkoJGFlZmllbGQtPkdldElkKCkpKTsKCSAgaWYoJHJzICYmICRyZXN1bHQgPSAkcnMtPkZldGNoUm93KCkpCgkgICAgewoJICAgICAgJGFlZmllbGQtPlNldEZpZWxkVHlwZSgkcmVzdWx0Wyd0eXBlJ10pOwoJICAgIH0KCX0KICAgICAgLy8gd2hhdCBraW5kIG9mIGZpZWxkPwogICAgICAvLyBuZWVkIHRvIGtub3cgd2hhdCBraW5kIG9mIG9iamVjdCB0byBpbnN0YW50aWF0ZSEKICAgICAgaWYgKCRhZWZpZWxkLT5HZXRGaWVsZFR5cGUoKSAhPSAnJykKCXsKCSAgLy8gT0ssIGluc3RhbnRpYXRpbmcgYSBzcGVjaWZpYyBJbnB1dCBjbGFzcy4KCSAgJGNsYXNzTmFtZSA9ICR0aGlzLT5NYWtlQ2xhc3NOYW1lKCRhZWZpZWxkLT5HZXRGaWVsZFR5cGUoKSwgJycpOwoJICAkYWVmaWVsZCA9IG5ldyAkY2xhc3NOYW1lKCR0aGlzLCAkcGFyYW1zKTsKCX0KICAgICAgJGFlZmllbGQtPkxvYWRGaWVsZCgkcGFyYW1zKTsKICAgICAgcmV0dXJuICRhZWZpZWxkOwogICAgfQoKICAgIGZ1bmN0aW9uICZOZXdGaWVsZCgmJHBhcmFtcykKICAgICAgewoJLy8kYWVmaWVsZCA9IG5ldyBmYkZpZWxkQmFzZSgkdGhpcywkcGFyYW1zKTsKCSRhZWZpZWxkID0gZmFsc2U7CiAgICAgICAgaWYgKGlzc2V0KCRwYXJhbXNbJ2ZpZWxkX2lkJ10pICYmICRwYXJhbXNbJ2ZpZWxkX2lkJ10gIT0gLTEgKQoJICB7CiAgICAgICAgICAgIC8vIHdlJ3JlIGxvYWRpbmcgYW4gZXh0YW50IGZpZWxkCgkgICAgJHNxbCA9ICdTRUxFQ1QgdHlwZSBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX2ZiX2ZpZWxkIFdIRVJFIGZpZWxkX2lkPT8nOwoJICAgICRycyA9ICR0aGlzLT5tb2R1bGVfcHRyLT5kYkhhbmRsZS0+RXhlY3V0ZSgkc3FsLCBhcnJheSggJHBhcmFtc1snZmllbGRfaWQnXSkpOwoJICAgIGlmKCRycyAmJiAkcmVzdWx0ID0gJHJzLT5GZXRjaFJvdygpKQoJICAgICAgewkJCQkKCQlpZiAoJHJlc3VsdFsndHlwZSddICE9ICcnKQoJCSAgewoJCSAgICAkY2xhc3NOYW1lID0gJHRoaXMtPk1ha2VDbGFzc05hbWUoJHJlc3VsdFsndHlwZSddICwgJycpOwoJCSAgICAkYWVmaWVsZCA9IG5ldyAkY2xhc3NOYW1lKCR0aGlzLCAkcGFyYW1zKTsKCQkgICAgJGFlZmllbGQtPkxvYWRGaWVsZCgkcGFyYW1zKTsKCQkgIH0KCSAgICAgIH0KCSAgfQoJaWYgKCRhZWZpZWxkID09PSBmYWxzZSkKCSAgewoJICAgIC8vIG5ldyBmaWVsZAoJICAgIGlmICghIGlzc2V0KCRwYXJhbXNbJ2ZpZWxkX3R5cGUnXSkpCgkgICAgICB7CgkJLy8gdW5rbm93biBmaWVsZCB0eXBlCgkJJGFlZmllbGQgPSBuZXcgZmJGaWVsZEJhc2UoJHRoaXMsJHBhcmFtcyk7CgkgICAgICB9CgkgICAgZWxzZQoJICAgICAgewoJCS8vIHNwZWNpZmllZCBmaWVsZCB0eXBlIHZpYSBwYXJhbXMKICAgICAgICAgICAgCSRjbGFzc05hbWUgPSAkdGhpcy0+TWFrZUNsYXNzTmFtZSgkcGFyYW1zWydmaWVsZF90eXBlJ10sICcnKTsKICAgICAgICAgICAgCSRhZWZpZWxkID0gbmV3ICRjbGFzc05hbWUoJHRoaXMsICRwYXJhbXMpOwoJICAgICAgfQoJICB9CglyZXR1cm4gJGFlZmllbGQ7CiAgICAgIH0KCgoKICBmdW5jdGlvbiBBZGRFZGl0RmllbGQoJGlkLCAmJGFlZmllbGQsICRkaXNwb3NlX29ubHksICRyZXR1cm5pZCwgJG1lc3NhZ2U9JycpCiAgewogICAgJG1vZCA9ICR0aGlzLT5tb2R1bGVfcHRyOwoJCQogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ21lc3NhZ2UnLCRtZXNzYWdlKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdiYWNrdG9mb3JtX25hdicsJG1vZC0+Q3JlYXRlTGluaygkaWQsICdhZG1pbl9hZGRfZWRpdF9mb3JtJywgJHJldHVybmlkLCAkbW9kLT5MYW5nKCdsaW5rX2JhY2tfdG9fZm9ybScpLCBhcnJheSgnZm9ybV9pZCc9PiR0aGlzLT5JZCkpKTsKICAgICRtYWluTGlzdCA9IGFycmF5KCk7CiAgICAkYWR2TGlzdCA9IGFycmF5KCk7CiAgICAkYmFzZUxpc3QgPSAkYWVmaWVsZC0+UHJlUG9wdWxhdGVCYXNlQWRtaW5Gb3JtKCRpZCwgJGRpc3Bvc2Vfb25seSk7CiAgICBpZiAoJGFlZmllbGQtPkdldEZpZWxkVHlwZSgpID09ICcnKQogICAgICB7CgkvLyBzdGlsbCBuZWVkIHR5cGUKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdzdGFydF9mb3JtJywkbW9kLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAnYWRtaW5fYWRkX2VkaXRfZmllbGQnLCAkcmV0dXJuaWQpKTsJCQkKCSRmaWVsZExpc3QgPSBhcnJheSgnbWFpbic9PmFycmF5KCksJ2Fkdic9PmFycmF5KCkpOwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCS8vIHdlIGhhdmUgb3VyIHR5cGUKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdzdGFydF9mb3JtJywkbW9kLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAnYWRtaW5fYWRkX2VkaXRfZmllbGQnLCAkcmV0dXJuaWQpKTsJCgkkZmllbGRMaXN0ID0gJGFlZmllbGQtPlByZVBvcHVsYXRlQWRtaW5Gb3JtKCRpZCk7CiAgICAgIH0KICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdlbmRfZm9ybScsICRtb2QtPkNyZWF0ZUZvcm1FbmQoKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGFiX3N0YXJ0JywkbW9kLT5TdGFydFRhYkhlYWRlcnMoKS4KCQkJICRtb2QtPlNldFRhYkhlYWRlcignbWFpbnRhYicsJG1vZC0+TGFuZygndGFiX21haW4nKSkuCgkJCSAkbW9kLT5TZXRUYWJIZWFkZXIoJ2FkdmFuY2VkdGFiJywkbW9kLT5MYW5nKCd0YWJfYWR2YW5jZWQnKSkuCgkJCSAkbW9kLT5FbmRUYWJIZWFkZXJzKCkgLiAkbW9kLT5TdGFydFRhYkNvbnRlbnQoKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGFic19lbmQnLCRtb2QtPkVuZFRhYkNvbnRlbnQoKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignbWFpbnRhYl9zdGFydCcsJG1vZC0+U3RhcnRUYWIoIm1haW50YWIiKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignYWR2YW5jZWR0YWJfc3RhcnQnLCRtb2QtPlN0YXJ0VGFiKCJhZHZhbmNlZHRhYiIpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0YWJfZW5kJywkbW9kLT5FbmRUYWIoKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignbm90aWNlX3NlbGVjdF90eXBlJywkbW9kLT5MYW5nKCdub3RpY2Vfc2VsZWN0X3R5cGUnKSk7CgogICAgaWYoJGFlZmllbGQtPkdldElkKCkgIT0gLTEpCiAgICAgIHsKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdvcCcsJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnb3AnLCRtb2QtPkxhbmcoJ3VwZGF0ZWQnKSkpOwoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3N1Ym1pdCcsJG1vZC0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnYWVmX3VwZCcsICRtb2QtPkxhbmcoJ3VwZGF0ZScpKSk7CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ29wJywkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdvcCcsICRtb2QtPkxhbmcoJ2FkZGVkJykpKTsKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCRtb2QtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ2FlZl9hZGQnLCAkbW9kLT5MYW5nKCdhZGQnKSkpOwogICAgICB9CgogICAgaWYgKCRhZWZpZWxkLT5IYXNBZGRPcCgpKQogICAgICB7CgkkbW9kLT5zbWFydHktPmFzc2lnbignYWRkJywkbW9kLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ2FlZl9vcHRhZGQnLCRhZWZpZWxkLT5HZXRPcHRpb25BZGRCdXR0b24oKSkpOwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdhZGQnLCcnKTsKICAgICAgfQogICAgaWYgKCRhZWZpZWxkLT5IYXNEZWxldGVPcCgpKQogICAgICB7CgkkbW9kLT5zbWFydHktPmFzc2lnbignZGVsJywkbW9kLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ2FlZl9vcHRkZWwnLCRhZWZpZWxkLT5HZXRPcHRpb25EZWxldGVCdXR0b24oKSkpOwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdkZWwnLCcnKTsKICAgICAgfQoKCiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignaGlkZGVuJywgJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnZm9ybV9pZCcsICR0aGlzLT5JZCkgLiAkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdmaWVsZF9pZCcsICRhZWZpZWxkLT5HZXRJZCgpKSAuICRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ29yZGVyX2J5JywgJGFlZmllbGQtPkdldE9yZGVyKCkpLgoJCQkgJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCdzZXRfZnJvbV9mb3JtJywnMScpKTsKCiAgICBpZiAoISRhZWZpZWxkLT5Jc0Rpc3Bvc2l0aW9uKCkgJiYgISRhZWZpZWxkLT5Jc05vblJlcXVpcmFibGVGaWVsZCgpKQogICAgICB7CgkkbW9kLT5zbWFydHktPmFzc2lnbigncmVxdWlyYWJsZScsMSk7CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3JlcXVpcmFibGUnLDApOwogICAgICB9CgkJCQogICAgaWYgKGlzc2V0KCRiYXNlTGlzdFsnbWFpbiddKSkKICAgICAgewoJZm9yZWFjaCAoJGJhc2VMaXN0WydtYWluJ10gYXMgJGl0ZW0pCgkgIHsKCSAgICAkdGl0bGVTdHI9JGl0ZW1bMF07CgkgICAgJGlucHV0U3RyPSRpdGVtWzFdOwoJICAgICRvbmVzZXQgPSBuZXcgc3RkQ2xhc3MoKTsKCSAgICAkb25lc2V0LT50aXRsZSA9ICR0aXRsZVN0cjsKCSAgICBpZiAoaXNfYXJyYXkoJGlucHV0U3RyKSkKCSAgICAgIHsKCQkkb25lc2V0LT5pbnB1dCA9ICRpbnB1dFN0clswXTsKCQkkb25lc2V0LT5oZWxwID0gJGlucHV0U3RyWzFdOwoJICAgICAgfQoJICAgIGVsc2UKCSAgICAgIHsKCQkkb25lc2V0LT5pbnB1dCA9ICRpbnB1dFN0cjsKCQkkb25lc2V0LT5oZWxwPScnOwoJICAgICAgfQoJICAgIGFycmF5X3B1c2goJG1haW5MaXN0LCRvbmVzZXQpOwoJICB9CiAgICAgIH0JCiAgICBpZiAoaXNzZXQoJGJhc2VMaXN0WydhZHYnXSkpCiAgICAgIHsKCWZvcmVhY2ggKCRiYXNlTGlzdFsnYWR2J10gYXMgJGl0ZW0pCgkgIHsKCSAgICAkdGl0bGVTdHIgPSAkaXRlbVswXTsKCSAgICAkaW5wdXRTdHIgPSAkaXRlbVsxXTsKCSAgICAkb25lc2V0ID0gbmV3IHN0ZENsYXNzKCk7CgkgICAgJG9uZXNldC0+dGl0bGUgPSAkdGl0bGVTdHI7CgkgICAgaWYgKGlzX2FycmF5KCRpbnB1dFN0cikpCgkgICAgICB7CgkJJG9uZXNldC0+aW5wdXQgPSAkaW5wdXRTdHJbMF07CgkJJG9uZXNldC0+aGVscCA9ICRpbnB1dFN0clsxXTsKCSAgICAgIH0KCSAgICBlbHNlCgkgICAgICB7CgkJJG9uZXNldC0+aW5wdXQgPSAkaW5wdXRTdHI7CgkJJG9uZXNldC0+aGVscD0nJzsKCSAgICAgIH0KCSAgICBhcnJheV9wdXNoKCRhZHZMaXN0LCRvbmVzZXQpOwoJICB9CiAgICAgIH0JCiAgICBpZiAoaXNzZXQoJGZpZWxkTGlzdFsnbWFpbiddKSkKICAgICAgewoJZm9yZWFjaCAoJGZpZWxkTGlzdFsnbWFpbiddIGFzICRpdGVtKQoJICB7CgkgICAgJHRpdGxlU3RyPSRpdGVtWzBdOwoJICAgICRpbnB1dFN0cj0kaXRlbVsxXTsKCSAgICAkb25lc2V0ID0gbmV3IHN0ZENsYXNzKCk7CgkgICAgJG9uZXNldC0+dGl0bGUgPSAkdGl0bGVTdHI7CgkgICAgaWYgKGlzX2FycmF5KCRpbnB1dFN0cikpCgkgICAgICB7CgkJJG9uZXNldC0+aW5wdXQgPSAkaW5wdXRTdHJbMF07CgkJJG9uZXNldC0+aGVscCA9ICRpbnB1dFN0clsxXTsKCSAgICAgIH0KCSAgICBlbHNlCgkgICAgICB7CgkJJG9uZXNldC0+aW5wdXQgPSAkaW5wdXRTdHI7CgkJJG9uZXNldC0+aGVscD0nJzsKCSAgICAgIH0KCSAgICBhcnJheV9wdXNoKCRtYWluTGlzdCwkb25lc2V0KTsKCSAgfQogICAgICB9CiAgICBpZiAoaXNzZXQoJGZpZWxkTGlzdFsnYWR2J10pKQogICAgICB7Cglmb3JlYWNoICgkZmllbGRMaXN0WydhZHYnXSBhcyAkaXRlbSkKCSAgewoJICAgICR0aXRsZVN0cj0kaXRlbVswXTsKCSAgICAkaW5wdXRTdHI9JGl0ZW1bMV07CgkgICAgJG9uZXNldCA9IG5ldyBzdGRDbGFzcygpOwoJICAgICRvbmVzZXQtPnRpdGxlID0gJHRpdGxlU3RyOwoJICAgIGlmIChpc19hcnJheSgkaW5wdXRTdHIpKQoJICAgICAgewoJCSRvbmVzZXQtPmlucHV0ID0gJGlucHV0U3RyWzBdOwoJCSRvbmVzZXQtPmhlbHAgPSAkaW5wdXRTdHJbMV07CgkgICAgICB9CgkgICAgZWxzZQoJICAgICAgewoJCSRvbmVzZXQtPmlucHV0ID0gJGlucHV0U3RyOwoJCSRvbmVzZXQtPmhlbHA9Jyc7CgkgICAgICB9CgkgICAgYXJyYXlfcHVzaCgkYWR2TGlzdCwkb25lc2V0KTsKCSAgfQogICAgICB9CgkJCiAgICAkYWVmaWVsZC0+UG9zdFBvcHVsYXRlQWRtaW5Gb3JtKCRtYWluTGlzdCwgJGFkdkxpc3QpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ21haW5MaXN0JywkbWFpbkxpc3QpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2Fkdkxpc3QnLCRhZHZMaXN0KTsKICAgIHJldHVybiAkbW9kLT5Qcm9jZXNzVGVtcGxhdGUoJ0FkZEVkaXRGaWVsZC50cGwnKTsKICB9CgogIGZ1bmN0aW9uIE1ha2VBbGlhcygkc3RyaW5nLCAkaXNGb3JtPWZhbHNlKQogIHsKICAgICRzdHJpbmcgPSB0cmltKGh0bWxzcGVjaWFsY2hhcnMoJHN0cmluZykpOwogICAgLy8kc3RyaW5nID0gcHJlZ19yZXBsYWNlKCIvW18tXFddKy8iLCAiXyIsICRzdHJpbmcpOwogICAgLy8kc3RyaW5nID0gdHJpbSgkc3RyaW5nLCAnXycpOwogICAgaWYgKCRpc0Zvcm0pCiAgICAgIHsKCXJldHVybiBzdHJ0b2xvd2VyKCRzdHJpbmcpOwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCXJldHVybiAnZmInLnN0cnRvbG93ZXIoJHN0cmluZyk7CiAgICAgIH0KICB9CiAgICAKICBmdW5jdGlvbiBTd2FwRmllbGRzQnlJbmRleCgkc3JjX2ZpZWxkX2luZGV4LCAkZGVzdF9maWVsZF9pbmRleCkKICB7CiAgICAkc3JjRmllbGQgPSAmJHRoaXMtPkdldEZpZWxkQnlJbmRleCgkc3JjX2ZpZWxkX2luZGV4KTsKICAgICRkZXN0RmllbGQgPSAmJHRoaXMtPkdldEZpZWxkQnlJbmRleCgkZGVzdF9maWVsZF9pbmRleCk7CiAgICAkdG1wT3JkZXJCeSA9ICRkZXN0RmllbGQtPkdldE9yZGVyKCk7CiAgICAkZGVzdEZpZWxkLT5TZXRPcmRlcigkc3JjRmllbGQtPkdldE9yZGVyKCkpOwogICAgJHNyY0ZpZWxkLT5TZXRPcmRlcigkdG1wT3JkZXJCeSk7CiAgICAvL2l0IHNlZW1zIHRoaXMgbWFrZXMgcGhwNCBnbyBjcmF6eSBmaXhlZCBieSByZWxvYWRpbmcgZm9ybSBiZWZvcmUgc2hvd2luZyBpdCBhZ2FpbgogICAgIyAgICAgICAgJHRoaXMtPkZpZWxkc1skZGVzdF9maWVsZF9pbmRleF0gPSAkc3JjRmllbGQ7CiAgICAjICAgICAgICAkdGhpcy0+RmllbGRzWyRzcmNfZmllbGRfaW5kZXhdID0gJGRlc3RGaWVsZDsKICAgICRzcmNGaWVsZC0+U3RvcmUoKTsKICAgICRkZXN0RmllbGQtPlN0b3JlKCk7CiAgfQoKICBmdW5jdGlvbiAmR2V0RmllbGRzKCkKICAgIHsKICAgICAgcmV0dXJuICR0aGlzLT5GaWVsZHM7CiAgICB9CiAgICAKICBmdW5jdGlvbiAmR2V0RmllbGRCeUlkKCRmaWVsZF9pZCkKICAgIHsKICAgICAgJGluZGV4ID0gLTE7CiAgICAgIGZvciAoJGk9MDskaTxjb3VudCgkdGhpcy0+RmllbGRzKTskaSsrKQoJewoJICBpZiAoJHRoaXMtPkZpZWxkc1skaV0tPkdldElkKCkgPT0gJGZpZWxkX2lkKQoJICAgIHsKCSAgICAgICRpbmRleCA9ICRpOwoJICAgIH0KCX0KICAgICAgaWYgKCRpbmRleCAhPSAtMSkKCXsKCSAgcmV0dXJuICR0aGlzLT5GaWVsZHNbJGluZGV4XTsKCX0KICAgICAgZWxzZQoJewoJICByZXR1cm4gZmFsc2U7Cgl9CiAgICB9CgogIGZ1bmN0aW9uICZHZXRGaWVsZEJ5SW5kZXgoJGZpZWxkX2luZGV4KQogICAgewogICAgICByZXR1cm4gJHRoaXMtPkZpZWxkc1skZmllbGRfaW5kZXhdOwogICAgfQoKCiAgZnVuY3Rpb24gR2V0RmllbGRJbmRleEZyb21JZCgkZmllbGRfaWQpCiAgewogICAgJGluZGV4ID0gLTE7CiAgICBmb3IgKCRpPTA7JGk8Y291bnQoJHRoaXMtPkZpZWxkcyk7JGkrKykKICAgICAgewoJaWYgKCR0aGlzLT5GaWVsZHNbJGldLT5HZXRJZCgpID09ICRmaWVsZF9pZCkKCSAgewoJICAgICRpbmRleCA9ICRpOwoJICB9CiAgICAgIH0KICAgIHJldHVybiAkaW5kZXg7CiAgfQoKCiAgZnVuY3Rpb24gRGVmYXVsdFRlbXBsYXRlKCkKICB7CiAgICByZXR1cm4gZmlsZV9nZXRfY29udGVudHMoZGlybmFtZShfX0ZJTEVfXykuJy8uLi90ZW1wbGF0ZXMvUmVuZGVyRm9ybURlZmF1bHQudHBsJyk7CiAgfQogICAgCiAgZnVuY3Rpb24gRGVsZXRlRmllbGQoJGZpZWxkX2lkKQogIHsKICAgICRpbmRleCA9ICR0aGlzLT5HZXRGaWVsZEluZGV4RnJvbUlkKCRmaWVsZF9pZCk7CiAgICBpZiAoJGluZGV4ICE9IC0xKQogICAgICB7CgkkdGhpcy0+RmllbGRzWyRpbmRleF0tPkRlbGV0ZSgpOwoJYXJyYXlfc3BsaWNlKCR0aGlzLT5GaWVsZHMsJGluZGV4LDEpOwogICAgICB9CiAgfSAKCiAgZnVuY3Rpb24gUmVzZXRGaWVsZHMoKQogIHsKICAgIGZvcigkaT0wOyRpPGNvdW50KCR0aGlzLT5GaWVsZHMpOyRpKyspCiAgICAgIHsKCSR0aGlzLT5GaWVsZHNbJGldLT5SZXNldFZhbHVlKCk7CiAgICAgIH0KICB9CiAgICAKICAvLyB0aGlzIHdpbGwgaW5zdGFudGlhdGUgdGhlIGZvcm0sIGFuZCBsb2FkIHRoZSByZXN1bHRzCiAgZnVuY3Rpb24gTG9hZFJlc3BvbnNlKCRyZXNwb25zZV9pZCkKICB7CiAgICBlY2hvICJERUJVRzogTG9hZFJlc3BvbnNlICRyZXNwb25zZV9pZDxici8+IjsKICAgICRkYiA9ICYkdGhpcy0+bW9kdWxlX3B0ci0+ZGJIYW5kbGU7CiAgICAvLyBsb2FkaW5nIGEgcmVzcG9uc2UgLS0gYXQgdGhpcyBwb2ludCwgd2UgY2hlY2sgdGhhdCB0aGUgcmVzcG9uc2UKICAgIC8vIGlzIGZvciB0aGUgY29ycmVjdCBmb3JtX2lkIQogICAgJHNxbCA9ICdTRUxFQ1QgZm9ybV9pZCBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkuCiAgICAgICdtb2R1bGVfZmJfcmVzcCB3aGVyZSByZXNwX2lkPT8nOwogICAgaWYoJHJlc3VsdCA9ICRkYi0+R2V0Um93KCRzcWwsIGFycmF5KCRyZXNwb25zZV9pZCkpKQogICAgICB7CglpZiAoJHJlc3VsdFsnZm9ybV9pZCddICE9ICR0aGlzLT5HZXRJZCgpKQoJICB7CgkgICAgcmV0dXJuIGZhbHNlOwoJICB9CgkJICAgIAoJJHRoaXMtPlJlc2V0RmllbGRzKCk7CgoJJHNxbCA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLgoJICAnbW9kdWxlX2ZiX3Jlc3BfdmFsIFdIRVJFIHJlc3BfaWQ9PyBvcmRlciBieSByZXNwX3ZhbF9pZCc7CgkkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHNxbCwgYXJyYXkoJHJlc3BvbnNlX2lkKSk7Cgl3aGlsZSAoJGRicmVzdWx0ICYmICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpCgkgIHsKCSAgICAkaW5kZXggPSAkdGhpcy0+R2V0RmllbGRJbmRleEZyb21JZCgkcm93WydmaWVsZF9pZCddKTsKICAgICAgICAgICAgaWYoIGlzX29iamVjdCgkdGhpcy0+RmllbGRzWyRpbmRleF0pICkKICAgICAgICAgICAgIHsKCSAgICAgICAkdGhpcy0+RmllbGRzWyRpbmRleF0tPlNldFZhbHVlKCRyb3dbJ3ZhbHVlJ10pOwogICAgICAgICAgICAgfQoJICB9CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJcmV0dXJuIGZhbHNlOwogICAgICB9CiAgfSAgIAoKICBmdW5jdGlvbiBMb2FkUmVzcG9uc2VWYWx1ZXMoJiRwYXJhbXMpCiAgewogICAgJGRiID0gJHRoaXMtPm1vZHVsZV9wdHItPmRiSGFuZGxlOwogICAgLy8gbG9hZGluZyBhIHJlc3BvbnNlIC0tIGF0IHRoaXMgcG9pbnQsIHdlIGNoZWNrIHRoYXQgdGhlIHJlc3BvbnNlCiAgICAvLyBpcyBmb3IgdGhlIGNvcnJlY3QgZm9ybV9pZCEKICAgICRzcWwgPSAnU0VMRUNUIGZvcm1faWQgRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpLgogICAgICAnbW9kdWxlX2ZiX3Jlc3Agd2hlcmUgcmVzcF9pZD0/JzsKICAgIGlmKCRyZXN1bHQgPSAkZGItPkdldFJvdygkc3FsLCBhcnJheSgkcGFyYW1zWydyZXNwb25zZV9pZCddKSkpCiAgICAgIHsKCWlmICgkcmVzdWx0Wydmb3JtX2lkJ10gIT0gJHRoaXMtPkdldElkKCkpCgkgIHsKCSAgICByZXR1cm4gZmFsc2U7CgkgIH0KCSRzcWwgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4KCSAgJ21vZHVsZV9mYl9yZXNwX3ZhbCBXSEVSRSByZXNwX2lkPT8gb3JkZXIgYnkgcmVzcF92YWxfaWQnOwoJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRzcWwsIGFycmF5KCRwYXJhbXNbJ3Jlc3BvbnNlX2lkJ10pKTsKCXdoaWxlICgkZGJyZXN1bHQgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSkKCSAgeyAvLyB3YXMgJ19fJwkJICAgICAgICAJCgkgICAgaWYgKGlzc2V0KCRwYXJhbXNbJ18nLiRyb3dbJ2ZpZWxkX2lkJ11dKSAmJgoJCSEgaXNfYXJyYXkoJHBhcmFtc1snXycuJHJvd1snZmllbGRfaWQnXV0pKQoJICAgICAgewoJCSRwYXJhbXNbJ18nLiRyb3dbJ2ZpZWxkX2lkJ11dID0gYXJyYXkoJHBhcmFtc1snXycuJHJvd1snZmllbGRfaWQnXV0pOwoJCWFycmF5X3B1c2goJHBhcmFtc1snXycuJHJvd1snZmllbGRfaWQnXV0sICRyb3dbJ3ZhbHVlJ10pOwoJICAgICAgfQoJICAgIGVsc2VpZiAoaXNzZXQoJHBhcmFtc1snXycuJHJvd1snZmllbGRfaWQnXV0pKQoJICAgICAgewoJCWFycmF5X3B1c2goJHBhcmFtc1snXycuJHJvd1snZmllbGRfaWQnXV0sICRyb3dbJ3ZhbHVlJ10pOwoJICAgICAgfQoJICAgIGVsc2UKCSAgICAgIHsKCQkkcGFyYW1zWydfJy4kcm93WydmaWVsZF9pZCddXSA9ICRyb3dbJ3ZhbHVlJ107CgkgICAgICB9CgkgIH0KICAgICAgfQogICAgZWxzZQogICAgICB7CglyZXR1cm4gZmFsc2U7CiAgICAgIH0KICB9ICAgCgogIGZ1bmN0aW9uIERlbGV0ZVJlc3BvbnNlKCRyZXNwb25zZV9pZCkKICB7CiAgICAkZGIgPSAkdGhpcy0+bW9kdWxlX3B0ci0+ZGJIYW5kbGU7CiAgICAkc3FsID0gJ0RFTEVURSBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkuCiAgICAgICdtb2R1bGVfZmJfcmVzcF92YWwgd2hlcmUgcmVzcF9pZD0/JzsKICAgICRyZXMgPSAkZGItPkV4ZWN1dGUoJHNxbCwgYXJyYXkoJHJlc3BvbnNlX2lkKSk7CiAgICAkc3FsID0gJ0RFTEVURSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLgogICAgICAnbW9kdWxlX2ZiX3Jlc3Agd2hlcmUgcmVzcF9pZD0/JzsKICAgICRyZXMgPSAkZGItPkV4ZWN1dGUoJHNxbCwgYXJyYXkoJHJlc3BvbnNlX2lkKSk7CQogIH0KCiAgZnVuY3Rpb24gQ2hlY2tSZXNwb25zZSgkZm9ybV9pZCwgJHJlc3BvbnNlX2lkLCAkY29kZSkKICB7CiAgICAkZGIgPSAkdGhpcy0+bW9kdWxlX3B0ci0+ZGJIYW5kbGU7CiAgICAkc3FsID0gJ1NFTEVDVCBzZWNyZXRfY29kZSBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkuCiAgICAgICdtb2R1bGVfZmJfcmVzcCB3aGVyZSBmb3JtX2lkPT8gYW5kIHJlc3BfaWQ9Pyc7CiAgICBpZigkcmVzdWx0ID0gJGRiLT5HZXRSb3coJHNxbCwgYXJyYXkoJGZvcm1faWQsJHJlc3BvbnNlX2lkKSkpCiAgICAgIHsKCWlmICgkcmVzdWx0WydzZWNyZXRfY29kZSddID09ICRjb2RlKQoJICB7CgkgICAgcmV0dXJuIHRydWU7CgkgIH0KICAgICAgfQogICAgcmV0dXJuIGZhbHNlOwogIH0KCgogIGZ1bmN0aW9uIFN0b3JlUmVzcG9uc2UoJHJlc3BvbnNlX2lkPS0xLCRhcHByb3Zlcj0nJykKICB7CiAgICAkZGIgPSAkdGhpcy0+bW9kdWxlX3B0ci0+ZGJIYW5kbGU7CiAgICAkZmllbGRzID0gJiR0aGlzLT5HZXRGaWVsZHMoKTsKICAgICRzZWNyZXRfY29kZSA9ICcnOwogICAgJG5ld3JlYyA9IGZhbHNlOwogICAgaWYgKCRyZXNwb25zZV9pZCA9PSAtMSkKICAgICAgewoJJG5ld3JlYyA9IHRydWU7CiAgICAgIH0KICAgIGlmICgkbmV3cmVjKQogICAgICB7CgkvLyBzYXZpbmcgYSBuZXcgcmVzcG9uc2UKCSRzZWNyZXRfY29kZSA9IHN1YnN0cihtZDUoc2Vzc2lvbl9pZCgpLidfJy50aW1lKCkpLDAsNyk7CgkkcmVzcG9uc2VfaWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4gJ21vZHVsZV9mYl9yZXNwX3NlcScpOwoJJHNxbCA9ICdJTlNFUlQgSU5UTyAnIC4gY21zX2RiX3ByZWZpeCgpLgoJICAnbW9kdWxlX2ZiX3Jlc3AgKHJlc3BfaWQsIGZvcm1faWQsIHN1Ym1pdHRlZCwgc2VjcmV0X2NvZGUpJyAuCgkgICcgVkFMVUVTICg/LCA/LCA/LCA/KSc7CgkkcmVzID0gJGRiLT5FeGVjdXRlKCRzcWwsCgkJCSAgICBhcnJheSgkcmVzcG9uc2VfaWQsCgkJCQkgICR0aGlzLT5HZXRJZCgpLAoJCQkJICAkdGhpcy0+Y2xlYW5fZGF0ZXRpbWUoJGRiLT5EQlRpbWVTdGFtcCh0aW1lKCkpKSwKCQkJCSAgJHNlY3JldF9jb2RlKSk7CiAgICAgIH0KICAgIGVsc2UgaWYgKCRhcHByb3ZlciAhPSAnJykKICAgICAgewoJJHNxbCA9ICdVUERBVEUgJyAuIGNtc19kYl9wcmVmaXgoKS4KCSAgJ21vZHVsZV9mYl9yZXNwIHNldCB1c2VyX2FwcHJvdmVkPT8gd2hlcmUgcmVzcF9pZD0/JzsKCSRyZXMgPSAkZGItPkV4ZWN1dGUoJHNxbCwKCQkJICAgIGFycmF5KCR0aGlzLT5jbGVhbl9kYXRldGltZSgkZGItPkRCVGltZVN0YW1wKHRpbWUoKSkpLCRyZXNwb25zZV9pZCkpOwoJYXVkaXQoLTEsIChpc3NldCgkbmFtZSk/JG5hbWU6IiIpLCAkdGhpcy0+bW9kdWxlX3B0ci0+TGFuZygndXNlcl9hcHByb3ZlZF9zdWJtaXNzaW9uJyxhcnJheSgkcmVzcG9uc2VfaWQsJGFwcHJvdmVyKSkpOwogICAgICB9CiAgICBpZiAoISAkbmV3cmVjKQogICAgICB7CgkvLyB1cGRhdGluZyBhbiBvbGQgcmVzcG9uc2UsIHNvIHdlIHB1cmdlIG9sZCB2YWx1ZXMKCSRzcWwgPSAnREVMRVRFIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKS4KCSAgJ21vZHVsZV9mYl9yZXNwX3ZhbCB3aGVyZSByZXNwX2lkPT8nOwoJJHJlcyA9ICRkYi0+RXhlY3V0ZSgkc3FsLCBhcnJheSgkcmVzcG9uc2VfaWQpKTsKICAgICAgfQogICAgJHNxbCA9ICdJTlNFUlQgSU5UTyAnIC4gY21zX2RiX3ByZWZpeCgpLgogICAgICAnbW9kdWxlX2ZiX3Jlc3BfdmFsIChyZXNwX3ZhbF9pZCwgcmVzcF9pZCwgZmllbGRfaWQsIHZhbHVlKScgLgogICAgICAnVkFMVUVTICg/LCA/LCA/LCA/KSc7CiAgICBmb3JlYWNoICgkZmllbGRzIGFzICR0aGlzRmllbGQpCiAgICAgIHsKCS8vIHNldCB0aGUgcmVzcG9uc2VfaWQgdG8gYmUgdGhlIGF0dHJpYnV0ZSBvZiB0aGUgZGF0YWJhc2UgZGlzcG9zaXRpb24KCWlmICgkdGhpc0ZpZWxkLT5HZXRGaWVsZFR5cGUoKSA9PSAnRGlzcG9zaXRpb25EYXRhYmFzZScpCgkgIHsKCSAgICAkdGhpc0ZpZWxkLT5TZXRWYWx1ZSgkcmVzcG9uc2VfaWQpOwoJICB9CgllbHNlaWYgKCEgJHRoaXNGaWVsZC0+RGlzcGxheUluU3VibWlzc2lvbigpKQoJICB7CgkgICAgLy8gc2tpcCBpZiBub3QgYSBkaXNwbGF5YWJsZSBmaWVsZC4KCSAgICBjb250aW51ZTsKCSAgfQoJaWYgKCEgaXNfYXJyYXkoJHRoaXNGaWVsZC0+R2V0VmFsdWUoKSkpCgkgIHsKCSAgICAkc3RvcmUgPSBhcnJheSgpOwoJICAgIGFycmF5X3B1c2goJHN0b3JlLCR0aGlzRmllbGQtPkdldFZhbHVlKCkpOwoJICB9CgllbHNlCgkgIHsKCSAgICAkc3RvcmUgPSAkdGhpc0ZpZWxkLT5HZXRWYWx1ZSgpOwoJICB9Cglmb3JlYWNoICgkc3RvcmUgYXMgJHRoaXNGaWVsZFZhbCkKCSAgewoJICAgIGlmICgkdGhpc0ZpZWxkVmFsICE9PSBmYWxzZSkKCSAgICAgIHsKCQkkcmVzcF92YWxfaWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4KCQkJCQkgICdtb2R1bGVfZmJfcmVzcF92YWxfc2VxJyk7CgkJJHJlcyA9ICRkYi0+RXhlY3V0ZSgkc3FsLCBhcnJheSgkcmVzcF92YWxfaWQsJHJlc3BvbnNlX2lkLAoJCQkJCQkkdGhpc0ZpZWxkLT5HZXRJZCgpLCR0aGlzRmllbGRWYWwpKTsKCSAgICAgIH0KCSAgfSAKICAgICAgfQogICAgcmV0dXJuIGFycmF5KCRyZXNwb25zZV9pZCwkc2VjcmV0X2NvZGUpOwogIH0gICAKICAgIAogIGZ1bmN0aW9uIGNsZWFuX2RhdGV0aW1lKCRkdCkKICB7CiAgICByZXR1cm4gc3Vic3RyKCRkdCwxLHN0cmxlbigkZHQpLTIpOwogIH0KICAgIAp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/FromEmailAddressField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkZyb21FbWFpbEFkZHJlc3NGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCglmdW5jdGlvbiBmYkZyb21FbWFpbEFkZHJlc3NGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJiRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkdGhpcy0+VHlwZSA9ICdGcm9tRW1haWxBZGRyZXNzRmllbGQnOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25fZW1haWxfYWRkcmVzcycpPT4nZW1haWwnLAogICAgICAgICAgICApOwogICAgICAgICR0aGlzLT5WYWxpZGF0aW9uVHlwZSA9ICdlbWFpbCc7CgkgICAkdGhpcy0+bW9kaWZpZXNPdGhlckZpZWxkcyA9IHRydWU7Cgl9CgoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJcmV0dXJuICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdfJy4kdGhpcy0+SWQsCgkJCWh0bWxzcGVjaWFsY2hhcnMoJHRoaXMtPlZhbHVlLCBFTlRfUVVPVEVTKSwKICAgICAgICAgICAyNSwxMjgpOwoJfQoJCglmdW5jdGlvbiBNb2RpZnlPdGhlckZpZWxkcygpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJG90aGVycyA9ICYkdGhpcy0+Zm9ybV9wdHItPkdldEZpZWxkcygpOwoJCQoJCWZvcigkaT0wOyRpPGNvdW50KCRvdGhlcnMpOyRpKyspCgkJCXsKCQkJJHJlcGxWYWwgPSAnJzsKCQkJaWYgKCRvdGhlcnNbJGldLT5Jc0Rpc3Bvc2l0aW9uKCkgJiYgaXNfc3ViY2xhc3Nfb2YoJG90aGVyc1skaV0sJ2ZiRGlzcG9zaXRpb25FbWFpbEJhc2UnKSkKCQkJCXsKCQkJCSRvdGhlcnNbJGldLT5TZXRPcHRpb24oJ2VtYWlsX2Zyb21fYWRkcmVzcycsJHRoaXMtPlZhbHVlKTsKCQkJCX0KCQkJfQoJCQoJfQoKCWZ1bmN0aW9uIFN0YXR1c0luZm8oKQoJewoJCXJldHVybiAnJzsKCX0KCglmdW5jdGlvbiBWYWxpZGF0ZSgpCgl7CgkJJHJlc3VsdCA9IHRydWU7CgkJJG1lc3NhZ2UgPSAnJzsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQlzd2l0Y2ggKCR0aGlzLT5WYWxpZGF0aW9uVHlwZSkKCQkgIHsKCQkgIAkgICBjYXNlICdlbWFpbCc6CiAgICAgICAgICAgICAgICAgIGlmICgkdGhpcy0+VmFsdWUgIT09IGZhbHNlICYmCiAgICAgICAgICAgICAgICAgICAgICAhIHByZWdfbWF0Y2goKCRtb2QtPkdldFByZWZlcmVuY2UoJ3JlbGF4ZWRfZW1haWxfcmVnZXgnLCcwJyk9PTA/JG1vZC0+ZW1haWxfcmVnZXg6JG1vZC0+ZW1haWxfcmVnZXhfcmVsYXhlZCksICR0aGlzLT5WYWx1ZSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICRyZXN1bHQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAkbWVzc2FnZSA9ICRtb2QtPkxhbmcoJ3BsZWFzZV9lbnRlcl9hbl9lbWFpbCcsJHRoaXMtPk5hbWUpOwogICAgICAgICAgICAgICAgICAgIH0KCQkgIAkgICAgICAgYnJlYWs7CgkJICB9CgkJcmV0dXJuIGFycmF5KCRyZXN1bHQsICRtZXNzYWdlKTsKCX0KfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/FromEmailNameField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkZyb21FbWFpbE5hbWVGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCglmdW5jdGlvbiBmYkZyb21FbWFpbE5hbWVGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJiRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkdGhpcy0+VHlwZSA9ICdGcm9tRW1haWxOYW1lRmllbGQnOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoCiAgICAgICAgICAgICk7CgkgICAkdGhpcy0+bW9kaWZpZXNPdGhlckZpZWxkcyA9IHRydWU7Cgl9CgoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJcmV0dXJuICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdfJy4kdGhpcy0+SWQsCgkJCWh0bWxzcGVjaWFsY2hhcnMoJHRoaXMtPlZhbHVlLCBFTlRfUVVPVEVTKSwKICAgICAgICAgICAyNSwxMjgpOwoJfQoJCglmdW5jdGlvbiBNb2RpZnlPdGhlckZpZWxkcygpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJG90aGVycyA9ICYkdGhpcy0+Zm9ybV9wdHItPkdldEZpZWxkcygpOwoJCQoJCWZvcigkaT0wOyRpPGNvdW50KCRvdGhlcnMpOyRpKyspCgkJCXsKCQkJJHJlcGxWYWwgPSAnJzsKCQkJaWYgKCRvdGhlcnNbJGldLT5Jc0Rpc3Bvc2l0aW9uKCkgJiYgaXNfc3ViY2xhc3Nfb2YoJG90aGVyc1skaV0sJ2ZiRGlzcG9zaXRpb25FbWFpbEJhc2UnKSkKCQkJCXsKCQkJCSRvdGhlcnNbJGldLT5TZXRPcHRpb24oJ2VtYWlsX2Zyb21fbmFtZScsJHRoaXMtPlZhbHVlKTsKCQkJCX0KCQkJfQoJCQoJfQoKCWZ1bmN0aW9uIFN0YXR1c0luZm8oKQoJewoJCXJldHVybiAnJzsKCX0KCn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/HiddenField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkhpZGRlbkZpZWxkIGV4dGVuZHMgZmJGaWVsZEJhc2UgCnsKCiAgZnVuY3Rpb24gZmJIaWRkZW5GaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKICB7CiAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICRtb2QgPSAmJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgJHRoaXMtPlR5cGUgPSAnSGlkZGVuRmllbGQnOwogICAgJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwogICAgJHRoaXMtPk5vblJlcXVpcmFibGVGaWVsZCA9IHRydWU7CiAgICAkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoKTsKICAgICR0aGlzLT5IYXNMYWJlbCA9IDA7CiAgfQoKCiAgZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCiAgewogICAgJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICByZXR1cm4gJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnXycuJHRoaXMtPklkLAoJCQkJICAgJHRoaXMtPlZhbHVlKTsKICB9Cn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/LinkField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkxpbmtGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCglmdW5jdGlvbiBmYkxpbmtGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJiRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkdGhpcy0+VHlwZSA9ICAnTGlua0ZpZWxkJzsKCQkkdGhpcy0+RGlzcGxheUluRm9ybSA9IHRydWU7CgkJJHRoaXMtPk5vblJlcXVpcmFibGVGaWVsZCA9IHRydWU7CgkJJHRoaXMtPlJlcXVpcmVkID0gZmFsc2U7CgkJJHRoaXMtPlZhbGlkYXRpb25UeXBlcyA9IGFycmF5KAogICAgICAgICAgICAkbW9kLT5MYW5nKCd2YWxpZGF0aW9uX25vbmUnKT0+J25vbmUnCiAgICAgICAgICAgICk7CiAgICAgICR0aGlzLT5oYXNNdWx0aXBsZUZvcm1Db21wb25lbnRzID0gdHJ1ZTsKCX0KCglmdW5jdGlvbiBHZXRGaWVsZElucHV0KCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQlpZiAoJHRoaXMtPlZhbHVlICE9PSBmYWxzZSAmJiBpc19hcnJheSgkdGhpcy0+VmFsdWUpKQoJCQl7CgkJCSR2YWwgPSAmJHRoaXMtPlZhbHVlOwoJCQl9CgkJZWxzZQoJCQl7CgkJCSR2YWwgPSBhcnJheSgkdGhpcy0+R2V0T3B0aW9uKCdkZWZhdWx0X2xpbmsnLCcnKSwkdGhpcy0+R2V0T3B0aW9uKCdkZWZhdWx0X2xpbmtfdGl0bGUnLCcnKSk7CgkJCX0gCgkJJGZpZWxkRGlzcCA9IGFycmF5KCk7CgkJJHRoaXNCb3ggPSBuZXcgc3RkQ2xhc3MoKTsKCQkkdGhpc0JveC0+bmFtZSA9ICc8bGFiZWwgZm9yPSInLiRpZC4nXycuJHRoaXMtPklkLidbXSI+Jy4kbW9kLT5MYW5nKCdsaW5rX2Rlc3RpbmF0aW9uJykuJzwvbGFiZWw+JzsKCQkkdGhpc0JveC0+dGl0bGUgPSAkbW9kLT5MYW5nKCdsaW5rX2Rlc3RpbmF0aW9uJyk7CgkJJHRoaXNCb3gtPmlucHV0ID0gJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ18nLiR0aGlzLT5JZC4nW10nLCAkdmFsWzBdKTsKCQlhcnJheV9wdXNoKCRmaWVsZERpc3AsICR0aGlzQm94KTsKCQkkdGhpc0JveCA9IG5ldyBzdGRDbGFzcygpOwoJCSR0aGlzQm94LT5uYW1lID0gJzxsYWJlbCBmb3I9IicuJGlkLidfJy4kdGhpcy0+SWQuJ1tdIj4nLiRtb2QtPkxhbmcoJ2xpbmtfbGFiZWwnKS4nPC9sYWJlbD4nOwoJCSR0aGlzQm94LT50aXRsZSA9ICRtb2QtPkxhbmcoJ2xpbmtfbGFiZWwnKTsKCQkkdGhpc0JveC0+aW5wdXQgPSAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnXycuJHRoaXMtPklkLidbXScsICR2YWxbMV0pOwoJCWFycmF5X3B1c2goJGZpZWxkRGlzcCwgJHRoaXNCb3gpOwkJCQoJCXJldHVybiAkZmllbGREaXNwOwoJCQoJfQoKCWZ1bmN0aW9uIEdldEh1bWFuUmVhZGFibGVWYWx1ZSgpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgoJCWlmICgkdGhpcy0+VmFsdWUgPT09IGZhbHNlIHx8ICEgaXNfYXJyYXkoJHRoaXMtPlZhbHVlKSkKCQkJewoJCQlyZXR1cm4gJyc7CgkJCX0KCQllbHNlCgkJCXsKCQkJcmV0dXJuICc8YSBocmVmPSInLiR0aGlzLT5WYWx1ZVswXS4nIj4nLiR0aGlzLT5WYWx1ZVsxXS4nPC9hPic7CgkJCX0JCgl9CgoKCWZ1bmN0aW9uIFBvc3RQb3B1bGF0ZUFkbWluRm9ybSgmJG1haW5BcnJheSwgJiRhZHZBcnJheSkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCS8vIHJlbW92ZSB0aGUgInJlcXVpcmVkIiBmaWVsZCwgc2luY2UgdGhpcyBjYW4gb25seSBiZSBkb25lIHZpYSB2YWxpZGF0aW9uCgkJJHJlcUluZGV4ID0gLTE7CgkJZm9yICgkaT0wOyRpPGNvdW50KCRtYWluQXJyYXkpOyRpKyspCgkJCXsKCQkJaWYgKCRtYWluQXJyYXlbJGldLT50aXRsZSA9PSAkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9yZXF1aXJlZCcpKQoJCQkJewoJCQkJJHJlcUluZGV4ID0gJGk7CgkJCQl9CgkJCX0KCQlpZiAoJHJlcUluZGV4ICE9IC0xKQoJCQl7CgkJCWFycmF5X3NwbGljZSgkbWFpbkFycmF5LCAkcmVxSW5kZXgsMSk7CgkJCX0KCX0KCgoJZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRtYWluID0gYXJyYXkoCiAgICAgICAgICAgICBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9kZWZhdWx0X2xpbmsnKSwkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnb3B0X2RlZmF1bHRfbGluaycsJHRoaXMtPkdldE9wdGlvbignZGVmYXVsdF9saW5rJywnJyksMjUsMTI4KSksCiAgICAgICAgICAgICBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9kZWZhdWx0X2xpbmtfdGl0bGUnKSwkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnb3B0X2RlZmF1bHRfbGlua190aXRsZScsJHRoaXMtPkdldE9wdGlvbignZGVmYXVsdF9saW5rX3RpdGxlJywnJyksMjUsMTI4KSkKCQkpOwoJCSRhZHYgPSBhcnJheSgKCQkpOwoJCXJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLCdhZHYnPT4kYWR2KTsKCX0KCglmdW5jdGlvbiBWYWxpZGF0ZSgpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHJlc3VsdCA9IHRydWU7CgkJJG1lc3NhZ2UgPSAnJzsKCgkJc3dpdGNoICgkdGhpcy0+VmFsaWRhdGlvblR5cGUpCgkJICB7CgkJICAJICAgY2FzZSAnbm9uZSc6CgkJICAJICAgICAgIGJyZWFrOwoJCSAgfQoJCXJldHVybiBhcnJheSgkcmVzdWx0LCAkbWVzc2FnZSk7Cgl9Cgp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/MultiselectField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYk11bHRpc2VsZWN0RmllbGQgZXh0ZW5kcyBmYkZpZWxkQmFzZSB7CgoJdmFyICRvcHRpb25Db3VudDsKCXZhciAkb3B0aW9uQWRkOwoKCWZ1bmN0aW9uIGZiTXVsdGlzZWxlY3RGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgICR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgICAgICRtb2QgPSAmJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gJ011bHRpc2VsZWN0RmllbGQnOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+Tm9uUmVxdWlyYWJsZUZpZWxkID0gZmFsc2U7CgkJJHRoaXMtPkhhc0FkZE9wID0gdHJ1ZTsKCQkkdGhpcy0+SGFzRGVsZXRlT3AgPSB0cnVlOwoJCSR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgKICAgICAgICAgICAgKTsKICAgICAgICAkdGhpcy0+b3B0aW9uQWRkID0gMDsKCX0KCglmdW5jdGlvbiBHZXRPcHRpb25BZGRCdXR0b24oKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCXJldHVybiAkbW9kLT5MYW5nKCdhZGRfb3B0aW9ucycpOwoJfQoKCWZ1bmN0aW9uIEdldE9wdGlvbkRlbGV0ZUJ1dHRvbigpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJcmV0dXJuICRtb2QtPkxhbmcoJ2RlbGV0ZV9vcHRpb25zJyk7Cgl9CgoJZnVuY3Rpb24gRG9PcHRpb25BZGQoJiRwYXJhbXMpCgl7CgkJJHRoaXMtPm9wdGlvbkFkZCA9IDI7Cgl9CgoJZnVuY3Rpb24gRG9PcHRpb25EZWxldGUoJiRwYXJhbXMpCgl7CgkJJGRlbGNvdW50ID0gMDsKCQlmb3JlYWNoICgkcGFyYW1zIGFzICR0aGlzS2V5PT4kdGhpc1ZhbCkKCQkJewoJCQlpZiAoc3Vic3RyKCR0aGlzS2V5LDAsNCkgPT0gJ2RlbF8nKQoJCQkJewoJCQkJJHRoaXMtPlJlbW92ZU9wdGlvbkVsZW1lbnQoJ29wdGlvbl9uYW1lJywgJHRoaXNWYWwgLSAkZGVsY291bnQpOwoJCQkJJHRoaXMtPlJlbW92ZU9wdGlvbkVsZW1lbnQoJ29wdGlvbl92YWx1ZScsICR0aGlzVmFsIC0gJGRlbGNvdW50KTsKCQkJCSRkZWxjb3VudCsrOwoJCQkJfQoJCQl9Cgl9CgoJZnVuY3Rpb24gY291bnRJdGVtcygpCgl7CgkJCSR0bXAgPSAmJHRoaXMtPkdldE9wdGlvblJlZignb3B0aW9uX25hbWUnKTsKCQkJaWYgKGlzX2FycmF5KCR0bXApKQoJCQkJewoJICAgICAgICAJJHRoaXMtPm9wdGlvbkNvdW50ID0gY291bnQoJHRtcCk7CgkgICAgICAgIAl9CgkgICAgICAgIGVsc2VpZiAoJHRtcCAhPT0gZmFsc2UpCgkgICAgICAgIAl7CgkgICAgICAgIAkkdGhpcy0+b3B0aW9uQ291bnQgPSAxOwoJICAgICAgICAJfQoJICAgICAgICBlbHNlCgkgICAgICAgIAl7CgkgICAgICAgIAkkdGhpcy0+b3B0aW9uQ291bnQgPSAwOwoJICAgICAgICAJfQoJfQoKCWZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoKCQkvLyB3aHkgYWxsIHRoaXM/IEFzc29jaWF0aXZlIGFycmF5cyBhcmUgbm90IGd1YXJhbnRlZWQgdG8gcHJlc2VydmUKCQkvLyBvcmRlciwgZXhjZXB0IGluICJjaHJvbm9sb2dpY2FsIiBjcmVhdGlvbiBvcmRlci4KCQkkc29ydGVkID1hcnJheSgpOwoJCSRzdWJqZWN0cyA9ICYkdGhpcy0+R2V0T3B0aW9uUmVmKCdvcHRpb25fbmFtZScpOwoKCQlpZiAoY291bnQoJHN1YmplY3RzKSA+IDEpCgkJCXsKCQkJZm9yKCRpPTA7JGk8Y291bnQoJHN1YmplY3RzKTskaSsrKQoJCQkJewoJCQkJJHNvcnRlZFskc3ViamVjdHNbJGldXT0oJGkrMSk7CgkJCQl9CgkJCX0KCQllbHNlCgkJCXsKCQkJJHNvcnRlZFskc3ViamVjdHNdID0gJzEnOwoJCQl9CgkJaWYgKCR0aGlzLT5WYWx1ZSA9PT0gZmFsc2UpCgkJCXsKCQkJJHZhbCA9IGFycmF5KCk7CgkJCX0KCQllbHNlaWYgKCFpc19hcnJheSgkdGhpcy0+VmFsdWUpKQoJCQl7CgkJCSR2YWwgPSBhcnJheSgkdGhpcy0+VmFsdWUpOwoJCQl9CgkJZWxzZQoJCQl7CgkJCSR2YWwgPSAkdGhpcy0+VmFsdWU7CgkJCX0KCQlyZXR1cm4gJG1vZC0+Q3JlYXRlSW5wdXRTZWxlY3RMaXN0KCRpZCwgJ18nLiR0aGlzLT5JZC4nW10nLCAkc29ydGVkLCR2YWwsICR0aGlzLT5HZXRPcHRpb24oJ2xpbmVzJywnMycpKTsKCX0KCgoKICAgIGZ1bmN0aW9uIFN0YXR1c0luZm8oKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRvcHQgPSAkdGhpcy0+R2V0T3B0aW9uKCdvcHRpb25fbmFtZScsJycpOwoJCQoJCWlmIChpc19hcnJheSgkb3B0KSkKCQkgIHsKCQkgICAgICAkbnVtID0gY291bnQoJG9wdCk7CgkJICB9CgkJZWxzZWlmICgkb3B0ICE9ICcnKQoJCQl7CgkJCSRudW0gPSAxOwoJCQl9CgkJZWxzZQoJCSAgewogICAgICAgICAgJG51bSA9IDA7CiAgICAgICAgICB9CiAgICAgICAgICRyZXQ9ICRtb2QtPkxhbmcoJ29wdGlvbnMnLCRudW0pOwogICAgICAgIHJldHVybiAkcmV0OwoJfQoJCglmdW5jdGlvbiBQcmVQb3B1bGF0ZUFkbWluRm9ybSgkZm9ybURlc2NyaXB0b3IpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgoJCSR0aGlzLT5jb3VudEl0ZW1zKCk7CgkJaWYgKCR0aGlzLT5vcHRpb25BZGQgPiAwKQoJCQl7CgkJCSR0aGlzLT5vcHRpb25Db3VudCArPSAkdGhpcy0+b3B0aW9uQWRkOwoJCQkkdGhpcy0+b3B0aW9uQWRkID0gMDsKCQkJfQoJCSRkZXN0cyA9ICc8dGFibGUgY2xhc3M9Im1vZHVsZV9mYl90YWJsZSI+PHRyPjx0aD4nLiRtb2QtPkxhbmcoJ3RpdGxlX29wdGlvbl9uYW1lJykuJzwvdGg+PHRoPicuCgkJCSRtb2QtPkxhbmcoJ3RpdGxlX29wdGlvbl92YWx1ZScpLic8L3RoPjx0aD4nLgoJCQkkbW9kLT5MYW5nKCd0aXRsZV9kZWxldGUnKS4nPC90aD48L3RyPic7CgoKCQlmb3IgKCRpPTA7JGk8KCR0aGlzLT5vcHRpb25Db3VudD4xPyR0aGlzLT5vcHRpb25Db3VudDoxKTskaSsrKQoJCQl7CgkJCSRkZXN0cyAuPSAgJzx0cj48dGQ+Jy4KICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnb3B0X29wdGlvbl9uYW1lW10nLCR0aGlzLT5HZXRPcHRpb25FbGVtZW50KCdvcHRpb25fbmFtZScsJGkpLDI1LDEyOCkuCiAgICAgICAgICAgIAkJJzwvdGQ+PHRkPicuCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ29wdF9vcHRpb25fdmFsdWVbXScsJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ29wdGlvbl92YWx1ZScsJGkpLDI1LDEyOCkuCiAgICAgICAgICAgIAkJJzwvdGQ+PHRkPicuCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdkZWxfJy4kaSwgJGksLTEpLgogICAgICAgICAgICAgCQknPC90ZD48L3RyPic7CgkJCX0KCQkkZGVzdHMgLj0gJzwvdGFibGU+JzsKCQkkbWFpbiA9IGFycmF5KCk7CgkJJGFkdiA9IGFycmF5KCk7CgkJYXJyYXlfcHVzaCgkbWFpbixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9saW5lc190b19zaG93JyksJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ29wdF9saW5lcycsJHRoaXMtPkdldE9wdGlvbignbGluZXMnLCczJyksMTAsMTApKSk7CgkJYXJyYXlfcHVzaCgkbWFpbixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9tdWx0aXNlbGVjdF9kZXRhaWxzJyksJGRlc3RzKSk7CgkJcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwoJfQoKCWZ1bmN0aW9uIEdldEh1bWFuUmVhZGFibGVWYWx1ZSgpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJGZvcm0gPSAmJHRoaXMtPmZvcm1fcHRyOwoJCSR2YWxzID0gJiR0aGlzLT5HZXRPcHRpb25SZWYoJ29wdGlvbl92YWx1ZScpOwoJCQoJCWlmICgkdGhpcy0+SGFzVmFsdWUoKSkKCQkJewoJCQkkZmllbGRSZXQgPSBhcnJheSgpOwoJCQlpZiAoISBpc19hcnJheSgkdGhpcy0+VmFsdWUpKQoJCQkJewoJCQkJJHRoaXMtPlZhbHVlID0gYXJyYXkoJHRoaXMtPlZhbHVlKTsKCQkJCX0KCQkJZm9yZWFjaCAoJHRoaXMtPlZhbHVlIGFzICR0aGlzT25lKQoJCQkJewoJCQkJYXJyYXlfcHVzaCgkZmllbGRSZXQsJHZhbHNbJHRoaXNPbmUgLSAxXSk7CgkJCQl9CgkJCXJldHVybiBqb2luKCRmb3JtLT5HZXRBdHRyKCdsaXN0X2RlbGltaXRlcicsJywnKSwkZmllbGRSZXQpOwkJCQoJCQl9CgkJZWxzZQoJCQl7CgkJCXJldHVybiAkbW9kLT5MYW5nKCd1bnNwZWNpZmllZCcpOwoJCQl9CQoJfQoJCn0KPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/PageBreakField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYlBhZ2VCcmVha0ZpZWxkIGV4dGVuZHMgZmJGaWVsZEJhc2UgewoKCWZ1bmN0aW9uIGZiUGFnZUJyZWFrRmllbGQoJiRmb3JtX3B0ciwgJiRwYXJhbXMpCgl7CiAgICAgICAgJHRoaXMtPmZiRmllbGRCYXNlKCRmb3JtX3B0ciwgJHBhcmFtcyk7CiAgICAgICAgJG1vZCA9ICYkZm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHRoaXMtPlR5cGUgPSAnUGFnZUJyZWFrRmllbGQnOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gZmFsc2U7CgkJJHRoaXMtPlJlcXVpcmVkID0gZmFsc2U7CgkJLy8kdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoJG1vZC0+TGFuZygndmFsaWRhdGlvbl9ub25lJyk9Pidub25lJyk7CgkJJHRoaXMtPlZhbGlkYXRpb25UeXBlcyA9IGFycmF5KCk7CgkJJHRoaXMtPk5vblJlcXVpcmFibGVGaWVsZCA9IHRydWU7Cgl9CgoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuX2lkKQoJewoJfQoKCglmdW5jdGlvbiBTdGF0dXNJbmZvKCkKCXsKCQlyZXR1cm4gJyc7Cgl9CgoKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQlyZXR1cm4gYXJyYXkoKTsKCX0KCglmdW5jdGlvbiBQb3N0UG9wdWxhdGVBZG1pbkZvcm0oJiRtYWluQXJyYXksICYkYWR2QXJyYXkpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJLy8gcmVtb3ZlIHRoZSAicmVxdWlyZWQiIGZpZWxkCgkJJHJlcUluZGV4ID0gLTE7CgkJZm9yICgkaT0wOyRpPGNvdW50KCRtYWluQXJyYXkpOyRpKyspCgkJCXsKCQkJaWYgKCRtYWluQXJyYXlbJGldLT50aXRsZSA9PSAkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9yZXF1aXJlZCcpKQoJCQkJewoJCQkJJHJlcUluZGV4ID0gJGk7CgkJCQl9CgkJCX0KCQlpZiAoJHJlcUluZGV4ICE9IC0xKQoJCQl7CgkJCWFycmF5X3NwbGljZSgkbWFpbkFycmF5LCAkcmVxSW5kZXgsMSk7CgkJCX0KCQkvLyByZW1vdmUgdGhlICJoaWRlIG5hbWUiIGZpZWxkCgkJJGhpZGVJbmRleCA9IC0xOwoJCWZvciAoJGk9MDskaTxjb3VudCgkYWR2QXJyYXkpOyRpKyspCgkJCXsKCQkJaWYgKCRhZHZBcnJheVskaV0tPnRpdGxlID09ICRtb2QtPkxhbmcoJ3RpdGxlX2hpZGVfbGFiZWwnKSkKCQkJCXsKCQkJCSRhZHZBcnJheVskaV0tPnRpdGxlID0gJG1vZC0+TGFuZygndGFiX2FkdmFuY2VkJyk7CgkJCQkkYWR2QXJyYXlbJGldLT5pbnB1dCA9ICRtb2QtPkxhbmcoJ3RpdGxlX25vX2FkdmFuY2VkX29wdGlvbnMnKTsKCQkJCX0KCQkJfQoJfQoKCglmdW5jdGlvbiBWYWxpZGF0ZSgpCgl7CgkJcmV0dXJuIGFycmF5KHRydWUsJycpOwoJfQoJCglmdW5jdGlvbiBBZG1pblZhbGlkYXRlKCkKCXsKCQlyZXR1cm4gYXJyYXkodHJ1ZSwnJyk7Cgl9Cn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/PulldownField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYlB1bGxkb3duRmllbGQgZXh0ZW5kcyBmYkZpZWxkQmFzZSB7CgoJdmFyICRvcHRpb25Db3VudDsKCXZhciAkb3B0aW9uQWRkOwoKCWZ1bmN0aW9uIGZiUHVsbGRvd25GaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgICR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgICAgICRtb2QgPSAmJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gJ1B1bGxkb3duRmllbGQnOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+Tm9uUmVxdWlyYWJsZUZpZWxkID0gZmFsc2U7CgkJJHRoaXMtPkhhc0FkZE9wID0gdHJ1ZTsKCQkkdGhpcy0+SGFzRGVsZXRlT3AgPSB0cnVlOwoJCSR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgKICAgICAgICAgICAgKTsKICAgICAgICAkdGhpcy0+b3B0aW9uQWRkID0gMDsKCX0KCglmdW5jdGlvbiBHZXRPcHRpb25BZGRCdXR0b24oKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCXJldHVybiAkbW9kLT5MYW5nKCdhZGRfb3B0aW9ucycpOwoJfQoKCWZ1bmN0aW9uIEdldE9wdGlvbkRlbGV0ZUJ1dHRvbigpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJcmV0dXJuICRtb2QtPkxhbmcoJ2RlbGV0ZV9vcHRpb25zJyk7Cgl9CgoJZnVuY3Rpb24gRG9PcHRpb25BZGQoJiRwYXJhbXMpCgl7CgkJJHRoaXMtPm9wdGlvbkFkZCA9IDE7Cgl9CgoJZnVuY3Rpb24gRG9PcHRpb25EZWxldGUoJiRwYXJhbXMpCgl7CgkJJGRlbGNvdW50ID0gMDsKCQlmb3JlYWNoICgkcGFyYW1zIGFzICR0aGlzS2V5PT4kdGhpc1ZhbCkKCQkJewoJCQlpZiAoc3Vic3RyKCR0aGlzS2V5LDAsNCkgPT0gJ2RlbF8nKQoJCQkJewoJCQkJJHRoaXMtPlJlbW92ZU9wdGlvbkVsZW1lbnQoJ29wdGlvbl9uYW1lJywgJHRoaXNWYWwgLSAkZGVsY291bnQpOwoJCQkJJHRoaXMtPlJlbW92ZU9wdGlvbkVsZW1lbnQoJ29wdGlvbl92YWx1ZScsICR0aGlzVmFsIC0gJGRlbGNvdW50KTsKCQkJCSRkZWxjb3VudCsrOwoJCQkJfQoJCQl9Cgl9CgoJZnVuY3Rpb24gY291bnRJdGVtcygpCgl7CgkJCSR0bXAgPSAmJHRoaXMtPkdldE9wdGlvblJlZignb3B0aW9uX25hbWUnKTsKCQkJaWYgKGlzX2FycmF5KCR0bXApKQoJCQkJewoJICAgICAgICAJJHRoaXMtPm9wdGlvbkNvdW50ID0gY291bnQoJHRtcCk7CgkgICAgICAgIAl9CgkgICAgICAgIGVsc2VpZiAoJHRtcCAhPT0gZmFsc2UpCgkgICAgICAgIAl7CgkgICAgICAgIAkkdGhpcy0+b3B0aW9uQ291bnQgPSAxOwoJICAgICAgICAJfQoJICAgICAgICBlbHNlCgkgICAgICAgIAl7CgkgICAgICAgIAkkdGhpcy0+b3B0aW9uQ291bnQgPSAwOwoJICAgICAgICAJfQoJfQoKCWZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoKCQkvLyB3aHkgYWxsIHRoaXM/IEFzc29jaWF0aXZlIGFycmF5cyBhcmUgbm90IGd1YXJhbnRlZWQgdG8gcHJlc2VydmUKCQkvLyBvcmRlciwgZXhjZXB0IGluICJjaHJvbm9sb2dpY2FsIiBjcmVhdGlvbiBvcmRlci4KCQkkc29ydGVkID1hcnJheSgpOwoJCWlmICgkdGhpcy0+R2V0T3B0aW9uKCdzZWxlY3Rfb25lJywnJykgIT0gJycpCgkJCXsKCQkJJHNvcnRlZFsnICcuJHRoaXMtPkdldE9wdGlvbignc2VsZWN0X29uZScsJycpXT0nJzsKCQkJfQoJCWVsc2UKCQkJewoJCQkkc29ydGVkWycgJy4kbW9kLT5MYW5nKCdzZWxlY3Rfb25lJyldPScnOwoJCQl9CgkJJHN1YmplY3RzID0gJiR0aGlzLT5HZXRPcHRpb25SZWYoJ29wdGlvbl9uYW1lJyk7CgoJCWlmIChjb3VudCgkc3ViamVjdHMpID4gMSkKCQkJewoJCQlmb3IoJGk9MDskaTxjb3VudCgkc3ViamVjdHMpOyRpKyspCgkJCQl7CgkJCQkkc29ydGVkWyRzdWJqZWN0c1skaV1dPSgkaSsxKTsKCQkJCX0KCQkJfQoJCWVsc2UKCQkJewoJCQkkc29ydGVkWyRzdWJqZWN0c10gPSAnMSc7CgkJCX0KCQlyZXR1cm4gJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICdfJy4kdGhpcy0+SWQsICRzb3J0ZWQsIC0xLCAkdGhpcy0+VmFsdWUpOwoJfQoKCgogICAgZnVuY3Rpb24gU3RhdHVzSW5mbygpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJG9wdCA9ICR0aGlzLT5HZXRPcHRpb24oJ29wdGlvbl9uYW1lJywnJyk7CgkJCgkJaWYgKGlzX2FycmF5KCRvcHQpKQoJCSAgewoJCSAgICAgICRudW0gPSBjb3VudCgkb3B0KTsKCQkgIH0KCQllbHNlaWYgKCRvcHQgIT0gJycpCgkJCXsKCQkJJG51bSA9IDE7CgkJCX0KCQllbHNlCgkJICB7CiAgICAgICAgICAkbnVtID0gMDsKICAgICAgICAgIH0KICAgICAgICAgJHJldD0gJG1vZC0+TGFuZygnb3B0aW9ucycsJG51bSk7CiAgICAgICAgcmV0dXJuICRyZXQ7Cgl9CgkKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCgkJJHRoaXMtPmNvdW50SXRlbXMoKTsKCQlpZiAoJHRoaXMtPm9wdGlvbkFkZCA+IDApCgkJCXsKCQkJJHRoaXMtPm9wdGlvbkNvdW50ICs9ICR0aGlzLT5vcHRpb25BZGQ7CgkJCSR0aGlzLT5vcHRpb25BZGQgPSAwOwoJCQl9CgkJJGRlc3RzID0gJzx0YWJsZSBjbGFzcz0ibW9kdWxlX2ZiX3RhYmxlIj48dHI+PHRoPicuJG1vZC0+TGFuZygndGl0bGVfb3B0aW9uX25hbWUnKS4nPC90aD48dGg+Jy4KCQkJJG1vZC0+TGFuZygndGl0bGVfb3B0aW9uX3ZhbHVlJykuJzwvdGg+PHRoPicuCgkJCSRtb2QtPkxhbmcoJ3RpdGxlX2RlbGV0ZScpLic8L3RoPjwvdHI+JzsKCgoJCWZvciAoJGk9MDskaTwoJHRoaXMtPm9wdGlvbkNvdW50PjE/JHRoaXMtPm9wdGlvbkNvdW50OjEpOyRpKyspCgkJCXsKCQkJJGRlc3RzIC49ICAnPHRyPjx0ZD4nLgogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdvcHRfb3B0aW9uX25hbWVbXScsJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ29wdGlvbl9uYW1lJywkaSksMjUsMTI4KS4KICAgICAgICAgICAgCQknPC90ZD48dGQ+Jy4KICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnb3B0X29wdGlvbl92YWx1ZVtdJywkdGhpcy0+R2V0T3B0aW9uRWxlbWVudCgnb3B0aW9uX3ZhbHVlJywkaSksMjUsMTI4KS4KICAgICAgICAgICAgCQknPC90ZD48dGQ+Jy4KICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dENoZWNrYm94KCRmb3JtRGVzY3JpcHRvciwgJ2RlbF8nLiRpLCAkaSwtMSkuCiAgICAgICAgICAgICAJCSc8L3RkPjwvdHI+JzsKCQkJfQoJCSRkZXN0cyAuPSAnPC90YWJsZT4nOwoJCSRtYWluID0gYXJyYXkoKTsKCQkkYWR2ID0gYXJyYXkoKTsKCQlhcnJheV9wdXNoKCRtYWluLGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3NlbGVjdF9vbmVfbWVzc2FnZScpLAoJCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnb3B0X3NlbGVjdF9vbmUnLAoJCQkkdGhpcy0+R2V0T3B0aW9uKCdzZWxlY3Rfb25lJywkbW9kLT5MYW5nKCdzZWxlY3Rfb25lJykpLDI1LDEyOCkpKTsKCQlhcnJheV9wdXNoKCRtYWluLGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3B1bGxkb3duX2RldGFpbHMnKSwkZGVzdHMpKTsKCQlyZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7Cgl9CgoJZnVuY3Rpb24gUG9zdFBvcHVsYXRlQWRtaW5Gb3JtKCYkbWFpbkFycmF5LCAmJGFkdkFycmF5KQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCS8vIHJlbW92ZSB0aGUgInJlcXVpcmVkIiBmaWVsZAoJCSRyZXFJbmRleCA9IC0xOwoJCWZvciAoJGk9MDskaTxjb3VudCgkbWFpbkFycmF5KTskaSsrKQoJCQl7CgkJCWlmICgkbWFpbkFycmF5WyRpXS0+dGl0bGUgPT0gJG1vZC0+TGFuZygndGl0bGVfZmllbGRfcmVxdWlyZWQnKSkKCQkJCXsKCQkJCSRyZXFJbmRleCA9ICRpOwoJCQkJfQoJCQl9CgkJaWYgKCRyZXFJbmRleCAhPSAtMSkKCQkJewoJCQlhcnJheV9zcGxpY2UoJG1haW5BcnJheSwgJHJlcUluZGV4LDEpOwoJCQl9CgkJaWYgKGNvdW50KCRhZHZBcnJheSkgPT0gMCkKCQkJewoJCQkkYWR2QXJyYXlbMF0tPnRpdGxlID0gJG1vZC0+TGFuZygndGFiX2FkdmFuY2VkJyk7CgkJCSRhZHZBcnJheVswXS0+aW5wdXQgPSAkbW9kLT5MYW5nKCd0aXRsZV9ub19hZHZhbmNlZF9vcHRpb25zJyk7CgkJCX0KCX0KCglmdW5jdGlvbiBHZXRIdW1hblJlYWRhYmxlVmFsdWUoKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCWlmICgkdGhpcy0+SGFzVmFsdWUoKSkKCQkJewoJCQlyZXR1cm4gJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ29wdGlvbl92YWx1ZScsKCR0aGlzLT5WYWx1ZS0xKSk7CgkJCX0KCQllbHNlCgkJCXsKCQkJcmV0dXJuICRtb2QtPkxhbmcoJ3Vuc3BlY2lmaWVkJyk7CgkJCX0JCgl9CgkKfQo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/RadioGroupField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYlJhZGlvR3JvdXBGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIAp7CgogIHZhciAkb3B0aW9uQ291bnQ7CiAgdmFyICRvcHRpb25BZGQ7CgkKICBmdW5jdGlvbiBmYlJhZGlvR3JvdXBGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKICB7CiAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICRtb2QgPSAmJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgJHRoaXMtPlR5cGUgPSAnUmFkaW9Hcm91cEZpZWxkJzsKICAgICR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKICAgICR0aGlzLT5IYXNBZGRPcCA9IHRydWU7CiAgICAkdGhpcy0+SGFzRGVsZXRlT3AgPSB0cnVlOwogICAgJHRoaXMtPk5vblJlcXVpcmFibGVGaWVsZCA9IHRydWU7CiAgICAkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoCiAgICAgICAgICAgICk7CiAgICAkdGhpcy0+b3B0aW9uQWRkID0gMDsKICAgICR0aGlzLT5oYXNNdWx0aXBsZUZvcm1Db21wb25lbnRzID0gdHJ1ZTsKICB9CgogIGZ1bmN0aW9uIGNvdW50Qm94ZXMoKQogIHsKICAgICR0bXAgPSAmJHRoaXMtPkdldE9wdGlvblJlZignYnV0dG9uX25hbWUnKTsKICAgIGlmIChpc19hcnJheSgkdG1wKSkKICAgICAgewoJJHRoaXMtPm9wdGlvbkNvdW50ID0gY291bnQoJHRtcCk7CiAgICAgIH0KICAgIGVsc2VpZiAoJHRtcCAhPT0gZmFsc2UpCiAgICAgIHsKCSR0aGlzLT5vcHRpb25Db3VudCA9IDE7CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJJHRoaXMtPm9wdGlvbkNvdW50ID0gMDsKICAgICAgfQogIH0KCiAgZnVuY3Rpb24gU3RhdHVzSW5mbygpCiAgewogICAgJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkdGhpcy0+Y291bnRCb3hlcygpOwogICAgJHJldCA9ICRtb2QtPkxhbmcoJ29wdGlvbnMnLCR0aGlzLT5vcHRpb25Db3VudCk7CiAgICBpZiAoc3RybGVuKCR0aGlzLT5WYWxpZGF0aW9uVHlwZSk+MCkKICAgICAgewoJJHJldCAuPSAiLCAiLmFycmF5X3NlYXJjaCgkdGhpcy0+VmFsaWRhdGlvblR5cGUsJHRoaXMtPlZhbGlkYXRpb25UeXBlcyk7CiAgICAgIH0KICAgIHJldHVybiAkcmV0OwogIH0KCiAgZnVuY3Rpb24gR2V0T3B0aW9uQWRkQnV0dG9uKCkKICB7CiAgICAkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgIHJldHVybiAkbW9kLT5MYW5nKCdhZGRfb3B0aW9ucycpOwogIH0KCiAgZnVuY3Rpb24gR2V0T3B0aW9uRGVsZXRlQnV0dG9uKCkKICB7CiAgICAkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgIHJldHVybiAkbW9kLT5MYW5nKCdkZWxldGVfb3B0aW9ucycpOwogIH0KCiAgZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCiAgewogICAgJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkbmFtZXMgPSAmJHRoaXMtPkdldE9wdGlvblJlZignYnV0dG9uX25hbWUnKTsKICAgICRpc19zZXQgPSAmJHRoaXMtPkdldE9wdGlvblJlZignYnV0dG9uX2lzX3NldCcpOwogICAgJGZpZWxkRGlzcCA9IGFycmF5KCk7CiAgICBmb3IgKCRpPTA7JGk8Y291bnQoJG5hbWVzKTskaSsrKQogICAgICB7CgkkbGFiZWwgPSAnJzsKCSR0aGlzQm94ID0gbmV3IHN0ZENsYXNzKCk7CglpZiAoc3RybGVuKCRuYW1lc1skaV0pID4gMCkKCSAgewoJICAgICR0aGlzQm94LT5uYW1lID0gJzxsYWJlbCBmb3I9IicuJGlkLidfJy4kdGhpcy0+SWQuJyI+Jy4kbmFtZXNbJGldLic8L2xhYmVsPic7CgkgICAgJHRoaXNCb3gtPnRpdGxlID0gJG5hbWVzWyRpXTsKCSAgfQoJJGNoZWNrX3ZhbCA9IGZhbHNlOwoJaWYgKCR0aGlzLT5WYWx1ZSAhPT0gZmFsc2UpCgkgIHsKCSAgICAkY2hlY2tfdmFsID0gJHRoaXMtPkZpbmRBcnJheVZhbHVlKCRpKTsKCSAgfQoJZWxzZQoJICB7CgkgICAgaWYgKGlzc2V0KCRpc19zZXRbJGldKSAmJiAkaXNfc2V0WyRpXSA9PSAneScpCgkgICAgICB7CgkJJGNoZWNrX3ZhbCA9IHRydWU7CgkgICAgICB9CQkJCQoJICB9CgkkdGhpc0JveC0+aW5wdXQgPSAnPGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSInLiRpZC4nXycuJHRoaXMtPklkLiciIHZhbHVlPSInLiRpLiciJzsKCWlmICgkY2hlY2tfdmFsKQoJICB7CgkgICAgJHRoaXNCb3gtPmlucHV0IC49ICcgY2hlY2tlZD0iY2hlY2tlZCInOwoJICB9CgkkdGhpc0JveC0+aW5wdXQgLj0gJyAvPic7CglhcnJheV9wdXNoKCRmaWVsZERpc3AsICR0aGlzQm94KTsKICAgICAgfQkJCQogICAgcmV0dXJuICRmaWVsZERpc3A7CiAgfQoKICBmdW5jdGlvbiBHZXRIdW1hblJlYWRhYmxlVmFsdWUoKQogIHsKICAgICRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgaWYgKCR0aGlzLT5IYXNWYWx1ZSgpKQogICAgICB7CglyZXR1cm4gJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ2J1dHRvbl9jaGVja2VkJywkdGhpcy0+VmFsdWUpOwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCXJldHVybiAkdGhpcy0+Zm9ybV9wdHItPkdldEF0dHIoJ3Vuc3BlY2lmaWVkJywkbW9kLT5MYW5nKCd1bnNwZWNpZmllZCcpKTsKICAgICAgfQkKICB9CgoKICBmdW5jdGlvbiBEb09wdGlvbkFkZCgmJHBhcmFtcykKICB7CiAgICAkdGhpcy0+b3B0aW9uQWRkID0gMTsKICB9CgogIGZ1bmN0aW9uIERvT3B0aW9uRGVsZXRlKCYkcGFyYW1zKQogIHsKICAgICRkZWxjb3VudCA9IDA7CiAgICBmb3JlYWNoICgkcGFyYW1zIGFzICR0aGlzS2V5PT4kdGhpc1ZhbCkKICAgICAgewoJaWYgKHN1YnN0cigkdGhpc0tleSwwLDQpID09ICdkZWxfJykKCSAgewoJICAgICR0aGlzLT5SZW1vdmVPcHRpb25FbGVtZW50KCdidXR0b25fbmFtZScsICR0aGlzVmFsIC0gJGRlbGNvdW50KTsKCSAgICAkdGhpcy0+UmVtb3ZlT3B0aW9uRWxlbWVudCgnYnV0dG9uX2NoZWNrZWQnLCAkdGhpc1ZhbCAtICRkZWxjb3VudCk7CgkgICAgJHRoaXMtPlJlbW92ZU9wdGlvbkVsZW1lbnQoJ2J1dHRvbl9pc19zZXQnLCAkdGhpc1ZhbCAtICRkZWxjb3VudCk7CgkgICAgJGRlbGNvdW50Kys7CgkgIH0KICAgICAgfQogIH0KCgogIGZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKICB7CiAgICAkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICR5ZXNObyA9IGFycmF5KCRtb2QtPkxhbmcoJ25vJyk9PiduJywkbW9kLT5MYW5nKCd5ZXMnKT0+J3knKTsKCiAgICAkdGhpcy0+Y291bnRCb3hlcygpOwogICAgaWYgKCR0aGlzLT5vcHRpb25BZGQgPiAwKQogICAgICB7CgkkdGhpcy0+b3B0aW9uQ291bnQgKz0gJHRoaXMtPm9wdGlvbkFkZDsKCSR0aGlzLT5vcHRpb25BZGQgPSAwOwogICAgICB9CiAgICAkYm94ZXMgPSAnPHRhYmxlIGNsYXNzPSJtb2R1bGVfZmJfdGFibGUiPjx0cj48dGg+Jy4kbW9kLT5MYW5nKCd0aXRsZV9jaGVja2JveF9sYWJlbCcpLic8L3RoPjx0aD4nLgogICAgICAkbW9kLT5MYW5nKCd0aXRsZV9jaGVja2VkX3ZhbHVlJykuJzwvdGg+PHRoPicuCiAgICAgICRtb2QtPkxhbmcoJ3RpdGxlX2RlZmF1bHRfc2V0JykuJzwvdGg+PHRoPicuCiAgICAgICRtb2QtPkxhbmcoJ3RpdGxlX2RlbGV0ZScpLgogICAgICAnPC90aD48L3RyPic7CgoKICAgIGZvciAoJGk9MDskaTwoJHRoaXMtPm9wdGlvbkNvdW50PjE/JHRoaXMtPm9wdGlvbkNvdW50OjEpOyRpKyspCiAgICAgIHsKCSRib3hlcyAuPSAnPHRyPjx0ZD4nLgoJICAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnb3B0X2J1dHRvbl9uYW1lW10nLCR0aGlzLT5HZXRPcHRpb25FbGVtZW50KCdidXR0b25fbmFtZScsJGkpLDI1LDEyOCkuCgkgICc8L3RkPjx0ZD4nLgoJICAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnb3B0X2J1dHRvbl9jaGVja2VkW10nLCR0aGlzLT5HZXRPcHRpb25FbGVtZW50KCdidXR0b25fY2hlY2tlZCcsJGkpLDI1LDEyOCkuCgkgICc8L3RkPjx0ZD4nLgoJICAkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRmb3JtRGVzY3JpcHRvciwgJ29wdF9idXR0b25faXNfc2V0W10nLCAkeWVzTm8sIC0xLCAkdGhpcy0+R2V0T3B0aW9uRWxlbWVudCgnYnV0dG9uX2lzX3NldCcsJGkpKS4KCSAgJzwvdGQ+PHRkPicuCgkgICRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnZGVsXycuJGksICRpLC0xKS4KCSAgJzwvdGQ+PC90cj4nOwogICAgICB9CiAgICAkYm94ZXMgLj0gJzwvdGFibGU+JzsKICAgICRtYWluID0gYXJyYXkoCgkJICBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9yYWRpb2dyb3VwX2RldGFpbHMnKSwkYm94ZXMpCgkJICApOwogICAgJGFkdiA9IGFycmF5KCk7CiAgICByZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7CiAgfQoKICBmdW5jdGlvbiBQb3N0UG9wdWxhdGVBZG1pbkZvcm0oJiRtYWluQXJyYXksICYkYWR2QXJyYXkpCiAgewogICAgJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAvLyByZW1vdmUgdGhlICJyZXF1aXJlZCIgZmllbGQsIHNpbmNlIHRoaXMgY2FuIG9ubHkgYmUgZG9uZSB2aWEgdmFsaWRhdGlvbgogICAgJHJlcUluZGV4ID0gLTE7CiAgICBmb3IgKCRpPTA7JGk8Y291bnQoJG1haW5BcnJheSk7JGkrKykKICAgICAgewoJaWYgKCRtYWluQXJyYXlbJGldLT50aXRsZSA9PSAkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9yZXF1aXJlZCcpKQoJICB7CgkgICAgJHJlcUluZGV4ID0gJGk7CgkgIH0KICAgICAgfQogICAgaWYgKCRyZXFJbmRleCAhPSAtMSkKICAgICAgewoJYXJyYXlfc3BsaWNlKCRtYWluQXJyYXksICRyZXFJbmRleCwxKTsKICAgICAgfQogIH0KCgogIGZ1bmN0aW9uIFBvc3RBZG1pblN1Ym1pdENsZWFudXAoKQogIHsKICAgICRuYW1lcyA9ICYkdGhpcy0+R2V0T3B0aW9uUmVmKCdidXR0b25fbmFtZScpOwogICAgJGNoZWNrZWQgPSAmJHRoaXMtPkdldE9wdGlvblJlZignYnV0dG9uX2NoZWNrZWQnKTsKICAgIGZvciAoJGk9MDskaTxjb3VudCgkbmFtZXMpOyRpKyspCiAgICAgIHsKCWlmICgkbmFtZXNbJGldID09ICcnICYmICRjaGVja2VkWyRpXSA9PSAnJyApCgkgIHsKCSAgICAkdGhpcy0+UmVtb3ZlT3B0aW9uRWxlbWVudCgnYnV0dG9uX25hbWUnLCAkaSk7CgkgICAgJHRoaXMtPlJlbW92ZU9wdGlvbkVsZW1lbnQoJ2J1dHRvbl9jaGVja2VkJywgJGkpOwoJICAgICR0aGlzLT5SZW1vdmVPcHRpb25FbGVtZW50KCdidXR0b25faXNfc2V0JywgJGkpOwoJICAgICRpLS07CgkgIH0KICAgICAgfQogICAgJHRoaXMtPmNvdW50Qm94ZXMoKTsKICB9Cn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/StatePickerField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLy8gRmVlZGJhY2sgRm9ybS4gMDIvMjAwNSBTakcgPGZlZWRiYWNrZm9ybV9jbXNtb2R1bGVAZm9nYm91bmQubmV0PgovLyBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCAoYykyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKLy8gVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKCmNsYXNzIGZiU3RhdGVQaWNrZXJGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCgl2YXIgJFN0YXRlczsKCQoJZnVuY3Rpb24gZmJTdGF0ZVBpY2tlckZpZWxkKCYkZm9ybV9wdHIsICYkcGFyYW1zKQoJewogICAgICAgICR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgICAgICRtb2QgPSAmJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gJ1N0YXRlUGlja2VyRmllbGQnOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoCiAgICAgICAgICAgICk7CgogICAgICAgICR0aGlzLT5TdGF0ZXMgPSBhcnJheSgKICAgICAgICAiTm8gRGVmYXVsdCI9PicnLCJBbGFiYW1hIj0+IkFMIiwgIkFsYXNrYSI9PiJBSyIsICJBcml6b25hIj0+IkFaIiwgIkFya2Fuc2FzIj0+IkFSIiwgCiAgICAgICAgIkNhbGlmb3JuaWEiPT4iQ0EiLCAiQ29sb3JhZG8iPT4iQ08iLCAiQ29ubmVjdGljdXQiPT4iQ1QiLCAiRGVsYXdhcmUiPT4iREUiLCAKICAgICAgICAiRmxvcmlkYSI9PiJGTCIsICJHZW9yZ2lhIj0+IkdBIiwgIkhhd2FpaSI9PiJISSIsICJJZGFobyI9PiJJRCIsIAogICAgICAgICJJbGxpbm9pcyI9PiJJTCIsICJJbmRpYW5hIj0+IklOIiwgIklvd2EiPT4iSUEiLCAKICAgICAgICAiS2Fuc2FzIj0+IktTIiwgIktlbnR1Y2t5Ij0+IktZIiwgIkxvdWlzaWFuYSI9PiJMQSIsICJNYWluZSI9PiJNRSIsCiAgICAgICAgIk1hcnlsYW5kIj0+Ik1EIiwgIk1hc3NhY2h1c2V0dHMiPT4iTUEiLCAKICAgICAgICAiTWljaGlnYW4iPT4iTUkiLCAiTWlubmVzb3RhIj0+Ik1OIiwgIk1pc3Npc3NpcHBpIj0+Ik1TIiwKICAgICAgICAiTWlzc291cmkiPT4iTU8iLCAiTW9udGFuYSI9PiJNVCIsICJOZWJyYXNrYSI9PiJORSIsIAogICAgICAgICJOZXZhZGEiPT4iTlYiLCAiTmV3IEhhbXBzaGlyZSI9PiJOSCIsICJOZXcgSmVyc2V5Ij0+Ik5KIiwKICAgICAgICAiTmV3IE1leGljbyI9PiJOTSIsICJOZXcgWW9yayI9PiJOWSIsIAogICAgICAgICJOb3J0aCBDYXJvbGluYSI9PiJOQyIsICJOb3J0aCBEYWtvdGEiPT4iTkQiLCAiT2hpbyI9PiJPSCIsCiAgICAgICAgIk9rbGFob21hIj0+Ik9LIiwgIk9yZWdvbiI9PiJPUiIsIAogICAgICAgICJQZW5uc3lsdmFuaWEiPT4iUEEiLCAiUmhvZGUgSXNsYW5kIj0+IlJJIiwgIlNvdXRoIENhcm9saW5hIj0+IlNDIiwKICAgICAgICAiU291dGggRGFrb3RhIj0+IlNEIiwgIlRlbm5lc3NlZSI9PiJUTiIsICJUZXhhcyI9PiJUWCIsICJVdGFoIj0+IlVUIiwKICAgICAgICAiVmVybW9udCI9PiJWVCIsICJWaXJnaW5pYSI9PiJWQSIsICJXYXNoaW5ndG9uIj0+IldBIiwKICAgICAgICAiRGlzdHJpY3Qgb2YgQ29sdW1iaWEiPT4iREMiLCAiV2VzdCBWaXJnaW5pYSI9PiJXViIsICJXaXNjb25zaW4iPT4iV0kiLAogICAgICAgICJXeW9taW5nIj0+IldZIik7CgoJfQoKCiAgICBmdW5jdGlvbiBTdGF0dXNJbmZvKCkKCXsKCQlyZXR1cm4gJyc7Cgl9CgoJZnVuY3Rpb24gR2V0SHVtYW5SZWFkYWJsZVZhbHVlKCkKCXsKCQlyZXR1cm4gYXJyYXlfc2VhcmNoKCR0aGlzLT5WYWx1ZSwkdGhpcy0+U3RhdGVzKTsKCX0KCgoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgoJCXVuc2V0KCR0aGlzLT5TdGF0ZXNbJG1vZC0+TGFuZygnbm9fZGVmYXVsdCcpXSk7CgkJaWYgKCR0aGlzLT5HZXRPcHRpb24oJ3NlbGVjdF9vbmUnLCcnKSAhPSAnJykKCQkJewoJCQkkdGhpcy0+U3RhdGVzID0gYXJyYXlfbWVyZ2UoYXJyYXkoJHRoaXMtPkdldE9wdGlvbignc2VsZWN0X29uZScsJycpPT4nJyksJHRoaXMtPlN0YXRlcyk7CgkJCX0KCQllbHNlCgkJCXsKCQkJJHRoaXMtPlN0YXRlcyA9IGFycmF5X21lcmdlKGFycmF5KCRtb2QtPkxhbmcoJ3NlbGVjdF9vbmUnKT0+JycpLCR0aGlzLT5TdGF0ZXMpOwoJCQl9CgoKCQlpZiAoISAkdGhpcy0+SGFzVmFsdWUoKSAmJiAkdGhpcy0+R2V0T3B0aW9uKCdkZWZhdWx0JywnJykgIT0gJycpCgkJICB7CgkJICAkdGhpcy0+U2V0VmFsdWUoJHRoaXMtPkdldE9wdGlvbignZGVmYXVsdCcsJycpKTsKCQkgIH0KCgkJcmV0dXJuICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnXycuJHRoaXMtPklkLCAkdGhpcy0+U3RhdGVzLCAtMSwgJHRoaXMtPlZhbHVlKTsKCX0KCglmdW5jdGlvbiBQcmVQb3B1bGF0ZUFkbWluRm9ybSgkZm9ybURlc2NyaXB0b3IpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJa3NvcnQoJHRoaXMtPlN0YXRlcyk7CgoJCSRtYWluID0gYXJyYXkoCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X3N0YXRlJyksCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkZm9ybURlc2NyaXB0b3IsICdvcHRfZGVmYXVsdCcsCiAgICAgICAgICAgIAkJJHRoaXMtPlN0YXRlcywgLTEsICR0aGlzLT5HZXRPcHRpb24oJ2RlZmF1bHQnLCcnKSkpLAoJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9zZWxlY3Rfb25lX21lc3NhZ2UnKSwKICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnb3B0X3NlbGVjdF9vbmUnLAogICAgICAgICAgICAJCSR0aGlzLT5HZXRPcHRpb24oJ3NlbGVjdF9vbmUnLCRtb2QtPkxhbmcoJ3NlbGVjdF9vbmUnKSkpKQoJCSk7CgkJcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sYXJyYXkoKSk7Cgl9CgoKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/StaticTextField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYlN0YXRpY1RleHRGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCglmdW5jdGlvbiBmYlN0YXRpY1RleHRGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJiRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkdGhpcy0+VHlwZSA9ICdTdGF0aWNUZXh0RmllbGQnOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+RGlzcGxheUluU3VibWlzc2lvbiA9IGZhbHNlOwoJCSR0aGlzLT5Ob25SZXF1aXJhYmxlRmllbGQgPSB0cnVlOwoJCSR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgKICAgICAgICAgICAgKTsKCgl9CgoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCgl7CgkJcmV0dXJuICc8L3RkPjwvdHI+PC90YWJsZT4nLiR0aGlzLT5HZXRPcHRpb24oJ3RleHQnLCcnKS4nPHRhYmxlIGNsYXNzPSJmb3JtYnVpbGRlcmZvcm0iPic7Cgl9CgoJZnVuY3Rpb24gU3RhdHVzSW5mbygpCgl7CgkJIHJldHVybiAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHItPkxhbmcoJ3RleHRfbGVuZ3RoJyxzdHJsZW4oJHRoaXMtPkdldE9wdGlvbigndGV4dCcsJycpKSk7Cgl9CgoJZnVuY3Rpb24gR2V0SHVtYW5SZWFkYWJsZVZhbHVlKCkKCXsKCQlyZXR1cm4gJ1tzdGF0aWMgdGV4dCBmaWVsZF0nOwoJfQoJCglmdW5jdGlvbiBQcmVQb3B1bGF0ZUFkbWluRm9ybSgkZm9ybURlc2NyaXB0b3IpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJG1haW4gPSBhcnJheSgKCQkJYXJyYXkoJG1vZC0+Q3JlYXRlVGV4dEFyZWEodHJ1ZSwgJGZvcm1EZXNjcmlwdG9yLCAgaHRtbF9lbnRpdHlfZGVjb2RlKCR0aGlzLT5HZXRPcHRpb24oJ3RleHQnLCcnKSksICdvcHRfdGV4dCcsJ3BhZ2VoZWFkdGFncycpLCcnKQoJCSk7CgkJJGFkdiA9IGFycmF5KAoJCSk7CgkJcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwoJfQoKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/SystemLinkField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYlN5c3RlbUxpbmtGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCglmdW5jdGlvbiBmYlN5c3RlbUxpbmtGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJiRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkdGhpcy0+VHlwZSA9ICAnU3lzdGVtTGlua0ZpZWxkJzsKCQkkdGhpcy0+RGlzcGxheUluRm9ybSA9IHRydWU7CgkJJHRoaXMtPk5vblJlcXVpcmFibGVGaWVsZCA9IHRydWU7CgkJJHRoaXMtPlJlcXVpcmVkID0gZmFsc2U7CgkJJHRoaXMtPlZhbGlkYXRpb25UeXBlcyA9IGFycmF5KAogICAgICAgICAgICAkbW9kLT5MYW5nKCd2YWxpZGF0aW9uX25vbmUnKT0+J25vbmUnCiAgICAgICAgICAgICk7CiAgICAgICAgJHRoaXMtPmhhc011bHRpcGxlRm9ybUNvbXBvbmVudHMgPSB0cnVlOwoJfQoKCWZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQoJewoJCSR0aGlzTGluayA9IG5ldyBzdGRDbGFzcygpOwoJCWdsb2JhbCAkZ0NtczsKCQlpZiAoJHRoaXMtPkdldE9wdGlvbignYXV0b19saW5rJywnMCcpID09ICcxJykKCQkJewoJCQkkcGFnZWluZm8gPSAkZ0Ntcy0+dmFyaWFibGVzWydwYWdlaW5mbyddOwoJCQkkdGhpc0xpbmstPmlucHV0ID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyLT5DcmVhdGVDb250ZW50TGluaygkcGFnZWluZm8tPmNvbnRlbnRfaWQsICRwYWdlaW5mby0+Y29udGVudF90aXRsZSk7CgkJCSR0aGlzTGluay0+bmFtZSA9ICRwYWdlaW5mby0+Y29udGVudF90aXRsZTsKCQkJJHRoaXNMaW5rLT50aXRsZSA9ICRwYWdlaW5mby0+Y29udGVudF90aXRsZTsKCQkJfQoJCWVsc2UKCQkJewoJCQkkY29udGVudG9wcyA9JiAkZ0Ntcy0+R2V0Q29udGVudE9wZXJhdGlvbnMoKTsKICAgIAkJJGNvYmogPSAkY29udGVudG9wcy0+TG9hZENvbnRlbnRGcm9tSWQoJHRoaXMtPkdldE9wdGlvbigndGFyZ2V0X3BhZ2UnLCcwJykpOwoJCQkkdGhpc0xpbmstPmlucHV0ID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyLT5DcmVhdGVDb250ZW50TGluaygkY29iai0+SWQoKSwgJGNvYmotPk5hbWUoKSk7CgkJCSR0aGlzTGluay0+bmFtZSA9ICRjb2JqLT5OYW1lKCk7CgkJCSR0aGlzTGluay0+dGl0bGUgPSAkY29iai0+TmFtZSgpOwoJCQl9CgkJcmV0dXJuIGFycmF5KCR0aGlzTGluayk7Cgl9CgoJZnVuY3Rpb24gR2V0SHVtYW5SZWFkYWJsZVZhbHVlKCkKCXsKCQlnbG9iYWwgJGdDbXM7CgkJaWYgKCR0aGlzLT5HZXRPcHRpb24oJ2F1dG9fbGluaycsJzAnKSA9PSAnMScpCgkJCXsKCQkJJHBhZ2VpbmZvID0gJGdDbXMtPnZhcmlhYmxlc1sncGFnZWluZm8nXTsKCQkJcmV0dXJuICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0ci0+Q3JlYXRlQ29udGVudExpbmsoJHBhZ2VpbmZvLT5jb250ZW50X2lkLCAkcGFnZWluZm8tPmNvbnRlbnRfdGl0bGUpOwoJCQl9CgkJZWxzZQoJCQl7CgkJCSRjb250ZW50b3BzID0mICRnQ21zLT5HZXRDb250ZW50T3BlcmF0aW9ucygpOwogICAgCQkkY29iaiA9ICRjb250ZW50b3BzLT5Mb2FkQ29udGVudEZyb21JZCgkdGhpcy0+R2V0T3B0aW9uKCd0YXJnZXRfcGFnZScsJzAnKSk7CgkJCXJldHVybiAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHItPkNyZWF0ZUNvbnRlbnRMaW5rKCRjb2JqLT5JZCgpLCAkY29iai0+TmFtZSgpKTsKCQkJfQoJfQoKCglmdW5jdGlvbiBQb3N0UG9wdWxhdGVBZG1pbkZvcm0oJiRtYWluQXJyYXksICYkYWR2QXJyYXkpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkvLyByZW1vdmUgdGhlICJyZXF1aXJlZCIgZmllbGQsIHNpbmNlIHRoaXMgY2FuIG9ubHkgYmUgZG9uZSB2aWEgdmFsaWRhdGlvbgoJCSRyZXFJbmRleCA9IC0xOwoJCWZvciAoJGk9MDskaTxjb3VudCgkbWFpbkFycmF5KTskaSsrKQoJCQl7CgkJCWlmICgkbWFpbkFycmF5WyRpXS0+dGl0bGUgPT0gJG1vZC0+TGFuZygndGl0bGVfZmllbGRfcmVxdWlyZWQnKSkKCQkJCXsKCQkJCSRyZXFJbmRleCA9ICRpOwoJCQkJfQoJCQl9CgkJaWYgKCRyZXFJbmRleCAhPSAtMSkKCQkJewoJCQlhcnJheV9zcGxpY2UoJG1haW5BcnJheSwgJHJlcUluZGV4LDEpOwoJCQl9Cgl9CgoKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgIAlnbG9iYWwgJGdDbXM7CiAgICAJJGNvbnRlbnRvcHMgPSYgJGdDbXMtPkdldENvbnRlbnRPcGVyYXRpb25zKCk7CgoJCSRtYWluID0gYXJyYXkoCgkJIAkJIGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2xpbmtfYXV0b3BvcHVsYXRlJyksJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdvcHRfYXV0b19saW5rJywKICAgICAgICAgICAgCQknMScsJHRoaXMtPkdldE9wdGlvbignYXV0b19saW5rJywnMCcpKS4kbW9kLT5MYW5nKCd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZV9oZWxwJykpLAogICAgICAgICAgICAgYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfbGlua190b19zaXRlcGFnZScpLAoJCQkJIAkkY29udGVudG9wcy0+Q3JlYXRlSGllcmFyY2h5RHJvcGRvd24oJycsJHRoaXMtPkdldE9wdGlvbigndGFyZ2V0X3BhZ2UnLCcnKSwgJGZvcm1EZXNjcmlwdG9yLidvcHRfdGFyZ2V0X3BhZ2UnKSkKCQkpOwoJCSRhZHYgPSBhcnJheSgKCQkpOwoJCXJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLCdhZHYnPT4kYWR2KTsKCX0KCglmdW5jdGlvbiBWYWxpZGF0ZSgpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHJlc3VsdCA9IHRydWU7CgkJJG1lc3NhZ2UgPSAnJzsKCgkJc3dpdGNoICgkdGhpcy0+VmFsaWRhdGlvblR5cGUpCgkJICB7CgkJICAJICAgY2FzZSAnbm9uZSc6CgkJICAJICAgICAgIGJyZWFrOwoJCSAgfQoJCXJldHVybiBhcnJheSgkcmVzdWx0LCAkbWVzc2FnZSk7Cgl9Cgp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/TextAreaField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlndGggKGMpMjAwNiBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiAgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKKi8KCmNsYXNzIGZiVGV4dEFyZWFGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCglmdW5jdGlvbiBmYlRleHRBcmVhRmllbGQoJiRmb3JtX3B0ciwgJiRwYXJhbXMpCgl7CiAgICAgICR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwoJCSRtb2QgPSAmJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gJ1RleHRBcmVhRmllbGQnOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25fbm9uZScpPT4nbm9uZScsCiAgICAgICAgICAgICk7CgoJfQoKCWZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQoJeyAgICAgICAgICAgIAoJICAgJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAgICByZXR1cm4gJG1vZC0+Q3JlYXRlVGV4dEFyZWEoJHRoaXMtPkdldE9wdGlvbignd3lzaXd5ZycsJzAnKSA9PSAnMSc/dHJ1ZTpmYWxzZSwKICAgICAgIAkJJGlkLCAkdGhpcy0+VmFsdWUsCiAgICAgICAJCSdfJy4kdGhpcy0+SWQpOyAgICAgICAgICAgIAoJfQoKCglmdW5jdGlvbiBTdGF0dXNJbmZvKCkKCXsKCQkkcmV0ID0gJyc7CgkJaWYgKHN0cmxlbigkdGhpcy0+VmFsaWRhdGlvblR5cGUpPjApCgkJICB7CgkJICAJJHJldCA9IGFycmF5X3NlYXJjaCgkdGhpcy0+VmFsaWRhdGlvblR5cGUsJHRoaXMtPlZhbGlkYXRpb25UeXBlcyk7CgkJICB9CgkJIGlmICgkdGhpcy0+R2V0T3B0aW9uKCd3eXNpd3lnJywnMCcpID09ICcxJykKCQkgCXsKCQkgCSRyZXQgLj0gJyB3eXNpd3lnJzsKCQkgCX0KCQkgZWxzZQoJCSAJewoJCSAJJHJldCAuPSAnIG5vbi13eXNpd3lnJzsKCQkgCX0KCQkgcmV0dXJuICRyZXQ7Cgl9CgoKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCSAgICRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCXJldHVybiBhcnJheSgKCQkJJ21haW4nPT4KCQkJCWFycmF5KGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3VzZV93eXNpd3lnJyksCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdvcHRfd3lzaXd5ZycsCiAgICAgICAgICAgIAkJJzEnLCR0aGlzLT5HZXRPcHRpb24oJ3d5c2l3eWcnLCcwJykpKSkKICAgICAgICAgCSk7Cgl9CgoKCWZ1bmN0aW9uIFZhbGlkYXRlKCkKCXsKCQkkcmVzdWx0ID0gdHJ1ZTsKCQkkbWVzc2FnZSA9ICcnOwoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCXN3aXRjaCAoJHRoaXMtPlZhbGlkYXRpb25UeXBlKQoJCSAgewoJCSAgCSAgIGNhc2UgJ25vbmUnOgoJCSAgCSAgICAgICBicmVhazsKCQkgIH0KCQlyZXR1cm4gYXJyYXkoJHJlc3VsdCwgJG1lc3NhZ2UpOwoJfQoKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/TextField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYlRleHRGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCglmdW5jdGlvbiBmYlRleHRGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJiRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkdGhpcy0+VHlwZSA9ICdUZXh0RmllbGQnOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25fbm9uZScpPT4nbm9uZScsCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25fbnVtZXJpYycpPT4nbnVtZXJpYycsCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25faW50ZWdlcicpPT4naW50ZWdlcicsCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25fZW1haWxfYWRkcmVzcycpPT4nZW1haWwnLAogICAgICAgICAgICAkbW9kLT5MYW5nKCd2YWxpZGF0aW9uX3JlZ2V4X21hdGNoJyk9PidyZWdleF9tYXRjaCcsCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25fcmVnZXhfbm9tYXRjaCcpPT4ncmVnZXhfbm9tYXRjaCcKICAgICAgICAgICAgKTsKCgl9CgoKCWZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQoJewoJICAkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCSAgcmV0dXJuICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdfJy4kdGhpcy0+SWQsCgkJCQkgICAgICAgJHRoaXMtPlZhbHVlLAogICAgICAgICAgICAkdGhpcy0+R2V0T3B0aW9uKCdsZW5ndGgnKTwyNT8kdGhpcy0+R2V0T3B0aW9uKCdsZW5ndGgnKToyNSwKICAgICAgICAgICAgJHRoaXMtPkdldE9wdGlvbignbGVuZ3RoJykpOwoJfQoKCWZ1bmN0aW9uIFN0YXR1c0luZm8oKQoJewoJICAkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCSAgJHJldCA9ICRtb2QtPkxhbmcoJ2FiYnJldmlhdGlvbl9sZW5ndGgnLCR0aGlzLT5HZXRPcHRpb24oJ2xlbmd0aCcsJzgwJykpOwoJCWlmIChzdHJsZW4oJHRoaXMtPlZhbGlkYXRpb25UeXBlKT4wKQoJCSAgewoJCSAgCSRyZXQgLj0gIiwgIi5hcnJheV9zZWFyY2goJHRoaXMtPlZhbGlkYXRpb25UeXBlLCR0aGlzLT5WYWxpZGF0aW9uVHlwZXMpOwoJCSAgfQoJCSByZXR1cm4gJHJldDsKCX0KCgoJZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRtYWluID0gYXJyYXkoCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX21heGltdW1fbGVuZ3RoJyksCgkJCSAgICAgICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsIAoJCQkJCQkgICAgJ29wdF9sZW5ndGgnLAoJCQkgICAgICAgICAkdGhpcy0+R2V0T3B0aW9uKCdsZW5ndGgnLCc4MCcpLDI1LDI1KSkKCQkpOwoJCSRhZHYgPSBhcnJheSgKCQkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZmllbGRfcmVnZXgnKSwKCQkJICAgICAgYXJyYXkoJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgCgkJCQkJCQkgICdvcHRfcmVnZXgnLAoJCQkJCQkJICAkdGhpcy0+R2V0T3B0aW9uKCdyZWdleCcpLDI1LDI1NSksJG1vZC0+TGFuZygndGl0bGVfcmVnZXhfaGVscCcpKSkJCgkJKTsKCQlyZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7Cgl9CgoKCWZ1bmN0aW9uIFZhbGlkYXRlKCkKCXsKCQkkcmVzdWx0ID0gdHJ1ZTsKCQkkbWVzc2FnZSA9ICcnOwoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCXN3aXRjaCAoJHRoaXMtPlZhbGlkYXRpb25UeXBlKQoJCSAgewoJCSAgCSAgIGNhc2UgJ25vbmUnOgoJCSAgCSAgICAgICBicmVhazsKCQkgIAkgICBjYXNlICdudW1lcmljJzoKICAgICAgICAgICAgICAgICAgaWYgKCR0aGlzLT5WYWx1ZSAhPT0gZmFsc2UgJiYKICAgICAgICAgICAgICAgICAgICAgICEgcHJlZ19tYXRjaCgiL14oW1xkXC5cLF0pKyQvaSIsICR0aGlzLT5WYWx1ZSkpCiAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAkcmVzdWx0ID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgICAkbWVzc2FnZSA9ICRtb2QtPkxhbmcoJ3BsZWFzZV9lbnRlcl9hX251bWJlcicsJHRoaXMtPk5hbWUpOwogICAgICAgICAgICAgICAgICAgICAgfQoJCSAgCSAgICAgICBicmVhazsKCQkgIAkgICBjYXNlICdpbnRlZ2VyJzoKICAgICAgICAgICAgICAgICAgaWYgKCR0aGlzLT5WYWx1ZSAhPT0gZmFsc2UgJiYKICAgICAgICAgICAgICAgICAgCSEgcHJlZ19tYXRjaCgiL14oW1xkXSkrJC9pIiwgJHRoaXMtPlZhbHVlKSB8fAogICAgICAgICAgICAgICAgICAgICAgaW50dmFsKCR0aGlzLT5WYWx1ZSkgIT0gJHRoaXMtPlZhbHVlKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAkcmVzdWx0ID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgJG1lc3NhZ2UgPSAkbW9kLT5MYW5nKCdwbGVhc2VfZW50ZXJfYW5faW50ZWdlcicsJHRoaXMtPk5hbWUpOwogICAgICAgICAgICAgICAgICAgIH0KCQkgIAkgICAgICAgYnJlYWs7CgkJICAJICAgY2FzZSAnZW1haWwnOgogICAgICAgICAgICAgICAgICBpZiAoJHRoaXMtPlZhbHVlICE9PSBmYWxzZSAmJgogICAgICAgICAgICAgICAgICAgICAgISBwcmVnX21hdGNoKCgkbW9kLT5HZXRQcmVmZXJlbmNlKCdyZWxheGVkX2VtYWlsX3JlZ2V4JywnMCcpPT0wPyRtb2QtPmVtYWlsX3JlZ2V4OiRtb2QtPmVtYWlsX3JlZ2V4X3JlbGF4ZWQpLCAkdGhpcy0+VmFsdWUpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAkcmVzdWx0ID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgJG1lc3NhZ2UgPSAkbW9kLT5MYW5nKCdwbGVhc2VfZW50ZXJfYW5fZW1haWwnLCR0aGlzLT5OYW1lKTsKICAgICAgICAgICAgICAgICAgICB9CgkJICAJICAgICAgIGJyZWFrOwoJCSAgCSAgIGNhc2UgJ3JlZ2V4X21hdGNoJzoKICAgICAgICAgICAgICAgICAgaWYgKCR0aGlzLT5WYWx1ZSAhPT0gZmFsc2UgJiYKICAgICAgICAgICAgICAgICAgICAgICEgcHJlZ19tYXRjaCgkdGhpcy0+R2V0T3B0aW9uKCdyZWdleCcsJy8uKi8nKSwgJHRoaXMtPlZhbHVlKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgJHJlc3VsdCA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgICRtZXNzYWdlID0gJG1vZC0+TGFuZygncGxlYXNlX2VudGVyX3ZhbGlkJywkdGhpcy0+TmFtZSk7CiAgICAgICAgICAgICAgICAgICAgfQoJCSAgCSAgIAkgICBicmVhazsKCQkgIAkgICBjYXNlICdyZWdleF9ub21hdGNoJzoKICAgICAgICAgICAgICAgICAgaWYgKCR0aGlzLT5WYWx1ZSAhPT0gZmFsc2UgJiYKICAgICAgICAgICAgICAgICAgICAgICBwcmVnX21hdGNoKCR0aGlzLT5HZXRPcHRpb24oJ3JlZ2V4JywnLy4qLycpLCAkdGhpcy0+VmFsdWUpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAkcmVzdWx0ID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgJG1lc3NhZ2UgPSAkbW9kLT5MYW5nKCdwbGVhc2VfZW50ZXJfdmFsaWQnLCR0aGlzLT5OYW1lKTsKICAgICAgICAgICAgICAgICAgICB9CgkJICAJICAgCSAgIGJyZWFrOwoJCSAgfQoJCWlmICgkdGhpcy0+R2V0T3B0aW9uKCdsZW5ndGgnLDApID4gMCAmJiBzdHJsZW4oJHRoaXMtPlZhbHVlKSA+ICR0aGlzLT5HZXRPcHRpb24oJ2xlbmd0aCcsMCkpCgkJCXsKCQkJJHJlc3VsdCA9IGZhbHNlOwoJCQkkbWVzc2FnZSA9ICRtb2QtPkxhbmcoJ3BsZWFzZV9lbnRlcl9ub19sb25nZXInLCR0aGlzLT5HZXRPcHRpb24oJ2xlbmd0aCcsMCkpOwoJCQl9CgkJcmV0dXJuIGFycmF5KCRyZXN1bHQsICRtZXNzYWdlKTsKCX0KfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/TimePickerField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYlRpbWVQaWNrZXJGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCgl2YXIgJGZsYWcxMmhvdXI7CgkKCWZ1bmN0aW9uIGZiVGltZVBpY2tlckZpZWxkKCYkZm9ybV9wdHIsICYkcGFyYW1zKQoJewogICAgICAgICR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgICAgICRtb2QgPSAmJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gJ1RpbWVQaWNrZXJGaWVsZCc7CgkJJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwoJCSR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgKICAgICAgICAgICAgJG1vZC0+TGFuZygndmFsaWRhdGlvbl9ub25lJyk9Pidub25lJywKICAgICAgICAgICAgKTsKICAgICAgJHRoaXMtPmZsYWcxMmhvdXIgPSBhcnJheSgKCQkgIAkkbW9kLT5MYW5nKCd0aXRsZV9iZWZvcmVfbm9vbicpPT4kbW9kLT5MYW5nKCd0aXRsZV9iZWZvcmVfbm9vbicpLAogICAgICAgIAkkbW9kLT5MYW5nKCd0aXRsZV9hZnRlcl9ub29uJyk9PiRtb2QtPkxhbmcoJ3RpdGxlX2FmdGVyX25vb24nKSk7Cgl9CgoKICAgIGZ1bmN0aW9uIFN0YXR1c0luZm8oKQoJewoJCXJldHVybiAnJzsKCX0KCgoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAgICAkbm93ID0gbG9jYWx0aW1lKHRpbWUoKSx0cnVlKTsKICAgICAgICRNaW5zID0gYXJyYXkoKTsKICAgICAgICRIb3VycyA9IGFycmF5KCk7CiAgICAgICBmb3IgKCRpPTA7JGk8NjA7JGkrKykKICAgICAgIAl7CgkJCSRtbyA9IHNwcmludGYoIiUwMmQiLCRpKTsKCQkJJE1pbnNbJG1vXT0kbW87CgkJCX0KICAgICAgIGlmICgkdGhpcy0+R2V0T3B0aW9uKCcyNF9ob3VyJywnMCcpID09ICcwJykKICAgICAgIAkJewogICAgICAgCQlmb3IgKCRpPTE7JGk8MTM7JGkrKykKICAgICAgIAkJewoJCQkJCSRtbyA9IHNwcmludGYoIiUwMmQiLCRpKTsKCQkJCQkkSG91cnNbJG1vXT0kbW87CgkJCQl9CgkJCWlmICgkdGhpcy0+SGFzVmFsdWUoKSkKCQkJCXsKCQkJCSRub3dbJ3RtX2hvdXInXSA9ICR0aGlzLT5HZXRBcnJheVZhbHVlKDApOwoJCQkJJG5vd1snbWVyaWQnXSA9ICR0aGlzLT5HZXRBcnJheVZhbHVlKDIpOwoJCQkJJG5vd1sndG1fbWluJ10gPSAkdGhpcy0+R2V0QXJyYXlWYWx1ZSgxKTsKCQkJCX0KCQkJZWxzZQoJCQkJewoJCQkJJG5vd1snbWVyaWQnXSA9ICRtb2QtPkxhbmcoJ3RpdGxlX2JlZm9yZV9ub29uJyk7CgkJCQlpZiAoJG5vd1sndG1faG91ciddID4gMTIpCgkJCQkJewoJCQkJCSRub3dbJ3RtX2hvdXInXSAtPSAxMjsKCQkJCQkkbm93WydtZXJpZCddID0gJG1vZC0+TGFuZygndGl0bGVfYWZ0ZXJfbm9vbicpOwoJCQkJCX0KCQkJCWVsc2VpZiAoJG5vd1sndG1faG91ciddID09IDApCgkJCQkJewoJCQkJCSRub3dbJ3RtX2hvdXInXSA9IDEyOwoJCQkJCX0KCQkJCX0KCiAgICAgICAJCXJldHVybiAkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ18nLiR0aGlzLT5JZC4nW10nLAogICAgICAgCQkJJEhvdXJzLCAtMSwgJG5vd1sndG1faG91ciddKSAuCiAgICAgICAJCQkJJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICdfJy4kdGhpcy0+SWQuJ1tdJywKICAgICAgIAkJCSRNaW5zLCAtMSwgJG5vd1sndG1fbWluJ10pIC4KICAgICAgIAkJCQkkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ18nLiR0aGlzLT5JZC4nW10nLAogICAgICAgCQkJJHRoaXMtPmZsYWcxMmhvdXIsIC0xLCAkbm93WydtZXJpZCddKTsKICAgICAgIAkJfQogICAgICAgZWxzZQogICAgICAgCQl7CiAgICAgICAJCWZvciAoJGk9MDskaTwyNDskaSsrKQogICAgICAgCQl7CgkJCQkJJG1vID0gc3ByaW50ZigiJTAyZCIsJGkpOwoJCQkJCSRIb3Vyc1skbW9dPSRtbzsKCQkJCX0KCgkJCWlmICgkdGhpcy0+SGFzVmFsdWUoKSkKCQkJCXsKCQkJCSRub3dbJ3RtX2hvdXInXSA9ICR0aGlzLT5HZXRBcnJheVZhbHVlKDApOwoJCQkJJG5vd1sndG1fbWluJ10gPSAkdGhpcy0+R2V0QXJyYXlWYWx1ZSgxKTsKCQkJCX0KICAgICAgIAkJcmV0dXJuICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnXycuJHRoaXMtPklkLidbXScsCiAgICAgICAJCQkkSG91cnMsIC0xLCAkbm93Wyd0bV9ob3VyJ10pIC4KICAgICAgIAkJCQkkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ18nLiR0aGlzLT5JZC4nW10nLAogICAgICAgCQkJJE1pbnMsIC0xLCAkbm93Wyd0bV9taW4nXSk7CiAgICAgICAJCX0KCgoJfQoKCWZ1bmN0aW9uIEdldEh1bWFuUmVhZGFibGVWYWx1ZSgpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJaWYgKCR0aGlzLT5IYXNWYWx1ZSgpKQoJCQl7CgkJCWlmICgkdGhpcy0+R2V0T3B0aW9uKCcyNF9ob3VyJywnMCcpID09ICcwJykKCQkJCXsKCQkJCXJldHVybiAkdGhpcy0+R2V0QXJyYXlWYWx1ZSgwKS4nOicuCgkJCQkJJHRoaXMtPkdldEFycmF5VmFsdWUoMSkuJyAnLgoJCQkJCSR0aGlzLT5HZXRBcnJheVZhbHVlKDIpOwoJCQkJfQoJCQllbHNlCgkJCQl7CgkJCQlyZXR1cm4gJHRoaXMtPkdldEFycmF5VmFsdWUoMCkuJzonLgoJCQkJCSR0aGlzLT5HZXRBcnJheVZhbHVlKDEpOwoJCQkJfQoJCQl9CgkJZWxzZQoJCQl7CgkJCXJldHVybiAkbW9kLT5MYW5nKCd1bnNwZWNpZmllZCcpOwoJCQl9CQoJfQoKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkbWFpbiA9IGFycmF5KAoJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV8yNF9ob3VyJyksCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdvcHRfMjRfaG91cicsCiAgICAgICAgICAgIAkJJzEnLCR0aGlzLT5HZXRPcHRpb24oJzI0X2hvdXInLCcwJykpKSk7CgkJcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sYXJyYXkoKSk7Cgl9Cgp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/FormBuilder.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZvcm1CdWlsZGVyCiMgVmVyc2lvbjogMC4yLjMsIHJlbGVhc2VkIDE0IE5vdiAyMDA2CiMKIyBDb3B5cmlnaHQgKGMpIDIwMDYsIFNhbXVlbCBHb2xkc3RlaW4gPHNqZ0BjbXNtb2R1bGVzLmNvbT4KIyBGb3IgSW5mb3JtYXRpb24sIFN1cHBvcnQsIEJ1ZyBSZXBvcnRzLCBldGMsIHBsZWFzZSB2aXNpdCB0aGUKIyBDTVMgTWFkZSBTaW1wbGUgRm9yZ2U6CiMgaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9mb3JtYnVpbGRlci8KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNiBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpjbGFzcyBGb3JtQnVpbGRlciBleHRlbmRzIENNU01vZHVsZQp7CgoJdmFyICRmaWVsZF90eXBlczsKCXZhciAkZGlzcF9maWVsZF90eXBlczsKCXZhciAkYWxsX3ZhbGlkYXRpb25fdHlwZXM7Cgl2YXIgJG1vZHVsZV9wdHI7Cgl2YXIgJG1vZHVsZV9pZDsKCXZhciAkZW1haWxfcmVnZXg7Cgl2YXIgJGVtYWlsX3JlZ2V4X3JlbGF4ZWQ7Cgl2YXIgJGRiSGFuZGxlOwoKCWZ1bmN0aW9uIEZvcm1CdWlsZGVyKCkKCXsKCQlnbG9iYWwgJGdDbXM7CgkJJHRoaXMtPkNNU01vZHVsZSgpOwoJCSR0aGlzLT5tb2R1bGVfcHRyID0gJiR0aGlzOwoJCSR0aGlzLT5kYkhhbmRsZSA9ICYkZ0Ntcy0+R2V0RGIoKTsKCQkkdGhpcy0+bW9kdWxlX2lkID0gJyc7CgkJJHRoaXMtPmVtYWlsX3JlZ2V4ID0gIi9eKFtcd1xkXC5cLVxfXSkrXEAoW1x3XGRcLlwtXF9dKylcLihcdyspJC9pIjsKCQkkdGhpcy0+ZW1haWxfcmVnZXhfcmVsYXhlZD0iL14oW1x3XGRcLlwtXF9dKStcQChbXHdcZFwuXC1cX10pKyQvaSI7CgkJcmVxdWlyZV9vbmNlIGRpcm5hbWUoX19GSUxFX18pLicvY2xhc3Nlcy9Gb3JtLmNsYXNzLnBocCc7CgkJcmVxdWlyZV9vbmNlIGRpcm5hbWUoX19GSUxFX18pLicvY2xhc3Nlcy9GaWVsZEJhc2UuY2xhc3MucGhwJzsKCQkvLyR0aGlzLT5SZWdpc3Rlck1vZHVsZVBsdWdpbigpOwoJfQoKCglmdW5jdGlvbiBpbml0aWFsaXplKCkKCXsKCQkkZGlyPW9wZW5kaXIoZGlybmFtZShfX0ZJTEVfXykuJy9jbGFzc2VzJyk7CiAgIAkJJHRoaXMtPmZpZWxkX3R5cGVzID0gYXJyYXkoKTsKICAgCQl3aGlsZSgkZmlsZXNwZWM9cmVhZGRpcigkZGlyKSkKICAgCQkJewogICAgICAgCQlpZihzdHJwb3MoJGZpbGVzcGVjLCdGaWVsZCcpID09PSBmYWxzZSAmJiBzdHJwb3MoJGZpbGVzcGVjLCdEaXNwb3NpdGlvbicpID09PSBmYWxzZSkKICAgICAgIAkJCXsKICAgICAgIAkJCWNvbnRpbnVlOwogICAgICAgCQkJfQogICAgICAgCQkkc2hvcnRuYW1lID0gc3Vic3RyKCRmaWxlc3BlYywwLHN0cnBvcygkZmlsZXNwZWMsJy4nKSk7CiAgICAgICAJCWlmIChzdWJzdHIoJHNob3J0bmFtZSwtNCkgPT0gJ0Jhc2UnKQogICAgICAgCQkJewogICAgICAgCQkJY29udGludWU7CiAgICAgICAJCQl9CiAgICAgICAJCSR0aGlzLT5maWVsZF90eXBlc1skdGhpcy0+TGFuZygnZmllbGRfdHlwZV8nLiRzaG9ydG5hbWUpXSA9ICRzaG9ydG5hbWU7CgkJCX0gICAgICAgIAoJCQogICAgICAgIGZvcmVhY2ggKCR0aGlzLT5maWVsZF90eXBlcyBhcyAkdE5hbWU9PiR0VHlwZSkKICAgICAgICAJewogICAgICAgIAlpZiAoc3Vic3RyKCR0VHlwZSwwLDExKSA9PSAnRGlzcG9zaXRpb24nKQogICAgICAgIAkJewogICAgICAgIAkJJHRoaXMtPmRpc3BfZmllbGRfdHlwZXNbJHROYW1lXT0kdFR5cGU7CiAgICAgICAgCQl9CiAgICAgICAgCX0KCQkkdGhpcy0+YWxsX3ZhbGlkYXRpb25fdHlwZXMgPSBhcnJheSgpOwoJCWtzb3J0KCR0aGlzLT5maWVsZF90eXBlcyk7Cgl9CgoKCWZ1bmN0aW9uIEFsbG93QXV0b0luc3RhbGwoKQoJewoJICByZXR1cm4gRkFMU0U7Cgl9CgoJZnVuY3Rpb24gQWxsb3dBdXRvVXBncmFkZSgpCgl7CgkgIHJldHVybiBGQUxTRTsKCX0KCglmdW5jdGlvbiBHZXROYW1lKCkKCXsKCQlyZXR1cm4gJ0Zvcm1CdWlsZGVyJzsKCX0KCQoJZnVuY3Rpb24gR2V0RnJpZW5kbHlOYW1lKCkKCXsKCQlyZXR1cm4gJHRoaXMtPkxhbmcoJ2ZyaWVuZGx5bmFtZScpOwoJfQoKCWZ1bmN0aW9uIEdldFZlcnNpb24oKQoJewoJCXJldHVybiAnMC4yLjQnOwoJfQoKCWZ1bmN0aW9uIEdldEF1dGhvcigpCgl7CgkJcmV0dXJuICdTakcnOwoJfQoKCWZ1bmN0aW9uIEdldEF1dGhvckVtYWlsKCkKCXsKCQlyZXR1cm4gJ3NqZ0BjbXNtb2R1bGVzLmNvbSc7Cgl9CgogICAgZnVuY3Rpb24gR2V0QWRtaW5EZXNjcmlwdGlvbigpCiAgICB7CgkJcmV0dXJuICR0aGlzLT5MYW5nKCdhZG1pbmRlc2MnKTsKICAgIH0KCglmdW5jdGlvbiBHZXRDaGFuZ2VMb2coKQoJewoJCXJldHVybiAkdGhpcy0+TGFuZygnY2hhbmdlbG9nJyk7Cgl9CgoJZnVuY3Rpb24gSXNQbHVnaW5Nb2R1bGUoKQoJewoJCXJldHVybiB0cnVlOwoJfQoKCWZ1bmN0aW9uIEhhc0FkbWluKCkKCXsKCQlyZXR1cm4gdHJ1ZTsKCX0KCiAgICBmdW5jdGlvbiBBZG1pblN0eWxlKCkKICAgIHsKICAgICAgcmV0dXJuICJcbi5tb2R1bGVfZmJfdGFibGUge2ZvbnQtc2l6ZTogMTBweDt9XG4ubW9kdWxlX2ZiX2FyZWFfd2lkZSB7d2lkdGg6IDUwMHB4O31cbi5tb2R1bGVfZmJfbGVnZW5ke2ZvbnQtc2l6ZTogOXB4OyBtYXJnaW46IDZweDsgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7fS5tb2R1bGVfZmJfYXJlYV9zaG9ydCB7d2lkdGg6IDUwMHB4OyBoZWlnaHQ6IDEwMHB4O31cbi5tb2R1bGVfZmJfbGluayB7dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7fVxuIjsKICAgIH0KCgogICAgZnVuY3Rpb24gRG9BY3Rpb24oJG5hbWUsJGlkLCRwYXJhbXMsJHJldHVybmlkPScnKQogICAgewogICAgICAkdGhpcy0+bW9kdWxlX2lkID0gJGlkOwogICAgICBwYXJlbnQ6OkRvQWN0aW9uKCRuYW1lLCRpZCwkcGFyYW1zLCRyZXR1cm5pZCk7CiAgICB9CgoJZnVuY3Rpb24gR2V0RGVwZW5kZW5jaWVzKCkKCXsKCQlyZXR1cm4gYXJyYXkoJ0NNU01haWxlcic9PicxLjczJyk7Cgl9CgoJLy8gbWF5IGJlIHRvbyBzdHJpbmdlbnQsIGJ1dCBiZXR0ZXIgc2FmZSB0aGFuIHNvcnJ5LgoJZnVuY3Rpb24gTWluaW11bUNNU1ZlcnNpb24oKQoJewoJCXJldHVybiAnMS4wLXN2bic7Cgl9CgoJZnVuY3Rpb24gSW5zdGFsbFBvc3RNZXNzYWdlKCkKCXsKCQlyZXR1cm4gJHRoaXMtPkxhbmcoJ3Bvc3RfaW5zdGFsbCcpOwoJfQoKCglmdW5jdGlvbiBDaGVja0FjY2VzcygkcGVybWlzc2lvbj0nTW9kaWZ5IEZvcm1zJykKCXsKCQkkYWNjZXNzID0gJHRoaXMtPkNoZWNrUGVybWlzc2lvbigkcGVybWlzc2lvbik7CgkJaWYgKCEkYWNjZXNzKSAgewoJCQllY2hvICI8cCBjbGFzcz1cImVycm9yXCI+Ii4kdGhpcy0+TGFuZygneW91X25lZWRfcGVybWlzc2lvbicsJHBlcm1pc3Npb24pLiI8L3A+IjsKCQkJcmV0dXJuIGZhbHNlOwoJCX0KCQllbHNlIHJldHVybiB0cnVlOwoJfQoKCS8qCglETyBOT1QgYWxsb3cgcGFyYW1ldGVycyB0byBiZSB1c2VkIGZvciBwYXNzaW5nIHRoZSBvcmRlcl9ieSEgSXQgaXMgbm90IGVzY2FwZWQgYmVmb3JlCglkYXRhYmFzZSBhY2Nlc3MuIElmIHdlIGxldCBBRE9EQiBxdW90ZSBpdCwgdGhlIFNRTCBpcyBub3QgdmFsaWQgKG5vdCB0aGF0IE15U1FMIGNhcmVzLAoJYnV0IFBvc3RncmVzIGRvZXMpLgoJKi8KCWZ1bmN0aW9uIEdldEZvcm1zKCRvcmRlcl9ieT0nbmFtZScpCgl7CiAgICAgICAgZ2xvYmFsICRnQ21zOwoJCSRkYiA9JiAkZ0Ntcy0+R2V0RGIoKTsKCQkkc3FsID0gIlNFTEVDVCAqIEZST00gIi5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9mb3JtIE9SREVSIEJZICcuJG9yZGVyX2J5OwoJICAgICRyZXN1bHQgPSBhcnJheSgpOwoJICAgICRycyA9ICRkYi0+RXhlY3V0ZSgkc3FsKTsKCSAgICBpZigkcnMgJiYgJHJzLT5SZWNvcmRDb3VudCgpID4gMCkKCSAgICAJewoJICAgICAgICAkcmVzdWx0ID0gJHJzLT5HZXRBcnJheSgpOwoJICAgIAl9CgkgICAgcmV0dXJuICRyZXN1bHQ7Cgl9CQoKICAgIGZ1bmN0aW9uIEdldEZvcm1JREZyb21BbGlhcygkZm9ybV9hbGlhcykKCXsKICAgICAgICBnbG9iYWwgJGdDbXM7CgkJJGRiID0mICRnQ21zLT5HZXREYigpOwoJCSRzcWwgPSAnU0VMRUNUIGZvcm1faWQgZnJvbSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zvcm0gV0hFUkUgYWxpYXMgPSA/JzsKCQkkcnMgPSAkZGItPkV4ZWN1dGUoJHNxbCwgYXJyYXkoJGZvcm1fYWxpYXMpKTsKCQlpZigkcnMgJiYgJHJzLT5SZWNvcmRDb3VudCgpID4gMCkKCQl7CgkJCSRyZXN1bHQgPSAkcnMtPkZldGNoUm93KCk7CgkJfQoJCXJldHVybiAkcmVzdWx0Wydmb3JtX2lkJ107Cgl9CgoJZnVuY3Rpb24gR2V0Rm9ybU5hbWVGcm9tSUQoJGZvcm1faWQpCgl7CiAgICAgICAgZ2xvYmFsICRnQ21zOwoJCSRkYiA9JiAkZ0Ntcy0+R2V0RGIoKTsKCQkkc3FsID0gJ1NFTEVDVCBuYW1lIGZyb20gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9mb3JtIFdIRVJFIGZvcm1faWQgPSA/JzsKCQkkcnMgPSAkZGItPkV4ZWN1dGUoJHNxbCwgYXJyYXkoJGZvcm1faWQpKTsKCQlpZigkcnMgJiYgJHJzLT5SZWNvcmRDb3VudCgpID4gMCkKCQl7CgkJCSRyZXN1bHQgPSAkcnMtPkZldGNoUm93KCk7CgkJfQoJCXJldHVybiAkcmVzdWx0WyduYW1lJ107Cgl9CgoJZnVuY3Rpb24gR2V0Rm9ybUJ5SUQoJGZvcm1faWQsICRsb2FkRGVlcD1mYWxzZSkKCXsKCQkJJHBhcmFtcyA9IGFycmF5KCdmb3JtX2lkJz0+JGZvcm1faWQpOwoJCSAgICAkZm9ybSA9IG5ldyBmYkZvcm0oJHRoaXMsICRwYXJhbXMsICRsb2FkRGVlcCk7CgkJICAgIHJldHVybiAkZm9ybTsKCX0KCglmdW5jdGlvbiBHZXRGb3JtQnlQYXJhbXMoJiRwYXJhbXMsICRsb2FkRGVlcD1mYWxzZSkKCXsKCQkgICAgJGZvcm0gPSBuZXcgZmJGb3JtKCR0aGlzLCAkcGFyYW1zLCAkbG9hZERlZXApOwoJCSAgICByZXR1cm4gJGZvcm07Cgl9CgoJCglmdW5jdGlvbiBHZXRIZWxwKCRsYW5nID0gJ2VuX1VTJykKCXsKCQlyZXR1cm4gJHRoaXMtPkxhbmcoJ2hlbHAnKTsKCX0KCgoJZnVuY3Rpb24gR2V0UmVzcG9uc2UoJGZvcm1faWQsJHJlc3BvbnNlX2lkLCRmaWVsZF9saXN0PWFycmF5KCksICRkYXRlRm10PSdkIEYgeScpCgl7CgkJJG5hbWVzID0gYXJyYXkoKTsKCQkkdmFsdWVzID0gYXJyYXkoKTsKCQlnbG9iYWwgJGdDbXM7CgkJJGRiID0mICRnQ21zLT5HZXREYigpOwoKICAgICAgIAkkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuCiAgICAgICAgCQkJJ21vZHVsZV9mYl9yZXNwIFdIRVJFIHJlc3BfaWQ9PycsIGFycmF5KCRyZXNwb25zZV9pZCkpOwoKCQkkb25lc2V0ID0gbmV3IHN0ZENsYXNzKCk7CgkJaWYgKCRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKQoJCQl7CQkJCgkJCSRvbmVzZXQtPmlkID0gJHJvd1sncmVzcF9pZCddOwoJCQkkb25lc2V0LT51c2VyX2FwcHJvdmVkID0gKGVtcHR5KCRyb3dbJ3VzZXJfYXBwcm92ZWQnXSk/Jyc6ZGF0ZSgkZGF0ZUZtdCwkZGItPlVuaXhUaW1lU3RhbXAoJHJvd1sndXNlcl9hcHByb3ZlZCddKSkpOyAKIAkJCSRvbmVzZXQtPmFkbWluX2FwcHJvdmVkID0gKGVtcHR5KCRyb3dbJ2FkbWluX2FwcHJvdmVkJ10pPycnOmRhdGUoJGRhdGVGbXQsJGRiLT5Vbml4VGltZVN0YW1wKCRyb3dbJ2FkbWluX2FwcHJvdmVkJ10pKSk7IAoJCQkkb25lc2V0LT5zdWJtaXR0ZWQgPSBkYXRlKCRkYXRlRm10LCRkYi0+VW5peFRpbWVTdGFtcCgkcm93WydzdWJtaXR0ZWQnXSkpOwoJCQkkb25lc2V0LT5maWVsZHMgPSBhcnJheSgpOwoJCQkkb25lc2V0LT5uYW1lcyA9IGFycmF5KCk7CgkJICAgIH0KCgkJJHBhcmFtU2V0ID0gYXJyYXkoJ2Zvcm1faWQnPT4kZm9ybV9pZCwgJ3Jlc3BvbnNlX2lkJz0+JHJlc3BvbnNlX2lkKTsKCQkkZm0gPSAkdGhpcy0+R2V0Rm9ybUJ5UGFyYW1zKCRwYXJhbVNldCwgdHJ1ZSk7CgkJJGZpZWxkcyA9ICYkZm0tPkdldEZpZWxkcygpOwoJCWZvcigkaj0wOyRqPGNvdW50KCRmaWVsZHMpOyRqKyspCgkJCXsKCQkJaWYgKCRmaWVsZHNbJGpdLT5EaXNwbGF5SW5TdWJtaXNzaW9uKCkpCgkJCQl7CgkJCQlpZiAoaXNzZXQoJGZpZWxkX2xpc3RbJGZpZWxkc1skal0tPkdldElkKCldKQoJCQkJCSYmICRmaWVsZF9saXN0WyRmaWVsZHNbJGpdLT5HZXRJZCgpXSA+IC0xKQoJCQkJCXsKCQkJCQkJJG9uZXNldC0+bmFtZXNbJGZpZWxkX2xpc3RbJGZpZWxkc1skal0tPkdldElkKCldXSA9ICRmaWVsZHNbJGpdLT5HZXROYW1lKCk7CiAgICAgICAgICAgICAgICAJJG9uZXNldC0+dmFsdWVzWyRmaWVsZF9saXN0WyRmaWVsZHNbJGpdLT5HZXRJZCgpXV0gPSAkZmllbGRzWyRqXS0+R2V0SHVtYW5SZWFkYWJsZVZhbHVlKCk7CiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIAl9CiAgICAgICAgCQoJCXJldHVybiAkb25lc2V0OwoJfQoKCWZ1bmN0aW9uIEdldFJlc3BvbnNlcygkZm9ybV9pZCwgJHN0YXJ0X3BvaW50LCAkbnVtYmVyLCAkYWRtaW5fYXBwcm92ZWQ9ZmFsc2UsICR1c2VyX2FwcHJvdmVkPWZhbHNlLCAkZmllbGRfbGlzdD1hcnJheSgpLCAkZGF0ZUZtdD0nZCBGIHknKQoJewoJCWdsb2JhbCAkZ0NtczsKCQkkZGIgPSYgJGdDbXMtPkdldERiKCk7CgkJJG5hbWVzID0gYXJyYXkoKTsKCQkkdmFsdWVzID0gYXJyYXkoKTsKCQkkc3FsID0gJ0ZST00gJy5jbXNfZGJfcHJlZml4KCkuCiAgICAgICAgCQkJJ21vZHVsZV9mYl9yZXNwIFdIRVJFIGZvcm1faWQ9Pyc7CiAgICAgICAgaWYgKCR1c2VyX2FwcHJvdmVkKQogICAgICAgIAl7CiAgICAgICAgCSAkc3FsIC49ICdhbmQgdXNlcl9hcHByb3ZlZCBpcyBub3QgbnVsbCc7CiAgICAgICAgCSB9CiAgICAgICAgaWYgKCRhZG1pbl9hcHByb3ZlZCkKICAgICAgICAJewogICAgICAgIAkkc3FsIC49ICcgYW5kIGFkbWluX2FwcHJvdmVkIGlzIG5vdCBudWxsJzsKICAgICAgICAJfQogICAgICAgIAogICAgICAgICRkYmNvdW50ID0gJGRiLT5FeGVjdXRlKCdTRUxFQ1QgQ09VTlQoKikgYXMgbnVtICcuJHNxbCxhcnJheSgkZm9ybV9pZCkpOwogICAKICAgICAgICAkcmVjb3JkcyA9IDA7CiAgICAgICAgaWYgKCRkYmNvdW50ICYmICRyb3cgPSAkZGJjb3VudC0+RmV0Y2hSb3coKSkKICAgICAgICAJeyAgIAogICAgICAgIAkkcmVjb3JkcyA9ICRyb3dbJ251bSddOwogICAgICAgIAl9CiAgICAgICAJJGRicmVzdWx0ID0gJGRiLT5TZWxlY3RMaW1pdCgnU0VMRUNUICogJy4kc3FsLCAkbnVtYmVyLCAkc3RhcnRfcG9pbnQsIGFycmF5KCRmb3JtX2lkKSk7CgoJCXdoaWxlICgkZGJyZXN1bHQgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSkKCQkJewoJCQkkb25lc2V0ID0gbmV3IHN0ZENsYXNzKCk7CgkJCSRvbmVzZXQtPmlkID0gJHJvd1sncmVzcF9pZCddOwoJCQkkb25lc2V0LT51c2VyX2FwcHJvdmVkID0gKGVtcHR5KCRyb3dbJ3VzZXJfYXBwcm92ZWQnXSk/Jyc6ZGF0ZSgkZGF0ZUZtdCwkZGItPlVuaXhUaW1lU3RhbXAoJHJvd1sndXNlcl9hcHByb3ZlZCddKSkpOyAKIAkJCSRvbmVzZXQtPmFkbWluX2FwcHJvdmVkID0gKGVtcHR5KCRyb3dbJ2FkbWluX2FwcHJvdmVkJ10pPycnOmRhdGUoJGRhdGVGbXQsJGRiLT5Vbml4VGltZVN0YW1wKCRyb3dbJ2FkbWluX2FwcHJvdmVkJ10pKSk7IAoJCQkkb25lc2V0LT5zdWJtaXR0ZWQgPSBkYXRlKCRkYXRlRm10LCRkYi0+VW5peFRpbWVTdGFtcCgkcm93WydzdWJtaXR0ZWQnXSkpOwoJCQkkb25lc2V0LT5maWVsZHMgPSBhcnJheSgpOwoJCSAgICBhcnJheV9wdXNoKCR2YWx1ZXMsJG9uZXNldCk7CgkJICAgIH0KCQkkcG9wdWxhdGVfbmFtZXMgPSB0cnVlOwoJCSRmbSA9IC0xOwoJCWZvcigkaT0wOyRpPGNvdW50KCR2YWx1ZXMpOyRpKyspCgkJCXsKCQkJJHBhcmFtU2V0ID0gYXJyYXkoJ2Zvcm1faWQnPT4kZm9ybV9pZCwgJ3Jlc3BvbnNlX2lkJz0+JHZhbHVlc1skaV0tPmlkKTsKCQkJaWYgKGdldHR5cGUoJGZtKSA9PSAiaW50ZWdlciIpIC8vIGZpeCB0aGlzLCBmb3IgYmV0dGVyIGVmZmljaWVuY3khCgkJCQl7CgkJCQkkZm0gPSAkdGhpcy0+R2V0Rm9ybUJ5UGFyYW1zKCRwYXJhbVNldCwgdHJ1ZSk7CgkJCQl9CgkJCWVsc2UKCQkJCXsKCQkJCSRmbS0+TG9hZFJlc3BvbnNlKCR2YWx1ZXNbJGldLT5pZCk7CgkJCQl9CgkJCSRmaWVsZHMgPSAmJGZtLT5HZXRGaWVsZHMoKTsKCQkJZm9yKCRqPTA7JGo8Y291bnQoJGZpZWxkcyk7JGorKykKCQkJCXsKCQkJCWlmICgkZmllbGRzWyRqXS0+RGlzcGxheUluU3VibWlzc2lvbigpKQoJCQkJCXsKCQkJCQlpZiAoaXNzZXQoJGZpZWxkX2xpc3RbJGZpZWxkc1skal0tPkdldElkKCldKQoJCQkJCQkmJiAkZmllbGRfbGlzdFskZmllbGRzWyRqXS0+R2V0SWQoKV0gPiAtMSkKCQkJCQkJewoJCQkJCQlpZiAoJHBvcHVsYXRlX25hbWVzKQoJCQkJCQkJewoJCQkJCQkJJG5hbWVzWyRmaWVsZF9saXN0WyRmaWVsZHNbJGpdLT5HZXRJZCgpXV0gPSAkZmllbGRzWyRqXS0+R2V0TmFtZSgpOwoJCQkJCQkJfQogICAgICAgICAgICAgICAgCQkkdmFsdWVzWyRpXS0+ZmllbGRzWyRmaWVsZF9saXN0WyRmaWVsZHNbJGpdLT5HZXRJZCgpXV0gPSAkZmllbGRzWyRqXS0+R2V0SHVtYW5SZWFkYWJsZVZhbHVlKCk7CiAgICAgICAgICAgICAgICAJCX0KICAgICAgICAgICAgICAgIAl9CiAgICAgICAgCQl9CiAgICAgICAgCSRwb3B1bGF0ZV9uYW1lcyA9IGZhbHNlOwoJCQl9CgkJcmV0dXJuIGFycmF5KCRyZWNvcmRzLCAkbmFtZXMsICR2YWx1ZXMpOwoJfQoKCglmdW5jdGlvbiBHZXRTb3J0ZWRSZXNwb25zZXMoJGZvcm1faWQsICRzdGFydF9wb2ludCwgJG51bWJlciwgJGFkbWluX2FwcHJvdmVkPWZhbHNlLCAkdXNlcl9hcHByb3ZlZD1mYWxzZSwgJGZpZWxkX2xpc3Q9YXJyYXkoKSwgJGRhdGVGbXQ9J2QgRiB5JywgJiRwYXJhbXMpCgl7CgkJZ2xvYmFsICRnQ21zOwoJCSRkYiA9JiAkZ0Ntcy0+R2V0RGIoKTsKCQkkbmFtZXMgPSBhcnJheSgpOwoJCSR2YWx1ZXMgPSBhcnJheSgpOwoJCSRzcWwgPSAnRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4KICAgICAgICAJCQknbW9kdWxlX2ZiX3Jlc3AgV0hFUkUgZm9ybV9pZD0/JzsKICAgICAgICBpZiAoJHVzZXJfYXBwcm92ZWQpCiAgICAgICAgCXsKICAgICAgICAJICRzcWwgLj0gJ2FuZCB1c2VyX2FwcHJvdmVkIGlzIG5vdCBudWxsJzsKICAgICAgICAJIH0KICAgICAgICBpZiAoJGFkbWluX2FwcHJvdmVkKQogICAgICAgIAl7CiAgICAgICAgCSRzcWwgLj0gJyBhbmQgYWRtaW5fYXBwcm92ZWQgaXMgbm90IG51bGwnOwogICAgICAgIAl9CiAgICAgICAgCiAgICAgICAgJGRiY291bnQgPSAkZGItPkV4ZWN1dGUoJ1NFTEVDVCBDT1VOVCgqKSBhcyBudW0gJy4kc3FsLGFycmF5KCRmb3JtX2lkKSk7CiAgIAogICAgICAgICRyZWNvcmRzID0gMDsKICAgICAgICBpZiAoJGRiY291bnQgJiYgJHJvdyA9ICRkYmNvdW50LT5GZXRjaFJvdygpKQogICAgICAgIAl7ICAgCiAgICAgICAgCSRyZWNvcmRzID0gJHJvd1snbnVtJ107CiAgICAgICAgCX0KICAgICAgIAkkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJ1NFTEVDVCAqICcuJHNxbCwgYXJyYXkoJGZvcm1faWQpKTsKCgkJd2hpbGUgKCRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKQoJCQl7CgkJCSRvbmVzZXQgPSBuZXcgc3RkQ2xhc3MoKTsKCQkJJG9uZXNldC0+aWQgPSAkcm93WydyZXNwX2lkJ107CgkJCSRvbmVzZXQtPnVzZXJfYXBwcm92ZWQgPSAoZW1wdHkoJHJvd1sndXNlcl9hcHByb3ZlZCddKT8nJzpkYXRlKCRkYXRlRm10LCRkYi0+VW5peFRpbWVTdGFtcCgkcm93Wyd1c2VyX2FwcHJvdmVkJ10pKSk7IAogCQkJJG9uZXNldC0+YWRtaW5fYXBwcm92ZWQgPSAoZW1wdHkoJHJvd1snYWRtaW5fYXBwcm92ZWQnXSk/Jyc6ZGF0ZSgkZGF0ZUZtdCwkZGItPlVuaXhUaW1lU3RhbXAoJHJvd1snYWRtaW5fYXBwcm92ZWQnXSkpKTsgCgkJCSRvbmVzZXQtPnN1Ym1pdHRlZCA9IGRhdGUoJGRhdGVGbXQsJGRiLT5Vbml4VGltZVN0YW1wKCRyb3dbJ3N1Ym1pdHRlZCddKSk7CgkJCSRvbmVzZXQtPmZpZWxkcyA9IGFycmF5KCk7CgkJICAgIGFycmF5X3B1c2goJHZhbHVlcywkb25lc2V0KTsKCQkgICAgfQoJCSRwb3B1bGF0ZV9uYW1lcyA9IHRydWU7CgkJJGZtID0gLTE7CgkJZm9yKCRpPTA7JGk8Y291bnQoJHZhbHVlcyk7JGkrKykKCQkJewoJCQkkcGFyYW1TZXQgPSBhcnJheSgnZm9ybV9pZCc9PiRmb3JtX2lkLCAncmVzcG9uc2VfaWQnPT4kdmFsdWVzWyRpXS0+aWQpOwoJCQlpZiAoZ2V0dHlwZSgkZm0pID09ICJpbnRlZ2VyIikgLy8gZml4IHRoaXMsIGZvciBiZXR0ZXIgZWZmaWNpZW5jeSEKCQkJCXsKCQkJCSRmbSA9ICR0aGlzLT5HZXRGb3JtQnlQYXJhbXMoJHBhcmFtU2V0LCB0cnVlKTsKCQkJCX0KCQkJZWxzZQoJCQkJewoJCQkJJGZtLT5Mb2FkUmVzcG9uc2UoJHZhbHVlc1skaV0tPmlkKTsKCQkJCX0KCQkJJGZpZWxkcyA9ICYkZm0tPkdldEZpZWxkcygpOwoJCQlmb3IoJGo9MDskajxjb3VudCgkZmllbGRzKTskaisrKQoJCQkJewoJCQkJaWYgKCRmaWVsZHNbJGpdLT5EaXNwbGF5SW5TdWJtaXNzaW9uKCkpCgkJCQkJewoJCQkJCWlmIChpc3NldCgkZmllbGRfbGlzdFskZmllbGRzWyRqXS0+R2V0SWQoKV0pCgkJCQkJCSYmICRmaWVsZF9saXN0WyRmaWVsZHNbJGpdLT5HZXRJZCgpXSA+IC0xKQoJCQkJCQl7CgkJCQkJCWlmICgkcG9wdWxhdGVfbmFtZXMpCgkJCQkJCQl7CgkJCQkJCQkkbmFtZXNbJGZpZWxkX2xpc3RbJGZpZWxkc1skal0tPkdldElkKCldXSA9ICRmaWVsZHNbJGpdLT5HZXROYW1lKCk7CgkJCQkJCQl9CiAgICAgICAgICAgICAgICAJCSR2YWx1ZXNbJGldLT5maWVsZHNbJGZpZWxkX2xpc3RbJGZpZWxkc1skal0tPkdldElkKCldXSA9ICRmaWVsZHNbJGpdLT5HZXRIdW1hblJlYWRhYmxlVmFsdWUoKTsKICAgICAgICAgICAgICAgIAkJfQogICAgICAgICAgICAgICAgCX0KICAgICAgICAJCX0KICAgICAgICAJJHBvcHVsYXRlX25hbWVzID0gZmFsc2U7CgkJCX0KCQkJCgkJaWYgKGlzc2V0KCRwYXJhbXNbJ3NvcnRfZmllbGQnXSkpCgkJCXsKCQkJJHNmID0gLTE7CgkJCWZvcigkaj0wOyRqPGNvdW50KCRmaWVsZHMpOyRqKyspCgkJCQl7CgkJCQlpZiAoIXN0cmNhc2VjbXAoJGZpZWxkc1skal0tPkdldE5hbWUoKSwkcGFyYW1zWydzb3J0X2ZpZWxkJ10pKQoJCQkJCXsKCQkJCQkkc2YgPSAkZmllbGRfbGlzdFskZmllbGRzWyRqXS0+R2V0SWQoKV07CgkJCQkJfQoJCQkJfQoJCQkvLyBrbHVkZ2UsIGJlY2F1c2Ugc29ydCBpbnN0YW50aWF0aW9uIGJyZWFrcyB1bmRlciBQSFAgNCwgYW5kIEkgY2FuJ3QgcGFzcyBleHRyYSBwYXJhbXMgdG8gdGhlIHNvcnQKCQkJZm9yKCRqPTA7JGo8Y291bnQoJHZhbHVlcyk7JGorKykKCQkJCXsKCQkJCSR2YWx1ZXNbJGpdLT5zZiA9ICRzZjsKCQkJCX0KCgkJCWlmIChpc3NldCgkcGFyYW1zWydzb3J0X2RpciddKSAmJiAkcGFyYW1zWydzb3J0X2RpciddID09ICdhJykKCQkJCXsKCQkJCXVzb3J0KCR2YWx1ZXMsIGFycmF5KCJGb3JtQnVpbGRlciIsImZpZWxkX3NvcnRlcl9hc2MiKSk7CgkJCQl9CgkJCWVsc2UKCQkJCXsKCQkJCXVzb3J0KCR2YWx1ZXMsIGFycmF5KCJGb3JtQnVpbGRlciIsImZpZWxkX3NvcnRlcl9kZXNjIikpOwoJCQkJfQoJCQl9CgkJaWYgKCRyZWNvcmRzID4gJG51bWJlcikKCQkJewoJCQkkdmFsdWVzID0gYXJyYXlfc2xpY2UoICR2YWx1ZXMsICRzdGFydF9wb2ludCwgJG51bWJlcik7CgkJCS8vJHJlY29yZHMgPSAkbnVtYmVyOwoJCQl9CgkJcmV0dXJuIGFycmF5KCRyZWNvcmRzLCAkbmFtZXMsICR2YWx1ZXMpOwoJfQoKCglmdW5jdGlvbiBmaWVsZF9zb3J0ZXJfYXNjKCRhLCAkYikKCXsKICAgIAlyZXR1cm4gc3RyY2FzZWNtcCgkYS0+ZmllbGRzWyRhLT5zZl0sICRiLT5maWVsZHNbJGEtPnNmXSk7Cgl9CgoJZnVuY3Rpb24gZmllbGRfc29ydGVyX2Rlc2MoJGEsICRiKQoJewogICAgCXJldHVybiBzdHJjYXNlY21wKCRiLT5maWVsZHNbJHRoaXMtPnNvcnRGaWVsZF0sICRhLT5maWVsZHNbJHRoaXMtPnNvcnRGaWVsZF0pOwoJfQoKCQovKgkKCWZ1bmN0aW9uIEhhbmRsZVN1Ym1pc3Npb24oJiRwYXJhbXMsICR0YXJnZXRwYWdlLCAkc2lkZT0ndXNlcicsICRoaWRlRXJyb3I9dHJ1ZSkKCXsKICAgICAgICBpZiAoISBpc3NldCgkcGFyYW1zWydmb3JtX2lkJ10pICYmIGlzc2V0KCRwYXJhbXNbJ2Zvcm0nXSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgLy8gZ2V0IHRoZSBmb3JtIGJ5IG5hbWUsIG5vdCBJRAogICAgICAgICAgICAkcGFyYW1zWydmb3JtX2lkJ10gPSAkdGhpcy0+R2V0Rm9ybUlERnJvbUFsaWFzKCRwYXJhbXNbJ2Zvcm0nXSk7CiAgICAgICAgICAgIH0KICAgICAgICAkYWVmb3JtID0gbmV3IGZiRm9ybSgkdGhpcywkcGFyYW1zLHRydWUpOwoKICAgICAgICBlY2hvICRhZWZvcm0tPlJlbmRlckZvcm1IZWFkZXIoKTsKICAgICAgICAkZmluaXNoZWQgPSBmYWxzZTsKICAgICAgICBpZiAoKCRhZWZvcm0tPkdldFBhZ2VDb3VudCgpID4gMSAmJiAkYWVmb3JtLT5HZXRQYWdlTnVtYmVyKCkgPiAwKSB8fAogICAgICAgIAkoaXNzZXQoJHBhcmFtc1snZG9uZSddKSYmICRwYXJhbXNbJ2RvbmUnXT09MSkpCiAgICAgICAgICAgIHsKICAgICAgICAJJHJlcyA9ICRhZWZvcm0tPlZhbGlkYXRlKCk7CgogICAgICAgICAgICBpZiAoJHJlc1swXSA9PT0gZmFsc2UpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBlY2hvICRyZXNbMV0uIlxuIjsKICAgICAgICAgICAgICAgICRhZWZvcm0tPlBhZ2VCYWNrKCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgaWYgKGlzc2V0KCRwYXJhbXNbJ2RvbmUnXSkgJiYgJHBhcmFtc1snZG9uZSddPT0xKQogICAgICAgICAgICAJewogICAgICAgICAgICAJJGZpbmlzaGVkID0gdHJ1ZTsKICAgICAgICAgICAgCSRyZXN1bHRzID0gJGFlZm9ybS0+RGlzcG9zZSgkcmV0dXJuaWQpOwogICAgICAgICAgICAJfQogICAgICAgICAgICB9CgoJCWlmICghICRmaW5pc2hlZCkKCQkJewoJCQkkcGFybXMgPSBhcnJheSgpOwogICAgCQkkcGFybXNbJ2Zvcm1fbmFtZSddID0gJGFlZm9ybS0+R2V0TmFtZSgpOwogICAgCQkkcGFybXNbJ2Zvcm1faWQnXSA9ICRhZWZvcm0tPkdldElkKCk7CiAgICAJCSR0aGlzLT5TZW5kRXZlbnQoJ09uRm9ybUJ1aWxkZXJGb3JtRGlzcGxheScsJHBhcm1zKTsKCiAgICAgICAgCWVjaG8gJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsICdkZWZhdWx0JywgJHJldHVybmlkLCAncG9zdCcsICdtdWx0aXBhcnQvZm9ybS1kYXRhJyk7CiAgICAgICAgCWVjaG8gJGFlZm9ybS0+UmVuZGVyRm9ybSgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCk7CiAgICAgICAgCWVjaG8gJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKTsKICAgICAgICAJfQogICAgICAgIGVsc2UKICAgICAgICAJewogICAgICAgIAlpZiAoJHJlc3VsdHNbMF0gPT0gdHJ1ZSkKICAgICAgICAJCXsKCQkJCSRwYXJtcyA9IGFycmF5KCk7CiAgICAJCQkkcGFybXNbJ2Zvcm1fbmFtZSddID0gJGFlZm9ybS0+R2V0TmFtZSgpOwogICAgCQkJJHBhcm1zWydmb3JtX2lkJ10gPSAkYWVmb3JtLT5HZXRJZCgpOwogICAgCQkJJHRoaXMtPlNlbmRFdmVudCgnT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnLCRwYXJtcyk7CgogICAgICAgIAkJJHJldCA9ICRhZWZvcm0tPkdldEF0dHIoJ3JlZGlyZWN0X3BhZ2UnLCctMScpOwogICAgICAgIAkJaWYgKCRyZXQgIT0gLTEpCiAgICAgICAgCQkJewogICAgICAgIAkJCSR0aGlzLT5SZWRpcmVjdENvbnRlbnQoJHJldCk7CiAgICAgICAgCQkJfQogICAgICAgIAkJfQogICAgICAgIAllbHNlCiAgICAgICAgCQl7CgkJCQkkcGFybXMgPSBhcnJheSgpOwoJCQkJJHBhcmFtc1snZXJyb3InXT0nJzsKICAgICAgICAJCWVjaG8gJHRoaXMtPkxhbmcoJ3N1Ym1pc3Npb25fZXJyb3InKTsKICAgICAgICAJCSRzaG93ID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2hpZGVfZXJyb3JzJywwKTsKICAgICAgICAJCWZvcmVhY2ggKCRyZXN1bHRzWzFdIGFzICR0aGlzUmVzKQogICAgICAgIAkJCXsKCQkJCQlpZiAoJHNob3cpCgkJCQkJCXsKICAgICAgICAJCQkJZWNobyAkdGhpc1JlcyAuICc8YnIgLz4nOwogICAgICAJCQkJfQogICAgICAgIAkJCSRwYXJhbXNbJ2Vycm9yJ10gLj0gJHRoaXNSZXMuIlxuIjsKICAgICAgICAJCQl9CiAgICAJCQkkcGFybXNbJ2Zvcm1fbmFtZSddID0gJGFlZm9ybS0+R2V0TmFtZSgpOwogICAgCQkJJHBhcm1zWydmb3JtX2lkJ10gPSAkYWVmb3JtLT5HZXRJZCgpOwogICAgCQkJJHRoaXMtPlNlbmRFdmVudCgnT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvcicsJHBhcm1zKTsKICAgICAgICAJCX0KICAgICAgICAJfQogICAgICAgIGVjaG8gJGFlZm9ybS0+UmVuZGVyRm9ybUZvb3RlcigpOwoKCgoJfQoqLwoKCgkvLyBGb3IgYSBnaXZlbiBmb3JtLCByZXR1cm5zIGFuIGFycmF5IG9mIHJlc3BvbnNlIG9iamVjdHMKCWZ1bmN0aW9uIExpc3RSZXNwb25zZXMoJGZvcm1faWQsICRzb3J0X29yZGVyPSdzdWJtaXR0ZWQnKQoJewoJCWdsb2JhbCAkZ0NtczsKCQkkZGIgPSYgJGdDbXMtPkdldERiKCk7CgkJJHJldCA9IGFycmF5KCk7CgkJJHNxbCA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLgogICAgICAgIAkJCSdtb2R1bGVfZmJfcmVzcCBXSEVSRSBmb3JtX2lkPT8gT1JERVIgQlkgPyc7CiAgICAgICAJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGZvcm1faWQsJHNvcnRfb3JkZXIpKTsKCQl3aGlsZSAoJGRicmVzdWx0ICYmICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpCgkJCXsKCQkJJG9uZXNldCA9IG5ldyBzdGRDbGFzcygpOwoJCQkkb25lc2V0LT5pZCA9ICRyZXN1bHRbJ3Jlc3BfaWQnXTsKCQkJJG9uZXNldC0+dXNlcl9hcHByb3ZlZCA9ICRkYi0+VW5peFRpbWVTdGFtcCgkcmVzdWx0Wyd1c2VyX2FwcHJvdmVkJ10pOyAKIAkJCSRvbmVzZXQtPmFkbWluX2FwcHJvdmVkID0gJGRiLT5Vbml4VGltZVN0YW1wKCRyZXN1bHRbJ2FkbWluX2FwcHJvdmVkJ10pOyAKCQkJJG9uZXNldC0+c3VibWl0dGVkID0gJGRiLT5Vbml4VGltZVN0YW1wKCRyZXN1bHRbJ3N1Ym1pdHRlZCddKTsgCgkJICAgIGFycmF5X3B1c2goJHJldCwkb25lc2V0KTsKCQkgICAgfQoJCXJldHVybiAkcmV0OwoJfQoKICAgIGZ1bmN0aW9uIGRlZigmJHZhcikKICAgIHsKICAgIAlpZiAoIWlzc2V0KCR2YXIpKQogICAgCSAgIHsKICAgIAkgICAJcmV0dXJuIGZhbHNlOwogICAgCSAgIH0KICAgIAllbHNlIGlmIChpc19udWxsKCR2YXIpKQogICAgCSAgIHsKICAgIAkgICAJcmV0dXJuIGZhbHNlOwogICAgCSAgIH0KICAgIAllbHNlIGlmICghaXNfYXJyYXkoJHZhcikgJiYgZW1wdHkoJHZhcikpCiAgICAJICAgewogICAgCSAgIAlyZXR1cm4gZmFsc2U7CiAgICAJICAgfQogICAgCWVsc2UgaWYgKGlzX2FycmF5KCR2YXIpICYmIGNvdW50KCR2YXIpID09IDApCiAgICAJICAgewogICAgCSAgIAlyZXR1cm4gZmFsc2U7CiAgICAJICAgfQogICAgCXJldHVybiB0cnVlOwogICAgfQoKICAgIGZ1bmN0aW9uIENsZWFyRmlsZUxvY2soKQogICAgewoJCWdsb2JhbCAkZ0NtczsKCQkkZGIgPSYgJGdDbXMtPkdldERiKCk7CgkJJHNxbCA9ICJERUxFVEUgZnJvbSAiLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zsb2NrJzsKCQkkcnMgPSAkZGItPkV4ZWN1dGUoJHNxbCk7CiAgICB9CgoKICAgIGZ1bmN0aW9uIEdldEZpbGVMb2NrKCkKICAgIHsKCQlnbG9iYWwgJGdDbXM7CgkJJGRiID0mICRnQ21zLT5HZXREYigpOwoJCSRzcWwgPSAiaW5zZXJ0IGludG8gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mYl9mbG9jayAoZmxvY2tfaWQsIGZsb2NrKSB2YWx1ZXMgKDEsIi4kZGItPnN5c1RpbWVTdGFtcC4iKSI7CgkJJHJzID0gJGRiLT5FeGVjdXRlKCRzcWwpOwogICAgICAgIGlmICgkcnMpCiAgICAgICAgCXsKICAgICAgICAJcmV0dXJuIHRydWU7CiAgICAgICAgCX0KICAgICAgICAkc3FsID0gInNlbGVjdCBmbG9ja19pZCBmcm9tICIuY21zX2RiX3ByZWZpeCgpLgogICAgICAgIAkibW9kdWxlX2ZiX2Zsb2NrIHdoZXJlIGZsb2NrICsgaW50ZXJ2YWwgMTUgc2Vjb25kIDwgIi4kZGItPnN5c1RpbWVTdGFtcDsKCQkkcnMgPSAkZGItPkV4ZWN1dGUoJHNxbCk7CiAgICAgICAgaWYgKCRycyAmJiAkcnMtPlJlY29yZENvdW50KCkgPiAwKQogICAgICAgIAl7CiAgICAgICAgCSR0aGlzLT5DbGVhckZpbGVMb2NrKCk7CiAgICAgICAgCXJldHVybiBmYWxzZTsKICAgICAgICAJfSAgICAgICAgCSAKCQlyZXR1cm4gZmFsc2U7CiAgICB9CgogICAgZnVuY3Rpb24gUmV0dXJuRmlsZUxvY2soKQogICAgewoJCSR0aGlzLT5DbGVhckZpbGVMb2NrKCk7CiAgICB9CgogIGZ1bmN0aW9uIEdldEV2ZW50RGVzY3JpcHRpb24gKCAkZXZlbnRuYW1lICkKICB7CiAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ2V2ZW50X2luZm9fJy4kZXZlbnRuYW1lICk7CiAgfQoKICBmdW5jdGlvbiBHZXRFdmVudEhlbHAgKCAkZXZlbnRuYW1lICkKICB7CiAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ2V2ZW50X2hlbHBfJy4kZXZlbnRuYW1lICk7CiAgfQoKCiAgZnVuY3Rpb24gQ3JlYXRlUGFnZURyb3Bkb3duKCRpZCwkbmFtZSwkY3VycmVudD0nJywKCQkJICAgICAgJGFkZHRleHQ9JycsJG1hcmtkZWZhdWx0ID10cnVlKQogIHsKICAgIC8vIHdlIGdldCBoZXJlIChob3BlZnVsbHkpIHdoZW4gdGhlIHRlbXBsYXRlIGlzIGNoYW5nZWQKICAgIC8vIGluIHRoZSBkcm9wZG93bi4KICAgICRkYiA9JiAkdGhpcy0+R2V0RGIoKTsKICAgIGdsb2JhbCAkZ0NtczsKICAgICRkZWZhdWx0aWQgPSAnJzsKICAgIGlmKCAkbWFya2RlZmF1bHQgKQogICAgICB7CgkkY29udGVudG9wcyA9JiAkZ0Ntcy0+R2V0Q29udGVudE9wZXJhdGlvbnMoKTsKCSRkZWZhdWx0aWQgPSAkY29udGVudG9wcy0+R2V0RGVmYXVsdFBhZ2VJRCgpOwogICAgICB9CiAgICAKICAgIC8vIGdldCBhIGxpc3Qgb2YgdGhlIHBhZ2VzIHVzZWQgYnkgdGhpcyB0ZW1wbGF0ZQogICAgJG15cGFnZXMgPSBhcnJheSgpOwogICAgJHBhcm1zID0gYXJyYXkoJ2NvbnRlbnQnKTsKICAgICRxID0gIlNFTEVDVCBjb250ZW50X2lkLGNvbnRlbnRfbmFtZSAKICAgICAgICAgICAgICAgIEZST00gIi5jbXNfZGJfcHJlZml4KCkuImNvbnRlbnQKICAgICAgICAgICAgICAgV0hFUkUgdHlwZSA9ID8KICAgICAgICAgICAgICAgICBBTkQgYWN0aXZlID0gMSI7CiAgICAkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoICRxLCAkcGFybXMgKTsKICAgIHdoaWxlKCAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpICkKICAgICAgewoJaWYoICRkZWZhdWx0aWQgIT0gJycgJiYgJHJvd1snY29udGVudF9pZCddID09ICRkZWZhdWx0aWQgKQoJICB7CgkgICAgLy8gdXNlIGEgc3RhciBpbnN0ZWFkIG9mIGEgd29yZCBoZXJlIHNvIEkgZG9uJ3QgaGF2ZSB0bwoJICAgIC8vIHdvcnJ5IGFib3V0IHRyYW5zbGF0aW9uIHN0dWZmCgkgICAgJG15cGFnZXNbJHJvd1snY29udGVudF9uYW1lJ10uJyAoKiknXSA9ICRyb3dbJ2NvbnRlbnRfaWQnXTsKCSAgfQoJZWxzZQoJICB7CgkgICAgJG15cGFnZXNbJHJvd1snY29udGVudF9uYW1lJ11dID0gJHJvd1snY29udGVudF9pZCddOwoJICB9CiAgICAgIH0KCiAgICByZXR1cm4gJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCRuYW1lLCRteXBhZ2VzLC0xLCRjdXJyZW50LCRhZGR0ZXh0KTsKICB9CgoJZnVuY3Rpb24gU3VwcHJlc3NBZG1pbk91dHB1dCgmJHJlcXVlc3QpCiAgIHsKICAgICAgaWYgKHN0cnBvcygkX1NFUlZFUlsnUVVFUllfU1RSSU5HJ10sJ2V4cG9ydHhtbCcpICE9PSBmYWxzZSkKICAgICAgICAgewogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgICByZXR1cm4gZmFsc2U7CiAgIH0KCgp9IC8vIEVuZCBvZiBDbGFzcwoKIyB2aW06dHM9NCBzdz00IG5vZXQKPz4K]]></data>
	</file>
	<file>
	  <filename>/images/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/images/icon.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhIAAgAPflAP///4+IiP7+/vv7+/z8/P39/cjHx/X19fT09PLy8vr6+vn5+efm5uTj4+jn55CJidHQ0O3s7NnZ2ZWPj+Xl5d3d3dvb2/j4+NPS0vDw8PHx8e7u7vf39+vq6tra2uLi4uzs7NHR0dHOzszLy+Hf39bW1uLh4fX09M/Pz8vKyr25ucfExObl5djX18rJyfn4+Nzb2+/u7u/v7/b29sXExMC8vNLPz7y4uElJScC/v+fn5+no6NnY2NDPz2dnZ93c3JeQkOzr68vLy+Pi4pSOjvPz876+vvz7+5+ZmfDv73Z2dr29vevr6+Hh4bu6usTExH19fdfV1Z2Xl9LS0qqkpJeRkaulpeDe3o2Njbu3t46OjsPDw9TU1N7d3dXU1K6pqXV1dbeyss7Ly1tbW7q5ufHw8PPy8ri4uJWVlaKcnPj39/Lx8cLBwX9/f8HAwLq2ttPR0ff29tXT0/v6+iUlJerq6rm1tZycnKmpqdPQ0JiRkcfDw8TAwKScnD09PaehodfU1Le3t+3t7aCamtDQ0Ly8vKGcnLWxscnJyVpaWrOyst/f36OdnbKysp2dnW5uboqKip6YmCkpKcrHx9fX14GBgbOurmJiYlZWVt3b2+rp6Z+amtzc3CAgINjW1t7c3JqUlJaPj/b19cXFxd7f387OztHPz5GRkXl5eaijo769vZSNjaioqOrr67q1tb66utrZ2ebm5pmSkpmZmczMzKqqqpGKiubk5NTT09TR0baxsejo6Ojp6crKylBQUOTk5JaQkNfW1pWOjt/e3qWfn5+fn7m0tJiSks7MzG5lZZOMjOPj47+/vzY2NoODg+Hg4KKiov79/cbFxcTCwr28vLu5ud7e3sLCwunp6bW1tevs7MfGxtDNzZ6enmBgYOLj4+Dg4NjY2K2oqNXS0rezs////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAOUALAAAAAAgACAAAAj/AMsJHEiwoMGDBAEoVDiQIcKHCRdKnEgRQMKDFTNqpChwo0eNHT8qHJDBAQsGdZKcWDBDw4YNAkiIMTMxQ4VFIC4o4LCwFTUnKQyM2vKEDBk2IQwg0EUkU7mFBEqg8aGE1RJo3ipR0BYCAQATLCxI6METgBtN5AJEeaqQwIdAUJr5mYWlE44pCUagIOWhixBVigyUALeEhYoAntgCELCgCLYKFRAIuhaCg1tkhCjBIPGNQYNhP5os2BMAkOKFAjYKKHCkwEIFCRx0GBdAxOmNBTZYsFABFq4RNHLkkLbtSYMAK26PTHAgg5BeFwrw2MLpl4MNBwaMZOIkRgA7pwl4/+gGBkshR74uIQLww8sJMx2GWPACoQcELi1mBKByusAUZzhAgQckqNzhAQAN0OCCKRgEA4MJDICQhAYDLAAEEiEppIEEtCwjgw4yZAfAHDEEkcAC0Sw2wAEfWrOGIXpkqJBrGRGQAAMwYDCCAS5A0MUzKThghTAybnRACtW4EA4FGiiw2AUUcMGEJUQUudgBTRjRSDFgnJFBCzsckQAFPJRigAEotMDLCa5MICMIp/igxRh0YPLIGMzMgIEBGEAAhwQNFEGAGhEAcEENwMj4QSKSaNGGErWgUAICBMQigQkRILAAARGE0QcoAyiwQhUyImBENrskoB1u0ySzSRYKrZsQSpEKOCkSAAgIIMoQufARySpW3qrQC3lQEcCxxzYkbAExyBEGMVUc+8AxVrwxibIfDRCEGF9MgGwAE2TRgEEelWHDFw8gawsSxkSxQxwIUSTAAbfYoMIfQKQbgDJp1HDFCxDdVgY34uh7rBQ3XCFAwBFFoAIj3gbwgCyp3CACAxwszLCyn3wrxSskaLwxQg4McogIHQA8skEBAQA7]]></data>
	</file>
	<file>
	  <filename>/includes/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/includes/FormBuilderSampleData.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCiRmb3JtX2lkID0gJGRiLT5HZW5JRChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9mb3JtX3NlcScpOwoKJHRlbXBsYXRlSW5zZXJ0ID0gJ3tsaXRlcmFsfQoKPCEtLSBiZWxvdywgeW91XCdsbCBmaW5kIHRoZSAic3RhbmRhcmQgQ1NTIHRlbXBsYXRlIiBmb3IgZGlzcGxheWluZyBGb3JtQnVpbGRlciBGb3JtcwogICBZb3UgY2FuIGVkaXQgaXQgdG8gbWFrZSB5b3VyIGZvcm0gbGF5b3V0IGxvb2sgYW55IHdheSB5b3VcJ2QgbGlrZS4KICAgVG8gbWFrZSB0aGUgZm9ybSB3b3JrLCB5b3VcJ2xsIG5lZWQgdG8gYWx3YXlzIGluY2x1ZGUgdGhlIHskaGlkZGVufSBhbmQgeyRzdWJtaXR9CiAgIHRhZ3MuCgogICBZb3UgY2FuIGFjY2VzcyB5b3VyIGZvcm0gZmllbGRzIGVpdGhlciB1c2luZyB0aGUgJGZpZWxkcyBhcnJheSwgYXMgZGVtb25zdHJhdGVkIGJlbG93LAogICBvciBieSBkaXJlY3RseSBhY2Nlc3NpbmcgZmllbGRzIGJ5IHRoZWlyIG5hbWVzIChlLmcuLCB7JG15ZmllbGQtPmlucHV0fSApCgoKICAgRWFjaCBmaWVsZCBoYXMgdGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzOgogICAgICAgZmllbGQtPmRpc3BsYXkgICAgICAgICA9IDEgaWYgdGhlIGZpZWxkIHNob3VsZCBiZSBkaXNwbGF5ZWQsIDAgb3RoZXJ3aXNlCiAgICAgICBmaWVsZC0+cmVxdWlyZWQgICAgICAgID0gMSBpZiB0aGUgZmllbGQgaXMgcmVxdWlyZWQsIDAgb3RoZXJ3aXNlCiAgICAgICBmaWVsZC0+cmVxdWlyZWRfc3ltYm9sID0gdGhlIHN5bWJvbCBmb3IgcmVxdWlyZWQgZmllbGRzCiAgICAgICBmaWVsZC0+Y3NzX2NsYXNzICAgICAgID0gdGhlIENTUyBjbGFzcyBzcGVjaWZpZWQgZm9yIHRoaXMgZmllbGQKICAgICAgIGZpZWxkLT52YWxpZCAgICAgICAgICAgPSAxIGlmIHRoaXMgZmllbGQgaGFzIHBhc3NlZCB2YWxpZGF0aW9uLCAwIG90aGVyd2lzZQogICAgICAgZmllbGQtPmhpZGVfbmFtZSAgICAgICA9IDEgaWYgdGhlIGZpZWxkIG5hbWUgc2hvdWxkIGJlIGhpZGRlbiwgMCBvdGhlcndpc2UKICAgICAgIGZpZWxkLT5uYW1lICAgICAgICAgICAgPSB0aGUgZmllbGRcJ3MgbmFtZQogICAgICAgZmllbGQtPmlucHV0ICAgICAgICAgICA9IHRoZSBmaWVsZFwncyBpbnB1dCBjb250cm9sIChlLmcuLCB0aGUgaW5wdXQgZmllbGQgaXRzZWxmKQogICAgICAgZmllbGQtPmlucHV0X2lkICAgICAgICA9IHRoZSBvZiB0aGUgZmllbGRcJ3MgaW5wdXQgKHVzZWZ1bCBmb3IgPGxhYmVsIGZvcj0iIj4pCiAgICAgICBmaWVsZC0+dHlwZSAgICAgICAgICAgID0gdGhlIGZpZWxkXCdzIGRhdGEgdHlwZQogICAgICAgZmllbGQtPm11bHRpcGxlX3BhcnRzICA9IDEgaWYgdGhlIGZpZWxkLT5pbnB1dCBpcyBhY3R1YWxseSBhIGNvbGxlY3Rpb24gb2YgY29udHJvbHMKCiAgIEluIGNlcnRhaW4gY2FzZXMsIGZpZWxkLT5pbnB1dCBpcyBhY3R1YWxseSBhbiBhcnJheSBvZiBvYmplY3RzIHJhdGhlciB0aGFuIGFuIGlucHV0LiBUaGlzCiAgIGhhcHBlbnMsIGZvciBleGFtcGxlLCBpbiBDaGVja0JveEdyb3VwcyBvciBSYWRpb0J1dHRvbkdyb3Vwcy4gRm9yIHRoZW0sIHlvdQogICBjYW4gaXRlcmF0ZSB0aHJvdWdoIGZpZWxkLT5pbnB1dC0+bmFtZSBhbmQgZmllbGQtPmlucHV0LT5pbnB1dHMuCiAgICAKCiAgICAgICBBZGRpdGlvbmFsIHNtYXJ0eSB2YXJpYWJsZXMgdGhhdCB5b3UgY2FuIHVzZSBpbmNsdWRlOgogICAgICAgeyR0b3RhbF9wYWdlc30gICAgICAgLSBudW1iZXIgb2YgcGFnZXMgZm9yIG11bHRpLXBhZ2UgZm9ybXMKICAgICAgIHskdGhpc19wYWdlfSAgICAgICAgIC0gbnVtYmVyIGZvIHRoZSBjdXJyZW50IHBhZ2UgZm9yIG11bHRpLXBhZ2UgZm9ybXMKICAgICAgIHskdGl0bGVfcGFnZV94X29mX3l9IC0gZGlzcGxheXMgInBhZ2UgeCBvZiB5IiBmb3IgbXVsdGktcGFnZSBmb3JtcwogICAgICAgeyRjc3NfY2xhc3N9ICAgICAgICAgLSBDU1MgQ2xhc3MgZm9yIHRoZSBmb3JtCiAgICAgICB7JGZvcm1fbmFtZX0gICAgICAgICAtIEZvcm0gbmFtZQogICAgICAgeyRmb3JtX2lkfSAgICAgICAgICAgLSBGb3JtIERhdGFiYXNlIElECiAgICAgICB7JHByZXZ9ICAgICAgICAgICAgICAtICJCYWNrIiBidXR0b24gZm9yIG11bHRpcGFydCBmb3JtcwoKICAgICAgIER1bm5vIHdoeSB5b3VcJ2Qgd2FudCBzb21lIG9mIHRob3NlLCBidXQgdGhlcmUgeW91IGdvLi4uCi0tPgoKey9saXRlcmFsfQoKCnskaGlkZGVufXthc3NpZ24gdmFyPSJjb2xzIiB2YWx1ZT0iMyJ9CjxkaXZ7aWYgJGNzc19jbGFzcyAhPSBcJ1wnfSBjbGFzcz0ieyRjc3NfY2xhc3N9InsvaWZ9Pgp7aWYgJHRvdGFsX3BhZ2VzIGd0IDF9PHNwYW4+eyR0aXRsZV9wYWdlX3hfb2ZfeX08L3NwYW4+ey9pZn0Ke2ZvcmVhY2ggZnJvbT0kZmllbGRzIGl0ZW09ZW50cnl9CgkgIHtpZiAkZW50cnktPmRpc3BsYXkgPT0gMX0KCSAgICAJe3N0cmlwfQoJICAgIAk8ZGl2CgkgICAgCXtpZiAkZW50cnktPnJlcXVpcmVkID09IDEgfHwgJGVudHJ5LT5jc3NfY2xhc3MgIT0gXCdcJ30gY2xhc3M9IiAKCSAgICAJCXtpZiAkZW50cnktPnJlcXVpcmVkID09IDF9CgkgICAgCQkJcmVxdWlyZWQKCSAgICAJCXsvaWZ9CgkgICAgCQl7aWYgJGVudHJ5LT5yZXF1aXJlZCA9PSAxICYmICRlbnRyeS0+Y3NzX2NsYXNzICE9IFwnXCd9IHsvaWZ9CgkgICAgCQl7aWYgJGVudHJ5LT5jc3NfY2xhc3MgIT0gXCdcJ30KCSAgICAJCQl7JGVudHJ5LT5jc3NfY2xhc3N9CgkgICAgCQl7L2lmfQoJICAgIAkJIgoJICAgIAl7L2lmfQoJICAgIAk+CgkgICAgCXtpZiAkZW50cnktPmhpZGVfbmFtZSA9PSAwfQoJICAgIAkJPGxhYmVsIGZvcj0ieyRlbnRyeS0+aW5wdXRfaWR9Ij57JGVudHJ5LT5uYW1lfTwvbGFiZWw+CgkgICAgCQl7aWYgJGVudHJ5LT5yZXF1aXJlZF9zeW1ib2wgIT0gXCdcJ30KCSAgICAJCQl7JGVudHJ5LT5yZXF1aXJlZF9zeW1ib2x9CgkgICAgCQl7L2lmfQoJICAgIAl7L2lmfQoJICAgIAl7aWYgJGVudHJ5LT5tdWx0aXBsZV9wYXJ0cyA9PSAxfQogICAgCQk8dGFibGU+CgkJCQkJPHRyPgoJCQkJe3NlY3Rpb24gbmFtZT1udW1sb29wIGxvb3A9JGVudHJ5LT5pbnB1dH0KCSAgICAJCQk8dGQ+eyRlbnRyeS0+aW5wdXRbbnVtbG9vcF0tPmlucHV0fSZuYnNwO3skZW50cnktPmlucHV0W251bWxvb3BdLT5uYW1lfTwvdGQ+CgkgICAgCQkJICAgICAgIHtpZiBub3QgKCRzbWFydHkuc2VjdGlvbi5udW1sb29wLnJvd251bSBtb2QgJGNvbHMpfQogICAgICAgICAgICAgICAgCQkJCXtpZiBub3QgJHNtYXJ0eS5zZWN0aW9uLm51bWxvb3AubGFzdH0KICAgICAgICAgICAgICAgICAgICAgICAgCQk8L3RyPjx0cj4KICAgICAgICAgICAgICAgIAkJCQl7L2lmfQogICAgICAgIAkJCQkJey9pZn0KICAgICAgIAkJCQl7aWYgJHNtYXJ0eS5zZWN0aW9uLm51bWxvb3AubGFzdH0KICAgICAgICAgICAgICAgIAkJe21hdGggZXF1YXRpb24gPSAibiAtIGEgJSBuIiBuPSRjb2xzIGE9JGVudHJ5LT5pbnB1dHxAY291bnQgYXNzaWduPSJjZWxscyJ9CiAgICAgICAgICAgICAgICAJCXtpZiAkY2VsbHMgbmUgJGNvbHN9CiAgICAgICAgICAgICAgICAJCQl7c2VjdGlvbiBuYW1lPXBhZCBsb29wPSRjZWxsc30KICAgICAgICAgICAgICAgICAgICAgICAgCQk8dGQ+Jm5ic3A7PC90ZD4KICAgICAgICAgICAgICAgIAkJCXsvc2VjdGlvbn0KICAgICAgICAgICAgICAgCQkgCXsvaWZ9CiAgICAgICAgICAgICAgICAJCTwvdHI+CiAgICAgICAgCQkJey9pZn0KCSAgICAJCXsvc2VjdGlvbn0KCSAgICAJCTwvdGFibGU+CgkgICAgCXtlbHNlfQoJICAgIAkJeyRlbnRyeS0+aW5wdXR9CgkgICAgCXsvaWZ9CgkgICAgCXtpZiAkZW50cnktPnZhbGlkID09IDB9ICZsdDstLS0gey9pZn0KCSAgICAJPC9kaXY+CgkgICAgCXsvc3RyaXB9CgkgIHsvaWZ9CnsvZm9yZWFjaH0KPGRpdiBjbGFzcz0ic3VibWl0Ij57JHByZXZ9eyRzdWJtaXR9PC9kaXY+CjwvZGl2Pic7CgokcXVlcnkgPSAiSU5TRVJUIElOVE8gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV90ZW1wbGF0ZXMgVkFMVUVTICgnRm9ybUJ1aWxkZXInLCA/LD8sPyw/KSI7CgokdHMgPSAkZGItPkRCVGltZVN0YW1wKHRpbWUoKSk7CiR0cyA9IHN1YnN0cigkdHMsMSxzdHJsZW4oJHRzKS0yKTsKCiRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJ2ZiXycuJGZvcm1faWQsJHRlbXBsYXRlSW5zZXJ0LCR0cywkdHMpKTsKCiRxdWVyeSA9ICJJTlNFUlQgSU5UTyAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2ZiX2Zvcm0gVkFMVUVTICg/LD8sPykiOwokZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRmb3JtX2lkLCdTYW1wbGUgRm9ybScsICdzYW1wbGVfZm9ybScpKTsKCiRxdWVyeSA9ICJJTlNFUlQgSU5UTyAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2ZiX2Zvcm1fYXR0ciBWQUxVRVMgKD8sID8sID8sID8pIjsKCgokYXR0cl9pZCA9ICRkYi0+R2VuSUQoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZm9ybV9hdHRyX3NlcScpOwokZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRhdHRyX2lkLCAkZm9ybV9pZCwgJ2Nzc19jbGFzcycsICdmb3JtYnVpbGRlcmZvcm0nKSk7CgokYXR0cl9pZCA9ICRkYi0+R2VuSUQoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZm9ybV9hdHRyX3NlcScpOwokZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRhdHRyX2lkLCAkZm9ybV9pZCwgJ2Zvcm1fZGlzcGxheXR5cGUnLCAndGFiJykpOwoKJGF0dHJfaWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zvcm1fYXR0cl9zZXEnKTsKJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkYXR0cl9pZCwgJGZvcm1faWQsICdyZWRpcmVjdF9wYWdlJywgJy0xJykpOwoKJGF0dHJfaWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zvcm1fYXR0cl9zZXEnKTsKJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkYXR0cl9pZCwgJGZvcm1faWQsICdzdWJtaXRfYnV0dG9uX3RleHQnLCAnU2VuZCBGb3JtJykpOwoKJGF0dHJfaWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zvcm1fYXR0cl9zZXEnKTsKJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkYXR0cl9pZCwgJGZvcm1faWQsICduZXh0X2J1dHRvbl90ZXh0JywgJ0NvbnRpbnVlLi4uJykpOwoKJGF0dHJfaWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zvcm1fYXR0cl9zZXEnKTsKJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkYXR0cl9pZCwgJGZvcm1faWQsICdwcmV2X2J1dHRvbl90ZXh0JywgJ0JhY2suLi4nKSk7CgokYXR0cl9pZCA9ICRkYi0+R2VuSUQoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZm9ybV9hdHRyX3NlcScpOwokZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRhdHRyX2lkLCAkZm9ybV9pZCwgJ3JlcXVpcmVkX2ZpZWxkX3N5bWJvbCcsICcqJykpOwoKJGF0dHJfaWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zvcm1fYXR0cl9zZXEnKTsKJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkYXR0cl9pZCwgJGZvcm1faWQsICd1bnNwZWNpZmllZCcsICdbdW5zcGVjaWZpZWRdJykpOwoKJGF0dHJfaWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zvcm1fYXR0cl9zZXEnKTsKJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkYXR0cl9pZCwgJGZvcm1faWQsICdsaXN0X2RlbGltaXRlcicsICcsJykpOwoKJGF0dHJfaWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zvcm1fYXR0cl9zZXEnKTsKJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkYXR0cl9pZCwgJGZvcm1faWQsICd0aXRsZV9wb3NpdGlvbicsICdsZWZ0JykpOwoKJGF0dHJfaWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zvcm1fYXR0cl9zZXEnKTsKJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkYXR0cl9pZCwgJGZvcm1faWQsICdmb3JtX3RlbXBsYXRlJywgJHRlbXBsYXRlSW5zZXJ0KSk7CgoKJGZpZWxkUXVlcnkgPSAiSU5TRVJUIElOVE8gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mYl9maWVsZCBWQUxVRVMgKD8sID8sID8sID8sID8sID8sID8sID8pIjsKJG9wdFF1ZXJ5ID0gIklOU0VSVCBJTlRPICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZmJfZmllbGRfb3B0IFZBTFVFUyAoPywgPywgPywgPywgPykiOwoKCiRmaWVsZF9pZCA9ICRkYi0+R2VuSUQoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGRfc2VxJyk7CiRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkZmllbGRRdWVyeSxhcnJheSgkZmllbGRfaWQsJGZvcm1faWQsJ1dlbGNvbWUhJywgJ1N0YXRpY1RleHRGaWVsZCcsICcnLCAwLCAwLCAyKSk7CiRvcHRfaWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2ZpZWxkX29wdF9zZXEnKTsKJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRvcHRRdWVyeSxhcnJheSgkb3B0X2lkLCAkZmllbGRfaWQsICRmb3JtX2lkLCAndGV4dCcsICdUaGFua3MgZm9yIHRyeWluZyBvdXQgRm9ybUJ1aWxkZXIuIFlvdSBjYW4gdXNlIHRoaXMgZm9ybSB0byBwcm92aWRlIG1lIHdpdGggZmVlZGJhY2sgYWJvdXQgaG93IHlvdSB3aWxsIGJlIHVzaW5nIEZvcm0gQnVpbGRlciwgc28gSSBjYW4gYmVzdCBhbGxvY2F0ZSByZXNvdXJjZXMgZm9yIGZ1dHVyZSBkZXZlbG9wbWVudC4gVGhhbmtzLCBfX19TYW11ZWxfX18nKSk7CiRvcHRfaWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2ZpZWxkX29wdF9zZXEnKTsKJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRvcHRRdWVyeSxhcnJheSgkb3B0X2lkLCAkZmllbGRfaWQsICRmb3JtX2lkLCAnY3NzX2NsYXNzJywgJycpKTsKCgokZmllbGRfaWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2ZpZWxkX3NlcScpOwokZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJGZpZWxkUXVlcnksYXJyYXkoJGZpZWxkX2lkLCRmb3JtX2lkLCdNb2R1bGVzIHlvdVwnbGwgYmUgdXNpbmcgdG9nZXRoZXInLCAnQ2hlY2tib3hHcm91cEZpZWxkJywgJycsIDAsIDAsIDMpKTsKJG9wdF9pZCA9ICRkYi0+R2VuSUQoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGRfb3B0X3NlcScpOwokZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJG9wdFF1ZXJ5LGFycmF5KCRvcHRfaWQsICRmaWVsZF9pZCwgJGZvcm1faWQsICdib3hfbmFtZScsICdGb3JtIEJ1aWxkZXInKSk7CiRvcHRfaWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2ZpZWxkX29wdF9zZXEnKTsKJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRvcHRRdWVyeSxhcnJheSgkb3B0X2lkLCAkZmllbGRfaWQsICRmb3JtX2lkLCAnYm94X25hbWUnLCAnRm9ybSBCcm93c2VyJykpOwokb3B0X2lkID0gJGRiLT5HZW5JRChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9maWVsZF9vcHRfc2VxJyk7CiRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkb3B0UXVlcnksYXJyYXkoJG9wdF9pZCwgJGZpZWxkX2lkLCAkZm9ybV9pZCwgJ2JveF9uYW1lJywgJ0Zyb250LWVuZCBVc2VycycpKTsKJG9wdF9pZCA9ICRkYi0+R2VuSUQoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGRfb3B0X3NlcScpOwokZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJG9wdFF1ZXJ5LGFycmF5KCRvcHRfaWQsICRmaWVsZF9pZCwgJGZvcm1faWQsICdib3hfbmFtZScsICdOZXdzbGV0dGVyIE1hZGUgU2ltcGxlIChOTVMpJykpOwokb3B0X2lkID0gJGRiLT5HZW5JRChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9maWVsZF9vcHRfc2VxJyk7CiRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkb3B0UXVlcnksYXJyYXkoJG9wdF9pZCwgJGZpZWxkX2lkLCAkZm9ybV9pZCwgJ2JveF9uYW1lJywgJ1Byb3RlY3RlZCBQYWdlcycpKTsKJG9wdF9pZCA9ICRkYi0+R2VuSUQoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGRfb3B0X3NlcScpOwokZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJG9wdFF1ZXJ5LGFycmF5KCRvcHRfaWQsICRmaWVsZF9pZCwgJGZvcm1faWQsICdib3hfbmFtZScsICdPdGhlcnMnKSk7CiRvcHRfaWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2ZpZWxkX29wdF9zZXEnKTsKJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRvcHRRdWVyeSxhcnJheSgkb3B0X2lkLCAkZmllbGRfaWQsICRmb3JtX2lkLCAnYm94X2NoZWNrZWQnLCAnZm9ybWJ1aWxkZXInKSk7CiRvcHRfaWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2ZpZWxkX29wdF9zZXEnKTsKJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRvcHRRdWVyeSxhcnJheSgkb3B0X2lkLCAkZmllbGRfaWQsICRmb3JtX2lkLCAnYm94X2NoZWNrZWQnLCAnZm9ybWJyb3dzZXInKSk7CiRvcHRfaWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2ZpZWxkX29wdF9zZXEnKTsKJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRvcHRRdWVyeSxhcnJheSgkb3B0X2lkLCAkZmllbGRfaWQsICRmb3JtX2lkLCAnYm94X2NoZWNrZWQnLCAnZmV1c2VycycpKTsKJG9wdF9pZCA9ICRkYi0+R2VuSUQoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGRfb3B0X3NlcScpOwokZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJG9wdFF1ZXJ5LGFycmF5KCRvcHRfaWQsICRmaWVsZF9pZCwgJGZvcm1faWQsICdib3hfY2hlY2tlZCcsICdubXMnKSk7CiRvcHRfaWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2ZpZWxkX29wdF9zZXEnKTsKJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRvcHRRdWVyeSxhcnJheSgkb3B0X2lkLCAkZmllbGRfaWQsICRmb3JtX2lkLCAnYm94X2NoZWNrZWQnLCAncHJvdGVjdGVkIHBhZ2VzJykpOwokb3B0X2lkID0gJGRiLT5HZW5JRChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9maWVsZF9vcHRfc2VxJyk7CiRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkb3B0UXVlcnksYXJyYXkoJG9wdF9pZCwgJGZpZWxkX2lkLCAkZm9ybV9pZCwgJ2JveF9jaGVja2VkJywgJ290aGVycycpKTsKJG9wdF9pZCA9ICRkYi0+R2VuSUQoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGRfb3B0X3NlcScpOwokZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJG9wdFF1ZXJ5LGFycmF5KCRvcHRfaWQsICRmaWVsZF9pZCwgJGZvcm1faWQsICdib3hfdW5jaGVja2VkJywgJ25vdCBmb3JtYnVpbGRlcicpKTsKJG9wdF9pZCA9ICRkYi0+R2VuSUQoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGRfb3B0X3NlcScpOwokZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJG9wdFF1ZXJ5LGFycmF5KCRvcHRfaWQsICRmaWVsZF9pZCwgJGZvcm1faWQsICdib3hfdW5jaGVja2VkJywgJ25vdCBmb3JtYnJvd3NlcicpKTsKJG9wdF9pZCA9ICRkYi0+R2VuSUQoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGRfb3B0X3NlcScpOwokZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJG9wdFF1ZXJ5LGFycmF5KCRvcHRfaWQsICRmaWVsZF9pZCwgJGZvcm1faWQsICdib3hfdW5jaGVja2VkJywgJ25vdCBmZXVzZXJzJykpOwokb3B0X2lkID0gJGRiLT5HZW5JRChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9maWVsZF9vcHRfc2VxJyk7CiRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkb3B0UXVlcnksYXJyYXkoJG9wdF9pZCwgJGZpZWxkX2lkLCAkZm9ybV9pZCwgJ2JveF91bmNoZWNrZWQnLCAnbm90IG5tcycpKTsKJG9wdF9pZCA9ICRkYi0+R2VuSUQoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGRfb3B0X3NlcScpOwokZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJG9wdFF1ZXJ5LGFycmF5KCRvcHRfaWQsICRmaWVsZF9pZCwgJGZvcm1faWQsICdib3hfdW5jaGVja2VkJywgJ25vdCBwcm90ZWN0ZWQgcGFnZXMnKSk7CiRvcHRfaWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2ZpZWxkX29wdF9zZXEnKTsKJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRvcHRRdWVyeSxhcnJheSgkb3B0X2lkLCAkZmllbGRfaWQsICRmb3JtX2lkLCAnYm94X3VuY2hlY2tlZCcsICdub3Qgb3RoZXJzJykpOwokb3B0X2lkID0gJGRiLT5HZW5JRChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9maWVsZF9vcHRfc2VxJyk7CiRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkb3B0UXVlcnksYXJyYXkoJG9wdF9pZCwgJGZpZWxkX2lkLCAkZm9ybV9pZCwgJ2Nzc19jbGFzcycsICcnKSk7CgoKCiRmaWVsZF9pZCA9ICRkYi0+R2VuSUQoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGRfc2VxJyk7CiRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkZmllbGRRdWVyeSxhcnJheSgkZmllbGRfaWQsJGZvcm1faWQsJ1doZXJlIGFyZSB5b3UgZnJvbT8nLCAnQ291bnRyeVBpY2tlckZpZWxkJywgJycsIDAsIDAsIDUpKTsKJG9wdF9pZCA9ICRkYi0+R2VuSUQoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGRfb3B0X3NlcScpOwokZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJG9wdFF1ZXJ5LGFycmF5KCRvcHRfaWQsICRmaWVsZF9pZCwgJGZvcm1faWQsJ2RlZmF1bHQnLCAnJykpOwokb3B0X2lkID0gJGRiLT5HZW5JRChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9maWVsZF9vcHRfc2VxJyk7CiRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkb3B0UXVlcnksYXJyYXkoJG9wdF9pZCwgJGZpZWxkX2lkLCAkZm9ybV9pZCwnc2VsZWN0X29uZScsICdTZWxlY3QgT25lJykpOwokb3B0X2lkID0gJGRiLT5HZW5JRChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9maWVsZF9vcHRfc2VxJyk7CiRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkb3B0UXVlcnksYXJyYXkoJG9wdF9pZCwgJGZpZWxkX2lkLCAkZm9ybV9pZCwnY3NzX2NsYXNzJywgJycpKTsKCgokZmllbGRfaWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2ZpZWxkX3NlcScpOwokZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJGZpZWxkUXVlcnksYXJyYXkoJGZpZWxkX2lkLCRmb3JtX2lkLCdEbyB5b3UgaGF2ZSBhbnkgY29tbWVudHMgLyBmZWVkYmFjayBmb3IgdGhlIG1vZHVsZSBhdXRob3I/JywgJ1RleHRBcmVhRmllbGQnLCAnJywgMCwgMCwgNikpOwokb3B0X2lkID0gJGRiLT5HZW5JRChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9maWVsZF9vcHRfc2VxJyk7CiRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkb3B0UXVlcnksYXJyYXkoJG9wdF9pZCwgJGZpZWxkX2lkLCAkZm9ybV9pZCwnY3NzX2NsYXNzJywgJycpKTsKCgokZmllbGRfaWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2ZpZWxkX3NlcScpOwokZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJGZpZWxkUXVlcnksYXJyYXkoJGZpZWxkX2lkLCRmb3JtX2lkLCdXaGF0IHdpbGwgeW91IHBlcnNvbmFsbHkgYmUgZG9pbmcgb24geW91ciBDTVMgTVMgc2l0ZT8nLCAnQ2hlY2tib3hHcm91cEZpZWxkJywgJycsIDAsIDAsIDQpKTsKJG9wdF9pZCA9ICRkYi0+R2VuSUQoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGRfb3B0X3NlcScpOwokZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJG9wdFF1ZXJ5LGFycmF5KCRvcHRfaWQsICRmaWVsZF9pZCwgJGZvcm1faWQsJ2JveF9uYW1lJywgJ0Rlc2lnbiBIVE1ML0NTUycpKTsKJG9wdF9pZCA9ICRkYi0+R2VuSUQoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGRfb3B0X3NlcScpOwokZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJG9wdFF1ZXJ5LGFycmF5KCRvcHRfaWQsICRmaWVsZF9pZCwgJGZvcm1faWQsJ2JveF9uYW1lJywgJ1BvcHVsYXRlL01haW50YWluIENvbnRlbnQnKSk7CiRvcHRfaWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2ZpZWxkX29wdF9zZXEnKTsKJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRvcHRRdWVyeSxhcnJheSgkb3B0X2lkLCAkZmllbGRfaWQsICRmb3JtX2lkLCdib3hfbmFtZScsICdHcmFwaGljYWwgRGVzaWduJykpOwokb3B0X2lkID0gJGRiLT5HZW5JRChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9maWVsZF9vcHRfc2VxJyk7CiRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkb3B0UXVlcnksYXJyYXkoJG9wdF9pZCwgJGZpZWxkX2lkLCAkZm9ybV9pZCwnYm94X25hbWUnLCAnSW5zdGFsbC9Db25maWd1cmUgbW9kdWxlcycpKTsKJG9wdF9pZCA9ICRkYi0+R2VuSUQoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGRfb3B0X3NlcScpOwokZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJG9wdFF1ZXJ5LGFycmF5KCRvcHRfaWQsICRmaWVsZF9pZCwgJGZvcm1faWQsJ2JveF9uYW1lJywgJ0VkaXQgU21hcnR5IFRlbXBsYXRlcycpKTsKJG9wdF9pZCA9ICRkYi0+R2VuSUQoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGRfb3B0X3NlcScpOwokZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJG9wdFF1ZXJ5LGFycmF5KCRvcHRfaWQsICRmaWVsZF9pZCwgJGZvcm1faWQsJ2JveF9uYW1lJywgJ0NyZWF0ZSBNb2R1bGVzIG9yIENvZGUgVXNlciBUYWdzJykpOwokb3B0X2lkID0gJGRiLT5HZW5JRChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9maWVsZF9vcHRfc2VxJyk7CiRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkb3B0UXVlcnksYXJyYXkoJG9wdF9pZCwgJGZpZWxkX2lkLCAkZm9ybV9pZCwnYm94X25hbWUnLCAnQ3JlYXRlIEV2ZW50IFdvcmtmbG93cycpKTsKJG9wdF9pZCA9ICRkYi0+R2VuSUQoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGRfb3B0X3NlcScpOwokZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJG9wdFF1ZXJ5LGFycmF5KCRvcHRfaWQsICRmaWVsZF9pZCwgJGZvcm1faWQsJ2JveF9uYW1lJywgJ0hhY2sgdGhlIENvcmUsIEV4dGVuZCBDTVMnKSk7CiRvcHRfaWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2ZpZWxkX29wdF9zZXEnKTsKJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRvcHRRdWVyeSxhcnJheSgkb3B0X2lkLCAkZmllbGRfaWQsICRmb3JtX2lkLCdib3hfbmFtZScsICdQb3J0IENNUyBNUyB0byBSdWJ5IG9uIFJhaWxzJykpOwokb3B0X2lkID0gJGRiLT5HZW5JRChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9maWVsZF9vcHRfc2VxJyk7CiRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkb3B0UXVlcnksYXJyYXkoJG9wdF9pZCwgJGZpZWxkX2lkLCAkZm9ybV9pZCwnYm94X2NoZWNrZWQnLCAnaHRtbCcpKTsKJG9wdF9pZCA9ICRkYi0+R2VuSUQoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGRfb3B0X3NlcScpOwokZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJG9wdFF1ZXJ5LGFycmF5KCRvcHRfaWQsICRmaWVsZF9pZCwgJGZvcm1faWQsJ2JveF9jaGVja2VkJywgJ2NvbnRlbnQnKSk7CiRvcHRfaWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2ZpZWxkX29wdF9zZXEnKTsKJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRvcHRRdWVyeSxhcnJheSgkb3B0X2lkLCAkZmllbGRfaWQsICRmb3JtX2lkLCdib3hfY2hlY2tlZCcsICdncmFwaGljcycpKTsKJG9wdF9pZCA9ICRkYi0+R2VuSUQoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGRfb3B0X3NlcScpOwokZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJG9wdFF1ZXJ5LGFycmF5KCRvcHRfaWQsICRmaWVsZF9pZCwgJGZvcm1faWQsJ2JveF9jaGVja2VkJywgJ21vZHVsZXMnKSk7CiRvcHRfaWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2ZpZWxkX29wdF9zZXEnKTsKJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRvcHRRdWVyeSxhcnJheSgkb3B0X2lkLCAkZmllbGRfaWQsICRmb3JtX2lkLCdib3hfY2hlY2tlZCcsICdzbWFydHknKSk7CiRvcHRfaWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2ZpZWxkX29wdF9zZXEnKTsKJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRvcHRRdWVyeSxhcnJheSgkb3B0X2lkLCAkZmllbGRfaWQsICRmb3JtX2lkLCdib3hfY2hlY2tlZCcsICdwaHAnKSk7CiRvcHRfaWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2ZpZWxkX29wdF9zZXEnKTsKJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRvcHRRdWVyeSxhcnJheSgkb3B0X2lkLCAkZmllbGRfaWQsICRmb3JtX2lkLCdib3hfY2hlY2tlZCcsICdldmVudHMnKSk7CiRvcHRfaWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2ZpZWxkX29wdF9zZXEnKTsKJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRvcHRRdWVyeSxhcnJheSgkb3B0X2lkLCAkZmllbGRfaWQsICRmb3JtX2lkLCdib3hfY2hlY2tlZCcsICdoYWNrIGNvcmUnKSk7CiRvcHRfaWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2ZpZWxkX29wdF9zZXEnKTsKJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRvcHRRdWVyeSxhcnJheSgkb3B0X2lkLCAkZmllbGRfaWQsICRmb3JtX2lkLCdib3hfY2hlY2tlZCcsICdyYWlscycpKTsKJG9wdF9pZCA9ICRkYi0+R2VuSUQoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGRfb3B0X3NlcScpOwokZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJG9wdFF1ZXJ5LGFycmF5KCRvcHRfaWQsICRmaWVsZF9pZCwgJGZvcm1faWQsJ2JveF91bmNoZWNrZWQnLCAnbm90IGh0bWwnKSk7CiRvcHRfaWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2ZpZWxkX29wdF9zZXEnKTsKJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRvcHRRdWVyeSxhcnJheSgkb3B0X2lkLCAkZmllbGRfaWQsICRmb3JtX2lkLCdib3hfdW5jaGVja2VkJywgJ25vdCBjb250ZW50JykpOwokb3B0X2lkID0gJGRiLT5HZW5JRChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9maWVsZF9vcHRfc2VxJyk7CiRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkb3B0UXVlcnksYXJyYXkoJG9wdF9pZCwgJGZpZWxkX2lkLCAkZm9ybV9pZCwnYm94X3VuY2hlY2tlZCcsICdub3QgZ3JhcGhpY3MnKSk7CiRvcHRfaWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2ZpZWxkX29wdF9zZXEnKTsKJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRvcHRRdWVyeSxhcnJheSgkb3B0X2lkLCAkZmllbGRfaWQsICRmb3JtX2lkLCdib3hfdW5jaGVja2VkJywgJ25vdCBtb2R1bGVzJykpOwokb3B0X2lkID0gJGRiLT5HZW5JRChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9maWVsZF9vcHRfc2VxJyk7CiRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkb3B0UXVlcnksYXJyYXkoJG9wdF9pZCwgJGZpZWxkX2lkLCAkZm9ybV9pZCwnYm94X3VuY2hlY2tlZCcsICdub3Qgc21hcnR5JykpOwokb3B0X2lkID0gJGRiLT5HZW5JRChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9maWVsZF9vcHRfc2VxJyk7CiRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkb3B0UXVlcnksYXJyYXkoJG9wdF9pZCwgJGZpZWxkX2lkLCAkZm9ybV9pZCwnYm94X3VuY2hlY2tlZCcsICdub3QgcGhwJykpOwokb3B0X2lkID0gJGRiLT5HZW5JRChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9maWVsZF9vcHRfc2VxJyk7CiRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkb3B0UXVlcnksYXJyYXkoJG9wdF9pZCwgJGZpZWxkX2lkLCAkZm9ybV9pZCwnYm94X3VuY2hlY2tlZCcsICdub3QgZXZlbnRzJykpOwokb3B0X2lkID0gJGRiLT5HZW5JRChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9maWVsZF9vcHRfc2VxJyk7CiRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkb3B0UXVlcnksYXJyYXkoJG9wdF9pZCwgJGZpZWxkX2lkLCAkZm9ybV9pZCwnYm94X3VuY2hlY2tlZCcsICdub3QgaGFjayBjb3JlJykpOwokb3B0X2lkID0gJGRiLT5HZW5JRChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9maWVsZF9vcHRfc2VxJyk7CiRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkb3B0UXVlcnksYXJyYXkoJG9wdF9pZCwgJGZpZWxkX2lkLCAkZm9ybV9pZCwnYm94X3VuY2hlY2tlZCcsICdub3QgcmFpbHMnKSk7CiRvcHRfaWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2ZpZWxkX29wdF9zZXEnKTsKJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRvcHRRdWVyeSxhcnJheSgkb3B0X2lkLCAkZmllbGRfaWQsICRmb3JtX2lkLCdjc3NfY2xhc3MnLCAnJykpOwoKJGZpZWxkX2lkID0gJGRiLT5HZW5JRChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9maWVsZF9zZXEnKTsKJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRmaWVsZFF1ZXJ5LGFycmF5KCRmaWVsZF9pZCwkZm9ybV9pZCwnU2VuZCBJdCcsICdEaXNwb3NpdGlvbkVtYWlsJywgJycsIDAsIDAsIDEpKTsKJG9wdF9pZCA9ICRkYi0+R2VuSUQoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGRfb3B0X3NlcScpOwokZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJG9wdFF1ZXJ5LGFycmF5KCRvcHRfaWQsICRmaWVsZF9pZCwgJGZvcm1faWQsJ2VtYWlsX3N1YmplY3QnLCAnRm9ybUJ1aWxkZXIgU2FtcGxlIEZvcm0gU3VibWlzc2lvbicpKTsKJG9wdF9pZCA9ICRkYi0+R2VuSUQoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGRfb3B0X3NlcScpOwokZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJG9wdFF1ZXJ5LGFycmF5KCRvcHRfaWQsICRmaWVsZF9pZCwgJGZvcm1faWQsJ2VtYWlsX2Zyb21fbmFtZScsICdGb3JtIEJ1aWxkZXIgSW5zdGFsbGF0aW9uJykpOwokb3B0X2lkID0gJGRiLT5HZW5JRChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9maWVsZF9vcHRfc2VxJyk7CiRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkb3B0UXVlcnksYXJyYXkoJG9wdF9pZCwgJGZpZWxkX2lkLCAkZm9ybV9pZCwnZW1haWxfZnJvbV9hZGRyZXNzJywgJ3lvdUB5b3VyaG9zdC5jb20nKSk7CiRvcHRfaWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2ZpZWxkX29wdF9zZXEnKTsKJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRvcHRRdWVyeSxhcnJheSgkb3B0X2lkLCAkZmllbGRfaWQsICRmb3JtX2lkLCdkZXN0aW5hdGlvbl9hZGRyZXNzJywgJ3NqZ0BjbXNtb2R1bGVzLmNvbScpKTsKJG9wdF9pZCA9ICRkYi0+R2VuSUQoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGRfb3B0X3NlcScpOwokZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJG9wdFF1ZXJ5LGFycmF5KCRvcHRfaWQsICRmaWVsZF9pZCwgJGZvcm1faWQsJ2VtYWlsX3RlbXBsYXRlJywgJ0hleSEgU29tZW9uZVwncyBmaWxsZWQgb3V0IGEgRm9ybUJ1aWxkZXIgU2FtcGxlIFN1Ym1pc3Npb24hCkZvcm0gTmFtZTogeyRzdWJfZm9ybV9uYW1lfQpEYXRlIG9mIFN1Ym1pc3Npb246IHskc3ViX2RhdGV9ClN1Ym1pc3Npb24gc2VydmVyOiB7JHN1Yl9ob3N0fQpJUCBhZGRyZXNzIG9mIHBlcnNvbiB1c2luZyBmb3JtOiB7JHN1Yl9zb3VyY2VfaXB9ClVSTCBvZiBwYWdlIGNvbnRhaW5pbmcgZm9ybTogeyRzdWJfdXJsfQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpBbmQgVGhleSBTYWlkOgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk1vZHVsZXMgdGhleVwnbGwgYmUgdXNpbmc6IHskbW9kdWxlc195b3VfbGxfYmVfdXNpbmd9CgpUaGVpciBDTVMgTVMgVGFza3M6IHskd2hhdF93aWxsX3lvdX0KCldoZXJlOiB7JHdoZXJlX2FyZV95b3VfZnJvbV99CgpDb21tZW50cyBvciBGZWVkYmFjazoKeyRkb195b3VfaGF2ZV9hbnl9CgooZW5kKScpKTsKJG9wdF9pZCA9ICRkYi0+R2VuSUQoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGRfb3B0X3NlcScpOwokZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJG9wdFF1ZXJ5LGFycmF5KCRvcHRfaWQsICRmaWVsZF9pZCwgJGZvcm1faWQsJ2VtYWlsX2VuY29kaW5nJywgJ3V0Zi04JykpOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/lang/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/en_US.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLy8gRW5nbGlzaF9VUyBMb2NhbGl6YXRpb24gRmlsZQokbGFuZ1snZnJpZW5kbHluYW1lJ10gPSAnRm9ybSBCdWlsZGVyJzsKCi8vIGZpZWxkIHR5cGVzCiRsYW5nWydmaWVsZF90eXBlXyddPSdGaWVsZCBUeXBlIE5vdCBTZXQnOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldEVuZCddID0gJy1GaWVsZHNldCBFbmQnOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldFN0YXJ0J109Jy1GaWVsZHNldCBTdGFydCc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRGaWVsZCddPSdUZXh0IElucHV0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEFyZWFGaWVsZCddPSdUZXh0IEFyZWEnOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEZpZWxkJ109J0NoZWNrIEJveCc7CiRsYW5nWydmaWVsZF90eXBlX0NoZWNrYm94R3JvdXBGaWVsZCddPSdDaGVjayBCb3ggR3JvdXAnOwokbGFuZ1snZmllbGRfdHlwZV9QdWxsZG93bkZpZWxkJ109J1B1bGxkb3duJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTXVsdGlzZWxlY3RGaWVsZCddPSdNdWx0aXNlbGVjdCc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRlUGlja2VyRmllbGQnXT0nVS5TLiBTdGF0ZSBQaWNrZXInOwokbGFuZ1snZmllbGRfdHlwZV9Db3VudHJ5UGlja2VyRmllbGQnXT0nQ291bnRyeSBQaWNrZXInOwokbGFuZ1snZmllbGRfdHlwZV9EYXRlUGlja2VyRmllbGQnXT0nRGF0ZSBQaWNrZXInOwokbGFuZ1snZmllbGRfdHlwZV9UaW1lUGlja2VyRmllbGQnXT0nVGltZSBQaWNrZXInOwokbGFuZ1snZmllbGRfdHlwZV9SYWRpb0dyb3VwRmllbGQnXT0nUmFkaW8gQnV0dG9uIEdyb3VwJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EaXJlY3RvciddPScqRW1haWwgUmVzdWx0cyBCYXNlZCBvbiBQdWxsZG93bic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWwnXT0nKkVtYWlsIFJlc3VsdHMgdG8gc2V0IEFkZHJlc3MoZXMpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbENvbmZpcm1hdGlvbiddPScqVmFsaWRhdGUtdmlhLUVtYWlsIEFkZHJlc3MnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZpbGUnXT0nKldyaXRlIFJlc3VsdHMgdG8gRmxhdCBGaWxlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EYXRhYmFzZSddPScqU3RvcmUgUmVzdWx0cyBpbiBEYXRhYmFzZSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uVXNlclRhZyddPScqQ2FsbCBBIFVzZXIgRGVmaW5lZCBUYWcgV2l0aCB0aGUgRm9ybSBSZXN1bHRzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EZWxpdmVyVG9FbWFpbEFkZHJlc3NGaWVsZCddPScqRW1haWwgdG8gVXNlci1TdXBwbGllZCBFbWFpbCBBZGRyZXNzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUGFnZUJyZWFrRmllbGQnXT0nLVBhZ2UgQnJlYWsnOwokbGFuZ1snZmllbGRfdHlwZV9GaWxlVXBsb2FkRmllbGQnXT0nRmlsZSBVcGxvYWQnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxBZGRyZXNzRmllbGQnXT0nRW1haWwgIkZyb20gQWRkcmVzcyIgRmllbGQnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxOYW1lRmllbGQnXT0nRW1haWwgIkZyb20gTmFtZSIgRmllbGQnOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0aWNUZXh0RmllbGQnXT0nLVN0YXRpYyBUZXh0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3lzdGVtTGlua0ZpZWxkJ109Jy1TdGF0aWMgTGluayc7CiRsYW5nWydmaWVsZF90eXBlX0xpbmtGaWVsZCddPSdMaW5rIChVc2VyLWVudGVyZWQpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfSGlkZGVuRmllbGQnXSA9ICdIaWRkZW4gRmllbGQnOwoKCi8vIHZhbGlkYXRpb24gdHlwZXMKJGxhbmdbJ3ZhbGlkYXRpb25fbm9uZSddPSdObyBWYWxpZGF0aW9uJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbnVtZXJpYyddPSdOdW1lcmljJzsKJGxhbmdbJ3ZhbGlkYXRpb25faW50ZWdlciddPSdJbnRlZ2VyJzsKJGxhbmdbJ3ZhbGlkYXRpb25fZW1haWxfYWRkcmVzcyddPSdFbWFpbCBBZGRyZXNzJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbXVzdF9jaGVjayddPSdNdXN0IEJlIENoZWNrZWQnOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9tYXRjaCddPSdNYXRjaCBSZWd1bGFyIEV4cHJlc3Npb24nOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9ub21hdGNoJ109J0RvZXNuXCd0IG1hdGNoIFJlZ3VsYXIgRXhwcmVzc2lvbic7CgovLyB2YWxpZGF0aW9uIGVycm9yIG1lc3NhZ2VzIGFuZCBvdGhlciBhbGVydHMKJGxhbmdbJ3JlcXVpcmVkX2ZpZWxkX21pc3NpbmcnXSA9ICdBIHZhbHVlIHdhcyBub3Qgc3VwcGxpZWQgZm9yIGEgcmVxdWlyZWQgZmllbGQnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfdmFsdWUnXT0nUGxlYXNlIGVudGVyIGEgdmFsdWUgZm9yICIlcyInOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfbnVtYmVyJ109J1BsZWFzZSBlbnRlciBhIG51bWJlciBmb3IgIiVzIic7CiRsYW5nWydwbGVhc2VfZW50ZXJfdmFsaWQnXSA9ICdQbGVhc2UgZW50ZXIgYSB2YWxpZCBlbnRyeSBmb3IgIiVzIic7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5faW50ZWdlciddPSdQbGVhc2UgZW50ZXIgYW4gaW50ZWdlciB2YWx1ZSBmb3IgIiVzIic7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5fZW1haWwnXT0nUGxlYXNlIGVudGVyIGEgdmFsaWQgZW1haWwgYWRkcmVzcyBmb3IgIiVzIic7CiRsYW5nWydub3RfdmFsaWRfZW1haWwnXT0nIiVzIiBkb2VzIG5vdCBhcHBlYXIgdG8gYmUgYSB2YWxpZCBlbWFpbCBhZGRyZXNzISc7CiRsYW5nWydwbGVhc2VfZW50ZXJfbm9fbG9uZ2VyJ109J1BsZWFzZSBlbnRlciBhIHZhbHVlIHRoYXQgaXMgbm8gbG9uZ2VyIHRoYW4gJXMgY2hhcmFjdGVycyc7CiRsYW5nWyd0aXRsZV9saXN0X2RlbGltaXRlciddID0gJ0NoYXJhY3RlciB0byB1c2UgYXMgZGVsaW1pdGVyIGluIHJlc3VsdHMgdGhhdCByZXR1cm4gbW9yZSB0aGFuIG9uZSB2YWx1ZSc7CiRsYW5nWyd5b3VfbmVlZF9wZXJtaXNzaW9uJ109J1lvdSBuZWVkIHRoZSAiJXMiIHBlcm1pc3Npb24gdG8gcGVyZm9ybSB0aGF0IG9wZXJhdGlvbi4nOwokbGFuZ1snbGFja3Blcm1pc3Npb24nXT0nU29ycnkhIFlvdSBkb25cJ3QgaGF2ZSBhZGVxdWF0ZSBwcml2aWxlZ2VzIHRvIGFjY2VzcyB0aGlzIHNlY3Rpb24uJzsKJGxhbmdbJ2ZpZWxkX29yZGVyX3VwZGF0ZWQnXT0nRmllbGQgb3JkZXIgdXBkYXRlZC4nOwokbGFuZ1snZm9ybV9kZWxldGVkJ109J0Zvcm0gZGVsZXRlZC4nOwokbGFuZ1snZmllbGRfZGVsZXRlZCddPSdGaWVsZCBkZWxldGVkLic7CiRsYW5nWydjb25maWd1cmF0aW9uX3VwZGF0ZWQnXT0nQ29uZmlndXJhdGlvbiBVcGRhdGVkLic7CiRsYW5nWyd5b3VfbXVzdF9jaGVjayddPSdZb3UgbXVzdCBjaGVjayAiJXMiIGluIG9yZGVyIHRvIGNvbnRpbnVlLic7CiRsYW5nWydtdXN0X3NwZWNpZnlfb25lX2Rlc3RpbmF0aW9uJ109J1lvdSBuZWVkIHRvIHNwZWNpZnkgYXQgbGVhc3Qgb25lIGRlc3RpbmF0aW9uIGFkZHJlc3MhJzsKJGxhbmdbJ2FyZV95b3Vfc3VyZV9kZWxldGVfZm9ybSddPSdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoZSBmb3JtICVzPyc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2ZpZWxkJ109J0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgdGhlIGZpZWxkICVzPyc7CiRsYW5nWydub3RpY2Vfc2VsZWN0X3R5cGUnXT0nQWR2YW5jZWQgb3B0aW9ucyBhcmUgbm90IGF2YWlsYWJsZSB1bnRpbCB0aGUgZmllbGQgdHlwZSBoYXMgYmVlbiBzZXQuJzsKJGxhbmdbJ2ZpZWxkX25hbWVfaW5fdXNlJ109J1RoZSBmaWVsZCBuYW1lICIlcyIgaXMgYWxyZWFkeSBpbiB1c2UuIFBsZWFzZSB1c2UgdW5pcXVlIGZpZWxkIG5hbWVzLic7CgovLyBhYmJyZXZpYXRpb25zLCB2ZXJicywgYW5kIG90aGVyIGdlbmVyYWwgdGVybXMKJGxhbmdbJ2Fub255bW91cyddID0gJ0Fub255bW91cyc7CiRsYW5nWydhYmJyZXZpYXRpb25fbGVuZ3RoJ109J0xlbjogJXMnOwokbGFuZ1snYm94ZXMnXT0nJXMgYm94ZXMnOwokbGFuZ1snb3B0aW9ucyddPSclcyBvcHRpb25zJzsKJGxhbmdbJ3RleHRfbGVuZ3RoJ109JyVzIGNoYXJzLic7CiRsYW5nWydvcmRlciddPSdPcmRlcic7CiRsYW5nWyd1bnNwZWNpZmllZCddPSdbdW5zcGVjaWZpZWRdJzsKJGxhbmdbJ2FkZGVkJ109J2FkZGVkJzsKJGxhbmdbJ3VwZGF0ZWQnXT0ndXBkYXRlZCc7CiRsYW5nWydzZWxlY3Rfb25lJ109J1NlbGVjdCBPbmUnOwokbGFuZ1snc2VsZWN0X3R5cGUnXT0nU2VsZWN0IFR5cGUnOwokbGFuZ1sndG8nXT0nVG8nOwokbGFuZ1sneWVzJ109J1llcyc7CiRsYW5nWydubyddPSdObyc7CiRsYW5nWydyZWNpcGllbnRzJ109J3JlY2lwaWVudHMnOwokbGFuZ1snZGVzdGluYXRpb25fY291bnQnXSA9ICclcyBkZXN0aW5hdGlvbnMnOwokbGFuZ1snc2F2ZSddPSdTYXZlJzsKJGxhbmdbJ2FkZCddPSdBZGQnOwokbGFuZ1sndXBkYXRlJ109J1VwZGF0ZSc7CiRsYW5nWydzYXZlX2FuZF9jb250aW51ZSddPSdTYXZlIGFuZCBDb250aW51ZSBFZGl0aW5nJzsKJGxhbmdbJ2luZm9ybWF0aW9uJ109J0luZm9ybWF0aW9uJzsKJGxhbmdbJ2F1dG9tYXRpYyddPSdBdXRvbWF0aWMnOwokbGFuZ1snZm9ybXMnXT0nRm9ybXMnOwokbGFuZ1snZm9ybSddPSdGb3JtICVzJzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb24nXT0nQ29uZmlndXJhdGlvbic7CiRsYW5nWyd0YWJfbWFpbiddPSdNYWluJzsKJGxhbmdbJ3RhYl9hZGRpdGlvbmFsJ109J0Zvcm0gU2V0dGluZ3MnOwokbGFuZ1sndGFiX2FkdmFuY2VkJ109J0FkdmFuY2VkIFNldHRpbmdzJzsKJGxhbmdbJ3RhYl90YWJsZWxheW91dCddPSdUYWJsZS1iYXNlZCBMYXlvdXQgT3B0aW9ucyc7CiRsYW5nWyd0YWJfdGVtcGxhdGVsYXlvdXQnXSA9ICdUZW1wbGF0ZSBMYXlvdXQgT3B0aW9ucyc7CiRsYW5nWydmaWVsZF9yZXF1aXJlbWVudF91cGRhdGVkJ10gPSAnRmllbGQgcmVxdWlyZWQgc3RhdGUgdXBkYXRlZC4nOwokbGFuZ1snbWF4aW11bV9zaXplJ109J01heC4gU2l6ZSc7CiRsYW5nWydwZXJtaXR0ZWRfZXh0ZW5zaW9ucyddPSdFeHRlbnNpb25zJzsKJGxhbmdbJ3Blcm1pdHRlZF9maWxldHlwZXMnXT0nQWxsb3dlZCBmaWxlIHR5cGVzJzsKJGxhbmdbJ2ZpbGVfdG9vX2xhcmdlJ109J1VwbG9hZGVkIGZpbGUgaXMgdG9vIGxhcmdlISBNYXhpbXVtIHNpemUgaXM6JzsKJGxhbmdbJ2lsbGVnYWxfZmlsZV90eXBlJ109J1RoaXMgdHlwZSBvZiBmaWxlIG1heSBub3QgYmUgdXBsb2FkZWQuIFBsZWFzZSBjaGVjayB0aGF0IHRoZSBleHRlbnNpb24gaXMgY29ycmVjdC4nOwokbGFuZ1sndXBsb2FkJ10gPSAnVXBsb2FkJzsKJGxhbmdbJ2Zvcm1faW1wb3J0ZWQnXSA9ICdGb3JtIEltcG9ydGVkLic7CiRsYW5nWydmb3JtX2ltcG9ydF9mYWlsZWQnXSA9ICdGb3JtIGltcG9ydCBmYWlsZWQhIFRoZXJlIHdhcyBhIHByb2JsZW0gd2l0aCB0aGUgZm9ybWF0IG9mIHRoZSBYTUwgZmlsZS4nOwoKJGxhbmdbJ3VuaW5zdGFsbGVkJ10gPSAnTW9kdWxlIHVuaW5zdGFsbGVkLic7CiRsYW5nWydpbnN0YWxsZWQnXSA9ICdNb2R1bGUgdmVyc2lvbiAlcyBpbnN0YWxsZWQuJzsKJGxhbmdbJ3VwZ3JhZGVkJ10gPSAnTW9kdWxlIHVwZ3JhZGVkIHRvIHZlcnNpb24gJXMuJzsKCiRsYW5nWydidXR0b25fcHJldmlvdXMnXSA9ICdCYWNrLi4uJzsKJGxhbmdbJ2J1dHRvbl9zdWJtaXQnXSA9ICdTdWJtaXQgRm9ybSc7CiRsYW5nWydidXR0b25fY29udGludWUnXSA9ICdDb250aW51ZS4uLic7CgokbGFuZ1sndmFsdWVfY2hlY2tlZCddID0gJ0NoZWNrZWQnOwokbGFuZ1sndmFsdWVfdW5jaGVja2VkJ10gPSAnVW5jaGVja2VkJzsKCiRsYW5nWydhZGRfb3B0aW9ucyddID0gJ0FkZCBNb3JlIE9wdGlvbnMnOwokbGFuZ1snZGVsZXRlX29wdGlvbnMnXSA9ICdEZWxldGUgTWFya2VkIE9wdGlvbnMnOwokbGFuZ1snYWRkX2NoZWNrYm94ZXMnXSA9ICdBZGQgTW9yZSBDaGVja2JveGVzJzsKJGxhbmdbJ2RlbGV0ZV9jaGVja2JveGVzJ10gPSAnRGVsZXRlIE1hcmtlZCBDaGVja2JveGVzJzsKJGxhbmdbJ2FkZF9hZGRyZXNzJ10gPSAnQWRkIEFub3RoZXIgQWRkcmVzcyc7CiRsYW5nWydkZWxldGVfYWRkcmVzcyddID0gJ0RlbGV0ZSBNYXJrZWQgQWRkcmVzc2VzJzsKJGxhbmdbJ2FkZF9kZXN0aW5hdGlvbiddID0gJ0FkZCBBbm90aGVyIERlc3RpbmF0aW9uJzsKJGxhbmdbJ2RlbGV0ZV9kZXN0aW5hdGlvbiddID0gJ0RlbGV0ZSBNYXJrZWQgRGVzdGluYXRpb25zJzsKJGxhbmdbJ3N1c3BlY3RlZF9zcGFtJ10gPSAnVG9vIG1hbnkgZW1haWxzIGdlbmVyYXRlZCBmcm9tIHlvdXIgSVAgYWRkcmVzcy4gQW50aS1TcGFtIGNvZGUgaGFzIHByZXZlbnRlZCBkZWxpdmVyeS4nOwokbGFuZ1snc3VzcGVjdGVkX3NwYW1fbG9nJ10gPSAnU3VzcGVjdGVkIHNwYW0gZnJvbSBJUCAlcyBzdG9wcGVkLic7CgovLyBGaWVsZCBBdHRyaWJ1dGUgVGl0bGVzCiRsYW5nWyd0aXRsZV91ZHRfbmFtZSddID0gJ1VzZXIgRGVmaW5lZCBUYWcnOwokbGFuZ1sndGl0bGVfdXBsb2Fkc19kZXN0cGFnZSddID0gJ1BhZ2UgdG8gcmV0dXJuIHRvIHdpdGggdXBsb2FkcyBsaW5rJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZG1vZHVsZV9zdW1tYXJ5J10gPSAnU3VibWl0dGVkIHdpdGggZm9ybWJ1aWxkZXInOwokbGFuZ1sndGl0bGVfdXBsb2Fkc19jYXRlZ29yeSddID0gJ1VwbG9hZHMgY2F0ZWdvcnknOwokbGFuZ1sndGl0bGVfc2VuZHRvX3VwbG9hZHMnXSA9ICdTZW5kIHRoaXMgZmlsZSB0byB0aGUgdXBsb2FkcyBtb2R1bGUnOwokbGFuZ1sndGl0bGVfbGVnZW5kJ10gPSAnTGVnZW5kJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fbGVuZ3RoJ109J01heGltdW0gTGVuZ3RoJzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2xhYmVsJ109J0NoZWNrYm94IGxhYmVsJzsKJGxhbmdbJ3RpdGxlX2NoZWNrZWRfdmFsdWUnXT0nVmFsdWUgd2hlbiBjaGVja2VkJzsKJGxhbmdbJ3RpdGxlX3VuY2hlY2tlZF92YWx1ZSddPSdWYWx1ZSB3aGVuIG5vdCBjaGVja2VkLic7CiRsYW5nWyd0aXRsZV9jaGVja2JveF9kZXRhaWxzJ109J0NoZWNrYm94IEdyb3VwIERldGFpbHMnOwokbGFuZ1sndGl0bGVfZGVsZXRlJ10gPSAnRGVsZXRlPyc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rfb25lX21lc3NhZ2UnXT0nIlNlbGVjdCBPbmUiIFRleHQnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX3N1YmplY3QnXT0nU2VsZWN0aW9uIFN1YmplY3QnOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfY291bnRyeSddPSdEZWZhdWx0IFNlbGVjdGlvbic7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9zdGF0ZSddPSdEZWZhdWx0IFNlbGVjdGlvbic7CiRsYW5nWyd0aXRsZV9vcHRpb25fbmFtZSddPSJPcHRpb24gTmFtZSI7CiRsYW5nWyd0aXRsZV9vcHRpb25fdmFsdWUnXT0iVmFsdWUgU3VibWl0dGVkIjsKJGxhbmdbJ3RpdGxlX3B1bGxkb3duX2RldGFpbHMnXT0nUHVsbGRvd24gT3B0aW9ucyc7CiRsYW5nWyd0aXRsZV9tdWx0aXNlbGVjdF9kZXRhaWxzJ109J011bHRpc2VsZWN0IE9wdGlvbnMnOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fYWRkcmVzcyddPSdEZXN0aW5hdGlvbiBFbWFpbCBBZGRyZXNzJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fbmFtZSddPSciRnJvbSBuYW1lIiBmb3IgZW1haWwnOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9lbWFpbF9yZWdleCddPSdVc2UgcmVsYXhlZCBlbWFpbCB2YWxpZGF0aW9uJzsKJGxhbmdbJ3RpdGxlX3JlbGF4ZWRfcmVnZXhfbG9uZyddPSdVc2UgcmVsYXhlZCBlbWFpbCBhZGRyZXNzIHZhbGlkYXRpb24gKGUuZy4sIGFsbG93ICJ4QHkiIGluc3RlYWQgb2YgcmVxdWlyaW5nICJ4QHkudGxkIiknOwokbGFuZ1sndGl0bGVfZW1haWxfZnJvbV9hZGRyZXNzJ109JyJGcm9tIGFkZHJlc3MiIGZvciBlbWFpbCc7CiRsYW5nWyd0aXRsZV9lbWFpbF9lbmNvZGluZyddPSdFbWFpbCBjaGFyYWN0ZXIgc2V0IGVuY29kaW5nJzsKJGxhbmdbJ3RpdGxlX2RpcmVjdG9yX2RldGFpbHMnXT0nUHVsbGRvd24tYmFzZWQgRW1haWxlciBEZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfbmFtZSddPSdGaWxlIE5hbWUnOwokbGFuZ1sndGl0bGVfZW1haWxfc3ViamVjdCddPSdFbWFpbCBTdWJqZWN0IExpbmUnOwokbGFuZ1sndGl0bGVfZm9ybV9uYW1lJ109J0Zvcm0gTmFtZSc7CiRsYW5nWyd0aXRsZV9mb3JtX3N0YXR1cyddPSdGb3JtIFN0YXR1cyc7CiRsYW5nWyd0aXRsZV9yZWFkeV9mb3JfZGVwbG95bWVudCddPSdSZWFkeSBmb3IgRGVwbG95bWVudCc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkxJ109J05vdCBSZWFkeSc7CiRsYW5nWyd0aXRsZV9yZWRpcmVjdF9wYWdlJ109J1BhZ2UgdG8gcmVkaXJlY3QgdG8gYWZ0ZXIgZm9ybSBzdWJtaXNzaW9uJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTInXT0nUGxlYXNlIGFkZCBhIGZpZWxkIHRvIHRoZSBmb3JtIHNvIHRoYXQgdGhlIHVzZXJcJ3MgaW5wdXQgZ2V0cyBoYW5kbGVkLiBZb3UgY2FuJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeV9saW5rJ109J3VzZSB0aGlzIHNob3J0Y3V0JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fYWxpYXMnXT0nRm9ybSBBbGlhcyc7CiRsYW5nWyd0aXRsZV9mb3JtX2ZpZWxkcyddPSdGb3JtIEZpZWxkcyc7CiRsYW5nWyd0aXRsZV9maWVsZF9uYW1lJ109J0ZpZWxkIE5hbWUnOwokbGFuZ1sndGl0bGVfcmFkaW9ncm91cF9kZXRhaWxzJ109J1JhZGlvIEJ1dHRvbiBHcm91cCBEZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3R5cGUnXT0nRmllbGQgVHlwZSc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkzJ109J3RvIGNyZWF0ZSBhIGZvcm0gaGFuZGxpbmcgZmllbGQuJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fYWxpYXMnXT0nRm9ybSBBbGlhcyc7CiRsYW5nWyd0aXRsZV9hZGRfbmV3X2Zvcm0nXT0nQWRkIE5ldyBGb3JtJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbiddPSdTaG93IEZvcm0gQnVpbGRlciBWZXJzaW9uPyc7CiRsYW5nWyd0aXRsZV9zaG93X3ZlcnNpb25fbG9uZyddPSdUaGlzIHdpbGwgZW1iZWQgeW91ciBpbnN0YWxsZWQgdmVyc2lvbiBudW1iZXIgb2YgRm9ybSBCdWlsZGVyIG1vZHVsZSBpbiBhIGNvbW1lbnQsIHRvIGFpZCBpbiBkZWJ1Z2dpbmcnOwokbGFuZ1sndGl0bGVfYWRkX25ld19maWVsZCddPSdBZGQgTmV3IEZpZWxkJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fc3VibWl0X2J1dHRvbiddPSdGb3JtIFN1Ym1pdCBCdXR0b24gVGV4dCc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eSddPSdBZGQgSmF2YXNjcmlwdCB0byBTdWJtaXQgQnV0dG9uIHRvIHByZXZlbnQgbXVsdGlwbGUgc3VibWlzc2lvbnM/JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5X2hlbHAnXT0nQWRkIHNhZmV0eSBzY3JpcHQnOwokbGFuZ1sndGl0bGVfZm9ybV9uZXh0X2J1dHRvbiddPSdGb3JtICJOZXh0IiBCdXR0b24gVGV4dCAodXNlZCBmb3IgbXVsdGlwYWdlIGZvcm1zKSc7CiRsYW5nWyd0aXRsZV9mb3JtX3ByZXZfYnV0dG9uJ10gPSAnRm9ybSAiUHJldmlvdXMiIEJ1dHRvbiBUZXh0ICh1c2VkIGZvciBtdWx0aXBhZ2UgZm9ybXMpJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3ZhbGlkYXRpb24nXT0nRmllbGQgVmFsaWRhdGlvbic7CiRsYW5nWyd0aXRsZV9mb3JtX2Nzc19jbGFzcyddPSdDU1MgQ2xhc3MgZm9yIHRoaXMgZm9ybSc7CiRsYW5nWyd0aXRsZV9maWVsZF9jc3NfY2xhc3MnXT0nQ1NTIENsYXNzIGZvciB0aGlzIGZpZWxkJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcmVxdWlyZWRfc3ltYm9sJ109J1N5bWJvbCB0byBtYXJrIHJlcXVpcmVkIEZpZWxkcyc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZCddPSdSZXF1aXJlZCc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9sb25nJ109J1JlcXVpcmUgYSByZXNwb25zZSBmb3IgdGhpcyBGaWVsZCc7CiRsYW5nWyd0aXRsZV9oaWRlX2xhYmVsJ109J0hpZGUgTGFiZWwnOwokbGFuZ1sndGl0bGVfaGlkZV9sYWJlbF9sb25nJ109J0hpZGUgdGhpcyBmaWVsZFwncyBuYW1lIG9uIEZvcm0nOwokbGFuZ1sndGl0bGVfdGV4dCddPSdTdGF0aWMgdGV4dCB0byBkaXNwbGF5JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlZ2V4J109J1ZhbGlkYXRpb24gUmVnZXgnOwokbGFuZ1sndGl0bGVfbGluZXNfdG9fc2hvdyddID0gJ051bWJlciBvZiBMaW5lcyB0byBkaXNwbGF5JzsKJGxhbmdbJ25vX2RlZmF1bHQnXT0nTm8gRGVmYXVsdCc7CiRsYW5nWydyZWRpcmVjdF9hZnRlcl9hcHByb3ZhbCddPSdQYWdlIHRvIHJlZGlyZWN0IGFmdGVyIGFwcHJvdmFsJzsKJGxhbmdbJ3RpdGxlX3JlZ2V4X2hlbHAnXT0nVGhpcyByZWd1bGFyIGV4cHJlc3Npb24gd2lsbCBvbmx5IGJlIHVzZWQgaWYgInZhbGlkYXRpb24gdHlwZSIgaXMgc2V0IHRvIGEgcmVnZXgtcmVsYXRlZCBvcHRpb24uIEluY2x1ZGUgYSBmdWxsIFBlcmwtc3R5bGUgcmVnZXgsIGluY2x1ZGluZyB0aGUgc3RhcnQvc3RvcCBzbGFzaGVzIGFuZCBmbGFncyAoZS5nLiwgIi9pbWFnZVwuKFxkKykvaSIpJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2FiYnJldiddPSdSZXFcJ2QnOwokbGFuZ1sndGl0bGVfdGl0bGVfcG9zaXRpb24nXT0nRmllbGQgVGl0bGUgUG9zaXRpb24gKG5vbi1DU1MgTGF5b3V0IG9ubHkpJzsKJGxhbmdbJ3RpdGxlX3RhYmxlX2xheW91dF9sZWZ0J109J1RpdGxlIG9uIExlZnQnOwokbGFuZ1sndGl0bGVfdGFibGVfbGF5b3V0X2Fib3ZlJ109J1RpdGxlIEFib3ZlJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzJ109J0hpZGUgRXJyb3JzJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fZGlzcGxheXR5cGUnXSA9ICdGb3JtIERpc3BsYXkgVHlwZSc7CiRsYW5nWyd0aXRsZV9oaWRlX2Vycm9yc19sb25nJ109J1ByZXZlbnQgZGVidWcgLyBlcnJvciBtZXNzYWdlcyBmcm9tIGJlaW5nIHNlZW4gYnkgdXNlcnMuJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX3RlbXBsYXRlJ109J0VtYWlsIFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZSddPSdNYXhpbXVtIHVwbG9hZCBmaWxlIHNpemUgKGtpbG9ieXRlcyknOwokbGFuZ1sndGl0bGVfbWF4aW11bV9zaXplX2xvbmcnXSA9ICdUaGlzIGxpbWl0YXRpb24gaXMgaW4gYWRkaXRpb24gdG8gYW55IGxpbWl0cyBzZXQgYnkgdGhlIHBocCBvciB3ZWIgc2VydmVyIGNvbmZpZ3VyYXRpb24nOwokbGFuZ1sndGl0bGVfcGVybWl0dGVkX2V4dGVuc2lvbnMnXT0nUGVybWl0dGVkIEV4dGVuc2lvbnMnOwokbGFuZ1sndGl0bGVfcGVybWl0dGVkX2V4dGVuc2lvbnNfbG9uZyddPSdFbnRlciBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0LCBleGNsdWRpbmcgdGhlIGRvdCAoZS5nLiwgImpwZyxnaWYsanBlZyIpLiBTcGFjZXMgd2lsbCBiZSBpZ25vcmVkLiBMZWF2aW5nIHRoaXMgYmxhbmsgbWVhbnMgdGhlcmUgd2lsbCBiZSBubyByZXN0cmljdGlvbnMuJzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnMnXT0nRGlzcGxheSByZXN0cmljdGlvbnM/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnNfbG9uZyddPSdEaXNwbGF5IGFueSBzaXplIGFuZCBleHRlbnNpb24gcmVzdHJpY3Rpb25zIHdpdGggdGhlIHVwbG9hZCBmaWVsZD8nOwokbGFuZ1sndGl0bGVfZm9ybV90ZW1wbGF0ZSddPSdUZW1wbGF0ZSB0byB1c2UgdG8gRGlzcGxheSBGb3JtJzsKJGxhbmdbJ3RpdGxlX3BhZ2VfeF9vZl95J10gPSAnUGFnZSAlcyBvZiAlcyc7CiRsYW5nWyd0aXRsZV9ub19hZHZhbmNlZF9vcHRpb25zJ109J0ZpZWxkIGhhcyBubyBhZHZhbmNlZCBvcHRpb25zLic7CiRsYW5nWyd0aXRsZV9mb3JtX3Vuc3BlY2lmaWVkJ109J1RleHQgdG8gcmV0dXJuIGZvciB1bnNwZWNpZmllZCBmaWVsZCB2YWx1ZXMnOwokbGFuZ1sndGl0bGVfZW5hYmxlX2Zhc3RhZGRfbG9uZyddPSdFbmFibGUgZmFzdCBmaWVsZCBhZGRpbmcgcHVsbGRvd24gZm9yIGZvcm1zPyc7CiRsYW5nWyd0aXRsZV9lbmFibGVfZmFzdGFkZCddPSdFbmFibGUgZmFzdCBmaWVsZCBhZGQgcHVsbGRvd24/JzsKJGxhbmdbJ3RpdGxlX2Zhc3RhZGQnXT0nRmFzdCBmaWVsZCBhZGRlcic7CiRsYW5nWyd0aXRsZV9lbmFibGVfYW50aXNwYW1fbG9uZyddPSdDbGlja2luZyB0aGlzIHdpbGwgb25seSBhbGxvdyAxMCBlbWFpbHMgdG8gYmUgdHJpZ2dlcmVkIGZyb20gYSBnaXZlbiBJUCBhZGRyZXNzIChwZXIgaG91cikuJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9hbnRpc3BhbSddPSdFbmFibGUgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcz8nOwokbGFuZ1sndGl0bGVfeG1sX3RvX3VwbG9hZCddPSdVcGxvYWQgZm9ybSBhcyBYTUwgZmlsZSc7CiRsYW5nWyd0aXRsZV9odG1sX2VtYWlsJ109J0dlbmVyYXRlIEhUTUwgZW1haWw/JzsKJGxhbmdbJ3RpdGxlX2xpbmtfYXV0b3BvcHVsYXRlJ109J0F1dG9tYXRpY2FsbHkgcG9wdWxhdGU/JzsKJGxhbmdbJ3RpdGxlX2xpbmtfYXV0b3BvcHVsYXRlX2hlbHAnXT0nQXV0b21hdGljYWxseSBwb3B1bGF0ZSB3aXRoIHRoZSBVUkwgb2YgdGhlIHBhZ2UgY29udGFpbmluZyB0aGUgZm9ybT8gKHRoaXMgb3ZlcnJpZGVzIHNpdGUgcGFnZSBsaW5rIG9wdGlvbiBiZWxvdyknOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9saW5rJ109J0RlZmF1bHQgbGluayBVUkwnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9saW5rX3RpdGxlJ109J0RlZmF1bHQgbGluayB0ZXh0JzsKJGxhbmdbJ3RpdGxlX2xpbmtfdG9fc2l0ZXBhZ2UnXT0nTGluayB0byBzaXRlIHBhZ2UnOwoKJGxhbmdbJ2xpbmtfbGFiZWwnXT0nTGluayBMYWJlbCc7CiRsYW5nWydsaW5rX2Rlc3RpbmF0aW9uJ109J0xpbmsgRGVzdGluYXRpb24gVVJMJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfc2V0J109J0NoZWNrZWQgYnkgRGVmYXVsdD8nOwokbGFuZ1sndGl0bGVfMjRfaG91ciddPSdVc2UgMjQtaG91ciBjbG9jaz8nOwokbGFuZ1sndGl0bGVfYmVmb3JlX25vb24nXSA9ICdBTSc7CiRsYW5nWyd0aXRsZV9hZnRlcl9ub29uJ10gPSAnUE0nOwoKJGxhbmdbJ2hlbHBfdmFyaWFibGVzX2Zvcl90ZW1wbGF0ZSddPSdWYXJpYWJsZXMgRm9yIFRlbXBsYXRlJzsKJGxhbmdbJ2hlbHBfc3VibWlzc2lvbl9kYXRlJ109J0RhdGUgb2YgU3VibWlzc2lvbic7CiRsYW5nWydoZWxwX3NlcnZlcl9uYW1lJ109J1lvdXIgc2VydmVyJzsKJGxhbmdbJ2hlbHBfc3ViX3NvdXJjZV9pcCddPSdJUCBhZGRyZXNzIG9mIHBlcnNvbiB1c2luZyBmb3JtJzsKJGxhbmdbJ2hlbHBfc3ViX3VybCddPSdVUkwgb2YgcGFnZSBjb250YWluaW5nIGZvcm0nOwokbGFuZ1snaGVscF9vdGhlcl9maWVsZHMnXT0nT3RoZXIgZmllbGRzIHdpbGwgYmUgYXZhaWxhYmxlIGFzIHlvdSBhZGQgdGhlbSB0byB0aGUgZm9ybS4nOwokbGFuZ1snaGVscF9kYXRlX2Zvcm1hdCddPSdTZWUgPGEgaHJlZj0iaHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5kYXRlLnBocCIgdGFyZ2V0PV9ORVc+dGhlIFBIUCBNYW51YWw8L2E+IGZvciBmb3JtYXR0aW5nIGhlbHAuJzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVfbmFtZSddPSdWYXJpYWJsZSc7CiRsYW5nWydoZWxwX2Zvcm1fZmllbGQnXT0nRmllbGQgUmVwcmVzZW50ZWQnOwokbGFuZ1snbGlua19iYWNrX3RvX2Zvcm0nXT0nJiMxNzE7IEJhY2sgdG8gRm9ybSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX3RlbXBsYXRlJ109J0NyZWF0ZSBTYW1wbGUgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9odG1sX3RlbXBsYXRlJ109J0NyZWF0ZSBTYW1wbGUgSFRNTC1FbWFpbCBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2hlYWRlciddPSdDcmVhdGUgU2FtcGxlIEhlYWRlcic7CiRsYW5nWydoZWxwX3RhYl9zeW1ib2wnXT0nYSB0YWIgY2hhcmFjdGVyJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfdGVtcGxhdGUnXT0nVGVtcGxhdGUgZm9yIG9uZSBsaW5lIG9mIG91dHB1dCBmaWxlJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfaGVhZGVyJ109J1RlbXBsYXRlIGZvciB0aGUgaGVhZGVyIG9mIG91dHB1dCBmaWxlJzsKJGxhbmdbJ3RpdGxlX2NvbmZpcm1hdGlvbl91cmwnXT0nVVJMIHRvIGNsaWNrIGZvciBmb3JtIGNvbmZpcm1hdGlvbic7CiRsYW5nWydub19yZWZlcnJlcl9pbmZvJ109J05vIEhUVFBfUkVGRVJFUiBpbmZvIGF2YWlsYWJsZSAocHJvYmFibHkgZHVlIHRvIHVzZSBvZiBVc2VyIEVtYWlsIFZhbGlkYXRpb24pJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcGFyYW1fZXJyb3InXT0nVmFsaWRhdGlvbiBQYXJhbWV0ZXIgRXJyb3IuIFBsZWFzZSBtYWtlIHN1cmUgeW91IGNvcHkgdGhlIFVSTCBmcm9tIHlvdXIgZW1haWwgY29ycmVjdGx5ISc7CiRsYW5nWyd2YWxpZGF0aW9uX3Jlc3BvbnNlX2Vycm9yJ109J1ZhbGlkYXRpb24gUmVwc29uc2UgRXJyb3IuIFBsZWFzZSBtYWtlIHN1cmUgeW91IGNvcHkgdGhlIFVSTCBmcm9tIHlvdXIgZW1haWwgY29ycmVjdGx5ISc7CiRsYW5nWyd2YWxpZGF0aW9uX25vX2ZpZWxkX2Vycm9yJ109J1ZhbGlkYXRpb24gUmVwc29uc2UgRXJyb3IuIE5vIGVtYWlsIHZhbGlkYXRpb24gZmllbGQgaW4gdGhpcyBmb3JtISc7CgokbGFuZ1sndGl0bGVfZGF0ZV9mb3JtYXQnXT0nRGF0ZSBGb3JtYXQgKHN0YW5kYXJkIDxhIGhyZWY9Imh0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24uZGF0ZS5waHAiPlBIUCBEYXRlIEZvcm1hdHM8L2E+KSc7CiRsYW5nWyd0aXRsZV91c2Vfd3lzaXd5ZyddPSdVc2UgV1lTSVdZRyBlZGl0b3IgZm9yIHRleHQgQXJlYT8nOwoKJGxhbmdbJ2Rpc3B0eXBlX3RhYmxlJ109J1RhYmxlL0NTUyc7CiRsYW5nWydkaXNwdHlwZV9jc3MnXT0nUHVyZSBDU1MnOwokbGFuZ1snZGlzcHR5cGVfdGVtcGxhdGUnXT0nQ3VzdG9tIFRlbXBsYXRlJzsKCiRsYW5nWydhZG1pbmRlc2MnXT0nQWRkLCBlZGl0IGFuZCBtYW5hZ2UgaW50ZXJhY3RpdmUgRm9ybXMnOwoKJGxhbmdbJ2RhdGVfamFudWFyeSddPSdKYW51YXJ5JzsKJGxhbmdbJ2RhdGVfZmVicnVhcnknXT0nRmVicnVhcnknOwokbGFuZ1snZGF0ZV9tYXJjaCddPSdNYXJjaCc7CiRsYW5nWydkYXRlX2FwcmlsJ109J0FwcmlsJzsKJGxhbmdbJ2RhdGVfbWF5J109J01heSc7CiRsYW5nWydkYXRlX2p1bmUnXT0nSnVuZSc7CiRsYW5nWydkYXRlX2p1bHknXT0nSnVseSc7CiRsYW5nWydkYXRlX2F1Z3VzdCddPSdBdWd1c3QnOwokbGFuZ1snZGF0ZV9zZXB0ZW1iZXInXT0nU2VwdGVtYmVyJzsKJGxhbmdbJ2RhdGVfb2N0b2JlciddPSdPY3RvYmVyJzsKJGxhbmdbJ2RhdGVfbm92ZW1iZXInXT0nTm92ZW1iZXInOwokbGFuZ1snZGF0ZV9kZWNlbWJlciddPSdEZWNlbWJlcic7CgokbGFuZ1snc3VibWlzc2lvbl9lcnJvciddID0gJ1NvcnJ5ISBUaGVyZSB3YXMgYW4gZXJyb3IgaGFuZGxpbmcgeW91ciBmb3JtIHN1Ym1pc3Npb24uJzsKJGxhbmdbJ3N1Ym1pdF9lcnJvciddPSdGb3JtQnVpbGRlciBzdWJtaXQgZXJyb3I6ICVzJzsKJGxhbmdbJ3VwbG9hZHNfZXJyb3InXSA9ICdFcnJvciBjb21taXR0aW5nIGZpbGUgdG8gdGhlIHVwbG9hZHMgbW9kdWxlOiAlcyc7CiRsYW5nWydub3VwbG9hZHNfZXJyb3InXSA9ICdDb3VsZCBub3QgZmluZCB0aGUgdXBsb2FkcyBtb2R1bGUnOwokbGFuZ1sndXBsb2FkX2F0dGFjaF9lcnJvciddID0gJ1VwbG9hZC9BdHRhY2htZW50IGVycm9yIG9uIGZpbGUgJXMgKHRtcF9uYW1lOiAlcywgb2YgdHlwZSAlcyknOwokbGFuZ1snc3VibWlzc2lvbl9lcnJvcl9maWxlX2xvY2snXSA9ICdFcnJvci4gVW5hYmxlIHRvIG9idGFpbiBsb2NrIGZvciBmaWxlLic7CgokbGFuZ1snZW1haWxfZGVmYXVsdF90ZW1wbGF0ZSddID0gIkZvcm1CdWlsZGVyIFN1Ym1pc3Npb24iOwokbGFuZ1snZW1haWxfdGVtcGxhdGVfbm90X3NldCddID0gJzxici8+RW1haWwgVGVtcGxhdGUgbm90IHlldCBzZXQhJzsgICAgICAKJGxhbmdbJ21pc3NpbmdfY21zX21haWxlciddID0gJ0Zvcm1CdWlsZGVyOiBDYW5ub3QgZmluZCByZXF1aXJlZCBtb2R1bGUgQ01TTWFpbGVyISc7ICAJCQokbGFuZ1sndXNlcl9hcHByb3ZlZF9zdWJtaXNzaW9uJ109J1VzZXIgYXBwcm92ZWQgc3VibWlzc2lvbiAlcyBmcm9tICVzJzsKCiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J109J0V2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdEVycm9yJ109J0V2ZW50IHRyaWdnZXJlZCBpZiB0aGVyZSBpcyBhbiBlcnJvciB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXT0nRXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIGRpc3BsYXllZCc7CgokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdCddPSc8cD5FdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkLjwvcD4KPGg0PlBhcmFtZXRlcnM8L2g0Pgo8dWw+CjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBUaGUgZm9ybSBuYW1lIChzdHJpbmcpPC9saT4KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBUaGUgaW50ZXJuYWwgZm9ybSBpZCAoaW50KTwvbGk+CjxsaT48ZW0+dmFsdWVfJmx0O25hbWUmZ3Q7PC9lbT4gLSBTdXBwbHkgYSBkZWZhdWx0IHZhbHVlIHRvIGEgZmllbGQgd2l0aCB0aGUgc3BlY2lmaWVkIG5hbWUuPC9saT4KPC91bD4gJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddPSc8cD5FdmVudCB0cmlnZ2VyZWQgaWYgdGhlcmUgaXMgYW4gZXJyb3Igd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkPC9wPgo8aDQ+UGFyYW1ldGVyczwvaDQ+Cjx1bD4KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIFRoZSBmb3JtIG5hbWUgKHN0cmluZyk8L2xpPgo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4KPGxpPjxlbT5lcnJvcjwvZW0+IC0gQSBsaXN0IG9mIGFsbCBrbm93biBlcnJvcnMgKHN0cmluZyk8L2xpPgo8L3VsPiAnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXT0nPHA+RXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIGRpc3BsYXllZDwvcD4KPGg0PlBhcmFtZXRlcnM8L2g0Pgo8dWw+CjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBUaGUgZm9ybSBuYW1lIChzdHJpbmcpPC9saT4KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBUaGUgaW50ZXJuYWwgZm9ybSBpZCAoaW50KTwvbGk+CjwvdWw+ICc7CgovLyBwb3N0LWluc3RhbGwgbWVzc2FnZQokbGFuZ1sncG9zdF9pbnN0YWxsJ109Igo8cD5NYWtlIHN1cmUgdG8gc2V0IHRoZSBcIk1vZGlmeSBGb3Jtc1wiIHBlcm1pc3Npb25zCm9uIHVzZXJzIHdobyB3aWxsIGJlIGFkbWluaXN0ZXJpbmcgZmVlZGJhY2sgZm9ybXMuIEFsc28sIGlmIHlvdSdsbCBiZSBlbWFpbGluZyBmb3JtCnJlc3VsdHMsIGJlIHN1cmUgdG8gdXBkYXRlIHRoZSBDb25maWd1cmF0aW9uIGFwcHJvcHJpYXRlbHkuPC9wPgo8cD5QbGVhc2UgYmUgYXdhcmUgdGhhdCBhIGZlZWRiYWNrIGZvcm0gc2hvdWxkIG5vdCBiZSBhY3RpdmUgKGUuZy4sIHVzYWJsZSBieSB0aGUgcHVibGljKSB3aGlsZQp5b3UgYXJlIHN0aWxsIGVkaXRpbmcgdGhlIGZvcm0uIFlvdSBzaG91bGQgY3JlYXRlIHRoZSBmb3JtLCBhbmQgcGxhY2UgdGhlIHRhZyBpbnRvIGFuIGFjdGl2ZQpjb250ZW50IHBhZ2Ugb25seSB3aGVuIHlvdSBoYXZlIGZpbmlzaGVkIGVkaXRpbmcuIE90aGVyd2lzZSwgZXJyb25lb3VzIHJlc3VsdHMgY291bGQgYmUgcmV0dXJuZWQuPC9wPgo8cD5BZGRpdGlvbmFsbHksIHRoaXMgdmVyc2lvbiBkb2VzIG5vdCBzdXBwb3J0IHBhcmFsbGVsIGVkaXRpbmcgb2YgZm9ybXMuIFBsZWFzZSB0YWtlIGNhcmUgdGhhdApvbmx5IG9uZSBhZG1pbiBpcyBlZGl0aW5nIGEgZ2l2ZW4gZm9ybSBhdCBhIGdpdmVuIHRpbWUuPC9wPiI7CgokbGFuZ1snaGVscCddID0gIjxoMz5XaGF0IERvZXMgVGhpcyBEbz88L2gzPgo8cD5UaGUgRm9ybSBCdWlsZGVyIE1vZHVsZSBhbGxvd3MgeW91IHRvIGNyZWF0ZSBmZWVkYmFjayBmb3JtcyAoaW4gZmFjdCwgaXQncyBhIHJlcGxhY2VtZW50IG9mIHRoZSBvcmlnaW5hbCBGZWVkYmFjayBGb3JtIG1vZHVsZSksIHdpdGggdGhlIGFkZGVkIHBvd2VyIG9mIGRhdGFiYXNlIHN0b3JhZ2UuIFdpdGggaXRzIGNvbXBhbmlvbiBtb2R1bGUgRm9ybSBCcm93c2VyLCB5b3UgY2FuIHVzZSBpdCB0byBjcmVhdGUgc2ltcGxlIGRhdGFiYXNlIGFwcGxpY2F0aW9ucy48L3A+CjxwPlRoZSBmb3JtcyBjcmVhdGVkIHVzaW5nIHRoZSBGb3JtIEJ1aWxkZXIgbWF5IGJlIGluc2VydGVkCmludG8gdGVtcGxhdGVzIGFuZC9vciBjb250ZW50IHBhZ2VzLiBGb3JtcyBtYXkgY29udGFpbiBtYW55IGtpbmRzIG9mIGlucHV0cywgYW5kIG1heSBoYXZlCnZhbGlkYXRpb24gYXBwbGllZCB0byB0aGVzZSBpbnB1dHMuIFRoZSByZXN1bHRzIG9mIHRoZXNlIGZvcm1zIG1heSBiZSBoYW5kbGVkIGluIGEgdmFyaWV0eSBvZiB3YXlzLjwvcD4KCjxoMz5Ib3cgRG8gSSBVc2UgaXQ/PC9oMz4KPFA+SW5zdGFsbCBpdCwgYW5kIHBva2UgYXJvdW5kIHRoZSBtZW51cy4gUGxheSB3aXRoIGl0LiBUcnkgY3JlYXRpbmcgZm9ybXMsIGFuZCBhZGRpbmcgdGhlbSB0byB5b3VyIGNvbnRlbnQuCklmIHlvdSBnZXQgc3R1Y2ssIGNoYXQgd2l0aCBtZSBvbiB0aGUgI2NtcyBJUkMgY2hhbm5lbCwgcG9zdCB0byB0aGUgZm9ydW0sIHNlbmQgbWUgZW1haWwsIG9yLCBpZiB5b3UncmUKcmVhbGx5IGRlc3BlcmF0ZSwgcmVhZCB0aGUgcmVzdCBvZiB0aGlzIHBhZ2UuPC9QPgoKPGgzPkhvdyBEbyBJIENyZWF0ZSBhIEZvcm08L2gzPgo8cD5JbiB0aGUgQ01TIEFkbWluIE1lbnUsIHlvdSBzaG91bGQgZ2V0IGEgbmV3IG1lbnUgaXRlbSBjYWxsZWQgRm9ybUJ1aWxkZXIuIENsaWNrIG9uIHRoaXMuIE9uIHRoZSBwYWdlCnRoYXQgZ2V0cyBzaG93biwgdGhlcmUgYXJlIG9wdGlvbnMgKGF0IHRoZSBib3R0b20gb2YgdGhlIGxpc3Qgb2YgRm9ybXMpIHRvIEFkZCBhIE5ldyBGb3JtIG9yIE1vZGlmeQpDb25maWd1cmF0aW9uLjwvcD4KCjxoMz5BZGRpbmcgYSBGb3JtIHRvIGEgUGFnZTwvaDM+CjxwPkluIHRoZSBtYWluIEZvcm1CdWlsZGVyIGFkbWluIHBhZ2UsIHlvdSBjYW4gc2VlIGFuIGV4YW1wbGUgb2YgdGhlIHRhZyB1c2VkIHRvIGRpc3BsYXkgZWFjaCBmb3JtLiBJdCBsb29rcwpzb21ldGhpbmcgbGlrZSB7Y21zX21vZHVsZSBtb2R1bGU9J0Zvcm1CdWlsZGVyJyBmb3JtPSdzYW1wbGVfZm9ybSd9PC9wPgo8cD5CeSBjb3B5aW5nIHRoaXMgdGFnIGludG8gdGhlIGNvbnRlbnQgb2YgYSBwYWdlLCBvciBpbnRvIGEgdGVtcGxhdGUsIHdpbGwgY2F1c2UgdGhhdCBmb3JtIHRvIGJlIGRpc3BsYXllZC4KSW4gdGhlb3J5LCB5b3UgY2FuIGhhdmUgbXVsdGlwbGUgZm9ybXMgb24gYSBwYWdlIGlmIHlvdSByZWFsbHkgd2FudCB0by4gQmUgY2FyZWZ1bCB3aGVuIHBhc3RpbmcgdGhlIHRhZwppbnRvIGEgcGFnZSdzIGNvbnRlbnQgaWYgeW91IHVzZSBhIFdZU0lXWUcgZWRpdG9yIHN1Y2ggYXMgVGlueU1DRSBvciBIVE1MQXJlYS4gVGhlc2UgZWRpdG9ycyBtYXkgc3RlYWx0aGlseQpjaGFuZ2UgdGhlIHF1b3RlIG1hcmtzIChcIikgaW50byBIVE1MIGVudGl0aWVzICgmYW1wO3F1b3Q7KSwgYW5kIHRoZSBmb3JtcyB3aWxsIG5vdCBzaG93IHVwLiBUcnkgdXNpbmcKc2luZ2xlIHF1b3RlcyAoJykgb3IgZWRpdGluZyB0aGUgSFRNTCBkaXJlY3RseS4KCjxoMz5Xb3JraW5nIHdpdGggRm9ybXM8L2gzPgo8cD5CeSBjbGlja2luZyBvbiBhIEZvcm0ncyBuYW1lLCB5b3UgZW50ZXIgdGhlIEZvcm0gRWRpdCBwYWdlLiBUaGVyZSBhcmUgc2V2ZXJhbCB0YWJzLCB3aGljaCBhcmUgZGVzY3JpYmVkIGJlbG93OjwvcD4KPGg0Pk1haW48L2g0Pgo8cD5UaGlzIGlzIHRoZSBtYWluIHBsYWNlIHlvdSdsbCB3b3JrIG9uIHlvdXIgZm9ybS4gSGVyZSwgeW91IGdpdmUgaXQgYSBuYW1lLCBhbiBhbGlhcyAod2hpY2ggaXMgdXNlZCB0byBpZGVudGlmeSBpdCBmb3IgcGxhY2luZyBpdCBpbiBhIHBhZ2Ugb3IgdGVtcGxhdGUpLCBhbmQsIG9wdGlvbmFsbHksIGEgQ1NTIGNsYXNzIHdpdGggd2hpY2ggdG8gd3JhcCB0aGUgd2hvbGUgdGhpbmcuIFlvdSBhbHNvIHNlbGVjdCB0aGUgZGlzcGxheSB0eXBlLiBZb3VyIGNob2ljZXMgYXJlOjwvcD4KPHVsPgo8bGk+VGFibGUvQ1NTLiBUaGUgZm9ybSBpcyBjcmVhdGVkIHVzaW5nIEhUTUwgdGFibGVzLiBJZiB5b3UgZG9uJ3Qga25vdyB3aGF0IHRvIGNob29zZSwgdGhpcyBpcyB0aGUgZWFzaWVzdCBvcHRpb24sIGFuZCB3aWxsIHByb2JhYmx5IGRvIG1vc3Qgb2Ygd2hhdCB5b3Ugd2FudC4gWW91IGNhbiBzdGlsbCB1c2UgQ1NTIHRvIHN0eWxlIHRoZSBmb3JtIGlmIHlvdSB3YW50LjwvbGk+CjxsaT5QdXJlIENTUy4gVGhlIGZvcm0gaXMgY3JlYXRlZCwgd2l0aCBhbGwgdGhlIGZpZWxkcyB3cmFwcGVkIGluICZsdDtkaXYmZ3Q7IHRhZ3MuIFlvdSBjYW4gdGhlbiBzdHlsZSB0aGUgZm9ybSBhcyB5b3Ugc2VlIGZpdC48L2xpPgo8bGk+Q3VzdG9tIFRlbXBsYXRlLiBCYXNpY2FsbHksIHlvdSBnZXQgYSBzbWFydHkgdGVtcGxhdGUsIGEgYnVuY2ggb2YgdmFyaWFibGVzLCBhbmQgeW91J3JlIG9uIHlvdXIgb3duLiBZb3UgaGF2ZSB0aGUgcG93ZXIgdG8gY3JlYXRlIHdoYXRldmVyIHlvdSB3YW50LjwvbGk+CjwvdWw+CjxwPkJlbG93IHRoaXMsIGlmIHlvdSBoYXZlIGl0IGVuYWJsZWQsIGlzIHRoZSBcImZhc3QgZmllbGQgYWRkZXJcIiBwdWxsZG93biwgdGhhdCBsZXRzIHlvdSBxdWlja2x5IGFkZCBhIGZpZWxkIHRvIHRoZSBlbmQgb2YgeW91ciBmb3JtIGJ5IHNlbGVjdGluZyB0aGUgZmllbGQgdHlwZS48L3A+CjxwPkJlbG93IHRoaXMgaXMgdGhlIGxpc3Qgb2YgZmllbGRzIHRoYXQgbWFrZSB1cCB5b3VyIGZvcm0uIE1vcmUgZGV0YWlsIG9uIHRoaXMgaXMgZGVzY3JpYmVkIGJlbG93LjwvcD4KPGg0PkZvcm0gU2V0dGluZ3M8L2g0Pgo8cD5Gb3JtIFNldHRpbmdzIGFsbG93cyB5b3UgdG8gY3VzdG9taXplIGEgbG90IG9mIHRoZSBtZXNzYWdlcyBhbmQgdGV4dCBpbiB0aGUgY29udHJvbHMgZm9yIHlvdXIgZm9ybS4gSXQgYWxzbyBhbGxvd3MgeW91IHRvIHBpY2sgYSBwYWdlIHRvIHJlZGlyZWN0IHVzZXJzIHRvIGFmdGVyIGEgc3VjY2Vzc2Z1bCBmb3JtIHN1Ym1pc3Npb24uPC9wPgo8aDQ+VGFibGUtYmFzZWQgTGF5b3V0IE9wdGlvbnM8L2g0Pgo8cD5UYWJsZS1sYXlvdXRzIGhhdmUgZ290dGVuIHNpbXBsZXIsIHNvIHlvdXIgb25seSBvcHRpb24gaGVyZSBpcyB0aGUgcG9zaXRpb24gb2YgdGhlIGZpZWxkIG5hbWVzIHJlbGF0aXZlIHRvIHRoZSBpbnB1dHMuIElmIHlvdSdyZSB1c2luZyBhIFRhYmxlL0NTUyBsYXlvdXQsIHlvdSBjYW4gdXNlIHRoaXMgdGFiIHRvIHNlbGVjdCB0aGUgZmllbGQgbmFtZSBwb3NpdGlvbnMuPC9wPgo8aDQ+VGVtcGxhdGUgTGF5b3V0IE9wdGlvbnM8L2g0Pgo8cD5UaGlzIGlzIHdoZXJlIHlvdSBkbyB5b3VyIGN1c3RvbWl6YXRpb24gd29yayBpZiB5b3VyIGZvcm0gdXNlcyBhIEN1c3RvbSBUZW1wbGF0ZS48L3A+CjxwPlRoZSBmb3JtIHNob3VsZCBkZWZhdWx0IHRvIGEgYSBDdXN0b20gdGVtcGxhdGUgdGhhdCBkb2N1bWVudHMgdGhlIHNtYXJ0eSB0YWdzIGF2YWlsYWJsZSB0byB5b3UuIFVubGVzcyB5b3UncmUgYSBzbWFydHkgZXhwZXJ0LCB5b3UgcHJvYmFibHkgZG9uJ3Qgd2FudCB0byBtZXNzIGFyb3VuZCB3aXRoIHRoaXMuIElmIHlvdSBhcmUgYSBzbWFydHkgZXhwZXJ0LCB0aGlzIGlzIHdoZXJlIHlvdSBjYW4gdW5sZWFzaCB5b3VyIG1hZ2ljLjwvcD4KPGgzPkFkZGluZyBGaWVsZHMgdG8geW91ciBGb3JtPC9oMz4KPHA+VGhlIHR5cGVzIG9mIGZpZWxkcyB0aGF0IGFyZSBjdXJyZW50bHkgc3VwcG9ydGVkIGZpdCBpbnRvIGZvdXIgZ3JvdXBzOiBzdGFuZGFyZCBpbnB1dCBmaWVsZHMsIGRpc3BsYXkgY29udHJvbCBmaWVsZHMsIGVtYWlsLXNwZWNpZmljIGZpZWxkcywgYW5kIGZvcm0gcmVzdWx0IGhhbmRsaW5nIGZpZWxkcyAoYWxzbyBjYWxsZWQgRm9ybSBEaXNwb3NpdGlvbnMgaW4gcGxhY2VzKTo8L3A+Cjx1bD4KPGxpPlN0YW5kYXJkIElucHV0IEZpZWxkcyAtIHRoZXNlIGFyZSBpbnB1dHMgdGhhdCBhbGxvdyBlbnRyeSBvZiB0eXBpY2FsIGZvcm0gZWxlbWVudHM7IHRleHQgaW5wdXRzLCByYWRpbyBidXR0b25zLCBldGMuPC9saT4KPGxpPkRpc3BsYXkgQ29udHJvbCBGaWVsZHMgLSB0aGVzZSBpbnB1dCBjb250cm9sIGhvdyB0aGUgdXNlciB3aWxsIHNlZSB0aGUgZGlzcGxheSBvZiB0aGUgZm9ybTsgcGFnZSBicmVha3MsIHN0YXRpYyB0ZXh0LCBldGMuPC9saT4KPGxpPkVtYWlsLXNwZWNpZmljIEZpZWxkcyAtIHNvbWUgZm9ybXMgZ2VuZXJhdGUgZW1haWwsIGFuZCBlbWFpbC1zcGVjaWZpYyBmaWVsZHMgY2FuIGFsdGVyIGF0dHJpYnV0ZXMgb2YgdGhlIGVtYWlscyBzZW50LjwvbGk+CjxsaT5Gb3JtIERpc3Bvc2l0aW9ucyAtIFRoZXNlIGRldGVybWluZSB3aGF0IGhhcHBlbnMgd2hlbiB0aGUgdXNlcgpzdWJtaXRzIHRoZSBmb3JtOyBmb3IgZWFjaCByZXN1bHQgaGFuZGxpbmcgZmllbGQsIHNvbWUgbWV0aG9kIG9mIHRyYW5zbWl0dGluZywgc2F2aW5nLCBvciBlbWFpbGluZyB0aGUKZm9ybSBjb250ZW50cyB0YWtlcyBwbGFjZS4gQSBmb3JtIG1heSBoYXZlIG11bHRpcGxlIGZvcm0gZGlzcG9zaXRpb25zLjwvbGk+CjwvdWw+CjxwPkZvcm0gZmllbGRzIGFyZSBhc3NpZ25lZCBuYW1lcy4gVGhlc2UgbmFtZXMgaWRlbnRpZnkgdGhlIGZpZWxkLCBub3Qgb25seSBvbiB0aGUgc2NyZWVuIGFzIGxhYmVscyBmb3IgdGhlIHVzZXIsCmJ1dCBpbiB0aGUgZGF0YSB3aGVuIGl0J3Mgc3VibWl0dGVkIHNvIHlvdSBrbm93IHdoYXQgdGhlIHVzZXIgaXMgcmVzcG9uZGluZyB0by4gUGhyYXNpbmcgdGhlIG5hbWUgbGlrZSBhIHF1ZXN0aW9uCmlzIGEgaGFuZHkgd2F5IG9mIG1ha2luZyBpdCBjbGVhciB0byB0aGUgdXNlciB3aGF0IGlzIGV4cGVjdGVkLiBTaW1pbGFybHksIG1hbnkgZmllbGRzIGhhdmUgYm90aCBOYW1lcyBhbmQgVmFsdWVzLgpUaGUgTmFtZXMgYXJlIHdoYXQgZ2V0cyBzaG93biB0byB0aGUgdXNlcjsgdGhlIFZhbHVlIGlzIHdoYXQgZ2V0cyBzYXZlZCBvciB0cmFuc21pdHRlZCB3aGVuIHRoZSB1c2VyIHN1Ym1pdHMKdGhlIGZvcm0uIFRoZSBWYWx1ZXMgYXJlIG5ldmVyIHNlZW4gYnkgdGhlIHVzZXIsIG5vciBhcmUgdGhleSB2aXNpYmxlIGluIHRoZSBIVE1MLCBzbyBpdCdzIHNhZmUgdG8gdXNlIGZvcgplbWFpbCBhZGRyZXNzZXMgYW5kIHN1Y2guPC9wPgo8cD5Tb21lIGZpZWxkcyBjYW4gaGF2ZSBtdWx0aXBsZSB2YWx1ZXMsIG9yIG11bHRpcGxlIG5hbWUvdmFsdWUgcGFpcnMuIFdoZW4geW91IGZpcnN0IGNyZWF0ZSBzdWNoIGEgZmllbGQsCnRoZXJlIG1heSBub3QgYmUgc3VmZmljaWVudCBpbnB1dHMgZm9yIHlvdSB0byBzcGVjaWZ5IGFsbCB0aGUgdmFsdWVzIHlvdSB3YW50LiBUbyBnZXQgbW9yZSBzcGFjZSBmb3IgaW5wdXR0aW5nCnRoZXNlIHZhbHVlcywgdXNlIHRoZSBidXR0b25zIGF0IHRoZSBib3R0b20gb2YgdGhlIHBhZ2UgZm9yIGFkZGluZyBvcHRpb25zLjwvcD4KPHA+RmllbGRzIGNhbiBiZSBhc3NpZ25lZCB2YWxpZGF0aW9uIHJ1bGVzLCB3aGljaCB2YXJ5IGFjY29yZGluZyB0byB0aGUgdHlwZSBvZiB0aGUgZmllbGQuIFRoZXNlIHJ1bGVzIGhlbHAKZW5zdXJlIHRoYXQgdGhlIHVzZXIgZW50ZXJzIHZhbGlkIGRhdGEuIFRoZXkgbWF5IGFsc28gYmUKc2VwYXJhdGVseSBtYXJrZWQgXCJSZXF1aXJlZFwiLCB3aGljaCB3aWxsIGZvcmNlIHRoZSB1c2VyIHRvIGVudGVyIGEgcmVzcG9uc2UuPC9wPgo8cD5GaWVsZHMgYWxzbyBtYXkgYmUgYXNzaWduZWQgYSBDU1MgY2xhc3MuIFRoaXMgc2ltcGx5IHdyYXBzIHRoZSBpbnB1dCBpbiBhIGRpdiB3aXRoIHRoYXQgY2xhc3MsIHNvIGFzIHRvIGFsbG93CmN1c3RvbWl6ZWQgbGF5b3V0cy4gVG8gdXNlIHRoaXMgZWZmZWN0aXZlbHksIHlvdSBtYXkgbmVlZCB0byBcInZpZXcgc291cmNlXCIgb24gdGhlIGdlbmVyYXRlZCBmb3JtLCBhbmQgdGhlbgp3cml0ZSB5b3VyIENTUy48L3A+Cjx1bD4KPGxpPlN0YW5kYXJkIElucHV0cwo8dWw+PGxpPlRleHQgSW5wdXQuIFRoaXMgaXMgYSBzdGFuZGFyZCB0ZXh0IGZpZWxkLiBZb3UgY2FuIGxpbWl0IHRoZSBsZW5ndGgsIGFuZCBhcHBseSB2YXJpb3VzIHZhbGlkYXRpb24KZnVuY3Rpb25zIHRvIHRoZSBmaWVsZC48L2xpPgo8bGk+VGV4dCBBcmVhLiBUaGlzIGlzIGEgYmlnLCBmcmVlLWZvcm0gdGV4dCBpbnB1dCBmaWVsZC48L2xpPgo8bGk+Q2hlY2tib3guIFRoaXMgaXMgYSBzdGFuZGFyZCBjaGVjayBib3guPC9saT4KPGxpPkNoZWNrYm94IEdyb3VwLiBUaGlzIGlzIGEgY29sbGVjdGlvbiBvZiBjaGVja2JveGVzLiBUaGUgb25seSBkaWZmZXJlbmNlIGJldHdlZW4gdGhpcyBpbnB1dCBhbmQgYQpjb2xsZWN0aW9uIG9mIENoZWNrYm94IGlucHV0cyBpcyB0aGF0IHRoZXkgYXJlIHByZXNlbnRlZCBhcyBhIGdyb3VwLCB3aXRoIG9uZSBuYW1lLCBhbmQgY2FuIGhhdmUgYSB2YWxpZGF0aW9uIGZ1bmN0aW9uIHJlcXVpcmluZyB0aGF0IHlvdSBjaGVjayBvbmUgb3IgbW9yZSBvZiB0aGUgYm94ZXMgaW4gdGhlIGdyb3VwLjwvbGk+CjxsaT5SYWRpbyBHcm91cC4gVGhpcyBpcyBhIGNvbGxlY3Rpb24gb2YgcmFkaW8gYnV0dG9ucy4gT25seSBvbmUgb2YgdGhlIGdyb3VwIG1heSBiZSBzZWxlY3RlZCBieSB0aGUgdXNlci48L2xpPgo8bGk+UHVsbGRvd24uIFRoaXMgaXMgYSBzdGFuZGFyZCBwdWxsZG93biBtZW51LiBJdCdzIHJlYWxseSBjb25jZXB0dWFsbHkgdGhlIHNhbWUgdGhpbmcgYXMgYSByYWRpbyBidXR0b24KZ3JvdXAsIGJ1dCBpcyBiZXR0ZXIgd2hlbiB0aGVyZSBhcmUgYSBsYXJnZSBudW1iZXIgb2Ygb3B0aW9ucy48L2xpPgo8bGk+TXVsdGlzZWxlY3QuIFRoaXMgaXMgYSBtdWx0aS1zZWxlY3QgZmllbGQuIEl0J3MgcmVhbGx5IGNvbmNlcHR1YWxseSB0aGUgc2FtZSB0aGluZyBhcyBhIGNoZWNrYm94IGJ1dHRvbgpncm91cCwgYnV0IGlzIGJldHRlciB3aGVuIHRoZXJlIGFyZSBhIGxhcmdlIG51bWJlciBvZiBvcHRpb25zLCBhcyB5b3UgY2FuIGxpbWl0IHRoZSBudW1iZXIgZGlzcGxheWVkIG9uIHRoZSBzY3JlZW4gYXQgYW55IG9uZSB0aW1lLjwvbGk+CjxsaT5TdGF0ZS4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIFN0YXRlcyBvZiB0aGUgVS5TLjwvbGk+CjxsaT5Db3VudHJpZXMuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBDb3VudHJpZXMgb2YgdGhlIHdvcmxkIChhcyBvZiBKdWx5IDIwMDUpLjwvbGk+CjxsaT5EYXRlIFBpY2tlci4gVGhpcyBpcyBhIHRyaXBsZSBwdWxsZG93biBhbGxvd2luZyB0aGUgdXNlciB0byBzZWxlY3QgYSBkYXRlLjwvbGk+CjxsaT5UaW1lIFBpY2tlci4gVGhpcyBpcyBhIHNldCBvZiBwdWxsZG93bnMgYWxsb3dpbmcgdGhlIHVzZXIgdG8gc2VsZWN0IGEgdGltZSAodXNpbmcgMTIgb3IgMjQgaG91ciBjbG9jaykuPC9saT4KPGxpPkhpZGRlbiBGaWVsZC4gVGhpcyBhbGxvd3MgeW91IHRvIGVtYmVkIGEgaGlkZGVuIGZpZWxkIGluIHlvdXIgZm9ybS48L2xpPgo8bGk+RmlsZSBVcGxvYWQuIFRoaXMgaXMgYSBmaWxlIHVwbG9hZCBmaWVsZC48L2xpPgo8bGk+TGluayAoVXNlciBFbnRlcmVkKS4gVGhpcyBjcmVhdGVzIGEgZG91YmxlIGlucHV0IGZpZWxkIGZvciBnZXR0aW5nIGEgbGluayBVUkwgYW5kIGxpbmsgdGl0bGUuPC9saT4KPC91bD48L2xpPgoKPGxpPkVtYWlsLXNwZWNpZmljIElucHV0cwo8dWw+PGxpPkVtYWlsIEZyb20gQWRkcmVzcyBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSB0aGVpciBlbWFpbCBhZGRyZXNzLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgYWRkcmVzcyBpbiB0aGUgXCJGcm9tXCIgZmllbGQuPC9saT4KPGxpPkVtYWlsIEZyb20gTmFtZSBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSB0aGVpciBuYW1lLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgbmFtZSBpbiB0aGUgXCJGcm9tXCIgZmllbGQuPC9saT4KPC91bD48L2xpPgoKPGxpPkRpc3BsYXkgQ29udHJvbCBGaWVsZHM8dWw+CjxsaT4tUGFnZSBCcmVhay4gVGhpcyBhbGxvd3MgeW91IHRvIHNwbGl0IHlvdXIgZmVlZGJhY2sgZm9ybSBpbnRvIG11bHRpcGxlIHBhZ2VzLiBFYWNoIHBhZ2UgaXMKaW5kZXBlbmRlbnRseSB2YWxpZGF0ZWQuIFRoaXMgaXMgZ29vZCBmb3IgYXBwbGljYXRpb25zIGxpa2Ugb25saW5lIHN1cnZleXMuPC9saT4KPGxpPi1GaWVsZHNldCBTdGFydC4gQ29tYmluZWQgd2l0aCBGaWVsZHNldCBFbmQsIHRoaXMgYWxsb3dzIHlvdSB0byBncm91cCB2YXJpb3VzIGZpZWxkcyB3aXRoaW4geW91ciBmb3JtLiBVc2UgdGhpcyB0byBzdGFydCBhIGdpdmVuIGdyb3VwaW5nLjwvbGk+CjxsaT4tRmllbGRzZXQgRW5kLiBDb21iaW5lZCB3aXRoIEZpZWxkc2V0IFN0YXJ0LCB0aGlzIGFsbG93cyB5b3UgdG8gZ3JvdXAgdmFyaW91cyBmaWVsZHMgd2l0aGluIHlvdXIgZm9ybS4gVXNlIHRoaXMgdG8gZW5kIGEgZ2l2ZW4gZ3JvdXBpbmcuPC9saT4KPGxpPi1TdGF0aWMgVGV4dC4gVGhpcyBhbGxvd3MgeW91IHRvIHB1dCB0ZXh0IG9yIGEgbGFiZWwgaW4gdGhlIG1pZGRsZSBvZiB5b3VyIGZvcm0uIFRoaXMgaXMgdXNlZnVsIGZvciBnaXZpbmcgYWRkaXRpb25hbCBoZWxwIHRleHQsIGVzcGVjaWFsbHkgaWYgeW91J3JlIG5vdCB1c2luZyBhIEN1c3RvbSBUZW1wbGF0ZSB0byByZW5kZXIgeW91ciBmb3JtLjwvbGk+CjxsaT4tU3RhdGljIExpbmsuIFRoaXMgYWxsb3dzIHlvdSB0byBwdXQgYSBsaW5rIHRvIGEgZ2l2ZW4gcGFnZSBpbnRvIHlvdXIgZm9ybS4gT3B0aW9uYWxseSwgeW91IGNhbiBoYXZlIGl0IGF1dG9wb3B1bGF0ZSB3aXRoIHRoZSBwYWdlIHdoZXJlIHRoZSBmb3JtIGlzIGVtYmVkZGVkICh1c2VmdWwgaWYgeW91XCdyZSBzZW5kaW5nIHJlc3VsdHMgdmlhIGVtYWlsKS48L2xpPgo8L3VsPjwvbGk+Cgo8bGk+Rm9ybSBIYW5kbGluZyBJbnB1dHMgKERpc3Bvc2l0aW9ucykKPGxpPipDYWxsIGEgVXNlciBEZWZpbmVkIFRhZyBXaXRoIHRoZSBGb3JtIFJlc3VsdHMuIFRoaXMgc3VibWl0cyBhbGwgdGhlIGZvcm0gcmVzdWx0cyB0byB0aGUgVXNlci1EZWZpbmVkIFRhZyB5b3Ugc3BlY2lmeS4gVGhlIFVEVCBjYW4gaGFuZGxlIHRoZSByZXN1bHRzIGhvd2V2ZXIgaXQgd2FudHMuPC9saT4KPHVsPjxsaT4qRW1haWwgUmVzdWx0cyBCYXNlZCBvbiBQdWxsZG93bi4gVGhpcyBpcyB1c2VmdWwgZm9yIHdlYiBzaXRlcyB3aGVyZSBjb21tZW50cyBnZXQgcm91dGVkIGJhc2VkIG9uIHRoZWlyIHN1YmplY3QgbWF0dGVyLCBlLmcuLCBidWdzIGdldCBzZW50IHRvIG9uZSBwZXJzb24sIG1hcmtldGluZyBxdWVzdGlvbnMgdG8gYW5vdGhlciBwZXJzb24sIHNhbGVzIHJlcXVlc3RzIHRvIHNvbWVvbmUgZWxzZSwgZXRjLiBUaGUgcHVsbGRvd24gaXMgcG9wdWxhdGVkIHdpdGggdGhlIHN1YmplY3RzLCBhbmQgZWFjaCBnZXRzIGRpcmVjdGVkIHRvIGEgc3BlY2lmaWMgZW1haWwgYWRkcmVzcy4gWW91IHNldCB1cCB0aGVzZSBtYXBwaW5ncyBpbiB0aGUgd2hlbiB5b3UgY3JlYXRlIG9yIGVkaXQgYSBmaWVsZCBvZiB0aGlzIHR5cGUuIElmIHlvdSB1c2Ugb25lIG9mIHRoZXNlIFwiRGlyZWN0b3JcIiBwdWxsZG93bnMsIHRoZSB1c2VyIG11c3QgbWFrZSBhIHNlbGVjdGlvbiBpbiBvcmRlciB0byBzdWJtaXQgdGhlCmZvcm0uIFRoaXMgaW5wdXQgaXMgcGFydCBvZiB0aGUgZm9ybSB0aGUgdXNlciBzZWVzLCBhbHRob3VnaCB0aGUgZW1haWwgYWRkcmVzc2VzIGFyZSBub3QgbWFkZSB2aXNpYmxlIG5vcgphcmUgdGhleSBlbWJlZGRlZCBpbiB0aGUgSFRNTC48L2xpPgo8bGk+KkVtYWlsIFJlc3VsdHMgdG8gc2V0IEFkZHJlc3MoZXMpLiBUaGlzIHNpbXBseSBzZW5kcyB0aGUgZm9ybSByZXN1bHRzIHRvIG9uZSBvciBtb3JlIGVtYWlsIGFkZHJlc3NlcyB0aGF0IHlvdSBlbnRlciB3aGVuIHlvdSBjcmVhdGUgb3IgZWRpdCB0aGlzIHR5cGUgb2YgZmllbGQuIFRoaXMgZmllbGQgYW5kIGl0cyBuYW1lIGFyZSBub3QgdmlzaWJsZSBpbiB0aGUKZm9ybSB0aGF0IHRoZSB1c2VyIHNlZXMuIFRoZSBlbWFpbCBhZGRyZXNzZXMgYXJlIG5vdCBtYWRlIHZpc2libGUgbm9yCmFyZSB0aGV5IGVtYmVkZGVkIGluIHRoZSBIVE1MLjwvbGk+CjxsaT4qRW1haWwgdG8gVXNlci1TdXBwbGllZCBBZGRyZXNzLiBUaGlzIHB1dHMgYW4gaW5wdXQgZmllbGQgaW4gdGhlIGZvcm0gZm9yIHRoZSB1c2VyIHRvIHBvcHVsYXRlIHdpdGggYW4gZW1haWwgYWRkcmVzcy4gVGhlIGZvcm0gcmVzdWx0cyBnZXQgc2VudCB0byB0aGF0IGFkZHJlc3MuIEJld2FyZSBvZiBTcGFtIGFidXNlISBBY3RpdmUgdGhlIHByaW1pdGl2ZSBhbnRpLXNwYW0gZmVhdHVyZXMgaW4gdGhlIEZvcm1CdWlsZGVyIGNvbmZpZ3VyYXRpb24gc2NyZWVuLjwvbGk+CjxsaT4qU3RvcmUgUmVzdWx0cyBpbiBEYXRhYmFzZS4gVGhpcyB3aWxsIHN0b3JlIHRoZSBmb3JtIGNvbnRlbnRzIGluIGFuIGludGVybmFsIGRhdGFiYXNlLiBZb3Ugd2lsbCBhbHdheXMgdXNlIHRoaXMgZGlzcG9zaXRpb24gaWYgeW91IHVzZSB0aGUgZm9ybSB3aXRoIEZvcm1Ccm93c2VyLjwvbGk+CjxsaT4qVmFsaWRhdGUgdmlhIEVtYWlsLiBUaGlzIGlzIGEgc3RyYW5nZSBhbmQgcG93ZXJmdWwgZmllbGQuIEl0IHByb3ZpZGVzIHRoZSB1c2VyIGEgbWFuZGF0b3J5IGlucHV0IGZvciB0aGVpciBlbWFpbCBhZGRyZXNzLiBPbmNlIHRoZXkgc3VibWl0IHRoZWlyIGZvcm0sIHRoZSBzdGFuZGFyZCBmb3JtIGRpc3Bvc2l0aW9ucyBhcmUgbm90IHBlcmZvcm1lZCAtLSByYXRoZXIsIGl0IHNlbmQgdGhlIHVzZXIgYW4gZW1haWwgd2l0aCBhIHNwZWNpYWwgY29kZWQgbGluay4gSWYgdGhleSBjbGljayBvbiB0aGUgbGluaywgdGhlIG90aGVyIGZvcm0gaXMgY29uc2lkZXJlZCBcImFwcHJvdmVkLFwiIGFuZCB0aGUgb3RoZXIgZGlzcG9zaXRpb25zIGFyZSBhbGwgcGVyZm9ybWVkLjwvbGk+CjxsaT4qV3JpdGUgUmVzdWx0cyB0byBGbGF0IEZpbGUuIFRoaXMgdGFrZXMgdGhlIGZvcm0gcmVzdWx0cyBhbmQgd3JpdGVzIHRoZW0gaW50byBhIHRleHQgZmlsZS4gWW91IG1heQpzZWxlY3QgdGhlIG5hbWUgb2YgdGhlIGZpbGUsIGFuZCBzZXQgaXRzIGZvcm1hdC4gVGhlc2UgZmlsZXMgYXJlIHdyaXR0ZW4gdG8gdGhlIFwib3V0cHV0XCIgZGlyZWN0b3J5IHVuZGVyIHRoZQptb2R1bGUncyBpbnN0YWxsYXRpb24gZGlyZWN0b3J5LCBhc3N1bWluZyB0aGUgd2ViIHNlcnZlciBoYXMgcGVybWlzc2lvbiB0byB3cml0ZSB0aGVyZS48L2xpPgo8L3VsPjwvbGk+PC9saT48L3VsPgoKPGgzPkVtYWlsIGFuZCBGbGF0IEZpbGUgVGVtcGxhdGVzPC9oMz4KPHA+TWFueSBkaXNwb3NpdGlvbiB0eXBlcyBhbGxvdyB5b3UgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZm9yIHRoZSBlbWFpbCB0aGF0IGlzIGdlbmVyYXRlZCwgb3IgZm9yIHRoZSB3YXkgdGhlIHJlc3VsdHMgYXJlIHdyaXR0ZW4gdG8gYSBmaWxlLiBJZiB5b3Ugb3B0IG5vdCB0byBjcmVhdGUgYSB0ZW1wbGF0ZSwgdGhlIEZvcm1CdWlsZGVyIHdpbGwgdXNlIGl0J3Mgb3duIGJlc3QgZ3Vlc3MsIHdoaWNoIG1heSBvciBtYXkgbm90IHdvcmsgb3V0IHRvIHlvdXIgbGlraW5nLiBZb3UgY2FuIGFsd2F5cyBjbGljayBvbiB0aGUgXCJDcmVhdGUgU2FtcGxlIFRlbXBsYXRlXCIgYW5kIHRoZW4gY3VzdG9taXplIHRoZSByZXN1bHRzLjwvcD4KPHA+Tm90ZSB0aGF0IG9uY2UgeW91J3ZlIGNoYW5nZWQgYSB0ZW1wbGF0ZSwgaXQgd2lsbCBubyBsb25nZXIgYXV0b21hdGljYWxseSBhZGQgbmV3IGZpZWxkcy4gRm9yIHRoaXMgcmVhc29uLCBpdCdzIHVzdWFsbHkgYmVzdCB0byBjcmVhdGUgeW91ciB0ZW1wbGF0ZXMgYXMgdGhlIGxhc3Qgc3RlcCBvZiBjcmVhdGluZyB5b3VyIGZvcm0uPC9wPgoKPGgzPktub3duIElzc3VlczwvaDM+Cjx1bD4KPGxpPkZvcm1CdWlsZGVyIGlzIG5vdCB5ZXQgaW50ZWdyYXRlZCB3aXRoIEZyb250RW5kIFVzZXJzLiBJdCB3aWxsIGJlLjwvbGk+CjxsaT5Gb3JtQnVpbGRlciBjYW5ub3QgeWV0IGJlIGlubGluZWQuIFRoYXQgc2hvdWxkIGJlIGEgc2ltcGxlIHVwZ3JhZGUgZG93biB0aGUgbGluZS48L2xpPgo8bGk+Rm9ybUJ1aWxkZXIgZG9lcyBub3QgeWV0IHN1cHBvcnQgcHJldHR5IHVybHMsIGFsdGhvdWdoIHRoYXQgc2hvdWxkbid0IG1hdHRlciBzaW5jZSB0aGUgdXNlciBzaWRlIGlzIHByZXR0eSBzaW1wbGUuPC9saT4KPC91bD4KCjxoMz5Ucm91Ymxlc2hvb3Rpbmc8L2gzPgo8b2w+PGxpPiBGaXJzdCBzdGVwIGlzIHRvIGNoZWNrIHlvdSdyZSBydW5uaW5nIENNUyAxLjAtc3ZuIG9yIGxhdGVyLjwvbGk+CjxsaT4gU2Vjb25kIHN0ZXAgaXMgdG8gcmVhZCBhbmQgdW5kZXJzdGFuZCB0aGUgY2F2ZWF0IGFib3V0IFdZU0lXWUcgZWRpdG9ycyB1cCBpbiB0aGUKc2VjdGlvbiA8ZW0+QWRkaW5nIGEgRm9ybSB0byBhIFBhZ2U8L2VtPi48L2xpPgo8bGk+IElmIHlvdSdyZSBtaXNzaW5nIGZpZWxkcyBpbiBhbiBlbWFpbCB0aGF0IGdldHMgZ2VuZXJhdGVkLCBjaGVjayB0aGUgZGlzcG9zaXRpb24gZmllbGQncyB0ZW1wbGF0ZSwgYW5kIG1ha2Ugc3VyZSB5b3UncmUgc3BlY2lmeWluZyB0aGUgbWlzc2luZyBmaWVsZHMuIFNlZW1zIG9idmlvdXMsIGJ1dCBpdCdzIGFuIGVhc3kgbWlzdGFrZSB0byBtYWtlLjwvbGk+CjxsaT4gSnVzdCBtZXNzIGFyb3VuZCBhbmQgdHJ5IGNsaWNraW5nIG9uIGxpbmtzIGFuZCBpY29ucyBhbmQgc3R1ZmYuIFNlZSB3aGF0IGhhcHBlbnMuPC9saT4KPGxpPiBMYXN0IHJlc3BvcnQgaXMgdG8gZW1haWwgbWUgb3IgY2F0Y2ggbWUgb24gSVJDIGFuZCB3ZSBjYW4gZ28gZnJvbSB0aGVyZS48L2xpPgo8L29sPiAKPHA+VGhpcyBpcyBhIGZhaXJseSBlYXJseSB2ZXJzaW9uLCBpZiBub3QgYSByYW5rIGJldGEgcmVsZWFzZSwgYW5kIGl0IGlzIHByb2JhYmx5IHN0aWxsIGJ1Z2d5LiBXaGlsZSBJJ3ZlIGRvbmUgYWxsIEkgY2FuCnRvIG1ha2Ugc3VyZSBubyBlZ3JlZ2lvdXMgYnVncyBoYXZlIGNyZXB0IGluLCBJIGhhdmUgdG8gYWRtaXQgdGhhdCBkdXJpbmcgdGVzdGluZywgdGhpcyBwcm9ncmFtCnJldmVhbGVkIHNldmVuIGNvY2tyb2FjaGVzLCB0d28gZWFyd2lncywgYSBzbWFsbCBmYW1pbHkgb2YgYXBoaWRzLCBhbmQgYSB3YWxraW5nLXN0aWNrIGluc2VjdC4gSXQgYWxzbwphdGUgdGhlIG5laWdoYm9yJ3MgbmFzdHkgbGl0dGxlIHlhcCBkb2csIGZvciB3aGljaCBJIHdhcyBpbmFwcHJvcHJpYXRlbHkgZ3JhdGVmdWwuPC9wPgo8cD5UaGUgZmluYWwgcmVsZWFzZSB3aWxsIGluY2x1ZGUgYnVnIGZpeGVzLCBkb2N1bWVudGF0aW9uLCBhbmQgdW5jb25kaXRpb25hbCBsb3ZlLjwvcD4KPGgzPlN1cHBvcnQ8L2gzPgo8cD5UaGlzIG1vZHVsZSBkb2VzIG5vdCBpbmNsdWRlIGNvbW1lcmNpYWwgc3VwcG9ydC4gSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+Cjx1bD4KPGxpPkZvciB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBtb2R1bGUsIEZBUXMsIG9yIHRvIGZpbGUgYSBCdWcgUmVwb3J0LCBwbGVhc2UgdmlzaXQgdGhlIENNUyBNYWRlIFNpbXBsZSAgPGEgaHJlZj1cImh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmdcIj5EZXZlbG9wZXIgRm9yZ2U8L2E+LjwvbGk+CjxsaT5UbyBvYnRhaW4gY29tbWVyY2lhbCBzdXBwb3J0LCBwbGVhc2Ugc2VuZCBhbiBlbWFpbCB0byB0aGUgYXV0aG9yIGF0IDxhIGhyZWY9XCJtYWlsdG86c2pnQGNtc21vZHVsZXMuY29tXCI+Jmx0O3NqZ0BjbXNtb2R1bGVzLmNvbSZndDs8L2E+LjwvbGk+CjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9XCJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmdcIj5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi48L2xpPgo8bGk+VGhlIGF1dGhvciBjYW4gb2Z0ZW4gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9XCJpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXNcIj5DTVMgSVJDIENoYW5uZWw8L2E+LjwvbGk+CjxsaT5MYXN0bHksIHlvdSBtYXkgaGF2ZSBzb21lIHN1Y2Nlc3MgZW1haWxpbmcgdGhlIGF1dGhvciBkaXJlY3RseSBhbmQgZ3JvdmVsbGluZyBmb3IgZnJlZSBzdXBwb3J0LjwvbGk+CjwvdWw+CjxwPkFzIHBlciB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkIGFzLWlzLiBQbGVhc2UgcmVhZCB0aGUgdGV4dApvZiB0aGUgbGljZW5zZSBmb3IgdGhlIGZ1bGwgZGlzY2xhaW1lci48L3A+CjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPgo8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMDcsIFNhbXVlbCBHb2xkc3RlaW4gPGEgaHJlZj1cIm1haWx0bzpzamdAY21zbW9kdWxlcy5jb21cIj4mbHQ7c2pnQGNtc21vZHVsZXMuY29tJmd0OzwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4KPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9XCJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUExcIj5HTlUgUHVibGljIExpY2Vuc2U8L2E+LiBZb3UgbXVzdCBhZ3JlZSB0byB0aGlzIGxpY2Vuc2UgYmVmb3JlIHVzaW5nIHRoZSBtb2R1bGUuPC9wPiI7CgokbGFuZ1snY2hhbmdlbG9nJ10gPSAJCSIKCQkgICAgPHVsPgoJCSAgICAJCQkgIDxsaT5WZXJzaW9uIDAuMi40CgkJCQkJCQkJPHA+QmlnIHJlbGVhc2U6CgkJCQkJCQkJQWRkZWQgXCJFbWFpbCBGb3JtIHRvIFVzZXItU3VwcGxpZWQgQWRkcmVzc1wiIGRpc3Bvc2l0aW9uLgoJCQkJCQkJCUFkZGVkIFwiVGltZVBpY2tlclwiIGZpZWxkIHR5cGUuIFNwbGl0IFwiTGlua1wiIGZpZWxkIGludG8gYSBcIlVzZXItc3VwcGxpZWQgTGlua1wiIGZpZWxkIGFuZCBhIFwiU3RhdGljIExpbmtcIiBmaWVsZC4KCQkJCQkJCQlBZGRlZCBIVE1MIGVtYWlsIG9wdGlvbiBhbmQgYXV0by10ZW1wbGF0ZXMgZm9yIGFsbCBlbWFpbCBkaXNwb3NpdGlvbnMuCgkJCQkJCQkJQWRkZWQgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcy4KCQkJCQkJCQlBZGRlZCBYTUwtYmFzZWQgaW1wb3J0IGFuZCBleHBvcnQgb2YgZm9ybXMuCgkJCQkJCQkJPC9wPgoJCQkJCQkgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgPGxpPlZlcnNpb24gMC4yLjMKICAgICAgICAgICAgICAgICAgICAgIDxwPkFkZCB0aGUgYWJpbGl0eSB0byBjYWxsIGEgc2VsZWN0YWJsZSB1c2VyIGRlZmluZWQgdGFnIHVwb24gZGlzcG9zaXRpb24gb2YgdGhlIGZvcm0uPC9wPgogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgPGxpPlZlcnNpb24gMC4yLjIKICAgICAgICAgICAgICAgICAgICAgICA8cD5NYW55IHRoYW5rcyB0byBVdHRlciBEZXNpZ24gZm9yIHNwb25zb3Jpbmcgc29tZSBjaGFuZ2VzIGFuZCBidWdmaXhlcywgd2hpY2ggaW5jbHVkZToKICAgICAgICAgICAgICAgICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+QWRkZWQgZmlsZSB1cGxvYWQgY2FwYWJpbGl0aWVzIHRvIHRoZSBlbWFpbCBkaXNwb3NpdGlvbjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+QWRkIFBhZ2VTZXRTdGFydCBhbmQgUGFnZVNldEVuZCBmaWVsZCB0eXBlcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlRoZXNlIGZpZWxkIHR5cGVzIGFsbG93IHlvdSB0byBjcmVhdGUgZmllbGRzZXRzIGluIHlvdXIgZm9ybSwgYW5kIG9yZ2FuaXNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeW91ciBmaWVsZHMgbG9naWNhbGx5IGZvciB0aGUgdXNlci4gIFlvdSBjYW4gZXZlbiBuZXN0IGZpZWxkc2V0cywgYW5kCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzb2NpYXRlIGEgc3R5bGUgd2l0aCB0aGVtIGFwcHJvcHJpYXRlbHkuICBUaGUgZGVmYXVsdCB0ZW1wbGF0ZSB3YXMgY2hhbmdlZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvIHByZXZlbnQgaXQgZnJvbSB3cmFwcGluZyBhIGRpdiBhcm91bmQgdGhlc2UgdHlwZXMgb2YgZmllbGRzLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+Rml4ZWQgYSBwcm9ibGVtIHdpdGggREFURVRJTUUgZmllbGRzIG9uIGluc3RhbGwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5UaGlzIHNvbHZlcyBhIHByb2JsZW0gd2hlbiBvbiBpbnN0YWxsIHRoZSByZXNwb25zZSB0YWJsZSB3b3VsZCBzb21ldGltZXMgbm90IGdldCBjcmVhdGVkIHdoZW4gdXNpbmcgYWRvZGIgbGl0ZTwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgICAgPC9wPgoJCSAgICA8bGk+VmVyc2lvbiAwLjIgLSAxNCBOb3ZlbWJlciAyMDA2LiBDYWxndXkgJmFtcDsgdHN3J3MgYnVnIGZpeGVzIGZvciBmaWVsZCByZS1vcmRlcmluZyBhbmQgY3VzdG9tIHRlbXBsYXRlcy4gQWRkaXRpb25hbCBidWcgZml4ZXMgZm9yIGZpZWxkIGxhYmVscy48L2xpPgoJCSAgICA8bGk+VmVyc2lvbiAwLjEgLSA4IEp1bHkgMjAwNi4gSW5pdGlhbCBSZWxlYXNlPC9saT4KICAgICAgICAgICAgICAgICAgICA8L3VsPgoJCSI7CgoKPz4K]]></data>
	</file>
	<file>
	  <filename>/lang/ext/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/ext/da_DK.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0Zvcm11bGFyIEdlbmVyYXRvcic7CiRsYW5nWydmaWVsZF90eXBlXyddID0gJ0ZlbHQgdHlwZSBpa2tlIHNhdCc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRGaWVsZCddID0gJ1Rla3N0ZmVsdCc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRBcmVhRmllbGQnXSA9ICdUZWtzdGZlbHQsIGZsZXJlIGxpbmllJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hGaWVsZCddID0gJ0Fma3J5ZHNuaW5nc2Jva3MnOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEdyb3VwRmllbGQnXSA9ICdHcnVwcGUgYWYgYWZrcnlkc25pbmdzYm9rc2UnOwokbGFuZ1snZmllbGRfdHlwZV9QdWxsZG93bkZpZWxkJ10gPSAnUHVsbGRvd24nOwokbGFuZ1snZmllbGRfdHlwZV9NdWx0aXNlbGVjdEZpZWxkJ10gPSAnTXVsdGlzZWxlY3QnOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0ZVBpY2tlckZpZWxkJ10gPSAnVS5TLiBTdGF0ZSBQaWNrZXInOwokbGFuZ1snZmllbGRfdHlwZV9Db3VudHJ5UGlja2VyRmllbGQnXSA9ICdMYW5kZSB2YWxnJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGF0ZVBpY2tlckZpZWxkJ10gPSAnRGF0byBWYWxnJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUmFkaW9Hcm91cEZpZWxkJ10gPSAnUmFkaW8gQnV0dG9uIEdyb3VwJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EaXJlY3RvciddID0gJypFbWFpbCBSZXN1bHRzIEJhc2VkIG9uIFB1bGxkb3duJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbCddID0gJypFbWFpbCBSZXN1bHRzIHRvIHNldCBBZGRyZXNzKGVzKSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxDb25maXJtYXRpb24nXSA9ICcqVmFsaWRhdGUtdmlhLUVtYWlsIEFkZHJlc3MnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZpbGUnXSA9ICcqV3JpdGUgUmVzdWx0cyB0byBGbGF0IEZpbGUnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRhdGFiYXNlJ10gPSAnKlN0b3JlIFJlc3VsdHMgaW4gRGF0YWJhc2UnOwokbGFuZ1snZmllbGRfdHlwZV9QYWdlQnJlYWtGaWVsZCddID0gJy1QYWdlIEJyZWFrJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmlsZVVwbG9hZEZpZWxkJ10gPSAnRmlsZSBVcGxvYWQnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxBZGRyZXNzRmllbGQnXSA9ICdFbWFpbCAmcXVvdDtGcm9tIEFkZHJlc3MmcXVvdDsgRmllbGQnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxOYW1lRmllbGQnXSA9ICdFbWFpbCAmcXVvdDtGcm9tIE5hbWUmcXVvdDsgRmllbGQnOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0aWNUZXh0RmllbGQnXSA9ICctU3RhdGljIFRleHQnOwokbGFuZ1snZmllbGRfdHlwZV9MaW5rRmllbGQnXSA9ICctTGluayc7CiRsYW5nWyd2YWxpZGF0aW9uX25vbmUnXSA9ICdJbmdlbiB2YWxpZGVyaW5nJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbnVtZXJpYyddID0gJ051bWVyaXNrJzsKJGxhbmdbJ3ZhbGlkYXRpb25faW50ZWdlciddID0gJ0hlbHRhbCc7CiRsYW5nWyd2YWxpZGF0aW9uX2VtYWlsX2FkZHJlc3MnXSA9ICdFbWFpbCBhZHJlc3NlJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbXVzdF9jaGVjayddID0gJ1NrYWwgdiZhZWxpZztyZSB2YWxndCc7CiRsYW5nWyd2YWxpZGF0aW9uX3JlZ2V4X21hdGNoJ10gPSAnU2thbCBtYXRjaGUgcmVndWwmYWVsaWc7ciB1ZHRyeWsnOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9ub21hdGNoJ10gPSAnTSZhcmluZzsgaWtrZSBtYXRjaGUgcmVndWwmYWVsaWc7ciB1ZHRyeWsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfdmFsdWUnXSA9ICdBbmdpdiBlbnYmYWVsaWc7cmRpIGZvciAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV9udW1iZXInXSA9ICdBbmdpdiBldCB0YWwgZm9yICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl92YWxpZCddID0gJ0FuZ2l2IGVuIGd5bGRpZyB2JmFlbGlnO3JkaSBmb3IgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FuX2ludGVnZXInXSA9ICdBbmdpdiBldCBoZWx0YWwgZm9yICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hbl9lbWFpbCddID0gJ0FuZ2l2IGVuIGd5bGRpZyBlbWFpbCBhZHJlc3NlIGZvciAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydub3RfdmFsaWRfZW1haWwnXSA9ICcmcXVvdDslcyZxdW90OyBlciBpa2tlIGVuIGd5bGRpZyBlbWFpbCBhZHJlc3NlISc7CiRsYW5nWydwbGVhc2VfZW50ZXJfbm9fbG9uZ2VyJ10gPSAnQW5naXYgZW4gdiZhZWxpZztyZGkgZGVyIGlra2UgZXIgbCZhZWxpZztuZ2VyZSBlbmQgJXMgdGVnbic7CiRsYW5nWyd0aXRsZV9saXN0X2RlbGltaXRlciddID0gJ1RlZ24gZGVyIGthbiBiZW55dHRlcyB0aWwgYXQgYWRza2lsbGUgZmxlcmUgdiZhZWxpZztyZGllcic7CiRsYW5nWyd5b3VfbmVlZF9wZXJtaXNzaW9uJ10gPSAnWW91IG5lZWQgdGhlICZxdW90OyVzJnF1b3Q7IHBlcm1pc3Npb24gdG8gcGVyZm9ybSB0aGF0IG9wZXJhdGlvbi4nOwokbGFuZ1snbGFja3Blcm1pc3Npb24nXSA9ICdTb3JyeSEgWW91IGRvbiYjMDM5O3QgaGF2ZSBhZGVxdWF0ZSBwcml2aWxlZ2VzIHRvIGFjY2VzcyB0aGlzIHNlY3Rpb24uJzsKJGxhbmdbJ2ZpZWxkX29yZGVyX3VwZGF0ZWQnXSA9ICdGaWVsZCBvcmRlciB1cGRhdGVkLic7CiRsYW5nWydmb3JtX2RlbGV0ZWQnXSA9ICdGb3JtIGRlbGV0ZWQuJzsKJGxhbmdbJ2ZpZWxkX2RlbGV0ZWQnXSA9ICdGaWVsZCBkZWxldGVkLic7CiRsYW5nWydjb25maWd1cmF0aW9uX3VwZGF0ZWQnXSA9ICdDb25maWd1cmF0aW9uIFVwZGF0ZWQuJzsKJGxhbmdbJ3lvdV9tdXN0X2NoZWNrJ10gPSAnWW91IG11c3QgY2hlY2sgJnF1b3Q7JXMmcXVvdDsgaW4gb3JkZXIgdG8gY29udGludWUuJzsKJGxhbmdbJ211c3Rfc3BlY2lmeV9vbmVfZGVzdGluYXRpb24nXSA9ICdZb3UgbmVlZCB0byBzcGVjaWZ5IGF0IGxlYXN0IG9uZSBkZXN0aW5hdGlvbiBhZGRyZXNzISc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2Zvcm0nXSA9ICdFciBkdSBzaWtrZXIgcCZhcmluZzsgZHUgdmlsIHNsZXR0ZSBmb3JtdWxhcmVuICVzPyc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2ZpZWxkJ10gPSAnRXIgZHUgc2lra2VyIHAmYXJpbmc7IGR1IHZpbCBzbGV0dGUgZmVsdGV0ICVzPyc7CiRsYW5nWydub3RpY2Vfc2VsZWN0X3R5cGUnXSA9ICdVZHZpZGVkZSBpbmRzdGlsbGluZ2VyIGthbiBmJm9zbGFzaDtyc3Qgc2VzLCBuJmFyaW5nO3IgZGVyIGVyIHZhbGd0IGZlbHR0eXBlJzsKJGxhbmdbJ2ZpZWxkX25hbWVfaW5fdXNlJ10gPSAnRmVsdG5hdm5lciAmcXVvdDslcyZxdW90OyBlciBhbGxlcmVkZSBpIGJydWcuIEJlbnl0IHZlbmxpZ3N0IHVuaWtrZSBmZWx0bmF2bmUnOwokbGFuZ1snYWJicmV2aWF0aW9uX2xlbmd0aCddID0gJ0wmYWVsaWc7bmdkZTogJXMnOwokbGFuZ1snYm94ZXMnXSA9ICclcyBib2tzZSc7CiRsYW5nWydvcHRpb25zJ10gPSAnJXMgdmFsZ211bGlnaGVkZXInOwokbGFuZ1sndGV4dF9sZW5ndGgnXSA9ICclcyBjaGFycyc7CiRsYW5nWydvcmRlciddID0gJ1ImYWVsaWc7a2tlZiZvc2xhc2g7bGdlJzsKJGxhbmdbJ3Vuc3BlY2lmaWVkJ10gPSAnW3Vuc3BlY2lmaWVkXSc7CiRsYW5nWydhZGRlZCddID0gJ3RpbGYmb3NsYXNoO2pldCc7CiRsYW5nWyd1cGRhdGVkJ10gPSAnb3BkYXRlcmV0JzsKJGxhbmdbJ3NlbGVjdF9vbmUnXSA9ICdTZWxlY3QgT25lJzsKJGxhbmdbJ3NlbGVjdF90eXBlJ10gPSAnU2VsZWN0IFR5cGUnOwokbGFuZ1sndG8nXSA9ICdUbyc7CiRsYW5nWydyZWNpcGllbnRzJ10gPSAncmVjaXBpZW50cyc7CiRsYW5nWydkZXN0aW5hdGlvbl9jb3VudCddID0gJyVzIGRlc3RpbmF0aW9ucyc7CiRsYW5nWydzYXZlJ10gPSAnR2VtJzsKJGxhbmdbJ2FkZCddID0gJ1RpbGYmb3NsYXNoO2onOwokbGFuZ1sndXBkYXRlJ10gPSAnT3BkYXQmZWFjdXRlO3InOwokbGFuZ1snc2F2ZV9hbmRfY29udGludWUnXSA9ICdHZW0gb2cgZm9ydHMmYWVsaWc7dCByZWRpZ2VyaW5nJzsKJGxhbmdbJ2luZm9ybWF0aW9uJ10gPSAnSW5mb3JtYXRpb24nOwokbGFuZ1snYXV0b21hdGljJ10gPSAnQXV0b21hdGlzayc7CiRsYW5nWydmb3JtcyddID0gJ0Zvcm11bGFyZXInOwokbGFuZ1snZm9ybSddID0gJ0Zvcm11bGFyICVzJzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb24nXSA9ICdLb25maWd1cmF0aW9uJzsKJGxhbmdbJ3RhYl9tYWluJ10gPSAnTWFpbic7CiRsYW5nWyd0YWJfYWRkaXRpb25hbCddID0gJ0Zvcm0gU2V0dGluZ3MnOwokbGFuZ1sndGFiX2FkdmFuY2VkJ10gPSAnQWR2YW5jZWQgU2V0dGluZ3MnOwokbGFuZ1sndGFiX3RhYmxlbGF5b3V0J10gPSAnVGFibGUtYmFzZWQgTGF5b3V0IE9wdGlvbnMnOwokbGFuZ1sndGFiX3RlbXBsYXRlbGF5b3V0J10gPSAnVGVtcGxhdGUgTGF5b3V0IE9wdGlvbnMnOwokbGFuZ1snZmllbGRfcmVxdWlyZW1lbnRfdXBkYXRlZCddID0gJ0ZpZWxkIHJlcXVpcmVkIHN0YXRlIHVwZGF0ZWQuJzsKJGxhbmdbJ21heGltdW1fc2l6ZSddID0gJ01heC4gU2l6ZSc7CiRsYW5nWydwZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ0V4dGVuc2lvbnMnOwokbGFuZ1sncGVybWl0dGVkX2ZpbGV0eXBlcyddID0gJ0FsbG93ZWQgZmlsZSB0eXBlcyc7CiRsYW5nWydmaWxlX3Rvb19sYXJnZSddID0gJ1VwbG9hZGVkIGZpbGUgaXMgdG9vIGxhcmdlISBNYXhpbXVtIHNpemUgaXM6JzsKJGxhbmdbJ2lsbGVnYWxfZmlsZV90eXBlJ10gPSAnVGhpcyB0eXBlIG9mIGZpbGUgbWF5IG5vdCBiZSB1cGxvYWRlZC4gUGxlYXNlIGNoZWNrIHRoYXQgdGhlIGV4dGVuc2lvbiBpcyBjb3JyZWN0Lic7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHVsZSB1bmluc3RhbGxlZC4nOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnTW9kdWxlIHZlcnNpb24gJXMgaW5zdGFsbGVkLic7CiRsYW5nWyd1cGdyYWRlZCddID0gJ01vZHVsZSB1cGdyYWRlZCB0byB2ZXJzaW9uICVzLic7CiRsYW5nWydidXR0b25fcHJldmlvdXMnXSA9ICdCYWNrLi4uJzsKJGxhbmdbJ2J1dHRvbl9zdWJtaXQnXSA9ICdTdWJtaXQgRm9ybSc7CiRsYW5nWydidXR0b25fY29udGludWUnXSA9ICdDb250aW51ZS4uLic7CiRsYW5nWyd2YWx1ZV9jaGVja2VkJ10gPSAnQ2hlY2tlZCc7CiRsYW5nWyd2YWx1ZV91bmNoZWNrZWQnXSA9ICdVbmNoZWNrZWQnOwokbGFuZ1snYWRkX29wdGlvbnMnXSA9ICdBZGQgTW9yZSBPcHRpb25zJzsKJGxhbmdbJ2RlbGV0ZV9vcHRpb25zJ10gPSAnRGVsZXRlIE1hcmtlZCBPcHRpb25zJzsKJGxhbmdbJ2FkZF9jaGVja2JveGVzJ10gPSAnQWRkIE1vcmUgQ2hlY2tib3hlcyc7CiRsYW5nWydkZWxldGVfY2hlY2tib3hlcyddID0gJ0RlbGV0ZSBNYXJrZWQgQ2hlY2tib3hlcyc7CiRsYW5nWydhZGRfYWRkcmVzcyddID0gJ0FkZCBBbm90aGVyIEFkZHJlc3MnOwokbGFuZ1snZGVsZXRlX2FkZHJlc3MnXSA9ICdEZWxldGUgTWFya2VkIEFkZHJlc3Nlcyc7CiRsYW5nWydhZGRfZGVzdGluYXRpb24nXSA9ICdBZGQgQW5vdGhlciBEZXN0aW5hdGlvbic7CiRsYW5nWydkZWxldGVfZGVzdGluYXRpb24nXSA9ICdEZWxldGUgTWFya2VkIERlc3RpbmF0aW9ucyc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX2xlbmd0aCddID0gJ01heGltdW0gTGVuZ3RoJzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2xhYmVsJ10gPSAnQ2hlY2tib3ggbGFiZWwnOwokbGFuZ1sndGl0bGVfY2hlY2tlZF92YWx1ZSddID0gJ1ZhbHVlIHdoZW4gY2hlY2tlZCc7CiRsYW5nWyd0aXRsZV91bmNoZWNrZWRfdmFsdWUnXSA9ICdWYWx1ZSB3aGVuIG5vdCBjaGVja2VkLic7CiRsYW5nWyd0aXRsZV9jaGVja2JveF9kZXRhaWxzJ10gPSAnQ2hlY2tib3ggR3JvdXAgRGV0YWlscyc7CiRsYW5nWyd0aXRsZV9kZWxldGUnXSA9ICdEZWxldGU/JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9vbmVfbWVzc2FnZSddID0gJyZxdW90O1NlbGVjdCBPbmUmcXVvdDsgVGV4dCc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fc3ViamVjdCddID0gJ1NlbGVjdGlvbiBTdWJqZWN0JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X2NvdW50cnknXSA9ICdEZWZhdWx0IFNlbGVjdGlvbic7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9zdGF0ZSddID0gJ0RlZmF1bHQgU2VsZWN0aW9uJzsKJGxhbmdbJ3RpdGxlX29wdGlvbl9uYW1lJ10gPSAnT3B0aW9uIE5hbWUnOwokbGFuZ1sndGl0bGVfb3B0aW9uX3ZhbHVlJ10gPSAnVmFsdWUgU3VibWl0dGVkJzsKJGxhbmdbJ3RpdGxlX3B1bGxkb3duX2RldGFpbHMnXSA9ICdQdWxsZG93biBPcHRpb25zJzsKJGxhbmdbJ3RpdGxlX211bHRpc2VsZWN0X2RldGFpbHMnXSA9ICdNdWx0aXNlbGVjdCBPcHRpb25zJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2FkZHJlc3MnXSA9ICdEZXN0aW5hdGlvbiBFbWFpbCBBZGRyZXNzJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fbmFtZSddID0gJyZxdW90O0Zyb20gbmFtZSZxdW90OyBmb3IgZW1haWwnOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9lbWFpbF9yZWdleCddID0gJ1VzZSByZWxheGVkIGVtYWlsIHZhbGlkYXRpb24nOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9yZWdleF9sb25nJ10gPSAnVXNlIHJlbGF4ZWQgZW1haWwgYWRkcmVzcyB2YWxpZGF0aW9uIChlLmcuLCBhbGxvdyAmcXVvdDt4QHkmcXVvdDsgaW5zdGVhZCBvZiByZXF1aXJpbmcgJnF1b3Q7eEB5LnRsZCZxdW90OyknOwokbGFuZ1sndGl0bGVfZW1haWxfZnJvbV9hZGRyZXNzJ10gPSAnJnF1b3Q7RnJvbSBhZGRyZXNzJnF1b3Q7IGZvciBlbWFpbCc7CiRsYW5nWyd0aXRsZV9lbWFpbF9lbmNvZGluZyddID0gJ0VtYWlsIGNoYXJhY3RlciBzZXQgZW5jb2RpbmcnOwokbGFuZ1sndGl0bGVfZGlyZWN0b3JfZGV0YWlscyddID0gJ1B1bGxkb3duLWJhc2VkIEVtYWlsZXIgRGV0YWlscyc7CiRsYW5nWyd0aXRsZV9maWxlX25hbWUnXSA9ICdGaWxlIE5hbWUnOwokbGFuZ1sndGl0bGVfZW1haWxfc3ViamVjdCddID0gJ0VtYWlsIFN1YmplY3QgTGluZSc7CiRsYW5nWyd0aXRsZV9mb3JtX25hbWUnXSA9ICdGb3JtIE5hbWUnOwokbGFuZ1sndGl0bGVfZm9ybV9zdGF0dXMnXSA9ICdGb3JtIFN0YXR1cyc7CiRsYW5nWyd0aXRsZV9yZWFkeV9mb3JfZGVwbG95bWVudCddID0gJ1JlYWR5IGZvciBEZXBsb3ltZW50JzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTEnXSA9ICdOb3QgUmVhZHknOwokbGFuZ1sndGl0bGVfcmVkaXJlY3RfcGFnZSddID0gJ1BhZ2UgdG8gcmVkaXJlY3QgdG8gYWZ0ZXIgZm9ybSBzdWJtaXNzaW9uJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTInXSA9ICdQbGVhc2UgYWRkIGEgZmllbGQgdG8gdGhlIGZvcm0gc28gdGhhdCB0aGUgdXNlciYjMDM5O3MgaW5wdXQgZ2V0cyBoYW5kbGVkLiBZb3UgY2FuJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeV9saW5rJ10gPSAndXNlIHRoaXMgc2hvcnRjdXQnOwokbGFuZ1sndGl0bGVfZm9ybV9hbGlhcyddID0gJ0Zvcm0gQWxpYXMnOwokbGFuZ1sndGl0bGVfZm9ybV9maWVsZHMnXSA9ICdGb3JtIEZpZWxkcyc7CiRsYW5nWyd0aXRsZV9maWVsZF9uYW1lJ10gPSAnRmllbGQgTmFtZSc7CiRsYW5nWyd0aXRsZV9yYWRpb2dyb3VwX2RldGFpbHMnXSA9ICdSYWRpbyBCdXR0b24gR3JvdXAgRGV0YWlscyc7CiRsYW5nWyd0aXRsZV9maWVsZF90eXBlJ10gPSAnRmllbGQgVHlwZSc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkzJ10gPSAndG8gY3JlYXRlIGEgZm9ybSBoYW5kbGluZyBmaWVsZC4nOwokbGFuZ1sndGl0bGVfYWRkX25ld19mb3JtJ10gPSAnQWRkIE5ldyBGb3JtJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbiddID0gJ1Nob3cgRm9ybSBCdWlsZGVyIFZlcnNpb24/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbl9sb25nJ10gPSAnVGhpcyB3aWxsIGVtYmVkIHlvdXIgaW5zdGFsbGVkIHZlcnNpb24gbnVtYmVyIG9mIEZvcm0gQnVpbGRlciBtb2R1bGUgaW4gYSBjb21tZW50LCB0byBhaWQgaW4gZGVidWdnaW5nJzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZmllbGQnXSA9ICdBZGQgTmV3IEZpZWxkJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fc3VibWl0X2J1dHRvbiddID0gJ0Zvcm0gU3VibWl0IEJ1dHRvbiBUZXh0JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmV4dF9idXR0b24nXSA9ICdGb3JtICZxdW90O05leHQmcXVvdDsgQnV0dG9uIFRleHQgKHVzZWQgZm9yIG11bHRpcGFnZSBmb3JtcyknOwokbGFuZ1sndGl0bGVfZm9ybV9wcmV2X2J1dHRvbiddID0gJ0Zvcm0gJnF1b3Q7UHJldmlvdXMmcXVvdDsgQnV0dG9uIFRleHQgKHVzZWQgZm9yIG11bHRpcGFnZSBmb3JtcyknOwokbGFuZ1sndGl0bGVfZmllbGRfdmFsaWRhdGlvbiddID0gJ0ZpZWxkIFZhbGlkYXRpb24nOwokbGFuZ1sndGl0bGVfZm9ybV9jc3NfY2xhc3MnXSA9ICdDU1MgQ2xhc3MgZm9yIHRoaXMgZm9ybSc7CiRsYW5nWyd0aXRsZV9maWVsZF9jc3NfY2xhc3MnXSA9ICdDU1MgQ2xhc3MgZm9yIHRoaXMgZmllbGQnOwokbGFuZ1sndGl0bGVfZm9ybV9yZXF1aXJlZF9zeW1ib2wnXSA9ICdTeW1ib2wgdG8gbWFyayByZXF1aXJlZCBGaWVsZHMnOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWQnXSA9ICdSZXF1aXJlZCc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9sb25nJ10gPSAnUmVxdWlyZSBhIHJlc3BvbnNlIGZvciB0aGlzIEZpZWxkJzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWwnXSA9ICdIaWRlIExhYmVsJzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWxfbG9uZyddID0gJ0hpZGUgdGhpcyBmaWVsZCYjMDM5O3MgbmFtZSBvbiBGb3JtJzsKJGxhbmdbJ3RpdGxlX3RleHQnXSA9ICdTdGF0aWMgdGV4dCB0byBkaXNwbGF5JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlZ2V4J10gPSAnVmFsaWRhdGlvbiBSZWdleCc7CiRsYW5nWyd0aXRsZV9saW5lc190b19zaG93J10gPSAnTnVtYmVyIG9mIExpbmVzIHRvIGRpc3BsYXknOwokbGFuZ1snbm9fZGVmYXVsdCddID0gJ05vIERlZmF1bHQnOwokbGFuZ1sncmVkaXJlY3RfYWZ0ZXJfYXBwcm92YWwnXSA9ICdQYWdlIHRvIHJlZGlyZWN0IGFmdGVyIGFwcHJvdmFsJzsKJGxhbmdbJ3RpdGxlX3JlZ2V4X2hlbHAnXSA9ICdUaGlzIHJlZ3VsYXIgZXhwcmVzc2lvbiB3aWxsIG9ubHkgYmUgdXNlZCBpZiAmcXVvdDt2YWxpZGF0aW9uIHR5cGUmcXVvdDsgaXMgc2V0IHRvIGEgcmVnZXgtcmVsYXRlZCBvcHRpb24uIEluY2x1ZGUgYSBmdWxsIFBlcmwtc3R5bGUgcmVnZXgsIGluY2x1ZGluZyB0aGUgc3RhcnQvc3RvcCBzbGFzaGVzIGFuZCBmbGFncyAoZS5nLiwgJnF1b3Q7L2ltYWdlXC4oXGQrKS9pJnF1b3Q7KSc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9hYmJyZXYnXSA9ICdSZXEmIzAzOTtkJzsKJGxhbmdbJ3RpdGxlX3RpdGxlX3Bvc2l0aW9uJ10gPSAnRmllbGQgVGl0bGUgUG9zaXRpb24gKG5vbi1DU1MgTGF5b3V0IG9ubHkpJzsKJGxhbmdbJ3RpdGxlX3RhYmxlX2xheW91dF9sZWZ0J10gPSAnVGl0bGUgb24gTGVmdCc7CiRsYW5nWyd0aXRsZV90YWJsZV9sYXlvdXRfYWJvdmUnXSA9ICdUaXRsZSBBYm92ZSc7CiRsYW5nWyd0aXRsZV9oaWRlX2Vycm9ycyddID0gJ0hpZGUgRXJyb3JzJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fZGlzcGxheXR5cGUnXSA9ICdGb3JtIERpc3BsYXkgVHlwZSc7CiRsYW5nWyd0aXRsZV9oaWRlX2Vycm9yc19sb25nJ10gPSAnUHJldmVudCBkZWJ1ZyAvIGVycm9yIG1lc3NhZ2VzIGZyb20gYmVpbmcgc2VlbiBieSB1c2Vycy4nOwokbGFuZ1sndGl0bGVfZW1haWxfdGVtcGxhdGUnXSA9ICdFbWFpbCBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX3NpemUnXSA9ICdNYXhpbXVtIHVwbG9hZCBmaWxlIHNpemUgKGtpbG9ieXRlcyknOwokbGFuZ1sndGl0bGVfcGVybWl0dGVkX2V4dGVuc2lvbnMnXSA9ICdQZXJtaXR0ZWQgRXh0ZW5zaW9ucyc7CiRsYW5nWyd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9uc19sb25nJ10gPSAnRW50ZXIgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCwgZXhjbHVkaW5nIHRoZSBkb3QgKGUuZy4sICZxdW90O2pwZyxnaWYsanBlZyZxdW90OykuIFNwYWNlcyB3aWxsIGJlIGlnbm9yZWQuIExlYXZpbmcgdGhpcyBibGFuayBtZWFucyB0aGVyZSB3aWxsIGJlIG5vIHJlc3RyaWN0aW9ucy4nOwokbGFuZ1sndGl0bGVfc2hvd19saW1pdGF0aW9ucyddID0gJ0Rpc3BsYXkgcmVzdHJpY3Rpb25zPyc7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zX2xvbmcnXSA9ICdEaXNwbGF5IGFueSBzaXplIGFuZCBleHRlbnNpb24gcmVzdHJpY3Rpb25zIHdpdGggdGhlIHVwbG9hZCBmaWVsZD8nOwokbGFuZ1sndGl0bGVfZm9ybV90ZW1wbGF0ZSddID0gJ1RlbXBsYXRlIHRvIHVzZSB0byBEaXNwbGF5IEZvcm0nOwokbGFuZ1sndGl0bGVfcGFnZV94X29mX3knXSA9ICdQYWdlICVzIG9mICVzJzsKJGxhbmdbJ3RpdGxlX25vX2FkdmFuY2VkX29wdGlvbnMnXSA9ICdGaWVsZCBoYXMgbm8gYWR2YW5jZWQgb3B0aW9ucy4nOwokbGFuZ1sndGl0bGVfZm9ybV91bnNwZWNpZmllZCddID0gJ1RleHQgdG8gcmV0dXJuIGZvciB1bnNwZWNpZmllZCBmaWVsZCB2YWx1ZXMnOwokbGFuZ1sndGl0bGVfZW5hYmxlX2Zhc3RhZGRfbG9uZyddID0gJ0VuYWJsZSBmYXN0IGZpZWxkIGFkZGluZyBwdWxsZG93biBmb3IgZm9ybXM/JzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9mYXN0YWRkJ10gPSAnRW5hYmxlIGZhc3QgZmllbGQgYWRkIHB1bGxkb3duPyc7CiRsYW5nWyd0aXRsZV9mYXN0YWRkJ10gPSAnRmFzdCBmaWVsZCBhZGRlcic7CiRsYW5nWydsaW5rX2xhYmVsJ10gPSAnTGluayBMYWJlbCc7CiRsYW5nWydsaW5rX2Rlc3RpbmF0aW9uJ10gPSAnTGluayBEZXN0aW5hdGlvbiBVUkwnOwokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX3RlbXBsYXRlJ10gPSAnVmFyaWFibGVzIEZvciBUZW1wbGF0ZSc7CiRsYW5nWydoZWxwX3N1Ym1pc3Npb25fZGF0ZSddID0gJ0RhdGUgb2YgU3VibWlzc2lvbic7CiRsYW5nWydoZWxwX3NlcnZlcl9uYW1lJ10gPSAnWW91ciBzZXJ2ZXInOwokbGFuZ1snaGVscF9zdWJfc291cmNlX2lwJ10gPSAnSVAgYWRkcmVzcyBvZiBwZXJzb24gdXNpbmcgZm9ybSc7CiRsYW5nWydoZWxwX3N1Yl91cmwnXSA9ICdVUkwgb2YgcGFnZSBjb250YWluaW5nIGZvcm0nOwokbGFuZ1snaGVscF9vdGhlcl9maWVsZHMnXSA9ICdPdGhlciBmaWVsZHMgd2lsbCBiZSBhdmFpbGFibGUgYXMgeW91IGFkZCB0aGVtIHRvIHRoZSBmb3JtLic7CiRsYW5nWydoZWxwX2RhdGVfZm9ybWF0J10gPSAnU2VlIDxhIGhyZWY9JnF1b3Q7aHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5kYXRlLnBocCZxdW90OyB0YXJnZXQ9X05FVz50aGUgUEhQIE1hbnVhbDwvYT4gZm9yIGZvcm1hdHRpbmcgaGVscC4nOwokbGFuZ1snaGVscF92YXJpYWJsZV9uYW1lJ10gPSAnVmFyaWFibGUnOwokbGFuZ1snaGVscF9mb3JtX2ZpZWxkJ10gPSAnRmllbGQgUmVwcmVzZW50ZWQnOwokbGFuZ1snbGlua19iYWNrX3RvX2Zvcm0nXSA9ICcmbGFxdW87IEJhY2sgdG8gRm9ybSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX3RlbXBsYXRlJ10gPSAnQ3JlYXRlIFNhbXBsZSBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2hlYWRlciddID0gJ0NyZWF0ZSBTYW1wbGUgSGVhZGVyJzsKJGxhbmdbJ2hlbHBfdGFiX3N5bWJvbCddID0gJ2EgdGFiIGNoYXJhY3Rlcic7CiRsYW5nWyd0aXRsZV9maWxlX3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgZm9yIG9uZSBsaW5lIG9mIG91dHB1dCBmaWxlJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfaGVhZGVyJ10gPSAnVGVtcGxhdGUgZm9yIHRoZSBoZWFkZXIgb2Ygb3V0cHV0IGZpbGUnOwokbGFuZ1sndGl0bGVfY29uZmlybWF0aW9uX3VybCddID0gJ1VSTCB0byBjbGljayBmb3IgZm9ybSBjb25maXJtYXRpb24nOwokbGFuZ1snbm9fcmVmZXJyZXJfaW5mbyddID0gJ05vIEhUVFBfUkVGRVJFUiBpbmZvIGF2YWlsYWJsZSAocHJvYmFibHkgZHVlIHRvIHVzZSBvZiBVc2VyIEVtYWlsIFZhbGlkYXRpb24pJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcGFyYW1fZXJyb3InXSA9ICdWYWxpZGF0aW9uIFBhcmFtZXRlciBFcnJvci4gUGxlYXNlIG1ha2Ugc3VyZSB5b3UgY29weSB0aGUgVVJMIGZyb20geW91ciBlbWFpbCBjb3JyZWN0bHkhJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVzcG9uc2VfZXJyb3InXSA9ICdWYWxpZGF0aW9uIFJlcHNvbnNlIEVycm9yLiBQbGVhc2UgbWFrZSBzdXJlIHlvdSBjb3B5IHRoZSBVUkwgZnJvbSB5b3VyIGVtYWlsIGNvcnJlY3RseSEnOwokbGFuZ1sndmFsaWRhdGlvbl9ub19maWVsZF9lcnJvciddID0gJ1ZhbGlkYXRpb24gUmVwc29uc2UgRXJyb3IuIE5vIGVtYWlsIHZhbGlkYXRpb24gZmllbGQgaW4gdGhpcyBmb3JtISc7CiRsYW5nWyd0aXRsZV9kYXRlX2Zvcm1hdCddID0gJ0RhdGUgRm9ybWF0IChzdGFuZGFyZCA8YSBocmVmPSZxdW90O2h0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24uZGF0ZS5waHAmcXVvdDs+UEhQIERhdGUgRm9ybWF0czwvYT4pJzsKJGxhbmdbJ3RpdGxlX3VzZV93eXNpd3lnJ10gPSAnVXNlIFdZU0lXWUcgZWRpdG9yIGZvciB0ZXh0IEFyZWE/JzsKJGxhbmdbJ2Rpc3B0eXBlX3RhYmxlJ10gPSAnVGFibGUvQ1NTJzsKJGxhbmdbJ2Rpc3B0eXBlX2NzcyddID0gJ1B1cmUgQ1NTJzsKJGxhbmdbJ2Rpc3B0eXBlX3RlbXBsYXRlJ10gPSAnQ3VzdG9tIFRlbXBsYXRlJzsKJGxhbmdbJ2FkbWluZGVzYyddID0gJ0FkZCwgZWRpdCBhbmQgbWFuYWdlIGludGVyYWN0aXZlIEZvcm1zJzsKJGxhbmdbJ2RhdGVfamFudWFyeSddID0gJ0phbnVhcnknOwokbGFuZ1snZGF0ZV9mZWJydWFyeSddID0gJ0ZlYnJ1YXJ5JzsKJGxhbmdbJ2RhdGVfbWFyY2gnXSA9ICdNYXJjaCc7CiRsYW5nWydkYXRlX2FwcmlsJ10gPSAnQXByaWwnOwokbGFuZ1snZGF0ZV9tYXknXSA9ICdNYXknOwokbGFuZ1snZGF0ZV9qdW5lJ10gPSAnSnVuZSc7CiRsYW5nWydkYXRlX2p1bHknXSA9ICdKdWx5JzsKJGxhbmdbJ2RhdGVfYXVndXN0J10gPSAnQXVndXN0JzsKJGxhbmdbJ2RhdGVfc2VwdGVtYmVyJ10gPSAnU2VwdGVtYmVyJzsKJGxhbmdbJ2RhdGVfb2N0b2JlciddID0gJ09jdG9iZXInOwokbGFuZ1snZGF0ZV9ub3ZlbWJlciddID0gJ05vdmVtYmVyJzsKJGxhbmdbJ2RhdGVfZGVjZW1iZXInXSA9ICdEZWNlbWJlcic7CiRsYW5nWydzdWJtaXNzaW9uX2Vycm9yJ10gPSAnU29ycnkhIFRoZXJlIHdhcyBhbiBlcnJvciBoYW5kbGluZyB5b3VyIGZvcm0gc3VibWlzc2lvbi4nOwokbGFuZ1snc3VibWl0X2Vycm9yJ10gPSAnRm9ybUJ1aWxkZXIgc3VibWl0IGVycm9yOiAlcyc7CiRsYW5nWyd1cGxvYWRfYXR0YWNoX2Vycm9yJ10gPSAnVXBsb2FkL0F0dGFjaG1lbnQgZXJyb3Igb24gZmlsZSAlcyAodG1wX25hbWU6ICVzLCBvZiB0eXBlICVzKSc7CiRsYW5nWydzdWJtaXNzaW9uX2Vycm9yX2ZpbGVfbG9jayddID0gJ0Vycm9yLiBVbmFibGUgdG8gb2J0YWluIGxvY2sgZm9yIGZpbGUuJzsKJGxhbmdbJ2VtYWlsX2RlZmF1bHRfdGVtcGxhdGUnXSA9ICdGb3JtQnVpbGRlciBTdWJtaXNzaW9uDQonOwokbGFuZ1snZW1haWxfdGVtcGxhdGVfbm90X3NldCddID0gJzxici8+RW1haWwgVGVtcGxhdGUgbm90IHlldCBzZXQhJzsKJGxhbmdbJ21pc3NpbmdfY21zX21haWxlciddID0gJ0Zvcm1CdWlsZGVyOiBDYW5ub3QgZmluZCByZXF1aXJlZCBtb2R1bGUgQ01TTWFpbGVyISc7CiRsYW5nWyd1c2VyX2FwcHJvdmVkX3N1Ym1pc3Npb24nXSA9ICdVc2VyIGFwcHJvdmVkIHN1Ym1pc3Npb24gJXMgZnJvbSAlcyc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J10gPSAnRXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZCc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InXSA9ICdFdmVudCB0cmlnZ2VyZWQgaWYgdGhlcmUgaXMgYW4gZXJyb3Igd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1EaXNwbGF5J10gPSAnRXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIGRpc3BsYXllZCc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J10gPSAnPHA+RXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZC48L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gVGhlIGZvcm0gbmFtZSAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4NCjwvdWw+ICc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InXSA9ICc8cD5FdmVudCB0cmlnZ2VyZWQgaWYgdGhlcmUgaXMgYW4gZXJyb3Igd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIFRoZSBmb3JtIG5hbWUgKHN0cmluZyk8L2xpPg0KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBUaGUgaW50ZXJuYWwgZm9ybSBpZCAoaW50KTwvbGk+DQo8bGk+PGVtPmVycm9yPC9lbT4gLSBBIGxpc3Qgb2YgYWxsIGtub3duIGVycm9ycyAoc3RyaW5nKTwvbGk+DQo8L3VsPiAnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXSA9ICc8cD5FdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgZGlzcGxheWVkPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIFRoZSBmb3JtIG5hbWUgKHN0cmluZyk8L2xpPg0KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBUaGUgaW50ZXJuYWwgZm9ybSBpZCAoaW50KTwvbGk+DQo8L3VsPiAnOwokbGFuZ1sncG9zdF9pbnN0YWxsJ10gPSAnPHA+TWFrZSBzdXJlIHRvIHNldCB0aGUgJnF1b3Q7TW9kaWZ5IEZvcm1zJnF1b3Q7IHBlcm1pc3Npb25zDQpvbiB1c2VycyB3aG8gd2lsbCBiZSBhZG1pbmlzdGVyaW5nIGZlZWRiYWNrIGZvcm1zLiBBbHNvLCBpZiB5b3UmIzAzOTtsbCBiZSBlbWFpbGluZyBmb3JtDQpyZXN1bHRzLCBiZSBzdXJlIHRvIHVwZGF0ZSB0aGUgQ29uZmlndXJhdGlvbiBhcHByb3ByaWF0ZWx5LjwvcD4NCjxwPlBsZWFzZSBiZSBhd2FyZSB0aGF0IGEgZmVlZGJhY2sgZm9ybSBzaG91bGQgbm90IGJlIGFjdGl2ZSAoZS5nLiwgdXNhYmxlIGJ5IHRoZSBwdWJsaWMpIHdoaWxlDQp5b3UgYXJlIHN0aWxsIGVkaXRpbmcgdGhlIGZvcm0uIFlvdSBzaG91bGQgY3JlYXRlIHRoZSBmb3JtLCBhbmQgcGxhY2UgdGhlIHRhZyBpbnRvIGFuIGFjdGl2ZQ0KY29udGVudCBwYWdlIG9ubHkgd2hlbiB5b3UgaGF2ZSBmaW5pc2hlZCBlZGl0aW5nLiBPdGhlcndpc2UsIGVycm9uZW91cyByZXN1bHRzIGNvdWxkIGJlIHJldHVybmVkLjwvcD4NCjxwPkFkZGl0aW9uYWxseSwgdGhpcyB2ZXJzaW9uIGRvZXMgbm90IHN1cHBvcnQgcGFyYWxsZWwgZWRpdGluZyBvZiBmb3Jtcy4gUGxlYXNlIHRha2UgY2FyZSB0aGF0DQpvbmx5IG9uZSBhZG1pbiBpcyBlZGl0aW5nIGEgZ2l2ZW4gZm9ybSBhdCBhIGdpdmVuIHRpbWUuPC9wPic7CiRsYW5nWydoZWxwJ10gPSAnPGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+DQo8cD5UaGUgRm9ybSBCdWlsZGVyIE1vZHVsZSBhbGxvd3MgeW91IHRvIGNyZWF0ZSBmZWVkYmFjayBmb3JtcyAoaW4gZmFjdCwgaXQmIzAzOTtzIGEgcmVwbGFjZW1lbnQgb2YgdGhlIG9yaWdpbmFsIEZlZWRiYWNrIEZvcm0gbW9kdWxlKSwgd2l0aCB0aGUgYWRkZWQgcG93ZXIgb2YgZGF0YWJhc2Ugc3RvcmFnZS4gV2l0aCBpdHMgY29tcGFuaW9uIG1vZHVsZSBGb3JtIEJyb3dzZXIsIHlvdSBjYW4gdXNlIGl0IHRvIGNyZWF0ZSBzaW1wbGUgZGF0YWJhc2UgYXBwbGljYXRpb25zLjwvcD4NCjxwPlRoZSBmb3JtcyBjcmVhdGVkIHVzaW5nIHRoZSBGb3JtIEJ1aWxkZXIgbWF5IGJlIGluc2VydGVkDQppbnRvIHRlbXBsYXRlcyBhbmQvb3IgY29udGVudCBwYWdlcy4gRm9ybXMgbWF5IGNvbnRhaW4gbWFueSBraW5kcyBvZiBpbnB1dHMsIGFuZCBtYXkgaGF2ZQ0KdmFsaWRhdGlvbiBhcHBsaWVkIHRvIHRoZXNlIGlucHV0cy4gVGhlIHJlc3VsdHMgb2YgdGhlc2UgZm9ybXMgbWF5IGJlIGhhbmRsZWQgaW4gYSB2YXJpZXR5IG9mIHdheXMuPC9wPg0KDQo8aDM+SG93IERvIEkgVXNlIGl0PzwvaDM+DQo8UD5JbnN0YWxsIGl0LCBhbmQgcG9rZSBhcm91bmQgdGhlIG1lbnVzLiBQbGF5IHdpdGggaXQuIFRyeSBjcmVhdGluZyBmb3JtcywgYW5kIGFkZGluZyB0aGVtIHRvIHlvdXIgY29udGVudC4NCklmIHlvdSBnZXQgc3R1Y2ssIGNoYXQgd2l0aCBtZSBvbiB0aGUgI2NtcyBJUkMgY2hhbm5lbCwgcG9zdCB0byB0aGUgZm9ydW0sIHNlbmQgbWUgZW1haWwsIG9yLCBpZiB5b3UmIzAzOTtyZQ0KcmVhbGx5IGRlc3BlcmF0ZSwgcmVhZCB0aGUgcmVzdCBvZiB0aGlzIHBhZ2UuPC9QPg0KDQo8aDM+SG93IERvIEkgQ3JlYXRlIGEgRm9ybTwvaDM+DQo8cD5JbiB0aGUgQ01TIEFkbWluIE1lbnUsIHlvdSBzaG91bGQgZ2V0IGEgbmV3IG1lbnUgaXRlbSBjYWxsZWQgRm9ybUJ1aWxkZXIuIENsaWNrIG9uIHRoaXMuIE9uIHRoZSBwYWdlDQp0aGF0IGdldHMgc2hvd24sIHRoZXJlIGFyZSBvcHRpb25zIChhdCB0aGUgYm90dG9tIG9mIHRoZSBsaXN0IG9mIEZvcm1zKSB0byBBZGQgYSBOZXcgRm9ybSBvciBNb2RpZnkNCkNvbmZpZ3VyYXRpb24uPC9wPg0KDQo8aDM+QWRkaW5nIGEgRm9ybSB0byBhIFBhZ2U8L2gzPg0KPHA+SW4gdGhlIG1haW4gRm9ybUJ1aWxkZXIgYWRtaW4gcGFnZSwgeW91IGNhbiBzZWUgYW4gZXhhbXBsZSBvZiB0aGUgdGFnIHVzZWQgdG8gZGlzcGxheSBlYWNoIGZvcm0uIEl0IGxvb2tzDQpzb21ldGhpbmcgbGlrZSB7Y21zX21vZHVsZSBtb2R1bGU9JiMwMzk7Rm9ybUJ1aWxkZXImIzAzOTsgZm9ybT0mIzAzOTtzYW1wbGVfZm9ybSYjMDM5O308L3A+DQo8cD5CeSBjb3B5aW5nIHRoaXMgdGFnIGludG8gdGhlIGNvbnRlbnQgb2YgYSBwYWdlLCBvciBpbnRvIGEgdGVtcGxhdGUsIHdpbGwgY2F1c2UgdGhhdCBmb3JtIHRvIGJlIGRpc3BsYXllZC4NCkluIHRoZW9yeSwgeW91IGNhbiBoYXZlIG11bHRpcGxlIGZvcm1zIG9uIGEgcGFnZSBpZiB5b3UgcmVhbGx5IHdhbnQgdG8uIEJlIGNhcmVmdWwgd2hlbiBwYXN0aW5nIHRoZSB0YWcNCmludG8gYSBwYWdlJiMwMzk7cyBjb250ZW50IGlmIHlvdSB1c2UgYSBXWVNJV1lHIGVkaXRvciBzdWNoIGFzIFRpbnlNQ0Ugb3IgSFRNTEFyZWEuIFRoZXNlIGVkaXRvcnMgbWF5IHN0ZWFsdGhpbHkNCmNoYW5nZSB0aGUgcXVvdGUgbWFya3MgKCZxdW90OykgaW50byBIVE1MIGVudGl0aWVzICgmYW1wO3F1b3Q7KSwgYW5kIHRoZSBmb3JtcyB3aWxsIG5vdCBzaG93IHVwLiBUcnkgdXNpbmcNCnNpbmdsZSBxdW90ZXMgKCYjMDM5Oykgb3IgZWRpdGluZyB0aGUgSFRNTCBkaXJlY3RseS4NCg0KPGgzPldvcmtpbmcgd2l0aCBGb3JtczwvaDM+DQo8cD5CeSBjbGlja2luZyBvbiBhIEZvcm0mIzAzOTtzIG5hbWUsIHlvdSBlbnRlciB0aGUgRm9ybSBFZGl0IHBhZ2UuIFRoZXJlIGFyZSBzZXZlcmFsIHRhYnMsIHdoaWNoIGFyZSBkZXNjcmliZWQgYmVsb3c6PC9wPg0KPGg0Pk1haW48L2g0Pg0KPHA+VGhpcyBpcyB0aGUgbWFpbiBwbGFjZSB5b3UmIzAzOTtsbCB3b3JrIG9uIHlvdXIgZm9ybS4gSGVyZSwgeW91IGdpdmUgaXQgYSBuYW1lLCBhbiBhbGlhcyAod2hpY2ggaXMgdXNlZCB0byBpZGVudGlmeSBpdCBmb3IgcGxhY2luZyBpdCBpbiBhIHBhZ2Ugb3IgdGVtcGxhdGUpLCBhbmQsIG9wdGlvbmFsbHksIGEgQ1NTIGNsYXNzIHdpdGggd2hpY2ggdG8gd3JhcCB0aGUgd2hvbGUgdGhpbmcuIFlvdSBhbHNvIHNlbGVjdCB0aGUgZGlzcGxheSB0eXBlLiBZb3VyIGNob2ljZXMgYXJlOjwvcD4NCjx1bD4NCjxsaT5UYWJsZS9DU1MuIFRoZSBmb3JtIGlzIGNyZWF0ZWQgdXNpbmcgSFRNTCB0YWJsZXMuIElmIHlvdSBkb24mIzAzOTt0IGtub3cgd2hhdCB0byBjaG9vc2UsIHRoaXMgaXMgdGhlIGVhc2llc3Qgb3B0aW9uLCBhbmQgd2lsbCBwcm9iYWJseSBkbyBtb3N0IG9mIHdoYXQgeW91IHdhbnQuIFlvdSBjYW4gc3RpbGwgdXNlIENTUyB0byBzdHlsZSB0aGUgZm9ybSBpZiB5b3Ugd2FudC48L2xpPg0KPGxpPlB1cmUgQ1NTLiBUaGUgZm9ybSBpcyBjcmVhdGVkLCB3aXRoIGFsbCB0aGUgZmllbGRzIHdyYXBwZWQgaW4gPGRpdj4gdGFncy4gWW91IGNhbiB0aGVuIHN0eWxlIHRoZSBmb3JtIGFzIHlvdSBzZWUgZml0LjwvbGk+DQo8bGk+Q3VzdG9tIFRlbXBsYXRlLiBCYXNpY2FsbHksIHlvdSBnZXQgYSBzbWFydHkgdGVtcGxhdGUsIGEgYnVuY2ggb2YgdmFyaWFibGVzLCBhbmQgeW91JiMwMzk7cmUgb24geW91ciBvd24uIFlvdSBoYXZlIHRoZSBwb3dlciB0byBjcmVhdGUgd2hhdGV2ZXIgeW91IHdhbnQuPC9saT4NCjwvdWw+DQo8cD5CZWxvdyB0aGlzLCBpZiB5b3UgaGF2ZSBpdCBlbmFibGVkLCBpcyB0aGUgJnF1b3Q7ZmFzdCBmaWVsZCBhZGRlciZxdW90OyBwdWxsZG93biwgdGhhdCBsZXRzIHlvdSBxdWlja2x5IGFkZCBhIGZpZWxkIHRvIHRoZSBlbmQgb2YgeW91ciBmb3JtIGJ5IHNlbGVjdGluZyB0aGUgZmllbGQgdHlwZS48L3A+DQo8cD5CZWxvdyB0aGlzIGlzIHRoZSBsaXN0IG9mIGZpZWxkcyB0aGF0IG1ha2UgdXAgeW91ciBmb3JtLiBNb3JlIGRldGFpbCBvbiB0aGlzIGlzIGRlc2NyaWJlZCBiZWxvdy48L3A+DQo8aDQ+Rm9ybSBTZXR0aW5nczwvaDQ+DQo8cD5Gb3JtIFNldHRpbmdzIGFsbG93cyB5b3UgdG8gY3VzdG9taXplIGEgbG90IG9mIHRoZSBtZXNzYWdlcyBhbmQgdGV4dCBpbiB0aGUgY29udHJvbHMgZm9yIHlvdXIgZm9ybS4gSXQgYWxzbyBhbGxvd3MgeW91IHRvIHBpY2sgYSBwYWdlIHRvIHJlZGlyZWN0IHVzZXJzIHRvIGFmdGVyIGEgc3VjY2Vzc2Z1bCBmb3JtIHN1Ym1pc3Npb24uPC9wPg0KPGg0PlRhYmxlLWJhc2VkIExheW91dCBPcHRpb25zPC9oND4NCjxwPlRhYmxlLWxheW91dHMgaGF2ZSBnb3R0ZW4gc2ltcGxlciwgc28geW91ciBvbmx5IG9wdGlvbiBoZXJlIGlzIHRoZSBwb3NpdGlvbiBvZiB0aGUgZmllbGQgbmFtZXMgcmVsYXRpdmUgdG8gdGhlIGlucHV0cy4gSWYgeW91JiMwMzk7cmUgdXNpbmcgYSBUYWJsZS9DU1MgbGF5b3V0LCB5b3UgY2FuIHVzZSB0aGlzIHRhYiB0byBzZWxlY3QgdGhlIGZpZWxkIG5hbWUgcG9zaXRpb25zLjwvcD4NCjxoND5UZW1wbGF0ZSBMYXlvdXQgT3B0aW9uczwvaDQ+DQo8cD5UaGlzIGlzIHdoZXJlIHlvdSBkbyB5b3VyIGN1c3RvbWl6YXRpb24gd29yayBpZiB5b3VyIGZvcm0gdXNlcyBhIEN1c3RvbSBUZW1wbGF0ZS48L3A+DQo8cD5UaGUgZm9ybSBzaG91bGQgZGVmYXVsdCB0byBhIGEgQ3VzdG9tIHRlbXBsYXRlIHRoYXQgZG9jdW1lbnRzIHRoZSBzbWFydHkgdGFncyBhdmFpbGFibGUgdG8geW91LiBVbmxlc3MgeW91JiMwMzk7cmUgYSBzbWFydHkgZXhwZXJ0LCB5b3UgcHJvYmFibHkgZG9uJiMwMzk7dCB3YW50IHRvIG1lc3MgYXJvdW5kIHdpdGggdGhpcy4gSWYgeW91IGFyZSBhIHNtYXJ0eSBleHBlcnQsIHRoaXMgaXMgd2hlcmUgeW91IGNhbiB1bmxlYXNoIHlvdXIgbWFnaWMuPC9wPg0KPGgzPkFkZGluZyBGaWVsZHMgdG8geW91ciBGb3JtPC9oMz4NCjxwPlRoZSB0eXBlcyBvZiBmaWVsZHMgdGhhdCBhcmUgY3VycmVudGx5IHN1cHBvcnRlZCBmaXQgaW50byBmb3VyIGdyb3Vwczogc3RhbmRhcmQgaW5wdXQgZmllbGRzLCBkaXNwbGF5IGNvbnRyb2wgZmllbGRzLCBlbWFpbC1zcGVjaWZpYyBmaWVsZHMsIGFuZCBmb3JtIHJlc3VsdCBoYW5kbGluZyBmaWVsZHMgKGFsc28gY2FsbGVkIEZvcm0gRGlzcG9zaXRpb25zIGluIHBsYWNlcyk6PC9wPg0KPHVsPg0KPGxpPlN0YW5kYXJkIElucHV0IEZpZWxkcyAtIHRoZXNlIGFyZSBpbnB1dHMgdGhhdCBhbGxvdyBlbnRyeSBvZiB0eXBpY2FsIGZvcm0gZWxlbWVudHM7IHRleHQgaW5wdXRzLCByYWRpbyBidXR0b25zLCBldGMuPC9saT4NCjxsaT5EaXNwbGF5IENvbnRyb2wgRmllbGRzIC0gdGhlc2UgaW5wdXQgY29udHJvbCBob3cgdGhlIHVzZXIgd2lsbCBzZWUgdGhlIGRpc3BsYXkgb2YgdGhlIGZvcm07IHBhZ2UgYnJlYWtzLCBzdGF0aWMgdGV4dCwgZXRjLjwvbGk+DQo8bGk+RW1haWwtc3BlY2lmaWMgRmllbGRzIC0gc29tZSBmb3JtcyBnZW5lcmF0ZSBlbWFpbCwgYW5kIGVtYWlsLXNwZWNpZmljIGZpZWxkcyBjYW4gYWx0ZXIgYXR0cmlidXRlcyBvZiB0aGUgZW1haWxzIHNlbnQuPC9saT4NCjxsaT5Gb3JtIERpc3Bvc2l0aW9ucyAtIFRoZXNlIGRldGVybWluZSB3aGF0IGhhcHBlbnMgd2hlbiB0aGUgdXNlcg0Kc3VibWl0cyB0aGUgZm9ybTsgZm9yIGVhY2ggcmVzdWx0IGhhbmRsaW5nIGZpZWxkLCBzb21lIG1ldGhvZCBvZiB0cmFuc21pdHRpbmcsIHNhdmluZywgb3IgZW1haWxpbmcgdGhlDQpmb3JtIGNvbnRlbnRzIHRha2VzIHBsYWNlLiBBIGZvcm0gbWF5IGhhdmUgbXVsdGlwbGUgZm9ybSBkaXNwb3NpdGlvbnMuPC9saT4NCjwvdWw+DQo8cD5Gb3JtIGZpZWxkcyBhcmUgYXNzaWduZWQgbmFtZXMuIFRoZXNlIG5hbWVzIGlkZW50aWZ5IHRoZSBmaWVsZCwgbm90IG9ubHkgb24gdGhlIHNjcmVlbiBhcyBsYWJlbHMgZm9yIHRoZSB1c2VyLA0KYnV0IGluIHRoZSBkYXRhIHdoZW4gaXQmIzAzOTtzIHN1Ym1pdHRlZCBzbyB5b3Uga25vdyB3aGF0IHRoZSB1c2VyIGlzIHJlc3BvbmRpbmcgdG8uIFBocmFzaW5nIHRoZSBuYW1lIGxpa2UgYSBxdWVzdGlvbg0KaXMgYSBoYW5keSB3YXkgb2YgbWFraW5nIGl0IGNsZWFyIHRvIHRoZSB1c2VyIHdoYXQgaXMgZXhwZWN0ZWQuIFNpbWlsYXJseSwgbWFueSBmaWVsZHMgaGF2ZSBib3RoIE5hbWVzIGFuZCBWYWx1ZXMuDQpUaGUgTmFtZXMgYXJlIHdoYXQgZ2V0cyBzaG93biB0byB0aGUgdXNlcjsgdGhlIFZhbHVlIGlzIHdoYXQgZ2V0cyBzYXZlZCBvciB0cmFuc21pdHRlZCB3aGVuIHRoZSB1c2VyIHN1Ym1pdHMNCnRoZSBmb3JtLiBUaGUgVmFsdWVzIGFyZSBuZXZlciBzZWVuIGJ5IHRoZSB1c2VyLCBub3IgYXJlIHRoZXkgdmlzaWJsZSBpbiB0aGUgSFRNTCwgc28gaXQmIzAzOTtzIHNhZmUgdG8gdXNlIGZvcg0KZW1haWwgYWRkcmVzc2VzIGFuZCBzdWNoLjwvcD4NCjxwPlNvbWUgZmllbGRzIGNhbiBoYXZlIG11bHRpcGxlIHZhbHVlcywgb3IgbXVsdGlwbGUgbmFtZS92YWx1ZSBwYWlycy4gV2hlbiB5b3UgZmlyc3QgY3JlYXRlIHN1Y2ggYSBmaWVsZCwNCnRoZXJlIG1heSBub3QgYmUgc3VmZmljaWVudCBpbnB1dHMgZm9yIHlvdSB0byBzcGVjaWZ5IGFsbCB0aGUgdmFsdWVzIHlvdSB3YW50LiBUbyBnZXQgbW9yZSBzcGFjZSBmb3IgaW5wdXR0aW5nDQp0aGVzZSB2YWx1ZXMsIHVzZSB0aGUgYnV0dG9ucyBhdCB0aGUgYm90dG9tIG9mIHRoZSBwYWdlIGZvciBhZGRpbmcgb3B0aW9ucy48L3A+DQo8cD5GaWVsZHMgY2FuIGJlIGFzc2lnbmVkIHZhbGlkYXRpb24gcnVsZXMsIHdoaWNoIHZhcnkgYWNjb3JkaW5nIHRvIHRoZSB0eXBlIG9mIHRoZSBmaWVsZC4gVGhlc2UgcnVsZXMgaGVscA0KZW5zdXJlIHRoYXQgdGhlIHVzZXIgZW50ZXJzIHZhbGlkIGRhdGEuIFRoZXkgbWF5IGFsc28gYmUNCnNlcGFyYXRlbHkgbWFya2VkICZxdW90O1JlcXVpcmVkJnF1b3Q7LCB3aGljaCB3aWxsIGZvcmNlIHRoZSB1c2VyIHRvIGVudGVyIGEgcmVzcG9uc2UuPC9wPg0KPHA+RmllbGRzIGFsc28gbWF5IGJlIGFzc2lnbmVkIGEgQ1NTIGNsYXNzLiBUaGlzIHNpbXBseSB3cmFwcyB0aGUgaW5wdXQgaW4gYSBkaXYgd2l0aCB0aGF0IGNsYXNzLCBzbyBhcyB0byBhbGxvdw0KY3VzdG9taXplZCBsYXlvdXRzLiBUbyB1c2UgdGhpcyBlZmZlY3RpdmVseSwgeW91IG1heSBuZWVkIHRvICZxdW90O3ZpZXcgc291cmNlJnF1b3Q7IG9uIHRoZSBnZW5lcmF0ZWQgZm9ybSwgYW5kIHRoZW4NCndyaXRlIHlvdXIgQ1NTLjwvcD4NCjx1bD4NCjxsaT5TdGFuZGFyZCBJbnB1dHMNCjx1bD48bGk+VGV4dCBJbnB1dC4gVGhpcyBpcyBhIHN0YW5kYXJkIHRleHQgZmllbGQuIFlvdSBjYW4gbGltaXQgdGhlIGxlbmd0aCwgYW5kIGFwcGx5IHZhcmlvdXMgdmFsaWRhdGlvbg0KZnVuY3Rpb25zIHRvIHRoZSBmaWVsZC48L2xpPg0KPGxpPlRleHQgQXJlYS4gVGhpcyBpcyBhIGJpZywgZnJlZS1mb3JtIHRleHQgaW5wdXQgZmllbGQuPC9saT4NCjxsaT5DaGVja2JveC4gVGhpcyBpcyBhIHN0YW5kYXJkIGNoZWNrIGJveC48L2xpPg0KPGxpPkNoZWNrYm94IEdyb3VwLiBUaGlzIGlzIGEgY29sbGVjdGlvbiBvZiBjaGVja2JveGVzLiBUaGUgb25seSBkaWZmZXJlbmNlIGJldHdlZW4gdGhpcyBpbnB1dCBhbmQgYQ0KY29sbGVjdGlvbiBvZiBDaGVja2JveCBpbnB1dHMgaXMgdGhhdCB0aGV5IGFyZSBwcmVzZW50ZWQgYXMgYSBncm91cCwgd2l0aCBvbmUgbmFtZSwgYW5kIGNhbiBoYXZlIGEgdmFsaWRhdGlvbiBmdW5jdGlvbiByZXF1aXJpbmcgdGhhdCB5b3UgY2hlY2sgb25lIG9yIG1vcmUgb2YgdGhlIGJveGVzIGluIHRoZSBncm91cC48L2xpPg0KPGxpPlJhZGlvIEdyb3VwLiBUaGlzIGlzIGEgY29sbGVjdGlvbiBvZiByYWRpbyBidXR0b25zLiBPbmx5IG9uZSBvZiB0aGUgZ3JvdXAgbWF5IGJlIHNlbGVjdGVkIGJ5IHRoZSB1c2VyLjwvbGk+DQo8bGk+UHVsbGRvd24uIFRoaXMgaXMgYSBzdGFuZGFyZCBwdWxsZG93biBtZW51LiBJdCYjMDM5O3MgcmVhbGx5IGNvbmNlcHR1YWxseSB0aGUgc2FtZSB0aGluZyBhcyBhIHJhZGlvIGJ1dHRvbg0KZ3JvdXAsIGJ1dCBpcyBiZXR0ZXIgd2hlbiB0aGVyZSBhcmUgYSBsYXJnZSBudW1iZXIgb2Ygb3B0aW9ucy48L2xpPg0KPGxpPk11bHRpc2VsZWN0LiBUaGlzIGlzIGEgbXVsdGktc2VsZWN0IGZpZWxkLiBJdCYjMDM5O3MgcmVhbGx5IGNvbmNlcHR1YWxseSB0aGUgc2FtZSB0aGluZyBhcyBhIGNoZWNrYm94IGJ1dHRvbg0KZ3JvdXAsIGJ1dCBpcyBiZXR0ZXIgd2hlbiB0aGVyZSBhcmUgYSBsYXJnZSBudW1iZXIgb2Ygb3B0aW9ucywgYXMgeW91IGNhbiBsaW1pdCB0aGUgbnVtYmVyIGRpc3BsYXllZCBvbiB0aGUgc2NyZWVuIGF0IGFueSBvbmUgdGltZS48L2xpPg0KPGxpPlN0YXRlLiBUaGlzIGlzIGEgcHVsbGRvd24gbGlzdGluZyB0aGUgU3RhdGVzIG9mIHRoZSBVLlMuPC9saT4NCjxsaT5Db3VudHJpZXMuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBDb3VudHJpZXMgb2YgdGhlIHdvcmxkIChhcyBvZiBKdWx5IDIwMDUpLjwvbGk+DQo8bGk+RGF0ZSBQaWNrZXIuIFRoaXMgaXMgYSB0cmlwbGUgcHVsbGRvd24gYWxsb3dpbmcgdGhlIHVzZXIgdG8gc2VsZWN0IGEgZGF0ZS48L2xpPg0KPC91bD48L2xpPg0KDQo8bGk+RW1haWwtc3BlY2lmaWMgSW5wdXRzDQo8dWw+PGxpPkVtYWlsIEZyb20gQWRkcmVzcyBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSB0aGVpciBlbWFpbCBhZGRyZXNzLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgYWRkcmVzcyBpbiB0aGUgJnF1b3Q7RnJvbSZxdW90OyBmaWVsZC48L2xpPg0KPGxpPkVtYWlsIEZyb20gTmFtZSBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSB0aGVpciBuYW1lLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgbmFtZSBpbiB0aGUgJnF1b3Q7RnJvbSZxdW90OyBmaWVsZC48L2xpPg0KPC91bD48L2xpPg0KDQo8bGk+RGlzcGxheSBDb250cm9sIEZpZWxkczx1bD4NCjxsaT4tUGFnZSBCcmVhay4gVGhpcyBhbGxvd3MgeW91IHRvIHNwbGl0IHlvdXIgZmVlZGJhY2sgZm9ybSBpbnRvIG11bHRpcGxlIHBhZ2VzLiBFYWNoIHBhZ2UgaXMNCmluZGVwZW5kZW50bHkgdmFsaWRhdGVkLiBUaGlzIGlzIGdvb2QgZm9yIGFwcGxpY2F0aW9ucyBsaWtlIG9ubGluZSBzdXJ2ZXlzLjwvbGk+DQo8bGk+LVN0YXRpYyBUZXh0LiBUaGlzIGFsbG93cyB5b3UgdG8gcHV0IHRleHQgb3IgYSBsYWJlbCBpbiB0aGUgbWlkZGxlIG9mIHlvdXIgZm9ybS4gVGhpcyBpcyB1c2VmdWwgZm9yIGdpdmluZyBhZGRpdGlvbmFsIGhlbHAgdGV4dCwgZXNwZWNpYWxseSBpZiB5b3UmIzAzOTtyZSBub3QgdXNpbmcgYSBDdXN0b20gVGVtcGxhdGUgdG8gcmVuZGVyIHlvdXIgZm9ybS48L2xpPg0KPC91bD48L2xpPg0KDQo8bGk+Rm9ybSBIYW5kbGluZyBJbnB1dHMgKERpc3Bvc2l0aW9ucykNCjx1bD48bGk+KkVtYWlsIFJlc3VsdHMgQmFzZWQgb24gUHVsbGRvd24uIFRoaXMgaXMgdXNlZnVsIGZvciB3ZWIgc2l0ZXMgd2hlcmUgY29tbWVudHMgZ2V0IHJvdXRlZCBiYXNlZCBvbiB0aGVpciBzdWJqZWN0IG1hdHRlciwgZS5nLiwgYnVncyBnZXQgc2VudCB0byBvbmUgcGVyc29uLCBtYXJrZXRpbmcgcXVlc3Rpb25zIHRvIGFub3RoZXIgcGVyc29uLCBzYWxlcyByZXF1ZXN0cyB0byBzb21lb25lIGVsc2UsIGV0Yy4gVGhlIHB1bGxkb3duIGlzIHBvcHVsYXRlZCB3aXRoIHRoZSBzdWJqZWN0cywgYW5kIGVhY2ggZ2V0cyBkaXJlY3RlZCB0byBhIHNwZWNpZmljIGVtYWlsIGFkZHJlc3MuIFlvdSBzZXQgdXAgdGhlc2UgbWFwcGluZ3MgaW4gdGhlIHdoZW4geW91IGNyZWF0ZSBvciBlZGl0IGEgZmllbGQgb2YgdGhpcyB0eXBlLiBJZiB5b3UgdXNlIG9uZSBvZiB0aGVzZSAmcXVvdDtEaXJlY3RvciZxdW90OyBwdWxsZG93bnMsIHRoZSB1c2VyIG11c3QgbWFrZSBhIHNlbGVjdGlvbiBpbiBvcmRlciB0byBzdWJtaXQgdGhlDQpmb3JtLiBUaGlzIGlucHV0IGlzIHBhcnQgb2YgdGhlIGZvcm0gdGhlIHVzZXIgc2VlcywgYWx0aG91Z2ggdGhlIGVtYWlsIGFkZHJlc3NlcyBhcmUgbm90IG1hZGUgdmlzaWJsZSBub3INCmFyZSB0aGV5IGVtYmVkZGVkIGluIHRoZSBIVE1MLjwvbGk+DQo8bGk+KkVtYWlsIFJlc3VsdHMgdG8gc2V0IEFkZHJlc3MoZXMpLiBUaGlzIHNpbXBseSBzZW5kcyB0aGUgZm9ybSByZXN1bHRzIHRvIG9uZSBvciBtb3JlIGVtYWlsIGFkZHJlc3NlcyB0aGF0IHlvdSBlbnRlciB3aGVuIHlvdSBjcmVhdGUgb3IgZWRpdCB0aGlzIHR5cGUgb2YgZmllbGQuIFRoaXMgZmllbGQgYW5kIGl0cyBuYW1lIGFyZSBub3QgdmlzaWJsZSBpbiB0aGUNCmZvcm0gdGhhdCB0aGUgdXNlciBzZWVzLiBUaGUgZW1haWwgYWRkcmVzc2VzIGFyZSBub3QgbWFkZSB2aXNpYmxlIG5vcg0KYXJlIHRoZXkgZW1iZWRkZWQgaW4gdGhlIEhUTUwuPC9saT4NCjxsaT4qU3RvcmUgUmVzdWx0cyBpbiBEYXRhYmFzZS4gVGhpcyB3aWxsIHN0b3JlIHRoZSBmb3JtIGNvbnRlbnRzIGluIGFuIGludGVybmFsIGRhdGFiYXNlLiBZb3Ugd2lsbCBhbHdheXMgdXNlIHRoaXMgZGlzcG9zaXRpb24gaWYgeW91IHVzZSB0aGUgZm9ybSB3aXRoIEZvcm1Ccm93c2VyLjwvbGk+DQo8bGk+KlZhbGlkYXRlIHZpYSBFbWFpbC4gVGhpcyBpcyBhIHN0cmFuZ2UgYW5kIHBvd2VyZnVsIGZpZWxkLiBJdCBwcm92aWRlcyB0aGUgdXNlciBhIG1hbmRhdG9yeSBpbnB1dCBmb3IgdGhlaXIgZW1haWwgYWRkcmVzcy4gT25jZSB0aGV5IHN1Ym1pdCB0aGVpciBmb3JtLCB0aGUgc3RhbmRhcmQgZm9ybSBkaXNwb3NpdGlvbnMgYXJlIG5vdCBwZXJmb3JtZWQgLS0gcmF0aGVyLCBpdCBzZW5kIHRoZSB1c2VyIGFuIGVtYWlsIHdpdGggYSBzcGVjaWFsIGNvZGVkIGxpbmsuIElmIHRoZXkgY2xpY2sgb24gdGhlIGxpbmssIHRoZSBvdGhlciBmb3JtIGlzIGNvbnNpZGVyZWQgJnF1b3Q7YXBwcm92ZWQsJnF1b3Q7IGFuZCB0aGUgb3RoZXIgZGlzcG9zaXRpb25zIGFyZSBhbGwgcGVyZm9ybWVkLjwvbGk+DQo8bGk+KldyaXRlIFJlc3VsdHMgdG8gRmxhdCBGaWxlLiBUaGlzIHRha2VzIHRoZSBmb3JtIHJlc3VsdHMgYW5kIHdyaXRlcyB0aGVtIGludG8gYSB0ZXh0IGZpbGUuIFlvdSBtYXkNCnNlbGVjdCB0aGUgbmFtZSBvZiB0aGUgZmlsZSwgYW5kIHNldCBpdHMgZm9ybWF0LiBUaGVzZSBmaWxlcyBhcmUgd3JpdHRlbiB0byB0aGUgJnF1b3Q7b3V0cHV0JnF1b3Q7IGRpcmVjdG9yeSB1bmRlciB0aGUNCm1vZHVsZSYjMDM5O3MgaW5zdGFsbGF0aW9uIGRpcmVjdG9yeSwgYXNzdW1pbmcgdGhlIHdlYiBzZXJ2ZXIgaGFzIHBlcm1pc3Npb24gdG8gd3JpdGUgdGhlcmUuDQo8L3VsPjwvbGk+PC9saT48L3VsPg0KDQo8aDM+RW1haWwgYW5kIEZsYXQgRmlsZSBUZW1wbGF0ZXM8L2gzPg0KPHA+TWFuIGRpc3Bvc2l0aW9uIHR5cGVzIGFsbG93IHlvdSB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmb3IgdGhlIGVtYWlsIHRoYXQgaXMgZ2VuZXJhdGVkLCBvciBmb3IgdGhlIHdheSB0aGUgcmVzdWx0cyBhcmUgd3JpdHRlbiB0byBhIGZpbGUuIElmIHlvdSBvcHQgbm90IHRvIGNyZWF0ZSBhIHRlbXBsYXRlLCB0aGUgRm9ybUJ1aWxkZXIgd2lsbCB1c2UgaXQmIzAzOTtzIG93biBiZXN0IGd1ZXNzLCB3aGljaCBtYXkgb3IgbWF5IG5vdCB3b3JrIG91dCB0byB5b3VyIGxpa2luZy4gWW91IGNhbiBhbHdheXMgY2xpY2sgb24gdGhlICZxdW90O0NyZWF0ZSBTYW1wbGUgVGVtcGxhdGUmcXVvdDsgYW5kIHRoZW4gY3VzdG9taXplIHRoZSByZXN1bHRzLjwvcD4NCjxwPk5vdGUgdGhhdCBvbmNlIHlvdSYjMDM5O3ZlIGNoYW5nZWQgYSB0ZW1wbGF0ZSwgaXQgd2lsbCBubyBsb25nZXIgYXV0b21hdGljYWxseSBhZGQgbmV3IGZpZWxkcy4gRm9yIHRoaXMgcmVhc29uLCBpdCYjMDM5O3MgdXN1YWxseSBiZXN0IHRvIGNyZWF0ZSB5b3VyIHRlbXBsYXRlcyBhcyB0aGUgbGFzdCBzdGVwIG9mIGNyZWF0aW5nIHlvdXIgZm9ybS48L3A+DQoNCjxoMz5Lbm93biBJc3N1ZXM8L2gzPg0KPHVsPg0KPGxpPlNvbWUgZmllbGQgdHlwZXMgZnJvbSBGZWVkYmFja0Zvcm1zIGFyZSBub3QgaW1wbGVtZW50ZWQgaW4gRm9ybUJ1aWxkZXIuIElmIHRoZXJlIGlzIGRlbWFuZCBmb3IgdGhlbSwgdGhleSB3aWxsIGJlIGFkZGVkLjwvbGk+DQo8bGk+Rm9ybUJ1aWxkZXIgaXMgbm90IHlldCBpbnRlZ3JhdGVkIHdpdGggRnJvbnRFbmQgVXNlcnMuIEl0IHdpbGwgYmUuPC9saT4NCjxsaT5Gb3JtQnVpbGRlciBjYW5ub3QgeWV0IGJlIGlubGluZWQuIFRoYXQgc2hvdWxkIGJlIGEgc2ltcGxlIHVwZ3JhZGUgZG93biB0aGUgbGluZS48L2xpPg0KPGxpPkZvcm1CdWlsZGVyIGRvZXMgbm90IHlldCBzdXBwb3J0IHByZXR0eSB1cmxzLCBhbHRob3VnaCB0aGF0IHNob3VsZG4mIzAzOTt0IG1hdHRlciBzaW5jZSB0aGUgdXNlciBzaWRlIGlzIHByZXR0eSBzaW1wbGUuPC9saT4NCjwvdWw+DQoNCjxoMz5Ucm91Ymxlc2hvb3Rpbmc8L2gzPg0KPG9sPjxsaT4gRmlyc3Qgc3RlcCBpcyB0byBjaGVjayB5b3UmIzAzOTtyZSBydW5uaW5nIENNUyAxLjAtc3ZuIG9yIGxhdGVyLjwvbGk+DQo8bGk+IFNlY29uZCBzdGVwIGlzIHRvIHJlYWQgYW5kIHVuZGVyc3RhbmQgdGhlIGNhdmVhdCBhYm91dCBXWVNJV1lHIGVkaXRvcnMgdXAgaW4gdGhlDQpzZWN0aW9uIDxlbT5BZGRpbmcgYSBGb3JtIHRvIGEgUGFnZTwvZW0+LjwvbGk+DQo8bGk+IElmIHlvdSYjMDM5O3JlIG1pc3NpbmcgZmllbGRzIGluIGFuIGVtYWlsIHRoYXQgZ2V0cyBnZW5lcmF0ZWQsIGNoZWNrIHRoZSBkaXNwb3NpdGlvbiBmaWVsZCYjMDM5O3MgdGVtcGxhdGUsIGFuZCBtYWtlIHN1cmUgeW91JiMwMzk7cmUgc3BlY2lmeWluZyB0aGUgbWlzc2luZyBmaWVsZHMuIFNlZW1zIG9idmlvdXMsIGJ1dCBpdCYjMDM5O3MgYW4gZWFzeSBtaXN0YWtlIHRvIG1ha2UuPC9saT4NCjxsaT4gSnVzdCBtZXNzIGFyb3VuZCBhbmQgdHJ5IGNsaWNraW5nIG9uIGxpbmtzIGFuZCBpY29ucyBhbmQgc3R1ZmYuIFNlZSB3aGF0IGhhcHBlbnMuPC9saT4NCjxsaT4gTGFzdCByZXNwb3J0IGlzIHRvIGVtYWlsIG1lIG9yIGNhdGNoIG1lIG9uIElSQyBhbmQgd2UgY2FuIGdvIGZyb20gdGhlcmUuPC9saT4NCjwvb2w+IA0KPHA+VGhpcyBpcyBhIGZhaXJseSBlYXJseSB2ZXJzaW9uLCBpZiBub3QgYSByYW5rIGJldGEgcmVsZWFzZSwgYW5kIGl0IGlzIHByb2JhYmx5IHN0aWxsIGJ1Z2d5LiBXaGlsZSBJJiMwMzk7dmUgZG9uZSBhbGwgSSBjYW4NCnRvIG1ha2Ugc3VyZSBubyBlZ3JlZ2lvdXMgYnVncyBoYXZlIGNyZXB0IGluLCBJIGhhdmUgdG8gYWRtaXQgdGhhdCBkdXJpbmcgdGVzdGluZywgdGhpcyBwcm9ncmFtDQpyZXZlYWxlZCBzZXZlbiBjb2Nrcm9hY2hlcywgdHdvIGVhcndpZ3MsIGEgc21hbGwgZmFtaWx5IG9mIGFwaGlkcywgYW5kIGEgd2Fsa2luZy1zdGljayBpbnNlY3QuIEl0IGFsc28NCmF0ZSB0aGUgbmVpZ2hib3ImIzAzOTtzIG5hc3R5IGxpdHRsZSB5YXAgZG9nLCBmb3Igd2hpY2ggSSB3YXMgaW5hcHByb3ByaWF0ZWx5IGdyYXRlZnVsLjwvcD4NCjxwPlRoZSBmaW5hbCByZWxlYXNlIHdpbGwgaW5jbHVkZSBidWcgZml4ZXMsIGRvY3VtZW50YXRpb24sIGFuZCB1bmNvbmRpdGlvbmFsIGxvdmUuPC9wPg0KPGgzPlN1cHBvcnQ8L2gzPg0KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPg0KPHVsPg0KPGxpPkZvciB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBtb2R1bGUsIEZBUXMsIG9yIHRvIGZpbGUgYSBCdWcgUmVwb3J0LCBwbGVhc2UgdmlzaXQgdGhlIENNUyBNYWRlIFNpbXBsZSAgPGEgaHJlZj0mcXVvdDtodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnJnF1b3Q7PkRldmVsb3BlciBGb3JnZTwvYT4uPC9saT4NCjxsaT5UbyBvYnRhaW4gY29tbWVyY2lhbCBzdXBwb3J0LCBwbGVhc2Ugc2VuZCBhbiBlbWFpbCB0byB0aGUgYXV0aG9yIGF0IDxhIGhyZWY9JnF1b3Q7bWFpbHRvOnNqZ0BjbXNtb2R1bGVzLmNvbSZxdW90Oz48c2pnQGNtc21vZHVsZXMuY29tPjwvYT4uPC9saT4NCjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9JnF1b3Q7aHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnJnF1b3Q7PkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LjwvbGk+DQo8bGk+VGhlIGF1dGhvciBjYW4gb2Z0ZW4gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9JnF1b3Q7aXJjOi8vaXJjLmZyZWVub2RlLm5ldC8jY21zJnF1b3Q7PkNNUyBJUkMgQ2hhbm5lbDwvYT4uPC9saT4NCjxsaT5MYXN0bHksIHlvdSBtYXkgaGF2ZSBzb21lIHN1Y2Nlc3MgZW1haWxpbmcgdGhlIGF1dGhvciBkaXJlY3RseSBhbmQgZ3JvdmVsbGluZyBmb3IgZnJlZSBzdXBwb3J0LjwvbGk+ICANCjwvdWw+DQo8cD5BcyBwZXIgdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCBhcy1pcy4gUGxlYXNlIHJlYWQgdGhlIHRleHQNCm9mIHRoZSBsaWNlbnNlIGZvciB0aGUgZnVsbCBkaXNjbGFpbWVyLjwvcD4NCjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPg0KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDA2LCBTYW11ZWwgR29sZHN0ZWluIDxhIGhyZWY9JnF1b3Q7bWFpbHRvOnNqZ0BjbXNtb2R1bGVzLmNvbSZxdW90Oz48c2pnQGNtc21vZHVsZXMuY29tPjwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4NCjxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSZxdW90O2h0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCZxdW90Oz5HTlUgUHVibGljIExpY2Vuc2U8L2E+LiBZb3UgbXVzdCBhZ3JlZSB0byB0aGlzIGxpY2Vuc2UgYmVmb3JlIHVzaW5nIHRoZSBtb2R1bGUuPC9wPic7CiRsYW5nWydjaGFuZ2Vsb2cnXSA9ICcJCSAgICA8dWw+DQoJCSAgICA8bGk+VmVyc2lvbiAwLjEgLSA4IEp1bHkgMjAwNi4gSW5pdGlhbCBSZWxlYXNlPC9saT4NCgkJJzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuMTE4MjU3MDU0My4xMTU2MzY4NjA2LjExNjU4NDEwMDQuMTE2NTk2MTA1Ny4yMCc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjExNjE2MzUwODUuMTMuMy51dG1jY249KHJlZmVycmFsKXx1dG1jc3I9aGctbXVzaWsuZGt8dXRtY2N0PS98dXRtY21kPXJlZmVycmFsJzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/de_DE.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0Zvcm1CdWlsZGVyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfJ10gPSAnRmVsZHR5cCB3dXJkZSBuaWNodCBkZWZpbmllcnQnOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0RmllbGQnXSA9ICdUZXh0ZmVsZCc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRBcmVhRmllbGQnXSA9ICdUZXh0YmVyZWljaCc7CiRsYW5nWydmaWVsZF90eXBlX0NoZWNrYm94RmllbGQnXSA9ICdLb250cm9sbGsmYXVtbDtzdGNoZW4nOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEdyb3VwRmllbGQnXSA9ICdLb250cm9sbGsmYXVtbDtzdGNoZW4tR3J1cHBlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUHVsbGRvd25GaWVsZCddID0gJ0xpc3RlbmZlbGQnOwokbGFuZ1snZmllbGRfdHlwZV9NdWx0aXNlbGVjdEZpZWxkJ10gPSAnTWVocmZhY2hhdXN3YWhsJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3RhdGVQaWNrZXJGaWVsZCddID0gJ0F1c3dhaGwgZGVzIFUuUy4tU3RhYXRlcyc7CiRsYW5nWydmaWVsZF90eXBlX0NvdW50cnlQaWNrZXJGaWVsZCddID0gJ0F1c3dhaGwgZGVzIExhbmRlcyc7CiRsYW5nWydmaWVsZF90eXBlX0RhdGVQaWNrZXJGaWVsZCddID0gJ0RhdHVtc2F1c3dhaGwnOwokbGFuZ1snZmllbGRfdHlwZV9SYWRpb0dyb3VwRmllbGQnXSA9ICdPcHRpb25zZmVsZC1HcnVwcGUnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRpcmVjdG9yJ10gPSAnKkVyZ2Vibmlzc2UgcGVyIEVtYWlsIGFuIEF1c3dhaGwgYXVzIGRlbSBMaXN0ZW5mZWxkIHNlbmRlbic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWwnXSA9ICcqRXJnZWJuaXNzZSBwZXIgRW1haWwgYW4gdm9yZ2VnZWJlbmUgQWRyZXNzZShuKSBzZW5kZW4nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsQ29uZmlybWF0aW9uJ10gPSAnKiZVdW1sO2JlcnByJnV1bWw7ZnVuZyAmdXVtbDtiZXIgZGllIEVtYWlsLUFkcmVzc2UnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZpbGUnXSA9ICcqRXJnZWJuaXNzZSBpbiBlaW5lIERhdGVpIHNjaHJlaWJlbic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGF0YWJhc2UnXSA9ICcqRXJnZWJuaXNzZSBpbiBkaWUgRGF0ZW5iYW5rIHNjaHJlaWJlbic7CiRsYW5nWydmaWVsZF90eXBlX1BhZ2VCcmVha0ZpZWxkJ10gPSAnLVNlaXRlbnVtYnJ1Y2gnOwokbGFuZ1snZmllbGRfdHlwZV9GaWxlVXBsb2FkRmllbGQnXSA9ICdIb2NobGFkZW4gdm9uIERhdGVpZW4nOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxBZGRyZXNzRmllbGQnXSA9ICdFbWFpbGZlbGQgJnF1b3Q7Vm9uIEVtYWlsJnF1b3Q7JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsTmFtZUZpZWxkJ10gPSAnRW1haWxmZWxkICZxdW90O1ZvbiBOYW1lJnF1b3Q7JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3RhdGljVGV4dEZpZWxkJ10gPSAnLVN0YXRpc2NoZXIgVGV4dCc7CiRsYW5nWydmaWVsZF90eXBlX0xpbmtGaWVsZCddID0gJy1MaW5rJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbm9uZSddID0gJ0tlaW5lICZVdW1sO2JlcnByJnV1bWw7ZnVuZyc7CiRsYW5nWyd2YWxpZGF0aW9uX251bWVyaWMnXSA9ICdOdW1lcmlzY2gnOwokbGFuZ1sndmFsaWRhdGlvbl9pbnRlZ2VyJ10gPSAnR2FuenphaGwnOwokbGFuZ1sndmFsaWRhdGlvbl9lbWFpbF9hZGRyZXNzJ10gPSAnRW1haWxhZHJlc3NlJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbXVzdF9jaGVjayddID0gJ011c3MgJnV1bWw7YmVycHImdXVtbDtmdCB3ZXJkZW4nOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9tYXRjaCddID0gJ2VudHNwcmljaHQgZGVtIHp1bCZhdW1sO3NzaWdlbiBXZXJ0JzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbm9tYXRjaCddID0gJ2VudHNwcmljaHQgbmljaHQgZGVtIHp1bCZhdW1sO3NzaWdlbiBXZXJ0JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX3ZhbHVlJ10gPSAnQml0dGUgZ2ViZW4gU2llIGYmdXVtbDtyICZxdW90OyVzJnF1b3Q7IGVpbmVuIFdlcnQgZWluJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX251bWJlciddID0gJ0JpdHRlIGdlYmVuIFNpZSBmJnV1bWw7ciAmcXVvdDslcyZxdW90OyBlaW5lIFphaGwgZWluICc7CiRsYW5nWydwbGVhc2VfZW50ZXJfdmFsaWQnXSA9ICdCaXR0ZSBnZWJlbiBTaWUgZiZ1dW1sO3IgJnF1b3Q7JXMmcXVvdDsgZWluZW4gZyZ1dW1sO2x0aWdlbiBXZXJ0IGVpbic7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5faW50ZWdlciddID0gJ0JpdHRlIGdlYmVuIFNpZSBmJnV1bWw7ciAmcXVvdDslcyZxdW90OyBlaW5lbiBnYW56emFobGlnZW4gV2VydCBlaW4gJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hbl9lbWFpbCddID0gJ0JpdHRlIGdlYmVuIFNpZSBmJnV1bWw7ciAmcXVvdDslcyZxdW90OyBlaW5lIGcmdXVtbDtsdGlnZSBFbWFpbGFkcmVzc2UgZWluICc7CiRsYW5nWydub3RfdmFsaWRfZW1haWwnXSA9ICcmcXVvdDslcyZxdW90OyBzY2hlaW50IGtlaW5lIGcmdXVtbDtsdGlnZSBFbWFpbGFkcmVzc2UgenUgc2VpbiEnOwokbGFuZ1sncGxlYXNlX2VudGVyX25vX2xvbmdlciddID0gJ0JpdHRlIGdlYmVuIFNpZSBlaW5lbiBXZXJ0IGVpbiwgZGVyIG5pY2h0IGwmYXVtbDtuZ2VyIGFscyAlcyBaZWljaGVuIGlzdCAnOwokbGFuZ1sndGl0bGVfbGlzdF9kZWxpbWl0ZXInXSA9ICdaZWljaGVuLCBkYXMgYWxzIFRyZW5uZXIgdmVyd2VuZGV0IHdpcmQsIHdlbm4gbWVociBhbHMgZWluIFdlcnQgYWxzIEVyZ2VibmlzIHp1ciZ1dW1sO2NrZ2VnZWJlbiB3aXJkJzsKJGxhbmdbJ3lvdV9uZWVkX3Blcm1pc3Npb24nXSA9ICdTaWUgYmVuJm91bWw7dGlnZW4gZGllIEJlcmVjaHRpZ3VuZyAmcXVvdDslcyZxdW90OywgdW0gZGllc2UgQWt0aW9uIGF1c3p1ZiZ1dW1sO2hyZW4uJzsKJGxhbmdbJ2xhY2twZXJtaXNzaW9uJ10gPSAnU2llIGhhYmVuIG5pY2h0IGRpZSBlcmZvcmRlcmxpY2hlIEJlcmVjaHRpZ3VuZywgdW0gYXVmIGRpZXNlbiBCZXJlaWNoIHp1enVncmVpZmVuLic7CiRsYW5nWydmaWVsZF9vcmRlcl91cGRhdGVkJ10gPSAnRmVsZHJlaWhlbmZvbGdlIGFrdHVhbGlzaWVydC4nOwokbGFuZ1snZm9ybV9kZWxldGVkJ10gPSAnRm9ybXVsYXIgZ2VsJm91bWw7c2NodC4nOwokbGFuZ1snZmllbGRfZGVsZXRlZCddID0gJ0ZlbGQgZ2VsJm91bWw7c2NodC4nOwokbGFuZ1snY29uZmlndXJhdGlvbl91cGRhdGVkJ10gPSAnS29uZmlndXJhdGlvbmVuIGFrdHVhbGlzaWVydC4nOwokbGFuZ1sneW91X211c3RfY2hlY2snXSA9ICdVbSB3ZWl0ZXJ6dW1hY2hlbiBtJnV1bWw7c3NlbiBTaWUgenV2b3IgJnF1b3Q7JXMmcXVvdDsgJnV1bWw7YmVycHImdXVtbDtmZW4uJzsKJGxhbmdbJ211c3Rfc3BlY2lmeV9vbmVfZGVzdGluYXRpb24nXSA9ICdTaWUgbSZ1dW1sO3NzZW4gaGllciBtaW5kZXN0ZW5zIGVpbmUgWmllbGFkcmVzc2UgYW5nZWJlbiEnOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9mb3JtJ10gPSAnV29sbGVuIFNpZSBkYXMgRm9ybXVsYXIgJXMgd2lya2xpY2ggbCZvdW1sO3NjaGVuPyc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2ZpZWxkJ10gPSAnV29sbGVuIFNpZSBkYXMgRmVsZCAlcyB3aXJrbGljaCBsJm91bWw7c2NoZW4/JzsKJGxhbmdbJ25vdGljZV9zZWxlY3RfdHlwZSddID0gJ0JpcyB6dW0gU2V0emVuIGRlcyBGZWxkdHlwcyBzaW5kIGRpZSBlcndlaXRlcnRlbiBPcHRpb25lbiBuaWNodCB2ZXJmJnV1bWw7Z2Jhci4nOwokbGFuZ1snZmllbGRfbmFtZV9pbl91c2UnXSA9ICdEZXIgRmVsZG5hbWUgJnF1b3Q7JXMmcXVvdDsgd2lyZCBiZXJlaXRzIHZlcndlbmRldC4gQml0dGUgdmVyd2VuZGVuIFNpZSBlaW5kZXV0aWdlIEZlbGRuYW1lbi4nOwokbGFuZ1snYWJicmV2aWF0aW9uX2xlbmd0aCddID0gJ0wmYXVtbDtuZ2U6ICVzJzsKJGxhbmdbJ2JveGVzJ10gPSAnJXMgS29udHJvbGxrJmF1bWw7c3RjaGVuJzsKJGxhbmdbJ29wdGlvbnMnXSA9ICclcyBPcHRpb25lbic7CiRsYW5nWyd0ZXh0X2xlbmd0aCddID0gJyVzIFplaWNoZW4uJzsKJGxhbmdbJ29yZGVyJ10gPSAnUmVpaGVuZm9sZ2UnOwokbGFuZ1sndW5zcGVjaWZpZWQnXSA9ICcobmljaHQgZGVmaW5pZXJ0KSc7CiRsYW5nWydhZGRlZCddID0gJ2hpbnp1Z2VmJnV1bWw7Z3QnOwokbGFuZ1sndXBkYXRlZCddID0gJ2FrdHVhbGlzaWVydCc7CiRsYW5nWydzZWxlY3Rfb25lJ10gPSAnQml0dGUgZWluZW4gYXVzdyZhdW1sO2hsZW4nOwokbGFuZ1snc2VsZWN0X3R5cGUnXSA9ICdFaW5lbiBUeXAgYXVzdyZhdW1sO2hsZW4nOwokbGFuZ1sndG8nXSA9ICdBbic7CiRsYW5nWydyZWNpcGllbnRzJ10gPSAnRW1wZiZhdW1sO25nZXInOwokbGFuZ1snZGVzdGluYXRpb25fY291bnQnXSA9ICclcyBaaWVsZSc7CiRsYW5nWydzYXZlJ10gPSAnU3BlaWNoZXJuJzsKJGxhbmdbJ2FkZCddID0gJ0hpbnp1ZiZ1dW1sO2dlbic7CiRsYW5nWyd1cGRhdGUnXSA9ICdBa3R1YWxpc2llcmVuJzsKJGxhbmdbJ3NhdmVfYW5kX2NvbnRpbnVlJ10gPSAnU3BlaWNoZXJuIHVuZCBCZWFyYmVpdHVuZyBmb3J0c2V0emVuJzsKJGxhbmdbJ2luZm9ybWF0aW9uJ10gPSAnSW5mb3JtYXRpb24nOwokbGFuZ1snYXV0b21hdGljJ10gPSAnQXV0b21hdGlzY2gnOwokbGFuZ1snZm9ybXMnXSA9ICdGb3JtdWxhcmUnOwokbGFuZ1snZm9ybSddID0gJ0Zvcm11bGFyICVzJzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb24nXSA9ICdLb25maWd1cmF0aW9uJzsKJGxhbmdbJ3RhYl9tYWluJ10gPSAnSGF1cHRzZWl0ZSc7CiRsYW5nWyd0YWJfYWRkaXRpb25hbCddID0gJ0Zvcm11bGFyZWluc3RlbGx1bmdlbic7CiRsYW5nWyd0YWJfYWR2YW5jZWQnXSA9ICdFcndlaXRlcnRlIEVpbnN0ZWxsdW5nZW4nOwokbGFuZ1sndGFiX3RhYmxlbGF5b3V0J10gPSAnT3B0aW9uZW4gZiZ1dW1sO3IgZGFzIHRhYmVsbGVuYmFzaWVydGUgTGF5b3V0JzsKJGxhbmdbJ3RhYl90ZW1wbGF0ZWxheW91dCddID0gJ09wdGlvbmVuIGYmdXVtbDtyIGRhcyBUZW1wbGF0ZS1MYXlvdXQnOwokbGFuZ1snZmllbGRfcmVxdWlyZW1lbnRfdXBkYXRlZCddID0gJ0ZlbGRzdGF0dXMgYWt0dWFsaXNpZXJ0Lic7CiRsYW5nWydtYXhpbXVtX3NpemUnXSA9ICdNYXguIEdyJm91bWw7JnN6bGlnO2UnOwokbGFuZ1sncGVybWl0dGVkX2V4dGVuc2lvbnMnXSA9ICdFbmR1bmdlbic7CiRsYW5nWydwZXJtaXR0ZWRfZmlsZXR5cGVzJ10gPSAnRXJsYXVidGUgRGF0ZWl0eXBlbic7CiRsYW5nWydmaWxlX3Rvb19sYXJnZSddID0gJ0RpZSBob2NoZ2VsYWRlbmUgRGF0ZWkgaXN0IHp1IGdybyZzemxpZzshIERpZSBtYXhpbWFsZSBHciZvdW1sOyZzemxpZztlIGlzdDonOwokbGFuZ1snaWxsZWdhbF9maWxlX3R5cGUnXSA9ICdEaWVzZXIgRGF0ZWl0eXAgZGFyZiBuaWNodCBob2NoZ2VsYWRlbiB3ZXJkZW4uIEJpdHRlICZ1dW1sO2JlcnByJnV1bWw7ZmVuIFNpZSwgb2IgZGllIERhdGVpZW5kdW5nIGtvcnJla3QgaXN0Lic7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHVsIGRlaW5zdGFsbGllcnQuJzsKJGxhbmdbJ2luc3RhbGxlZCddID0gJ01vZHVsdmVyc2lvbiAlcyBpbnN0YWxsaWVydC4nOwokbGFuZ1sndXBncmFkZWQnXSA9ICdNb2R1bCBhdWYgVmVyc2lvbiAlcyBha3R1YWxpc2llcnQuJzsKJGxhbmdbJ2J1dHRvbl9wcmV2aW91cyddID0gJ1p1ciZ1dW1sO2NrIC4uLic7CiRsYW5nWydidXR0b25fc3VibWl0J10gPSAnRm9ybXVsYXIgYWJzZW5kZW4nOwokbGFuZ1snYnV0dG9uX2NvbnRpbnVlJ10gPSAnV2VpdGVyIC4uLic7CiRsYW5nWyd2YWx1ZV9jaGVja2VkJ10gPSAnR2VwciZ1dW1sO2Z0JzsKJGxhbmdbJ3ZhbHVlX3VuY2hlY2tlZCddID0gJ1VuZ2VwciZ1dW1sO2Z0JzsKJGxhbmdbJ2FkZF9vcHRpb25zJ10gPSAnV2VpdGVyZSBPcHRpb25lbiBoaW56dWYmdXVtbDtnZW4nOwokbGFuZ1snZGVsZXRlX29wdGlvbnMnXSA9ICdNYXJraWVydGUgT3B0aW9uZW4gbCZvdW1sO3NjaGVuJzsKJGxhbmdbJ2FkZF9jaGVja2JveGVzJ10gPSAnV2VpdGVyZSBLb250cm9sbGsmYXVtbDtzdGNoZW4gaGluenVmJnV1bWw7Z2VuJzsKJGxhbmdbJ2RlbGV0ZV9jaGVja2JveGVzJ10gPSAnTWFya2llcnRlIEtvbnRyb2xsayZhdW1sO3N0Y2hlbiBsJm91bWw7c2NoZW4nOwokbGFuZ1snYWRkX2FkZHJlc3MnXSA9ICdFaW5lIHdlaXRlcmUgQWRyZXNzZSBoaW56dWYmdXVtbDtnZW4nOwokbGFuZ1snZGVsZXRlX2FkZHJlc3MnXSA9ICdNYXJraWVydGUgQWRyZXNzZW4gbCZvdW1sO3NjaGVuJzsKJGxhbmdbJ2FkZF9kZXN0aW5hdGlvbiddID0gJ0VpbiB3ZWl0ZXJlcyBaaWVsIGhpbnp1ZiZ1dW1sO2dlbic7CiRsYW5nWydkZWxldGVfZGVzdGluYXRpb24nXSA9ICdNYXJraWVydGUgWmllbGUgbCZvdW1sO3NjaGVuJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fbGVuZ3RoJ10gPSAnTWF4aW1hbGUgTCZhdW1sO25nZSc7CiRsYW5nWyd0aXRsZV9jaGVja2JveF9sYWJlbCddID0gJ05hbWUgZGVzIEtvbnRyb2xsayZhdW1sO3N0Y2hlbnMnOwokbGFuZ1sndGl0bGVfY2hlY2tlZF92YWx1ZSddID0gJ1dlcnQgbmFjaCBlcmZvbGd0ZXIgQWt0aXZpZXJ1bmcnOwokbGFuZ1sndGl0bGVfdW5jaGVja2VkX3ZhbHVlJ10gPSAnV2VydCBvaG5lIGVyZm9sZ3RlIEFrdGl2aWVydW5nJzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2RldGFpbHMnXSA9ICdEZXRhaWxzIHp1ciBLb250cm9sbGsmYXVtbDtzdGNoZW4tR3J1cHBlJzsKJGxhbmdbJ3RpdGxlX2RlbGV0ZSddID0gJ0wmb3VtbDtzY2hlbj8nOwokbGFuZ1sndGl0bGVfc2VsZWN0X29uZV9tZXNzYWdlJ10gPSAnVGV4dCBmJnV1bWw7ciAmcXVvdDtCaXR0ZSBhdXN3JmF1bWw7aGxlbiZxdW90Oyc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fc3ViamVjdCddID0gJ0F1c3dhaGwgZGVzICZxdW90O0JldHJlZmZzJnF1b3Q7JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X2NvdW50cnknXSA9ICdTdGFuZGFyZGF1c3dhaGwnOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfc3RhdGUnXSA9ICdTdGFuZGFyZGF1c3dhaGwnOwokbGFuZ1sndGl0bGVfb3B0aW9uX25hbWUnXSA9ICdOYW1lIGRlciBPcHRpb24nOwokbGFuZ1sndGl0bGVfb3B0aW9uX3ZhbHVlJ10gPSAnJlV1bWw7YmVybWl0dGVsdGVyIFdlcnQnOwokbGFuZ1sndGl0bGVfcHVsbGRvd25fZGV0YWlscyddID0gJ0xpc3RlbmZlbGQtT3B0aW9uZW4nOwokbGFuZ1sndGl0bGVfbXVsdGlzZWxlY3RfZGV0YWlscyddID0gJ09wdGlvbmVuIE1laHJmYWNoYXVzd2FobCc7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9hZGRyZXNzJ10gPSAnWmllbC1FbWFpbGFkcmVzc2UnOwokbGFuZ1sndGl0bGVfZW1haWxfZnJvbV9uYW1lJ10gPSAnJnF1b3Q7Vm9uIE5hbWUmcXVvdDsgZGVyIEVtYWlsJzsKJGxhbmdbJ3RpdGxlX3JlbGF4ZWRfZW1haWxfcmVnZXgnXSA9ICdMb2NrZXJlIEVtYWlsLSZVdW1sO2JlcnByJnV1bWw7ZnVuZyB2ZXJ3ZW5kZW4nOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9yZWdleF9sb25nJ10gPSAnVmVyd2VuZGV0IGVpbmUgbG9ja2VyZSAmVXVtbDtiZXJwciZ1dW1sO2Z1bmcgZGVyIEVtYWlsIChlcmxhdWJ0IHouIEJzcC4gJnF1b3Q7eEB5JnF1b3Q7IGFuc3RhdHQgZGVzIGVyZm9yZGVybGljaGVuICZxdW90O3hAeS5kZSZxdW90OyknOwokbGFuZ1sndGl0bGVfZW1haWxfZnJvbV9hZGRyZXNzJ10gPSAnJnF1b3Q7Vm9uIEFkcmVzc2UmcXVvdDsgZGVyIEVtYWlsJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2VuY29kaW5nJ10gPSAnWmVpY2hlbi1Db2RpZXJ1bmcgZGVyIEVtYWlsJzsKJGxhbmdbJ3RpdGxlX2RpcmVjdG9yX2RldGFpbHMnXSA9ICdMaXN0ZW5mZWxkYmFzaWVydGUgRW1haWwtRGV0YWlscyc7CiRsYW5nWyd0aXRsZV9maWxlX25hbWUnXSA9ICdEYXRlaW5hbWUnOwokbGFuZ1sndGl0bGVfZW1haWxfc3ViamVjdCddID0gJ0JldHJlZmYtWmVpbGUgZGVyIEVtYWlsJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmFtZSddID0gJ0Zvcm11bGFybmFtZSc7CiRsYW5nWyd0aXRsZV9mb3JtX3N0YXR1cyddID0gJ0Zvcm11bGFyc3RhdHVzJzsKJGxhbmdbJ3RpdGxlX3JlYWR5X2Zvcl9kZXBsb3ltZW50J10gPSAnRWluc2F0emJlcmVpdCc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkxJ10gPSAnTmljaHQgZWluc2F0emJlcmVpdCc7CiRsYW5nWyd0aXRsZV9yZWRpcmVjdF9wYWdlJ10gPSAnU2VpdGUsIGF1ZiBkaWUgbmFjaCBkZW0gVmVyc2FuZCBnZXNwcnVuZ2VuIHdlcmRlbiBzb2xsJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTInXSA9ICdCaXR0ZSBmJnV1bWw7Z2VuIFNpZSBlaW4gRmVsZCBoaW56dSwgbWl0IGRlbSBkaWUgQmVudXR6ZXJlaW5nYWJlbiB2ZXJhcmJlaXRldCB3ZXJkZW4uIFNpZSBrJm91bWw7bm5lbic7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHlfbGluayddID0gJ2RpZXNlIFRhc3RlbmtvbWJpbmF0aW9uIHZlcndlbmRlbiwnOwokbGFuZ1sndGl0bGVfZm9ybV9hbGlhcyddID0gJ0Zvcm11bGFyLUFsaWFzJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fZmllbGRzJ10gPSAnRm9ybXVsYXJmZWxkZXInOwokbGFuZ1sndGl0bGVfZmllbGRfbmFtZSddID0gJ0ZlbGRuYW1lJzsKJGxhbmdbJ3RpdGxlX3JhZGlvZ3JvdXBfZGV0YWlscyddID0gJ0RldGFpbHMgenVyIE9wdGlvbnNmZWxkLUdydXBwZSc7CiRsYW5nWyd0aXRsZV9maWVsZF90eXBlJ10gPSAnRmVsZHR5cCc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkzJ10gPSAndW0gZWluIEZlbGQgenVyIEZvcm11bGFydmVyYXJiZWl0dW5nIHp1IGVyc3RlbGxlbi4nOwokbGFuZ1sndGl0bGVfYWRkX25ld19mb3JtJ10gPSAnTmV1ZXMgRm9ybXVsYXIgaGluenVmJnV1bWw7Z2VuJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbiddID0gJ1ZlcnNpb24gZGVzIEZvcm1CdWlsZGVyLU1vZHVscyBhbnplaWdlbj8nOwokbGFuZ1sndGl0bGVfc2hvd192ZXJzaW9uX2xvbmcnXSA9ICdBbHMgSGlsZmUgenVyIEZlaGxlcmJlcnNlaXRpZ3VuZyB3aXJkIGRpZSBWZXJzaW9uc251bW1lciBkZXMgRm9ybUJ1aWxkZXItTW9kdWxzIGluIGVpbmVtIEtvbW1lbnRhciBlaW5nZWJldHRldC4nOwokbGFuZ1sndGl0bGVfYWRkX25ld19maWVsZCddID0gJ05ldWVzIEZlbGQgaGluenVmJnV1bWw7Z2VuJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fc3VibWl0X2J1dHRvbiddID0gJ1RleHQgZiZ1dW1sO3IgZGVuICZxdW90O0Fic2VuZGVuJnF1b3Q7LUJ1dHRvbic7CiRsYW5nWyd0aXRsZV9mb3JtX25leHRfYnV0dG9uJ10gPSAnVGV4dCBmJnV1bWw7ciBkZW4gJnF1b3Q7V2VpdGVyJnF1b3Q7LUJ1dHRvbiAoZiZ1dW1sO3IgbWVocnNlaXRpZ2UgRm9ybXVsYXJlKSc7CiRsYW5nWyd0aXRsZV9mb3JtX3ByZXZfYnV0dG9uJ10gPSAnVGV4dCBmJnV1bWw7ciBkZW4gJnF1b3Q7WnVyJnV1bWw7Y2smcXVvdDstQnV0dG9uIChmJnV1bWw7ciBtZWhyc2VpdGlnZSBGb3JtdWxhcmUpJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3ZhbGlkYXRpb24nXSA9ICdGZWxkLSZVdW1sO2JlcnByJnV1bWw7ZnVuZyc7CiRsYW5nWyd0aXRsZV9mb3JtX2Nzc19jbGFzcyddID0gJ0NTUy1LbGFzc2UgZiZ1dW1sO3IgZGllc2VzIEZvcm11bGFyJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2Nzc19jbGFzcyddID0gJ0NTUy1LbGFzc2UgZiZ1dW1sO3IgZGllc2VzIEZlbGQnOwokbGFuZ1sndGl0bGVfZm9ybV9yZXF1aXJlZF9zeW1ib2wnXSA9ICdTeW1ib2wgenVyIEtlbm56ZWljaG51bmcgZGVyIFBmbGljaHRmZWxkZXInOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWQnXSA9ICdFcmZvcmRlcmxpY2gnOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWRfbG9uZyddID0gJ0VyZm9yZGVydCBlaW5lIEFudHdvcnQgaW4gZGllc2VtIEZlbGQnOwokbGFuZ1sndGl0bGVfaGlkZV9sYWJlbCddID0gJ0Jlc2NocmlmdHVuZyB2ZXJiZXJnZW4nOwokbGFuZ1sndGl0bGVfaGlkZV9sYWJlbF9sb25nJ10gPSAnRGllc2VuIEZlbGRuYW1lbiBpbSBGb3JtdWxhciB2ZXJiZXJnZW4nOwokbGFuZ1sndGl0bGVfdGV4dCddID0gJ0FuenV6ZWlnZW5kZXIgc3RhdGlzY2hlciBUZXh0JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlZ2V4J10gPSAnUmVnZXgtJlV1bWw7YmVycHImdXVtbDtmdW5nJzsKJGxhbmdbJ3RpdGxlX2xpbmVzX3RvX3Nob3cnXSA9ICdBbnphaGwgZGVyIGFuZ2V6ZWlndGVuIFplaWxlbic7CiRsYW5nWydub19kZWZhdWx0J10gPSAnS2VpbmUgVm9yZWluc3RlbGx1bmcnOwokbGFuZ1sncmVkaXJlY3RfYWZ0ZXJfYXBwcm92YWwnXSA9ICdTZWl0ZSwgYXVmIGRpZSBuYWNoICZVdW1sO2JlcnByJnV1bWw7ZnVuZyB3ZWl0ZXJnZWxlaXRldCB3aXJkJzsKJGxhbmdbJ3RpdGxlX3JlZ2V4X2hlbHAnXSA9ICdUaGlzIHJlZ3VsYXIgZXhwcmVzc2lvbiB3aWxsIG9ubHkgYmUgdXNlZCBpZiAmcXVvdDt2YWxpZGF0aW9uIHR5cGUmcXVvdDsgaXMgc2V0IHRvIGEgcmVnZXgtcmVsYXRlZCBvcHRpb24uIEluY2x1ZGUgYSBmdWxsIFBlcmwtc3R5bGUgcmVnZXgsIGluY2x1ZGluZyB0aGUgc3RhcnQvc3RvcCBzbGFzaGVzIGFuZCBmbGFncyAoei4gQnNwLiAmcXVvdDsvaW1hZ2VcLihcZCspL2kmcXVvdDspJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2FiYnJldiddID0gJ0VyZm9yZGVybC4nOwokbGFuZ1sndGl0bGVfdGl0bGVfcG9zaXRpb24nXSA9ICdGZWxkIFRpdGVscG9zaXRpb24gKG51ciBiZWkgRGFyc3RlbGx1bmcgb2huZSBDU1MpJzsKJGxhbmdbJ3RpdGxlX3RhYmxlX2xheW91dF9sZWZ0J10gPSAnVGl0ZWwgbGlua3MnOwokbGFuZ1sndGl0bGVfdGFibGVfbGF5b3V0X2Fib3ZlJ10gPSAnVGl0ZWwgb2Jlbic7CiRsYW5nWyd0aXRsZV9oaWRlX2Vycm9ycyddID0gJ0ZlaGxlciB2ZXJiZXJnZW4nOwokbGFuZ1sndGl0bGVfZm9ybV9kaXNwbGF5dHlwZSddID0gJ0FuemVpZ2V0eXAgZGVzIEZvcm11bGFycyc7CiRsYW5nWyd0aXRsZV9oaWRlX2Vycm9yc19sb25nJ10gPSAnRmVobGVyLU1lbGR1bmdlbiB2b3IgZGVuIEJlbnV0emVybiB2ZXJiZXJnZW4uJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX3RlbXBsYXRlJ10gPSAnRW1haWwtVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfbWF4aW11bV9zaXplJ10gPSAnTWF4aW1hbGUgR3Imb3VtbDsmc3psaWc7ZSBmJnV1bWw7ciBob2NoenVsYWRlbmRlIERhdGVpZW4gKGtpbG9ieXRlKSc7CiRsYW5nWyd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ1p1Z2VsYXNzZW5lIERhdGVpLUVuZHVuZ2VuJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zX2xvbmcnXSA9ICdCaXR0ZSBnZWJlbiBTaWUgZWluZSBBdWZ6JmF1bWw7aGx1bmcgZGVyIHp1Z2VsYXNzZW5lbiBEYXRlaS1FbmR1bmdlbiBqZXdlaWxzIGdldHJlbm50IGR1Y2ggZWluIEtvbW1hIGVpbiAob2huZSBQdW5rdCAtIHouQi4gJnF1b3Q7anBnLGdpZixqcGVnJnF1b3Q7KS4gTGVlcnplaWNoZW4gd2VyZGVuIGlnbm9yaWVydC4gV2lyZCBkYXMgRmVsZCBsZWVyIGdlbGFzc2VuLCBnZWx0ZW4ga2VpbmUgQmVzY2hyJmF1bWw7bmt1bmdlbi4nOwokbGFuZ1sndGl0bGVfc2hvd19saW1pdGF0aW9ucyddID0gJ0Jlc2NociZhdW1sO25rdW5nZW4gYW56ZWlnZW4/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnNfbG9uZyddID0gJ0Jlc2NociZhdW1sO25rdW5nZW4gZGVyIEdyJm91bWw7JnN6bGlnO2UgdW5kIGRlciBEYXRlaS1FbmR1bmdlbiBtaXQgZGVtIFVwbG9hZC1GZWxkIGFuemVpZ2VuPyc7CiRsYW5nWyd0aXRsZV9mb3JtX3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgZiZ1dW1sO3IgZGllIEZvcm11bGFyYW56ZWlnZSc7CiRsYW5nWyd0aXRsZV9wYWdlX3hfb2ZfeSddID0gJ1NlaXRlICVzIHZvbiAlcyc7CiRsYW5nWyd0aXRsZV9ub19hZHZhbmNlZF9vcHRpb25zJ10gPSAnRGFzIEZlbGQgaGF0IGtlaW5lIGVyd2VpdGVydGVuIE9wdGlvbmVuLic7CiRsYW5nWyd0aXRsZV9mb3JtX3Vuc3BlY2lmaWVkJ10gPSAnVGV4dCwgZGVyIGJlaSB1bmdlbmF1ZW4gRWluZ2FiZW4genVyJnV1bWw7Y2tnZWdlYmVuIHdpcmQnOwokbGFuZ1sndGl0bGVfZW5hYmxlX2Zhc3RhZGRfbG9uZyddID0gJ0FrdGl2aWVydCBkYXMgc2NobmVsbGUgSGluenVmJnV1bWw7Z2VuIHZvbiBMaXN0ZW5mZWxkZXJuIGluIEZvcm11bGFyZW4nOwokbGFuZ1sndGl0bGVfZW5hYmxlX2Zhc3RhZGQnXSA9ICdEYXMgc2NobmVsbGUgSGluenVmJnV1bWw7Z2VuIHZvbiBMaXN0ZW5mZWxkZXJuIGFrdGl2aWVyZW4/JzsKJGxhbmdbJ3RpdGxlX2Zhc3RhZGQnXSA9ICdTY2huZWxsZSBGZWxkZXJzdGVsbHVuZyc7CiRsYW5nWydsaW5rX2xhYmVsJ10gPSAnQmVzY2hyaWZ0dW5nIGRlcyBMaW5rcyc7CiRsYW5nWydsaW5rX2Rlc3RpbmF0aW9uJ10gPSAnWmllbC1VUkwgZGVzIExpbmtzJzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVzX2Zvcl90ZW1wbGF0ZSddID0gJ1ZhcmlhYmxlbiBmJnV1bWw7ciBkYXMgVGVtcGxhdGUnOwokbGFuZ1snaGVscF9zdWJtaXNzaW9uX2RhdGUnXSA9ICdWZXJzYW5kZGF0dW0nOwokbGFuZ1snaGVscF9zZXJ2ZXJfbmFtZSddID0gJ0lociBTZXJ2ZXInOwokbGFuZ1snaGVscF9zdWJfc291cmNlX2lwJ10gPSAnSVAtQWRyZXNzZSBkZXMgRm9ybXVsYXJhYnNlbmRlcnMnOwokbGFuZ1snaGVscF9zdWJfdXJsJ10gPSAnVVJMIGRlciBGb3JtdWxhcnNlaXRlJzsKJGxhbmdbJ2hlbHBfb3RoZXJfZmllbGRzJ10gPSAnV2VubiBTaWUgZGllcyBkZW0gRm9ybXVsYXIgaGluenVmJnV1bWw7Z2VuLCBzaW5kIHdlaXRlcmUgRmVsZGVyIHZlcmYmdXVtbDtnYmFyLic7CiRsYW5nWydoZWxwX2RhdGVfZm9ybWF0J10gPSAnSW5mb3JtYXRpb25lbiB6dXIgRm9ybWF0aWVydW5nIGZpbmRlbiBTaWUgPGEgaHJlZj0mcXVvdDtodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwJnF1b3Q7IHRhcmdldD1fTkVXPmluIGRlciBQSFAtQmVzY2hyZWlidW5nPC9hPi4nOwokbGFuZ1snaGVscF92YXJpYWJsZV9uYW1lJ10gPSAnVmFyaWFibGUnOwokbGFuZ1snaGVscF9mb3JtX2ZpZWxkJ10gPSAnRmVsZCByZXByJmF1bWw7c2VudGllcnQnOwokbGFuZ1snbGlua19iYWNrX3RvX2Zvcm0nXSA9ICcmbGFxdW87IFp1ciZ1dW1sO2NrIHp1bSBGb3JtdWxhcic7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX3RlbXBsYXRlJ10gPSAnRWluIEJlaXNwaWVsLVRlbXBsYXRlIGVyc3RlbGxlbic7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2hlYWRlciddID0gJ0VpbmVuIE11c3Rlci1IZWFkZXIgZXJzdGVsbGVuJzsKJGxhbmdbJ2hlbHBfdGFiX3N5bWJvbCddID0gJ2VpbmVuIFplaWxlbnZvcnNjaHViJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfdGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSBmJnV1bWw7ciBlaW5lIFplaWxlIGRlciBhdXNnZWdlYmVuZW4gRGF0ZWknOwokbGFuZ1sndGl0bGVfZmlsZV9oZWFkZXInXSA9ICdUZW1wbGF0ZSBmJnV1bWw7ciBkZW4gSGVhZGVyIGRlciBhdXNnZWdlYmVuZW4gRGF0ZWknOwokbGFuZ1sndGl0bGVfY29uZmlybWF0aW9uX3VybCddID0gJ1VSTCB6dXIgQmVzdCZhdW1sO3RpZ3VuZyBkZXMgRm9ybXVsYXJzJzsKJGxhbmdbJ25vX3JlZmVycmVyX2luZm8nXSA9ICdLZWluZSBJbmZvcm1hdGlvbmVuICZ1dW1sO2JlciBkZW4gSFRUUF9SRUZFUkVSIHZlcmYmdXVtbDtnYmFyIChwcm9iYWJseSBkdWUgdG8gdXNlIG9mIFVzZXIgRW1haWwgVmFsaWRhdGlvbiknOwokbGFuZ1sndmFsaWRhdGlvbl9wYXJhbV9lcnJvciddID0gJ0ZlaGxlciBiZWltICZVdW1sO2JlcnByJnV1bWw7ZmVuIGRlciBQYXJhbWV0ZXIuIEJpdHRlIHN0ZWxsZW4gU2llIHNpY2hlciwgZGFzcyBkaWUgVVJMIGF1cyBJaHJlciBFbWFpbCBrb3JyZWt0IGtvcGllcnQgd3VyZGUhJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVzcG9uc2VfZXJyb3InXSA9ICdGZWhsZXIgYmVpIGRlciAmVXVtbDtiZXJwciZ1dW1sO2Z1bmcuIEJpdHRlIHN0ZWxsZW4gU2llIHNpY2hlciwgZGFzcyBkaWUgVVJMIGF1cyBJaHJlciBFbWFpbCBrb3JyZWt0IGtvcGllcnQgd3VyZGUhJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbm9fZmllbGRfZXJyb3InXSA9ICdGZWhsZXIgYmVpIGRlciAmVXVtbDtiZXJwciZ1dW1sO2Z1bmcuIERpZXNlcyBGb3JtdWxhciBlbnRoJmF1bWw7bHQga2VpbiBGZWxkIHp1ciAmVXVtbDtiZXJwciZ1dW1sO2Z1bmcgZGVyIEVtYWlsISc7CiRsYW5nWyd0aXRsZV9kYXRlX2Zvcm1hdCddID0gJ0RhdHVtcy1Gb3JtYXQgKHNpZWhlIDxhIGhyZWY9JnF1b3Q7aHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5kYXRlLnBocCZxdW90Oz5QSFAgRGF0dW1zZm9ybWF0PC9hPiknOwokbGFuZ1sndGl0bGVfdXNlX3d5c2l3eWcnXSA9ICdXWVNJV1lHLUVkaXRvciBmJnV1bWw7ciBkZW4gVGV4dGJlcmVpY2ggdmVyd2VuZGVuPyc7CiRsYW5nWydkaXNwdHlwZV90YWJsZSddID0gJ1RhYmVsbGVuL0NTUyc7CiRsYW5nWydkaXNwdHlwZV9jc3MnXSA9ICdDU1MgcHVyJzsKJGxhbmdbJ2Rpc3B0eXBlX3RlbXBsYXRlJ10gPSAnQmVudXR6ZXItVGVtcGxhdGUnOwokbGFuZ1snYWRtaW5kZXNjJ10gPSAnSGluenVmJnV1bWw7Z2VuLCBCZWFyYmVpdGVuIHVuZCBWZXJ3YWx0ZW4gdm9uIGludGVyYWt0aXZlbiBGb3JtdWxhcmVuJzsKJGxhbmdbJ2RhdGVfamFudWFyeSddID0gJ0phbnVhcic7CiRsYW5nWydkYXRlX2ZlYnJ1YXJ5J10gPSAnRmVicnVhcic7CiRsYW5nWydkYXRlX21hcmNoJ10gPSAnTSZhdW1sO3J6JzsKJGxhbmdbJ2RhdGVfYXByaWwnXSA9ICdBcHJpbCc7CiRsYW5nWydkYXRlX21heSddID0gJ01haSc7CiRsYW5nWydkYXRlX2p1bmUnXSA9ICdKdW5pJzsKJGxhbmdbJ2RhdGVfanVseSddID0gJ0p1bGknOwokbGFuZ1snZGF0ZV9hdWd1c3QnXSA9ICdBdWd1c3QnOwokbGFuZ1snZGF0ZV9zZXB0ZW1iZXInXSA9ICdTZXB0ZW1iZXInOwokbGFuZ1snZGF0ZV9vY3RvYmVyJ10gPSAnT2t0b2Jlcic7CiRsYW5nWydkYXRlX25vdmVtYmVyJ10gPSAnTm92ZW1iZXInOwokbGFuZ1snZGF0ZV9kZWNlbWJlciddID0gJ0RlemVtYmVyJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3InXSA9ICdFbnRzY2h1bGRpZ3VuZyEgQmVpbSBWZXJzYW5kIGRlcyBGb3JtdWxhcnMgaXN0IGVpbiBGZWhsZXIgYXVmZ2V0cmV0ZW4uJzsKJGxhbmdbJ3N1Ym1pdF9lcnJvciddID0gJ0ZlaGxlciBiZWltIFZlcnNhbmQ6ICVzJzsKJGxhbmdbJ3VwbG9hZF9hdHRhY2hfZXJyb3InXSA9ICdGZWhsZXIgYmVpbSBIb2NobGFkZW4gZGVyIERhdGVpICVzICh0ZW1wb3ImYXVtbDtyZXIgTmFtZSAlcyBkZXMgVHlwcyAlcyknOwokbGFuZ1snc3VibWlzc2lvbl9lcnJvcl9maWxlX2xvY2snXSA9ICdGZWhsZXIuIERhdGVpIGtvbm50ZSBuaWNodCBnZXNwZXJydCB3ZXJkZW4uJzsKJGxhbmdbJ2VtYWlsX2RlZmF1bHRfdGVtcGxhdGUnXSA9ICdGb3JtQnVpbGRlci1WZXJzYW5kJzsKJGxhbmdbJ2VtYWlsX3RlbXBsYXRlX25vdF9zZXQnXSA9ICc8YnIvPkRhcyBFbWFpbC1UZW1wbGF0ZSB3dXJkZSBub2NoIG5pY2h0IGZlc3RnZWxlZ3QhJzsKJGxhbmdbJ21pc3NpbmdfY21zX21haWxlciddID0gJ0Zvcm1CdWlsZGVyOiBLb25udGUgZGFzIGVyZm9yZGVybGljaGUgQ01TTWFpbGVyLU1vZHVsIG5pY2h0IGZpbmRlbiEnOwokbGFuZ1sndXNlcl9hcHByb3ZlZF9zdWJtaXNzaW9uJ10gPSAnQmVudXR6ZXJnZXByJnV1bWw7ZnRlICZVdW1sO2Jlcm1pdHRsdW5nICVzIHZvbiAlcyc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J10gPSAnQXVzZiZ1dW1sO2hyZW4sIHdlbm4gZWluIEZvcm11bGFyIG1pdCBGb3JtQnVpbGRlciB2ZXJzYW5kdCB3dXJkZSc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InXSA9ICdBdXNmJnV1bWw7aHJlbiwgd2VubiBiZWltIFZlcnNhbmQgZWluZXMgRm9ybUJ1aWxkZXItRm9ybXVsYXJzIGVpbiBGZWhsZXIgYXVmZ2V0cmV0ZW4gaXN0JzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1EaXNwbGF5J10gPSAnQXVzZiZ1dW1sO2hyZW4sIHdlbm4gZWluIEZvcm1CdWlsZGVyLUZvcm11bGFyIGFuZ2V6ZWlndCB3dXJkZSc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J10gPSAnPHA+QXVzZiZ1dW1sO2hyZW4sIHdlbm4gZWluIEZvcm11bGFyIG1pdCBGb3JtQnVpbGRlciB2ZXJzYW5kdCB3dXJkZS48L3A+DQo8aDQ+UGFyYW1ldGVyPC9oND4NCjx1bD4NCjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBOYW1lIGRlcyBGb3JtdWxhcnMgKHN0cmluZyk8L2xpPg0KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBpbnRlcm5lIElEIGRlcyBGb3JtdWxhcnMgKGludCk8L2xpPg0KPC91bD4gJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddID0gJzxwPkF1c2YmdXVtbDtocmVuLCB3ZW5uIGJlaW0gVmVyc2FuZCBlaW5lcyBGb3JtQnVpbGRlci1Gb3JtdWxhcnMgZWluIEZlaGxlciBhdWZnZXRyZXRlbiBpc3Q8L3A+DQo8aDQ+UGFyYW1ldGVyPC9oND4NCjx1bD4NCjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBOYW1lIGRlcyBGb3JtdWxhcnMgKHN0cmluZyk8L2xpPg0KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBpbnRlcm5lIElEIGRlcyBGb3JtdWxhcnMgKGludCk8L2xpPg0KPGxpPjxlbT5lcnJvcjwvZW0+IC0gZWluZSBMaXN0ZSBhbGxlciBiZWthbm50ZSBGZWhsZXIgKHN0cmluZyk8L2xpPg0KPC91bD4gJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1EaXNwbGF5J10gPSAnPHA+QXVzZiZ1dW1sO2hyZW4sIHdlbm4gZWluIEZvcm1CdWlsZGVyLUZvcm11bGFyIGFuZ2V6ZWlndCB3dXJkZTwvcD4NCjxoND5QYXJhbWV0ZXI8L2g0Pg0KPHVsPg0KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIE5hbWUgZGVzIEZvcm11bGFycyAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIGludGVybmUgSUQgZGVzIEZvcm11bGFycyAoaW50KTwvbGk+DQo8L3VsPiAnOwokbGFuZ1sncG9zdF9pbnN0YWxsJ10gPSAnPHA+U3RlbGxlbiBTaWUgc2ljaGVyLCBkYXNzIGRpZSBCZXJlY2h0aWd1bmcgJnF1b3Q7TW9kaWZ5IEZvcm1zJnF1b3Q7IA0KZiZ1dW1sO3IgZGllIFVzZXIgZ2VzZXR6dCBpc3QsIHdlbGNoZSBkaWUgRmVlZGJhY2stRm9ybXVsYXJlIGJlYXJiZWl0ZW4gd2VyZGVuLiBTb2xsZW4gZGllIFdlcnRlIGF1cyBkZW0gRm9ybXVsYXIgcGVyIEVtYWlsIHZlcnNhbmR0IHdlcmRlbiwgDQpzdGVsbGVuIFNpZSBlYmVuZmFsbHMgc2ljaGVyLCBkYXNzIGRpZSBLb25maWd1cmF0aW9uIGVudHNwcmVjaGVuZCBha3R1YWxpc2llcnQgd3VyZGUuPC9wPg0KPHA+QUNIVFVORzogVyZhdW1sO2hyZW5kIGRlciBCZWFyYmVpdHVuZyBkYXJmIGRhcyBqZXdlaWxpZ2UgRmVlZGJhY2stRm9ybXVsYXIgDQpCZWFyYmVpdHVuZyBuaWNodCBha3RpdiBzZWluICg9bnV0emJhciBmJnV1bWw7ciBkaWUgRyZhdW1sO3N0ZSBJaHJlciBIb21lcGFnZSkuIFNpZSBzb2xsdGVuIGRhaGVyIGRlbiBGZWVkYmFja2Zvcm11bGFyLVRhZyBlcnN0IGRhbm4gaW4gZWluZSBha3RpdmUgSW5oYWx0c3NlaXRlIGVpbmYmdXVtbDtnZW4sIHdlbm4gZGFzIEZvcm11bGFyIGtvbXBsZXR0IGVyc3RlbGx0IGlzdC4gQW5kZXJlbmZhbGxzIGthbm4gZXMgenUgZmVobGVyaGFmdGVuIEVyZ2Vibmlzc2VuIGtvbW1lbi48L3A+DQo8cD5JbSAmdXVtbDticmlnZW4gdW50ZXJzdCZ1dW1sO3R6dCBkaWVzZSBWZXJzaW9uIGtlaW5lIHBhcmFsbGVsZSBCZWFyYmVpdHVuZyB2b24gRm9ybXVsYXJlbiBkdXJjaCBtZWhyZXJlIEFkbWluaXN0cmF0b3Jlbi4gQml0dGUgc3RlbGxlbiBTaWUgc2ljaGVyLCBkYXNzIGVpbiBGb3JtdWxhciBqZXdlaWxzIG51ciB2b24gZWluZW0gQWRtaW5pc3RyYXRvciBiZWFyYmVpdGV0IHdpcmQuPC9wPic7CiRsYW5nWydoZWxwJ10gPSAnPGgzPldhcyBtYWNodCBkaWVzZXMgTW9kdWw/PC9oMz4NCjxwPkRhcyBGb3JtQnVpbGRlci1Nb2R1bCBlcmxhdWJ0IElobmVuLCBGZWVkYmFjay1Gb3JtdWxhcmUgenUgZXJzdGVsbGVuIChsb2dpc2NoLCBlcyBpc3QgZGVyIE5hY2hmb2xnZXIgZGVzIEZlZWRiYWNrRm9ybS1Nb2R1bHMpLCBlcndlaXRlcnQgdW0gZGllIEYmYXVtbDtoaWdrZWl0LCBlaW5nZWdlYmVuZSBEYXRlbiBhdWNoIGluIGVpbmVyIERhdGVuYmFuayBhYmxlZ2VuIHp1IGsmb3VtbDtubmVuLiBadXNhbW1lbiBtaXQgZGVtIEZvcm1Ccm93c2VyLU1vZHVsIGsmb3VtbDtubmVuIFNpZSBlaW5zZXR6ZW4sIHVtIGVpbmZhY2hlIERhdGVuYmFuay1BbndlbmR1bmdlbiBzZWxic3QgenUgZXJzdGVsbGVuLjwvcD4NCjxwPkRpZSB2b24gRm9ybUJ1aWxkZXIgZXJ6ZXVndGVuIEZvcm11bGFyZSBrJm91bWw7bm5lbiBpbiBUZW1wbGF0ZXMgDQp1bmQvb2RlciBTZWl0ZW4gZWluZ2VmJnV1bWw7Z3Qgd2VyZGVuLiBJbiBkaWUgRm9ybXVsYXIgayZvdW1sO25uZW4gdmVyc2NoaWVkZW5lIEFydGVuIHZvbiBEYXRlbiBlaW5nZWdlYmVuIHdlcmRlbi4gRGllc2UgRWluZ2FiZW4gDQo8cD5Gb3JtdWxhcmZlbGRlcm4gd2VyZGVuIE5hbWVuIHp1Z2V3aWVzZW4uIERpZXNlIE5hbWVuIGlkZW50aWZpemllcmVuIElocmUgRm9ybXVsYXJmZWxkZXIsIG5pY2h0IG51ciBhdWYgZGVtIEJpbGRzY2hpcm0gYWxzIEJlemVpY2hudW5nZW4gZGllIGRlbSBCZW51dHplciBkaWVuZW4sIHNvbmRlcm4gYXVjaCBpbiBkZW4gRGF0ZW4gd2VubiBzaWUgdmVyc2NoaWNrdCB3ZXJkZW4uIERhbWl0IHdpcmQgc2ljaGVyZ2VzdGVsbHQgZGFzcyBTaWUgZGFzIHNlaGVuIHdhcyBkZXIgTnV0emVyIGVpbmdlZ2ViZW4gaGF0LiA8YnI+DQogIERlbiBOYW1lbiB3aWUgZWluZSBGcmFnZSB6dSBnZXN0YWx0ZW4gaXN0IGVpbmUgc2VociBoYW5kbGljaGUgQXJ0IHVuZCBXZWlzZSBkZW0gTnV0emVyIHp1IHZlcm1pdHRlbG4gd2FzIGhpZXIgdm9uIGlobSBlcndhcnRldCB3aXJkLiA8YnI+DQogIFZpZWxlIEZlbGRlciBoYWJlbiBiZWlkZXMsIE5hbWVuIHVuZCBXZXJ0ZS4gRGllIE5hbWVuLCBkaWUgZGVtIE51dHplciBhbmdlemVpZ3Qgd2VyZGVuIHVuZCBkaWUgV2VydGUsIGRhcyBzaW5kIGRpZSBkaWUgZ2VzcGVpY2hlcnQgd2VyZGVuIHdlbm4gZGVyIE51dHplciBkYXMgRm9ybXVsYXIgYWJzY2hpY2t0LiBEaWUgV2VydGUgc2luZCB3ZWRlciB2b20gQmVudXR6ZXIgZWluc2VoYmFyIG5vY2ggaW0gSFRNTCwgc29taXQgaXN0IGVzIHNpY2hlciBzaWUgZiZhbXA7dXVtbDtyIEVtYWlsYWRyZXNzZW4gdXN3LiB6dSB2ZXJ3ZW5kZW4uIDwvcD4NCjxwPkVpbmlnZSBGZWxkZXIgayZhbXA7b3VtbDtubmVuIG1laHJlcmUgV2VydGUgb2RlciBOYW1lbi9XZXJ0ZSBQYWFyZSBoYWJlbi4gV2VubiBTaWUgenVlcnN0IGVpbiBzb2xjaGVzIEZlbGQgZXJzdGVsbGVuLCBrYW5uIGVzIG0mYW1wO291bWw7Z2xpY2ggc2VpbiwgZGFzcyBuaWNodCBnZW4mYW1wO3V1bWw7Z2VuZCBFaW5nYWJlZmVsZGVyIHZvcmhhbmRlbiBzaW5kLCB1bSBkaWUgV2VydGUgZWluenV0cmFnZW4uIFVtIG1laHIgTSZhbXA7b3VtbDtnbGljaGtlaXRlbiB6dSBlcmhhbHRlbiBXZXJ0ZSBlaW56dXRyYWdlbiwgYmVudXR6ZW4gU2llIGRlbiBTY2hhbHRlciBhbSB1bnRlcmVuIEVuZGUgZGVyIFNlaXRlIGYmYW1wO3V1bWw7ciB3ZWl0ZXJlIE9wdGlvbmVuLiA8L3A+DQo8cD5GZWxkZXJuIGsmYW1wO291bWw7bm5lbiBWYWxpZGllcnVuZ3NyZWdlbG4genVnZXdpZXNlbiB3ZXJkZW4sIHdlbGNoZSBqZSBuYWNoIEZlbGR0eXAgdW50ZXJzY2hpZWRsaWNoIHNlaW4gayZhbXA7b3VtbDtubmVuLiBEaWVzZSBSZWdlbG4gaGVsZmVuIHNpY2hlcnp1c3RlbGxlbiBkYXNzIGRlciBOdXR6ZXIgZyZhbXA7dXVtbDtsdGlnZSBEYXRlbiBlaW5naWJ0LiBBdSZhbXA7c3psaWc7ZXJkZW0gaXN0IGVzIE0mYW1wO291bWw7Z2xpY2ggRmVsZGVyIHNlcGVyYXQgbWl0IGVpbmVtICZhbXA7cXVvdDt3aXJkIGJlbiZhbXA7b3VtbDt0aWd0JmFtcDtxdW90OyB6dSBtYXJraWVyZW4sIGRhbWl0IHdpcmQgZGVyIE51dHplciBzb3p1c2FnZW4gJmFtcDtxdW90O2dlend1bmdlbiZhbXA7cXVvdDsgRWluZ2FiZW4genUgbWFjaGVuLiA8L3A+DQo8cD5GZWxkZXJuIGsmYW1wO291bWw7bm5lbiBhdWNoIENTUyBLbGFzc2VuIHp1Z2V3aWVzZW4gd2VyZGVuLiBFcyB3ZXJkZW4gZGllIEVpbmdhYmVmZWxkZXIgbWl0IGVpbmVtIERJViBUYWcgdW5kIGRhenVnZWgmYW1wO291bWw7cmlnZXIgQ1NTIEtsYXNzZSB1bWdlYmVuOyBzb21pdCBrJmFtcDtvdW1sO25uZW4gU2llIElociBGb3JtdWxhciBzZWxic3QgZ2VzdGFsdGVuLiBVbSBkaWVzIGVmZml6aWVudCBudXR6ZW4genUgayZhbXA7b3VtbDtubmVuIHNvbGx0ZW4gaW4gZGVuIFF1ZWxsdGV4dCBkZXMgRm9ybXVsYXJlcyBnZWhlbiB1bmQgZGFubiBJaHJlbiBDU1MgLSBDb2RlIHNjaHJlaWJlbi4gPC9wPg0KPHVsPg0KPGxpPlN0YW5kYXJkIEVpbmdhYmVmZWxkZXINCiAgPHVsPg0KICAgIDxsaT5UZXh0IEVpbmdhYmVmZWxkLiBEaWVzIGlzdCBkYXMgU3RhbmRhcmQgRWluZ2FiZWZlbGQuIFNpZSBrJmFtcDtvdW1sO25uZW4gZGllIEwmYW1wO2F1bWw7bmdlIGRlciBlaWdlZ2ViZW5lbiBaZWljaGVuIHcmYW1wO2F1bWw7aGxlbiB1bmQgdmVyc2NoaWVkZW5lIFZhbGlkaWVydW5nc2Z1bmt0aW9uZW4gYXVmIGRpZXNlIEZlbGQgYW53ZW5kZW4uPC9saT4NCiAgICA8bGk+VGV4dGJlcmVpY2ggLiBEaWVzIGlzdCBlaW4gZ3JvJmFtcDtzemxpZztlcyBGcmVpZnJvbSAtIFRleHRlaW5nYWJlZmVsZC48L2xpPg0KICAgIDxsaT5DaGVja2JveC4gRGFzIGlzdCBkaWUgU3RhbmRhcmQgQ2hlY2tib3guPC9saT4NCiAgICA8bGk+Q2hlY2tib3ggR3J1cHBlLiBEYXMgaXN0IGVpbmUgU2FtbWx1bmcgdm9uIENoZWNrYm94ZW4uIERlciBlaW56aWdlIFVudGVyc2NoaWVkIGJlc3RlaHQgZGFyaW4sIGRhc3MgZGllcyBlaW5lIEdydXBwZSB2b24gQ2hlY2tib3hlbiBtaXQgZWluZW0gTmFtZW4gaXN0LiBXZWl0ZXJoaW4gayZhbXA7b3VtbDtubmVuIFNpZSBlaW5lbiBvZGVyIG1laHJlcmUgYWxzICZhbXA7cXVvdDt3aXJkIGJlbiZhbXA7b3VtbDt0aWd0JmFtcDtxdW90OyBtYXJraWVyZW4uIFNvbWl0IGlzdCBkZXIgTnV0emVyICZhbXA7cXVvdDtnZXp3dW5nZW4mYW1wO3F1b3Q7IGVpbmUgb2RlciBtZWhyZXJlIENoZWNrYm94ZW4gZGllc2VyIEdydXBwZSBhdXN6dXcmYW1wO2F1bWw7aGxlbi48L2xpPg0KICAgIDxsaT5SYWRpbyBCdXR0b24gR3J1cHBlLiBEYXMgaXN0IGVpbmUgU2FtbWx1bmcgdm9uIFJhZGlvIEJ1dHRvbnMuIE51ciBlaW4gUmFkaW8gQnV0dG9uIGluIGRlciBHcnVwcGUga2FubiBhdXNnZXcmYW1wO2F1bWw7aGx0IHdlcmRlbi48L2xpPg0KICAgIDxsaT5QdWxsZG93bi4gRGFzIGlzdCBlaW4gU3RhbmRhcmQgUHVsbGRvd24gTWVuJmFtcDt1dW1sOy4gVm9tIEtvbnplcHQgaGVyIGdlc2VoZW4gZGFzIGdsZWljaGUgd2llIGRpZSBSYWRpbyBCdXR0b24gR3J1cHBlLCBhYmVyIGJlc3NlciB3ZW5uIFNpZSB2aWVsZSBBdXN3YWhsbSZhbXA7b3VtbDtnbGljaGtlaXRlbiBoYWJlbi48L2xpPg0KICAgIDxsaT5NZWhyZmFjaGF1c3dhaGwuIERhcyBpc3QgZGFzIE1laHJmYWNoYXVzd2FobCBGZWxkLiBWb20gS29uemVwdCBoZXIgZ2VzZWhlbiBkYXMgZ2xlaWNoZSB3aWUgZGllIFJhZGlvIEJ1dHRvbiBHcnVwcGUsIGFiZXIgYmVzc2VyIHdlbm4gU2llIHZpZWxlIEF1c3dhaGxtJmFtcDtvdW1sO2dsaWNoa2VpdGVuIGhhYmVuIHVuZCBkaWUgQXVzd2FobCBhYmVyIGJlZ3JlbnplbiBtJmFtcDtvdW1sO2NodGVuLjwvbGk+DQoNCiAgICA8bGk+QnVuZGVzc3RhYXQuIERpZXMgaXN0IGVpbmUgUHVsbGRvd24gTGlzdGUgbWl0IHMmYW1wO2F1bWw7bXRsaWNoZW4gQnVuZGVzc3RhYXRlbiBkZXIgVVNBLjwvbGk+DQo8bGk+TCZhbXA7YXVtbDtuZGVyLiBEaWVzIGlzdCBlaW5lIFB1bGxkb3duIExpc3RlIHMmYW1wO2F1bWw7bXRsaWNoZXIgc2ljaCBhdWYgZGVyIEVyZGUgYmVmaW5kbGljaGVuIEwmYW1wO2F1bWw7bmRlci48L2xpPg0KPGxpPkRhdHVtc2F1c3dhaGwuIERpZXMgaXN0IGVpbmUgZHJlaWZhY2ggUHVsbGRvd24gTGlzdGUsIGRpZSBkZW0gTnV0emVyIGRpZSBNJmFtcDtvdW1sO2dsaWNoa2VpdCBnaWJ0IGVpbiBEYXR1bSBhdXp1dyZhbXA7YXVtbDtobGVuLjwvbGk+DQo8L3VsPjwvbGk+DQoNCjxsaT5FbWFpbCBzcGV6aWZpc2NoZSBFaW5nYWJlZmVsZGVyDQogIDx1bD4NCiAgICA8bGk+RW1haWwgVm9uICBBZHJlc3MgRmVsZC4gSGllciBrJmFtcDtvdW1sO25uZW4gU2llIElocmUgRW1haWxhZHJlc3NlIGVpbmdlYmVuLiBEaWVzZSB3aXJkIGluIGRlciBnZW5lcmllcnRlbiBFbWFpbCBpbSBGZWxkIFZvbiAoTWFpbGFkcmVzc2UpOiBhbmdlZ2ViZW4uPC9saT4NCiAgICA8bGk+RW1haWwgVm9uIE5hbWUgRmVsZC4gSGllciBrJmFtcDtvdW1sO25uZW4gU2llIElocmVuIE5hbWVuIGVpbmdlYmVuLiBEaWVzZSB3aXJkIGluIGRlciBnZW5lcmllcnRlbiBFbWFpbCBpbSBGZWxkIE5hbWUgKEFic2VuZGVybmFtZSk6IGFuZ2VnZWJlbi48L2xpPg0KDQo8L3VsPjwvbGk+DQoNCjxsaT5Lb250cm9sbGZlbGRlciBmJnV1bWw7ciBkaWUgQW56ZWlnZTx1bD4NCjxsaT5TZWl0ZW51bWJydWNoIC0gZGFzIGVybSZvdW1sO2dsaWNodCBJaG5lbiBkaWUgQXVmdGVpbHVuZyBJaHJlcyBGZWVkYmFjay1Gb3JtdWxhcnMgaW4gbWVocmVyZSBTZWl0ZW4uIERpZSBFaW5nYWJlbiBqZWRlciBTZWl0ZSB3ZXJkZW4NCnVuYWJoJmF1bWw7bmdpZyB2b25laW5hbmRlciBnZXByJnV1bWw7ZnQuIERhcyBpc3QgaW5zYmVzb25kZXJlIGJlaSBPbmxpbmUtVW1mcmFnZW4gJmF1bWw7dSZzemxpZztlcnN0IHZvcnRlaWxoYWZ0LjwvbGk+DQo8bGk+LVN0YXRpc2NoZXIgVGV4dC4gRGFtaXQgayZvdW1sO25uZW4gU2llIElocmVtIEZvcm11bGFyIGVpbmZhY2hlbiBUZXh0IGhpbnp1ZiZ1dW1sO2dlbiBvZGVyIGVzIGJlc2NocmlmdGVuLiBEaWVzIGlzdCBmJnV1bWw7ciBBdXNmJnV1bWw7bGxoaW53ZWlzZSwgSGlsZmVuIHVzdy4gc2VociBuJnV1bWw7dHpsaWNoLCBpbnNiZXNvbmRlcmUgd2VubiBTaWUgZiZ1dW1sO3IgZGllIEFuemVpZ2UgZGVzIEZvcm11bGFycyBrZWluIGFuZ2VwYXNzdGVzIFRlbXBsYXRlIHZlcndlbmRlbi48L2xpPg0KPC91bD48L2xpPg0KDQo8bGk+Rm9ybXVsYXIgJiMwMzk7SGFuZGxpbmcmIzAzOTsNCiAgPHVsPg0KICAgIDxsaT4qRW1haWwgRXJnZWJuaXMgYmFzaWVyZW5kIGF1ZiBkZW0gUHVsbGRvd24uIERpZXMgaXN0IGhpbGZyZWljaCBmJmFtcDt1dW1sO3IgSW50ZXJuZXRzZWl0ZW4gd28gS29tbWVudGFyZSAmYW1wO3V1bWw7YmVyIGRpZSBBbmdlbGVnZW5oZWl0IGluIGRlbiBCZXRyZWZmIGdlc2NocmllYmVuIHdlcmRlbi4gei5CLiBCdWdzIHdlcmRlbiB6dW0gRW50d2lja2xlciBnZXNlbmRldCwgTWFya2V0aW5nIEZyYWdlbiB6dSBlaW5lciBQZXJzb24sIEZyYWdlbiB6dW0gVmVya2F1ZiB6dSBlaW5lciBhbmRlcmVuIFBlc29uIHVzdy4gRGFzIFB1bGxkb3duIE1lbiZhbXA7dXVtbDsgd2lyZCBtaXQgQmV0cmVmZnMgaGludGVybGVndCB1bmQgamVkZXIgd2lyZCB6dSBlaW5lciBzcGV6aWZpc2NoZW4gTWFpbGFkcmVzc2UgdmVyc2FuZHQuIFNpZSBlcnN0ZWxsZW4gZGVuIGpld2VpbGlnZW4gQmV0cmVmZiB3ZW5uIFNpZSBlaW4gc29sY2hlcyBGZWxkIGVyc3RlbGxlbiBvZGVyIGVkaXRpZXJlbi4gV2VubiBTaWUgZWluIHNvbGNoZXMgUHVsbGRvd24gTWVuJmFtcDt1dW1sOyBiZW51dHplbiwgbXVzcyBkZXIgTnV0emVyIGVpbmUgQXVzd2FobCBkZXMgQmV0cmVmZnMgdyZhbXA7YXVtbDtobGVuIHVtIGRhcyBGb3JtdWxhciBhYnNjaGlja2VuIHp1IGsmYW1wO291bWw7bm5lbi4gRGllc2VzIEF1c3dhaGxmZWxkIGlzdCBmJmFtcDt1dW1sO3IgZGVuIE51dHplciBzaWNodGJhciBhYmVyIGRpZSBNYWlsYWRyZXNzZW4gZGllIGRhaGludGVyIHN0ZWhlbiB3ZXJkZW4gd2VkZXIgSWhtIG5vY2ggaW0gSFRNTCBhbmdlemVpZ3QuPC9saT4NCg0KICAgIDxsaT4qRW1haWwgRXJnYmVuaXMgYW4gQWRyZXNzZShuKSBzZW5kZW4uIERpZXMgc2VuZGV0IGRpZSBEYXRlbiBhbiBlaW5lIHZvcmhlciBhbmdlZ2ViZW5lIE1haWxhZHJlc3NlLiBEaWUgTWFpbGFkcmVzc2UobikgayZhbXA7b3VtbDtubmVuIFNpZSBhbmdlYmVuIHdlbm4gU2llIGVpbiBzb2xjaGVzIEZlbGQgZ2VuZXJpZXJlbi4gRGFzIEZlbGQgdW5kIGRlciBOYW1lIGlzdCBmJmFtcDt1dW1sO3IgZGVuIE51dHplciBuaWNodCBzaWNodGJhci4gQXVjaCBuaWNodCBpbSBRdWVsbHRleHQuPC9saT4NCiAgICA8bGk+KkRhdGVuIGluIERhdGVuYmFuayBzcGVpY2hlcm4uIERpZXMgc3BlaWNoZXJ0IGRpZSBhYmdlZ2ViZW5lbiBEYXRlbiBpbiBlaW5lciBpbnRlcm5lbiBEYXRlbmJhbmsuIERpZXNlIEVpbnN0ZWxsdW5nIHZlcndlbmRlbiBTaWUgbWVpc3RlbiBpbiBWZXJiaW5kdW5nIG1pdCBkZW0gTW9kdWwgRm9ybUJyb3dzZXIuPC9saT4NCiAgICA8bGk+KlZhbGlkaWVydW5nICZhbXA7dXVtbDtiZXIgZGllIE1haWxhZHJlc3NlLiBEaWVzIGlzdCBlaW4gc2VociBsZWlzdHVuZ3NmJmFtcDthdW1sO2hpZ2VzIEZlbGQuIEVzIHN0ZWxsdCBkZW0gQmVudXR6ZXIgZWluIHZvcmdlZ2ViZW5lcyBFaW5nYWJlZmVsZCBmJmFtcDt1dW1sO3Igc2VpbmUgTWFpbGFkcmVzc2UgenVyIFZlcmYmYW1wO3V1bWw7Z3VuZy4gV2VubiBkaWVzZXIgZGFzIEZvcm11bGFyIGFic2NoaWNrdCB3aXJkIGRpZSAmYW1wO1V1bWw7YmVybWl0dGx1bmcgbmljaHQgZGlyZWt0IGF1c2dlZiZhbXA7dXVtbDtocnQsIHNvbmRlcm4gc2NoaWNrdCBkZW0gTnV0emVyIGVpbmUgTWFpbCBtaXQgZWluZW0gY29kaWVydGVuIExpbmsuIEVyc3Qgd2VubiBkaWVzZXIgTGluayBnZWRyJmFtcDt1dW1sO2NrdCB3aXJkIHdpcmQgZGFzIEZvcm11bGFyIHZhbGlkaWVydCB1bmQgZGllIEVpbmdhYmVuIGFiZ2VzY2hpY2t0LjwvbGk+DQogICAgPGxpPipJbiBEYXRlaSBTY2hyZWliZW4uIERpZXNlIE9wdGlvbiBncmVpZnQgZGllIERhdGVuIGFiIHVuZCBzY2hyZWlidCBzaWUgaW4gZWluZSBUZXh0ZGF0ZWkuIFNpZSBrJmFtcDtvdW1sO25uZW4gZGVuIE5hbWVuIHVuZCBkYXMgRGF0ZWlmb3JtYXQgYmVzdGltbWVuLiBEaWVzZSBEYXRlaWVuIHdlcmRlbiBpbiBkYXMgQXVzZ2FiZXZlcnplaWNobmlzIGRlcyBNb2R1bCBJbnN0YWxsYXRpb25zIFZlcnplaWNobmlzc2VzIGdlc2NocmllYmVuLiBWb3JyYXVzZ2VzZXR6dCBpc3QsIGRhc3MgZGVyIFNlcnZlciBkaWUgbm90d2VuZGlnZW4gU2NocmVpYnJlY2h0ZSB2ZXJnZWJlbiBoYXQuDQogICAgPC91bD48L2xpPjwvbGk+PC91bD4NCg0KPGgzPlRlbXBsYXRlcyBmJnV1bWw7ciBFbWFpbCB1bmQgZWluZmFjaGUgRGF0ZWllbiA8L2gzPg0KPHA+TWFuIGRpc3Bvc2l0aW9uIHR5cGVzIGFsbG93IHlvdSB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmb3IgdGhlIGVtYWlsIHRoYXQgaXMgZ2VuZXJhdGVkLCBvciBmb3IgdGhlIHdheSB0aGUgcmVzdWx0cyBhcmUgd3JpdHRlbiB0byBhIGZpbGUuIFdlbm4gU2llIHNlbGJzdCBrZWluIFRlbXBsYXRlIGVyc3RlbGxlbiB3b2xsZW4sIHdpcmQgRm9ybUJ1aWxkZXIgZGllIG5hY2ggc2VpbmVyIEVpbnNjaCZhdW1sO3R6dW5nIGJlc3RlIEwmb3VtbDtzdW5nIHZlcndlbmRlbiwgZGllIHNvIGZ1bmt0aW9uaWVydCwgd2llIFNpZSB3b2xsZW4gb2RlciBhdWNoIG5pY2h0LiBTaWUgayZvdW1sO25uZW4gamVkZXJ6ZWl0IGF1ZiAmcXVvdDtFaW4gTXVzdGVyLVRlbXBsYXRlIGVyc3RlbGxlbiZxdW90OyBrbGlja2VuIHVuZCBkYW5uIGRpZSBFcmdlYm5pc3NlIGFucGFzc2VuLjwvcD4NCjxwPkJlYWNodGVuIFNpZSwgZGFzcyBuZXUgaGluenVnZWYmdXVtbDtndGUgRmVsZGVyIG5pY2h0IG1laHIgYXV0b21hdGlzY2ggZGVtIFRlbXBsYXRlIGhpbnp1Z2VmJnV1bWw7Z3Qgd2VyZGVuLCB3ZW5uIGVzIGVpbm1hbCBnZSZhdW1sO25kZXJ0IHd1cmRlLiBBdXMgZGllc2VtIEdydW5kIGlzdCBlcyBkYXMgQmVzdGUsIHdlbm4gU2llIGVyc3QgenVtIFNjaGx1c3MgZGFzIFRlbXBsYXRlIGYmdXVtbDtyIGRhcyBGb3JtdWxhciBlcnN0ZWxsZW4uPC9wPg0KDQo8aDM+QmVrYW5udGUgUHJvYmxlbWU8L2gzPg0KPHVsPg0KPGxpPkVpbmlnZSBGZWxkdHlwZW4sIGRpZSBpbSBGZWVkYmFja0Zvcm0tTW9kdWwgZW50aGFsdGVuIHdhcmVuLCBzaW5kIGluIEZvcm1CdWlsZGVyIG5pY2h0IGltcGxlbWVudGllcnQuIFdlbm4gZWluIEJlZGFyZiBmJnV1bWw7ciBkaWVzZSBGZWxkZXIgdm9yaGFuZGVuIGlzdCwgd2VyZGUgaWNoIHNpZSBoaW56dWdlZiZ1dW1sO2dlbi48L2xpPg0KPGxpPkRhcyBGb3JtQnVpbGRlci1Nb2R1bCBrYW5uIGdlZ2VudyZhdW1sO3J0aWcgbm9jaCBuaWNodCBhdWYgZGllIERhdGVuIGRlcyBGcm9udGVuZFVzZXJzLU1vZHVscyB6dWdyZWlmZW4uIERpZXMgaXN0IGFiZXIgZ2VwbGFudC48L2xpPg0KPGxpPkZvcm1CdWlsZGVyIHVudGVyc3QmdXVtbDt0enQgZ2VnZW53JmF1bWw7cnRpZyBub2NoIGtlaW5lIFByZXR0eSBVUkxzLCBkaWVzIHNvbGx0ZSBqZWRvY2gga2VpbiBQcm9ibGVtIHNlaW4sIGRhIGRpZSBBdXNnYWJlbiBCZW51dHplcnNlaXRlIHNlaHIgZWluZmFjaCBnZWhhbHRlbiBpc3QuPC9saT4NCjwvdWw+DQoNCjxoMz5GZWhsZXJzdWNoZTwvaDM+DQo8b2w+PGxpPiBBbHMgZXJzdGVzIHNvbGx0ZW4gU2llIHByJnV1bWw7ZmVuLCBvYiBTaWUgQ01TbXMgaW4gZWluZXIgVmVyc2lvbiA+IDEuMCB2ZXJ3ZW5kZW4uPC9saT4NCjxsaT4gSW0gendlaXRlbiBTY2hyaXR0IHNvbGx0ZW4gU2llIGRpZSBQcm9ibGVtZSBiZWkgZGVyIFZlcndlbmR1bmcgdm9uIFdZU0lXWUctRWRpdG9yZW4gaW0gQWJzY2huaXR0DQogPGVtPkVpbiBGb3JtdWxhciBlaW5lciBTZWl0ZSBoaW56dWYmdXVtbDtnZW48L2VtPiBsZXNlbiB1bmQgdmVyc3RlaGVuLjwvbGk+DQo8bGk+V2VubiBTaWUgaW4gZWluZXIgdm9uIEZvcm1CdWlsZGVyIGdlbmVyaWVydGVuIEVtYWlsIGJlc3RpbW10ZSBGZWxkZXIgdmVybWlzc2VuLCAmdXVtbDtiZXJwciZ1dW1sO2ZlbiBTaWUsIG9iIGRpZSBGZWxkZXIgaW0gVGVtcGxhdGUgZW50aGFsdGVuIHNpbmQsIHVuZCBzdGVsbGVuIFNpZSBzaWNoZXIsIGRhc3MgU2llIGRpZSBmZWhsZW5kZW4gRmVsZGVyIGF1Y2ggdGF0cyZhdW1sO2NobGljaCBkZWZpbmllcnQgaGFiZW4uIEF1Y2ggd2VubiBlcyBuaWNodCBrbGFyIGVyc2ljaHRsaWNoIHNjaGVpbnQsIGthbm4gZXMgZHVyY2hhdXMgbnVyIGVpbiBnYW56IGVpbmZhY2hlciBGZWhsZXIgc2Vpbi48L2xpPg0KPGxpPiBWZXJzdWNoZW4gU2llLCBhdWYgTGlua3MgdW5kIEljb25zIHp1IGtsaWNrZW4gdW5kIGJlb2JhY2h0ZW4gZ2VuYXUsIHdhcyBwYXNzaWVydC48L2xpPg0KPGxpPiBEaWUgbGV0enRlIE0mb3VtbDtnbGljaGtlaXQgaXN0LCBtaXIgZGFzIFByb2JsZW0gcGVyIEVtYWlsIG1pdHp1dGVpbGVuIG9kZXIgbWljaCBpbSBJUkMtQ2hhdCBhbnp1c3ByZWNoZW4sIGRhbWl0IHdpciBkYXMgUHJvYmxlbSBnZW1laW5zYW0gYmVoZWJlbi48L2xpPg0KPC9vbD4gDQo8cD5EaWVzIGlzdCBlaW5lIHNlaHIgZnImdXVtbDtoZSBWZXJzaW9uLCBlaW4gdW5nZXRlc3RldGVzIEJldGEtUmVsZWFzZSwgdW5kIHNlaHIgd2FocnNjaGVpbmxpY2ggaXN0IGVzIGZlaGxlcmhhZnQuIE9id29obCBpY2ggYWxsZXMgZ2V0YW4gaGFiZSwgd2FzIGljaCBrb25udGUsIA0KdW0gc2ljaGVyenVzdGVsbGVuLCBkYXNzIHNpY2gga2VpbmUgZ3Imb3VtbDsmc3psaWc7ZXJlbiBcJnF1b3Q7V2FuemVuXCZxdW90OyBlaW5nZXNjaGxpY2hlbiBoYWJlbiwgbXVzc3RlIGljaCB3JmF1bWw7aHJlbmQgZGVzIFRlc3RlbnMgZmVzdHN0ZWxsZW4sIGRhc3MgZGFzIFByb2dyYW1tIA0Kc2llYmVuIEtha2VybGFrZW4sIHp3ZWkgT2hydyZ1dW1sO3JtZXIsIGVpbmUga2xlaW5lIEZhbWlsaWUgdm9uIEJsYXR0bCZhdW1sO3VzZW4gdW5kIGVpbmUgV2FuZGVyc3RhYmhldXNjaHJlY2tlIGVudGhpZWx0LiBTaWUgZnJhJnN6bGlnO2VuIGF1Y2gNCk5hY2hiYXJzIGImb3VtbDtzZW4ga2xlaW5lbiBrbCZhdW1sO2ZmZW5kZW4gSHVuZCwgd29mJnV1bWw7ciBpY2ggdW5lbmRsaWNoIGRhbmtiYXIgd2FyLjwvcD4NCjxwPkRhcyBmaW5hbGUgUmVsZWFzZSB3aXJkIEJ1Z2ZpeGVzLCBlaW5lIERva3VtZW50YXRpb24gdW5kIHVuYmVkaW5ndGUgTGllYmUgZW50aGFsdGVuLjwvcD4NCjxoMz5TdXBwb3J0PC9oMz4NCjxwPkRpZXNlcyBNb2R1bCBiZWluaGFsdGV0IGtlaW5lbiBrb21tZXJ6aWVsbGVuIFN1cHBvcnQuIFNpZSBrJm91bWw7bm5lbiBqZWRvY2ggJnV1bWw7YmVyIGRpZSBmb2xnZW5kZSBXZWdlIEhpbGZlIHp1IGRlbSBNb2R1bCBlcmhhbHRlbjo8L3A+DQo8dWw+DQo8bGk+RiZ1dW1sO3IgZGllIGxldHp0ZSBWZXJzaW9uIGRpZXNlcyBNb2R1bHMsIEZBUXMsIGRlbSBWZXJzYW5kIGVpbmVzIEZlaGxlcnJlcG9ydHMgb2RlciBkZW0gS2F1ZiBrb21tZXJ6aWVsbGVuIFN1cHBvcnQgYmVzdWNoZW4gc2llIGJpdHRlIGNhbGd1eXMgSG9tZXBhZ2UgdW50ZXIgPGEgaHJlZj0mcXVvdDtodHRwOi8vdGVjaGNvbS5keW5kbnMub3JnJnF1b3Q7PnRlY2hjb20uZHluZG5zLm9yZzwvYT4uPC9saT4NCjxsaT5FaW5lIHdlaXRlcmUgRGlza3Vzc2lvbiB6dSBkaWVzZW0gTW9kdWwgaXN0IGF1Y2ggaW4gZGVuIEZvcmVuIHZvbiA8YSBocmVmPSZxdW90O2h0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyZxdW90Oz5DTVMgTWFkZSBTaW1wbGU8L2E+IHp1IGZpbmRlbi48L2xpPg0KPGxpPkRlciBBdXRvciBjYWxndXkxMDAwLCBpc3QgaCZhdW1sO3VmaWcgaW0gPGEgaHJlZj0mcXVvdDtpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXMmcXVvdDs+Q01TIElSQyBDaGFubmVsPC9hPiB6dSBmaW5kZW4uPC9saT4NCjxsaT5MZXR6dGxpY2ggZXJyZWljaGVuIFNpZSBkZW4gQXV0b3IgYXVjaCAmdXVtbDtiZXIgZWluZSBkaXJla3RlIEVtYWlsLjwvbGk+ICANCjwvdWw+DQo8cD5OYWNoIGRlciBHUEwgd2lyZCBkaWVzZSBTb2Z0d2FyZSBzbyB2ZXImb3VtbDtmZmVudGxpY2h0LCB3aWUgc2llIGlzdC4gQml0dGUgbGVzZW4gU2llIGRlbiBMaXplbnp0ZXh0IGYmdXVtbDtyIGRlbiB2b2xsZW4gSGFmdHVuZ3NhdXNzY2hsdXNzLjwvcD4NCjxoMz5Db3B5cmlnaHQgdW5kIExpemVuejwvaDM+DQo8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMDYsIFNhbXVlbCBHb2xkc3RlaW4gPGEgaHJlZj0mcXVvdDttYWlsdG86c2pnQGNtc21vZHVsZXMuY29tJnF1b3Q7PjxzamdAY21zbW9kdWxlcy5jb20+PC9hPi4gQWxsZSBSZWNodGUgdm9yYmVoYWx0ZW4uPC9wPg0KPHA+RGllc2VzIE1vZHVsIHd1cmRlIHVudGVyIGRlciA8YSBocmVmPSZxdW90O2h0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCZxdW90Oz5HTlUgUHVibGljIExpY2Vuc2U8L2E+IHZlciZvdW1sO2ZmZW50bGljaHQuIFNpZSBtJnV1bWw7c3NlbiBkaWVzZXIgTGl6ZW56IHp1c3RpbW1lbiwgYmV2b3IgU2llIGRhcyBNb2R1bCB2ZXJ3ZW5kZW4uPC9wPic7CiRsYW5nWydjaGFuZ2Vsb2cnXSA9ICcJDQoJICAgIDx1bD4NCgkJICAgIDxsaT5WZXJzaW9uIDAuMiAtIDE0IE5vdmVtYmVyIDIwMDYuIENhbGd1eSAmYW1wO2FtcDsgdHN3JiMwMzk7cyBidWcgZml4ZXMgZm9yIGZpZWxkIHJlLW9yZGVyaW5nIGFuZCBjdXN0b20gdGVtcGxhdGVzLiBBZGRpdGlvbmFsIGJ1ZyBmaXhlcyBmb3IgZmllbGQgbGFiZWxzLjwvbGk+DQoJCSAgICA8bGk+VmVyc2lvbiAwLjEgLSA4IEp1bHkgMjAwNi4gSW5pdGlhbCBSZWxlYXNlPC9saT4nOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My43MTc0NjI3MzYuMTE0NzUxMTg1Ni4xMTY1NDIwMzAxLjExNjU4NTM5OTUuOTcnOwokbGFuZ1sndXRteiddID0gJzE1Njg2MTM1My4xMTY1NDIwMzAxLjk2LjU1LnV0bWNjbj0ocmVmZXJyYWwpfHV0bWNzcj1mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZ3x1dG1jY3Q9L2luZGV4LnBocHx1dG1jbWQ9cmVmZXJyYWwnOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/et_EE.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ1Zvcm1pIEVoaXRhamEnOwokbGFuZ1snZmllbGRfdHlwZV8nXSA9ICdWJmF1bWw7bGphIFQmdXVtbDsmdXVtbDtwIE0mYXVtbDsmYXVtbDtyYW1hdGEnOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0RmllbGQnXSA9ICdUZWtzdGlzaXNlbmQnOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0QXJlYUZpZWxkJ10gPSAnVGVrc3RpdiZhdW1sO2xpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hGaWVsZCddID0gJ0xpbm51a2UnOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEdyb3VwRmllbGQnXSA9ICdMaW5udWtlc3RlIEdydXBwJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUHVsbGRvd25GaWVsZCddID0gJ1ZhbGlrbWVuJnV1bWw7JnV1bWw7JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTXVsdGlzZWxlY3RGaWVsZCddID0gJ011bHRpdmFsaWsnOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0ZVBpY2tlckZpZWxkJ10gPSAnVVNBIE9zYXJpaWtpZGUgVmFsaWsnOwokbGFuZ1snZmllbGRfdHlwZV9Db3VudHJ5UGlja2VyRmllbGQnXSA9ICdSaWlnaSBWYWxpayc7CiRsYW5nWydmaWVsZF90eXBlX0RhdGVQaWNrZXJGaWVsZCddID0gJ0t1dXAmYXVtbDtldmEgVmFsaWsnOwokbGFuZ1snZmllbGRfdHlwZV9SYWRpb0dyb3VwRmllbGQnXSA9ICdSYWFkaW9udXBwdWRlIEdydXBwJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EaXJlY3RvciddID0gJypTYWFkYSB0dWxlbXVzZWQgRS1tYWlsaWdhIFZhbGlrbWVuJnV1bWw7JnV1bWw7IHAmb3RpbGRlO2hqYWwnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsJ10gPSAnKlNhYWRhIHR1bGVtdXNlZCBFLW1haWxpZ2EgQWFkcmVzc2koZGUpbGUnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsQ29uZmlybWF0aW9uJ10gPSAnKlZhbGlkZWVyaSBFLW1haWxpIHRlZWwnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZpbGUnXSA9ICcqU2FsdmVzdGEgdHVsZW11c2VkIEZhaWxpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EYXRhYmFzZSddID0gJypTYWx2ZXN0YSB0dWxlbXVzZWQgQW5kbWViYWFzaSc7CiRsYW5nWydmaWVsZF90eXBlX1BhZ2VCcmVha0ZpZWxkJ10gPSAnLUomYXVtbDtyZ21pbmUgbGVodCc7CiRsYW5nWydmaWVsZF90eXBlX0ZpbGVVcGxvYWRGaWVsZCddID0gJ0ZhaWxpICZVdW1sO2xlc2xhYWRpbWluZSc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbEFkZHJlc3NGaWVsZCddID0gJ0UtbWFpbGkgJnF1b3Q7QWFkcmVzc2lsdCZxdW90OyBWJmF1bWw7bGknOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxOYW1lRmllbGQnXSA9ICdFLW1haWxpICZxdW90O0tlbGxlbHQmcXVvdDsgViZhdW1sO2xpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3RhdGljVGV4dEZpZWxkJ10gPSAnLVN0YWF0aWxpbmUgdGVrc3QnOwokbGFuZ1sndmFsaWRhdGlvbl9ub25lJ10gPSAnRWkgdmFsaWRlZXJpdGEnOwokbGFuZ1sndmFsaWRhdGlvbl9udW1lcmljJ10gPSAnQXJ2JzsKJGxhbmdbJ3ZhbGlkYXRpb25faW50ZWdlciddID0gJ1QmYXVtbDtpc2Fydic7CiRsYW5nWyd2YWxpZGF0aW9uX2VtYWlsX2FkZHJlc3MnXSA9ICdFLW1haWxpIEFhZHJlc3MnOwokbGFuZ1sndmFsaWRhdGlvbl9tdXN0X2NoZWNrJ10gPSAnTGlubnVrZSBOJm90aWxkZTt1dHVkJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbWF0Y2gnXSA9ICdNYXRjaCBSZWd1bGFyIEV4cHJlc3Npb24nOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9ub21hdGNoJ10gPSAnRG9lc24mIzAzOTt0IG1hdGNoIFJlZ3VsYXIgRXhwcmVzc2lvbic7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV92YWx1ZSddID0gJ1BhbHVuIHQmYXVtbDtpZGEgbGFodGVyICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX251bWJlciddID0gJ1BhbHVuIHNpc2VzdGEgbGFodHJpc3NlICZxdW90OyVzJnF1b3Q7IGFydic7CiRsYW5nWydwbGVhc2VfZW50ZXJfdmFsaWQnXSA9ICdQYWx1biB0JmF1bWw7aWRhIGxhaHRlciAmcXVvdDslcyZxdW90OyBrb3JyZWt0c2VsdCc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5faW50ZWdlciddID0gJ1BhbHVuIHNpc2VzdGEgbGFodHJpc3NlICZxdW90OyVzJnF1b3Q7IHQmYXVtbDtpc2Fydic7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5fZW1haWwnXSA9ICdQYWx1biBzaXNlc3RhIGxhaHRyaXNzZSAmcXVvdDslcyZxdW90OyBrb3JyZWt0bmUgZS1tYWlsaSBhYWRyZXNzJzsKJGxhbmdbJ25vdF92YWxpZF9lbWFpbCddID0gJyZxdW90OyVzJnF1b3Q7IGVpIG9sZSBrb3JyZWt0bmUgZS1tYWlsaSBhYWRyZXNzISc7CiRsYW5nWydwbGVhc2VfZW50ZXJfbm9fbG9uZ2VyJ10gPSAnUGFsdW4gc2lzZXN0YSB2JmF1bWw7JmF1bWw7cnR1cywgbWlzIGVpIG9sZSBwaWtlbSBrdWkgJXMgdCZhdW1sO2hlbSZhdW1sO3JraSc7CiRsYW5nWyd0aXRsZV9saXN0X2RlbGltaXRlciddID0gJ1QmYXVtbDtoZW0mYXVtbDtyaywgbWlkYSBrYXN1dGFqYSBlcmFsZGFqYW5hIHR1bGVtdXN0ZXMsIG1pbGxlcyBvbiByb2hrZW0ga3VpICZ1dW1sO2tzIHYmYXVtbDsmYXVtbDtydHVzJzsKJGxhbmdbJ3lvdV9uZWVkX3Blcm1pc3Npb24nXSA9ICdTZWxsZSBmdW5rdHNpb29uaSBqYW9rcyBvbiBzdWwgdmFqYSAmcXVvdDslcyZxdW90OyAmb3RpbGRlO2lndXNpJzsKJGxhbmdbJ2xhY2twZXJtaXNzaW9uJ10gPSAnVmFiYW5kdXN0ISBTZWxsZWxlIHNla3RzaW9vbmlsZSBsaWdpIHAmYXVtbDsmYXVtbDtzZW1pc2VrcyBlaSBvbGUgc3VsIHBpaXNhdmFsdCAmb3RpbGRlO2lndXNpLic7CiRsYW5nWydmaWVsZF9vcmRlcl91cGRhdGVkJ10gPSAnViZhdW1sO2xqYWRlIGomYXVtbDtyamVrb3JkIHV1ZW5kYXR1ZC4nOwokbGFuZ1snZm9ybV9kZWxldGVkJ10gPSAnVm9ybSBrdXN0dXRhdHVkLic7CiRsYW5nWydmaWVsZF9kZWxldGVkJ10gPSAnViZhdW1sO2xpIGt1c3R1dGF0dWQuJzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb25fdXBkYXRlZCddID0gJ0tvbmZpZ3VyYXRzaW9vbiBVdWVuZGF0dWQuJzsKJGxhbmdbJ3lvdV9tdXN0X2NoZWNrJ10gPSAnSiZhdW1sO3RrYW1pc2VrcyBwZWFkIHRlZ2VtYSBsaW5udWtlc2UgJnF1b3Q7JXMmcXVvdDsga2FzdGkuJzsKJGxhbmdbJ211c3Rfc3BlY2lmeV9vbmVfZGVzdGluYXRpb24nXSA9ICdTYSBwZWFkIHNpc2VzdGFtYSB2JmF1bWw7aGVtYWx0ICZ1dW1sO2hlIHNpaHRhYWRyZXNzaSEnOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9mb3JtJ10gPSAnT2xlZCBraW5kZWwsIGV0IHNvb3ZpZCBrdXN0dXRhZGEgJXMgdm9ybWk/JzsKJGxhbmdbJ2FyZV95b3Vfc3VyZV9kZWxldGVfZmllbGQnXSA9ICdPbGVkIGtpbmRlbCwgZXQgc29vdmlkIGt1c3R1dGFkYSAlcyB2JmF1bWw7bGphPyc7CiRsYW5nWydub3RpY2Vfc2VsZWN0X3R5cGUnXSA9ICdMYWllbmRhdHVkIHNlYWRlZCBlaSBvbGUgc2FhZGF2YWwgbmlpa2F1YSwga3VuaSBwb2xlIG0mYXVtbDsmYXVtbDtyYXR1ZCB2JmF1bWw7bGphIHQmdXVtbDsmdXVtbDtwaS4nOwokbGFuZ1snZmllbGRfbmFtZV9pbl91c2UnXSA9ICdWJmF1bWw7bGphIG5pbWkgJnF1b3Q7JXMmcXVvdDsgb24ganViYSBrYXN1dHVzZWwuIFBhbHVuIGthc3V0YSB1bmlrYWFsc2VpZCB2JmF1bWw7bGphIG5pbWVzaWQuJzsKJGxhbmdbJ2FiYnJldmlhdGlvbl9sZW5ndGgnXSA9ICdQaWtrdXM6ICVzJzsKJGxhbmdbJ2JveGVzJ10gPSAnJXMga2FzdGknOwokbGFuZ1snb3B0aW9ucyddID0gJyVzIHZhbGlrdXQnOwokbGFuZ1sndGV4dF9sZW5ndGgnXSA9ICclcyB0JmF1bWw7aGVtJmF1bWw7cmtpLic7CiRsYW5nWydvcmRlciddID0gJ0omYXVtbDtyamVrb3JkJzsKJGxhbmdbJ3Vuc3BlY2lmaWVkJ10gPSAnW20mYXVtbDsmYXVtbDtyYW1hdGFdJzsKJGxhbmdbJ2FkZGVkJ10gPSAnbGlzYXR1ZCc7CiRsYW5nWyd1cGRhdGVkJ10gPSAndXVlbmRhdHVkJzsKJGxhbmdbJ3NlbGVjdF9vbmUnXSA9ICdWYWxpICZVdW1sO2tzJzsKJGxhbmdbJ3NlbGVjdF90eXBlJ10gPSAnVmFsaSBUJnV1bWw7JnV1bWw7cCc7CiRsYW5nWyd0byddID0gJ0tlbGxlbGUnOwokbGFuZ1sncmVjaXBpZW50cyddID0gJ3NhYWphZCc7CiRsYW5nWydkZXN0aW5hdGlvbl9jb3VudCddID0gJyVzIHNpaHRhYWRyZXNzaSc7CiRsYW5nWydzYXZlJ10gPSAnU2FsdmVzdGEnOwokbGFuZ1snYWRkJ10gPSAnTGlzYSc7CiRsYW5nWyd1cGRhdGUnXSA9ICdVdWVuZGEnOwokbGFuZ1snc2F2ZV9hbmRfY29udGludWUnXSA9ICdTYWx2ZXN0YSBqYSBKJmF1bWw7dGthIFRvaW1ldGFtaXN0JzsKJGxhbmdbJ2luZm9ybWF0aW9uJ10gPSAnSW5mb3JtYXRzaW9vbic7CiRsYW5nWydhdXRvbWF0aWMnXSA9ICdBdXRvbWFhdG5lJzsKJGxhbmdbJ2Zvcm1zJ10gPSAnVm9ybWlkJzsKJGxhbmdbJ2Zvcm0nXSA9ICclcyBWb3JtJzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb24nXSA9ICdLb25maWd1cmF0c2lvb24nOwokbGFuZ1sndGFiX21haW4nXSA9ICdQZWFtaW5lJzsKJGxhbmdbJ3RhYl9hZGRpdGlvbmFsJ10gPSAnVm9ybWkgU2VhZGVkJzsKJGxhbmdbJ3RhYl9hZHZhbmNlZCddID0gJ0xhaWVuZGF0dWQgU2VhZGVkJzsKJGxhbmdbJ3RhYl90YWJsZWxheW91dCddID0gJ1RhYmVsaXAmb3RpbGRlO2hpc2UgSyZ1dW1sO2xqZW5kdXNlIFZhbGlrdWQnOwokbGFuZ1sndGFiX3RlbXBsYXRlbGF5b3V0J10gPSAnTWFsbGlwJm90aWxkZTtoaXNlIEsmdXVtbDtsamVuZHVzZSBWYWxpa3VkJzsKJGxhbmdbJ2ZpZWxkX3JlcXVpcmVtZW50X3VwZGF0ZWQnXSA9ICdWJmF1bWw7bGphICYjMDM5O2tvaHVzdHVzbGlrJiMwMzk7IHN0YWF0dXMgdXVlbmRhdHVkLic7CiRsYW5nWydtYXhpbXVtX3NpemUnXSA9ICdNYXguIFN1dXJ1cyc7CiRsYW5nWydwZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ0xhaWVuZHVzZWQnOwokbGFuZ1sncGVybWl0dGVkX2ZpbGV0eXBlcyddID0gJ0x1YmF0dWQgZmFpbGl0JnV1bWw7JnV1bWw7YmlkJzsKJGxhbmdbJ2ZpbGVfdG9vX2xhcmdlJ10gPSAnJlV1bWw7bGVzIGxhZXR1ZCBmYWlsIG9uIGxpaWdhIHN1dXIhIE1ha3NpbWFhbG5lIHN1dXJ1cyBvbjonOwokbGFuZ1snaWxsZWdhbF9maWxlX3R5cGUnXSA9ICdTZWRhIHQmdXVtbDsmdXVtbDtwaSBmYWlsaSBlaSBvbGUgbHViYXR1ZCAmdXVtbDtsZXMgbGFhZGlkYS4gUGFsdW4ga29udHJvbGxpLCBldCBmYWlsaSBsYWllbmQgb24ga29ycmVrdG5lLic7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vb2R1bCBlZW1hbGRhdHVkLic7CiRsYW5nWydpbnN0YWxsZWQnXSA9ICdNb29kdWxpIHZlcnNpb29uICVzIGluc3RhbGxlZXJpdHVkLic7CiRsYW5nWyd1cGdyYWRlZCddID0gJ01vb2R1bCB1dWVuZGF0dWQgdmVyc2lvb25pbGUgJXMuJzsKJGxhbmdbJ2J1dHRvbl9wcmV2aW91cyddID0gJ1RhZ2FzaS4uLic7CiRsYW5nWydidXR0b25fc3VibWl0J10gPSAnU2FhZGEgVm9ybSc7CiRsYW5nWydidXR0b25fY29udGludWUnXSA9ICdKJmF1bWw7dGthLi4uJzsKJGxhbmdbJ3ZhbHVlX2NoZWNrZWQnXSA9ICdNJmF1bWw7cmdpdHVkJzsKJGxhbmdbJ3ZhbHVlX3VuY2hlY2tlZCddID0gJ00mYXVtbDtya2ltYXRhJzsKJGxhbmdbJ2FkZF9vcHRpb25zJ10gPSAnTGlzYSBWZWVsIFZhbGlrdWlkJzsKJGxhbmdbJ2RlbGV0ZV9vcHRpb25zJ10gPSAnS3VzdHV0YSBNJmF1bWw7cmdpdHVkIFZhbGlrdWQnOwokbGFuZ1snYWRkX2NoZWNrYm94ZXMnXSA9ICdMaXNhIFZlZWwgTGlubnVrZXNpJzsKJGxhbmdbJ2RlbGV0ZV9jaGVja2JveGVzJ10gPSAnS3VzdHV0YSBNJmF1bWw7cmdpdHVkIExpbm51a2VzZWQnOwokbGFuZ1snYWRkX2FkZHJlc3MnXSA9ICdMaXNhIFZlZWwgJlV1bWw7a3MgQWFkcmVzcyc7CiRsYW5nWydkZWxldGVfYWRkcmVzcyddID0gJ0t1c3R1dGEgTSZhdW1sO3JnaXR1ZCBBYWRyZXNzaWQnOwokbGFuZ1snYWRkX2Rlc3RpbmF0aW9uJ10gPSAnTGlzYSBTaWh0YWFkcmVzcyc7CiRsYW5nWydkZWxldGVfZGVzdGluYXRpb24nXSA9ICdLdXN0dXRhIE0mYXVtbDtyZ2l0dWQgU2lodGFhZHJlc3NpZCc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX2xlbmd0aCddID0gJ01ha3NpbWFhbG5lIFBpa2t1cyc7CiRsYW5nWyd0aXRsZV9jaGVja2JveF9sYWJlbCddID0gJ1ZhbGlrdSBwZWFsa2lyaSc7CiRsYW5nWyd0aXRsZV9jaGVja2VkX3ZhbHVlJ10gPSAnViZhdW1sOyZhdW1sO3J0dXMgbSZhdW1sO3JnaXR1bmEnOwokbGFuZ1sndGl0bGVfdW5jaGVja2VkX3ZhbHVlJ10gPSAnViZhdW1sOyZhdW1sO3J0dXMgbSZhdW1sO3JraW1hdGEnOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfZGV0YWlscyddID0gJ0xpbm51a2VzdGUgR3J1cGkgRGV0YWlsaWQnOwokbGFuZ1sndGl0bGVfZGVsZXRlJ10gPSAnS3VzdHV0YT8nOwokbGFuZ1sndGl0bGVfc2VsZWN0X29uZV9tZXNzYWdlJ10gPSAnJnF1b3Q7VmFsaSAmVXVtbDtrcyZxdW90OyBUZWtzdCc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fc3ViamVjdCddID0gJ1ZhbGlrdSBOaW1pJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X2NvdW50cnknXSA9ICdBbGduZSBWYWxpayc7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9zdGF0ZSddID0gJ0FsZ25lIFZhbGlrJzsKJGxhbmdbJ3RpdGxlX29wdGlvbl9uYW1lJ10gPSAnVmFsaWt1IE5pbWknOwokbGFuZ1sndGl0bGVfb3B0aW9uX3ZhbHVlJ10gPSAnViZhdW1sOyZhdW1sO3J0dXMnOwokbGFuZ1sndGl0bGVfcHVsbGRvd25fZGV0YWlscyddID0gJ1ZhbGlrbWVuJnV1bWw7JnV1bWw7IFZhbGlrdWQnOwokbGFuZ1sndGl0bGVfbXVsdGlzZWxlY3RfZGV0YWlscyddID0gJ011bHRpdmFsaWt1IFZhbGlrdWQnOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fYWRkcmVzcyddID0gJ1NpaHRhYWRyZXNzJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fbmFtZSddID0gJ0UtbWFpbGkgJnF1b3Q7S2VsbGVsdCZxdW90OyB2JmF1bWw7bGknOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9lbWFpbF9yZWdleCddID0gJ0thc3V0YSBsJm90aWxkZTt0dmEgZS1tYWlsaSB2YWxpZGVlcmltaXN0JzsKJGxhbmdbJ3RpdGxlX3JlbGF4ZWRfcmVnZXhfbG9uZyddID0gJ0thc3V0YSBsJm90aWxkZTt0dmEgZS1tYWlsaSB2YWxpZGVlcmltaXN0IChudC4sIGx1YmEgJnF1b3Q7eEB5JnF1b3Q7IHNlbGxlIGFzZW1lbCwgZXQgbiZvdGlsZGU7dWRhICZxdW90O3hAeS50bGQmcXVvdDspJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fYWRkcmVzcyddID0gJ0UtbWFpbGkgJnF1b3Q7QWFkcmVzc2lsdCZxdW90OyB2JmF1bWw7bGknOwokbGFuZ1sndGl0bGVfZW1haWxfZW5jb2RpbmcnXSA9ICdFLW1haWxpIGtvZGVlcmluZyc7CiRsYW5nWyd0aXRsZV9kaXJlY3Rvcl9kZXRhaWxzJ10gPSAnVmFsaWttZW4mdXVtbDsmdXVtbDsgcCZvdGlsZGU7aGlzZSBFLW1haWxlcmkgRGV0YWlsaWQnOwokbGFuZ1sndGl0bGVfZmlsZV9uYW1lJ10gPSAnRmFpbGluaW1pJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX3N1YmplY3QnXSA9ICdFLW1haWxpIFRlZW1hJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmFtZSddID0gJ1Zvcm1pIE5pbWknOwokbGFuZ1sndGl0bGVfZm9ybV9zdGF0dXMnXSA9ICdWb3JtaSBTdGFhdHVzJzsKJGxhbmdbJ3RpdGxlX3JlYWR5X2Zvcl9kZXBsb3ltZW50J10gPSAnVmFsbWlzIGF2YWxkYW1pc2Vrcyc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkxJ10gPSAnRWkgb2xlIHZhbG1pcyc7CiRsYW5nWyd0aXRsZV9yZWRpcmVjdF9wYWdlJ10gPSAnTGVodCwga3VodSBzdXVuYXRhIHBlYWxlIHZvcm1pIHNhYXRtaXN0JzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTInXSA9ICdQYWx1biBsaXNhIHZvcm1pbGUgdiZhdW1sO2xpLCBldCBrYXN1dGFqYSBzaXNlc3R1c2kgayZhdW1sO3NpdGxldGFrcy4nOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5X2xpbmsnXSA9ICdrYXN1dGEgc2VkYSBvdHNldGVlZCc7CiRsYW5nWyd0aXRsZV9mb3JtX2FsaWFzJ10gPSAnVm9ybWkgQWxpYXMnOwokbGFuZ1sndGl0bGVfZm9ybV9maWVsZHMnXSA9ICdWb3JtaSBWJmF1bWw7bGphZCc7CiRsYW5nWyd0aXRsZV9maWVsZF9uYW1lJ10gPSAnViZhdW1sO2xqYSBOaW1pJzsKJGxhbmdbJ3RpdGxlX3JhZGlvZ3JvdXBfZGV0YWlscyddID0gJ1JhYWRpb251cHB1ZGUgR3J1cGkgRGV0YWlsaWQnOwokbGFuZ1sndGl0bGVfZmllbGRfdHlwZSddID0gJ1YmYXVtbDtsamEgVCZ1dW1sOyZ1dW1sO3AnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MyddID0gJ2xvb21ha3Mgdm9ybWkgayZhdW1sO3NpdGxlbWlzZSB2JmF1bWw7bGkuJzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZm9ybSddID0gJ0xpc2EgVXVzIFZvcm0nOwokbGFuZ1sndGl0bGVfc2hvd192ZXJzaW9uJ10gPSAnTiZhdW1sO2l0YSBWb3JtaSBFaGl0YWphIFZlcnNpb29uaT8nOwokbGFuZ1sndGl0bGVfc2hvd192ZXJzaW9uX2xvbmcnXSA9ICdTZWUgc2lzYWxkYWIgc2ludSBWb3JtaSBFaGl0YWphIGluc3RhbGxlZXJpdHVkIHZlcnNpb29uaSBrb21tZW50YWFyaWRlcywgZXQgYWlkYXRhIHZpZ2FkZSBvdHNpbWlzZWwuJzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZmllbGQnXSA9ICdMaXNhIFV1cyBWJmF1bWw7bGknOwokbGFuZ1sndGl0bGVfZm9ybV9zdWJtaXRfYnV0dG9uJ10gPSAnVm9ybWkgU2FhdG1pc251cHUgVGVrc3QnOwokbGFuZ1sndGl0bGVfZm9ybV9uZXh0X2J1dHRvbiddID0gJ1Zvcm1pICZxdW90O0omYXVtbDtyZ21pbmUmcXVvdDsgLSBudXB1IHRla3N0IChrYXN1dGF0YWtzZSBtaXRtZWxlaGVrJnV1bWw7bGplbGlzZSB2b3JtaSBwdWh1bCknOwokbGFuZ1sndGl0bGVfZm9ybV9wcmV2X2J1dHRvbiddID0gJ1Zvcm1pICZxdW90O0VlbG1pbmUmcXVvdDsgLSBudXB1IHRla3N0IChrYXN1dGF0YWtzZSBtaXRtZWxlaGVrJnV1bWw7bGplbGlzZSB2b3JtaSBwdWh1bCknOwokbGFuZ1sndGl0bGVfZmllbGRfdmFsaWRhdGlvbiddID0gJ1YmYXVtbDtsamEgVmFsaWRlZXJtaW5lJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fY3NzX2NsYXNzJ10gPSAnVm9ybWkgQ1NTIGtsYXNzJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2Nzc19jbGFzcyddID0gJ1YmYXVtbDtsamEgQ1NTIGtsYXNzJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcmVxdWlyZWRfc3ltYm9sJ10gPSAnUyZ1dW1sO21ib2wsIG1pbGxlZ2EgbSZhdW1sO3JraWRhIGtvaHVzdHVzbGlrdWQgdiZhdW1sO2xqYWQnOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWQnXSA9ICdLb2h1c3R1c2xpayc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9sb25nJ10gPSAnVCZhdW1sO2l0bWluZSBrb2h1c3R1c2xpayc7CiRsYW5nWyd0aXRsZV9oaWRlX2xhYmVsJ10gPSAnUGVpZGEgUGVhbGtpcmknOwokbGFuZ1sndGl0bGVfaGlkZV9sYWJlbF9sb25nJ10gPSAnUGVpZGEgdiZhdW1sO2xqYSBuaW1pIHZvcm1pbCc7CiRsYW5nWyd0aXRsZV90ZXh0J10gPSAnS3V2YXRhdiBzdGFhdGlsaW5lIHRla3N0JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlZ2V4J10gPSAnVmFsaWRlZXJpbWlzZSBSZWdleCc7CiRsYW5nWyd0aXRsZV9saW5lc190b19zaG93J10gPSAnS3V2YXRhdiByaWRhZGUgYXJ2JzsKJGxhbmdbJ25vX2RlZmF1bHQnXSA9ICdQdXVkdWInOwokbGFuZ1sncmVkaXJlY3RfYWZ0ZXJfYXBwcm92YWwnXSA9ICdMZWhrdCwgbWlsbGVsZSBzdXVuYXRhIHAmYXVtbDtyYXN0IG4mb3RpbGRlO3Vzb2xla3Uga2lubml0YW1pc3QuJzsKJGxhbmdbJ3RpdGxlX3JlZ2V4X2hlbHAnXSA9ICdUaGlzIHJlZ3VsYXIgZXhwcmVzc2lvbiB3aWxsIG9ubHkgYmUgdXNlZCBpZiAmcXVvdDt2YWxpZGF0aW9uIHR5cGUmcXVvdDsgaXMgc2V0IHRvIGEgcmVnZXgtcmVsYXRlZCBvcHRpb24uIEluY2x1ZGUgYSBmdWxsIFBlcmwtc3R5bGUgcmVnZXgsIGluY2x1ZGluZyB0aGUgc3RhcnQvc3RvcCBzbGFzaGVzIGFuZCBmbGFncyAoZS5nLiwgJnF1b3Q7L2ltYWdlXC4oXGQrKS9pJnF1b3Q7KSc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9hYmJyZXYnXSA9ICdLb2h1c3QuJzsKJGxhbmdbJ3RpdGxlX3RpdGxlX3Bvc2l0aW9uJ10gPSAnViZhdW1sO2xqYSBUaWl0bGkgQXN1a29odCAobWl0dGUtQ1NTIGsmdXVtbDtsamVuZHVzZSBwdWh1bCknOwokbGFuZ1sndGl0bGVfdGFibGVfbGF5b3V0X2xlZnQnXSA9ICdUaWl0ZWwgVmFzYWt1bCc7CiRsYW5nWyd0aXRsZV90YWJsZV9sYXlvdXRfYWJvdmUnXSA9ICdUaWl0ZWwgJlV1bWw7bGV2YWwnOwokbGFuZ1sndGl0bGVfaGlkZV9lcnJvcnMnXSA9ICdQZWlkYSBWZWFkJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fZGlzcGxheXR5cGUnXSA9ICdWb3JtaSBLdXZhbWlzZSBWaWlzJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzX2xvbmcnXSA9ICcmQXVtbDtyYSBuJmF1bWw7aXRhIGthc3V0YWphdGVsZSB2ZWF0ZWF0ZWlkJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX3RlbXBsYXRlJ10gPSAnRS1tYWlsaSBNYWxsJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZSddID0gJ01ha3NpbWFhbG5lICZ1dW1sO2xlc2xhZXRhdmEgZmFpbGkgc3V1cnVzIChraWxvYmFpdGlkZXMpJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zJ10gPSAnTHViYXR1ZCBMYWllbmR1c2VkJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zX2xvbmcnXSA9ICdTaXNlc3RhIGtvbWFkZWdhIGVyYWxkYXR1ZCBuaW1la2lyaSwgaiZhdW1sO3RhIHYmYXVtbDtsamEgcHVua3RpZCAobi50LiwgJnF1b3Q7anBnLGdpZixqcGVnJnF1b3Q7KS4gVCZ1dW1sO2hpa3VpZCBpZ25vcmVlcml0YWtzZS4gSiZhdW1sO3R0ZXMgc2VsbGUgdiZhdW1sO2xqYSB0JnV1bWw7aGpha3MgZWkga2VodGkgJnV1bWw7aHRlZ2kgcGlpcmFuZ3V0Lic7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zJ10gPSAnTiZhdW1sO2l0YSBwaWlyYW5ndWlkPyc7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zX2xvbmcnXSA9ICdEaXNwbGF5IGFueSBzaXplIGFuZCBleHRlbnNpb24gcmVzdHJpY3Rpb25zIHdpdGggdGhlIHVwbG9hZCBmaWVsZD8nOwokbGFuZ1sndGl0bGVfZm9ybV90ZW1wbGF0ZSddID0gJ1Zvcm1pIFZhYXRlIGphb2tzIGthc3V0YXRhdiBNYWxsJzsKJGxhbmdbJ3RpdGxlX3BhZ2VfeF9vZl95J10gPSAnTGVodDogJXMga29ra3UgbGVodGk6ICVzJzsKJGxhbmdbJ3RpdGxlX25vX2FkdmFuY2VkX29wdGlvbnMnXSA9ICdWJmF1bWw7bGphbCBlaSBvbGUgbGFpZW5kYXR1ZCBzZWFkZWlkJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdW5zcGVjaWZpZWQnXSA9ICdUJmF1bWw7aXRtYXRhIHYmYXVtbDtsamFkZSB0ZWtzdCc7CiRsYW5nWyd0aXRsZV9lbmFibGVfZmFzdGFkZF9sb25nJ10gPSAnTHViYSBrYXN1dGFkYSBLaWlydmFsaWt1ZCB2b3JtaWRlIGVoaXRhbWlzZWw/JzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9mYXN0YWRkJ10gPSAnTHViYSBrYXN1dGFkYSBLaWlydmFsaWt1aWQ/JzsKJGxhbmdbJ3RpdGxlX2Zhc3RhZGQnXSA9ICdLaWlydmFsaWsnOwokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX3RlbXBsYXRlJ10gPSAnTWFsbGkgTXV1dHVqYWQnOwokbGFuZ1snaGVscF9zdWJtaXNzaW9uX2RhdGUnXSA9ICdTYWFkZXR1ZCc7CiRsYW5nWydoZWxwX3NlcnZlcl9uYW1lJ10gPSAnU2ludSBzZXJ2ZXInOwokbGFuZ1snaGVscF9zdWJfc291cmNlX2lwJ10gPSAnSVAgYWRkcmVzcyBvZiBwZXJzb24gdXNpbmcgZm9ybSc7CiRsYW5nWydoZWxwX3N1Yl91cmwnXSA9ICdVUkwgb2YgcGFnZSBjb250YWluaW5nIGZvcm0nOwokbGFuZ1snaGVscF9vdGhlcl9maWVsZHMnXSA9ICdPdGhlciBmaWVsZHMgd2lsbCBiZSBhdmFpbGFibGUgYXMgeW91IGFkZCB0aGVtIHRvIHRoZSBmb3JtLic7CiRsYW5nWydoZWxwX2RhdGVfZm9ybWF0J10gPSAnU2VlIDxhIGhyZWY9JnF1b3Q7aHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5kYXRlLnBocCZxdW90OyB0YXJnZXQ9X05FVz50aGUgUEhQIE1hbnVhbDwvYT4gZm9yIGZvcm1hdHRpbmcgaGVscC4nOwokbGFuZ1snaGVscF92YXJpYWJsZV9uYW1lJ10gPSAnTXV1dHVqYSc7CiRsYW5nWydoZWxwX2Zvcm1fZmllbGQnXSA9ICdWYXN0YXYgViZhdW1sO2xpJzsKJGxhbmdbJ2xpbmtfYmFja190b19mb3JtJ10gPSAnJmxhcXVvOyBCYWNrIHRvIEZvcm0nOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV90ZW1wbGF0ZSddID0gJ0xvbyBOJmF1bWw7aWRpc21hbGwnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9oZWFkZXInXSA9ICdMb28gTiZhdW1sO2lkaXNwJmF1bWw7aXMnOwokbGFuZ1snaGVscF90YWJfc3ltYm9sJ10gPSAnYSB0YWIgY2hhcmFjdGVyJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfdGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSBmb3Igb25lIGxpbmUgb2Ygb3V0cHV0IGZpbGUnOwokbGFuZ1sndGl0bGVfZmlsZV9oZWFkZXInXSA9ICdUZW1wbGF0ZSBmb3IgdGhlIGhlYWRlciBvZiBvdXRwdXQgZmlsZSc7CiRsYW5nWyd0aXRsZV9jb25maXJtYXRpb25fdXJsJ10gPSAnVVJMIHRvIGNsaWNrIGZvciBmb3JtIGNvbmZpcm1hdGlvbic7CiRsYW5nWydub19yZWZlcnJlcl9pbmZvJ10gPSAnTm8gSFRUUF9SRUZFUkVSIGluZm8gYXZhaWxhYmxlIChwcm9iYWJseSBkdWUgdG8gdXNlIG9mIFVzZXIgRW1haWwgVmFsaWRhdGlvbiknOwokbGFuZ1sndmFsaWRhdGlvbl9wYXJhbV9lcnJvciddID0gJ1ZhbGlkYXRpb24gUGFyYW1ldGVyIEVycm9yLiBQbGVhc2UgbWFrZSBzdXJlIHlvdSBjb3B5IHRoZSBVUkwgZnJvbSB5b3VyIGVtYWlsIGNvcnJlY3RseSEnOwokbGFuZ1sndmFsaWRhdGlvbl9yZXNwb25zZV9lcnJvciddID0gJ1ZhbGlkYXRpb24gUmVwc29uc2UgRXJyb3IuIFBsZWFzZSBtYWtlIHN1cmUgeW91IGNvcHkgdGhlIFVSTCBmcm9tIHlvdXIgZW1haWwgY29ycmVjdGx5ISc7CiRsYW5nWyd2YWxpZGF0aW9uX25vX2ZpZWxkX2Vycm9yJ10gPSAnVmFsaWRhdGlvbiBSZXBzb25zZSBFcnJvci4gTm8gZW1haWwgdmFsaWRhdGlvbiBmaWVsZCBpbiB0aGlzIGZvcm0hJzsKJGxhbmdbJ3RpdGxlX2RhdGVfZm9ybWF0J10gPSAnRGF0ZSBGb3JtYXQgKHN0YW5kYXJkIDxhIGhyZWY9JnF1b3Q7aHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5kYXRlLnBocCZxdW90Oz5QSFAgRGF0ZSBGb3JtYXRzPC9hPiknOwokbGFuZ1sndGl0bGVfdXNlX3d5c2l3eWcnXSA9ICdLYXN1dGEgdGVrc3RpdiZhdW1sO2xqYWwgV1lTSVdZRy10b2ltZXRhamF0Pyc7CiRsYW5nWydkaXNwdHlwZV90YWJsZSddID0gJ1RhYmVsL0NTUyc7CiRsYW5nWydkaXNwdHlwZV9jc3MnXSA9ICdBaW51bHQgQ1NTJzsKJGxhbmdbJ2Rpc3B0eXBlX3RlbXBsYXRlJ10gPSAnTWFsbCc7CiRsYW5nWydhZG1pbmRlc2MnXSA9ICdBZGQsIGVkaXQgYW5kIG1hbmFnZSBpbnRlcmFjdGl2ZSBGb3Jtcyc7CiRsYW5nWydkYXRlX2phbnVhcnknXSA9ICdKYWFudWFyJzsKJGxhbmdbJ2RhdGVfZmVicnVhcnknXSA9ICdWZWVicnVhcic7CiRsYW5nWydkYXRlX21hcmNoJ10gPSAnTSZhdW1sO3J0cyc7CiRsYW5nWydkYXRlX2FwcmlsJ10gPSAnQXByaWxsJzsKJGxhbmdbJ2RhdGVfbWF5J10gPSAnTWFpJzsKJGxhbmdbJ2RhdGVfanVuZSddID0gJ0p1dW5pJzsKJGxhbmdbJ2RhdGVfanVseSddID0gJ0p1dWxpJzsKJGxhbmdbJ2RhdGVfYXVndXN0J10gPSAnQXVndXN0JzsKJGxhbmdbJ2RhdGVfc2VwdGVtYmVyJ10gPSAnU2VwdGVtYmVyJzsKJGxhbmdbJ2RhdGVfb2N0b2JlciddID0gJ09rdG9vYmVyJzsKJGxhbmdbJ2RhdGVfbm92ZW1iZXInXSA9ICdOb3ZlbWJlcic7CiRsYW5nWydkYXRlX2RlY2VtYmVyJ10gPSAnRGV0c2VtYmVyJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3InXSA9ICdTb3JyeSEgVGhlcmUgd2FzIGFuIGVycm9yIGhhbmRsaW5nIHlvdXIgZm9ybSBzdWJtaXNzaW9uLic7CiRsYW5nWydzdWJtaXRfZXJyb3InXSA9ICdGb3JtQnVpbGRlciBzdWJtaXQgZXJyb3I6ICVzJzsKJGxhbmdbJ3VwbG9hZF9hdHRhY2hfZXJyb3InXSA9ICdVcGxvYWQvQXR0YWNobWVudCBlcnJvciBvbiBmaWxlICVzICh0bXBfbmFtZTogJXMsIG9mIHR5cGUgJXMpJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3JfZmlsZV9sb2NrJ10gPSAnRXJyb3IuIFVuYWJsZSB0byBvYnRhaW4gbG9jayBmb3IgZmlsZS4nOwokbGFuZ1snZW1haWxfZGVmYXVsdF90ZW1wbGF0ZSddID0gJ0Zvcm1CdWlsZGVyIFN1Ym1pc3Npb24NCic7CiRsYW5nWydlbWFpbF90ZW1wbGF0ZV9ub3Rfc2V0J10gPSAnPGJyLz5FbWFpbCBUZW1wbGF0ZSBub3QgeWV0IHNldCEnOwokbGFuZ1snbWlzc2luZ19jbXNfbWFpbGVyJ10gPSAnRm9ybUJ1aWxkZXI6IENhbm5vdCBmaW5kIHJlcXVpcmVkIG1vZHVsZSBDTVNNYWlsZXIhJzsKJGxhbmdbJ3VzZXJfYXBwcm92ZWRfc3VibWlzc2lvbiddID0gJ1VzZXIgYXBwcm92ZWQgc3VibWlzc2lvbiAlcyBmcm9tICVzJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXSA9ICdFdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddID0gJ0V2ZW50IHRyaWdnZXJlZCBpZiB0aGVyZSBpcyBhbiBlcnJvciB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXSA9ICdFdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgZGlzcGxheWVkJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXSA9ICc8cD5FdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkLjwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBUaGUgZm9ybSBuYW1lIChzdHJpbmcpPC9saT4NCjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gVGhlIGludGVybmFsIGZvcm0gaWQgKGludCk8L2xpPg0KPC91bD4gJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddID0gJzxwPkV2ZW50IHRyaWdnZXJlZCBpZiB0aGVyZSBpcyBhbiBlcnJvciB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQ8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gVGhlIGZvcm0gbmFtZSAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4NCjxsaT48ZW0+ZXJyb3I8L2VtPiAtIEEgbGlzdCBvZiBhbGwga25vd24gZXJyb3JzIChzdHJpbmcpPC9saT4NCjwvdWw+ICc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtRGlzcGxheSddID0gJzxwPkV2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBkaXNwbGF5ZWQ8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gVGhlIGZvcm0gbmFtZSAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4NCjwvdWw+ICc7CiRsYW5nWydwb3N0X2luc3RhbGwnXSA9ICc8cD5NYWtlIHN1cmUgdG8gc2V0IHRoZSAmcXVvdDtNb2RpZnkgRm9ybXMmcXVvdDsgcGVybWlzc2lvbnMNCm9uIHVzZXJzIHdobyB3aWxsIGJlIGFkbWluaXN0ZXJpbmcgZmVlZGJhY2sgZm9ybXMuIEFsc28sIGlmIHlvdSYjMDM5O2xsIGJlIGVtYWlsaW5nIGZvcm0NCnJlc3VsdHMsIGJlIHN1cmUgdG8gdXBkYXRlIHRoZSBDb25maWd1cmF0aW9uIGFwcHJvcHJpYXRlbHkuPC9wPg0KPHA+UGxlYXNlIGJlIGF3YXJlIHRoYXQgYSBmZWVkYmFjayBmb3JtIHNob3VsZCBub3QgYmUgYWN0aXZlIChlLmcuLCB1c2FibGUgYnkgdGhlIHB1YmxpYykgd2hpbGUNCnlvdSBhcmUgc3RpbGwgZWRpdGluZyB0aGUgZm9ybS4gWW91IHNob3VsZCBjcmVhdGUgdGhlIGZvcm0sIGFuZCBwbGFjZSB0aGUgdGFnIGludG8gYW4gYWN0aXZlDQpjb250ZW50IHBhZ2Ugb25seSB3aGVuIHlvdSBoYXZlIGZpbmlzaGVkIGVkaXRpbmcuIE90aGVyd2lzZSwgZXJyb25lb3VzIHJlc3VsdHMgY291bGQgYmUgcmV0dXJuZWQuPC9wPg0KPHA+QWRkaXRpb25hbGx5LCB0aGlzIHZlcnNpb24gZG9lcyBub3Qgc3VwcG9ydCBwYXJhbGxlbCBlZGl0aW5nIG9mIGZvcm1zLiBQbGVhc2UgdGFrZSBjYXJlIHRoYXQNCm9ubHkgb25lIGFkbWluIGlzIGVkaXRpbmcgYSBnaXZlbiBmb3JtIGF0IGEgZ2l2ZW4gdGltZS48L3A+JzsKJGxhbmdbJ2hlbHAnXSA9ICc8aDM+V2hhdCBEb2VzIFRoaXMgRG8/PC9oMz4NCjxwPlRoZSBGb3JtIEJ1aWxkZXIgTW9kdWxlIGFsbG93cyB5b3UgdG8gY3JlYXRlIGZlZWRiYWNrIGZvcm1zIChpbiBmYWN0LCBpdCYjMDM5O3MgYSByZXBsYWNlbWVudCBvZiB0aGUgb3JpZ2luYWwgRmVlZGJhY2sgRm9ybSBtb2R1bGUpLCB3aXRoIHRoZSBhZGRlZCBwb3dlciBvZiBkYXRhYmFzZSBzdG9yYWdlLiBXaXRoIGl0cyBjb21wYW5pb24gbW9kdWxlIEZvcm0gQnJvd3NlciwgeW91IGNhbiB1c2UgaXQgdG8gY3JlYXRlIHNpbXBsZSBkYXRhYmFzZSBhcHBsaWNhdGlvbnMuPC9wPg0KPHA+VGhlIGZvcm1zIGNyZWF0ZWQgdXNpbmcgdGhlIEZvcm0gQnVpbGRlciBtYXkgYmUgaW5zZXJ0ZWQNCmludG8gdGVtcGxhdGVzIGFuZC9vciBjb250ZW50IHBhZ2VzLiBGb3JtcyBtYXkgY29udGFpbiBtYW55IGtpbmRzIG9mIGlucHV0cywgYW5kIG1heSBoYXZlDQp2YWxpZGF0aW9uIGFwcGxpZWQgdG8gdGhlc2UgaW5wdXRzLiBUaGUgcmVzdWx0cyBvZiB0aGVzZSBmb3JtcyBtYXkgYmUgaGFuZGxlZCBpbiBhIHZhcmlldHkgb2Ygd2F5cy48L3A+DQoNCjxoMz5Ib3cgRG8gSSBVc2UgaXQ/PC9oMz4NCjxQPkluc3RhbGwgaXQsIGFuZCBwb2tlIGFyb3VuZCB0aGUgbWVudXMuIFBsYXkgd2l0aCBpdC4gVHJ5IGNyZWF0aW5nIGZvcm1zLCBhbmQgYWRkaW5nIHRoZW0gdG8geW91ciBjb250ZW50Lg0KSWYgeW91IGdldCBzdHVjaywgY2hhdCB3aXRoIG1lIG9uIHRoZSAjY21zIElSQyBjaGFubmVsLCBwb3N0IHRvIHRoZSBmb3J1bSwgc2VuZCBtZSBlbWFpbCwgb3IsIGlmIHlvdSYjMDM5O3JlDQpyZWFsbHkgZGVzcGVyYXRlLCByZWFkIHRoZSByZXN0IG9mIHRoaXMgcGFnZS48L1A+DQoNCjxoMz5Ib3cgRG8gSSBDcmVhdGUgYSBGb3JtPC9oMz4NCjxwPkluIHRoZSBDTVMgQWRtaW4gTWVudSwgeW91IHNob3VsZCBnZXQgYSBuZXcgbWVudSBpdGVtIGNhbGxlZCBGb3JtQnVpbGRlci4gQ2xpY2sgb24gdGhpcy4gT24gdGhlIHBhZ2UNCnRoYXQgZ2V0cyBzaG93biwgdGhlcmUgYXJlIG9wdGlvbnMgKGF0IHRoZSBib3R0b20gb2YgdGhlIGxpc3Qgb2YgRm9ybXMpIHRvIEFkZCBhIE5ldyBGb3JtIG9yIE1vZGlmeQ0KQ29uZmlndXJhdGlvbi48L3A+DQoNCjxoMz5BZGRpbmcgYSBGb3JtIHRvIGEgUGFnZTwvaDM+DQo8cD5JbiB0aGUgbWFpbiBGb3JtQnVpbGRlciBhZG1pbiBwYWdlLCB5b3UgY2FuIHNlZSBhbiBleGFtcGxlIG9mIHRoZSB0YWcgdXNlZCB0byBkaXNwbGF5IGVhY2ggZm9ybS4gSXQgbG9va3MNCnNvbWV0aGluZyBsaWtlIHtjbXNfbW9kdWxlIG1vZHVsZT0mIzAzOTtGb3JtQnVpbGRlciYjMDM5OyBmb3JtPSYjMDM5O3NhbXBsZV9mb3JtJiMwMzk7fTwvcD4NCjxwPkJ5IGNvcHlpbmcgdGhpcyB0YWcgaW50byB0aGUgY29udGVudCBvZiBhIHBhZ2UsIG9yIGludG8gYSB0ZW1wbGF0ZSwgd2lsbCBjYXVzZSB0aGF0IGZvcm0gdG8gYmUgZGlzcGxheWVkLg0KSW4gdGhlb3J5LCB5b3UgY2FuIGhhdmUgbXVsdGlwbGUgZm9ybXMgb24gYSBwYWdlIGlmIHlvdSByZWFsbHkgd2FudCB0by4gQmUgY2FyZWZ1bCB3aGVuIHBhc3RpbmcgdGhlIHRhZw0KaW50byBhIHBhZ2UmIzAzOTtzIGNvbnRlbnQgaWYgeW91IHVzZSBhIFdZU0lXWUcgZWRpdG9yIHN1Y2ggYXMgVGlueU1DRSBvciBIVE1MQXJlYS4gVGhlc2UgZWRpdG9ycyBtYXkgc3RlYWx0aGlseQ0KY2hhbmdlIHRoZSBxdW90ZSBtYXJrcyAoJnF1b3Q7KSBpbnRvIEhUTUwgZW50aXRpZXMgKCZhbXA7cXVvdDspLCBhbmQgdGhlIGZvcm1zIHdpbGwgbm90IHNob3cgdXAuIFRyeSB1c2luZw0Kc2luZ2xlIHF1b3RlcyAoJiMwMzk7KSBvciBlZGl0aW5nIHRoZSBIVE1MIGRpcmVjdGx5Lg0KDQo8aDM+V29ya2luZyB3aXRoIEZvcm1zPC9oMz4NCjxwPkJ5IGNsaWNraW5nIG9uIGEgRm9ybSYjMDM5O3MgbmFtZSwgeW91IGVudGVyIHRoZSBGb3JtIEVkaXQgcGFnZS4gVGhlcmUgYXJlIHNldmVyYWwgdGFicywgd2hpY2ggYXJlIGRlc2NyaWJlZCBiZWxvdzo8L3A+DQo8aDQ+TWFpbjwvaDQ+DQo8cD5UaGlzIGlzIHRoZSBtYWluIHBsYWNlIHlvdSYjMDM5O2xsIHdvcmsgb24geW91ciBmb3JtLiBIZXJlLCB5b3UgZ2l2ZSBpdCBhIG5hbWUsIGFuIGFsaWFzICh3aGljaCBpcyB1c2VkIHRvIGlkZW50aWZ5IGl0IGZvciBwbGFjaW5nIGl0IGluIGEgcGFnZSBvciB0ZW1wbGF0ZSksIGFuZCwgb3B0aW9uYWxseSwgYSBDU1MgY2xhc3Mgd2l0aCB3aGljaCB0byB3cmFwIHRoZSB3aG9sZSB0aGluZy4gWW91IGFsc28gc2VsZWN0IHRoZSBkaXNwbGF5IHR5cGUuIFlvdXIgY2hvaWNlcyBhcmU6PC9wPg0KPHVsPg0KPGxpPlRhYmxlL0NTUy4gVGhlIGZvcm0gaXMgY3JlYXRlZCB1c2luZyBIVE1MIHRhYmxlcy4gSWYgeW91IGRvbiYjMDM5O3Qga25vdyB3aGF0IHRvIGNob29zZSwgdGhpcyBpcyB0aGUgZWFzaWVzdCBvcHRpb24sIGFuZCB3aWxsIHByb2JhYmx5IGRvIG1vc3Qgb2Ygd2hhdCB5b3Ugd2FudC4gWW91IGNhbiBzdGlsbCB1c2UgQ1NTIHRvIHN0eWxlIHRoZSBmb3JtIGlmIHlvdSB3YW50LjwvbGk+DQo8bGk+UHVyZSBDU1MuIFRoZSBmb3JtIGlzIGNyZWF0ZWQsIHdpdGggYWxsIHRoZSBmaWVsZHMgd3JhcHBlZCBpbiA8ZGl2PiB0YWdzLiBZb3UgY2FuIHRoZW4gc3R5bGUgdGhlIGZvcm0gYXMgeW91IHNlZSBmaXQuPC9saT4NCjxsaT5DdXN0b20gVGVtcGxhdGUuIEJhc2ljYWxseSwgeW91IGdldCBhIHNtYXJ0eSB0ZW1wbGF0ZSwgYSBidW5jaCBvZiB2YXJpYWJsZXMsIGFuZCB5b3UmIzAzOTtyZSBvbiB5b3VyIG93bi4gWW91IGhhdmUgdGhlIHBvd2VyIHRvIGNyZWF0ZSB3aGF0ZXZlciB5b3Ugd2FudC48L2xpPg0KPC91bD4NCjxwPkJlbG93IHRoaXMsIGlmIHlvdSBoYXZlIGl0IGVuYWJsZWQsIGlzIHRoZSAmcXVvdDtmYXN0IGZpZWxkIGFkZGVyJnF1b3Q7IHB1bGxkb3duLCB0aGF0IGxldHMgeW91IHF1aWNrbHkgYWRkIGEgZmllbGQgdG8gdGhlIGVuZCBvZiB5b3VyIGZvcm0gYnkgc2VsZWN0aW5nIHRoZSBmaWVsZCB0eXBlLjwvcD4NCjxwPkJlbG93IHRoaXMgaXMgdGhlIGxpc3Qgb2YgZmllbGRzIHRoYXQgbWFrZSB1cCB5b3VyIGZvcm0uIE1vcmUgZGV0YWlsIG9uIHRoaXMgaXMgZGVzY3JpYmVkIGJlbG93LjwvcD4NCjxoND5Gb3JtIFNldHRpbmdzPC9oND4NCjxwPkZvcm0gU2V0dGluZ3MgYWxsb3dzIHlvdSB0byBjdXN0b21pemUgYSBsb3Qgb2YgdGhlIG1lc3NhZ2VzIGFuZCB0ZXh0IGluIHRoZSBjb250cm9scyBmb3IgeW91ciBmb3JtLiBJdCBhbHNvIGFsbG93cyB5b3UgdG8gcGljayBhIHBhZ2UgdG8gcmVkaXJlY3QgdXNlcnMgdG8gYWZ0ZXIgYSBzdWNjZXNzZnVsIGZvcm0gc3VibWlzc2lvbi48L3A+DQo8aDQ+VGFibGUtYmFzZWQgTGF5b3V0IE9wdGlvbnM8L2g0Pg0KPHA+VGFibGUtbGF5b3V0cyBoYXZlIGdvdHRlbiBzaW1wbGVyLCBzbyB5b3VyIG9ubHkgb3B0aW9uIGhlcmUgaXMgdGhlIHBvc2l0aW9uIG9mIHRoZSBmaWVsZCBuYW1lcyByZWxhdGl2ZSB0byB0aGUgaW5wdXRzLiBJZiB5b3UmIzAzOTtyZSB1c2luZyBhIFRhYmxlL0NTUyBsYXlvdXQsIHlvdSBjYW4gdXNlIHRoaXMgdGFiIHRvIHNlbGVjdCB0aGUgZmllbGQgbmFtZSBwb3NpdGlvbnMuPC9wPg0KPGg0PlRlbXBsYXRlIExheW91dCBPcHRpb25zPC9oND4NCjxwPlRoaXMgaXMgd2hlcmUgeW91IGRvIHlvdXIgY3VzdG9taXphdGlvbiB3b3JrIGlmIHlvdXIgZm9ybSB1c2VzIGEgQ3VzdG9tIFRlbXBsYXRlLjwvcD4NCjxwPlRoZSBmb3JtIHNob3VsZCBkZWZhdWx0IHRvIGEgYSBDdXN0b20gdGVtcGxhdGUgdGhhdCBkb2N1bWVudHMgdGhlIHNtYXJ0eSB0YWdzIGF2YWlsYWJsZSB0byB5b3UuIFVubGVzcyB5b3UmIzAzOTtyZSBhIHNtYXJ0eSBleHBlcnQsIHlvdSBwcm9iYWJseSBkb24mIzAzOTt0IHdhbnQgdG8gbWVzcyBhcm91bmQgd2l0aCB0aGlzLiBJZiB5b3UgYXJlIGEgc21hcnR5IGV4cGVydCwgdGhpcyBpcyB3aGVyZSB5b3UgY2FuIHVubGVhc2ggeW91ciBtYWdpYy48L3A+DQo8aDM+QWRkaW5nIEZpZWxkcyB0byB5b3VyIEZvcm08L2gzPg0KPHA+VGhlIHR5cGVzIG9mIGZpZWxkcyB0aGF0IGFyZSBjdXJyZW50bHkgc3VwcG9ydGVkIGZpdCBpbnRvIGZvdXIgZ3JvdXBzOiBzdGFuZGFyZCBpbnB1dCBmaWVsZHMsIGRpc3BsYXkgY29udHJvbCBmaWVsZHMsIGVtYWlsLXNwZWNpZmljIGZpZWxkcywgYW5kIGZvcm0gcmVzdWx0IGhhbmRsaW5nIGZpZWxkcyAoYWxzbyBjYWxsZWQgRm9ybSBEaXNwb3NpdGlvbnMgaW4gcGxhY2VzKTo8L3A+DQo8dWw+DQo8bGk+U3RhbmRhcmQgSW5wdXQgRmllbGRzIC0gdGhlc2UgYXJlIGlucHV0cyB0aGF0IGFsbG93IGVudHJ5IG9mIHR5cGljYWwgZm9ybSBlbGVtZW50czsgdGV4dCBpbnB1dHMsIHJhZGlvIGJ1dHRvbnMsIGV0Yy48L2xpPg0KPGxpPkRpc3BsYXkgQ29udHJvbCBGaWVsZHMgLSB0aGVzZSBpbnB1dCBjb250cm9sIGhvdyB0aGUgdXNlciB3aWxsIHNlZSB0aGUgZGlzcGxheSBvZiB0aGUgZm9ybTsgcGFnZSBicmVha3MsIHN0YXRpYyB0ZXh0LCBldGMuPC9saT4NCjxsaT5FbWFpbC1zcGVjaWZpYyBGaWVsZHMgLSBzb21lIGZvcm1zIGdlbmVyYXRlIGVtYWlsLCBhbmQgZW1haWwtc3BlY2lmaWMgZmllbGRzIGNhbiBhbHRlciBhdHRyaWJ1dGVzIG9mIHRoZSBlbWFpbHMgc2VudC48L2xpPg0KPGxpPkZvcm0gRGlzcG9zaXRpb25zIC0gVGhlc2UgZGV0ZXJtaW5lIHdoYXQgaGFwcGVucyB3aGVuIHRoZSB1c2VyDQpzdWJtaXRzIHRoZSBmb3JtOyBmb3IgZWFjaCByZXN1bHQgaGFuZGxpbmcgZmllbGQsIHNvbWUgbWV0aG9kIG9mIHRyYW5zbWl0dGluZywgc2F2aW5nLCBvciBlbWFpbGluZyB0aGUNCmZvcm0gY29udGVudHMgdGFrZXMgcGxhY2UuIEEgZm9ybSBtYXkgaGF2ZSBtdWx0aXBsZSBmb3JtIGRpc3Bvc2l0aW9ucy48L2xpPg0KPC91bD4NCjxwPkZvcm0gZmllbGRzIGFyZSBhc3NpZ25lZCBuYW1lcy4gVGhlc2UgbmFtZXMgaWRlbnRpZnkgdGhlIGZpZWxkLCBub3Qgb25seSBvbiB0aGUgc2NyZWVuIGFzIGxhYmVscyBmb3IgdGhlIHVzZXIsDQpidXQgaW4gdGhlIGRhdGEgd2hlbiBpdCYjMDM5O3Mgc3VibWl0dGVkIHNvIHlvdSBrbm93IHdoYXQgdGhlIHVzZXIgaXMgcmVzcG9uZGluZyB0by4gUGhyYXNpbmcgdGhlIG5hbWUgbGlrZSBhIHF1ZXN0aW9uDQppcyBhIGhhbmR5IHdheSBvZiBtYWtpbmcgaXQgY2xlYXIgdG8gdGhlIHVzZXIgd2hhdCBpcyBleHBlY3RlZC4gU2ltaWxhcmx5LCBtYW55IGZpZWxkcyBoYXZlIGJvdGggTmFtZXMgYW5kIFZhbHVlcy4NClRoZSBOYW1lcyBhcmUgd2hhdCBnZXRzIHNob3duIHRvIHRoZSB1c2VyOyB0aGUgVmFsdWUgaXMgd2hhdCBnZXRzIHNhdmVkIG9yIHRyYW5zbWl0dGVkIHdoZW4gdGhlIHVzZXIgc3VibWl0cw0KdGhlIGZvcm0uIFRoZSBWYWx1ZXMgYXJlIG5ldmVyIHNlZW4gYnkgdGhlIHVzZXIsIG5vciBhcmUgdGhleSB2aXNpYmxlIGluIHRoZSBIVE1MLCBzbyBpdCYjMDM5O3Mgc2FmZSB0byB1c2UgZm9yDQplbWFpbCBhZGRyZXNzZXMgYW5kIHN1Y2guPC9wPg0KPHA+U29tZSBmaWVsZHMgY2FuIGhhdmUgbXVsdGlwbGUgdmFsdWVzLCBvciBtdWx0aXBsZSBuYW1lL3ZhbHVlIHBhaXJzLiBXaGVuIHlvdSBmaXJzdCBjcmVhdGUgc3VjaCBhIGZpZWxkLA0KdGhlcmUgbWF5IG5vdCBiZSBzdWZmaWNpZW50IGlucHV0cyBmb3IgeW91IHRvIHNwZWNpZnkgYWxsIHRoZSB2YWx1ZXMgeW91IHdhbnQuIFRvIGdldCBtb3JlIHNwYWNlIGZvciBpbnB1dHRpbmcNCnRoZXNlIHZhbHVlcywgdXNlIHRoZSBidXR0b25zIGF0IHRoZSBib3R0b20gb2YgdGhlIHBhZ2UgZm9yIGFkZGluZyBvcHRpb25zLjwvcD4NCjxwPkZpZWxkcyBjYW4gYmUgYXNzaWduZWQgdmFsaWRhdGlvbiBydWxlcywgd2hpY2ggdmFyeSBhY2NvcmRpbmcgdG8gdGhlIHR5cGUgb2YgdGhlIGZpZWxkLiBUaGVzZSBydWxlcyBoZWxwDQplbnN1cmUgdGhhdCB0aGUgdXNlciBlbnRlcnMgdmFsaWQgZGF0YS4gVGhleSBtYXkgYWxzbyBiZQ0Kc2VwYXJhdGVseSBtYXJrZWQgJnF1b3Q7UmVxdWlyZWQmcXVvdDssIHdoaWNoIHdpbGwgZm9yY2UgdGhlIHVzZXIgdG8gZW50ZXIgYSByZXNwb25zZS48L3A+DQo8cD5GaWVsZHMgYWxzbyBtYXkgYmUgYXNzaWduZWQgYSBDU1MgY2xhc3MuIFRoaXMgc2ltcGx5IHdyYXBzIHRoZSBpbnB1dCBpbiBhIGRpdiB3aXRoIHRoYXQgY2xhc3MsIHNvIGFzIHRvIGFsbG93DQpjdXN0b21pemVkIGxheW91dHMuIFRvIHVzZSB0aGlzIGVmZmVjdGl2ZWx5LCB5b3UgbWF5IG5lZWQgdG8gJnF1b3Q7dmlldyBzb3VyY2UmcXVvdDsgb24gdGhlIGdlbmVyYXRlZCBmb3JtLCBhbmQgdGhlbg0Kd3JpdGUgeW91ciBDU1MuPC9wPg0KPHVsPg0KPGxpPlN0YW5kYXJkIElucHV0cw0KPHVsPjxsaT5UZXh0IElucHV0LiBUaGlzIGlzIGEgc3RhbmRhcmQgdGV4dCBmaWVsZC4gWW91IGNhbiBsaW1pdCB0aGUgbGVuZ3RoLCBhbmQgYXBwbHkgdmFyaW91cyB2YWxpZGF0aW9uDQpmdW5jdGlvbnMgdG8gdGhlIGZpZWxkLjwvbGk+DQo8bGk+VGV4dCBBcmVhLiBUaGlzIGlzIGEgYmlnLCBmcmVlLWZvcm0gdGV4dCBpbnB1dCBmaWVsZC48L2xpPg0KPGxpPkNoZWNrYm94LiBUaGlzIGlzIGEgc3RhbmRhcmQgY2hlY2sgYm94LjwvbGk+DQo8bGk+Q2hlY2tib3ggR3JvdXAuIFRoaXMgaXMgYSBjb2xsZWN0aW9uIG9mIGNoZWNrYm94ZXMuIFRoZSBvbmx5IGRpZmZlcmVuY2UgYmV0d2VlbiB0aGlzIGlucHV0IGFuZCBhDQpjb2xsZWN0aW9uIG9mIENoZWNrYm94IGlucHV0cyBpcyB0aGF0IHRoZXkgYXJlIHByZXNlbnRlZCBhcyBhIGdyb3VwLCB3aXRoIG9uZSBuYW1lLCBhbmQgY2FuIGhhdmUgYSB2YWxpZGF0aW9uIGZ1bmN0aW9uIHJlcXVpcmluZyB0aGF0IHlvdSBjaGVjayBvbmUgb3IgbW9yZSBvZiB0aGUgYm94ZXMgaW4gdGhlIGdyb3VwLjwvbGk+DQo8bGk+UmFkaW8gR3JvdXAuIFRoaXMgaXMgYSBjb2xsZWN0aW9uIG9mIHJhZGlvIGJ1dHRvbnMuIE9ubHkgb25lIG9mIHRoZSBncm91cCBtYXkgYmUgc2VsZWN0ZWQgYnkgdGhlIHVzZXIuPC9saT4NCjxsaT5QdWxsZG93bi4gVGhpcyBpcyBhIHN0YW5kYXJkIHB1bGxkb3duIG1lbnUuIEl0JiMwMzk7cyByZWFsbHkgY29uY2VwdHVhbGx5IHRoZSBzYW1lIHRoaW5nIGFzIGEgcmFkaW8gYnV0dG9uDQpncm91cCwgYnV0IGlzIGJldHRlciB3aGVuIHRoZXJlIGFyZSBhIGxhcmdlIG51bWJlciBvZiBvcHRpb25zLjwvbGk+DQo8bGk+TXVsdGlzZWxlY3QuIFRoaXMgaXMgYSBtdWx0aS1zZWxlY3QgZmllbGQuIEl0JiMwMzk7cyByZWFsbHkgY29uY2VwdHVhbGx5IHRoZSBzYW1lIHRoaW5nIGFzIGEgY2hlY2tib3ggYnV0dG9uDQpncm91cCwgYnV0IGlzIGJldHRlciB3aGVuIHRoZXJlIGFyZSBhIGxhcmdlIG51bWJlciBvZiBvcHRpb25zLCBhcyB5b3UgY2FuIGxpbWl0IHRoZSBudW1iZXIgZGlzcGxheWVkIG9uIHRoZSBzY3JlZW4gYXQgYW55IG9uZSB0aW1lLjwvbGk+DQo8bGk+U3RhdGUuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBTdGF0ZXMgb2YgdGhlIFUuUy48L2xpPg0KPGxpPkNvdW50cmllcy4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIENvdW50cmllcyBvZiB0aGUgd29ybGQgKGFzIG9mIEp1bHkgMjAwNSkuPC9saT4NCjxsaT5EYXRlIFBpY2tlci4gVGhpcyBpcyBhIHRyaXBsZSBwdWxsZG93biBhbGxvd2luZyB0aGUgdXNlciB0byBzZWxlY3QgYSBkYXRlLjwvbGk+DQo8L3VsPjwvbGk+DQoNCjxsaT5FbWFpbC1zcGVjaWZpYyBJbnB1dHMNCjx1bD48bGk+RW1haWwgRnJvbSBBZGRyZXNzIEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIHRoZWlyIGVtYWlsIGFkZHJlc3MuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBhZGRyZXNzIGluIHRoZSAmcXVvdDtGcm9tJnF1b3Q7IGZpZWxkLjwvbGk+DQo8bGk+RW1haWwgRnJvbSBOYW1lIEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIHRoZWlyIG5hbWUuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBuYW1lIGluIHRoZSAmcXVvdDtGcm9tJnF1b3Q7IGZpZWxkLjwvbGk+DQo8L3VsPjwvbGk+DQoNCjxsaT5EaXNwbGF5IENvbnRyb2wgRmllbGRzPHVsPg0KPGxpPi1QYWdlIEJyZWFrLiBUaGlzIGFsbG93cyB5b3UgdG8gc3BsaXQgeW91ciBmZWVkYmFjayBmb3JtIGludG8gbXVsdGlwbGUgcGFnZXMuIEVhY2ggcGFnZSBpcw0KaW5kZXBlbmRlbnRseSB2YWxpZGF0ZWQuIFRoaXMgaXMgZ29vZCBmb3IgYXBwbGljYXRpb25zIGxpa2Ugb25saW5lIHN1cnZleXMuPC9saT4NCjxsaT4tU3RhdGljIFRleHQuIFRoaXMgYWxsb3dzIHlvdSB0byBwdXQgdGV4dCBvciBhIGxhYmVsIGluIHRoZSBtaWRkbGUgb2YgeW91ciBmb3JtLiBUaGlzIGlzIHVzZWZ1bCBmb3IgZ2l2aW5nIGFkZGl0aW9uYWwgaGVscCB0ZXh0LCBlc3BlY2lhbGx5IGlmIHlvdSYjMDM5O3JlIG5vdCB1c2luZyBhIEN1c3RvbSBUZW1wbGF0ZSB0byByZW5kZXIgeW91ciBmb3JtLjwvbGk+DQo8L3VsPjwvbGk+DQoNCjxsaT5Gb3JtIEhhbmRsaW5nIElucHV0cyAoRGlzcG9zaXRpb25zKQ0KPHVsPjxsaT4qRW1haWwgUmVzdWx0cyBCYXNlZCBvbiBQdWxsZG93bi4gVGhpcyBpcyB1c2VmdWwgZm9yIHdlYiBzaXRlcyB3aGVyZSBjb21tZW50cyBnZXQgcm91dGVkIGJhc2VkIG9uIHRoZWlyIHN1YmplY3QgbWF0dGVyLCBlLmcuLCBidWdzIGdldCBzZW50IHRvIG9uZSBwZXJzb24sIG1hcmtldGluZyBxdWVzdGlvbnMgdG8gYW5vdGhlciBwZXJzb24sIHNhbGVzIHJlcXVlc3RzIHRvIHNvbWVvbmUgZWxzZSwgZXRjLiBUaGUgcHVsbGRvd24gaXMgcG9wdWxhdGVkIHdpdGggdGhlIHN1YmplY3RzLCBhbmQgZWFjaCBnZXRzIGRpcmVjdGVkIHRvIGEgc3BlY2lmaWMgZW1haWwgYWRkcmVzcy4gWW91IHNldCB1cCB0aGVzZSBtYXBwaW5ncyBpbiB0aGUgd2hlbiB5b3UgY3JlYXRlIG9yIGVkaXQgYSBmaWVsZCBvZiB0aGlzIHR5cGUuIElmIHlvdSB1c2Ugb25lIG9mIHRoZXNlICZxdW90O0RpcmVjdG9yJnF1b3Q7IHB1bGxkb3ducywgdGhlIHVzZXIgbXVzdCBtYWtlIGEgc2VsZWN0aW9uIGluIG9yZGVyIHRvIHN1Ym1pdCB0aGUNCmZvcm0uIFRoaXMgaW5wdXQgaXMgcGFydCBvZiB0aGUgZm9ybSB0aGUgdXNlciBzZWVzLCBhbHRob3VnaCB0aGUgZW1haWwgYWRkcmVzc2VzIGFyZSBub3QgbWFkZSB2aXNpYmxlIG5vcg0KYXJlIHRoZXkgZW1iZWRkZWQgaW4gdGhlIEhUTUwuPC9saT4NCjxsaT4qRW1haWwgUmVzdWx0cyB0byBzZXQgQWRkcmVzcyhlcykuIFRoaXMgc2ltcGx5IHNlbmRzIHRoZSBmb3JtIHJlc3VsdHMgdG8gb25lIG9yIG1vcmUgZW1haWwgYWRkcmVzc2VzIHRoYXQgeW91IGVudGVyIHdoZW4geW91IGNyZWF0ZSBvciBlZGl0IHRoaXMgdHlwZSBvZiBmaWVsZC4gVGhpcyBmaWVsZCBhbmQgaXRzIG5hbWUgYXJlIG5vdCB2aXNpYmxlIGluIHRoZQ0KZm9ybSB0aGF0IHRoZSB1c2VyIHNlZXMuIFRoZSBlbWFpbCBhZGRyZXNzZXMgYXJlIG5vdCBtYWRlIHZpc2libGUgbm9yDQphcmUgdGhleSBlbWJlZGRlZCBpbiB0aGUgSFRNTC48L2xpPg0KPGxpPipTdG9yZSBSZXN1bHRzIGluIERhdGFiYXNlLiBUaGlzIHdpbGwgc3RvcmUgdGhlIGZvcm0gY29udGVudHMgaW4gYW4gaW50ZXJuYWwgZGF0YWJhc2UuIFlvdSB3aWxsIGFsd2F5cyB1c2UgdGhpcyBkaXNwb3NpdGlvbiBpZiB5b3UgdXNlIHRoZSBmb3JtIHdpdGggRm9ybUJyb3dzZXIuPC9saT4NCjxsaT4qVmFsaWRhdGUgdmlhIEVtYWlsLiBUaGlzIGlzIGEgc3RyYW5nZSBhbmQgcG93ZXJmdWwgZmllbGQuIEl0IHByb3ZpZGVzIHRoZSB1c2VyIGEgbWFuZGF0b3J5IGlucHV0IGZvciB0aGVpciBlbWFpbCBhZGRyZXNzLiBPbmNlIHRoZXkgc3VibWl0IHRoZWlyIGZvcm0sIHRoZSBzdGFuZGFyZCBmb3JtIGRpc3Bvc2l0aW9ucyBhcmUgbm90IHBlcmZvcm1lZCAtLSByYXRoZXIsIGl0IHNlbmQgdGhlIHVzZXIgYW4gZW1haWwgd2l0aCBhIHNwZWNpYWwgY29kZWQgbGluay4gSWYgdGhleSBjbGljayBvbiB0aGUgbGluaywgdGhlIG90aGVyIGZvcm0gaXMgY29uc2lkZXJlZCAmcXVvdDthcHByb3ZlZCwmcXVvdDsgYW5kIHRoZSBvdGhlciBkaXNwb3NpdGlvbnMgYXJlIGFsbCBwZXJmb3JtZWQuPC9saT4NCjxsaT4qV3JpdGUgUmVzdWx0cyB0byBGbGF0IEZpbGUuIFRoaXMgdGFrZXMgdGhlIGZvcm0gcmVzdWx0cyBhbmQgd3JpdGVzIHRoZW0gaW50byBhIHRleHQgZmlsZS4gWW91IG1heQ0Kc2VsZWN0IHRoZSBuYW1lIG9mIHRoZSBmaWxlLCBhbmQgc2V0IGl0cyBmb3JtYXQuIFRoZXNlIGZpbGVzIGFyZSB3cml0dGVuIHRvIHRoZSAmcXVvdDtvdXRwdXQmcXVvdDsgZGlyZWN0b3J5IHVuZGVyIHRoZQ0KbW9kdWxlJiMwMzk7cyBpbnN0YWxsYXRpb24gZGlyZWN0b3J5LCBhc3N1bWluZyB0aGUgd2ViIHNlcnZlciBoYXMgcGVybWlzc2lvbiB0byB3cml0ZSB0aGVyZS4NCjwvdWw+PC9saT48L2xpPjwvdWw+DQoNCjxoMz5FbWFpbCBhbmQgRmxhdCBGaWxlIFRlbXBsYXRlczwvaDM+DQo8cD5NYW4gZGlzcG9zaXRpb24gdHlwZXMgYWxsb3cgeW91IHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZvciB0aGUgZW1haWwgdGhhdCBpcyBnZW5lcmF0ZWQsIG9yIGZvciB0aGUgd2F5IHRoZSByZXN1bHRzIGFyZSB3cml0dGVuIHRvIGEgZmlsZS4gSWYgeW91IG9wdCBub3QgdG8gY3JlYXRlIGEgdGVtcGxhdGUsIHRoZSBGb3JtQnVpbGRlciB3aWxsIHVzZSBpdCYjMDM5O3Mgb3duIGJlc3QgZ3Vlc3MsIHdoaWNoIG1heSBvciBtYXkgbm90IHdvcmsgb3V0IHRvIHlvdXIgbGlraW5nLiBZb3UgY2FuIGFsd2F5cyBjbGljayBvbiB0aGUgJnF1b3Q7Q3JlYXRlIFNhbXBsZSBUZW1wbGF0ZSZxdW90OyBhbmQgdGhlbiBjdXN0b21pemUgdGhlIHJlc3VsdHMuPC9wPg0KPHA+Tm90ZSB0aGF0IG9uY2UgeW91JiMwMzk7dmUgY2hhbmdlZCBhIHRlbXBsYXRlLCBpdCB3aWxsIG5vIGxvbmdlciBhdXRvbWF0aWNhbGx5IGFkZCBuZXcgZmllbGRzLiBGb3IgdGhpcyByZWFzb24sIGl0JiMwMzk7cyB1c3VhbGx5IGJlc3QgdG8gY3JlYXRlIHlvdXIgdGVtcGxhdGVzIGFzIHRoZSBsYXN0IHN0ZXAgb2YgY3JlYXRpbmcgeW91ciBmb3JtLjwvcD4NCg0KPGgzPktub3duIElzc3VlczwvaDM+DQo8dWw+DQo8bGk+U29tZSBmaWVsZCB0eXBlcyBmcm9tIEZlZWRiYWNrRm9ybXMgYXJlIG5vdCBpbXBsZW1lbnRlZCBpbiBGb3JtQnVpbGRlci4gSWYgdGhlcmUgaXMgZGVtYW5kIGZvciB0aGVtLCB0aGV5IHdpbGwgYmUgYWRkZWQuPC9saT4NCjxsaT5Gb3JtQnVpbGRlciBpcyBub3QgeWV0IGludGVncmF0ZWQgd2l0aCBGcm9udEVuZCBVc2Vycy4gSXQgd2lsbCBiZS48L2xpPg0KPGxpPkZvcm1CdWlsZGVyIGNhbm5vdCB5ZXQgYmUgaW5saW5lZC4gVGhhdCBzaG91bGQgYmUgYSBzaW1wbGUgdXBncmFkZSBkb3duIHRoZSBsaW5lLjwvbGk+DQo8bGk+Rm9ybUJ1aWxkZXIgZG9lcyBub3QgeWV0IHN1cHBvcnQgcHJldHR5IHVybHMsIGFsdGhvdWdoIHRoYXQgc2hvdWxkbiYjMDM5O3QgbWF0dGVyIHNpbmNlIHRoZSB1c2VyIHNpZGUgaXMgcHJldHR5IHNpbXBsZS48L2xpPg0KPC91bD4NCg0KPGgzPlRyb3VibGVzaG9vdGluZzwvaDM+DQo8b2w+PGxpPiBGaXJzdCBzdGVwIGlzIHRvIGNoZWNrIHlvdSYjMDM5O3JlIHJ1bm5pbmcgQ01TIDEuMC1zdm4gb3IgbGF0ZXIuPC9saT4NCjxsaT4gU2Vjb25kIHN0ZXAgaXMgdG8gcmVhZCBhbmQgdW5kZXJzdGFuZCB0aGUgY2F2ZWF0IGFib3V0IFdZU0lXWUcgZWRpdG9ycyB1cCBpbiB0aGUNCnNlY3Rpb24gPGVtPkFkZGluZyBhIEZvcm0gdG8gYSBQYWdlPC9lbT4uPC9saT4NCjxsaT4gSWYgeW91JiMwMzk7cmUgbWlzc2luZyBmaWVsZHMgaW4gYW4gZW1haWwgdGhhdCBnZXRzIGdlbmVyYXRlZCwgY2hlY2sgdGhlIGRpc3Bvc2l0aW9uIGZpZWxkJiMwMzk7cyB0ZW1wbGF0ZSwgYW5kIG1ha2Ugc3VyZSB5b3UmIzAzOTtyZSBzcGVjaWZ5aW5nIHRoZSBtaXNzaW5nIGZpZWxkcy4gU2VlbXMgb2J2aW91cywgYnV0IGl0JiMwMzk7cyBhbiBlYXN5IG1pc3Rha2UgdG8gbWFrZS48L2xpPg0KPGxpPiBKdXN0IG1lc3MgYXJvdW5kIGFuZCB0cnkgY2xpY2tpbmcgb24gbGlua3MgYW5kIGljb25zIGFuZCBzdHVmZi4gU2VlIHdoYXQgaGFwcGVucy48L2xpPg0KPGxpPiBMYXN0IHJlc3BvcnQgaXMgdG8gZW1haWwgbWUgb3IgY2F0Y2ggbWUgb24gSVJDIGFuZCB3ZSBjYW4gZ28gZnJvbSB0aGVyZS48L2xpPg0KPC9vbD4gDQo8cD5UaGlzIGlzIGEgZmFpcmx5IGVhcmx5IHZlcnNpb24sIGlmIG5vdCBhIHJhbmsgYmV0YSByZWxlYXNlLCBhbmQgaXQgaXMgcHJvYmFibHkgc3RpbGwgYnVnZ3kuIFdoaWxlIEkmIzAzOTt2ZSBkb25lIGFsbCBJIGNhbg0KdG8gbWFrZSBzdXJlIG5vIGVncmVnaW91cyBidWdzIGhhdmUgY3JlcHQgaW4sIEkgaGF2ZSB0byBhZG1pdCB0aGF0IGR1cmluZyB0ZXN0aW5nLCB0aGlzIHByb2dyYW0NCnJldmVhbGVkIHNldmVuIGNvY2tyb2FjaGVzLCB0d28gZWFyd2lncywgYSBzbWFsbCBmYW1pbHkgb2YgYXBoaWRzLCBhbmQgYSB3YWxraW5nLXN0aWNrIGluc2VjdC4gSXQgYWxzbw0KYXRlIHRoZSBuZWlnaGJvciYjMDM5O3MgbmFzdHkgbGl0dGxlIHlhcCBkb2csIGZvciB3aGljaCBJIHdhcyBpbmFwcHJvcHJpYXRlbHkgZ3JhdGVmdWwuPC9wPg0KPHA+VGhlIGZpbmFsIHJlbGVhc2Ugd2lsbCBpbmNsdWRlIGJ1ZyBmaXhlcywgZG9jdW1lbnRhdGlvbiwgYW5kIHVuY29uZGl0aW9uYWwgbG92ZS48L3A+DQo8aDM+U3VwcG9ydDwvaDM+DQo8cD5UaGlzIG1vZHVsZSBkb2VzIG5vdCBpbmNsdWRlIGNvbW1lcmNpYWwgc3VwcG9ydC4gSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+DQo8dWw+DQo8bGk+Rm9yIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIG1vZHVsZSwgRkFRcywgb3IgdG8gZmlsZSBhIEJ1ZyBSZXBvcnQsIHBsZWFzZSB2aXNpdCB0aGUgQ01TIE1hZGUgU2ltcGxlICA8YSBocmVmPSZxdW90O2h0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcmcXVvdDs+RGV2ZWxvcGVyIEZvcmdlPC9hPi48L2xpPg0KPGxpPlRvIG9idGFpbiBjb21tZXJjaWFsIHN1cHBvcnQsIHBsZWFzZSBzZW5kIGFuIGVtYWlsIHRvIHRoZSBhdXRob3IgYXQgPGEgaHJlZj0mcXVvdDttYWlsdG86c2pnQGNtc21vZHVsZXMuY29tJnF1b3Q7PjxzamdAY21zbW9kdWxlcy5jb20+PC9hPi48L2xpPg0KPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0mcXVvdDtodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmcmcXVvdDs+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uPC9saT4NCjxsaT5UaGUgYXV0aG9yIGNhbiBvZnRlbiBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0mcXVvdDtpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXMmcXVvdDs+Q01TIElSQyBDaGFubmVsPC9hPi48L2xpPg0KPGxpPkxhc3RseSwgeW91IG1heSBoYXZlIHNvbWUgc3VjY2VzcyBlbWFpbGluZyB0aGUgYXV0aG9yIGRpcmVjdGx5IGFuZCBncm92ZWxsaW5nIGZvciBmcmVlIHN1cHBvcnQuPC9saT4gIA0KPC91bD4NCjxwPkFzIHBlciB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkIGFzLWlzLiBQbGVhc2UgcmVhZCB0aGUgdGV4dA0Kb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuPC9wPg0KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+DQo8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMDYsIFNhbXVlbCBHb2xkc3RlaW4gPGEgaHJlZj0mcXVvdDttYWlsdG86c2pnQGNtc21vZHVsZXMuY29tJnF1b3Q7PjxzamdAY21zbW9kdWxlcy5jb20+PC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPg0KPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9JnF1b3Q7aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMJnF1b3Q7PkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+JzsKJGxhbmdbJ2NoYW5nZWxvZyddID0gJwkJICAgIDx1bD4NCgkJICAgIDxsaT5WZXJzaW9vbiAwLjEgLSA4IEp1bHkgMjAwNi4gRXNtYW5lIHYmYXVtbDtsamFsYXNlPC9saT4NCgkJJzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuMTUyNjMzMjA1My4xMTU3MTIxNjE4LjExNTc4OTY3NjMuMTE1ODE2MzIxMS43JzsKJGxhbmdbJ3V0bXonXSA9ICcxNTY4NjEzNTMuMTE1NzEyMTYxOC4xLjEudXRtY2NuPShkaXJlY3QpfHV0bWNzcj0oZGlyZWN0KXx1dG1jbWQ9KG5vbmUpJzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/nb_NO.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ1NramVtYSBCeWdnZXInOwokbGFuZ1snZmllbGRfdHlwZV8nXSA9ICdGZWx0IHR5cGUgaWtrZSBzYXR0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmllbGRzZXRFbmQnXSA9ICdGZWx0Z3J1cHBlIFNsdXR0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmllbGRzZXRTdGFydCddID0gJ0ZlbHRncnVwcGUgU3RhcnQnOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0RmllbGQnXSA9ICdUZWtzdCBpbm5za3JpdmluZyc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRBcmVhRmllbGQnXSA9ICdUZWtzdG9tciZhcmluZztkZSc7CiRsYW5nWydmaWVsZF90eXBlX0NoZWNrYm94RmllbGQnXSA9ICdBdmtyeXNuaW5nc2Jva3MnOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEdyb3VwRmllbGQnXSA9ICdBdmtyeXNuaW5nc2Jva3MnOwokbGFuZ1snZmllbGRfdHlwZV9QdWxsZG93bkZpZWxkJ10gPSAnTmVkdHJla2snOwokbGFuZ1snZmllbGRfdHlwZV9NdWx0aXNlbGVjdEZpZWxkJ10gPSAnTXVsdGl2YWxnJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3RhdGVQaWNrZXJGaWVsZCddID0gJ0FtZXJpa2Fuc2sgc3RhdCB2ZWxnZXInOwokbGFuZ1snZmllbGRfdHlwZV9Db3VudHJ5UGlja2VyRmllbGQnXSA9ICdMYW5kIHZlbGdlcic7CiRsYW5nWydmaWVsZF90eXBlX0RhdGVQaWNrZXJGaWVsZCddID0gJ0RhdG8gdmVsZ2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUmFkaW9Hcm91cEZpZWxkJ10gPSAnUmFkaW9rbmFwcCBncnVwcGUnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRpcmVjdG9yJ10gPSAnKlNlbmRlIHJlc3VsdGF0ZXIgdmlhIGVwb3N0IGJhc2VydCBwJmFyaW5nOyBOZWR0cmVrayc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWwnXSA9ICcqU2VuZGUgcmVzdWx0YXRlciB2aWEgZXBvc3QgZm9yICZhcmluZzsgc2V0dGUgYWRyZXNzZShyKSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxDb25maXJtYXRpb24nXSA9ICcqVmFsaWRlcmluZy1tZWQtZXBvc3RhZHJlc3NlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25GaWxlJ10gPSAnKlNrcml2IHJlc3VsdGF0ZXIgdGlsIGZsYXQgZmlsJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EYXRhYmFzZSddID0gJypMYWdyZSByZXN1bHRhdGVyIGkgZGF0YWJhc2VuJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Vc2VyVGFnJ10gPSAnKkthbGwgb3BwIGVuIEJydWtlcmRlZmluZXJ0IFRhZ2cgbWVkIHNramVtYSByZXN1bHRhdGVuZSc7CiRsYW5nWydmaWVsZF90eXBlX1BhZ2VCcmVha0ZpZWxkJ10gPSAnLVNpZGVza2lmdCc7CiRsYW5nWydmaWVsZF90eXBlX0ZpbGVVcGxvYWRGaWVsZCddID0gJ0ZpbCBvcHBsYXN0aW5nJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsQWRkcmVzc0ZpZWxkJ10gPSAnRXBvc3QgJnF1b3Q7RnJhIGFkcmVzc2UmcXVvdDsgZmVsdCc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbE5hbWVGaWVsZCddID0gJ0Vwb3N0ICZxdW90O0ZyYSBuYXZuJnF1b3Q7IGZlbHQnOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0aWNUZXh0RmllbGQnXSA9ICctU3RhdGlzayB0ZWtzdCc7CiRsYW5nWydmaWVsZF90eXBlX0xpbmtGaWVsZCddID0gJy1MZW5rZSc7CiRsYW5nWydmaWVsZF90eXBlX0hpZGRlbkZpZWxkJ10gPSAnU2tqdWx0IEZlbHQnOwokbGFuZ1sndmFsaWRhdGlvbl9ub25lJ10gPSAnSW5nZW4gdmFsaWRlcmluZyc7CiRsYW5nWyd2YWxpZGF0aW9uX251bWVyaWMnXSA9ICdOdW1lcmlzayc7CiRsYW5nWyd2YWxpZGF0aW9uX2ludGVnZXInXSA9ICdJbnRlZ2VyICc7CiRsYW5nWyd2YWxpZGF0aW9uX2VtYWlsX2FkZHJlc3MnXSA9ICdFcG9zdGFkcmVzc2UnOwokbGFuZ1sndmFsaWRhdGlvbl9tdXN0X2NoZWNrJ10gPSAnTSZhcmluZzsgc2pla2tlcyc7CiRsYW5nWyd2YWxpZGF0aW9uX3JlZ2V4X21hdGNoJ10gPSAnU2Ftc3ZhcmVyIHZhbmxpZyB1dHRyeWtrJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbm9tYXRjaCddID0gJ1NhbXN2YXJlciBpa2tlIG1lZCB2YW5saWcgdXR0cnlrayc7CiRsYW5nWydyZXF1aXJlZF9maWVsZF9taXNzaW5nJ10gPSAnRW4gdmVyZGkgZXIgaWtrZSBvcHBnaXR0IGZvciBldCAmIzAzOTtuJm9zbGFzaDtkdmVuZGlnJiMwMzk7LWZlbHQnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfdmFsdWUnXSA9ICdWZW5ubGlnc3Qgc2tyaXYgaW5uIGVuIHZlcmRpIGZvciAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV9udW1iZXInXSA9ICdWZW5ubGlnc3Qgc2tyaXYgaW5uIGV0IHRhbGwgZm9yICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl92YWxpZCddID0gJ1Zlbm5saWdzdCBza3JpdiBpbm4gZW4gZ3lsZGlnIHZlcmRpIGZvciAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5faW50ZWdlciddID0gJ1Zlbm5sZ2lzdCBza3JpdiBpbm4gZW4gaW50ZWdlciB2ZXJkaSBmb3IgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FuX2VtYWlsJ10gPSAnVmVubmxpZ3N0IHNrcml2IGlubiBlbiBneWxkaWcgZXBvc3RhZHJlc3NlIGZvciAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydub3RfdmFsaWRfZW1haWwnXSA9ICcmcXVvdDslcyZxdW90OyBzZXIgaWtrZSB1dCB0aWwgJmFyaW5nOyB2JmFlbGlnO3JlIGVuIGd5bGRpZyBlcG9zdGFkcmVzc2UhJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9ub19sb25nZXInXSA9ICdWZW5ubGlnc3Qgb3BwZ2kgZW4gdmVyZGkgc29tIGlra2UgZXIgbGVuZ3JlIGVubiAlcyBib2tzdGF2ZXInOwokbGFuZ1sndGl0bGVfbGlzdF9kZWxpbWl0ZXInXSA9ICdUZWduICZhcmluZzsgYnJ1a2Ugc29tIGF2ZGVsZXIgaSByZXN1bHRhdGVyIHNvbSBoYXIgZmxlcmUgdmVkaWVyJzsKJGxhbmdbJ3lvdV9uZWVkX3Blcm1pc3Npb24nXSA9ICdEdSB0cmVuZ2VyICZxdW90OyVzJnF1b3Q7IHJldHRpZ2hldGVuIGZvciBrdW5uZSB1dGYmb3NsYXNoO3JlIGRlbiBoYW5kbGluZ2VuLic7CiRsYW5nWydsYWNrcGVybWlzc2lvbiddID0gJ0Jla2xhZ2VyISBEdSBoYXIgaWtrZSBub2sgcmV0dGlnaGV0ZXIgZm9yICZhcmluZzsgZiZhcmluZzsgYWRnYW5nIHRpbCBkZW4gYXZkZWxpbmdlbi4nOwokbGFuZ1snZmllbGRfb3JkZXJfdXBkYXRlZCddID0gJ0ZlbHQgcmVra2VmJm9zbGFzaDtsZ2Ugb3BwZGF0ZXJ0Lic7CiRsYW5nWydmb3JtX2RlbGV0ZWQnXSA9ICdTa2plbWEgc2xldHRldC4nOwokbGFuZ1snZmllbGRfZGVsZXRlZCddID0gJ0ZlbHQgc2xldHRldCc7CiRsYW5nWydjb25maWd1cmF0aW9uX3VwZGF0ZWQnXSA9ICdLb25maWd1cmFzam9uIG9wcGRhdGVydC4nOwokbGFuZ1sneW91X211c3RfY2hlY2snXSA9ICdEdSBtJmFyaW5nOyBrcnlzc2UgYXYgJnF1b3Q7JXMmcXVvdDsgZm9yICZhcmluZzsgZm9ydHNldHRlLic7CiRsYW5nWydtdXN0X3NwZWNpZnlfb25lX2Rlc3RpbmF0aW9uJ10gPSAnRHUgbSZhcmluZzsgb3BwZ2kgaSBkZXQgbWluc3RlIGVuIG0mYXJpbmc7bC1hZHJlc3NlISc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2Zvcm0nXSA9ICdFciBkdSBzaWtrZXIgcCZhcmluZzsgZHUgdmlsIHNsZXR0ZSBza2plbWFldCAlcz8nOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9maWVsZCddID0gJ0VyIGR1IHNpa2tlciBwJmFyaW5nOyBkdSB2aWwgc2xldHRlIGZlbHRldCAlcz8nOwokbGFuZ1snbm90aWNlX3NlbGVjdF90eXBlJ10gPSAnQXZhbnNlcnRlIHZhbGcgZXIgaWtrZSB0aWxnamVuZ2VsaWcgZiZvc2xhc2g7ciBmZWx0LXR5cGUgaGFyIGJsaXR0IHNhdHQuJzsKJGxhbmdbJ2ZpZWxkX25hbWVfaW5fdXNlJ10gPSAnRmVsdCBuYXZuZXQgJnF1b3Q7JXMmcXVvdDsgZXIgYWxsZXJlZGUgaSBicnVrLiBWZW5ubGlnc3QgYnJ1ayB1bmlrZSBmZWx0bmF2bi4nOwokbGFuZ1snYW5vbnltb3VzJ10gPSAnQW5vbnltJzsKJGxhbmdbJ2FiYnJldmlhdGlvbl9sZW5ndGgnXSA9ICdMZW5nZGU6ICVzJzsKJGxhbmdbJ2JveGVzJ10gPSAnJXMgYm9rc2VyJzsKJGxhbmdbJ29wdGlvbnMnXSA9ICclcyB2YWxnJzsKJGxhbmdbJ3RleHRfbGVuZ3RoJ10gPSAnJXMgYm9rc3RhdmVyJzsKJGxhbmdbJ29yZGVyJ10gPSAnUmVra2VmJm9zbGFzaDtsZ2UnOwokbGFuZ1sndW5zcGVjaWZpZWQnXSA9ICdbdXNwZXNpZmlzZXJ0XSc7CiRsYW5nWydhZGRlZCddID0gJ0xhZ3QgdGlsJzsKJGxhbmdbJ3VwZGF0ZWQnXSA9ICdPcHBkYXRlcnQnOwokbGFuZ1snc2VsZWN0X29uZSddID0gJ1ZlbGcgZW4nOwokbGFuZ1snc2VsZWN0X3R5cGUnXSA9ICdWZWxnIHR5cGUnOwokbGFuZ1sndG8nXSA9ICdUaWwnOwokbGFuZ1sneWVzJ10gPSAnSmEnOwokbGFuZ1snbm8nXSA9ICdOZWknOwokbGFuZ1sncmVjaXBpZW50cyddID0gJ21vdHRha2VyZSc7CiRsYW5nWydkZXN0aW5hdGlvbl9jb3VudCddID0gJyVzIG0mYXJpbmc7bCc7CiRsYW5nWydzYXZlJ10gPSAnTGFncmUnOwokbGFuZ1snYWRkJ10gPSAnTGFnZyB0aWwnOwokbGFuZ1sndXBkYXRlJ10gPSAnT3BwZGF0ZXInOwokbGFuZ1snc2F2ZV9hbmRfY29udGludWUnXSA9ICdMYWdyZSBvZyBmb3J0c2V0dCByZWRpZ2VyaW5nJzsKJGxhbmdbJ2luZm9ybWF0aW9uJ10gPSAnSW5mb3JtYXNqb24nOwokbGFuZ1snYXV0b21hdGljJ10gPSAnQXV0b21hdGlzayc7CiRsYW5nWydmb3JtcyddID0gJ1NramVtYSc7CiRsYW5nWydmb3JtJ10gPSAnU2tqZW1hICVzJzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb24nXSA9ICdJbm5zdGlsbGluZyc7CiRsYW5nWyd0YWJfbWFpbiddID0gJ0hvdmVkJzsKJGxhbmdbJ3RhYl9hZGRpdGlvbmFsJ10gPSAnU2tqZW1hIHZlcmRpZXInOwokbGFuZ1sndGFiX2FkdmFuY2VkJ10gPSAnQXZhbnNlcnRlIHZlcmRpZXInOwokbGFuZ1sndGFiX3RhYmxlbGF5b3V0J10gPSAnVGFiZWxsLWJhc2VydCBsYXlvdXQgdmFsZyc7CiRsYW5nWyd0YWJfdGVtcGxhdGVsYXlvdXQnXSA9ICdNYWwgbGF5b3V0IHZhbGcnOwokbGFuZ1snZmllbGRfcmVxdWlyZW1lbnRfdXBkYXRlZCddID0gJ0ZlbHQgbiZvc2xhc2g7ZHZlbmRpZy1zdGF0dXMgb3BwZGF0ZXJ0JzsKJGxhbmdbJ21heGltdW1fc2l6ZSddID0gJ01ha3MuIHN0Jm9zbGFzaDtycmVsc2UnOwokbGFuZ1sncGVybWl0dGVkX2V4dGVuc2lvbnMnXSA9ICdGaWxlbmRlbHNlcic7CiRsYW5nWydwZXJtaXR0ZWRfZmlsZXR5cGVzJ10gPSAnTG92bGlnZSBmaWx0eXBlcic7CiRsYW5nWydmaWxlX3Rvb19sYXJnZSddID0gJ09wcGxhc3RldCBmaWwgZXIgZm9yIHN0b3IhIE1ha3NpbXVtIHN0Jm9zbGFzaDtycmVsc2UgZXI6JzsKJGxhbmdbJ2lsbGVnYWxfZmlsZV90eXBlJ10gPSAnRGVubmUgdHlwZSBmaWwgdmlsIGlra2UgYmxpIG9wcGxhc3RldC4gVmVubmxpZ3N0IHNqZWtrIGF0IGZpbGVuZGVsc2VuIGVyIGtvcnJla3QuJzsKJGxhbmdbJ3VuaW5zdGFsbGVkJ10gPSAnTW9kdWwgYXZpbnN0YWxsZXJ0Lic7CiRsYW5nWydpbnN0YWxsZWQnXSA9ICdNb2R1bCB2ZXJzam9uICVzIGluc3RhbGxlcnQuJzsKJGxhbmdbJ3VwZ3JhZGVkJ10gPSAnTW9kdWwgb3BwZ3JhZGVydCB0aWwgdmVyc2pvbiAlcy4nOwokbGFuZ1snYnV0dG9uX3ByZXZpb3VzJ10gPSAnVGlsYmFrZS4uLic7CiRsYW5nWydidXR0b25fc3VibWl0J10gPSAnU2VuZCBza2plbWEnOwokbGFuZ1snYnV0dG9uX2NvbnRpbnVlJ10gPSAnRm9ydHNldHQuLi4nOwokbGFuZ1sndmFsdWVfY2hlY2tlZCddID0gJ0F2a3J5c3NldC9zamVra2V0JzsKJGxhbmdbJ3ZhbHVlX3VuY2hlY2tlZCddID0gJ0lra2UgYXZrcnlzc2V0L3Vza2pla2tldCc7CiRsYW5nWydhZGRfb3B0aW9ucyddID0gJ0xlZ2cgdGlsIGZsZXJlIHZhbGcnOwokbGFuZ1snZGVsZXRlX29wdGlvbnMnXSA9ICdTbGV0dCBtYXJrZXJ0ZSB2YWxnJzsKJGxhbmdbJ2FkZF9jaGVja2JveGVzJ10gPSAnTGVnZyB0aWwgZmxlcmUgYXZrcnlzbmluZ3Nib2tzZXInOwokbGFuZ1snZGVsZXRlX2NoZWNrYm94ZXMnXSA9ICdTbGV0dCBtYXJrZXJ0ZSBhdmtyeXNuaW5nc2Jva3Nlcic7CiRsYW5nWydhZGRfYWRkcmVzcyddID0gJ0xlZ2cgdGlsIGFubmVuIGFkcmVzc2UnOwokbGFuZ1snZGVsZXRlX2FkZHJlc3MnXSA9ICdTbGV0dCBtYXJrZXJ0IGFkcmVzc2UnOwokbGFuZ1snYWRkX2Rlc3RpbmF0aW9uJ10gPSAnTGVnZyB0aWwgYW5uZXQgbSZhcmluZztsJzsKJGxhbmdbJ2RlbGV0ZV9kZXN0aW5hdGlvbiddID0gJ1NsZXR0IG1hcmtlcnRlIG0mYXJpbmc7bCc7CiRsYW5nWyd0aXRsZV91ZHRfbmFtZSddID0gJ0JydWtlcmRlZmluZXJ0IFRhZ2cnOwokbGFuZ1sndGl0bGVfdXBsb2Fkc19kZXN0cGFnZSddID0gJ1NpZGUgJmFyaW5nOyByZXR1cm5lcmUgdGlsIG1lZCBvcHBsYXN0aW5ncyBsZW5rZW4nOwokbGFuZ1sndGl0bGVfdXBsb2FkbW9kdWxlX3N1bW1hcnknXSA9ICdJbm5zZW5kdCBtZWQgU2tqZW1hQnlnZ2VyJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZHNfY2F0ZWdvcnknXSA9ICdPcHBsYXN0aW5ncyBLYXRlZ29yaSc7CiRsYW5nWyd0aXRsZV9zZW5kdG9fdXBsb2FkcyddID0gJ1NlbmQgZGVubmUgZmlsZW4gdGlsIG9wcGxhc3RpbmdzIG1vZHVsZW4nOwokbGFuZ1sndGl0bGVfbGVnZW5kJ10gPSAnRmVsdGdydXBwZXRpdHRlbCc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX2xlbmd0aCddID0gJ01ha3NpbXVtIGxlbmdkZSc7CiRsYW5nWyd0aXRsZV9jaGVja2JveF9sYWJlbCddID0gJ0F2a3J5c25pbmdzYm9rcyBldGlrZXR0JzsKJGxhbmdbJ3RpdGxlX2NoZWNrZWRfdmFsdWUnXSA9ICdWZXJkaSBuJmFyaW5nO3IgYXZrcnlzc2V0JzsKJGxhbmdbJ3RpdGxlX3VuY2hlY2tlZF92YWx1ZSddID0gJ1ZlcmRpIG4mYXJpbmc7ciBpa2tlIGF2a3J5c3NldCc7CiRsYW5nWyd0aXRsZV9jaGVja2JveF9kZXRhaWxzJ10gPSAnQXZrcnlzbmluZ3Nib2tzIGdydXBwZSBkZXRhbGplcic7CiRsYW5nWyd0aXRsZV9kZWxldGUnXSA9ICdTbGV0dD8nOwokbGFuZ1sndGl0bGVfc2VsZWN0X29uZV9tZXNzYWdlJ10gPSAnJnF1b3Q7VmVsZyAmZWFjdXRlO24mcXVvdDsgVGV4dCc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fc3ViamVjdCddID0gJ1V0dmFsZyBlbW5lJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X2NvdW50cnknXSA9ICdTdGFuZGFyZCB1dHZhbGcnOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfc3RhdGUnXSA9ICdTdGFuZGFyZCB1dHZhbGcnOwokbGFuZ1sndGl0bGVfb3B0aW9uX25hbWUnXSA9ICdWYWxnIG5hdm4nOwokbGFuZ1sndGl0bGVfb3B0aW9uX3ZhbHVlJ10gPSAnVmVyZGkgc2VuZHQnOwokbGFuZ1sndGl0bGVfcHVsbGRvd25fZGV0YWlscyddID0gJ05lZHRyZWtrcyB2YWxnJzsKJGxhbmdbJ3RpdGxlX211bHRpc2VsZWN0X2RldGFpbHMnXSA9ICdGbGVydmFsZyB2YWxnJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2FkZHJlc3MnXSA9ICdNJmFyaW5nO2wgZXBvc3RhZHJlc3NlJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fbmFtZSddID0gJyZxdW90O0ZyYSBuYXZuJnF1b3Q7IGZvciBlcG9zdCc7CiRsYW5nWyd0aXRsZV9yZWxheGVkX2VtYWlsX3JlZ2V4J10gPSAnQnJ1ayBlbmtlbCBlcG9zdCB2ZXJpZmlzZXJpbmcnOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9yZWdleF9sb25nJ10gPSAnQnJ1ayBlbmtlbCBlcG9zdGFkcmVzc2UgdmVyaWZpc2VyaW5nIChmLmVrcy4gdGlsbGF0ICZxdW90O3hAeSZxdW90OyBpc3RlZGV0IGZvciAmYXJpbmc7IGtyZXZlICZxdW90O3hAeS50bGQmcXVvdDspJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fYWRkcmVzcyddID0gJyZxdW90O0ZyYSBhZHJlc3NlJnF1b3Q7IGZvciBlcG9zdCc7CiRsYW5nWyd0aXRsZV9lbWFpbF9lbmNvZGluZyddID0gJ0Vwb3N0IHRlZ25zZXR0IGtvZGluZyc7CiRsYW5nWyd0aXRsZV9kaXJlY3Rvcl9kZXRhaWxzJ10gPSAnTmVkdHJla2stYmFzZXJ0ZSBlcG9zdCBkZXRhbGplcic7CiRsYW5nWyd0aXRsZV9maWxlX25hbWUnXSA9ICdGaWxuYXZuJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX3N1YmplY3QnXSA9ICdFcG9zdCBlbW5lIGxpbmplJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmFtZSddID0gJ0ZyYSBuYXZuJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fc3RhdHVzJ10gPSAnU2tqZW1hIHN0YXR1cyc7CiRsYW5nWyd0aXRsZV9yZWFkeV9mb3JfZGVwbG95bWVudCddID0gJ0ZlcmRpZyBmb3IgYW52ZW5kZWxzZSc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkxJ10gPSAnSWtrZSBmZXJkaWcnOwokbGFuZ1sndGl0bGVfcmVkaXJlY3RfcGFnZSddID0gJ1NpZGUgJmFyaW5nOyB2aWRlcmVzZW5kZSB0aWwgZXR0ZXIgc2tqZW1hIHNlbmR0JzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTInXSA9ICdWZW5ubGlnc3QgbGVnZyB0aWwgZXQgZmVsdCB0aWwgc2tqZW1hZXQgcyZhcmluZzsgYnJ1a2VyZW5zIGlubnNrcml2aW5nIGJsaXIgYmVoYW5kbGV0LiBEdSBrYW4gJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeV9saW5rJ10gPSAnYnJ1ayBkZW5uZSBzbmFydmVpZW4nOwokbGFuZ1sndGl0bGVfZm9ybV9hbGlhcyddID0gJ1NramVtYSBhbGlhcyc7CiRsYW5nWyd0aXRsZV9mb3JtX2ZpZWxkcyddID0gJ1NramVtYSBmZWx0ZXInOwokbGFuZ1sndGl0bGVfZmllbGRfbmFtZSddID0gJ0ZlbHQgbmF2bic7CiRsYW5nWyd0aXRsZV9yYWRpb2dyb3VwX2RldGFpbHMnXSA9ICdSYWRpb2tuYXBwIGdydXBwZSBkZXRhbGplcic7CiRsYW5nWyd0aXRsZV9maWVsZF90eXBlJ10gPSAnRmVsdCB0eXBlJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTMnXSA9ICdmb3IgJmFyaW5nOyBsYWdlIGV0IHNramVtYSBiZWhhbmRsaW5nIGZlbHQnOwokbGFuZ1sndGl0bGVfYWRkX25ld19mb3JtJ10gPSAnTGVnZyB0aWwgbnl0dCBza2plbWEnOwokbGFuZ1sndGl0bGVfc2hvd192ZXJzaW9uJ10gPSAnVmlzIFNramVtYSBCeWdnZXIgdmVyc2pvbj8nOwokbGFuZ1sndGl0bGVfc2hvd192ZXJzaW9uX2xvbmcnXSA9ICdEZXR0ZSB2aWwgaW5ua2Fwc2xlIGRpdHQgdmVyc2pvbnNudW1tZXIgZm9yIFNramVtYSBieWdnZXIgbW9kdWxlbiBpIGVuIGtvbW1lbnRhciwgZm9yICZhcmluZzsgaGplbHBlIGkgZmVpbHMmb3NsYXNoO2tpbmcnOwokbGFuZ1sndGl0bGVfYWRkX25ld19maWVsZCddID0gJ0xlZ2cgdGlsIG55dHQgZmVsdCc7CiRsYW5nWyd0aXRsZV9mb3JtX3N1Ym1pdF9idXR0b24nXSA9ICdTa2plbWEgJnF1b3Q7U2VuZCZxdW90OyB0ZWtzdCBmb3Iga25hcHAnOwokbGFuZ1sndGl0bGVfc3VibWl0X2J1dHRvbl9zYWZldHknXSA9ICdMZWdnIHRpbCBldHQgSmF2YXNjcmlwdCB0aWwgVXRmJm9zbGFzaDtyIGtuYXBwZW4gZm9yICZhcmluZzsgdW5uZyZhcmluZzsgbXVsdGlwbGUgaW5uc2VuZGluZ2VyPyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eV9oZWxwJ10gPSAnTGVnZyB0aWwgU2lra2VyaGV0cyBzY3JpcHQnOwokbGFuZ1sndGl0bGVfZm9ybV9uZXh0X2J1dHRvbiddID0gJ1NramVtYSAmcXVvdDtOZXN0ZSZxdW90OyB0ZWtzdCBmb3Iga25hcHAgKGJydWt0IHAmYXJpbmc7IGZsZXJzaWRlcnMgc2tqZW1hZXIpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcHJldl9idXR0b24nXSA9ICdTa2plbWEgJnF1b3Q7Rm9ycmlnZSZxdW90OyB0ZXNrdCBmb3Iga25hcHAgKGJydWt0IHAmYXJpbmc7IGZsZXJzaWRlcnMgc2tqZW1hZXIpJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3ZhbGlkYXRpb24nXSA9ICdGZWx0c2pla2snOwokbGFuZ1sndGl0bGVfZm9ybV9jc3NfY2xhc3MnXSA9ICdDU1Mga2xhc3NlIGZvciBkZXR0ZSBza2plbWEnOwokbGFuZ1sndGl0bGVfZmllbGRfY3NzX2NsYXNzJ10gPSAnQ1NTIGtsYXNzZSBmb3IgZGV0dGUgZmVsdCc7CiRsYW5nWyd0aXRsZV9mb3JtX3JlcXVpcmVkX3N5bWJvbCddID0gJ1N5bWJvbCBmb3IgJmFyaW5nOyBtZXJrZSBuJm9zbGFzaDtkdmVuZGlnZSBmZWx0JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkJ10gPSAnTiZvc2xhc2g7ZHZlbmRpZyc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9sb25nJ10gPSAnS3JldiBlbiByZXNwb25zIGZvciBkZXR0ZSBmZWx0JzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWwnXSA9ICdTa2p1bCBldGlrZXR0JzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWxfbG9uZyddID0gJ1NranVsIGRldHRlIGZlbHRldHMgbmF2biBwJmFyaW5nOyBza2plbWFldCc7CiRsYW5nWyd0aXRsZV90ZXh0J10gPSAnU3RhdGlzayB0ZWtzdCAmYXJpbmc7IHZpc2UnOwokbGFuZ1sndGl0bGVfZmllbGRfcmVnZXgnXSA9ICcoUmVnZXgpIHNqZWtrJzsKJGxhbmdbJ3RpdGxlX2xpbmVzX3RvX3Nob3cnXSA9ICdBbnRhbGwgbGluamVyICZhcmluZzsgdmlzZSc7CiRsYW5nWydub19kZWZhdWx0J10gPSAnSW5nZW4gc3RhbmRhcmQnOwokbGFuZ1sncmVkaXJlY3RfYWZ0ZXJfYXBwcm92YWwnXSA9ICdTaWRlICZhcmluZzsgdmlkZXJlc2VuZGUgdGlsIGV0dGVyIGdvZGtqZW5uaW5nJzsKJGxhbmdbJ3RpdGxlX3JlZ2V4X2hlbHAnXSA9ICdEZXR0ZSB2YW5saWdlIHV0dHJ5a2tldCB2aWwgYmFyZSBibGkgYnJ1a3Qgb20gJnF1b3Q7dmFsaWRlcmluZ3MgdHlwZSZxdW90OyBlciBzYXR0IHRpbCByZWdleC1yZWxhdGVydCB2YWxnLiBJbmtsdWRlciBmdWxsIFBlcmwtc3RpbCByZWdleCwgaW5rbHVkZXJ0IHN0YXJ0L3N0b3Agc2xhc2hlciBnbyBmbGFnZyAoZi5la3MuICZxdW90Oy9pbWFnZVwuKFxkKykvaSZxdW90OyknOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWRfYWJicmV2J10gPSAnT2JsaWcuJzsKJGxhbmdbJ3RpdGxlX3RpdGxlX3Bvc2l0aW9uJ10gPSAnVGl0dGVsLWZlbHQgcG9zaXNqb24gKGt1biBmb3IgaWtrZS1DU1MgbGF5b3V0KSc7CiRsYW5nWyd0aXRsZV90YWJsZV9sYXlvdXRfbGVmdCddID0gJ1RpbCB2ZW5zdHJlIGZvciB0aXR0ZWwnOwokbGFuZ1sndGl0bGVfdGFibGVfbGF5b3V0X2Fib3ZlJ10gPSAnT3ZlciBUaXR0ZWwnOwokbGFuZ1sndGl0bGVfaGlkZV9lcnJvcnMnXSA9ICdTa2p1bCBmZWlsJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fZGlzcGxheXR5cGUnXSA9ICdTa2plbWEgdmlzbmluZ3MgdHlwZSc7CiRsYW5nWyd0aXRsZV9oaWRlX2Vycm9yc19sb25nJ10gPSAnSGluZHJlIGZlaWxzJm9zbGFzaDtraW5nIC8gZmVpbC1tZWxkaW5nZXIgZnJhICZhcmluZzsgdmlzZXMgdGlsIGJydWtlcmVuLic7CiRsYW5nWyd0aXRsZV9lbWFpbF90ZW1wbGF0ZSddID0gJ0Vwb3N0IG1hbCc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX3NpemUnXSA9ICdNYWtzaW11bSBvcHBsYXN0aW5nIGZpbHN0Jm9zbGFzaDtycmVsc2UgKGtpbG9ieXRlcyknOwokbGFuZ1sndGl0bGVfbWF4aW11bV9zaXplX2xvbmcnXSA9ICdEZW5uZSBiZWdyZW5zbmluZyBlciBldCB0aWxsZWdnIHRpbCBlbmh2ZXIgZ3JlbnNlIHNhdHQgYXYgcGhwIGVsbGVyIHdlYnNlcnZlciBrb25maWd1cmFzam9uZW4nOwokbGFuZ1sndGl0bGVfcGVybWl0dGVkX2V4dGVuc2lvbnMnXSA9ICdHb2RramVudGUgZmlsZW5kZWxzZXInOwokbGFuZ1sndGl0bGVfcGVybWl0dGVkX2V4dGVuc2lvbnNfbG9uZyddID0gJ1Nrcml2IGVuIGtvbW1hLXNlcGFyZXJ0IGxpc3RlLCB1dGVsYXR0IHB1bmt0dW0gKGYuZWtzLiAmcXVvdDtqcGcsZ2lmLGpwZWcmcXVvdDspLiBNZWxsb21yb20gdmlsIGJsaSBpZ25vcmVydC4gJkFyaW5nOyBsYSBkZXR0ZSB2JmFlbGlnO3JlIHRvbXQgdmlsIHNpIGluZ2VuIHJlc3RyaWtzam9uZXIuJzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnMnXSA9ICdWaXMgcmVzdHJpa3Nqb25lcj8nOwokbGFuZ1sndGl0bGVfc2hvd19saW1pdGF0aW9uc19sb25nJ10gPSAnVmlzIHN0Jm9zbGFzaDtycmVsc2UgZWxsZXIgZmlsZW5kZWxzZS1yZXN0cmlrc2pvbmVyIHAmYXJpbmc7IG9wcGxhc3RpbmdzZmVsdGV0Pyc7CiRsYW5nWyd0aXRsZV9mb3JtX3RlbXBsYXRlJ10gPSAnTWFsICZhcmluZzsgYnJ1a2UgZm9yICZhcmluZzsgdmlzZSBza2plbWEnOwokbGFuZ1sndGl0bGVfcGFnZV94X29mX3knXSA9ICdTaWRlICVzIGF2ICVzJzsKJGxhbmdbJ3RpdGxlX25vX2FkdmFuY2VkX29wdGlvbnMnXSA9ICdGZWx0ZXQgaGFyIGluZ2VuIGF2YW5zZXJ0ZSB2YWxnLic7CiRsYW5nWyd0aXRsZV9mb3JtX3Vuc3BlY2lmaWVkJ10gPSAnVGVrc3QgJmFyaW5nOyB2aXNlIGZvciB1c3Blc2lmaXNlcnRlIGZlbHQgdmVyZGllcic7CiRsYW5nWyd0aXRsZV9lbmFibGVfZmFzdGFkZF9sb25nJ10gPSAnTXVsaWdnaiZvc2xhc2g7ciByYXNrIGZlbHQtdGlsbGVnZ2luZyBtZWQgbmVkdHJla2sgZm9yIHNramVtYWVyPyc7CiRsYW5nWyd0aXRsZV9lbmFibGVfZmFzdGFkZCddID0gJ011bGlnZ2omb3NsYXNoO3IgbmVkdHJla2sgZm9yIGh1cnRpZyB0aWxsZWdnaW5nIGF2IGZlbHRlcj8nOwokbGFuZ1sndGl0bGVfZmFzdGFkZCddID0gJ0h1cnRpZy10aWxsZWdnIGF2IGZlbHRlcic7CiRsYW5nWydsaW5rX2xhYmVsJ10gPSAnTGVua2UgZXRpa2V0dCc7CiRsYW5nWydsaW5rX2Rlc3RpbmF0aW9uJ10gPSAnTGVua2UgbSZhcmluZztsIFVSTCc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3NldCddID0gJ0F2aGFrZXQgc29tIHN0YW5kYXJkPyc7CiRsYW5nWydoZWxwX3ZhcmlhYmxlc19mb3JfdGVtcGxhdGUnXSA9ICdWYXJpYWJsZXIgZm9yIG1hbCc7CiRsYW5nWydoZWxwX3N1Ym1pc3Npb25fZGF0ZSddID0gJ0RhdG8gZm9yIGlubmxldmVyaW5nJzsKJGxhbmdbJ2hlbHBfc2VydmVyX25hbWUnXSA9ICdEaW4gc2VydmVyJzsKJGxhbmdbJ2hlbHBfc3ViX3NvdXJjZV9pcCddID0gJ0lQIGFkcmVzc2UgdGlsIHBlcnNvbmVuIHNvbSBicnVrZXIgc2tqZW1hZXQnOwokbGFuZ1snaGVscF9zdWJfdXJsJ10gPSAnTGluayB0aWwgc2lkZW4gc29tIGlubmVob2xkZXIgc2tqZW1hZXQnOwokbGFuZ1snaGVscF9vdGhlcl9maWVsZHMnXSA9ICdBbmRyZSBmZWx0IHZpbCBibGkgdGlsZ2plbmxpZ2UgbiZhcmluZztyIGR1IGxlZ2dlciBkZW0gdGlsIHNramVtYWV0Lic7CiRsYW5nWydoZWxwX2RhdGVfZm9ybWF0J10gPSAnU2UgPGEgaHJlZj0mIzAzOTtodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwJiMwMzk7IHRhcmdldD1fTkVXPnRoZSBQSFAgTWFudWFsPC9hPiBmb3IgZm9ybWF0dGVyaW5ncyBoamVscC4nOwokbGFuZ1snaGVscF92YXJpYWJsZV9uYW1lJ10gPSAnVmFyaWFiZWwnOwokbGFuZ1snaGVscF9mb3JtX2ZpZWxkJ10gPSAnRmVsdCByZXByZXNlbnRlcnQnOwokbGFuZ1snbGlua19iYWNrX3RvX2Zvcm0nXSA9ICcmbGFxdW87IFRpbGJha2UgdGlsIHNramVtYSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX3RlbXBsYXRlJ10gPSAnTGFnIGVrc2VtcGVsIG1hbCc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2hlYWRlciddID0gJ0xhZyBla3NlbXBlbCBvdmVyc2tyaWZ0JzsKJGxhbmdbJ2hlbHBfdGFiX3N5bWJvbCddID0gJ2V0IHRhYnVsYXRvciB0ZWduJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfdGVtcGxhdGUnXSA9ICdNYWwgZm9yIGVuIGxpbmplIHAmYXJpbmc7IHV0ZGF0YSBmaWxlbic7CiRsYW5nWyd0aXRsZV9maWxlX2hlYWRlciddID0gJ01hbCBmb3Igb3ZlcnNrcmlmdGVuIHAmYXJpbmc7IHV0ZGF0YSBmaWxlbic7CiRsYW5nWyd0aXRsZV9jb25maXJtYXRpb25fdXJsJ10gPSAnTGluayAmYXJpbmc7IGtsaWtrZSBmb3Igc2tqZW1hIGJla3JlZnRlbHNlJzsKJGxhbmdbJ25vX3JlZmVycmVyX2luZm8nXSA9ICdJbmdlbiBIVFRQX1JFRkVSRVIgaW5mb3JtYXNqb24gdGlsZ2plbmdlbGlnJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcGFyYW1fZXJyb3InXSA9ICdHeWxkaWdoZXRzc2pla2sgUGFyYW1ldGVyIGZlaWwuIFZlbm5saWdzdCBzamVrayBhdCBkdSBrb3BpZXJ0ZSBsaW5rZW4gZnJhIGRpbiBlcG9zdCBrb3JyZWt0ISc7CiRsYW5nWyd2YWxpZGF0aW9uX3Jlc3BvbnNlX2Vycm9yJ10gPSAnR3lsZGlnaGV0c3NqZWtrIFJlc3BvbnMgZmVpbC4gVmVubmxpZ3N0IHNqZWtrIGF0IGR1IGtvcGllcnRlIGxpbmtlbiBmcmEgZGluIGVwb3N0IGtvcnJla3QhJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbm9fZmllbGRfZXJyb3InXSA9ICdHeWxkaWdoZXRzc2pla2sgUmVzcG9ucyBmZWlsLiBJbmdlbiBlcG9zdC1zamVrayBmZWx0IGkgZGV0dGUgc2tqZW1hJzsKJGxhbmdbJ3RpdGxlX2RhdGVfZm9ybWF0J10gPSAnRGF0byBmb3JtYXQgKHN0YW5kYXJkIDxhIGhyZWY9JnF1b3Q7aHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5kYXRlLnBocCZxdW90Oz5QSFAgRGF0ZSBGb3JtYXRzPC9hPiknOwokbGFuZ1sndGl0bGVfdXNlX3d5c2l3eWcnXSA9ICdCcnVrZSBXWVNJV1lHIHJlZGlnZXJlciBmb3IgdGVrc3Qgb21yJmFyaW5nO2RldD8nOwokbGFuZ1snZGlzcHR5cGVfdGFibGUnXSA9ICdUYWJlbGwvQ1NTKHN0aWxzZXR0KSc7CiRsYW5nWydkaXNwdHlwZV9jc3MnXSA9ICdSZW4gQ1NTKHN0aWxzZXR0KSc7CiRsYW5nWydkaXNwdHlwZV90ZW1wbGF0ZSddID0gJ1RpbHBhc3NldCBtYWwnOwokbGFuZ1snYWRtaW5kZXNjJ10gPSAnTGVnZyB0aWwsIHJlZGlnZXIgb2cgaCZhcmluZztuZHRlciBpbnRlcmFrdGl2ZSBza2plbWFlcic7CiRsYW5nWydkYXRlX2phbnVhcnknXSA9ICdKYW51YXInOwokbGFuZ1snZGF0ZV9mZWJydWFyeSddID0gJ0ZlYnJ1YXInOwokbGFuZ1snZGF0ZV9tYXJjaCddID0gJ01hcnMnOwokbGFuZ1snZGF0ZV9hcHJpbCddID0gJ0FwcmlsICc7CiRsYW5nWydkYXRlX21heSddID0gJ01haSc7CiRsYW5nWydkYXRlX2p1bmUnXSA9ICdKdW5pJzsKJGxhbmdbJ2RhdGVfanVseSddID0gJ0p1bGknOwokbGFuZ1snZGF0ZV9hdWd1c3QnXSA9ICdBdWd1c3QgJzsKJGxhbmdbJ2RhdGVfc2VwdGVtYmVyJ10gPSAnU2VwdGVtYmVyICc7CiRsYW5nWydkYXRlX29jdG9iZXInXSA9ICdPa3RvYmVyJzsKJGxhbmdbJ2RhdGVfbm92ZW1iZXInXSA9ICdOb3ZlbWJlciAnOwokbGFuZ1snZGF0ZV9kZWNlbWJlciddID0gJ0Rlc2VtYmVyJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3InXSA9ICdCZWtsYWdlciEgRGV0IHNramVkZGUgZW4gZmVpbCB1bmRlciBiZWhhbmRsaW5nIGF2IGRpbiBza2plbWEgaW5uc2VuZGluZy4nOwokbGFuZ1snc3VibWl0X2Vycm9yJ10gPSAnU2tqZW1hQnlnZ2VyIFNlbmQgZmVpbDogJXMnOwokbGFuZ1sndXBsb2Fkc19lcnJvciddID0gJ0ZlaWwgdmVkIG92ZXJmJm9zbGFzaDtyaW5nIGF2IGZpbGEgdGlsIG9wcGxhc3RpbmdzbW9kdWxlbjogJXMnOwokbGFuZ1snbm91cGxvYWRzX2Vycm9yJ10gPSAnS3VubmUgaWtrZSBmaW5uZSBPcHBsYXN0aW5nc21vZHVsZW4nOwokbGFuZ1sndXBsb2FkX2F0dGFjaF9lcnJvciddID0gJ09wcGxhc3RpbmcvVmVkbGVnZyBmZWlsIHAmYXJpbmc7IGZpbCAlcyAodGVtcF9uYXZuOiAlcywgYXYgdHlwZSAlcyknOwokbGFuZ1snc3VibWlzc2lvbl9lcnJvcl9maWxlX2xvY2snXSA9ICdGZWlsLiBVbXVsaWcgJmFyaW5nOyBlcnZlcnZlIGwmYXJpbmc7cyBmb3IgZmlsZW4uJzsKJGxhbmdbJ2VtYWlsX2RlZmF1bHRfdGVtcGxhdGUnXSA9ICdTa2plbWFCeWdnZXIgaW5uc2VuZGluZyc7CiRsYW5nWydlbWFpbF90ZW1wbGF0ZV9ub3Rfc2V0J10gPSAnPGJyLz5FcG9zdCBtYWwgZW5uJmFyaW5nOyAmYXJpbmc7aWtrZSBhbmdpdHQhJzsKJGxhbmdbJ21pc3NpbmdfY21zX21haWxlciddID0gJ1NramVtYUJ5Z2dlcjogS2FuIGlra2UgZmlubmUgbiZvc2xhc2g7ZHZlbmRpZyBtb2R1bCBDTVNNYWlsZXIhJzsKJGxhbmdbJ3VzZXJfYXBwcm92ZWRfc3VibWlzc2lvbiddID0gJ0JydWtlciBnb2RramVudCBzZW5kaW5nICVzIGZyYSAlcyc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J10gPSAnSGVuZGVsc2Ugc2F0dCBpIGdhbmcgbiZhcmluZztyIGV0IFNramVtYUJ5Z2dlciBza2plbWEgYmxpciBpbm5sZXZlcnQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdEVycm9yJ10gPSAnSGVuZGVsc2Ugc2F0dCBpIGdhbmcgb20gZGV0IHNramVyIGVuIGZlaWwgbiZhcmluZztyIGV0IFNramVtYUJ5Z2dlciBza2plbWEgYmxpciBpbm5sZXZlcnQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXSA9ICdIZW5kZWxzZSBzYXR0IGkgZ2FuZyBuJmFyaW5nO3IgZXQgU2tqZW1hQnlnZ2VyIHNramVtYSBibHJpIHZpc3QnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdCddID0gJzxwPkhlbmRlbHNlIHNhdHQgaSBnYW5nIG4mYXJpbmc7ciBldCBTa2plbWFfQnlnZ2VyIHNramVtYSBibGlyIGlubmxldmVydC48L3A+DQo8aDQ+UGFyYW1ldGVyZTwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gU2tqZW1hIG5hdm5ldCAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIERlbiBpbnRlcm5lIFNramVtYSBpZCAoaW50KTwvbGk+DQo8bGk+PGVtPnZhbHVlXyZhbXA7bHQ7bmFtZSZhbXA7Z3Q7PC9lbT4gLSBUaWxmJm9zbGFzaDtyIGVuIHN0YW5kYXJkIHZlcmRpIHRpbCBldCBmZWx0IG1lZCBkZXQgb3BnaXR0ZSBuYXZuZXQuPC9saT4NCjwvdWw+ICc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InXSA9ICc8cD5IZW5kZWxzZSBzYXR0IGkgZ2FuZyBvbSBkZXQgc2tqZXIgZW4gZmVpbCBuJmFyaW5nO3IgZXQgU2tqZW1hQnlnZ2VyIHNramVtYSBibGlyIGlubmxldmVydDwvcD4NCjxoND5QYXJhbWV0ZXJlPC9oND4NCjx1bD4NCjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBTa2plbWEgbmF2bmV0IChzdHJpbmcpPC9saT4NCjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gRGVuIGludGVybmUgc2tqZW1hIGlkIChpbnQpPC9saT4NCjxsaT48ZW0+ZXJyb3I8L2VtPiAtIEVuIGxpc3RlIG1lZCBhbGxlIGtqZW50ZSBmZWlsIChzdHJpbmcpPC9saT4NCjwvdWw+ICc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtRGlzcGxheSddID0gJzxwPkhlbmRlbHNlIHNhdHQgaSBnYW5nIG4mYXJpbmc7ciBldCBTa2plbWFCeWdnZXIgc2tqZW1hIGJscmkgdmlzdDwvcD4NCjxoND5QYXJhbWV0ZXJlPC9oND4NCjx1bD4NCjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBTa2plbWEgbmF2bmV0IChzdHJpbmcpPC9saT4NCjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gRGVuIGludGVybmUgc2tqZW1hIGlkIChpbnQpPC9saT4NCjwvdWw+ICc7CiRsYW5nWydwb3N0X2luc3RhbGwnXSA9ICc8cD5IdXNrICZhcmluZzsgc2V0dGUgJnF1b3Q7TW9kaWZ5IEZvcm1zJnF1b3Q7IHJldHRpZ2hldGVyIHRpbCBicnVrZXJlIHNvbSBza2FsIGFkbWluaXN0cmVyZSB0aWxiYWtlbWVsZGluZ3Mtc2tqZW1hZXIuIE9nIG9tIGR1IHZpbCBzZW5kZSBza2plbWEgcmVzdWx0YXRlciB2aWEgZXBvc3QsIGh1c2sgJmFyaW5nOyBvcHBkYXRlciBpbm5zdGlsbGluZ2VuZSB0aWxzdHJla2tlbGlnLjwvcD4NCjxwPlYmYWVsaWc7ciBvcHBtZXJrc29tIHAmYXJpbmc7IGF0IHRpbGJha2VtZWxkaW5ncyBza2plbWFldCBpa2tlIHNrYWwgdiZhZWxpZztyZSBha3RpdnQgKGYuZWtzLiB0aWxnamVuZ2VsaWcgZm9yIHB1Ymxpa3VtKSBuJmFyaW5nO3IgZHUgZm9ydHNhdHQgcmVkaWdlcmVyIHNramVtYWV0LiBEdSBiJm9zbGFzaDtyIGxhZ2Ugc2tqZW1hZXQsIG9nIHBsYXNzZXJlIHRhZ2dlbiBpIGVuIGFrdGl2IGlubmhvbGRzaWRlIGJhcmUgbiZhcmluZztyIGR1IGVyIGZlcmRpZyBtZWQgJmFyaW5nOyByZWRpZ2VyZS4gRWxsZXJzLCBrYW4gZmVpbGFrdGlnZSByZXN1bHRhdGVyIGJsaSByZXR1cm5lcnQuPC9wPg0KPHA+T2JzISBEZW5uZSB2ZXJzam9uZW4gc3Qmb3NsYXNoO3R0ZXIgaWtrZSBwYXJhbGVsbCByZWRpZ2VyaW5nIGF2IHNramVtYWVyLiBWJmFlbGlnO3Igc2lra2VyIHAmYXJpbmc7IGF0IGt1biBlbiBhZG1pbiAgcmVkaWdlcmVyIGV0IGdpdHQgc2tqZW1hIHAmYXJpbmc7IHNhbW1lIHRpZC48L3A+JzsKJGxhbmdbJ2hlbHAnXSA9ICc8aDM+V2hhdCBEb2VzIFRoaXMgRG8/PC9oMz4NCjxwPlRoZSBGb3JtIEJ1aWxkZXIgTW9kdWxlIGFsbG93cyB5b3UgdG8gY3JlYXRlIGZlZWRiYWNrIGZvcm1zIChpbiBmYWN0LCBpdCYjMDM5O3MgYSByZXBsYWNlbWVudCBvZiB0aGUgb3JpZ2luYWwgRmVlZGJhY2sgRm9ybSBtb2R1bGUpLCB3aXRoIHRoZSBhZGRlZCBwb3dlciBvZiBkYXRhYmFzZSBzdG9yYWdlLiBXaXRoIGl0cyBjb21wYW5pb24gbW9kdWxlIEZvcm0gQnJvd3NlciwgeW91IGNhbiB1c2UgaXQgdG8gY3JlYXRlIHNpbXBsZSBkYXRhYmFzZSBhcHBsaWNhdGlvbnMuPC9wPg0KPHA+VGhlIGZvcm1zIGNyZWF0ZWQgdXNpbmcgdGhlIEZvcm0gQnVpbGRlciBtYXkgYmUgaW5zZXJ0ZWQNCmludG8gdGVtcGxhdGVzIGFuZC9vciBjb250ZW50IHBhZ2VzLiBGb3JtcyBtYXkgY29udGFpbiBtYW55IGtpbmRzIG9mIGlucHV0cywgYW5kIG1heSBoYXZlDQp2YWxpZGF0aW9uIGFwcGxpZWQgdG8gdGhlc2UgaW5wdXRzLiBUaGUgcmVzdWx0cyBvZiB0aGVzZSBmb3JtcyBtYXkgYmUgaGFuZGxlZCBpbiBhIHZhcmlldHkgb2Ygd2F5cy48L3A+DQoNCjxoMz5Ib3cgRG8gSSBVc2UgaXQ/PC9oMz4NCjxQPkluc3RhbGwgaXQsIGFuZCBwb2tlIGFyb3VuZCB0aGUgbWVudXMuIFBsYXkgd2l0aCBpdC4gVHJ5IGNyZWF0aW5nIGZvcm1zLCBhbmQgYWRkaW5nIHRoZW0gdG8geW91ciBjb250ZW50Lg0KSWYgeW91IGdldCBzdHVjaywgY2hhdCB3aXRoIG1lIG9uIHRoZSAjY21zIElSQyBjaGFubmVsLCBwb3N0IHRvIHRoZSBmb3J1bSwgc2VuZCBtZSBlbWFpbCwgb3IsIGlmIHlvdSYjMDM5O3JlDQpyZWFsbHkgZGVzcGVyYXRlLCByZWFkIHRoZSByZXN0IG9mIHRoaXMgcGFnZS48L1A+DQoNCjxoMz5Ib3cgRG8gSSBDcmVhdGUgYSBGb3JtPC9oMz4NCjxwPkluIHRoZSBDTVMgQWRtaW4gTWVudSwgeW91IHNob3VsZCBnZXQgYSBuZXcgbWVudSBpdGVtIGNhbGxlZCBGb3JtQnVpbGRlci4gQ2xpY2sgb24gdGhpcy4gT24gdGhlIHBhZ2UNCnRoYXQgZ2V0cyBzaG93biwgdGhlcmUgYXJlIG9wdGlvbnMgKGF0IHRoZSBib3R0b20gb2YgdGhlIGxpc3Qgb2YgRm9ybXMpIHRvIEFkZCBhIE5ldyBGb3JtIG9yIE1vZGlmeQ0KQ29uZmlndXJhdGlvbi48L3A+DQoNCjxoMz5BZGRpbmcgYSBGb3JtIHRvIGEgUGFnZTwvaDM+DQo8cD5JbiB0aGUgbWFpbiBGb3JtQnVpbGRlciBhZG1pbiBwYWdlLCB5b3UgY2FuIHNlZSBhbiBleGFtcGxlIG9mIHRoZSB0YWcgdXNlZCB0byBkaXNwbGF5IGVhY2ggZm9ybS4gSXQgbG9va3MNCnNvbWV0aGluZyBsaWtlIHtjbXNfbW9kdWxlIG1vZHVsZT0mIzAzOTtGb3JtQnVpbGRlciYjMDM5OyBmb3JtPSYjMDM5O3NhbXBsZV9mb3JtJiMwMzk7fTwvcD4NCjxwPkJ5IGNvcHlpbmcgdGhpcyB0YWcgaW50byB0aGUgY29udGVudCBvZiBhIHBhZ2UsIG9yIGludG8gYSB0ZW1wbGF0ZSwgd2lsbCBjYXVzZSB0aGF0IGZvcm0gdG8gYmUgZGlzcGxheWVkLg0KSW4gdGhlb3J5LCB5b3UgY2FuIGhhdmUgbXVsdGlwbGUgZm9ybXMgb24gYSBwYWdlIGlmIHlvdSByZWFsbHkgd2FudCB0by4gQmUgY2FyZWZ1bCB3aGVuIHBhc3RpbmcgdGhlIHRhZw0KaW50byBhIHBhZ2UmIzAzOTtzIGNvbnRlbnQgaWYgeW91IHVzZSBhIFdZU0lXWUcgZWRpdG9yIHN1Y2ggYXMgVGlueU1DRSBvciBIVE1MQXJlYS4gVGhlc2UgZWRpdG9ycyBtYXkgc3RlYWx0aGlseQ0KY2hhbmdlIHRoZSBxdW90ZSBtYXJrcyAoJnF1b3Q7KSBpbnRvIEhUTUwgZW50aXRpZXMgKCZhbXA7YW1wO3F1b3Q7KSwgYW5kIHRoZSBmb3JtcyB3aWxsIG5vdCBzaG93IHVwLiBUcnkgdXNpbmcNCnNpbmdsZSBxdW90ZXMgKCYjMDM5Oykgb3IgZWRpdGluZyB0aGUgSFRNTCBkaXJlY3RseS4NCg0KPGgzPldvcmtpbmcgd2l0aCBGb3JtczwvaDM+DQo8cD5CeSBjbGlja2luZyBvbiBhIEZvcm0mIzAzOTtzIG5hbWUsIHlvdSBlbnRlciB0aGUgRm9ybSBFZGl0IHBhZ2UuIFRoZXJlIGFyZSBzZXZlcmFsIHRhYnMsIHdoaWNoIGFyZSBkZXNjcmliZWQgYmVsb3c6PC9wPg0KPGg0Pk1haW48L2g0Pg0KPHA+VGhpcyBpcyB0aGUgbWFpbiBwbGFjZSB5b3UmIzAzOTtsbCB3b3JrIG9uIHlvdXIgZm9ybS4gSGVyZSwgeW91IGdpdmUgaXQgYSBuYW1lLCBhbiBhbGlhcyAod2hpY2ggaXMgdXNlZCB0byBpZGVudGlmeSBpdCBmb3IgcGxhY2luZyBpdCBpbiBhIHBhZ2Ugb3IgdGVtcGxhdGUpLCBhbmQsIG9wdGlvbmFsbHksIGEgQ1NTIGNsYXNzIHdpdGggd2hpY2ggdG8gd3JhcCB0aGUgd2hvbGUgdGhpbmcuIFlvdSBhbHNvIHNlbGVjdCB0aGUgZGlzcGxheSB0eXBlLiBZb3VyIGNob2ljZXMgYXJlOjwvcD4NCjx1bD4NCjxsaT5UYWJsZS9DU1MuIFRoZSBmb3JtIGlzIGNyZWF0ZWQgdXNpbmcgSFRNTCB0YWJsZXMuIElmIHlvdSBkb24mIzAzOTt0IGtub3cgd2hhdCB0byBjaG9vc2UsIHRoaXMgaXMgdGhlIGVhc2llc3Qgb3B0aW9uLCBhbmQgd2lsbCBwcm9iYWJseSBkbyBtb3N0IG9mIHdoYXQgeW91IHdhbnQuIFlvdSBjYW4gc3RpbGwgdXNlIENTUyB0byBzdHlsZSB0aGUgZm9ybSBpZiB5b3Ugd2FudC48L2xpPg0KPGxpPlB1cmUgQ1NTLiBUaGUgZm9ybSBpcyBjcmVhdGVkLCB3aXRoIGFsbCB0aGUgZmllbGRzIHdyYXBwZWQgaW4gJmFtcDtsdDtkaXYmYW1wO2d0OyB0YWdzLiBZb3UgY2FuIHRoZW4gc3R5bGUgdGhlIGZvcm0gYXMgeW91IHNlZSBmaXQuPC9saT4NCjxsaT5DdXN0b20gVGVtcGxhdGUuIEJhc2ljYWxseSwgeW91IGdldCBhIHNtYXJ0eSB0ZW1wbGF0ZSwgYSBidW5jaCBvZiB2YXJpYWJsZXMsIGFuZCB5b3UmIzAzOTtyZSBvbiB5b3VyIG93bi4gWW91IGhhdmUgdGhlIHBvd2VyIHRvIGNyZWF0ZSB3aGF0ZXZlciB5b3Ugd2FudC48L2xpPg0KPC91bD4NCjxwPkJlbG93IHRoaXMsIGlmIHlvdSBoYXZlIGl0IGVuYWJsZWQsIGlzIHRoZSAmcXVvdDtmYXN0IGZpZWxkIGFkZGVyJnF1b3Q7IHB1bGxkb3duLCB0aGF0IGxldHMgeW91IHF1aWNrbHkgYWRkIGEgZmllbGQgdG8gdGhlIGVuZCBvZiB5b3VyIGZvcm0gYnkgc2VsZWN0aW5nIHRoZSBmaWVsZCB0eXBlLjwvcD4NCjxwPkJlbG93IHRoaXMgaXMgdGhlIGxpc3Qgb2YgZmllbGRzIHRoYXQgbWFrZSB1cCB5b3VyIGZvcm0uIE1vcmUgZGV0YWlsIG9uIHRoaXMgaXMgZGVzY3JpYmVkIGJlbG93LjwvcD4NCjxoND5Gb3JtIFNldHRpbmdzPC9oND4NCjxwPkZvcm0gU2V0dGluZ3MgYWxsb3dzIHlvdSB0byBjdXN0b21pemUgYSBsb3Qgb2YgdGhlIG1lc3NhZ2VzIGFuZCB0ZXh0IGluIHRoZSBjb250cm9scyBmb3IgeW91ciBmb3JtLiBJdCBhbHNvIGFsbG93cyB5b3UgdG8gcGljayBhIHBhZ2UgdG8gcmVkaXJlY3QgdXNlcnMgdG8gYWZ0ZXIgYSBzdWNjZXNzZnVsIGZvcm0gc3VibWlzc2lvbi48L3A+DQo8aDQ+VGFibGUtYmFzZWQgTGF5b3V0IE9wdGlvbnM8L2g0Pg0KPHA+VGFibGUtbGF5b3V0cyBoYXZlIGdvdHRlbiBzaW1wbGVyLCBzbyB5b3VyIG9ubHkgb3B0aW9uIGhlcmUgaXMgdGhlIHBvc2l0aW9uIG9mIHRoZSBmaWVsZCBuYW1lcyByZWxhdGl2ZSB0byB0aGUgaW5wdXRzLiBJZiB5b3UmIzAzOTtyZSB1c2luZyBhIFRhYmxlL0NTUyBsYXlvdXQsIHlvdSBjYW4gdXNlIHRoaXMgdGFiIHRvIHNlbGVjdCB0aGUgZmllbGQgbmFtZSBwb3NpdGlvbnMuPC9wPg0KPGg0PlRlbXBsYXRlIExheW91dCBPcHRpb25zPC9oND4NCjxwPlRoaXMgaXMgd2hlcmUgeW91IGRvIHlvdXIgY3VzdG9taXphdGlvbiB3b3JrIGlmIHlvdXIgZm9ybSB1c2VzIGEgQ3VzdG9tIFRlbXBsYXRlLjwvcD4NCjxwPlRoZSBmb3JtIHNob3VsZCBkZWZhdWx0IHRvIGEgYSBDdXN0b20gdGVtcGxhdGUgdGhhdCBkb2N1bWVudHMgdGhlIHNtYXJ0eSB0YWdzIGF2YWlsYWJsZSB0byB5b3UuIFVubGVzcyB5b3UmIzAzOTtyZSBhIHNtYXJ0eSBleHBlcnQsIHlvdSBwcm9iYWJseSBkb24mIzAzOTt0IHdhbnQgdG8gbWVzcyBhcm91bmQgd2l0aCB0aGlzLiBJZiB5b3UgYXJlIGEgc21hcnR5IGV4cGVydCwgdGhpcyBpcyB3aGVyZSB5b3UgY2FuIHVubGVhc2ggeW91ciBtYWdpYy48L3A+DQo8aDM+QWRkaW5nIEZpZWxkcyB0byB5b3VyIEZvcm08L2gzPg0KPHA+VGhlIHR5cGVzIG9mIGZpZWxkcyB0aGF0IGFyZSBjdXJyZW50bHkgc3VwcG9ydGVkIGZpdCBpbnRvIGZvdXIgZ3JvdXBzOiBzdGFuZGFyZCBpbnB1dCBmaWVsZHMsIGRpc3BsYXkgY29udHJvbCBmaWVsZHMsIGVtYWlsLXNwZWNpZmljIGZpZWxkcywgYW5kIGZvcm0gcmVzdWx0IGhhbmRsaW5nIGZpZWxkcyAoYWxzbyBjYWxsZWQgRm9ybSBEaXNwb3NpdGlvbnMgaW4gcGxhY2VzKTo8L3A+DQo8dWw+DQo8bGk+U3RhbmRhcmQgSW5wdXQgRmllbGRzIC0gdGhlc2UgYXJlIGlucHV0cyB0aGF0IGFsbG93IGVudHJ5IG9mIHR5cGljYWwgZm9ybSBlbGVtZW50czsgdGV4dCBpbnB1dHMsIHJhZGlvIGJ1dHRvbnMsIGV0Yy48L2xpPg0KPGxpPkRpc3BsYXkgQ29udHJvbCBGaWVsZHMgLSB0aGVzZSBpbnB1dCBjb250cm9sIGhvdyB0aGUgdXNlciB3aWxsIHNlZSB0aGUgZGlzcGxheSBvZiB0aGUgZm9ybTsgcGFnZSBicmVha3MsIHN0YXRpYyB0ZXh0LCBldGMuPC9saT4NCjxsaT5FbWFpbC1zcGVjaWZpYyBGaWVsZHMgLSBzb21lIGZvcm1zIGdlbmVyYXRlIGVtYWlsLCBhbmQgZW1haWwtc3BlY2lmaWMgZmllbGRzIGNhbiBhbHRlciBhdHRyaWJ1dGVzIG9mIHRoZSBlbWFpbHMgc2VudC48L2xpPg0KPGxpPkZvcm0gRGlzcG9zaXRpb25zIC0gVGhlc2UgZGV0ZXJtaW5lIHdoYXQgaGFwcGVucyB3aGVuIHRoZSB1c2VyDQpzdWJtaXRzIHRoZSBmb3JtOyBmb3IgZWFjaCByZXN1bHQgaGFuZGxpbmcgZmllbGQsIHNvbWUgbWV0aG9kIG9mIHRyYW5zbWl0dGluZywgc2F2aW5nLCBvciBlbWFpbGluZyB0aGUNCmZvcm0gY29udGVudHMgdGFrZXMgcGxhY2UuIEEgZm9ybSBtYXkgaGF2ZSBtdWx0aXBsZSBmb3JtIGRpc3Bvc2l0aW9ucy48L2xpPg0KPC91bD4NCjxwPkZvcm0gZmllbGRzIGFyZSBhc3NpZ25lZCBuYW1lcy4gVGhlc2UgbmFtZXMgaWRlbnRpZnkgdGhlIGZpZWxkLCBub3Qgb25seSBvbiB0aGUgc2NyZWVuIGFzIGxhYmVscyBmb3IgdGhlIHVzZXIsDQpidXQgaW4gdGhlIGRhdGEgd2hlbiBpdCYjMDM5O3Mgc3VibWl0dGVkIHNvIHlvdSBrbm93IHdoYXQgdGhlIHVzZXIgaXMgcmVzcG9uZGluZyB0by4gUGhyYXNpbmcgdGhlIG5hbWUgbGlrZSBhIHF1ZXN0aW9uDQppcyBhIGhhbmR5IHdheSBvZiBtYWtpbmcgaXQgY2xlYXIgdG8gdGhlIHVzZXIgd2hhdCBpcyBleHBlY3RlZC4gU2ltaWxhcmx5LCBtYW55IGZpZWxkcyBoYXZlIGJvdGggTmFtZXMgYW5kIFZhbHVlcy4NClRoZSBOYW1lcyBhcmUgd2hhdCBnZXRzIHNob3duIHRvIHRoZSB1c2VyOyB0aGUgVmFsdWUgaXMgd2hhdCBnZXRzIHNhdmVkIG9yIHRyYW5zbWl0dGVkIHdoZW4gdGhlIHVzZXIgc3VibWl0cw0KdGhlIGZvcm0uIFRoZSBWYWx1ZXMgYXJlIG5ldmVyIHNlZW4gYnkgdGhlIHVzZXIsIG5vciBhcmUgdGhleSB2aXNpYmxlIGluIHRoZSBIVE1MLCBzbyBpdCYjMDM5O3Mgc2FmZSB0byB1c2UgZm9yDQplbWFpbCBhZGRyZXNzZXMgYW5kIHN1Y2guPC9wPg0KPHA+U29tZSBmaWVsZHMgY2FuIGhhdmUgbXVsdGlwbGUgdmFsdWVzLCBvciBtdWx0aXBsZSBuYW1lL3ZhbHVlIHBhaXJzLiBXaGVuIHlvdSBmaXJzdCBjcmVhdGUgc3VjaCBhIGZpZWxkLA0KdGhlcmUgbWF5IG5vdCBiZSBzdWZmaWNpZW50IGlucHV0cyBmb3IgeW91IHRvIHNwZWNpZnkgYWxsIHRoZSB2YWx1ZXMgeW91IHdhbnQuIFRvIGdldCBtb3JlIHNwYWNlIGZvciBpbnB1dHRpbmcNCnRoZXNlIHZhbHVlcywgdXNlIHRoZSBidXR0b25zIGF0IHRoZSBib3R0b20gb2YgdGhlIHBhZ2UgZm9yIGFkZGluZyBvcHRpb25zLjwvcD4NCjxwPkZpZWxkcyBjYW4gYmUgYXNzaWduZWQgdmFsaWRhdGlvbiBydWxlcywgd2hpY2ggdmFyeSBhY2NvcmRpbmcgdG8gdGhlIHR5cGUgb2YgdGhlIGZpZWxkLiBUaGVzZSBydWxlcyBoZWxwDQplbnN1cmUgdGhhdCB0aGUgdXNlciBlbnRlcnMgdmFsaWQgZGF0YS4gVGhleSBtYXkgYWxzbyBiZQ0Kc2VwYXJhdGVseSBtYXJrZWQgJnF1b3Q7UmVxdWlyZWQmcXVvdDssIHdoaWNoIHdpbGwgZm9yY2UgdGhlIHVzZXIgdG8gZW50ZXIgYSByZXNwb25zZS48L3A+DQo8cD5GaWVsZHMgYWxzbyBtYXkgYmUgYXNzaWduZWQgYSBDU1MgY2xhc3MuIFRoaXMgc2ltcGx5IHdyYXBzIHRoZSBpbnB1dCBpbiBhIGRpdiB3aXRoIHRoYXQgY2xhc3MsIHNvIGFzIHRvIGFsbG93DQpjdXN0b21pemVkIGxheW91dHMuIFRvIHVzZSB0aGlzIGVmZmVjdGl2ZWx5LCB5b3UgbWF5IG5lZWQgdG8gJnF1b3Q7dmlldyBzb3VyY2UmcXVvdDsgb24gdGhlIGdlbmVyYXRlZCBmb3JtLCBhbmQgdGhlbg0Kd3JpdGUgeW91ciBDU1MuPC9wPg0KPHVsPg0KPGxpPlN0YW5kYXJkIElucHV0cw0KPHVsPjxsaT5UZXh0IElucHV0LiBUaGlzIGlzIGEgc3RhbmRhcmQgdGV4dCBmaWVsZC4gWW91IGNhbiBsaW1pdCB0aGUgbGVuZ3RoLCBhbmQgYXBwbHkgdmFyaW91cyB2YWxpZGF0aW9uDQpmdW5jdGlvbnMgdG8gdGhlIGZpZWxkLjwvbGk+DQo8bGk+VGV4dCBBcmVhLiBUaGlzIGlzIGEgYmlnLCBmcmVlLWZvcm0gdGV4dCBpbnB1dCBmaWVsZC48L2xpPg0KPGxpPkNoZWNrYm94LiBUaGlzIGlzIGEgc3RhbmRhcmQgY2hlY2sgYm94LjwvbGk+DQo8bGk+Q2hlY2tib3ggR3JvdXAuIFRoaXMgaXMgYSBjb2xsZWN0aW9uIG9mIGNoZWNrYm94ZXMuIFRoZSBvbmx5IGRpZmZlcmVuY2UgYmV0d2VlbiB0aGlzIGlucHV0IGFuZCBhDQpjb2xsZWN0aW9uIG9mIENoZWNrYm94IGlucHV0cyBpcyB0aGF0IHRoZXkgYXJlIHByZXNlbnRlZCBhcyBhIGdyb3VwLCB3aXRoIG9uZSBuYW1lLCBhbmQgY2FuIGhhdmUgYSB2YWxpZGF0aW9uIGZ1bmN0aW9uIHJlcXVpcmluZyB0aGF0IHlvdSBjaGVjayBvbmUgb3IgbW9yZSBvZiB0aGUgYm94ZXMgaW4gdGhlIGdyb3VwLjwvbGk+DQo8bGk+UmFkaW8gR3JvdXAuIFRoaXMgaXMgYSBjb2xsZWN0aW9uIG9mIHJhZGlvIGJ1dHRvbnMuIE9ubHkgb25lIG9mIHRoZSBncm91cCBtYXkgYmUgc2VsZWN0ZWQgYnkgdGhlIHVzZXIuPC9saT4NCjxsaT5QdWxsZG93bi4gVGhpcyBpcyBhIHN0YW5kYXJkIHB1bGxkb3duIG1lbnUuIEl0JiMwMzk7cyByZWFsbHkgY29uY2VwdHVhbGx5IHRoZSBzYW1lIHRoaW5nIGFzIGEgcmFkaW8gYnV0dG9uDQpncm91cCwgYnV0IGlzIGJldHRlciB3aGVuIHRoZXJlIGFyZSBhIGxhcmdlIG51bWJlciBvZiBvcHRpb25zLjwvbGk+DQo8bGk+TXVsdGlzZWxlY3QuIFRoaXMgaXMgYSBtdWx0aS1zZWxlY3QgZmllbGQuIEl0JiMwMzk7cyByZWFsbHkgY29uY2VwdHVhbGx5IHRoZSBzYW1lIHRoaW5nIGFzIGEgY2hlY2tib3ggYnV0dG9uDQpncm91cCwgYnV0IGlzIGJldHRlciB3aGVuIHRoZXJlIGFyZSBhIGxhcmdlIG51bWJlciBvZiBvcHRpb25zLCBhcyB5b3UgY2FuIGxpbWl0IHRoZSBudW1iZXIgZGlzcGxheWVkIG9uIHRoZSBzY3JlZW4gYXQgYW55IG9uZSB0aW1lLjwvbGk+DQo8bGk+U3RhdGUuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBTdGF0ZXMgb2YgdGhlIFUuUy48L2xpPg0KPGxpPkNvdW50cmllcy4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIENvdW50cmllcyBvZiB0aGUgd29ybGQgKGFzIG9mIEp1bHkgMjAwNSkuPC9saT4NCjxsaT5EYXRlIFBpY2tlci4gVGhpcyBpcyBhIHRyaXBsZSBwdWxsZG93biBhbGxvd2luZyB0aGUgdXNlciB0byBzZWxlY3QgYSBkYXRlLjwvbGk+DQo8L3VsPjwvbGk+DQoNCjxsaT5FbWFpbC1zcGVjaWZpYyBJbnB1dHMNCjx1bD48bGk+RW1haWwgRnJvbSBBZGRyZXNzIEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIHRoZWlyIGVtYWlsIGFkZHJlc3MuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBhZGRyZXNzIGluIHRoZSAmcXVvdDtGcm9tJnF1b3Q7IGZpZWxkLjwvbGk+DQo8bGk+RW1haWwgRnJvbSBOYW1lIEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIHRoZWlyIG5hbWUuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBuYW1lIGluIHRoZSAmcXVvdDtGcm9tJnF1b3Q7IGZpZWxkLjwvbGk+DQo8L3VsPjwvbGk+DQoNCjxsaT5EaXNwbGF5IENvbnRyb2wgRmllbGRzPHVsPg0KPGxpPi1QYWdlIEJyZWFrLiBUaGlzIGFsbG93cyB5b3UgdG8gc3BsaXQgeW91ciBmZWVkYmFjayBmb3JtIGludG8gbXVsdGlwbGUgcGFnZXMuIEVhY2ggcGFnZSBpcw0KaW5kZXBlbmRlbnRseSB2YWxpZGF0ZWQuIFRoaXMgaXMgZ29vZCBmb3IgYXBwbGljYXRpb25zIGxpa2Ugb25saW5lIHN1cnZleXMuPC9saT4NCjxsaT4tU3RhdGljIFRleHQuIFRoaXMgYWxsb3dzIHlvdSB0byBwdXQgdGV4dCBvciBhIGxhYmVsIGluIHRoZSBtaWRkbGUgb2YgeW91ciBmb3JtLiBUaGlzIGlzIHVzZWZ1bCBmb3IgZ2l2aW5nIGFkZGl0aW9uYWwgaGVscCB0ZXh0LCBlc3BlY2lhbGx5IGlmIHlvdSYjMDM5O3JlIG5vdCB1c2luZyBhIEN1c3RvbSBUZW1wbGF0ZSB0byByZW5kZXIgeW91ciBmb3JtLjwvbGk+DQo8L3VsPjwvbGk+DQoNCjxsaT5Gb3JtIEhhbmRsaW5nIElucHV0cyAoRGlzcG9zaXRpb25zKQ0KPHVsPjxsaT4qRW1haWwgUmVzdWx0cyBCYXNlZCBvbiBQdWxsZG93bi4gVGhpcyBpcyB1c2VmdWwgZm9yIHdlYiBzaXRlcyB3aGVyZSBjb21tZW50cyBnZXQgcm91dGVkIGJhc2VkIG9uIHRoZWlyIHN1YmplY3QgbWF0dGVyLCBlLmcuLCBidWdzIGdldCBzZW50IHRvIG9uZSBwZXJzb24sIG1hcmtldGluZyBxdWVzdGlvbnMgdG8gYW5vdGhlciBwZXJzb24sIHNhbGVzIHJlcXVlc3RzIHRvIHNvbWVvbmUgZWxzZSwgZXRjLiBUaGUgcHVsbGRvd24gaXMgcG9wdWxhdGVkIHdpdGggdGhlIHN1YmplY3RzLCBhbmQgZWFjaCBnZXRzIGRpcmVjdGVkIHRvIGEgc3BlY2lmaWMgZW1haWwgYWRkcmVzcy4gWW91IHNldCB1cCB0aGVzZSBtYXBwaW5ncyBpbiB0aGUgd2hlbiB5b3UgY3JlYXRlIG9yIGVkaXQgYSBmaWVsZCBvZiB0aGlzIHR5cGUuIElmIHlvdSB1c2Ugb25lIG9mIHRoZXNlICZxdW90O0RpcmVjdG9yJnF1b3Q7IHB1bGxkb3ducywgdGhlIHVzZXIgbXVzdCBtYWtlIGEgc2VsZWN0aW9uIGluIG9yZGVyIHRvIHN1Ym1pdCB0aGUNCmZvcm0uIFRoaXMgaW5wdXQgaXMgcGFydCBvZiB0aGUgZm9ybSB0aGUgdXNlciBzZWVzLCBhbHRob3VnaCB0aGUgZW1haWwgYWRkcmVzc2VzIGFyZSBub3QgbWFkZSB2aXNpYmxlIG5vcg0KYXJlIHRoZXkgZW1iZWRkZWQgaW4gdGhlIEhUTUwuPC9saT4NCjxsaT4qRW1haWwgUmVzdWx0cyB0byBzZXQgQWRkcmVzcyhlcykuIFRoaXMgc2ltcGx5IHNlbmRzIHRoZSBmb3JtIHJlc3VsdHMgdG8gb25lIG9yIG1vcmUgZW1haWwgYWRkcmVzc2VzIHRoYXQgeW91IGVudGVyIHdoZW4geW91IGNyZWF0ZSBvciBlZGl0IHRoaXMgdHlwZSBvZiBmaWVsZC4gVGhpcyBmaWVsZCBhbmQgaXRzIG5hbWUgYXJlIG5vdCB2aXNpYmxlIGluIHRoZQ0KZm9ybSB0aGF0IHRoZSB1c2VyIHNlZXMuIFRoZSBlbWFpbCBhZGRyZXNzZXMgYXJlIG5vdCBtYWRlIHZpc2libGUgbm9yDQphcmUgdGhleSBlbWJlZGRlZCBpbiB0aGUgSFRNTC48L2xpPg0KPGxpPipTdG9yZSBSZXN1bHRzIGluIERhdGFiYXNlLiBUaGlzIHdpbGwgc3RvcmUgdGhlIGZvcm0gY29udGVudHMgaW4gYW4gaW50ZXJuYWwgZGF0YWJhc2UuIFlvdSB3aWxsIGFsd2F5cyB1c2UgdGhpcyBkaXNwb3NpdGlvbiBpZiB5b3UgdXNlIHRoZSBmb3JtIHdpdGggRm9ybUJyb3dzZXIuPC9saT4NCjxsaT4qVmFsaWRhdGUgdmlhIEVtYWlsLiBUaGlzIGlzIGEgc3RyYW5nZSBhbmQgcG93ZXJmdWwgZmllbGQuIEl0IHByb3ZpZGVzIHRoZSB1c2VyIGEgbWFuZGF0b3J5IGlucHV0IGZvciB0aGVpciBlbWFpbCBhZGRyZXNzLiBPbmNlIHRoZXkgc3VibWl0IHRoZWlyIGZvcm0sIHRoZSBzdGFuZGFyZCBmb3JtIGRpc3Bvc2l0aW9ucyBhcmUgbm90IHBlcmZvcm1lZCAtLSByYXRoZXIsIGl0IHNlbmQgdGhlIHVzZXIgYW4gZW1haWwgd2l0aCBhIHNwZWNpYWwgY29kZWQgbGluay4gSWYgdGhleSBjbGljayBvbiB0aGUgbGluaywgdGhlIG90aGVyIGZvcm0gaXMgY29uc2lkZXJlZCAmcXVvdDthcHByb3ZlZCwmcXVvdDsgYW5kIHRoZSBvdGhlciBkaXNwb3NpdGlvbnMgYXJlIGFsbCBwZXJmb3JtZWQuPC9saT4NCjxsaT4qV3JpdGUgUmVzdWx0cyB0byBGbGF0IEZpbGUuIFRoaXMgdGFrZXMgdGhlIGZvcm0gcmVzdWx0cyBhbmQgd3JpdGVzIHRoZW0gaW50byBhIHRleHQgZmlsZS4gWW91IG1heQ0Kc2VsZWN0IHRoZSBuYW1lIG9mIHRoZSBmaWxlLCBhbmQgc2V0IGl0cyBmb3JtYXQuIFRoZXNlIGZpbGVzIGFyZSB3cml0dGVuIHRvIHRoZSAmcXVvdDtvdXRwdXQmcXVvdDsgZGlyZWN0b3J5IHVuZGVyIHRoZQ0KbW9kdWxlJiMwMzk7cyBpbnN0YWxsYXRpb24gZGlyZWN0b3J5LCBhc3N1bWluZyB0aGUgd2ViIHNlcnZlciBoYXMgcGVybWlzc2lvbiB0byB3cml0ZSB0aGVyZS4NCjwvdWw+PC9saT48L2xpPjwvdWw+DQoNCjxoMz5FbWFpbCBhbmQgRmxhdCBGaWxlIFRlbXBsYXRlczwvaDM+DQo8cD5NYW4gZGlzcG9zaXRpb24gdHlwZXMgYWxsb3cgeW91IHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZvciB0aGUgZW1haWwgdGhhdCBpcyBnZW5lcmF0ZWQsIG9yIGZvciB0aGUgd2F5IHRoZSByZXN1bHRzIGFyZSB3cml0dGVuIHRvIGEgZmlsZS4gSWYgeW91IG9wdCBub3QgdG8gY3JlYXRlIGEgdGVtcGxhdGUsIHRoZSBGb3JtQnVpbGRlciB3aWxsIHVzZSBpdCYjMDM5O3Mgb3duIGJlc3QgZ3Vlc3MsIHdoaWNoIG1heSBvciBtYXkgbm90IHdvcmsgb3V0IHRvIHlvdXIgbGlraW5nLiBZb3UgY2FuIGFsd2F5cyBjbGljayBvbiB0aGUgJnF1b3Q7Q3JlYXRlIFNhbXBsZSBUZW1wbGF0ZSZxdW90OyBhbmQgdGhlbiBjdXN0b21pemUgdGhlIHJlc3VsdHMuPC9wPg0KPHA+Tm90ZSB0aGF0IG9uY2UgeW91JiMwMzk7dmUgY2hhbmdlZCBhIHRlbXBsYXRlLCBpdCB3aWxsIG5vIGxvbmdlciBhdXRvbWF0aWNhbGx5IGFkZCBuZXcgZmllbGRzLiBGb3IgdGhpcyByZWFzb24sIGl0JiMwMzk7cyB1c3VhbGx5IGJlc3QgdG8gY3JlYXRlIHlvdXIgdGVtcGxhdGVzIGFzIHRoZSBsYXN0IHN0ZXAgb2YgY3JlYXRpbmcgeW91ciBmb3JtLjwvcD4NCg0KPGgzPktub3duIElzc3VlczwvaDM+DQo8dWw+DQo8bGk+U29tZSBmaWVsZCB0eXBlcyBmcm9tIEZlZWRiYWNrRm9ybXMgYXJlIG5vdCBpbXBsZW1lbnRlZCBpbiBGb3JtQnVpbGRlci4gSWYgdGhlcmUgaXMgZGVtYW5kIGZvciB0aGVtLCB0aGV5IHdpbGwgYmUgYWRkZWQuPC9saT4NCjxsaT5Gb3JtQnVpbGRlciBpcyBub3QgeWV0IGludGVncmF0ZWQgd2l0aCBGcm9udEVuZCBVc2Vycy4gSXQgd2lsbCBiZS48L2xpPg0KPGxpPkZvcm1CdWlsZGVyIGNhbm5vdCB5ZXQgYmUgaW5saW5lZC4gVGhhdCBzaG91bGQgYmUgYSBzaW1wbGUgdXBncmFkZSBkb3duIHRoZSBsaW5lLjwvbGk+DQo8bGk+Rm9ybUJ1aWxkZXIgZG9lcyBub3QgeWV0IHN1cHBvcnQgcHJldHR5IHVybHMsIGFsdGhvdWdoIHRoYXQgc2hvdWxkbiYjMDM5O3QgbWF0dGVyIHNpbmNlIHRoZSB1c2VyIHNpZGUgaXMgcHJldHR5IHNpbXBsZS48L2xpPg0KPC91bD4NCg0KPGgzPlRyb3VibGVzaG9vdGluZzwvaDM+DQo8b2w+PGxpPiBGaXJzdCBzdGVwIGlzIHRvIGNoZWNrIHlvdSYjMDM5O3JlIHJ1bm5pbmcgQ01TIDEuMC1zdm4gb3IgbGF0ZXIuPC9saT4NCjxsaT4gU2Vjb25kIHN0ZXAgaXMgdG8gcmVhZCBhbmQgdW5kZXJzdGFuZCB0aGUgY2F2ZWF0IGFib3V0IFdZU0lXWUcgZWRpdG9ycyB1cCBpbiB0aGUNCnNlY3Rpb24gPGVtPkFkZGluZyBhIEZvcm0gdG8gYSBQYWdlPC9lbT4uPC9saT4NCjxsaT4gSWYgeW91JiMwMzk7cmUgbWlzc2luZyBmaWVsZHMgaW4gYW4gZW1haWwgdGhhdCBnZXRzIGdlbmVyYXRlZCwgY2hlY2sgdGhlIGRpc3Bvc2l0aW9uIGZpZWxkJiMwMzk7cyB0ZW1wbGF0ZSwgYW5kIG1ha2Ugc3VyZSB5b3UmIzAzOTtyZSBzcGVjaWZ5aW5nIHRoZSBtaXNzaW5nIGZpZWxkcy4gU2VlbXMgb2J2aW91cywgYnV0IGl0JiMwMzk7cyBhbiBlYXN5IG1pc3Rha2UgdG8gbWFrZS48L2xpPg0KPGxpPiBKdXN0IG1lc3MgYXJvdW5kIGFuZCB0cnkgY2xpY2tpbmcgb24gbGlua3MgYW5kIGljb25zIGFuZCBzdHVmZi4gU2VlIHdoYXQgaGFwcGVucy48L2xpPg0KPGxpPiBMYXN0IHJlc3BvcnQgaXMgdG8gZW1haWwgbWUgb3IgY2F0Y2ggbWUgb24gSVJDIGFuZCB3ZSBjYW4gZ28gZnJvbSB0aGVyZS48L2xpPg0KPC9vbD4gDQo8cD5UaGlzIGlzIGEgZmFpcmx5IGVhcmx5IHZlcnNpb24sIGlmIG5vdCBhIHJhbmsgYmV0YSByZWxlYXNlLCBhbmQgaXQgaXMgcHJvYmFibHkgc3RpbGwgYnVnZ3kuIFdoaWxlIEkmIzAzOTt2ZSBkb25lIGFsbCBJIGNhbg0KdG8gbWFrZSBzdXJlIG5vIGVncmVnaW91cyBidWdzIGhhdmUgY3JlcHQgaW4sIEkgaGF2ZSB0byBhZG1pdCB0aGF0IGR1cmluZyB0ZXN0aW5nLCB0aGlzIHByb2dyYW0NCnJldmVhbGVkIHNldmVuIGNvY2tyb2FjaGVzLCB0d28gZWFyd2lncywgYSBzbWFsbCBmYW1pbHkgb2YgYXBoaWRzLCBhbmQgYSB3YWxraW5nLXN0aWNrIGluc2VjdC4gSXQgYWxzbw0KYXRlIHRoZSBuZWlnaGJvciYjMDM5O3MgbmFzdHkgbGl0dGxlIHlhcCBkb2csIGZvciB3aGljaCBJIHdhcyBpbmFwcHJvcHJpYXRlbHkgZ3JhdGVmdWwuPC9wPg0KPHA+VGhlIGZpbmFsIHJlbGVhc2Ugd2lsbCBpbmNsdWRlIGJ1ZyBmaXhlcywgZG9jdW1lbnRhdGlvbiwgYW5kIHVuY29uZGl0aW9uYWwgbG92ZS48L3A+DQo8aDM+U3VwcG9ydDwvaDM+DQo8cD5UaGlzIG1vZHVsZSBkb2VzIG5vdCBpbmNsdWRlIGNvbW1lcmNpYWwgc3VwcG9ydC4gSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+DQo8dWw+DQo8bGk+Rm9yIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIG1vZHVsZSwgRkFRcywgb3IgdG8gZmlsZSBhIEJ1ZyBSZXBvcnQsIHBsZWFzZSB2aXNpdCB0aGUgQ01TIE1hZGUgU2ltcGxlICA8YSBocmVmPSZxdW90O2h0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcmcXVvdDs+RGV2ZWxvcGVyIEZvcmdlPC9hPi48L2xpPg0KPGxpPlRvIG9idGFpbiBjb21tZXJjaWFsIHN1cHBvcnQsIHBsZWFzZSBzZW5kIGFuIGVtYWlsIHRvIHRoZSBhdXRob3IgYXQgPGEgaHJlZj0mcXVvdDttYWlsdG86c2pnQGNtc21vZHVsZXMuY29tJnF1b3Q7PiZhbXA7bHQ7c2pnQGNtc21vZHVsZXMuY29tJmFtcDtndDs8L2E+LjwvbGk+DQo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSZxdW90O2h0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyZxdW90Oz5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi48L2xpPg0KPGxpPlRoZSBhdXRob3IgY2FuIG9mdGVuIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSZxdW90O2lyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2NtcyZxdW90Oz5DTVMgSVJDIENoYW5uZWw8L2E+LjwvbGk+DQo8bGk+TGFzdGx5LCB5b3UgbWF5IGhhdmUgc29tZSBzdWNjZXNzIGVtYWlsaW5nIHRoZSBhdXRob3IgZGlyZWN0bHkgYW5kIGdyb3ZlbGxpbmcgZm9yIGZyZWUgc3VwcG9ydC48L2xpPiAgDQo8L3VsPg0KPHA+QXMgcGVyIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgYXMtaXMuIFBsZWFzZSByZWFkIHRoZSB0ZXh0DQpvZiB0aGUgbGljZW5zZSBmb3IgdGhlIGZ1bGwgZGlzY2xhaW1lci48L3A+DQo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4NCjxwPkNvcHlyaWdodCAmYW1wO2NvcHk7IDIwMDYsIFNhbXVlbCBHb2xkc3RlaW4gPGEgaHJlZj0mcXVvdDttYWlsdG86c2pnQGNtc21vZHVsZXMuY29tJnF1b3Q7PiZhbXA7bHQ7c2pnQGNtc21vZHVsZXMuY29tJmFtcDtndDs8L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+DQo8cD5UaGlzIG1vZHVsZSBoYXMgYmVlbiByZWxlYXNlZCB1bmRlciB0aGUgPGEgaHJlZj0mcXVvdDtodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwmcXVvdDs+R05VIFB1YmxpYyBMaWNlbnNlPC9hPi4gWW91IG11c3QgYWdyZWUgdG8gdGhpcyBsaWNlbnNlIGJlZm9yZSB1c2luZyB0aGUgbW9kdWxlLjwvcD4nOwokbGFuZ1snY2hhbmdlbG9nJ10gPSAnCQkgICAgPHVsPg0KICAgICAgICAgICAgICAgICAgICA8bGk+VmVyc2lvbiAwLjIuMSAtIG5vdCByZWxlYXNlZCB5ZXQNCiAgICAgICAgICAgICAgICAgICAgICAgPHA+TWFueSB0aGFua3MgdG8gVXR0ZXIgRGVzaWduIGZvciBzcG9uc29yaW5nIHNvbWUgY2hhbmdlcyBhbmQgYnVnZml4ZXMsIHdoaWNoIGluY2x1ZGU6DQogICAgICAgICAgICAgICAgICAgICAgICAgIDx1bD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+QWRkIFBhZ2VzZXRTdGFydCBhbmQgUGFnZVNldEVuZCBmaWVsZCB0eXBlcw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5UaGVzZSBmaWVsZCB0eXBlcyBhbGxvdyB5b3UgdG8gY3JlYXRlIGZpZWxkc2V0cyBpbiB5b3VyIGZvcm0sIGFuZCBvcmdhbmlzZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5b3VyIGZpZWxkcyBsb2dpY2FsbHkgZm9yIHRoZSB1c2VyLiAgWW91IGNhbiBldmVuIG5lc3QgZmllbGRzZXRzLCBhbmQNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzb2NpYXRlIGEgc3R5bGUgd2l0aCB0aGVtIGFwcHJvcHJpYXRlbHkuICBUaGUgZGVmYXVsdCB0ZW1wbGF0ZSB3YXMgY2hhbmdlZA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0byBwcmV2ZW50IGl0IGZyb20gd3JhcHBpbmcgYSBkaXYgYXJvdW5kIHRoZXNlIHR5cGVzIG9mIGZpZWxkcy4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPkZpeGVkIGEgcHJvYmxlbSB3aXRoIERBVEVUSU1FIGZpZWxkcyBvbiBpbnN0YWxsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlRoaXMgc29sdmVzIGEgcHJvYmxlbSB3aGVuIG9uIGluc3RhbGwgdGhlIHJlc3BvbnNlIHRhYmxlIHdvdWxkIHNvbWV0aW1lcyBub3QgZ2V0IGNyZWF0ZWQgd2hlbiB1c2luZyBhZG9kYiBsaXRlPC9saT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPg0KICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPg0KICAgICAgICAgICAgICAgICAgICAgICA8L3A+DQoJCSAgICA8bGk+VmVyc2lvbiAwLjIgLSAxNCBOb3ZlbWJlciAyMDA2LiBDYWxndXkgJmFtcDthbXA7IHRzdyYjMDM5O3MgYnVnIGZpeGVzIGZvciBmaWVsZCByZS1vcmRlcmluZyBhbmQgY3VzdG9tIHRlbXBsYXRlcy4gQWRkaXRpb25hbCBidWcgZml4ZXMgZm9yIGZpZWxkIGxhYmVscy48L2xpPg0KCQkgICAgPGxpPlZlcnNpb24gMC4xIC0gOCBKdWx5IDIwMDYuIEluaXRpYWwgUmVsZWFzZTwvbGk+DQogICAgICAgICAgICAgICAgICAgIDwvdWw+JzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/nl_NL.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0Zvcm0gQnVpbGRlcic7CiRsYW5nWydmaWVsZF90eXBlXyddID0gJ1ZlbGR0eXBlIG5pZXQgaW5nZXN0ZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmllbGRzZXRFbmQnXSA9ICdWZWxkIGVpbmRlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmllbGRzZXRTdGFydCddID0gJ1ZlbGQgc3RhcnQnOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0RmllbGQnXSA9ICdUZWtzdGludm9lcic7CiRsYW5nWydmaWVsZF90eXBlX1RleHRBcmVhRmllbGQnXSA9ICdUZWtzdHZlbGQnOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEZpZWxkJ10gPSAnU2VsZWN0aWV2YWsnOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEdyb3VwRmllbGQnXSA9ICdTZWxlY3RpZXZhay1ncm9lcCc7CiRsYW5nWydmaWVsZF90eXBlX1B1bGxkb3duRmllbGQnXSA9ICdLZXV6ZWxpanN0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTXVsdGlzZWxlY3RGaWVsZCddID0gJ011bHRpc2VsZWN0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3RhdGVQaWNrZXJGaWVsZCddID0gJ1UuUy4gU3RhdGUta2llemVyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ291bnRyeVBpY2tlckZpZWxkJ10gPSAnTGFuZGVua2llemVyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGF0ZVBpY2tlckZpZWxkJ10gPSAnRGF0dW1raWV6ZXInOwokbGFuZ1snZmllbGRfdHlwZV9SYWRpb0dyb3VwRmllbGQnXSA9ICdTZWxlY3RpZXJvbmRqZS1ncm9lcCc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGlyZWN0b3InXSA9ICcqRS1tYWlsIHJlc3VsdGF0ZW4gZ2ViYXNlZXJkIG9wIGtldXplbGlqc3QnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsJ10gPSAnKkUtbWFpbCByZXN1bHRhdGVuIG5hYXIgaW5nZXN0ZWxkZSBhZHJlcyhzZW4pJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbENvbmZpcm1hdGlvbiddID0gJypWYWxpZGVlci12aWEtRW1haWxhZHJlcyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRmlsZSddID0gJypTY2hyaWpmIHJlc3VsdGF0ZW4gbmFhciBiZXN0YW5kJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EYXRhYmFzZSddID0gJypSZXN1bHRhdGVuIG9wc2xhYW4gaW4gZGF0YWJhc2UnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvblVzZXJUYWcnXSA9ICcqQ2FsbCBBIFVzZXIgRGVmaW5lZCBUYWcgV2l0aCB0aGUgRm9ybSBSZXN1bHRzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUGFnZUJyZWFrRmllbGQnXSA9ICctUGFnaW5hc2NoZWlkaW5nJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmlsZVVwbG9hZEZpZWxkJ10gPSAnQmVzdGFuZCBVcGxvYWQnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxBZGRyZXNzRmllbGQnXSA9ICdFLW1haWwgJnF1b3Q7VmFuIEFkcmVzJnF1b3Q7IHZlbGQnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxOYW1lRmllbGQnXSA9ICdFLW1haWwgJnF1b3Q7VmFuIE5hYW0mcXVvdDsgdmVsZCc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRpY1RleHRGaWVsZCddID0gJy1TdGF0aXNjaGUgVGVrc3QnOwokbGFuZ1snZmllbGRfdHlwZV9MaW5rRmllbGQnXSA9ICctTGluayc7CiRsYW5nWydmaWVsZF90eXBlX0hpZGRlbkZpZWxkJ10gPSAnVmVyYm9yZ2VuIHZlbGQnOwokbGFuZ1sndmFsaWRhdGlvbl9ub25lJ10gPSAnR2VlbiB2YWxpZGF0aWUnOwokbGFuZ1sndmFsaWRhdGlvbl9udW1lcmljJ10gPSAnTnVtZXJpZWsnOwokbGFuZ1sndmFsaWRhdGlvbl9pbnRlZ2VyJ10gPSAnR2VoZWVsIGdldGFsJzsKJGxhbmdbJ3ZhbGlkYXRpb25fZW1haWxfYWRkcmVzcyddID0gJ0UtbWFpbGFkcmVzJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbXVzdF9jaGVjayddID0gJ01vZXQgZ2VzZWxlY3RlZXJkIHdvcmRlbic7CiRsYW5nWyd2YWxpZGF0aW9uX3JlZ2V4X21hdGNoJ10gPSAnTW9ldCB2b2xkb2VuIGFhbiBlZW4gcmVndWxpZXJlIGV4cHJlc3NpZSc7CiRsYW5nWyd2YWxpZGF0aW9uX3JlZ2V4X25vbWF0Y2gnXSA9ICdWb2xkb2V0IG5pZXQgYWFuIGRlIHJlZ3VsaWVyZSBleHByZXNzaWUnOwokbGFuZ1sncmVxdWlyZWRfZmllbGRfbWlzc2luZyddID0gJ0VlbiB3YWFyZGUgb250YnJlZWt0IHZvb3IgZGl0IHZlcnBsaWNodGUgdmVsZCc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV92YWx1ZSddID0gJ1ZvZXIgZWVuIHdhYXJkZSBpbiB2b29yICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX251bWJlciddID0gJ1ZvZXIgZWVuIG51bW1lciBpbiBiaWogJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX3ZhbGlkJ10gPSAnVm9lciBlZW4gZ2VsZGlnZSB3YWFyZGUgaW4gYmlqICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hbl9pbnRlZ2VyJ10gPSAnVm9lciBlZW4gZ2V0YWwgaW4gYmlqICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hbl9lbWFpbCddID0gJ1ZvZXIgZWVuIGdlbGRpZyBlLW1haWxhZHJlcyBpbiBiaWogJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1snbm90X3ZhbGlkX2VtYWlsJ10gPSAnJnF1b3Q7JXMmcXVvdDsgaXMgZ2VlbiBnZWxkaWcgZS1tYWlsYWRyZXMhJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9ub19sb25nZXInXSA9ICdWb2VyIGVlbiB3YWFyZGUgaW4gZGllIG5pZXQgbGFuZ2VyIGlzIGRhbiAlcyB0ZWtlbnMnOwokbGFuZ1sndGl0bGVfbGlzdF9kZWxpbWl0ZXInXSA9ICdUZWtlbiBvbSB0ZSBnZWJydWlrZW4gYWxzIHNjaGVpZGluZyBiaWogcmVzdWx0YXRlbiBkaWUgbWVlciBkYW4gMSB3YWFyZGUgdGVydWdnZXZlbic7CiRsYW5nWyd5b3VfbmVlZF9wZXJtaXNzaW9uJ10gPSAnRGUgJnF1b3Q7JXMmcXVvdDsgcGVybWlzc2llIGlzIHZlcmVpc3Qgdm9vciBkaWUgYmV3ZXJraW5nLic7CiRsYW5nWydsYWNrcGVybWlzc2lvbiddID0gJ1NvcnJ5ISBVIGhlZWZ0IG9udm9sZG9lbmRlIHJlY2h0ZW4gb20gZGV6ZSBzZWN0aWUgdGUgYmVuYWRlcmVuLic7CiRsYW5nWydmaWVsZF9vcmRlcl91cGRhdGVkJ10gPSAnVmVsZHZvbGdvcmRlIGJpamdld2Vya3QuJzsKJGxhbmdbJ2Zvcm1fZGVsZXRlZCddID0gJ0Zvcm11bGllciB2ZXJ3aWpkZXJkLic7CiRsYW5nWydmaWVsZF9kZWxldGVkJ10gPSAnVmVsZCB2ZXJ3aWpkZXJkLic7CiRsYW5nWydjb25maWd1cmF0aW9uX3VwZGF0ZWQnXSA9ICdDb25maWd1cmF0aWUgYmlqZ2V3ZXJrdC4nOwokbGFuZ1sneW91X211c3RfY2hlY2snXSA9ICcmcXVvdDslcyZxdW90OyBtb2V0IGdlc2VsZWN0ZWVyZCB6aWpuIG9tIGRvb3IgdGUga3VubmVuIGdhYW4uJzsKJGxhbmdbJ211c3Rfc3BlY2lmeV9vbmVfZGVzdGluYXRpb24nXSA9ICdFciBtb2V0IHRlbm1pbnN0ZSBlZW4gYmVzdGVtbWluZ3NhZHJlcyB3b3JkZW4gb3BnZWdldmVuISc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2Zvcm0nXSA9ICdIZXQgZm9ybXVsaWVyICVzIHZlcndpamRlcmVuPyc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2ZpZWxkJ10gPSAnSGV0IHZlbGQgJXMgdmVyd2lqZGVyZW4/JzsKJGxhbmdbJ25vdGljZV9zZWxlY3RfdHlwZSddID0gJ0dlYXZhbmNlZXJkZSBvcHRpZXMgemlqbiBuaWV0IGJlc2NoaWtiYWFyIHZvb3JkYXQgaGV0IHZlbGR0eXBlIGluZ2VzdGVsZCBpcy4nOwokbGFuZ1snZmllbGRfbmFtZV9pbl91c2UnXSA9ICdEZSB2ZWxkbmFhbSAmcXVvdDslcyZxdW90OyBpcyBhbCBpbiBnZWJydWlrLiBHZWJydWlrIHVuaWVrZSB2ZWxkbmFtZW4uJzsKJGxhbmdbJ2Fub255bW91cyddID0gJ0Fub25pZW0nOwokbGFuZ1snYWJicmV2aWF0aW9uX2xlbmd0aCddID0gJ0xlbmd0ZTogJXMnOwokbGFuZ1snYm94ZXMnXSA9ICclcyB2YWtrZW4nOwokbGFuZ1snb3B0aW9ucyddID0gJyVzIG9wdGllcyc7CiRsYW5nWyd0ZXh0X2xlbmd0aCddID0gJyVzIHRla2Vucy4nOwokbGFuZ1snb3JkZXInXSA9ICdWb2xnb3JkZSc7CiRsYW5nWyd1bnNwZWNpZmllZCddID0gJ1tuaWV0IG9wZ2VnZXZlbl0nOwokbGFuZ1snYWRkZWQnXSA9ICd0b2VnZXZvZWdkJzsKJGxhbmdbJ3VwZGF0ZWQnXSA9ICdiaWpnZXdlcmt0JzsKJGxhbmdbJ3NlbGVjdF9vbmUnXSA9ICdTZWxlY3RlZXIgMSc7CiRsYW5nWydzZWxlY3RfdHlwZSddID0gJ1NlbGVjdGVlciBUeXBlJzsKJGxhbmdbJ3RvJ10gPSAnQWFuJzsKJGxhbmdbJ3llcyddID0gJ0phJzsKJGxhbmdbJ25vJ10gPSAnTmVlJzsKJGxhbmdbJ3JlY2lwaWVudHMnXSA9ICdvbnR2YW5nZXJzJzsKJGxhbmdbJ2Rlc3RpbmF0aW9uX2NvdW50J10gPSAnJXMgYmVzdGVtbWluZ2VuJzsKJGxhbmdbJ3NhdmUnXSA9ICdPcHNsYWFuJzsKJGxhbmdbJ2FkZCddID0gJ1RvZXZvZWdlbic7CiRsYW5nWyd1cGRhdGUnXSA9ICdCaWp3ZXJrZW4nOwokbGFuZ1snc2F2ZV9hbmRfY29udGludWUnXSA9ICdPcHNsYWFuIGVuIGRvb3JnYWFuIG1ldCB3aWp6aWdlbic7CiRsYW5nWydpbmZvcm1hdGlvbiddID0gJ0luZm9ybWF0aWUnOwokbGFuZ1snYXV0b21hdGljJ10gPSAnQXV0b21hdGlzY2gnOwokbGFuZ1snZm9ybXMnXSA9ICdGb3JtdWxpZXJlbic7CiRsYW5nWydmb3JtJ10gPSAnRm9ybXVsaWVyICVzJzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb24nXSA9ICdDb25maWd1cmF0aWUnOwokbGFuZ1sndGFiX21haW4nXSA9ICdTdGFydCc7CiRsYW5nWyd0YWJfYWRkaXRpb25hbCddID0gJ0Zvcm11bGllcmluc3RlbGxpbmdlbic7CiRsYW5nWyd0YWJfYWR2YW5jZWQnXSA9ICdHZWF2YW5jZWVyZGUgaW5zdGVsbGluZ2VuJzsKJGxhbmdbJ3RhYl90YWJsZWxheW91dCddID0gJ1RhYmVsLWdlYmFzZWVyZGUgbGF5b3V0LW9wdGllcyc7CiRsYW5nWyd0YWJfdGVtcGxhdGVsYXlvdXQnXSA9ICdTamFibG9vbiBsYXlvdXQtb3B0aWVzJzsKJGxhbmdbJ2ZpZWxkX3JlcXVpcmVtZW50X3VwZGF0ZWQnXSA9ICdWZWxkIHZlcnBsaWNodCBzdGF0dXMgYmlqZ2V3ZXJrdC4nOwokbGFuZ1snbWF4aW11bV9zaXplJ10gPSAnTWF4LiBncm9vdHRlJzsKJGxhbmdbJ3Blcm1pdHRlZF9leHRlbnNpb25zJ10gPSAnVWl0YnJlaWRpbmdlbic7CiRsYW5nWydwZXJtaXR0ZWRfZmlsZXR5cGVzJ10gPSAnVG9lZ2VzdGFuZSBiZXN0YW5kc3R5cGVzJzsKJGxhbmdbJ2ZpbGVfdG9vX2xhcmdlJ10gPSAnR2V1cGxvYWQgYmVzdGFuZCBpcyB0ZSBncm9vdCEgTWF4aW11bSBncm9vdHRlIGlzOic7CiRsYW5nWydpbGxlZ2FsX2ZpbGVfdHlwZSddID0gJ0RpdCB0eXBlIGJlc3RhbmQgbWFnIG5pZXQgd29yZGVuIGdldXBsb2FkLiBDb250cm9sZWVyIGRlIGJlc3RhbmRzZXh0ZW5zaWUuJzsKJGxhbmdbJ3VuaW5zdGFsbGVkJ10gPSAnTW9kdWxlIGdlLWRlaW5zdGFsZWVyZC4nOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnTW9kdWxlIHZlcnNpZSAlcyBnZSZpdW1sO25zdGFsbGVlcmQgLic7CiRsYW5nWyd1cGdyYWRlZCddID0gJ01vZHVsZSBiaWpnZXdlcmt0IG5hYXIgdmVyc2llICVzLic7CiRsYW5nWydidXR0b25fcHJldmlvdXMnXSA9ICdUZXJ1Zyc7CiRsYW5nWydidXR0b25fc3VibWl0J10gPSAnVmVyc3R1dXInOwokbGFuZ1snYnV0dG9uX2NvbnRpbnVlJ10gPSAnVmVyZGVyJzsKJGxhbmdbJ3ZhbHVlX2NoZWNrZWQnXSA9ICdHZXNlbGVjdGVlcmQnOwokbGFuZ1sndmFsdWVfdW5jaGVja2VkJ10gPSAnTmlldCBnZXNlbGVjdGVlcmQnOwokbGFuZ1snYWRkX29wdGlvbnMnXSA9ICdNZWVyIG9wdGllcyB0b2V2b2VnZW4nOwokbGFuZ1snZGVsZXRlX29wdGlvbnMnXSA9ICdWZXJ3aWpkZXJlbiBnZW1hcmtlZXJkZSBvcHRpZXMnOwokbGFuZ1snYWRkX2NoZWNrYm94ZXMnXSA9ICdWb2VnIG1lZXIgc2VsZWN0aWV2YWtrZW4gdG9lJzsKJGxhbmdbJ2RlbGV0ZV9jaGVja2JveGVzJ10gPSAnVmVyd2lqZGVyIGdlbWFya2VlcmRlciBzZWxlY3RpZXZha2tlbic7CiRsYW5nWydhZGRfYWRkcmVzcyddID0gJ1ZvbGdlbmQgYWRyZXMgdG9ldm9lZ2VuJzsKJGxhbmdbJ2RlbGV0ZV9hZGRyZXNzJ10gPSAnVmVyd2lqZGVyIGdlbWFya2VlcmRlIGFkcmVzc2VuJzsKJGxhbmdbJ2FkZF9kZXN0aW5hdGlvbiddID0gJ1ZvbGdlbmRlIGJlc3RlbW1pbmcgdG9ldm9lZ2VuJzsKJGxhbmdbJ2RlbGV0ZV9kZXN0aW5hdGlvbiddID0gJ1ZlcndpamRlciBnZW1hcmtlZXJkZSBiZXN0ZW1taW5nZW4nOwokbGFuZ1sndGl0bGVfdWR0X25hbWUnXSA9ICdHZWJydWlrZXIgZ2VkZWZpbmVlcmRlIFRhZyc7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2Rlc3RwYWdlJ10gPSAnUGFnaW5hIG9tIG5hYXIgdGVydWcgdGUga2VyZW4gbWV0IHVwbG9hZHMgbGluayc7CiRsYW5nWyd0aXRsZV91cGxvYWRtb2R1bGVfc3VtbWFyeSddID0gJ1ZlcnpvbmRlbiBtZXQgRm9ybUJ1aWxkZXInOwokbGFuZ1sndGl0bGVfdXBsb2Fkc19jYXRlZ29yeSddID0gJ1VwbG9hZHMtY2F0ZWdvcmllJzsKJGxhbmdbJ3RpdGxlX3NlbmR0b191cGxvYWRzJ10gPSAnU3R1dXIgZGl0IGJlc3RhbmQgbmFhciBkZSB1cGxvYWQtbW9kdWxlJzsKJGxhbmdbJ3RpdGxlX2xlZ2VuZCddID0gJ0xlZ2VuZGEnOwokbGFuZ1sndGl0bGVfbWF4aW11bV9sZW5ndGgnXSA9ICdNYXhpbXVtIGxlbmd0ZSc7CiRsYW5nWyd0aXRsZV9jaGVja2JveF9sYWJlbCddID0gJ0xhYmVsIHNlbGVjdGlldmFrJzsKJGxhbmdbJ3RpdGxlX2NoZWNrZWRfdmFsdWUnXSA9ICdXYWFyZGUgaW5kaWVuIGdlc2VsZWN0ZWVyZCc7CiRsYW5nWyd0aXRsZV91bmNoZWNrZWRfdmFsdWUnXSA9ICdXYWFyZGUgaW5kaWVuIG5pZXQgZ2VzZWxlY3RlZXJkJzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2RldGFpbHMnXSA9ICdTZWxlY3RpZXZhay1ncm9lcGRldGFpbHMnOwokbGFuZ1sndGl0bGVfZGVsZXRlJ10gPSAnVmVyd2lqZGVyZW4/JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9vbmVfbWVzc2FnZSddID0gJyZxdW90O1NlbGVjdCBFZW4mcXVvdDsgdGVrc3QnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX3N1YmplY3QnXSA9ICdTZWxlY3RpZSBvbmRlcndlcnAnOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfY291bnRyeSddID0gJ1N0YW5kYWFyZHNlbGVjdGllJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X3N0YXRlJ10gPSAnU3RhbmRhYXJkc2VsZWN0aWUnOwokbGFuZ1sndGl0bGVfb3B0aW9uX25hbWUnXSA9ICdPcHRpZW5hYW0nOwokbGFuZ1sndGl0bGVfb3B0aW9uX3ZhbHVlJ10gPSAnVmVyc3R1dXJkZSB3YWFyZGUnOwokbGFuZ1sndGl0bGVfcHVsbGRvd25fZGV0YWlscyddID0gJ0tldXplbGlqc3RvcHRpZXMnOwokbGFuZ1sndGl0bGVfbXVsdGlzZWxlY3RfZGV0YWlscyddID0gJ01lZXJzZWxlY3RpZS1vcHRpZXMnOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fYWRkcmVzcyddID0gJ0Jlc3RlbW1pbmdzIGUtbWFpbGFkcmVzJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fbmFtZSddID0gJyZxdW90O1ZhbiBOYWFtJnF1b3Q7IHZvb3IgZS1tYWlsJzsKJGxhbmdbJ3RpdGxlX3JlbGF4ZWRfZW1haWxfcmVnZXgnXSA9ICdHZWJydWlrIGVlbnZvdWRpZ2UgZS1tYWlsdmFsaWRhdGllJzsKJGxhbmdbJ3RpdGxlX3JlbGF4ZWRfcmVnZXhfbG9uZyddID0gJ0dlYnJ1aWsgZWVudm91ZGlnZSBlLW1haWx2YWxpZGF0aWUgKHN0YSBiaWp2b29yYmVlbGQgJnF1b3Q7eEB5JnF1b3Q7IHRvZSBpLnAudi4gJnF1b3Q7eEB5LnRsZCZxdW90OyknOwokbGFuZ1sndGl0bGVfZW1haWxfZnJvbV9hZGRyZXNzJ10gPSAnJnF1b3Q7VmFuIGFkcmVzJnF1b3Q7IHZvb3IgZS1tYWlsJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2VuY29kaW5nJ10gPSAnRS1tYWlsdGVrZW5zZXQgZW5jb2RlcmluZyc7CiRsYW5nWyd0aXRsZV9kaXJlY3Rvcl9kZXRhaWxzJ10gPSAnS2V1emVsaWpzdC1nZWJhc2VlcmRlIEUtbWFpbGRldGFpbHMnOwokbGFuZ1sndGl0bGVfZmlsZV9uYW1lJ10gPSAnQmVzdGFuZHNuYWFtJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX3N1YmplY3QnXSA9ICdFLW1haWwgb25kZXJ3ZXJwcmVnZWwnOwokbGFuZ1sndGl0bGVfZm9ybV9uYW1lJ10gPSAnRm9ybXVsaWVybmFhbSc7CiRsYW5nWyd0aXRsZV9mb3JtX3N0YXR1cyddID0gJ0Zvcm11bGllcnN0YXR1cyc7CiRsYW5nWyd0aXRsZV9yZWFkeV9mb3JfZGVwbG95bWVudCddID0gJ0tsYWFyIHZvb3IgR2VicnVpayc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkxJ10gPSAnTmlldCBLbGFhcic7CiRsYW5nWyd0aXRsZV9yZWRpcmVjdF9wYWdlJ10gPSAnUGFnaW5hIG9tIG5hYXIgdGUgcmVkaXJlY3RlbiBuYSB2ZXJ6ZW5kaW5nIHZhbiBoZXQgZm9ybXVsaWVyJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTInXSA9ICdWb2VnIGVlbiB2ZWxkIHRvZSB6b2RhdCBkZSBpbnB1dCB2YW4gZGUgZ2VicnVpa2VyIHZlcndlcmt0IGthbiB3b3JkZW4uIFUga3VudCc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHlfbGluayddID0gJ2RlemUgc25lbGtvcHBlbGluZyBnZWJydWlrZW4nOwokbGFuZ1sndGl0bGVfZm9ybV9hbGlhcyddID0gJ0Zvcm11bGllcmFsaWFzJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fZmllbGRzJ10gPSAnRm9ybXVsaWVydmVsZGVuJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX25hbWUnXSA9ICdWZWxkbmFhbSc7CiRsYW5nWyd0aXRsZV9yYWRpb2dyb3VwX2RldGFpbHMnXSA9ICdTZWxlY3RpZXJvbmRqZS1ncm9lcHNkZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3R5cGUnXSA9ICdWZWxkdHlwZSc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkzJ10gPSAnb20gZWVuIGZvbXVsaWVydmVyd2Vya2luZ3N2ZWxkIHRlIG1ha2VuLic7CiRsYW5nWyd0aXRsZV9hZGRfbmV3X2Zvcm0nXSA9ICdOaWV1dyBmb3JtdWxpZXIgdG9ldm9lZ2VuJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbiddID0gJ0Zvcm1CdWlsZGVyIHZlcnNpZSB0b25lbj8nOwokbGFuZ1sndGl0bGVfc2hvd192ZXJzaW9uX2xvbmcnXSA9ICdEaXQgdm9lZ3QgaGV0IHZlcnNpZW51bW1lciB2YW4gZGUgZ2UmaXVtbDtuc3RhbGxlZXJkZSBGb3JtQnVpbGRlci1tb2R1bGUgYWxzIGNvbW1lbnRhYXIgdG9lLCBvbSB0ZSBoZWxwZW4gYmlqIGRlYnVnZ2VuLic7CiRsYW5nWyd0aXRsZV9hZGRfbmV3X2ZpZWxkJ10gPSAnTmlldXcgdmVsZCB0b2V2b2VnZW4nOwokbGFuZ1sndGl0bGVfZm9ybV9zdWJtaXRfYnV0dG9uJ10gPSAnRm9ybXVsaWVydmVyemVuZGtub3AtdGVrc3QnOwokbGFuZ1sndGl0bGVfc3VibWl0X2J1dHRvbl9zYWZldHknXSA9ICdWb2VnIEphdmFzY3JpcHQgYWFuIHZlcnplbmRrbm9wIHRvZSBvbSBtZWVyZGVyZSB2ZXJ6ZW5kaW5nZW4gdGUgdm9vcmtvbWVuJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5X2hlbHAnXSA9ICdWb2VnIHZlaWxpZ2hlaWRzc2NyaXB0IHRvZSc7CiRsYW5nWyd0aXRsZV9mb3JtX25leHRfYnV0dG9uJ10gPSAnRm9ybXVsaWVyICZxdW90O1ZvbGdlbmRlJnF1b3Q7IEtub3AgVGVrc3QgKGdlYnJ1aWt0IGJpaiBmb3JtdWxpZXJlbiB2YW4gbWVlcmRlcmUgcGFnaW5hJiMwMzk7cyknOwokbGFuZ1sndGl0bGVfZm9ybV9wcmV2X2J1dHRvbiddID0gJ0Zvcm11bGllciAmcXVvdDtWb3JpZ2UmcXVvdDsgS25vcCBUZWtzdCAoZ2VicnVpa3QgYmlqIGZvcm11bGllcmVuIHZhbiBtZWVyZGVyZSBwYWdpbmEmIzAzOTtzKSc7CiRsYW5nWyd0aXRsZV9maWVsZF92YWxpZGF0aW9uJ10gPSAnVmVsZCBWYWxpZGF0aWUnOwokbGFuZ1sndGl0bGVfZm9ybV9jc3NfY2xhc3MnXSA9ICdDU1Mga2xhc3NlIHZvb3IgZGl0IGZvcm11bGllcic7CiRsYW5nWyd0aXRsZV9maWVsZF9jc3NfY2xhc3MnXSA9ICdDU1Mga2xhc3NlIHZvb3IgZGl0IHZlbGQnOwokbGFuZ1sndGl0bGVfZm9ybV9yZXF1aXJlZF9zeW1ib2wnXSA9ICdTeW1ib29sIG9tIHZlcmVpc3RlIHZlbGRlbiB0ZSBtYXJrZXJlbic7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZCddID0gJ1ZlcmVpc3QnOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWRfbG9uZyddID0gJ1ZlcmVpcyBlZW4gcmVzcG9ucyB2b29yIGRpdCB2ZWxkJzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWwnXSA9ICdWZXJiZXJnIExhYmVsJzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWxfbG9uZyddID0gJ1ZlcmJlcmcgdmVsZCBuYWFtIG9wIEZvcm11bGllcic7CiRsYW5nWyd0aXRsZV90ZXh0J10gPSAnU3RhdGlzY2hlIHRla3N0IG9tIHdlZXIgdGUgZ2V2ZW4nOwokbGFuZ1sndGl0bGVfZmllbGRfcmVnZXgnXSA9ICdWYWxpZGF0aWUgcmVnZXgnOwokbGFuZ1sndGl0bGVfbGluZXNfdG9fc2hvdyddID0gJ0FhbnRhbCB3ZWVyZ2VnZXZlbiBSZWdlbHMnOwokbGFuZ1snbm9fZGVmYXVsdCddID0gJ0dlZW4gU3RhbmRhYXJkJzsKJGxhbmdbJ3JlZGlyZWN0X2FmdGVyX2FwcHJvdmFsJ10gPSAnU3R1dXIgbmFhciBkZXplIFBhZ2luYSBuYSBnb2Vka2V1cmluZyc7CiRsYW5nWyd0aXRsZV9yZWdleF9oZWxwJ10gPSAnVGhpcyByZWd1bGFyIGV4cHJlc3Npb24gd2lsbCBvbmx5IGJlIHVzZWQgaWYgJnF1b3Q7dmFsaWRhdGlvbiB0eXBlJnF1b3Q7IGlzIHNldCB0byBhIHJlZ2V4LXJlbGF0ZWQgb3B0aW9uLiBJbmNsdWRlIGEgZnVsbCBQZXJsLXN0eWxlIHJlZ2V4LCBpbmNsdWRpbmcgdGhlIHN0YXJ0L3N0b3Agc2xhc2hlcyBhbmQgZmxhZ3MgKGUuZy4sICZxdW90Oy9pbWFnZVwuKFxkKykvaSZxdW90OyknOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWRfYWJicmV2J10gPSAnVmVycGxpY2h0JzsKJGxhbmdbJ3RpdGxlX3RpdGxlX3Bvc2l0aW9uJ10gPSAnVmVsZCBUaXRlbCBQb3NpdGllIChhbGxlZW4gYmlqIG5vbi1DU1MgTGF5b3V0KSc7CiRsYW5nWyd0aXRsZV90YWJsZV9sYXlvdXRfbGVmdCddID0gJ1RpdGVsIExpbmtzJzsKJGxhbmdbJ3RpdGxlX3RhYmxlX2xheW91dF9hYm92ZSddID0gJ1RpdGVsIEJvdmVuJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzJ10gPSAnVmVyYmVyZyBGb3V0ZW4nOwokbGFuZ1sndGl0bGVfZm9ybV9kaXNwbGF5dHlwZSddID0gJ0Zvcm11bGllciBXZWVyZ2F2ZSBUeXBlJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzX2xvbmcnXSA9ICdWb29ya29tIGRlYnVnIC8gZm91dCBtZWxkaW5nZW4gdm9vciBnZWJydWlrZXJzLic7CiRsYW5nWyd0aXRsZV9lbWFpbF90ZW1wbGF0ZSddID0gJ0UtbWFpbCBTamFibG9vbic7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX3NpemUnXSA9ICdNYXhpbWFsZSB1cGxvYWQgYmVzdGFuZHNncm9vdHRlIChraWxvYnl0ZXMpJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZV9sb25nJ10gPSAnRGV6ZSBiZWdyZW56aW5nIGlzIGVlbiB0b2V2b2VnaW5nIG9wIGRlIGJlZ3JlbnppbmdlbiBkaWUgemlqbiBpbmdlc3RlbGQgaW4gZGUgcGhwLSBvZiB3ZWJzZXJ2ZXJjb25maWd1cmF0aWUuJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zJ10gPSAnVG9lZ2VzdGFuZSBleHRlbnNpZXMnOwokbGFuZ1sndGl0bGVfcGVybWl0dGVkX2V4dGVuc2lvbnNfbG9uZyddID0gJ0VudGVyIGEgY29tbWEtc2VwYXJhdGVkIGxpc3QsIGV4Y2x1ZGluZyB0aGUgZG90IChlLmcuLCAmcXVvdDtqcGcsZ2lmLGpwZWcmcXVvdDspLiBTcGFjZXMgd2lsbCBiZSBpZ25vcmVkLiBMZWF2aW5nIHRoaXMgYmxhbmsgbWVhbnMgdGhlcmUgd2lsbCBiZSBubyByZXN0cmljdGlvbnMuJzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnMnXSA9ICdSZXN0cmljdGllcyB3ZWVyZ2V2ZW4/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnNfbG9uZyddID0gJ0dyb290dGUgZW4gZXh0c3RlbnNpZSBiZXBlcmtpbmdlbiB0b25lbiBiaWogaGV0IHVwbG9hZCB2ZWxkPyc7CiRsYW5nWyd0aXRsZV9mb3JtX3RlbXBsYXRlJ10gPSAnU2phYmxvb24gdm9vciBXZWVyZ2F2ZSBGb3JtdWxpZXInOwokbGFuZ1sndGl0bGVfcGFnZV94X29mX3knXSA9ICdQYWdpbmEgJXMgdmFuICVzJzsKJGxhbmdbJ3RpdGxlX25vX2FkdmFuY2VkX29wdGlvbnMnXSA9ICdWZWxkIGhlZWZ0IGdlZW4gZ2VhdmFuY2VlcmRlIG9wdGllcy4nOwokbGFuZ1sndGl0bGVfZm9ybV91bnNwZWNpZmllZCddID0gJ0dldG9vbmRlIHRla3N0IGJpaiBvbmdlc3BlY2lmaWNlZXJkZSB2ZWxkIHdhYXJkZXMnOwokbGFuZ1sndGl0bGVfZW5hYmxlX2Zhc3RhZGRfbG9uZyddID0gJ1NuZWwgdmVsZCB0b2V2b2VnZW4gdWl0a2xhcG1lbnUgaW5zY2hha2VsZW4gdm9vciBmb3JtdWxpZXJlbj8nOwokbGFuZ1sndGl0bGVfZW5hYmxlX2Zhc3RhZGQnXSA9ICdTbmVsIHZlbGQgdG9ldm9lZ2VuIHVpdGtsYXBtZW51IGluc2NoYWtlbGVuPyc7CiRsYW5nWyd0aXRsZV9mYXN0YWRkJ10gPSAnU25lbCB2ZWxkIHRvZXZvZWdlbic7CiRsYW5nWydsaW5rX2xhYmVsJ10gPSAnTGlua2xhYmVsJzsKJGxhbmdbJ2xpbmtfZGVzdGluYXRpb24nXSA9ICdMaW5rIGRvZWwgVVJMJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfc2V0J10gPSAnU3RhbmRhYXJkIGdlc2VsZWN0ZWVyZD8nOwokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX3RlbXBsYXRlJ10gPSAnVmFyaWFiZWxlbiB2b29yIHNqYWJsb29uJzsKJGxhbmdbJ2hlbHBfc3VibWlzc2lvbl9kYXRlJ10gPSAnRGF0dW0gdmFuIHZlcnplbmRpbmcnOwokbGFuZ1snaGVscF9zZXJ2ZXJfbmFtZSddID0gJ1NlcnZlcic7CiRsYW5nWydoZWxwX3N1Yl9zb3VyY2VfaXAnXSA9ICdJUCBhZHJlcyc7CiRsYW5nWydoZWxwX3N1Yl91cmwnXSA9ICdVUkwgdmFuIGRlIHBhZ2luYSc7CiRsYW5nWydoZWxwX290aGVyX2ZpZWxkcyddID0gJ0FuZGVyZSB2ZWxkZW4gemlqbiBiZXNjaGlrYmFhciBuYWRhdCB6ZSB6aWpuIHRvZWdldm9lZ2QnOwokbGFuZ1snaGVscF9kYXRlX2Zvcm1hdCddID0gJ1NlZSA8YSBocmVmPSZxdW90O2h0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24uZGF0ZS5waHAmcXVvdDsgdGFyZ2V0PV9ORVc+dGhlIFBIUCBNYW51YWw8L2E+IGZvciBmb3JtYXR0aW5nIGhlbHAuJzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVfbmFtZSddID0gJ1ZhcmlhYmVsZSc7CiRsYW5nWydoZWxwX2Zvcm1fZmllbGQnXSA9ICdHZXJlcHJlc2VudGVlcmQgVmVsZCc7CiRsYW5nWydsaW5rX2JhY2tfdG9fZm9ybSddID0gJyZsYXF1bzsgVGVydWcgbmFhciBoZXQgZm9ybXVsaWVyJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfdGVtcGxhdGUnXSA9ICdWb29yYmVlbGQgU2phYmxvb24gR2VuZXJlcmVuJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaGVhZGVyJ10gPSAnVm9vcmJlZWxkIEhlYWRlciBHZW5lcmVyZW4nOwokbGFuZ1snaGVscF90YWJfc3ltYm9sJ10gPSAnZWVuIHRhYiB0ZWtlbic7CiRsYW5nWyd0aXRsZV9maWxlX3RlbXBsYXRlJ10gPSAnU2phYmxvb24gdm9vciBlbmtlbGUgcmVnZWwgb2Ygb3V0cHV0IGJlc3RhbmQnOwokbGFuZ1sndGl0bGVfZmlsZV9oZWFkZXInXSA9ICdTamFibG9vbiB2b29yIGRlIGhlYWRlciB2YW4gaGV0IG91dHB1dCBiZXN0YW5kJzsKJGxhbmdbJ3RpdGxlX2NvbmZpcm1hdGlvbl91cmwnXSA9ICdVUkwgb20gdGUgIGtsaWtrZW4gdm9vciBmb3JtdWxpZXIgdmFsaWRhdGllJzsKJGxhbmdbJ25vX3JlZmVycmVyX2luZm8nXSA9ICdHZWVuIEhUVFBfUkVGRVJFUiBpbmZvcm1hdGllIGJlc2NoaWtiYWFyICh3YWFyc2NoaWpuaWprIGRvb3IgaGV0IGdlYnJ1aWsgdmFuIEUtbWFpbCBHZWJydWlrZXIgVmFsaWRhdGllKSc7CiRsYW5nWyd2YWxpZGF0aW9uX3BhcmFtX2Vycm9yJ10gPSAnVmFsaWRhdGllIFBhcmFtZXRlciBGb3V0LiBab3JnIGVydm9vciBkYXQgZGUgVVJMIHZhbiB1dyBFLW1haWwgY29ycmVjdCBnZWtvcGllZXJkIHdvcmR0ISc7CiRsYW5nWyd2YWxpZGF0aW9uX3Jlc3BvbnNlX2Vycm9yJ10gPSAnVmFsaWRhdGllIFJlYWN0aWUgRm91dC4gWm9yZyBlcnZvb3IgZGF0IGRlIFVSTCB2YW4gdXcgRS1tYWlsIGNvcnJlY3QgZ2Vrb3BpZWVyZCB3b3JkdCEnOwokbGFuZ1sndmFsaWRhdGlvbl9ub19maWVsZF9lcnJvciddID0gJ1ZhbGlkYXRpb24gUmVhY3RpZSBGb3V0LiBHZWVuIEUtbWFpbCB2YWxpZGF0aWUgdmVsZGVuIGluIGRpdCBmb3JtdWxpZXIhJzsKJGxhbmdbJ3RpdGxlX2RhdGVfZm9ybWF0J10gPSAnRGF0ZSBGb3JtYXQgKHN0YW5kYXJkIDxhIGhyZWY9JnF1b3Q7aHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5kYXRlLnBocCZxdW90Oz5QSFAgRGF0ZSBGb3JtYXRzPC9hPiknOwokbGFuZ1sndGl0bGVfdXNlX3d5c2l3eWcnXSA9ICdHZWJydWlrIFdZU0lXWUcgZWRpdG9yIHZvb3IgdGVrc3R2ZWxkPyc7CiRsYW5nWydkaXNwdHlwZV90YWJsZSddID0gJ1RhYmVsL0NTUyc7CiRsYW5nWydkaXNwdHlwZV9jc3MnXSA9ICdQdXVyIENTUyc7CiRsYW5nWydkaXNwdHlwZV90ZW1wbGF0ZSddID0gJ0FhbmdlcGFzdCBTamFibG9vbic7CiRsYW5nWydhZG1pbmRlc2MnXSA9ICdCZWhlZXIgdmFuIGludGVyYWN0aWV2ZSBGb3JtdWxpZXJlbic7CiRsYW5nWydkYXRlX2phbnVhcnknXSA9ICdqYW51YXJpJzsKJGxhbmdbJ2RhdGVfZmVicnVhcnknXSA9ICdmZWJydWFyaSc7CiRsYW5nWydkYXRlX21hcmNoJ10gPSAnbWFhcnQnOwokbGFuZ1snZGF0ZV9hcHJpbCddID0gJ2FwcmlsJzsKJGxhbmdbJ2RhdGVfbWF5J10gPSAnbWVpJzsKJGxhbmdbJ2RhdGVfanVuZSddID0gJ2p1bmknOwokbGFuZ1snZGF0ZV9qdWx5J10gPSAnanVsaSc7CiRsYW5nWydkYXRlX2F1Z3VzdCddID0gJ2F1Z3VzdHVzJzsKJGxhbmdbJ2RhdGVfc2VwdGVtYmVyJ10gPSAnc2VwdGVtYmVyJzsKJGxhbmdbJ2RhdGVfb2N0b2JlciddID0gJ29rdG9iZXInOwokbGFuZ1snZGF0ZV9ub3ZlbWJlciddID0gJ25vdmVtYmVyJzsKJGxhbmdbJ2RhdGVfZGVjZW1iZXInXSA9ICdkZWNlbWJlcic7CiRsYW5nWydzdWJtaXNzaW9uX2Vycm9yJ10gPSAnU29ycnkhIEVyIGlzIGVlbiBmb3V0IG9wZ2V0cmVkZW4gdGlqZGVucyBkZSBmb3JtdWxpZXJ2ZXJ3ZXJraW5nLic7CiRsYW5nWydzdWJtaXRfZXJyb3InXSA9ICdGb3JtQnVpbGRlciB2ZXJ6ZW5kaW5ncyBmb3V0OiAlcyc7CiRsYW5nWyd1cGxvYWRzX2Vycm9yJ10gPSAnRm91dCBiaWogaGV0IHZlcnN0dXJlbiB2YW4gaGV0IGJlc3RhbmQgbmFhciBkZSB1cGxvYWRzIG1vZHVsZTogJXMnOwokbGFuZ1snbm91cGxvYWRzX2Vycm9yJ10gPSAnRGUgdXBsb2FkcyBtb2R1bGUga29uIG5pZXQgd29yZGVuIGdldm9uZGVuJzsKJGxhbmdbJ3VwbG9hZF9hdHRhY2hfZXJyb3InXSA9ICdVcGxvYWQvQmlqbGFnZSBmb3V0IGJpaiBiZXN0YW5kICVzICh0bXBfbmFtZTogJXMsIHR5cGUgJXMpJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3JfZmlsZV9sb2NrJ10gPSAnRm91dC4gS2FuIGdlZW4gbG9jayB2b29yIGJlc3RhbmQga3Jpamdlbi4nOwokbGFuZ1snZW1haWxfZGVmYXVsdF90ZW1wbGF0ZSddID0gJ0Zvcm1CdWlsZGVyIFZlcnplbmRpbmcnOwokbGFuZ1snZW1haWxfdGVtcGxhdGVfbm90X3NldCddID0gJzxici8+RW1haWwgU2phYmxvb24gbm9nIG5pZXQgaW5nZXN0ZWxkISc7CiRsYW5nWydtaXNzaW5nX2Ntc19tYWlsZXInXSA9ICdGb3JtQnVpbGRlcjogS2FuIHZlcmVpc3RlIG1vZHVsZSBDTVNNYWlsZXIgbmlldCB2aW5kZW4hJzsKJGxhbmdbJ3VzZXJfYXBwcm92ZWRfc3VibWlzc2lvbiddID0gJ0dlYnJ1aWtlciBnb2VkZ2VrZXVyZGUgc3VibWlzc2llICVzIHZhbiAlcyc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J10gPSAnR2ViZXVydGVuaXMgdmVyc3R1dXJkIGFscyBlZW4gRm9ybUJ1aWxkZXIgZm9ybXVsaWVyIHZlcnpvbmRlbiB3b3JkdCc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InXSA9ICdHZWJldXJ0ZW5pcyB2ZXJzdHV1cmQgYWxzIGVlbiBmb3V0IG9wdHJlZWR0IGJpaiBoZXQgdmVyemVuZGVuIHZhbiBlZW4gRm9ybUJ1aWxkZXIgZm9ybXVsaWVyJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1EaXNwbGF5J10gPSAnR2ViZXVydGVuaXMgdmVyc3R1dXJkIGFscyBlZW4gRm9ybUJ1aWxkZXIgZm9ybXVsaWVyIHdvcmR0IGdldG9vbmQnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdCddID0gJzxwPkdlYmV1cnRlbmlzIHZlcnN0dXVyZCBhbHMgZWVuIEZvcm1CdWlsZGVyIGZvcm11bGllciB2ZXJ6b25kZW4gd29yZHQuPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIEZvcm11bGllciBuYWFtIChzdHJpbmcpPC9saT4NCjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gSW50ZXJuIGZvcm11bGllciBJRCAoaW50KTwvbGk+DQo8L3VsPiAnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdEVycm9yJ10gPSAnPHA+R2ViZXVydGVuaXMgdmVyc3R1dXJkIGFscyBlZW4gZm91dCBvcHRyZWVkdCBiaWogaGV0IHZlcnplbmRlbiB2YW4gZWVuIEZvcm1CdWlsZGVyIGZvcm11bGllcjwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBGb3JtdWxpZXIgbmFhbSAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIEludGVybiBmb3JtdWxpZXIgSUQgKGludCk8L2xpPg0KPGxpPjxlbT5lcnJvcjwvZW0+IC0gRWVuIGxpanN0IHZhbiBhbGxlIGJla2VuZGUgZm91dGVuIChzdHJpbmcpPC9saT4NCjwvdWw+ICc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtRGlzcGxheSddID0gJzxwPkdlYmV1cnRlbmlzIHZlcnN0dXVyZCBhbHMgZWVuIEZvcm1CdWlsZGVyIGZvcm11bGllciB3b3JkdCBnZXRvb25kPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIEZvcm11bGllciBuYWFtIChzdHJpbmcpPC9saT4NCjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gSW50ZXJuIGZvcm11bGllciBJRCAoaW50KTwvbGk+DQo8L3VsPiAnOwokbGFuZ1sncG9zdF9pbnN0YWxsJ10gPSAnPHA+TWFrZSBzdXJlIHRvIHNldCB0aGUgJnF1b3Q7TW9kaWZ5IEZvcm1zJnF1b3Q7IHBlcm1pc3Npb25zDQpvbiB1c2VycyB3aG8gd2lsbCBiZSBhZG1pbmlzdGVyaW5nIGZlZWRiYWNrIGZvcm1zLiBBbHNvLCBpZiB5b3UmIzAzOTtsbCBiZSBlbWFpbGluZyBmb3JtDQpyZXN1bHRzLCBiZSBzdXJlIHRvIHVwZGF0ZSB0aGUgQ29uZmlndXJhdGlvbiBhcHByb3ByaWF0ZWx5LjwvcD4NCjxwPlBsZWFzZSBiZSBhd2FyZSB0aGF0IGEgZmVlZGJhY2sgZm9ybSBzaG91bGQgbm90IGJlIGFjdGl2ZSAoZS5nLiwgdXNhYmxlIGJ5IHRoZSBwdWJsaWMpIHdoaWxlDQp5b3UgYXJlIHN0aWxsIGVkaXRpbmcgdGhlIGZvcm0uIFlvdSBzaG91bGQgY3JlYXRlIHRoZSBmb3JtLCBhbmQgcGxhY2UgdGhlIHRhZyBpbnRvIGFuIGFjdGl2ZQ0KY29udGVudCBwYWdlIG9ubHkgd2hlbiB5b3UgaGF2ZSBmaW5pc2hlZCBlZGl0aW5nLiBPdGhlcndpc2UsIGVycm9uZW91cyByZXN1bHRzIGNvdWxkIGJlIHJldHVybmVkLjwvcD4NCjxwPkFkZGl0aW9uYWxseSwgdGhpcyB2ZXJzaW9uIGRvZXMgbm90IHN1cHBvcnQgcGFyYWxsZWwgZWRpdGluZyBvZiBmb3Jtcy4gUGxlYXNlIHRha2UgY2FyZSB0aGF0DQpvbmx5IG9uZSBhZG1pbiBpcyBlZGl0aW5nIGEgZ2l2ZW4gZm9ybSBhdCBhIGdpdmVuIHRpbWUuPC9wPic7CiRsYW5nWydoZWxwJ10gPSAnPGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+DQo8cD5UaGUgRm9ybSBCdWlsZGVyIE1vZHVsZSBhbGxvd3MgeW91IHRvIGNyZWF0ZSBmZWVkYmFjayBmb3JtcyAoaW4gZmFjdCwgaXQmIzAzOTtzIGEgcmVwbGFjZW1lbnQgb2YgdGhlIG9yaWdpbmFsIEZlZWRiYWNrIEZvcm0gbW9kdWxlKSwgd2l0aCB0aGUgYWRkZWQgcG93ZXIgb2YgZGF0YWJhc2Ugc3RvcmFnZS4gV2l0aCBpdHMgY29tcGFuaW9uIG1vZHVsZSBGb3JtIEJyb3dzZXIsIHlvdSBjYW4gdXNlIGl0IHRvIGNyZWF0ZSBzaW1wbGUgZGF0YWJhc2UgYXBwbGljYXRpb25zLjwvcD4NCjxwPlRoZSBmb3JtcyBjcmVhdGVkIHVzaW5nIHRoZSBGb3JtIEJ1aWxkZXIgbWF5IGJlIGluc2VydGVkDQppbnRvIHRlbXBsYXRlcyBhbmQvb3IgY29udGVudCBwYWdlcy4gRm9ybXMgbWF5IGNvbnRhaW4gbWFueSBraW5kcyBvZiBpbnB1dHMsIGFuZCBtYXkgaGF2ZQ0KdmFsaWRhdGlvbiBhcHBsaWVkIHRvIHRoZXNlIGlucHV0cy4gVGhlIHJlc3VsdHMgb2YgdGhlc2UgZm9ybXMgbWF5IGJlIGhhbmRsZWQgaW4gYSB2YXJpZXR5IG9mIHdheXMuPC9wPg0KDQo8aDM+SG93IERvIEkgVXNlIGl0PzwvaDM+DQo8UD5JbnN0YWxsIGl0LCBhbmQgcG9rZSBhcm91bmQgdGhlIG1lbnVzLiBQbGF5IHdpdGggaXQuIFRyeSBjcmVhdGluZyBmb3JtcywgYW5kIGFkZGluZyB0aGVtIHRvIHlvdXIgY29udGVudC4NCklmIHlvdSBnZXQgc3R1Y2ssIGNoYXQgd2l0aCBtZSBvbiB0aGUgI2NtcyBJUkMgY2hhbm5lbCwgcG9zdCB0byB0aGUgZm9ydW0sIHNlbmQgbWUgZW1haWwsIG9yLCBpZiB5b3UmIzAzOTtyZQ0KcmVhbGx5IGRlc3BlcmF0ZSwgcmVhZCB0aGUgcmVzdCBvZiB0aGlzIHBhZ2UuPC9QPg0KDQo8aDM+SG93IERvIEkgQ3JlYXRlIGEgRm9ybTwvaDM+DQo8cD5JbiB0aGUgQ01TIEFkbWluIE1lbnUsIHlvdSBzaG91bGQgZ2V0IGEgbmV3IG1lbnUgaXRlbSBjYWxsZWQgRm9ybUJ1aWxkZXIuIENsaWNrIG9uIHRoaXMuIE9uIHRoZSBwYWdlDQp0aGF0IGdldHMgc2hvd24sIHRoZXJlIGFyZSBvcHRpb25zIChhdCB0aGUgYm90dG9tIG9mIHRoZSBsaXN0IG9mIEZvcm1zKSB0byBBZGQgYSBOZXcgRm9ybSBvciBNb2RpZnkNCkNvbmZpZ3VyYXRpb24uPC9wPg0KDQo8aDM+QWRkaW5nIGEgRm9ybSB0byBhIFBhZ2U8L2gzPg0KPHA+SW4gdGhlIG1haW4gRm9ybUJ1aWxkZXIgYWRtaW4gcGFnZSwgeW91IGNhbiBzZWUgYW4gZXhhbXBsZSBvZiB0aGUgdGFnIHVzZWQgdG8gZGlzcGxheSBlYWNoIGZvcm0uIEl0IGxvb2tzDQpzb21ldGhpbmcgbGlrZSB7Y21zX21vZHVsZSBtb2R1bGU9JiMwMzk7Rm9ybUJ1aWxkZXImIzAzOTsgZm9ybT0mIzAzOTtzYW1wbGVfZm9ybSYjMDM5O308L3A+DQo8cD5CeSBjb3B5aW5nIHRoaXMgdGFnIGludG8gdGhlIGNvbnRlbnQgb2YgYSBwYWdlLCBvciBpbnRvIGEgdGVtcGxhdGUsIHdpbGwgY2F1c2UgdGhhdCBmb3JtIHRvIGJlIGRpc3BsYXllZC4NCkluIHRoZW9yeSwgeW91IGNhbiBoYXZlIG11bHRpcGxlIGZvcm1zIG9uIGEgcGFnZSBpZiB5b3UgcmVhbGx5IHdhbnQgdG8uIEJlIGNhcmVmdWwgd2hlbiBwYXN0aW5nIHRoZSB0YWcNCmludG8gYSBwYWdlJiMwMzk7cyBjb250ZW50IGlmIHlvdSB1c2UgYSBXWVNJV1lHIGVkaXRvciBzdWNoIGFzIFRpbnlNQ0Ugb3IgSFRNTEFyZWEuIFRoZXNlIGVkaXRvcnMgbWF5IHN0ZWFsdGhpbHkNCmNoYW5nZSB0aGUgcXVvdGUgbWFya3MgKCZxdW90OykgaW50byBIVE1MIGVudGl0aWVzICgmYW1wO3F1b3Q7KSwgYW5kIHRoZSBmb3JtcyB3aWxsIG5vdCBzaG93IHVwLiBUcnkgdXNpbmcNCnNpbmdsZSBxdW90ZXMgKCYjMDM5Oykgb3IgZWRpdGluZyB0aGUgSFRNTCBkaXJlY3RseS4NCg0KPGgzPldvcmtpbmcgd2l0aCBGb3JtczwvaDM+DQo8cD5CeSBjbGlja2luZyBvbiBhIEZvcm0mIzAzOTtzIG5hbWUsIHlvdSBlbnRlciB0aGUgRm9ybSBFZGl0IHBhZ2UuIFRoZXJlIGFyZSBzZXZlcmFsIHRhYnMsIHdoaWNoIGFyZSBkZXNjcmliZWQgYmVsb3c6PC9wPg0KPGg0Pk1haW48L2g0Pg0KPHA+VGhpcyBpcyB0aGUgbWFpbiBwbGFjZSB5b3UmIzAzOTtsbCB3b3JrIG9uIHlvdXIgZm9ybS4gSGVyZSwgeW91IGdpdmUgaXQgYSBuYW1lLCBhbiBhbGlhcyAod2hpY2ggaXMgdXNlZCB0byBpZGVudGlmeSBpdCBmb3IgcGxhY2luZyBpdCBpbiBhIHBhZ2Ugb3IgdGVtcGxhdGUpLCBhbmQsIG9wdGlvbmFsbHksIGEgQ1NTIGNsYXNzIHdpdGggd2hpY2ggdG8gd3JhcCB0aGUgd2hvbGUgdGhpbmcuIFlvdSBhbHNvIHNlbGVjdCB0aGUgZGlzcGxheSB0eXBlLiBZb3VyIGNob2ljZXMgYXJlOjwvcD4NCjx1bD4NCjxsaT5UYWJsZS9DU1MuIFRoZSBmb3JtIGlzIGNyZWF0ZWQgdXNpbmcgSFRNTCB0YWJsZXMuIElmIHlvdSBkb24mIzAzOTt0IGtub3cgd2hhdCB0byBjaG9vc2UsIHRoaXMgaXMgdGhlIGVhc2llc3Qgb3B0aW9uLCBhbmQgd2lsbCBwcm9iYWJseSBkbyBtb3N0IG9mIHdoYXQgeW91IHdhbnQuIFlvdSBjYW4gc3RpbGwgdXNlIENTUyB0byBzdHlsZSB0aGUgZm9ybSBpZiB5b3Ugd2FudC48L2xpPg0KPGxpPlB1cmUgQ1NTLiBUaGUgZm9ybSBpcyBjcmVhdGVkLCB3aXRoIGFsbCB0aGUgZmllbGRzIHdyYXBwZWQgaW4gPGRpdj4gdGFncy4gWW91IGNhbiB0aGVuIHN0eWxlIHRoZSBmb3JtIGFzIHlvdSBzZWUgZml0LjwvbGk+DQo8bGk+Q3VzdG9tIFRlbXBsYXRlLiBCYXNpY2FsbHksIHlvdSBnZXQgYSBzbWFydHkgdGVtcGxhdGUsIGEgYnVuY2ggb2YgdmFyaWFibGVzLCBhbmQgeW91JiMwMzk7cmUgb24geW91ciBvd24uIFlvdSBoYXZlIHRoZSBwb3dlciB0byBjcmVhdGUgd2hhdGV2ZXIgeW91IHdhbnQuPC9saT4NCjwvdWw+DQo8cD5CZWxvdyB0aGlzLCBpZiB5b3UgaGF2ZSBpdCBlbmFibGVkLCBpcyB0aGUgJnF1b3Q7ZmFzdCBmaWVsZCBhZGRlciZxdW90OyBwdWxsZG93biwgdGhhdCBsZXRzIHlvdSBxdWlja2x5IGFkZCBhIGZpZWxkIHRvIHRoZSBlbmQgb2YgeW91ciBmb3JtIGJ5IHNlbGVjdGluZyB0aGUgZmllbGQgdHlwZS48L3A+DQo8cD5CZWxvdyB0aGlzIGlzIHRoZSBsaXN0IG9mIGZpZWxkcyB0aGF0IG1ha2UgdXAgeW91ciBmb3JtLiBNb3JlIGRldGFpbCBvbiB0aGlzIGlzIGRlc2NyaWJlZCBiZWxvdy48L3A+DQo8aDQ+Rm9ybSBTZXR0aW5nczwvaDQ+DQo8cD5Gb3JtIFNldHRpbmdzIGFsbG93cyB5b3UgdG8gY3VzdG9taXplIGEgbG90IG9mIHRoZSBtZXNzYWdlcyBhbmQgdGV4dCBpbiB0aGUgY29udHJvbHMgZm9yIHlvdXIgZm9ybS4gSXQgYWxzbyBhbGxvd3MgeW91IHRvIHBpY2sgYSBwYWdlIHRvIHJlZGlyZWN0IHVzZXJzIHRvIGFmdGVyIGEgc3VjY2Vzc2Z1bCBmb3JtIHN1Ym1pc3Npb24uPC9wPg0KPGg0PlRhYmxlLWJhc2VkIExheW91dCBPcHRpb25zPC9oND4NCjxwPlRhYmxlLWxheW91dHMgaGF2ZSBnb3R0ZW4gc2ltcGxlciwgc28geW91ciBvbmx5IG9wdGlvbiBoZXJlIGlzIHRoZSBwb3NpdGlvbiBvZiB0aGUgZmllbGQgbmFtZXMgcmVsYXRpdmUgdG8gdGhlIGlucHV0cy4gSWYgeW91JiMwMzk7cmUgdXNpbmcgYSBUYWJsZS9DU1MgbGF5b3V0LCB5b3UgY2FuIHVzZSB0aGlzIHRhYiB0byBzZWxlY3QgdGhlIGZpZWxkIG5hbWUgcG9zaXRpb25zLjwvcD4NCjxoND5UZW1wbGF0ZSBMYXlvdXQgT3B0aW9uczwvaDQ+DQo8cD5UaGlzIGlzIHdoZXJlIHlvdSBkbyB5b3VyIGN1c3RvbWl6YXRpb24gd29yayBpZiB5b3VyIGZvcm0gdXNlcyBhIEN1c3RvbSBUZW1wbGF0ZS48L3A+DQo8cD5UaGUgZm9ybSBzaG91bGQgZGVmYXVsdCB0byBhIGEgQ3VzdG9tIHRlbXBsYXRlIHRoYXQgZG9jdW1lbnRzIHRoZSBzbWFydHkgdGFncyBhdmFpbGFibGUgdG8geW91LiBVbmxlc3MgeW91JiMwMzk7cmUgYSBzbWFydHkgZXhwZXJ0LCB5b3UgcHJvYmFibHkgZG9uJiMwMzk7dCB3YW50IHRvIG1lc3MgYXJvdW5kIHdpdGggdGhpcy4gSWYgeW91IGFyZSBhIHNtYXJ0eSBleHBlcnQsIHRoaXMgaXMgd2hlcmUgeW91IGNhbiB1bmxlYXNoIHlvdXIgbWFnaWMuPC9wPg0KPGgzPkFkZGluZyBGaWVsZHMgdG8geW91ciBGb3JtPC9oMz4NCjxwPlRoZSB0eXBlcyBvZiBmaWVsZHMgdGhhdCBhcmUgY3VycmVudGx5IHN1cHBvcnRlZCBmaXQgaW50byBmb3VyIGdyb3Vwczogc3RhbmRhcmQgaW5wdXQgZmllbGRzLCBkaXNwbGF5IGNvbnRyb2wgZmllbGRzLCBlbWFpbC1zcGVjaWZpYyBmaWVsZHMsIGFuZCBmb3JtIHJlc3VsdCBoYW5kbGluZyBmaWVsZHMgKGFsc28gY2FsbGVkIEZvcm0gRGlzcG9zaXRpb25zIGluIHBsYWNlcyk6PC9wPg0KPHVsPg0KPGxpPlN0YW5kYXJkIElucHV0IEZpZWxkcyAtIHRoZXNlIGFyZSBpbnB1dHMgdGhhdCBhbGxvdyBlbnRyeSBvZiB0eXBpY2FsIGZvcm0gZWxlbWVudHM7IHRleHQgaW5wdXRzLCByYWRpbyBidXR0b25zLCBldGMuPC9saT4NCjxsaT5EaXNwbGF5IENvbnRyb2wgRmllbGRzIC0gdGhlc2UgaW5wdXQgY29udHJvbCBob3cgdGhlIHVzZXIgd2lsbCBzZWUgdGhlIGRpc3BsYXkgb2YgdGhlIGZvcm07IHBhZ2UgYnJlYWtzLCBzdGF0aWMgdGV4dCwgZXRjLjwvbGk+DQo8bGk+RW1haWwtc3BlY2lmaWMgRmllbGRzIC0gc29tZSBmb3JtcyBnZW5lcmF0ZSBlbWFpbCwgYW5kIGVtYWlsLXNwZWNpZmljIGZpZWxkcyBjYW4gYWx0ZXIgYXR0cmlidXRlcyBvZiB0aGUgZW1haWxzIHNlbnQuPC9saT4NCjxsaT5Gb3JtIERpc3Bvc2l0aW9ucyAtIFRoZXNlIGRldGVybWluZSB3aGF0IGhhcHBlbnMgd2hlbiB0aGUgdXNlcg0Kc3VibWl0cyB0aGUgZm9ybTsgZm9yIGVhY2ggcmVzdWx0IGhhbmRsaW5nIGZpZWxkLCBzb21lIG1ldGhvZCBvZiB0cmFuc21pdHRpbmcsIHNhdmluZywgb3IgZW1haWxpbmcgdGhlDQpmb3JtIGNvbnRlbnRzIHRha2VzIHBsYWNlLiBBIGZvcm0gbWF5IGhhdmUgbXVsdGlwbGUgZm9ybSBkaXNwb3NpdGlvbnMuPC9saT4NCjwvdWw+DQo8cD5Gb3JtIGZpZWxkcyBhcmUgYXNzaWduZWQgbmFtZXMuIFRoZXNlIG5hbWVzIGlkZW50aWZ5IHRoZSBmaWVsZCwgbm90IG9ubHkgb24gdGhlIHNjcmVlbiBhcyBsYWJlbHMgZm9yIHRoZSB1c2VyLA0KYnV0IGluIHRoZSBkYXRhIHdoZW4gaXQmIzAzOTtzIHN1Ym1pdHRlZCBzbyB5b3Uga25vdyB3aGF0IHRoZSB1c2VyIGlzIHJlc3BvbmRpbmcgdG8uIFBocmFzaW5nIHRoZSBuYW1lIGxpa2UgYSBxdWVzdGlvbg0KaXMgYSBoYW5keSB3YXkgb2YgbWFraW5nIGl0IGNsZWFyIHRvIHRoZSB1c2VyIHdoYXQgaXMgZXhwZWN0ZWQuIFNpbWlsYXJseSwgbWFueSBmaWVsZHMgaGF2ZSBib3RoIE5hbWVzIGFuZCBWYWx1ZXMuDQpUaGUgTmFtZXMgYXJlIHdoYXQgZ2V0cyBzaG93biB0byB0aGUgdXNlcjsgdGhlIFZhbHVlIGlzIHdoYXQgZ2V0cyBzYXZlZCBvciB0cmFuc21pdHRlZCB3aGVuIHRoZSB1c2VyIHN1Ym1pdHMNCnRoZSBmb3JtLiBUaGUgVmFsdWVzIGFyZSBuZXZlciBzZWVuIGJ5IHRoZSB1c2VyLCBub3IgYXJlIHRoZXkgdmlzaWJsZSBpbiB0aGUgSFRNTCwgc28gaXQmIzAzOTtzIHNhZmUgdG8gdXNlIGZvcg0KZW1haWwgYWRkcmVzc2VzIGFuZCBzdWNoLjwvcD4NCjxwPlNvbWUgZmllbGRzIGNhbiBoYXZlIG11bHRpcGxlIHZhbHVlcywgb3IgbXVsdGlwbGUgbmFtZS92YWx1ZSBwYWlycy4gV2hlbiB5b3UgZmlyc3QgY3JlYXRlIHN1Y2ggYSBmaWVsZCwNCnRoZXJlIG1heSBub3QgYmUgc3VmZmljaWVudCBpbnB1dHMgZm9yIHlvdSB0byBzcGVjaWZ5IGFsbCB0aGUgdmFsdWVzIHlvdSB3YW50LiBUbyBnZXQgbW9yZSBzcGFjZSBmb3IgaW5wdXR0aW5nDQp0aGVzZSB2YWx1ZXMsIHVzZSB0aGUgYnV0dG9ucyBhdCB0aGUgYm90dG9tIG9mIHRoZSBwYWdlIGZvciBhZGRpbmcgb3B0aW9ucy48L3A+DQo8cD5GaWVsZHMgY2FuIGJlIGFzc2lnbmVkIHZhbGlkYXRpb24gcnVsZXMsIHdoaWNoIHZhcnkgYWNjb3JkaW5nIHRvIHRoZSB0eXBlIG9mIHRoZSBmaWVsZC4gVGhlc2UgcnVsZXMgaGVscA0KZW5zdXJlIHRoYXQgdGhlIHVzZXIgZW50ZXJzIHZhbGlkIGRhdGEuIFRoZXkgbWF5IGFsc28gYmUNCnNlcGFyYXRlbHkgbWFya2VkICZxdW90O1JlcXVpcmVkJnF1b3Q7LCB3aGljaCB3aWxsIGZvcmNlIHRoZSB1c2VyIHRvIGVudGVyIGEgcmVzcG9uc2UuPC9wPg0KPHA+RmllbGRzIGFsc28gbWF5IGJlIGFzc2lnbmVkIGEgQ1NTIGNsYXNzLiBUaGlzIHNpbXBseSB3cmFwcyB0aGUgaW5wdXQgaW4gYSBkaXYgd2l0aCB0aGF0IGNsYXNzLCBzbyBhcyB0byBhbGxvdw0KY3VzdG9taXplZCBsYXlvdXRzLiBUbyB1c2UgdGhpcyBlZmZlY3RpdmVseSwgeW91IG1heSBuZWVkIHRvICZxdW90O3ZpZXcgc291cmNlJnF1b3Q7IG9uIHRoZSBnZW5lcmF0ZWQgZm9ybSwgYW5kIHRoZW4NCndyaXRlIHlvdXIgQ1NTLjwvcD4NCjx1bD4NCjxsaT5TdGFuZGFyZCBJbnB1dHMNCjx1bD48bGk+VGV4dCBJbnB1dC4gVGhpcyBpcyBhIHN0YW5kYXJkIHRleHQgZmllbGQuIFlvdSBjYW4gbGltaXQgdGhlIGxlbmd0aCwgYW5kIGFwcGx5IHZhcmlvdXMgdmFsaWRhdGlvbg0KZnVuY3Rpb25zIHRvIHRoZSBmaWVsZC48L2xpPg0KPGxpPlRleHQgQXJlYS4gVGhpcyBpcyBhIGJpZywgZnJlZS1mb3JtIHRleHQgaW5wdXQgZmllbGQuPC9saT4NCjxsaT5DaGVja2JveC4gVGhpcyBpcyBhIHN0YW5kYXJkIGNoZWNrIGJveC48L2xpPg0KPGxpPkNoZWNrYm94IEdyb3VwLiBUaGlzIGlzIGEgY29sbGVjdGlvbiBvZiBjaGVja2JveGVzLiBUaGUgb25seSBkaWZmZXJlbmNlIGJldHdlZW4gdGhpcyBpbnB1dCBhbmQgYQ0KY29sbGVjdGlvbiBvZiBDaGVja2JveCBpbnB1dHMgaXMgdGhhdCB0aGV5IGFyZSBwcmVzZW50ZWQgYXMgYSBncm91cCwgd2l0aCBvbmUgbmFtZSwgYW5kIGNhbiBoYXZlIGEgdmFsaWRhdGlvbiBmdW5jdGlvbiByZXF1aXJpbmcgdGhhdCB5b3UgY2hlY2sgb25lIG9yIG1vcmUgb2YgdGhlIGJveGVzIGluIHRoZSBncm91cC48L2xpPg0KPGxpPlJhZGlvIEdyb3VwLiBUaGlzIGlzIGEgY29sbGVjdGlvbiBvZiByYWRpbyBidXR0b25zLiBPbmx5IG9uZSBvZiB0aGUgZ3JvdXAgbWF5IGJlIHNlbGVjdGVkIGJ5IHRoZSB1c2VyLjwvbGk+DQo8bGk+UHVsbGRvd24uIFRoaXMgaXMgYSBzdGFuZGFyZCBwdWxsZG93biBtZW51LiBJdCYjMDM5O3MgcmVhbGx5IGNvbmNlcHR1YWxseSB0aGUgc2FtZSB0aGluZyBhcyBhIHJhZGlvIGJ1dHRvbg0KZ3JvdXAsIGJ1dCBpcyBiZXR0ZXIgd2hlbiB0aGVyZSBhcmUgYSBsYXJnZSBudW1iZXIgb2Ygb3B0aW9ucy48L2xpPg0KPGxpPk11bHRpc2VsZWN0LiBUaGlzIGlzIGEgbXVsdGktc2VsZWN0IGZpZWxkLiBJdCYjMDM5O3MgcmVhbGx5IGNvbmNlcHR1YWxseSB0aGUgc2FtZSB0aGluZyBhcyBhIGNoZWNrYm94IGJ1dHRvbg0KZ3JvdXAsIGJ1dCBpcyBiZXR0ZXIgd2hlbiB0aGVyZSBhcmUgYSBsYXJnZSBudW1iZXIgb2Ygb3B0aW9ucywgYXMgeW91IGNhbiBsaW1pdCB0aGUgbnVtYmVyIGRpc3BsYXllZCBvbiB0aGUgc2NyZWVuIGF0IGFueSBvbmUgdGltZS48L2xpPg0KPGxpPlN0YXRlLiBUaGlzIGlzIGEgcHVsbGRvd24gbGlzdGluZyB0aGUgU3RhdGVzIG9mIHRoZSBVLlMuPC9saT4NCjxsaT5Db3VudHJpZXMuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBDb3VudHJpZXMgb2YgdGhlIHdvcmxkIChhcyBvZiBKdWx5IDIwMDUpLjwvbGk+DQo8bGk+RGF0ZSBQaWNrZXIuIFRoaXMgaXMgYSB0cmlwbGUgcHVsbGRvd24gYWxsb3dpbmcgdGhlIHVzZXIgdG8gc2VsZWN0IGEgZGF0ZS48L2xpPg0KPC91bD48L2xpPg0KDQo8bGk+RW1haWwtc3BlY2lmaWMgSW5wdXRzDQo8dWw+PGxpPkVtYWlsIEZyb20gQWRkcmVzcyBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSB0aGVpciBlbWFpbCBhZGRyZXNzLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgYWRkcmVzcyBpbiB0aGUgJnF1b3Q7RnJvbSZxdW90OyBmaWVsZC48L2xpPg0KPGxpPkVtYWlsIEZyb20gTmFtZSBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSB0aGVpciBuYW1lLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgbmFtZSBpbiB0aGUgJnF1b3Q7RnJvbSZxdW90OyBmaWVsZC48L2xpPg0KPC91bD48L2xpPg0KDQo8bGk+RGlzcGxheSBDb250cm9sIEZpZWxkczx1bD4NCjxsaT4tUGFnZSBCcmVhay4gVGhpcyBhbGxvd3MgeW91IHRvIHNwbGl0IHlvdXIgZmVlZGJhY2sgZm9ybSBpbnRvIG11bHRpcGxlIHBhZ2VzLiBFYWNoIHBhZ2UgaXMNCmluZGVwZW5kZW50bHkgdmFsaWRhdGVkLiBUaGlzIGlzIGdvb2QgZm9yIGFwcGxpY2F0aW9ucyBsaWtlIG9ubGluZSBzdXJ2ZXlzLjwvbGk+DQo8bGk+LVN0YXRpYyBUZXh0LiBUaGlzIGFsbG93cyB5b3UgdG8gcHV0IHRleHQgb3IgYSBsYWJlbCBpbiB0aGUgbWlkZGxlIG9mIHlvdXIgZm9ybS4gVGhpcyBpcyB1c2VmdWwgZm9yIGdpdmluZyBhZGRpdGlvbmFsIGhlbHAgdGV4dCwgZXNwZWNpYWxseSBpZiB5b3UmIzAzOTtyZSBub3QgdXNpbmcgYSBDdXN0b20gVGVtcGxhdGUgdG8gcmVuZGVyIHlvdXIgZm9ybS48L2xpPg0KPC91bD48L2xpPg0KDQo8bGk+Rm9ybSBIYW5kbGluZyBJbnB1dHMgKERpc3Bvc2l0aW9ucykNCjx1bD48bGk+KkVtYWlsIFJlc3VsdHMgQmFzZWQgb24gUHVsbGRvd24uIFRoaXMgaXMgdXNlZnVsIGZvciB3ZWIgc2l0ZXMgd2hlcmUgY29tbWVudHMgZ2V0IHJvdXRlZCBiYXNlZCBvbiB0aGVpciBzdWJqZWN0IG1hdHRlciwgZS5nLiwgYnVncyBnZXQgc2VudCB0byBvbmUgcGVyc29uLCBtYXJrZXRpbmcgcXVlc3Rpb25zIHRvIGFub3RoZXIgcGVyc29uLCBzYWxlcyByZXF1ZXN0cyB0byBzb21lb25lIGVsc2UsIGV0Yy4gVGhlIHB1bGxkb3duIGlzIHBvcHVsYXRlZCB3aXRoIHRoZSBzdWJqZWN0cywgYW5kIGVhY2ggZ2V0cyBkaXJlY3RlZCB0byBhIHNwZWNpZmljIGVtYWlsIGFkZHJlc3MuIFlvdSBzZXQgdXAgdGhlc2UgbWFwcGluZ3MgaW4gdGhlIHdoZW4geW91IGNyZWF0ZSBvciBlZGl0IGEgZmllbGQgb2YgdGhpcyB0eXBlLiBJZiB5b3UgdXNlIG9uZSBvZiB0aGVzZSAmcXVvdDtEaXJlY3RvciZxdW90OyBwdWxsZG93bnMsIHRoZSB1c2VyIG11c3QgbWFrZSBhIHNlbGVjdGlvbiBpbiBvcmRlciB0byBzdWJtaXQgdGhlDQpmb3JtLiBUaGlzIGlucHV0IGlzIHBhcnQgb2YgdGhlIGZvcm0gdGhlIHVzZXIgc2VlcywgYWx0aG91Z2ggdGhlIGVtYWlsIGFkZHJlc3NlcyBhcmUgbm90IG1hZGUgdmlzaWJsZSBub3INCmFyZSB0aGV5IGVtYmVkZGVkIGluIHRoZSBIVE1MLjwvbGk+DQo8bGk+KkVtYWlsIFJlc3VsdHMgdG8gc2V0IEFkZHJlc3MoZXMpLiBUaGlzIHNpbXBseSBzZW5kcyB0aGUgZm9ybSByZXN1bHRzIHRvIG9uZSBvciBtb3JlIGVtYWlsIGFkZHJlc3NlcyB0aGF0IHlvdSBlbnRlciB3aGVuIHlvdSBjcmVhdGUgb3IgZWRpdCB0aGlzIHR5cGUgb2YgZmllbGQuIFRoaXMgZmllbGQgYW5kIGl0cyBuYW1lIGFyZSBub3QgdmlzaWJsZSBpbiB0aGUNCmZvcm0gdGhhdCB0aGUgdXNlciBzZWVzLiBUaGUgZW1haWwgYWRkcmVzc2VzIGFyZSBub3QgbWFkZSB2aXNpYmxlIG5vcg0KYXJlIHRoZXkgZW1iZWRkZWQgaW4gdGhlIEhUTUwuPC9saT4NCjxsaT4qU3RvcmUgUmVzdWx0cyBpbiBEYXRhYmFzZS4gVGhpcyB3aWxsIHN0b3JlIHRoZSBmb3JtIGNvbnRlbnRzIGluIGFuIGludGVybmFsIGRhdGFiYXNlLiBZb3Ugd2lsbCBhbHdheXMgdXNlIHRoaXMgZGlzcG9zaXRpb24gaWYgeW91IHVzZSB0aGUgZm9ybSB3aXRoIEZvcm1Ccm93c2VyLjwvbGk+DQo8bGk+KlZhbGlkYXRlIHZpYSBFbWFpbC4gVGhpcyBpcyBhIHN0cmFuZ2UgYW5kIHBvd2VyZnVsIGZpZWxkLiBJdCBwcm92aWRlcyB0aGUgdXNlciBhIG1hbmRhdG9yeSBpbnB1dCBmb3IgdGhlaXIgZW1haWwgYWRkcmVzcy4gT25jZSB0aGV5IHN1Ym1pdCB0aGVpciBmb3JtLCB0aGUgc3RhbmRhcmQgZm9ybSBkaXNwb3NpdGlvbnMgYXJlIG5vdCBwZXJmb3JtZWQgLS0gcmF0aGVyLCBpdCBzZW5kIHRoZSB1c2VyIGFuIGVtYWlsIHdpdGggYSBzcGVjaWFsIGNvZGVkIGxpbmsuIElmIHRoZXkgY2xpY2sgb24gdGhlIGxpbmssIHRoZSBvdGhlciBmb3JtIGlzIGNvbnNpZGVyZWQgJnF1b3Q7YXBwcm92ZWQsJnF1b3Q7IGFuZCB0aGUgb3RoZXIgZGlzcG9zaXRpb25zIGFyZSBhbGwgcGVyZm9ybWVkLjwvbGk+DQo8bGk+KldyaXRlIFJlc3VsdHMgdG8gRmxhdCBGaWxlLiBUaGlzIHRha2VzIHRoZSBmb3JtIHJlc3VsdHMgYW5kIHdyaXRlcyB0aGVtIGludG8gYSB0ZXh0IGZpbGUuIFlvdSBtYXkNCnNlbGVjdCB0aGUgbmFtZSBvZiB0aGUgZmlsZSwgYW5kIHNldCBpdHMgZm9ybWF0LiBUaGVzZSBmaWxlcyBhcmUgd3JpdHRlbiB0byB0aGUgJnF1b3Q7b3V0cHV0JnF1b3Q7IGRpcmVjdG9yeSB1bmRlciB0aGUNCm1vZHVsZSYjMDM5O3MgaW5zdGFsbGF0aW9uIGRpcmVjdG9yeSwgYXNzdW1pbmcgdGhlIHdlYiBzZXJ2ZXIgaGFzIHBlcm1pc3Npb24gdG8gd3JpdGUgdGhlcmUuDQo8L3VsPjwvbGk+PC9saT48L3VsPg0KDQo8aDM+RW1haWwgYW5kIEZsYXQgRmlsZSBUZW1wbGF0ZXM8L2gzPg0KPHA+TWFuIGRpc3Bvc2l0aW9uIHR5cGVzIGFsbG93IHlvdSB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmb3IgdGhlIGVtYWlsIHRoYXQgaXMgZ2VuZXJhdGVkLCBvciBmb3IgdGhlIHdheSB0aGUgcmVzdWx0cyBhcmUgd3JpdHRlbiB0byBhIGZpbGUuIElmIHlvdSBvcHQgbm90IHRvIGNyZWF0ZSBhIHRlbXBsYXRlLCB0aGUgRm9ybUJ1aWxkZXIgd2lsbCB1c2UgaXQmIzAzOTtzIG93biBiZXN0IGd1ZXNzLCB3aGljaCBtYXkgb3IgbWF5IG5vdCB3b3JrIG91dCB0byB5b3VyIGxpa2luZy4gWW91IGNhbiBhbHdheXMgY2xpY2sgb24gdGhlICZxdW90O0NyZWF0ZSBTYW1wbGUgVGVtcGxhdGUmcXVvdDsgYW5kIHRoZW4gY3VzdG9taXplIHRoZSByZXN1bHRzLjwvcD4NCjxwPk5vdGUgdGhhdCBvbmNlIHlvdSYjMDM5O3ZlIGNoYW5nZWQgYSB0ZW1wbGF0ZSwgaXQgd2lsbCBubyBsb25nZXIgYXV0b21hdGljYWxseSBhZGQgbmV3IGZpZWxkcy4gRm9yIHRoaXMgcmVhc29uLCBpdCYjMDM5O3MgdXN1YWxseSBiZXN0IHRvIGNyZWF0ZSB5b3VyIHRlbXBsYXRlcyBhcyB0aGUgbGFzdCBzdGVwIG9mIGNyZWF0aW5nIHlvdXIgZm9ybS48L3A+DQoNCjxoMz5Lbm93biBJc3N1ZXM8L2gzPg0KPHVsPg0KPGxpPlNvbWUgZmllbGQgdHlwZXMgZnJvbSBGZWVkYmFja0Zvcm1zIGFyZSBub3QgaW1wbGVtZW50ZWQgaW4gRm9ybUJ1aWxkZXIuIElmIHRoZXJlIGlzIGRlbWFuZCBmb3IgdGhlbSwgdGhleSB3aWxsIGJlIGFkZGVkLjwvbGk+DQo8bGk+Rm9ybUJ1aWxkZXIgaXMgbm90IHlldCBpbnRlZ3JhdGVkIHdpdGggRnJvbnRFbmQgVXNlcnMuIEl0IHdpbGwgYmUuPC9saT4NCjxsaT5Gb3JtQnVpbGRlciBjYW5ub3QgeWV0IGJlIGlubGluZWQuIFRoYXQgc2hvdWxkIGJlIGEgc2ltcGxlIHVwZ3JhZGUgZG93biB0aGUgbGluZS48L2xpPg0KPGxpPkZvcm1CdWlsZGVyIGRvZXMgbm90IHlldCBzdXBwb3J0IHByZXR0eSB1cmxzLCBhbHRob3VnaCB0aGF0IHNob3VsZG4mIzAzOTt0IG1hdHRlciBzaW5jZSB0aGUgdXNlciBzaWRlIGlzIHByZXR0eSBzaW1wbGUuPC9saT4NCjwvdWw+DQoNCjxoMz5Ucm91Ymxlc2hvb3Rpbmc8L2gzPg0KPG9sPjxsaT4gRmlyc3Qgc3RlcCBpcyB0byBjaGVjayB5b3UmIzAzOTtyZSBydW5uaW5nIENNUyAxLjAtc3ZuIG9yIGxhdGVyLjwvbGk+DQo8bGk+IFNlY29uZCBzdGVwIGlzIHRvIHJlYWQgYW5kIHVuZGVyc3RhbmQgdGhlIGNhdmVhdCBhYm91dCBXWVNJV1lHIGVkaXRvcnMgdXAgaW4gdGhlDQpzZWN0aW9uIDxlbT5BZGRpbmcgYSBGb3JtIHRvIGEgUGFnZTwvZW0+LjwvbGk+DQo8bGk+IElmIHlvdSYjMDM5O3JlIG1pc3NpbmcgZmllbGRzIGluIGFuIGVtYWlsIHRoYXQgZ2V0cyBnZW5lcmF0ZWQsIGNoZWNrIHRoZSBkaXNwb3NpdGlvbiBmaWVsZCYjMDM5O3MgdGVtcGxhdGUsIGFuZCBtYWtlIHN1cmUgeW91JiMwMzk7cmUgc3BlY2lmeWluZyB0aGUgbWlzc2luZyBmaWVsZHMuIFNlZW1zIG9idmlvdXMsIGJ1dCBpdCYjMDM5O3MgYW4gZWFzeSBtaXN0YWtlIHRvIG1ha2UuPC9saT4NCjxsaT4gSnVzdCBtZXNzIGFyb3VuZCBhbmQgdHJ5IGNsaWNraW5nIG9uIGxpbmtzIGFuZCBpY29ucyBhbmQgc3R1ZmYuIFNlZSB3aGF0IGhhcHBlbnMuPC9saT4NCjxsaT4gTGFzdCByZXNwb3J0IGlzIHRvIGVtYWlsIG1lIG9yIGNhdGNoIG1lIG9uIElSQyBhbmQgd2UgY2FuIGdvIGZyb20gdGhlcmUuPC9saT4NCjwvb2w+IA0KPHA+VGhpcyBpcyBhIGZhaXJseSBlYXJseSB2ZXJzaW9uLCBpZiBub3QgYSByYW5rIGJldGEgcmVsZWFzZSwgYW5kIGl0IGlzIHByb2JhYmx5IHN0aWxsIGJ1Z2d5LiBXaGlsZSBJJiMwMzk7dmUgZG9uZSBhbGwgSSBjYW4NCnRvIG1ha2Ugc3VyZSBubyBlZ3JlZ2lvdXMgYnVncyBoYXZlIGNyZXB0IGluLCBJIGhhdmUgdG8gYWRtaXQgdGhhdCBkdXJpbmcgdGVzdGluZywgdGhpcyBwcm9ncmFtDQpyZXZlYWxlZCBzZXZlbiBjb2Nrcm9hY2hlcywgdHdvIGVhcndpZ3MsIGEgc21hbGwgZmFtaWx5IG9mIGFwaGlkcywgYW5kIGEgd2Fsa2luZy1zdGljayBpbnNlY3QuIEl0IGFsc28NCmF0ZSB0aGUgbmVpZ2hib3ImIzAzOTtzIG5hc3R5IGxpdHRsZSB5YXAgZG9nLCBmb3Igd2hpY2ggSSB3YXMgaW5hcHByb3ByaWF0ZWx5IGdyYXRlZnVsLjwvcD4NCjxwPlRoZSBmaW5hbCByZWxlYXNlIHdpbGwgaW5jbHVkZSBidWcgZml4ZXMsIGRvY3VtZW50YXRpb24sIGFuZCB1bmNvbmRpdGlvbmFsIGxvdmUuPC9wPg0KPGgzPlN1cHBvcnQ8L2gzPg0KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPg0KPHVsPg0KPGxpPkZvciB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBtb2R1bGUsIEZBUXMsIG9yIHRvIGZpbGUgYSBCdWcgUmVwb3J0LCBwbGVhc2UgdmlzaXQgdGhlIENNUyBNYWRlIFNpbXBsZSAgPGEgaHJlZj0mcXVvdDtodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnJnF1b3Q7PkRldmVsb3BlciBGb3JnZTwvYT4uPC9saT4NCjxsaT5UbyBvYnRhaW4gY29tbWVyY2lhbCBzdXBwb3J0LCBwbGVhc2Ugc2VuZCBhbiBlbWFpbCB0byB0aGUgYXV0aG9yIGF0IDxhIGhyZWY9JnF1b3Q7bWFpbHRvOnNqZ0BjbXNtb2R1bGVzLmNvbSZxdW90Oz48c2pnQGNtc21vZHVsZXMuY29tPjwvYT4uPC9saT4NCjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9JnF1b3Q7aHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnJnF1b3Q7PkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LjwvbGk+DQo8bGk+VGhlIGF1dGhvciBjYW4gb2Z0ZW4gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9JnF1b3Q7aXJjOi8vaXJjLmZyZWVub2RlLm5ldC8jY21zJnF1b3Q7PkNNUyBJUkMgQ2hhbm5lbDwvYT4uPC9saT4NCjxsaT5MYXN0bHksIHlvdSBtYXkgaGF2ZSBzb21lIHN1Y2Nlc3MgZW1haWxpbmcgdGhlIGF1dGhvciBkaXJlY3RseSBhbmQgZ3JvdmVsbGluZyBmb3IgZnJlZSBzdXBwb3J0LjwvbGk+ICANCjwvdWw+DQo8cD5BcyBwZXIgdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCBhcy1pcy4gUGxlYXNlIHJlYWQgdGhlIHRleHQNCm9mIHRoZSBsaWNlbnNlIGZvciB0aGUgZnVsbCBkaXNjbGFpbWVyLjwvcD4NCjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPg0KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDA2LCBTYW11ZWwgR29sZHN0ZWluIDxhIGhyZWY9JnF1b3Q7bWFpbHRvOnNqZ0BjbXNtb2R1bGVzLmNvbSZxdW90Oz48c2pnQGNtc21vZHVsZXMuY29tPjwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4NCjxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSZxdW90O2h0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCZxdW90Oz5HTlUgUHVibGljIExpY2Vuc2U8L2E+LiBZb3UgbXVzdCBhZ3JlZSB0byB0aGlzIGxpY2Vuc2UgYmVmb3JlIHVzaW5nIHRoZSBtb2R1bGUuPC9wPic7CiRsYW5nWydjaGFuZ2Vsb2cnXSA9ICcJCSAgICA8dWw+DQoJCSAgICA8bGk+VmVyc2llIDAuMSAtIDgganVsaSAyMDA2LiBFZXJzdGUgcmVsZWFzZTwvbGk+DQoJCSc7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lang/ext/ru_RU.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ9Ca0L7QvdGB0YLRgNGD0LrRgtC+0YAg0YTQvtGA0LwnOwokbGFuZ1snZmllbGRfdHlwZV8nXSA9ICfQndC1INGD0LrQsNC30LDQvSDRgtC40L8g0L/QvtC70Y8nOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldEVuZCddID0gJ9Ca0L7QvdC10YYg0LPRgNGD0L/Qv9GLINC/0L7Qu9C10LknOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldFN0YXJ0J10gPSAn0J3QsNGH0LDQu9C+INCz0YDRg9C/0L/RiyDQv9C+0LvQtdC5JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkJ10gPSAn0KLQtdC60YHRgtC+0LLQvtC1INC/0L7Qu9C1JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEFyZWFGaWVsZCddID0gJ9Ci0LXQutGB0YLQvtCy0L7QtSDQvtC60L3Qvic7CiRsYW5nWydmaWVsZF90eXBlX0NoZWNrYm94RmllbGQnXSA9ICfQmtC+0L3RgtGA0L7Qu9GM0L3Ri9C5INC40L3QtNC40LrQsNGC0L7RgCc7CiRsYW5nWydmaWVsZF90eXBlX0NoZWNrYm94R3JvdXBGaWVsZCddID0gJ9CT0YDRg9C/0L/QsCDQutC+0L3RgtGA0L7Qu9GM0L3Ri9GFINC40L3QtNC40LrQsNGC0L7RgNC+0LInOwokbGFuZ1snZmllbGRfdHlwZV9QdWxsZG93bkZpZWxkJ10gPSAn0JLRi9C/0LDQtNCw0Y7RidC40Lkg0YHQv9C40YHQvtC6JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTXVsdGlzZWxlY3RGaWVsZCddID0gJ011bHRpc2VsZWN0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3RhdGVQaWNrZXJGaWVsZCddID0gJ9CS0YvQsdC+0YAg0YjRgtCw0YLQvtCyINCh0KjQkCc7CiRsYW5nWydmaWVsZF90eXBlX0NvdW50cnlQaWNrZXJGaWVsZCddID0gJ0NvdW50cnkgUGlja2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGF0ZVBpY2tlckZpZWxkJ10gPSAnRGF0ZSBQaWNrZXInOwokbGFuZ1snZmllbGRfdHlwZV9SYWRpb0dyb3VwRmllbGQnXSA9ICdSYWRpbyBCdXR0b24gR3JvdXAnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRpcmVjdG9yJ10gPSAnKkVtYWlsIFJlc3VsdHMgQmFzZWQgb24gUHVsbGRvd24nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsJ10gPSAnKkVtYWlsIFJlc3VsdHMgdG8gc2V0IEFkZHJlc3MoZXMpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbENvbmZpcm1hdGlvbiddID0gJypWYWxpZGF0ZS12aWEtRW1haWwgQWRkcmVzcyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRmlsZSddID0gJypXcml0ZSBSZXN1bHRzIHRvIEZsYXQgRmlsZSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGF0YWJhc2UnXSA9ICcqU3RvcmUgUmVzdWx0cyBpbiBEYXRhYmFzZSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uVXNlclRhZyddID0gJypDYWxsIEEgVXNlciBEZWZpbmVkIFRhZyBXaXRoIHRoZSBGb3JtIFJlc3VsdHMnOwokbGFuZ1snZmllbGRfdHlwZV9QYWdlQnJlYWtGaWVsZCddID0gJy1QYWdlIEJyZWFrJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmlsZVVwbG9hZEZpZWxkJ10gPSAnRmlsZSBVcGxvYWQnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxBZGRyZXNzRmllbGQnXSA9ICdFbWFpbCAiRnJvbSBBZGRyZXNzIiBGaWVsZCc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbE5hbWVGaWVsZCddID0gJ0VtYWlsICJGcm9tIE5hbWUiIEZpZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3RhdGljVGV4dEZpZWxkJ10gPSAnLVN0YXRpYyBUZXh0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTGlua0ZpZWxkJ10gPSAnLUxpbmsnOwokbGFuZ1snZmllbGRfdHlwZV9IaWRkZW5GaWVsZCddID0gJ0hpZGRlbiBGaWVsZCc7CiRsYW5nWyd2YWxpZGF0aW9uX25vbmUnXSA9ICdObyBWYWxpZGF0aW9uJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbnVtZXJpYyddID0gJ051bWVyaWMnOwokbGFuZ1sndmFsaWRhdGlvbl9pbnRlZ2VyJ10gPSAnSW50ZWdlcic7CiRsYW5nWyd2YWxpZGF0aW9uX2VtYWlsX2FkZHJlc3MnXSA9ICdFbWFpbCBBZGRyZXNzJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbXVzdF9jaGVjayddID0gJ011c3QgQmUgQ2hlY2tlZCc7CiRsYW5nWyd2YWxpZGF0aW9uX3JlZ2V4X21hdGNoJ10gPSAnTWF0Y2ggUmVndWxhciBFeHByZXNzaW9uJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbm9tYXRjaCddID0gJ0RvZXNuXCd0IG1hdGNoIFJlZ3VsYXIgRXhwcmVzc2lvbic7CiRsYW5nWydyZXF1aXJlZF9maWVsZF9taXNzaW5nJ10gPSAnQSB2YWx1ZSB3YXMgbm90IHN1cHBsaWVkIGZvciBhIHJlcXVpcmVkIGZpZWxkJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX3ZhbHVlJ10gPSAnUGxlYXNlIGVudGVyIGEgdmFsdWUgZm9yICIlcyInOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfbnVtYmVyJ10gPSAnUGxlYXNlIGVudGVyIGEgbnVtYmVyIGZvciAiJXMiJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl92YWxpZCddID0gJ1BsZWFzZSBlbnRlciBhIHZhbGlkIGVudHJ5IGZvciAiJXMiJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hbl9pbnRlZ2VyJ10gPSAnUGxlYXNlIGVudGVyIGFuIGludGVnZXIgdmFsdWUgZm9yICIlcyInOwokbGFuZ1sncGxlYXNlX2VudGVyX2FuX2VtYWlsJ10gPSAnUGxlYXNlIGVudGVyIGEgdmFsaWQgZW1haWwgYWRkcmVzcyBmb3IgIiVzIic7CiRsYW5nWydub3RfdmFsaWRfZW1haWwnXSA9ICciJXMiIGRvZXMgbm90IGFwcGVhciB0byBiZSBhIHZhbGlkIGVtYWlsIGFkZHJlc3MhJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9ub19sb25nZXInXSA9ICdQbGVhc2UgZW50ZXIgYSB2YWx1ZSB0aGF0IGlzIG5vIGxvbmdlciB0aGFuICVzIGNoYXJhY3RlcnMnOwokbGFuZ1sndGl0bGVfbGlzdF9kZWxpbWl0ZXInXSA9ICdDaGFyYWN0ZXIgdG8gdXNlIGFzIGRlbGltaXRlciBpbiByZXN1bHRzIHRoYXQgcmV0dXJuIG1vcmUgdGhhbiBvbmUgdmFsdWUnOwokbGFuZ1sneW91X25lZWRfcGVybWlzc2lvbiddID0gJ1lvdSBuZWVkIHRoZSAiJXMiIHBlcm1pc3Npb24gdG8gcGVyZm9ybSB0aGF0IG9wZXJhdGlvbi4nOwokbGFuZ1snbGFja3Blcm1pc3Npb24nXSA9ICdTb3JyeSEgWW91IGRvblwndCBoYXZlIGFkZXF1YXRlIHByaXZpbGVnZXMgdG8gYWNjZXNzIHRoaXMgc2VjdGlvbi4nOwokbGFuZ1snZmllbGRfb3JkZXJfdXBkYXRlZCddID0gJ0ZpZWxkIG9yZGVyIHVwZGF0ZWQuJzsKJGxhbmdbJ2Zvcm1fZGVsZXRlZCddID0gJ0Zvcm0gZGVsZXRlZC4nOwokbGFuZ1snZmllbGRfZGVsZXRlZCddID0gJ0ZpZWxkIGRlbGV0ZWQuJzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb25fdXBkYXRlZCddID0gJ0NvbmZpZ3VyYXRpb24gVXBkYXRlZC4nOwokbGFuZ1sneW91X211c3RfY2hlY2snXSA9ICdZb3UgbXVzdCBjaGVjayAiJXMiIGluIG9yZGVyIHRvIGNvbnRpbnVlLic7CiRsYW5nWydtdXN0X3NwZWNpZnlfb25lX2Rlc3RpbmF0aW9uJ10gPSAnWW91IG5lZWQgdG8gc3BlY2lmeSBhdCBsZWFzdCBvbmUgZGVzdGluYXRpb24gYWRkcmVzcyEnOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9mb3JtJ10gPSAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGUgZm9ybSAlcz8nOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9maWVsZCddID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgdGhlIGZpZWxkICVzPyc7CiRsYW5nWydub3RpY2Vfc2VsZWN0X3R5cGUnXSA9ICdBZHZhbmNlZCBvcHRpb25zIGFyZSBub3QgYXZhaWxhYmxlIHVudGlsIHRoZSBmaWVsZCB0eXBlIGhhcyBiZWVuIHNldC4nOwokbGFuZ1snZmllbGRfbmFtZV9pbl91c2UnXSA9ICdUaGUgZmllbGQgbmFtZSAiJXMiIGlzIGFscmVhZHkgaW4gdXNlLiBQbGVhc2UgdXNlIHVuaXF1ZSBmaWVsZCBuYW1lcy4nOwokbGFuZ1snYW5vbnltb3VzJ10gPSAnQW5vbnltb3VzJzsKJGxhbmdbJ2FiYnJldmlhdGlvbl9sZW5ndGgnXSA9ICdMZW46ICVzJzsKJGxhbmdbJ2JveGVzJ10gPSAnJXMgYm94ZXMnOwokbGFuZ1snb3B0aW9ucyddID0gJyVzIG9wdGlvbnMnOwokbGFuZ1sndGV4dF9sZW5ndGgnXSA9ICclcyBjaGFycy4nOwokbGFuZ1snb3JkZXInXSA9ICdPcmRlcic7CiRsYW5nWyd1bnNwZWNpZmllZCddID0gJ1t1bnNwZWNpZmllZF0nOwokbGFuZ1snYWRkZWQnXSA9ICdhZGRlZCc7CiRsYW5nWyd1cGRhdGVkJ10gPSAndXBkYXRlZCc7CiRsYW5nWydzZWxlY3Rfb25lJ10gPSAnU2VsZWN0IE9uZSc7CiRsYW5nWydzZWxlY3RfdHlwZSddID0gJ1NlbGVjdCBUeXBlJzsKJGxhbmdbJ3RvJ10gPSAnVG8nOwokbGFuZ1sneWVzJ10gPSAnWWVzJzsKJGxhbmdbJ25vJ10gPSAnTm8nOwokbGFuZ1sncmVjaXBpZW50cyddID0gJ3JlY2lwaWVudHMnOwokbGFuZ1snZGVzdGluYXRpb25fY291bnQnXSA9ICclcyBkZXN0aW5hdGlvbnMnOwokbGFuZ1snc2F2ZSddID0gJ1NhdmUnOwokbGFuZ1snYWRkJ10gPSAnQWRkJzsKJGxhbmdbJ3VwZGF0ZSddID0gJ1VwZGF0ZSc7CiRsYW5nWydzYXZlX2FuZF9jb250aW51ZSddID0gJ1NhdmUgYW5kIENvbnRpbnVlIEVkaXRpbmcnOwokbGFuZ1snaW5mb3JtYXRpb24nXSA9ICdJbmZvcm1hdGlvbic7CiRsYW5nWydhdXRvbWF0aWMnXSA9ICdBdXRvbWF0aWMnOwokbGFuZ1snZm9ybXMnXSA9ICdGb3Jtcyc7CiRsYW5nWydmb3JtJ10gPSAnRm9ybSAlcyc7CiRsYW5nWydjb25maWd1cmF0aW9uJ10gPSAnQ29uZmlndXJhdGlvbic7CiRsYW5nWyd0YWJfbWFpbiddID0gJ01haW4nOwokbGFuZ1sndGFiX2FkZGl0aW9uYWwnXSA9ICdGb3JtIFNldHRpbmdzJzsKJGxhbmdbJ3RhYl9hZHZhbmNlZCddID0gJ0FkdmFuY2VkIFNldHRpbmdzJzsKJGxhbmdbJ3RhYl90YWJsZWxheW91dCddID0gJ1RhYmxlLWJhc2VkIExheW91dCBPcHRpb25zJzsKJGxhbmdbJ3RhYl90ZW1wbGF0ZWxheW91dCddID0gJ1RlbXBsYXRlIExheW91dCBPcHRpb25zJzsKJGxhbmdbJ2ZpZWxkX3JlcXVpcmVtZW50X3VwZGF0ZWQnXSA9ICdGaWVsZCByZXF1aXJlZCBzdGF0ZSB1cGRhdGVkLic7CiRsYW5nWydtYXhpbXVtX3NpemUnXSA9ICdNYXguIFNpemUnOwokbGFuZ1sncGVybWl0dGVkX2V4dGVuc2lvbnMnXSA9ICdFeHRlbnNpb25zJzsKJGxhbmdbJ3Blcm1pdHRlZF9maWxldHlwZXMnXSA9ICdBbGxvd2VkIGZpbGUgdHlwZXMnOwokbGFuZ1snZmlsZV90b29fbGFyZ2UnXSA9ICdVcGxvYWRlZCBmaWxlIGlzIHRvbyBsYXJnZSEgTWF4aW11bSBzaXplIGlzOic7CiRsYW5nWydpbGxlZ2FsX2ZpbGVfdHlwZSddID0gJ1RoaXMgdHlwZSBvZiBmaWxlIG1heSBub3QgYmUgdXBsb2FkZWQuIFBsZWFzZSBjaGVjayB0aGF0IHRoZSBleHRlbnNpb24gaXMgY29ycmVjdC4nOwokbGFuZ1sndW5pbnN0YWxsZWQnXSA9ICdNb2R1bGUgdW5pbnN0YWxsZWQuJzsKJGxhbmdbJ2luc3RhbGxlZCddID0gJ01vZHVsZSB2ZXJzaW9uICVzIGluc3RhbGxlZC4nOwokbGFuZ1sndXBncmFkZWQnXSA9ICdNb2R1bGUgdXBncmFkZWQgdG8gdmVyc2lvbiAlcy4nOwokbGFuZ1snYnV0dG9uX3ByZXZpb3VzJ10gPSAnQmFjay4uLic7CiRsYW5nWydidXR0b25fc3VibWl0J10gPSAn0J7RgtC/0YDQsNCy0LjRgtGMJzsKJGxhbmdbJ2J1dHRvbl9jb250aW51ZSddID0gJ0NvbnRpbnVlLi4uJzsKJGxhbmdbJ3ZhbHVlX2NoZWNrZWQnXSA9ICdDaGVja2VkJzsKJGxhbmdbJ3ZhbHVlX3VuY2hlY2tlZCddID0gJ1VuY2hlY2tlZCc7CiRsYW5nWydhZGRfb3B0aW9ucyddID0gJ0FkZCBNb3JlIE9wdGlvbnMnOwokbGFuZ1snZGVsZXRlX29wdGlvbnMnXSA9ICdEZWxldGUgTWFya2VkIE9wdGlvbnMnOwokbGFuZ1snYWRkX2NoZWNrYm94ZXMnXSA9ICdBZGQgTW9yZSBDaGVja2JveGVzJzsKJGxhbmdbJ2RlbGV0ZV9jaGVja2JveGVzJ10gPSAnRGVsZXRlIE1hcmtlZCBDaGVja2JveGVzJzsKJGxhbmdbJ2FkZF9hZGRyZXNzJ10gPSAnQWRkIEFub3RoZXIgQWRkcmVzcyc7CiRsYW5nWydkZWxldGVfYWRkcmVzcyddID0gJ0RlbGV0ZSBNYXJrZWQgQWRkcmVzc2VzJzsKJGxhbmdbJ2FkZF9kZXN0aW5hdGlvbiddID0gJ0FkZCBBbm90aGVyIERlc3RpbmF0aW9uJzsKJGxhbmdbJ2RlbGV0ZV9kZXN0aW5hdGlvbiddID0gJ0RlbGV0ZSBNYXJrZWQgRGVzdGluYXRpb25zJzsKJGxhbmdbJ3RpdGxlX3VkdF9uYW1lJ10gPSAnVXNlciBEZWZpbmVkIFRhZyc7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2Rlc3RwYWdlJ10gPSAnUGFnZSB0byByZXR1cm4gdG8gd2l0aCB1cGxvYWRzIGxpbmsnOwokbGFuZ1sndGl0bGVfdXBsb2FkbW9kdWxlX3N1bW1hcnknXSA9ICdTdWJtaXR0ZWQgd2l0aCBmb3JtYnVpbGRlcic7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2NhdGVnb3J5J10gPSAnVXBsb2FkcyBjYXRlZ29yeSc7CiRsYW5nWyd0aXRsZV9zZW5kdG9fdXBsb2FkcyddID0gJ1NlbmQgdGhpcyBmaWxlIHRvIHRoZSB1cGxvYWRzIG1vZHVsZSc7CiRsYW5nWyd0aXRsZV9sZWdlbmQnXSA9ICdMZWdlbmQnOwokbGFuZ1sndGl0bGVfbWF4aW11bV9sZW5ndGgnXSA9ICdNYXhpbXVtIExlbmd0aCc7CiRsYW5nWyd0aXRsZV9jaGVja2JveF9sYWJlbCddID0gJ0NoZWNrYm94IGxhYmVsJzsKJGxhbmdbJ3RpdGxlX2NoZWNrZWRfdmFsdWUnXSA9ICdWYWx1ZSB3aGVuIGNoZWNrZWQnOwokbGFuZ1sndGl0bGVfdW5jaGVja2VkX3ZhbHVlJ10gPSAnVmFsdWUgd2hlbiBub3QgY2hlY2tlZC4nOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfZGV0YWlscyddID0gJ0NoZWNrYm94IEdyb3VwIERldGFpbHMnOwokbGFuZ1sndGl0bGVfZGVsZXRlJ10gPSAnRGVsZXRlPyc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rfb25lX21lc3NhZ2UnXSA9ICciU2VsZWN0IE9uZSIgVGV4dCc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fc3ViamVjdCddID0gJ1NlbGVjdGlvbiBTdWJqZWN0JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X2NvdW50cnknXSA9ICdEZWZhdWx0IFNlbGVjdGlvbic7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9zdGF0ZSddID0gJ0RlZmF1bHQgU2VsZWN0aW9uJzsKJGxhbmdbJ3RpdGxlX29wdGlvbl9uYW1lJ10gPSAnT3B0aW9uIE5hbWUnOwokbGFuZ1sndGl0bGVfb3B0aW9uX3ZhbHVlJ10gPSAnVmFsdWUgU3VibWl0dGVkJzsKJGxhbmdbJ3RpdGxlX3B1bGxkb3duX2RldGFpbHMnXSA9ICdQdWxsZG93biBPcHRpb25zJzsKJGxhbmdbJ3RpdGxlX211bHRpc2VsZWN0X2RldGFpbHMnXSA9ICdNdWx0aXNlbGVjdCBPcHRpb25zJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2FkZHJlc3MnXSA9ICdEZXN0aW5hdGlvbiBFbWFpbCBBZGRyZXNzJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fbmFtZSddID0gJyJGcm9tIG5hbWUiIGZvciBlbWFpbCc7CiRsYW5nWyd0aXRsZV9yZWxheGVkX2VtYWlsX3JlZ2V4J10gPSAnVXNlIHJlbGF4ZWQgZW1haWwgdmFsaWRhdGlvbic7CiRsYW5nWyd0aXRsZV9yZWxheGVkX3JlZ2V4X2xvbmcnXSA9ICdVc2UgcmVsYXhlZCBlbWFpbCBhZGRyZXNzIHZhbGlkYXRpb24gKGUuZy4sIGFsbG93ICJ4QHkiIGluc3RlYWQgb2YgcmVxdWlyaW5nICJ4QHkudGxkIiknOwokbGFuZ1sndGl0bGVfZW1haWxfZnJvbV9hZGRyZXNzJ10gPSAnIkZyb20gYWRkcmVzcyIgZm9yIGVtYWlsJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2VuY29kaW5nJ10gPSAnRW1haWwgY2hhcmFjdGVyIHNldCBlbmNvZGluZyc7CiRsYW5nWyd0aXRsZV9kaXJlY3Rvcl9kZXRhaWxzJ10gPSAnUHVsbGRvd24tYmFzZWQgRW1haWxlciBEZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfbmFtZSddID0gJ0ZpbGUgTmFtZSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9zdWJqZWN0J10gPSAnRW1haWwgU3ViamVjdCBMaW5lJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmFtZSddID0gJ0Zvcm0gTmFtZSc7CiRsYW5nWyd0aXRsZV9mb3JtX3N0YXR1cyddID0gJ0Zvcm0gU3RhdHVzJzsKJGxhbmdbJ3RpdGxlX3JlYWR5X2Zvcl9kZXBsb3ltZW50J10gPSAnUmVhZHkgZm9yIERlcGxveW1lbnQnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MSddID0gJ05vdCBSZWFkeSc7CiRsYW5nWyd0aXRsZV9yZWRpcmVjdF9wYWdlJ10gPSAnUGFnZSB0byByZWRpcmVjdCB0byBhZnRlciBmb3JtIHN1Ym1pc3Npb24nOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MiddID0gJ1BsZWFzZSBhZGQgYSBmaWVsZCB0byB0aGUgZm9ybSBzbyB0aGF0IHRoZSB1c2VyXCdzIGlucHV0IGdldHMgaGFuZGxlZC4gWW91IGNhbic7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHlfbGluayddID0gJ3VzZSB0aGlzIHNob3J0Y3V0JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fYWxpYXMnXSA9ICdGb3JtIEFsaWFzJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fZmllbGRzJ10gPSAnRm9ybSBGaWVsZHMnOwokbGFuZ1sndGl0bGVfZmllbGRfbmFtZSddID0gJ0ZpZWxkIE5hbWUnOwokbGFuZ1sndGl0bGVfcmFkaW9ncm91cF9kZXRhaWxzJ10gPSAnUmFkaW8gQnV0dG9uIEdyb3VwIERldGFpbHMnOwokbGFuZ1sndGl0bGVfZmllbGRfdHlwZSddID0gJ0ZpZWxkIFR5cGUnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MyddID0gJ3RvIGNyZWF0ZSBhIGZvcm0gaGFuZGxpbmcgZmllbGQuJzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZm9ybSddID0gJ0FkZCBOZXcgRm9ybSc7CiRsYW5nWyd0aXRsZV9zaG93X3ZlcnNpb24nXSA9ICdTaG93IEZvcm0gQnVpbGRlciBWZXJzaW9uPyc7CiRsYW5nWyd0aXRsZV9zaG93X3ZlcnNpb25fbG9uZyddID0gJ1RoaXMgd2lsbCBlbWJlZCB5b3VyIGluc3RhbGxlZCB2ZXJzaW9uIG51bWJlciBvZiBGb3JtIEJ1aWxkZXIgbW9kdWxlIGluIGEgY29tbWVudCwgdG8gYWlkIGluIGRlYnVnZ2luZyc7CiRsYW5nWyd0aXRsZV9hZGRfbmV3X2ZpZWxkJ10gPSAnQWRkIE5ldyBGaWVsZCc7CiRsYW5nWyd0aXRsZV9mb3JtX3N1Ym1pdF9idXR0b24nXSA9ICdGb3JtIFN1Ym1pdCBCdXR0b24gVGV4dCc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eSddID0gJ0FkZCBKYXZhc2NyaXB0IHRvIFN1Ym1pdCBCdXR0b24gdG8gcHJldmVudCBtdWx0aXBsZSBzdWJtaXNzaW9ucz8nOwokbGFuZ1sndGl0bGVfc3VibWl0X2J1dHRvbl9zYWZldHlfaGVscCddID0gJ0FkZCBzYWZldHkgc2NyaXB0JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmV4dF9idXR0b24nXSA9ICdGb3JtICJOZXh0IiBCdXR0b24gVGV4dCAodXNlZCBmb3IgbXVsdGlwYWdlIGZvcm1zKSc7CiRsYW5nWyd0aXRsZV9mb3JtX3ByZXZfYnV0dG9uJ10gPSAnRm9ybSAiUHJldmlvdXMiIEJ1dHRvbiBUZXh0ICh1c2VkIGZvciBtdWx0aXBhZ2UgZm9ybXMpJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3ZhbGlkYXRpb24nXSA9ICdGaWVsZCBWYWxpZGF0aW9uJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fY3NzX2NsYXNzJ10gPSAnQ1NTIENsYXNzIGZvciB0aGlzIGZvcm0nOwokbGFuZ1sndGl0bGVfZmllbGRfY3NzX2NsYXNzJ10gPSAnQ1NTIENsYXNzIGZvciB0aGlzIGZpZWxkJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcmVxdWlyZWRfc3ltYm9sJ10gPSAnU3ltYm9sIHRvIG1hcmsgcmVxdWlyZWQgRmllbGRzJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkJ10gPSAnUmVxdWlyZWQnOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWRfbG9uZyddID0gJ1JlcXVpcmUgYSByZXNwb25zZSBmb3IgdGhpcyBGaWVsZCc7CiRsYW5nWyd0aXRsZV9oaWRlX2xhYmVsJ10gPSAnSGlkZSBMYWJlbCc7CiRsYW5nWyd0aXRsZV9oaWRlX2xhYmVsX2xvbmcnXSA9ICdIaWRlIHRoaXMgZmllbGRcJ3MgbmFtZSBvbiBGb3JtJzsKJGxhbmdbJ3RpdGxlX3RleHQnXSA9ICdTdGF0aWMgdGV4dCB0byBkaXNwbGF5JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlZ2V4J10gPSAnVmFsaWRhdGlvbiBSZWdleCc7CiRsYW5nWyd0aXRsZV9saW5lc190b19zaG93J10gPSAnTnVtYmVyIG9mIExpbmVzIHRvIGRpc3BsYXknOwokbGFuZ1snbm9fZGVmYXVsdCddID0gJ05vIERlZmF1bHQnOwokbGFuZ1sncmVkaXJlY3RfYWZ0ZXJfYXBwcm92YWwnXSA9ICdQYWdlIHRvIHJlZGlyZWN0IGFmdGVyIGFwcHJvdmFsJzsKJGxhbmdbJ3RpdGxlX3JlZ2V4X2hlbHAnXSA9ICdUaGlzIHJlZ3VsYXIgZXhwcmVzc2lvbiB3aWxsIG9ubHkgYmUgdXNlZCBpZiAidmFsaWRhdGlvbiB0eXBlIiBpcyBzZXQgdG8gYSByZWdleC1yZWxhdGVkIG9wdGlvbi4gSW5jbHVkZSBhIGZ1bGwgUGVybC1zdHlsZSByZWdleCwgaW5jbHVkaW5nIHRoZSBzdGFydC9zdG9wIHNsYXNoZXMgYW5kIGZsYWdzIChlLmcuLCAiL2ltYWdlXFwuKFxcZCspL2kiKSc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9hYmJyZXYnXSA9ICdSZXFcJ2QnOwokbGFuZ1sndGl0bGVfdGl0bGVfcG9zaXRpb24nXSA9ICdGaWVsZCBUaXRsZSBQb3NpdGlvbiAobm9uLUNTUyBMYXlvdXQgb25seSknOwokbGFuZ1sndGl0bGVfdGFibGVfbGF5b3V0X2xlZnQnXSA9ICdUaXRsZSBvbiBMZWZ0JzsKJGxhbmdbJ3RpdGxlX3RhYmxlX2xheW91dF9hYm92ZSddID0gJ1RpdGxlIEFib3ZlJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzJ10gPSAnSGlkZSBFcnJvcnMnOwokbGFuZ1sndGl0bGVfZm9ybV9kaXNwbGF5dHlwZSddID0gJ0Zvcm0gRGlzcGxheSBUeXBlJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzX2xvbmcnXSA9ICdQcmV2ZW50IGRlYnVnIC8gZXJyb3IgbWVzc2FnZXMgZnJvbSBiZWluZyBzZWVuIGJ5IHVzZXJzLic7CiRsYW5nWyd0aXRsZV9lbWFpbF90ZW1wbGF0ZSddID0gJ0VtYWlsIFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZSddID0gJ01heGltdW0gdXBsb2FkIGZpbGUgc2l6ZSAoa2lsb2J5dGVzKSc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX3NpemVfbG9uZyddID0gJ1RoaXMgbGltaXRhdGlvbiBpcyBpbiBhZGRpdGlvbiB0byBhbnkgbGltaXRzIHNldCBieSB0aGUgcGhwIG9yIHdlYiBzZXJ2ZXIgY29uZmlndXJhdGlvbic7CiRsYW5nWyd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ1Blcm1pdHRlZCBFeHRlbnNpb25zJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zX2xvbmcnXSA9ICdFbnRlciBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0LCBleGNsdWRpbmcgdGhlIGRvdCAoZS5nLiwgImpwZyxnaWYsanBlZyIpLiBTcGFjZXMgd2lsbCBiZSBpZ25vcmVkLiBMZWF2aW5nIHRoaXMgYmxhbmsgbWVhbnMgdGhlcmUgd2lsbCBiZSBubyByZXN0cmljdGlvbnMuJzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnMnXSA9ICdEaXNwbGF5IHJlc3RyaWN0aW9ucz8nOwokbGFuZ1sndGl0bGVfc2hvd19saW1pdGF0aW9uc19sb25nJ10gPSAnRGlzcGxheSBhbnkgc2l6ZSBhbmQgZXh0ZW5zaW9uIHJlc3RyaWN0aW9ucyB3aXRoIHRoZSB1cGxvYWQgZmllbGQ/JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSB0byB1c2UgdG8gRGlzcGxheSBGb3JtJzsKJGxhbmdbJ3RpdGxlX3BhZ2VfeF9vZl95J10gPSAnUGFnZSAlcyBvZiAlcyc7CiRsYW5nWyd0aXRsZV9ub19hZHZhbmNlZF9vcHRpb25zJ10gPSAnRmllbGQgaGFzIG5vIGFkdmFuY2VkIG9wdGlvbnMuJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdW5zcGVjaWZpZWQnXSA9ICdUZXh0IHRvIHJldHVybiBmb3IgdW5zcGVjaWZpZWQgZmllbGQgdmFsdWVzJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9mYXN0YWRkX2xvbmcnXSA9ICdFbmFibGUgZmFzdCBmaWVsZCBhZGRpbmcgcHVsbGRvd24gZm9yIGZvcm1zPyc7CiRsYW5nWyd0aXRsZV9lbmFibGVfZmFzdGFkZCddID0gJ0VuYWJsZSBmYXN0IGZpZWxkIGFkZCBwdWxsZG93bj8nOwokbGFuZ1sndGl0bGVfZmFzdGFkZCddID0gJ0Zhc3QgZmllbGQgYWRkZXInOwokbGFuZ1snbGlua19sYWJlbCddID0gJ0xpbmsgTGFiZWwnOwokbGFuZ1snbGlua19kZXN0aW5hdGlvbiddID0gJ0xpbmsgRGVzdGluYXRpb24gVVJMJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfc2V0J10gPSAnQ2hlY2tlZCBieSBEZWZhdWx0Pyc7CiRsYW5nWydoZWxwX3ZhcmlhYmxlc19mb3JfdGVtcGxhdGUnXSA9ICdWYXJpYWJsZXMgRm9yIFRlbXBsYXRlJzsKJGxhbmdbJ2hlbHBfc3VibWlzc2lvbl9kYXRlJ10gPSAnRGF0ZSBvZiBTdWJtaXNzaW9uJzsKJGxhbmdbJ2hlbHBfc2VydmVyX25hbWUnXSA9ICdZb3VyIHNlcnZlcic7CiRsYW5nWydoZWxwX3N1Yl9zb3VyY2VfaXAnXSA9ICdJUCBhZGRyZXNzIG9mIHBlcnNvbiB1c2luZyBmb3JtJzsKJGxhbmdbJ2hlbHBfc3ViX3VybCddID0gJ1VSTCBvZiBwYWdlIGNvbnRhaW5pbmcgZm9ybSc7CiRsYW5nWydoZWxwX290aGVyX2ZpZWxkcyddID0gJ090aGVyIGZpZWxkcyB3aWxsIGJlIGF2YWlsYWJsZSBhcyB5b3UgYWRkIHRoZW0gdG8gdGhlIGZvcm0uJzsKJGxhbmdbJ2hlbHBfZGF0ZV9mb3JtYXQnXSA9ICdTZWUgPGEgaHJlZj0iaHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5kYXRlLnBocCIgdGFyZ2V0PV9ORVc+dGhlIFBIUCBNYW51YWw8L2E+IGZvciBmb3JtYXR0aW5nIGhlbHAuJzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVfbmFtZSddID0gJ1ZhcmlhYmxlJzsKJGxhbmdbJ2hlbHBfZm9ybV9maWVsZCddID0gJ0ZpZWxkIFJlcHJlc2VudGVkJzsKJGxhbmdbJ2xpbmtfYmFja190b19mb3JtJ10gPSAnwqsgQmFjayB0byBGb3JtJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfdGVtcGxhdGUnXSA9ICdDcmVhdGUgU2FtcGxlIFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaGVhZGVyJ10gPSAnQ3JlYXRlIFNhbXBsZSBIZWFkZXInOwokbGFuZ1snaGVscF90YWJfc3ltYm9sJ10gPSAnYSB0YWIgY2hhcmFjdGVyJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfdGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSBmb3Igb25lIGxpbmUgb2Ygb3V0cHV0IGZpbGUnOwokbGFuZ1sndGl0bGVfZmlsZV9oZWFkZXInXSA9ICdUZW1wbGF0ZSBmb3IgdGhlIGhlYWRlciBvZiBvdXRwdXQgZmlsZSc7CiRsYW5nWyd0aXRsZV9jb25maXJtYXRpb25fdXJsJ10gPSAnVVJMIHRvIGNsaWNrIGZvciBmb3JtIGNvbmZpcm1hdGlvbic7CiRsYW5nWydub19yZWZlcnJlcl9pbmZvJ10gPSAnTm8gSFRUUF9SRUZFUkVSIGluZm8gYXZhaWxhYmxlIChwcm9iYWJseSBkdWUgdG8gdXNlIG9mIFVzZXIgRW1haWwgVmFsaWRhdGlvbiknOwokbGFuZ1sndmFsaWRhdGlvbl9wYXJhbV9lcnJvciddID0gJ1ZhbGlkYXRpb24gUGFyYW1ldGVyIEVycm9yLiBQbGVhc2UgbWFrZSBzdXJlIHlvdSBjb3B5IHRoZSBVUkwgZnJvbSB5b3VyIGVtYWlsIGNvcnJlY3RseSEnOwokbGFuZ1sndmFsaWRhdGlvbl9yZXNwb25zZV9lcnJvciddID0gJ1ZhbGlkYXRpb24gUmVwc29uc2UgRXJyb3IuIFBsZWFzZSBtYWtlIHN1cmUgeW91IGNvcHkgdGhlIFVSTCBmcm9tIHlvdXIgZW1haWwgY29ycmVjdGx5ISc7CiRsYW5nWyd2YWxpZGF0aW9uX25vX2ZpZWxkX2Vycm9yJ10gPSAnVmFsaWRhdGlvbiBSZXBzb25zZSBFcnJvci4gTm8gZW1haWwgdmFsaWRhdGlvbiBmaWVsZCBpbiB0aGlzIGZvcm0hJzsKJGxhbmdbJ3RpdGxlX2RhdGVfZm9ybWF0J10gPSAnRGF0ZSBGb3JtYXQgKHN0YW5kYXJkIDxhIGhyZWY9Imh0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24uZGF0ZS5waHAiPlBIUCBEYXRlIEZvcm1hdHM8L2E+KSc7CiRsYW5nWyd0aXRsZV91c2Vfd3lzaXd5ZyddID0gJ1VzZSBXWVNJV1lHIGVkaXRvciBmb3IgdGV4dCBBcmVhPyc7CiRsYW5nWydkaXNwdHlwZV90YWJsZSddID0gJ1RhYmxlL0NTUyc7CiRsYW5nWydkaXNwdHlwZV9jc3MnXSA9ICdQdXJlIENTUyc7CiRsYW5nWydkaXNwdHlwZV90ZW1wbGF0ZSddID0gJ0N1c3RvbSBUZW1wbGF0ZSc7CiRsYW5nWydhZG1pbmRlc2MnXSA9ICdBZGQsIGVkaXQgYW5kIG1hbmFnZSBpbnRlcmFjdGl2ZSBGb3Jtcyc7CiRsYW5nWydkYXRlX2phbnVhcnknXSA9ICdKYW51YXJ5JzsKJGxhbmdbJ2RhdGVfZmVicnVhcnknXSA9ICdGZWJydWFyeSc7CiRsYW5nWydkYXRlX21hcmNoJ10gPSAnTWFyY2gnOwokbGFuZ1snZGF0ZV9hcHJpbCddID0gJ0FwcmlsJzsKJGxhbmdbJ2RhdGVfbWF5J10gPSAnTWF5JzsKJGxhbmdbJ2RhdGVfanVuZSddID0gJ0p1bmUnOwokbGFuZ1snZGF0ZV9qdWx5J10gPSAnSnVseSc7CiRsYW5nWydkYXRlX2F1Z3VzdCddID0gJ0F1Z3VzdCc7CiRsYW5nWydkYXRlX3NlcHRlbWJlciddID0gJ1NlcHRlbWJlcic7CiRsYW5nWydkYXRlX29jdG9iZXInXSA9ICdPY3RvYmVyJzsKJGxhbmdbJ2RhdGVfbm92ZW1iZXInXSA9ICdOb3ZlbWJlcic7CiRsYW5nWydkYXRlX2RlY2VtYmVyJ10gPSAnRGVjZW1iZXInOwokbGFuZ1snc3VibWlzc2lvbl9lcnJvciddID0gJ1NvcnJ5ISBUaGVyZSB3YXMgYW4gZXJyb3IgaGFuZGxpbmcgeW91ciBmb3JtIHN1Ym1pc3Npb24uJzsKJGxhbmdbJ3N1Ym1pdF9lcnJvciddID0gJ0Zvcm1CdWlsZGVyIHN1Ym1pdCBlcnJvcjogJXMnOwokbGFuZ1sndXBsb2Fkc19lcnJvciddID0gJ0Vycm9yIGNvbW1pdHRpbmcgZmlsZSB0byB0aGUgdXBsb2FkcyBtb2R1bGU6ICVzJzsKJGxhbmdbJ25vdXBsb2Fkc19lcnJvciddID0gJ0NvdWxkIG5vdCBmaW5kIHRoZSB1cGxvYWRzIG1vZHVsZSc7CiRsYW5nWyd1cGxvYWRfYXR0YWNoX2Vycm9yJ10gPSAnVXBsb2FkL0F0dGFjaG1lbnQgZXJyb3Igb24gZmlsZSAlcyAodG1wX25hbWU6ICVzLCBvZiB0eXBlICVzKSc7CiRsYW5nWydzdWJtaXNzaW9uX2Vycm9yX2ZpbGVfbG9jayddID0gJ0Vycm9yLiBVbmFibGUgdG8gb2J0YWluIGxvY2sgZm9yIGZpbGUuJzsKJGxhbmdbJ2VtYWlsX2RlZmF1bHRfdGVtcGxhdGUnXSA9ICdGb3JtQnVpbGRlciBTdWJtaXNzaW9uDQonOwokbGFuZ1snZW1haWxfdGVtcGxhdGVfbm90X3NldCddID0gJzxici8+RW1haWwgVGVtcGxhdGUgbm90IHlldCBzZXQhJzsKJGxhbmdbJ21pc3NpbmdfY21zX21haWxlciddID0gJ0Zvcm1CdWlsZGVyOiBDYW5ub3QgZmluZCByZXF1aXJlZCBtb2R1bGUgQ01TTWFpbGVyISc7CiRsYW5nWyd1c2VyX2FwcHJvdmVkX3N1Ym1pc3Npb24nXSA9ICdVc2VyIGFwcHJvdmVkIHN1Ym1pc3Npb24gJXMgZnJvbSAlcyc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J10gPSAnRXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZCc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InXSA9ICdFdmVudCB0cmlnZ2VyZWQgaWYgdGhlcmUgaXMgYW4gZXJyb3Igd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1EaXNwbGF5J10gPSAnRXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIGRpc3BsYXllZCc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J10gPSAnPHA+RXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZC48L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gVGhlIGZvcm0gbmFtZSAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4NCjxsaT48ZW0+dmFsdWVfPG5hbWU+PC9lbT4gLSBTdXBwbHkgYSBkZWZhdWx0IHZhbHVlIHRvIGEgZmllbGQgd2l0aCB0aGUgc3BlY2lmaWVkIG5hbWUuPC9saT4NCjwvdWw+ICc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InXSA9ICc8cD5FdmVudCB0cmlnZ2VyZWQgaWYgdGhlcmUgaXMgYW4gZXJyb3Igd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIFRoZSBmb3JtIG5hbWUgKHN0cmluZyk8L2xpPg0KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBUaGUgaW50ZXJuYWwgZm9ybSBpZCAoaW50KTwvbGk+DQo8bGk+PGVtPmVycm9yPC9lbT4gLSBBIGxpc3Qgb2YgYWxsIGtub3duIGVycm9ycyAoc3RyaW5nKTwvbGk+DQo8L3VsPiAnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXSA9ICc8cD5FdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgZGlzcGxheWVkPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIFRoZSBmb3JtIG5hbWUgKHN0cmluZyk8L2xpPg0KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBUaGUgaW50ZXJuYWwgZm9ybSBpZCAoaW50KTwvbGk+DQo8L3VsPiAnOwokbGFuZ1sncG9zdF9pbnN0YWxsJ10gPSAnPHA+TWFrZSBzdXJlIHRvIHNldCB0aGUgIk1vZGlmeSBGb3JtcyIgcGVybWlzc2lvbnMNCm9uIHVzZXJzIHdobyB3aWxsIGJlIGFkbWluaXN0ZXJpbmcgZmVlZGJhY2sgZm9ybXMuIEFsc28sIGlmIHlvdVwnbGwgYmUgZW1haWxpbmcgZm9ybQ0KcmVzdWx0cywgYmUgc3VyZSB0byB1cGRhdGUgdGhlIENvbmZpZ3VyYXRpb24gYXBwcm9wcmlhdGVseS48L3A+DQo8cD5QbGVhc2UgYmUgYXdhcmUgdGhhdCBhIGZlZWRiYWNrIGZvcm0gc2hvdWxkIG5vdCBiZSBhY3RpdmUgKGUuZy4sIHVzYWJsZSBieSB0aGUgcHVibGljKSB3aGlsZQ0KeW91IGFyZSBzdGlsbCBlZGl0aW5nIHRoZSBmb3JtLiBZb3Ugc2hvdWxkIGNyZWF0ZSB0aGUgZm9ybSwgYW5kIHBsYWNlIHRoZSB0YWcgaW50byBhbiBhY3RpdmUNCmNvbnRlbnQgcGFnZSBvbmx5IHdoZW4geW91IGhhdmUgZmluaXNoZWQgZWRpdGluZy4gT3RoZXJ3aXNlLCBlcnJvbmVvdXMgcmVzdWx0cyBjb3VsZCBiZSByZXR1cm5lZC48L3A+DQo8cD5BZGRpdGlvbmFsbHksIHRoaXMgdmVyc2lvbiBkb2VzIG5vdCBzdXBwb3J0IHBhcmFsbGVsIGVkaXRpbmcgb2YgZm9ybXMuIFBsZWFzZSB0YWtlIGNhcmUgdGhhdA0Kb25seSBvbmUgYWRtaW4gaXMgZWRpdGluZyBhIGdpdmVuIGZvcm0gYXQgYSBnaXZlbiB0aW1lLjwvcD4nOwokbGFuZ1snaGVscCddID0gJzxoMz5XaGF0IERvZXMgVGhpcyBEbz88L2gzPg0KPHA+VGhlIEZvcm0gQnVpbGRlciBNb2R1bGUgYWxsb3dzIHlvdSB0byBjcmVhdGUgZmVlZGJhY2sgZm9ybXMgKGluIGZhY3QsIGl0XCdzIGEgcmVwbGFjZW1lbnQgb2YgdGhlIG9yaWdpbmFsIEZlZWRiYWNrIEZvcm0gbW9kdWxlKSwgd2l0aCB0aGUgYWRkZWQgcG93ZXIgb2YgZGF0YWJhc2Ugc3RvcmFnZS4gV2l0aCBpdHMgY29tcGFuaW9uIG1vZHVsZSBGb3JtIEJyb3dzZXIsIHlvdSBjYW4gdXNlIGl0IHRvIGNyZWF0ZSBzaW1wbGUgZGF0YWJhc2UgYXBwbGljYXRpb25zLjwvcD4NCjxwPlRoZSBmb3JtcyBjcmVhdGVkIHVzaW5nIHRoZSBGb3JtIEJ1aWxkZXIgbWF5IGJlIGluc2VydGVkDQppbnRvIHRlbXBsYXRlcyBhbmQvb3IgY29udGVudCBwYWdlcy4gRm9ybXMgbWF5IGNvbnRhaW4gbWFueSBraW5kcyBvZiBpbnB1dHMsIGFuZCBtYXkgaGF2ZQ0KdmFsaWRhdGlvbiBhcHBsaWVkIHRvIHRoZXNlIGlucHV0cy4gVGhlIHJlc3VsdHMgb2YgdGhlc2UgZm9ybXMgbWF5IGJlIGhhbmRsZWQgaW4gYSB2YXJpZXR5IG9mIHdheXMuPC9wPg0KDQo8aDM+SG93IERvIEkgVXNlIGl0PzwvaDM+DQo8UD5JbnN0YWxsIGl0LCBhbmQgcG9rZSBhcm91bmQgdGhlIG1lbnVzLiBQbGF5IHdpdGggaXQuIFRyeSBjcmVhdGluZyBmb3JtcywgYW5kIGFkZGluZyB0aGVtIHRvIHlvdXIgY29udGVudC4NCklmIHlvdSBnZXQgc3R1Y2ssIGNoYXQgd2l0aCBtZSBvbiB0aGUgI2NtcyBJUkMgY2hhbm5lbCwgcG9zdCB0byB0aGUgZm9ydW0sIHNlbmQgbWUgZW1haWwsIG9yLCBpZiB5b3VcJ3JlDQpyZWFsbHkgZGVzcGVyYXRlLCByZWFkIHRoZSByZXN0IG9mIHRoaXMgcGFnZS48L1A+DQoNCjxoMz5Ib3cgRG8gSSBDcmVhdGUgYSBGb3JtPC9oMz4NCjxwPkluIHRoZSBDTVMgQWRtaW4gTWVudSwgeW91IHNob3VsZCBnZXQgYSBuZXcgbWVudSBpdGVtIGNhbGxlZCBGb3JtQnVpbGRlci4gQ2xpY2sgb24gdGhpcy4gT24gdGhlIHBhZ2UNCnRoYXQgZ2V0cyBzaG93biwgdGhlcmUgYXJlIG9wdGlvbnMgKGF0IHRoZSBib3R0b20gb2YgdGhlIGxpc3Qgb2YgRm9ybXMpIHRvIEFkZCBhIE5ldyBGb3JtIG9yIE1vZGlmeQ0KQ29uZmlndXJhdGlvbi48L3A+DQoNCjxoMz5BZGRpbmcgYSBGb3JtIHRvIGEgUGFnZTwvaDM+DQo8cD5JbiB0aGUgbWFpbiBGb3JtQnVpbGRlciBhZG1pbiBwYWdlLCB5b3UgY2FuIHNlZSBhbiBleGFtcGxlIG9mIHRoZSB0YWcgdXNlZCB0byBkaXNwbGF5IGVhY2ggZm9ybS4gSXQgbG9va3MNCnNvbWV0aGluZyBsaWtlIHtjbXNfbW9kdWxlIG1vZHVsZT1cJ0Zvcm1CdWlsZGVyXCcgZm9ybT1cJ3NhbXBsZV9mb3JtXCd9PC9wPg0KPHA+QnkgY29weWluZyB0aGlzIHRhZyBpbnRvIHRoZSBjb250ZW50IG9mIGEgcGFnZSwgb3IgaW50byBhIHRlbXBsYXRlLCB3aWxsIGNhdXNlIHRoYXQgZm9ybSB0byBiZSBkaXNwbGF5ZWQuDQpJbiB0aGVvcnksIHlvdSBjYW4gaGF2ZSBtdWx0aXBsZSBmb3JtcyBvbiBhIHBhZ2UgaWYgeW91IHJlYWxseSB3YW50IHRvLiBCZSBjYXJlZnVsIHdoZW4gcGFzdGluZyB0aGUgdGFnDQppbnRvIGEgcGFnZVwncyBjb250ZW50IGlmIHlvdSB1c2UgYSBXWVNJV1lHIGVkaXRvciBzdWNoIGFzIFRpbnlNQ0Ugb3IgSFRNTEFyZWEuIFRoZXNlIGVkaXRvcnMgbWF5IHN0ZWFsdGhpbHkNCmNoYW5nZSB0aGUgcXVvdGUgbWFya3MgKCIpIGludG8gSFRNTCBlbnRpdGllcyAoIiksIGFuZCB0aGUgZm9ybXMgd2lsbCBub3Qgc2hvdyB1cC4gVHJ5IHVzaW5nDQpzaW5nbGUgcXVvdGVzIChcJykgb3IgZWRpdGluZyB0aGUgSFRNTCBkaXJlY3RseS4NCg0KPGgzPldvcmtpbmcgd2l0aCBGb3JtczwvaDM+DQo8cD5CeSBjbGlja2luZyBvbiBhIEZvcm1cJ3MgbmFtZSwgeW91IGVudGVyIHRoZSBGb3JtIEVkaXQgcGFnZS4gVGhlcmUgYXJlIHNldmVyYWwgdGFicywgd2hpY2ggYXJlIGRlc2NyaWJlZCBiZWxvdzo8L3A+DQo8aDQ+TWFpbjwvaDQ+DQo8cD5UaGlzIGlzIHRoZSBtYWluIHBsYWNlIHlvdVwnbGwgd29yayBvbiB5b3VyIGZvcm0uIEhlcmUsIHlvdSBnaXZlIGl0IGEgbmFtZSwgYW4gYWxpYXMgKHdoaWNoIGlzIHVzZWQgdG8gaWRlbnRpZnkgaXQgZm9yIHBsYWNpbmcgaXQgaW4gYSBwYWdlIG9yIHRlbXBsYXRlKSwgYW5kLCBvcHRpb25hbGx5LCBhIENTUyBjbGFzcyB3aXRoIHdoaWNoIHRvIHdyYXAgdGhlIHdob2xlIHRoaW5nLiBZb3UgYWxzbyBzZWxlY3QgdGhlIGRpc3BsYXkgdHlwZS4gWW91ciBjaG9pY2VzIGFyZTo8L3A+DQo8dWw+DQo8bGk+VGFibGUvQ1NTLiBUaGUgZm9ybSBpcyBjcmVhdGVkIHVzaW5nIEhUTUwgdGFibGVzLiBJZiB5b3UgZG9uXCd0IGtub3cgd2hhdCB0byBjaG9vc2UsIHRoaXMgaXMgdGhlIGVhc2llc3Qgb3B0aW9uLCBhbmQgd2lsbCBwcm9iYWJseSBkbyBtb3N0IG9mIHdoYXQgeW91IHdhbnQuIFlvdSBjYW4gc3RpbGwgdXNlIENTUyB0byBzdHlsZSB0aGUgZm9ybSBpZiB5b3Ugd2FudC48L2xpPg0KPGxpPlB1cmUgQ1NTLiBUaGUgZm9ybSBpcyBjcmVhdGVkLCB3aXRoIGFsbCB0aGUgZmllbGRzIHdyYXBwZWQgaW4gPGRpdj4gdGFncy4gWW91IGNhbiB0aGVuIHN0eWxlIHRoZSBmb3JtIGFzIHlvdSBzZWUgZml0LjwvbGk+DQo8bGk+Q3VzdG9tIFRlbXBsYXRlLiBCYXNpY2FsbHksIHlvdSBnZXQgYSBzbWFydHkgdGVtcGxhdGUsIGEgYnVuY2ggb2YgdmFyaWFibGVzLCBhbmQgeW91XCdyZSBvbiB5b3VyIG93bi4gWW91IGhhdmUgdGhlIHBvd2VyIHRvIGNyZWF0ZSB3aGF0ZXZlciB5b3Ugd2FudC48L2xpPg0KPC91bD4NCjxwPkJlbG93IHRoaXMsIGlmIHlvdSBoYXZlIGl0IGVuYWJsZWQsIGlzIHRoZSAiZmFzdCBmaWVsZCBhZGRlciIgcHVsbGRvd24sIHRoYXQgbGV0cyB5b3UgcXVpY2tseSBhZGQgYSBmaWVsZCB0byB0aGUgZW5kIG9mIHlvdXIgZm9ybSBieSBzZWxlY3RpbmcgdGhlIGZpZWxkIHR5cGUuPC9wPg0KPHA+QmVsb3cgdGhpcyBpcyB0aGUgbGlzdCBvZiBmaWVsZHMgdGhhdCBtYWtlIHVwIHlvdXIgZm9ybS4gTW9yZSBkZXRhaWwgb24gdGhpcyBpcyBkZXNjcmliZWQgYmVsb3cuPC9wPg0KPGg0PkZvcm0gU2V0dGluZ3M8L2g0Pg0KPHA+Rm9ybSBTZXR0aW5ncyBhbGxvd3MgeW91IHRvIGN1c3RvbWl6ZSBhIGxvdCBvZiB0aGUgbWVzc2FnZXMgYW5kIHRleHQgaW4gdGhlIGNvbnRyb2xzIGZvciB5b3VyIGZvcm0uIEl0IGFsc28gYWxsb3dzIHlvdSB0byBwaWNrIGEgcGFnZSB0byByZWRpcmVjdCB1c2VycyB0byBhZnRlciBhIHN1Y2Nlc3NmdWwgZm9ybSBzdWJtaXNzaW9uLjwvcD4NCjxoND5UYWJsZS1iYXNlZCBMYXlvdXQgT3B0aW9uczwvaDQ+DQo8cD5UYWJsZS1sYXlvdXRzIGhhdmUgZ290dGVuIHNpbXBsZXIsIHNvIHlvdXIgb25seSBvcHRpb24gaGVyZSBpcyB0aGUgcG9zaXRpb24gb2YgdGhlIGZpZWxkIG5hbWVzIHJlbGF0aXZlIHRvIHRoZSBpbnB1dHMuIElmIHlvdVwncmUgdXNpbmcgYSBUYWJsZS9DU1MgbGF5b3V0LCB5b3UgY2FuIHVzZSB0aGlzIHRhYiB0byBzZWxlY3QgdGhlIGZpZWxkIG5hbWUgcG9zaXRpb25zLjwvcD4NCjxoND5UZW1wbGF0ZSBMYXlvdXQgT3B0aW9uczwvaDQ+DQo8cD5UaGlzIGlzIHdoZXJlIHlvdSBkbyB5b3VyIGN1c3RvbWl6YXRpb24gd29yayBpZiB5b3VyIGZvcm0gdXNlcyBhIEN1c3RvbSBUZW1wbGF0ZS48L3A+DQo8cD5UaGUgZm9ybSBzaG91bGQgZGVmYXVsdCB0byBhIGEgQ3VzdG9tIHRlbXBsYXRlIHRoYXQgZG9jdW1lbnRzIHRoZSBzbWFydHkgdGFncyBhdmFpbGFibGUgdG8geW91LiBVbmxlc3MgeW91XCdyZSBhIHNtYXJ0eSBleHBlcnQsIHlvdSBwcm9iYWJseSBkb25cJ3Qgd2FudCB0byBtZXNzIGFyb3VuZCB3aXRoIHRoaXMuIElmIHlvdSBhcmUgYSBzbWFydHkgZXhwZXJ0LCB0aGlzIGlzIHdoZXJlIHlvdSBjYW4gdW5sZWFzaCB5b3VyIG1hZ2ljLjwvcD4NCjxoMz5BZGRpbmcgRmllbGRzIHRvIHlvdXIgRm9ybTwvaDM+DQo8cD5UaGUgdHlwZXMgb2YgZmllbGRzIHRoYXQgYXJlIGN1cnJlbnRseSBzdXBwb3J0ZWQgZml0IGludG8gZm91ciBncm91cHM6IHN0YW5kYXJkIGlucHV0IGZpZWxkcywgZGlzcGxheSBjb250cm9sIGZpZWxkcywgZW1haWwtc3BlY2lmaWMgZmllbGRzLCBhbmQgZm9ybSByZXN1bHQgaGFuZGxpbmcgZmllbGRzIChhbHNvIGNhbGxlZCBGb3JtIERpc3Bvc2l0aW9ucyBpbiBwbGFjZXMpOjwvcD4NCjx1bD4NCjxsaT5TdGFuZGFyZCBJbnB1dCBGaWVsZHMgLSB0aGVzZSBhcmUgaW5wdXRzIHRoYXQgYWxsb3cgZW50cnkgb2YgdHlwaWNhbCBmb3JtIGVsZW1lbnRzOyB0ZXh0IGlucHV0cywgcmFkaW8gYnV0dG9ucywgZXRjLjwvbGk+DQo8bGk+RGlzcGxheSBDb250cm9sIEZpZWxkcyAtIHRoZXNlIGlucHV0IGNvbnRyb2wgaG93IHRoZSB1c2VyIHdpbGwgc2VlIHRoZSBkaXNwbGF5IG9mIHRoZSBmb3JtOyBwYWdlIGJyZWFrcywgc3RhdGljIHRleHQsIGV0Yy48L2xpPg0KPGxpPkVtYWlsLXNwZWNpZmljIEZpZWxkcyAtIHNvbWUgZm9ybXMgZ2VuZXJhdGUgZW1haWwsIGFuZCBlbWFpbC1zcGVjaWZpYyBmaWVsZHMgY2FuIGFsdGVyIGF0dHJpYnV0ZXMgb2YgdGhlIGVtYWlscyBzZW50LjwvbGk+DQo8bGk+Rm9ybSBEaXNwb3NpdGlvbnMgLSBUaGVzZSBkZXRlcm1pbmUgd2hhdCBoYXBwZW5zIHdoZW4gdGhlIHVzZXINCnN1Ym1pdHMgdGhlIGZvcm07IGZvciBlYWNoIHJlc3VsdCBoYW5kbGluZyBmaWVsZCwgc29tZSBtZXRob2Qgb2YgdHJhbnNtaXR0aW5nLCBzYXZpbmcsIG9yIGVtYWlsaW5nIHRoZQ0KZm9ybSBjb250ZW50cyB0YWtlcyBwbGFjZS4gQSBmb3JtIG1heSBoYXZlIG11bHRpcGxlIGZvcm0gZGlzcG9zaXRpb25zLjwvbGk+DQo8L3VsPg0KPHA+Rm9ybSBmaWVsZHMgYXJlIGFzc2lnbmVkIG5hbWVzLiBUaGVzZSBuYW1lcyBpZGVudGlmeSB0aGUgZmllbGQsIG5vdCBvbmx5IG9uIHRoZSBzY3JlZW4gYXMgbGFiZWxzIGZvciB0aGUgdXNlciwNCmJ1dCBpbiB0aGUgZGF0YSB3aGVuIGl0XCdzIHN1Ym1pdHRlZCBzbyB5b3Uga25vdyB3aGF0IHRoZSB1c2VyIGlzIHJlc3BvbmRpbmcgdG8uIFBocmFzaW5nIHRoZSBuYW1lIGxpa2UgYSBxdWVzdGlvbg0KaXMgYSBoYW5keSB3YXkgb2YgbWFraW5nIGl0IGNsZWFyIHRvIHRoZSB1c2VyIHdoYXQgaXMgZXhwZWN0ZWQuIFNpbWlsYXJseSwgbWFueSBmaWVsZHMgaGF2ZSBib3RoIE5hbWVzIGFuZCBWYWx1ZXMuDQpUaGUgTmFtZXMgYXJlIHdoYXQgZ2V0cyBzaG93biB0byB0aGUgdXNlcjsgdGhlIFZhbHVlIGlzIHdoYXQgZ2V0cyBzYXZlZCBvciB0cmFuc21pdHRlZCB3aGVuIHRoZSB1c2VyIHN1Ym1pdHMNCnRoZSBmb3JtLiBUaGUgVmFsdWVzIGFyZSBuZXZlciBzZWVuIGJ5IHRoZSB1c2VyLCBub3IgYXJlIHRoZXkgdmlzaWJsZSBpbiB0aGUgSFRNTCwgc28gaXRcJ3Mgc2FmZSB0byB1c2UgZm9yDQplbWFpbCBhZGRyZXNzZXMgYW5kIHN1Y2guPC9wPg0KPHA+U29tZSBmaWVsZHMgY2FuIGhhdmUgbXVsdGlwbGUgdmFsdWVzLCBvciBtdWx0aXBsZSBuYW1lL3ZhbHVlIHBhaXJzLiBXaGVuIHlvdSBmaXJzdCBjcmVhdGUgc3VjaCBhIGZpZWxkLA0KdGhlcmUgbWF5IG5vdCBiZSBzdWZmaWNpZW50IGlucHV0cyBmb3IgeW91IHRvIHNwZWNpZnkgYWxsIHRoZSB2YWx1ZXMgeW91IHdhbnQuIFRvIGdldCBtb3JlIHNwYWNlIGZvciBpbnB1dHRpbmcNCnRoZXNlIHZhbHVlcywgdXNlIHRoZSBidXR0b25zIGF0IHRoZSBib3R0b20gb2YgdGhlIHBhZ2UgZm9yIGFkZGluZyBvcHRpb25zLjwvcD4NCjxwPkZpZWxkcyBjYW4gYmUgYXNzaWduZWQgdmFsaWRhdGlvbiBydWxlcywgd2hpY2ggdmFyeSBhY2NvcmRpbmcgdG8gdGhlIHR5cGUgb2YgdGhlIGZpZWxkLiBUaGVzZSBydWxlcyBoZWxwDQplbnN1cmUgdGhhdCB0aGUgdXNlciBlbnRlcnMgdmFsaWQgZGF0YS4gVGhleSBtYXkgYWxzbyBiZQ0Kc2VwYXJhdGVseSBtYXJrZWQgIlJlcXVpcmVkIiwgd2hpY2ggd2lsbCBmb3JjZSB0aGUgdXNlciB0byBlbnRlciBhIHJlc3BvbnNlLjwvcD4NCjxwPkZpZWxkcyBhbHNvIG1heSBiZSBhc3NpZ25lZCBhIENTUyBjbGFzcy4gVGhpcyBzaW1wbHkgd3JhcHMgdGhlIGlucHV0IGluIGEgZGl2IHdpdGggdGhhdCBjbGFzcywgc28gYXMgdG8gYWxsb3cNCmN1c3RvbWl6ZWQgbGF5b3V0cy4gVG8gdXNlIHRoaXMgZWZmZWN0aXZlbHksIHlvdSBtYXkgbmVlZCB0byAidmlldyBzb3VyY2UiIG9uIHRoZSBnZW5lcmF0ZWQgZm9ybSwgYW5kIHRoZW4NCndyaXRlIHlvdXIgQ1NTLjwvcD4NCjx1bD4NCjxsaT5TdGFuZGFyZCBJbnB1dHMNCjx1bD48bGk+VGV4dCBJbnB1dC4gVGhpcyBpcyBhIHN0YW5kYXJkIHRleHQgZmllbGQuIFlvdSBjYW4gbGltaXQgdGhlIGxlbmd0aCwgYW5kIGFwcGx5IHZhcmlvdXMgdmFsaWRhdGlvbg0KZnVuY3Rpb25zIHRvIHRoZSBmaWVsZC48L2xpPg0KPGxpPlRleHQgQXJlYS4gVGhpcyBpcyBhIGJpZywgZnJlZS1mb3JtIHRleHQgaW5wdXQgZmllbGQuPC9saT4NCjxsaT5DaGVja2JveC4gVGhpcyBpcyBhIHN0YW5kYXJkIGNoZWNrIGJveC48L2xpPg0KPGxpPkNoZWNrYm94IEdyb3VwLiBUaGlzIGlzIGEgY29sbGVjdGlvbiBvZiBjaGVja2JveGVzLiBUaGUgb25seSBkaWZmZXJlbmNlIGJldHdlZW4gdGhpcyBpbnB1dCBhbmQgYQ0KY29sbGVjdGlvbiBvZiBDaGVja2JveCBpbnB1dHMgaXMgdGhhdCB0aGV5IGFyZSBwcmVzZW50ZWQgYXMgYSBncm91cCwgd2l0aCBvbmUgbmFtZSwgYW5kIGNhbiBoYXZlIGEgdmFsaWRhdGlvbiBmdW5jdGlvbiByZXF1aXJpbmcgdGhhdCB5b3UgY2hlY2sgb25lIG9yIG1vcmUgb2YgdGhlIGJveGVzIGluIHRoZSBncm91cC48L2xpPg0KPGxpPlJhZGlvIEdyb3VwLiBUaGlzIGlzIGEgY29sbGVjdGlvbiBvZiByYWRpbyBidXR0b25zLiBPbmx5IG9uZSBvZiB0aGUgZ3JvdXAgbWF5IGJlIHNlbGVjdGVkIGJ5IHRoZSB1c2VyLjwvbGk+DQo8bGk+UHVsbGRvd24uIFRoaXMgaXMgYSBzdGFuZGFyZCBwdWxsZG93biBtZW51LiBJdFwncyByZWFsbHkgY29uY2VwdHVhbGx5IHRoZSBzYW1lIHRoaW5nIGFzIGEgcmFkaW8gYnV0dG9uDQpncm91cCwgYnV0IGlzIGJldHRlciB3aGVuIHRoZXJlIGFyZSBhIGxhcmdlIG51bWJlciBvZiBvcHRpb25zLjwvbGk+DQo8bGk+TXVsdGlzZWxlY3QuIFRoaXMgaXMgYSBtdWx0aS1zZWxlY3QgZmllbGQuIEl0XCdzIHJlYWxseSBjb25jZXB0dWFsbHkgdGhlIHNhbWUgdGhpbmcgYXMgYSBjaGVja2JveCBidXR0b24NCmdyb3VwLCBidXQgaXMgYmV0dGVyIHdoZW4gdGhlcmUgYXJlIGEgbGFyZ2UgbnVtYmVyIG9mIG9wdGlvbnMsIGFzIHlvdSBjYW4gbGltaXQgdGhlIG51bWJlciBkaXNwbGF5ZWQgb24gdGhlIHNjcmVlbiBhdCBhbnkgb25lIHRpbWUuPC9saT4NCjxsaT5TdGF0ZS4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIFN0YXRlcyBvZiB0aGUgVS5TLjwvbGk+DQo8bGk+Q291bnRyaWVzLiBUaGlzIGlzIGEgcHVsbGRvd24gbGlzdGluZyB0aGUgQ291bnRyaWVzIG9mIHRoZSB3b3JsZCAoYXMgb2YgSnVseSAyMDA1KS48L2xpPg0KPGxpPkRhdGUgUGlja2VyLiBUaGlzIGlzIGEgdHJpcGxlIHB1bGxkb3duIGFsbG93aW5nIHRoZSB1c2VyIHRvIHNlbGVjdCBhIGRhdGUuPC9saT4NCjwvdWw+PC9saT4NCg0KPGxpPkVtYWlsLXNwZWNpZmljIElucHV0cw0KPHVsPjxsaT5FbWFpbCBGcm9tIEFkZHJlc3MgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgdGhlaXIgZW1haWwgYWRkcmVzcy4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIGFkZHJlc3MgaW4gdGhlICJGcm9tIiBmaWVsZC48L2xpPg0KPGxpPkVtYWlsIEZyb20gTmFtZSBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSB0aGVpciBuYW1lLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgbmFtZSBpbiB0aGUgIkZyb20iIGZpZWxkLjwvbGk+DQo8L3VsPjwvbGk+DQoNCjxsaT5EaXNwbGF5IENvbnRyb2wgRmllbGRzPHVsPg0KPGxpPi1QYWdlIEJyZWFrLiBUaGlzIGFsbG93cyB5b3UgdG8gc3BsaXQgeW91ciBmZWVkYmFjayBmb3JtIGludG8gbXVsdGlwbGUgcGFnZXMuIEVhY2ggcGFnZSBpcw0KaW5kZXBlbmRlbnRseSB2YWxpZGF0ZWQuIFRoaXMgaXMgZ29vZCBmb3IgYXBwbGljYXRpb25zIGxpa2Ugb25saW5lIHN1cnZleXMuPC9saT4NCjxsaT4tU3RhdGljIFRleHQuIFRoaXMgYWxsb3dzIHlvdSB0byBwdXQgdGV4dCBvciBhIGxhYmVsIGluIHRoZSBtaWRkbGUgb2YgeW91ciBmb3JtLiBUaGlzIGlzIHVzZWZ1bCBmb3IgZ2l2aW5nIGFkZGl0aW9uYWwgaGVscCB0ZXh0LCBlc3BlY2lhbGx5IGlmIHlvdVwncmUgbm90IHVzaW5nIGEgQ3VzdG9tIFRlbXBsYXRlIHRvIHJlbmRlciB5b3VyIGZvcm0uPC9saT4NCjwvdWw+PC9saT4NCg0KPGxpPkZvcm0gSGFuZGxpbmcgSW5wdXRzIChEaXNwb3NpdGlvbnMpDQo8dWw+PGxpPipFbWFpbCBSZXN1bHRzIEJhc2VkIG9uIFB1bGxkb3duLiBUaGlzIGlzIHVzZWZ1bCBmb3Igd2ViIHNpdGVzIHdoZXJlIGNvbW1lbnRzIGdldCByb3V0ZWQgYmFzZWQgb24gdGhlaXIgc3ViamVjdCBtYXR0ZXIsIGUuZy4sIGJ1Z3MgZ2V0IHNlbnQgdG8gb25lIHBlcnNvbiwgbWFya2V0aW5nIHF1ZXN0aW9ucyB0byBhbm90aGVyIHBlcnNvbiwgc2FsZXMgcmVxdWVzdHMgdG8gc29tZW9uZSBlbHNlLCBldGMuIFRoZSBwdWxsZG93biBpcyBwb3B1bGF0ZWQgd2l0aCB0aGUgc3ViamVjdHMsIGFuZCBlYWNoIGdldHMgZGlyZWN0ZWQgdG8gYSBzcGVjaWZpYyBlbWFpbCBhZGRyZXNzLiBZb3Ugc2V0IHVwIHRoZXNlIG1hcHBpbmdzIGluIHRoZSB3aGVuIHlvdSBjcmVhdGUgb3IgZWRpdCBhIGZpZWxkIG9mIHRoaXMgdHlwZS4gSWYgeW91IHVzZSBvbmUgb2YgdGhlc2UgIkRpcmVjdG9yIiBwdWxsZG93bnMsIHRoZSB1c2VyIG11c3QgbWFrZSBhIHNlbGVjdGlvbiBpbiBvcmRlciB0byBzdWJtaXQgdGhlDQpmb3JtLiBUaGlzIGlucHV0IGlzIHBhcnQgb2YgdGhlIGZvcm0gdGhlIHVzZXIgc2VlcywgYWx0aG91Z2ggdGhlIGVtYWlsIGFkZHJlc3NlcyBhcmUgbm90IG1hZGUgdmlzaWJsZSBub3INCmFyZSB0aGV5IGVtYmVkZGVkIGluIHRoZSBIVE1MLjwvbGk+DQo8bGk+KkVtYWlsIFJlc3VsdHMgdG8gc2V0IEFkZHJlc3MoZXMpLiBUaGlzIHNpbXBseSBzZW5kcyB0aGUgZm9ybSByZXN1bHRzIHRvIG9uZSBvciBtb3JlIGVtYWlsIGFkZHJlc3NlcyB0aGF0IHlvdSBlbnRlciB3aGVuIHlvdSBjcmVhdGUgb3IgZWRpdCB0aGlzIHR5cGUgb2YgZmllbGQuIFRoaXMgZmllbGQgYW5kIGl0cyBuYW1lIGFyZSBub3QgdmlzaWJsZSBpbiB0aGUNCmZvcm0gdGhhdCB0aGUgdXNlciBzZWVzLiBUaGUgZW1haWwgYWRkcmVzc2VzIGFyZSBub3QgbWFkZSB2aXNpYmxlIG5vcg0KYXJlIHRoZXkgZW1iZWRkZWQgaW4gdGhlIEhUTUwuPC9saT4NCjxsaT4qU3RvcmUgUmVzdWx0cyBpbiBEYXRhYmFzZS4gVGhpcyB3aWxsIHN0b3JlIHRoZSBmb3JtIGNvbnRlbnRzIGluIGFuIGludGVybmFsIGRhdGFiYXNlLiBZb3Ugd2lsbCBhbHdheXMgdXNlIHRoaXMgZGlzcG9zaXRpb24gaWYgeW91IHVzZSB0aGUgZm9ybSB3aXRoIEZvcm1Ccm93c2VyLjwvbGk+DQo8bGk+KlZhbGlkYXRlIHZpYSBFbWFpbC4gVGhpcyBpcyBhIHN0cmFuZ2UgYW5kIHBvd2VyZnVsIGZpZWxkLiBJdCBwcm92aWRlcyB0aGUgdXNlciBhIG1hbmRhdG9yeSBpbnB1dCBmb3IgdGhlaXIgZW1haWwgYWRkcmVzcy4gT25jZSB0aGV5IHN1Ym1pdCB0aGVpciBmb3JtLCB0aGUgc3RhbmRhcmQgZm9ybSBkaXNwb3NpdGlvbnMgYXJlIG5vdCBwZXJmb3JtZWQgLS0gcmF0aGVyLCBpdCBzZW5kIHRoZSB1c2VyIGFuIGVtYWlsIHdpdGggYSBzcGVjaWFsIGNvZGVkIGxpbmsuIElmIHRoZXkgY2xpY2sgb24gdGhlIGxpbmssIHRoZSBvdGhlciBmb3JtIGlzIGNvbnNpZGVyZWQgImFwcHJvdmVkLCIgYW5kIHRoZSBvdGhlciBkaXNwb3NpdGlvbnMgYXJlIGFsbCBwZXJmb3JtZWQuPC9saT4NCjxsaT4qV3JpdGUgUmVzdWx0cyB0byBGbGF0IEZpbGUuIFRoaXMgdGFrZXMgdGhlIGZvcm0gcmVzdWx0cyBhbmQgd3JpdGVzIHRoZW0gaW50byBhIHRleHQgZmlsZS4gWW91IG1heQ0Kc2VsZWN0IHRoZSBuYW1lIG9mIHRoZSBmaWxlLCBhbmQgc2V0IGl0cyBmb3JtYXQuIFRoZXNlIGZpbGVzIGFyZSB3cml0dGVuIHRvIHRoZSAib3V0cHV0IiBkaXJlY3RvcnkgdW5kZXIgdGhlDQptb2R1bGVcJ3MgaW5zdGFsbGF0aW9uIGRpcmVjdG9yeSwgYXNzdW1pbmcgdGhlIHdlYiBzZXJ2ZXIgaGFzIHBlcm1pc3Npb24gdG8gd3JpdGUgdGhlcmUuDQo8L3VsPjwvbGk+PC9saT48L3VsPg0KDQo8aDM+RW1haWwgYW5kIEZsYXQgRmlsZSBUZW1wbGF0ZXM8L2gzPg0KPHA+TWFuIGRpc3Bvc2l0aW9uIHR5cGVzIGFsbG93IHlvdSB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmb3IgdGhlIGVtYWlsIHRoYXQgaXMgZ2VuZXJhdGVkLCBvciBmb3IgdGhlIHdheSB0aGUgcmVzdWx0cyBhcmUgd3JpdHRlbiB0byBhIGZpbGUuIElmIHlvdSBvcHQgbm90IHRvIGNyZWF0ZSBhIHRlbXBsYXRlLCB0aGUgRm9ybUJ1aWxkZXIgd2lsbCB1c2UgaXRcJ3Mgb3duIGJlc3QgZ3Vlc3MsIHdoaWNoIG1heSBvciBtYXkgbm90IHdvcmsgb3V0IHRvIHlvdXIgbGlraW5nLiBZb3UgY2FuIGFsd2F5cyBjbGljayBvbiB0aGUgIkNyZWF0ZSBTYW1wbGUgVGVtcGxhdGUiIGFuZCB0aGVuIGN1c3RvbWl6ZSB0aGUgcmVzdWx0cy48L3A+DQo8cD5Ob3RlIHRoYXQgb25jZSB5b3VcJ3ZlIGNoYW5nZWQgYSB0ZW1wbGF0ZSwgaXQgd2lsbCBubyBsb25nZXIgYXV0b21hdGljYWxseSBhZGQgbmV3IGZpZWxkcy4gRm9yIHRoaXMgcmVhc29uLCBpdFwncyB1c3VhbGx5IGJlc3QgdG8gY3JlYXRlIHlvdXIgdGVtcGxhdGVzIGFzIHRoZSBsYXN0IHN0ZXAgb2YgY3JlYXRpbmcgeW91ciBmb3JtLjwvcD4NCg0KPGgzPktub3duIElzc3VlczwvaDM+DQo8dWw+DQo8bGk+U29tZSBmaWVsZCB0eXBlcyBmcm9tIEZlZWRiYWNrRm9ybXMgYXJlIG5vdCBpbXBsZW1lbnRlZCBpbiBGb3JtQnVpbGRlci4gSWYgdGhlcmUgaXMgZGVtYW5kIGZvciB0aGVtLCB0aGV5IHdpbGwgYmUgYWRkZWQuPC9saT4NCjxsaT5Gb3JtQnVpbGRlciBpcyBub3QgeWV0IGludGVncmF0ZWQgd2l0aCBGcm9udEVuZCBVc2Vycy4gSXQgd2lsbCBiZS48L2xpPg0KPGxpPkZvcm1CdWlsZGVyIGNhbm5vdCB5ZXQgYmUgaW5saW5lZC4gVGhhdCBzaG91bGQgYmUgYSBzaW1wbGUgdXBncmFkZSBkb3duIHRoZSBsaW5lLjwvbGk+DQo8bGk+Rm9ybUJ1aWxkZXIgZG9lcyBub3QgeWV0IHN1cHBvcnQgcHJldHR5IHVybHMsIGFsdGhvdWdoIHRoYXQgc2hvdWxkblwndCBtYXR0ZXIgc2luY2UgdGhlIHVzZXIgc2lkZSBpcyBwcmV0dHkgc2ltcGxlLjwvbGk+DQo8L3VsPg0KDQo8aDM+VHJvdWJsZXNob290aW5nPC9oMz4NCjxvbD48bGk+IEZpcnN0IHN0ZXAgaXMgdG8gY2hlY2sgeW91XCdyZSBydW5uaW5nIENNUyAxLjAtc3ZuIG9yIGxhdGVyLjwvbGk+DQo8bGk+IFNlY29uZCBzdGVwIGlzIHRvIHJlYWQgYW5kIHVuZGVyc3RhbmQgdGhlIGNhdmVhdCBhYm91dCBXWVNJV1lHIGVkaXRvcnMgdXAgaW4gdGhlDQpzZWN0aW9uIDxlbT5BZGRpbmcgYSBGb3JtIHRvIGEgUGFnZTwvZW0+LjwvbGk+DQo8bGk+IElmIHlvdVwncmUgbWlzc2luZyBmaWVsZHMgaW4gYW4gZW1haWwgdGhhdCBnZXRzIGdlbmVyYXRlZCwgY2hlY2sgdGhlIGRpc3Bvc2l0aW9uIGZpZWxkXCdzIHRlbXBsYXRlLCBhbmQgbWFrZSBzdXJlIHlvdVwncmUgc3BlY2lmeWluZyB0aGUgbWlzc2luZyBmaWVsZHMuIFNlZW1zIG9idmlvdXMsIGJ1dCBpdFwncyBhbiBlYXN5IG1pc3Rha2UgdG8gbWFrZS48L2xpPg0KPGxpPiBKdXN0IG1lc3MgYXJvdW5kIGFuZCB0cnkgY2xpY2tpbmcgb24gbGlua3MgYW5kIGljb25zIGFuZCBzdHVmZi4gU2VlIHdoYXQgaGFwcGVucy48L2xpPg0KPGxpPiBMYXN0IHJlc3BvcnQgaXMgdG8gZW1haWwgbWUgb3IgY2F0Y2ggbWUgb24gSVJDIGFuZCB3ZSBjYW4gZ28gZnJvbSB0aGVyZS48L2xpPg0KPC9vbD4gDQo8cD5UaGlzIGlzIGEgZmFpcmx5IGVhcmx5IHZlcnNpb24sIGlmIG5vdCBhIHJhbmsgYmV0YSByZWxlYXNlLCBhbmQgaXQgaXMgcHJvYmFibHkgc3RpbGwgYnVnZ3kuIFdoaWxlIElcJ3ZlIGRvbmUgYWxsIEkgY2FuDQp0byBtYWtlIHN1cmUgbm8gZWdyZWdpb3VzIGJ1Z3MgaGF2ZSBjcmVwdCBpbiwgSSBoYXZlIHRvIGFkbWl0IHRoYXQgZHVyaW5nIHRlc3RpbmcsIHRoaXMgcHJvZ3JhbQ0KcmV2ZWFsZWQgc2V2ZW4gY29ja3JvYWNoZXMsIHR3byBlYXJ3aWdzLCBhIHNtYWxsIGZhbWlseSBvZiBhcGhpZHMsIGFuZCBhIHdhbGtpbmctc3RpY2sgaW5zZWN0LiBJdCBhbHNvDQphdGUgdGhlIG5laWdoYm9yXCdzIG5hc3R5IGxpdHRsZSB5YXAgZG9nLCBmb3Igd2hpY2ggSSB3YXMgaW5hcHByb3ByaWF0ZWx5IGdyYXRlZnVsLjwvcD4NCjxwPlRoZSBmaW5hbCByZWxlYXNlIHdpbGwgaW5jbHVkZSBidWcgZml4ZXMsIGRvY3VtZW50YXRpb24sIGFuZCB1bmNvbmRpdGlvbmFsIGxvdmUuPC9wPg0KPGgzPlN1cHBvcnQ8L2gzPg0KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPg0KPHVsPg0KPGxpPkZvciB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBtb2R1bGUsIEZBUXMsIG9yIHRvIGZpbGUgYSBCdWcgUmVwb3J0LCBwbGVhc2UgdmlzaXQgdGhlIENNUyBNYWRlIFNpbXBsZSAgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZyI+RGV2ZWxvcGVyIEZvcmdlPC9hPi48L2xpPg0KPGxpPlRvIG9idGFpbiBjb21tZXJjaWFsIHN1cHBvcnQsIHBsZWFzZSBzZW5kIGFuIGVtYWlsIHRvIHRoZSBhdXRob3IgYXQgPGEgaHJlZj0ibWFpbHRvOnNqZ0BjbXNtb2R1bGVzLmNvbSI+PHNqZ0BjbXNtb2R1bGVzLmNvbT48L2E+LjwvbGk+DQo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LjwvbGk+DQo8bGk+VGhlIGF1dGhvciBjYW4gb2Z0ZW4gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9ImlyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2NtcyI+Q01TIElSQyBDaGFubmVsPC9hPi48L2xpPg0KPGxpPkxhc3RseSwgeW91IG1heSBoYXZlIHNvbWUgc3VjY2VzcyBlbWFpbGluZyB0aGUgYXV0aG9yIGRpcmVjdGx5IGFuZCBncm92ZWxsaW5nIGZvciBmcmVlIHN1cHBvcnQuPC9saT4gIA0KPC91bD4NCjxwPkFzIHBlciB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkIGFzLWlzLiBQbGVhc2UgcmVhZCB0aGUgdGV4dA0Kb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuPC9wPg0KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+DQo8cD5Db3B5cmlnaHQgwqkgMjAwNiwgU2FtdWVsIEdvbGRzdGVpbiA8YSBocmVmPSJtYWlsdG86c2pnQGNtc21vZHVsZXMuY29tIj48c2pnQGNtc21vZHVsZXMuY29tPjwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4NCjxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+JzsKJGxhbmdbJ2NoYW5nZWxvZyddID0gJwkJICAgIDx1bD4NCiAgICAgICAgICAgICAgICAgICAgPGxpPlZlcnNpb24gMC4yLjMNCiAgICAgICAgICAgICAgICAgICAgICA8cD5BZGQgdGhlIGFiaWxpdHkgdG8gY2FsbCBhIHNlbGVjdGFibGUgdXNlciBkZWZpbmVkIHRhZyB1cG9uIGRpc3Bvc2l0aW9uIG9mIHRoZSBmb3JtLjwvcD4NCiAgICAgICAgICAgICAgICAgICAgPC9saT4NCiAgICAgICAgICAgICAgICAgICAgPGxpPlZlcnNpb24gMC4yLjINCiAgICAgICAgICAgICAgICAgICAgICAgPHA+TWFueSB0aGFua3MgdG8gVXR0ZXIgRGVzaWduIGZvciBzcG9uc29yaW5nIHNvbWUgY2hhbmdlcyBhbmQgYnVnZml4ZXMsIHdoaWNoIGluY2x1ZGU6DQogICAgICAgICAgICAgICAgICAgICAgICAgIDx1bD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+QWRkZWQgZmlsZSB1cGxvYWQgY2FwYWJpbGl0aWVzIHRvIHRoZSBlbWFpbCBkaXNwb3NpdGlvbjwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPkFkZCBQYWdlU2V0U3RhcnQgYW5kIFBhZ2VTZXRFbmQgZmllbGQgdHlwZXMNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+VGhlc2UgZmllbGQgdHlwZXMgYWxsb3cgeW91IHRvIGNyZWF0ZSBmaWVsZHNldHMgaW4geW91ciBmb3JtLCBhbmQgb3JnYW5pc2UNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeW91ciBmaWVsZHMgbG9naWNhbGx5IGZvciB0aGUgdXNlci4gIFlvdSBjYW4gZXZlbiBuZXN0IGZpZWxkc2V0cywgYW5kDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc29jaWF0ZSBhIHN0eWxlIHdpdGggdGhlbSBhcHByb3ByaWF0ZWx5LiAgVGhlIGRlZmF1bHQgdGVtcGxhdGUgd2FzIGNoYW5nZWQNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG8gcHJldmVudCBpdCBmcm9tIHdyYXBwaW5nIGEgZGl2IGFyb3VuZCB0aGVzZSB0eXBlcyBvZiBmaWVsZHMuDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5GaXhlZCBhIHByb2JsZW0gd2l0aCBEQVRFVElNRSBmaWVsZHMgb24gaW5zdGFsbA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5UaGlzIHNvbHZlcyBhIHByb2JsZW0gd2hlbiBvbiBpbnN0YWxsIHRoZSByZXNwb25zZSB0YWJsZSB3b3VsZCBzb21ldGltZXMgbm90IGdldCBjcmVhdGVkIHdoZW4gdXNpbmcgYWRvZGIgbGl0ZTwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4NCiAgICAgICAgICAgICAgICAgICAgICAgPC9wPg0KCQkgICAgPGxpPlZlcnNpb24gMC4yIC0gMTQgTm92ZW1iZXIgMjAwNi4gQ2FsZ3V5ICYgdHN3XCdzIGJ1ZyBmaXhlcyBmb3IgZmllbGQgcmUtb3JkZXJpbmcgYW5kIGN1c3RvbSB0ZW1wbGF0ZXMuIEFkZGl0aW9uYWwgYnVnIGZpeGVzIGZvciBmaWVsZCBsYWJlbHMuPC9saT4NCgkJICAgIDxsaT5WZXJzaW9uIDAuMSAtIDggSnVseSAyMDA2LiBJbml0aWFsIFJlbGVhc2U8L2xpPg0KICAgICAgICAgICAgICAgICAgICA8L3VsPg0KCQknOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My4xMjE4ODQ3NjQ0LjExNjc4OTU0NTUuMTE3NzI4NjcwOS4xMTc3MzQ5MTc3LjM1JzsKJGxhbmdbJ3V0bXonXSA9ICcxNTY4NjEzNTMuMTE3NzI4NjcwOS4zNC4yMy51dG1jY249KHJlZmVycmFsKXx1dG1jc3I9Zm9ydW0uY21zbWFkZXNpbXBsZS5vcmd8dXRtY2N0PS9pbmRleC5waHAvdG9waWMsNjc2My4wLmh0bWx8dXRtY21kPXJlZmVycmFsJzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCgkJJGRiID0mICRnQ21zLT5HZXREYigpOwoJCSRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoJGRiKTsKCQkkZmxkcyA9ICIKCQkJZm9ybV9pZCBJIEtFWSwKCQkJbmFtZSBDKDI1NSksCgkJCWFsaWFzIEMoMjU1KQoJCSI7CgkJJHRhYm9wdGFycmF5ID0gYXJyYXkoJ215c3FsJyA9PiAnVFlQRT1NeUlTQU0nKTsKCQkkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZm9ybScsICRmbGRzLCAkdGFib3B0YXJyYXkpOwoJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgkJJGRiLT5DcmVhdGVTZXF1ZW5jZShjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9mb3JtX3NlcScpOwovLwkJJGRiLT5DcmVhdGVJbmRleFNRTChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9mb3JtX2lkeCcsIGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zvcm0nLCAnYWxpYXMnKTsKCQkKCQkkZmxkcyA9ICIKCQkJZm9ybV9hdHRyX2lkIEkgS0VZLAoJCQlmb3JtX2lkIEksCgkJCW5hbWUgQygzNSksCgkJCXZhbHVlIFgKCQkiOwoJCSRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9mb3JtX2F0dHInLCAkZmxkcywgJHRhYm9wdGFycmF5KTsKCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgoJCSRkYi0+Q3JlYXRlU2VxdWVuY2UoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZm9ybV9hdHRyX3NlcScpOwovLwkJJGRiLT5DcmVhdGVJbmRleFNRTChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9mb3JtX2F0dHJfaWR4JywgY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZm9ybV9hdHRyJywgJ2Zvcm1faWQnKTsKCgkJJGZsZHMgPSAiCgkJCWZpZWxkX2lkIEkgS0VZLAoJCQlmb3JtX2lkIEksCgkJCW5hbWUgQygyNTUpLAoJCQl0eXBlIEMoNTApLAoJCQl2YWxpZGF0aW9uX3R5cGUgQyg1MCksCgkJCXJlcXVpcmVkIEkxLAoJCQloaWRlX2xhYmVsIEkxLAoJCQlvcmRlcl9ieSBJCgkJIjsKCQkkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGQnLCAkZmxkcywgJHRhYm9wdGFycmF5KTsKCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgoJCSRkYi0+Q3JlYXRlU2VxdWVuY2UoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGRfc2VxJyk7CgoJCSRmbGRzID0gIgoJCQlvcHRpb25faWQgSSBLRVksCgkJCWZpZWxkX2lkIEksCgkJCWZvcm1faWQgSSwKCQkJbmFtZSBDKDI1NSksCgkJCXZhbHVlIFgKCQkiOwoJCSRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9maWVsZF9vcHQnLCAkZmxkcywgJHRhYm9wdGFycmF5KTsKCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgoJCSRkYi0+Q3JlYXRlU2VxdWVuY2UoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGRfb3B0X3NlcScpOwoKCQkkZmxkcyA9ICIKCQkJZmxvY2tfaWQgSSBLRVksCgkJCWZsb2NrIFQKCQkiOwoKCQkkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmxvY2snLCAkZmxkcywgJHRhYm9wdGFycmF5KTsKCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgoJCSRmbGRzID0gIgoJCQlyZXNwX2lkIEkgS0VZLAoJCQlmb3JtX2lkIEksCgkJCWZldXNlcl9pZCBJLAoJCQl1c2VyX2FwcHJvdmVkICIuQ01TX0FET0RCX0RULiIsCgkJCXNlY3JldF9jb2RlIEMoMzUpLAoJCQlhZG1pbl9hcHByb3ZlZCAiLkNNU19BRE9EQl9EVC4iLAoJCQlzdWJtaXR0ZWQgIi5DTVNfQURPREJfRFQ7CgkJJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX3Jlc3AnLCAkZmxkcywgJHRhYm9wdGFycmF5KTsKCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgoJCSRmbGRzID0gIgoJCQlyZXNwX2F0dHJfaWQgSSBLRVksCgkJCXJlc3BfaWQgSSwKCQkJbmFtZSBDKDM1KSwKCQkJdmFsdWUgWAoJCSI7CgkJJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX3Jlc3BfYXR0cicsICRmbGRzLCAkdGFib3B0YXJyYXkpOwoJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgkJJGRiLT5DcmVhdGVTZXF1ZW5jZShjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9yZXNwX2F0dHJfc2VxJyk7CgoKCQkkZGItPkNyZWF0ZVNlcXVlbmNlKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX3Jlc3Bfc2VxJyk7CgoJCSRmbGRzID0gIgoJCQlyZXNwX3ZhbF9pZCBJIEtFWSwKCQkJcmVzcF9pZCBJLAoJCQlmaWVsZF9pZCBJLAoJCQl2YWx1ZSBYCgkJIjsKCQkkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfcmVzcF92YWwnLCAkZmxkcywgJHRhYm9wdGFycmF5KTsKCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgoJCSRkYi0+Q3JlYXRlU2VxdWVuY2UoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfcmVzcF92YWxfc2VxJyk7CgoJCSRmbGRzID0gIgoJCQlzZW50X2lkIEkgS0VZLAoJCQlzcmNfaXAgQygxNiksCgkJCXNlbnRfdGltZSAiLkNNU19BRE9EQl9EVDsKCQkkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfaXBfbG9nJywgJGZsZHMsICR0YWJvcHRhcnJheSk7CgkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKCQkkZGItPkNyZWF0ZVNlcXVlbmNlKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2lwX2xvZ19zZXEnKTsKCgkJJHRoaXMtPkNyZWF0ZVBlcm1pc3Npb24oJ01vZGlmeSBGb3JtcycsICdNb2RpZnkgRm9ybXMnKTsKCgkJJHRoaXMtPkNyZWF0ZUV2ZW50KCAnT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnICk7CgkJJHRoaXMtPkNyZWF0ZUV2ZW50KCAnT25Gb3JtQnVpbGRlckZvcm1EaXNwbGF5JyApOwoJCSR0aGlzLT5DcmVhdGVFdmVudCggJ09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InICk7CgkJCgkJaW5jbHVkZSAnaW5jbHVkZXMvRm9ybUJ1aWxkZXJTYW1wbGVEYXRhLmluYyc7CQkKCgkJJHRoaXMtPkF1ZGl0KCAwLCAkdGhpcy0+TGFuZygnZnJpZW5kbHluYW1lJyksICR0aGlzLT5MYW5nKCdpbnN0YWxsZWQnLCR0aGlzLT5HZXRWZXJzaW9uKCkpKTsKPz4K]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCgkJJGRiID0mICRnQ21zLT5HZXREYigpOwoJCSRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoJGRiKTsKCQkkc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zvcm0nKTsKCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgoJCSRkYi0+RHJvcFNlcXVlbmNlKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zvcm1fc2VxJyk7CgoJCSRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZm9ybV9hdHRyJyk7CgkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKCQkkZGItPkRyb3BTZXF1ZW5jZShjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9mb3JtX2F0dHJfc2VxJyk7CgoJCSRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGQnKTsKCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgoJCSRkYi0+RHJvcFNlcXVlbmNlKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2ZpZWxkX3NlcScpOwoKCQkkc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2ZpZWxkX29wdCcpOwoJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgkJJGRiLT5Ecm9wU2VxdWVuY2UoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGRfb3B0X3NlcScpOwoKCQkkc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zsb2NrJyk7CgkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKCQkkc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX3Jlc3BfdmFsJyk7CgkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoJCSRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfcmVzcCcpOwoJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCQkkc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX3Jlc3BfYXR0cicpOwoJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgkJJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9pcF9sb2cnKTsKCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgoJCSRkYi0+RHJvcFNlcXVlbmNlKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX3Jlc3Bfc2VxJyk7CgkJJGRiLT5Ecm9wU2VxdWVuY2UoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfcmVzcF92YWxfc2VxJyk7CgkJJGRiLT5Ecm9wU2VxdWVuY2UoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfcmVzcF9hdHRyX3NlcScpOwoJCSRkYi0+RHJvcFNlcXVlbmNlKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2lwX2xvZ19zZXEnKTsKCgkJJHRoaXMtPlJlbW92ZVBlcm1pc3Npb24oJ01vZGlmeSBGb3JtcycpOwoJCQoJCSR0aGlzLT5SZW1vdmVFdmVudCggJ09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0JyApOwoJCSR0aGlzLT5SZW1vdmVFdmVudCggJ09uRm9ybUJ1aWxkZXJGb3JtRGlzcGxheScgKTsKCQkkdGhpcy0+UmVtb3ZlRXZlbnQoICdPbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdEVycm9yJyApOwoKCQkkdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgnaGlkZV9lcnJvcnMnKTsKCQkkdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgnc2hvd192ZXJzaW9uJyk7CgkJJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoJ3JlbGF4ZWRfZW1haWxfcmVnZXgnKTsKCQkkdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgnZW5hYmxlX2Zhc3RhZGQnKTsKCQkkdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgnZW5hYmxlX2FudGlzcGFtJyk7CgoKCQkkdGhpcy0+QXVkaXQoIDAsICR0aGlzLT5MYW5nKCdmcmllbmRseW5hbWUnKSwgJHRoaXMtPkxhbmcoJ3VuaW5zdGFsbGVkJykpOwoKPz4=]]></data>
	</file>
	<file>
	  <filename>/method.upgrade.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCgkJJHRoaXMtPmluaXRpYWxpemUoKTsKCQkkZGIgPSYgJGdDbXMtPkdldERiKCk7CgkJJGN1cnJlbnRfdmVyc2lvbiA9ICRvbGR2ZXJzaW9uOwoJCSRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoJGRiKTsKCQkkdGFib3B0YXJyYXkgPSBhcnJheSgnbXlzcWwnID0+ICdUWVBFPU15SVNBTScpOwoJCWRlYnVnX2Rpc3BsYXkoJ0N1cnJlbnQtdmVyc2lvbjogJy4kY3VycmVudF92ZXJzaW9uKTsKCQlzd2l0Y2goJGN1cnJlbnRfdmVyc2lvbikKCQl7CgkJCWNhc2UgIjAuMSI6CgkJCWNhc2UgIjAuMiI6CgkJCWNhc2UgIjAuMi4yIjoKCQkJY2FzZSAiMC4yLjMiOgoJCQljYXNlICIwLjIuNCI6CgkJCQl7CgkJCQkkZmxkcyA9ICIKCQkJCQlzZW50X2lkIEkgS0VZLAoJCQkJCXNyY19pcCBDKDE2KSwKCQkJCQlzZW50X3RpbWUgIi5DTVNfQURPREJfRFQ7CgkJCQlkZWJ1Z19kaXNwbGF5KCRmbGRzKTsKCQkJCSRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9pcF9sb2cnLCAkZmxkcywgJHRhYm9wdGFycmF5KTsKCQkJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgkJCQkkZGItPkNyZWF0ZVNlcXVlbmNlKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2lwX2xvZ19zZXEnKTsKCQkJCX0KCQl9CgkJJHRoaXMtPkF1ZGl0KCAwLCAkdGhpcy0+TGFuZygnZnJpZW5kbHluYW1lJyksICR0aGlzLT5MYW5nKCd1cGdyYWRlZCcsJHRoaXMtPkdldFZlcnNpb24oKSkpOwoKPz4=]]></data>
	</file>
	<file>
	  <filename>/output/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/output/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/AddEditField.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmICRtZXNzYWdlICE9ICcnfTxoND57JG1lc3NhZ2V9PC9oND57L2lmfQp7JGJhY2t0b2Zvcm1fbmF2fTxiciAvPgp7JHN0YXJ0X2Zvcm19eyRoaWRkZW59eyRvcH17JHRhYl9zdGFydH0KeyRtYWludGFiX3N0YXJ0fQoJe2ZvcmVhY2ggZnJvbT0kbWFpbkxpc3QgaXRlbT1lbnRyeX0KCQk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCQk8cCBjbGFzcz0icGFnZXRleHQiPnskZW50cnktPnRpdGxlfTo8L3A+CgkJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskZW50cnktPmlucHV0fTwvcD4KCQkJe2lmICRlbnRyeS0+aGVscCAhPSAnJ317JGVudHJ5LT5oZWxwfXsvaWZ9CgkJPC9kaXY+Cgl7L2ZvcmVhY2h9CnskdGFiX2VuZH0KeyRhZHZhbmNlZHRhYl9zdGFydH0KCXtmb3JlYWNoIGZyb209JGFkdkxpc3QgaXRlbT1lbnRyeX0KCQk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCQk8cCBjbGFzcz0icGFnZXRleHQiPnskZW50cnktPnRpdGxlfTo8L3A+CgkJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskZW50cnktPmlucHV0fTwvcD4KCQkJe2lmICRlbnRyeS0+aGVscCAhPSAnJ317JGVudHJ5LT5oZWxwfXsvaWZ9CgkJPC9kaXY+Cgl7L2ZvcmVhY2h9CnskdGFiX2VuZH0KeyR0YWJzX2VuZH0Ke2lmICRhZGQgIT0gJycgb3IgJGRlbCAhPSAnJ30KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij4mbmJzcDs8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRhZGR9eyRkZWx9PC9wPgoJPC9kaXY+CnsvaWZ9Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskc3VibWl0fTwvcD4KCTwvZGl2Pgp7JGVuZF9mb3JtfQo=]]></data>
	</file>
	<file>
	  <filename>/templates/AddEditForm.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmICRtZXNzYWdlICE9ICcnfTxoND57JG1lc3NhZ2V9PC9oND57L2lmfQ0KeyRmb3Jtc3RhcnR9eyRmb3JtaWR9eyRoaWRkZW59eyR0YWJfc3RhcnR9eyRtYWludGFiX3N0YXJ0fQ0KDQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX2Zvcm1fbmFtZX06PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2Zvcm1fbmFtZX08L3A+DQoJPC9kaXY+DQoNCntpZiAkYWRkaW5nID09IDB9DQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX2Zvcm1fc3RhdHVzfTo8L3A+DQoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPntpZiAkaGFzZGlzcG9zaXRpb24gPT0gMX17JHRleHRfcmVhZHl9e2Vsc2V9eyRsaW5rX25vdHJlYWR5fXsvaWZ9PC9wPg0KCTwvZGl2Pg0Key9pZn0NCgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfZm9ybV9hbGlhc306PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2Zvcm1fYWxpYXN9PC9wPg0KCTwvZGl2Pg0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV9mb3JtX2Nzc19jbGFzc306PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2Zvcm1fY3NzX2NsYXNzfTwvcD4NCgk8L2Rpdj4NCgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfZm9ybV9kaXNwbGF5dHlwZX06PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2Zvcm1fZGlzcGxheXR5cGV9PC9wPg0KCTwvZGl2Pg0Ke2lmICRhZGRpbmc9PTB9DQoJe2lmICRmYXN0YWRkPT0xfQ0KCQk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KCQkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX2Zhc3RhZGR9PC9wPg0KCQkJPGRpdiBjbGFzcz0icGFnZWlucHV0Ij4NCgkJCQl7JGlucHV0X2Zhc3RhZGR9DQoJCQk8L2Rpdj4NCgkJPC9kaXY+DQoJey9pZn0NCgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfZm9ybV9maWVsZHN9PC9wPg0KCQk8ZGl2IGNsYXNzPSJwYWdlaW5wdXQiPg0KCQkJPHRhYmxlIGNsYXNzPSJtb2R1bGVfZmJfdGFibGUiPg0KICAgICAgICAgICAgICAgIDx0aGVhZD48dHI+PHRoPnskdGl0bGVfZmllbGRfbmFtZX08L3RoPg0KICAgICAgICAgICAgICAgIAk8dGg+eyR0aXRsZV9maWVsZF90eXBlfTwvdGg+DQogICAgICAgICAgICAgICAgCTx0aD57JHRpdGxlX2ZpZWxkX3JlcXVpcmVkX2FiYnJldn08L3RoPg0KICAgICAgICAgICAgICAgIAk8dGg+eyR0aXRsZV9pbmZvcm1hdGlvbn08L3RoPg0KICAgICAgICAgICAgICAgICAgICA8dGggY29sc3Bhbj0iMiI+eyR0aXRsZV9vcmRlcn08L3RoPg0KICAgICAgICAgICAgICAgICAgICA8dGg+Jm5ic3A7PC90aD48dGg+Jm5ic3A7PC90aD48L3RyPg0KCQkJCTwvdGhlYWQ+DQoJCQkJPHRib2R5Pg0KCQkJCXtmb3JlYWNoIGZyb209JGZpZWxkcyBpdGVtPWVudHJ5fQ0KCQkJCQk8dHIgY2xhc3M9InskZW50cnktPnJvd2NsYXNzfSIgb25tb3VzZW92ZXI9InRoaXMuY2xhc3NOYW1lPSd7JGVudHJ5LT5yb3djbGFzc31ob3Zlcic7IiBvbm1vdXNlb3V0PSJ0aGlzLmNsYXNzTmFtZT0neyRlbnRyeS0+cm93Y2xhc3N9JzsiPg0KCQkJCQk8dGQ+eyRlbnRyeS0+bmFtZX08L3RkPg0KCQkJCQk8dGQ+eyRlbnRyeS0+dHlwZX08L3RkPg0KCQkJCQk8dGQ+eyRlbnRyeS0+ZGlzcG9zaXRpb259PC90ZD4NCgkJCQkJPHRkPnskZW50cnktPmZpZWxkX3N0YXR1c308L3RkPg0KCQkJCQk8dGQ+eyRlbnRyeS0+dXB9PC90ZD4NCgkJCQkJPHRkPnskZW50cnktPmRvd259PC90ZD4NCgkJCQkJPHRkPnskZW50cnktPmVkaXRsaW5rfTwvdGQ+DQoJCQkJCTx0ZD57JGVudHJ5LT5kZWxldGVsaW5rfTwvdGQ+DQoJCQkJCTwvdHI+DQoJCQkJey9mb3JlYWNofQ0KICAgICAgICAgICAgICAgCTx0cj48dGQgY29sc3Bhbj0iOCIgY2xhc3M9InJvdzIiPiZuYnNwOzwvdGQ+PC90cj4NCiAgICAgICAgICAgICAgIAk8dHI+PHRkIGNvbHNwYW49IjgiIGNsYXNzPSJyb3cxIj57JGFkZF9maWVsZF9saW5rfTwvdGQ+PC90cj4NCgkJCQk8L3Rib2R5Pg0KICAgICAgICAgICAgPC90YWJsZT4NCiAgICAgICAgPC9kaXY+DQogICAgIDwvZGl2Pg0Key9pZn0NCg0KeyR0YWJfZW5kfXskYWRkaXRpb25hbHRhYl9zdGFydH0NCg0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV9yZWRpcmVjdF9wYWdlfTo8L3A+DQoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfcmVkaXJlY3RfcGFnZX08L3A+DQoJPC9kaXY+DQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX2Zvcm1fc3VibWl0X2J1dHRvbn06PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2Zvcm1fc3VibWl0X2J1dHRvbn08L3A+DQoJPC9kaXY+DQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5fTo8L3A+DQoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfc3VibWl0X2J1dHRvbl9zYWZldHl9PC9wPg0KCTwvZGl2Pg0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV9mb3JtX25leHRfYnV0dG9ufTo8L3A+DQoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfZm9ybV9uZXh0X2J1dHRvbn08L3A+DQoJPC9kaXY+DQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX2Zvcm1fcHJldl9idXR0b259OjwvcD4NCgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9mb3JtX3ByZXZfYnV0dG9ufTwvcD4NCgk8L2Rpdj4NCgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfZm9ybV9yZXF1aXJlZF9zeW1ib2x9OjwvcD4NCgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9mb3JtX3JlcXVpcmVkX3N5bWJvbH08L3A+DQoJPC9kaXY+DQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX2Zvcm1fdW5zcGVjaWZpZWR9OjwvcD4NCgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9mb3JtX3Vuc3BlY2lmaWVkfTwvcD4NCgk8L2Rpdj4NCgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfbGlzdF9kZWxpbWl0ZXJ9OjwvcD4NCgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9saXN0X2RlbGltaXRlcn08L3A+DQoJPC9kaXY+DQp7JHRhYl9lbmR9DQp7JHRhYmxldGFiX3N0YXJ0fQ0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV90aXRsZV9wb3NpdGlvbn06PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3RpdGxlX3Bvc2l0aW9ufTwvcD4NCgk8L2Rpdj4NCg0KeyR0YWJfZW5kfQ0KeyR0ZW1wbGF0ZXRhYl9zdGFydH0NCgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfZm9ybV90ZW1wbGF0ZX06PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2Zvcm1fdGVtcGxhdGV9PC9wPg0KCTwvZGl2Pg0KeyR0YWJfZW5kfQ0KeyR0YWJzX2VuZH0NCgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KCQk8cCBjbGFzcz0icGFnZXRleHQiPiZuYnNwOzwvcD4NCgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRzYXZlX2J1dHRvbn17JHN1Ym1pdF9idXR0b259PC9wPg0KCTwvZGl2Pg0KeyRmb3JtX2VuZH0NCg==]]></data>
	</file>
	<file>
	  <filename>/templates/AdminMain.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmICRtZXNzYWdlICE9ICcnfSA8aDQ+eyRtZXNzYWdlfTwvaDQ+IHsvaWZ9Cgp7JHRhYmhlYWRlcnN9Cnskc3RhcnRfZm9ybXRhYn0KPHRhYmxlIGNlbGxzcGFjaW5nPSIwIiBjbGFzcz0icGFnZXRhYmxlIiB3aWR0aD0iODAlIj4KPHRoZWFkPjx0cj4KICAgIDx0aD57JHRpdGxlX2Zvcm1fbmFtZX08L3RoPgogICAgPHRoPnskdGl0bGVfZm9ybV9hbGlhc308L3RoPgogICAgPHRoPiZuYnNwOzwvdGg+PHRoPiZuYnNwOzwvdGg+PHRoPiZuYnNwOzwvdGg+CjwvdHI+CjwvdGhlYWQ+Cgp7Zm9yZWFjaCBmcm9tPSRmb3JtcyBpdGVtPWVudHJ5fQoJPHRyIGNsYXNzPSJ7JGVudHJ5LT5yb3djbGFzc30iIG9ubW91c2VvdmVyPSJ0aGlzLmNsYXNzTmFtZT0neyRlbnRyeS0+cm93Y2xhc3N9aG92ZXInOyIgb25tb3VzZW91dD0idGhpcy5jbGFzc05hbWU9J3skZW50cnktPnJvd2NsYXNzfSc7Ij4KCQk8dGQ+eyRlbnRyeS0+bmFtZX08L3RkPgoJCTx0ZD4mIzEyMztjbXNfbW9kdWxlIG1vZHVsZT0nRm9ybUJ1aWxkZXInIGZvcm09J3skZW50cnktPnVzYWdlfScmIzEyNTs8L3RkPgoJCTx0ZD57JGVudHJ5LT54bWx9PC90ZD4KCQk8dGQ+eyRlbnRyeS0+ZWRpdGxpbmt9PC90ZD4KCQk8dGQ+eyRlbnRyeS0+ZGVsZXRlbGlua308L3RkPgoJPC90cj4Key9mb3JlYWNofQoKPHRyIGNsYXNzPSJyb3cyIj48dGQgY29sc3Bhbj0iNSI+Jm5ic3A7PC90ZD48L3RyPgo8dHIgY2xhc3M9InJvdzEiPjx0ZCBjb2xzcGFuPSI1Ij4KCntpZiAkYWRkbGluayAhPSAnJ317JGFkZGxpbmt9eyRhZGRmb3JtfXsvaWZ9CjwvdGQ+PC90cj4KPC90YWJsZT4KeyRzdGFydF94bWxmb3JtfQp7JHRpdGxlX3htbF90b191cGxvYWR9eyRpbnB1dF94bWxfdG9fdXBsb2FkfXskc3VibWl0eG1sfQp7JGVuZF94bWxmb3JtfQp7JGVuZF90YWJ9Cnskc3RhcnRfY29uZmlndGFifQp7aWYgJG1heV9jb25maWcgPT0gMX0KeyRzdGFydF9jb25maWdmb3JtfQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfZW5hYmxlX2Zhc3RhZGR9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2VuYWJsZV9mYXN0YWRkfTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfaGlkZV9lcnJvcnN9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2hpZGVfZXJyb3JzfTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfcmVsYXhlZF9lbWFpbF9yZWdleH06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfcmVsYXhlZF9lbWFpbF9yZWdleH08L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX3Nob3dfdmVyc2lvbn06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfc2hvd192ZXJzaW9ufTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfZW5hYmxlX2FudGlzcGFtfTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9lbmFibGVfYW50aXNwYW19PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskc3VibWl0fTwvcD4KCTwvZGl2Pgp7JGVuZF9jb25maWdmb3JtfQoKe2Vsc2V9Cgk8cD57JG5vX3Blcm1pc3Npb259PC9wPgp7L2lmfQp7JGVuZF90YWJ9CnskZW5kX3RhYnN9Cgo=]]></data>
	</file>
	<file>
	  <filename>/templates/RenderFormCSS.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRoaWRkZW59CjxkaXZ7aWYgJGNzc19jbGFzcyAhPSAnJ30gY2xhc3M9InskY3NzX2NsYXNzfSJ7L2lmfT4Ke2lmICR0b3RhbF9wYWdlcyBndCAxfTxkaXYgY2xhc3M9InN0YXR1cyI+eyR0aXRsZV9wYWdlX3hfb2ZfeX08L2Rpdj57L2lmfQp7Zm9yZWFjaCBmcm9tPSRmaWVsZHMgaXRlbT1lbnRyeX0KCSAge2lmICRlbnRyeS0+ZGlzcGxheSA9PSAxfQoJICAgIAl7c3RyaXB9CgkgICAgCTxkaXYKCSAgICAJe2lmICRlbnRyeS0+cmVxdWlyZWQgPT0gMSB8fCAkZW50cnktPmNzc19jbGFzcyAhPSAnJ30gY2xhc3M9IiAKCSAgICAJCXtpZiAkZW50cnktPnJlcXVpcmVkID09IDF9CgkgICAgCQkJcmVxdWlyZWQKCSAgICAJCXsvaWZ9CgkgICAgCQl7aWYgJGVudHJ5LT5yZXF1aXJlZCA9PSAxICYmICRlbnRyeS0+Y3NzX2NsYXNzICE9ICcnfSB7L2lmfQoJICAgIAkJe2lmICRlbnRyeS0+Y3NzX2NsYXNzICE9ICcnfQoJICAgIAkJCXskZW50cnktPmNzc19jbGFzc30KCSAgICAJCXsvaWZ9CgkgICAgCQkiCgkgICAgCXsvaWZ9CgkgICAgCT4KCSAgICAJe2lmICRlbnRyeS0+aGlkZV9uYW1lID09IDB9CgkgICAgCQk8bGFiZWwgZm9yPSJ7JGVudHJ5LT5pbnB1dF9pZH0iPnskZW50cnktPm5hbWV9PC9sYWJlbD4KCSAgICAJCXtpZiAkZW50cnktPnJlcXVpcmVkX3N5bWJvbCAhPSAnJ30KCSAgICAJCQl7JGVudHJ5LT5yZXF1aXJlZF9zeW1ib2x9CgkgICAgCQl7L2lmfQoJICAgIAl7L2lmfQoJICAgIAl7aWYgJGVudHJ5LT5tdWx0aXBsZV9wYXJ0cyA9PSAxfQoJICAgIAkJe2ZvcmVhY2ggZnJvbT0kZW50cnktPmlucHV0IGl0ZW09cGFydH0KCSAgICAJCQl7JHBhcnQtPmlucHV0fSZuYnNwO3skcGFydC0+bmFtZX0KCSAgICAJCXsvZm9yZWFjaH0KCSAgICAJe2Vsc2V9CgkgICAgCQl7JGVudHJ5LT5pbnB1dH0KCSAgICAJey9pZn0KCSAgICAJe2lmICRlbnRyeS0+dmFsaWQgPT0gMH0gJmx0Oy0tLSB7L2lmfQoJICAgIAk8L2Rpdj4KCSAgICAJey9zdHJpcH0KCSAgey9pZn0Key9mb3JlYWNofQo8ZGl2IGNsYXNzPSJzdWJtaXQiPnskcHJldn17JHN1Ym1pdH08L2Rpdj4KPC9kaXY+Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/RenderFormDefault.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2xpdGVyYWx9Cgo8IS0tIGJlbG93LCB5b3UnbGwgZmluZCB0aGUgInN0YW5kYXJkIENTUyB0ZW1wbGF0ZSIgZm9yIGRpc3BsYXlpbmcgRm9ybUJ1aWxkZXIgRm9ybXMKICAgWW91IGNhbiBlZGl0IGl0IHRvIG1ha2UgeW91ciBmb3JtIGxheW91dCBsb29rIGFueSB3YXkgeW91J2QgbGlrZS4KICAgVG8gbWFrZSB0aGUgZm9ybSB3b3JrLCB5b3UnbGwgbmVlZCB0byBhbHdheXMgaW5jbHVkZSB0aGUgeyRoaWRkZW59IGFuZCB7JHN1Ym1pdH0KICAgdGFncy4KCiAgIFlvdSBjYW4gYWNjZXNzIHlvdXIgZm9ybSBmaWVsZHMgZWl0aGVyIHVzaW5nIHRoZSAkZmllbGRzIGFycmF5LCBhcyBkZW1vbnN0cmF0ZWQgYmVsb3csCiAgIG9yIGJ5IGRpcmVjdGx5IGFjY2Vzc2luZyBmaWVsZHMgYnkgdGhlaXIgbmFtZXMgKGUuZy4sIHskbXlmaWVsZC0+aW5wdXR9ICkKCgogICBFYWNoIGZpZWxkIGhhcyB0aGUgZm9sbG93aW5nIGF0dHJpYnV0ZXM6CiAgICAgICBmaWVsZC0+ZGlzcGxheSAgICAgICAgID0gMSBpZiB0aGUgZmllbGQgc2hvdWxkIGJlIGRpc3BsYXllZCwgMCBvdGhlcndpc2UKICAgICAgIGZpZWxkLT5yZXF1aXJlZCAgICAgICAgPSAxIGlmIHRoZSBmaWVsZCBpcyByZXF1aXJlZCwgMCBvdGhlcndpc2UKICAgICAgIGZpZWxkLT5yZXF1aXJlZF9zeW1ib2wgPSB0aGUgc3ltYm9sIGZvciByZXF1aXJlZCBmaWVsZHMKICAgICAgIGZpZWxkLT5jc3NfY2xhc3MgICAgICAgPSB0aGUgQ1NTIGNsYXNzIHNwZWNpZmllZCBmb3IgdGhpcyBmaWVsZAogICAgICAgZmllbGQtPnZhbGlkICAgICAgICAgICA9IDEgaWYgdGhpcyBmaWVsZCBoYXMgcGFzc2VkIHZhbGlkYXRpb24sIDAgb3RoZXJ3aXNlCiAgICAgICBmaWVsZC0+aGlkZV9uYW1lICAgICAgID0gMSBpZiB0aGUgZmllbGQgbmFtZSBzaG91bGQgYmUgaGlkZGVuLCAwIG90aGVyd2lzZQogICAgICAgZmllbGQtPm5hbWUgICAgICAgICAgICA9IHRoZSBmaWVsZCdzIG5hbWUKICAgICAgIGZpZWxkLT5pbnB1dCAgICAgICAgICAgPSB0aGUgZmllbGQncyBpbnB1dCBjb250cm9sIChlLmcuLCB0aGUgaW5wdXQgZmllbGQgaXRzZWxmKQogICAgICAgZmllbGQtPmlucHV0X2lkICAgICAgICA9IHRoZSBvZiB0aGUgZmllbGQncyBpbnB1dCAodXNlZnVsIGZvciA8bGFiZWwgZm9yPSIiPikKICAgICAgIGZpZWxkLT50eXBlICAgICAgICAgICAgPSB0aGUgZmllbGQncyBkYXRhIHR5cGUKICAgICAgIGZpZWxkLT5tdWx0aXBsZV9wYXJ0cyAgPSAxIGlmIHRoZSBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYSBjb2xsZWN0aW9uIG9mIGNvbnRyb2xzCgogICBJbiBjZXJ0YWluIGNhc2VzLCBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYW4gYXJyYXkgb2Ygb2JqZWN0cyByYXRoZXIgdGhhbiBhbiBpbnB1dC4gVGhpcwogICBoYXBwZW5zLCBmb3IgZXhhbXBsZSwgaW4gQ2hlY2tCb3hHcm91cHMgb3IgUmFkaW9CdXR0b25Hcm91cHMuIEZvciB0aGVtLCB5b3UKICAgY2FuIGl0ZXJhdGUgdGhyb3VnaCBmaWVsZC0+aW5wdXQtPm5hbWUgYW5kIGZpZWxkLT5pbnB1dC0+aW5wdXRzLgogICAgCgogICAgICAgQWRkaXRpb25hbCBzbWFydHkgdmFyaWFibGVzIHRoYXQgeW91IGNhbiB1c2UgaW5jbHVkZToKICAgICAgIHskdG90YWxfcGFnZXN9ICAgICAgIC0gbnVtYmVyIG9mIHBhZ2VzIGZvciBtdWx0aS1wYWdlIGZvcm1zCiAgICAgICB7JHRoaXNfcGFnZX0gICAgICAgICAtIG51bWJlciBmbyB0aGUgY3VycmVudCBwYWdlIGZvciBtdWx0aS1wYWdlIGZvcm1zCiAgICAgICB7JHRpdGxlX3BhZ2VfeF9vZl95fSAtIGRpc3BsYXlzICJwYWdlIHggb2YgeSIgZm9yIG11bHRpLXBhZ2UgZm9ybXMKICAgICAgIHskY3NzX2NsYXNzfSAgICAgICAgIC0gQ1NTIENsYXNzIGZvciB0aGUgZm9ybQogICAgICAgeyRmb3JtX25hbWV9ICAgICAgICAgLSBGb3JtIG5hbWUKICAgICAgIHskZm9ybV9pZH0gICAgICAgICAgIC0gRm9ybSBEYXRhYmFzZSBJRAogICAgICAgeyRwcmV2fSAgICAgICAgICAgICAgLSAiQmFjayIgYnV0dG9uIGZvciBtdWx0aXBhcnQgZm9ybXMKCiAgICAgICBEdW5ubyB3aHkgeW91J2Qgd2FudCBzb21lIG9mIHRob3NlLCBidXQgdGhlcmUgeW91IGdvLi4uCi0tPgoKey9saXRlcmFsfQoKCnskaGlkZGVufXthc3NpZ24gdmFyPSJjb2xzIiB2YWx1ZT0iMyJ9CjxkaXZ7aWYgJGNzc19jbGFzcyAhPSAnJ30gY2xhc3M9InskY3NzX2NsYXNzfSJ7L2lmfT4Ke2lmICR0b3RhbF9wYWdlcyBndCAxfTxzcGFuPnskdGl0bGVfcGFnZV94X29mX3l9PC9zcGFuPnsvaWZ9Cntmb3JlYWNoIGZyb209JGZpZWxkcyBpdGVtPWVudHJ5fQogICAgICAgICAgPCEtLSB7JGVudHJ5fHByaW50X3J9IC0tPgoJICB7aWYgJGVudHJ5LT5kaXNwbGF5ID09IDF9CgkgICAgCXtzdHJpcH0KICAgICAgICAgICAgICAgIHsqIGxlYWRpbmcgZGl2IGJlZm9yZSB0aGUgdGFnICp9CiAgICAgICAgICAgICAgICB7aWYgJGVudHJ5LT50eXBlICE9ICJGaWVsZHNldCBTdGFydCIgJiYgJGVudHJ5LT50eXBlICE9ICJGaWVsZHNldCBFbmQifQoJICAgIAk8ZGl2CgkgICAgCXtpZiAkZW50cnktPnJlcXVpcmVkID09IDEgfHwgJGVudHJ5LT5jc3NfY2xhc3MgIT0gJyd9IGNsYXNzPSIgCgkgICAgCQl7aWYgJGVudHJ5LT5yZXF1aXJlZCA9PSAxfQoJICAgIAkJCXJlcXVpcmVkCgkgICAgCQl7L2lmfQoJICAgIAkJe2lmICRlbnRyeS0+cmVxdWlyZWQgPT0gMSAmJiAkZW50cnktPmNzc19jbGFzcyAhPSAnJ30gey9pZn0KCSAgICAJCXtpZiAkZW50cnktPmNzc19jbGFzcyAhPSAnJ30KCSAgICAJCQl7JGVudHJ5LT5jc3NfY2xhc3N9CgkgICAgCQl7L2lmfQoJICAgIAkJIgoJICAgIAl7L2lmfQoJICAgIAk+CiAgICAgICAgICAgICAgICB7L2lmfQogICAgICAgICAgICAgICAgeyogYmVnaW4gZmllbGQgb3V0cHV0ICp9CgkgICAgCXtpZiAkZW50cnktPmhpZGVfbmFtZSA9PSAwfQoJICAgIAkJPGxhYmVsIGZvcj0ieyRlbnRyeS0+aW5wdXRfaWR9Ij57JGVudHJ5LT5uYW1lfTwvbGFiZWw+CgkgICAgCQl7aWYgJGVudHJ5LT5yZXF1aXJlZF9zeW1ib2wgIT0gJyd9CgkgICAgCQkJeyRlbnRyeS0+cmVxdWlyZWRfc3ltYm9sfQoJICAgIAkJey9pZn0KCSAgICAJey9pZn0KCSAgICAJe2lmICRlbnRyeS0+bXVsdGlwbGVfcGFydHMgPT0gMX0KICAgIAkJPHRhYmxlPgoJCQkJCTx0cj4KCQkJCXtzZWN0aW9uIG5hbWU9bnVtbG9vcCBsb29wPSRlbnRyeS0+aW5wdXR9CgkgICAgCQkJPHRkPnskZW50cnktPmlucHV0W251bWxvb3BdLT5pbnB1dH0mbmJzcDt7JGVudHJ5LT5pbnB1dFtudW1sb29wXS0+bmFtZX08L3RkPgoJICAgIAkJCSAgICAgICB7aWYgbm90ICgkc21hcnR5LnNlY3Rpb24ubnVtbG9vcC5yb3dudW0gbW9kICRjb2xzKX0KICAgICAgICAgICAgICAgIAkJCQl7aWYgbm90ICRzbWFydHkuc2VjdGlvbi5udW1sb29wLmxhc3R9CiAgICAgICAgICAgICAgICAgICAgICAgIAkJPC90cj48dHI+CiAgICAgICAgICAgICAgICAJCQkJey9pZn0KICAgICAgICAJCQkJCXsvaWZ9CiAgICAgICAJCQkJe2lmICRzbWFydHkuc2VjdGlvbi5udW1sb29wLmxhc3R9CiAgICAgICAgICAgICAgICAJCXttYXRoIGVxdWF0aW9uID0gIm4gLSBhICUgbiIgbj0kY29scyBhPSRlbnRyeS0+aW5wdXR8QGNvdW50IGFzc2lnbj0iY2VsbHMifQogICAgICAgICAgICAgICAgCQl7aWYgJGNlbGxzIG5lICRjb2xzfQogICAgICAgICAgICAgICAgCQkJe3NlY3Rpb24gbmFtZT1wYWQgbG9vcD0kY2VsbHN9CiAgICAgICAgICAgICAgICAgICAgICAgIAkJPHRkPiZuYnNwOzwvdGQ+CiAgICAgICAgICAgICAgICAJCQl7L3NlY3Rpb259CiAgICAgICAgICAgICAgIAkJIAl7L2lmfQogICAgICAgICAgICAgICAgCQk8L3RyPgogICAgICAgIAkJCXsvaWZ9CgkgICAgCQl7L3NlY3Rpb259CgkgICAgCQk8L3RhYmxlPgoJICAgIAl7ZWxzZX0KCSAgICAJCXskZW50cnktPmlucHV0fQoJICAgIAl7L2lmfQoJICAgIAl7aWYgJGVudHJ5LT52YWxpZCA9PSAwfSAmbHQ7LS0tIHsvaWZ9CiAgICAgICAgICAgICAgICB7KiB0cmFpbGluZyBkaXYgKn0KICAgICAgICAgICAgICAgIHtpZiAkZW50cnktPnR5cGUgIT0gIkZpZWxkc2V0IFN0YXJ0IiAmJiAkZW50cnktPnR5cGUgIT0gIkZpZWxkc2V0IEVuZCJ9CgkgICAgCTwvZGl2PgogICAgICAgICAgICAgICAgey9pZn0KCSAgICAJey9zdHJpcH0KCSAgey9pZn0Key9mb3JlYWNofQo8ZGl2IGNsYXNzPSJzdWJtaXQiPnskcHJldn17JHN1Ym1pdH08L2Rpdj4KPC9kaXY+Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/RenderFormTableTitleLeft.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRoaWRkZW59e2Fzc2lnbiB2YXI9ImNvbHMiIHZhbHVlPSIzIn0KPHRhYmxle2lmICRjc3NfY2xhc3MgIT0gJyd9IGNsYXNzPSJ7JGNzc19jbGFzc30iey9pZn0+CntpZiAkdG90YWxfcGFnZXMgZ3QgMX08dHI+PHRkIGNvbHNwYW49IjIiPnskdGl0bGVfcGFnZV94X29mX3l9PC90ZD48L3RyPnsvaWZ9Cntmb3JlYWNoIGZyb209JGZpZWxkcyBpdGVtPWVudHJ5fQoJICB7aWYgJGVudHJ5LT5kaXNwbGF5ID09IDF9CgkgICAgPHRyPgoJICAgIAl7c3RyaXB9CgkgICAgCTx0ZCBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIgoJICAgIAl7aWYgJGVudHJ5LT5yZXF1aXJlZCA9PSAxIHx8ICRlbnRyeS0+Y3NzX2NsYXNzICE9ICcnfSBjbGFzcz0iIAoJICAgIAkJe2lmICRlbnRyeS0+cmVxdWlyZWQgPT0gMX0KCSAgICAJCQlyZXF1aXJlZAoJICAgIAkJey9pZn0KCSAgICAJCXtpZiAkZW50cnktPnJlcXVpcmVkID09IDEgJiYgJGVudHJ5LT5jc3NfY2xhc3MgIT0gJyd9IHsvaWZ9CgkgICAgCQl7aWYgJGVudHJ5LT5jc3NfY2xhc3MgIT0gJyd9CgkgICAgCQkJeyRlbnRyeS0+Y3NzX2NsYXNzfQoJICAgIAkJey9pZn0KCSAgICAJCSIKCSAgICAJey9pZn0KCSAgICAJPgoJICAgIAl7aWYgJGVudHJ5LT5oaWRlX25hbWUgPT0gMH0KCSAgICAJCXskZW50cnktPm5hbWV9CgkgICAgCQl7aWYgJGVudHJ5LT5yZXF1aXJlZF9zeW1ib2wgIT0gJyd9CgkgICAgCQkJeyRlbnRyeS0+cmVxdWlyZWRfc3ltYm9sfQoJICAgIAkJey9pZn0KCSAgICAJey9pZn0KCSAgICAJPC90ZD48dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIntpZiAkZW50cnktPmNzc19jbGFzcyAhPSAnJ30gY2xhc3M9InskZW50cnktPmNzc19jbGFzc30iey9pZn0+CgkgICAgCXtpZiAkZW50cnktPm11bHRpcGxlX3BhcnRzID09IDF9CiAgICAJCTx0YWJsZT4KCQkJCQk8dHI+CgkJCQl7c2VjdGlvbiBuYW1lPW51bWxvb3AgbG9vcD0kZW50cnktPmlucHV0fQoJICAgIAkJCTx0ZD57JGVudHJ5LT5pbnB1dFtudW1sb29wXS0+aW5wdXR9Jm5ic3A7eyRlbnRyeS0+aW5wdXRbbnVtbG9vcF0tPm5hbWV9PC90ZD4KCSAgICAJCQkgICAgICAge2lmIG5vdCAoJHNtYXJ0eS5zZWN0aW9uLm51bWxvb3Aucm93bnVtIG1vZCAkY29scyl9CiAgICAgICAgICAgICAgICAJCQkJe2lmIG5vdCAkc21hcnR5LnNlY3Rpb24ubnVtbG9vcC5sYXN0fQogICAgICAgICAgICAgICAgICAgICAgICAJCTwvdHI+PHRyPgogICAgICAgICAgICAgICAgCQkJCXsvaWZ9CiAgICAgICAgCQkJCQl7L2lmfQogICAgICAgCQkJCXtpZiAkc21hcnR5LnNlY3Rpb24ubnVtbG9vcC5sYXN0fQogICAgICAgICAgICAgICAgCQl7bWF0aCBlcXVhdGlvbiA9ICJuIC0gYSAlIG4iIG49JGNvbHMgYT0kZW50cnktPmlucHV0fEBjb3VudCBhc3NpZ249ImNlbGxzIn0KICAgICAgICAgICAgICAgIAkJe2lmICRjZWxscyBuZSAkY29sc30KICAgICAgICAgICAgICAgIAkJCXtzZWN0aW9uIG5hbWU9cGFkIGxvb3A9JGNlbGxzfQogICAgICAgICAgICAgICAgICAgICAgICAJCTx0ZD4mbmJzcDs8L3RkPgogICAgICAgICAgICAgICAgCQkJey9zZWN0aW9ufQogICAgICAgICAgICAgICAJCSAJey9pZn0KICAgICAgICAgICAgICAgIAkJPC90cj4KICAgICAgICAJCQl7L2lmfQoJICAgIAkJey9zZWN0aW9ufQoJICAgIAkJPC90YWJsZT4KCSAgICAJe2Vsc2V9CgkgICAgCQl7JGVudHJ5LT5pbnB1dH0KCSAgICAJey9pZn0KCSAgICAJe2lmICRlbnRyeS0+dmFsaWQgPT0gMH0gJmx0Oy0tLSB7L2lmfQoJICAgIAk8L3RkPjwvdHI+CgkgICAgCXsvc3RyaXB9CgkgIHsvaWZ9CnsvZm9yZWFjaH0KPHRyPjx0ZD57JHByZXZ9PC90ZD48dGQ+eyRzdWJtaXR9PC90ZD48L3RyPgo8L3RhYmxlPg==]]></data>
	</file>
	<file>
	  <filename>/templates/RenderFormTableTitleTop.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRoaWRkZW59e2Fzc2lnbiB2YXI9ImNvbHMiIHZhbHVlPSIzIn0KPHRhYmxle2lmICRjc3NfY2xhc3MgIT0gJyd9IGNsYXNzPSJ7JGNzc19jbGFzc30iey9pZn0+CntpZiAkdG90YWxfcGFnZXMgZ3QgMX08dHI+PHRkIGNvbHNwYW49IjIiPnskdGl0bGVfcGFnZV94X29mX3l9PC90ZD48L3RyPnsvaWZ9Cntmb3JlYWNoIGZyb209JGZpZWxkcyBpdGVtPWVudHJ5fQoJICB7aWYgJGVudHJ5LT5kaXNwbGF5ID09IDF9CgkgICAgPHRyPgoJICAgIAl7c3RyaXB9CgkgICAgCTx0ZAoJICAgIAl7aWYgJGVudHJ5LT5yZXF1aXJlZCA9PSAxIHx8ICRlbnRyeS0+Y3NzX2NsYXNzICE9ICcnfSBjbGFzcz0iIAoJICAgIAkJe2lmICRlbnRyeS0+cmVxdWlyZWQgPT0gMX0KCSAgICAJCQlyZXF1aXJlZAoJICAgIAkJey9pZn0KCSAgICAJCXtpZiAkZW50cnktPnJlcXVpcmVkID09IDEgJiYgJGVudHJ5LT5jc3NfY2xhc3MgIT0gJyd9IHsvaWZ9CgkgICAgCQl7aWYgJGVudHJ5LT5jc3NfY2xhc3MgIT0gJyd9CgkgICAgCQkJeyRlbnRyeS0+Y3NzX2NsYXNzfQoJICAgIAkJey9pZn0KCSAgICAJCSIKCSAgICAJey9pZn0KCSAgICAJPgoJICAgIAl7aWYgJGVudHJ5LT5oaWRlX25hbWUgPT0gMH0KCSAgICAJCXskZW50cnktPm5hbWV9CgkgICAgCQl7aWYgJGVudHJ5LT5yZXF1aXJlZF9zeW1ib2wgIT0gJyd9CgkgICAgCQkJeyRlbnRyeS0+cmVxdWlyZWRfc3ltYm9sfQoJICAgIAkJey9pZn0KCSAgICAJey9pZn0KCSAgICAJPC90ZD48L3RyPgoJICAgIAk8dHI+PHRke2lmICRlbnRyeS0+Y3NzX2NsYXNzICE9ICcnfSBjbGFzcz0ieyRlbnRyeS0+Y3NzX2NsYXNzfSJ7L2lmfT4KCSAgICAJe2lmICRlbnRyeS0+bXVsdGlwbGVfcGFydHMgPT0gMX0KICAgIAkJPHRhYmxlPgoJCQkJCTx0cj4KCQkJCXtzZWN0aW9uIG5hbWU9bnVtbG9vcCBsb29wPSRlbnRyeS0+aW5wdXR9CgkgICAgCQkJPHRkPnskZW50cnktPmlucHV0W251bWxvb3BdLT5pbnB1dH0mbmJzcDt7JGVudHJ5LT5pbnB1dFtudW1sb29wXS0+bmFtZX08L3RkPgoJICAgIAkJCSAgICAgICB7aWYgbm90ICgkc21hcnR5LnNlY3Rpb24ubnVtbG9vcC5yb3dudW0gbW9kICRjb2xzKX0KICAgICAgICAgICAgICAgIAkJCQl7aWYgbm90ICRzbWFydHkuc2VjdGlvbi5udW1sb29wLmxhc3R9CiAgICAgICAgICAgICAgICAgICAgICAgIAkJPC90cj48dHI+CiAgICAgICAgICAgICAgICAJCQkJey9pZn0KICAgICAgICAJCQkJCXsvaWZ9CiAgICAgICAJCQkJe2lmICRzbWFydHkuc2VjdGlvbi5udW1sb29wLmxhc3R9CiAgICAgICAgICAgICAgICAJCXttYXRoIGVxdWF0aW9uID0gIm4gLSBhICUgbiIgbj0kY29scyBhPSRlbnRyeS0+aW5wdXR8QGNvdW50IGFzc2lnbj0iY2VsbHMifQogICAgICAgICAgICAgICAgCQl7aWYgJGNlbGxzIG5lICRjb2xzfQogICAgICAgICAgICAgICAgCQkJe3NlY3Rpb24gbmFtZT1wYWQgbG9vcD0kY2VsbHN9CiAgICAgICAgICAgICAgICAgICAgICAgIAkJPHRkPiZuYnNwOzwvdGQ+CiAgICAgICAgICAgICAgICAJCQl7L3NlY3Rpb259CiAgICAgICAgICAgICAgIAkJIAl7L2lmfQogICAgICAgICAgICAgICAgCQk8L3RyPgogICAgICAgIAkJCXsvaWZ9CgkgICAgCQl7L3NlY3Rpb259CgkgICAgCQk8L3RhYmxlPgoJICAgIAl7ZWxzZX0KCSAgICAJCXskZW50cnktPmlucHV0fQoJICAgIAl7L2lmfQoJICAgIAl7aWYgJGVudHJ5LT52YWxpZCA9PSAwfSAmbHQ7LS0tIHsvaWZ9CgkgICAgCTwvdGQ+PC90cj4KCSAgICAJey9zdHJpcH0KCSAgey9pZn0Key9mb3JlYWNofQo8dHI+PHRkPnskcHJldn17JHN1Ym1pdH08L3RkPjwvdHI+CjwvdGFibGU+]]></data>
	</file>
</module>
