<?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.4.4</version>
  <mincmsversion>1.1</mincmsversion>
	<help>PGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+CjxwPlRoZSBGb3JtIEJ1aWxkZXIgTW9kdWxlIGFsbG93cyB5b3UgdG8gY3JlYXRlIGZlZWRiYWNrIGZvcm1zIChpbiBmYWN0LCBpdCdzIGEgcmVwbGFjZW1lbnQgb2YgdGhlIG9yaWdpbmFsIEZlZWRiYWNrIEZvcm0gbW9kdWxlKSwgd2l0aCB0aGUgYWRkZWQgcG93ZXIgb2YgZGF0YWJhc2Ugc3RvcmFnZS4gV2l0aCBpdHMgY29tcGFuaW9uIG1vZHVsZSBGb3JtIEJyb3dzZXIsIHlvdSBjYW4gdXNlIGl0IHRvIGNyZWF0ZSBzaW1wbGUgZGF0YWJhc2UgYXBwbGljYXRpb25zLjwvcD4KPHA+VGhlIGZvcm1zIGNyZWF0ZWQgdXNpbmcgdGhlIEZvcm0gQnVpbGRlciBtYXkgYmUgaW5zZXJ0ZWQKaW50byB0ZW1wbGF0ZXMgYW5kL29yIGNvbnRlbnQgcGFnZXMuIEZvcm1zIG1heSBjb250YWluIG1hbnkga2luZHMgb2YgaW5wdXRzLCBhbmQgbWF5IGhhdmUKdmFsaWRhdGlvbiBhcHBsaWVkIHRvIHRoZXNlIGlucHV0cy4gVGhlIHJlc3VsdHMgb2YgdGhlc2UgZm9ybXMgbWF5IGJlIGhhbmRsZWQgaW4gYSB2YXJpZXR5IG9mIHdheXMuPC9wPgoKPGgzPkhvdyBEbyBJIFVzZSBpdD88L2gzPgo8UD5JbnN0YWxsIGl0LCBhbmQgcG9rZSBhcm91bmQgdGhlIG1lbnVzLiBQbGF5IHdpdGggaXQuIFRyeSBjcmVhdGluZyBmb3JtcywgYW5kIGFkZGluZyB0aGVtIHRvIHlvdXIgY29udGVudC4KSWYgeW91IGdldCBzdHVjaywgY2hhdCB3aXRoIG1lIG9uIHRoZSAjY21zIElSQyBjaGFubmVsLCBwb3N0IHRvIHRoZSBmb3J1bSwgc2VuZCBtZSBlbWFpbCwgb3IsIGlmIHlvdSdyZQpyZWFsbHkgZGVzcGVyYXRlLCByZWFkIHRoZSByZXN0IG9mIHRoaXMgcGFnZS48L1A+Cgo8aDM+SG93IERvIEkgQ3JlYXRlIGEgRm9ybTwvaDM+CjxwPkluIHRoZSBDTVMgQWRtaW4gTWVudSwgeW91IHNob3VsZCBnZXQgYSBuZXcgbWVudSBpdGVtIGNhbGxlZCBGb3JtQnVpbGRlci4gQ2xpY2sgb24gdGhpcy4gT24gdGhlIHBhZ2UKdGhhdCBnZXRzIHNob3duLCB0aGVyZSBhcmUgb3B0aW9ucyAoYXQgdGhlIGJvdHRvbSBvZiB0aGUgbGlzdCBvZiBGb3JtcykgdG8gQWRkIGEgTmV3IEZvcm0gb3IgTW9kaWZ5CkNvbmZpZ3VyYXRpb24uPC9wPgoKPGgzPkFkZGluZyBhIEZvcm0gdG8gYSBQYWdlPC9oMz4KPHA+SW4gdGhlIG1haW4gRm9ybUJ1aWxkZXIgYWRtaW4gcGFnZSwgeW91IGNhbiBzZWUgYW4gZXhhbXBsZSBvZiB0aGUgdGFnIHVzZWQgdG8gZGlzcGxheSBlYWNoIGZvcm0uIEl0IGxvb2tzCnNvbWV0aGluZyBsaWtlIHtjbXNfbW9kdWxlIG1vZHVsZT0nRm9ybUJ1aWxkZXInIGZvcm09J3NhbXBsZV9mb3JtJ308L3A+CjxwPkJ5IGNvcHlpbmcgdGhpcyB0YWcgaW50byB0aGUgY29udGVudCBvZiBhIHBhZ2UsIG9yIGludG8gYSB0ZW1wbGF0ZSwgd2lsbCBjYXVzZSB0aGF0IGZvcm0gdG8gYmUgZGlzcGxheWVkLgpJbiB0aGVvcnksIHlvdSBjYW4gaGF2ZSBtdWx0aXBsZSBmb3JtcyBvbiBhIHBhZ2UgaWYgeW91IHJlYWxseSB3YW50IHRvLiBCZSBjYXJlZnVsIHdoZW4gcGFzdGluZyB0aGUgdGFnCmludG8gYSBwYWdlJ3MgY29udGVudCBpZiB5b3UgdXNlIGEgV1lTSVdZRyBlZGl0b3Igc3VjaCBhcyBUaW55TUNFLCBGQ0tFZGl0LCBvciBIVE1MQXJlYS4gVGhlc2UgZWRpdG9ycyBtYXkgc3RlYWx0aGlseQpjaGFuZ2UgdGhlIHF1b3RlIG1hcmtzICgiKSBpbnRvIEhUTUwgZW50aXRpZXMgKCZhbXA7cXVvdDspLCBhbmQgdGhlIGZvcm1zIHdpbGwgbm90IHNob3cgdXAuIFRyeSB1c2luZwpzaW5nbGUgcXVvdGVzICgnKSBvciBlZGl0aW5nIHRoZSBIVE1MIGRpcmVjdGx5LjwvcD4KCjxoMz5Xb3JraW5nIHdpdGggRm9ybXM8L2gzPgo8cD5CeSBjbGlja2luZyBvbiBhIEZvcm0ncyBuYW1lLCB5b3UgZW50ZXIgdGhlIEZvcm0gRWRpdCBwYWdlLiBUaGVyZSBhcmUgc2V2ZXJhbCB0YWJzLCB3aGljaCBhcmUgZGVzY3JpYmVkIGJlbG93OjwvcD4KPGg0Pk1haW48L2g0Pgo8cD5UaGlzIGlzIHRoZSBtYWluIHBsYWNlIHlvdSdsbCB3b3JrIG9uIHlvdXIgZm9ybS4gSGVyZSwgeW91IGdpdmUgaXQgYSBuYW1lLCBhbiBhbGlhcyAod2hpY2ggaXMgdXNlZCB0byBpZGVudGlmeSBpdCBmb3IgcGxhY2luZyBpdCBpbiBhIHBhZ2Ugb3IgdGVtcGxhdGUpLCBhbmQsIG9wdGlvbmFsbHksIGEgQ1NTIGNsYXNzIHdpdGggd2hpY2ggdG8gd3JhcCB0aGUgd2hvbGUgdGhpbmcuPC9wPgo8cD5CZWxvdyB0aGlzLCBpZiB5b3UgaGF2ZSBpdCBlbmFibGVkLCBpcyB0aGUgImZhc3QgZmllbGQgYWRkZXIiIHB1bGxkb3duLCB0aGF0IGxldHMgeW91IHF1aWNrbHkgYWRkIGEgZmllbGQgdG8gdGhlIGVuZCBvZiB5b3VyIGZvcm0gYnkgc2VsZWN0aW5nIHRoZSBmaWVsZCB0eXBlLjwvcD4KPHA+QmVsb3cgdGhpcyBpcyB0aGUgbGlzdCBvZiBmaWVsZHMgdGhhdCBtYWtlIHVwIHlvdXIgZm9ybS4gTW9yZSBkZXRhaWwgb24gdGhpcyBpcyBkZXNjcmliZWQgYmVsb3cuPC9wPgo8aDQ+Rm9ybSBTdWJtaXNzaW9uPC9oND4KPHA+V2hlbiB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQsIHlvdSBjYW4gZWl0aGVyIHJlZGlyZWN0IHRoZSB1c2VyIHRvIGFub3RoZXIgcGFnZSBvZiB5b3VyIHNpdGUsIG9yIHlvdSBjYW4gcHJlc2VudCB0aGUgdXNlciBzb21lIG1lc3NhZ2UgKHdoaWNoIGNhbiBjb250YWluIGFueSBvZiB0aGUgdXNlcidzIGZvcm0gZW50cmllcywgb3IganVzdCBzdGF0aWMgdGV4dCkuIEluIHRoaXMgdGFiLCB5b3Ugc2VsZWN0IHdoaWNoIG9mIHRoZXNlIGFwcHJvYWNoZXMgeW91IHdpc2ggdG8gdXNlLCBhbmQsIGlmIHlvdSBjaG9zZSByZWRpcmVjdGlvbiwgaXQgYWxsb3dzIHlvdSB0byBwaWNrIHRoZSBwYWdlIHRvIHJlZGlyZWN0IHVzZXJzIHRvIGFmdGVyIGEgc3VjY2Vzc2Z1bCBmb3JtIHN1Ym1pc3Npb24uPC9wPgo8cD5BbHNvIG9uIHRoaXMgcGFnZSwgeW91IGNhbiBzcGVjaWZ5IHRoZSBsYWJlbHMgb2YgdmFyaW91cyBzdWJtaXNzaW9uIGJ1dHRvbnMgKCJQcmV2aW91cyIsICJuZXh0IiwgInN1Ym1pdCIpLiBZb3UgY2FuIGFsc28gb3B0IHRvIGhhdmUgc29tZSBKYXZhc2NyaXB0IGFkZGVkIHRvIHRoZSBsYXN0IHBhZ2Ugb2YgYSBmb3JtIHRoYXQgd2lsbCBwcmV2ZW50IG11bHRpcGxlIHN1Ym1pc3Npb25zICh1c2VmdWwgb24gc2xvdyBzZXJ2ZXJzKS48L3A+CjxoND5Gb3JtIERpc3BsYXkgT3B0aW9uczwvaDQ+CjxwPlRoaXMgdGFiIGFsbG93cyBmb3Igb3RoZXIgZm9ybSBjdXN0b21pemF0aW9ucywgbGlrZSB0aGUgc3ltYm9sIHRvIHNob3cgZm9yIHJlcXVpcmVkIGZpZWxkcy48L3A+CjxoND5DYXB0Y2hhIFNldHRpbmdzPC9oND4KPHA+SWYgeW91IGhhdmUgaW5zdGFsbGVkIHRoZSBDYXB0Y2hhIG1vZHVsZSwgdGhpcyB0YWIgbGV0cyB5b3UgY29uZmlndXJlIHRoZSBDYXB0Y2hhIHNldHRpbmdzIGZvciB5b3VyIGZvcm0uPC9wPgo8aDQ+Rm9ybSBUZW1wbGF0ZTwvaDQ+CjxwPlRoaXMgaXMgd2hlcmUgeW91IGRvIHlvdXIgY3VzdG9taXphdGlvbiB3b3JrIG9mIHlvdXIgZm9ybSdzIFNtYXJ0eSBUZW1wbGF0ZS4gU2VlIHRoZSBzZWN0aW9uIGNhbGxlZCBGb3JtIFRlbXBsYXRlIFZhcmlhYmxlcyBiZWxvdy48L3A+CjxwPlRoZSBmb3JtIHNob3VsZCBkZWZhdWx0IHRvIGEgQ3VzdG9tIHRlbXBsYXRlIHRoYXQgZG9jdW1lbnRzIHRoZSBTbWFydHkgdGFncyBhdmFpbGFibGUgdG8geW91LjwvcD4KPHA+VW5sZXNzIHlvdSdyZSBhIFNtYXJ0eSBleHBlcnQsIHlvdSBwcm9iYWJseSBkb24ndCB3YW50IHRvIG1lc3MgYXJvdW5kIHdpdGggdGhpcy4gSWYgeW91IGFyZSBhIFNtYXJ0eSBleHBlcnQsIHRoaXMgaXMgd2hlcmUgeW91IGNhbiB1bmxlYXNoIHlvdXIgbWFnaWMuPC9wPgo8aDQ+U3VibWlzc2lvbiBUZW1wbGF0ZTwvaDQ+CjxwPklmLCBpbiB0aGUgRm9ybSBTdWJtaXNzaW9uIHRhYiwgeW91IHNlbGVjdGVkICdEaXNwbGF5ICJTdWJtaXNzaW9uIFRlbXBsYXRlIiwgdGhpcyBpcyB3aGVyZSB5b3UgY2FuIGNyZWF0ZSB0aGF0IHRlbXBsYXRlLiBUaGVyZSBpcyBhIGRpc3BsYXkgb2Ygd2hpY2ggc21hcnR5IHZhcmlhYmxlcyBhcmUgYXZhaWxhYmxlIHRvIHlvdSwgYW5kIGEgYnV0dG9uIHRvIGdlbmVyYXRlIGEgc2FtcGxlIHRlbXBsYXRlLjwvcD4KPHA+SWYgeW91J3JlIGEgU21hcnR5IGV4cGVydCwgeW91IGNhbiBkbyBhbGwgbWFubmVyIG9mIGNyZWF0aXZlIGFuZCBwb3dlcmZ1bCB0aGluZ3MgaGVyZS4gSWYgeW91J3JlIG5vdCBhIFNtYXJ0eSBleHBlcnQsIHlvdSBtaWdodCBqdXN0IHdhbnQgdG8gdXNlIHRoZSBkZWZhdWx0Lgo8L3A+Cgo8aDM+QWRkaW5nIEZpZWxkcyB0byB5b3VyIEZvcm08L2gzPgo8cD5UaGUgdHlwZXMgb2YgZmllbGRzIHRoYXQgYXJlIGN1cnJlbnRseSBzdXBwb3J0ZWQgZml0IGludG8gZm91ciBncm91cHM6IHN0YW5kYXJkIGlucHV0IGZpZWxkcywgZGlzcGxheSBjb250cm9sIGZpZWxkcywgZW1haWwtc3BlY2lmaWMgZmllbGRzLCBhbmQgZm9ybSByZXN1bHQgaGFuZGxpbmcgZmllbGRzIChhbHNvIGNhbGxlZCBGb3JtIERpc3Bvc2l0aW9ucyBpbiBwbGFjZXMpOjwvcD4KPHVsPgo8bGk+U3RhbmRhcmQgSW5wdXQgRmllbGRzIC0gdGhlc2UgYXJlIGlucHV0cyB0aGF0IGFsbG93IGVudHJ5IG9mIHR5cGljYWwgZm9ybSBlbGVtZW50czsgdGV4dCBpbnB1dHMsIHJhZGlvIGJ1dHRvbnMsIGV0Yy48L2xpPgo8bGk+RGlzcGxheSBDb250cm9sIEZpZWxkcyAtIHRoZXNlIGlucHV0IGNvbnRyb2wgaG93IHRoZSB1c2VyIHdpbGwgc2VlIHRoZSBkaXNwbGF5IG9mIHRoZSBmb3JtOyBwYWdlIGJyZWFrcywgc3RhdGljIHRleHQsIGV0Yy48L2xpPgo8bGk+RW1haWwtc3BlY2lmaWMgRmllbGRzIC0gc29tZSBmb3JtcyBnZW5lcmF0ZSBlbWFpbCwgYW5kIGVtYWlsLXNwZWNpZmljIGZpZWxkcyBjYW4gYWx0ZXIgYXR0cmlidXRlcyBvZiB0aGUgZW1haWxzIHNlbnQuPC9saT4KPGxpPkZvcm0gRGlzcG9zaXRpb25zIC0gVGhlc2UgZGV0ZXJtaW5lIHdoYXQgaGFwcGVucyB3aGVuIHRoZSB1c2VyCnN1Ym1pdHMgdGhlIGZvcm07IGZvciBlYWNoIHJlc3VsdCBoYW5kbGluZyBmaWVsZCwgc29tZSBtZXRob2Qgb2YgdHJhbnNtaXR0aW5nLCBzYXZpbmcsIG9yIGVtYWlsaW5nIHRoZQpmb3JtIGNvbnRlbnRzIHRha2VzIHBsYWNlLiBBIGZvcm0gbWF5IGhhdmUgbXVsdGlwbGUgZm9ybSBkaXNwb3NpdGlvbnMuPC9saT4KPC91bD4KPHA+Rm9ybSBmaWVsZHMgYXJlIGFzc2lnbmVkIG5hbWVzLiBUaGVzZSBuYW1lcyBpZGVudGlmeSB0aGUgZmllbGQsIG5vdCBvbmx5IG9uIHRoZSBzY3JlZW4gYXMgbGFiZWxzIGZvciB0aGUgdXNlciwKYnV0IGluIHRoZSBkYXRhIHdoZW4gaXQncyBzdWJtaXR0ZWQgc28geW91IGtub3cgd2hhdCB0aGUgdXNlciBpcyByZXNwb25kaW5nIHRvLiBQaHJhc2luZyB0aGUgbmFtZSBsaWtlIGEgcXVlc3Rpb24KaXMgYSBoYW5keSB3YXkgb2YgbWFraW5nIGl0IGNsZWFyIHRvIHRoZSB1c2VyIHdoYXQgaXMgZXhwZWN0ZWQuIFNpbWlsYXJseSwgbWFueSBmaWVsZHMgaGF2ZSBib3RoIE5hbWVzIGFuZCBWYWx1ZXMuClRoZSBOYW1lcyBhcmUgd2hhdCBnZXRzIHNob3duIHRvIHRoZSB1c2VyOyB0aGUgVmFsdWUgaXMgd2hhdCBnZXRzIHNhdmVkIG9yIHRyYW5zbWl0dGVkIHdoZW4gdGhlIHVzZXIgc3VibWl0cwp0aGUgZm9ybS4gVGhlIFZhbHVlcyBhcmUgbmV2ZXIgc2VlbiBieSB0aGUgdXNlciwgbm9yIGFyZSB0aGV5IHZpc2libGUgaW4gdGhlIEhUTUwsIHNvIGl0J3Mgc2FmZSB0byB1c2UgZm9yCmVtYWlsIGFkZHJlc3NlcyBhbmQgc3VjaC48L3A+CjxwPlNvbWUgZmllbGRzIGNhbiBoYXZlIG11bHRpcGxlIHZhbHVlcywgb3IgbXVsdGlwbGUgbmFtZS92YWx1ZSBwYWlycy4gV2hlbiB5b3UgZmlyc3QgY3JlYXRlIHN1Y2ggYSBmaWVsZCwKdGhlcmUgbWF5IG5vdCBiZSBzdWZmaWNpZW50IGlucHV0cyBmb3IgeW91IHRvIHNwZWNpZnkgYWxsIHRoZSB2YWx1ZXMgeW91IHdhbnQuIFRvIGdldCBtb3JlIHNwYWNlIGZvciBpbnB1dHRpbmcKdGhlc2UgdmFsdWVzLCB1c2UgdGhlIGJ1dHRvbnMgYXQgdGhlIGJvdHRvbSBvZiB0aGUgcGFnZSBmb3IgYWRkaW5nIG9wdGlvbnMuPC9wPgo8cD5GaWVsZHMgY2FuIGJlIGFzc2lnbmVkIHZhbGlkYXRpb24gcnVsZXMsIHdoaWNoIHZhcnkgYWNjb3JkaW5nIHRvIHRoZSB0eXBlIG9mIHRoZSBmaWVsZC4gVGhlc2UgcnVsZXMgaGVscAplbnN1cmUgdGhhdCB0aGUgdXNlciBlbnRlcnMgdmFsaWQgZGF0YS4gVGhleSBtYXkgYWxzbyBiZQpzZXBhcmF0ZWx5IG1hcmtlZCAiUmVxdWlyZWQiLCB3aGljaCB3aWxsIGZvcmNlIHRoZSB1c2VyIHRvIGVudGVyIGEgcmVzcG9uc2UuPC9wPgo8cD5GaWVsZHMgYWxzbyBtYXkgYmUgYXNzaWduZWQgYSBDU1MgY2xhc3MuIFRoaXMgc2ltcGx5IHdyYXBzIHRoZSBpbnB1dCBpbiBhIGRpdiB3aXRoIHRoYXQgY2xhc3MsIHNvIGFzIHRvIGFsbG93CmN1c3RvbWl6ZWQgbGF5b3V0cy4gVG8gdXNlIHRoaXMgZWZmZWN0aXZlbHksIHlvdSBtYXkgbmVlZCB0byAidmlldyBzb3VyY2UiIG9uIHRoZSBnZW5lcmF0ZWQgZm9ybSwgYW5kIHRoZW4Kd3JpdGUgeW91ciBDU1MuPC9wPgo8dWw+CjxsaT5TdGFuZGFyZCBJbnB1dHMKPHVsPjxsaT5UZXh0IElucHV0LiBUaGlzIGlzIGEgc3RhbmRhcmQgdGV4dCBmaWVsZC4gWW91IGNhbiBsaW1pdCB0aGUgbGVuZ3RoLCBhbmQgYXBwbHkgdmFyaW91cyB2YWxpZGF0aW9uCmZ1bmN0aW9ucyB0byB0aGUgZmllbGQuPC9saT4KPGxpPlRleHQgQXJlYS4gVGhpcyBpcyBhIGJpZywgZnJlZS1mb3JtIHRleHQgaW5wdXQgZmllbGQuPC9saT4KPGxpPkNoZWNrYm94LiBUaGlzIGlzIGEgc3RhbmRhcmQgY2hlY2sgYm94LjwvbGk+CjxsaT5DaGVja2JveCBHcm91cC4gVGhpcyBpcyBhIGNvbGxlY3Rpb24gb2YgY2hlY2tib3hlcy4gVGhlIG9ubHkgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoaXMgaW5wdXQgYW5kIGEKY29sbGVjdGlvbiBvZiBDaGVja2JveCBpbnB1dHMgaXMgdGhhdCB0aGV5IGFyZSBwcmVzZW50ZWQgYXMgYSBncm91cCwgd2l0aCBvbmUgbmFtZSwgYW5kIGNhbiBoYXZlIGEgdmFsaWRhdGlvbiBmdW5jdGlvbiByZXF1aXJpbmcgdGhhdCB5b3UgY2hlY2sgb25lIG9yIG1vcmUgb2YgdGhlIGJveGVzIGluIHRoZSBncm91cC48L2xpPgo8bGk+UmFkaW8gR3JvdXAuIFRoaXMgaXMgYSBjb2xsZWN0aW9uIG9mIHJhZGlvIGJ1dHRvbnMuIE9ubHkgb25lIG9mIHRoZSBncm91cCBtYXkgYmUgc2VsZWN0ZWQgYnkgdGhlIHVzZXIuPC9saT4KPGxpPlB1bGxkb3duLiBUaGlzIGlzIGEgc3RhbmRhcmQgcHVsbGRvd24gbWVudS4gSXQncyByZWFsbHkgY29uY2VwdHVhbGx5IHRoZSBzYW1lIHRoaW5nIGFzIGEgcmFkaW8gYnV0dG9uCmdyb3VwLCBidXQgaXMgYmV0dGVyIHdoZW4gdGhlcmUgYXJlIGEgbGFyZ2UgbnVtYmVyIG9mIG9wdGlvbnMuPC9saT4KPGxpPk11bHRpc2VsZWN0LiBUaGlzIGlzIGEgbXVsdGktc2VsZWN0IGZpZWxkLiBJdCdzIHJlYWxseSBjb25jZXB0dWFsbHkgdGhlIHNhbWUgdGhpbmcgYXMgYSBjaGVja2JveCBidXR0b24KZ3JvdXAsIGJ1dCBpcyBiZXR0ZXIgd2hlbiB0aGVyZSBhcmUgYSBsYXJnZSBudW1iZXIgb2Ygb3B0aW9ucywgYXMgeW91IGNhbiBsaW1pdCB0aGUgbnVtYmVyIGRpc3BsYXllZCBvbiB0aGUgc2NyZWVuIGF0IGFueSBvbmUgdGltZS48L2xpPgo8bGk+U3RhdGUuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBTdGF0ZXMgb2YgdGhlIFUuUy48L2xpPgo8bGk+Q291bnRyaWVzLiBUaGlzIGlzIGEgcHVsbGRvd24gbGlzdGluZyB0aGUgQ291bnRyaWVzIG9mIHRoZSB3b3JsZCAoYXMgb2YgSnVseSAyMDA1KS48L2xpPgo8bGk+RGF0ZSBQaWNrZXIuIFRoaXMgaXMgYSB0cmlwbGUgcHVsbGRvd24gYWxsb3dpbmcgdGhlIHVzZXIgdG8gc2VsZWN0IGEgZGF0ZS48L2xpPgo8bGk+VGltZSBQaWNrZXIuIFRoaXMgaXMgYSBzZXQgb2YgcHVsbGRvd25zIGFsbG93aW5nIHRoZSB1c2VyIHRvIHNlbGVjdCBhIHRpbWUgKHVzaW5nIDEyIG9yIDI0IGhvdXIgY2xvY2spLjwvbGk+CjxsaT5GaWxlIFVwbG9hZC4gVGhpcyBpcyBhIGZpbGUgdXBsb2FkIGZpZWxkLjwvbGk+CjxsaT5MaW5rIChVc2VyIEVudGVyZWQpLiBUaGlzIGNyZWF0ZXMgYSBkb3VibGUgaW5wdXQgZmllbGQgZm9yIGdldHRpbmcgYSBsaW5rIFVSTCBhbmQgbGluayB0aXRsZS48L2xpPgo8bGk+VGV4dCBGaWVsZCAoTXVsdGlwbGUpLiBUaGlzIGZpZWxkIGNyZWF0ZXMgb25lIG9yIG1vcmUgdGV4dCBpbnB1dHMgd2l0aCBhZGQgYW5kIGRlbGV0ZSBidXR0b25zLCBlZmZlY3RpdmVseSBnaXZpbmcgdGhlIGVuZCB1c2VyIGEgd2F5IG9mIGNyZWF0aW5nIHZhcmlhYmxlLWxlbmd0aCBsaXN0cy48L2xpPgo8L3VsPjwvbGk+Cgo8bGk+RW1haWwtc3BlY2lmaWMgSW5wdXRzCjx1bD48bGk+RW1haWwgRnJvbSBBZGRyZXNzIEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIHRoZWlyIGVtYWlsIGFkZHJlc3MuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBhZGRyZXNzIGluIHRoZSAiRnJvbSIgZmllbGQuPC9saT4KPGxpPkVtYWlsIEZyb20gTmFtZSBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSB0aGVpciBuYW1lLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgbmFtZSBpbiB0aGUgIkZyb20iIGZpZWxkLjwvbGk+CjxsaT5FbWFpbCBTdWJqZWN0IEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIGEgc3ViamVjdCBmb3IgdGhlaXIgZW1haWwuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBpbiB0aGUgIlN1YmplY3QiIGZpZWxkLiBUaGlzIG1heSBjYXVzZSB0cm91YmxlIHdpdGggY2VydGFpbiBkaXNwb3NpdGlvbnMgdGhhdCB3YW50IHRvIGNvbnRyb2wgdGhlIEVtYWlsIFN1YmplY3QsIHNvIHVzZSBpdCB3aXRoIGNhdXRpb24uPC9saT4KPC91bD48L2xpPgoKPGxpPkRpc3BsYXkgQ29udHJvbCBGaWVsZHM8dWw+CjxsaT4tUGFnZSBCcmVhay4gVGhpcyBhbGxvd3MgeW91IHRvIHNwbGl0IHlvdXIgZmVlZGJhY2sgZm9ybSBpbnRvIG11bHRpcGxlIHBhZ2VzLiBFYWNoIHBhZ2UgaXMKaW5kZXBlbmRlbnRseSB2YWxpZGF0ZWQuIFRoaXMgaXMgZ29vZCBmb3IgYXBwbGljYXRpb25zIGxpa2Ugb25saW5lIHN1cnZleXMuPC9saT4KPGxpPi1GaWVsZHNldCBTdGFydC4gQ29tYmluZWQgd2l0aCBGaWVsZHNldCBFbmQsIHRoaXMgYWxsb3dzIHlvdSB0byBncm91cCB2YXJpb3VzIGZpZWxkcyB3aXRoaW4geW91ciBmb3JtLiBVc2UgdGhpcyB0byBzdGFydCBhIGdpdmVuIGdyb3VwaW5nLjwvbGk+CjxsaT4tRmllbGRzZXQgRW5kLiBDb21iaW5lZCB3aXRoIEZpZWxkc2V0IFN0YXJ0LCB0aGlzIGFsbG93cyB5b3UgdG8gZ3JvdXAgdmFyaW91cyBmaWVsZHMgd2l0aGluIHlvdXIgZm9ybS4gVXNlIHRoaXMgdG8gZW5kIGEgZ2l2ZW4gZ3JvdXBpbmcuPC9saT4KPGxpPi1IaWRkZW4gRmllbGQuIFRoaXMgYWxsb3dzIHlvdSB0byBlbWJlZCBhIGhpZGRlbiBmaWVsZCBpbiB5b3VyIGZvcm0uPC9saT4KPGxpPi1TdGF0aWMgVGV4dC4gVGhpcyBhbGxvd3MgeW91IHRvIHB1dCB0ZXh0IG9yIGEgbGFiZWwgaW4gdGhlIG1pZGRsZSBvZiB5b3VyIGZvcm0uIFRoaXMgaXMgdXNlZnVsIGZvciBnaXZpbmcgYWRkaXRpb25hbCBoZWxwIHRleHQsIGVzcGVjaWFsbHkgaWYgeW91J3JlIG5vdCB1c2luZyBhIEN1c3RvbSBUZW1wbGF0ZSB0byByZW5kZXIgeW91ciBmb3JtLjwvbGk+CjxsaT4tU3RhdGljIExpbmsuIFRoaXMgYWxsb3dzIHlvdSB0byBwdXQgYSBsaW5rIHRvIGEgZ2l2ZW4gcGFnZSBpbnRvIHlvdXIgZm9ybS4gT3B0aW9uYWxseSwgeW91IGNhbiBoYXZlIGl0IGF1dG9wb3B1bGF0ZSB3aXRoIHRoZSBwYWdlIHdoZXJlIHRoZSBmb3JtIGlzIGVtYmVkZGVkICh1c2VmdWwgaWYgeW91XCdyZSBzZW5kaW5nIHJlc3VsdHMgdmlhIGVtYWlsKS48L2xpPgo8bGk+LUNvbXB1dGVkIEZpZWxkLiBUaGlzIGFsbG93cyB5b3UgdG8gZW1iZWQgYSBjb21wdXRlZCBmaWVsZCBpbiB5b3VyIGZvcm0uIEl0IGlzIG5vdCB2aXNpYmxlIHRvIHRoZSB1c2VyIHVudGlsIGFmdGVyIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZC4gSXQgYWxsb3dzIHlvdSB0byBkbyBzaW1wbGUgYXJpdGhtZXRpYyBvciBzdHJpbmcgY29uY2F0ZW5hdGlvbi48L2xpPgo8L3VsPjwvbGk+Cgo8bGk+Rm9ybSBIYW5kbGluZyBJbnB1dHMgKERpc3Bvc2l0aW9ucykKPHVsPjxsaT4qQ2FsbCBhIFVzZXIgRGVmaW5lZCBUYWcgV2l0aCB0aGUgRm9ybSBSZXN1bHRzLiBUaGlzIHN1Ym1pdHMgYWxsIHRoZSBmb3JtIHJlc3VsdHMgdG8gdGhlIFVzZXItRGVmaW5lZCBUYWcgeW91IHNwZWNpZnkuIFRoZSBVRFQgY2FuIGhhbmRsZSB0aGUgcmVzdWx0cyBob3dldmVyIGl0IHdhbnRzLjwvbGk+CjxsaT4qRW1haWwgUmVzdWx0cyBCYXNlZCBvbiBQdWxsZG93bi4gVGhpcyBpcyB1c2VmdWwgZm9yIHdlYiBzaXRlcyB3aGVyZSBjb21tZW50cyBnZXQgcm91dGVkIGJhc2VkIG9uIHRoZWlyIHN1YmplY3QgbWF0dGVyLCBlLmcuLCBidWdzIGdldCBzZW50IHRvIG9uZSBwZXJzb24sIG1hcmtldGluZyBxdWVzdGlvbnMgdG8gYW5vdGhlciBwZXJzb24sIHNhbGVzIHJlcXVlc3RzIHRvIHNvbWVvbmUgZWxzZSwgZXRjLiBUaGUgcHVsbGRvd24gaXMgcG9wdWxhdGVkIHdpdGggdGhlIHN1YmplY3RzLCBhbmQgZWFjaCBnZXRzIGRpcmVjdGVkIHRvIGEgc3BlY2lmaWMgZW1haWwgYWRkcmVzcy4gWW91IHNldCB1cCB0aGVzZSBtYXBwaW5ncyBpbiB0aGUgd2hlbiB5b3UgY3JlYXRlIG9yIGVkaXQgYSBmaWVsZCBvZiB0aGlzIHR5cGUuIElmIHlvdSB1c2Ugb25lIG9mIHRoZXNlICJEaXJlY3RvciIgcHVsbGRvd25zLCB0aGUgdXNlciBtdXN0IG1ha2UgYSBzZWxlY3Rpb24gaW4gb3JkZXIgdG8gc3VibWl0IHRoZQpmb3JtLiBUaGlzIGlucHV0IGlzIHBhcnQgb2YgdGhlIGZvcm0gdGhlIHVzZXIgc2VlcywgYWx0aG91Z2ggdGhlIGVtYWlsIGFkZHJlc3NlcyBhcmUgbm90IG1hZGUgdmlzaWJsZSBub3IKYXJlIHRoZXkgZW1iZWRkZWQgaW4gdGhlIEhUTUwuPC9saT4KPGxpPipFbWFpbCBSZXN1bHRzIHRvIHNldCBBZGRyZXNzKGVzKS4gVGhpcyBzaW1wbHkgc2VuZHMgdGhlIGZvcm0gcmVzdWx0cyB0byBvbmUgb3IgbW9yZSBlbWFpbCBhZGRyZXNzZXMgdGhhdCB5b3UgZW50ZXIgd2hlbiB5b3UgY3JlYXRlIG9yIGVkaXQgdGhpcyB0eXBlIG9mIGZpZWxkLiBUaGlzIGZpZWxkIGFuZCBpdHMgbmFtZSBhcmUgbm90IHZpc2libGUgaW4gdGhlCmZvcm0gdGhhdCB0aGUgdXNlciBzZWVzLiBUaGUgZW1haWwgYWRkcmVzc2VzIGFyZSBub3QgbWFkZSB2aXNpYmxlIG5vcgphcmUgdGhleSBlbWJlZGRlZCBpbiB0aGUgSFRNTC48L2xpPgo8bGk+KkVtYWlsIHRvIFVzZXItU3VwcGxpZWQgQWRkcmVzcy4gVGhpcyBwdXRzIGFuIGlucHV0IGZpZWxkIGluIHRoZSBmb3JtIGZvciB0aGUgdXNlciB0byBwb3B1bGF0ZSB3aXRoIGFuIGVtYWlsIGFkZHJlc3MuIFRoZSBmb3JtIHJlc3VsdHMgZ2V0IHNlbnQgdG8gdGhhdCBhZGRyZXNzLiBCZXdhcmUgb2YgU3BhbSBhYnVzZSEgQWN0aXZlIHRoZSBwcmltaXRpdmUgYW50aS1zcGFtIGZlYXR1cmVzIGluIHRoZSBGb3JtQnVpbGRlciBjb25maWd1cmF0aW9uIHNjcmVlbi48L2xpPgo8bGk+KlN0b3JlIFJlc3VsdHMgaW4gRGF0YWJhc2UuIFRoaXMgd2lsbCBzdG9yZSB0aGUgZm9ybSBjb250ZW50cyBpbiBhbiBpbnRlcm5hbCBkYXRhYmFzZS4gWW91IHdpbGwgYWx3YXlzIHVzZSB0aGlzIGRpc3Bvc2l0aW9uIGlmIHlvdSB1c2UgdGhlIGZvcm0gd2l0aCBGb3JtQnJvd3Nlci48L2xpPgo8bGk+KlJlZGlyZWN0IHRvIFBhZ2UgQmFzZWQgb24gUHVsbGRvd24uIFRoaXMgYWxsb3dzIHlvdSB0byByZWRpcmVjdCB0aGUgZm9ybSB0byBhIGRpZmZlcmVudCBzaXRlIHBhZ2UgZGVwZW5kaW5nIG9uIGl0cyB2YWx1ZS4gSWYgeW91IGhhdmUgbXVsdGlwbGUgZGlzcG9zaXRpb25zLCBtYWtlIHN1cmUgdGhpcyBpcyB1c2VkIGxhc3QuPC9saT4KPGxpPipWYWxpZGF0ZSB2aWEgRW1haWwuIFRoaXMgaXMgYSBzdHJhbmdlIGFuZCBwb3dlcmZ1bCBmaWVsZC4gSXQgcHJvdmlkZXMgdGhlIHVzZXIgYSBtYW5kYXRvcnkgaW5wdXQgZm9yIHRoZWlyIGVtYWlsIGFkZHJlc3MuIE9uY2UgdGhleSBzdWJtaXQgdGhlaXIgZm9ybSwgdGhlIHN0YW5kYXJkIGZvcm0gZGlzcG9zaXRpb25zIGFyZSBub3QgcGVyZm9ybWVkIC0tIHJhdGhlciwgaXQgc2VuZCB0aGUgdXNlciBhbiBlbWFpbCB3aXRoIGEgc3BlY2lhbCBjb2RlZCBsaW5rLiBJZiB0aGV5IGNsaWNrIG9uIHRoZSBsaW5rLCB0aGUgb3RoZXIgZm9ybSBpcyBjb25zaWRlcmVkICJhcHByb3ZlZCwiIGFuZCB0aGUgb3RoZXIgZGlzcG9zaXRpb25zIGFyZSBhbGwgcGVyZm9ybWVkLjwvbGk+CjxsaT4qV3JpdGUgUmVzdWx0cyB0byBGbGF0IEZpbGUuIFRoaXMgdGFrZXMgdGhlIGZvcm0gcmVzdWx0cyBhbmQgd3JpdGVzIHRoZW0gaW50byBhIHRleHQgZmlsZS4gWW91IG1heQpzZWxlY3QgdGhlIG5hbWUgb2YgdGhlIGZpbGUsIGFuZCBzZXQgaXRzIGZvcm1hdC4gVGhlc2UgZmlsZXMgYXJlIHdyaXR0ZW4gdG8gdGhlICJvdXRwdXQiIGRpcmVjdG9yeSB1bmRlciB0aGUKbW9kdWxlJ3MgaW5zdGFsbGF0aW9uIGRpcmVjdG9yeSwgYXNzdW1pbmcgdGhlIHdlYiBzZXJ2ZXIgaGFzIHBlcm1pc3Npb24gdG8gd3JpdGUgdGhlcmUuPC9saT4KPGxpPipTYXZlIFJlc3VsdHMgdG8gRmlsZSBCYXNlZCBvbiBQdWxsZG93bi4gTGlrZSB0aGUgRmxhdCBGaWxlIGRpc3Bvc2l0aW9uLCBleGNlcHQgdGhlIHZhbHVlIG9mIGEgcHVsbC1kb3duIGRldGVybWluZXMgd2hpY2ggZmlsZSByZXN1bHRzIGdldCB3cml0dGVuIHRvLjwvbGk+CjxsaT4qU2F2ZSBSZXN1bHRzIHRvIEZpbGUocykgQmFzZWQgb24gTXVsdGlwbGUgU2VsZWN0aW9ucy4gTGlrZSB0aGUgRmxhdCBGaWxlIGRpc3Bvc2l0aW9uLCBleGNlcHQgdGhlIHZhbHVlKHMpIG9mIGNoZWNrYm94ZXMgIGRldGVybWluZXMgd2hpY2ggZmlsZShzKSByZXN1bHRzIGdldCB3cml0dGVuIHRvLjwvbGk+CjwvdWw+PC9saT48L2xpPjwvdWw+CgoKPGgzPlBhc3NpbmcgRGVmYXVsdCBWYWx1ZXMgdG8gRm9ybXM8L2gzPgo8cD5DYWxndXkgYWRkZWQgYSBuaWNlIGZlYXR1cmUsIHdoaWNoIGlzIHRoYXQgeW91IGNhbiBwYXNzIGRlZmF1bHQgZmllbGQgdmFsdWVzIHRvIHlvdXIgZm9ybSB2aWEgdGhlIG1vZHVsZSB0YWcuIFRoaXMgYWxsb3dzIHlvdSB0byBoYXZlCnRoZSBzYW1lIGZvcm0gaW4gbXVsdGlwbGUgcGxhY2VzLCBidXQgd2l0aCBkaWZmZXJlbnQgZGVmYXVsdCB2YWx1ZXMuIEl0IG1heSBub3Qgd29yayBmb3IgbW9yZSBleG90aWMgZmllbGQgdHlwZXMsIGJ1dCBmb3IgZmllbGRzIHRoYXQgaGF2ZQphIHNpbmdsZSB2YWx1ZSwgeW91IGNhbiBzcGVjaWZ5IGxpa2U6PC9wPgo8cD57Y21zX21vZHVsZSBtb2R1bGU9J0Zvcm1CdWlsZGVyJyBmb3JtPSdteV9mb3JtJyB2YWx1ZV88aT5GSUVMRE5BTUU8L2k+PSdkZWZhdWx0X3ZhbHVlJ308L3A+CjxwPlRoaXMgd2lsbCBzZXQgdGhlIGZpZWxkIHdpdGggPGk+RklFTEROQU1FPC9pPiB0byAnZGVmYXVsdF92YWx1ZScuPC9wPgo8cD5UaGlzIGNhbiBiZSBwcm9ibGVtYXRpYywgYXMgc29tZXRpbWVzIGZpZWxkIG5hbWVzIGFyZSB1bndlaWxkeSBvciBjb250YWluIGNoYXJhY3RlcnMgdGhhdCBkb24ndCB3b3JrIHdlbGwgd2l0aCBTbWFydHkuIFNvIHRoZXJlIGlzIGFuCmFsdGVybmF0aXZlIGxpa2UgdGhpczo8L3A+CjxwPntjbXNfbW9kdWxlIG1vZHVsZT0nRm9ybUJ1aWxkZXInIGZvcm09J215X2Zvcm0nIHZhbHVlX2ZsZDxpPk5VTUJFUjwvaT49J2RlZmF1bHRfdmFsdWUnfTwvcD4KPHA+VGhhdCB1c2VzIGZpZWxkIDxpPk5VTUJFUjwvaT4sIHdoZXJlIDxpPk5VTUJFUjwvaT4gaXMgdGhlIGludGVybmFsIEZvcm1CdWlsZGVyIGZpZWxkIGlkLiBZb3UgbWlnaHQgd29uZGVyIGhvdyB5b3Uga25vdyB3aGF0IHRoYXQgaWQgaXMuIFNpbXBseSBnbyBpbnRvIHRoZSBGb3JtQnVpbGRlciBjb25maWd1cmF0aW9uIHRhYiwKYW5kIGNoZWNrICJTaG93IEZpZWxkIElEcyI8L3A+Cgo8aDM+RW1haWwgYW5kIEZsYXQgRmlsZSBUZW1wbGF0ZXM8L2gzPgo8cD5NYW55IGRpc3Bvc2l0aW9uIHR5cGVzIGFsbG93IHlvdSB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmb3IgdGhlIGVtYWlsIHRoYXQgaXMgZ2VuZXJhdGVkLCBvciBmb3IgdGhlIHdheSB0aGUgcmVzdWx0cyBhcmUgd3JpdHRlbiB0byBhIGZpbGUuIElmIHlvdSBvcHQgbm90IHRvIGNyZWF0ZSBhIHRlbXBsYXRlLCB0aGUgRm9ybUJ1aWxkZXIgd2lsbCB1c2UgaXQncyBvd24gYmVzdCBndWVzcywgd2hpY2ggbWF5IG9yIG1heSBub3Qgd29yayBvdXQgdG8geW91ciBsaWtpbmcuIFlvdSBjYW4gYWx3YXlzIGNsaWNrIG9uIHRoZSAiQ3JlYXRlIFNhbXBsZSBUZW1wbGF0ZSIgYW5kIHRoZW4gY3VzdG9taXplIHRoZSByZXN1bHRzLjwvcD4KPHA+VG8gdGhlIHJpZ2h0LCB5b3UnbGwgZmluZCBhIGxlZ2VuZCB3aGljaCBsaXN0cyBhbGwgb2YgdGhlIHZhcmlhYmxlcyB0aGF0IGFyZSBhdmFpbGFibGUgdG8geW91IHRvIHVzZSBpbiB5b3VyIHRlbXBsYXRlLiBBcyBvZiB2ZXJzaW9uIDAuMywgdmFyaWFibGVzIGhhdmUgdHdvIG5hbWVzLCBvbmUgYmFzZWQgb24gdGhlIGZpZWxkIG5hbWUsIHRoZSBvdGhlciBiYXNlZCBvbiB0aGUgZmllbGQgSUQuIElmIHlvdSB1c2UgZmllbGQgbmFtZXMgdGhhdCBoYXZlIGNoYXJhY3RlcnMgb3V0c2lkZSBvZiB0aGUgQVNDSUkgMzItMTI2IHJhbmdlLCBpdCB3aWxsIGJlIHNhZmVyIHRvIHVzZSB0aGUgSUQtYmFzZWQgdmFyaWFibGVzLjwvcD4KPHA+PHN0cm9uZz5Ob3RlIHRoYXQgb25jZSB5b3UndmUgY2hhbmdlZCBhIHRlbXBsYXRlLCBpdCB3aWxsIG5vIGxvbmdlciBhdXRvbWF0aWNhbGx5IGFkZCBuZXcgZmllbGRzLjwvc3Ryb25nPiBGb3IgdGhpcyByZWFzb24sIGl0J3MgdXN1YWxseSBiZXN0IHRvIGNyZWF0ZSB5b3VyIHRlbXBsYXRlcyBhcyB0aGUgbGFzdCBzdGVwIG9mIGNyZWF0aW5nIHlvdXIgZm9ybS48L3A+CjxwPkFzIG9mIHZlcnNpb24gMC4yLjQsIHlvdSBjYW4gb3B0IHRvIHNlbmQgYW55IG9mIHRoZXNlIGVtYWlscyBhcyBIVE1MIGVtYWlsLiBUaGVyZSBzaG91bGQgYmUgYSBjaGVja2JveCBhdCB0aGUgdG9wIG9mIHRoZSB0ZW1wbGF0ZSBwYWdlIGZvciB0aGlzLiBUaGVyZSBpcyBhbHNvIGEgIkNyZWF0ZSBTYW1wbGUgSFRNTCBUZW1wbGF0ZSIgYnV0dG9uIG92ZXIgaW4gdGhlIGxlZ2VuZCBhcmVhLiBGb3IgSFRNTCBlbWFpbCwgdGhlIGVtYWlsIGJvZHkgd2lsbCBhbHNvIHByb3ZpZGUgdGhlIGRlZmF1bHQgdGV4dC1vbmx5IHZhbHVlcy48L3A+Cgo8aDM+Q29uZmlndXJhdGlvbjwvaDM+CjxwPlRoZXJlIGFyZSBzb21lIGdsb2JhbCBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIEZvcm1CdWlsZGVyOjwvcD4KPHVsPgo8bGk+RW5hYmxlIGZhc3QgZmllbGQgYWRkIHB1bGxkb3duLiBUaGlzIGVuYWJsZXMgdGhlIHB1bGxkb3duIG9uIHRoZSBGb3JtIEVkaXQgcGFnZSB3aGljaCBzYXZlcyBhIHN0ZXAgaW4gdGhlIGNyZWF0aW9uIG9mIG5ldyBmaWVsZHMuPC9saT4KPGxpPkhpZGUgRXJyb3JzLiBUaGlzIGlzIHNldCBieSBkZWZhdWx0LiBVbmNoZWNraW5nIGl0IHdpbGwgY2F1c2UgbW9yZSBkZXRhaWxlZCBlcnJvcnMgdG8gYmUgZGlzcGxheWVkIGlmIHRoZXJlIGFyZSBwcm9ibGVtcyB3aGVuIHlvdSBzdWJtaXQgeW91ciBmb3JtLjwvbGk+CjxsaT5SZXF1aXJlIEZpZWxkIE5hbWVzLiBUeXBpY2FsbHksIHlvdSB3aWxsIHdhbnQgZm9ybSBmaWVsZHMgdG8gYmUgbmFtZWQgc28geW91IGNhbiB0ZWxsIHdoaWNoIGlzIHdoaWNoLiBIb3dldmVyLCBpbiBzb21lIGNhc2VzLCB5b3UgbWlnaHQgd2FudCB0byBoYXZlIG5hbWVsZXNzIGZpZWxkcy4gVW5jaGVjayB0aGlzIGlmIHlvdSB3YW50IHRvIGFsbG93IG5hbWVsZXNzIGZpZWxkcy48L2xpPgo8bGk+VW5pcXVlIEZpZWxkIE5hbWVzLiBUeXBpY2FsbHksIHlvdSB3aWxsIHdhbnQgZm9ybSBmaWVsZHMgdG8gaGF2ZSB1bmlxdWUgbmFtZXMgc28geW91IGNhbiB0ZWxsIHdoaWNoIGlzIHdoaWNoLiBVbmNoZWNrIHRoaXMgaWYgeW91IHdhbnQgdG8gYWxsb3cgZmllbGRzIHRvIHNoYXJlIG5hbWVzLjwvbGk+CjxsaT5Vc2UgcmVsYXhlZCBlbWFpbCB2YWxpZGF0aW9uLiBUaGlzIHVzZXMgYSBsZXNzIHJlc3RyaWN0aXZlIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgdmFsaWRhdGluZyBlbWFpbDsgZS5nLiwgeEB5IHdpbGwgYmUgYWxsb3dlZCwgd2hlcmUgdHlwaWNhbGx5IHhAeS50bGQgaXMgcmVxdWlyZWQuPC9saT4KPGxpPlNob3cgRm9ybSBCdWlsZGVyIFZlcnNpb24uIERpc3BsYXlzIHRoZSB2ZXJzaW9uIG9mIEZvcm1CdWlsZGVyIHlvdSdyZSB1c2luZyBpbiBhIGNvbW1lbnQgd2hlbiB0aGUgZm9ybSBpcyBnZW5lcmF0ZWQuIFR5cGljYWxseSBvbmx5IHVzZWZ1bCB3aGVuIGRlYnVnZ2luZy48L2xpPgo8bGk+RW5hYmxlIHByaW1pdGl2ZSBhbnRpLXNwYW0gZmVhdHVyZXMuIFdoZW4gdHVybmVkIG9uLCB0aGlzIGFsbG93cyBhbnkgZ2l2ZW4gSVAgYWRkcmVzcyB0byBvbmx5IGdlbmVyYXRlIDEwIGVtYWlscyBwZXIgaG91ci48L2xpPgo8bGk+U2hvdyBGaWVsZCBJRHMuIFdoZW4gdHVybmVkIG9uLCBGb3JtQnVpbGRlciB3aWxsIGRpc3BsYXkgZmllbGQgaWRzIHdoZW4gYWRkaW5nIG9yIGVkaXRpbmcgYSBmb3JtLjwvbGk+CjwvdWw+CjxoMz5TdHlsaW5nIGFuZCBDU1M8L2gzPgo8cD5QYXVsIE5vb25lIGdyYWNpb3VzbHkgcHJvdmlkZXMgdXMgYWxsIHdpdGggYSBwcmV0dHkgZ29vZCBzdGFuZGFyZCBDU1MgdGhhdCB5b3UgY2FuIHVzZSBmb3IgZm9ybXM6PC9wPgo8cHJlPgoJLyogU2FtcGxlIEZvcm1CdWlsZGVyIENTUyBiYXNlICovCglmb3JtIHttYXJnaW4tdG9wOjB9Cglmb3JtLCB0ZCwgdGgsIGxpIHsgZm9udC1zaXplOiAxMDAlfQoJZm9ybSBkaXYge21hcmdpbi1ib3R0b206MH0KCWZpZWxkc2V0IGRpdiB7CgkJbWFyZ2luLWJvdHRvbTowLjVlbTsKCQltYXJnaW4tbGVmdDoxZW07Cgl9CglmaWVsZHNldCBkaXYgZGl2IHsKCQltYXJnaW4tdG9wOjAuNWVtOwoJCW1hcmdpbi1sZWZ0OjFlbQoJfQoJZmllbGRzZXQgewoJCW1hcmdpbi1ib3R0b206MWVtOwoJCWJvcmRlcjoxcHggc29saWQgI0Y2MDsKCQlwYWRkaW5nOjAuNWVtCgl9CglmaWVsZHNldCBsYWJlbCB7CgkJd2lkdGg6YXV0bzsKCX0KCWxlZ2VuZCB7CgkJY29sb3I6I0ZGRjsKCQliYWNrZ3JvdW5kOiNGNjA7CgkJZm9udC1zdHlsZTppdGFsaWM7CgkJZm9udC1zaXplOjEuMmVtOwoJCW1hcmdpbi1ib3R0b206MC41ZW07CgkJcGFkZGluZzowLjJlbTsKCQl3aWR0aDphdXRvOwoJCWJvcmRlcjoxcHggc29saWQgI0NDQwoJfQoJdGV4dGFyZWEgewoJCW1hcmdpbjogMC41ZW0gMDsKCQl3aWR0aDo5OCU7CgkJaGVpZ2h0OiA2ZW0KCX0KCgkvKiBBcHBseSB0aGlzIGNsYXNzIHRvIHRleHQvc2VsZWN0IGlucHV0IGZpZWxkcyB3aXRoIHNob3J0ZXIgbGFiZWxzCgkJdG8gaGVscCBhbGlnbm1lbnQgKi8KCS5zaG9ydC1sYWJlbCBsYWJlbCB7ZmxvYXQ6bGVmdDsgd2lkdGg6MTBlbX0KCS5zaG9ydC1sYWJlbCBmaWVsZHNldCBkaXYgaW5wdXQsCgkuc2hvcnQtbGFiZWwgZmllbGRzZXQgZGl2IHNlbGVjdCB7d2lkdGg6MTZlbX0KCgkvKiBQcmV0dHkgdXAgeW91ciBDYXB0Y2hhIGltYWdlIG91dHB1dCAqLwoJLmNhcHRjaGEgewoJCW1hcmdpbjowLjVlbSAwOwoJCXdpZHRoOjIwMHB4OwoJCXRleHQtYWxpZ246Y2VudGVyCgl9CgkuY2FwdGNoYSBpbWcge2JvcmRlcjoxcHggc29saWQgI0Y2MDsgbWFyZ2luLWJvdHRvbTowLjVlbX0KCS5jYXB0Y2hhIGlucHV0IHt3aWR0aDoxOTZweDsgbWFyZ2luLXRvcDowLjVlbX0KCgkvKiBKdXN0IGEgYml0IG1vcmUgcm9vbSBmb3IgdGhlIFN1Ym1pdCBidXR0b24gKi8KCS5zdWJtaXQge21hcmdpbi10b3A6MC41ZW19CjwvcHJlPgoKPGgzPkZvcm0gVGVtcGxhdGUgVmFyaWFibGVzPC9oMz4KCjxoMz5Gb3JtIFRlbXBsYXRlIFZhcmlhYmxlczwvaDM+CjxwPllvdSBjYW4gZWRpdCBpdCB0byBtYWtlIHlvdXIgZm9ybSBsYXlvdXQgbG9vayBhbnkgd2F5IHlvdSdkIGxpa2UuCiAgIFRvIG1ha2UgdGhlIGZvcm0gd29yaywgeW91J2xsIG5lZWQgdG8gYWx3YXlzIGluY2x1ZGUgdGhlICYjMTIzOyRmYl9oaWRkZW59IGFuZCAmIzEyMzskc3VibWl0fQogICB0YWdzLjwvcD4KCjxwPllvdSBjYW4gYWNjZXNzIHlvdXIgZm9ybSBmaWVsZHMgZWl0aGVyIHVzaW5nIHRoZSAkZmllbGRzIGFycmF5IG9yIGJ5IGRpcmVjdGx5IGFjY2Vzc2luZyBmaWVsZHMgYnkgdGhlaXIgbmFtZXMgKGUuZy4sICYjMTIzOyRteWZpZWxkLT5pbnB1dH0gKTwvcD4KCgo8cD5FYWNoIGZpZWxkIGhhcyB0aGUgZm9sbG93aW5nIGF0dHJpYnV0ZXM6PC9wPgo8dGFibGU+Cjx0cj48dGg+RmllbGQ8L3RoPjx0aD5WYWx1ZTwvdGg+PC90cj4KPHRyPjx0ZD5maWVsZC0+ZGlzcGxheTwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIHNob3VsZCBiZSBkaXNwbGF5ZWQsIDAgb3RoZXJ3aXNlPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5yZXF1aXJlZDwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIGlzIHJlcXVpcmVkLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+cmVxdWlyZWRfc3ltYm9sPC90ZD48dGQ+dGhlIHN5bWJvbCBmb3IgcmVxdWlyZWQgZmllbGRzPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5jc3NfY2xhc3M8L3RkPjx0ZD50aGUgQ1NTIGNsYXNzIHNwZWNpZmllZCBmb3IgdGhpcyBmaWVsZDwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+dmFsaWQ8L3RkPjx0ZD4xIGlmIHRoaXMgZmllbGQgaGFzIHBhc3NlZCB2YWxpZGF0aW9uLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+ZXJyb3I8L3RkPjx0ZD5UZXh0IG9mIHRoZSB2YWxpZGF0aW9uIHByb2JsZW0sIGluIHRoZSBldmVudCB0aGF0IHRoaXMgZmllbGQgZGlkIG5vdCB2YWxpZGF0ZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+aGlkZV9uYW1lPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgbmFtZSBzaG91bGQgYmUgaGlkZGVuLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+aGFzX2xhYmVsPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgdHlwZSBoYXMgYSBsYWJlbDwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+bmVlZHNfZGl2PC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgbmVlZHMgdG8gYmUgd3JhcHBlZCBpbiBhIERJViAob3IgdGFibGUgcm93LCBpZiB0aGF0J3MgdGhlIHdheSB5b3Ugc3dpbmcpPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5uYW1lPC90ZD48dGQ+dGhlIGZpZWxkJ3MgbmFtZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+aW5wdXQ8L3RkPjx0ZD50aGUgZmllbGQncyBpbnB1dCBjb250cm9sIChlLmcuLCB0aGUgaW5wdXQgZmllbGQgaXRzZWxmKTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+b3A8L3RkPjx0ZD5hIGNvbnRyb2wgYnV0dG9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgZmllbGQgaWYgYXBwbGljYWJsZSAoZS5nLiwgdGhlIGRlbGV0ZSBidXR0b24gZm9yIGV4cGFuZGFibGUgdGV4dCBpbnB1dCk8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmlucHV0X2lkPC90ZD48dGQ+dGhlIElEIG9mIHRoZSBmaWVsZCdzIGlucHV0ICh1c2VmdWwgZm9yIDxsYWJlbCBmb3I9IiI+KTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+dHlwZTwvdGQ+PHRkPnRoZSBmaWVsZCdzIGRhdGEgdHlwZTwvdGQ+PC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPHRyPjx0ZD5maWVsZC0+bXVsdGlwbGVfcGFydHM8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYSBjb2xsZWN0aW9uIG9mIGNvbnRyb2xzPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5sYWJlbF9wYXJ0czwvdGQ+PHRkPjEgaWYgdGhlIGNvbGxlY3Rpb24gb2YgY29udHJvbHMgaGFzIHNlcGFyYXRlIGxhYmVscyBmb3IgZWFjaCBjb250cm9sPC90ZD48L3RyPgo8L3RhYmxlPgoKPHA+SW4gY2VydGFpbiBjYXNlcywgZmllbGQtPmlucHV0IGlzIGFjdHVhbGx5IGFuIGFycmF5IG9mIG9iamVjdHMgcmF0aGVyIHRoYW4gYW4gaW5wdXQuIFRoaXMgaGFwcGVucywgZm9yIGV4YW1wbGUsIGluIENoZWNrQm94R3JvdXBzIG9yIFJhZGlvQnV0dG9uR3JvdXBzLiBGb3IgdGhlbSwgeW91IGNhbiBpdGVyYXRlIHRocm91Z2ggZmllbGQtPmlucHV0LT5uYW1lIGFuZCBmaWVsZC0+aW5wdXQtPmlucHV0cy48L3A+CiAgICAKPHA+QWRkaXRpb25hbCBzbWFydHkgdmFyaWFibGVzIHRoYXQgeW91IGNhbiB1c2UgaW5jbHVkZTo8L3A+Cjx0YWJsZT4KPHRyPjx0aD5WYXJpYWJsZTwvdGg+PHRoPlZhbHVlPC90aD48L3RyPgo8dHI+PHRkPnRvdGFsX3BhZ2VzPC90ZD48dGQ+bnVtYmVyIG9mIHBhZ2VzIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPgo8dHI+PHRkPnRoaXNfcGFnZTwvdGQ+PHRkPm51bWJlciBmbyB0aGUgY3VycmVudCBwYWdlIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPgo8dHI+PHRkPnRpdGxlX3BhZ2VfeF9vZl95PC90ZD48dGQ+ZGlzcGxheXMgInBhZ2UgeCBvZiB5IiBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4KPHRyPjx0ZD5jc3NfY2xhc3M8L3RkPjx0ZD5DU1MgQ2xhc3MgZm9yIHRoZSBmb3JtPC90ZD48L3RyPgo8dHI+PHRkPmZvcm1fbmFtZTwvdGQ+PHRkPkZvcm0gbmFtZTwvdGQ+PC90cj4KPHRyPjx0ZD5mb3JtX2lkPC90ZD48dGQ+Rm9ybSBkYXRhYmFzZSBJRDwvdGQ+PC90cj4KPHRyPjx0ZD5wcmV2PC90ZD48dGQ+IkJhY2siIGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zPC90ZD48L3RyPgo8dHI+PHRkPnN1Ym1pdDwvdGQ+PHRkPiJDb250aW51ZSIgb3IgIlN1Ym1pdCIgYnV0dG9uIGZvciBtdWx0aXBhcnQgZm9ybXMsIGFkanVzdHMgYXV0b21hdGljYWxseTwvdGQ+PC90cj4KPC90YWJsZT4KPHA+RHVubm8gd2h5IHlvdSdkIHdhbnQgc29tZSBvZiB0aG9zZSwgYnV0IHRoZXJlIHlvdSBnby4uLjwvcD4KCgo8aDM+S25vd24gSXNzdWVzPC9oMz4KPHVsPgo8bGk+Rm9ybUJ1aWxkZXIgaXMgbm90IHlldCBpbnRlZ3JhdGVkIHdpdGggRnJvbnRFbmQgVXNlcnMuIEl0IHdpbGwgYmUuPC9saT4KPGxpPkZvcm1CdWlsZGVyIGNhbm5vdCB5ZXQgYmUgaW5saW5lZC4gVGhhdCBzaG91bGQgYmUgYSBzaW1wbGUgdXBncmFkZSBkb3duIHRoZSBsaW5lLjwvbGk+CjxsaT5Gb3JtQnVpbGRlciBkb2VzIG5vdCB5ZXQgc3VwcG9ydCBwcmV0dHkgdXJscywgYWx0aG91Z2ggdGhhdCBzaG91bGRuJ3QgbWF0dGVyIHNpbmNlIHRoZSB1c2VyIHNpZGUgaXMgcHJldHR5IHNpbXBsZS48L2xpPgo8L3VsPgoKPGgzPlRyb3VibGVzaG9vdGluZzwvaDM+CjxvbD48bGk+IEZpcnN0IHN0ZXAgaXMgdG8gY2hlY2sgeW91J3JlIHJ1bm5pbmcgQ01TIDEuMSBvciBsYXRlci48L2xpPgo8bGk+IFNlY29uZCBzdGVwIGlzIHRvIHJlYWQgYW5kIHVuZGVyc3RhbmQgdGhlIGNhdmVhdCBhYm91dCBXWVNJV1lHIGVkaXRvcnMgdXAgaW4gdGhlCnNlY3Rpb24gPGVtPkFkZGluZyBhIEZvcm0gdG8gYSBQYWdlPC9lbT4uPC9saT4KPGxpPiBJZiB5b3UncmUgbWlzc2luZyBmaWVsZHMgaW4gYW4gZW1haWwgdGhhdCBnZXRzIGdlbmVyYXRlZCwgY2hlY2sgdGhlIGRpc3Bvc2l0aW9uIGZpZWxkJ3MgdGVtcGxhdGUsIGFuZCBtYWtlIHN1cmUgeW91J3JlIHNwZWNpZnlpbmcgdGhlIG1pc3NpbmcgZmllbGRzLiBTZWVtcyBvYnZpb3VzLCBidXQgaXQncyBhbiBlYXN5IG1pc3Rha2UgdG8gbWFrZS48L2xpPgo8bGk+VW5jaGVjayB0aGUgIkhpZGUgRXJyb3JzIiBjaGVja2JveCBpbiB0aGUgZ2xvYmFsIG9wdGlvbnMsIGFuZCBzZWUgd2hhdCBtZXNzYWdlIGdldHMgZGlzcGxheWVkIHdoZW4geW91IHN1Ym1pdCB5b3VyIGZvcm0uPC9saT4KPGxpPiBKdXN0IG1lc3MgYXJvdW5kIGFuZCB0cnkgY2xpY2tpbmcgb24gbGlua3MgYW5kIGljb25zIGFuZCBzdHVmZi4gU2VlIHdoYXQgaGFwcGVucy48L2xpPgo8bGk+IExhc3QgcmVzcG9ydCBpcyB0byBlbWFpbCBtZSBvciBjYXRjaCBtZSBvbiBJUkMgYW5kIHdlIGNhbiBnbyBmcm9tIHRoZXJlLjwvbGk+Cjwvb2w+IAo8cD5UaGlzIGlzIG5vIGxvbmdlciBhIHBhcnRpY3VsYXJseSBlYXJseSB2ZXJzaW9uLCBidXQgaXQgaXMgcHJvYmFibHkgc3RpbGwgYnVnZ3kuIFdoaWxlIEkndmUgZG9uZSBhbGwgSSBjYW4KdG8gbWFrZSBzdXJlIG5vIGVncmVnaW91cyBidWdzIGhhdmUgY3JlcHQgaW4sIEkgaGF2ZSB0byBhZG1pdCB0aGF0IGR1cmluZyBlYXJseSB0ZXN0aW5nLCB0aGlzIHByb2dyYW0KcmV2ZWFsZWQgc2V2ZW4gY29ja3JvYWNoZXMsIHR3byBlYXJ3aWdzLCBhIHNtYWxsIGZhbWlseSBvZiBhcGhpZHMsIGFuZCBhIHdhbGtpbmctc3RpY2sgaW5zZWN0LiBJdCBhbHNvCmF0ZSB0aGUgbmVpZ2hib3IncyBuYXN0eSBsaXR0bGUgeWFwIGRvZywgZm9yIHdoaWNoIEkgd2FzIGluYXBwcm9wcmlhdGVseSBncmF0ZWZ1bC48L3A+CjxwPlRoZSBmaW5hbCByZWxlYXNlIHdpbGwgaW5jbHVkZSBidWcgZml4ZXMsIGRvY3VtZW50YXRpb24sIGFuZCB1bmNvbmRpdGlvbmFsIGxvdmUuPC9wPgo8aDM+U3VwcG9ydDwvaDM+CjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4KPHVsPgo8bGk+Rm9yIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIG1vZHVsZSwgRkFRcywgb3IgdG8gZmlsZSBhIEJ1ZyBSZXBvcnQsIHBsZWFzZSB2aXNpdCB0aGUgQ01TIE1hZGUgU2ltcGxlICA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnIj5EZXZlbG9wZXIgRm9yZ2U8L2E+LjwvbGk+CjxsaT5UbyBvYnRhaW4gY29tbWVyY2lhbCBzdXBwb3J0LCBwbGVhc2Ugc2VuZCBhbiBlbWFpbCB0byB0aGUgYXV0aG9yIGF0IDxhIGhyZWY9Im1haWx0bzpzamdAY21zbW9kdWxlcy5jb20iPiZsdDtzamdAY21zbW9kdWxlcy5jb20mZ3Q7PC9hPi48L2xpPgo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LjwvbGk+CjxsaT5UaGUgYXV0aG9yIGNhbiBvZnRlbiBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaXJjOi8vaXJjLmZyZWVub2RlLm5ldC8jY21zIj5DTVMgSVJDIENoYW5uZWw8L2E+LjwvbGk+CjxsaT5MYXN0bHksIHlvdSBtYXkgaGF2ZSBzb21lIHN1Y2Nlc3MgZW1haWxpbmcgdGhlIGF1dGhvciBkaXJlY3RseSBhbmQgZ3JvdmVsbGluZyBmb3IgZnJlZSBzdXBwb3J0LjwvbGk+CjwvdWw+CjxwPkFzIHBlciB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkIGFzLWlzLiBQbGVhc2UgcmVhZCB0aGUgdGV4dApvZiB0aGUgbGljZW5zZSBmb3IgdGhlIGZ1bGwgZGlzY2xhaW1lci48L3A+CjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPgo8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMDcsIFNhbXVlbCBHb2xkc3RlaW4gPGEgaHJlZj0ibWFpbHRvOnNqZ0BjbXNtb2R1bGVzLmNvbSI+Jmx0O3NqZ0BjbXNtb2R1bGVzLmNvbSZndDs8L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+CjxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+PGgzPkRlcGVuZGVuY2llczwvaDM+PHVsPjxsaT5DTVNNYWlsZXIgPSZndDsgMS43MzwvbGk+PC91bD48aDM+UGFyYW1ldGVyczwvaDM+PHVsPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IHJlc3BvbnNlX2lkPSJudWxsIiAtIFJlc3BvbnNlIElELiBVc2VkIGJ5IEZvcm1Ccm93c2VyPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiB2YWx1ZV8qPSJudWxsIiAtIERlZmF1bHQgZmllbGQgdmFsdWVzOyBzZWUgbW9kdWxlIGhlbHA8L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGZpZWxkX2lkPSJudWxsIiAtIEZpZWxkIElEIGZvciBpbnRlcm5hbCBvcGVyYXRpb25zPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBmb3JtPSJudWxsIiAtIEZvcm0gTmFtZTwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZm9ybV9pZD0ibnVsbCIgLSBGb3JtIElEIGZvciBpbnRlcm5hbCBvcGVyYXRpb25zPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBmYnJwXyo9Im51bGwiIC0gR2VuZXJhbCBwYXJhbWV0ZXJzIGZvciBpbnRlcm5hbCBvcGVyYXRpb25zPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBsYW5nPSJlbl9VUyIgLSBQYXJhbWV0ZXIgaXMgdXNlZCB0byBzcGVjaWZ5IHdoYXQgbGFuZ3VhZ2UgdG8gdXNlIGZvciBkaXNwbGF5IG9uIHRoZSBmcm9udGVuZC4gTm90IGFsbCBtb2R1bGVzIHN1cHBvcnQgb3IgbmVlZCB0aGlzLjwvbGk+PC91bD4=</help>
	<about>PGJyIC8+QXV0aG9yOiBTakcgJmx0O3NqZ0BjbXNtb2R1bGVzLmNvbSZndDs8YnIgLz48YnIgLz5WZXJzaW9uOiAwLjQuNDxiciAvPjxiciAvPkNoYW5nZSBIaXN0b3J5OjxiciAvPgo8dWw+CjxsaT5WZXJzaW9uIDAuNC40LiAyNiBTZXB0IDA3LiBCdWdmaXhlcyBmb3IgcmFkaW8gYnV0dG9uIGdyb3VwcywgZml4IGZvciB2YWxpZGF0aW9uIG9mIERpc3Bvc2l0aW9uRGVsaXZlclRvRW1haWxBZGRyZXNzRmllbGQuPC9saT4KPGxpPlZlcnNpb24gMC40LjMuIDE4IFNlcHQgMDcuIEJ1Z2ZpeGVzIGZvciBwdWxsZG93bnMgdXNpbmcgbnVtYmVycywgb3B0aW9uIHRvIGlubGluZSBmb3JtLCBmaXhlcyBmb3IgdGFibGUtbGF5b3V0cyBwcm92aWRlZCBieSBBcCBNdXRodSwgZml4IGZvciByZXF1aXJhYmlsaXR5IG9mIERpc3Bvc2l0aW9ucy48L2xpPgo8bGk+VmVyc2lvbiAwLjQuMi4gMTQgU2VwdCAwNy4gQnVnZml4ZXMgZm9yIFhNTCBleHBvcnQsIFJhZGlvQnV0dG9uIEdyb3VwIHN1Ym1pc3Npb24sIGFuZCBIVE1MIGxhYmVscy48L2xpPgo8bGk+VmVyc2lvbiAwLjQuMS4gQnVnZml4ZXMgZm9yIEZpbGUgRGlzcG9zaXRpb24gVHlwZXMuPC9saT4KPGxpPlZlcnNpb24gMC40Cgk8dWw+CgkJPGxpPlVwcGVkIG1pbmltdW0gQ01TIHZlcnNpb24gdG8gMS4xPC9saT4KCQk8bGk+TnVtZXJvdXMgQnVnIGZpeGVzOyB0b28gbWFueSB0byBlbnVtZXJhdGUgaGVyZTwvbGk+CgkJPGxpPk1hc3NpdmUgcmVqaWdnZXJpbmcgb2YgY29kZSB0byB3b3JrIHdpdGggQ01TIE1TIDEuMSBwYXJhbWV0ZXIgc2FuaXRpemluZyByZWdpbWU8L2xpPgoJCTxsaT5BZGRlZCBmaWVsZCB0eXBlczogIlRleHRGaWVsZCAoTXVsdGlwbGUpIiBhbmQgIkNvbXB1dGVkIEZpZWxkIjwvbGk+CgkJPGxpPkFkZGVkIGRpc3Bvc2l0aW9uczogIlNhdmUgUmVzdWx0cyB0byBGaWxlIEJhc2VkIG9uIFB1bGxkb3duIiBhbmQgIlNhdmUgUmVzdWx0cyB0byBGaWxlKHMpIEJhc2VkIG9uIE11bHRpcGxlIFNlbGVjdGlvbnMiKENhbGd1eSk8L2xpPgoJCTxsaT5BZGRlZCBuZWF0LW8gQUpBWC15IHRlbXBsYXRlLWNvcHlpbmcgZm9yIEZvcm0gVGVtcGxhdGVzLCBnYXZlIHZlcnNpb25zIG9mIG9sZCB0YWJsZS1iYXNlZCB0ZW1wbGF0ZXMgdG8gc29vdGhlIHRoZSByYWdpbmcgbWFzc2VzLjwvbGk+CgkJPGxpPkFkZGVkIGFiaWxpdHkgdG8gcGFzcyBkZWZhdWx0IHZhbHVlcyB0byBmb3JtIGVsZW1lbnRzIGZyb20gbW9kdWxlIHRhZyB1c2luZyB2YWx1ZV9GSUVMRE5BTUU9InZhbHVlIiBzeW50YXggKENhbGd1eSk8L2xpPgoJCTxsaT5BZGRlZCBvcHRpb24gdG8gZGlzcGxheSBmaWVsZCBpZHMgaW4gYWRtaW4gKENhbGd1eSk8L2xpPgoJPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMC4zCiAgIDx1bD4KICAgICAgPGxpPkFkZGVkIENhcHRjaGEgbW9kdWxlIHN1cHBvcnQuPC9saT4KICAgICAgPGxpPlJld29ya2VkIGxhYmVsaW5nIG9mIGZvcm0gZWxlbWVudHMgdG8gYmUgWEhUTUwgY29tcGxpYW50PC9saT4KICAgICAgPGxpPkFkZGVkIFBhdWwgTm9vbmUncyBuZXcsIGltcHJvdmVkIGNvbnRhY3QgZm9ybSB0ZW1wbGF0ZXM8L2xpPgogICAgICA8bGk+SW1wbGVtZW50YXRpb24gb2YgRW1haWwgU3ViamVjdCBGaWVsZDwvbGk+CiAgICAgIDxsaT5BZGRlZCBhZG1pbi1zcGVjaWZpYWJsZSB2YWx1ZXMgdG8gaGlkZGVuIGZpZWxkIHR5cGUsIHdoaWNoIG1heSBjb250YWluIHBhcnNhYmxlIHNtYXJ0eSB0YWdzPC9saT4KICAgICAgPGxpPlRleHQgQXJlYSBGaWVsZCBub3cgYWxsb3dzIHNwZWNpZmljYXRpb24gb2Ygcm93cyBhbmQgY29scyBpbiB0aGUgYWRtaW4sIGluc3RlYWQgb2YgQ1NTPC9saT4KICAgICAgPGxpPkFkZGVkIERyYWcnbidEcm9wIHJlb3JkZXJpbmcgb2YgZm9ybSBmaWVsZHMuPC9saT4KICAgICAgPGxpPkFkZGVkIG5vbi1ibGFuayBmaWVsZCBuYW1lIGFuZCB1bmlxdWUgZmllbGQgbmFtZSBnbG9iYWwgY29uZmlndXJhdGlvbiBvcHRpb25zIGFuZCB2YWxpZGF0aW9uPC9saT4KICAgICAgPGxpPkltcGxlbWVudGVkIHRlbXBsYXRlZCBkaXNwbGF5IG9mIGZvcm0gcmVzdWx0cyB1cG9uIHN1Ym1pc3Npb24gaW4gYWRkaXRpb24gdG8gcGFnZSByZWRpcmVjdGluZzwvbGk+CiAgICAgIDxsaT48L2xpPgogICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAwLjIuNCAtIDA5IE1heSAyMDA3CiAgIDxwPkJpZyByZWxlYXNlOjx1bD4KICAgPGxpPkFkZGVkICJFbWFpbCBGb3JtIHRvIFVzZXItU3VwcGxpZWQgQWRkcmVzcyIgZGlzcG9zaXRpb24uPC9saT4KICAgPGxpPkFkZGVkICJUaW1lUGlja2VyIiBmaWVsZCB0eXBlLiBTcGxpdCAiTGluayIgZmllbGQgaW50byBhICJVc2VyLXN1cHBsaWVkIExpbmsiIGZpZWxkIGFuZCBhICJTdGF0aWMgTGluayIgZmllbGQuPC9saT4KICAgPGxpPkFkZGVkIEhUTUwgZW1haWwgb3B0aW9uIGFuZCBhdXRvLXRlbXBsYXRlcyBmb3IgYWxsIGVtYWlsIGRpc3Bvc2l0aW9ucy48L2xpPgogICA8bGk+QWRkZWQgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcy48L2xpPgogICA8bGk+QWRkZWQgWE1MLWJhc2VkIGltcG9ydCBhbmQgZXhwb3J0IG9mIGZvcm1zLjwvbGk+CiAgIDwvdWw+CiAgIDwvcD4KPC9saT4KPGxpPlZlcnNpb24gMC4yLjMKICAgPHA+QWRkIHRoZSBhYmlsaXR5IHRvIGNhbGwgYSBzZWxlY3RhYmxlIHVzZXIgZGVmaW5lZCB0YWcgdXBvbiBkaXNwb3NpdGlvbiBvZiB0aGUgZm9ybS48L3A+CjwvbGk+CjxsaT5WZXJzaW9uIDAuMi4yCiAgIDxwPk1hbnkgdGhhbmtzIHRvIFV0dGVyIERlc2lnbiBmb3Igc3BvbnNvcmluZyBzb21lIGNoYW5nZXMgYW5kIGJ1Z2ZpeGVzLCB3aGljaCBpbmNsdWRlOgogICA8dWw+CiAgICAgIDxsaT5BZGRlZCBmaWxlIHVwbG9hZCBjYXBhYmlsaXRpZXMgdG8gdGhlIGVtYWlsIGRpc3Bvc2l0aW9uPC9saT4KICAgICAgPGxpPkFkZCBQYWdlU2V0U3RhcnQgYW5kIFBhZ2VTZXRFbmQgZmllbGQgdHlwZXMKICAgICAgPHA+VGhlc2UgZmllbGQgdHlwZXMgYWxsb3cgeW91IHRvIGNyZWF0ZSBmaWVsZHNldHMgaW4geW91ciBmb3JtLCBhbmQgb3JnYW5pc2UKICAgICAgeW91ciBmaWVsZHMgbG9naWNhbGx5IGZvciB0aGUgdXNlci4gIFlvdSBjYW4gZXZlbiBuZXN0IGZpZWxkc2V0cywgYW5kCiAgICAgIGFzc29jaWF0ZSBhIHN0eWxlIHdpdGggdGhlbSBhcHByb3ByaWF0ZWx5LiAgVGhlIGRlZmF1bHQgdGVtcGxhdGUgd2FzIGNoYW5nZWQKICAgICAgdG8gcHJldmVudCBpdCBmcm9tIHdyYXBwaW5nIGEgZGl2IGFyb3VuZCB0aGVzZSB0eXBlcyBvZiBmaWVsZHMuCiAgICAgIDwvcD4KICAgICAgPC9saT4KICAgICAgPGxpPkZpeGVkIGEgcHJvYmxlbSB3aXRoIERBVEVUSU1FIGZpZWxkcyBvbiBpbnN0YWxsCiAgICAgIDxwPlRoaXMgc29sdmVzIGEgcHJvYmxlbSB3aGVuIG9uIGluc3RhbGwgdGhlIHJlc3BvbnNlIHRhYmxlIHdvdWxkIHNvbWV0aW1lcyBub3QgZ2V0IGNyZWF0ZWQgd2hlbiB1c2luZyBhZG9kYiBsaXRlPC9saT4KICAgICAgPC9saT4KICAgPC91bD4KICAgPC9wPgo8L2xpPgo8bGk+VmVyc2lvbiAwLjIgLSAxNCBOb3ZlbWJlciAyMDA2LiBDYWxndXkgJmFtcDsgdHN3J3MgYnVnIGZpeGVzIGZvciBmaWVsZCByZS1vcmRlcmluZyBhbmQgY3VzdG9tIHRlbXBsYXRlcy4gQWRkaXRpb25hbCBidWcgZml4ZXMgZm9yIGZpZWxkIGxhYmVscy48L2xpPgo8bGk+VmVyc2lvbiAwLjEgLSA4IEp1bHkgMjAwNi4gSW5pdGlhbCBSZWxlYXNlPC9saT4KPC91bD4KPGJyIC8+</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+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCgkJJHRoaXMtPmluaXRpYWxpemUoKTsKCQkKCQkkYWVmb3JtID0gbmV3IGZiRm9ybSgkdGhpcywgJHBhcmFtcyx0cnVlKTsKCQkkYWVmaWVsZCA9ICRhZWZvcm0tPk5ld0ZpZWxkKCRwYXJhbXMpOwoJCWlmIChpc3NldCgkcGFyYW1zWydmYnJwX2FlZl91cGQnXSkgfHwKCQkJKGlzc2V0KCRwYXJhbXNbJ2ZicnBfYWVmX2FkZCddKSAmJiAkYWVmaWVsZC0+R2V0RmllbGRUeXBlKCkgIT0gJycpKQoJCQl7CgkJCS8vIHNhdmUgdGhlIGZpZWxkLgoJCQkkdGhpcy0+RG9BY3Rpb24oJ2FkbWluX3N0b3JlX2ZpZWxkJywgJGlkLCAkcGFyYW1zKTsKCQkJcmV0dXJuOwoJCQl9CgkJZWxzZWlmIChpc3NldCgkcGFyYW1zWydmYnJwX2FlZl9hZGQnXSkpCgkJCXsKCQkJLy8gc2hvdWxkIGhhdmUgZ290IGEgZmllbGQgdHlwZSBkZWZpbml0aW9uLCBzbyBnaXZlIHJlc3Qgb2YgdGhlIGZpZWxkIG9wdGlvbnMKCQkJLy8gcmVzZXJ2ZSB0aGlzIHNwYWNlIGZvciBzcGVjaWFsIG9wcyA6KQoJCQl9CgkJZWxzZWlmIChpc3NldCgkcGFyYW1zWydmYnJwX2FlZl9vcHRhZGQnXSkpCgkJCXsKCQkJLy8gY2FsbCB0aGUgZmllbGQncyBvcHRpb24gYWRkIG1ldGhvZCwgd2l0aCBhbGwgYXZhaWxhYmxlIHBhcmFtZXRlcnMKCQkJJGFlZmllbGQtPkRvT3B0aW9uQWRkKCRwYXJhbXMpOwoJCQl9CgkJZWxzZWlmIChpc3NldCgkcGFyYW1zWydmYnJwX2FlZl9vcHRkZWwnXSkpCgkJCXsKCQkJLy8gY2FsbCB0aGUgZmllbGQncyBvcHRpb24gZGVsZXRlIG1ldGhvZCwgd2l0aCBhbGwgYXZhaWxhYmxlIHBhcmFtZXRlcnMKCQkJJGFlZmllbGQtPkRvT3B0aW9uRGVsZXRlKCRwYXJhbXMpOwoJCQl9CgkJZWxzZQoJCQl7CgkJCS8vIG5ldyBmaWVsZCwgb3IgaW1wbGljaXQgYWVmX2FkZC4KCQkJLy8gYWdhaW4sIHJlc2VydmluZyB0aGUgc3BhY2UgZm9yIGZ1dHVyZSBlbmRlYXZvcnMKCQkJfQoJCWVjaG8gJGFlZm9ybS0+QWRkRWRpdEZpZWxkKCRpZCwgJGFlZmllbGQsIChpc3NldCgkcGFyYW1zWydmYnJwX2Rpc3Bvc2Vfb25seSddKT8kcGFyYW1zWydmYnJwX2Rpc3Bvc2Vfb25seSddOjApLCAkcmV0dXJuaWQsIGlzc2V0KCRwYXJhbXNbJ2ZicnBfbWVzc2FnZSddKT8kcGFyYW1zWydmYnJwX21lc3NhZ2UnXTonJyk7CgkJCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_add_edit_form.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCgkJJGFlZm9ybSA9IG5ldyBmYkZvcm0oJHRoaXMsICRwYXJhbXMsIHRydWUpOwoJCWVjaG8gJGFlZm9ybS0+QWRkRWRpdEZvcm0oJGlkLCAkcmV0dXJuaWQsIGlzc2V0KCRwYXJhbXNbJ2ZicnBfbWVzc2FnZSddKT8kdGhpcy0+U2hvd01lc3NhZ2UoJHBhcmFtc1snZmJycF9tZXNzYWdlJ10pOicnKTsKCj8+]]></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+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCiAgICAgICAgJGFlZm9ybSA9IG5ldyBmYkZvcm0oJHRoaXMsICRwYXJhbXMsIHRydWUpOwogICAgICAgICRhZWZvcm0tPkRlbGV0ZSgpOwoKICAgICAgICAkcGFyYW1zWydmYnJwX21lc3NhZ2UnXSA9ICR0aGlzLT5MYW5nKCdmb3JtX2RlbGV0ZWQnKTsKICAgICAgICAkdGhpcy0+RG9BY3Rpb24oJ2RlZmF1bHRhZG1pbicsICRpZCwgJHBhcmFtcyk7Cj8+]]></data>
	</file>
	<file>
	  <filename>/action.admin_get_template.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgppZiAocHJlZ19tYXRjaCgnL1wudHBsJC8nLCRwYXJhbXNbJ2ZicnBfdGlkJ10pKQogICAgewogICAgJHRwbHN0ciA9IGZpbGVfZ2V0X2NvbnRlbnRzKGRpcm5hbWUoX19GSUxFX18pLicvdGVtcGxhdGVzLycuJHBhcmFtc1snZmJycF90aWQnXSk7CiAgICB9CmVsc2UKICAgIHsKICAgICRkYiA9ICYkZ0Ntcy0+R2V0RGIoKTsKICAgICRxdWVyeSA9ICJTRUxFQ1QgdmFsdWUgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4KCQkibW9kdWxlX2ZiX2Zvcm1fYXR0ciBXSEVSRSBmb3JtX2lkPT8gYW5kIG5hbWU9J2Zvcm1fdGVtcGxhdGUnIjsKCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJHBhcmFtc1snZmJycF90aWQnXSkpOwoJaWYgKCRkYnJlc3VsdCAhPT0gZmFsc2UgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSkKCQl7CgkJJHRwbHN0ciA9ICRyb3dbJ3ZhbHVlJ107CgkJfQogICAgfQoKICAgIEBvYl9jbGVhbigpOwogICAgQG9iX2NsZWFuKCk7CiAgICBoZWFkZXIoJ1ByYWdtYTogcHVibGljJyk7CiAgICBoZWFkZXIoJ0V4cGlyZXM6IDAnKTsKICAgIGhlYWRlcignQ2FjaGUtQ29udHJvbDogbXVzdC1yZXZhbGlkYXRlLCBwb3N0LWNoZWNrPTAsIHByZS1jaGVjaz0wJyk7CiAgICBoZWFkZXIoJ0NhY2hlLUNvbnRyb2w6IHByaXZhdGUnLGZhbHNlKTsKICAgIGhlYWRlcignQ29udGVudC1EZXNjcmlwdGlvbjogRmlsZSBUcmFuc2ZlcicpOwogICAgaGVhZGVyKCdDb250ZW50LUxlbmd0aDogJyAuIHN0cmxlbigkdHBsc3RyKSk7CiAgICBlY2hvICR0cGxzdHI7CiAgICBleGl0Owo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_reorder_form.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCgokYWVmb3JtID0gbmV3IGZiRm9ybSgkdGhpcywgJHBhcmFtcywgdHJ1ZSk7CgokZmllbGRzID0gYXJyYXkoKTsKZm9yZWFjaCAoJGFlZm9ybS0+R2V0RmllbGRzKCkgYXMgJHRoaXNGaWVsZCkKICAgewogICAkZmxkID0gbmV3IFN0ZENsYXNzKCk7CiAgICRmbGQtPmlkID0gJHRoaXNGaWVsZC0+R2V0SWQoKTsKICAgJGZsZC0+bmFtZSA9ICR0aGlzRmllbGQtPkdldE5hbWUoKTsKICAgJGZsZC0+dHlwZSA9ICR0aGlzRmllbGQtPkdldEZpZWxkVHlwZSgpOwogICBhcnJheV9wdXNoKCRmaWVsZHMsICRmbGQpOwogICB9CgokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3N0YXJ0X2Zvcm0nLCR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLAoJCQknYWRtaW5fcmVvcmRlcl9zdG9yZScsICRyZXR1cm5pZCwgJ3Bvc3QnKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignc3VibWl0JywgJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ2ZicnBfc3VibWl0JywgJHRoaXMtPkxhbmcoJ3Jlb3JkZXInKSwnb25jbGljaz0icmV0dXJuIHNlbmRfb3JkZXJfdmFyKCkiJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2VuZF9mb3JtJywkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdpZCcsJGlkKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmYl9oaWRkZW4nLCR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsJ2Zvcm1faWQnLCRwYXJhbXNbJ2Zvcm1faWQnXSkpOwokdGhpcy0+c21hcnR5LT5hc3NpZ25fYnlfcmVmKCdmaWVsZHMnLCRmaWVsZHMpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3NjcmlwdGFjdWxvdXMnLAogICAnPHNjcmlwdCBzcmM9IicuZGlybmFtZShkaXJuYW1lKGRpcm5hbWUoX19GSUxFX18pKSkuCiAgICcvbGliL3NjcmlwdGFjdWxvdXMvc2NyaXB0YWN1bG91cy5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4nKTsKCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnUmVvcmRlckZvcm0udHBsJyk7Cj8+]]></data>
	</file>
	<file>
	  <filename>/action.admin_reorder_store.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCiRvcmRlcl9saXN0ID0gZXhwbG9kZSgnLCcsJHBhcmFtc1snZmJycF9vcmRlciddKTsKJGNvdW50ID0gMTsKCmlmICghIGlzX2FycmF5KCRvcmRlcl9saXN0KSkKCXsKCSRvcmRlcl9saXN0ID0gYXJyYXkoJG9yZGVyX2xpc3QpOwoJfQoKJGRiID0mICRnQ21zLT5HZXREYigpOwokc3FsID0gJ3VwZGF0ZSAnLmNtc19kYl9wcmVmaXgoKS4KCSdtb2R1bGVfZmJfZmllbGQgc2V0IG9yZGVyX2J5PT8gd2hlcmUgZmllbGRfaWQ9Pyc7CgkKZm9yZWFjaCAoJG9yZGVyX2xpc3QgYXMgJHRoaXNGaWVsZCkKCXsKCSRycyA9ICRkYi0+RXhlY3V0ZSgkc3FsLCBhcnJheSgkY291bnQsICR0aGlzRmllbGQpKTsKCSRjb3VudCsrOwoJfQoKJGFlZm9ybSA9IG5ldyBmYkZvcm0oJHRoaXMsICRwYXJhbXMsIHRydWUpOwoKZWNobyAkYWVmb3JtLT5BZGRFZGl0Rm9ybSgkaWQsICRyZXR1cm5pZCwgJHRoaXMtPkxhbmcoJ2ZpZWxkX29yZGVyX3VwZGF0ZWQnKSk7Cj8+]]></data>
	</file>
	<file>
	  <filename>/action.admin_store_field.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCiRhZWZvcm0gPSBuZXcgZmJGb3JtKCR0aGlzLCAkcGFyYW1zLCB0cnVlKTsKJGFlZmllbGQgPSAkYWVmb3JtLT5OZXdGaWVsZCgkcGFyYW1zKTsKJHZhbCA9ICRhZWZpZWxkLT5BZG1pblZhbGlkYXRlKCk7CmlmICgkdmFsWzBdKQogIHsKICAgICRhZWZpZWxkLT5Qb3N0QWRtaW5TdWJtaXRDbGVhbnVwKCk7CiAgICAkYWVmaWVsZC0+U3RvcmUodHJ1ZSk7CiAgICAkcGFyYW1zWydmYnJwX21lc3NhZ2UnXT0kcGFyYW1zWydmYnJwX29wJ107CiAgICAkdGhpcy0+RG9BY3Rpb24oJ2FkbWluX2FkZF9lZGl0X2Zvcm0nLCAkaWQsICRwYXJhbXMpOwogIH0KIGVsc2UKICAgewogICAgICRhZWZpZWxkLT5Mb2FkRmllbGQoJHBhcmFtcyk7CiAgICAgJHBhcmFtc1snZmJycF9tZXNzYWdlJ10gPSAkdmFsWzFdOwogICAgIGVjaG8gJGFlZm9ybS0+QWRkRWRpdEZpZWxkKCRpZCwgJGFlZmllbGQsIChpc3NldCgkcGFyYW1zWydmYnJwX2Rpc3Bvc2Vfb25seSddKT8kcGFyYW1zWydmYnJwX2Rpc3Bvc2Vfb25seSddOjApLCAkcmV0dXJuaWQsIGlzc2V0KCRwYXJhbXNbJ2ZicnBfbWVzc2FnZSddKT8kcGFyYW1zWydmYnJwX21lc3NhZ2UnXTonJyk7CiAgIH0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_store_form.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCiAgICAgICAgJGFlZm9ybSA9IG5ldyBmYkZvcm0oJHRoaXMsICRwYXJhbXMsIHRydWUpOwogICAgICAgICRhZWZvcm0tPlN0b3JlKCk7CiAgICAgICAgaWYgKCRwYXJhbXNbJ2ZicnBfc3VibWl0J10gPT0gJHRoaXMtPkxhbmcoJ3NhdmUnKSkKICAgICAgICAgICAgewogICAgICAgICAgICAkcGFyYW1zWydmYnJwX21lc3NhZ2UnXSA9ICR0aGlzLT5MYW5nKCdmb3JtJywkcGFyYW1zWydmYnJwX2Zvcm1fb3AnXSk7CiAgICAgICAgICAgICR0aGlzLT5Eb0FjdGlvbignZGVmYXVsdGFkbWluJywgJGlkLCAkcGFyYW1zKTsKICAgICAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICAJewoJCQllY2hvICRhZWZvcm0tPkFkZEVkaXRGb3JtKCRpZCwgJHJldHVybmlkLCR0aGlzLT5MYW5nKCdmb3JtJywkcGFyYW1zWydmYnJwX2Zvcm1fb3AnXSkpOwoJCQl9Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_update_config.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCgkJJHRoaXMtPlNldFByZWZlcmVuY2UoJ2hpZGVfZXJyb3JzJyxpc3NldCgkcGFyYW1zWydmYnJwX2hpZGVfZXJyb3JzJ10pPyRwYXJhbXNbJ2ZicnBfaGlkZV9lcnJvcnMnXTowKTsKCQkkdGhpcy0+U2V0UHJlZmVyZW5jZSgnc2hvd192ZXJzaW9uJyxpc3NldCgkcGFyYW1zWydmYnJwX3Nob3dfdmVyc2lvbiddKT8kcGFyYW1zWydmYnJwX3Nob3dfdmVyc2lvbiddOjApOwoJCSR0aGlzLT5TZXRQcmVmZXJlbmNlKCdyZWxheGVkX2VtYWlsX3JlZ2V4Jyxpc3NldCgkcGFyYW1zWydmYnJwX3JlbGF4ZWRfZW1haWxfcmVnZXgnXSk/JHBhcmFtc1snZmJycF9yZWxheGVkX2VtYWlsX3JlZ2V4J106MCk7CgoJCSR0aGlzLT5TZXRQcmVmZXJlbmNlKCdyZXF1aXJlX2ZpZWxkbmFtZXMnLGlzc2V0KCRwYXJhbXNbJ2ZicnBfcmVxdWlyZV9maWVsZG5hbWVzJ10pPyRwYXJhbXNbJ2ZicnBfcmVxdWlyZV9maWVsZG5hbWVzJ106MCk7CgoJCSR0aGlzLT5TZXRQcmVmZXJlbmNlKCd1bmlxdWVfZmllbGRuYW1lcycsaXNzZXQoJHBhcmFtc1snZmJycF91bmlxdWVfZmllbGRuYW1lcyddKT8kcGFyYW1zWydmYnJwX3VuaXF1ZV9maWVsZG5hbWVzJ106MCk7CgoJCSR0aGlzLT5TZXRQcmVmZXJlbmNlKCdlbmFibGVfZmFzdGFkZCcsaXNzZXQoJHBhcmFtc1snZmJycF9lbmFibGVfZmFzdGFkZCddKT8kcGFyYW1zWydmYnJwX2VuYWJsZV9mYXN0YWRkJ106MCk7CgkJJHRoaXMtPlNldFByZWZlcmVuY2UoJ2VuYWJsZV9hbnRpc3BhbScsaXNzZXQoJHBhcmFtc1snZmJycF9lbmFibGVfYW50aXNwYW0nXSk/JHBhcmFtc1snZmJycF9lbmFibGVfYW50aXNwYW0nXTowKTsKCiAgICAgICAgICAgICAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnc2hvd19maWVsZGlkcycsaXNzZXQoJHBhcmFtc1snZmJycF9zaG93X2ZpZWxkaWRzJ10pPyRwYXJhbXNbJ2ZicnBfc2hvd19maWVsZGlkcyddOjApOwoKCQkkcGFyYW1zWydmYnJwX21lc3NhZ2UnXSA9ICR0aGlzLT5MYW5nKCdjb25maWd1cmF0aW9uX3VwZGF0ZWQnKTsKICAgICAgICAkdGhpcy0+RG9BY3Rpb24oJ2RlZmF1bHRhZG1pbicsICRpZCwgJHBhcmFtcyk7Cgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_update_field_order.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCiAgICAgICAgJGFlZm9ybSA9IG5ldyBmYkZvcm0oJHRoaXMsICRwYXJhbXMsIHRydWUpOwogICAgICAgICRzcmNJbmRleCA9ICRhZWZvcm0tPkdldEZpZWxkSW5kZXhGcm9tSWQoJHBhcmFtc1snZmllbGRfaWQnXSk7CiAgICAgICAgaWYgKCRwYXJhbXNbJ2ZicnBfZGlyJ10gPT0gJ3VwJykKICAgICAgICAgICAgewogICAgICAgICAgICAkZGVzdEluZGV4ID0gJHNyY0luZGV4IC0gMTsKICAgICAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAkZGVzdEluZGV4ID0gJHNyY0luZGV4ICsgMTsKICAgICAgICAgICAgfQogICAgICAgICRhZWZvcm0tPlN3YXBGaWVsZHNCeUluZGV4KCRzcmNJbmRleCwkZGVzdEluZGV4KTsKCi8vIGZvcmNlIHJlbG9hZCBvZiBmb3JtLCB0aGlzIGlzIGtpbmRhIGhhY2tpc2ggYnV0IGNhbnQgdGhpbmsgb2YgYW55dGhpbmcgZWxzZSA7KQokYWVmb3JtID0gbmV3IGZiRm9ybSgkdGhpcywgJHBhcmFtcywgdHJ1ZSk7CgoKICAgICAgICBlY2hvICRhZWZvcm0tPkFkZEVkaXRGb3JtKCRpZCwgJHJldHVybmlkLCAkdGhpcy0+U2hvd01lc3NhZ2UoJHRoaXMtPkxhbmcoJ2ZpZWxkX29yZGVyX3VwZGF0ZWQnKSkpOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_update_field_required.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCiAgICAgICAgJGFlZm9ybSA9IG5ldyBmYkZvcm0oJHRoaXMsICRwYXJhbXMsIHRydWUpOwogICAgICAgIAogICAgICAgICRhZWZpZWxkID0gJGFlZm9ybS0+R2V0RmllbGRCeUlkKCRwYXJhbXNbJ2ZpZWxkX2lkJ10pOwoJCWlmICgkYWVmaWVsZCAhPT0gZmFsc2UpCgkJCXsKCQkJLy8kYWVmaWVsZC0+U2V0UmVxdWlyZWQoJHBhcmFtc1snZmJycF9hY3RpdmUnXT09J29uJz90cnVlOmZhbHNlKTsKCQkJJGFlZmllbGQtPlRvZ2dsZVJlcXVpcmVkKCk7CgkJCSRhZWZpZWxkLT5TdG9yZSgpOwogICAgICAgICAkYWVmb3JtID0gbmV3IGZiRm9ybSgkdGhpcywgJHBhcmFtcywgdHJ1ZSk7CgkJCX0KCQllY2hvICRhZWZvcm0tPkFkZEVkaXRGb3JtKCRpZCwgJHJldHVybmlkLCAkdGhpcy0+TGFuZygnZmllbGRfcmVxdWlyZW1lbnRfdXBkYXRlZCcpKTsKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.default.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNyBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDcgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKLy9kZWJ1Z19kaXNwbGF5KCRwYXJhbXMpOwoKaWYgKCEgaXNzZXQoJHBhcmFtc1snZm9ybV9pZCddKSAmJiBpc3NldCgkcGFyYW1zWydmb3JtJ10pKQogIHsKICAgIC8vIGdldCB0aGUgZm9ybSBieSBuYW1lLCBub3QgSUQKICAgICRwYXJhbXNbJ2Zvcm1faWQnXSA9ICR0aGlzLT5HZXRGb3JtSURGcm9tQWxpYXMoJHBhcmFtc1snZm9ybSddKTsKICB9CgovL2RlYnVnX2Rpc3BsYXkoJHBhcmFtcyk7CiRhZWZvcm0gPSBuZXcgZmJGb3JtKCR0aGlzLCRwYXJhbXMsdHJ1ZSk7CgokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2ZiX2Zvcm1faGVhZGVyJywgJGFlZm9ybS0+UmVuZGVyRm9ybUhlYWRlcigpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmYl9mb3JtX2Zvb3RlcicsJGFlZm9ybS0+UmVuZGVyRm9ybUZvb3RlcigpKTsKCiRmaW5pc2hlZCA9IGZhbHNlOwokZmllbGRFeHBhbmRPcCA9IGZhbHNlOwoKZm9yZWFjaCgkcGFyYW1zIGFzICRwS2V5PT4kcFZhbCkKICAgewogICBpZiAoc3Vic3RyKCRwS2V5LDAsOSkgPT0gJ2ZicnBfRmVYXycgfHwgc3Vic3RyKCRwS2V5LDAsOSkgPT0gJ2ZicnBfRmVEXycpCiAgICAgIHsKICAgICAgLy8gZXhwYW5kaW5nIG9yIHNocmlua2luZyBhIGZpZWxkCiAgICAgICRmaWVsZEV4cGFuZE9wID0gdHJ1ZTsKICAgICAgfQogICB9CgppZiAoICEkZmllbGRFeHBhbmRPcCAmJgogICAgKCgkYWVmb3JtLT5HZXRQYWdlQ291bnQoKSA+IDEgJiYgJGFlZm9ybS0+R2V0UGFnZU51bWJlcigpID4gMCkgfHwKICAgICAoaXNzZXQoJHBhcmFtc1snZmJycF9kb25lJ10pJiYgJHBhcmFtc1snZmJycF9kb25lJ109PTEpKSkKICAgIHsKICAgICRyZXMgPSAkYWVmb3JtLT5WYWxpZGF0ZSgpOwogICAgCiAgICBpZiAoJHJlc1swXSA9PT0gZmFsc2UpCiAgICAgIHsKCSAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmYl9mb3JtX3ZhbGlkYXRpb25fZXJyb3JzJywkcmVzWzFdKTsKCSAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmYl9mb3JtX2hhc192YWxpZGF0aW9uX2Vycm9ycycsMSk7CgkgIAoJICAkYWVmb3JtLT5QYWdlQmFjaygpOwogICAgICB9CiAgICBlbHNlIGlmIChpc3NldCgkcGFyYW1zWydmYnJwX2RvbmUnXSkgJiYgJHBhcmFtc1snZmJycF9kb25lJ109PTEpCiAgICAgIHsKICAgICAgJG9rID0gdHJ1ZTsKICAgICAgJGNhcHRjaGEgPSAmJHRoaXMtPmdldE1vZHVsZUluc3RhbmNlKCdDYXB0Y2hhJyk7CiAgICAgIGlmICgkYWVmb3JtLT5HZXRBdHRyKCd1c2VfY2FwdGNoYScsJzAnKT09ICcxJyAmJiAkY2FwdGNoYSAhPSBudWxsKQogICAgICAgICB7CiAgCSAgICAgIGlmICghICRjYXB0Y2hhLT5DaGVja0NhcHRjaGEoJHBhcmFtc1snZmJycF9jYXB0Y2hhX3BocmFzZSddKSkKICAJICAgICAgICAgewogIAkgICAgICAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2NhcHRjaGFfZXJyb3InLCRhZWZvcm0tPkdldEF0dHIoJ3dyb25nX2NhcHRjaGEnLCR0aGlzLT5MYW5nKCd3cm9uZ19jYXB0Y2hhJykpKTsKICAJICAgICAgICAgCiAgCSAgICAgICAgICRhZWZvcm0tPlBhZ2VCYWNrKCk7CiAgICAgICAgICAgICRvayA9IGZhbHNlOwogICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgaWYgKCRvaykKICAgICAgICAgewogICAgICAgICAkZmluaXNoZWQgPSB0cnVlOwoJICAgICAgJHJlc3VsdHMgPSAkYWVmb3JtLT5EaXNwb3NlKCRyZXR1cm5pZCk7CgkgICAgICB9CiAgICAgIH0KICB9CgppZiAoISAkZmluaXNoZWQpCiAgIHsKICAgJHBhcm1zID0gYXJyYXkoKTsKICAgJHBhcm1zWydmb3JtX25hbWUnXSA9ICRhZWZvcm0tPkdldE5hbWUoKTsKICAgJHBhcm1zWydmb3JtX2lkJ10gPSAkYWVmb3JtLT5HZXRJZCgpOwogICAkdGhpcy0+U2VuZEV2ZW50KCdPbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknLCRwYXJtcyk7CgogICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2ZiX2Zvcm1fc3RhcnQnLCR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAnZGVmYXVsdCcsICRyZXR1cm5pZCwgJ3Bvc3QnLCAnbXVsdGlwYXJ0L2Zvcm0tZGF0YScsICgkYWVmb3JtLT5HZXRBdHRyKCdpbmxpbmUnLCcwJyk9PSAnMScpLCAnJykpOwoKICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmYl9mb3JtX2VuZCcsJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CiAgICR0aGlzLT5zbWFydHktPmFzc2lnbignZmJfZm9ybV9kb25lJywwKTsKICAgfQplbHNlCiAgIHsKICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmYl9mb3JtX2RvbmUnLDEpOwogICBpZiAoJHJlc3VsdHNbMF0gPT0gdHJ1ZSkKICAgICAgewogICAgICAkcGFybXMgPSBhcnJheSgpOwogICAgICAkcGFybXNbJ2Zvcm1fbmFtZSddID0gJGFlZm9ybS0+R2V0TmFtZSgpOwogICAgICAkcGFybXNbJ2Zvcm1faWQnXSA9ICRhZWZvcm0tPkdldElkKCk7CiAgICAgICR0aGlzLT5TZW5kRXZlbnQoJ09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0JywkcGFybXMpOwoKICAgICAgJGFjdCA9ICRhZWZvcm0tPkdldEF0dHIoJ3N1Ym1pdF9hY3Rpb24nLCd0ZXh0Jyk7CiAgICAgIGlmICgkYWN0ID09ICd0ZXh0JykKICAgICAgICAgewogICAgICAgICAkbWVzc2FnZSA9ICRhZWZvcm0tPkdldEF0dHIoJ3N1Ym1pdF9yZXNwb25zZScsJycpOwogICAgICAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3N1Yl9mb3JtX25hbWUnLCRhZWZvcm0tPkdldE5hbWUoKSk7CiAgICAgICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignc3ViX2RhdGUnLGRhdGUoJ3InKSk7CiAgICAgICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignc3ViX2hvc3QnLCRfU0VSVkVSWydTRVJWRVJfTkFNRSddKTsKICAgICAgICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzdWJfc291cmNlX2lwJywkX1NFUlZFUlsnUkVNT1RFX0FERFInXSk7CiAgICAgICAgIGlmIChlbXB0eSgkX1NFUlZFUlsnSFRUUF9SRUZFUkVSJ10pKQogICAgICAgICAgICB7CiAgICAgICAgICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignc3ViX3VybCcsJHRoaXMtPkxhbmcoJ25vX3JlZmVycmVyX2luZm8nKSk7CiAgICAgICAgICAgIH0KICAgICAgICAgZWxzZQogICAgICAgICAgICB7CiAgICAgICAgICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignc3ViX3VybCcsJF9TRVJWRVJbJ0hUVFBfUkVGRVJFUiddKTsKICAgICAgICAgICAgfQogICAgICAgICAkb3RoZXJzID0gJiRhZWZvcm0tPkdldEZpZWxkcygpOwogICAgICAgICAkdW5zcGVjID0gJGFlZm9ybS0+R2V0QXR0cigndW5zcGVjaWZpZWQnLCR0aGlzLT5MYW5nKCd1bnNwZWNpZmllZCcpKTsKCiAgICAgICAgIGZvcigkaT0wOyRpPGNvdW50KCRvdGhlcnMpOyRpKyspCiAgICAgICAgICAgIHsKICAgICAgICAgICAgJGZpZWxkID0mICRvdGhlcnNbJGldOwogICAgICAgICAgICAkcmVwbFZhbCA9ICcnOwogICAgICAgICAgICAkcmVwbFZhbHMgPSBhcnJheSgpOwogICAgICAgICAgICBpZiAoJGZpZWxkLT5EaXNwbGF5SW5TdWJtaXNzaW9uKCkpCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgJHJlcGxWYWwgPSBodG1sc3BlY2lhbGNoYXJzKCRmaWVsZC0+R2V0SHVtYW5SZWFkYWJsZVZhbHVlKCkpOwogICAgICAgICAgICAgICBpZiAoJHJlcGxWYWwgPT0gJycpCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgJHJlcGxWYWwgPSAkdW5zcGVjOwoJICAgICAgCQkJfQoJICAgIAkJaWYgKCRmaWVsZC0+SGFzTXVsdGlwbGVWYWx1ZXMoKSkKCSAgICAgICAgCQl7CgkgICAgICAgIAkJJHJlcGxWYWxzID0gJGZpZWxkLT5HZXRWYWx1ZSgpOwoJICAgICAgICAJCX0KICAgICAgICAgICAgICAgfQogICAgICAgICAgICR0aGlzLT5zbWFydHktPmFzc2lnbigkYWVmb3JtLT5NYWtlVmFyKCRmaWVsZC0+R2V0TmFtZSgpKSwKICAgICAgICAgICAgICAgICAgJHJlcGxWYWwpOwogICAgICAgICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignZmxkXycuJGZpZWxkLT5HZXRJZCgpLCRyZXBsVmFsKTsKICAgICAgICAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJGFlZm9ybS0+TWFrZVZhcigkZmllbGQtPkdldE5hbWUoKSkuJ19hcnJheScsCiAgICAgICAgICAgICAgICAgICRyZXBsVmFscyk7CiAgICAgICAgICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmbGRfJy4kZmllbGQtPkdldElkKCkuJ19hcnJheScsJHJlcGxWYWxzKTsKICAgICAgICAgICAgfQogICAgICAgICBlY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSggJG1lc3NhZ2UgKTsKICAgICAgICAgfQogICAgICBlbHNlIGlmICgkYWN0ID09ICdyZWRpcicpCiAgICAgICAgIHsKICAgICAgICAgJHJldCA9ICRhZWZvcm0tPkdldEF0dHIoJ3JlZGlyZWN0X3BhZ2UnLCctMScpOwogICAgICAgICBpZiAoJHJldCAhPSAtMSkKICAgICAgICAgICAgewogICAgICAgICAgICAkdGhpcy0+UmVkaXJlY3RDb250ZW50KCRyZXQpOwoJICAgCQl9CiAgICAgICAgIH0KICAgICAgfQogICBlbHNlCiAgICAgIHsKICAgICAgJHBhcm1zID0gYXJyYXkoKTsKICAgICAgJHBhcmFtc1snZmJycF9lcnJvciddPScnOwogICAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2ZiX3N1Ym1pc3Npb25fZXJyb3InLAoJIAkkdGhpcy0+TGFuZygnc3VibWlzc2lvbl9lcnJvcicpKTsKCiAgICAgICRzaG93ID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2hpZGVfZXJyb3JzJywwKTsKICAgICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmYl9zdWJtaXNzaW9uX2Vycm9yX2xpc3QnLCRyZXN1bHRzWzFdKTsKICAgICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmYl9zaG93X3N1Ym1pc3Npb25fZXJyb3JzJywkc2hvdyk7CgogICAgICAkcGFybXNbJ2Zvcm1fbmFtZSddID0gJGFlZm9ybS0+R2V0TmFtZSgpOwogICAgICAkcGFybXNbJ2Zvcm1faWQnXSA9ICRhZWZvcm0tPkdldElkKCk7CiAgICAgICR0aGlzLT5TZW5kRXZlbnQoJ09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InLCRwYXJtcyk7CiAgICAgIH0KICAgfQoKZWNobyAkYWVmb3JtLT5SZW5kZXJGb3JtKCRpZCwgJHBhcmFtcywgJHJldHVybmlkKTsKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNyBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKCQkvLyBhbmQgYSBsaXN0IG9mIGFsbCB0aGUgZXh0YW50IGZvcm1zLgogICAgICAgICRmb3JtcyA9ICR0aGlzLT5HZXRGb3JtcygpOwoJCSRudW1fZm9ybXMgPSBjb3VudCgkZm9ybXMpOwogICAgICAgIAogICAgICAgICR0aGlzLT5zbWFydHktPmFzc2lnbigndGFiaGVhZGVycycsICR0aGlzLT5TdGFydFRhYkhlYWRlcnMoKSAuCgkJCSR0aGlzLT5TZXRUYWJIZWFkZXIoJ2Zvcm1zJywkdGhpcy0+TGFuZygnZm9ybXMnKSkgLgoJCQkkdGhpcy0+U2V0VGFiSGVhZGVyKCdjb25maWcnLCR0aGlzLT5MYW5nKCdjb25maWd1cmF0aW9uJykpIC4KCQkJJHRoaXMtPkVuZFRhYkhlYWRlcnMoKS4KCQkJJHRoaXMtPlN0YXJ0VGFiQ29udGVudCgpKTsKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3N0YXJ0X2Zvcm10YWInLCR0aGlzLT5TdGFydFRhYigiZm9ybXMiKSk7CgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzdGFydF9jb25maWd0YWInLCR0aGlzLT5TdGFydFRhYigiY29uZmlnIikpOwoJCSR0aGlzLT5zbWFydHktPmFzc2lnbignZW5kX3RhYicsJHRoaXMtPkVuZFRhYigpKTsKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2VuZF90YWJzJywkdGhpcy0+RW5kVGFiQ29udGVudCgpKTsKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2Zvcm1fbmFtZScsJHRoaXMtPkxhbmcoJ3RpdGxlX2Zvcm1fbmFtZScpKTsKICAgICAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2Zvcm1fYWxpYXMnLCR0aGlzLT5MYW5nKCd0aXRsZV9mb3JtX2FsaWFzJykpOwogICAgICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignc3RhcnRfY29uZmlnZm9ybScsJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsCgkJCSdhZG1pbl91cGRhdGVfY29uZmlnJywgJHJldHVybmlkKSk7CiAgICAgICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdtZXNzYWdlJywgaXNzZXQoJHBhcmFtc1snZmJycF9tZXNzYWdlJ10pPyRwYXJhbXNbJ2ZicnBfbWVzc2FnZSddOicnKTsKCgkJJGZvcm1BcnJheSA9IGFycmF5KCk7CgkJJGN1cnJvdyA9ICJyb3cxIjsKCQlmb3JlYWNoICgkZm9ybXMgYXMgJHRoaXNGb3JtKQogICAgCQl7CgkJCSRvbmVzZXQgPSBuZXcgc3RkQ2xhc3MoKTsKCQkJJG9uZXNldC0+cm93Y2xhc3MgPSAkY3Vycm93OwoJCQlpZiAoJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IEZvcm1zJykpCgkJCQl7CgkJCQkkb25lc2V0LT5uYW1lID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLAoJCQkJIAknYWRtaW5fYWRkX2VkaXRfZm9ybScsICcnLAogICAgICAgICAgICAJCSR0aGlzRm9ybVsnbmFtZSddLCBhcnJheSgnZm9ybV9pZCc9PiR0aGlzRm9ybVsnZm9ybV9pZCddKSk7CgkJCQkkb25lc2V0LT54bWwgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsJ2V4cG9ydHhtbCcsJycsIjxpbWcgc3JjPVwiIi4kZ0Ntcy0+Y29uZmlnWydyb290X3VybCddLiIvaW1hZ2VzL2Ntcy94bWxfcnNzLmdpZlwiIGNsYXNzPVwic3lzdGVtaWNvblwiIGFsdD1cIkV4cG9ydCBGb3JtIGFzIFhNTFwiIC8+IixhcnJheSgnZm9ybV9pZCc9PiR0aGlzRm9ybVsnZm9ybV9pZCddKSk7CgkJCQkkb25lc2V0LT5lZGl0bGluayA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwKCQkJCQknYWRtaW5fYWRkX2VkaXRfZm9ybScsICcnLAoJCQkJCSRnQ21zLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vZWRpdC5naWYnLCR0aGlzLT5MYW5nKCdlZGl0JyksJycsJycsJ3N5c3RlbWljb24nKSwKCQkJCQkJYXJyYXkoJ2Zvcm1faWQnPT4kdGhpc0Zvcm1bJ2Zvcm1faWQnXSkpOwoJCQkJJG9uZXNldC0+ZGVsZXRlbGluayA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwKCQkJCQknYWRtaW5fZGVsZXRlX2Zvcm0nLCAnJywKCQkJCQkkZ0Ntcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2RlbGV0ZS5naWYnLCR0aGlzLT5MYW5nKCdkZWxldGUnKSwnJywnJywnc3lzdGVtaWNvbicpLAoJCQkJCWFycmF5KCdmb3JtX2lkJz0+JHRoaXNGb3JtWydmb3JtX2lkJ10pLAoJCQkJCSR0aGlzLT5MYW5nKCdhcmVfeW91X3N1cmVfZGVsZXRlX2Zvcm0nLCR0aGlzRm9ybVsnbmFtZSddKSk7CgoJCQkJfQoJCQllbHNlCgkJCQl7CgkJCQkkb25lc2V0LT5uYW1lPSR0aGlzRm9ybVsnbmFtZSddOwoJCQkJJG9uZXNldC0+ZWRpdGxpbmsgPSAnJzsKCQkJCSRvbmVzZXQtPmRlbGV0ZWxpbmsgPSAnJzsKCQkJCX0KCQkJJG9uZXNldC0+dXNhZ2UgPSAkdGhpc0Zvcm1bJ2FsaWFzJ107CgkJCWFycmF5X3B1c2goJGZvcm1BcnJheSwkb25lc2V0KTsKCQkJKCRjdXJyb3cgPT0gInJvdzEiPyRjdXJyb3c9InJvdzIiOiRjdXJyb3c9InJvdzEiKTsKCQkJfQoJCWlmICgkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgRm9ybXMnKSkKCQkJewoJCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2FkZGxpbmsnLCR0aGlzLT5DcmVhdGVMaW5rKCRpZCwKCQkJCSdhZG1pbl9hZGRfZWRpdF9mb3JtJywgJycsCgkJCQkkZ0Ntcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL25ld29iamVjdC5naWYnLCAkdGhpcy0+TGFuZygndGl0bGVfYWRkX25ld19mb3JtJyksJycsCgkJCQkJJycsJ3N5c3RlbWljb24nKSwgYXJyYXkoKSkpOwoJCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2FkZGZvcm0nLCR0aGlzLT5DcmVhdGVMaW5rKCRpZCwKCQkJCSdhZG1pbl9hZGRfZWRpdF9mb3JtJywgJycsICR0aGlzLT5MYW5nKCd0aXRsZV9hZGRfbmV3X2Zvcm0nKSwKCQkJCWFycmF5KCkpKTsKCQkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdtYXlfY29uZmlnJywxKTsKCQkJfQoJCWVsc2UKCQkJewoJCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ25vX3Blcm1pc3Npb24nLAoJCQkJJHRoaXMtPkxhbmcoJ2xhY2twZXJtaXNzaW9uJykpOwoJCQl9CgkKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2hpZGVfZXJyb3JzJywkdGhpcy0+TGFuZygndGl0bGVfaGlkZV9lcnJvcnMnKSk7CQkKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X2hpZGVfZXJyb3JzJywkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsICdmYnJwX2hpZGVfZXJyb3JzJywgMSwgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2hpZGVfZXJyb3JzJywnMScpKS4gJHRoaXMtPkxhbmcoJ3RpdGxlX2hpZGVfZXJyb3JzX2xvbmcnKSk7CQkKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX3JlbGF4ZWRfZW1haWxfcmVnZXgnLCR0aGlzLT5MYW5nKCd0aXRsZV9yZWxheGVkX2VtYWlsX3JlZ2V4JykpOwkJCgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF9yZWxheGVkX2VtYWlsX3JlZ2V4JywkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsICdmYnJwX3JlbGF4ZWRfZW1haWxfcmVnZXgnLCAxLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgncmVsYXhlZF9lbWFpbF9yZWdleCcsJzAnKSkuICR0aGlzLT5MYW5nKCd0aXRsZV9yZWxheGVkX3JlZ2V4X2xvbmcnKSk7CgoJCSR0aGlzLT5zbWFydHktPmFzc2lnbigndGl0bGVfZW5hYmxlX2Zhc3RhZGQnLCR0aGlzLT5MYW5nKCd0aXRsZV9lbmFibGVfZmFzdGFkZCcpKTsKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X2VuYWJsZV9mYXN0YWRkJywkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsICdmYnJwX2VuYWJsZV9mYXN0YWRkJywgMSwgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2VuYWJsZV9mYXN0YWRkJywnMScpKS4gJHRoaXMtPkxhbmcoJ3RpdGxlX2VuYWJsZV9mYXN0YWRkX2xvbmcnKSk7CQkKCgoJCSR0aGlzLT5zbWFydHktPmFzc2lnbigndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzJywkdGhpcy0+TGFuZygndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzJykpOwkJCgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF9yZXF1aXJlX2ZpZWxkbmFtZXMnLCR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwgJ2ZicnBfcmVxdWlyZV9maWVsZG5hbWVzJywgMSwgJHRoaXMtPkdldFByZWZlcmVuY2UoJ3JlcXVpcmVfZmllbGRuYW1lcycsJzEnKSkuICR0aGlzLT5MYW5nKCd0aXRsZV9yZXF1aXJlX2ZpZWxkbmFtZXNfbG9uZycpKTsJCQoKICAgICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV91bmlxdWVfZmllbGRuYW1lcycsJHRoaXMtPkxhbmcoJ3RpdGxlX3VuaXF1ZV9maWVsZG5hbWVzJykpOwoJCSR0aGlzLT5zbWFydHktPmFzc2lnbignaW5wdXRfdW5pcXVlX2ZpZWxkbmFtZXMnLCR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwgJ2ZicnBfdW5pcXVlX2ZpZWxkbmFtZXMnLCAxLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgndW5pcXVlX2ZpZWxkbmFtZXMnLCcxJykpLiAkdGhpcy0+TGFuZygndGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXNfbG9uZycpKTsJCQoKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2VuYWJsZV9hbnRpc3BhbScsJHRoaXMtPkxhbmcoJ3RpdGxlX2VuYWJsZV9hbnRpc3BhbScpKTsKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X2VuYWJsZV9hbnRpc3BhbScsJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAnZmJycF9lbmFibGVfYW50aXNwYW0nLCAxLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZW5hYmxlX2FudGlzcGFtJywnMScpKS4gJHRoaXMtPkxhbmcoJ3RpdGxlX2VuYWJsZV9hbnRpc3BhbV9sb25nJykpOwoKJHNtYXJ0eS0+YXNzaWduKCd0aXRsZV9zaG93X2ZpZWxkaWRzJywkdGhpcy0+TGFuZygndGl0bGVfc2hvd19maWVsZGlkcycpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9zaG93X2ZpZWxkaWRzJywKCQkkdGhpcy0+Q3JlYXRlSW5wdXRjaGVja2JveCgkaWQsJ2ZicnBfc2hvd19maWVsZGlkcycsMSwKCQkJCQkgICAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnc2hvd19maWVsZGlkcycsJzAnKSkuICR0aGlzLT5MYW5nKCd0aXRsZV9zaG93X2ZpZWxkaWRzX2xvbmcnKSk7CgoKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX3Nob3dfdmVyc2lvbicsJHRoaXMtPkxhbmcoJ3RpdGxlX3Nob3dfdmVyc2lvbicpKTsKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X3Nob3dfdmVyc2lvbicsJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAnZmJycF9zaG93X3ZlcnNpb24nLCAxLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnc2hvd192ZXJzaW9uJywnMScpKS4gJHRoaXMtPkxhbmcoJ3RpdGxlX3Nob3dfdmVyc2lvbl9sb25nJykpOwkJCQkKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3N1Ym1pdCcsICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdmYnJwX3N1Ym1pdCcsICR0aGlzLT5MYW5nKCdzYXZlJykpKTsKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2VuZF9jb25maWdmb3JtJywkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKCiAgICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignc3RhcnRfeG1sZm9ybScsJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsCgkJCSdpbXBvcnR4bWwnLCAkcmV0dXJuaWQsICdwb3N0JywnbXVsdGlwYXJ0L2Zvcm0tZGF0YScpKTsKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3N1Ym1pdHhtbCcsICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdmYnJwX3N1Ym1pdCcsICR0aGlzLT5MYW5nKCd1cGxvYWQnKSkpOwoJCSR0aGlzLT5zbWFydHktPmFzc2lnbignZW5kX3htbGZvcm0nLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwogICAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X3htbF90b191cGxvYWQnLCR0aGlzLT5DcmVhdGVJbnB1dEZpbGUoJGlkLCAnZmJycF94bWxmaWxlJykpOwogICAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX3htbF90b191cGxvYWQnLCR0aGlzLT5MYW5nKCd0aXRsZV94bWxfdG9fdXBsb2FkJykpOwogICAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX3htbF91cGxvYWRfZm9ybW5hbWUnLCR0aGlzLT5MYW5nKCd0aXRsZV94bWxfdXBsb2FkX2Zvcm1uYW1lJykpOwogICAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X3htbF91cGxvYWRfZm9ybW5hbWUnLAoJCSAgICAgICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCdmYnJwX2ltcG9ydF9mb3JtbmFtZScsJycsMjUpKTsKICAgICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV94bWxfdXBsb2FkX2Zvcm1hbGlhcycsJHRoaXMtPkxhbmcoJ3RpdGxlX3htbF91cGxvYWRfZm9ybWFsaWFzJykpOwogICAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X3htbF91cGxvYWRfZm9ybWFsaWFzJywKCQkgICAgICAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwnZmJycF9pbXBvcnRfZm9ybWFsaWFzJywnJywyNSkpOwogICAgICAkc21hcnR5LT5hc3NpZ24oJ2luZm9fbGVhdmVlbXB0eScsJHRoaXMtPkxhbmcoJ2hlbHBfbGVhdmVlbXB0eScpKTsKICAgICAgJHNtYXJ0eS0+YXNzaWduKCdsZWdlbmRfeG1sX2ltcG9ydCcsJHRoaXMtPkxhbmcoJ3RpdGxlX2ltcG9ydF9sZWdlbmQnKSk7CgogICAgICAgICR0aGlzLT5zbWFydHktPmFzc2lnbl9ieV9yZWYoJ2Zvcm1zJywgJGZvcm1BcnJheSk7CQkJCiAgICAgICAgZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdBZG1pbk1haW4udHBsJyk7Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.exportxml.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgppZiAoISBpc3NldCgkcGFyYW1zWydmb3JtX2lkJ10pICYmIGlzc2V0KCRwYXJhbXNbJ2Zvcm0nXSkpCiAgewogICAgLy8gZ2V0IHRoZSBmb3JtIGJ5IG5hbWUsIG5vdCBJRAogICAgJHBhcmFtc1snZm9ybV9pZCddID0gJHRoaXMtPkdldEZvcm1JREZyb21BbGlhcygkcGFyYW1zWydmb3JtJ10pOwogIH0KCiRhZWZvcm0gPSBuZXcgZmJGb3JtKCR0aGlzLCRwYXJhbXMsdHJ1ZSk7Cgokc3BlYyA9ICRhZWZvcm0tPkdldE5hbWUoKS4iLnhtbCI7CiRzcGVjID0gcHJlZ19yZXBsYWNlKCcvW15cd1xkXC5cLVxfXS8nLCdfJywkc3BlYyk7CiR4bWxzdHIgPSAkYWVmb3JtLT5FeHBvcnRYTUwoaXNzZXQoJHBhcmFtc1snZmJycF9leHBvcnRfdmFsdWVzJ10pP3RydWU6ZmFsc2UpOwoKICAgIEBvYl9jbGVhbigpOwogICAgQG9iX2NsZWFuKCk7CiAgICBoZWFkZXIoJ1ByYWdtYTogcHVibGljJyk7CiAgICBoZWFkZXIoJ0V4cGlyZXM6IDAnKTsKICAgIGhlYWRlcignQ2FjaGUtQ29udHJvbDogbXVzdC1yZXZhbGlkYXRlLCBwb3N0LWNoZWNrPTAsIHByZS1jaGVjaz0wJyk7CiAgICBoZWFkZXIoJ0NhY2hlLUNvbnRyb2w6IHByaXZhdGUnLGZhbHNlKTsKICAgIGhlYWRlcignQ29udGVudC1EZXNjcmlwdGlvbjogRmlsZSBUcmFuc2ZlcicpOwogICAgaGVhZGVyKCdDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2ZvcmNlLWRvd25sb2FkOyBjaGFyc2V0PXV0Zi04Jyk7CiAgICBoZWFkZXIoJ0NvbnRlbnQtTGVuZ3RoOiAnIC4gc3RybGVuKCR4bWxzdHIpKTsKICAgIGhlYWRlcignQ29udGVudC1EaXNwb3NpdGlvbjogYXR0YWNobWVudDsgZmlsZW5hbWU9JyAuICRzcGVjKTsKICAgIGVjaG8gJHhtbHN0cjsKICAgIGV4aXQ7Cj8+]]></data>
	</file>
	<file>
	  <filename>/action.importxml.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCiRwYXJhbXNbJ2ZicnBfeG1sX2ZpbGUnXSA9ICRfRklMRVNbJGlkLidmYnJwX3htbGZpbGUnXVsndG1wX25hbWUnXTsKCiRhZWZvcm0gPSBuZXcgZmJGb3JtKCR0aGlzLCAkcGFyYW1zLCB0cnVlKTsKJHJlcyA9ICRhZWZvcm0tPkltcG9ydFhNTCgkcGFyYW1zKTsKCmlmICgkcmVzKQoJewoJJHBhcmFtc1snZmJycF9tZXNzYWdlJ10gPSAkdGhpcy0+TGFuZygnZm9ybV9pbXBvcnRlZCcpOwoJfQplbHNlCgl7CgkkcGFyYW1zWydmYnJwX21lc3NhZ2UnXSA9ICR0aGlzLT5MYW5nKCdmb3JtX2ltcG9ydF9mYWlsZWQnKTsKCX0KJHRoaXMtPkRvQWN0aW9uKCdkZWZhdWx0YWRtaW4nLCAkaWQsICRwYXJhbXMpOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.validate.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgkJCmlmICghaXNzZXQoJHBhcmFtc1snZmJycF9mJ10pIHx8ICFpc3NldCgkcGFyYW1zWydmYnJwX3InXSkgfHwgIWlzc2V0KCRwYXJhbXNbJ2ZicnBfYyddKSkKCXsKCWVjaG8gJHRoaXMtPkxhbmcoJ3ZhbGlkYXRpb25fcGFyYW1fZXJyb3InKTsKCX0KJHBhcmFtc1sncmVzcG9uc2VfaWQnXT0kcGFyYW1zWydmYnJwX3InXTsKJHBhcmFtc1snZm9ybV9pZCddPSRwYXJhbXNbJ2ZicnBfZiddOwokcGFyYW1zWydmYnJwX3VzZXJfZm9ybV92YWxpZGF0ZSddPXRydWU7CiRhZWZvcm0gPSBuZXcgZmJGb3JtKCR0aGlzLCAkcGFyYW1zLCB0cnVlKTsKCmlmICghJGFlZm9ybS0+Q2hlY2tSZXNwb25zZSgkcGFyYW1zWydmYnJwX2YnXSwgJHBhcmFtc1snZmJycF9yJ10sICRwYXJhbXNbJ2ZicnBfYyddKSkKCXsKCWVjaG8gJHRoaXMtPkxhbmcoJ3ZhbGlkYXRpb25fcmVzcG9uc2VfZXJyb3InKTsKCX0KCiRmaWVsZHMgPSAkYWVmb3JtLT5HZXRGaWVsZHMoKTsKJGNvbmZpcm1hdGlvbkZpZWxkID0gLTE7CmZvcigkaT0wOyRpPGNvdW50KCRmaWVsZHMpOyRpKyspCgl7CglpZiAoJGZpZWxkc1skaV0tPkdldEZpZWxkVHlwZSgpID09ICdEaXNwb3NpdGlvbkVtYWlsQ29uZmlybWF0aW9uJykKCQl7CgkJJGNvbmZpcm1hdGlvbkZpZWxkID0gJGk7CgkJfQoJfQppZiAoJGNvbmZpcm1hdGlvbkZpZWxkICE9IC0xKQoJewoJJGZpZWxkc1skY29uZmlybWF0aW9uRmllbGRdLT5BcHByb3ZlVG9HbygkcGFyYW1zWydmYnJwX3InXSk7CgkkcmVzdWx0cyA9ICRhZWZvcm0tPkRpc3Bvc2UoJHJldHVybmlkKTsKCWlmICgkcmVzdWx0c1swXSA9PSB0cnVlKQoJCXsKCQkkcmV0ID0gJGZpZWxkc1skY29uZmlybWF0aW9uRmllbGRdLT5HZXRPcHRpb24oJ3JlZGlyZWN0X3BhZ2UnLCctMScpOwoJCWlmICgkcmV0ICE9IC0xKQoJCQl7CgkJCSR0aGlzLT5SZWRpcmVjdENvbnRlbnQoJHJldCk7CgkJCX0KCQl9CgllbHNlCgkJewoJCWVjaG8gIkVycm9yITogIjsKCQlmb3JlYWNoICgkcmVzdWx0c1sxXSBhcyAkdGhpc1JlcykKCQkJewoJCQllY2hvICR0aGlzUmVzIC4gJzxiciAvPic7CgkJCX0KCQl9Cgl9CmVsc2UKCXsKCQllY2hvICR0aGlzLT5MYW5nKCd2YWxpZGF0aW9uX25vX2ZpZWxkX2Vycm9yJyk7Cgl9Cj8+Cg==]]></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+J2NoZWNrZWQnCiAgICAgICAgICAgICk7CiAgICAgICR0aGlzLT5zb3J0YWJsZSA9IGZhbHNlOwoJfQoKCWZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRsYWJlbCA9ICcnOwoJCWlmIChzdHJsZW4oJHRoaXMtPkdldE9wdGlvbignbGFiZWwnLCcnKSkgPiAwKQoJCQl7CgkJCSRsYWJlbCA9ICcmbmJzcDs8bGFiZWwgZm9yPSInLiRpZC4nXycuJHRoaXMtPklkLiciPicuJHRoaXMtPkdldE9wdGlvbignbGFiZWwnKS4nPC9sYWJlbD4nOwoJCQl9CgkJaWYgKCR0aGlzLT5WYWx1ZSA9PT0gZmFsc2UgJiYgJHRoaXMtPkdldE9wdGlvbignaXNfY2hlY2tlZCcsJzAnKT09JzEnKQoJCQl7CgkJCSR0aGlzLT5WYWx1ZSA9ICd0JzsKCQkJfQoJCXJldHVybiAkbW9kLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwgJ2ZicnBfXycuJHRoaXMtPklkLCAndCcsJHRoaXMtPlZhbHVlLCcgaWQ9IicuJGlkLidfJy4kdGhpcy0+SWQuJyInKS4kbGFiZWw7Cgl9CgoJZnVuY3Rpb24gR2V0SHVtYW5SZWFkYWJsZVZhbHVlKCkKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQlpZiAoJHRoaXMtPlZhbHVlID09PSBmYWxzZSkKCQkJewoJCQlyZXR1cm4gJHRoaXMtPkdldE9wdGlvbigndW5jaGVja2VkX3ZhbHVlJywkbW9kLT5MYW5nKCd2YWx1ZV91bmNoZWNrZWQnKSk7CgkJCX0KCQllbHNlCgkJCXsKCQkJcmV0dXJuICR0aGlzLT5HZXRPcHRpb24oJ2NoZWNrZWRfdmFsdWUnLCRtb2QtPkxhbmcoJ3ZhbHVlX2NoZWNrZWQnKSk7CgkJCX0JCgl9CgoKCWZ1bmN0aW9uIFBvc3RQb3B1bGF0ZUFkbWluRm9ybSgmJG1haW5BcnJheSwgJiRhZHZBcnJheSkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCS8vIHJlbW92ZSB0aGUgInJlcXVpcmVkIiBmaWVsZCwgc2luY2UgdGhpcyBjYW4gb25seSBiZSBkb25lIHZpYSB2YWxpZGF0aW9uCgkJJHJlcUluZGV4ID0gLTE7CgkJZm9yICgkaT0wOyRpPGNvdW50KCRtYWluQXJyYXkpOyRpKyspCgkJCXsKCQkJaWYgKCRtYWluQXJyYXlbJGldLT50aXRsZSA9PSAkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9yZXF1aXJlZCcpKQoJCQkJewoJCQkJJHJlcUluZGV4ID0gJGk7CgkJCQl9CgkJCX0KCQlpZiAoJHJlcUluZGV4ICE9IC0xKQoJCQl7CgkJCWFycmF5X3NwbGljZSgkbWFpbkFycmF5LCAkcmVxSW5kZXgsMSk7CgkJCX0KCX0KCgoKCWZ1bmN0aW9uIFN0YXR1c0luZm8oKQoJewoJCWlmIChzdHJsZW4oJHRoaXMtPlZhbGlkYXRpb25UeXBlKT4wKQoJCSAgewoJCSAgCXJldHVybiBhcnJheV9zZWFyY2goJHRoaXMtPlZhbGlkYXRpb25UeXBlLCR0aGlzLT5WYWxpZGF0aW9uVHlwZXMpOwoJCSAgfQoJfQoKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkbWFpbiA9IGFycmF5KAoJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9jaGVja2JveF9sYWJlbCcpLAogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9sYWJlbCcsCiAgICAgICAgICAgIAkJJHRoaXMtPkdldE9wdGlvbignbGFiZWwnLCcnKSwyNSwyNTUpKSwKICAgICAgICAgICAgYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfY2hlY2tlZF92YWx1ZScpLAogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9jaGVja2VkX3ZhbHVlJywKICAgICAgICAgICAgCQkkdGhpcy0+R2V0T3B0aW9uKCdjaGVja2VkX3ZhbHVlJywkbW9kLT5MYW5nKCd2YWx1ZV9jaGVja2VkJykpLDI1LDI1NSkpLAogICAgICAgICAgICBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV91bmNoZWNrZWRfdmFsdWUnKSwKICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfdW5jaGVja2VkX3ZhbHVlJywKICAgICAgICAgICAgCQkkdGhpcy0+R2V0T3B0aW9uKCd1bmNoZWNrZWRfdmFsdWUnLCRtb2QtPkxhbmcoJ3ZhbHVlX3VuY2hlY2tlZCcpKSwyNSwyNTUpKSwKCQkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZGVmYXVsdF9zZXQnKSwKCQkJCSRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfaXNfY2hlY2tlZCcsICcxJywgJHRoaXMtPkdldE9wdGlvbignaXNfY2hlY2tlZCcsJzAnKSkpCgkJCQkpOwoJCSRhZHYgPSBhcnJheSgKCQkpOwoJCXJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLCdhZHYnPT4kYWR2KTsKCX0KCglmdW5jdGlvbiBWYWxpZGF0ZSgpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHJlc3VsdCA9IHRydWU7CgkJJG1lc3NhZ2UgPSAnJzsKCgkJc3dpdGNoICgkdGhpcy0+VmFsaWRhdGlvblR5cGUpCgkJICB7CgkJICAJICAgY2FzZSAnbm9uZSc6CgkJICAJICAgICAgIGJyZWFrOwoJCSAgCSAgIGNhc2UgJ2NoZWNrZWQnOgoJCSAgCSAgICAgICBpZiAoJHRoaXMtPlZhbHVlID09PSBmYWxzZSkKCQkgIAkgICAgICAgICAgIHsKCQkgIAkgICAgICAgICAgICRyZXN1bHQgPSBmYWxzZTsKCQkgIAkgICAgICAgICAgICRtZXNzYWdlID0gJG1vZC0+TGFuZygneW91X211c3RfY2hlY2snLCR0aGlzLT5HZXRPcHRpb24oJ2xhYmVsJywnJykpOwoJCSAgCSAgICAgICAgICAgfQoJCSAgCSAgICAgICBicmVhazsKCQkgIH0KCQlyZXR1cm4gYXJyYXkoJHJlc3VsdCwgJG1lc3NhZ2UpOwoJfQoKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/CheckboxGroupField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkNoZWNrYm94R3JvdXBGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCgl2YXIgJGJveENvdW50OwoJdmFyICRib3hBZGQ7CgkKCWZ1bmN0aW9uIGZiQ2hlY2tib3hHcm91cEZpZWxkKCYkZm9ybV9wdHIsICYkcGFyYW1zKQoJewogICAgICAgICR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgICAgICRtb2QgPSAmJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gJ0NoZWNrYm94R3JvdXBGaWVsZCc7CgkJJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwoJCSR0aGlzLT5IYXNBZGRPcCA9IHRydWU7CgkJJHRoaXMtPkhhc0RlbGV0ZU9wID0gdHJ1ZTsKCQkkdGhpcy0+Tm9uUmVxdWlyYWJsZUZpZWxkID0gdHJ1ZTsKCQkkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoCiAgICAgICAgICAgICk7CiAgICAgICAgJHRoaXMtPmJveEFkZCA9IDA7CiAgICAgICAgJHRoaXMtPmhhc011bHRpcGxlRm9ybUNvbXBvbmVudHMgPSB0cnVlOwogICAgICAgICR0aGlzLT5zb3J0YWJsZSA9IGZhbHNlOwoJfQoKCWZ1bmN0aW9uIGNvdW50Qm94ZXMoKQoJewoJCQkkdG1wID0gJiR0aGlzLT5HZXRPcHRpb25SZWYoJ2JveF9uYW1lJyk7CgkJCWlmIChpc19hcnJheSgkdG1wKSkKCQkJCXsKCSAgICAgICAgCSR0aGlzLT5ib3hDb3VudCA9IGNvdW50KCR0bXApOwoJICAgICAgICAJfQoJICAgICAgICBlbHNlaWYgKCR0bXAgIT09IGZhbHNlKQoJICAgICAgICAJewoJICAgICAgICAJJHRoaXMtPmJveENvdW50ID0gMTsKCSAgICAgICAgCX0KCSAgICAgICAgZWxzZQoJICAgICAgICAJewoJICAgICAgICAJJHRoaXMtPmJveENvdW50ID0gMDsKCSAgICAgICAgCX0KCX0KCiAgICBmdW5jdGlvbiBTdGF0dXNJbmZvKCkKCXsKICAgICAgICAkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkdGhpcy0+Y291bnRCb3hlcygpOwoJCSRyZXQgPSAkbW9kLT5MYW5nKCdib3hlcycsJHRoaXMtPmJveENvdW50KTsKCQlpZiAoc3RybGVuKCR0aGlzLT5WYWxpZGF0aW9uVHlwZSk+MCkKCQkgIHsKCQkgIAkkcmV0IC49ICIsICIuYXJyYXlfc2VhcmNoKCR0aGlzLT5WYWxpZGF0aW9uVHlwZSwkdGhpcy0+VmFsaWRhdGlvblR5cGVzKTsKCQkgIH0KCQkgcmV0dXJuICRyZXQ7Cgl9CgoJZnVuY3Rpb24gR2V0T3B0aW9uQWRkQnV0dG9uKCkKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQlyZXR1cm4gJG1vZC0+TGFuZygnYWRkX2NoZWNrYm94ZXMnKTsKCX0KCglmdW5jdGlvbiBHZXRPcHRpb25EZWxldGVCdXR0b24oKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCXJldHVybiAkbW9kLT5MYW5nKCdkZWxldGVfY2hlY2tib3hlcycpOwoJfQoKCWZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRuYW1lcyA9ICYkdGhpcy0+R2V0T3B0aW9uUmVmKCdib3hfbmFtZScpOwoJCSRpc19zZXQgPSAmJHRoaXMtPkdldE9wdGlvblJlZignYm94X2lzX3NldCcpOwoJCWlmICghIGlzX2FycmF5KCRuYW1lcykpCgkJCXsKCQkJJG5hbWVzID0gYXJyYXkoJG5hbWVzKTsKCQkJfQkKCQlpZiAoISBpc19hcnJheSgkaXNfc2V0KSkKCQkJewoJCQkkaXNfc2V0ID0gYXJyYXkoJGlzX3NldCk7CgkJCX0KCQkkZmllbGREaXNwID0gYXJyYXkoKTsKCQlmb3IgKCRpPTA7JGk8Y291bnQoJG5hbWVzKTskaSsrKQoJCQl7CgkJCSRsYWJlbCA9ICcnOwoJCQkkdGhpc0JveCA9IG5ldyBzdGRDbGFzcygpOwoJCQlpZiAoc3RybGVuKCRuYW1lc1skaV0pID4gMCkKCQkJCXsKCQkJCSR0aGlzQm94LT5uYW1lID0gJzxsYWJlbCBmb3I9IicuJGlkLidmYnJwX18nLiR0aGlzLT5JZC4nXycuJGkuJyI+Jy4kbmFtZXNbJGldLic8L2xhYmVsPic7CgkJCQkkdGhpc0JveC0+dGl0bGUgPSAkbmFtZXNbJGldOwoJCQkJfQoJCQkkY2hlY2tfdmFsID0gZmFsc2U7CgkJCWlmICgkdGhpcy0+VmFsdWUgIT09IGZhbHNlKQoJCQkJewoJCQkJJGNoZWNrX3ZhbCA9ICR0aGlzLT5GaW5kQXJyYXlWYWx1ZSgkaSk7CgkJCQl9CgkJCWVsc2UKCQkJCXsKCQkJCWlmIChpc3NldCgkaXNfc2V0WyRpXSkgJiYgJGlzX3NldFskaV0gPT0gJ3knKQoJCQkJCXsKCQkJCQkkY2hlY2tfdmFsID0gdHJ1ZTsKCQkJCQl9CgkJCQl9CgkJCSR0aGlzQm94LT5pbnB1dCA9ICRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQuJ1tdJywgJGksCgkJCQkkY2hlY2tfdmFsICE9PSBmYWxzZT8kaTonLTEnLCcgaWQ9IicuJGlkLidmYnJwX18nLiR0aGlzLT5JZC4nXycuJGkuJyInKTsKCQkJYXJyYXlfcHVzaCgkZmllbGREaXNwLCAkdGhpc0JveCk7CgkJCX0JCQkKCQlyZXR1cm4gJGZpZWxkRGlzcDsKCX0KCglmdW5jdGlvbiBHZXRIdW1hblJlYWRhYmxlVmFsdWUoKQoJewoJCSRmb3JtID0gJiR0aGlzLT5mb3JtX3B0cjsKCQkkbmFtZXMgPSAmJHRoaXMtPkdldE9wdGlvblJlZignYm94X25hbWUnKTsKCQlpZiAoISBpc19hcnJheSgkbmFtZXMpKQoJCQl7CgkJCQkkbmFtZXMgPSBhcnJheSgkbmFtZXMpOwoJCQl9CQkKCQkkY2hlY2tlZCA9ICYkdGhpcy0+R2V0T3B0aW9uUmVmKCdib3hfY2hlY2tlZCcpOwoJCWlmICghIGlzX2FycmF5KCRjaGVja2VkKSkKCQkJewoJCQkJJGNoZWNrZWQgPSBhcnJheSgkY2hlY2tlZCk7CgkJCX0KCQkkdW5jaGVja2VkID0gJiR0aGlzLT5HZXRPcHRpb25SZWYoJ2JveF91bmNoZWNrZWQnKTsKCQlpZiAoISBpc19hcnJheSgkdW5jaGVja2VkKSkKCQkJewoJCQkJJHVuY2hlY2tlZCA9IGFycmF5KCR1bmNoZWNrZWQpOwoJCQl9CgkJJGZpZWxkUmV0ID0gYXJyYXkoKTsKCQlmb3IgKCRpPTA7JGk8Y291bnQoJG5hbWVzKTskaSsrKQoJCQl7CgkJCQlpZiAoJHRoaXMtPkZpbmRBcnJheVZhbHVlKCRpKSA9PT0gZmFsc2UpCgkJCQkJewoJCQkJCQlpZiggaXNzZXQoJHVuY2hlY2tlZFskaV0pICYmIHRyaW0oJHVuY2hlY2tlZFskaV0pICE9ICcnICkKCQkJCQkJCSRmaWVsZFJldFtdID0gJHVuY2hlY2tlZFskaV07CgkJCQkJfQoJCQkJZWxzZQoJCQkJCXsKCQkJCQkJaWYoIGlzc2V0KCRjaGVja2VkWyRpXSkgJiYgdHJpbSgkY2hlY2tlZFskaV0pICE9ICcnICkKCQkJCQkJCSRmaWVsZFJldFtdID0gJGNoZWNrZWRbJGldOwoJCQkJCX0KCQkJfQoJCXJldHVybiBqb2luKCRmb3JtLT5HZXRBdHRyKCdsaXN0X2RlbGltaXRlcicsJywnKSwkZmllbGRSZXQpOwkJCQoJfQoKCglmdW5jdGlvbiBEb09wdGlvbkFkZCgmJHBhcmFtcykKCXsKCQkkdGhpcy0+Ym94QWRkID0gMTsKCX0KCglmdW5jdGlvbiBEb09wdGlvbkRlbGV0ZSgmJHBhcmFtcykKCXsKCQkkZGVsY291bnQgPSAwOwoJCWZvcmVhY2ggKCRwYXJhbXMgYXMgJHRoaXNLZXk9PiR0aGlzVmFsKQoJCQl7CgkJCWlmIChzdWJzdHIoJHRoaXNLZXksMCw5KSA9PSAnZmJycF9kZWxfJykKCQkJCXsKCQkJCSR0aGlzLT5SZW1vdmVPcHRpb25FbGVtZW50KCdib3hfbmFtZScsICR0aGlzVmFsIC0gJGRlbGNvdW50KTsKCQkJCSR0aGlzLT5SZW1vdmVPcHRpb25FbGVtZW50KCdib3hfY2hlY2tlZCcsICR0aGlzVmFsIC0gJGRlbGNvdW50KTsKCQkJCSR0aGlzLT5SZW1vdmVPcHRpb25FbGVtZW50KCdib3hfdW5jaGVja2VkJywgJHRoaXNWYWwgLSAkZGVsY291bnQpOwoJCQkJJHRoaXMtPlJlbW92ZU9wdGlvbkVsZW1lbnQoJ2JveF9pc19zZXQnLCAkdGhpc1ZhbCAtICRkZWxjb3VudCk7CgkJCQkkZGVsY291bnQrKzsKCQkJCX0KCQkJfQoJfQoKCglmdW5jdGlvbiBQcmVQb3B1bGF0ZUFkbWluRm9ybSgkZm9ybURlc2NyaXB0b3IpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHllc05vID0gYXJyYXkoJG1vZC0+TGFuZygnbm8nKT0+J24nLCRtb2QtPkxhbmcoJ3llcycpPT4neScpOwoKCQkkdGhpcy0+Y291bnRCb3hlcygpOwoJCWlmICgkdGhpcy0+Ym94QWRkID4gMCkKCQkJewoJCQkkdGhpcy0+Ym94Q291bnQgKz0gJHRoaXMtPmJveEFkZDsKCQkJJHRoaXMtPmJveEFkZCA9IDA7CgkJCX0KCQkkYm94ZXMgPSAnPHRhYmxlIGNsYXNzPSJtb2R1bGVfZmJfdGFibGUiPjx0cj48dGg+Jy4kbW9kLT5MYW5nKCd0aXRsZV9jaGVja2JveF9sYWJlbCcpLic8L3RoPjx0aD4nLgoJCQkkbW9kLT5MYW5nKCd0aXRsZV9jaGVja2VkX3ZhbHVlJykuJzwvdGg+PHRoPicuCgkJCSRtb2QtPkxhbmcoJ3RpdGxlX3VuY2hlY2tlZF92YWx1ZScpLic8L3RoPjx0aD4nLgoJCQkkbW9kLT5MYW5nKCd0aXRsZV9kZWZhdWx0X3NldCcpLic8L3RoPjx0aD4nLgoJCQkkbW9kLT5MYW5nKCd0aXRsZV9kZWxldGUnKS4nPC90aD48L3RyPic7CgoKCQlmb3IgKCRpPTA7JGk8KCR0aGlzLT5ib3hDb3VudD4xPyR0aGlzLT5ib3hDb3VudDoxKTskaSsrKQoJCQl7CgkJCSRib3hlcyAuPSAnPHRyPjx0ZD4nLgogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9ib3hfbmFtZVtdJywkdGhpcy0+R2V0T3B0aW9uRWxlbWVudCgnYm94X25hbWUnLCRpKSwyNSwxMjgpLgogICAgICAgICAgICAJCSc8L3RkPjx0ZD4nLgogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9ib3hfY2hlY2tlZFtdJywkdGhpcy0+R2V0T3B0aW9uRWxlbWVudCgnYm94X2NoZWNrZWQnLCRpKSwyNSwxMjgpLgogICAgICAgICAgICAJCSc8L3RkPjx0ZD4nLgogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9ib3hfdW5jaGVja2VkW10nLCR0aGlzLT5HZXRPcHRpb25FbGVtZW50KCdib3hfdW5jaGVja2VkJywkaSksMjUsMTI4KS4KICAgICAgICAgICAgCQknPC90ZD48dGQ+Jy4gICAgICAgICAgICAJCSAgICAKICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2JveF9pc19zZXRbXScsICR5ZXNObywgLTEsICR0aGlzLT5HZXRPcHRpb25FbGVtZW50KCdib3hfaXNfc2V0JywkaSkpLgogICAgICAgICAgICAJCQogICAgICAgICAgICAJCQogICAgICAgICAgICAJCSc8L3RkPjx0ZD4nLgovL0NyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAkbmFtZSwgJHZhbHVlPScnLCAkc2VsZWN0ZWR2YWx1ZT0nJywKICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dENoZWNrYm94KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfZGVsXycuJGksICRpLC0xKS4KICAgICAgICAgICAgIAkJJzwvdGQ+PC90cj4nOwoJCQl9CgkJJGJveGVzIC49ICc8L3RhYmxlPic7CgkJJG1haW4gPSBhcnJheSgKCQkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfY2hlY2tib3hfZGV0YWlscycpLCRib3hlcykKCQkpOwoJCSRhZHYgPSBhcnJheSgpOwoJCXJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLCdhZHYnPT4kYWR2KTsKCX0KCglmdW5jdGlvbiBQb3N0UG9wdWxhdGVBZG1pbkZvcm0oJiRtYWluQXJyYXksICYkYWR2QXJyYXkpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJLy8gcmVtb3ZlIHRoZSAicmVxdWlyZWQiIGZpZWxkLCBzaW5jZSB0aGlzIGNhbiBvbmx5IGJlIGRvbmUgdmlhIHZhbGlkYXRpb24KCQkkcmVxSW5kZXggPSAtMTsKCQlmb3IgKCRpPTA7JGk8Y291bnQoJG1haW5BcnJheSk7JGkrKykKCQkJewoJCQlpZiAoJG1haW5BcnJheVskaV0tPnRpdGxlID09ICRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkJykpCgkJCQl7CgkJCQkkcmVxSW5kZXggPSAkaTsKCQkJCX0KCQkJfQoJCWlmICgkcmVxSW5kZXggIT0gLTEpCgkJCXsKCQkJYXJyYXlfc3BsaWNlKCRtYWluQXJyYXksICRyZXFJbmRleCwxKTsKCQkJfQoJfQoKCglmdW5jdGlvbiBQb3N0QWRtaW5TdWJtaXRDbGVhbnVwKCkKCXsKCQkkbmFtZXMgPSAmJHRoaXMtPkdldE9wdGlvblJlZignYm94X25hbWUnKTsKCQkkY2hlY2tlZCA9ICYkdGhpcy0+R2V0T3B0aW9uUmVmKCdib3hfY2hlY2tlZCcpOwoJCSR1bmNoZWNrZWQgPSAmJHRoaXMtPkdldE9wdGlvblJlZignYm94X3VuY2hlY2tlZCcpOwoJCSRpc19zZXQgPSAmJHRoaXMtPkdldE9wdGlvblJlZignYm94X2lzX3NldCcpOwoJCWZvciAoJGk9MDskaTxjb3VudCgkbmFtZXMpOyRpKyspCgkJCXsKCQkJaWYgKCRuYW1lc1skaV0gPT0gJycgJiYgJGNoZWNrZWRbJGldID09ICcnICkKCQkJCXsKCQkJCSR0aGlzLT5SZW1vdmVPcHRpb25FbGVtZW50KCdib3hfbmFtZScsICRpKTsKCQkJCSR0aGlzLT5SZW1vdmVPcHRpb25FbGVtZW50KCdib3hfY2hlY2tlZCcsICRpKTsKCQkJCSR0aGlzLT5SZW1vdmVPcHRpb25FbGVtZW50KCdib3hfdW5jaGVja2VkJywgJGkpOwoJCQkJJHRoaXMtPlJlbW92ZU9wdGlvbkVsZW1lbnQoJ2JveF9pc19zZXQnLCAkaSk7CgkJCQkkaS0tOwoJCQkJfQoJCQl9CgkJJHRoaXMtPmNvdW50Qm94ZXMoKTsKCX0KCn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/ComputedField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyoKICAgRm9ybUJ1aWxkZXIuIENvcHlyaWdodCAoYykgMjAwNS0yMDA3IFNhbXVlbCBHb2xkc3RlaW4gPHNqZ0BjbXNtb2R1bGVzLmNvbT4KICAgTW9yZSBpbmZvIGF0IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvZm9ybWJ1aWxkZXIKICAgCiAgIEEgTW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUsIENvcHlyaWdodCAoYykgMjAwNyBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiAgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKKi8KCmNsYXNzIGZiQ29tcHV0ZWRGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIAp7CgogIGZ1bmN0aW9uIGZiQ29tcHV0ZWRGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKICB7CiAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICRtb2QgPSAmJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgJHRoaXMtPlR5cGUgPSAnQ29tcHV0ZWRGaWVsZCc7CiAgICAkdGhpcy0+RGlzcGxheUluRm9ybSA9IGZhbHNlOwogICAgJHRoaXMtPkRpc3BsYXlJblN1Ym1pc3Npb24gPSB0cnVlOwogICAgJHRoaXMtPk5vblJlcXVpcmFibGVGaWVsZCA9IHRydWU7CiAgICAkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoKTsKICAgICR0aGlzLT5IYXNMYWJlbCA9IDE7CiAgICAkdGhpcy0+TmVlZHNEaXYgPSAwOwogICAgJHRoaXMtPnNvcnRhYmxlID0gZmFsc2U7CiAgICAkdGhpcy0+SXNDb21wdXRlZE9uU3VibWlzc2lvbiA9IHRydWU7CiAgfQoKICAgIGZ1bmN0aW9uIENvbXB1dGVPcmRlcigpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5HZXRPcHRpb24oJ29yZGVyJywnMScpOyAgICAKICAgIH0KCiAgICBmdW5jdGlvbiBDb21wdXRlKCkKICAgIHsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICAgICAkb3RoZXJzID0gJiR0aGlzLT5mb3JtX3B0ci0+R2V0RmllbGRzKCk7CgogICAgICAgICRtYXBJZCA9IGFycmF5KCk7CgogICAgICAgIGZvcigkaT0wOyRpPGNvdW50KCRvdGhlcnMpOyRpKyspCiAgICAgICAgICAgIHsKCSAgICAgICAgJG1hcElkWyRvdGhlcnNbJGldLT5HZXRJZCgpXSA9ICRpOwogICAgICAgICAgICB9CgogICAgICAgICRmbGRzID0gYXJyYXkoKTsKICAgICAgICAkcHJvY3N0ciA9ICR0aGlzLT5HZXRPcHRpb24oJ3ZhbHVlJywnJyk7CiAgICAgICAgcHJlZ19tYXRjaF9hbGwoJy9cJGZsZF8oXGQrKS8nLCAkcHJvY3N0ciwgJGZsZHMpOwogICAgICAgIAogICAgICAgIGlmICgkdGhpcy0+R2V0T3B0aW9uKCdzdHJpbmdfb3JfbnVtYmVyX2V2YWwnLCdudW1lcmljJykgPT0gJ251bWVyaWMnKQogICAgICAgICAgICB7CiAgICAgICAgICAgIGZvcmVhY2ggKCRmbGRzWzFdIGFzICR0RikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGlmIChpc3NldCgkbWFwSWRbJHRGXSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICRyZWYgPSAkbWFwSWRbJHRGXTsKICAgICAgICAgICAgICAgICAgICBpZiAoaXNfbnVtZXJpYygkb3RoZXJzWyRyZWZdLT5HZXRWYWx1ZSgpKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAkcHJvY3N0ciA9IHN0cl9yZXBsYWNlKCckZmxkXycuJHRGLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJG90aGVyc1skcmVmXS0+R2V0VmFsdWUoKSwkcHJvY3N0cik7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgJHByb2NzdHIgPSBzdHJfcmVwbGFjZSgnJGZsZF8nLiR0RiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcwJywkcHJvY3N0cik7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIAogICAgICAgICAgICAkc3RyVG9FdmFsID0gIlwkdGhpcy0+VmFsdWU9JHByb2NzdHI7IjsKICAgICAgICAgICAgLy8gc2VlIGlmIHdlIGNhbiB0cmFwIGFuIGVycm9yCiAgICAgICAgICAgIC8vIHRoaXMgaXMgYWxsIHZ1bG5lcmFibGUgdG8gYW4gZXZpbCBmb3JtIGRlc2lnbmVyLCBidXQKICAgICAgICAgICAgLy8gbm90IGFuIGV2aWwgZm9ybSB1c2VyLiAKICAgICAgICAgICAgb2Jfc3RhcnQoKTsKCQkJaWYgKGV2YWwoJ2Z1bmN0aW9uIHRlc3RjZmllbGQnLnJhbmQoKS4KCQkJICAgICcoKSB7Jy4kc3RyVG9FdmFsLid9JykgPT09IEZBTFNFKQoJCQkgICAgewoJCQkgICAgJHRoaXMtPlZhbHVlID0gJG1vZC0+TGFuZygndGl0bGVfYmFkX2Z1bmN0aW9uJywkcHJvY3N0cik7CgkJCSAgICB9CgkJCWVsc2UKCQkJICAgIHsKCQkJICAgIGV2YWwoJHN0clRvRXZhbCk7CgkJCSAgICB9IAoJCQlvYl9lbmRfY2xlYW4oKTsKICAgICAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAkdGhpc1ZhbHVlID0gJyc7CiAgICAgICAgICAgIGZvcmVhY2ggKCRmbGRzWzFdIGFzICR0RikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGlmIChpc3NldCgkbWFwSWRbJHRGXSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICRyZWYgPSAkbWFwSWRbJHRGXTsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+VmFsdWUgLj0gJG90aGVyc1skcmVmXS0+R2V0VmFsdWUoKS4nICc7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAKICAgIH0KCgoJZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRwcm9jZXNzVHlwZSA9IGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX251bWVyaWMnKT0+J251bWVyaWMnLAoJCSAgICAkbW9kLT5MYW5nKCd0aXRsZV9zdHJpbmcnKT0+J3N0cmluZycpOwoJCQoJCSRyZXQgPSAnPHRhYmxlIGNsYXNzPSJtb2R1bGVfZmJfbGVnZW5kIj48dHI+PHRoIGNvbHNwYW49IjIiPicuJG1vZC0+TGFuZygnaGVscF92YXJpYWJsZXNfZm9yX2NvbXB1dGF0aW9uJykuJzwvdGg+PC90cj4nOwogICAgICAgICRyZXQgLj0gJzx0cj48dGg+Jy4kbW9kLT5MYW5nKCdoZWxwX3BocF92YXJpYWJsZV9uYW1lJykuJzwvdGg+PHRoPicuJG1vZC0+TGFuZygnaGVscF9mb3JtX2ZpZWxkJykuJzwvdGg+PC90cj4nOwogICAgICAgICRvZGQgPSBmYWxzZTsKCiAgICAgICAgJG90aGVycyA9ICYkdGhpcy0+Zm9ybV9wdHItPkdldEZpZWxkcygpOwogICAgICAgIGZvcigkaT0wOyRpPGNvdW50KCRvdGhlcnMpOyRpKyspCiAgICAgICAgICAgIHsKICAgICAgICAgICAgaWYgKCEgJG90aGVyc1skaV0tPkhhc011bHRpcGxlRm9ybUNvbXBvbmVudHMoKSkKICAgICAgICAgICAgICAgIHsKCSAgICAgICAgICAgICRyZXQgLj0gJzx0cj48dGQgY2xhc3M9IicuKCRvZGQ/J29kZCc6J2V2ZW4nKS4KCSAgICAgICAgICAgICAgICAnIj4kZmxkXycuJG90aGVyc1skaV0tPkdldElkKCkuCgkgICAgICAgICAgICAgICAgJzwvdGQ+PHRkIGNsYXNzPSInLigkb2RkPydvZGQnOidldmVuJykuCgkgICAgICAgICAgICAgICAgJyI+JyAuJG90aGVyc1skaV0tPkdldE5hbWUoKSAuICc8L3RkPjwvdHI+JzsKCSAgICAgICAgICAgIH0KCSAgCSAgICAkb2RkID0gISAkb2RkOwoJICAgICAgICB9CgkgICAgJHJldCAuPSAnPHRyPjx0ZCBjb2xzcGFuPSIyIj4nLiRtb2QtPkxhbmcoJ29wZXJhdG9yc19oZWxwJykgLgoJICAgICAgICAnPC90ZD48L3RyPjwvdGFibGU+JzsKCQkKCQkkbWFpbiA9IGFycmF5KAoJCQkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfY29tcHV0ZV92YWx1ZScpLAogICAgICAgICAgICAJCWFycmF5KCRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF92YWx1ZScsJHRoaXMtPkdldE9wdGlvbigndmFsdWUnLCcnKSwzNSwxMDI0KSwkcmV0KSksCgkJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9zdHJpbmdfb3JfbnVtYmVyX2V2YWwnKSwKCQkJCSRtb2QtPkNyZWF0ZUlucHV0UmFkaW9Hcm91cCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9zdHJpbmdfb3JfbnVtYmVyX2V2YWwnLAoJCQkJICAgICRwcm9jZXNzVHlwZSwKCQkJCSAgICAkdGhpcy0+R2V0T3B0aW9uKCdzdHJpbmdfb3JfbnVtYmVyX2V2YWwnLCdudW1lcmljJykpKSwKCQkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX29yZGVyJyksCgkJCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLAoJCQkJICAgICdmYnJwX29wdF9vcmRlcicsJHRoaXMtPkdldE9wdGlvbignb3JkZXInLCcxJyksNSwxMCkuCgkJCQkgICAgJG1vZC0+TGFuZygndGl0bGVfb3JkZXJfaGVscCcpKQoJCSk7CgkJJGFkdiA9IGFycmF5KAoJCSk7CgkJcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwoJfQoKCn0KCj8+Cg==]]></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+TGFuZygnc2VsZWN0X29uZScpPT4nJyksJHRoaXMtPkNvdW50cmllcyk7CgkJCX0KCgkJaWYgKCEgJHRoaXMtPkhhc1ZhbHVlKCkgJiYgJHRoaXMtPkdldE9wdGlvbignZGVmYXVsdCcsJycpICE9ICcnKQoJCSAgewoJCSAgJHRoaXMtPlNldFZhbHVlKCR0aGlzLT5HZXRPcHRpb24oJ2RlZmF1bHQnLCcnKSk7CgkJICB9CgoJCXJldHVybiAkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ2ZicnBfXycuJHRoaXMtPklkLCAkdGhpcy0+Q291bnRyaWVzLCAtMSwgJHRoaXMtPlZhbHVlLCAnaWQ9IicuJGlkLiAnXycuJHRoaXMtPklkLiciJyk7Cgl9CgoJZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCWtzb3J0KCR0aGlzLT5Db3VudHJpZXMpOwoKCQkkbWFpbiA9IGFycmF5KAoJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9zZWxlY3RfZGVmYXVsdF9jb3VudHJ5JyksCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9kZWZhdWx0JywKICAgICAgICAgICAgCQkkdGhpcy0+Q291bnRyaWVzLCAtMSwgJHRoaXMtPkdldE9wdGlvbignZGVmYXVsdCcsJycpKSksCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3NlbGVjdF9vbmVfbWVzc2FnZScpLAogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9zZWxlY3Rfb25lJywKICAgICAgICAgICAgCQkkdGhpcy0+R2V0T3B0aW9uKCdzZWxlY3Rfb25lJywkbW9kLT5MYW5nKCdzZWxlY3Rfb25lJykpKSkKCQkpOwoJCXJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLGFycmF5KCkpOwoJfQoKCn0KCj8+Cg==]]></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+TGFuZygnZGF0ZV9vY3RvYmVyJyk9PjEwLAogICAgICAgICAgICAkbW9kLT5MYW5nKCdkYXRlX25vdmVtYmVyJyk9PjExLAogICAgICAgICAgICAkbW9kLT5MYW5nKCdkYXRlX2RlY2VtYmVyJyk9PjEyKTsKICAgICR0aGlzLT5oYXNNdWx0aXBsZUZvcm1Db21wb25lbnRzID0gdHJ1ZTsKICAgICR0aGlzLT5sYWJlbFN1YkNvbXBvbmVudHMgPSBmYWxzZTsKCX0KCgogICAgZnVuY3Rpb24gU3RhdHVzSW5mbygpCgl7CiAgICAgICRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgICAkdG9kYXkgPSBnZXRkYXRlKCk7CgkJcmV0dXJuICRtb2QtPkxhbmcoImRhdGVfcmFuZ2UiLGFycmF5KCR0aGlzLT5HZXRPcHRpb24oJ3N0YXJ0X3llYXInLCgkdG9kYXlbJ3llYXInXS0xMCkpICwKICAgICAgICAgJHRoaXMtPkdldE9wdGlvbignZW5kX3llYXInLCgkdG9kYXlbJ3llYXInXSsxMCkpKSkuCiAgICAgICAgICgkdGhpcy0+R2V0T3B0aW9uKCdkZWZhdWx0X3llYXInLCctMScpIT09Jy0xJz8nICgnLiR0aGlzLT5HZXRPcHRpb24oJ2RlZmF1bHRfeWVhcicsJy0xJykuJyknOicnKTsKCX0KCgoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAgICAkdG9kYXkgPSBnZXRkYXRlKCk7CiAgICAgICAkRGF5cyA9IGFycmF5KCk7CiAgICAgICBmb3IgKCRpPTE7JGk8MzI7JGkrKykKICAgICAgICAgewogICAgICAgICAJJERheXNbJGldPSRpOwogICAgICAgICB9CiAgICAgICAkWWVhciA9IGFycmF5KCk7CiAgICAgICBmb3IgKCRpPSR0aGlzLT5HZXRPcHRpb24oJ3N0YXJ0X3llYXInLCgkdG9kYXlbJ3llYXInXS0xMCkpOyRpPCR0aGlzLT5HZXRPcHRpb24oJ2VuZF95ZWFyJywoJHRvZGF5Wyd5ZWFyJ10rMTApKSsxOyRpKyspCiAgICAgICAgIHsKICAgICAgICAgCSRZZWFyWyRpXT0kaTsKICAgICAgICAgfQoJCWlmICgkdGhpcy0+SGFzVmFsdWUoKSkKCQkJewoJCQkkdG9kYXlbJ21kYXknXSA9ICR0aGlzLT5HZXRBcnJheVZhbHVlKDApOwoJCQkkdG9kYXlbJ21vbiddID0gJHRoaXMtPkdldEFycmF5VmFsdWUoMSk7CgkJCSR0b2RheVsneWVhciddID0gJHRoaXMtPkdldEFycmF5VmFsdWUoMik7CQkJCgkJCX0KCQllbHNlIGlmICgkdGhpcy0+R2V0T3B0aW9uKCdkZWZhdWx0X3llYXInLCctMScpICE9ICctMScpCgkJICAgewogICAgICAgICAkdG9kYXlbJ3llYXInXSA9ICR0aGlzLT5HZXRPcHRpb24oJ2RlZmF1bHRfeWVhcicsJy0xJyk7CiAgICAgICAgIH0KCiAgICAgICRyZXQgPSBhcnJheSgpOwogICAgICAkZGF5ID0gbmV3IHN0ZENsYXNzKCk7CiAgICAgICRkYXktPmlucHV0ID0gJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICdmYnJwX18nLiR0aGlzLT5JZC4nW10nLCAkRGF5cywgLTEsICR0b2RheVsnbWRheSddLCAnaWQ9IicuJGlkLiAnXycuJHRoaXMtPklkLidfMSInKTsKIAkJJGRheS0+dGl0bGUgPSAkbW9kLT5MYW5nKCdkYXknKTsKIAkJJGRheS0+bmFtZSA9ICc8bGFiZWwgZm9yPSInLiRpZC4nXycuJHRoaXMtPklkLidfMSI+Jy4kbW9kLT5MYW5nKCdkYXknKS4nPC9sYWJlbD4nOwogCQlhcnJheV9wdXNoKCRyZXQsICRkYXkpOwoKICAgICAgJG1vbiA9IG5ldyBzdGRDbGFzcygpOwogICAgICAkbW9uLT5pbnB1dCA9ICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQuJ1tdJywgJHRoaXMtPk1vbnRocywgLTEsICR0b2RheVsnbW9uJ10sICdpZD0iJy4kaWQuICdfJy4kdGhpcy0+SWQuJ18yIicpOwogCQkkbW9uLT50aXRsZSA9ICRtb2QtPkxhbmcoJ21vbicpOwogCQkkbW9uLT5uYW1lID0gJzxsYWJlbCBmb3I9IicuJGlkLidfJy4kdGhpcy0+SWQuJ18yIj4nLiRtb2QtPkxhbmcoJ21vbicpLic8L2xhYmVsPic7CiAJCWFycmF5X3B1c2goJHJldCwgJG1vbik7CgogICAgICAkeXIgPSBuZXcgc3RkQ2xhc3MoKTsKICAgICAgJHlyLT5pbnB1dCA9ICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQuJ1tdJywgJFllYXIsIC0xLCAkdG9kYXlbJ3llYXInXSwnaWQ9IicuJGlkLiAnXycuJHRoaXMtPklkLidfMyInKTsKICAgICAgJHlyLT5uYW1lID0gJzxsYWJlbCBmb3I9IicuJGlkLidfJy4kdGhpcy0+SWQuJ18zIj4nLiRtb2QtPkxhbmcoJ3llYXInKS4nPC9sYWJlbD4nOwogICAgICAkeXItPnRpdGxlID0gJG1vZC0+TGFuZygneWVhcicpOwogICAgICBhcnJheV9wdXNoKCRyZXQsJHlyKTsKICAgICAgcmV0dXJuICRyZXQ7Cgl9CgogICBmdW5jdGlvbiBDb21wYXJlVG8oJHZhbCkKICAgewogICAgICAkdGQgPSAwOwogICAgICAkb2QgPSAwOwogICAgICBpZiAoJHRoaXMtPkhhc1ZhbHVlKCkpCgkJCXsKCQkJJHRkID0gbWt0aW1lICggMSwgMSwgMSwgJHRoaXMtPkdldEFycmF5VmFsdWUoMSksICAkdGhpcy0+R2V0QXJyYXlWYWx1ZSgwKSwgJHRoaXMtPkdldEFycmF5VmFsdWUoMikgKTsKCQkJfQoJCSRvID0gJHZhbC0+R2V0VmFsdWUoKTsKICAgICAgaWYgKCRvLT5IYXNWYWx1ZSgpKQoJCQl7CgkJCSRvZCA9IG1rdGltZSAoIDEsIDEsIDEsICRvLT5HZXRBcnJheVZhbHVlKDEpLCAgJG8tPkdldEFycmF5VmFsdWUoMCksICRvLT5HZXRBcnJheVZhbHVlKDIpICk7CgkJCX0KICAgICAgaWYgKCR0ZCA9PSAkb2QpCiAgICAgICAgIHsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIH0KICAgICAgcmV0dXJuICgkdGQgPCAkb2QpID8gLTEgOiAxOwogICB9CgoKCglmdW5jdGlvbiBHZXRIdW1hblJlYWRhYmxlVmFsdWUoKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCWlmICgkdGhpcy0+SGFzVmFsdWUoKSkKCQkJewoJCQkkdGhlRGF0ZSA9IG1rdGltZSAoIDEsIDEsIDEsICR0aGlzLT5HZXRBcnJheVZhbHVlKDEpLCAgJHRoaXMtPkdldEFycmF5VmFsdWUoMCksICR0aGlzLT5HZXRBcnJheVZhbHVlKDIpICk7CgkJCXJldHVybiBkYXRlKCR0aGlzLT5HZXRPcHRpb24oJ2RhdGVmb3JtYXQnLCdqIEYgWScpLCAkdGhlRGF0ZSk7CgkJCX0KCQllbHNlCgkJCXsKCQkJcmV0dXJuICRtb2QtPkxhbmcoJ3Vuc3BlY2lmaWVkJyk7CgkJCX0JCgl9CgoJZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgICAkdG9kYXkgPSBnZXRkYXRlKCk7CgkJJG1haW4gPSBhcnJheSgKCQkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZGF0ZV9mb3JtYXQnKSwKICAgICAgICAgICAgCQlhcnJheSgkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZGF0ZV9mb3JtYXQnLAogICAgICAgICAgICAJCSR0aGlzLT5HZXRPcHRpb24oJ2RhdGVfZm9ybWF0JywnaiBGIFknKSwyNSwyNSksJG1vZC0+TGFuZygnaGVscF9kYXRlX2Zvcm1hdCcpKQoJCSAgICApLAoJCSAgIGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3N0YXJ0X3llYXInKSwKICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfc3RhcnRfeWVhcicsCiAgICAgICAgICAgIAkJICAgICR0aGlzLT5HZXRPcHRpb24oJ3N0YXJ0X3llYXInLCgkdG9kYXlbJ3llYXInXS0xMCkpLDEwLDEwKSksCgkJICAgYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZW5kX3llYXInKSwKICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZW5kX3llYXInLAogICAgICAgICAgICAJCSAgICAkdGhpcy0+R2V0T3B0aW9uKCdlbmRfeWVhcicsKCR0b2RheVsneWVhciddKzEwKSksMTAsMTApKSwKCQkgICBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9kZWZhdWx0X3llYXInKSwKICAgICAgICAgICAgCQlhcnJheSgkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZGVmYXVsdF95ZWFyJywKICAgICAgICAgICAgCQkgICAgJHRoaXMtPkdldE9wdGlvbignZGVmYXVsdF95ZWFyJywnLTEnKSwxMCwxMCksJG1vZC0+TGFuZygndGl0bGVfZGVmYXVsdF95ZWFyX2hlbHAnKSkKICAgICAgICAgKQogICAgICApOwoJCXJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLGFycmF5KCkpOwoJfQoKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionDatabase.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkRpc3Bvc2l0aW9uRGF0YWJhc2UgZXh0ZW5kcyBmYkZpZWxkQmFzZSB7CgoJdmFyICRhcHByb3ZlZEJ5OwoKCWZ1bmN0aW9uIGZiRGlzcG9zaXRpb25EYXRhYmFzZSgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgJHRoaXMtPmZiRmllbGRCYXNlKCRmb3JtX3B0ciwgJHBhcmFtcyk7CiAgICAgICRtb2QgPSAmJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gJ0Rpc3Bvc2l0aW9uRGF0YWJhc2UnOwoJCSR0aGlzLT5Jc0Rpc3Bvc2l0aW9uID0gdHJ1ZTsKCQkkdGhpcy0+Tm9uUmVxdWlyYWJsZUZpZWxkID0gdHJ1ZTsKCQkkdGhpcy0+RGlzcGxheUluRm9ybSA9IHRydWU7CgkJJHRoaXMtPkRpc3BsYXlJblN1Ym1pc3Npb24gPSBmYWxzZTsKCQkkdGhpcy0+SGlkZUxhYmVsID0gMTsKCQkkdGhpcy0+TmVlZHNEaXYgPSAwOwoJCSR0aGlzLT5hcHByb3ZlZEJ5ID0gJyc7CgkJJHRoaXMtPnNvcnRhYmxlID0gZmFsc2U7Cgl9CgoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJaWYgKCR0aGlzLT5WYWx1ZSA9PT0gZmFsc2UpCgkJCXsKCQkJcmV0dXJuICcnOwoJCQl9CgkJcmV0dXJuICRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ2ZicnBfXycuJHRoaXMtPklkLAkKCQkJJHRoaXMtPkVuY29kZVJlcUlkKCR0aGlzLT5WYWx1ZSkpOwoJfQoKCWZ1bmN0aW9uIFNldEFwcHJvdmFsTmFtZSgkbmFtZSkKCXsKCQkkdGhpcy0+YXBwcm92ZWRCeSA9ICRuYW1lOwoJfQoKCWZ1bmN0aW9uIFN0YXR1c0luZm8oKQoJewoJCSByZXR1cm4gJyc7Cgl9CgkKCWZ1bmN0aW9uIERlY29kZVJlcUlkKCR0aGVWYWwpCgl7CgkJJHRtcCA9IGJhc2U2NF9kZWNvZGUoJHRoZVZhbCk7CgkJJHRtcDIgPSBzdHJfcmVwbGFjZShzZXNzaW9uX2lkKCksJycsJHRtcCk7CgkJaWYgKHN1YnN0cigkdG1wMiwwLDEpID09ICdfJykKCQkJewoJCQlyZXR1cm4gc3Vic3RyKCR0bXAyLDEpOwoJCQl9CgkJZWxzZQoJCQl7CgkJCXJldHVybiAtMTsKCQkJfQoJfQoJCglmdW5jdGlvbiBFbmNvZGVSZXFJZCgkcmVxX2lkKQoJewoJCXJldHVybiBiYXNlNjRfZW5jb2RlKHNlc3Npb25faWQoKS4nXycuJHJlcV9pZCk7Cgl9CgkKCQoJZnVuY3Rpb24gU2V0VmFsdWUoJHZhbCkKCXsKCgkJJGRlY3ZhbCA9IGJhc2U2NF9kZWNvZGUoJHZhbCk7CiAgIAoJCWlmICgkdmFsID09PSBmYWxzZSkKCQkJewoJCQkvLyBubyB2YWx1ZSBzZXQsIHNvIHdlJ2xsIGxlYXZlIHZhbHVlIGFzIGZhbHNlCgkJCX0KCQllbHNlaWYgKHN0cnBvcygkZGVjdmFsLCdfJykgPT09IGZhbHNlKQoJCQl7CgkJCS8vIHVuZW5jcnlwdGVkIHZhbHVlLCBjb21pbmcgaW4gZnJvbSBwcmV2aW91cyByZXNwb25zZQoJCQkkdGhpcy0+VmFsdWUgPSAkdmFsOwoJCQl9CgkJZWxzZQoJCQl7CgkJCS8vIGVuY3J5cHRlZCB2YWx1ZSBjb21pbmcgaW4gZnJvbSBhIGZvcm0sIHNvIHdlJ2xsIHVwZGF0ZS4KCQkJJHRoaXMtPlZhbHVlID0gJHRoaXMtPkRlY29kZVJlcUlkKCR2YWwpOwoJCQl9Cgl9CgkKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQlyZXR1cm4gYXJyYXkoKTsKCX0KCglmdW5jdGlvbiBQb3N0UG9wdWxhdGVBZG1pbkZvcm0oJiRtYWluQXJyYXksICYkYWR2QXJyYXkpCgl7CgkJJHRoaXMtPkhpZGRlbkRpc3Bvc2l0aW9uRmllbGRzKCRtYWluQXJyYXksICRhZHZBcnJheSk7Cgl9CgogICAgLy8gV3JpdGUgVG8gdGhlIERhdGFiYXNlCglmdW5jdGlvbiBEaXNwb3NlRm9ybSgkcmV0dXJuaWQpCgl7CgkJJGZvcm0gPSAmJHRoaXMtPmZvcm1fcHRyOwoJCSRmb3JtLT5TdG9yZVJlc3BvbnNlKCgkdGhpcy0+VmFsdWU/JHRoaXMtPlZhbHVlOi0xKSwkdGhpcy0+YXBwcm92ZWRCeSk7CgkJcmV0dXJuIGFycmF5KHRydWUsJycpOwkgICAKCX0KCn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionDeliverToEmailAddressField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCnJlcXVpcmVfb25jZShkaXJuYW1lKF9fRklMRV9fKS4nL0Rpc3Bvc2l0aW9uRW1haWxCYXNlLmNsYXNzLnBocCcpOwoKY2xhc3MgZmJEaXNwb3NpdGlvbkRlbGl2ZXJUb0VtYWlsQWRkcmVzc0ZpZWxkIGV4dGVuZHMgZmJEaXNwb3NpdGlvbkVtYWlsQmFzZSB7CgoJZnVuY3Rpb24gZmJEaXNwb3NpdGlvbkRlbGl2ZXJUb0FkZHJlc3NGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgJHRoaXMtPmZiRGlzcG9zaXRpb25FbWFpbEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgJG1vZCA9ICYkZm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHRoaXMtPlR5cGUgPSAnRGlzcG9zaXRpb25EZWxpdmVyVG9FbWFpbEFkZHJlc3NGaWVsZCc7CiAgICAgICR0aGlzLT5Jc0Rpc3Bvc2l0aW9uID0gdHJ1ZTsKCQkkdGhpcy0+RGlzcGxheUluRm9ybSA9IHRydWU7CgkJJHRoaXMtPlZhbGlkYXRpb25UeXBlcyA9IGFycmF5KAogICAgICAgICAgICAkbW9kLT5MYW5nKCd2YWxpZGF0aW9uX2VtYWlsX2FkZHJlc3MnKT0+J2VtYWlsJywKICAgICAgICAgICAgKTsKICAgICAgJHRoaXMtPlZhbGlkYXRpb25UeXBlID0gJ2VtYWlsJzsKCSAgICR0aGlzLT5tb2RpZmllc090aGVyRmllbGRzID0gZmFsc2U7CgkgICAkdGhpcy0+UmVxdWlyZWQgPSAxOwoJfQoKCWZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCXJldHVybiAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQsCgkJCWh0bWxzcGVjaWFsY2hhcnMoJHRoaXMtPlZhbHVlLCBFTlRfUVVPVEVTKSwKICAgICAgICAgICAyNSwxMjgpOwoJfQoKCWZ1bmN0aW9uIERpc3Bvc2VGb3JtKCkKCXsKCQlyZXR1cm4gJHRoaXMtPlNlbmRGb3JtKCR0aGlzLT5WYWx1ZSwkdGhpcy0+R2V0T3B0aW9uKCdlbWFpbF9zdWJqZWN0JykpOwoJfQoKCglmdW5jdGlvbiBTdGF0dXNJbmZvKCkKCXsKCQlyZXR1cm4gJHRoaXMtPlRlbXBsYXRlU3RhdHVzKCk7Cgl9CgoJZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQoJewoJCWxpc3QoJG1haW4sJGFkdikgPSAkdGhpcy0+UHJlUG9wdWxhdGVBZG1pbkZvcm1CYXNlKCRmb3JtRGVzY3JpcHRvcik7CgkJcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwoJfQoKCglmdW5jdGlvbiBQb3N0UG9wdWxhdGVBZG1pbkZvcm0oJiRtYWluQXJyYXksICYkYWR2QXJyYXkpCgl7CgkJLy8kdGhpcy0+SGlkZGVuRGlzcG9zaXRpb25GaWVsZHMoJG1haW5BcnJheSwgJGFkdkFycmF5LCBmYWxzZSk7Cgl9CgoJZnVuY3Rpb24gVmFsaWRhdGUoKQoJewoKICAJCSR0aGlzLT52YWxpZGF0ZWQgPSB0cnVlOwogIAkJJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQgPSAnJzsKCQkkcmVzdWx0ID0gdHJ1ZTsKCQkkbWVzc2FnZSA9ICcnOwoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgICBpZiAoJHRoaXMtPlZhbHVlICE9PSBmYWxzZSAmJgogICAgICAgICAgICAhIHByZWdfbWF0Y2goKCRtb2QtPkdldFByZWZlcmVuY2UoJ3JlbGF4ZWRfZW1haWxfcmVnZXgnLCcwJyk9PTA/JG1vZC0+ZW1haWxfcmVnZXg6JG1vZC0+ZW1haWxfcmVnZXhfcmVsYXhlZCksICR0aGlzLT5WYWx1ZSkpCiAgICAgICAgIHsKICAgICAgICAgJHRoaXMtPnZhbGlkYXRlZCA9IGZhbHNlOwogICAgICAgICAkdGhpcy0+dmFsaWRhdGlvbkVycm9yVGV4dCA9ICRtb2QtPkxhbmcoJ3BsZWFzZV9lbnRlcl9hbl9lbWFpbCcsJHRoaXMtPk5hbWUpOwogICAgICAgICB9CgoJCXJldHVybiBhcnJheSgkdGhpcy0+dmFsaWRhdGVkLCAkdGhpcy0+dmFsaWRhdGlvbkVycm9yVGV4dCk7Cgl9Cn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionDirector.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpyZXF1aXJlX29uY2UoJ0Rpc3Bvc2l0aW9uRW1haWxCYXNlLmNsYXNzLnBocCcpOwoKY2xhc3MgZmJEaXNwb3NpdGlvbkRpcmVjdG9yIGV4dGVuZHMgZmJEaXNwb3NpdGlvbkVtYWlsQmFzZSB7CgoJdmFyICRhZGRyZXNzQ291bnQ7Cgl2YXIgJGFkZHJlc3NBZGQ7CgoJZnVuY3Rpb24gZmJEaXNwb3NpdGlvbkRpcmVjdG9yKCYkZm9ybV9wdHIsICYkcGFyYW1zKQoJewogICAgICAgJHRoaXMtPmZiRGlzcG9zaXRpb25FbWFpbEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJiRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkdGhpcy0+VHlwZSA9ICdEaXNwb3NpdGlvbkRpcmVjdG9yJzsKCQkkdGhpcy0+RGlzcGxheUluRm9ybSA9IHRydWU7CgkJJHRoaXMtPklzRGlzcG9zaXRpb24gPSB0cnVlOwoJCSR0aGlzLT5IYXNBZGRPcCA9IHRydWU7CgkJJHRoaXMtPkhhc0RlbGV0ZU9wID0gdHJ1ZTsKCQkkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoCiAgICAgICAJCSk7CiAgICAgICAJJHRoaXMtPmFkZHJlc3NBZGQgPSAwOwoJfQoKCWZ1bmN0aW9uIEdldE9wdGlvbkFkZEJ1dHRvbigpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJcmV0dXJuICRtb2QtPkxhbmcoJ2FkZF9kZXN0aW5hdGlvbicpOwoJfQoKCWZ1bmN0aW9uIEdldE9wdGlvbkRlbGV0ZUJ1dHRvbigpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJcmV0dXJuICRtb2QtPkxhbmcoJ2RlbGV0ZV9kZXN0aW5hdGlvbicpOwoJfQoKCWZ1bmN0aW9uIERvT3B0aW9uQWRkKCYkcGFyYW1zKQoJewoJCSR0aGlzLT5hZGRyZXNzQWRkID0gMTsKCX0KCglmdW5jdGlvbiBEb09wdGlvbkRlbGV0ZSgmJHBhcmFtcykKCXsKCQkkZGVsY291bnQgPSAwOwoJCWZvcmVhY2ggKCRwYXJhbXMgYXMgJHRoaXNLZXk9PiR0aGlzVmFsKQoJCQl7CgkJCWlmIChzdWJzdHIoJHRoaXNLZXksMCw5KSA9PSAnZmJycF9kZWxfJykKCQkJCXsKCQkJCSR0aGlzLT5SZW1vdmVPcHRpb25FbGVtZW50KCdkZXN0aW5hdGlvbl9hZGRyZXNzJywgJHRoaXNWYWwgLSAkZGVsY291bnQpOwoJCQkJJHRoaXMtPlJlbW92ZU9wdGlvbkVsZW1lbnQoJ2Rlc3RpbmF0aW9uX3N1YmplY3QnLCAkdGhpc1ZhbCAtICRkZWxjb3VudCk7CgkJCQkkZGVsY291bnQrKzsKCQkJCX0KCQkJfQoJfQoKCWZ1bmN0aW9uIGNvdW50QWRkcmVzc2VzKCkKCXsKCQkJJHRtcCA9ICYkdGhpcy0+R2V0T3B0aW9uUmVmKCdkZXN0aW5hdGlvbl9hZGRyZXNzJyk7CgkJCWlmIChpc19hcnJheSgkdG1wKSkKCQkJCXsKCSAgICAgICAgCSR0aGlzLT5hZGRyZXNzQ291bnQgPSBjb3VudCgkdG1wKTsKCSAgICAgICAgCX0KCSAgICAgICAgZWxzZWlmICgkdG1wICE9PSBmYWxzZSkKCSAgICAgICAgCXsKCSAgICAgICAgCSR0aGlzLT5hZGRyZXNzQ291bnQgPSAxOwoJICAgICAgICAJfQoJICAgICAgICBlbHNlCgkgICAgICAgIAl7CgkgICAgICAgIAkkdGhpcy0+YWRkcmVzc0NvdW50ID0gMDsKCSAgICAgICAgCX0KCX0KCglmdW5jdGlvbiBHZXRGaWVsZElucHV0KCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCgkJLy8gd2h5IGFsbCB0aGlzPyBBc3NvY2lhdGl2ZSBhcnJheXMgYXJlIG5vdCBndWFyYW50ZWVkIHRvIHByZXNlcnZlCgkJLy8gb3JkZXIsIGV4Y2VwdCBpbiAiY2hyb25vbG9naWNhbCIgY3JlYXRpb24gb3JkZXIuCgkJJHNvcnRlZCA9YXJyYXkoKTsKCQlpZiAoJHRoaXMtPkdldE9wdGlvbignc2VsZWN0X29uZScsJycpICE9ICcnKQoJCQl7CgkJCSRzb3J0ZWRbJyAnLiR0aGlzLT5HZXRPcHRpb24oJ3NlbGVjdF9vbmUnLCcnKV09Jyc7CgkJCX0KCQllbHNlCgkJCXsKCQkJJHNvcnRlZFsnICcuJG1vZC0+TGFuZygnc2VsZWN0X29uZScpXT0nJzsKCQkJfQoJCSRzdWJqZWN0cyA9ICYkdGhpcy0+R2V0T3B0aW9uUmVmKCdkZXN0aW5hdGlvbl9zdWJqZWN0Jyk7CgoJCWlmIChjb3VudCgkc3ViamVjdHMpID4gMSkKCQkJewoJCQlmb3IoJGk9MDskaTxjb3VudCgkc3ViamVjdHMpOyRpKyspCgkJCQl7CgkJCQkkc29ydGVkWyRzdWJqZWN0c1skaV1dPSgkaSsxKTsKCQkJCX0KCQkJfQoJCWVsc2UKCQkJewoJCQkkc29ydGVkWyRzdWJqZWN0c10gPSAnMSc7CgkJCX0KCQlyZXR1cm4gJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICdmYnJwX18nLiR0aGlzLT5JZCwgJHNvcnRlZCwgLTEsICR0aGlzLT5WYWx1ZSwgJ2lkPSInLiRpZC4gJ18nLiR0aGlzLT5JZC4nIicpOwoJfQoKCgogICAgZnVuY3Rpb24gU3RhdHVzSW5mbygpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJG9wdCA9ICR0aGlzLT5HZXRPcHRpb24oJ2Rlc3RpbmF0aW9uX2FkZHJlc3MnLCcnKTsKCQkKCQlpZiAoaXNfYXJyYXkoJG9wdCkpCgkJICB7CgkJICAgICAgJG51bSA9IGNvdW50KCRvcHQpOwoJCSAgfQoJCWVsc2VpZiAoJG9wdCAhPSAnJykKCQkJewoJCQkkbnVtID0gMTsKCQkJfQoJCWVsc2UKCQkgIHsKICAgICAgICAgICRudW0gPSAwOwogICAgICAgICAgfQogICAgICAgICAkcmV0PSAkbW9kLT5MYW5nKCdkZXN0aW5hdGlvbl9jb3VudCcsJG51bSk7CiAgICAgICAgJHJldC49ICR0aGlzLT5UZW1wbGF0ZVN0YXR1cygpOwogICAgICAgIHJldHVybiAkcmV0OwoJfQoJCglmdW5jdGlvbiBQcmVQb3B1bGF0ZUFkbWluRm9ybSgkZm9ybURlc2NyaXB0b3IpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgoJCSR0aGlzLT5jb3VudEFkZHJlc3NlcygpOwoJCWlmICgkdGhpcy0+YWRkcmVzc0FkZCA+IDApCgkJCXsKCQkJJHRoaXMtPmFkZHJlc3NDb3VudCArPSAkdGhpcy0+YWRkcmVzc0FkZDsKCQkJJHRoaXMtPmFkZHJlc3NBZGQgPSAwOwoJCQl9CgkJJGRlc3RzID0gJzx0YWJsZSBjbGFzcz0ibW9kdWxlX2ZiX3RhYmxlIj48dHI+PHRoPicuJG1vZC0+TGFuZygndGl0bGVfc2VsZWN0aW9uX3N1YmplY3QnKS4nPC90aD48dGg+Jy4KCQkJJG1vZC0+TGFuZygndGl0bGVfZGVzdGluYXRpb25fYWRkcmVzcycpLic8L3RoPjx0aD4nLgoJCQkkbW9kLT5MYW5nKCd0aXRsZV9kZWxldGUnKS4nPC90aD48L3RyPic7CgoKCQlmb3IgKCRpPTA7JGk8KCR0aGlzLT5hZGRyZXNzQ291bnQ+MT8kdGhpcy0+YWRkcmVzc0NvdW50OjEpOyRpKyspCgkJCXsKCQkJJGRlc3RzIC49ICAnPHRyPjx0ZD4nLgogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9kZXN0aW5hdGlvbl9zdWJqZWN0W10nLCR0aGlzLT5HZXRPcHRpb25FbGVtZW50KCdkZXN0aW5hdGlvbl9zdWJqZWN0JywkaSksMjUsMTI4KS4KICAgICAgICAgICAgCQknPC90ZD48dGQ+Jy4KICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZGVzdGluYXRpb25fYWRkcmVzc1tdJywkdGhpcy0+R2V0T3B0aW9uRWxlbWVudCgnZGVzdGluYXRpb25fYWRkcmVzcycsJGkpLDI1LDEyOCkuCiAgICAgICAgICAgIAkJJzwvdGQ+PHRkPicuCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX2RlbF8nLiRpLCAkaSwtMSkuCiAgICAgICAgICAgICAJCSc8L3RkPjwvdHI+JzsKCQkJfQoJCSRkZXN0cyAuPSAnPC90YWJsZT4nOwoJCWxpc3QoJG1haW4sJGFkdikgPSAkdGhpcy0+UHJlUG9wdWxhdGVBZG1pbkZvcm1CYXNlKCRmb3JtRGVzY3JpcHRvcik7CgkJYXJyYXlfcHVzaCgkbWFpbixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9zZWxlY3Rfb25lX21lc3NhZ2UnKSwKCQkJJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X3NlbGVjdF9vbmUnLAoJCQkkdGhpcy0+R2V0T3B0aW9uKCdzZWxlY3Rfb25lJywkbW9kLT5MYW5nKCdzZWxlY3Rfb25lJykpLDI1LDEyOCkpKTsKCQlhcnJheV9wdXNoKCRtYWluLGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2RpcmVjdG9yX2RldGFpbHMnKSwkZGVzdHMpKTsKCQlyZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7Cgl9CgoJZnVuY3Rpb24gUG9zdFBvcHVsYXRlQWRtaW5Gb3JtKCYkbWFpbkFycmF5LCAmJGFkdkFycmF5KQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCS8vIHJlbW92ZSB0aGUgImVtYWlsIHN1YmplY3QiIGZpZWxkCgkJJGhpZGVJbmRleCA9IC0xOwoJCWZvciAoJGk9MDskaTxjb3VudCgkbWFpbkFycmF5KTskaSsrKQoJCQl7CgkJCWlmICgkbWFpbkFycmF5WyRpXS0+dGl0bGUgPT0gJG1vZC0+TGFuZygndGl0bGVfZW1haWxfc3ViamVjdCcpKQoJCQkJewoJCQkJJGhpZGVJbmRleCA9ICRpOwoJCQkJfQoJCQl9CgkJaWYgKCRoaWRlSW5kZXggIT0gLTEpCgkJCXsKCQkJYXJyYXlfc3BsaWNlKCRtYWluQXJyYXksICRoaWRlSW5kZXgsMSk7CgkJCX0KCQkvLyByZW1vdmUgdGhlICJoaWRlIGNzcyIgZmllbGQKCQkkaGlkZUluZGV4ID0gLTE7CgkJZm9yICgkaT0wOyRpPGNvdW50KCRhZHZBcnJheSk7JGkrKykKCQkJewoJCQlpZiAoJGFkdkFycmF5WyRpXS0+dGl0bGUgPT0gJG1vZC0+TGFuZygndGl0bGVfZmllbGRfY3NzX2NsYXNzJykpCgkJCQl7CgkJCQkkaGlkZUluZGV4ID0gJGk7CgkJCQl9CgkJCX0KCQlpZiAoJGhpZGVJbmRleCAhPSAtMSkKCQkJewoJCQlhcnJheV9zcGxpY2UoJGFkdkFycmF5LCAkaGlkZUluZGV4LDEpOwoJCQl9CgkJaWYgKGNvdW50KCRhZHZBcnJheSkgPT0gMCkKCQkJewoJCQkkYWR2QXJyYXlbMF0tPnRpdGxlID0gJG1vZC0+TGFuZygndGFiX2FkdmFuY2VkJyk7CgkJCSRhZHZBcnJheVswXS0+aW5wdXQgPSAkbW9kLT5MYW5nKCd0aXRsZV9ub19hZHZhbmNlZF9vcHRpb25zJyk7CgkJCX0KCX0KCglmdW5jdGlvbiBHZXRIdW1hblJlYWRhYmxlVmFsdWUoKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCWlmICgkdGhpcy0+SGFzVmFsdWUoKSkKCQkJewoJCQlyZXR1cm4gJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ2Rlc3RpbmF0aW9uX2FkZHJlc3MnLCgkdGhpcy0+VmFsdWUgLSAxKSk7CgkJCX0KCQllbHNlCgkJCXsKCQkJcmV0dXJuICRtb2QtPkxhbmcoJ3Vuc3BlY2lmaWVkJyk7CgkJCX0JCgl9CgkKCWZ1bmN0aW9uIERpc3Bvc2VGb3JtKCRyZXR1cm5pZCkKCXsKCQlyZXR1cm4gJHRoaXMtPlNlbmRGb3JtKCR0aGlzLT5HZXRPcHRpb25FbGVtZW50KCdkZXN0aW5hdGlvbl9hZGRyZXNzJywoJHRoaXMtPlZhbHVlIC0gMSkpLAoJCQkkdGhpcy0+R2V0T3B0aW9uRWxlbWVudCgnZGVzdGluYXRpb25fc3ViamVjdCcsKCR0aGlzLT5WYWx1ZSAtIDEpKSk7Cgl9CgoKCWZ1bmN0aW9uIEFkbWluVmFsaWRhdGUoKQogICAgewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgCSRvcHQgPSAkdGhpcy0+R2V0T3B0aW9uKCdkZXN0aW5hdGlvbl9hZGRyZXNzJyk7CiAgCQlsaXN0KCRyZXQsICRtZXNzYWdlKSA9ICR0aGlzLT5Eb2VzRmllbGRIYXZlTmFtZSgpOwoJCWlmICgkcmV0KQoJCQl7CgkJCWxpc3QoJHJldCwgJG1lc3NhZ2UpID0gJHRoaXMtPkRvZXNGaWVsZE5hbWVFeGlzdCgpOwoJCQl9CQkKCgkJaWYgKGNvdW50KCRvcHQpID09IDApCgkJCXsKCQkJJHJldCA9IGZhbHNlOwoJCQkkbWVzc2FnZSAuPSAkbW9kLT5MYW5nKCdtdXN0X3NwZWNpZnlfb25lX2Rlc3RpbmF0aW9uJykuJzwvYnI+JzsKCQkJfQoJCWlmICghIHByZWdfbWF0Y2goKCRtb2QtPkdldFByZWZlcmVuY2UoJ3JlbGF4ZWRfZW1haWxfcmVnZXgnLCcwJyk9PTA/JG1vZC0+ZW1haWxfcmVnZXg6JG1vZC0+ZW1haWxfcmVnZXhfcmVsYXhlZCksJHRoaXMtPkdldE9wdGlvbignZW1haWxfZnJvbV9hZGRyZXNzJykpKQoJCQl7CiAgICAJICAgICAgIAkkcmV0ID0gZmFsc2U7CiAgICAgICAgICAgICAgICAkbWVzc2FnZSAuPSAkbW9kLT5MYW5nKCdub3RfdmFsaWRfZW1haWwnLCR0aGlzLT5HZXRPcHRpb24oJ2VtYWlsX2Zyb21fYWRkcmVzcycpKSAuICc8YnIvPic7CgkJCX0KICAgICAgICBmb3IoJGk9MDskaTxjb3VudCgkb3B0KTskaSsrKQogICAgCSAgIHsKCQkJaWYgKCEgcHJlZ19tYXRjaCgkbW9kLT5lbWFpbF9yZWdleCwgJG9wdFskaV0pKQogICAgCSAgICAgICB7CiAgICAJICAgICAgIAkkcmV0ID0gZmFsc2U7CiAgICAgICAgICAgICAgICAkbWVzc2FnZSAuPSAkbW9kLT5MYW5nKCdub3RfdmFsaWRfZW1haWwnLCRvcHRbJGldKS4nPGJyLz4nOwogICAgCSAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiBhcnJheSgkcmV0LCRtZXNzYWdlKTsKICAgIH0KICAgIAogICAgZnVuY3Rpb24gVmFsaWRhdGUoKQogICAgewogICAgICAgICAkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICAgICAgJHJlc3VsdCA9IHRydWU7CiAgICAgICAgICRtZXNzYWdlID0gJyc7CgogICAgICAgICBpZiAoJHRoaXMtPlZhbHVlID09IGZhbHNlKQogICAgICAgICAgICB7CiAgICAgICAgICAgICRyZXN1bHQgPSBmYWxzZTsKICAgICAgICAgICAgJG1lc3NhZ2UgLj0KJG1vZC0+TGFuZygnbXVzdF9zcGVjaWZ5X29uZV9kZXN0aW5hdGlvbicpLic8L2JyPic7CiAgICAgICAgICAgIH0KICAgICAgICByZXR1cm4gYXJyYXkoJHJlc3VsdCwkbWVzc2FnZSk7CiAgICB9Cgp9Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionEmail.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpyZXF1aXJlX29uY2UoZGlybmFtZShfX0ZJTEVfXykuJy9EaXNwb3NpdGlvbkVtYWlsQmFzZS5jbGFzcy5waHAnKTsKCmNsYXNzIGZiRGlzcG9zaXRpb25FbWFpbCBleHRlbmRzIGZiRGlzcG9zaXRpb25FbWFpbEJhc2UgewoKCXZhciAkYWRkcmVzc0NvdW50OwoJdmFyICRhZGRyZXNzQWRkOwoKCWZ1bmN0aW9uIGZiRGlzcG9zaXRpb25FbWFpbCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgICAkdGhpcy0+ZmJEaXNwb3NpdGlvbkVtYWlsQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgICAgICRtb2QgPSAmJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gJ0Rpc3Bvc2l0aW9uRW1haWwnOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gZmFsc2U7CgkJJHRoaXMtPk5vblJlcXVpcmFibGVGaWVsZCA9IHRydWU7CgkJJHRoaXMtPklzRGlzcG9zaXRpb24gPSB0cnVlOwoJCSR0aGlzLT5IYXNBZGRPcCA9IHRydWU7CgkJJHRoaXMtPkhhc0RlbGV0ZU9wID0gdHJ1ZTsKCQkkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoCiAgICAgICAJCSk7CiAgICB9CgoJZnVuY3Rpb24gR2V0T3B0aW9uQWRkQnV0dG9uKCkKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQlyZXR1cm4gJG1vZC0+TGFuZygnYWRkX2FkZHJlc3MnKTsKCX0KCglmdW5jdGlvbiBHZXRPcHRpb25EZWxldGVCdXR0b24oKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCXJldHVybiAkbW9kLT5MYW5nKCdkZWxldGVfYWRkcmVzcycpOwoJfQoKCWZ1bmN0aW9uIERvT3B0aW9uQWRkKCYkcGFyYW1zKQoJewoJCSR0aGlzLT5hZGRyZXNzQWRkID0gMTsKCX0KCglmdW5jdGlvbiBEb09wdGlvbkRlbGV0ZSgmJHBhcmFtcykKCXsKCQkkZGVsY291bnQgPSAwOwoJCWZvcmVhY2ggKCRwYXJhbXMgYXMgJHRoaXNLZXk9PiR0aGlzVmFsKQoJCQl7CgkJCWlmIChzdWJzdHIoJHRoaXNLZXksMCw5KSA9PSAnZmJycF9kZWxfJykKCQkJCXsKCQkJCSR0aGlzLT5SZW1vdmVPcHRpb25FbGVtZW50KCdkZXN0aW5hdGlvbl9hZGRyZXNzJywgJHRoaXNWYWwgLSAkZGVsY291bnQpOwoJCQkJJGRlbGNvdW50Kys7CgkJCQl9CgkJCX0KCX0KCgoKICAgIGZ1bmN0aW9uIFN0YXR1c0luZm8oKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRvcHQgPSAkdGhpcy0+R2V0T3B0aW9uKCdkZXN0aW5hdGlvbl9hZGRyZXNzJywnJyk7CgkJJHJldD0gJG1vZC0+TGFuZygndG8nKS4iOiAiOwoJCWlmIChpc19hcnJheSgkb3B0KSkKCQkgIHsKCQkgIGlmIChjb3VudCgkb3B0KT4xKQoJCSAgICAgIHsKCQkgICAgICAkcmV0Lj0gY291bnQoJG9wdCk7CgkJICAgICAgJHJldC49ICIgIi4kbW9kLT5MYW5nKCdyZWNpcGllbnRzJyk7CgkJICAgICAgfQoJCSAgZWxzZQoJCSAgICAgIHsKCQkgICAgICAkcmV0Lj0gJG9wdFswXTsKCQkgICAgICB9CgkJICB9CgkJZWxzZWlmICgkb3B0ICE9ICcnKQoJCQl7CgkJCSRyZXQgLj0gJG9wdDsKCQkJfQoJCWVsc2UKCQkgIHsKICAgICAgICAgICRyZXQuPSAkbW9kLT5MYW5nKCd1bnNwZWNpZmllZCcpOwogICAgICAgICAgfQogICAgICAgICRyZXQuPSAkdGhpcy0+VGVtcGxhdGVTdGF0dXMoKTsKICAgICAgICByZXR1cm4gJHJldDsKCX0KCglmdW5jdGlvbiBjb3VudEFkZHJlc3NlcygpCgl7CgkJCSR0bXAgPSAmJHRoaXMtPkdldE9wdGlvblJlZignZGVzdGluYXRpb25fYWRkcmVzcycpOwoJCQlpZiAoaXNfYXJyYXkoJHRtcCkpCgkJCQl7CgkgICAgICAgIAkkdGhpcy0+YWRkcmVzc0NvdW50ID0gY291bnQoJHRtcCk7CgkgICAgICAgIAl9CgkgICAgICAgIGVsc2VpZiAoJHRtcCAhPT0gZmFsc2UpCgkgICAgICAgIAl7CgkgICAgICAgIAkkdGhpcy0+YWRkcmVzc0NvdW50ID0gMTsKCSAgICAgICAgCX0KCSAgICAgICAgZWxzZQoJICAgICAgICAJewoJICAgICAgICAJJHRoaXMtPmFkZHJlc3NDb3VudCA9IDA7CgkgICAgICAgIAl9Cgl9CgoKICAgIC8vIFNlbmQgb2ZmIHRob3NlIGVtYWlscwoJZnVuY3Rpb24gRGlzcG9zZUZvcm0oKQoJewoJCSR0bXAgPSAmJHRoaXMtPkdldE9wdGlvblJlZignZGVzdGluYXRpb25fYWRkcmVzcycpOwoJCXJldHVybiAkdGhpcy0+U2VuZEZvcm0oJHRtcCwkdGhpcy0+R2V0T3B0aW9uKCdlbWFpbF9zdWJqZWN0JykpOwoJfQoKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCgkJJHRoaXMtPmNvdW50QWRkcmVzc2VzKCk7CgkJaWYgKCR0aGlzLT5hZGRyZXNzQWRkID4gMCkKCQkJewoJCQkkdGhpcy0+YWRkcmVzc0NvdW50ICs9ICR0aGlzLT5hZGRyZXNzQWRkOwoJCQkkdGhpcy0+YWRkcmVzc0FkZCA9IDA7CgkJCX0KCQkkZGVzdHMgPSAnPHRhYmxlICBjbGFzcz0ibW9kdWxlX2ZiX3RhYmxlIj48dHI+PHRoPicuJG1vZC0+TGFuZygndGl0bGVfZGVzdGluYXRpb25fYWRkcmVzcycpLic8L3RoPjx0aD4nLgoJCQkkbW9kLT5MYW5nKCd0aXRsZV9kZWxldGUnKS4nPC90aD48L3RyPic7CgoKCQlmb3IgKCRpPTA7JGk8KCR0aGlzLT5hZGRyZXNzQ291bnQ+MT8kdGhpcy0+YWRkcmVzc0NvdW50OjEpOyRpKyspCgkJCXsKCQkJJGRlc3RzIC49ICc8dHI+PHRkPicuCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2Rlc3RpbmF0aW9uX2FkZHJlc3NbXScsJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ2Rlc3RpbmF0aW9uX2FkZHJlc3MnLCRpKSwyNSwxMjgpLgogICAgICAgICAgICAJCSc8L3RkPjx0ZD4nLgogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9kZWxfJy4kaSwgJGksLTEpLgogICAgICAgICAgICAgCQknPC90ZD48L3RyPic7CgkJCX0KCQkkZGVzdHMgLj0gJzwvdGFibGU+JzsKCQlsaXN0KCRtYWluLCRhZHYpID0gJHRoaXMtPlByZVBvcHVsYXRlQWRtaW5Gb3JtQmFzZSgkZm9ybURlc2NyaXB0b3IpOwoJCWFycmF5X3B1c2goJG1haW4sYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZGVzdGluYXRpb25fYWRkcmVzcycpLCRkZXN0cykpOwoJCXJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLCdhZHYnPT4kYWR2KTsKCX0KCglmdW5jdGlvbiBQb3N0UG9wdWxhdGVBZG1pbkZvcm0oJiRtYWluQXJyYXksICYkYWR2QXJyYXkpCgl7CgkJJHRoaXMtPkhpZGRlbkRpc3Bvc2l0aW9uRmllbGRzKCRtYWluQXJyYXksICRhZHZBcnJheSk7Cgl9CgoKCWZ1bmN0aW9uIEFkbWluVmFsaWRhdGUoKQogICAgewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgCSRvcHQgPSAmJHRoaXMtPkdldE9wdGlvblJlZignZGVzdGluYXRpb25fYWRkcmVzcycpOwogIAkJbGlzdCgkcmV0LCAkbWVzc2FnZSkgPSAkdGhpcy0+RG9lc0ZpZWxkSGF2ZU5hbWUoKTsKCQlpZiAoJHJldCkKCQkJewoJCQlsaXN0KCRyZXQsICRtZXNzYWdlKSA9ICR0aGlzLT5Eb2VzRmllbGROYW1lRXhpc3QoKTsKCQkJfQkJCgkJaWYgKCRvcHQgPT09IGZhbHNlIHx8IGNvdW50KCRvcHQpID09IDApCgkJCXsKCQkJJHJldCA9IGZhbHNlOwoJCQkkbWVzc2FnZSAuPSAkbW9kLT5MYW5nKCdtdXN0X3NwZWNpZnlfb25lX2Rlc3RpbmF0aW9uJykuJzwvYnI+JzsKCQkJfQoJCWlmICghIHByZWdfbWF0Y2goKCRtb2QtPkdldFByZWZlcmVuY2UoJ3JlbGF4ZWRfZW1haWxfcmVnZXgnLCcwJyk9PTA/JG1vZC0+ZW1haWxfcmVnZXg6JG1vZC0+ZW1haWxfcmVnZXhfcmVsYXhlZCksJHRoaXMtPkdldE9wdGlvbignZW1haWxfZnJvbV9hZGRyZXNzJykpKQoJCQl7CiAgICAJICAgICAgIAkkcmV0ID0gZmFsc2U7CiAgICAgICAgICAgICAgICAkbWVzc2FnZSAuPSAkbW9kLT5MYW5nKCdub3RfdmFsaWRfZW1haWwnLCR0aGlzLT5HZXRPcHRpb24oJ2VtYWlsX2Zyb21fYWRkcmVzcycpKSAuICc8YnIvPic7CgkJCX0KICAgICAgICBmb3IoJGk9MDskaTxjb3VudCgkb3B0KTskaSsrKQogICAgCSAgIHsKICAgIAkgICBpZiAoISBwcmVnX21hdGNoKCgkbW9kLT5HZXRQcmVmZXJlbmNlKCdyZWxheGVkX2VtYWlsX3JlZ2V4JywnMCcpPT0wPyRtb2QtPmVtYWlsX3JlZ2V4OiRtb2QtPmVtYWlsX3JlZ2V4X3JlbGF4ZWQpLCAkb3B0WyRpXSkpCiAgICAJICAgICAgIHsKICAgIAkgICAgICAgCSRyZXQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICRtZXNzYWdlIC49ICRtb2QtPkxhbmcoJ25vdF92YWxpZF9lbWFpbCcsJG9wdFskaV0pIC4gJzxici8+JzsKICAgIAkgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gYXJyYXkoJHJldCwkbWVzc2FnZSk7ICAgICAgIAogICAgfQoKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionEmailBase.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkRpc3Bvc2l0aW9uRW1haWxCYXNlIGV4dGVuZHMgZmJGaWVsZEJhc2UgCnsKCiAgZnVuY3Rpb24gZmJEaXNwb3NpdGlvbkVtYWlsQmFzZSgmJGZvcm1fcHRyLCAmJHBhcmFtcykKICB7CiAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICRtb2QgPSAmJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgJHRoaXMtPklzRGlzcG9zaXRpb24gPSB0cnVlOwogICAgJHRoaXMtPlZhbGlkYXRpb25UeXBlcyA9IGFycmF5KCk7CiAgICAKICB9CgogIC8vIG92ZXJyaWRlIG1lIQogIGZ1bmN0aW9uIFN0YXR1c0luZm8oKQogIHsKICB9CgogIGZ1bmN0aW9uIFRlbXBsYXRlU3RhdHVzKCkKICB7CiAgICAkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgIGlmICgkdGhpcy0+R2V0T3B0aW9uKCdlbWFpbF90ZW1wbGF0ZScsJycpID09ICcnKQogICAgICB7CglyZXR1cm4gJG1vZC0+TGFuZygnZW1haWxfdGVtcGxhdGVfbm90X3NldCcpOwogICAgICB9CiAgfQoKICAvLyBvdmVycmlkZSBtZSEKICBmdW5jdGlvbiBEaXNwb3NlRm9ybSgpCiAgewogICAgcmV0dXJuIGFycmF5KHRydWUsJycpOwogIH0KCiAgLy8gb3ZlcnJpZGUgbWUgYXMgbmVjZXNzYXJ5CiAgZnVuY3Rpb24gU2V0RnJvbUFkZHJlc3MoKQogIHsKICAgIHJldHVybiB0cnVlOwogIH0KCiAgLy8gb3ZlcnJpZGUgbWUgYXMgbmVjZXNzYXJ5CiAgZnVuY3Rpb24gU2V0RnJvbU5hbWUoKQogIHsKICAgIHJldHVybiB0cnVlOwogIH0KICAKICAvLyBTZW5kIG9mZiB0aG9zZSBlbWFpbHMKICBmdW5jdGlvbiBTZW5kRm9ybSgkZGVzdGluYXRpb25fYXJyYXksICRzdWJqZWN0KQogIHsKICAgIGdsb2JhbCAkZ0NtczsKICAgICRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgJGZvcm0gPSAmJHRoaXMtPmZvcm1fcHRyOwoKCSBpZiAoJG1vZC0+R2V0UHJlZmVyZW5jZSgnZW5hYmxlX2FudGlzcGFtJywxKSkKCSAJewoJCSRkYiA9JiAkZ0Ntcy0+R2V0RGIoKTsKCQkkcXVlcnkgPSAnc2VsZWN0IGNvdW50KHNyY19pcCkgYXMgc2VudCBmcm9tICcuY21zX2RiX3ByZWZpeCgpLgoJCQknbW9kdWxlX2ZiX2lwX2xvZyB3aGVyZSBzcmNfaXA9PyBBTkQgc2VudF90aW1lID4gPyc7CgkgICAKCQkkZGJyZXN1bHQgPSAkZGItPkdldE9uZSgkcXVlcnksIGFycmF5KCRfU0VSVkVSWydSRU1PVEVfQUREUiddLAoJCQkJCQkgICB0cmltKCRkYi0+REJUaW1lU3RhbXAodGltZSgpIC0gMzYwMCksIiciKSkpOwoKCQlpZiAoJGRicmVzdWx0ICYmICRkYnJlc3VsdFsnc2VudCddID4gOSkKCQkJewoJCQkvLyB0b28gbWFueSBmcm9tIHRoaXMgSVAgYWRkcmVzcy4gS2lsbCBpdC4KCSAgICAJJG1zZyA9ICc8aHIgLz4nLiRtb2QtPkxhbmcoJ3N1c3BlY3RlZF9zcGFtJykuICc8aHIgLz4nOwoJCQlhdWRpdCgtMSwgJG1vZC0+R2V0TmFtZSgpLCRtb2QtPkxhbmcoJ2xvZ19zdXNwZWN0ZWRfc3BhbScsJF9TRVJWRVJbJ1JFTU9URV9BRERSJ10pKTsKCQkJcmV0dXJuIGFycmF5KGZhbHNlLCRtc2cpOwoJCQl9CgkJfQoKICAgICRtYWlsID0gJG1vZC0+R2V0TW9kdWxlSW5zdGFuY2UoJ0NNU01haWxlcicpOwogICAgaWYgKCRtYWlsID09IEZBTFNFKQogICAgICB7CgkkbXNnID0gJyc7CglpZiAoISAkbW9kLT5HZXRQcmVmZXJlbmNlKCdoaWRlX2Vycm9ycycsMCkpCgkgIHsKCSAgICAkbXNnID0gJzxociAvPicuJG1vZC0+TGFuZygnbWlzc2luZ19jbXNfbWFpbGVyJykuICc8aHIgLz4nOwoJICB9IAoJYXVkaXQoLTEsICRtb2QtPkdldE5hbWUoKSwkbW9kLT5MYW5nKCdtaXNzaW5nX2Ntc19tYWlsZXInKSk7CglyZXR1cm4gYXJyYXkoZmFsc2UsJG1zZyk7CiAgICAgIH0KICAgICRtYWlsLT5yZXNldCgpOwogICAgaWYgKCR0aGlzLT5TZXRGcm9tQWRkcmVzcygpKQogICAgICB7CgkkbWFpbC0+U2V0RnJvbSgkdGhpcy0+R2V0T3B0aW9uKCdlbWFpbF9mcm9tX2FkZHJlc3MnKSk7CiAgICAgICRtYWlsLT5BZGRSZXBseVRvKCR0aGlzLT5HZXRPcHRpb24oJ2VtYWlsX2Zyb21fYWRkcmVzcycpLCR0aGlzLT5TZXRGcm9tTmFtZSgpPyR0aGlzLT5HZXRPcHRpb24oJ2VtYWlsX2Zyb21fbmFtZScpOicnKTsKICAgICAgfQogICAgaWYgKCR0aGlzLT5TZXRGcm9tTmFtZSgpKQogICAgICB7CgkkbWFpbC0+U2V0RnJvbU5hbWUoJHRoaXMtPkdldE9wdGlvbignZW1haWxfZnJvbV9uYW1lJykpOwogICAgICB9CiAgICAkbWFpbC0+U2V0Q2hhclNldCgkdGhpcy0+R2V0T3B0aW9uKCdlbWFpbF9lbmNvZGluZycsJ3V0Zi04JykpOwoKICAgICRtZXNzYWdlID0gJHRoaXMtPkdldE9wdGlvbignZW1haWxfdGVtcGxhdGUnLCcnKTsKICAgICRodG1sZW1haWwgPSAoJHRoaXMtPkdldE9wdGlvbignaHRtbF9lbWFpbCcsJzAnKSA9PSAnMScpOwogICAgaWYgKCRodG1sZW1haWwpCgkgCXsKCQkkbWFpbC0+SXNIVE1MKHRydWUpOwoJCX0KCSBpZiAoc3RybGVuKCRtZXNzYWdlKSA8IDEpCiAgICAgIHsKCQkkbWVzc2FnZSA9ICRmb3JtLT5jcmVhdGVTYW1wbGVUZW1wbGF0ZShmYWxzZSk7CiAgICAJaWYgKCRodG1sZW1haWwpCgkgCQl7CgkJCSRtZXNzYWdlMiA9ICRmb3JtLT5jcmVhdGVTYW1wbGVUZW1wbGF0ZSh0cnVlKTsKCQkJfQogICAgICB9CiAgICBlbHNlaWYgKCRodG1sZW1haWwpCiAgICAJewoJCSRtZXNzYWdlMiA9ICRtZXNzYWdlOwoJCX0KICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdzdWJfZm9ybV9uYW1lJywkZm9ybS0+R2V0TmFtZSgpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdzdWJfZGF0ZScsZGF0ZSgncicpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdzdWJfaG9zdCcsJF9TRVJWRVJbJ1NFUlZFUl9OQU1FJ10pOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3N1Yl9zb3VyY2VfaXAnLCRfU0VSVkVSWydSRU1PVEVfQUREUiddKTsKICAgIGlmIChlbXB0eSgkX1NFUlZFUlsnSFRUUF9SRUZFUkVSJ10pKQogICAgICB7CgkkbW9kLT5zbWFydHktPmFzc2lnbignc3ViX3VybCcsJG1vZC0+TGFuZygnbm9fcmVmZXJyZXJfaW5mbycpKTsKICAgICAgfQogICAgZWxzZQogICAgICB7CgkkbW9kLT5zbWFydHktPmFzc2lnbignc3ViX3VybCcsJF9TRVJWRVJbJ0hUVFBfUkVGRVJFUiddKTsKICAgICAgfQogICAgJG90aGVycyA9ICYkZm9ybS0+R2V0RmllbGRzKCk7CiAgICAkdW5zcGVjID0gJGZvcm0tPkdldEF0dHIoJ3Vuc3BlY2lmaWVkJywkbW9kLT5MYW5nKCd1bnNwZWNpZmllZCcpKTsKCQkKICAgIGZvcigkaT0wOyRpPGNvdW50KCRvdGhlcnMpOyRpKyspCiAgICAgIHsKCSRmaWVsZCA9JiAkb3RoZXJzWyRpXTsKCSRyZXBsVmFsID0gJyc7CgkkcmVwbFZhbHMgPSBhcnJheSgpOwoJaWYgKCRmaWVsZC0+RGlzcGxheUluU3VibWlzc2lvbigpKQoJICB7CgkgICAgJHJlcGxWYWwgPSAkZmllbGQtPkdldEh1bWFuUmVhZGFibGVWYWx1ZSgpOwoJICAgIGlmICgkaHRtbGVtYWlsKQoJICAgICAgICB7CiAgICAgICAgICAgICRyZXBsVmFsID0gaHRtbHNwZWNpYWxjaGFycygkcmVwbFZhbCk7CiAgICAgICAgICAgIH0KCSAgICBpZiAoJHJlcGxWYWwgPT0gJycpCgkgICAgICB7CgkJJHJlcGxWYWwgPSAkdW5zcGVjOwoJICAgICAgfQoJICAgIGlmICgkZmllbGQtPkhhc011bHRpcGxlVmFsdWVzKCkpCgkgICAgICAgIHsKCSAgICAgICAgJHJlcGxWYWxzID0gJGZpZWxkLT5HZXRWYWx1ZSgpOwoJICAgICAgICB9CgkgIH0KCWlmKCBnZXRfY2xhc3MoJG90aGVyc1skaV0pID09ICdmYkZpbGVVcGxvYWRGaWVsZCcgKQoJICB7CgkgICAgLy8KCSAgICAvLyBIYW5kbGUgZmlsZSB1cGxvYWRzCgkgICAgLy8gaWYgdGhlIHVwbG9hZHMgbW9kdWxlIGlzIGZvdW5kLCBhbmQgdGhlIG9wdGlvbiBpcyBjaGVja2VkIGluCgkgICAgLy8gdGhlIGZpZWxkLCB0aGVuIHRoZSBmaWxlIGlzIGFkZGVkIHRvIHRoZSB1cGxvYWRzIG1vZHVsZQoJICAgIC8vIGFuZCBhIGxpbmsgaXMgYWRkZWQgdG8gdGhlIHJlc3VsdHMKCSAgICAvLyBpZiB0aGUgb3B0aW9uIGlzIG5vdCBjaGVja2VkLCB0aGVuIHRoZSBmaWxlIGlzIGFkZGVkIGFzCgkgICAgLy8gYW4gYXR0YWNobWVudAoJICAgIC8vCgkgICAgJF9pZCA9ICRmaWVsZC0+R2V0VmFsdWUoKTsKCSAgICBpZiggaXNzZXQoICRfRklMRVNbJF9pZF0gKSAmJiAkX0ZJTEVTWyRfaWRdWydzaXplJ10gPiAwICkKCSAgICAgIHsKCQkkdGhpc0ZpbGUgPSYgJF9GSUxFU1skX2lkXTsKCQlpZiggJGZpZWxkLT5HZXRPcHRpb24oJ3NlbmR0b191cGxvYWRzJykgKQoJCSAgewoJCSAgICAvLyB3ZSBoYXZlIGEgZmlsZSB3ZSBjYW4gc2VuZCB0byB0aGUgdXBsb2FkcwoJCSAgICAkdXBsb2FkcyA9ICRtb2QtPkdldE1vZHVsZUluc3RhbmNlKCdVcGxvYWRzJyk7CgkJICAgIGlmKCAhJHVwbG9hZHMgKQoJCSAgICAgIHsKCQkJLy8gbm8gdXBsb2FkcyBtb2R1bGUKCQkJYXVkaXQoLTEsICRtb2QtPkdldE5hbWUoKSwgJG1vZC0+TGFuZygnc3VibWl0X2Vycm9yJyksJG1haWwtPkdldEVycm9ySW5mbygpKTsKCQkJZWNobyAiREVCVUc6IGNvdWxkIG5vdCBnZXQgdXBsb2FkcyBtb2R1bGU8YnIvPiI7CgkJICAgICAgICByZXR1cm4gYXJyYXkoJHJlcywgJG1vZC0+TGFuZygnbm91cGxvYWRzX2Vycm9yJykpOwoKCQkgICAgICB9CgoJCSAgICAkcGFybXMgPSBhcnJheSgpOwoJCSAgICAkcGFybXNbJ2lucHV0X2F1dGhvciddID0gJG1vZC0+TGFuZygnYW5vbnltb3VzJyk7CgkJICAgICRwYXJtc1snaW5wdXRfc3VtbWFyeSddID0gJG1vZC0+TGFuZygndGl0bGVfdXBsb2FkbW9kdWxlX3N1bW1hcnknKTsKCQkgICAgJHBhcm1zWydjYXRlZ29yeV9pZCddID0gJGZpZWxkLT5HZXRPcHRpb24oJ3VwbG9hZHNfY2F0ZWdvcnknKTsKCQkgICAgJHBhcm1zWydmaWVsZF9uYW1lJ10gPSAkX2lkOwoJCSAgICAkcmVzID0gJHVwbG9hZHMtPkF0dGVtcHRVcGxvYWQoLTEsJHBhcm1zLC0xKTsKCQkgICAgaWYoICRyZXNbMF0gPT0gZmFsc2UgKQoJCSAgICAgIHsKCQkJLy8gZmFpbGVkIHVwbG9hZCBraWxscyB0aGUgc2VuZC4KCQkJYXVkaXQoLTEsICRtb2QtPkdldE5hbWUoKSwgJG1vZC0+TGFuZygnc3VibWl0X2Vycm9yJywkbWFpbC0+R2V0RXJyb3JJbmZvKCkpKTsKCQkJcmV0dXJuIGFycmF5KCRyZXNbMF0sICRtb2QtPkxhbmcoJ3VwbG9hZHNfZXJyb3InLCRyZXNbMV0pKTsKCQkgICAgICB9CgoJCSAgICAkdXBsb2Fkc19kZXN0cGFnZSA9ICRmaWVsZC0+R2V0T3B0aW9uKCd1cGxvYWRzX2Rlc3RwYWdlJyk7CgkJICAgICR1cmwgPSAkdXBsb2Fkcy0+Q3JlYXRlTGluayAoLTEsICdnZXRmaWxlJywgJHVwbG9hZHNfZGVzdHBhZ2UsICcnLAoJCQkJCQkgYXJyYXkgKCd1cGxvYWRfaWQnID0+ICRyb3dbJ3VwbG9hZF9pZCddKSwgJycsIHRydWUpOwoJCSAgICAkcmVwbFZhbCA9ICR1cmw7CgkJICB9CgkJZWxzZQoJCSAgewoJCSAgICAvLyB3ZSBoYXZlIGEgZmlsZSB3ZSBjYW4gYXR0YWNoCgkJICAgIGlmICghICRtYWlsLT5BZGRBdHRhY2htZW50KCR0aGlzRmlsZVsndG1wX25hbWUnXSwgJHRoaXNGaWxlWyduYW1lJ10sICJiYXNlNjQiLCAkdGhpc0ZpbGVbJ3R5cGUnXSkpCgkJICAgICAgewoJCQkvLyBmYWlsZWQgdXBsb2FkIGtpbGxzIHRoZSBzZW5kLgoJCQlhdWRpdCgtMSwgKGlzc2V0KCRuYW1lKT8kbmFtZToiIiksICRtb2QtPkxhbmcoJ3N1Ym1pdF9lcnJvcicsJG1haWwtPkdldEVycm9ySW5mbygpKSk7CgkJCXJldHVybiBhcnJheSgkcmVzLCAkbW9kLT5MYW5nKCd1cGxvYWRfYXR0YWNoX2Vycm9yJywKCQkJCQkJICAgICAgYXJyYXkoJHRoaXNGaWxlWyduYW1lJ10sJHRoaXNGaWxlWyd0bXBfbmFtZSddICwkdGhpc0ZpbGVbJ3R5cGUnXSkpKTsKCQkgICAgICB9CgoJCSAgICAkcmVwbFZhbCA9ICR0aGlzRmlsZVsnbmFtZSddOwoJCSAgfQoJICAgICAgfQoJICB9CgoJICRtb2QtPnNtYXJ0eS0+YXNzaWduKCRmb3JtLT5NYWtlVmFyKCRmaWVsZC0+R2V0TmFtZSgpKSwkcmVwbFZhbCk7CgkgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2ZsZF8nLiRmaWVsZC0+R2V0SWQoKSwkcmVwbFZhbCk7CgkgJG1vZC0+c21hcnR5LT5hc3NpZ24oJGZvcm0tPk1ha2VWYXIoJGZpZWxkLT5HZXROYW1lKCkpLidfYXJyYXknLCRyZXBsVmFscyk7CgkgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2ZsZF8nLiRmaWVsZC0+R2V0SWQoKS4nX2FycmF5JywkcmVwbFZhbHMpOwoKICAgICAgfQoKICAgICRtZXNzYWdlID0gJG1vZC0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoICRtZXNzYWdlICk7CiAgICAkc3ViamVjdCA9ICRtb2QtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCAkc3ViamVjdCApOwogICAgJG1haWwtPlNldFN1YmplY3QoJHN1YmplY3QpOwogICAgIGlmICgkaHRtbGVtYWlsKQoJIAl7CgkJJG1lc3NhZ2UyID0gJG1vZC0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoJG1lc3NhZ2UyKTsKCQkkbWFpbC0+U2V0QWx0Qm9keShzdHJpcF90YWdzKGh0bWxfZW50aXR5X2RlY29kZSgkbWVzc2FnZSkpKTsKCQkkbWFpbC0+U2V0Qm9keSgkbWVzc2FnZTIpOwoJCX0KCSBlbHNlCgkgCXsKCSAJJG1haWwtPlNldEJvZHkoaHRtbF9lbnRpdHlfZGVjb2RlKCRtZXNzYWdlKSk7CgkJfQogICAgLy8gc2VuZCB0aGUgbWVzc2FnZS4uLgogICAgaWYgKCEgaXNfYXJyYXkoJGRlc3RpbmF0aW9uX2FycmF5KSkKICAgICAgewoJJGRlc3RpbmF0aW9uX2FycmF5ID0gYXJyYXkoJGRlc3RpbmF0aW9uX2FycmF5KTsKICAgICAgfQogICAgZm9yZWFjaCAoJGRlc3RpbmF0aW9uX2FycmF5IGFzICR0aGlzRGVzdCkKICAgICAgewoJJG1haWwtPkFkZEFkZHJlc3MoJHRoaXNEZXN0KTsKICAgICAgfQoKICAgICRyZXMgPSAkbWFpbC0+U2VuZCgpOwogICAgaWYgKCRyZXMgPT09IGZhbHNlKQogICAgICB7CglhdWRpdCgtMSwgKGlzc2V0KCRuYW1lKT8kbmFtZToiIiksICRtb2QtPkxhbmcoJ3N1Ym1pdF9lcnJvcicsJG1haWwtPkdldEVycm9ySW5mbygpKSk7CiAgICAgIH0KICAgIGVsc2UgaWYgKCRtb2QtPkdldFByZWZlcmVuY2UoJ2VuYWJsZV9hbnRpc3BhbScsMSkpCgkgCXsKCQkkZGIgPSYgJGdDbXMtPkdldERiKCk7CgoJCSRyZWNfaWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2lwX2xvZ19zZXEnKTsKCQkkcXVlcnkgPSAnSU5TRVJUIElOVE8gJy5jbXNfZGJfcHJlZml4KCkuCgkJCSdtb2R1bGVfZmJfaXBfbG9nIChzZW50X2lkLCBzcmNfaXAsIHNlbnRfdGltZSkgVkFMVUVTICg/LCA/LCA/KSc7CgkgICAKCQkkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkcmVjX2lkLCAkX1NFUlZFUlsnUkVNT1RFX0FERFInXSwKCQkJCQkJICAgdHJpbSgkZGItPkRCVGltZVN0YW1wKHRpbWUoKSksIiciKSkpOwoJCX0KICAgIHJldHVybiBhcnJheSgkcmVzLCAkbWFpbC0+R2V0RXJyb3JJbmZvKCkpOwogIH0KCiAgZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm1CYXNlKCRmb3JtRGVzY3JpcHRvcikKICB7CiAgICAkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICRtZXNzYWdlID0gJHRoaXMtPkdldE9wdGlvbignZW1haWxfdGVtcGxhdGUnLCcnKTsKCiAgICByZXR1cm4gYXJyYXkoCgkJIGFycmF5KAoJCSAgICAgICBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9lbWFpbF9zdWJqZWN0JyksJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2VtYWlsX3N1YmplY3QnLCR0aGlzLT5HZXRPcHRpb24oJ2VtYWlsX3N1YmplY3QnLCcnKSw1MCkuJzxici8+Jy4kbW9kLT5MYW5nKCdjYW51c2Vfc21hcnR5JykpLAoJCSAgICAgICBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9lbWFpbF9mcm9tX25hbWUnKSwkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZW1haWxfZnJvbV9uYW1lJywkdGhpcy0+R2V0T3B0aW9uKCdlbWFpbF9mcm9tX25hbWUnLCRtb2QtPkxhbmcoJ2ZyaWVuZGx5bmFtZScpKSwyNSwxMjgpKSwKCQkgICAgICAgYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZW1haWxfZnJvbV9hZGRyZXNzJyksJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2VtYWlsX2Zyb21fYWRkcmVzcycsJHRoaXMtPkdldE9wdGlvbignZW1haWxfZnJvbV9hZGRyZXNzJywnJyksMjUsMTI4KSksCgkJICAgICAgICksCgkJIGFycmF5KAoJCSAJCSBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9odG1sX2VtYWlsJyksCgkJIAkJIAkkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkZm9ybURlc2NyaXB0b3IsJ2ZicnBfb3B0X2h0bWxfZW1haWwnLCcwJykuJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9odG1sX2VtYWlsJywKICAgICAgICAgICAgCQknMScsJHRoaXMtPkdldE9wdGlvbignaHRtbF9lbWFpbCcsJzAnKSkpLAoJCSAgICAgICBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9lbWFpbF90ZW1wbGF0ZScpLAoJCQkgICAgIGFycmF5KCRtb2QtPkNyZWF0ZVRleHRBcmVhKGZhbHNlLCAkZm9ybURlc2NyaXB0b3IsCgkJCQkJCQkoJHRoaXMtPkdldE9wdGlvbignaHRtbF9lbWFpbCcsJzAnKT09JzEnPyRtZXNzYWdlOmh0bWxzcGVjaWFsY2hhcnMoJG1lc3NhZ2UpKSwnZmJycF9vcHRfZW1haWxfdGVtcGxhdGUnLCAnbW9kdWxlX2ZiX2FyZWFfd2lkZScsICcnLCcnLDAsMCksCgkJCQkJCQkkdGhpcy0+Zm9ybV9wdHItPkFkbWluVGVtcGxhdGVIZWxwKCRmb3JtRGVzY3JpcHRvcikpKSwKCQkgICAgICAgYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZW1haWxfZW5jb2RpbmcnKSwkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZW1haWxfZW5jb2RpbmcnLCR0aGlzLT5HZXRPcHRpb24oJ2VtYWlsX2VuY29kaW5nJywndXRmLTgnKSwyNSwxMjgpKQoJCSAgICAgICApCgkJICk7CiAgfQoKfQoKLy8gRU9GCj8+]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionEmailConfirmation.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpyZXF1aXJlX29uY2UoJ0Rpc3Bvc2l0aW9uRW1haWxCYXNlLmNsYXNzLnBocCcpOwoKY2xhc3MgZmJEaXNwb3NpdGlvbkVtYWlsQ29uZmlybWF0aW9uIGV4dGVuZHMgZmJEaXNwb3NpdGlvbkVtYWlsQmFzZSB7CgoJdmFyICR2YWxpZGF0ZWQ7CgoJZnVuY3Rpb24gZmJEaXNwb3NpdGlvbkVtYWlsQ29uZmlybWF0aW9uKCYkZm9ybV9wdHIsICYkcGFyYW1zKQoJewogICAgICAgICR0aGlzLT5mYkRpc3Bvc2l0aW9uRW1haWxCYXNlKCRmb3JtX3B0ciwgJHBhcmFtcyk7CiAgICAgICAgJG1vZCA9ICYkZm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHRoaXMtPlR5cGUgPSAnRGlzcG9zaXRpb25FbWFpbENvbmZpcm1hdGlvbic7CgkJJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwoJCSR0aGlzLT5Ob25SZXF1aXJhYmxlRmllbGQgPSBmYWxzZTsKCQkkdGhpcy0+RGlzcGxheUluU3VibWlzc2lvbiA9IHRydWU7CgkJJHRoaXMtPklzRGlzcG9zaXRpb24gPSB0cnVlOwoJCSR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgKICAgICAgIAkJKTsKICAgICAgIAkkdGhpcy0+VmFsaWRhdGlvblR5cGUgPSAnZW1haWwnOwogICAgICAgCSR0aGlzLT5tb2RpZmllc090aGVyRmllbGRzID0gdHJ1ZTsKICAgICAgIAkkdGhpcy0+Zm9ybV9wdHItPkFkZFRlbXBsYXRlVmFyaWFibGUoJ2NvbmZpcm1fdXJsJywKICAgICAgIAkJJG1vZC0+TGFuZygndGl0bGVfY29uZmlybWF0aW9uX3VybCcpKTsKICAgICAgIAkkdGhpcy0+YXBwcm92ZWRUb0dvID0gZmFsc2U7CiAgICB9CgogICAgZnVuY3Rpb24gU3RhdHVzSW5mbygpCgl7CiAgICAgICAgcmV0dXJuICR0aGlzLT5UZW1wbGF0ZVN0YXR1cygpOwoJfQoKCWZ1bmN0aW9uIEFwcHJvdmVUb0dvKCRyZXNwb25zZV9pZCkKCXsKCSR0aGlzLT5hcHByb3ZlZFRvR28gPSB0cnVlOwoJfQoKCWZ1bmN0aW9uIE1vZGlmeU90aGVyRmllbGRzKCkKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCgkJaWYgKCR0aGlzLT5mb3JtX3B0ci0+R2V0Rm9ybVN0YXRlKCkgPT0gJ3VwZGF0ZScpCgkJCXsKCQkJJHRoaXMtPmFwcHJvdmVkVG9HbyA9IHRydWU7CgkJCXJldHVybjsKCQkJfQoJCS8vIElmIHdlIGhhdmVuJ3QgYmVlbiBhcHByb3ZlZCwgaW5oaWJpdCBhbGwgb3RoZXIgZGlzcG9zaXRpb25zIQoJCSRvdGhlcnMgPSAmJHRoaXMtPmZvcm1fcHRyLT5HZXRGaWVsZHMoKTsKCgkJZm9yKCRpPTA7JGk8Y291bnQoJG90aGVycyk7JGkrKykKCQkJewoJCQlpZiAoJHRoaXMtPmFwcHJvdmVkVG9HbyAmJiAkb3RoZXJzWyRpXS0+R2V0RmllbGRUeXBlKCkgPT0gJ0Rpc3Bvc2l0aW9uRGF0YWJhc2UnKQoJCQkJewoJCQkJJG90aGVyc1skaV0tPlNldEFwcHJvdmFsTmFtZSgkdGhpcy0+R2V0VmFsdWUoKSk7CgkJCQl9CgkJCWVsc2VpZiAoISAkdGhpcy0+YXBwcm92ZWRUb0dvICYmICRvdGhlcnNbJGldLT5Jc0Rpc3Bvc2l0aW9uKCkpCgkJCQl7CgkJCQkkb3RoZXJzWyRpXS0+U2V0RGlzcG9zaXRpb25QZXJtaXNzaW9uKGZhbHNlKTsKCQkJCX0KCQkJfQoJCSR0aGlzLT5TZXREaXNwb3NpdGlvblBlcm1pc3Npb24odHJ1ZSk7CQkKCX0KCglmdW5jdGlvbiBHZXRGaWVsZElucHV0KCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQlyZXR1cm4gJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2ZicnBfXycuJHRoaXMtPklkLAoJCQlodG1sc3BlY2lhbGNoYXJzKCR0aGlzLT5WYWx1ZSwgRU5UX1FVT1RFUyksMjUsODApOwoJfQoKCiAgICAvLyBTZW5kIG9mZiB0aG9zZSBlbWFpbHMKCWZ1bmN0aW9uIERpc3Bvc2VGb3JtKCRyZXR1cm5pZCkKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQlpZiAoISAkdGhpcy0+YXBwcm92ZWRUb0dvKQoJCQl7CgkJCS8vIGNyZWF0ZSByZXNwb25zZSBVUkwKCQkJbGlzdCgkcmlkLCRjb2RlKSA9ICR0aGlzLT5mb3JtX3B0ci0+U3RvcmVSZXNwb25zZSgpOwoJCQkJCQoJCQkkbW9kLT5zbWFydHktPmFzc2lnbignY29uZmlybV91cmwnLCRtb2QtPkNyZWF0ZUZyb250ZW5kTGluaygnJywgJHJldHVybmlkLAoJCQkJJ3ZhbGlkYXRlJywgJycsIGFycmF5KCdmYnJwX2YnPT4kdGhpcy0+Zm9ybV9wdHItPkdldElkKCksJ2ZicnBfcic9PiRyaWQsJ2ZicnBfYyc9PiRjb2RlKSwgJycsCgkJCQl0cnVlLGZhbHNlLCcnLHRydWUpKTsKCQkJcmV0dXJuICR0aGlzLT5TZW5kRm9ybSgkdGhpcy0+R2V0VmFsdWUoKSwkdGhpcy0+R2V0T3B0aW9uKCdlbWFpbF9zdWJqZWN0JykpOwoJCQl9CgkJZWxzZQoJCQl7CgkJCXJldHVybiBhcnJheSh0cnVlLCcnKTsKCQkJfQoJfQoKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCSAgJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkgIAoJICBnbG9iYWwgJGdDbXM7CgkgICRjb250ZW50b3BzID0mICRnQ21zLT5HZXRDb250ZW50T3BlcmF0aW9ucygpOwoKCSAgbGlzdCgkbWFpbiwkYWR2KSA9ICR0aGlzLT5QcmVQb3B1bGF0ZUFkbWluRm9ybUJhc2UoJGZvcm1EZXNjcmlwdG9yKTsKCSAgYXJyYXlfcHVzaCgkbWFpbixhcnJheSgkbW9kLT5MYW5nKCdyZWRpcmVjdF9hZnRlcl9hcHByb3ZhbCcpLAoJCQkJIEAkY29udGVudG9wcy0+Q3JlYXRlSGllcmFyY2h5RHJvcGRvd24oJycsJHRoaXMtPkdldE9wdGlvbigncmVkaXJlY3RfcGFnZScsJzAnKSwgJGZvcm1EZXNjcmlwdG9yLidmYnJwX29wdF9yZWRpcmVjdF9wYWdlJykpKTsKCSAgcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwoJfQoKCWZ1bmN0aW9uIFBvc3RQb3B1bGF0ZUFkbWluRm9ybSgmJG1haW5BcnJheSwgJiRhZHZBcnJheSkKCXsKCQkvLyR0aGlzLT5IaWRkZW5EaXNwb3NpdGlvbkZpZWxkcygkbWFpbkFycmF5LCAkYWR2QXJyYXkpOwkJCgl9CgoJZnVuY3Rpb24gVmFsaWRhdGUoKQoJewogIAkJJHRoaXMtPnZhbGlkYXRlZCA9IHRydWU7CiAgCQkkdGhpcy0+dmFsaWRhdGlvbkVycm9yVGV4dCA9ICcnOwoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCXN3aXRjaCAoJHRoaXMtPlZhbGlkYXRpb25UeXBlKQoJCSAgewoJCSAgCSAgIGNhc2UgJ2VtYWlsJzoKICAgICAgICAgICAgICAgICAgaWYgKCR0aGlzLT5WYWx1ZSAhPT0gZmFsc2UgJiYKICAgICAgICAgICAgICAgICAgICAgICEgcHJlZ19tYXRjaCgoJG1vZC0+R2V0UHJlZmVyZW5jZSgncmVsYXhlZF9lbWFpbF9yZWdleCcsJzAnKT09MD8kbW9kLT5lbWFpbF9yZWdleDokbW9kLT5lbWFpbF9yZWdleF9yZWxheGVkKSwgJHRoaXMtPlZhbHVlKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnZhbGlkYXRlZCA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgICR0aGlzLT52YWxpZGF0aW9uRXJyb3JUZXh0ID0gJG1vZC0+TGFuZygncGxlYXNlX2VudGVyX2FuX2VtYWlsJywkdGhpcy0+TmFtZSk7CiAgICAgICAgICAgICAgICAgICAgfQoJCSAgCSAgICAgICBicmVhazsKCQkgIH0KCQlyZXR1cm4gYXJyYXkoJHRoaXMtPnZhbGlkYXRlZCwgJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQpOwoJfQoKCn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionFile.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkRpc3Bvc2l0aW9uRmlsZSBleHRlbmRzICBmYkZpZWxkQmFzZSAKewoKICB2YXIgJHNhbXBsZVRlbXBsYXRlQ29kZTsKICB2YXIgJHNhbXBsZUhlYWRlcjsKCiAgZnVuY3Rpb24gZmJEaXNwb3NpdGlvbkZpbGUoJiRmb3JtX3B0ciwgJiRwYXJhbXMpCiAgewogICAgJHRoaXMtPmZiRmllbGRCYXNlKCRmb3JtX3B0ciwgJHBhcmFtcyk7CiAgICAkbW9kID0gJiRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICR0aGlzLT5UeXBlID0gJ0Rpc3Bvc2l0aW9uRmlsZSc7CiAgICAkdGhpcy0+SXNEaXNwb3NpdGlvbiA9IHRydWU7CiAgICAkdGhpcy0+Tm9uUmVxdWlyYWJsZUZpZWxkID0gdHJ1ZTsKICAgICR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gZmFsc2U7CiAgICAkdGhpcy0+c29ydGFibGUgPSBmYWxzZTsKICAgICR0aGlzLT5zYW1wbGVUZW1wbGF0ZUNvZGUgPSAiPHNjcmlwdCB0eXBlPVwidGV4dC9qYXZhc2NyaXB0XCI+XG4KZnVuY3Rpb24gcG9wdWxhdGVfZmlsZShmb3JtbmFtZSkKICAgIHsKICAgIHZhciBmbmFtZSA9ICdJRGZicnBfb3B0X2ZpbGVfdGVtcGxhdGUnOwogICAgZm9ybW5hbWVbZm5hbWVdLnZhbHVlPVRFTVBMQVRFOwogICAgfQo8L3NjcmlwdD4KPGlucHV0IHR5cGU9XCJidXR0b25cIiB2YWx1ZT1cIiIuJG1vZC0+TGFuZygndGl0bGVfY3JlYXRlX3NhbXBsZV90ZW1wbGF0ZScpLiJcIiBvbkNsaWNrPVwiamF2YXNjcmlwdDpwb3B1bGF0ZV9maWxlKHRoaXMuZm9ybSlcIiAvPiI7CiAgICAkdGhpcy0+c2FtcGxlSGVhZGVyID0gIjxzY3JpcHQgdHlwZT1cInRleHQvamF2YXNjcmlwdFwiPlxuCmZ1bmN0aW9uIHBvcHVsYXRlX2hlYWRlcihmb3JtbmFtZSkKICAgIHsKICAgIHZhciBmbmFtZSA9ICdJRGZicnBfb3B0X2ZpbGVfaGVhZGVyJzsKICAgIGZvcm1uYW1lW2ZuYW1lXS52YWx1ZT1URU1QTEFURTsKICAgIH0KPC9zY3JpcHQ+CjxpbnB1dCB0eXBlPVwiYnV0dG9uXCIgdmFsdWU9XCIiLiRtb2QtPkxhbmcoJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaGVhZGVyJykuIlwiIG9uQ2xpY2s9XCJqYXZhc2NyaXB0OnBvcHVsYXRlX2hlYWRlcih0aGlzLmZvcm0pXCIgLz4iOwogIH0KCiAgZnVuY3Rpb24gU3RhdHVzSW5mbygpCiAgewogICAgJG1vZD0mJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgcmV0dXJuICR0aGlzLT5HZXRPcHRpb24oJ2ZpbGVzcGVjJywkbW9kLT5MYW5nKCd1bnNwZWNpZmllZCcpKTsKICB9CgogIGZ1bmN0aW9uIERpc3Bvc2VGb3JtKCRyZXR1cm5pZCkKICB7CiAgICAkbW9kPSYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkY291bnQgPSAwOwogICAgd2hpbGUgKCEgJG1vZC0+R2V0RmlsZUxvY2soKSAmJiAkY291bnQ8MjAwKQogICAgICB7CgkkY291bnQrKzsKCXVzbGVlcCg1MDApOwogICAgICB9CiAgICBpZiAoJGNvdW50ID09IDIwMCkKICAgICAgewoJcmV0dXJuIGFycmF5KGZhbHNlLCAkbW9kLT5MYW5nKCdzdWJtaXNzaW9uX2Vycm9yX2ZpbGVfbG9jaycpKTsKICAgICAgfQoKICAgICRmaWxlc3BlYyA9ICRtb2QtPmNvbmZpZ1sncm9vdF9wYXRoJ10uJy9tb2R1bGVzL0Zvcm1CdWlsZGVyL291dHB1dC8nLgogICAgICBwcmVnX3JlcGxhY2UoIi9bXlx3XGRcLl18XC5cLi8iLCAiXyIsICR0aGlzLT5HZXRPcHRpb24oJ2ZpbGVzcGVjJywnZm9ybV9zdWJtaXNzaW9ucy50eHQnKSk7CgogICAgJGxpbmUgPSAnJzsKICAgIGlmICghIGZpbGVfZXhpc3RzKCRmaWxlc3BlYykpCiAgICAgIHsKCSRoZWFkZXIgPSAkdGhpcy0+R2V0T3B0aW9uKCdmaWxlX2hlYWRlcicsJycpOwoJaWYgKCRoZWFkZXIgPT0gJycpCgkgIHsKCSAgICAkaGVhZGVyID0gJHRoaXMtPmNyZWF0ZVNhbXBsZUhlYWRlcigpOwoJICB9IAoJJGhlYWRlciAuPSAiXG4iOwogICAgICB9CiAgICAkdGVtcGxhdGUgPSAkdGhpcy0+R2V0T3B0aW9uKCdmaWxlX3RlbXBsYXRlJywnJyk7CiAgICBpZiAoJHRlbXBsYXRlID09ICcnKQogICAgICB7CgkkdGVtcGxhdGUgPSAkdGhpcy0+Y3JlYXRlU2FtcGxlVGVtcGxhdGUoKTsKICAgICAgfQogICAgJGxpbmUgPSAkaGVhZGVyLiR0ZW1wbGF0ZTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdzdWJfZm9ybV9uYW1lJywkdGhpcy0+Zm9ybV9wdHItPkdldE5hbWUoKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignc3ViX2RhdGUnLGRhdGUoJ3InKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignc3ViX2hvc3QnLCRfU0VSVkVSWydTRVJWRVJfTkFNRSddKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdzdWJfc291cmNlX2lwJywkX1NFUlZFUlsnUkVNT1RFX0FERFInXSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignc3ViX3VybCcsJF9TRVJWRVJbJ0hUVFBfUkVGRVJFUiddKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdUQUInLCJcdCIpOwogICAgJG90aGVycyA9ICYkdGhpcy0+Zm9ybV9wdHItPkdldEZpZWxkcygpOwogICAgJHVuc3BlYyA9ICR0aGlzLT5mb3JtX3B0ci0+R2V0QXR0cigndW5zcGVjaWZpZWQnLCRtb2QtPkxhbmcoJ3Vuc3BlY2lmaWVkJykpOwoJCQogICAgZm9yKCRpPTA7JGk8Y291bnQoJG90aGVycyk7JGkrKykKICAgICAgewoJJHJlcGxWYWwgPSAnJzsKCSRyZXBsVmFscyA9IGFycmF5KCk7CglpZiAoJG90aGVyc1skaV0tPkRpc3BsYXlJblN1Ym1pc3Npb24oKSkKCSAgewoJICAgICRyZXBsVmFsID0gJG90aGVyc1skaV0tPkdldEh1bWFuUmVhZGFibGVWYWx1ZSgpOwoJICAgIGlmICgkcmVwbFZhbCA9PSAnJykKCSAgICAgIHsKCQkgICRyZXBsVmFsID0gJHVuc3BlYzsKCSAgICAgIH0KCSAgICBpZiAoJG90aGVyc1skaV0tPkhhc011bHRpcGxlVmFsdWVzKCkpCgkgICAgICAgIHsKCSAgICAgICAgJHJlcGxWYWxzID0gJG90aGVyc1skaV0tPkdldFZhbHVlKCk7CgkgICAgICAgIH0KCSAgfQoJICAkbW9kLT5zbWFydHktPmFzc2lnbigkdGhpcy0+TWFrZVZhcigkb3RoZXJzWyRpXS0+R2V0bmFtZSgpKSwkcmVwbFZhbCk7CgkgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdmbGRfJy4kb3RoZXJzWyRpXS0+R2V0SWQoKSwkcmVwbFZhbCk7CiRtb2QtPnNtYXJ0eS0+YXNzaWduKCR0aGlzLT5NYWtlVmFyKCRvdGhlcnNbJGldLT5HZXRuYW1lKCkpLidfYXJyYXknLCRyZXBsVmFscyk7CiRtb2QtPnNtYXJ0eS0+YXNzaWduKCdmbGRfJy4kb3RoZXJzWyRpXS0+R2V0SWQoKS4nX2FycmF5JywkcmVwbFZhbHMpOwogICAgICB9CgogICAgJG5ld2xpbmUgPSAkbW9kLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSggJGxpbmUgKTsKICAgIGlmIChzdWJzdHIoJG5ld2xpbmUsLTEsMSkgIT0gIlxuIikKICAgICAgewoJJG5ld2xpbmUgLj0gIlxuIjsKICAgICAgfQogICAgJGYyID0gZm9wZW4oJGZpbGVzcGVjLCJhIik7CiAgICBmd3JpdGUoJGYyLCRuZXdsaW5lKTsKICAgIGZjbG9zZSgkZjIpOyAKICAgICRtb2QtPlJldHVybkZpbGVMb2NrKCk7CiAgICByZXR1cm4gYXJyYXkodHJ1ZSwnJyk7ICAgICAgICAKICB9CgogIGZ1bmN0aW9uIE1ha2VWYXIoJHN0cmluZykKICB7CiAgICAkbWF4dmFybGVuID0gMjQ7CiAgICAkc3RyaW5nID0gc3RydG9sb3dlcihwcmVnX3JlcGxhY2UoJy9ccysvJywnXycsJHN0cmluZykpOwogICAgJHN0cmluZyA9IHN0cnRvbG93ZXIocHJlZ19yZXBsYWNlKCcvXFcvJywnXycsJHN0cmluZykpOwogICAgaWYgKHN0cmxlbigkc3RyaW5nKSA+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+TGFuZygndGl0bGVfZmlsZV9uYW1lJyksCgkJCSAgICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9maWxlc3BlYycsCgkJCQkJCSAkdGhpcy0+R2V0T3B0aW9uKCdmaWxlc3BlYycsJ2Zvcm1fc3VibWlzc2lvbnMudHh0JyksMjUsMTI4KSkpOwogICAgYXJyYXlfcHVzaCgkYWR2LGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2ZpbGVfdGVtcGxhdGUnKSwKCQkJICBhcnJheSgkbW9kLT5DcmVhdGVUZXh0QXJlYShmYWxzZSwgJGZvcm1EZXNjcmlwdG9yLAoJCQkJCQkgICAgIGh0bWxzcGVjaWFsY2hhcnMoJHRoaXMtPkdldE9wdGlvbignZmlsZV90ZW1wbGF0ZScsJycpKSwnZmJycF9vcHRfZmlsZV90ZW1wbGF0ZScsICdtb2R1bGVfZmJfYXJlYV9zaG9ydCcsICcnLCcnLDAsMCksJHJldCkpKTsKICAgIGFycmF5X3B1c2goJGFkdixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9maWxlX2hlYWRlcicpLAoJCQkgICRtb2QtPkNyZWF0ZVRleHRBcmVhKGZhbHNlLCAkZm9ybURlc2NyaXB0b3IsCgkJCQkJICAgICAgIGh0bWxzcGVjaWFsY2hhcnMoJHRoaXMtPkdldE9wdGlvbignZmlsZV9oZWFkZXInLCcnKSksJ2ZicnBfb3B0X2ZpbGVfaGVhZGVyJywgJ21vZHVsZV9mYl9hcmVhX3Nob3J0JywgJycsJycsMCwwKSkpOwoKICAgIHJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLCdhZHYnPT4kYWR2KTsKICB9CgogIGZ1bmN0aW9uIFBvc3RQb3B1bGF0ZUFkbWluRm9ybSgmJG1haW5BcnJheSwgJiRhZHZBcnJheSkKICB7CiAgICAkdGhpcy0+SGlkZGVuRGlzcG9zaXRpb25GaWVsZHMoJG1haW5BcnJheSwgJGFkdkFycmF5KTsKICB9Cn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionFileDirector.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCgogICBUaGlzIGZpbGU6IENvcHlyaWdodCAoYykgMjAwNyBSb2JlcnQgQ2FtcGJlbGwgPGNhbGd1eTEwMDBAaG90bWFpbC5jb20+CiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiovCgpjbGFzcyBmYkRpc3Bvc2l0aW9uRmlsZURpcmVjdG9yIGV4dGVuZHMgZmJGaWVsZEJhc2UgCnsKICB2YXIgJGZpbGVDb3VudDsKICB2YXIgJGZpbGVBZGQ7CiAgdmFyICRzYW1wbGVUZW1wbGF0ZUNvZGU7CiAgdmFyICRzYW1wbGVIZWFkZXI7CiAgdmFyICRkZmx0X2ZpbGVwYXRoOwoKICBmdW5jdGlvbiBmYkRpc3Bvc2l0aW9uRmlsZURpcmVjdG9yKCYkZm9ybV9wdHIsICYkcGFyYW1zKQogIHsKICAgICR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgJG1vZCA9ICYkZm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkdGhpcy0+VHlwZSA9ICdEaXNwb3NpdGlvbkZpbGVEaXJlY3Rvcic7CiAgICAkdGhpcy0+SXNEaXNwb3NpdGlvbiA9IHRydWU7CiAgICAkdGhpcy0+RGlzcGxheUluU3VibWlzc2lvbiA9IGZhbHNlOwogICAgJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwogICAgJHRoaXMtPkhhc0FkZE9wID0gdHJ1ZTsKICAgICR0aGlzLT5IYXNEZWxldGVPcCA9IHRydWU7CiAgICAkdGhpcy0+c29ydGFibGUgPSBmYWxzZTsKICAgICR0aGlzLT5maWxlQWRkID0gMDsKCiAgICAkdGhpcy0+c2FtcGxlVGVtcGxhdGVDb2RlID0gIjxzY3JpcHQgdHlwZT1cInRleHQvamF2YXNjcmlwdFwiPlxuCmZ1bmN0aW9uIHBvcHVsYXRlX2ZpbGUoZm9ybW5hbWUpCiAgICB7CiAgICB2YXIgZm5hbWUgPSAnSURmYnJwX29wdF9maWxlX3RlbXBsYXRlJzsKICAgIGZvcm1uYW1lW2ZuYW1lXS52YWx1ZT1URU1QTEFURTsKICAgIH0KPC9zY3JpcHQ+CjxpbnB1dCB0eXBlPVwiYnV0dG9uXCIgdmFsdWU9XCIiLiRtb2QtPkxhbmcoJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfdGVtcGxhdGUnKS4iXCIgb25DbGljaz1cImphdmFzY3JpcHQ6cG9wdWxhdGVfZmlsZSh0aGlzLmZvcm0pXCIgLz4iOwogICAgJHRoaXMtPnNhbXBsZUhlYWRlciA9ICI8c2NyaXB0IHR5cGU9XCJ0ZXh0L2phdmFzY3JpcHRcIj5cbgpmdW5jdGlvbiBwb3B1bGF0ZV9oZWFkZXIoZm9ybW5hbWUpCiAgICB7CiAgICAgIHZhciBmbmFtZSA9ICdJRGZicnBfb3B0X2ZpbGVfaGVhZGVyJzsKICAgICAgZm9ybW5hbWVbZm5hbWVdLnZhbHVlPVRFTVBMQVRFOwogICAgfQo8L3NjcmlwdD4KPGlucHV0IHR5cGU9XCJidXR0b25cIiB2YWx1ZT1cIiIuJG1vZC0+TGFuZygndGl0bGVfY3JlYXRlX3NhbXBsZV9oZWFkZXInKS4iXCIgb25DbGljaz1cImphdmFzY3JpcHQ6cG9wdWxhdGVfaGVhZGVyKHRoaXMuZm9ybSlcIiAvPiI7CgogICAgZ2xvYmFsICRnQ21zOwogICAgJGNvbmZpZyA9JiAkZ0Ntcy0+Z2V0Q29uZmlnKCk7CiAgICAkdGhpcy0+ZGZsdF9maWxlcGF0aCA9ICRjb25maWdbJ3VwbG9hZHNfcGF0aCddOwogIH0KCgogIGZ1bmN0aW9uIERvT3B0aW9uQWRkKCYkcGFyYW1zKQogIHsKICAgICR0aGlzLT5maWxlQWRkID0gMTsKICB9CgogIGZ1bmN0aW9uIERvT3B0aW9uRGVsZXRlKCYkcGFyYW1zKQogIHsKICAgICRkZWxjb3VudCA9IDA7CiAgICBmb3JlYWNoICgkcGFyYW1zIGFzICR0aGlzS2V5PT4kdGhpc1ZhbCkKICAgICAgewoJaWYgKHN1YnN0cigkdGhpc0tleSwwLDkpID09ICdmYnJwX2RlbF8nKQoJICB7CgkgICAgJHRoaXMtPlJlbW92ZU9wdGlvbkVsZW1lbnQoJ2Rlc3RpbmF0aW9uX2ZpbGVuYW1lJywgJHRoaXNWYWwgLSAkZGVsY291bnQpOwoJICAgICR0aGlzLT5SZW1vdmVPcHRpb25FbGVtZW50KCdkZXN0aW5hdGlvbl9kaXNwbGF5bmFtZScsICR0aGlzVmFsIC0gJGRlbGNvdW50KTsKCSAgICAkZGVsY291bnQrKzsKCSAgfQogICAgICB9CiAgfQoKICBmdW5jdGlvbiBjb3VudEZpbGVzKCkKICB7CiAgICAkdG1wID0gJiR0aGlzLT5HZXRPcHRpb25SZWYoJ2Rlc3RpbmF0aW9uX2ZpbGVuYW1lJyk7CiAgICBpZiAoaXNfYXJyYXkoJHRtcCkpCiAgICAgIHsKCSR0aGlzLT5maWxlQ291bnQgPSBjb3VudCgkdG1wKTsKICAgICAgfQogICAgZWxzZWlmICgkdG1wICE9PSBmYWxzZSkKICAgICAgewoJJHRoaXMtPmZpbGVDb3VudCA9IDE7CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJJHRoaXMtPmZpbGVDb3VudCA9IDA7CiAgICAgIH0KICB9CgogIGZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQogIHsKICAgICRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgCiAgICAvLyB3aHkgYWxsIHRoaXM/IEFzc29jaWF0aXZlIGFycmF5cyBhcmUgbm90IGd1YXJhbnRlZWQgdG8gcHJlc2VydmUKICAgIC8vIG9yZGVyLCBleGNlcHQgaW4gImNocm9ub2xvZ2ljYWwiIGNyZWF0aW9uIG9yZGVyLgogICAgJHNvcnRlZCA9YXJyYXkoKTsKICAgIGlmICgkdGhpcy0+R2V0T3B0aW9uKCdzZWxlY3Rfb25lJywnJykgIT0gJycpCiAgICAgIHsKCSRzb3J0ZWRbJyAnLiR0aGlzLT5HZXRPcHRpb24oJ3NlbGVjdF9vbmUnLCcnKV09Jyc7CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJJHNvcnRlZFsnICcuJG1vZC0+TGFuZygnc2VsZWN0X29uZScpXT0nJzsKICAgICAgfQogICAgJGRpc3BsYXluYW1lcyA9ICYkdGhpcy0+R2V0T3B0aW9uUmVmKCdkZXN0aW5hdGlvbl9kaXNwbGF5bmFtZScpOwogICAgCiAgICBpZiAoY291bnQoJGRpc3BsYXluYW1lcykgPiAxKQogICAgICB7Cglmb3IoJGk9MDskaTxjb3VudCgkZGlzcGxheW5hbWVzKTskaSsrKQoJICB7CgkgICAgJHNvcnRlZFskZGlzcGxheW5hbWVzWyRpXV09KCRpKzEpOwoJICB9CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJJHNvcnRlZFskZGlzcGxheW5hbWVzXSA9ICcxJzsKICAgICAgfQogICAgcmV0dXJuICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQsICRzb3J0ZWQsIC0xLCAkdGhpcy0+VmFsdWUsICdpZD0iJy4kaWQuICdfJy4kdGhpcy0+SWQuJyInKTsKICB9CgogIGZ1bmN0aW9uIFN0YXR1c0luZm8oKQogIHsKICAgICR0aGlzLT5jb3VudEZpbGVzKCk7CiAgICAkbW9kPSYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkcmV0PSAkbW9kLT5MYW5nKCdmaWxlX2NvdW50JywkdGhpcy0+ZmlsZUNvdW50KTsKICAgIHJldHVybiAkcmV0OwogIH0KCiAgZnVuY3Rpb24gRGlzcG9zZUZvcm0oJHJldHVybmlkKQogIHsKICAgICRtb2Q9JiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICRjb3VudCA9IDA7CiAgICB3aGlsZSAoISAkbW9kLT5HZXRGaWxlTG9jaygpICYmICRjb3VudDwyMDApCiAgICAgIHsKCSRjb3VudCsrOwoJdXNsZWVwKDUwMCk7CiAgICAgIH0KICAgIGlmICgkY291bnQgPT0gMjAwKQogICAgICB7CglyZXR1cm4gYXJyYXkoZmFsc2UsICRtb2QtPkxhbmcoJ3N1Ym1pc3Npb25fZXJyb3JfZmlsZV9sb2NrJykpOwogICAgICB9CgoKICAgICRkaXIgPSAkdGhpcy0+R2V0T3B0aW9uKCdmaWxlX3BhdGgnLCR0aGlzLT5kZmx0X2ZpbGVwYXRoKS4nLyc7CiAgICAkZmlsZXNwZWMgPSAkZGlyLgogICAgICBwcmVnX3JlcGxhY2UoIi9bXlx3XGRcLl18XC5cLi8iLCAiXyIsIAoJCSAgICR0aGlzLT5HZXRPcHRpb25FbGVtZW50KCdkZXN0aW5hdGlvbl9maWxlbmFtZScsCgkJCQkJICAgKCR0aGlzLT5WYWx1ZSAtIDEpKSk7CgogICAgJGxpbmUgPSAnJzsKICAgIGlmICghIGZpbGVfZXhpc3RzKCRmaWxlc3BlYykpCiAgICAgIHsKCSRoZWFkZXIgPSAkdGhpcy0+R2V0T3B0aW9uKCdmaWxlX2hlYWRlcicsJycpOwoJaWYgKCRoZWFkZXIgPT0gJycpCgkgIHsKCSAgICAkaGVhZGVyID0gJHRoaXMtPmNyZWF0ZVNhbXBsZUhlYWRlcigpOwoJICB9IAoJJGhlYWRlciAuPSAiXG4iOwogICAgICB9CiAgICAkdGVtcGxhdGUgPSAkdGhpcy0+R2V0T3B0aW9uKCdmaWxlX3RlbXBsYXRlJywnJyk7CiAgICBpZiAoJHRlbXBsYXRlID09ICcnKQogICAgICB7CgkkdGVtcGxhdGUgPSAkdGhpcy0+Y3JlYXRlU2FtcGxlVGVtcGxhdGUoKTsKICAgICAgfQogICAgJGxpbmUgPSAkaGVhZGVyLiR0ZW1wbGF0ZTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdzdWJfZm9ybV9uYW1lJywkdGhpcy0+Zm9ybV9wdHItPkdldE5hbWUoKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignc3ViX2RhdGUnLGRhdGUoJ3InKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignc3ViX2hvc3QnLCRfU0VSVkVSWydTRVJWRVJfTkFNRSddKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdzdWJfc291cmNlX2lwJywkX1NFUlZFUlsnUkVNT1RFX0FERFInXSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignc3ViX3VybCcsJF9TRVJWRVJbJ0hUVFBfUkVGRVJFUiddKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdUQUInLCJcdCIpOwogICAgJG90aGVycyA9ICYkdGhpcy0+Zm9ybV9wdHItPkdldEZpZWxkcygpOwogICAgJHVuc3BlYyA9ICR0aGlzLT5mb3JtX3B0ci0+R2V0QXR0cigndW5zcGVjaWZpZWQnLCRtb2QtPkxhbmcoJ3Vuc3BlY2lmaWVkJykpOwoJCQogICAgZm9yKCRpPTA7JGk8Y291bnQoJG90aGVycyk7JGkrKykKICAgICAgewoJJHJlcGxWYWwgPSAnJzsKCSRyZXBsVmFscyA9IGFycmF5KCk7CglpZiAoJG90aGVyc1skaV0tPkRpc3BsYXlJblN1Ym1pc3Npb24oKSkKCSAgewoJICAgICRyZXBsVmFsID0gJG90aGVyc1skaV0tPkdldEh1bWFuUmVhZGFibGVWYWx1ZSgpOwoJICAgIGlmICgkcmVwbFZhbCA9PSAnJykKCSAgICAgIHsKCQkgICRyZXBsVmFsID0gJHVuc3BlYzsKCSAgICAgIH0KCSAgICBpZiAoJG90aGVyc1skaV0tPkhhc011bHRpcGxlVmFsdWVzKCkpCgkgICAgICAgIHsKCSAgICAgICAgJHJlcGxWYWxzID0gJG90aGVyc1skaV0tPkdldFZhbHVlKCk7CgkgICAgICAgIH0KCSAgfQoJICAkbW9kLT5zbWFydHktPmFzc2lnbigkdGhpcy0+TWFrZVZhcigkb3RoZXJzWyRpXS0+R2V0bmFtZSgpKSwkcmVwbFZhbCk7CgkgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdmbGRfJy4kb3RoZXJzWyRpXS0+R2V0SWQoKSwkcmVwbFZhbCk7CiRtb2QtPnNtYXJ0eS0+YXNzaWduKCR0aGlzLT5NYWtlVmFyKCRvdGhlcnNbJGldLT5HZXRuYW1lKCkpLidfYXJyYXknLCRyZXBsVmFscyk7CiRtb2QtPnNtYXJ0eS0+YXNzaWduKCdmbGRfJy4kb3RoZXJzWyRpXS0+R2V0SWQoKS4nX2FycmF5JywkcmVwbFZhbHMpOwogICAgICB9CgogICAgJG5ld2xpbmUgPSAkbW9kLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSggJGxpbmUgKTsKICAgIGlmIChzdWJzdHIoJG5ld2xpbmUsLTEsMSkgIT0gIlxuIikKICAgICAgewoJJG5ld2xpbmUgLj0gIlxuIjsKICAgICAgfQoKICAgICRmMiA9IGZvcGVuKCRmaWxlc3BlYywiYSIpOwogICAgZndyaXRlKCRmMiwkbmV3bGluZSk7CiAgICBmY2xvc2UoJGYyKTsgCiAgICAkbW9kLT5SZXR1cm5GaWxlTG9jaygpOwogICAgcmV0dXJuIGFycmF5KHRydWUsJycpOyAgICAgICAgCiAgfQoKICBmdW5jdGlvbiBNYWtlVmFyKCRzdHJpbmcpCiAgewogICAgJG1heHZhcmxlbiA9IDI0OwogICAgJHN0cmluZyA9IHN0cnRvbG93ZXIocHJlZ19yZXBsYWNlKCcvXHMrLycsJ18nLCRzdHJpbmcpKTsKICAgICRzdHJpbmcgPSBzdHJ0b2xvd2VyKHByZWdfcmVwbGFjZSgnL1xXLycsJ18nLCRzdHJpbmcpKTsKICAgIGlmIChzdHJsZW4oJHN0cmluZykgPiAkbWF4dmFybGVuKQogICAgICB7Cgkkc3RyaW5nID0gc3Vic3RyKCRzdHJpbmcsMCwkbWF4dmFybGVuKTsKCSRwb3MgPSBzdHJycG9zKCRzdHJpbmcsJ18nKTsKCWlmICgkcG9zICE9PSBmYWxzZSkKCSAgewoJICAgICRzdHJpbmcgPSBzdWJzdHIoJHN0cmluZywwLCRwb3MpOwoJICB9CiAgICAgIH0KICAgIHJldHVybiAkc3RyaW5nOwogIH0KCiAgZnVuY3Rpb24gY3JlYXRlU2FtcGxlSGVhZGVyKCkKICB7CiAgICAkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICRvdGhlcnMgPSAmJHRoaXMtPmZvcm1fcHRyLT5HZXRGaWVsZHMoKTsKICAgICRmaWVsZHMgPSBhcnJheSgpOwogICAgZm9yKCRpPTA7JGk8Y291bnQoJG90aGVycyk7JGkrKykKICAgICAgewoJaWYgKCRvdGhlcnNbJGldLT5EaXNwbGF5SW5TdWJtaXNzaW9uKCkpCgkgIHsKCSAgICBhcnJheV9wdXNoKCRmaWVsZHMsJG90aGVyc1skaV0tPkdldE5hbWUoKSk7CgkgIH0KICAgICAgfQogICAgcmV0dXJuIGltcGxvZGUoJ3skVEFCfScsJGZpZWxkcyk7CiAgfQoKCiAgZnVuY3Rpb24gY3JlYXRlU2FtcGxlVGVtcGxhdGUoKQogIHsKICAgICRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgJG90aGVycyA9ICYkdGhpcy0+Zm9ybV9wdHItPkdldEZpZWxkcygpOwogICAgJGZpZWxkcyA9IGFycmF5KCk7CiAgICBmb3IoJGk9MDskaTxjb3VudCgkb3RoZXJzKTskaSsrKQogICAgICB7CglpZiAoJG90aGVyc1skaV0tPkRpc3BsYXlJblN1Ym1pc3Npb24oKSkKCSAgewoJICAgIGFycmF5X3B1c2goJGZpZWxkcywneyQnIC4gJHRoaXMtPk1ha2VWYXIoJG90aGVyc1skaV0tPkdldE5hbWUoKSkgLiAnfScpOwoJICB9CiAgICAgIH0KICAgIHJldHVybiBpbXBsb2RlKCd7JFRBQn0nLCRmaWVsZHMpOwogIH0KCgogIGZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKICB7CiAgICAkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCiAgICAkdGhpcy0+Y291bnRGaWxlcygpOwogICAgaWYoICR0aGlzLT5maWxlQWRkID4gMCApCiAgICAgIHsKCSR0aGlzLT5maWxlQ291bnQgKz0gJHRoaXMtPmZpbGVBZGQ7CgkkdGhpcy0+ZmlsZUFkZCA9IDA7CiAgICAgIH0KCiAgICAkZGVzdHMgPSAnPHRhYmxlIGNsYXNzPSJtb2R1bGVfZmJfdGFibGUiPjx0cj48dGg+Jy4kbW9kLT5MYW5nKCd0aXRsZV9zZWxlY3Rpb25fZGlzcGxheW5hbWUnKS4nPC90aD48dGg+Jy4KICAgICAgJG1vZC0+TGFuZygndGl0bGVfZGVzdGluYXRpb25fZmlsZW5hbWUnKS4nPC90aD48dGg+Jy4KICAgICAgJG1vZC0+TGFuZygndGl0bGVfZGVsZXRlJykuJzwvdGg+PC90cj4nOwoKICAgIGZvciAoJGk9MDskaTwoJHRoaXMtPmZpbGVDb3VudD4xPyR0aGlzLT5maWxlQ291bnQ6MSk7JGkrKykKICAgICAgewoJJGRlc3RzIC49ICAnPHRyPjx0ZD4nLgoJICAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZGVzdGluYXRpb25fZGlzcGxheW5hbWVbXScsJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ2Rlc3RpbmF0aW9uX2Rpc3BsYXluYW1lJywkaSksMjUsMTI4KS4KCSAgJzwvdGQ+PHRkPicuCgkgICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9kZXN0aW5hdGlvbl9maWxlbmFtZVtdJywkdGhpcy0+R2V0T3B0aW9uRWxlbWVudCgnZGVzdGluYXRpb25fZmlsZW5hbWUnLCRpKSwyNSwxMjgpLgoJICAnPC90ZD48dGQ+Jy4KCSAgJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX2RlbF8nLiRpLCAkaSwtMSkuCgkgICc8L3RkPjwvdHI+JzsKICAgICAgfQogICAgJGRlc3RzIC49ICc8L3RhYmxlPic7CgoKICAgICRyZXQgPSAnPHRhYmxlIGNsYXNzPSJtb2R1bGVfZmJfbGVnZW5kIj48dHI+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+TGFuZygndGl0bGVfc2VsZWN0X29uZV9tZXNzYWdlJyksCgkJCSAgICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsIAoJCQkJCQkgJ2ZicnBfb3B0X3NlbGVjdF9vbmUnLAoJICAgICR0aGlzLT5HZXRPcHRpb24oJ3NlbGVjdF9vbmUnLCRtb2QtPkxhbmcoJ3NlbGVjdF9vbmUnKSksMjUsMTI4KSkpOwogICAgYXJyYXlfcHVzaCgkbWFpbixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9kaXJlY3Rvcl9kZXRhaWxzJyksJGRlc3RzKSk7CgogICAgYXJyYXlfcHVzaCgkYWR2LGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2ZpbGVfcGF0aCcpLAoJCQkgICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsCgkJCQkJCSdmYnJwX29wdF9maWxlX3BhdGgnLAoJCQkJCQkkdGhpcy0+R2V0T3B0aW9uKCdmaWxlX3BhdGgnLCR0aGlzLT5kZmx0X2ZpbGVwYXRoKSw0MCwxMjgpKSk7CiAgICBhcnJheV9wdXNoKCRhZHYsYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZmlsZV90ZW1wbGF0ZScpLAoJCQkgIGFycmF5KCRtb2QtPkNyZWF0ZVRleHRBcmVhKGZhbHNlLCAkZm9ybURlc2NyaXB0b3IsCgkJCQkJCSAgICAgaHRtbHNwZWNpYWxjaGFycygkdGhpcy0+R2V0T3B0aW9uKCdmaWxlX3RlbXBsYXRlJywnJykpLCdmYnJwX29wdF9maWxlX3RlbXBsYXRlJywgJ21vZHVsZV9mYl9hcmVhX3Nob3J0JywgJycsJycsMCwwKSwkcmV0KSkpOwogICAgYXJyYXlfcHVzaCgkYWR2LGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2ZpbGVfaGVhZGVyJyksCgkJCSAgJG1vZC0+Q3JlYXRlVGV4dEFyZWEoZmFsc2UsICRmb3JtRGVzY3JpcHRvciwKCQkJCQkgICAgICAgaHRtbHNwZWNpYWxjaGFycygkdGhpcy0+R2V0T3B0aW9uKCdmaWxlX2hlYWRlcicsJycpKSwnZmJycF9vcHRfZmlsZV9oZWFkZXInLCAnbW9kdWxlX2ZiX2FyZWFfc2hvcnQnLCAnJywnJywwLDApKSk7CgogICAgcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwogIH0KCiAgZnVuY3Rpb24gUG9zdFBvcHVsYXRlQWRtaW5Gb3JtKCYkbWFpbkFycmF5LCAmJGFkdkFycmF5KQogIHsKICAgIC8vJHRoaXMtPkhpZGRlbkRpc3Bvc2l0aW9uRmllbGRzKCRtYWluQXJyYXksICRhZHZBcnJheSk7CiAgfQp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionMultiselectFileDirector.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCgogICBUaGlzIGZpbGU6IENvcHlyaWdodCAoYykgMjAwNyBSb2JlcnQgQ2FtcGJlbGwgPGNhbGd1eTEwMDBAaG90bWFpbC5jb20+CiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiovCgpjbGFzcyBmYkRpc3Bvc2l0aW9uTXVsdGlzZWxlY3RGaWxlRGlyZWN0b3IgZXh0ZW5kcyAgZmJGaWVsZEJhc2UgCnsKICB2YXIgJGZpbGVDb3VudDsKICB2YXIgJGZpbGVBZGQ7CiAgdmFyICRzYW1wbGVUZW1wbGF0ZUNvZGU7CiAgdmFyICRzYW1wbGVIZWFkZXI7CiAgdmFyICRkZmx0X2ZpbGVwYXRoOwoKICBmdW5jdGlvbiBmYkRpc3Bvc2l0aW9uTXVsdGlzZWxlY3RGaWxlRGlyZWN0b3IoJiRmb3JtX3B0ciwgJiRwYXJhbXMpCiAgewogICAgJHRoaXMtPmZiRmllbGRCYXNlKCRmb3JtX3B0ciwgJHBhcmFtcyk7CiAgICAkbW9kID0gJiRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICR0aGlzLT5UeXBlID0gJ0Rpc3Bvc2l0aW9uTXVsdGlzZWxlY3RGaWxlRGlyZWN0b3InOwogICAgJHRoaXMtPklzRGlzcG9zaXRpb24gPSB0cnVlOwogICAgJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwogICAgJHRoaXMtPkRpc3BsYXlJblN1Ym1pc3Npb24gPSBmYWxzZTsKICAgICR0aGlzLT5IYXNBZGRPcCA9IHRydWU7CiAgICAkdGhpcy0+SGFzRGVsZXRlT3AgPSB0cnVlOwogICAgJHRoaXMtPmhhc011bHRpcGxlRm9ybUNvbXBvbmVudHMgPSB0cnVlOwogICAgJHRoaXMtPnNvcnRhYmxlID0gZmFsc2U7CiAgICAkdGhpcy0+ZmlsZUFkZCA9IDA7CgoKICAgICR0aGlzLT5zYW1wbGVUZW1wbGF0ZUNvZGUgPSAiPHNjcmlwdCB0eXBlPVwidGV4dC9qYXZhc2NyaXB0XCI+XG4KZnVuY3Rpb24gcG9wdWxhdGVfZmlsZShmb3JtbmFtZSkKICAgIHsKICAgIHZhciBmbmFtZSA9ICdJRGZicnBfb3B0X2ZpbGVfdGVtcGxhdGUnOwogICAgZm9ybW5hbWVbZm5hbWVdLnZhbHVlPVRFTVBMQVRFOwogICAgfQo8L3NjcmlwdD4KPGlucHV0IHR5cGU9XCJidXR0b25cIiB2YWx1ZT1cIiIuJG1vZC0+TGFuZygndGl0bGVfY3JlYXRlX3NhbXBsZV90ZW1wbGF0ZScpLiJcIiBvbkNsaWNrPVwiamF2YXNjcmlwdDpwb3B1bGF0ZV9maWxlKHRoaXMuZm9ybSlcIiAvPiI7CiAgICAkdGhpcy0+c2FtcGxlSGVhZGVyID0gIjxzY3JpcHQgdHlwZT1cInRleHQvamF2YXNjcmlwdFwiPlxuCmZ1bmN0aW9uIHBvcHVsYXRlX2hlYWRlcihmb3JtbmFtZSkKICAgIHsKICAgICAgdmFyIGZuYW1lID0gJ0lEZmJycF9vcHRfZmlsZV9oZWFkZXInOwogICAgICBmb3JtbmFtZVtmbmFtZV0udmFsdWU9VEVNUExBVEU7CiAgICB9Cjwvc2NyaXB0Pgo8aW5wdXQgdHlwZT1cImJ1dHRvblwiIHZhbHVlPVwiIi4kbW9kLT5MYW5nKCd0aXRsZV9jcmVhdGVfc2FtcGxlX2hlYWRlcicpLiJcIiBvbkNsaWNrPVwiamF2YXNjcmlwdDpwb3B1bGF0ZV9oZWFkZXIodGhpcy5mb3JtKVwiIC8+IjsKCiAgICBnbG9iYWwgJGdDbXM7CiAgICAkY29uZmlnID0mICRnQ21zLT5nZXRDb25maWcoKTsKICAgICR0aGlzLT5kZmx0X2ZpbGVwYXRoID0gJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ107CiAgfQoKCiAgZnVuY3Rpb24gRG9PcHRpb25BZGQoJiRwYXJhbXMpCiAgewogICAgJHRoaXMtPmZpbGVBZGQgPSAxOwogIH0KCiAgZnVuY3Rpb24gRG9PcHRpb25EZWxldGUoJiRwYXJhbXMpCiAgewogICAgJGRlbGNvdW50ID0gMDsKICAgIGZvcmVhY2ggKCRwYXJhbXMgYXMgJHRoaXNLZXk9PiR0aGlzVmFsKQogICAgICB7CglpZiAoc3Vic3RyKCR0aGlzS2V5LDAsOSkgPT0gJ2ZicnBfZGVsXycpCgkgIHsKCSAgICAkdGhpcy0+UmVtb3ZlT3B0aW9uRWxlbWVudCgnZGVzdGluYXRpb25fZmlsZW5hbWUnLCAkdGhpc1ZhbCAtICRkZWxjb3VudCk7CgkgICAgJHRoaXMtPlJlbW92ZU9wdGlvbkVsZW1lbnQoJ2Rlc3RpbmF0aW9uX2Rpc3BsYXluYW1lJywgJHRoaXNWYWwgLSAkZGVsY291bnQpOwoJICAgICRkZWxjb3VudCsrOwoJICB9CiAgICAgIH0KICB9CgogIGZ1bmN0aW9uIGNvdW50RmlsZXMoKQogIHsKICAgICR0bXAgPSAmJHRoaXMtPkdldE9wdGlvblJlZignZGVzdGluYXRpb25fZmlsZW5hbWUnKTsKICAgIGlmIChpc19hcnJheSgkdG1wKSkKICAgICAgewoJJHRoaXMtPmZpbGVDb3VudCA9IGNvdW50KCR0bXApOwogICAgICB9CiAgICBlbHNlaWYgKCR0bXAgIT09IGZhbHNlKQogICAgICB7CgkkdGhpcy0+ZmlsZUNvdW50ID0gMTsKICAgICAgfQogICAgZWxzZQogICAgICB7CgkkdGhpcy0+ZmlsZUNvdW50ID0gMDsKICAgICAgfQogIH0KCiAgZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCiAgewogICAgJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAKICAgIC8vIHdoeSBhbGwgdGhpcz8gQXNzb2NpYXRpdmUgYXJyYXlzIGFyZSBub3QgZ3VhcmFudGVlZCB0byBwcmVzZXJ2ZQogICAgLy8gb3JkZXIsIGV4Y2VwdCBpbiAiY2hyb25vbG9naWNhbCIgY3JlYXRpb24gb3JkZXIuCiAgICAkZGlzcGxheW5hbWVzID0gJiR0aGlzLT5HZXRPcHRpb25SZWYoJ2Rlc3RpbmF0aW9uX2Rpc3BsYXluYW1lJyk7CiAgICAkZGlzcGxheWZpbGVzID0gJiR0aGlzLT5HZXRPcHRpb25SZWYoJ2Rlc3RpbmF0aW9uX2ZpbGVuYW1lJyk7CgogICAgJGZpZWxkcyA9IGFycmF5KCk7CiAgICBmb3IoICRpID0gMDsgJGkgPCBjb3VudCgkZGlzcGxheW5hbWVzKTsgJGkrKyApCiAgICAgIHsKCSRsYWJlbCA9ICcnOwoJJGN0cmwgPSBuZXcgc3RkQ2xhc3MoKTsKCSRjdHJsLT5uYW1lID0gJzxsYWJlbCBmb3I9IicuJGlkLidfJy4kdGhpcy0+SWQuJ18nLiRpLiciPicuJGRpc3BsYXluYW1lc1skaV0uJzwvbGFiZWw+JzsKCSRjdHJsLT50aXRsZSA9ICRkaXNwbGF5bmFtZXNbJGldOwoJJGN0cmwtPmlucHV0ID0gJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsCgkJCQkJCSAnZmJycF9fJy4kdGhpcy0+SWQuJ1tdJywgCgkJCQkJCSAkaSsxLCctMScsCgkJCQkJCSBzcHJpbnRmKCcgaWQ9IiVzXyVzXyVzIicsCgkJCQkJCQkgJGlkLCAkdGhpcy0+SWQsJGkpKTsKCSRmaWVsZHNbXSA9ICRjdHJsOwogICAgICB9CiAgICByZXR1cm4gJGZpZWxkczsKICB9CgoKICBmdW5jdGlvbiBTdGF0dXNJbmZvKCkKICB7CiAgICAkdGhpcy0+Y291bnRGaWxlcygpOwogICAgJG1vZD0mJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgJHJldD0gJG1vZC0+TGFuZygnZmlsZV9jb3VudCcsJHRoaXMtPmZpbGVDb3VudCk7CiAgICByZXR1cm4gJHJldDsKICB9CgogIGZ1bmN0aW9uIERpc3Bvc2VGb3JtKCRyZXR1cm5pZCkKICB7CgogICAgJG1vZD0mJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgJGNvdW50ID0gMDsKICAgIHdoaWxlICghICRtb2QtPkdldEZpbGVMb2NrKCkgJiYgJGNvdW50PDIwMCkKICAgICAgewoJJGNvdW50Kys7Cgl1c2xlZXAoNTAwKTsKICAgICAgfQogICAgaWYgKCRjb3VudCA9PSAyMDApCiAgICAgIHsKCXJldHVybiBhcnJheShmYWxzZSwgJG1vZC0+TGFuZygnc3VibWlzc2lvbl9lcnJvcl9maWxlX2xvY2snKSk7CiAgICAgIH0KCgogICAgJGRpciA9ICR0aGlzLT5HZXRPcHRpb24oJ2ZpbGVfcGF0aCcsJHRoaXMtPmRmbHRfZmlsZXBhdGgpLicvJzsKCiAgICAvLyBzZXR1cCBzb21lIHNtYXJ0eQogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3N1Yl9mb3JtX25hbWUnLCR0aGlzLT5mb3JtX3B0ci0+R2V0TmFtZSgpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdzdWJfZGF0ZScsZGF0ZSgncicpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdzdWJfaG9zdCcsJF9TRVJWRVJbJ1NFUlZFUl9OQU1FJ10pOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3N1Yl9zb3VyY2VfaXAnLCRfU0VSVkVSWydSRU1PVEVfQUREUiddKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdzdWJfdXJsJywkX1NFUlZFUlsnSFRUUF9SRUZFUkVSJ10pOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ1RBQicsIlx0Iik7CiAgICAkb3RoZXJzID0gJiR0aGlzLT5mb3JtX3B0ci0+R2V0RmllbGRzKCk7CiAgICAkdW5zcGVjID0gJHRoaXMtPmZvcm1fcHRyLT5HZXRBdHRyKCd1bnNwZWNpZmllZCcsJG1vZC0+TGFuZygndW5zcGVjaWZpZWQnKSk7CiAgICBmb3IoJGk9MDskaTxjb3VudCgkb3RoZXJzKTskaSsrKQogICAgICB7CgkkcmVwbFZhbCA9ICcnOwoJJHJlcGxWYWxzID0gYXJyYXkoKTsKCWlmICgkb3RoZXJzWyRpXS0+RGlzcGxheUluU3VibWlzc2lvbigpKQoJICB7CgkgICAgJHJlcGxWYWwgPSAkb3RoZXJzWyRpXS0+R2V0SHVtYW5SZWFkYWJsZVZhbHVlKCk7CgkgICAgaWYgKCRyZXBsVmFsID09ICcnKQoJICAgICAgewoJCSRyZXBsVmFsID0gJHVuc3BlYzsKCSAgICAgIH0KCSAgICBpZiAoJG90aGVyc1skaV0tPkhhc011bHRpcGxlVmFsdWVzKCkpCgkgICAgICB7CgkJJHJlcGxWYWxzID0gJG90aGVyc1skaV0tPkdldFZhbHVlKCk7CgkgICAgICB9CgkgIH0KCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCR0aGlzLT5NYWtlVmFyKCRvdGhlcnNbJGldLT5HZXRuYW1lKCkpLCRyZXBsVmFsKTsKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdmbGRfJy4kb3RoZXJzWyRpXS0+R2V0SWQoKSwkcmVwbFZhbCk7CgkkbW9kLT5zbWFydHktPmFzc2lnbigkdGhpcy0+TWFrZVZhcigkb3RoZXJzWyRpXS0+R2V0bmFtZSgpKS4nX2FycmF5JywkcmVwbFZhbHMpOwoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2ZsZF8nLiRvdGhlcnNbJGldLT5HZXRJZCgpLidfYXJyYXknLCRyZXBsVmFscyk7CiAgICAgIH0KCiAgICAkaGVhZGVyID0gJHRoaXMtPkdldE9wdGlvbignZmlsZV9oZWFkZXInLCcnKTsKICAgIGlmICgkaGVhZGVyID09ICcnKQogICAgICB7CgkkaGVhZGVyID0gJHRoaXMtPmNyZWF0ZVNhbXBsZUhlYWRlcigpOwogICAgICB9IAogICAgJGhlYWRlciAuPSAiXG4iOwoKICAgICR0ZW1wbGF0ZSA9ICR0aGlzLT5HZXRPcHRpb24oJ2ZpbGVfdGVtcGxhdGUnLCcnKTsKICAgIGlmICgkdGVtcGxhdGUgPT0gJycpCiAgICAgIHsKCSR0ZW1wbGF0ZSA9ICR0aGlzLT5jcmVhdGVTYW1wbGVUZW1wbGF0ZSgpOwogICAgICB9CgkKICAgIC8vIEJlZ2luIG91dHB1dCB0byBmaWxlcwogICAgZm9yZWFjaCggJHRoaXMtPlZhbHVlIGFzICRpZHggKQogICAgICB7CgkvLyBJIGR1bm5vIHdoeSBpdCdzIGVtcHR5IHNvbWV0aW1lcywgYnV0Li4uCglpZiggZW1wdHkoJGlkeCkgKSBjb250aW51ZTsKCgkkaWR4LS07CgoJLy8gZ2V0IHRoZSBmaWxlbmFtZQoJJGZpbGVzcGVjID0gJGRpci4KCSAgcHJlZ19yZXBsYWNlKCIvW15cd1xkXC5dfFwuXC4vIiwgIl8iLCAKCQkgICAgICAgJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ2Rlc3RpbmF0aW9uX2ZpbGVuYW1lJywkaWR4KSk7CgkKCSRsaW5lID0gJHRlbXBsYXRlOwoJaWYgKCEgZmlsZV9leGlzdHMoJGZpbGVzcGVjKSkKCSAgewoJICAgICRsaW5lID0gJGhlYWRlci4kdGVtcGxhdGU7CgkgIH0KCgkkbmV3bGluZSA9ICRtb2QtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCAkbGluZSApOwoJaWYgKHN1YnN0cigkbmV3bGluZSwtMSwxKSAhPSAiXG4iKQoJICB7CgkgICAgJG5ld2xpbmUgLj0gIlxuIjsKCSAgfQkKCgkkZjIgPSBmb3BlbigkZmlsZXNwZWMsImEiKTsKCWZ3cml0ZSgkZjIsJG5ld2xpbmUpOwoJZmNsb3NlKCRmMik7IAoKICAgICAgfSAvLyBmb3JlYWNoCiAgICAkbW9kLT5SZXR1cm5GaWxlTG9jaygpOwogICAgcmV0dXJuIGFycmF5KHRydWUsJycpOyAgICAgICAgCiAgfQoKICBmdW5jdGlvbiBNYWtlVmFyKCRzdHJpbmcpCiAgewogICAgJG1heHZhcmxlbiA9IDI0OwogICAgJHN0cmluZyA9IHN0cnRvbG93ZXIocHJlZ19yZXBsYWNlKCcvXHMrLycsJ18nLCRzdHJpbmcpKTsKICAgICRzdHJpbmcgPSBzdHJ0b2xvd2VyKHByZWdfcmVwbGFjZSgnL1xXLycsJ18nLCRzdHJpbmcpKTsKICAgIGlmIChzdHJsZW4oJHN0cmluZykgPiAkbWF4dmFybGVuKQogICAgICB7Cgkkc3RyaW5nID0gc3Vic3RyKCRzdHJpbmcsMCwkbWF4dmFybGVuKTsKCSRwb3MgPSBzdHJycG9zKCRzdHJpbmcsJ18nKTsKCWlmICgkcG9zICE9PSBmYWxzZSkKCSAgewoJICAgICRzdHJpbmcgPSBzdWJzdHIoJHN0cmluZywwLCRwb3MpOwoJICB9CiAgICAgIH0KICAgIHJldHVybiAkc3RyaW5nOwogIH0KCiAgZnVuY3Rpb24gY3JlYXRlU2FtcGxlSGVhZGVyKCkKICB7CiAgICAkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICRvdGhlcnMgPSAmJHRoaXMtPmZvcm1fcHRyLT5HZXRGaWVsZHMoKTsKICAgICRmaWVsZHMgPSBhcnJheSgpOwogICAgZm9yKCRpPTA7JGk8Y291bnQoJG90aGVycyk7JGkrKykKICAgICAgewoJaWYgKCRvdGhlcnNbJGldLT5EaXNwbGF5SW5TdWJtaXNzaW9uKCkpCgkgIHsKCSAgICBhcnJheV9wdXNoKCRmaWVsZHMsJG90aGVyc1skaV0tPkdldE5hbWUoKSk7CgkgIH0KICAgICAgfQogICAgcmV0dXJuIGltcGxvZGUoJ3skVEFCfScsJGZpZWxkcyk7CiAgfQoKCiAgZnVuY3Rpb24gY3JlYXRlU2FtcGxlVGVtcGxhdGUoKQogIHsKICAgICRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgJG90aGVycyA9ICYkdGhpcy0+Zm9ybV9wdHItPkdldEZpZWxkcygpOwogICAgJGZpZWxkcyA9IGFycmF5KCk7CiAgICBmb3IoJGk9MDskaTxjb3VudCgkb3RoZXJzKTskaSsrKQogICAgICB7CglpZiAoJG90aGVyc1skaV0tPkRpc3BsYXlJblN1Ym1pc3Npb24oKSkKCSAgewoJICAgIGFycmF5X3B1c2goJGZpZWxkcywneyQnIC4gJHRoaXMtPk1ha2VWYXIoJG90aGVyc1skaV0tPkdldE5hbWUoKSkgLiAnfScpOwoJICB9CiAgICAgIH0KICAgIHJldHVybiBpbXBsb2RlKCd7JFRBQn0nLCRmaWVsZHMpOwogIH0KCgogIGZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKICB7CiAgICAkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCiAgICAkdGhpcy0+Y291bnRGaWxlcygpOwogICAgaWYoICR0aGlzLT5maWxlQWRkID4gMCApCiAgICAgIHsKCSR0aGlzLT5maWxlQ291bnQgKz0gJHRoaXMtPmZpbGVBZGQ7CgkkdGhpcy0+ZmlsZUFkZCA9IDA7CiAgICAgIH0KCiAgICAkZGVzdHMgPSAnPHRhYmxlIGNsYXNzPSJtb2R1bGVfZmJfdGFibGUiPjx0cj48dGg+Jy4kbW9kLT5MYW5nKCd0aXRsZV9zZWxlY3Rpb25fZGlzcGxheW5hbWUnKS4nPC90aD48dGg+Jy4KICAgICAgJG1vZC0+TGFuZygndGl0bGVfZGVzdGluYXRpb25fZmlsZW5hbWUnKS4nPC90aD48dGg+Jy4KICAgICAgJG1vZC0+TGFuZygndGl0bGVfZGVsZXRlJykuJzwvdGg+PC90cj4nOwoKICAgIGZvciAoJGk9MDskaTwoJHRoaXMtPmZpbGVDb3VudD4xPyR0aGlzLT5maWxlQ291bnQ6MSk7JGkrKykKICAgICAgewoJJGRlc3RzIC49ICAnPHRyPjx0ZD4nLgoJICAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZGVzdGluYXRpb25fZGlzcGxheW5hbWVbXScsJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ2Rlc3RpbmF0aW9uX2Rpc3BsYXluYW1lJywkaSksMjUsMTI4KS4KCSAgJzwvdGQ+PHRkPicuCgkgICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9kZXN0aW5hdGlvbl9maWxlbmFtZVtdJywkdGhpcy0+R2V0T3B0aW9uRWxlbWVudCgnZGVzdGluYXRpb25fZmlsZW5hbWUnLCRpKSwyNSwxMjgpLgoJICAnPC90ZD48dGQ+Jy4KCSAgJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX2RlbF8nLiRpLCAkaSwtMSkuCgkgICc8L3RkPjwvdHI+JzsKICAgICAgfQogICAgJGRlc3RzIC49ICc8L3RhYmxlPic7CgoKICAgICRyZXQgPSAnPHRhYmxlIGNsYXNzPSJtb2R1bGVfZmJfbGVnZW5kIj48dHI+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+TGFuZygndGl0bGVfc2VsZWN0X29uZV9tZXNzYWdlJyksCgkJCSAgICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsIAoJCQkJCQkgJ2ZicnBfb3B0X3NlbGVjdF9vbmUnLAoJICAgICR0aGlzLT5HZXRPcHRpb24oJ3NlbGVjdF9vbmUnLCRtb2QtPkxhbmcoJ3NlbGVjdF9vbmUnKSksMjUsMTI4KSkpOwogICAgYXJyYXlfcHVzaCgkbWFpbixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9kaXJlY3Rvcl9kZXRhaWxzJyksJGRlc3RzKSk7CgogICAgYXJyYXlfcHVzaCgkYWR2LGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2ZpbGVfcGF0aCcpLAoJCQkgICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsCgkJCQkJCSdmYnJwX29wdF9maWxlX3BhdGgnLAoJCQkJCQkkdGhpcy0+R2V0T3B0aW9uKCdmaWxlX3BhdGgnLCR0aGlzLT5kZmx0X2ZpbGVwYXRoKSw0MCwxMjgpKSk7CiAgICBhcnJheV9wdXNoKCRhZHYsYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZmlsZV90ZW1wbGF0ZScpLAoJCQkgIGFycmF5KCRtb2QtPkNyZWF0ZVRleHRBcmVhKGZhbHNlLCAkZm9ybURlc2NyaXB0b3IsCgkJCQkJCSAgICAgaHRtbHNwZWNpYWxjaGFycygkdGhpcy0+R2V0T3B0aW9uKCdmaWxlX3RlbXBsYXRlJywnJykpLCdmYnJwX29wdF9maWxlX3RlbXBsYXRlJywgJ21vZHVsZV9mYl9hcmVhX3Nob3J0JywgJycsJycsMCwwKSwkcmV0KSkpOwogICAgYXJyYXlfcHVzaCgkYWR2LGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2ZpbGVfaGVhZGVyJyksCgkJCSAgJG1vZC0+Q3JlYXRlVGV4dEFyZWEoZmFsc2UsICRmb3JtRGVzY3JpcHRvciwKCQkJCQkgICAgICAgaHRtbHNwZWNpYWxjaGFycygkdGhpcy0+R2V0T3B0aW9uKCdmaWxlX2hlYWRlcicsJycpKSwnZmJycF9vcHRfZmlsZV9oZWFkZXInLCAnbW9kdWxlX2ZiX2FyZWFfc2hvcnQnLCAnJywnJywwLDApKSk7CgogICAgcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwogIH0KCiAgZnVuY3Rpb24gUG9zdFBvcHVsYXRlQWRtaW5Gb3JtKCYkbWFpbkFycmF5LCAmJGFkdkFycmF5KQogIHsKICAgIC8vJHRoaXMtPkhpZGRlbkRpc3Bvc2l0aW9uRmllbGRzKCRtYWluQXJyYXksICRhZHZBcnJheSk7CiAgfQp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionPageRedirector.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkRpc3Bvc2l0aW9uUGFnZVJlZGlyZWN0b3IgZXh0ZW5kcyBmYkZpZWxkQmFzZSB7CgoJdmFyICRhZGRyZXNzQ291bnQ7Cgl2YXIgJGFkZHJlc3NBZGQ7CgoJZnVuY3Rpb24gZmJEaXNwb3NpdGlvblBhZ2VSZWRpcmVjdG9yKCYkZm9ybV9wdHIsICYkcGFyYW1zKQoJewogICAgICAgCS8vJHRoaXMtPmZiRGlzcG9zaXRpb25FbWFpbEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKIAkkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJiRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkdGhpcy0+VHlwZSA9ICdEaXNwb3NpdGlvblBhZ2VSZWRpcmVjdG9yJzsKCQkkdGhpcy0+RGlzcGxheUluRm9ybSA9IHRydWU7CgkJJHRoaXMtPk5vblJlcXVpcmFibGVGaWVsZCA9IGZhbHNlOwoJCSR0aGlzLT5Jc0Rpc3Bvc2l0aW9uID0gdHJ1ZTsKCQkkdGhpcy0+SGFzQWRkT3AgPSB0cnVlOwoJCSR0aGlzLT5IYXNEZWxldGVPcCA9IHRydWU7CgkJJHRoaXMtPlZhbGlkYXRpb25UeXBlcyA9IGFycmF5KAogICAgICAgCQkpOwogICAgICAgCSR0aGlzLT5hZGRyZXNzQWRkID0gMDsKCX0KCglmdW5jdGlvbiBHZXRPcHRpb25BZGRCdXR0b24oKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCXJldHVybiAkbW9kLT5MYW5nKCdhZGRfZGVzdGluYXRpb24nKTsKCX0KCglmdW5jdGlvbiBHZXRPcHRpb25EZWxldGVCdXR0b24oKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCXJldHVybiAkbW9kLT5MYW5nKCdkZWxldGVfZGVzdGluYXRpb24nKTsKCX0KCglmdW5jdGlvbiBEb09wdGlvbkFkZCgmJHBhcmFtcykKCXsKCQkkdGhpcy0+YWRkcmVzc0FkZCA9IDE7Cgl9CgoJZnVuY3Rpb24gRG9PcHRpb25EZWxldGUoJiRwYXJhbXMpCgl7CgkJJGRlbGNvdW50ID0gMDsKCQlmb3JlYWNoICgkcGFyYW1zIGFzICR0aGlzS2V5PT4kdGhpc1ZhbCkKCQkJewoJCQlpZiAoc3Vic3RyKCR0aGlzS2V5LDAsOSkgPT0gJ2ZicnBfZGVsXycpCgkJCQl7CgkJCQkkdGhpcy0+UmVtb3ZlT3B0aW9uRWxlbWVudCgnZGVzdGluYXRpb25fcGFnZScsICR0aGlzVmFsIC0gJGRlbGNvdW50KTsKCQkJCSR0aGlzLT5SZW1vdmVPcHRpb25FbGVtZW50KCdkZXN0aW5hdGlvbl9zdWJqZWN0JywgJHRoaXNWYWwgLSAkZGVsY291bnQpOwoJCQkJJGRlbGNvdW50Kys7CgkJCQl9CgkJCX0KCX0KCglmdW5jdGlvbiBjb3VudEFkZHJlc3NlcygpCgl7CgkJCSR0bXAgPSAmJHRoaXMtPkdldE9wdGlvblJlZignZGVzdGluYXRpb25fcGFnZScpOwoJCQlpZiAoaXNfYXJyYXkoJHRtcCkpCgkJCQl7CgkgICAgICAgIAkkdGhpcy0+YWRkcmVzc0NvdW50ID0gY291bnQoJHRtcCk7CgkgICAgICAgIAl9CgkgICAgICAgIGVsc2VpZiAoJHRtcCAhPT0gZmFsc2UpCgkgICAgICAgIAl7CgkgICAgICAgIAkkdGhpcy0+YWRkcmVzc0NvdW50ID0gMTsKCSAgICAgICAgCX0KCSAgICAgICAgZWxzZQoJICAgICAgICAJewoJICAgICAgICAJJHRoaXMtPmFkZHJlc3NDb3VudCA9IDA7CgkgICAgICAgIAl9Cgl9CgoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgoJCS8vIHdoeSBhbGwgdGhpcz8gQXNzb2NpYXRpdmUgYXJyYXlzIGFyZSBub3QgZ3VhcmFudGVlZCB0byBwcmVzZXJ2ZQoJCS8vIG9yZGVyLCBleGNlcHQgaW4gImNocm9ub2xvZ2ljYWwiIGNyZWF0aW9uIG9yZGVyLgoJCSRzb3J0ZWQgPWFycmF5KCk7CgkJaWYgKCR0aGlzLT5HZXRPcHRpb24oJ3NlbGVjdF9vbmUnLCcnKSAhPSAnJykKCQkJewoJCQkkc29ydGVkWycgJy4kdGhpcy0+R2V0T3B0aW9uKCdzZWxlY3Rfb25lJywnJyldPScnOwoJCQl9CgkJZWxzZQoJCQl7CgkJCSRzb3J0ZWRbJyAnLiRtb2QtPkxhbmcoJ3NlbGVjdF9vbmUnKV09Jyc7CgkJCX0KCQkkc3ViamVjdHMgPSAmJHRoaXMtPkdldE9wdGlvblJlZignZGVzdGluYXRpb25fc3ViamVjdCcpOwoKCQlpZiAoY291bnQoJHN1YmplY3RzKSA+IDEpCgkJCXsKCQkJZm9yKCRpPTA7JGk8Y291bnQoJHN1YmplY3RzKTskaSsrKQoJCQkJewoJCQkJJHNvcnRlZFskc3ViamVjdHNbJGldXT0oJGkrMSk7CgkJCQl9CgkJCX0KCQllbHNlCgkJCXsKCQkJJHNvcnRlZFskc3ViamVjdHNdID0gJzEnOwoJCQl9CgkJcmV0dXJuICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQsICRzb3J0ZWQsIC0xLCAkdGhpcy0+VmFsdWUpOwoJfQoKCgogICAgZnVuY3Rpb24gU3RhdHVzSW5mbygpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJG9wdCA9ICR0aGlzLT5HZXRPcHRpb24oJ2Rlc3RpbmF0aW9uX3BhZ2UnLCcnKTsKCQkKCQlpZiAoaXNfYXJyYXkoJG9wdCkpCgkJICB7CgkJICAgICAgJG51bSA9IGNvdW50KCRvcHQpOwoJCSAgfQoJCWVsc2VpZiAoJG9wdCAhPSAnJykKCQkJewoJCQkkbnVtID0gMTsKCQkJfQoJCWVsc2UKCQkgIHsKICAgICAgICAgICRudW0gPSAwOwogICAgICAgICAgfQogICAgICAgICAkcmV0PSAkbW9kLT5MYW5nKCdkZXN0aW5hdGlvbl9jb3VudCcsJG51bSk7CiAgICAgIC8vICAkcmV0Lj0gJHRoaXMtPlRlbXBsYXRlU3RhdHVzKCk7CiAgICAgICAgcmV0dXJuICRyZXQ7Cgl9CgkKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKICAgCQlnbG9iYWwgJGdDbXM7CgkJZ2xvYmFsICRpZDsKICAgIAkJJGNvbnRlbnRvcHMgPSYgJGdDbXMtPkdldENvbnRlbnRPcGVyYXRpb25zKCk7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgoJCSR0aGlzLT5jb3VudEFkZHJlc3NlcygpOwoJCWlmICgkdGhpcy0+YWRkcmVzc0FkZCA+IDApCgkJCXsKCQkJJHRoaXMtPmFkZHJlc3NDb3VudCArPSAkdGhpcy0+YWRkcmVzc0FkZDsKCQkJJHRoaXMtPmFkZHJlc3NBZGQgPSAwOwoJCQl9CgkJJGRlc3RzID0gJzx0YWJsZSBjbGFzcz0ibW9kdWxlX2ZiX3RhYmxlIj48dHI+PHRoPicuJG1vZC0+TGFuZygndGl0bGVfc2VsZWN0aW9uX3N1YmplY3QnKS4nPC90aD48dGg+Jy4KCQkJJG1vZC0+TGFuZygndGl0bGVfZGVzdGluYXRpb25fcGFnZScpLic8L3RoPjx0aD4nLgoJCQkkbW9kLT5MYW5nKCd0aXRsZV9kZWxldGUnKS4nPC90aD48L3RyPic7CgoKCQlmb3IgKCRpPTA7JGk8KCR0aGlzLT5hZGRyZXNzQ291bnQ+MT8kdGhpcy0+YWRkcmVzc0NvdW50OjEpOyRpKyspCgkJCXsKCQkJJGRlc3RzIC49ICAnPHRyPjx0ZD4nOwogICAgICAgICAgICAJCSRkZXN0cyAuPSAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZGVzdGluYXRpb25fc3ViamVjdFtdJywkdGhpcy0+R2V0T3B0aW9uRWxlbWVudCgnZGVzdGluYXRpb25fc3ViamVjdCcsJGkpLDI1LDEyOCk7CiAgICAgICAgICAgIAkJJGRlc3RzIC49ICc8L3RkPjx0ZD4nOwoJCQkkZGVzdHMgLj0gICAgIAkJCSRjb250ZW50b3BzLT5DcmVhdGVIaWVyYXJjaHlEcm9wZG93bignJywkdGhpcy0+R2V0T3B0aW9uRWxlbWVudCgnZGVzdGluYXRpb25fcGFnZScsJGkpLCAkaWQuJ2ZicnBfb3B0X2Rlc3RpbmF0aW9uX3BhZ2VbXScpOwoJCQkkZGVzdHMgLj0gJzwvdGQ+PHRkPic7CiAgICAgICAgICAgIAkJJGRlc3RzIC49ICRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9kZWxfJy4kaSwgJGksLTEpOwogICAgICAgICAgICAgCQkkZGVzdHMgLj0gJzwvdGQ+PC90cj4nOwogICAgICAgICAgICAJCS8vJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ29wdF9kZXN0aW5hdGlvbl9wYWdlW10nLCR0aGlzLT5HZXRPcHRpb25FbGVtZW50KCdkZXN0aW5hdGlvbl9wYWdlJywkaSksMjUsMTI4KS4KCgkJCX0KCQkkZGVzdHMgLj0gJzwvdGFibGU+JzsKCQkvLyBsaXN0KCRtYWluLCRhZHYpID0gJHRoaXMtPlByZVBvcHVsYXRlQWRtaW5Gb3JtQmFzZSgkZm9ybURlc2NyaXB0b3IpOwoJCSRhZHYgPSBhcnJheSgpOwoJCSRtYWluID0gYXJyYXkoKTsKCQlhcnJheV9wdXNoKCRtYWluLGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3NlbGVjdF9vbmVfbWVzc2FnZScpLAoJCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfc2VsZWN0X29uZScsCgkJCSR0aGlzLT5HZXRPcHRpb24oJ3NlbGVjdF9vbmUnLCRtb2QtPkxhbmcoJ3NlbGVjdF9vbmUnKSksMjUsMTI4KSkpOwoKCQlhcnJheV9wdXNoKCRtYWluLGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2RpcmVjdG9yX2RldGFpbHMnKSwkZGVzdHMpKTsKCQlyZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7Cgl9CgoJZnVuY3Rpb24gUG9zdFBvcHVsYXRlQWRtaW5Gb3JtKCYkbWFpbkFycmF5LCAmJGFkdkFycmF5KQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCS8vIHJlbW92ZSB0aGUgInJlcXVpcmVkIiBmaWVsZAoJCSRyZXFJbmRleCA9IC0xOwoJCWZvciAoJGk9MDskaTxjb3VudCgkbWFpbkFycmF5KTskaSsrKQoJCQl7CgkJCWlmICgkbWFpbkFycmF5WyRpXS0+dGl0bGUgPT0gJG1vZC0+TGFuZygndGl0bGVfZmllbGRfcmVxdWlyZWQnKSkKCQkJCXsKCQkJCSRyZXFJbmRleCA9ICRpOwoJCQkJfQoJCQl9CgkJaWYgKCRyZXFJbmRleCAhPSAtMSkKCQkJewoJCQlhcnJheV9zcGxpY2UoJG1haW5BcnJheSwgJHJlcUluZGV4LDEpOwoJCQl9CgkJLy8gcmVtb3ZlIHRoZSAiZW1haWwgc3ViamVjdCIgZmllbGQKCQkkaGlkZUluZGV4ID0gLTE7CgkJZm9yICgkaT0wOyRpPGNvdW50KCRtYWluQXJyYXkpOyRpKyspCgkJCXsKCQkJaWYgKCRtYWluQXJyYXlbJGldLT50aXRsZSA9PSAkbW9kLT5MYW5nKCd0aXRsZV9lbWFpbF9zdWJqZWN0JykpCgkJCQl7CgkJCQkkaGlkZUluZGV4ID0gJGk7CgkJCQl9CgkJCX0KCQlpZiAoJGhpZGVJbmRleCAhPSAtMSkKCQkJewoJCQlhcnJheV9zcGxpY2UoJG1haW5BcnJheSwgJGhpZGVJbmRleCwxKTsKCQkJfQoJCS8vIHJlbW92ZSB0aGUgImhpZGUgY3NzIiBmaWVsZAoJCSRoaWRlSW5kZXggPSAtMTsKCQlmb3IgKCRpPTA7JGk8Y291bnQoJGFkdkFycmF5KTskaSsrKQoJCQl7CgkJCWlmICgkYWR2QXJyYXlbJGldLT50aXRsZSA9PSAkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9jc3NfY2xhc3MnKSkKCQkJCXsKCQkJCSRoaWRlSW5kZXggPSAkaTsKCQkJCX0KCQkJfQoJCWlmICgkaGlkZUluZGV4ICE9IC0xKQoJCQl7CgkJCWFycmF5X3NwbGljZSgkYWR2QXJyYXksICRoaWRlSW5kZXgsMSk7CgkJCX0KCQlpZiAoY291bnQoJGFkdkFycmF5KSA9PSAwKQoJCQl7CgkJCSRhZHZBcnJheVswXS0+dGl0bGUgPSAkbW9kLT5MYW5nKCd0YWJfYWR2YW5jZWQnKTsKCQkJJGFkdkFycmF5WzBdLT5pbnB1dCA9ICRtb2QtPkxhbmcoJ3RpdGxlX25vX2FkdmFuY2VkX29wdGlvbnMnKTsKCQkJfQoJfQoKCWZ1bmN0aW9uIEdldEh1bWFuUmVhZGFibGVWYWx1ZSgpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJaWYgKCR0aGlzLT5IYXNWYWx1ZSgpKQoJCQl7CgkJCXJldHVybiAkdGhpcy0+R2V0T3B0aW9uRWxlbWVudCgnZGVzdGluYXRpb25fcGFnZScsKCR0aGlzLT5WYWx1ZSAtIDEpKTsKCQkJfQoJCWVsc2UKCQkJewoJCQlyZXR1cm4gJG1vZC0+TGFuZygndW5zcGVjaWZpZWQnKTsKCQkJfQkKCX0KCQoJZnVuY3Rpb24gRGlzcG9zZUZvcm0oJHJldHVybmlkKQoJewoJCS8vIElmIG5lZWRlZCwgbWFrZSBzdXJlIG90aGVyIGRpc3Bvc2l0aW9ucyBnZXQgcnVuIDFzdC5TZWUgIERpc3Bvc2UoJHJldHVybmlkKSBpbiBGb3JtIGNsYXNzLgoJCS8vIE5vdCByZWFsbHkgbmVlZGVkLCB0aGUgJ0Zyb21FbWFpbEFkZHJlc3NGaWVsZCcgYWxyZWFkeSBjYWxscyBtb2RpZnkgb3RoZXIgZmllbGRzLCBKdXN0IG5lZWQgdG8gbWFrZSBzdXJlIHRoZSB0aGUgZW1haWwgcmVzdWx0cyB0aGluZ3MgYXJlIGxpc3RlZCBiZWZvcmUgdGhpcyBvbmUgYW5kIGV2ZXJ5dGhpbmcgc2hvdWxkIGJlIGZpbmUuCgkJLy8gcHJpbnRfcigkdGhpcy0+R2V0T3B0aW9uRWxlbWVudCgnZGVzdGluYXRpb25fcGFnZScsKCR0aGlzLT5WYWx1ZSAtIDEpKSk7CiAgICAJCWdsb2JhbCAkZ0NtczsKICAgIAkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAJCSRtb2QtPlJlZGlyZWN0Q29udGVudCgkdGhpcy0+R2V0T3B0aW9uRWxlbWVudCgnZGVzdGluYXRpb25fcGFnZScsKCR0aGlzLT5WYWx1ZSAtIDEpKSk7CgkJLy9yZXR1cm4gJHRoaXMtPlNlbmRGb3JtKCR0aGlzLT5HZXRPcHRpb25FbGVtZW50KCdkZXN0aW5hdGlvbl9wYWdlJywoJHRoaXMtPlZhbHVlIC0gMSkpLAoJCS8vCSR0aGlzLT5HZXRPcHRpb25FbGVtZW50KCdkZXN0aW5hdGlvbl9zdWJqZWN0JywoJHRoaXMtPlZhbHVlIC0gMSkpKTsKCQlyZXR1cm4gYXJyYXkodHJ1ZSwgJ2V2ZXJ5dGhpbmcgd29ya2VkJyk7Cgl9CgoKCWZ1bmN0aW9uIEFkbWluVmFsaWRhdGUoKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgCQkkb3B0ID0gJHRoaXMtPkdldE9wdGlvbignZGVzdGluYXRpb25fcGFnZScpOwogIAkJbGlzdCgkcmV0LCAkbWVzc2FnZSkgPSAkdGhpcy0+RG9lc0ZpZWxkSGF2ZU5hbWUoKTsKCQlpZiAoJHJldCkKCQkJewoJCQlsaXN0KCRyZXQsICRtZXNzYWdlKSA9ICR0aGlzLT5Eb2VzRmllbGROYW1lRXhpc3QoKTsKCQkJfQkJCgkJaWYgKGNvdW50KCRvcHQpID09IDApCgkJCXsKCQkJJHJldCA9IGZhbHNlOwoJCQkkbWVzc2FnZSAuPSAkbW9kLT5MYW5nKCdtdXN0X3NwZWNpZnlfb25lX2Rlc3RpbmF0aW9uJykuJzwvYnI+JzsKCQkJfQoJICAgICAgICByZXR1cm4gYXJyYXkoJHJldCwkbWVzc2FnZSk7CiAgICB9Cgp9Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionUserTag.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkRpc3Bvc2l0aW9uVXNlclRhZyBleHRlbmRzICBmYkZpZWxkQmFzZSAKewoKICB2YXIgJHNhbXBsZVRlbXBsYXRlQ29kZTsKICB2YXIgJHNhbXBsZUhlYWRlcjsKCiAgZnVuY3Rpb24gZmJEaXNwb3NpdGlvblVzZXJUYWcoJiRmb3JtX3B0ciwgJiRwYXJhbXMpCiAgewogICAgJHRoaXMtPmZiRmllbGRCYXNlKCRmb3JtX3B0ciwgJHBhcmFtcyk7CiAgICAkbW9kID0gJiRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICR0aGlzLT5UeXBlID0gJ0Rpc3Bvc2l0aW9uVXNlclRhZyc7CiAgICAkdGhpcy0+SXNEaXNwb3NpdGlvbiA9IHRydWU7CiAgICAkdGhpcy0+Tm9uUmVxdWlyYWJsZUZpZWxkID0gdHJ1ZTsKICAgICR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gZmFsc2U7CiAgICAkdGhpcy0+c29ydGFibGUgPSBmYWxzZTsKICB9CgogIGZ1bmN0aW9uIFN0YXR1c0luZm8oKQogIHsKICAgICRtb2Q9JiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgIHJldHVybiAkdGhpcy0+R2V0T3B0aW9uKCd1ZHRuYW1lJywkbW9kLT5MYW5nKCd1bnNwZWNpZmllZCcpKTsKICB9CgogIGZ1bmN0aW9uIERpc3Bvc2VGb3JtKCRyZXR1cm5pZCkKICB7CiAgICAkbW9kPSYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkb3RoZXJzID0gJiR0aGlzLT5mb3JtX3B0ci0+R2V0RmllbGRzKCk7CiAgICAkdW5zcGVjID0gJHRoaXMtPmZvcm1fcHRyLT5HZXRBdHRyKCd1bnNwZWNpZmllZCcsJG1vZC0+TGFuZygndW5zcGVjaWZpZWQnKSk7CiAgICAkcGFyYW1zID0gYXJyYXkoKTsKICAgIGZvcigkaT0wOyRpPGNvdW50KCRvdGhlcnMpOyRpKyspCiAgICAgIHsKCSRyZXBsVmFsID0gJyc7CglpZiAoJG90aGVyc1skaV0tPkRpc3BsYXlJblN1Ym1pc3Npb24oKSkKCSAgewoJICAgICRyZXBsVmFsID0gJG90aGVyc1skaV0tPkdldEh1bWFuUmVhZGFibGVWYWx1ZSgpOwoJICAgIGlmICgkcmVwbFZhbCA9PSAnJykKCSAgICAgIHsKCQkkcmVwbFZhbCA9ICR1bnNwZWM7CgkgICAgICB9CgkgIH0KCSRwYXJhbXNbJG90aGVyc1skaV0tPkdldE5hbWUoKV0gPSAkcmVwbFZhbDsKICAgICAgfQoKICAgIGdsb2JhbCAkZ0NtczsKICAgICR1c2VydGFnb3BzID0mICRnQ21zLT5HZXRVc2VyVGFnT3BlcmF0aW9ucygpOwogICAgJHVzZXJ0YWdvcHMtPkNhbGxVc2VyVGFnKCAkdGhpcy0+R2V0T3B0aW9uKCd1ZHRuYW1lJyksICRwYXJhbXMpOwoKICAgIHJldHVybiBhcnJheSh0cnVlLCcnKTsgICAgICAgIAogIH0KCiAgZnVuY3Rpb24gTWFrZVZhcigkc3RyaW5nKQogIHsKICAgICRtYXh2YXJsZW4gPSAyNDsKICAgICRzdHJpbmcgPSBzdHJ0b2xvd2VyKHByZWdfcmVwbGFjZSgnL1xzKy8nLCdfJywkc3RyaW5nKSk7CiAgICAkc3RyaW5nID0gc3RydG9sb3dlcihwcmVnX3JlcGxhY2UoJy9cVy8nLCdfJywkc3RyaW5nKSk7CiAgICBpZiAoc3RybGVuKCRzdHJpbmcpID4gJG1heHZhcmxlbikKICAgICAgewoJJHN0cmluZyA9IHN1YnN0cigkc3RyaW5nLDAsJG1heHZhcmxlbik7CgkkcG9zID0gc3RycnBvcygkc3RyaW5nLCdfJyk7CglpZiAoJHBvcyAhPT0gZmFsc2UpCgkgIHsKCSAgICAkc3RyaW5nID0gc3Vic3RyKCRzdHJpbmcsMCwkcG9zKTsKCSAgfQogICAgICB9CiAgICByZXR1cm4gJHN0cmluZzsKICB9CgoKICBmdW5jdGlvbiBjcmVhdGVTYW1wbGVIZWFkZXIoKQogIHsKICAgICRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgJG90aGVycyA9ICYkdGhpcy0+Zm9ybV9wdHItPkdldEZpZWxkcygpOwogICAgJGZpZWxkcyA9IGFycmF5KCk7CiAgICBmb3IoJGk9MDskaTxjb3VudCgkb3RoZXJzKTskaSsrKQogICAgICB7CglpZiAoJG90aGVyc1skaV0tPkRpc3BsYXlJblN1Ym1pc3Npb24oKSkKCSAgewoJICAgIGFycmF5X3B1c2goJGZpZWxkcywkb3RoZXJzWyRpXS0+R2V0TmFtZSgpKTsKCSAgfQogICAgICB9CiAgICByZXR1cm4gaW1wbG9kZSgneyRUQUJ9JywkZmllbGRzKTsKICB9CgoKICBmdW5jdGlvbiBQcmVQb3B1bGF0ZUFkbWluRm9ybSgkZm9ybURlc2NyaXB0b3IpCiAgewogICAgJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkbWFpbiA9IGFycmF5KCk7CiAgICAkYWR2ID0gYXJyYXkoKTsKCiAgICBnbG9iYWwgJGdDbXM7CiAgICAkdXNlcnRhZ29wcyA9JiAkZ0Ntcy0+R2V0VXNlclRhZ09wZXJhdGlvbnMoKTsKICAgICR1c2VydGFncyA9ICR1c2VydGFnb3BzLT5MaXN0VXNlclRhZ3MoKTsKICAgICR1c2VydGFnbGlzdCA9IGFycmF5KCk7CiAgICBmb3JlYWNoKCAkdXNlcnRhZ3MgYXMgJGtleSA9PiAkdmFsdWUgKQogICAgICB7CgkkdXNlcnRhZ2xpc3RbJHZhbHVlXSA9ICRrZXk7CiAgICAgIH0KICAgICRtYWluW10gPSBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV91ZHRfbmFtZScpLAoJCSAgICAkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRmb3JtRGVzY3JpcHRvciwKCQkJCQkgICAgICAnZmJycF9vcHRfdWR0bmFtZScsJHVzZXJ0YWdsaXN0LC0xLAoJCQkJCSAgICAgICR0aGlzLT5HZXRPcHRpb24oJ3VkdG5hbWUnKSkpOwoKICAgIHJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLCdhZHYnPT4kYWR2KTsKICB9CgogIGZ1bmN0aW9uIFBvc3RQb3B1bGF0ZUFkbWluRm9ybSgmJG1haW5BcnJheSwgJiRhZHZBcnJheSkKICB7CiAgICAkdGhpcy0+SGlkZGVuRGlzcG9zaXRpb25GaWVsZHMoJG1haW5BcnJheSwgJGFkdkFycmF5KTsKICB9Cn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/FieldBase.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkZpZWxkQmFzZSB7CgogIHZhciAkSWQ9LTE7CiAgdmFyICRGb3JtSWQ7CiAgdmFyICROYW1lOwogIHZhciAkVHlwZTsKICB2YXIgJFJlcXVpcmVkPS0xOwogIHZhciAkT3JkZXJCeTsKICB2YXIgJEhpZGVMYWJlbD0tMTsKICB2YXIgJEhhc0xhYmVsPTE7CiAgdmFyICROZWVkc0Rpdj0xOwogIHZhciAkU21hcnR5RXZhbDsKCiAgdmFyICRWYWxpZGF0aW9uVHlwZXM7CiAgdmFyICRWYWxpZGF0aW9uVHlwZTsKICB2YXIgJHZhbGlkYXRlZCA9IHRydWU7CiAgdmFyICR2YWxpZGF0aW9uRXJyb3JUZXh0OwoKICB2YXIgJERpc3BsYXlJbkZvcm07CiAgdmFyICREaXNwbGF5SW5TdWJtaXNzaW9uOwogIHZhciAkRGlzcG9zaXRpb25QZXJtaXR0ZWQ7CiAgdmFyICRJc0NvbXB1dGVkT25TdWJtaXNzaW9uOwogIHZhciAkTm9uUmVxdWlyYWJsZUZpZWxkOwogIHZhciAkSGFzQWRkT3A7CiAgdmFyICRIYXNEZWxldGVPcDsKICB2YXIgJEhhc1VzZXJBZGRPcDsKICB2YXIgJEhhc1VzZXJEZWxldGVPcDsKICB2YXIgJG1vZGlmaWVzT3RoZXJGaWVsZHM7CiAgdmFyICRoYXNNdWx0aXBsZUZvcm1Db21wb25lbnRzOwogIHZhciAkbGFiZWxTdWJDb21wb25lbnRzOwoKICB2YXIgJFZhbHVlPWZhbHNlOwogIHZhciAkZm9ybV9wdHI7CiAgdmFyICRPcHRpb25zOwogIHZhciAkbG9hZGVkOwogIHZhciAkc29ydGFibGU7CgogIGZ1bmN0aW9uIGZiRmllbGRCYXNlKCYkZm9ybV9wdHIsICYkcGFyYW1zKQogIHsKCiAgICAkdGhpcy0+Zm9ybV9wdHIgPSAmJGZvcm1fcHRyOwogICAgJG1vZCA9ICYkZm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkdGhpcy0+T3B0aW9ucyA9IGFycmF5KCk7CiAgICAkdGhpcy0+RGlzcGxheUluRm9ybSA9IHRydWU7CiAgICAkdGhpcy0+RGlzcGxheUluU3VibWlzc2lvbiA9IHRydWU7CiAgICAkdGhpcy0+SXNEaXNwb3NpdGlvbiA9IGZhbHNlOwogICAgJHRoaXMtPlZhbGlkYXRpb25UeXBlcyA9IGFycmF5KCRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25fbm9uZScpPT4nbm9uZScpOwogICAgJHRoaXMtPmxvYWRlZCA9IGZhbHNlOwogICAgJHRoaXMtPk5vblJlcXVpcmFibGVGaWVsZCA9IGZhbHNlOwogICAgJHRoaXMtPkhhc0FkZE9wID0gZmFsc2U7CiAgICAkdGhpcy0+SGFzRGVsZXRlT3AgPSBmYWxzZTsKICAgICR0aGlzLT5IYXNVc2VyQWRkT3AgPSBmYWxzZTsKICAgICR0aGlzLT5IYXNVc2VyRGVsZXRlT3AgPSBmYWxzZTsKICAgICR0aGlzLT5tb2RpZmllc090aGVyRmllbGRzID0gZmFsc2U7CiAgICAkdGhpcy0+aGFzTXVsdGlwbGVGb3JtQ29tcG9uZW50cyA9IGZhbHNlOwogICAgJHRoaXMtPkRpc3Bvc2l0aW9uUGVybWl0dGVkID0gdHJ1ZTsKICAgICR0aGlzLT5TbWFydHlFdmFsID0gZmFsc2U7CiAgICAkdGhpcy0+bGFiZWxTdWJDb21wb25lbnRzID0gdHJ1ZTsKICAgICR0aGlzLT5zb3J0YWJsZSA9IHRydWU7CiAgICAkdGhpcy0+SXNDb21wdXRlZE9uU3VibWlzc2lvbiA9IGZhbHNlOwoKICAgIGlmIChpc3NldCgkcGFyYW1zWydmb3JtX2lkJ10pKQogICAgICB7CgkkdGhpcy0+Rm9ybUlkID0gJHBhcmFtc1snZm9ybV9pZCddOwogICAgICB9CiAgICBpZiAoaXNzZXQoJHBhcmFtc1snZmllbGRfaWQnXSkpCiAgICAgIHsKCSR0aGlzLT5JZCA9ICRwYXJhbXNbJ2ZpZWxkX2lkJ107CiAgICAgIH0KICAgIGlmIChpc3NldCgkcGFyYW1zWydmYnJwX2ZpZWxkX25hbWUnXSkpCiAgICAgIHsKCSR0aGlzLT5OYW1lID0gJHBhcmFtc1snZmJycF9maWVsZF9uYW1lJ107CiAgICAgIH0KICAgIGlmIChpc3NldCgkcGFyYW1zWydmYnJwX2ZpZWxkX3R5cGUnXSkpCiAgICAgIHsKCSR0aGlzLT5UeXBlID0gJHBhcmFtc1snZmJycF9maWVsZF90eXBlJ107CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJJHRoaXMtPlR5cGUgPSAnJzsKICAgICAgfQogICAgaWYgKGlzc2V0KCRwYXJhbXNbJ2ZicnBfb3JkZXJfYnknXSkpCiAgICAgIHsKCSR0aGlzLT5PcmRlckJ5ID0gJHBhcmFtc1snZmJycF9vcmRlcl9ieSddOwogICAgICB9CiAgICBpZiAoaXNzZXQoJHBhcmFtc1snZmJycF9oaWRlX2xhYmVsJ10pKQogICAgICB7CgkkdGhpcy0+SGlkZUxhYmVsID0gJHBhcmFtc1snZmJycF9oaWRlX2xhYmVsJ107CiAgICAgIH0KICAgIGVsc2UgaWYgKGlzc2V0KCRwYXJhbXNbJ2ZicnBfc2V0X2Zyb21fZm9ybSddKSkKICAgICAgewoJJHRoaXMtPkhpZGVMYWJlbCA9IDA7CiAgICAgIH0KICAgIGlmIChpc3NldCgkcGFyYW1zWydmYnJwX3JlcXVpcmVkJ10pKQogICAgICB7CgkkdGhpcy0+UmVxdWlyZWQgPSAkcGFyYW1zWydmYnJwX3JlcXVpcmVkJ107CiAgICAgIH0KICAgIGVsc2UgaWYgKGlzc2V0KCRwYXJhbXNbJ2ZicnBfc2V0X2Zyb21fZm9ybSddKSkKICAgICAgewoJJHRoaXMtPlJlcXVpcmVkID0gMDsKICAgICAgfQogICAgaWYgKGlzc2V0KCRwYXJhbXNbJ2ZicnBfdmFsaWRhdGlvbl90eXBlJ10pKQogICAgICB7CgkkdGhpcy0+VmFsaWRhdGlvblR5cGUgPSAkcGFyYW1zWydmYnJwX3ZhbGlkYXRpb25fdHlwZSddOwogICAgICB9CgogICAgZm9yZWFjaCAoJHBhcmFtcyBhcyAkdGhpc1BhcmFtS2V5PT4kdGhpc1BhcmFtVmFsKQogICAgICB7CglpZiAoc3Vic3RyKCR0aGlzUGFyYW1LZXksMCw5KSA9PSAnZmJycF9vcHRfJykKCSAgewoJICAgICR0aGlzUGFyYW1LZXkgPSBzdWJzdHIoJHRoaXNQYXJhbUtleSw5KTsKCSAgICAkdGhpcy0+T3B0aW9uc1skdGhpc1BhcmFtS2V5XSA9ICR0aGlzUGFyYW1WYWw7CgkgIH0KICAgICAgfQoKICAgIGlmIChpc3NldCgkcGFyYW1zWydmYnJwX18nLiR0aGlzLT5JZF0pICYmCgkoaXNfYXJyYXkoJHBhcmFtc1snZmJycF9fJy4kdGhpcy0+SWRdKSB8fAoJIHN0cmxlbigkcGFyYW1zWydmYnJwX18nLiR0aGlzLT5JZF0pID4gMCkpCiAgICAgIHsKCSAgICR0aGlzLT5TZXRWYWx1ZSgkcGFyYW1zWydmYnJwX18nLiR0aGlzLT5JZF0pOwogICAgICB9CiAgfQoKICBmdW5jdGlvbiBIYXNNdWx0aXBsZUZvcm1Db21wb25lbnRzKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPmhhc011bHRpcGxlRm9ybUNvbXBvbmVudHM7CiAgfQoKICBmdW5jdGlvbiBMYWJlbFN1YkNvbXBvbmVudHMoKQogIHsKICAgIHJldHVybiAkdGhpcy0+bGFiZWxTdWJDb21wb25lbnRzOwogIH0KCiAgZnVuY3Rpb24gQ29tcHV0ZU9uU3VibWlzc2lvbigpCiAgewogICAgcmV0dXJuICR0aGlzLT5Jc0NvbXB1dGVkT25TdWJtaXNzaW9uOwogIH0KCgogIC8vIG92ZXJyaWRlIG1lIAogIGZ1bmN0aW9uIENvbXB1dGVPcmRlcigpCiAgewogIAlyZXR1cm4gMDsKICB9CgogIGZ1bmN0aW9uIEhhc011bHRpcGxlVmFsdWVzKCkKICB7CiAgCWlmICgkdGhpcy0+aGFzTXVsdGlwbGVGb3JtQ29tcG9uZW50cyB8fCAkdGhpcy0+SGFzVXNlckFkZE9wKQogIAkJewogIAkJcmV0dXJuIHRydWU7CiAgCQl9CiAgCWVsc2UKICAJCXsKICAJCXJldHVybiBmYWxzZTsKICAJCX0KICB9CgogIGZ1bmN0aW9uIEdldEZpZWxkSW5wdXRJZCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCiAgewogICAgcmV0dXJuICRpZC4nZmJycF9fJy4kdGhpcy0+SWQ7CiAgfQoKICBmdW5jdGlvbiBNb2RpZmllc090aGVyRmllbGRzKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPm1vZGlmaWVzT3RoZXJGaWVsZHM7CiAgfQoKICAvLyBtZWNoYW5pc20gZm9yIGZpZWxkcy9kaXNwb3NpdGlvbnMgdG8gaW5oaWJpdCBvdGhlciBkaXNwb3NpdGlvbnMKICBmdW5jdGlvbiBEaXNwb3NpdGlvbklzUGVybWl0dGVkKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPkRpc3Bvc2l0aW9uUGVybWl0dGVkOwogIH0KCiAgLy8gbWVjaGFuaXNtIGZvciBmaWVsZHMvZGlzcG9zaXRpb25zIHRvIGluaGliaXQgb3RoZXIgZGlzcG9zaXRpb25zCiAgZnVuY3Rpb24gU2V0RGlzcG9zaXRpb25QZXJtaXNzaW9uKCRwZXJtaXR0ZWQ9dHJ1ZSkKICB7CiAgICAkdGhpcy0+RGlzcG9zaXRpb25QZXJtaXR0ZWQgPSAkcGVybWl0dGVkOwogIH0KCgogIC8vIG92ZXJyaWRlIG1lIGlmIHlvdSdyZSBqdXN0IHR3ZWFraW5nIG90aGVyIGZpZWxkcyBiZWZvcmUgZGlzcG9zaXRpb24KICBmdW5jdGlvbiBNb2RpZnlPdGhlckZpZWxkcygpCiAgewogIH0KCiAgLy8gb3ZlcnJpZGUgbWUgd2l0aCBhIGZvcm0gaW5wdXQgc3RyaW5nIG9yIHNvbWV0aGluZwogIC8vIHRoaXMgc2hvdWxkIGp1c3QgYmUgdGhlIGlucHV0IHBvcnRpb24uIFRoZSB0aXRsZQogIC8vIGFuZCBhbnkgd3JhcHBpbmcgZGl2cyB3aWxsIGJlIHByb3ZpZGVkIGJ5IHRoZSBmb3JtCiAgLy8gcmVuZGVyZXIuCiAgZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCiAgewogICAgcmV0dXJuICcnOwogIH0KCQogIC8vIG92ZXJyaWRlIG1lIHdpdGggc29tZXRoaW5nIHRvIHNob3cgdXNlcnMKICBmdW5jdGlvbiBTdGF0dXNJbmZvKCkKICB7CiAgICByZXR1cm4gJyc7CiAgfQoKICBmdW5jdGlvbiBEZWJ1Z0Rpc3BsYXkoKQogIHsKICAgICR0bXAgPSAkdGhpcy0+Zm9ybV9wdHI7CiAgICAkdGhpcy0+Zm9ybV9wdHIgPSAnW2ZybXB0cjogJy4kdG1wLT5HZXRJZCgpLiddJzsKICAgIGRlYnVnX2Rpc3BsYXkoJHRoaXMpOwogICAgJHRoaXMtPmZvcm1fcHRyID0gJHRtcDsKICB9CgogIGZ1bmN0aW9uIEdldElkKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPklkOwogIH0KCiAgZnVuY3Rpb24gSGFzQWRkT3AoKQogIHsKICAgIHJldHVybiAkdGhpcy0+SGFzQWRkT3A7CiAgfQoKICAvLyBvdmVycmlkZSBtZSwgd2hlbiBuZWNlc3Nhcnkgb3IgdXNlZnVsCiAgZnVuY3Rpb24gRG9PcHRpb25BZGQoJiRwYXJhbXMpCiAgewogIH0KCiAgLy8gb3ZlcnJpZGUgbWUKICBmdW5jdGlvbiBHZXRPcHRpb25BZGRCdXR0b24oKQogIHsKICAgICRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICByZXR1cm4gJG1vZC0+TGFuZygnYWRkX29wdGlvbnMnKTsKICB9CgkKICBmdW5jdGlvbiBIYXNEZWxldGVPcCgpCiAgewogICAgcmV0dXJuICR0aGlzLT5IYXNEZWxldGVPcDsKICB9CgogIC8vIG92ZXJyaWRlIG1lLCB3aGVuIG5lY2Vzc2FyeSBvciB1c2VmdWwKICBmdW5jdGlvbiBEb09wdGlvbkRlbGV0ZSgmJHBhcmFtcykKICB7CiAgfQoKICAvLyBvdmVycmlkZSBtZQogIGZ1bmN0aW9uIEdldE9wdGlvbkRlbGV0ZUJ1dHRvbigpCiAgewogICAgJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgIHJldHVybiAkbW9kLT5MYW5nKCdkZWxldGVfb3B0aW9ucycpOwogIH0KCiAgZnVuY3Rpb24gU2V0TmFtZSgkbmFtZSkKICB7CiAgCSR0aGlzLT5OYW1lID0gJG5hbWU7CiAgfQogIAogIGZ1bmN0aW9uIEdldE5hbWUoKQogIHsKICAgIHJldHVybiAkdGhpcy0+TmFtZTsKICB9CgogIGZ1bmN0aW9uIFNldFNtYXJ0eUV2YWwoJGJvb2wpCiAgewogIAkkdGhpcy0+U21hcnR5RXZhbCA9ICRib29sOwogIH0KICAKICBmdW5jdGlvbiBHZXRTbWFydHlFdmFsKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPlNtYXJ0eUV2YWw7CiAgfQoKICBmdW5jdGlvbiBHZXRPcmRlcigpCiAgewogICAgcmV0dXJuICR0aGlzLT5PcmRlckJ5OwogIH0KCiAgZnVuY3Rpb24gU2V0T3JkZXIoJG9yZGVyKQogIHsKICAgICR0aGlzLT5PcmRlckJ5ID0gJG9yZGVyOwogIH0KCQogIGZ1bmN0aW9uIEdldEZpZWxkVHlwZSgpCiAgewogICAgcmV0dXJuICR0aGlzLT5UeXBlOwogIH0KCiAgZnVuY3Rpb24gU2V0RmllbGRUeXBlKCR0eXBlKQogIHsKICAgIHJldHVybiAkdGhpcy0+VHlwZSA9ICR0eXBlOwogIH0KCgkKICBmdW5jdGlvbiBJc0Rpc3Bvc2l0aW9uKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPklzRGlzcG9zaXRpb247CiAgfQoKICBmdW5jdGlvbiBIYXNMYWJlbCgpCiAgewogICAgcmV0dXJuICR0aGlzLT5IYXNMYWJlbDsKICB9CgogIGZ1bmN0aW9uIE5lZWRzRGl2KCkKICB7CiAgICByZXR1cm4gJHRoaXMtPk5lZWRzRGl2OwogIH0KCgogIGZ1bmN0aW9uIFNldEhpZGVMYWJlbCgkaGlkZSkKICB7CiAgCSR0aGlzLT5IaWRlTGFiZWwgPSAkaGlkZT8xOjA7CiAgfQogIAkKICBmdW5jdGlvbiBIaWRlTGFiZWwoKQogIHsKICAgIHJldHVybiAoJHRoaXMtPkhpZGVMYWJlbD09MT90cnVlOmZhbHNlKTsKICB9CgogIGZ1bmN0aW9uIERpc3BsYXlJbkZvcm0oKQogIHsKICAgIHJldHVybiAkdGhpcy0+RGlzcGxheUluRm9ybTsKICB9CgogIGZ1bmN0aW9uIERpc3BsYXlJblN1Ym1pc3Npb24oKQogIHsKICAgIC8vcmV0dXJuICgkdGhpcy0+RGlzcGxheUluRm9ybSAmJiAkdGhpcy0+RGlzcGxheUluU3VibWlzc2lvbik7CiAgICByZXR1cm4gJHRoaXMtPkRpc3BsYXlJblN1Ym1pc3Npb247CiAgfQoKCQogIGZ1bmN0aW9uIElzTm9uUmVxdWlyYWJsZUZpZWxkKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPk5vblJlcXVpcmFibGVGaWVsZDsKICB9CgogIGZ1bmN0aW9uIElzUmVxdWlyZWQoKQogIHsKICAgIHJldHVybiAoJHRoaXMtPlJlcXVpcmVkID09IDE/dHJ1ZTpmYWxzZSk7CiAgfQoKICBmdW5jdGlvbiBTZXRSZXF1aXJlZCgkcmVxdWlyZWQpCiAgewogICAgJHRoaXMtPlJlcXVpcmVkID0gKCRyZXF1aXJlZD8xOjApOwogIH0KCiAgZnVuY3Rpb24gVG9nZ2xlUmVxdWlyZWQoKQogIHsKICAgICR0aGlzLT5SZXF1aXJlZCA9ICgkdGhpcy0+UmVxdWlyZWQ/MDoxKTsKICB9CgoKICBmdW5jdGlvbiBHZXRWYWxpZGF0aW9uVHlwZXMoKQogIHsKICAgIHJldHVybiAkdGhpcy0+VmFsaWRhdGlvblR5cGVzOwogIH0KCQogIGZ1bmN0aW9uIEdldFZhbGlkYXRpb25UeXBlKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPlZhbGlkYXRpb25UeXBlOwogIH0KCiAgZnVuY3Rpb24gU2V0VmFsaWRhdGlvblR5cGUoJHRoZVR5cGUpCiAgewogICAgJHRoaXMtPlZhbGlkYXRpb25UeXBlID0gJHRoZVR5cGU7CiAgfQoKICBmdW5jdGlvbiBJc1ZhbGlkKCkKICB7CiAgCXJldHVybiAkdGhpcy0+dmFsaWRhdGVkOwogIH0KICAKICBmdW5jdGlvbiBHZXRWYWxpZGF0aW9uRXJyb3JUZXh0KCkKICB7CiAgCXJldHVybiAkdGhpcy0+dmFsaWRhdGlvbkVycm9yVGV4dDsKICB9CgoKICAvLyBvdmVycmlkZSBtZSB3aXRoIGEgZGlzcGxheWFibGUgdHlwZQogIGZ1bmN0aW9uIEdldERpc3BsYXlUeXBlKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyLT5MYW5nKCdmaWVsZF90eXBlXycuJHRoaXMtPlR5cGUpOwogIH0KCgogIGZ1bmN0aW9uIFByZVBvcHVsYXRlQmFzZUFkbWluRm9ybSgkZm9ybURlc2NyaXB0b3IsJGRpc3Bvc2VPbmx5PTApCiAgewogICAgJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgIGlmICgkdGhpcy0+VHlwZSA9PSAnJykKICAgICAgewoJaWYgKCRkaXNwb3NlT25seSA9PSAxKQoJICB7CgkgICAgJHR5cGVJbnB1dCA9ICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9maWVsZF90eXBlJyxhcnJheV9tZXJnZShhcnJheSgkbW9kLT5MYW5nKCdzZWxlY3RfdHlwZScpPT4nJyksJG1vZC0+ZGlzcF9maWVsZF90eXBlcyksIC0xLCcnLCAnb25jaGFuZ2U9InRoaXMuZm9ybS5zdWJtaXQoKSInKTsKCSAgfQoJZWxzZQoJICB7CgkgICAgJHR5cGVJbnB1dCA9ICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9maWVsZF90eXBlJyxhcnJheV9tZXJnZShhcnJheSgkbW9kLT5MYW5nKCdzZWxlY3RfdHlwZScpPT4nJyksJG1vZC0+ZmllbGRfdHlwZXMpLCAtMSwnJywgJ29uY2hhbmdlPSJ0aGlzLmZvcm0uc3VibWl0KCkiJyk7CgkgIH0KICAgICAgfQogICAgZWxzZQogICAgICB7CgkkdHlwZUlucHV0ID0gJHRoaXMtPkdldERpc3BsYXlUeXBlKCkuJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9maWVsZF90eXBlJywgJHRoaXMtPlR5cGUpOwogICAgICB9CgkJCiAgICAkbWFpbiA9IGFycmF5KAoJCSAgYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZmllbGRfbmFtZScpLAoJCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9maWVsZF9uYW1lJywgJHRoaXMtPkdldE5hbWUoKSwgNTApKSwKCQkgIGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX3R5cGUnKSwkdHlwZUlucHV0KSwKCQkgICk7CgkJCiAgICAkYWR2ID0gYXJyYXkoKTsKCiAgICAvLyBpZiB3ZSBrbm93IG91ciB0eXBlLCB3ZSBjYW4gbG9hZCB1cCB3aXRoIGFkZGl0aW9uYWwgb3B0aW9ucwogICAgaWYgKCR0aGlzLT5UeXBlICE9ICcnKQogICAgICB7CgkJCQoJLy8gdmFsaWRhdGlvbiB0eXBlcz8KCWlmIChjb3VudCgkdGhpcy0+R2V0VmFsaWRhdGlvblR5cGVzKCkpID4gMSkKCSAgewoJICAgICR2YWxpZElucHV0ID0gJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkZm9ybURlc2NyaXB0b3IsICdmYnJwX3ZhbGlkYXRpb25fdHlwZScsICR0aGlzLT5HZXRWYWxpZGF0aW9uVHlwZXMoKSwgLTEsICR0aGlzLT5HZXRWYWxpZGF0aW9uVHlwZSgpKTsKCSAgfQoJZWxzZQoJICB7CgkgICAgJHZhbGlkSW5wdXQgPSAkbW9kLT5MYW5nKCdhdXRvbWF0aWMnKTsKCSAgfQoJCQkJCglpZiAoISR0aGlzLT5Jc05vblJlcXVpcmFibGVGaWVsZCgpKQoJICB7CgkgICAgYXJyYXlfcHVzaCgkbWFpbiwgYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZmllbGRfcmVxdWlyZWQnKSwkbW9kLT5DcmVhdGVJbnB1dENoZWNrYm94KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfcmVxdWlyZWQnLCAxLCAkdGhpcy0+SXNSZXF1aXJlZCgpKS4kbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9yZXF1aXJlZF9sb25nJykpKTsKCSAgfQoJCQkJCglhcnJheV9wdXNoKCRtYWluLCBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF92YWxpZGF0aW9uJyksJHZhbGlkSW5wdXQpKTsKCglpZiggJHRoaXMtPkhhc0xhYmVsID09IDEgKQoJICB7CgkgICAgYXJyYXlfcHVzaCgkYWR2LCBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9oaWRlX2xhYmVsJyksJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX2hpZGVfbGFiZWwnLCAxLCAkdGhpcy0+SGlkZUxhYmVsKCkpLiRtb2QtPkxhbmcoJ3RpdGxlX2hpZGVfbGFiZWxfbG9uZycpKSk7CgkgIH0KCglpZiAoJHRoaXMtPkRpc3BsYXlJbkZvcm0oKSkKCSAgewoJICAgIGFycmF5X3B1c2goJGFkdixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9jc3NfY2xhc3MnKSwkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfY3NzX2NsYXNzJywgJHRoaXMtPkdldE9wdGlvbignY3NzX2NsYXNzJyksIDUwKSkpOwoJICB9CgkJCQogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCS8vIG5vIGFkdmFuY2VkIG9wdGlvbnMgdW50aWwgd2Uga25vdyBvdXIgdHlwZQoJYXJyYXlfcHVzaCgkYWR2LGFycmF5KCRtb2QtPkxhbmcoJ3RhYl9hZHZhbmNlZCcpLCRtb2QtPkxhbmcoJ25vdGljZV9zZWxlY3RfdHlwZScpKSk7CiAgICAgIH0KCQkJCQogICAgcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sICdhZHYnPT4kYWR2KTsKICB9CgkKCQogIC8vIG92ZXJyaWRlIG1lLgogIC8vIEkgcmV0dXJuIGFuIHVnbHkgZGF0YSBzdHJ1Y3R1cmU6CiAgLy8gSXQncyBhbiBhc3NvY2lhdGl2ZSBhcnJheSB3aXRoIHR3byBpdGVtcywgJ21haW4nIGFuZCAnYWR2JyAoZm9yIHRoZQogIC8vIG1haW4gYW5kIGFkdmFuY2VkIHNldHRpbmcgdGFicykuCiAgLy8gRWFjaCBvZiB0aGVzZSBpcyBhbiBhc3NvY2lhdGl2ZSBhcnJheSBvZiBUaXRsZSAvIElucHV0IHZhbHVlcy4KICAvLyBUaGUgVGl0bGUgd2lsbCBiZSBkaXNwbGF5ZWQgaWYgaXQgaGFzIGEgbGVuZ3RoOwogIC8vIHRoZSAiSW5wdXQiIHNob3VsZCBiZSBhIEZvcm0gaW5wdXQgZm9yIHRoYXQgZmllbGQgYXR0cmlidXRlL29wdGlvbgogIGZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKICB7CiAgICByZXR1cm4gYXJyYXkoKTsKICB9CgogIC8vIG92ZXJyaWRlIG1lLgogIC8vIFRoaXMgZ2l2ZXMgeW91IGEgY2hhbmNlIHRvIGFsdGVyIHRoZSBhcnJheSBjb250ZW50cyBiZWZvcmUKICAvLyB0aGV5IGdldCByZW5kZXJlZC4gCiAgZnVuY3Rpb24gUG9zdFBvcHVsYXRlQWRtaW5Gb3JtKCYkbWFpbkFycmF5LCAmJGFkdkFycmF5KQogIHsKICB9CgoKICAvLyBvdmVycmlkZSBtZSBhcyBuZWNlc3NhcnkKICBmdW5jdGlvbiBQb3N0QWRtaW5TdWJtaXRDbGVhbnVwKCkKICB7CiAgfQoKICAvLyBjbGVhciBmaWVsZHMgdW51c2VkIGJ5IGludmlzaWJsZSBkaXNwb3NpdGlvbnMKICBmdW5jdGlvbiBIaWRkZW5EaXNwb3NpdGlvbkZpZWxkcygmJG1haW5BcnJheSwgJiRhZHZBcnJheSwgJGhpZGVSZXE9dHJ1ZSkKICB7CiAgICAkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgIGlmICgkaGlkZVJlcSkKICAgIAl7CiAgICAJLy8gcmVtb3ZlIHRoZSAicmVxdWlyZWQiIGZpZWxkCiAgICAJJHJlcUluZGV4ID0gLTE7CiAgICAJZm9yICgkaT0wOyRpPGNvdW50KCRtYWluQXJyYXkpOyRpKyspCiAgICAgIAkJewoJCQlpZiAoJG1haW5BcnJheVskaV0tPnRpdGxlID09ICRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkJykpCgkgIAkJCXsKCSAgICAJCSRyZXFJbmRleCA9ICRpOwoJICAJCQl9CiAgICAgIAkJfQogICAgCWlmICgkcmVxSW5kZXggIT0gLTEpCiAgICAgIAkJewoJCQlhcnJheV9zcGxpY2UoJG1haW5BcnJheSwgJHJlcUluZGV4LDEpOwogICAgICAJCX0KICAgICAJfQogICAgLy8gcmVtb3ZlIHRoZSAiaGlkZSBuYW1lIiBmaWVsZAogICAgJGhpZGVJbmRleCA9IC0xOwogICAgZm9yICgkaT0wOyRpPGNvdW50KCRhZHZBcnJheSk7JGkrKykKICAgICAgewoJaWYgKCRhZHZBcnJheVskaV0tPnRpdGxlID09ICRtb2QtPkxhbmcoJ3RpdGxlX2hpZGVfbGFiZWwnKSkKCSAgewoJICAgICRoaWRlSW5kZXggPSAkaTsKCSAgfQogICAgICB9CiAgICBpZiAoJGhpZGVJbmRleCAhPSAtMSkKICAgICAgewoJYXJyYXlfc3BsaWNlKCRhZHZBcnJheSwgJGhpZGVJbmRleCwxKTsKICAgICAgfQogICAgLy8gcmVtb3ZlIHRoZSAiY3NzIiBmaWVsZAogICAgJGhpZGVJbmRleCA9IC0xOwogICAgZm9yICgkaT0wOyRpPGNvdW50KCRhZHZBcnJheSk7JGkrKykKICAgICAgewoJaWYgKCRhZHZBcnJheVskaV0tPnRpdGxlID09ICRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX2Nzc19jbGFzcycpKQoJICB7CgkgICAgJGhpZGVJbmRleCA9ICRpOwoJICB9CiAgICAgIH0KICAgIGlmICgkaGlkZUluZGV4ICE9IC0xKQogICAgICB7CglhcnJheV9zcGxpY2UoJGFkdkFycmF5LCAkaGlkZUluZGV4LDEpOwogICAgICB9CiAgICBpZiAoY291bnQoJGFkdkFycmF5KSA9PSAwKQogICAgICB7CgkkYWR2QXJyYXlbMF0tPnRpdGxlID0gJG1vZC0+TGFuZygndGFiX2FkdmFuY2VkJyk7CgkkYWR2QXJyYXlbMF0tPmlucHV0ID0gJG1vZC0+TGFuZygndGl0bGVfbm9fYWR2YW5jZWRfb3B0aW9ucycpOwogICAgICB9CiAgfQoJCgogIC8vIG92ZXJyaWRlIG1lLiBSZXR1cm5zIGFuIGFycmF5OiBmaXJzdCB2YWx1ZSBpcyBhIHRydWUgb3IgZmFsc2UgKHdoZXRoZXIgb3Igbm90CiAgLy8gdGhlIHZhbHVlIGlzIHZhbGlkKSwgdGhlIHNlY29uZCBpcyBhIG1lc3NhZ2UKICBmdW5jdGlvbiBWYWxpZGF0ZSgpCiAgewogIAkkdGhpcy0+dmFsaWRhdGVkID0gdHJ1ZTsKICAJJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQgPSAnJzsKICAgIHJldHVybiBhcnJheSgkdGhpcy0+dmFsaWRhdGVkLCAkdGhpcy0+dmFsaWRhdGVkRXJyb3JUZXh0KTsKICB9CgoKICBmdW5jdGlvbiBHZXRIdW1hblJlYWRhYmxlVmFsdWUoKQogIHsKICAgICRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgaWYgKCR0aGlzLT5WYWx1ZSAhPT0gZmFsc2UpCiAgICAgIHsKCXJldHVybiAkdGhpcy0+VmFsdWU7CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJcmV0dXJuICR0aGlzLT5mb3JtX3B0ci0+R2V0QXR0cigndW5zcGVjaWZpZWQnLCRtb2QtPkxhbmcoJ3Vuc3BlY2lmaWVkJykpOwogICAgICB9CiAgfQoKCiAgLy8gb3ZlcnJpZGUgdGhpcyBpZiB5b3UgaGF2ZSBzb21lIHVudXN1YWwgZm9ybWF0IGZvciB2YWx1ZXMsCiAgLy8gZXNwZWNpYWxseSBpZiAiZmFsc2UiIGlzIGEgdmFsaWQgdmFsdWUhCiAgZnVuY3Rpb24gSGFzVmFsdWUoKQogIHsKICAgIHJldHVybiAoJHRoaXMtPlZhbHVlICE9PSBmYWxzZSk7CiAgfQoJCiAgLy8gcHJvYmFibHkgZG9uJ3QgbmVlZCB0byBvdmVycmlkZSB0aGlzCiAgZnVuY3Rpb24gR2V0VmFsdWUoKQogIHsKICAgIHJldHVybiAkdGhpcy0+VmFsdWU7CiAgfQoKICAvLyBvdmVycmlkZSBtZT8gUmV0dXJucyB0aGUgKHBvc3NpYmx5IGNvbnZlcnRlZCkgdmFsdWUgb2YgdGhlIGZpZWxkLgogIGZ1bmN0aW9uIEdldEFycmF5VmFsdWUoJGluZGV4KQogIHsKICAgIGlmICgkdGhpcy0+VmFsdWUgIT09IGZhbHNlKQogICAgICB7CglpZiAoaXNfYXJyYXkoJHRoaXMtPlZhbHVlKSkKCSAgewoJICAgIGlmIChpc3NldCgkdGhpcy0+VmFsdWVbJGluZGV4XSkpCgkgICAgICB7CgkJcmV0dXJuICR0aGlzLT5WYWx1ZVskaW5kZXhdOwoJICAgICAgfQoJICB9CgllbHNlaWYgKCRpbmRleCA9PSAwKQoJICB7CgkgICAgcmV0dXJuICR0aGlzLT5WYWx1ZTsKCSAgfQogICAgICB9CiAgICByZXR1cm4gZmFsc2U7CiAgfQoKICAvLyBvdmVycmlkZSBtZT8gUmV0dXJucyB0cnVlIGlmIHRoZSB2YWx1ZSBpcyBjb250YWluZWQgaW4gdGhlIFZhbHVlIGFycmF5CiAgZnVuY3Rpb24gRmluZEFycmF5VmFsdWUoJHZhbHVlKQogIHsKICAgIGlmICgkdGhpcy0+VmFsdWUgIT09IGZhbHNlKQogICAgICB7CglpZiAoaXNfYXJyYXkoJHRoaXMtPlZhbHVlKSkKCSAgewoJICAgIHJldHVybiBhcnJheV9zZWFyY2goJHZhbHVlLCR0aGlzLT5WYWx1ZSk7CgkgIH0KCWVsc2VpZiAoJHRoaXMtPlZhbHVlID09ICR2YWx1ZSkKCSAgewoJICAgIHJldHVybiB0cnVlOwoJICB9CiAgICAgIH0KICAgIHJldHVybiBmYWxzZTsKICB9CgogIGZ1bmN0aW9uIFJlc2V0VmFsdWUoKQogIHsKICAgICR0aGlzLT5WYWx1ZSA9IGZhbHNlOwogIH0KCiAgLy8gb3ZlcnJpZGUgbWUsIGlmIG5lY2Vzc2FyeSB0byBjb252ZXJ0IHR5cGUgb3Igc29tZXRoaW5nLgogIGZ1bmN0aW9uIFNldFZhbHVlKCR2YWxTdHIpCiAgewogICAgJGZtID0gJiR0aGlzLT5mb3JtX3B0cjsKICAgIGlmICgkdGhpcy0+VmFsdWUgPT09IGZhbHNlKQogICAgICB7CiAgICAgIGlmIChpc19hcnJheSgkdmFsU3RyKSkKICAgICAgICAgewogICAgICAgICAkdGhpcy0+VmFsdWUgPSAkdmFsU3RyOwogICAgICAgICBmb3IgKCRpPTA7JGk8Y291bnQoJHRoaXMtPlZhbHVlKTskaSsrKQogICAgICAgICAgICB7CiAgICAgICAgICAgIHdoaWxlICggJHRoaXMtPlZhbHVlWyRpXSAhPSAkZm0tPnVubXlfaHRtbGVudGl0aWVzKCR0aGlzLT5WYWx1ZVskaV0pKQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICR0aGlzLT5WYWx1ZVskaV0gPSAkZm0tPnVubXlfaHRtbGVudGl0aWVzKCR0aGlzLT5WYWx1ZVskaV0pOwogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICBlbHNlCiAgICAgICAgIHsKICAgICAgICAgd2hpbGUgKCR0aGlzLT5WYWx1ZSAhPSAkZm0tPnVubXlfaHRtbGVudGl0aWVzKCR2YWxTdHIpKQogICAgICAgICAgICB7CgkgICAgICAgICAkdGhpcy0+VmFsdWUgPSAkZm0tPnVubXlfaHRtbGVudGl0aWVzKCR2YWxTdHIpOwoJICAgICAgICAgfQoJICAgICAgfQogICAgICB9CiAgICBlbHNlCiAgICAgIHsKICAgICAgd2hpbGUgKCR2YWxTdHIgIT0gJGZtLT51bm15X2h0bWxlbnRpdGllcygkdmFsU3RyKSkKICAgICAgICAgewogICAgICAgICAkdmFsU3RyID0gJGZtLT51bm15X2h0bWxlbnRpdGllcygkdmFsU3RyKTsKICAgICAgICAgfQoJaWYgKCEgaXNfYXJyYXkoJHRoaXMtPlZhbHVlKSkKCSAgewoJICAgICR0aGlzLT5WYWx1ZSA9IGFycmF5KCR0aGlzLT5WYWx1ZSk7CgkgIH0KCWFycmF5X3B1c2goJHRoaXMtPlZhbHVlLCR2YWxTdHIpOwogICAgICB9CiAgfQoKICAvLyBvdmVycmlkZSBtZSwgYXMgbmVjZXNzYXJ5CiAgZnVuY3Rpb24gQ29tcGFyZVRvKCR2YWwpCiAgewogICAgcmV0dXJuIHN0cmNtcCgkdmFsLT5HZXRIdW1hblJlYWRhYmxlVmFsdWUoKSwgJHRoaXMtPkdldEh1bWFuUmVhZGFibGVWYWx1ZSgpKTsKICB9CgogIGZ1bmN0aW9uIFJlcXVpcmVzVmFsaWRhdGlvbigpCiAgewogICAgaWYgKCR0aGlzLT5WYWxpZGF0aW9uVHlwZSA9PSAnbm9uZScpCiAgICAgIHsKCXJldHVybiBmYWxzZTsKICAgICAgfQogICAgZWxzZQogICAgICB7CglyZXR1cm4gdHJ1ZTsKICAgICAgfQogIH0KCiAgZnVuY3Rpb24gRG9lc0ZpZWxkTmFtZUV4aXN0KCkKICB7CiAgICAkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkKICAgIC8vIGZpZWxkIG5hbWUgaW4gdXNlPz8KICAgIGlmICgkbW9kLT5HZXRQcmVmZXJlbmNlKCd1bmlxdWVfZmllbGRuYW1lcycsJzEnKSA9PSAnMScgJiYKICAgIAkkdGhpcy0+Zm9ybV9wdHItPkhhc0ZpZWxkTmFtZWQoJHRoaXMtPkdldE5hbWUoKSkgIT0gJHRoaXMtPklkKQogICAgICB7CgkJcmV0dXJuIGFycmF5KGZhbHNlLCRtb2QtPkxhbmcoJ2ZpZWxkX25hbWVfaW5fdXNlJywkdGhpcy0+R2V0TmFtZSgpKS4KCQknPGJyIC8+Jyk7CiAgICAgIH0JCQogICAgcmV0dXJuIGFycmF5KHRydWUsJycpOwogIH0KCgogICBmdW5jdGlvbiBEb2VzRmllbGRIYXZlTmFtZSgpCiAgIHsKICAgICRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogIAlpZiAoJG1vZC0+R2V0UHJlZmVyZW5jZSgncmVxdWlyZV9maWVsZG5hbWVzJywnMScpID09ICcxJyAmJgogIAkJc3RybGVuKCR0aGlzLT5HZXROYW1lKCkpIDwgMSkKICAJCXsKICAJCXJldHVybiBhcnJheShmYWxzZSwgJG1vZC0+TGFuZygnZmllbGRfbm9fbmFtZScpLic8YnIgLz4nKTsKICAJCX0KCXJldHVybiBhcnJheSh0cnVlLCcnKTsgICAKICAgfQoKICAvLyBvdmVycmlkZSBtZSwgaWYgbmVlZGVkLiBSZXR1cm5zIGFuIGFycmF5OiBmaXJzdCB2YWx1ZSBpcyBhIHRydWUgb3IKICAvLyBmYWxzZSAod2hldGhlciBvciBub3QgdGhlIHZhbHVlIGlzIHZhbGlkKSwgdGhlIHNlY29uZCBpcyBhIG1lc3NhZ2UKICBmdW5jdGlvbiBBZG1pblZhbGlkYXRlKCkKICB7CiAgCWxpc3QoJHJldCwgJG1lc3NhZ2UpID0gJHRoaXMtPkRvZXNGaWVsZEhhdmVOYW1lKCk7CglpZiAoJHJldCkKCQl7CgkJbGlzdCgkcmV0LCAkbWVzc2FnZSkgPSAkdGhpcy0+RG9lc0ZpZWxkTmFtZUV4aXN0KCk7CgkJfQoJcmV0dXJuIGFycmF5KCRyZXQsICRtZXNzYWdlKTsKICB9CgoKICAvLyBvdmVycmlkZSBtZSBpZiB5b3UncmUgYSBGb3JtIERpc3Bvc2l0aW9uIHBzZXVkby1maWVsZC4KICAvLyBUaGlzIG1ldGhvZCBjYW4gZG8ganVzdAogIC8vIGFib3V0IGFueXRoaW5nIHlvdSB3YW50IGl0IHRvLCBpbiBvcmRlciB0byBoYW5kbGUgZm9ybSBjb250ZW50cy4KICAvLyBpdCByZXR1cm5zIGFuIGFycmF5LCB3aGVyZSB0aGUgZmlyc3QgZWxlbWVudCBpcyB0cnVlIG9uIHN1Y2Nlc3MsCiAgLy8gb3IgZmFsc2Ugb24gZmFpbHVyZSwgYW5kIHRoZSBzZWNvbmQgZWxlbWVudCBpcyBleHBsYW5hdG9yeQogIC8vIHRleHQgZm9yIHRoZSBmYWlsdXJlCiAgZnVuY3Rpb24gRGlzcG9zZUZvcm0oKQogIHsKICAgIHJldHVybiBhcnJheSh0cnVlLCAnJyk7CiAgfQkKCiAgZnVuY3Rpb24gRXhwb3J0WE1MKCRleHBvcnRWYWx1ZXMgPSBmYWxzZSkKICB7CgkkeG1sc3RyID0gIlx0PGZpZWxkIGlkPVwiIi4kdGhpcy0+SWQuIlwiXG4iOwoJJHhtbHN0ciAuPSAiXHRcdHR5cGU9XCIiLiR0aGlzLT5UeXBlLiJcIlxuIjsKCSR4bWxzdHIgLj0gIlx0XHRuYW1lPVwiIi5odG1sc3BlY2lhbGNoYXJzKCR0aGlzLT5OYW1lKS4iXCJcbiI7CgkkeG1sc3RyIC49ICJcdFx0dmFsaWRhdGlvbl90eXBlPVwiIi4kdGhpcy0+VmFsaWRhdGlvblR5cGUuIlwiXG4iOwoJJHhtbHN0ciAuPSAiXHRcdG9yZGVyX2J5PVwiIi4kdGhpcy0+T3JkZXJCeS4iXCJcbiI7CgkkeG1sc3RyIC49ICJcdFx0cmVxdWlyZWQ9XCIiLiR0aGlzLT5SZXF1aXJlZC4iXCJcbiI7CgkkeG1sc3RyIC49ICJcdFx0aGlkZV9sYWJlbD1cIiIuJHRoaXMtPkhpZGVMYWJlbC4iXCI+XG4iOwoJZm9yZWFjaCgkdGhpcy0+T3B0aW9ucyBhcyAkbmFtZT0+JHZhbHVlKQoJCXsKCQlpZiAoaXNfYXJyYXkoJHZhbHVlKSkKCQkJewoJCQlmb3JlYWNoICgkdmFsdWUgYXMgJHRoaXNWYWwpCgkJCQl7CgkJCQkkeG1sc3RyIC49ICJcdFx0XHQ8b3B0aW9uIG5hbWU9XCIkbmFtZVwiPjwhW0NEQVRBWyR0aGlzVmFsXV0+PC9vcHRpb24+XG4iOwoJCQkJfQoJCQl9CgkJZWxzZQoJCQl7CgkJCSR4bWxzdHIgLj0gIlx0XHRcdDxvcHRpb24gbmFtZT1cIiRuYW1lXCI+PCFbQ0RBVEFbJHZhbHVlXV0+PC9vcHRpb24+XG4iOwoJCQl9CgkJfQoJaWYgKCRleHBvcnRWYWx1ZXMpCgkJewoJCWZvcmVhY2goJHRoaXMtPlZhbHVlIGFzICRuYW1lPT4kdmFsdWUpCgkJCXsKCQkJaWYgKGlzX2FycmF5KCR2YWx1ZSkpCgkJCQl7CgkJCQlmb3JlYWNoICgkdmFsdWUgYXMgJHRoaXNWYWwpCgkJCQkJewoJCQkJCSR4bWxzdHIgLj0gIlx0XHRcdDx2YWx1ZSBuYW1lPVwiJG5hbWVcIj48IVtDREFUQVskdGhpc1ZhbF1dPjwvdmFsdWU+XG4iOwoJCQkJCX0KCQkJCX0KCQkJZWxzZQoJCQkJewoJCQkJJHhtbHN0ciAuPSAiXHRcdFx0PHZhbHVlIG5hbWU9XCIkbmFtZVwiPjwhW0NEQVRBWyR2YWx1ZV1dPjwvdmFsdWU+XG4iOwoJCQkJfQoJCQl9CgkJfQoKCSR4bWxzdHIgLj0gIjwvZmllbGQ+XG4iOwoJcmV0dXJuICR4bWxzdHI7CiAgfQoKICBmdW5jdGlvbiBHZXRPcHRpb25OYW1lcygpCiAgewogICAgcmV0dXJuIGFycmF5X2tleXMoJHRoaXMtPk9wdGlvbnMpOwogIH0KCiAgZnVuY3Rpb24gR2V0T3B0aW9uKCRvcHRpb25OYW1lLCAkZGVmYXVsdD0nJykKICB7CiAgICBpZiAoaXNzZXQoJHRoaXMtPk9wdGlvbnNbJG9wdGlvbk5hbWVdKSkKICAgICAgewoJcmV0dXJuICR0aGlzLT5PcHRpb25zWyRvcHRpb25OYW1lXTsKICAgICAgfQogICAgcmV0dXJuICRkZWZhdWx0OwogIH0KCiAgZnVuY3Rpb24gJkdldE9wdGlvblJlZigkb3B0aW9uTmFtZSkKICAgIHsKICAgICAgaWYgKGlzc2V0KCR0aGlzLT5PcHRpb25zWyRvcHRpb25OYW1lXSkpCgl7CgkgIHJldHVybiAkdGhpcy0+T3B0aW9uc1skb3B0aW9uTmFtZV07Cgl9CiAgICAgICR0bXAgPSBmYWxzZTsKICAgICAgcmV0dXJuICR0bXA7CiAgICB9CgoJCiAgZnVuY3Rpb24gUmVtb3ZlT3B0aW9uRWxlbWVudCgkb3B0aW9uTmFtZSwgJGluZGV4KQogIHsKICAgIGlmIChpc3NldCgkdGhpcy0+T3B0aW9uc1skb3B0aW9uTmFtZV0pKQogICAgICB7CglpZiAoaXNfYXJyYXkoJHRoaXMtPk9wdGlvbnNbJG9wdGlvbk5hbWVdKSkKCSAgewoJICAgIGlmIChpc3NldCgkdGhpcy0+T3B0aW9uc1skb3B0aW9uTmFtZV1bJGluZGV4XSkpCgkgICAgICB7CgkJYXJyYXlfc3BsaWNlKCR0aGlzLT5PcHRpb25zWyRvcHRpb25OYW1lXSwkaW5kZXgsMSk7CgkgICAgICB9CgkgIH0KICAgICAgfQogIH0KCQogIGZ1bmN0aW9uIEdldE9wdGlvbkVsZW1lbnQoJG9wdGlvbk5hbWUsICRpbmRleCwgJGRlZmF1bHQ9IiIpCiAgewogICAgaWYgKGlzc2V0KCR0aGlzLT5PcHRpb25zWyRvcHRpb25OYW1lXSkpCiAgICAgIHsKCWlmIChpc19hcnJheSgkdGhpcy0+T3B0aW9uc1skb3B0aW9uTmFtZV0pKQoJICB7CgkgICAgaWYgKGlzc2V0KCR0aGlzLT5PcHRpb25zWyRvcHRpb25OYW1lXVskaW5kZXhdKSkKCSAgICAgIHsKCQlyZXR1cm4gJHRoaXMtPk9wdGlvbnNbJG9wdGlvbk5hbWVdWyRpbmRleF07CgkgICAgICB9CgkgIH0KCWVsc2VpZiAoJGluZGV4ID09IDApCgkgIHsKCSAgICByZXR1cm4gJHRoaXMtPk9wdGlvbnNbJG9wdGlvbk5hbWVdOwoJICB9CiAgICAgIH0KCiAgICByZXR1cm4gJGRlZmF1bHQ7CQkKICB9CgogIGZ1bmN0aW9uIFNldE9wdGlvbigkb3B0aW9uTmFtZSwgJG9wdGlvblZhbHVlKQogIHsKICAgICR0aGlzLT5PcHRpb25zWyRvcHRpb25OYW1lXSA9ICRvcHRpb25WYWx1ZTsKICB9CiAgCiAgZnVuY3Rpb24gUHVzaE9wdGlvbkVsZW1lbnQoJG9wdGlvbk5hbWUsICR2YWwpCiAgewogIAlpZiAoaXNzZXQoJHRoaXMtPk9wdGlvbnNbJG9wdGlvbk5hbWVdKSkKICAJCXsKICAJCWlmIChpc19hcnJheSgkdGhpcy0+T3B0aW9uc1skb3B0aW9uTmFtZV0pKQogIAkJCXsKICAJCQlhcnJheV9wdXNoKCR0aGlzLT5PcHRpb25zWyRvcHRpb25OYW1lXSwkdmFsKTsKICAJCQl9CiAgCQllbHNlCiAgCQkJewogIAkJCSR0aGlzLT5PcHRpb25zWyRvcHRpb25OYW1lXSA9IGFycmF5KCR0aGlzLT5PcHRpb25zWyRvcHRpb25OYW1lXSwkdmFsKTsKICAJCQl9CiAgCQl9CiAgCWVsc2UKICAJCXsKICAJCSR0aGlzLT5PcHRpb25zWyRvcHRpb25OYW1lXSA9ICR2YWw7CiAgCQl9CiAgfQoKICBmdW5jdGlvbiBMb2FkRmllbGQoJiRwYXJhbXMpCiAgewogICAgaWYgKCR0aGlzLT5JZCA+IDApCiAgICAgIHsKCSR0aGlzLT5Mb2FkKCR0aGlzLT5JZCwgJHBhcmFtcywgdHJ1ZSk7CiAgICAgIH0KICAgIHJldHVybjsKICB9CgogIC8vIGN1c3RvbWl6ZWQgdmVyc2lvbiBvZiBBUEkgZnVuY3Rpb24gQ3JlYXRlVGV4dElucHV0LiBUaGlzIGRvZXNuJ3QgdGhyb3cgaW4gYW4gSUQgdGhhdCdzIHRoZSBzYW1lIGFzIHRoZSBmaWVsZCBuYW1lLgogIGZ1bmN0aW9uIFRleHRGaWVsZCgkaWQsICRuYW1lLCAkdmFsdWU9JycsICRzaXplPScxMCcsICRtYXhsZW5ndGg9JzI1NScsICRhZGR0dGV4dD0nJykKewogICR2YWx1ZSA9IGNtc19odG1sZW50aXRpZXMoaHRtbF9lbnRpdHlfZGVjb2RlKCR2YWx1ZSkpOwogICRpZCA9IGNtc19odG1sZW50aXRpZXMoaHRtbF9lbnRpdHlfZGVjb2RlKCRpZCkpOwogICRuYW1lID0gY21zX2h0bWxlbnRpdGllcyhodG1sX2VudGl0eV9kZWNvZGUoJG5hbWUpKTsKICAkc2l6ZSA9ICgkc2l6ZSE9Jyc/Y21zX2h0bWxlbnRpdGllcygkc2l6ZSk6MTApOwogICRtYXhsZW5ndGggPSAoJG1heGxlbmd0aCE9Jyc/Y21zX2h0bWxlbnRpdGllcygkbWF4bGVuZ3RoKToyNTUpOwoKICAkdmFsdWUgPSBzdHJfcmVwbGFjZSgnIicsICcmcXVvdDsnLCAkdmFsdWUpOwogIAogICR0ZXh0ID0gJzxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSInLiRpZC4kbmFtZS4nIiB2YWx1ZT0iJy4kdmFsdWUuJyIgc2l6ZT0iJy4kc2l6ZS4nIiBtYXhsZW5ndGg9IicuJG1heGxlbmd0aC4nIic7CiAgaWYgKCRhZGR0dGV4dCAhPSAnJykKICAgIHsKICAgICAgJHRleHQgLj0gJyAnIC4gJGFkZHR0ZXh0OwogICAgfQogICR0ZXh0IC49ICIgLz5cbiI7CiAgcmV0dXJuICR0ZXh0Owp9CgoKICAvLyBsb2FkRGVlcCBhbHNvIGxvYWRzIGFsbCBvcHRpb25zIGZvciBhIGZpZWxkLgogIGZ1bmN0aW9uIExvYWQoJGlkLCAmJHBhcmFtcywgJGxvYWREZWVwPWZhbHNlKQogIHsKICAgICRzcWwgPSAnU0VMRUNUICogRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9mYl9maWVsZCBXSEVSRSBmaWVsZF9pZD0/JzsKICAgIGlmKCRyZXN1bHQgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHItPmRiSGFuZGxlLT5HZXRSb3coJHNxbCwgYXJyYXkoJHRoaXMtPklkKSkpCiAgICAgIHsKCWlmIChzdHJsZW4oJHRoaXMtPk5hbWUpIDwgMSkKCSAgewoJICAgICR0aGlzLT5OYW1lID0gJHJlc3VsdFsnbmFtZSddOwoJICB9CglpZiAoc3RybGVuKCR0aGlzLT5WYWxpZGF0aW9uVHlwZSkgPCAxKQoJICB7CgkgICAgJHRoaXMtPlZhbGlkYXRpb25UeXBlID0gJHJlc3VsdFsndmFsaWRhdGlvbl90eXBlJ107CgkgIH0KCSR0aGlzLT5UeXBlID0gJHJlc3VsdFsndHlwZSddOwoJJHRoaXMtPk9yZGVyQnkgPSAkcmVzdWx0WydvcmRlcl9ieSddOwoJaWYgKCR0aGlzLT5SZXF1aXJlZCA9PSAtMSkKCSAgewoJICAgICR0aGlzLT5SZXF1aXJlZCA9ICRyZXN1bHRbJ3JlcXVpcmVkJ107CgkgIH0KCWlmICgkdGhpcy0+SGlkZUxhYmVsID09IC0xKQoJICB7CgkgICAgJHRoaXMtPkhpZGVMYWJlbCA9ICRyZXN1bHRbJ2hpZGVfbGFiZWwnXTsKCSAgfQogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCXJldHVybiBmYWxzZTsKICAgICAgfQogICAgJHRoaXMtPmxvYWRlZCA9IHRydWU7CiAgICBpZiAoJGxvYWREZWVwKQogICAgICB7Cgkkc3FsID0gJ1NFTEVDVCBuYW1lLCB2YWx1ZSBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLgoJICAnbW9kdWxlX2ZiX2ZpZWxkX29wdCBXSEVSRSBmaWVsZF9pZD0/IE9SREVSIEJZIG9wdGlvbl9pZCc7CgkkcnMgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHItPmRiSGFuZGxlLT5FeGVjdXRlKCRzcWwsCgkJCQkJCQkgICAgIGFycmF5KCR0aGlzLT5JZCkpOwoJJHRtcE9wdHMgPSBhcnJheSgpOwoJd2hpbGUgKCRycyAmJiAkcmVzdWx0cyA9ICRycy0+RmV0Y2hSb3coKSkKCSAgewoJICAgIGlmIChpc3NldCgkdG1wT3B0c1skcmVzdWx0c1snbmFtZSddXSkpCgkgICAgICB7CgkJaWYgKCEgaXNfYXJyYXkoJHRtcE9wdHNbJHJlc3VsdHNbJ25hbWUnXV0pKQoJCSAgewoJCSAgICAkdG1wT3B0c1skcmVzdWx0c1snbmFtZSddXSA9IGFycmF5KCR0bXBPcHRzWyRyZXN1bHRzWyduYW1lJ11dKTsKCQkgIH0KCQlhcnJheV9wdXNoKCR0bXBPcHRzWyRyZXN1bHRzWyduYW1lJ11dLCRyZXN1bHRzWyd2YWx1ZSddKTsKCSAgICAgIH0KCSAgICBlbHNlCgkgICAgICB7CgkJJHRtcE9wdHNbJHJlc3VsdHNbJ25hbWUnXV09JHJlc3VsdHNbJ3ZhbHVlJ107CgkgICAgICB9CgkgIH0KCSR0aGlzLT5PcHRpb25zID0gYXJyYXlfbWVyZ2UoJHRtcE9wdHMsJHRoaXMtPk9wdGlvbnMpOwoKCWlmIChpc3NldCgkcGFyYW1zWyd2YWx1ZV8nLiR0aGlzLT5OYW1lXSkgJiYKCSAgICAoaXNfYXJyYXkoJHBhcmFtc1sndmFsdWVfJy4kdGhpcy0+TmFtZV0pIHx8CgkgICAgIHN0cmxlbigkcGFyYW1zWyd2YWx1ZV8nLiR0aGlzLT5OYW1lXSkgPiAwKSkKCSAgewoJICAgICR0aGlzLT5TZXRWYWx1ZSgkcGFyYW1zWyd2YWx1ZV8nLiR0aGlzLT5OYW1lXSk7CgkgIH0KCQoJaWYgKGlzc2V0KCRwYXJhbXNbJ3ZhbHVlX2ZsZCcuJHRoaXMtPklkXSkgJiYKCSAgICAoaXNfYXJyYXkoJHBhcmFtc1sndmFsdWVfZmxkJy4kdGhpcy0+SWRdKSB8fAoJICAgICBzdHJsZW4oJHBhcmFtc1sndmFsdWVfZmxkJy4kdGhpcy0+SWRdKSA+IDApKQoJICB7CgkgICAgJHRoaXMtPlNldFZhbHVlKCRwYXJhbXNbJ3ZhbHVlX2ZsZCcuJHRoaXMtPklkXSk7CgkgIH0KICAgICAgfQoKCiAgICByZXR1cm4gdHJ1ZTsKICB9CgoKICBmdW5jdGlvbiBTdG9yZSgkc3RvcmVEZWVwPWZhbHNlKQogIHsKICAgICRtb2QgPSAgJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgaWYgKCR0aGlzLT5JZCA9PSAtMSkKICAgICAgewoJJHRoaXMtPklkID0gJG1vZC0+ZGJIYW5kbGUtPkdlbklEKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2ZpZWxkX3NlcScpOwoJJHNxbCA9ICdJTlNFUlQgSU5UTyAnIC5jbXNfZGJfcHJlZml4KCkuCgkgICdtb2R1bGVfZmJfZmllbGQgKGZpZWxkX2lkLCBmb3JtX2lkLCBuYW1lLCB0eXBlLCAnIC4KCSAgJ3JlcXVpcmVkLCB2YWxpZGF0aW9uX3R5cGUsIGhpZGVfbGFiZWwsIG9yZGVyX2J5KSAnLgoJICAnIFZBTFVFUyAoPywgPywgPywgPywgPywgPywgPywgPyknOwoJJHJlcyA9ICRtb2QtPmRiSGFuZGxlLT5FeGVjdXRlKCRzcWwsCgkJCQkgICAgICAgYXJyYXkoJHRoaXMtPklkLCAkdGhpcy0+Rm9ybUlkLCAkdGhpcy0+TmFtZSwKCQkJCQkgICAgICR0aGlzLT5UeXBlLCAoJHRoaXMtPlJlcXVpcmVkPzE6MCksIAoJCQkJCSAgICAgJHRoaXMtPlZhbGlkYXRpb25UeXBlLCAkdGhpcy0+SGlkZUxhYmVsLCAkdGhpcy0+T3JkZXJCeSkpOwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCSRzcWwgPSAnVVBEQVRFICcgLiBjbXNfZGJfcHJlZml4KCkgLgoJICAnbW9kdWxlX2ZiX2ZpZWxkIHNldCBuYW1lPT8sIHR5cGU9PywnLgoJICAncmVxdWlyZWQ9PywgdmFsaWRhdGlvbl90eXBlPT8sIG9yZGVyX2J5PT8sICcuCgkgICdoaWRlX2xhYmVsPT8gd2hlcmUgZmllbGRfaWQ9Pyc7CgkkcmVzID0gJG1vZC0+ZGJIYW5kbGUtPkV4ZWN1dGUoJHNxbCwKCQkJCSAgICAgICBhcnJheSgkdGhpcy0+TmFtZSwgJHRoaXMtPlR5cGUsICgkdGhpcy0+UmVxdWlyZWQ/MTowKSwKCQkJCQkgICAgICR0aGlzLT5WYWxpZGF0aW9uVHlwZSwKCQkJCQkgICAgICR0aGlzLT5PcmRlckJ5LCAkdGhpcy0+SGlkZUxhYmVsLCAkdGhpcy0+SWQpKTsKICAgICAgfQogICAgICAgICAgICAKICAgIGlmICgkc3RvcmVEZWVwKQogICAgICB7CgkvLyBkcm9wIG9sZCBvcHRpb25zCgkkc3FsID0gJ0RFTEVURSBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLgoJICAnbW9kdWxlX2ZiX2ZpZWxkX29wdCB3aGVyZSBmaWVsZF9pZD0/JzsKCSRyZXMgPSAkbW9kLT5kYkhhbmRsZS0+RXhlY3V0ZSgkc3FsLAoJCQkJICAgICAgIGFycmF5KCR0aGlzLT5JZCkpOwoKCWZvcmVhY2ggKCR0aGlzLT5PcHRpb25zIGFzICR0aGlzT3B0S2V5PT4kdGhpc09wdFZhbHVlTGlzdCkKCSAgewoJICAgIGlmICghIGlzX2FycmF5KCR0aGlzT3B0VmFsdWVMaXN0KSkKCSAgICAgIHsKCQkkdGhpc09wdFZhbHVlTGlzdCA9IGFycmF5KCR0aGlzT3B0VmFsdWVMaXN0KTsKCSAgICAgIH0KCSAgICBmb3JlYWNoICgkdGhpc09wdFZhbHVlTGlzdCBhcyAkdGhpc09wdFZhbHVlKQoJICAgICAgewoJCSRvcHRJZCA9ICRtb2QtPmRiSGFuZGxlLT5HZW5JRCgKCQkJCQkgICAgICAgY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGRfb3B0X3NlcScpOwoJCSRzcWwgPSAnSU5TRVJUIElOVE8gJyAuIGNtc19kYl9wcmVmaXgoKS4KCQkgICdtb2R1bGVfZmJfZmllbGRfb3B0IChvcHRpb25faWQsIGZpZWxkX2lkLCBmb3JtX2lkLCAnLgoJCSAgJ25hbWUsIHZhbHVlKSBWQUxVRVMgKD8sID8sID8sID8sID8pJzsKCQkkcmVzID0gJG1vZC0+ZGJIYW5kbGUtPkV4ZWN1dGUoJHNxbCwKCQkJCQkgICAgICAgYXJyYXkoJG9wdElkLCAkdGhpcy0+SWQsICR0aGlzLT5Gb3JtSWQsICR0aGlzT3B0S2V5LAoJCQkJCQkgICAgICR0aGlzT3B0VmFsdWUpKTsKCSAgICAgIH0KCSAgfQogICAgICB9CiAgICByZXR1cm4gJHJlczsKICB9CgogIGZ1bmN0aW9uIERlbGV0ZSgpCiAgewogICAgaWYgKCR0aGlzLT5JZCA9PSAtMSkKICAgICAgewoJcmV0dXJuIGZhbHNlOwogICAgICB9CiAgICAkc3FsID0gJ0RFTEVURSBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX2ZiX2ZpZWxkIHdoZXJlIGZpZWxkX2lkPT8nOwogICAgJHJlcyA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0ci0+ZGJIYW5kbGUtPkV4ZWN1dGUoJHNxbCwKCQkJCQkJCSAgYXJyYXkoJHRoaXMtPklkKSk7CiAgICAkc3FsID0gJ0RFTEVURSBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX2ZiX2ZpZWxkX29wdCB3aGVyZSBmaWVsZF9pZD0/JzsKICAgICRyZXMgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHItPmRiSGFuZGxlLT5FeGVjdXRlKCRzcWwsCgkJCQkJCQkgIGFycmF5KCR0aGlzLT5JZCkpOwogICAgcmV0dXJuIHRydWU7CiAgfQp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/FieldsetEnd.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkZpZWxkc2V0RW5kIGV4dGVuZHMgZmJGaWVsZEJhc2UgewoKICBmdW5jdGlvbiBmYkZpZWxkc2V0RW5kKCYkZm9ybV9wdHIsICYkcGFyYW1zKQogIHsKICAgICR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgJG1vZCA9ICYkZm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkdGhpcy0+VHlwZSA9ICdGaWVsZHNldEVuZCc7CiAgICAkdGhpcy0+RGlzcGxheUluRm9ybSA9IHRydWU7CiAgICAkdGhpcy0+RGlzcGxheUluU3VibWlzc2lvbiA9IGZhbHNlOwogICAgJHRoaXMtPk5vblJlcXVpcmFibGVGaWVsZCA9IHRydWU7CiAgICAkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoKTsgICAgCiAgICAkdGhpcy0+SGFzTGFiZWwgPSAwOwogICAgJHRoaXMtPk5lZWRzRGl2ID0gMDsKICAgICR0aGlzLT5zb3J0YWJsZSA9IGZhbHNlOwogIH0KCiAgZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCiAgewogICAgcmV0dXJuICc8L2ZpZWxkc2V0Pic7CiAgfQoKICBmdW5jdGlvbiBTdGF0dXNJbmZvKCkKICB7CiAgICByZXR1cm4gJyc7CiAgfQoKICBmdW5jdGlvbiBHZXRIdW1hblJlYWRhYmxlVmFsdWUoKQogIHsKICAgIC8vIHRoZXJlJ3Mgbm90aGluZyBodW1hbiByZWFkYWJsZSBhYm91dCBhIGZpZWxkc2V0LgogICAgcmV0dXJuICdbRW5kIEZpZWxkc2V0OiAnLiR0aGlzLT5WYWx1ZS4nXSc7CiAgfQoJCiAgZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQogIHsKICAgICRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgJG1haW4gPSBhcnJheSgpOwogICAgJGFkdiA9IGFycmF5KCk7CiAgICByZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7CiAgfQoKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/FieldsetStart.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkZpZWxkc2V0U3RhcnQgZXh0ZW5kcyBmYkZpZWxkQmFzZSB7CgogIGZ1bmN0aW9uIGZiRmllbGRzZXRTdGFydCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKICB7CiAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICRtb2QgPSAmJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgJHRoaXMtPlR5cGUgPSAnRmllbGRzZXRTdGFydCc7CiAgICAkdGhpcy0+RGlzcGxheUluRm9ybSA9IHRydWU7CiAgICAkdGhpcy0+RGlzcGxheUluU3VibWlzc2lvbiA9IGZhbHNlOwogICAgJHRoaXMtPk5vblJlcXVpcmFibGVGaWVsZCA9IHRydWU7CiAgICAkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoKTsgICAgCiAgICAkdGhpcy0+SGFzTGFiZWwgPSAwOwogICAgJHRoaXMtPk5lZWRzRGl2ID0gMDsKICAgICR0aGlzLT5zb3J0YWJsZSA9IGZhbHNlOwogIH0KCiAgZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCiAgewogICAgJHN0ciA9ICc8ZmllbGRzZXQnOwogICAgJGNsYXNzID0gJHRoaXMtPkdldE9wdGlvbignY3NzX2NsYXNzJyk7CiAgICAkbGVnZW5kID0gJHRoaXMtPkdldE9wdGlvbignbGVnZW5kJyk7CiAgICBpZiggJGNsYXNzICE9ICcnICkKICAgICAgewoJJHN0ciAuPSAiIGNsYXNzPVwiJGNsYXNzXCIiOwogICAgICB9CiAgICAkc3RyIC49ICc+JzsKICAgIGlmKCAkbGVnZW5kICE9ICcnICkKICAgICAgewoJJHN0ciAuPSAnPGxlZ2VuZD4nLiRsZWdlbmQuJzwvbGVnZW5kPic7CiAgICAgIH0KICAgIHJldHVybiAkc3RyOwogIH0KCiAgZnVuY3Rpb24gU3RhdHVzSW5mbygpCiAgewogICAgcmV0dXJuICcnOwogIH0KCiAgZnVuY3Rpb24gR2V0SHVtYW5SZWFkYWJsZVZhbHVlKCkKICB7CiAgICAvLyB0aGVyZSdzIG5vdGhpbmcgaHVtYW4gcmVhZGFibGUgYWJvdXQgYSBmaWVsZHNldC4KICAgIHJldHVybiAnW0JlZ2luIEZpZWxkc2V0OiAnLiR0aGlzLT5WYWx1ZS4nXSc7CiAgfQoJCiAgZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQogIHsKICAgICRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgJG1haW4gPSBhcnJheSgKCQkgIGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2xlZ2VuZCcpLAogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsJ2ZicnBfb3B0X2xlZ2VuZCcsCgkJCQkJICAgICAgJHRoaXMtPkdldE9wdGlvbignbGVnZW5kJywnJyksIDUwKSkpOwogICAgJGFkdiA9IGFycmF5KCk7CiAgICByZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7CiAgfQoKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/FileUploadField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLy8gRmVlZGJhY2sgRm9ybS4gMDIvMjAwNSBTakcgPGZlZWRiYWNrZm9ybV9jbXNtb2R1bGVAZm9nYm91bmQubmV0PgovLyBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCAoYykyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKLy8gVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKCmNsYXNzIGZiRmlsZVVwbG9hZEZpZWxkIGV4dGVuZHMgZmJGaWVsZEJhc2UgewoKICBmdW5jdGlvbiBmYkZpbGVVcGxvYWQoJiRmb3JtX3B0ciwgJiRwYXJhbXMpCiAgewogICAgJHRoaXMtPmZiRmllbGRCYXNlKCRmb3JtX3B0ciwgJHBhcmFtcyk7CiAgICAkbW9kID0gJiRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICR0aGlzLT5UeXBlID0gJ0ZpbGVVcGxvYWQnOwogICAgLy8gICAgJHRoaXMtPkRpc3BsYXlUeXBlID0gJG1vZC0+TGFuZygnZmllbGRfdHlwZV9maWxlX3VwbG9hZCcpOwogICAgJHRoaXMtPlZhbGlkYXRpb25UeXBlcyA9IGFycmF5KAoJCQkJICAgJG1vZC0+TGFuZygndmFsaWRhdGlvbl9ub25lJyk9Pidub25lJyk7CgkgJHRoaXMtPnNvcnRhYmxlID0gZmFsc2U7CiAgfQoKICBmdW5jdGlvbiBHZXRGaWVsZElucHV0KCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkKICB7CiAgICAkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICR0eHQgPSAkbW9kLT5DcmVhdGVGaWxlVXBsb2FkSW5wdXQoJGlkLCdmYnJwX18nLiR0aGlzLT5JZCk7CiAgICByZXR1cm4gJHR4dDsKICB9CgogIGZ1bmN0aW9uIExvYWQoJGlkLCAmJHBhcmFtcywgJGxvYWREZWVwPWZhbHNlKQogIHsKICAgICRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgcGFyZW50OjpMb2FkKCRpZCwkcGFyYW1zLCRsb2FkRGVlcCk7CiAgICBpZiggaXNzZXQoICRfRklMRVMgKSAmJiBpc3NldCggJF9GSUxFU1skbW9kLT5tb2R1bGVfaWQuJ2ZicnBfXycuJHRoaXMtPklkXSApICkKICAgICAgewoJLy8gT2theSwgYSBmaWxlIHdhcyB1cGxvYWRlZAoJJHRoaXMtPlNldFZhbHVlKCRtb2QtPm1vZHVsZV9pZC4nZmJycF9fJy4kdGhpcy0+SWQpOwogICAgICB9CiAgfQoKICBmdW5jdGlvbiBTdGF0dXNJbmZvKCkKICB7CiAgICAkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICRtcyA9ICR0aGlzLT5HZXRPcHRpb24oJ21heF9zaXplJyk7CiAgICAkZXh0cyA9ICR0aGlzLT5HZXRPcHRpb24oJ3Blcm1pdHRlZF9leHRlbnNpb25zJyk7CiAgICAkcmV0ID0gJyc7CiAgICAkcmV0IC49ICRtb2QtPkxhbmcoJ21heGltdW1fc2l6ZScpLic6ICcuJG1zLidrYic7CiAgICAkcmV0IC49ICcsICc7CiAgICAkcmV0IC49ICRtb2QtPkxhbmcoJ3Blcm1pdHRlZF9leHRlbnNpb25zJykgLiAnOiAnLiRleHRzOwogICAgcmV0dXJuICRyZXQ7CiAgfQogIAogIAogIGZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKICB7CiAgICAkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICRtcyA9ICR0aGlzLT5HZXRPcHRpb24oJ21heF9zaXplJyk7CiAgICAkZXh0cyA9ICR0aGlzLT5HZXRPcHRpb24oJ3Blcm1pdHRlZF9leHRlbnNpb25zJyk7CiAgICAkc2hvdyA9ICR0aGlzLT5HZXRPcHRpb24oJ3Nob3dfZGV0YWlscycpOwogICAgJHNlbmR0b191cGxvYWRzID0gJHRoaXMtPkdldE9wdGlvbignc2VuZHRvX3VwbG9hZHMnLCdmYWxzZScpOwogICAgJHVwbG9hZHNfY2F0ZWdvcnkgPSAkdGhpcy0+R2V0T3B0aW9uKCd1cGxvYWRzX2NhdGVnb3J5Jyk7CiAgICAkdXBsb2Fkc19kZXN0cGFnZSA9ICR0aGlzLT5HZXRPcHRpb24oJ3VwbG9hZHNfZGVzdHBhZ2UnKTsKCiAgICAkbWFpbiA9IGFycmF5KAoJCSAgYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfbWF4aW11bV9zaXplJykuJzonLAoJCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAKCQkJCQkgICAgICAnZmJycF9vcHRfbWF4X3NpemUnLCAkbXMsIDUsIDUpLgoJCQknICcuJG1vZC0+TGFuZygndGl0bGVfbWF4aW11bV9zaXplX2xvbmcnKSksCgkJICBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9ucycpLic6JywKCQkJJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgCgkJCQkJICAgICAgJ2ZicnBfb3B0X3Blcm1pdHRlZF9leHRlbnNpb25zJywKCQkJCQkgICAgICAkZXh0cywyNSw4MCkuJzxici8+Jy4KCQkJJG1vZC0+TGFuZygndGl0bGVfcGVybWl0dGVkX2V4dGVuc2lvbnNfbG9uZycpKSwKCQkgIGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnMnKS4nOicsCgkJCSRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAKCQkJCQkJICAnZmJycF9vcHRfc2hvd19kZXRhaWxzJywgJ3RydWUnLCAKCQkJCQkJICAkc2hvdykuCgkJCScgJy4kbW9kLT5MYW5nKCd0aXRsZV9zaG93X2xpbWl0YXRpb25zX2xvbmcnKSkKCQkgKTsKCiAgICAkdXBsb2FkcyA9ICRtb2QtPkdldE1vZHVsZUluc3RhbmNlKCdVcGxvYWRzJyk7CiAgICAkc2VuZHRvX3VwbG9hZHNfbGlzdCA9IGFycmF5KCRtb2QtPkxhbmcoJ25vJyk9PjAsCgkJCQkgJG1vZC0+TGFuZygneWVzJyk9PjEpOwogICAgaWYoICR1cGxvYWRzICkKICAgICAgewoJJGNhdGVnb3J5bGlzdCA9ICR1cGxvYWRzLT5nZXRDYXRlZ29yeUxpc3QoKTsKCSRhZHYgPSBhcnJheSgKCQkgICAgIGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3NlbmR0b191cGxvYWRzJykuJzonLAoJCQkgICAkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRmb3JtRGVzY3JpcHRvciwKCQkJCQkJICAgICAnZmJycF9vcHRfc2VuZHRvX3VwbG9hZHMnLCRzZW5kdG9fdXBsb2Fkc19saXN0LAoJCQkJCQkgICAgICRzZW5kdG9fdXBsb2FkcykpLAoJCSAgICAgYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfdXBsb2Fkc19jYXRlZ29yeScpLic6JywKCQkJICAgJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkZm9ybURlc2NyaXB0b3IsCgkJCQkJCSAgICAgJ2ZicnBfb3B0X3VwbG9hZHNfY2F0ZWdvcnknLCRjYXRlZ29yeWxpc3QsCgkJCQkJCSAgICAgJHVwbG9hZHNfY2F0ZWdvcnkpKSwKCQkgICAgIGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3VwbG9hZHNfZGVzdHBhZ2UnKS4nOicsCgkJCSAgICRtb2QtPkNyZWF0ZVBhZ2VEcm9wZG93bigkZm9ybURlc2NyaXB0b3IsCgkJCQkJCSAgICAnZmJycF9vcHRfdXBsb2Fkc19kZXN0cGFnZScsJHVwbG9hZHNfZGVzdHBhZ2UpKQoJCQkJCQkgIAoJCSAgICAgKTsKICAgICAgfQoKICAgIHJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLCdhZHYnPT4kYWR2KTsKICB9CgoKICBmdW5jdGlvbiBWYWxpZGF0ZSgpCiAgewogIAkkdGhpcy0+dmFsaWRhdGVkID0gdHJ1ZTsKICAJJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQgPSAnJzsKICAgICRtcyA9ICR0aGlzLT5HZXRPcHRpb24oJ21heF9zaXplJyk7CiAgICAkZXh0cyA9ICR0aGlzLT5HZXRPcHRpb24oJ3Blcm1pdHRlZF9leHRlbnNpb25zJyk7CiAgICAkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICRmdWxsQWxpYXMgPSAkdGhpcy0+R2V0VmFsdWUoKTsKICAgIGlmICgkX0ZJTEVTWyRmdWxsQWxpYXNdWydzaXplJ10gPCAxICYmICEgJHRoaXMtPlJlcXVpcmVkKQogICAgICB7CglyZXR1cm4gYXJyYXkodHJ1ZSwnJyk7CiAgICAgIH0KICAgIGlmICgkX0ZJTEVTWyRmdWxsQWxpYXNdWydzaXplJ10gPCAxICYmICR0aGlzLT5SZXF1aXJlZCApCiAgICAgIHsKIAkkdGhpcy0+dmFsaWRhdGVkID0gZmFsc2U7CiAJJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQgPSAkbW9kLT5MYW5nKCdyZXF1aXJlZF9maWVsZF9taXNzaW5nJyk7CiAgICAgIH0KICAgIGVsc2UgaWYgKCRtcyAhPSAnJyAmJiAkX0ZJTEVTWyRmdWxsQWxpYXNdWydzaXplJ10gPiAoJG1zICogMTAwMCkpCiAgICAgIHsKCSR0aGlzLT52YWxpZGF0aW9uRXJyb3JUZXh0ID0gJG1vZC0+TGFuZygnZmlsZV90b29fbGFyZ2UnKS4gJyAnLigkbXMgKiAxMDAwKS4na2InOwoJJHRoaXMtPnZhbGlkYXRlZCA9IGZhbHNlOwogICAgICB9CiAgICBlbHNlIGlmICgkZXh0cykKICAgICAgewoJJG1hdGNoID0gZmFsc2U7CgkkbGVnYWxFeHRzID0gZXhwbG9kZSgnLCcsJGV4dHMpOwoJZm9yZWFjaCAoJGxlZ2FsRXh0cyBhcyAkdGhpc0V4dCkKCSAgewoJICAgIGlmIChwcmVnX21hdGNoKCcvXC4nLnRyaW0oJHRoaXNFeHQpLickL2knLCRfRklMRVNbJGZ1bGxBbGlhc11bJ25hbWUnXSkpCgkgICAgICB7CgkJJG1hdGNoID0gdHJ1ZTsKCSAgICAgIH0KCSAgICBlbHNlIGlmIChwcmVnX21hdGNoKCcvJy50cmltKCR0aGlzRXh0KS4nL2knLCRfRklMRVNbJGZ1bGxBbGlhc11bJ3R5cGUnXSkpCgkgICAgICB7CgkJJG1hdGNoID0gdHJ1ZTsKCSAgICAgIH0KCSAgfQoJaWYgKCEgJG1hdGNoKQoJICB7CgkgICAgJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQgPSAkbW9kLT5MYW5nKCdpbGxlZ2FsX2ZpbGVfdHlwZScpOwoJICAgICR0aGlzLT52YWxpZGF0ZWQgPSBmYWxzZTsKCSAgfQogICAgICB9CiAgICByZXR1cm4gYXJyYXkoJHRoaXMtPnZhbGlkYXRlZCwgJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQpOwogIH0KICAKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/Form.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNyBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDcgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkZvcm0gewoKICB2YXIgJG1vZHVsZV9wdHIgPSAtMTsKICB2YXIgJElkID0gLTE7CiAgdmFyICROYW1lID0gJyc7CiAgdmFyICRBbGlhcyA9ICcnOwogIHZhciAkbG9hZGVkID0gJ25vdCc7CiAgdmFyICRmb3JtVG90YWxQYWdlcyA9IDA7CiAgdmFyICRQYWdlOwogIHZhciAkQXR0cnM7CiAgdmFyICRGaWVsZHM7CiAgdmFyICRmb3JtU3RhdGU7CiAgdmFyICRzYW1wbGVUZW1wbGF0ZUNvZGU7CiAgdmFyICR0ZW1wbGF0ZVZhcmlhYmxlczsKCiAgZnVuY3Rpb24gZmJGb3JtKCYkbW9kdWxlX3B0ciwgJiRwYXJhbXMsICRsb2FkRGVlcD1mYWxzZSkKICB7CiAgICAkdGhpcy0+bW9kdWxlX3B0ciA9JiAkbW9kdWxlX3B0cjsKICAgICR0aGlzLT5GaWVsZHMgPSBhcnJheSgpOwogICAgJHRoaXMtPkF0dHJzID0gYXJyYXkoKTsKICAgICR0aGlzLT5mb3JtU3RhdGUgPSAnbmV3JzsKICAgIGlmIChpc3NldCgkcGFyYW1zWydmb3JtX2lkJ10pKQogICAgICB7CgkkdGhpcy0+SWQgPSAkcGFyYW1zWydmb3JtX2lkJ107CiAgICAgIH0KICAgIGlmIChpc3NldCgkcGFyYW1zWydmYnJwX2Zvcm1fYWxpYXMnXSkpCiAgICAgIHsKCSR0aGlzLT5BbGlhcyA9ICRwYXJhbXNbJ2ZicnBfZm9ybV9hbGlhcyddOwogICAgICB9CiAgICBpZiAoaXNzZXQoJHBhcmFtc1snZmJycF9mb3JtX25hbWUnXSkpCiAgICAgIHsKCSR0aGlzLT5OYW1lID0gJHBhcmFtc1snZmJycF9mb3JtX25hbWUnXTsKICAgICAgfQoKICAgJGZpZWxkRXhwYW5kT3AgPSBmYWxzZTsKCiAgIGZvcmVhY2goJHBhcmFtcyBhcyAkcEtleT0+JHBWYWwpCiAgICAgIHsKICAgICAgaWYgKHN1YnN0cigkcEtleSwwLDkpID09ICdmYnJwX0ZlWF8nIHx8IHN1YnN0cigkcEtleSwwLDkpID09ICdmYnJwX0ZlRF8nKQogICAgICAgICB7CiAgICAgICAgIC8vIGV4cGFuZGluZyBvciBzaHJpbmtpbmcgYSBmaWVsZAogICAgICAgICAkZmllbGRFeHBhbmRPcCA9IHRydWU7CiAgICAgICAgIH0KICAgICAgfQoKICAgIGlmICgkZmllbGRFeHBhbmRPcCkKICAgICAgewogICAgICAkcGFyYW1zWydmYnJwX2RvbmUnXSA9IDA7CiAgICAgIGlmIChpc3NldCgkcGFyYW1zWydmYnJwX2NvbnRpbnVlJ10pKQogICAgICAgICB7CgkgICAgICAkdGhpcy0+UGFnZSA9ICRwYXJhbXNbJ2ZicnBfY29udGludWUnXSAtIDE7CiAgICAgICAgIH0KICAgICAgZWxzZQogICAgICAgICB7CgkgICAgICAkdGhpcy0+UGFnZSA9IDE7CiAgICAgICAgIH0KICAgICAgfQogICAgZWxzZQogICAgICB7CiAgICAgIGlmIChpc3NldCgkcGFyYW1zWydmYnJwX2NvbnRpbnVlJ10pKQogICAgICAgICB7CgkgICAgICAkdGhpcy0+UGFnZSA9ICRwYXJhbXNbJ2ZicnBfY29udGludWUnXTsKICAgICAgICAgfQogICAgICBlbHNlCiAgICAgICAgIHsKCSAgICAgICR0aGlzLT5QYWdlID0gMTsKICAgICAgICAgfQogICAgICBpZiAoaXNzZXQoJHBhcmFtc1snZmJycF9wcmV2J10pICYmIGlzc2V0KCRwYXJhbXNbJ2ZicnBfcHJldmlvdXMnXSkpCiAgICAgICAgIHsKCSAgICAgICR0aGlzLT5QYWdlID0gJHBhcmFtc1snZmJycF9wcmV2aW91cyddOwoJICAgICAgJHBhcmFtc1snZmJycF9kb25lJ10gPSAwOwogICAgICAgICB9CiAgICAgIH0KICAgICR0aGlzLT5mb3JtVG90YWxQYWdlcyA9IDE7CiAgICBpZiAoaXNzZXQoJHBhcmFtc1snZmJycF9kb25lJ10pJiYgJHBhcmFtc1snZmJycF9kb25lJ109PTEpCiAgICAgIHsKCSR0aGlzLT5mb3JtU3RhdGUgPSAnc3VibWl0JzsKICAgICAgfQogICAgaWYgKGlzc2V0KCRwYXJhbXNbJ2ZicnBfdXNlcl9mb3JtX3ZhbGlkYXRlJ10pICYmICRwYXJhbXNbJ2ZicnBfdXNlcl9mb3JtX3ZhbGlkYXRlJ109PXRydWUpCiAgICAgIHsKCSR0aGlzLT5mb3JtU3RhdGUgPSAnY29uZmlybSc7CiAgICAgIH0KICAgIGlmICgkdGhpcy0+SWQgIT0gLTEpCiAgICAgIHsKCWlmIChpc3NldCgkcGFyYW1zWydyZXNwb25zZV9pZCddKSAmJiAkdGhpcy0+Zm9ybVN0YXRlID09ICdzdWJtaXQnKQoJICB7CgkgICAgJHRoaXMtPmZvcm1TdGF0ZSA9ICd1cGRhdGUnOwoJICB9CgkkdGhpcy0+TG9hZCgkdGhpcy0+SWQsICRwYXJhbXMsICRsb2FkRGVlcCk7CiAgICAgIH0KICAgIGZvcmVhY2ggKCRwYXJhbXMgYXMgJHRoaXNQYXJhbUtleT0+JHRoaXNQYXJhbVZhbCkKICAgICAgewoJaWYgKHN1YnN0cigkdGhpc1BhcmFtS2V5LDAsMTEpID09ICdmYnJwX2Zvcm1hXycpCgkgIHsKCSAgICAkdGhpc1BhcmFtS2V5ID0gc3Vic3RyKCR0aGlzUGFyYW1LZXksMTEpOwoJICAgICR0aGlzLT5BdHRyc1skdGhpc1BhcmFtS2V5XSA9ICR0aGlzUGFyYW1WYWw7CgkgIH0KCWVsc2UgaWYgKCR0aGlzUGFyYW1LZXkgPT0gJ2ZicnBfZm9ybV90ZW1wbGF0ZScgJiYgJHRoaXMtPklkICE9IC0xKQoJICB7CgkgICAgJHRoaXMtPm1vZHVsZV9wdHItPlNldFRlbXBsYXRlKCdmYl8nLiR0aGlzLT5JZCwkdGhpc1BhcmFtVmFsKTsKCSAgfQogICAgICB9CgogICAgJHRoaXMtPnRlbXBsYXRlVmFyaWFibGVzID0gQXJyYXkoCgkJJ3skc3ViX2Zvcm1fbmFtZX0nPT4kdGhpcy0+bW9kdWxlX3B0ci0+TGFuZygndGl0bGVfZm9ybV9uYW1lJyksCgkJJ3skc3ViX2RhdGV9Jz0+JHRoaXMtPm1vZHVsZV9wdHItPkxhbmcoJ2hlbHBfc3VibWlzc2lvbl9kYXRlJyksCgkJJ3skc3ViX2hvc3R9Jz0+JHRoaXMtPm1vZHVsZV9wdHItPkxhbmcoJ2hlbHBfc2VydmVyX25hbWUnKSwKCQkneyRzdWJfc291cmNlX2lwfSc9PiR0aGlzLT5tb2R1bGVfcHRyLT5MYW5nKCdoZWxwX3N1Yl9zb3VyY2VfaXAnKSwKCQkneyRzdWJfdXJsfSc9PiR0aGlzLT5tb2R1bGVfcHRyLT5MYW5nKCdoZWxwX3N1Yl91cmwnKQoJKTsKICB9CgogIGZ1bmN0aW9uIFNldEF0dHJpYnV0ZXMoJGF0dHJBcnJheSkKICB7CiAgICAkdGhpcy0+QXR0cnMgPSBhcnJheV9tZXJnZSgkdGhpcy0+QXR0cnMsJGF0dHJBcnJheSk7CiAgfQoKICBmdW5jdGlvbiBTZXRUZW1wbGF0ZSgkdGVtcGxhdGUpCiAgewogICAgJHRoaXMtPkF0dHJzWydmb3JtX3RlbXBsYXRlJ10gPSAkdGVtcGxhdGU7CiAgICAkdGhpcy0+bW9kdWxlX3B0ci0+U2V0VGVtcGxhdGUoJ2ZiXycuJHRoaXMtPklkLCR0ZW1wbGF0ZSk7CiAgfQoKICBmdW5jdGlvbiBHZXRJZCgpCiAgewogICAgcmV0dXJuICR0aGlzLT5JZDsKICB9CgogIGZ1bmN0aW9uIFNldElkKCRpZCkKICB7CiAgICAkdGhpcy0+SWQgPSAkaWQ7CiAgfQoKICBmdW5jdGlvbiBHZXROYW1lKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPk5hbWU7CiAgfQoJCiAgZnVuY3Rpb24gR2V0Rm9ybVN0YXRlKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPmZvcm1TdGF0ZTsKICB9CgkKICBmdW5jdGlvbiBHZXRQYWdlQ291bnQoKQogIHsKICAgIHJldHVybiAkdGhpcy0+Zm9ybVRvdGFsUGFnZXM7CiAgfQoJCiAgZnVuY3Rpb24gR2V0UGFnZU51bWJlcigpCiAgewogICAgcmV0dXJuICR0aGlzLT5QYWdlOwogIH0KCiAgZnVuY3Rpb24gUGFnZUJhY2soKQogIHsKICAgICR0aGlzLT5QYWdlLS07CiAgfQoKCiAgZnVuY3Rpb24gU2V0TmFtZSgkbmFtZSkKICB7CiAgICAkdGhpcy0+TmFtZSA9ICRuYW1lOwogIH0KCQogIGZ1bmN0aW9uIEdldEFsaWFzKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPkFsaWFzOwogIH0KCiAgZnVuY3Rpb24gU2V0QWxpYXMoJGFsaWFzKQogIHsKICAgICR0aGlzLT5BbGlhcyA9ICRhbGlhczsKICB9CgogIGZ1bmN0aW9uIERlYnVnRGlzcGxheSgpCiAgewogICAgJHRtcCA9ICR0aGlzLT5tb2R1bGVfcHRyOwogICAgJHRoaXMtPm1vZHVsZV9wdHIgPSAnW21kcHRyXSc7CiAgICAkdGVtcGxhdGVfdG1wID0gJHRoaXMtPkdldEF0dHIoJ2Zvcm1fdGVtcGxhdGUnLCcnKTsKICAgICR0aGlzLT5TZXRBdHRyKCdmb3JtX3RlbXBsYXRlJyxzdHJsZW4oJHRlbXBsYXRlX3RtcCkuJyBjaGFyYWN0ZXJzJyk7CiAgICAkZmllbGRfdG1wID0gJHRoaXMtPkZpZWxkczsKICAgICR0aGlzLT5GaWVsZHMgPSAnRmllbGQgQXJyYXk6ICcuY291bnQoJGZpZWxkX3RtcCk7CiAgICBkZWJ1Z19kaXNwbGF5KCR0aGlzKTsKICAgICR0aGlzLT5TZXRBdHRyKCdmb3JtX3RlbXBsYXRlJywkdGVtcGxhdGVfdG1wKTsKICAgICR0aGlzLT5GaWVsZHMgPSAkZmllbGRfdG1wOwogICAgZm9yZWFjaCgkdGhpcy0+RmllbGRzIGFzICRmbGQpCiAgICAgIHsKCQkkZmxkLT5EZWJ1Z0Rpc3BsYXkoKTsKICAgICAgfQogICAgJHRoaXMtPm1vZHVsZV9wdHIgPSAkdG1wOwogIH0KCgkKICBmdW5jdGlvbiBTZXRBdHRyKCRhdHRybmFtZSwgJHZhbCkKICB7CiAgICAkdGhpcy0+QXR0cnNbJGF0dHJuYW1lXSA9ICR2YWw7CiAgfQoJCiAgZnVuY3Rpb24gR2V0QXR0cigkYXR0cm5hbWUsICRkZWZhdWx0PSIiKQogIHsKICAgIGlmIChpc3NldCgkdGhpcy0+QXR0cnNbJGF0dHJuYW1lXSkpCiAgICAgIHsKCXJldHVybiAkdGhpcy0+QXR0cnNbJGF0dHJuYW1lXTsKICAgICAgfQogICAgZWxzZQogICAgICB7CglyZXR1cm4gJGRlZmF1bHQ7CiAgICAgIH0KICB9CgkKICBmdW5jdGlvbiBHZXRGaWVsZENvdW50KCkKICB7CiAgICByZXR1cm4gY291bnQoJHRoaXMtPkZpZWxkcyk7CiAgfQoKICBmdW5jdGlvbiBIYXNGaWVsZE5hbWVkKCRuYW1lKQogIHsKICAgICRyZXQgPSAtMTsKICAgIGZvcmVhY2goJHRoaXMtPkZpZWxkcyBhcyAkZmxkKQoJCXsKCQlpZiAoJGZsZC0+R2V0TmFtZSgpID09ICRuYW1lKQoJCQl7CgkJCSRyZXQgPSAkZmxkLT5HZXRJZCgpOwoJCQl9CgkJfQogICAgcmV0dXJuICRyZXQ7CiAgfQoKICBmdW5jdGlvbiBBZGRUZW1wbGF0ZVZhcmlhYmxlKCRuYW1lLCRkZWYpCiAgewogICAgJHRoZUtleSA9ICd7JCcuJG5hbWUuJ30nOwogICAgJHRoaXMtPnRlbXBsYXRlVmFyaWFibGVzWyR0aGVLZXldID0gJGRlZjsKICB9CgogIGZ1bmN0aW9uIE1ha2VWYXIoJHN0cmluZykKICB7CiAgICAkbWF4dmFybGVuID0gMjQ7CiAgICAkc3RyaW5nID0gc3RydG9sb3dlcihwcmVnX3JlcGxhY2UoJy9ccysvJywnXycsJHN0cmluZykpOwogICAgJHN0cmluZyA9IHN0cnRvbG93ZXIocHJlZ19yZXBsYWNlKCcvXFcvJywnXycsJHN0cmluZykpOwogICAgaWYgKHN0cmxlbigkc3RyaW5nKSA+ICRtYXh2YXJsZW4pCiAgICAgIHsKCSRzdHJpbmcgPSBzdWJzdHIoJHN0cmluZywwLCRtYXh2YXJsZW4pOwoJJHBvcyA9IHN0cnJwb3MoJHN0cmluZywnXycpOwoJaWYgKCRwb3MgIT09IGZhbHNlKQoJICB7CgkgICAgJHN0cmluZyA9IHN1YnN0cigkc3RyaW5nLDAsJHBvcyk7CgkgIH0KICAgICAgfQogICAgcmV0dXJuICRzdHJpbmc7CiAgfQoKICBmdW5jdGlvbiBjcmVhdGVTYW1wbGVUZW1wbGF0ZUphdmFzY3JpcHQoJGZpZWxkTmFtZT0nb3B0X2VtYWlsX3RlbXBsYXRlJywgJGluY2x1ZGVIVE1MPXRydWUsICRpbmNsdWRlVGV4dD10cnVlKQogIHsKICAgICRqc0NvZGUgPSAiPHNjcmlwdCB0eXBlPVwidGV4dC9qYXZhc2NyaXB0XCI+XG4KZnVuY3Rpb24gcG9wdWxhdGUoZm9ybW5hbWUpCiAgICB7CiAgICB2YXIgZm5hbWUgPSAnSURmYnJwXyIuJGZpZWxkTmFtZS4iJzsKICAgIGZvcm1uYW1lW2ZuYW1lXS52YWx1ZT18VEVNUExBVEV8OwogICAgfQpmdW5jdGlvbiBwb3B1bGF0ZV9odG1sKGZvcm1uYW1lKQogICAgewogICAgdmFyIGZuYW1lID0gJ0lEZmJycF8iLiRmaWVsZE5hbWUuIic7CiAgICBmb3JtbmFtZVtmbmFtZV0udmFsdWU9fEhUTUxURU1QTEFURXw7CgkgfQo8L3NjcmlwdD4iOwoJaWYgKCRpbmNsdWRlVGV4dCkKCQl7CgkJJGpzQ29kZSAuPSAiPGlucHV0IHR5cGU9XCJidXR0b25cIiB2YWx1ZT1cIiIuCiR0aGlzLT5tb2R1bGVfcHRyLT5MYW5nKCd0aXRsZV9jcmVhdGVfc2FtcGxlX3RlbXBsYXRlJykuIlwiIG9uQ2xpY2s9XCJqYXZhc2NyaXB0OnBvcHVsYXRlKHRoaXMuZm9ybSlcIiAvPiI7CgkJfQoJaWYgKCRpbmNsdWRlSFRNTCkKCQl7CgkJJGpzQ29kZSAuPSAiPGlucHV0IHR5cGU9XCJidXR0b25cIiB2YWx1ZT1cIiIuCiR0aGlzLT5tb2R1bGVfcHRyLT5MYW5nKCd0aXRsZV9jcmVhdGVfc2FtcGxlX2h0bWxfdGVtcGxhdGUnKS4iXCIgb25DbGljaz1cImphdmFzY3JpcHQ6cG9wdWxhdGVfaHRtbCh0aGlzLmZvcm0pXCIgLz4iOwoJCX0KICByZXR1cm4gJGpzQ29kZTsKICB9CgoKICBmdW5jdGlvbiBjcmVhdGVTYW1wbGVUZW1wbGF0ZSgkaHRtbGlzaD1mYWxzZSwkZW1haWw9dHJ1ZSkKICB7CiAgICAkbW9kID0gJiR0aGlzLT5tb2R1bGVfcHRyOwogICAgJHJldCA9ICIiOwoJaWYgKCRlbWFpbCkKCQl7CiAgICAJaWYgKCRodG1saXNoKQogICAgCQl7CgkJCSRyZXQgLj0gIjxoMT4iLiRtb2QtPkxhbmcoJ2VtYWlsX2RlZmF1bHRfdGVtcGxhdGUnKS4iPC9oMT5cbiI7CgkJCX0KCSAJZWxzZQoJIAkJewoJCQkkcmV0IC49ICRtb2QtPkxhbmcoJ2VtYWlsX2RlZmF1bHRfdGVtcGxhdGUnKS4iXG4iOwoJCQl9CiAgICAJZm9yZWFjaCgkdGhpcy0+dGVtcGxhdGVWYXJpYWJsZXMgYXMgJHRoaXNLZXk9PiR0aGlzVmFsKQogICAgICAJCXsKCQkJaWYgKCRodG1saXNoKQoJCQkJewoJCQkJJHJldCAuPSAnPHN0cm9uZz4nLiR0aGlzVmFsLic8L3N0cm9uZz46ICcuJHRoaXNLZXkuIjxiciAvPlxuIjsKCQkJCX0KCQkJZWxzZQoJCQkJewoJCQkJJHJldCAuPSAkdGhpc1ZhbC4nOiAnLiR0aGlzS2V5LiJcbiI7CgkJCQl9CiAgICAgIAkJfQogICAgIAlpZiAoJGh0bWxpc2gpCiAgICAgCSAgCXsKCQkgIAkkcmV0IC49ICJcbjxociAvPlxuIjsKCSAgCSAgCX0KCSAgCWVsc2UKCSAgCSAgCXsKICAgIAkgIAkkcmV0IC49ICJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiI7CiAgICAJICAJfQogICAgCSAgfQoJZWxzZQoJCXsKCQlpZiAoJGh0bWxpc2gpCgkJCXsKCQkJJHJldCAuPSAnPGgyPic7CgkJCX0KCQkkcmV0IC49ICRtb2QtPkxhbmcoJ3RoYW5rcycpOwoJCWlmICgkaHRtbGlzaCkKCQkJewoJCQkkcmV0IC49ICc8L2gyPic7CgkJCX0KCQl9CiAgICAkb3RoZXJzID0gJiR0aGlzLT5HZXRGaWVsZHMoKTsKICAgIGZvcigkaT0wOyRpPGNvdW50KCRvdGhlcnMpOyRpKyspCiAgICAgIHsKCWlmICgkb3RoZXJzWyRpXS0+RGlzcGxheUluU3VibWlzc2lvbigpKQoJICB7CgkgIGlmICgkaHRtbGlzaCkKICAgICAJICB7CiAgCQkJJHJldCAuPSAnPHN0cm9uZz4nLiRvdGhlcnNbJGldLT5HZXROYW1lKCkgLiAnPC9zdHJvbmc+OiB7JGZsZF8nIC4gICAJCQkkb3RoZXJzWyRpXS0+R2V0SWQoKS4gIn08YnIgLz5cbiI7CiAgCQkgIH0KICAJICBlbHNlCiAgCSAgCSAgewoJICAgICAkcmV0IC49ICRvdGhlcnNbJGldLT5HZXROYW1lKCkgLiAnOiB7JGZsZF8nIC4kb3RoZXJzWyRpXS0+R2V0SWQoKSAJICAgICAuICJ9XG4iOwoJICAgICB9CgkgIH0KICAgICAgfQogICAgcmV0dXJuICRyZXQ7CiAgfQoKCiAgZnVuY3Rpb24gQWRtaW5UZW1wbGF0ZUhlbHAoJGZvcm1EZXNjcmlwdG9yLCRmaWVsZE5hbWU9J29wdF9lbWFpbF90ZW1wbGF0ZScsCiAgCSRpbmNsdWRlSFRNTD10cnVlLCAkaW5jbHVkZVRleHQ9dHJ1ZSkKICB7CiAgICAkbW9kID0gJiR0aGlzLT5tb2R1bGVfcHRyOwogICAgJHJldCA9ICc8dGFibGUgY2xhc3M9Im1vZHVsZV9mYl9sZWdlbmQiPjx0cj48dGggY29sc3Bhbj0iMiI+Jy4kbW9kLT5MYW5nKCdoZWxwX3ZhcmlhYmxlc19mb3JfdGVtcGxhdGUnKS4nPC90aD48L3RyPic7CiAgICAkcmV0IC49ICc8dHI+PHRoPicuJG1vZC0+TGFuZygnaGVscF92YXJpYWJsZV9uYW1lJykuJzwvdGg+PHRoPicuJG1vZC0+TGFuZygnaGVscF9mb3JtX2ZpZWxkJykuJzwvdGg+PC90cj4nOwogICAgJG9kZCA9IGZhbHNlOwogICAgZm9yZWFjaCgkdGhpcy0+dGVtcGxhdGVWYXJpYWJsZXMgYXMgJHRoaXNLZXk9PiR0aGlzVmFsKQogICAgICB7CgkJJHJldCAuPSAnPHRyPjx0ZCBjbGFzcz0iJy4oJG9kZD8nb2RkJzonZXZlbicpLgoJCSciPicuJHRoaXNLZXkuJzwvdGQ+PHRkIGNsYXNzPSInLigkb2RkPydvZGQnOidldmVuJykuCgkJJyI+Jy4kdGhpc1ZhbC4nPC90ZD48L3RyPic7CiAgICAgICRvZGQgPSAhICRvZGQ7CiAgICAgIH0KCiAgICAkb3RoZXJzID0gJiR0aGlzLT5HZXRGaWVsZHMoKTsKICAgIGZvcigkaT0wOyRpPGNvdW50KCRvdGhlcnMpOyRpKyspCiAgICAgIHsKCWlmICgkb3RoZXJzWyRpXS0+RGlzcGxheUluU3VibWlzc2lvbigpKQoJICB7ICAgICAgICAgICAgICAgIAoJICAgICRyZXQgLj0gJzx0cj48dGQgY2xhc3M9IicuKCRvZGQ/J29kZCc6J2V2ZW4nKS4KCSAgICAnIj57JCcuJHRoaXMtPk1ha2VWYXIoJG90aGVyc1skaV0tPkdldE5hbWUoKSkuCgkgICAgJ30gLyB7JGZsZF8nLgoJICAgICRvdGhlcnNbJGldLT5HZXRJZCgpLgoJICAgICd9PC90ZD48dGQgY2xhc3M9IicuKCRvZGQ/J29kZCc6J2V2ZW4nKS4KCSAgICAnIj4nIC4kb3RoZXJzWyRpXS0+R2V0TmFtZSgpIC4gJzwvdGQ+PC90cj4nOwoJICAJJG9kZCA9ICEgJG9kZDsKCSAgfQogICAgICB9CiAgICAgICAJCiAgICAkcmV0IC49ICc8dHI+PHRkIGNvbHNwYW49IjIiPicuJG1vZC0+TGFuZygnaGVscF9hcnJheV9maWVsZHMnKS4nPC90ZD48L3RyPic7CiAgICAkcmV0IC49ICc8dHI+PHRkIGNvbHNwYW49IjIiPicuJG1vZC0+TGFuZygnaGVscF9vdGhlcl9maWVsZHMnKS4nPC90ZD48L3RyPic7CiAgICAgICAgCiAgICAkZXNjYXBlZFNhbXBsZSA9IHByZWdfcmVwbGFjZSgnL1wnLycsIlxcJyIsJHRoaXMtPmNyZWF0ZVNhbXBsZVRlbXBsYXRlKGZhbHNlKSk7CiAgICAkZXNjYXBlZFNhbXBsZUhUTUwgPSBwcmVnX3JlcGxhY2UoJy9cJy8nLCJcXCciLCR0aGlzLT5jcmVhdGVTYW1wbGVUZW1wbGF0ZSh0cnVlKSk7CiAgICAkZXNjYXBlZFNhbXBsZSA9IHByZWdfcmVwbGFjZSgnL1xuLycsIlxcbicrXG4nIiwgJGVzY2FwZWRTYW1wbGUpOwogICAgJGVzY2FwZWRTYW1wbGVIVE1MID0gcHJlZ19yZXBsYWNlKCcvXG4vJywiXFxuJytcbiciLCAkZXNjYXBlZFNhbXBsZUhUTUwpOwogICAgCiAgICAkc2FtcGxlVGVtcGxhdGVDb2RlID0gcHJlZ19yZXBsYWNlKCcvXHxURU1QTEFURVx8LycsIiciLiRlc2NhcGVkU2FtcGxlLiInIiwKICAgIAkkdGhpcy0+Y3JlYXRlU2FtcGxlVGVtcGxhdGVKYXZhc2NyaXB0KCRmaWVsZE5hbWUsICRpbmNsdWRlSFRNTCwgJGluY2x1ZGVUZXh0KSk7CiAgICAkc2FtcGxlVGVtcGxhdGVDb2RlID0gcHJlZ19yZXBsYWNlKCcvXHxIVE1MVEVNUExBVEVcfC8nLCInIi4kZXNjYXBlZFNhbXBsZUhUTUwuIiciLAogICAgCSRzYW1wbGVUZW1wbGF0ZUNvZGUpOwogICAgJHNhbXBsZVRlbXBsYXRlQ29kZSA9IHByZWdfcmVwbGFjZSgnL0lELycsJGZvcm1EZXNjcmlwdG9yLAogICAgCSRzYW1wbGVUZW1wbGF0ZUNvZGUpOwogICAgJHJldCAuPSAnPHRyPjx0ZCBjb2xzcGFuPSIyIj4nLiRzYW1wbGVUZW1wbGF0ZUNvZGUuJzwvdGQ+PC90cj4nOwogICAgJHJldCAuPSAnPC90YWJsZT4nOwogICAgcmV0dXJuICRyZXQ7CiAgfQoKCiAgZnVuY3Rpb24gVmFsaWRhdGUoKQogIHsKICAgICR2YWxpZGF0ZWQgPSB0cnVlOwogICAgJG1lc3NhZ2UgPSBhcnJheSgpOwogICAgJGZvcm1QYWdlQ291bnQ9MTsKICAgICR2YWxQYWdlID0gJHRoaXMtPlBhZ2UgLSAxOwogICAgZm9yKCRpPTA7JGk8Y291bnQoJHRoaXMtPkZpZWxkcyk7JGkrKykKICAgICAgewoJaWYgKCR0aGlzLT5GaWVsZHNbJGldLT5HZXRGaWVsZFR5cGUoKSA9PSAnUGFnZUJyZWFrRmllbGQnKQoJICB7CgkgICAgJGZvcm1QYWdlQ291bnQrKzsKCSAgfQoJaWYgKCR2YWxQYWdlICE9ICRmb3JtUGFnZUNvdW50KQoJICB7CgkgICAgY29udGludWU7CgkgIH0KCWlmICgvKiEgJHRoaXMtPkZpZWxkc1skaV0tPklzTm9uUmVxdWlyYWJsZUZpZWxkKCkgJiYgKi8KCSAgICAkdGhpcy0+RmllbGRzWyRpXS0+SXNSZXF1aXJlZCgpICYmCgkgICAgJHRoaXMtPkZpZWxkc1skaV0tPkhhc1ZhbHVlKCkgPT0gZmFsc2UpCgkgIHsKCSAgICBhcnJheV9wdXNoKCRtZXNzYWdlLAoJICAgIAkkdGhpcy0+bW9kdWxlX3B0ci0+TGFuZygncGxlYXNlX2VudGVyX2FfdmFsdWUnLCR0aGlzLT5GaWVsZHNbJGldLT5HZXROYW1lKCkpKTsKCSAgICAkdmFsaWRhdGVkID0gZmFsc2U7CgkgICAgJHRoaXMtPkZpZWxkc1skaV0tPlNldE9wdGlvbignaXNfdmFsaWQnLGZhbHNlKTsKCSAgICAkdGhpcy0+RmllbGRzWyRpXS0+dmFsaWRhdGlvbkVycm9yVGV4dCA9IAkkdGhpcy0+bW9kdWxlX3B0ci0+TGFuZygncGxlYXNlX2VudGVyX2FfdmFsdWUnLCR0aGlzLT5GaWVsZHNbJGldLT5HZXROYW1lKCkpOwoJICAgICR0aGlzLT5GaWVsZHNbJGldLT52YWxpZGF0ZWQgPSBmYWxzZTsKCSAgfQoJZWxzZSBpZiAoJHRoaXMtPkZpZWxkc1skaV0tPkdldFZhbHVlKCkgIT0gJHRoaXMtPm1vZHVsZV9wdHItPkxhbmcoJ3Vuc3BlY2lmaWVkJykpCgkgIHsgCgkgICAgJHJlcyA9ICR0aGlzLT5GaWVsZHNbJGldLT5WYWxpZGF0ZSgpOwoJICAgIGlmICgkcmVzWzBdICE9IHRydWUpCgkgICAgICB7CgkJYXJyYXlfcHVzaCgkbWVzc2FnZSwkcmVzWzFdKTsKCQkkdmFsaWRhdGVkID0gZmFsc2U7CgkJJHRoaXMtPkZpZWxkc1skaV0tPlNldE9wdGlvbignaXNfdmFsaWQnLGZhbHNlKTsKCSAgICAgIH0KCSAgICBlbHNlCgkgICAgICB7CgkJJHRoaXMtPkZpZWxkc1skaV0tPlNldE9wdGlvbignaXNfdmFsaWQnLHRydWUpOwoJICAgICAgfQoJICB9CiAgICAgIH0KICAgIHJldHVybiBhcnJheSgkdmFsaWRhdGVkLCAkbWVzc2FnZSk7CiAgfQoKCiAgZnVuY3Rpb24gSGFzRGlzcG9zaXRpb24oKQogIHsKICAgICRoYXNEaXNwID0gZmFsc2U7CiAgICBmb3IoJGk9MDskaTxjb3VudCgkdGhpcy0+RmllbGRzKTskaSsrKQogICAgICB7CglpZiAoJHRoaXMtPkZpZWxkc1skaV0tPklzRGlzcG9zaXRpb24oKSkKCSAgewoJICAgICRoYXNEaXNwID0gdHJ1ZTsKCSAgfQogICAgICB9CiAgICByZXR1cm4gJGhhc0Rpc3A7CiAgfQoKICAvLyByZXR1cm4gYW4gYXJyYXk6IGVsZW1lbnQgMCBpcyB0cnVlIGZvciBzdWNjZXNzLCBmYWxzZSBmb3IgZmFpbHVyZQogIC8vIGVsZW1lbnQgMSBpcyBhbiBhcnJheSBvZiByZWFzb25zLCBpbiB0aGUgZXZlbnQgb2YgZmFpbHVyZS4KICBmdW5jdGlvbiBEaXNwb3NlKCRyZXR1cm5pZCkKICB7CiAgICAvLyBmaXJzdCwgd2UgcnVuIGFsbCBmaWVsZCBtZXRob2RzIHRoYXQgd2lsbCBtb2RpZnkgb3RoZXIgZmllbGRzCiAgICAkY29tcHV0ZXMgPSBhcnJheSgpOwogICAgZm9yKCRpPTA7JGk8Y291bnQoJHRoaXMtPkZpZWxkcyk7JGkrKykKICAgICAgewoJCWlmICgkdGhpcy0+RmllbGRzWyRpXS0+TW9kaWZpZXNPdGhlckZpZWxkcygpKQoJICAJewoJICAgIAkkdGhpcy0+RmllbGRzWyRpXS0+TW9kaWZ5T3RoZXJGaWVsZHMoKTsKCSAgCX0KCSAgaWYgKCR0aGlzLT5GaWVsZHNbJGldLT5Db21wdXRlT25TdWJtaXNzaW9uKCkpCgkgIAl7CgkgIAkJJGNvbXB1dGVzWyRpXSA9ICR0aGlzLT5GaWVsZHNbJGldLT5Db21wdXRlT3JkZXIoKTsKCSAgCX0KICAgICAgfQogICAgICAKICAgIGFzb3J0KCRjb21wdXRlcyk7CiAgICBmb3JlYWNoKCRjb21wdXRlcyBhcyAkY0tleT0+JGNWYWwpCiAgICAJewogICAgCSR0aGlzLT5GaWVsZHNbJGNLZXldLT5Db21wdXRlKCk7CiAgICAJfQoKICAgICRyZXNBcnJheSA9IGFycmF5KCk7CiAgICAkcmV0Q29kZSA9IHRydWU7CiAgICAvLyBmb3IgZWFjaCBmb3JtIGRpc3Bvc2l0aW9uIHBzZXVkby1maWVsZCwgZGlzcG9zZSB0aGUgZm9ybSByZXN1bHRzCiAgICBmb3IoJGk9MDskaTxjb3VudCgkdGhpcy0+RmllbGRzKTskaSsrKQogICAgICB7CglpZiAoJHRoaXMtPkZpZWxkc1skaV0tPklzRGlzcG9zaXRpb24oKSAmJiAkdGhpcy0+RmllbGRzWyRpXS0+RGlzcG9zaXRpb25Jc1Blcm1pdHRlZCgpKQoJICB7CgkgICAgJHJlcyA9ICR0aGlzLT5GaWVsZHNbJGldLT5EaXNwb3NlRm9ybSgkcmV0dXJuaWQpOwoJICAgIGlmICgkcmVzWzBdID09IGZhbHNlKQoJICAgICAgewoJCSRyZXRDb2RlID0gZmFsc2U7CgkJYXJyYXlfcHVzaCgkcmVzQXJyYXksJHJlc1sxXSk7CgkgICAgICB9CgkgIH0KICAgICAgfQogICAgcmV0dXJuIGFycmF5KCRyZXRDb2RlLCRyZXNBcnJheSk7CiAgfQoKICBmdW5jdGlvbiBSZW5kZXJGb3JtSGVhZGVyKCkKICB7CiAgICBpZiAoJHRoaXMtPm1vZHVsZV9wdHItPkdldFByZWZlcmVuY2UoJ3Nob3dfdmVyc2lvbicsMCkgPT0gMSkKICAgICAgewoJcmV0dXJuICJcbjwhLS0gU3RhcnQgRm9ybUJ1aWxkZXIgTW9kdWxlICgiLiR0aGlzLT5tb2R1bGVfcHRyLT5HZXRWZXJzaW9uKCkuIikgLS0+XG4iOwogICAgICB9CiAgfQoKICBmdW5jdGlvbiBSZW5kZXJGb3JtRm9vdGVyKCkKICB7CiAgICBpZiAoJHRoaXMtPm1vZHVsZV9wdHItPkdldFByZWZlcmVuY2UoJ3Nob3dfdmVyc2lvbicsMCkgPT0gMSkKICAgICAgewoJcmV0dXJuICJcbjwhLS0gRW5kIEZvcm1CdWlsZGVyIE1vZHVsZSAtLT5cbiI7CiAgICAgIH0KICB9CgoKICAvLyByZXR1cm5zIGEgc3RyaW5nLgogIGZ1bmN0aW9uIFJlbmRlckZvcm0oJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQogIHsKICAgICRtb2QgPSAkdGhpcy0+bW9kdWxlX3B0cjsKICAgIGlmICgkdGhpcy0+SWQgPT0gLTEpCiAgICAgIHsKCXJldHVybiAiPCEtLSBubyBmb3JtIC0tPlxuIjsKICAgICAgfQogICAgaWYgKCR0aGlzLT5sb2FkZWQgIT0gJ2Z1bGwnKQogICAgICB7CgkkdGhpcy0+TG9hZCgkdGhpcy0+SWQsJHBhcmFtcyx0cnVlKTsKICAgICAgfQoKICAgICRyZXFTeW1ib2wgPSAkdGhpcy0+R2V0QXR0cigncmVxdWlyZWRfZmllbGRfc3ltYm9sJywnKicpOwoKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9wYWdlX3hfb2ZfeScsJG1vZC0+TGFuZygndGl0bGVfcGFnZV94X29mX3knLGFycmF5KCR0aGlzLT5QYWdlLCR0aGlzLT5mb3JtVG90YWxQYWdlcykpKTsKCQkKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdjc3NfY2xhc3MnLCR0aGlzLT5HZXRBdHRyKCdjc3NfY2xhc3MnLCcnKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndG90YWxfcGFnZXMnLCR0aGlzLT5mb3JtVG90YWxQYWdlcyk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGhpc19wYWdlJywkdGhpcy0+UGFnZSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignZm9ybV9uYW1lJywkdGhpcy0+TmFtZSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignZm9ybV9pZCcsJHRoaXMtPklkKTsKCiAgICAkaGlkZGVuID0gJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnZm9ybV9pZCcsICR0aGlzLT5JZCk7CiAgICAkaGlkZGVuIC49ICRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ2ZicnBfY29udGludWUnLCAoJHRoaXMtPlBhZ2UgKyAxKSk7CiAgICBpZiAoaXNzZXQoJHBhcmFtc1snZmJycF9icm93c2VyX2lkJ10pKQogICAgICB7CgkkaGlkZGVuIC49ICRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwnZmJycF9icm93c2VyX2lkJywkcGFyYW1zWydmYnJwX2Jyb3dzZXJfaWQnXSk7CiAgICAgIH0KICAgIGlmICgkdGhpcy0+UGFnZSA+IDEpCiAgICAgIHsKCSRoaWRkZW4gLj0gJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnZmJycF9wcmV2aW91cycsICgkdGhpcy0+UGFnZSAtIDEpKTsKICAgICAgfQogICAgaWYgKCR0aGlzLT5QYWdlID09ICR0aGlzLT5mb3JtVG90YWxQYWdlcykKICAgICAgewoJJGhpZGRlbiAuPSAkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdmYnJwX2RvbmUnLCAxKTsKICAgICAgfQogICAgJGZpZWxkcyA9IGFycmF5KCk7CiAgICAkZm9ybVBhZ2VDb3VudCA9IDE7CiAgICBmb3IgKCRpPTA7ICRpIDwgY291bnQoJHRoaXMtPkZpZWxkcyk7ICRpKyspCiAgICAgIHsKCSR0aGlzRmllbGQgPSAmJHRoaXMtPkZpZWxkc1skaV07CglpZiAoJHRoaXNGaWVsZC0+R2V0RmllbGRUeXBlKCkgPT0gJ1BhZ2VCcmVha0ZpZWxkJykKCSAgewoJICAgICRmb3JtUGFnZUNvdW50Kys7CgkgIH0KCWlmICgkZm9ybVBhZ2VDb3VudCAhPSAkdGhpcy0+UGFnZSkKCSAgewoJICAgICR0ZXN0SW5kZXggPSAnZmJycF9fJy4kdGhpcy0+RmllbGRzWyRpXS0+R2V0SWQoKTsKCSAgICBpZiAoIWlzc2V0KCRwYXJhbXNbJHRlc3RJbmRleF0pKQoJICAgICAgewoJCS8vIGRvIHdlIG5lZWQgdG8gd3JpdGUgc29tZXRoaW5nPwoJICAgICAgfQoJICAgIGVsc2VpZiAoaXNfYXJyYXkoJHBhcmFtc1skdGVzdEluZGV4XSkpCgkgICAgICB7CgkJZm9yZWFjaCAoJHBhcmFtc1skdGVzdEluZGV4XSBhcyAkdmFsKQoJCSAgewoJCSAgICAkaGlkZGVuIC49ICRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwKCQkJCQkJICAgICAgICR0ZXN0SW5kZXguJ1tdJywKCQkJCQkJICAgICAgIC8qaHRtbHNwZWNpYWxjaGFycygkdmFsLEVOVF9RVU9URVMpKi8gJHRoaXMtPnVubXlfaHRtbGVudGl0aWVzKCR2YWwpKTsKCQkgIH0KCSAgICAgIH0KCSAgICBlbHNlCgkgICAgICB7CgkJJGhpZGRlbiAuPSAkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsCgkJCQkJCSAgICR0ZXN0SW5kZXgsCgkJCQkJCSAgIC8qaHRtbHNwZWNpYWxjaGFycygkcGFyYW1zWyR0ZXN0SW5kZXhdLEVOVF9RVU9URVMpKi8gJHRoaXMtPnVubXlfaHRtbGVudGl0aWVzKCRwYXJhbXNbJHRlc3RJbmRleF0pKTsKCSAgICAgIH0KCSAgICBjb250aW51ZTsKCSAgfQoJJG9uZXNldCA9IG5ldyBzdGRDbGFzcygpOwoJJG9uZXNldC0+ZGlzcGxheSA9ICR0aGlzRmllbGQtPkRpc3BsYXlJbkZvcm0oKT8xOjA7Cgkkb25lc2V0LT5yZXF1aXJlZCA9ICR0aGlzRmllbGQtPklzUmVxdWlyZWQoKT8xOjA7Cgkkb25lc2V0LT5yZXF1aXJlZF9zeW1ib2wgPSAkdGhpc0ZpZWxkLT5Jc1JlcXVpcmVkKCk/JHJlcVN5bWJvbDonJzsKCSRvbmVzZXQtPmNzc19jbGFzcyA9ICR0aGlzRmllbGQtPkdldE9wdGlvbignY3NzX2NsYXNzJyk7Ci8vCSRvbmVzZXQtPnZhbGlkID0gJHRoaXNGaWVsZC0+R2V0T3B0aW9uKCdpc192YWxpZCcsdHJ1ZSk/MTowOwoJJG9uZXNldC0+dmFsaWQgPSAkdGhpc0ZpZWxkLT52YWxpZGF0ZWQ/MTowOwoJJG9uZXNldC0+ZXJyb3IgPSAkdGhpc0ZpZWxkLT5HZXRPcHRpb24oJ2lzX3ZhbGlkJyx0cnVlKT8nJzokdGhpc0ZpZWxkLT52YWxpZGF0aW9uRXJyb3JUZXh0OwoJJG9uZXNldC0+aGlkZV9uYW1lID0gMDsKCWlmKCAoISR0aGlzRmllbGQtPkhhc0xhYmVsKCkpIHx8ICR0aGlzRmllbGQtPkhpZGVMYWJlbCgpICkKCSAgewoJICAgICRvbmVzZXQtPmhpZGVfbmFtZSA9IDE7CgkgIH0KCSRvbmVzZXQtPmhhc19sYWJlbCA9ICR0aGlzRmllbGQtPkhhc0xhYmVsKCk7Cgkkb25lc2V0LT5uZWVkc19kaXYgPSAkdGhpc0ZpZWxkLT5OZWVkc0RpdigpOwoJJG9uZXNldC0+bmFtZSA9ICR0aGlzRmllbGQtPkdldE5hbWUoKTsKCSRvbmVzZXQtPmlucHV0ID0gJHRoaXNGaWVsZC0+R2V0RmllbGRJbnB1dCgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCk7Cgkkb25lc2V0LT5zbWFydHlfZXZhbCA9ICR0aGlzRmllbGQtPkdldFNtYXJ0eUV2YWwoKT8xOjA7CgoJJG9uZXNldC0+aW5wdXRfaWQgPSAkaWQuJ2ZicnBfXycuJHRoaXNGaWVsZC0+R2V0SUQoKTsKCSRvbmVzZXQtPm11bHRpcGxlX3BhcnRzID0gJHRoaXNGaWVsZC0+SGFzTXVsdGlwbGVGb3JtQ29tcG9uZW50cygpPzE6MDsKCSRvbmVzZXQtPmxhYmVsX3BhcnRzID0gJHRoaXNGaWVsZC0+TGFiZWxTdWJDb21wb25lbnRzKCk/MTowOwoJJG9uZXNldC0+dHlwZSA9ICR0aGlzRmllbGQtPkdldERpc3BsYXlUeXBlKCk7CgkkbW9kLT5zbWFydHktPmFzc2lnbigkdGhpc0ZpZWxkLT5HZXROYW1lKCksJG9uZXNldCk7CglhcnJheV9wdXNoKCRmaWVsZHMsJG9uZXNldCk7CiAgICAgIH0KCiAgICAkbW9kLT5zbWFydHktPmFzc2lnbl9ieV9yZWYoJ2ZiX2hpZGRlbicsJGhpZGRlbik7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbl9ieV9yZWYoJ2ZpZWxkcycsJGZpZWxkcyk7CgogICAgJGpzU3RyID0gJyc7CiAgICAkanNUcmlnZ2VyID0gJyc7CiAgICBpZiAoJHRoaXMtPkdldEF0dHIoJ2lucHV0X2J1dHRvbl9zYWZldHknLCcwJykgPT0gJzEnKQogICAgICB7CgkkanNTdHIgPSAnPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgogICAgdmFyIHN1Ym1pdHRlZCA9IDA7CiAgICBmdW5jdGlvbiBMb2NrQnV0dG9uICgpCiAgICAgICB7CiAgICAgICB2YXIgcmV0ID0gZmFsc2U7CiAgICAgICBpZiAoICEgc3VibWl0dGVkICkKICAgICAgICAgIHsKICAgICAgICAgICB2YXIgaXRlbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmYnN1Ym1pdCIpOwogICAgICAgICAgIGlmIChpdGVtICE9IG51bGwpCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge2l0ZW0uZGlzYWJsZWQgPSB0cnVlfSwgMCk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgc3VibWl0dGVkID0gMTsKICAgICAgICAgICByZXQgPSB0cnVlOwogICAgICAgICAgfQogICAgICAgIHJldHVybiByZXQ7CiAgICAgICAgfQo8L3NjcmlwdD4nOwogICAgICAkanNUcmlnZ2VyID0gIiBvbmNsaWNrPSdyZXR1cm4gTG9ja0J1dHRvbigpJyI7CiAgICAgIH0KCiAgICBpZiAoJHRoaXMtPlBhZ2UgPiAxKQogICAgICB7CgkkbW9kLT5zbWFydHktPmFzc2lnbigncHJldicsJG1vZC0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnZmJycF9wcmV2JywKCQkJCQkJCSAgICAkdGhpcy0+R2V0QXR0cigncHJldl9idXR0b25fdGV4dCcpLAoJCQkJCQkJICAgICdjbGFzcz0iZmJzdWJtaXRfcHJldiInKSk7CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3ByZXYnLCcnKTsKICAgICAgfQoKICAgIGlmICgkdGhpcy0+UGFnZSA8ICRmb3JtUGFnZUNvdW50KQogICAgICB7CgkkbW9kLT5zbWFydHktPmFzc2lnbignc3VibWl0JywkbW9kLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdmYnJwX3N1Ym1pdCcsCgkJCQkJCQkgICAgICAkdGhpcy0+R2V0QXR0cignbmV4dF9idXR0b25fdGV4dCcpLAoJCQkJCQkJICAgICAgJ2NsYXNzPSJmYnN1Ym1pdF9uZXh0IicpKTsKICAgICAgfQogICAgZWxzZQogICAgICB7CiAgICAgICRjYXB0Y2hhID0gJiRtb2QtPmdldE1vZHVsZUluc3RhbmNlKCdDYXB0Y2hhJyk7CiAgICAgIGlmICgkdGhpcy0+R2V0QXR0cigndXNlX2NhcHRjaGEnLCcwJyk9PSAnMScgJiYgJGNhcHRjaGEgIT0gbnVsbCkKICAgICAgICAgewogICAgICAgICAkbW9kLT5zbWFydHktPmFzc2lnbignZ3JhcGhpY19jYXB0Y2hhJywkY2FwdGNoYS0+Z2V0Q2FwdGNoYSgpKTsKICAgICAgICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2NhcHRjaGEnLCR0aGlzLT5HZXRBdHRyKCd0aXRsZV91c2VyX2NhcHRjaGEnLCRtb2QtPkxhbmcoJ3RpdGxlX3VzZXJfY2FwdGNoYScpKSk7CiAgICAgICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF9jYXB0Y2hhJywkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnZmJycF9jYXB0Y2hhX3BocmFzZScsJycpKTsKICAgICAgICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2hhc19jYXB0Y2hhJywnMScpOwogICAgICAgICB9CiAgICAgIGVsc2UKICAgICAgICAgewogICAgICAgICAkbW9kLT5zbWFydHktPmFzc2lnbignaGFzX2NhcHRjaGEnLCcwJyk7CiAgICAgICAgIH0KCSAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCRqc1N0ciAuICRtb2QtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ2ZicnBfc3VibWl0JywKCQkJCSR0aGlzLT5HZXRBdHRyKCdzdWJtaXRfYnV0dG9uX3RleHQnKSwKCQkJCSdjbGFzcz0iZmJzdWJtaXQiIGlkPSJmYnN1Ym1pdCInLiRqc1RyaWdnZXIpKTsKICAgICAgfQoJICByZXR1cm4gJG1vZC0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGFiYXNlKCdmYl8nLiR0aGlzLT5JZCk7CiAgfQoKICBmdW5jdGlvbiBMb2FkRm9ybSgkbG9hZERlZXA9ZmFsc2UpCiAgewogICAgcmV0dXJuICR0aGlzLT5Mb2FkKCR0aGlzLT5JZCwgYXJyYXkoKSwgJGxvYWREZWVwKTsKICB9CgpmdW5jdGlvbiB1bm15X2h0bWxlbnRpdGllcygkdmFsKQp7CglpZiAoJHZhbCA9PSAiIikKCXsKCQlyZXR1cm4gIiI7Cgl9CgkkdmFsID0gaHRtbF9lbnRpdHlfZGVjb2RlKCR2YWwpOwoJJHZhbCA9IHN0cl9yZXBsYWNlKCImYW1wOyIsIiYiLCR2YWwpOwoJJHZhbCA9IHN0cl9yZXBsYWNlKCImIzYwOyYjMzM7LS0iLCI8IS0tIiwkdmFsKTsKCSR2YWwgPSBzdHJfcmVwbGFjZSgiLS0mIzYyOyIsIi0tPiIsJHZhbCk7CgkkdmFsID0gc3RyX3JlcGxhY2UoIiZndDsiLCI+IiwgJHZhbCk7CgkkdmFsID0gc3RyX3JlcGxhY2UoIiZsdDsiLCI8IiwkdmFsKTsKCSR2YWwgPSBzdHJfcmVwbGFjZSgiJnF1b3Q7IiwiXCIiLCR2YWwpOwoJJHZhbCA9IHN0cl9yZXBsYWNlKCImIzAzNjsiLCJcJCIsJHZhbCk7CgkkdmFsID0gc3RyX3JlcGxhY2UoIiYjMzM7IiwiISIsJHZhbCk7CgkkdmFsID0gc3RyX3JlcGxhY2UoIiYjMzk7IiwiJyIsJHZhbCk7CgoJLy8gVW5jb21tZW50IGlmIHlvdSBuZWVkIHRvIGNvbnZlcnQgdW5pY29kZSBjaGFycwoJcmV0dXJuICR2YWw7Cn0KCgoKCgogIGZ1bmN0aW9uIExvYWQoJGZvcm1JZCwgJiRwYXJhbXMsICRsb2FkRGVlcD1mYWxzZSkKICB7CiAgICAkc3FsID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9mb3JtIFdIRVJFIGZvcm1faWQ9Pyc7CiAgICAkcnMgPSAkdGhpcy0+bW9kdWxlX3B0ci0+ZGJIYW5kbGUtPkV4ZWN1dGUoJHNxbCwgYXJyYXkoJGZvcm1JZCkpOwogICAgaWYoJHJzICYmICRycy0+UmVjb3JkQ291bnQoKSA+IDApCiAgICAgIHsKCSRyZXN1bHQgPSAkcnMtPkZldGNoUm93KCk7CgkkdGhpcy0+SWQgPSAkcmVzdWx0Wydmb3JtX2lkJ107CglpZiAoIWlzc2V0KCRwYXJhbXNbJ2ZicnBfZm9ybV9uYW1lJ10pIHx8IGVtcHR5KCRwYXJhbXNbJ2ZicnBfZm9ybV9uYW1lJ10pKQoJICB7CgkgICAgJHRoaXMtPk5hbWUgPSAkcmVzdWx0WyduYW1lJ107CgkgIH0KCWlmICghaXNzZXQoJHBhcmFtc1snZmJycF9mb3JtX2FsaWFzJ10pIHx8IGVtcHR5KCRwYXJhbXNbJ2ZicnBfZm9ybV9hbGlhcyddKSkKCSAgewoJICAgICR0aGlzLT5BbGlhcyA9ICRyZXN1bHRbJ2FsaWFzJ107CgkgIH0KICAgICAgfQogICAgZWxzZQogICAgICB7CglyZXR1cm4gZmFsc2U7CiAgICAgIH0KICAgICRzcWwgPSAnU0VMRUNUIG5hbWUsdmFsdWUgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4KICAgICAgJ21vZHVsZV9mYl9mb3JtX2F0dHIgV0hFUkUgZm9ybV9pZD0/JzsKICAgICRycyA9ICR0aGlzLT5tb2R1bGVfcHRyLT5kYkhhbmRsZS0+RXhlY3V0ZSgkc3FsLCBhcnJheSgkZm9ybUlkKSk7CiAgICB3aGlsZSAoJHJzICYmICRyZXN1bHQ9JHJzLT5GZXRjaFJvdygpKQogICAgICB7CgkkdGhpcy0+QXR0cnNbJHJlc3VsdFsnbmFtZSddXSA9ICRyZXN1bHRbJ3ZhbHVlJ107CiAgICAgIH0KICAgICAgICAgIAogICAgJHRoaXMtPmxvYWRlZCA9ICdzdW1tYXJ5JzsKCiAgICBpZiAoaXNzZXQoJHBhcmFtc1sncmVzcG9uc2VfaWQnXSkpCiAgICAgIHsKCSRsb2FkRGVlcCA9IHRydWU7CiAgICAgIH0KCQkJCiAgICBpZiAoJGxvYWREZWVwKQogICAgICB7CgkvLyBpZiBpdCdzIGEgc3RvcmVkIGZvcm0sIGxvYWQgdGhlIHJlc3VsdHMgLS0gYnV0IHdlIG5lZWQgdG8gbWFudWFsbHkgbWVyZ2UgdGhlbSwKCS8vIHNpbmNlICRwYXJhbXNbXSBzaG91bGQgb3ZlcnJpZGUgdGhlIGRhdGFiYXNlIHZhbHVlIChzYXkgd2UncmUgcmVzdWJtaXR0aW5nIGEgZm9ybSkKCWlmIChpc3NldCgkcGFyYW1zWydyZXNwb25zZV9pZCddKSkKCSAgewoJICAgICRsb2FkUGFyYW1zID0gYXJyYXkoJ3Jlc3BvbnNlX2lkJz0+JHBhcmFtc1sncmVzcG9uc2VfaWQnXSk7CgkgICAgJHRoaXMtPkxvYWRSZXNwb25zZVZhbHVlcygkbG9hZFBhcmFtcyk7CgkgICAgZm9yZWFjaCAoJGxvYWRQYXJhbXMgYXMgJHRoaXNQYXJhbUtleT0+JHRoaXNQYXJhbVZhbHVlKQoJICAgICAgewoJCWlmICghIGlzc2V0KCRwYXJhbXNbJHRoaXNQYXJhbUtleV0pKQoJCSAgewoJCSAgICAkcGFyYW1zWyR0aGlzUGFyYW1LZXldID0gJHRoaXNQYXJhbVZhbHVlOwoJCSAgfQoJICAgICAgfQoJICB9CgoJJHNxbCA9ICdTRUxFQ1QgKiBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkuCgkgICdtb2R1bGVfZmJfZmllbGQgV0hFUkUgZm9ybV9pZD0/IE9SREVSIEJZIG9yZGVyX2J5JzsKCSRycyA9ICR0aGlzLT5tb2R1bGVfcHRyLT5kYkhhbmRsZS0+RXhlY3V0ZSgkc3FsLCBhcnJheSgkZm9ybUlkKSk7CgkkcmVzdWx0ID0gYXJyYXkoKTsKCWlmICgkcnMgJiYgJHJzLT5SZWNvcmRDb3VudCgpID4gMCkKCSAgewoJICAgICRyZXN1bHQgPSAkcnMtPkdldEFycmF5KCk7CgkgIH0KCSRmaWVsZENvdW50ID0gMDsKCWlmIChjb3VudCgkcmVzdWx0KSA+IDApCgkgIHsKCSAgICBmb3JlYWNoKCRyZXN1bHQgYXMgJHRoaXNSZXMpCgkgICAgICB7CgkJJGNsYXNzTmFtZSA9ICR0aGlzLT5NYWtlQ2xhc3NOYW1lKCR0aGlzUmVzWyd0eXBlJ10sICcnKTsKCQkvLyBjcmVhdGUgdGhlIGZpZWxkIG9iamVjdAoJCWlmICgKCQkgICAgKCAKCQkgICAgIGlzc2V0KCR0aGlzUmVzWydmaWVsZF9pZCddKSAmJgoJCSAgICAgICgKCQkgICAgICAgaXNzZXQoJHBhcmFtc1snZmJycF9fJy4kdGhpc1Jlc1snZmllbGRfaWQnXV0pIHx8CgkJICAgICAgIGlzc2V0KCRwYXJhbXNbJ2ZicnBfX18nLiR0aGlzUmVzWydmaWVsZF9pZCddXSkKCQkgICAgICAgKQoJCSAgICAgICkgfHwKCQkgICAgKGlzc2V0KCR0aGlzUmVzWydmaWVsZF9pZCddKSAmJgoJCSAgICAgaXNzZXQoJHBhcmFtc1sndmFsdWVfJy4kdGhpc1Jlc1snbmFtZSddXSkpIHx8CgkJICAgIChpc3NldCgkdGhpc1Jlc1snZmllbGRfaWQnXSkgJiYKCQkgICAgIGlzc2V0KCRwYXJhbXNbJ3ZhbHVlX2ZsZCcuJHRoaXNSZXNbJ2ZpZWxkX2lkJ11dKSkgfHwKCQkgICAgKAoJCSAgICAgaXNzZXQoJHBhcmFtc1snZmllbGRfaWQnXSkgJiYgaXNzZXQoJHRoaXNSZXNbJ2ZpZWxkX2lkJ10pICYmCgkJICAgICAkcGFyYW1zWydmaWVsZF9pZCddID09ICR0aGlzUmVzWydmaWVsZF9pZCddCgkJICAgICApCgkJICAgICkKCQkgIHsKCQkgICAgJHRoaXNSZXMgPSBhcnJheV9tZXJnZSgkdGhpc1JlcywkcGFyYW1zKTsKCQkgIH0KCQkkdGhpcy0+RmllbGRzWyRmaWVsZENvdW50XSA9ICYkdGhpcy0+TmV3RmllbGQoJHRoaXNSZXMpOwoJCSRmaWVsZENvdW50Kys7CgkgICAgICB9CgkgIH0KCSR0aGlzLT5sb2FkZWQgPSAnZnVsbCc7CiAgICAgIH0KCgkJCiAgICBmb3IgKCRpPTA7ICRpIDwgY291bnQoJHRoaXMtPkZpZWxkcyk7ICRpKyspCiAgICAgIHsKCWlmICgkdGhpcy0+RmllbGRzWyRpXS0+VHlwZSA9PSAnUGFnZUJyZWFrRmllbGQnKQoJICB7CgkgICAgJHRoaXMtPmZvcm1Ub3RhbFBhZ2VzKys7CgkgIH0KICAgICAgfQoKICAgIHJldHVybiB0cnVlOwogIH0KCiAgZnVuY3Rpb24gSW1wb3J0WE1MKCYkcGFyYW1zKQogIHsKICAJLy8geG1sX3BhcnNlcl9jcmVhdGUsIHhtbF9wYXJzZV9pbnRvX3N0cnVjdAogIAkkcGFyc2VyID0geG1sX3BhcnNlcl9jcmVhdGUoJycpOwogICB4bWxfcGFyc2VyX3NldF9vcHRpb24oICRwYXJzZXIsIFhNTF9PUFRJT05fQ0FTRV9GT0xESU5HLCAwICk7CiAgIHhtbF9wYXJzZXJfc2V0X29wdGlvbiggJHBhcnNlciwgWE1MX09QVElPTl9TS0lQX1dISVRFLCAwICk7IC8vIHdhcyAxCgl4bWxfcGFyc2VfaW50b19zdHJ1Y3QoJHBhcnNlciwgZmlsZV9nZXRfY29udGVudHMoJHBhcmFtc1snZmJycF94bWxfZmlsZSddKSwgJHZhbHMpOwoJeG1sX3BhcnNlcl9mcmVlKCRwYXJzZXIpOwoJJGVsZW1lbnRzID0gYXJyYXkoKTsKCSRzdGFjayA9IGFycmF5KCk7Cglmb3JlYWNoICggJHZhbHMgYXMgJHRhZyApCgkJewoJCSRpbmRleCA9IGNvdW50KCAkZWxlbWVudHMgKTsKCQlpZiAoICR0YWdbJ3R5cGUnXSA9PSAiY29tcGxldGUiIHx8ICR0YWdbJ3R5cGUnXSA9PSAib3BlbiIgKQoJCQl7CgkJCSRlbGVtZW50c1skaW5kZXhdID0gYXJyYXkoKTsKCQkJJGVsZW1lbnRzWyRpbmRleF1bJ25hbWUnXSA9ICR0YWdbJ3RhZyddOwoJCQkkZWxlbWVudHNbJGluZGV4XVsnYXR0cmlidXRlcyddID0gZW1wdHkoJHRhZ1snYXR0cmlidXRlcyddKSA/ICIiIDogJHRhZ1snYXR0cmlidXRlcyddOwoJCQkkZWxlbWVudHNbJGluZGV4XVsnY29udGVudCddICAgID0gZW1wdHkoJHRhZ1sndmFsdWUnXSkgPyAiIiA6ICR0YWdbJ3ZhbHVlJ107CgkJCWlmICggJHRhZ1sndHlwZSddID09ICJvcGVuIiApCgkJCQl7ICAgICMgcHVzaAoJCQkJJGVsZW1lbnRzWyRpbmRleF1bJ2NoaWxkcmVuJ10gPSBhcnJheSgpOwoJCQkJJHN0YWNrW2NvdW50KCRzdGFjayldID0gJiRlbGVtZW50czsKCQkJCSRlbGVtZW50cyA9ICYkZWxlbWVudHNbJGluZGV4XVsnY2hpbGRyZW4nXTsKCQkJCX0KICAgICAgICB9CgkJaWYgKCAkdGFnWyd0eXBlJ10gPT0gImNsb3NlIiApCgkJCXsgICAgIyBwb3AKCQkJJGVsZW1lbnRzID0gJiRzdGFja1tjb3VudCgkc3RhY2spIC0gMV07CgkJCXVuc2V0KCRzdGFja1tjb3VudCgkc3RhY2spIC0gMV0pOwoJCQl9CgkJfQoKCWlmICghaXNzZXQoJGVsZW1lbnRzWzBdKSB8fCAhaXNzZXQoJGVsZW1lbnRzWzBdKSB8fCAhaXNzZXQoJGVsZW1lbnRzWzBdWydhdHRyaWJ1dGVzJ10pKQoJCXsKCQkvL3BhcnNpbmcgZmFpbGVkLCBvciBpbnZhbGlkIGZpbGUuCgkJcmV0dXJuIGZhbHNlOwoJCX0KCSRwYXJhbXNbJ2Zvcm1faWQnXSA9IC0xOyAvLyBvdmVycmlkZSBhbnkgZm9ybV9pZCB2YWx1ZXMgdGhhdCBtYXkgYmUgYXJvdW5kCgkkZm9ybUF0dHJzID0gJiRlbGVtZW50c1swXVsnYXR0cmlidXRlcyddOwoJaWYgKCR0aGlzLT5pblhNTCgkZm9ybUF0dHJzWyduYW1lJ10pKQoJCXsKCQkkdGhpcy0+U2V0TmFtZSgkZm9ybUF0dHJzWyduYW1lJ10pOwoJCX0KCWlmICgkdGhpcy0+aW5YTUwoJGZvcm1BdHRyc1snYWxpYXMnXSkpCgkJewoJCSR0aGlzLT5TZXRBbGlhcygkZm9ybUF0dHJzWydhbGlhcyddKTsKCQl9CgkvLyBwb3B1bGF0ZSB0aGUgYXR0cmlidXRlcyBmaXJzdCwgc28gd2UgY2FuIHNhdmUgdGhlIGZvcm0gYW5kIHRoZW4gc3RhcnQgYWRkaW5nIGZpZWxkcyB0byBpdC4KCWZvcmVhY2ggKCRlbGVtZW50c1swXVsnY2hpbGRyZW4nXSBhcyAkdGhpc0NoaWxkKQoJCXsKCQlpZiAoJHRoaXNDaGlsZFsnbmFtZSddID09ICdhdHRyaWJ1dGUnKQoJCQl7CgkJCSR0aGlzLT5TZXRBdHRyKCR0aGlzQ2hpbGRbJ2F0dHJpYnV0ZXMnXVsna2V5J10sICR0aGlzQ2hpbGRbJ2NvbnRlbnQnXSk7CgkJCX0KCQl9CglpZiggaXNzZXQoJHBhcmFtc1snZmJycF9pbXBvcnRfZm9ybW5hbWUnXSkgJiYgCgkgICAgdHJpbSgkcGFyYW1zWydmYnJwX2ltcG9ydF9mb3JtbmFtZSddKSAhPSAnJykKCSAgewoJICAgICR0aGlzLT5TZXROYW1lKHRyaW0oJHBhcmFtc1snZmJycF9pbXBvcnRfZm9ybW5hbWUnXSkpOwoJICB9CglpZiggaXNzZXQoJHBhcmFtc1snZmJycF9pbXBvcnRfZm9ybWFsaWFzJ10pICYmCgkgICAgdHJpbSgkcGFyYW1zWydmYnJwX2ltcG9ydF9mb3JtbmFtZSddKSAhPSAnJykKCSAgewoJICAgICR0aGlzLT5TZXRBbGlhcyh0cmltKCRwYXJhbXNbJ2ZicnBfaW1wb3J0X2Zvcm1hbGlhcyddKSk7CgkgIH0KCSR0aGlzLT5TdG9yZSgpOwoJJHBhcmFtc1snZm9ybV9pZCddID0gJHRoaXMtPkdldElkKCk7Cglmb3JlYWNoICgkZWxlbWVudHNbMF1bJ2NoaWxkcmVuJ10gYXMgJHRoaXNDaGlsZCkKCQl7CgkJaWYgKCR0aGlzQ2hpbGRbJ25hbWUnXSA9PSAnZmllbGQnKQoJCQl7CgkJCSRuZXdGaWVsZCA9IG5ldyBmYkZpZWxkQmFzZSgkdGhpcywgJHBhcmFtcyk7CgkJCSRmaWVsZEF0dHJzID0gJiR0aGlzQ2hpbGRbJ2F0dHJpYnV0ZXMnXTsKCQkJaWYgKCR0aGlzLT5pblhNTCgkZmllbGRBdHRyc1snbmFtZSddKSkKCQkJCXsKCQkJCSRuZXdGaWVsZC0+U2V0TmFtZSgkZmllbGRBdHRyc1snbmFtZSddKTsKCQkJCX0KCQkJaWYgKCR0aGlzLT5pblhNTCgkZmllbGRBdHRyc1sndHlwZSddKSkKCQkJCXsKCQkJCSRuZXdGaWVsZC0+U2V0RmllbGRUeXBlKCRmaWVsZEF0dHJzWyd0eXBlJ10pOwoJCQkJfQoJCQkkbmV3RmllbGQtPlNldFZhbGlkYXRpb25UeXBlKCRmaWVsZEF0dHJzWyd2YWxpZGF0aW9uX3R5cGUnXSk7CgkJCWlmICgkdGhpcy0+aW5YTUwoJGZpZWxkQXR0cnNbJ29yZGVyX2J5J10pKQoJCQkJewoJCQkJJG5ld0ZpZWxkLT5TZXRPcmRlcigkZmllbGRBdHRyc1snb3JkZXJfYnknXSk7CgkJCQl9CgkJCWlmICgkdGhpcy0+aW5YTUwoJGZpZWxkQXR0cnNbJ3JlcXVpcmVkJ10pKQoJCQkJewoJCQkJJG5ld0ZpZWxkLT5TZXRSZXF1aXJlZCgkZmllbGRBdHRyc1sncmVxdWlyZWQnXSk7CgkJCQl9CgkJCWlmICgkdGhpcy0+aW5YTUwoJGZpZWxkQXR0cnNbJ2hpZGVfbGFiZWwnXSkpCgkJCQl7CgkJCQkkbmV3RmllbGQtPlNldEhpZGVMYWJlbCgkZmllbGRBdHRyc1snaGlkZV9sYWJlbCddKTsKCQkJCX0KCQkJZm9yZWFjaCAoJHRoaXNDaGlsZFsnY2hpbGRyZW4nXSBhcyAkdGhpc09wdCkKCQkJCXsKCQkJCSRuZXdGaWVsZC0+UHVzaE9wdGlvbkVsZW1lbnQoJHRoaXNPcHRbJ2F0dHJpYnV0ZXMnXVsnbmFtZSddLAoJCQkJCSR0aGlzT3B0Wydjb250ZW50J10pOwoJCQkJfQoJCQkkbmV3RmllbGQtPlN0b3JlKHRydWUpOwoJCQl9CgkJfQoJcmV0dXJuIHRydWU7CQogIH0KCiAgZnVuY3Rpb24gaW5YTUwoJiR2YXIpCiAgewogIAkJaWYgKGlzc2V0KCR2YXIpICYmIHN0cmxlbigkdmFyKSA+IDApCiAgCQkJewoJCQlyZXR1cm4gdHJ1ZTsKCQkJfQoJCWVsc2UKCQkJewoJCQlyZXR1cm4gZmFsc2U7CgkJCX0KICB9CgogIC8vIHN0b3JlRGVlcCBhbHNvIHN0b3JlcyBhbGwgZmllbGRzIGFuZCBvcHRpb25zIGZvciBhIGZvcm0KICBmdW5jdGlvbiBTdG9yZSgkc3RvcmVEZWVwPWZhbHNlKQogIHsKICAgIGlmICgkdGhpcy0+SWQgPT0gLTEpCiAgICAgIHsKCSR0aGlzLT5JZCA9ICR0aGlzLT5tb2R1bGVfcHRyLT5kYkhhbmRsZS0+R2VuSUQoY21zX2RiX3ByZWZpeCgpLgoJCQkJCQkgICAgICAgJ21vZHVsZV9mYl9mb3JtX3NlcScpOwoJJHNxbCA9ICdJTlNFUlQgSU5UTyAnIC4gY21zX2RiX3ByZWZpeCgpLgoJICAnbW9kdWxlX2ZiX2Zvcm0gKGZvcm1faWQsIG5hbWUsIGFsaWFzKSAnLgoJICAnVkFMVUVTICg/LCA/LCA/KSc7CgkkcmVzID0gJHRoaXMtPm1vZHVsZV9wdHItPmRiSGFuZGxlLT5FeGVjdXRlKCRzcWwsCgkJCQkJCSAgICBhcnJheSgkdGhpcy0+SWQsICR0aGlzLT5OYW1lLCAkdGhpcy0+QWxpYXMpKTsKICAgICAgfQogICAgZWxzZQogICAgICB7Cgkkc3FsID0gJ1VQREFURSAnIC4gY21zX2RiX3ByZWZpeCgpLgoJICAnbW9kdWxlX2ZiX2Zvcm0gc2V0IG5hbWU9PywgYWxpYXM9PyB3aGVyZSBmb3JtX2lkPT8nOwoJJHJlcyA9ICR0aGlzLT5tb2R1bGVfcHRyLT5kYkhhbmRsZS0+RXhlY3V0ZSgkc3FsLAoJCQkJCQkgICAgYXJyYXkoJHRoaXMtPk5hbWUsICR0aGlzLT5BbGlhcywgJHRoaXMtPklkKSk7CiAgICAgIH0KICAgIC8vIHNhdmUgb3V0IHRoZSBhdHRycwogICAgJHNxbCA9ICdERUxFVEUgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4KICAgICAgJ21vZHVsZV9mYl9mb3JtX2F0dHIgV0hFUkUgZm9ybV9pZD0/JzsKICAgICRyZXMgPSAkdGhpcy0+bW9kdWxlX3B0ci0+ZGJIYW5kbGUtPkV4ZWN1dGUoJHNxbCwgYXJyYXkoJHRoaXMtPklkKSk7CiAgICBmb3JlYWNoICgkdGhpcy0+QXR0cnMgYXMgJHRoaXNBdHRyS2V5PT4kdGhpc0F0dHJWYWx1ZSkKICAgICAgewoJJGZvcm1BdHRySWQgPSAkdGhpcy0+bW9kdWxlX3B0ci0+ZGJIYW5kbGUtPkdlbklEKGNtc19kYl9wcmVmaXgoKS4KCQkJCQkJCSAnbW9kdWxlX2ZiX2Zvcm1fYXR0cl9zZXEnKTsKCSRzcWwgPSAnSU5TRVJUIElOVE8gJyAuIGNtc19kYl9wcmVmaXgoKS4KCSAgJ21vZHVsZV9mYl9mb3JtX2F0dHIgKGZvcm1fYXR0cl9pZCwgZm9ybV9pZCwgbmFtZSwgdmFsdWUpICcuCgkgICdWQUxVRVMgKD8sID8sID8sID8pJzsKCSRyZXMgPSAkdGhpcy0+bW9kdWxlX3B0ci0+ZGJIYW5kbGUtPkV4ZWN1dGUoJHNxbCwKCQkJCQkJICAgIGFycmF5KCRmb3JtQXR0cklkLCAkdGhpcy0+SWQsICR0aGlzQXR0cktleSwKCQkJCQkJCSAgJHRoaXNBdHRyVmFsdWUpKTsKCWlmICgkdGhpc0F0dHJLZXkgPT0gJ2Zvcm1fdGVtcGxhdGUnKQoJICB7CgkgICAgJHRoaXMtPm1vZHVsZV9wdHItPlNldFRlbXBsYXRlKCdmYl8nLiR0aGlzLT5JZCwkdGhpc0F0dHJWYWx1ZSk7CgkgIH0KICAgICAgfQoJCQogICAgcmV0dXJuICRyZXM7CiAgfQoKICBmdW5jdGlvbiBEZWxldGUoKQogIHsKICAgIGlmICgkdGhpcy0+SWQgPT0gLTEpCiAgICAgIHsKCXJldHVybiBmYWxzZTsKICAgICAgfQogICAgaWYgKCR0aGlzLT5sb2FkZWQgIT0gJ2Z1bGwnKQogICAgICB7CgkkdGhpcy0+TG9hZCgkdGhpcy0+SWQsYXJyYXkoKSx0cnVlKTsKICAgICAgfQogICAgZm9yZWFjaCAoJHRoaXMtPkZpZWxkcyBhcyAkZmllbGQpCiAgICAgIHsKCSRmaWVsZC0+RGVsZXRlKCk7CiAgICAgIH0KICAgICR0aGlzLT5tb2R1bGVfcHRyLT5EZWxldGVUZW1wbGF0ZSgnZmJfJy4kdGhpcy0+SWQpOwogICAgJHNxbCA9ICdERUxFVEUgRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9mYl9mb3JtIHdoZXJlIGZvcm1faWQ9Pyc7CiAgICAkcmVzID0gJHRoaXMtPm1vZHVsZV9wdHItPmRiSGFuZGxlLT5FeGVjdXRlKCRzcWwsIGFycmF5KCR0aGlzLT5JZCkpOwogICAgJHNxbCA9ICdERUxFVEUgRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9mYl9mb3JtX2F0dHIgd2hlcmUgZm9ybV9pZD0/JzsKICAgICRyZXMgPSAkdGhpcy0+bW9kdWxlX3B0ci0+ZGJIYW5kbGUtPkV4ZWN1dGUoJHNxbCwgYXJyYXkoJHRoaXMtPklkKSk7CiAgICByZXR1cm4gdHJ1ZTsKICB9CgogIC8vIHJldHVybnMgYSBjbGFzcyBuYW1lLCBhbmQgbWFrZXMgc3VyZSB0aGUgZmlsZSB3aGVyZSB0aGUgY2xhc3MgaXMKICAvLyBkZWZpbmVkIGhhcyBiZWVuIGxvYWRlZC4KICBmdW5jdGlvbiBNYWtlQ2xhc3NOYW1lKCR0eXBlLCAkY2xhc3NEaXJQcmVmaXgpCiAgewogICAgLy8gcGVyZm9ybSBydWRpbWVudGFyeSBzZWN1cml0eSwgc2luY2UgVHlwZSBjb3VsZCBjb21lIGluIGZyb20gYSBmb3JtCiAgICAkdHlwZSA9IHByZWdfcmVwbGFjZSgiL1tcV118XC5cLi8iLCAiXyIsICR0eXBlKTsKICAgIGlmICgkdHlwZSA9PSAnJyB8fCBzdHJsZW4oJHR5cGUpIDwgMSkKICAgICAgewoJJHR5cGUgPSAnRmllbGQnOwogICAgICB9CiAgICAkY2xhc3NGaWxlPScnOwogICAgaWYgKHN0cmxlbigkY2xhc3NEaXJQcmVmaXgpID4gMCkKICAgICAgewoJJGNsYXNzRmlsZSA9ICRjbGFzc0RpclByZWZpeCAuJy8nLiR0eXBlLicuY2xhc3MucGhwJzsKICAgICAgfQogICAgZWxzZQogICAgICB7CgkkY2xhc3NGaWxlID0gJHR5cGUuJy5jbGFzcy5waHAnOwogICAgICB9CiAgICByZXF1aXJlX29uY2UgZGlybmFtZShfX0ZJTEVfXykuJy8nLiRjbGFzc0ZpbGU7CiAgICAvLyBjbGFzcyBuYW1lcyBhcmUgcHJlcGVuZGVkIHdpdGggImZiIiB0byBwcmV2ZW50IG5hbWVzcGFjZSBjbGFzaC4KICAgIHJldHVybiAoICdmYicuJHR5cGUgKTsKICB9CgogIGZ1bmN0aW9uIEFkZEVkaXRGb3JtKCRpZCwgJHJldHVybmlkLCAkbWVzc2FnZT0nJykKICB7CiAgICBnbG9iYWwgJGdDbXM7CiAgICAkbW9kID0gJiR0aGlzLT5tb2R1bGVfcHRyOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ21lc3NhZ2UnLCRtZXNzYWdlKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdmb3Jtc3RhcnQnLAoJCQkgJG1vZC0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwgJ2FkbWluX3N0b3JlX2Zvcm0nLCAkcmV0dXJuaWQpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdmb3JtaWQnLAoJCQkgJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnZm9ybV9pZCcsICR0aGlzLT5JZCkpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RhYl9zdGFydCcsJG1vZC0+U3RhcnRUYWJIZWFkZXJzKCkuCiAgICAgICAgICRtb2QtPlNldFRhYkhlYWRlcignbWFpbnRhYicsJG1vZC0+TGFuZygndGFiX21haW4nKSkuCiAgICAgICAgICRtb2QtPlNldFRhYkhlYWRlcignc3VibWl0dGFiJywkbW9kLT5MYW5nKCd0YWJfc3VibWl0JykpLgogICAgICAgICAkbW9kLT5TZXRUYWJIZWFkZXIoJ3N5bWJvbHRhYicsJG1vZC0+TGFuZygndGFiX3N5bWJvbCcpKS4KICAgICAgICAgJG1vZC0+U2V0VGFiSGVhZGVyKCdjYXB0Y2hhdGFiJywkbW9kLT5MYW5nKCd0YWJfY2FwdGNoYScpKS4KICAgICAgICAgJG1vZC0+U2V0VGFiSGVhZGVyKCd0ZW1wbGF0ZWxheW91dCcsJG1vZC0+TGFuZygndGFiX3RlbXBsYXRlbGF5b3V0JykpLgogICAgICAgICAkbW9kLT5TZXRUYWJIZWFkZXIoJ3N1Ym1pdHRlbXBsYXRlJywkbW9kLT5MYW5nKCd0YWJfc3VibWlzc2lvbnRlbXBsYXRlJykpLgoJCQkkbW9kLT5FbmRUYWJIZWFkZXJzKCkgLiAkbW9kLT5TdGFydFRhYkNvbnRlbnQoKSk7CgkgIAogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RhYnNfZW5kJywkbW9kLT5FbmRUYWJDb250ZW50KCkpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ21haW50YWJfc3RhcnQnLCRtb2QtPlN0YXJ0VGFiKCJtYWludGFiIikpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3N1Ym1pdHRhYl9zdGFydCcsJG1vZC0+U3RhcnRUYWIoInN1Ym1pdHRhYiIpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdzeW1ib2x0YWJfc3RhcnQnLCRtb2QtPlN0YXJ0VGFiKCJzeW1ib2x0YWIiKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGVtcGxhdGV0YWJfc3RhcnQnLCRtb2QtPlN0YXJ0VGFiKCJ0ZW1wbGF0ZWxheW91dCIpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdzdWJtaXR0ZW1wbGF0ZXRhYl9zdGFydCcsJG1vZC0+U3RhcnRUYWIoInN1Ym1pdHRlbXBsYXRlIikpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2NhcHRjaGF0YWJfc3RhcnQnLCRtb2QtPlN0YXJ0VGFiKCJjYXB0Y2hhdGFiIikpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RhYl9lbmQnLCRtb2QtPkVuZFRhYigpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdmb3JtX2VuZCcsJG1vZC0+Q3JlYXRlRm9ybUVuZCgpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9mb3JtX25hbWUnLCRtb2QtPkxhbmcoJ3RpdGxlX2Zvcm1fbmFtZScpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF9mb3JtX25hbWUnLAoJCQkgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2ZicnBfZm9ybV9uYW1lJywKCQkJCQkgICAgICAgJHRoaXMtPk5hbWUsIDUwKSk7CgkKCQoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RlbXBsYXRlX2FyZV95b3Vfc3VyZScsJG1vZC0+TGFuZygndGVtcGxhdGVfYXJlX3lvdV9zdXJlJykpOwoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2xvYWRfdGVtcGxhdGUnLCRtb2QtPkxhbmcoJ3RpdGxlX2xvYWRfdGVtcGxhdGUnKSk7CgkkbW9kTGluayA9ICRtb2QtPkNyZWF0ZUxpbmsoJGlkLCAnYWRtaW5fZ2V0X3RlbXBsYXRlJywgJHJldHVybmlkLCAnJywgYXJyYXkoKSwgJycsIHRydWUpOwoJbGlzdCgkbW9kX3BhdGgsICRtb2RfcGFyYW0pID0gZXhwbG9kZSgnPycsJG1vZExpbmspOwoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ21vZF9wYXRoJywkbW9kX3BhdGgpOwoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ21vZF9wYXJhbScsJG1vZF9wYXJhbSk7CgkKCSR0ZW1wbGF0ZUxpc3QgPSBhcnJheSgnJz0+JycsJG1vZC0+TGFuZygnZGVmYXVsdF90ZW1wbGF0ZScpPT4nUmVuZGVyRm9ybURlZmF1bHQudHBsJywKCQkkbW9kLT5MYW5nKCd0YWJsZV9sZWZ0X3RlbXBsYXRlJyk9PidSZW5kZXJGb3JtVGFibGVUaXRsZUxlZnQudHBsJywKCQkkbW9kLT5MYW5nKCd0YWJsZV90b3BfdGVtcGxhdGUnKT0+J1JlbmRlckZvcm1UYWJsZVRpdGxlVG9wLnRwbCcpOwoJCQoJJGFsbEZvcm1zID0gJG1vZC0+R2V0Rm9ybXMoKTsKCWZvcmVhY2ggKCRhbGxGb3JtcyBhcyAkdGhpc0Zvcm0pCgkJewoJCWlmICgkdGhpc0Zvcm1bJ2Zvcm1faWQnXSAhPSAkdGhpcy0+SWQpCgkJCXsKCQkJJHRlbXBsYXRlTGlzdFskbW9kLT5MYW5nKCdmb3JtX3RlbXBsYXRlX25hbWUnLCR0aGlzRm9ybVsnbmFtZSddKV0gPQoJCQkJJHRoaXNGb3JtWydmb3JtX2lkJ107CgkJCX0KCQl9CgkKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF9sb2FkX3RlbXBsYXRlJywkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwKCQknZmJycF9mYl90ZW1wbGF0ZV9sb2FkJywgJHRlbXBsYXRlTGlzdCwgLTEsICcnLCAnaWQ9ImZiX3RlbXBsYXRlX2xvYWQiIG9uY2hhbmdlPSJnZXRUZW1wbGF0ZSgpIicpKTsKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdoZWxwX3RlbXBsYXRlX3ZhcmlhYmxlcycsJG1vZC0+TGFuZygndGVtcGxhdGVfdmFyaWFibGVfaGVscCcpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9mb3JtX3Vuc3BlY2lmaWVkJywkbW9kLT5MYW5nKCd0aXRsZV9mb3JtX3Vuc3BlY2lmaWVkJykpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X2Zvcm1fdW5zcGVjaWZpZWQnLAoJCQkgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2ZicnBfZm9ybWFfdW5zcGVjaWZpZWQnLAoJCQkJCSAgICAgICAkdGhpcy0+R2V0QXR0cigndW5zcGVjaWZpZWQnLCRtb2QtPkxhbmcoJ3Vuc3BlY2lmaWVkJykpLCA1MCkpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2Zvcm1fc3RhdHVzJywKCQkJICRtb2QtPkxhbmcoJ3RpdGxlX2Zvcm1fc3RhdHVzJykpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RleHRfcmVhZHknLAoJCQkgJG1vZC0+TGFuZygndGl0bGVfcmVhZHlfZm9yX2RlcGxveW1lbnQnKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfZm9ybV9hbGlhcycsJG1vZC0+TGFuZygndGl0bGVfZm9ybV9hbGlhcycpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF9mb3JtX2FsaWFzJywKCQkJICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdmYnJwX2Zvcm1fYWxpYXMnLAoJCQkJCSAgICAgICAkdGhpcy0+QWxpYXMsIDUwKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfZm9ybV9jc3NfY2xhc3MnLAoJCQkgJG1vZC0+TGFuZygndGl0bGVfZm9ybV9jc3NfY2xhc3MnKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignaW5wdXRfZm9ybV9jc3NfY2xhc3MnLAoJCQkgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2ZicnBfZm9ybWFfY3NzX2NsYXNzJywKCQkJCQkgICAgICAgJHRoaXMtPkdldEF0dHIoJ2Nzc19jbGFzcycsJ2Zvcm1idWlsZGVyZm9ybScpLCA1MCw1MCkpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2Zvcm1fZmllbGRzJywKCQkJICRtb2QtPkxhbmcoJ3RpdGxlX2Zvcm1fZmllbGRzJykpOwoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2Zvcm1fbWFpbicsCgkJCSAkbW9kLT5MYW5nKCd0aXRsZV9mb3JtX21haW4nKSk7CiAgICBpZiggJG1vZC0+R2V0UHJlZmVyZW5jZSgnc2hvd19maWVsZGlkcycsMCkgIT0gMCApCiAgICAgIHsKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9maWVsZF9pZCcsCgkJCSAgICAgJG1vZC0+TGFuZygndGl0bGVfZmllbGRfaWQnKSk7CiAgICAgIH0KICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9maWVsZF9uYW1lJywKCQkJICRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX25hbWUnKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfZmllbGRfdHlwZScsCgkJCSAkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF90eXBlJykpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2ZpZWxkX3R5cGUnLAoJCQkgJG1vZC0+TGFuZygndGl0bGVfZmllbGRfdHlwZScpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9mb3JtX3RlbXBsYXRlJywKCQkJICRtb2QtPkxhbmcoJ3RpdGxlX2Zvcm1fdGVtcGxhdGUnKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfbGlzdF9kZWxpbWl0ZXInLAoJCQkgJG1vZC0+TGFuZygndGl0bGVfbGlzdF9kZWxpbWl0ZXInKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfcmVkaXJlY3RfcGFnZScsCgkJCSAkbW9kLT5MYW5nKCd0aXRsZV9yZWRpcmVjdF9wYWdlJykpOwoJCQkgCiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfc3VibWl0X2FjdGlvbicsCgkJCSAkbW9kLT5MYW5nKCd0aXRsZV9zdWJtaXRfYWN0aW9uJykpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX3N1Ym1pdF9yZXNwb25zZScsCgkJCSAkbW9kLT5MYW5nKCd0aXRsZV9zdWJtaXRfcmVzcG9uc2UnKSk7CgogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2lubGluZV9mb3JtJywKCQkJICRtb2QtPkxhbmcoJ3RpdGxlX2lubGluZV9mb3JtJykpOwoKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9zdWJtaXRfYWN0aW9ucycsCgkJCSAkbW9kLT5MYW5nKCd0aXRsZV9zdWJtaXRfYWN0aW9ucycpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9zdWJtaXRfbGFiZWxzJywKCQkJICRtb2QtPkxhbmcoJ3RpdGxlX3N1Ym1pdF9sYWJlbHMnKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfc3VibWl0X2hlbHAnLAokbW9kLT5jbXMtPnZhcmlhYmxlc1snYWRtaW50aGVtZSddLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9pbmZvLmdpZicsJ3RydWUnLCcnLCcnLCdzeXN0ZW1pY29uJykuCgkJCSAkbW9kLT5MYW5nKCd0aXRsZV9zdWJtaXRfaGVscCcpKTsKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9zdWJtaXRfcmVzcG9uc2VfaGVscCcsCiRtb2QtPmNtcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2luZm8uZ2lmJywndHJ1ZScsJycsJycsJ3N5c3RlbWljb24nKS4KCQkJJG1vZC0+TGFuZygndGl0bGVfc3VibWl0X3Jlc3BvbnNlX2hlbHAnKSk7CgogICAgJHN1Ym1pdEFjdGlvbnMgPSBhcnJheSgkbW9kLT5MYW5nKCdkaXNwbGF5X3RleHQnKT0+J3RleHQnLAogICAgICAgICAkbW9kLT5MYW5nKCdyZWRpcmVjdF90b19wYWdlJyk9PidyZWRpcicpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X3N1Ym1pdF9hY3Rpb24nLAogICAgICAgICAgJG1vZC0+Q3JlYXRlSW5wdXRSYWRpb0dyb3VwKCRpZCwgJ2ZicnBfZm9ybWFfc3VibWl0X2FjdGlvbicsICRzdWJtaXRBY3Rpb25zLCAkdGhpcy0+R2V0QXR0cignc3VibWl0X2FjdGlvbicsJ3RleHQnKSkpOwoKICAgICRjYXB0Y2hhID0gJiRtb2QtPmdldE1vZHVsZUluc3RhbmNlKCdDYXB0Y2hhJyk7CiAgICBpZiAoJGNhcHRjaGEgPT0gbnVsbCkKICAgICAgICAgewogICAgICAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfaW5zdGFsbF9jYXB0Y2hhJywKCQkJICAgJG1vZC0+TGFuZygndGl0bGVfY2FwdGNoYV9ub3RfaW5zdGFsbGVkJykpOwogICAgICAgICAkbW9kLT5zbWFydHktPmFzc2lnbignY2FwdGNoYV9pbnN0YWxsZWQnLDApOwogICAgICAgICB9CiAgICBlbHNlCiAgICAgICAgIHsKICAgICAgICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX3VzZV9jYXB0Y2hhJywKCQkJICAgJG1vZC0+TGFuZygndGl0bGVfdXNlX2NhcHRjaGEnKSk7CiAgICAgICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdjYXB0Y2hhX2luc3RhbGxlZCcsMSk7CgogICAgICAgICAkbW9kLT5zbWFydHktPmFzc2lnbignaW5wdXRfdXNlX2NhcHRjaGEnLCRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwnZmJycF9mb3JtYV91c2VfY2FwdGNoYScsJzAnKS4KCQkJICAgJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsJ2ZicnBfZm9ybWFfdXNlX2NhcHRjaGEnLCcxJywkdGhpcy0+R2V0QXR0cigndXNlX2NhcHRjaGEnLCcwJykpLgoJCQkgICAkbW9kLT5MYW5nKCd0aXRsZV91c2VfY2FwdGNoYV9oZWxwJykpOwoJCQl9CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfaW5mb3JtYXRpb24nLCRtb2QtPkxhbmcoJ2luZm9ybWF0aW9uJykpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX29yZGVyJywkbW9kLT5MYW5nKCdvcmRlcicpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9maWVsZF9yZXF1aXJlZF9hYmJyZXYnLCRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2FiYnJldicpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdoYXNkaXNwb3NpdGlvbicsJHRoaXMtPkhhc0Rpc3Bvc2l0aW9uKCk/MTowKTsKICAgICRtYXhPcmRlciA9IDE7CiAgICBpZigkdGhpcy0+SWQgPiAwKQogICAgICB7CgkkbW9kLT5zbWFydHktPmFzc2lnbignc3VibWl0X2J1dHRvbicsCgkJCSAgICAgJG1vZC0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnZmJycF9zdWJtaXQnLAoJCQkJCQkgICAgICRtb2QtPkxhbmcoJ3NhdmVfYW5kX2NvbnRpbnVlJykpKTsKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdmYl9oaWRkZW4nLAoJCQkgICAgICRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ2ZicnBfZm9ybV9vcCcsJG1vZC0+TGFuZygndXBkYXRlZCcpKSk7CgkkbW9kLT5zbWFydHktPmFzc2lnbignYWRkaW5nJywwKTsKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdzYXZlX2J1dHRvbicsCgkJCSAgICAgJG1vZC0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnZmJycF9zdWJtaXQnLCAkbW9kLT5MYW5nKCdzYXZlJykpKTsKCSRmaWVsZExpc3QgPSBhcnJheSgpOwoJJGN1cnJvdyA9ICJyb3cxIjsKCSRjb3VudCA9IDE7CgkkbGFzdCA9ICR0aGlzLT5HZXRGaWVsZENvdW50KCk7Cglmb3JlYWNoICgkdGhpcy0+RmllbGRzIGFzICR0aGlzRmllbGQpCgkgIHsKCSAgICAkb25lc2V0ID0gbmV3IHN0ZENsYXNzKCk7CgkgICAgJG9uZXNldC0+cm93Y2xhc3MgPSAkY3Vycm93OwoJICAgICRvbmVzZXQtPm5hbWUgPSAkbW9kLT5DcmVhdGVMaW5rKCRpZCwgJ2FkbWluX2FkZF9lZGl0X2ZpZWxkJywgJycsICR0aGlzRmllbGQtPkdldE5hbWUoKSwgYXJyYXkoJ2ZpZWxkX2lkJz0+JHRoaXNGaWVsZC0+R2V0SWQoKSwnZm9ybV9pZCc9PiR0aGlzLT5JZCkpOwoJICAgIGlmKCAkbW9kLT5HZXRQcmVmZXJlbmNlKCdzaG93X2ZpZWxkaWRzJywwKSAhPSAwICkKCSAgICAgIHsKCQkkb25lc2V0LT5pZCA9ICRtb2QtPkNyZWF0ZUxpbmsoJGlkLCAnYWRtaW5fYWRkX2VkaXRfZmllbGQnLCAnJywgJHRoaXNGaWVsZC0+R2V0SWQoKSwgYXJyYXkoJ2ZpZWxkX2lkJz0+JHRoaXNGaWVsZC0+R2V0SWQoKSwnZm9ybV9pZCc9PiR0aGlzLT5JZCkpOwoJICAgICAgfQoJICAgICRvbmVzZXQtPnR5cGUgPSAkdGhpc0ZpZWxkLT5HZXREaXNwbGF5VHlwZSgpOwoJICAgIGlmICgkdGhpc0ZpZWxkLT5Jc0Rpc3Bvc2l0aW9uKCkgfHwKCQkhJHRoaXNGaWVsZC0+RGlzcGxheUluRm9ybSgpIHx8CgkJJHRoaXNGaWVsZC0+SXNOb25SZXF1aXJhYmxlRmllbGQoKSkKCSAgICAgIHsKCQkkb25lc2V0LT5kaXNwb3NpdGlvbiA9ICcuJzsKCSAgICAgIH0KCSAgICBlbHNlIGlmICgkdGhpc0ZpZWxkLT5Jc1JlcXVpcmVkKCkpCgkgICAgICB7CgkJJG9uZXNldC0+ZGlzcG9zaXRpb24gPSAkbW9kLT5DcmVhdGVMaW5rKCRpZCwgJ2FkbWluX3VwZGF0ZV9maWVsZF9yZXF1aXJlZCcsICcnLCAkbW9kLT5jbXMtPnZhcmlhYmxlc1snYWRtaW50aGVtZSddLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS90cnVlLmdpZicsJ3RydWUnLCcnLCcnLCdzeXN0ZW1pY29uJyksIGFycmF5KCdmb3JtX2lkJz0+JHRoaXMtPklkLCdmYnJwX2FjdGl2ZSc9PidvZmYnLCdmaWVsZF9pZCc9PiR0aGlzRmllbGQtPkdldElkKCkpKTsKCSAgICAgIH0KCSAgICBlbHNlCgkgICAgICB7CgkJJG9uZXNldC0+ZGlzcG9zaXRpb24gPSAkbW9kLT5DcmVhdGVMaW5rKCRpZCwgJ2FkbWluX3VwZGF0ZV9maWVsZF9yZXF1aXJlZCcsICcnLCAkbW9kLT5jbXMtPnZhcmlhYmxlc1snYWRtaW50aGVtZSddLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9mYWxzZS5naWYnLCdmYWxzZScsJycsJycsJ3N5c3RlbWljb24nKSwgYXJyYXkoJ2Zvcm1faWQnPT4kdGhpcy0+SWQsJ2ZicnBfYWN0aXZlJz0+J29uJywnZmllbGRfaWQnPT4kdGhpc0ZpZWxkLT5HZXRJZCgpKSk7CgkgICAgICB9CgkgICAgJG9uZXNldC0+ZmllbGRfc3RhdHVzID0gJHRoaXNGaWVsZC0+U3RhdHVzSW5mbygpOwoJICAgIGlmICgkY291bnQgPiAxKQoJICAgICAgewoJCSRvbmVzZXQtPnVwID0gJG1vZC0+Q3JlYXRlTGluaygkaWQsICdhZG1pbl91cGRhdGVfZmllbGRfb3JkZXInLCAnJywgJG1vZC0+Y21zLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vYXJyb3ctdS5naWYnLCd1cCcsJycsJycsJ3N5c3RlbWljb24nKSwgYXJyYXkoJ2Zvcm1faWQnPT4kdGhpcy0+SWQsJ2ZicnBfZGlyJz0+J3VwJywnZmllbGRfaWQnPT4kdGhpc0ZpZWxkLT5HZXRJZCgpKSk7CgkgICAgICB9CgkgICAgZWxzZQoJICAgICAgewoJCSRvbmVzZXQtPnVwID0gJyZuYnNwOyc7CgkgICAgICB9CgkgICAgaWYgKCRjb3VudCA8ICRsYXN0KQoJICAgICAgewoJCSRvbmVzZXQtPmRvd249JG1vZC0+Q3JlYXRlTGluaygkaWQsICdhZG1pbl91cGRhdGVfZmllbGRfb3JkZXInLCAnJywgJG1vZC0+Y21zLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vYXJyb3ctZC5naWYnLCdkb3duJywnJywnJywnc3lzdGVtaWNvbicpLCBhcnJheSgnZm9ybV9pZCc9PiR0aGlzLT5JZCwnZmJycF9kaXInPT4nZG93bicsJ2ZpZWxkX2lkJz0+JHRoaXNGaWVsZC0+R2V0SWQoKSkpOwoJICAgICAgfQoJICAgIGVsc2UKCSAgICAgIHsKCQkkb25lc2V0LT5kb3duID0gJyZuYnNwOyc7CgkgICAgICB9CgkgICAgJG9uZXNldC0+ZWRpdGxpbmsgPSAkbW9kLT5DcmVhdGVMaW5rKCRpZCwgJ2FkbWluX2FkZF9lZGl0X2ZpZWxkJywgJycsICRtb2QtPmNtcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2VkaXQuZ2lmJywkbW9kLT5MYW5nKCdlZGl0JyksJycsJycsJ3N5c3RlbWljb24nKSwgYXJyYXkoJ2ZpZWxkX2lkJz0+JHRoaXNGaWVsZC0+R2V0SWQoKSwnZm9ybV9pZCc9PiR0aGlzLT5JZCkpOwoJICAgICRvbmVzZXQtPmRlbGV0ZWxpbmsgPSAkbW9kLT5DcmVhdGVMaW5rKCRpZCwgJ2FkbWluX2RlbGV0ZV9maWVsZCcsICcnLCAkbW9kLT5jbXMtPnZhcmlhYmxlc1snYWRtaW50aGVtZSddLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9kZWxldGUuZ2lmJywkbW9kLT5MYW5nKCdkZWxldGUnKSwnJywnJywnc3lzdGVtaWNvbicpLCBhcnJheSgnZmllbGRfaWQnPT4kdGhpc0ZpZWxkLT5HZXRJZCgpLCdmb3JtX2lkJz0+JHRoaXMtPklkKSwkbW9kLT5MYW5nKCdhcmVfeW91X3N1cmVfZGVsZXRlX2ZpZWxkJyxodG1sc3BlY2lhbGNoYXJzKCR0aGlzRmllbGQtPkdldE5hbWUoKSkpKTsKCSAgICAoJGN1cnJvdyA9PSAicm93MSI/JGN1cnJvdz0icm93MiI6JGN1cnJvdz0icm93MSIpOwoJICAgICRjb3VudCsrOwoJICAgIGlmICgkdGhpc0ZpZWxkLT5HZXRPcmRlcigpID49ICRtYXhPcmRlcikKCSAgICAgIHsKCQkkbWF4T3JkZXIgPSAkdGhpc0ZpZWxkLT5HZXRPcmRlcigpICsgMTsKCSAgICAgIH0KCSAgICBhcnJheV9wdXNoKCRmaWVsZExpc3QsICRvbmVzZXQpOwoJICB9CgkkbW9kLT5zbWFydHktPmFzc2lnbignZmllbGRzJywkZmllbGRMaXN0KTsKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdhZGRfZmllbGRfbGluaycsCgkJCSAgICAgJG1vZC0+Q3JlYXRlTGluaygkaWQsICdhZG1pbl9hZGRfZWRpdF9maWVsZCcsICRyZXR1cm5pZCwkbW9kLT5jbXMtPnZhcmlhYmxlc1snYWRtaW50aGVtZSddLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9uZXdvYmplY3QuZ2lmJywkbW9kLT5MYW5nKCd0aXRsZV9hZGRfbmV3X2ZpZWxkJyksJycsJycsJ3N5c3RlbWljb24nKSxhcnJheSgnZm9ybV9pZCc9PiR0aGlzLT5JZCwgJ2ZicnBfb3JkZXJfYnknPT4kbWF4T3JkZXIpLCAnJywgZmFsc2UpIC4gJG1vZC0+Q3JlYXRlTGluaygkaWQsICdhZG1pbl9hZGRfZWRpdF9maWVsZCcsICRyZXR1cm5pZCwkbW9kLT5MYW5nKCd0aXRsZV9hZGRfbmV3X2ZpZWxkJyksYXJyYXkoJ2Zvcm1faWQnPT4kdGhpcy0+SWQsICdmYnJwX29yZGVyX2J5Jz0+JG1heE9yZGVyKSwgJycsIGZhbHNlKSk7CgkkbW9kLT5zbWFydHktPmFzc2lnbignb3JkZXJfZmllbGRfbGluaycsCgkJCSAgICAgJG1vZC0+Q3JlYXRlTGluaygkaWQsICdhZG1pbl9yZW9yZGVyX2Zvcm0nLCAkcmV0dXJuaWQsJG1vZC0+Y21zLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vcmVvcmRlci5naWYnLCRtb2QtPkxhbmcoJ3RpdGxlX3Jlb3JkZXJfZm9ybScpLCcnLCcnLCdzeXN0ZW1pY29uJyksYXJyYXkoJ2Zvcm1faWQnPT4kdGhpcy0+SWQpLCAnJywgZmFsc2UpIC4gJG1vZC0+Q3JlYXRlTGluaygkaWQsICdhZG1pbl9yZW9yZGVyX2Zvcm0nLCAkcmV0dXJuaWQsJG1vZC0+TGFuZygndGl0bGVfcmVvcmRlcl9mb3JtJyksYXJyYXkoJ2Zvcm1faWQnPT4kdGhpcy0+SWQpLCAnJywgZmFsc2UpKTsKCQkJICAgICAJCQkgICAgIAoJaWYgKCRtb2QtPkdldFByZWZlcmVuY2UoJ2VuYWJsZV9mYXN0YWRkJywxKSA9PSAxKQoJICB7CgkgICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2Zhc3RhZGQnLDEpOwoJICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9mYXN0YWRkJywkbW9kLT5MYW5nKCd0aXRsZV9mYXN0YWRkJykpOwoJICAgICR0eXBlSW5wdXQgPSAiPHNjcmlwdCB0eXBlPVwidGV4dC9qYXZhc2NyaXB0XCI+CmZ1bmN0aW9uIGZhc3RfYWRkKGZpZWxkX3R5cGUpCnsKCXZhciB0eXBlPWZpZWxkX3R5cGUub3B0aW9uc1tmaWVsZF90eXBlLnNlbGVjdGVkSW5kZXhdLnZhbHVlOwoJdmFyIGxpbmsgPSAnIi4kbW9kLT5DcmVhdGVMaW5rKCRpZCwgJ2FkbWluX2FkZF9lZGl0X2ZpZWxkJywgJHJldHVybmlkLCcnLGFycmF5KCdmb3JtX2lkJz0+JHRoaXMtPklkLCAnZmJycF9vcmRlcl9ieSc9PiRtYXhPcmRlciksICcnLCB0cnVlLHRydWUpLiImIi4kaWQuImZicnBfZmllbGRfdHlwZT0nK3R5cGU7Cgl0aGlzLmxvY2F0aW9uPWxpbms7CglyZXR1cm4gdHJ1ZTsKfQo8L3NjcmlwdD4iOwoJICAgICR0eXBlSW5wdXQgPSBzdHJfcmVwbGFjZSgnJmFtcDsnLCcmJywkdHlwZUlucHV0KTsgCgkgICAgJG1vZC0+aW5pdGlhbGl6ZSgpOwoJICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF9mYXN0YWRkJywkdHlwZUlucHV0LiRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnZmJycF9maWVsZF90eXBlJyxhcnJheV9tZXJnZShhcnJheSgkbW9kLT5MYW5nKCdzZWxlY3RfdHlwZScpPT4nJyksJG1vZC0+ZmllbGRfdHlwZXMpLCAtMSwnJywgJ29uY2hhbmdlPSJmYXN0X2FkZCh0aGlzKSInKSk7CgkgIH0JCQkJCQkJCiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3NhdmVfYnV0dG9uJywnJyk7CgkkbW9kLT5zbWFydHktPmFzc2lnbignc3VibWl0X2J1dHRvbicsCgkJCSAgICAgJG1vZC0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnZmJycF9zdWJtaXQnLCAkbW9kLT5MYW5nKCdhZGQnKSkpOwoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2ZiX2hpZGRlbicsCgkJCSAgICAgJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnZmJycF9mb3JtX29wJywkbW9kLT5MYW5nKCdhZGRlZCcpKSk7CgkkbW9kLT5zbWFydHktPmFzc2lnbignYWRkaW5nJywxKTsKICAgICAgfQogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2xpbmtfbm90cmVhZHknLCI8c3Ryb25nPiIuJG1vZC0+TGFuZygndGl0bGVfbm90X3JlYWR5MScpLiI8L3N0cm9uZz4gIi4kbW9kLT5MYW5nKCd0aXRsZV9ub3RfcmVhZHkyJykuIiAiLiRtb2QtPkNyZWF0ZUxpbmsoJGlkLCAnYWRtaW5fYWRkX2VkaXRfZmllbGQnLCAkcmV0dXJuaWQsJG1vZC0+TGFuZygndGl0bGVfbm90X3JlYWR5X2xpbmsnKSxhcnJheSgnZm9ybV9pZCc9PiR0aGlzLT5JZCwgJ2ZicnBfb3JkZXJfYnknPT4kbWF4T3JkZXIsJ2ZicnBfZGlzcG9zZV9vbmx5Jz0+MSksICcnLCBmYWxzZSwgZmFsc2UsJ2NsYXNzPSJtb2R1bGVfZmJfbGluayInKS4iICIuJG1vZC0+TGFuZygndGl0bGVfbm90X3JlYWR5MycpCgkJCSApOwoKICAgCiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignaW5wdXRfaW5saW5lX2Zvcm0nLCRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwnZmJycF9mb3JtYV9pbmxpbmUnLCcwJykuCgkJCSAgICRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCdmYnJwX2Zvcm1hX2lubGluZScsJzEnLCR0aGlzLT5HZXRBdHRyKCdpbmxpbmUnLCcwJykpLgoJCQkgICAkbW9kLT5MYW5nKCd0aXRsZV9pbmxpbmVfZm9ybV9oZWxwJykpOwoKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9mb3JtX3N1Ym1pdF9idXR0b24nLAoJCQkgJG1vZC0+TGFuZygndGl0bGVfZm9ybV9zdWJtaXRfYnV0dG9uJykpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X2Zvcm1fc3VibWl0X2J1dHRvbicsCgkJCSAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnZmJycF9mb3JtYV9zdWJtaXRfYnV0dG9uX3RleHQnLAoJCQkJCSAgICAgICAkdGhpcy0+R2V0QXR0cignc3VibWl0X2J1dHRvbl90ZXh0JywkbW9kLT5MYW5nKCdidXR0b25fc3VibWl0JykpLCAzNSwgMzUpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eScsCgkJCSAkbW9kLT5MYW5nKCd0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eV9oZWxwJykpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X3N1Ym1pdF9idXR0b25fc2FmZXR5JywkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsJ2ZicnBfZm9ybWFfaW5wdXRfYnV0dG9uX3NhZmV0eScsJzAnKS4KCQkJICRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCdmYnJwX2Zvcm1hX2lucHV0X2J1dHRvbl9zYWZldHknLCcxJywkdGhpcy0+R2V0QXR0cignaW5wdXRfYnV0dG9uX3NhZmV0eScsJzAnKSkuCgkJCSAkbW9kLT5MYW5nKCd0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eScpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9mb3JtX3ByZXZfYnV0dG9uJywKCQkJICRtb2QtPkxhbmcoJ3RpdGxlX2Zvcm1fcHJldl9idXR0b24nKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignaW5wdXRfZm9ybV9wcmV2X2J1dHRvbicsCgkJCSAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnZmJycF9mb3JtYV9wcmV2X2J1dHRvbl90ZXh0JywKCQkJCQkgICAgICAgJHRoaXMtPkdldEF0dHIoJ3ByZXZfYnV0dG9uX3RleHQnLCRtb2QtPkxhbmcoJ2J1dHRvbl9wcmV2aW91cycpKSwgMzUsIDM1KSk7CgogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X3RpdGxlX3VzZXJfY2FwdGNoYScsCgkJCSAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnZmJycF9mb3JtYV90aXRsZV91c2VyX2NhcHRjaGEnLAogICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPkdldEF0dHIoJ3RpdGxlX3VzZXJfY2FwdGNoYScsJG1vZC0+TGFuZygndGl0bGVfdXNlcl9jYXB0Y2hhJykpLDM1LDgwKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfdGl0bGVfdXNlcl9jYXB0Y2hhJywkbW9kLT5MYW5nKCd0aXRsZV90aXRsZV91c2VyX2NhcHRjaGEnKSk7CgogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X3RpdGxlX3VzZXJfY2FwdGNoYV9lcnJvcicsCgkJCSAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnZmJycF9mb3JtYV9jYXB0Y2hhX3dyb25nJywKICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5HZXRBdHRyKCd0aXRsZV91c2VyX2NhcHRjaGFfZXJyb3InLCRtb2QtPkxhbmcoJ3dyb25nX2NhcHRjaGEnKSksMzUsODApKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV91c2VyX2NhcHRjaGFfZXJyb3InLCRtb2QtPkxhbmcoJ3RpdGxlX3VzZXJfY2FwdGNoYV9lcnJvcicpKTsKCiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfZm9ybV9uZXh0X2J1dHRvbicsCgkJCSAkbW9kLT5MYW5nKCd0aXRsZV9mb3JtX25leHRfYnV0dG9uJykpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X2Zvcm1fbmV4dF9idXR0b24nLAoJCQkgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2ZicnBfZm9ybWFfbmV4dF9idXR0b25fdGV4dCcsCgkJCQkJICAgICAgICR0aGlzLT5HZXRBdHRyKCduZXh0X2J1dHRvbl90ZXh0JywkbW9kLT5MYW5nKCdidXR0b25fY29udGludWUnKSksIDM1LCAzNSkpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2Zvcm1fcmVxdWlyZWRfc3ltYm9sJywKCQkJICRtb2QtPkxhbmcoJ3RpdGxlX2Zvcm1fcmVxdWlyZWRfc3ltYm9sJykpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X2Zvcm1fcmVxdWlyZWRfc3ltYm9sJywKCQkJICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdmYnJwX2Zvcm1hX3JlcXVpcmVkX2ZpZWxkX3N5bWJvbCcsCgkJCQkJICAgICAgICR0aGlzLT5HZXRBdHRyKCdyZXF1aXJlZF9maWVsZF9zeW1ib2wnLCcqJyksIDUwKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignaW5wdXRfbGlzdF9kZWxpbWl0ZXInLAoJCQkgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2ZicnBfZm9ybWFfbGlzdF9kZWxpbWl0ZXInLAoJCQkJCSAgICAgICAkdGhpcy0+R2V0QXR0cignbGlzdF9kZWxpbWl0ZXInLCcsJyksIDUwKSk7CgogICAgJGNvbnRlbnRvcHMgPSYgJGdDbXMtPkdldENvbnRlbnRPcGVyYXRpb25zKCk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignaW5wdXRfcmVkaXJlY3RfcGFnZScsJGNvbnRlbnRvcHMtPkNyZWF0ZUhpZXJhcmNoeURyb3Bkb3duKCcnLCR0aGlzLT5HZXRBdHRyKCdyZWRpcmVjdF9wYWdlJywnMCcpLCAkaWQuJ2ZicnBfZm9ybWFfcmVkaXJlY3RfcGFnZScpKTsKCiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignaW5wdXRfZm9ybV90ZW1wbGF0ZScsCgkJCSAkbW9kLT5DcmVhdGVUZXh0QXJlYShmYWxzZSwgJGlkLAoJCQkJCSAgICAgICR0aGlzLT5HZXRBdHRyKCdmb3JtX3RlbXBsYXRlJywkdGhpcy0+RGVmYXVsdFRlbXBsYXRlKCkpLCAnZmJycF9mb3JtYV9mb3JtX3RlbXBsYXRlJywnJywnZmJfZm9ybV90ZW1wbGF0ZScpKTsKCQkJCQkgICAgICAKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF9zdWJtaXRfcmVzcG9uc2UnLAoJCQkgJG1vZC0+Q3JlYXRlVGV4dEFyZWEoZmFsc2UsICRpZCwKCQkJCQkgICAgICAkdGhpcy0+R2V0QXR0cignc3VibWl0X3Jlc3BvbnNlJywnJyksICdmYnJwX2Zvcm1hX3N1Ym1pdF9yZXNwb25zZScsJ21vZHVsZV9mYl9hcmVhX3dpZGUnKSk7CgkkbW9kLT5zbWFydHktPmFzc2lnbignaGVscF9zdWJtaXRfcmVzcG9uc2UnLAoJCSR0aGlzLT5BZG1pblRlbXBsYXRlSGVscCgkaWQsJ2Zvcm1hX3N1Ym1pdF9yZXNwb25zZScsdHJ1ZSxmYWxzZSkpOwogICAgcmV0dXJuICRtb2QtPlByb2Nlc3NUZW1wbGF0ZSgnQWRkRWRpdEZvcm0udHBsJyk7CiAgfQoKICAgIGZ1bmN0aW9uICZOZXdGaWVsZCgmJHBhcmFtcykKICAgICAgewoJLy8kYWVmaWVsZCA9IG5ldyBmYkZpZWxkQmFzZSgkdGhpcywkcGFyYW1zKTsKCSRhZWZpZWxkID0gZmFsc2U7CiAgICAgICAgaWYgKGlzc2V0KCRwYXJhbXNbJ2ZpZWxkX2lkJ10pICYmICRwYXJhbXNbJ2ZpZWxkX2lkJ10gIT0gLTEgKQoJICB7CiAgICAgICAgICAgIC8vIHdlJ3JlIGxvYWRpbmcgYW4gZXh0YW50IGZpZWxkCgkgICAgJHNxbCA9ICdTRUxFQ1QgdHlwZSBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX2ZiX2ZpZWxkIFdIRVJFIGZpZWxkX2lkPT8nOwoJICAgICRycyA9ICR0aGlzLT5tb2R1bGVfcHRyLT5kYkhhbmRsZS0+RXhlY3V0ZSgkc3FsLCBhcnJheSggJHBhcmFtc1snZmllbGRfaWQnXSkpOwoJICAgIGlmKCRycyAmJiAkcmVzdWx0ID0gJHJzLT5GZXRjaFJvdygpKQoJICAgICAgewkJCQkKCQlpZiAoJHJlc3VsdFsndHlwZSddICE9ICcnKQoJCSAgewoJCSAgICAkY2xhc3NOYW1lID0gJHRoaXMtPk1ha2VDbGFzc05hbWUoJHJlc3VsdFsndHlwZSddICwgJycpOwoJCSAgICAkYWVmaWVsZCA9IG5ldyAkY2xhc3NOYW1lKCR0aGlzLCAkcGFyYW1zKTsKCQkgICAgJGFlZmllbGQtPkxvYWRGaWVsZCgkcGFyYW1zKTsKCQkgIH0KCSAgICAgIH0KCSAgfQoJaWYgKCRhZWZpZWxkID09PSBmYWxzZSkKCSAgewoJICAgIC8vIG5ldyBmaWVsZAoJICAgIGlmICghIGlzc2V0KCRwYXJhbXNbJ2ZicnBfZmllbGRfdHlwZSddKSkKCSAgICAgIHsKCQkvLyB1bmtub3duIGZpZWxkIHR5cGUKCQkkYWVmaWVsZCA9IG5ldyBmYkZpZWxkQmFzZSgkdGhpcywkcGFyYW1zKTsKCSAgICAgIH0KCSAgICBlbHNlCgkgICAgICB7CgkJLy8gc3BlY2lmaWVkIGZpZWxkIHR5cGUgdmlhIHBhcmFtcwogICAgICAgICAgICAJJGNsYXNzTmFtZSA9ICR0aGlzLT5NYWtlQ2xhc3NOYW1lKCRwYXJhbXNbJ2ZicnBfZmllbGRfdHlwZSddLCAnJyk7CiAgICAgICAgICAgIAkkYWVmaWVsZCA9IG5ldyAkY2xhc3NOYW1lKCR0aGlzLCAkcGFyYW1zKTsKCSAgICAgIH0KCSAgfQoJcmV0dXJuICRhZWZpZWxkOwogICAgICB9CgoKCiAgZnVuY3Rpb24gQWRkRWRpdEZpZWxkKCRpZCwgJiRhZWZpZWxkLCAkZGlzcG9zZV9vbmx5LCAkcmV0dXJuaWQsICRtZXNzYWdlPScnKQogIHsKICAgICRtb2QgPSAkdGhpcy0+bW9kdWxlX3B0cjsKCQkKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdtZXNzYWdlJywkbWVzc2FnZSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignYmFja3RvZm9ybV9uYXYnLCRtb2QtPkNyZWF0ZUxpbmsoJGlkLCAnYWRtaW5fYWRkX2VkaXRfZm9ybScsICRyZXR1cm5pZCwgJG1vZC0+TGFuZygnbGlua19iYWNrX3RvX2Zvcm0nKSwgYXJyYXkoJ2Zvcm1faWQnPT4kdGhpcy0+SWQpKSk7CiAgICAkbWFpbkxpc3QgPSBhcnJheSgpOwogICAgJGFkdkxpc3QgPSBhcnJheSgpOwogICAgJGJhc2VMaXN0ID0gJGFlZmllbGQtPlByZVBvcHVsYXRlQmFzZUFkbWluRm9ybSgkaWQsICRkaXNwb3NlX29ubHkpOwogICAgaWYgKCRhZWZpZWxkLT5HZXRGaWVsZFR5cGUoKSA9PSAnJykKICAgICAgewoJLy8gc3RpbGwgbmVlZCB0eXBlCgkkbW9kLT5zbWFydHktPmFzc2lnbignc3RhcnRfZm9ybScsJG1vZC0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwgJ2FkbWluX2FkZF9lZGl0X2ZpZWxkJywgJHJldHVybmlkKSk7CQkJCgkkZmllbGRMaXN0ID0gYXJyYXkoJ21haW4nPT5hcnJheSgpLCdhZHYnPT5hcnJheSgpKTsKICAgICAgfQogICAgZWxzZQogICAgICB7CgkvLyB3ZSBoYXZlIG91ciB0eXBlCgkkbW9kLT5zbWFydHktPmFzc2lnbignc3RhcnRfZm9ybScsJG1vZC0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwgJ2FkbWluX2FkZF9lZGl0X2ZpZWxkJywgJHJldHVybmlkKSk7CQoJJGZpZWxkTGlzdCA9ICRhZWZpZWxkLT5QcmVQb3B1bGF0ZUFkbWluRm9ybSgkaWQpOwogICAgICB9CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignZW5kX2Zvcm0nLCAkbW9kLT5DcmVhdGVGb3JtRW5kKCkpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RhYl9zdGFydCcsJG1vZC0+U3RhcnRUYWJIZWFkZXJzKCkuCgkJCSAkbW9kLT5TZXRUYWJIZWFkZXIoJ21haW50YWInLCRtb2QtPkxhbmcoJ3RhYl9tYWluJykpLgoJCQkgJG1vZC0+U2V0VGFiSGVhZGVyKCdhZHZhbmNlZHRhYicsJG1vZC0+TGFuZygndGFiX2FkdmFuY2VkJykpLgoJCQkgJG1vZC0+RW5kVGFiSGVhZGVycygpIC4gJG1vZC0+U3RhcnRUYWJDb250ZW50KCkpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RhYnNfZW5kJywkbW9kLT5FbmRUYWJDb250ZW50KCkpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ21haW50YWJfc3RhcnQnLCRtb2QtPlN0YXJ0VGFiKCJtYWludGFiIikpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2FkdmFuY2VkdGFiX3N0YXJ0JywkbW9kLT5TdGFydFRhYigiYWR2YW5jZWR0YWIiKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGFiX2VuZCcsJG1vZC0+RW5kVGFiKCkpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ25vdGljZV9zZWxlY3RfdHlwZScsJG1vZC0+TGFuZygnbm90aWNlX3NlbGVjdF90eXBlJykpOwoKICAgIGlmKCRhZWZpZWxkLT5HZXRJZCgpICE9IC0xKQogICAgICB7CgkkbW9kLT5zbWFydHktPmFzc2lnbignb3AnLCRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ2ZicnBfb3AnLCRtb2QtPkxhbmcoJ3VwZGF0ZWQnKSkpOwoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3N1Ym1pdCcsJG1vZC0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnZmJycF9hZWZfdXBkJywgJG1vZC0+TGFuZygndXBkYXRlJykpKTsKICAgICAgfQogICAgZWxzZQogICAgICB7CgkkbW9kLT5zbWFydHktPmFzc2lnbignb3AnLCRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ2ZicnBfb3AnLCAkbW9kLT5MYW5nKCdhZGRlZCcpKSk7CgkkbW9kLT5zbWFydHktPmFzc2lnbignc3VibWl0JywkbW9kLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdmYnJwX2FlZl9hZGQnLCAkbW9kLT5MYW5nKCdhZGQnKSkpOwogICAgICB9CgogICAgaWYgKCRhZWZpZWxkLT5IYXNBZGRPcCgpKQogICAgICB7CgkkbW9kLT5zbWFydHktPmFzc2lnbignYWRkJywkbW9kLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ2ZicnBfYWVmX29wdGFkZCcsJGFlZmllbGQtPkdldE9wdGlvbkFkZEJ1dHRvbigpKSk7CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2FkZCcsJycpOwogICAgICB9CiAgICBpZiAoJGFlZmllbGQtPkhhc0RlbGV0ZU9wKCkpCiAgICAgIHsKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdkZWwnLCRtb2QtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwnZmJycF9hZWZfb3B0ZGVsJywkYWVmaWVsZC0+R2V0T3B0aW9uRGVsZXRlQnV0dG9uKCkpKTsKICAgICAgfQogICAgZWxzZQogICAgICB7CgkkbW9kLT5zbWFydHktPmFzc2lnbignZGVsJywnJyk7CiAgICAgIH0KCgogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2ZiX2hpZGRlbicsICRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ2Zvcm1faWQnLCAkdGhpcy0+SWQpIC4gJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnZmllbGRfaWQnLCAkYWVmaWVsZC0+R2V0SWQoKSkgLiAkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdmYnJwX29yZGVyX2J5JywgJGFlZmllbGQtPkdldE9yZGVyKCkpLgoJCQkgJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCdmYnJwX3NldF9mcm9tX2Zvcm0nLCcxJykpOwoKICAgIGlmICgvKiEkYWVmaWVsZC0+SXNEaXNwb3NpdGlvbigpICYmICovICEkYWVmaWVsZC0+SXNOb25SZXF1aXJhYmxlRmllbGQoKSkKICAgICAgewoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3JlcXVpcmFibGUnLDEpOwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdyZXF1aXJhYmxlJywwKTsKICAgICAgfQoJCQkKICAgIGlmIChpc3NldCgkYmFzZUxpc3RbJ21haW4nXSkpCiAgICAgIHsKCWZvcmVhY2ggKCRiYXNlTGlzdFsnbWFpbiddIGFzICRpdGVtKQoJICB7CgkgICAgJHRpdGxlU3RyPSRpdGVtWzBdOwoJICAgICRpbnB1dFN0cj0kaXRlbVsxXTsKCSAgICAkb25lc2V0ID0gbmV3IHN0ZENsYXNzKCk7CgkgICAgJG9uZXNldC0+dGl0bGUgPSAkdGl0bGVTdHI7CgkgICAgaWYgKGlzX2FycmF5KCRpbnB1dFN0cikpCgkgICAgICB7CgkJJG9uZXNldC0+aW5wdXQgPSAkaW5wdXRTdHJbMF07CgkJJG9uZXNldC0+aGVscCA9ICRpbnB1dFN0clsxXTsKCSAgICAgIH0KCSAgICBlbHNlCgkgICAgICB7CgkJJG9uZXNldC0+aW5wdXQgPSAkaW5wdXRTdHI7CgkJJG9uZXNldC0+aGVscD0nJzsKCSAgICAgIH0KCSAgICBhcnJheV9wdXNoKCRtYWluTGlzdCwkb25lc2V0KTsKCSAgfQogICAgICB9CQogICAgaWYgKGlzc2V0KCRiYXNlTGlzdFsnYWR2J10pKQogICAgICB7Cglmb3JlYWNoICgkYmFzZUxpc3RbJ2FkdiddIGFzICRpdGVtKQoJICB7CgkgICAgJHRpdGxlU3RyID0gJGl0ZW1bMF07CgkgICAgJGlucHV0U3RyID0gJGl0ZW1bMV07CgkgICAgJG9uZXNldCA9IG5ldyBzdGRDbGFzcygpOwoJICAgICRvbmVzZXQtPnRpdGxlID0gJHRpdGxlU3RyOwoJICAgIGlmIChpc19hcnJheSgkaW5wdXRTdHIpKQoJICAgICAgewoJCSRvbmVzZXQtPmlucHV0ID0gJGlucHV0U3RyWzBdOwoJCSRvbmVzZXQtPmhlbHAgPSAkaW5wdXRTdHJbMV07CgkgICAgICB9CgkgICAgZWxzZQoJICAgICAgewoJCSRvbmVzZXQtPmlucHV0ID0gJGlucHV0U3RyOwoJCSRvbmVzZXQtPmhlbHA9Jyc7CgkgICAgICB9CgkgICAgYXJyYXlfcHVzaCgkYWR2TGlzdCwkb25lc2V0KTsKCSAgfQogICAgICB9CQogICAgaWYgKGlzc2V0KCRmaWVsZExpc3RbJ21haW4nXSkpCiAgICAgIHsKCWZvcmVhY2ggKCRmaWVsZExpc3RbJ21haW4nXSBhcyAkaXRlbSkKCSAgewoJICAgICR0aXRsZVN0cj0kaXRlbVswXTsKCSAgICAkaW5wdXRTdHI9JGl0ZW1bMV07CgkgICAgJG9uZXNldCA9IG5ldyBzdGRDbGFzcygpOwoJICAgICRvbmVzZXQtPnRpdGxlID0gJHRpdGxlU3RyOwoJICAgIGlmIChpc19hcnJheSgkaW5wdXRTdHIpKQoJICAgICAgewoJCSRvbmVzZXQtPmlucHV0ID0gJGlucHV0U3RyWzBdOwoJCSRvbmVzZXQtPmhlbHAgPSAkaW5wdXRTdHJbMV07CgkgICAgICB9CgkgICAgZWxzZQoJICAgICAgewoJCSRvbmVzZXQtPmlucHV0ID0gJGlucHV0U3RyOwoJCSRvbmVzZXQtPmhlbHA9Jyc7CgkgICAgICB9CgkgICAgYXJyYXlfcHVzaCgkbWFpbkxpc3QsJG9uZXNldCk7CgkgIH0KICAgICAgfQogICAgaWYgKGlzc2V0KCRmaWVsZExpc3RbJ2FkdiddKSkKICAgICAgewoJZm9yZWFjaCAoJGZpZWxkTGlzdFsnYWR2J10gYXMgJGl0ZW0pCgkgIHsKCSAgICAkdGl0bGVTdHI9JGl0ZW1bMF07CgkgICAgJGlucHV0U3RyPSRpdGVtWzFdOwoJICAgICRvbmVzZXQgPSBuZXcgc3RkQ2xhc3MoKTsKCSAgICAkb25lc2V0LT50aXRsZSA9ICR0aXRsZVN0cjsKCSAgICBpZiAoaXNfYXJyYXkoJGlucHV0U3RyKSkKCSAgICAgIHsKCQkkb25lc2V0LT5pbnB1dCA9ICRpbnB1dFN0clswXTsKCQkkb25lc2V0LT5oZWxwID0gJGlucHV0U3RyWzFdOwoJICAgICAgfQoJICAgIGVsc2UKCSAgICAgIHsKCQkkb25lc2V0LT5pbnB1dCA9ICRpbnB1dFN0cjsKCQkkb25lc2V0LT5oZWxwPScnOwoJICAgICAgfQoJICAgIGFycmF5X3B1c2goJGFkdkxpc3QsJG9uZXNldCk7CgkgIH0KICAgICAgfQoJCQogICAgJGFlZmllbGQtPlBvc3RQb3B1bGF0ZUFkbWluRm9ybSgkbWFpbkxpc3QsICRhZHZMaXN0KTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdtYWluTGlzdCcsJG1haW5MaXN0KTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdhZHZMaXN0JywkYWR2TGlzdCk7CiAgICByZXR1cm4gJG1vZC0+UHJvY2Vzc1RlbXBsYXRlKCdBZGRFZGl0RmllbGQudHBsJyk7CiAgfQoKICBmdW5jdGlvbiBNYWtlQWxpYXMoJHN0cmluZywgJGlzRm9ybT1mYWxzZSkKICB7CiAgICAkc3RyaW5nID0gdHJpbShodG1sc3BlY2lhbGNoYXJzKCRzdHJpbmcpKTsKICAgIC8vJHN0cmluZyA9IHByZWdfcmVwbGFjZSgiL1tfLVxXXSsvIiwgIl8iLCAkc3RyaW5nKTsKICAgIC8vJHN0cmluZyA9IHRyaW0oJHN0cmluZywgJ18nKTsKICAgIGlmICgkaXNGb3JtKQogICAgICB7CglyZXR1cm4gc3RydG9sb3dlcigkc3RyaW5nKTsKICAgICAgfQogICAgZWxzZQogICAgICB7CglyZXR1cm4gJ2ZiJy5zdHJ0b2xvd2VyKCRzdHJpbmcpOwogICAgICB9CiAgfQogICAgCiAgZnVuY3Rpb24gU3dhcEZpZWxkc0J5SW5kZXgoJHNyY19maWVsZF9pbmRleCwgJGRlc3RfZmllbGRfaW5kZXgpCiAgewogICAgJHNyY0ZpZWxkID0gJiR0aGlzLT5HZXRGaWVsZEJ5SW5kZXgoJHNyY19maWVsZF9pbmRleCk7CiAgICAkZGVzdEZpZWxkID0gJiR0aGlzLT5HZXRGaWVsZEJ5SW5kZXgoJGRlc3RfZmllbGRfaW5kZXgpOwogICAgJHRtcE9yZGVyQnkgPSAkZGVzdEZpZWxkLT5HZXRPcmRlcigpOwogICAgJGRlc3RGaWVsZC0+U2V0T3JkZXIoJHNyY0ZpZWxkLT5HZXRPcmRlcigpKTsKICAgICRzcmNGaWVsZC0+U2V0T3JkZXIoJHRtcE9yZGVyQnkpOwogICAgLy9pdCBzZWVtcyB0aGlzIG1ha2VzIHBocDQgZ28gY3JhenkgZml4ZWQgYnkgcmVsb2FkaW5nIGZvcm0gYmVmb3JlIHNob3dpbmcgaXQgYWdhaW4KICAgICMgICAgICAgICR0aGlzLT5GaWVsZHNbJGRlc3RfZmllbGRfaW5kZXhdID0gJHNyY0ZpZWxkOwogICAgIyAgICAgICAgJHRoaXMtPkZpZWxkc1skc3JjX2ZpZWxkX2luZGV4XSA9ICRkZXN0RmllbGQ7CiAgICAkc3JjRmllbGQtPlN0b3JlKCk7CiAgICAkZGVzdEZpZWxkLT5TdG9yZSgpOwogIH0KCiAgZnVuY3Rpb24gJkdldEZpZWxkcygpCiAgICB7CiAgICAgIHJldHVybiAkdGhpcy0+RmllbGRzOwogICAgfQoKICBmdW5jdGlvbiAmR2V0RmllbGRCeUlkKCRmaWVsZF9pZCkKICAgIHsKICAgICAgJGluZGV4ID0gLTE7CiAgICAgIGZvciAoJGk9MDskaTxjb3VudCgkdGhpcy0+RmllbGRzKTskaSsrKQoJewoJICBpZiAoJHRoaXMtPkZpZWxkc1skaV0tPkdldElkKCkgPT0gJGZpZWxkX2lkKQoJICAgIHsKCSAgICAgICRpbmRleCA9ICRpOwoJICAgIH0KCX0KICAgICAgaWYgKCRpbmRleCAhPSAtMSkKCXsKCSAgcmV0dXJuICR0aGlzLT5GaWVsZHNbJGluZGV4XTsKCX0KICAgICAgZWxzZQoJewoJICByZXR1cm4gZmFsc2U7Cgl9CiAgICB9CgogIGZ1bmN0aW9uICZHZXRGaWVsZEJ5SW5kZXgoJGZpZWxkX2luZGV4KQogICAgewogICAgICByZXR1cm4gJHRoaXMtPkZpZWxkc1skZmllbGRfaW5kZXhdOwogICAgfQoKCiAgZnVuY3Rpb24gR2V0RmllbGRJbmRleEZyb21JZCgkZmllbGRfaWQpCiAgewogICAgJGluZGV4ID0gLTE7CiAgICBmb3IgKCRpPTA7JGk8Y291bnQoJHRoaXMtPkZpZWxkcyk7JGkrKykKICAgICAgewoJaWYgKCR0aGlzLT5GaWVsZHNbJGldLT5HZXRJZCgpID09ICRmaWVsZF9pZCkKCSAgewoJICAgICRpbmRleCA9ICRpOwoJICB9CiAgICAgIH0KICAgIHJldHVybiAkaW5kZXg7CiAgfQoKCiAgZnVuY3Rpb24gRGVmYXVsdFRlbXBsYXRlKCkKICB7CiAgICByZXR1cm4gZmlsZV9nZXRfY29udGVudHMoZGlybmFtZShfX0ZJTEVfXykuJy8uLi90ZW1wbGF0ZXMvUmVuZGVyRm9ybURlZmF1bHQudHBsJyk7CiAgfQoKICBmdW5jdGlvbiBEZWxldGVGaWVsZCgkZmllbGRfaWQpCiAgewogICAgJGluZGV4ID0gJHRoaXMtPkdldEZpZWxkSW5kZXhGcm9tSWQoJGZpZWxkX2lkKTsKICAgIGlmICgkaW5kZXggIT0gLTEpCiAgICAgIHsKCSR0aGlzLT5GaWVsZHNbJGluZGV4XS0+RGVsZXRlKCk7CglhcnJheV9zcGxpY2UoJHRoaXMtPkZpZWxkcywkaW5kZXgsMSk7CiAgICAgIH0KICB9IAoKICBmdW5jdGlvbiBSZXNldEZpZWxkcygpCiAgewogICAgZm9yKCRpPTA7JGk8Y291bnQoJHRoaXMtPkZpZWxkcyk7JGkrKykKICAgICAgewoJJHRoaXMtPkZpZWxkc1skaV0tPlJlc2V0VmFsdWUoKTsKICAgICAgfQogIH0KICAgIAogIC8vIHRoaXMgd2lsbCBpbnN0YW50aWF0ZSB0aGUgZm9ybSwgYW5kIGxvYWQgdGhlIHJlc3VsdHMKICBmdW5jdGlvbiBMb2FkUmVzcG9uc2UoJHJlc3BvbnNlX2lkKQogIHsKICAgICRkYiA9ICYkdGhpcy0+bW9kdWxlX3B0ci0+ZGJIYW5kbGU7CiAgICAvLyBsb2FkaW5nIGEgcmVzcG9uc2UgLS0gYXQgdGhpcyBwb2ludCwgd2UgY2hlY2sgdGhhdCB0aGUgcmVzcG9uc2UKICAgIC8vIGlzIGZvciB0aGUgY29ycmVjdCBmb3JtX2lkIQogICAgJHNxbCA9ICdTRUxFQ1QgZm9ybV9pZCBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkuCiAgICAgICdtb2R1bGVfZmJfcmVzcCB3aGVyZSByZXNwX2lkPT8nOwogICAgaWYoJHJlc3VsdCA9ICRkYi0+R2V0Um93KCRzcWwsIGFycmF5KCRyZXNwb25zZV9pZCkpKQogICAgICB7CglpZiAoJHJlc3VsdFsnZm9ybV9pZCddICE9ICR0aGlzLT5HZXRJZCgpKQoJICB7CgkgICAgcmV0dXJuIGZhbHNlOwoJICB9CgkJICAgIAoJJHRoaXMtPlJlc2V0RmllbGRzKCk7CgoJJHNxbCA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLgoJICAnbW9kdWxlX2ZiX3Jlc3BfdmFsIFdIRVJFIHJlc3BfaWQ9PyBvcmRlciBieSByZXNwX3ZhbF9pZCc7CgkkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHNxbCwgYXJyYXkoJHJlc3BvbnNlX2lkKSk7Cgl3aGlsZSAoJGRicmVzdWx0ICYmICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpCgkgIHsKCSAgICAkaW5kZXggPSAkdGhpcy0+R2V0RmllbGRJbmRleEZyb21JZCgkcm93WydmaWVsZF9pZCddKTsKICAgICAgICAgICAgaWYoIGlzX29iamVjdCgkdGhpcy0+RmllbGRzWyRpbmRleF0pICkKICAgICAgICAgICAgIHsKCSAgICAgICAkdGhpcy0+RmllbGRzWyRpbmRleF0tPlNldFZhbHVlKCRyb3dbJ3ZhbHVlJ10pOwogICAgICAgICAgICAgfQoJICB9CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJcmV0dXJuIGZhbHNlOwogICAgICB9CiAgfSAgIAoKICBmdW5jdGlvbiBMb2FkUmVzcG9uc2VWYWx1ZXMoJiRwYXJhbXMpCiAgewogICAgJGRiID0gJHRoaXMtPm1vZHVsZV9wdHItPmRiSGFuZGxlOwogICAgLy8gbG9hZGluZyBhIHJlc3BvbnNlIC0tIGF0IHRoaXMgcG9pbnQsIHdlIGNoZWNrIHRoYXQgdGhlIHJlc3BvbnNlCiAgICAvLyBpcyBmb3IgdGhlIGNvcnJlY3QgZm9ybV9pZCEKICAgICRzcWwgPSAnU0VMRUNUIGZvcm1faWQgRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpLgogICAgICAnbW9kdWxlX2ZiX3Jlc3Agd2hlcmUgcmVzcF9pZD0/JzsKICAgIGlmKCRyZXN1bHQgPSAkZGItPkdldFJvdygkc3FsLCBhcnJheSgkcGFyYW1zWydyZXNwb25zZV9pZCddKSkpCiAgICAgIHsKCWlmICgkcmVzdWx0Wydmb3JtX2lkJ10gIT0gJHRoaXMtPkdldElkKCkpCgkgIHsKCSAgICByZXR1cm4gZmFsc2U7CgkgIH0KCSRzcWwgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4KCSAgJ21vZHVsZV9mYl9yZXNwX3ZhbCBXSEVSRSByZXNwX2lkPT8gb3JkZXIgYnkgcmVzcF92YWxfaWQnOwoJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRzcWwsIGFycmF5KCRwYXJhbXNbJ3Jlc3BvbnNlX2lkJ10pKTsKCXdoaWxlICgkZGJyZXN1bHQgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSkKCSAgeyAvLyB3YXMgJ19fJwkJICAgICAgICAJCgkgICAgaWYgKGlzc2V0KCRwYXJhbXNbJ2ZicnBfXycuJHJvd1snZmllbGRfaWQnXV0pICYmCgkJISBpc19hcnJheSgkcGFyYW1zWydmYnJwX18nLiRyb3dbJ2ZpZWxkX2lkJ11dKSkKCSAgICAgIHsKCQkkcGFyYW1zWydmYnJwX18nLiRyb3dbJ2ZpZWxkX2lkJ11dID0gYXJyYXkoJHBhcmFtc1snZmJycF9fJy4kcm93WydmaWVsZF9pZCddXSk7CgkJYXJyYXlfcHVzaCgkcGFyYW1zWydmYnJwX18nLiRyb3dbJ2ZpZWxkX2lkJ11dLCAkcm93Wyd2YWx1ZSddKTsKCSAgICAgIH0KCSAgICBlbHNlaWYgKGlzc2V0KCRwYXJhbXNbJ2ZicnBfXycuJHJvd1snZmllbGRfaWQnXV0pKQoJICAgICAgewoJCWFycmF5X3B1c2goJHBhcmFtc1snZmJycF9fJy4kcm93WydmaWVsZF9pZCddXSwgJHJvd1sndmFsdWUnXSk7CgkgICAgICB9CgkgICAgZWxzZQoJICAgICAgewoJCSRwYXJhbXNbJ2ZicnBfXycuJHJvd1snZmllbGRfaWQnXV0gPSAkcm93Wyd2YWx1ZSddOwoJICAgICAgfQoJICB9CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJcmV0dXJuIGZhbHNlOwogICAgICB9CiAgfSAgIAoKICBmdW5jdGlvbiBEZWxldGVSZXNwb25zZSgkcmVzcG9uc2VfaWQpCiAgewogICAgJGRiID0gJHRoaXMtPm1vZHVsZV9wdHItPmRiSGFuZGxlOwogICAgJHNxbCA9ICdERUxFVEUgRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpLgogICAgICAnbW9kdWxlX2ZiX3Jlc3BfdmFsIHdoZXJlIHJlc3BfaWQ9Pyc7CiAgICAkcmVzID0gJGRiLT5FeGVjdXRlKCRzcWwsIGFycmF5KCRyZXNwb25zZV9pZCkpOwogICAgJHNxbCA9ICdERUxFVEUgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4KICAgICAgJ21vZHVsZV9mYl9yZXNwIHdoZXJlIHJlc3BfaWQ9Pyc7CiAgICAkcmVzID0gJGRiLT5FeGVjdXRlKCRzcWwsIGFycmF5KCRyZXNwb25zZV9pZCkpOwkKICB9CgogIGZ1bmN0aW9uIENoZWNrUmVzcG9uc2UoJGZvcm1faWQsICRyZXNwb25zZV9pZCwgJGNvZGUpCiAgewogICAgJGRiID0gJHRoaXMtPm1vZHVsZV9wdHItPmRiSGFuZGxlOwogICAgJHNxbCA9ICdTRUxFQ1Qgc2VjcmV0X2NvZGUgRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpLgogICAgICAnbW9kdWxlX2ZiX3Jlc3Agd2hlcmUgZm9ybV9pZD0/IGFuZCByZXNwX2lkPT8nOwogICAgaWYoJHJlc3VsdCA9ICRkYi0+R2V0Um93KCRzcWwsIGFycmF5KCRmb3JtX2lkLCRyZXNwb25zZV9pZCkpKQogICAgICB7CglpZiAoJHJlc3VsdFsnc2VjcmV0X2NvZGUnXSA9PSAkY29kZSkKCSAgewoJICAgIHJldHVybiB0cnVlOwoJICB9CiAgICAgIH0KICAgIHJldHVybiBmYWxzZTsKICB9CgoKICBmdW5jdGlvbiBTdG9yZVJlc3BvbnNlKCRyZXNwb25zZV9pZD0tMSwkYXBwcm92ZXI9JycpCiAgewogICAgJGRiID0gJHRoaXMtPm1vZHVsZV9wdHItPmRiSGFuZGxlOwogICAgJGZpZWxkcyA9ICYkdGhpcy0+R2V0RmllbGRzKCk7CiAgICAkc2VjcmV0X2NvZGUgPSAnJzsKICAgICRuZXdyZWMgPSBmYWxzZTsKICAgIGlmICgkcmVzcG9uc2VfaWQgPT0gLTEpCiAgICAgIHsKCSRuZXdyZWMgPSB0cnVlOwogICAgICB9CiAgICBpZiAoJG5ld3JlYykKICAgICAgewoJLy8gc2F2aW5nIGEgbmV3IHJlc3BvbnNlCgkkc2VjcmV0X2NvZGUgPSBzdWJzdHIobWQ1KHNlc3Npb25faWQoKS4nXycudGltZSgpKSwwLDcpOwoJJHJlc3BvbnNlX2lkID0gJGRiLT5HZW5JRChjbXNfZGJfcHJlZml4KCkuICdtb2R1bGVfZmJfcmVzcF9zZXEnKTsKCSRzcWwgPSAnSU5TRVJUIElOVE8gJyAuIGNtc19kYl9wcmVmaXgoKS4KCSAgJ21vZHVsZV9mYl9yZXNwIChyZXNwX2lkLCBmb3JtX2lkLCBzdWJtaXR0ZWQsIHNlY3JldF9jb2RlKScgLgoJICAnIFZBTFVFUyAoPywgPywgPywgPyknOwoJJHJlcyA9ICRkYi0+RXhlY3V0ZSgkc3FsLAoJCQkgICAgYXJyYXkoJHJlc3BvbnNlX2lkLAoJCQkJICAkdGhpcy0+R2V0SWQoKSwKCQkJCSAgJHRoaXMtPmNsZWFuX2RhdGV0aW1lKCRkYi0+REJUaW1lU3RhbXAodGltZSgpKSksCgkJCQkgICRzZWNyZXRfY29kZSkpOwogICAgICB9CiAgICBlbHNlIGlmICgkYXBwcm92ZXIgIT0gJycpCiAgICAgIHsKCSRzcWwgPSAnVVBEQVRFICcgLiBjbXNfZGJfcHJlZml4KCkuCgkgICdtb2R1bGVfZmJfcmVzcCBzZXQgdXNlcl9hcHByb3ZlZD0/IHdoZXJlIHJlc3BfaWQ9Pyc7CgkkcmVzID0gJGRiLT5FeGVjdXRlKCRzcWwsCgkJCSAgICBhcnJheSgkdGhpcy0+Y2xlYW5fZGF0ZXRpbWUoJGRiLT5EQlRpbWVTdGFtcCh0aW1lKCkpKSwkcmVzcG9uc2VfaWQpKTsKCWF1ZGl0KC0xLCAoaXNzZXQoJG5hbWUpPyRuYW1lOiIiKSwgJHRoaXMtPm1vZHVsZV9wdHItPkxhbmcoJ3VzZXJfYXBwcm92ZWRfc3VibWlzc2lvbicsYXJyYXkoJHJlc3BvbnNlX2lkLCRhcHByb3ZlcikpKTsKICAgICAgfQogICAgaWYgKCEgJG5ld3JlYykKICAgICAgewoJLy8gdXBkYXRpbmcgYW4gb2xkIHJlc3BvbnNlLCBzbyB3ZSBwdXJnZSBvbGQgdmFsdWVzCgkkc3FsID0gJ0RFTEVURSBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkuCgkgICdtb2R1bGVfZmJfcmVzcF92YWwgd2hlcmUgcmVzcF9pZD0/JzsKCSRyZXMgPSAkZGItPkV4ZWN1dGUoJHNxbCwgYXJyYXkoJHJlc3BvbnNlX2lkKSk7CiAgICAgIH0KICAgICRzcWwgPSAnSU5TRVJUIElOVE8gJyAuIGNtc19kYl9wcmVmaXgoKS4KICAgICAgJ21vZHVsZV9mYl9yZXNwX3ZhbCAocmVzcF92YWxfaWQsIHJlc3BfaWQsIGZpZWxkX2lkLCB2YWx1ZSknIC4KICAgICAgJ1ZBTFVFUyAoPywgPywgPywgPyknOwogICAgZm9yZWFjaCAoJGZpZWxkcyBhcyAkdGhpc0ZpZWxkKQogICAgICB7CgkvLyBzZXQgdGhlIHJlc3BvbnNlX2lkIHRvIGJlIHRoZSBhdHRyaWJ1dGUgb2YgdGhlIGRhdGFiYXNlIGRpc3Bvc2l0aW9uCglpZiAoJHRoaXNGaWVsZC0+R2V0RmllbGRUeXBlKCkgPT0gJ0Rpc3Bvc2l0aW9uRGF0YWJhc2UnKQoJICB7CgkgICAgJHRoaXNGaWVsZC0+U2V0VmFsdWUoJHJlc3BvbnNlX2lkKTsKCSAgfQoJZWxzZWlmICghICR0aGlzRmllbGQtPkRpc3BsYXlJblN1Ym1pc3Npb24oKSkKCSAgewoJICAgIC8vIHNraXAgaWYgbm90IGEgZGlzcGxheWFibGUgZmllbGQuCgkgICAgY29udGludWU7CgkgIH0KCWlmICghIGlzX2FycmF5KCR0aGlzRmllbGQtPkdldFZhbHVlKCkpKQoJICB7CgkgICAgJHN0b3JlID0gYXJyYXkoKTsKCSAgICBhcnJheV9wdXNoKCRzdG9yZSwkdGhpc0ZpZWxkLT5HZXRWYWx1ZSgpKTsKCSAgfQoJZWxzZQoJICB7CgkgICAgJHN0b3JlID0gJHRoaXNGaWVsZC0+R2V0VmFsdWUoKTsKCSAgfQoJZm9yZWFjaCAoJHN0b3JlIGFzICR0aGlzRmllbGRWYWwpCgkgIHsKCSAgICBpZiAoJHRoaXNGaWVsZFZhbCAhPT0gZmFsc2UpCgkgICAgICB7CgkJJHJlc3BfdmFsX2lkID0gJGRiLT5HZW5JRChjbXNfZGJfcHJlZml4KCkuCgkJCQkJICAnbW9kdWxlX2ZiX3Jlc3BfdmFsX3NlcScpOwoJCSRyZXMgPSAkZGItPkV4ZWN1dGUoJHNxbCwgYXJyYXkoJHJlc3BfdmFsX2lkLCRyZXNwb25zZV9pZCwKCQkJCQkJJHRoaXNGaWVsZC0+R2V0SWQoKSwkdGhpc0ZpZWxkVmFsKSk7CgkgICAgICB9CgkgIH0gCiAgICAgIH0KICAgIHJldHVybiBhcnJheSgkcmVzcG9uc2VfaWQsJHNlY3JldF9jb2RlKTsKICB9ICAgCiAgICAKICBmdW5jdGlvbiBjbGVhbl9kYXRldGltZSgkZHQpCiAgewogICAgcmV0dXJuIHN1YnN0cigkZHQsMSxzdHJsZW4oJGR0KS0yKTsKICB9CiAgCiAgZnVuY3Rpb24gRXhwb3J0WE1MKCRleHBvcnRWYWx1ZXMgPSBmYWxzZSkKICB7CgkkeG1sc3RyID0gIjw/eG1sIHZlcnNpb249XCIxLjBcIiBlbmNvZGluZz1cInV0Zi04XCI/PlxuIjsKCSR4bWxzdHIgLj0gIjxmb3JtIGlkPVwiIi4kdGhpcy0+SWQuIlwiXG4iOwoJJHhtbHN0ciAuPSAiXHRuYW1lPVwiIi5odG1sc3BlY2lhbGNoYXJzKCR0aGlzLT5OYW1lKS4iXCJcbiI7CgkkeG1sc3RyIC49ICJcdGFsaWFzPVwiIi4kdGhpcy0+QWxpYXMuIlwiPlxuIjsKICAgZm9yZWFjaCAoJHRoaXMtPkF0dHJzIGFzICR0aGlzQXR0cktleT0+JHRoaXNBdHRyVmFsdWUpCiAgICAgIHsKCQkkeG1sc3RyIC49ICJcdFx0PGF0dHJpYnV0ZSBrZXk9XCIkdGhpc0F0dHJLZXlcIj48IVtDREFUQVskdGhpc0F0dHJWYWx1ZV1dPjwvYXR0cmlidXRlPlxuIjsKCQl9Cglmb3JlYWNoKCR0aGlzLT5GaWVsZHMgYXMgJHRoaXNGaWVsZCkKCQl7CgkJCSR4bWxzdHIgLj0gJHRoaXNGaWVsZC0+RXhwb3J0WE1MKCRleHBvcnRWYWx1ZXMpOwoJCX0KCSR4bWxzdHIgLj0gIjwvZm9ybT5cbiI7CglyZXR1cm4gJHhtbHN0cjsKICB9CiAgCiAgICAKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/FromEmailAddressField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkZyb21FbWFpbEFkZHJlc3NGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCglmdW5jdGlvbiBmYkZyb21FbWFpbEFkZHJlc3NGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJiRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkdGhpcy0+VHlwZSA9ICdGcm9tRW1haWxBZGRyZXNzRmllbGQnOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25fZW1haWxfYWRkcmVzcycpPT4nZW1haWwnLAogICAgICAgICAgICApOwogICAgICAgICR0aGlzLT5WYWxpZGF0aW9uVHlwZSA9ICdlbWFpbCc7CgkgICAkdGhpcy0+bW9kaWZpZXNPdGhlckZpZWxkcyA9IHRydWU7Cgl9CgoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJcmV0dXJuICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdmYnJwX18nLiR0aGlzLT5JZCwKCQkJaHRtbHNwZWNpYWxjaGFycygkdGhpcy0+VmFsdWUsIEVOVF9RVU9URVMpLAogICAgICAgICAgIDI1LDEyOCk7Cgl9CgkKCWZ1bmN0aW9uIE1vZGlmeU90aGVyRmllbGRzKCkKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkb3RoZXJzID0gJiR0aGlzLT5mb3JtX3B0ci0+R2V0RmllbGRzKCk7CgkJCgkJZm9yKCRpPTA7JGk8Y291bnQoJG90aGVycyk7JGkrKykKCQkJewoJCQkkcmVwbFZhbCA9ICcnOwoJCQlpZiAoJG90aGVyc1skaV0tPklzRGlzcG9zaXRpb24oKSAmJiBpc19zdWJjbGFzc19vZigkb3RoZXJzWyRpXSwnZmJEaXNwb3NpdGlvbkVtYWlsQmFzZScpKQoJCQkJewoJCQkJJG90aGVyc1skaV0tPlNldE9wdGlvbignZW1haWxfZnJvbV9hZGRyZXNzJywkdGhpcy0+VmFsdWUpOwoJCQkJfQoJCQl9CgkJCgl9CgoJZnVuY3Rpb24gU3RhdHVzSW5mbygpCgl7CgkJcmV0dXJuICcnOwoJfQoKCWZ1bmN0aW9uIFZhbGlkYXRlKCkKCXsKCQkkdGhpcy0+dmFsaWRhdGVkID0gdHJ1ZTsKCQkkdGhpcy0+dmFsaWRhdGlvbkVycm9yVGV4dCA9ICcnOwoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCXN3aXRjaCAoJHRoaXMtPlZhbGlkYXRpb25UeXBlKQoJCSAgewoJCSAgCSAgIGNhc2UgJ2VtYWlsJzoKICAgICAgICAgICAgICAgICAgaWYgKCR0aGlzLT5WYWx1ZSAhPT0gZmFsc2UgJiYKICAgICAgICAgICAgICAgICAgICAgICEgcHJlZ19tYXRjaCgoJG1vZC0+R2V0UHJlZmVyZW5jZSgncmVsYXhlZF9lbWFpbF9yZWdleCcsJzAnKT09MD8kbW9kLT5lbWFpbF9yZWdleDokbW9kLT5lbWFpbF9yZWdleF9yZWxheGVkKSwgJHRoaXMtPlZhbHVlKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnZhbGlkYXRlZCA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgICR0aGlzLT52YWxpZGF0aW9uRXJyb3JUZXh0ID0gJG1vZC0+TGFuZygncGxlYXNlX2VudGVyX2FuX2VtYWlsJywkdGhpcy0+TmFtZSk7CiAgICAgICAgICAgICAgICAgICAgfQoJCSAgCSAgICAgICBicmVhazsKCQkgIH0KCQlyZXR1cm4gYXJyYXkoJHRoaXMtPnZhbGlkYXRlZCwgJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQpOwoJfQp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/FromEmailNameField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkZyb21FbWFpbE5hbWVGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCglmdW5jdGlvbiBmYkZyb21FbWFpbE5hbWVGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJiRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkdGhpcy0+VHlwZSA9ICdGcm9tRW1haWxOYW1lRmllbGQnOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoCiAgICAgICAgICAgICk7CgkgICAkdGhpcy0+bW9kaWZpZXNPdGhlckZpZWxkcyA9IHRydWU7Cgl9CgoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJcmV0dXJuICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdmYnJwX18nLiR0aGlzLT5JZCwKCQkJaHRtbHNwZWNpYWxjaGFycygkdGhpcy0+VmFsdWUsIEVOVF9RVU9URVMpLAogICAgICAgICAgIDI1LDEyOCk7Cgl9CgkKCWZ1bmN0aW9uIE1vZGlmeU90aGVyRmllbGRzKCkKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkb3RoZXJzID0gJiR0aGlzLT5mb3JtX3B0ci0+R2V0RmllbGRzKCk7CgkJCgkJZm9yKCRpPTA7JGk8Y291bnQoJG90aGVycyk7JGkrKykKCQkJewoJCQkkcmVwbFZhbCA9ICcnOwoJCQlpZiAoJG90aGVyc1skaV0tPklzRGlzcG9zaXRpb24oKSAmJiBpc19zdWJjbGFzc19vZigkb3RoZXJzWyRpXSwnZmJEaXNwb3NpdGlvbkVtYWlsQmFzZScpKQoJCQkJewoJCQkJJG90aGVyc1skaV0tPlNldE9wdGlvbignZW1haWxfZnJvbV9uYW1lJywkdGhpcy0+VmFsdWUpOwoJCQkJfQoJCQl9CgkJCgl9CgoJZnVuY3Rpb24gU3RhdHVzSW5mbygpCgl7CgkJcmV0dXJuICcnOwoJfQoKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/FromEmailSubjectField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkZyb21FbWFpbFN1YmplY3RGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCglmdW5jdGlvbiBmYkZyb21FbWFpbFN1YmplY3RGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJiRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkdGhpcy0+VHlwZSA9ICdGcm9tRW1haWxTdWJqZWN0RmllbGQnOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoCiAgICAgICAgICAgICk7CgkgICAkdGhpcy0+bW9kaWZpZXNPdGhlckZpZWxkcyA9IHRydWU7Cgl9CgoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJcmV0dXJuICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdmYnJwX18nLiR0aGlzLT5JZCwKCQkJaHRtbHNwZWNpYWxjaGFycygkdGhpcy0+VmFsdWUsIEVOVF9RVU9URVMpLAogICAgICAgICAgIDI1LDEyOCk7Cgl9CgkKCWZ1bmN0aW9uIE1vZGlmeU90aGVyRmllbGRzKCkKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkb3RoZXJzID0gJiR0aGlzLT5mb3JtX3B0ci0+R2V0RmllbGRzKCk7CgkJCgkJZm9yKCRpPTA7JGk8Y291bnQoJG90aGVycyk7JGkrKykKCQkJewoJCQkkcmVwbFZhbCA9ICcnOwoJCQlpZiAoJG90aGVyc1skaV0tPklzRGlzcG9zaXRpb24oKSAmJiBpc19zdWJjbGFzc19vZigkb3RoZXJzWyRpXSwnZmJEaXNwb3NpdGlvbkVtYWlsQmFzZScpKQoJCQkJewoJCQkJJG90aGVyc1skaV0tPlNldE9wdGlvbignZW1haWxfc3ViamVjdCcsJHRoaXMtPlZhbHVlKTsKCQkJCX0KCQkJfQoJCQoJfQoKCWZ1bmN0aW9uIFN0YXR1c0luZm8oKQoJewoJCXJldHVybiAnJzsKCX0KCn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/HiddenField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkhpZGRlbkZpZWxkIGV4dGVuZHMgZmJGaWVsZEJhc2UgCnsKCiAgZnVuY3Rpb24gZmJIaWRkZW5GaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKICB7CiAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICRtb2QgPSAmJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgJHRoaXMtPlR5cGUgPSAnSGlkZGVuRmllbGQnOwogICAgJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwogICAgJHRoaXMtPk5vblJlcXVpcmFibGVGaWVsZCA9IHRydWU7CiAgICAkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoKTsKICAgICR0aGlzLT5IYXNMYWJlbCA9IDA7CiAgICAkdGhpcy0+TmVlZHNEaXYgPSAwOwogICAgJHRoaXMtPnNvcnRhYmxlID0gZmFsc2U7CiAgfQoKCiAgZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCiAgewogICAgJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICBpZiAoJHRoaXMtPkdldE9wdGlvbignc21hcnR5X2V2YWwnLCcwJykgPT0gJzEnKQogICAgICB7CiAgICAgICR0aGlzLT5TZXRTbWFydHlFdmFsKHRydWUpOwogICAgICB9CiAgIGlmICgkdGhpcy0+VmFsdWUgIT09IGZhbHNlKQogICAgICB7CiAgICAgIHJldHVybiAkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdmYnJwX18nLiR0aGlzLT5JZCwKCQkJCSAgICR0aGlzLT5WYWx1ZSk7CgkJfQoJZWxzZQoJICAgewogICAgICByZXR1cm4gJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQsCgkJCQkgICAkdGhpcy0+R2V0T3B0aW9uKCd2YWx1ZScsJycpKTsKICAgICAgfQogIH0KCglmdW5jdGlvbiBQcmVQb3B1bGF0ZUFkbWluRm9ybSgkZm9ybURlc2NyaXB0b3IpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJG1haW4gPSBhcnJheSgKCQkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3ZhbHVlJyksCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X3ZhbHVlJywkdGhpcy0+R2V0T3B0aW9uKCd2YWx1ZScsJycpLDI1LDEyOCkpCgkJKTsKCQkkYWR2ID0gYXJyYXkoCgkJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9zbWFydHlfZXZhbCcpLAoJCQkJJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9zbWFydHlfZXZhbCcsCiAgICAgICAgICAgIAkJJzEnLCR0aGlzLT5HZXRPcHRpb24oJ3NtYXJ0eV9ldmFsJywnMCcpKSkKCQkpOwoJCXJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLCdhZHYnPT4kYWR2KTsKCX0KCgp9Cgo/Pgo=]]></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+bmFtZSA9ICc8bGFiZWwgZm9yPSInLiRpZC4nXycuJHRoaXMtPklkLidfMSI+Jy4kbW9kLT5MYW5nKCdsaW5rX2Rlc3RpbmF0aW9uJykuJzwvbGFiZWw+JzsKCQkkdGhpc0JveC0+dGl0bGUgPSAkbW9kLT5MYW5nKCdsaW5rX2Rlc3RpbmF0aW9uJyk7CgkJJHRoaXNCb3gtPmlucHV0ID0gJHRoaXMtPlRleHRGaWVsZCgkaWQsICdfJy4kdGhpcy0+SWQuJ1tdJywgJHZhbFswXSwnJywnJywnaWQ9IicuJGlkLidfJy4kdGhpcy0+SWQuJ18xIicpOwoJCWFycmF5X3B1c2goJGZpZWxkRGlzcCwgJHRoaXNCb3gpOwoJCSR0aGlzQm94ID0gbmV3IHN0ZENsYXNzKCk7CgkJJHRoaXNCb3gtPm5hbWUgPSAnPGxhYmVsIGZvcj0iJy4kaWQuJ18nLiR0aGlzLT5JZC4nXzIiPicuJG1vZC0+TGFuZygnbGlua19sYWJlbCcpLic8L2xhYmVsPic7CgkJJHRoaXNCb3gtPnRpdGxlID0gJG1vZC0+TGFuZygnbGlua19sYWJlbCcpOwoJCSR0aGlzQm94LT5pbnB1dCA9ICR0aGlzLT5UZXh0RmllbGQoJGlkLCAnXycuJHRoaXMtPklkLidbXScsICR2YWxbMV0sJycsJycsJ2lkPSInLiRpZC4nXycuJHRoaXMtPklkLidfMiInKTsKCQlhcnJheV9wdXNoKCRmaWVsZERpc3AsICR0aGlzQm94KTsJCQkKCQlyZXR1cm4gJGZpZWxkRGlzcDsKCQkKCX0KCglmdW5jdGlvbiBHZXRIdW1hblJlYWRhYmxlVmFsdWUoKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoKCQlpZiAoJHRoaXMtPlZhbHVlID09PSBmYWxzZSB8fCAhIGlzX2FycmF5KCR0aGlzLT5WYWx1ZSkpCgkJCXsKCQkJcmV0dXJuICcnOwoJCQl9CgkJZWxzZQoJCQl7CgkJCXJldHVybiAnPGEgaHJlZj0iJy4kdGhpcy0+VmFsdWVbMF0uJyI+Jy4kdGhpcy0+VmFsdWVbMV0uJzwvYT4nOwoJCQl9CQoJfQoKCglmdW5jdGlvbiBQb3N0UG9wdWxhdGVBZG1pbkZvcm0oJiRtYWluQXJyYXksICYkYWR2QXJyYXkpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkvLyByZW1vdmUgdGhlICJyZXF1aXJlZCIgZmllbGQsIHNpbmNlIHRoaXMgY2FuIG9ubHkgYmUgZG9uZSB2aWEgdmFsaWRhdGlvbgoJCSRyZXFJbmRleCA9IC0xOwoJCWZvciAoJGk9MDskaTxjb3VudCgkbWFpbkFycmF5KTskaSsrKQoJCQl7CgkJCWlmICgkbWFpbkFycmF5WyRpXS0+dGl0bGUgPT0gJG1vZC0+TGFuZygndGl0bGVfZmllbGRfcmVxdWlyZWQnKSkKCQkJCXsKCQkJCSRyZXFJbmRleCA9ICRpOwoJCQkJfQoJCQl9CgkJaWYgKCRyZXFJbmRleCAhPSAtMSkKCQkJewoJCQlhcnJheV9zcGxpY2UoJG1haW5BcnJheSwgJHJlcUluZGV4LDEpOwoJCQl9Cgl9CgoKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkbWFpbiA9IGFycmF5KAogICAgICAgICAgICAgYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZGVmYXVsdF9saW5rJyksJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2RlZmF1bHRfbGluaycsJHRoaXMtPkdldE9wdGlvbignZGVmYXVsdF9saW5rJywnJyksMjUsMTI4KSksCiAgICAgICAgICAgICBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9kZWZhdWx0X2xpbmtfdGl0bGUnKSwkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZGVmYXVsdF9saW5rX3RpdGxlJywkdGhpcy0+R2V0T3B0aW9uKCdkZWZhdWx0X2xpbmtfdGl0bGUnLCcnKSwyNSwxMjgpKQoJCSk7CgkJJGFkdiA9IGFycmF5KAoJCSk7CgkJcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwoJfQoKfQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/classes/MultiselectField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYk11bHRpc2VsZWN0RmllbGQgZXh0ZW5kcyBmYkZpZWxkQmFzZSB7CgoJdmFyICRvcHRpb25Db3VudDsKCXZhciAkb3B0aW9uQWRkOwoKCWZ1bmN0aW9uIGZiTXVsdGlzZWxlY3RGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgICR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgICAgICRtb2QgPSAmJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gJ011bHRpc2VsZWN0RmllbGQnOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+Tm9uUmVxdWlyYWJsZUZpZWxkID0gZmFsc2U7CgkJJHRoaXMtPkhhc0FkZE9wID0gdHJ1ZTsKCQkkdGhpcy0+SGFzRGVsZXRlT3AgPSB0cnVlOwoJCSR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgKICAgICAgICAgICAgKTsKICAgICAgICAkdGhpcy0+b3B0aW9uQWRkID0gMDsKICAgICAgICAkdGhpcy0+c29ydGFibGUgPSBmYWxzZTsKCX0KCglmdW5jdGlvbiBHZXRPcHRpb25BZGRCdXR0b24oKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCXJldHVybiAkbW9kLT5MYW5nKCdhZGRfb3B0aW9ucycpOwoJfQoKCWZ1bmN0aW9uIEdldE9wdGlvbkRlbGV0ZUJ1dHRvbigpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJcmV0dXJuICRtb2QtPkxhbmcoJ2RlbGV0ZV9vcHRpb25zJyk7Cgl9CgoJZnVuY3Rpb24gRG9PcHRpb25BZGQoJiRwYXJhbXMpCgl7CgkJJHRoaXMtPm9wdGlvbkFkZCA9IDI7Cgl9CgoJZnVuY3Rpb24gRG9PcHRpb25EZWxldGUoJiRwYXJhbXMpCgl7CgkJJGRlbGNvdW50ID0gMDsKCQlmb3JlYWNoICgkcGFyYW1zIGFzICR0aGlzS2V5PT4kdGhpc1ZhbCkKCQkJewoJCQlpZiAoc3Vic3RyKCR0aGlzS2V5LDAsOSkgPT0gJ2ZicnBfZGVsXycpCgkJCQl7CgkJCQkkdGhpcy0+UmVtb3ZlT3B0aW9uRWxlbWVudCgnb3B0aW9uX25hbWUnLCAkdGhpc1ZhbCAtICRkZWxjb3VudCk7CgkJCQkkdGhpcy0+UmVtb3ZlT3B0aW9uRWxlbWVudCgnb3B0aW9uX3ZhbHVlJywgJHRoaXNWYWwgLSAkZGVsY291bnQpOwoJCQkJJGRlbGNvdW50Kys7CgkJCQl9CgkJCX0KCX0KCglmdW5jdGlvbiBjb3VudEl0ZW1zKCkKCXsKCQkJJHRtcCA9ICYkdGhpcy0+R2V0T3B0aW9uUmVmKCdvcHRpb25fbmFtZScpOwoJCQlpZiAoaXNfYXJyYXkoJHRtcCkpCgkJCQl7CgkgICAgICAgIAkkdGhpcy0+b3B0aW9uQ291bnQgPSBjb3VudCgkdG1wKTsKCSAgICAgICAgCX0KCSAgICAgICAgZWxzZWlmICgkdG1wICE9PSBmYWxzZSkKCSAgICAgICAgCXsKCSAgICAgICAgCSR0aGlzLT5vcHRpb25Db3VudCA9IDE7CgkgICAgICAgIAl9CgkgICAgICAgIGVsc2UKCSAgICAgICAgCXsKCSAgICAgICAgCSR0aGlzLT5vcHRpb25Db3VudCA9IDA7CgkgICAgICAgIAl9Cgl9CgoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgoJCS8vIHdoeSBhbGwgdGhpcz8gQXNzb2NpYXRpdmUgYXJyYXlzIGFyZSBub3QgZ3VhcmFudGVlZCB0byBwcmVzZXJ2ZQoJCS8vIG9yZGVyLCBleGNlcHQgaW4gImNocm9ub2xvZ2ljYWwiIGNyZWF0aW9uIG9yZGVyLgoJCSRzb3J0ZWQgPWFycmF5KCk7CgkJJHN1YmplY3RzID0gJiR0aGlzLT5HZXRPcHRpb25SZWYoJ29wdGlvbl9uYW1lJyk7CgoJCWlmIChjb3VudCgkc3ViamVjdHMpID4gMSkKCQkJewoJCQlmb3IoJGk9MDskaTxjb3VudCgkc3ViamVjdHMpOyRpKyspCgkJCQl7CgkJCQkkc29ydGVkWyRzdWJqZWN0c1skaV1dPSgkaSsxKTsKCQkJCX0KCQkJfQoJCWVsc2UKCQkJewoJCQkkc29ydGVkWyRzdWJqZWN0c10gPSAnMSc7CgkJCX0KCQlpZiAoJHRoaXMtPlZhbHVlID09PSBmYWxzZSkKCQkJewoJCQkkdmFsID0gYXJyYXkoKTsKCQkJfQoJCWVsc2VpZiAoIWlzX2FycmF5KCR0aGlzLT5WYWx1ZSkpCgkJCXsKCQkJJHZhbCA9IGFycmF5KCR0aGlzLT5WYWx1ZSk7CgkJCX0KCQllbHNlCgkJCXsKCQkJJHZhbCA9ICR0aGlzLT5WYWx1ZTsKCQkJfQoJCXJldHVybiAkbW9kLT5DcmVhdGVJbnB1dFNlbGVjdExpc3QoJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQuJ1tdJywgJHNvcnRlZCwkdmFsLCAkdGhpcy0+R2V0T3B0aW9uKCdsaW5lcycsJzMnKSwKICAgICAgICAgJ2lkPSInLiRpZC4gJ18nLiR0aGlzLT5JZC4nIicpOwoJfQoKCgogICAgZnVuY3Rpb24gU3RhdHVzSW5mbygpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJG9wdCA9ICR0aGlzLT5HZXRPcHRpb24oJ29wdGlvbl9uYW1lJywnJyk7CgkJCgkJaWYgKGlzX2FycmF5KCRvcHQpKQoJCSAgewoJCSAgICAgICRudW0gPSBjb3VudCgkb3B0KTsKCQkgIH0KCQllbHNlaWYgKCRvcHQgIT0gJycpCgkJCXsKCQkJJG51bSA9IDE7CgkJCX0KCQllbHNlCgkJICB7CiAgICAgICAgICAkbnVtID0gMDsKICAgICAgICAgIH0KICAgICAgICAgJHJldD0gJG1vZC0+TGFuZygnb3B0aW9ucycsJG51bSk7CiAgICAgICAgcmV0dXJuICRyZXQ7Cgl9CgkKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCgkJJHRoaXMtPmNvdW50SXRlbXMoKTsKCQlpZiAoJHRoaXMtPm9wdGlvbkFkZCA+IDApCgkJCXsKCQkJJHRoaXMtPm9wdGlvbkNvdW50ICs9ICR0aGlzLT5vcHRpb25BZGQ7CgkJCSR0aGlzLT5vcHRpb25BZGQgPSAwOwoJCQl9CgkJJGRlc3RzID0gJzx0YWJsZSBjbGFzcz0ibW9kdWxlX2ZiX3RhYmxlIj48dHI+PHRoPicuJG1vZC0+TGFuZygndGl0bGVfb3B0aW9uX25hbWUnKS4nPC90aD48dGg+Jy4KCQkJJG1vZC0+TGFuZygndGl0bGVfb3B0aW9uX3ZhbHVlJykuJzwvdGg+PHRoPicuCgkJCSRtb2QtPkxhbmcoJ3RpdGxlX2RlbGV0ZScpLic8L3RoPjwvdHI+JzsKCgoJCWZvciAoJGk9MDskaTwoJHRoaXMtPm9wdGlvbkNvdW50PjE/JHRoaXMtPm9wdGlvbkNvdW50OjEpOyRpKyspCgkJCXsKCQkJJGRlc3RzIC49ICAnPHRyPjx0ZD4nLgogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9vcHRpb25fbmFtZVtdJywkdGhpcy0+R2V0T3B0aW9uRWxlbWVudCgnb3B0aW9uX25hbWUnLCRpKSwyNSwxMjgpLgogICAgICAgICAgICAJCSc8L3RkPjx0ZD4nLgogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9vcHRpb25fdmFsdWVbXScsJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ29wdGlvbl92YWx1ZScsJGkpLDI1LDEyOCkuCiAgICAgICAgICAgIAkJJzwvdGQ+PHRkPicuCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX2RlbF8nLiRpLCAkaSwtMSkuCiAgICAgICAgICAgICAJCSc8L3RkPjwvdHI+JzsKCQkJfQoJCSRkZXN0cyAuPSAnPC90YWJsZT4nOwoJCSRtYWluID0gYXJyYXkoKTsKCQkkYWR2ID0gYXJyYXkoKTsKCQlhcnJheV9wdXNoKCRtYWluLGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2xpbmVzX3RvX3Nob3cnKSwkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfbGluZXMnLCR0aGlzLT5HZXRPcHRpb24oJ2xpbmVzJywnMycpLDEwLDEwKSkpOwoJCWFycmF5X3B1c2goJG1haW4sYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfbXVsdGlzZWxlY3RfZGV0YWlscycpLCRkZXN0cykpOwoJCXJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLCdhZHYnPT4kYWR2KTsKCX0KCglmdW5jdGlvbiBHZXRIdW1hblJlYWRhYmxlVmFsdWUoKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRmb3JtID0gJiR0aGlzLT5mb3JtX3B0cjsKCQkkdmFscyA9ICYkdGhpcy0+R2V0T3B0aW9uUmVmKCdvcHRpb25fdmFsdWUnKTsKCQkKCQlpZiAoJHRoaXMtPkhhc1ZhbHVlKCkpCgkJCXsKCQkJJGZpZWxkUmV0ID0gYXJyYXkoKTsKCQkJaWYgKCEgaXNfYXJyYXkoJHRoaXMtPlZhbHVlKSkKCQkJCXsKCQkJCSR0aGlzLT5WYWx1ZSA9IGFycmF5KCR0aGlzLT5WYWx1ZSk7CgkJCQl9CgkJCWZvcmVhY2ggKCR0aGlzLT5WYWx1ZSBhcyAkdGhpc09uZSkKCQkJCXsKCQkJCWFycmF5X3B1c2goJGZpZWxkUmV0LCR2YWxzWyR0aGlzT25lIC0gMV0pOwoJCQkJfQoJCQlyZXR1cm4gam9pbigkZm9ybS0+R2V0QXR0cignbGlzdF9kZWxpbWl0ZXInLCcsJyksJGZpZWxkUmV0KTsJCQkKCQkJfQoJCWVsc2UKCQkJewoJCQlyZXR1cm4gJG1vZC0+TGFuZygndW5zcGVjaWZpZWQnKTsKCQkJfQkKCX0KCQp9Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/PageBreakField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYlBhZ2VCcmVha0ZpZWxkIGV4dGVuZHMgZmJGaWVsZEJhc2UgewoKCWZ1bmN0aW9uIGZiUGFnZUJyZWFrRmllbGQoJiRmb3JtX3B0ciwgJiRwYXJhbXMpCgl7CiAgICAgICAgJHRoaXMtPmZiRmllbGRCYXNlKCRmb3JtX3B0ciwgJHBhcmFtcyk7CiAgICAgICAgJG1vZCA9ICYkZm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHRoaXMtPlR5cGUgPSAnUGFnZUJyZWFrRmllbGQnOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gZmFsc2U7CgkJJHRoaXMtPlJlcXVpcmVkID0gZmFsc2U7CgkJLy8kdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoJG1vZC0+TGFuZygndmFsaWRhdGlvbl9ub25lJyk9Pidub25lJyk7CgkJJHRoaXMtPlZhbGlkYXRpb25UeXBlcyA9IGFycmF5KCk7CgkJJHRoaXMtPk5vblJlcXVpcmFibGVGaWVsZCA9IHRydWU7CgkJJHRoaXMtPnNvcnRhYmxlID0gZmFsc2U7Cgl9CgoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuX2lkKQoJewoJfQoKCglmdW5jdGlvbiBTdGF0dXNJbmZvKCkKCXsKCQlyZXR1cm4gJyc7Cgl9CgoKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQlyZXR1cm4gYXJyYXkoKTsKCX0KCglmdW5jdGlvbiBQb3N0UG9wdWxhdGVBZG1pbkZvcm0oJiRtYWluQXJyYXksICYkYWR2QXJyYXkpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJLy8gcmVtb3ZlIHRoZSAicmVxdWlyZWQiIGZpZWxkCgkJJHJlcUluZGV4ID0gLTE7CgkJZm9yICgkaT0wOyRpPGNvdW50KCRtYWluQXJyYXkpOyRpKyspCgkJCXsKCQkJaWYgKCRtYWluQXJyYXlbJGldLT50aXRsZSA9PSAkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9yZXF1aXJlZCcpKQoJCQkJewoJCQkJJHJlcUluZGV4ID0gJGk7CgkJCQl9CgkJCX0KCQlpZiAoJHJlcUluZGV4ICE9IC0xKQoJCQl7CgkJCWFycmF5X3NwbGljZSgkbWFpbkFycmF5LCAkcmVxSW5kZXgsMSk7CgkJCX0KCQkvLyByZW1vdmUgdGhlICJoaWRlIG5hbWUiIGZpZWxkCgkJJGhpZGVJbmRleCA9IC0xOwoJCWZvciAoJGk9MDskaTxjb3VudCgkYWR2QXJyYXkpOyRpKyspCgkJCXsKCQkJaWYgKCRhZHZBcnJheVskaV0tPnRpdGxlID09ICRtb2QtPkxhbmcoJ3RpdGxlX2hpZGVfbGFiZWwnKSkKCQkJCXsKCQkJCSRhZHZBcnJheVskaV0tPnRpdGxlID0gJG1vZC0+TGFuZygndGFiX2FkdmFuY2VkJyk7CgkJCQkkYWR2QXJyYXlbJGldLT5pbnB1dCA9ICRtb2QtPkxhbmcoJ3RpdGxlX25vX2FkdmFuY2VkX29wdGlvbnMnKTsKCQkJCX0KCQkJfQoJfQoKCglmdW5jdGlvbiBWYWxpZGF0ZSgpCgl7CgkJcmV0dXJuIGFycmF5KHRydWUsJycpOwoJfQoJCn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/PulldownField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYlB1bGxkb3duRmllbGQgZXh0ZW5kcyBmYkZpZWxkQmFzZSB7CgoJdmFyICRvcHRpb25Db3VudDsKCXZhciAkb3B0aW9uQWRkOwoKICAgIGZ1bmN0aW9uIGFycmF5X3NvcnRfYnlfa2V5KCRpbnB1dCkKCXsKCQlpZiggIWlzX2FycmF5KCRpbnB1dCkgKSByZXR1cm47CgkJJGExID0gYXJyYXkoKTsKCQlmb3JlYWNoKCAkaW5wdXQgYXMgJGsgPT4gJHYgKSB7CgkJCSRhMVskdl0gPSAkazsKCQl9CgkJYXNvcnQoJGExKTsKCQkkYTIgPSBhcnJheSgpOwoJCWZvcmVhY2goICRhMSBhcyAkayA9PiAkdiApIHsKCQkJJGEyWyR2XSA9ICRrOwoJCX0KCQlyZXR1cm4gJGEyOwoJfQoKCWZ1bmN0aW9uIGZiUHVsbGRvd25GaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKCQkkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJiRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkdGhpcy0+VHlwZSA9ICdQdWxsZG93bkZpZWxkJzsKCQkkdGhpcy0+RGlzcGxheUluRm9ybSA9IHRydWU7CgkJJHRoaXMtPkhhc0FkZE9wID0gdHJ1ZTsKCQkkdGhpcy0+SGFzRGVsZXRlT3AgPSB0cnVlOwoJCSR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgKICAgICAgICAgICAgKTsKICAgICAgICAkdGhpcy0+b3B0aW9uQWRkID0gMDsKCX0KCglmdW5jdGlvbiBHZXRPcHRpb25BZGRCdXR0b24oKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCXJldHVybiAkbW9kLT5MYW5nKCdhZGRfb3B0aW9ucycpOwoJfQoKCWZ1bmN0aW9uIEdldE9wdGlvbkRlbGV0ZUJ1dHRvbigpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJcmV0dXJuICRtb2QtPkxhbmcoJ2RlbGV0ZV9vcHRpb25zJyk7Cgl9CgoJZnVuY3Rpb24gRG9PcHRpb25BZGQoJiRwYXJhbXMpCgl7CgkJJHRoaXMtPm9wdGlvbkFkZCA9IDE7Cgl9CgoJZnVuY3Rpb24gRG9PcHRpb25EZWxldGUoJiRwYXJhbXMpCgl7CgkJJGRlbGNvdW50ID0gMDsKCQlmb3JlYWNoICgkcGFyYW1zIGFzICR0aGlzS2V5PT4kdGhpc1ZhbCkKCQkJewoJCQlpZiAoc3Vic3RyKCR0aGlzS2V5LDAsOSkgPT0gJ2ZicnBfZGVsXycpCgkJCQl7CgkJCQkkdGhpcy0+UmVtb3ZlT3B0aW9uRWxlbWVudCgnb3B0aW9uX25hbWUnLCAkdGhpc1ZhbCAtICRkZWxjb3VudCk7CgkJCQkkdGhpcy0+UmVtb3ZlT3B0aW9uRWxlbWVudCgnb3B0aW9uX3ZhbHVlJywgJHRoaXNWYWwgLSAkZGVsY291bnQpOwoJCQkJJGRlbGNvdW50Kys7CgkJCQl9CgkJCX0KCX0KCglmdW5jdGlvbiBjb3VudEl0ZW1zKCkKCXsKCQkJJHRtcCA9ICYkdGhpcy0+R2V0T3B0aW9uUmVmKCdvcHRpb25fbmFtZScpOwoJCQlpZiAoaXNfYXJyYXkoJHRtcCkpCgkJCQl7CgkgICAgICAgIAkkdGhpcy0+b3B0aW9uQ291bnQgPSBjb3VudCgkdG1wKTsKCSAgICAgICAgCX0KCSAgICAgICAgZWxzZWlmICgkdG1wICE9PSBmYWxzZSkKCSAgICAgICAgCXsKCSAgICAgICAgCSR0aGlzLT5vcHRpb25Db3VudCA9IDE7CgkgICAgICAgIAl9CgkgICAgICAgIGVsc2UKCSAgICAgICAgCXsKCSAgICAgICAgCSR0aGlzLT5vcHRpb25Db3VudCA9IDA7CgkgICAgICAgIAl9Cgl9CgoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgoJCS8vIHdoeSBhbGwgdGhpcz8gQXNzb2NpYXRpdmUgYXJyYXlzIGFyZSBub3QgZ3VhcmFudGVlZCB0byBwcmVzZXJ2ZQoJCS8vIG9yZGVyLCBleGNlcHQgaW4gImNocm9ub2xvZ2ljYWwiIGNyZWF0aW9uIG9yZGVyLgoJCSRzb3J0ZWQgPWFycmF5KCk7CgkJJHN1YmplY3RzID0gJiR0aGlzLT5HZXRPcHRpb25SZWYoJ29wdGlvbl9uYW1lJyk7CgkJaWYgKGNvdW50KCRzdWJqZWN0cykgPiAxKSB7CgkJCWZvcigkaT0wOyRpPGNvdW50KCRzdWJqZWN0cyk7JGkrKykgewoJCQkJJHNvcnRlZFskc3ViamVjdHNbJGldXT0oJGkrMSk7CgkJCX0KCQkJaWYoICR0aGlzLT5HZXRPcHRpb24oJ3NvcnQnKSA9PSAnMScgKSB7CgkJCQlrc29ydCgkc29ydGVkKTsKCQkJfQoJCX0KCQllbHNlIHsKCQkJJHNvcnRlZFskc3ViamVjdHNdID0gJzEnOwoJCX0KCgkJaWYgKCR0aGlzLT5HZXRPcHRpb24oJ3NlbGVjdF9vbmUnLCcnKSAhPSAnJykgewoJCQkvLyRzb3J0ZWQgPSBhcnJheV9tZXJnZShhcnJheSgnICcuJHRoaXMtPkdldE9wdGlvbignc2VsZWN0X29uZScsJycpPT4nJyksJHNvcnRlZCk7CgkJCSRzb3J0ZWQgPSBhcnJheSgnICcuJHRoaXMtPkdldE9wdGlvbignc2VsZWN0X29uZScsJycpPT4nJykgKyAkc29ydGVkOwoJCX0KCQllbHNlIHsKCQkJLy8kc29ydGVkID0gYXJyYXlfbWVyZ2UoYXJyYXkoJyAnLiRtb2QtPkxhbmcoJ3NlbGVjdF9vbmUnKT0+JycpLCRzb3J0ZWQpOwoJCQkkc29ydGVkID0gYXJyYXkoJyAnLiRtb2QtPkxhbmcoJ3NlbGVjdF9vbmUnKT0+JycpICsgJHNvcnRlZDsKCQl9CgkJcmV0dXJuICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQsICRzb3J0ZWQsIC0xLCAkdGhpcy0+VmFsdWUsICdpZD0iJy4kaWQuICdfJy4kdGhpcy0+SWQuJyInKTsKCX0KCgoKICAgIGZ1bmN0aW9uIFN0YXR1c0luZm8oKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRvcHQgPSAkdGhpcy0+R2V0T3B0aW9uKCdvcHRpb25fbmFtZScsJycpOwoJCQoJCWlmIChpc19hcnJheSgkb3B0KSkKCQkgIHsKCQkgICAgICAkbnVtID0gY291bnQoJG9wdCk7CgkJICB9CgkJZWxzZWlmICgkb3B0ICE9ICcnKQoJCQl7CgkJCSRudW0gPSAxOwoJCQl9CgkJZWxzZQoJCSAgewogICAgICAgICAgJG51bSA9IDA7CiAgICAgICAgICB9CiAgICAgICAgICRyZXQ9ICRtb2QtPkxhbmcoJ29wdGlvbnMnLCRudW0pOwogICAgICAgIHJldHVybiAkcmV0OwoJfQoJCglmdW5jdGlvbiBQcmVQb3B1bGF0ZUFkbWluRm9ybSgkZm9ybURlc2NyaXB0b3IpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgoJCSR0aGlzLT5jb3VudEl0ZW1zKCk7CgkJaWYgKCR0aGlzLT5vcHRpb25BZGQgPiAwKQoJCQl7CgkJCSR0aGlzLT5vcHRpb25Db3VudCArPSAkdGhpcy0+b3B0aW9uQWRkOwoJCQkkdGhpcy0+b3B0aW9uQWRkID0gMDsKCQkJfQoJCSRkZXN0cyA9ICc8dGFibGUgY2xhc3M9Im1vZHVsZV9mYl90YWJsZSI+PHRyPjx0aD4nLiRtb2QtPkxhbmcoJ3RpdGxlX29wdGlvbl9uYW1lJykuJzwvdGg+PHRoPicuCgkJCSRtb2QtPkxhbmcoJ3RpdGxlX29wdGlvbl92YWx1ZScpLic8L3RoPjx0aD4nLgoJCQkkbW9kLT5MYW5nKCd0aXRsZV9kZWxldGUnKS4nPC90aD48L3RyPic7CgoKCQlmb3IgKCRpPTA7JGk8KCR0aGlzLT5vcHRpb25Db3VudD4xPyR0aGlzLT5vcHRpb25Db3VudDoxKTskaSsrKQoJCQl7CgkJCSRkZXN0cyAuPSAgJzx0cj48dGQ+Jy4KICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfb3B0aW9uX25hbWVbXScsJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ29wdGlvbl9uYW1lJywkaSksMjUsMTI4KS4KICAgICAgICAgICAgCQknPC90ZD48dGQ+Jy4KICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfb3B0aW9uX3ZhbHVlW10nLCR0aGlzLT5HZXRPcHRpb25FbGVtZW50KCdvcHRpb25fdmFsdWUnLCRpKSwyNSwxMjgpLgogICAgICAgICAgICAJCSc8L3RkPjx0ZD4nLgogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9kZWxfJy4kaSwgJGksLTEpLgogICAgICAgICAgICAgCQknPC90ZD48L3RyPic7CgkJCX0KCQkkZGVzdHMgLj0gJzwvdGFibGU+JzsKCQkkbWFpbiA9IGFycmF5KCk7CgkJJGFkdiA9IGFycmF5KCk7CgkJJG1haW5bXSA9IGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3NlbGVjdF9vbmVfbWVzc2FnZScpLAoJCQkJCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfc2VsZWN0X29uZScsCgkJCQkJCQkJCQkJICAkdGhpcy0+R2V0T3B0aW9uKCdzZWxlY3Rfb25lJywkbW9kLT5MYW5nKCdzZWxlY3Rfb25lJykpLDI1LDEyOCkpOwoJCSRtYWluW10gPSBhcnJheSgkbW9kLT5MYW5nKCdzb3J0X29wdGlvbnMnKSwKCQkJCQkJJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkZm9ybURlc2NyaXB0b3IsJ2ZicnBfb3B0X3NvcnQnLAoJCQkJCQkJCQkJCQkgIGFycmF5KCdZZXMnPT4xLCdObyc9PjApLC0xLAoJCQkJCQkJCQkJCQkgICR0aGlzLT5HZXRPcHRpb24oJ3NvcnQnLDApKSk7CgkJYXJyYXlfcHVzaCgkbWFpbixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9wdWxsZG93bl9kZXRhaWxzJyksJGRlc3RzKSk7CgkJcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwoJfQoKCWZ1bmN0aW9uIFBvc3RQb3B1bGF0ZUFkbWluRm9ybSgmJG1haW5BcnJheSwgJiRhZHZBcnJheSkKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQlpZiAoY291bnQoJGFkdkFycmF5KSA9PSAwKQoJCQl7CgkJCSRhZHZBcnJheVswXS0+dGl0bGUgPSAkbW9kLT5MYW5nKCd0YWJfYWR2YW5jZWQnKTsKCQkJJGFkdkFycmF5WzBdLT5pbnB1dCA9ICRtb2QtPkxhbmcoJ3RpdGxlX25vX2FkdmFuY2VkX29wdGlvbnMnKTsKCQkJfQoJfQoKCWZ1bmN0aW9uIEdldEh1bWFuUmVhZGFibGVWYWx1ZSgpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJaWYgKCR0aGlzLT5IYXNWYWx1ZSgpKQoJCQl7CgkJCXJldHVybiAkdGhpcy0+R2V0T3B0aW9uRWxlbWVudCgnb3B0aW9uX3ZhbHVlJywoJHRoaXMtPlZhbHVlLTEpKTsKCQkJfQoJCWVsc2UKCQkJewoJCQlyZXR1cm4gJG1vZC0+TGFuZygndW5zcGVjaWZpZWQnKTsKCQkJfQkKCX0KCQp9Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/RadioGroupField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYlJhZGlvR3JvdXBGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIAp7CgogIHZhciAkb3B0aW9uQ291bnQ7CiAgdmFyICRvcHRpb25BZGQ7CgkKICBmdW5jdGlvbiBmYlJhZGlvR3JvdXBGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKICB7CiAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICRtb2QgPSAmJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgJHRoaXMtPlR5cGUgPSAnUmFkaW9Hcm91cEZpZWxkJzsKICAgICR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKICAgICR0aGlzLT5IYXNBZGRPcCA9IHRydWU7CiAgICAkdGhpcy0+SGFzRGVsZXRlT3AgPSB0cnVlOwogICAgJHRoaXMtPk5vblJlcXVpcmFibGVGaWVsZCA9IHRydWU7CiAgICAkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoCiAgICAgICAgICAgICk7CiAgICAkdGhpcy0+b3B0aW9uQWRkID0gMDsKICAgICR0aGlzLT5oYXNNdWx0aXBsZUZvcm1Db21wb25lbnRzID0gdHJ1ZTsKCiAgfQoKICBmdW5jdGlvbiBjb3VudEJveGVzKCkKICB7CiAgICAkdG1wID0gJiR0aGlzLT5HZXRPcHRpb25SZWYoJ2J1dHRvbl9uYW1lJyk7CiAgICBpZiAoaXNfYXJyYXkoJHRtcCkpCiAgICAgIHsKCSR0aGlzLT5vcHRpb25Db3VudCA9IGNvdW50KCR0bXApOwogICAgICB9CiAgICBlbHNlaWYgKCR0bXAgIT09IGZhbHNlKQogICAgICB7CgkkdGhpcy0+b3B0aW9uQ291bnQgPSAxOwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCSR0aGlzLT5vcHRpb25Db3VudCA9IDA7CiAgICAgIH0KICB9CgogIGZ1bmN0aW9uIFN0YXR1c0luZm8oKQogIHsKICAgICRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgJHRoaXMtPmNvdW50Qm94ZXMoKTsKICAgICRyZXQgPSAkbW9kLT5MYW5nKCdvcHRpb25zJywkdGhpcy0+b3B0aW9uQ291bnQpOwogICAgaWYgKHN0cmxlbigkdGhpcy0+VmFsaWRhdGlvblR5cGUpPjApCiAgICAgIHsKCSRyZXQgLj0gIiwgIi5hcnJheV9zZWFyY2goJHRoaXMtPlZhbGlkYXRpb25UeXBlLCR0aGlzLT5WYWxpZGF0aW9uVHlwZXMpOwogICAgICB9CiAgICByZXR1cm4gJHJldDsKICB9CgogIGZ1bmN0aW9uIEdldE9wdGlvbkFkZEJ1dHRvbigpCiAgewogICAgJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICByZXR1cm4gJG1vZC0+TGFuZygnYWRkX29wdGlvbnMnKTsKICB9CgogIGZ1bmN0aW9uIEdldE9wdGlvbkRlbGV0ZUJ1dHRvbigpCiAgewogICAgJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICByZXR1cm4gJG1vZC0+TGFuZygnZGVsZXRlX29wdGlvbnMnKTsKICB9CgogIGZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQogIHsKICAgICRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgJG5hbWVzID0gJiR0aGlzLT5HZXRPcHRpb25SZWYoJ2J1dHRvbl9uYW1lJyk7CiAgICAkaXNfc2V0ID0gJiR0aGlzLT5HZXRPcHRpb25SZWYoJ2J1dHRvbl9pc19zZXQnKTsKICAgICRmaWVsZERpc3AgPSBhcnJheSgpOwogICAgZm9yICgkaT0wOyRpPGNvdW50KCRuYW1lcyk7JGkrKykKICAgICAgewoJJGxhYmVsID0gJyc7CgkkdGhpc0JveCA9IG5ldyBzdGRDbGFzcygpOwoJaWYgKHN0cmxlbigkbmFtZXNbJGldKSA+IDApCgkgIHsKCSAgICAkdGhpc0JveC0+bmFtZSA9ICc8bGFiZWwgZm9yPSInLiRpZC4nZmJycF9fJy4kdGhpcy0+SWQuJ18nLiRpLiciPicuJG5hbWVzWyRpXS4nPC9sYWJlbD4nOwoJICAgICR0aGlzQm94LT50aXRsZSA9ICRuYW1lc1skaV07CgkgIH0KCSRjaGVja192YWwgPSBmYWxzZTsKCWlmICgkdGhpcy0+VmFsdWUgIT09IGZhbHNlKQoJICB7CgkgICAgJGNoZWNrX3ZhbCA9ICR0aGlzLT5GaW5kQXJyYXlWYWx1ZSgkaSsxKTsKCSAgfQoJZWxzZQoJICB7CgkgICAgaWYgKGlzc2V0KCRpc19zZXRbJGldKSAmJiAkaXNfc2V0WyRpXSA9PSAneScpCgkgICAgICB7CgkJJGNoZWNrX3ZhbCA9IHRydWU7CgkgICAgICB9CQkJCQoJICB9CgkkdGhpc0JveC0+aW5wdXQgPSAnPGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSInLiRpZC4nZmJycF9fJy4kdGhpcy0+SWQuJyIgdmFsdWU9IicuKCRpKzEpLiciJzsKCWlmICgkY2hlY2tfdmFsKQoJICB7CgkgICAgJHRoaXNCb3gtPmlucHV0IC49ICcgY2hlY2tlZD0iY2hlY2tlZCInOwoJICB9CgkkdGhpc0JveC0+aW5wdXQgLj0gJyBpZD0iJy4kaWQuICdmYnJwX18nLiR0aGlzLT5JZC4nXycuJGkuJyIgLz4nOwoJYXJyYXlfcHVzaCgkZmllbGREaXNwLCAkdGhpc0JveCk7CiAgICAgIH0KICAgIHJldHVybiAkZmllbGREaXNwOwogIH0KCiAgZnVuY3Rpb24gR2V0SHVtYW5SZWFkYWJsZVZhbHVlKCkKICB7CiAgICAkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgIGlmICgkdGhpcy0+SGFzVmFsdWUoKSkKICAgICAgewoJICAgcmV0dXJuICR0aGlzLT5HZXRPcHRpb25FbGVtZW50KCdidXR0b25fY2hlY2tlZCcsKCR0aGlzLT5WYWx1ZSAtIDEpKTsKICAgICAgfQogICAgZWxzZQogICAgICB7CgkgICByZXR1cm4gJHRoaXMtPmZvcm1fcHRyLT5HZXRBdHRyKCd1bnNwZWNpZmllZCcsJG1vZC0+TGFuZygndW5zcGVjaWZpZWQnKSk7CiAgICAgIH0JCiAgfQoKCiAgZnVuY3Rpb24gRG9PcHRpb25BZGQoJiRwYXJhbXMpCiAgewogICAgJHRoaXMtPm9wdGlvbkFkZCA9IDE7CiAgfQoKICBmdW5jdGlvbiBEb09wdGlvbkRlbGV0ZSgmJHBhcmFtcykKICB7CiAgICAkZGVsY291bnQgPSAwOwogICAgZm9yZWFjaCAoJHBhcmFtcyBhcyAkdGhpc0tleT0+JHRoaXNWYWwpCiAgICAgIHsKCWlmIChzdWJzdHIoJHRoaXNLZXksMCw5KSA9PSAnZmJycF9kZWxfJykKCSAgewoJICAgICR0aGlzLT5SZW1vdmVPcHRpb25FbGVtZW50KCdidXR0b25fbmFtZScsICR0aGlzVmFsIC0gJGRlbGNvdW50KTsKCSAgICAkdGhpcy0+UmVtb3ZlT3B0aW9uRWxlbWVudCgnYnV0dG9uX2NoZWNrZWQnLCAkdGhpc1ZhbCAtICRkZWxjb3VudCk7CgkgICAgJHRoaXMtPlJlbW92ZU9wdGlvbkVsZW1lbnQoJ2J1dHRvbl9pc19zZXQnLCAkdGhpc1ZhbCAtICRkZWxjb3VudCk7CgkgICAgJGRlbGNvdW50Kys7CgkgIH0KICAgICAgfQogIH0KCgogIGZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKICB7CiAgICAkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICR5ZXNObyA9IGFycmF5KCRtb2QtPkxhbmcoJ25vJyk9PiduJywkbW9kLT5MYW5nKCd5ZXMnKT0+J3knKTsKCiAgICAkdGhpcy0+Y291bnRCb3hlcygpOwogICAgaWYgKCR0aGlzLT5vcHRpb25BZGQgPiAwKQogICAgICB7CgkkdGhpcy0+b3B0aW9uQ291bnQgKz0gJHRoaXMtPm9wdGlvbkFkZDsKCSR0aGlzLT5vcHRpb25BZGQgPSAwOwogICAgICB9CiAgICAkYm94ZXMgPSAnPHRhYmxlIGNsYXNzPSJtb2R1bGVfZmJfdGFibGUiPjx0cj48dGg+Jy4kbW9kLT5MYW5nKCd0aXRsZV9yYWRpb19sYWJlbCcpLic8L3RoPjx0aD4nLgogICAgICAkbW9kLT5MYW5nKCd0aXRsZV9jaGVja2VkX3ZhbHVlJykuJzwvdGg+PHRoPicuCiAgICAgICRtb2QtPkxhbmcoJ3RpdGxlX2RlZmF1bHRfc2V0JykuJzwvdGg+PHRoPicuCiAgICAgICRtb2QtPkxhbmcoJ3RpdGxlX2RlbGV0ZScpLgogICAgICAnPC90aD48L3RyPic7CgoKICAgIGZvciAoJGk9MDskaTwoJHRoaXMtPm9wdGlvbkNvdW50PjE/JHRoaXMtPm9wdGlvbkNvdW50OjEpOyRpKyspCiAgICAgIHsKCSRib3hlcyAuPSAnPHRyPjx0ZD4nLgoJICAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfYnV0dG9uX25hbWVbXScsJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ2J1dHRvbl9uYW1lJywkaSksMjUsMTI4KS4KCSAgJzwvdGQ+PHRkPicuCgkgICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9idXR0b25fY2hlY2tlZFtdJywkdGhpcy0+R2V0T3B0aW9uRWxlbWVudCgnYnV0dG9uX2NoZWNrZWQnLCRpKSwyNSwxMjgpLgoJICAnPC90ZD48dGQ+Jy4KCSAgJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9idXR0b25faXNfc2V0W10nLCAkeWVzTm8sIC0xLCAkdGhpcy0+R2V0T3B0aW9uRWxlbWVudCgnYnV0dG9uX2lzX3NldCcsJGkpKS4KCSAgJzwvdGQ+PHRkPicuCgkgICRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9kZWxfJy4kaSwgJGksLTEpLgoJICAnPC90ZD48L3RyPic7CiAgICAgIH0KICAgICRib3hlcyAuPSAnPC90YWJsZT4nOwogICAgJG1haW4gPSBhcnJheSgKCQkgIGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3JhZGlvZ3JvdXBfZGV0YWlscycpLCRib3hlcykKCQkgICk7CiAgICAkYWR2ID0gYXJyYXkoKTsKICAgIHJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLCdhZHYnPT4kYWR2KTsKICB9CgogIGZ1bmN0aW9uIFBvc3RQb3B1bGF0ZUFkbWluRm9ybSgmJG1haW5BcnJheSwgJiRhZHZBcnJheSkKICB7CiAgICAkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgIC8vIHJlbW92ZSB0aGUgInJlcXVpcmVkIiBmaWVsZCwgc2luY2UgdGhpcyBjYW4gb25seSBiZSBkb25lIHZpYSB2YWxpZGF0aW9uCiAgICAkcmVxSW5kZXggPSAtMTsKICAgIGZvciAoJGk9MDskaTxjb3VudCgkbWFpbkFycmF5KTskaSsrKQogICAgICB7CglpZiAoJG1haW5BcnJheVskaV0tPnRpdGxlID09ICRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkJykpCgkgIHsKCSAgICAkcmVxSW5kZXggPSAkaTsKCSAgfQogICAgICB9CiAgICBpZiAoJHJlcUluZGV4ICE9IC0xKQogICAgICB7CglhcnJheV9zcGxpY2UoJG1haW5BcnJheSwgJHJlcUluZGV4LDEpOwogICAgICB9CiAgfQoKCiAgZnVuY3Rpb24gUG9zdEFkbWluU3VibWl0Q2xlYW51cCgpCiAgewogICAgJG5hbWVzID0gJiR0aGlzLT5HZXRPcHRpb25SZWYoJ2J1dHRvbl9uYW1lJyk7CiAgICAkY2hlY2tlZCA9ICYkdGhpcy0+R2V0T3B0aW9uUmVmKCdidXR0b25fY2hlY2tlZCcpOwogICAgZm9yICgkaT0wOyRpPGNvdW50KCRuYW1lcyk7JGkrKykKICAgICAgewoJaWYgKCRuYW1lc1skaV0gPT0gJycgJiYgJGNoZWNrZWRbJGldID09ICcnICkKCSAgewoJICAgICR0aGlzLT5SZW1vdmVPcHRpb25FbGVtZW50KCdidXR0b25fbmFtZScsICRpKTsKCSAgICAkdGhpcy0+UmVtb3ZlT3B0aW9uRWxlbWVudCgnYnV0dG9uX2NoZWNrZWQnLCAkaSk7CgkgICAgJHRoaXMtPlJlbW92ZU9wdGlvbkVsZW1lbnQoJ2J1dHRvbl9pc19zZXQnLCAkaSk7CgkgICAgJGktLTsKCSAgfQogICAgICB9CiAgICAkdGhpcy0+Y291bnRCb3hlcygpOwogIH0KfQoKPz4K]]></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+U2V0VmFsdWUoJHRoaXMtPkdldE9wdGlvbignZGVmYXVsdCcsJycpKTsKCQkgIH0KCgkJcmV0dXJuICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQsICR0aGlzLT5TdGF0ZXMsIC0xLCAkdGhpcy0+VmFsdWUsJ2lkPSInLiRpZC4gJ18nLiR0aGlzLT5JZC4nIicpOwoJfQoKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQlrc29ydCgkdGhpcy0+U3RhdGVzKTsKCgkJJG1haW4gPSBhcnJheSgKCQkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfc2VsZWN0X2RlZmF1bHRfc3RhdGUnKSwKICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2RlZmF1bHQnLAogICAgICAgICAgICAJCSR0aGlzLT5TdGF0ZXMsIC0xLCAkdGhpcy0+R2V0T3B0aW9uKCdkZWZhdWx0JywnJykpKSwKCQkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfc2VsZWN0X29uZV9tZXNzYWdlJyksCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X3NlbGVjdF9vbmUnLAogICAgICAgICAgICAJCSR0aGlzLT5HZXRPcHRpb24oJ3NlbGVjdF9vbmUnLCRtb2QtPkxhbmcoJ3NlbGVjdF9vbmUnKSkpKQoJCSk7CgkJcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sYXJyYXkoKSk7Cgl9CgoKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/StaticTextField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYlN0YXRpY1RleHRGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCglmdW5jdGlvbiBmYlN0YXRpY1RleHRGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJiRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkdGhpcy0+VHlwZSA9ICdTdGF0aWNUZXh0RmllbGQnOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+RGlzcGxheUluU3VibWlzc2lvbiA9IGZhbHNlOwoJCSR0aGlzLT5Ob25SZXF1aXJhYmxlRmllbGQgPSB0cnVlOwoJCSR0aGlzLT5IYXNMYWJlbCA9IDA7CgkJJHRoaXMtPlZhbGlkYXRpb25UeXBlcyA9IGFycmF5KCk7Cgl9CgoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCgl7CiAgICAgIGlmICgkdGhpcy0+R2V0T3B0aW9uKCdzbWFydHlfZXZhbCcsJzAnKSA9PSAnMScpCiAgICAgICAgIHsKICAgICAgICAgJHRoaXMtPlNldFNtYXJ0eUV2YWwodHJ1ZSk7CiAgICAgICAgIH0KCQlyZXR1cm4gJHRoaXMtPkdldE9wdGlvbigndGV4dCcsJycpOwoJfQoKCWZ1bmN0aW9uIFN0YXR1c0luZm8oKQoJewoJCSByZXR1cm4gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyLT5MYW5nKCd0ZXh0X2xlbmd0aCcsc3RybGVuKCR0aGlzLT5HZXRPcHRpb24oJ3RleHQnLCcnKSkpOwoJfQoKCWZ1bmN0aW9uIEdldEh1bWFuUmVhZGFibGVWYWx1ZSgpCgl7CgkJcmV0dXJuICdbc3RhdGljIHRleHQgZmllbGRdJzsKCX0KCQoJZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRtYWluID0gYXJyYXkoCgkJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV90ZXh0JyksCgkJCQkkbW9kLT5DcmVhdGVUZXh0QXJlYSgoZ2V0X3ByZWZlcmVuY2UoZ2V0X3VzZXJpZCgpLCAndXNlX3d5c2l3eWcnKT09JzEnKSwgJGZvcm1EZXNjcmlwdG9yLCAgJHRoaXMtPkdldE9wdGlvbigndGV4dCcsJycpLCAnZmJycF9vcHRfdGV4dCcsJ3BhZ2VoZWFkdGFncycpKQoJCSk7CgkJJGFkdiA9IGFycmF5KAoJCQkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfc21hcnR5X2V2YWwnKSwKCQkJCSRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfc21hcnR5X2V2YWwnLAogICAgICAgICAgICAJCScxJywkdGhpcy0+R2V0T3B0aW9uKCdzbWFydHlfZXZhbCcsJzAnKSkpCgkJKTsKCQlyZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7Cgl9Cgp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/SystemLinkField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYlN5c3RlbUxpbmtGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCglmdW5jdGlvbiBmYlN5c3RlbUxpbmtGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJiRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkdGhpcy0+VHlwZSA9ICAnU3lzdGVtTGlua0ZpZWxkJzsKCQkkdGhpcy0+RGlzcGxheUluRm9ybSA9IHRydWU7CgkJJHRoaXMtPk5vblJlcXVpcmFibGVGaWVsZCA9IHRydWU7CgkJJHRoaXMtPlJlcXVpcmVkID0gZmFsc2U7CgkJJHRoaXMtPlZhbGlkYXRpb25UeXBlcyA9IGFycmF5KAogICAgICAgICAgICAkbW9kLT5MYW5nKCd2YWxpZGF0aW9uX25vbmUnKT0+J25vbmUnCiAgICAgICAgICAgICk7CiAgICAgICAgJHRoaXMtPmhhc011bHRpcGxlRm9ybUNvbXBvbmVudHMgPSB0cnVlOwogICAgICAgICR0aGlzLT5zb3J0YWJsZSA9IGZhbHNlOwoJfQoKCWZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQoJewoJCSR0aGlzTGluayA9IG5ldyBzdGRDbGFzcygpOwoJCWdsb2JhbCAkZ0NtczsKCQlpZiAoJHRoaXMtPkdldE9wdGlvbignYXV0b19saW5rJywnMCcpID09ICcxJykKCQkJewoJCQkkcGFnZWluZm8gPSAkZ0Ntcy0+dmFyaWFibGVzWydwYWdlaW5mbyddOwoJCQkkdGhpc0xpbmstPmlucHV0ID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyLT5DcmVhdGVDb250ZW50TGluaygkcGFnZWluZm8tPmNvbnRlbnRfaWQsICRwYWdlaW5mby0+Y29udGVudF90aXRsZSk7CgkJCSR0aGlzTGluay0+bmFtZSA9ICRwYWdlaW5mby0+Y29udGVudF90aXRsZTsKCQkJJHRoaXNMaW5rLT50aXRsZSA9ICRwYWdlaW5mby0+Y29udGVudF90aXRsZTsKCQkJfQoJCWVsc2UKCQkJewoJCQkkY29udGVudG9wcyA9JiAkZ0Ntcy0+R2V0Q29udGVudE9wZXJhdGlvbnMoKTsKICAgIAkJJGNvYmogPSAkY29udGVudG9wcy0+TG9hZENvbnRlbnRGcm9tSWQoJHRoaXMtPkdldE9wdGlvbigndGFyZ2V0X3BhZ2UnLCcwJykpOwoJCQkkdGhpc0xpbmstPmlucHV0ID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyLT5DcmVhdGVDb250ZW50TGluaygkY29iai0+SWQoKSwgJGNvYmotPk5hbWUoKSk7CgkJCSR0aGlzTGluay0+bmFtZSA9ICRjb2JqLT5OYW1lKCk7CgkJCSR0aGlzTGluay0+dGl0bGUgPSAkY29iai0+TmFtZSgpOwoJCQl9CgkJcmV0dXJuIGFycmF5KCR0aGlzTGluayk7Cgl9CgoJZnVuY3Rpb24gR2V0SHVtYW5SZWFkYWJsZVZhbHVlKCkKCXsKCQlnbG9iYWwgJGdDbXM7CgkJaWYgKCR0aGlzLT5HZXRPcHRpb24oJ2F1dG9fbGluaycsJzAnKSA9PSAnMScpCgkJCXsKCQkJJHBhZ2VpbmZvID0gJGdDbXMtPnZhcmlhYmxlc1sncGFnZWluZm8nXTsKCQkJcmV0dXJuICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0ci0+Q3JlYXRlQ29udGVudExpbmsoJHBhZ2VpbmZvLT5jb250ZW50X2lkLCAkcGFnZWluZm8tPmNvbnRlbnRfdGl0bGUpOwoJCQl9CgkJZWxzZQoJCQl7CgkJCSRjb250ZW50b3BzID0mICRnQ21zLT5HZXRDb250ZW50T3BlcmF0aW9ucygpOwogICAgCQkkY29iaiA9ICRjb250ZW50b3BzLT5Mb2FkQ29udGVudEZyb21JZCgkdGhpcy0+R2V0T3B0aW9uKCd0YXJnZXRfcGFnZScsJzAnKSk7CgkJCXJldHVybiAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHItPkNyZWF0ZUNvbnRlbnRMaW5rKCRjb2JqLT5JZCgpLCAkY29iai0+TmFtZSgpKTsKCQkJfQoJfQoKCglmdW5jdGlvbiBQb3N0UG9wdWxhdGVBZG1pbkZvcm0oJiRtYWluQXJyYXksICYkYWR2QXJyYXkpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkvLyByZW1vdmUgdGhlICJyZXF1aXJlZCIgZmllbGQsIHNpbmNlIHRoaXMgY2FuIG9ubHkgYmUgZG9uZSB2aWEgdmFsaWRhdGlvbgoJCSRyZXFJbmRleCA9IC0xOwoJCWZvciAoJGk9MDskaTxjb3VudCgkbWFpbkFycmF5KTskaSsrKQoJCQl7CgkJCWlmICgkbWFpbkFycmF5WyRpXS0+dGl0bGUgPT0gJG1vZC0+TGFuZygndGl0bGVfZmllbGRfcmVxdWlyZWQnKSkKCQkJCXsKCQkJCSRyZXFJbmRleCA9ICRpOwoJCQkJfQoJCQl9CgkJaWYgKCRyZXFJbmRleCAhPSAtMSkKCQkJewoJCQlhcnJheV9zcGxpY2UoJG1haW5BcnJheSwgJHJlcUluZGV4LDEpOwoJCQl9Cgl9CgoKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgIAlnbG9iYWwgJGdDbXM7CiAgICAJJGNvbnRlbnRvcHMgPSYgJGdDbXMtPkdldENvbnRlbnRPcGVyYXRpb25zKCk7CgoJCSRtYWluID0gYXJyYXkoCgkJIAkJIGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2xpbmtfYXV0b3BvcHVsYXRlJyksJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9hdXRvX2xpbmsnLAogICAgICAgICAgICAJCScxJywkdGhpcy0+R2V0T3B0aW9uKCdhdXRvX2xpbmsnLCcwJykpLiRtb2QtPkxhbmcoJ3RpdGxlX2xpbmtfYXV0b3BvcHVsYXRlX2hlbHAnKSksCiAgICAgICAgICAgICBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9saW5rX3RvX3NpdGVwYWdlJyksCgkJCQkgCSRjb250ZW50b3BzLT5DcmVhdGVIaWVyYXJjaHlEcm9wZG93bignJywkdGhpcy0+R2V0T3B0aW9uKCd0YXJnZXRfcGFnZScsJycpLCAkZm9ybURlc2NyaXB0b3IuJ2ZicnBfb3B0X3RhcmdldF9wYWdlJykpCgkJKTsKCQkkYWR2ID0gYXJyYXkoCgkJKTsKCQlyZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7Cgl9Cgp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/TextAreaField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlndGggKGMpMjAwNiBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiAgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKKi8KCmNsYXNzIGZiVGV4dEFyZWFGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCglmdW5jdGlvbiBmYlRleHRBcmVhRmllbGQoJiRmb3JtX3B0ciwgJiRwYXJhbXMpCgl7CiAgICAgICR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwoJCSRtb2QgPSAmJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gJ1RleHRBcmVhRmllbGQnOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25fbm9uZScpPT4nbm9uZScsCiAgICAgICAgICAgICk7CgoJfQoKCWZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQoJeyAgICAgICAgICAgIAoJICAgJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAgICByZXR1cm4gJG1vZC0+Q3JlYXRlVGV4dEFyZWEoJHRoaXMtPkdldE9wdGlvbignd3lzaXd5ZycsJzAnKSA9PSAnMSc/dHJ1ZTpmYWxzZSwKCQkJCSAgICRpZCwgJHRoaXMtPlZhbHVlLAoJCQkJICAgJ2ZicnBfXycuJHRoaXMtPklkLCcnLCRpZC4nZmJycF9fJy4kdGhpcy0+SWQsCiAgICAgICAgICAgICAgICcnLCcnLAogICAgICAgICAgICAgICAkdGhpcy0+R2V0T3B0aW9uKCdjb2xzJywnODAnKSwKICAgICAgICAgICAgICAgJHRoaXMtPkdldE9wdGlvbigncm93cycsJzE1JykKICAgICAgICAgICAgICAgKTsKCS8vQ3JlYXRlVGV4dEFyZWEoJGVuYWJsZXd5c2l3eWcsICRpZCwgJHRleHQsICRuYW1lLCAkY2xhc3NuYW1lPScnLCAkaHRtbGlkPScnLCAkZW5jb2Rpbmc9JycsICRzdHlsZXNoZWV0PScnLCAkd2lkdGg9JzgwJywgJGNvbHM9JzE1JywkZm9yY2V3eXNpd3lnPSIiLCR3YW50ZWRzeW50YXg9IiIpCgogICB9CgoKCWZ1bmN0aW9uIFN0YXR1c0luZm8oKQoJewoJICAgJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHJldCA9ICcnOwoJCWlmIChzdHJsZW4oJHRoaXMtPlZhbGlkYXRpb25UeXBlKT4wKQoJCSAgewoJCSAgCSRyZXQgPSBhcnJheV9zZWFyY2goJHRoaXMtPlZhbGlkYXRpb25UeXBlLCR0aGlzLT5WYWxpZGF0aW9uVHlwZXMpOwoJCSAgfQoJCSBpZiAoJHRoaXMtPkdldE9wdGlvbignd3lzaXd5ZycsJzAnKSA9PSAnMScpCgkJIAl7CgkJIAkkcmV0IC49ICcgd3lzaXd5Zyc7CgkJIAl9CgkJIGVsc2UKCQkgCXsKCQkgCSRyZXQgLj0gJyBub24td3lzaXd5Zyc7CgkJIAl9CgkJICRyZXQgLj0gICcsICcuJG1vZC0+TGFuZygncm93cycsJHRoaXMtPkdldE9wdGlvbigncm93cycsJzE1JykpOwoJCSAkcmV0IC49ICAnLCAnLiRtb2QtPkxhbmcoJ2NvbHMnLCR0aGlzLT5HZXRPcHRpb24oJ2NvbHMnLCc4MCcpKTsKCQkgcmV0dXJuICRyZXQ7Cgl9CgoKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCSAgICRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCXJldHVybiBhcnJheSgKCQkJJ21haW4nPT5hcnJheSgKICAgICAgICAgYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfdXNlX3d5c2l3eWcnKSwKICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dENoZWNrYm94KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X3d5c2l3eWcnLAogICAgICAgICAgICAJCScxJywkdGhpcy0+R2V0T3B0aW9uKCd3eXNpd3lnJywnMCcpKSksCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3RleHRhcmVhX3Jvd3MnKSwKICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfcm93cycsCiAgICAgICAgICAgIAkJJHRoaXMtPkdldE9wdGlvbigncm93cycsJzE1JyksNSw1KSksCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3RleHRhcmVhX2NvbHMnKSwKICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfY29scycsCiAgICAgICAgICAgIAkJJHRoaXMtPkdldE9wdGlvbignY29scycsJzgwJyksNSw1KSkKICAgICAgICAgICAgICAgKQogICAgICAgICApOwoJfQoKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/TextField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYlRleHRGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCglmdW5jdGlvbiBmYlRleHRGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJiRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkdGhpcy0+VHlwZSA9ICdUZXh0RmllbGQnOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25fbm9uZScpPT4nbm9uZScsCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25fbnVtZXJpYycpPT4nbnVtZXJpYycsCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25faW50ZWdlcicpPT4naW50ZWdlcicsCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25fZW1haWxfYWRkcmVzcycpPT4nZW1haWwnLAogICAgICAgICAgICAkbW9kLT5MYW5nKCd2YWxpZGF0aW9uX3JlZ2V4X21hdGNoJyk9PidyZWdleF9tYXRjaCcsCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25fcmVnZXhfbm9tYXRjaCcpPT4ncmVnZXhfbm9tYXRjaCcKICAgICAgICAgICAgKTsKCgl9CgoKCWZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQoJewoJICAkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCSAgcmV0dXJuICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdmYnJwX18nLiR0aGlzLT5JZCwKCQkJCSAgICAgICAkdGhpcy0+VmFsdWUsCiAgICAgICAgICAgICR0aGlzLT5HZXRPcHRpb24oJ2xlbmd0aCcpPDI1PyR0aGlzLT5HZXRPcHRpb24oJ2xlbmd0aCcpOjI1LAogICAgICAgICAgICAkdGhpcy0+R2V0T3B0aW9uKCdsZW5ndGgnKSk7Cgl9CgoJZnVuY3Rpb24gU3RhdHVzSW5mbygpCgl7CgkgICRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJICAkcmV0ID0gJG1vZC0+TGFuZygnYWJicmV2aWF0aW9uX2xlbmd0aCcsJHRoaXMtPkdldE9wdGlvbignbGVuZ3RoJywnODAnKSk7CgkJaWYgKHN0cmxlbigkdGhpcy0+VmFsaWRhdGlvblR5cGUpPjApCgkJICB7CgkJICAJJHJldCAuPSAiLCAiLmFycmF5X3NlYXJjaCgkdGhpcy0+VmFsaWRhdGlvblR5cGUsJHRoaXMtPlZhbGlkYXRpb25UeXBlcyk7CgkJICB9CgkJIHJldHVybiAkcmV0OwoJfQoKCglmdW5jdGlvbiBQcmVQb3B1bGF0ZUFkbWluRm9ybSgkZm9ybURlc2NyaXB0b3IpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJG1haW4gPSBhcnJheSgKCQkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfbWF4aW11bV9sZW5ndGgnKSwKCQkJICAgICAgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgCgkJCQkJCSAgICAnZmJycF9vcHRfbGVuZ3RoJywKCQkJICAgICAgICAgJHRoaXMtPkdldE9wdGlvbignbGVuZ3RoJywnODAnKSwyNSwyNSkpCgkJKTsKCQkkYWR2ID0gYXJyYXkoCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX3JlZ2V4JyksCgkJCSAgICAgIGFycmF5KCRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsIAoJCQkJCQkJICAnZmJycF9vcHRfcmVnZXgnLAoJCQkJCQkJICAkdGhpcy0+R2V0T3B0aW9uKCdyZWdleCcpLDI1LDI1NSksJG1vZC0+TGFuZygndGl0bGVfcmVnZXhfaGVscCcpKSkJCgkJKTsKCQlyZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7Cgl9CgoKCWZ1bmN0aW9uIFZhbGlkYXRlKCkKCXsKCQkkdGhpcy0+dmFsaWRhdGVkID0gdHJ1ZTsKCQkkdGhpcy0+dmFsaWR0aW9uRXJyb3JUZXh0ID0gJyc7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJc3dpdGNoICgkdGhpcy0+VmFsaWRhdGlvblR5cGUpCgkJICB7CgkJICAJICAgY2FzZSAnbm9uZSc6CgkJICAJICAgICAgIGJyZWFrOwoJCSAgCSAgIGNhc2UgJ251bWVyaWMnOgogICAgICAgICAgICAgICAgICBpZiAoJHRoaXMtPlZhbHVlICE9PSBmYWxzZSAmJgogICAgICAgICAgICAgICAgICAgICAgISBwcmVnX21hdGNoKCIvXihbXGRcLlwsXSkrJC9pIiwgJHRoaXMtPlZhbHVlKSkKICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT52YWxpZGF0ZWQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT52YWxpZHRpb25FcnJvclRleHQgPSAkbW9kLT5MYW5nKCdwbGVhc2VfZW50ZXJfYV9udW1iZXInLCR0aGlzLT5OYW1lKTsKICAgICAgICAgICAgICAgICAgICAgIH0KCQkgIAkgICAgICAgYnJlYWs7CgkJICAJICAgY2FzZSAnaW50ZWdlcic6CiAgICAgICAgICAgICAgICAgIGlmICgkdGhpcy0+VmFsdWUgIT09IGZhbHNlICYmCiAgICAgICAgICAgICAgICAgIAkhIHByZWdfbWF0Y2goIi9eKFtcZF0pKyQvaSIsICR0aGlzLT5WYWx1ZSkgfHwKICAgICAgICAgICAgICAgICAgICAgIGludHZhbCgkdGhpcy0+VmFsdWUpICE9ICR0aGlzLT5WYWx1ZSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnZhbGlkYXRlZCA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgICR0aGlzLT52YWxpZHRpb25FcnJvclRleHQgPSAkbW9kLT5MYW5nKCdwbGVhc2VfZW50ZXJfYW5faW50ZWdlcicsJHRoaXMtPk5hbWUpOwogICAgICAgICAgICAgICAgICAgIH0KCQkgIAkgICAgICAgYnJlYWs7CgkJICAJICAgY2FzZSAnZW1haWwnOgogICAgICAgICAgICAgICAgICBpZiAoJHRoaXMtPlZhbHVlICE9PSBmYWxzZSAmJgogICAgICAgICAgICAgICAgICAgICAgISBwcmVnX21hdGNoKCgkbW9kLT5HZXRQcmVmZXJlbmNlKCdyZWxheGVkX2VtYWlsX3JlZ2V4JywnMCcpPT0wPyRtb2QtPmVtYWlsX3JlZ2V4OiRtb2QtPmVtYWlsX3JlZ2V4X3JlbGF4ZWQpLCAkdGhpcy0+VmFsdWUpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+dmFsaWRhdGVkID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnZhbGlkdGlvbkVycm9yVGV4dCA9ICRtb2QtPkxhbmcoJ3BsZWFzZV9lbnRlcl9hbl9lbWFpbCcsJHRoaXMtPk5hbWUpOwogICAgICAgICAgICAgICAgICAgIH0KCQkgIAkgICAgICAgYnJlYWs7CgkJICAJICAgY2FzZSAncmVnZXhfbWF0Y2gnOgogICAgICAgICAgICAgICAgICBpZiAoJHRoaXMtPlZhbHVlICE9PSBmYWxzZSAmJgogICAgICAgICAgICAgICAgICAgICAgISBwcmVnX21hdGNoKCR0aGlzLT5HZXRPcHRpb24oJ3JlZ2V4JywnLy4qLycpLCAkdGhpcy0+VmFsdWUpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+dmFsaWRhdGVkID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnZhbGlkdGlvbkVycm9yVGV4dCA9ICRtb2QtPkxhbmcoJ3BsZWFzZV9lbnRlcl92YWxpZCcsJHRoaXMtPk5hbWUpOwogICAgICAgICAgICAgICAgICAgIH0KCQkgIAkgICAJICAgYnJlYWs7CgkJICAJICAgY2FzZSAncmVnZXhfbm9tYXRjaCc6CiAgICAgICAgICAgICAgICAgIGlmICgkdGhpcy0+VmFsdWUgIT09IGZhbHNlICYmCiAgICAgICAgICAgICAgICAgICAgICAgcHJlZ19tYXRjaCgkdGhpcy0+R2V0T3B0aW9uKCdyZWdleCcsJy8uKi8nKSwgJHRoaXMtPlZhbHVlKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnZhbGlkYXRlZCA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgICR0aGlzLT52YWxpZHRpb25FcnJvclRleHQgPSAkbW9kLT5MYW5nKCdwbGVhc2VfZW50ZXJfdmFsaWQnLCR0aGlzLT5OYW1lKTsKICAgICAgICAgICAgICAgICAgICB9CgkJICAJICAgCSAgIGJyZWFrOwoJCSAgfQoJCWlmICgkdGhpcy0+R2V0T3B0aW9uKCdsZW5ndGgnLDApID4gMCAmJiBzdHJsZW4oJHRoaXMtPlZhbHVlKSA+ICR0aGlzLT5HZXRPcHRpb24oJ2xlbmd0aCcsMCkpCgkJCXsKCQkJJHRoaXMtPnZhbGlkYXRlZCA9IGZhbHNlOwoJCQkkdGhpcy0+dmFsaWR0aW9uRXJyb3JUZXh0ID0gJG1vZC0+TGFuZygncGxlYXNlX2VudGVyX25vX2xvbmdlcicsJHRoaXMtPkdldE9wdGlvbignbGVuZ3RoJywwKSk7CgkJCX0KCQlyZXR1cm4gYXJyYXkoJHRoaXMtPnZhbGlkYXRlZCwgJHRoaXMtPnZhbGlkdGlvbkVycm9yVGV4dCk7Cgl9Cn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/TextFieldExpandable.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYlRleHRGaWVsZEV4cGFuZGFibGUgZXh0ZW5kcyBmYkZpZWxkQmFzZSB7CgoJZnVuY3Rpb24gZmJUZXh0RmllbGRFeHBhbmRhYmxlKCYkZm9ybV9wdHIsICYkcGFyYW1zKQoJewogICAgICAgICR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgICAgICRtb2QgPSAmJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gJ1RleHRGaWVsZEV4cGFuZGFibGUnOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+SGFzVXNlckFkZE9wID0gdHJ1ZTsKCQkkdGhpcy0+SGFzVXNlckRlbGV0ZU9wID0gdHJ1ZTsKCQkkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25fbm9uZScpPT4nbm9uZScsCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25fbnVtZXJpYycpPT4nbnVtZXJpYycsCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25faW50ZWdlcicpPT4naW50ZWdlcicsCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25fZW1haWxfYWRkcmVzcycpPT4nZW1haWwnLAogICAgICAgICAgICAkbW9kLT5MYW5nKCd2YWxpZGF0aW9uX3JlZ2V4X21hdGNoJyk9PidyZWdleF9tYXRjaCcsCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25fcmVnZXhfbm9tYXRjaCcpPT4ncmVnZXhfbm9tYXRjaCcKICAgICAgICAgICAgKTsKICAgICAgJHRoaXMtPmhhc011bHRpcGxlRm9ybUNvbXBvbmVudHMgPSB0cnVlOwoKCX0KCgoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCgl7CgkgICRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJIC8vZGVidWdfZGlzcGxheSgkdGhpcy0+VmFsdWUpOwoKICAgICBpZiAoISBpc19hcnJheSgkdGhpcy0+VmFsdWUpKQoJICAgICAgewoJICAgICAgJHZhbHMgPSAxOwoJICAgICAgfQoJICBlbHNlCgkgICAgICB7CgkgICAgICAkdmFscyA9IGNvdW50KCR0aGlzLT5WYWx1ZSk7CgkgICAgICB9CiAgICAgIGZvcmVhY2ggKCRwYXJhbXMgYXMgJHBLZXk9PiRwVmFsKQogICAgICAgICB7CiAgICAgICAgIGlmIChzdWJzdHIoJHBLZXksMCw5KSA9PSAnZmJycF9GZVhfJykKICAgICAgICAgICAgewogICAgICAgICAgICAkcHRzID0gZXhwbG9kZSgnXycsJHBLZXkpOwogICAgICAgICAgICBpZiAoJHB0c1syXSA9PSAkdGhpcy0+SWQpCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgLy8gZXhwYW5kCiAgICAgICAgICAgICAgICR0aGlzLT5WYWx1ZVskdmFsc109Jyc7CiAgICAgICAgICAgICAgICR2YWxzKys7CiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICBlbHNlIGlmIChzdWJzdHIoJHBLZXksMCw5KSA9PSAnZmJycF9GZURfJykKICAgICAgICAgICAgewogICAgICAgICAgICAkcHRzID0gZXhwbG9kZSgnXycsJHBLZXkpOwogICAgICAgICAgICBpZiAoJHB0c1syXSA9PSAkdGhpcy0+SWQpCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgLy8gZGVsZXRlIHJvdwogICAgICAgICAgICAgICBpZiAoaXNzZXQoJHRoaXMtPlZhbHVlWyRwdHNbMl1dKSkKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBhcnJheV9zcGxpY2UoJHRoaXMtPlZhbHVlLCAkcHRzWzJdLCAxKTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAkdmFscy0tOwogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgfQoKCSAgJHJldCA9IGFycmF5KCk7CgkgIGZvciAoJGk9MDskaTwkdmFsczskaSsrKQoJICAgIHsKCSAgICAkdGhpc1JvdyA9IG5ldyBzdGRDbGFzcygpOwogICAgICAgICR0aGlzUm93LT5uYW1lID0gJyc7CiAgICAgICAgJHRoaXNSb3ctPnRpdGxlID0gJyc7CgkgICAgJHRoaXNSb3ctPmlucHV0ID0gJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2ZicnBfXycuJHRoaXMtPklkLidbXScsCgkJCQkgICAgICAgJHRoaXMtPlZhbHVlWyRpXSwKICAgICAgICAgICAgJHRoaXMtPkdldE9wdGlvbignbGVuZ3RoJyk8MjU/JHRoaXMtPkdldE9wdGlvbignbGVuZ3RoJyk6MjUsCiAgICAgICAgICAgICR0aGlzLT5HZXRPcHRpb24oJ2xlbmd0aCcpKTsKICAgICAgICAkdGhpc1Jvdy0+b3AgPSAkbW9kLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdmYnJwX0ZlRF8nLiR0aGlzLT5JZC4nXycuJGksICR0aGlzLT5HZXRPcHRpb24oJ2RlbF9idXR0b24nLCdYJykpOwogICAgICAgIGFycmF5X3B1c2goJHJldCwgJHRoaXNSb3cpOwogICAgICAgIH0KICAgICAgJHRoaXNSb3cgPSBuZXcgc3RkQ2xhc3MoKTsKICAgICAgJHRoaXNSb3ctPm5hbWUgPSAnJzsKICAgICAgJHRoaXNSb3ctPnRpdGxlID0gJyc7CiAgICAgICR0aGlzUm93LT5pbnB1dCA9ICcnOwogICAgICAkdGhpc1Jvdy0+b3AgPSAkbW9kLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdmYnJwX0ZlWF8nLiR0aGlzLT5JZCwgJHRoaXMtPkdldE9wdGlvbignYWRkX2J1dHRvbicsJysnKSk7CiAgICAgIGFycmF5X3B1c2goJHJldCwgJHRoaXNSb3cpOwogICAgICByZXR1cm4gJHJldDsKCX0KCglmdW5jdGlvbiBTdGF0dXNJbmZvKCkKCXsKCSAgJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkgICRyZXQgPSAkbW9kLT5MYW5nKCdhYmJyZXZpYXRpb25fbGVuZ3RoJywkdGhpcy0+R2V0T3B0aW9uKCdsZW5ndGgnLCc4MCcpKTsKCQlpZiAoc3RybGVuKCR0aGlzLT5WYWxpZGF0aW9uVHlwZSk+MCkKCQkgIHsKCQkgIAkkcmV0IC49ICIsICIuYXJyYXlfc2VhcmNoKCR0aGlzLT5WYWxpZGF0aW9uVHlwZSwkdGhpcy0+VmFsaWRhdGlvblR5cGVzKTsKCQkgIH0KCQkgcmV0dXJuICRyZXQ7Cgl9CgoJZnVuY3Rpb24gR2V0SHVtYW5SZWFkYWJsZVZhbHVlKCkKCXsKCQkkZm9ybSA9ICYkdGhpcy0+Zm9ybV9wdHI7CiAgICAgIGlmICghIGlzX2FycmF5KCR0aGlzLT5WYWx1ZSkpCgkgICAgICB7CgkgICAgICAkdGhpcy0+VmFsdWUgPSBhcnJheSgkdGhpcy0+VmFsdWUpOwoJICAgICAgfQoJCXJldHVybiBqb2luKCRmb3JtLT5HZXRBdHRyKCdsaXN0X2RlbGltaXRlcicsJywnKSwkdGhpcy0+VmFsdWUpOwoJfQoKCgoJZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRtYWluID0gYXJyYXkoCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX21heGltdW1fbGVuZ3RoJyksCgkJCSAgICAgICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsIAoJCQkJCQkgICAgJ2ZicnBfb3B0X2xlbmd0aCcsCgkJCSAgICAgICAgICR0aGlzLT5HZXRPcHRpb24oJ2xlbmd0aCcsJzgwJyksMjUsMjUpKSwKCQkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfYWRkX2J1dHRvbl90ZXh0JyksCgkJCSAgICAgICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsCgkJCQkJCSAgICAnZmJycF9vcHRfYWRkX2J1dHRvbicsCgkJCSAgICAgICAgICR0aGlzLT5HZXRPcHRpb24oJ2FkZF9idXR0b24nLCcrJyksMTUsMjUpKSwKCQkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZGVsX2J1dHRvbl90ZXh0JyksCgkJCSAgICAgICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsCgkJCQkJCSAgICAnZmJycF9vcHRfZGVsX2J1dHRvbicsCgkJCSAgICAgICAgICR0aGlzLT5HZXRPcHRpb24oJ2RlbF9idXR0b24nLCdYJyksMTUsMjUpKQoJCSk7CgkJJGFkdiA9IGFycmF5KAoJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9yZWdleCcpLAoJCQkgICAgICBhcnJheSgkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAKCQkJCQkJCSAgJ2ZicnBfb3B0X3JlZ2V4JywKCQkJCQkJCSAgJHRoaXMtPkdldE9wdGlvbigncmVnZXgnKSwyNSwyNTUpLCRtb2QtPkxhbmcoJ3RpdGxlX3JlZ2V4X2hlbHAnKSkpCQoJCSk7CgkJcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwoJfQoKCglmdW5jdGlvbiBWYWxpZGF0ZSgpCgl7CgkJJHRoaXMtPnZhbGlkYXRlZCA9IHRydWU7CgkJJHRoaXMtPnZhbGlkdGlvbkVycm9yVGV4dCA9ICcnOwoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCWlmICghIGlzX2FycmF5KCR0aGlzLT5WYWx1ZSkpCgkJICAgIHsKCQkgICAgJHRoaXMtPlZhbHVlID0gYXJyYXkoJHRoaXMtPlZhbHVlKTsKCQkgICAgfQoJCWZvcmVhY2ggKCR0aGlzLT5WYWx1ZSBhcyAkdGhpc1ZhbCkKCQkgICAgewoJCSAgICBzd2l0Y2ggKCR0aGlzLT5WYWxpZGF0aW9uVHlwZSkKCQkgICAgewoJCSAgCSAgIGNhc2UgJ25vbmUnOgoJCSAgCSAgICAgICBicmVhazsKCQkgIAkgICBjYXNlICdudW1lcmljJzoKICAgICAgICAgICAgICAgICAgaWYgKCR0aGlzVmFsICE9PSBmYWxzZSAmJgogICAgICAgICAgICAgICAgICAgICAgISBwcmVnX21hdGNoKCIvXihbXGRcLlwsXSkrJC9pIiwgJHRoaXNWYWwpKQogICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnZhbGlkYXRlZCA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnZhbGlkdGlvbkVycm9yVGV4dCA9ICRtb2QtPkxhbmcoJ3BsZWFzZV9lbnRlcl9hX251bWJlcicsJHRoaXMtPk5hbWUpOwogICAgICAgICAgICAgICAgICAgICAgfQoJCSAgCSAgICAgICBicmVhazsKCQkgIAkgICBjYXNlICdpbnRlZ2VyJzoKICAgICAgICAgICAgICAgICAgaWYgKCR0aGlzVmFsICE9PSBmYWxzZSAmJgogICAgICAgICAgICAgICAgICAJISBwcmVnX21hdGNoKCIvXihbXGRdKSskL2kiLCAkdGhpc1ZhbCkgfHwKICAgICAgICAgICAgICAgICAgICAgIGludHZhbCgkdGhpc1ZhbCkgIT0gJHRoaXNWYWwpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICR0aGlzLT52YWxpZGF0ZWQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+dmFsaWR0aW9uRXJyb3JUZXh0ID0gJG1vZC0+TGFuZygncGxlYXNlX2VudGVyX2FuX2ludGVnZXInLCR0aGlzLT5OYW1lKTsKICAgICAgICAgICAgICAgICAgICB9CgkJICAJICAgICAgIGJyZWFrOwoJCSAgCSAgIGNhc2UgJ2VtYWlsJzoKICAgICAgICAgICAgICAgICAgaWYgKCR0aGlzVmFsICE9PSBmYWxzZSAmJgogICAgICAgICAgICAgICAgICAgICAgISBwcmVnX21hdGNoKCgkbW9kLT5HZXRQcmVmZXJlbmNlKCdyZWxheGVkX2VtYWlsX3JlZ2V4JywnMCcpPT0wPyRtb2QtPmVtYWlsX3JlZ2V4OiRtb2QtPmVtYWlsX3JlZ2V4X3JlbGF4ZWQpLCAkdGhpc1ZhbCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICR0aGlzLT52YWxpZGF0ZWQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+dmFsaWR0aW9uRXJyb3JUZXh0ID0gJG1vZC0+TGFuZygncGxlYXNlX2VudGVyX2FuX2VtYWlsJywkdGhpcy0+TmFtZSk7CiAgICAgICAgICAgICAgICAgICAgfQoJCSAgCSAgICAgICBicmVhazsKCQkgIAkgICBjYXNlICdyZWdleF9tYXRjaCc6CiAgICAgICAgICAgICAgICAgIGlmICgkdGhpc1ZhbCAhPT0gZmFsc2UgJiYKICAgICAgICAgICAgICAgICAgICAgICEgcHJlZ19tYXRjaCgkdGhpcy0+R2V0T3B0aW9uKCdyZWdleCcsJy8uKi8nKSwgJHRoaXNWYWwpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+dmFsaWRhdGVkID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnZhbGlkdGlvbkVycm9yVGV4dCA9ICRtb2QtPkxhbmcoJ3BsZWFzZV9lbnRlcl92YWxpZCcsJHRoaXMtPk5hbWUpOwogICAgICAgICAgICAgICAgICAgIH0KCQkgIAkgICAJICAgYnJlYWs7CgkJICAJICAgY2FzZSAncmVnZXhfbm9tYXRjaCc6CiAgICAgICAgICAgICAgICAgIGlmICgkdGhpc1ZhbCAhPT0gZmFsc2UgJiYKICAgICAgICAgICAgICAgICAgICAgICBwcmVnX21hdGNoKCR0aGlzLT5HZXRPcHRpb24oJ3JlZ2V4JywnLy4qLycpLCAkdGhpc1ZhbCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICR0aGlzLT52YWxpZGF0ZWQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+dmFsaWR0aW9uRXJyb3JUZXh0ID0gJG1vZC0+TGFuZygncGxlYXNlX2VudGVyX3ZhbGlkJywkdGhpcy0+TmFtZSk7CiAgICAgICAgICAgICAgICAgICAgfQoJCSAgCSAgIAkgICBicmVhazsKCQkgIH0KCQlpZiAoJHRoaXMtPkdldE9wdGlvbignbGVuZ3RoJywwKSA+IDAgJiYgc3RybGVuKCR0aGlzVmFsKSA+ICR0aGlzLT5HZXRPcHRpb24oJ2xlbmd0aCcsMCkpCgkJCXsKCQkJJHRoaXMtPnZhbGlkYXRlZCA9IGZhbHNlOwoJCQkkdGhpcy0+dmFsaWR0aW9uRXJyb3JUZXh0ID0gJG1vZC0+TGFuZygncGxlYXNlX2VudGVyX25vX2xvbmdlcicsJHRoaXMtPkdldE9wdGlvbignbGVuZ3RoJywwKSk7CgkJCX0KCQl9CgkJcmV0dXJuIGFycmF5KCR0aGlzLT52YWxpZGF0ZWQsICR0aGlzLT52YWxpZHRpb25FcnJvclRleHQpOwoJfQp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/TimePickerField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYlRpbWVQaWNrZXJGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCgl2YXIgJGZsYWcxMmhvdXI7CgkKCWZ1bmN0aW9uIGZiVGltZVBpY2tlckZpZWxkKCYkZm9ybV9wdHIsICYkcGFyYW1zKQoJewogICAgICAgICR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgICAgICRtb2QgPSAmJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gJ1RpbWVQaWNrZXJGaWVsZCc7CgkJJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwoJCSR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgKICAgICAgICAgICAgJG1vZC0+TGFuZygndmFsaWRhdGlvbl9ub25lJyk9Pidub25lJywKICAgICAgICAgICAgKTsKICAgICAgJHRoaXMtPmZsYWcxMmhvdXIgPSBhcnJheSgKCQkgIAkkbW9kLT5MYW5nKCd0aXRsZV9iZWZvcmVfbm9vbicpPT4kbW9kLT5MYW5nKCd0aXRsZV9iZWZvcmVfbm9vbicpLAogICAgICAgIAkkbW9kLT5MYW5nKCd0aXRsZV9hZnRlcl9ub29uJyk9PiRtb2QtPkxhbmcoJ3RpdGxlX2FmdGVyX25vb24nKSk7CiAgICAkdGhpcy0+aGFzTXVsdGlwbGVGb3JtQ29tcG9uZW50cyA9IHRydWU7CiAgICAkdGhpcy0+bGFiZWxTdWJDb21wb25lbnRzID0gZmFsc2U7Cgl9CgoKICAgIGZ1bmN0aW9uIFN0YXR1c0luZm8oKQoJewogICAgICAkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQlyZXR1cm4gKCR0aGlzLT5HZXRPcHRpb24oJzI0X2hvdXInLCcwJykgPT0gJzAnPyRtb2QtPkxhbmcoJzEyX2hvdXInKTokbW9kLT5MYW5nKCcyNF9ob3VyJykpOwoJfQoKCglmdW5jdGlvbiBHZXRGaWVsZElucHV0KCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICAgICRub3cgPSBsb2NhbHRpbWUodGltZSgpLHRydWUpOwogICAgICAgJE1pbnMgPSBhcnJheSgpOwogICAgICAgJEhvdXJzID0gYXJyYXkoKTsKICAgICAgICRyZXQgPSBhcnJheSgpOwogICAgICAgZm9yICgkaT0wOyRpPDYwOyRpKyspCiAgICAgICAJewoJCQkkbW8gPSBzcHJpbnRmKCIlMDJkIiwkaSk7CgkJCSRNaW5zWyRtb109JG1vOwoJCQl9CiAgICAgICBpZiAoJHRoaXMtPkdldE9wdGlvbignMjRfaG91cicsJzAnKSA9PSAnMCcpCiAgICAgICAJCXsKICAgICAgIAkJZm9yICgkaT0xOyRpPDEzOyRpKyspCiAgICAgICAJCXsKCQkJCQkkbW8gPSBzcHJpbnRmKCIlMDJkIiwkaSk7CgkJCQkJJEhvdXJzWyRtb109JG1vOwoJCQkJfQoJCQlpZiAoJHRoaXMtPkhhc1ZhbHVlKCkpCgkJCQl7CgkJCQkkbm93Wyd0bV9ob3VyJ10gPSAkdGhpcy0+R2V0QXJyYXlWYWx1ZSgwKTsKCQkJCSRub3dbJ21lcmlkJ10gPSAkdGhpcy0+R2V0QXJyYXlWYWx1ZSgyKTsKCQkJCSRub3dbJ3RtX21pbiddID0gJHRoaXMtPkdldEFycmF5VmFsdWUoMSk7CgkJCQl9CgkJCWVsc2UKCQkJCXsKCQkJCSRub3dbJ21lcmlkJ10gPSAkbW9kLT5MYW5nKCd0aXRsZV9iZWZvcmVfbm9vbicpOwoJCQkJaWYgKCRub3dbJ3RtX2hvdXInXSA+IDEyKQoJCQkJCXsKCQkJCQkkbm93Wyd0bV9ob3VyJ10gLT0gMTI7CgkJCQkJJG5vd1snbWVyaWQnXSA9ICRtb2QtPkxhbmcoJ3RpdGxlX2FmdGVyX25vb24nKTsKCQkJCQl9CgkJCQllbHNlaWYgKCRub3dbJ3RtX2hvdXInXSA9PSAwKQoJCQkJCXsKCQkJCQkkbm93Wyd0bV9ob3VyJ10gPSAxMjsKCQkJCQl9CgkJCQl9CgogICAgICAgICAgICAkaHIgPSBuZXcgc3RkQ2xhc3MoKTsKICAgICAgICAgICAgJGhyLT5pbnB1dCA9ICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQuJ1tdJywKICAgICAgIAkJCSRIb3VycywgLTEsICRub3dbJ3RtX2hvdXInXSwnaWQ9IicuJGlkLidfJy4kdGhpcy0+SWQuJ18xIicpOwogICAgICAgCQkkaHItPnRpdGxlID0gJG1vZC0+TGFuZygnaG91cicpOwogICAgICAgCQkkaHItPm5hbWUgPSAnPGxhYmVsIGZvcj0iJy4kaWQuJ18nLiR0aGlzLT5JZC4nXzEiPicuJG1vZC0+TGFuZygnaG91cicpLic8L2xhYmVsPic7CiAgICAgICAJCWFycmF5X3B1c2goJHJldCwgJGhyKTsKICAgICAgIAkJCiAgICAgICAgICAgICRtaW4gPSBuZXcgc3RkQ2xhc3MoKTsKICAgICAgICAgICAgJG1pbi0+aW5wdXQgPSAkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ2ZicnBfXycuJHRoaXMtPklkLidbXScsCiAgICAgICAJCQkkTWlucywgLTEsICRub3dbJ3RtX21pbiddLCdpZD0iJy4kaWQuJ18nLiR0aGlzLT5JZC4nXzIiJyk7CiAgICAgICAJCSRtaW4tPnRpdGxlID0gJG1vZC0+TGFuZygnbWluJyk7CiAgICAgICAJCSRtaW4tPm5hbWUgPSAnPGxhYmVsIGZvcj0iJy4kaWQuJ18nLiR0aGlzLT5JZC4nXzIiPicuJG1vZC0+TGFuZygnbWluJykuJzwvbGFiZWw+JzsKICAgICAgIAkJYXJyYXlfcHVzaCgkcmV0LCAkbWluKTsKCiAgICAgICAgICAgICRtZXIgPSBuZXcgc3RkQ2xhc3MoKTsKICAgICAgICAgICAgJG1lci0+aW5wdXQgPSAkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ2ZicnBfXycuJHRoaXMtPklkLidbXScsCiAgICAgICAJCQkkdGhpcy0+ZmxhZzEyaG91ciwgLTEsICRub3dbJ21lcmlkJ10sICdpZD0iJy4kaWQuJ18nLiR0aGlzLT5JZC4nXzMiJyk7CiAgICAgICAgICAgICRtZXItPm5hbWUgPSAnPGxhYmVsIGZvcj0iJy4kaWQuJ18nLiR0aGlzLT5JZC4nXzMiPicuJG1vZC0+TGFuZygnbWVyaWQnKS4nPC9sYWJlbD4nOwogICAgICAgICAgICAkbWVyLT50aXRsZSA9ICRtb2QtPkxhbmcoJ21lcmlkJyk7CiAgICAgICAgICAgIGFycmF5X3B1c2goJHJldCwkbWVyKTsKICAgICAgICAgICAgcmV0dXJuICRyZXQ7CiAgICAgICAJCX0KICAgICAgIGVsc2UKICAgICAgIAkJewogICAgICAgCQlmb3IgKCRpPTA7JGk8MjQ7JGkrKykKICAgICAgIAkJewoJCQkJCSRtbyA9IHNwcmludGYoIiUwMmQiLCRpKTsKCQkJCQkkSG91cnNbJG1vXT0kbW87CgkJCQl9CgoJCQlpZiAoJHRoaXMtPkhhc1ZhbHVlKCkpCgkJCQl7CgkJCQkkbm93Wyd0bV9ob3VyJ10gPSAkdGhpcy0+R2V0QXJyYXlWYWx1ZSgwKTsKCQkJCSRub3dbJ3RtX21pbiddID0gJHRoaXMtPkdldEFycmF5VmFsdWUoMSk7CgkJCQl9CiAgICAgICAgICAgICRociA9IG5ldyBzdGRDbGFzcygpOwogICAgICAgICAgICAkaHItPmlucHV0ID0gJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICdmYnJwX18nLiR0aGlzLT5JZC4nW10nLAogICAgICAgCQkJJEhvdXJzLCAtMSwgJG5vd1sndG1faG91ciddLCdpZD0iJy4kaWQuJ18nLiR0aGlzLT5JZC4nXzEiJyk7CiAgICAgICAJCSRoci0+dGl0bGUgPSAkbW9kLT5MYW5nKCdob3VyJyk7CiAgICAgICAJCSRoci0+bmFtZSA9ICc8bGFiZWwgZm9yPSInLiRpZC4nXycuJHRoaXMtPklkLidfMSI+Jy4kbW9kLT5MYW5nKCdob3VyJykuJzwvbGFiZWw+JzsKICAgICAgIAkJYXJyYXlfcHVzaCgkcmV0LCAkaHIpOwogICAgICAgCQkKICAgICAgICAgICAgJG1pbiA9IG5ldyBzdGRDbGFzcygpOwogICAgICAgICAgICAkbWluLT5pbnB1dCA9ICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQuJ1tdJywKICAgICAgIAkJCSRNaW5zLCAtMSwgJG5vd1sndG1fbWluJ10sJ2lkPSInLiRpZC4nXycuJHRoaXMtPklkLidfMiInKTsKICAgICAgIAkJJG1pbi0+dGl0bGUgPSAkbW9kLT5MYW5nKCdtaW4nKTsKICAgICAgIAkJJG1pbi0+bmFtZSA9ICc8bGFiZWwgZm9yPSInLiRpZC4nXycuJHRoaXMtPklkLidfMiI+Jy4kbW9kLT5MYW5nKCdtaW4nKS4nPC9sYWJlbD4nOwogICAgICAgCQlhcnJheV9wdXNoKCRyZXQsICRtaW4pOwoKICAgICAgICAgICAgcmV0dXJuICRyZXQ7CiAgICAgICAJCX0KCgoJfQoKICAgZnVuY3Rpb24gQ29tcGFyZVRvKCR2YWwpCiAgIHsKICAgICAgJHR0ID0gMDsKICAgICAgJG90ID0gMDsKICAgICAgaWYgKCR0aGlzLT5IYXNWYWx1ZSgpKQoJCQl7CgkJCSR0dCA9ICR0aGlzLT5HZXRBcnJheVZhbHVlKDApICogNjAgKyAkdGhpcy0+R2V0QXJyYXlWYWx1ZSgxKTsKCQkJfQoJCSRvID0gJHZhbC0+R2V0VmFsdWUoKTsKICAgICAgaWYgKCRvLT5IYXNWYWx1ZSgpKQoJCQl7CgkJCSRvdCA9ICRvLT5HZXRBcnJheVZhbHVlKDApICogNjAgKyAkby0+R2V0QXJyYXlWYWx1ZSgxKTsKCQkJfQogICAgICBpZiAoJHR0ID09ICRvdCkKICAgICAgICAgewogICAgICAgICByZXR1cm4gMDsKICAgICAgICAgfQogICAgICByZXR1cm4gKCR0dCA8ICRvdCkgPyAtMSA6IDE7CiAgIH0KCglmdW5jdGlvbiBHZXRIdW1hblJlYWRhYmxlVmFsdWUoKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCWlmICgkdGhpcy0+SGFzVmFsdWUoKSkKCQkJewoJCQlpZiAoJHRoaXMtPkdldE9wdGlvbignMjRfaG91cicsJzAnKSA9PSAnMCcpCgkJCQl7CgkJCQlyZXR1cm4gJHRoaXMtPkdldEFycmF5VmFsdWUoMCkuJzonLgoJCQkJCSR0aGlzLT5HZXRBcnJheVZhbHVlKDEpLicgJy4KCQkJCQkkdGhpcy0+R2V0QXJyYXlWYWx1ZSgyKTsKCQkJCX0KCQkJZWxzZQoJCQkJewoJCQkJcmV0dXJuICR0aGlzLT5HZXRBcnJheVZhbHVlKDApLic6Jy4KCQkJCQkkdGhpcy0+R2V0QXJyYXlWYWx1ZSgxKTsKCQkJCX0KCQkJfQoJCWVsc2UKCQkJewoJCQlyZXR1cm4gJG1vZC0+TGFuZygndW5zcGVjaWZpZWQnKTsKCQkJfQkKCX0KCglmdW5jdGlvbiBQcmVQb3B1bGF0ZUFkbWluRm9ybSgkZm9ybURlc2NyaXB0b3IpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJG1haW4gPSBhcnJheSgKCQkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfMjRfaG91cicpLAogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfMjRfaG91cicsCiAgICAgICAgICAgIAkJJzEnLCR0aGlzLT5HZXRPcHRpb24oJzI0X2hvdXInLCcwJykpKSk7CgkJcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sYXJyYXkoKSk7Cgl9Cgp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/FormBuilder.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZvcm1CdWlsZGVyCiMgVmVyc2lvbjogMC4zLCByZWxlYXNlZCAyMDA3CiMKIyBDb3B5cmlnaHQgKGMpIDIwMDcsIFNhbXVlbCBHb2xkc3RlaW4gPHNqZ0BjbXNtb2R1bGVzLmNvbT4KIyBGb3IgSW5mb3JtYXRpb24sIFN1cHBvcnQsIEJ1ZyBSZXBvcnRzLCBldGMsIHBsZWFzZSB2aXNpdCB0aGUKIyBDTVMgTWFkZSBTaW1wbGUgRm9yZ2U6CiMgaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9mb3JtYnVpbGRlci8KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNiBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpjbGFzcyBGb3JtQnVpbGRlciBleHRlbmRzIENNU01vZHVsZQp7CgoJdmFyICRmaWVsZF90eXBlczsKCXZhciAkZGlzcF9maWVsZF90eXBlczsKCXZhciAkYWxsX3ZhbGlkYXRpb25fdHlwZXM7Cgl2YXIgJG1vZHVsZV9wdHI7Cgl2YXIgJG1vZHVsZV9pZDsKCXZhciAkZW1haWxfcmVnZXg7Cgl2YXIgJGVtYWlsX3JlZ2V4X3JlbGF4ZWQ7Cgl2YXIgJGRiSGFuZGxlOwoKCWZ1bmN0aW9uIEZvcm1CdWlsZGVyKCkKCXsKCQlnbG9iYWwgJGdDbXM7CgkJJHRoaXMtPkNNU01vZHVsZSgpOwoJCSR0aGlzLT5tb2R1bGVfcHRyID0gJiR0aGlzOwoJCSR0aGlzLT5kYkhhbmRsZSA9ICYkZ0Ntcy0+R2V0RGIoKTsKCQkkdGhpcy0+bW9kdWxlX2lkID0gJyc7CgkJJHRoaXMtPmVtYWlsX3JlZ2V4ID0gIi9eKFtcd1xkXC5cLVxfXSkrXEAoW1x3XGRcLlwtXF9dKylcLihcdyspJC9pIjsKCQkkdGhpcy0+ZW1haWxfcmVnZXhfcmVsYXhlZD0iL14oW1x3XGRcLlwtXF9dKStcQChbXHdcZFwuXC1cX10pKyQvaSI7CgkJcmVxdWlyZV9vbmNlIGRpcm5hbWUoX19GSUxFX18pLicvY2xhc3Nlcy9Gb3JtLmNsYXNzLnBocCc7CgkJcmVxdWlyZV9vbmNlIGRpcm5hbWUoX19GSUxFX18pLicvY2xhc3Nlcy9GaWVsZEJhc2UuY2xhc3MucGhwJzsKCQkvLyR0aGlzLT5SZWdpc3Rlck1vZHVsZVBsdWdpbigpOwoJfQoKCglmdW5jdGlvbiBpbml0aWFsaXplKCkKCXsKCQkkZGlyPW9wZW5kaXIoZGlybmFtZShfX0ZJTEVfXykuJy9jbGFzc2VzJyk7CiAgIAkJJHRoaXMtPmZpZWxkX3R5cGVzID0gYXJyYXkoKTsKICAgCQl3aGlsZSgkZmlsZXNwZWM9cmVhZGRpcigkZGlyKSkKICAgCQkJewogICAgICAgCQlpZihzdHJwb3MoJGZpbGVzcGVjLCdGaWVsZCcpID09PSBmYWxzZSAmJiBzdHJwb3MoJGZpbGVzcGVjLCdEaXNwb3NpdGlvbicpID09PSBmYWxzZSkKICAgICAgIAkJCXsKICAgICAgIAkJCWNvbnRpbnVlOwogICAgICAgCQkJfQogICAgICAgCQkkc2hvcnRuYW1lID0gc3Vic3RyKCRmaWxlc3BlYywwLHN0cnBvcygkZmlsZXNwZWMsJy4nKSk7CiAgICAgICAJCWlmIChzdWJzdHIoJHNob3J0bmFtZSwtNCkgPT0gJ0Jhc2UnKQogICAgICAgCQkJewogICAgICAgCQkJY29udGludWU7CiAgICAgICAJCQl9CiAgICAgICAJCSR0aGlzLT5maWVsZF90eXBlc1skdGhpcy0+TGFuZygnZmllbGRfdHlwZV8nLiRzaG9ydG5hbWUpXSA9ICRzaG9ydG5hbWU7CgkJCX0gICAgICAgIAoJCQogICAgICAgIGZvcmVhY2ggKCR0aGlzLT5maWVsZF90eXBlcyBhcyAkdE5hbWU9PiR0VHlwZSkKICAgICAgICAJewogICAgICAgIAlpZiAoc3Vic3RyKCR0VHlwZSwwLDExKSA9PSAnRGlzcG9zaXRpb24nKQogICAgICAgIAkJewogICAgICAgIAkJJHRoaXMtPmRpc3BfZmllbGRfdHlwZXNbJHROYW1lXT0kdFR5cGU7CiAgICAgICAgCQl9CiAgICAgICAgCX0KCQkkdGhpcy0+YWxsX3ZhbGlkYXRpb25fdHlwZXMgPSBhcnJheSgpOwoJCWtzb3J0KCR0aGlzLT5maWVsZF90eXBlcyk7Cgl9CgoJZnVuY3Rpb24gQWxsb3dBdXRvSW5zdGFsbCgpCgl7CgkgIHJldHVybiBGQUxTRTsKCX0KCglmdW5jdGlvbiBBbGxvd0F1dG9VcGdyYWRlKCkKCXsKCSAgcmV0dXJuIEZBTFNFOwoJfQoKCWZ1bmN0aW9uIEdldE5hbWUoKQoJewoJCXJldHVybiAnRm9ybUJ1aWxkZXInOwoJfQoJCglmdW5jdGlvbiBHZXRGcmllbmRseU5hbWUoKQoJewoJCXJldHVybiAkdGhpcy0+TGFuZygnZnJpZW5kbHluYW1lJyk7Cgl9CgoJZnVuY3Rpb24gR2V0VmVyc2lvbigpCgl7CgkJcmV0dXJuICcwLjQuNCc7Cgl9CgoJZnVuY3Rpb24gR2V0QXV0aG9yKCkKCXsKCQlyZXR1cm4gJ1NqRyc7Cgl9CgoJZnVuY3Rpb24gR2V0QXV0aG9yRW1haWwoKQoJewoJCXJldHVybiAnc2pnQGNtc21vZHVsZXMuY29tJzsKCX0KCiAgICBmdW5jdGlvbiBHZXRBZG1pbkRlc2NyaXB0aW9uKCkKICAgIHsKCQlyZXR1cm4gJHRoaXMtPkxhbmcoJ2FkbWluZGVzYycpOwogICAgfQoKCWZ1bmN0aW9uIEdldENoYW5nZUxvZygpCgl7CgkJcmV0dXJuICR0aGlzLT5MYW5nKCdjaGFuZ2Vsb2cnKTsKCX0KCglmdW5jdGlvbiBJc1BsdWdpbk1vZHVsZSgpCgl7CgkJcmV0dXJuIHRydWU7Cgl9CgoJZnVuY3Rpb24gSGFzQWRtaW4oKQoJewoJCXJldHVybiB0cnVlOwoJfQoKICAgIGZ1bmN0aW9uIEFkbWluU3R5bGUoKQogICAgewogICAgICByZXR1cm4gIlxuLm1vZHVsZV9mYl90YWJsZSB7Zm9udC1zaXplOiAxMHB4O31cbi5tb2R1bGVfZmJfYXJlYV93aWRlIHt3aWR0aDogNTAwcHg7fVxuLm1vZHVsZV9mYl9sZWdlbmR7Zm9udC1zaXplOiA5cHg7IG1hcmdpbjogNnB4OyBib3JkZXI6IDFweCBzb2xpZCBibGFjazt9Lm1vZHVsZV9mYl9hcmVhX3Nob3J0IHt3aWR0aDogNTAwcHg7IGhlaWdodDogMTAwcHg7fVxuLm1vZHVsZV9mYl9saW5rIHt0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTt9XG4ubW9kdWxlX2ZiX2ZpZWxkc2V0IHttYXJnaW4tYm90dG9tOjJlbTt9XG4ub2RkIHtiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO3RleHQtYWxpZ246bGVmdDt2ZXJ0aWNhbC1hbGlnbm1lbnQ6IHRvcDt9XG4uZXZlbiB7YmFja2dyb3VuZC1jb2xvcjogI2RkZDt0ZXh0LWFsaWduOmxlZnQ7dmVydGljYWwtYWxpZ25tZW50OiB0b3A7fVxuIjsKICAgIH0KCglmdW5jdGlvbiBTZXRQYXJhbWV0ZXJzKCkKCXsKICAgIAkkdGhpcy0+UmVzdHJpY3RVbmtub3duUGFyYW1zKCk7CiAgICAJJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignZmJycF8qJywnbnVsbCcsJHRoaXMtPkxhbmcoJ2Zvcm1idWlsZGVyX3BhcmFtc19nZW5lcmFsJykpOwoJCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKENMRUFOX1JFR0VYUC4nL2ZicnBfLiovJyxDTEVBTl9TVFJJTkcpOwoJCSR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2Zvcm1faWQnLCdudWxsJywkdGhpcy0+TGFuZygnZm9ybWJ1aWxkZXJfcGFyYW1zX2Zvcm1faWQnKSk7CiAgICAJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2Zvcm1faWQnLENMRUFOX0lOVCk7CgkJJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignZm9ybScsJ251bGwnLCR0aGlzLT5MYW5nKCdmb3JtYnVpbGRlcl9wYXJhbXNfZm9ybV9uYW1lJykpOwogICAgCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdmb3JtJyxDTEVBTl9TVFJJTkcpOwogICAgCQoJCSR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2ZpZWxkX2lkJywnbnVsbCcsJHRoaXMtPkxhbmcoJ2Zvcm1idWlsZGVyX3BhcmFtc19maWVsZF9pZCcpKTsKICAgIAkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnZmllbGRfaWQnLENMRUFOX0lOVCk7CgoJCSR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ3ZhbHVlXyonLCdudWxsJywkdGhpcy0+TGFuZygnZm9ybWJ1aWxkZXJfcGFyYW1zX3Bhc3NlZF9mcm9tX3RhZycpKTsKCQkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZShDTEVBTl9SRUdFWFAuJy92YWx1ZV8uKi8nLENMRUFOX1NUUklORyk7CgoJCSR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ3Jlc3BvbnNlX2lkJywnbnVsbCcsJHRoaXMtPkxhbmcoJ2Zvcm1idWlsZGVyX3BhcmFtc19yZXNwb25zZV9pZCcpKTsKICAgIAkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgncmVzcG9uc2VfaWQnLENMRUFOX0lOVCk7CiAgCX0KCiAgICBmdW5jdGlvbiBEb0FjdGlvbigkbmFtZSwkaWQsJHBhcmFtcywkcmV0dXJuaWQ9JycpCiAgICB7CiAgICAgICR0aGlzLT5tb2R1bGVfaWQgPSAkaWQ7CiAgICAgIHBhcmVudDo6RG9BY3Rpb24oJG5hbWUsJGlkLCRwYXJhbXMsJHJldHVybmlkKTsKICAgIH0KCglmdW5jdGlvbiBHZXREZXBlbmRlbmNpZXMoKQoJewoJCXJldHVybiBhcnJheSgnQ01TTWFpbGVyJz0+JzEuNzMnKTsKCX0KCgkvLyBtYXkgYmUgdG9vIHN0cmluZ2VudCwgYnV0IGJldHRlciBzYWZlIHRoYW4gc29ycnkuCglmdW5jdGlvbiBNaW5pbXVtQ01TVmVyc2lvbigpCgl7CgkJcmV0dXJuICcxLjEnOwoJfQoKCWZ1bmN0aW9uIEluc3RhbGxQb3N0TWVzc2FnZSgpCgl7CgkJcmV0dXJuICR0aGlzLT5MYW5nKCdwb3N0X2luc3RhbGwnKTsKCX0KCgoJZnVuY3Rpb24gQ2hlY2tBY2Nlc3MoJHBlcm1pc3Npb249J01vZGlmeSBGb3JtcycpCgl7CgkJJGFjY2VzcyA9ICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJHBlcm1pc3Npb24pOwoJCWlmICghJGFjY2VzcykgIHsKCQkJZWNobyAiPHAgY2xhc3M9XCJlcnJvclwiPiIuJHRoaXMtPkxhbmcoJ3lvdV9uZWVkX3Blcm1pc3Npb24nLCRwZXJtaXNzaW9uKS4iPC9wPiI7CgkJCXJldHVybiBmYWxzZTsKCQl9CgkJZWxzZSByZXR1cm4gdHJ1ZTsKCX0KCgkvKgoJRE8gTk9UIGFsbG93IHBhcmFtZXRlcnMgdG8gYmUgdXNlZCBmb3IgcGFzc2luZyB0aGUgb3JkZXJfYnkhIEl0IGlzIG5vdCBlc2NhcGVkIGJlZm9yZQoJZGF0YWJhc2UgYWNjZXNzLiBJZiB3ZSBsZXQgQURPREIgcXVvdGUgaXQsIHRoZSBTUUwgaXMgbm90IHZhbGlkIChub3QgdGhhdCBNeVNRTCBjYXJlcywKCWJ1dCBQb3N0Z3JlcyBkb2VzKS4KCSovCglmdW5jdGlvbiBHZXRGb3Jtcygkb3JkZXJfYnk9J25hbWUnKQoJewogICAgICAgIGdsb2JhbCAkZ0NtczsKCQkkZGIgPSYgJGdDbXMtPkdldERiKCk7CgkJJHNxbCA9ICJTRUxFQ1QgKiBGUk9NICIuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZm9ybSBPUkRFUiBCWSAnLiRvcmRlcl9ieTsKCSAgICAkcmVzdWx0ID0gYXJyYXkoKTsKCSAgICAkcnMgPSAkZGItPkV4ZWN1dGUoJHNxbCk7CgkgICAgaWYoJHJzICYmICRycy0+UmVjb3JkQ291bnQoKSA+IDApCgkgICAgCXsKCSAgICAgICAgJHJlc3VsdCA9ICRycy0+R2V0QXJyYXkoKTsKCSAgICAJfQoJICAgIHJldHVybiAkcmVzdWx0OwoJfQkKCiAgICBmdW5jdGlvbiBHZXRGb3JtSURGcm9tQWxpYXMoJGZvcm1fYWxpYXMpCgl7CiAgICAgICAgZ2xvYmFsICRnQ21zOwoJCSRkYiA9JiAkZ0Ntcy0+R2V0RGIoKTsKCQkkc3FsID0gJ1NFTEVDVCBmb3JtX2lkIGZyb20gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9mb3JtIFdIRVJFIGFsaWFzID0gPyc7CgkJJHJzID0gJGRiLT5FeGVjdXRlKCRzcWwsIGFycmF5KCRmb3JtX2FsaWFzKSk7CgkJaWYoJHJzICYmICRycy0+UmVjb3JkQ291bnQoKSA+IDApCgkJewoJCQkkcmVzdWx0ID0gJHJzLT5GZXRjaFJvdygpOwoJCX0KCQlyZXR1cm4gJHJlc3VsdFsnZm9ybV9pZCddOwoJfQoKCWZ1bmN0aW9uIEdldEZvcm1OYW1lRnJvbUlEKCRmb3JtX2lkKQoJewogICAgICAgIGdsb2JhbCAkZ0NtczsKCQkkZGIgPSYgJGdDbXMtPkdldERiKCk7CgkJJHNxbCA9ICdTRUxFQ1QgbmFtZSBmcm9tICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZm9ybSBXSEVSRSBmb3JtX2lkID0gPyc7CgkJJHJzID0gJGRiLT5FeGVjdXRlKCRzcWwsIGFycmF5KCRmb3JtX2lkKSk7CgkJaWYoJHJzICYmICRycy0+UmVjb3JkQ291bnQoKSA+IDApCgkJewoJCQkkcmVzdWx0ID0gJHJzLT5GZXRjaFJvdygpOwoJCX0KCQlyZXR1cm4gJHJlc3VsdFsnbmFtZSddOwoJfQoKCWZ1bmN0aW9uIEdldEZvcm1CeUlEKCRmb3JtX2lkLCAkbG9hZERlZXA9ZmFsc2UpCgl7CgkJCSRwYXJhbXMgPSBhcnJheSgnZm9ybV9pZCc9PiRmb3JtX2lkKTsKCQkgICAgJGZvcm0gPSBuZXcgZmJGb3JtKCR0aGlzLCAkcGFyYW1zLCAkbG9hZERlZXApOwoJCSAgICByZXR1cm4gJGZvcm07Cgl9CgoJZnVuY3Rpb24gR2V0Rm9ybUJ5UGFyYW1zKCYkcGFyYW1zLCAkbG9hZERlZXA9ZmFsc2UpCgl7CgkJICAgICRmb3JtID0gbmV3IGZiRm9ybSgkdGhpcywgJHBhcmFtcywgJGxvYWREZWVwKTsKCQkgICAgcmV0dXJuICRmb3JtOwoJfQoKCQoJZnVuY3Rpb24gR2V0SGVscCgkbGFuZyA9ICdlbl9VUycpCgl7CgkJcmV0dXJuICR0aGlzLT5MYW5nKCdoZWxwJyk7Cgl9CgoKCWZ1bmN0aW9uIEdldFJlc3BvbnNlKCRmb3JtX2lkLCRyZXNwb25zZV9pZCwkZmllbGRfbGlzdD1hcnJheSgpLCAkZGF0ZUZtdD0nZCBGIHknKQoJewoJCSRuYW1lcyA9IGFycmF5KCk7CgkJJHZhbHVlcyA9IGFycmF5KCk7CgkJZ2xvYmFsICRnQ21zOwoJCSRkYiA9JiAkZ0Ntcy0+R2V0RGIoKTsKCiAgICAgICAJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLgogICAgICAgIAkJCSdtb2R1bGVfZmJfcmVzcCBXSEVSRSByZXNwX2lkPT8nLCBhcnJheSgkcmVzcG9uc2VfaWQpKTsKCgkJJG9uZXNldCA9IG5ldyBzdGRDbGFzcygpOwoJCWlmICgkZGJyZXN1bHQgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSkKCQkJewkJCQoJCQkkb25lc2V0LT5pZCA9ICRyb3dbJ3Jlc3BfaWQnXTsKCQkJJG9uZXNldC0+dXNlcl9hcHByb3ZlZCA9IChlbXB0eSgkcm93Wyd1c2VyX2FwcHJvdmVkJ10pPycnOmRhdGUoJGRhdGVGbXQsJGRiLT5Vbml4VGltZVN0YW1wKCRyb3dbJ3VzZXJfYXBwcm92ZWQnXSkpKTsgCiAJCQkkb25lc2V0LT5hZG1pbl9hcHByb3ZlZCA9IChlbXB0eSgkcm93WydhZG1pbl9hcHByb3ZlZCddKT8nJzpkYXRlKCRkYXRlRm10LCRkYi0+VW5peFRpbWVTdGFtcCgkcm93WydhZG1pbl9hcHByb3ZlZCddKSkpOwoJCQkkb25lc2V0LT5zdWJtaXR0ZWQgPSBkYXRlKCRkYXRlRm10LCRkYi0+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+IC0xKQoJCQkJCQl7CgkJCQkJCWlmICgkcG9wdWxhdGVfbmFtZXMpCgkJCQkJCQl7CgkJCQkJCQkkbmFtZXNbJGZpZWxkX2xpc3RbJGZpZWxkc1skal0tPkdldElkKCldXSA9ICRmaWVsZHNbJGpdLT5HZXROYW1lKCk7CgkJCQkJCQl9CiAgICAgICAgICAgICAgICAJCSR2YWx1ZXNbJGldLT5maWVsZHNbJGZpZWxkX2xpc3RbJGZpZWxkc1skal0tPkdldElkKCldXSA9ICRmaWVsZHNbJGpdLT5HZXRIdW1hblJlYWRhYmxlVmFsdWUoKTsKICAgICAgICAgICAgICAgIAkJfQogICAgICAgICAgICAgICAgCX0KICAgICAgICAJCX0KICAgICAgICAJJHBvcHVsYXRlX25hbWVzID0gZmFsc2U7CgkJCX0KCQkJCgkJaWYgKGlzc2V0KCRwYXJhbXNbJ2ZicnBfc29ydF9maWVsZCddKSkKCQkJewoJCQkkc2YgPSAtMTsKCQkJZm9yKCRqPTA7JGo8Y291bnQoJGZpZWxkcyk7JGorKykKCQkJCXsKCQkJCWlmICghc3RyY2FzZWNtcCgkZmllbGRzWyRqXS0+R2V0TmFtZSgpLCRwYXJhbXNbJ2ZicnBfc29ydF9maWVsZCddKSkKCQkJCQl7CgkJCQkJJHNmID0gJGZpZWxkX2xpc3RbJGZpZWxkc1skal0tPkdldElkKCldOwoJCQkJCX0KCQkJCX0KCQkJLy8ga2x1ZGdlLCBiZWNhdXNlIHNvcnQgaW5zdGFudGlhdGlvbiBicmVha3MgdW5kZXIgUEhQIDQsIGFuZCBJIGNhbid0IHBhc3MgZXh0cmEgcGFyYW1zIHRvIHRoZSBzb3J0CgkJCWZvcigkaj0wOyRqPGNvdW50KCR2YWx1ZXMpOyRqKyspCgkJCQl7CgkJCQkkdmFsdWVzWyRqXS0+c2YgPSAkc2Y7CgkJCQl9CgoJCQlpZiAoaXNzZXQoJHBhcmFtc1snZmJycF9zb3J0X2RpciddKSAmJiAkcGFyYW1zWydmYnJwX3NvcnRfZGlyJ10gPT0gJ2EnKQoJCQkJewoJCQkJdXNvcnQoJHZhbHVlcywgYXJyYXkoIkZvcm1CdWlsZGVyIiwiZmllbGRfc29ydGVyX2FzYyIpKTsKCQkJCX0KCQkJZWxzZQoJCQkJewoJCQkJdXNvcnQoJHZhbHVlcywgYXJyYXkoIkZvcm1CdWlsZGVyIiwiZmllbGRfc29ydGVyX2Rlc2MiKSk7CgkJCQl9CgkJCX0KCQlpZiAoJHJlY29yZHMgPiAkbnVtYmVyKQoJCQl7CgkJCSR2YWx1ZXMgPSBhcnJheV9zbGljZSggJHZhbHVlcywgJHN0YXJ0X3BvaW50LCAkbnVtYmVyKTsKCQkJLy8kcmVjb3JkcyA9ICRudW1iZXI7CgkJCX0KCQlyZXR1cm4gYXJyYXkoJHJlY29yZHMsICRuYW1lcywgJHZhbHVlcyk7Cgl9CgoKCWZ1bmN0aW9uIGZpZWxkX3NvcnRlcl9hc2MoJGEsICRiKQoJewogICAgCXJldHVybiBzdHJjYXNlY21wKCRhLT5maWVsZHNbJGEtPnNmXSwgJGItPmZpZWxkc1skYS0+c2ZdKTsKCX0KCglmdW5jdGlvbiBmaWVsZF9zb3J0ZXJfZGVzYygkYSwgJGIpCgl7CiAgICAJcmV0dXJuIHN0cmNhc2VjbXAoJGItPmZpZWxkc1skdGhpcy0+c29ydEZpZWxkXSwgJGEtPmZpZWxkc1skdGhpcy0+c29ydEZpZWxkXSk7Cgl9CgoJCgkvLyBGb3IgYSBnaXZlbiBmb3JtLCByZXR1cm5zIGFuIGFycmF5IG9mIHJlc3BvbnNlIG9iamVjdHMKCWZ1bmN0aW9uIExpc3RSZXNwb25zZXMoJGZvcm1faWQsICRzb3J0X29yZGVyPSdzdWJtaXR0ZWQnKQoJewoJCWdsb2JhbCAkZ0NtczsKCQkkZGIgPSYgJGdDbXMtPkdldERiKCk7CgkJJHJldCA9IGFycmF5KCk7CgkJJHNxbCA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLgogICAgICAgIAkJCSdtb2R1bGVfZmJfcmVzcCBXSEVSRSBmb3JtX2lkPT8gT1JERVIgQlkgPyc7CiAgICAgICAJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGZvcm1faWQsJHNvcnRfb3JkZXIpKTsKCQl3aGlsZSAoJGRicmVzdWx0ICYmICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpCgkJCXsKCQkJJG9uZXNldCA9IG5ldyBzdGRDbGFzcygpOwoJCQkkb25lc2V0LT5pZCA9ICRyZXN1bHRbJ3Jlc3BfaWQnXTsKCQkJJG9uZXNldC0+dXNlcl9hcHByb3ZlZCA9ICRkYi0+VW5peFRpbWVTdGFtcCgkcmVzdWx0Wyd1c2VyX2FwcHJvdmVkJ10pOyAKIAkJCSRvbmVzZXQtPmFkbWluX2FwcHJvdmVkID0gJGRiLT5Vbml4VGltZVN0YW1wKCRyZXN1bHRbJ2FkbWluX2FwcHJvdmVkJ10pOyAKCQkJJG9uZXNldC0+c3VibWl0dGVkID0gJGRiLT5Vbml4VGltZVN0YW1wKCRyZXN1bHRbJ3N1Ym1pdHRlZCddKTsgCgkJICAgIGFycmF5X3B1c2goJHJldCwkb25lc2V0KTsKCQkgICAgfQoJCXJldHVybiAkcmV0OwoJfQoKICAgIGZ1bmN0aW9uIGRlZigmJHZhcikKICAgIHsKICAgIAlpZiAoIWlzc2V0KCR2YXIpKQogICAgCSAgIHsKICAgIAkgICAJcmV0dXJuIGZhbHNlOwogICAgCSAgIH0KICAgIAllbHNlIGlmIChpc19udWxsKCR2YXIpKQogICAgCSAgIHsKICAgIAkgICAJcmV0dXJuIGZhbHNlOwogICAgCSAgIH0KICAgIAllbHNlIGlmICghaXNfYXJyYXkoJHZhcikgJiYgZW1wdHkoJHZhcikpCiAgICAJICAgewogICAgCSAgIAlyZXR1cm4gZmFsc2U7CiAgICAJICAgfQogICAgCWVsc2UgaWYgKGlzX2FycmF5KCR2YXIpICYmIGNvdW50KCR2YXIpID09IDApCiAgICAJICAgewogICAgCSAgIAlyZXR1cm4gZmFsc2U7CiAgICAJICAgfQogICAgCXJldHVybiB0cnVlOwogICAgfQoKICAgIGZ1bmN0aW9uIENsZWFyRmlsZUxvY2soKQogICAgewoJCWdsb2JhbCAkZ0NtczsKCQkkZGIgPSYgJGdDbXMtPkdldERiKCk7CgkJJHNxbCA9ICJERUxFVEUgZnJvbSAiLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zsb2NrJzsKCQkkcnMgPSAkZGItPkV4ZWN1dGUoJHNxbCk7CiAgICB9CgoKICAgIGZ1bmN0aW9uIEdldEZpbGVMb2NrKCkKICAgIHsKCQlnbG9iYWwgJGdDbXM7CgkJJGRiID0mICRnQ21zLT5HZXREYigpOwoJCSRzcWwgPSAiaW5zZXJ0IGludG8gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mYl9mbG9jayAoZmxvY2tfaWQsIGZsb2NrKSB2YWx1ZXMgKDEsIi4kZGItPnN5c1RpbWVTdGFtcC4iKSI7CgkJJHJzID0gJGRiLT5FeGVjdXRlKCRzcWwpOwogICAgICAgIGlmICgkcnMpCiAgICAgICAgCXsKICAgICAgICAJcmV0dXJuIHRydWU7CiAgICAgICAgCX0KICAgICAgICAkc3FsID0gIlNFTEVDVCBmbG9ja19pZCBGUk9NICIuY21zX2RiX3ByZWZpeCgpLgogICAgICAgIAkibW9kdWxlX2ZiX2Zsb2NrIHdoZXJlIGZsb2NrICsgaW50ZXJ2YWwgMTUgc2Vjb25kIDwgIi4kZGItPnN5c1RpbWVTdGFtcDsKCQkkcnMgPSAkZGItPkV4ZWN1dGUoJHNxbCk7CiAgICAgICAgaWYgKCRycyAmJiAkcnMtPlJlY29yZENvdW50KCkgPiAwKQogICAgICAgIAl7CiAgICAgICAgCSR0aGlzLT5DbGVhckZpbGVMb2NrKCk7CiAgICAgICAgCXJldHVybiBmYWxzZTsKICAgICAgICAJfSAgICAgICAgCSAKCQlyZXR1cm4gZmFsc2U7CiAgICB9CgogICAgZnVuY3Rpb24gUmV0dXJuRmlsZUxvY2soKQogICAgewoJCSR0aGlzLT5DbGVhckZpbGVMb2NrKCk7CiAgICB9CgogIGZ1bmN0aW9uIEdldEV2ZW50RGVzY3JpcHRpb24gKCAkZXZlbnRuYW1lICkKICB7CiAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ2V2ZW50X2luZm9fJy4kZXZlbnRuYW1lICk7CiAgfQoKICBmdW5jdGlvbiBHZXRFdmVudEhlbHAgKCAkZXZlbnRuYW1lICkKICB7CiAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ2V2ZW50X2hlbHBfJy4kZXZlbnRuYW1lICk7CiAgfQoKCiAgZnVuY3Rpb24gQ3JlYXRlUGFnZURyb3Bkb3duKCRpZCwkbmFtZSwkY3VycmVudD0nJywKCQkJICAgICAgJGFkZHRleHQ9JycsJG1hcmtkZWZhdWx0ID10cnVlKQogIHsKICAgIC8vIHdlIGdldCBoZXJlIChob3BlZnVsbHkpIHdoZW4gdGhlIHRlbXBsYXRlIGlzIGNoYW5nZWQKICAgIC8vIGluIHRoZSBkcm9wZG93bi4KICAgICRkYiA9JiAkdGhpcy0+R2V0RGIoKTsKICAgIGdsb2JhbCAkZ0NtczsKICAgICRkZWZhdWx0aWQgPSAnJzsKICAgIGlmKCAkbWFya2RlZmF1bHQgKQogICAgICB7CgkkY29udGVudG9wcyA9JiAkZ0Ntcy0+R2V0Q29udGVudE9wZXJhdGlvbnMoKTsKCSRkZWZhdWx0aWQgPSAkY29udGVudG9wcy0+R2V0RGVmYXVsdFBhZ2VJRCgpOwogICAgICB9CiAgICAKICAgIC8vIGdldCBhIGxpc3Qgb2YgdGhlIHBhZ2VzIHVzZWQgYnkgdGhpcyB0ZW1wbGF0ZQogICAgJG15cGFnZXMgPSBhcnJheSgpOwogICAgJHBhcm1zID0gYXJyYXkoJ2NvbnRlbnQnKTsKICAgICRxID0gIlNFTEVDVCBjb250ZW50X2lkLGNvbnRlbnRfbmFtZSAKICAgICAgICAgICAgICAgIEZST00gIi5jbXNfZGJfcHJlZml4KCkuImNvbnRlbnQKICAgICAgICAgICAgICAgV0hFUkUgdHlwZSA9ID8KICAgICAgICAgICAgICAgICBBTkQgYWN0aXZlID0gMSI7CiAgICAkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoICRxLCAkcGFybXMgKTsKICAgIHdoaWxlKCAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpICkKICAgICAgewoJaWYoICRkZWZhdWx0aWQgIT0gJycgJiYgJHJvd1snY29udGVudF9pZCddID09ICRkZWZhdWx0aWQgKQoJICB7CgkgICAgLy8gdXNlIGEgc3RhciBpbnN0ZWFkIG9mIGEgd29yZCBoZXJlIHNvIEkgZG9uJ3QgaGF2ZSB0bwoJICAgIC8vIHdvcnJ5IGFib3V0IHRyYW5zbGF0aW9uIHN0dWZmCgkgICAgJG15cGFnZXNbJHJvd1snY29udGVudF9uYW1lJ10uJyAoKiknXSA9ICRyb3dbJ2NvbnRlbnRfaWQnXTsKCSAgfQoJZWxzZQoJICB7CgkgICAgJG15cGFnZXNbJHJvd1snY29udGVudF9uYW1lJ11dID0gJHJvd1snY29udGVudF9pZCddOwoJICB9CiAgICAgIH0KCiAgICByZXR1cm4gJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCdmYnJwXycuJG5hbWUsJG15cGFnZXMsLTEsJGN1cnJlbnQsJGFkZHRleHQpOwogIH0KCglmdW5jdGlvbiBTdXBwcmVzc0FkbWluT3V0cHV0KCYkcmVxdWVzdCkKICAgewogICAgICBpZiAoc3RycG9zKCRfU0VSVkVSWydRVUVSWV9TVFJJTkcnXSwnZXhwb3J0eG1sJykgIT09IGZhbHNlKQogICAgICAgICB7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgIGVsc2VpZiAoc3RycG9zKCRfU0VSVkVSWydRVUVSWV9TVFJJTkcnXSwnYWRtaW5fZ2V0X3RlbXBsYXRlJykgIT09IGZhbHNlKQogICAgICAgICB7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgIHJldHVybiBmYWxzZTsKICAgfQoKCn0gLy8gRW5kIG9mIENsYXNzCgojIHZpbTp0cz00IHN3PTQgbm9ldAo/Pgo=]]></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/Contact_Form.xml</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPGZvcm0gaWQ9IjEiCgluYW1lPSJDb250YWN0IEZvcm0iCglhbGlhcz0iY29udGFjdCI+CgkJPGF0dHJpYnV0ZSBrZXk9ImNzc19jbGFzcyI+PCFbQ0RBVEFbY29udGFjdGZvcm1dXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0iY2FwdGNoYV93cm9uZyI+PCFbQ0RBVEFbQ2FwdGNoYSB3YXMgbm90IGNvcnJlY3QuXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9ImZvcm1fdGVtcGxhdGUiPjwhW0NEQVRBW3sqIERFRkFVTFQgRk9STSBMQVlPVVQgLyBwdXJlIENTUyAqfQp7JGZiX2Zvcm1faGVhZGVyfQp7aWYgJGZiX2Zvcm1fZG9uZSA9PSAxfQoJeyogVGhpcyBmaXJzdCBzZWN0aW9uIGlzIGZvciBkaXNwbGF5aW5nIHN1Ym1pc3Npb24gZXJyb3JzICp9Cgl7aWYgJGZiX3N1Ym1pc3Npb25fZXJyb3J9CgkJPGRpdiBjbGFzcz0iZXJyb3JfbWVzc2FnZSI+eyRmYl9zdWJtaXNzaW9uX2Vycm9yfTwvZGl2PgoJCXtpZiAkZmJfc2hvd19zdWJtaXNzaW9uX2Vycm9yc30KCQkJPGRpdiBjbGFzcz0iZXJyb3IiPgoJCQk8dWw+CgkJCXtmb3JlYWNoIGZyb209JGZiX3N1Ym1pc3Npb25fZXJyb3JfbGlzdCBpdGVtPXRoaXNFcnJ9CgkJCQk8bGk+eyR0aGlzRXJyfTwvbGk+CgkJCXsvZm9yZWFjaH0KCQkJPC91bD4KCQk8L2Rpdj4KCQl7L2lmfQoJey9pZn0Ke2Vsc2V9Cgl7KiB0aGlzIHNlY3Rpb24gaXMgZm9yIGRpc3BsYXlpbmcgdGhlIGZvcm0gKn0KCXsqIHdlIHN0YXJ0IHdpdGggdmFsaWRhdGlvbiBlcnJvcnMgKn0KCXtpZiAkZmJfZm9ybV9oYXNfdmFsaWRhdGlvbl9lcnJvcnN9CgkJPGRpdiBjbGFzcz0iZXJyb3JfbWVzc2FnZSI+CgkJPHVsPgoJCXtmb3JlYWNoIGZyb209JGZiX2Zvcm1fdmFsaWRhdGlvbl9lcnJvcnMgaXRlbT10aGlzRXJyfQoJCQk8bGk+eyR0aGlzRXJyfTwvbGk+CgkJey9mb3JlYWNofQoJCTwvdWw+CgkJPC9kaXY+Cgl7L2lmfQoJe2lmICRjYXB0Y2hhX2Vycm9yfQoJCTxkaXYgY2xhc3M9ImVycm9yX21lc3NhZ2UiPnskY2FwdGNoYV9lcnJvcn08L2Rpdj4KCXsvaWZ9CgoJeyogYW5kIG5vdyB0aGUgZm9ybSBpdHNlbGYgKn0KCXskZmJfZm9ybV9zdGFydH0KCXskZmJfaGlkZGVufQoJPGRpdntpZiAkY3NzX2NsYXNzICE9ICcnfSBjbGFzcz0ieyRjc3NfY2xhc3N9InsvaWZ9PgoJe2lmICR0b3RhbF9wYWdlcyBndCAxfTxzcGFuPnskdGl0bGVfcGFnZV94X29mX3l9PC9zcGFuPnsvaWZ9Cgl7Zm9yZWFjaCBmcm9tPSRmaWVsZHMgaXRlbT1lbnRyeX0KCQl7aWYgJGVudHJ5LT5kaXNwbGF5ID09IDF9CiAgICAgICAgCXtzdHJpcH0KICAgICAgICAgCXtpZiAkZW50cnktPm5lZWRzX2RpdiA9PSAxfQogICAgICAgICAgICAJPGRpdgogICAgICAgICAgICAJe2lmICRlbnRyeS0+cmVxdWlyZWQgPT0gMSB8fCAkZW50cnktPmNzc19jbGFzcyAhPSAnJ30gY2xhc3M9IgogICAgICAgICAgICAgIAkJe2lmICRlbnRyeS0+cmVxdWlyZWQgPT0gMX0KICAgICAgICAgICAgICAgIAkJcmVxdWlyZWQKICAgICAgICAgICAgICAJCXsvaWZ9CiAgICAgICAgICAgICAgCQl7aWYgJGVudHJ5LT5yZXF1aXJlZCA9PSAxICYmICRlbnRyeS0+Y3NzX2NsYXNzICE9ICcnfSB7L2lmfQogICAgICAgICAgICAgIAkJe2lmICRlbnRyeS0+Y3NzX2NsYXNzICE9ICcnfQogICAgICAgICAgICAgICAgCQl7JGVudHJ5LT5jc3NfY2xhc3N9CiAgICAgICAgICAgICAgCQl7L2lmfQogICAgICAgICAgICAgIAkJIgogICAgICAgICAgICAJey9pZn0KICAgICAgICAgICAgCT4KICAgICAgICAgCXsvaWZ9CiAgICAgICAgIAl7aWYgJGVudHJ5LT5oaWRlX25hbWUgPT0gMH0KICAgICAgICAgICAgCTxsYWJlbHtpZiAkZW50cnktPm11bHRpcGxlX3BhcnRzICE9IDF9IGZvcj0ieyRlbnRyeS0+aW5wdXRfaWR9InsvaWZ9PnskZW50cnktPm5hbWV9CiAgICAgICAgICAgIAl7aWYgJGVudHJ5LT5yZXF1aXJlZF9zeW1ib2wgIT0gJyd9CiAgICAgICAgICAgICAgIAkJeyRlbnRyeS0+cmVxdWlyZWRfc3ltYm9sfQogICAgICAgICAgICAJey9pZn0KICAgICAgICAgICAgCTwvbGFiZWw+CiAgICAgICAgIAl7L2lmfQogICAgICAgICAJe2lmICRlbnRyeS0+bXVsdGlwbGVfcGFydHMgPT0gMX0KICAgICAgICAgICAgCXtzZWN0aW9uIG5hbWU9bnVtbG9vcCBsb29wPSRlbnRyeS0+aW5wdXR9CiAgICAgICAgICAgICAgIAkJe2lmICRlbnRyeS0+bGFiZWxfcGFydHMgPT0gMX0KICAgICAgICAgICAgICAgCQkJPGRpdj57JGVudHJ5LT5pbnB1dFtudW1sb29wXS0+aW5wdXR9Jm5ic3A7eyRlbnRyeS0+aW5wdXRbbnVtbG9vcF0tPm5hbWV9PC9kaXY+CiAgICAgICAgICAgICAgIAkJe2Vsc2V9CiAgICAgICAgICAgICAgIAkJCXskZW50cnktPmlucHV0W251bWxvb3BdLT5pbnB1dH0KICAgICAgICAgICAgICAgCQl7L2lmfQogICAgICAgICAgICAgICAJCXtpZiAkZW50cnktPmlucHV0W251bWxvb3BdLT5vcH17JGVudHJ5LT5pbnB1dFtudW1sb29wXS0+b3B9ey9pZn0KICAgICAgICAgICAgCXsvc2VjdGlvbn0KICAgICAgICAgCXtlbHNlfQogICAgICAgICAgICAJe2lmICRlbnRyeS0+c21hcnR5X2V2YWwgPT0gJzEnfXtldmFsIHZhcj0kZW50cnktPmlucHV0fXtlbHNlfXskZW50cnktPmlucHV0fXsvaWZ9CiAgICAgICAgIAl7L2lmfQogICAgICAgICAJe2lmICRlbnRyeS0+dmFsaWQgPT0gMH0gJmx0Oy0tLSB7JGVudHJ5LT5lcnJvcn17L2lmfQogICAgICAgICAJe2lmICRlbnRyeS0+bmVlZHNfZGl2ID09IDF9CiAgICAgICAgICAgIAk8L2Rpdj4KICAgICAgICAgCXsvaWZ9CiAgICAgICAgIAl7L3N0cmlwfQogICAgIAl7L2lmfQoJey9mb3JlYWNofQoJe2lmICRoYXNfY2FwdGNoYSA9PSAxfQoJCTxkaXYgY2xhc3M9ImNhcHRjaGEiPnskZ3JhcGhpY19jYXB0Y2hhfXskdGl0bGVfY2FwdGNoYX08YnIgLz57JGlucHV0X2NhcHRjaGF9PC9kaXY+Cgl7L2lmfQoJPGRpdiBjbGFzcz0ic3VibWl0Ij57JHByZXZ9eyRzdWJtaXR9PC9kaXY+Cgk8L2Rpdj4KCXskZmJfZm9ybV9lbmR9CnsvaWZ9CnskZmJfZm9ybV9mb290ZXJ9XV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9InVzZV9jYXB0Y2hhIj48IVtDREFUQVswXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9InN1Ym1pdF9hY3Rpb24iPjwhW0NEQVRBW3RleHRdXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0idGl0bGVfdXNlcl9jYXB0Y2hhIj48IVtDREFUQVtQbGVhc2UgY29uZmlybSB0aGF0IHlvdSBhcmUgbm90IGEgc2NyaXB0IGJ5IGVudGVyaW5nIHRoZSBsZXR0ZXJzIGZyb20gdGhlIGltYWdlLl1dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJuZXh0X2J1dHRvbl90ZXh0Ij48IVtDREFUQVtDb250aW51ZS4uLl1dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJwcmV2X2J1dHRvbl90ZXh0Ij48IVtDREFUQVtCYWNrLi4uXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9InJlcXVpcmVkX2ZpZWxkX3N5bWJvbCI+PCFbQ0RBVEFbKl1dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJ1bnNwZWNpZmllZCI+PCFbQ0RBVEFbW3Vuc3BlY2lmaWVkXV1dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJzdWJtaXRfYnV0dG9uX3RleHQiPjwhW0NEQVRBW1N1Ym1pdCBGb3JtXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9ImlucHV0X2J1dHRvbl9zYWZldHkiPjwhW0NEQVRBWzBdXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0icmVkaXJlY3RfcGFnZSI+PCFbQ0RBVEFbLTFdXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0ic3VibWl0X3Jlc3BvbnNlIj48IVtDREFUQVs8cD5UaGFuayB5b3UsIDxzdHJvbmc+eyR5b3VyX25hbWV9PC9zdHJvbmc+LjwvcD4KPHA+WW91ciBzdWJtaXNzaW9uIGhhcyBiZWVuIHN1Y2Nlc3NmdWwuIFlvdSBtYXkgd2lzaCB0byBwcmludCB0aGlzIHBhZ2UgYXMgYSByZWZlcmVuY2UuPC9wPgo8aDM+Q29udGFjdCBEZXRhaWxzPC9oMz4KPHA+CjxzdHJvbmc+TmFtZTwvc3Ryb25nPjogeyR5b3VyX25hbWV9PGJyIC8+CjxzdHJvbmc+RW1haWw8L3N0cm9uZz46IDxhIGhyZWY9Im1haWx0bzp7JHlvdXJfZW1haWxfYWRkcmVzc30iPnskeW91cl9lbWFpbF9hZGRyZXNzfTwvYT48YnIgLz4KPC9wPgo8aDM+RmVlZGJhY2sgRGV0YWlsczwvaDM+CjxwPgo8c3Ryb25nPlN1YmplY3Q8L3N0cm9uZz46IHskc3ViamVjdH08YnIgLz4KPHN0cm9uZz5Db21tZW50czwvc3Ryb25nPjo8YnIgLz4KeyRtZXNzYWdlfQo8L3A+IAo8aDQ+T3RoZXIgaW5mb3JtYXRpb248L2g0Pgo8cD4KPHN0cm9uZz5EYXRlIG9mIFN1Ym1pc3Npb248L3N0cm9uZz46IHskc3ViX2RhdGV9PGJyIC8+CjxzdHJvbmc+Rm9ybSBOYW1lPC9zdHJvbmc+OiB7JHN1Yl9mb3JtX25hbWV9PGJyIC8+CjxzdHJvbmc+VVJMIG9mIHBhZ2UgY29udGFpbmluZyBmb3JtPC9zdHJvbmc+OiB7JHN1Yl91cmx9PGJyIC8+CjxzdHJvbmc+RG9tYWluPC9zdHJvbmc+OiB7JHN1Yl9ob3N0fTxiciAvPgo8c3Ryb25nPllvdXIgSVAgYWRkcmVzczwvc3Ryb25nPjogeyRzdWJfc291cmNlX2lwfQo8L3A+IF1dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJsaXN0X2RlbGltaXRlciI+PCFbQ0RBVEFbLF1dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJ1c2VfY3BhdGNoYSI+PCFbQ0RBVEFbXV0+PC9hdHRyaWJ1dGU+Cgk8ZmllbGQgaWQ9IjEiCgkJdHlwZT0iRGlzcG9zaXRpb25FbWFpbCIKCQluYW1lPSJVUERBVEUgVEhJUyBGSUVMRCIKCQl2YWxpZGF0aW9uX3R5cGU9IiIKCQlvcmRlcl9ieT0iMSIKCQlyZXF1aXJlZD0iMCIKCQloaWRlX2xhYmVsPSIwIj4KCQkJPG9wdGlvbiBuYW1lPSJlbWFpbF9zdWJqZWN0Ij48IVtDREFUQVtObyBTdWJqZWN0IFNldF1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImVtYWlsX2Zyb21fbmFtZSI+PCFbQ0RBVEFbTm8gTmFtZSBHaXZlbl1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImVtYWlsX2Zyb21fYWRkcmVzcyI+PCFbQ0RBVEFbbm9ib2R5QHNhbXBsZS5jb21dXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJkZXN0aW5hdGlvbl9hZGRyZXNzIj48IVtDREFUQVt5b3VAeW91cmRvbWFpbi5jb21dXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJlbWFpbF90ZW1wbGF0ZSI+PCFbQ0RBVEFbPGh0bWw+CjxoZWFkPgp7bGl0ZXJhbH0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KPCEtLQpib2R5IHtmb250Ojg1JS8xLjMgVmVyZGFuYSxBcmlhbCxzYW5zfQpoMSwgaDIsIGgzLCBoNCwgaDUsIGg2IHsgbWFyZ2luOiAwcHggfQpoMSB7IGZvbnQtc2l6ZTogMi4yZW07IHBhZGRpbmc6IDBweDsgfQpoMiB7IGZvbnQtc2l6ZTogMS44ZW07IGZvbnQtd2VpZ2h0OiBub3JtYWwgfQpoMiwgaDMsIGg0LCBoNSB7IGZvbnQtZmFtaWx5OiBBcmlhbCwgR2VuZXZhOyBtYXJnaW4tdG9wOiAxZW07IH0KaDMgewogICBmb250LXNpemU6IDEuNjVlbTsKICAgZm9udC13ZWlnaHQ6IG5vcm1hbDsKICAgZm9udC1zdHlsZTppdGFsaWM7CiAgIGNvbG9yOiAjRjYwOwogICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzAwMDsKfQpoNCB7CiAgIGZvbnQtc2l6ZTogMS4yNWVtOwogICBwYWRkaW5nOiAwZW0gMC4yZW07CiAgIGNvbG9yOiMwMDVDQUI7CiAgIGJvcmRlci10b3A6MXB4IHNvbGlkICMwMDA7CiAgIGJvcmRlci1ib3R0b206MXB4IHNvbGlkICMwMDA7CiAgIG1hcmdpbi10b3A6IDAKfQpoNSB7IGZvbnQtc2l6ZTogMS4yZW07IGZvbnQtc3R5bGU6aXRhbGljOyBjb2xvcjojMDA1Q0FCfQpoNiB7IGZvbnQtc2l6ZTogMC45ZW07IGNvbG9yOiM2NjY7IGZvbnQtdmFyaWFudDpzbWFsbC1jYXBzfQpwIHsgbWFyZ2luOiAwLjVlbSAwIDFlbTsgbGluZS1oZWlnaHQ6IDEuNDsgfQpociB7IGJvcmRlcjowOyBib3JkZXItdG9wOjFweCBzb2xpZCAjRjYwOyBoZWlnaHQ6MXB4OyAgZm9udC1zaXplOjFweDsgYmFja2dyb3VuZDogI0Y2MDsgY29sb3I6ICNmZmZ9Ci5kb3R0ZWQtYm9yZGVyIHtib3JkZXI6IDFweCBkb3R0ZWQgI0Y2MDsgcGFkZGluZzogMC41ZW19Ci0tPgo8L3N0eWxlPgp7L2xpdGVyYWx9CjxiYXNlZm9udCBmYWNlPSJWZXJkYW5hLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmIiBjb2xvcj0iIzAwMDAwMCIgc2l6ZT0iMyIgLz4KPC9oZWFkPgo8Ym9keT4KPGgxPkZlZWRiYWNrIGZyb20geyRzdWJfaG9zdH0teyRzdWJfZm9ybV9uYW1lfTwvaDE+CjxoMj5Db250YWN0IERldGFpbHM8L2gyPgo8ZGl2IGNsYXNzPSJkb3R0ZWQtYm9yZGVyIj4KPHN0cm9uZz5OYW1lPC9zdHJvbmc+OiB7JHlvdXJfbmFtZX08YnIgLz4KPHN0cm9uZz5FbWFpbDwvc3Ryb25nPjogeyR5b3VyX2VtYWlsX2FkZHJlc3N9PGJyIC8+CjwvZGl2Pgo8aDI+RmVlZGJhY2sgRGV0YWlsczwvaDI+CjxkaXYgY2xhc3M9ImRvdHRlZC1ib3JkZXIiPgo8c3Ryb25nPlN1YmplY3Q8L3N0cm9uZz46IHskc3ViamVjdH08YnIgLz4KPHN0cm9uZz5Db21tZW50czwvc3Ryb25nPjo8YnIgLz4KeyRtZXNzYWdlfQo8L2Rpdj4KPGgzPk90aGVyIGluZm9ybWF0aW9uPC9oMz4KPHA+CjxzdHJvbmc+RGF0ZSBvZiBTdWJtaXNzaW9uPC9zdHJvbmc+OiB7JHN1Yl9kYXRlfTxiciAvPgo8c3Ryb25nPkZvcm0gTmFtZTwvc3Ryb25nPjogeyRzdWJfZm9ybV9uYW1lfTxiciAvPgo8c3Ryb25nPlVSTCBvZiBwYWdlIGNvbnRhaW5pbmcgZm9ybTwvc3Ryb25nPjogeyRzdWJfdXJsfTxiciAvPgo8c3Ryb25nPkRvbWFpbjo8L3N0cm9uZz4geyRzdWJfaG9zdH08YnIgLz4KPHN0cm9uZz5TZW5kZXIncyBJUDwvc3Ryb25nPjogeyRzdWJfc291cmNlX2lwfQo8L3A+CjwvYm9keT4KPC9odG1sPiBdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJlbWFpbF9lbmNvZGluZyI+PCFbQ0RBVEFbdXRmLThdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJodG1sX2VtYWlsIj48IVtDREFUQVsxXV0+PC9vcHRpb24+CjwvZmllbGQ+Cgk8ZmllbGQgaWQ9IjIiCgkJdHlwZT0iU3RhdGljVGV4dEZpZWxkIgoJCW5hbWU9IkNTUyIKCQl2YWxpZGF0aW9uX3R5cGU9IiIKCQlvcmRlcl9ieT0iMiIKCQlyZXF1aXJlZD0iMCIKCQloaWRlX2xhYmVsPSIwIj4KCQkJPG9wdGlvbiBuYW1lPSJ0ZXh0Ij48IVtDREFUQVs8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgouY29udGFjdGZvcm0gZmllbGRzZXQge3BhZGRpbmc6IDFlbTsgYmFja2dyb3VuZC1jb2xvcjogI2VlZTt9Ci5jb250YWN0Zm9ybSBmaWVsZHNldCBsZWdlbmQge2ZvbnQtd2VpZ2h0OiBib2xkO30KLmNvbnRhY3Rmb3JtIGRpdiB7d2lkdGg6IDEwMCU7IHBhZGRpbmc6IDAuMjVlbSAwIDAuMjVlbSAwO30KLmNvbnRhY3Rmb3JtIGRpdiBsYWJlbCB7ZGlzcGxheTogYmxvY2s7IHdpZHRoOiAxMGVtOyB9Ci5jb250YWN0Zm9ybSBkaXYucmVxdWlyZWQge2NvbG9yOiAjZjAwO30KPC9zdHlsZT5dXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJjc3NfY2xhc3MiPjwhW0NEQVRBW11dPjwvb3B0aW9uPgo8L2ZpZWxkPgoJPGZpZWxkIGlkPSIzIgoJCXR5cGU9IkZpZWxkc2V0U3RhcnQiCgkJbmFtZT0iQ29udGFjdCBGaWVsZHNldCIKCQl2YWxpZGF0aW9uX3R5cGU9IiIKCQlvcmRlcl9ieT0iMyIKCQlyZXF1aXJlZD0iMCIKCQloaWRlX2xhYmVsPSIwIj4KCQkJPG9wdGlvbiBuYW1lPSJsZWdlbmQiPjwhW0NEQVRBW0NvbnRhY3RdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJjc3NfY2xhc3MiPjwhW0NEQVRBW11dPjwvb3B0aW9uPgo8L2ZpZWxkPgoJPGZpZWxkIGlkPSI0IgoJCXR5cGU9IkZyb21FbWFpbE5hbWVGaWVsZCIKCQluYW1lPSJZb3VyIE5hbWUiCgkJdmFsaWRhdGlvbl90eXBlPSIiCgkJb3JkZXJfYnk9IjQiCgkJcmVxdWlyZWQ9IjAiCgkJaGlkZV9sYWJlbD0iMCI+CgkJCTxvcHRpb24gbmFtZT0iY3NzX2NsYXNzIj48IVtDREFUQVtdXT48L29wdGlvbj4KPC9maWVsZD4KCTxmaWVsZCBpZD0iNSIKCQl0eXBlPSJGcm9tRW1haWxBZGRyZXNzRmllbGQiCgkJbmFtZT0iWW91ciBFbWFpbCBBZGRyZXNzIgoJCXZhbGlkYXRpb25fdHlwZT0iZW1haWwiCgkJb3JkZXJfYnk9IjUiCgkJcmVxdWlyZWQ9IjAiCgkJaGlkZV9sYWJlbD0iMCI+CgkJCTxvcHRpb24gbmFtZT0iY3NzX2NsYXNzIj48IVtDREFUQVtdXT48L29wdGlvbj4KPC9maWVsZD4KCTxmaWVsZCBpZD0iNiIKCQl0eXBlPSJGcm9tRW1haWxTdWJqZWN0RmllbGQiCgkJbmFtZT0iU3ViamVjdCIKCQl2YWxpZGF0aW9uX3R5cGU9IiIKCQlvcmRlcl9ieT0iNiIKCQlyZXF1aXJlZD0iMCIKCQloaWRlX2xhYmVsPSIwIj4KCQkJPG9wdGlvbiBuYW1lPSJjc3NfY2xhc3MiPjwhW0NEQVRBW11dPjwvb3B0aW9uPgo8L2ZpZWxkPgoJPGZpZWxkIGlkPSI3IgoJCXR5cGU9IlRleHRBcmVhRmllbGQiCgkJbmFtZT0iTWVzc2FnZSIKCQl2YWxpZGF0aW9uX3R5cGU9IiIKCQlvcmRlcl9ieT0iNyIKCQlyZXF1aXJlZD0iMSIKCQloaWRlX2xhYmVsPSIwIj4KCQkJPG9wdGlvbiBuYW1lPSJyb3dzIj48IVtDREFUQVs1XV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iY29scyI+PCFbQ0RBVEFbNjBdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJjc3NfY2xhc3MiPjwhW0NEQVRBW11dPjwvb3B0aW9uPgo8L2ZpZWxkPgoJPGZpZWxkIGlkPSI4IgoJCXR5cGU9IkZpZWxkc2V0RW5kIgoJCW5hbWU9IkNvbnRhY3QgRmllbGRzZXQgRW5kIgoJCXZhbGlkYXRpb25fdHlwZT0iIgoJCW9yZGVyX2J5PSI4IgoJCXJlcXVpcmVkPSIwIgoJCWhpZGVfbGFiZWw9IjAiPgoJCQk8b3B0aW9uIG5hbWU9ImNzc19jbGFzcyI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CjwvZmllbGQ+CjwvZm9ybT4K]]></data>
	</file>
	<file>
	  <filename>/includes/new_form_footer.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[CXskZmJfZm9ybV9lbmR9CnsvaWZ9CnskZmJfZm9ybV9mb290ZXJ9]]></data>
	</file>
	<file>
	  <filename>/includes/new_form_header.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmYl9mb3JtX2hlYWRlcn0Ke2lmICRmYl9mb3JtX2RvbmUgPT0gMX0KCXsqIFRoaXMgZmlyc3Qgc2VjdGlvbiBpcyBmb3IgZGlzcGxheWluZyBzdWJtaXNzaW9uIGVycm9ycyAqfQoJe2lmICRmYl9zdWJtaXNzaW9uX2Vycm9yfQoJCTxkaXYgY2xhc3M9ImVycm9yX21lc3NhZ2UiPnskZmJfc3VibWlzc2lvbl9lcnJvcn08L2Rpdj4KCQl7aWYgJGZiX3Nob3dfc3VibWlzc2lvbl9lcnJvcnN9CgkJCTxkaXYgY2xhc3M9ImVycm9yIj4KCQkJPHVsPgoJCQl7Zm9yZWFjaCBmcm9tPSRmYl9zdWJtaXNzaW9uX2Vycm9yX2xpc3QgaXRlbT10aGlzRXJyfQoJCQkJPGxpPnskdGhpc0Vycn08L2xpPgoJCQl7L2ZvcmVhY2h9CgkJCTwvdWw+CgkJPC9kaXY+CgkJey9pZn0KCXsvaWZ9CntlbHNlfQoJeyogdGhpcyBzZWN0aW9uIGlzIGZvciBkaXNwbGF5aW5nIHRoZSBmb3JtICp9Cgl7KiB3ZSBzdGFydCB3aXRoIHZhbGlkYXRpb24gZXJyb3JzICp9Cgl7aWYgJGZiX2Zvcm1faGFzX3ZhbGlkYXRpb25fZXJyb3JzfQoJCTxkaXYgY2xhc3M9ImVycm9yX21lc3NhZ2UiPgoJCTx1bD4KCQl7Zm9yZWFjaCBmcm9tPSRmYl9mb3JtX3ZhbGlkYXRpb25fZXJyb3JzIGl0ZW09dGhpc0Vycn0KCQkJPGxpPnskdGhpc0Vycn08L2xpPgoJCXsvZm9yZWFjaH0KCQk8L3VsPgoJCTwvZGl2PgoJey9pZn0KCXtpZiAkY2FwdGNoYV9lcnJvcn0KCQk8ZGl2IGNsYXNzPSJlcnJvcl9tZXNzYWdlIj57JGNhcHRjaGFfZXJyb3J9PC9kaXY+Cgl7L2lmfQoKCXsqIGFuZCBub3cgdGhlIGZvcm0gaXRzZWxmICp9Cgl7JGZiX2Zvcm1fc3RhcnR9Cgl7JGZiX2hpZGRlbn0K]]></data>
	</file>
	<file>
	  <filename>/includes/Sample_Form.xml</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPGZvcm0gaWQ9IjIiCgluYW1lPSJTYW1wbGUgRm9ybSIKCWFsaWFzPSJzYW1wbGVfZm9ybSI+CgkJPGF0dHJpYnV0ZSBrZXk9InByZXZfYnV0dG9uX3RleHQiPjwhW0NEQVRBW0JhY2suLi5dXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0icmVxdWlyZWRfZmllbGRfc3ltYm9sIj48IVtDREFUQVsqXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9InVuc3BlY2lmaWVkIj48IVtDREFUQVtbdW5zcGVjaWZpZWRdXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9Imxpc3RfZGVsaW1pdGVyIj48IVtDREFUQVsgLSBdXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0idGl0bGVfcG9zaXRpb24iPjwhW0NEQVRBW2xlZnRdXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0iZm9ybV90ZW1wbGF0ZSI+PCFbQ0RBVEFbeyogREVGQVVMVCBGT1JNIExBWU9VVCAvIHB1cmUgQ1NTICp9CnskZmJfZm9ybV9oZWFkZXJ9CntpZiAkZmJfZm9ybV9kb25lID09IDF9Cgl7KiBUaGlzIGZpcnN0IHNlY3Rpb24gaXMgZm9yIGRpc3BsYXlpbmcgc3VibWlzc2lvbiBlcnJvcnMgKn0KCXtpZiAkZmJfc3VibWlzc2lvbl9lcnJvcn0KCQk8ZGl2IGNsYXNzPSJlcnJvcl9tZXNzYWdlIj57JGZiX3N1Ym1pc3Npb25fZXJyb3J9PC9kaXY+CgkJe2lmICRmYl9zaG93X3N1Ym1pc3Npb25fZXJyb3JzfQoJCQk8ZGl2IGNsYXNzPSJlcnJvciI+CgkJCTx1bD4KCQkJe2ZvcmVhY2ggZnJvbT0kZmJfc3VibWlzc2lvbl9lcnJvcl9saXN0IGl0ZW09dGhpc0Vycn0KCQkJCTxsaT57JHRoaXNFcnJ9PC9saT4KCQkJey9mb3JlYWNofQoJCQk8L3VsPgoJCTwvZGl2PgoJCXsvaWZ9Cgl7L2lmfQp7ZWxzZX0KCXsqIHRoaXMgc2VjdGlvbiBpcyBmb3IgZGlzcGxheWluZyB0aGUgZm9ybSAqfQoJeyogd2Ugc3RhcnQgd2l0aCB2YWxpZGF0aW9uIGVycm9ycyAqfQoJe2lmICRmYl9mb3JtX2hhc192YWxpZGF0aW9uX2Vycm9yc30KCQk8ZGl2IGNsYXNzPSJlcnJvcl9tZXNzYWdlIj4KCQk8dWw+CgkJe2ZvcmVhY2ggZnJvbT0kZmJfZm9ybV92YWxpZGF0aW9uX2Vycm9ycyBpdGVtPXRoaXNFcnJ9CgkJCTxsaT57JHRoaXNFcnJ9PC9saT4KCQl7L2ZvcmVhY2h9CgkJPC91bD4KCQk8L2Rpdj4KCXsvaWZ9Cgl7aWYgJGNhcHRjaGFfZXJyb3J9CgkJPGRpdiBjbGFzcz0iZXJyb3JfbWVzc2FnZSI+eyRjYXB0Y2hhX2Vycm9yfTwvZGl2PgoJey9pZn0KCgl7KiBhbmQgbm93IHRoZSBmb3JtIGl0c2VsZiAqfQoJeyRmYl9mb3JtX3N0YXJ0fQoJeyRmYl9oaWRkZW59Cgk8ZGl2e2lmICRjc3NfY2xhc3MgIT0gJyd9IGNsYXNzPSJ7JGNzc19jbGFzc30iey9pZn0+Cgl7aWYgJHRvdGFsX3BhZ2VzIGd0IDF9PHNwYW4+eyR0aXRsZV9wYWdlX3hfb2ZfeX08L3NwYW4+ey9pZn0KCXtmb3JlYWNoIGZyb209JGZpZWxkcyBpdGVtPWVudHJ5fQoJCXtpZiAkZW50cnktPmRpc3BsYXkgPT0gMX0KICAgICAgICAJe3N0cmlwfQogICAgICAgICAJe2lmICRlbnRyeS0+bmVlZHNfZGl2ID09IDF9CiAgICAgICAgICAgIAk8ZGl2CiAgICAgICAgICAgIAl7aWYgJGVudHJ5LT5yZXF1aXJlZCA9PSAxIHx8ICRlbnRyeS0+Y3NzX2NsYXNzICE9ICcnfSBjbGFzcz0iCiAgICAgICAgICAgICAgCQl7aWYgJGVudHJ5LT5yZXF1aXJlZCA9PSAxfQogICAgICAgICAgICAgICAgCQlyZXF1aXJlZAogICAgICAgICAgICAgIAkJey9pZn0KICAgICAgICAgICAgICAJCXtpZiAkZW50cnktPnJlcXVpcmVkID09IDEgJiYgJGVudHJ5LT5jc3NfY2xhc3MgIT0gJyd9IHsvaWZ9CiAgICAgICAgICAgICAgCQl7aWYgJGVudHJ5LT5jc3NfY2xhc3MgIT0gJyd9CiAgICAgICAgICAgICAgICAJCXskZW50cnktPmNzc19jbGFzc30KICAgICAgICAgICAgICAJCXsvaWZ9CiAgICAgICAgICAgICAgCQkiCiAgICAgICAgICAgIAl7L2lmfQogICAgICAgICAgICAJPgogICAgICAgICAJey9pZn0KICAgICAgICAgCXtpZiAkZW50cnktPmhpZGVfbmFtZSA9PSAwfQogICAgICAgICAgICAJPGxhYmVse2lmICRlbnRyeS0+bXVsdGlwbGVfcGFydHMgIT0gMX0gZm9yPSJ7JGVudHJ5LT5pbnB1dF9pZH0iey9pZn0+eyRlbnRyeS0+bmFtZX0KICAgICAgICAgICAgCXtpZiAkZW50cnktPnJlcXVpcmVkX3N5bWJvbCAhPSAnJ30KICAgICAgICAgICAgICAgCQl7JGVudHJ5LT5yZXF1aXJlZF9zeW1ib2x9CiAgICAgICAgICAgIAl7L2lmfQogICAgICAgICAgICAJPC9sYWJlbD4KICAgICAgICAgCXsvaWZ9CiAgICAgICAgIAl7aWYgJGVudHJ5LT5tdWx0aXBsZV9wYXJ0cyA9PSAxfQogICAgICAgICAgICAJe3NlY3Rpb24gbmFtZT1udW1sb29wIGxvb3A9JGVudHJ5LT5pbnB1dH0KICAgICAgICAgICAgICAgCQl7aWYgJGVudHJ5LT5sYWJlbF9wYXJ0cyA9PSAxfQogICAgICAgICAgICAgICAJCQk8ZGl2PnskZW50cnktPmlucHV0W251bWxvb3BdLT5pbnB1dH0mbmJzcDt7JGVudHJ5LT5pbnB1dFtudW1sb29wXS0+bmFtZX08L2Rpdj4KICAgICAgICAgICAgICAgCQl7ZWxzZX0KICAgICAgICAgICAgICAgCQkJeyRlbnRyeS0+aW5wdXRbbnVtbG9vcF0tPmlucHV0fQogICAgICAgICAgICAgICAJCXsvaWZ9CiAgICAgICAgICAgICAgIAkJe2lmICRlbnRyeS0+aW5wdXRbbnVtbG9vcF0tPm9wfXskZW50cnktPmlucHV0W251bWxvb3BdLT5vcH17L2lmfQogICAgICAgICAgICAJey9zZWN0aW9ufQogICAgICAgICAJe2Vsc2V9CiAgICAgICAgICAgIAl7aWYgJGVudHJ5LT5zbWFydHlfZXZhbCA9PSAnMSd9e2V2YWwgdmFyPSRlbnRyeS0+aW5wdXR9e2Vsc2V9eyRlbnRyeS0+aW5wdXR9ey9pZn0KICAgICAgICAgCXsvaWZ9CiAgICAgICAgIAl7aWYgJGVudHJ5LT52YWxpZCA9PSAwfSAmbHQ7LS0tIHskZW50cnktPmVycm9yfXsvaWZ9CiAgICAgICAgIAl7aWYgJGVudHJ5LT5uZWVkc19kaXYgPT0gMX0KICAgICAgICAgICAgCTwvZGl2PgogICAgICAgICAJey9pZn0KICAgICAgICAgCXsvc3RyaXB9CiAgICAgCXsvaWZ9Cgl7L2ZvcmVhY2h9Cgl7aWYgJGhhc19jYXB0Y2hhID09IDF9CgkJPGRpdiBjbGFzcz0iY2FwdGNoYSI+eyRncmFwaGljX2NhcHRjaGF9eyR0aXRsZV9jYXB0Y2hhfTxiciAvPnskaW5wdXRfY2FwdGNoYX08L2Rpdj4KCXsvaWZ9Cgk8ZGl2IGNsYXNzPSJzdWJtaXQiPnskcHJldn17JHN1Ym1pdH08L2Rpdj4KCTwvZGl2PgoJeyRmYl9mb3JtX2VuZH0Key9pZn0KeyRmYl9mb3JtX2Zvb3Rlcn1dXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0ic3VibWl0X2FjdGlvbiI+PCFbQ0RBVEFbdGV4dF1dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJpbnB1dF9idXR0b25fc2FmZXR5Ij48IVtDREFUQVswXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9InVzZV9jcGF0Y2hhIj48IVtDREFUQVswXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9InRpdGxlX3VzZXJfY2FwdGNoYSI+PCFbQ0RBVEFbUGxlYXNlIGNvbmZpcm0gdGhhdCB5b3UgYXJlIG5vdCBhIHNjcmlwdCBieSBlbnRlcmluZyB0aGUgbGV0dGVycyBmcm9tIHRoZSBpbWFnZS5dXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0ibmV4dF9idXR0b25fdGV4dCI+PCFbQ0RBVEFbQ29udGludWUuLi5dXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0ic3VibWl0X2J1dHRvbl90ZXh0Ij48IVtDREFUQVtTZW5kIEZlZWRiYWNrXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9ImZvcm1fZGlzcGxheXR5cGUiPjwhW0NEQVRBW3RhYl1dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJyZWRpcmVjdF9wYWdlIj48IVtDREFUQVstMV1dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJjc3NfY2xhc3MiPjwhW0NEQVRBW2Zvcm1idWlsZGVyZm9ybV1dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJjYXB0Y2hhX3dyb25nIj48IVtDREFUQVtDYXB0Y2hhIHdhcyBub3QgY29ycmVjdC5dXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0ic3VibWl0X3Jlc3BvbnNlIj48IVtDREFUQVs8aDE+VGhhbmtzITwvaDE+Cgo8cD5Zb3VyIGZlZWRiYWNrIGhlbHBzIG1lIG1ha2UgdGhpcyBhIGJldHRlciBtb2R1bGUuPC9wPl1dPjwvYXR0cmlidXRlPgoJPGZpZWxkIGlkPSI5IgoJCXR5cGU9IlN0YXRpY1RleHRGaWVsZCIKCQluYW1lPSJjc3MiCgkJdmFsaWRhdGlvbl90eXBlPSIiCgkJb3JkZXJfYnk9IjEiCgkJcmVxdWlyZWQ9IjAiCgkJaGlkZV9sYWJlbD0iMCI+CgkJCTxvcHRpb24gbmFtZT0idGV4dCI+PCFbQ0RBVEFbPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KLmZvcm1idWlsZGVyZm9ybSBmaWVsZHNldCB7cGFkZGluZzogMWVtOyBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO30KLmZvcm1idWlsZGVyZm9ybSBmaWVsZHNldCBsZWdlbmQge2ZvbnQtd2VpZ2h0OiBib2xkO30KLmZvcm1idWlsZGVyZm9ybSBkaXYge3BhZGRpbmc6IDAuMjVlbSAwIDAuMjVlbSAwO30KPC9zdHlsZT5dXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJjc3NfY2xhc3MiPjwhW0NEQVRBW11dPjwvb3B0aW9uPgo8L2ZpZWxkPgoJPGZpZWxkIGlkPSIxMCIKCQl0eXBlPSJGaWVsZHNldFN0YXJ0IgoJCW5hbWU9IkZpZWxkc2V0IFN0YXJ0IgoJCXZhbGlkYXRpb25fdHlwZT0iIgoJCW9yZGVyX2J5PSIyIgoJCXJlcXVpcmVkPSIwIgoJCWhpZGVfbGFiZWw9IjAiPgoJCQk8b3B0aW9uIG5hbWU9ImxlZ2VuZCI+PCFbQ0RBVEFbSGVscCBJbXByb3ZlIEZvcm0gQnVpbGRlcl1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImNzc19jbGFzcyI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CjwvZmllbGQ+Cgk8ZmllbGQgaWQ9IjExIgoJCXR5cGU9IkRpc3Bvc2l0aW9uRW1haWwiCgkJbmFtZT0iU2VuZCBJdCIKCQl2YWxpZGF0aW9uX3R5cGU9IiIKCQlvcmRlcl9ieT0iMyIKCQlyZXF1aXJlZD0iMCIKCQloaWRlX2xhYmVsPSIwIj4KCQkJPG9wdGlvbiBuYW1lPSJlbWFpbF9zdWJqZWN0Ij48IVtDREFUQVtGb3JtQnVpbGRlciBTYW1wbGUgRm9ybSBTdWJtaXNzaW9uXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iZW1haWxfZnJvbV9uYW1lIj48IVtDREFUQVtGb3JtIEJ1aWxkZXIgSW5zdGFsbGF0aW9uXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iZW1haWxfZnJvbV9hZGRyZXNzIj48IVtDREFUQVt5b3VAeW91cmhvc3QuY29tXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iZGVzdGluYXRpb25fYWRkcmVzcyI+PCFbQ0RBVEFbc2pnQGNtc21vZHVsZXMuY29tXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iZW1haWxfdGVtcGxhdGUiPjwhW0NEQVRBWzxoMT5Tb21lb25lJ3MgVGVzdGluZyBhIEZvcm1CdWlsZGVyIFN1Ym1pc3Npb24hPC9oMT4KPHN0cm9uZz5Gb3JtIE5hbWU8L3N0cm9uZz46IHskc3ViX2Zvcm1fbmFtZX08YnIgLz4KPHN0cm9uZz5EYXRlIG9mIFN1Ym1pc3Npb248L3N0cm9uZz46IHskc3ViX2RhdGV9PGJyIC8+CjxzdHJvbmc+WW91ciBzZXJ2ZXI8L3N0cm9uZz46IHskc3ViX2hvc3R9PGJyIC8+CjxzdHJvbmc+SVAgYWRkcmVzcyBvZiBwZXJzb24gdXNpbmcgZm9ybTwvc3Ryb25nPjogeyRzdWJfc291cmNlX2lwfTxiciAvPgo8c3Ryb25nPlVSTCBvZiBwYWdlIGNvbnRhaW5pbmcgZm9ybTwvc3Ryb25nPjogeyRzdWJfdXJsfTxiciAvPgoKPGhyIC8+CjxzdHJvbmc+TW9kdWxlcyB5b3UnbGwgYmUgdXNpbmcgdG9nZXRoZXI8L3N0cm9uZz46IHskbW9kdWxlc195b3VfbGxfYmVfdXNpbmd9PGJyIC8+CjxzdHJvbmc+V2hhdCB3aWxsIHlvdSBwZXJzb25hbGx5IGJlIGRvaW5nIG9uIHlvdXIgQ01TIE1TIHNpdGU/PC9zdHJvbmc+OiB7JHdoYXRfd2lsbF95b3V9PGJyIC8+CjxzdHJvbmc+V2hlcmUgYXJlIHlvdSBmcm9tPzwvc3Ryb25nPjogeyR3aGVyZV9hcmVfeW91X2Zyb21ffTxiciAvPgo8c3Ryb25nPkRvIHlvdSBoYXZlIGFueSBjb21tZW50cyAvIGZlZWRiYWNrIGZvciBtZT88L3N0cm9uZz46IHskZG9feW91X2hhdmVfYW55fTxiciAvPgpdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJlbWFpbF9lbmNvZGluZyI+PCFbQ0RBVEFbdXRmLThdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJodG1sX2VtYWlsIj48IVtDREFUQVsxXV0+PC9vcHRpb24+CjwvZmllbGQ+Cgk8ZmllbGQgaWQ9IjEyIgoJCXR5cGU9IlN0YXRpY1RleHRGaWVsZCIKCQluYW1lPSJXZWxjb21lISIKCQl2YWxpZGF0aW9uX3R5cGU9IiIKCQlvcmRlcl9ieT0iNCIKCQlyZXF1aXJlZD0iMCIKCQloaWRlX2xhYmVsPSIwIj4KCQkJPG9wdGlvbiBuYW1lPSJ0ZXh0Ij48IVtDREFUQVtUaGFua3MgZm9yIHRyeWluZyBvdXQgRm9ybUJ1aWxkZXIuIFlvdSBjYW4gdXNlIHRoaXMgZm9ybSB0byBwcm92aWRlIG1lIHdpdGggZmVlZGJhY2sgYWJvdXQgaG93IHlvdSB3aWxsIGJlIHVzaW5nIEZvcm0gQnVpbGRlciwgc28gSSBjYW4gYmVzdCBhbGxvY2F0ZSByZXNvdXJjZXMgZm9yIGZ1dHVyZSBkZXZlbG9wbWVudC4gVGhhbmtzLCBfX19TYW11ZWxfX19dXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJjc3NfY2xhc3MiPjwhW0NEQVRBW11dPjwvb3B0aW9uPgo8L2ZpZWxkPgoJPGZpZWxkIGlkPSIxMyIKCQl0eXBlPSJDaGVja2JveEdyb3VwRmllbGQiCgkJbmFtZT0iTW9kdWxlcyB5b3UnbGwgYmUgdXNpbmcgdG9nZXRoZXIiCgkJdmFsaWRhdGlvbl90eXBlPSIiCgkJb3JkZXJfYnk9IjUiCgkJcmVxdWlyZWQ9IjAiCgkJaGlkZV9sYWJlbD0iMCI+CgkJCTxvcHRpb24gbmFtZT0iYm94X25hbWUiPjwhW0NEQVRBW0Zvcm0gQnVpbGRlcl1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImJveF9uYW1lIj48IVtDREFUQVtGb3JtIEJyb3dzZXJdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfbmFtZSI+PCFbQ0RBVEFbRnJvbnQtZW5kIFVzZXJzXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X25hbWUiPjwhW0NEQVRBW05ld3NsZXR0ZXIgTWFkZSBTaW1wbGUgKE5NUyldXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfbmFtZSI+PCFbQ0RBVEFbUHJvdGVjdGVkIFBhZ2VzXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X25hbWUiPjwhW0NEQVRBW090aGVyc11dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImJveF9jaGVja2VkIj48IVtDREFUQVtmb3JtYnVpbGRlcl1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImJveF9jaGVja2VkIj48IVtDREFUQVtmb3JtYnJvd3Nlcl1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImJveF9jaGVja2VkIj48IVtDREFUQVtmZXVzZXJzXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X2NoZWNrZWQiPjwhW0NEQVRBW25tc11dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImJveF9jaGVja2VkIj48IVtDREFUQVtwcm90ZWN0ZWQgcGFnZXNdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfY2hlY2tlZCI+PCFbQ0RBVEFbb3RoZXJzXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X3VuY2hlY2tlZCI+PCFbQ0RBVEFbbm90IGZvcm1idWlsZGVyXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X3VuY2hlY2tlZCI+PCFbQ0RBVEFbbm90IGZvcm1icm93c2VyXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X3VuY2hlY2tlZCI+PCFbQ0RBVEFbbm90IGZldXNlcnNdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfdW5jaGVja2VkIj48IVtDREFUQVtub3Qgbm1zXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X3VuY2hlY2tlZCI+PCFbQ0RBVEFbbm90IHByb3RlY3RlZCBwYWdlc11dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImJveF91bmNoZWNrZWQiPjwhW0NEQVRBW25vdCBvdGhlcnNdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJjc3NfY2xhc3MiPjwhW0NEQVRBW11dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImJveF9pc19zZXQiPjwhW0NEQVRBW3ldXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfaXNfc2V0Ij48IVtDREFUQVtuXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X2lzX3NldCI+PCFbQ0RBVEFbbl1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImJveF9pc19zZXQiPjwhW0NEQVRBW25dXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfaXNfc2V0Ij48IVtDREFUQVtuXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X2lzX3NldCI+PCFbQ0RBVEFbbl1dPjwvb3B0aW9uPgo8L2ZpZWxkPgoJPGZpZWxkIGlkPSIxNCIKCQl0eXBlPSJDaGVja2JveEdyb3VwRmllbGQiCgkJbmFtZT0iV2hhdCB3aWxsIHlvdSBwZXJzb25hbGx5IGJlIGRvaW5nIG9uIHlvdXIgQ01TIE1TIHNpdGU/IgoJCXZhbGlkYXRpb25fdHlwZT0iIgoJCW9yZGVyX2J5PSI2IgoJCXJlcXVpcmVkPSIwIgoJCWhpZGVfbGFiZWw9IjAiPgoJCQk8b3B0aW9uIG5hbWU9ImJveF9uYW1lIj48IVtDREFUQVtEZXNpZ24gSFRNTC9DU1NdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfbmFtZSI+PCFbQ0RBVEFbUG9wdWxhdGUvTWFpbnRhaW4gQ29udGVudF1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImJveF9uYW1lIj48IVtDREFUQVtHcmFwaGljYWwgRGVzaWduXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X25hbWUiPjwhW0NEQVRBW0luc3RhbGwvQ29uZmlndXJlIG1vZHVsZXNdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfbmFtZSI+PCFbQ0RBVEFbRWRpdCBTbWFydHkgVGVtcGxhdGVzXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X25hbWUiPjwhW0NEQVRBW0NyZWF0ZSBNb2R1bGVzIG9yIENvZGUgVXNlciBUYWdzXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X25hbWUiPjwhW0NEQVRBW0NyZWF0ZSBFdmVudCBXb3JrZmxvd3NdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfbmFtZSI+PCFbQ0RBVEFbSGFjayB0aGUgQ29yZSwgRXh0ZW5kIENNU11dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImJveF9uYW1lIj48IVtDREFUQVtQb3J0IENNUyBNUyB0byBSdWJ5IG9uIFJhaWxzXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X2NoZWNrZWQiPjwhW0NEQVRBW2h0bWxdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfY2hlY2tlZCI+PCFbQ0RBVEFbY29udGVudF1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImJveF9jaGVja2VkIj48IVtDREFUQVtncmFwaGljc11dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImJveF9jaGVja2VkIj48IVtDREFUQVttb2R1bGVzXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X2NoZWNrZWQiPjwhW0NEQVRBW3NtYXJ0eV1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImJveF9jaGVja2VkIj48IVtDREFUQVtwaHBdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfY2hlY2tlZCI+PCFbQ0RBVEFbZXZlbnRzXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X2NoZWNrZWQiPjwhW0NEQVRBW2hhY2sgY29yZV1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImJveF9jaGVja2VkIj48IVtDREFUQVtyYWlsc11dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImJveF91bmNoZWNrZWQiPjwhW0NEQVRBW25vdCBodG1sXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X3VuY2hlY2tlZCI+PCFbQ0RBVEFbbm90IGNvbnRlbnRdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfdW5jaGVja2VkIj48IVtDREFUQVtub3QgZ3JhcGhpY3NdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfdW5jaGVja2VkIj48IVtDREFUQVtub3QgbW9kdWxlc11dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImJveF91bmNoZWNrZWQiPjwhW0NEQVRBW25vdCBzbWFydHldXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfdW5jaGVja2VkIj48IVtDREFUQVtub3QgcGhwXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X3VuY2hlY2tlZCI+PCFbQ0RBVEFbbm90IGV2ZW50c11dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImJveF91bmNoZWNrZWQiPjwhW0NEQVRBW25vdCBoYWNrIGNvcmVdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfdW5jaGVja2VkIj48IVtDREFUQVtub3QgcmFpbHNdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJjc3NfY2xhc3MiPjwhW0NEQVRBW11dPjwvb3B0aW9uPgo8L2ZpZWxkPgoJPGZpZWxkIGlkPSIxNSIKCQl0eXBlPSJDb3VudHJ5UGlja2VyRmllbGQiCgkJbmFtZT0iV2hlcmUgYXJlIHlvdSBmcm9tPyIKCQl2YWxpZGF0aW9uX3R5cGU9IiIKCQlvcmRlcl9ieT0iNyIKCQlyZXF1aXJlZD0iMCIKCQloaWRlX2xhYmVsPSIwIj4KCQkJPG9wdGlvbiBuYW1lPSJkZWZhdWx0Ij48IVtDREFUQVtdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJzZWxlY3Rfb25lIj48IVtDREFUQVtTZWxlY3QgT25lXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iY3NzX2NsYXNzIj48IVtDREFUQVtdXT48L29wdGlvbj4KPC9maWVsZD4KCTxmaWVsZCBpZD0iMTYiCgkJdHlwZT0iVGV4dEFyZWFGaWVsZCIKCQluYW1lPSJEbyB5b3UgaGF2ZSBhbnkgY29tbWVudHMgLyBmZWVkYmFjayBmb3IgbWU/IgoJCXZhbGlkYXRpb25fdHlwZT0iIgoJCW9yZGVyX2J5PSI4IgoJCXJlcXVpcmVkPSIwIgoJCWhpZGVfbGFiZWw9IjAiPgoJCQk8b3B0aW9uIG5hbWU9ImNzc19jbGFzcyI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0icm93cyI+PCFbQ0RBVEFbMTBdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJjb2xzIj48IVtDREFUQVs2MF1dPjwvb3B0aW9uPgo8L2ZpZWxkPgoJPGZpZWxkIGlkPSIxNyIKCQl0eXBlPSJGaWVsZHNldEVuZCIKCQluYW1lPSJGaWVsZHNldCBFbmQiCgkJdmFsaWRhdGlvbl90eXBlPSIiCgkJb3JkZXJfYnk9IjkiCgkJcmVxdWlyZWQ9IjAiCgkJaGlkZV9sYWJlbD0iMCI+CgkJCTxvcHRpb24gbmFtZT0iY3NzX2NsYXNzIj48IVtDREFUQVtdXT48L29wdGlvbj4KPC9maWVsZD4KPC9mb3JtPgo=]]></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[PD9waHAKLy8gRW5nbGlzaF9VUyBMb2NhbGl6YXRpb24gRmlsZQokbGFuZ1snZnJpZW5kbHluYW1lJ10gPSAnRm9ybSBCdWlsZGVyJzsKCi8vIGZpZWxkIHR5cGVzCiRsYW5nWydmaWVsZF90eXBlXyddPSdGaWVsZCBUeXBlIE5vdCBTZXQnOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldEVuZCddID0gJy1GaWVsZHNldCBFbmQnOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldFN0YXJ0J109Jy1GaWVsZHNldCBTdGFydCc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRGaWVsZCddPSdUZXh0IElucHV0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkRXhwYW5kYWJsZSddPSdUZXh0IElucHV0IChNdWx0aXBsZSknOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0QXJlYUZpZWxkJ109J1RleHQgQXJlYSc7CiRsYW5nWydmaWVsZF90eXBlX0NoZWNrYm94RmllbGQnXT0nQ2hlY2sgQm94JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hHcm91cEZpZWxkJ109J0NoZWNrIEJveCBHcm91cCc7CiRsYW5nWydmaWVsZF90eXBlX1B1bGxkb3duRmllbGQnXT0nUHVsbGRvd24nOwokbGFuZ1snZmllbGRfdHlwZV9NdWx0aXNlbGVjdEZpZWxkJ109J011bHRpc2VsZWN0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3RhdGVQaWNrZXJGaWVsZCddPSdVLlMuIFN0YXRlIFBpY2tlcic7CiRsYW5nWydmaWVsZF90eXBlX0NvdW50cnlQaWNrZXJGaWVsZCddPSdDb3VudHJ5IFBpY2tlcic7CiRsYW5nWydmaWVsZF90eXBlX0RhdGVQaWNrZXJGaWVsZCddPSdEYXRlIFBpY2tlcic7CiRsYW5nWydmaWVsZF90eXBlX1RpbWVQaWNrZXJGaWVsZCddPSdUaW1lIFBpY2tlcic7CiRsYW5nWydmaWVsZF90eXBlX1JhZGlvR3JvdXBGaWVsZCddPSdSYWRpbyBCdXR0b24gR3JvdXAnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRpcmVjdG9yJ109JypFbWFpbCBSZXN1bHRzIEJhc2VkIG9uIFB1bGxkb3duJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25GaWxlRGlyZWN0b3InXSA9ICcqU2F2ZSBSZXN1bHRzIHRvIEZpbGUgQmFzZWQgb24gUHVsbGRvd24nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbk11bHRpc2VsZWN0RmlsZURpcmVjdG9yJ10gPSAnKlNhdmUgUmVzdWx0cyB0byBGaWxlKHMpIEJhc2VkIG9uIE11bHRpcGxlIFNlbGVjdGlvbnMnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvblBhZ2VSZWRpcmVjdG9yJ109JypSZWRpcmVjdCB0byBQYWdlIEJhc2VkIG9uIFB1bGxkb3duJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbCddPScqRW1haWwgUmVzdWx0cyB0byBzZXQgQWRkcmVzcyhlcyknOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsQ29uZmlybWF0aW9uJ109JypWYWxpZGF0ZS12aWEtRW1haWwgQWRkcmVzcyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRmlsZSddPScqV3JpdGUgUmVzdWx0cyB0byBGbGF0IEZpbGUnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRhdGFiYXNlJ109JypTdG9yZSBSZXN1bHRzIGluIERhdGFiYXNlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Vc2VyVGFnJ109JypDYWxsIEEgVXNlciBEZWZpbmVkIFRhZyBXaXRoIHRoZSBGb3JtIFJlc3VsdHMnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRlbGl2ZXJUb0VtYWlsQWRkcmVzc0ZpZWxkJ109JypFbWFpbCB0byBVc2VyLVN1cHBsaWVkIEVtYWlsIEFkZHJlc3MnOwokbGFuZ1snZmllbGRfdHlwZV9QYWdlQnJlYWtGaWVsZCddPSctUGFnZSBCcmVhayc7CiRsYW5nWydmaWVsZF90eXBlX0ZpbGVVcGxvYWRGaWVsZCddPSdGaWxlIFVwbG9hZCc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbEFkZHJlc3NGaWVsZCddPSdFbWFpbCAiRnJvbSBBZGRyZXNzIiBGaWVsZCc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbE5hbWVGaWVsZCddPSdFbWFpbCAiRnJvbSBOYW1lIiBGaWVsZCc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbFN1YmplY3RGaWVsZCddPSdFbWFpbCAiU3ViamVjdCIgRmllbGQnOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0aWNUZXh0RmllbGQnXT0nLVN0YXRpYyBUZXh0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3lzdGVtTGlua0ZpZWxkJ109Jy1TdGF0aWMgTGluayc7CiRsYW5nWydmaWVsZF90eXBlX0xpbmtGaWVsZCddPSdMaW5rIChVc2VyLWVudGVyZWQpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfSGlkZGVuRmllbGQnXSA9ICctSGlkZGVuIEZpZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ29tcHV0ZWRGaWVsZCddID0gJy1Db21wdXRlZCBGaWVsZCc7CgovLyB2YWxpZGF0aW9uIHR5cGVzCiRsYW5nWyd2YWxpZGF0aW9uX25vbmUnXT0nTm8gVmFsaWRhdGlvbic7CiRsYW5nWyd2YWxpZGF0aW9uX251bWVyaWMnXT0nTnVtZXJpYyc7CiRsYW5nWyd2YWxpZGF0aW9uX2ludGVnZXInXT0nSW50ZWdlcic7CiRsYW5nWyd2YWxpZGF0aW9uX2VtYWlsX2FkZHJlc3MnXT0nRW1haWwgQWRkcmVzcyc7CiRsYW5nWyd2YWxpZGF0aW9uX211c3RfY2hlY2snXT0nTXVzdCBCZSBDaGVja2VkJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbWF0Y2gnXT0nTWF0Y2ggUmVndWxhciBFeHByZXNzaW9uJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbm9tYXRjaCddPSdEb2VzblwndCBtYXRjaCBSZWd1bGFyIEV4cHJlc3Npb24nOwoKLy8gdmFsaWRhdGlvbiBlcnJvciBtZXNzYWdlcyBhbmQgb3RoZXIgYWxlcnRzCiRsYW5nWydyZXF1aXJlZF9maWVsZF9taXNzaW5nJ10gPSAnQSB2YWx1ZSB3YXMgbm90IHN1cHBsaWVkIGZvciBhIHJlcXVpcmVkIGZpZWxkJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX3ZhbHVlJ109J1BsZWFzZSBlbnRlciBhIHZhbHVlIGZvciAiJXMiJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX251bWJlciddPSdQbGVhc2UgZW50ZXIgYSBudW1iZXIgZm9yICIlcyInOwokbGFuZ1sncGxlYXNlX2VudGVyX3ZhbGlkJ10gPSAnUGxlYXNlIGVudGVyIGEgdmFsaWQgZW50cnkgZm9yICIlcyInOwokbGFuZ1sncGxlYXNlX2VudGVyX2FuX2ludGVnZXInXT0nUGxlYXNlIGVudGVyIGFuIGludGVnZXIgdmFsdWUgZm9yICIlcyInOwokbGFuZ1sncGxlYXNlX2VudGVyX2FuX2VtYWlsJ109J1BsZWFzZSBlbnRlciBhIHZhbGlkIGVtYWlsIGFkZHJlc3MgZm9yICIlcyInOwokbGFuZ1snbm90X3ZhbGlkX2VtYWlsJ109JyIlcyIgZG9lcyBub3QgYXBwZWFyIHRvIGJlIGEgdmFsaWQgZW1haWwgYWRkcmVzcyEnOwokbGFuZ1sncGxlYXNlX2VudGVyX25vX2xvbmdlciddPSdQbGVhc2UgZW50ZXIgYSB2YWx1ZSB0aGF0IGlzIG5vIGxvbmdlciB0aGFuICVzIGNoYXJhY3RlcnMnOwokbGFuZ1sndGl0bGVfbGlzdF9kZWxpbWl0ZXInXSA9ICdDaGFyYWN0ZXIgdG8gdXNlIGFzIGRlbGltaXRlciBpbiByZXN1bHRzIHRoYXQgcmV0dXJuIG1vcmUgdGhhbiBvbmUgdmFsdWUnOwokbGFuZ1sneW91X25lZWRfcGVybWlzc2lvbiddPSdZb3UgbmVlZCB0aGUgIiVzIiBwZXJtaXNzaW9uIHRvIHBlcmZvcm0gdGhhdCBvcGVyYXRpb24uJzsKJGxhbmdbJ2xhY2twZXJtaXNzaW9uJ109J1NvcnJ5ISBZb3UgZG9uXCd0IGhhdmUgYWRlcXVhdGUgcHJpdmlsZWdlcyB0byBhY2Nlc3MgdGhpcyBzZWN0aW9uLic7CiRsYW5nWydmaWVsZF9vcmRlcl91cGRhdGVkJ109J0ZpZWxkIG9yZGVyIHVwZGF0ZWQuJzsKJGxhbmdbJ2Zvcm1fZGVsZXRlZCddPSdGb3JtIGRlbGV0ZWQuJzsKJGxhbmdbJ2ZpZWxkX2RlbGV0ZWQnXT0nRmllbGQgZGVsZXRlZC4nOwokbGFuZ1snY29uZmlndXJhdGlvbl91cGRhdGVkJ109J0NvbmZpZ3VyYXRpb24gVXBkYXRlZC4nOwokbGFuZ1sneW91X211c3RfY2hlY2snXT0nWW91IG11c3QgY2hlY2sgIiVzIiBpbiBvcmRlciB0byBjb250aW51ZS4nOwokbGFuZ1snbXVzdF9zcGVjaWZ5X29uZV9kZXN0aW5hdGlvbiddPSdZb3UgbmVlZCB0byBzcGVjaWZ5IGF0IGxlYXN0IG9uZSBkZXN0aW5hdGlvbiBhZGRyZXNzISc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2Zvcm0nXT0nQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGUgZm9ybSAlcz8nOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9maWVsZCddPSdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoZSBmaWVsZCAlcz8nOwokbGFuZ1snbm90aWNlX3NlbGVjdF90eXBlJ109J0FkdmFuY2VkIG9wdGlvbnMgYXJlIG5vdCBhdmFpbGFibGUgdW50aWwgdGhlIGZpZWxkIHR5cGUgaGFzIGJlZW4gc2V0Lic7CiRsYW5nWydmaWVsZF9uYW1lX2luX3VzZSddPSdUaGUgZmllbGQgbmFtZSAiJXMiIGlzIGFscmVhZHkgaW4gdXNlLiBQbGVhc2UgdXNlIHVuaXF1ZSBmaWVsZCBuYW1lcywgb3IgZGlzYWJsZSB1bmlxdWUgZmllbGQgbmFtZXMgaW4gdGhlIEZvcm0gQnVpbGRlciBjb25maWd1cmF0aW9uLic7CiRsYW5nWydmaWVsZF9ub19uYW1lJ10gPSAnRmllbGRzIG11c3QgYmUgbmFtZWQsIHVubGVzcyB5b3UgZGlzYWJsZSB0aGlzIGluIHRoZSBGb3JtIEJ1aWxkZXIgY29uZmlndXJhdGlvbi4nOwoKLy8gYWJicmV2aWF0aW9ucywgdmVyYnMsIGFuZCBvdGhlciBnZW5lcmFsIHRlcm1zCiRsYW5nWydhbm9ueW1vdXMnXSA9ICdBbm9ueW1vdXMnOwokbGFuZ1snYWJicmV2aWF0aW9uX2xlbmd0aCddPSdMZW46ICVzJzsKJGxhbmdbJ2JveGVzJ109JyVzIGJveGVzJzsKJGxhbmdbJ29wdGlvbnMnXT0nJXMgb3B0aW9ucyc7CiRsYW5nWyd0ZXh0X2xlbmd0aCddPSclcyBjaGFycy4nOwokbGFuZ1snb3JkZXInXT0nT3JkZXInOwokbGFuZ1sndW5zcGVjaWZpZWQnXT0nW3Vuc3BlY2lmaWVkXSc7CiRsYW5nWydhZGRlZCddPSdhZGRlZCc7CiRsYW5nWyd1cGRhdGVkJ109J3VwZGF0ZWQnOwokbGFuZ1snc29ydF9vcHRpb25zJ10gPSAnU29ydCBvcHRpb25zIG9uIG91dHB1dCc7CiRsYW5nWydzZWxlY3Rfb25lJ109J1NlbGVjdCBPbmUnOwokbGFuZ1snc2VsZWN0X3R5cGUnXT0nU2VsZWN0IFR5cGUnOwokbGFuZ1sndG8nXT0nVG8nOwokbGFuZ1sneWVzJ109J1llcyc7CiRsYW5nWydubyddPSdObyc7CiRsYW5nWydyZWNpcGllbnRzJ109J3JlY2lwaWVudHMnOwokbGFuZ1snZmlsZV9jb3VudCddID0gJyVzIHBvc3NpYmxlIGZpbGVzJzsKJGxhbmdbJ2Rlc3RpbmF0aW9uX2NvdW50J10gPSAnJXMgZGVzdGluYXRpb25zJzsKJGxhbmdbJ3NhdmUnXT0nU2F2ZSc7CiRsYW5nWydhZGQnXT0nQWRkJzsKJGxhbmdbJ3VwZGF0ZSddPSdVcGRhdGUnOwokbGFuZ1snc2F2ZV9hbmRfY29udGludWUnXT0nU2F2ZSBhbmQgQ29udGludWUgRWRpdGluZyc7CiRsYW5nWydpbmZvcm1hdGlvbiddPSdJbmZvcm1hdGlvbic7CiRsYW5nWydhdXRvbWF0aWMnXT0nQXV0b21hdGljJzsKJGxhbmdbJ2Zvcm1zJ109J0Zvcm1zJzsKJGxhbmdbJ2Zvcm0nXT0nRm9ybSAlcyc7CiRsYW5nWydjb25maWd1cmF0aW9uJ109J0NvbmZpZ3VyYXRpb24nOwokbGFuZ1snZmllbGRfcmVxdWlyZW1lbnRfdXBkYXRlZCddID0gJ0ZpZWxkIHJlcXVpcmVkIHN0YXRlIHVwZGF0ZWQuJzsKJGxhbmdbJ21heGltdW1fc2l6ZSddPSdNYXguIFNpemUnOwokbGFuZ1sncGVybWl0dGVkX2V4dGVuc2lvbnMnXT0nRXh0ZW5zaW9ucyc7CiRsYW5nWydwZXJtaXR0ZWRfZmlsZXR5cGVzJ109J0FsbG93ZWQgZmlsZSB0eXBlcyc7CiRsYW5nWydmaWxlX3Rvb19sYXJnZSddPSdVcGxvYWRlZCBmaWxlIGlzIHRvbyBsYXJnZSEgTWF4aW11bSBzaXplIGlzOic7CiRsYW5nWydpbGxlZ2FsX2ZpbGVfdHlwZSddPSdUaGlzIHR5cGUgb2YgZmlsZSBtYXkgbm90IGJlIHVwbG9hZGVkLiBQbGVhc2UgY2hlY2sgdGhhdCB0aGUgZXh0ZW5zaW9uIGlzIGNvcnJlY3QuJzsKJGxhbmdbJ3VwbG9hZCddID0gJ1VwbG9hZCc7CiRsYW5nWydmb3JtX2ltcG9ydGVkJ10gPSAnRm9ybSBJbXBvcnRlZC4nOwokbGFuZ1snZm9ybV9pbXBvcnRfZmFpbGVkJ10gPSAnRm9ybSBpbXBvcnQgZmFpbGVkISBUaGVyZSB3YXMgYSBwcm9ibGVtIHdpdGggdGhlIGZvcm1hdCBvZiB0aGUgWE1MIGZpbGUuJzsKJGxhbmdbJ3Jvd3MnXSA9ICclcyByb3dzJzsKJGxhbmdbJ2NvbHMnXSA9ICclcyBjb2xzJzsKJGxhbmdbJzEyX2hvdXInXSA9ICcxMiBIb3VyIENsb2NrJzsKJGxhbmdbJzI0X2hvdXInXSA9ICcyNCBIb3VyIENsb2NrJzsKJGxhbmdbJ2hvdXInXSA9ICdIb3VyJzsKJGxhbmdbJ21pbiddID0gJ01pbnV0ZSc7CiRsYW5nWydtZXJpZCddID0gJ01lcmlkaWFuJzsKJGxhbmdbJ2RhdGVfcmFuZ2UnXSA9ICdSYW5nZTogJXMgLSAlcyc7CiRsYW5nWyd0aGFua3MnXSA9ICdUaGFua3MhIFlvdXIgc3VibWlzc2lvbnMgaGF2ZSBiZWVuIHJlY2VpdmVkLic7CiRsYW5nWydlZGl0J10gPSAnRWRpdCc7CiRsYW5nWydkZWxldGUnXSA9ICdEZWxldGUnOwokbGFuZ1snZGF5J10gPSAnRGF5JzsKJGxhbmdbJ21vbiddID0gJ01vbnRoJzsKJGxhbmdbJ3llYXInXSA9ICdZZWFyJzsKCiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHVsZSB1bmluc3RhbGxlZC4nOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnTW9kdWxlIHZlcnNpb24gJXMgaW5zdGFsbGVkLic7CiRsYW5nWyd1cGdyYWRlZCddID0gJ01vZHVsZSB1cGdyYWRlZCB0byB2ZXJzaW9uICVzLic7CgokbGFuZ1snYnV0dG9uX3ByZXZpb3VzJ10gPSAnQmFjay4uLic7CiRsYW5nWydidXR0b25fc3VibWl0J10gPSAnU3VibWl0IEZvcm0nOwokbGFuZ1snYnV0dG9uX2NvbnRpbnVlJ10gPSAnQ29udGludWUuLi4nOwoKJGxhbmdbJ3ZhbHVlX2NoZWNrZWQnXSA9ICdDaGVja2VkJzsKJGxhbmdbJ3ZhbHVlX3VuY2hlY2tlZCddID0gJ1VuY2hlY2tlZCc7CgokbGFuZ1sndGFiX21haW4nXT0nTWFpbic7CiRsYW5nWyd0YWJfc3ltYm9sJ109J0Zvcm0gRGlzcGxheSBTZXR0aW5ncyc7CiRsYW5nWyd0YWJfc3VibWl0J109J0Zvcm0gU3VibWlzc2lvbic7CiRsYW5nWyd0YWJfY2FwdGNoYSddPSdDYXB0Y2hhIFNldHRpbmdzJzsKJGxhbmdbJ3RhYl9hZHZhbmNlZCddPSdBZHZhbmNlZCBTZXR0aW5ncyc7CiRsYW5nWyd0YWJfdGVtcGxhdGVsYXlvdXQnXSA9ICdGb3JtIFRlbXBsYXRlJzsKJGxhbmdbJ3RhYl9zdWJtaXNzaW9udGVtcGxhdGUnXSA9ICdTdWJtaXNzaW9uIFRlbXBsYXRlJzsKCgokbGFuZ1snY2FudXNlX3NtYXJ0eSddID0gJzxlbT5TbWFydHkgdmFyaWFibGVzIGFyZSB2YWxpZCBpbiB0aGlzIGZpZWxkLjwvZW0+JzsKJGxhbmdbJ2FkZF9vcHRpb25zJ10gPSAnQWRkIE1vcmUgT3B0aW9ucyc7CiRsYW5nWydkZWxldGVfb3B0aW9ucyddID0gJ0RlbGV0ZSBNYXJrZWQgT3B0aW9ucyc7CiRsYW5nWydhZGRfY2hlY2tib3hlcyddID0gJ0FkZCBNb3JlIENoZWNrYm94ZXMnOwokbGFuZ1snZGVsZXRlX2NoZWNrYm94ZXMnXSA9ICdEZWxldGUgTWFya2VkIENoZWNrYm94ZXMnOwokbGFuZ1snYWRkX2FkZHJlc3MnXSA9ICdBZGQgQW5vdGhlciBBZGRyZXNzJzsKJGxhbmdbJ2RlbGV0ZV9hZGRyZXNzJ10gPSAnRGVsZXRlIE1hcmtlZCBBZGRyZXNzZXMnOwokbGFuZ1snYWRkX2Rlc3RpbmF0aW9uJ10gPSAnQWRkIEFub3RoZXIgRGVzdGluYXRpb24nOwokbGFuZ1snZGVsZXRlX2Rlc3RpbmF0aW9uJ10gPSAnRGVsZXRlIE1hcmtlZCBEZXN0aW5hdGlvbnMnOwokbGFuZ1snc3VzcGVjdGVkX3NwYW0nXSA9ICdUb28gbWFueSBlbWFpbHMgZ2VuZXJhdGVkIGZyb20geW91ciBJUCBhZGRyZXNzLiBBbnRpLVNwYW0gY29kZSBoYXMgcHJldmVudGVkIGRlbGl2ZXJ5Lic7CiRsYW5nWydzdXNwZWN0ZWRfc3BhbV9sb2cnXSA9ICdTdXNwZWN0ZWQgc3BhbSBmcm9tIElQICVzIHN0b3BwZWQuJzsKJGxhbmdbJ3Jlb3JkZXInXSA9ICdSZW9yZGVyIEZpZWxkcyc7CiRsYW5nWydjYW5jZWwnXSA9ICdDYW5jZWwnOwoKLy8gRmllbGQgQXR0cmlidXRlIFRpdGxlcwokbGFuZ1sndGl0bGVfZmlsZV9wYXRoJ10gPSAnRGVzdGluYXRpb24gRGlyZWN0b3J5IGZvciBvdXRwdXQgZmlsZXMnOwokbGFuZ1sndGl0bGVfdWR0X25hbWUnXSA9ICdVc2VyIERlZmluZWQgVGFnJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZHNfZGVzdHBhZ2UnXSA9ICdQYWdlIHRvIHJldHVybiB0byB3aXRoIHVwbG9hZHMgbGluayc7CiRsYW5nWyd0aXRsZV91cGxvYWRtb2R1bGVfc3VtbWFyeSddID0gJ1N1Ym1pdHRlZCB3aXRoIGZvcm1idWlsZGVyJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZHNfY2F0ZWdvcnknXSA9ICdVcGxvYWRzIGNhdGVnb3J5JzsKJGxhbmdbJ3RpdGxlX3NlbmR0b191cGxvYWRzJ10gPSAnU2VuZCB0aGlzIGZpbGUgdG8gdGhlIHVwbG9hZHMgbW9kdWxlJzsKJGxhbmdbJ3RpdGxlX2xlZ2VuZCddID0gJ0xlZ2VuZCc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX2xlbmd0aCddPSdNYXhpbXVtIExlbmd0aCc7CiRsYW5nWyd0aXRsZV9jaGVja2JveF9sYWJlbCddPSdDaGVja2JveCBsYWJlbCc7CiRsYW5nWyd0aXRsZV9yYWRpb19sYWJlbCddPSdSYWRpbyBCdXR0b24gbGFiZWwnOwokbGFuZ1sndGl0bGVfY2hlY2tlZF92YWx1ZSddPSdWYWx1ZSB3aGVuIGNoZWNrZWQnOwokbGFuZ1sndGl0bGVfdW5jaGVja2VkX3ZhbHVlJ109J1ZhbHVlIHdoZW4gbm90IGNoZWNrZWQuJzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2RldGFpbHMnXT0nQ2hlY2tib3ggR3JvdXAgRGV0YWlscyc7CiRsYW5nWyd0aXRsZV9kZWxldGUnXSA9ICdEZWxldGU/JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9vbmVfbWVzc2FnZSddPSciU2VsZWN0IE9uZSIgVGV4dCc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fZGlzcGxheW5hbWUnXSA9ICdTZWxlY3Rpb24gRGlzcGxheSBOYW1lJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl9zdWJqZWN0J109J1NlbGVjdGlvbiBTdWJqZWN0JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X2NvdW50cnknXT0nRGVmYXVsdCBTZWxlY3Rpb24nOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfc3RhdGUnXT0nRGVmYXVsdCBTZWxlY3Rpb24nOwokbGFuZ1sndGl0bGVfb3B0aW9uX25hbWUnXT0iT3B0aW9uIE5hbWUiOwokbGFuZ1sndGl0bGVfb3B0aW9uX3ZhbHVlJ109IlZhbHVlIFN1Ym1pdHRlZCI7CiRsYW5nWyd0aXRsZV9wdWxsZG93bl9kZXRhaWxzJ109J1B1bGxkb3duIE9wdGlvbnMnOwokbGFuZ1sndGl0bGVfbXVsdGlzZWxlY3RfZGV0YWlscyddPSdNdWx0aXNlbGVjdCBPcHRpb25zJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2FkZHJlc3MnXT0nRGVzdGluYXRpb24gRW1haWwgQWRkcmVzcyc7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9maWxlbmFtZSddID0gJ0Rlc3RpbmF0aW9uIEZpbGUgTmFtZSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9mcm9tX25hbWUnXT0nIkZyb20gbmFtZSIgZm9yIGVtYWlsJzsKJGxhbmdbJ3RpdGxlX3JlbGF4ZWRfZW1haWxfcmVnZXgnXT0nVXNlIHJlbGF4ZWQgZW1haWwgdmFsaWRhdGlvbic7CiRsYW5nWyd0aXRsZV9yZWxheGVkX3JlZ2V4X2xvbmcnXT0nVXNlIHJlbGF4ZWQgZW1haWwgYWRkcmVzcyB2YWxpZGF0aW9uIChlLmcuLCBhbGxvdyAieEB5IiBpbnN0ZWFkIG9mIHJlcXVpcmluZyAieEB5LnRsZCIpJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fYWRkcmVzcyddPSciRnJvbSBhZGRyZXNzIiBmb3IgZW1haWwnOwokbGFuZ1sndGl0bGVfZW1haWxfZW5jb2RpbmcnXT0nRW1haWwgY2hhcmFjdGVyIHNldCBlbmNvZGluZyc7CiRsYW5nWyd0aXRsZV9kaXJlY3Rvcl9kZXRhaWxzJ109J1B1bGxkb3duLWJhc2VkIEVtYWlsZXIgRGV0YWlscyc7CiRsYW5nWyd0aXRsZV9maWxlX25hbWUnXT0nRmlsZSBOYW1lJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX3N1YmplY3QnXT0nRW1haWwgU3ViamVjdCBMaW5lJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmFtZSddPSdGb3JtIE5hbWUnOwokbGFuZ1sndGl0bGVfZm9ybV9zdGF0dXMnXT0nRm9ybSBTdGF0dXMnOwokbGFuZ1sndGl0bGVfcmVhZHlfZm9yX2RlcGxveW1lbnQnXT0nUmVhZHkgZm9yIERlcGxveW1lbnQnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MSddPSdOb3QgUmVhZHknOwokbGFuZ1sndGl0bGVfcmVkaXJlY3RfcGFnZSddPSdQYWdlIHRvIHJlZGlyZWN0IHRvIGFmdGVyIGZvcm0gc3VibWlzc2lvbic7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkyJ109J1BsZWFzZSBhZGQgYSBmaWVsZCB0byB0aGUgZm9ybSBzbyB0aGF0IHRoZSB1c2VyXCdzIGlucHV0IGdldHMgaGFuZGxlZC4gWW91IGNhbic7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHlfbGluayddPSd1c2UgdGhpcyBzaG9ydGN1dCc7CiRsYW5nWyd0aXRsZV9mb3JtX2FsaWFzJ109J0Zvcm0gQWxpYXMnOwokbGFuZ1sndGl0bGVfZm9ybV9maWVsZHMnXT0nRm9ybSBGaWVsZHMnOwokbGFuZ1sndGl0bGVfZmllbGRfaWQnXT0nRmllbGQgSWQnOwokbGFuZ1sndGl0bGVfZmllbGRfbmFtZSddPSdGaWVsZCBOYW1lJzsKJGxhbmdbJ3RpdGxlX3JhZGlvZ3JvdXBfZGV0YWlscyddPSdSYWRpbyBCdXR0b24gR3JvdXAgRGV0YWlscyc7CiRsYW5nWyd0aXRsZV9maWVsZF90eXBlJ109J0ZpZWxkIFR5cGUnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MyddPSd0byBjcmVhdGUgYSBmb3JtIGhhbmRsaW5nIGZpZWxkLic7CiRsYW5nWyd0aXRsZV9mb3JtX2FsaWFzJ109J0Zvcm0gQWxpYXMnOwokbGFuZ1sndGl0bGVfYWRkX25ld19mb3JtJ109J0FkZCBOZXcgRm9ybSc7CiRsYW5nWyd0aXRsZV9zaG93X3ZlcnNpb24nXT0nU2hvdyBGb3JtIEJ1aWxkZXIgVmVyc2lvbj8nOwokbGFuZ1sndGl0bGVfc2hvd192ZXJzaW9uX2xvbmcnXT0nVGhpcyB3aWxsIGVtYmVkIHlvdXIgaW5zdGFsbGVkIHZlcnNpb24gbnVtYmVyIG9mIEZvcm0gQnVpbGRlciBtb2R1bGUgaW4gYSBjb21tZW50LCB0byBhaWQgaW4gZGVidWdnaW5nJzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZmllbGQnXT0nQWRkIE5ldyBGaWVsZCc7CiRsYW5nWyd0aXRsZV9mb3JtX3N1Ym1pdF9idXR0b24nXT0nRm9ybSBTdWJtaXQgQnV0dG9uIFRleHQnOwokbGFuZ1sndGl0bGVfc3VibWl0X2J1dHRvbl9zYWZldHknXT0nQWRkIEphdmFzY3JpcHQgdG8gZmluYWwgU3VibWl0IEJ1dHRvbiB0aGF0IHdpbGwgaGVscCBwcmV2ZW50IG11bHRpcGxlIHN1Ym1pc3Npb25zPyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eV9oZWxwJ109J0FkZCBzYWZldHkgc2NyaXB0JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmV4dF9idXR0b24nXT0nRm9ybSAiTmV4dCIgQnV0dG9uIFRleHQgKHVzZWQgZm9yIG11bHRpcGFnZSBmb3JtcyknOwokbGFuZ1sndGl0bGVfZm9ybV9wcmV2X2J1dHRvbiddID0gJ0Zvcm0gIlByZXZpb3VzIiBCdXR0b24gVGV4dCAodXNlZCBmb3IgbXVsdGlwYWdlIGZvcm1zKSc7CiRsYW5nWyd0aXRsZV9maWVsZF92YWxpZGF0aW9uJ109J0ZpZWxkIFZhbGlkYXRpb24nOwokbGFuZ1sndGl0bGVfZm9ybV9jc3NfY2xhc3MnXT0nQ1NTIENsYXNzIGZvciB0aGlzIGZvcm0nOwokbGFuZ1sndGl0bGVfZmllbGRfY3NzX2NsYXNzJ109J0NTUyBDbGFzcyBmb3IgdGhpcyBmaWVsZCc7CiRsYW5nWyd0aXRsZV9mb3JtX3JlcXVpcmVkX3N5bWJvbCddPSdTeW1ib2wgdG8gbWFyayByZXF1aXJlZCBGaWVsZHMnOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWQnXT0nUmVxdWlyZWQnOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWRfbG9uZyddPSdSZXF1aXJlIGEgcmVzcG9uc2UgZm9yIHRoaXMgRmllbGQnOwokbGFuZ1sndGl0bGVfaGlkZV9sYWJlbCddPSdIaWRlIExhYmVsJzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWxfbG9uZyddPSdIaWRlIHRoaXMgZmllbGRcJ3MgbmFtZSBvbiBGb3JtJzsKJGxhbmdbJ3RpdGxlX3RleHQnXT0nU3RhdGljIHRleHQgdG8gZGlzcGxheSc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZWdleCddPSdWYWxpZGF0aW9uIFJlZ2V4JzsKJGxhbmdbJ3RpdGxlX2xpbmVzX3RvX3Nob3cnXSA9ICdOdW1iZXIgb2YgTGluZXMgdG8gZGlzcGxheSc7CiRsYW5nWydub19kZWZhdWx0J109J05vIERlZmF1bHQnOwokbGFuZ1sncmVkaXJlY3RfYWZ0ZXJfYXBwcm92YWwnXT0nUGFnZSB0byByZWRpcmVjdCBhZnRlciBhcHByb3ZhbCc7CiRsYW5nWyd0aXRsZV9yZWdleF9oZWxwJ109J1RoaXMgcmVndWxhciBleHByZXNzaW9uIHdpbGwgb25seSBiZSB1c2VkIGlmICJ2YWxpZGF0aW9uIHR5cGUiIGlzIHNldCB0byBhIHJlZ2V4LXJlbGF0ZWQgb3B0aW9uLiBJbmNsdWRlIGEgZnVsbCBQZXJsLXN0eWxlIHJlZ2V4LCBpbmNsdWRpbmcgdGhlIHN0YXJ0L3N0b3Agc2xhc2hlcyBhbmQgZmxhZ3MgKGUuZy4sICIvaW1hZ2VcLihcZCspL2kiKSc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9hYmJyZXYnXT0nUmVxXCdkJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzJ109J0hpZGUgRXJyb3JzJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fZGlzcGxheXR5cGUnXSA9ICdGb3JtIERpc3BsYXkgVHlwZSc7CiRsYW5nWyd0aXRsZV9oaWRlX2Vycm9yc19sb25nJ109J1ByZXZlbnQgZGVidWcgLyBlcnJvciBtZXNzYWdlcyBmcm9tIGJlaW5nIHNlZW4gYnkgdXNlcnMuJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX3RlbXBsYXRlJ109J0VtYWlsIFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZSddPSdNYXhpbXVtIHVwbG9hZCBmaWxlIHNpemUgKGtpbG9ieXRlcyknOwokbGFuZ1sndGl0bGVfbWF4aW11bV9zaXplX2xvbmcnXSA9ICdUaGlzIGxpbWl0YXRpb24gaXMgaW4gYWRkaXRpb24gdG8gYW55IGxpbWl0cyBzZXQgYnkgdGhlIHBocCBvciB3ZWIgc2VydmVyIGNvbmZpZ3VyYXRpb24nOwokbGFuZ1sndGl0bGVfcGVybWl0dGVkX2V4dGVuc2lvbnMnXT0nUGVybWl0dGVkIEV4dGVuc2lvbnMnOwokbGFuZ1sndGl0bGVfcGVybWl0dGVkX2V4dGVuc2lvbnNfbG9uZyddPSdFbnRlciBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0LCBleGNsdWRpbmcgdGhlIGRvdCAoZS5nLiwgImpwZyxnaWYsanBlZyIpLiBTcGFjZXMgd2lsbCBiZSBpZ25vcmVkLiBMZWF2aW5nIHRoaXMgYmxhbmsgbWVhbnMgdGhlcmUgd2lsbCBiZSBubyByZXN0cmljdGlvbnMuJzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnMnXT0nRGlzcGxheSByZXN0cmljdGlvbnM/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnNfbG9uZyddPSdEaXNwbGF5IGFueSBzaXplIGFuZCBleHRlbnNpb24gcmVzdHJpY3Rpb25zIHdpdGggdGhlIHVwbG9hZCBmaWVsZD8nOwokbGFuZ1sndGl0bGVfZm9ybV90ZW1wbGF0ZSddPSdUZW1wbGF0ZSB0byB1c2UgdG8gRGlzcGxheSBGb3JtJzsKJGxhbmdbJ3RpdGxlX3BhZ2VfeF9vZl95J10gPSAnUGFnZSAlcyBvZiAlcyc7CiRsYW5nWyd0aXRsZV9ub19hZHZhbmNlZF9vcHRpb25zJ109J0ZpZWxkIGhhcyBubyBhZHZhbmNlZCBvcHRpb25zLic7CiRsYW5nWyd0aXRsZV9mb3JtX3Vuc3BlY2lmaWVkJ109J1RleHQgdG8gcmV0dXJuIGZvciB1bnNwZWNpZmllZCBmaWVsZCB2YWx1ZXMnOwokbGFuZ1sndGl0bGVfZW5hYmxlX2Zhc3RhZGRfbG9uZyddPSdFbmFibGUgZmFzdCBmaWVsZCBhZGRpbmcgcHVsbGRvd24gZm9yIGZvcm1zPyc7CiRsYW5nWyd0aXRsZV9lbmFibGVfZmFzdGFkZCddPSdFbmFibGUgZmFzdCBmaWVsZCBhZGQgcHVsbGRvd24/JzsKJGxhbmdbJ3RpdGxlX2Zhc3RhZGQnXT0nRmFzdCBmaWVsZCBhZGRlcic7CiRsYW5nWyd0aXRsZV9lbmFibGVfYW50aXNwYW1fbG9uZyddPSdDbGlja2luZyB0aGlzIHdpbGwgb25seSBhbGxvdyAxMCBlbWFpbHMgdG8gYmUgdHJpZ2dlcmVkIGZyb20gYSBnaXZlbiBJUCBhZGRyZXNzIChwZXIgaG91cikuJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9hbnRpc3BhbSddPSdFbmFibGUgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcz8nOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGlkcyddID0gJ1Nob3cgRmllbGQgSURzJzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRpZHNfbG9uZyddID0gJ0NsaWNraW5nIHRoaXMgd2lsbCBhbGxvdyBkaXNwbGF5aW5nIGZpZWxkIGlkcyB3aGVuIGFkZGluZyBvciBlZGl0aW5nIGEgZm9ybSc7CiRsYW5nWyd0aXRsZV94bWxfdG9fdXBsb2FkJ109J1VwbG9hZCBmb3JtIGZyb20gWE1MIGZpbGUnOwokbGFuZ1sndGl0bGVfeG1sX3VwbG9hZF9mb3JtbmFtZSddID0gJ1VzZSB0aGlzIGZvcm0gbmFtZSc7CiRsYW5nWyd0aXRsZV9pbXBvcnRfbGVnZW5kJ10gPSAnWE1MIEZvcm0gSW1wb3J0JzsKJGxhbmdbJ3RpdGxlX3htbF91cGxvYWRfZm9ybWFsaWFzJ10gPSAnVXNlIHRoaXMgZm9ybSBhbGlhcyc7CiRsYW5nWyd0aXRsZV9odG1sX2VtYWlsJ109J0dlbmVyYXRlIEhUTUwgZW1haWw/JzsKJGxhbmdbJ3RpdGxlX2xpbmtfYXV0b3BvcHVsYXRlJ109J0F1dG9tYXRpY2FsbHkgcG9wdWxhdGU/JzsKJGxhbmdbJ3RpdGxlX2xpbmtfYXV0b3BvcHVsYXRlX2hlbHAnXT0nQXV0b21hdGljYWxseSBwb3B1bGF0ZSB3aXRoIHRoZSBVUkwgb2YgdGhlIHBhZ2UgY29udGFpbmluZyB0aGUgZm9ybT8gKHRoaXMgb3ZlcnJpZGVzIHNpdGUgcGFnZSBsaW5rIG9wdGlvbiBiZWxvdyknOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9saW5rJ109J0RlZmF1bHQgbGluayBVUkwnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9saW5rX3RpdGxlJ109J0RlZmF1bHQgbGluayB0ZXh0JzsKJGxhbmdbJ3RpdGxlX2xpbmtfdG9fc2l0ZXBhZ2UnXT0nTGluayB0byBzaXRlIHBhZ2UnOwokbGFuZ1sndGl0bGVfY2FwdGNoYV9ub3RfaW5zdGFsbGVkJ10gPSAnWW91IGNhbiB1c2UgPGEgaHJlZj0iaHR0cDovL3d3dy53aWtpcGVkaWEub3JnL3dpa2kvQ2FwdGNoYSIgdGFyZ2V0PSJfbmV3Ij4iQ2FwdGNoYSI8L2E+IHRvIHByb3RlY3QgZm9ybSBzdWJtaXNzaW9ucyBpZiB5b3UgaW5zdGFsbCB0aGUgQ2FwdGNoYSBtb2R1bGUuIEZvciBtb3JlIGluZm9ybWF0aW9uLCA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2NhcHRjaGEvIj5jaGVjayB0aGUgQ2FwdGNoYSBwcm9qZWN0PC9hPi4nOwokbGFuZ1sndGl0bGVfdXNlX2NhcHRjaGEnXSA9ICdVc2UgQ2FwdGNoYSB0byBwcm90ZWN0IGZvcm0gc3VibWlzc2lvbnM/JzsKJGxhbmdbJ3RpdGxlX3VzZV9jYXB0Y2hhX2hlbHAnXSA9ICdDaGVjayBoZXJlIHRvIHByb3RlY3QgeW91ciBmb3JtIHdpdGggYSA8YSBocmVmPSJodHRwOi8vd3d3Lndpa2lwZWRpYS5vcmcvd2lraS9DYXB0Y2hhIiB0YXJnZXQ9Il9uZXciPiJDYXB0Y2hhIjwvYT4uJzsKJGxhbmdbJ3RpdGxlX3VzZXJfY2FwdGNoYSddID0gJ1BsZWFzZSBjb25maXJtIHRoYXQgeW91IGFyZSBub3QgYSBzY3JpcHQgYnkgZW50ZXJpbmcgdGhlIGxldHRlcnMgZnJvbSB0aGUgaW1hZ2UuJzsKJGxhbmdbJ3RpdGxlX3VzZXJfY2FwdGNoYV9lcnJvciddID0gJ0ZhaWxlZCB0ZXh0IGZvciBDYXB0Y2hhJzsKJGxhbmdbJ3dyb25nX2NhcHRjaGEnXT0nQ2FwdGNoYSB3YXMgbm90IGNvcnJlY3QuJzsKJGxhbmdbJ3RpdGxlX3RpdGxlX3VzZXJfY2FwdGNoYSddID0gJ0hlbHAgdGV4dCBmb3IgQ2FwdGNoYSc7CiRsYW5nWydsaW5rX2xhYmVsJ109J0xpbmsgTGFiZWwnOwokbGFuZ1snbGlua19kZXN0aW5hdGlvbiddPSdMaW5rIERlc3RpbmF0aW9uIFVSTCc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3NldCddPSdDaGVja2VkIGJ5IERlZmF1bHQ/JzsKJGxhbmdbJ3RpdGxlXzI0X2hvdXInXT0nVXNlIDI0LWhvdXIgY2xvY2s/JzsKJGxhbmdbJ3RpdGxlX2JlZm9yZV9ub29uJ10gPSAnQU0nOwokbGFuZ1sndGl0bGVfYWZ0ZXJfbm9vbiddID0gJ1BNJzsKJGxhbmdbJ3RpdGxlX3NtYXJ0eV9ldmFsJ10gPSAnUHJvY2VzcyBzbWFydHkgdGFncyB3aXRoaW4gZmllbGQ/JzsKJGxhbmdbJ3RpdGxlX3RleHRhcmVhX3Jvd3MnXSA9ICdSb3dzIChub3RlOiB0aGlzIG1heSBiZSBvdmVycmlkZGVuIGJ5IENTUyknOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfY29scyddID0gJ0NvbHVtbnMgKG5vdGU6IHRoaXMgbWF5IGJlIG92ZXJyaWRkZW4gYnkgQ1NTKSc7CiRsYW5nWyd0aXRsZV9mb3JtX21haW4nXT0gJ01haW4gRm9ybSBEZXRhaWxzJzsKJGxhbmdbJ2hlbHBfbGVhdmVlbXB0eSddID0gJ1RoaXMgZmllbGQgbWF5IGJlIGxlZnQgZW1wdHknOwokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX3RlbXBsYXRlJ109J1ZhcmlhYmxlcyBGb3IgVGVtcGxhdGUnOwokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX2NvbXB1dGF0aW9uJ109J1ZhcmlhYmxlcyBBdmFpbGFibGUnOwokbGFuZ1snaGVscF9waHBfdmFyaWFibGVfbmFtZSddID0gJ1BIUCB2YXJpYWJsZSc7CiRsYW5nWydoZWxwX3N1Ym1pc3Npb25fZGF0ZSddPSdEYXRlIG9mIFN1Ym1pc3Npb24nOwokbGFuZ1snaGVscF9zZXJ2ZXJfbmFtZSddPSdZb3VyIHNlcnZlcic7CiRsYW5nWydoZWxwX3N1Yl9zb3VyY2VfaXAnXT0nSVAgYWRkcmVzcyBvZiBwZXJzb24gdXNpbmcgZm9ybSc7CiRsYW5nWydoZWxwX3N1Yl91cmwnXT0nVVJMIG9mIHBhZ2UgY29udGFpbmluZyBmb3JtJzsKJGxhbmdbJ2hlbHBfb3RoZXJfZmllbGRzJ109J0FsdGVybmF0ZSBmaWVsZCBuYW1lcyBjYW4gYmUgdXNlZCBpbnRlcmNoYW5nZWFibHkgKGVzcGVjaWFsbHkgdXNlZnVsIGlmIFNtYXJ0eSBpcyBjaG9raW5nIG9uIGNoYXJhY3RlcnMgb3V0c2lkZSBvZiBBU0NJSSAzMi0xMjYpLiA8YnIgLz5PdGhlciBmaWVsZHMgd2lsbCBiZSBhdmFpbGFibGUgYXMgeW91IGFkZCB0aGVtIHRvIHRoZSBmb3JtLic7CiRsYW5nWydoZWxwX2FycmF5X2ZpZWxkcyddPSdGaWVsZHMgdGhhdCBoYXZlIG11bHRpcGxlIHZhbHVlcyBtYXkgYWxzbyBiZSBhY2Nlc3NlZCB2aWEgdGhlIHNtYXJ0eSB2YWx1ZSBvZiAkZmllbGRuYW1lX2FycmF5IG9yICRmbGRfI19hcnJheS4nOwokbGFuZ1snaGVscF9kYXRlX2Zvcm1hdCddPSdTZWUgPGEgaHJlZj0iaHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5kYXRlLnBocCIgdGFyZ2V0PV9ORVc+dGhlIFBIUCBNYW51YWw8L2E+IGZvciBmb3JtYXR0aW5nIGhlbHAuJzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVfbmFtZSddPSdWYXJpYWJsZSc7CiRsYW5nWydoZWxwX2Zvcm1fZmllbGQnXT0nRmllbGQgUmVwcmVzZW50ZWQnOwokbGFuZ1snbGlua19iYWNrX3RvX2Zvcm0nXT0nJiMxNzE7IEJhY2sgdG8gRm9ybSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX3RlbXBsYXRlJ109J0NyZWF0ZSBTYW1wbGUgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9odG1sX3RlbXBsYXRlJ109J0NyZWF0ZSBTYW1wbGUgSFRNTCBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2hlYWRlciddPSdDcmVhdGUgU2FtcGxlIEhlYWRlcic7CiRsYW5nWydoZWxwX3RhYl9zeW1ib2wnXT0nYSB0YWIgY2hhcmFjdGVyJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfdGVtcGxhdGUnXT0nVGVtcGxhdGUgZm9yIG9uZSBsaW5lIG9mIG91dHB1dCBmaWxlJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfaGVhZGVyJ109J1RlbXBsYXRlIGZvciB0aGUgaGVhZGVyIG9mIG91dHB1dCBmaWxlJzsKJGxhbmdbJ3RpdGxlX2NvbmZpcm1hdGlvbl91cmwnXT0nVVJMIHRvIGNsaWNrIGZvciBmb3JtIGNvbmZpcm1hdGlvbic7CiRsYW5nWyd0aXRsZV92YWx1ZSddID0gJ1ZhbHVlIChzZWUgQWR2YW5jZWQgVGFiIGlmIHlvdSB1c2UgU21hcnR5IHRhZ3MpJzsKJGxhbmdbJ3RpdGxlX2RhdGVfZm9ybWF0J109J0RhdGUgRm9ybWF0IChzdGFuZGFyZCA8YSBocmVmPSJodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwIj5QSFAgRGF0ZSBGb3JtYXRzPC9hPiknOwokbGFuZ1sndGl0bGVfdXNlX3d5c2l3eWcnXT0nVXNlIFdZU0lXWUcgZWRpdG9yIGZvciB0ZXh0IEFyZWEgKEFkbWluIHNpZGUgb25seSk/JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9hY3Rpb25zJ10gPSAnRm9ybSBTdWJtaXNzaW9uIEJlaGF2aW9yJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9sYWJlbHMnXSA9ICdTdWJtaXNzaW9uIEJ1dHRvbiBMYWJlbHMnOwokbGFuZ1sndGl0bGVfc3VibWl0X2hlbHAnXSA9ICdUaGlzIHBhZ2UgbGV0cyB5b3UgY3VzdG9taXplIEZvcm0gU3VibWlzc2lvbi4gSXQgZG9lc25cJ3QgZGV0ZXJtaW5lIHdoYXQgdGhlIEZvcm0gQnVpbGRlciBkb2VzIHdpdGggdGhlIHN1Ym1pdHRlZCBkYXRhLiBZb3UgY2FuIHNldCB0aGF0IHVwIGJ5IGFkZGluZyAiRGlzcG9zaXRpb24iIGZpZWxkcyB0byB5b3VyIGZvcm0uJzsKJGxhbmdbJ3RpdGxlX3N0YXJ0X3llYXInXSA9ICdZZWFyIHJhbmdlIHN0YXJ0JzsKJGxhbmdbJ3RpdGxlX2VuZF95ZWFyJ10gPSAnWWVhciByYW5nZSBlbmQnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF95ZWFyJ10gPSAnRGVmYXVsdCBZZWFyJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfeWVhcl9oZWxwJ10gPSAnKFNldCB0byAtMSBmb3IgZGVmYXVsdCB5ZWFyIHRvIGJlIHRoZSBjdXJyZW50IHllYXIpJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9hY3Rpb24nXSA9ICdBZnRlciBmb3JtIGlzIHN1Ym1pdHRlZCc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfcmVzcG9uc2UnXSA9ICdSZXNwb25zZSB0byBkaXNwbGF5JzsKJGxhbmdbJ2Rpc3BsYXlfdGV4dCddID0gJ0Rpc3BsYXkgIlN1Ym1pc3Npb24gVGVtcGxhdGUiJzsKJGxhbmdbJ3JlZGlyZWN0X3RvX3BhZ2UnXSA9ICdSZWRpcmVjdCB0byBzaXRlIHBhZ2UnOwokbGFuZ1sndGl0bGVfc3VibWl0X3Jlc3BvbnNlX2hlbHAnXSA9ICdUaGlzIHRlbXBsYXRlIGlzIGZvciBkaXNwbGF5IHRvIHRoZSB1c2VyIGFmdGVyIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZC4gVGhpcyB0ZW1wbGF0ZSBkb2VzIG5vdCBlZmZlY3QgZW1haWxzIGdlbmVyYXRlZCBvciBvdGhlciBmb3JtIGRpc3Bvc2l0aW9ucyAtLSB5b3Ugc2V0IHRob3NlIHRlbXBsYXRlcyAod2hlcmUgYXBwcm9wcmlhdGUpIGluIHRoZSAiYWR2YW5jZWQiIHRhYiBmb3IgdGhvc2UgZGlzcG9zaXRpb24gZmllbGRzLic7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9wYWdlJ10gPSAnRGVzdGluYXRpb24gUGFnZSc7CiRsYW5nWyd0aXRsZV9yZXF1aXJlX2ZpZWxkbmFtZXMnXSA9ICdSZXF1aXJlIEZpZWxkbmFtZXMnOwokbGFuZ1sndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzX2xvbmcnXSA9ICdSZXF1aXJlIGZpZWxkcyB0byBoYXZlIGEgbmFtZT8nOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXMnXSA9ICdSZXF1aXJlIFVuaXF1ZSBGaWVsZG5hbWVzJzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWVsZG5hbWVzX2xvbmcnXSA9ICdSZXF1aXJlIGZpZWxkcyB0byBoYXZlIHVuaXF1ZSBuYW1lcz8nOwokbGFuZ1sndGl0bGVfcmVvcmRlcl9mb3JtJ10gPSAnUmVvcmRlciBGaWVsZHMnOwokbGFuZ1sndGl0bGVfbG9hZF90ZW1wbGF0ZSddID0gJ0xvYWQgdGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfYWRkX2J1dHRvbl90ZXh0J10gPSAnQWRkIEJ1dHRvbiB0ZXh0JzsKJGxhbmdbJ3RpdGxlX2RlbF9idXR0b25fdGV4dCddID0gJ0RlbGV0ZSBCdXR0b24gdGV4dCc7CiRsYW5nWyd0aXRsZV9zdHJpbmdfb3JfbnVtYmVyX2V2YWwnXSA9ICdJbnRlcnByZXQgdmFyaWFibGVzIGFzIGJlaW5nIG51bWJlcnMgb3Igc3RyaW5ncyc7CiRsYW5nWyd0aXRsZV9vcmRlciddPSdJbnRlcnByZXRhdGlvbiBPcmRlcic7CiRsYW5nWyd0aXRsZV9vcmRlcl9oZWxwJ109J0lmIG1vcmUgdGhhbiBvbmUgQ29tcHV0ZWQgRmllbGQgZXhpc3RzLCB0aGV5IHdpbGwgYmUgY29tcHV0ZWQgZnJvbSBsb3dlc3Qgb3JkZXIgbnVtYmVyIHRvIGhpZ2hlc3Qgb3JkZXIgbnVtYmVyJzsKJGxhbmdbJ3RpdGxlX2NvbXB1dGVfdmFsdWUnXSA9ICdWYWx1ZSB0byBjb21wdXRlJzsKJGxhbmdbJ3RpdGxlX3N0cmluZyddID0gJ1N0cmluZyc7CiRsYW5nWyd0aXRsZV9udW1lcmljJ10gPSAnTnVtZXJpYyc7CiRsYW5nWyd0aXRsZV9pbmxpbmVfZm9ybSddID0gJ0Rpc3BsYXkgZm9ybSBpbmxpbmU/JzsKJGxhbmdbJ3RpdGxlX2lubGluZV9mb3JtX2hlbHAnXSA9ICdJbmxpbmUgbWVhbnMgYW55IGZvcm0gZm9sbG93dXAgcmVwbGFjZXMgdGhlIHtjbXNfbW9kdWxlfSB0YWcsIG5vbi1pbmxpbmUgcmVwbGFjZXMgdGhlIHtjb250ZW50fSB0YWcuJzsKCiRsYW5nWydkZWZhdWx0X3RlbXBsYXRlJ10gPSAnRGVmYXVsdCBUZW1wbGF0ZSc7CiRsYW5nWyd0YWJsZV9sZWZ0X3RlbXBsYXRlJ10gPSAnVGFibGUgVGVtcGxhdGUsIFRpdGxlcyBvbiBsZWZ0JzsKJGxhbmdbJ3RhYmxlX3RvcF90ZW1wbGF0ZSddID0gJ1RhYmxlIFRlbXBsYXRlLCBUaXRsZSBvbiB0b3AnOwokbGFuZ1snZm9ybV90ZW1wbGF0ZV9uYW1lJ10gPSAnVGVtcGxhdGUgZnJvbSAlcyc7CiRsYW5nWyd0ZW1wbGF0ZV9hcmVfeW91X3N1cmUnXT0nQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIG92ZXJ3cml0ZSB5b3VyIHRlbXBsYXRlIHdpdGggdGhlIHNlbGVjdGVkIHRlbXBsYXRlPyAoRXZlbiBpZiB5b3Ugc2F5IE9LLCB5b3Ugd2lsbCBzdGlsbCBuZWVkIHRvIHNhdmUgdGhlIGNoYW5nZSknOwokbGFuZ1sndGl0bGVfYmFkX2Z1bmN0aW9uJ10gPSAnRXJyb3Igd2hlbiBjb21wdXRpbmcgIiVzIi4nOwokbGFuZ1snbm9fcmVmZXJyZXJfaW5mbyddPSdObyBIVFRQX1JFRkVSRVIgaW5mbyBhdmFpbGFibGUgKHByb2JhYmx5IGR1ZSB0byB1c2Ugb2YgVXNlciBFbWFpbCBWYWxpZGF0aW9uKSc7CiRsYW5nWyd2YWxpZGF0aW9uX3BhcmFtX2Vycm9yJ109J1ZhbGlkYXRpb24gUGFyYW1ldGVyIEVycm9yLiBQbGVhc2UgbWFrZSBzdXJlIHlvdSBjb3B5IHRoZSBVUkwgZnJvbSB5b3VyIGVtYWlsIGNvcnJlY3RseSEnOwokbGFuZ1sndmFsaWRhdGlvbl9yZXNwb25zZV9lcnJvciddPSdWYWxpZGF0aW9uIFJlcHNvbnNlIEVycm9yLiBQbGVhc2UgbWFrZSBzdXJlIHlvdSBjb3B5IHRoZSBVUkwgZnJvbSB5b3VyIGVtYWlsIGNvcnJlY3RseSEnOwokbGFuZ1sndmFsaWRhdGlvbl9ub19maWVsZF9lcnJvciddPSdWYWxpZGF0aW9uIFJlcHNvbnNlIEVycm9yLiBObyBlbWFpbCB2YWxpZGF0aW9uIGZpZWxkIGluIHRoaXMgZm9ybSEnOwokbGFuZ1sndXBncmFkZTAzdG8wNCddID0gJ0Zvcm0gVGVtcGxhdGUgd2FzIHVwZGF0ZWQgYXV0b21hdGljYWxseSBhcyBwYXJ0IG9mIHRoZSB2ZXJzaW9uIDAuMyB0byB2ZXJzaW9uIDAuNCB1cGdyYWRlLiBZb3UgbWF5IG5lZWQgdG8gbWFrZSBzb21lIGZpeGVzLiBJZiB5b3VcJ3JlIHVzaW5nIHRoZSBkZWZhdWx0IGZvcm0sIHNpbXBseSByZXBsYWNlIHRoaXMgdGVtcGxhdGUgd2l0aCAiZGVmYXVsdCIgdXNpbmcgdGhlIHB1bGxkb3duIGFib3ZlLic7CiRsYW5nWydhZG1pbmRlc2MnXT0nQWRkLCBlZGl0IGFuZCBtYW5hZ2UgaW50ZXJhY3RpdmUgRm9ybXMnOwoKJGxhbmdbJ29wZXJhdG9yc19oZWxwJ10gPSAnSWYgeW91IHVzZSBTdHJpbmcgZXZhbHVhdGlvbiwgdGhlIG9ubHkgb3BlcmF0aW9uIGF2YWlsYWJsZSBpcyBjb25jYXRlbmF0aW9uICgrKSwgd2hpbGUgaWYgeW91IHVzZSBOdW1iZXIgZXZhbHVhdGlvbiB5b3UgaGF2ZSBiYXNpYywgdmVyeSBzaW1wbGUgbWF0aCAoLCArLCAtLCAqLCAvLCApLic7IAoKCiRsYW5nWydkYXRlX2phbnVhcnknXT0nSmFudWFyeSc7CiRsYW5nWydkYXRlX2ZlYnJ1YXJ5J109J0ZlYnJ1YXJ5JzsKJGxhbmdbJ2RhdGVfbWFyY2gnXT0nTWFyY2gnOwokbGFuZ1snZGF0ZV9hcHJpbCddPSdBcHJpbCc7CiRsYW5nWydkYXRlX21heSddPSdNYXknOwokbGFuZ1snZGF0ZV9qdW5lJ109J0p1bmUnOwokbGFuZ1snZGF0ZV9qdWx5J109J0p1bHknOwokbGFuZ1snZGF0ZV9hdWd1c3QnXT0nQXVndXN0JzsKJGxhbmdbJ2RhdGVfc2VwdGVtYmVyJ109J1NlcHRlbWJlcic7CiRsYW5nWydkYXRlX29jdG9iZXInXT0nT2N0b2Jlcic7CiRsYW5nWydkYXRlX25vdmVtYmVyJ109J05vdmVtYmVyJzsKJGxhbmdbJ2RhdGVfZGVjZW1iZXInXT0nRGVjZW1iZXInOwoKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3InXSA9ICdTb3JyeSEgVGhlcmUgd2FzIGFuIGVycm9yIGhhbmRsaW5nIHlvdXIgZm9ybSBzdWJtaXNzaW9uLic7CiRsYW5nWydzdWJtaXRfZXJyb3InXT0nRm9ybUJ1aWxkZXIgc3VibWl0IGVycm9yOiAlcyc7CiRsYW5nWyd1cGxvYWRzX2Vycm9yJ10gPSAnRXJyb3IgY29tbWl0dGluZyBmaWxlIHRvIHRoZSB1cGxvYWRzIG1vZHVsZTogJXMnOwokbGFuZ1snbm91cGxvYWRzX2Vycm9yJ10gPSAnQ291bGQgbm90IGZpbmQgdGhlIHVwbG9hZHMgbW9kdWxlJzsKJGxhbmdbJ3VwbG9hZF9hdHRhY2hfZXJyb3InXSA9ICdVcGxvYWQvQXR0YWNobWVudCBlcnJvciBvbiBmaWxlICVzICh0bXBfbmFtZTogJXMsIG9mIHR5cGUgJXMpJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3JfZmlsZV9sb2NrJ10gPSAnRXJyb3IuIFVuYWJsZSB0byBvYnRhaW4gbG9jayBmb3IgZmlsZS4nOwoKJGxhbmdbJ2VtYWlsX2RlZmF1bHRfdGVtcGxhdGUnXSA9ICJGb3JtQnVpbGRlciBTdWJtaXNzaW9uIjsKJGxhbmdbJ2VtYWlsX3RlbXBsYXRlX25vdF9zZXQnXSA9ICc8YnIvPkVtYWlsIFRlbXBsYXRlIG5vdCB5ZXQgc2V0ISc7ICAgICAgCiRsYW5nWydtaXNzaW5nX2Ntc19tYWlsZXInXSA9ICdGb3JtQnVpbGRlcjogQ2Fubm90IGZpbmQgcmVxdWlyZWQgbW9kdWxlIENNU01haWxlciEnOyAgCQkKJGxhbmdbJ3VzZXJfYXBwcm92ZWRfc3VibWlzc2lvbiddPSdVc2VyIGFwcHJvdmVkIHN1Ym1pc3Npb24gJXMgZnJvbSAlcyc7CgokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdCddPSdFdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddPSdFdmVudCB0cmlnZ2VyZWQgaWYgdGhlcmUgaXMgYW4gZXJyb3Igd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1EaXNwbGF5J109J0V2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBkaXNwbGF5ZWQnOwoKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXT0nPHA+RXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZC48L3A+CjxoND5QYXJhbWV0ZXJzPC9oND4KPHVsPgo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gVGhlIGZvcm0gbmFtZSAoc3RyaW5nKTwvbGk+CjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gVGhlIGludGVybmFsIGZvcm0gaWQgKGludCk8L2xpPgo8bGk+PGVtPnZhbHVlXyZsdDtuYW1lJmd0OzwvZW0+IC0gU3VwcGx5IGEgZGVmYXVsdCB2YWx1ZSB0byBhIGZpZWxkIHdpdGggdGhlIHNwZWNpZmllZCBuYW1lLjwvbGk+CjwvdWw+ICc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InXT0nPHA+RXZlbnQgdHJpZ2dlcmVkIGlmIHRoZXJlIGlzIGFuIGVycm9yIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZDwvcD4KPGg0PlBhcmFtZXRlcnM8L2g0Pgo8dWw+CjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBUaGUgZm9ybSBuYW1lIChzdHJpbmcpPC9saT4KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBUaGUgaW50ZXJuYWwgZm9ybSBpZCAoaW50KTwvbGk+CjxsaT48ZW0+ZXJyb3I8L2VtPiAtIEEgbGlzdCBvZiBhbGwga25vd24gZXJyb3JzIChzdHJpbmcpPC9saT4KPC91bD4gJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1EaXNwbGF5J109JzxwPkV2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBkaXNwbGF5ZWQ8L3A+CjxoND5QYXJhbWV0ZXJzPC9oND4KPHVsPgo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gVGhlIGZvcm0gbmFtZSAoc3RyaW5nKTwvbGk+CjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gVGhlIGludGVybmFsIGZvcm0gaWQgKGludCk8L2xpPgo8L3VsPiAnOwoKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19yZXNwb25zZV9pZCddID0gJ1Jlc3BvbnNlIElELiBVc2VkIGJ5IEZvcm1Ccm93c2VyJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19wYXNzZWRfZnJvbV90YWcnXSA9ICdEZWZhdWx0IGZpZWxkIHZhbHVlczsgc2VlIG1vZHVsZSBoZWxwJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19maWVsZF9pZCddID0gJ0ZpZWxkIElEIGZvciBpbnRlcm5hbCBvcGVyYXRpb25zJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19mb3JtX25hbWUnXSA9ICdGb3JtIE5hbWUnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2Zvcm1faWQnXSA9ICdGb3JtIElEIGZvciBpbnRlcm5hbCBvcGVyYXRpb25zJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19nZW5lcmFsJ10gPSAnR2VuZXJhbCBwYXJhbWV0ZXJzIGZvciBpbnRlcm5hbCBvcGVyYXRpb25zJzsKCiRsYW5nWyd0ZW1wbGF0ZV92YXJpYWJsZV9oZWxwJ10gPSAiCjxoMz5Gb3JtIFRlbXBsYXRlIFZhcmlhYmxlczwvaDM+CjxwPllvdSBjYW4gZWRpdCBpdCB0byBtYWtlIHlvdXIgZm9ybSBsYXlvdXQgbG9vayBhbnkgd2F5IHlvdSdkIGxpa2UuCiAgIFRvIG1ha2UgdGhlIGZvcm0gd29yaywgeW91J2xsIG5lZWQgdG8gYWx3YXlzIGluY2x1ZGUgdGhlICYjMTIzO1wkZmJfaGlkZGVufSBhbmQgJiMxMjM7XCRzdWJtaXR9CiAgIHRhZ3MuPC9wPgoKPHA+WW91IGNhbiBhY2Nlc3MgeW91ciBmb3JtIGZpZWxkcyBlaXRoZXIgdXNpbmcgdGhlIFwkZmllbGRzIGFycmF5IG9yIGJ5IGRpcmVjdGx5IGFjY2Vzc2luZyBmaWVsZHMgYnkgdGhlaXIgbmFtZXMgKGUuZy4sICYjMTIzO1wkbXlmaWVsZC0+aW5wdXR9ICk8L3A+CgoKPHA+RWFjaCBmaWVsZCBoYXMgdGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzOjwvcD4KPHRhYmxlPgo8dHI+PHRoPkZpZWxkPC90aD48dGg+VmFsdWU8L3RoPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmRpc3BsYXk8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBzaG91bGQgYmUgZGlzcGxheWVkLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+cmVxdWlyZWQ8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBpcyByZXF1aXJlZCwgMCBvdGhlcndpc2U8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPnJlcXVpcmVkX3N5bWJvbDwvdGQ+PHRkPnRoZSBzeW1ib2wgZm9yIHJlcXVpcmVkIGZpZWxkczwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+Y3NzX2NsYXNzPC90ZD48dGQ+dGhlIENTUyBjbGFzcyBzcGVjaWZpZWQgZm9yIHRoaXMgZmllbGQ8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPnZhbGlkPC90ZD48dGQ+MSBpZiB0aGlzIGZpZWxkIGhhcyBwYXNzZWQgdmFsaWRhdGlvbiwgMCBvdGhlcndpc2U8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmVycm9yPC90ZD48dGQ+VGV4dCBvZiB0aGUgdmFsaWRhdGlvbiBwcm9ibGVtLCBpbiB0aGUgZXZlbnQgdGhhdCB0aGlzIGZpZWxkIGRpZCBub3QgdmFsaWRhdGU8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmhpZGVfbmFtZTwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIG5hbWUgc2hvdWxkIGJlIGhpZGRlbiwgMCBvdGhlcndpc2U8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmhhc19sYWJlbDwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIHR5cGUgaGFzIGEgbGFiZWw8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPm5lZWRzX2RpdjwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIG5lZWRzIHRvIGJlIHdyYXBwZWQgaW4gYSBESVYgKG9yIHRhYmxlIHJvdywgaWYgdGhhdCdzIHRoZSB3YXkgeW91IHN3aW5nKTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+bmFtZTwvdGQ+PHRkPnRoZSBmaWVsZCdzIG5hbWU8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmlucHV0PC90ZD48dGQ+dGhlIGZpZWxkJ3MgaW5wdXQgY29udHJvbCAoZS5nLiwgdGhlIGlucHV0IGZpZWxkIGl0c2VsZik8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPm9wPC90ZD48dGQ+YSBjb250cm9sIGJ1dHRvbiBhc3NvY2lhdGVkIHdpdGggdGhlIGZpZWxkIGlmIGFwcGxpY2FibGUgKGUuZy4sIHRoZSBkZWxldGUgYnV0dG9uIGZvciBleHBhbmRhYmxlIHRleHQgaW5wdXQpPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5pbnB1dF9pZDwvdGQ+PHRkPnRoZSBJRCBvZiB0aGUgZmllbGQncyBpbnB1dCAodXNlZnVsIGZvciA8bGFiZWwgZm9yPVwiXCI+KTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+dHlwZTwvdGQ+PHRkPnRoZSBmaWVsZCdzIGRhdGEgdHlwZTwvdGQ+PC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPHRyPjx0ZD5maWVsZC0+bXVsdGlwbGVfcGFydHM8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYSBjb2xsZWN0aW9uIG9mIGNvbnRyb2xzPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5sYWJlbF9wYXJ0czwvdGQ+PHRkPjEgaWYgdGhlIGNvbGxlY3Rpb24gb2YgY29udHJvbHMgaGFzIHNlcGFyYXRlIGxhYmVscyBmb3IgZWFjaCBjb250cm9sPC90ZD48L3RyPgo8L3RhYmxlPgoKPHA+SW4gY2VydGFpbiBjYXNlcywgZmllbGQtPmlucHV0IGlzIGFjdHVhbGx5IGFuIGFycmF5IG9mIG9iamVjdHMgcmF0aGVyIHRoYW4gYW4gaW5wdXQuIFRoaXMgaGFwcGVucywgZm9yIGV4YW1wbGUsIGluIENoZWNrQm94R3JvdXBzIG9yIFJhZGlvQnV0dG9uR3JvdXBzLiBGb3IgdGhlbSwgeW91IGNhbiBpdGVyYXRlIHRocm91Z2ggZmllbGQtPmlucHV0LT5uYW1lIGFuZCBmaWVsZC0+aW5wdXQtPmlucHV0cy48L3A+CiAgICAKPHA+QWRkaXRpb25hbCBzbWFydHkgdmFyaWFibGVzIHRoYXQgeW91IGNhbiB1c2UgaW5jbHVkZTo8L3A+Cjx0YWJsZT4KPHRyPjx0aD5WYXJpYWJsZTwvdGg+PHRoPlZhbHVlPC90aD48L3RyPgo8dHI+PHRkPnRvdGFsX3BhZ2VzPC90ZD48dGQ+bnVtYmVyIG9mIHBhZ2VzIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPgo8dHI+PHRkPnRoaXNfcGFnZTwvdGQ+PHRkPm51bWJlciBmbyB0aGUgY3VycmVudCBwYWdlIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPgo8dHI+PHRkPnRpdGxlX3BhZ2VfeF9vZl95PC90ZD48dGQ+ZGlzcGxheXMgXCJwYWdlIHggb2YgeVwiIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPgo8dHI+PHRkPmNzc19jbGFzczwvdGQ+PHRkPkNTUyBDbGFzcyBmb3IgdGhlIGZvcm08L3RkPjwvdHI+Cjx0cj48dGQ+Zm9ybV9uYW1lPC90ZD48dGQ+Rm9ybSBuYW1lPC90ZD48L3RyPgo8dHI+PHRkPmZvcm1faWQ8L3RkPjx0ZD5Gb3JtIGRhdGFiYXNlIElEPC90ZD48L3RyPgo8dHI+PHRkPnByZXY8L3RkPjx0ZD5cIkJhY2tcIiBidXR0b24gZm9yIG11bHRpcGFydCBmb3JtczwvdGQ+PC90cj4KPHRyPjx0ZD5zdWJtaXQ8L3RkPjx0ZD5cIkNvbnRpbnVlXCIgb3IgXCJTdWJtaXRcIiBidXR0b24gZm9yIG11bHRpcGFydCBmb3JtcywgYWRqdXN0cyBhdXRvbWF0aWNhbGx5PC90ZD48L3RyPgo8L3RhYmxlPgo8cD5EdW5ubyB3aHkgeW91J2Qgd2FudCBzb21lIG9mIHRob3NlLCBidXQgdGhlcmUgeW91IGdvLi4uPC9wPgoiOwoKLy8gcG9zdC1pbnN0YWxsIG1lc3NhZ2UKJGxhbmdbJ3Bvc3RfaW5zdGFsbCddPSIKPHA+TWFrZSBzdXJlIHRvIHNldCB0aGUgXCJNb2RpZnkgRm9ybXNcIiBwZXJtaXNzaW9ucwpvbiB1c2VycyB3aG8gd2lsbCBiZSBhZG1pbmlzdGVyaW5nIGZlZWRiYWNrIGZvcm1zLiBBbHNvLCBpZiB5b3UnbGwgYmUgZW1haWxpbmcgZm9ybQpyZXN1bHRzLCBiZSBzdXJlIHRvIHVwZGF0ZSB0aGUgQ29uZmlndXJhdGlvbiBhcHByb3ByaWF0ZWx5LjwvcD4KPHA+UGxlYXNlIGJlIGF3YXJlIHRoYXQgYSBmZWVkYmFjayBmb3JtIHNob3VsZCBub3QgYmUgYWN0aXZlIChlLmcuLCB1c2FibGUgYnkgdGhlIHB1YmxpYykgd2hpbGUKeW91IGFyZSBzdGlsbCBlZGl0aW5nIHRoZSBmb3JtLiBZb3Ugc2hvdWxkIGNyZWF0ZSB0aGUgZm9ybSwgYW5kIHBsYWNlIHRoZSB0YWcgaW50byBhbiBhY3RpdmUKY29udGVudCBwYWdlIG9ubHkgd2hlbiB5b3UgaGF2ZSBmaW5pc2hlZCBlZGl0aW5nLiBPdGhlcndpc2UsIGVycm9uZW91cyByZXN1bHRzIGNvdWxkIGJlIHJldHVybmVkLjwvcD4KPHA+QWRkaXRpb25hbGx5LCB0aGlzIHZlcnNpb24gZG9lcyBub3Qgc3VwcG9ydCBwYXJhbGxlbCBlZGl0aW5nIG9mIGZvcm1zLiBQbGVhc2UgdGFrZSBjYXJlIHRoYXQKb25seSBvbmUgYWRtaW4gaXMgZWRpdGluZyBhIGdpdmVuIGZvcm0gYXQgYSBnaXZlbiB0aW1lLjwvcD4iOwoKJGxhbmdbJ2hlbHAnXSA9ICI8aDM+V2hhdCBEb2VzIFRoaXMgRG8/PC9oMz4KPHA+VGhlIEZvcm0gQnVpbGRlciBNb2R1bGUgYWxsb3dzIHlvdSB0byBjcmVhdGUgZmVlZGJhY2sgZm9ybXMgKGluIGZhY3QsIGl0J3MgYSByZXBsYWNlbWVudCBvZiB0aGUgb3JpZ2luYWwgRmVlZGJhY2sgRm9ybSBtb2R1bGUpLCB3aXRoIHRoZSBhZGRlZCBwb3dlciBvZiBkYXRhYmFzZSBzdG9yYWdlLiBXaXRoIGl0cyBjb21wYW5pb24gbW9kdWxlIEZvcm0gQnJvd3NlciwgeW91IGNhbiB1c2UgaXQgdG8gY3JlYXRlIHNpbXBsZSBkYXRhYmFzZSBhcHBsaWNhdGlvbnMuPC9wPgo8cD5UaGUgZm9ybXMgY3JlYXRlZCB1c2luZyB0aGUgRm9ybSBCdWlsZGVyIG1heSBiZSBpbnNlcnRlZAppbnRvIHRlbXBsYXRlcyBhbmQvb3IgY29udGVudCBwYWdlcy4gRm9ybXMgbWF5IGNvbnRhaW4gbWFueSBraW5kcyBvZiBpbnB1dHMsIGFuZCBtYXkgaGF2ZQp2YWxpZGF0aW9uIGFwcGxpZWQgdG8gdGhlc2UgaW5wdXRzLiBUaGUgcmVzdWx0cyBvZiB0aGVzZSBmb3JtcyBtYXkgYmUgaGFuZGxlZCBpbiBhIHZhcmlldHkgb2Ygd2F5cy48L3A+Cgo8aDM+SG93IERvIEkgVXNlIGl0PzwvaDM+CjxQPkluc3RhbGwgaXQsIGFuZCBwb2tlIGFyb3VuZCB0aGUgbWVudXMuIFBsYXkgd2l0aCBpdC4gVHJ5IGNyZWF0aW5nIGZvcm1zLCBhbmQgYWRkaW5nIHRoZW0gdG8geW91ciBjb250ZW50LgpJZiB5b3UgZ2V0IHN0dWNrLCBjaGF0IHdpdGggbWUgb24gdGhlICNjbXMgSVJDIGNoYW5uZWwsIHBvc3QgdG8gdGhlIGZvcnVtLCBzZW5kIG1lIGVtYWlsLCBvciwgaWYgeW91J3JlCnJlYWxseSBkZXNwZXJhdGUsIHJlYWQgdGhlIHJlc3Qgb2YgdGhpcyBwYWdlLjwvUD4KCjxoMz5Ib3cgRG8gSSBDcmVhdGUgYSBGb3JtPC9oMz4KPHA+SW4gdGhlIENNUyBBZG1pbiBNZW51LCB5b3Ugc2hvdWxkIGdldCBhIG5ldyBtZW51IGl0ZW0gY2FsbGVkIEZvcm1CdWlsZGVyLiBDbGljayBvbiB0aGlzLiBPbiB0aGUgcGFnZQp0aGF0IGdldHMgc2hvd24sIHRoZXJlIGFyZSBvcHRpb25zIChhdCB0aGUgYm90dG9tIG9mIHRoZSBsaXN0IG9mIEZvcm1zKSB0byBBZGQgYSBOZXcgRm9ybSBvciBNb2RpZnkKQ29uZmlndXJhdGlvbi48L3A+Cgo8aDM+QWRkaW5nIGEgRm9ybSB0byBhIFBhZ2U8L2gzPgo8cD5JbiB0aGUgbWFpbiBGb3JtQnVpbGRlciBhZG1pbiBwYWdlLCB5b3UgY2FuIHNlZSBhbiBleGFtcGxlIG9mIHRoZSB0YWcgdXNlZCB0byBkaXNwbGF5IGVhY2ggZm9ybS4gSXQgbG9va3MKc29tZXRoaW5nIGxpa2Uge2Ntc19tb2R1bGUgbW9kdWxlPSdGb3JtQnVpbGRlcicgZm9ybT0nc2FtcGxlX2Zvcm0nfTwvcD4KPHA+QnkgY29weWluZyB0aGlzIHRhZyBpbnRvIHRoZSBjb250ZW50IG9mIGEgcGFnZSwgb3IgaW50byBhIHRlbXBsYXRlLCB3aWxsIGNhdXNlIHRoYXQgZm9ybSB0byBiZSBkaXNwbGF5ZWQuCkluIHRoZW9yeSwgeW91IGNhbiBoYXZlIG11bHRpcGxlIGZvcm1zIG9uIGEgcGFnZSBpZiB5b3UgcmVhbGx5IHdhbnQgdG8uIEJlIGNhcmVmdWwgd2hlbiBwYXN0aW5nIHRoZSB0YWcKaW50byBhIHBhZ2UncyBjb250ZW50IGlmIHlvdSB1c2UgYSBXWVNJV1lHIGVkaXRvciBzdWNoIGFzIFRpbnlNQ0UsIEZDS0VkaXQsIG9yIEhUTUxBcmVhLiBUaGVzZSBlZGl0b3JzIG1heSBzdGVhbHRoaWx5CmNoYW5nZSB0aGUgcXVvdGUgbWFya3MgKFwiKSBpbnRvIEhUTUwgZW50aXRpZXMgKCZhbXA7cXVvdDspLCBhbmQgdGhlIGZvcm1zIHdpbGwgbm90IHNob3cgdXAuIFRyeSB1c2luZwpzaW5nbGUgcXVvdGVzICgnKSBvciBlZGl0aW5nIHRoZSBIVE1MIGRpcmVjdGx5LjwvcD4KCjxoMz5Xb3JraW5nIHdpdGggRm9ybXM8L2gzPgo8cD5CeSBjbGlja2luZyBvbiBhIEZvcm0ncyBuYW1lLCB5b3UgZW50ZXIgdGhlIEZvcm0gRWRpdCBwYWdlLiBUaGVyZSBhcmUgc2V2ZXJhbCB0YWJzLCB3aGljaCBhcmUgZGVzY3JpYmVkIGJlbG93OjwvcD4KPGg0Pk1haW48L2g0Pgo8cD5UaGlzIGlzIHRoZSBtYWluIHBsYWNlIHlvdSdsbCB3b3JrIG9uIHlvdXIgZm9ybS4gSGVyZSwgeW91IGdpdmUgaXQgYSBuYW1lLCBhbiBhbGlhcyAod2hpY2ggaXMgdXNlZCB0byBpZGVudGlmeSBpdCBmb3IgcGxhY2luZyBpdCBpbiBhIHBhZ2Ugb3IgdGVtcGxhdGUpLCBhbmQsIG9wdGlvbmFsbHksIGEgQ1NTIGNsYXNzIHdpdGggd2hpY2ggdG8gd3JhcCB0aGUgd2hvbGUgdGhpbmcuPC9wPgo8cD5CZWxvdyB0aGlzLCBpZiB5b3UgaGF2ZSBpdCBlbmFibGVkLCBpcyB0aGUgXCJmYXN0IGZpZWxkIGFkZGVyXCIgcHVsbGRvd24sIHRoYXQgbGV0cyB5b3UgcXVpY2tseSBhZGQgYSBmaWVsZCB0byB0aGUgZW5kIG9mIHlvdXIgZm9ybSBieSBzZWxlY3RpbmcgdGhlIGZpZWxkIHR5cGUuPC9wPgo8cD5CZWxvdyB0aGlzIGlzIHRoZSBsaXN0IG9mIGZpZWxkcyB0aGF0IG1ha2UgdXAgeW91ciBmb3JtLiBNb3JlIGRldGFpbCBvbiB0aGlzIGlzIGRlc2NyaWJlZCBiZWxvdy48L3A+CjxoND5Gb3JtIFN1Ym1pc3Npb248L2g0Pgo8cD5XaGVuIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZCwgeW91IGNhbiBlaXRoZXIgcmVkaXJlY3QgdGhlIHVzZXIgdG8gYW5vdGhlciBwYWdlIG9mIHlvdXIgc2l0ZSwgb3IgeW91IGNhbiBwcmVzZW50IHRoZSB1c2VyIHNvbWUgbWVzc2FnZSAod2hpY2ggY2FuIGNvbnRhaW4gYW55IG9mIHRoZSB1c2VyJ3MgZm9ybSBlbnRyaWVzLCBvciBqdXN0IHN0YXRpYyB0ZXh0KS4gSW4gdGhpcyB0YWIsIHlvdSBzZWxlY3Qgd2hpY2ggb2YgdGhlc2UgYXBwcm9hY2hlcyB5b3Ugd2lzaCB0byB1c2UsIGFuZCwgaWYgeW91IGNob3NlIHJlZGlyZWN0aW9uLCBpdCBhbGxvd3MgeW91IHRvIHBpY2sgdGhlIHBhZ2UgdG8gcmVkaXJlY3QgdXNlcnMgdG8gYWZ0ZXIgYSBzdWNjZXNzZnVsIGZvcm0gc3VibWlzc2lvbi48L3A+CjxwPkFsc28gb24gdGhpcyBwYWdlLCB5b3UgY2FuIHNwZWNpZnkgdGhlIGxhYmVscyBvZiB2YXJpb3VzIHN1Ym1pc3Npb24gYnV0dG9ucyAoXCJQcmV2aW91c1wiLCBcIm5leHRcIiwgXCJzdWJtaXRcIikuIFlvdSBjYW4gYWxzbyBvcHQgdG8gaGF2ZSBzb21lIEphdmFzY3JpcHQgYWRkZWQgdG8gdGhlIGxhc3QgcGFnZSBvZiBhIGZvcm0gdGhhdCB3aWxsIHByZXZlbnQgbXVsdGlwbGUgc3VibWlzc2lvbnMgKHVzZWZ1bCBvbiBzbG93IHNlcnZlcnMpLjwvcD4KPGg0PkZvcm0gRGlzcGxheSBPcHRpb25zPC9oND4KPHA+VGhpcyB0YWIgYWxsb3dzIGZvciBvdGhlciBmb3JtIGN1c3RvbWl6YXRpb25zLCBsaWtlIHRoZSBzeW1ib2wgdG8gc2hvdyBmb3IgcmVxdWlyZWQgZmllbGRzLjwvcD4KPGg0PkNhcHRjaGEgU2V0dGluZ3M8L2g0Pgo8cD5JZiB5b3UgaGF2ZSBpbnN0YWxsZWQgdGhlIENhcHRjaGEgbW9kdWxlLCB0aGlzIHRhYiBsZXRzIHlvdSBjb25maWd1cmUgdGhlIENhcHRjaGEgc2V0dGluZ3MgZm9yIHlvdXIgZm9ybS48L3A+CjxoND5Gb3JtIFRlbXBsYXRlPC9oND4KPHA+VGhpcyBpcyB3aGVyZSB5b3UgZG8geW91ciBjdXN0b21pemF0aW9uIHdvcmsgb2YgeW91ciBmb3JtJ3MgU21hcnR5IFRlbXBsYXRlLiBTZWUgdGhlIHNlY3Rpb24gY2FsbGVkIEZvcm0gVGVtcGxhdGUgVmFyaWFibGVzIGJlbG93LjwvcD4KPHA+VGhlIGZvcm0gc2hvdWxkIGRlZmF1bHQgdG8gYSBDdXN0b20gdGVtcGxhdGUgdGhhdCBkb2N1bWVudHMgdGhlIFNtYXJ0eSB0YWdzIGF2YWlsYWJsZSB0byB5b3UuPC9wPgo8cD5Vbmxlc3MgeW91J3JlIGEgU21hcnR5IGV4cGVydCwgeW91IHByb2JhYmx5IGRvbid0IHdhbnQgdG8gbWVzcyBhcm91bmQgd2l0aCB0aGlzLiBJZiB5b3UgYXJlIGEgU21hcnR5IGV4cGVydCwgdGhpcyBpcyB3aGVyZSB5b3UgY2FuIHVubGVhc2ggeW91ciBtYWdpYy48L3A+CjxoND5TdWJtaXNzaW9uIFRlbXBsYXRlPC9oND4KPHA+SWYsIGluIHRoZSBGb3JtIFN1Ym1pc3Npb24gdGFiLCB5b3Ugc2VsZWN0ZWQgJ0Rpc3BsYXkgXCJTdWJtaXNzaW9uIFRlbXBsYXRlXCIsIHRoaXMgaXMgd2hlcmUgeW91IGNhbiBjcmVhdGUgdGhhdCB0ZW1wbGF0ZS4gVGhlcmUgaXMgYSBkaXNwbGF5IG9mIHdoaWNoIHNtYXJ0eSB2YXJpYWJsZXMgYXJlIGF2YWlsYWJsZSB0byB5b3UsIGFuZCBhIGJ1dHRvbiB0byBnZW5lcmF0ZSBhIHNhbXBsZSB0ZW1wbGF0ZS48L3A+CjxwPklmIHlvdSdyZSBhIFNtYXJ0eSBleHBlcnQsIHlvdSBjYW4gZG8gYWxsIG1hbm5lciBvZiBjcmVhdGl2ZSBhbmQgcG93ZXJmdWwgdGhpbmdzIGhlcmUuIElmIHlvdSdyZSBub3QgYSBTbWFydHkgZXhwZXJ0LCB5b3UgbWlnaHQganVzdCB3YW50IHRvIHVzZSB0aGUgZGVmYXVsdC4KPC9wPgoKPGgzPkFkZGluZyBGaWVsZHMgdG8geW91ciBGb3JtPC9oMz4KPHA+VGhlIHR5cGVzIG9mIGZpZWxkcyB0aGF0IGFyZSBjdXJyZW50bHkgc3VwcG9ydGVkIGZpdCBpbnRvIGZvdXIgZ3JvdXBzOiBzdGFuZGFyZCBpbnB1dCBmaWVsZHMsIGRpc3BsYXkgY29udHJvbCBmaWVsZHMsIGVtYWlsLXNwZWNpZmljIGZpZWxkcywgYW5kIGZvcm0gcmVzdWx0IGhhbmRsaW5nIGZpZWxkcyAoYWxzbyBjYWxsZWQgRm9ybSBEaXNwb3NpdGlvbnMgaW4gcGxhY2VzKTo8L3A+Cjx1bD4KPGxpPlN0YW5kYXJkIElucHV0IEZpZWxkcyAtIHRoZXNlIGFyZSBpbnB1dHMgdGhhdCBhbGxvdyBlbnRyeSBvZiB0eXBpY2FsIGZvcm0gZWxlbWVudHM7IHRleHQgaW5wdXRzLCByYWRpbyBidXR0b25zLCBldGMuPC9saT4KPGxpPkRpc3BsYXkgQ29udHJvbCBGaWVsZHMgLSB0aGVzZSBpbnB1dCBjb250cm9sIGhvdyB0aGUgdXNlciB3aWxsIHNlZSB0aGUgZGlzcGxheSBvZiB0aGUgZm9ybTsgcGFnZSBicmVha3MsIHN0YXRpYyB0ZXh0LCBldGMuPC9saT4KPGxpPkVtYWlsLXNwZWNpZmljIEZpZWxkcyAtIHNvbWUgZm9ybXMgZ2VuZXJhdGUgZW1haWwsIGFuZCBlbWFpbC1zcGVjaWZpYyBmaWVsZHMgY2FuIGFsdGVyIGF0dHJpYnV0ZXMgb2YgdGhlIGVtYWlscyBzZW50LjwvbGk+CjxsaT5Gb3JtIERpc3Bvc2l0aW9ucyAtIFRoZXNlIGRldGVybWluZSB3aGF0IGhhcHBlbnMgd2hlbiB0aGUgdXNlcgpzdWJtaXRzIHRoZSBmb3JtOyBmb3IgZWFjaCByZXN1bHQgaGFuZGxpbmcgZmllbGQsIHNvbWUgbWV0aG9kIG9mIHRyYW5zbWl0dGluZywgc2F2aW5nLCBvciBlbWFpbGluZyB0aGUKZm9ybSBjb250ZW50cyB0YWtlcyBwbGFjZS4gQSBmb3JtIG1heSBoYXZlIG11bHRpcGxlIGZvcm0gZGlzcG9zaXRpb25zLjwvbGk+CjwvdWw+CjxwPkZvcm0gZmllbGRzIGFyZSBhc3NpZ25lZCBuYW1lcy4gVGhlc2UgbmFtZXMgaWRlbnRpZnkgdGhlIGZpZWxkLCBub3Qgb25seSBvbiB0aGUgc2NyZWVuIGFzIGxhYmVscyBmb3IgdGhlIHVzZXIsCmJ1dCBpbiB0aGUgZGF0YSB3aGVuIGl0J3Mgc3VibWl0dGVkIHNvIHlvdSBrbm93IHdoYXQgdGhlIHVzZXIgaXMgcmVzcG9uZGluZyB0by4gUGhyYXNpbmcgdGhlIG5hbWUgbGlrZSBhIHF1ZXN0aW9uCmlzIGEgaGFuZHkgd2F5IG9mIG1ha2luZyBpdCBjbGVhciB0byB0aGUgdXNlciB3aGF0IGlzIGV4cGVjdGVkLiBTaW1pbGFybHksIG1hbnkgZmllbGRzIGhhdmUgYm90aCBOYW1lcyBhbmQgVmFsdWVzLgpUaGUgTmFtZXMgYXJlIHdoYXQgZ2V0cyBzaG93biB0byB0aGUgdXNlcjsgdGhlIFZhbHVlIGlzIHdoYXQgZ2V0cyBzYXZlZCBvciB0cmFuc21pdHRlZCB3aGVuIHRoZSB1c2VyIHN1Ym1pdHMKdGhlIGZvcm0uIFRoZSBWYWx1ZXMgYXJlIG5ldmVyIHNlZW4gYnkgdGhlIHVzZXIsIG5vciBhcmUgdGhleSB2aXNpYmxlIGluIHRoZSBIVE1MLCBzbyBpdCdzIHNhZmUgdG8gdXNlIGZvcgplbWFpbCBhZGRyZXNzZXMgYW5kIHN1Y2guPC9wPgo8cD5Tb21lIGZpZWxkcyBjYW4gaGF2ZSBtdWx0aXBsZSB2YWx1ZXMsIG9yIG11bHRpcGxlIG5hbWUvdmFsdWUgcGFpcnMuIFdoZW4geW91IGZpcnN0IGNyZWF0ZSBzdWNoIGEgZmllbGQsCnRoZXJlIG1heSBub3QgYmUgc3VmZmljaWVudCBpbnB1dHMgZm9yIHlvdSB0byBzcGVjaWZ5IGFsbCB0aGUgdmFsdWVzIHlvdSB3YW50LiBUbyBnZXQgbW9yZSBzcGFjZSBmb3IgaW5wdXR0aW5nCnRoZXNlIHZhbHVlcywgdXNlIHRoZSBidXR0b25zIGF0IHRoZSBib3R0b20gb2YgdGhlIHBhZ2UgZm9yIGFkZGluZyBvcHRpb25zLjwvcD4KPHA+RmllbGRzIGNhbiBiZSBhc3NpZ25lZCB2YWxpZGF0aW9uIHJ1bGVzLCB3aGljaCB2YXJ5IGFjY29yZGluZyB0byB0aGUgdHlwZSBvZiB0aGUgZmllbGQuIFRoZXNlIHJ1bGVzIGhlbHAKZW5zdXJlIHRoYXQgdGhlIHVzZXIgZW50ZXJzIHZhbGlkIGRhdGEuIFRoZXkgbWF5IGFsc28gYmUKc2VwYXJhdGVseSBtYXJrZWQgXCJSZXF1aXJlZFwiLCB3aGljaCB3aWxsIGZvcmNlIHRoZSB1c2VyIHRvIGVudGVyIGEgcmVzcG9uc2UuPC9wPgo8cD5GaWVsZHMgYWxzbyBtYXkgYmUgYXNzaWduZWQgYSBDU1MgY2xhc3MuIFRoaXMgc2ltcGx5IHdyYXBzIHRoZSBpbnB1dCBpbiBhIGRpdiB3aXRoIHRoYXQgY2xhc3MsIHNvIGFzIHRvIGFsbG93CmN1c3RvbWl6ZWQgbGF5b3V0cy4gVG8gdXNlIHRoaXMgZWZmZWN0aXZlbHksIHlvdSBtYXkgbmVlZCB0byBcInZpZXcgc291cmNlXCIgb24gdGhlIGdlbmVyYXRlZCBmb3JtLCBhbmQgdGhlbgp3cml0ZSB5b3VyIENTUy48L3A+Cjx1bD4KPGxpPlN0YW5kYXJkIElucHV0cwo8dWw+PGxpPlRleHQgSW5wdXQuIFRoaXMgaXMgYSBzdGFuZGFyZCB0ZXh0IGZpZWxkLiBZb3UgY2FuIGxpbWl0IHRoZSBsZW5ndGgsIGFuZCBhcHBseSB2YXJpb3VzIHZhbGlkYXRpb24KZnVuY3Rpb25zIHRvIHRoZSBmaWVsZC48L2xpPgo8bGk+VGV4dCBBcmVhLiBUaGlzIGlzIGEgYmlnLCBmcmVlLWZvcm0gdGV4dCBpbnB1dCBmaWVsZC48L2xpPgo8bGk+Q2hlY2tib3guIFRoaXMgaXMgYSBzdGFuZGFyZCBjaGVjayBib3guPC9saT4KPGxpPkNoZWNrYm94IEdyb3VwLiBUaGlzIGlzIGEgY29sbGVjdGlvbiBvZiBjaGVja2JveGVzLiBUaGUgb25seSBkaWZmZXJlbmNlIGJldHdlZW4gdGhpcyBpbnB1dCBhbmQgYQpjb2xsZWN0aW9uIG9mIENoZWNrYm94IGlucHV0cyBpcyB0aGF0IHRoZXkgYXJlIHByZXNlbnRlZCBhcyBhIGdyb3VwLCB3aXRoIG9uZSBuYW1lLCBhbmQgY2FuIGhhdmUgYSB2YWxpZGF0aW9uIGZ1bmN0aW9uIHJlcXVpcmluZyB0aGF0IHlvdSBjaGVjayBvbmUgb3IgbW9yZSBvZiB0aGUgYm94ZXMgaW4gdGhlIGdyb3VwLjwvbGk+CjxsaT5SYWRpbyBHcm91cC4gVGhpcyBpcyBhIGNvbGxlY3Rpb24gb2YgcmFkaW8gYnV0dG9ucy4gT25seSBvbmUgb2YgdGhlIGdyb3VwIG1heSBiZSBzZWxlY3RlZCBieSB0aGUgdXNlci48L2xpPgo8bGk+UHVsbGRvd24uIFRoaXMgaXMgYSBzdGFuZGFyZCBwdWxsZG93biBtZW51LiBJdCdzIHJlYWxseSBjb25jZXB0dWFsbHkgdGhlIHNhbWUgdGhpbmcgYXMgYSByYWRpbyBidXR0b24KZ3JvdXAsIGJ1dCBpcyBiZXR0ZXIgd2hlbiB0aGVyZSBhcmUgYSBsYXJnZSBudW1iZXIgb2Ygb3B0aW9ucy48L2xpPgo8bGk+TXVsdGlzZWxlY3QuIFRoaXMgaXMgYSBtdWx0aS1zZWxlY3QgZmllbGQuIEl0J3MgcmVhbGx5IGNvbmNlcHR1YWxseSB0aGUgc2FtZSB0aGluZyBhcyBhIGNoZWNrYm94IGJ1dHRvbgpncm91cCwgYnV0IGlzIGJldHRlciB3aGVuIHRoZXJlIGFyZSBhIGxhcmdlIG51bWJlciBvZiBvcHRpb25zLCBhcyB5b3UgY2FuIGxpbWl0IHRoZSBudW1iZXIgZGlzcGxheWVkIG9uIHRoZSBzY3JlZW4gYXQgYW55IG9uZSB0aW1lLjwvbGk+CjxsaT5TdGF0ZS4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIFN0YXRlcyBvZiB0aGUgVS5TLjwvbGk+CjxsaT5Db3VudHJpZXMuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBDb3VudHJpZXMgb2YgdGhlIHdvcmxkIChhcyBvZiBKdWx5IDIwMDUpLjwvbGk+CjxsaT5EYXRlIFBpY2tlci4gVGhpcyBpcyBhIHRyaXBsZSBwdWxsZG93biBhbGxvd2luZyB0aGUgdXNlciB0byBzZWxlY3QgYSBkYXRlLjwvbGk+CjxsaT5UaW1lIFBpY2tlci4gVGhpcyBpcyBhIHNldCBvZiBwdWxsZG93bnMgYWxsb3dpbmcgdGhlIHVzZXIgdG8gc2VsZWN0IGEgdGltZSAodXNpbmcgMTIgb3IgMjQgaG91ciBjbG9jaykuPC9saT4KPGxpPkZpbGUgVXBsb2FkLiBUaGlzIGlzIGEgZmlsZSB1cGxvYWQgZmllbGQuPC9saT4KPGxpPkxpbmsgKFVzZXIgRW50ZXJlZCkuIFRoaXMgY3JlYXRlcyBhIGRvdWJsZSBpbnB1dCBmaWVsZCBmb3IgZ2V0dGluZyBhIGxpbmsgVVJMIGFuZCBsaW5rIHRpdGxlLjwvbGk+CjxsaT5UZXh0IEZpZWxkIChNdWx0aXBsZSkuIFRoaXMgZmllbGQgY3JlYXRlcyBvbmUgb3IgbW9yZSB0ZXh0IGlucHV0cyB3aXRoIGFkZCBhbmQgZGVsZXRlIGJ1dHRvbnMsIGVmZmVjdGl2ZWx5IGdpdmluZyB0aGUgZW5kIHVzZXIgYSB3YXkgb2YgY3JlYXRpbmcgdmFyaWFibGUtbGVuZ3RoIGxpc3RzLjwvbGk+CjwvdWw+PC9saT4KCjxsaT5FbWFpbC1zcGVjaWZpYyBJbnB1dHMKPHVsPjxsaT5FbWFpbCBGcm9tIEFkZHJlc3MgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgdGhlaXIgZW1haWwgYWRkcmVzcy4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIGFkZHJlc3MgaW4gdGhlIFwiRnJvbVwiIGZpZWxkLjwvbGk+CjxsaT5FbWFpbCBGcm9tIE5hbWUgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgdGhlaXIgbmFtZS4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIG5hbWUgaW4gdGhlIFwiRnJvbVwiIGZpZWxkLjwvbGk+CjxsaT5FbWFpbCBTdWJqZWN0IEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIGEgc3ViamVjdCBmb3IgdGhlaXIgZW1haWwuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBpbiB0aGUgXCJTdWJqZWN0XCIgZmllbGQuIFRoaXMgbWF5IGNhdXNlIHRyb3VibGUgd2l0aCBjZXJ0YWluIGRpc3Bvc2l0aW9ucyB0aGF0IHdhbnQgdG8gY29udHJvbCB0aGUgRW1haWwgU3ViamVjdCwgc28gdXNlIGl0IHdpdGggY2F1dGlvbi48L2xpPgo8L3VsPjwvbGk+Cgo8bGk+RGlzcGxheSBDb250cm9sIEZpZWxkczx1bD4KPGxpPi1QYWdlIEJyZWFrLiBUaGlzIGFsbG93cyB5b3UgdG8gc3BsaXQgeW91ciBmZWVkYmFjayBmb3JtIGludG8gbXVsdGlwbGUgcGFnZXMuIEVhY2ggcGFnZSBpcwppbmRlcGVuZGVudGx5IHZhbGlkYXRlZC4gVGhpcyBpcyBnb29kIGZvciBhcHBsaWNhdGlvbnMgbGlrZSBvbmxpbmUgc3VydmV5cy48L2xpPgo8bGk+LUZpZWxkc2V0IFN0YXJ0LiBDb21iaW5lZCB3aXRoIEZpZWxkc2V0IEVuZCwgdGhpcyBhbGxvd3MgeW91IHRvIGdyb3VwIHZhcmlvdXMgZmllbGRzIHdpdGhpbiB5b3VyIGZvcm0uIFVzZSB0aGlzIHRvIHN0YXJ0IGEgZ2l2ZW4gZ3JvdXBpbmcuPC9saT4KPGxpPi1GaWVsZHNldCBFbmQuIENvbWJpbmVkIHdpdGggRmllbGRzZXQgU3RhcnQsIHRoaXMgYWxsb3dzIHlvdSB0byBncm91cCB2YXJpb3VzIGZpZWxkcyB3aXRoaW4geW91ciBmb3JtLiBVc2UgdGhpcyB0byBlbmQgYSBnaXZlbiBncm91cGluZy48L2xpPgo8bGk+LUhpZGRlbiBGaWVsZC4gVGhpcyBhbGxvd3MgeW91IHRvIGVtYmVkIGEgaGlkZGVuIGZpZWxkIGluIHlvdXIgZm9ybS48L2xpPgo8bGk+LVN0YXRpYyBUZXh0LiBUaGlzIGFsbG93cyB5b3UgdG8gcHV0IHRleHQgb3IgYSBsYWJlbCBpbiB0aGUgbWlkZGxlIG9mIHlvdXIgZm9ybS4gVGhpcyBpcyB1c2VmdWwgZm9yIGdpdmluZyBhZGRpdGlvbmFsIGhlbHAgdGV4dCwgZXNwZWNpYWxseSBpZiB5b3UncmUgbm90IHVzaW5nIGEgQ3VzdG9tIFRlbXBsYXRlIHRvIHJlbmRlciB5b3VyIGZvcm0uPC9saT4KPGxpPi1TdGF0aWMgTGluay4gVGhpcyBhbGxvd3MgeW91IHRvIHB1dCBhIGxpbmsgdG8gYSBnaXZlbiBwYWdlIGludG8geW91ciBmb3JtLiBPcHRpb25hbGx5LCB5b3UgY2FuIGhhdmUgaXQgYXV0b3BvcHVsYXRlIHdpdGggdGhlIHBhZ2Ugd2hlcmUgdGhlIGZvcm0gaXMgZW1iZWRkZWQgKHVzZWZ1bCBpZiB5b3VcJ3JlIHNlbmRpbmcgcmVzdWx0cyB2aWEgZW1haWwpLjwvbGk+CjxsaT4tQ29tcHV0ZWQgRmllbGQuIFRoaXMgYWxsb3dzIHlvdSB0byBlbWJlZCBhIGNvbXB1dGVkIGZpZWxkIGluIHlvdXIgZm9ybS4gSXQgaXMgbm90IHZpc2libGUgdG8gdGhlIHVzZXIgdW50aWwgYWZ0ZXIgdGhlIGZvcm0gaXMgc3VibWl0dGVkLiBJdCBhbGxvd3MgeW91IHRvIGRvIHNpbXBsZSBhcml0aG1ldGljIG9yIHN0cmluZyBjb25jYXRlbmF0aW9uLjwvbGk+CjwvdWw+PC9saT4KCjxsaT5Gb3JtIEhhbmRsaW5nIElucHV0cyAoRGlzcG9zaXRpb25zKQo8dWw+PGxpPipDYWxsIGEgVXNlciBEZWZpbmVkIFRhZyBXaXRoIHRoZSBGb3JtIFJlc3VsdHMuIFRoaXMgc3VibWl0cyBhbGwgdGhlIGZvcm0gcmVzdWx0cyB0byB0aGUgVXNlci1EZWZpbmVkIFRhZyB5b3Ugc3BlY2lmeS4gVGhlIFVEVCBjYW4gaGFuZGxlIHRoZSByZXN1bHRzIGhvd2V2ZXIgaXQgd2FudHMuPC9saT4KPGxpPipFbWFpbCBSZXN1bHRzIEJhc2VkIG9uIFB1bGxkb3duLiBUaGlzIGlzIHVzZWZ1bCBmb3Igd2ViIHNpdGVzIHdoZXJlIGNvbW1lbnRzIGdldCByb3V0ZWQgYmFzZWQgb24gdGhlaXIgc3ViamVjdCBtYXR0ZXIsIGUuZy4sIGJ1Z3MgZ2V0IHNlbnQgdG8gb25lIHBlcnNvbiwgbWFya2V0aW5nIHF1ZXN0aW9ucyB0byBhbm90aGVyIHBlcnNvbiwgc2FsZXMgcmVxdWVzdHMgdG8gc29tZW9uZSBlbHNlLCBldGMuIFRoZSBwdWxsZG93biBpcyBwb3B1bGF0ZWQgd2l0aCB0aGUgc3ViamVjdHMsIGFuZCBlYWNoIGdldHMgZGlyZWN0ZWQgdG8gYSBzcGVjaWZpYyBlbWFpbCBhZGRyZXNzLiBZb3Ugc2V0IHVwIHRoZXNlIG1hcHBpbmdzIGluIHRoZSB3aGVuIHlvdSBjcmVhdGUgb3IgZWRpdCBhIGZpZWxkIG9mIHRoaXMgdHlwZS4gSWYgeW91IHVzZSBvbmUgb2YgdGhlc2UgXCJEaXJlY3RvclwiIHB1bGxkb3ducywgdGhlIHVzZXIgbXVzdCBtYWtlIGEgc2VsZWN0aW9uIGluIG9yZGVyIHRvIHN1Ym1pdCB0aGUKZm9ybS4gVGhpcyBpbnB1dCBpcyBwYXJ0IG9mIHRoZSBmb3JtIHRoZSB1c2VyIHNlZXMsIGFsdGhvdWdoIHRoZSBlbWFpbCBhZGRyZXNzZXMgYXJlIG5vdCBtYWRlIHZpc2libGUgbm9yCmFyZSB0aGV5IGVtYmVkZGVkIGluIHRoZSBIVE1MLjwvbGk+CjxsaT4qRW1haWwgUmVzdWx0cyB0byBzZXQgQWRkcmVzcyhlcykuIFRoaXMgc2ltcGx5IHNlbmRzIHRoZSBmb3JtIHJlc3VsdHMgdG8gb25lIG9yIG1vcmUgZW1haWwgYWRkcmVzc2VzIHRoYXQgeW91IGVudGVyIHdoZW4geW91IGNyZWF0ZSBvciBlZGl0IHRoaXMgdHlwZSBvZiBmaWVsZC4gVGhpcyBmaWVsZCBhbmQgaXRzIG5hbWUgYXJlIG5vdCB2aXNpYmxlIGluIHRoZQpmb3JtIHRoYXQgdGhlIHVzZXIgc2Vlcy4gVGhlIGVtYWlsIGFkZHJlc3NlcyBhcmUgbm90IG1hZGUgdmlzaWJsZSBub3IKYXJlIHRoZXkgZW1iZWRkZWQgaW4gdGhlIEhUTUwuPC9saT4KPGxpPipFbWFpbCB0byBVc2VyLVN1cHBsaWVkIEFkZHJlc3MuIFRoaXMgcHV0cyBhbiBpbnB1dCBmaWVsZCBpbiB0aGUgZm9ybSBmb3IgdGhlIHVzZXIgdG8gcG9wdWxhdGUgd2l0aCBhbiBlbWFpbCBhZGRyZXNzLiBUaGUgZm9ybSByZXN1bHRzIGdldCBzZW50IHRvIHRoYXQgYWRkcmVzcy4gQmV3YXJlIG9mIFNwYW0gYWJ1c2UhIEFjdGl2ZSB0aGUgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcyBpbiB0aGUgRm9ybUJ1aWxkZXIgY29uZmlndXJhdGlvbiBzY3JlZW4uPC9saT4KPGxpPipTdG9yZSBSZXN1bHRzIGluIERhdGFiYXNlLiBUaGlzIHdpbGwgc3RvcmUgdGhlIGZvcm0gY29udGVudHMgaW4gYW4gaW50ZXJuYWwgZGF0YWJhc2UuIFlvdSB3aWxsIGFsd2F5cyB1c2UgdGhpcyBkaXNwb3NpdGlvbiBpZiB5b3UgdXNlIHRoZSBmb3JtIHdpdGggRm9ybUJyb3dzZXIuPC9saT4KPGxpPipSZWRpcmVjdCB0byBQYWdlIEJhc2VkIG9uIFB1bGxkb3duLiBUaGlzIGFsbG93cyB5b3UgdG8gcmVkaXJlY3QgdGhlIGZvcm0gdG8gYSBkaWZmZXJlbnQgc2l0ZSBwYWdlIGRlcGVuZGluZyBvbiBpdHMgdmFsdWUuIElmIHlvdSBoYXZlIG11bHRpcGxlIGRpc3Bvc2l0aW9ucywgbWFrZSBzdXJlIHRoaXMgaXMgdXNlZCBsYXN0LjwvbGk+CjxsaT4qVmFsaWRhdGUgdmlhIEVtYWlsLiBUaGlzIGlzIGEgc3RyYW5nZSBhbmQgcG93ZXJmdWwgZmllbGQuIEl0IHByb3ZpZGVzIHRoZSB1c2VyIGEgbWFuZGF0b3J5IGlucHV0IGZvciB0aGVpciBlbWFpbCBhZGRyZXNzLiBPbmNlIHRoZXkgc3VibWl0IHRoZWlyIGZvcm0sIHRoZSBzdGFuZGFyZCBmb3JtIGRpc3Bvc2l0aW9ucyBhcmUgbm90IHBlcmZvcm1lZCAtLSByYXRoZXIsIGl0IHNlbmQgdGhlIHVzZXIgYW4gZW1haWwgd2l0aCBhIHNwZWNpYWwgY29kZWQgbGluay4gSWYgdGhleSBjbGljayBvbiB0aGUgbGluaywgdGhlIG90aGVyIGZvcm0gaXMgY29uc2lkZXJlZCBcImFwcHJvdmVkLFwiIGFuZCB0aGUgb3RoZXIgZGlzcG9zaXRpb25zIGFyZSBhbGwgcGVyZm9ybWVkLjwvbGk+CjxsaT4qV3JpdGUgUmVzdWx0cyB0byBGbGF0IEZpbGUuIFRoaXMgdGFrZXMgdGhlIGZvcm0gcmVzdWx0cyBhbmQgd3JpdGVzIHRoZW0gaW50byBhIHRleHQgZmlsZS4gWW91IG1heQpzZWxlY3QgdGhlIG5hbWUgb2YgdGhlIGZpbGUsIGFuZCBzZXQgaXRzIGZvcm1hdC4gVGhlc2UgZmlsZXMgYXJlIHdyaXR0ZW4gdG8gdGhlIFwib3V0cHV0XCIgZGlyZWN0b3J5IHVuZGVyIHRoZQptb2R1bGUncyBpbnN0YWxsYXRpb24gZGlyZWN0b3J5LCBhc3N1bWluZyB0aGUgd2ViIHNlcnZlciBoYXMgcGVybWlzc2lvbiB0byB3cml0ZSB0aGVyZS48L2xpPgo8bGk+KlNhdmUgUmVzdWx0cyB0byBGaWxlIEJhc2VkIG9uIFB1bGxkb3duLiBMaWtlIHRoZSBGbGF0IEZpbGUgZGlzcG9zaXRpb24sIGV4Y2VwdCB0aGUgdmFsdWUgb2YgYSBwdWxsLWRvd24gZGV0ZXJtaW5lcyB3aGljaCBmaWxlIHJlc3VsdHMgZ2V0IHdyaXR0ZW4gdG8uPC9saT4KPGxpPipTYXZlIFJlc3VsdHMgdG8gRmlsZShzKSBCYXNlZCBvbiBNdWx0aXBsZSBTZWxlY3Rpb25zLiBMaWtlIHRoZSBGbGF0IEZpbGUgZGlzcG9zaXRpb24sIGV4Y2VwdCB0aGUgdmFsdWUocykgb2YgY2hlY2tib3hlcyAgZGV0ZXJtaW5lcyB3aGljaCBmaWxlKHMpIHJlc3VsdHMgZ2V0IHdyaXR0ZW4gdG8uPC9saT4KPC91bD48L2xpPjwvbGk+PC91bD4KCgo8aDM+UGFzc2luZyBEZWZhdWx0IFZhbHVlcyB0byBGb3JtczwvaDM+CjxwPkNhbGd1eSBhZGRlZCBhIG5pY2UgZmVhdHVyZSwgd2hpY2ggaXMgdGhhdCB5b3UgY2FuIHBhc3MgZGVmYXVsdCBmaWVsZCB2YWx1ZXMgdG8geW91ciBmb3JtIHZpYSB0aGUgbW9kdWxlIHRhZy4gVGhpcyBhbGxvd3MgeW91IHRvIGhhdmUKdGhlIHNhbWUgZm9ybSBpbiBtdWx0aXBsZSBwbGFjZXMsIGJ1dCB3aXRoIGRpZmZlcmVudCBkZWZhdWx0IHZhbHVlcy4gSXQgbWF5IG5vdCB3b3JrIGZvciBtb3JlIGV4b3RpYyBmaWVsZCB0eXBlcywgYnV0IGZvciBmaWVsZHMgdGhhdCBoYXZlCmEgc2luZ2xlIHZhbHVlLCB5b3UgY2FuIHNwZWNpZnkgbGlrZTo8L3A+CjxwPntjbXNfbW9kdWxlIG1vZHVsZT0nRm9ybUJ1aWxkZXInIGZvcm09J215X2Zvcm0nIHZhbHVlXzxpPkZJRUxETkFNRTwvaT49J2RlZmF1bHRfdmFsdWUnfTwvcD4KPHA+VGhpcyB3aWxsIHNldCB0aGUgZmllbGQgd2l0aCA8aT5GSUVMRE5BTUU8L2k+IHRvICdkZWZhdWx0X3ZhbHVlJy48L3A+CjxwPlRoaXMgY2FuIGJlIHByb2JsZW1hdGljLCBhcyBzb21ldGltZXMgZmllbGQgbmFtZXMgYXJlIHVud2VpbGR5IG9yIGNvbnRhaW4gY2hhcmFjdGVycyB0aGF0IGRvbid0IHdvcmsgd2VsbCB3aXRoIFNtYXJ0eS4gU28gdGhlcmUgaXMgYW4KYWx0ZXJuYXRpdmUgbGlrZSB0aGlzOjwvcD4KPHA+e2Ntc19tb2R1bGUgbW9kdWxlPSdGb3JtQnVpbGRlcicgZm9ybT0nbXlfZm9ybScgdmFsdWVfZmxkPGk+TlVNQkVSPC9pPj0nZGVmYXVsdF92YWx1ZSd9PC9wPgo8cD5UaGF0IHVzZXMgZmllbGQgPGk+TlVNQkVSPC9pPiwgd2hlcmUgPGk+TlVNQkVSPC9pPiBpcyB0aGUgaW50ZXJuYWwgRm9ybUJ1aWxkZXIgZmllbGQgaWQuIFlvdSBtaWdodCB3b25kZXIgaG93IHlvdSBrbm93IHdoYXQgdGhhdCBpZCBpcy4gU2ltcGx5IGdvIGludG8gdGhlIEZvcm1CdWlsZGVyIGNvbmZpZ3VyYXRpb24gdGFiLAphbmQgY2hlY2sgXCJTaG93IEZpZWxkIElEc1wiPC9wPgoKPGgzPkVtYWlsIGFuZCBGbGF0IEZpbGUgVGVtcGxhdGVzPC9oMz4KPHA+TWFueSBkaXNwb3NpdGlvbiB0eXBlcyBhbGxvdyB5b3UgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZm9yIHRoZSBlbWFpbCB0aGF0IGlzIGdlbmVyYXRlZCwgb3IgZm9yIHRoZSB3YXkgdGhlIHJlc3VsdHMgYXJlIHdyaXR0ZW4gdG8gYSBmaWxlLiBJZiB5b3Ugb3B0IG5vdCB0byBjcmVhdGUgYSB0ZW1wbGF0ZSwgdGhlIEZvcm1CdWlsZGVyIHdpbGwgdXNlIGl0J3Mgb3duIGJlc3QgZ3Vlc3MsIHdoaWNoIG1heSBvciBtYXkgbm90IHdvcmsgb3V0IHRvIHlvdXIgbGlraW5nLiBZb3UgY2FuIGFsd2F5cyBjbGljayBvbiB0aGUgXCJDcmVhdGUgU2FtcGxlIFRlbXBsYXRlXCIgYW5kIHRoZW4gY3VzdG9taXplIHRoZSByZXN1bHRzLjwvcD4KPHA+VG8gdGhlIHJpZ2h0LCB5b3UnbGwgZmluZCBhIGxlZ2VuZCB3aGljaCBsaXN0cyBhbGwgb2YgdGhlIHZhcmlhYmxlcyB0aGF0IGFyZSBhdmFpbGFibGUgdG8geW91IHRvIHVzZSBpbiB5b3VyIHRlbXBsYXRlLiBBcyBvZiB2ZXJzaW9uIDAuMywgdmFyaWFibGVzIGhhdmUgdHdvIG5hbWVzLCBvbmUgYmFzZWQgb24gdGhlIGZpZWxkIG5hbWUsIHRoZSBvdGhlciBiYXNlZCBvbiB0aGUgZmllbGQgSUQuIElmIHlvdSB1c2UgZmllbGQgbmFtZXMgdGhhdCBoYXZlIGNoYXJhY3RlcnMgb3V0c2lkZSBvZiB0aGUgQVNDSUkgMzItMTI2IHJhbmdlLCBpdCB3aWxsIGJlIHNhZmVyIHRvIHVzZSB0aGUgSUQtYmFzZWQgdmFyaWFibGVzLjwvcD4KPHA+PHN0cm9uZz5Ob3RlIHRoYXQgb25jZSB5b3UndmUgY2hhbmdlZCBhIHRlbXBsYXRlLCBpdCB3aWxsIG5vIGxvbmdlciBhdXRvbWF0aWNhbGx5IGFkZCBuZXcgZmllbGRzLjwvc3Ryb25nPiBGb3IgdGhpcyByZWFzb24sIGl0J3MgdXN1YWxseSBiZXN0IHRvIGNyZWF0ZSB5b3VyIHRlbXBsYXRlcyBhcyB0aGUgbGFzdCBzdGVwIG9mIGNyZWF0aW5nIHlvdXIgZm9ybS48L3A+CjxwPkFzIG9mIHZlcnNpb24gMC4yLjQsIHlvdSBjYW4gb3B0IHRvIHNlbmQgYW55IG9mIHRoZXNlIGVtYWlscyBhcyBIVE1MIGVtYWlsLiBUaGVyZSBzaG91bGQgYmUgYSBjaGVja2JveCBhdCB0aGUgdG9wIG9mIHRoZSB0ZW1wbGF0ZSBwYWdlIGZvciB0aGlzLiBUaGVyZSBpcyBhbHNvIGEgXCJDcmVhdGUgU2FtcGxlIEhUTUwgVGVtcGxhdGVcIiBidXR0b24gb3ZlciBpbiB0aGUgbGVnZW5kIGFyZWEuIEZvciBIVE1MIGVtYWlsLCB0aGUgZW1haWwgYm9keSB3aWxsIGFsc28gcHJvdmlkZSB0aGUgZGVmYXVsdCB0ZXh0LW9ubHkgdmFsdWVzLjwvcD4KCjxoMz5Db25maWd1cmF0aW9uPC9oMz4KPHA+VGhlcmUgYXJlIHNvbWUgZ2xvYmFsIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgRm9ybUJ1aWxkZXI6PC9wPgo8dWw+CjxsaT5FbmFibGUgZmFzdCBmaWVsZCBhZGQgcHVsbGRvd24uIFRoaXMgZW5hYmxlcyB0aGUgcHVsbGRvd24gb24gdGhlIEZvcm0gRWRpdCBwYWdlIHdoaWNoIHNhdmVzIGEgc3RlcCBpbiB0aGUgY3JlYXRpb24gb2YgbmV3IGZpZWxkcy48L2xpPgo8bGk+SGlkZSBFcnJvcnMuIFRoaXMgaXMgc2V0IGJ5IGRlZmF1bHQuIFVuY2hlY2tpbmcgaXQgd2lsbCBjYXVzZSBtb3JlIGRldGFpbGVkIGVycm9ycyB0byBiZSBkaXNwbGF5ZWQgaWYgdGhlcmUgYXJlIHByb2JsZW1zIHdoZW4geW91IHN1Ym1pdCB5b3VyIGZvcm0uPC9saT4KPGxpPlJlcXVpcmUgRmllbGQgTmFtZXMuIFR5cGljYWxseSwgeW91IHdpbGwgd2FudCBmb3JtIGZpZWxkcyB0byBiZSBuYW1lZCBzbyB5b3UgY2FuIHRlbGwgd2hpY2ggaXMgd2hpY2guIEhvd2V2ZXIsIGluIHNvbWUgY2FzZXMsIHlvdSBtaWdodCB3YW50IHRvIGhhdmUgbmFtZWxlc3MgZmllbGRzLiBVbmNoZWNrIHRoaXMgaWYgeW91IHdhbnQgdG8gYWxsb3cgbmFtZWxlc3MgZmllbGRzLjwvbGk+CjxsaT5VbmlxdWUgRmllbGQgTmFtZXMuIFR5cGljYWxseSwgeW91IHdpbGwgd2FudCBmb3JtIGZpZWxkcyB0byBoYXZlIHVuaXF1ZSBuYW1lcyBzbyB5b3UgY2FuIHRlbGwgd2hpY2ggaXMgd2hpY2guIFVuY2hlY2sgdGhpcyBpZiB5b3Ugd2FudCB0byBhbGxvdyBmaWVsZHMgdG8gc2hhcmUgbmFtZXMuPC9saT4KPGxpPlVzZSByZWxheGVkIGVtYWlsIHZhbGlkYXRpb24uIFRoaXMgdXNlcyBhIGxlc3MgcmVzdHJpY3RpdmUgcmVndWxhciBleHByZXNzaW9uIGZvciB2YWxpZGF0aW5nIGVtYWlsOyBlLmcuLCB4QHkgd2lsbCBiZSBhbGxvd2VkLCB3aGVyZSB0eXBpY2FsbHkgeEB5LnRsZCBpcyByZXF1aXJlZC48L2xpPgo8bGk+U2hvdyBGb3JtIEJ1aWxkZXIgVmVyc2lvbi4gRGlzcGxheXMgdGhlIHZlcnNpb24gb2YgRm9ybUJ1aWxkZXIgeW91J3JlIHVzaW5nIGluIGEgY29tbWVudCB3aGVuIHRoZSBmb3JtIGlzIGdlbmVyYXRlZC4gVHlwaWNhbGx5IG9ubHkgdXNlZnVsIHdoZW4gZGVidWdnaW5nLjwvbGk+CjxsaT5FbmFibGUgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcy4gV2hlbiB0dXJuZWQgb24sIHRoaXMgYWxsb3dzIGFueSBnaXZlbiBJUCBhZGRyZXNzIHRvIG9ubHkgZ2VuZXJhdGUgMTAgZW1haWxzIHBlciBob3VyLjwvbGk+CjxsaT5TaG93IEZpZWxkIElEcy4gV2hlbiB0dXJuZWQgb24sIEZvcm1CdWlsZGVyIHdpbGwgZGlzcGxheSBmaWVsZCBpZHMgd2hlbiBhZGRpbmcgb3IgZWRpdGluZyBhIGZvcm0uPC9saT4KPC91bD4KPGgzPlN0eWxpbmcgYW5kIENTUzwvaDM+CjxwPlBhdWwgTm9vbmUgZ3JhY2lvdXNseSBwcm92aWRlcyB1cyBhbGwgd2l0aCBhIHByZXR0eSBnb29kIHN0YW5kYXJkIENTUyB0aGF0IHlvdSBjYW4gdXNlIGZvciBmb3Jtczo8L3A+CjxwcmU+CgkvKiBTYW1wbGUgRm9ybUJ1aWxkZXIgQ1NTIGJhc2UgKi8KCWZvcm0ge21hcmdpbi10b3A6MH0KCWZvcm0sIHRkLCB0aCwgbGkgeyBmb250LXNpemU6IDEwMCV9Cglmb3JtIGRpdiB7bWFyZ2luLWJvdHRvbTowfQoJZmllbGRzZXQgZGl2IHsKCQltYXJnaW4tYm90dG9tOjAuNWVtOwoJCW1hcmdpbi1sZWZ0OjFlbTsKCX0KCWZpZWxkc2V0IGRpdiBkaXYgewoJCW1hcmdpbi10b3A6MC41ZW07CgkJbWFyZ2luLWxlZnQ6MWVtCgl9CglmaWVsZHNldCB7CgkJbWFyZ2luLWJvdHRvbToxZW07CgkJYm9yZGVyOjFweCBzb2xpZCAjRjYwOwoJCXBhZGRpbmc6MC41ZW0KCX0KCWZpZWxkc2V0IGxhYmVsIHsKCQl3aWR0aDphdXRvOwoJfQoJbGVnZW5kIHsKCQljb2xvcjojRkZGOwoJCWJhY2tncm91bmQ6I0Y2MDsKCQlmb250LXN0eWxlOml0YWxpYzsKCQlmb250LXNpemU6MS4yZW07CgkJbWFyZ2luLWJvdHRvbTowLjVlbTsKCQlwYWRkaW5nOjAuMmVtOwoJCXdpZHRoOmF1dG87CgkJYm9yZGVyOjFweCBzb2xpZCAjQ0NDCgl9Cgl0ZXh0YXJlYSB7CgkJbWFyZ2luOiAwLjVlbSAwOwoJCXdpZHRoOjk4JTsKCQloZWlnaHQ6IDZlbQoJfQoKCS8qIEFwcGx5IHRoaXMgY2xhc3MgdG8gdGV4dC9zZWxlY3QgaW5wdXQgZmllbGRzIHdpdGggc2hvcnRlciBsYWJlbHMKCQl0byBoZWxwIGFsaWdubWVudCAqLwoJLnNob3J0LWxhYmVsIGxhYmVsIHtmbG9hdDpsZWZ0OyB3aWR0aDoxMGVtfQoJLnNob3J0LWxhYmVsIGZpZWxkc2V0IGRpdiBpbnB1dCwKCS5zaG9ydC1sYWJlbCBmaWVsZHNldCBkaXYgc2VsZWN0IHt3aWR0aDoxNmVtfQoKCS8qIFByZXR0eSB1cCB5b3VyIENhcHRjaGEgaW1hZ2Ugb3V0cHV0ICovCgkuY2FwdGNoYSB7CgkJbWFyZ2luOjAuNWVtIDA7CgkJd2lkdGg6MjAwcHg7CgkJdGV4dC1hbGlnbjpjZW50ZXIKCX0KCS5jYXB0Y2hhIGltZyB7Ym9yZGVyOjFweCBzb2xpZCAjRjYwOyBtYXJnaW4tYm90dG9tOjAuNWVtfQoJLmNhcHRjaGEgaW5wdXQge3dpZHRoOjE5NnB4OyBtYXJnaW4tdG9wOjAuNWVtfQoKCS8qIEp1c3QgYSBiaXQgbW9yZSByb29tIGZvciB0aGUgU3VibWl0IGJ1dHRvbiAqLwoJLnN1Ym1pdCB7bWFyZ2luLXRvcDowLjVlbX0KPC9wcmU+Cgo8aDM+Rm9ybSBUZW1wbGF0ZSBWYXJpYWJsZXM8L2gzPgoiLiRsYW5nWyd0ZW1wbGF0ZV92YXJpYWJsZV9oZWxwJ10uIgoKPGgzPktub3duIElzc3VlczwvaDM+Cjx1bD4KPGxpPkZvcm1CdWlsZGVyIGlzIG5vdCB5ZXQgaW50ZWdyYXRlZCB3aXRoIEZyb250RW5kIFVzZXJzLiBJdCB3aWxsIGJlLjwvbGk+CjxsaT5Gb3JtQnVpbGRlciBjYW5ub3QgeWV0IGJlIGlubGluZWQuIFRoYXQgc2hvdWxkIGJlIGEgc2ltcGxlIHVwZ3JhZGUgZG93biB0aGUgbGluZS48L2xpPgo8bGk+Rm9ybUJ1aWxkZXIgZG9lcyBub3QgeWV0IHN1cHBvcnQgcHJldHR5IHVybHMsIGFsdGhvdWdoIHRoYXQgc2hvdWxkbid0IG1hdHRlciBzaW5jZSB0aGUgdXNlciBzaWRlIGlzIHByZXR0eSBzaW1wbGUuPC9saT4KPC91bD4KCjxoMz5Ucm91Ymxlc2hvb3Rpbmc8L2gzPgo8b2w+PGxpPiBGaXJzdCBzdGVwIGlzIHRvIGNoZWNrIHlvdSdyZSBydW5uaW5nIENNUyAxLjEgb3IgbGF0ZXIuPC9saT4KPGxpPiBTZWNvbmQgc3RlcCBpcyB0byByZWFkIGFuZCB1bmRlcnN0YW5kIHRoZSBjYXZlYXQgYWJvdXQgV1lTSVdZRyBlZGl0b3JzIHVwIGluIHRoZQpzZWN0aW9uIDxlbT5BZGRpbmcgYSBGb3JtIHRvIGEgUGFnZTwvZW0+LjwvbGk+CjxsaT4gSWYgeW91J3JlIG1pc3NpbmcgZmllbGRzIGluIGFuIGVtYWlsIHRoYXQgZ2V0cyBnZW5lcmF0ZWQsIGNoZWNrIHRoZSBkaXNwb3NpdGlvbiBmaWVsZCdzIHRlbXBsYXRlLCBhbmQgbWFrZSBzdXJlIHlvdSdyZSBzcGVjaWZ5aW5nIHRoZSBtaXNzaW5nIGZpZWxkcy4gU2VlbXMgb2J2aW91cywgYnV0IGl0J3MgYW4gZWFzeSBtaXN0YWtlIHRvIG1ha2UuPC9saT4KPGxpPlVuY2hlY2sgdGhlIFwiSGlkZSBFcnJvcnNcIiBjaGVja2JveCBpbiB0aGUgZ2xvYmFsIG9wdGlvbnMsIGFuZCBzZWUgd2hhdCBtZXNzYWdlIGdldHMgZGlzcGxheWVkIHdoZW4geW91IHN1Ym1pdCB5b3VyIGZvcm0uPC9saT4KPGxpPiBKdXN0IG1lc3MgYXJvdW5kIGFuZCB0cnkgY2xpY2tpbmcgb24gbGlua3MgYW5kIGljb25zIGFuZCBzdHVmZi4gU2VlIHdoYXQgaGFwcGVucy48L2xpPgo8bGk+IExhc3QgcmVzcG9ydCBpcyB0byBlbWFpbCBtZSBvciBjYXRjaCBtZSBvbiBJUkMgYW5kIHdlIGNhbiBnbyBmcm9tIHRoZXJlLjwvbGk+Cjwvb2w+IAo8cD5UaGlzIGlzIG5vIGxvbmdlciBhIHBhcnRpY3VsYXJseSBlYXJseSB2ZXJzaW9uLCBidXQgaXQgaXMgcHJvYmFibHkgc3RpbGwgYnVnZ3kuIFdoaWxlIEkndmUgZG9uZSBhbGwgSSBjYW4KdG8gbWFrZSBzdXJlIG5vIGVncmVnaW91cyBidWdzIGhhdmUgY3JlcHQgaW4sIEkgaGF2ZSB0byBhZG1pdCB0aGF0IGR1cmluZyBlYXJseSB0ZXN0aW5nLCB0aGlzIHByb2dyYW0KcmV2ZWFsZWQgc2V2ZW4gY29ja3JvYWNoZXMsIHR3byBlYXJ3aWdzLCBhIHNtYWxsIGZhbWlseSBvZiBhcGhpZHMsIGFuZCBhIHdhbGtpbmctc3RpY2sgaW5zZWN0LiBJdCBhbHNvCmF0ZSB0aGUgbmVpZ2hib3IncyBuYXN0eSBsaXR0bGUgeWFwIGRvZywgZm9yIHdoaWNoIEkgd2FzIGluYXBwcm9wcmlhdGVseSBncmF0ZWZ1bC48L3A+CjxwPlRoZSBmaW5hbCByZWxlYXNlIHdpbGwgaW5jbHVkZSBidWcgZml4ZXMsIGRvY3VtZW50YXRpb24sIGFuZCB1bmNvbmRpdGlvbmFsIGxvdmUuPC9wPgo8aDM+U3VwcG9ydDwvaDM+CjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4KPHVsPgo8bGk+Rm9yIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIG1vZHVsZSwgRkFRcywgb3IgdG8gZmlsZSBhIEJ1ZyBSZXBvcnQsIHBsZWFzZSB2aXNpdCB0aGUgQ01TIE1hZGUgU2ltcGxlICA8YSBocmVmPVwiaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZ1wiPkRldmVsb3BlciBGb3JnZTwvYT4uPC9saT4KPGxpPlRvIG9idGFpbiBjb21tZXJjaWFsIHN1cHBvcnQsIHBsZWFzZSBzZW5kIGFuIGVtYWlsIHRvIHRoZSBhdXRob3IgYXQgPGEgaHJlZj1cIm1haWx0bzpzamdAY21zbW9kdWxlcy5jb21cIj4mbHQ7c2pnQGNtc21vZHVsZXMuY29tJmd0OzwvYT4uPC9saT4KPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj1cImh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZ1wiPkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LjwvbGk+CjxsaT5UaGUgYXV0aG9yIGNhbiBvZnRlbiBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj1cImlyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2Ntc1wiPkNNUyBJUkMgQ2hhbm5lbDwvYT4uPC9saT4KPGxpPkxhc3RseSwgeW91IG1heSBoYXZlIHNvbWUgc3VjY2VzcyBlbWFpbGluZyB0aGUgYXV0aG9yIGRpcmVjdGx5IGFuZCBncm92ZWxsaW5nIGZvciBmcmVlIHN1cHBvcnQuPC9saT4KPC91bD4KPHA+QXMgcGVyIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgYXMtaXMuIFBsZWFzZSByZWFkIHRoZSB0ZXh0Cm9mIHRoZSBsaWNlbnNlIGZvciB0aGUgZnVsbCBkaXNjbGFpbWVyLjwvcD4KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+CjxwPkNvcHlyaWdodCAmY29weTsgMjAwNywgU2FtdWVsIEdvbGRzdGVpbiA8YSBocmVmPVwibWFpbHRvOnNqZ0BjbXNtb2R1bGVzLmNvbVwiPiZsdDtzamdAY21zbW9kdWxlcy5jb20mZ3Q7PC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPgo8cD5UaGlzIG1vZHVsZSBoYXMgYmVlbiByZWxlYXNlZCB1bmRlciB0aGUgPGEgaHJlZj1cImh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTFwiPkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+IjsKCiRsYW5nWydjaGFuZ2Vsb2cnXSA9ICIKPHVsPgo8bGk+VmVyc2lvbiAwLjQuNC4gMjYgU2VwdCAwNy4gQnVnZml4ZXMgZm9yIHJhZGlvIGJ1dHRvbiBncm91cHMsIGZpeCBmb3IgdmFsaWRhdGlvbiBvZiBEaXNwb3NpdGlvbkRlbGl2ZXJUb0VtYWlsQWRkcmVzc0ZpZWxkLjwvbGk+CjxsaT5WZXJzaW9uIDAuNC4zLiAxOCBTZXB0IDA3LiBCdWdmaXhlcyBmb3IgcHVsbGRvd25zIHVzaW5nIG51bWJlcnMsIG9wdGlvbiB0byBpbmxpbmUgZm9ybSwgZml4ZXMgZm9yIHRhYmxlLWxheW91dHMgcHJvdmlkZWQgYnkgQXAgTXV0aHUsIGZpeCBmb3IgcmVxdWlyYWJpbGl0eSBvZiBEaXNwb3NpdGlvbnMuPC9saT4KPGxpPlZlcnNpb24gMC40LjIuIDE0IFNlcHQgMDcuIEJ1Z2ZpeGVzIGZvciBYTUwgZXhwb3J0LCBSYWRpb0J1dHRvbiBHcm91cCBzdWJtaXNzaW9uLCBhbmQgSFRNTCBsYWJlbHMuPC9saT4KPGxpPlZlcnNpb24gMC40LjEuIEJ1Z2ZpeGVzIGZvciBGaWxlIERpc3Bvc2l0aW9uIFR5cGVzLjwvbGk+CjxsaT5WZXJzaW9uIDAuNAoJPHVsPgoJCTxsaT5VcHBlZCBtaW5pbXVtIENNUyB2ZXJzaW9uIHRvIDEuMTwvbGk+CgkJPGxpPk51bWVyb3VzIEJ1ZyBmaXhlczsgdG9vIG1hbnkgdG8gZW51bWVyYXRlIGhlcmU8L2xpPgoJCTxsaT5NYXNzaXZlIHJlamlnZ2VyaW5nIG9mIGNvZGUgdG8gd29yayB3aXRoIENNUyBNUyAxLjEgcGFyYW1ldGVyIHNhbml0aXppbmcgcmVnaW1lPC9saT4KCQk8bGk+QWRkZWQgZmllbGQgdHlwZXM6IFwiVGV4dEZpZWxkIChNdWx0aXBsZSlcIiBhbmQgXCJDb21wdXRlZCBGaWVsZFwiPC9saT4KCQk8bGk+QWRkZWQgZGlzcG9zaXRpb25zOiBcIlNhdmUgUmVzdWx0cyB0byBGaWxlIEJhc2VkIG9uIFB1bGxkb3duXCIgYW5kIFwiU2F2ZSBSZXN1bHRzIHRvIEZpbGUocykgQmFzZWQgb24gTXVsdGlwbGUgU2VsZWN0aW9uc1wiKENhbGd1eSk8L2xpPgoJCTxsaT5BZGRlZCBuZWF0LW8gQUpBWC15IHRlbXBsYXRlLWNvcHlpbmcgZm9yIEZvcm0gVGVtcGxhdGVzLCBnYXZlIHZlcnNpb25zIG9mIG9sZCB0YWJsZS1iYXNlZCB0ZW1wbGF0ZXMgdG8gc29vdGhlIHRoZSByYWdpbmcgbWFzc2VzLjwvbGk+CgkJPGxpPkFkZGVkIGFiaWxpdHkgdG8gcGFzcyBkZWZhdWx0IHZhbHVlcyB0byBmb3JtIGVsZW1lbnRzIGZyb20gbW9kdWxlIHRhZyB1c2luZyB2YWx1ZV9GSUVMRE5BTUU9XCJ2YWx1ZVwiIHN5bnRheCAoQ2FsZ3V5KTwvbGk+CgkJPGxpPkFkZGVkIG9wdGlvbiB0byBkaXNwbGF5IGZpZWxkIGlkcyBpbiBhZG1pbiAoQ2FsZ3V5KTwvbGk+Cgk8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAwLjMKICAgPHVsPgogICAgICA8bGk+QWRkZWQgQ2FwdGNoYSBtb2R1bGUgc3VwcG9ydC48L2xpPgogICAgICA8bGk+UmV3b3JrZWQgbGFiZWxpbmcgb2YgZm9ybSBlbGVtZW50cyB0byBiZSBYSFRNTCBjb21wbGlhbnQ8L2xpPgogICAgICA8bGk+QWRkZWQgUGF1bCBOb29uZSdzIG5ldywgaW1wcm92ZWQgY29udGFjdCBmb3JtIHRlbXBsYXRlczwvbGk+CiAgICAgIDxsaT5JbXBsZW1lbnRhdGlvbiBvZiBFbWFpbCBTdWJqZWN0IEZpZWxkPC9saT4KICAgICAgPGxpPkFkZGVkIGFkbWluLXNwZWNpZmlhYmxlIHZhbHVlcyB0byBoaWRkZW4gZmllbGQgdHlwZSwgd2hpY2ggbWF5IGNvbnRhaW4gcGFyc2FibGUgc21hcnR5IHRhZ3M8L2xpPgogICAgICA8bGk+VGV4dCBBcmVhIEZpZWxkIG5vdyBhbGxvd3Mgc3BlY2lmaWNhdGlvbiBvZiByb3dzIGFuZCBjb2xzIGluIHRoZSBhZG1pbiwgaW5zdGVhZCBvZiBDU1M8L2xpPgogICAgICA8bGk+QWRkZWQgRHJhZyduJ0Ryb3AgcmVvcmRlcmluZyBvZiBmb3JtIGZpZWxkcy48L2xpPgogICAgICA8bGk+QWRkZWQgbm9uLWJsYW5rIGZpZWxkIG5hbWUgYW5kIHVuaXF1ZSBmaWVsZCBuYW1lIGdsb2JhbCBjb25maWd1cmF0aW9uIG9wdGlvbnMgYW5kIHZhbGlkYXRpb248L2xpPgogICAgICA8bGk+SW1wbGVtZW50ZWQgdGVtcGxhdGVkIGRpc3BsYXkgb2YgZm9ybSByZXN1bHRzIHVwb24gc3VibWlzc2lvbiBpbiBhZGRpdGlvbiB0byBwYWdlIHJlZGlyZWN0aW5nPC9saT4KICAgICAgPGxpPjwvbGk+CiAgIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDAuMi40IC0gMDkgTWF5IDIwMDcKICAgPHA+QmlnIHJlbGVhc2U6PHVsPgogICA8bGk+QWRkZWQgXCJFbWFpbCBGb3JtIHRvIFVzZXItU3VwcGxpZWQgQWRkcmVzc1wiIGRpc3Bvc2l0aW9uLjwvbGk+CiAgIDxsaT5BZGRlZCBcIlRpbWVQaWNrZXJcIiBmaWVsZCB0eXBlLiBTcGxpdCBcIkxpbmtcIiBmaWVsZCBpbnRvIGEgXCJVc2VyLXN1cHBsaWVkIExpbmtcIiBmaWVsZCBhbmQgYSBcIlN0YXRpYyBMaW5rXCIgZmllbGQuPC9saT4KICAgPGxpPkFkZGVkIEhUTUwgZW1haWwgb3B0aW9uIGFuZCBhdXRvLXRlbXBsYXRlcyBmb3IgYWxsIGVtYWlsIGRpc3Bvc2l0aW9ucy48L2xpPgogICA8bGk+QWRkZWQgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcy48L2xpPgogICA8bGk+QWRkZWQgWE1MLWJhc2VkIGltcG9ydCBhbmQgZXhwb3J0IG9mIGZvcm1zLjwvbGk+CiAgIDwvdWw+CiAgIDwvcD4KPC9saT4KPGxpPlZlcnNpb24gMC4yLjMKICAgPHA+QWRkIHRoZSBhYmlsaXR5IHRvIGNhbGwgYSBzZWxlY3RhYmxlIHVzZXIgZGVmaW5lZCB0YWcgdXBvbiBkaXNwb3NpdGlvbiBvZiB0aGUgZm9ybS48L3A+CjwvbGk+CjxsaT5WZXJzaW9uIDAuMi4yCiAgIDxwPk1hbnkgdGhhbmtzIHRvIFV0dGVyIERlc2lnbiBmb3Igc3BvbnNvcmluZyBzb21lIGNoYW5nZXMgYW5kIGJ1Z2ZpeGVzLCB3aGljaCBpbmNsdWRlOgogICA8dWw+CiAgICAgIDxsaT5BZGRlZCBmaWxlIHVwbG9hZCBjYXBhYmlsaXRpZXMgdG8gdGhlIGVtYWlsIGRpc3Bvc2l0aW9uPC9saT4KICAgICAgPGxpPkFkZCBQYWdlU2V0U3RhcnQgYW5kIFBhZ2VTZXRFbmQgZmllbGQgdHlwZXMKICAgICAgPHA+VGhlc2UgZmllbGQgdHlwZXMgYWxsb3cgeW91IHRvIGNyZWF0ZSBmaWVsZHNldHMgaW4geW91ciBmb3JtLCBhbmQgb3JnYW5pc2UKICAgICAgeW91ciBmaWVsZHMgbG9naWNhbGx5IGZvciB0aGUgdXNlci4gIFlvdSBjYW4gZXZlbiBuZXN0IGZpZWxkc2V0cywgYW5kCiAgICAgIGFzc29jaWF0ZSBhIHN0eWxlIHdpdGggdGhlbSBhcHByb3ByaWF0ZWx5LiAgVGhlIGRlZmF1bHQgdGVtcGxhdGUgd2FzIGNoYW5nZWQKICAgICAgdG8gcHJldmVudCBpdCBmcm9tIHdyYXBwaW5nIGEgZGl2IGFyb3VuZCB0aGVzZSB0eXBlcyBvZiBmaWVsZHMuCiAgICAgIDwvcD4KICAgICAgPC9saT4KICAgICAgPGxpPkZpeGVkIGEgcHJvYmxlbSB3aXRoIERBVEVUSU1FIGZpZWxkcyBvbiBpbnN0YWxsCiAgICAgIDxwPlRoaXMgc29sdmVzIGEgcHJvYmxlbSB3aGVuIG9uIGluc3RhbGwgdGhlIHJlc3BvbnNlIHRhYmxlIHdvdWxkIHNvbWV0aW1lcyBub3QgZ2V0IGNyZWF0ZWQgd2hlbiB1c2luZyBhZG9kYiBsaXRlPC9saT4KICAgICAgPC9saT4KICAgPC91bD4KICAgPC9wPgo8L2xpPgo8bGk+VmVyc2lvbiAwLjIgLSAxNCBOb3ZlbWJlciAyMDA2LiBDYWxndXkgJmFtcDsgdHN3J3MgYnVnIGZpeGVzIGZvciBmaWVsZCByZS1vcmRlcmluZyBhbmQgY3VzdG9tIHRlbXBsYXRlcy4gQWRkaXRpb25hbCBidWcgZml4ZXMgZm9yIGZpZWxkIGxhYmVscy48L2xpPgo8bGk+VmVyc2lvbiAwLjEgLSA4IEp1bHkgMjAwNi4gSW5pdGlhbCBSZWxlYXNlPC9saT4KPC91bD4KIjsKCgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/ext/cs_CZ.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ1R2xa9yY2UgZm9ybXVsJmFhY3V0ZTvFmcWvJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfJ10gPSAnVHlwIHBvbGUgbmVieWwgbmFzdGF2ZW4nOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldEVuZCddID0gJy1GaWVsZHNldCBFbmQnOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldFN0YXJ0J10gPSAnLUZpZWxkc2V0IFN0YXJ0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkJ10gPSAnVGV4dG92JmVhY3V0ZTsgdnN0dXBuJmlhY3V0ZTsgcG9sZSc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRGaWVsZEV4cGFuZGFibGUnXSA9ICdUZXh0b3YmZWFjdXRlOyB2c3R1cG4maWFjdXRlOyBwb2xlICh2JmlhY3V0ZTtjZW4mYWFjdXRlO3NvYm4mZWFjdXRlOyknOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0QXJlYUZpZWxkJ10gPSAnVGV4dG92JnlhY3V0ZTsgciZhYWN1dGU7bWXEjWVrJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hGaWVsZCddID0gJ1phJnNjYXJvbjtrcnQmYWFjdXRlO3ZhYyZpYWN1dGU7IHBvbCZpYWN1dGU7xI1rbyc7CiRsYW5nWydmaWVsZF90eXBlX0NoZWNrYm94R3JvdXBGaWVsZCddID0gJ1NrdXBpbmEgemEmc2Nhcm9uO2tydCZhYWN1dGU7dmFjJmlhY3V0ZTtjaCBwb2wmaWFjdXRlO8SNZWsnOwokbGFuZ1snZmllbGRfdHlwZV9QdWxsZG93bkZpZWxkJ10gPSAnUm96YmFsb3ZhYyZpYWN1dGU7IG5hYiZpYWN1dGU7ZGthJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTXVsdGlzZWxlY3RGaWVsZCddID0gJ1YmeWFjdXRlO2LEm3IgdiZpYWN1dGU7Y2UgbW/Fvm5vc3QmaWFjdXRlOyc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRlUGlja2VyRmllbGQnXSA9ICdWJnlhY3V0ZTtixJtyIHN0JmFhY3V0ZTt0xa8gVVNBJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ291bnRyeVBpY2tlckZpZWxkJ10gPSAnViZ5YWN1dGU7YsSbciBzdCZhYWN1dGU7dMWvJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGF0ZVBpY2tlckZpZWxkJ10gPSAnViZ5YWN1dGU7YsSbciBkYXRhJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGltZVBpY2tlckZpZWxkJ10gPSAnViZ5YWN1dGU7YsSbciDEjWFzdSc7CiRsYW5nWydmaWVsZF90eXBlX1JhZGlvR3JvdXBGaWVsZCddID0gJ1NrdXBpbmEgcMWZZXAmaWFjdXRlO25hxI3Fryc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGlyZWN0b3InXSA9ICcqRW1haWwgUmVzdWx0cyBCYXNlZCBvbiBQdWxsZG93bic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRmlsZURpcmVjdG9yJ10gPSAnKlNhdmUgUmVzdWx0cyB0byBGaWxlIEJhc2VkIG9uIFB1bGxkb3duJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25NdWx0aXNlbGVjdEZpbGVEaXJlY3RvciddID0gJypTYXZlIFJlc3VsdHMgdG8gRmlsZShzKSBCYXNlZCBvbiBNdWx0aXBsZSBTZWxlY3Rpb25zJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25QYWdlUmVkaXJlY3RvciddID0gJypSZWRpcmVjdCB0byBQYWdlIEJhc2VkIG9uIFB1bGxkb3duJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbCddID0gJypFbWFpbCBSZXN1bHRzIHRvIHNldCBBZGRyZXNzKGVzKSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxDb25maXJtYXRpb24nXSA9ICcqVmFsaWRhdGUtdmlhLUVtYWlsIEFkZHJlc3MnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZpbGUnXSA9ICcqV3JpdGUgUmVzdWx0cyB0byBGbGF0IEZpbGUnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRhdGFiYXNlJ10gPSAnKlN0b3JlIFJlc3VsdHMgaW4gRGF0YWJhc2UnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvblVzZXJUYWcnXSA9ICcqQ2FsbCBBIFVzZXIgRGVmaW5lZCBUYWcgV2l0aCB0aGUgRm9ybSBSZXN1bHRzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EZWxpdmVyVG9FbWFpbEFkZHJlc3NGaWVsZCddID0gJypFbWFpbCB0byBVc2VyLVN1cHBsaWVkIEVtYWlsIEFkZHJlc3MnOwokbGFuZ1snZmllbGRfdHlwZV9QYWdlQnJlYWtGaWVsZCddID0gJy1QYWdlIEJyZWFrJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmlsZVVwbG9hZEZpZWxkJ10gPSAnTmFociZhYWN1dGU7biZpYWN1dGU7IHNvdWJvcnUnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxBZGRyZXNzRmllbGQnXSA9ICdFbWFpbCAmcXVvdDtGcm9tIEFkZHJlc3MmcXVvdDsgRmllbGQnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxOYW1lRmllbGQnXSA9ICdFbWFpbCAmcXVvdDtGcm9tIE5hbWUmcXVvdDsgRmllbGQnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxTdWJqZWN0RmllbGQnXSA9ICdFbWFpbCAmcXVvdDtTdWJqZWN0JnF1b3Q7IEZpZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3RhdGljVGV4dEZpZWxkJ10gPSAnLVN0YXRpY2smeWFjdXRlOyB0ZXh0IChTdGF0aWMgVGV4dCknOwokbGFuZ1snZmllbGRfdHlwZV9TeXN0ZW1MaW5rRmllbGQnXSA9ICctU3RhdGljayZ5YWN1dGU7IG9ka2F6IChTdGF0aWMgTGluayknOwokbGFuZ1snZmllbGRfdHlwZV9MaW5rRmllbGQnXSA9ICdPZGtheiAodmxvxb5lbiZ5YWN1dGU7IHXFvml2YXRlbGVtKSBbTGluayAoVXNlci1lbnRlcmVkKV0nOwokbGFuZ1snZmllbGRfdHlwZV9IaWRkZW5GaWVsZCddID0gJy1TY2hvdmFuJmVhY3V0ZTsgcG9sZSAoSGlkZGVuIEZpZWxkKSc7CiRsYW5nWydmaWVsZF90eXBlX0NvbXB1dGVkRmllbGQnXSA9ICctVnlwb8SNJmlhY3V0ZTt0YW4mZWFjdXRlOyBwb2xlIChDb21wdXRlZCBGaWVsZCknOwokbGFuZ1sndmFsaWRhdGlvbl9ub25lJ10gPSAnQmV6IG92ZcWZZW4maWFjdXRlOyBwbGF0bm9zdGknOwokbGFuZ1sndmFsaWRhdGlvbl9udW1lcmljJ10gPSAnxIwmaWFjdXRlO3NlbG4mYWFjdXRlOyBob2Rub3RhIChOdW1lcmljKSc7CiRsYW5nWyd2YWxpZGF0aW9uX2ludGVnZXInXSA9ICdDZWxvxI0maWFjdXRlO3NlbG4mYWFjdXRlOyBob2Rub3RhIChJbnRlZ2VyKSc7CiRsYW5nWyd2YWxpZGF0aW9uX2VtYWlsX2FkZHJlc3MnXSA9ICdFbWFpbG92JmFhY3V0ZTsgYWRyZXNhIChFbWFpbCBBZGRyZXNzKSc7CiRsYW5nWyd2YWxpZGF0aW9uX211c3RfY2hlY2snXSA9ICdNdXMmaWFjdXRlOyBiJnlhY3V0ZTt0IHphJnNjYXJvbjtrcnRudXRvIChNdXN0IEJlIENoZWNrZWQpJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbWF0Y2gnXSA9ICdNYXRjaCBSZWd1bGFyIEV4cHJlc3Npb24nOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9ub21hdGNoJ10gPSAnRG9lc24mIzAzOTt0IG1hdGNoIFJlZ3VsYXIgRXhwcmVzc2lvbic7CiRsYW5nWydyZXF1aXJlZF9maWVsZF9taXNzaW5nJ10gPSAnVmUgdnnFvmFkb3ZhbiZlYWN1dGU7bSBwb2xpIG5lYnlsYSB2bG/FvmVuYSBob2Rub3RhJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX3ZhbHVlJ10gPSAnUHJvcyZpYWN1dGU7bSB2eXBsxYh0ZSBwb2xlICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX251bWJlciddID0gJ1Byb3MmaWFjdXRlO20gdnlwbMWIdGUgxI0maWFjdXRlO3NlbG5vdSBob2Rub3R1IHYgcG9saSAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfdmFsaWQnXSA9ICdQcm9zJmlhY3V0ZTttIHZ5cGzFiHRlIHBsYXRuJnlhY3V0ZTsgJnVhY3V0ZTtkYWogdiBwb2xpICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hbl9pbnRlZ2VyJ10gPSAnUHJvcyZpYWN1dGU7bSB2eXBsxYh0ZSBjZWxvxI0maWFjdXRlO3NlbG5vdSBob2Rub3R1IHYgcG9saSAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5fZW1haWwnXSA9ICdQcm9zJmlhY3V0ZTttIHZ5cGzFiHRlIHBsYXRub3UgZW1haWxvdm91IGFkcmVzdSB2IHBvbGkgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1snbm90X3ZhbGlkX2VtYWlsJ10gPSAnJnF1b3Q7JXMmcXVvdDsgbmV2eXBhZCZhYWN1dGU7IGpha28gcGxhdG4mYWFjdXRlOyBlbWFpbG92JmFhY3V0ZTsgYWRyZXNhISc7CiRsYW5nWydwbGVhc2VfZW50ZXJfbm9fbG9uZ2VyJ10gPSAnUHJvcyZpYWN1dGU7bSB2bG/FvnRlIGhvZG5vdHUga3JhdCZzY2Fyb247JmlhY3V0ZTsgbmXFviAlcyB6bmFrxa8nOwokbGFuZ1sndGl0bGVfbGlzdF9kZWxpbWl0ZXInXSA9ICdDaGFyYWN0ZXIgdG8gdXNlIGFzIGRlbGltaXRlciBpbiByZXN1bHRzIHRoYXQgcmV0dXJuIG1vcmUgdGhhbiBvbmUgdmFsdWUnOwokbGFuZ1sneW91X25lZWRfcGVybWlzc2lvbiddID0gJ1lvdSBuZWVkIHRoZSAmcXVvdDslcyZxdW90OyBwZXJtaXNzaW9uIHRvIHBlcmZvcm0gdGhhdCBvcGVyYXRpb24uJzsKJGxhbmdbJ2xhY2twZXJtaXNzaW9uJ10gPSAnU29ycnkhIFlvdSBkb24mIzAzOTt0IGhhdmUgYWRlcXVhdGUgcHJpdmlsZWdlcyB0byBhY2Nlc3MgdGhpcyBzZWN0aW9uLic7CiRsYW5nWydmaWVsZF9vcmRlcl91cGRhdGVkJ10gPSAnUG/FmWFkJmlhY3V0ZTsgcG9sJmlhY3V0ZTsgYWt0dWFsaXpvdiZhYWN1dGU7bm8uJzsKJGxhbmdbJ2Zvcm1fZGVsZXRlZCddID0gJ0Zvcm11bCZhYWN1dGU7xZkgc21heiZhYWN1dGU7bi4nOwokbGFuZ1snZmllbGRfZGVsZXRlZCddID0gJ1BvbGUgc21heiZhYWN1dGU7bm8uJzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb25fdXBkYXRlZCddID0gJ0tvbmZpZ3VyYWNlIGFrdHVhbGl6b3YmYWFjdXRlO25hLic7CiRsYW5nWyd5b3VfbXVzdF9jaGVjayddID0gJ1BybyBwb2tyYcSNb3YmYWFjdXRlO24maWFjdXRlOyBtdXMmaWFjdXRlO3RlIHphJnNjYXJvbjtrcnRub3V0ICZxdW90OyVzJnF1b3Q7Lic7CiRsYW5nWydtdXN0X3NwZWNpZnlfb25lX2Rlc3RpbmF0aW9uJ10gPSAnWW91IG5lZWQgdG8gc3BlY2lmeSBhdCBsZWFzdCBvbmUgZGVzdGluYXRpb24gYWRkcmVzcyEnOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9mb3JtJ10gPSAnSnN0ZSBzaSBqaXN0IHZ5bWF6JmFhY3V0ZTtuJmlhY3V0ZTttIGZvcm11bCZhYWN1dGU7xZllICVzPyc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2ZpZWxkJ10gPSAnSnN0ZSBzaSBqaXN0IHNtYXomYWFjdXRlO24maWFjdXRlO20gcG9sZSAlcz8nOwokbGFuZ1snbm90aWNlX3NlbGVjdF90eXBlJ10gPSAnUG9rcm/EjWlsJmVhY3V0ZTsgbW/Fvm5vc3RpIG5lanNvdSBkb3N0dXBuJmVhY3V0ZTssIGRva3VkIG5lbiZpYWN1dGU7IG5hc3RhdmVuIHR5cCBwb2xlLic7CiRsYW5nWydmaWVsZF9uYW1lX2luX3VzZSddID0gJ1RoZSBmaWVsZCBuYW1lICZxdW90OyVzJnF1b3Q7IGlzIGFscmVhZHkgaW4gdXNlLiBQbGVhc2UgdXNlIHVuaXF1ZSBmaWVsZCBuYW1lcywgb3IgZGlzYWJsZSB1bmlxdWUgZmllbGQgbmFtZXMgaW4gdGhlIEZvcm0gQnVpbGRlciBjb25maWd1cmF0aW9uLic7CiRsYW5nWydmaWVsZF9ub19uYW1lJ10gPSAnUG9sZSBtdXNlaiZpYWN1dGU7IGImeWFjdXRlO3QgcG9qbWVub3YmYWFjdXRlO25hLCBwb2t1ZCB0b3RvIG5ldnlwbmV0ZSB2IG5hc3RhdmVuJmlhY3V0ZTsgVHbFr3JjZSBmb3JtdWwmYWFjdXRlO8WZxa8uJzsKJGxhbmdbJ2Fub255bW91cyddID0gJ0Fub255bW4maWFjdXRlOyc7CiRsYW5nWydhYmJyZXZpYXRpb25fbGVuZ3RoJ10gPSAnTGVuOiAlcyc7CiRsYW5nWydib3hlcyddID0gJyVzIGJveGVzJzsKJGxhbmdbJ29wdGlvbnMnXSA9ICclcyBvcHRpb25zJzsKJGxhbmdbJ3RleHRfbGVuZ3RoJ10gPSAnJXMgY2hhcnMuJzsKJGxhbmdbJ29yZGVyJ10gPSAnUG/FmWFkJmlhY3V0ZTsnOwokbGFuZ1sndW5zcGVjaWZpZWQnXSA9ICdbdW5zcGVjaWZpZWRdJzsKJGxhbmdbJ2FkZGVkJ10gPSAncMWZaWQmYWFjdXRlO25vJzsKJGxhbmdbJ3VwZGF0ZWQnXSA9ICdha3R1YWxpem92JmFhY3V0ZTtubyc7CiRsYW5nWydzb3J0X29wdGlvbnMnXSA9ICdUxZkmaWFjdXRlO2RpdCB2bGFzdG5vc3RpIG5hIHYmeWFjdXRlO3N0dXB1JzsKJGxhbmdbJ3NlbGVjdF9vbmUnXSA9ICdTZWxlY3QgT25lJzsKJGxhbmdbJ3NlbGVjdF90eXBlJ10gPSAnU2VsZWN0IFR5cGUnOwokbGFuZ1sndG8nXSA9ICdUbyc7CiRsYW5nWyd5ZXMnXSA9ICdZZXMnOwokbGFuZ1snbm8nXSA9ICdObyc7CiRsYW5nWydyZWNpcGllbnRzJ10gPSAncmVjaXBpZW50cyc7CiRsYW5nWydmaWxlX2NvdW50J10gPSAnJXMgcG9zc2libGUgZmlsZXMnOwokbGFuZ1snZGVzdGluYXRpb25fY291bnQnXSA9ICclcyBkZXN0aW5hdGlvbnMnOwokbGFuZ1snc2F2ZSddID0gJ1NhdmUnOwokbGFuZ1snYWRkJ10gPSAnQWRkJzsKJGxhbmdbJ3VwZGF0ZSddID0gJ1VwZGF0ZSc7CiRsYW5nWydzYXZlX2FuZF9jb250aW51ZSddID0gJ1NhdmUgYW5kIENvbnRpbnVlIEVkaXRpbmcnOwokbGFuZ1snaW5mb3JtYXRpb24nXSA9ICdJbmZvcm1hdGlvbic7CiRsYW5nWydhdXRvbWF0aWMnXSA9ICdBdXRvbWF0aWMnOwokbGFuZ1snZm9ybXMnXSA9ICdGb3Jtcyc7CiRsYW5nWydmb3JtJ10gPSAnRm9ybSAlcyc7CiRsYW5nWydjb25maWd1cmF0aW9uJ10gPSAnQ29uZmlndXJhdGlvbic7CiRsYW5nWydmaWVsZF9yZXF1aXJlbWVudF91cGRhdGVkJ10gPSAnRmllbGQgcmVxdWlyZWQgc3RhdGUgdXBkYXRlZC4nOwokbGFuZ1snbWF4aW11bV9zaXplJ10gPSAnTWF4LiBTaXplJzsKJGxhbmdbJ3Blcm1pdHRlZF9leHRlbnNpb25zJ10gPSAnRXh0ZW5zaW9ucyc7CiRsYW5nWydwZXJtaXR0ZWRfZmlsZXR5cGVzJ10gPSAnQWxsb3dlZCBmaWxlIHR5cGVzJzsKJGxhbmdbJ2ZpbGVfdG9vX2xhcmdlJ10gPSAnVXBsb2FkZWQgZmlsZSBpcyB0b28gbGFyZ2UhIE1heGltdW0gc2l6ZSBpczonOwokbGFuZ1snaWxsZWdhbF9maWxlX3R5cGUnXSA9ICdUaGlzIHR5cGUgb2YgZmlsZSBtYXkgbm90IGJlIHVwbG9hZGVkLiBQbGVhc2UgY2hlY2sgdGhhdCB0aGUgZXh0ZW5zaW9uIGlzIGNvcnJlY3QuJzsKJGxhbmdbJ3VwbG9hZCddID0gJ1VwbG9hZCc7CiRsYW5nWydmb3JtX2ltcG9ydGVkJ10gPSAnRm9ybSBJbXBvcnRlZC4nOwokbGFuZ1snZm9ybV9pbXBvcnRfZmFpbGVkJ10gPSAnRm9ybSBpbXBvcnQgZmFpbGVkISBUaGVyZSB3YXMgYSBwcm9ibGVtIHdpdGggdGhlIGZvcm1hdCBvZiB0aGUgWE1MIGZpbGUuJzsKJGxhbmdbJ3Jvd3MnXSA9ICclcyByb3dzJzsKJGxhbmdbJ2NvbHMnXSA9ICclcyBjb2xzJzsKJGxhbmdbJzEyX2hvdXInXSA9ICcxMiBIb3VyIENsb2NrJzsKJGxhbmdbJzI0X2hvdXInXSA9ICcyNCBIb3VyIENsb2NrJzsKJGxhbmdbJ2hvdXInXSA9ICdIb3VyJzsKJGxhbmdbJ21pbiddID0gJ01pbnV0ZSc7CiRsYW5nWydtZXJpZCddID0gJ01lcmlkaWFuJzsKJGxhbmdbJ2RhdGVfcmFuZ2UnXSA9ICdSYW5nZTogJXMgLSAlcyc7CiRsYW5nWyd0aGFua3MnXSA9ICdUaGFua3MhIFlvdXIgc3VibWlzc2lvbnMgaGF2ZSBiZWVuIHJlY2VpdmVkLic7CiRsYW5nWydlZGl0J10gPSAnRWRpdCc7CiRsYW5nWydkZWxldGUnXSA9ICdEZWxldGUnOwokbGFuZ1snZGF5J10gPSAnRGF5JzsKJGxhbmdbJ21vbiddID0gJ01vbnRoJzsKJGxhbmdbJ3llYXInXSA9ICdZZWFyJzsKJGxhbmdbJ3VuaW5zdGFsbGVkJ10gPSAnTW9kdWxlIHVuaW5zdGFsbGVkLic7CiRsYW5nWydpbnN0YWxsZWQnXSA9ICdNb2R1bGUgdmVyc2lvbiAlcyBpbnN0YWxsZWQuJzsKJGxhbmdbJ3VwZ3JhZGVkJ10gPSAnTW9kdWxlIHVwZ3JhZGVkIHRvIHZlcnNpb24gJXMuJzsKJGxhbmdbJ2J1dHRvbl9wcmV2aW91cyddID0gJ0JhY2suLi4nOwokbGFuZ1snYnV0dG9uX3N1Ym1pdCddID0gJ1N1Ym1pdCBGb3JtJzsKJGxhbmdbJ2J1dHRvbl9jb250aW51ZSddID0gJ0NvbnRpbnVlLi4uJzsKJGxhbmdbJ3ZhbHVlX2NoZWNrZWQnXSA9ICdDaGVja2VkJzsKJGxhbmdbJ3ZhbHVlX3VuY2hlY2tlZCddID0gJ1VuY2hlY2tlZCc7CiRsYW5nWyd0YWJfbWFpbiddID0gJ01haW4nOwokbGFuZ1sndGFiX3N5bWJvbCddID0gJ0Zvcm0gRGlzcGxheSBTZXR0aW5ncyc7CiRsYW5nWyd0YWJfc3VibWl0J10gPSAnRm9ybSBTdWJtaXNzaW9uJzsKJGxhbmdbJ3RhYl9jYXB0Y2hhJ10gPSAnQ2FwdGNoYSBTZXR0aW5ncyc7CiRsYW5nWyd0YWJfYWR2YW5jZWQnXSA9ICdBZHZhbmNlZCBTZXR0aW5ncyc7CiRsYW5nWyd0YWJfdGVtcGxhdGVsYXlvdXQnXSA9ICdGb3JtIFRlbXBsYXRlJzsKJGxhbmdbJ3RhYl9zdWJtaXNzaW9udGVtcGxhdGUnXSA9ICdTdWJtaXNzaW9uIFRlbXBsYXRlJzsKJGxhbmdbJ2NhbnVzZV9zbWFydHknXSA9ICc8ZW0+U21hcnR5IHZhcmlhYmxlcyBhcmUgdmFsaWQgaW4gdGhpcyBmaWVsZC48ZW0+JzsKJGxhbmdbJ2FkZF9vcHRpb25zJ10gPSAnQWRkIE1vcmUgT3B0aW9ucyc7CiRsYW5nWydkZWxldGVfb3B0aW9ucyddID0gJ0RlbGV0ZSBNYXJrZWQgT3B0aW9ucyc7CiRsYW5nWydhZGRfY2hlY2tib3hlcyddID0gJ0FkZCBNb3JlIENoZWNrYm94ZXMnOwokbGFuZ1snZGVsZXRlX2NoZWNrYm94ZXMnXSA9ICdEZWxldGUgTWFya2VkIENoZWNrYm94ZXMnOwokbGFuZ1snYWRkX2FkZHJlc3MnXSA9ICdBZGQgQW5vdGhlciBBZGRyZXNzJzsKJGxhbmdbJ2RlbGV0ZV9hZGRyZXNzJ10gPSAnRGVsZXRlIE1hcmtlZCBBZGRyZXNzZXMnOwokbGFuZ1snYWRkX2Rlc3RpbmF0aW9uJ10gPSAnQWRkIEFub3RoZXIgRGVzdGluYXRpb24nOwokbGFuZ1snZGVsZXRlX2Rlc3RpbmF0aW9uJ10gPSAnRGVsZXRlIE1hcmtlZCBEZXN0aW5hdGlvbnMnOwokbGFuZ1snc3VzcGVjdGVkX3NwYW0nXSA9ICdUb28gbWFueSBlbWFpbHMgZ2VuZXJhdGVkIGZyb20geW91ciBJUCBhZGRyZXNzLiBBbnRpLVNwYW0gY29kZSBoYXMgcHJldmVudGVkIGRlbGl2ZXJ5Lic7CiRsYW5nWydzdXNwZWN0ZWRfc3BhbV9sb2cnXSA9ICdTdXNwZWN0ZWQgc3BhbSBmcm9tIElQICVzIHN0b3BwZWQuJzsKJGxhbmdbJ3Jlb3JkZXInXSA9ICdSZW9yZGVyIEZpZWxkcyc7CiRsYW5nWydjYW5jZWwnXSA9ICdDYW5jZWwnOwokbGFuZ1sndGl0bGVfZmlsZV9wYXRoJ10gPSAnRGVzdGluYXRpb24gRGlyZWN0b3J5IGZvciBvdXRwdXQgZmlsZXMnOwokbGFuZ1sndGl0bGVfdWR0X25hbWUnXSA9ICdVc2VyIERlZmluZWQgVGFnJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZHNfZGVzdHBhZ2UnXSA9ICdQYWdlIHRvIHJldHVybiB0byB3aXRoIHVwbG9hZHMgbGluayc7CiRsYW5nWyd0aXRsZV91cGxvYWRtb2R1bGVfc3VtbWFyeSddID0gJ1N1Ym1pdHRlZCB3aXRoIGZvcm1idWlsZGVyJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZHNfY2F0ZWdvcnknXSA9ICdVcGxvYWRzIGNhdGVnb3J5JzsKJGxhbmdbJ3RpdGxlX3NlbmR0b191cGxvYWRzJ10gPSAnU2VuZCB0aGlzIGZpbGUgdG8gdGhlIHVwbG9hZHMgbW9kdWxlJzsKJGxhbmdbJ3RpdGxlX2xlZ2VuZCddID0gJ0xlZ2VuZCc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX2xlbmd0aCddID0gJ01heGltdW0gTGVuZ3RoJzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2xhYmVsJ10gPSAnQ2hlY2tib3ggbGFiZWwnOwokbGFuZ1sndGl0bGVfcmFkaW9fbGFiZWwnXSA9ICdSYWRpbyBCdXR0b24gbGFiZWwnOwokbGFuZ1sndGl0bGVfY2hlY2tlZF92YWx1ZSddID0gJ1ZhbHVlIHdoZW4gY2hlY2tlZCc7CiRsYW5nWyd0aXRsZV91bmNoZWNrZWRfdmFsdWUnXSA9ICdWYWx1ZSB3aGVuIG5vdCBjaGVja2VkLic7CiRsYW5nWyd0aXRsZV9jaGVja2JveF9kZXRhaWxzJ10gPSAnQ2hlY2tib3ggR3JvdXAgRGV0YWlscyc7CiRsYW5nWyd0aXRsZV9kZWxldGUnXSA9ICdEZWxldGU/JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9vbmVfbWVzc2FnZSddID0gJyZxdW90O1NlbGVjdCBPbmUmcXVvdDsgVGV4dCc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fZGlzcGxheW5hbWUnXSA9ICdTZWxlY3Rpb24gRGlzcGxheSBOYW1lJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl9zdWJqZWN0J10gPSAnU2VsZWN0aW9uIFN1YmplY3QnOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfY291bnRyeSddID0gJ0RlZmF1bHQgU2VsZWN0aW9uJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X3N0YXRlJ10gPSAnRGVmYXVsdCBTZWxlY3Rpb24nOwokbGFuZ1sndGl0bGVfb3B0aW9uX25hbWUnXSA9ICdPcHRpb24gTmFtZSc7CiRsYW5nWyd0aXRsZV9vcHRpb25fdmFsdWUnXSA9ICdWYWx1ZSBTdWJtaXR0ZWQnOwokbGFuZ1sndGl0bGVfcHVsbGRvd25fZGV0YWlscyddID0gJ1B1bGxkb3duIE9wdGlvbnMnOwokbGFuZ1sndGl0bGVfbXVsdGlzZWxlY3RfZGV0YWlscyddID0gJ011bHRpc2VsZWN0IE9wdGlvbnMnOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fYWRkcmVzcyddID0gJ0Rlc3RpbmF0aW9uIEVtYWlsIEFkZHJlc3MnOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fZmlsZW5hbWUnXSA9ICdEZXN0aW5hdGlvbiBGaWxlIE5hbWUnOwokbGFuZ1sndGl0bGVfZW1haWxfZnJvbV9uYW1lJ10gPSAnJnF1b3Q7RnJvbSBuYW1lJnF1b3Q7IGZvciBlbWFpbCc7CiRsYW5nWyd0aXRsZV9yZWxheGVkX2VtYWlsX3JlZ2V4J10gPSAnVXNlIHJlbGF4ZWQgZW1haWwgdmFsaWRhdGlvbic7CiRsYW5nWyd0aXRsZV9yZWxheGVkX3JlZ2V4X2xvbmcnXSA9ICdVc2UgcmVsYXhlZCBlbWFpbCBhZGRyZXNzIHZhbGlkYXRpb24gKGUuZy4sIGFsbG93ICZxdW90O3hAeSZxdW90OyBpbnN0ZWFkIG9mIHJlcXVpcmluZyAmcXVvdDt4QHkudGxkJnF1b3Q7KSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9mcm9tX2FkZHJlc3MnXSA9ICcmcXVvdDtGcm9tIGFkZHJlc3MmcXVvdDsgZm9yIGVtYWlsJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2VuY29kaW5nJ10gPSAnRW1haWwgY2hhcmFjdGVyIHNldCBlbmNvZGluZyc7CiRsYW5nWyd0aXRsZV9kaXJlY3Rvcl9kZXRhaWxzJ10gPSAnUHVsbGRvd24tYmFzZWQgRW1haWxlciBEZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfbmFtZSddID0gJ0ZpbGUgTmFtZSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9zdWJqZWN0J10gPSAnRW1haWwgU3ViamVjdCBMaW5lJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmFtZSddID0gJ0Zvcm0gTmFtZSc7CiRsYW5nWyd0aXRsZV9mb3JtX3N0YXR1cyddID0gJ0Zvcm0gU3RhdHVzJzsKJGxhbmdbJ3RpdGxlX3JlYWR5X2Zvcl9kZXBsb3ltZW50J10gPSAnUmVhZHkgZm9yIERlcGxveW1lbnQnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MSddID0gJ05vdCBSZWFkeSc7CiRsYW5nWyd0aXRsZV9yZWRpcmVjdF9wYWdlJ10gPSAnUGFnZSB0byByZWRpcmVjdCB0byBhZnRlciBmb3JtIHN1Ym1pc3Npb24nOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MiddID0gJ1BsZWFzZSBhZGQgYSBmaWVsZCB0byB0aGUgZm9ybSBzbyB0aGF0IHRoZSB1c2VyJiMwMzk7cyBpbnB1dCBnZXRzIGhhbmRsZWQuIFlvdSBjYW4nOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5X2xpbmsnXSA9ICd1c2UgdGhpcyBzaG9ydGN1dCc7CiRsYW5nWyd0aXRsZV9mb3JtX2FsaWFzJ10gPSAnRm9ybSBBbGlhcyc7CiRsYW5nWyd0aXRsZV9mb3JtX2ZpZWxkcyddID0gJ0Zvcm0gRmllbGRzJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2lkJ10gPSAnRmllbGQgSWQnOwokbGFuZ1sndGl0bGVfZmllbGRfbmFtZSddID0gJ0ZpZWxkIE5hbWUnOwokbGFuZ1sndGl0bGVfcmFkaW9ncm91cF9kZXRhaWxzJ10gPSAnUmFkaW8gQnV0dG9uIEdyb3VwIERldGFpbHMnOwokbGFuZ1sndGl0bGVfZmllbGRfdHlwZSddID0gJ0ZpZWxkIFR5cGUnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MyddID0gJ3RvIGNyZWF0ZSBhIGZvcm0gaGFuZGxpbmcgZmllbGQuJzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZm9ybSddID0gJ0FkZCBOZXcgRm9ybSc7CiRsYW5nWyd0aXRsZV9zaG93X3ZlcnNpb24nXSA9ICdTaG93IEZvcm0gQnVpbGRlciBWZXJzaW9uPyc7CiRsYW5nWyd0aXRsZV9zaG93X3ZlcnNpb25fbG9uZyddID0gJ1RoaXMgd2lsbCBlbWJlZCB5b3VyIGluc3RhbGxlZCB2ZXJzaW9uIG51bWJlciBvZiBGb3JtIEJ1aWxkZXIgbW9kdWxlIGluIGEgY29tbWVudCwgdG8gYWlkIGluIGRlYnVnZ2luZyc7CiRsYW5nWyd0aXRsZV9hZGRfbmV3X2ZpZWxkJ10gPSAnQWRkIE5ldyBGaWVsZCc7CiRsYW5nWyd0aXRsZV9mb3JtX3N1Ym1pdF9idXR0b24nXSA9ICdGb3JtIFN1Ym1pdCBCdXR0b24gVGV4dCc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eSddID0gJ0FkZCBKYXZhc2NyaXB0IHRvIGZpbmFsIFN1Ym1pdCBCdXR0b24gdGhhdCB3aWxsIGhlbHAgcHJldmVudCBtdWx0aXBsZSBzdWJtaXNzaW9ucz8nOwokbGFuZ1sndGl0bGVfc3VibWl0X2J1dHRvbl9zYWZldHlfaGVscCddID0gJ0FkZCBzYWZldHkgc2NyaXB0JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmV4dF9idXR0b24nXSA9ICdGb3JtICZxdW90O05leHQmcXVvdDsgQnV0dG9uIFRleHQgKHVzZWQgZm9yIG11bHRpcGFnZSBmb3JtcyknOwokbGFuZ1sndGl0bGVfZm9ybV9wcmV2X2J1dHRvbiddID0gJ0Zvcm0gJnF1b3Q7UHJldmlvdXMmcXVvdDsgQnV0dG9uIFRleHQgKHVzZWQgZm9yIG11bHRpcGFnZSBmb3JtcyknOwokbGFuZ1sndGl0bGVfZmllbGRfdmFsaWRhdGlvbiddID0gJ0ZpZWxkIFZhbGlkYXRpb24nOwokbGFuZ1sndGl0bGVfZm9ybV9jc3NfY2xhc3MnXSA9ICdDU1MgQ2xhc3MgZm9yIHRoaXMgZm9ybSc7CiRsYW5nWyd0aXRsZV9maWVsZF9jc3NfY2xhc3MnXSA9ICdDU1MgQ2xhc3MgZm9yIHRoaXMgZmllbGQnOwokbGFuZ1sndGl0bGVfZm9ybV9yZXF1aXJlZF9zeW1ib2wnXSA9ICdTeW1ib2wgdG8gbWFyayByZXF1aXJlZCBGaWVsZHMnOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWQnXSA9ICdSZXF1aXJlZCc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9sb25nJ10gPSAnUmVxdWlyZSBhIHJlc3BvbnNlIGZvciB0aGlzIEZpZWxkJzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWwnXSA9ICdIaWRlIExhYmVsJzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWxfbG9uZyddID0gJ0hpZGUgdGhpcyBmaWVsZCYjMDM5O3MgbmFtZSBvbiBGb3JtJzsKJGxhbmdbJ3RpdGxlX3RleHQnXSA9ICdTdGF0aWMgdGV4dCB0byBkaXNwbGF5JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlZ2V4J10gPSAnVmFsaWRhdGlvbiBSZWdleCc7CiRsYW5nWyd0aXRsZV9saW5lc190b19zaG93J10gPSAnTnVtYmVyIG9mIExpbmVzIHRvIGRpc3BsYXknOwokbGFuZ1snbm9fZGVmYXVsdCddID0gJ05vIERlZmF1bHQnOwokbGFuZ1sncmVkaXJlY3RfYWZ0ZXJfYXBwcm92YWwnXSA9ICdQYWdlIHRvIHJlZGlyZWN0IGFmdGVyIGFwcHJvdmFsJzsKJGxhbmdbJ3RpdGxlX3JlZ2V4X2hlbHAnXSA9ICdUaGlzIHJlZ3VsYXIgZXhwcmVzc2lvbiB3aWxsIG9ubHkgYmUgdXNlZCBpZiAmcXVvdDt2YWxpZGF0aW9uIHR5cGUmcXVvdDsgaXMgc2V0IHRvIGEgcmVnZXgtcmVsYXRlZCBvcHRpb24uIEluY2x1ZGUgYSBmdWxsIFBlcmwtc3R5bGUgcmVnZXgsIGluY2x1ZGluZyB0aGUgc3RhcnQvc3RvcCBzbGFzaGVzIGFuZCBmbGFncyAoZS5nLiwgJnF1b3Q7L2ltYWdlXC4oXGQrKS9pJnF1b3Q7KSc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9hYmJyZXYnXSA9ICdSZXEmIzAzOTtkJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzJ10gPSAnSGlkZSBFcnJvcnMnOwokbGFuZ1sndGl0bGVfZm9ybV9kaXNwbGF5dHlwZSddID0gJ0Zvcm0gRGlzcGxheSBUeXBlJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzX2xvbmcnXSA9ICdQcmV2ZW50IGRlYnVnIC8gZXJyb3IgbWVzc2FnZXMgZnJvbSBiZWluZyBzZWVuIGJ5IHVzZXJzLic7CiRsYW5nWyd0aXRsZV9lbWFpbF90ZW1wbGF0ZSddID0gJ0VtYWlsIFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZSddID0gJ01heGltdW0gdXBsb2FkIGZpbGUgc2l6ZSAoa2lsb2J5dGVzKSc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX3NpemVfbG9uZyddID0gJ1RoaXMgbGltaXRhdGlvbiBpcyBpbiBhZGRpdGlvbiB0byBhbnkgbGltaXRzIHNldCBieSB0aGUgcGhwIG9yIHdlYiBzZXJ2ZXIgY29uZmlndXJhdGlvbic7CiRsYW5nWyd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ1Blcm1pdHRlZCBFeHRlbnNpb25zJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zX2xvbmcnXSA9ICdFbnRlciBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0LCBleGNsdWRpbmcgdGhlIGRvdCAoZS5nLiwgJnF1b3Q7anBnLGdpZixqcGVnJnF1b3Q7KS4gU3BhY2VzIHdpbGwgYmUgaWdub3JlZC4gTGVhdmluZyB0aGlzIGJsYW5rIG1lYW5zIHRoZXJlIHdpbGwgYmUgbm8gcmVzdHJpY3Rpb25zLic7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zJ10gPSAnRGlzcGxheSByZXN0cmljdGlvbnM/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnNfbG9uZyddID0gJ0Rpc3BsYXkgYW55IHNpemUgYW5kIGV4dGVuc2lvbiByZXN0cmljdGlvbnMgd2l0aCB0aGUgdXBsb2FkIGZpZWxkPyc7CiRsYW5nWyd0aXRsZV9mb3JtX3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgdG8gdXNlIHRvIERpc3BsYXkgRm9ybSc7CiRsYW5nWyd0aXRsZV9wYWdlX3hfb2ZfeSddID0gJ1BhZ2UgJXMgb2YgJXMnOwokbGFuZ1sndGl0bGVfbm9fYWR2YW5jZWRfb3B0aW9ucyddID0gJ0ZpZWxkIGhhcyBubyBhZHZhbmNlZCBvcHRpb25zLic7CiRsYW5nWyd0aXRsZV9mb3JtX3Vuc3BlY2lmaWVkJ10gPSAnVGV4dCB0byByZXR1cm4gZm9yIHVuc3BlY2lmaWVkIGZpZWxkIHZhbHVlcyc7CiRsYW5nWyd0aXRsZV9lbmFibGVfZmFzdGFkZF9sb25nJ10gPSAnRW5hYmxlIGZhc3QgZmllbGQgYWRkaW5nIHB1bGxkb3duIGZvciBmb3Jtcz8nOwokbGFuZ1sndGl0bGVfZW5hYmxlX2Zhc3RhZGQnXSA9ICdFbmFibGUgZmFzdCBmaWVsZCBhZGQgcHVsbGRvd24/JzsKJGxhbmdbJ3RpdGxlX2Zhc3RhZGQnXSA9ICdGYXN0IGZpZWxkIGFkZGVyJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9hbnRpc3BhbV9sb25nJ10gPSAnQ2xpY2tpbmcgdGhpcyB3aWxsIG9ubHkgYWxsb3cgMTAgZW1haWxzIHRvIGJlIHRyaWdnZXJlZCBmcm9tIGEgZ2l2ZW4gSVAgYWRkcmVzcyAocGVyIGhvdXIpLic7CiRsYW5nWyd0aXRsZV9lbmFibGVfYW50aXNwYW0nXSA9ICdFbmFibGUgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcz8nOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGlkcyddID0gJ1Nob3cgRmllbGQgSURzJzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRpZHNfbG9uZyddID0gJ0NsaWNraW5nIHRoaXMgd2lsbCBhbGxvdyBkaXNwbGF5aW5nIGZpZWxkIGlkcyB3aGVuIGFkZGluZyBvciBlZGl0aW5nIGEgZm9ybSc7CiRsYW5nWyd0aXRsZV94bWxfdG9fdXBsb2FkJ10gPSAnVXBsb2FkIGZvcm0gZnJvbSBYTUwgZmlsZSc7CiRsYW5nWyd0aXRsZV94bWxfdXBsb2FkX2Zvcm1uYW1lJ10gPSAnVXNlIHRoaXMgZm9ybSBuYW1lJzsKJGxhbmdbJ3RpdGxlX2ltcG9ydF9sZWdlbmQnXSA9ICdYTUwgRm9ybSBJbXBvcnQnOwokbGFuZ1sndGl0bGVfeG1sX3VwbG9hZF9mb3JtYWxpYXMnXSA9ICdVc2UgdGhpcyBmb3JtIGFsaWFzJzsKJGxhbmdbJ3RpdGxlX2h0bWxfZW1haWwnXSA9ICdHZW5lcmF0ZSBIVE1MIGVtYWlsPyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZSddID0gJ0F1dG9tYXRpY2FsbHkgcG9wdWxhdGU/JzsKJGxhbmdbJ3RpdGxlX2xpbmtfYXV0b3BvcHVsYXRlX2hlbHAnXSA9ICdBdXRvbWF0aWNhbGx5IHBvcHVsYXRlIHdpdGggdGhlIFVSTCBvZiB0aGUgcGFnZSBjb250YWluaW5nIHRoZSBmb3JtPyAodGhpcyBvdmVycmlkZXMgc2l0ZSBwYWdlIGxpbmsgb3B0aW9uIGJlbG93KSc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2xpbmsnXSA9ICdEZWZhdWx0IGxpbmsgVVJMJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfbGlua190aXRsZSddID0gJ0RlZmF1bHQgbGluayB0ZXh0JzsKJGxhbmdbJ3RpdGxlX2xpbmtfdG9fc2l0ZXBhZ2UnXSA9ICdMaW5rIHRvIHNpdGUgcGFnZSc7CiRsYW5nWyd0aXRsZV9jYXB0Y2hhX25vdF9pbnN0YWxsZWQnXSA9ICdZb3UgY2FuIHVzZSA8YSBocmVmPSZxdW90O2h0dHA6Ly93d3cud2lraXBlZGlhLm9yZy93aWtpL0NhcHRjaGEmcXVvdDsgdGFyZ2V0PSZxdW90O19uZXcmcXVvdDs+JnF1b3Q7Q2FwdGNoYSZxdW90OzwvYT4gdG8gcHJvdGVjdCBmb3JtIHN1Ym1pc3Npb25zIGlmIHlvdSBpbnN0YWxsIHRoZSBDYXB0Y2hhIG1vZHVsZS4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIDxhIGhyZWY9JnF1b3Q7aHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9jYXB0Y2hhLyZxdW90Oz5jaGVjayB0aGUgQ2FwdGNoYSBwcm9qZWN0PC9hPi4nOwokbGFuZ1sndGl0bGVfdXNlX2NhcHRjaGEnXSA9ICdVc2UgQ2FwdGNoYSB0byBwcm90ZWN0IGZvcm0gc3VibWlzc2lvbnM/JzsKJGxhbmdbJ3RpdGxlX3VzZV9jYXB0Y2hhX2hlbHAnXSA9ICdDaGVjayBoZXJlIHRvIHByb3RlY3QgeW91ciBmb3JtIHdpdGggYSA8YSBocmVmPSZxdW90O2h0dHA6Ly93d3cud2lraXBlZGlhLm9yZy93aWtpL0NhcHRjaGEmcXVvdDsgdGFyZ2V0PSZxdW90O19uZXcmcXVvdDs+JnF1b3Q7Q2FwdGNoYSZxdW90OzwvYT4uJzsKJGxhbmdbJ3RpdGxlX3VzZXJfY2FwdGNoYSddID0gJ1BsZWFzZSBjb25maXJtIHRoYXQgeW91IGFyZSBub3QgYSBzY3JpcHQgYnkgZW50ZXJpbmcgdGhlIGxldHRlcnMgZnJvbSB0aGUgaW1hZ2UuJzsKJGxhbmdbJ3RpdGxlX3VzZXJfY2FwdGNoYV9lcnJvciddID0gJ0ZhaWxlZCB0ZXh0IGZvciBDYXB0Y2hhJzsKJGxhbmdbJ3dyb25nX2NhcHRjaGEnXSA9ICdPcGkmc2Nhcm9uO3RlIHNwciZhYWN1dGU7dm7EmyB6bmFreSB6IG9iciZhYWN1dGU7emt1Lic7CiRsYW5nWyd0aXRsZV90aXRsZV91c2VyX2NhcHRjaGEnXSA9ICdIZWxwIHRleHQgZm9yIENhcHRjaGEnOwokbGFuZ1snbGlua19sYWJlbCddID0gJ0xpbmsgTGFiZWwnOwokbGFuZ1snbGlua19kZXN0aW5hdGlvbiddID0gJ0xpbmsgRGVzdGluYXRpb24gVVJMJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfc2V0J10gPSAnQ2hlY2tlZCBieSBEZWZhdWx0Pyc7CiRsYW5nWyd0aXRsZV8yNF9ob3VyJ10gPSAnVXNlIDI0LWhvdXIgY2xvY2s/JzsKJGxhbmdbJ3RpdGxlX2JlZm9yZV9ub29uJ10gPSAnQU0nOwokbGFuZ1sndGl0bGVfYWZ0ZXJfbm9vbiddID0gJ1BNJzsKJGxhbmdbJ3RpdGxlX3NtYXJ0eV9ldmFsJ10gPSAnUHJvY2VzcyBzbWFydHkgdGFncyB3aXRoaW4gZmllbGQ/JzsKJGxhbmdbJ3RpdGxlX3RleHRhcmVhX3Jvd3MnXSA9ICdSb3dzIChub3RlOiB0aGlzIG1heSBiZSBvdmVycmlkZGVuIGJ5IENTUyknOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfY29scyddID0gJ0NvbHVtbnMgKG5vdGU6IHRoaXMgbWF5IGJlIG92ZXJyaWRkZW4gYnkgQ1NTKSc7CiRsYW5nWyd0aXRsZV9mb3JtX21haW4nXSA9ICdNYWluIEZvcm0gRGV0YWlscyc7CiRsYW5nWydoZWxwX2xlYXZlZW1wdHknXSA9ICdUaGlzIGZpZWxkIG1heSBiZSBsZWZ0IGVtcHR5JzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVzX2Zvcl90ZW1wbGF0ZSddID0gJ1ZhcmlhYmxlcyBGb3IgVGVtcGxhdGUnOwokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX2NvbXB1dGF0aW9uJ10gPSAnVmFyaWFibGVzIEF2YWlsYWJsZSc7CiRsYW5nWydoZWxwX3BocF92YXJpYWJsZV9uYW1lJ10gPSAnUEhQIHZhcmlhYmxlJzsKJGxhbmdbJ2hlbHBfc3VibWlzc2lvbl9kYXRlJ10gPSAnRGF0ZSBvZiBTdWJtaXNzaW9uJzsKJGxhbmdbJ2hlbHBfc2VydmVyX25hbWUnXSA9ICdZb3VyIHNlcnZlcic7CiRsYW5nWydoZWxwX3N1Yl9zb3VyY2VfaXAnXSA9ICdJUCBhZGRyZXNzIG9mIHBlcnNvbiB1c2luZyBmb3JtJzsKJGxhbmdbJ2hlbHBfc3ViX3VybCddID0gJ1VSTCBvZiBwYWdlIGNvbnRhaW5pbmcgZm9ybSc7CiRsYW5nWydoZWxwX290aGVyX2ZpZWxkcyddID0gJ0FsdGVybmF0ZSBmaWVsZCBuYW1lcyBjYW4gYmUgdXNlZCBpbnRlcmNoYW5nZWFibHkgKGVzcGVjaWFsbHkgdXNlZnVsIGlmIFNtYXJ0eSBpcyBjaG9raW5nIG9uIGNoYXJhY3RlcnMgb3V0c2lkZSBvZiBBU0NJSSAzMi0xMjYpLiA8YnIgLz5PdGhlciBmaWVsZHMgd2lsbCBiZSBhdmFpbGFibGUgYXMgeW91IGFkZCB0aGVtIHRvIHRoZSBmb3JtLic7CiRsYW5nWydoZWxwX2FycmF5X2ZpZWxkcyddID0gJ0ZpZWxkcyB0aGF0IGhhdmUgbXVsdGlwbGUgdmFsdWVzIG1heSBhbHNvIGJlIGFjY2Vzc2VkIHZpYSB0aGUgc21hcnR5IHZhbHVlIG9mICRmaWVsZG5hbWVfYXJyYXkgb3IgJGZsZF8jX2FycmF5Lic7CiRsYW5nWydoZWxwX2RhdGVfZm9ybWF0J10gPSAnU2VlIDxhIGhyZWY9JnF1b3Q7aHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5kYXRlLnBocCZxdW90OyB0YXJnZXQ9X05FVz50aGUgUEhQIE1hbnVhbDwvYT4gZm9yIGZvcm1hdHRpbmcgaGVscC4nOwokbGFuZ1snaGVscF92YXJpYWJsZV9uYW1lJ10gPSAnVmFyaWFibGUnOwokbGFuZ1snaGVscF9mb3JtX2ZpZWxkJ10gPSAnRmllbGQgUmVwcmVzZW50ZWQnOwokbGFuZ1snbGlua19iYWNrX3RvX2Zvcm0nXSA9ICcmbGFxdW87IEJhY2sgdG8gRm9ybSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX3RlbXBsYXRlJ10gPSAnQ3JlYXRlIFNhbXBsZSBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2h0bWxfdGVtcGxhdGUnXSA9ICdDcmVhdGUgU2FtcGxlIEhUTUwgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9oZWFkZXInXSA9ICdDcmVhdGUgU2FtcGxlIEhlYWRlcic7CiRsYW5nWydoZWxwX3RhYl9zeW1ib2wnXSA9ICdhIHRhYiBjaGFyYWN0ZXInOwokbGFuZ1sndGl0bGVfZmlsZV90ZW1wbGF0ZSddID0gJ1RlbXBsYXRlIGZvciBvbmUgbGluZSBvZiBvdXRwdXQgZmlsZSc7CiRsYW5nWyd0aXRsZV9maWxlX2hlYWRlciddID0gJ1RlbXBsYXRlIGZvciB0aGUgaGVhZGVyIG9mIG91dHB1dCBmaWxlJzsKJGxhbmdbJ3RpdGxlX2NvbmZpcm1hdGlvbl91cmwnXSA9ICdVUkwgdG8gY2xpY2sgZm9yIGZvcm0gY29uZmlybWF0aW9uJzsKJGxhbmdbJ3RpdGxlX3ZhbHVlJ10gPSAnVmFsdWUgKHNlZSBBZHZhbmNlZCBUYWIgaWYgeW91IHVzZSBTbWFydHkgdGFncyknOwokbGFuZ1sndGl0bGVfZGF0ZV9mb3JtYXQnXSA9ICdEYXRlIEZvcm1hdCAoc3RhbmRhcmQgPGEgaHJlZj0mcXVvdDtodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwJnF1b3Q7PlBIUCBEYXRlIEZvcm1hdHM8L2E+KSc7CiRsYW5nWyd0aXRsZV91c2Vfd3lzaXd5ZyddID0gJ1VzZSBXWVNJV1lHIGVkaXRvciBmb3IgdGV4dCBBcmVhIChBZG1pbiBzaWRlIG9ubHkpPyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYWN0aW9ucyddID0gJ0Zvcm0gU3VibWlzc2lvbiBCZWhhdmlvcic7CiRsYW5nWyd0aXRsZV9zdWJtaXRfbGFiZWxzJ10gPSAnU3VibWlzc2lvbiBCdXR0b24gTGFiZWxzJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9oZWxwJ10gPSAnVGhpcyBwYWdlIGxldHMgeW91IGN1c3RvbWl6ZSBGb3JtIFN1Ym1pc3Npb24uIEl0IGRvZXNuJiMwMzk7dCBkZXRlcm1pbmUgd2hhdCB0aGUgRm9ybSBCdWlsZGVyIGRvZXMgd2l0aCB0aGUgc3VibWl0dGVkIGRhdGEuIFlvdSBjYW4gc2V0IHRoYXQgdXAgYnkgYWRkaW5nICZxdW90O0Rpc3Bvc2l0aW9uJnF1b3Q7IGZpZWxkcyB0byB5b3VyIGZvcm0uJzsKJGxhbmdbJ3RpdGxlX3N0YXJ0X3llYXInXSA9ICdZZWFyIHJhbmdlIHN0YXJ0JzsKJGxhbmdbJ3RpdGxlX2VuZF95ZWFyJ10gPSAnWWVhciByYW5nZSBlbmQnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF95ZWFyJ10gPSAnRGVmYXVsdCBZZWFyJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfeWVhcl9oZWxwJ10gPSAnKFNldCB0byAtMSBmb3IgZGVmYXVsdCB5ZWFyIHRvIGJlIHRoZSBjdXJyZW50IHllYXIpJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9hY3Rpb24nXSA9ICdBZnRlciBmb3JtIGlzIHN1Ym1pdHRlZCc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfcmVzcG9uc2UnXSA9ICdSZXNwb25zZSB0byBkaXNwbGF5JzsKJGxhbmdbJ2Rpc3BsYXlfdGV4dCddID0gJ0Rpc3BsYXkgJnF1b3Q7U3VibWlzc2lvbiBUZW1wbGF0ZSZxdW90Oyc7CiRsYW5nWydyZWRpcmVjdF90b19wYWdlJ10gPSAnUmVkaXJlY3QgdG8gc2l0ZSBwYWdlJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9yZXNwb25zZV9oZWxwJ10gPSAnVGhpcyB0ZW1wbGF0ZSBpcyBmb3IgZGlzcGxheSB0byB0aGUgdXNlciBhZnRlciB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQuIFRoaXMgdGVtcGxhdGUgZG9lcyBub3QgZWZmZWN0IGVtYWlscyBnZW5lcmF0ZWQgb3Igb3RoZXIgZm9ybSBkaXNwb3NpdGlvbnMgLS0geW91IHNldCB0aG9zZSB0ZW1wbGF0ZXMgKHdoZXJlIGFwcHJvcHJpYXRlKSBpbiB0aGUgJnF1b3Q7YWR2YW5jZWQmcXVvdDsgdGFiIGZvciB0aG9zZSBkaXNwb3NpdGlvbiBmaWVsZHMuJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX3BhZ2UnXSA9ICdEZXN0aW5hdGlvbiBQYWdlJzsKJGxhbmdbJ3RpdGxlX3JlcXVpcmVfZmllbGRuYW1lcyddID0gJ1JlcXVpcmUgRmllbGRuYW1lcyc7CiRsYW5nWyd0aXRsZV9yZXF1aXJlX2ZpZWxkbmFtZXNfbG9uZyddID0gJ1JlcXVpcmUgZmllbGRzIHRvIGhhdmUgYSBuYW1lPyc7CiRsYW5nWyd0aXRsZV91bmlxdWVfZmllbGRuYW1lcyddID0gJ1JlcXVpcmUgVW5pcXVlIEZpZWxkbmFtZXMnOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXNfbG9uZyddID0gJ1JlcXVpcmUgZmllbGRzIHRvIGhhdmUgdW5pcXVlIG5hbWVzPyc7CiRsYW5nWyd0aXRsZV9yZW9yZGVyX2Zvcm0nXSA9ICdSZW9yZGVyIEZpZWxkcyc7CiRsYW5nWyd0aXRsZV9sb2FkX3RlbXBsYXRlJ10gPSAnTG9hZCB0ZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9hZGRfYnV0dG9uX3RleHQnXSA9ICdBZGQgQnV0dG9uIHRleHQnOwokbGFuZ1sndGl0bGVfZGVsX2J1dHRvbl90ZXh0J10gPSAnRGVsZXRlIEJ1dHRvbiB0ZXh0JzsKJGxhbmdbJ3RpdGxlX3N0cmluZ19vcl9udW1iZXJfZXZhbCddID0gJ0ludGVycHJldCB2YXJpYWJsZXMgYXMgYmVpbmcgbnVtYmVycyBvciBzdHJpbmdzJzsKJGxhbmdbJ3RpdGxlX29yZGVyJ10gPSAnSW50ZXJwcmV0YXRpb24gT3JkZXInOwokbGFuZ1sndGl0bGVfb3JkZXJfaGVscCddID0gJ0lmIG1vcmUgdGhhbiBvbmUgQ29tcHV0ZWQgRmllbGQgZXhpc3RzLCB0aGV5IHdpbGwgYmUgY29tcHV0ZWQgZnJvbSBsb3dlc3Qgb3JkZXIgbnVtYmVyIHRvIGhpZ2hlc3Qgb3JkZXIgbnVtYmVyJzsKJGxhbmdbJ3RpdGxlX2NvbXB1dGVfdmFsdWUnXSA9ICdWYWx1ZSB0byBjb21wdXRlJzsKJGxhbmdbJ3RpdGxlX3N0cmluZyddID0gJ1N0cmluZyc7CiRsYW5nWyd0aXRsZV9udW1lcmljJ10gPSAnTnVtZXJpYyc7CiRsYW5nWydkZWZhdWx0X3RlbXBsYXRlJ10gPSAnRGVmYXVsdCBUZW1wbGF0ZSc7CiRsYW5nWyd0YWJsZV9sZWZ0X3RlbXBsYXRlJ10gPSAnVGFibGUgVGVtcGxhdGUsIFRpdGxlcyBvbiBsZWZ0JzsKJGxhbmdbJ3RhYmxlX3RvcF90ZW1wbGF0ZSddID0gJ1RhYmxlIFRlbXBsYXRlLCBUaXRsZSBvbiB0b3AnOwokbGFuZ1snZm9ybV90ZW1wbGF0ZV9uYW1lJ10gPSAnVGVtcGxhdGUgZnJvbSAlcyc7CiRsYW5nWyd0ZW1wbGF0ZV9hcmVfeW91X3N1cmUnXSA9ICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gb3ZlcndyaXRlIHlvdXIgdGVtcGxhdGUgd2l0aCB0aGUgc2VsZWN0ZWQgdGVtcGxhdGU/IChFdmVuIGlmIHlvdSBzYXkgT0ssIHlvdSB3aWxsIHN0aWxsIG5lZWQgdG8gc2F2ZSB0aGUgY2hhbmdlKSc7CiRsYW5nWyd0aXRsZV9iYWRfZnVuY3Rpb24nXSA9ICdFcnJvciB3aGVuIGNvbXB1dGluZyAmcXVvdDslcyZxdW90Oy4nOwokbGFuZ1snbm9fcmVmZXJyZXJfaW5mbyddID0gJ05vIEhUVFBfUkVGRVJFUiBpbmZvIGF2YWlsYWJsZSAocHJvYmFibHkgZHVlIHRvIHVzZSBvZiBVc2VyIEVtYWlsIFZhbGlkYXRpb24pJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcGFyYW1fZXJyb3InXSA9ICdWYWxpZGF0aW9uIFBhcmFtZXRlciBFcnJvci4gUGxlYXNlIG1ha2Ugc3VyZSB5b3UgY29weSB0aGUgVVJMIGZyb20geW91ciBlbWFpbCBjb3JyZWN0bHkhJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVzcG9uc2VfZXJyb3InXSA9ICdWYWxpZGF0aW9uIFJlcHNvbnNlIEVycm9yLiBQbGVhc2UgbWFrZSBzdXJlIHlvdSBjb3B5IHRoZSBVUkwgZnJvbSB5b3VyIGVtYWlsIGNvcnJlY3RseSEnOwokbGFuZ1sndmFsaWRhdGlvbl9ub19maWVsZF9lcnJvciddID0gJ1ZhbGlkYXRpb24gUmVwc29uc2UgRXJyb3IuIE5vIGVtYWlsIHZhbGlkYXRpb24gZmllbGQgaW4gdGhpcyBmb3JtISc7CiRsYW5nWyd1cGdyYWRlMDN0bzA0J10gPSAnRm9ybSBUZW1wbGF0ZSB3YXMgdXBkYXRlZCBhdXRvbWF0aWNhbGx5IGFzIHBhcnQgb2YgdGhlIHZlcnNpb24gMC4zIHRvIHZlcnNpb24gMC40IHVwZ3JhZGUuIFlvdSBtYXkgbmVlZCB0byBtYWtlIHNvbWUgZml4ZXMuIElmIHlvdSYjMDM5O3JlIHVzaW5nIHRoZSBkZWZhdWx0IGZvcm0sIHNpbXBseSByZXBsYWNlIHRoaXMgdGVtcGxhdGUgd2l0aCAmcXVvdDtkZWZhdWx0JnF1b3Q7IHVzaW5nIHRoZSBwdWxsZG93biBhYm92ZS4nOwokbGFuZ1snYWRtaW5kZXNjJ10gPSAnQWRkLCBlZGl0IGFuZCBtYW5hZ2UgaW50ZXJhY3RpdmUgRm9ybXMnOwokbGFuZ1snb3BlcmF0b3JzX2hlbHAnXSA9ICdJZiB5b3UgdXNlIFN0cmluZyBldmFsdWF0aW9uLCB0aGUgb25seSBvcGVyYXRpb24gYXZhaWxhYmxlIGlzIGNvbmNhdGVuYXRpb24gKCspLCB3aGlsZSBpZiB5b3UgdXNlIE51bWJlciBldmFsdWF0aW9uIHlvdSBoYXZlIGJhc2ljLCB2ZXJ5IHNpbXBsZSBtYXRoICgsICssIC0sICosIC8sICkuJzsKJGxhbmdbJ2RhdGVfamFudWFyeSddID0gJ2xlZG5hJzsKJGxhbmdbJ2RhdGVfZmVicnVhcnknXSA9ICcmdWFjdXRlO25vcmEnOwokbGFuZ1snZGF0ZV9tYXJjaCddID0gJ2LFmWV6bmEnOwokbGFuZ1snZGF0ZV9hcHJpbCddID0gJ2R1Ym5hJzsKJGxhbmdbJ2RhdGVfbWF5J10gPSAna3bEm3RuYSc7CiRsYW5nWydkYXRlX2p1bmUnXSA9ICfEjWVydm5hJzsKJGxhbmdbJ2RhdGVfanVseSddID0gJ8SNZXJ2ZW5jZSc7CiRsYW5nWydkYXRlX2F1Z3VzdCddID0gJ3NycG5hJzsKJGxhbmdbJ2RhdGVfc2VwdGVtYmVyJ10gPSAneiZhYWN1dGU7xZkmaWFjdXRlOyc7CiRsYW5nWydkYXRlX29jdG9iZXInXSA9ICfFmSZpYWN1dGU7am5hJzsKJGxhbmdbJ2RhdGVfbm92ZW1iZXInXSA9ICdsaXN0b3BhZHUnOwokbGFuZ1snZGF0ZV9kZWNlbWJlciddID0gJ3Byb3NpbmNlJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3InXSA9ICdTb3JyeSEgVGhlcmUgd2FzIGFuIGVycm9yIGhhbmRsaW5nIHlvdXIgZm9ybSBzdWJtaXNzaW9uLic7CiRsYW5nWydzdWJtaXRfZXJyb3InXSA9ICdGb3JtQnVpbGRlciBzdWJtaXQgZXJyb3I6ICVzJzsKJGxhbmdbJ3VwbG9hZHNfZXJyb3InXSA9ICdFcnJvciBjb21taXR0aW5nIGZpbGUgdG8gdGhlIHVwbG9hZHMgbW9kdWxlOiAlcyc7CiRsYW5nWydub3VwbG9hZHNfZXJyb3InXSA9ICdDb3VsZCBub3QgZmluZCB0aGUgdXBsb2FkcyBtb2R1bGUnOwokbGFuZ1sndXBsb2FkX2F0dGFjaF9lcnJvciddID0gJ1VwbG9hZC9BdHRhY2htZW50IGVycm9yIG9uIGZpbGUgJXMgKHRtcF9uYW1lOiAlcywgb2YgdHlwZSAlcyknOwokbGFuZ1snc3VibWlzc2lvbl9lcnJvcl9maWxlX2xvY2snXSA9ICdFcnJvci4gVW5hYmxlIHRvIG9idGFpbiBsb2NrIGZvciBmaWxlLic7CiRsYW5nWydlbWFpbF9kZWZhdWx0X3RlbXBsYXRlJ10gPSAnRm9ybUJ1aWxkZXIgU3VibWlzc2lvbic7CiRsYW5nWydlbWFpbF90ZW1wbGF0ZV9ub3Rfc2V0J10gPSAnPGJyLz5FbWFpbCBUZW1wbGF0ZSBub3QgeWV0IHNldCEnOwokbGFuZ1snbWlzc2luZ19jbXNfbWFpbGVyJ10gPSAnRm9ybUJ1aWxkZXI6IENhbm5vdCBmaW5kIHJlcXVpcmVkIG1vZHVsZSBDTVNNYWlsZXIhJzsKJGxhbmdbJ3VzZXJfYXBwcm92ZWRfc3VibWlzc2lvbiddID0gJ1VzZXIgYXBwcm92ZWQgc3VibWlzc2lvbiAlcyBmcm9tICVzJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXSA9ICdFdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddID0gJ0V2ZW50IHRyaWdnZXJlZCBpZiB0aGVyZSBpcyBhbiBlcnJvciB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXSA9ICdFdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgZGlzcGxheWVkJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXSA9ICc8cD5FdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkLjwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBUaGUgZm9ybSBuYW1lIChzdHJpbmcpPC9saT4NCjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gVGhlIGludGVybmFsIGZvcm0gaWQgKGludCk8L2xpPg0KPGxpPjxlbT52YWx1ZV88bmFtZT48L2VtPiAtIFN1cHBseSBhIGRlZmF1bHQgdmFsdWUgdG8gYSBmaWVsZCB3aXRoIHRoZSBzcGVjaWZpZWQgbmFtZS48L2xpPg0KPC91bD4gJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddID0gJzxwPkV2ZW50IHRyaWdnZXJlZCBpZiB0aGVyZSBpcyBhbiBlcnJvciB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQ8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gVGhlIGZvcm0gbmFtZSAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4NCjxsaT48ZW0+ZXJyb3I8L2VtPiAtIEEgbGlzdCBvZiBhbGwga25vd24gZXJyb3JzIChzdHJpbmcpPC9saT4NCjwvdWw+ICc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtRGlzcGxheSddID0gJzxwPkV2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBkaXNwbGF5ZWQ8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gVGhlIGZvcm0gbmFtZSAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4NCjwvdWw+ICc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfcmVzcG9uc2VfaWQnXSA9ICdSZXNwb25zZSBJRC4gVXNlZCBieSBGb3JtQnJvd3Nlcic7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfcGFzc2VkX2Zyb21fdGFnJ10gPSAnRGVmYXVsdCBmaWVsZCB2YWx1ZXM7IHNlZSBtb2R1bGUgaGVscCc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZmllbGRfaWQnXSA9ICdGaWVsZCBJRCBmb3IgaW50ZXJuYWwgb3BlcmF0aW9ucyc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZm9ybV9uYW1lJ10gPSAnRm9ybSBOYW1lJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19mb3JtX2lkJ10gPSAnRm9ybSBJRCBmb3IgaW50ZXJuYWwgb3BlcmF0aW9ucyc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZ2VuZXJhbCddID0gJ0dlbmVyYWwgcGFyYW1ldGVycyBmb3IgaW50ZXJuYWwgb3BlcmF0aW9ucyc7CiRsYW5nWyd0ZW1wbGF0ZV92YXJpYWJsZV9oZWxwJ10gPSAnPGgzPkZvcm0gVGVtcGxhdGUgVmFyaWFibGVzPC9oMz4NCjxwPllvdSBjYW4gZWRpdCBpdCB0byBtYWtlIHlvdXIgZm9ybSBsYXlvdXQgbG9vayBhbnkgd2F5IHlvdSYjMDM5O2QgbGlrZS4NCiAgIFRvIG1ha2UgdGhlIGZvcm0gd29yaywgeW91JiMwMzk7bGwgbmVlZCB0byBhbHdheXMgaW5jbHVkZSB0aGUgeyRmYl9oaWRkZW59IGFuZCB7JHN1Ym1pdH0NCiAgIHRhZ3MuPC9wPg0KDQo8cD5Zb3UgY2FuIGFjY2VzcyB5b3VyIGZvcm0gZmllbGRzIGVpdGhlciB1c2luZyB0aGUgJGZpZWxkcyBhcnJheSBvciBieSBkaXJlY3RseSBhY2Nlc3NpbmcgZmllbGRzIGJ5IHRoZWlyIG5hbWVzIChlLmcuLCB7JG15ZmllbGQtPmlucHV0fSApPC9wPg0KDQoNCjxwPkVhY2ggZmllbGQgaGFzIHRoZSBmb2xsb3dpbmcgYXR0cmlidXRlczo8L3A+DQo8dGFibGU+DQo8dHI+PHRoPkZpZWxkPC90aD48dGg+VmFsdWU8L3RoPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5kaXNwbGF5PC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgc2hvdWxkIGJlIGRpc3BsYXllZCwgMCBvdGhlcndpc2U8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5yZXF1aXJlZDwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIGlzIHJlcXVpcmVkLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPnJlcXVpcmVkX3N5bWJvbDwvdGQ+PHRkPnRoZSBzeW1ib2wgZm9yIHJlcXVpcmVkIGZpZWxkczwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmNzc19jbGFzczwvdGQ+PHRkPnRoZSBDU1MgY2xhc3Mgc3BlY2lmaWVkIGZvciB0aGlzIGZpZWxkPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+dmFsaWQ8L3RkPjx0ZD4xIGlmIHRoaXMgZmllbGQgaGFzIHBhc3NlZCB2YWxpZGF0aW9uLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmVycm9yPC90ZD48dGQ+VGV4dCBvZiB0aGUgdmFsaWRhdGlvbiBwcm9ibGVtLCBpbiB0aGUgZXZlbnQgdGhhdCB0aGlzIGZpZWxkIGRpZCBub3QgdmFsaWRhdGU8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5oaWRlX25hbWU8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBuYW1lIHNob3VsZCBiZSBoaWRkZW4sIDAgb3RoZXJ3aXNlPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aGFzX2xhYmVsPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgdHlwZSBoYXMgYSBsYWJlbDwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPm5lZWRzX2RpdjwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIG5lZWRzIHRvIGJlIHdyYXBwZWQgaW4gYSBESVYgKG9yIHRhYmxlIHJvdywgaWYgdGhhdCYjMDM5O3MgdGhlIHdheSB5b3Ugc3dpbmcpPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+bmFtZTwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgbmFtZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmlucHV0PC90ZD48dGQ+dGhlIGZpZWxkJiMwMzk7cyBpbnB1dCBjb250cm9sIChlLmcuLCB0aGUgaW5wdXQgZmllbGQgaXRzZWxmKTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPm9wPC90ZD48dGQ+YSBjb250cm9sIGJ1dHRvbiBhc3NvY2lhdGVkIHdpdGggdGhlIGZpZWxkIGlmIGFwcGxpY2FibGUgKGUuZy4sIHRoZSBkZWxldGUgYnV0dG9uIGZvciBleHBhbmRhYmxlIHRleHQgaW5wdXQpPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aW5wdXRfaWQ8L3RkPjx0ZD50aGUgSUQgb2YgdGhlIGZpZWxkJiMwMzk7cyBpbnB1dCAodXNlZnVsIGZvciA8bGFiZWwgZm9yPSZxdW90OyZxdW90Oz4pPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+dHlwZTwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgZGF0YSB0eXBlPC90ZD48L3RyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCjx0cj48dGQ+ZmllbGQtPm11bHRpcGxlX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQtPmlucHV0IGlzIGFjdHVhbGx5IGEgY29sbGVjdGlvbiBvZiBjb250cm9sczwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmxhYmVsX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgY29sbGVjdGlvbiBvZiBjb250cm9scyBoYXMgc2VwYXJhdGUgbGFiZWxzIGZvciBlYWNoIGNvbnRyb2w8L3RkPjwvdHI+DQo8L3RhYmxlPg0KDQo8cD5JbiBjZXJ0YWluIGNhc2VzLCBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYW4gYXJyYXkgb2Ygb2JqZWN0cyByYXRoZXIgdGhhbiBhbiBpbnB1dC4gVGhpcyBoYXBwZW5zLCBmb3IgZXhhbXBsZSwgaW4gQ2hlY2tCb3hHcm91cHMgb3IgUmFkaW9CdXR0b25Hcm91cHMuIEZvciB0aGVtLCB5b3UgY2FuIGl0ZXJhdGUgdGhyb3VnaCBmaWVsZC0+aW5wdXQtPm5hbWUgYW5kIGZpZWxkLT5pbnB1dC0+aW5wdXRzLjwvcD4NCiAgICANCjxwPkFkZGl0aW9uYWwgc21hcnR5IHZhcmlhYmxlcyB0aGF0IHlvdSBjYW4gdXNlIGluY2x1ZGU6PC9wPg0KPHRhYmxlPg0KPHRyPjx0aD5WYXJpYWJsZTwvdGg+PHRoPlZhbHVlPC90aD48L3RyPg0KPHRyPjx0ZD50b3RhbF9wYWdlczwvdGQ+PHRkPm51bWJlciBvZiBwYWdlcyBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+dGhpc19wYWdlPC90ZD48dGQ+bnVtYmVyIGZvIHRoZSBjdXJyZW50IHBhZ2UgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPnRpdGxlX3BhZ2VfeF9vZl95PC90ZD48dGQ+ZGlzcGxheXMgJnF1b3Q7cGFnZSB4IG9mIHkmcXVvdDsgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPmNzc19jbGFzczwvdGQ+PHRkPkNTUyBDbGFzcyBmb3IgdGhlIGZvcm08L3RkPjwvdHI+DQo8dHI+PHRkPmZvcm1fbmFtZTwvdGQ+PHRkPkZvcm0gbmFtZTwvdGQ+PC90cj4NCjx0cj48dGQ+Zm9ybV9pZDwvdGQ+PHRkPkZvcm0gZGF0YWJhc2UgSUQ8L3RkPjwvdHI+DQo8dHI+PHRkPnByZXY8L3RkPjx0ZD4mcXVvdDtCYWNrJnF1b3Q7IGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD5zdWJtaXQ8L3RkPjx0ZD4mcXVvdDtDb250aW51ZSZxdW90OyBvciAmcXVvdDtTdWJtaXQmcXVvdDsgYnV0dG9uIGZvciBtdWx0aXBhcnQgZm9ybXMsIGFkanVzdHMgYXV0b21hdGljYWxseTwvdGQ+PC90cj4NCjwvdGFibGU+DQo8cD5EdW5ubyB3aHkgeW91JiMwMzk7ZCB3YW50IHNvbWUgb2YgdGhvc2UsIGJ1dCB0aGVyZSB5b3UgZ28uLi48L3A+DQonOwokbGFuZ1sncG9zdF9pbnN0YWxsJ10gPSAnPHA+TWFrZSBzdXJlIHRvIHNldCB0aGUgJnF1b3Q7TW9kaWZ5IEZvcm1zJnF1b3Q7IHBlcm1pc3Npb25zDQpvbiB1c2VycyB3aG8gd2lsbCBiZSBhZG1pbmlzdGVyaW5nIGZlZWRiYWNrIGZvcm1zLiBBbHNvLCBpZiB5b3UmIzAzOTtsbCBiZSBlbWFpbGluZyBmb3JtDQpyZXN1bHRzLCBiZSBzdXJlIHRvIHVwZGF0ZSB0aGUgQ29uZmlndXJhdGlvbiBhcHByb3ByaWF0ZWx5LjwvcD4NCjxwPlBsZWFzZSBiZSBhd2FyZSB0aGF0IGEgZmVlZGJhY2sgZm9ybSBzaG91bGQgbm90IGJlIGFjdGl2ZSAoZS5nLiwgdXNhYmxlIGJ5IHRoZSBwdWJsaWMpIHdoaWxlDQp5b3UgYXJlIHN0aWxsIGVkaXRpbmcgdGhlIGZvcm0uIFlvdSBzaG91bGQgY3JlYXRlIHRoZSBmb3JtLCBhbmQgcGxhY2UgdGhlIHRhZyBpbnRvIGFuIGFjdGl2ZQ0KY29udGVudCBwYWdlIG9ubHkgd2hlbiB5b3UgaGF2ZSBmaW5pc2hlZCBlZGl0aW5nLiBPdGhlcndpc2UsIGVycm9uZW91cyByZXN1bHRzIGNvdWxkIGJlIHJldHVybmVkLjwvcD4NCjxwPkFkZGl0aW9uYWxseSwgdGhpcyB2ZXJzaW9uIGRvZXMgbm90IHN1cHBvcnQgcGFyYWxsZWwgZWRpdGluZyBvZiBmb3Jtcy4gUGxlYXNlIHRha2UgY2FyZSB0aGF0DQpvbmx5IG9uZSBhZG1pbiBpcyBlZGl0aW5nIGEgZ2l2ZW4gZm9ybSBhdCBhIGdpdmVuIHRpbWUuPC9wPic7CiRsYW5nWydoZWxwJ10gPSAnPGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+DQo8cD5UaGUgRm9ybSBCdWlsZGVyIE1vZHVsZSBhbGxvd3MgeW91IHRvIGNyZWF0ZSBmZWVkYmFjayBmb3JtcyAoaW4gZmFjdCwgaXQmIzAzOTtzIGEgcmVwbGFjZW1lbnQgb2YgdGhlIG9yaWdpbmFsIEZlZWRiYWNrIEZvcm0gbW9kdWxlKSwgd2l0aCB0aGUgYWRkZWQgcG93ZXIgb2YgZGF0YWJhc2Ugc3RvcmFnZS4gV2l0aCBpdHMgY29tcGFuaW9uIG1vZHVsZSBGb3JtIEJyb3dzZXIsIHlvdSBjYW4gdXNlIGl0IHRvIGNyZWF0ZSBzaW1wbGUgZGF0YWJhc2UgYXBwbGljYXRpb25zLjwvcD4NCjxwPlRoZSBmb3JtcyBjcmVhdGVkIHVzaW5nIHRoZSBGb3JtIEJ1aWxkZXIgbWF5IGJlIGluc2VydGVkDQppbnRvIHRlbXBsYXRlcyBhbmQvb3IgY29udGVudCBwYWdlcy4gRm9ybXMgbWF5IGNvbnRhaW4gbWFueSBraW5kcyBvZiBpbnB1dHMsIGFuZCBtYXkgaGF2ZQ0KdmFsaWRhdGlvbiBhcHBsaWVkIHRvIHRoZXNlIGlucHV0cy4gVGhlIHJlc3VsdHMgb2YgdGhlc2UgZm9ybXMgbWF5IGJlIGhhbmRsZWQgaW4gYSB2YXJpZXR5IG9mIHdheXMuPC9wPg0KDQo8aDM+SG93IERvIEkgVXNlIGl0PzwvaDM+DQo8UD5JbnN0YWxsIGl0LCBhbmQgcG9rZSBhcm91bmQgdGhlIG1lbnVzLiBQbGF5IHdpdGggaXQuIFRyeSBjcmVhdGluZyBmb3JtcywgYW5kIGFkZGluZyB0aGVtIHRvIHlvdXIgY29udGVudC4NCklmIHlvdSBnZXQgc3R1Y2ssIGNoYXQgd2l0aCBtZSBvbiB0aGUgI2NtcyBJUkMgY2hhbm5lbCwgcG9zdCB0byB0aGUgZm9ydW0sIHNlbmQgbWUgZW1haWwsIG9yLCBpZiB5b3UmIzAzOTtyZQ0KcmVhbGx5IGRlc3BlcmF0ZSwgcmVhZCB0aGUgcmVzdCBvZiB0aGlzIHBhZ2UuPC9QPg0KDQo8aDM+SG93IERvIEkgQ3JlYXRlIGEgRm9ybTwvaDM+DQo8cD5JbiB0aGUgQ01TIEFkbWluIE1lbnUsIHlvdSBzaG91bGQgZ2V0IGEgbmV3IG1lbnUgaXRlbSBjYWxsZWQgRm9ybUJ1aWxkZXIuIENsaWNrIG9uIHRoaXMuIE9uIHRoZSBwYWdlDQp0aGF0IGdldHMgc2hvd24sIHRoZXJlIGFyZSBvcHRpb25zIChhdCB0aGUgYm90dG9tIG9mIHRoZSBsaXN0IG9mIEZvcm1zKSB0byBBZGQgYSBOZXcgRm9ybSBvciBNb2RpZnkNCkNvbmZpZ3VyYXRpb24uPC9wPg0KDQo8aDM+QWRkaW5nIGEgRm9ybSB0byBhIFBhZ2U8L2gzPg0KPHA+SW4gdGhlIG1haW4gRm9ybUJ1aWxkZXIgYWRtaW4gcGFnZSwgeW91IGNhbiBzZWUgYW4gZXhhbXBsZSBvZiB0aGUgdGFnIHVzZWQgdG8gZGlzcGxheSBlYWNoIGZvcm0uIEl0IGxvb2tzDQpzb21ldGhpbmcgbGlrZSB7Y21zX21vZHVsZSBtb2R1bGU9JiMwMzk7Rm9ybUJ1aWxkZXImIzAzOTsgZm9ybT0mIzAzOTtzYW1wbGVfZm9ybSYjMDM5O308L3A+DQo8cD5CeSBjb3B5aW5nIHRoaXMgdGFnIGludG8gdGhlIGNvbnRlbnQgb2YgYSBwYWdlLCBvciBpbnRvIGEgdGVtcGxhdGUsIHdpbGwgY2F1c2UgdGhhdCBmb3JtIHRvIGJlIGRpc3BsYXllZC4NCkluIHRoZW9yeSwgeW91IGNhbiBoYXZlIG11bHRpcGxlIGZvcm1zIG9uIGEgcGFnZSBpZiB5b3UgcmVhbGx5IHdhbnQgdG8uIEJlIGNhcmVmdWwgd2hlbiBwYXN0aW5nIHRoZSB0YWcNCmludG8gYSBwYWdlJiMwMzk7cyBjb250ZW50IGlmIHlvdSB1c2UgYSBXWVNJV1lHIGVkaXRvciBzdWNoIGFzIFRpbnlNQ0UsIEZDS0VkaXQsIG9yIEhUTUxBcmVhLiBUaGVzZSBlZGl0b3JzIG1heSBzdGVhbHRoaWx5DQpjaGFuZ2UgdGhlIHF1b3RlIG1hcmtzICgmcXVvdDspIGludG8gSFRNTCBlbnRpdGllcyAoJmFtcDtxdW90OyksIGFuZCB0aGUgZm9ybXMgd2lsbCBub3Qgc2hvdyB1cC4gVHJ5IHVzaW5nDQpzaW5nbGUgcXVvdGVzICgmIzAzOTspIG9yIGVkaXRpbmcgdGhlIEhUTUwgZGlyZWN0bHkuPC9wPg0KDQo8aDM+V29ya2luZyB3aXRoIEZvcm1zPC9oMz4NCjxwPkJ5IGNsaWNraW5nIG9uIGEgRm9ybSYjMDM5O3MgbmFtZSwgeW91IGVudGVyIHRoZSBGb3JtIEVkaXQgcGFnZS4gVGhlcmUgYXJlIHNldmVyYWwgdGFicywgd2hpY2ggYXJlIGRlc2NyaWJlZCBiZWxvdzo8L3A+DQo8aDQ+TWFpbjwvaDQ+DQo8cD5UaGlzIGlzIHRoZSBtYWluIHBsYWNlIHlvdSYjMDM5O2xsIHdvcmsgb24geW91ciBmb3JtLiBIZXJlLCB5b3UgZ2l2ZSBpdCBhIG5hbWUsIGFuIGFsaWFzICh3aGljaCBpcyB1c2VkIHRvIGlkZW50aWZ5IGl0IGZvciBwbGFjaW5nIGl0IGluIGEgcGFnZSBvciB0ZW1wbGF0ZSksIGFuZCwgb3B0aW9uYWxseSwgYSBDU1MgY2xhc3Mgd2l0aCB3aGljaCB0byB3cmFwIHRoZSB3aG9sZSB0aGluZy48L3A+DQo8cD5CZWxvdyB0aGlzLCBpZiB5b3UgaGF2ZSBpdCBlbmFibGVkLCBpcyB0aGUgJnF1b3Q7ZmFzdCBmaWVsZCBhZGRlciZxdW90OyBwdWxsZG93biwgdGhhdCBsZXRzIHlvdSBxdWlja2x5IGFkZCBhIGZpZWxkIHRvIHRoZSBlbmQgb2YgeW91ciBmb3JtIGJ5IHNlbGVjdGluZyB0aGUgZmllbGQgdHlwZS48L3A+DQo8cD5CZWxvdyB0aGlzIGlzIHRoZSBsaXN0IG9mIGZpZWxkcyB0aGF0IG1ha2UgdXAgeW91ciBmb3JtLiBNb3JlIGRldGFpbCBvbiB0aGlzIGlzIGRlc2NyaWJlZCBiZWxvdy48L3A+DQo8aDQ+Rm9ybSBTdWJtaXNzaW9uPC9oND4NCjxwPldoZW4gdGhlIGZvcm0gaXMgc3VibWl0dGVkLCB5b3UgY2FuIGVpdGhlciByZWRpcmVjdCB0aGUgdXNlciB0byBhbm90aGVyIHBhZ2Ugb2YgeW91ciBzaXRlLCBvciB5b3UgY2FuIHByZXNlbnQgdGhlIHVzZXIgc29tZSBtZXNzYWdlICh3aGljaCBjYW4gY29udGFpbiBhbnkgb2YgdGhlIHVzZXImIzAzOTtzIGZvcm0gZW50cmllcywgb3IganVzdCBzdGF0aWMgdGV4dCkuIEluIHRoaXMgdGFiLCB5b3Ugc2VsZWN0IHdoaWNoIG9mIHRoZXNlIGFwcHJvYWNoZXMgeW91IHdpc2ggdG8gdXNlLCBhbmQsIGlmIHlvdSBjaG9zZSByZWRpcmVjdGlvbiwgaXQgYWxsb3dzIHlvdSB0byBwaWNrIHRoZSBwYWdlIHRvIHJlZGlyZWN0IHVzZXJzIHRvIGFmdGVyIGEgc3VjY2Vzc2Z1bCBmb3JtIHN1Ym1pc3Npb24uPC9wPg0KPHA+QWxzbyBvbiB0aGlzIHBhZ2UsIHlvdSBjYW4gc3BlY2lmeSB0aGUgbGFiZWxzIG9mIHZhcmlvdXMgc3VibWlzc2lvbiBidXR0b25zICgmcXVvdDtQcmV2aW91cyZxdW90OywgJnF1b3Q7bmV4dCZxdW90OywgJnF1b3Q7c3VibWl0JnF1b3Q7KS4gWW91IGNhbiBhbHNvIG9wdCB0byBoYXZlIHNvbWUgSmF2YXNjcmlwdCBhZGRlZCB0byB0aGUgbGFzdCBwYWdlIG9mIGEgZm9ybSB0aGF0IHdpbGwgcHJldmVudCBtdWx0aXBsZSBzdWJtaXNzaW9ucyAodXNlZnVsIG9uIHNsb3cgc2VydmVycykuPC9wPg0KPGg0PkZvcm0gRGlzcGxheSBPcHRpb25zPC9oND4NCjxwPlRoaXMgdGFiIGFsbG93cyBmb3Igb3RoZXIgZm9ybSBjdXN0b21pemF0aW9ucywgbGlrZSB0aGUgc3ltYm9sIHRvIHNob3cgZm9yIHJlcXVpcmVkIGZpZWxkcy48L3A+DQo8aDQ+Q2FwdGNoYSBTZXR0aW5nczwvaDQ+DQo8cD5JZiB5b3UgaGF2ZSBpbnN0YWxsZWQgdGhlIENhcHRjaGEgbW9kdWxlLCB0aGlzIHRhYiBsZXRzIHlvdSBjb25maWd1cmUgdGhlIENhcHRjaGEgc2V0dGluZ3MgZm9yIHlvdXIgZm9ybS48L3A+DQo8aDQ+Rm9ybSBUZW1wbGF0ZTwvaDQ+DQo8cD5UaGlzIGlzIHdoZXJlIHlvdSBkbyB5b3VyIGN1c3RvbWl6YXRpb24gd29yayBvZiB5b3VyIGZvcm0mIzAzOTtzIFNtYXJ0eSBUZW1wbGF0ZS4gU2VlIHRoZSBzZWN0aW9uIGNhbGxlZCBGb3JtIFRlbXBsYXRlIFZhcmlhYmxlcyBiZWxvdy48L3A+DQo8cD5UaGUgZm9ybSBzaG91bGQgZGVmYXVsdCB0byBhIEN1c3RvbSB0ZW1wbGF0ZSB0aGF0IGRvY3VtZW50cyB0aGUgU21hcnR5IHRhZ3MgYXZhaWxhYmxlIHRvIHlvdS48L3A+DQo8cD5Vbmxlc3MgeW91JiMwMzk7cmUgYSBTbWFydHkgZXhwZXJ0LCB5b3UgcHJvYmFibHkgZG9uJiMwMzk7dCB3YW50IHRvIG1lc3MgYXJvdW5kIHdpdGggdGhpcy4gSWYgeW91IGFyZSBhIFNtYXJ0eSBleHBlcnQsIHRoaXMgaXMgd2hlcmUgeW91IGNhbiB1bmxlYXNoIHlvdXIgbWFnaWMuPC9wPg0KPGg0PlN1Ym1pc3Npb24gVGVtcGxhdGU8L2g0Pg0KPHA+SWYsIGluIHRoZSBGb3JtIFN1Ym1pc3Npb24gdGFiLCB5b3Ugc2VsZWN0ZWQgJiMwMzk7RGlzcGxheSAmcXVvdDtTdWJtaXNzaW9uIFRlbXBsYXRlJnF1b3Q7LCB0aGlzIGlzIHdoZXJlIHlvdSBjYW4gY3JlYXRlIHRoYXQgdGVtcGxhdGUuIFRoZXJlIGlzIGEgZGlzcGxheSBvZiB3aGljaCBzbWFydHkgdmFyaWFibGVzIGFyZSBhdmFpbGFibGUgdG8geW91LCBhbmQgYSBidXR0b24gdG8gZ2VuZXJhdGUgYSBzYW1wbGUgdGVtcGxhdGUuPC9wPg0KPHA+SWYgeW91JiMwMzk7cmUgYSBTbWFydHkgZXhwZXJ0LCB5b3UgY2FuIGRvIGFsbCBtYW5uZXIgb2YgY3JlYXRpdmUgYW5kIHBvd2VyZnVsIHRoaW5ncyBoZXJlLiBJZiB5b3UmIzAzOTtyZSBub3QgYSBTbWFydHkgZXhwZXJ0LCB5b3UgbWlnaHQganVzdCB3YW50IHRvIHVzZSB0aGUgZGVmYXVsdC4NCjwvcD4NCg0KPGgzPkFkZGluZyBGaWVsZHMgdG8geW91ciBGb3JtPC9oMz4NCjxwPlRoZSB0eXBlcyBvZiBmaWVsZHMgdGhhdCBhcmUgY3VycmVudGx5IHN1cHBvcnRlZCBmaXQgaW50byBmb3VyIGdyb3Vwczogc3RhbmRhcmQgaW5wdXQgZmllbGRzLCBkaXNwbGF5IGNvbnRyb2wgZmllbGRzLCBlbWFpbC1zcGVjaWZpYyBmaWVsZHMsIGFuZCBmb3JtIHJlc3VsdCBoYW5kbGluZyBmaWVsZHMgKGFsc28gY2FsbGVkIEZvcm0gRGlzcG9zaXRpb25zIGluIHBsYWNlcyk6PC9wPg0KPHVsPg0KPGxpPlN0YW5kYXJkIElucHV0IEZpZWxkcyAtIHRoZXNlIGFyZSBpbnB1dHMgdGhhdCBhbGxvdyBlbnRyeSBvZiB0eXBpY2FsIGZvcm0gZWxlbWVudHM7IHRleHQgaW5wdXRzLCByYWRpbyBidXR0b25zLCBldGMuPC9saT4NCjxsaT5EaXNwbGF5IENvbnRyb2wgRmllbGRzIC0gdGhlc2UgaW5wdXQgY29udHJvbCBob3cgdGhlIHVzZXIgd2lsbCBzZWUgdGhlIGRpc3BsYXkgb2YgdGhlIGZvcm07IHBhZ2UgYnJlYWtzLCBzdGF0aWMgdGV4dCwgZXRjLjwvbGk+DQo8bGk+RW1haWwtc3BlY2lmaWMgRmllbGRzIC0gc29tZSBmb3JtcyBnZW5lcmF0ZSBlbWFpbCwgYW5kIGVtYWlsLXNwZWNpZmljIGZpZWxkcyBjYW4gYWx0ZXIgYXR0cmlidXRlcyBvZiB0aGUgZW1haWxzIHNlbnQuPC9saT4NCjxsaT5Gb3JtIERpc3Bvc2l0aW9ucyAtIFRoZXNlIGRldGVybWluZSB3aGF0IGhhcHBlbnMgd2hlbiB0aGUgdXNlcg0Kc3VibWl0cyB0aGUgZm9ybTsgZm9yIGVhY2ggcmVzdWx0IGhhbmRsaW5nIGZpZWxkLCBzb21lIG1ldGhvZCBvZiB0cmFuc21pdHRpbmcsIHNhdmluZywgb3IgZW1haWxpbmcgdGhlDQpmb3JtIGNvbnRlbnRzIHRha2VzIHBsYWNlLiBBIGZvcm0gbWF5IGhhdmUgbXVsdGlwbGUgZm9ybSBkaXNwb3NpdGlvbnMuPC9saT4NCjwvdWw+DQo8cD5Gb3JtIGZpZWxkcyBhcmUgYXNzaWduZWQgbmFtZXMuIFRoZXNlIG5hbWVzIGlkZW50aWZ5IHRoZSBmaWVsZCwgbm90IG9ubHkgb24gdGhlIHNjcmVlbiBhcyBsYWJlbHMgZm9yIHRoZSB1c2VyLA0KYnV0IGluIHRoZSBkYXRhIHdoZW4gaXQmIzAzOTtzIHN1Ym1pdHRlZCBzbyB5b3Uga25vdyB3aGF0IHRoZSB1c2VyIGlzIHJlc3BvbmRpbmcgdG8uIFBocmFzaW5nIHRoZSBuYW1lIGxpa2UgYSBxdWVzdGlvbg0KaXMgYSBoYW5keSB3YXkgb2YgbWFraW5nIGl0IGNsZWFyIHRvIHRoZSB1c2VyIHdoYXQgaXMgZXhwZWN0ZWQuIFNpbWlsYXJseSwgbWFueSBmaWVsZHMgaGF2ZSBib3RoIE5hbWVzIGFuZCBWYWx1ZXMuDQpUaGUgTmFtZXMgYXJlIHdoYXQgZ2V0cyBzaG93biB0byB0aGUgdXNlcjsgdGhlIFZhbHVlIGlzIHdoYXQgZ2V0cyBzYXZlZCBvciB0cmFuc21pdHRlZCB3aGVuIHRoZSB1c2VyIHN1Ym1pdHMNCnRoZSBmb3JtLiBUaGUgVmFsdWVzIGFyZSBuZXZlciBzZWVuIGJ5IHRoZSB1c2VyLCBub3IgYXJlIHRoZXkgdmlzaWJsZSBpbiB0aGUgSFRNTCwgc28gaXQmIzAzOTtzIHNhZmUgdG8gdXNlIGZvcg0KZW1haWwgYWRkcmVzc2VzIGFuZCBzdWNoLjwvcD4NCjxwPlNvbWUgZmllbGRzIGNhbiBoYXZlIG11bHRpcGxlIHZhbHVlcywgb3IgbXVsdGlwbGUgbmFtZS92YWx1ZSBwYWlycy4gV2hlbiB5b3UgZmlyc3QgY3JlYXRlIHN1Y2ggYSBmaWVsZCwNCnRoZXJlIG1heSBub3QgYmUgc3VmZmljaWVudCBpbnB1dHMgZm9yIHlvdSB0byBzcGVjaWZ5IGFsbCB0aGUgdmFsdWVzIHlvdSB3YW50LiBUbyBnZXQgbW9yZSBzcGFjZSBmb3IgaW5wdXR0aW5nDQp0aGVzZSB2YWx1ZXMsIHVzZSB0aGUgYnV0dG9ucyBhdCB0aGUgYm90dG9tIG9mIHRoZSBwYWdlIGZvciBhZGRpbmcgb3B0aW9ucy48L3A+DQo8cD5GaWVsZHMgY2FuIGJlIGFzc2lnbmVkIHZhbGlkYXRpb24gcnVsZXMsIHdoaWNoIHZhcnkgYWNjb3JkaW5nIHRvIHRoZSB0eXBlIG9mIHRoZSBmaWVsZC4gVGhlc2UgcnVsZXMgaGVscA0KZW5zdXJlIHRoYXQgdGhlIHVzZXIgZW50ZXJzIHZhbGlkIGRhdGEuIFRoZXkgbWF5IGFsc28gYmUNCnNlcGFyYXRlbHkgbWFya2VkICZxdW90O1JlcXVpcmVkJnF1b3Q7LCB3aGljaCB3aWxsIGZvcmNlIHRoZSB1c2VyIHRvIGVudGVyIGEgcmVzcG9uc2UuPC9wPg0KPHA+RmllbGRzIGFsc28gbWF5IGJlIGFzc2lnbmVkIGEgQ1NTIGNsYXNzLiBUaGlzIHNpbXBseSB3cmFwcyB0aGUgaW5wdXQgaW4gYSBkaXYgd2l0aCB0aGF0IGNsYXNzLCBzbyBhcyB0byBhbGxvdw0KY3VzdG9taXplZCBsYXlvdXRzLiBUbyB1c2UgdGhpcyBlZmZlY3RpdmVseSwgeW91IG1heSBuZWVkIHRvICZxdW90O3ZpZXcgc291cmNlJnF1b3Q7IG9uIHRoZSBnZW5lcmF0ZWQgZm9ybSwgYW5kIHRoZW4NCndyaXRlIHlvdXIgQ1NTLjwvcD4NCjx1bD4NCjxsaT5TdGFuZGFyZCBJbnB1dHMNCjx1bD48bGk+VGV4dCBJbnB1dC4gVGhpcyBpcyBhIHN0YW5kYXJkIHRleHQgZmllbGQuIFlvdSBjYW4gbGltaXQgdGhlIGxlbmd0aCwgYW5kIGFwcGx5IHZhcmlvdXMgdmFsaWRhdGlvbg0KZnVuY3Rpb25zIHRvIHRoZSBmaWVsZC48L2xpPg0KPGxpPlRleHQgQXJlYS4gVGhpcyBpcyBhIGJpZywgZnJlZS1mb3JtIHRleHQgaW5wdXQgZmllbGQuPC9saT4NCjxsaT5DaGVja2JveC4gVGhpcyBpcyBhIHN0YW5kYXJkIGNoZWNrIGJveC48L2xpPg0KPGxpPkNoZWNrYm94IEdyb3VwLiBUaGlzIGlzIGEgY29sbGVjdGlvbiBvZiBjaGVja2JveGVzLiBUaGUgb25seSBkaWZmZXJlbmNlIGJldHdlZW4gdGhpcyBpbnB1dCBhbmQgYQ0KY29sbGVjdGlvbiBvZiBDaGVja2JveCBpbnB1dHMgaXMgdGhhdCB0aGV5IGFyZSBwcmVzZW50ZWQgYXMgYSBncm91cCwgd2l0aCBvbmUgbmFtZSwgYW5kIGNhbiBoYXZlIGEgdmFsaWRhdGlvbiBmdW5jdGlvbiByZXF1aXJpbmcgdGhhdCB5b3UgY2hlY2sgb25lIG9yIG1vcmUgb2YgdGhlIGJveGVzIGluIHRoZSBncm91cC48L2xpPg0KPGxpPlJhZGlvIEdyb3VwLiBUaGlzIGlzIGEgY29sbGVjdGlvbiBvZiByYWRpbyBidXR0b25zLiBPbmx5IG9uZSBvZiB0aGUgZ3JvdXAgbWF5IGJlIHNlbGVjdGVkIGJ5IHRoZSB1c2VyLjwvbGk+DQo8bGk+UHVsbGRvd24uIFRoaXMgaXMgYSBzdGFuZGFyZCBwdWxsZG93biBtZW51LiBJdCYjMDM5O3MgcmVhbGx5IGNvbmNlcHR1YWxseSB0aGUgc2FtZSB0aGluZyBhcyBhIHJhZGlvIGJ1dHRvbg0KZ3JvdXAsIGJ1dCBpcyBiZXR0ZXIgd2hlbiB0aGVyZSBhcmUgYSBsYXJnZSBudW1iZXIgb2Ygb3B0aW9ucy48L2xpPg0KPGxpPk11bHRpc2VsZWN0LiBUaGlzIGlzIGEgbXVsdGktc2VsZWN0IGZpZWxkLiBJdCYjMDM5O3MgcmVhbGx5IGNvbmNlcHR1YWxseSB0aGUgc2FtZSB0aGluZyBhcyBhIGNoZWNrYm94IGJ1dHRvbg0KZ3JvdXAsIGJ1dCBpcyBiZXR0ZXIgd2hlbiB0aGVyZSBhcmUgYSBsYXJnZSBudW1iZXIgb2Ygb3B0aW9ucywgYXMgeW91IGNhbiBsaW1pdCB0aGUgbnVtYmVyIGRpc3BsYXllZCBvbiB0aGUgc2NyZWVuIGF0IGFueSBvbmUgdGltZS48L2xpPg0KPGxpPlN0YXRlLiBUaGlzIGlzIGEgcHVsbGRvd24gbGlzdGluZyB0aGUgU3RhdGVzIG9mIHRoZSBVLlMuPC9saT4NCjxsaT5Db3VudHJpZXMuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBDb3VudHJpZXMgb2YgdGhlIHdvcmxkIChhcyBvZiBKdWx5IDIwMDUpLjwvbGk+DQo8bGk+RGF0ZSBQaWNrZXIuIFRoaXMgaXMgYSB0cmlwbGUgcHVsbGRvd24gYWxsb3dpbmcgdGhlIHVzZXIgdG8gc2VsZWN0IGEgZGF0ZS48L2xpPg0KPGxpPlRpbWUgUGlja2VyLiBUaGlzIGlzIGEgc2V0IG9mIHB1bGxkb3ducyBhbGxvd2luZyB0aGUgdXNlciB0byBzZWxlY3QgYSB0aW1lICh1c2luZyAxMiBvciAyNCBob3VyIGNsb2NrKS48L2xpPg0KPGxpPkZpbGUgVXBsb2FkLiBUaGlzIGlzIGEgZmlsZSB1cGxvYWQgZmllbGQuPC9saT4NCjxsaT5MaW5rIChVc2VyIEVudGVyZWQpLiBUaGlzIGNyZWF0ZXMgYSBkb3VibGUgaW5wdXQgZmllbGQgZm9yIGdldHRpbmcgYSBsaW5rIFVSTCBhbmQgbGluayB0aXRsZS48L2xpPg0KPGxpPlRleHQgRmllbGQgKE11bHRpcGxlKS4gVGhpcyBmaWVsZCBjcmVhdGVzIG9uZSBvciBtb3JlIHRleHQgaW5wdXRzIHdpdGggYWRkIGFuZCBkZWxldGUgYnV0dG9ucywgZWZmZWN0aXZlbHkgZ2l2aW5nIHRoZSBlbmQgdXNlciBhIHdheSBvZiBjcmVhdGluZyB2YXJpYWJsZS1sZW5ndGggbGlzdHMuPC9saT4NCjwvdWw+PC9saT4NCg0KPGxpPkVtYWlsLXNwZWNpZmljIElucHV0cw0KPHVsPjxsaT5FbWFpbCBGcm9tIEFkZHJlc3MgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgdGhlaXIgZW1haWwgYWRkcmVzcy4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIGFkZHJlc3MgaW4gdGhlICZxdW90O0Zyb20mcXVvdDsgZmllbGQuPC9saT4NCjxsaT5FbWFpbCBGcm9tIE5hbWUgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgdGhlaXIgbmFtZS4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIG5hbWUgaW4gdGhlICZxdW90O0Zyb20mcXVvdDsgZmllbGQuPC9saT4NCjxsaT5FbWFpbCBTdWJqZWN0IEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIGEgc3ViamVjdCBmb3IgdGhlaXIgZW1haWwuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBpbiB0aGUgJnF1b3Q7U3ViamVjdCZxdW90OyBmaWVsZC4gVGhpcyBtYXkgY2F1c2UgdHJvdWJsZSB3aXRoIGNlcnRhaW4gZGlzcG9zaXRpb25zIHRoYXQgd2FudCB0byBjb250cm9sIHRoZSBFbWFpbCBTdWJqZWN0LCBzbyB1c2UgaXQgd2l0aCBjYXV0aW9uLjwvbGk+DQo8L3VsPjwvbGk+DQoNCjxsaT5EaXNwbGF5IENvbnRyb2wgRmllbGRzPHVsPg0KPGxpPi1QYWdlIEJyZWFrLiBUaGlzIGFsbG93cyB5b3UgdG8gc3BsaXQgeW91ciBmZWVkYmFjayBmb3JtIGludG8gbXVsdGlwbGUgcGFnZXMuIEVhY2ggcGFnZSBpcw0KaW5kZXBlbmRlbnRseSB2YWxpZGF0ZWQuIFRoaXMgaXMgZ29vZCBmb3IgYXBwbGljYXRpb25zIGxpa2Ugb25saW5lIHN1cnZleXMuPC9saT4NCjxsaT4tRmllbGRzZXQgU3RhcnQuIENvbWJpbmVkIHdpdGggRmllbGRzZXQgRW5kLCB0aGlzIGFsbG93cyB5b3UgdG8gZ3JvdXAgdmFyaW91cyBmaWVsZHMgd2l0aGluIHlvdXIgZm9ybS4gVXNlIHRoaXMgdG8gc3RhcnQgYSBnaXZlbiBncm91cGluZy48L2xpPg0KPGxpPi1GaWVsZHNldCBFbmQuIENvbWJpbmVkIHdpdGggRmllbGRzZXQgU3RhcnQsIHRoaXMgYWxsb3dzIHlvdSB0byBncm91cCB2YXJpb3VzIGZpZWxkcyB3aXRoaW4geW91ciBmb3JtLiBVc2UgdGhpcyB0byBlbmQgYSBnaXZlbiBncm91cGluZy48L2xpPg0KPGxpPi1IaWRkZW4gRmllbGQuIFRoaXMgYWxsb3dzIHlvdSB0byBlbWJlZCBhIGhpZGRlbiBmaWVsZCBpbiB5b3VyIGZvcm0uPC9saT4NCjxsaT4tU3RhdGljIFRleHQuIFRoaXMgYWxsb3dzIHlvdSB0byBwdXQgdGV4dCBvciBhIGxhYmVsIGluIHRoZSBtaWRkbGUgb2YgeW91ciBmb3JtLiBUaGlzIGlzIHVzZWZ1bCBmb3IgZ2l2aW5nIGFkZGl0aW9uYWwgaGVscCB0ZXh0LCBlc3BlY2lhbGx5IGlmIHlvdSYjMDM5O3JlIG5vdCB1c2luZyBhIEN1c3RvbSBUZW1wbGF0ZSB0byByZW5kZXIgeW91ciBmb3JtLjwvbGk+DQo8bGk+LVN0YXRpYyBMaW5rLiBUaGlzIGFsbG93cyB5b3UgdG8gcHV0IGEgbGluayB0byBhIGdpdmVuIHBhZ2UgaW50byB5b3VyIGZvcm0uIE9wdGlvbmFsbHksIHlvdSBjYW4gaGF2ZSBpdCBhdXRvcG9wdWxhdGUgd2l0aCB0aGUgcGFnZSB3aGVyZSB0aGUgZm9ybSBpcyBlbWJlZGRlZCAodXNlZnVsIGlmIHlvdVwmIzAzOTtyZSBzZW5kaW5nIHJlc3VsdHMgdmlhIGVtYWlsKS48L2xpPg0KPGxpPi1Db21wdXRlZCBGaWVsZC4gVGhpcyBhbGxvd3MgeW91IHRvIGVtYmVkIGEgY29tcHV0ZWQgZmllbGQgaW4geW91ciBmb3JtLiBJdCBpcyBub3QgdmlzaWJsZSB0byB0aGUgdXNlciB1bnRpbCBhZnRlciB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQuIEl0IGFsbG93cyB5b3UgdG8gZG8gc2ltcGxlIGFyaXRobWV0aWMgb3Igc3RyaW5nIGNvbmNhdGVuYXRpb24uPC9saT4NCjwvdWw+PC9saT4NCg0KPGxpPkZvcm0gSGFuZGxpbmcgSW5wdXRzIChEaXNwb3NpdGlvbnMpDQo8dWw+PGxpPipDYWxsIGEgVXNlciBEZWZpbmVkIFRhZyBXaXRoIHRoZSBGb3JtIFJlc3VsdHMuIFRoaXMgc3VibWl0cyBhbGwgdGhlIGZvcm0gcmVzdWx0cyB0byB0aGUgVXNlci1EZWZpbmVkIFRhZyB5b3Ugc3BlY2lmeS4gVGhlIFVEVCBjYW4gaGFuZGxlIHRoZSByZXN1bHRzIGhvd2V2ZXIgaXQgd2FudHMuPC9saT4NCjxsaT4qRW1haWwgUmVzdWx0cyBCYXNlZCBvbiBQdWxsZG93bi4gVGhpcyBpcyB1c2VmdWwgZm9yIHdlYiBzaXRlcyB3aGVyZSBjb21tZW50cyBnZXQgcm91dGVkIGJhc2VkIG9uIHRoZWlyIHN1YmplY3QgbWF0dGVyLCBlLmcuLCBidWdzIGdldCBzZW50IHRvIG9uZSBwZXJzb24sIG1hcmtldGluZyBxdWVzdGlvbnMgdG8gYW5vdGhlciBwZXJzb24sIHNhbGVzIHJlcXVlc3RzIHRvIHNvbWVvbmUgZWxzZSwgZXRjLiBUaGUgcHVsbGRvd24gaXMgcG9wdWxhdGVkIHdpdGggdGhlIHN1YmplY3RzLCBhbmQgZWFjaCBnZXRzIGRpcmVjdGVkIHRvIGEgc3BlY2lmaWMgZW1haWwgYWRkcmVzcy4gWW91IHNldCB1cCB0aGVzZSBtYXBwaW5ncyBpbiB0aGUgd2hlbiB5b3UgY3JlYXRlIG9yIGVkaXQgYSBmaWVsZCBvZiB0aGlzIHR5cGUuIElmIHlvdSB1c2Ugb25lIG9mIHRoZXNlICZxdW90O0RpcmVjdG9yJnF1b3Q7IHB1bGxkb3ducywgdGhlIHVzZXIgbXVzdCBtYWtlIGEgc2VsZWN0aW9uIGluIG9yZGVyIHRvIHN1Ym1pdCB0aGUNCmZvcm0uIFRoaXMgaW5wdXQgaXMgcGFydCBvZiB0aGUgZm9ybSB0aGUgdXNlciBzZWVzLCBhbHRob3VnaCB0aGUgZW1haWwgYWRkcmVzc2VzIGFyZSBub3QgbWFkZSB2aXNpYmxlIG5vcg0KYXJlIHRoZXkgZW1iZWRkZWQgaW4gdGhlIEhUTUwuPC9saT4NCjxsaT4qRW1haWwgUmVzdWx0cyB0byBzZXQgQWRkcmVzcyhlcykuIFRoaXMgc2ltcGx5IHNlbmRzIHRoZSBmb3JtIHJlc3VsdHMgdG8gb25lIG9yIG1vcmUgZW1haWwgYWRkcmVzc2VzIHRoYXQgeW91IGVudGVyIHdoZW4geW91IGNyZWF0ZSBvciBlZGl0IHRoaXMgdHlwZSBvZiBmaWVsZC4gVGhpcyBmaWVsZCBhbmQgaXRzIG5hbWUgYXJlIG5vdCB2aXNpYmxlIGluIHRoZQ0KZm9ybSB0aGF0IHRoZSB1c2VyIHNlZXMuIFRoZSBlbWFpbCBhZGRyZXNzZXMgYXJlIG5vdCBtYWRlIHZpc2libGUgbm9yDQphcmUgdGhleSBlbWJlZGRlZCBpbiB0aGUgSFRNTC48L2xpPg0KPGxpPipFbWFpbCB0byBVc2VyLVN1cHBsaWVkIEFkZHJlc3MuIFRoaXMgcHV0cyBhbiBpbnB1dCBmaWVsZCBpbiB0aGUgZm9ybSBmb3IgdGhlIHVzZXIgdG8gcG9wdWxhdGUgd2l0aCBhbiBlbWFpbCBhZGRyZXNzLiBUaGUgZm9ybSByZXN1bHRzIGdldCBzZW50IHRvIHRoYXQgYWRkcmVzcy4gQmV3YXJlIG9mIFNwYW0gYWJ1c2UhIEFjdGl2ZSB0aGUgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcyBpbiB0aGUgRm9ybUJ1aWxkZXIgY29uZmlndXJhdGlvbiBzY3JlZW4uPC9saT4NCjxsaT4qU3RvcmUgUmVzdWx0cyBpbiBEYXRhYmFzZS4gVGhpcyB3aWxsIHN0b3JlIHRoZSBmb3JtIGNvbnRlbnRzIGluIGFuIGludGVybmFsIGRhdGFiYXNlLiBZb3Ugd2lsbCBhbHdheXMgdXNlIHRoaXMgZGlzcG9zaXRpb24gaWYgeW91IHVzZSB0aGUgZm9ybSB3aXRoIEZvcm1Ccm93c2VyLjwvbGk+DQo8bGk+KlJlZGlyZWN0IHRvIFBhZ2UgQmFzZWQgb24gUHVsbGRvd24uIFRoaXMgYWxsb3dzIHlvdSB0byByZWRpcmVjdCB0aGUgZm9ybSB0byBhIGRpZmZlcmVudCBzaXRlIHBhZ2UgZGVwZW5kaW5nIG9uIGl0cyB2YWx1ZS4gSWYgeW91IGhhdmUgbXVsdGlwbGUgZGlzcG9zaXRpb25zLCBtYWtlIHN1cmUgdGhpcyBpcyB1c2VkIGxhc3QuPC9saT4NCjxsaT4qVmFsaWRhdGUgdmlhIEVtYWlsLiBUaGlzIGlzIGEgc3RyYW5nZSBhbmQgcG93ZXJmdWwgZmllbGQuIEl0IHByb3ZpZGVzIHRoZSB1c2VyIGEgbWFuZGF0b3J5IGlucHV0IGZvciB0aGVpciBlbWFpbCBhZGRyZXNzLiBPbmNlIHRoZXkgc3VibWl0IHRoZWlyIGZvcm0sIHRoZSBzdGFuZGFyZCBmb3JtIGRpc3Bvc2l0aW9ucyBhcmUgbm90IHBlcmZvcm1lZCAtLSByYXRoZXIsIGl0IHNlbmQgdGhlIHVzZXIgYW4gZW1haWwgd2l0aCBhIHNwZWNpYWwgY29kZWQgbGluay4gSWYgdGhleSBjbGljayBvbiB0aGUgbGluaywgdGhlIG90aGVyIGZvcm0gaXMgY29uc2lkZXJlZCAmcXVvdDthcHByb3ZlZCwmcXVvdDsgYW5kIHRoZSBvdGhlciBkaXNwb3NpdGlvbnMgYXJlIGFsbCBwZXJmb3JtZWQuPC9saT4NCjxsaT4qV3JpdGUgUmVzdWx0cyB0byBGbGF0IEZpbGUuIFRoaXMgdGFrZXMgdGhlIGZvcm0gcmVzdWx0cyBhbmQgd3JpdGVzIHRoZW0gaW50byBhIHRleHQgZmlsZS4gWW91IG1heQ0Kc2VsZWN0IHRoZSBuYW1lIG9mIHRoZSBmaWxlLCBhbmQgc2V0IGl0cyBmb3JtYXQuIFRoZXNlIGZpbGVzIGFyZSB3cml0dGVuIHRvIHRoZSAmcXVvdDtvdXRwdXQmcXVvdDsgZGlyZWN0b3J5IHVuZGVyIHRoZQ0KbW9kdWxlJiMwMzk7cyBpbnN0YWxsYXRpb24gZGlyZWN0b3J5LCBhc3N1bWluZyB0aGUgd2ViIHNlcnZlciBoYXMgcGVybWlzc2lvbiB0byB3cml0ZSB0aGVyZS48L2xpPg0KPGxpPipTYXZlIFJlc3VsdHMgdG8gRmlsZSBCYXNlZCBvbiBQdWxsZG93bi4gTGlrZSB0aGUgRmxhdCBGaWxlIGRpc3Bvc2l0aW9uLCBleGNlcHQgdGhlIHZhbHVlIG9mIGEgcHVsbC1kb3duIGRldGVybWluZXMgd2hpY2ggZmlsZSByZXN1bHRzIGdldCB3cml0dGVuIHRvLjwvbGk+DQo8bGk+KlNhdmUgUmVzdWx0cyB0byBGaWxlKHMpIEJhc2VkIG9uIE11bHRpcGxlIFNlbGVjdGlvbnMuIExpa2UgdGhlIEZsYXQgRmlsZSBkaXNwb3NpdGlvbiwgZXhjZXB0IHRoZSB2YWx1ZShzKSBvZiBjaGVja2JveGVzICBkZXRlcm1pbmVzIHdoaWNoIGZpbGUocykgcmVzdWx0cyBnZXQgd3JpdHRlbiB0by48L2xpPg0KPC91bD48L2xpPjwvbGk+PC91bD4NCg0KDQo8aDM+UGFzc2luZyBEZWZhdWx0IFZhbHVlcyB0byBGb3JtczwvaDM+DQo8cD5DYWxndXkgYWRkZWQgYSBuaWNlIGZlYXR1cmUsIHdoaWNoIGlzIHRoYXQgeW91IGNhbiBwYXNzIGRlZmF1bHQgZmllbGQgdmFsdWVzIHRvIHlvdXIgZm9ybSB2aWEgdGhlIG1vZHVsZSB0YWcuIFRoaXMgYWxsb3dzIHlvdSB0byBoYXZlDQp0aGUgc2FtZSBmb3JtIGluIG11bHRpcGxlIHBsYWNlcywgYnV0IHdpdGggZGlmZmVyZW50IGRlZmF1bHQgdmFsdWVzLiBJdCBtYXkgbm90IHdvcmsgZm9yIG1vcmUgZXhvdGljIGZpZWxkIHR5cGVzLCBidXQgZm9yIGZpZWxkcyB0aGF0IGhhdmUNCmEgc2luZ2xlIHZhbHVlLCB5b3UgY2FuIHNwZWNpZnkgbGlrZTo8L3A+DQo8cD57Y21zX21vZHVsZSBtb2R1bGU9JiMwMzk7Rm9ybUJ1aWxkZXImIzAzOTsgZm9ybT0mIzAzOTtteV9mb3JtJiMwMzk7IHZhbHVlXzxpPkZJRUxETkFNRTwvaT49JiMwMzk7ZGVmYXVsdF92YWx1ZSYjMDM5O308L3A+DQo8cD5UaGlzIHdpbGwgc2V0IHRoZSBmaWVsZCB3aXRoIDxpPkZJRUxETkFNRTwvaT4gdG8gJiMwMzk7ZGVmYXVsdF92YWx1ZSYjMDM5Oy48L3A+DQo8cD5UaGlzIGNhbiBiZSBwcm9ibGVtYXRpYywgYXMgc29tZXRpbWVzIGZpZWxkIG5hbWVzIGFyZSB1bndlaWxkeSBvciBjb250YWluIGNoYXJhY3RlcnMgdGhhdCBkb24mIzAzOTt0IHdvcmsgd2VsbCB3aXRoIFNtYXJ0eS4gU28gdGhlcmUgaXMgYW4NCmFsdGVybmF0aXZlIGxpa2UgdGhpczo8L3A+DQo8cD57Y21zX21vZHVsZSBtb2R1bGU9JiMwMzk7Rm9ybUJ1aWxkZXImIzAzOTsgZm9ybT0mIzAzOTtteV9mb3JtJiMwMzk7IHZhbHVlX2ZsZDxpPk5VTUJFUjwvaT49JiMwMzk7ZGVmYXVsdF92YWx1ZSYjMDM5O308L3A+DQo8cD5UaGF0IHVzZXMgZmllbGQgPGk+TlVNQkVSPC9pPiwgd2hlcmUgPGk+TlVNQkVSPC9pPiBpcyB0aGUgaW50ZXJuYWwgRm9ybUJ1aWxkZXIgZmllbGQgaWQuIFlvdSBtaWdodCB3b25kZXIgaG93IHlvdSBrbm93IHdoYXQgdGhhdCBpZCBpcy4gU2ltcGx5IGdvIGludG8gdGhlIEZvcm1CdWlsZGVyIGNvbmZpZ3VyYXRpb24gdGFiLA0KYW5kIGNoZWNrICZxdW90O1Nob3cgRmllbGQgSURzJnF1b3Q7PC9wPg0KDQo8aDM+RW1haWwgYW5kIEZsYXQgRmlsZSBUZW1wbGF0ZXM8L2gzPg0KPHA+TWFueSBkaXNwb3NpdGlvbiB0eXBlcyBhbGxvdyB5b3UgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZm9yIHRoZSBlbWFpbCB0aGF0IGlzIGdlbmVyYXRlZCwgb3IgZm9yIHRoZSB3YXkgdGhlIHJlc3VsdHMgYXJlIHdyaXR0ZW4gdG8gYSBmaWxlLiBJZiB5b3Ugb3B0IG5vdCB0byBjcmVhdGUgYSB0ZW1wbGF0ZSwgdGhlIEZvcm1CdWlsZGVyIHdpbGwgdXNlIGl0JiMwMzk7cyBvd24gYmVzdCBndWVzcywgd2hpY2ggbWF5IG9yIG1heSBub3Qgd29yayBvdXQgdG8geW91ciBsaWtpbmcuIFlvdSBjYW4gYWx3YXlzIGNsaWNrIG9uIHRoZSAmcXVvdDtDcmVhdGUgU2FtcGxlIFRlbXBsYXRlJnF1b3Q7IGFuZCB0aGVuIGN1c3RvbWl6ZSB0aGUgcmVzdWx0cy48L3A+DQo8cD5UbyB0aGUgcmlnaHQsIHlvdSYjMDM5O2xsIGZpbmQgYSBsZWdlbmQgd2hpY2ggbGlzdHMgYWxsIG9mIHRoZSB2YXJpYWJsZXMgdGhhdCBhcmUgYXZhaWxhYmxlIHRvIHlvdSB0byB1c2UgaW4geW91ciB0ZW1wbGF0ZS4gQXMgb2YgdmVyc2lvbiAwLjMsIHZhcmlhYmxlcyBoYXZlIHR3byBuYW1lcywgb25lIGJhc2VkIG9uIHRoZSBmaWVsZCBuYW1lLCB0aGUgb3RoZXIgYmFzZWQgb24gdGhlIGZpZWxkIElELiBJZiB5b3UgdXNlIGZpZWxkIG5hbWVzIHRoYXQgaGF2ZSBjaGFyYWN0ZXJzIG91dHNpZGUgb2YgdGhlIEFTQ0lJIDMyLTEyNiByYW5nZSwgaXQgd2lsbCBiZSBzYWZlciB0byB1c2UgdGhlIElELWJhc2VkIHZhcmlhYmxlcy48L3A+DQo8cD48c3Ryb25nPk5vdGUgdGhhdCBvbmNlIHlvdSYjMDM5O3ZlIGNoYW5nZWQgYSB0ZW1wbGF0ZSwgaXQgd2lsbCBubyBsb25nZXIgYXV0b21hdGljYWxseSBhZGQgbmV3IGZpZWxkcy48L3N0cm9uZz4gRm9yIHRoaXMgcmVhc29uLCBpdCYjMDM5O3MgdXN1YWxseSBiZXN0IHRvIGNyZWF0ZSB5b3VyIHRlbXBsYXRlcyBhcyB0aGUgbGFzdCBzdGVwIG9mIGNyZWF0aW5nIHlvdXIgZm9ybS48L3A+DQo8cD5BcyBvZiB2ZXJzaW9uIDAuMi40LCB5b3UgY2FuIG9wdCB0byBzZW5kIGFueSBvZiB0aGVzZSBlbWFpbHMgYXMgSFRNTCBlbWFpbC4gVGhlcmUgc2hvdWxkIGJlIGEgY2hlY2tib3ggYXQgdGhlIHRvcCBvZiB0aGUgdGVtcGxhdGUgcGFnZSBmb3IgdGhpcy4gVGhlcmUgaXMgYWxzbyBhICZxdW90O0NyZWF0ZSBTYW1wbGUgSFRNTCBUZW1wbGF0ZSZxdW90OyBidXR0b24gb3ZlciBpbiB0aGUgbGVnZW5kIGFyZWEuIEZvciBIVE1MIGVtYWlsLCB0aGUgZW1haWwgYm9keSB3aWxsIGFsc28gcHJvdmlkZSB0aGUgZGVmYXVsdCB0ZXh0LW9ubHkgdmFsdWVzLjwvcD4NCg0KPGgzPkNvbmZpZ3VyYXRpb248L2gzPg0KPHA+VGhlcmUgYXJlIHNvbWUgZ2xvYmFsIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgRm9ybUJ1aWxkZXI6PC9wPg0KPHVsPg0KPGxpPkVuYWJsZSBmYXN0IGZpZWxkIGFkZCBwdWxsZG93bi4gVGhpcyBlbmFibGVzIHRoZSBwdWxsZG93biBvbiB0aGUgRm9ybSBFZGl0IHBhZ2Ugd2hpY2ggc2F2ZXMgYSBzdGVwIGluIHRoZSBjcmVhdGlvbiBvZiBuZXcgZmllbGRzLjwvbGk+DQo8bGk+SGlkZSBFcnJvcnMuIFRoaXMgaXMgc2V0IGJ5IGRlZmF1bHQuIFVuY2hlY2tpbmcgaXQgd2lsbCBjYXVzZSBtb3JlIGRldGFpbGVkIGVycm9ycyB0byBiZSBkaXNwbGF5ZWQgaWYgdGhlcmUgYXJlIHByb2JsZW1zIHdoZW4geW91IHN1Ym1pdCB5b3VyIGZvcm0uPC9saT4NCjxsaT5SZXF1aXJlIEZpZWxkIE5hbWVzLiBUeXBpY2FsbHksIHlvdSB3aWxsIHdhbnQgZm9ybSBmaWVsZHMgdG8gYmUgbmFtZWQgc28geW91IGNhbiB0ZWxsIHdoaWNoIGlzIHdoaWNoLiBIb3dldmVyLCBpbiBzb21lIGNhc2VzLCB5b3UgbWlnaHQgd2FudCB0byBoYXZlIG5hbWVsZXNzIGZpZWxkcy4gVW5jaGVjayB0aGlzIGlmIHlvdSB3YW50IHRvIGFsbG93IG5hbWVsZXNzIGZpZWxkcy48L2xpPg0KPGxpPlVuaXF1ZSBGaWVsZCBOYW1lcy4gVHlwaWNhbGx5LCB5b3Ugd2lsbCB3YW50IGZvcm0gZmllbGRzIHRvIGhhdmUgdW5pcXVlIG5hbWVzIHNvIHlvdSBjYW4gdGVsbCB3aGljaCBpcyB3aGljaC4gVW5jaGVjayB0aGlzIGlmIHlvdSB3YW50IHRvIGFsbG93IGZpZWxkcyB0byBzaGFyZSBuYW1lcy48L2xpPg0KPGxpPlVzZSByZWxheGVkIGVtYWlsIHZhbGlkYXRpb24uIFRoaXMgdXNlcyBhIGxlc3MgcmVzdHJpY3RpdmUgcmVndWxhciBleHByZXNzaW9uIGZvciB2YWxpZGF0aW5nIGVtYWlsOyBlLmcuLCB4QHkgd2lsbCBiZSBhbGxvd2VkLCB3aGVyZSB0eXBpY2FsbHkgeEB5LnRsZCBpcyByZXF1aXJlZC48L2xpPg0KPGxpPlNob3cgRm9ybSBCdWlsZGVyIFZlcnNpb24uIERpc3BsYXlzIHRoZSB2ZXJzaW9uIG9mIEZvcm1CdWlsZGVyIHlvdSYjMDM5O3JlIHVzaW5nIGluIGEgY29tbWVudCB3aGVuIHRoZSBmb3JtIGlzIGdlbmVyYXRlZC4gVHlwaWNhbGx5IG9ubHkgdXNlZnVsIHdoZW4gZGVidWdnaW5nLjwvbGk+DQo8bGk+RW5hYmxlIHByaW1pdGl2ZSBhbnRpLXNwYW0gZmVhdHVyZXMuIFdoZW4gdHVybmVkIG9uLCB0aGlzIGFsbG93cyBhbnkgZ2l2ZW4gSVAgYWRkcmVzcyB0byBvbmx5IGdlbmVyYXRlIDEwIGVtYWlscyBwZXIgaG91ci48L2xpPg0KPGxpPlNob3cgRmllbGQgSURzLiBXaGVuIHR1cm5lZCBvbiwgRm9ybUJ1aWxkZXIgd2lsbCBkaXNwbGF5IGZpZWxkIGlkcyB3aGVuIGFkZGluZyBvciBlZGl0aW5nIGEgZm9ybS48L2xpPg0KPC91bD4NCjxoMz5TdHlsaW5nIGFuZCBDU1M8L2gzPg0KPHA+UGF1bCBOb29uZSBncmFjaW91c2x5IHByb3ZpZGVzIHVzIGFsbCB3aXRoIGEgcHJldHR5IGdvb2Qgc3RhbmRhcmQgQ1NTIHRoYXQgeW91IGNhbiB1c2UgZm9yIGZvcm1zOjwvcD4NCjxwcmU+DQoJLyogU2FtcGxlIEZvcm1CdWlsZGVyIENTUyBiYXNlICovDQoJZm9ybSB7bWFyZ2luLXRvcDowfQ0KCWZvcm0sIHRkLCB0aCwgbGkgeyBmb250LXNpemU6IDEwMCV9DQoJZm9ybSBkaXYge21hcmdpbi1ib3R0b206MH0NCglmaWVsZHNldCBkaXYgew0KCQltYXJnaW4tYm90dG9tOjAuNWVtOw0KCQltYXJnaW4tbGVmdDoxZW07DQoJfQ0KCWZpZWxkc2V0IGRpdiBkaXYgew0KCQltYXJnaW4tdG9wOjAuNWVtOw0KCQltYXJnaW4tbGVmdDoxZW0NCgl9DQoJZmllbGRzZXQgew0KCQltYXJnaW4tYm90dG9tOjFlbTsNCgkJYm9yZGVyOjFweCBzb2xpZCAjRjYwOw0KCQlwYWRkaW5nOjAuNWVtDQoJfQ0KCWZpZWxkc2V0IGxhYmVsIHsNCgkJd2lkdGg6YXV0bzsNCgl9DQoJbGVnZW5kIHsNCgkJY29sb3I6I0ZGRjsNCgkJYmFja2dyb3VuZDojRjYwOw0KCQlmb250LXN0eWxlOml0YWxpYzsNCgkJZm9udC1zaXplOjEuMmVtOw0KCQltYXJnaW4tYm90dG9tOjAuNWVtOw0KCQlwYWRkaW5nOjAuMmVtOw0KCQl3aWR0aDphdXRvOw0KCQlib3JkZXI6MXB4IHNvbGlkICNDQ0MNCgl9DQoJdGV4dGFyZWEgew0KCQltYXJnaW46IDAuNWVtIDA7DQoJCXdpZHRoOjk4JTsNCgkJaGVpZ2h0OiA2ZW0NCgl9DQoNCgkvKiBBcHBseSB0aGlzIGNsYXNzIHRvIHRleHQvc2VsZWN0IGlucHV0IGZpZWxkcyB3aXRoIHNob3J0ZXIgbGFiZWxzDQoJCXRvIGhlbHAgYWxpZ25tZW50ICovDQoJLnNob3J0LWxhYmVsIGxhYmVsIHtmbG9hdDpsZWZ0OyB3aWR0aDoxMGVtfQ0KCS5zaG9ydC1sYWJlbCBmaWVsZHNldCBkaXYgaW5wdXQsDQoJLnNob3J0LWxhYmVsIGZpZWxkc2V0IGRpdiBzZWxlY3Qge3dpZHRoOjE2ZW19DQoNCgkvKiBQcmV0dHkgdXAgeW91ciBDYXB0Y2hhIGltYWdlIG91dHB1dCAqLw0KCS5jYXB0Y2hhIHsNCgkJbWFyZ2luOjAuNWVtIDA7DQoJCXdpZHRoOjIwMHB4Ow0KCQl0ZXh0LWFsaWduOmNlbnRlcg0KCX0NCgkuY2FwdGNoYSBpbWcge2JvcmRlcjoxcHggc29saWQgI0Y2MDsgbWFyZ2luLWJvdHRvbTowLjVlbX0NCgkuY2FwdGNoYSBpbnB1dCB7d2lkdGg6MTk2cHg7IG1hcmdpbi10b3A6MC41ZW19DQoNCgkvKiBKdXN0IGEgYml0IG1vcmUgcm9vbSBmb3IgdGhlIFN1Ym1pdCBidXR0b24gKi8NCgkuc3VibWl0IHttYXJnaW4tdG9wOjAuNWVtfQ0KPC9wcmU+DQoNCjxoMz5Gb3JtIFRlbXBsYXRlIFZhcmlhYmxlczwvaDM+DQoNCjxoMz5Gb3JtIFRlbXBsYXRlIFZhcmlhYmxlczwvaDM+DQo8cD5Zb3UgY2FuIGVkaXQgaXQgdG8gbWFrZSB5b3VyIGZvcm0gbGF5b3V0IGxvb2sgYW55IHdheSB5b3UmIzAzOTtkIGxpa2UuDQogICBUbyBtYWtlIHRoZSBmb3JtIHdvcmssIHlvdSYjMDM5O2xsIG5lZWQgdG8gYWx3YXlzIGluY2x1ZGUgdGhlIHskZmJfaGlkZGVufSBhbmQgeyRzdWJtaXR9DQogICB0YWdzLjwvcD4NCg0KPHA+WW91IGNhbiBhY2Nlc3MgeW91ciBmb3JtIGZpZWxkcyBlaXRoZXIgdXNpbmcgdGhlICRmaWVsZHMgYXJyYXkgb3IgYnkgZGlyZWN0bHkgYWNjZXNzaW5nIGZpZWxkcyBieSB0aGVpciBuYW1lcyAoZS5nLiwgeyRteWZpZWxkLT5pbnB1dH0gKTwvcD4NCg0KDQo8cD5FYWNoIGZpZWxkIGhhcyB0aGUgZm9sbG93aW5nIGF0dHJpYnV0ZXM6PC9wPg0KPHRhYmxlPg0KPHRyPjx0aD5GaWVsZDwvdGg+PHRoPlZhbHVlPC90aD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+ZGlzcGxheTwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIHNob3VsZCBiZSBkaXNwbGF5ZWQsIDAgb3RoZXJ3aXNlPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+cmVxdWlyZWQ8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBpcyByZXF1aXJlZCwgMCBvdGhlcndpc2U8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5yZXF1aXJlZF9zeW1ib2w8L3RkPjx0ZD50aGUgc3ltYm9sIGZvciByZXF1aXJlZCBmaWVsZHM8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5jc3NfY2xhc3M8L3RkPjx0ZD50aGUgQ1NTIGNsYXNzIHNwZWNpZmllZCBmb3IgdGhpcyBmaWVsZDwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPnZhbGlkPC90ZD48dGQ+MSBpZiB0aGlzIGZpZWxkIGhhcyBwYXNzZWQgdmFsaWRhdGlvbiwgMCBvdGhlcndpc2U8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5lcnJvcjwvdGQ+PHRkPlRleHQgb2YgdGhlIHZhbGlkYXRpb24gcHJvYmxlbSwgaW4gdGhlIGV2ZW50IHRoYXQgdGhpcyBmaWVsZCBkaWQgbm90IHZhbGlkYXRlPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aGlkZV9uYW1lPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgbmFtZSBzaG91bGQgYmUgaGlkZGVuLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmhhc19sYWJlbDwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIHR5cGUgaGFzIGEgbGFiZWw8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5uZWVkc19kaXY8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBuZWVkcyB0byBiZSB3cmFwcGVkIGluIGEgRElWIChvciB0YWJsZSByb3csIGlmIHRoYXQmIzAzOTtzIHRoZSB3YXkgeW91IHN3aW5nKTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPm5hbWU8L3RkPjx0ZD50aGUgZmllbGQmIzAzOTtzIG5hbWU8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5pbnB1dDwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgaW5wdXQgY29udHJvbCAoZS5nLiwgdGhlIGlucHV0IGZpZWxkIGl0c2VsZik8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5vcDwvdGQ+PHRkPmEgY29udHJvbCBidXR0b24gYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWVsZCBpZiBhcHBsaWNhYmxlIChlLmcuLCB0aGUgZGVsZXRlIGJ1dHRvbiBmb3IgZXhwYW5kYWJsZSB0ZXh0IGlucHV0KTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmlucHV0X2lkPC90ZD48dGQ+dGhlIElEIG9mIHRoZSBmaWVsZCYjMDM5O3MgaW5wdXQgKHVzZWZ1bCBmb3IgPGxhYmVsIGZvcj0mcXVvdDsmcXVvdDs+KTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPnR5cGU8L3RkPjx0ZD50aGUgZmllbGQmIzAzOTtzIGRhdGEgdHlwZTwvdGQ+PC90cj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQo8dHI+PHRkPmZpZWxkLT5tdWx0aXBsZV9wYXJ0czwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkLT5pbnB1dCBpcyBhY3R1YWxseSBhIGNvbGxlY3Rpb24gb2YgY29udHJvbHM8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5sYWJlbF9wYXJ0czwvdGQ+PHRkPjEgaWYgdGhlIGNvbGxlY3Rpb24gb2YgY29udHJvbHMgaGFzIHNlcGFyYXRlIGxhYmVscyBmb3IgZWFjaCBjb250cm9sPC90ZD48L3RyPg0KPC90YWJsZT4NCg0KPHA+SW4gY2VydGFpbiBjYXNlcywgZmllbGQtPmlucHV0IGlzIGFjdHVhbGx5IGFuIGFycmF5IG9mIG9iamVjdHMgcmF0aGVyIHRoYW4gYW4gaW5wdXQuIFRoaXMgaGFwcGVucywgZm9yIGV4YW1wbGUsIGluIENoZWNrQm94R3JvdXBzIG9yIFJhZGlvQnV0dG9uR3JvdXBzLiBGb3IgdGhlbSwgeW91IGNhbiBpdGVyYXRlIHRocm91Z2ggZmllbGQtPmlucHV0LT5uYW1lIGFuZCBmaWVsZC0+aW5wdXQtPmlucHV0cy48L3A+DQogICAgDQo8cD5BZGRpdGlvbmFsIHNtYXJ0eSB2YXJpYWJsZXMgdGhhdCB5b3UgY2FuIHVzZSBpbmNsdWRlOjwvcD4NCjx0YWJsZT4NCjx0cj48dGg+VmFyaWFibGU8L3RoPjx0aD5WYWx1ZTwvdGg+PC90cj4NCjx0cj48dGQ+dG90YWxfcGFnZXM8L3RkPjx0ZD5udW1iZXIgb2YgcGFnZXMgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPnRoaXNfcGFnZTwvdGQ+PHRkPm51bWJlciBmbyB0aGUgY3VycmVudCBwYWdlIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD50aXRsZV9wYWdlX3hfb2ZfeTwvdGQ+PHRkPmRpc3BsYXlzICZxdW90O3BhZ2UgeCBvZiB5JnF1b3Q7IGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD5jc3NfY2xhc3M8L3RkPjx0ZD5DU1MgQ2xhc3MgZm9yIHRoZSBmb3JtPC90ZD48L3RyPg0KPHRyPjx0ZD5mb3JtX25hbWU8L3RkPjx0ZD5Gb3JtIG5hbWU8L3RkPjwvdHI+DQo8dHI+PHRkPmZvcm1faWQ8L3RkPjx0ZD5Gb3JtIGRhdGFiYXNlIElEPC90ZD48L3RyPg0KPHRyPjx0ZD5wcmV2PC90ZD48dGQ+JnF1b3Q7QmFjayZxdW90OyBidXR0b24gZm9yIG11bHRpcGFydCBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+c3VibWl0PC90ZD48dGQ+JnF1b3Q7Q29udGludWUmcXVvdDsgb3IgJnF1b3Q7U3VibWl0JnF1b3Q7IGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zLCBhZGp1c3RzIGF1dG9tYXRpY2FsbHk8L3RkPjwvdHI+DQo8L3RhYmxlPg0KPHA+RHVubm8gd2h5IHlvdSYjMDM5O2Qgd2FudCBzb21lIG9mIHRob3NlLCBidXQgdGhlcmUgeW91IGdvLi4uPC9wPg0KDQoNCjxoMz5Lbm93biBJc3N1ZXM8L2gzPg0KPHVsPg0KPGxpPkZvcm1CdWlsZGVyIGlzIG5vdCB5ZXQgaW50ZWdyYXRlZCB3aXRoIEZyb250RW5kIFVzZXJzLiBJdCB3aWxsIGJlLjwvbGk+DQo8bGk+Rm9ybUJ1aWxkZXIgY2Fubm90IHlldCBiZSBpbmxpbmVkLiBUaGF0IHNob3VsZCBiZSBhIHNpbXBsZSB1cGdyYWRlIGRvd24gdGhlIGxpbmUuPC9saT4NCjxsaT5Gb3JtQnVpbGRlciBkb2VzIG5vdCB5ZXQgc3VwcG9ydCBwcmV0dHkgdXJscywgYWx0aG91Z2ggdGhhdCBzaG91bGRuJiMwMzk7dCBtYXR0ZXIgc2luY2UgdGhlIHVzZXIgc2lkZSBpcyBwcmV0dHkgc2ltcGxlLjwvbGk+DQo8L3VsPg0KDQo8aDM+VHJvdWJsZXNob290aW5nPC9oMz4NCjxvbD48bGk+IEZpcnN0IHN0ZXAgaXMgdG8gY2hlY2sgeW91JiMwMzk7cmUgcnVubmluZyBDTVMgMS4xIG9yIGxhdGVyLjwvbGk+DQo8bGk+IFNlY29uZCBzdGVwIGlzIHRvIHJlYWQgYW5kIHVuZGVyc3RhbmQgdGhlIGNhdmVhdCBhYm91dCBXWVNJV1lHIGVkaXRvcnMgdXAgaW4gdGhlDQpzZWN0aW9uIDxlbT5BZGRpbmcgYSBGb3JtIHRvIGEgUGFnZTwvZW0+LjwvbGk+DQo8bGk+IElmIHlvdSYjMDM5O3JlIG1pc3NpbmcgZmllbGRzIGluIGFuIGVtYWlsIHRoYXQgZ2V0cyBnZW5lcmF0ZWQsIGNoZWNrIHRoZSBkaXNwb3NpdGlvbiBmaWVsZCYjMDM5O3MgdGVtcGxhdGUsIGFuZCBtYWtlIHN1cmUgeW91JiMwMzk7cmUgc3BlY2lmeWluZyB0aGUgbWlzc2luZyBmaWVsZHMuIFNlZW1zIG9idmlvdXMsIGJ1dCBpdCYjMDM5O3MgYW4gZWFzeSBtaXN0YWtlIHRvIG1ha2UuPC9saT4NCjxsaT5VbmNoZWNrIHRoZSAmcXVvdDtIaWRlIEVycm9ycyZxdW90OyBjaGVja2JveCBpbiB0aGUgZ2xvYmFsIG9wdGlvbnMsIGFuZCBzZWUgd2hhdCBtZXNzYWdlIGdldHMgZGlzcGxheWVkIHdoZW4geW91IHN1Ym1pdCB5b3VyIGZvcm0uPC9saT4NCjxsaT4gSnVzdCBtZXNzIGFyb3VuZCBhbmQgdHJ5IGNsaWNraW5nIG9uIGxpbmtzIGFuZCBpY29ucyBhbmQgc3R1ZmYuIFNlZSB3aGF0IGhhcHBlbnMuPC9saT4NCjxsaT4gTGFzdCByZXNwb3J0IGlzIHRvIGVtYWlsIG1lIG9yIGNhdGNoIG1lIG9uIElSQyBhbmQgd2UgY2FuIGdvIGZyb20gdGhlcmUuPC9saT4NCjwvb2w+IA0KPHA+VGhpcyBpcyBubyBsb25nZXIgYSBwYXJ0aWN1bGFybHkgZWFybHkgdmVyc2lvbiwgYnV0IGl0IGlzIHByb2JhYmx5IHN0aWxsIGJ1Z2d5LiBXaGlsZSBJJiMwMzk7dmUgZG9uZSBhbGwgSSBjYW4NCnRvIG1ha2Ugc3VyZSBubyBlZ3JlZ2lvdXMgYnVncyBoYXZlIGNyZXB0IGluLCBJIGhhdmUgdG8gYWRtaXQgdGhhdCBkdXJpbmcgZWFybHkgdGVzdGluZywgdGhpcyBwcm9ncmFtDQpyZXZlYWxlZCBzZXZlbiBjb2Nrcm9hY2hlcywgdHdvIGVhcndpZ3MsIGEgc21hbGwgZmFtaWx5IG9mIGFwaGlkcywgYW5kIGEgd2Fsa2luZy1zdGljayBpbnNlY3QuIEl0IGFsc28NCmF0ZSB0aGUgbmVpZ2hib3ImIzAzOTtzIG5hc3R5IGxpdHRsZSB5YXAgZG9nLCBmb3Igd2hpY2ggSSB3YXMgaW5hcHByb3ByaWF0ZWx5IGdyYXRlZnVsLjwvcD4NCjxwPlRoZSBmaW5hbCByZWxlYXNlIHdpbGwgaW5jbHVkZSBidWcgZml4ZXMsIGRvY3VtZW50YXRpb24sIGFuZCB1bmNvbmRpdGlvbmFsIGxvdmUuPC9wPg0KPGgzPlN1cHBvcnQ8L2gzPg0KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPg0KPHVsPg0KPGxpPkZvciB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBtb2R1bGUsIEZBUXMsIG9yIHRvIGZpbGUgYSBCdWcgUmVwb3J0LCBwbGVhc2UgdmlzaXQgdGhlIENNUyBNYWRlIFNpbXBsZSAgPGEgaHJlZj0mcXVvdDtodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnJnF1b3Q7PkRldmVsb3BlciBGb3JnZTwvYT4uPC9saT4NCjxsaT5UbyBvYnRhaW4gY29tbWVyY2lhbCBzdXBwb3J0LCBwbGVhc2Ugc2VuZCBhbiBlbWFpbCB0byB0aGUgYXV0aG9yIGF0IDxhIGhyZWY9JnF1b3Q7bWFpbHRvOnNqZ0BjbXNtb2R1bGVzLmNvbSZxdW90Oz48c2pnQGNtc21vZHVsZXMuY29tPjwvYT4uPC9saT4NCjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9JnF1b3Q7aHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnJnF1b3Q7PkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LjwvbGk+DQo8bGk+VGhlIGF1dGhvciBjYW4gb2Z0ZW4gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9JnF1b3Q7aXJjOi8vaXJjLmZyZWVub2RlLm5ldC8jY21zJnF1b3Q7PkNNUyBJUkMgQ2hhbm5lbDwvYT4uPC9saT4NCjxsaT5MYXN0bHksIHlvdSBtYXkgaGF2ZSBzb21lIHN1Y2Nlc3MgZW1haWxpbmcgdGhlIGF1dGhvciBkaXJlY3RseSBhbmQgZ3JvdmVsbGluZyBmb3IgZnJlZSBzdXBwb3J0LjwvbGk+DQo8L3VsPg0KPHA+QXMgcGVyIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgYXMtaXMuIFBsZWFzZSByZWFkIHRoZSB0ZXh0DQpvZiB0aGUgbGljZW5zZSBmb3IgdGhlIGZ1bGwgZGlzY2xhaW1lci48L3A+DQo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4NCjxwPkNvcHlyaWdodCAmY29weTsgMjAwNywgU2FtdWVsIEdvbGRzdGVpbiA8YSBocmVmPSZxdW90O21haWx0bzpzamdAY21zbW9kdWxlcy5jb20mcXVvdDs+PHNqZ0BjbXNtb2R1bGVzLmNvbT48L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+DQo8cD5UaGlzIG1vZHVsZSBoYXMgYmVlbiByZWxlYXNlZCB1bmRlciB0aGUgPGEgaHJlZj0mcXVvdDtodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwmcXVvdDs+R05VIFB1YmxpYyBMaWNlbnNlPC9hPi4gWW91IG11c3QgYWdyZWUgdG8gdGhpcyBsaWNlbnNlIGJlZm9yZSB1c2luZyB0aGUgbW9kdWxlLjwvcD4nOwokbGFuZ1snY2hhbmdlbG9nJ10gPSAnPHVsPg0KPGxpPlZlcnNpb24gMC40DQoJPHVsPg0KCQk8bGk+VXBwZWQgbWluaW11bSBDTVMgdmVyc2lvbiB0byAxLjE8L2xpPg0KCQk8bGk+TnVtZXJvdXMgQnVnIGZpeGVzOyB0b28gbWFueSB0byBlbnVtZXJhdGUgaGVyZTwvbGk+DQoJCTxsaT5NYXNzaXZlIHJlamlnZ2VyaW5nIG9mIGNvZGUgdG8gd29yayB3aXRoIENNUyBNUyAxLjEgcGFyYW1ldGVyIHNhbml0aXppbmcgcmVnaW1lPC9saT4NCgkJPGxpPkFkZGVkIGZpZWxkIHR5cGVzOiAmcXVvdDtUZXh0RmllbGQgKE11bHRpcGxlKSZxdW90OyBhbmQgJnF1b3Q7Q29tcHV0ZWQgRmllbGQmcXVvdDs8L2xpPg0KCQk8bGk+QWRkZWQgZGlzcG9zaXRpb25zOiAmcXVvdDtTYXZlIFJlc3VsdHMgdG8gRmlsZSBCYXNlZCBvbiBQdWxsZG93biZxdW90OyBhbmQgJnF1b3Q7U2F2ZSBSZXN1bHRzIHRvIEZpbGUocykgQmFzZWQgb24gTXVsdGlwbGUgU2VsZWN0aW9ucyZxdW90OyhDYWxndXkpPC9saT4NCgkJPGxpPkFkZGVkIG5lYXQtbyBBSkFYLXkgdGVtcGxhdGUtY29weWluZyBmb3IgRm9ybSBUZW1wbGF0ZXMsIGdhdmUgdmVyc2lvbnMgb2Ygb2xkIHRhYmxlLWJhc2VkIHRlbXBsYXRlcyB0byBzb290aGUgdGhlIHJhZ2luZyBtYXNzZXMuPC9saT4NCgkJPGxpPkFkZGVkIGFiaWxpdHkgdG8gcGFzcyBkZWZhdWx0IHZhbHVlcyB0byBmb3JtIGVsZW1lbnRzIGZyb20gbW9kdWxlIHRhZyB1c2luZyB2YWx1ZV9GSUVMRE5BTUU9JnF1b3Q7dmFsdWUmcXVvdDsgc3ludGF4IChDYWxndXkpPC9saT4NCgkJPGxpPkFkZGVkIG9wdGlvbiB0byBkaXNwbGF5IGZpZWxkIGlkcyBpbiBhZG1pbiAoQ2FsZ3V5KTwvbGk+DQoJPC91bD4NCjwvbGk+DQo8bGk+VmVyc2lvbiAwLjMNCiAgIDx1bD4NCiAgICAgIDxsaT5BZGRlZCBDYXB0Y2hhIG1vZHVsZSBzdXBwb3J0LjwvbGk+DQogICAgICA8bGk+UmV3b3JrZWQgbGFiZWxpbmcgb2YgZm9ybSBlbGVtZW50cyB0byBiZSBYSFRNTCBjb21wbGlhbnQ8L2xpPg0KICAgICAgPGxpPkFkZGVkIFBhdWwgTm9vbmUmIzAzOTtzIG5ldywgaW1wcm92ZWQgY29udGFjdCBmb3JtIHRlbXBsYXRlczwvbGk+DQogICAgICA8bGk+SW1wbGVtZW50YXRpb24gb2YgRW1haWwgU3ViamVjdCBGaWVsZDwvbGk+DQogICAgICA8bGk+QWRkZWQgYWRtaW4tc3BlY2lmaWFibGUgdmFsdWVzIHRvIGhpZGRlbiBmaWVsZCB0eXBlLCB3aGljaCBtYXkgY29udGFpbiBwYXJzYWJsZSBzbWFydHkgdGFnczwvbGk+DQogICAgICA8bGk+VGV4dCBBcmVhIEZpZWxkIG5vdyBhbGxvd3Mgc3BlY2lmaWNhdGlvbiBvZiByb3dzIGFuZCBjb2xzIGluIHRoZSBhZG1pbiwgaW5zdGVhZCBvZiBDU1M8L2xpPg0KICAgICAgPGxpPkFkZGVkIERyYWcmIzAzOTtuJiMwMzk7RHJvcCByZW9yZGVyaW5nIG9mIGZvcm0gZmllbGRzLjwvbGk+DQogICAgICA8bGk+QWRkZWQgbm9uLWJsYW5rIGZpZWxkIG5hbWUgYW5kIHVuaXF1ZSBmaWVsZCBuYW1lIGdsb2JhbCBjb25maWd1cmF0aW9uIG9wdGlvbnMgYW5kIHZhbGlkYXRpb248L2xpPg0KICAgICAgPGxpPkltcGxlbWVudGVkIHRlbXBsYXRlZCBkaXNwbGF5IG9mIGZvcm0gcmVzdWx0cyB1cG9uIHN1Ym1pc3Npb24gaW4gYWRkaXRpb24gdG8gcGFnZSByZWRpcmVjdGluZzwvbGk+DQogICAgICA8bGk+PC9saT4NCiAgIDwvdWw+DQo8L2xpPg0KPGxpPlZlcnNpb24gMC4yLjQgLSAwOSBNYXkgMjAwNw0KICAgPHA+QmlnIHJlbGVhc2U6PHVsPg0KICAgPGxpPkFkZGVkICZxdW90O0VtYWlsIEZvcm0gdG8gVXNlci1TdXBwbGllZCBBZGRyZXNzJnF1b3Q7IGRpc3Bvc2l0aW9uLjwvbGk+DQogICA8bGk+QWRkZWQgJnF1b3Q7VGltZVBpY2tlciZxdW90OyBmaWVsZCB0eXBlLiBTcGxpdCAmcXVvdDtMaW5rJnF1b3Q7IGZpZWxkIGludG8gYSAmcXVvdDtVc2VyLXN1cHBsaWVkIExpbmsmcXVvdDsgZmllbGQgYW5kIGEgJnF1b3Q7U3RhdGljIExpbmsmcXVvdDsgZmllbGQuPC9saT4NCiAgIDxsaT5BZGRlZCBIVE1MIGVtYWlsIG9wdGlvbiBhbmQgYXV0by10ZW1wbGF0ZXMgZm9yIGFsbCBlbWFpbCBkaXNwb3NpdGlvbnMuPC9saT4NCiAgIDxsaT5BZGRlZCBwcmltaXRpdmUgYW50aS1zcGFtIGZlYXR1cmVzLjwvbGk+DQogICA8bGk+QWRkZWQgWE1MLWJhc2VkIGltcG9ydCBhbmQgZXhwb3J0IG9mIGZvcm1zLjwvbGk+DQogICA8L3VsPg0KICAgPC9wPg0KPC9saT4NCjxsaT5WZXJzaW9uIDAuMi4zDQogICA8cD5BZGQgdGhlIGFiaWxpdHkgdG8gY2FsbCBhIHNlbGVjdGFibGUgdXNlciBkZWZpbmVkIHRhZyB1cG9uIGRpc3Bvc2l0aW9uIG9mIHRoZSBmb3JtLjwvcD4NCjwvbGk+DQo8bGk+VmVyc2lvbiAwLjIuMg0KICAgPHA+TWFueSB0aGFua3MgdG8gVXR0ZXIgRGVzaWduIGZvciBzcG9uc29yaW5nIHNvbWUgY2hhbmdlcyBhbmQgYnVnZml4ZXMsIHdoaWNoIGluY2x1ZGU6DQogICA8dWw+DQogICAgICA8bGk+QWRkZWQgZmlsZSB1cGxvYWQgY2FwYWJpbGl0aWVzIHRvIHRoZSBlbWFpbCBkaXNwb3NpdGlvbjwvbGk+DQogICAgICA8bGk+QWRkIFBhZ2VTZXRTdGFydCBhbmQgUGFnZVNldEVuZCBmaWVsZCB0eXBlcw0KICAgICAgPHA+VGhlc2UgZmllbGQgdHlwZXMgYWxsb3cgeW91IHRvIGNyZWF0ZSBmaWVsZHNldHMgaW4geW91ciBmb3JtLCBhbmQgb3JnYW5pc2UNCiAgICAgIHlvdXIgZmllbGRzIGxvZ2ljYWxseSBmb3IgdGhlIHVzZXIuICBZb3UgY2FuIGV2ZW4gbmVzdCBmaWVsZHNldHMsIGFuZA0KICAgICAgYXNzb2NpYXRlIGEgc3R5bGUgd2l0aCB0aGVtIGFwcHJvcHJpYXRlbHkuICBUaGUgZGVmYXVsdCB0ZW1wbGF0ZSB3YXMgY2hhbmdlZA0KICAgICAgdG8gcHJldmVudCBpdCBmcm9tIHdyYXBwaW5nIGEgZGl2IGFyb3VuZCB0aGVzZSB0eXBlcyBvZiBmaWVsZHMuDQogICAgICA8L3A+DQogICAgICA8L2xpPg0KICAgICAgPGxpPkZpeGVkIGEgcHJvYmxlbSB3aXRoIERBVEVUSU1FIGZpZWxkcyBvbiBpbnN0YWxsDQogICAgICA8cD5UaGlzIHNvbHZlcyBhIHByb2JsZW0gd2hlbiBvbiBpbnN0YWxsIHRoZSByZXNwb25zZSB0YWJsZSB3b3VsZCBzb21ldGltZXMgbm90IGdldCBjcmVhdGVkIHdoZW4gdXNpbmcgYWRvZGIgbGl0ZTwvbGk+DQogICAgICA8L2xpPg0KICAgPC91bD4NCiAgIDwvcD4NCjwvbGk+DQo8bGk+VmVyc2lvbiAwLjIgLSAxNCBOb3ZlbWJlciAyMDA2LiBDYWxndXkgJmFtcDsgdHN3JiMwMzk7cyBidWcgZml4ZXMgZm9yIGZpZWxkIHJlLW9yZGVyaW5nIGFuZCBjdXN0b20gdGVtcGxhdGVzLiBBZGRpdGlvbmFsIGJ1ZyBmaXhlcyBmb3IgZmllbGQgbGFiZWxzLjwvbGk+DQo8bGk+VmVyc2lvbiAwLjEgLSA4IEp1bHkgMjAwNi4gSW5pdGlhbCBSZWxlYXNlPC9saT4NCjwvdWw+DQonOwokbGFuZ1sndXRteiddID0gJzE1Njg2MTM1My4xMTg5ODExMDM5LjEwNS42LnV0bWNjbj0ocmVmZXJyYWwpfHV0bWNzcj1taWxoYXVzLndpa2lkb3QuY29tfHV0bWNjdD0vcHJ1emt1bS1kb21vdnNreWNoLXN0cmFuZWstY21zfHV0bWNtZD1yZWZlcnJhbCc7CiRsYW5nWyd1dG1hJ10gPSAnMTU2ODYxMzUzLjE2MDg4NTUyMTAuMTE2NzkwODEwOS4xMTkwMDU0MjU5LjExOTAwNTczMTcuMTE0JzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/da_DK.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0Zvcm11bGFyIEdlbmVyYXRvcic7CiRsYW5nWydmaWVsZF90eXBlXyddID0gJ0ZlbHQgdHlwZSBpa2tlIHNhdCc7CiRsYW5nWydmaWVsZF90eXBlX0ZpZWxkc2V0RW5kJ10gPSAnLUZlbHRzJmFlbGlnO3Qgc2x1dCc7CiRsYW5nWydmaWVsZF90eXBlX0ZpZWxkc2V0U3RhcnQnXSA9ICctRmVsdHMmYWVsaWc7dCBiZWd5bmQnOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0RmllbGQnXSA9ICdUZWtzdGZlbHQnOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0QXJlYUZpZWxkJ10gPSAnVGVrc3RmZWx0LCBmbGVyZSBsaW5pZSc7CiRsYW5nWydmaWVsZF90eXBlX0NoZWNrYm94RmllbGQnXSA9ICdBZmtyeWRzbmluZ3Nib2tzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hHcm91cEZpZWxkJ10gPSAnR3J1cHBlIGFmIGFma3J5ZHNuaW5nc2Jva3NlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUHVsbGRvd25GaWVsZCddID0gJ1B1bGxkb3duJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTXVsdGlzZWxlY3RGaWVsZCddID0gJ011bHRpc2VsZWN0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3RhdGVQaWNrZXJGaWVsZCddID0gJ1UuUy4gU3RhdGUgUGlja2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ291bnRyeVBpY2tlckZpZWxkJ10gPSAnTGFuZGUgdmFsZyc7CiRsYW5nWydmaWVsZF90eXBlX0RhdGVQaWNrZXJGaWVsZCddID0gJ0RhdG8gVmFsZyc7CiRsYW5nWydmaWVsZF90eXBlX1RpbWVQaWNrZXJGaWVsZCddID0gJ1RpZHN2YWxnJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUmFkaW9Hcm91cEZpZWxkJ10gPSAnUmFkaW8ga25hcCBncnVwcGUnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRpcmVjdG9yJ10gPSAnKkVtYWlsIHJlc3VsdGF0ZXQgYmFzZXJldCBwJmFyaW5nOyBwdWxsZG93bi12YWxnJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25QYWdlUmVkaXJlY3RvciddID0gJypWaWRlcmVzdGlsIHRpbCBzaWRlIGJhc2VyZXQgcCZhcmluZzsgcHVsbGRvd24tdmFsZyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWwnXSA9ICcqRW1haWwgcmVzdWx0YXRldCB0aWwgYW5naXZuZSBhZHJlc3NlKHIpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbENvbmZpcm1hdGlvbiddID0gJypWYWxpZCZlYWN1dGU7ciB2aWEgZW1haWwgYWRyZXNzZSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRmlsZSddID0gJypTa3JpdiByZXN1bHRhdGVyIHRpbCBhbG0uIHRla3N0LWZpbCc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGF0YWJhc2UnXSA9ICcqR2VtIHJlc3VsdGF0ZXIgaSBkYXRhYmFzZW4nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvblVzZXJUYWcnXSA9ICcqS2FsZCBlbiBicnVnZXJkZWZpbmVyZXQgdGFnIGluZGUgaSBmb3JtdWxhcmVuJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EZWxpdmVyVG9FbWFpbEFkZHJlc3NGaWVsZCddID0gJypFbWFpbCB0aWwgYnJ1Z2VyLWFuZ2l2ZW4gZW1haWwgYWRyZXNzZSc7CiRsYW5nWydmaWVsZF90eXBlX1BhZ2VCcmVha0ZpZWxkJ10gPSAnLVNpZGVza2lmdCc7CiRsYW5nWydmaWVsZF90eXBlX0ZpbGVVcGxvYWRGaWVsZCddID0gJ0ZpbC11cGxvYWQnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxBZGRyZXNzRmllbGQnXSA9ICdFbWFpbCBcJnF1b3Q7RnJhIGFkcmVzc2VcJnF1b3Q7IGZlbHQnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxOYW1lRmllbGQnXSA9ICdFbWFpbCBcJnF1b3Q7RnJvbSBOYW1lXCZxdW90OyBmZWx0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsU3ViamVjdEZpZWxkJ10gPSAnRW1haWwgXCZxdW90O1N1YmplY3RcJnF1b3Q7IGZlbHQnOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0aWNUZXh0RmllbGQnXSA9ICctU3RhdGlzayB0ZWtzdCc7CiRsYW5nWydmaWVsZF90eXBlX1N5c3RlbUxpbmtGaWVsZCddID0gJy1TdGF0aXNrIGxpbmsnOwokbGFuZ1snZmllbGRfdHlwZV9MaW5rRmllbGQnXSA9ICctTGluayc7CiRsYW5nWydmaWVsZF90eXBlX0hpZGRlbkZpZWxkJ10gPSAnLVNranVsdCBmZWx0JzsKJGxhbmdbJ3ZhbGlkYXRpb25fbm9uZSddID0gJ0luZ2VuIHZhbGlkZXJpbmcnOwokbGFuZ1sndmFsaWRhdGlvbl9udW1lcmljJ10gPSAnTnVtZXJpc2snOwokbGFuZ1sndmFsaWRhdGlvbl9pbnRlZ2VyJ10gPSAnSGVsdGFsJzsKJGxhbmdbJ3ZhbGlkYXRpb25fZW1haWxfYWRkcmVzcyddID0gJ0VtYWlsIGFkcmVzc2UnOwokbGFuZ1sndmFsaWRhdGlvbl9tdXN0X2NoZWNrJ10gPSAnU2thbCB2JmFlbGlnO3JlIHZhbGd0JzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbWF0Y2gnXSA9ICdTa2FsIG1hdGNoZSByZWd1bCZhZWxpZztyIHVkdHJ5ayc7CiRsYW5nWyd2YWxpZGF0aW9uX3JlZ2V4X25vbWF0Y2gnXSA9ICdNJmFyaW5nOyBpa2tlIG1hdGNoZSByZWd1bCZhZWxpZztyIHVkdHJ5ayc7CiRsYW5nWydyZXF1aXJlZF9maWVsZF9taXNzaW5nJ10gPSAnRW4gdiZhZWxpZztyZGkgYmxldiBpa2tlIGFuZ2l2ZXQgaSBldCBwJmFyaW5nO2tyJmFlbGlnO3ZldCBmZWx0JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX3ZhbHVlJ10gPSAnQW5naXYgZW4gdiZhZWxpZztyZGkgZm9yIFwmcXVvdDslc1wmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfbnVtYmVyJ10gPSAnQW5naXYgZXQgdGFsIGZvciBcJnF1b3Q7JXNcJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl92YWxpZCddID0gJ0FuZ2l2IGVuIGd5bGRpZyB2JmFlbGlnO3JkaSBmb3IgXCZxdW90OyVzXCZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5faW50ZWdlciddID0gJ0FuZ2l2IGV0IGhlbHRhbCBmb3IgXCZxdW90OyVzXCZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5fZW1haWwnXSA9ICdBbmdpdiBlbiBneWxkaWcgZW1haWwgYWRyZXNzZSBmb3IgXCZxdW90OyVzXCZxdW90Oyc7CiRsYW5nWydub3RfdmFsaWRfZW1haWwnXSA9ICdcJnF1b3Q7JXNcJnF1b3Q7IGVyIGlra2UgZW4gZ3lsZGlnIGVtYWlsIGFkcmVzc2UhJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9ub19sb25nZXInXSA9ICdBbmdpdiBlbiB2JmFlbGlnO3JkaSBkZXIgaWtrZSBlciBsJmFlbGlnO25nZXJlIGVuZCAlcyB0ZWduJzsKJGxhbmdbJ3RpdGxlX2xpc3RfZGVsaW1pdGVyJ10gPSAnVGVnbiBkZXIga2FuIGJlbnl0dGVzIHRpbCBhdCBhZHNraWxsZSBmbGVyZSB2JmFlbGlnO3JkaWVyJzsKJGxhbmdbJ3lvdV9uZWVkX3Blcm1pc3Npb24nXSA9ICdZb3UgbmVlZCB0aGUgXCZxdW90OyVzXCZxdW90OyBwZXJtaXNzaW9uIHRvIHBlcmZvcm0gdGhhdCBvcGVyYXRpb24uJzsKJGxhbmdbJ2xhY2twZXJtaXNzaW9uJ10gPSAnU29ycnkhIFlvdSBkb25cJiMwMzk7dCBoYXZlIGFkZXF1YXRlIHByaXZpbGVnZXMgdG8gYWNjZXNzIHRoaXMgc2VjdGlvbi4nOwokbGFuZ1snZmllbGRfb3JkZXJfdXBkYXRlZCddID0gJ0ZlbHQtciZhZWxpZztra2VmJm9zbGFzaDtsZ2VuIGJsZXYgb3BkYXRlcmV0Lic7CiRsYW5nWydmb3JtX2RlbGV0ZWQnXSA9ICdGb3JtdWxhcmVtIGJsZXYgc2xldHRldCc7CiRsYW5nWydmaWVsZF9kZWxldGVkJ10gPSAnRmVsdGV0IGJsZXYgc2xldHRldCc7CiRsYW5nWydjb25maWd1cmF0aW9uX3VwZGF0ZWQnXSA9ICdLb25maWd1cmF0aW9uZW4gYmxldiBvcGRhdGVyZXQnOwokbGFuZ1sneW91X211c3RfY2hlY2snXSA9ICdEdSBza2FsIHMmYWVsaWc7dHRlIGtyeWRzIGkgXCZxdW90OyVzXCZxdW90OyBmb3IgYXQgZm9ydHMmYWVsaWc7dHRlJzsKJGxhbmdbJ211c3Rfc3BlY2lmeV9vbmVfZGVzdGluYXRpb24nXSA9ICdEdSBza2FsIGFuZ2l2ZSBtaW5kc3QgZW4gbW9kdGFnZXItYWRyZXNzZSc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2Zvcm0nXSA9ICdFciBkdSBzaWtrZXIgcCZhcmluZzsgZHUgdmlsIHNsZXR0ZSBmb3JtdWxhcmVuICVzPyc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2ZpZWxkJ10gPSAnRXIgZHUgc2lra2VyIHAmYXJpbmc7IGR1IHZpbCBzbGV0dGUgZmVsdGV0ICVzPyc7CiRsYW5nWydub3RpY2Vfc2VsZWN0X3R5cGUnXSA9ICdVZHZpZGVkZSBpbmRzdGlsbGluZ2VyIGthbiBmJm9zbGFzaDtyc3Qgc2VzLCBuJmFyaW5nO3IgZGVyIGVyIHZhbGd0IGZlbHR0eXBlJzsKJGxhbmdbJ2ZpZWxkX25hbWVfaW5fdXNlJ10gPSAnRmVsdG5hdm5lciBcJnF1b3Q7JXNcJnF1b3Q7IGVyIGFsbGVyZWRlIGkgYnJ1Zy4gQmVueXQgdmVubGlnc3QgdW5pa2tlIGZlbHRuYXZuZSc7CiRsYW5nWydmaWVsZF9ub19uYW1lJ10gPSAnRmVsdGVyIHNrYWwgbmF2bmdpdmVzIG1lZCBtaW5kcmUgZHUgc2wmYXJpbmc7IGRldHRlIGZyYSBpIEZvcm11bGFyIEdlbmVyYXRvcmVucyBpbmRzdGlsbGluZ2VyJzsKJGxhbmdbJ2Fub255bW91cyddID0gJ0Fub255bSc7CiRsYW5nWydhYmJyZXZpYXRpb25fbGVuZ3RoJ10gPSAnTCZhZWxpZztuZ2RlOiAlcyc7CiRsYW5nWydib3hlcyddID0gJyVzIGJva3NlJzsKJGxhbmdbJ29wdGlvbnMnXSA9ICclcyB2YWxnbXVsaWdoZWRlcic7CiRsYW5nWyd0ZXh0X2xlbmd0aCddID0gJyVzIGNoYXJzJzsKJGxhbmdbJ29yZGVyJ10gPSAnUiZhZWxpZztra2VmJm9zbGFzaDtsZ2UnOwokbGFuZ1sndW5zcGVjaWZpZWQnXSA9ICdbaWtrZSBhbmdpdmV0XSc7CiRsYW5nWydhZGRlZCddID0gJ3RpbGYmb3NsYXNoO2pldCc7CiRsYW5nWyd1cGRhdGVkJ10gPSAnb3BkYXRlcmV0JzsKJGxhbmdbJ3NvcnRfb3B0aW9ucyddID0gJ1NvcnQmZWFjdXRlO3IgdmFsZ211bGlnaGVkZXIgdmVkIG91dHB1dCc7CiRsYW5nWydzZWxlY3Rfb25lJ10gPSAnViZhZWxpZztsZyBlbic7CiRsYW5nWydzZWxlY3RfdHlwZSddID0gJ1YmYWVsaWc7bGdldHlwZSc7CiRsYW5nWyd0byddID0gJ1RpbCc7CiRsYW5nWyd5ZXMnXSA9ICdKYSc7CiRsYW5nWydubyddID0gJ05laic7CiRsYW5nWydyZWNpcGllbnRzJ10gPSAnbW9kdGFnZXJlJzsKJGxhbmdbJ2Rlc3RpbmF0aW9uX2NvdW50J10gPSAnJXMgZGVzdGluYXRpb25zJzsKJGxhbmdbJ3NhdmUnXSA9ICdHZW0nOwokbGFuZ1snYWRkJ10gPSAnVGlsZiZvc2xhc2g7aic7CiRsYW5nWyd1cGRhdGUnXSA9ICdPcGRhdCZlYWN1dGU7cic7CiRsYW5nWydzYXZlX2FuZF9jb250aW51ZSddID0gJ0dlbSBvZyBmb3J0cyZhZWxpZzt0IHJlZGlnZXJpbmcnOwokbGFuZ1snaW5mb3JtYXRpb24nXSA9ICdJbmZvcm1hdGlvbic7CiRsYW5nWydhdXRvbWF0aWMnXSA9ICdBdXRvbWF0aXNrJzsKJGxhbmdbJ2Zvcm1zJ10gPSAnRm9ybXVsYXJlcic7CiRsYW5nWydmb3JtJ10gPSAnRm9ybXVsYXIgJXMnOwokbGFuZ1snY29uZmlndXJhdGlvbiddID0gJ0tvbmZpZ3VyYXRpb24nOwokbGFuZ1snZmllbGRfcmVxdWlyZW1lbnRfdXBkYXRlZCddID0gJ0ZlbHRldHMgcCZhcmluZztrciZhZWxpZzt2ZXQtc3RhdHVzIG9wZGF0ZXJldCc7CiRsYW5nWydtYXhpbXVtX3NpemUnXSA9ICdNYWtzLiBzdCZvc2xhc2g7cnJlbHNlJzsKJGxhbmdbJ3Blcm1pdHRlZF9leHRlbnNpb25zJ10gPSAnVWR2aWRlbHNlcic7CiRsYW5nWydwZXJtaXR0ZWRfZmlsZXR5cGVzJ10gPSAnVGlsbGFkdGUgZmlsdHlwZXInOwokbGFuZ1snZmlsZV90b29fbGFyZ2UnXSA9ICdEZW4gdXBsb2FkXCYjMDM5O2VkZSBmaWwgZXIgZm9yIHN0b3IhIE1ha3NpbWFsIHN0Jm9zbGFzaDtycmVsc2UgZXI6ICc7CiRsYW5nWydpbGxlZ2FsX2ZpbGVfdHlwZSddID0gJ0Rlbm5lIHR5cGUgZmlsIG0mYXJpbmc7IGlra2UgdXBsb2FkZXMuIEtvbnRyb2xsJmVhY3V0ZTtyIHZlbmxpZ3N0IGF0IGZpbHR5cGVuIGVyIGtvcnJla3QuJzsKJGxhbmdbJ3VwbG9hZCddID0gJ1VwbG9hZCc7CiRsYW5nWydmb3JtX2ltcG9ydGVkJ10gPSAnRm9ybXVsYXIgaW1wb3J0ZXJldCc7CiRsYW5nWydmb3JtX2ltcG9ydF9mYWlsZWQnXSA9ICdJbXBvcnQgYWYgZm9ybXVsYXIgZmVqbGVkZS4gRGVyIHZhciBldCBwcm9ibGVtIG1lZCBmb3JtYXRldCBhZiBYTUwtZmlsZW4nOwokbGFuZ1sncm93cyddID0gJyVzIHImYWVsaWc7a2tlcic7CiRsYW5nWydjb2xzJ10gPSAnJXMga29sb25uZXInOwokbGFuZ1snMTJfaG91ciddID0gJzEyLXRpbWVycyB0aWQnOwokbGFuZ1snMjRfaG91ciddID0gJzI0LXRpbWVycyB0aWQnOwokbGFuZ1snaG91ciddID0gJ1RpbWUnOwokbGFuZ1snbWluJ10gPSAnTWludXQnOwokbGFuZ1snbWVyaWQnXSA9ICdNZXJpZGlhbic7CiRsYW5nWydkYXRlX3JhbmdlJ10gPSAnUmFuZ2U6ICVzIC0gJXMnOwokbGFuZ1sndGhhbmtzJ10gPSAnVGFrISBEaW4gYWZzZW5kZWxzZSBlciBtb2R0YWdldC4nOwokbGFuZ1snZWRpdCddID0gJ1JlZGlnJmVhY3V0ZTtyJzsKJGxhbmdbJ2RlbGV0ZSddID0gJ1NsZXQnOwokbGFuZ1snZGF5J10gPSAnRGFnJzsKJGxhbmdbJ21vbiddID0gJ00mYXJpbmc7bmVkJzsKJGxhbmdbJ3llYXInXSA9ICcmQXJpbmc7cic7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHVsZSB1bmluc3RhbGxlZC4nOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnTW9kdWxlIHZlcnNpb24gJXMgaW5zdGFsbGVkLic7CiRsYW5nWyd1cGdyYWRlZCddID0gJ01vZHVsZSB1cGdyYWRlZCB0byB2ZXJzaW9uICVzLic7CiRsYW5nWydidXR0b25fcHJldmlvdXMnXSA9ICdUaWxiYWdlLi4uJzsKJGxhbmdbJ2J1dHRvbl9zdWJtaXQnXSA9ICdTdWJtaXQgRm9ybSc7CiRsYW5nWydidXR0b25fY29udGludWUnXSA9ICdWaWRlcmUuLi4nOwokbGFuZ1sndmFsdWVfY2hlY2tlZCddID0gJ1ZhbGd0JzsKJGxhbmdbJ3ZhbHVlX3VuY2hlY2tlZCddID0gJ0lra2UgdmFsZ3QnOwokbGFuZ1sndGFiX21haW4nXSA9ICdNYWluJzsKJGxhbmdbJ3RhYl9zeW1ib2wnXSA9ICdGb3JtdWxhciBmcmVtdmlzbmluZ3MgaW5kc3RpbGxpbmdlcic7CiRsYW5nWyd0YWJfc3VibWl0J10gPSAnRm9ybXVsYXIgYWZzZW5kZWxzZSc7CiRsYW5nWyd0YWJfY2FwdGNoYSddID0gJ0NhcHRjaGEgaW5kc3RpbGxpbmdlcic7CiRsYW5nWyd0YWJfYWR2YW5jZWQnXSA9ICdBdmFuY2VyZWRlIGluZHN0aWxsaW5nZXInOwokbGFuZ1sndGFiX3RlbXBsYXRlbGF5b3V0J10gPSAnVGVtcGxhdGUgTGF5b3V0IE9wdGlvbnMnOwokbGFuZ1sndGFiX3N1Ym1pc3Npb250ZW1wbGF0ZSddID0gJ0Fmc2VuZGVsc2VzIHNrYWJlbG9uJzsKJGxhbmdbJ2FkZF9vcHRpb25zJ10gPSAnVGlsZiZvc2xhc2g7aiBmbGVyZSB2YWxnbXVsaWdoZWRlcic7CiRsYW5nWydkZWxldGVfb3B0aW9ucyddID0gJ1NsZXQgbWFya2VyZWRlIHZhbGdtdWxpZ2hlZGVyJzsKJGxhbmdbJ2FkZF9jaGVja2JveGVzJ10gPSAnQWRkIE1vcmUgQ2hlY2tib3hlcyc7CiRsYW5nWydkZWxldGVfY2hlY2tib3hlcyddID0gJ0RlbGV0ZSBNYXJrZWQgQ2hlY2tib3hlcyc7CiRsYW5nWydhZGRfYWRkcmVzcyddID0gJ0FkZCBBbm90aGVyIEFkZHJlc3MnOwokbGFuZ1snZGVsZXRlX2FkZHJlc3MnXSA9ICdEZWxldGUgTWFya2VkIEFkZHJlc3Nlcyc7CiRsYW5nWydhZGRfZGVzdGluYXRpb24nXSA9ICdBZGQgQW5vdGhlciBEZXN0aW5hdGlvbic7CiRsYW5nWydkZWxldGVfZGVzdGluYXRpb24nXSA9ICdEZWxldGUgTWFya2VkIERlc3RpbmF0aW9ucyc7CiRsYW5nWydzdXNwZWN0ZWRfc3BhbSddID0gJ1RvbyBtYW55IGVtYWlscyBnZW5lcmF0ZWQgZnJvbSB5b3VyIElQIGFkZHJlc3MuIEFudGktU3BhbSBjb2RlIGhhcyBwcmV2ZW50ZWQgZGVsaXZlcnkuJzsKJGxhbmdbJ3N1c3BlY3RlZF9zcGFtX2xvZyddID0gJ1N1c3BlY3RlZCBzcGFtIGZyb20gSVAgJXMgc3RvcHBlZC4nOwokbGFuZ1sncmVvcmRlciddID0gJ09tYXJyYW5nJmVhY3V0ZTtyIGZlbHRlcic7CiRsYW5nWydjYW5jZWwnXSA9ICdGb3J0cnlkJzsKJGxhbmdbJ3RpdGxlX3VkdF9uYW1lJ10gPSAnVXNlciBEZWZpbmVkIFRhZyc7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2Rlc3RwYWdlJ10gPSAnUGFnZSB0byByZXR1cm4gdG8gd2l0aCB1cGxvYWRzIGxpbmsnOwokbGFuZ1sndGl0bGVfdXBsb2FkbW9kdWxlX3N1bW1hcnknXSA9ICdTdWJtaXR0ZWQgd2l0aCBmb3JtYnVpbGRlcic7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2NhdGVnb3J5J10gPSAnVXBsb2FkcyBjYXRlZ29yeSc7CiRsYW5nWyd0aXRsZV9zZW5kdG9fdXBsb2FkcyddID0gJ1NlbmQgdGhpcyBmaWxlIHRvIHRoZSB1cGxvYWRzIG1vZHVsZSc7CiRsYW5nWyd0aXRsZV9sZWdlbmQnXSA9ICdMZWdlbmQnOwokbGFuZ1sndGl0bGVfbWF4aW11bV9sZW5ndGgnXSA9ICdNYXhpbXVtIExlbmd0aCc7CiRsYW5nWyd0aXRsZV9jaGVja2JveF9sYWJlbCddID0gJ0NoZWNrYm94IGxhYmVsJzsKJGxhbmdbJ3RpdGxlX2NoZWNrZWRfdmFsdWUnXSA9ICdWYWx1ZSB3aGVuIGNoZWNrZWQnOwokbGFuZ1sndGl0bGVfdW5jaGVja2VkX3ZhbHVlJ10gPSAnVmFsdWUgd2hlbiBub3QgY2hlY2tlZC4nOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfZGV0YWlscyddID0gJ0NoZWNrYm94IEdyb3VwIERldGFpbHMnOwokbGFuZ1sndGl0bGVfZGVsZXRlJ10gPSAnRGVsZXRlPyc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rfb25lX21lc3NhZ2UnXSA9ICdcJnF1b3Q7U2VsZWN0IE9uZVwmcXVvdDsgVGV4dCc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fc3ViamVjdCddID0gJ1NlbGVjdGlvbiBTdWJqZWN0JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X2NvdW50cnknXSA9ICdEZWZhdWx0IFNlbGVjdGlvbic7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9zdGF0ZSddID0gJ0RlZmF1bHQgU2VsZWN0aW9uJzsKJGxhbmdbJ3RpdGxlX29wdGlvbl9uYW1lJ10gPSAnT3B0aW9uIE5hbWUnOwokbGFuZ1sndGl0bGVfb3B0aW9uX3ZhbHVlJ10gPSAnVmFsdWUgU3VibWl0dGVkJzsKJGxhbmdbJ3RpdGxlX3B1bGxkb3duX2RldGFpbHMnXSA9ICdQdWxsZG93biBPcHRpb25zJzsKJGxhbmdbJ3RpdGxlX211bHRpc2VsZWN0X2RldGFpbHMnXSA9ICdNdWx0aXNlbGVjdCBPcHRpb25zJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2FkZHJlc3MnXSA9ICdEZXN0aW5hdGlvbiBFbWFpbCBBZGRyZXNzJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fbmFtZSddID0gJ1wmcXVvdDtGcmEgbmF2blwmcXVvdDsgZm9yIGVtYWlsJzsKJGxhbmdbJ3RpdGxlX3JlbGF4ZWRfZW1haWxfcmVnZXgnXSA9ICdVc2UgcmVsYXhlZCBlbWFpbCB2YWxpZGF0aW9uJzsKJGxhbmdbJ3RpdGxlX3JlbGF4ZWRfcmVnZXhfbG9uZyddID0gJ0Jlbnl0IGFmc2xhcHBldCBlbWFpbC12YWxpZGVyaW5nIChmLmVrcy4sIHRpbGxhZCBcJnF1b3Q7eEB5XCZxdW90OyBpIHN0ZWRldCBmb3IgYXQga3ImYWVsaWc7dmUgXCZxdW90O3hAeS50bGRcJnF1b3Q7KSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9mcm9tX2FkZHJlc3MnXSA9ICdcJnF1b3Q7RnJvbSBhZGRyZXNzXCZxdW90OyBmb3IgZW1haWwnOwokbGFuZ1sndGl0bGVfZW1haWxfZW5jb2RpbmcnXSA9ICdFbWFpbCBjaGFyYWN0ZXIgc2V0IGVuY29kaW5nJzsKJGxhbmdbJ3RpdGxlX2RpcmVjdG9yX2RldGFpbHMnXSA9ICdQdWxsZG93bi1iYXNlZCBFbWFpbGVyIERldGFpbHMnOwokbGFuZ1sndGl0bGVfZmlsZV9uYW1lJ10gPSAnRmlsZSBOYW1lJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX3N1YmplY3QnXSA9ICdFbWFpbCBTdWJqZWN0IExpbmUnOwokbGFuZ1sndGl0bGVfZm9ybV9uYW1lJ10gPSAnRm9ybXVsYXIgbmF2bic7CiRsYW5nWyd0aXRsZV9mb3JtX3N0YXR1cyddID0gJ0Zvcm11bGFyIHN0YXR1cyc7CiRsYW5nWyd0aXRsZV9yZWFkeV9mb3JfZGVwbG95bWVudCddID0gJ0tsYXIgdGlsIGJydWcnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MSddID0gJ0lra2Uga2xhcic7CiRsYW5nWyd0aXRsZV9yZWRpcmVjdF9wYWdlJ10gPSAnU2lkZSBkZXIgc2thbCB2aWRlcmVzdGlsbGVzIHRpbCBlZnRlciBhZnNlbmRlbHNlIGFmIGZvcm11bGFyJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTInXSA9ICdQbGVhc2UgYWRkIGEgZmllbGQgdG8gdGhlIGZvcm0gc28gdGhhdCB0aGUgdXNlclwmIzAzOTtzIGlucHV0IGdldHMgaGFuZGxlZC4gWW91IGNhbic7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHlfbGluayddID0gJ2Jlbnl0IGRlbm5lIGdlbnZlaic7CiRsYW5nWyd0aXRsZV9mb3JtX2FsaWFzJ10gPSAnRm9ybSBBbGlhcyc7CiRsYW5nWyd0aXRsZV9mb3JtX2ZpZWxkcyddID0gJ0Zvcm0gRmllbGRzJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2lkJ10gPSAnRmllbGQgSWQnOwokbGFuZ1sndGl0bGVfZmllbGRfbmFtZSddID0gJ0ZpZWxkIE5hbWUnOwokbGFuZ1sndGl0bGVfcmFkaW9ncm91cF9kZXRhaWxzJ10gPSAnUmFkaW8gQnV0dG9uIEdyb3VwIERldGFpbHMnOwokbGFuZ1sndGl0bGVfZmllbGRfdHlwZSddID0gJ0ZpZWxkIFR5cGUnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MyddID0gJ3RvIGNyZWF0ZSBhIGZvcm0gaGFuZGxpbmcgZmllbGQuJzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZm9ybSddID0gJ0FkZCBOZXcgRm9ybSc7CiRsYW5nWyd0aXRsZV9zaG93X3ZlcnNpb24nXSA9ICdTaG93IEZvcm0gQnVpbGRlciBWZXJzaW9uPyc7CiRsYW5nWyd0aXRsZV9zaG93X3ZlcnNpb25fbG9uZyddID0gJ1RoaXMgd2lsbCBlbWJlZCB5b3VyIGluc3RhbGxlZCB2ZXJzaW9uIG51bWJlciBvZiBGb3JtIEJ1aWxkZXIgbW9kdWxlIGluIGEgY29tbWVudCwgdG8gYWlkIGluIGRlYnVnZ2luZyc7CiRsYW5nWyd0aXRsZV9hZGRfbmV3X2ZpZWxkJ10gPSAnQWRkIE5ldyBGaWVsZCc7CiRsYW5nWyd0aXRsZV9mb3JtX3N1Ym1pdF9idXR0b24nXSA9ICdGb3JtIFN1Ym1pdCBCdXR0b24gVGV4dCc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eSddID0gJ0FkZCBKYXZhc2NyaXB0IHRvIGZpbmFsIFN1Ym1pdCBCdXR0b24gdGhhdCB3aWxsIGhlbHAgcHJldmVudCBtdWx0aXBsZSBzdWJtaXNzaW9ucz8nOwokbGFuZ1sndGl0bGVfc3VibWl0X2J1dHRvbl9zYWZldHlfaGVscCddID0gJ0FkZCBzYWZldHkgc2NyaXB0JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmV4dF9idXR0b24nXSA9ICdGb3JtIFwmcXVvdDtOZXh0XCZxdW90OyBCdXR0b24gVGV4dCAodXNlZCBmb3IgbXVsdGlwYWdlIGZvcm1zKSc7CiRsYW5nWyd0aXRsZV9mb3JtX3ByZXZfYnV0dG9uJ10gPSAnRm9ybSBcJnF1b3Q7UHJldmlvdXNcJnF1b3Q7IEJ1dHRvbiBUZXh0ICh1c2VkIGZvciBtdWx0aXBhZ2UgZm9ybXMpJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3ZhbGlkYXRpb24nXSA9ICdGaWVsZCBWYWxpZGF0aW9uJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fY3NzX2NsYXNzJ10gPSAnQ1NTIENsYXNzIGZvciB0aGlzIGZvcm0nOwokbGFuZ1sndGl0bGVfZmllbGRfY3NzX2NsYXNzJ10gPSAnQ1NTIENsYXNzIGZvciB0aGlzIGZpZWxkJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcmVxdWlyZWRfc3ltYm9sJ10gPSAnU3ltYm9sIHRvIG1hcmsgcmVxdWlyZWQgRmllbGRzJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkJ10gPSAnUmVxdWlyZWQnOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWRfbG9uZyddID0gJ1JlcXVpcmUgYSByZXNwb25zZSBmb3IgdGhpcyBGaWVsZCc7CiRsYW5nWyd0aXRsZV9oaWRlX2xhYmVsJ10gPSAnSGlkZSBMYWJlbCc7CiRsYW5nWyd0aXRsZV9oaWRlX2xhYmVsX2xvbmcnXSA9ICdIaWRlIHRoaXMgZmllbGRcJiMwMzk7cyBuYW1lIG9uIEZvcm0nOwokbGFuZ1sndGl0bGVfdGV4dCddID0gJ1N0YXRpYyB0ZXh0IHRvIGRpc3BsYXknOwokbGFuZ1sndGl0bGVfZmllbGRfcmVnZXgnXSA9ICdWYWxpZGF0aW9uIFJlZ2V4JzsKJGxhbmdbJ3RpdGxlX2xpbmVzX3RvX3Nob3cnXSA9ICdOdW1iZXIgb2YgTGluZXMgdG8gZGlzcGxheSc7CiRsYW5nWydub19kZWZhdWx0J10gPSAnTm8gRGVmYXVsdCc7CiRsYW5nWydyZWRpcmVjdF9hZnRlcl9hcHByb3ZhbCddID0gJ1BhZ2UgdG8gcmVkaXJlY3QgYWZ0ZXIgYXBwcm92YWwnOwokbGFuZ1sndGl0bGVfcmVnZXhfaGVscCddID0gJ1RoaXMgcmVndWxhciBleHByZXNzaW9uIHdpbGwgb25seSBiZSB1c2VkIGlmIFwmcXVvdDt2YWxpZGF0aW9uIHR5cGVcJnF1b3Q7IGlzIHNldCB0byBhIHJlZ2V4LXJlbGF0ZWQgb3B0aW9uLiBJbmNsdWRlIGEgZnVsbCBQZXJsLXN0eWxlIHJlZ2V4LCBpbmNsdWRpbmcgdGhlIHN0YXJ0L3N0b3Agc2xhc2hlcyBhbmQgZmxhZ3MgKGUuZy4sIFwmcXVvdDsvaW1hZ2VcLihcZCspL2lcJnF1b3Q7KSc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9hYmJyZXYnXSA9ICdSZXFcJiMwMzk7ZCc7CiRsYW5nWyd0aXRsZV9oaWRlX2Vycm9ycyddID0gJ0hpZGUgRXJyb3JzJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fZGlzcGxheXR5cGUnXSA9ICdGb3JtIERpc3BsYXkgVHlwZSc7CiRsYW5nWyd0aXRsZV9oaWRlX2Vycm9yc19sb25nJ10gPSAnUHJldmVudCBkZWJ1ZyAvIGVycm9yIG1lc3NhZ2VzIGZyb20gYmVpbmcgc2VlbiBieSB1c2Vycy4nOwokbGFuZ1sndGl0bGVfZW1haWxfdGVtcGxhdGUnXSA9ICdFbWFpbCBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX3NpemUnXSA9ICdNYXhpbXVtIHVwbG9hZCBmaWxlIHNpemUgKGtpbG9ieXRlcyknOwokbGFuZ1sndGl0bGVfbWF4aW11bV9zaXplX2xvbmcnXSA9ICdUaGlzIGxpbWl0YXRpb24gaXMgaW4gYWRkaXRpb24gdG8gYW55IGxpbWl0cyBzZXQgYnkgdGhlIHBocCBvciB3ZWIgc2VydmVyIGNvbmZpZ3VyYXRpb24nOwokbGFuZ1sndGl0bGVfcGVybWl0dGVkX2V4dGVuc2lvbnMnXSA9ICdQZXJtaXR0ZWQgRXh0ZW5zaW9ucyc7CiRsYW5nWyd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9uc19sb25nJ10gPSAnRW50ZXIgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCwgZXhjbHVkaW5nIHRoZSBkb3QgKGUuZy4sIFwmcXVvdDtqcGcsZ2lmLGpwZWdcJnF1b3Q7KS4gU3BhY2VzIHdpbGwgYmUgaWdub3JlZC4gTGVhdmluZyB0aGlzIGJsYW5rIG1lYW5zIHRoZXJlIHdpbGwgYmUgbm8gcmVzdHJpY3Rpb25zLic7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zJ10gPSAnRGlzcGxheSByZXN0cmljdGlvbnM/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnNfbG9uZyddID0gJ0Rpc3BsYXkgYW55IHNpemUgYW5kIGV4dGVuc2lvbiByZXN0cmljdGlvbnMgd2l0aCB0aGUgdXBsb2FkIGZpZWxkPyc7CiRsYW5nWyd0aXRsZV9mb3JtX3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgdG8gdXNlIHRvIERpc3BsYXkgRm9ybSc7CiRsYW5nWyd0aXRsZV9wYWdlX3hfb2ZfeSddID0gJ1BhZ2UgJXMgb2YgJXMnOwokbGFuZ1sndGl0bGVfbm9fYWR2YW5jZWRfb3B0aW9ucyddID0gJ0ZpZWxkIGhhcyBubyBhZHZhbmNlZCBvcHRpb25zLic7CiRsYW5nWyd0aXRsZV9mb3JtX3Vuc3BlY2lmaWVkJ10gPSAnVGV4dCB0byByZXR1cm4gZm9yIHVuc3BlY2lmaWVkIGZpZWxkIHZhbHVlcyc7CiRsYW5nWyd0aXRsZV9lbmFibGVfZmFzdGFkZF9sb25nJ10gPSAnRW5hYmxlIGZhc3QgZmllbGQgYWRkaW5nIHB1bGxkb3duIGZvciBmb3Jtcz8nOwokbGFuZ1sndGl0bGVfZW5hYmxlX2Zhc3RhZGQnXSA9ICdFbmFibGUgZmFzdCBmaWVsZCBhZGQgcHVsbGRvd24/JzsKJGxhbmdbJ3RpdGxlX2Zhc3RhZGQnXSA9ICdGYXN0IGZpZWxkIGFkZGVyJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9hbnRpc3BhbV9sb25nJ10gPSAnQ2xpY2tpbmcgdGhpcyB3aWxsIG9ubHkgYWxsb3cgMTAgZW1haWxzIHRvIGJlIHRyaWdnZXJlZCBmcm9tIGEgZ2l2ZW4gSVAgYWRkcmVzcyAocGVyIGhvdXIpLic7CiRsYW5nWyd0aXRsZV9lbmFibGVfYW50aXNwYW0nXSA9ICdFbmFibGUgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcz8nOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGlkcyddID0gJ1Nob3cgRmllbGQgSURzJzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRpZHNfbG9uZyddID0gJ0NsaWNraW5nIHRoaXMgd2lsbCBhbGxvdyBkaXNwbGF5aW5nIGZpZWxkIGlkcyB3aGVuIGFkZGluZyBvciBlZGl0aW5nIGEgZm9ybSc7CiRsYW5nWyd0aXRsZV94bWxfdG9fdXBsb2FkJ10gPSAnVXBsb2FkIGZvcm0gZnJvbSBYTUwgZmlsZSc7CiRsYW5nWyd0aXRsZV94bWxfdXBsb2FkX2Zvcm1uYW1lJ10gPSAnVXNlIHRoaXMgZm9ybSBuYW1lJzsKJGxhbmdbJ3RpdGxlX2ltcG9ydF9sZWdlbmQnXSA9ICdYTUwgRm9ybSBJbXBvcnQnOwokbGFuZ1sndGl0bGVfeG1sX3VwbG9hZF9mb3JtYWxpYXMnXSA9ICdVc2UgdGhpcyBmb3JtIGFsaWFzJzsKJGxhbmdbJ3RpdGxlX2h0bWxfZW1haWwnXSA9ICdHZW5lcmF0ZSBIVE1MIGVtYWlsPyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZSddID0gJ0F1dG9tYXRpY2FsbHkgcG9wdWxhdGU/JzsKJGxhbmdbJ3RpdGxlX2xpbmtfYXV0b3BvcHVsYXRlX2hlbHAnXSA9ICdBdXRvbWF0aWNhbGx5IHBvcHVsYXRlIHdpdGggdGhlIFVSTCBvZiB0aGUgcGFnZSBjb250YWluaW5nIHRoZSBmb3JtPyAodGhpcyBvdmVycmlkZXMgc2l0ZSBwYWdlIGxpbmsgb3B0aW9uIGJlbG93KSc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2xpbmsnXSA9ICdEZWZhdWx0IGxpbmsgVVJMJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfbGlua190aXRsZSddID0gJ0RlZmF1bHQgbGluayB0ZXh0JzsKJGxhbmdbJ3RpdGxlX2xpbmtfdG9fc2l0ZXBhZ2UnXSA9ICdMaW5rIHRvIHNpdGUgcGFnZSc7CiRsYW5nWyd0aXRsZV9jYXB0Y2hhX25vdF9pbnN0YWxsZWQnXSA9ICdZb3UgY2FuIHVzZSA8YSBocmVmPVwmcXVvdDtodHRwOi8vd3d3Lndpa2lwZWRpYS5vcmcvd2lraS9DYXB0Y2hhXCZxdW90OyB0YXJnZXQ9XCZxdW90O19uZXdcJnF1b3Q7PlwmcXVvdDtDYXB0Y2hhXCZxdW90OzwvYT4gdG8gcHJvdGVjdCBmb3JtIHN1Ym1pc3Npb25zIGlmIHlvdSBpbnN0YWxsIHRoZSBDYXB0Y2hhIG1vZHVsZS4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIDxhIGhyZWY9XCZxdW90O2h0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvY2FwdGNoYS9cJnF1b3Q7PmNoZWNrIHRoZSBDYXB0Y2hhIHByb2plY3Q8L2E+Lic7CiRsYW5nWyd0aXRsZV91c2VfY2FwdGNoYSddID0gJ1VzZSBDYXB0Y2hhIHRvIHByb3RlY3QgZm9ybSBzdWJtaXNzaW9ucz8nOwokbGFuZ1sndGl0bGVfdXNlX2NhcHRjaGFfaGVscCddID0gJ0NoZWNrIGhlcmUgdG8gcHJvdGVjdCB5b3VyIGZvcm0gd2l0aCBhIDxhIGhyZWY9XCZxdW90O2h0dHA6Ly93d3cud2lraXBlZGlhLm9yZy93aWtpL0NhcHRjaGFcJnF1b3Q7IHRhcmdldD1cJnF1b3Q7X25ld1wmcXVvdDs+XCZxdW90O0NhcHRjaGFcJnF1b3Q7PC9hPi4nOwokbGFuZ1sndGl0bGVfdXNlcl9jYXB0Y2hhJ10gPSAnUGxlYXNlIGNvbmZpcm0gdGhhdCB5b3UgYXJlIG5vdCBhIHNjcmlwdCBieSBlbnRlcmluZyB0aGUgbGV0dGVycyBmcm9tIHRoZSBpbWFnZS4nOwokbGFuZ1sndGl0bGVfdXNlcl9jYXB0Y2hhX2Vycm9yJ10gPSAnRmFpbGVkIHRleHQgZm9yIENhcHRjaGEnOwokbGFuZ1snd3JvbmdfY2FwdGNoYSddID0gJ0NhcHRjaGEgd2FzIG5vdCBjb3JyZWN0Lic7CiRsYW5nWyd0aXRsZV90aXRsZV91c2VyX2NhcHRjaGEnXSA9ICdIZWxwIHRleHQgZm9yIENhcHRjaGEnOwokbGFuZ1snbGlua19sYWJlbCddID0gJ0xpbmsgTGFiZWwnOwokbGFuZ1snbGlua19kZXN0aW5hdGlvbiddID0gJ0xpbmsgRGVzdGluYXRpb24gVVJMJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfc2V0J10gPSAnQ2hlY2tlZCBieSBEZWZhdWx0Pyc7CiRsYW5nWyd0aXRsZV8yNF9ob3VyJ10gPSAnVXNlIDI0LWhvdXIgY2xvY2s/JzsKJGxhbmdbJ3RpdGxlX2JlZm9yZV9ub29uJ10gPSAnQU0nOwokbGFuZ1sndGl0bGVfYWZ0ZXJfbm9vbiddID0gJ1BNJzsKJGxhbmdbJ3RpdGxlX3NtYXJ0eV9ldmFsJ10gPSAnUHJvY2VzcyBzbWFydHkgdGFncyB3aXRoaW4gZmllbGQ/JzsKJGxhbmdbJ3RpdGxlX3RleHRhcmVhX3Jvd3MnXSA9ICdSb3dzIChub3RlOiB0aGlzIG1heSBiZSBvdmVycmlkZGVuIGJ5IENTUyknOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfY29scyddID0gJ0NvbHVtbnMgKG5vdGU6IHRoaXMgbWF5IGJlIG92ZXJyaWRkZW4gYnkgQ1NTKSc7CiRsYW5nWyd0aXRsZV9mb3JtX21haW4nXSA9ICdNYWluIEZvcm0gRGV0YWlscyc7CiRsYW5nWydoZWxwX2xlYXZlZW1wdHknXSA9ICdUaGlzIGZpZWxkIG1heSBiZSBsZWZ0IGVtcHR5JzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVzX2Zvcl90ZW1wbGF0ZSddID0gJ1ZhcmlhYmxlcyBGb3IgVGVtcGxhdGUnOwokbGFuZ1snaGVscF9zdWJtaXNzaW9uX2RhdGUnXSA9ICdEYXRvIGZvciBhZnNlbmRlbHNlJzsKJGxhbmdbJ2hlbHBfc2VydmVyX25hbWUnXSA9ICdEaW4gc2VydmVyJzsKJGxhbmdbJ2hlbHBfc3ViX3NvdXJjZV9pcCddID0gJ0lQIGFkZHJlc3Mgb2YgcGVyc29uIHVzaW5nIGZvcm0nOwokbGFuZ1snaGVscF9zdWJfdXJsJ10gPSAnVVJMIG9mIHBhZ2UgY29udGFpbmluZyBmb3JtJzsKJGxhbmdbJ2hlbHBfb3RoZXJfZmllbGRzJ10gPSAnT3RoZXIgZmllbGRzIHdpbGwgYmUgYXZhaWxhYmxlIGFzIHlvdSBhZGQgdGhlbSB0byB0aGUgZm9ybS4nOwokbGFuZ1snaGVscF9kYXRlX2Zvcm1hdCddID0gJ1NlZSA8YSBocmVmPVwmcXVvdDtodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwXCZxdW90OyB0YXJnZXQ9X05FVz50aGUgUEhQIE1hbnVhbDwvYT4gZm9yIGZvcm1hdHRpbmcgaGVscC4nOwokbGFuZ1snaGVscF92YXJpYWJsZV9uYW1lJ10gPSAnVmFyaWFibGUnOwokbGFuZ1snaGVscF9mb3JtX2ZpZWxkJ10gPSAnRmllbGQgUmVwcmVzZW50ZWQnOwokbGFuZ1snbGlua19iYWNrX3RvX2Zvcm0nXSA9ICcmbGFxdW87IEJhY2sgdG8gRm9ybSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX3RlbXBsYXRlJ10gPSAnQ3JlYXRlIFNhbXBsZSBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2h0bWxfdGVtcGxhdGUnXSA9ICdDcmVhdGUgU2FtcGxlIEhUTUwgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9oZWFkZXInXSA9ICdDcmVhdGUgU2FtcGxlIEhlYWRlcic7CiRsYW5nWydoZWxwX3RhYl9zeW1ib2wnXSA9ICdhIHRhYiBjaGFyYWN0ZXInOwokbGFuZ1sndGl0bGVfZmlsZV90ZW1wbGF0ZSddID0gJ1RlbXBsYXRlIGZvciBvbmUgbGluZSBvZiBvdXRwdXQgZmlsZSc7CiRsYW5nWyd0aXRsZV9maWxlX2hlYWRlciddID0gJ1RlbXBsYXRlIGZvciB0aGUgaGVhZGVyIG9mIG91dHB1dCBmaWxlJzsKJGxhbmdbJ3RpdGxlX2NvbmZpcm1hdGlvbl91cmwnXSA9ICdVUkwgdG8gY2xpY2sgZm9yIGZvcm0gY29uZmlybWF0aW9uJzsKJGxhbmdbJ3RpdGxlX3ZhbHVlJ10gPSAnVmFsdWUgKHNlZSBBZHZhbmNlZCBUYWIgaWYgeW91IHVzZSBTbWFydHkgdGFncyknOwokbGFuZ1sndGl0bGVfZGF0ZV9mb3JtYXQnXSA9ICdEYXRlIEZvcm1hdCAoc3RhbmRhcmQgPGEgaHJlZj1cJnF1b3Q7aHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5kYXRlLnBocFwmcXVvdDs+UEhQIERhdGUgRm9ybWF0czwvYT4pJzsKJGxhbmdbJ3RpdGxlX3VzZV93eXNpd3lnJ10gPSAnVXNlIFdZU0lXWUcgZWRpdG9yIGZvciB0ZXh0IEFyZWE/JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9hY3Rpb25zJ10gPSAnRm9ybSBTdWJtaXNzaW9uIEJlaGF2aW9yJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9sYWJlbHMnXSA9ICdTdWJtaXNzaW9uIEJ1dHRvbiBMYWJlbHMnOwokbGFuZ1sndGl0bGVfc3VibWl0X2hlbHAnXSA9ICdUaGlzIHBhZ2UgbGV0cyB5b3UgY3VzdG9taXplIEZvcm0gU3VibWlzc2lvbi4gSXQgZG9lc25cJiMwMzk7dCBkZXRlcm1pbmUgd2hhdCB0aGUgRm9ybSBCdWlsZGVyIGRvZXMgd2l0aCB0aGUgc3VibWl0dGVkIGRhdGEuIFlvdSBjYW4gc2V0IHRoYXQgdXAgYnkgYWRkaW5nIFwmcXVvdDtEaXNwb3NpdGlvblwmcXVvdDsgZmllbGRzIHRvIHlvdXIgZm9ybS4nOwokbGFuZ1sndGl0bGVfc3RhcnRfeWVhciddID0gJ1llYXIgcmFuZ2Ugc3RhcnQnOwokbGFuZ1sndGl0bGVfZW5kX3llYXInXSA9ICdZZWFyIHJhbmdlIGVuZCc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3llYXInXSA9ICdEZWZhdWx0IFllYXInOwokbGFuZ1sndGl0bGVfZGVmYXVsdF95ZWFyX2hlbHAnXSA9ICcoU2V0IHRvIC0xIGZvciBkZWZhdWx0IHllYXIgdG8gYmUgdGhlIGN1cnJlbnQgeWVhciknOwokbGFuZ1sndGl0bGVfc3VibWl0X2FjdGlvbiddID0gJ0FmdGVyIGZvcm0gaXMgc3VibWl0dGVkJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9yZXNwb25zZSddID0gJ1Jlc3BvbnNlIHRvIGRpc3BsYXknOwokbGFuZ1snZGlzcGxheV90ZXh0J10gPSAnRGlzcGxheSBcJnF1b3Q7U3VibWlzc2lvbiBUZW1wbGF0ZVwmcXVvdDsnOwokbGFuZ1sncmVkaXJlY3RfdG9fcGFnZSddID0gJ1JlZGlyZWN0IHRvIHNpdGUgcGFnZSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfcmVzcG9uc2VfaGVscCddID0gJ1RoaXMgdGVtcGxhdGUgaXMgZm9yIGRpc3BsYXkgdG8gdGhlIHVzZXIgYWZ0ZXIgdGhlIGZvcm0gaXMgc3VibWl0dGVkLiBUaGlzIHRlbXBsYXRlIGRvZXMgbm90IGVmZmVjdCBlbWFpbHMgZ2VuZXJhdGVkIG9yIG90aGVyIGZvcm0gZGlzcG9zaXRpb25zIC0tIHlvdSBzZXQgdGhvc2UgdGVtcGxhdGVzICh3aGVyZSBhcHByb3ByaWF0ZSkgaW4gdGhlIFwmcXVvdDthZHZhbmNlZFwmcXVvdDsgdGFiIGZvciB0aG9zZSBkaXNwb3NpdGlvbiBmaWVsZHMuJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX3BhZ2UnXSA9ICdEZXN0aW5hdGlvbiBQYWdlJzsKJGxhbmdbJ3RpdGxlX3JlcXVpcmVfZmllbGRuYW1lcyddID0gJ1JlcXVpcmUgRmllbGRuYW1lcyc7CiRsYW5nWyd0aXRsZV9yZXF1aXJlX2ZpZWxkbmFtZXNfbG9uZyddID0gJ1JlcXVpcmUgZmllbGRzIHRvIGhhdmUgYSBuYW1lPyc7CiRsYW5nWyd0aXRsZV91bmlxdWVfZmllbGRuYW1lcyddID0gJ1JlcXVpcmUgVW5pcXVlIEZpZWxkbmFtZXMnOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXNfbG9uZyddID0gJ1JlcXVpcmUgZmllbGRzIHRvIGhhdmUgdW5pcXVlIG5hbWVzPyc7CiRsYW5nWyd0aXRsZV9yZW9yZGVyX2Zvcm0nXSA9ICdSZW9yZGVyIEZpZWxkcyc7CiRsYW5nWyd0aXRsZV9sb2FkX3RlbXBsYXRlJ10gPSAnTG9hZCB0ZW1wbGF0ZSc7CiRsYW5nWydkZWZhdWx0X3RlbXBsYXRlJ10gPSAnRGVmYXVsdCBUZW1wbGF0ZSc7CiRsYW5nWyd0YWJsZV9sZWZ0X3RlbXBsYXRlJ10gPSAnVGFibGUgVGVtcGxhdGUsIFRpdGxlcyBvbiBsZWZ0JzsKJGxhbmdbJ3RhYmxlX3RvcF90ZW1wbGF0ZSddID0gJ1RhYmxlIFRlbXBsYXRlLCBUaXRsZSBvbiB0b3AnOwokbGFuZ1snZm9ybV90ZW1wbGF0ZV9uYW1lJ10gPSAnVGVtcGxhdGUgZnJvbSAlcyc7CiRsYW5nWyd0ZW1wbGF0ZV9hcmVfeW91X3N1cmUnXSA9ICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gb3ZlcndyaXRlIHlvdXIgdGVtcGxhdGUgd2l0aCB0aGUgc2VsZWN0ZWQgdGVtcGxhdGU/IChFdmVuIGlmIHlvdSBzYXkgT0ssIHlvdSB3aWxsIHN0aWxsIG5lZWQgdG8gc2F2ZSB0aGUgY2hhbmdlKSc7CiRsYW5nWydub19yZWZlcnJlcl9pbmZvJ10gPSAnTm8gSFRUUF9SRUZFUkVSIGluZm8gYXZhaWxhYmxlIChwcm9iYWJseSBkdWUgdG8gdXNlIG9mIFVzZXIgRW1haWwgVmFsaWRhdGlvbiknOwokbGFuZ1sndmFsaWRhdGlvbl9wYXJhbV9lcnJvciddID0gJ1ZhbGlkYXRpb24gUGFyYW1ldGVyIEVycm9yLiBQbGVhc2UgbWFrZSBzdXJlIHlvdSBjb3B5IHRoZSBVUkwgZnJvbSB5b3VyIGVtYWlsIGNvcnJlY3RseSEnOwokbGFuZ1sndmFsaWRhdGlvbl9yZXNwb25zZV9lcnJvciddID0gJ1ZhbGlkYXRpb24gUmVwc29uc2UgRXJyb3IuIFBsZWFzZSBtYWtlIHN1cmUgeW91IGNvcHkgdGhlIFVSTCBmcm9tIHlvdXIgZW1haWwgY29ycmVjdGx5ISc7CiRsYW5nWyd2YWxpZGF0aW9uX25vX2ZpZWxkX2Vycm9yJ10gPSAnVmFsaWRhdGlvbiBSZXBzb25zZSBFcnJvci4gTm8gZW1haWwgdmFsaWRhdGlvbiBmaWVsZCBpbiB0aGlzIGZvcm0hJzsKJGxhbmdbJ2FkbWluZGVzYyddID0gJ0FkZCwgZWRpdCBhbmQgbWFuYWdlIGludGVyYWN0aXZlIEZvcm1zJzsKJGxhbmdbJ2RhdGVfamFudWFyeSddID0gJ0phbnVhcnknOwokbGFuZ1snZGF0ZV9mZWJydWFyeSddID0gJ0ZlYnJ1YXJ5JzsKJGxhbmdbJ2RhdGVfbWFyY2gnXSA9ICdNYXJjaCc7CiRsYW5nWydkYXRlX2FwcmlsJ10gPSAnQXByaWwnOwokbGFuZ1snZGF0ZV9tYXknXSA9ICdNYXknOwokbGFuZ1snZGF0ZV9qdW5lJ10gPSAnSnVuZSc7CiRsYW5nWydkYXRlX2p1bHknXSA9ICdKdWx5JzsKJGxhbmdbJ2RhdGVfYXVndXN0J10gPSAnQXVndXN0JzsKJGxhbmdbJ2RhdGVfc2VwdGVtYmVyJ10gPSAnU2VwdGVtYmVyJzsKJGxhbmdbJ2RhdGVfb2N0b2JlciddID0gJ09jdG9iZXInOwokbGFuZ1snZGF0ZV9ub3ZlbWJlciddID0gJ05vdmVtYmVyJzsKJGxhbmdbJ2RhdGVfZGVjZW1iZXInXSA9ICdEZWNlbWJlcic7CiRsYW5nWydzdWJtaXNzaW9uX2Vycm9yJ10gPSAnU29ycnkhIFRoZXJlIHdhcyBhbiBlcnJvciBoYW5kbGluZyB5b3VyIGZvcm0gc3VibWlzc2lvbi4nOwokbGFuZ1snc3VibWl0X2Vycm9yJ10gPSAnRm9ybUJ1aWxkZXIgc3VibWl0IGVycm9yOiAlcyc7CiRsYW5nWyd1cGxvYWRzX2Vycm9yJ10gPSAnRXJyb3IgY29tbWl0dGluZyBmaWxlIHRvIHRoZSB1cGxvYWRzIG1vZHVsZTogJXMnOwokbGFuZ1snbm91cGxvYWRzX2Vycm9yJ10gPSAnQ291bGQgbm90IGZpbmQgdGhlIHVwbG9hZHMgbW9kdWxlJzsKJGxhbmdbJ3VwbG9hZF9hdHRhY2hfZXJyb3InXSA9ICdVcGxvYWQvQXR0YWNobWVudCBlcnJvciBvbiBmaWxlICVzICh0bXBfbmFtZTogJXMsIG9mIHR5cGUgJXMpJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3JfZmlsZV9sb2NrJ10gPSAnRXJyb3IuIFVuYWJsZSB0byBvYnRhaW4gbG9jayBmb3IgZmlsZS4nOwokbGFuZ1snZW1haWxfZGVmYXVsdF90ZW1wbGF0ZSddID0gJ0Zvcm1CdWlsZGVyIEFmc2VuZGVsc2UnOwokbGFuZ1snZW1haWxfdGVtcGxhdGVfbm90X3NldCddID0gJzxici8+RW1haWwgVGVtcGxhdGUgbm90IHlldCBzZXQhJzsKJGxhbmdbJ21pc3NpbmdfY21zX21haWxlciddID0gJ0Zvcm1CdWlsZGVyOiBDYW5ub3QgZmluZCByZXF1aXJlZCBtb2R1bGUgQ01TTWFpbGVyISc7CiRsYW5nWyd1c2VyX2FwcHJvdmVkX3N1Ym1pc3Npb24nXSA9ICdVc2VyIGFwcHJvdmVkIHN1Ym1pc3Npb24gJXMgZnJvbSAlcyc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J10gPSAnRXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZCc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InXSA9ICdFdmVudCB0cmlnZ2VyZWQgaWYgdGhlcmUgaXMgYW4gZXJyb3Igd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1EaXNwbGF5J10gPSAnRXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIGRpc3BsYXllZCc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J10gPSAnPHA+RXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZC48L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gVGhlIGZvcm0gbmFtZSAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4NCjwvdWw+ICc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InXSA9ICc8cD5FdmVudCB0cmlnZ2VyZWQgaWYgdGhlcmUgaXMgYW4gZXJyb3Igd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIFRoZSBmb3JtIG5hbWUgKHN0cmluZyk8L2xpPg0KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBUaGUgaW50ZXJuYWwgZm9ybSBpZCAoaW50KTwvbGk+DQo8bGk+PGVtPmVycm9yPC9lbT4gLSBBIGxpc3Qgb2YgYWxsIGtub3duIGVycm9ycyAoc3RyaW5nKTwvbGk+DQo8L3VsPiAnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXSA9ICc8cD5FdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgZGlzcGxheWVkPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIFRoZSBmb3JtIG5hbWUgKHN0cmluZyk8L2xpPg0KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBUaGUgaW50ZXJuYWwgZm9ybSBpZCAoaW50KTwvbGk+DQo8L3VsPiAnOwokbGFuZ1sndGVtcGxhdGVfdmFyaWFibGVfaGVscCddID0gJzxoMz5Gb3JtIFRlbXBsYXRlIFZhcmlhYmxlczwvaDM+DQo8cD5Zb3UgY2FuIGVkaXQgaXQgdG8gbWFrZSB5b3VyIGZvcm0gbGF5b3V0IGxvb2sgYW55IHdheSB5b3VcJiMwMzk7ZCBsaWtlLg0KICAgVG8gbWFrZSB0aGUgZm9ybSB3b3JrLCB5b3VcJiMwMzk7bGwgbmVlZCB0byBhbHdheXMgaW5jbHVkZSB0aGUgeyRmYl9oaWRkZW59IGFuZCB7JHN1Ym1pdH0NCiAgIHRhZ3MuPC9wPg0KDQo8cD5Zb3UgY2FuIGFjY2VzcyB5b3VyIGZvcm0gZmllbGRzIGVpdGhlciB1c2luZyB0aGUgJGZpZWxkcyBhcnJheSBvciBieSBkaXJlY3RseSBhY2Nlc3NpbmcgZmllbGRzIGJ5IHRoZWlyIG5hbWVzIChlLmcuLCB7JG15ZmllbGQtPmlucHV0fSApPC9wPg0KDQoNCjxwPkVhY2ggZmllbGQgaGFzIHRoZSBmb2xsb3dpbmcgYXR0cmlidXRlczo8L3A+DQo8dGFibGU+DQo8dHI+PHRoPkZpZWxkPC90aD48dGg+VmFsdWU8L3RoPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5kaXNwbGF5PC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgc2hvdWxkIGJlIGRpc3BsYXllZCwgMCBvdGhlcndpc2U8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5yZXF1aXJlZDwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIGlzIHJlcXVpcmVkLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPnJlcXVpcmVkX3N5bWJvbDwvdGQ+PHRkPnRoZSBzeW1ib2wgZm9yIHJlcXVpcmVkIGZpZWxkczwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmNzc19jbGFzczwvdGQ+PHRkPnRoZSBDU1MgY2xhc3Mgc3BlY2lmaWVkIGZvciB0aGlzIGZpZWxkPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+dmFsaWQ8L3RkPjx0ZD4xIGlmIHRoaXMgZmllbGQgaGFzIHBhc3NlZCB2YWxpZGF0aW9uLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmVycm9yPC90ZD48dGQ+VGV4dCBvZiB0aGUgdmFsaWRhdGlvbiBwcm9ibGVtLCBpbiB0aGUgZXZlbnQgdGhhdCB0aGlzIGZpZWxkIGRpZCBub3QgdmFsaWRhdGU8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5oaWRlX25hbWU8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBuYW1lIHNob3VsZCBiZSBoaWRkZW4sIDAgb3RoZXJ3aXNlPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aGFzX2xhYmVsPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgdHlwZSBoYXMgYSBsYWJlbDwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPm5lZWRzX2RpdjwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIG5lZWRzIHRvIGJlIHdyYXBwZWQgaW4gYSBESVYgKG9yIHRhYmxlIHJvdywgaWYgdGhhdFwmIzAzOTtzIHRoZSB3YXkgeW91IHN3aW5nKTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPm5hbWU8L3RkPjx0ZD50aGUgZmllbGRcJiMwMzk7cyBuYW1lPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aW5wdXQ8L3RkPjx0ZD50aGUgZmllbGRcJiMwMzk7cyBpbnB1dCBjb250cm9sIChlLmcuLCB0aGUgaW5wdXQgZmllbGQgaXRzZWxmKTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmlucHV0X2lkPC90ZD48dGQ+dGhlIElEIG9mIHRoZSBmaWVsZFwmIzAzOTtzIGlucHV0ICh1c2VmdWwgZm9yIDxsYWJlbCBmb3I9XCZxdW90O1wmcXVvdDs+KTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPnR5cGU8L3RkPjx0ZD50aGUgZmllbGRcJiMwMzk7cyBkYXRhIHR5cGU8L3RkPjwvdHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KPHRyPjx0ZD5maWVsZC0+bXVsdGlwbGVfcGFydHM8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYSBjb2xsZWN0aW9uIG9mIGNvbnRyb2xzPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+bGFiZWxfcGFydHM8L3RkPjx0ZD4xIGlmIHRoZSBjb2xsZWN0aW9uIG9mIGNvbnRyb2xzIGhhcyBzZXBhcmF0ZSBsYWJlbHMgZm9yIGVhY2ggY29udHJvbDwvdGQ+PC90cj4NCjwvdGFibGU+DQoNCjxwPkluIGNlcnRhaW4gY2FzZXMsIGZpZWxkLT5pbnB1dCBpcyBhY3R1YWxseSBhbiBhcnJheSBvZiBvYmplY3RzIHJhdGhlciB0aGFuIGFuIGlucHV0LiBUaGlzIGhhcHBlbnMsIGZvciBleGFtcGxlLCBpbiBDaGVja0JveEdyb3VwcyBvciBSYWRpb0J1dHRvbkdyb3Vwcy4gRm9yIHRoZW0sIHlvdSBjYW4gaXRlcmF0ZSB0aHJvdWdoIGZpZWxkLT5pbnB1dC0+bmFtZSBhbmQgZmllbGQtPmlucHV0LT5pbnB1dHMuPC9wPg0KICAgIA0KPHA+QWRkaXRpb25hbCBzbWFydHkgdmFyaWFibGVzIHRoYXQgeW91IGNhbiB1c2UgaW5jbHVkZTo8L3A+DQo8dGFibGU+DQo8dHI+PHRoPlZhcmlhYmxlPC90aD48dGg+VmFsdWU8L3RoPjwvdHI+DQo8dHI+PHRkPnRvdGFsX3BhZ2VzPC90ZD48dGQ+bnVtYmVyIG9mIHBhZ2VzIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD50aGlzX3BhZ2U8L3RkPjx0ZD5udW1iZXIgZm8gdGhlIGN1cnJlbnQgcGFnZSBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+dGl0bGVfcGFnZV94X29mX3k8L3RkPjx0ZD5kaXNwbGF5cyBcJnF1b3Q7cGFnZSB4IG9mIHlcJnF1b3Q7IGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD5jc3NfY2xhc3M8L3RkPjx0ZD5DU1MgQ2xhc3MgZm9yIHRoZSBmb3JtPC90ZD48L3RyPg0KPHRyPjx0ZD5mb3JtX25hbWU8L3RkPjx0ZD5Gb3JtIG5hbWU8L3RkPjwvdHI+DQo8dHI+PHRkPmZvcm1faWQ8L3RkPjx0ZD5Gb3JtIGRhdGFiYXNlIElEPC90ZD48L3RyPg0KPHRyPjx0ZD5wcmV2PC90ZD48dGQ+XCZxdW90O0JhY2tcJnF1b3Q7IGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD5zdWJtaXQ8L3RkPjx0ZD5cJnF1b3Q7Q29udGludWVcJnF1b3Q7IG9yIFwmcXVvdDtTdWJtaXRcJnF1b3Q7IGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zLCBhZGp1c3RzIGF1dG9tYXRpY2FsbHk8L3RkPjwvdHI+DQo8L3RhYmxlPg0KPHA+RHVubm8gd2h5IHlvdVwmIzAzOTtkIHdhbnQgc29tZSBvZiB0aG9zZSwgYnV0IHRoZXJlIHlvdSBnby4uLjwvcD4NCic7CiRsYW5nWydwb3N0X2luc3RhbGwnXSA9ICc8cD5NYWtlIHN1cmUgdG8gc2V0IHRoZSBcJnF1b3Q7TW9kaWZ5IEZvcm1zXCZxdW90OyBwZXJtaXNzaW9ucw0Kb24gdXNlcnMgd2hvIHdpbGwgYmUgYWRtaW5pc3RlcmluZyBmZWVkYmFjayBmb3Jtcy4gQWxzbywgaWYgeW91XCYjMDM5O2xsIGJlIGVtYWlsaW5nIGZvcm0NCnJlc3VsdHMsIGJlIHN1cmUgdG8gdXBkYXRlIHRoZSBDb25maWd1cmF0aW9uIGFwcHJvcHJpYXRlbHkuPC9wPg0KPHA+UGxlYXNlIGJlIGF3YXJlIHRoYXQgYSBmZWVkYmFjayBmb3JtIHNob3VsZCBub3QgYmUgYWN0aXZlIChlLmcuLCB1c2FibGUgYnkgdGhlIHB1YmxpYykgd2hpbGUNCnlvdSBhcmUgc3RpbGwgZWRpdGluZyB0aGUgZm9ybS4gWW91IHNob3VsZCBjcmVhdGUgdGhlIGZvcm0sIGFuZCBwbGFjZSB0aGUgdGFnIGludG8gYW4gYWN0aXZlDQpjb250ZW50IHBhZ2Ugb25seSB3aGVuIHlvdSBoYXZlIGZpbmlzaGVkIGVkaXRpbmcuIE90aGVyd2lzZSwgZXJyb25lb3VzIHJlc3VsdHMgY291bGQgYmUgcmV0dXJuZWQuPC9wPg0KPHA+QWRkaXRpb25hbGx5LCB0aGlzIHZlcnNpb24gZG9lcyBub3Qgc3VwcG9ydCBwYXJhbGxlbCBlZGl0aW5nIG9mIGZvcm1zLiBQbGVhc2UgdGFrZSBjYXJlIHRoYXQNCm9ubHkgb25lIGFkbWluIGlzIGVkaXRpbmcgYSBnaXZlbiBmb3JtIGF0IGEgZ2l2ZW4gdGltZS48L3A+JzsKJGxhbmdbJ2hlbHAnXSA9ICdoMz5XaGF0IERvZXMgVGhpcyBEbz88L2gzPg0KPHA+VGhlIEZvcm0gQnVpbGRlciBNb2R1bGUgYWxsb3dzIHlvdSB0byBjcmVhdGUgZmVlZGJhY2sgZm9ybXMgKGluIGZhY3QsIGl0XCYjMDM5O3MgYSByZXBsYWNlbWVudCBvZiB0aGUgb3JpZ2luYWwgRmVlZGJhY2sgRm9ybSBtb2R1bGUpLCB3aXRoIHRoZSBhZGRlZCBwb3dlciBvZiBkYXRhYmFzZSBzdG9yYWdlLiBXaXRoIGl0cyBjb21wYW5pb24gbW9kdWxlIEZvcm0gQnJvd3NlciwgeW91IGNhbiB1c2UgaXQgdG8gY3JlYXRlIHNpbXBsZSBkYXRhYmFzZSBhcHBsaWNhdGlvbnMuPC9wPg0KPHA+VGhlIGZvcm1zIGNyZWF0ZWQgdXNpbmcgdGhlIEZvcm0gQnVpbGRlciBtYXkgYmUgaW5zZXJ0ZWQNCmludG8gdGVtcGxhdGVzIGFuZC9vciBjb250ZW50IHBhZ2VzLiBGb3JtcyBtYXkgY29udGFpbiBtYW55IGtpbmRzIG9mIGlucHV0cywgYW5kIG1heSBoYXZlDQp2YWxpZGF0aW9uIGFwcGxpZWQgdG8gdGhlc2UgaW5wdXRzLiBUaGUgcmVzdWx0cyBvZiB0aGVzZSBmb3JtcyBtYXkgYmUgaGFuZGxlZCBpbiBhIHZhcmlldHkgb2Ygd2F5cy48L3A+DQoNCjxoMz5Ib3cgRG8gSSBVc2UgaXQ/PC9oMz4NCjxQPkluc3RhbGwgaXQsIGFuZCBwb2tlIGFyb3VuZCB0aGUgbWVudXMuIFBsYXkgd2l0aCBpdC4gVHJ5IGNyZWF0aW5nIGZvcm1zLCBhbmQgYWRkaW5nIHRoZW0gdG8geW91ciBjb250ZW50Lg0KSWYgeW91IGdldCBzdHVjaywgY2hhdCB3aXRoIG1lIG9uIHRoZSAjY21zIElSQyBjaGFubmVsLCBwb3N0IHRvIHRoZSBmb3J1bSwgc2VuZCBtZSBlbWFpbCwgb3IsIGlmIHlvdVwmIzAzOTtyZQ0KcmVhbGx5IGRlc3BlcmF0ZSwgcmVhZCB0aGUgcmVzdCBvZiB0aGlzIHBhZ2UuPC9QPg0KDQo8aDM+SG93IERvIEkgQ3JlYXRlIGEgRm9ybTwvaDM+DQo8cD5JbiB0aGUgQ01TIEFkbWluIE1lbnUsIHlvdSBzaG91bGQgZ2V0IGEgbmV3IG1lbnUgaXRlbSBjYWxsZWQgRm9ybUJ1aWxkZXIuIENsaWNrIG9uIHRoaXMuIE9uIHRoZSBwYWdlDQp0aGF0IGdldHMgc2hvd24sIHRoZXJlIGFyZSBvcHRpb25zIChhdCB0aGUgYm90dG9tIG9mIHRoZSBsaXN0IG9mIEZvcm1zKSB0byBBZGQgYSBOZXcgRm9ybSBvciBNb2RpZnkNCkNvbmZpZ3VyYXRpb24uPC9wPg0KDQo8aDM+QWRkaW5nIGEgRm9ybSB0byBhIFBhZ2U8L2gzPg0KPHA+SW4gdGhlIG1haW4gRm9ybUJ1aWxkZXIgYWRtaW4gcGFnZSwgeW91IGNhbiBzZWUgYW4gZXhhbXBsZSBvZiB0aGUgdGFnIHVzZWQgdG8gZGlzcGxheSBlYWNoIGZvcm0uIEl0IGxvb2tzDQpzb21ldGhpbmcgbGlrZSB7Y21zX21vZHVsZSBtb2R1bGU9XCYjMDM5O0Zvcm1CdWlsZGVyXCYjMDM5OyBmb3JtPVwmIzAzOTtzYW1wbGVfZm9ybVwmIzAzOTt9PC9wPg0KPHA+QnkgY29weWluZyB0aGlzIHRhZyBpbnRvIHRoZSBjb250ZW50IG9mIGEgcGFnZSwgb3IgaW50byBhIHRlbXBsYXRlLCB3aWxsIGNhdXNlIHRoYXQgZm9ybSB0byBiZSBkaXNwbGF5ZWQuDQpJbiB0aGVvcnksIHlvdSBjYW4gaGF2ZSBtdWx0aXBsZSBmb3JtcyBvbiBhIHBhZ2UgaWYgeW91IHJlYWxseSB3YW50IHRvLiBCZSBjYXJlZnVsIHdoZW4gcGFzdGluZyB0aGUgdGFnDQppbnRvIGEgcGFnZVwmIzAzOTtzIGNvbnRlbnQgaWYgeW91IHVzZSBhIFdZU0lXWUcgZWRpdG9yIHN1Y2ggYXMgVGlueU1DRSwgRkNLRWRpdCwgb3IgSFRNTEFyZWEuIFRoZXNlIGVkaXRvcnMgbWF5IHN0ZWFsdGhpbHkNCmNoYW5nZSB0aGUgcXVvdGUgbWFya3MgKFwmcXVvdDspIGludG8gSFRNTCBlbnRpdGllcyAoJmFtcDthbXA7cXVvdDspLCBhbmQgdGhlIGZvcm1zIHdpbGwgbm90IHNob3cgdXAuIFRyeSB1c2luZw0Kc2luZ2xlIHF1b3RlcyAoXCYjMDM5Oykgb3IgZWRpdGluZyB0aGUgSFRNTCBkaXJlY3RseS4NCg0KPGgzPldvcmtpbmcgd2l0aCBGb3JtczwvaDM+DQo8cD5CeSBjbGlja2luZyBvbiBhIEZvcm1cJiMwMzk7cyBuYW1lLCB5b3UgZW50ZXIgdGhlIEZvcm0gRWRpdCBwYWdlLiBUaGVyZSBhcmUgc2V2ZXJhbCB0YWJzLCB3aGljaCBhcmUgZGVzY3JpYmVkIGJlbG93OjwvcD4NCjxoND5NYWluPC9oND4NCjxwPlRoaXMgaXMgdGhlIG1haW4gcGxhY2UgeW91XCYjMDM5O2xsIHdvcmsgb24geW91ciBmb3JtLiBIZXJlLCB5b3UgZ2l2ZSBpdCBhIG5hbWUsIGFuIGFsaWFzICh3aGljaCBpcyB1c2VkIHRvIGlkZW50aWZ5IGl0IGZvciBwbGFjaW5nIGl0IGluIGEgcGFnZSBvciB0ZW1wbGF0ZSksIGFuZCwgb3B0aW9uYWxseSwgYSBDU1MgY2xhc3Mgd2l0aCB3aGljaCB0byB3cmFwIHRoZSB3aG9sZSB0aGluZy48L3A+DQo8cD5CZWxvdyB0aGlzLCBpZiB5b3UgaGF2ZSBpdCBlbmFibGVkLCBpcyB0aGUgXCZxdW90O2Zhc3QgZmllbGQgYWRkZXJcJnF1b3Q7IHB1bGxkb3duLCB0aGF0IGxldHMgeW91IHF1aWNrbHkgYWRkIGEgZmllbGQgdG8gdGhlIGVuZCBvZiB5b3VyIGZvcm0gYnkgc2VsZWN0aW5nIHRoZSBmaWVsZCB0eXBlLjwvcD4NCjxwPkJlbG93IHRoaXMgaXMgdGhlIGxpc3Qgb2YgZmllbGRzIHRoYXQgbWFrZSB1cCB5b3VyIGZvcm0uIE1vcmUgZGV0YWlsIG9uIHRoaXMgaXMgZGVzY3JpYmVkIGJlbG93LjwvcD4NCjxoND5Gb3JtIFN1Ym1pc3Npb248L2g0Pg0KPHA+V2hlbiB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQsIHlvdSBjYW4gZWl0aGVyIHJlZGlyZWN0IHRoZSB1c2VyIHRvIGFub3RoZXIgcGFnZSBvZiB5b3VyIHNpdGUsIG9yIHlvdSBjYW4gcHJlc2VudCB0aGUgdXNlciBzb21lIG1lc3NhZ2UgKHdoaWNoIGNhbiBjb250YWluIGFueSBvZiB0aGUgdXNlclwmIzAzOTtzIGZvcm0gZW50cmllcywgb3IganVzdCBzdGF0aWMgdGV4dCkuIEluIHRoaXMgdGFiLCB5b3Ugc2VsZWN0IHdoaWNoIG9mIHRoZXNlIGFwcHJvYWNoZXMgeW91IHdpc2ggdG8gdXNlLCBhbmQsIGlmIHlvdSBjaG9zZSByZWRpcmVjdGlvbiwgaXQgYWxsb3dzIHlvdSB0byBwaWNrIHRoZSBwYWdlIHRvIHJlZGlyZWN0IHVzZXJzIHRvIGFmdGVyIGEgc3VjY2Vzc2Z1bCBmb3JtIHN1Ym1pc3Npb24uPC9wPg0KPHA+QWxzbyBvbiB0aGlzIHBhZ2UsIHlvdSBjYW4gc3BlY2lmeSB0aGUgbGFiZWxzIG9mIHZhcmlvdXMgc3VibWlzc2lvbiBidXR0b25zIChcJnF1b3Q7UHJldmlvdXNcJnF1b3Q7LCBcJnF1b3Q7bmV4dFwmcXVvdDssIFwmcXVvdDtzdWJtaXRcJnF1b3Q7KS4gWW91IGNhbiBhbHNvIG9wdCB0byBoYXZlIHNvbWUgSmF2YXNjcmlwdCBhZGRlZCB0byB0aGUgbGFzdCBwYWdlIG9mIGEgZm9ybSB0aGF0IHdpbGwgcHJldmVudCBtdWx0aXBsZSBzdWJtaXNzaW9ucyAodXNlZnVsIG9uIHNsb3cgc2VydmVycykuPC9wPg0KPGg0PkZvcm0gRGlzcGxheSBPcHRpb25zPC9oND4NCjxwPlRoaXMgdGFiIGFsbG93cyBmb3Igb3RoZXIgZm9ybSBjdXN0b21pemF0aW9ucywgbGlrZSB0aGUgc3ltYm9sIHRvIHNob3cgZm9yIHJlcXVpcmVkIGZpZWxkcy48L3A+DQo8aDQ+Q2FwdGNoYSBTZXR0aW5nczwvaDQ+DQo8cD5JZiB5b3UgaGF2ZSBpbnN0YWxsZWQgdGhlIENhcHRjaGEgbW9kdWxlLCB0aGlzIHRhYiBsZXRzIHlvdSBjb25maWd1cmUgdGhlIENhcHRjaGEgc2V0dGluZ3MgZm9yIHlvdXIgZm9ybS48L3A+DQo8aDQ+Rm9ybSBUZW1wbGF0ZTwvaDQ+DQo8cD5UaGlzIGlzIHdoZXJlIHlvdSBkbyB5b3VyIGN1c3RvbWl6YXRpb24gd29yayBvZiB5b3VyIGZvcm1cJiMwMzk7cyBTbWFydHkgVGVtcGxhdGUuIFNlZSB0aGUgc2VjdGlvbiBjYWxsZWQgRm9ybSBUZW1wbGF0ZSBWYXJpYWJsZXMgYmVsb3cuPC9wPg0KPHA+VGhlIGZvcm0gc2hvdWxkIGRlZmF1bHQgdG8gYSBDdXN0b20gdGVtcGxhdGUgdGhhdCBkb2N1bWVudHMgdGhlIFNtYXJ0eSB0YWdzIGF2YWlsYWJsZSB0byB5b3UuPC9wPg0KPHA+VW5sZXNzIHlvdVwmIzAzOTtyZSBhIFNtYXJ0eSBleHBlcnQsIHlvdSBwcm9iYWJseSBkb25cJiMwMzk7dCB3YW50IHRvIG1lc3MgYXJvdW5kIHdpdGggdGhpcy4gSWYgeW91IGFyZSBhIFNtYXJ0eSBleHBlcnQsIHRoaXMgaXMgd2hlcmUgeW91IGNhbiB1bmxlYXNoIHlvdXIgbWFnaWMuPC9wPg0KPGg0PlN1Ym1pc3Npb24gVGVtcGxhdGU8L2g0Pg0KPHA+SWYsIGluIHRoZSBGb3JtIFN1Ym1pc3Npb24gdGFiLCB5b3Ugc2VsZWN0ZWQgXCYjMDM5O0Rpc3BsYXkgXCZxdW90O1N1Ym1pc3Npb24gVGVtcGxhdGVcJnF1b3Q7LCB0aGlzIGlzIHdoZXJlIHlvdSBjYW4gY3JlYXRlIHRoYXQgdGVtcGxhdGUuIFRoZXJlIGlzIGEgZGlzcGxheSBvZiB3aGljaCBzbWFydHkgdmFyaWFibGVzIGFyZSBhdmFpbGFibGUgdG8geW91LCBhbmQgYSBidXR0b24gdG8gZ2VuZXJhdGUgYSBzYW1wbGUgdGVtcGxhdGUuPC9wPg0KPHA+SWYgeW91XCYjMDM5O3JlIGEgU21hcnR5IGV4cGVydCwgeW91IGNhbiBkbyBhbGwgbWFubmVyIG9mIGNyZWF0aXZlIGFuZCBwb3dlcmZ1bCB0aGluZ3MgaGVyZS4gSWYgeW91XCYjMDM5O3JlIG5vdCBhIFNtYXJ0eSBleHBlcnQsIHlvdSBtaWdodCBqdXN0IHdhbnQgdG8gdXNlIHRoZSBkZWZhdWx0Lg0KPC9wPg0KPGgzPkFkZGluZyBGaWVsZHMgdG8geW91ciBGb3JtPC9oMz4NCjxwPlRoZSB0eXBlcyBvZiBmaWVsZHMgdGhhdCBhcmUgY3VycmVudGx5IHN1cHBvcnRlZCBmaXQgaW50byBmb3VyIGdyb3Vwczogc3RhbmRhcmQgaW5wdXQgZmllbGRzLCBkaXNwbGF5IGNvbnRyb2wgZmllbGRzLCBlbWFpbC1zcGVjaWZpYyBmaWVsZHMsIGFuZCBmb3JtIHJlc3VsdCBoYW5kbGluZyBmaWVsZHMgKGFsc28gY2FsbGVkIEZvcm0gRGlzcG9zaXRpb25zIGluIHBsYWNlcyk6PC9wPg0KPHVsPg0KPGxpPlN0YW5kYXJkIElucHV0IEZpZWxkcyAtIHRoZXNlIGFyZSBpbnB1dHMgdGhhdCBhbGxvdyBlbnRyeSBvZiB0eXBpY2FsIGZvcm0gZWxlbWVudHM7IHRleHQgaW5wdXRzLCByYWRpbyBidXR0b25zLCBldGMuPC9saT4NCjxsaT5EaXNwbGF5IENvbnRyb2wgRmllbGRzIC0gdGhlc2UgaW5wdXQgY29udHJvbCBob3cgdGhlIHVzZXIgd2lsbCBzZWUgdGhlIGRpc3BsYXkgb2YgdGhlIGZvcm07IHBhZ2UgYnJlYWtzLCBzdGF0aWMgdGV4dCwgZXRjLjwvbGk+DQo8bGk+RW1haWwtc3BlY2lmaWMgRmllbGRzIC0gc29tZSBmb3JtcyBnZW5lcmF0ZSBlbWFpbCwgYW5kIGVtYWlsLXNwZWNpZmljIGZpZWxkcyBjYW4gYWx0ZXIgYXR0cmlidXRlcyBvZiB0aGUgZW1haWxzIHNlbnQuPC9saT4NCjxsaT5Gb3JtIERpc3Bvc2l0aW9ucyAtIFRoZXNlIGRldGVybWluZSB3aGF0IGhhcHBlbnMgd2hlbiB0aGUgdXNlcg0Kc3VibWl0cyB0aGUgZm9ybTsgZm9yIGVhY2ggcmVzdWx0IGhhbmRsaW5nIGZpZWxkLCBzb21lIG1ldGhvZCBvZiB0cmFuc21pdHRpbmcsIHNhdmluZywgb3IgZW1haWxpbmcgdGhlDQpmb3JtIGNvbnRlbnRzIHRha2VzIHBsYWNlLiBBIGZvcm0gbWF5IGhhdmUgbXVsdGlwbGUgZm9ybSBkaXNwb3NpdGlvbnMuPC9saT4NCjwvdWw+DQo8cD5Gb3JtIGZpZWxkcyBhcmUgYXNzaWduZWQgbmFtZXMuIFRoZXNlIG5hbWVzIGlkZW50aWZ5IHRoZSBmaWVsZCwgbm90IG9ubHkgb24gdGhlIHNjcmVlbiBhcyBsYWJlbHMgZm9yIHRoZSB1c2VyLA0KYnV0IGluIHRoZSBkYXRhIHdoZW4gaXRcJiMwMzk7cyBzdWJtaXR0ZWQgc28geW91IGtub3cgd2hhdCB0aGUgdXNlciBpcyByZXNwb25kaW5nIHRvLiBQaHJhc2luZyB0aGUgbmFtZSBsaWtlIGEgcXVlc3Rpb24NCmlzIGEgaGFuZHkgd2F5IG9mIG1ha2luZyBpdCBjbGVhciB0byB0aGUgdXNlciB3aGF0IGlzIGV4cGVjdGVkLiBTaW1pbGFybHksIG1hbnkgZmllbGRzIGhhdmUgYm90aCBOYW1lcyBhbmQgVmFsdWVzLg0KVGhlIE5hbWVzIGFyZSB3aGF0IGdldHMgc2hvd24gdG8gdGhlIHVzZXI7IHRoZSBWYWx1ZSBpcyB3aGF0IGdldHMgc2F2ZWQgb3IgdHJhbnNtaXR0ZWQgd2hlbiB0aGUgdXNlciBzdWJtaXRzDQp0aGUgZm9ybS4gVGhlIFZhbHVlcyBhcmUgbmV2ZXIgc2VlbiBieSB0aGUgdXNlciwgbm9yIGFyZSB0aGV5IHZpc2libGUgaW4gdGhlIEhUTUwsIHNvIGl0XCYjMDM5O3Mgc2FmZSB0byB1c2UgZm9yDQplbWFpbCBhZGRyZXNzZXMgYW5kIHN1Y2guPC9wPg0KPHA+U29tZSBmaWVsZHMgY2FuIGhhdmUgbXVsdGlwbGUgdmFsdWVzLCBvciBtdWx0aXBsZSBuYW1lL3ZhbHVlIHBhaXJzLiBXaGVuIHlvdSBmaXJzdCBjcmVhdGUgc3VjaCBhIGZpZWxkLA0KdGhlcmUgbWF5IG5vdCBiZSBzdWZmaWNpZW50IGlucHV0cyBmb3IgeW91IHRvIHNwZWNpZnkgYWxsIHRoZSB2YWx1ZXMgeW91IHdhbnQuIFRvIGdldCBtb3JlIHNwYWNlIGZvciBpbnB1dHRpbmcNCnRoZXNlIHZhbHVlcywgdXNlIHRoZSBidXR0b25zIGF0IHRoZSBib3R0b20gb2YgdGhlIHBhZ2UgZm9yIGFkZGluZyBvcHRpb25zLjwvcD4NCjxwPkZpZWxkcyBjYW4gYmUgYXNzaWduZWQgdmFsaWRhdGlvbiBydWxlcywgd2hpY2ggdmFyeSBhY2NvcmRpbmcgdG8gdGhlIHR5cGUgb2YgdGhlIGZpZWxkLiBUaGVzZSBydWxlcyBoZWxwDQplbnN1cmUgdGhhdCB0aGUgdXNlciBlbnRlcnMgdmFsaWQgZGF0YS4gVGhleSBtYXkgYWxzbyBiZQ0Kc2VwYXJhdGVseSBtYXJrZWQgXCZxdW90O1JlcXVpcmVkXCZxdW90Oywgd2hpY2ggd2lsbCBmb3JjZSB0aGUgdXNlciB0byBlbnRlciBhIHJlc3BvbnNlLjwvcD4NCjxwPkZpZWxkcyBhbHNvIG1heSBiZSBhc3NpZ25lZCBhIENTUyBjbGFzcy4gVGhpcyBzaW1wbHkgd3JhcHMgdGhlIGlucHV0IGluIGEgZGl2IHdpdGggdGhhdCBjbGFzcywgc28gYXMgdG8gYWxsb3cNCmN1c3RvbWl6ZWQgbGF5b3V0cy4gVG8gdXNlIHRoaXMgZWZmZWN0aXZlbHksIHlvdSBtYXkgbmVlZCB0byBcJnF1b3Q7dmlldyBzb3VyY2VcJnF1b3Q7IG9uIHRoZSBnZW5lcmF0ZWQgZm9ybSwgYW5kIHRoZW4NCndyaXRlIHlvdXIgQ1NTLjwvcD4NCjx1bD4NCjxsaT5TdGFuZGFyZCBJbnB1dHMNCjx1bD48bGk+VGV4dCBJbnB1dC4gVGhpcyBpcyBhIHN0YW5kYXJkIHRleHQgZmllbGQuIFlvdSBjYW4gbGltaXQgdGhlIGxlbmd0aCwgYW5kIGFwcGx5IHZhcmlvdXMgdmFsaWRhdGlvbg0KZnVuY3Rpb25zIHRvIHRoZSBmaWVsZC48L2xpPg0KPGxpPlRleHQgQXJlYS4gVGhpcyBpcyBhIGJpZywgZnJlZS1mb3JtIHRleHQgaW5wdXQgZmllbGQuPC9saT4NCjxsaT5DaGVja2JveC4gVGhpcyBpcyBhIHN0YW5kYXJkIGNoZWNrIGJveC48L2xpPg0KPGxpPkNoZWNrYm94IEdyb3VwLiBUaGlzIGlzIGEgY29sbGVjdGlvbiBvZiBjaGVja2JveGVzLiBUaGUgb25seSBkaWZmZXJlbmNlIGJldHdlZW4gdGhpcyBpbnB1dCBhbmQgYQ0KY29sbGVjdGlvbiBvZiBDaGVja2JveCBpbnB1dHMgaXMgdGhhdCB0aGV5IGFyZSBwcmVzZW50ZWQgYXMgYSBncm91cCwgd2l0aCBvbmUgbmFtZSwgYW5kIGNhbiBoYXZlIGEgdmFsaWRhdGlvbiBmdW5jdGlvbiByZXF1aXJpbmcgdGhhdCB5b3UgY2hlY2sgb25lIG9yIG1vcmUgb2YgdGhlIGJveGVzIGluIHRoZSBncm91cC48L2xpPg0KPGxpPlJhZGlvIEdyb3VwLiBUaGlzIGlzIGEgY29sbGVjdGlvbiBvZiByYWRpbyBidXR0b25zLiBPbmx5IG9uZSBvZiB0aGUgZ3JvdXAgbWF5IGJlIHNlbGVjdGVkIGJ5IHRoZSB1c2VyLjwvbGk+DQo8bGk+UHVsbGRvd24uIFRoaXMgaXMgYSBzdGFuZGFyZCBwdWxsZG93biBtZW51LiBJdFwmIzAzOTtzIHJlYWxseSBjb25jZXB0dWFsbHkgdGhlIHNhbWUgdGhpbmcgYXMgYSByYWRpbyBidXR0b24NCmdyb3VwLCBidXQgaXMgYmV0dGVyIHdoZW4gdGhlcmUgYXJlIGEgbGFyZ2UgbnVtYmVyIG9mIG9wdGlvbnMuPC9saT4NCjxsaT5NdWx0aXNlbGVjdC4gVGhpcyBpcyBhIG11bHRpLXNlbGVjdCBmaWVsZC4gSXRcJiMwMzk7cyByZWFsbHkgY29uY2VwdHVhbGx5IHRoZSBzYW1lIHRoaW5nIGFzIGEgY2hlY2tib3ggYnV0dG9uDQpncm91cCwgYnV0IGlzIGJldHRlciB3aGVuIHRoZXJlIGFyZSBhIGxhcmdlIG51bWJlciBvZiBvcHRpb25zLCBhcyB5b3UgY2FuIGxpbWl0IHRoZSBudW1iZXIgZGlzcGxheWVkIG9uIHRoZSBzY3JlZW4gYXQgYW55IG9uZSB0aW1lLjwvbGk+DQo8bGk+U3RhdGUuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBTdGF0ZXMgb2YgdGhlIFUuUy48L2xpPg0KPGxpPkNvdW50cmllcy4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIENvdW50cmllcyBvZiB0aGUgd29ybGQgKGFzIG9mIEp1bHkgMjAwNSkuPC9saT4NCjxsaT5EYXRlIFBpY2tlci4gVGhpcyBpcyBhIHRyaXBsZSBwdWxsZG93biBhbGxvd2luZyB0aGUgdXNlciB0byBzZWxlY3QgYSBkYXRlLjwvbGk+DQo8bGk+VGltZSBQaWNrZXIuIFRoaXMgaXMgYSBzZXQgb2YgcHVsbGRvd25zIGFsbG93aW5nIHRoZSB1c2VyIHRvIHNlbGVjdCBhIHRpbWUgKHVzaW5nIDEyIG9yIDI0IGhvdXIgY2xvY2spLjwvbGk+DQo8bGk+RmlsZSBVcGxvYWQuIFRoaXMgaXMgYSBmaWxlIHVwbG9hZCBmaWVsZC48L2xpPg0KPGxpPkxpbmsgKFVzZXIgRW50ZXJlZCkuIFRoaXMgY3JlYXRlcyBhIGRvdWJsZSBpbnB1dCBmaWVsZCBmb3IgZ2V0dGluZyBhIGxpbmsgVVJMIGFuZCBsaW5rIHRpdGxlLjwvbGk+DQo8L3VsPjwvbGk+DQoNCjxsaT5FbWFpbC1zcGVjaWZpYyBJbnB1dHMNCjx1bD48bGk+RW1haWwgRnJvbSBBZGRyZXNzIEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIHRoZWlyIGVtYWlsIGFkZHJlc3MuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBhZGRyZXNzIGluIHRoZSBcJnF1b3Q7RnJvbVwmcXVvdDsgZmllbGQuPC9saT4NCjxsaT5FbWFpbCBGcm9tIE5hbWUgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgdGhlaXIgbmFtZS4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIG5hbWUgaW4gdGhlIFwmcXVvdDtGcm9tXCZxdW90OyBmaWVsZC48L2xpPg0KPGxpPkVtYWlsIFN1YmplY3QgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgYSBzdWJqZWN0IGZvciB0aGVpciBlbWFpbC4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIGluIHRoZSBcJnF1b3Q7U3ViamVjdFwmcXVvdDsgZmllbGQuIFRoaXMgbWF5IGNhdXNlIHRyb3VibGUgd2l0aCBjZXJ0YWluIGRpc3Bvc2l0aW9ucyB0aGF0IHdhbnQgdG8gY29udHJvbCB0aGUgRW1haWwgU3ViamVjdCwgc28gdXNlIGl0IHdpdGggY2F1dGlvbi48L2xpPg0KPC91bD48L2xpPg0KDQo8bGk+RGlzcGxheSBDb250cm9sIEZpZWxkczx1bD4NCjxsaT4tUGFnZSBCcmVhay4gVGhpcyBhbGxvd3MgeW91IHRvIHNwbGl0IHlvdXIgZmVlZGJhY2sgZm9ybSBpbnRvIG11bHRpcGxlIHBhZ2VzLiBFYWNoIHBhZ2UgaXMNCmluZGVwZW5kZW50bHkgdmFsaWRhdGVkLiBUaGlzIGlzIGdvb2QgZm9yIGFwcGxpY2F0aW9ucyBsaWtlIG9ubGluZSBzdXJ2ZXlzLjwvbGk+DQo8bGk+LUZpZWxkc2V0IFN0YXJ0LiBDb21iaW5lZCB3aXRoIEZpZWxkc2V0IEVuZCwgdGhpcyBhbGxvd3MgeW91IHRvIGdyb3VwIHZhcmlvdXMgZmllbGRzIHdpdGhpbiB5b3VyIGZvcm0uIFVzZSB0aGlzIHRvIHN0YXJ0IGEgZ2l2ZW4gZ3JvdXBpbmcuPC9saT4NCjxsaT4tRmllbGRzZXQgRW5kLiBDb21iaW5lZCB3aXRoIEZpZWxkc2V0IFN0YXJ0LCB0aGlzIGFsbG93cyB5b3UgdG8gZ3JvdXAgdmFyaW91cyBmaWVsZHMgd2l0aGluIHlvdXIgZm9ybS4gVXNlIHRoaXMgdG8gZW5kIGEgZ2l2ZW4gZ3JvdXBpbmcuPC9saT4NCjxsaT4tSGlkZGVuIEZpZWxkLiBUaGlzIGFsbG93cyB5b3UgdG8gZW1iZWQgYSBoaWRkZW4gZmllbGQgaW4geW91ciBmb3JtLjwvbGk+DQo8bGk+LVN0YXRpYyBUZXh0LiBUaGlzIGFsbG93cyB5b3UgdG8gcHV0IHRleHQgb3IgYSBsYWJlbCBpbiB0aGUgbWlkZGxlIG9mIHlvdXIgZm9ybS4gVGhpcyBpcyB1c2VmdWwgZm9yIGdpdmluZyBhZGRpdGlvbmFsIGhlbHAgdGV4dCwgZXNwZWNpYWxseSBpZiB5b3VcJiMwMzk7cmUgbm90IHVzaW5nIGEgQ3VzdG9tIFRlbXBsYXRlIHRvIHJlbmRlciB5b3VyIGZvcm0uPC9saT4NCjxsaT4tU3RhdGljIExpbmsuIFRoaXMgYWxsb3dzIHlvdSB0byBwdXQgYSBsaW5rIHRvIGEgZ2l2ZW4gcGFnZSBpbnRvIHlvdXIgZm9ybS4gT3B0aW9uYWxseSwgeW91IGNhbiBoYXZlIGl0IGF1dG9wb3B1bGF0ZSB3aXRoIHRoZSBwYWdlIHdoZXJlIHRoZSBmb3JtIGlzIGVtYmVkZGVkICh1c2VmdWwgaWYgeW91XCYjMDM5O3JlIHNlbmRpbmcgcmVzdWx0cyB2aWEgZW1haWwpLjwvbGk+DQo8L3VsPjwvbGk+DQoNCjxsaT5Gb3JtIEhhbmRsaW5nIElucHV0cyAoRGlzcG9zaXRpb25zKQ0KPHVsPjxsaT4qQ2FsbCBhIFVzZXIgRGVmaW5lZCBUYWcgV2l0aCB0aGUgRm9ybSBSZXN1bHRzLiBUaGlzIHN1Ym1pdHMgYWxsIHRoZSBmb3JtIHJlc3VsdHMgdG8gdGhlIFVzZXItRGVmaW5lZCBUYWcgeW91IHNwZWNpZnkuIFRoZSBVRFQgY2FuIGhhbmRsZSB0aGUgcmVzdWx0cyBob3dldmVyIGl0IHdhbnRzLjwvbGk+DQo8bGk+KkVtYWlsIFJlc3VsdHMgQmFzZWQgb24gUHVsbGRvd24uIFRoaXMgaXMgdXNlZnVsIGZvciB3ZWIgc2l0ZXMgd2hlcmUgY29tbWVudHMgZ2V0IHJvdXRlZCBiYXNlZCBvbiB0aGVpciBzdWJqZWN0IG1hdHRlciwgZS5nLiwgYnVncyBnZXQgc2VudCB0byBvbmUgcGVyc29uLCBtYXJrZXRpbmcgcXVlc3Rpb25zIHRvIGFub3RoZXIgcGVyc29uLCBzYWxlcyByZXF1ZXN0cyB0byBzb21lb25lIGVsc2UsIGV0Yy4gVGhlIHB1bGxkb3duIGlzIHBvcHVsYXRlZCB3aXRoIHRoZSBzdWJqZWN0cywgYW5kIGVhY2ggZ2V0cyBkaXJlY3RlZCB0byBhIHNwZWNpZmljIGVtYWlsIGFkZHJlc3MuIFlvdSBzZXQgdXAgdGhlc2UgbWFwcGluZ3MgaW4gdGhlIHdoZW4geW91IGNyZWF0ZSBvciBlZGl0IGEgZmllbGQgb2YgdGhpcyB0eXBlLiBJZiB5b3UgdXNlIG9uZSBvZiB0aGVzZSBcJnF1b3Q7RGlyZWN0b3JcJnF1b3Q7IHB1bGxkb3ducywgdGhlIHVzZXIgbXVzdCBtYWtlIGEgc2VsZWN0aW9uIGluIG9yZGVyIHRvIHN1Ym1pdCB0aGUNCmZvcm0uIFRoaXMgaW5wdXQgaXMgcGFydCBvZiB0aGUgZm9ybSB0aGUgdXNlciBzZWVzLCBhbHRob3VnaCB0aGUgZW1haWwgYWRkcmVzc2VzIGFyZSBub3QgbWFkZSB2aXNpYmxlIG5vcg0KYXJlIHRoZXkgZW1iZWRkZWQgaW4gdGhlIEhUTUwuPC9saT4NCjxsaT4qRW1haWwgUmVzdWx0cyB0byBzZXQgQWRkcmVzcyhlcykuIFRoaXMgc2ltcGx5IHNlbmRzIHRoZSBmb3JtIHJlc3VsdHMgdG8gb25lIG9yIG1vcmUgZW1haWwgYWRkcmVzc2VzIHRoYXQgeW91IGVudGVyIHdoZW4geW91IGNyZWF0ZSBvciBlZGl0IHRoaXMgdHlwZSBvZiBmaWVsZC4gVGhpcyBmaWVsZCBhbmQgaXRzIG5hbWUgYXJlIG5vdCB2aXNpYmxlIGluIHRoZQ0KZm9ybSB0aGF0IHRoZSB1c2VyIHNlZXMuIFRoZSBlbWFpbCBhZGRyZXNzZXMgYXJlIG5vdCBtYWRlIHZpc2libGUgbm9yDQphcmUgdGhleSBlbWJlZGRlZCBpbiB0aGUgSFRNTC48L2xpPg0KPGxpPipFbWFpbCB0byBVc2VyLVN1cHBsaWVkIEFkZHJlc3MuIFRoaXMgcHV0cyBhbiBpbnB1dCBmaWVsZCBpbiB0aGUgZm9ybSBmb3IgdGhlIHVzZXIgdG8gcG9wdWxhdGUgd2l0aCBhbiBlbWFpbCBhZGRyZXNzLiBUaGUgZm9ybSByZXN1bHRzIGdldCBzZW50IHRvIHRoYXQgYWRkcmVzcy4gQmV3YXJlIG9mIFNwYW0gYWJ1c2UhIEFjdGl2ZSB0aGUgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcyBpbiB0aGUgRm9ybUJ1aWxkZXIgY29uZmlndXJhdGlvbiBzY3JlZW4uPC9saT4NCjxsaT4qU3RvcmUgUmVzdWx0cyBpbiBEYXRhYmFzZS4gVGhpcyB3aWxsIHN0b3JlIHRoZSBmb3JtIGNvbnRlbnRzIGluIGFuIGludGVybmFsIGRhdGFiYXNlLiBZb3Ugd2lsbCBhbHdheXMgdXNlIHRoaXMgZGlzcG9zaXRpb24gaWYgeW91IHVzZSB0aGUgZm9ybSB3aXRoIEZvcm1Ccm93c2VyLjwvbGk+DQo8bGk+KlJlZGlyZWN0IHRvIFBhZ2UgQmFzZWQgb24gUHVsbGRvd24uIFRoaXMgYWxsb3dzIHlvdSB0byByZWRpcmVjdCB0aGUgZm9ybSB0byBhIGRpZmZlcmVudCBzaXRlIHBhZ2UgZGVwZW5kaW5nIG9uIGl0cyB2YWx1ZS4gSWYgeW91IGhhdmUgbXVsdGlwbGUgZGlzcG9zaXRpb25zLCBtYWtlIHN1cmUgdGhpcyBpcyB1c2VkIGxhc3QuPC9saT4NCjxsaT4qVmFsaWRhdGUgdmlhIEVtYWlsLiBUaGlzIGlzIGEgc3RyYW5nZSBhbmQgcG93ZXJmdWwgZmllbGQuIEl0IHByb3ZpZGVzIHRoZSB1c2VyIGEgbWFuZGF0b3J5IGlucHV0IGZvciB0aGVpciBlbWFpbCBhZGRyZXNzLiBPbmNlIHRoZXkgc3VibWl0IHRoZWlyIGZvcm0sIHRoZSBzdGFuZGFyZCBmb3JtIGRpc3Bvc2l0aW9ucyBhcmUgbm90IHBlcmZvcm1lZCAtLSByYXRoZXIsIGl0IHNlbmQgdGhlIHVzZXIgYW4gZW1haWwgd2l0aCBhIHNwZWNpYWwgY29kZWQgbGluay4gSWYgdGhleSBjbGljayBvbiB0aGUgbGluaywgdGhlIG90aGVyIGZvcm0gaXMgY29uc2lkZXJlZCBcJnF1b3Q7YXBwcm92ZWQsXCZxdW90OyBhbmQgdGhlIG90aGVyIGRpc3Bvc2l0aW9ucyBhcmUgYWxsIHBlcmZvcm1lZC48L2xpPg0KPGxpPipXcml0ZSBSZXN1bHRzIHRvIEZsYXQgRmlsZS4gVGhpcyB0YWtlcyB0aGUgZm9ybSByZXN1bHRzIGFuZCB3cml0ZXMgdGhlbSBpbnRvIGEgdGV4dCBmaWxlLiBZb3UgbWF5DQpzZWxlY3QgdGhlIG5hbWUgb2YgdGhlIGZpbGUsIGFuZCBzZXQgaXRzIGZvcm1hdC4gVGhlc2UgZmlsZXMgYXJlIHdyaXR0ZW4gdG8gdGhlIFwmcXVvdDtvdXRwdXRcJnF1b3Q7IGRpcmVjdG9yeSB1bmRlciB0aGUNCm1vZHVsZVwmIzAzOTtzIGluc3RhbGxhdGlvbiBkaXJlY3RvcnksIGFzc3VtaW5nIHRoZSB3ZWIgc2VydmVyIGhhcyBwZXJtaXNzaW9uIHRvIHdyaXRlIHRoZXJlLjwvbGk+DQo8L3VsPjwvbGk+PC9saT48L3VsPg0KDQo8aDM+RW1haWwgYW5kIEZsYXQgRmlsZSBUZW1wbGF0ZXM8L2gzPg0KPHA+TWFueSBkaXNwb3NpdGlvbiB0eXBlcyBhbGxvdyB5b3UgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZm9yIHRoZSBlbWFpbCB0aGF0IGlzIGdlbmVyYXRlZCwgb3IgZm9yIHRoZSB3YXkgdGhlIHJlc3VsdHMgYXJlIHdyaXR0ZW4gdG8gYSBmaWxlLiBJZiB5b3Ugb3B0IG5vdCB0byBjcmVhdGUgYSB0ZW1wbGF0ZSwgdGhlIEZvcm1CdWlsZGVyIHdpbGwgdXNlIGl0XCYjMDM5O3Mgb3duIGJlc3QgZ3Vlc3MsIHdoaWNoIG1heSBvciBtYXkgbm90IHdvcmsgb3V0IHRvIHlvdXIgbGlraW5nLiBZb3UgY2FuIGFsd2F5cyBjbGljayBvbiB0aGUgXCZxdW90O0NyZWF0ZSBTYW1wbGUgVGVtcGxhdGVcJnF1b3Q7IGFuZCB0aGVuIGN1c3RvbWl6ZSB0aGUgcmVzdWx0cy48L3A+DQo8cD5UbyB0aGUgcmlnaHQsIHlvdVwmIzAzOTtsbCBmaW5kIGEgbGVnZW5kIHdoaWNoIGxpc3RzIGFsbCBvZiB0aGUgdmFyaWFibGVzIHRoYXQgYXJlIGF2YWlsYWJsZSB0byB5b3UgdG8gdXNlIGluIHlvdXIgdGVtcGxhdGUuIEFzIG9mIHZlcnNpb24gMC4zLCB2YXJpYWJsZXMgaGF2ZSB0d28gbmFtZXMsIG9uZSBiYXNlZCBvbiB0aGUgZmllbGQgbmFtZSwgdGhlIG90aGVyIGJhc2VkIG9uIHRoZSBmaWVsZCBJRC4gSWYgeW91IHVzZSBmaWVsZCBuYW1lcyB0aGF0IGhhdmUgY2hhcmFjdGVycyBvdXRzaWRlIG9mIHRoZSBBU0NJSSAzMi0xMjYgcmFuZ2UsIGl0IHdpbGwgYmUgc2FmZXIgdG8gdXNlIHRoZSBJRC1iYXNlZCB2YXJpYWJsZXMuPC9wPg0KPHA+PHN0cm9uZz5Ob3RlIHRoYXQgb25jZSB5b3VcJiMwMzk7dmUgY2hhbmdlZCBhIHRlbXBsYXRlLCBpdCB3aWxsIG5vIGxvbmdlciBhdXRvbWF0aWNhbGx5IGFkZCBuZXcgZmllbGRzLjwvc3Ryb25nPiBGb3IgdGhpcyByZWFzb24sIGl0XCYjMDM5O3MgdXN1YWxseSBiZXN0IHRvIGNyZWF0ZSB5b3VyIHRlbXBsYXRlcyBhcyB0aGUgbGFzdCBzdGVwIG9mIGNyZWF0aW5nIHlvdXIgZm9ybS48L3A+DQo8cD5BcyBvZiB2ZXJzaW9uIDAuMi40LCB5b3UgY2FuIG9wdCB0byBzZW5kIGFueSBvZiB0aGVzZSBlbWFpbHMgYXMgSFRNTCBlbWFpbC4gVGhlcmUgc2hvdWxkIGJlIGEgY2hlY2tib3ggYXQgdGhlIHRvcCBvZiB0aGUgdGVtcGxhdGUgcGFnZSBmb3IgdGhpcy4gVGhlcmUgaXMgYWxzbyBhIFwmcXVvdDtDcmVhdGUgU2FtcGxlIEhUTUwgVGVtcGxhdGVcJnF1b3Q7IGJ1dHRvbiBvdmVyIGluIHRoZSBsZWdlbmQgYXJlYS4gRm9yIEhUTUwgZW1haWwsIHRoZSBlbWFpbCBib2R5IHdpbGwgYWxzbyBwcm92aWRlIHRoZSBkZWZhdWx0IHRleHQtb25seSB2YWx1ZXMuPC9wPg0KDQo8aDM+Q29uZmlndXJhdGlvbjwvaDM+DQo8cD5UaGVyZSBhcmUgc29tZSBnbG9iYWwgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBGb3JtQnVpbGRlcjo8L3A+DQo8dWw+DQo8bGk+RW5hYmxlIGZhc3QgZmllbGQgYWRkIHB1bGxkb3duLiBUaGlzIGVuYWJsZXMgdGhlIHB1bGxkb3duIG9uIHRoZSBGb3JtIEVkaXQgcGFnZSB3aGljaCBzYXZlcyBhIHN0ZXAgaW4gdGhlIGNyZWF0aW9uIG9mIG5ldyBmaWVsZHMuPC9saT4NCjxsaT5IaWRlIEVycm9ycy4gVGhpcyBpcyBzZXQgYnkgZGVmYXVsdC4gVW5jaGVja2luZyBpdCB3aWxsIGNhdXNlIG1vcmUgZGV0YWlsZWQgZXJyb3JzIHRvIGJlIGRpc3BsYXllZCBpZiB0aGVyZSBhcmUgcHJvYmxlbXMgd2hlbiB5b3Ugc3VibWl0IHlvdXIgZm9ybS48L2xpPg0KPGxpPlJlcXVpcmUgRmllbGQgTmFtZXMuIFR5cGljYWxseSwgeW91IHdpbGwgd2FudCBmb3JtIGZpZWxkcyB0byBiZSBuYW1lZCBzbyB5b3UgY2FuIHRlbGwgd2hpY2ggaXMgd2hpY2guIEhvd2V2ZXIsIGluIHNvbWUgY2FzZXMsIHlvdSBtaWdodCB3YW50IHRvIGhhdmUgbmFtZWxlc3MgZmllbGRzLiBVbmNoZWNrIHRoaXMgaWYgeW91IHdhbnQgdG8gYWxsb3cgbmFtZWxlc3MgZmllbGRzLjwvbGk+DQo8bGk+VW5pcXVlIEZpZWxkIE5hbWVzLiBUeXBpY2FsbHksIHlvdSB3aWxsIHdhbnQgZm9ybSBmaWVsZHMgdG8gaGF2ZSB1bmlxdWUgbmFtZXMgc28geW91IGNhbiB0ZWxsIHdoaWNoIGlzIHdoaWNoLiBVbmNoZWNrIHRoaXMgaWYgeW91IHdhbnQgdG8gYWxsb3cgZmllbGRzIHRvIHNoYXJlIG5hbWVzLjwvbGk+DQo8bGk+VXNlIHJlbGF4ZWQgZW1haWwgdmFsaWRhdGlvbi4gVGhpcyB1c2VzIGEgbGVzcyByZXN0cmljdGl2ZSByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHZhbGlkYXRpbmcgZW1haWw7IGUuZy4sIHhAeSB3aWxsIGJlIGFsbG93ZWQsIHdoZXJlIHR5cGljYWxseSB4QHkudGxkIGlzIHJlcXVpcmVkLjwvbGk+DQo8bGk+U2hvdyBGb3JtIEJ1aWxkZXIgVmVyc2lvbi4gRGlzcGxheXMgdGhlIHZlcnNpb24gb2YgRm9ybUJ1aWxkZXIgeW91XCYjMDM5O3JlIHVzaW5nIGluIGEgY29tbWVudCB3aGVuIHRoZSBmb3JtIGlzIGdlbmVyYXRlZC4gVHlwaWNhbGx5IG9ubHkgdXNlZnVsIHdoZW4gZGVidWdnaW5nLjwvbGk+DQo8bGk+RW5hYmxlIHByaW1pdGl2ZSBhbnRpLXNwYW0gZmVhdHVyZXMuIFdoZW4gdHVybmVkIG9uLCB0aGlzIGFsbG93cyBhbnkgZ2l2ZW4gSVAgYWRkcmVzcyB0byBvbmx5IGdlbmVyYXRlIDEwIGVtYWlscyBwZXIgaG91ci48L2xpPg0KPC91bD4NCjxoMz5TdHlsaW5nIGFuZCBDU1M8L2gzPg0KPHA+UGF1bCBOb29uZSBncmFjaW91c2x5IHByb3ZpZGVzIHVzIGFsbCB3aXRoIGEgcHJldHR5IGdvb2Qgc3RhbmRhcmQgQ1NTIHRoYXQgeW91IGNhbiB1c2UgZm9yIGZvcm1zOjwvcD4NCjxwcmU+DQoJLyogU2FtcGxlIEZvcm1CdWlsZGVyIENTUyBiYXNlICovDQoJZm9ybSB7bWFyZ2luLXRvcDowfQ0KCWZvcm0sIHRkLCB0aCwgbGkgeyBmb250LXNpemU6IDEwMCV9DQoJZm9ybSBkaXYge21hcmdpbi1ib3R0b206MH0NCglmaWVsZHNldCBkaXYgew0KCQltYXJnaW4tYm90dG9tOjAuNWVtOw0KCQltYXJnaW4tbGVmdDoxZW07DQoJfQ0KCWZpZWxkc2V0IGRpdiBkaXYgew0KCQltYXJnaW4tdG9wOjAuNWVtOw0KCQltYXJnaW4tbGVmdDoxZW0NCgl9DQoJZmllbGRzZXQgew0KCQltYXJnaW4tYm90dG9tOjFlbTsNCgkJYm9yZGVyOjFweCBzb2xpZCAjRjYwOw0KCQlwYWRkaW5nOjAuNWVtDQoJfQ0KCWZpZWxkc2V0IGxhYmVsIHsNCgkJd2lkdGg6YXV0bzsNCgl9DQoJbGVnZW5kIHsNCgkJY29sb3I6I0ZGRjsNCgkJYmFja2dyb3VuZDojRjYwOw0KCQlmb250LXN0eWxlOml0YWxpYzsNCgkJZm9udC1zaXplOjEuMmVtOw0KCQltYXJnaW4tYm90dG9tOjAuNWVtOw0KCQlwYWRkaW5nOjAuMmVtOw0KCQl3aWR0aDphdXRvOw0KCQlib3JkZXI6MXB4IHNvbGlkICNDQ0MNCgl9DQoJdGV4dGFyZWEgew0KCQltYXJnaW46IDAuNWVtIDA7DQoJCXdpZHRoOjk4JTsNCgkJaGVpZ2h0OiA2ZW0NCgl9DQoNCgkvKiBBcHBseSB0aGlzIGNsYXNzIHRvIHRleHQvc2VsZWN0IGlucHV0IGZpZWxkcyB3aXRoIHNob3J0ZXIgbGFiZWxzDQoJCXRvIGhlbHAgYWxpZ25tZW50ICovDQoJLnNob3J0LWxhYmVsIGxhYmVsIHtmbG9hdDpsZWZ0OyB3aWR0aDoxMGVtfQ0KCS5zaG9ydC1sYWJlbCBmaWVsZHNldCBkaXYgaW5wdXQsIA0KCS5zaG9ydC1sYWJlbCBmaWVsZHNldCBkaXYgc2VsZWN0IHt3aWR0aDoxNmVtfQ0KDQoJLyogUHJldHR5IHVwIHlvdXIgQ2FwdGNoYSBpbWFnZSBvdXRwdXQgKi8NCgkuY2FwdGNoYSB7DQoJCW1hcmdpbjowLjVlbSAwOw0KCQl3aWR0aDoyMDBweDsNCgkJdGV4dC1hbGlnbjpjZW50ZXINCgl9DQoJLmNhcHRjaGEgaW1nIHtib3JkZXI6MXB4IHNvbGlkICNGNjA7IG1hcmdpbi1ib3R0b206MC41ZW19DQoJLmNhcHRjaGEgaW5wdXQge3dpZHRoOjE5NnB4OyBtYXJnaW4tdG9wOjAuNWVtfQ0KDQoJLyogSnVzdCBhIGJpdCBtb3JlIHJvb20gZm9yIHRoZSBTdWJtaXQgYnV0dG9uICovDQoJLnN1Ym1pdCB7bWFyZ2luLXRvcDowLjVlbX0NCjwvcHJlPg0KDQo8aDM+Rm9ybSBUZW1wbGF0ZSBWYXJpYWJsZXM8L2gzPg0KDQo8aDM+Rm9ybSBUZW1wbGF0ZSBWYXJpYWJsZXM8L2gzPg0KPHA+WW91IGNhbiBlZGl0IGl0IHRvIG1ha2UgeW91ciBmb3JtIGxheW91dCBsb29rIGFueSB3YXkgeW91XCYjMDM5O2QgbGlrZS4NCiAgIFRvIG1ha2UgdGhlIGZvcm0gd29yaywgeW91XCYjMDM5O2xsIG5lZWQgdG8gYWx3YXlzIGluY2x1ZGUgdGhlICZhbXA7IzEyMzskZmJfaGlkZGVufSBhbmQgJmFtcDsjMTIzOyRzdWJtaXR9DQogICB0YWdzLjwvcD4NCg0KPHA+WW91IGNhbiBhY2Nlc3MgeW91ciBmb3JtIGZpZWxkcyBlaXRoZXIgdXNpbmcgdGhlICRmaWVsZHMgYXJyYXkgb3IgYnkgZGlyZWN0bHkgYWNjZXNzaW5nIGZpZWxkcyBieSB0aGVpciBuYW1lcyAoZS5nLiwgJmFtcDsjMTIzOyRteWZpZWxkLT5pbnB1dH0gKTwvcD4NCg0KDQo8cD5FYWNoIGZpZWxkIGhhcyB0aGUgZm9sbG93aW5nIGF0dHJpYnV0ZXM6PC9wPg0KPHRhYmxlPg0KPHRyPjx0aD5GaWVsZDwvdGg+PHRoPlZhbHVlPC90aD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+ZGlzcGxheTwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIHNob3VsZCBiZSBkaXNwbGF5ZWQsIDAgb3RoZXJ3aXNlPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+cmVxdWlyZWQ8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBpcyByZXF1aXJlZCwgMCBvdGhlcndpc2U8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5yZXF1aXJlZF9zeW1ib2w8L3RkPjx0ZD50aGUgc3ltYm9sIGZvciByZXF1aXJlZCBmaWVsZHM8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5jc3NfY2xhc3M8L3RkPjx0ZD50aGUgQ1NTIGNsYXNzIHNwZWNpZmllZCBmb3IgdGhpcyBmaWVsZDwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPnZhbGlkPC90ZD48dGQ+MSBpZiB0aGlzIGZpZWxkIGhhcyBwYXNzZWQgdmFsaWRhdGlvbiwgMCBvdGhlcndpc2U8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5lcnJvcjwvdGQ+PHRkPlRleHQgb2YgdGhlIHZhbGlkYXRpb24gcHJvYmxlbSwgaW4gdGhlIGV2ZW50IHRoYXQgdGhpcyBmaWVsZCBkaWQgbm90IHZhbGlkYXRlPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aGlkZV9uYW1lPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgbmFtZSBzaG91bGQgYmUgaGlkZGVuLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmhhc19sYWJlbDwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIHR5cGUgaGFzIGEgbGFiZWw8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5uZWVkc19kaXY8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBuZWVkcyB0byBiZSB3cmFwcGVkIGluIGEgRElWIChvciB0YWJsZSByb3csIGlmIHRoYXRcJiMwMzk7cyB0aGUgd2F5IHlvdSBzd2luZyk8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5uYW1lPC90ZD48dGQ+dGhlIGZpZWxkXCYjMDM5O3MgbmFtZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmlucHV0PC90ZD48dGQ+dGhlIGZpZWxkXCYjMDM5O3MgaW5wdXQgY29udHJvbCAoZS5nLiwgdGhlIGlucHV0IGZpZWxkIGl0c2VsZik8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5pbnB1dF9pZDwvdGQ+PHRkPnRoZSBJRCBvZiB0aGUgZmllbGRcJiMwMzk7cyBpbnB1dCAodXNlZnVsIGZvciA8bGFiZWwgZm9yPVwmcXVvdDtcJnF1b3Q7Pik8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT50eXBlPC90ZD48dGQ+dGhlIGZpZWxkXCYjMDM5O3MgZGF0YSB0eXBlPC90ZD48L3RyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCjx0cj48dGQ+ZmllbGQtPm11bHRpcGxlX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQtPmlucHV0IGlzIGFjdHVhbGx5IGEgY29sbGVjdGlvbiBvZiBjb250cm9sczwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmxhYmVsX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgY29sbGVjdGlvbiBvZiBjb250cm9scyBoYXMgc2VwYXJhdGUgbGFiZWxzIGZvciBlYWNoIGNvbnRyb2w8L3RkPjwvdHI+DQo8L3RhYmxlPg0KDQo8cD5JbiBjZXJ0YWluIGNhc2VzLCBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYW4gYXJyYXkgb2Ygb2JqZWN0cyByYXRoZXIgdGhhbiBhbiBpbnB1dC4gVGhpcyBoYXBwZW5zLCBmb3IgZXhhbXBsZSwgaW4gQ2hlY2tCb3hHcm91cHMgb3IgUmFkaW9CdXR0b25Hcm91cHMuIEZvciB0aGVtLCB5b3UgY2FuIGl0ZXJhdGUgdGhyb3VnaCBmaWVsZC0+aW5wdXQtPm5hbWUgYW5kIGZpZWxkLT5pbnB1dC0+aW5wdXRzLjwvcD4NCiAgICANCjxwPkFkZGl0aW9uYWwgc21hcnR5IHZhcmlhYmxlcyB0aGF0IHlvdSBjYW4gdXNlIGluY2x1ZGU6PC9wPg0KPHRhYmxlPg0KPHRyPjx0aD5WYXJpYWJsZTwvdGg+PHRoPlZhbHVlPC90aD48L3RyPg0KPHRyPjx0ZD50b3RhbF9wYWdlczwvdGQ+PHRkPm51bWJlciBvZiBwYWdlcyBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+dGhpc19wYWdlPC90ZD48dGQ+bnVtYmVyIGZvIHRoZSBjdXJyZW50IHBhZ2UgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPnRpdGxlX3BhZ2VfeF9vZl95PC90ZD48dGQ+ZGlzcGxheXMgXCZxdW90O3BhZ2UgeCBvZiB5XCZxdW90OyBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+Y3NzX2NsYXNzPC90ZD48dGQ+Q1NTIENsYXNzIGZvciB0aGUgZm9ybTwvdGQ+PC90cj4NCjx0cj48dGQ+Zm9ybV9uYW1lPC90ZD48dGQ+Rm9ybSBuYW1lPC90ZD48L3RyPg0KPHRyPjx0ZD5mb3JtX2lkPC90ZD48dGQ+Rm9ybSBkYXRhYmFzZSBJRDwvdGQ+PC90cj4NCjx0cj48dGQ+cHJldjwvdGQ+PHRkPlwmcXVvdDtCYWNrXCZxdW90OyBidXR0b24gZm9yIG11bHRpcGFydCBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+c3VibWl0PC90ZD48dGQ+XCZxdW90O0NvbnRpbnVlXCZxdW90OyBvciBcJnF1b3Q7U3VibWl0XCZxdW90OyBidXR0b24gZm9yIG11bHRpcGFydCBmb3JtcywgYWRqdXN0cyBhdXRvbWF0aWNhbGx5PC90ZD48L3RyPg0KPC90YWJsZT4NCjxwPkR1bm5vIHdoeSB5b3VcJiMwMzk7ZCB3YW50IHNvbWUgb2YgdGhvc2UsIGJ1dCB0aGVyZSB5b3UgZ28uLi48L3A+DQoNCg0KPGgzPktub3duIElzc3VlczwvaDM+DQo8dWw+DQo8bGk+Rm9ybUJ1aWxkZXIgaXMgbm90IHlldCBpbnRlZ3JhdGVkIHdpdGggRnJvbnRFbmQgVXNlcnMuIEl0IHdpbGwgYmUuPC9saT4NCjxsaT5Gb3JtQnVpbGRlciBjYW5ub3QgeWV0IGJlIGlubGluZWQuIFRoYXQgc2hvdWxkIGJlIGEgc2ltcGxlIHVwZ3JhZGUgZG93biB0aGUgbGluZS48L2xpPg0KPGxpPkZvcm1CdWlsZGVyIGRvZXMgbm90IHlldCBzdXBwb3J0IHByZXR0eSB1cmxzLCBhbHRob3VnaCB0aGF0IHNob3VsZG5cJiMwMzk7dCBtYXR0ZXIgc2luY2UgdGhlIHVzZXIgc2lkZSBpcyBwcmV0dHkgc2ltcGxlLjwvbGk+DQo8L3VsPg0KDQo8aDM+VHJvdWJsZXNob290aW5nPC9oMz4NCjxvbD48bGk+IEZpcnN0IHN0ZXAgaXMgdG8gY2hlY2sgeW91XCYjMDM5O3JlIHJ1bm5pbmcgQ01TIDEuMC1zdm4gb3IgbGF0ZXIuPC9saT4NCjxsaT4gU2Vjb25kIHN0ZXAgaXMgdG8gcmVhZCBhbmQgdW5kZXJzdGFuZCB0aGUgY2F2ZWF0IGFib3V0IFdZU0lXWUcgZWRpdG9ycyB1cCBpbiB0aGUNCnNlY3Rpb24gPGVtPkFkZGluZyBhIEZvcm0gdG8gYSBQYWdlPC9lbT4uPC9saT4NCjxsaT4gSWYgeW91XCYjMDM5O3JlIG1pc3NpbmcgZmllbGRzIGluIGFuIGVtYWlsIHRoYXQgZ2V0cyBnZW5lcmF0ZWQsIGNoZWNrIHRoZSBkaXNwb3NpdGlvbiBmaWVsZFwmIzAzOTtzIHRlbXBsYXRlLCBhbmQgbWFrZSBzdXJlIHlvdVwmIzAzOTtyZSBzcGVjaWZ5aW5nIHRoZSBtaXNzaW5nIGZpZWxkcy4gU2VlbXMgb2J2aW91cywgYnV0IGl0XCYjMDM5O3MgYW4gZWFzeSBtaXN0YWtlIHRvIG1ha2UuPC9saT4NCjxsaT5VbmNoZWNrIHRoZSBcJnF1b3Q7SGlkZSBFcnJvcnNcJnF1b3Q7IGNoZWNrYm94IGluIHRoZSBnbG9iYWwgb3B0aW9ucywgYW5kIHNlZSB3aGF0IG1lc3NhZ2UgZ2V0cyBkaXNwbGF5ZWQgd2hlbiB5b3Ugc3VibWl0IHlvdXIgZm9ybS48L2xpPg0KPGxpPiBKdXN0IG1lc3MgYXJvdW5kIGFuZCB0cnkgY2xpY2tpbmcgb24gbGlua3MgYW5kIGljb25zIGFuZCBzdHVmZi4gU2VlIHdoYXQgaGFwcGVucy48L2xpPg0KPGxpPiBMYXN0IHJlc3BvcnQgaXMgdG8gZW1haWwgbWUgb3IgY2F0Y2ggbWUgb24gSVJDIGFuZCB3ZSBjYW4gZ28gZnJvbSB0aGVyZS48L2xpPg0KPC9vbD4gDQo8cD5UaGlzIGlzIG5vIGxvbmdlciBhIHBhcnRpY3VsYXJseSBlYXJseSB2ZXJzaW9uLCBidXQgaXQgaXMgcHJvYmFibHkgc3RpbGwgYnVnZ3kuIFdoaWxlIElcJiMwMzk7dmUgZG9uZSBhbGwgSSBjYW4NCnRvIG1ha2Ugc3VyZSBubyBlZ3JlZ2lvdXMgYnVncyBoYXZlIGNyZXB0IGluLCBJIGhhdmUgdG8gYWRtaXQgdGhhdCBkdXJpbmcgZWFybHkgdGVzdGluZywgdGhpcyBwcm9ncmFtDQpyZXZlYWxlZCBzZXZlbiBjb2Nrcm9hY2hlcywgdHdvIGVhcndpZ3MsIGEgc21hbGwgZmFtaWx5IG9mIGFwaGlkcywgYW5kIGEgd2Fsa2luZy1zdGljayBpbnNlY3QuIEl0IGFsc28NCmF0ZSB0aGUgbmVpZ2hib3JcJiMwMzk7cyBuYXN0eSBsaXR0bGUgeWFwIGRvZywgZm9yIHdoaWNoIEkgd2FzIGluYXBwcm9wcmlhdGVseSBncmF0ZWZ1bC48L3A+DQo8cD5UaGUgZmluYWwgcmVsZWFzZSB3aWxsIGluY2x1ZGUgYnVnIGZpeGVzLCBkb2N1bWVudGF0aW9uLCBhbmQgdW5jb25kaXRpb25hbCBsb3ZlLjwvcD4NCjxoMz5TdXBwb3J0PC9oMz4NCjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4NCjx1bD4NCjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlLCBGQVFzLCBvciB0byBmaWxlIGEgQnVnIFJlcG9ydCwgcGxlYXNlIHZpc2l0IHRoZSBDTVMgTWFkZSBTaW1wbGUgIDxhIGhyZWY9XCZxdW90O2h0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmdcJnF1b3Q7PkRldmVsb3BlciBGb3JnZTwvYT4uPC9saT4NCjxsaT5UbyBvYnRhaW4gY29tbWVyY2lhbCBzdXBwb3J0LCBwbGVhc2Ugc2VuZCBhbiBlbWFpbCB0byB0aGUgYXV0aG9yIGF0IDxhIGhyZWY9XCZxdW90O21haWx0bzpzamdAY21zbW9kdWxlcy5jb21cJnF1b3Q7PiZhbXA7bHQ7c2pnQGNtc21vZHVsZXMuY29tJmFtcDtndDs8L2E+LjwvbGk+DQo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPVwmcXVvdDtodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmdcJnF1b3Q7PkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LjwvbGk+DQo8bGk+VGhlIGF1dGhvciBjYW4gb2Z0ZW4gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9XCZxdW90O2lyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2Ntc1wmcXVvdDs+Q01TIElSQyBDaGFubmVsPC9hPi48L2xpPg0KPGxpPkxhc3RseSwgeW91IG1heSBoYXZlIHNvbWUgc3VjY2VzcyBlbWFpbGluZyB0aGUgYXV0aG9yIGRpcmVjdGx5IGFuZCBncm92ZWxsaW5nIGZvciBmcmVlIHN1cHBvcnQuPC9saT4NCjwvdWw+DQo8cD5BcyBwZXIgdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCBhcy1pcy4gUGxlYXNlIHJlYWQgdGhlIHRleHQNCm9mIHRoZSBsaWNlbnNlIGZvciB0aGUgZnVsbCBkaXNjbGFpbWVyLjwvcD4NCjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPg0KPHA+Q29weXJpZ2h0ICZhbXA7Y29weTsgMjAwNywgU2FtdWVsIEdvbGRzdGVpbiA8YSBocmVmPVwmcXVvdDttYWlsdG86c2pnQGNtc21vZHVsZXMuY29tXCZxdW90Oz4mYW1wO2x0O3NqZ0BjbXNtb2R1bGVzLmNvbSZhbXA7Z3Q7PC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPg0KPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9XCZxdW90O2h0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTFwmcXVvdDs+R05VIFB1YmxpYyBMaWNlbnNlPC9hPi4gWW91IG11c3QgYWdyZWUgdG8gdGhpcyBsaWNlbnNlIGJlZm9yZSB1c2luZyB0aGUgbW9kdWxlLjwvcD4nOwokbGFuZ1snY2hhbmdlbG9nJ10gPSAnPHVsPg0KPGxpPlZlcnNpb24gMC4zDQogICA8dWw+DQogICAgICA8bGk+QWRkZWQgQ2FwdGNoYSBtb2R1bGUgc3VwcG9ydC48L2xpPg0KICAgICAgPGxpPlJld29ya2VkIGxhYmVsaW5nIG9mIGZvcm0gZWxlbWVudHMgdG8gYmUgWEhUTUwgY29tcGxpYW50PC9saT4NCiAgICAgIDxsaT5BZGRlZCBQYXVsIE5vb25lXCYjMDM5O3MgbmV3LCBpbXByb3ZlZCBjb250YWN0IGZvcm0gdGVtcGxhdGVzPC9saT4NCiAgICAgIDxsaT5JbXBsZW1lbnRhdGlvbiBvZiBFbWFpbCBTdWJqZWN0IEZpZWxkPC9saT4NCiAgICAgIDxsaT5BZGRlZCBhZG1pbi1zcGVjaWZpYWJsZSB2YWx1ZXMgdG8gaGlkZGVuIGZpZWxkIHR5cGUsIHdoaWNoIG1heSBjb250YWluIHBhcnNhYmxlIHNtYXJ0eSB0YWdzPC9saT4NCiAgICAgIDxsaT5UZXh0IEFyZWEgRmllbGQgbm93IGFsbG93cyBzcGVjaWZpY2F0aW9uIG9mIHJvd3MgYW5kIGNvbHMgaW4gdGhlIGFkbWluLCBpbnN0ZWFkIG9mIENTUzwvbGk+DQogICAgICA8bGk+QWRkZWQgRHJhZ1wmIzAzOTtuXCYjMDM5O0Ryb3AgcmVvcmRlcmluZyBvZiBmb3JtIGZpZWxkcy48L2xpPg0KICAgICAgPGxpPkFkZGVkIG5vbi1ibGFuayBmaWVsZCBuYW1lIGFuZCB1bmlxdWUgZmllbGQgbmFtZSBnbG9iYWwgY29uZmlndXJhdGlvbiBvcHRpb25zIGFuZCB2YWxpZGF0aW9uPC9saT4NCiAgICAgIDxsaT5JbXBsZW1lbnRlZCB0ZW1wbGF0ZWQgZGlzcGxheSBvZiBmb3JtIHJlc3VsdHMgdXBvbiBzdWJtaXNzaW9uIGluIGFkZGl0aW9uIHRvIHBhZ2UgcmVkaXJlY3Rpbmc8L2xpPg0KICAgICAgPGxpPjwvbGk+DQogICA8L3VsPg0KPC9saT4NCjxsaT5WZXJzaW9uIDAuMi40IC0gMDkgTWF5IDIwMDcNCiAgIDxwPkJpZyByZWxlYXNlOjx1bD4NCiAgIDxsaT5BZGRlZCBcJnF1b3Q7RW1haWwgRm9ybSB0byBVc2VyLVN1cHBsaWVkIEFkZHJlc3NcJnF1b3Q7IGRpc3Bvc2l0aW9uLjwvbGk+DQogICA8bGk+QWRkZWQgXCZxdW90O1RpbWVQaWNrZXJcJnF1b3Q7IGZpZWxkIHR5cGUuIFNwbGl0IFwmcXVvdDtMaW5rXCZxdW90OyBmaWVsZCBpbnRvIGEgXCZxdW90O1VzZXItc3VwcGxpZWQgTGlua1wmcXVvdDsgZmllbGQgYW5kIGEgXCZxdW90O1N0YXRpYyBMaW5rXCZxdW90OyBmaWVsZC48L2xpPg0KICAgPGxpPkFkZGVkIEhUTUwgZW1haWwgb3B0aW9uIGFuZCBhdXRvLXRlbXBsYXRlcyBmb3IgYWxsIGVtYWlsIGRpc3Bvc2l0aW9ucy48L2xpPg0KICAgPGxpPkFkZGVkIHByaW1pdGl2ZSBhbnRpLXNwYW0gZmVhdHVyZXMuPC9saT4NCiAgIDxsaT5BZGRlZCBYTUwtYmFzZWQgaW1wb3J0IGFuZCBleHBvcnQgb2YgZm9ybXMuPC9saT4NCiAgIDwvdWw+DQogICA8L3A+DQo8L2xpPg0KPGxpPlZlcnNpb24gMC4yLjMNCiAgIDxwPkFkZCB0aGUgYWJpbGl0eSB0byBjYWxsIGEgc2VsZWN0YWJsZSB1c2VyIGRlZmluZWQgdGFnIHVwb24gZGlzcG9zaXRpb24gb2YgdGhlIGZvcm0uPC9wPg0KPC9saT4NCjxsaT5WZXJzaW9uIDAuMi4yDQogICA8cD5NYW55IHRoYW5rcyB0byBVdHRlciBEZXNpZ24gZm9yIHNwb25zb3Jpbmcgc29tZSBjaGFuZ2VzIGFuZCBidWdmaXhlcywgd2hpY2ggaW5jbHVkZToNCiAgIDx1bD4NCiAgICAgIDxsaT5BZGRlZCBmaWxlIHVwbG9hZCBjYXBhYmlsaXRpZXMgdG8gdGhlIGVtYWlsIGRpc3Bvc2l0aW9uPC9saT4NCiAgICAgIDxsaT5BZGQgUGFnZVNldFN0YXJ0IGFuZCBQYWdlU2V0RW5kIGZpZWxkIHR5cGVzDQogICAgICA8cD5UaGVzZSBmaWVsZCB0eXBlcyBhbGxvdyB5b3UgdG8gY3JlYXRlIGZpZWxkc2V0cyBpbiB5b3VyIGZvcm0sIGFuZCBvcmdhbmlzZQ0KICAgICAgeW91ciBmaWVsZHMgbG9naWNhbGx5IGZvciB0aGUgdXNlci4gIFlvdSBjYW4gZXZlbiBuZXN0IGZpZWxkc2V0cywgYW5kDQogICAgICBhc3NvY2lhdGUgYSBzdHlsZSB3aXRoIHRoZW0gYXBwcm9wcmlhdGVseS4gIFRoZSBkZWZhdWx0IHRlbXBsYXRlIHdhcyBjaGFuZ2VkDQogICAgICB0byBwcmV2ZW50IGl0IGZyb20gd3JhcHBpbmcgYSBkaXYgYXJvdW5kIHRoZXNlIHR5cGVzIG9mIGZpZWxkcy4NCiAgICAgIDwvcD4NCiAgICAgIDwvbGk+DQogICAgICA8bGk+Rml4ZWQgYSBwcm9ibGVtIHdpdGggREFURVRJTUUgZmllbGRzIG9uIGluc3RhbGwNCiAgICAgIDxwPlRoaXMgc29sdmVzIGEgcHJvYmxlbSB3aGVuIG9uIGluc3RhbGwgdGhlIHJlc3BvbnNlIHRhYmxlIHdvdWxkIHNvbWV0aW1lcyBub3QgZ2V0IGNyZWF0ZWQgd2hlbiB1c2luZyBhZG9kYiBsaXRlPC9saT4NCiAgICAgIDwvbGk+DQogICA8L3VsPg0KICAgPC9wPg0KPC9saT4NCjxsaT5WZXJzaW9uIDAuMiAtIDE0IE5vdmVtYmVyIDIwMDYuIENhbGd1eSAmYW1wO2FtcDsgdHN3XCYjMDM5O3MgYnVnIGZpeGVzIGZvciBmaWVsZCByZS1vcmRlcmluZyBhbmQgY3VzdG9tIHRlbXBsYXRlcy4gQWRkaXRpb25hbCBidWcgZml4ZXMgZm9yIGZpZWxkIGxhYmVscy48L2xpPg0KPGxpPlZlcnNpb24gMC4xIC0gOCBKdWx5IDIwMDYuIEluaXRpYWwgUmVsZWFzZTwvbGk+DQo8L3VsPg0KJzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/de_DE.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0Zvcm1CdWlsZGVyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfJ10gPSAnRmVsZHR5cCB3dXJkZSBuaWNodCBkZWZpbmllcnQnOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldEVuZCddID0gJy1GaWVsZHNldCBFbmQnOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldFN0YXJ0J10gPSAnLUZpZWxkc2V0IFN0YXJ0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkJ10gPSAnVGV4dGZlbGQnOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0RmllbGRFeHBhbmRhYmxlJ10gPSAnVGV4dCBJbnB1dCAoTXVsdGlwbGUpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEFyZWFGaWVsZCddID0gJ1RleHRiZXJlaWNoJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hGaWVsZCddID0gJ0tvbnRyb2xsayZhdW1sO3N0Y2hlbic7CiRsYW5nWydmaWVsZF90eXBlX0NoZWNrYm94R3JvdXBGaWVsZCddID0gJ0tvbnRyb2xsayZhdW1sO3N0Y2hlbi1HcnVwcGUnOwokbGFuZ1snZmllbGRfdHlwZV9QdWxsZG93bkZpZWxkJ10gPSAnTGlzdGVuZmVsZCc7CiRsYW5nWydmaWVsZF90eXBlX011bHRpc2VsZWN0RmllbGQnXSA9ICdNZWhyZmFjaGF1c3dhaGwnOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0ZVBpY2tlckZpZWxkJ10gPSAnQXVzd2FobCBkZXMgVS5TLi1TdGFhdGVzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ291bnRyeVBpY2tlckZpZWxkJ10gPSAnQXVzd2FobCBkZXMgTGFuZGVzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGF0ZVBpY2tlckZpZWxkJ10gPSAnRGF0dW1zYXVzd2FobCc7CiRsYW5nWydmaWVsZF90eXBlX1RpbWVQaWNrZXJGaWVsZCddID0gJ1RpbWUgUGlja2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUmFkaW9Hcm91cEZpZWxkJ10gPSAnT3B0aW9uc2ZlbGQtR3J1cHBlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EaXJlY3RvciddID0gJypFcmdlYm5pc3NlIHBlciBFbWFpbCBhbiBBdXN3YWhsIGF1cyBkZW0gTGlzdGVuZmVsZCBzZW5kZW4nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZpbGVEaXJlY3RvciddID0gJypTYXZlIFJlc3VsdHMgdG8gRmlsZSBCYXNlZCBvbiBQdWxsZG93bic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uTXVsdGlzZWxlY3RGaWxlRGlyZWN0b3InXSA9ICcqU2F2ZSBSZXN1bHRzIHRvIEZpbGUocykgQmFzZWQgb24gTXVsdGlwbGUgU2VsZWN0aW9ucyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uUGFnZVJlZGlyZWN0b3InXSA9ICcqUmVkaXJlY3QgdG8gUGFnZSBCYXNlZCBvbiBQdWxsZG93bic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWwnXSA9ICcqRXJnZWJuaXNzZSBwZXIgRW1haWwgYW4gdm9yZ2VnZWJlbmUgQWRyZXNzZShuKSBzZW5kZW4nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsQ29uZmlybWF0aW9uJ10gPSAnKiZVdW1sO2JlcnByJnV1bWw7ZnVuZyAmdXVtbDtiZXIgZGllIEVtYWlsLUFkcmVzc2UnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZpbGUnXSA9ICcqRXJnZWJuaXNzZSBpbiBlaW5lIERhdGVpIHNjaHJlaWJlbic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGF0YWJhc2UnXSA9ICcqRXJnZWJuaXNzZSBpbiBkaWUgRGF0ZW5iYW5rIHNjaHJlaWJlbic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uVXNlclRhZyddID0gJypDYWxsIEEgVXNlciBEZWZpbmVkIFRhZyBXaXRoIHRoZSBGb3JtIFJlc3VsdHMnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRlbGl2ZXJUb0VtYWlsQWRkcmVzc0ZpZWxkJ10gPSAnKkVtYWlsIHRvIFVzZXItU3VwcGxpZWQgRW1haWwgQWRkcmVzcyc7CiRsYW5nWydmaWVsZF90eXBlX1BhZ2VCcmVha0ZpZWxkJ10gPSAnLVNlaXRlbnVtYnJ1Y2gnOwokbGFuZ1snZmllbGRfdHlwZV9GaWxlVXBsb2FkRmllbGQnXSA9ICdIb2NobGFkZW4gdm9uIERhdGVpZW4nOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxBZGRyZXNzRmllbGQnXSA9ICdFbWFpbGZlbGQgJnF1b3Q7Vm9uIChFbWFpbCkmcXVvdDsnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxOYW1lRmllbGQnXSA9ICdFbWFpbGZlbGQgJnF1b3Q7Vm9uIChOYW1lKSZxdW90Oyc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbFN1YmplY3RGaWVsZCddID0gJ0VtYWlsZmVsZCAmcXVvdDtCZXRyZWZmJnF1b3Q7JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3RhdGljVGV4dEZpZWxkJ10gPSAnLVN0YXRpc2NoZXIgVGV4dCc7CiRsYW5nWydmaWVsZF90eXBlX1N5c3RlbUxpbmtGaWVsZCddID0gJy1TdGF0aXNjaGVyIExpbmsnOwokbGFuZ1snZmllbGRfdHlwZV9MaW5rRmllbGQnXSA9ICdMaW5rICh2b20gQmVudXR6ZXIgZWluZ2VnZWJlbiknOwokbGFuZ1snZmllbGRfdHlwZV9IaWRkZW5GaWVsZCddID0gJy1WZXJib3JnZW5lcyBGZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ29tcHV0ZWRGaWVsZCddID0gJy1CZXJlY2huZXRlcyBGZWxkJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbm9uZSddID0gJ0tlaW5lICZVdW1sO2JlcnByJnV1bWw7ZnVuZyc7CiRsYW5nWyd2YWxpZGF0aW9uX251bWVyaWMnXSA9ICdOdW1tZXJpc2NoJzsKJGxhbmdbJ3ZhbGlkYXRpb25faW50ZWdlciddID0gJ0dhbnp6YWhsJzsKJGxhbmdbJ3ZhbGlkYXRpb25fZW1haWxfYWRkcmVzcyddID0gJ0VtYWlsYWRyZXNzZSc7CiRsYW5nWyd2YWxpZGF0aW9uX211c3RfY2hlY2snXSA9ICdNdXNzICZ1dW1sO2JlcnByJnV1bWw7ZnQgd2VyZGVuJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbWF0Y2gnXSA9ICdlbnRzcHJpY2h0IGRlbSB6dWwmYXVtbDtzc2lnZW4gV2VydCc7CiRsYW5nWyd2YWxpZGF0aW9uX3JlZ2V4X25vbWF0Y2gnXSA9ICdlbnRzcHJpY2h0IG5pY2h0IGRlbSB6dWwmYXVtbDtzc2lnZW4gV2VydCc7CiRsYW5nWydyZXF1aXJlZF9maWVsZF9taXNzaW5nJ10gPSAnQSB2YWx1ZSB3YXMgbm90IHN1cHBsaWVkIGZvciBhIHJlcXVpcmVkIGZpZWxkJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX3ZhbHVlJ10gPSAnQml0dGUgZ2ViZW4gU2llIGYmdXVtbDtyICZxdW90OyVzJnF1b3Q7IGVpbmVuIFdlcnQgZWluJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX251bWJlciddID0gJ0JpdHRlIGdlYmVuIFNpZSBmJnV1bWw7ciAmcXVvdDslcyZxdW90OyBlaW5lIFphaGwgZWluICc7CiRsYW5nWydwbGVhc2VfZW50ZXJfdmFsaWQnXSA9ICdCaXR0ZSBnZWJlbiBTaWUgZiZ1dW1sO3IgJnF1b3Q7JXMmcXVvdDsgZWluZW4gZyZ1dW1sO2x0aWdlbiBXZXJ0IGVpbic7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5faW50ZWdlciddID0gJ0JpdHRlIGdlYmVuIFNpZSBmJnV1bWw7ciAmcXVvdDslcyZxdW90OyBlaW5lbiBnYW56emFobGlnZW4gV2VydCBlaW4gJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hbl9lbWFpbCddID0gJ0JpdHRlIGdlYmVuIFNpZSBmJnV1bWw7ciAmcXVvdDslcyZxdW90OyBlaW5lIGcmdXVtbDtsdGlnZSBFbWFpbGFkcmVzc2UgZWluICc7CiRsYW5nWydub3RfdmFsaWRfZW1haWwnXSA9ICcmcXVvdDslcyZxdW90OyBzY2hlaW50IGtlaW5lIGcmdXVtbDtsdGlnZSBFbWFpbGFkcmVzc2UgenUgc2VpbiEnOwokbGFuZ1sncGxlYXNlX2VudGVyX25vX2xvbmdlciddID0gJ0JpdHRlIGdlYmVuIFNpZSBlaW5lbiBXZXJ0IGVpbiwgZGVyIG5pY2h0IGwmYXVtbDtuZ2VyIGFscyAlcyBaZWljaGVuIGlzdCAnOwokbGFuZ1sndGl0bGVfbGlzdF9kZWxpbWl0ZXInXSA9ICdaZWljaGVuLCBkYXMgYWxzIFRyZW5uZXIgdmVyd2VuZGV0IHdpcmQsIHdlbm4gbWVociBhbHMgZWluIFdlcnQgYWxzIEVyZ2VibmlzIHp1ciZ1dW1sO2NrZ2VnZWJlbiB3aXJkJzsKJGxhbmdbJ3lvdV9uZWVkX3Blcm1pc3Npb24nXSA9ICdTaWUgYmVuJm91bWw7dGlnZW4gZGllIEJlcmVjaHRpZ3VuZyAmcXVvdDslcyZxdW90OywgdW0gZGllc2UgQWt0aW9uIGF1c3p1ZiZ1dW1sO2hyZW4uJzsKJGxhbmdbJ2xhY2twZXJtaXNzaW9uJ10gPSAnU2llIGhhYmVuIG5pY2h0IGRpZSBlcmZvcmRlcmxpY2hlIEJlcmVjaHRpZ3VuZywgdW0gYXVmIGRpZXNlbiBCZXJlaWNoIHp1enVncmVpZmVuLic7CiRsYW5nWydmaWVsZF9vcmRlcl91cGRhdGVkJ10gPSAnRmVsZHJlaWhlbmZvbGdlIGFrdHVhbGlzaWVydC4nOwokbGFuZ1snZm9ybV9kZWxldGVkJ10gPSAnRm9ybXVsYXIgZ2VsJm91bWw7c2NodC4nOwokbGFuZ1snZmllbGRfZGVsZXRlZCddID0gJ0ZlbGQgZ2VsJm91bWw7c2NodC4nOwokbGFuZ1snY29uZmlndXJhdGlvbl91cGRhdGVkJ10gPSAnS29uZmlndXJhdGlvbmVuIGFrdHVhbGlzaWVydC4nOwokbGFuZ1sneW91X211c3RfY2hlY2snXSA9ICdVbSB3ZWl0ZXJ6dW1hY2hlbiBtJnV1bWw7c3NlbiBTaWUgenV2b3IgJnF1b3Q7JXMmcXVvdDsgJnV1bWw7YmVycHImdXVtbDtmZW4uJzsKJGxhbmdbJ211c3Rfc3BlY2lmeV9vbmVfZGVzdGluYXRpb24nXSA9ICdTaWUgbSZ1dW1sO3NzZW4gaGllciBtaW5kZXN0ZW5zIGVpbmUgWmllbGFkcmVzc2UgYW5nZWJlbiEnOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9mb3JtJ10gPSAnV29sbGVuIFNpZSBkYXMgRm9ybXVsYXIgJXMgd2lya2xpY2ggbCZvdW1sO3NjaGVuPyc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2ZpZWxkJ10gPSAnV29sbGVuIFNpZSBkYXMgRmVsZCAlcyB3aXJrbGljaCBsJm91bWw7c2NoZW4/JzsKJGxhbmdbJ25vdGljZV9zZWxlY3RfdHlwZSddID0gJ0JpcyB6dW0gU2V0emVuIGRlcyBGZWxkdHlwcyBzaW5kIGRpZSBlcndlaXRlcnRlbiBPcHRpb25lbiBuaWNodCB2ZXJmJnV1bWw7Z2Jhci4nOwokbGFuZ1snZmllbGRfbmFtZV9pbl91c2UnXSA9ICdEZXIgRmVsZG5hbWUgJnF1b3Q7JXMmcXVvdDsgd2lyZCBiZXJlaXRzIHZlcndlbmRldC4gQml0dGUgdmVyd2VuZGVuIFNpZSBlaW5kZXV0aWdlIEZlbGRuYW1lbiBvZGVyIGRlYWt0aXZpZXJlbiBTaWUgZGllIFZlcndlbmR1bmcgZWluZGV1dGlnZXIgRmVsZG5hbWVuIGluIGRlciBGb3JtQnVpbGRlci1Lb25maWd1cmF0aW9uLic7CiRsYW5nWydmaWVsZF9ub19uYW1lJ10gPSAnRGllIEZlbGRlciBtJnV1bWw7c3NlbiBlaW5lbiBOYW1lbiBlcmhhbHRlbiwgYXUmc3psaWc7ZXIgU2llIGRlYWt0aXZpZXJlbiBkaWVzIGluIGRlciBGb3JtQnVpbGRlci1Lb25maWd1cmF0aW9uLic7CiRsYW5nWydhbm9ueW1vdXMnXSA9ICdBbm9ueW0nOwokbGFuZ1snYWJicmV2aWF0aW9uX2xlbmd0aCddID0gJ0wmYXVtbDtuZ2U6ICVzJzsKJGxhbmdbJ2JveGVzJ10gPSAnJXMgS29udHJvbGxrJmF1bWw7c3RjaGVuJzsKJGxhbmdbJ29wdGlvbnMnXSA9ICclcyBPcHRpb25lbic7CiRsYW5nWyd0ZXh0X2xlbmd0aCddID0gJyVzIFplaWNoZW4uJzsKJGxhbmdbJ29yZGVyJ10gPSAnUmVpaGVuZm9sZ2UnOwokbGFuZ1sndW5zcGVjaWZpZWQnXSA9ICcobmljaHQgZGVmaW5pZXJ0KSc7CiRsYW5nWydhZGRlZCddID0gJ2hpbnp1Z2VmJnV1bWw7Z3QnOwokbGFuZ1sndXBkYXRlZCddID0gJ2FrdHVhbGlzaWVydCc7CiRsYW5nWydzb3J0X29wdGlvbnMnXSA9ICdTb3J0IG9wdGlvbnMgb24gb3V0cHV0JzsKJGxhbmdbJ3NlbGVjdF9vbmUnXSA9ICdCaXR0ZSBlaW5lbiBhdXN3JmF1bWw7aGxlbic7CiRsYW5nWydzZWxlY3RfdHlwZSddID0gJ0VpbmVuIFR5cCBhdXN3JmF1bWw7aGxlbic7CiRsYW5nWyd0byddID0gJ0FuJzsKJGxhbmdbJ3llcyddID0gJ0phJzsKJGxhbmdbJ25vJ10gPSAnTmVpbic7CiRsYW5nWydyZWNpcGllbnRzJ10gPSAnRW1wZiZhdW1sO25nZXInOwokbGFuZ1snZmlsZV9jb3VudCddID0gJyVzIHZlcmYmdXVtbDtnYmFyZSBEYXRlaWVuJzsKJGxhbmdbJ2Rlc3RpbmF0aW9uX2NvdW50J10gPSAnJXMgWmllbGUnOwokbGFuZ1snc2F2ZSddID0gJ1NwZWljaGVybic7CiRsYW5nWydhZGQnXSA9ICdIaW56dWYmdXVtbDtnZW4nOwokbGFuZ1sndXBkYXRlJ10gPSAnQWt0dWFsaXNpZXJlbic7CiRsYW5nWydzYXZlX2FuZF9jb250aW51ZSddID0gJ1NwZWljaGVybiB1bmQgQmVhcmJlaXR1bmcgZm9ydHNldHplbic7CiRsYW5nWydpbmZvcm1hdGlvbiddID0gJ0luZm9ybWF0aW9uJzsKJGxhbmdbJ2F1dG9tYXRpYyddID0gJ0F1dG9tYXRpc2NoJzsKJGxhbmdbJ2Zvcm1zJ10gPSAnRm9ybXVsYXJlJzsKJGxhbmdbJ2Zvcm0nXSA9ICdGb3JtdWxhciAlcyc7CiRsYW5nWydjb25maWd1cmF0aW9uJ10gPSAnS29uZmlndXJhdGlvbic7CiRsYW5nWydmaWVsZF9yZXF1aXJlbWVudF91cGRhdGVkJ10gPSAnRmVsZHN0YXR1cyBha3R1YWxpc2llcnQuJzsKJGxhbmdbJ21heGltdW1fc2l6ZSddID0gJ01heC4gR3Imb3VtbDsmc3psaWc7ZSc7CiRsYW5nWydwZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ0VuZHVuZ2VuJzsKJGxhbmdbJ3Blcm1pdHRlZF9maWxldHlwZXMnXSA9ICdFcmxhdWJ0ZSBEYXRlaXR5cGVuJzsKJGxhbmdbJ2ZpbGVfdG9vX2xhcmdlJ10gPSAnRGllIGhvY2hnZWxhZGVuZSBEYXRlaSBpc3QgenUgZ3JvJnN6bGlnOyEgRGllIG1heGltYWxlIEdyJm91bWw7JnN6bGlnO2UgaXN0Oic7CiRsYW5nWydpbGxlZ2FsX2ZpbGVfdHlwZSddID0gJ0RpZXNlciBEYXRlaXR5cCBkYXJmIG5pY2h0IGhvY2hnZWxhZGVuIHdlcmRlbi4gQml0dGUgJnV1bWw7YmVycHImdXVtbDtmZW4gU2llLCBvYiBkaWUgRGF0ZWllbmR1bmcga29ycmVrdCBpc3QuJzsKJGxhbmdbJ3VwbG9hZCddID0gJ0hvY2hsYWRlbic7CiRsYW5nWydmb3JtX2ltcG9ydGVkJ10gPSAnRm9ybXVsYXIgaW1wb3J0aWVydC4nOwokbGFuZ1snZm9ybV9pbXBvcnRfZmFpbGVkJ10gPSAnRm9ybXVsYXItSW1wb3J0IGFiZ2Vicm9jaGVuISBFcyBpc3QgZWluIFByb2JsZW0gbWl0IGRlbSBGb3JtYXQgZGVyIFhNTC1EYXRlaSBhdWZnZXRyZXRlbi4nOwokbGFuZ1sncm93cyddID0gJyVzIFplaWxlbic7CiRsYW5nWydjb2xzJ10gPSAnJXMgU3BhbHRlbic7CiRsYW5nWycxMl9ob3VyJ10gPSAnMTItU3R1bmRlbi1BbnplaWdlJzsKJGxhbmdbJzI0X2hvdXInXSA9ICcyNC1TdHVuZGVuLUFuemVpZ2UnOwokbGFuZ1snaG91ciddID0gJ1N0dW5kZSc7CiRsYW5nWydtaW4nXSA9ICdNaW51dGUnOwokbGFuZ1snbWVyaWQnXSA9ICdNZXJpZGlhbic7CiRsYW5nWydkYXRlX3JhbmdlJ10gPSAnQmVyZWljaDogJXMgLSAlcyc7CiRsYW5nWyd0aGFua3MnXSA9ICdWaWVsZW4gRGFuayEgSWhyZSBFaW5nYWJlbiB3dXJkZW4gZXJmb2xncmVpY2ggJnV1bWw7YmVybWl0dGVsdC4nOwokbGFuZ1snZWRpdCddID0gJ0JlYXJiZWl0ZW4nOwokbGFuZ1snZGVsZXRlJ10gPSAnTCZvdW1sO3NjaGVuJzsKJGxhbmdbJ2RheSddID0gJ1RhZyc7CiRsYW5nWydtb24nXSA9ICdNb25hdCc7CiRsYW5nWyd5ZWFyJ10gPSAnSmFocic7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHVsIGRlaW5zdGFsbGllcnQuJzsKJGxhbmdbJ2luc3RhbGxlZCddID0gJ01vZHVsdmVyc2lvbiAlcyBpbnN0YWxsaWVydC4nOwokbGFuZ1sndXBncmFkZWQnXSA9ICdNb2R1bCBhdWYgVmVyc2lvbiAlcyBha3R1YWxpc2llcnQuJzsKJGxhbmdbJ2J1dHRvbl9wcmV2aW91cyddID0gJ1p1ciZ1dW1sO2NrIC4uLic7CiRsYW5nWydidXR0b25fc3VibWl0J10gPSAnRm9ybXVsYXIgYWJzZW5kZW4nOwokbGFuZ1snYnV0dG9uX2NvbnRpbnVlJ10gPSAnV2VpdGVyIC4uLic7CiRsYW5nWyd2YWx1ZV9jaGVja2VkJ10gPSAnR2VwciZ1dW1sO2Z0JzsKJGxhbmdbJ3ZhbHVlX3VuY2hlY2tlZCddID0gJ1VuZ2VwciZ1dW1sO2Z0JzsKJGxhbmdbJ3RhYl9tYWluJ10gPSAnSGF1cHRzZWl0ZSc7CiRsYW5nWyd0YWJfc3ltYm9sJ10gPSAnRm9ybSBEaXNwbGF5IFNldHRpbmdzJzsKJGxhbmdbJ3RhYl9zdWJtaXQnXSA9ICdGb3JtIFN1Ym1pc3Npb24nOwokbGFuZ1sndGFiX2NhcHRjaGEnXSA9ICdDYXB0Y2hhLUVpbnN0ZWxsdW5nZW4nOwokbGFuZ1sndGFiX2FkdmFuY2VkJ10gPSAnRXJ3ZWl0ZXJ0ZSBFaW5zdGVsbHVuZ2VuJzsKJGxhbmdbJ3RhYl90ZW1wbGF0ZWxheW91dCddID0gJ09wdGlvbmVuIGYmdXVtbDtyIGRhcyBUZW1wbGF0ZS1MYXlvdXQnOwokbGFuZ1sndGFiX3N1Ym1pc3Npb250ZW1wbGF0ZSddID0gJ1N1Ym1pc3Npb24gVGVtcGxhdGUnOwokbGFuZ1snY2FudXNlX3NtYXJ0eSddID0gJzxlbT5TbWFydHkgdmFyaWFibGVzIGFyZSB2YWxpZCBpbiB0aGlzIGZpZWxkLjxlbT4nOwokbGFuZ1snYWRkX29wdGlvbnMnXSA9ICdXZWl0ZXJlIE9wdGlvbmVuIGhpbnp1ZiZ1dW1sO2dlbic7CiRsYW5nWydkZWxldGVfb3B0aW9ucyddID0gJ01hcmtpZXJ0ZSBPcHRpb25lbiBsJm91bWw7c2NoZW4nOwokbGFuZ1snYWRkX2NoZWNrYm94ZXMnXSA9ICdXZWl0ZXJlIEtvbnRyb2xsayZhdW1sO3N0Y2hlbiBoaW56dWYmdXVtbDtnZW4nOwokbGFuZ1snZGVsZXRlX2NoZWNrYm94ZXMnXSA9ICdNYXJraWVydGUgS29udHJvbGxrJmF1bWw7c3RjaGVuIGwmb3VtbDtzY2hlbic7CiRsYW5nWydhZGRfYWRkcmVzcyddID0gJ0VpbmUgd2VpdGVyZSBBZHJlc3NlIGhpbnp1ZiZ1dW1sO2dlbic7CiRsYW5nWydkZWxldGVfYWRkcmVzcyddID0gJ01hcmtpZXJ0ZSBBZHJlc3NlbiBsJm91bWw7c2NoZW4nOwokbGFuZ1snYWRkX2Rlc3RpbmF0aW9uJ10gPSAnRWluIHdlaXRlcmVzIFppZWwgaGluenVmJnV1bWw7Z2VuJzsKJGxhbmdbJ2RlbGV0ZV9kZXN0aW5hdGlvbiddID0gJ01hcmtpZXJ0ZSBaaWVsZSBsJm91bWw7c2NoZW4nOwokbGFuZ1snc3VzcGVjdGVkX3NwYW0nXSA9ICdUb28gbWFueSBlbWFpbHMgZ2VuZXJhdGVkIGZyb20geW91ciBJUCBhZGRyZXNzLiBBbnRpLVNwYW0gY29kZSBoYXMgcHJldmVudGVkIGRlbGl2ZXJ5Lic7CiRsYW5nWydzdXNwZWN0ZWRfc3BhbV9sb2cnXSA9ICdTdXNwZWN0ZWQgc3BhbSBmcm9tIElQICVzIHN0b3BwZWQuJzsKJGxhbmdbJ3Jlb3JkZXInXSA9ICdSZW9yZGVyIEZpZWxkcyc7CiRsYW5nWydjYW5jZWwnXSA9ICdBYmJyZWNoZW4nOwokbGFuZ1sndGl0bGVfZmlsZV9wYXRoJ10gPSAnRGVzdGluYXRpb24gRGlyZWN0b3J5IGZvciBvdXRwdXQgZmlsZXMnOwokbGFuZ1sndGl0bGVfdWR0X25hbWUnXSA9ICdCZW51dHplcmRlZmluaWVydGUgVGFncyc7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2Rlc3RwYWdlJ10gPSAnUGFnZSB0byByZXR1cm4gdG8gd2l0aCB1cGxvYWRzIGxpbmsnOwokbGFuZ1sndGl0bGVfdXBsb2FkbW9kdWxlX3N1bW1hcnknXSA9ICdTdWJtaXR0ZWQgd2l0aCBmb3JtYnVpbGRlcic7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2NhdGVnb3J5J10gPSAnVXBsb2Fkcy1LYXRlZ29yaWUnOwokbGFuZ1sndGl0bGVfc2VuZHRvX3VwbG9hZHMnXSA9ICdEaWVzZSBEYXRlaSBhbiBkYXMgVXBsb2Fkcy1Nb2R1bCAmdXVtbDtiZXJnZWJlbic7CiRsYW5nWyd0aXRsZV9sZWdlbmQnXSA9ICdMZWdlbmRlJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fbGVuZ3RoJ10gPSAnTWF4aW1hbGUgTCZhdW1sO25nZSc7CiRsYW5nWyd0aXRsZV9jaGVja2JveF9sYWJlbCddID0gJ05hbWUgZGVzIEtvbnRyb2xsayZhdW1sO3N0Y2hlbnMnOwokbGFuZ1sndGl0bGVfY2hlY2tlZF92YWx1ZSddID0gJ1dlcnQgbmFjaCBlcmZvbGd0ZXIgQWt0aXZpZXJ1bmcnOwokbGFuZ1sndGl0bGVfdW5jaGVja2VkX3ZhbHVlJ10gPSAnV2VydCBvaG5lIGVyZm9sZ3RlIEFrdGl2aWVydW5nJzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2RldGFpbHMnXSA9ICdEZXRhaWxzIHp1ciBLb250cm9sbGsmYXVtbDtzdGNoZW4tR3J1cHBlJzsKJGxhbmdbJ3RpdGxlX2RlbGV0ZSddID0gJ0wmb3VtbDtzY2hlbj8nOwokbGFuZ1sndGl0bGVfc2VsZWN0X29uZV9tZXNzYWdlJ10gPSAnVGV4dCBmJnV1bWw7ciAmcXVvdDtCaXR0ZSBhdXN3JmF1bWw7aGxlbiZxdW90Oyc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fZGlzcGxheW5hbWUnXSA9ICdTZWxlY3Rpb24gRGlzcGxheSBOYW1lJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl9zdWJqZWN0J10gPSAnQXVzd2FobCBkZXMgJnF1b3Q7QmV0cmVmZnMmcXVvdDsnOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfY291bnRyeSddID0gJ1N0YW5kYXJkYXVzd2FobCc7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9zdGF0ZSddID0gJ1N0YW5kYXJkYXVzd2FobCc7CiRsYW5nWyd0aXRsZV9vcHRpb25fbmFtZSddID0gJ05hbWUgZGVyIE9wdGlvbic7CiRsYW5nWyd0aXRsZV9vcHRpb25fdmFsdWUnXSA9ICcmVXVtbDtiZXJtaXR0ZWx0ZXIgV2VydCc7CiRsYW5nWyd0aXRsZV9wdWxsZG93bl9kZXRhaWxzJ10gPSAnTGlzdGVuZmVsZC1PcHRpb25lbic7CiRsYW5nWyd0aXRsZV9tdWx0aXNlbGVjdF9kZXRhaWxzJ10gPSAnT3B0aW9uZW4gTWVocmZhY2hhdXN3YWhsJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2FkZHJlc3MnXSA9ICdaaWVsLUVtYWlsYWRyZXNzZSc7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9maWxlbmFtZSddID0gJ0Rlc3RpbmF0aW9uIEZpbGUgTmFtZSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9mcm9tX25hbWUnXSA9ICcmcXVvdDtWb24gKE5hbWUpJnF1b3Q7IGRlciBFbWFpbCc7CiRsYW5nWyd0aXRsZV9yZWxheGVkX2VtYWlsX3JlZ2V4J10gPSAnTG9ja2VyZSBFbWFpbC0mVXVtbDtiZXJwciZ1dW1sO2Z1bmcgdmVyd2VuZGVuJzsKJGxhbmdbJ3RpdGxlX3JlbGF4ZWRfcmVnZXhfbG9uZyddID0gJ1ZlcndlbmRldCBlaW5lIGxvY2tlcmUgJlV1bWw7YmVycHImdXVtbDtmdW5nIGRlciBFbWFpbCAoZXJsYXVidCB6LiBCc3AuICZxdW90O3hAeSZxdW90OyBhbnN0YXR0IGRlcyBlcmZvcmRlcmxpY2hlbiAmcXVvdDt4QHkuZGUmcXVvdDspJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fYWRkcmVzcyddID0gJyZxdW90O1ZvbiAoRW1haWwtQWRyZXNzZSkmcXVvdDsgZGVyIEVtYWlsJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2VuY29kaW5nJ10gPSAnWmVpY2hlbmtvZGllcnVuZyBkZXIgRW1haWwnOwokbGFuZ1sndGl0bGVfZGlyZWN0b3JfZGV0YWlscyddID0gJ0xpc3RlbmZlbGRiYXNpZXJ0ZSBFbWFpbC1EZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfbmFtZSddID0gJ0RhdGVpbmFtZSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9zdWJqZWN0J10gPSAnQmV0cmVmZi1aZWlsZSBkZXIgRW1haWwnOwokbGFuZ1sndGl0bGVfZm9ybV9uYW1lJ10gPSAnRm9ybXVsYXJuYW1lJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fc3RhdHVzJ10gPSAnRm9ybXVsYXJzdGF0dXMnOwokbGFuZ1sndGl0bGVfcmVhZHlfZm9yX2RlcGxveW1lbnQnXSA9ICdFaW5zYXR6YmVyZWl0JzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTEnXSA9ICdOaWNodCBlaW5zYXR6YmVyZWl0JzsKJGxhbmdbJ3RpdGxlX3JlZGlyZWN0X3BhZ2UnXSA9ICdTZWl0ZSwgYXVmIGRpZSBuYWNoIGRlbSBWZXJzYW5kIGdlc3BydW5nZW4gd2VyZGVuIHNvbGwnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MiddID0gJ0JpdHRlIGYmdXVtbDtnZW4gU2llIGVpbiBGZWxkIGhpbnp1LCBtaXQgZGVtIGRpZSBCZW51dHplcmVpbmdhYmVuIHZlcmFyYmVpdGV0IHdlcmRlbi4gU2llIGsmb3VtbDtubmVuJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeV9saW5rJ10gPSAnZGllc2UgVGFzdGVua29tYmluYXRpb24gdmVyd2VuZGVuLCc7CiRsYW5nWyd0aXRsZV9mb3JtX2FsaWFzJ10gPSAnRm9ybXVsYXItQWxpYXMnOwokbGFuZ1sndGl0bGVfZm9ybV9maWVsZHMnXSA9ICdGb3JtdWxhcmZlbGRlcic7CiRsYW5nWyd0aXRsZV9maWVsZF9pZCddID0gJ0ZlbGQtSUQnOwokbGFuZ1sndGl0bGVfZmllbGRfbmFtZSddID0gJ0ZlbGRuYW1lJzsKJGxhbmdbJ3RpdGxlX3JhZGlvZ3JvdXBfZGV0YWlscyddID0gJ0RldGFpbHMgenVyIE9wdGlvbnNmZWxkLUdydXBwZSc7CiRsYW5nWyd0aXRsZV9maWVsZF90eXBlJ10gPSAnRmVsZHR5cCc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkzJ10gPSAndW0gZWluIEZlbGQgenVyIEZvcm11bGFydmVyYXJiZWl0dW5nIHp1IGVyc3RlbGxlbi4nOwokbGFuZ1sndGl0bGVfYWRkX25ld19mb3JtJ10gPSAnTmV1ZXMgRm9ybXVsYXIgaGluenVmJnV1bWw7Z2VuJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbiddID0gJ1ZlcnNpb24gZGVzIEZvcm1CdWlsZGVyLU1vZHVscyBhbnplaWdlbj8nOwokbGFuZ1sndGl0bGVfc2hvd192ZXJzaW9uX2xvbmcnXSA9ICdBbHMgSGlsZmUgenVyIEZlaGxlcmJlcnNlaXRpZ3VuZyB3aXJkIGRpZSBWZXJzaW9uc251bW1lciBkZXMgRm9ybUJ1aWxkZXItTW9kdWxzIGluIGVpbmVtIEtvbW1lbnRhciBlaW5nZWJldHRldC4nOwokbGFuZ1sndGl0bGVfYWRkX25ld19maWVsZCddID0gJ05ldWVzIEZlbGQgaGluenVmJnV1bWw7Z2VuJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fc3VibWl0X2J1dHRvbiddID0gJ1RleHQgZiZ1dW1sO3IgZGVuICZxdW90O0Fic2VuZGVuJnF1b3Q7LUJ1dHRvbic7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eSddID0gJ0FkZCBKYXZhc2NyaXB0IHRvIGZpbmFsIFN1Ym1pdCBCdXR0b24gdGhhdCB3aWxsIGhlbHAgcHJldmVudCBtdWx0aXBsZSBzdWJtaXNzaW9ucz8nOwokbGFuZ1sndGl0bGVfc3VibWl0X2J1dHRvbl9zYWZldHlfaGVscCddID0gJ0FkZCBzYWZldHkgc2NyaXB0JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmV4dF9idXR0b24nXSA9ICdUZXh0IGYmdXVtbDtyIGRlbiAmcXVvdDtXZWl0ZXImcXVvdDstQnV0dG9uIChmJnV1bWw7ciBtZWhyc2VpdGlnZSBGb3JtdWxhcmUpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcHJldl9idXR0b24nXSA9ICdUZXh0IGYmdXVtbDtyIGRlbiAmcXVvdDtadXImdXVtbDtjayZxdW90Oy1CdXR0b24gKGYmdXVtbDtyIG1laHJzZWl0aWdlIEZvcm11bGFyZSknOwokbGFuZ1sndGl0bGVfZmllbGRfdmFsaWRhdGlvbiddID0gJ0ZlbGQtJlV1bWw7YmVycHImdXVtbDtmdW5nJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fY3NzX2NsYXNzJ10gPSAnQ1NTLUtsYXNzZSBmJnV1bWw7ciBkaWVzZXMgRm9ybXVsYXInOwokbGFuZ1sndGl0bGVfZmllbGRfY3NzX2NsYXNzJ10gPSAnQ1NTLUtsYXNzZSBmJnV1bWw7ciBkaWVzZXMgRmVsZCc7CiRsYW5nWyd0aXRsZV9mb3JtX3JlcXVpcmVkX3N5bWJvbCddID0gJ1N5bWJvbCB6dXIgS2VubnplaWNobnVuZyBkZXIgUGZsaWNodGZlbGRlcic7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZCddID0gJ0VyZm9yZGVybGljaCc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9sb25nJ10gPSAnRXJmb3JkZXJ0IHp3aW5nZW5kIGVpbmUgQW50d29ydCBpbiBkaWVzZW0gRmVsZCc7CiRsYW5nWyd0aXRsZV9oaWRlX2xhYmVsJ10gPSAnQmVzY2hyaWZ0dW5nIHZlcmJlcmdlbic7CiRsYW5nWyd0aXRsZV9oaWRlX2xhYmVsX2xvbmcnXSA9ICdEaWVzZW4gRmVsZG5hbWVuIGltIEZvcm11bGFyIHZlcmJlcmdlbic7CiRsYW5nWyd0aXRsZV90ZXh0J10gPSAnQW56dXplaWdlbmRlciBzdGF0aXNjaGVyIFRleHQnOwokbGFuZ1sndGl0bGVfZmllbGRfcmVnZXgnXSA9ICdSZWdleC0mVXVtbDtiZXJwciZ1dW1sO2Z1bmcnOwokbGFuZ1sndGl0bGVfbGluZXNfdG9fc2hvdyddID0gJ0FuemFobCBkZXIgYW5nZXplaWd0ZW4gWmVpbGVuJzsKJGxhbmdbJ25vX2RlZmF1bHQnXSA9ICdLZWluZSBWb3JlaW5zdGVsbHVuZyc7CiRsYW5nWydyZWRpcmVjdF9hZnRlcl9hcHByb3ZhbCddID0gJ1NlaXRlLCBhdWYgZGllIG5hY2ggJlV1bWw7YmVycHImdXVtbDtmdW5nIHdlaXRlcmdlbGVpdGV0IHdpcmQnOwokbGFuZ1sndGl0bGVfcmVnZXhfaGVscCddID0gJ1RoaXMgcmVndWxhciBleHByZXNzaW9uIHdpbGwgb25seSBiZSB1c2VkIGlmIFwmcXVvdDt2YWxpZGF0aW9uIHR5cGVcJnF1b3Q7IGlzIHNldCB0byBhIHJlZ2V4LXJlbGF0ZWQgb3B0aW9uLiBJbmNsdWRlIGEgZnVsbCBQZXJsLXN0eWxlIHJlZ2V4LCBpbmNsdWRpbmcgdGhlIHN0YXJ0L3N0b3Agc2xhc2hlcyBhbmQgZmxhZ3MgKHouIEJzcC4gXCZxdW90Oy9pbWFnZVwuKFxkKykvaVwmcXVvdDspJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2FiYnJldiddID0gJ0VyZm9yZGVybC4nOwokbGFuZ1sndGl0bGVfaGlkZV9lcnJvcnMnXSA9ICdGZWhsZXIgdmVyYmVyZ2VuJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fZGlzcGxheXR5cGUnXSA9ICdBbnplaWdldHlwIGRlcyBGb3JtdWxhcnMnOwokbGFuZ1sndGl0bGVfaGlkZV9lcnJvcnNfbG9uZyddID0gJ0ZlaGxlci1NZWxkdW5nZW4gdm9yIGRlbiBCZW51dHplcm4gdmVyYmVyZ2VuLic7CiRsYW5nWyd0aXRsZV9lbWFpbF90ZW1wbGF0ZSddID0gJ0VtYWlsLVRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZSddID0gJ01heGltYWxlIEdyJm91bWw7JnN6bGlnO2UgZiZ1dW1sO3IgaG9jaHp1bGFkZW5kZSBEYXRlaWVuIChraWxvYnl0ZSknOwokbGFuZ1sndGl0bGVfbWF4aW11bV9zaXplX2xvbmcnXSA9ICdEaWVzZXMgTGltaXQgaXN0IGVpbmUgRXJnJmF1bWw7bnp1bmcgZGVyIFZvcmdhYmVuIGF1cyBkZXIgUEhQLSBvZGVyIFNlcnZlci1Lb25maWd1cmF0aW9uLic7CiRsYW5nWyd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ1p1Z2VsYXNzZW5lIERhdGVpLUVuZHVuZ2VuJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zX2xvbmcnXSA9ICdHZWJlbiBTaWUgaGllciBlaW5lIEF1ZnomYXVtbDtobHVuZyBkZXIgenVnZWxhc3NlbmVuIERhdGVpLUVuZHVuZ2VuIGpld2VpbHMgZ2V0cmVubnQgZHVjaCBlaW4gS29tbWEgZWluIChvaG5lIFB1bmt0IC0gei5CLiAmcXVvdDtqcGcsZ2lmLGpwZWcmcXVvdDspLiBMZWVyemVpY2hlbiB3ZXJkZW4gaWdub3JpZXJ0LiBXaXJkIGRhcyBGZWxkIGxlZXIgZ2VsYXNzZW4sIGdlbHRlbiBrZWluZSBCZXNjaHImYXVtbDtua3VuZ2VuLic7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zJ10gPSAnQmVzY2hyJmF1bWw7bmt1bmdlbiBhbnplaWdlbj8nOwokbGFuZ1sndGl0bGVfc2hvd19saW1pdGF0aW9uc19sb25nJ10gPSAnQmVzY2hyJmF1bWw7bmt1bmdlbiBkZXIgR3Imb3VtbDsmc3psaWc7ZSB1bmQgZGVyIERhdGVpLUVuZHVuZ2VuIG1pdCBkZW0gVXBsb2FkLUZlbGQgYW56ZWlnZW4/JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSBmJnV1bWw7ciBkaWUgRm9ybXVsYXJhbnplaWdlJzsKJGxhbmdbJ3RpdGxlX3BhZ2VfeF9vZl95J10gPSAnU2VpdGUgJXMgdm9uICVzJzsKJGxhbmdbJ3RpdGxlX25vX2FkdmFuY2VkX29wdGlvbnMnXSA9ICdEYXMgRmVsZCBoYXQga2VpbmUgZXJ3ZWl0ZXJ0ZW4gT3B0aW9uZW4uJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdW5zcGVjaWZpZWQnXSA9ICdUZXh0LCBkZXIgYmVpIHVuZ2VuYXVlbiBFaW5nYWJlbiB6dXImdXVtbDtja2dlZ2ViZW4gd2lyZCc7CiRsYW5nWyd0aXRsZV9lbmFibGVfZmFzdGFkZF9sb25nJ10gPSAnQWt0aXZpZXJ0IGRhcyBzY2huZWxsZSBIaW56dWYmdXVtbDtnZW4gdm9uIExpc3RlbmZlbGRlcm4gaW4gRm9ybXVsYXJlbic7CiRsYW5nWyd0aXRsZV9lbmFibGVfZmFzdGFkZCddID0gJ0RhcyBzY2huZWxsZSBIaW56dWYmdXVtbDtnZW4gdm9uIExpc3RlbmZlbGRlcm4gYWt0aXZpZXJlbj8nOwokbGFuZ1sndGl0bGVfZmFzdGFkZCddID0gJ1NjaG5lbGxlIEZlbGRlcnN0ZWxsdW5nJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9hbnRpc3BhbV9sb25nJ10gPSAnQ2xpY2tpbmcgdGhpcyB3aWxsIG9ubHkgYWxsb3cgMTAgZW1haWxzIHRvIGJlIHRyaWdnZXJlZCBmcm9tIGEgZ2l2ZW4gSVAgYWRkcmVzcyAocGVyIGhvdXIpLic7CiRsYW5nWyd0aXRsZV9lbmFibGVfYW50aXNwYW0nXSA9ICdFaW5mYWNoZW4gQW50aS1TcGFtLVNjaHV0eiBha3RpdmllcmVuPyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkaWRzJ10gPSAnU2hvdyBGaWVsZCBJRHMnOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGlkc19sb25nJ10gPSAnQ2xpY2tpbmcgdGhpcyB3aWxsIGFsbG93IGRpc3BsYXlpbmcgZmllbGQgaWRzIHdoZW4gYWRkaW5nIG9yIGVkaXRpbmcgYSBmb3JtJzsKJGxhbmdbJ3RpdGxlX3htbF90b191cGxvYWQnXSA9ICdVcGxvYWQgZm9ybSBmcm9tIFhNTCBmaWxlJzsKJGxhbmdbJ3RpdGxlX3htbF91cGxvYWRfZm9ybW5hbWUnXSA9ICdEaWVzZW4gRm9ybXVsYXJuYW1lbiB2ZXJ3ZW5kZW4nOwokbGFuZ1sndGl0bGVfaW1wb3J0X2xlZ2VuZCddID0gJ1hNTC1Gb3JtdWxhci1JbXBvcnQnOwokbGFuZ1sndGl0bGVfeG1sX3VwbG9hZF9mb3JtYWxpYXMnXSA9ICdEaWVzZW4gRm9ybXVsYXItQWxpYXMgdmVyd2VuZGVuJzsKJGxhbmdbJ3RpdGxlX2h0bWxfZW1haWwnXSA9ICdFaW5lIEhUTUwtRW1haWwgZXJ6ZXVnZW4/JzsKJGxhbmdbJ3RpdGxlX2xpbmtfYXV0b3BvcHVsYXRlJ10gPSAnQXV0b21hdGljYWxseSBwb3B1bGF0ZT8nOwokbGFuZ1sndGl0bGVfbGlua19hdXRvcG9wdWxhdGVfaGVscCddID0gJ0F1dG9tYXRpY2FsbHkgcG9wdWxhdGUgd2l0aCB0aGUgVVJMIG9mIHRoZSBwYWdlIGNvbnRhaW5pbmcgdGhlIGZvcm0/ICh0aGlzIG92ZXJyaWRlcyBzaXRlIHBhZ2UgbGluayBvcHRpb24gYmVsb3cpJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfbGluayddID0gJ0RlZmF1bHQgbGluayBVUkwnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9saW5rX3RpdGxlJ10gPSAnRGVmYXVsdCBsaW5rIHRleHQnOwokbGFuZ1sndGl0bGVfbGlua190b19zaXRlcGFnZSddID0gJ0xpbmsgdG8gc2l0ZSBwYWdlJzsKJGxhbmdbJ3RpdGxlX2NhcHRjaGFfbm90X2luc3RhbGxlZCddID0gJ1lvdSBjYW4gdXNlIDxhIGhyZWY9XCZxdW90O2h0dHA6Ly93d3cud2lraXBlZGlhLm9yZy93aWtpL0NhcHRjaGFcJnF1b3Q7IHRhcmdldD1cJnF1b3Q7X25ld1wmcXVvdDs+XCZxdW90O0NhcHRjaGFcJnF1b3Q7PC9hPiB0byBwcm90ZWN0IGZvcm0gc3VibWlzc2lvbnMgaWYgeW91IGluc3RhbGwgdGhlIENhcHRjaGEgbW9kdWxlLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgPGEgaHJlZj1cJnF1b3Q7aHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9jYXB0Y2hhL1wmcXVvdDs+Y2hlY2sgdGhlIENhcHRjaGEgcHJvamVjdDwvYT4uJzsKJGxhbmdbJ3RpdGxlX3VzZV9jYXB0Y2hhJ10gPSAnVXNlIENhcHRjaGEgdG8gcHJvdGVjdCBmb3JtIHN1Ym1pc3Npb25zPyc7CiRsYW5nWyd0aXRsZV91c2VfY2FwdGNoYV9oZWxwJ10gPSAnQ2hlY2sgaGVyZSB0byBwcm90ZWN0IHlvdXIgZm9ybSB3aXRoIGEgPGEgaHJlZj1cJnF1b3Q7aHR0cDovL3d3dy53aWtpcGVkaWEub3JnL3dpa2kvQ2FwdGNoYVwmcXVvdDsgdGFyZ2V0PVwmcXVvdDtfbmV3XCZxdW90Oz5cJnF1b3Q7Q2FwdGNoYVwmcXVvdDs8L2E+Lic7CiRsYW5nWyd0aXRsZV91c2VyX2NhcHRjaGEnXSA9ICdQbGVhc2UgY29uZmlybSB0aGF0IHlvdSBhcmUgbm90IGEgc2NyaXB0IGJ5IGVudGVyaW5nIHRoZSBsZXR0ZXJzIGZyb20gdGhlIGltYWdlLic7CiRsYW5nWyd0aXRsZV91c2VyX2NhcHRjaGFfZXJyb3InXSA9ICdGYWlsZWQgdGV4dCBmb3IgQ2FwdGNoYSc7CiRsYW5nWyd3cm9uZ19jYXB0Y2hhJ10gPSAnQ2FwdGNoYSB3YXMgbm90IGNvcnJlY3QuJzsKJGxhbmdbJ3RpdGxlX3RpdGxlX3VzZXJfY2FwdGNoYSddID0gJ0hlbHAgdGV4dCBmb3IgQ2FwdGNoYSc7CiRsYW5nWydsaW5rX2xhYmVsJ10gPSAnQmVzY2hyaWZ0dW5nIGRlcyBMaW5rcyc7CiRsYW5nWydsaW5rX2Rlc3RpbmF0aW9uJ10gPSAnWmllbC1VUkwgZGVzIExpbmtzJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfc2V0J10gPSAnU3RhbmRhcmRtJmF1bWw7JnN6bGlnO2lnICZ1dW1sO2JlcnByJnV1bWw7ZmVuPyc7CiRsYW5nWyd0aXRsZV8yNF9ob3VyJ10gPSAnMjQtU3R1bmRlbi1BbnplaWdlIHZlcndlbmRlbj8nOwokbGFuZ1sndGl0bGVfYmVmb3JlX25vb24nXSA9ICdBTSc7CiRsYW5nWyd0aXRsZV9hZnRlcl9ub29uJ10gPSAnUE0nOwokbGFuZ1sndGl0bGVfc21hcnR5X2V2YWwnXSA9ICdQcm9jZXNzIHNtYXJ0eSB0YWdzIHdpdGhpbiBmaWVsZD8nOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfcm93cyddID0gJ1plaWxlbiAoSGlud2VpczogRGllcyBrYW5uIGR1cmNoIENTUyAmdXVtbDtiZXJzY2hyaWViZW4gd2VyZGVuKSc7CiRsYW5nWyd0aXRsZV90ZXh0YXJlYV9jb2xzJ10gPSAnU3BhbHRlbiAoSGlud2VpczogRGllcyBrYW5uIGR1cmNoIENTUyAmdXVtbDtiZXJzY2hyaWViZW4gd2VyZGVuKSc7CiRsYW5nWyd0aXRsZV9mb3JtX21haW4nXSA9ICdNYWluIEZvcm0gRGV0YWlscyc7CiRsYW5nWydoZWxwX2xlYXZlZW1wdHknXSA9ICdUaGlzIGZpZWxkIG1heSBiZSBsZWZ0IGVtcHR5JzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVzX2Zvcl90ZW1wbGF0ZSddID0gJ1ZhcmlhYmxlbiBmJnV1bWw7ciBkYXMgVGVtcGxhdGUnOwokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX2NvbXB1dGF0aW9uJ10gPSAnVmVyZiZ1dW1sO2diYXJlIFZhcmlhYmxlbic7CiRsYW5nWydoZWxwX3BocF92YXJpYWJsZV9uYW1lJ10gPSAnUEhQLVZhcmlhYmxlJzsKJGxhbmdbJ2hlbHBfc3VibWlzc2lvbl9kYXRlJ10gPSAnVmVyc2FuZGRhdHVtJzsKJGxhbmdbJ2hlbHBfc2VydmVyX25hbWUnXSA9ICdJaHIgU2VydmVyJzsKJGxhbmdbJ2hlbHBfc3ViX3NvdXJjZV9pcCddID0gJ0lQLUFkcmVzc2UgZGVzIEZvcm11bGFyYWJzZW5kZXJzJzsKJGxhbmdbJ2hlbHBfc3ViX3VybCddID0gJ1VSTCBkZXIgRm9ybXVsYXJzZWl0ZSc7CiRsYW5nWydoZWxwX290aGVyX2ZpZWxkcyddID0gJ1dlbm4gU2llIGRpZXMgZGVtIEZvcm11bGFyIGhpbnp1ZiZ1dW1sO2dlbiwgc2luZCB3ZWl0ZXJlIEZlbGRlciB2ZXJmJnV1bWw7Z2Jhci4nOwokbGFuZ1snaGVscF9hcnJheV9maWVsZHMnXSA9ICdGaWVsZHMgdGhhdCBoYXZlIG11bHRpcGxlIHZhbHVlcyBtYXkgYWxzbyBiZSBhY2Nlc3NlZCB2aWEgdGhlIHNtYXJ0eSB2YWx1ZSBvZiAkZmllbGRuYW1lX2FycmF5IG9yICRmbGRfI19hcnJheS4nOwokbGFuZ1snaGVscF9kYXRlX2Zvcm1hdCddID0gJ0luZm9ybWF0aW9uZW4genVyIEZvcm1hdGllcnVuZyBmaW5kZW4gU2llIDxhIGhyZWY9XCZxdW90O2h0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24uZGF0ZS5waHBcJnF1b3Q7IHRhcmdldD1fTkVXPmluIGRlciBQSFAtQmVzY2hyZWlidW5nPC9hPi4nOwokbGFuZ1snaGVscF92YXJpYWJsZV9uYW1lJ10gPSAnVmFyaWFibGUnOwokbGFuZ1snaGVscF9mb3JtX2ZpZWxkJ10gPSAnRmVsZCByZXByJmF1bWw7c2VudGllcnQnOwokbGFuZ1snbGlua19iYWNrX3RvX2Zvcm0nXSA9ICcmYW1wOyMxNzE7IFp1ciZ1dW1sO2NrIHp1bSBGb3JtdWxhcic7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX3RlbXBsYXRlJ10gPSAnRWluIEJlaXNwaWVsLVRlbXBsYXRlIGVyc3RlbGxlbic7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2h0bWxfdGVtcGxhdGUnXSA9ICdFaW4gQmVpc3BpZWwtSFRNTC1UZW1wbGF0ZSBlcnN0ZWxsZW4nOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9oZWFkZXInXSA9ICdFaW5lbiBNdXN0ZXItSGVhZGVyIGVyc3RlbGxlbic7CiRsYW5nWydoZWxwX3RhYl9zeW1ib2wnXSA9ICdlaW5lbiBaZWlsZW52b3JzY2h1Yic7CiRsYW5nWyd0aXRsZV9maWxlX3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgZiZ1dW1sO3IgZWluZSBaZWlsZSBkZXIgYXVzZ2VnZWJlbmVuIERhdGVpJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfaGVhZGVyJ10gPSAnVGVtcGxhdGUgZiZ1dW1sO3IgZGVuIEhlYWRlciBkZXIgYXVzZ2VnZWJlbmVuIERhdGVpJzsKJGxhbmdbJ3RpdGxlX2NvbmZpcm1hdGlvbl91cmwnXSA9ICdVUkwgenVyIEJlc3QmYXVtbDt0aWd1bmcgZGVzIEZvcm11bGFycyc7CiRsYW5nWyd0aXRsZV92YWx1ZSddID0gJ1ZhbHVlIChzZWUgQWR2YW5jZWQgVGFiIGlmIHlvdSB1c2UgU21hcnR5IHRhZ3MpJzsKJGxhbmdbJ3RpdGxlX2RhdGVfZm9ybWF0J10gPSAnRGF0dW1zLUZvcm1hdCAoc2llaGUgPGEgaHJlZj0mcXVvdDtodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwJnF1b3Q7PlBIUCBEYXR1bXNmb3JtYXQ8L2E+KSc7CiRsYW5nWyd0aXRsZV91c2Vfd3lzaXd5ZyddID0gJ1dZU0lXWUctRWRpdG9yIGYmdXVtbDtyIGRlbiBUZXh0YmVyZWljaCB2ZXJ3ZW5kZW4gKG51ciBpbiBkZXIgQWRtaW5pc3RyYXRpb24pPyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYWN0aW9ucyddID0gJ0Zvcm0gU3VibWlzc2lvbiBCZWhhdmlvcic7CiRsYW5nWyd0aXRsZV9zdWJtaXRfbGFiZWxzJ10gPSAnU3VibWlzc2lvbiBCdXR0b24gTGFiZWxzJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9oZWxwJ10gPSAnVGhpcyBwYWdlIGxldHMgeW91IGN1c3RvbWl6ZSBGb3JtIFN1Ym1pc3Npb24uIEl0IGRvZXNuXCYjMDM5O3QgZGV0ZXJtaW5lIHdoYXQgdGhlIEZvcm0gQnVpbGRlciBkb2VzIHdpdGggdGhlIHN1Ym1pdHRlZCBkYXRhLiBZb3UgY2FuIHNldCB0aGF0IHVwIGJ5IGFkZGluZyBcJnF1b3Q7RGlzcG9zaXRpb25cJnF1b3Q7IGZpZWxkcyB0byB5b3VyIGZvcm0uJzsKJGxhbmdbJ3RpdGxlX3N0YXJ0X3llYXInXSA9ICdZZWFyIHJhbmdlIHN0YXJ0JzsKJGxhbmdbJ3RpdGxlX2VuZF95ZWFyJ10gPSAnWWVhciByYW5nZSBlbmQnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF95ZWFyJ10gPSAnVm9yZWluZ2VzdGVsbHRlcyBKYWhyJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfeWVhcl9oZWxwJ10gPSAnKFNldCB0byAtMSBmb3IgZGVmYXVsdCB5ZWFyIHRvIGJlIHRoZSBjdXJyZW50IHllYXIpJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9hY3Rpb24nXSA9ICdBZnRlciBmb3JtIGlzIHN1Ym1pdHRlZCc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfcmVzcG9uc2UnXSA9ICdSZXNwb25zZSB0byBkaXNwbGF5JzsKJGxhbmdbJ2Rpc3BsYXlfdGV4dCddID0gJ0Rpc3BsYXkgJnF1b3Q7U3VibWlzc2lvbiBUZW1wbGF0ZSZxdW90Oyc7CiRsYW5nWydyZWRpcmVjdF90b19wYWdlJ10gPSAnUmVkaXJlY3QgdG8gc2l0ZSBwYWdlJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9yZXNwb25zZV9oZWxwJ10gPSAnVGhpcyB0ZW1wbGF0ZSBpcyBmb3IgZGlzcGxheSB0byB0aGUgdXNlciBhZnRlciB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQuIFRoaXMgdGVtcGxhdGUgZG9lcyBub3QgZWZmZWN0IGVtYWlscyBnZW5lcmF0ZWQgb3Igb3RoZXIgZm9ybSBkaXNwb3NpdGlvbnMgLS0geW91IHNldCB0aG9zZSB0ZW1wbGF0ZXMgKHdoZXJlIGFwcHJvcHJpYXRlKSBpbiB0aGUgXCZxdW90O2FkdmFuY2VkXCZxdW90OyB0YWIgZm9yIHRob3NlIGRpc3Bvc2l0aW9uIGZpZWxkcy4nOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fcGFnZSddID0gJ1ppZWxzZWl0ZSc7CiRsYW5nWyd0aXRsZV9yZXF1aXJlX2ZpZWxkbmFtZXMnXSA9ICdSZXF1aXJlIEZpZWxkbmFtZXMnOwokbGFuZ1sndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzX2xvbmcnXSA9ICdSZXF1aXJlIGZpZWxkcyB0byBoYXZlIGEgbmFtZT8nOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXMnXSA9ICdSZXF1aXJlIFVuaXF1ZSBGaWVsZG5hbWVzJzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWVsZG5hbWVzX2xvbmcnXSA9ICdSZXF1aXJlIGZpZWxkcyB0byBoYXZlIHVuaXF1ZSBuYW1lcz8nOwokbGFuZ1sndGl0bGVfcmVvcmRlcl9mb3JtJ10gPSAnUmVvcmRlciBGaWVsZHMnOwokbGFuZ1sndGl0bGVfbG9hZF90ZW1wbGF0ZSddID0gJ1RlbXBsYXRlIGxhZGVuJzsKJGxhbmdbJ3RpdGxlX2FkZF9idXR0b25fdGV4dCddID0gJ0FkZCBCdXR0b24gdGV4dCc7CiRsYW5nWyd0aXRsZV9kZWxfYnV0dG9uX3RleHQnXSA9ICdEZWxldGUgQnV0dG9uIHRleHQnOwokbGFuZ1sndGl0bGVfc3RyaW5nX29yX251bWJlcl9ldmFsJ10gPSAnSW50ZXJwcmV0IHZhcmlhYmxlcyBhcyBiZWluZyBudW1iZXJzIG9yIHN0cmluZ3MnOwokbGFuZ1sndGl0bGVfb3JkZXInXSA9ICdJbnRlcnByZXRhdGlvbiBPcmRlcic7CiRsYW5nWyd0aXRsZV9vcmRlcl9oZWxwJ10gPSAnSWYgbW9yZSB0aGFuIG9uZSBDb21wdXRlZCBGaWVsZCBleGlzdHMsIHRoZXkgd2lsbCBiZSBjb21wdXRlZCBmcm9tIGxvd2VzdCBvcmRlciBudW1iZXIgdG8gaGlnaGVzdCBvcmRlciBudW1iZXInOwokbGFuZ1sndGl0bGVfY29tcHV0ZV92YWx1ZSddID0gJ1p1IGJlcmVjaG5lbmRlciBXZXJ0JzsKJGxhbmdbJ3RpdGxlX3N0cmluZyddID0gJ1N0cmluZyc7CiRsYW5nWyd0aXRsZV9udW1lcmljJ10gPSAnTnVtZXJpc2NoJzsKJGxhbmdbJ2RlZmF1bHRfdGVtcGxhdGUnXSA9ICdTdGFuZGFyZC1UZW1wbGF0ZSc7CiRsYW5nWyd0YWJsZV9sZWZ0X3RlbXBsYXRlJ10gPSAnVGFiZWxsZW4tVGVtcGxhdGUsIFRpdGVsIGxpbmtzJzsKJGxhbmdbJ3RhYmxlX3RvcF90ZW1wbGF0ZSddID0gJ1RhYmVsbGVuLVRlbXBsYXRlLCBUaXRlbCBvYmVuJzsKJGxhbmdbJ2Zvcm1fdGVtcGxhdGVfbmFtZSddID0gJ1RlbXBsYXRlIHZvbiAlcyc7CiRsYW5nWyd0ZW1wbGF0ZV9hcmVfeW91X3N1cmUnXSA9ICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gb3ZlcndyaXRlIHlvdXIgdGVtcGxhdGUgd2l0aCB0aGUgc2VsZWN0ZWQgdGVtcGxhdGU/IChFdmVuIGlmIHlvdSBzYXkgT0ssIHlvdSB3aWxsIHN0aWxsIG5lZWQgdG8gc2F2ZSB0aGUgY2hhbmdlKSc7CiRsYW5nWyd0aXRsZV9iYWRfZnVuY3Rpb24nXSA9ICdGZWhsZXIgYmVpbSBCZXJlY2huZW4gdm9uICZxdW90OyVzJnF1b3Q7Lic7CiRsYW5nWydub19yZWZlcnJlcl9pbmZvJ10gPSAnS2VpbmUgSW5mb3JtYXRpb25lbiAmdXVtbDtiZXIgZGVuIEhUVFBfUkVGRVJFUiB2ZXJmJnV1bWw7Z2JhciAocHJvYmFibHkgZHVlIHRvIHVzZSBvZiBVc2VyIEVtYWlsIFZhbGlkYXRpb24pJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcGFyYW1fZXJyb3InXSA9ICdGZWhsZXIgYmVpbSAmVXVtbDtiZXJwciZ1dW1sO2ZlbiBkZXIgUGFyYW1ldGVyLiBCaXR0ZSBzdGVsbGVuIFNpZSBzaWNoZXIsIGRhc3MgZGllIFVSTCBhdXMgSWhyZXIgRW1haWwga29ycmVrdCBrb3BpZXJ0IHd1cmRlISc7CiRsYW5nWyd2YWxpZGF0aW9uX3Jlc3BvbnNlX2Vycm9yJ10gPSAnRmVobGVyIGJlaSBkZXIgJlV1bWw7YmVycHImdXVtbDtmdW5nLiBCaXR0ZSBzdGVsbGVuIFNpZSBzaWNoZXIsIGRhc3MgZGllIFVSTCBhdXMgSWhyZXIgRW1haWwga29ycmVrdCBrb3BpZXJ0IHd1cmRlISc7CiRsYW5nWyd2YWxpZGF0aW9uX25vX2ZpZWxkX2Vycm9yJ10gPSAnRmVobGVyIGJlaSBkZXIgJlV1bWw7YmVycHImdXVtbDtmdW5nLiBEaWVzZXMgRm9ybXVsYXIgZW50aCZhdW1sO2x0IGtlaW4gRmVsZCB6dXIgJlV1bWw7YmVycHImdXVtbDtmdW5nIGRlciBFbWFpbCEnOwokbGFuZ1sndXBncmFkZTAzdG8wNCddID0gJ0Zvcm0gVGVtcGxhdGUgd2FzIHVwZGF0ZWQgYXV0b21hdGljYWxseSBhcyBwYXJ0IG9mIHRoZSB2ZXJzaW9uIDAuMyB0byB2ZXJzaW9uIDAuNCB1cGdyYWRlLiBZb3UgbWF5IG5lZWQgdG8gbWFrZSBzb21lIGZpeGVzLiBJZiB5b3UmIzAzOTtyZSB1c2luZyB0aGUgZGVmYXVsdCBmb3JtLCBzaW1wbHkgcmVwbGFjZSB0aGlzIHRlbXBsYXRlIHdpdGggJnF1b3Q7ZGVmYXVsdCZxdW90OyB1c2luZyB0aGUgcHVsbGRvd24gYWJvdmUuJzsKJGxhbmdbJ2FkbWluZGVzYyddID0gJ0hpbnp1ZiZ1dW1sO2dlbiwgQmVhcmJlaXRlbiB1bmQgVmVyd2FsdGVuIHZvbiBpbnRlcmFrdGl2ZW4gRm9ybXVsYXJlbic7CiRsYW5nWydvcGVyYXRvcnNfaGVscCddID0gJ0lmIHlvdSB1c2UgU3RyaW5nIGV2YWx1YXRpb24sIHRoZSBvbmx5IG9wZXJhdGlvbiBhdmFpbGFibGUgaXMgY29uY2F0ZW5hdGlvbiAoKyksIHdoaWxlIGlmIHlvdSB1c2UgTnVtYmVyIGV2YWx1YXRpb24geW91IGhhdmUgYmFzaWMsIHZlcnkgc2ltcGxlIG1hdGggKCwgKywgLSwgKiwgLywgKS4nOwokbGFuZ1snZGF0ZV9qYW51YXJ5J10gPSAnSmFudWFyJzsKJGxhbmdbJ2RhdGVfZmVicnVhcnknXSA9ICdGZWJydWFyJzsKJGxhbmdbJ2RhdGVfbWFyY2gnXSA9ICdNJmF1bWw7cnonOwokbGFuZ1snZGF0ZV9hcHJpbCddID0gJ0FwcmlsJzsKJGxhbmdbJ2RhdGVfbWF5J10gPSAnTWFpJzsKJGxhbmdbJ2RhdGVfanVuZSddID0gJ0p1bmknOwokbGFuZ1snZGF0ZV9qdWx5J10gPSAnSnVsaSc7CiRsYW5nWydkYXRlX2F1Z3VzdCddID0gJ0F1Z3VzdCc7CiRsYW5nWydkYXRlX3NlcHRlbWJlciddID0gJ1NlcHRlbWJlcic7CiRsYW5nWydkYXRlX29jdG9iZXInXSA9ICdPa3RvYmVyJzsKJGxhbmdbJ2RhdGVfbm92ZW1iZXInXSA9ICdOb3ZlbWJlcic7CiRsYW5nWydkYXRlX2RlY2VtYmVyJ10gPSAnRGV6ZW1iZXInOwokbGFuZ1snc3VibWlzc2lvbl9lcnJvciddID0gJ0VudHNjaHVsZGlndW5nISBCZWltIFZlcnNhbmQgZGVzIEZvcm11bGFycyBpc3QgZWluIEZlaGxlciBhdWZnZXRyZXRlbi4nOwokbGFuZ1snc3VibWl0X2Vycm9yJ10gPSAnRmVobGVyIGJlaW0gVmVyc2FuZDogJXMnOwokbGFuZ1sndXBsb2Fkc19lcnJvciddID0gJ0ZlaGxlciBiZWkgZGVyICZVdW1sO2JlcmdhYmUgZGVyIERhdGVpIGFuIGRhcyBVcGxvYWRzLU1vZHVsOiAlcyc7CiRsYW5nWydub3VwbG9hZHNfZXJyb3InXSA9ICdLb25udGUgZGFzIFVwbG9hZHMtTW9kdWwgbmljaHQgZmluZGVuJzsKJGxhbmdbJ3VwbG9hZF9hdHRhY2hfZXJyb3InXSA9ICdGZWhsZXIgYmVpbSBIb2NobGFkZW4gZGVyIERhdGVpICVzICh0ZW1wb3ImYXVtbDtyZXIgTmFtZSAlcyBkZXMgVHlwcyAlcyknOwokbGFuZ1snc3VibWlzc2lvbl9lcnJvcl9maWxlX2xvY2snXSA9ICdGZWhsZXIuIERhdGVpIGtvbm50ZSBuaWNodCBnZXNwZXJydCB3ZXJkZW4uJzsKJGxhbmdbJ2VtYWlsX2RlZmF1bHRfdGVtcGxhdGUnXSA9ICdGb3JtQnVpbGRlci1WZXJzYW5kJzsKJGxhbmdbJ2VtYWlsX3RlbXBsYXRlX25vdF9zZXQnXSA9ICc8YnIvPkRhcyBFbWFpbC1UZW1wbGF0ZSB3dXJkZSBub2NoIG5pY2h0IGZlc3RnZWxlZ3QhJzsKJGxhbmdbJ21pc3NpbmdfY21zX21haWxlciddID0gJ0Zvcm1CdWlsZGVyOiBLb25udGUgZGFzIGVyZm9yZGVybGljaGUgQ01TTWFpbGVyLU1vZHVsIG5pY2h0IGZpbmRlbiEnOwokbGFuZ1sndXNlcl9hcHByb3ZlZF9zdWJtaXNzaW9uJ10gPSAnQmVudXR6ZXJnZXByJnV1bWw7ZnRlICZVdW1sO2Jlcm1pdHRsdW5nICVzIHZvbiAlcyc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J10gPSAnQXVzZiZ1dW1sO2hyZW4sIHdlbm4gZWluIEZvcm11bGFyIG1pdCBGb3JtQnVpbGRlciB2ZXJzYW5kdCB3dXJkZSc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InXSA9ICdBdXNmJnV1bWw7aHJlbiwgd2VubiBiZWltIFZlcnNhbmQgZWluZXMgRm9ybUJ1aWxkZXItRm9ybXVsYXJzIGVpbiBGZWhsZXIgYXVmZ2V0cmV0ZW4gaXN0JzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1EaXNwbGF5J10gPSAnQXVzZiZ1dW1sO2hyZW4sIHdlbm4gZWluIEZvcm1CdWlsZGVyLUZvcm11bGFyIGFuZ2V6ZWlndCB3dXJkZSc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J10gPSAnPHA+QXVzZiZ1dW1sO2hyZW4sIHdlbm4gZWluIEZvcm11bGFyIG1pdCBGb3JtQnVpbGRlciB2ZXJzYW5kdCB3dXJkZS48L3A+DQo8aDQ+UGFyYW1ldGVyPC9oND4NCjx1bD4NCjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBOYW1lIGRlcyBGb3JtdWxhcnMgKHN0cmluZyk8L2xpPg0KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBpbnRlcm5lIElEIGRlcyBGb3JtdWxhcnMgKGludCk8L2xpPg0KPC91bD4gJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddID0gJzxwPkF1c2YmdXVtbDtocmVuLCB3ZW5uIGJlaW0gVmVyc2FuZCBlaW5lcyBGb3JtQnVpbGRlci1Gb3JtdWxhcnMgZWluIEZlaGxlciBhdWZnZXRyZXRlbiBpc3Q8L3A+DQo8aDQ+UGFyYW1ldGVyPC9oND4NCjx1bD4NCjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBOYW1lIGRlcyBGb3JtdWxhcnMgKHN0cmluZyk8L2xpPg0KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBpbnRlcm5lIElEIGRlcyBGb3JtdWxhcnMgKGludCk8L2xpPg0KPGxpPjxlbT5lcnJvcjwvZW0+IC0gZWluZSBMaXN0ZSBhbGxlciBiZWthbm50ZSBGZWhsZXIgKHN0cmluZyk8L2xpPg0KPC91bD4gJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1EaXNwbGF5J10gPSAnPHA+QXVzZiZ1dW1sO2hyZW4sIHdlbm4gZWluIEZvcm1CdWlsZGVyLUZvcm11bGFyIGFuZ2V6ZWlndCB3dXJkZTwvcD4NCjxoND5QYXJhbWV0ZXI8L2g0Pg0KPHVsPg0KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIE5hbWUgZGVzIEZvcm11bGFycyAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIGludGVybmUgSUQgZGVzIEZvcm11bGFycyAoaW50KTwvbGk+DQo8L3VsPiAnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX3Jlc3BvbnNlX2lkJ10gPSAnUmVzcG9uc2UtSUQuIFdpcmQgdm9tIEZvcm1Ccm93c2VyLU1vZHVsIHZlcndlbmRldCc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfcGFzc2VkX2Zyb21fdGFnJ10gPSAnRGVmYXVsdCBmaWVsZCB2YWx1ZXM7IHNlZSBtb2R1bGUgaGVscCc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZmllbGRfaWQnXSA9ICdGZWxkLUlEIGYmdXVtbDtyIGludGVybmUgT3BlcmF0aW9uZW4nOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2Zvcm1fbmFtZSddID0gJ0Zvcm11bGFyLU5hbWUnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2Zvcm1faWQnXSA9ICdGb3JtdWxhci1JRCBmJnV1bWw7ciBpbnRlcm5lIE9wZXJhdGlvbmVuJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19nZW5lcmFsJ10gPSAnR2VuZXJhbCBwYXJhbWV0ZXJzIGZvciBpbnRlcm5hbCBvcGVyYXRpb25zJzsKJGxhbmdbJ3RlbXBsYXRlX3ZhcmlhYmxlX2hlbHAnXSA9ICc8aDM+Rm9ybSBUZW1wbGF0ZSBWYXJpYWJsZXM8L2gzPg0KPHA+WW91IGNhbiBlZGl0IGl0IHRvIG1ha2UgeW91ciBmb3JtIGxheW91dCBsb29rIGFueSB3YXkgeW91XCYjMDM5O2QgbGlrZS4NCiAgIFRvIG1ha2UgdGhlIGZvcm0gd29yaywgeW91XCYjMDM5O2xsIG5lZWQgdG8gYWx3YXlzIGluY2x1ZGUgdGhlIHskZmJfaGlkZGVufSBhbmQgeyRzdWJtaXR9DQogICB0YWdzLjwvcD4NCg0KPHA+WW91IGNhbiBhY2Nlc3MgeW91ciBmb3JtIGZpZWxkcyBlaXRoZXIgdXNpbmcgdGhlICRmaWVsZHMgYXJyYXkgb3IgYnkgZGlyZWN0bHkgYWNjZXNzaW5nIGZpZWxkcyBieSB0aGVpciBuYW1lcyAoZS5nLiwgeyRteWZpZWxkLT5pbnB1dH0gKTwvcD4NCg0KDQo8cD5FYWNoIGZpZWxkIGhhcyB0aGUgZm9sbG93aW5nIGF0dHJpYnV0ZXM6PC9wPg0KPHRhYmxlPg0KPHRyPjx0aD5GaWVsZDwvdGg+PHRoPlZhbHVlPC90aD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+ZGlzcGxheTwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIHNob3VsZCBiZSBkaXNwbGF5ZWQsIDAgb3RoZXJ3aXNlPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+cmVxdWlyZWQ8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBpcyByZXF1aXJlZCwgMCBvdGhlcndpc2U8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5yZXF1aXJlZF9zeW1ib2w8L3RkPjx0ZD50aGUgc3ltYm9sIGZvciByZXF1aXJlZCBmaWVsZHM8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5jc3NfY2xhc3M8L3RkPjx0ZD50aGUgQ1NTIGNsYXNzIHNwZWNpZmllZCBmb3IgdGhpcyBmaWVsZDwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPnZhbGlkPC90ZD48dGQ+MSBpZiB0aGlzIGZpZWxkIGhhcyBwYXNzZWQgdmFsaWRhdGlvbiwgMCBvdGhlcndpc2U8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5lcnJvcjwvdGQ+PHRkPlRleHQgb2YgdGhlIHZhbGlkYXRpb24gcHJvYmxlbSwgaW4gdGhlIGV2ZW50IHRoYXQgdGhpcyBmaWVsZCBkaWQgbm90IHZhbGlkYXRlPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aGlkZV9uYW1lPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgbmFtZSBzaG91bGQgYmUgaGlkZGVuLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmhhc19sYWJlbDwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIHR5cGUgaGFzIGEgbGFiZWw8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5uZWVkc19kaXY8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBuZWVkcyB0byBiZSB3cmFwcGVkIGluIGEgRElWIChvciB0YWJsZSByb3csIGlmIHRoYXRcJiMwMzk7cyB0aGUgd2F5IHlvdSBzd2luZyk8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5uYW1lPC90ZD48dGQ+dGhlIGZpZWxkXCYjMDM5O3MgbmFtZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmlucHV0PC90ZD48dGQ+dGhlIGZpZWxkXCYjMDM5O3MgaW5wdXQgY29udHJvbCAoZS5nLiwgdGhlIGlucHV0IGZpZWxkIGl0c2VsZik8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5pbnB1dF9pZDwvdGQ+PHRkPnRoZSBJRCBvZiB0aGUgZmllbGRcJiMwMzk7cyBpbnB1dCAodXNlZnVsIGZvciA8bGFiZWwgZm9yPVwmcXVvdDtcJnF1b3Q7Pik8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT50eXBlPC90ZD48dGQ+dGhlIGZpZWxkXCYjMDM5O3MgZGF0YSB0eXBlPC90ZD48L3RyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCjx0cj48dGQ+ZmllbGQtPm11bHRpcGxlX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQtPmlucHV0IGlzIGFjdHVhbGx5IGEgY29sbGVjdGlvbiBvZiBjb250cm9sczwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmxhYmVsX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgY29sbGVjdGlvbiBvZiBjb250cm9scyBoYXMgc2VwYXJhdGUgbGFiZWxzIGZvciBlYWNoIGNvbnRyb2w8L3RkPjwvdHI+DQo8L3RhYmxlPg0KDQo8cD5JbiBjZXJ0YWluIGNhc2VzLCBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYW4gYXJyYXkgb2Ygb2JqZWN0cyByYXRoZXIgdGhhbiBhbiBpbnB1dC4gVGhpcyBoYXBwZW5zLCBmb3IgZXhhbXBsZSwgaW4gQ2hlY2tCb3hHcm91cHMgb3IgUmFkaW9CdXR0b25Hcm91cHMuIEZvciB0aGVtLCB5b3UgY2FuIGl0ZXJhdGUgdGhyb3VnaCBmaWVsZC0+aW5wdXQtPm5hbWUgYW5kIGZpZWxkLT5pbnB1dC0+aW5wdXRzLjwvcD4NCiAgICANCjxwPkFkZGl0aW9uYWwgc21hcnR5IHZhcmlhYmxlcyB0aGF0IHlvdSBjYW4gdXNlIGluY2x1ZGU6PC9wPg0KPHRhYmxlPg0KPHRyPjx0aD5WYXJpYWJsZTwvdGg+PHRoPlZhbHVlPC90aD48L3RyPg0KPHRyPjx0ZD50b3RhbF9wYWdlczwvdGQ+PHRkPm51bWJlciBvZiBwYWdlcyBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+dGhpc19wYWdlPC90ZD48dGQ+bnVtYmVyIGZvIHRoZSBjdXJyZW50IHBhZ2UgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPnRpdGxlX3BhZ2VfeF9vZl95PC90ZD48dGQ+ZGlzcGxheXMgXCZxdW90O3BhZ2UgeCBvZiB5XCZxdW90OyBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+Y3NzX2NsYXNzPC90ZD48dGQ+Q1NTIENsYXNzIGZvciB0aGUgZm9ybTwvdGQ+PC90cj4NCjx0cj48dGQ+Zm9ybV9uYW1lPC90ZD48dGQ+Rm9ybSBuYW1lPC90ZD48L3RyPg0KPHRyPjx0ZD5mb3JtX2lkPC90ZD48dGQ+Rm9ybSBkYXRhYmFzZSBJRDwvdGQ+PC90cj4NCjx0cj48dGQ+cHJldjwvdGQ+PHRkPlwmcXVvdDtCYWNrXCZxdW90OyBidXR0b24gZm9yIG11bHRpcGFydCBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+c3VibWl0PC90ZD48dGQ+XCZxdW90O0NvbnRpbnVlXCZxdW90OyBvciBcJnF1b3Q7U3VibWl0XCZxdW90OyBidXR0b24gZm9yIG11bHRpcGFydCBmb3JtcywgYWRqdXN0cyBhdXRvbWF0aWNhbGx5PC90ZD48L3RyPg0KPC90YWJsZT4NCjxwPkR1bm5vIHdoeSB5b3VcJiMwMzk7ZCB3YW50IHNvbWUgb2YgdGhvc2UsIGJ1dCB0aGVyZSB5b3UgZ28uLi48L3A+DQonOwokbGFuZ1sncG9zdF9pbnN0YWxsJ10gPSAnDQo8cD5TdGVsbGVuIFNpZSBzaWNoZXIsIGRhc3MgZGllIEJlcmVjaHRpZ3VuZyAmcXVvdDtNb2RpZnkgRm9ybXMmcXVvdDsgDQpmJnV1bWw7ciBkaWUgQmVudXR6ZXIgZ2VzZXR6dCBpc3QsIHdlbGNoZSBkaWUgRmVlZGJhY2stRm9ybXVsYXJlIGFkbWluaXN0cmllcmVuIHdlcmRlbi4gU29sbGVuIGRpZSBXZXJ0ZSBhdXMgZGVtIEZvcm11bGFyIHBlciBFbWFpbCB2ZXJzYW5kdCB3ZXJkZW4sIA0Kc3RlbGxlbiBTaWUgZWJlbmZhbGxzIHNpY2hlciwgZGFzcyBkaWUgS29uZmlndXJhdGlvbiBlbnRzcHJlY2hlbmQgYWt0dWFsaXNpZXJ0IHd1cmRlLjwvcD4NCjxwPkFDSFRVTkc6IFcmYXVtbDtocmVuZCBkZXIgQmVhcmJlaXR1bmcgZGFyZiBkYXMgamV3ZWlsaWdlIEZlZWRiYWNrLUZvcm11bGFyIA0KQmVhcmJlaXR1bmcgbmljaHQgYWt0aXYgc2VpbiAoPW51dHpiYXIgZiZ1dW1sO3IgZGllIEcmYXVtbDtzdGUgSWhyZXIgSG9tZXBhZ2UpLiBTaWUgc29sbHRlbiBkYWhlciBkZW4gRmVlZGJhY2tmb3JtdWxhci1UYWcgZXJzdCBkYW5uIGluIGVpbmUgYWt0aXZlIEluaGFsdHNzZWl0ZSBlaW5mJnV1bWw7Z2VuLCB3ZW5uIGRhcyBGb3JtdWxhciBrb21wbGV0dCBlcnN0ZWxsdCBpc3QuIEFuZGVyZW5mYWxscyBrYW5uIGVzIHp1IGZlaGxlcmhhZnRlbiBFcmdlYm5pc3NlbiBrb21tZW4uPC9wPg0KPHA+SGlud2VpczogRGllc2UgVmVyc2lvbiB1bnRlcnN0JnV1bWw7dHp0IGtlaW5lIHBhcmFsbGVsZSBCZWFyYmVpdHVuZyB2b24gRm9ybXVsYXJlbiBkdXJjaCBtZWhyZXJlIEFkbWluaXN0cmF0b3Jlbi4gQml0dGUgc3RlbGxlbiBTaWUgc2ljaGVyLCBkYXNzIGVpbiBGb3JtdWxhciBqZXdlaWxzIG51ciB2b24gZWluZW0gQWRtaW5pc3RyYXRvciBiZWFyYmVpdGV0IHdpcmQuPC9wPic7CiRsYW5nWydoZWxwJ10gPSAnPGgzPldhcyBtYWNodCBkaWVzZXMgTW9kdWw/PC9oMz4NCjxwPkRhcyBGb3JtQnVpbGRlci1Nb2R1bCBlcmxhdWJ0IElobmVuLCBGZWVkYmFjay1Gb3JtdWxhcmUgenUgZXJzdGVsbGVuIChsb2dpc2NoLCBlcyBpc3QgZGVyIE5hY2hmb2xnZXIgZGVzIEZlZWRiYWNrRm9ybS1Nb2R1bHMpLCBlcndlaXRlcnQgdW0gZGllIEYmYXVtbDtoaWdrZWl0LCBlaW5nZWdlYmVuZSBEYXRlbiBhdWNoIGluIGVpbmVyIERhdGVuYmFuayBhYmxlZ2VuIHp1IGsmb3VtbDtubmVuLiBadXNhbW1lbiBtaXQgZGVtIEZvcm1Ccm93c2VyLU1vZHVsIGsmb3VtbDtubmVuIFNpZSBlaW5zZXR6ZW4sIHVtIGVpbmZhY2hlIERhdGVuYmFuay1BbndlbmR1bmdlbiBzZWxic3QgenUgZXJzdGVsbGVuLjwvcD4NCjxwPkRpZSB2b24gRm9ybUJ1aWxkZXIgZXJ6ZXVndGVuIEZvcm11bGFyZSBrJm91bWw7bm5lbiBpbiBUZW1wbGF0ZXMgDQp1bmQvb2RlciBTZWl0ZW4gZWluZ2VmJnV1bWw7Z3Qgd2VyZGVuLiBJbiBkaWUgRm9ybXVsYXIgayZvdW1sO25uZW4gdmVyc2NoaWVkZW5lIEFydGVuIHZvbiBEYXRlbiBlaW5nZWdlYmVuIHdlcmRlbi4gRGllc2UgRWluZ2FiZW4gDQo8cD5Gb3JtdWxhcmZlbGRlcm4gd2VyZGVuIE5hbWVuIHp1Z2V3aWVzZW4uIERpZXNlIE5hbWVuIGlkZW50aWZpemllcmVuIElocmUgRm9ybXVsYXJmZWxkZXIsIG5pY2h0IG51ciBhdWYgZGVtIEJpbGRzY2hpcm0gYWxzIEJlemVpY2hudW5nZW4gZGllIGRlbSBCZW51dHplciBkaWVuZW4sIHNvbmRlcm4gYXVjaCBpbiBkZW4gRGF0ZW4gd2VubiBzaWUgdmVyc2NoaWNrdCB3ZXJkZW4uIERhbWl0IHdpcmQgc2ljaGVyZ2VzdGVsbHQgZGFzcyBTaWUgZGFzIHNlaGVuIHdhcyBkZXIgTnV0emVyIGVpbmdlZ2ViZW4gaGF0LiA8YnI+DQogIERlbiBOYW1lbiB3aWUgZWluZSBGcmFnZSB6dSBnZXN0YWx0ZW4gaXN0IGVpbmUgc2VociBoYW5kbGljaGUgQXJ0IHVuZCBXZWlzZSBkZW0gTnV0emVyIHp1IHZlcm1pdHRlbG4gd2FzIGhpZXIgdm9uIGlobSBlcndhcnRldCB3aXJkLiA8YnI+DQogIFZpZWxlIEZlbGRlciBoYWJlbiBiZWlkZXMsIE5hbWVuIHVuZCBXZXJ0ZS4gRGllIE5hbWVuLCBkaWUgZGVtIE51dHplciBhbmdlemVpZ3Qgd2VyZGVuIHVuZCBkaWUgV2VydGUsIGRhcyBzaW5kIGRpZSBkaWUgZ2VzcGVpY2hlcnQgd2VyZGVuIHdlbm4gZGVyIE51dHplciBkYXMgRm9ybXVsYXIgYWJzY2hpY2t0LiBEaWUgV2VydGUgc2luZCB3ZWRlciB2b20gQmVudXR6ZXIgZWluc2VoYmFyIG5vY2ggaW0gSFRNTCwgc29taXQgaXN0IGVzIHNpY2hlciBzaWUgZiZhbXA7dXVtbDtyIEVtYWlsYWRyZXNzZW4gdXN3LiB6dSB2ZXJ3ZW5kZW4uIDwvcD4NCjxwPkVpbmlnZSBGZWxkZXIgayZhbXA7b3VtbDtubmVuIG1laHJlcmUgV2VydGUgb2RlciBOYW1lbi9XZXJ0ZSBQYWFyZSBoYWJlbi4gV2VubiBTaWUgenVlcnN0IGVpbiBzb2xjaGVzIEZlbGQgZXJzdGVsbGVuLCBrYW5uIGVzIG0mYW1wO291bWw7Z2xpY2ggc2VpbiwgZGFzcyBuaWNodCBnZW4mYW1wO3V1bWw7Z2VuZCBFaW5nYWJlZmVsZGVyIHZvcmhhbmRlbiBzaW5kLCB1bSBkaWUgV2VydGUgZWluenV0cmFnZW4uIFVtIG1laHIgTSZhbXA7b3VtbDtnbGljaGtlaXRlbiB6dSBlcmhhbHRlbiBXZXJ0ZSBlaW56dXRyYWdlbiwgYmVudXR6ZW4gU2llIGRlbiBTY2hhbHRlciBhbSB1bnRlcmVuIEVuZGUgZGVyIFNlaXRlIGYmYW1wO3V1bWw7ciB3ZWl0ZXJlIE9wdGlvbmVuLiA8L3A+DQo8cD5GZWxkZXJuIGsmYW1wO291bWw7bm5lbiBWYWxpZGllcnVuZ3NyZWdlbG4genVnZXdpZXNlbiB3ZXJkZW4sIHdlbGNoZSBqZSBuYWNoIEZlbGR0eXAgdW50ZXJzY2hpZWRsaWNoIHNlaW4gayZhbXA7b3VtbDtubmVuLiBEaWVzZSBSZWdlbG4gaGVsZmVuIHNpY2hlcnp1c3RlbGxlbiBkYXNzIGRlciBOdXR6ZXIgZyZhbXA7dXVtbDtsdGlnZSBEYXRlbiBlaW5naWJ0LiBBdSZhbXA7c3psaWc7ZXJkZW0gaXN0IGVzIE0mYW1wO291bWw7Z2xpY2ggRmVsZGVyIHNlcGVyYXQgbWl0IGVpbmVtICZhbXA7cXVvdDt3aXJkIGJlbiZhbXA7b3VtbDt0aWd0JmFtcDtxdW90OyB6dSBtYXJraWVyZW4sIGRhbWl0IHdpcmQgZGVyIE51dHplciBzb3p1c2FnZW4gJmFtcDtxdW90O2dlend1bmdlbiZhbXA7cXVvdDsgRWluZ2FiZW4genUgbWFjaGVuLiA8L3A+DQo8cD5GZWxkZXJuIGsmYW1wO291bWw7bm5lbiBhdWNoIENTUyBLbGFzc2VuIHp1Z2V3aWVzZW4gd2VyZGVuLiBFcyB3ZXJkZW4gZGllIEVpbmdhYmVmZWxkZXIgbWl0IGVpbmVtIERJViBUYWcgdW5kIGRhenVnZWgmYW1wO291bWw7cmlnZXIgQ1NTIEtsYXNzZSB1bWdlYmVuOyBzb21pdCBrJmFtcDtvdW1sO25uZW4gU2llIElociBGb3JtdWxhciBzZWxic3QgZ2VzdGFsdGVuLiBVbSBkaWVzIGVmZml6aWVudCBudXR6ZW4genUgayZhbXA7b3VtbDtubmVuIHNvbGx0ZW4gaW4gZGVuIFF1ZWxsdGV4dCBkZXMgRm9ybXVsYXJlcyBnZWhlbiB1bmQgZGFubiBJaHJlbiBDU1MgLSBDb2RlIHNjaHJlaWJlbi4gPC9wPg0KPHVsPg0KPGxpPlN0YW5kYXJkIEVpbmdhYmVmZWxkZXINCiAgPHVsPg0KICAgIDxsaT5UZXh0IEVpbmdhYmVmZWxkLiBEaWVzIGlzdCBkYXMgU3RhbmRhcmQgRWluZ2FiZWZlbGQuIFNpZSBrJmFtcDtvdW1sO25uZW4gZGllIEwmYW1wO2F1bWw7bmdlIGRlciBlaWdlZ2ViZW5lbiBaZWljaGVuIHcmYW1wO2F1bWw7aGxlbiB1bmQgdmVyc2NoaWVkZW5lIFZhbGlkaWVydW5nc2Z1bmt0aW9uZW4gYXVmIGRpZXNlIEZlbGQgYW53ZW5kZW4uPC9saT4NCiAgICA8bGk+VGV4dGJlcmVpY2ggLiBEaWVzIGlzdCBlaW4gZ3JvJmFtcDtzemxpZztlcyBGcmVpZnJvbSAtIFRleHRlaW5nYWJlZmVsZC48L2xpPg0KICAgIDxsaT5DaGVja2JveC4gRGFzIGlzdCBkaWUgU3RhbmRhcmQgQ2hlY2tib3guPC9saT4NCiAgICA8bGk+Q2hlY2tib3ggR3J1cHBlLiBEYXMgaXN0IGVpbmUgU2FtbWx1bmcgdm9uIENoZWNrYm94ZW4uIERlciBlaW56aWdlIFVudGVyc2NoaWVkIGJlc3RlaHQgZGFyaW4sIGRhc3MgZGllcyBlaW5lIEdydXBwZSB2b24gQ2hlY2tib3hlbiBtaXQgZWluZW0gTmFtZW4gaXN0LiBXZWl0ZXJoaW4gayZhbXA7b3VtbDtubmVuIFNpZSBlaW5lbiBvZGVyIG1laHJlcmUgYWxzICZhbXA7cXVvdDt3aXJkIGJlbiZhbXA7b3VtbDt0aWd0JmFtcDtxdW90OyBtYXJraWVyZW4uIFNvbWl0IGlzdCBkZXIgTnV0emVyICZhbXA7cXVvdDtnZXp3dW5nZW4mYW1wO3F1b3Q7IGVpbmUgb2RlciBtZWhyZXJlIENoZWNrYm94ZW4gZGllc2VyIEdydXBwZSBhdXN6dXcmYW1wO2F1bWw7aGxlbi48L2xpPg0KICAgIDxsaT5SYWRpbyBCdXR0b24gR3J1cHBlLiBEYXMgaXN0IGVpbmUgU2FtbWx1bmcgdm9uIFJhZGlvIEJ1dHRvbnMuIE51ciBlaW4gUmFkaW8gQnV0dG9uIGluIGRlciBHcnVwcGUga2FubiBhdXNnZXcmYW1wO2F1bWw7aGx0IHdlcmRlbi48L2xpPg0KICAgIDxsaT5QdWxsZG93bi4gRGFzIGlzdCBlaW4gU3RhbmRhcmQgUHVsbGRvd24gTWVuJmFtcDt1dW1sOy4gVm9tIEtvbnplcHQgaGVyIGdlc2VoZW4gZGFzIGdsZWljaGUgd2llIGRpZSBSYWRpbyBCdXR0b24gR3J1cHBlLCBhYmVyIGJlc3NlciB3ZW5uIFNpZSB2aWVsZSBBdXN3YWhsbSZhbXA7b3VtbDtnbGljaGtlaXRlbiBoYWJlbi48L2xpPg0KICAgIDxsaT5NZWhyZmFjaGF1c3dhaGwuIERhcyBpc3QgZGFzIE1laHJmYWNoYXVzd2FobCBGZWxkLiBWb20gS29uemVwdCBoZXIgZ2VzZWhlbiBkYXMgZ2xlaWNoZSB3aWUgZGllIFJhZGlvIEJ1dHRvbiBHcnVwcGUsIGFiZXIgYmVzc2VyIHdlbm4gU2llIHZpZWxlIEF1c3dhaGxtJmFtcDtvdW1sO2dsaWNoa2VpdGVuIGhhYmVuIHVuZCBkaWUgQXVzd2FobCBhYmVyIGJlZ3JlbnplbiBtJmFtcDtvdW1sO2NodGVuLjwvbGk+DQoNCiAgICA8bGk+QnVuZGVzc3RhYXQuIERpZXMgaXN0IGVpbmUgUHVsbGRvd24gTGlzdGUgbWl0IHMmYW1wO2F1bWw7bXRsaWNoZW4gQnVuZGVzc3RhYXRlbiBkZXIgVVNBLjwvbGk+DQo8bGk+TCZhbXA7YXVtbDtuZGVyLiBEaWVzIGlzdCBlaW5lIFB1bGxkb3duIExpc3RlIHMmYW1wO2F1bWw7bXRsaWNoZXIgc2ljaCBhdWYgZGVyIEVyZGUgYmVmaW5kbGljaGVuIEwmYW1wO2F1bWw7bmRlci48L2xpPg0KPGxpPkRhdHVtc2F1c3dhaGwuIERpZXMgaXN0IGVpbmUgZHJlaWZhY2ggUHVsbGRvd24gTGlzdGUsIGRpZSBkZW0gTnV0emVyIGRpZSBNJmFtcDtvdW1sO2dsaWNoa2VpdCBnaWJ0IGVpbiBEYXR1bSBhdXp1dyZhbXA7YXVtbDtobGVuLjwvbGk+DQo8L3VsPjwvbGk+DQoNCjxsaT5FbWFpbCBzcGV6aWZpc2NoZSBFaW5nYWJlZmVsZGVyDQogIDx1bD4NCiAgICA8bGk+RW1haWwgVm9uICBBZHJlc3MgRmVsZC4gSGllciBrJmFtcDtvdW1sO25uZW4gU2llIElocmUgRW1haWxhZHJlc3NlIGVpbmdlYmVuLiBEaWVzZSB3aXJkIGluIGRlciBnZW5lcmllcnRlbiBFbWFpbCBpbSBGZWxkIFZvbiAoTWFpbGFkcmVzc2UpOiBhbmdlZ2ViZW4uPC9saT4NCiAgICA8bGk+RW1haWwgVm9uIE5hbWUgRmVsZC4gSGllciBrJmFtcDtvdW1sO25uZW4gU2llIElocmVuIE5hbWVuIGVpbmdlYmVuLiBEaWVzZSB3aXJkIGluIGRlciBnZW5lcmllcnRlbiBFbWFpbCBpbSBGZWxkIE5hbWUgKEFic2VuZGVybmFtZSk6IGFuZ2VnZWJlbi48L2xpPg0KDQo8L3VsPjwvbGk+DQoNCjxsaT5Lb250cm9sbGZlbGRlciBmJnV1bWw7ciBkaWUgQW56ZWlnZTx1bD4NCjxsaT5TZWl0ZW51bWJydWNoIC0gZGFzIGVybSZvdW1sO2dsaWNodCBJaG5lbiBkaWUgQXVmdGVpbHVuZyBJaHJlcyBGZWVkYmFjay1Gb3JtdWxhcnMgaW4gbWVocmVyZSBTZWl0ZW4uIERpZSBFaW5nYWJlbiBqZWRlciBTZWl0ZSB3ZXJkZW4NCnVuYWJoJmF1bWw7bmdpZyB2b25laW5hbmRlciBnZXByJnV1bWw7ZnQuIERhcyBpc3QgaW5zYmVzb25kZXJlIGJlaSBPbmxpbmUtVW1mcmFnZW4gJmF1bWw7dSZzemxpZztlcnN0IHZvcnRlaWxoYWZ0LjwvbGk+DQo8bGk+LVN0YXRpc2NoZXIgVGV4dC4gRGFtaXQgayZvdW1sO25uZW4gU2llIElocmVtIEZvcm11bGFyIGVpbmZhY2hlbiBUZXh0IGhpbnp1ZiZ1dW1sO2dlbiBvZGVyIGVzIGJlc2NocmlmdGVuLiBEaWVzIGlzdCBmJnV1bWw7ciBBdXNmJnV1bWw7bGxoaW53ZWlzZSwgSGlsZmVuIHVzdy4gc2VociBuJnV1bWw7dHpsaWNoLCBpbnNiZXNvbmRlcmUgd2VubiBTaWUgZiZ1dW1sO3IgZGllIEFuemVpZ2UgZGVzIEZvcm11bGFycyBrZWluIGFuZ2VwYXNzdGVzIFRlbXBsYXRlIHZlcndlbmRlbi48L2xpPg0KPC91bD48L2xpPg0KDQo8bGk+Rm9ybXVsYXIgXCYjMDM5O0hhbmRsaW5nXCYjMDM5Ow0KICA8dWw+DQogICAgPGxpPipFbWFpbCBFcmdlYm5pcyBiYXNpZXJlbmQgYXVmIGRlbSBQdWxsZG93bi4gRGllcyBpc3QgaGlsZnJlaWNoIGYmYW1wO3V1bWw7ciBJbnRlcm5ldHNlaXRlbiB3byBLb21tZW50YXJlICZhbXA7dXVtbDtiZXIgZGllIEFuZ2VsZWdlbmhlaXQgaW4gZGVuIEJldHJlZmYgZ2VzY2hyaWViZW4gd2VyZGVuLiB6LkIuIEJ1Z3Mgd2VyZGVuIHp1bSBFbnR3aWNrbGVyIGdlc2VuZGV0LCBNYXJrZXRpbmcgRnJhZ2VuIHp1IGVpbmVyIFBlcnNvbiwgRnJhZ2VuIHp1bSBWZXJrYXVmIHp1IGVpbmVyIGFuZGVyZW4gUGVzb24gdXN3LiBEYXMgUHVsbGRvd24gTWVuJmFtcDt1dW1sOyB3aXJkIG1pdCBCZXRyZWZmcyBoaW50ZXJsZWd0IHVuZCBqZWRlciB3aXJkIHp1IGVpbmVyIHNwZXppZmlzY2hlbiBNYWlsYWRyZXNzZSB2ZXJzYW5kdC4gU2llIGVyc3RlbGxlbiBkZW4gamV3ZWlsaWdlbiBCZXRyZWZmIHdlbm4gU2llIGVpbiBzb2xjaGVzIEZlbGQgZXJzdGVsbGVuIG9kZXIgZWRpdGllcmVuLiBXZW5uIFNpZSBlaW4gc29sY2hlcyBQdWxsZG93biBNZW4mYW1wO3V1bWw7IGJlbnV0emVuLCBtdXNzIGRlciBOdXR6ZXIgZWluZSBBdXN3YWhsIGRlcyBCZXRyZWZmcyB3JmFtcDthdW1sO2hsZW4gdW0gZGFzIEZvcm11bGFyIGFic2NoaWNrZW4genUgayZhbXA7b3VtbDtubmVuLiBEaWVzZXMgQXVzd2FobGZlbGQgaXN0IGYmYW1wO3V1bWw7ciBkZW4gTnV0emVyIHNpY2h0YmFyIGFiZXIgZGllIE1haWxhZHJlc3NlbiBkaWUgZGFoaW50ZXIgc3RlaGVuIHdlcmRlbiB3ZWRlciBJaG0gbm9jaCBpbSBIVE1MIGFuZ2V6ZWlndC48L2xpPg0KDQogICAgPGxpPipFbWFpbCBFcmdlYm5pcyBhbiBBZHJlc3NlKG4pIHNlbmRlbi4gRGllcyBzZW5kZXQgZGllIERhdGVuIGFuIGVpbmUgdm9yaGVyIGFuZ2VnZWJlbmUgTWFpbGFkcmVzc2UuIERpZSBNYWlsYWRyZXNzZShuKSBrJmFtcDtvdW1sO25uZW4gU2llIGFuZ2ViZW4gd2VubiBTaWUgZWluIHNvbGNoZXMgRmVsZCBnZW5lcmllcmVuLiBEYXMgRmVsZCB1bmQgZGVyIE5hbWUgaXN0IGYmYW1wO3V1bWw7ciBkZW4gTnV0emVyIG5pY2h0IHNpY2h0YmFyLiBBdWNoIG5pY2h0IGltIFF1ZWxsdGV4dC48L2xpPg0KICAgIDxsaT4qRGF0ZW4gaW4gRGF0ZW5iYW5rIHNwZWljaGVybi4gRGllcyBzcGVpY2hlcnQgZGllIGFiZ2VnZWJlbmVuIERhdGVuIGluIGVpbmVyIGludGVybmVuIERhdGVuYmFuay4gRGllc2UgRWluc3RlbGx1bmcgdmVyd2VuZGVuIFNpZSBtZWlzdGVuIGluIFZlcmJpbmR1bmcgbWl0IGRlbSBNb2R1bCBGb3JtQnJvd3Nlci48L2xpPg0KICAgIDxsaT4qVmFsaWRpZXJ1bmcgJmFtcDt1dW1sO2JlciBkaWUgTWFpbGFkcmVzc2UuIERpZXMgaXN0IGVpbiBzZWhyIGxlaXN0dW5nc2YmYW1wO2F1bWw7aGlnZXMgRmVsZC4gRXMgc3RlbGx0IGRlbSBCZW51dHplciBlaW4gdm9yZ2VnZWJlbmVzIEVpbmdhYmVmZWxkIGYmYW1wO3V1bWw7ciBzZWluZSBNYWlsYWRyZXNzZSB6dXIgVmVyZiZhbXA7dXVtbDtndW5nLiBXZW5uIGRpZXNlciBkYXMgRm9ybXVsYXIgYWJzY2hpY2t0IHdpcmQgZGllICZhbXA7VXVtbDtiZXJtaXR0bHVuZyBuaWNodCBkaXJla3QgYXVzZ2VmJmFtcDt1dW1sO2hydCwgc29uZGVybiBzY2hpY2t0IGRlbSBOdXR6ZXIgZWluZSBNYWlsIG1pdCBlaW5lbSBjb2RpZXJ0ZW4gTGluay4gRXJzdCB3ZW5uIGRpZXNlciBMaW5rIGdlZHImYW1wO3V1bWw7Y2t0IHdpcmQgd2lyZCBkYXMgRm9ybXVsYXIgdmFsaWRpZXJ0IHVuZCBkaWUgRWluZ2FiZW4gYWJnZXNjaGlja3QuPC9saT4NCiAgICA8bGk+KkluIERhdGVpIFNjaHJlaWJlbi4gRGllc2UgT3B0aW9uIGdyZWlmdCBkaWUgRGF0ZW4gYWIgdW5kIHNjaHJlaWJ0IHNpZSBpbiBlaW5lIFRleHRkYXRlaS4gU2llIGsmYW1wO291bWw7bm5lbiBkZW4gTmFtZW4gdW5kIGRhcyBEYXRlaWZvcm1hdCBiZXN0aW1tZW4uIERpZXNlIERhdGVpZW4gd2VyZGVuIGluIGRhcyBBdXNnYWJldmVyemVpY2huaXMgZGVzIE1vZHVsIEluc3RhbGxhdGlvbnMgVmVyemVpY2huaXNzZXMgZ2VzY2hyaWViZW4uIFZvcnJhdXNnZXNldHp0IGlzdCwgZGFzcyBkZXIgU2VydmVyIGRpZSBub3R3ZW5kaWdlbiBTY2hyZWlicmVjaHRlIHZlcmdlYmVuIGhhdC4NCiAgICA8L3VsPjwvbGk+PC9saT48L3VsPg0KDQo8aDM+VGVtcGxhdGVzIGYmdXVtbDtyIEVtYWlsIHVuZCBlaW5mYWNoZSBEYXRlaWVuIDwvaDM+DQo8cD5NYW4gZGlzcG9zaXRpb24gdHlwZXMgYWxsb3cgeW91IHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZvciB0aGUgZW1haWwgdGhhdCBpcyBnZW5lcmF0ZWQsIG9yIGZvciB0aGUgd2F5IHRoZSByZXN1bHRzIGFyZSB3cml0dGVuIHRvIGEgZmlsZS4gV2VubiBTaWUgc2VsYnN0IGtlaW4gVGVtcGxhdGUgZXJzdGVsbGVuIHdvbGxlbiwgd2lyZCBGb3JtQnVpbGRlciBkaWUgbmFjaCBzZWluZXIgRWluc2NoJmF1bWw7dHp1bmcgYmVzdGUgTCZvdW1sO3N1bmcgdmVyd2VuZGVuLCBkaWUgc28gZnVua3Rpb25pZXJ0LCB3aWUgU2llIHdvbGxlbiBvZGVyIGF1Y2ggbmljaHQuIFNpZSBrJm91bWw7bm5lbiBqZWRlcnplaXQgYXVmIFwmcXVvdDtFaW4gTXVzdGVyLVRlbXBsYXRlIGVyc3RlbGxlblwmcXVvdDsga2xpY2tlbiB1bmQgZGFubiBkaWUgRXJnZWJuaXNzZSBhbnBhc3Nlbi48L3A+DQo8cD5CZWFjaHRlbiBTaWUsIGRhc3MgbmV1IGhpbnp1Z2VmJnV1bWw7Z3RlIEZlbGRlciBuaWNodCBtZWhyIGF1dG9tYXRpc2NoIGRlbSBUZW1wbGF0ZSBoaW56dWdlZiZ1dW1sO2d0IHdlcmRlbiwgd2VubiBlcyBlaW5tYWwgZ2UmYXVtbDtuZGVydCB3dXJkZS4gQXVzIGRpZXNlbSBHcnVuZCBpc3QgZXMgZGFzIEJlc3RlLCB3ZW5uIFNpZSBlcnN0IHp1bSBTY2hsdXNzIGRhcyBUZW1wbGF0ZSBmJnV1bWw7ciBkYXMgRm9ybXVsYXIgZXJzdGVsbGVuLjwvcD4NCg0KPGgzPkJla2FubnRlIFByb2JsZW1lPC9oMz4NCjx1bD4NCjxsaT5FaW5pZ2UgRmVsZHR5cGVuLCBkaWUgaW0gRmVlZGJhY2tGb3JtLU1vZHVsIGVudGhhbHRlbiB3YXJlbiwgc2luZCBpbiBGb3JtQnVpbGRlciBuaWNodCBpbXBsZW1lbnRpZXJ0LiBXZW5uIGVpbiBCZWRhcmYgZiZ1dW1sO3IgZGllc2UgRmVsZGVyIHZvcmhhbmRlbiBpc3QsIHdlcmRlIGljaCBzaWUgaGluenVnZWYmdXVtbDtnZW4uPC9saT4NCjxsaT5EYXMgRm9ybUJ1aWxkZXItTW9kdWwga2FubiBnZWdlbncmYXVtbDtydGlnIG5vY2ggbmljaHQgYXVmIGRpZSBEYXRlbiBkZXMgRnJvbnRlbmRVc2Vycy1Nb2R1bHMgenVncmVpZmVuLiBEaWVzIGlzdCBhYmVyIGdlcGxhbnQuPC9saT4NCjxsaT5Gb3JtQnVpbGRlciB1bnRlcnN0JnV1bWw7dHp0IGdlZ2VudyZhdW1sO3J0aWcgbm9jaCBrZWluZSBQcmV0dHkgVVJMcywgZGllcyBzb2xsdGUgamVkb2NoIGtlaW4gUHJvYmxlbSBzZWluLCBkYSBkaWUgQXVzZ2FiZW4gQmVudXR6ZXJzZWl0ZSBzZWhyIGVpbmZhY2ggZ2VoYWx0ZW4gaXN0LjwvbGk+DQo8L3VsPg0KDQo8aDM+RmVobGVyc3VjaGU8L2gzPg0KPG9sPjxsaT4gQWxzIGVyc3RlcyBzb2xsdGVuIFNpZSBwciZ1dW1sO2Zlbiwgb2IgU2llIENNU21zIGluIGVpbmVyIFZlcnNpb24gPiAxLjAgdmVyd2VuZGVuLjwvbGk+DQo8bGk+IEltIHp3ZWl0ZW4gU2Nocml0dCBzb2xsdGVuIFNpZSBkaWUgUHJvYmxlbWUgYmVpIGRlciBWZXJ3ZW5kdW5nIHZvbiBXWVNJV1lHLUVkaXRvcmVuIGltIEFic2Nobml0dA0KIDxlbT5FaW4gRm9ybXVsYXIgZWluZXIgU2VpdGUgaGluenVmJnV1bWw7Z2VuPC9lbT4gbGVzZW4gdW5kIHZlcnN0ZWhlbi48L2xpPg0KPGxpPldlbm4gU2llIGluIGVpbmVyIHZvbiBGb3JtQnVpbGRlciBnZW5lcmllcnRlbiBFbWFpbCBiZXN0aW1tdGUgRmVsZGVyIHZlcm1pc3NlbiwgJnV1bWw7YmVycHImdXVtbDtmZW4gU2llLCBvYiBkaWUgRmVsZGVyIGltIFRlbXBsYXRlIGVudGhhbHRlbiBzaW5kLCB1bmQgc3RlbGxlbiBTaWUgc2ljaGVyLCBkYXNzIFNpZSBkaWUgZmVobGVuZGVuIEZlbGRlciBhdWNoIHRhdHMmYXVtbDtjaGxpY2ggZGVmaW5pZXJ0IGhhYmVuLiBBdWNoIHdlbm4gZXMgbmljaHQga2xhciBlcnNpY2h0bGljaCBzY2hlaW50LCBrYW5uIGVzIGR1cmNoYXVzIG51ciBlaW4gZ2FueiBlaW5mYWNoZXIgRmVobGVyIHNlaW4uPC9saT4NCjxsaT4gVmVyc3VjaGVuIFNpZSwgYXVmIExpbmtzIHVuZCBJY29ucyB6dSBrbGlja2VuIHVuZCBiZW9iYWNodGVuIGdlbmF1LCB3YXMgcGFzc2llcnQuPC9saT4NCjxsaT4gRGllIGxldHp0ZSBNJm91bWw7Z2xpY2hrZWl0IGlzdCwgbWlyIGRhcyBQcm9ibGVtIHBlciBFbWFpbCBtaXR6dXRlaWxlbiBvZGVyIG1pY2ggaW0gSVJDLUNoYXQgYW56dXNwcmVjaGVuLCBkYW1pdCB3aXIgZGFzIFByb2JsZW0gZ2VtZWluc2FtIGJlaGViZW4uPC9saT4NCjwvb2w+IA0KPHA+RGllcyBpc3QgZWluZSBzZWhyIGZyJnV1bWw7aGUgVmVyc2lvbiwgZWluIHVuZ2V0ZXN0ZXRlcyBCZXRhLVJlbGVhc2UsIHVuZCBzZWhyIHdhaHJzY2hlaW5saWNoIGlzdCBlcyBmZWhsZXJoYWZ0LiBPYndvaGwgaWNoIGFsbGVzIGdldGFuIGhhYmUsIHdhcyBpY2gga29ubnRlLCANCnVtIHNpY2hlcnp1c3RlbGxlbiwgZGFzcyBzaWNoIGtlaW5lIGdyJm91bWw7JnN6bGlnO2VyZW4gXCZxdW90O1dhbnplblwmcXVvdDsgZWluZ2VzY2hsaWNoZW4gaGFiZW4sIG11c3N0ZSBpY2ggdyZhdW1sO2hyZW5kIGRlcyBUZXN0ZW5zIGZlc3RzdGVsbGVuLCBkYXNzIGRhcyBQcm9ncmFtbSANCnNpZWJlbiBLYWtlcmxha2VuLCB6d2VpIE9ocncmdXVtbDtybWVyLCBlaW5lIGtsZWluZSBGYW1pbGllIHZvbiBCbGF0dGwmYXVtbDt1c2VuIHVuZCBlaW5lIFdhbmRlcnN0YWJoZXVzY2hyZWNrZSBlbnRoaWVsdC4gU2llIGZyYSZzemxpZztlbiBhdWNoDQpOYWNoYmFycyBiJm91bWw7c2VuIGtsZWluZW4ga2wmYXVtbDtmZmVuZGVuIEh1bmQsIHdvZiZ1dW1sO3IgaWNoIHVuZW5kbGljaCBkYW5rYmFyIHdhci48L3A+DQo8cD5EYXMgZmluYWxlIFJlbGVhc2Ugd2lyZCBCdWdmaXhlcywgZWluZSBEb2t1bWVudGF0aW9uIHVuZCB1bmJlZGluZ3RlIExpZWJlIGVudGhhbHRlbi48L3A+DQo8aDM+U3VwcG9ydDwvaDM+DQo8cD5EaWVzZXMgTW9kdWwgYmVpbmhhbHRldCBrZWluZW4ga29tbWVyemllbGxlbiBTdXBwb3J0LiBTaWUgayZvdW1sO25uZW4gamVkb2NoICZ1dW1sO2JlciBkaWUgZm9sZ2VuZGUgV2VnZSBIaWxmZSB6dSBkZW0gTW9kdWwgZXJoYWx0ZW46PC9wPg0KPHVsPg0KPGxpPkYmdXVtbDtyIGRpZSBsZXR6dGUgVmVyc2lvbiBkaWVzZXMgTW9kdWxzLCBGQVFzLCBkZW0gVmVyc2FuZCBlaW5lcyBGZWhsZXJyZXBvcnRzIG9kZXIgZGVtIEthdWYga29tbWVyemllbGxlbiBTdXBwb3J0IGJlc3VjaGVuIHNpZSBiaXR0ZSBjYWxndXlzIEhvbWVwYWdlIHVudGVyIDxhIGhyZWY9XCZxdW90O2h0dHA6Ly90ZWNoY29tLmR5bmRucy5vcmdcJnF1b3Q7PnRlY2hjb20uZHluZG5zLm9yZzwvYT4uPC9saT4NCjxsaT5FaW5lIHdlaXRlcmUgRGlza3Vzc2lvbiB6dSBkaWVzZW0gTW9kdWwgaXN0IGF1Y2ggaW4gZGVuIEZvcmVuIHZvbiA8YSBocmVmPVwmcXVvdDtodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmdcJnF1b3Q7PkNNUyBNYWRlIFNpbXBsZTwvYT4genUgZmluZGVuLjwvbGk+DQo8bGk+RGVyIEF1dG9yIGNhbGd1eTEwMDAsIGlzdCBoJmF1bWw7dWZpZyBpbSA8YSBocmVmPVwmcXVvdDtpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXNcJnF1b3Q7PkNNUyBJUkMgQ2hhbm5lbDwvYT4genUgZmluZGVuLjwvbGk+DQo8bGk+TGV0enRsaWNoIGVycmVpY2hlbiBTaWUgZGVuIEF1dG9yIGF1Y2ggJnV1bWw7YmVyIGVpbmUgZGlyZWt0ZSBFbWFpbC48L2xpPiAgDQo8L3VsPg0KPHA+TmFjaCBkZXIgR1BMIHdpcmQgZGllc2UgU29mdHdhcmUgc28gdmVyJm91bWw7ZmZlbnRsaWNodCwgd2llIHNpZSBpc3QuIEJpdHRlIGxlc2VuIFNpZSBkZW4gTGl6ZW56dGV4dCBmJnV1bWw7ciBkZW4gdm9sbGVuIEhhZnR1bmdzYXVzc2NobHVzcy48L3A+DQo8aDM+Q29weXJpZ2h0IHVuZCBMaXplbno8L2gzPg0KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDA2LCBTYW11ZWwgR29sZHN0ZWluIDxhIGhyZWY9XCZxdW90O21haWx0bzpzamdAY21zbW9kdWxlcy5jb21cJnF1b3Q7PjxzamdAY21zbW9kdWxlcy5jb20+PC9hPi4gQWxsZSBSZWNodGUgdm9yYmVoYWx0ZW4uPC9wPg0KPHA+RGllc2VzIE1vZHVsIHd1cmRlIHVudGVyIGRlciA8YSBocmVmPVwmcXVvdDtodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUExcJnF1b3Q7PkdOVSBQdWJsaWMgTGljZW5zZTwvYT4gdmVyJm91bWw7ZmZlbnRsaWNodC4gU2llIG0mdXVtbDtzc2VuIGRpZXNlciBMaXplbnogenVzdGltbWVuLCBiZXZvciBTaWUgZGFzIE1vZHVsIHZlcndlbmRlbi48L3A+JzsKJGxhbmdbJ2NoYW5nZWxvZyddID0gJzx1bD4NCjxsaT5WZXJzaW9uIDAuNA0KCTx1bD4NCgkJPGxpPlVwcGVkIG1pbmltdW0gQ01TIHZlcnNpb24gdG8gMS4xPC9saT4NCgkJPGxpPk51bWVyb3VzIEJ1ZyBmaXhlczsgdG9vIG1hbnkgdG8gZW51bWVyYXRlIGhlcmU8L2xpPg0KCQk8bGk+TWFzc2l2ZSByZWppZ2dlcmluZyBvZiBjb2RlIHRvIHdvcmsgd2l0aCBDTVMgTVMgMS4xIHBhcmFtZXRlciBzYW5pdGl6aW5nIHJlZ2ltZTwvbGk+DQoJCTxsaT5BZGRlZCBmaWVsZCB0eXBlczogJnF1b3Q7VGV4dEZpZWxkIChNdWx0aXBsZSkmcXVvdDsgYW5kICZxdW90O0NvbXB1dGVkIEZpZWxkJnF1b3Q7PC9saT4NCgkJPGxpPkFkZGVkIGRpc3Bvc2l0aW9uczogJnF1b3Q7U2F2ZSBSZXN1bHRzIHRvIEZpbGUgQmFzZWQgb24gUHVsbGRvd24mcXVvdDsgYW5kICZxdW90O1NhdmUgUmVzdWx0cyB0byBGaWxlKHMpIEJhc2VkIG9uIE11bHRpcGxlIFNlbGVjdGlvbnMmcXVvdDsoQ2FsZ3V5KTwvbGk+DQoJCTxsaT5BZGRlZCBuZWF0LW8gQUpBWC15IHRlbXBsYXRlLWNvcHlpbmcgZm9yIEZvcm0gVGVtcGxhdGVzLCBnYXZlIHZlcnNpb25zIG9mIG9sZCB0YWJsZS1iYXNlZCB0ZW1wbGF0ZXMgdG8gc29vdGhlIHRoZSByYWdpbmcgbWFzc2VzLjwvbGk+DQoJCTxsaT5BZGRlZCBhYmlsaXR5IHRvIHBhc3MgZGVmYXVsdCB2YWx1ZXMgdG8gZm9ybSBlbGVtZW50cyBmcm9tIG1vZHVsZSB0YWcgdXNpbmcgdmFsdWVfRklFTEROQU1FPSZxdW90O3ZhbHVlJnF1b3Q7IHN5bnRheCAoQ2FsZ3V5KTwvbGk+DQoJCTxsaT5BZGRlZCBvcHRpb24gdG8gZGlzcGxheSBmaWVsZCBpZHMgaW4gYWRtaW4gKENhbGd1eSk8L2xpPg0KCTwvdWw+DQo8L2xpPg0KPGxpPlZlcnNpb24gMC4zDQogICA8dWw+DQogICAgICA8bGk+QWRkZWQgQ2FwdGNoYSBtb2R1bGUgc3VwcG9ydC48L2xpPg0KICAgICAgPGxpPlJld29ya2VkIGxhYmVsaW5nIG9mIGZvcm0gZWxlbWVudHMgdG8gYmUgWEhUTUwgY29tcGxpYW50PC9saT4NCiAgICAgIDxsaT5BZGRlZCBQYXVsIE5vb25lJiMwMzk7cyBuZXcsIGltcHJvdmVkIGNvbnRhY3QgZm9ybSB0ZW1wbGF0ZXM8L2xpPg0KICAgICAgPGxpPkltcGxlbWVudGF0aW9uIG9mIEVtYWlsIFN1YmplY3QgRmllbGQ8L2xpPg0KICAgICAgPGxpPkFkZGVkIGFkbWluLXNwZWNpZmlhYmxlIHZhbHVlcyB0byBoaWRkZW4gZmllbGQgdHlwZSwgd2hpY2ggbWF5IGNvbnRhaW4gcGFyc2FibGUgc21hcnR5IHRhZ3M8L2xpPg0KICAgICAgPGxpPlRleHQgQXJlYSBGaWVsZCBub3cgYWxsb3dzIHNwZWNpZmljYXRpb24gb2Ygcm93cyBhbmQgY29scyBpbiB0aGUgYWRtaW4sIGluc3RlYWQgb2YgQ1NTPC9saT4NCiAgICAgIDxsaT5BZGRlZCBEcmFnJiMwMzk7biYjMDM5O0Ryb3AgcmVvcmRlcmluZyBvZiBmb3JtIGZpZWxkcy48L2xpPg0KICAgICAgPGxpPkFkZGVkIG5vbi1ibGFuayBmaWVsZCBuYW1lIGFuZCB1bmlxdWUgZmllbGQgbmFtZSBnbG9iYWwgY29uZmlndXJhdGlvbiBvcHRpb25zIGFuZCB2YWxpZGF0aW9uPC9saT4NCiAgICAgIDxsaT5JbXBsZW1lbnRlZCB0ZW1wbGF0ZWQgZGlzcGxheSBvZiBmb3JtIHJlc3VsdHMgdXBvbiBzdWJtaXNzaW9uIGluIGFkZGl0aW9uIHRvIHBhZ2UgcmVkaXJlY3Rpbmc8L2xpPg0KICAgICAgPGxpPjwvbGk+DQogICA8L3VsPg0KPC9saT4NCjxsaT5WZXJzaW9uIDAuMi40IC0gMDkgTWF5IDIwMDcNCiAgIDxwPkJpZyByZWxlYXNlOjx1bD4NCiAgIDxsaT5BZGRlZCAmcXVvdDtFbWFpbCBGb3JtIHRvIFVzZXItU3VwcGxpZWQgQWRkcmVzcyZxdW90OyBkaXNwb3NpdGlvbi48L2xpPg0KICAgPGxpPkFkZGVkICZxdW90O1RpbWVQaWNrZXImcXVvdDsgZmllbGQgdHlwZS4gU3BsaXQgJnF1b3Q7TGluayZxdW90OyBmaWVsZCBpbnRvIGEgJnF1b3Q7VXNlci1zdXBwbGllZCBMaW5rJnF1b3Q7IGZpZWxkIGFuZCBhICZxdW90O1N0YXRpYyBMaW5rJnF1b3Q7IGZpZWxkLjwvbGk+DQogICA8bGk+QWRkZWQgSFRNTCBlbWFpbCBvcHRpb24gYW5kIGF1dG8tdGVtcGxhdGVzIGZvciBhbGwgZW1haWwgZGlzcG9zaXRpb25zLjwvbGk+DQogICA8bGk+QWRkZWQgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcy48L2xpPg0KICAgPGxpPkFkZGVkIFhNTC1iYXNlZCBpbXBvcnQgYW5kIGV4cG9ydCBvZiBmb3Jtcy48L2xpPg0KICAgPC91bD4NCiAgIDwvcD4NCjwvbGk+DQo8bGk+VmVyc2lvbiAwLjIuMw0KICAgPHA+QWRkIHRoZSBhYmlsaXR5IHRvIGNhbGwgYSBzZWxlY3RhYmxlIHVzZXIgZGVmaW5lZCB0YWcgdXBvbiBkaXNwb3NpdGlvbiBvZiB0aGUgZm9ybS48L3A+DQo8L2xpPg0KPGxpPlZlcnNpb24gMC4yLjINCiAgIDxwPk1hbnkgdGhhbmtzIHRvIFV0dGVyIERlc2lnbiBmb3Igc3BvbnNvcmluZyBzb21lIGNoYW5nZXMgYW5kIGJ1Z2ZpeGVzLCB3aGljaCBpbmNsdWRlOg0KICAgPHVsPg0KICAgICAgPGxpPkFkZGVkIGZpbGUgdXBsb2FkIGNhcGFiaWxpdGllcyB0byB0aGUgZW1haWwgZGlzcG9zaXRpb248L2xpPg0KICAgICAgPGxpPkFkZCBQYWdlU2V0U3RhcnQgYW5kIFBhZ2VTZXRFbmQgZmllbGQgdHlwZXMNCiAgICAgIDxwPlRoZXNlIGZpZWxkIHR5cGVzIGFsbG93IHlvdSB0byBjcmVhdGUgZmllbGRzZXRzIGluIHlvdXIgZm9ybSwgYW5kIG9yZ2FuaXNlDQogICAgICB5b3VyIGZpZWxkcyBsb2dpY2FsbHkgZm9yIHRoZSB1c2VyLiAgWW91IGNhbiBldmVuIG5lc3QgZmllbGRzZXRzLCBhbmQNCiAgICAgIGFzc29jaWF0ZSBhIHN0eWxlIHdpdGggdGhlbSBhcHByb3ByaWF0ZWx5LiAgVGhlIGRlZmF1bHQgdGVtcGxhdGUgd2FzIGNoYW5nZWQNCiAgICAgIHRvIHByZXZlbnQgaXQgZnJvbSB3cmFwcGluZyBhIGRpdiBhcm91bmQgdGhlc2UgdHlwZXMgb2YgZmllbGRzLg0KICAgICAgPC9wPg0KICAgICAgPC9saT4NCiAgICAgIDxsaT5GaXhlZCBhIHByb2JsZW0gd2l0aCBEQVRFVElNRSBmaWVsZHMgb24gaW5zdGFsbA0KICAgICAgPHA+VGhpcyBzb2x2ZXMgYSBwcm9ibGVtIHdoZW4gb24gaW5zdGFsbCB0aGUgcmVzcG9uc2UgdGFibGUgd291bGQgc29tZXRpbWVzIG5vdCBnZXQgY3JlYXRlZCB3aGVuIHVzaW5nIGFkb2RiIGxpdGU8L2xpPg0KICAgICAgPC9saT4NCiAgIDwvdWw+DQogICA8L3A+DQo8L2xpPg0KPGxpPlZlcnNpb24gMC4yIC0gMTQgTm92ZW1iZXIgMjAwNi4gQ2FsZ3V5ICZhbXA7YW1wOyB0c3cmIzAzOTtzIGJ1ZyBmaXhlcyBmb3IgZmllbGQgcmUtb3JkZXJpbmcgYW5kIGN1c3RvbSB0ZW1wbGF0ZXMuIEFkZGl0aW9uYWwgYnVnIGZpeGVzIGZvciBmaWVsZCBsYWJlbHMuPC9saT4NCjxsaT5WZXJzaW9uIDAuMSAtIDggSnVseSAyMDA2LiBJbml0aWFsIFJlbGVhc2U8L2xpPg0KPC91bD4nOwokbGFuZ1sndXRteiddID0gJzE1Njg2MTM1My4xMTg5MDAyMzg0LjE3OS4xMTMudXRtY2NuPShyZWZlcnJhbCl8dXRtY3NyPWJsb2cuY21zbWFkZXNpbXBsZS5vcmd8dXRtY2N0PS98dXRtY21kPXJlZmVycmFsJzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuNzE3NDYyNzM2LjExNDc1MTE4NTYuMTE4OTAwMjM4NC4xMTg5NDA4MDQ2LjE4MCc7CiRsYW5nWyd1dG1jJ10gPSAnMTU2ODYxMzUzJzsKPz4=]]></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/it_IT.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0Zvcm0gQnVpbGRlcic7CiRsYW5nWydmaWVsZF90eXBlXyddID0gJ1RpcG8gZGVsIGNhbXBvIG5vbiBzZXR0YXRvJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmllbGRzZXRFbmQnXSA9ICctRmllbGRzZXQgRW5kJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmllbGRzZXRTdGFydCddID0gJy1GaWVsZHNldCBTdGFydCc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRGaWVsZCddID0gJ1RleHQgSW5wdXQnOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0RmllbGRFeHBhbmRhYmxlJ10gPSAnVGV4dCBJbnB1dCAoTXVsdGlwbGUpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEFyZWFGaWVsZCddID0gJ1RleHQgQXJlYSc7CiRsYW5nWydmaWVsZF90eXBlX0NoZWNrYm94RmllbGQnXSA9ICdDaGVjayBCb3gnOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEdyb3VwRmllbGQnXSA9ICdDaGVjayBCb3ggR3JvdXAnOwokbGFuZ1snZmllbGRfdHlwZV9QdWxsZG93bkZpZWxkJ10gPSAnUHVsbGRvd24nOwokbGFuZ1snZmllbGRfdHlwZV9NdWx0aXNlbGVjdEZpZWxkJ10gPSAnTXVsdGlzZWxlY3QnOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0ZVBpY2tlckZpZWxkJ10gPSAnVS5TLiBTdGF0ZSBQaWNrZXInOwokbGFuZ1snZmllbGRfdHlwZV9Db3VudHJ5UGlja2VyRmllbGQnXSA9ICdDb3VudHJ5IFBpY2tlcic7CiRsYW5nWydmaWVsZF90eXBlX0RhdGVQaWNrZXJGaWVsZCddID0gJ0RhdGUgUGlja2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGltZVBpY2tlckZpZWxkJ10gPSAnVGltZSBQaWNrZXInOwokbGFuZ1snZmllbGRfdHlwZV9SYWRpb0dyb3VwRmllbGQnXSA9ICdSYWRpbyBCdXR0b24gR3JvdXAnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRpcmVjdG9yJ10gPSAnKkVtYWlsIFJlc3VsdHMgQmFzZWQgb24gUHVsbGRvd24nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZpbGVEaXJlY3RvciddID0gJypTYXZlIFJlc3VsdHMgdG8gRmlsZSBCYXNlZCBvbiBQdWxsZG93bic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uTXVsdGlzZWxlY3RGaWxlRGlyZWN0b3InXSA9ICcqU2F2ZSBSZXN1bHRzIHRvIEZpbGUocykgQmFzZWQgb24gTXVsdGlwbGUgU2VsZWN0aW9ucyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uUGFnZVJlZGlyZWN0b3InXSA9ICcqUmVkaXJlY3QgdG8gUGFnZSBCYXNlZCBvbiBQdWxsZG93bic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWwnXSA9ICcqRW1haWwgUmVzdWx0cyB0byBzZXQgQWRkcmVzcyhlcyknOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsQ29uZmlybWF0aW9uJ10gPSAnKlZhbGlkYXRlLXZpYS1FbWFpbCBBZGRyZXNzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25GaWxlJ10gPSAnKldyaXRlIFJlc3VsdHMgdG8gRmxhdCBGaWxlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EYXRhYmFzZSddID0gJypTdG9yZSBSZXN1bHRzIGluIERhdGFiYXNlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Vc2VyVGFnJ10gPSAnKkNhbGwgQSBVc2VyIERlZmluZWQgVGFnIFdpdGggdGhlIEZvcm0gUmVzdWx0cyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGVsaXZlclRvRW1haWxBZGRyZXNzRmllbGQnXSA9ICcqRW1haWwgdG8gVXNlci1TdXBwbGllZCBFbWFpbCBBZGRyZXNzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUGFnZUJyZWFrRmllbGQnXSA9ICctUGFnZSBCcmVhayc7CiRsYW5nWydmaWVsZF90eXBlX0ZpbGVVcGxvYWRGaWVsZCddID0gJ0ZpbGUgVXBsb2FkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsQWRkcmVzc0ZpZWxkJ10gPSAnRW1haWwgJnF1b3Q7RnJvbSBBZGRyZXNzJnF1b3Q7IEZpZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsTmFtZUZpZWxkJ10gPSAnRW1haWwgJnF1b3Q7RnJvbSBOYW1lJnF1b3Q7IEZpZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsU3ViamVjdEZpZWxkJ10gPSAnRW1haWwgJnF1b3Q7U3ViamVjdCZxdW90OyBGaWVsZCc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRpY1RleHRGaWVsZCddID0gJy1TdGF0aWMgVGV4dCc7CiRsYW5nWydmaWVsZF90eXBlX1N5c3RlbUxpbmtGaWVsZCddID0gJy1TdGF0aWMgTGluayc7CiRsYW5nWydmaWVsZF90eXBlX0xpbmtGaWVsZCddID0gJ0xpbmsgKFVzZXItZW50ZXJlZCknOwokbGFuZ1snZmllbGRfdHlwZV9IaWRkZW5GaWVsZCddID0gJy1IaWRkZW4gRmllbGQnOwokbGFuZ1snZmllbGRfdHlwZV9Db21wdXRlZEZpZWxkJ10gPSAnLUNvbXB1dGVkIEZpZWxkJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbm9uZSddID0gJ05vIFZhbGlkYXRpb24nOwokbGFuZ1sndmFsaWRhdGlvbl9udW1lcmljJ10gPSAnTnVtZXJpY28nOwokbGFuZ1sndmFsaWRhdGlvbl9pbnRlZ2VyJ10gPSAnSW50ZXJvJzsKJGxhbmdbJ3ZhbGlkYXRpb25fZW1haWxfYWRkcmVzcyddID0gJ0luZGlyaXp6byBFbWFpbCc7CiRsYW5nWyd2YWxpZGF0aW9uX211c3RfY2hlY2snXSA9ICdEZXZlIGVzc2VyZSBzcHVudGF0byc7CiRsYW5nWyd2YWxpZGF0aW9uX3JlZ2V4X21hdGNoJ10gPSAnTWF0Y2ggUmVndWxhciBFeHByZXNzaW9uJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbm9tYXRjaCddID0gJ0RvZXNuJiMwMzk7dCBtYXRjaCBSZWd1bGFyIEV4cHJlc3Npb24nOwokbGFuZ1sncmVxdWlyZWRfZmllbGRfbWlzc2luZyddID0gJ0EgdmFsdWUgd2FzIG5vdCBzdXBwbGllZCBmb3IgYSByZXF1aXJlZCBmaWVsZCc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV92YWx1ZSddID0gJ0luc2VyaXJlIHVuIHZhbG9yZSBwZXIgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfbnVtYmVyJ10gPSAnSW5zZXJpcmUgdW4gbnVtZXJvIHBlciAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfdmFsaWQnXSA9ICdJbnNlcmlyZSBub24gdmFsaWRvIHBlciAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5faW50ZWdlciddID0gJ0luc2VyaXJlIHVuIGludGVybyB2YWxpZG8gcGVyICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hbl9lbWFpbCddID0gJ0luc2VyaXJlIHVuIGluZGlyaXp6byBlbWFpbCB2YWxpZG8gcGVyICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ25vdF92YWxpZF9lbWFpbCddID0gJyZxdW90OyVzJnF1b3Q7IG5vbiBhcHBhcmUgZXNzZXJlIHZhbGlkbyBjb21lIGluZGlyaXp6byBlbWFpbCEnOwokbGFuZ1sncGxlYXNlX2VudGVyX25vX2xvbmdlciddID0gJ1BsZWFzZSBlbnRlciBhIHZhbHVlIHRoYXQgaXMgbm8gbG9uZ2VyIHRoYW4gJXMgY2hhcmFjdGVycyc7CiRsYW5nWyd0aXRsZV9saXN0X2RlbGltaXRlciddID0gJ0NoYXJhY3RlciB0byB1c2UgYXMgZGVsaW1pdGVyIGluIHJlc3VsdHMgdGhhdCByZXR1cm4gbW9yZSB0aGFuIG9uZSB2YWx1ZSc7CiRsYW5nWyd5b3VfbmVlZF9wZXJtaXNzaW9uJ10gPSAnWW91IG5lZWQgdGhlICZxdW90OyVzJnF1b3Q7IHBlcm1pc3Npb24gdG8gcGVyZm9ybSB0aGF0IG9wZXJhdGlvbi4nOwokbGFuZ1snbGFja3Blcm1pc3Npb24nXSA9ICdTcGlhY2VudGUhIE5vbiBhdmV0ZSB1biBhZGVndWF0byBwcml2aWxlZ2lvIHBlciBhY2NlZGVyZSBhIHF1ZXN0YSBzZXppb25lLic7CiRsYW5nWydmaWVsZF9vcmRlcl91cGRhdGVkJ10gPSAnRmllbGQgb3JkZXIgdXBkYXRlZC4nOwokbGFuZ1snZm9ybV9kZWxldGVkJ10gPSAnRm9ybSBjYW5jZWxsYXRvLic7CiRsYW5nWydmaWVsZF9kZWxldGVkJ10gPSAnRmllbGQgY2FuY2VsbGF0by4nOwokbGFuZ1snY29uZmlndXJhdGlvbl91cGRhdGVkJ10gPSAnQ29uZmlndXJhemlvbmUgYWdnaW9ybmF0YS4nOwokbGFuZ1sneW91X211c3RfY2hlY2snXSA9ICdZb3UgbXVzdCBjaGVjayAmcXVvdDslcyZxdW90OyBpbiBvcmRlciB0byBjb250aW51ZS4nOwokbGFuZ1snbXVzdF9zcGVjaWZ5X29uZV9kZXN0aW5hdGlvbiddID0gJ0RvdmV0ZSBzcGVjaWZpY2FyZSBhbG1lbm8gdW4gaW5kaXJpenpvIGRpIGRlc3RpbmF6aW9uZSEnOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9mb3JtJ10gPSAnU2lldGUgc2ljdXJpIGRpIHZvbGVyIGNhbmNlbGxhcmUgaWwgZm9ybSAlcz8nOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9maWVsZCddID0gJ1NpZXRlIHNpY3VyaSBkaSB2b2xlciBjYW5jZWxsYXJlIGlsIGNhbXBvICVzPyc7CiRsYW5nWydub3RpY2Vfc2VsZWN0X3R5cGUnXSA9ICdBZHZhbmNlZCBvcHRpb25zIGFyZSBub3QgYXZhaWxhYmxlIHVudGlsIHRoZSBmaWVsZCB0eXBlIGhhcyBiZWVuIHNldC4nOwokbGFuZ1snZmllbGRfbmFtZV9pbl91c2UnXSA9ICdUaGUgZmllbGQgbmFtZSAmcXVvdDslcyZxdW90OyBpcyBhbHJlYWR5IGluIHVzZS4gUGxlYXNlIHVzZSB1bmlxdWUgZmllbGQgbmFtZXMsIG9yIGRpc2FibGUgdW5pcXVlIGZpZWxkIG5hbWVzIGluIHRoZSBGb3JtIEJ1aWxkZXIgY29uZmlndXJhdGlvbi4nOwokbGFuZ1snZmllbGRfbm9fbmFtZSddID0gJ0ZpZWxkcyBtdXN0IGJlIG5hbWVkLCB1bmxlc3MgeW91IGRpc2FibGUgdGhpcyBpbiB0aGUgRm9ybSBCdWlsZGVyIGNvbmZpZ3VyYXRpb24uJzsKJGxhbmdbJ2Fub255bW91cyddID0gJ0Fub25pbW8nOwokbGFuZ1snYWJicmV2aWF0aW9uX2xlbmd0aCddID0gJ0x1bmdoZXp6YTogJXMnOwokbGFuZ1snYm94ZXMnXSA9ICclcyBib3hlcyc7CiRsYW5nWydvcHRpb25zJ10gPSAnJSBvcHppb25pJzsKJGxhbmdbJ3RleHRfbGVuZ3RoJ10gPSAnJSBjYXJhdHRlcmkuJzsKJGxhbmdbJ29yZGVyJ10gPSAnT3JkaW5lJzsKJGxhbmdbJ3Vuc3BlY2lmaWVkJ10gPSAnW25vbiBzcGVjaWZpY2F0b10nOwokbGFuZ1snYWRkZWQnXSA9ICdhZ2dpdW50aSc7CiRsYW5nWyd1cGRhdGVkJ10gPSAnbW9kaWZpY2F0aSc7CiRsYW5nWydzb3J0X29wdGlvbnMnXSA9ICdPcHppb25lIGRpIG9yZGluYW1lbnRvIGRpIHVzY2l0YSc7CiRsYW5nWydzZWxlY3Rfb25lJ10gPSAnU2VsZXppb25hIHVubyc7CiRsYW5nWydzZWxlY3RfdHlwZSddID0gJ1NlbGV6aW9uYSB0aXBvJzsKJGxhbmdbJ3RvJ10gPSAnQSc7CiRsYW5nWyd5ZXMnXSA9ICdTJmlncmF2ZTsnOwokbGFuZ1snbm8nXSA9ICdObyc7CiRsYW5nWydyZWNpcGllbnRzJ10gPSAnZGVzdGluYXRhcmknOwokbGFuZ1snZmlsZV9jb3VudCddID0gJyUgcG9zc2liaWxpIGZpbGUnOwokbGFuZ1snZGVzdGluYXRpb25fY291bnQnXSA9ICclcyBkZXN0aW5hemlvbmknOwokbGFuZ1snc2F2ZSddID0gJ1NhbHZhJzsKJGxhbmdbJ2FkZCddID0gJ0FnZ2l1bmdpJzsKJGxhbmdbJ3VwZGF0ZSddID0gJ0FnZ2lvcm5hJzsKJGxhbmdbJ3NhdmVfYW5kX2NvbnRpbnVlJ10gPSAnU2FsdmEgZSBjb250aW51YSBjb24gbGEgbW9kaWZpY2EnOwokbGFuZ1snaW5mb3JtYXRpb24nXSA9ICdJbmZvcm1hemlvbmUnOwokbGFuZ1snYXV0b21hdGljJ10gPSAnQXV0b21hdGljbyc7CiRsYW5nWydmb3JtcyddID0gJ0Zvcm1zJzsKJGxhbmdbJ2Zvcm0nXSA9ICdGb3JtICVzJzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb24nXSA9ICdDb25maWd1cmF6aW9uZSc7CiRsYW5nWydmaWVsZF9yZXF1aXJlbWVudF91cGRhdGVkJ10gPSAnRmllbGQgcmVxdWlyZWQgc3RhdGUgdXBkYXRlZC4nOwokbGFuZ1snbWF4aW11bV9zaXplJ10gPSAnRGltZW5zaW9uZSBtYXNzaW1hJzsKJGxhbmdbJ3Blcm1pdHRlZF9leHRlbnNpb25zJ10gPSAnRXN0ZW5zaW9uaSc7CiRsYW5nWydwZXJtaXR0ZWRfZmlsZXR5cGVzJ10gPSAnVGlwaSBkaSBmaWxlIHBlcm1lc3NpJzsKJGxhbmdbJ2ZpbGVfdG9vX2xhcmdlJ10gPSAnVXBsb2FkZWQgZmlsZSBpcyB0b28gbGFyZ2UhIE1heGltdW0gc2l6ZSBpczonOwokbGFuZ1snaWxsZWdhbF9maWxlX3R5cGUnXSA9ICdUaGlzIHR5cGUgb2YgZmlsZSBtYXkgbm90IGJlIHVwbG9hZGVkLiBQbGVhc2UgY2hlY2sgdGhhdCB0aGUgZXh0ZW5zaW9uIGlzIGNvcnJlY3QuJzsKJGxhbmdbJ3VwbG9hZCddID0gJ1VwbG9hZCc7CiRsYW5nWydmb3JtX2ltcG9ydGVkJ10gPSAnRm9ybSBJbXBvcnRhdG8uJzsKJGxhbmdbJ2Zvcm1faW1wb3J0X2ZhaWxlZCddID0gJ0Zvcm0gaW1wb3J0IGZhaWxlZCEgVGhlcmUgd2FzIGEgcHJvYmxlbSB3aXRoIHRoZSBmb3JtYXQgb2YgdGhlIFhNTCBmaWxlLic7CiRsYW5nWydyb3dzJ10gPSAnJXMgcmlnaGUnOwokbGFuZ1snY29scyddID0gJyVzIGNvbG9ubmUnOwokbGFuZ1snMTJfaG91ciddID0gJ0Zvcm1hdG8gMTIgb3JlJzsKJGxhbmdbJzI0X2hvdXInXSA9ICdGb3JtYXRvIDI0IG9yZSc7CiRsYW5nWydob3VyJ10gPSAnT3JlJzsKJGxhbmdbJ21pbiddID0gJ01pbnV0aSc7CiRsYW5nWydtZXJpZCddID0gJ01lcmlkaWFuJzsKJGxhbmdbJ2RhdGVfcmFuZ2UnXSA9ICdSYW5nZTogJXMgLSAlcyc7CiRsYW5nWyd0aGFua3MnXSA9ICdHcmF6aWUhIElsIHZvc3RybyBpbnNlcmltZW50byAmZWdyYXZlOyBzdGF0byByaWNldnV0by4nOwokbGFuZ1snZWRpdCddID0gJ01vZGlmaWNhJzsKJGxhbmdbJ2RlbGV0ZSddID0gJ0NhbmNlbGxhemlvbmUnOwokbGFuZ1snZGF5J10gPSAnR2lvcm5vJzsKJGxhbmdbJ21vbiddID0gJ01lc2UnOwokbGFuZ1sneWVhciddID0gJ0Fubm8nOwokbGFuZ1sndW5pbnN0YWxsZWQnXSA9ICdNb2R1bG8gZGlzaW5zdGFsbGF0by4nOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnVmVyc2lvbmUgbW9kdWxvICVzIGluc3RhbGxhdGEuJzsKJGxhbmdbJ3VwZ3JhZGVkJ10gPSAnTW9kdWxvIGFnZ2lvcm5hdG8gYWxsYSB2ZXJzaW9uZSAlcy4nOwokbGFuZ1snYnV0dG9uX3ByZXZpb3VzJ10gPSAnSW5kaWV0cm8uLi4nOwokbGFuZ1snYnV0dG9uX3N1Ym1pdCddID0gJ1N1Ym1pdCBGb3JtJzsKJGxhbmdbJ2J1dHRvbl9jb250aW51ZSddID0gJ0NvbnRpbnVhLi4uJzsKJGxhbmdbJ3ZhbHVlX2NoZWNrZWQnXSA9ICdDaGVja2VkJzsKJGxhbmdbJ3ZhbHVlX3VuY2hlY2tlZCddID0gJ1VuY2hlY2tlZCc7CiRsYW5nWyd0YWJfbWFpbiddID0gJ1ByaW5jaXBhbGUnOwokbGFuZ1sndGFiX3N5bWJvbCddID0gJ0Zvcm0gRGlzcGxheSBTZXR0aW5ncyc7CiRsYW5nWyd0YWJfc3VibWl0J10gPSAnRm9ybSBTdWJtaXNzaW9uJzsKJGxhbmdbJ3RhYl9jYXB0Y2hhJ10gPSAnQ2FwdGNoYSBTZXR0aW5ncyc7CiRsYW5nWyd0YWJfYWR2YW5jZWQnXSA9ICdDb25maWd1cmF6aW9uZSBhdmFuemF0ZSc7CiRsYW5nWyd0YWJfdGVtcGxhdGVsYXlvdXQnXSA9ICdNb2RlbGxvIEZvcm0nOwokbGFuZ1sndGFiX3N1Ym1pc3Npb250ZW1wbGF0ZSddID0gJ1N1Ym1pc3Npb24gVGVtcGxhdGUnOwokbGFuZ1snY2FudXNlX3NtYXJ0eSddID0gJzxlbT5TbWFydHkgdmFyaWFibGVzIGFyZSB2YWxpZCBpbiB0aGlzIGZpZWxkLjxlbT4nOwokbGFuZ1snYWRkX29wdGlvbnMnXSA9ICdBZGQgTW9yZSBPcHRpb25zJzsKJGxhbmdbJ2RlbGV0ZV9vcHRpb25zJ10gPSAnRGVsZXRlIE1hcmtlZCBPcHRpb25zJzsKJGxhbmdbJ2FkZF9jaGVja2JveGVzJ10gPSAnQWRkIE1vcmUgQ2hlY2tib3hlcyc7CiRsYW5nWydkZWxldGVfY2hlY2tib3hlcyddID0gJ0RlbGV0ZSBNYXJrZWQgQ2hlY2tib3hlcyc7CiRsYW5nWydhZGRfYWRkcmVzcyddID0gJ0FkZCBBbm90aGVyIEFkZHJlc3MnOwokbGFuZ1snZGVsZXRlX2FkZHJlc3MnXSA9ICdEZWxldGUgTWFya2VkIEFkZHJlc3Nlcyc7CiRsYW5nWydhZGRfZGVzdGluYXRpb24nXSA9ICdBZGQgQW5vdGhlciBEZXN0aW5hdGlvbic7CiRsYW5nWydkZWxldGVfZGVzdGluYXRpb24nXSA9ICdEZWxldGUgTWFya2VkIERlc3RpbmF0aW9ucyc7CiRsYW5nWydzdXNwZWN0ZWRfc3BhbSddID0gJ1RvbyBtYW55IGVtYWlscyBnZW5lcmF0ZWQgZnJvbSB5b3VyIElQIGFkZHJlc3MuIEFudGktU3BhbSBjb2RlIGhhcyBwcmV2ZW50ZWQgZGVsaXZlcnkuJzsKJGxhbmdbJ3N1c3BlY3RlZF9zcGFtX2xvZyddID0gJ1N1c3BlY3RlZCBzcGFtIGZyb20gSVAgJXMgc3RvcHBlZC4nOwokbGFuZ1sncmVvcmRlciddID0gJ1Jpb3JkaW5hIGNhbXBpJzsKJGxhbmdbJ2NhbmNlbCddID0gJ0NhbmNlbGxhJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcGF0aCddID0gJ0Rlc3RpbmF0aW9uIERpcmVjdG9yeSBmb3Igb3V0cHV0IGZpbGVzJzsKJGxhbmdbJ3RpdGxlX3VkdF9uYW1lJ10gPSAnVXNlciBEZWZpbmVkIFRhZyc7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2Rlc3RwYWdlJ10gPSAnUGFnZSB0byByZXR1cm4gdG8gd2l0aCB1cGxvYWRzIGxpbmsnOwokbGFuZ1sndGl0bGVfdXBsb2FkbW9kdWxlX3N1bW1hcnknXSA9ICdTdWJtaXR0ZWQgd2l0aCBmb3JtYnVpbGRlcic7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2NhdGVnb3J5J10gPSAnVXBsb2FkcyBjYXRlZ29yeSc7CiRsYW5nWyd0aXRsZV9zZW5kdG9fdXBsb2FkcyddID0gJ1NlbmQgdGhpcyBmaWxlIHRvIHRoZSB1cGxvYWRzIG1vZHVsZSc7CiRsYW5nWyd0aXRsZV9sZWdlbmQnXSA9ICdMZWdlbmRhJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fbGVuZ3RoJ10gPSAnTWF4aW11bSBMZW5ndGgnOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfbGFiZWwnXSA9ICdDaGVja2JveCBsYWJlbCc7CiRsYW5nWyd0aXRsZV9jaGVja2VkX3ZhbHVlJ10gPSAnVmFsdWUgd2hlbiBjaGVja2VkJzsKJGxhbmdbJ3RpdGxlX3VuY2hlY2tlZF92YWx1ZSddID0gJ1ZhbHVlIHdoZW4gbm90IGNoZWNrZWQuJzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2RldGFpbHMnXSA9ICdDaGVja2JveCBHcm91cCBEZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX2RlbGV0ZSddID0gJ0RlbGV0ZT8nOwokbGFuZ1sndGl0bGVfc2VsZWN0X29uZV9tZXNzYWdlJ10gPSAnJnF1b3Q7U2VsZWN0IE9uZSZxdW90OyBUZXh0JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl9kaXNwbGF5bmFtZSddID0gJ1NlbGVjdGlvbiBEaXNwbGF5IE5hbWUnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX3N1YmplY3QnXSA9ICdTZWxlY3Rpb24gU3ViamVjdCc7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9jb3VudHJ5J10gPSAnRGVmYXVsdCBTZWxlY3Rpb24nOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfc3RhdGUnXSA9ICdEZWZhdWx0IFNlbGVjdGlvbic7CiRsYW5nWyd0aXRsZV9vcHRpb25fbmFtZSddID0gJ09wdGlvbiBOYW1lJzsKJGxhbmdbJ3RpdGxlX29wdGlvbl92YWx1ZSddID0gJ1ZhbHVlIFN1Ym1pdHRlZCc7CiRsYW5nWyd0aXRsZV9wdWxsZG93bl9kZXRhaWxzJ10gPSAnUHVsbGRvd24gT3B0aW9ucyc7CiRsYW5nWyd0aXRsZV9tdWx0aXNlbGVjdF9kZXRhaWxzJ10gPSAnTXVsdGlzZWxlY3QgT3B0aW9ucyc7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9hZGRyZXNzJ10gPSAnRGVzdGluYXRpb24gRW1haWwgQWRkcmVzcyc7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9maWxlbmFtZSddID0gJ0Rlc3RpbmF0aW9uIEZpbGUgTmFtZSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9mcm9tX25hbWUnXSA9ICcmcXVvdDtGcm9tIG5hbWUmcXVvdDsgZm9yIGVtYWlsJzsKJGxhbmdbJ3RpdGxlX3JlbGF4ZWRfZW1haWxfcmVnZXgnXSA9ICdVc2UgcmVsYXhlZCBlbWFpbCB2YWxpZGF0aW9uJzsKJGxhbmdbJ3RpdGxlX3JlbGF4ZWRfcmVnZXhfbG9uZyddID0gJ1VzZSByZWxheGVkIGVtYWlsIGFkZHJlc3MgdmFsaWRhdGlvbiAoZS5nLiwgYWxsb3cgJnF1b3Q7eEB5JnF1b3Q7IGluc3RlYWQgb2YgcmVxdWlyaW5nICZxdW90O3hAeS50bGQmcXVvdDspJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fYWRkcmVzcyddID0gJyZxdW90O0Zyb20gYWRkcmVzcyZxdW90OyBmb3IgZW1haWwnOwokbGFuZ1sndGl0bGVfZW1haWxfZW5jb2RpbmcnXSA9ICdFbWFpbCBjaGFyYWN0ZXIgc2V0IGVuY29kaW5nJzsKJGxhbmdbJ3RpdGxlX2RpcmVjdG9yX2RldGFpbHMnXSA9ICdQdWxsZG93bi1iYXNlZCBFbWFpbGVyIERldGFpbHMnOwokbGFuZ1sndGl0bGVfZmlsZV9uYW1lJ10gPSAnTm9tZSBGaWxlJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX3N1YmplY3QnXSA9ICdFbWFpbCBTdWJqZWN0IExpbmUnOwokbGFuZ1sndGl0bGVfZm9ybV9uYW1lJ10gPSAnTm9tZSBGb3JtJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fc3RhdHVzJ10gPSAnRm9ybSBTdGF0dXMnOwokbGFuZ1sndGl0bGVfcmVhZHlfZm9yX2RlcGxveW1lbnQnXSA9ICdSZWFkeSBmb3IgRGVwbG95bWVudCc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkxJ10gPSAnTm9uIHByb250byc7CiRsYW5nWyd0aXRsZV9yZWRpcmVjdF9wYWdlJ10gPSAnUGFnZSB0byByZWRpcmVjdCB0byBhZnRlciBmb3JtIHN1Ym1pc3Npb24nOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MiddID0gJ1BsZWFzZSBhZGQgYSBmaWVsZCB0byB0aGUgZm9ybSBzbyB0aGF0IHRoZSB1c2VyJiMwMzk7cyBpbnB1dCBnZXRzIGhhbmRsZWQuIFlvdSBjYW4nOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5X2xpbmsnXSA9ICd1c2UgdGhpcyBzaG9ydGN1dCc7CiRsYW5nWyd0aXRsZV9mb3JtX2FsaWFzJ10gPSAnRm9ybSBBbGlhcyc7CiRsYW5nWyd0aXRsZV9mb3JtX2ZpZWxkcyddID0gJ0NhbXBpIEZvcm0nOwokbGFuZ1sndGl0bGVfZmllbGRfaWQnXSA9ICdJZCBjYW1wbyc7CiRsYW5nWyd0aXRsZV9maWVsZF9uYW1lJ10gPSAnTm9tZSBjYW1wbyc7CiRsYW5nWyd0aXRsZV9yYWRpb2dyb3VwX2RldGFpbHMnXSA9ICdSYWRpbyBCdXR0b24gR3JvdXAgRGV0YWlscyc7CiRsYW5nWyd0aXRsZV9maWVsZF90eXBlJ10gPSAnVGlwbyBjYW1wbyc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkzJ10gPSAndG8gY3JlYXRlIGEgZm9ybSBoYW5kbGluZyBmaWVsZC4nOwokbGFuZ1sndGl0bGVfYWRkX25ld19mb3JtJ10gPSAnQWRkIE5ldyBGb3JtJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbiddID0gJ1Nob3cgRm9ybSBCdWlsZGVyIFZlcnNpb24/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbl9sb25nJ10gPSAnVGhpcyB3aWxsIGVtYmVkIHlvdXIgaW5zdGFsbGVkIHZlcnNpb24gbnVtYmVyIG9mIEZvcm0gQnVpbGRlciBtb2R1bGUgaW4gYSBjb21tZW50LCB0byBhaWQgaW4gZGVidWdnaW5nJzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZmllbGQnXSA9ICdBZGQgTmV3IEZpZWxkJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fc3VibWl0X2J1dHRvbiddID0gJ0Zvcm0gU3VibWl0IEJ1dHRvbiBUZXh0JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5J10gPSAnQWRkIEphdmFzY3JpcHQgdG8gZmluYWwgU3VibWl0IEJ1dHRvbiB0aGF0IHdpbGwgaGVscCBwcmV2ZW50IG11bHRpcGxlIHN1Ym1pc3Npb25zPyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eV9oZWxwJ10gPSAnQWRkIHNhZmV0eSBzY3JpcHQnOwokbGFuZ1sndGl0bGVfZm9ybV9uZXh0X2J1dHRvbiddID0gJ0Zvcm0gJnF1b3Q7TmV4dCZxdW90OyBCdXR0b24gVGV4dCAodXNlZCBmb3IgbXVsdGlwYWdlIGZvcm1zKSc7CiRsYW5nWyd0aXRsZV9mb3JtX3ByZXZfYnV0dG9uJ10gPSAnRm9ybSAmcXVvdDtQcmV2aW91cyZxdW90OyBCdXR0b24gVGV4dCAodXNlZCBmb3IgbXVsdGlwYWdlIGZvcm1zKSc7CiRsYW5nWyd0aXRsZV9maWVsZF92YWxpZGF0aW9uJ10gPSAnRmllbGQgVmFsaWRhdGlvbic7CiRsYW5nWyd0aXRsZV9mb3JtX2Nzc19jbGFzcyddID0gJ0NTUyBDbGFzcyBmb3IgdGhpcyBmb3JtJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2Nzc19jbGFzcyddID0gJ0NTUyBDbGFzcyBmb3IgdGhpcyBmaWVsZCc7CiRsYW5nWyd0aXRsZV9mb3JtX3JlcXVpcmVkX3N5bWJvbCddID0gJ1N5bWJvbCB0byBtYXJrIHJlcXVpcmVkIEZpZWxkcyc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZCddID0gJ1JlcXVpcmVkJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2xvbmcnXSA9ICdSZXF1aXJlIGEgcmVzcG9uc2UgZm9yIHRoaXMgRmllbGQnOwokbGFuZ1sndGl0bGVfaGlkZV9sYWJlbCddID0gJ0hpZGUgTGFiZWwnOwokbGFuZ1sndGl0bGVfaGlkZV9sYWJlbF9sb25nJ10gPSAnSGlkZSB0aGlzIGZpZWxkJiMwMzk7cyBuYW1lIG9uIEZvcm0nOwokbGFuZ1sndGl0bGVfdGV4dCddID0gJ1N0YXRpYyB0ZXh0IHRvIGRpc3BsYXknOwokbGFuZ1sndGl0bGVfZmllbGRfcmVnZXgnXSA9ICdWYWxpZGF0aW9uIFJlZ2V4JzsKJGxhbmdbJ3RpdGxlX2xpbmVzX3RvX3Nob3cnXSA9ICdOdW1iZXIgb2YgTGluZXMgdG8gZGlzcGxheSc7CiRsYW5nWydub19kZWZhdWx0J10gPSAnTm8gRGVmYXVsdCc7CiRsYW5nWydyZWRpcmVjdF9hZnRlcl9hcHByb3ZhbCddID0gJ1BhZ2luYSBkb3ZlIHJlZGlyaWdlcmUgZG9wbyBsJiMwMzk7YXBwcm92YXppb25lJzsKJGxhbmdbJ3RpdGxlX3JlZ2V4X2hlbHAnXSA9ICdUaGlzIHJlZ3VsYXIgZXhwcmVzc2lvbiB3aWxsIG9ubHkgYmUgdXNlZCBpZiAmcXVvdDt2YWxpZGF0aW9uIHR5cGUmcXVvdDsgaXMgc2V0IHRvIGEgcmVnZXgtcmVsYXRlZCBvcHRpb24uIEluY2x1ZGUgYSBmdWxsIFBlcmwtc3R5bGUgcmVnZXgsIGluY2x1ZGluZyB0aGUgc3RhcnQvc3RvcCBzbGFzaGVzIGFuZCBmbGFncyAoZS5nLiwgJnF1b3Q7L2ltYWdlXC4oXGQrKS9pJnF1b3Q7KSc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9hYmJyZXYnXSA9ICdSZXEmIzAzOTtkJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzJ10gPSAnTm9zY29uZGkgZ2xpIEVycm9yaSc7CiRsYW5nWyd0aXRsZV9mb3JtX2Rpc3BsYXl0eXBlJ10gPSAnRm9ybSBEaXNwbGF5IFR5cGUnOwokbGFuZ1sndGl0bGVfaGlkZV9lcnJvcnNfbG9uZyddID0gJ1ByZXZlbnQgZGVidWcgLyBlcnJvciBtZXNzYWdlcyBmcm9tIGJlaW5nIHNlZW4gYnkgdXNlcnMuJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX3RlbXBsYXRlJ10gPSAnRW1haWwgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfbWF4aW11bV9zaXplJ10gPSAnRGltZW5zaW9uZSBtYXNzaW1hIGRlbCBmaWxlIGRpIHVwbG9hZCAoa2lsb2J5dGVzKSc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX3NpemVfbG9uZyddID0gJ1RoaXMgbGltaXRhdGlvbiBpcyBpbiBhZGRpdGlvbiB0byBhbnkgbGltaXRzIHNldCBieSB0aGUgcGhwIG9yIHdlYiBzZXJ2ZXIgY29uZmlndXJhdGlvbic7CiRsYW5nWyd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ0V4dGVuc2lvbmkgcGVybWVzc2UnOwokbGFuZ1sndGl0bGVfcGVybWl0dGVkX2V4dGVuc2lvbnNfbG9uZyddID0gJ0luc2VyaXJlIHVuYSBsaXN0YSBzZXBhcmF0YSBkYSB2aXJnb2xlLCBlc2NsdWRlbmRvIGkgcHVudGkgKGVzLiwgJnF1b3Q7anBnLGdpZixqcGVnJnF1b3Q7KS4gR2xpIHNwYXppIHNhcmFubm8gaWdub3JhdGkuIExhc2NpYW5kbyB2dW90byBzaWduaWZpY2EgY2hlIG5vbiBjaSBzYXJhbm5vIHJlc3RyaXppb25pLic7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zJ10gPSAnVmlzdWFsaXp6YXppb25lIHJpc3RyZXR0YT8nOwokbGFuZ1sndGl0bGVfc2hvd19saW1pdGF0aW9uc19sb25nJ10gPSAnRGlzcGxheSBhbnkgc2l6ZSBhbmQgZXh0ZW5zaW9uIHJlc3RyaWN0aW9ucyB3aXRoIHRoZSB1cGxvYWQgZmllbGQ/JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSB0byB1c2UgdG8gRGlzcGxheSBGb3JtJzsKJGxhbmdbJ3RpdGxlX3BhZ2VfeF9vZl95J10gPSAnUGFnZSAlcyBvZiAlcyc7CiRsYW5nWyd0aXRsZV9ub19hZHZhbmNlZF9vcHRpb25zJ10gPSAnRmllbGQgaGFzIG5vIGFkdmFuY2VkIG9wdGlvbnMuJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdW5zcGVjaWZpZWQnXSA9ICdUZXh0IHRvIHJldHVybiBmb3IgdW5zcGVjaWZpZWQgZmllbGQgdmFsdWVzJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9mYXN0YWRkX2xvbmcnXSA9ICdFbmFibGUgZmFzdCBmaWVsZCBhZGRpbmcgcHVsbGRvd24gZm9yIGZvcm1zPyc7CiRsYW5nWyd0aXRsZV9lbmFibGVfZmFzdGFkZCddID0gJ0VuYWJsZSBmYXN0IGZpZWxkIGFkZCBwdWxsZG93bj8nOwokbGFuZ1sndGl0bGVfZmFzdGFkZCddID0gJ0Zhc3QgZmllbGQgYWRkZXInOwokbGFuZ1sndGl0bGVfZW5hYmxlX2FudGlzcGFtX2xvbmcnXSA9ICdDbGlja2luZyB0aGlzIHdpbGwgb25seSBhbGxvdyAxMCBlbWFpbHMgdG8gYmUgdHJpZ2dlcmVkIGZyb20gYSBnaXZlbiBJUCBhZGRyZXNzIChwZXIgaG91cikuJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9hbnRpc3BhbSddID0gJ0VuYWJsZSBwcmltaXRpdmUgYW50aS1zcGFtIGZlYXR1cmVzPyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkaWRzJ10gPSAnTW9zdHJhIElEIGRlaSBjYW1waSc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkaWRzX2xvbmcnXSA9ICdDbGlja2luZyB0aGlzIHdpbGwgYWxsb3cgZGlzcGxheWluZyBmaWVsZCBpZHMgd2hlbiBhZGRpbmcgb3IgZWRpdGluZyBhIGZvcm0nOwokbGFuZ1sndGl0bGVfeG1sX3RvX3VwbG9hZCddID0gJ1VwbG9hZCBmb3JtIGZyb20gWE1MIGZpbGUnOwokbGFuZ1sndGl0bGVfeG1sX3VwbG9hZF9mb3JtbmFtZSddID0gJ1VzZSB0aGlzIGZvcm0gbmFtZSc7CiRsYW5nWyd0aXRsZV9pbXBvcnRfbGVnZW5kJ10gPSAnWE1MIEZvcm0gSW1wb3J0JzsKJGxhbmdbJ3RpdGxlX3htbF91cGxvYWRfZm9ybWFsaWFzJ10gPSAnVXNlIHRoaXMgZm9ybSBhbGlhcyc7CiRsYW5nWyd0aXRsZV9odG1sX2VtYWlsJ10gPSAnR2VuZXJhdGUgSFRNTCBlbWFpbD8nOwokbGFuZ1sndGl0bGVfbGlua19hdXRvcG9wdWxhdGUnXSA9ICdBdXRvbWF0aWNhbGx5IHBvcHVsYXRlPyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZV9oZWxwJ10gPSAnQXV0b21hdGljYWxseSBwb3B1bGF0ZSB3aXRoIHRoZSBVUkwgb2YgdGhlIHBhZ2UgY29udGFpbmluZyB0aGUgZm9ybT8gKHRoaXMgb3ZlcnJpZGVzIHNpdGUgcGFnZSBsaW5rIG9wdGlvbiBiZWxvdyknOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9saW5rJ10gPSAnRGVmYXVsdCBsaW5rIFVSTCc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2xpbmtfdGl0bGUnXSA9ICdEZWZhdWx0IGxpbmsgdGV4dCc7CiRsYW5nWyd0aXRsZV9saW5rX3RvX3NpdGVwYWdlJ10gPSAnTGluayBhZCB1bmEgcGFnaW5hIGRlbCBzaXRvJzsKJGxhbmdbJ3RpdGxlX2NhcHRjaGFfbm90X2luc3RhbGxlZCddID0gJ1lvdSBjYW4gdXNlIDxhIGhyZWY9JnF1b3Q7aHR0cDovL3d3dy53aWtpcGVkaWEub3JnL3dpa2kvQ2FwdGNoYSZxdW90OyB0YXJnZXQ9JnF1b3Q7X25ldyZxdW90Oz4mcXVvdDtDYXB0Y2hhJnF1b3Q7PC9hPiB0byBwcm90ZWN0IGZvcm0gc3VibWlzc2lvbnMgaWYgeW91IGluc3RhbGwgdGhlIENhcHRjaGEgbW9kdWxlLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgPGEgaHJlZj0mcXVvdDtodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2NhcHRjaGEvJnF1b3Q7PmNoZWNrIHRoZSBDYXB0Y2hhIHByb2plY3Q8L2E+Lic7CiRsYW5nWyd0aXRsZV91c2VfY2FwdGNoYSddID0gJ1VzZSBDYXB0Y2hhIHRvIHByb3RlY3QgZm9ybSBzdWJtaXNzaW9ucz8nOwokbGFuZ1sndGl0bGVfdXNlX2NhcHRjaGFfaGVscCddID0gJ0NoZWNrIGhlcmUgdG8gcHJvdGVjdCB5b3VyIGZvcm0gd2l0aCBhIDxhIGhyZWY9JnF1b3Q7aHR0cDovL3d3dy53aWtpcGVkaWEub3JnL3dpa2kvQ2FwdGNoYSZxdW90OyB0YXJnZXQ9JnF1b3Q7X25ldyZxdW90Oz4mcXVvdDtDYXB0Y2hhJnF1b3Q7PC9hPi4nOwokbGFuZ1sndGl0bGVfdXNlcl9jYXB0Y2hhJ10gPSAnUGxlYXNlIGNvbmZpcm0gdGhhdCB5b3UgYXJlIG5vdCBhIHNjcmlwdCBieSBlbnRlcmluZyB0aGUgbGV0dGVycyBmcm9tIHRoZSBpbWFnZS4nOwokbGFuZ1sndGl0bGVfdXNlcl9jYXB0Y2hhX2Vycm9yJ10gPSAnRmFpbGVkIHRleHQgZm9yIENhcHRjaGEnOwokbGFuZ1snd3JvbmdfY2FwdGNoYSddID0gJ0NhcHRjaGEgd2FzIG5vdCBjb3JyZWN0Lic7CiRsYW5nWyd0aXRsZV90aXRsZV91c2VyX2NhcHRjaGEnXSA9ICdIZWxwIHRleHQgZm9yIENhcHRjaGEnOwokbGFuZ1snbGlua19sYWJlbCddID0gJ0xpbmsgTGFiZWwnOwokbGFuZ1snbGlua19kZXN0aW5hdGlvbiddID0gJ0xpbmsgRGVzdGluYXRpb24gVVJMJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfc2V0J10gPSAnQ2hlY2tlZCBieSBEZWZhdWx0Pyc7CiRsYW5nWyd0aXRsZV8yNF9ob3VyJ10gPSAnVXRpbGl6em8gZm9ybWF0byAyNC1vcmU/JzsKJGxhbmdbJ3RpdGxlX2JlZm9yZV9ub29uJ10gPSAnQU0nOwokbGFuZ1sndGl0bGVfYWZ0ZXJfbm9vbiddID0gJ1BNJzsKJGxhbmdbJ3RpdGxlX3NtYXJ0eV9ldmFsJ10gPSAnUHJvY2VzcyBzbWFydHkgdGFncyB3aXRoaW4gZmllbGQ/JzsKJGxhbmdbJ3RpdGxlX3RleHRhcmVhX3Jvd3MnXSA9ICdSaWdoZSAobm90YTogcHUmb2dyYXZlOyBlc3NlcmUgc292cmFzY3JpdHRvIHZpYSBTdGlsZSBDU1MpJzsKJGxhbmdbJ3RpdGxlX3RleHRhcmVhX2NvbHMnXSA9ICdDb2xvbm5lIChub3RhOiBwdSZvZ3JhdmU7IGVzc2VyZSBzb3ZyYXNjcml0dG8gdmlhIFN0aWxlIENTUyknOwokbGFuZ1sndGl0bGVfZm9ybV9tYWluJ10gPSAnTWFpbiBGb3JtIERldGFpbHMnOwokbGFuZ1snaGVscF9sZWF2ZWVtcHR5J10gPSAnUXVlc3RvIGNhbXBvIHB1Jm9ncmF2ZTsgZXNzZXJlIGxhc2NpYXRvIHZ1b3RvJzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVzX2Zvcl90ZW1wbGF0ZSddID0gJ1ZhcmlhYmlsaSBwZXIgVGVtcGxhdGUnOwokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX2NvbXB1dGF0aW9uJ10gPSAnVmFyaWFiaWxpIHV0aWxpenphYmlsaSc7CiRsYW5nWydoZWxwX3BocF92YXJpYWJsZV9uYW1lJ10gPSAndmFyaWFiaWxlIFBIUCc7CiRsYW5nWydoZWxwX3N1Ym1pc3Npb25fZGF0ZSddID0gJ0RhdGEgZGkgSW52aW8nOwokbGFuZ1snaGVscF9zZXJ2ZXJfbmFtZSddID0gJ1Zvc3RybyBzZXJ2ZXInOwokbGFuZ1snaGVscF9zdWJfc291cmNlX2lwJ10gPSAnSW5kaXJpenpvIElQIGRlbGxhIHBlcnNvbmEgY2hlIHN0YSB1c2FuZG8gaWwgZm9ybSc7CiRsYW5nWydoZWxwX3N1Yl91cmwnXSA9ICdVUkwgb2YgcGFnZSBjb250YWluaW5nIGZvcm0nOwokbGFuZ1snaGVscF9vdGhlcl9maWVsZHMnXSA9ICdBbHRlcm5hdGUgZmllbGQgbmFtZXMgY2FuIGJlIHVzZWQgaW50ZXJjaGFuZ2VhYmx5IChlc3BlY2lhbGx5IHVzZWZ1bCBpZiBTbWFydHkgaXMgY2hva2luZyBvbiBjaGFyYWN0ZXJzIG91dHNpZGUgb2YgQVNDSUkgMzItMTI2KS4gPGJyIC8+T3RoZXIgZmllbGRzIHdpbGwgYmUgYXZhaWxhYmxlIGFzIHlvdSBhZGQgdGhlbSB0byB0aGUgZm9ybS4nOwokbGFuZ1snaGVscF9hcnJheV9maWVsZHMnXSA9ICdGaWVsZHMgdGhhdCBoYXZlIG11bHRpcGxlIHZhbHVlcyBtYXkgYWxzbyBiZSBhY2Nlc3NlZCB2aWEgdGhlIHNtYXJ0eSB2YWx1ZSBvZiAkZmllbGRuYW1lX2FycmF5IG9yICRmbGRfI19hcnJheS4nOwokbGFuZ1snaGVscF9kYXRlX2Zvcm1hdCddID0gJ1NlZSA8YSBocmVmPSZxdW90O2h0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24uZGF0ZS5waHAmcXVvdDsgdGFyZ2V0PV9ORVc+dGhlIFBIUCBNYW51YWw8L2E+IGZvciBmb3JtYXR0aW5nIGhlbHAuJzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVfbmFtZSddID0gJ1ZhcmlhYmlsZSc7CiRsYW5nWydoZWxwX2Zvcm1fZmllbGQnXSA9ICdGaWVsZCBSZXByZXNlbnRlZCc7CiRsYW5nWydsaW5rX2JhY2tfdG9fZm9ybSddID0gJyZsYXF1bzsgSW5kaWV0cm8gYWwgRm9ybSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX3RlbXBsYXRlJ10gPSAnQ3JlYXRlIFNhbXBsZSBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2h0bWxfdGVtcGxhdGUnXSA9ICdDcmVhdGUgU2FtcGxlIEhUTUwgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9oZWFkZXInXSA9ICdDcmVhdGUgU2FtcGxlIEhlYWRlcic7CiRsYW5nWydoZWxwX3RhYl9zeW1ib2wnXSA9ICd1biBjYXJhdHRlcmUgdGFidWxhdG9yZSc7CiRsYW5nWyd0aXRsZV9maWxlX3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgZm9yIG9uZSBsaW5lIG9mIG91dHB1dCBmaWxlJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfaGVhZGVyJ10gPSAnVGVtcGxhdGUgZm9yIHRoZSBoZWFkZXIgb2Ygb3V0cHV0IGZpbGUnOwokbGFuZ1sndGl0bGVfY29uZmlybWF0aW9uX3VybCddID0gJ1VSTCB0byBjbGljayBmb3IgZm9ybSBjb25maXJtYXRpb24nOwokbGFuZ1sndGl0bGVfdmFsdWUnXSA9ICdWYWx1ZSAoc2VlIEFkdmFuY2VkIFRhYiBpZiB5b3UgdXNlIFNtYXJ0eSB0YWdzKSc7CiRsYW5nWyd0aXRsZV9kYXRlX2Zvcm1hdCddID0gJ0RhdGUgRm9ybWF0IChzdGFuZGFyZCA8YSBocmVmPSZxdW90O2h0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24uZGF0ZS5waHAmcXVvdDs+UEhQIERhdGUgRm9ybWF0czwvYT4pJzsKJGxhbmdbJ3RpdGxlX3VzZV93eXNpd3lnJ10gPSAnVXNlIFdZU0lXWUcgZWRpdG9yIGZvciB0ZXh0IEFyZWEgKEFkbWluIHNpZGUgb25seSk/JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9hY3Rpb25zJ10gPSAnRm9ybSBTdWJtaXNzaW9uIEJlaGF2aW9yJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9sYWJlbHMnXSA9ICdTdWJtaXNzaW9uIEJ1dHRvbiBMYWJlbHMnOwokbGFuZ1sndGl0bGVfc3VibWl0X2hlbHAnXSA9ICdUaGlzIHBhZ2UgbGV0cyB5b3UgY3VzdG9taXplIEZvcm0gU3VibWlzc2lvbi4gSXQgZG9lc24mIzAzOTt0IGRldGVybWluZSB3aGF0IHRoZSBGb3JtIEJ1aWxkZXIgZG9lcyB3aXRoIHRoZSBzdWJtaXR0ZWQgZGF0YS4gWW91IGNhbiBzZXQgdGhhdCB1cCBieSBhZGRpbmcgJnF1b3Q7RGlzcG9zaXRpb24mcXVvdDsgZmllbGRzIHRvIHlvdXIgZm9ybS4nOwokbGFuZ1sndGl0bGVfc3RhcnRfeWVhciddID0gJ1BhcnRlbnphIGRlbGwmIzAzOTtpbnRlcnZhbGxvIEFubm8nOwokbGFuZ1sndGl0bGVfZW5kX3llYXInXSA9ICdGaW5lIGRlbGwmIzAzOTtpbnRlcnZhbGxvIEFubm8nOwokbGFuZ1sndGl0bGVfZGVmYXVsdF95ZWFyJ10gPSAnQW5ubyBwcmVkZWZpbml0byc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3llYXJfaGVscCddID0gJyhTZXR0YSBhIC0xIGFmZmluY2gmZWdyYXZlOyBsJiMwMzk7YW5ubyBwcmVkZWZpbml0byBzaWEgcXVlbGxvIGNvcnJlbnRlKSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYWN0aW9uJ10gPSAnRG9wbyBjaGUgaWwgZm9ybSAmZWdyYXZlOyBpbnZpYXRvJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9yZXNwb25zZSddID0gJ1Jpc3VsdGF0byBkYSB2aXN1YWxpenphcmUnOwokbGFuZ1snZGlzcGxheV90ZXh0J10gPSAnRGlzcGxheSAmcXVvdDtTdWJtaXNzaW9uIFRlbXBsYXRlJnF1b3Q7JzsKJGxhbmdbJ3JlZGlyZWN0X3RvX3BhZ2UnXSA9ICdSZWRpcmlnZSBhZCB1bmEgcGFnaW5hIGRlbCBzaXRvJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9yZXNwb25zZV9oZWxwJ10gPSAnVGhpcyB0ZW1wbGF0ZSBpcyBmb3IgZGlzcGxheSB0byB0aGUgdXNlciBhZnRlciB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQuIFRoaXMgdGVtcGxhdGUgZG9lcyBub3QgZWZmZWN0IGVtYWlscyBnZW5lcmF0ZWQgb3Igb3RoZXIgZm9ybSBkaXNwb3NpdGlvbnMgLS0geW91IHNldCB0aG9zZSB0ZW1wbGF0ZXMgKHdoZXJlIGFwcHJvcHJpYXRlKSBpbiB0aGUgJnF1b3Q7YWR2YW5jZWQmcXVvdDsgdGFiIGZvciB0aG9zZSBkaXNwb3NpdGlvbiBmaWVsZHMuJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX3BhZ2UnXSA9ICdQYWdpbmEgZGkgZGVzdGluYXppb25lJzsKJGxhbmdbJ3RpdGxlX3JlcXVpcmVfZmllbGRuYW1lcyddID0gJ05vbWUgZGVsIGNhbXBvIHJpY2hpZXN0byc7CiRsYW5nWyd0aXRsZV9yZXF1aXJlX2ZpZWxkbmFtZXNfbG9uZyddID0gJ0kgY2FtcGkgcmljaGllc3RpIGhhbm5vIHVuIG5vbWU/JzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWVsZG5hbWVzJ10gPSAnTm9tZSBkZWwgY2FtcG8gcmljaGllc3RvIHVuaXZvY28nOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXNfbG9uZyddID0gJ0kgY2FtcGkgcmljaGllc3RpIGhhbm5vIHVuIG5vbWUgdW5pdm9jbz8nOwokbGFuZ1sndGl0bGVfcmVvcmRlcl9mb3JtJ10gPSAnUmlvcmRpbmEgaSBjYW1waSc7CiRsYW5nWyd0aXRsZV9sb2FkX3RlbXBsYXRlJ10gPSAnQ2FyaWNhIFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2FkZF9idXR0b25fdGV4dCddID0gJ0FnZ2l1bmdlcmUgdW4gYm90dG9uZSB0ZXN0dWFsZSc7CiRsYW5nWyd0aXRsZV9kZWxfYnV0dG9uX3RleHQnXSA9ICdUZXN0byBkZWwgYm90dG9uZSBkaSBDYW5jZWxsYXppb25lJzsKJGxhbmdbJ3RpdGxlX3N0cmluZ19vcl9udW1iZXJfZXZhbCddID0gJ0ludGVycHJldCB2YXJpYWJsZXMgYXMgYmVpbmcgbnVtYmVycyBvciBzdHJpbmdzJzsKJGxhbmdbJ3RpdGxlX29yZGVyJ10gPSAnSW50ZXJwcmV0YXRpb24gT3JkZXInOwokbGFuZ1sndGl0bGVfb3JkZXJfaGVscCddID0gJ0lmIG1vcmUgdGhhbiBvbmUgQ29tcHV0ZWQgRmllbGQgZXhpc3RzLCB0aGV5IHdpbGwgYmUgY29tcHV0ZWQgZnJvbSBsb3dlc3Qgb3JkZXIgbnVtYmVyIHRvIGhpZ2hlc3Qgb3JkZXIgbnVtYmVyJzsKJGxhbmdbJ3RpdGxlX2NvbXB1dGVfdmFsdWUnXSA9ICdWYWx1cmUgZGEgY2FsY29sYXJlJzsKJGxhbmdbJ3RpdGxlX3N0cmluZyddID0gJ1N0cmluZ2EnOwokbGFuZ1sndGl0bGVfbnVtZXJpYyddID0gJ051bWVyaWNvJzsKJGxhbmdbJ2RlZmF1bHRfdGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSBwcmVkZWZpbml0byc7CiRsYW5nWyd0YWJsZV9sZWZ0X3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgY29uIHRhYmVsbGUsIFRpdG9saSBzdWxsYSBzaW5pc3RyYSc7CiRsYW5nWyd0YWJsZV90b3BfdGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSBjb24gdGFiZWxsZSwgVGl0b2xvIGluIHRlc3RhJzsKJGxhbmdbJ2Zvcm1fdGVtcGxhdGVfbmFtZSddID0gJ1RlbXBsYXRlIGRhICVzJzsKJGxhbmdbJ3RlbXBsYXRlX2FyZV95b3Vfc3VyZSddID0gJ1NpZXRlIHNpY3VyaSBkaSB2b2xlciBzb3ZyYXNjcml2ZXJlIGlsIHZvc3RybyBNb2RlbGxvIGNvbiBxdWVsbG8gc2VsZXppb25hdG8/IChBbmNoZSBkaWNlbmRvIFMmaWdyYXZlOywgZG92ZXRlIHNhbHZhcmUgaWwgY2FtYmlhbWVudG8pJzsKJGxhbmdbJ3RpdGxlX2JhZF9mdW5jdGlvbiddID0gJ0Vycm9yIHdoZW4gY29tcHV0aW5nICZxdW90OyVzJnF1b3Q7Lic7CiRsYW5nWydub19yZWZlcnJlcl9pbmZvJ10gPSAnTmVzc3VuYSBpbmZvcm1hemlvbmUgSFRUUF9SRUZFUkVSIHV0aWxpenphYmlsZSAocHJvYmFiaWxtZW50ZSBkb3Z1dGEgYWxsJiMwMzk7dXNvIGRlbGxhIFZhbGlkYXppb25lIEVtYWlsIFV0YW50ZSknOwokbGFuZ1sndmFsaWRhdGlvbl9wYXJhbV9lcnJvciddID0gJ0Vycm9yZSBkaSB2YWxpZGF6aW9uZSBQYXJhbWV0cm8uIFNpIHByZWdhIGRpIGNvbnRyb2xsYXJlIGwmIzAzOTtlc2F0dGV6emEgZGVsbGEgY29waWEgZGVsbCYjMDM5O2luZGlyaXp6byBVUkwgZGFsbGEgdm9zdHJhIGVtYWlsISc7CiRsYW5nWyd2YWxpZGF0aW9uX3Jlc3BvbnNlX2Vycm9yJ10gPSAnRXJyb3JlIGRpIHZhbGlkYXppb25lIG5lbGxhIHJpc3Bvc3RhLiBTaSBwcmVnYSBkaSBjb250cm9sbGFyZSBsJiMwMzk7ZXNhdHRlenphIGRlbGxhIGNvcGlhIGRlbGwmIzAzOTtpbmRpcml6em8gVVJMIGRhbGxhIHZvc3RyYSBlbWFpbCEnOwokbGFuZ1sndmFsaWRhdGlvbl9ub19maWVsZF9lcnJvciddID0gJ0Vycm9yZSBkaSB2YWxpZGF6aW9uZSBuZWxsYSByaXNwb3N0YS4gTmVzc3VuIGNhbXBvIGVtYWlsIHZhbGlkYXRvIGluIHF1ZXN0byBmb3JtISc7CiRsYW5nWyd1cGdyYWRlMDN0bzA0J10gPSAnRm9ybSBUZW1wbGF0ZSB3YXMgdXBkYXRlZCBhdXRvbWF0aWNhbGx5IGFzIHBhcnQgb2YgdGhlIHZlcnNpb24gMC4zIHRvIHZlcnNpb24gMC40IHVwZ3JhZGUuIFlvdSBtYXkgbmVlZCB0byBtYWtlIHNvbWUgZml4ZXMuIElmIHlvdSYjMDM5O3JlIHVzaW5nIHRoZSBkZWZhdWx0IGZvcm0sIHNpbXBseSByZXBsYWNlIHRoaXMgdGVtcGxhdGUgd2l0aCAmcXVvdDtkZWZhdWx0JnF1b3Q7IHVzaW5nIHRoZSBwdWxsZG93biBhYm92ZS4nOwokbGFuZ1snYWRtaW5kZXNjJ10gPSAnQWdnaXVuZ2VyZSwgbW9kaWZpY2FyZSBlIGdlc3RpcmUgZm9ybSBpbnRlcmF0dGl2aSc7CiRsYW5nWydvcGVyYXRvcnNfaGVscCddID0gJ0lmIHlvdSB1c2UgU3RyaW5nIGV2YWx1YXRpb24sIHRoZSBvbmx5IG9wZXJhdGlvbiBhdmFpbGFibGUgaXMgY29uY2F0ZW5hdGlvbiAoKyksIHdoaWxlIGlmIHlvdSB1c2UgTnVtYmVyIGV2YWx1YXRpb24geW91IGhhdmUgYmFzaWMsIHZlcnkgc2ltcGxlIG1hdGggKCssIC0sICosIC8pJzsKJGxhbmdbJ2RhdGVfamFudWFyeSddID0gJ0dlbm5haW8nOwokbGFuZ1snZGF0ZV9mZWJydWFyeSddID0gJ0ZlYmJyYWlvJzsKJGxhbmdbJ2RhdGVfbWFyY2gnXSA9ICdNYXJ6byc7CiRsYW5nWydkYXRlX2FwcmlsJ10gPSAnQXByaWxlJzsKJGxhbmdbJ2RhdGVfbWF5J10gPSAnTWFnZ2lvJzsKJGxhbmdbJ2RhdGVfanVuZSddID0gJ0dpdWdubyc7CiRsYW5nWydkYXRlX2p1bHknXSA9ICdMdWdsaW8nOwokbGFuZ1snZGF0ZV9hdWd1c3QnXSA9ICdBZ29zdG8nOwokbGFuZ1snZGF0ZV9zZXB0ZW1iZXInXSA9ICdTZXR0ZW1icmUnOwokbGFuZ1snZGF0ZV9vY3RvYmVyJ10gPSAnT3R0b2JyZSc7CiRsYW5nWydkYXRlX25vdmVtYmVyJ10gPSAnTm92ZW1icmUnOwokbGFuZ1snZGF0ZV9kZWNlbWJlciddID0gJ0RpY2VtYnJlJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3InXSA9ICdTcGlhY2VudGUhIEMmIzAzOTsmZWdyYXZlOyBzdGF0byB1biBlcnJvcmUgbmVsbCYjMDM5O2ludmlvIGRlbCBmb3JtLic7CiRsYW5nWydzdWJtaXRfZXJyb3InXSA9ICdGb3JtQnVpbGRlciBlcnJvcmUgZGkgaW52aW86ICVzJzsKJGxhbmdbJ3VwbG9hZHNfZXJyb3InXSA9ICdFcnJvcmUgbmVsIGZpbGUgcGFzc2F0byBhbCBtb2R1bG8gVXBsb2FkczogJXMnOwokbGFuZ1snbm91cGxvYWRzX2Vycm9yJ10gPSAnTm9uIHRyb3ZvIGlsIG1vZHVsbyBVcGxvYWRzJzsKJGxhbmdbJ3VwbG9hZF9hdHRhY2hfZXJyb3InXSA9ICdFcnJvcmUgbmVsIFVwbG9hZC9BbGxlZ2F0byBzdWwgZmlsZSAlcyAodG1wX25hbWU6ICVzLCBkaSB0aXBvICVzKSc7CiRsYW5nWydzdWJtaXNzaW9uX2Vycm9yX2ZpbGVfbG9jayddID0gJ0Vycm9yZS4gTm9uIHJpZXNjbyBhZCBvdHRlbmVyZSB1biBsb2NrIHBlciBpbCBmaWxlLic7CiRsYW5nWydlbWFpbF9kZWZhdWx0X3RlbXBsYXRlJ10gPSAnRm9ybUJ1aWxkZXIgU3VibWlzc2lvbic7CiRsYW5nWydlbWFpbF90ZW1wbGF0ZV9ub3Rfc2V0J10gPSAnPGJyIC8+TW9kZWxsbyBwZXIgRW1haWwgbm9uIGFuY29yYSBzZXR0YXRvISc7CiRsYW5nWydtaXNzaW5nX2Ntc19tYWlsZXInXSA9ICdGb3JtQnVpbGRlcjogbm9uIHBvc3NvIHRyb3ZhcmUgaWwgbW9kdWxvIHJpY2hpZXN0byBDTVNNYWlsZXIhJzsKJGxhbmdbJ3VzZXJfYXBwcm92ZWRfc3VibWlzc2lvbiddID0gJ1VzZXIgYXBwcm92ZWQgc3VibWlzc2lvbiAlcyBmcm9tICVzJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXSA9ICdFdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddID0gJ0V2ZW50IHRyaWdnZXJlZCBpZiB0aGVyZSBpcyBhbiBlcnJvciB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXSA9ICdFdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgZGlzcGxheWVkJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXSA9ICc8cD5FdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkLjwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBUaGUgZm9ybSBuYW1lIChzdHJpbmcpPC9saT4NCjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gVGhlIGludGVybmFsIGZvcm0gaWQgKGludCk8L2xpPg0KPGxpPjxlbT52YWx1ZV88bmFtZT48L2VtPiAtIFN1cHBseSBhIGRlZmF1bHQgdmFsdWUgdG8gYSBmaWVsZCB3aXRoIHRoZSBzcGVjaWZpZWQgbmFtZS48L2xpPg0KPC91bD4gJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddID0gJzxwPkV2ZW50IHRyaWdnZXJlZCBpZiB0aGVyZSBpcyBhbiBlcnJvciB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQ8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gVGhlIGZvcm0gbmFtZSAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4NCjxsaT48ZW0+ZXJyb3I8L2VtPiAtIEEgbGlzdCBvZiBhbGwga25vd24gZXJyb3JzIChzdHJpbmcpPC9saT4NCjwvdWw+ICc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtRGlzcGxheSddID0gJzxwPkV2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBkaXNwbGF5ZWQ8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gVGhlIGZvcm0gbmFtZSAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4NCjwvdWw+ICc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfcmVzcG9uc2VfaWQnXSA9ICdSZXNwb25zZSBJRC4gVXNlZCBieSBGb3JtQnJvd3Nlcic7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfcGFzc2VkX2Zyb21fdGFnJ10gPSAnRGVmYXVsdCBmaWVsZCB2YWx1ZXM7IHNlZSBtb2R1bGUgaGVscCc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZmllbGRfaWQnXSA9ICdGaWVsZCBJRCBmb3IgaW50ZXJuYWwgb3BlcmF0aW9ucyc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZm9ybV9uYW1lJ10gPSAnTm9tZSBGb3JtJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19mb3JtX2lkJ10gPSAnSUQgRm9ybSBwZXIgb3BlcmF6aW9uaSBpbnRlcm5lJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19nZW5lcmFsJ10gPSAnR2VuZXJhbCBwYXJhbWV0ZXJzIGZvciBpbnRlcm5hbCBvcGVyYXRpb25zJzsKJGxhbmdbJ3RlbXBsYXRlX3ZhcmlhYmxlX2hlbHAnXSA9ICc8aDM+Rm9ybSBUZW1wbGF0ZSBWYXJpYWJsZXM8L2gzPg0KPHA+WW91IGNhbiBlZGl0IGl0IHRvIG1ha2UgeW91ciBmb3JtIGxheW91dCBsb29rIGFueSB3YXkgeW91JiMwMzk7ZCBsaWtlLg0KICAgVG8gbWFrZSB0aGUgZm9ybSB3b3JrLCB5b3UmIzAzOTtsbCBuZWVkIHRvIGFsd2F5cyBpbmNsdWRlIHRoZSB7JGZiX2hpZGRlbn0gYW5kIHskc3VibWl0fQ0KICAgdGFncy48L3A+DQoNCjxwPllvdSBjYW4gYWNjZXNzIHlvdXIgZm9ybSBmaWVsZHMgZWl0aGVyIHVzaW5nIHRoZSAkZmllbGRzIGFycmF5IG9yIGJ5IGRpcmVjdGx5IGFjY2Vzc2luZyBmaWVsZHMgYnkgdGhlaXIgbmFtZXMgKGUuZy4sIHskbXlmaWVsZC0+aW5wdXR9ICk8L3A+DQoNCg0KPHA+RWFjaCBmaWVsZCBoYXMgdGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzOjwvcD4NCjx0YWJsZT4NCjx0cj48dGg+RmllbGQ8L3RoPjx0aD5WYWx1ZTwvdGg+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmRpc3BsYXk8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBzaG91bGQgYmUgZGlzcGxheWVkLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPnJlcXVpcmVkPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgaXMgcmVxdWlyZWQsIDAgb3RoZXJ3aXNlPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+cmVxdWlyZWRfc3ltYm9sPC90ZD48dGQ+dGhlIHN5bWJvbCBmb3IgcmVxdWlyZWQgZmllbGRzPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+Y3NzX2NsYXNzPC90ZD48dGQ+dGhlIENTUyBjbGFzcyBzcGVjaWZpZWQgZm9yIHRoaXMgZmllbGQ8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT52YWxpZDwvdGQ+PHRkPjEgaWYgdGhpcyBmaWVsZCBoYXMgcGFzc2VkIHZhbGlkYXRpb24sIDAgb3RoZXJ3aXNlPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+ZXJyb3I8L3RkPjx0ZD5UZXh0IG9mIHRoZSB2YWxpZGF0aW9uIHByb2JsZW0sIGluIHRoZSBldmVudCB0aGF0IHRoaXMgZmllbGQgZGlkIG5vdCB2YWxpZGF0ZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmhpZGVfbmFtZTwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIG5hbWUgc2hvdWxkIGJlIGhpZGRlbiwgMCBvdGhlcndpc2U8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5oYXNfbGFiZWw8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCB0eXBlIGhhcyBhIGxhYmVsPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+bmVlZHNfZGl2PC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgbmVlZHMgdG8gYmUgd3JhcHBlZCBpbiBhIERJViAob3IgdGFibGUgcm93LCBpZiB0aGF0JiMwMzk7cyB0aGUgd2F5IHlvdSBzd2luZyk8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5uYW1lPC90ZD48dGQ+dGhlIGZpZWxkJiMwMzk7cyBuYW1lPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aW5wdXQ8L3RkPjx0ZD50aGUgZmllbGQmIzAzOTtzIGlucHV0IGNvbnRyb2wgKGUuZy4sIHRoZSBpbnB1dCBmaWVsZCBpdHNlbGYpPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+b3A8L3RkPjx0ZD5hIGNvbnRyb2wgYnV0dG9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgZmllbGQgaWYgYXBwbGljYWJsZSAoZS5nLiwgdGhlIGRlbGV0ZSBidXR0b24gZm9yIGV4cGFuZGFibGUgdGV4dCBpbnB1dCk8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5pbnB1dF9pZDwvdGQ+PHRkPnRoZSBJRCBvZiB0aGUgZmllbGQmIzAzOTtzIGlucHV0ICh1c2VmdWwgZm9yIDxsYWJlbCBmb3I9JnF1b3Q7JnF1b3Q7Pik8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT50eXBlPC90ZD48dGQ+dGhlIGZpZWxkJiMwMzk7cyBkYXRhIHR5cGU8L3RkPjwvdHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KPHRyPjx0ZD5maWVsZC0+bXVsdGlwbGVfcGFydHM8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYSBjb2xsZWN0aW9uIG9mIGNvbnRyb2xzPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+bGFiZWxfcGFydHM8L3RkPjx0ZD4xIGlmIHRoZSBjb2xsZWN0aW9uIG9mIGNvbnRyb2xzIGhhcyBzZXBhcmF0ZSBsYWJlbHMgZm9yIGVhY2ggY29udHJvbDwvdGQ+PC90cj4NCjwvdGFibGU+DQoNCjxwPkluIGNlcnRhaW4gY2FzZXMsIGZpZWxkLT5pbnB1dCBpcyBhY3R1YWxseSBhbiBhcnJheSBvZiBvYmplY3RzIHJhdGhlciB0aGFuIGFuIGlucHV0LiBUaGlzIGhhcHBlbnMsIGZvciBleGFtcGxlLCBpbiBDaGVja0JveEdyb3VwcyBvciBSYWRpb0J1dHRvbkdyb3Vwcy4gRm9yIHRoZW0sIHlvdSBjYW4gaXRlcmF0ZSB0aHJvdWdoIGZpZWxkLT5pbnB1dC0+bmFtZSBhbmQgZmllbGQtPmlucHV0LT5pbnB1dHMuPC9wPg0KICAgIA0KPHA+QWRkaXRpb25hbCBzbWFydHkgdmFyaWFibGVzIHRoYXQgeW91IGNhbiB1c2UgaW5jbHVkZTo8L3A+DQo8dGFibGU+DQo8dHI+PHRoPlZhcmlhYmxlPC90aD48dGg+VmFsdWU8L3RoPjwvdHI+DQo8dHI+PHRkPnRvdGFsX3BhZ2VzPC90ZD48dGQ+bnVtYmVyIG9mIHBhZ2VzIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD50aGlzX3BhZ2U8L3RkPjx0ZD5udW1iZXIgZm8gdGhlIGN1cnJlbnQgcGFnZSBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+dGl0bGVfcGFnZV94X29mX3k8L3RkPjx0ZD5kaXNwbGF5cyAmcXVvdDtwYWdlIHggb2YgeSZxdW90OyBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+Y3NzX2NsYXNzPC90ZD48dGQ+Q1NTIENsYXNzIGZvciB0aGUgZm9ybTwvdGQ+PC90cj4NCjx0cj48dGQ+Zm9ybV9uYW1lPC90ZD48dGQ+Rm9ybSBuYW1lPC90ZD48L3RyPg0KPHRyPjx0ZD5mb3JtX2lkPC90ZD48dGQ+Rm9ybSBkYXRhYmFzZSBJRDwvdGQ+PC90cj4NCjx0cj48dGQ+cHJldjwvdGQ+PHRkPiZxdW90O0JhY2smcXVvdDsgYnV0dG9uIGZvciBtdWx0aXBhcnQgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPnN1Ym1pdDwvdGQ+PHRkPiZxdW90O0NvbnRpbnVlJnF1b3Q7IG9yICZxdW90O1N1Ym1pdCZxdW90OyBidXR0b24gZm9yIG11bHRpcGFydCBmb3JtcywgYWRqdXN0cyBhdXRvbWF0aWNhbGx5PC90ZD48L3RyPg0KPC90YWJsZT4NCjxwPkR1bm5vIHdoeSB5b3UmIzAzOTtkIHdhbnQgc29tZSBvZiB0aG9zZSwgYnV0IHRoZXJlIHlvdSBnby4uLjwvcD4nOwokbGFuZ1sncG9zdF9pbnN0YWxsJ10gPSAnPHA+RXNzZXJlIHNpY3VyaSBkaSBzZXR0YXJlIGkgcGVybWVzc2kgJnF1b3Q7TW9kaWZ5IEZvcm1zJnF1b3Q7IHBlciBnbGkgdXRlbnRpIGNoZSBhbW1pbmlzdHJhbm8gaSBmb3Jtcy4gU2Ugdm9sZXRlIGVzc2VyZSBhdnZpc2F0aSB2aWEgZW1haWwgZGVnbGkgaW5zZXJpbWVudGksIGFnZ2lvcm5hcmUgaW4gbWFuaWVyYSBhcHByb3ByaWF0YSBsYSBDb25maWd1cmF6aW9uZS48L3A+DQo8cD5TaSBwcmVnYSBkaSBwcmVzdGFyZSBhdHRlbnppb25lIGNoZSB1biBmb3JtIGRpIGZlZWRiYWNrIG5vbiBkb3ZyZWJiZSBlc3NlcmUgYXR0aXZvIChjaW8mZWdyYXZlOyBwdWJibGljbykgbWVudHJlIG1vZGlmaWNhdGUgaWwgZm9ybS4gRG92cmVzdGUgY3JlYXJlIGlsIGZvcm0gZSBwb2kgcG9zaXppb25hcmUgaWwgdGFnIG5lbGxhIHBhZ2luYSBxdWFuZG8gdGVybWluYXRvLiBBbHRyaW1lbnRpIHBvc3Nvbm8gdG9ybmFyZSBkZWkgcmlzdWx0YXRpIGVycmF0aS48L3A+DQo8cD5JbiBhZ2dpdW50YSwgcXVlc3RhIHZlcnNpb25lIG5vbiBzdXBwb3J0YSBsZSBtb2RpZmljaGUgaW4gcGFyYWxsZWxvIGRlaSBmb3Jtcy4gU2kgcHJlZ2EgcXVpbmRpIGNoZSBzb2xvIHVuIGFkbWluIGFsbGEgdm9sdGEgbW9kaWZpY2hpIHVuIGRhdG8gZm9ybS48L3A+JzsKJGxhbmdbJ2hlbHAnXSA9ICc8aDM+V2hhdCBEb2VzIFRoaXMgRG8/PC9oMz4NCjxwPlRoZSBGb3JtIEJ1aWxkZXIgTW9kdWxlIGFsbG93cyB5b3UgdG8gY3JlYXRlIGZlZWRiYWNrIGZvcm1zIChpbiBmYWN0LCBpdCYjMDM5O3MgYSByZXBsYWNlbWVudCBvZiB0aGUgb3JpZ2luYWwgRmVlZGJhY2sgRm9ybSBtb2R1bGUpLCB3aXRoIHRoZSBhZGRlZCBwb3dlciBvZiBkYXRhYmFzZSBzdG9yYWdlLiBXaXRoIGl0cyBjb21wYW5pb24gbW9kdWxlIEZvcm0gQnJvd3NlciwgeW91IGNhbiB1c2UgaXQgdG8gY3JlYXRlIHNpbXBsZSBkYXRhYmFzZSBhcHBsaWNhdGlvbnMuPC9wPg0KPHA+VGhlIGZvcm1zIGNyZWF0ZWQgdXNpbmcgdGhlIEZvcm0gQnVpbGRlciBtYXkgYmUgaW5zZXJ0ZWQNCmludG8gdGVtcGxhdGVzIGFuZC9vciBjb250ZW50IHBhZ2VzLiBGb3JtcyBtYXkgY29udGFpbiBtYW55IGtpbmRzIG9mIGlucHV0cywgYW5kIG1heSBoYXZlDQp2YWxpZGF0aW9uIGFwcGxpZWQgdG8gdGhlc2UgaW5wdXRzLiBUaGUgcmVzdWx0cyBvZiB0aGVzZSBmb3JtcyBtYXkgYmUgaGFuZGxlZCBpbiBhIHZhcmlldHkgb2Ygd2F5cy48L3A+DQoNCjxoMz5Ib3cgRG8gSSBVc2UgaXQ/PC9oMz4NCjxQPkluc3RhbGwgaXQsIGFuZCBwb2tlIGFyb3VuZCB0aGUgbWVudXMuIFBsYXkgd2l0aCBpdC4gVHJ5IGNyZWF0aW5nIGZvcm1zLCBhbmQgYWRkaW5nIHRoZW0gdG8geW91ciBjb250ZW50Lg0KSWYgeW91IGdldCBzdHVjaywgY2hhdCB3aXRoIG1lIG9uIHRoZSAjY21zIElSQyBjaGFubmVsLCBwb3N0IHRvIHRoZSBmb3J1bSwgc2VuZCBtZSBlbWFpbCwgb3IsIGlmIHlvdSYjMDM5O3JlDQpyZWFsbHkgZGVzcGVyYXRlLCByZWFkIHRoZSByZXN0IG9mIHRoaXMgcGFnZS48L1A+DQoNCjxoMz5Ib3cgRG8gSSBDcmVhdGUgYSBGb3JtPC9oMz4NCjxwPkluIHRoZSBDTVMgQWRtaW4gTWVudSwgeW91IHNob3VsZCBnZXQgYSBuZXcgbWVudSBpdGVtIGNhbGxlZCBGb3JtQnVpbGRlci4gQ2xpY2sgb24gdGhpcy4gT24gdGhlIHBhZ2UNCnRoYXQgZ2V0cyBzaG93biwgdGhlcmUgYXJlIG9wdGlvbnMgKGF0IHRoZSBib3R0b20gb2YgdGhlIGxpc3Qgb2YgRm9ybXMpIHRvIEFkZCBhIE5ldyBGb3JtIG9yIE1vZGlmeQ0KQ29uZmlndXJhdGlvbi48L3A+DQoNCjxoMz5BZGRpbmcgYSBGb3JtIHRvIGEgUGFnZTwvaDM+DQo8cD5JbiB0aGUgbWFpbiBGb3JtQnVpbGRlciBhZG1pbiBwYWdlLCB5b3UgY2FuIHNlZSBhbiBleGFtcGxlIG9mIHRoZSB0YWcgdXNlZCB0byBkaXNwbGF5IGVhY2ggZm9ybS4gSXQgbG9va3MNCnNvbWV0aGluZyBsaWtlIHtjbXNfbW9kdWxlIG1vZHVsZT0mIzAzOTtGb3JtQnVpbGRlciYjMDM5OyBmb3JtPSYjMDM5O3NhbXBsZV9mb3JtJiMwMzk7fTwvcD4NCjxwPkJ5IGNvcHlpbmcgdGhpcyB0YWcgaW50byB0aGUgY29udGVudCBvZiBhIHBhZ2UsIG9yIGludG8gYSB0ZW1wbGF0ZSwgd2lsbCBjYXVzZSB0aGF0IGZvcm0gdG8gYmUgZGlzcGxheWVkLg0KSW4gdGhlb3J5LCB5b3UgY2FuIGhhdmUgbXVsdGlwbGUgZm9ybXMgb24gYSBwYWdlIGlmIHlvdSByZWFsbHkgd2FudCB0by4gQmUgY2FyZWZ1bCB3aGVuIHBhc3RpbmcgdGhlIHRhZw0KaW50byBhIHBhZ2UmIzAzOTtzIGNvbnRlbnQgaWYgeW91IHVzZSBhIFdZU0lXWUcgZWRpdG9yIHN1Y2ggYXMgVGlueU1DRSwgRkNLRWRpdCwgb3IgSFRNTEFyZWEuIFRoZXNlIGVkaXRvcnMgbWF5IHN0ZWFsdGhpbHkNCmNoYW5nZSB0aGUgcXVvdGUgbWFya3MgKCZxdW90OykgaW50byBIVE1MIGVudGl0aWVzICgmYW1wO3F1b3Q7KSwgYW5kIHRoZSBmb3JtcyB3aWxsIG5vdCBzaG93IHVwLiBUcnkgdXNpbmcNCnNpbmdsZSBxdW90ZXMgKCYjMDM5Oykgb3IgZWRpdGluZyB0aGUgSFRNTCBkaXJlY3RseS4NCg0KPGgzPldvcmtpbmcgd2l0aCBGb3JtczwvaDM+DQo8cD5CeSBjbGlja2luZyBvbiBhIEZvcm0mIzAzOTtzIG5hbWUsIHlvdSBlbnRlciB0aGUgRm9ybSBFZGl0IHBhZ2UuIFRoZXJlIGFyZSBzZXZlcmFsIHRhYnMsIHdoaWNoIGFyZSBkZXNjcmliZWQgYmVsb3c6PC9wPg0KPGg0Pk1haW48L2g0Pg0KPHA+VGhpcyBpcyB0aGUgbWFpbiBwbGFjZSB5b3UmIzAzOTtsbCB3b3JrIG9uIHlvdXIgZm9ybS4gSGVyZSwgeW91IGdpdmUgaXQgYSBuYW1lLCBhbiBhbGlhcyAod2hpY2ggaXMgdXNlZCB0byBpZGVudGlmeSBpdCBmb3IgcGxhY2luZyBpdCBpbiBhIHBhZ2Ugb3IgdGVtcGxhdGUpLCBhbmQsIG9wdGlvbmFsbHksIGEgQ1NTIGNsYXNzIHdpdGggd2hpY2ggdG8gd3JhcCB0aGUgd2hvbGUgdGhpbmcuPC9wPg0KPHA+QmVsb3cgdGhpcywgaWYgeW91IGhhdmUgaXQgZW5hYmxlZCwgaXMgdGhlICZxdW90O2Zhc3QgZmllbGQgYWRkZXImcXVvdDsgcHVsbGRvd24sIHRoYXQgbGV0cyB5b3UgcXVpY2tseSBhZGQgYSBmaWVsZCB0byB0aGUgZW5kIG9mIHlvdXIgZm9ybSBieSBzZWxlY3RpbmcgdGhlIGZpZWxkIHR5cGUuPC9wPg0KPHA+QmVsb3cgdGhpcyBpcyB0aGUgbGlzdCBvZiBmaWVsZHMgdGhhdCBtYWtlIHVwIHlvdXIgZm9ybS4gTW9yZSBkZXRhaWwgb24gdGhpcyBpcyBkZXNjcmliZWQgYmVsb3cuPC9wPg0KPGg0PkZvcm0gU3VibWlzc2lvbjwvaDQ+DQo8cD5XaGVuIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZCwgeW91IGNhbiBlaXRoZXIgcmVkaXJlY3QgdGhlIHVzZXIgdG8gYW5vdGhlciBwYWdlIG9mIHlvdXIgc2l0ZSwgb3IgeW91IGNhbiBwcmVzZW50IHRoZSB1c2VyIHNvbWUgbWVzc2FnZSAod2hpY2ggY2FuIGNvbnRhaW4gYW55IG9mIHRoZSB1c2VyJiMwMzk7cyBmb3JtIGVudHJpZXMsIG9yIGp1c3Qgc3RhdGljIHRleHQpLiBJbiB0aGlzIHRhYiwgeW91IHNlbGVjdCB3aGljaCBvZiB0aGVzZSBhcHByb2FjaGVzIHlvdSB3aXNoIHRvIHVzZSwgYW5kLCBpZiB5b3UgY2hvc2UgcmVkaXJlY3Rpb24sIGl0IGFsbG93cyB5b3UgdG8gcGljayB0aGUgcGFnZSB0byByZWRpcmVjdCB1c2VycyB0byBhZnRlciBhIHN1Y2Nlc3NmdWwgZm9ybSBzdWJtaXNzaW9uLjwvcD4NCjxwPkFsc28gb24gdGhpcyBwYWdlLCB5b3UgY2FuIHNwZWNpZnkgdGhlIGxhYmVscyBvZiB2YXJpb3VzIHN1Ym1pc3Npb24gYnV0dG9ucyAoJnF1b3Q7UHJldmlvdXMmcXVvdDssICZxdW90O25leHQmcXVvdDssICZxdW90O3N1Ym1pdCZxdW90OykuIFlvdSBjYW4gYWxzbyBvcHQgdG8gaGF2ZSBzb21lIEphdmFzY3JpcHQgYWRkZWQgdG8gdGhlIGxhc3QgcGFnZSBvZiBhIGZvcm0gdGhhdCB3aWxsIHByZXZlbnQgbXVsdGlwbGUgc3VibWlzc2lvbnMgKHVzZWZ1bCBvbiBzbG93IHNlcnZlcnMpLjwvcD4NCjxoND5Gb3JtIERpc3BsYXkgT3B0aW9uczwvaDQ+DQo8cD5UaGlzIHRhYiBhbGxvd3MgZm9yIG90aGVyIGZvcm0gY3VzdG9taXphdGlvbnMsIGxpa2UgdGhlIHN5bWJvbCB0byBzaG93IGZvciByZXF1aXJlZCBmaWVsZHMuPC9wPg0KPGg0PkNhcHRjaGEgU2V0dGluZ3M8L2g0Pg0KPHA+SWYgeW91IGhhdmUgaW5zdGFsbGVkIHRoZSBDYXB0Y2hhIG1vZHVsZSwgdGhpcyB0YWIgbGV0cyB5b3UgY29uZmlndXJlIHRoZSBDYXB0Y2hhIHNldHRpbmdzIGZvciB5b3VyIGZvcm0uPC9wPg0KPGg0PkZvcm0gVGVtcGxhdGU8L2g0Pg0KPHA+VGhpcyBpcyB3aGVyZSB5b3UgZG8geW91ciBjdXN0b21pemF0aW9uIHdvcmsgb2YgeW91ciBmb3JtJiMwMzk7cyBTbWFydHkgVGVtcGxhdGUuIFNlZSB0aGUgc2VjdGlvbiBjYWxsZWQgRm9ybSBUZW1wbGF0ZSBWYXJpYWJsZXMgYmVsb3cuPC9wPg0KPHA+VGhlIGZvcm0gc2hvdWxkIGRlZmF1bHQgdG8gYSBDdXN0b20gdGVtcGxhdGUgdGhhdCBkb2N1bWVudHMgdGhlIFNtYXJ0eSB0YWdzIGF2YWlsYWJsZSB0byB5b3UuPC9wPg0KPHA+VW5sZXNzIHlvdSYjMDM5O3JlIGEgU21hcnR5IGV4cGVydCwgeW91IHByb2JhYmx5IGRvbiYjMDM5O3Qgd2FudCB0byBtZXNzIGFyb3VuZCB3aXRoIHRoaXMuIElmIHlvdSBhcmUgYSBTbWFydHkgZXhwZXJ0LCB0aGlzIGlzIHdoZXJlIHlvdSBjYW4gdW5sZWFzaCB5b3VyIG1hZ2ljLjwvcD4NCjxoND5TdWJtaXNzaW9uIFRlbXBsYXRlPC9oND4NCjxwPklmLCBpbiB0aGUgRm9ybSBTdWJtaXNzaW9uIHRhYiwgeW91IHNlbGVjdGVkICYjMDM5O0Rpc3BsYXkgJnF1b3Q7U3VibWlzc2lvbiBUZW1wbGF0ZSZxdW90OywgdGhpcyBpcyB3aGVyZSB5b3UgY2FuIGNyZWF0ZSB0aGF0IHRlbXBsYXRlLiBUaGVyZSBpcyBhIGRpc3BsYXkgb2Ygd2hpY2ggc21hcnR5IHZhcmlhYmxlcyBhcmUgYXZhaWxhYmxlIHRvIHlvdSwgYW5kIGEgYnV0dG9uIHRvIGdlbmVyYXRlIGEgc2FtcGxlIHRlbXBsYXRlLjwvcD4NCjxwPklmIHlvdSYjMDM5O3JlIGEgU21hcnR5IGV4cGVydCwgeW91IGNhbiBkbyBhbGwgbWFubmVyIG9mIGNyZWF0aXZlIGFuZCBwb3dlcmZ1bCB0aGluZ3MgaGVyZS4gSWYgeW91JiMwMzk7cmUgbm90IGEgU21hcnR5IGV4cGVydCwgeW91IG1pZ2h0IGp1c3Qgd2FudCB0byB1c2UgdGhlIGRlZmF1bHQuDQo8L3A+DQo8aDM+QWRkaW5nIEZpZWxkcyB0byB5b3VyIEZvcm08L2gzPg0KPHA+VGhlIHR5cGVzIG9mIGZpZWxkcyB0aGF0IGFyZSBjdXJyZW50bHkgc3VwcG9ydGVkIGZpdCBpbnRvIGZvdXIgZ3JvdXBzOiBzdGFuZGFyZCBpbnB1dCBmaWVsZHMsIGRpc3BsYXkgY29udHJvbCBmaWVsZHMsIGVtYWlsLXNwZWNpZmljIGZpZWxkcywgYW5kIGZvcm0gcmVzdWx0IGhhbmRsaW5nIGZpZWxkcyAoYWxzbyBjYWxsZWQgRm9ybSBEaXNwb3NpdGlvbnMgaW4gcGxhY2VzKTo8L3A+DQo8dWw+DQo8bGk+U3RhbmRhcmQgSW5wdXQgRmllbGRzIC0gdGhlc2UgYXJlIGlucHV0cyB0aGF0IGFsbG93IGVudHJ5IG9mIHR5cGljYWwgZm9ybSBlbGVtZW50czsgdGV4dCBpbnB1dHMsIHJhZGlvIGJ1dHRvbnMsIGV0Yy48L2xpPg0KPGxpPkRpc3BsYXkgQ29udHJvbCBGaWVsZHMgLSB0aGVzZSBpbnB1dCBjb250cm9sIGhvdyB0aGUgdXNlciB3aWxsIHNlZSB0aGUgZGlzcGxheSBvZiB0aGUgZm9ybTsgcGFnZSBicmVha3MsIHN0YXRpYyB0ZXh0LCBldGMuPC9saT4NCjxsaT5FbWFpbC1zcGVjaWZpYyBGaWVsZHMgLSBzb21lIGZvcm1zIGdlbmVyYXRlIGVtYWlsLCBhbmQgZW1haWwtc3BlY2lmaWMgZmllbGRzIGNhbiBhbHRlciBhdHRyaWJ1dGVzIG9mIHRoZSBlbWFpbHMgc2VudC48L2xpPg0KPGxpPkZvcm0gRGlzcG9zaXRpb25zIC0gVGhlc2UgZGV0ZXJtaW5lIHdoYXQgaGFwcGVucyB3aGVuIHRoZSB1c2VyDQpzdWJtaXRzIHRoZSBmb3JtOyBmb3IgZWFjaCByZXN1bHQgaGFuZGxpbmcgZmllbGQsIHNvbWUgbWV0aG9kIG9mIHRyYW5zbWl0dGluZywgc2F2aW5nLCBvciBlbWFpbGluZyB0aGUNCmZvcm0gY29udGVudHMgdGFrZXMgcGxhY2UuIEEgZm9ybSBtYXkgaGF2ZSBtdWx0aXBsZSBmb3JtIGRpc3Bvc2l0aW9ucy48L2xpPg0KPC91bD4NCjxwPkZvcm0gZmllbGRzIGFyZSBhc3NpZ25lZCBuYW1lcy4gVGhlc2UgbmFtZXMgaWRlbnRpZnkgdGhlIGZpZWxkLCBub3Qgb25seSBvbiB0aGUgc2NyZWVuIGFzIGxhYmVscyBmb3IgdGhlIHVzZXIsDQpidXQgaW4gdGhlIGRhdGEgd2hlbiBpdCYjMDM5O3Mgc3VibWl0dGVkIHNvIHlvdSBrbm93IHdoYXQgdGhlIHVzZXIgaXMgcmVzcG9uZGluZyB0by4gUGhyYXNpbmcgdGhlIG5hbWUgbGlrZSBhIHF1ZXN0aW9uDQppcyBhIGhhbmR5IHdheSBvZiBtYWtpbmcgaXQgY2xlYXIgdG8gdGhlIHVzZXIgd2hhdCBpcyBleHBlY3RlZC4gU2ltaWxhcmx5LCBtYW55IGZpZWxkcyBoYXZlIGJvdGggTmFtZXMgYW5kIFZhbHVlcy4NClRoZSBOYW1lcyBhcmUgd2hhdCBnZXRzIHNob3duIHRvIHRoZSB1c2VyOyB0aGUgVmFsdWUgaXMgd2hhdCBnZXRzIHNhdmVkIG9yIHRyYW5zbWl0dGVkIHdoZW4gdGhlIHVzZXIgc3VibWl0cw0KdGhlIGZvcm0uIFRoZSBWYWx1ZXMgYXJlIG5ldmVyIHNlZW4gYnkgdGhlIHVzZXIsIG5vciBhcmUgdGhleSB2aXNpYmxlIGluIHRoZSBIVE1MLCBzbyBpdCYjMDM5O3Mgc2FmZSB0byB1c2UgZm9yDQplbWFpbCBhZGRyZXNzZXMgYW5kIHN1Y2guPC9wPg0KPHA+U29tZSBmaWVsZHMgY2FuIGhhdmUgbXVsdGlwbGUgdmFsdWVzLCBvciBtdWx0aXBsZSBuYW1lL3ZhbHVlIHBhaXJzLiBXaGVuIHlvdSBmaXJzdCBjcmVhdGUgc3VjaCBhIGZpZWxkLA0KdGhlcmUgbWF5IG5vdCBiZSBzdWZmaWNpZW50IGlucHV0cyBmb3IgeW91IHRvIHNwZWNpZnkgYWxsIHRoZSB2YWx1ZXMgeW91IHdhbnQuIFRvIGdldCBtb3JlIHNwYWNlIGZvciBpbnB1dHRpbmcNCnRoZXNlIHZhbHVlcywgdXNlIHRoZSBidXR0b25zIGF0IHRoZSBib3R0b20gb2YgdGhlIHBhZ2UgZm9yIGFkZGluZyBvcHRpb25zLjwvcD4NCjxwPkZpZWxkcyBjYW4gYmUgYXNzaWduZWQgdmFsaWRhdGlvbiBydWxlcywgd2hpY2ggdmFyeSBhY2NvcmRpbmcgdG8gdGhlIHR5cGUgb2YgdGhlIGZpZWxkLiBUaGVzZSBydWxlcyBoZWxwDQplbnN1cmUgdGhhdCB0aGUgdXNlciBlbnRlcnMgdmFsaWQgZGF0YS4gVGhleSBtYXkgYWxzbyBiZQ0Kc2VwYXJhdGVseSBtYXJrZWQgJnF1b3Q7UmVxdWlyZWQmcXVvdDssIHdoaWNoIHdpbGwgZm9yY2UgdGhlIHVzZXIgdG8gZW50ZXIgYSByZXNwb25zZS48L3A+DQo8cD5GaWVsZHMgYWxzbyBtYXkgYmUgYXNzaWduZWQgYSBDU1MgY2xhc3MuIFRoaXMgc2ltcGx5IHdyYXBzIHRoZSBpbnB1dCBpbiBhIGRpdiB3aXRoIHRoYXQgY2xhc3MsIHNvIGFzIHRvIGFsbG93DQpjdXN0b21pemVkIGxheW91dHMuIFRvIHVzZSB0aGlzIGVmZmVjdGl2ZWx5LCB5b3UgbWF5IG5lZWQgdG8gJnF1b3Q7dmlldyBzb3VyY2UmcXVvdDsgb24gdGhlIGdlbmVyYXRlZCBmb3JtLCBhbmQgdGhlbg0Kd3JpdGUgeW91ciBDU1MuPC9wPg0KPHVsPg0KPGxpPlN0YW5kYXJkIElucHV0cw0KPHVsPjxsaT5UZXh0IElucHV0LiBUaGlzIGlzIGEgc3RhbmRhcmQgdGV4dCBmaWVsZC4gWW91IGNhbiBsaW1pdCB0aGUgbGVuZ3RoLCBhbmQgYXBwbHkgdmFyaW91cyB2YWxpZGF0aW9uDQpmdW5jdGlvbnMgdG8gdGhlIGZpZWxkLjwvbGk+DQo8bGk+VGV4dCBBcmVhLiBUaGlzIGlzIGEgYmlnLCBmcmVlLWZvcm0gdGV4dCBpbnB1dCBmaWVsZC48L2xpPg0KPGxpPkNoZWNrYm94LiBUaGlzIGlzIGEgc3RhbmRhcmQgY2hlY2sgYm94LjwvbGk+DQo8bGk+Q2hlY2tib3ggR3JvdXAuIFRoaXMgaXMgYSBjb2xsZWN0aW9uIG9mIGNoZWNrYm94ZXMuIFRoZSBvbmx5IGRpZmZlcmVuY2UgYmV0d2VlbiB0aGlzIGlucHV0IGFuZCBhDQpjb2xsZWN0aW9uIG9mIENoZWNrYm94IGlucHV0cyBpcyB0aGF0IHRoZXkgYXJlIHByZXNlbnRlZCBhcyBhIGdyb3VwLCB3aXRoIG9uZSBuYW1lLCBhbmQgY2FuIGhhdmUgYSB2YWxpZGF0aW9uIGZ1bmN0aW9uIHJlcXVpcmluZyB0aGF0IHlvdSBjaGVjayBvbmUgb3IgbW9yZSBvZiB0aGUgYm94ZXMgaW4gdGhlIGdyb3VwLjwvbGk+DQo8bGk+UmFkaW8gR3JvdXAuIFRoaXMgaXMgYSBjb2xsZWN0aW9uIG9mIHJhZGlvIGJ1dHRvbnMuIE9ubHkgb25lIG9mIHRoZSBncm91cCBtYXkgYmUgc2VsZWN0ZWQgYnkgdGhlIHVzZXIuPC9saT4NCjxsaT5QdWxsZG93bi4gVGhpcyBpcyBhIHN0YW5kYXJkIHB1bGxkb3duIG1lbnUuIEl0JiMwMzk7cyByZWFsbHkgY29uY2VwdHVhbGx5IHRoZSBzYW1lIHRoaW5nIGFzIGEgcmFkaW8gYnV0dG9uDQpncm91cCwgYnV0IGlzIGJldHRlciB3aGVuIHRoZXJlIGFyZSBhIGxhcmdlIG51bWJlciBvZiBvcHRpb25zLjwvbGk+DQo8bGk+TXVsdGlzZWxlY3QuIFRoaXMgaXMgYSBtdWx0aS1zZWxlY3QgZmllbGQuIEl0JiMwMzk7cyByZWFsbHkgY29uY2VwdHVhbGx5IHRoZSBzYW1lIHRoaW5nIGFzIGEgY2hlY2tib3ggYnV0dG9uDQpncm91cCwgYnV0IGlzIGJldHRlciB3aGVuIHRoZXJlIGFyZSBhIGxhcmdlIG51bWJlciBvZiBvcHRpb25zLCBhcyB5b3UgY2FuIGxpbWl0IHRoZSBudW1iZXIgZGlzcGxheWVkIG9uIHRoZSBzY3JlZW4gYXQgYW55IG9uZSB0aW1lLjwvbGk+DQo8bGk+U3RhdGUuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBTdGF0ZXMgb2YgdGhlIFUuUy48L2xpPg0KPGxpPkNvdW50cmllcy4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIENvdW50cmllcyBvZiB0aGUgd29ybGQgKGFzIG9mIEp1bHkgMjAwNSkuPC9saT4NCjxsaT5EYXRlIFBpY2tlci4gVGhpcyBpcyBhIHRyaXBsZSBwdWxsZG93biBhbGxvd2luZyB0aGUgdXNlciB0byBzZWxlY3QgYSBkYXRlLjwvbGk+DQo8bGk+VGltZSBQaWNrZXIuIFRoaXMgaXMgYSBzZXQgb2YgcHVsbGRvd25zIGFsbG93aW5nIHRoZSB1c2VyIHRvIHNlbGVjdCBhIHRpbWUgKHVzaW5nIDEyIG9yIDI0IGhvdXIgY2xvY2spLjwvbGk+DQo8bGk+RmlsZSBVcGxvYWQuIFRoaXMgaXMgYSBmaWxlIHVwbG9hZCBmaWVsZC48L2xpPg0KPGxpPkxpbmsgKFVzZXIgRW50ZXJlZCkuIFRoaXMgY3JlYXRlcyBhIGRvdWJsZSBpbnB1dCBmaWVsZCBmb3IgZ2V0dGluZyBhIGxpbmsgVVJMIGFuZCBsaW5rIHRpdGxlLjwvbGk+DQo8L3VsPjwvbGk+DQoNCjxsaT5FbWFpbC1zcGVjaWZpYyBJbnB1dHMNCjx1bD48bGk+RW1haWwgRnJvbSBBZGRyZXNzIEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIHRoZWlyIGVtYWlsIGFkZHJlc3MuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBhZGRyZXNzIGluIHRoZSAmcXVvdDtGcm9tJnF1b3Q7IGZpZWxkLjwvbGk+DQo8bGk+RW1haWwgRnJvbSBOYW1lIEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIHRoZWlyIG5hbWUuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBuYW1lIGluIHRoZSAmcXVvdDtGcm9tJnF1b3Q7IGZpZWxkLjwvbGk+DQo8bGk+RW1haWwgU3ViamVjdCBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSBhIHN1YmplY3QgZm9yIHRoZWlyIGVtYWlsLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgaW4gdGhlICZxdW90O1N1YmplY3QmcXVvdDsgZmllbGQuIFRoaXMgbWF5IGNhdXNlIHRyb3VibGUgd2l0aCBjZXJ0YWluIGRpc3Bvc2l0aW9ucyB0aGF0IHdhbnQgdG8gY29udHJvbCB0aGUgRW1haWwgU3ViamVjdCwgc28gdXNlIGl0IHdpdGggY2F1dGlvbi48L2xpPg0KPC91bD48L2xpPg0KDQo8bGk+RGlzcGxheSBDb250cm9sIEZpZWxkczx1bD4NCjxsaT4tUGFnZSBCcmVhay4gVGhpcyBhbGxvd3MgeW91IHRvIHNwbGl0IHlvdXIgZmVlZGJhY2sgZm9ybSBpbnRvIG11bHRpcGxlIHBhZ2VzLiBFYWNoIHBhZ2UgaXMNCmluZGVwZW5kZW50bHkgdmFsaWRhdGVkLiBUaGlzIGlzIGdvb2QgZm9yIGFwcGxpY2F0aW9ucyBsaWtlIG9ubGluZSBzdXJ2ZXlzLjwvbGk+DQo8bGk+LUZpZWxkc2V0IFN0YXJ0LiBDb21iaW5lZCB3aXRoIEZpZWxkc2V0IEVuZCwgdGhpcyBhbGxvd3MgeW91IHRvIGdyb3VwIHZhcmlvdXMgZmllbGRzIHdpdGhpbiB5b3VyIGZvcm0uIFVzZSB0aGlzIHRvIHN0YXJ0IGEgZ2l2ZW4gZ3JvdXBpbmcuPC9saT4NCjxsaT4tRmllbGRzZXQgRW5kLiBDb21iaW5lZCB3aXRoIEZpZWxkc2V0IFN0YXJ0LCB0aGlzIGFsbG93cyB5b3UgdG8gZ3JvdXAgdmFyaW91cyBmaWVsZHMgd2l0aGluIHlvdXIgZm9ybS4gVXNlIHRoaXMgdG8gZW5kIGEgZ2l2ZW4gZ3JvdXBpbmcuPC9saT4NCjxsaT4tSGlkZGVuIEZpZWxkLiBUaGlzIGFsbG93cyB5b3UgdG8gZW1iZWQgYSBoaWRkZW4gZmllbGQgaW4geW91ciBmb3JtLjwvbGk+DQo8bGk+LVN0YXRpYyBUZXh0LiBUaGlzIGFsbG93cyB5b3UgdG8gcHV0IHRleHQgb3IgYSBsYWJlbCBpbiB0aGUgbWlkZGxlIG9mIHlvdXIgZm9ybS4gVGhpcyBpcyB1c2VmdWwgZm9yIGdpdmluZyBhZGRpdGlvbmFsIGhlbHAgdGV4dCwgZXNwZWNpYWxseSBpZiB5b3UmIzAzOTtyZSBub3QgdXNpbmcgYSBDdXN0b20gVGVtcGxhdGUgdG8gcmVuZGVyIHlvdXIgZm9ybS48L2xpPg0KPGxpPi1TdGF0aWMgTGluay4gVGhpcyBhbGxvd3MgeW91IHRvIHB1dCBhIGxpbmsgdG8gYSBnaXZlbiBwYWdlIGludG8geW91ciBmb3JtLiBPcHRpb25hbGx5LCB5b3UgY2FuIGhhdmUgaXQgYXV0b3BvcHVsYXRlIHdpdGggdGhlIHBhZ2Ugd2hlcmUgdGhlIGZvcm0gaXMgZW1iZWRkZWQgKHVzZWZ1bCBpZiB5b3VcJiMwMzk7cmUgc2VuZGluZyByZXN1bHRzIHZpYSBlbWFpbCkuPC9saT4NCjxsaT4tQ29tcHV0ZWQgRmllbGQuIFRoaXMgYWxsb3dzIHlvdSB0byBlbWJlZCBhIGNvbXB1dGVkIGZpZWxkIGluIHlvdXIgZm9ybS4gSXQgaXMgbm90IHZpc2libGUgdG8gdGhlIHVzZXIgdW50aWwgYWZ0ZXIgdGhlIGZvcm0gaXMgc3VibWl0dGVkLiBJdCBhbGxvd3MgeW91IHRvIGRvIHNpbXBsZSBhcml0aG1ldGljIG9yIHN0cmluZyBjb25jYXRlbmF0aW9uLjwvbGk+DQo8L3VsPjwvbGk+DQoNCjxsaT5Gb3JtIEhhbmRsaW5nIElucHV0cyAoRGlzcG9zaXRpb25zKQ0KPHVsPjxsaT4qQ2FsbCBhIFVzZXIgRGVmaW5lZCBUYWcgV2l0aCB0aGUgRm9ybSBSZXN1bHRzLiBUaGlzIHN1Ym1pdHMgYWxsIHRoZSBmb3JtIHJlc3VsdHMgdG8gdGhlIFVzZXItRGVmaW5lZCBUYWcgeW91IHNwZWNpZnkuIFRoZSBVRFQgY2FuIGhhbmRsZSB0aGUgcmVzdWx0cyBob3dldmVyIGl0IHdhbnRzLjwvbGk+DQo8bGk+KkVtYWlsIFJlc3VsdHMgQmFzZWQgb24gUHVsbGRvd24uIFRoaXMgaXMgdXNlZnVsIGZvciB3ZWIgc2l0ZXMgd2hlcmUgY29tbWVudHMgZ2V0IHJvdXRlZCBiYXNlZCBvbiB0aGVpciBzdWJqZWN0IG1hdHRlciwgZS5nLiwgYnVncyBnZXQgc2VudCB0byBvbmUgcGVyc29uLCBtYXJrZXRpbmcgcXVlc3Rpb25zIHRvIGFub3RoZXIgcGVyc29uLCBzYWxlcyByZXF1ZXN0cyB0byBzb21lb25lIGVsc2UsIGV0Yy4gVGhlIHB1bGxkb3duIGlzIHBvcHVsYXRlZCB3aXRoIHRoZSBzdWJqZWN0cywgYW5kIGVhY2ggZ2V0cyBkaXJlY3RlZCB0byBhIHNwZWNpZmljIGVtYWlsIGFkZHJlc3MuIFlvdSBzZXQgdXAgdGhlc2UgbWFwcGluZ3MgaW4gdGhlIHdoZW4geW91IGNyZWF0ZSBvciBlZGl0IGEgZmllbGQgb2YgdGhpcyB0eXBlLiBJZiB5b3UgdXNlIG9uZSBvZiB0aGVzZSAmcXVvdDtEaXJlY3RvciZxdW90OyBwdWxsZG93bnMsIHRoZSB1c2VyIG11c3QgbWFrZSBhIHNlbGVjdGlvbiBpbiBvcmRlciB0byBzdWJtaXQgdGhlDQpmb3JtLiBUaGlzIGlucHV0IGlzIHBhcnQgb2YgdGhlIGZvcm0gdGhlIHVzZXIgc2VlcywgYWx0aG91Z2ggdGhlIGVtYWlsIGFkZHJlc3NlcyBhcmUgbm90IG1hZGUgdmlzaWJsZSBub3INCmFyZSB0aGV5IGVtYmVkZGVkIGluIHRoZSBIVE1MLjwvbGk+DQo8bGk+KkVtYWlsIFJlc3VsdHMgdG8gc2V0IEFkZHJlc3MoZXMpLiBUaGlzIHNpbXBseSBzZW5kcyB0aGUgZm9ybSByZXN1bHRzIHRvIG9uZSBvciBtb3JlIGVtYWlsIGFkZHJlc3NlcyB0aGF0IHlvdSBlbnRlciB3aGVuIHlvdSBjcmVhdGUgb3IgZWRpdCB0aGlzIHR5cGUgb2YgZmllbGQuIFRoaXMgZmllbGQgYW5kIGl0cyBuYW1lIGFyZSBub3QgdmlzaWJsZSBpbiB0aGUNCmZvcm0gdGhhdCB0aGUgdXNlciBzZWVzLiBUaGUgZW1haWwgYWRkcmVzc2VzIGFyZSBub3QgbWFkZSB2aXNpYmxlIG5vcg0KYXJlIHRoZXkgZW1iZWRkZWQgaW4gdGhlIEhUTUwuPC9saT4NCjxsaT4qRW1haWwgdG8gVXNlci1TdXBwbGllZCBBZGRyZXNzLiBUaGlzIHB1dHMgYW4gaW5wdXQgZmllbGQgaW4gdGhlIGZvcm0gZm9yIHRoZSB1c2VyIHRvIHBvcHVsYXRlIHdpdGggYW4gZW1haWwgYWRkcmVzcy4gVGhlIGZvcm0gcmVzdWx0cyBnZXQgc2VudCB0byB0aGF0IGFkZHJlc3MuIEJld2FyZSBvZiBTcGFtIGFidXNlISBBY3RpdmUgdGhlIHByaW1pdGl2ZSBhbnRpLXNwYW0gZmVhdHVyZXMgaW4gdGhlIEZvcm1CdWlsZGVyIGNvbmZpZ3VyYXRpb24gc2NyZWVuLjwvbGk+DQo8bGk+KlN0b3JlIFJlc3VsdHMgaW4gRGF0YWJhc2UuIFRoaXMgd2lsbCBzdG9yZSB0aGUgZm9ybSBjb250ZW50cyBpbiBhbiBpbnRlcm5hbCBkYXRhYmFzZS4gWW91IHdpbGwgYWx3YXlzIHVzZSB0aGlzIGRpc3Bvc2l0aW9uIGlmIHlvdSB1c2UgdGhlIGZvcm0gd2l0aCBGb3JtQnJvd3Nlci48L2xpPg0KPGxpPipSZWRpcmVjdCB0byBQYWdlIEJhc2VkIG9uIFB1bGxkb3duLiBUaGlzIGFsbG93cyB5b3UgdG8gcmVkaXJlY3QgdGhlIGZvcm0gdG8gYSBkaWZmZXJlbnQgc2l0ZSBwYWdlIGRlcGVuZGluZyBvbiBpdHMgdmFsdWUuIElmIHlvdSBoYXZlIG11bHRpcGxlIGRpc3Bvc2l0aW9ucywgbWFrZSBzdXJlIHRoaXMgaXMgdXNlZCBsYXN0LjwvbGk+DQo8bGk+KlZhbGlkYXRlIHZpYSBFbWFpbC4gVGhpcyBpcyBhIHN0cmFuZ2UgYW5kIHBvd2VyZnVsIGZpZWxkLiBJdCBwcm92aWRlcyB0aGUgdXNlciBhIG1hbmRhdG9yeSBpbnB1dCBmb3IgdGhlaXIgZW1haWwgYWRkcmVzcy4gT25jZSB0aGV5IHN1Ym1pdCB0aGVpciBmb3JtLCB0aGUgc3RhbmRhcmQgZm9ybSBkaXNwb3NpdGlvbnMgYXJlIG5vdCBwZXJmb3JtZWQgLS0gcmF0aGVyLCBpdCBzZW5kIHRoZSB1c2VyIGFuIGVtYWlsIHdpdGggYSBzcGVjaWFsIGNvZGVkIGxpbmsuIElmIHRoZXkgY2xpY2sgb24gdGhlIGxpbmssIHRoZSBvdGhlciBmb3JtIGlzIGNvbnNpZGVyZWQgJnF1b3Q7YXBwcm92ZWQsJnF1b3Q7IGFuZCB0aGUgb3RoZXIgZGlzcG9zaXRpb25zIGFyZSBhbGwgcGVyZm9ybWVkLjwvbGk+DQo8bGk+KldyaXRlIFJlc3VsdHMgdG8gRmxhdCBGaWxlLiBUaGlzIHRha2VzIHRoZSBmb3JtIHJlc3VsdHMgYW5kIHdyaXRlcyB0aGVtIGludG8gYSB0ZXh0IGZpbGUuIFlvdSBtYXkNCnNlbGVjdCB0aGUgbmFtZSBvZiB0aGUgZmlsZSwgYW5kIHNldCBpdHMgZm9ybWF0LiBUaGVzZSBmaWxlcyBhcmUgd3JpdHRlbiB0byB0aGUgJnF1b3Q7b3V0cHV0JnF1b3Q7IGRpcmVjdG9yeSB1bmRlciB0aGUNCm1vZHVsZSYjMDM5O3MgaW5zdGFsbGF0aW9uIGRpcmVjdG9yeSwgYXNzdW1pbmcgdGhlIHdlYiBzZXJ2ZXIgaGFzIHBlcm1pc3Npb24gdG8gd3JpdGUgdGhlcmUuPC9saT4NCjxsaT4qU2F2ZSBSZXN1bHRzIHRvIEZpbGUgQmFzZWQgb24gUHVsbGRvd24uIExpa2UgdGhlIEZsYXQgRmlsZSBkaXNwb3NpdGlvbiwgZXhjZXB0IHRoZSB2YWx1ZSBvZiBhIHB1bGwtZG93biBkZXRlcm1pbmVzIHdoaWNoIGZpbGUgcmVzdWx0cyBnZXQgd3JpdHRlbiB0by48L2xpPg0KPGxpPipTYXZlIFJlc3VsdHMgdG8gRmlsZShzKSBCYXNlZCBvbiBNdWx0aXBsZSBTZWxlY3Rpb25zLiBMaWtlIHRoZSBGbGF0IEZpbGUgZGlzcG9zaXRpb24sIGV4Y2VwdCB0aGUgdmFsdWUocykgb2YgY2hlY2tib3hlcyAgZGV0ZXJtaW5lcyB3aGljaCBmaWxlKHMpIHJlc3VsdHMgZ2V0IHdyaXR0ZW4gdG8uPC9saT4NCjwvdWw+PC9saT48L2xpPjwvdWw+DQoNCg0KPGgzPlBhc3NpbmcgRGVmYXVsdCBWYWx1ZXMgdG8gRm9ybXM8L2gzPg0KPHA+Q2FsZ3V5IGFkZGVkIGEgbmljZSBmZWF0dXJlLCB3aGljaCBpcyB0aGF0IHlvdSBjYW4gcGFzcyBkZWZhdWx0IGZpZWxkIHZhbHVlcyB0byB5b3VyIGZvcm0gdmlhIHRoZSBtb2R1bGUgdGFnLiBUaGlzIGFsbG93cyB5b3UgdG8gaGF2ZQ0KdGhlIHNhbWUgZm9ybSBpbiBtdWx0aXBsZSBwbGFjZXMsIGJ1dCB3aXRoIGRpZmZlcmVudCBkZWZhdWx0IHZhbHVlcy4gSXQgbWF5IG5vdCB3b3JrIGZvciBtb3JlIGV4b3RpYyBmaWVsZCB0eXBlcywgYnV0IGZvciBmaWVsZHMgdGhhdCBoYXZlDQphIHNpbmdsZSB2YWx1ZSwgeW91IGNhbiBzcGVjaWZ5IGxpa2U6PC9wPg0KPHA+e2Ntc19tb2R1bGUgbW9kdWxlPSYjMDM5O0Zvcm1CdWlsZGVyJiMwMzk7IGZvcm09JiMwMzk7bXlfZm9ybSYjMDM5OyB2YWx1ZV88aT5GSUVMRE5BTUU8L2k+PSYjMDM5O2RlZmF1bHRfdmFsdWUmIzAzOTt9PC9wPg0KPHA+VGhpcyB3aWxsIHNldCB0aGUgZmllbGQgd2l0aCA8aT5GSUVMRE5BTUU8L2k+IHRvICYjMDM5O2RlZmF1bHRfdmFsdWUmIzAzOTsuPC9wPg0KPHA+VGhpcyBjYW4gYmUgcHJvYmxlbWF0aWMsIGFzIHNvbWV0aW1lcyBmaWVsZCBuYW1lcyBhcmUgdW53ZWlsZHkgb3IgY29udGFpbiBjaGFyYWN0ZXJzIHRoYXQgZG9uJiMwMzk7dCB3b3JrIHdlbGwgd2l0aCBTbWFydHkuIFNvIHRoZXJlIGlzIGFuDQphbHRlcm5hdGl2ZSBsaWtlIHRoaXM6PC9wPg0KPHA+e2Ntc19tb2R1bGUgbW9kdWxlPSYjMDM5O0Zvcm1CdWlsZGVyJiMwMzk7IGZvcm09JiMwMzk7bXlfZm9ybSYjMDM5OyB2YWx1ZV9mbGQ8aT5OVU1CRVI8L2k+PSYjMDM5O2RlZmF1bHRfdmFsdWUmIzAzOTt9PC9wPg0KPHA+VGhhdCB1c2VzIGZpZWxkIDxpPk5VTUJFUjwvaT4sIHdoZXJlIDxpPk5VTUJFUjwvaT4gaXMgdGhlIGludGVybmFsIEZvcm1CdWlsZGVyIGZpZWxkIGlkLiBZb3UgbWlnaHQgd29uZGVyIGhvdyB5b3Uga25vdyB3aGF0IHRoYXQgaWQgaXMuIFNpbXBseSBnbyBpbnRvIHRoZSBGb3JtQnVpbGRlciBjb25maWd1cmF0aW9uIHRhYiwNCmFuZCBjaGVjayAmcXVvdDtTaG93IEZpZWxkIElEcyZxdW90OzwvcD4NCg0KPGgzPkVtYWlsIGFuZCBGbGF0IEZpbGUgVGVtcGxhdGVzPC9oMz4NCjxwPk1hbnkgZGlzcG9zaXRpb24gdHlwZXMgYWxsb3cgeW91IHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZvciB0aGUgZW1haWwgdGhhdCBpcyBnZW5lcmF0ZWQsIG9yIGZvciB0aGUgd2F5IHRoZSByZXN1bHRzIGFyZSB3cml0dGVuIHRvIGEgZmlsZS4gSWYgeW91IG9wdCBub3QgdG8gY3JlYXRlIGEgdGVtcGxhdGUsIHRoZSBGb3JtQnVpbGRlciB3aWxsIHVzZSBpdCYjMDM5O3Mgb3duIGJlc3QgZ3Vlc3MsIHdoaWNoIG1heSBvciBtYXkgbm90IHdvcmsgb3V0IHRvIHlvdXIgbGlraW5nLiBZb3UgY2FuIGFsd2F5cyBjbGljayBvbiB0aGUgJnF1b3Q7Q3JlYXRlIFNhbXBsZSBUZW1wbGF0ZSZxdW90OyBhbmQgdGhlbiBjdXN0b21pemUgdGhlIHJlc3VsdHMuPC9wPg0KPHA+VG8gdGhlIHJpZ2h0LCB5b3UmIzAzOTtsbCBmaW5kIGEgbGVnZW5kIHdoaWNoIGxpc3RzIGFsbCBvZiB0aGUgdmFyaWFibGVzIHRoYXQgYXJlIGF2YWlsYWJsZSB0byB5b3UgdG8gdXNlIGluIHlvdXIgdGVtcGxhdGUuIEFzIG9mIHZlcnNpb24gMC4zLCB2YXJpYWJsZXMgaGF2ZSB0d28gbmFtZXMsIG9uZSBiYXNlZCBvbiB0aGUgZmllbGQgbmFtZSwgdGhlIG90aGVyIGJhc2VkIG9uIHRoZSBmaWVsZCBJRC4gSWYgeW91IHVzZSBmaWVsZCBuYW1lcyB0aGF0IGhhdmUgY2hhcmFjdGVycyBvdXRzaWRlIG9mIHRoZSBBU0NJSSAzMi0xMjYgcmFuZ2UsIGl0IHdpbGwgYmUgc2FmZXIgdG8gdXNlIHRoZSBJRC1iYXNlZCB2YXJpYWJsZXMuPC9wPg0KPHA+PHN0cm9uZz5Ob3RlIHRoYXQgb25jZSB5b3UmIzAzOTt2ZSBjaGFuZ2VkIGEgdGVtcGxhdGUsIGl0IHdpbGwgbm8gbG9uZ2VyIGF1dG9tYXRpY2FsbHkgYWRkIG5ldyBmaWVsZHMuPC9zdHJvbmc+IEZvciB0aGlzIHJlYXNvbiwgaXQmIzAzOTtzIHVzdWFsbHkgYmVzdCB0byBjcmVhdGUgeW91ciB0ZW1wbGF0ZXMgYXMgdGhlIGxhc3Qgc3RlcCBvZiBjcmVhdGluZyB5b3VyIGZvcm0uPC9wPg0KPHA+QXMgb2YgdmVyc2lvbiAwLjIuNCwgeW91IGNhbiBvcHQgdG8gc2VuZCBhbnkgb2YgdGhlc2UgZW1haWxzIGFzIEhUTUwgZW1haWwuIFRoZXJlIHNob3VsZCBiZSBhIGNoZWNrYm94IGF0IHRoZSB0b3Agb2YgdGhlIHRlbXBsYXRlIHBhZ2UgZm9yIHRoaXMuIFRoZXJlIGlzIGFsc28gYSAmcXVvdDtDcmVhdGUgU2FtcGxlIEhUTUwgVGVtcGxhdGUmcXVvdDsgYnV0dG9uIG92ZXIgaW4gdGhlIGxlZ2VuZCBhcmVhLiBGb3IgSFRNTCBlbWFpbCwgdGhlIGVtYWlsIGJvZHkgd2lsbCBhbHNvIHByb3ZpZGUgdGhlIGRlZmF1bHQgdGV4dC1vbmx5IHZhbHVlcy48L3A+DQoNCjxoMz5Db25maWd1cmF0aW9uPC9oMz4NCjxwPlRoZXJlIGFyZSBzb21lIGdsb2JhbCBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIEZvcm1CdWlsZGVyOjwvcD4NCjx1bD4NCjxsaT5FbmFibGUgZmFzdCBmaWVsZCBhZGQgcHVsbGRvd24uIFRoaXMgZW5hYmxlcyB0aGUgcHVsbGRvd24gb24gdGhlIEZvcm0gRWRpdCBwYWdlIHdoaWNoIHNhdmVzIGEgc3RlcCBpbiB0aGUgY3JlYXRpb24gb2YgbmV3IGZpZWxkcy48L2xpPg0KPGxpPkhpZGUgRXJyb3JzLiBUaGlzIGlzIHNldCBieSBkZWZhdWx0LiBVbmNoZWNraW5nIGl0IHdpbGwgY2F1c2UgbW9yZSBkZXRhaWxlZCBlcnJvcnMgdG8gYmUgZGlzcGxheWVkIGlmIHRoZXJlIGFyZSBwcm9ibGVtcyB3aGVuIHlvdSBzdWJtaXQgeW91ciBmb3JtLjwvbGk+DQo8bGk+UmVxdWlyZSBGaWVsZCBOYW1lcy4gVHlwaWNhbGx5LCB5b3Ugd2lsbCB3YW50IGZvcm0gZmllbGRzIHRvIGJlIG5hbWVkIHNvIHlvdSBjYW4gdGVsbCB3aGljaCBpcyB3aGljaC4gSG93ZXZlciwgaW4gc29tZSBjYXNlcywgeW91IG1pZ2h0IHdhbnQgdG8gaGF2ZSBuYW1lbGVzcyBmaWVsZHMuIFVuY2hlY2sgdGhpcyBpZiB5b3Ugd2FudCB0byBhbGxvdyBuYW1lbGVzcyBmaWVsZHMuPC9saT4NCjxsaT5VbmlxdWUgRmllbGQgTmFtZXMuIFR5cGljYWxseSwgeW91IHdpbGwgd2FudCBmb3JtIGZpZWxkcyB0byBoYXZlIHVuaXF1ZSBuYW1lcyBzbyB5b3UgY2FuIHRlbGwgd2hpY2ggaXMgd2hpY2guIFVuY2hlY2sgdGhpcyBpZiB5b3Ugd2FudCB0byBhbGxvdyBmaWVsZHMgdG8gc2hhcmUgbmFtZXMuPC9saT4NCjxsaT5Vc2UgcmVsYXhlZCBlbWFpbCB2YWxpZGF0aW9uLiBUaGlzIHVzZXMgYSBsZXNzIHJlc3RyaWN0aXZlIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgdmFsaWRhdGluZyBlbWFpbDsgZS5nLiwgeEB5IHdpbGwgYmUgYWxsb3dlZCwgd2hlcmUgdHlwaWNhbGx5IHhAeS50bGQgaXMgcmVxdWlyZWQuPC9saT4NCjxsaT5TaG93IEZvcm0gQnVpbGRlciBWZXJzaW9uLiBEaXNwbGF5cyB0aGUgdmVyc2lvbiBvZiBGb3JtQnVpbGRlciB5b3UmIzAzOTtyZSB1c2luZyBpbiBhIGNvbW1lbnQgd2hlbiB0aGUgZm9ybSBpcyBnZW5lcmF0ZWQuIFR5cGljYWxseSBvbmx5IHVzZWZ1bCB3aGVuIGRlYnVnZ2luZy48L2xpPg0KPGxpPkVuYWJsZSBwcmltaXRpdmUgYW50aS1zcGFtIGZlYXR1cmVzLiBXaGVuIHR1cm5lZCBvbiwgdGhpcyBhbGxvd3MgYW55IGdpdmVuIElQIGFkZHJlc3MgdG8gb25seSBnZW5lcmF0ZSAxMCBlbWFpbHMgcGVyIGhvdXIuPC9saT4NCjxsaT5TaG93IEZpZWxkIElEcy4gV2hlbiB0dXJuZWQgb24sIEZvcm1CdWlsZGVyIHdpbGwgZGlzcGxheSBmaWVsZCBpZHMgd2hlbiBhZGRpbmcgb3IgZWRpdGluZyBhIGZvcm0uPC9saT4NCjwvdWw+DQo8aDM+U3R5bGluZyBhbmQgQ1NTPC9oMz4NCjxwPlBhdWwgTm9vbmUgZ3JhY2lvdXNseSBwcm92aWRlcyB1cyBhbGwgd2l0aCBhIHByZXR0eSBnb29kIHN0YW5kYXJkIENTUyB0aGF0IHlvdSBjYW4gdXNlIGZvciBmb3Jtczo8L3A+DQo8cHJlPg0KCS8qIFNhbXBsZSBGb3JtQnVpbGRlciBDU1MgYmFzZSAqLw0KCWZvcm0ge21hcmdpbi10b3A6MH0NCglmb3JtLCB0ZCwgdGgsIGxpIHsgZm9udC1zaXplOiAxMDAlfQ0KCWZvcm0gZGl2IHttYXJnaW4tYm90dG9tOjB9DQoJZmllbGRzZXQgZGl2IHsNCgkJbWFyZ2luLWJvdHRvbTowLjVlbTsNCgkJbWFyZ2luLWxlZnQ6MWVtOw0KCX0NCglmaWVsZHNldCBkaXYgZGl2IHsNCgkJbWFyZ2luLXRvcDowLjVlbTsNCgkJbWFyZ2luLWxlZnQ6MWVtDQoJfQ0KCWZpZWxkc2V0IHsNCgkJbWFyZ2luLWJvdHRvbToxZW07DQoJCWJvcmRlcjoxcHggc29saWQgI0Y2MDsNCgkJcGFkZGluZzowLjVlbQ0KCX0NCglmaWVsZHNldCBsYWJlbCB7DQoJCXdpZHRoOmF1dG87DQoJfQ0KCWxlZ2VuZCB7DQoJCWNvbG9yOiNGRkY7DQoJCWJhY2tncm91bmQ6I0Y2MDsNCgkJZm9udC1zdHlsZTppdGFsaWM7DQoJCWZvbnQtc2l6ZToxLjJlbTsNCgkJbWFyZ2luLWJvdHRvbTowLjVlbTsNCgkJcGFkZGluZzowLjJlbTsNCgkJd2lkdGg6YXV0bzsNCgkJYm9yZGVyOjFweCBzb2xpZCAjQ0NDDQoJfQ0KCXRleHRhcmVhIHsNCgkJbWFyZ2luOiAwLjVlbSAwOw0KCQl3aWR0aDo5OCU7DQoJCWhlaWdodDogNmVtDQoJfQ0KDQoJLyogQXBwbHkgdGhpcyBjbGFzcyB0byB0ZXh0L3NlbGVjdCBpbnB1dCBmaWVsZHMgd2l0aCBzaG9ydGVyIGxhYmVscw0KCQl0byBoZWxwIGFsaWdubWVudCAqLw0KCS5zaG9ydC1sYWJlbCBsYWJlbCB7ZmxvYXQ6bGVmdDsgd2lkdGg6MTBlbX0NCgkuc2hvcnQtbGFiZWwgZmllbGRzZXQgZGl2IGlucHV0LA0KCS5zaG9ydC1sYWJlbCBmaWVsZHNldCBkaXYgc2VsZWN0IHt3aWR0aDoxNmVtfQ0KDQoJLyogUHJldHR5IHVwIHlvdXIgQ2FwdGNoYSBpbWFnZSBvdXRwdXQgKi8NCgkuY2FwdGNoYSB7DQoJCW1hcmdpbjowLjVlbSAwOw0KCQl3aWR0aDoyMDBweDsNCgkJdGV4dC1hbGlnbjpjZW50ZXINCgl9DQoJLmNhcHRjaGEgaW1nIHtib3JkZXI6MXB4IHNvbGlkICNGNjA7IG1hcmdpbi1ib3R0b206MC41ZW19DQoJLmNhcHRjaGEgaW5wdXQge3dpZHRoOjE5NnB4OyBtYXJnaW4tdG9wOjAuNWVtfQ0KDQoJLyogSnVzdCBhIGJpdCBtb3JlIHJvb20gZm9yIHRoZSBTdWJtaXQgYnV0dG9uICovDQoJLnN1Ym1pdCB7bWFyZ2luLXRvcDowLjVlbX0NCjwvcHJlPg0KDQo8aDM+Rm9ybSBUZW1wbGF0ZSBWYXJpYWJsZXM8L2gzPg0KDQo8aDM+Rm9ybSBUZW1wbGF0ZSBWYXJpYWJsZXM8L2gzPg0KPHA+WW91IGNhbiBlZGl0IGl0IHRvIG1ha2UgeW91ciBmb3JtIGxheW91dCBsb29rIGFueSB3YXkgeW91JiMwMzk7ZCBsaWtlLg0KICAgVG8gbWFrZSB0aGUgZm9ybSB3b3JrLCB5b3UmIzAzOTtsbCBuZWVkIHRvIGFsd2F5cyBpbmNsdWRlIHRoZSB7JGZiX2hpZGRlbn0gYW5kIHskc3VibWl0fQ0KICAgdGFncy48L3A+DQoNCjxwPllvdSBjYW4gYWNjZXNzIHlvdXIgZm9ybSBmaWVsZHMgZWl0aGVyIHVzaW5nIHRoZSAkZmllbGRzIGFycmF5IG9yIGJ5IGRpcmVjdGx5IGFjY2Vzc2luZyBmaWVsZHMgYnkgdGhlaXIgbmFtZXMgKGUuZy4sIHskbXlmaWVsZC0+aW5wdXR9ICk8L3A+DQoNCg0KPHA+RWFjaCBmaWVsZCBoYXMgdGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzOjwvcD4NCjx0YWJsZT4NCjx0cj48dGg+RmllbGQ8L3RoPjx0aD5WYWx1ZTwvdGg+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmRpc3BsYXk8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBzaG91bGQgYmUgZGlzcGxheWVkLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPnJlcXVpcmVkPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgaXMgcmVxdWlyZWQsIDAgb3RoZXJ3aXNlPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+cmVxdWlyZWRfc3ltYm9sPC90ZD48dGQ+dGhlIHN5bWJvbCBmb3IgcmVxdWlyZWQgZmllbGRzPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+Y3NzX2NsYXNzPC90ZD48dGQ+dGhlIENTUyBjbGFzcyBzcGVjaWZpZWQgZm9yIHRoaXMgZmllbGQ8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT52YWxpZDwvdGQ+PHRkPjEgaWYgdGhpcyBmaWVsZCBoYXMgcGFzc2VkIHZhbGlkYXRpb24sIDAgb3RoZXJ3aXNlPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+ZXJyb3I8L3RkPjx0ZD5UZXh0IG9mIHRoZSB2YWxpZGF0aW9uIHByb2JsZW0sIGluIHRoZSBldmVudCB0aGF0IHRoaXMgZmllbGQgZGlkIG5vdCB2YWxpZGF0ZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmhpZGVfbmFtZTwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIG5hbWUgc2hvdWxkIGJlIGhpZGRlbiwgMCBvdGhlcndpc2U8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5oYXNfbGFiZWw8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCB0eXBlIGhhcyBhIGxhYmVsPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+bmVlZHNfZGl2PC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgbmVlZHMgdG8gYmUgd3JhcHBlZCBpbiBhIERJViAob3IgdGFibGUgcm93LCBpZiB0aGF0JiMwMzk7cyB0aGUgd2F5IHlvdSBzd2luZyk8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5uYW1lPC90ZD48dGQ+dGhlIGZpZWxkJiMwMzk7cyBuYW1lPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aW5wdXQ8L3RkPjx0ZD50aGUgZmllbGQmIzAzOTtzIGlucHV0IGNvbnRyb2wgKGUuZy4sIHRoZSBpbnB1dCBmaWVsZCBpdHNlbGYpPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+b3A8L3RkPjx0ZD5hIGNvbnRyb2wgYnV0dG9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgZmllbGQgaWYgYXBwbGljYWJsZSAoZS5nLiwgdGhlIGRlbGV0ZSBidXR0b24gZm9yIGV4cGFuZGFibGUgdGV4dCBpbnB1dCk8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5pbnB1dF9pZDwvdGQ+PHRkPnRoZSBJRCBvZiB0aGUgZmllbGQmIzAzOTtzIGlucHV0ICh1c2VmdWwgZm9yIDxsYWJlbCBmb3I9JnF1b3Q7JnF1b3Q7Pik8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT50eXBlPC90ZD48dGQ+dGhlIGZpZWxkJiMwMzk7cyBkYXRhIHR5cGU8L3RkPjwvdHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KPHRyPjx0ZD5maWVsZC0+bXVsdGlwbGVfcGFydHM8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYSBjb2xsZWN0aW9uIG9mIGNvbnRyb2xzPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+bGFiZWxfcGFydHM8L3RkPjx0ZD4xIGlmIHRoZSBjb2xsZWN0aW9uIG9mIGNvbnRyb2xzIGhhcyBzZXBhcmF0ZSBsYWJlbHMgZm9yIGVhY2ggY29udHJvbDwvdGQ+PC90cj4NCjwvdGFibGU+DQoNCjxwPkluIGNlcnRhaW4gY2FzZXMsIGZpZWxkLT5pbnB1dCBpcyBhY3R1YWxseSBhbiBhcnJheSBvZiBvYmplY3RzIHJhdGhlciB0aGFuIGFuIGlucHV0LiBUaGlzIGhhcHBlbnMsIGZvciBleGFtcGxlLCBpbiBDaGVja0JveEdyb3VwcyBvciBSYWRpb0J1dHRvbkdyb3Vwcy4gRm9yIHRoZW0sIHlvdSBjYW4gaXRlcmF0ZSB0aHJvdWdoIGZpZWxkLT5pbnB1dC0+bmFtZSBhbmQgZmllbGQtPmlucHV0LT5pbnB1dHMuPC9wPg0KICAgIA0KPHA+QWRkaXRpb25hbCBzbWFydHkgdmFyaWFibGVzIHRoYXQgeW91IGNhbiB1c2UgaW5jbHVkZTo8L3A+DQo8dGFibGU+DQo8dHI+PHRoPlZhcmlhYmxlPC90aD48dGg+VmFsdWU8L3RoPjwvdHI+DQo8dHI+PHRkPnRvdGFsX3BhZ2VzPC90ZD48dGQ+bnVtYmVyIG9mIHBhZ2VzIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD50aGlzX3BhZ2U8L3RkPjx0ZD5udW1iZXIgZm8gdGhlIGN1cnJlbnQgcGFnZSBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+dGl0bGVfcGFnZV94X29mX3k8L3RkPjx0ZD5kaXNwbGF5cyAmcXVvdDtwYWdlIHggb2YgeSZxdW90OyBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+Y3NzX2NsYXNzPC90ZD48dGQ+Q1NTIENsYXNzIGZvciB0aGUgZm9ybTwvdGQ+PC90cj4NCjx0cj48dGQ+Zm9ybV9uYW1lPC90ZD48dGQ+Rm9ybSBuYW1lPC90ZD48L3RyPg0KPHRyPjx0ZD5mb3JtX2lkPC90ZD48dGQ+Rm9ybSBkYXRhYmFzZSBJRDwvdGQ+PC90cj4NCjx0cj48dGQ+cHJldjwvdGQ+PHRkPiZxdW90O0JhY2smcXVvdDsgYnV0dG9uIGZvciBtdWx0aXBhcnQgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPnN1Ym1pdDwvdGQ+PHRkPiZxdW90O0NvbnRpbnVlJnF1b3Q7IG9yICZxdW90O1N1Ym1pdCZxdW90OyBidXR0b24gZm9yIG11bHRpcGFydCBmb3JtcywgYWRqdXN0cyBhdXRvbWF0aWNhbGx5PC90ZD48L3RyPg0KPC90YWJsZT4NCjxwPkR1bm5vIHdoeSB5b3UmIzAzOTtkIHdhbnQgc29tZSBvZiB0aG9zZSwgYnV0IHRoZXJlIHlvdSBnby4uLjwvcD4NCg0KDQo8aDM+S25vd24gSXNzdWVzPC9oMz4NCjx1bD4NCjxsaT5Gb3JtQnVpbGRlciBpcyBub3QgeWV0IGludGVncmF0ZWQgd2l0aCBGcm9udEVuZCBVc2Vycy4gSXQgd2lsbCBiZS48L2xpPg0KPGxpPkZvcm1CdWlsZGVyIGNhbm5vdCB5ZXQgYmUgaW5saW5lZC4gVGhhdCBzaG91bGQgYmUgYSBzaW1wbGUgdXBncmFkZSBkb3duIHRoZSBsaW5lLjwvbGk+DQo8bGk+Rm9ybUJ1aWxkZXIgZG9lcyBub3QgeWV0IHN1cHBvcnQgcHJldHR5IHVybHMsIGFsdGhvdWdoIHRoYXQgc2hvdWxkbiYjMDM5O3QgbWF0dGVyIHNpbmNlIHRoZSB1c2VyIHNpZGUgaXMgcHJldHR5IHNpbXBsZS48L2xpPg0KPC91bD4NCg0KPGgzPlRyb3VibGVzaG9vdGluZzwvaDM+DQo8b2w+PGxpPkZpcnN0IHN0ZXAgaXMgdG8gY2hlY2sgeW91JiMwMzk7cmUgcnVubmluZyBDTVMgMS4xIG9yIGxhdGVyLjwvbGk+DQo8bGk+U2Vjb25kIHN0ZXAgaXMgdG8gcmVhZCBhbmQgdW5kZXJzdGFuZCB0aGUgY2F2ZWF0IGFib3V0IFdZU0lXWUcgZWRpdG9ycyB1cCBpbiB0aGUgc2VjdGlvbiA8ZW0+QWRkaW5nIGEgRm9ybSB0byBhIFBhZ2U8L2VtPi48L2xpPg0KPGxpPklmIHlvdSYjMDM5O3JlIG1pc3NpbmcgZmllbGRzIGluIGFuIGVtYWlsIHRoYXQgZ2V0cyBnZW5lcmF0ZWQsIGNoZWNrIHRoZSBkaXNwb3NpdGlvbiBmaWVsZCYjMDM5O3MgdGVtcGxhdGUsIGFuZCBtYWtlIHN1cmUgeW91JiMwMzk7cmUgc3BlY2lmeWluZyB0aGUgbWlzc2luZyBmaWVsZHMuIFNlZW1zIG9idmlvdXMsIGJ1dCBpdCYjMDM5O3MgYW4gZWFzeSBtaXN0YWtlIHRvIG1ha2UuPC9saT4NCjxsaT5VbmNoZWNrIHRoZSAmcXVvdDtIaWRlIEVycm9ycyZxdW90OyBjaGVja2JveCBpbiB0aGUgZ2xvYmFsIG9wdGlvbnMsIGFuZCBzZWUgd2hhdCBtZXNzYWdlIGdldHMgZGlzcGxheWVkIHdoZW4geW91IHN1Ym1pdCB5b3VyIGZvcm0uPC9saT4NCjxsaT5KdXN0IG1lc3MgYXJvdW5kIGFuZCB0cnkgY2xpY2tpbmcgb24gbGlua3MgYW5kIGljb25zIGFuZCBzdHVmZi4gU2VlIHdoYXQgaGFwcGVucy48L2xpPg0KPGxpPkxhc3QgcmVzcG9ydCBpcyB0byBlbWFpbCBtZSBvciBjYXRjaCBtZSBvbiBJUkMgYW5kIHdlIGNhbiBnbyBmcm9tIHRoZXJlLjwvbGk+DQo8L29sPiANCjxwPlRoaXMgaXMgbm8gbG9uZ2VyIGEgcGFydGljdWxhcmx5IGVhcmx5IHZlcnNpb24sIGJ1dCBpdCBpcyBwcm9iYWJseSBzdGlsbCBidWdneS4gV2hpbGUgSSYjMDM5O3ZlIGRvbmUgYWxsIEkgY2FuDQp0byBtYWtlIHN1cmUgbm8gZWdyZWdpb3VzIGJ1Z3MgaGF2ZSBjcmVwdCBpbiwgSSBoYXZlIHRvIGFkbWl0IHRoYXQgZHVyaW5nIGVhcmx5IHRlc3RpbmcsIHRoaXMgcHJvZ3JhbQ0KcmV2ZWFsZWQgc2V2ZW4gY29ja3JvYWNoZXMsIHR3byBlYXJ3aWdzLCBhIHNtYWxsIGZhbWlseSBvZiBhcGhpZHMsIGFuZCBhIHdhbGtpbmctc3RpY2sgaW5zZWN0LiBJdCBhbHNvDQphdGUgdGhlIG5laWdoYm9yJiMwMzk7cyBuYXN0eSBsaXR0bGUgeWFwIGRvZywgZm9yIHdoaWNoIEkgd2FzIGluYXBwcm9wcmlhdGVseSBncmF0ZWZ1bC48L3A+DQo8cD5UaGUgZmluYWwgcmVsZWFzZSB3aWxsIGluY2x1ZGUgYnVnIGZpeGVzLCBkb2N1bWVudGF0aW9uLCBhbmQgdW5jb25kaXRpb25hbCBsb3ZlLjwvcD4NCjxoMz5TdXBwb3J0PC9oMz4NCjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4NCjx1bD4NCjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlLCBGQVFzLCBvciB0byBmaWxlIGEgQnVnIFJlcG9ydCwgcGxlYXNlIHZpc2l0IHRoZSBDTVMgTWFkZSBTaW1wbGUgIDxhIGhyZWY9JnF1b3Q7aHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZyZxdW90Oz5EZXZlbG9wZXIgRm9yZ2U8L2E+LjwvbGk+DQo8bGk+VG8gb2J0YWluIGNvbW1lcmNpYWwgc3VwcG9ydCwgcGxlYXNlIHNlbmQgYW4gZW1haWwgdG8gdGhlIGF1dGhvciBhdCA8YSBocmVmPSZxdW90O21haWx0bzpzamdAY21zbW9kdWxlcy5jb20mcXVvdDs+PHNqZ0BjbXNtb2R1bGVzLmNvbT48L2E+LjwvbGk+DQo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSZxdW90O2h0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyZxdW90Oz5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi48L2xpPg0KPGxpPlRoZSBhdXRob3IgY2FuIG9mdGVuIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSZxdW90O2lyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2NtcyZxdW90Oz5DTVMgSVJDIENoYW5uZWw8L2E+LjwvbGk+DQo8bGk+TGFzdGx5LCB5b3UgbWF5IGhhdmUgc29tZSBzdWNjZXNzIGVtYWlsaW5nIHRoZSBhdXRob3IgZGlyZWN0bHkgYW5kIGdyb3ZlbGxpbmcgZm9yIGZyZWUgc3VwcG9ydC48L2xpPg0KPC91bD4NCjxwPkFzIHBlciB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkIGFzLWlzLiBQbGVhc2UgcmVhZCB0aGUgdGV4dA0Kb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuPC9wPg0KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+DQo8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMDcsIFNhbXVlbCBHb2xkc3RlaW4gPGEgaHJlZj0mcXVvdDttYWlsdG86c2pnQGNtc21vZHVsZXMuY29tJnF1b3Q7PjxzamdAY21zbW9kdWxlcy5jb20+PC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPg0KPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9JnF1b3Q7aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMJnF1b3Q7PkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+JzsKJGxhbmdbJ2NoYW5nZWxvZyddID0gJzx1bD4NCjxsaT5WZXJzaW9uIDAuNA0KCTx1bD4NCgkJPGxpPlVwcGVkIG1pbmltdW0gQ01TIHZlcnNpb24gdG8gMS4xPC9saT4NCgkJPGxpPk51bWVyb3VzIEJ1ZyBmaXhlczsgdG9vIG1hbnkgdG8gZW51bWVyYXRlIGhlcmU8L2xpPg0KCQk8bGk+TWFzc2l2ZSByZWppZ2dlcmluZyBvZiBjb2RlIHRvIHdvcmsgd2l0aCBDTVMgTVMgMS4xIHBhcmFtZXRlciBzYW5pdGl6aW5nIHJlZ2ltZTwvbGk+DQoJCTxsaT5BZGRlZCBmaWVsZCB0eXBlczogJnF1b3Q7VGV4dEZpZWxkIChNdWx0aXBsZSkmcXVvdDsgYW5kICZxdW90O0NvbXB1dGVkIEZpZWxkJnF1b3Q7PC9saT4NCgkJPGxpPkFkZGVkIGRpc3Bvc2l0aW9uczogJnF1b3Q7U2F2ZSBSZXN1bHRzIHRvIEZpbGUgQmFzZWQgb24gUHVsbGRvd24mcXVvdDsgYW5kICZxdW90O1NhdmUgUmVzdWx0cyB0byBGaWxlKHMpIEJhc2VkIG9uIE11bHRpcGxlIFNlbGVjdGlvbnMmcXVvdDsoQ2FsZ3V5KTwvbGk+DQoJCTxsaT5BZGRlZCBuZWF0LW8gQUpBWC15IHRlbXBsYXRlLWNvcHlpbmcgZm9yIEZvcm0gVGVtcGxhdGVzLCBnYXZlIHZlcnNpb25zIG9mIG9sZCB0YWJsZS1iYXNlZCB0ZW1wbGF0ZXMgdG8gc29vdGhlIHRoZSByYWdpbmcgbWFzc2VzLjwvbGk+DQoJCTxsaT5BZGRlZCBhYmlsaXR5IHRvIHBhc3MgZGVmYXVsdCB2YWx1ZXMgdG8gZm9ybSBlbGVtZW50cyBmcm9tIG1vZHVsZSB0YWcgdXNpbmcgdmFsdWVfRklFTEROQU1FPSZxdW90O3ZhbHVlJnF1b3Q7IHN5bnRheCAoQ2FsZ3V5KTwvbGk+DQoJCTxsaT5BZGRlZCBvcHRpb24gdG8gZGlzcGxheSBmaWVsZCBpZHMgaW4gYWRtaW4gKENhbGd1eSk8L2xpPg0KCTwvdWw+DQo8L2xpPg0KPGxpPlZlcnNpb24gMC4zDQogICA8dWw+DQogICAgICA8bGk+QWRkZWQgQ2FwdGNoYSBtb2R1bGUgc3VwcG9ydC48L2xpPg0KICAgICAgPGxpPlJld29ya2VkIGxhYmVsaW5nIG9mIGZvcm0gZWxlbWVudHMgdG8gYmUgWEhUTUwgY29tcGxpYW50PC9saT4NCiAgICAgIDxsaT5BZGRlZCBQYXVsIE5vb25lJiMwMzk7cyBuZXcsIGltcHJvdmVkIGNvbnRhY3QgZm9ybSB0ZW1wbGF0ZXM8L2xpPg0KICAgICAgPGxpPkltcGxlbWVudGF0aW9uIG9mIEVtYWlsIFN1YmplY3QgRmllbGQ8L2xpPg0KICAgICAgPGxpPkFkZGVkIGFkbWluLXNwZWNpZmlhYmxlIHZhbHVlcyB0byBoaWRkZW4gZmllbGQgdHlwZSwgd2hpY2ggbWF5IGNvbnRhaW4gcGFyc2FibGUgc21hcnR5IHRhZ3M8L2xpPg0KICAgICAgPGxpPlRleHQgQXJlYSBGaWVsZCBub3cgYWxsb3dzIHNwZWNpZmljYXRpb24gb2Ygcm93cyBhbmQgY29scyBpbiB0aGUgYWRtaW4sIGluc3RlYWQgb2YgQ1NTPC9saT4NCiAgICAgIDxsaT5BZGRlZCBEcmFnJiMwMzk7biYjMDM5O0Ryb3AgcmVvcmRlcmluZyBvZiBmb3JtIGZpZWxkcy48L2xpPg0KICAgICAgPGxpPkFkZGVkIG5vbi1ibGFuayBmaWVsZCBuYW1lIGFuZCB1bmlxdWUgZmllbGQgbmFtZSBnbG9iYWwgY29uZmlndXJhdGlvbiBvcHRpb25zIGFuZCB2YWxpZGF0aW9uPC9saT4NCiAgICAgIDxsaT5JbXBsZW1lbnRlZCB0ZW1wbGF0ZWQgZGlzcGxheSBvZiBmb3JtIHJlc3VsdHMgdXBvbiBzdWJtaXNzaW9uIGluIGFkZGl0aW9uIHRvIHBhZ2UgcmVkaXJlY3Rpbmc8L2xpPg0KICAgICAgPGxpPjwvbGk+DQogICA8L3VsPg0KPC9saT4NCjxsaT5WZXJzaW9uIDAuMi40IC0gMDkgTWF5IDIwMDcNCiAgIDxwPkJpZyByZWxlYXNlOjx1bD4NCiAgIDxsaT5BZGRlZCAmcXVvdDtFbWFpbCBGb3JtIHRvIFVzZXItU3VwcGxpZWQgQWRkcmVzcyZxdW90OyBkaXNwb3NpdGlvbi48L2xpPg0KICAgPGxpPkFkZGVkICZxdW90O1RpbWVQaWNrZXImcXVvdDsgZmllbGQgdHlwZS4gU3BsaXQgJnF1b3Q7TGluayZxdW90OyBmaWVsZCBpbnRvIGEgJnF1b3Q7VXNlci1zdXBwbGllZCBMaW5rJnF1b3Q7IGZpZWxkIGFuZCBhICZxdW90O1N0YXRpYyBMaW5rJnF1b3Q7IGZpZWxkLjwvbGk+DQogICA8bGk+QWRkZWQgSFRNTCBlbWFpbCBvcHRpb24gYW5kIGF1dG8tdGVtcGxhdGVzIGZvciBhbGwgZW1haWwgZGlzcG9zaXRpb25zLjwvbGk+DQogICA8bGk+QWRkZWQgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcy48L2xpPg0KICAgPGxpPkFkZGVkIFhNTC1iYXNlZCBpbXBvcnQgYW5kIGV4cG9ydCBvZiBmb3Jtcy48L2xpPg0KICAgPC91bD4NCiAgIDwvcD4NCjwvbGk+DQo8bGk+VmVyc2lvbiAwLjIuMw0KICAgPHA+QWRkIHRoZSBhYmlsaXR5IHRvIGNhbGwgYSBzZWxlY3RhYmxlIHVzZXIgZGVmaW5lZCB0YWcgdXBvbiBkaXNwb3NpdGlvbiBvZiB0aGUgZm9ybS48L3A+DQo8L2xpPg0KPGxpPlZlcnNpb24gMC4yLjINCiAgIDxwPk1hbnkgdGhhbmtzIHRvIFV0dGVyIERlc2lnbiBmb3Igc3BvbnNvcmluZyBzb21lIGNoYW5nZXMgYW5kIGJ1Z2ZpeGVzLCB3aGljaCBpbmNsdWRlOg0KICAgPHVsPg0KICAgICAgPGxpPkFkZGVkIGZpbGUgdXBsb2FkIGNhcGFiaWxpdGllcyB0byB0aGUgZW1haWwgZGlzcG9zaXRpb248L2xpPg0KICAgICAgPGxpPkFkZCBQYWdlU2V0U3RhcnQgYW5kIFBhZ2VTZXRFbmQgZmllbGQgdHlwZXMNCiAgICAgIDxwPlRoZXNlIGZpZWxkIHR5cGVzIGFsbG93IHlvdSB0byBjcmVhdGUgZmllbGRzZXRzIGluIHlvdXIgZm9ybSwgYW5kIG9yZ2FuaXNlDQogICAgICB5b3VyIGZpZWxkcyBsb2dpY2FsbHkgZm9yIHRoZSB1c2VyLiAgWW91IGNhbiBldmVuIG5lc3QgZmllbGRzZXRzLCBhbmQNCiAgICAgIGFzc29jaWF0ZSBhIHN0eWxlIHdpdGggdGhlbSBhcHByb3ByaWF0ZWx5LiAgVGhlIGRlZmF1bHQgdGVtcGxhdGUgd2FzIGNoYW5nZWQNCiAgICAgIHRvIHByZXZlbnQgaXQgZnJvbSB3cmFwcGluZyBhIGRpdiBhcm91bmQgdGhlc2UgdHlwZXMgb2YgZmllbGRzLg0KICAgICAgPC9wPg0KICAgICAgPC9saT4NCiAgICAgIDxsaT5GaXhlZCBhIHByb2JsZW0gd2l0aCBEQVRFVElNRSBmaWVsZHMgb24gaW5zdGFsbA0KICAgICAgPHA+VGhpcyBzb2x2ZXMgYSBwcm9ibGVtIHdoZW4gb24gaW5zdGFsbCB0aGUgcmVzcG9uc2UgdGFibGUgd291bGQgc29tZXRpbWVzIG5vdCBnZXQgY3JlYXRlZCB3aGVuIHVzaW5nIGFkb2RiIGxpdGU8L2xpPg0KICAgICAgPC9saT4NCiAgIDwvdWw+DQogICA8L3A+DQo8L2xpPg0KPGxpPlZlcnNpb24gMC4yIC0gMTQgTm92ZW1iZXIgMjAwNi4gQ2FsZ3V5ICZhbXA7YW1wOyB0c3cmIzAzOTtzIGJ1ZyBmaXhlcyBmb3IgZmllbGQgcmUtb3JkZXJpbmcgYW5kIGN1c3RvbSB0ZW1wbGF0ZXMuIEFkZGl0aW9uYWwgYnVnIGZpeGVzIGZvciBmaWVsZCBsYWJlbHMuPC9saT4NCjxsaT5WZXJzaW9uIDAuMSAtIDggSnVseSAyMDA2LiBJbml0aWFsIFJlbGVhc2U8L2xpPg0KPC91bD4nOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My45MTY1ODQxMTAuMTE1MjU0OTU4My4xMTgyMzQxNjcxLjExODM0NDgzMjkuOSc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjExODM0NDgzMjkuOS45LnV0bWNjbj0ocmVmZXJyYWwpfHV0bWNzcj1mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZ3x1dG1jY3Q9L2luZGV4LnBocC90b3BpYywxMzE3MS4wL3RvcGljc2Vlbi5odG1sfHV0bWNtZD1yZWZlcnJhbCc7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lang/ext/lt_LT.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0Zvcm0gQnVpbGRlcic7CiRsYW5nWydmaWVsZF90eXBlXyddID0gJ0xhdWtlbGlvIHRpcGFzIG5lbnVzdGF0eXRhcyc7CiRsYW5nWydmaWVsZF90eXBlX0ZpZWxkc2V0RW5kJ10gPSAnLUZpZWxkc2V0IHBhYmFpZ2EnOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldFN0YXJ0J10gPSAnLUZpZWxkc2V0IHByYWR6aWEnOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0RmllbGQnXSA9ICdUZXh0IElucHV0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEFyZWFGaWVsZCddID0gJ1RleHQgQXJlYSc7CiRsYW5nWydmaWVsZF90eXBlX0NoZWNrYm94RmllbGQnXSA9ICdDaGVjayBCb3gnOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEdyb3VwRmllbGQnXSA9ICdDaGVjayBCb3ggR3JvdXAnOwokbGFuZ1snZmllbGRfdHlwZV9QdWxsZG93bkZpZWxkJ10gPSAnUHVsbGRvd24nOwokbGFuZ1snZmllbGRfdHlwZV9NdWx0aXNlbGVjdEZpZWxkJ10gPSAnTXVsdGlzZWxlY3QnOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0ZVBpY2tlckZpZWxkJ10gPSAnSkFWIHZhbHN0aWrFsyBwYXNpcmlua2ltYXMnOwokbGFuZ1snZmllbGRfdHlwZV9Db3VudHJ5UGlja2VyRmllbGQnXSA9ICcmU2Nhcm9uO2FsaWVzIHBhc2lyaW5raW1hcyc7CiRsYW5nWydmaWVsZF90eXBlX0RhdGVQaWNrZXJGaWVsZCddID0gJ0RhdG9zIHBhc2lyaW5raW1hcyc7CiRsYW5nWydmaWVsZF90eXBlX1RpbWVQaWNrZXJGaWVsZCddID0gJ0xhaWtvIHBhc2lyaW5raW1hcyc7CiRsYW5nWydmaWVsZF90eXBlX1JhZGlvR3JvdXBGaWVsZCddID0gJ1JhZGlvIEJ1dHRvbiBHcm91cCc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGlyZWN0b3InXSA9ICcqRW1haWwgUmVzdWx0cyBCYXNlZCBvbiBQdWxsZG93bic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWwnXSA9ICcqRW1haWwgUmVzdWx0cyB0byBzZXQgQWRkcmVzcyhlcyknOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsQ29uZmlybWF0aW9uJ10gPSAnKlZhbGlkYXRlLXZpYS1FbWFpbCBBZGRyZXNzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25GaWxlJ10gPSAnKldyaXRlIFJlc3VsdHMgdG8gRmxhdCBGaWxlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EYXRhYmFzZSddID0gJypTdG9yZSBSZXN1bHRzIGluIERhdGFiYXNlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Vc2VyVGFnJ10gPSAnKkNhbGwgQSBVc2VyIERlZmluZWQgVGFnIFdpdGggdGhlIEZvcm0gUmVzdWx0cyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGVsaXZlclRvRW1haWxBZGRyZXNzRmllbGQnXSA9ICcqRW1haWwgdG8gVXNlci1TdXBwbGllZCBFbWFpbCBBZGRyZXNzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUGFnZUJyZWFrRmllbGQnXSA9ICctUGFnZSBCcmVhayc7CiRsYW5nWydmaWVsZF90eXBlX0ZpbGVVcGxvYWRGaWVsZCddID0gJ0J5bG9zIGF0c2l1bnRpbWFzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsQWRkcmVzc0ZpZWxkJ10gPSAnRWwgcGEmc2Nhcm9uO3RvICZxdW90O051byBBZHJlc2FzJnF1b3Q7IGxhdWtlbGlzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsTmFtZUZpZWxkJ10gPSAnRWwgcGEmc2Nhcm9uO3RvICZxdW90O051byBWYXJkYXMmcXVvdDsgbGF1a2VsaXMnOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0aWNUZXh0RmllbGQnXSA9ICctU3RhdGluaXMgdGVrc3Rhcyc7CiRsYW5nWydmaWVsZF90eXBlX1N5c3RlbUxpbmtGaWVsZCddID0gJy1TdGF0aW7ElyBudW9yb2RhJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTGlua0ZpZWxkJ10gPSAnTnVvcm9kYSAoxK52ZWRhIGxhbmt5dG9qYXMpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfSGlkZGVuRmllbGQnXSA9ICdIaWRkZW4gRmllbGQnOwokbGFuZ1sndmFsaWRhdGlvbl9ub25lJ10gPSAnTm8gVmFsaWRhdGlvbic7CiRsYW5nWyd2YWxpZGF0aW9uX251bWVyaWMnXSA9ICdOdW1lcmljJzsKJGxhbmdbJ3ZhbGlkYXRpb25faW50ZWdlciddID0gJ0ludGVnZXInOwokbGFuZ1sndmFsaWRhdGlvbl9lbWFpbF9hZGRyZXNzJ10gPSAnRWwgcGEmc2Nhcm9uO3RvIGFkcmVzYXMnOwokbGFuZ1sndmFsaWRhdGlvbl9tdXN0X2NoZWNrJ10gPSAnVHVyaSBixat0IHBhxb55bcSXdGFzJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbWF0Y2gnXSA9ICdNYXRjaCBSZWd1bGFyIEV4cHJlc3Npb24nOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9ub21hdGNoJ10gPSAnRG9lc24mIzAzOTt0IG1hdGNoIFJlZ3VsYXIgRXhwcmVzc2lvbic7CiRsYW5nWydyZXF1aXJlZF9maWVsZF9taXNzaW5nJ10gPSAnQSB2YWx1ZSB3YXMgbm90IHN1cHBsaWVkIGZvciBhIHJlcXVpcmVkIGZpZWxkJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX3ZhbHVlJ10gPSAnUHJhJnNjYXJvbjtvbWUgxK92ZXN0aSAgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfbnVtYmVyJ10gPSAnUHJhJnNjYXJvbjtvbWUgxK92ZXN0aSBza2FpxI1pxbMgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX3ZhbGlkJ10gPSAnUHJhJnNjYXJvbjtvbWUgxK92ZXN0aSBnYWxpb2phbsSNacSFIHJlaWsmc2Nhcm9uO23EmSAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5faW50ZWdlciddID0gJ1BsZWFzZSBlbnRlciBhbiBpbnRlZ2VyIHZhbHVlIGZvciAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5fZW1haWwnXSA9ICdQcmEmc2Nhcm9uO29tZSDEr3Zlc3RpIGdhbGlvamFudMSvIGVsIHBhJnNjYXJvbjt0byBhZHJlc8SFJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1snbm90X3ZhbGlkX2VtYWlsJ10gPSAnJnF1b3Q7JXMmcXVvdDsgbmVwYW5hJnNjYXJvbjt1cyDEryBnYWxpb2phbnTEryBlbCBwYSZzY2Fyb247dG8gYWRyZXPEhSEnOwokbGFuZ1sncGxlYXNlX2VudGVyX25vX2xvbmdlciddID0gJ1ByYSZzY2Fyb247b21lIMSvdmVzdGkgbmVkYXVnaWF1IGthaXAgICVzIHNpbWJvbGnFsyc7CiRsYW5nWyd0aXRsZV9saXN0X2RlbGltaXRlciddID0gJ0NoYXJhY3RlciB0byB1c2UgYXMgZGVsaW1pdGVyIGluIHJlc3VsdHMgdGhhdCByZXR1cm4gbW9yZSB0aGFuIG9uZSB2YWx1ZSc7CiRsYW5nWyd5b3VfbmVlZF9wZXJtaXNzaW9uJ10gPSAnWW91IG5lZWQgdGhlICZxdW90OyVzJnF1b3Q7IHBlcm1pc3Npb24gdG8gcGVyZm9ybSB0aGF0IG9wZXJhdGlvbi4nOwokbGFuZ1snbGFja3Blcm1pc3Npb24nXSA9ICdTb3JyeSEgWW91IGRvbiYjMDM5O3QgaGF2ZSBhZGVxdWF0ZSBwcml2aWxlZ2VzIHRvIGFjY2VzcyB0aGlzIHNlY3Rpb24uJzsKJGxhbmdbJ2ZpZWxkX29yZGVyX3VwZGF0ZWQnXSA9ICdMYXVrZWxpxbMgdHZhcmthIGF0bmF1amludGEuJzsKJGxhbmdbJ2Zvcm1fZGVsZXRlZCddID0gJ0Zvcm1hIHBhJnNjYXJvbjthbGludGEuJzsKJGxhbmdbJ2ZpZWxkX2RlbGV0ZWQnXSA9ICdMYXVrZWxpcyBwYSZzY2Fyb247YWxpbnRhcy4nOwokbGFuZ1snY29uZmlndXJhdGlvbl91cGRhdGVkJ10gPSAnTnVzdGF0eW1haSBhdG5hdWppbnRpLic7CiRsYW5nWyd5b3VfbXVzdF9jaGVjayddID0gJ1R1cml0ZSBwYcW+eW3El3RpICZxdW90OyVzJnF1b3Q7IGplaSBub3JpdGUgdMSZc3RpJzsKJGxhbmdbJ211c3Rfc3BlY2lmeV9vbmVfZGVzdGluYXRpb24nXSA9ICdZb3UgbmVlZCB0byBzcGVjaWZ5IGF0IGxlYXN0IG9uZSBkZXN0aW5hdGlvbiBhZGRyZXNzISc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2Zvcm0nXSA9ICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoZSBmb3JtICVzPyc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2ZpZWxkJ10gPSAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGUgZmllbGQgJXM/JzsKJGxhbmdbJ25vdGljZV9zZWxlY3RfdHlwZSddID0gJ0FkdmFuY2VkIG9wdGlvbnMgYXJlIG5vdCBhdmFpbGFibGUgdW50aWwgdGhlIGZpZWxkIHR5cGUgaGFzIGJlZW4gc2V0Lic7CiRsYW5nWydmaWVsZF9uYW1lX2luX3VzZSddID0gJ1RoZSBmaWVsZCBuYW1lICZxdW90OyVzJnF1b3Q7IGlzIGFscmVhZHkgaW4gdXNlLiBQbGVhc2UgdXNlIHVuaXF1ZSBmaWVsZCBuYW1lcy4nOwokbGFuZ1snYW5vbnltb3VzJ10gPSAnQW5vbnltb3VzJzsKJGxhbmdbJ2FiYnJldmlhdGlvbl9sZW5ndGgnXSA9ICdMZW46ICVzJzsKJGxhbmdbJ2JveGVzJ10gPSAnJXMgYm94ZXMnOwokbGFuZ1snb3B0aW9ucyddID0gJyVzIG9wdGlvbnMnOwokbGFuZ1sndGV4dF9sZW5ndGgnXSA9ICclcyBjaGFycy4nOwokbGFuZ1snb3JkZXInXSA9ICdPcmRlcic7CiRsYW5nWyd1bnNwZWNpZmllZCddID0gJ1tuZW51cm9keXRhXSc7CiRsYW5nWydhZGRlZCddID0gJ3ByaWTEl3RhJzsKJGxhbmdbJ3VwZGF0ZWQnXSA9ICdhdG5hdWppbnRhJzsKJGxhbmdbJ3NvcnRfb3B0aW9ucyddID0gJ1NvcnQgb3B0aW9ucyBvbiBvdXRwdXQnOwokbGFuZ1snc2VsZWN0X29uZSddID0gJ1NlbGVjdCBPbmUnOwokbGFuZ1snc2VsZWN0X3R5cGUnXSA9ICdTZWxlY3QgVHlwZSc7CiRsYW5nWyd0byddID0gJ1RvJzsKJGxhbmdbJ3llcyddID0gJ1RhaXAnOwokbGFuZ1snbm8nXSA9ICdOZSc7CiRsYW5nWydyZWNpcGllbnRzJ10gPSAncmVjaXBpZW50cyc7CiRsYW5nWydkZXN0aW5hdGlvbl9jb3VudCddID0gJyVzIGRlc3RpbmF0aW9ucyc7CiRsYW5nWydzYXZlJ10gPSAnU2F2ZSc7CiRsYW5nWydhZGQnXSA9ICdBZGQnOwokbGFuZ1sndXBkYXRlJ10gPSAnVXBkYXRlJzsKJGxhbmdbJ3NhdmVfYW5kX2NvbnRpbnVlJ10gPSAnU2F2ZSBhbmQgQ29udGludWUgRWRpdGluZyc7CiRsYW5nWydpbmZvcm1hdGlvbiddID0gJ0luZm9ybWF0aW9uJzsKJGxhbmdbJ2F1dG9tYXRpYyddID0gJ0F1dG9tYXRpYyc7CiRsYW5nWydmb3JtcyddID0gJ0Zvcm1zJzsKJGxhbmdbJ2Zvcm0nXSA9ICdGb3JtICVzJzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb24nXSA9ICdDb25maWd1cmF0aW9uJzsKJGxhbmdbJ3RhYl9tYWluJ10gPSAnTWFpbic7CiRsYW5nWyd0YWJfYWRkaXRpb25hbCddID0gJ0Zvcm0gU2V0dGluZ3MnOwokbGFuZ1sndGFiX2FkdmFuY2VkJ10gPSAnQWR2YW5jZWQgU2V0dGluZ3MnOwokbGFuZ1sndGFiX3RhYmxlbGF5b3V0J10gPSAnVGFibGUtYmFzZWQgTGF5b3V0IE9wdGlvbnMnOwokbGFuZ1sndGFiX3RlbXBsYXRlbGF5b3V0J10gPSAnVGVtcGxhdGUgTGF5b3V0IE9wdGlvbnMnOwokbGFuZ1snZmllbGRfcmVxdWlyZW1lbnRfdXBkYXRlZCddID0gJ0ZpZWxkIHJlcXVpcmVkIHN0YXRlIHVwZGF0ZWQuJzsKJGxhbmdbJ21heGltdW1fc2l6ZSddID0gJ01heC4gU2l6ZSc7CiRsYW5nWydwZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ0V4dGVuc2lvbnMnOwokbGFuZ1sncGVybWl0dGVkX2ZpbGV0eXBlcyddID0gJ0FsbG93ZWQgZmlsZSB0eXBlcyc7CiRsYW5nWydmaWxlX3Rvb19sYXJnZSddID0gJ1VwbG9hZGVkIGZpbGUgaXMgdG9vIGxhcmdlISBNYXhpbXVtIHNpemUgaXM6JzsKJGxhbmdbJ2lsbGVnYWxfZmlsZV90eXBlJ10gPSAnVGhpcyB0eXBlIG9mIGZpbGUgbWF5IG5vdCBiZSB1cGxvYWRlZC4gUGxlYXNlIGNoZWNrIHRoYXQgdGhlIGV4dGVuc2lvbiBpcyBjb3JyZWN0Lic7CiRsYW5nWyd1cGxvYWQnXSA9ICdVcGxvYWQnOwokbGFuZ1snZm9ybV9pbXBvcnRlZCddID0gJ0Zvcm0gSW1wb3J0ZWQuJzsKJGxhbmdbJ2Zvcm1faW1wb3J0X2ZhaWxlZCddID0gJ0Zvcm0gaW1wb3J0IGZhaWxlZCEgVGhlcmUgd2FzIGEgcHJvYmxlbSB3aXRoIHRoZSBmb3JtYXQgb2YgdGhlIFhNTCBmaWxlLic7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHVsZSB1bmluc3RhbGxlZC4nOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnTW9kdWxlIHZlcnNpb24gJXMgaW5zdGFsbGVkLic7CiRsYW5nWyd1cGdyYWRlZCddID0gJ01vZHVsZSB1cGdyYWRlZCB0byB2ZXJzaW9uICVzLic7CiRsYW5nWydidXR0b25fcHJldmlvdXMnXSA9ICdCYWNrLi4uJzsKJGxhbmdbJ2J1dHRvbl9zdWJtaXQnXSA9ICdTdWJtaXQgRm9ybSc7CiRsYW5nWydidXR0b25fY29udGludWUnXSA9ICdDb250aW51ZS4uLic7CiRsYW5nWyd2YWx1ZV9jaGVja2VkJ10gPSAnQ2hlY2tlZCc7CiRsYW5nWyd2YWx1ZV91bmNoZWNrZWQnXSA9ICdVbmNoZWNrZWQnOwokbGFuZ1snYWRkX29wdGlvbnMnXSA9ICdBZGQgTW9yZSBPcHRpb25zJzsKJGxhbmdbJ2RlbGV0ZV9vcHRpb25zJ10gPSAnRGVsZXRlIE1hcmtlZCBPcHRpb25zJzsKJGxhbmdbJ2FkZF9jaGVja2JveGVzJ10gPSAnQWRkIE1vcmUgQ2hlY2tib3hlcyc7CiRsYW5nWydkZWxldGVfY2hlY2tib3hlcyddID0gJ0RlbGV0ZSBNYXJrZWQgQ2hlY2tib3hlcyc7CiRsYW5nWydhZGRfYWRkcmVzcyddID0gJ0FkZCBBbm90aGVyIEFkZHJlc3MnOwokbGFuZ1snZGVsZXRlX2FkZHJlc3MnXSA9ICdEZWxldGUgTWFya2VkIEFkZHJlc3Nlcyc7CiRsYW5nWydhZGRfZGVzdGluYXRpb24nXSA9ICdBZGQgQW5vdGhlciBEZXN0aW5hdGlvbic7CiRsYW5nWydkZWxldGVfZGVzdGluYXRpb24nXSA9ICdEZWxldGUgTWFya2VkIERlc3RpbmF0aW9ucyc7CiRsYW5nWydzdXNwZWN0ZWRfc3BhbSddID0gJ1RvbyBtYW55IGVtYWlscyBnZW5lcmF0ZWQgZnJvbSB5b3VyIElQIGFkZHJlc3MuIEFudGktU3BhbSBjb2RlIGhhcyBwcmV2ZW50ZWQgZGVsaXZlcnkuJzsKJGxhbmdbJ3N1c3BlY3RlZF9zcGFtX2xvZyddID0gJ1N1c3BlY3RlZCBzcGFtIGZyb20gSVAgJXMgc3RvcHBlZC4nOwokbGFuZ1sndGl0bGVfdWR0X25hbWUnXSA9ICdVc2VyIERlZmluZWQgVGFnJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZHNfZGVzdHBhZ2UnXSA9ICdQYWdlIHRvIHJldHVybiB0byB3aXRoIHVwbG9hZHMgbGluayc7CiRsYW5nWyd0aXRsZV91cGxvYWRtb2R1bGVfc3VtbWFyeSddID0gJ1N1Ym1pdHRlZCB3aXRoIGZvcm1idWlsZGVyJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZHNfY2F0ZWdvcnknXSA9ICdVcGxvYWRzIGNhdGVnb3J5JzsKJGxhbmdbJ3RpdGxlX3NlbmR0b191cGxvYWRzJ10gPSAnU2VuZCB0aGlzIGZpbGUgdG8gdGhlIHVwbG9hZHMgbW9kdWxlJzsKJGxhbmdbJ3RpdGxlX2xlZ2VuZCddID0gJ0xlZ2VuZCc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX2xlbmd0aCddID0gJ01heGltdW0gTGVuZ3RoJzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2xhYmVsJ10gPSAnQ2hlY2tib3ggbGFiZWwnOwokbGFuZ1sndGl0bGVfY2hlY2tlZF92YWx1ZSddID0gJ1ZhbHVlIHdoZW4gY2hlY2tlZCc7CiRsYW5nWyd0aXRsZV91bmNoZWNrZWRfdmFsdWUnXSA9ICdWYWx1ZSB3aGVuIG5vdCBjaGVja2VkLic7CiRsYW5nWyd0aXRsZV9jaGVja2JveF9kZXRhaWxzJ10gPSAnQ2hlY2tib3ggR3JvdXAgRGV0YWlscyc7CiRsYW5nWyd0aXRsZV9kZWxldGUnXSA9ICdEZWxldGU/JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9vbmVfbWVzc2FnZSddID0gJyZxdW90O1NlbGVjdCBPbmUmcXVvdDsgVGV4dCc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fc3ViamVjdCddID0gJ1NlbGVjdGlvbiBTdWJqZWN0JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X2NvdW50cnknXSA9ICdEZWZhdWx0IFNlbGVjdGlvbic7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9zdGF0ZSddID0gJ0RlZmF1bHQgU2VsZWN0aW9uJzsKJGxhbmdbJ3RpdGxlX29wdGlvbl9uYW1lJ10gPSAnT3B0aW9uIE5hbWUnOwokbGFuZ1sndGl0bGVfb3B0aW9uX3ZhbHVlJ10gPSAnVmFsdWUgU3VibWl0dGVkJzsKJGxhbmdbJ3RpdGxlX3B1bGxkb3duX2RldGFpbHMnXSA9ICdQdWxsZG93biBPcHRpb25zJzsKJGxhbmdbJ3RpdGxlX211bHRpc2VsZWN0X2RldGFpbHMnXSA9ICdNdWx0aXNlbGVjdCBPcHRpb25zJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2FkZHJlc3MnXSA9ICdEZXN0aW5hdGlvbiBFbWFpbCBBZGRyZXNzJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fbmFtZSddID0gJyZxdW90O0Zyb20gbmFtZSZxdW90OyBmb3IgZW1haWwnOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9lbWFpbF9yZWdleCddID0gJ1VzZSByZWxheGVkIGVtYWlsIHZhbGlkYXRpb24nOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9yZWdleF9sb25nJ10gPSAnVXNlIHJlbGF4ZWQgZW1haWwgYWRkcmVzcyB2YWxpZGF0aW9uIChlLmcuLCBhbGxvdyAmcXVvdDt4QHkmcXVvdDsgaW5zdGVhZCBvZiByZXF1aXJpbmcgJnF1b3Q7eEB5LnRsZCZxdW90OyknOwokbGFuZ1sndGl0bGVfZW1haWxfZnJvbV9hZGRyZXNzJ10gPSAnJnF1b3Q7RnJvbSBhZGRyZXNzJnF1b3Q7IGZvciBlbWFpbCc7CiRsYW5nWyd0aXRsZV9lbWFpbF9lbmNvZGluZyddID0gJ0VtYWlsIGNoYXJhY3RlciBzZXQgZW5jb2RpbmcnOwokbGFuZ1sndGl0bGVfZGlyZWN0b3JfZGV0YWlscyddID0gJ1B1bGxkb3duLWJhc2VkIEVtYWlsZXIgRGV0YWlscyc7CiRsYW5nWyd0aXRsZV9maWxlX25hbWUnXSA9ICdGaWxlIE5hbWUnOwokbGFuZ1sndGl0bGVfZW1haWxfc3ViamVjdCddID0gJ0VtYWlsIFN1YmplY3QgTGluZSc7CiRsYW5nWyd0aXRsZV9mb3JtX25hbWUnXSA9ICdGb3JtIE5hbWUnOwokbGFuZ1sndGl0bGVfZm9ybV9zdGF0dXMnXSA9ICdGb3JtIFN0YXR1cyc7CiRsYW5nWyd0aXRsZV9yZWFkeV9mb3JfZGVwbG95bWVudCddID0gJ1JlYWR5IGZvciBEZXBsb3ltZW50JzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTEnXSA9ICdOb3QgUmVhZHknOwokbGFuZ1sndGl0bGVfcmVkaXJlY3RfcGFnZSddID0gJ1BhZ2UgdG8gcmVkaXJlY3QgdG8gYWZ0ZXIgZm9ybSBzdWJtaXNzaW9uJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTInXSA9ICdQbGVhc2UgYWRkIGEgZmllbGQgdG8gdGhlIGZvcm0gc28gdGhhdCB0aGUgdXNlciYjMDM5O3MgaW5wdXQgZ2V0cyBoYW5kbGVkLiBZb3UgY2FuJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeV9saW5rJ10gPSAndXNlIHRoaXMgc2hvcnRjdXQnOwokbGFuZ1sndGl0bGVfZm9ybV9hbGlhcyddID0gJ0Zvcm0gQWxpYXMnOwokbGFuZ1sndGl0bGVfZm9ybV9maWVsZHMnXSA9ICdGb3JtIEZpZWxkcyc7CiRsYW5nWyd0aXRsZV9maWVsZF9uYW1lJ10gPSAnRmllbGQgTmFtZSc7CiRsYW5nWyd0aXRsZV9yYWRpb2dyb3VwX2RldGFpbHMnXSA9ICdSYWRpbyBCdXR0b24gR3JvdXAgRGV0YWlscyc7CiRsYW5nWyd0aXRsZV9maWVsZF90eXBlJ10gPSAnRmllbGQgVHlwZSc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkzJ10gPSAndG8gY3JlYXRlIGEgZm9ybSBoYW5kbGluZyBmaWVsZC4nOwokbGFuZ1sndGl0bGVfYWRkX25ld19mb3JtJ10gPSAnQWRkIE5ldyBGb3JtJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbiddID0gJ1Nob3cgRm9ybSBCdWlsZGVyIFZlcnNpb24/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbl9sb25nJ10gPSAnVGhpcyB3aWxsIGVtYmVkIHlvdXIgaW5zdGFsbGVkIHZlcnNpb24gbnVtYmVyIG9mIEZvcm0gQnVpbGRlciBtb2R1bGUgaW4gYSBjb21tZW50LCB0byBhaWQgaW4gZGVidWdnaW5nJzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZmllbGQnXSA9ICdBZGQgTmV3IEZpZWxkJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fc3VibWl0X2J1dHRvbiddID0gJ0Zvcm0gU3VibWl0IEJ1dHRvbiBUZXh0JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5J10gPSAnQWRkIEphdmFzY3JpcHQgdG8gU3VibWl0IEJ1dHRvbiB0byBwcmV2ZW50IG11bHRpcGxlIHN1Ym1pc3Npb25zPyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eV9oZWxwJ10gPSAnQWRkIHNhZmV0eSBzY3JpcHQnOwokbGFuZ1sndGl0bGVfZm9ybV9uZXh0X2J1dHRvbiddID0gJ0Zvcm0gJnF1b3Q7TmV4dCZxdW90OyBCdXR0b24gVGV4dCAodXNlZCBmb3IgbXVsdGlwYWdlIGZvcm1zKSc7CiRsYW5nWyd0aXRsZV9mb3JtX3ByZXZfYnV0dG9uJ10gPSAnRm9ybSAmcXVvdDtQcmV2aW91cyZxdW90OyBCdXR0b24gVGV4dCAodXNlZCBmb3IgbXVsdGlwYWdlIGZvcm1zKSc7CiRsYW5nWyd0aXRsZV9maWVsZF92YWxpZGF0aW9uJ10gPSAnRmllbGQgVmFsaWRhdGlvbic7CiRsYW5nWyd0aXRsZV9mb3JtX2Nzc19jbGFzcyddID0gJ0NTUyBDbGFzcyBmb3IgdGhpcyBmb3JtJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2Nzc19jbGFzcyddID0gJ0NTUyBDbGFzcyBmb3IgdGhpcyBmaWVsZCc7CiRsYW5nWyd0aXRsZV9mb3JtX3JlcXVpcmVkX3N5bWJvbCddID0gJ1N5bWJvbCB0byBtYXJrIHJlcXVpcmVkIEZpZWxkcyc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZCddID0gJ1JlcXVpcmVkJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2xvbmcnXSA9ICdSZXF1aXJlIGEgcmVzcG9uc2UgZm9yIHRoaXMgRmllbGQnOwokbGFuZ1sndGl0bGVfaGlkZV9sYWJlbCddID0gJ0hpZGUgTGFiZWwnOwokbGFuZ1sndGl0bGVfaGlkZV9sYWJlbF9sb25nJ10gPSAnSGlkZSB0aGlzIGZpZWxkJiMwMzk7cyBuYW1lIG9uIEZvcm0nOwokbGFuZ1sndGl0bGVfdGV4dCddID0gJ1N0YXRpYyB0ZXh0IHRvIGRpc3BsYXknOwokbGFuZ1sndGl0bGVfZmllbGRfcmVnZXgnXSA9ICdWYWxpZGF0aW9uIFJlZ2V4JzsKJGxhbmdbJ3RpdGxlX2xpbmVzX3RvX3Nob3cnXSA9ICdOdW1iZXIgb2YgTGluZXMgdG8gZGlzcGxheSc7CiRsYW5nWydub19kZWZhdWx0J10gPSAnTm8gRGVmYXVsdCc7CiRsYW5nWydyZWRpcmVjdF9hZnRlcl9hcHByb3ZhbCddID0gJ1BhZ2UgdG8gcmVkaXJlY3QgYWZ0ZXIgYXBwcm92YWwnOwokbGFuZ1sndGl0bGVfcmVnZXhfaGVscCddID0gJ1RoaXMgcmVndWxhciBleHByZXNzaW9uIHdpbGwgb25seSBiZSB1c2VkIGlmICZxdW90O3ZhbGlkYXRpb24gdHlwZSZxdW90OyBpcyBzZXQgdG8gYSByZWdleC1yZWxhdGVkIG9wdGlvbi4gSW5jbHVkZSBhIGZ1bGwgUGVybC1zdHlsZSByZWdleCwgaW5jbHVkaW5nIHRoZSBzdGFydC9zdG9wIHNsYXNoZXMgYW5kIGZsYWdzIChlLmcuLCAmcXVvdDsvaW1hZ2VcLihcZCspL2kmcXVvdDspJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2FiYnJldiddID0gJ1JlcSYjMDM5O2QnOwokbGFuZ1sndGl0bGVfdGl0bGVfcG9zaXRpb24nXSA9ICdGaWVsZCBUaXRsZSBQb3NpdGlvbiAobm9uLUNTUyBMYXlvdXQgb25seSknOwokbGFuZ1sndGl0bGVfdGFibGVfbGF5b3V0X2xlZnQnXSA9ICdUaXRsZSBvbiBMZWZ0JzsKJGxhbmdbJ3RpdGxlX3RhYmxlX2xheW91dF9hYm92ZSddID0gJ1RpdGxlIEFib3ZlJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzJ10gPSAnSGlkZSBFcnJvcnMnOwokbGFuZ1sndGl0bGVfZm9ybV9kaXNwbGF5dHlwZSddID0gJ0Zvcm0gRGlzcGxheSBUeXBlJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzX2xvbmcnXSA9ICdQcmV2ZW50IGRlYnVnIC8gZXJyb3IgbWVzc2FnZXMgZnJvbSBiZWluZyBzZWVuIGJ5IHVzZXJzLic7CiRsYW5nWyd0aXRsZV9lbWFpbF90ZW1wbGF0ZSddID0gJ0VtYWlsIFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZSddID0gJ01heGltdW0gdXBsb2FkIGZpbGUgc2l6ZSAoa2lsb2J5dGVzKSc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX3NpemVfbG9uZyddID0gJ1RoaXMgbGltaXRhdGlvbiBpcyBpbiBhZGRpdGlvbiB0byBhbnkgbGltaXRzIHNldCBieSB0aGUgcGhwIG9yIHdlYiBzZXJ2ZXIgY29uZmlndXJhdGlvbic7CiRsYW5nWyd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ1Blcm1pdHRlZCBFeHRlbnNpb25zJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zX2xvbmcnXSA9ICdFbnRlciBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0LCBleGNsdWRpbmcgdGhlIGRvdCAoZS5nLiwgJnF1b3Q7anBnLGdpZixqcGVnJnF1b3Q7KS4gU3BhY2VzIHdpbGwgYmUgaWdub3JlZC4gTGVhdmluZyB0aGlzIGJsYW5rIG1lYW5zIHRoZXJlIHdpbGwgYmUgbm8gcmVzdHJpY3Rpb25zLic7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zJ10gPSAnRGlzcGxheSByZXN0cmljdGlvbnM/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnNfbG9uZyddID0gJ0Rpc3BsYXkgYW55IHNpemUgYW5kIGV4dGVuc2lvbiByZXN0cmljdGlvbnMgd2l0aCB0aGUgdXBsb2FkIGZpZWxkPyc7CiRsYW5nWyd0aXRsZV9mb3JtX3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgdG8gdXNlIHRvIERpc3BsYXkgRm9ybSc7CiRsYW5nWyd0aXRsZV9wYWdlX3hfb2ZfeSddID0gJ1BhZ2UgJXMgb2YgJXMnOwokbGFuZ1sndGl0bGVfbm9fYWR2YW5jZWRfb3B0aW9ucyddID0gJ0ZpZWxkIGhhcyBubyBhZHZhbmNlZCBvcHRpb25zLic7CiRsYW5nWyd0aXRsZV9mb3JtX3Vuc3BlY2lmaWVkJ10gPSAnVGV4dCB0byByZXR1cm4gZm9yIHVuc3BlY2lmaWVkIGZpZWxkIHZhbHVlcyc7CiRsYW5nWyd0aXRsZV9lbmFibGVfZmFzdGFkZF9sb25nJ10gPSAnRW5hYmxlIGZhc3QgZmllbGQgYWRkaW5nIHB1bGxkb3duIGZvciBmb3Jtcz8nOwokbGFuZ1sndGl0bGVfZW5hYmxlX2Zhc3RhZGQnXSA9ICdFbmFibGUgZmFzdCBmaWVsZCBhZGQgcHVsbGRvd24/JzsKJGxhbmdbJ3RpdGxlX2Zhc3RhZGQnXSA9ICdGYXN0IGZpZWxkIGFkZGVyJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9hbnRpc3BhbV9sb25nJ10gPSAnQ2xpY2tpbmcgdGhpcyB3aWxsIG9ubHkgYWxsb3cgMTAgZW1haWxzIHRvIGJlIHRyaWdnZXJlZCBmcm9tIGEgZ2l2ZW4gSVAgYWRkcmVzcyAocGVyIGhvdXIpLic7CiRsYW5nWyd0aXRsZV9lbmFibGVfYW50aXNwYW0nXSA9ICdFbmFibGUgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcz8nOwokbGFuZ1sndGl0bGVfeG1sX3RvX3VwbG9hZCddID0gJ1VwbG9hZCBmb3JtIGZyb20gWE1MIGZpbGUnOwokbGFuZ1sndGl0bGVfeG1sX3VwbG9hZF9mb3JtbmFtZSddID0gJ1VzZSB0aGlzIGZvcm0gbmFtZSc7CiRsYW5nWyd0aXRsZV9pbXBvcnRfbGVnZW5kJ10gPSAnWE1MIEZvcm0gSW1wb3J0JzsKJGxhbmdbJ3RpdGxlX3htbF91cGxvYWRfZm9ybWFsaWFzJ10gPSAnVXNlIHRoaXMgZm9ybSBhbGlhcyc7CiRsYW5nWyd0aXRsZV9odG1sX2VtYWlsJ10gPSAnR2VuZXJhdGUgSFRNTCBlbWFpbD8nOwokbGFuZ1sndGl0bGVfbGlua19hdXRvcG9wdWxhdGUnXSA9ICdBdXRvbWF0aWNhbGx5IHBvcHVsYXRlPyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZV9oZWxwJ10gPSAnQXV0b21hdGljYWxseSBwb3B1bGF0ZSB3aXRoIHRoZSBVUkwgb2YgdGhlIHBhZ2UgY29udGFpbmluZyB0aGUgZm9ybT8gKHRoaXMgb3ZlcnJpZGVzIHNpdGUgcGFnZSBsaW5rIG9wdGlvbiBiZWxvdyknOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9saW5rJ10gPSAnRGVmYXVsdCBsaW5rIFVSTCc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2xpbmtfdGl0bGUnXSA9ICdEZWZhdWx0IGxpbmsgdGV4dCc7CiRsYW5nWyd0aXRsZV9saW5rX3RvX3NpdGVwYWdlJ10gPSAnTGluayB0byBzaXRlIHBhZ2UnOwokbGFuZ1snbGlua19sYWJlbCddID0gJ0xpbmsgTGFiZWwnOwokbGFuZ1snbGlua19kZXN0aW5hdGlvbiddID0gJ0xpbmsgRGVzdGluYXRpb24gVVJMJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfc2V0J10gPSAnQ2hlY2tlZCBieSBEZWZhdWx0Pyc7CiRsYW5nWyd0aXRsZV8yNF9ob3VyJ10gPSAnVXNlIDI0LWhvdXIgY2xvY2s/JzsKJGxhbmdbJ3RpdGxlX2JlZm9yZV9ub29uJ10gPSAnQU0nOwokbGFuZ1sndGl0bGVfYWZ0ZXJfbm9vbiddID0gJ1BNJzsKJGxhbmdbJ2hlbHBfbGVhdmVlbXB0eSddID0gJ1RoaXMgZmllbGQgbWF5IGJlIGxlZnQgZW1wdHknOwokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX3RlbXBsYXRlJ10gPSAnVmFyaWFibGVzIEZvciBUZW1wbGF0ZSc7CiRsYW5nWydoZWxwX3N1Ym1pc3Npb25fZGF0ZSddID0gJ0RhdGUgb2YgU3VibWlzc2lvbic7CiRsYW5nWydoZWxwX3NlcnZlcl9uYW1lJ10gPSAnWW91ciBzZXJ2ZXInOwokbGFuZ1snaGVscF9zdWJfc291cmNlX2lwJ10gPSAnSVAgYWRkcmVzcyBvZiBwZXJzb24gdXNpbmcgZm9ybSc7CiRsYW5nWydoZWxwX3N1Yl91cmwnXSA9ICdVUkwgb2YgcGFnZSBjb250YWluaW5nIGZvcm0nOwokbGFuZ1snaGVscF9vdGhlcl9maWVsZHMnXSA9ICdPdGhlciBmaWVsZHMgd2lsbCBiZSBhdmFpbGFibGUgYXMgeW91IGFkZCB0aGVtIHRvIHRoZSBmb3JtLic7CiRsYW5nWydoZWxwX2RhdGVfZm9ybWF0J10gPSAnU2VlIDxhIGhyZWY9JnF1b3Q7aHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5kYXRlLnBocCZxdW90OyB0YXJnZXQ9X05FVz50aGUgUEhQIE1hbnVhbDwvYT4gZm9yIGZvcm1hdHRpbmcgaGVscC4nOwokbGFuZ1snaGVscF92YXJpYWJsZV9uYW1lJ10gPSAnVmFyaWFibGUnOwokbGFuZ1snaGVscF9mb3JtX2ZpZWxkJ10gPSAnRmllbGQgUmVwcmVzZW50ZWQnOwokbGFuZ1snbGlua19iYWNrX3RvX2Zvcm0nXSA9ICcmbGFxdW87IEJhY2sgdG8gRm9ybSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX3RlbXBsYXRlJ10gPSAnQ3JlYXRlIFNhbXBsZSBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2h0bWxfdGVtcGxhdGUnXSA9ICdDcmVhdGUgU2FtcGxlIEhUTUwtRW1haWwgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9oZWFkZXInXSA9ICdDcmVhdGUgU2FtcGxlIEhlYWRlcic7CiRsYW5nWydoZWxwX3RhYl9zeW1ib2wnXSA9ICdhIHRhYiBjaGFyYWN0ZXInOwokbGFuZ1sndGl0bGVfZmlsZV90ZW1wbGF0ZSddID0gJ1RlbXBsYXRlIGZvciBvbmUgbGluZSBvZiBvdXRwdXQgZmlsZSc7CiRsYW5nWyd0aXRsZV9maWxlX2hlYWRlciddID0gJ1RlbXBsYXRlIGZvciB0aGUgaGVhZGVyIG9mIG91dHB1dCBmaWxlJzsKJGxhbmdbJ3RpdGxlX2NvbmZpcm1hdGlvbl91cmwnXSA9ICdVUkwgdG8gY2xpY2sgZm9yIGZvcm0gY29uZmlybWF0aW9uJzsKJGxhbmdbJ25vX3JlZmVycmVyX2luZm8nXSA9ICdObyBIVFRQX1JFRkVSRVIgaW5mbyBhdmFpbGFibGUgKHByb2JhYmx5IGR1ZSB0byB1c2Ugb2YgVXNlciBFbWFpbCBWYWxpZGF0aW9uKSc7CiRsYW5nWyd2YWxpZGF0aW9uX3BhcmFtX2Vycm9yJ10gPSAnVmFsaWRhdGlvbiBQYXJhbWV0ZXIgRXJyb3IuIFBsZWFzZSBtYWtlIHN1cmUgeW91IGNvcHkgdGhlIFVSTCBmcm9tIHlvdXIgZW1haWwgY29ycmVjdGx5ISc7CiRsYW5nWyd2YWxpZGF0aW9uX3Jlc3BvbnNlX2Vycm9yJ10gPSAnVmFsaWRhdGlvbiBSZXBzb25zZSBFcnJvci4gUGxlYXNlIG1ha2Ugc3VyZSB5b3UgY29weSB0aGUgVVJMIGZyb20geW91ciBlbWFpbCBjb3JyZWN0bHkhJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbm9fZmllbGRfZXJyb3InXSA9ICdWYWxpZGF0aW9uIFJlcHNvbnNlIEVycm9yLiBObyBlbWFpbCB2YWxpZGF0aW9uIGZpZWxkIGluIHRoaXMgZm9ybSEnOwokbGFuZ1sndGl0bGVfZGF0ZV9mb3JtYXQnXSA9ICdEYXRlIEZvcm1hdCAoc3RhbmRhcmQgPGEgaHJlZj0mcXVvdDtodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwJnF1b3Q7PlBIUCBEYXRlIEZvcm1hdHM8L2E+KSc7CiRsYW5nWyd0aXRsZV91c2Vfd3lzaXd5ZyddID0gJ1VzZSBXWVNJV1lHIGVkaXRvciBmb3IgdGV4dCBBcmVhPyc7CiRsYW5nWydkaXNwdHlwZV90YWJsZSddID0gJ1RhYmxlL0NTUyc7CiRsYW5nWydkaXNwdHlwZV9jc3MnXSA9ICdQdXJlIENTUyc7CiRsYW5nWydkaXNwdHlwZV90ZW1wbGF0ZSddID0gJ0N1c3RvbSBUZW1wbGF0ZSc7CiRsYW5nWydhZG1pbmRlc2MnXSA9ICdBZGQsIGVkaXQgYW5kIG1hbmFnZSBpbnRlcmFjdGl2ZSBGb3Jtcyc7CiRsYW5nWydkYXRlX2phbnVhcnknXSA9ICdKYW51YXJ5JzsKJGxhbmdbJ2RhdGVfZmVicnVhcnknXSA9ICdGZWJydWFyeSc7CiRsYW5nWydkYXRlX21hcmNoJ10gPSAnTWFyY2gnOwokbGFuZ1snZGF0ZV9hcHJpbCddID0gJ0FwcmlsJzsKJGxhbmdbJ2RhdGVfbWF5J10gPSAnTWF5JzsKJGxhbmdbJ2RhdGVfanVuZSddID0gJ0p1bmUnOwokbGFuZ1snZGF0ZV9qdWx5J10gPSAnSnVseSc7CiRsYW5nWydkYXRlX2F1Z3VzdCddID0gJ0F1Z3VzdCc7CiRsYW5nWydkYXRlX3NlcHRlbWJlciddID0gJ1NlcHRlbWJlcic7CiRsYW5nWydkYXRlX29jdG9iZXInXSA9ICdPY3RvYmVyJzsKJGxhbmdbJ2RhdGVfbm92ZW1iZXInXSA9ICdOb3ZlbWJlcic7CiRsYW5nWydkYXRlX2RlY2VtYmVyJ10gPSAnRGVjZW1iZXInOwokbGFuZ1snc3VibWlzc2lvbl9lcnJvciddID0gJ1NvcnJ5ISBUaGVyZSB3YXMgYW4gZXJyb3IgaGFuZGxpbmcgeW91ciBmb3JtIHN1Ym1pc3Npb24uJzsKJGxhbmdbJ3N1Ym1pdF9lcnJvciddID0gJ0Zvcm1CdWlsZGVyIHN1Ym1pdCBlcnJvcjogJXMnOwokbGFuZ1sndXBsb2Fkc19lcnJvciddID0gJ0Vycm9yIGNvbW1pdHRpbmcgZmlsZSB0byB0aGUgdXBsb2FkcyBtb2R1bGU6ICVzJzsKJGxhbmdbJ25vdXBsb2Fkc19lcnJvciddID0gJ0NvdWxkIG5vdCBmaW5kIHRoZSB1cGxvYWRzIG1vZHVsZSc7CiRsYW5nWyd1cGxvYWRfYXR0YWNoX2Vycm9yJ10gPSAnVXBsb2FkL0F0dGFjaG1lbnQgZXJyb3Igb24gZmlsZSAlcyAodG1wX25hbWU6ICVzLCBvZiB0eXBlICVzKSc7CiRsYW5nWydzdWJtaXNzaW9uX2Vycm9yX2ZpbGVfbG9jayddID0gJ0Vycm9yLiBVbmFibGUgdG8gb2J0YWluIGxvY2sgZm9yIGZpbGUuJzsKJGxhbmdbJ2VtYWlsX2RlZmF1bHRfdGVtcGxhdGUnXSA9ICdGb3JtQnVpbGRlciBTdWJtaXNzaW9uJzsKJGxhbmdbJ2VtYWlsX3RlbXBsYXRlX25vdF9zZXQnXSA9ICc8YnIvPkVtYWlsIFRlbXBsYXRlIG5vdCB5ZXQgc2V0ISc7CiRsYW5nWydtaXNzaW5nX2Ntc19tYWlsZXInXSA9ICdGb3JtQnVpbGRlcjogQ2Fubm90IGZpbmQgcmVxdWlyZWQgbW9kdWxlIENNU01haWxlciEnOwokbGFuZ1sndXNlcl9hcHByb3ZlZF9zdWJtaXNzaW9uJ10gPSAnVXNlciBhcHByb3ZlZCBzdWJtaXNzaW9uICVzIGZyb20gJXMnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdCddID0gJ0V2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdEVycm9yJ10gPSAnRXZlbnQgdHJpZ2dlcmVkIGlmIHRoZXJlIGlzIGFuIGVycm9yIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZCc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtRGlzcGxheSddID0gJ0V2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBkaXNwbGF5ZWQnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdCddID0gJzxwPkV2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQuPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIFRoZSBmb3JtIG5hbWUgKHN0cmluZyk8L2xpPg0KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBUaGUgaW50ZXJuYWwgZm9ybSBpZCAoaW50KTwvbGk+DQo8bGk+PGVtPnZhbHVlXzxuYW1lPjwvZW0+IC0gU3VwcGx5IGEgZGVmYXVsdCB2YWx1ZSB0byBhIGZpZWxkIHdpdGggdGhlIHNwZWNpZmllZCBuYW1lLjwvbGk+DQo8L3VsPiAnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdEVycm9yJ10gPSAnPHA+RXZlbnQgdHJpZ2dlcmVkIGlmIHRoZXJlIGlzIGFuIGVycm9yIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZDwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBUaGUgZm9ybSBuYW1lIChzdHJpbmcpPC9saT4NCjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gVGhlIGludGVybmFsIGZvcm0gaWQgKGludCk8L2xpPg0KPGxpPjxlbT5lcnJvcjwvZW0+IC0gQSBsaXN0IG9mIGFsbCBrbm93biBlcnJvcnMgKHN0cmluZyk8L2xpPg0KPC91bD4gJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1EaXNwbGF5J10gPSAnPHA+RXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIGRpc3BsYXllZDwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBUaGUgZm9ybSBuYW1lIChzdHJpbmcpPC9saT4NCjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gVGhlIGludGVybmFsIGZvcm0gaWQgKGludCk8L2xpPg0KPC91bD4gJzsKJGxhbmdbJ3Bvc3RfaW5zdGFsbCddID0gJzxwPk1ha2Ugc3VyZSB0byBzZXQgdGhlICZxdW90O01vZGlmeSBGb3JtcyZxdW90OyBwZXJtaXNzaW9ucw0Kb24gdXNlcnMgd2hvIHdpbGwgYmUgYWRtaW5pc3RlcmluZyBmZWVkYmFjayBmb3Jtcy4gQWxzbywgaWYgeW91JiMwMzk7bGwgYmUgZW1haWxpbmcgZm9ybQ0KcmVzdWx0cywgYmUgc3VyZSB0byB1cGRhdGUgdGhlIENvbmZpZ3VyYXRpb24gYXBwcm9wcmlhdGVseS48L3A+DQo8cD5QbGVhc2UgYmUgYXdhcmUgdGhhdCBhIGZlZWRiYWNrIGZvcm0gc2hvdWxkIG5vdCBiZSBhY3RpdmUgKGUuZy4sIHVzYWJsZSBieSB0aGUgcHVibGljKSB3aGlsZQ0KeW91IGFyZSBzdGlsbCBlZGl0aW5nIHRoZSBmb3JtLiBZb3Ugc2hvdWxkIGNyZWF0ZSB0aGUgZm9ybSwgYW5kIHBsYWNlIHRoZSB0YWcgaW50byBhbiBhY3RpdmUNCmNvbnRlbnQgcGFnZSBvbmx5IHdoZW4geW91IGhhdmUgZmluaXNoZWQgZWRpdGluZy4gT3RoZXJ3aXNlLCBlcnJvbmVvdXMgcmVzdWx0cyBjb3VsZCBiZSByZXR1cm5lZC48L3A+DQo8cD5BZGRpdGlvbmFsbHksIHRoaXMgdmVyc2lvbiBkb2VzIG5vdCBzdXBwb3J0IHBhcmFsbGVsIGVkaXRpbmcgb2YgZm9ybXMuIFBsZWFzZSB0YWtlIGNhcmUgdGhhdA0Kb25seSBvbmUgYWRtaW4gaXMgZWRpdGluZyBhIGdpdmVuIGZvcm0gYXQgYSBnaXZlbiB0aW1lLjwvcD4nOwokbGFuZ1snaGVscCddID0gJzxoMz5XaGF0IERvZXMgVGhpcyBEbz88L2gzPg0KPHA+VGhlIEZvcm0gQnVpbGRlciBNb2R1bGUgYWxsb3dzIHlvdSB0byBjcmVhdGUgZmVlZGJhY2sgZm9ybXMgKGluIGZhY3QsIGl0JiMwMzk7cyBhIHJlcGxhY2VtZW50IG9mIHRoZSBvcmlnaW5hbCBGZWVkYmFjayBGb3JtIG1vZHVsZSksIHdpdGggdGhlIGFkZGVkIHBvd2VyIG9mIGRhdGFiYXNlIHN0b3JhZ2UuIFdpdGggaXRzIGNvbXBhbmlvbiBtb2R1bGUgRm9ybSBCcm93c2VyLCB5b3UgY2FuIHVzZSBpdCB0byBjcmVhdGUgc2ltcGxlIGRhdGFiYXNlIGFwcGxpY2F0aW9ucy48L3A+DQo8cD5UaGUgZm9ybXMgY3JlYXRlZCB1c2luZyB0aGUgRm9ybSBCdWlsZGVyIG1heSBiZSBpbnNlcnRlZA0KaW50byB0ZW1wbGF0ZXMgYW5kL29yIGNvbnRlbnQgcGFnZXMuIEZvcm1zIG1heSBjb250YWluIG1hbnkga2luZHMgb2YgaW5wdXRzLCBhbmQgbWF5IGhhdmUNCnZhbGlkYXRpb24gYXBwbGllZCB0byB0aGVzZSBpbnB1dHMuIFRoZSByZXN1bHRzIG9mIHRoZXNlIGZvcm1zIG1heSBiZSBoYW5kbGVkIGluIGEgdmFyaWV0eSBvZiB3YXlzLjwvcD4NCg0KPGgzPkhvdyBEbyBJIFVzZSBpdD88L2gzPg0KPFA+SW5zdGFsbCBpdCwgYW5kIHBva2UgYXJvdW5kIHRoZSBtZW51cy4gUGxheSB3aXRoIGl0LiBUcnkgY3JlYXRpbmcgZm9ybXMsIGFuZCBhZGRpbmcgdGhlbSB0byB5b3VyIGNvbnRlbnQuDQpJZiB5b3UgZ2V0IHN0dWNrLCBjaGF0IHdpdGggbWUgb24gdGhlICNjbXMgSVJDIGNoYW5uZWwsIHBvc3QgdG8gdGhlIGZvcnVtLCBzZW5kIG1lIGVtYWlsLCBvciwgaWYgeW91JiMwMzk7cmUNCnJlYWxseSBkZXNwZXJhdGUsIHJlYWQgdGhlIHJlc3Qgb2YgdGhpcyBwYWdlLjwvUD4NCg0KPGgzPkhvdyBEbyBJIENyZWF0ZSBhIEZvcm08L2gzPg0KPHA+SW4gdGhlIENNUyBBZG1pbiBNZW51LCB5b3Ugc2hvdWxkIGdldCBhIG5ldyBtZW51IGl0ZW0gY2FsbGVkIEZvcm1CdWlsZGVyLiBDbGljayBvbiB0aGlzLiBPbiB0aGUgcGFnZQ0KdGhhdCBnZXRzIHNob3duLCB0aGVyZSBhcmUgb3B0aW9ucyAoYXQgdGhlIGJvdHRvbSBvZiB0aGUgbGlzdCBvZiBGb3JtcykgdG8gQWRkIGEgTmV3IEZvcm0gb3IgTW9kaWZ5DQpDb25maWd1cmF0aW9uLjwvcD4NCg0KPGgzPkFkZGluZyBhIEZvcm0gdG8gYSBQYWdlPC9oMz4NCjxwPkluIHRoZSBtYWluIEZvcm1CdWlsZGVyIGFkbWluIHBhZ2UsIHlvdSBjYW4gc2VlIGFuIGV4YW1wbGUgb2YgdGhlIHRhZyB1c2VkIHRvIGRpc3BsYXkgZWFjaCBmb3JtLiBJdCBsb29rcw0Kc29tZXRoaW5nIGxpa2Uge2Ntc19tb2R1bGUgbW9kdWxlPSYjMDM5O0Zvcm1CdWlsZGVyJiMwMzk7IGZvcm09JiMwMzk7c2FtcGxlX2Zvcm0mIzAzOTt9PC9wPg0KPHA+QnkgY29weWluZyB0aGlzIHRhZyBpbnRvIHRoZSBjb250ZW50IG9mIGEgcGFnZSwgb3IgaW50byBhIHRlbXBsYXRlLCB3aWxsIGNhdXNlIHRoYXQgZm9ybSB0byBiZSBkaXNwbGF5ZWQuDQpJbiB0aGVvcnksIHlvdSBjYW4gaGF2ZSBtdWx0aXBsZSBmb3JtcyBvbiBhIHBhZ2UgaWYgeW91IHJlYWxseSB3YW50IHRvLiBCZSBjYXJlZnVsIHdoZW4gcGFzdGluZyB0aGUgdGFnDQppbnRvIGEgcGFnZSYjMDM5O3MgY29udGVudCBpZiB5b3UgdXNlIGEgV1lTSVdZRyBlZGl0b3Igc3VjaCBhcyBUaW55TUNFIG9yIEhUTUxBcmVhLiBUaGVzZSBlZGl0b3JzIG1heSBzdGVhbHRoaWx5DQpjaGFuZ2UgdGhlIHF1b3RlIG1hcmtzICgmcXVvdDspIGludG8gSFRNTCBlbnRpdGllcyAoJmFtcDtxdW90OyksIGFuZCB0aGUgZm9ybXMgd2lsbCBub3Qgc2hvdyB1cC4gVHJ5IHVzaW5nDQpzaW5nbGUgcXVvdGVzICgmIzAzOTspIG9yIGVkaXRpbmcgdGhlIEhUTUwgZGlyZWN0bHkuDQoNCjxoMz5Xb3JraW5nIHdpdGggRm9ybXM8L2gzPg0KPHA+QnkgY2xpY2tpbmcgb24gYSBGb3JtJiMwMzk7cyBuYW1lLCB5b3UgZW50ZXIgdGhlIEZvcm0gRWRpdCBwYWdlLiBUaGVyZSBhcmUgc2V2ZXJhbCB0YWJzLCB3aGljaCBhcmUgZGVzY3JpYmVkIGJlbG93OjwvcD4NCjxoND5NYWluPC9oND4NCjxwPlRoaXMgaXMgdGhlIG1haW4gcGxhY2UgeW91JiMwMzk7bGwgd29yayBvbiB5b3VyIGZvcm0uIEhlcmUsIHlvdSBnaXZlIGl0IGEgbmFtZSwgYW4gYWxpYXMgKHdoaWNoIGlzIHVzZWQgdG8gaWRlbnRpZnkgaXQgZm9yIHBsYWNpbmcgaXQgaW4gYSBwYWdlIG9yIHRlbXBsYXRlKSwgYW5kLCBvcHRpb25hbGx5LCBhIENTUyBjbGFzcyB3aXRoIHdoaWNoIHRvIHdyYXAgdGhlIHdob2xlIHRoaW5nLiBZb3UgYWxzbyBzZWxlY3QgdGhlIGRpc3BsYXkgdHlwZS4gWW91ciBjaG9pY2VzIGFyZTo8L3A+DQo8dWw+DQo8bGk+VGFibGUvQ1NTLiBUaGUgZm9ybSBpcyBjcmVhdGVkIHVzaW5nIEhUTUwgdGFibGVzLiBJZiB5b3UgZG9uJiMwMzk7dCBrbm93IHdoYXQgdG8gY2hvb3NlLCB0aGlzIGlzIHRoZSBlYXNpZXN0IG9wdGlvbiwgYW5kIHdpbGwgcHJvYmFibHkgZG8gbW9zdCBvZiB3aGF0IHlvdSB3YW50LiBZb3UgY2FuIHN0aWxsIHVzZSBDU1MgdG8gc3R5bGUgdGhlIGZvcm0gaWYgeW91IHdhbnQuPC9saT4NCjxsaT5QdXJlIENTUy4gVGhlIGZvcm0gaXMgY3JlYXRlZCwgd2l0aCBhbGwgdGhlIGZpZWxkcyB3cmFwcGVkIGluIDxkaXY+IHRhZ3MuIFlvdSBjYW4gdGhlbiBzdHlsZSB0aGUgZm9ybSBhcyB5b3Ugc2VlIGZpdC48L2xpPg0KPGxpPkN1c3RvbSBUZW1wbGF0ZS4gQmFzaWNhbGx5LCB5b3UgZ2V0IGEgc21hcnR5IHRlbXBsYXRlLCBhIGJ1bmNoIG9mIHZhcmlhYmxlcywgYW5kIHlvdSYjMDM5O3JlIG9uIHlvdXIgb3duLiBZb3UgaGF2ZSB0aGUgcG93ZXIgdG8gY3JlYXRlIHdoYXRldmVyIHlvdSB3YW50LjwvbGk+DQo8L3VsPg0KPHA+QmVsb3cgdGhpcywgaWYgeW91IGhhdmUgaXQgZW5hYmxlZCwgaXMgdGhlICZxdW90O2Zhc3QgZmllbGQgYWRkZXImcXVvdDsgcHVsbGRvd24sIHRoYXQgbGV0cyB5b3UgcXVpY2tseSBhZGQgYSBmaWVsZCB0byB0aGUgZW5kIG9mIHlvdXIgZm9ybSBieSBzZWxlY3RpbmcgdGhlIGZpZWxkIHR5cGUuPC9wPg0KPHA+QmVsb3cgdGhpcyBpcyB0aGUgbGlzdCBvZiBmaWVsZHMgdGhhdCBtYWtlIHVwIHlvdXIgZm9ybS4gTW9yZSBkZXRhaWwgb24gdGhpcyBpcyBkZXNjcmliZWQgYmVsb3cuPC9wPg0KPGg0PkZvcm0gU2V0dGluZ3M8L2g0Pg0KPHA+Rm9ybSBTZXR0aW5ncyBhbGxvd3MgeW91IHRvIGN1c3RvbWl6ZSBhIGxvdCBvZiB0aGUgbWVzc2FnZXMgYW5kIHRleHQgaW4gdGhlIGNvbnRyb2xzIGZvciB5b3VyIGZvcm0uIEl0IGFsc28gYWxsb3dzIHlvdSB0byBwaWNrIGEgcGFnZSB0byByZWRpcmVjdCB1c2VycyB0byBhZnRlciBhIHN1Y2Nlc3NmdWwgZm9ybSBzdWJtaXNzaW9uLjwvcD4NCjxoND5UYWJsZS1iYXNlZCBMYXlvdXQgT3B0aW9uczwvaDQ+DQo8cD5UYWJsZS1sYXlvdXRzIGhhdmUgZ290dGVuIHNpbXBsZXIsIHNvIHlvdXIgb25seSBvcHRpb24gaGVyZSBpcyB0aGUgcG9zaXRpb24gb2YgdGhlIGZpZWxkIG5hbWVzIHJlbGF0aXZlIHRvIHRoZSBpbnB1dHMuIElmIHlvdSYjMDM5O3JlIHVzaW5nIGEgVGFibGUvQ1NTIGxheW91dCwgeW91IGNhbiB1c2UgdGhpcyB0YWIgdG8gc2VsZWN0IHRoZSBmaWVsZCBuYW1lIHBvc2l0aW9ucy48L3A+DQo8aDQ+VGVtcGxhdGUgTGF5b3V0IE9wdGlvbnM8L2g0Pg0KPHA+VGhpcyBpcyB3aGVyZSB5b3UgZG8geW91ciBjdXN0b21pemF0aW9uIHdvcmsgaWYgeW91ciBmb3JtIHVzZXMgYSBDdXN0b20gVGVtcGxhdGUuPC9wPg0KPHA+VGhlIGZvcm0gc2hvdWxkIGRlZmF1bHQgdG8gYSBhIEN1c3RvbSB0ZW1wbGF0ZSB0aGF0IGRvY3VtZW50cyB0aGUgc21hcnR5IHRhZ3MgYXZhaWxhYmxlIHRvIHlvdS4gVW5sZXNzIHlvdSYjMDM5O3JlIGEgc21hcnR5IGV4cGVydCwgeW91IHByb2JhYmx5IGRvbiYjMDM5O3Qgd2FudCB0byBtZXNzIGFyb3VuZCB3aXRoIHRoaXMuIElmIHlvdSBhcmUgYSBzbWFydHkgZXhwZXJ0LCB0aGlzIGlzIHdoZXJlIHlvdSBjYW4gdW5sZWFzaCB5b3VyIG1hZ2ljLjwvcD4NCjxoMz5BZGRpbmcgRmllbGRzIHRvIHlvdXIgRm9ybTwvaDM+DQo8cD5UaGUgdHlwZXMgb2YgZmllbGRzIHRoYXQgYXJlIGN1cnJlbnRseSBzdXBwb3J0ZWQgZml0IGludG8gZm91ciBncm91cHM6IHN0YW5kYXJkIGlucHV0IGZpZWxkcywgZGlzcGxheSBjb250cm9sIGZpZWxkcywgZW1haWwtc3BlY2lmaWMgZmllbGRzLCBhbmQgZm9ybSByZXN1bHQgaGFuZGxpbmcgZmllbGRzIChhbHNvIGNhbGxlZCBGb3JtIERpc3Bvc2l0aW9ucyBpbiBwbGFjZXMpOjwvcD4NCjx1bD4NCjxsaT5TdGFuZGFyZCBJbnB1dCBGaWVsZHMgLSB0aGVzZSBhcmUgaW5wdXRzIHRoYXQgYWxsb3cgZW50cnkgb2YgdHlwaWNhbCBmb3JtIGVsZW1lbnRzOyB0ZXh0IGlucHV0cywgcmFkaW8gYnV0dG9ucywgZXRjLjwvbGk+DQo8bGk+RGlzcGxheSBDb250cm9sIEZpZWxkcyAtIHRoZXNlIGlucHV0IGNvbnRyb2wgaG93IHRoZSB1c2VyIHdpbGwgc2VlIHRoZSBkaXNwbGF5IG9mIHRoZSBmb3JtOyBwYWdlIGJyZWFrcywgc3RhdGljIHRleHQsIGV0Yy48L2xpPg0KPGxpPkVtYWlsLXNwZWNpZmljIEZpZWxkcyAtIHNvbWUgZm9ybXMgZ2VuZXJhdGUgZW1haWwsIGFuZCBlbWFpbC1zcGVjaWZpYyBmaWVsZHMgY2FuIGFsdGVyIGF0dHJpYnV0ZXMgb2YgdGhlIGVtYWlscyBzZW50LjwvbGk+DQo8bGk+Rm9ybSBEaXNwb3NpdGlvbnMgLSBUaGVzZSBkZXRlcm1pbmUgd2hhdCBoYXBwZW5zIHdoZW4gdGhlIHVzZXINCnN1Ym1pdHMgdGhlIGZvcm07IGZvciBlYWNoIHJlc3VsdCBoYW5kbGluZyBmaWVsZCwgc29tZSBtZXRob2Qgb2YgdHJhbnNtaXR0aW5nLCBzYXZpbmcsIG9yIGVtYWlsaW5nIHRoZQ0KZm9ybSBjb250ZW50cyB0YWtlcyBwbGFjZS4gQSBmb3JtIG1heSBoYXZlIG11bHRpcGxlIGZvcm0gZGlzcG9zaXRpb25zLjwvbGk+DQo8L3VsPg0KPHA+Rm9ybSBmaWVsZHMgYXJlIGFzc2lnbmVkIG5hbWVzLiBUaGVzZSBuYW1lcyBpZGVudGlmeSB0aGUgZmllbGQsIG5vdCBvbmx5IG9uIHRoZSBzY3JlZW4gYXMgbGFiZWxzIGZvciB0aGUgdXNlciwNCmJ1dCBpbiB0aGUgZGF0YSB3aGVuIGl0JiMwMzk7cyBzdWJtaXR0ZWQgc28geW91IGtub3cgd2hhdCB0aGUgdXNlciBpcyByZXNwb25kaW5nIHRvLiBQaHJhc2luZyB0aGUgbmFtZSBsaWtlIGEgcXVlc3Rpb24NCmlzIGEgaGFuZHkgd2F5IG9mIG1ha2luZyBpdCBjbGVhciB0byB0aGUgdXNlciB3aGF0IGlzIGV4cGVjdGVkLiBTaW1pbGFybHksIG1hbnkgZmllbGRzIGhhdmUgYm90aCBOYW1lcyBhbmQgVmFsdWVzLg0KVGhlIE5hbWVzIGFyZSB3aGF0IGdldHMgc2hvd24gdG8gdGhlIHVzZXI7IHRoZSBWYWx1ZSBpcyB3aGF0IGdldHMgc2F2ZWQgb3IgdHJhbnNtaXR0ZWQgd2hlbiB0aGUgdXNlciBzdWJtaXRzDQp0aGUgZm9ybS4gVGhlIFZhbHVlcyBhcmUgbmV2ZXIgc2VlbiBieSB0aGUgdXNlciwgbm9yIGFyZSB0aGV5IHZpc2libGUgaW4gdGhlIEhUTUwsIHNvIGl0JiMwMzk7cyBzYWZlIHRvIHVzZSBmb3INCmVtYWlsIGFkZHJlc3NlcyBhbmQgc3VjaC48L3A+DQo8cD5Tb21lIGZpZWxkcyBjYW4gaGF2ZSBtdWx0aXBsZSB2YWx1ZXMsIG9yIG11bHRpcGxlIG5hbWUvdmFsdWUgcGFpcnMuIFdoZW4geW91IGZpcnN0IGNyZWF0ZSBzdWNoIGEgZmllbGQsDQp0aGVyZSBtYXkgbm90IGJlIHN1ZmZpY2llbnQgaW5wdXRzIGZvciB5b3UgdG8gc3BlY2lmeSBhbGwgdGhlIHZhbHVlcyB5b3Ugd2FudC4gVG8gZ2V0IG1vcmUgc3BhY2UgZm9yIGlucHV0dGluZw0KdGhlc2UgdmFsdWVzLCB1c2UgdGhlIGJ1dHRvbnMgYXQgdGhlIGJvdHRvbSBvZiB0aGUgcGFnZSBmb3IgYWRkaW5nIG9wdGlvbnMuPC9wPg0KPHA+RmllbGRzIGNhbiBiZSBhc3NpZ25lZCB2YWxpZGF0aW9uIHJ1bGVzLCB3aGljaCB2YXJ5IGFjY29yZGluZyB0byB0aGUgdHlwZSBvZiB0aGUgZmllbGQuIFRoZXNlIHJ1bGVzIGhlbHANCmVuc3VyZSB0aGF0IHRoZSB1c2VyIGVudGVycyB2YWxpZCBkYXRhLiBUaGV5IG1heSBhbHNvIGJlDQpzZXBhcmF0ZWx5IG1hcmtlZCAmcXVvdDtSZXF1aXJlZCZxdW90Oywgd2hpY2ggd2lsbCBmb3JjZSB0aGUgdXNlciB0byBlbnRlciBhIHJlc3BvbnNlLjwvcD4NCjxwPkZpZWxkcyBhbHNvIG1heSBiZSBhc3NpZ25lZCBhIENTUyBjbGFzcy4gVGhpcyBzaW1wbHkgd3JhcHMgdGhlIGlucHV0IGluIGEgZGl2IHdpdGggdGhhdCBjbGFzcywgc28gYXMgdG8gYWxsb3cNCmN1c3RvbWl6ZWQgbGF5b3V0cy4gVG8gdXNlIHRoaXMgZWZmZWN0aXZlbHksIHlvdSBtYXkgbmVlZCB0byAmcXVvdDt2aWV3IHNvdXJjZSZxdW90OyBvbiB0aGUgZ2VuZXJhdGVkIGZvcm0sIGFuZCB0aGVuDQp3cml0ZSB5b3VyIENTUy48L3A+DQo8dWw+DQo8bGk+U3RhbmRhcmQgSW5wdXRzDQo8dWw+PGxpPlRleHQgSW5wdXQuIFRoaXMgaXMgYSBzdGFuZGFyZCB0ZXh0IGZpZWxkLiBZb3UgY2FuIGxpbWl0IHRoZSBsZW5ndGgsIGFuZCBhcHBseSB2YXJpb3VzIHZhbGlkYXRpb24NCmZ1bmN0aW9ucyB0byB0aGUgZmllbGQuPC9saT4NCjxsaT5UZXh0IEFyZWEuIFRoaXMgaXMgYSBiaWcsIGZyZWUtZm9ybSB0ZXh0IGlucHV0IGZpZWxkLjwvbGk+DQo8bGk+Q2hlY2tib3guIFRoaXMgaXMgYSBzdGFuZGFyZCBjaGVjayBib3guPC9saT4NCjxsaT5DaGVja2JveCBHcm91cC4gVGhpcyBpcyBhIGNvbGxlY3Rpb24gb2YgY2hlY2tib3hlcy4gVGhlIG9ubHkgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoaXMgaW5wdXQgYW5kIGENCmNvbGxlY3Rpb24gb2YgQ2hlY2tib3ggaW5wdXRzIGlzIHRoYXQgdGhleSBhcmUgcHJlc2VudGVkIGFzIGEgZ3JvdXAsIHdpdGggb25lIG5hbWUsIGFuZCBjYW4gaGF2ZSBhIHZhbGlkYXRpb24gZnVuY3Rpb24gcmVxdWlyaW5nIHRoYXQgeW91IGNoZWNrIG9uZSBvciBtb3JlIG9mIHRoZSBib3hlcyBpbiB0aGUgZ3JvdXAuPC9saT4NCjxsaT5SYWRpbyBHcm91cC4gVGhpcyBpcyBhIGNvbGxlY3Rpb24gb2YgcmFkaW8gYnV0dG9ucy4gT25seSBvbmUgb2YgdGhlIGdyb3VwIG1heSBiZSBzZWxlY3RlZCBieSB0aGUgdXNlci48L2xpPg0KPGxpPlB1bGxkb3duLiBUaGlzIGlzIGEgc3RhbmRhcmQgcHVsbGRvd24gbWVudS4gSXQmIzAzOTtzIHJlYWxseSBjb25jZXB0dWFsbHkgdGhlIHNhbWUgdGhpbmcgYXMgYSByYWRpbyBidXR0b24NCmdyb3VwLCBidXQgaXMgYmV0dGVyIHdoZW4gdGhlcmUgYXJlIGEgbGFyZ2UgbnVtYmVyIG9mIG9wdGlvbnMuPC9saT4NCjxsaT5NdWx0aXNlbGVjdC4gVGhpcyBpcyBhIG11bHRpLXNlbGVjdCBmaWVsZC4gSXQmIzAzOTtzIHJlYWxseSBjb25jZXB0dWFsbHkgdGhlIHNhbWUgdGhpbmcgYXMgYSBjaGVja2JveCBidXR0b24NCmdyb3VwLCBidXQgaXMgYmV0dGVyIHdoZW4gdGhlcmUgYXJlIGEgbGFyZ2UgbnVtYmVyIG9mIG9wdGlvbnMsIGFzIHlvdSBjYW4gbGltaXQgdGhlIG51bWJlciBkaXNwbGF5ZWQgb24gdGhlIHNjcmVlbiBhdCBhbnkgb25lIHRpbWUuPC9saT4NCjxsaT5TdGF0ZS4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIFN0YXRlcyBvZiB0aGUgVS5TLjwvbGk+DQo8bGk+Q291bnRyaWVzLiBUaGlzIGlzIGEgcHVsbGRvd24gbGlzdGluZyB0aGUgQ291bnRyaWVzIG9mIHRoZSB3b3JsZCAoYXMgb2YgSnVseSAyMDA1KS48L2xpPg0KPGxpPkRhdGUgUGlja2VyLiBUaGlzIGlzIGEgdHJpcGxlIHB1bGxkb3duIGFsbG93aW5nIHRoZSB1c2VyIHRvIHNlbGVjdCBhIGRhdGUuPC9saT4NCjxsaT5UaW1lIFBpY2tlci4gVGhpcyBpcyBhIHNldCBvZiBwdWxsZG93bnMgYWxsb3dpbmcgdGhlIHVzZXIgdG8gc2VsZWN0IGEgdGltZSAodXNpbmcgMTIgb3IgMjQgaG91ciBjbG9jaykuPC9saT4NCjxsaT5IaWRkZW4gRmllbGQuIFRoaXMgYWxsb3dzIHlvdSB0byBlbWJlZCBhIGhpZGRlbiBmaWVsZCBpbiB5b3VyIGZvcm0uPC9saT4NCjxsaT5GaWxlIFVwbG9hZC4gVGhpcyBpcyBhIGZpbGUgdXBsb2FkIGZpZWxkLjwvbGk+DQo8bGk+TGluayAoVXNlciBFbnRlcmVkKS4gVGhpcyBjcmVhdGVzIGEgZG91YmxlIGlucHV0IGZpZWxkIGZvciBnZXR0aW5nIGEgbGluayBVUkwgYW5kIGxpbmsgdGl0bGUuPC9saT4NCjwvdWw+PC9saT4NCg0KPGxpPkVtYWlsLXNwZWNpZmljIElucHV0cw0KPHVsPjxsaT5FbWFpbCBGcm9tIEFkZHJlc3MgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgdGhlaXIgZW1haWwgYWRkcmVzcy4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIGFkZHJlc3MgaW4gdGhlICZxdW90O0Zyb20mcXVvdDsgZmllbGQuPC9saT4NCjxsaT5FbWFpbCBGcm9tIE5hbWUgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgdGhlaXIgbmFtZS4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIG5hbWUgaW4gdGhlICZxdW90O0Zyb20mcXVvdDsgZmllbGQuPC9saT4NCjwvdWw+PC9saT4NCg0KPGxpPkRpc3BsYXkgQ29udHJvbCBGaWVsZHM8dWw+DQo8bGk+LVBhZ2UgQnJlYWsuIFRoaXMgYWxsb3dzIHlvdSB0byBzcGxpdCB5b3VyIGZlZWRiYWNrIGZvcm0gaW50byBtdWx0aXBsZSBwYWdlcy4gRWFjaCBwYWdlIGlzDQppbmRlcGVuZGVudGx5IHZhbGlkYXRlZC4gVGhpcyBpcyBnb29kIGZvciBhcHBsaWNhdGlvbnMgbGlrZSBvbmxpbmUgc3VydmV5cy48L2xpPg0KPGxpPi1GaWVsZHNldCBTdGFydC4gQ29tYmluZWQgd2l0aCBGaWVsZHNldCBFbmQsIHRoaXMgYWxsb3dzIHlvdSB0byBncm91cCB2YXJpb3VzIGZpZWxkcyB3aXRoaW4geW91ciBmb3JtLiBVc2UgdGhpcyB0byBzdGFydCBhIGdpdmVuIGdyb3VwaW5nLjwvbGk+DQo8bGk+LUZpZWxkc2V0IEVuZC4gQ29tYmluZWQgd2l0aCBGaWVsZHNldCBTdGFydCwgdGhpcyBhbGxvd3MgeW91IHRvIGdyb3VwIHZhcmlvdXMgZmllbGRzIHdpdGhpbiB5b3VyIGZvcm0uIFVzZSB0aGlzIHRvIGVuZCBhIGdpdmVuIGdyb3VwaW5nLjwvbGk+DQo8bGk+LVN0YXRpYyBUZXh0LiBUaGlzIGFsbG93cyB5b3UgdG8gcHV0IHRleHQgb3IgYSBsYWJlbCBpbiB0aGUgbWlkZGxlIG9mIHlvdXIgZm9ybS4gVGhpcyBpcyB1c2VmdWwgZm9yIGdpdmluZyBhZGRpdGlvbmFsIGhlbHAgdGV4dCwgZXNwZWNpYWxseSBpZiB5b3UmIzAzOTtyZSBub3QgdXNpbmcgYSBDdXN0b20gVGVtcGxhdGUgdG8gcmVuZGVyIHlvdXIgZm9ybS48L2xpPg0KPGxpPi1TdGF0aWMgTGluay4gVGhpcyBhbGxvd3MgeW91IHRvIHB1dCBhIGxpbmsgdG8gYSBnaXZlbiBwYWdlIGludG8geW91ciBmb3JtLiBPcHRpb25hbGx5LCB5b3UgY2FuIGhhdmUgaXQgYXV0b3BvcHVsYXRlIHdpdGggdGhlIHBhZ2Ugd2hlcmUgdGhlIGZvcm0gaXMgZW1iZWRkZWQgKHVzZWZ1bCBpZiB5b3VcJiMwMzk7cmUgc2VuZGluZyByZXN1bHRzIHZpYSBlbWFpbCkuPC9saT4NCjwvdWw+PC9saT4NCg0KPGxpPkZvcm0gSGFuZGxpbmcgSW5wdXRzIChEaXNwb3NpdGlvbnMpDQo8bGk+KkNhbGwgYSBVc2VyIERlZmluZWQgVGFnIFdpdGggdGhlIEZvcm0gUmVzdWx0cy4gVGhpcyBzdWJtaXRzIGFsbCB0aGUgZm9ybSByZXN1bHRzIHRvIHRoZSBVc2VyLURlZmluZWQgVGFnIHlvdSBzcGVjaWZ5LiBUaGUgVURUIGNhbiBoYW5kbGUgdGhlIHJlc3VsdHMgaG93ZXZlciBpdCB3YW50cy48L2xpPg0KPHVsPjxsaT4qRW1haWwgUmVzdWx0cyBCYXNlZCBvbiBQdWxsZG93bi4gVGhpcyBpcyB1c2VmdWwgZm9yIHdlYiBzaXRlcyB3aGVyZSBjb21tZW50cyBnZXQgcm91dGVkIGJhc2VkIG9uIHRoZWlyIHN1YmplY3QgbWF0dGVyLCBlLmcuLCBidWdzIGdldCBzZW50IHRvIG9uZSBwZXJzb24sIG1hcmtldGluZyBxdWVzdGlvbnMgdG8gYW5vdGhlciBwZXJzb24sIHNhbGVzIHJlcXVlc3RzIHRvIHNvbWVvbmUgZWxzZSwgZXRjLiBUaGUgcHVsbGRvd24gaXMgcG9wdWxhdGVkIHdpdGggdGhlIHN1YmplY3RzLCBhbmQgZWFjaCBnZXRzIGRpcmVjdGVkIHRvIGEgc3BlY2lmaWMgZW1haWwgYWRkcmVzcy4gWW91IHNldCB1cCB0aGVzZSBtYXBwaW5ncyBpbiB0aGUgd2hlbiB5b3UgY3JlYXRlIG9yIGVkaXQgYSBmaWVsZCBvZiB0aGlzIHR5cGUuIElmIHlvdSB1c2Ugb25lIG9mIHRoZXNlICZxdW90O0RpcmVjdG9yJnF1b3Q7IHB1bGxkb3ducywgdGhlIHVzZXIgbXVzdCBtYWtlIGEgc2VsZWN0aW9uIGluIG9yZGVyIHRvIHN1Ym1pdCB0aGUNCmZvcm0uIFRoaXMgaW5wdXQgaXMgcGFydCBvZiB0aGUgZm9ybSB0aGUgdXNlciBzZWVzLCBhbHRob3VnaCB0aGUgZW1haWwgYWRkcmVzc2VzIGFyZSBub3QgbWFkZSB2aXNpYmxlIG5vcg0KYXJlIHRoZXkgZW1iZWRkZWQgaW4gdGhlIEhUTUwuPC9saT4NCjxsaT4qRW1haWwgUmVzdWx0cyB0byBzZXQgQWRkcmVzcyhlcykuIFRoaXMgc2ltcGx5IHNlbmRzIHRoZSBmb3JtIHJlc3VsdHMgdG8gb25lIG9yIG1vcmUgZW1haWwgYWRkcmVzc2VzIHRoYXQgeW91IGVudGVyIHdoZW4geW91IGNyZWF0ZSBvciBlZGl0IHRoaXMgdHlwZSBvZiBmaWVsZC4gVGhpcyBmaWVsZCBhbmQgaXRzIG5hbWUgYXJlIG5vdCB2aXNpYmxlIGluIHRoZQ0KZm9ybSB0aGF0IHRoZSB1c2VyIHNlZXMuIFRoZSBlbWFpbCBhZGRyZXNzZXMgYXJlIG5vdCBtYWRlIHZpc2libGUgbm9yDQphcmUgdGhleSBlbWJlZGRlZCBpbiB0aGUgSFRNTC48L2xpPg0KPGxpPipFbWFpbCB0byBVc2VyLVN1cHBsaWVkIEFkZHJlc3MuIFRoaXMgcHV0cyBhbiBpbnB1dCBmaWVsZCBpbiB0aGUgZm9ybSBmb3IgdGhlIHVzZXIgdG8gcG9wdWxhdGUgd2l0aCBhbiBlbWFpbCBhZGRyZXNzLiBUaGUgZm9ybSByZXN1bHRzIGdldCBzZW50IHRvIHRoYXQgYWRkcmVzcy4gQmV3YXJlIG9mIFNwYW0gYWJ1c2UhIEFjdGl2ZSB0aGUgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcyBpbiB0aGUgRm9ybUJ1aWxkZXIgY29uZmlndXJhdGlvbiBzY3JlZW4uPC9saT4NCjxsaT4qU3RvcmUgUmVzdWx0cyBpbiBEYXRhYmFzZS4gVGhpcyB3aWxsIHN0b3JlIHRoZSBmb3JtIGNvbnRlbnRzIGluIGFuIGludGVybmFsIGRhdGFiYXNlLiBZb3Ugd2lsbCBhbHdheXMgdXNlIHRoaXMgZGlzcG9zaXRpb24gaWYgeW91IHVzZSB0aGUgZm9ybSB3aXRoIEZvcm1Ccm93c2VyLjwvbGk+DQo8bGk+KlZhbGlkYXRlIHZpYSBFbWFpbC4gVGhpcyBpcyBhIHN0cmFuZ2UgYW5kIHBvd2VyZnVsIGZpZWxkLiBJdCBwcm92aWRlcyB0aGUgdXNlciBhIG1hbmRhdG9yeSBpbnB1dCBmb3IgdGhlaXIgZW1haWwgYWRkcmVzcy4gT25jZSB0aGV5IHN1Ym1pdCB0aGVpciBmb3JtLCB0aGUgc3RhbmRhcmQgZm9ybSBkaXNwb3NpdGlvbnMgYXJlIG5vdCBwZXJmb3JtZWQgLS0gcmF0aGVyLCBpdCBzZW5kIHRoZSB1c2VyIGFuIGVtYWlsIHdpdGggYSBzcGVjaWFsIGNvZGVkIGxpbmsuIElmIHRoZXkgY2xpY2sgb24gdGhlIGxpbmssIHRoZSBvdGhlciBmb3JtIGlzIGNvbnNpZGVyZWQgJnF1b3Q7YXBwcm92ZWQsJnF1b3Q7IGFuZCB0aGUgb3RoZXIgZGlzcG9zaXRpb25zIGFyZSBhbGwgcGVyZm9ybWVkLjwvbGk+DQo8bGk+KldyaXRlIFJlc3VsdHMgdG8gRmxhdCBGaWxlLiBUaGlzIHRha2VzIHRoZSBmb3JtIHJlc3VsdHMgYW5kIHdyaXRlcyB0aGVtIGludG8gYSB0ZXh0IGZpbGUuIFlvdSBtYXkNCnNlbGVjdCB0aGUgbmFtZSBvZiB0aGUgZmlsZSwgYW5kIHNldCBpdHMgZm9ybWF0LiBUaGVzZSBmaWxlcyBhcmUgd3JpdHRlbiB0byB0aGUgJnF1b3Q7b3V0cHV0JnF1b3Q7IGRpcmVjdG9yeSB1bmRlciB0aGUNCm1vZHVsZSYjMDM5O3MgaW5zdGFsbGF0aW9uIGRpcmVjdG9yeSwgYXNzdW1pbmcgdGhlIHdlYiBzZXJ2ZXIgaGFzIHBlcm1pc3Npb24gdG8gd3JpdGUgdGhlcmUuPC9saT4NCjwvdWw+PC9saT48L2xpPjwvdWw+DQoNCjxoMz5FbWFpbCBhbmQgRmxhdCBGaWxlIFRlbXBsYXRlczwvaDM+DQo8cD5NYW55IGRpc3Bvc2l0aW9uIHR5cGVzIGFsbG93IHlvdSB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmb3IgdGhlIGVtYWlsIHRoYXQgaXMgZ2VuZXJhdGVkLCBvciBmb3IgdGhlIHdheSB0aGUgcmVzdWx0cyBhcmUgd3JpdHRlbiB0byBhIGZpbGUuIElmIHlvdSBvcHQgbm90IHRvIGNyZWF0ZSBhIHRlbXBsYXRlLCB0aGUgRm9ybUJ1aWxkZXIgd2lsbCB1c2UgaXQmIzAzOTtzIG93biBiZXN0IGd1ZXNzLCB3aGljaCBtYXkgb3IgbWF5IG5vdCB3b3JrIG91dCB0byB5b3VyIGxpa2luZy4gWW91IGNhbiBhbHdheXMgY2xpY2sgb24gdGhlICZxdW90O0NyZWF0ZSBTYW1wbGUgVGVtcGxhdGUmcXVvdDsgYW5kIHRoZW4gY3VzdG9taXplIHRoZSByZXN1bHRzLjwvcD4NCjxwPk5vdGUgdGhhdCBvbmNlIHlvdSYjMDM5O3ZlIGNoYW5nZWQgYSB0ZW1wbGF0ZSwgaXQgd2lsbCBubyBsb25nZXIgYXV0b21hdGljYWxseSBhZGQgbmV3IGZpZWxkcy4gRm9yIHRoaXMgcmVhc29uLCBpdCYjMDM5O3MgdXN1YWxseSBiZXN0IHRvIGNyZWF0ZSB5b3VyIHRlbXBsYXRlcyBhcyB0aGUgbGFzdCBzdGVwIG9mIGNyZWF0aW5nIHlvdXIgZm9ybS48L3A+DQoNCjxoMz5Lbm93biBJc3N1ZXM8L2gzPg0KPHVsPg0KPGxpPkZvcm1CdWlsZGVyIGlzIG5vdCB5ZXQgaW50ZWdyYXRlZCB3aXRoIEZyb250RW5kIFVzZXJzLiBJdCB3aWxsIGJlLjwvbGk+DQo8bGk+Rm9ybUJ1aWxkZXIgY2Fubm90IHlldCBiZSBpbmxpbmVkLiBUaGF0IHNob3VsZCBiZSBhIHNpbXBsZSB1cGdyYWRlIGRvd24gdGhlIGxpbmUuPC9saT4NCjxsaT5Gb3JtQnVpbGRlciBkb2VzIG5vdCB5ZXQgc3VwcG9ydCBwcmV0dHkgdXJscywgYWx0aG91Z2ggdGhhdCBzaG91bGRuJiMwMzk7dCBtYXR0ZXIgc2luY2UgdGhlIHVzZXIgc2lkZSBpcyBwcmV0dHkgc2ltcGxlLjwvbGk+DQo8L3VsPg0KDQo8aDM+VHJvdWJsZXNob290aW5nPC9oMz4NCjxvbD48bGk+IEZpcnN0IHN0ZXAgaXMgdG8gY2hlY2sgeW91JiMwMzk7cmUgcnVubmluZyBDTVMgMS4wLXN2biBvciBsYXRlci48L2xpPg0KPGxpPiBTZWNvbmQgc3RlcCBpcyB0byByZWFkIGFuZCB1bmRlcnN0YW5kIHRoZSBjYXZlYXQgYWJvdXQgV1lTSVdZRyBlZGl0b3JzIHVwIGluIHRoZQ0Kc2VjdGlvbiA8ZW0+QWRkaW5nIGEgRm9ybSB0byBhIFBhZ2U8L2VtPi48L2xpPg0KPGxpPiBJZiB5b3UmIzAzOTtyZSBtaXNzaW5nIGZpZWxkcyBpbiBhbiBlbWFpbCB0aGF0IGdldHMgZ2VuZXJhdGVkLCBjaGVjayB0aGUgZGlzcG9zaXRpb24gZmllbGQmIzAzOTtzIHRlbXBsYXRlLCBhbmQgbWFrZSBzdXJlIHlvdSYjMDM5O3JlIHNwZWNpZnlpbmcgdGhlIG1pc3NpbmcgZmllbGRzLiBTZWVtcyBvYnZpb3VzLCBidXQgaXQmIzAzOTtzIGFuIGVhc3kgbWlzdGFrZSB0byBtYWtlLjwvbGk+DQo8bGk+IEp1c3QgbWVzcyBhcm91bmQgYW5kIHRyeSBjbGlja2luZyBvbiBsaW5rcyBhbmQgaWNvbnMgYW5kIHN0dWZmLiBTZWUgd2hhdCBoYXBwZW5zLjwvbGk+DQo8bGk+IExhc3QgcmVzcG9ydCBpcyB0byBlbWFpbCBtZSBvciBjYXRjaCBtZSBvbiBJUkMgYW5kIHdlIGNhbiBnbyBmcm9tIHRoZXJlLjwvbGk+DQo8L29sPiANCjxwPlRoaXMgaXMgYSBmYWlybHkgZWFybHkgdmVyc2lvbiwgaWYgbm90IGEgcmFuayBiZXRhIHJlbGVhc2UsIGFuZCBpdCBpcyBwcm9iYWJseSBzdGlsbCBidWdneS4gV2hpbGUgSSYjMDM5O3ZlIGRvbmUgYWxsIEkgY2FuDQp0byBtYWtlIHN1cmUgbm8gZWdyZWdpb3VzIGJ1Z3MgaGF2ZSBjcmVwdCBpbiwgSSBoYXZlIHRvIGFkbWl0IHRoYXQgZHVyaW5nIHRlc3RpbmcsIHRoaXMgcHJvZ3JhbQ0KcmV2ZWFsZWQgc2V2ZW4gY29ja3JvYWNoZXMsIHR3byBlYXJ3aWdzLCBhIHNtYWxsIGZhbWlseSBvZiBhcGhpZHMsIGFuZCBhIHdhbGtpbmctc3RpY2sgaW5zZWN0LiBJdCBhbHNvDQphdGUgdGhlIG5laWdoYm9yJiMwMzk7cyBuYXN0eSBsaXR0bGUgeWFwIGRvZywgZm9yIHdoaWNoIEkgd2FzIGluYXBwcm9wcmlhdGVseSBncmF0ZWZ1bC48L3A+DQo8cD5UaGUgZmluYWwgcmVsZWFzZSB3aWxsIGluY2x1ZGUgYnVnIGZpeGVzLCBkb2N1bWVudGF0aW9uLCBhbmQgdW5jb25kaXRpb25hbCBsb3ZlLjwvcD4NCjxoMz5TdXBwb3J0PC9oMz4NCjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4NCjx1bD4NCjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlLCBGQVFzLCBvciB0byBmaWxlIGEgQnVnIFJlcG9ydCwgcGxlYXNlIHZpc2l0IHRoZSBDTVMgTWFkZSBTaW1wbGUgIDxhIGhyZWY9JnF1b3Q7aHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZyZxdW90Oz5EZXZlbG9wZXIgRm9yZ2U8L2E+LjwvbGk+DQo8bGk+VG8gb2J0YWluIGNvbW1lcmNpYWwgc3VwcG9ydCwgcGxlYXNlIHNlbmQgYW4gZW1haWwgdG8gdGhlIGF1dGhvciBhdCA8YSBocmVmPSZxdW90O21haWx0bzpzamdAY21zbW9kdWxlcy5jb20mcXVvdDs+PHNqZ0BjbXNtb2R1bGVzLmNvbT48L2E+LjwvbGk+DQo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSZxdW90O2h0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyZxdW90Oz5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi48L2xpPg0KPGxpPlRoZSBhdXRob3IgY2FuIG9mdGVuIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSZxdW90O2lyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2NtcyZxdW90Oz5DTVMgSVJDIENoYW5uZWw8L2E+LjwvbGk+DQo8bGk+TGFzdGx5LCB5b3UgbWF5IGhhdmUgc29tZSBzdWNjZXNzIGVtYWlsaW5nIHRoZSBhdXRob3IgZGlyZWN0bHkgYW5kIGdyb3ZlbGxpbmcgZm9yIGZyZWUgc3VwcG9ydC48L2xpPg0KPC91bD4NCjxwPkFzIHBlciB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkIGFzLWlzLiBQbGVhc2UgcmVhZCB0aGUgdGV4dA0Kb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuPC9wPg0KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+DQo8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMDcsIFNhbXVlbCBHb2xkc3RlaW4gPGEgaHJlZj0mcXVvdDttYWlsdG86c2pnQGNtc21vZHVsZXMuY29tJnF1b3Q7PjxzamdAY21zbW9kdWxlcy5jb20+PC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPg0KPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9JnF1b3Q7aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMJnF1b3Q7PkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+JzsKJGxhbmdbJ2NoYW5nZWxvZyddID0gJwkJICAgIDx1bD4NCgkJICAgIAkJCSAgPGxpPlZlcnNpb24gMC4yLjQNCgkJCQkJCQkJPHA+QmlnIHJlbGVhc2U6DQoJCQkJCQkJCUFkZGVkICZxdW90O0VtYWlsIEZvcm0gdG8gVXNlci1TdXBwbGllZCBBZGRyZXNzJnF1b3Q7IGRpc3Bvc2l0aW9uLg0KCQkJCQkJCQlBZGRlZCAmcXVvdDtUaW1lUGlja2VyJnF1b3Q7IGZpZWxkIHR5cGUuIFNwbGl0ICZxdW90O0xpbmsmcXVvdDsgZmllbGQgaW50byBhICZxdW90O1VzZXItc3VwcGxpZWQgTGluayZxdW90OyBmaWVsZCBhbmQgYSAmcXVvdDtTdGF0aWMgTGluayZxdW90OyBmaWVsZC4NCgkJCQkJCQkJQWRkZWQgSFRNTCBlbWFpbCBvcHRpb24gYW5kIGF1dG8tdGVtcGxhdGVzIGZvciBhbGwgZW1haWwgZGlzcG9zaXRpb25zLg0KCQkJCQkJCQlBZGRlZCBwcmltaXRpdmUgYW50aS1zcGFtIGZlYXR1cmVzLg0KCQkJCQkJCQlBZGRlZCBYTUwtYmFzZWQgaW1wb3J0IGFuZCBleHBvcnQgb2YgZm9ybXMuDQoJCQkJCQkJCTwvcD4NCgkJCQkJCSAgPC9saT4NCiAgICAgICAgICAgICAgICAgICAgPGxpPlZlcnNpb24gMC4yLjMNCiAgICAgICAgICAgICAgICAgICAgICA8cD5BZGQgdGhlIGFiaWxpdHkgdG8gY2FsbCBhIHNlbGVjdGFibGUgdXNlciBkZWZpbmVkIHRhZyB1cG9uIGRpc3Bvc2l0aW9uIG9mIHRoZSBmb3JtLjwvcD4NCiAgICAgICAgICAgICAgICAgICAgPC9saT4NCiAgICAgICAgICAgICAgICAgICAgPGxpPlZlcnNpb24gMC4yLjINCiAgICAgICAgICAgICAgICAgICAgICAgPHA+TWFueSB0aGFua3MgdG8gVXR0ZXIgRGVzaWduIGZvciBzcG9uc29yaW5nIHNvbWUgY2hhbmdlcyBhbmQgYnVnZml4ZXMsIHdoaWNoIGluY2x1ZGU6DQogICAgICAgICAgICAgICAgICAgICAgICAgIDx1bD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+QWRkZWQgZmlsZSB1cGxvYWQgY2FwYWJpbGl0aWVzIHRvIHRoZSBlbWFpbCBkaXNwb3NpdGlvbjwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPkFkZCBQYWdlU2V0U3RhcnQgYW5kIFBhZ2VTZXRFbmQgZmllbGQgdHlwZXMNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+VGhlc2UgZmllbGQgdHlwZXMgYWxsb3cgeW91IHRvIGNyZWF0ZSBmaWVsZHNldHMgaW4geW91ciBmb3JtLCBhbmQgb3JnYW5pc2UNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeW91ciBmaWVsZHMgbG9naWNhbGx5IGZvciB0aGUgdXNlci4gIFlvdSBjYW4gZXZlbiBuZXN0IGZpZWxkc2V0cywgYW5kDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc29jaWF0ZSBhIHN0eWxlIHdpdGggdGhlbSBhcHByb3ByaWF0ZWx5LiAgVGhlIGRlZmF1bHQgdGVtcGxhdGUgd2FzIGNoYW5nZWQNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG8gcHJldmVudCBpdCBmcm9tIHdyYXBwaW5nIGEgZGl2IGFyb3VuZCB0aGVzZSB0eXBlcyBvZiBmaWVsZHMuDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5GaXhlZCBhIHByb2JsZW0gd2l0aCBEQVRFVElNRSBmaWVsZHMgb24gaW5zdGFsbA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5UaGlzIHNvbHZlcyBhIHByb2JsZW0gd2hlbiBvbiBpbnN0YWxsIHRoZSByZXNwb25zZSB0YWJsZSB3b3VsZCBzb21ldGltZXMgbm90IGdldCBjcmVhdGVkIHdoZW4gdXNpbmcgYWRvZGIgbGl0ZTwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4NCiAgICAgICAgICAgICAgICAgICAgICAgPC9wPg0KCQkgICAgPGxpPlZlcnNpb24gMC4yIC0gMTQgTm92ZW1iZXIgMjAwNi4gQ2FsZ3V5ICZhbXA7IHRzdyYjMDM5O3MgYnVnIGZpeGVzIGZvciBmaWVsZCByZS1vcmRlcmluZyBhbmQgY3VzdG9tIHRlbXBsYXRlcy4gQWRkaXRpb25hbCBidWcgZml4ZXMgZm9yIGZpZWxkIGxhYmVscy48L2xpPg0KCQkgICAgPGxpPlZlcnNpb24gMC4xIC0gOCBKdWx5IDIwMDYuIEluaXRpYWwgUmVsZWFzZTwvbGk+DQogICAgICAgICAgICAgICAgICAgIDwvdWw+DQoJCSc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjExNzc3NDIzODAuMi4yLnV0bWNjbj0ocmVmZXJyYWwpfHV0bWNzcj1mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZ3x1dG1jY3Q9L2luZGV4LnBocC90b3BpYywxMTcwOS4wLmh0bWx8dXRtY21kPXJlZmVycmFsJzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuMTA5ODc2MzE1MC4xMTc3MTYxNjk1LjExNzcxNjE2OTUuMTE3Nzc0MjM4MC4yJzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/nb_NO.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ1NramVtYSBCeWdnZXInOwokbGFuZ1snZmllbGRfdHlwZV8nXSA9ICdGZWx0IHR5cGUgaWtrZSBzYXR0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmllbGRzZXRFbmQnXSA9ICdGZWx0Z3J1cHBlIFNsdXR0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmllbGRzZXRTdGFydCddID0gJ0ZlbHRncnVwcGUgU3RhcnQnOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0RmllbGQnXSA9ICdUZWtzdCBpbm5za3JpdmluZyc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRGaWVsZEV4cGFuZGFibGUnXSA9ICdUZWtzdCBpbm5za3JpdmluZyAoRmxlcmUpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEFyZWFGaWVsZCddID0gJ1Rla3N0b21yJmFyaW5nO2RlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hGaWVsZCddID0gJ0F2a3J5c25pbmdzYm9rcyc7CiRsYW5nWydmaWVsZF90eXBlX0NoZWNrYm94R3JvdXBGaWVsZCddID0gJ0F2a3J5c25pbmdzYm9rcyc7CiRsYW5nWydmaWVsZF90eXBlX1B1bGxkb3duRmllbGQnXSA9ICdOZWR0cmVrayc7CiRsYW5nWydmaWVsZF90eXBlX011bHRpc2VsZWN0RmllbGQnXSA9ICdNdWx0aXZhbGcnOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0ZVBpY2tlckZpZWxkJ10gPSAnQW1lcmlrYW5zayBzdGF0IHZlbGdlcic7CiRsYW5nWydmaWVsZF90eXBlX0NvdW50cnlQaWNrZXJGaWVsZCddID0gJ0xhbmQgdmVsZ2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGF0ZVBpY2tlckZpZWxkJ10gPSAnRGF0byB2ZWxnZXInOwokbGFuZ1snZmllbGRfdHlwZV9UaW1lUGlja2VyRmllbGQnXSA9ICdUaWRzLXZlbGdlcic7CiRsYW5nWydmaWVsZF90eXBlX1JhZGlvR3JvdXBGaWVsZCddID0gJ1JhZGlva25hcHAgZ3J1cHBlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EaXJlY3RvciddID0gJypTZW5kZSByZXN1bHRhdGVyIHZpYSBlcG9zdCBiYXNlcnQgcCZhcmluZzsgTmVkdHJla2snOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZpbGVEaXJlY3RvciddID0gJypMYWdyZSByZXN1bHRhdGV0IHRpbCBmaWwgQmFzZXJ0IHAmYXJpbmc7IG5lZHRyZWtrJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25NdWx0aXNlbGVjdEZpbGVEaXJlY3RvciddID0gJypMYWdyZSByZXN1bHRhdGV0IHRpbCBmaWwoZXIpIEJBc2VydCBwJmFyaW5nOyBGbGVyZSBWYWxnJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25QYWdlUmVkaXJlY3RvciddID0gJypPbWRpcmlnZXIgdGlsIFNpZGUgQmFzZXJ0IHAmYXJpbmc7IE5lZHRyZWtrJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbCddID0gJypTZW5kZSByZXN1bHRhdGVyIHZpYSBlcG9zdCB0aWwgYmVzdGVtdGUgYWRyZXNzZXInOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsQ29uZmlybWF0aW9uJ10gPSAnKlZhbGlkZXJpbmctbWVkLWVwb3N0YWRyZXNzZSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRmlsZSddID0gJypTa3JpdiByZXN1bHRhdGVyIHRpbCBmbGF0IGZpbCc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGF0YWJhc2UnXSA9ICcqTGFncmUgcmVzdWx0YXRlciBpIGRhdGFiYXNlbic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uVXNlclRhZyddID0gJypLYWxsIG9wcCBlbiBCcnVrZXJkZWZpbmVydCBUYWdnIG1lZCBza2plbWEgcmVzdWx0YXRlbmUnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRlbGl2ZXJUb0VtYWlsQWRkcmVzc0ZpZWxkJ10gPSAnKkVwb3N0IHRpbCBCcnVrZXItT3BwZ2l0dCBFcG9zdGFkcmVzc2UnOwokbGFuZ1snZmllbGRfdHlwZV9QYWdlQnJlYWtGaWVsZCddID0gJy1TaWRlc2tpZnQnOwokbGFuZ1snZmllbGRfdHlwZV9GaWxlVXBsb2FkRmllbGQnXSA9ICdGaWwgb3BwbGFzdGluZyc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbEFkZHJlc3NGaWVsZCddID0gJ0Vwb3N0ICZxdW90O0ZyYSBhZHJlc3NlJnF1b3Q7IGZlbHQnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxOYW1lRmllbGQnXSA9ICdFcG9zdCAmcXVvdDtGcmEgbmF2biZxdW90OyBmZWx0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsU3ViamVjdEZpZWxkJ10gPSAnRXBvc3QgJnF1b3Q7RW1uZSZxdW90OyBmZWx0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3RhdGljVGV4dEZpZWxkJ10gPSAnLVN0YXRpc2sgdGVrc3QnOwokbGFuZ1snZmllbGRfdHlwZV9TeXN0ZW1MaW5rRmllbGQnXSA9ICctU3RhdGlzayBsZW5rZSc7CiRsYW5nWydmaWVsZF90eXBlX0xpbmtGaWVsZCddID0gJy1MZW5rZSc7CiRsYW5nWydmaWVsZF90eXBlX0hpZGRlbkZpZWxkJ10gPSAnU2tqdWx0IEZlbHQnOwokbGFuZ1snZmllbGRfdHlwZV9Db21wdXRlZEZpZWxkJ10gPSAnQmVyZWduZXQgZmVsdCc7CiRsYW5nWyd2YWxpZGF0aW9uX25vbmUnXSA9ICdJbmdlbiB2YWxpZGVyaW5nJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbnVtZXJpYyddID0gJ051bWVyaXNrJzsKJGxhbmdbJ3ZhbGlkYXRpb25faW50ZWdlciddID0gJ0ludGVnZXIgJzsKJGxhbmdbJ3ZhbGlkYXRpb25fZW1haWxfYWRkcmVzcyddID0gJ0Vwb3N0YWRyZXNzZSc7CiRsYW5nWyd2YWxpZGF0aW9uX211c3RfY2hlY2snXSA9ICdNJmFyaW5nOyBhdmtyeXNzZXMnOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9tYXRjaCddID0gJ1NhbXN2YXJlciB2YW5saWcgdXR0cnlrayc7CiRsYW5nWyd2YWxpZGF0aW9uX3JlZ2V4X25vbWF0Y2gnXSA9ICdTYW1zdmFyZXIgaWtrZSBtZWQgdmFubGlnIHV0dHJ5a2snOwokbGFuZ1sncmVxdWlyZWRfZmllbGRfbWlzc2luZyddID0gJ0VuIHZlcmRpIGVyIGlra2Ugb3BwZ2l0dCBmb3IgZXQgJiMwMzk7biZvc2xhc2g7ZHZlbmRpZyYjMDM5Oy1mZWx0JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX3ZhbHVlJ10gPSAnVmVubmxpZ3N0IHNrcml2IGlubiBlbiB2ZXJkaSBmb3IgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfbnVtYmVyJ10gPSAnVmVubmxpZ3N0IHNrcml2IGlubiBldCB0YWxsIGZvciAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfdmFsaWQnXSA9ICdWZW5ubGlnc3Qgc2tyaXYgaW5uIGVuIGd5bGRpZyB2ZXJkaSBmb3IgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FuX2ludGVnZXInXSA9ICdWZW5ubGdpc3Qgc2tyaXYgaW5uIGVuIGludGVnZXIgdmVyZGkgZm9yICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hbl9lbWFpbCddID0gJ1Zlbm5saWdzdCBza3JpdiBpbm4gZW4gZ3lsZGlnIGVwb3N0YWRyZXNzZSBmb3IgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1snbm90X3ZhbGlkX2VtYWlsJ10gPSAnJnF1b3Q7JXMmcXVvdDsgc2VyIGlra2UgdXQgdGlsICZhcmluZzsgdiZhZWxpZztyZSBlbiBneWxkaWcgZXBvc3RhZHJlc3NlISc7CiRsYW5nWydwbGVhc2VfZW50ZXJfbm9fbG9uZ2VyJ10gPSAnVmVubmxpZ3N0IG9wcGdpIGVuIHZlcmRpIHNvbSBpa2tlIGVyIGxlbmdyZSBlbm4gJXMgYm9rc3RhdmVyJzsKJGxhbmdbJ3RpdGxlX2xpc3RfZGVsaW1pdGVyJ10gPSAnVGVnbiAmYXJpbmc7IGJydWtlIHNvbSBhdmRlbGVyIGkgcmVzdWx0YXRlciBzb20gaGFyIGZsZXJlIHZlcmRpZXInOwokbGFuZ1sneW91X25lZWRfcGVybWlzc2lvbiddID0gJ0R1IHRyZW5nZXIgJnF1b3Q7JXMmcXVvdDsgcmV0dGlnaGV0ZW4gZm9yIGt1bm5lIHV0ZiZvc2xhc2g7cmUgZGVuIGhhbmRsaW5nZW4uJzsKJGxhbmdbJ2xhY2twZXJtaXNzaW9uJ10gPSAnQmVrbGFnZXIhIER1IGhhciBpa2tlIG5vayByZXR0aWdoZXRlciBmb3IgJmFyaW5nOyBmJmFyaW5nOyBhZGdhbmcgdGlsIGRlbiBhdmRlbGluZ2VuLic7CiRsYW5nWydmaWVsZF9vcmRlcl91cGRhdGVkJ10gPSAnRmVsdCByZWtrZWYmb3NsYXNoO2xnZSBvcHBkYXRlcnQuJzsKJGxhbmdbJ2Zvcm1fZGVsZXRlZCddID0gJ1NramVtYSBzbGV0dGV0Lic7CiRsYW5nWydmaWVsZF9kZWxldGVkJ10gPSAnRmVsdCBzbGV0dGV0JzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb25fdXBkYXRlZCddID0gJ0tvbmZpZ3VyYXNqb24gb3BwZGF0ZXJ0Lic7CiRsYW5nWyd5b3VfbXVzdF9jaGVjayddID0gJ0R1IG0mYXJpbmc7IGtyeXNzZSBhdiAmcXVvdDslcyZxdW90OyBmb3IgJmFyaW5nOyBmb3J0c2V0dGUuJzsKJGxhbmdbJ211c3Rfc3BlY2lmeV9vbmVfZGVzdGluYXRpb24nXSA9ICdEdSBtJmFyaW5nOyBvcHBnaSBpIGRldCBtaW5zdGUgZW4gbSZhcmluZztsLWFkcmVzc2UhJzsKJGxhbmdbJ2FyZV95b3Vfc3VyZV9kZWxldGVfZm9ybSddID0gJ0VyIGR1IHNpa2tlciBwJmFyaW5nOyBkdSB2aWwgc2xldHRlIHNramVtYWV0ICVzPyc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2ZpZWxkJ10gPSAnRXIgZHUgc2lra2VyIHAmYXJpbmc7IGR1IHZpbCBzbGV0dGUgZmVsdGV0ICVzPyc7CiRsYW5nWydub3RpY2Vfc2VsZWN0X3R5cGUnXSA9ICdBdmFuc2VydGUgdmFsZyBlciBpa2tlIHRpbGdqZW5nZWxpZyBmJm9zbGFzaDtyIGZlbHQtdHlwZSBoYXIgYmxpdHQgc2F0dC4nOwokbGFuZ1snZmllbGRfbmFtZV9pbl91c2UnXSA9ICdGZWx0IG5hdm5ldCAmcXVvdDslcyZxdW90OyBlciBhbGxlcmVkZSBpIGJydWsuIFZlbm5saWdzdCBicnVrIHVuaWtlIGZlbHRuYXZuLCBlbGxlciBzbCZhcmluZzsgYXYga3JhdmV0IHRpbCB1bmlrZSBmZWx0bmF2biBpIFNramVtYWJ5Z2dlciBrb25maWd1cmFzam9uZW4uJzsKJGxhbmdbJ2ZpZWxkX25vX25hbWUnXSA9ICdGZWx0ZXIgTSZBcmluZzsgbmF2bmVzLCBvbSBkdSBkYSBpa2tlIHNsJmFyaW5nO3IgYXYgZGV0dGUgaSBGb3JtIEJ1aWxkZXIga29uZmlndXJhc2pvbmVuLic7CiRsYW5nWydhbm9ueW1vdXMnXSA9ICdBbm9ueW0nOwokbGFuZ1snYWJicmV2aWF0aW9uX2xlbmd0aCddID0gJ0xlbmdkZTogJXMnOwokbGFuZ1snYm94ZXMnXSA9ICclcyBib2tzZXInOwokbGFuZ1snb3B0aW9ucyddID0gJyVzIHZhbGcnOwokbGFuZ1sndGV4dF9sZW5ndGgnXSA9ICclcyBib2tzdGF2ZXInOwokbGFuZ1snb3JkZXInXSA9ICdSZWtrZWYmb3NsYXNoO2xnZSc7CiRsYW5nWyd1bnNwZWNpZmllZCddID0gJ1t1c3Blc2lmaXNlcnRdJzsKJGxhbmdbJ2FkZGVkJ10gPSAnTGFndCB0aWwnOwokbGFuZ1sndXBkYXRlZCddID0gJ09wcGRhdGVydCc7CiRsYW5nWydzb3J0X29wdGlvbnMnXSA9ICdTb3J0ZXJpbmdzbXVsaWdoZXRlciBmb3IgdXRkYXRhJzsKJGxhbmdbJ3NlbGVjdF9vbmUnXSA9ICdWZWxnIGVuJzsKJGxhbmdbJ3NlbGVjdF90eXBlJ10gPSAnVmVsZyB0eXBlJzsKJGxhbmdbJ3RvJ10gPSAnVGlsJzsKJGxhbmdbJ3llcyddID0gJ0phJzsKJGxhbmdbJ25vJ10gPSAnTmVpJzsKJGxhbmdbJ3JlY2lwaWVudHMnXSA9ICdtb3R0YWtlcmUnOwokbGFuZ1snZmlsZV9jb3VudCddID0gJyVzIG11bGlnZSBmaWxlcic7CiRsYW5nWydkZXN0aW5hdGlvbl9jb3VudCddID0gJyVzIG0mYXJpbmc7bCc7CiRsYW5nWydzYXZlJ10gPSAnTGFncmUnOwokbGFuZ1snYWRkJ10gPSAnTGFnZyB0aWwnOwokbGFuZ1sndXBkYXRlJ10gPSAnT3BwZGF0ZXInOwokbGFuZ1snc2F2ZV9hbmRfY29udGludWUnXSA9ICdMYWdyZSBvZyBmb3J0c2V0dCByZWRpZ2VyaW5nJzsKJGxhbmdbJ2luZm9ybWF0aW9uJ10gPSAnSW5mb3JtYXNqb24nOwokbGFuZ1snYXV0b21hdGljJ10gPSAnQXV0b21hdGlzayc7CiRsYW5nWydmb3JtcyddID0gJ1NramVtYSc7CiRsYW5nWydmb3JtJ10gPSAnU2tqZW1hICVzJzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb24nXSA9ICdLb25maWd1cmFzam9uJzsKJGxhbmdbJ2ZpZWxkX3JlcXVpcmVtZW50X3VwZGF0ZWQnXSA9ICdGZWx0IG4mb3NsYXNoO2R2ZW5kaWctc3RhdHVzIG9wcGRhdGVydCc7CiRsYW5nWydtYXhpbXVtX3NpemUnXSA9ICdNYWtzLiBzdCZvc2xhc2g7cnJlbHNlJzsKJGxhbmdbJ3Blcm1pdHRlZF9leHRlbnNpb25zJ10gPSAnRmlsZW5kZWxzZXInOwokbGFuZ1sncGVybWl0dGVkX2ZpbGV0eXBlcyddID0gJ0xvdmxpZ2UgZmlsdHlwZXInOwokbGFuZ1snZmlsZV90b29fbGFyZ2UnXSA9ICdPcHBsYXN0ZXQgZmlsIGVyIGZvciBzdG9yISBNYWtzaW11bSBzdCZvc2xhc2g7cnJlbHNlIGVyOic7CiRsYW5nWydpbGxlZ2FsX2ZpbGVfdHlwZSddID0gJ0Rlbm5lIHR5cGUgZmlsIHZpbCBpa2tlIGJsaSBsYXN0ZXQgb3BwLiBWZW5ubGlnc3Qgc2pla2sgYXQgZmlsZW5kZWxzZW4gZXIga29ycmVrdC4nOwokbGFuZ1sndXBsb2FkJ10gPSAnTGFzdCBvcHAnOwokbGFuZ1snZm9ybV9pbXBvcnRlZCddID0gJ1NramVtYSBpbXBvcnRlcnQuJzsKJGxhbmdbJ2Zvcm1faW1wb3J0X2ZhaWxlZCddID0gJ1NramVtYSBpbXBvcnQgZmVpbGV0ISBEZXQgb3Bwc3RvZCBldCBwcm9ibGVtIG1lZCBmb3JtYXR0ZXQgcCZhcmluZzsgWE1MIGZpbGVuLic7CiRsYW5nWydyb3dzJ10gPSAnJXMgcmFkZXInOwokbGFuZ1snY29scyddID0gJyVzIGtvbG9ubmVyJzsKJGxhbmdbJzEyX2hvdXInXSA9ICcxMiAtdGltZXJzIGtsb2trZSc7CiRsYW5nWycyNF9ob3VyJ10gPSAnMjQtdGltZXJzIGtsb2trZSc7CiRsYW5nWydob3VyJ10gPSAnVGltZSc7CiRsYW5nWydtaW4nXSA9ICdNaW51dHQnOwokbGFuZ1snbWVyaWQnXSA9ICdNZXJpZGlhbihBTS9QTSknOwokbGFuZ1snZGF0ZV9yYW5nZSddID0gJ0ludGVydmFsbDogJXMgLSAlcyc7CiRsYW5nWyd0aGFua3MnXSA9ICdUYWtrISBEaW4gaW5uc2VuZGluZyBoYXIgYmxpdHQgbW90dGF0dC4nOwokbGFuZ1snZWRpdCddID0gJ1JlZGlnZXInOwokbGFuZ1snZGVsZXRlJ10gPSAnU2xldHQnOwokbGFuZ1snZGF5J10gPSAnRGFnJzsKJGxhbmdbJ21vbiddID0gJ00mYXJpbmc7bmVkJzsKJGxhbmdbJ3llYXInXSA9ICcmQXJpbmc7cic7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHVsIGF2aW5zdGFsbGVydC4nOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnTW9kdWwgdmVyc2pvbiAlcyBpbnN0YWxsZXJ0Lic7CiRsYW5nWyd1cGdyYWRlZCddID0gJ01vZHVsIG9wcGdyYWRlcnQgdGlsIHZlcnNqb24gJXMuJzsKJGxhbmdbJ2J1dHRvbl9wcmV2aW91cyddID0gJ1RpbGJha2UuLi4nOwokbGFuZ1snYnV0dG9uX3N1Ym1pdCddID0gJ1NlbmQgc2tqZW1hJzsKJGxhbmdbJ2J1dHRvbl9jb250aW51ZSddID0gJ0ZvcnRzZXR0Li4uJzsKJGxhbmdbJ3ZhbHVlX2NoZWNrZWQnXSA9ICdBdmtyeXNzZXQnOwokbGFuZ1sndmFsdWVfdW5jaGVja2VkJ10gPSAnSWtrZSBhdmtyeXNzZXQnOwokbGFuZ1sndGFiX21haW4nXSA9ICdIb3ZlZCc7CiRsYW5nWyd0YWJfc3ltYm9sJ10gPSAnU2tqZW1hIHZpc25pbmdzIGlubnN0aWxsaW5nZXInOwokbGFuZ1sndGFiX3N1Ym1pdCddID0gJ1NramVtYSBpbm5zZW5kaW5nJzsKJGxhbmdbJ3RhYl9jYXB0Y2hhJ10gPSAnQ2FwdGNoYSBpbm5zdGlsbGluZ2VyJzsKJGxhbmdbJ3RhYl9hZHZhbmNlZCddID0gJ0F2YW5zZXJ0ZSBpbm5zdGlsbGluZ2VyJzsKJGxhbmdbJ3RhYl90ZW1wbGF0ZWxheW91dCddID0gJ01hbCBsYXlvdXQgdmFsZyc7CiRsYW5nWyd0YWJfc3VibWlzc2lvbnRlbXBsYXRlJ10gPSAnSW5uc2VuZGluZ3MgbWFsJzsKJGxhbmdbJ2NhbnVzZV9zbWFydHknXSA9ICc8ZW0+U21hcnR5IHZhcmlhYmxlciBlciBneWxkaWdlIGkgZGV0dGUgZmVsdGV0LjxlbT4nOwokbGFuZ1snYWRkX29wdGlvbnMnXSA9ICdMZWdnIHRpbCBmbGVyZSB2YWxnJzsKJGxhbmdbJ2RlbGV0ZV9vcHRpb25zJ10gPSAnU2xldHQgbWFya2VydGUgdmFsZyc7CiRsYW5nWydhZGRfY2hlY2tib3hlcyddID0gJ0xlZ2cgdGlsIGZsZXJlIGF2a3J5c25pbmdzYm9rc2VyJzsKJGxhbmdbJ2RlbGV0ZV9jaGVja2JveGVzJ10gPSAnU2xldHQgbWFya2VydGUgYXZrcnlzbmluZ3Nib2tzZXInOwokbGFuZ1snYWRkX2FkZHJlc3MnXSA9ICdMZWdnIHRpbCBhbm5lbiBhZHJlc3NlJzsKJGxhbmdbJ2RlbGV0ZV9hZGRyZXNzJ10gPSAnU2xldHQgbWFya2VydCBhZHJlc3NlJzsKJGxhbmdbJ2FkZF9kZXN0aW5hdGlvbiddID0gJ0xlZ2cgdGlsIGFubmV0IG0mYXJpbmc7bCc7CiRsYW5nWydkZWxldGVfZGVzdGluYXRpb24nXSA9ICdTbGV0dCBtYXJrZXJ0ZSBtJmFyaW5nO2wnOwokbGFuZ1snc3VzcGVjdGVkX3NwYW0nXSA9ICdGb3IgbWFuZ2UgZXBvc3RlciBlciBibGl0dCBnZW5lcmVydCBmcmEgZGluIElQLWFkcmVzc2UuIEFudGktU3BhbSBrb2RlIGhhciBzdG9wcGV0IGxldmVyaW5nZW4uJzsKJGxhbmdbJ3N1c3BlY3RlZF9zcGFtX2xvZyddID0gJ01pc3RlbmtlbGlnIHNwYW0gZnJhIElQICVzIGJsZSBzdG9wcGV0Lic7CiRsYW5nWydyZW9yZGVyJ10gPSAnT21zb3J0ZXIgZmVsdGVyJzsKJGxhbmdbJ2NhbmNlbCddID0gJ0F2YnJ5dCc7CiRsYW5nWyd0aXRsZV9maWxlX3BhdGgnXSA9ICdNJmFyaW5nO2xrYXRhbG9nIGZvciB1dHNlbmRpbmcgYXYgZmlsZXInOwokbGFuZ1sndGl0bGVfdWR0X25hbWUnXSA9ICdCcnVrZXJkZWZpbmVydCBUYWdnJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZHNfZGVzdHBhZ2UnXSA9ICdTaWRlICZhcmluZzsgcmV0dXJuZXJlIHRpbCBtZWQgb3BwbGFzdGluZ3MgbGVua2VuJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZG1vZHVsZV9zdW1tYXJ5J10gPSAnSW5uc2VuZHQgbWVkIFNramVtYUJ5Z2dlcic7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2NhdGVnb3J5J10gPSAnT3BwbGFzdGluZ3MgS2F0ZWdvcmknOwokbGFuZ1sndGl0bGVfc2VuZHRvX3VwbG9hZHMnXSA9ICdTZW5kIGRlbm5lIGZpbGVuIHRpbCBvcHBsYXN0aW5ncyBtb2R1bGVuJzsKJGxhbmdbJ3RpdGxlX2xlZ2VuZCddID0gJ0ZlbHRncnVwcGV0aXR0ZWwnOwokbGFuZ1sndGl0bGVfbWF4aW11bV9sZW5ndGgnXSA9ICdNYWtzaW11bSBsZW5nZGUnOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfbGFiZWwnXSA9ICdBdmtyeXNuaW5nc2Jva3MgZXRpa2V0dCc7CiRsYW5nWyd0aXRsZV9yYWRpb19sYWJlbCddID0gJ1JhZGlva25hcHAgZXRpa2V0dCc7CiRsYW5nWyd0aXRsZV9jaGVja2VkX3ZhbHVlJ10gPSAnVmVyZGkgbiZhcmluZztyIGF2a3J5c3NldCc7CiRsYW5nWyd0aXRsZV91bmNoZWNrZWRfdmFsdWUnXSA9ICdWZXJkaSBuJmFyaW5nO3IgaWtrZSBhdmtyeXNzZXQnOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfZGV0YWlscyddID0gJ0F2a3J5c25pbmdzYm9rcyBncnVwcGUgZGV0YWxqZXInOwokbGFuZ1sndGl0bGVfZGVsZXRlJ10gPSAnU2xldHQ/JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9vbmVfbWVzc2FnZSddID0gJyZxdW90O1ZlbGcgJmVhY3V0ZTtuJnF1b3Q7IFRleHQnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX2Rpc3BsYXluYW1lJ10gPSAnVXR2YWxnIFZpc25pbmdzIE5hdm4nOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX3N1YmplY3QnXSA9ICdVdHZhbGcgZW1uZSc7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9jb3VudHJ5J10gPSAnU3RhbmRhcmQgdXR2YWxnJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X3N0YXRlJ10gPSAnU3RhbmRhcmQgdXR2YWxnJzsKJGxhbmdbJ3RpdGxlX29wdGlvbl9uYW1lJ10gPSAnVmFsZyBuYXZuJzsKJGxhbmdbJ3RpdGxlX29wdGlvbl92YWx1ZSddID0gJ1ZlcmRpIHNlbmR0JzsKJGxhbmdbJ3RpdGxlX3B1bGxkb3duX2RldGFpbHMnXSA9ICdOZWR0cmVra3MgdmFsZyc7CiRsYW5nWyd0aXRsZV9tdWx0aXNlbGVjdF9kZXRhaWxzJ10gPSAnRmxlcnZhbGcgdmFsZyc7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9hZGRyZXNzJ10gPSAnTSZhcmluZztsIGVwb3N0YWRyZXNzZSc7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9maWxlbmFtZSddID0gJ00mYXJpbmc7bCBGaWxuYXZuJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fbmFtZSddID0gJyZxdW90O0ZyYSBuYXZuJnF1b3Q7IGZvciBlcG9zdCc7CiRsYW5nWyd0aXRsZV9yZWxheGVkX2VtYWlsX3JlZ2V4J10gPSAnQnJ1ayBlbmtlbCBlcG9zdCB2ZXJpZmlzZXJpbmcnOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9yZWdleF9sb25nJ10gPSAnQnJ1ayBlbmtlbCBlcG9zdGFkcmVzc2UgdmVyaWZpc2VyaW5nIChmLmVrcy4gdGlsbGF0ICZxdW90O3hAeSZxdW90OyBpc3RlZGV0IGZvciAmYXJpbmc7IGtyZXZlICZxdW90O3hAeS50bGQmcXVvdDspJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fYWRkcmVzcyddID0gJyZxdW90O0ZyYSBhZHJlc3NlJnF1b3Q7IGZvciBlcG9zdCc7CiRsYW5nWyd0aXRsZV9lbWFpbF9lbmNvZGluZyddID0gJ0Vwb3N0IHRlZ25zZXR0IGtvZGluZyc7CiRsYW5nWyd0aXRsZV9kaXJlY3Rvcl9kZXRhaWxzJ10gPSAnTmVkdHJla2stYmFzZXJ0ZSBlcG9zdCBkZXRhbGplcic7CiRsYW5nWyd0aXRsZV9maWxlX25hbWUnXSA9ICdGaWxuYXZuJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX3N1YmplY3QnXSA9ICdFcG9zdCBFbW5lIGxpbmplJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmFtZSddID0gJ0ZyYSBuYXZuJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fc3RhdHVzJ10gPSAnU2tqZW1hIHN0YXR1cyc7CiRsYW5nWyd0aXRsZV9yZWFkeV9mb3JfZGVwbG95bWVudCddID0gJ0ZlcmRpZyBmb3IgYW52ZW5kZWxzZSc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkxJ10gPSAnSWtrZSBmZXJkaWcnOwokbGFuZ1sndGl0bGVfcmVkaXJlY3RfcGFnZSddID0gJ1NpZGUgJmFyaW5nOyB2aWRlcmVzZW5kZSB0aWwgZXR0ZXIgc2tqZW1hIHNlbmR0JzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTInXSA9ICdWZW5ubGlnc3QgbGVnZyB0aWwgZXQgZmVsdCB0aWwgc2tqZW1hZXQgcyZhcmluZzsgYnJ1a2VyZW5zIGlubnNrcml2aW5nIGJsaXIgYmVoYW5kbGV0LiBEdSBrYW4gJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeV9saW5rJ10gPSAnYnJ1ayBkZW5uZSBzbmFydmVpZW4nOwokbGFuZ1sndGl0bGVfZm9ybV9hbGlhcyddID0gJ1NramVtYSBhbGlhcyc7CiRsYW5nWyd0aXRsZV9mb3JtX2ZpZWxkcyddID0gJ1NramVtYWZlbHRlcic7CiRsYW5nWyd0aXRsZV9maWVsZF9pZCddID0gJ0ZpZWx0IElkJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX25hbWUnXSA9ICdGZWx0IG5hdm4nOwokbGFuZ1sndGl0bGVfcmFkaW9ncm91cF9kZXRhaWxzJ10gPSAnUmFkaW9rbmFwcCBncnVwcGUgZGV0YWxqZXInOwokbGFuZ1sndGl0bGVfZmllbGRfdHlwZSddID0gJ0ZlbHQgdHlwZSc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkzJ10gPSAnZm9yICZhcmluZzsgbGFnZSBldCBza2plbWEgYmVoYW5kbGluZyBmZWx0JzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZm9ybSddID0gJ0xlZ2cgdGlsIG55dHQgc2tqZW1hJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbiddID0gJ1ZpcyBTa2plbWEgQnlnZ2VyIHZlcnNqb24/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbl9sb25nJ10gPSAnRGV0dGUgdmlsIGlubmthcHNsZSBkaXR0IHZlcnNqb25zbnVtbWVyIGZvciBTa2plbWEgYnlnZ2VyIG1vZHVsZW4gaSBlbiBrb21tZW50YXIsIGZvciAmYXJpbmc7IGhqZWxwZSBpIGZlaWxzJm9zbGFzaDtraW5nJzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZmllbGQnXSA9ICdMZWdnIHRpbCBueXR0IGZlbHQnOwokbGFuZ1sndGl0bGVfZm9ybV9zdWJtaXRfYnV0dG9uJ10gPSAnU2tqZW1hICZxdW90O1NlbmQmcXVvdDsgdGVrc3QgZm9yIGtuYXBwJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5J10gPSAnTGVnZyB0aWwgZXR0IEphdmFzY3JpcHQgdGlsIFV0ZiZvc2xhc2g7ciBrbmFwcGVuIGZvciAmYXJpbmc7IHVubmcmYXJpbmc7IGdqZW50YXR0ZSBpbm5zZW5kaW5nZXI/JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5X2hlbHAnXSA9ICdMZWdnIHRpbCBTaWtrZXJoZXRzIHNjcmlwdCc7CiRsYW5nWyd0aXRsZV9mb3JtX25leHRfYnV0dG9uJ10gPSAnU2tqZW1hICZxdW90O05lc3RlJnF1b3Q7IHRla3N0IGZvciBrbmFwcCAoYnJ1a3QgcCZhcmluZzsgZmxlcnNpZGVycyBza2plbWFlciknOwokbGFuZ1sndGl0bGVfZm9ybV9wcmV2X2J1dHRvbiddID0gJ1NramVtYSAmcXVvdDtGb3JyaWdlJnF1b3Q7IHRla3N0IGZvciBrbmFwcCAoYnJ1a3QgcCZhcmluZzsgZmxlcnNpZGVycyBza2plbWFlciknOwokbGFuZ1sndGl0bGVfZmllbGRfdmFsaWRhdGlvbiddID0gJ0ZlbHRzamVrayc7CiRsYW5nWyd0aXRsZV9mb3JtX2Nzc19jbGFzcyddID0gJ0NTUyBrbGFzc2UgZm9yIGRldHRlIHNramVtYSc7CiRsYW5nWyd0aXRsZV9maWVsZF9jc3NfY2xhc3MnXSA9ICdDU1Mga2xhc3NlIGZvciBkZXR0ZSBmZWx0JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcmVxdWlyZWRfc3ltYm9sJ10gPSAnU3ltYm9sIGZvciAmYXJpbmc7IG1lcmtlIG4mb3NsYXNoO2R2ZW5kaWdlIGZlbHQnOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWQnXSA9ICdOJm9zbGFzaDtkdmVuZGlnJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2xvbmcnXSA9ICdLcmV2IGVuIHJlc3BvbnMgZm9yIGRldHRlIGZlbHQnOwokbGFuZ1sndGl0bGVfaGlkZV9sYWJlbCddID0gJ1NranVsIGV0aWtldHQnOwokbGFuZ1sndGl0bGVfaGlkZV9sYWJlbF9sb25nJ10gPSAnU2tqdWwgZGV0dGUgZmVsdGV0cyBuYXZuIHAmYXJpbmc7IHNramVtYWV0JzsKJGxhbmdbJ3RpdGxlX3RleHQnXSA9ICdTdGF0aXNrIHRla3N0ICZhcmluZzsgdmlzZSc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZWdleCddID0gJyhSZWdleCkgc2pla2snOwokbGFuZ1sndGl0bGVfbGluZXNfdG9fc2hvdyddID0gJ0FudGFsbCBsaW5qZXIgJmFyaW5nOyB2aXNlJzsKJGxhbmdbJ25vX2RlZmF1bHQnXSA9ICdJbmdlbiBzdGFuZGFyZCc7CiRsYW5nWydyZWRpcmVjdF9hZnRlcl9hcHByb3ZhbCddID0gJ1NpZGUgJmFyaW5nOyB2aWRlcmVzZW5kZSB0aWwgZXR0ZXIgZ29ka2plbm5pbmcnOwokbGFuZ1sndGl0bGVfcmVnZXhfaGVscCddID0gJ0RldHRlIHZhbmxpZ2UgdXR0cnlra2V0IHZpbCBiYXJlIGJsaSBicnVrdCBvbSAmcXVvdDt2YWxpZGVyaW5ncyB0eXBlJnF1b3Q7IGVyIHNhdHQgdGlsIHJlZ2V4LXJlbGF0ZXJ0IHZhbGcuIElua2x1ZGVyIGZ1bGwgUGVybC1zdGlsIHJlZ2V4LCBpbmtsdWRlcnQgc3RhcnQvc3RvcHAgc2xhc2hlciBvZyBmbGFnZyAoZi5la3MuICZxdW90Oy9pbWFnZVwuKFxkKykvaSZxdW90OyknOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWRfYWJicmV2J10gPSAnT2JsaWcuJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzJ10gPSAnU2tqdWwgZmVpbCc7CiRsYW5nWyd0aXRsZV9mb3JtX2Rpc3BsYXl0eXBlJ10gPSAnU2tqZW1hIHZpc25pbmdzIHR5cGUnOwokbGFuZ1sndGl0bGVfaGlkZV9lcnJvcnNfbG9uZyddID0gJ0hpbmRyZSBmZWlscyZvc2xhc2g7a2luZyAvIGZlaWwtbWVsZGluZ2VyIGZyYSAmYXJpbmc7IHZpc2VzIHRpbCBicnVrZXJlbi4nOwokbGFuZ1sndGl0bGVfZW1haWxfdGVtcGxhdGUnXSA9ICdFcG9zdCBtYWwnOwokbGFuZ1sndGl0bGVfbWF4aW11bV9zaXplJ10gPSAnTWFrc2ltdW0gb3BwbGFzdGluZyBmaWxzdCZvc2xhc2g7cnJlbHNlIChraWxvYnl0ZXMpJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZV9sb25nJ10gPSAnRGVubmUgYmVncmVuc25pbmcgZXIgZXQgdGlsbGVnZyB0aWwgZW5odmVyIGdyZW5zZSBzYXR0IGF2IHBocCBlbGxlciB3ZWJzZXJ2ZXIga29uZmlndXJhc2pvbmVuJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zJ10gPSAnR29ka2plbnRlIGZpbGVuZGVsc2VyJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zX2xvbmcnXSA9ICdTa3JpdiBlbiBrb21tYS1zZXBhcmVydCBsaXN0ZSwgdXRlbGF0dCBwdW5rdHVtIChmLmVrcy4gJnF1b3Q7anBnLGdpZixqcGVnJnF1b3Q7KS4gTWVsbG9tcm9tIHZpbCBibGkgaWdub3JlcnQuICZBcmluZzsgbGEgZGV0dGUgdiZhZWxpZztyZSB0b210IHZpbCBzaSBpbmdlbiByZXN0cmlrc2pvbmVyLic7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zJ10gPSAnVmlzIHJlc3RyaWtzam9uZXI/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnNfbG9uZyddID0gJ1ZpcyBzdCZvc2xhc2g7cnJlbHNlIGVsbGVyIGZpbGVuZGVsc2UtcmVzdHJpa3Nqb25lciBwJmFyaW5nOyBvcHBsYXN0aW5nc2ZlbHRldD8nOwokbGFuZ1sndGl0bGVfZm9ybV90ZW1wbGF0ZSddID0gJ01hbCAmYXJpbmc7IGJydWtlIGZvciAmYXJpbmc7IHZpc2Ugc2tqZW1hJzsKJGxhbmdbJ3RpdGxlX3BhZ2VfeF9vZl95J10gPSAnU2lkZSAlcyBhdiAlcyc7CiRsYW5nWyd0aXRsZV9ub19hZHZhbmNlZF9vcHRpb25zJ10gPSAnRmVsdGV0IGhhciBpbmdlbiBhdmFuc2VydGUgdmFsZy4nOwokbGFuZ1sndGl0bGVfZm9ybV91bnNwZWNpZmllZCddID0gJ1Rla3N0ICZhcmluZzsgdmlzZSBmb3IgdXNwZXNpZmlzZXJ0ZSBmZWx0IHZlcmRpZXInOwokbGFuZ1sndGl0bGVfZW5hYmxlX2Zhc3RhZGRfbG9uZyddID0gJ011bGlnZ2omb3NsYXNoO3IgcmFzayBmZWx0LXRpbGxlZ2dpbmcgbWVkIG5lZHRyZWtrIGZvciBza2plbWFlcj8nOwokbGFuZ1sndGl0bGVfZW5hYmxlX2Zhc3RhZGQnXSA9ICdNdWxpZ2dqJm9zbGFzaDtyIG5lZHRyZWtrIGZvciBodXJ0aWcgdGlsbGVnZ2luZyBhdiBmZWx0ZXI/JzsKJGxhbmdbJ3RpdGxlX2Zhc3RhZGQnXSA9ICdIdXJ0aWctdGlsbGVnZyBhdiBmZWx0ZXInOwokbGFuZ1sndGl0bGVfZW5hYmxlX2FudGlzcGFtX2xvbmcnXSA9ICcmQXJpbmc7IGhha2UgYXYgZGV0dGUgdmlsIGt1biB0aWxsYXRlIDEwIGVwb3N0ZXIgJmFyaW5nOyBibGlyIGdlbmVyZXJ0IGZyYSBlbiBnaXR0IElQIGFkcmVzc2UgKHByIHRpbWUpLic7CiRsYW5nWyd0aXRsZV9lbmFibGVfYW50aXNwYW0nXSA9ICdTbCZhcmluZzsgcCZhcmluZzsgcHJpbWl0aXZlIGFudGlzcGFtIGVnZW5za2FwZXI/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRpZHMnXSA9ICdWaXMgRmVsdCBJRGVyJzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRpZHNfbG9uZyddID0gJyZBcmluZzsgaGFrZSBhdiBkZXR0ZSB2aWwgdGlsbGF0ZSB2aXNuaW5nIGF2IGZlbHQgaWRlciB1bmRlciBvcHByZXR0ZWxzZSBlbGxlciByZWRpZ2VyaW5nIGF2IGV0IHNramVtYSc7CiRsYW5nWyd0aXRsZV94bWxfdG9fdXBsb2FkJ10gPSAnTGFzdCBvcHAgc2tqZW1hIHNvbSBYTUwgZmlsJzsKJGxhbmdbJ3RpdGxlX3htbF91cGxvYWRfZm9ybW5hbWUnXSA9ICdCZW55dHQgZGV0dGUgc2tqZW1hbmF2bmV0JzsKJGxhbmdbJ3RpdGxlX2ltcG9ydF9sZWdlbmQnXSA9ICdYTUwgU2tqZW1hIGltcG9ydCc7CiRsYW5nWyd0aXRsZV94bWxfdXBsb2FkX2Zvcm1hbGlhcyddID0gJ0Jlbnl0dCBkZXR0ZSBza2plbWEgYWxpYXNldCc7CiRsYW5nWyd0aXRsZV9odG1sX2VtYWlsJ10gPSAnR2VuZXJlciBIVE1MIGVwb3N0Pyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZSddID0gJ0Z5bGwgdXQgYXV0b21hdGlzaz8nOwokbGFuZ1sndGl0bGVfbGlua19hdXRvcG9wdWxhdGVfaGVscCddID0gJ0Z5bGwgdXQgYXV0b21hdGlzayBtZWQgVVJMJiMwMzk7ZW4gdGlsIHNpZGVuIHNvbSBpbm5laG9sZGVyIHNramVtYWV0PyAoZGV0dGUgb3ZlcnN0eXJlciBMZW5rZSB0aWwgbmV0dHN0ZWQgc2lkZSB2YWxnZXQgbmVkZW5mb3IpJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfbGluayddID0gJ1N0YW5kYXJkIGxlbmtlIFVSTCc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2xpbmtfdGl0bGUnXSA9ICdTdGFuZGFyZCBsZW5rZSB0ZWtzdCc7CiRsYW5nWyd0aXRsZV9saW5rX3RvX3NpdGVwYWdlJ10gPSAnTGVua2UgdGlsIG5ldHRzdGVkIHNpZGUnOwokbGFuZ1sndGl0bGVfY2FwdGNoYV9ub3RfaW5zdGFsbGVkJ10gPSAnRHUga2FuIGJlbnl0dGUgPGEgaHJlZj0mcXVvdDtodHRwOi8vd3d3Lndpa2lwZWRpYS5vcmcvd2lraS9DYXB0Y2hhJnF1b3Q7IHRhcmdldD0mcXVvdDtfbmV3JnF1b3Q7PiZxdW90O0NhcHRjaGEmcXVvdDs8L2E+IGZvciAmYXJpbmc7IGJlc2t5dHRlIHNramVtYSBpbm5zZW5kaW5nZXIgb20gZHUgaW5zdGFsbGVyZXIgQ2FwdGNoYSBtb2R1bGVuLiBGb3IgbWVyZSBpbmZvcm1hc2pvbiwgPGEgaHJlZj0mcXVvdDtodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2NhcHRjaGEvJnF1b3Q7PmNoZWNrIHRoZSBDYXB0Y2hhIHByb2plY3Q8L2E+Lic7CiRsYW5nWyd0aXRsZV91c2VfY2FwdGNoYSddID0gJ0JydWtlIENhcHRjaGEgZm9yICZhcmluZzsgYmVza3l0dGUgc2tqZW1hIGlubnNlbmRpbmdlcj8nOwokbGFuZ1sndGl0bGVfdXNlX2NhcHRjaGFfaGVscCddID0gJ0hhayBhdiBoZXIgZm9yICZhcmluZzsgYmVza3l0dGUgZGl0dCBza2plbWEgbWVkIGVuIDxhIGhyZWY9JnF1b3Q7aHR0cDovL3d3dy53aWtpcGVkaWEub3JnL3dpa2kvQ2FwdGNoYSZxdW90OyB0YXJnZXQ9JnF1b3Q7X25ldyZxdW90Oz4mcXVvdDtDYXB0Y2hhJnF1b3Q7PC9hPi4nOwokbGFuZ1sndGl0bGVfdXNlcl9jYXB0Y2hhJ10gPSAnVmVubmxpZ3N0IGJla3JlZnQgYXQgZHUgaWtrZSBlciBldCBza3JpcHQgdmVkICZhcmluZzsgc2tyaXZlIGlubiBib2tzdGF2ZW5lIGZyYSBiaWxkZXQuJzsKJGxhbmdbJ3RpdGxlX3VzZXJfY2FwdGNoYV9lcnJvciddID0gJ0ZlaWxldCB0ZWtzdCBmb3IgQ2FwdGNoYSc7CiRsYW5nWyd3cm9uZ19jYXB0Y2hhJ10gPSAnQ2FwdGNoYSB0ZWtzdGVuIGJsZSBpa2tlIGtvcnJla3QgaW5uc2tyZXZldC4nOwokbGFuZ1sndGl0bGVfdGl0bGVfdXNlcl9jYXB0Y2hhJ10gPSAnSGplbHBldGVrc3QgZm9yIENhcHRjaGEnOwokbGFuZ1snbGlua19sYWJlbCddID0gJ0xlbmtlIGV0aWtldHQnOwokbGFuZ1snbGlua19kZXN0aW5hdGlvbiddID0gJ0xlbmtlIG0mYXJpbmc7bCBVUkwnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9zZXQnXSA9ICdBdmtyeXNzZXQgc29tIHN0YW5kYXJkPyc7CiRsYW5nWyd0aXRsZV8yNF9ob3VyJ10gPSAnQmVueXR0IDI0LXRpbWVycyBrbG9ra2U/JzsKJGxhbmdbJ3RpdGxlX2JlZm9yZV9ub29uJ10gPSAnQU0gJzsKJGxhbmdbJ3RpdGxlX2FmdGVyX25vb24nXSA9ICdQTSAnOwokbGFuZ1sndGl0bGVfc21hcnR5X2V2YWwnXSA9ICdQcm9zZXNzZXIgc21hcnR5IHRhZ2dlciBpbm5pIGZlbHRlcj8nOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfcm93cyddID0gJ1JhZGVyIChtZXJrOiBkZXR0ZSBrYW4gYmxpIG92ZXJzdHlydCBhdiBDU1MpJzsKJGxhbmdbJ3RpdGxlX3RleHRhcmVhX2NvbHMnXSA9ICdLb2xvbm5lciAobWVyazogZGV0dGUga2FuIGJsaSBvdmVyc3R5cnQgYXYgQ1NTKSc7CiRsYW5nWyd0aXRsZV9mb3JtX21haW4nXSA9ICdIb3ZlZCBTa2plbWEgRGV0YWxqZXInOwokbGFuZ1snaGVscF9sZWF2ZWVtcHR5J10gPSAnRGV0dGUgZmVsdGV0IGthbiBkdSBsYSB2JmFlbGlnO3JlIGJsYW5rdCc7CiRsYW5nWydoZWxwX3ZhcmlhYmxlc19mb3JfdGVtcGxhdGUnXSA9ICdWYXJpYWJsZXIgZm9yIG1hbCc7CiRsYW5nWydoZWxwX3ZhcmlhYmxlc19mb3JfY29tcHV0YXRpb24nXSA9ICdUaWxnamVuZ2VsaWdlIHZhcmlhZ2xlcic7CiRsYW5nWydoZWxwX3BocF92YXJpYWJsZV9uYW1lJ10gPSAnUEhQIHZhcmlhYmVsJzsKJGxhbmdbJ2hlbHBfc3VibWlzc2lvbl9kYXRlJ10gPSAnRGF0byBmb3IgaW5ubGV2ZXJpbmcnOwokbGFuZ1snaGVscF9zZXJ2ZXJfbmFtZSddID0gJ0RpbiBzZXJ2ZXInOwokbGFuZ1snaGVscF9zdWJfc291cmNlX2lwJ10gPSAnSVAgYWRyZXNzZSB0aWwgcGVyc29uZW4gc29tIGJydWtlciBza2plbWFldCc7CiRsYW5nWydoZWxwX3N1Yl91cmwnXSA9ICdMaW5rIHRpbCBzaWRlbiBzb20gaW5uZWhvbGRlciBza2plbWFldCc7CiRsYW5nWydoZWxwX290aGVyX2ZpZWxkcyddID0gJ0FsdGVuYXRpdmUgZmVsdG5hdm4ga2FuIGJlbnl0dGVzIHV0Ynl0dGJhcnQgKHNwZXNpZWx0IG55dHRpZyBvbSBTbWFydHkgcHJvdGVzdGVyZXIgcCZhcmluZzsgYm9rc3RhdmVyIHV0ZW5mb3IgQVNDSUkgMzItMTI2KS4gPGJyIC8+QW5kcmUgZmVsdCB2aWwgYmxpIHRpbGdqZW5nZWxpZ2UgbiZhcmluZztyIGR1IGxlZ2dlciBkZW0gdGlsIHNramVtYWV0Lic7CiRsYW5nWydoZWxwX2FycmF5X2ZpZWxkcyddID0gJ0ZlbHRlciBzb20gaGFyIGZsZXJlIHZlcmRpZXIga2FuIG9ncyZhcmluZzsgbiZhcmluZztzIHZpYSBzbWFydHkgdmVyZGllbiBhdiAkZmllbGRuYW1lX2FycmF5IGVsbGVyICRmbGRfI19hcnJheS4nOwokbGFuZ1snaGVscF9kYXRlX2Zvcm1hdCddID0gJ1NlIDxhIGhyZWY9JiMwMzk7aHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5kYXRlLnBocCYjMDM5OyB0YXJnZXQ9X05FVz50aGUgUEhQIE1hbnVhbDwvYT4gZm9yIGZvcm1hdHRlcmluZ3MgaGplbHAuJzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVfbmFtZSddID0gJ1ZhcmlhYmVsJzsKJGxhbmdbJ2hlbHBfZm9ybV9maWVsZCddID0gJ0ZlbHQgcmVwcmVzZW50ZXJ0JzsKJGxhbmdbJ2xpbmtfYmFja190b19mb3JtJ10gPSAnJmxhcXVvOyBUaWxiYWtlIHRpbCBza2plbWEnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV90ZW1wbGF0ZSddID0gJ0xhZyBla3NlbXBlbG1hbCc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2h0bWxfdGVtcGxhdGUnXSA9ICdPcHByZXR0IEVrc2VtcGVsIEhUTUwtZXBvc3QgbWFsJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaGVhZGVyJ10gPSAnTGFnIGVrc2VtcGVsIG92ZXJza3JpZnQnOwokbGFuZ1snaGVscF90YWJfc3ltYm9sJ10gPSAnZXQgdGFidWxhdG9yIHRlZ24nOwokbGFuZ1sndGl0bGVfZmlsZV90ZW1wbGF0ZSddID0gJ01hbCBmb3IgJmVhY3V0ZTtuIGxpbmplIGF2IHV0ZGF0YSBmaWxlbic7CiRsYW5nWyd0aXRsZV9maWxlX2hlYWRlciddID0gJ01hbCBmb3Igb3ZlcnNrcmlmdGVuIHAmYXJpbmc7IHV0ZGF0YSBmaWxlbic7CiRsYW5nWyd0aXRsZV9jb25maXJtYXRpb25fdXJsJ10gPSAnTGluayAmYXJpbmc7IGtsaWtrZSBmb3Igc2tqZW1hIGJla3JlZnRlbHNlJzsKJGxhbmdbJ3RpdGxlX3ZhbHVlJ10gPSAnVmVyZGkgKHNlIEF2YW5zZXJ0IGZsaWtlbiBvbSBkdSBiZW55dHRlciBTbWFydHkgdGFnZ2VyKSc7CiRsYW5nWyd0aXRsZV9kYXRlX2Zvcm1hdCddID0gJ0RhdG8gZm9ybWF0IChzdGFuZGFyZCA8YSBocmVmPSZxdW90O2h0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24uZGF0ZS5waHAmcXVvdDs+UEhQIERhdGUgRm9ybWF0czwvYT4pJzsKJGxhbmdbJ3RpdGxlX3VzZV93eXNpd3lnJ10gPSAnQnJ1a2UgV1lTSVdZRyByZWRpZ2VyZXIgZm9yIHRla3N0IG9tciZhcmluZztkZXQ/JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9hY3Rpb25zJ10gPSAnT3BwZiZvc2xhc2g7cnNlbCBmb3IgU2tqZW1hIElubnNlbmRpbmcnOwokbGFuZ1sndGl0bGVfc3VibWl0X2xhYmVscyddID0gJ0V0aWtldHQgZm9yIElubnNlbmRpbmdza25hcHBlbic7CiRsYW5nWyd0aXRsZV9zdWJtaXRfaGVscCddID0gJ0Rlbm5lIHNpZGVuIGxhciBkZWcgdGlscGFzc2UgU2tqZW1hIElubnNlbmRpbmcuIERldCBiZXN0ZW1tZXIgaWtrZSBodmEgU2tqZW1hIEJ5Z2dlciBnaiZvc2xhc2g7ciBtZWQgZGUgaW5uc2VuZHRlIGRhdGEuIERldHRlIGthbiBkdSBzZXR0ZSBvcHAgdmVkICZhcmluZzsgbGVnZ2UgdGlsICZxdW90O0Rpc3Bvc2l0aW9uJnF1b3Q7KGdlbXl0dCkgZmVsdGVyIHRpbCBkaXR0IHNramVtYS4nOwokbGFuZ1sndGl0bGVfc3RhcnRfeWVhciddID0gJyZBcmluZztyc2ludGVydmFsbCBzdGFydCc7CiRsYW5nWyd0aXRsZV9lbmRfeWVhciddID0gJyZBcmluZztyc2ludGVydmFsbCBzbHV0dCc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3llYXInXSA9ICdTdGFuZGFyZCAmYXJpbmc7cic7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3llYXJfaGVscCddID0gJyhTZXR0IHRpbCAtMSBmb3IgYXQgc3RhbmRhcmQgJmFyaW5nO3Igc2thbCBibGkgbiZhcmluZzt2JmFlbGlnO3JlbmRlICZhcmluZztyKSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYWN0aW9uJ10gPSAnRXR0ZXIgc2tqZW1hZXQgZXIgc2VuZHQnOwokbGFuZ1sndGl0bGVfc3VibWl0X3Jlc3BvbnNlJ10gPSAnUmVzcG9ucyBzb20gc2thbCB2aXNlcyc7CiRsYW5nWydkaXNwbGF5X3RleHQnXSA9ICdWaXMgJnF1b3Q7SW5uc2VuZGluZ3MgbWFsJnF1b3Q7JzsKJGxhbmdbJ3JlZGlyZWN0X3RvX3BhZ2UnXSA9ICdPbWRpcmlnZXIgdGlsIG5ldHRzaWRlJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9yZXNwb25zZV9oZWxwJ10gPSAnRGVubmUgbWFsZW4gZXIgZm9yIGRldCBzb20gc2thbCB2aXNlcyB0aWwgYnJ1a2VyZW4gZXR0ZXIgZXQgc2tqZW1hIGVyIGlubnNlbmR0LiBEZW5uZSBtYWxlbiBoYXIgaW5nZW4gdmlya25pbmcgcCZhcmluZzsgZXBvc3RlciBzb20gZ2VuZXJlcmVzIGVsbGVyIGFuZHJlIHNramVtYWdlbXl0dGVyICAtLSBkdSBzZXR0ZXIgZGUgbWFsZW5lIChodm9yIGRldCBlciByZWxldmFudCkgaSAmcXVvdDthdmFuc2VydCZxdW90OyBmbGlrZW4gcCZhcmluZzsgZGlzc2UgZ2VteXR0ZW5lcyBmZWx0ZXIuJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX3BhZ2UnXSA9ICdNJmFyaW5nO2wgU2lkZSc7CiRsYW5nWyd0aXRsZV9yZXF1aXJlX2ZpZWxkbmFtZXMnXSA9ICdLcmV2IEZlbHRuYXZuJzsKJGxhbmdbJ3RpdGxlX3JlcXVpcmVfZmllbGRuYW1lc19sb25nJ10gPSAnS3JldiBhdCBmZWx0ZXIgc2thbCBoYSBldHQgbmF2bj8nOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXMnXSA9ICdLcmV2IHVuaWtlIGZlbG5hdm4nOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXNfbG9uZyddID0gJ0tyZXYgYXQgZmVsdGVyIHNrYWwgaGEgdW5pa2UgZmVsdG5hdm4/JzsKJGxhbmdbJ3RpdGxlX3Jlb3JkZXJfZm9ybSddID0gJ09tc29ydGVyIGZlbHRlcic7CiRsYW5nWyd0aXRsZV9sb2FkX3RlbXBsYXRlJ10gPSAnTGFzdCBtYWwnOwokbGFuZ1sndGl0bGVfYWRkX2J1dHRvbl90ZXh0J10gPSAnTGVnZyB0aWwgS25hcHAgdGVrc3QnOwokbGFuZ1sndGl0bGVfZGVsX2J1dHRvbl90ZXh0J10gPSAnU2xldHQgS25hcHAgdGVrc3QnOwokbGFuZ1sndGl0bGVfc3RyaW5nX29yX251bWJlcl9ldmFsJ10gPSAnRm9ydG9sayB2YXJpYWJsZXIgdGlsICZhcmluZzsgdiZhZWxpZztyZSBudW1tZXIgZWxsZXIgc3RyZW5nZXInOwokbGFuZ1sndGl0bGVfb3JkZXInXSA9ICdUb2xrbmluZ3NyZWtrZXJmJm9zbGFzaDtsZ2UnOwokbGFuZ1sndGl0bGVfb3JkZXJfaGVscCddID0gJ09tIG1lciBlbm4gZXQgQmVyZWduZXQgZmVsdCBla3Npc3RlcmVyLCB2aWwgZGUgYmxpIGJlcmVnbmV0IGZyYSBkZXQgbGF2ZXN0ZSByZWtrZWYmb3NsYXNoO2xnZW51bW1lcmV0IHRpbCBkZXQgaCZvc2xhc2g7eWVzdGUgcmVra2VmJm9zbGFzaDtsZ2VudW1tZXJldCc7CiRsYW5nWyd0aXRsZV9jb21wdXRlX3ZhbHVlJ10gPSAnVmVyZGkgJmFyaW5nOyBiZXJlZ25lJzsKJGxhbmdbJ3RpdGxlX3N0cmluZyddID0gJ1N0cmVuZyc7CiRsYW5nWyd0aXRsZV9udW1lcmljJ10gPSAnTnVtbWVyaXNrJzsKJGxhbmdbJ2RlZmF1bHRfdGVtcGxhdGUnXSA9ICdTdGFuZGFyZCBtYWwnOwokbGFuZ1sndGFibGVfbGVmdF90ZW1wbGF0ZSddID0gJ1RhYmVsbCBtYWwsIEV0aWtldHQgdGlsIHZlbnN0cmUnOwokbGFuZ1sndGFibGVfdG9wX3RlbXBsYXRlJ10gPSAnVGFiZWxsIG1hbCwgRXRpa2V0dCBvdmVyZm9yJzsKJGxhbmdbJ2Zvcm1fdGVtcGxhdGVfbmFtZSddID0gJ01hbCBmcmEgJXMnOwokbGFuZ1sndGVtcGxhdGVfYXJlX3lvdV9zdXJlJ10gPSAnRXIgZHUgc2lra2VyIHAmYXJpbmc7IGF0IGR1IHZpbCBvdmVyc2tyaXZlIGRpbiBtYWwgbWVkIGRlbiB2YWxndGUgbWFsZW4/IChNZW4gc2VsdiBvbSBkdSBzdmFyZXIgT0ssIHZpbCBkdSBmb3J0c2F0dCBtJmFyaW5nO3R0ZSBsYWdyZSBlbmRyaW5nZW4pJzsKJGxhbmdbJ3RpdGxlX2JhZF9mdW5jdGlvbiddID0gJ0ZlaWwgdW5kZXIgYmVyZWduaW5nICZxdW90OyVzJnF1b3Q7Lic7CiRsYW5nWydub19yZWZlcnJlcl9pbmZvJ10gPSAnSW5nZW4gSFRUUF9SRUZFUkVSIGluZm9ybWFzam9uIHRpbGdqZW5nZWxpZyc7CiRsYW5nWyd2YWxpZGF0aW9uX3BhcmFtX2Vycm9yJ10gPSAnR3lsZGlnaGV0c3NqZWtrIFBhcmFtZXRlciBmZWlsLiBWZW5ubGlnc3Qgc2pla2sgYXQgZHUga29waWVydGUgbGlua2VuIGZyYSBkaW4gZXBvc3Qga29ycmVrdCEnOwokbGFuZ1sndmFsaWRhdGlvbl9yZXNwb25zZV9lcnJvciddID0gJ0d5bGRpZ2hldHNzamVrayBSZXNwb25zIGZlaWwuIFZlbm5saWdzdCBzamVrayBhdCBkdSBrb3BpZXJ0ZSBsaW5rZW4gZnJhIGRpbiBlcG9zdCBrb3JyZWt0ISc7CiRsYW5nWyd2YWxpZGF0aW9uX25vX2ZpZWxkX2Vycm9yJ10gPSAnR3lsZGlnaGV0c3NqZWtrIFJlc3BvbnMgZmVpbC4gSW5nZW4gZXBvc3Qtc2pla2sgZmVsdCBpIGRldHRlIHNramVtYSc7CiRsYW5nWyd1cGdyYWRlMDN0bzA0J10gPSAnU2tqZW1hIG1hbGVuIGJsZSBvcHBkYXRlcnQgYXV0b21hZ2lzayBzb20gZGVsIGF2IHVwcGdyYWRlcmluZ2VuIGZyYSB2ZXJzam9uIDAuMyB0aWwgdmVyc2pvbiAwLjQuIER1IGthbnNramUgdHJlbmdlciAmYXJpbmc7IGdqJm9zbGFzaDtyZSBub2VuIG1hbnVlbGxlIGZpa3Nlci4gT20gZHUgYmVueXR0ZXIgc3RhbmRhcmQgc2tqZW1hZXQsIGthbiBkdSBlbmtlbHQgYnl0dGUgZGV0ICBtZWQgJnF1b3Q7ZGVmYXVsdCZxdW90OyB2ZWQgJmFyaW5nOyBiZW55dHRlIG5lZHRyZWtrbWVueWVuIG92ZW5mb3IuJzsKJGxhbmdbJ2FkbWluZGVzYyddID0gJ0xlZ2cgdGlsLCByZWRpZ2VyIG9nIGgmYXJpbmc7bmR0ZXIgaW50ZXJha3RpdmUgc2tqZW1hZXInOwokbGFuZ1snb3BlcmF0b3JzX2hlbHAnXSA9ICdPbSBkdSBiZW55dHRlciBTdHJlbmcpU3RyaW5nKSBldmFsdWVyaW5nLCBkZW4gZW5lc3RlIG9wZXJhc2pvbiB0aWxnamVuZ2VsaWcgZXIga29ibGluZyAoKyksIG1lbiBvbSBkdSBiZW55dHRlciBOdW1tZXIoTnVtYmVyKSBldmFsdWVyaW5nIHMmYXJpbmc7IGhhciBkdSBkZSBoZWx0IGVua2xlIG1hdGVtYXRpc2tlICgrLCAtLCAqLCAvKSc7CiRsYW5nWydkYXRlX2phbnVhcnknXSA9ICdKYW51YXInOwokbGFuZ1snZGF0ZV9mZWJydWFyeSddID0gJ0ZlYnJ1YXInOwokbGFuZ1snZGF0ZV9tYXJjaCddID0gJ01hcnMnOwokbGFuZ1snZGF0ZV9hcHJpbCddID0gJ0FwcmlsICc7CiRsYW5nWydkYXRlX21heSddID0gJ01haSc7CiRsYW5nWydkYXRlX2p1bmUnXSA9ICdKdW5pJzsKJGxhbmdbJ2RhdGVfanVseSddID0gJ0p1bGknOwokbGFuZ1snZGF0ZV9hdWd1c3QnXSA9ICdBdWd1c3QgJzsKJGxhbmdbJ2RhdGVfc2VwdGVtYmVyJ10gPSAnU2VwdGVtYmVyICc7CiRsYW5nWydkYXRlX29jdG9iZXInXSA9ICdPa3RvYmVyJzsKJGxhbmdbJ2RhdGVfbm92ZW1iZXInXSA9ICdOb3ZlbWJlciAnOwokbGFuZ1snZGF0ZV9kZWNlbWJlciddID0gJ0Rlc2VtYmVyJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3InXSA9ICdCZWtsYWdlciEgRGV0IHNramVkZGUgZW4gZmVpbCB1bmRlciBiZWhhbmRsaW5nIGF2IGRpbiBza2plbWEgaW5uc2VuZGluZy4nOwokbGFuZ1snc3VibWl0X2Vycm9yJ10gPSAnU2tqZW1hQnlnZ2VyIFNlbmRlZmVpbDogJXMnOwokbGFuZ1sndXBsb2Fkc19lcnJvciddID0gJ0ZlaWwgdmVkIG92ZXJmJm9zbGFzaDtyaW5nIGF2IGZpbGEgdGlsIG9wcGxhc3RpbmdzbW9kdWxlbjogJXMnOwokbGFuZ1snbm91cGxvYWRzX2Vycm9yJ10gPSAnS3VubmUgaWtrZSBmaW5uZSBPcHBsYXN0aW5nc21vZHVsZW4nOwokbGFuZ1sndXBsb2FkX2F0dGFjaF9lcnJvciddID0gJ09wcGxhc3RpbmcvVmVkbGVnZyBmZWlsIHAmYXJpbmc7IGZpbCAlcyAodGVtcF9uYXZuOiAlcywgYXYgdHlwZSAlcyknOwokbGFuZ1snc3VibWlzc2lvbl9lcnJvcl9maWxlX2xvY2snXSA9ICdGZWlsLiBVbXVsaWcgJmFyaW5nOyBlcnZlcnZlIGwmYXJpbmc7cyBmb3IgZmlsZW4uJzsKJGxhbmdbJ2VtYWlsX2RlZmF1bHRfdGVtcGxhdGUnXSA9ICdTa2plbWFCeWdnZXIgaW5uc2VuZGluZyc7CiRsYW5nWydlbWFpbF90ZW1wbGF0ZV9ub3Rfc2V0J10gPSAnPGJyLz5FcG9zdCBtYWwgZW5uJmFyaW5nOyAmYXJpbmc7aWtrZSBhbmdpdHQhJzsKJGxhbmdbJ21pc3NpbmdfY21zX21haWxlciddID0gJ1NramVtYUJ5Z2dlcjogS2FuIGlra2UgZmlubmUgbiZvc2xhc2g7ZHZlbmRpZyBtb2R1bCBDTVNNYWlsZXIhJzsKJGxhbmdbJ3VzZXJfYXBwcm92ZWRfc3VibWlzc2lvbiddID0gJ0JydWtlciBnb2RramVudCBzZW5kaW5nICVzIGZyYSAlcyc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J10gPSAnSGVuZGVsc2Ugc2F0dCBpIGdhbmcgbiZhcmluZztyIGV0IFNramVtYUJ5Z2dlciBza2plbWEgYmxpciBpbm5sZXZlcnQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdEVycm9yJ10gPSAnSGVuZGVsc2Ugc2F0dCBpIGdhbmcgb20gZGV0IHNramVyIGVuIGZlaWwgbiZhcmluZztyIGV0IFNramVtYUJ5Z2dlciBza2plbWEgYmxpciBpbm5sZXZlcnQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXSA9ICdIZW5kZWxzZSBzYXR0IGkgZ2FuZyBuJmFyaW5nO3IgZXQgU2tqZW1hQnlnZ2VyIHNramVtYSBibHJpIHZpc3QnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdCddID0gJzxwPkhlbmRlbHNlIHNhdHQgaSBnYW5nIG4mYXJpbmc7ciBldCBTa2plbWFfQnlnZ2VyIHNramVtYSBibGlyIGlubmxldmVydC48L3A+DQo8aDQ+UGFyYW1ldGVyZTwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gU2tqZW1hIG5hdm5ldCAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIERlbiBpbnRlcm5lIFNramVtYSBpZCAoaW50KTwvbGk+DQo8bGk+PGVtPnZhbHVlXyZhbXA7bHQ7bmFtZSZhbXA7Z3Q7PC9lbT4gLSBUaWxmJm9zbGFzaDtyIGVuIHN0YW5kYXJkIHZlcmRpIHRpbCBldCBmZWx0IG1lZCBkZXQgb3BnaXR0ZSBuYXZuZXQuPC9saT4NCjwvdWw+ICc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InXSA9ICc8cD5IZW5kZWxzZSBzYXR0IGkgZ2FuZyBvbSBkZXQgc2tqZXIgZW4gZmVpbCBuJmFyaW5nO3IgZXQgU2tqZW1hQnlnZ2VyIHNramVtYSBibGlyIGlubmxldmVydDwvcD4NCjxoND5QYXJhbWV0ZXJlPC9oND4NCjx1bD4NCjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBTa2plbWEgbmF2bmV0IChzdHJpbmcpPC9saT4NCjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gRGVuIGludGVybmUgc2tqZW1hIGlkIChpbnQpPC9saT4NCjxsaT48ZW0+ZXJyb3I8L2VtPiAtIEVuIGxpc3RlIG1lZCBhbGxlIGtqZW50ZSBmZWlsIChzdHJpbmcpPC9saT4NCjwvdWw+ICc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtRGlzcGxheSddID0gJzxwPkhlbmRlbHNlIHNhdHQgaSBnYW5nIG4mYXJpbmc7ciBldCBTa2plbWFCeWdnZXIgc2tqZW1hIGJscmkgdmlzdDwvcD4NCjxoND5QYXJhbWV0ZXJlPC9oND4NCjx1bD4NCjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBTa2plbWEgbmF2bmV0IChzdHJpbmcpPC9saT4NCjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gRGVuIGludGVybmUgc2tqZW1hIGlkIChpbnQpPC9saT4NCjwvdWw+ICc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfcmVzcG9uc2VfaWQnXSA9ICdSZXNwb25zZSBJRC4gQnJ1a3QgYXYgU2tqZW1hVXRmb3Jza2VyKEZvcm1Ccm93c2VyKSc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfcGFzc2VkX2Zyb21fdGFnJ10gPSAnU3RhbmRhcmQgZmVsdmVyZGllciAtIHNlIG1vZHVsaGVscCBmb3IgaW5mbyc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZmllbGRfaWQnXSA9ICdGZWx0IElEIGZvciBpbnRlcm5lIG9wZXJhc2pvbmVyJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19mb3JtX25hbWUnXSA9ICdTa2plbWFuYXZuJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19mb3JtX2lkJ10gPSAnU2tqZW1hIElEIGZvciBpbnRlcm5lIG9wZXJhc2pvbmVyJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19nZW5lcmFsJ10gPSAnR2VuZXJlbGxlIHBhcmFtZXRyZSBmb3IgaW50ZXJuZSBvcGVyYXNqb25lcic7CiRsYW5nWyd0ZW1wbGF0ZV92YXJpYWJsZV9oZWxwJ10gPSAnPGgzPkZvcm0gVGVtcGxhdGUgVmFyaWFibGVzPC9oMz4NCjxwPllvdSBjYW4gZWRpdCBpdCB0byBtYWtlIHlvdXIgZm9ybSBsYXlvdXQgbG9vayBhbnkgd2F5IHlvdSYjMDM5O2QgbGlrZS4NCiAgIFRvIG1ha2UgdGhlIGZvcm0gd29yaywgeW91JiMwMzk7bGwgbmVlZCB0byBhbHdheXMgaW5jbHVkZSB0aGUgJmFtcDsjMTIzOyRmYl9oaWRkZW59IGFuZCAmYW1wOyMxMjM7JHN1Ym1pdH0NCiAgIHRhZ3MuPC9wPg0KDQo8cD5Zb3UgY2FuIGFjY2VzcyB5b3VyIGZvcm0gZmllbGRzIGVpdGhlciB1c2luZyB0aGUgJGZpZWxkcyBhcnJheSBvciBieSBkaXJlY3RseSBhY2Nlc3NpbmcgZmllbGRzIGJ5IHRoZWlyIG5hbWVzIChlLmcuLCAmYW1wOyMxMjM7JG15ZmllbGQtPmlucHV0fSApPC9wPg0KDQoNCjxwPkVhY2ggZmllbGQgaGFzIHRoZSBmb2xsb3dpbmcgYXR0cmlidXRlczo8L3A+DQo8dGFibGU+DQo8dHI+PHRoPkZpZWxkPC90aD48dGg+VmFsdWU8L3RoPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5kaXNwbGF5PC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgc2hvdWxkIGJlIGRpc3BsYXllZCwgMCBvdGhlcndpc2U8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5yZXF1aXJlZDwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIGlzIHJlcXVpcmVkLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPnJlcXVpcmVkX3N5bWJvbDwvdGQ+PHRkPnRoZSBzeW1ib2wgZm9yIHJlcXVpcmVkIGZpZWxkczwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmNzc19jbGFzczwvdGQ+PHRkPnRoZSBDU1MgY2xhc3Mgc3BlY2lmaWVkIGZvciB0aGlzIGZpZWxkPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+dmFsaWQ8L3RkPjx0ZD4xIGlmIHRoaXMgZmllbGQgaGFzIHBhc3NlZCB2YWxpZGF0aW9uLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmVycm9yPC90ZD48dGQ+VGV4dCBvZiB0aGUgdmFsaWRhdGlvbiBwcm9ibGVtLCBpbiB0aGUgZXZlbnQgdGhhdCB0aGlzIGZpZWxkIGRpZCBub3QgdmFsaWRhdGU8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5oaWRlX25hbWU8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBuYW1lIHNob3VsZCBiZSBoaWRkZW4sIDAgb3RoZXJ3aXNlPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aGFzX2xhYmVsPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgdHlwZSBoYXMgYSBsYWJlbDwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPm5lZWRzX2RpdjwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIG5lZWRzIHRvIGJlIHdyYXBwZWQgaW4gYSBESVYgKG9yIHRhYmxlIHJvdywgaWYgdGhhdCYjMDM5O3MgdGhlIHdheSB5b3Ugc3dpbmcpPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+bmFtZTwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgbmFtZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmlucHV0PC90ZD48dGQ+dGhlIGZpZWxkJiMwMzk7cyBpbnB1dCBjb250cm9sIChlLmcuLCB0aGUgaW5wdXQgZmllbGQgaXRzZWxmKTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPm9wPC90ZD48dGQ+YSBjb250cm9sIGJ1dHRvbiBhc3NvY2lhdGVkIHdpdGggdGhlIGZpZWxkIGlmIGFwcGxpY2FibGUgKGUuZy4sIHRoZSBkZWxldGUgYnV0dG9uIGZvciBleHBhbmRhYmxlIHRleHQgaW5wdXQpPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aW5wdXRfaWQ8L3RkPjx0ZD50aGUgSUQgb2YgdGhlIGZpZWxkJiMwMzk7cyBpbnB1dCAodXNlZnVsIGZvciA8bGFiZWwgZm9yPSZxdW90OyZxdW90Oz4pPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+dHlwZTwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgZGF0YSB0eXBlPC90ZD48L3RyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCjx0cj48dGQ+ZmllbGQtPm11bHRpcGxlX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQtPmlucHV0IGlzIGFjdHVhbGx5IGEgY29sbGVjdGlvbiBvZiBjb250cm9sczwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmxhYmVsX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgY29sbGVjdGlvbiBvZiBjb250cm9scyBoYXMgc2VwYXJhdGUgbGFiZWxzIGZvciBlYWNoIGNvbnRyb2w8L3RkPjwvdHI+DQo8L3RhYmxlPg0KDQo8cD5JbiBjZXJ0YWluIGNhc2VzLCBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYW4gYXJyYXkgb2Ygb2JqZWN0cyByYXRoZXIgdGhhbiBhbiBpbnB1dC4gVGhpcyBoYXBwZW5zLCBmb3IgZXhhbXBsZSwgaW4gQ2hlY2tCb3hHcm91cHMgb3IgUmFkaW9CdXR0b25Hcm91cHMuIEZvciB0aGVtLCB5b3UgY2FuIGl0ZXJhdGUgdGhyb3VnaCBmaWVsZC0+aW5wdXQtPm5hbWUgYW5kIGZpZWxkLT5pbnB1dC0+aW5wdXRzLjwvcD4NCiAgICANCjxwPkFkZGl0aW9uYWwgc21hcnR5IHZhcmlhYmxlcyB0aGF0IHlvdSBjYW4gdXNlIGluY2x1ZGU6PC9wPg0KPHRhYmxlPg0KPHRyPjx0aD5WYXJpYWJsZTwvdGg+PHRoPlZhbHVlPC90aD48L3RyPg0KPHRyPjx0ZD50b3RhbF9wYWdlczwvdGQ+PHRkPm51bWJlciBvZiBwYWdlcyBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+dGhpc19wYWdlPC90ZD48dGQ+bnVtYmVyIGZvIHRoZSBjdXJyZW50IHBhZ2UgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPnRpdGxlX3BhZ2VfeF9vZl95PC90ZD48dGQ+ZGlzcGxheXMgJnF1b3Q7cGFnZSB4IG9mIHkmcXVvdDsgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPmNzc19jbGFzczwvdGQ+PHRkPkNTUyBDbGFzcyBmb3IgdGhlIGZvcm08L3RkPjwvdHI+DQo8dHI+PHRkPmZvcm1fbmFtZTwvdGQ+PHRkPkZvcm0gbmFtZTwvdGQ+PC90cj4NCjx0cj48dGQ+Zm9ybV9pZDwvdGQ+PHRkPkZvcm0gZGF0YWJhc2UgSUQ8L3RkPjwvdHI+DQo8dHI+PHRkPnByZXY8L3RkPjx0ZD4mcXVvdDtCYWNrJnF1b3Q7IGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD5zdWJtaXQ8L3RkPjx0ZD4mcXVvdDtDb250aW51ZSZxdW90OyBvciAmcXVvdDtTdWJtaXQmcXVvdDsgYnV0dG9uIGZvciBtdWx0aXBhcnQgZm9ybXMsIGFkanVzdHMgYXV0b21hdGljYWxseTwvdGQ+PC90cj4NCjwvdGFibGU+DQo8cD5EdW5ubyB3aHkgeW91JiMwMzk7ZCB3YW50IHNvbWUgb2YgdGhvc2UsIGJ1dCB0aGVyZSB5b3UgZ28uLi48L3A+JzsKJGxhbmdbJ3Bvc3RfaW5zdGFsbCddID0gJzxwPkh1c2sgJmFyaW5nOyBzZXR0ZSAmcXVvdDtNb2RpZnkgRm9ybXMmcXVvdDsgcmV0dGlnaGV0ZXIgdGlsIGJydWtlcmUgc29tIHNrYWwgYWRtaW5pc3RyZXJlIHRpbGJha2VtZWxkaW5ncy1za2plbWFlci4gT2cgb20gZHUgdmlsIHNlbmRlIHNramVtYSByZXN1bHRhdGVyIHZpYSBlcG9zdCwgaHVzayAmYXJpbmc7IG9wcGRhdGVyIGlubnN0aWxsaW5nZW5lIHRpbHN0cmVra2VsaWcuPC9wPg0KPHA+ViZhZWxpZztyIG9wcG1lcmtzb20gcCZhcmluZzsgYXQgdGlsYmFrZW1lbGRpbmdzIHNramVtYWV0IGlra2Ugc2thbCB2JmFlbGlnO3JlIGFrdGl2dCAoZi5la3MuIHRpbGdqZW5nZWxpZyBmb3IgcHVibGlrdW0pIG4mYXJpbmc7ciBkdSBmb3J0c2F0dCByZWRpZ2VyZXIgc2tqZW1hZXQuIER1IGImb3NsYXNoO3IgbGFnZSBza2plbWFldCwgb2cgcGxhc3NlcmUgdGFnZ2VuIGkgZW4gYWt0aXYgaW5uaG9sZHNpZGUgYmFyZSBuJmFyaW5nO3IgZHUgZXIgZmVyZGlnIG1lZCAmYXJpbmc7IHJlZGlnZXJlLiBFbGxlcnMsIGthbiBmZWlsYWt0aWdlIHJlc3VsdGF0ZXIgYmxpIHJldHVybmVydC48L3A+DQo8cD5PYnMhIERlbm5lIHZlcnNqb25lbiBzdCZvc2xhc2g7dHRlciBpa2tlIHBhcmFsZWxsIHJlZGlnZXJpbmcgYXYgc2tqZW1hZXIuIFYmYWVsaWc7ciBzaWtrZXIgcCZhcmluZzsgYXQga3VuICZlYWN1dGU7biBhZG1pbiAgcmVkaWdlcmVyIGV0IGdpdHQgc2tqZW1hIHAmYXJpbmc7IHNhbW1lIHRpZC48L3A+JzsKJGxhbmdbJ2hlbHAnXSA9ICc8aDM+V2hhdCBEb2VzIFRoaXMgRG8/PC9oMz4NCjxwPlRoZSBGb3JtIEJ1aWxkZXIgTW9kdWxlIGFsbG93cyB5b3UgdG8gY3JlYXRlIGZlZWRiYWNrIGZvcm1zIChpbiBmYWN0LCBpdCYjMDM5O3MgYSByZXBsYWNlbWVudCBvZiB0aGUgb3JpZ2luYWwgRmVlZGJhY2sgRm9ybSBtb2R1bGUpLCB3aXRoIHRoZSBhZGRlZCBwb3dlciBvZiBkYXRhYmFzZSBzdG9yYWdlLiBXaXRoIGl0cyBjb21wYW5pb24gbW9kdWxlIEZvcm0gQnJvd3NlciwgeW91IGNhbiB1c2UgaXQgdG8gY3JlYXRlIHNpbXBsZSBkYXRhYmFzZSBhcHBsaWNhdGlvbnMuPC9wPg0KPHA+VGhlIGZvcm1zIGNyZWF0ZWQgdXNpbmcgdGhlIEZvcm0gQnVpbGRlciBtYXkgYmUgaW5zZXJ0ZWQNCmludG8gdGVtcGxhdGVzIGFuZC9vciBjb250ZW50IHBhZ2VzLiBGb3JtcyBtYXkgY29udGFpbiBtYW55IGtpbmRzIG9mIGlucHV0cywgYW5kIG1heSBoYXZlDQp2YWxpZGF0aW9uIGFwcGxpZWQgdG8gdGhlc2UgaW5wdXRzLiBUaGUgcmVzdWx0cyBvZiB0aGVzZSBmb3JtcyBtYXkgYmUgaGFuZGxlZCBpbiBhIHZhcmlldHkgb2Ygd2F5cy48L3A+DQoNCjxoMz5Ib3cgRG8gSSBVc2UgaXQ/PC9oMz4NCjxQPkluc3RhbGwgaXQsIGFuZCBwb2tlIGFyb3VuZCB0aGUgbWVudXMuIFBsYXkgd2l0aCBpdC4gVHJ5IGNyZWF0aW5nIGZvcm1zLCBhbmQgYWRkaW5nIHRoZW0gdG8geW91ciBjb250ZW50Lg0KSWYgeW91IGdldCBzdHVjaywgY2hhdCB3aXRoIG1lIG9uIHRoZSAjY21zIElSQyBjaGFubmVsLCBwb3N0IHRvIHRoZSBmb3J1bSwgc2VuZCBtZSBlbWFpbCwgb3IsIGlmIHlvdSYjMDM5O3JlDQpyZWFsbHkgZGVzcGVyYXRlLCByZWFkIHRoZSByZXN0IG9mIHRoaXMgcGFnZS48L1A+DQoNCjxoMz5Ib3cgRG8gSSBDcmVhdGUgYSBGb3JtPC9oMz4NCjxwPkluIHRoZSBDTVMgQWRtaW4gTWVudSwgeW91IHNob3VsZCBnZXQgYSBuZXcgbWVudSBpdGVtIGNhbGxlZCBGb3JtQnVpbGRlci4gQ2xpY2sgb24gdGhpcy4gT24gdGhlIHBhZ2UNCnRoYXQgZ2V0cyBzaG93biwgdGhlcmUgYXJlIG9wdGlvbnMgKGF0IHRoZSBib3R0b20gb2YgdGhlIGxpc3Qgb2YgRm9ybXMpIHRvIEFkZCBhIE5ldyBGb3JtIG9yIE1vZGlmeQ0KQ29uZmlndXJhdGlvbi48L3A+DQoNCjxoMz5BZGRpbmcgYSBGb3JtIHRvIGEgUGFnZTwvaDM+DQo8cD5JbiB0aGUgbWFpbiBGb3JtQnVpbGRlciBhZG1pbiBwYWdlLCB5b3UgY2FuIHNlZSBhbiBleGFtcGxlIG9mIHRoZSB0YWcgdXNlZCB0byBkaXNwbGF5IGVhY2ggZm9ybS4gSXQgbG9va3MNCnNvbWV0aGluZyBsaWtlIHtjbXNfbW9kdWxlIG1vZHVsZT0mIzAzOTtGb3JtQnVpbGRlciYjMDM5OyBmb3JtPSYjMDM5O3NhbXBsZV9mb3JtJiMwMzk7fTwvcD4NCjxwPkJ5IGNvcHlpbmcgdGhpcyB0YWcgaW50byB0aGUgY29udGVudCBvZiBhIHBhZ2UsIG9yIGludG8gYSB0ZW1wbGF0ZSwgd2lsbCBjYXVzZSB0aGF0IGZvcm0gdG8gYmUgZGlzcGxheWVkLg0KSW4gdGhlb3J5LCB5b3UgY2FuIGhhdmUgbXVsdGlwbGUgZm9ybXMgb24gYSBwYWdlIGlmIHlvdSByZWFsbHkgd2FudCB0by4gQmUgY2FyZWZ1bCB3aGVuIHBhc3RpbmcgdGhlIHRhZw0KaW50byBhIHBhZ2UmIzAzOTtzIGNvbnRlbnQgaWYgeW91IHVzZSBhIFdZU0lXWUcgZWRpdG9yIHN1Y2ggYXMgVGlueU1DRSwgRkNLRWRpdCwgb3IgSFRNTEFyZWEuIFRoZXNlIGVkaXRvcnMgbWF5IHN0ZWFsdGhpbHkNCmNoYW5nZSB0aGUgcXVvdGUgbWFya3MgKCZxdW90OykgaW50byBIVE1MIGVudGl0aWVzICgmYW1wO2FtcDtxdW90OyksIGFuZCB0aGUgZm9ybXMgd2lsbCBub3Qgc2hvdyB1cC4gVHJ5IHVzaW5nDQpzaW5nbGUgcXVvdGVzICgmIzAzOTspIG9yIGVkaXRpbmcgdGhlIEhUTUwgZGlyZWN0bHkuPC9wPg0KDQo8aDM+V29ya2luZyB3aXRoIEZvcm1zPC9oMz4NCjxwPkJ5IGNsaWNraW5nIG9uIGEgRm9ybSYjMDM5O3MgbmFtZSwgeW91IGVudGVyIHRoZSBGb3JtIEVkaXQgcGFnZS4gVGhlcmUgYXJlIHNldmVyYWwgdGFicywgd2hpY2ggYXJlIGRlc2NyaWJlZCBiZWxvdzo8L3A+DQo8aDQ+TWFpbjwvaDQ+DQo8cD5UaGlzIGlzIHRoZSBtYWluIHBsYWNlIHlvdSYjMDM5O2xsIHdvcmsgb24geW91ciBmb3JtLiBIZXJlLCB5b3UgZ2l2ZSBpdCBhIG5hbWUsIGFuIGFsaWFzICh3aGljaCBpcyB1c2VkIHRvIGlkZW50aWZ5IGl0IGZvciBwbGFjaW5nIGl0IGluIGEgcGFnZSBvciB0ZW1wbGF0ZSksIGFuZCwgb3B0aW9uYWxseSwgYSBDU1MgY2xhc3Mgd2l0aCB3aGljaCB0byB3cmFwIHRoZSB3aG9sZSB0aGluZy48L3A+DQo8cD5CZWxvdyB0aGlzLCBpZiB5b3UgaGF2ZSBpdCBlbmFibGVkLCBpcyB0aGUgJnF1b3Q7ZmFzdCBmaWVsZCBhZGRlciZxdW90OyBwdWxsZG93biwgdGhhdCBsZXRzIHlvdSBxdWlja2x5IGFkZCBhIGZpZWxkIHRvIHRoZSBlbmQgb2YgeW91ciBmb3JtIGJ5IHNlbGVjdGluZyB0aGUgZmllbGQgdHlwZS48L3A+DQo8cD5CZWxvdyB0aGlzIGlzIHRoZSBsaXN0IG9mIGZpZWxkcyB0aGF0IG1ha2UgdXAgeW91ciBmb3JtLiBNb3JlIGRldGFpbCBvbiB0aGlzIGlzIGRlc2NyaWJlZCBiZWxvdy48L3A+DQo8aDQ+Rm9ybSBTdWJtaXNzaW9uPC9oND4NCjxwPldoZW4gdGhlIGZvcm0gaXMgc3VibWl0dGVkLCB5b3UgY2FuIGVpdGhlciByZWRpcmVjdCB0aGUgdXNlciB0byBhbm90aGVyIHBhZ2Ugb2YgeW91ciBzaXRlLCBvciB5b3UgY2FuIHByZXNlbnQgdGhlIHVzZXIgc29tZSBtZXNzYWdlICh3aGljaCBjYW4gY29udGFpbiBhbnkgb2YgdGhlIHVzZXImIzAzOTtzIGZvcm0gZW50cmllcywgb3IganVzdCBzdGF0aWMgdGV4dCkuIEluIHRoaXMgdGFiLCB5b3Ugc2VsZWN0IHdoaWNoIG9mIHRoZXNlIGFwcHJvYWNoZXMgeW91IHdpc2ggdG8gdXNlLCBhbmQsIGlmIHlvdSBjaG9zZSByZWRpcmVjdGlvbiwgaXQgYWxsb3dzIHlvdSB0byBwaWNrIHRoZSBwYWdlIHRvIHJlZGlyZWN0IHVzZXJzIHRvIGFmdGVyIGEgc3VjY2Vzc2Z1bCBmb3JtIHN1Ym1pc3Npb24uPC9wPg0KPHA+QWxzbyBvbiB0aGlzIHBhZ2UsIHlvdSBjYW4gc3BlY2lmeSB0aGUgbGFiZWxzIG9mIHZhcmlvdXMgc3VibWlzc2lvbiBidXR0b25zICgmcXVvdDtQcmV2aW91cyZxdW90OywgJnF1b3Q7bmV4dCZxdW90OywgJnF1b3Q7c3VibWl0JnF1b3Q7KS4gWW91IGNhbiBhbHNvIG9wdCB0byBoYXZlIHNvbWUgSmF2YXNjcmlwdCBhZGRlZCB0byB0aGUgbGFzdCBwYWdlIG9mIGEgZm9ybSB0aGF0IHdpbGwgcHJldmVudCBtdWx0aXBsZSBzdWJtaXNzaW9ucyAodXNlZnVsIG9uIHNsb3cgc2VydmVycykuPC9wPg0KPGg0PkZvcm0gRGlzcGxheSBPcHRpb25zPC9oND4NCjxwPlRoaXMgdGFiIGFsbG93cyBmb3Igb3RoZXIgZm9ybSBjdXN0b21pemF0aW9ucywgbGlrZSB0aGUgc3ltYm9sIHRvIHNob3cgZm9yIHJlcXVpcmVkIGZpZWxkcy48L3A+DQo8aDQ+Q2FwdGNoYSBTZXR0aW5nczwvaDQ+DQo8cD5JZiB5b3UgaGF2ZSBpbnN0YWxsZWQgdGhlIENhcHRjaGEgbW9kdWxlLCB0aGlzIHRhYiBsZXRzIHlvdSBjb25maWd1cmUgdGhlIENhcHRjaGEgc2V0dGluZ3MgZm9yIHlvdXIgZm9ybS48L3A+DQo8aDQ+Rm9ybSBUZW1wbGF0ZTwvaDQ+DQo8cD5UaGlzIGlzIHdoZXJlIHlvdSBkbyB5b3VyIGN1c3RvbWl6YXRpb24gd29yayBvZiB5b3VyIGZvcm0mIzAzOTtzIFNtYXJ0eSBUZW1wbGF0ZS4gU2VlIHRoZSBzZWN0aW9uIGNhbGxlZCBGb3JtIFRlbXBsYXRlIFZhcmlhYmxlcyBiZWxvdy48L3A+DQo8cD5UaGUgZm9ybSBzaG91bGQgZGVmYXVsdCB0byBhIEN1c3RvbSB0ZW1wbGF0ZSB0aGF0IGRvY3VtZW50cyB0aGUgU21hcnR5IHRhZ3MgYXZhaWxhYmxlIHRvIHlvdS48L3A+DQo8cD5Vbmxlc3MgeW91JiMwMzk7cmUgYSBTbWFydHkgZXhwZXJ0LCB5b3UgcHJvYmFibHkgZG9uJiMwMzk7dCB3YW50IHRvIG1lc3MgYXJvdW5kIHdpdGggdGhpcy4gSWYgeW91IGFyZSBhIFNtYXJ0eSBleHBlcnQsIHRoaXMgaXMgd2hlcmUgeW91IGNhbiB1bmxlYXNoIHlvdXIgbWFnaWMuPC9wPg0KPGg0PlN1Ym1pc3Npb24gVGVtcGxhdGU8L2g0Pg0KPHA+SWYsIGluIHRoZSBGb3JtIFN1Ym1pc3Npb24gdGFiLCB5b3Ugc2VsZWN0ZWQgJiMwMzk7RGlzcGxheSAmcXVvdDtTdWJtaXNzaW9uIFRlbXBsYXRlJnF1b3Q7LCB0aGlzIGlzIHdoZXJlIHlvdSBjYW4gY3JlYXRlIHRoYXQgdGVtcGxhdGUuIFRoZXJlIGlzIGEgZGlzcGxheSBvZiB3aGljaCBzbWFydHkgdmFyaWFibGVzIGFyZSBhdmFpbGFibGUgdG8geW91LCBhbmQgYSBidXR0b24gdG8gZ2VuZXJhdGUgYSBzYW1wbGUgdGVtcGxhdGUuPC9wPg0KPHA+SWYgeW91JiMwMzk7cmUgYSBTbWFydHkgZXhwZXJ0LCB5b3UgY2FuIGRvIGFsbCBtYW5uZXIgb2YgY3JlYXRpdmUgYW5kIHBvd2VyZnVsIHRoaW5ncyBoZXJlLiBJZiB5b3UmIzAzOTtyZSBub3QgYSBTbWFydHkgZXhwZXJ0LCB5b3UgbWlnaHQganVzdCB3YW50IHRvIHVzZSB0aGUgZGVmYXVsdC4NCjwvcD4NCg0KPGgzPkFkZGluZyBGaWVsZHMgdG8geW91ciBGb3JtPC9oMz4NCjxwPlRoZSB0eXBlcyBvZiBmaWVsZHMgdGhhdCBhcmUgY3VycmVudGx5IHN1cHBvcnRlZCBmaXQgaW50byBmb3VyIGdyb3Vwczogc3RhbmRhcmQgaW5wdXQgZmllbGRzLCBkaXNwbGF5IGNvbnRyb2wgZmllbGRzLCBlbWFpbC1zcGVjaWZpYyBmaWVsZHMsIGFuZCBmb3JtIHJlc3VsdCBoYW5kbGluZyBmaWVsZHMgKGFsc28gY2FsbGVkIEZvcm0gRGlzcG9zaXRpb25zIGluIHBsYWNlcyk6PC9wPg0KPHVsPg0KPGxpPlN0YW5kYXJkIElucHV0IEZpZWxkcyAtIHRoZXNlIGFyZSBpbnB1dHMgdGhhdCBhbGxvdyBlbnRyeSBvZiB0eXBpY2FsIGZvcm0gZWxlbWVudHM7IHRleHQgaW5wdXRzLCByYWRpbyBidXR0b25zLCBldGMuPC9saT4NCjxsaT5EaXNwbGF5IENvbnRyb2wgRmllbGRzIC0gdGhlc2UgaW5wdXQgY29udHJvbCBob3cgdGhlIHVzZXIgd2lsbCBzZWUgdGhlIGRpc3BsYXkgb2YgdGhlIGZvcm07IHBhZ2UgYnJlYWtzLCBzdGF0aWMgdGV4dCwgZXRjLjwvbGk+DQo8bGk+RW1haWwtc3BlY2lmaWMgRmllbGRzIC0gc29tZSBmb3JtcyBnZW5lcmF0ZSBlbWFpbCwgYW5kIGVtYWlsLXNwZWNpZmljIGZpZWxkcyBjYW4gYWx0ZXIgYXR0cmlidXRlcyBvZiB0aGUgZW1haWxzIHNlbnQuPC9saT4NCjxsaT5Gb3JtIERpc3Bvc2l0aW9ucyAtIFRoZXNlIGRldGVybWluZSB3aGF0IGhhcHBlbnMgd2hlbiB0aGUgdXNlcg0Kc3VibWl0cyB0aGUgZm9ybTsgZm9yIGVhY2ggcmVzdWx0IGhhbmRsaW5nIGZpZWxkLCBzb21lIG1ldGhvZCBvZiB0cmFuc21pdHRpbmcsIHNhdmluZywgb3IgZW1haWxpbmcgdGhlDQpmb3JtIGNvbnRlbnRzIHRha2VzIHBsYWNlLiBBIGZvcm0gbWF5IGhhdmUgbXVsdGlwbGUgZm9ybSBkaXNwb3NpdGlvbnMuPC9saT4NCjwvdWw+DQo8cD5Gb3JtIGZpZWxkcyBhcmUgYXNzaWduZWQgbmFtZXMuIFRoZXNlIG5hbWVzIGlkZW50aWZ5IHRoZSBmaWVsZCwgbm90IG9ubHkgb24gdGhlIHNjcmVlbiBhcyBsYWJlbHMgZm9yIHRoZSB1c2VyLA0KYnV0IGluIHRoZSBkYXRhIHdoZW4gaXQmIzAzOTtzIHN1Ym1pdHRlZCBzbyB5b3Uga25vdyB3aGF0IHRoZSB1c2VyIGlzIHJlc3BvbmRpbmcgdG8uIFBocmFzaW5nIHRoZSBuYW1lIGxpa2UgYSBxdWVzdGlvbg0KaXMgYSBoYW5keSB3YXkgb2YgbWFraW5nIGl0IGNsZWFyIHRvIHRoZSB1c2VyIHdoYXQgaXMgZXhwZWN0ZWQuIFNpbWlsYXJseSwgbWFueSBmaWVsZHMgaGF2ZSBib3RoIE5hbWVzIGFuZCBWYWx1ZXMuDQpUaGUgTmFtZXMgYXJlIHdoYXQgZ2V0cyBzaG93biB0byB0aGUgdXNlcjsgdGhlIFZhbHVlIGlzIHdoYXQgZ2V0cyBzYXZlZCBvciB0cmFuc21pdHRlZCB3aGVuIHRoZSB1c2VyIHN1Ym1pdHMNCnRoZSBmb3JtLiBUaGUgVmFsdWVzIGFyZSBuZXZlciBzZWVuIGJ5IHRoZSB1c2VyLCBub3IgYXJlIHRoZXkgdmlzaWJsZSBpbiB0aGUgSFRNTCwgc28gaXQmIzAzOTtzIHNhZmUgdG8gdXNlIGZvcg0KZW1haWwgYWRkcmVzc2VzIGFuZCBzdWNoLjwvcD4NCjxwPlNvbWUgZmllbGRzIGNhbiBoYXZlIG11bHRpcGxlIHZhbHVlcywgb3IgbXVsdGlwbGUgbmFtZS92YWx1ZSBwYWlycy4gV2hlbiB5b3UgZmlyc3QgY3JlYXRlIHN1Y2ggYSBmaWVsZCwNCnRoZXJlIG1heSBub3QgYmUgc3VmZmljaWVudCBpbnB1dHMgZm9yIHlvdSB0byBzcGVjaWZ5IGFsbCB0aGUgdmFsdWVzIHlvdSB3YW50LiBUbyBnZXQgbW9yZSBzcGFjZSBmb3IgaW5wdXR0aW5nDQp0aGVzZSB2YWx1ZXMsIHVzZSB0aGUgYnV0dG9ucyBhdCB0aGUgYm90dG9tIG9mIHRoZSBwYWdlIGZvciBhZGRpbmcgb3B0aW9ucy48L3A+DQo8cD5GaWVsZHMgY2FuIGJlIGFzc2lnbmVkIHZhbGlkYXRpb24gcnVsZXMsIHdoaWNoIHZhcnkgYWNjb3JkaW5nIHRvIHRoZSB0eXBlIG9mIHRoZSBmaWVsZC4gVGhlc2UgcnVsZXMgaGVscA0KZW5zdXJlIHRoYXQgdGhlIHVzZXIgZW50ZXJzIHZhbGlkIGRhdGEuIFRoZXkgbWF5IGFsc28gYmUNCnNlcGFyYXRlbHkgbWFya2VkICZxdW90O1JlcXVpcmVkJnF1b3Q7LCB3aGljaCB3aWxsIGZvcmNlIHRoZSB1c2VyIHRvIGVudGVyIGEgcmVzcG9uc2UuPC9wPg0KPHA+RmllbGRzIGFsc28gbWF5IGJlIGFzc2lnbmVkIGEgQ1NTIGNsYXNzLiBUaGlzIHNpbXBseSB3cmFwcyB0aGUgaW5wdXQgaW4gYSBkaXYgd2l0aCB0aGF0IGNsYXNzLCBzbyBhcyB0byBhbGxvdw0KY3VzdG9taXplZCBsYXlvdXRzLiBUbyB1c2UgdGhpcyBlZmZlY3RpdmVseSwgeW91IG1heSBuZWVkIHRvICZxdW90O3ZpZXcgc291cmNlJnF1b3Q7IG9uIHRoZSBnZW5lcmF0ZWQgZm9ybSwgYW5kIHRoZW4NCndyaXRlIHlvdXIgQ1NTLjwvcD4NCjx1bD4NCjxsaT5TdGFuZGFyZCBJbnB1dHMNCjx1bD48bGk+VGV4dCBJbnB1dC4gVGhpcyBpcyBhIHN0YW5kYXJkIHRleHQgZmllbGQuIFlvdSBjYW4gbGltaXQgdGhlIGxlbmd0aCwgYW5kIGFwcGx5IHZhcmlvdXMgdmFsaWRhdGlvbg0KZnVuY3Rpb25zIHRvIHRoZSBmaWVsZC48L2xpPg0KPGxpPlRleHQgQXJlYS4gVGhpcyBpcyBhIGJpZywgZnJlZS1mb3JtIHRleHQgaW5wdXQgZmllbGQuPC9saT4NCjxsaT5DaGVja2JveC4gVGhpcyBpcyBhIHN0YW5kYXJkIGNoZWNrIGJveC48L2xpPg0KPGxpPkNoZWNrYm94IEdyb3VwLiBUaGlzIGlzIGEgY29sbGVjdGlvbiBvZiBjaGVja2JveGVzLiBUaGUgb25seSBkaWZmZXJlbmNlIGJldHdlZW4gdGhpcyBpbnB1dCBhbmQgYQ0KY29sbGVjdGlvbiBvZiBDaGVja2JveCBpbnB1dHMgaXMgdGhhdCB0aGV5IGFyZSBwcmVzZW50ZWQgYXMgYSBncm91cCwgd2l0aCBvbmUgbmFtZSwgYW5kIGNhbiBoYXZlIGEgdmFsaWRhdGlvbiBmdW5jdGlvbiByZXF1aXJpbmcgdGhhdCB5b3UgY2hlY2sgb25lIG9yIG1vcmUgb2YgdGhlIGJveGVzIGluIHRoZSBncm91cC48L2xpPg0KPGxpPlJhZGlvIEdyb3VwLiBUaGlzIGlzIGEgY29sbGVjdGlvbiBvZiByYWRpbyBidXR0b25zLiBPbmx5IG9uZSBvZiB0aGUgZ3JvdXAgbWF5IGJlIHNlbGVjdGVkIGJ5IHRoZSB1c2VyLjwvbGk+DQo8bGk+UHVsbGRvd24uIFRoaXMgaXMgYSBzdGFuZGFyZCBwdWxsZG93biBtZW51LiBJdCYjMDM5O3MgcmVhbGx5IGNvbmNlcHR1YWxseSB0aGUgc2FtZSB0aGluZyBhcyBhIHJhZGlvIGJ1dHRvbg0KZ3JvdXAsIGJ1dCBpcyBiZXR0ZXIgd2hlbiB0aGVyZSBhcmUgYSBsYXJnZSBudW1iZXIgb2Ygb3B0aW9ucy48L2xpPg0KPGxpPk11bHRpc2VsZWN0LiBUaGlzIGlzIGEgbXVsdGktc2VsZWN0IGZpZWxkLiBJdCYjMDM5O3MgcmVhbGx5IGNvbmNlcHR1YWxseSB0aGUgc2FtZSB0aGluZyBhcyBhIGNoZWNrYm94IGJ1dHRvbg0KZ3JvdXAsIGJ1dCBpcyBiZXR0ZXIgd2hlbiB0aGVyZSBhcmUgYSBsYXJnZSBudW1iZXIgb2Ygb3B0aW9ucywgYXMgeW91IGNhbiBsaW1pdCB0aGUgbnVtYmVyIGRpc3BsYXllZCBvbiB0aGUgc2NyZWVuIGF0IGFueSBvbmUgdGltZS48L2xpPg0KPGxpPlN0YXRlLiBUaGlzIGlzIGEgcHVsbGRvd24gbGlzdGluZyB0aGUgU3RhdGVzIG9mIHRoZSBVLlMuPC9saT4NCjxsaT5Db3VudHJpZXMuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBDb3VudHJpZXMgb2YgdGhlIHdvcmxkIChhcyBvZiBKdWx5IDIwMDUpLjwvbGk+DQo8bGk+RGF0ZSBQaWNrZXIuIFRoaXMgaXMgYSB0cmlwbGUgcHVsbGRvd24gYWxsb3dpbmcgdGhlIHVzZXIgdG8gc2VsZWN0IGEgZGF0ZS48L2xpPg0KPGxpPlRpbWUgUGlja2VyLiBUaGlzIGlzIGEgc2V0IG9mIHB1bGxkb3ducyBhbGxvd2luZyB0aGUgdXNlciB0byBzZWxlY3QgYSB0aW1lICh1c2luZyAxMiBvciAyNCBob3VyIGNsb2NrKS48L2xpPg0KPGxpPkZpbGUgVXBsb2FkLiBUaGlzIGlzIGEgZmlsZSB1cGxvYWQgZmllbGQuPC9saT4NCjxsaT5MaW5rIChVc2VyIEVudGVyZWQpLiBUaGlzIGNyZWF0ZXMgYSBkb3VibGUgaW5wdXQgZmllbGQgZm9yIGdldHRpbmcgYSBsaW5rIFVSTCBhbmQgbGluayB0aXRsZS48L2xpPg0KPGxpPlRleHQgRmllbGQgKE11bHRpcGxlKS4gVGhpcyBmaWVsZCBjcmVhdGVzIG9uZSBvciBtb3JlIHRleHQgaW5wdXRzIHdpdGggYWRkIGFuZCBkZWxldGUgYnV0dG9ucywgZWZmZWN0aXZlbHkgZ2l2aW5nIHRoZSBlbmQgdXNlciBhIHdheSBvZiBjcmVhdGluZyB2YXJpYWJsZS1sZW5ndGggbGlzdHMuPC9saT4NCjwvdWw+PC9saT4NCg0KPGxpPkVtYWlsLXNwZWNpZmljIElucHV0cw0KPHVsPjxsaT5FbWFpbCBGcm9tIEFkZHJlc3MgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgdGhlaXIgZW1haWwgYWRkcmVzcy4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIGFkZHJlc3MgaW4gdGhlICZxdW90O0Zyb20mcXVvdDsgZmllbGQuPC9saT4NCjxsaT5FbWFpbCBGcm9tIE5hbWUgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgdGhlaXIgbmFtZS4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIG5hbWUgaW4gdGhlICZxdW90O0Zyb20mcXVvdDsgZmllbGQuPC9saT4NCjxsaT5FbWFpbCBTdWJqZWN0IEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIGEgc3ViamVjdCBmb3IgdGhlaXIgZW1haWwuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBpbiB0aGUgJnF1b3Q7U3ViamVjdCZxdW90OyBmaWVsZC4gVGhpcyBtYXkgY2F1c2UgdHJvdWJsZSB3aXRoIGNlcnRhaW4gZGlzcG9zaXRpb25zIHRoYXQgd2FudCB0byBjb250cm9sIHRoZSBFbWFpbCBTdWJqZWN0LCBzbyB1c2UgaXQgd2l0aCBjYXV0aW9uLjwvbGk+DQo8L3VsPjwvbGk+DQoNCjxsaT5EaXNwbGF5IENvbnRyb2wgRmllbGRzPHVsPg0KPGxpPi1QYWdlIEJyZWFrLiBUaGlzIGFsbG93cyB5b3UgdG8gc3BsaXQgeW91ciBmZWVkYmFjayBmb3JtIGludG8gbXVsdGlwbGUgcGFnZXMuIEVhY2ggcGFnZSBpcw0KaW5kZXBlbmRlbnRseSB2YWxpZGF0ZWQuIFRoaXMgaXMgZ29vZCBmb3IgYXBwbGljYXRpb25zIGxpa2Ugb25saW5lIHN1cnZleXMuPC9saT4NCjxsaT4tRmllbGRzZXQgU3RhcnQuIENvbWJpbmVkIHdpdGggRmllbGRzZXQgRW5kLCB0aGlzIGFsbG93cyB5b3UgdG8gZ3JvdXAgdmFyaW91cyBmaWVsZHMgd2l0aGluIHlvdXIgZm9ybS4gVXNlIHRoaXMgdG8gc3RhcnQgYSBnaXZlbiBncm91cGluZy48L2xpPg0KPGxpPi1GaWVsZHNldCBFbmQuIENvbWJpbmVkIHdpdGggRmllbGRzZXQgU3RhcnQsIHRoaXMgYWxsb3dzIHlvdSB0byBncm91cCB2YXJpb3VzIGZpZWxkcyB3aXRoaW4geW91ciBmb3JtLiBVc2UgdGhpcyB0byBlbmQgYSBnaXZlbiBncm91cGluZy48L2xpPg0KPGxpPi1IaWRkZW4gRmllbGQuIFRoaXMgYWxsb3dzIHlvdSB0byBlbWJlZCBhIGhpZGRlbiBmaWVsZCBpbiB5b3VyIGZvcm0uPC9saT4NCjxsaT4tU3RhdGljIFRleHQuIFRoaXMgYWxsb3dzIHlvdSB0byBwdXQgdGV4dCBvciBhIGxhYmVsIGluIHRoZSBtaWRkbGUgb2YgeW91ciBmb3JtLiBUaGlzIGlzIHVzZWZ1bCBmb3IgZ2l2aW5nIGFkZGl0aW9uYWwgaGVscCB0ZXh0LCBlc3BlY2lhbGx5IGlmIHlvdSYjMDM5O3JlIG5vdCB1c2luZyBhIEN1c3RvbSBUZW1wbGF0ZSB0byByZW5kZXIgeW91ciBmb3JtLjwvbGk+DQo8bGk+LVN0YXRpYyBMaW5rLiBUaGlzIGFsbG93cyB5b3UgdG8gcHV0IGEgbGluayB0byBhIGdpdmVuIHBhZ2UgaW50byB5b3VyIGZvcm0uIE9wdGlvbmFsbHksIHlvdSBjYW4gaGF2ZSBpdCBhdXRvcG9wdWxhdGUgd2l0aCB0aGUgcGFnZSB3aGVyZSB0aGUgZm9ybSBpcyBlbWJlZGRlZCAodXNlZnVsIGlmIHlvdVwmIzAzOTtyZSBzZW5kaW5nIHJlc3VsdHMgdmlhIGVtYWlsKS48L2xpPg0KPGxpPi1Db21wdXRlZCBGaWVsZC4gVGhpcyBhbGxvd3MgeW91IHRvIGVtYmVkIGEgY29tcHV0ZWQgZmllbGQgaW4geW91ciBmb3JtLiBJdCBpcyBub3QgdmlzaWJsZSB0byB0aGUgdXNlciB1bnRpbCBhZnRlciB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQuIEl0IGFsbG93cyB5b3UgdG8gZG8gc2ltcGxlIGFyaXRobWV0aWMgb3Igc3RyaW5nIGNvbmNhdGVuYXRpb24uPC9saT4NCjwvdWw+PC9saT4NCg0KPGxpPkZvcm0gSGFuZGxpbmcgSW5wdXRzIChEaXNwb3NpdGlvbnMpDQo8dWw+PGxpPipDYWxsIGEgVXNlciBEZWZpbmVkIFRhZyBXaXRoIHRoZSBGb3JtIFJlc3VsdHMuIFRoaXMgc3VibWl0cyBhbGwgdGhlIGZvcm0gcmVzdWx0cyB0byB0aGUgVXNlci1EZWZpbmVkIFRhZyB5b3Ugc3BlY2lmeS4gVGhlIFVEVCBjYW4gaGFuZGxlIHRoZSByZXN1bHRzIGhvd2V2ZXIgaXQgd2FudHMuPC9saT4NCjxsaT4qRW1haWwgUmVzdWx0cyBCYXNlZCBvbiBQdWxsZG93bi4gVGhpcyBpcyB1c2VmdWwgZm9yIHdlYiBzaXRlcyB3aGVyZSBjb21tZW50cyBnZXQgcm91dGVkIGJhc2VkIG9uIHRoZWlyIHN1YmplY3QgbWF0dGVyLCBlLmcuLCBidWdzIGdldCBzZW50IHRvIG9uZSBwZXJzb24sIG1hcmtldGluZyBxdWVzdGlvbnMgdG8gYW5vdGhlciBwZXJzb24sIHNhbGVzIHJlcXVlc3RzIHRvIHNvbWVvbmUgZWxzZSwgZXRjLiBUaGUgcHVsbGRvd24gaXMgcG9wdWxhdGVkIHdpdGggdGhlIHN1YmplY3RzLCBhbmQgZWFjaCBnZXRzIGRpcmVjdGVkIHRvIGEgc3BlY2lmaWMgZW1haWwgYWRkcmVzcy4gWW91IHNldCB1cCB0aGVzZSBtYXBwaW5ncyBpbiB0aGUgd2hlbiB5b3UgY3JlYXRlIG9yIGVkaXQgYSBmaWVsZCBvZiB0aGlzIHR5cGUuIElmIHlvdSB1c2Ugb25lIG9mIHRoZXNlICZxdW90O0RpcmVjdG9yJnF1b3Q7IHB1bGxkb3ducywgdGhlIHVzZXIgbXVzdCBtYWtlIGEgc2VsZWN0aW9uIGluIG9yZGVyIHRvIHN1Ym1pdCB0aGUNCmZvcm0uIFRoaXMgaW5wdXQgaXMgcGFydCBvZiB0aGUgZm9ybSB0aGUgdXNlciBzZWVzLCBhbHRob3VnaCB0aGUgZW1haWwgYWRkcmVzc2VzIGFyZSBub3QgbWFkZSB2aXNpYmxlIG5vcg0KYXJlIHRoZXkgZW1iZWRkZWQgaW4gdGhlIEhUTUwuPC9saT4NCjxsaT4qRW1haWwgUmVzdWx0cyB0byBzZXQgQWRkcmVzcyhlcykuIFRoaXMgc2ltcGx5IHNlbmRzIHRoZSBmb3JtIHJlc3VsdHMgdG8gb25lIG9yIG1vcmUgZW1haWwgYWRkcmVzc2VzIHRoYXQgeW91IGVudGVyIHdoZW4geW91IGNyZWF0ZSBvciBlZGl0IHRoaXMgdHlwZSBvZiBmaWVsZC4gVGhpcyBmaWVsZCBhbmQgaXRzIG5hbWUgYXJlIG5vdCB2aXNpYmxlIGluIHRoZQ0KZm9ybSB0aGF0IHRoZSB1c2VyIHNlZXMuIFRoZSBlbWFpbCBhZGRyZXNzZXMgYXJlIG5vdCBtYWRlIHZpc2libGUgbm9yDQphcmUgdGhleSBlbWJlZGRlZCBpbiB0aGUgSFRNTC48L2xpPg0KPGxpPipFbWFpbCB0byBVc2VyLVN1cHBsaWVkIEFkZHJlc3MuIFRoaXMgcHV0cyBhbiBpbnB1dCBmaWVsZCBpbiB0aGUgZm9ybSBmb3IgdGhlIHVzZXIgdG8gcG9wdWxhdGUgd2l0aCBhbiBlbWFpbCBhZGRyZXNzLiBUaGUgZm9ybSByZXN1bHRzIGdldCBzZW50IHRvIHRoYXQgYWRkcmVzcy4gQmV3YXJlIG9mIFNwYW0gYWJ1c2UhIEFjdGl2ZSB0aGUgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcyBpbiB0aGUgRm9ybUJ1aWxkZXIgY29uZmlndXJhdGlvbiBzY3JlZW4uPC9saT4NCjxsaT4qU3RvcmUgUmVzdWx0cyBpbiBEYXRhYmFzZS4gVGhpcyB3aWxsIHN0b3JlIHRoZSBmb3JtIGNvbnRlbnRzIGluIGFuIGludGVybmFsIGRhdGFiYXNlLiBZb3Ugd2lsbCBhbHdheXMgdXNlIHRoaXMgZGlzcG9zaXRpb24gaWYgeW91IHVzZSB0aGUgZm9ybSB3aXRoIEZvcm1Ccm93c2VyLjwvbGk+DQo8bGk+KlJlZGlyZWN0IHRvIFBhZ2UgQmFzZWQgb24gUHVsbGRvd24uIFRoaXMgYWxsb3dzIHlvdSB0byByZWRpcmVjdCB0aGUgZm9ybSB0byBhIGRpZmZlcmVudCBzaXRlIHBhZ2UgZGVwZW5kaW5nIG9uIGl0cyB2YWx1ZS4gSWYgeW91IGhhdmUgbXVsdGlwbGUgZGlzcG9zaXRpb25zLCBtYWtlIHN1cmUgdGhpcyBpcyB1c2VkIGxhc3QuPC9saT4NCjxsaT4qVmFsaWRhdGUgdmlhIEVtYWlsLiBUaGlzIGlzIGEgc3RyYW5nZSBhbmQgcG93ZXJmdWwgZmllbGQuIEl0IHByb3ZpZGVzIHRoZSB1c2VyIGEgbWFuZGF0b3J5IGlucHV0IGZvciB0aGVpciBlbWFpbCBhZGRyZXNzLiBPbmNlIHRoZXkgc3VibWl0IHRoZWlyIGZvcm0sIHRoZSBzdGFuZGFyZCBmb3JtIGRpc3Bvc2l0aW9ucyBhcmUgbm90IHBlcmZvcm1lZCAtLSByYXRoZXIsIGl0IHNlbmQgdGhlIHVzZXIgYW4gZW1haWwgd2l0aCBhIHNwZWNpYWwgY29kZWQgbGluay4gSWYgdGhleSBjbGljayBvbiB0aGUgbGluaywgdGhlIG90aGVyIGZvcm0gaXMgY29uc2lkZXJlZCAmcXVvdDthcHByb3ZlZCwmcXVvdDsgYW5kIHRoZSBvdGhlciBkaXNwb3NpdGlvbnMgYXJlIGFsbCBwZXJmb3JtZWQuPC9saT4NCjxsaT4qV3JpdGUgUmVzdWx0cyB0byBGbGF0IEZpbGUuIFRoaXMgdGFrZXMgdGhlIGZvcm0gcmVzdWx0cyBhbmQgd3JpdGVzIHRoZW0gaW50byBhIHRleHQgZmlsZS4gWW91IG1heQ0Kc2VsZWN0IHRoZSBuYW1lIG9mIHRoZSBmaWxlLCBhbmQgc2V0IGl0cyBmb3JtYXQuIFRoZXNlIGZpbGVzIGFyZSB3cml0dGVuIHRvIHRoZSAmcXVvdDtvdXRwdXQmcXVvdDsgZGlyZWN0b3J5IHVuZGVyIHRoZQ0KbW9kdWxlJiMwMzk7cyBpbnN0YWxsYXRpb24gZGlyZWN0b3J5LCBhc3N1bWluZyB0aGUgd2ViIHNlcnZlciBoYXMgcGVybWlzc2lvbiB0byB3cml0ZSB0aGVyZS48L2xpPg0KPGxpPipTYXZlIFJlc3VsdHMgdG8gRmlsZSBCYXNlZCBvbiBQdWxsZG93bi4gTGlrZSB0aGUgRmxhdCBGaWxlIGRpc3Bvc2l0aW9uLCBleGNlcHQgdGhlIHZhbHVlIG9mIGEgcHVsbC1kb3duIGRldGVybWluZXMgd2hpY2ggZmlsZSByZXN1bHRzIGdldCB3cml0dGVuIHRvLjwvbGk+DQo8bGk+KlNhdmUgUmVzdWx0cyB0byBGaWxlKHMpIEJhc2VkIG9uIE11bHRpcGxlIFNlbGVjdGlvbnMuIExpa2UgdGhlIEZsYXQgRmlsZSBkaXNwb3NpdGlvbiwgZXhjZXB0IHRoZSB2YWx1ZShzKSBvZiBjaGVja2JveGVzICBkZXRlcm1pbmVzIHdoaWNoIGZpbGUocykgcmVzdWx0cyBnZXQgd3JpdHRlbiB0by48L2xpPg0KPC91bD48L2xpPjwvbGk+PC91bD4NCg0KDQo8aDM+UGFzc2luZyBEZWZhdWx0IFZhbHVlcyB0byBGb3JtczwvaDM+DQo8cD5DYWxndXkgYWRkZWQgYSBuaWNlIGZlYXR1cmUsIHdoaWNoIGlzIHRoYXQgeW91IGNhbiBwYXNzIGRlZmF1bHQgZmllbGQgdmFsdWVzIHRvIHlvdXIgZm9ybSB2aWEgdGhlIG1vZHVsZSB0YWcuIFRoaXMgYWxsb3dzIHlvdSB0byBoYXZlDQp0aGUgc2FtZSBmb3JtIGluIG11bHRpcGxlIHBsYWNlcywgYnV0IHdpdGggZGlmZmVyZW50IGRlZmF1bHQgdmFsdWVzLiBJdCBtYXkgbm90IHdvcmsgZm9yIG1vcmUgZXhvdGljIGZpZWxkIHR5cGVzLCBidXQgZm9yIGZpZWxkcyB0aGF0IGhhdmUNCmEgc2luZ2xlIHZhbHVlLCB5b3UgY2FuIHNwZWNpZnkgbGlrZTo8L3A+DQo8cD57Y21zX21vZHVsZSBtb2R1bGU9JiMwMzk7Rm9ybUJ1aWxkZXImIzAzOTsgZm9ybT0mIzAzOTtteV9mb3JtJiMwMzk7IHZhbHVlXzxpPkZJRUxETkFNRTwvaT49JiMwMzk7ZGVmYXVsdF92YWx1ZSYjMDM5O308L3A+DQo8cD5UaGlzIHdpbGwgc2V0IHRoZSBmaWVsZCB3aXRoIDxpPkZJRUxETkFNRTwvaT4gdG8gJiMwMzk7ZGVmYXVsdF92YWx1ZSYjMDM5Oy48L3A+DQo8cD5UaGlzIGNhbiBiZSBwcm9ibGVtYXRpYywgYXMgc29tZXRpbWVzIGZpZWxkIG5hbWVzIGFyZSB1bndlaWxkeSBvciBjb250YWluIGNoYXJhY3RlcnMgdGhhdCBkb24mIzAzOTt0IHdvcmsgd2VsbCB3aXRoIFNtYXJ0eS4gU28gdGhlcmUgaXMgYW4NCmFsdGVybmF0aXZlIGxpa2UgdGhpczo8L3A+DQo8cD57Y21zX21vZHVsZSBtb2R1bGU9JiMwMzk7Rm9ybUJ1aWxkZXImIzAzOTsgZm9ybT0mIzAzOTtteV9mb3JtJiMwMzk7IHZhbHVlX2ZsZDxpPk5VTUJFUjwvaT49JiMwMzk7ZGVmYXVsdF92YWx1ZSYjMDM5O308L3A+DQo8cD5UaGF0IHVzZXMgZmllbGQgPGk+TlVNQkVSPC9pPiwgd2hlcmUgPGk+TlVNQkVSPC9pPiBpcyB0aGUgaW50ZXJuYWwgRm9ybUJ1aWxkZXIgZmllbGQgaWQuIFlvdSBtaWdodCB3b25kZXIgaG93IHlvdSBrbm93IHdoYXQgdGhhdCBpZCBpcy4gU2ltcGx5IGdvIGludG8gdGhlIEZvcm1CdWlsZGVyIGNvbmZpZ3VyYXRpb24gdGFiLA0KYW5kIGNoZWNrICZxdW90O1Nob3cgRmllbGQgSURzJnF1b3Q7PC9wPg0KDQo8aDM+RW1haWwgYW5kIEZsYXQgRmlsZSBUZW1wbGF0ZXM8L2gzPg0KPHA+TWFueSBkaXNwb3NpdGlvbiB0eXBlcyBhbGxvdyB5b3UgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZm9yIHRoZSBlbWFpbCB0aGF0IGlzIGdlbmVyYXRlZCwgb3IgZm9yIHRoZSB3YXkgdGhlIHJlc3VsdHMgYXJlIHdyaXR0ZW4gdG8gYSBmaWxlLiBJZiB5b3Ugb3B0IG5vdCB0byBjcmVhdGUgYSB0ZW1wbGF0ZSwgdGhlIEZvcm1CdWlsZGVyIHdpbGwgdXNlIGl0JiMwMzk7cyBvd24gYmVzdCBndWVzcywgd2hpY2ggbWF5IG9yIG1heSBub3Qgd29yayBvdXQgdG8geW91ciBsaWtpbmcuIFlvdSBjYW4gYWx3YXlzIGNsaWNrIG9uIHRoZSAmcXVvdDtDcmVhdGUgU2FtcGxlIFRlbXBsYXRlJnF1b3Q7IGFuZCB0aGVuIGN1c3RvbWl6ZSB0aGUgcmVzdWx0cy48L3A+DQo8cD5UbyB0aGUgcmlnaHQsIHlvdSYjMDM5O2xsIGZpbmQgYSBsZWdlbmQgd2hpY2ggbGlzdHMgYWxsIG9mIHRoZSB2YXJpYWJsZXMgdGhhdCBhcmUgYXZhaWxhYmxlIHRvIHlvdSB0byB1c2UgaW4geW91ciB0ZW1wbGF0ZS4gQXMgb2YgdmVyc2lvbiAwLjMsIHZhcmlhYmxlcyBoYXZlIHR3byBuYW1lcywgb25lIGJhc2VkIG9uIHRoZSBmaWVsZCBuYW1lLCB0aGUgb3RoZXIgYmFzZWQgb24gdGhlIGZpZWxkIElELiBJZiB5b3UgdXNlIGZpZWxkIG5hbWVzIHRoYXQgaGF2ZSBjaGFyYWN0ZXJzIG91dHNpZGUgb2YgdGhlIEFTQ0lJIDMyLTEyNiByYW5nZSwgaXQgd2lsbCBiZSBzYWZlciB0byB1c2UgdGhlIElELWJhc2VkIHZhcmlhYmxlcy48L3A+DQo8cD48c3Ryb25nPk5vdGUgdGhhdCBvbmNlIHlvdSYjMDM5O3ZlIGNoYW5nZWQgYSB0ZW1wbGF0ZSwgaXQgd2lsbCBubyBsb25nZXIgYXV0b21hdGljYWxseSBhZGQgbmV3IGZpZWxkcy48L3N0cm9uZz4gRm9yIHRoaXMgcmVhc29uLCBpdCYjMDM5O3MgdXN1YWxseSBiZXN0IHRvIGNyZWF0ZSB5b3VyIHRlbXBsYXRlcyBhcyB0aGUgbGFzdCBzdGVwIG9mIGNyZWF0aW5nIHlvdXIgZm9ybS48L3A+DQo8cD5BcyBvZiB2ZXJzaW9uIDAuMi40LCB5b3UgY2FuIG9wdCB0byBzZW5kIGFueSBvZiB0aGVzZSBlbWFpbHMgYXMgSFRNTCBlbWFpbC4gVGhlcmUgc2hvdWxkIGJlIGEgY2hlY2tib3ggYXQgdGhlIHRvcCBvZiB0aGUgdGVtcGxhdGUgcGFnZSBmb3IgdGhpcy4gVGhlcmUgaXMgYWxzbyBhICZxdW90O0NyZWF0ZSBTYW1wbGUgSFRNTCBUZW1wbGF0ZSZxdW90OyBidXR0b24gb3ZlciBpbiB0aGUgbGVnZW5kIGFyZWEuIEZvciBIVE1MIGVtYWlsLCB0aGUgZW1haWwgYm9keSB3aWxsIGFsc28gcHJvdmlkZSB0aGUgZGVmYXVsdCB0ZXh0LW9ubHkgdmFsdWVzLjwvcD4NCg0KPGgzPkNvbmZpZ3VyYXRpb248L2gzPg0KPHA+VGhlcmUgYXJlIHNvbWUgZ2xvYmFsIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgRm9ybUJ1aWxkZXI6PC9wPg0KPHVsPg0KPGxpPkVuYWJsZSBmYXN0IGZpZWxkIGFkZCBwdWxsZG93bi4gVGhpcyBlbmFibGVzIHRoZSBwdWxsZG93biBvbiB0aGUgRm9ybSBFZGl0IHBhZ2Ugd2hpY2ggc2F2ZXMgYSBzdGVwIGluIHRoZSBjcmVhdGlvbiBvZiBuZXcgZmllbGRzLjwvbGk+DQo8bGk+SGlkZSBFcnJvcnMuIFRoaXMgaXMgc2V0IGJ5IGRlZmF1bHQuIFVuY2hlY2tpbmcgaXQgd2lsbCBjYXVzZSBtb3JlIGRldGFpbGVkIGVycm9ycyB0byBiZSBkaXNwbGF5ZWQgaWYgdGhlcmUgYXJlIHByb2JsZW1zIHdoZW4geW91IHN1Ym1pdCB5b3VyIGZvcm0uPC9saT4NCjxsaT5SZXF1aXJlIEZpZWxkIE5hbWVzLiBUeXBpY2FsbHksIHlvdSB3aWxsIHdhbnQgZm9ybSBmaWVsZHMgdG8gYmUgbmFtZWQgc28geW91IGNhbiB0ZWxsIHdoaWNoIGlzIHdoaWNoLiBIb3dldmVyLCBpbiBzb21lIGNhc2VzLCB5b3UgbWlnaHQgd2FudCB0byBoYXZlIG5hbWVsZXNzIGZpZWxkcy4gVW5jaGVjayB0aGlzIGlmIHlvdSB3YW50IHRvIGFsbG93IG5hbWVsZXNzIGZpZWxkcy48L2xpPg0KPGxpPlVuaXF1ZSBGaWVsZCBOYW1lcy4gVHlwaWNhbGx5LCB5b3Ugd2lsbCB3YW50IGZvcm0gZmllbGRzIHRvIGhhdmUgdW5pcXVlIG5hbWVzIHNvIHlvdSBjYW4gdGVsbCB3aGljaCBpcyB3aGljaC4gVW5jaGVjayB0aGlzIGlmIHlvdSB3YW50IHRvIGFsbG93IGZpZWxkcyB0byBzaGFyZSBuYW1lcy48L2xpPg0KPGxpPlVzZSByZWxheGVkIGVtYWlsIHZhbGlkYXRpb24uIFRoaXMgdXNlcyBhIGxlc3MgcmVzdHJpY3RpdmUgcmVndWxhciBleHByZXNzaW9uIGZvciB2YWxpZGF0aW5nIGVtYWlsOyBlLmcuLCB4QHkgd2lsbCBiZSBhbGxvd2VkLCB3aGVyZSB0eXBpY2FsbHkgeEB5LnRsZCBpcyByZXF1aXJlZC48L2xpPg0KPGxpPlNob3cgRm9ybSBCdWlsZGVyIFZlcnNpb24uIERpc3BsYXlzIHRoZSB2ZXJzaW9uIG9mIEZvcm1CdWlsZGVyIHlvdSYjMDM5O3JlIHVzaW5nIGluIGEgY29tbWVudCB3aGVuIHRoZSBmb3JtIGlzIGdlbmVyYXRlZC4gVHlwaWNhbGx5IG9ubHkgdXNlZnVsIHdoZW4gZGVidWdnaW5nLjwvbGk+DQo8bGk+RW5hYmxlIHByaW1pdGl2ZSBhbnRpLXNwYW0gZmVhdHVyZXMuIFdoZW4gdHVybmVkIG9uLCB0aGlzIGFsbG93cyBhbnkgZ2l2ZW4gSVAgYWRkcmVzcyB0byBvbmx5IGdlbmVyYXRlIDEwIGVtYWlscyBwZXIgaG91ci48L2xpPg0KPGxpPlNob3cgRmllbGQgSURzLiBXaGVuIHR1cm5lZCBvbiwgRm9ybUJ1aWxkZXIgd2lsbCBkaXNwbGF5IGZpZWxkIGlkcyB3aGVuIGFkZGluZyBvciBlZGl0aW5nIGEgZm9ybS48L2xpPg0KPC91bD4NCjxoMz5TdHlsaW5nIGFuZCBDU1M8L2gzPg0KPHA+UGF1bCBOb29uZSBncmFjaW91c2x5IHByb3ZpZGVzIHVzIGFsbCB3aXRoIGEgcHJldHR5IGdvb2Qgc3RhbmRhcmQgQ1NTIHRoYXQgeW91IGNhbiB1c2UgZm9yIGZvcm1zOjwvcD4NCjxwcmU+DQoJLyogU2FtcGxlIEZvcm1CdWlsZGVyIENTUyBiYXNlICovDQoJZm9ybSB7bWFyZ2luLXRvcDowfQ0KCWZvcm0sIHRkLCB0aCwgbGkgeyBmb250LXNpemU6IDEwMCV9DQoJZm9ybSBkaXYge21hcmdpbi1ib3R0b206MH0NCglmaWVsZHNldCBkaXYgew0KCQltYXJnaW4tYm90dG9tOjAuNWVtOw0KCQltYXJnaW4tbGVmdDoxZW07DQoJfQ0KCWZpZWxkc2V0IGRpdiBkaXYgew0KCQltYXJnaW4tdG9wOjAuNWVtOw0KCQltYXJnaW4tbGVmdDoxZW0NCgl9DQoJZmllbGRzZXQgew0KCQltYXJnaW4tYm90dG9tOjFlbTsNCgkJYm9yZGVyOjFweCBzb2xpZCAjRjYwOw0KCQlwYWRkaW5nOjAuNWVtDQoJfQ0KCWZpZWxkc2V0IGxhYmVsIHsNCgkJd2lkdGg6YXV0bzsNCgl9DQoJbGVnZW5kIHsNCgkJY29sb3I6I0ZGRjsNCgkJYmFja2dyb3VuZDojRjYwOw0KCQlmb250LXN0eWxlOml0YWxpYzsNCgkJZm9udC1zaXplOjEuMmVtOw0KCQltYXJnaW4tYm90dG9tOjAuNWVtOw0KCQlwYWRkaW5nOjAuMmVtOw0KCQl3aWR0aDphdXRvOw0KCQlib3JkZXI6MXB4IHNvbGlkICNDQ0MNCgl9DQoJdGV4dGFyZWEgew0KCQltYXJnaW46IDAuNWVtIDA7DQoJCXdpZHRoOjk4JTsNCgkJaGVpZ2h0OiA2ZW0NCgl9DQoNCgkvKiBBcHBseSB0aGlzIGNsYXNzIHRvIHRleHQvc2VsZWN0IGlucHV0IGZpZWxkcyB3aXRoIHNob3J0ZXIgbGFiZWxzDQoJCXRvIGhlbHAgYWxpZ25tZW50ICovDQoJLnNob3J0LWxhYmVsIGxhYmVsIHtmbG9hdDpsZWZ0OyB3aWR0aDoxMGVtfQ0KCS5zaG9ydC1sYWJlbCBmaWVsZHNldCBkaXYgaW5wdXQsDQoJLnNob3J0LWxhYmVsIGZpZWxkc2V0IGRpdiBzZWxlY3Qge3dpZHRoOjE2ZW19DQoNCgkvKiBQcmV0dHkgdXAgeW91ciBDYXB0Y2hhIGltYWdlIG91dHB1dCAqLw0KCS5jYXB0Y2hhIHsNCgkJbWFyZ2luOjAuNWVtIDA7DQoJCXdpZHRoOjIwMHB4Ow0KCQl0ZXh0LWFsaWduOmNlbnRlcg0KCX0NCgkuY2FwdGNoYSBpbWcge2JvcmRlcjoxcHggc29saWQgI0Y2MDsgbWFyZ2luLWJvdHRvbTowLjVlbX0NCgkuY2FwdGNoYSBpbnB1dCB7d2lkdGg6MTk2cHg7IG1hcmdpbi10b3A6MC41ZW19DQoNCgkvKiBKdXN0IGEgYml0IG1vcmUgcm9vbSBmb3IgdGhlIFN1Ym1pdCBidXR0b24gKi8NCgkuc3VibWl0IHttYXJnaW4tdG9wOjAuNWVtfQ0KPC9wcmU+DQoNCjxoMz5Gb3JtIFRlbXBsYXRlIFZhcmlhYmxlczwvaDM+DQoNCjxoMz5Gb3JtIFRlbXBsYXRlIFZhcmlhYmxlczwvaDM+DQo8cD5Zb3UgY2FuIGVkaXQgaXQgdG8gbWFrZSB5b3VyIGZvcm0gbGF5b3V0IGxvb2sgYW55IHdheSB5b3UmIzAzOTtkIGxpa2UuDQogICBUbyBtYWtlIHRoZSBmb3JtIHdvcmssIHlvdSYjMDM5O2xsIG5lZWQgdG8gYWx3YXlzIGluY2x1ZGUgdGhlICZhbXA7IzEyMzskZmJfaGlkZGVufSBhbmQgJmFtcDsjMTIzOyRzdWJtaXR9DQogICB0YWdzLjwvcD4NCg0KPHA+WW91IGNhbiBhY2Nlc3MgeW91ciBmb3JtIGZpZWxkcyBlaXRoZXIgdXNpbmcgdGhlICRmaWVsZHMgYXJyYXkgb3IgYnkgZGlyZWN0bHkgYWNjZXNzaW5nIGZpZWxkcyBieSB0aGVpciBuYW1lcyAoZS5nLiwgJmFtcDsjMTIzOyRteWZpZWxkLT5pbnB1dH0gKTwvcD4NCg0KDQo8cD5FYWNoIGZpZWxkIGhhcyB0aGUgZm9sbG93aW5nIGF0dHJpYnV0ZXM6PC9wPg0KPHRhYmxlPg0KPHRyPjx0aD5GaWVsZDwvdGg+PHRoPlZhbHVlPC90aD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+ZGlzcGxheTwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIHNob3VsZCBiZSBkaXNwbGF5ZWQsIDAgb3RoZXJ3aXNlPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+cmVxdWlyZWQ8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBpcyByZXF1aXJlZCwgMCBvdGhlcndpc2U8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5yZXF1aXJlZF9zeW1ib2w8L3RkPjx0ZD50aGUgc3ltYm9sIGZvciByZXF1aXJlZCBmaWVsZHM8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5jc3NfY2xhc3M8L3RkPjx0ZD50aGUgQ1NTIGNsYXNzIHNwZWNpZmllZCBmb3IgdGhpcyBmaWVsZDwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPnZhbGlkPC90ZD48dGQ+MSBpZiB0aGlzIGZpZWxkIGhhcyBwYXNzZWQgdmFsaWRhdGlvbiwgMCBvdGhlcndpc2U8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5lcnJvcjwvdGQ+PHRkPlRleHQgb2YgdGhlIHZhbGlkYXRpb24gcHJvYmxlbSwgaW4gdGhlIGV2ZW50IHRoYXQgdGhpcyBmaWVsZCBkaWQgbm90IHZhbGlkYXRlPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aGlkZV9uYW1lPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgbmFtZSBzaG91bGQgYmUgaGlkZGVuLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmhhc19sYWJlbDwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIHR5cGUgaGFzIGEgbGFiZWw8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5uZWVkc19kaXY8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBuZWVkcyB0byBiZSB3cmFwcGVkIGluIGEgRElWIChvciB0YWJsZSByb3csIGlmIHRoYXQmIzAzOTtzIHRoZSB3YXkgeW91IHN3aW5nKTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPm5hbWU8L3RkPjx0ZD50aGUgZmllbGQmIzAzOTtzIG5hbWU8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5pbnB1dDwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgaW5wdXQgY29udHJvbCAoZS5nLiwgdGhlIGlucHV0IGZpZWxkIGl0c2VsZik8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5vcDwvdGQ+PHRkPmEgY29udHJvbCBidXR0b24gYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWVsZCBpZiBhcHBsaWNhYmxlIChlLmcuLCB0aGUgZGVsZXRlIGJ1dHRvbiBmb3IgZXhwYW5kYWJsZSB0ZXh0IGlucHV0KTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmlucHV0X2lkPC90ZD48dGQ+dGhlIElEIG9mIHRoZSBmaWVsZCYjMDM5O3MgaW5wdXQgKHVzZWZ1bCBmb3IgPGxhYmVsIGZvcj0mcXVvdDsmcXVvdDs+KTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPnR5cGU8L3RkPjx0ZD50aGUgZmllbGQmIzAzOTtzIGRhdGEgdHlwZTwvdGQ+PC90cj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQo8dHI+PHRkPmZpZWxkLT5tdWx0aXBsZV9wYXJ0czwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkLT5pbnB1dCBpcyBhY3R1YWxseSBhIGNvbGxlY3Rpb24gb2YgY29udHJvbHM8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5sYWJlbF9wYXJ0czwvdGQ+PHRkPjEgaWYgdGhlIGNvbGxlY3Rpb24gb2YgY29udHJvbHMgaGFzIHNlcGFyYXRlIGxhYmVscyBmb3IgZWFjaCBjb250cm9sPC90ZD48L3RyPg0KPC90YWJsZT4NCg0KPHA+SW4gY2VydGFpbiBjYXNlcywgZmllbGQtPmlucHV0IGlzIGFjdHVhbGx5IGFuIGFycmF5IG9mIG9iamVjdHMgcmF0aGVyIHRoYW4gYW4gaW5wdXQuIFRoaXMgaGFwcGVucywgZm9yIGV4YW1wbGUsIGluIENoZWNrQm94R3JvdXBzIG9yIFJhZGlvQnV0dG9uR3JvdXBzLiBGb3IgdGhlbSwgeW91IGNhbiBpdGVyYXRlIHRocm91Z2ggZmllbGQtPmlucHV0LT5uYW1lIGFuZCBmaWVsZC0+aW5wdXQtPmlucHV0cy48L3A+DQogICAgDQo8cD5BZGRpdGlvbmFsIHNtYXJ0eSB2YXJpYWJsZXMgdGhhdCB5b3UgY2FuIHVzZSBpbmNsdWRlOjwvcD4NCjx0YWJsZT4NCjx0cj48dGg+VmFyaWFibGU8L3RoPjx0aD5WYWx1ZTwvdGg+PC90cj4NCjx0cj48dGQ+dG90YWxfcGFnZXM8L3RkPjx0ZD5udW1iZXIgb2YgcGFnZXMgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPnRoaXNfcGFnZTwvdGQ+PHRkPm51bWJlciBmbyB0aGUgY3VycmVudCBwYWdlIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD50aXRsZV9wYWdlX3hfb2ZfeTwvdGQ+PHRkPmRpc3BsYXlzICZxdW90O3BhZ2UgeCBvZiB5JnF1b3Q7IGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD5jc3NfY2xhc3M8L3RkPjx0ZD5DU1MgQ2xhc3MgZm9yIHRoZSBmb3JtPC90ZD48L3RyPg0KPHRyPjx0ZD5mb3JtX25hbWU8L3RkPjx0ZD5Gb3JtIG5hbWU8L3RkPjwvdHI+DQo8dHI+PHRkPmZvcm1faWQ8L3RkPjx0ZD5Gb3JtIGRhdGFiYXNlIElEPC90ZD48L3RyPg0KPHRyPjx0ZD5wcmV2PC90ZD48dGQ+JnF1b3Q7QmFjayZxdW90OyBidXR0b24gZm9yIG11bHRpcGFydCBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+c3VibWl0PC90ZD48dGQ+JnF1b3Q7Q29udGludWUmcXVvdDsgb3IgJnF1b3Q7U3VibWl0JnF1b3Q7IGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zLCBhZGp1c3RzIGF1dG9tYXRpY2FsbHk8L3RkPjwvdHI+DQo8L3RhYmxlPg0KPHA+RHVubm8gd2h5IHlvdSYjMDM5O2Qgd2FudCBzb21lIG9mIHRob3NlLCBidXQgdGhlcmUgeW91IGdvLi4uPC9wPg0KDQoNCjxoMz5Lbm93biBJc3N1ZXM8L2gzPg0KPHVsPg0KPGxpPkZvcm1CdWlsZGVyIGlzIG5vdCB5ZXQgaW50ZWdyYXRlZCB3aXRoIEZyb250RW5kIFVzZXJzLiBJdCB3aWxsIGJlLjwvbGk+DQo8bGk+Rm9ybUJ1aWxkZXIgY2Fubm90IHlldCBiZSBpbmxpbmVkLiBUaGF0IHNob3VsZCBiZSBhIHNpbXBsZSB1cGdyYWRlIGRvd24gdGhlIGxpbmUuPC9saT4NCjxsaT5Gb3JtQnVpbGRlciBkb2VzIG5vdCB5ZXQgc3VwcG9ydCBwcmV0dHkgdXJscywgYWx0aG91Z2ggdGhhdCBzaG91bGRuJiMwMzk7dCBtYXR0ZXIgc2luY2UgdGhlIHVzZXIgc2lkZSBpcyBwcmV0dHkgc2ltcGxlLjwvbGk+DQo8L3VsPg0KDQo8aDM+VHJvdWJsZXNob290aW5nPC9oMz4NCjxvbD48bGk+IEZpcnN0IHN0ZXAgaXMgdG8gY2hlY2sgeW91JiMwMzk7cmUgcnVubmluZyBDTVMgMS4xIG9yIGxhdGVyLjwvbGk+DQo8bGk+IFNlY29uZCBzdGVwIGlzIHRvIHJlYWQgYW5kIHVuZGVyc3RhbmQgdGhlIGNhdmVhdCBhYm91dCBXWVNJV1lHIGVkaXRvcnMgdXAgaW4gdGhlDQpzZWN0aW9uIDxlbT5BZGRpbmcgYSBGb3JtIHRvIGEgUGFnZTwvZW0+LjwvbGk+DQo8bGk+IElmIHlvdSYjMDM5O3JlIG1pc3NpbmcgZmllbGRzIGluIGFuIGVtYWlsIHRoYXQgZ2V0cyBnZW5lcmF0ZWQsIGNoZWNrIHRoZSBkaXNwb3NpdGlvbiBmaWVsZCYjMDM5O3MgdGVtcGxhdGUsIGFuZCBtYWtlIHN1cmUgeW91JiMwMzk7cmUgc3BlY2lmeWluZyB0aGUgbWlzc2luZyBmaWVsZHMuIFNlZW1zIG9idmlvdXMsIGJ1dCBpdCYjMDM5O3MgYW4gZWFzeSBtaXN0YWtlIHRvIG1ha2UuPC9saT4NCjxsaT5VbmNoZWNrIHRoZSAmcXVvdDtIaWRlIEVycm9ycyZxdW90OyBjaGVja2JveCBpbiB0aGUgZ2xvYmFsIG9wdGlvbnMsIGFuZCBzZWUgd2hhdCBtZXNzYWdlIGdldHMgZGlzcGxheWVkIHdoZW4geW91IHN1Ym1pdCB5b3VyIGZvcm0uPC9saT4NCjxsaT4gSnVzdCBtZXNzIGFyb3VuZCBhbmQgdHJ5IGNsaWNraW5nIG9uIGxpbmtzIGFuZCBpY29ucyBhbmQgc3R1ZmYuIFNlZSB3aGF0IGhhcHBlbnMuPC9saT4NCjxsaT4gTGFzdCByZXNwb3J0IGlzIHRvIGVtYWlsIG1lIG9yIGNhdGNoIG1lIG9uIElSQyBhbmQgd2UgY2FuIGdvIGZyb20gdGhlcmUuPC9saT4NCjwvb2w+IA0KPHA+VGhpcyBpcyBubyBsb25nZXIgYSBwYXJ0aWN1bGFybHkgZWFybHkgdmVyc2lvbiwgYnV0IGl0IGlzIHByb2JhYmx5IHN0aWxsIGJ1Z2d5LiBXaGlsZSBJJiMwMzk7dmUgZG9uZSBhbGwgSSBjYW4NCnRvIG1ha2Ugc3VyZSBubyBlZ3JlZ2lvdXMgYnVncyBoYXZlIGNyZXB0IGluLCBJIGhhdmUgdG8gYWRtaXQgdGhhdCBkdXJpbmcgZWFybHkgdGVzdGluZywgdGhpcyBwcm9ncmFtDQpyZXZlYWxlZCBzZXZlbiBjb2Nrcm9hY2hlcywgdHdvIGVhcndpZ3MsIGEgc21hbGwgZmFtaWx5IG9mIGFwaGlkcywgYW5kIGEgd2Fsa2luZy1zdGljayBpbnNlY3QuIEl0IGFsc28NCmF0ZSB0aGUgbmVpZ2hib3ImIzAzOTtzIG5hc3R5IGxpdHRsZSB5YXAgZG9nLCBmb3Igd2hpY2ggSSB3YXMgaW5hcHByb3ByaWF0ZWx5IGdyYXRlZnVsLjwvcD4NCjxwPlRoZSBmaW5hbCByZWxlYXNlIHdpbGwgaW5jbHVkZSBidWcgZml4ZXMsIGRvY3VtZW50YXRpb24sIGFuZCB1bmNvbmRpdGlvbmFsIGxvdmUuPC9wPg0KPGgzPlN1cHBvcnQ8L2gzPg0KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPg0KPHVsPg0KPGxpPkZvciB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBtb2R1bGUsIEZBUXMsIG9yIHRvIGZpbGUgYSBCdWcgUmVwb3J0LCBwbGVhc2UgdmlzaXQgdGhlIENNUyBNYWRlIFNpbXBsZSAgPGEgaHJlZj0mcXVvdDtodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnJnF1b3Q7PkRldmVsb3BlciBGb3JnZTwvYT4uPC9saT4NCjxsaT5UbyBvYnRhaW4gY29tbWVyY2lhbCBzdXBwb3J0LCBwbGVhc2Ugc2VuZCBhbiBlbWFpbCB0byB0aGUgYXV0aG9yIGF0IDxhIGhyZWY9JnF1b3Q7bWFpbHRvOnNqZ0BjbXNtb2R1bGVzLmNvbSZxdW90Oz4mYW1wO2x0O3NqZ0BjbXNtb2R1bGVzLmNvbSZhbXA7Z3Q7PC9hPi48L2xpPg0KPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0mcXVvdDtodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmcmcXVvdDs+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uPC9saT4NCjxsaT5UaGUgYXV0aG9yIGNhbiBvZnRlbiBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0mcXVvdDtpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXMmcXVvdDs+Q01TIElSQyBDaGFubmVsPC9hPi48L2xpPg0KPGxpPkxhc3RseSwgeW91IG1heSBoYXZlIHNvbWUgc3VjY2VzcyBlbWFpbGluZyB0aGUgYXV0aG9yIGRpcmVjdGx5IGFuZCBncm92ZWxsaW5nIGZvciBmcmVlIHN1cHBvcnQuPC9saT4NCjwvdWw+DQo8cD5BcyBwZXIgdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCBhcy1pcy4gUGxlYXNlIHJlYWQgdGhlIHRleHQNCm9mIHRoZSBsaWNlbnNlIGZvciB0aGUgZnVsbCBkaXNjbGFpbWVyLjwvcD4NCjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPg0KPHA+Q29weXJpZ2h0ICZhbXA7Y29weTsgMjAwNywgU2FtdWVsIEdvbGRzdGVpbiA8YSBocmVmPSZxdW90O21haWx0bzpzamdAY21zbW9kdWxlcy5jb20mcXVvdDs+JmFtcDtsdDtzamdAY21zbW9kdWxlcy5jb20mYW1wO2d0OzwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4NCjxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSZxdW90O2h0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCZxdW90Oz5HTlUgUHVibGljIExpY2Vuc2U8L2E+LiBZb3UgbXVzdCBhZ3JlZSB0byB0aGlzIGxpY2Vuc2UgYmVmb3JlIHVzaW5nIHRoZSBtb2R1bGUuPC9wPic7CiRsYW5nWydjaGFuZ2Vsb2cnXSA9ICcNCjx1bD4NCjxsaT5WZXJzaW9uIDAuNC4xLiBCdWdmaXhlcyBmb3IgRmlsZSBEaXNwb3NpdGlvbiBUeXBlcy48L2xpPg0KPGxpPlZlcnNpb24gMC40DQoJPHVsPg0KCQk8bGk+VXBwZWQgbWluaW11bSBDTVMgdmVyc2lvbiB0byAxLjE8L2xpPg0KCQk8bGk+TnVtZXJvdXMgQnVnIGZpeGVzOyB0b28gbWFueSB0byBlbnVtZXJhdGUgaGVyZTwvbGk+DQoJCTxsaT5NYXNzaXZlIHJlamlnZ2VyaW5nIG9mIGNvZGUgdG8gd29yayB3aXRoIENNUyBNUyAxLjEgcGFyYW1ldGVyIHNhbml0aXppbmcgcmVnaW1lPC9saT4NCgkJPGxpPkFkZGVkIGZpZWxkIHR5cGVzOiAmcXVvdDtUZXh0RmllbGQgKE11bHRpcGxlKSZxdW90OyBhbmQgJnF1b3Q7Q29tcHV0ZWQgRmllbGQmcXVvdDs8L2xpPg0KCQk8bGk+QWRkZWQgZGlzcG9zaXRpb25zOiAmcXVvdDtTYXZlIFJlc3VsdHMgdG8gRmlsZSBCYXNlZCBvbiBQdWxsZG93biZxdW90OyBhbmQgJnF1b3Q7U2F2ZSBSZXN1bHRzIHRvIEZpbGUocykgQmFzZWQgb24gTXVsdGlwbGUgU2VsZWN0aW9ucyZxdW90OyhDYWxndXkpPC9saT4NCgkJPGxpPkFkZGVkIG5lYXQtbyBBSkFYLXkgdGVtcGxhdGUtY29weWluZyBmb3IgRm9ybSBUZW1wbGF0ZXMsIGdhdmUgdmVyc2lvbnMgb2Ygb2xkIHRhYmxlLWJhc2VkIHRlbXBsYXRlcyB0byBzb290aGUgdGhlIHJhZ2luZyBtYXNzZXMuPC9saT4NCgkJPGxpPkFkZGVkIGFiaWxpdHkgdG8gcGFzcyBkZWZhdWx0IHZhbHVlcyB0byBmb3JtIGVsZW1lbnRzIGZyb20gbW9kdWxlIHRhZyB1c2luZyB2YWx1ZV9GSUVMRE5BTUU9JnF1b3Q7dmFsdWUmcXVvdDsgc3ludGF4IChDYWxndXkpPC9saT4NCgkJPGxpPkFkZGVkIG9wdGlvbiB0byBkaXNwbGF5IGZpZWxkIGlkcyBpbiBhZG1pbiAoQ2FsZ3V5KTwvbGk+DQoJPC91bD4NCjwvbGk+DQo8bGk+VmVyc2lvbiAwLjMNCiAgIDx1bD4NCiAgICAgIDxsaT5BZGRlZCBDYXB0Y2hhIG1vZHVsZSBzdXBwb3J0LjwvbGk+DQogICAgICA8bGk+UmV3b3JrZWQgbGFiZWxpbmcgb2YgZm9ybSBlbGVtZW50cyB0byBiZSBYSFRNTCBjb21wbGlhbnQ8L2xpPg0KICAgICAgPGxpPkFkZGVkIFBhdWwgTm9vbmUmIzAzOTtzIG5ldywgaW1wcm92ZWQgY29udGFjdCBmb3JtIHRlbXBsYXRlczwvbGk+DQogICAgICA8bGk+SW1wbGVtZW50YXRpb24gb2YgRW1haWwgU3ViamVjdCBGaWVsZDwvbGk+DQogICAgICA8bGk+QWRkZWQgYWRtaW4tc3BlY2lmaWFibGUgdmFsdWVzIHRvIGhpZGRlbiBmaWVsZCB0eXBlLCB3aGljaCBtYXkgY29udGFpbiBwYXJzYWJsZSBzbWFydHkgdGFnczwvbGk+DQogICAgICA8bGk+VGV4dCBBcmVhIEZpZWxkIG5vdyBhbGxvd3Mgc3BlY2lmaWNhdGlvbiBvZiByb3dzIGFuZCBjb2xzIGluIHRoZSBhZG1pbiwgaW5zdGVhZCBvZiBDU1M8L2xpPg0KICAgICAgPGxpPkFkZGVkIERyYWcmIzAzOTtuJiMwMzk7RHJvcCByZW9yZGVyaW5nIG9mIGZvcm0gZmllbGRzLjwvbGk+DQogICAgICA8bGk+QWRkZWQgbm9uLWJsYW5rIGZpZWxkIG5hbWUgYW5kIHVuaXF1ZSBmaWVsZCBuYW1lIGdsb2JhbCBjb25maWd1cmF0aW9uIG9wdGlvbnMgYW5kIHZhbGlkYXRpb248L2xpPg0KICAgICAgPGxpPkltcGxlbWVudGVkIHRlbXBsYXRlZCBkaXNwbGF5IG9mIGZvcm0gcmVzdWx0cyB1cG9uIHN1Ym1pc3Npb24gaW4gYWRkaXRpb24gdG8gcGFnZSByZWRpcmVjdGluZzwvbGk+DQogICAgICA8bGk+PC9saT4NCiAgIDwvdWw+DQo8L2xpPg0KPGxpPlZlcnNpb24gMC4yLjQgLSAwOSBNYXkgMjAwNw0KICAgPHA+QmlnIHJlbGVhc2U6PHVsPg0KICAgPGxpPkFkZGVkICZxdW90O0VtYWlsIEZvcm0gdG8gVXNlci1TdXBwbGllZCBBZGRyZXNzJnF1b3Q7IGRpc3Bvc2l0aW9uLjwvbGk+DQogICA8bGk+QWRkZWQgJnF1b3Q7VGltZVBpY2tlciZxdW90OyBmaWVsZCB0eXBlLiBTcGxpdCAmcXVvdDtMaW5rJnF1b3Q7IGZpZWxkIGludG8gYSAmcXVvdDtVc2VyLXN1cHBsaWVkIExpbmsmcXVvdDsgZmllbGQgYW5kIGEgJnF1b3Q7U3RhdGljIExpbmsmcXVvdDsgZmllbGQuPC9saT4NCiAgIDxsaT5BZGRlZCBIVE1MIGVtYWlsIG9wdGlvbiBhbmQgYXV0by10ZW1wbGF0ZXMgZm9yIGFsbCBlbWFpbCBkaXNwb3NpdGlvbnMuPC9saT4NCiAgIDxsaT5BZGRlZCBwcmltaXRpdmUgYW50aS1zcGFtIGZlYXR1cmVzLjwvbGk+DQogICA8bGk+QWRkZWQgWE1MLWJhc2VkIGltcG9ydCBhbmQgZXhwb3J0IG9mIGZvcm1zLjwvbGk+DQogICA8L3VsPg0KICAgPC9wPg0KPC9saT4NCjxsaT5WZXJzaW9uIDAuMi4zDQogICA8cD5BZGQgdGhlIGFiaWxpdHkgdG8gY2FsbCBhIHNlbGVjdGFibGUgdXNlciBkZWZpbmVkIHRhZyB1cG9uIGRpc3Bvc2l0aW9uIG9mIHRoZSBmb3JtLjwvcD4NCjwvbGk+DQo8bGk+VmVyc2lvbiAwLjIuMg0KICAgPHA+TWFueSB0aGFua3MgdG8gVXR0ZXIgRGVzaWduIGZvciBzcG9uc29yaW5nIHNvbWUgY2hhbmdlcyBhbmQgYnVnZml4ZXMsIHdoaWNoIGluY2x1ZGU6DQogICA8dWw+DQogICAgICA8bGk+QWRkZWQgZmlsZSB1cGxvYWQgY2FwYWJpbGl0aWVzIHRvIHRoZSBlbWFpbCBkaXNwb3NpdGlvbjwvbGk+DQogICAgICA8bGk+QWRkIFBhZ2VTZXRTdGFydCBhbmQgUGFnZVNldEVuZCBmaWVsZCB0eXBlcw0KICAgICAgPHA+VGhlc2UgZmllbGQgdHlwZXMgYWxsb3cgeW91IHRvIGNyZWF0ZSBmaWVsZHNldHMgaW4geW91ciBmb3JtLCBhbmQgb3JnYW5pc2UNCiAgICAgIHlvdXIgZmllbGRzIGxvZ2ljYWxseSBmb3IgdGhlIHVzZXIuICBZb3UgY2FuIGV2ZW4gbmVzdCBmaWVsZHNldHMsIGFuZA0KICAgICAgYXNzb2NpYXRlIGEgc3R5bGUgd2l0aCB0aGVtIGFwcHJvcHJpYXRlbHkuICBUaGUgZGVmYXVsdCB0ZW1wbGF0ZSB3YXMgY2hhbmdlZA0KICAgICAgdG8gcHJldmVudCBpdCBmcm9tIHdyYXBwaW5nIGEgZGl2IGFyb3VuZCB0aGVzZSB0eXBlcyBvZiBmaWVsZHMuDQogICAgICA8L3A+DQogICAgICA8L2xpPg0KICAgICAgPGxpPkZpeGVkIGEgcHJvYmxlbSB3aXRoIERBVEVUSU1FIGZpZWxkcyBvbiBpbnN0YWxsDQogICAgICA8cD5UaGlzIHNvbHZlcyBhIHByb2JsZW0gd2hlbiBvbiBpbnN0YWxsIHRoZSByZXNwb25zZSB0YWJsZSB3b3VsZCBzb21ldGltZXMgbm90IGdldCBjcmVhdGVkIHdoZW4gdXNpbmcgYWRvZGIgbGl0ZTwvbGk+DQogICAgICA8L2xpPg0KICAgPC91bD4NCiAgIDwvcD4NCjwvbGk+DQo8bGk+VmVyc2lvbiAwLjIgLSAxNCBOb3ZlbWJlciAyMDA2LiBDYWxndXkgJmFtcDthbXA7IHRzdyYjMDM5O3MgYnVnIGZpeGVzIGZvciBmaWVsZCByZS1vcmRlcmluZyBhbmQgY3VzdG9tIHRlbXBsYXRlcy4gQWRkaXRpb25hbCBidWcgZml4ZXMgZm9yIGZpZWxkIGxhYmVscy48L2xpPg0KPGxpPlZlcnNpb24gMC4xIC0gOCBKdWx5IDIwMDYuIEluaXRpYWwgUmVsZWFzZTwvbGk+DQo8L3VsPic7CiRsYW5nWyd1dG1hJ10gPSAnMTU2ODYxMzUzLjUyNTQwNjgxMi4xMTg4MDc3NDE3LjExODk3OTI1NjUuMTE4OTgwNDg4NC41Nyc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjExODk2MjgwODAuNTMuNC51dG1jY249KHJlZmVycmFsKXx1dG1jc3I9ZGV2LmNtc21hZGVzaW1wbGUub3JnfHV0bWNjdD0vcHJvamVjdC9hZG1pbi9pbmRleC5waHB8dXRtY21kPXJlZmVycmFsJzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwokbGFuZ1sndXRtYiddID0gJzE1Njg2MTM1Myc7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lang/ext/nl_NL.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0Zvcm0gQnVpbGRlcic7CiRsYW5nWydmaWVsZF90eXBlXyddID0gJ1ZlbGR0eXBlIG5pZXQgaW5nZXN0ZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmllbGRzZXRFbmQnXSA9ICdWZWxkIGVpbmRlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmllbGRzZXRTdGFydCddID0gJ1ZlbGQgc3RhcnQnOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0RmllbGQnXSA9ICdUZWtzdGludm9lcic7CiRsYW5nWydmaWVsZF90eXBlX1RleHRGaWVsZEV4cGFuZGFibGUnXSA9ICdUZWtzdGludm9lciAobWVlcmRlcmUpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEFyZWFGaWVsZCddID0gJ1Rla3N0dmVsZCc7CiRsYW5nWydmaWVsZF90eXBlX0NoZWNrYm94RmllbGQnXSA9ICdTZWxlY3RpZXZhayc7CiRsYW5nWydmaWVsZF90eXBlX0NoZWNrYm94R3JvdXBGaWVsZCddID0gJ1NlbGVjdGlldmFrLWdyb2VwJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUHVsbGRvd25GaWVsZCddID0gJ0tldXplbGlqc3QnOwokbGFuZ1snZmllbGRfdHlwZV9NdWx0aXNlbGVjdEZpZWxkJ10gPSAnTWVlci1rZXV6ZSc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRlUGlja2VyRmllbGQnXSA9ICdVLlMuIFN0YXRlLWtpZXplcic7CiRsYW5nWydmaWVsZF90eXBlX0NvdW50cnlQaWNrZXJGaWVsZCddID0gJ0xhbmRlbmtpZXplcic7CiRsYW5nWydmaWVsZF90eXBlX0RhdGVQaWNrZXJGaWVsZCddID0gJ0RhdHVta2llemVyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGltZVBpY2tlckZpZWxkJ10gPSAnVGlqZGtpZXplcic7CiRsYW5nWydmaWVsZF90eXBlX1JhZGlvR3JvdXBGaWVsZCddID0gJ1NlbGVjdGllcm9uZGplcy1ncm9lcCc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGlyZWN0b3InXSA9ICcqRS1tYWlsIHJlc3VsdGF0ZW4gZ2ViYXNlZXJkIG9wIGtldXplbGlqc3QnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZpbGVEaXJlY3RvciddID0gJypCZXdhYXIgcmVzdWx0YXRlbiBpbiBlZW4gYmVzdGFuZCBnZWJhc2VlcmQgb3Aga2V1emVsaWpzdCc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uTXVsdGlzZWxlY3RGaWxlRGlyZWN0b3InXSA9ICcqQmV3YWFyIHJlc3VsdGF0ZW4gaW4gYmVzdGFuZGVuIGdlYmFzZWVyZCBvcCBtZWVyLWtldXplbGlqc3Rlbic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uUGFnZVJlZGlyZWN0b3InXSA9ICcqUmVkaXJlY3QgbmFhciBwYWdpbmEgZ2ViYXNlZXJkIG9wIGtldXplbGlqc3QnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsJ10gPSAnKkUtbWFpbCByZXN1bHRhdGVuIG5hYXIgaW5nZXN0ZWxkZSBhZHJlcyhzZW4pJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbENvbmZpcm1hdGlvbiddID0gJypWYWxpZGVlci12aWEtZW1haWxhZHJlcyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRmlsZSddID0gJypTY2hyaWpmIHJlc3VsdGF0ZW4gbmFhciBiZXN0YW5kJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EYXRhYmFzZSddID0gJypSZXN1bHRhdGVuIG9wc2xhYW4gaW4gZGF0YWJhc2UnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvblVzZXJUYWcnXSA9ICcqU3RhcnQgZWVuIGdlYnJ1aWtlcmdlZGVmaW5pZWVyZGUgbGFiZWwgbWV0IGRlIGZvcm11bGllcnJlc3VsdGF0ZW4nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRlbGl2ZXJUb0VtYWlsQWRkcmVzc0ZpZWxkJ10gPSAnKkUtbWFpbCBuYWFyIGhldCBvcGdlZ2V2ZW4gZS1tYWlsYWRyZXMnOwokbGFuZ1snZmllbGRfdHlwZV9QYWdlQnJlYWtGaWVsZCddID0gJy1QYWdpbmFzY2hlaWRpbmcnOwokbGFuZ1snZmllbGRfdHlwZV9GaWxlVXBsb2FkRmllbGQnXSA9ICdCZXN0YW5kIFVwbG9hZCc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbEFkZHJlc3NGaWVsZCddID0gJ0UtbWFpbCAmcXVvdDtWYW4gQWRyZXMmcXVvdDsgdmVsZCc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbE5hbWVGaWVsZCddID0gJ0UtbWFpbCAmcXVvdDtWYW4gTmFhbSZxdW90OyB2ZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsU3ViamVjdEZpZWxkJ10gPSAnRW1haWwgJnF1b3Q7T25kZXJ3ZXJwJnF1b3Q7IEZpZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3RhdGljVGV4dEZpZWxkJ10gPSAnLVN0YXRpc2NoZSBUZWtzdCc7CiRsYW5nWydmaWVsZF90eXBlX1N5c3RlbUxpbmtGaWVsZCddID0gJy1TdGF0aXNjaGUgbGluayc7CiRsYW5nWydmaWVsZF90eXBlX0xpbmtGaWVsZCddID0gJy1MaW5rJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfSGlkZGVuRmllbGQnXSA9ICdWZXJib3JnZW4gdmVsZCc7CiRsYW5nWydmaWVsZF90eXBlX0NvbXB1dGVkRmllbGQnXSA9ICdCZXJla2VuZCB2ZWxkJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbm9uZSddID0gJ0dlZW4gdmFsaWRhdGllJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbnVtZXJpYyddID0gJ051bWVyaWVrJzsKJGxhbmdbJ3ZhbGlkYXRpb25faW50ZWdlciddID0gJ0dlaGVlbCBnZXRhbCc7CiRsYW5nWyd2YWxpZGF0aW9uX2VtYWlsX2FkZHJlc3MnXSA9ICdFLW1haWxhZHJlcyc7CiRsYW5nWyd2YWxpZGF0aW9uX211c3RfY2hlY2snXSA9ICdNb2V0IGFhbmdldmlua3Qgd29yZGVuJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbWF0Y2gnXSA9ICdNb2V0IHZvbGRvZW4gYWFuIGVlbiByZWd1bGllcmUgZXhwcmVzc2llJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbm9tYXRjaCddID0gJ1ZvbGRvZXQgbmlldCBhYW4gZGUgcmVndWxpZXJlIGV4cHJlc3NpZSc7CiRsYW5nWydyZXF1aXJlZF9maWVsZF9taXNzaW5nJ10gPSAnRWVuIHdhYXJkZSBvbnRicmVla3Qgdm9vciBkaXQgdmVycGxpY2h0ZSB2ZWxkJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX3ZhbHVlJ10gPSAnVm9lciBlZW4gd2FhcmRlIGluIHZvb3IgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfbnVtYmVyJ10gPSAnVm9lciBlZW4gbnVtbWVyIGluIGJpaiAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfdmFsaWQnXSA9ICdWb2VyIGVlbiBnZWxkaWdlIHdhYXJkZSBpbiBiaWogJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FuX2ludGVnZXInXSA9ICdWb2VyIGVlbiBnZXRhbCBpbiBiaWogJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FuX2VtYWlsJ10gPSAnVm9lciBlZW4gZ2VsZGlnIGUtbWFpbGFkcmVzIGluIGJpaiAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydub3RfdmFsaWRfZW1haWwnXSA9ICcmcXVvdDslcyZxdW90OyBpcyBnZWVuIGdlbGRpZyBlLW1haWxhZHJlcyEnOwokbGFuZ1sncGxlYXNlX2VudGVyX25vX2xvbmdlciddID0gJ1ZvZXIgZWVuIHdhYXJkZSBpbiBkaWUgbmlldCBsYW5nZXIgaXMgZGFuICVzIHRla2Vucyc7CiRsYW5nWyd0aXRsZV9saXN0X2RlbGltaXRlciddID0gJ1Rla2VuIG9tIHRlIGdlYnJ1aWtlbiBhbHMgc2NoZWlkaW5nIGJpaiByZXN1bHRhdGVuIGRpZSBtZWVyIGRhbiAmZWFjdXRlOyZlYWN1dGU7biB3YWFyZGUgdGVydWdnZXZlbic7CiRsYW5nWyd5b3VfbmVlZF9wZXJtaXNzaW9uJ10gPSAnRGUgJnF1b3Q7JXMmcXVvdDsgcmVjaHRlbiBpcyB2ZXJlaXN0IHZvb3IgZGllIGJld2Vya2luZy4nOwokbGFuZ1snbGFja3Blcm1pc3Npb24nXSA9ICdTb3JyeSEgVSBoZWVmdCBvbnZvbGRvZW5kZSByZWNodGVuIG9tIGRlemUgc2VjdGllIHRlIGJlbmFkZXJlbi4nOwokbGFuZ1snZmllbGRfb3JkZXJfdXBkYXRlZCddID0gJ1ZlbGR2b2xnb3JkZSBiaWpnZXdlcmt0Lic7CiRsYW5nWydmb3JtX2RlbGV0ZWQnXSA9ICdGb3JtdWxpZXIgdmVyd2lqZGVyZC4nOwokbGFuZ1snZmllbGRfZGVsZXRlZCddID0gJ1ZlbGQgdmVyd2lqZGVyZC4nOwokbGFuZ1snY29uZmlndXJhdGlvbl91cGRhdGVkJ10gPSAnQ29uZmlndXJhdGllIGJpamdld2Vya3QuJzsKJGxhbmdbJ3lvdV9tdXN0X2NoZWNrJ10gPSAnJnF1b3Q7JXMmcXVvdDsgbW9ldCBnZXNlbGVjdGVlcmQgemlqbiBvbSBkb29yIHRlIGt1bm5lbiBnYWFuLic7CiRsYW5nWydtdXN0X3NwZWNpZnlfb25lX2Rlc3RpbmF0aW9uJ10gPSAnRXIgbW9ldCB0ZW5taW5zdGUgJmVhY3V0ZTsmZWFjdXRlO24gYmVzdGVtbWluZ3NhZHJlcyB3b3JkZW4gb3BnZWdldmVuISc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2Zvcm0nXSA9ICdIZXQgZm9ybXVsaWVyICVzIHZlcndpamRlcmVuPyc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2ZpZWxkJ10gPSAnSGV0IHZlbGQgJXMgdmVyd2lqZGVyZW4/JzsKJGxhbmdbJ25vdGljZV9zZWxlY3RfdHlwZSddID0gJ0dlYXZhbmNlZXJkZSBvcHRpZXMgemlqbiBuaWV0IGJlc2NoaWtiYWFyIHZvb3JkYXQgaGV0IHZlbGR0eXBlIGluZ2VzdGVsZCBpcy4nOwokbGFuZ1snZmllbGRfbmFtZV9pbl91c2UnXSA9ICdEZSB2ZWxkbmFhbSAmcXVvdDslcyZxdW90OyBpcyBhbCBpbiBnZWJydWlrLiBHZWJydWlrIHVuaWVrZSB2ZWxkbmFtZW4gb2Ygc2NoYWtlbCB1bmlla2UgdmVsZG5hbWVuIHVpdCBpbiBkZSBGb3JtIEJ1aWxkZXIgY29uZmlndXJhdGllLic7CiRsYW5nWydmaWVsZF9ub19uYW1lJ10gPSAnVmVsZGVuIG1vZXRlbiBlZW4gbmFhbSBoZWJiZW4gYmVoYWx2ZSBhbHMgZGV6ZSB1aXRnZXNjaGFrZWxkIHppam4gZGUgaW4gRm9ybSBCdWlsZGVyIGNvbmZpZ3VyYXRpZS4nOwokbGFuZ1snYW5vbnltb3VzJ10gPSAnQW5vbmllbSc7CiRsYW5nWydhYmJyZXZpYXRpb25fbGVuZ3RoJ10gPSAnTGVuZ3RlOiAlcyc7CiRsYW5nWydib3hlcyddID0gJyVzIHZha2tlbic7CiRsYW5nWydvcHRpb25zJ10gPSAnJXMgb3B0aWVzJzsKJGxhbmdbJ3RleHRfbGVuZ3RoJ10gPSAnJXMgdGVrZW5zLic7CiRsYW5nWydvcmRlciddID0gJ1ZvbGdvcmRlJzsKJGxhbmdbJ3Vuc3BlY2lmaWVkJ10gPSAnW25pZXQgb3BnZWdldmVuXSc7CiRsYW5nWydhZGRlZCddID0gJ3RvZWdldm9lZ2QnOwokbGFuZ1sndXBkYXRlZCddID0gJ2Jpamdld2Vya3QnOwokbGFuZ1snc29ydF9vcHRpb25zJ10gPSAnU29ydGVlcm9wdGllcyB2YW4gZGUgdWl0dm9lcic7CiRsYW5nWydzZWxlY3Rfb25lJ10gPSAnU2VsZWN0ZWVyICZlYWN1dGU7JmVhY3V0ZTtuJzsKJGxhbmdbJ3NlbGVjdF90eXBlJ10gPSAnU2VsZWN0ZWVyIFR5cGUnOwokbGFuZ1sndG8nXSA9ICdBYW4nOwokbGFuZ1sneWVzJ10gPSAnSmEnOwokbGFuZ1snbm8nXSA9ICdOZWUnOwokbGFuZ1sncmVjaXBpZW50cyddID0gJ29udHZhbmdlcnMnOwokbGFuZ1snZmlsZV9jb3VudCddID0gJyVzIG1vZ2VsaWprZSBiZXN0YW5kZW4nOwokbGFuZ1snZGVzdGluYXRpb25fY291bnQnXSA9ICclcyBiZXN0ZW1taW5nZW4nOwokbGFuZ1snc2F2ZSddID0gJ09wc2xhYW4nOwokbGFuZ1snYWRkJ10gPSAnVG9ldm9lZ2VuJzsKJGxhbmdbJ3VwZGF0ZSddID0gJ0Jpandlcmtlbic7CiRsYW5nWydzYXZlX2FuZF9jb250aW51ZSddID0gJ09wc2xhYW4gZW4gZG9vcmdhYW4gbWV0IHdpanppZ2VuJzsKJGxhbmdbJ2luZm9ybWF0aW9uJ10gPSAnSW5mb3JtYXRpZSc7CiRsYW5nWydhdXRvbWF0aWMnXSA9ICdBdXRvbWF0aXNjaCc7CiRsYW5nWydmb3JtcyddID0gJ0Zvcm11bGllcmVuJzsKJGxhbmdbJ2Zvcm0nXSA9ICdGb3JtdWxpZXIgJXMnOwokbGFuZ1snY29uZmlndXJhdGlvbiddID0gJ0NvbmZpZ3VyYXRpZSc7CiRsYW5nWydmaWVsZF9yZXF1aXJlbWVudF91cGRhdGVkJ10gPSAnVmVsZCB2ZXJwbGljaHQgc3RhdHVzIGJpamdld2Vya3QuJzsKJGxhbmdbJ21heGltdW1fc2l6ZSddID0gJ01heC4gZ3Jvb3R0ZSc7CiRsYW5nWydwZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ1VpdGJyZWlkaW5nZW4nOwokbGFuZ1sncGVybWl0dGVkX2ZpbGV0eXBlcyddID0gJ1RvZWdlc3RhbmUgYmVzdGFuZHN0eXBlcyc7CiRsYW5nWydmaWxlX3Rvb19sYXJnZSddID0gJ0dldXBsb2FkIGJlc3RhbmQgaXMgdGUgZ3Jvb3QhIE1heGltdW0gZ3Jvb3R0ZSBpczonOwokbGFuZ1snaWxsZWdhbF9maWxlX3R5cGUnXSA9ICdEaXQgdHlwZSBiZXN0YW5kIG1hZyBuaWV0IHdvcmRlbiBnZXVwbG9hZC4gQ29udHJvbGVlciBkZSBiZXN0YW5kc2V4dGVuc2llLic7CiRsYW5nWyd1cGxvYWQnXSA9ICdVcGxvYWQnOwokbGFuZ1snZm9ybV9pbXBvcnRlZCddID0gJ0Zvcm11bGllciBnZSZpdW1sO21wb3J0ZWVyZC4nOwokbGFuZ1snZm9ybV9pbXBvcnRfZmFpbGVkJ10gPSAnRm9ybXVsaWVyaW1wb3J0IG1pc2x1a3QuIEVyIHdhcyBlZW4gcHJvYmxlZW0gbWV0IGhldCBmb3JtYWF0IHZhbiBoZXQgWE1MLWJlc3RhbmQuJzsKJGxhbmdbJ3Jvd3MnXSA9ICclcyByaWplbic7CiRsYW5nWydjb2xzJ10gPSAnJXMga29sb21tZW4nOwokbGFuZ1snMTJfaG91ciddID0gJzEyLXV1cnMga2xvayc7CiRsYW5nWycyNF9ob3VyJ10gPSAnMjQtdXJzIGtsb2snOwokbGFuZ1snaG91ciddID0gJ3V1cic7CiRsYW5nWydtaW4nXSA9ICdtaW51dXQnOwokbGFuZ1snbWVyaWQnXSA9ICdtZXJpZGlhYW4nOwokbGFuZ1snZGF0ZV9yYW5nZSddID0gJ1ZlcnphbWVsaW5nOiAlcyAtICVzJzsKJGxhbmdbJ3RoYW5rcyddID0gJ0JlZGFua3QuIFV3IGFhbnZyYWdlbiB6aWpuIG9udHZhbmdlbi4nOwokbGFuZ1snZWRpdCddID0gJ0Jld2Vyayc7CiRsYW5nWydkZWxldGUnXSA9ICdWZXJ3aWpkZXInOwokbGFuZ1snZGF5J10gPSAnZGFnJzsKJGxhbmdbJ21vbiddID0gJ21hYW5kJzsKJGxhbmdbJ3llYXInXSA9ICdqYWFyJzsKJGxhbmdbJ3VuaW5zdGFsbGVkJ10gPSAnTW9kdWxlIGdlLWRlaW5zdGFsZWVyZC4nOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnTW9kdWxldmVyc2llICVzIGdlJml1bWw7bnN0YWxsZWVyZC4nOwokbGFuZ1sndXBncmFkZWQnXSA9ICdNb2R1bGUgYmlqZ2V3ZXJrdCBuYWFyIHZlcnNpZSAlcy4nOwokbGFuZ1snYnV0dG9uX3ByZXZpb3VzJ10gPSAnVGVydWcuLi4nOwokbGFuZ1snYnV0dG9uX3N1Ym1pdCddID0gJ1ZlcnN0dXVyJzsKJGxhbmdbJ2J1dHRvbl9jb250aW51ZSddID0gJ1ZlcmRlci4uLic7CiRsYW5nWyd2YWx1ZV9jaGVja2VkJ10gPSAnR2VzZWxlY3RlZXJkJzsKJGxhbmdbJ3ZhbHVlX3VuY2hlY2tlZCddID0gJ05pZXQgZ2VzZWxlY3RlZXJkJzsKJGxhbmdbJ3RhYl9tYWluJ10gPSAnU3RhcnQnOwokbGFuZ1sndGFiX3N5bWJvbCddID0gJ0Zvcm11bGllcndlZXJnYXZlaW5zdGVsbGluZ2VuJzsKJGxhbmdbJ3RhYl9zdWJtaXQnXSA9ICdGb3JtdWxpZXJ2ZXJ6ZW5kaW5nJzsKJGxhbmdbJ3RhYl9jYXB0Y2hhJ10gPSAnQ2FwdGNoYS1pbnN0ZWxsaW5nZW4nOwokbGFuZ1sndGFiX2FkdmFuY2VkJ10gPSAnR2VhdmFuY2VlcmRlIGluc3RlbGxpbmdlbic7CiRsYW5nWyd0YWJfdGVtcGxhdGVsYXlvdXQnXSA9ICdGb3JtdWxpZXJzamFibG9vbic7CiRsYW5nWyd0YWJfc3VibWlzc2lvbnRlbXBsYXRlJ10gPSAnVmVyemVuZHNqYWJsb29uJzsKJGxhbmdbJ2NhbnVzZV9zbWFydHknXSA9ICc8ZW0+U21hcnR5LXZhcmlhYmVsZW4gbW9nZW4gaW4gZGl0IHZlbGQgZ2VicnVpa3Qgd29yZGVuLjxlbT4nOwokbGFuZ1snYWRkX29wdGlvbnMnXSA9ICdNZWVyIG9wdGllcyB0b2V2b2VnZW4nOwokbGFuZ1snZGVsZXRlX29wdGlvbnMnXSA9ICdWZXJ3aWpkZXJlbiBnZW1hcmtlZXJkZSBvcHRpZXMnOwokbGFuZ1snYWRkX2NoZWNrYm94ZXMnXSA9ICdWb2VnIG1lZXIgc2VsZWN0aWV2YWtrZW4gdG9lJzsKJGxhbmdbJ2RlbGV0ZV9jaGVja2JveGVzJ10gPSAnVmVyd2lqZGVyIGdlbWFya2VlcmRlciBzZWxlY3RpZXZha2tlbic7CiRsYW5nWydhZGRfYWRkcmVzcyddID0gJ1ZvbGdlbmQgYWRyZXMgdG9ldm9lZ2VuJzsKJGxhbmdbJ2RlbGV0ZV9hZGRyZXNzJ10gPSAnVmVyd2lqZGVyIGdlbWFya2VlcmRlIGFkcmVzc2VuJzsKJGxhbmdbJ2FkZF9kZXN0aW5hdGlvbiddID0gJ1ZvbGdlbmRlIGJlc3RlbW1pbmcgdG9ldm9lZ2VuJzsKJGxhbmdbJ2RlbGV0ZV9kZXN0aW5hdGlvbiddID0gJ1ZlcndpamRlciBnZW1hcmtlZXJkZSBiZXN0ZW1taW5nZW4nOwokbGFuZ1snc3VzcGVjdGVkX3NwYW0nXSA9ICdUZSB2ZWVsIGVtYWlscyB2ZXJ6b25kZW4gdmFuYWYgdXcgSVAtYWRyZXMuIEFudGktc3BhbSBtZWNoYW5pc21lIGJsb2trZWVydCBkZSB2ZXJ6ZW5kaW5nLic7CiRsYW5nWydzdXNwZWN0ZWRfc3BhbV9sb2cnXSA9ICdWZXJkYWNodGUgc3BhbSB2YW4gSVAgJXMgZ2VibG9rZWVyZC4nOwokbGFuZ1sncmVvcmRlciddID0gJ0hlcnNjaGlrIHZlbGRlbic7CiRsYW5nWydjYW5jZWwnXSA9ICdBbm51bGVlcic7CiRsYW5nWyd0aXRsZV9maWxlX3BhdGgnXSA9ICdCZXN0ZW1taW5nc21hcCB2b29yIHVpdHZvZXJiZXN0YW5kZW4nOwokbGFuZ1sndGl0bGVfdWR0X25hbWUnXSA9ICdHZWJydWlrZXJnZWRlZmluZWVyZGUgbGFiZWwnOwokbGFuZ1sndGl0bGVfdXBsb2Fkc19kZXN0cGFnZSddID0gJ1BhZ2luYSBvbSBuYWFyIHRlcnVnIHRlIGtlcmVuIG1ldCB1cGxvYWRzIGxpbmsnOwokbGFuZ1sndGl0bGVfdXBsb2FkbW9kdWxlX3N1bW1hcnknXSA9ICdWZXJ6b25kZW4gbWV0IEZvcm0gQnVpbGRlcic7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2NhdGVnb3J5J10gPSAnVXBsb2Fkcy1jYXRlZ29yaWUnOwokbGFuZ1sndGl0bGVfc2VuZHRvX3VwbG9hZHMnXSA9ICdTdHV1ciBkaXQgYmVzdGFuZCBuYWFyIGRlIHVwbG9hZC1tb2R1bGUnOwokbGFuZ1sndGl0bGVfbGVnZW5kJ10gPSAnTGVnZW5kYSc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX2xlbmd0aCddID0gJ01heGltdW0gbGVuZ3RlJzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2xhYmVsJ10gPSAnTGFiZWwgc2VsZWN0aWV2YWsnOwokbGFuZ1sndGl0bGVfY2hlY2tlZF92YWx1ZSddID0gJ1dhYXJkZSBpbmRpZW4gZ2VzZWxlY3RlZXJkJzsKJGxhbmdbJ3RpdGxlX3VuY2hlY2tlZF92YWx1ZSddID0gJ1dhYXJkZSBpbmRpZW4gbmlldCBnZXNlbGVjdGVlcmQnOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfZGV0YWlscyddID0gJ1NlbGVjdGlldmFrLWdyb2VwZGV0YWlscyc7CiRsYW5nWyd0aXRsZV9kZWxldGUnXSA9ICdWZXJ3aWpkZXJlbj8nOwokbGFuZ1sndGl0bGVfc2VsZWN0X29uZV9tZXNzYWdlJ10gPSAnJnF1b3Q7U2VsZWN0IEVlbiZxdW90OyB0ZWtzdCc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fZGlzcGxheW5hbWUnXSA9ICdTZWxlY3RpZXdlZXJnYXZlbmFhbSc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fc3ViamVjdCddID0gJ1NlbGVjdGllb25kZXJ3ZXJwJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X2NvdW50cnknXSA9ICdTdGFuZGFhcmRzZWxlY3RpZSc7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9zdGF0ZSddID0gJ1N0YW5kYWFyZHNlbGVjdGllJzsKJGxhbmdbJ3RpdGxlX29wdGlvbl9uYW1lJ10gPSAnT3B0aWVuYWFtJzsKJGxhbmdbJ3RpdGxlX29wdGlvbl92YWx1ZSddID0gJ1ZlcnN0dXVyZGUgd2FhcmRlJzsKJGxhbmdbJ3RpdGxlX3B1bGxkb3duX2RldGFpbHMnXSA9ICdLZXV6ZWxpanN0b3B0aWVzJzsKJGxhbmdbJ3RpdGxlX211bHRpc2VsZWN0X2RldGFpbHMnXSA9ICdNZWVya2V1emUtb3B0aWVzJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2FkZHJlc3MnXSA9ICdCZXN0ZW1taW5ncyBlLW1haWxhZHJlcyc7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9maWxlbmFtZSddID0gJ0Jlc3RlbW1pbmdzYmVzdGFuZHNuYWFtJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fbmFtZSddID0gJyZxdW90O1ZhbiBOYWFtJnF1b3Q7IHZvb3IgZS1tYWlsJzsKJGxhbmdbJ3RpdGxlX3JlbGF4ZWRfZW1haWxfcmVnZXgnXSA9ICdHZWJydWlrIGVlbnZvdWRpZ2UgZS1tYWlsdmFsaWRhdGllJzsKJGxhbmdbJ3RpdGxlX3JlbGF4ZWRfcmVnZXhfbG9uZyddID0gJ0dlYnJ1aWsgZWVudm91ZGlnZSBlLW1haWxhZHJlc3ZhbGlkYXRpZSAoc3RhIGJpanZvb3JiZWVsZCAmcXVvdDt4QHkmcXVvdDsgdG9lIGkucC52LiAmcXVvdDt4QHkudGxkJnF1b3Q7KSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9mcm9tX2FkZHJlc3MnXSA9ICcmcXVvdDtWYW4gYWRyZXMmcXVvdDsgdm9vciBlLW1haWwnOwokbGFuZ1sndGl0bGVfZW1haWxfZW5jb2RpbmcnXSA9ICdFLW1haWx0ZWtlbnNldCBlbmNvZGVyaW5nJzsKJGxhbmdbJ3RpdGxlX2RpcmVjdG9yX2RldGFpbHMnXSA9ICdLZXV6ZWxpanN0LWdlYmFzZWVyZGUgRS1tYWlsZGV0YWlscyc7CiRsYW5nWyd0aXRsZV9maWxlX25hbWUnXSA9ICdCZXN0YW5kc25hYW0nOwokbGFuZ1sndGl0bGVfZW1haWxfc3ViamVjdCddID0gJ0UtbWFpbCBvbmRlcndlcnByZWdlbCc7CiRsYW5nWyd0aXRsZV9mb3JtX25hbWUnXSA9ICdGb3JtdWxpZXJuYWFtJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fc3RhdHVzJ10gPSAnRm9ybXVsaWVyc3RhdHVzJzsKJGxhbmdbJ3RpdGxlX3JlYWR5X2Zvcl9kZXBsb3ltZW50J10gPSAnS2xhYXIgdm9vciBHZWJydWlrJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTEnXSA9ICdOaWV0IEtsYWFyJzsKJGxhbmdbJ3RpdGxlX3JlZGlyZWN0X3BhZ2UnXSA9ICdQYWdpbmEgb20gdGUgdG9uZW4gbmEgdmVyemVuZGluZyB2YW4gaGV0IGZvcm11bGllcic7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkyJ10gPSAnVm9lZyBlZW4gdmVsZCB0b2Ugem9kYXQgZGUgaW52b2VyIHZhbiBkZSBnZWJydWlrZXIgdmVyd2Vya3Qga2FuIHdvcmRlbi4gVSBrdW50JzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeV9saW5rJ10gPSAnZGV6ZSBzbmVsa29wcGVsaW5nIGdlYnJ1aWtlbic7CiRsYW5nWyd0aXRsZV9mb3JtX2FsaWFzJ10gPSAnRm9ybXVsaWVyYWxpYXMnOwokbGFuZ1sndGl0bGVfZm9ybV9maWVsZHMnXSA9ICdGb3JtdWxpZXJ2ZWxkZW4nOwokbGFuZ1sndGl0bGVfZmllbGRfaWQnXSA9ICdWZWxkLUlkJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX25hbWUnXSA9ICdWZWxkbmFhbSc7CiRsYW5nWyd0aXRsZV9yYWRpb2dyb3VwX2RldGFpbHMnXSA9ICdTZWxlY3RpZXJvbmRqZS1ncm9lcHNkZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3R5cGUnXSA9ICdWZWxkdHlwZSc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkzJ10gPSAnb20gZWVuIGZvbXVsaWVydmVyd2Vya2luZ3N2ZWxkIHRlIG1ha2VuLic7CiRsYW5nWyd0aXRsZV9hZGRfbmV3X2Zvcm0nXSA9ICdOaWV1dyBmb3JtdWxpZXIgdG9ldm9lZ2VuJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbiddID0gJ0Zvcm1CdWlsZGVyIHZlcnNpZSB0b25lbj8nOwokbGFuZ1sndGl0bGVfc2hvd192ZXJzaW9uX2xvbmcnXSA9ICdEaXQgdm9lZ3QgaGV0IHZlcnNpZW51bW1lciB2YW4gZGUgZ2UmaXVtbDtuc3RhbGxlZXJkZSBGb3JtQnVpbGRlci1tb2R1bGUgYWxzIGNvbW1lbnRhYXIgdG9lLCBvbSB0ZSBoZWxwZW4gYmlqIGRlYnVnZ2VuLic7CiRsYW5nWyd0aXRsZV9hZGRfbmV3X2ZpZWxkJ10gPSAnTmlldXcgdmVsZCB0b2V2b2VnZW4nOwokbGFuZ1sndGl0bGVfZm9ybV9zdWJtaXRfYnV0dG9uJ10gPSAnRm9ybXVsaWVydmVyemVuZGtub3AtdGVrc3QnOwokbGFuZ1sndGl0bGVfc3VibWl0X2J1dHRvbl9zYWZldHknXSA9ICdWb2VnIEphdmFzY3JpcHQgYWFuIHZlcnplbmRrbm9wIHRvZSBvbSBtZWVyZGVyZSB2ZXJ6ZW5kaW5nZW4gdGUgdm9vcmtvbWVuJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5X2hlbHAnXSA9ICdWb2VnIHZlaWxpZ2hlaWRzc2NyaXB0IHRvZSc7CiRsYW5nWyd0aXRsZV9mb3JtX25leHRfYnV0dG9uJ10gPSAnRm9ybXVsaWVyICZxdW90O1ZvbGdlbmRlJnF1b3Q7IEtub3AgVGVrc3QgKGdlYnJ1aWt0IGJpaiBmb3JtdWxpZXJlbiB2YW4gbWVlcmRlcmUgcGFnaW5hJiMwMzk7cyknOwokbGFuZ1sndGl0bGVfZm9ybV9wcmV2X2J1dHRvbiddID0gJ0Zvcm11bGllciAmcXVvdDtWb3JpZ2UmcXVvdDsgS25vcCBUZWtzdCAoZ2VicnVpa3QgYmlqIGZvcm11bGllcmVuIHZhbiBtZWVyZGVyZSBwYWdpbmEmIzAzOTtzKSc7CiRsYW5nWyd0aXRsZV9maWVsZF92YWxpZGF0aW9uJ10gPSAnVmVsZHZhbGlkYXRpZSc7CiRsYW5nWyd0aXRsZV9mb3JtX2Nzc19jbGFzcyddID0gJ0NTUyBrbGFzc2Ugdm9vciBkaXQgZm9ybXVsaWVyJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2Nzc19jbGFzcyddID0gJ0NTUyBrbGFzc2Ugdm9vciBkaXQgdmVsZCc7CiRsYW5nWyd0aXRsZV9mb3JtX3JlcXVpcmVkX3N5bWJvbCddID0gJ1N5bWJvb2wgb20gdmVyZWlzdGUgdmVsZGVuIHRlIG1hcmtlcmVuJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkJ10gPSAnVmVyZWlzdCc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9sb25nJ10gPSAnVmVyZWlzdCBlZW4gcmVzcG9ucyB2b29yIGRpdCB2ZWxkJzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWwnXSA9ICdWZXJiZXJnIExhYmVsJzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWxfbG9uZyddID0gJ1ZlcmJlcmcgdmVsZG5hYW0gb3AgZm9ybXVsaWVyJzsKJGxhbmdbJ3RpdGxlX3RleHQnXSA9ICdTdGF0aXNjaGUgdGVrc3Qgb20gd2VlciB0ZSBnZXZlbic7CiRsYW5nWyd0aXRsZV9maWVsZF9yZWdleCddID0gJ1ZhbGlkYXRpZSByZWdleCc7CiRsYW5nWyd0aXRsZV9saW5lc190b19zaG93J10gPSAnQWFudGFsIHdlZXJnZWdldmVuIHJlZ2Vscyc7CiRsYW5nWydub19kZWZhdWx0J10gPSAnR2VlbiBzdGFuZGFhcmQnOwokbGFuZ1sncmVkaXJlY3RfYWZ0ZXJfYXBwcm92YWwnXSA9ICdUb29uIGRlemUgcGFnaW5hIG5hIGdvZWRrZXVyaW5nJzsKJGxhbmdbJ3RpdGxlX3JlZ2V4X2hlbHAnXSA9ICdEZXplIHJlZ3VsaWVyZSBleHByZXNzaWUgemFsIGFsbGVlbiBnZWJydWlrdCB3b3JkZW4gYWxzICZxdW90O3ZhbGlkYXRpZXR5cGUmcXVvdDsgaW5nZXN0ZWxkIGlzIG9wIGVlbiByZWdleC1nZXJlbGF0ZWVyZGUgb3B0aWUuIEJldmF0IGVlbiB2b2xsZWRpZ2UgUGVybC1hY2h0aWdlIHJlZ2V4LCBpbmNsdXNpZWYgZGUgc3RhcnQvc3RvcCBzbGFzaGVzIGVuIHZsYWdnZW4gKGIudi4sICZxdW90Oy9pbWFnZVwuKFxkKykvaSZxdW90OyknOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWRfYWJicmV2J10gPSAnVmVycGxpY2h0JzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzJ10gPSAnVmVyYmVyZyBGb3V0ZW4nOwokbGFuZ1sndGl0bGVfZm9ybV9kaXNwbGF5dHlwZSddID0gJ0Zvcm11bGllcndlZXJnYXZldHlwZSc7CiRsYW5nWyd0aXRsZV9oaWRlX2Vycm9yc19sb25nJ10gPSAnVm9vcmtvbSBkZWJ1Zy0gLyBmb3V0bWVsZGluZ2VuIHZvb3IgZ2VicnVpa2Vycy4nOwokbGFuZ1sndGl0bGVfZW1haWxfdGVtcGxhdGUnXSA9ICdFLW1haWxzamFibG9vbic7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX3NpemUnXSA9ICdNYXhpbWFsZSB1cGxvYWQgYmVzdGFuZHNncm9vdHRlIChraWxvYnl0ZXMpJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZV9sb25nJ10gPSAnRGV6ZSBiZWdyZW56aW5nIGlzIGVlbiB0b2V2b2VnaW5nIG9wIGRlIGJlZ3JlbnppbmdlbiBkaWUgemlqbiBpbmdlc3RlbGQgaW4gZGUgUEhQLSBvZiB3ZWJzZXJ2ZXJjb25maWd1cmF0aWUuJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zJ10gPSAnVG9lZ2VzdGFuZSBleHRlbnNpZXMnOwokbGFuZ1sndGl0bGVfcGVybWl0dGVkX2V4dGVuc2lvbnNfbG9uZyddID0gJ1ZvZXIgZWVuIGtvbW1hLWdlc2NoZWlkZW4gbGlqc3QgaW4sIHpvbmRlciBkZSBwdW50IChiLnYuLCAmcXVvdDtqcGcsZ2lmLGpwZWcmcXVvdDspLiBTcGF0aWVzIHdvcmRlbiBvdmVyZ2VzbGFnZW4uIExlZWcgbGF0ZW4gYmV0ZWtlbnQgZGF0IGVyIGdlZW4gYmVwZXJraW5nZW4gemlqbi4nOwokbGFuZ1sndGl0bGVfc2hvd19saW1pdGF0aW9ucyddID0gJ0JlcGVya2luZ2VuIHdlZXJnZXZlbj8nOwokbGFuZ1sndGl0bGVfc2hvd19saW1pdGF0aW9uc19sb25nJ10gPSAnR3Jvb3R0ZS0gZW4gZXh0ZW5zaWViZXBlcmtpbmdlbiB0b25lbiBiaWogaGV0IHVwbG9hZCB2ZWxkPyc7CiRsYW5nWyd0aXRsZV9mb3JtX3RlbXBsYXRlJ10gPSAnU2phYmxvb24gdm9vciB3ZWVyZ2F2ZSBmb3JtdWxpZXInOwokbGFuZ1sndGl0bGVfcGFnZV94X29mX3knXSA9ICdQYWdpbmEgJXMgdmFuICVzJzsKJGxhbmdbJ3RpdGxlX25vX2FkdmFuY2VkX29wdGlvbnMnXSA9ICdWZWxkIGhlZWZ0IGdlZW4gZ2VhdmFuY2VlcmRlIG9wdGllcy4nOwokbGFuZ1sndGl0bGVfZm9ybV91bnNwZWNpZmllZCddID0gJ0dldG9vbmRlIHRla3N0IGJpaiBvbmdlc3BlY2lmaWNlZXJkZSB2ZWxkIHdhYXJkZXMnOwokbGFuZ1sndGl0bGVfZW5hYmxlX2Zhc3RhZGRfbG9uZyddID0gJ1NuZWwtdmVsZC10b2V2b2VnZW4gdWl0a2xhcG1lbnUgaW5zY2hha2VsZW4gdm9vciBmb3JtdWxpZXJlbj8nOwokbGFuZ1sndGl0bGVfZW5hYmxlX2Zhc3RhZGQnXSA9ICdTbmVsLXZlbGQtdG9ldm9lZ2VuIHVpdGtsYXBtZW51IGluc2NoYWtlbGVuPyc7CiRsYW5nWyd0aXRsZV9mYXN0YWRkJ10gPSAnU25lbC12ZWxkLXRvZXZvZWdlcic7CiRsYW5nWyd0aXRsZV9lbmFibGVfYW50aXNwYW1fbG9uZyddID0gJ0RpdCBhYW5rbGlra2VuIHphbCBzbGVjaHRzIDEwIGVtYWlscyB0b2VzdGFhbiB2YW51aXQgZWVuIGdlZ2V2ZW5zIElQLWFkcmVzIChwZXIgdXVyKS4nOwokbGFuZ1sndGl0bGVfZW5hYmxlX2FudGlzcGFtJ10gPSAnUHJpbWl0aWV2ZSBhbnRpLXNwYW0gbW9nZWxpamtoZWRlbiBpbnNjaGFrZWxlbj8nOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGlkcyddID0gJ1Rvb24gdmVsZC1pZCYjMDM5O3MnOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGlkc19sb25nJ10gPSAnRGl0IGFhbmtsaWtrZW4gbWFha3QgaGV0IHRvbmVuIHZhbiB2ZWxkLWlkJiMwMzk7cyBtb2dlbGlqayB0aWpkZW5zIHRvZXZvZWdlbiBlbiB3aWp6aWdlbiB2YW4gZWVuIGZvcm11bGllcic7CiRsYW5nWyd0aXRsZV94bWxfdG9fdXBsb2FkJ10gPSAnVXBsb2FkIGZvcm11bGllciB1aXQgZWVuIFhNTC1iZXN0YW5kJzsKJGxhbmdbJ3RpdGxlX3htbF91cGxvYWRfZm9ybW5hbWUnXSA9ICdHZWJydWlrIGRlemUgZm9ybXVsaWVybmFhbSc7CiRsYW5nWyd0aXRsZV9pbXBvcnRfbGVnZW5kJ10gPSAnWE1MLWZvcm11bGllcmltcG9ydCc7CiRsYW5nWyd0aXRsZV94bWxfdXBsb2FkX2Zvcm1hbGlhcyddID0gJ0dlYnJ1aWsgZGV6ZSBmb3JtdWxpZXJhbGlhcyc7CiRsYW5nWyd0aXRsZV9odG1sX2VtYWlsJ10gPSAnR2VuZXJlZXIgSFRNTC1lbWFpbD8nOwokbGFuZ1sndGl0bGVfbGlua19hdXRvcG9wdWxhdGUnXSA9ICdBdXRvbWF0aXNjaCBsYWRlbj8nOwokbGFuZ1sndGl0bGVfbGlua19hdXRvcG9wdWxhdGVfaGVscCddID0gJ0F1dG9tYXRpc2NoIGxhZGVuIG1ldCBkZSBVUkwgdmFuIGRlIHBhZ2luYSBtZXQgaGV0IGZvcm11bGllcj8gKGRpdCBvdmVyc2NocmlqZnQgZGUgcGFnaW5hbGluay1vcHRpZSBoaWVyb25kZXIpJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfbGluayddID0gJ1N0YW5kYWFyZGxpbmstVVJMJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfbGlua190aXRsZSddID0gJ1N0YW5kYWFyZGxpbmt0ZWtzdCc7CiRsYW5nWyd0aXRsZV9saW5rX3RvX3NpdGVwYWdlJ10gPSAnTGluayBuYWFyIGRlIHNpdGVwYWdpbmEnOwokbGFuZ1sndGl0bGVfY2FwdGNoYV9ub3RfaW5zdGFsbGVkJ10gPSAnVSBrdW50IGdlYnJ1aWsgbWFrZW4gdmFuIDxhIGhyZWY9JnF1b3Q7aHR0cDovL3d3dy53aWtpcGVkaWEub3JnL3dpa2kvQ2FwdGNoYSZxdW90OyB0YXJnZXQ9JnF1b3Q7X25ldyZxdW90Oz4mcXVvdDtDYXB0Y2hhJnF1b3Q7PC9hPiBvbSB2ZXJ6ZW5kaW5nZW4gdGUgYmV2ZWlsaWdlbiBkb29yIGRlIENhcHRjaGEtbW9kdWxlIHRlIGluc3RhbGxlcmVuLiBWb29yIG1lZXIgaW5mb3JtYXRpZSwgPGEgaHJlZj0mcXVvdDtodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2NhcHRjaGEvJnF1b3Q7PnppZSBoZXQgQ2FwdGNoYS1wcm9qZWN0PC9hPi4nOwokbGFuZ1sndGl0bGVfdXNlX2NhcHRjaGEnXSA9ICdDYXB0Y2hhIGdlYnJ1aWtlbiBvbSBkZSBmb3JtdWxpZXJ2ZXJ6ZW5kaW5nZW4gdGUgYmVzY2hlcm1lbj8nOwokbGFuZ1sndGl0bGVfdXNlX2NhcHRjaGFfaGVscCddID0gJ1ZpbmsgYWFuIG9tIHV3IGZvcm11bGllciB0ZSBiZXNjaGVybWVuIG1ldCBlZW4gPGEgaHJlZj0mcXVvdDtodHRwOi8vd3d3Lndpa2lwZWRpYS5vcmcvd2lraS9DYXB0Y2hhJnF1b3Q7IHRhcmdldD0mcXVvdDtfbmV3JnF1b3Q7PiZxdW90O0NhcHRjaGEmcXVvdDs8L2E+Lic7CiRsYW5nWyd0aXRsZV91c2VyX2NhcHRjaGEnXSA9ICdCZXZlc3RpZyBkYXQgdSBnZWVuIHNjcmlwdCBiZW50IGRvb3IgZGUga2FyYWt0ZXJzIGluIGhldCBwbGFhdGplIGluIHRlIHZvZXJlbi4nOwokbGFuZ1sndGl0bGVfdXNlcl9jYXB0Y2hhX2Vycm9yJ10gPSAnVmVya2VlcmRlIHRla3N0IHZvb3IgQ2FwdGNoYSc7CiRsYW5nWyd3cm9uZ19jYXB0Y2hhJ10gPSAnQ2FwdGNoYSB3YXMgbmlldCBnb2VkLic7CiRsYW5nWyd0aXRsZV90aXRsZV91c2VyX2NhcHRjaGEnXSA9ICdIdWxwdGVrc3Qgdm9vciBDYXB0Y2hhJzsKJGxhbmdbJ2xpbmtfbGFiZWwnXSA9ICdMaW5rbGFiZWwnOwokbGFuZ1snbGlua19kZXN0aW5hdGlvbiddID0gJ0xpbmsgZG9lbCBVUkwnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9zZXQnXSA9ICdTdGFuZGFhcmQgZ2VzZWxlY3RlZXJkPyc7CiRsYW5nWyd0aXRsZV8yNF9ob3VyJ10gPSAnR2VicnVpayAyNC11dXJzIHRpamQ/JzsKJGxhbmdbJ3RpdGxlX2JlZm9yZV9ub29uJ10gPSAnQU0nOwokbGFuZ1sndGl0bGVfYWZ0ZXJfbm9vbiddID0gJ1BNJzsKJGxhbmdbJ3RpdGxlX3NtYXJ0eV9ldmFsJ10gPSAnVm9lciBzbWFydHkgbGFiZWxzIHVpdCBpbiBoZXQgdmVsZD8nOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfcm93cyddID0gJ1JpamVuIChsZXRvcDogZGl0IGthbiB3b3JkZW4gb3ZlcnNjaHJldmVuIGRvb3IgQ1NTKSc7CiRsYW5nWyd0aXRsZV90ZXh0YXJlYV9jb2xzJ10gPSAnS29sb21tZW4gKGxldG9wOiBkaXQga2FuIHdvcmRlbiBvdmVyc2NocmV2ZW4gZG9vciBDU1MpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbWFpbiddID0gJ0hvb2ZkZm9ybXVsaWVyZGV0YWlscyc7CiRsYW5nWydoZWxwX2xlYXZlZW1wdHknXSA9ICdEaXQgdmVsZCBtYWcgbGVlZyBnZWxhdGVuIHdvcmRlbic7CiRsYW5nWydoZWxwX3ZhcmlhYmxlc19mb3JfdGVtcGxhdGUnXSA9ICdWYXJpYWJlbGVuIHZvb3Igc2phYmxvb24nOwokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX2NvbXB1dGF0aW9uJ10gPSAnVmFyaWFiZWxlbiBiZXNjaGlrYmFhcic7CiRsYW5nWydoZWxwX3BocF92YXJpYWJsZV9uYW1lJ10gPSAnUEhQIHZhcmlhYmVsZSc7CiRsYW5nWydoZWxwX3N1Ym1pc3Npb25fZGF0ZSddID0gJ0RhdHVtIHZhbiB2ZXJ6ZW5kaW5nJzsKJGxhbmdbJ2hlbHBfc2VydmVyX25hbWUnXSA9ICdTZXJ2ZXInOwokbGFuZ1snaGVscF9zdWJfc291cmNlX2lwJ10gPSAnSVAgYWRyZXMnOwokbGFuZ1snaGVscF9zdWJfdXJsJ10gPSAnVVJMIHZhbiBkZSBwYWdpbmEnOwokbGFuZ1snaGVscF9vdGhlcl9maWVsZHMnXSA9ICdBbmRlcmUgdmVsZGVuIHppam4gYmVzY2hpa2JhYXIgbmFkYXQgemUgemlqbiB0b2VnZXZvZWdkJzsKJGxhbmdbJ2hlbHBfYXJyYXlfZmllbGRzJ10gPSAnVmVsZGVuIG1ldCBtZWVyZGVyZSB3YWFyZGVuIGt1bm5lbiBvb2sgYmVuYWRlcmQgd29yZGVuIHZpYSBkZSBzbWFydHkgd2FhcmRlIHZhbiAkZmllbGRuYW1lX2FycmF5IG9mICRmbGRfI19hcnJheS4nOwokbGFuZ1snaGVscF9kYXRlX2Zvcm1hdCddID0gJ1ppZSA8YSBocmVmPSZxdW90O2h0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24uZGF0ZS5waHAmcXVvdDsgdGFyZ2V0PV9ORVc+dGhlIFBIUCBNYW51YWw8L2E+IHZvb3IgaW5mb3JtYXRpZSBvdmVyIGhldCBmb3JtYXQuJzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVfbmFtZSddID0gJ1ZhcmlhYmVsZSc7CiRsYW5nWydoZWxwX2Zvcm1fZmllbGQnXSA9ICdHZXJlcHJlc2VudGVlcmQgVmVsZCc7CiRsYW5nWydsaW5rX2JhY2tfdG9fZm9ybSddID0gJyZsYXF1bzsgVGVydWcgbmFhciBoZXQgZm9ybXVsaWVyJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfdGVtcGxhdGUnXSA9ICdWb29yYmVlbGRzamFibG9vbiBnZW5lcmVyZW4nOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9odG1sX3RlbXBsYXRlJ10gPSAnQ3JlJmV1bWw7ZXIgdm9vcmJlZWxkIEhUTUwtc2phYmxvb24nOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9oZWFkZXInXSA9ICdWb29yYmVlbGRrb3ByZWdlbCBnZW5lcmVyZW4nOwokbGFuZ1snaGVscF90YWJfc3ltYm9sJ10gPSAnZWVuIHRhYi10ZWtlbic7CiRsYW5nWyd0aXRsZV9maWxlX3RlbXBsYXRlJ10gPSAnU2phYmxvb24gdm9vciBlbmtlbGUgcmVnZWwgdWl0dm9lcmJlc3RhbmQnOwokbGFuZ1sndGl0bGVfZmlsZV9oZWFkZXInXSA9ICdTamFibG9vbiB2b29yIGRlIGtvcHJlZ2VsIHZhbiBoZXQgdWl0dm9lcmJlc3RhbmQnOwokbGFuZ1sndGl0bGVfY29uZmlybWF0aW9uX3VybCddID0gJ1VSTCBvbSB0ZSBrbGlra2VuIHZvb3IgZm9ybXVsaWVydmFsaWRhdGllJzsKJGxhbmdbJ3RpdGxlX3ZhbHVlJ10gPSAnV2FhcmRlICh6aWUgR2VhdmFuY2VlcmQgdGFiIGFscyBqZSBTbWFydHkgdGFncyBnZWJydWlrdCknOwokbGFuZ1sndGl0bGVfZGF0ZV9mb3JtYXQnXSA9ICdEYXR1bWZvcm1hYXQgKHN0YW5kYWFyZCA8YSBocmVmPSZxdW90O2h0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24uZGF0ZS5waHAmcXVvdDs+UEhQLWRhdHVtZm9ybWF0ZW48L2E+KSc7CiRsYW5nWyd0aXRsZV91c2Vfd3lzaXd5ZyddID0gJ0dlYnJ1aWsgV1lTSVdZRyBlZGl0b3Igdm9vciB0ZWtzdHZlbGQ/JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9hY3Rpb25zJ10gPSAnRm9ybXVsaWVydmVyemVuZGdlZHJhZyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfbGFiZWxzJ10gPSAnVmVyemVuZGtub3BsYWJlbHMnOwokbGFuZ1sndGl0bGVfc3VibWl0X2hlbHAnXSA9ICdEZXplIHBhZ2luYSBtYWFrdCBhYW5wYXNzZW4gdmFuIEZvcm11bGllcnZlcnplbmRpbmcgbW9nZWxpamsuIEhldCBiZXBhYWx0IG5pZXQgd2F0IEZvcm0gQnVpbGRlciBtZXQgZGUgdmVyem9uZGVuIGRhdGEgZG9ldC4gRGl0IGthbiBqZSBpbnN0ZWxsZW4gZG9vciAmcXVvdDtEaXNwb3NpdGlvbiZxdW90OyB2ZWxkZW4gdG9lIHRlIHZvZWdlbiBhYW4gaGV0IGZvcm11bGllciAnOwokbGFuZ1sndGl0bGVfc3RhcnRfeWVhciddID0gJ0JlZ2luIGphYXJyZWVrcyc7CiRsYW5nWyd0aXRsZV9lbmRfeWVhciddID0gJ0VpbmRlIGphYXJyZWVrcyc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3llYXInXSA9ICdTdGFuZGFhcmRqYWFyJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfeWVhcl9oZWxwJ10gPSAnKFN0ZWwgb3AgLTEgaW4gdm9vciBoZXQgc3RhbmRhYXJkamFhciBoZXQgaHVpZGlnZSBqYWFyIHRlIG1ha2VuKSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYWN0aW9uJ10gPSAnTmEgaGV0IGZvcm11bGllciB2ZXJ6b25kZW4gaXMnOwokbGFuZ1sndGl0bGVfc3VibWl0X3Jlc3BvbnNlJ10gPSAnUmVhY3RpZSBvbSB0ZSB0b25lbic7CiRsYW5nWydkaXNwbGF5X3RleHQnXSA9ICdUb29uICZxdW90O1ZlcnplbmRzamFibG9vbiZxdW90Oyc7CiRsYW5nWydyZWRpcmVjdF90b19wYWdlJ10gPSAnTGFhZCBkZSB3ZWJzaXRlIHBhZ2luYSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfcmVzcG9uc2VfaGVscCddID0gJ0RlemUgc2phYmxvb24gaXMgb20gdGUgdG9uZW4gYWFuIGRlIGdlYnJ1aWtlciBuYWRhdCBoZXQgZm9ybXVsaWVyIHZlcnN0dXVyZCBpcy4gSGV0IGhlZWZ0IGdlZW4gZWZmZWN0IG9wIGRlIGFhbmdlbWFha3QgZW1haWxzIG9mIGFuZGVyZSBmb3JtdWxpZXJyZWdlbHMgLS0gZGllIGt1biBqZSBpbnN0ZWxsZW4gaW4gc2phYmxvbmVuIChpbmRpZW4gdmFuIHRvZXBhc3NpbmcpIGluIGhldCAmcXVvdDtnZWF2YW5jZWVyZCZxdW90OyB0YWIgdm9vciBkZSByZWdlbHZlbGRlbi4nOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fcGFnZSddID0gJ0Jlc3RlbW1pbmdzcGFnaW5hJzsKJGxhbmdbJ3RpdGxlX3JlcXVpcmVfZmllbGRuYW1lcyddID0gJ1ZlcnBsaWNodGUgdmVsZG5hbWVuJzsKJGxhbmdbJ3RpdGxlX3JlcXVpcmVfZmllbGRuYW1lc19sb25nJ10gPSAnVmVycGxpY2h0IHZlbGRlbiBvbSBlZW4gbmFhbSB0ZSBoZWJiZW4/JzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWVsZG5hbWVzJ10gPSAnVmVycGxpY2h0IHVuaWVrZSB2ZWxkbmFtZW4nOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXNfbG9uZyddID0gJ1ZlcnBsaWNodCB2ZWxkZW4gb20gZWVuIHVuaWVrZSBuYWFtIHRlIGhlYmJlbj8nOwokbGFuZ1sndGl0bGVfcmVvcmRlcl9mb3JtJ10gPSAnSGVyc2NoaWsgdmVsZGVuJzsKJGxhbmdbJ3RpdGxlX2xvYWRfdGVtcGxhdGUnXSA9ICdMYWFkIHNqYWJsb29uJzsKJGxhbmdbJ3RpdGxlX2FkZF9idXR0b25fdGV4dCddID0gJ1ZvZWcga25vcHRla3N0IHRvZSc7CiRsYW5nWyd0aXRsZV9kZWxfYnV0dG9uX3RleHQnXSA9ICdWZXJ3aWpkZXIga25vcHRla3N0JzsKJGxhbmdbJ3RpdGxlX3N0cmluZ19vcl9udW1iZXJfZXZhbCddID0gJ0ludGVycHJldGVlciB2YXJpYWJlbGVuIGFscyBudW1tZXJzIG9mIHN0cmluZ3MnOwokbGFuZ1sndGl0bGVfb3JkZXInXSA9ICdJbnRlcnByZXRhdGlldm9sZ29yZGUnOwokbGFuZ1sndGl0bGVfb3JkZXJfaGVscCddID0gJ0FscyBlciBtZWVyIGRhbiBlZW4gYmVyZWtlbmQgdmVsZCBiZXN0YWF0LCBkYW4genVsbGVuIGRlIHdvcmRlbiBiZXJla2VuZCB2YW4gaGV0IGxhYWdzdGUgcmFuZ251bW1lciB0b3QgaGV0IGhvb2dzdGUgcmFuZ251bW1lcic7CiRsYW5nWyd0aXRsZV9jb21wdXRlX3ZhbHVlJ10gPSAnV2FhcmRlIG9tIHRlIGJlcmVrZW5lbic7CiRsYW5nWyd0aXRsZV9zdHJpbmcnXSA9ICdTdHJpbmcnOwokbGFuZ1sndGl0bGVfbnVtZXJpYyddID0gJ051bWVyaWVrJzsKJGxhbmdbJ2RlZmF1bHRfdGVtcGxhdGUnXSA9ICdTdGFuZGFhcmRzamFibG9vbic7CiRsYW5nWyd0YWJsZV9sZWZ0X3RlbXBsYXRlJ10gPSAnVGFiZWxzamFibG9vbiwgdGl0ZWwgbGlua3MnOwokbGFuZ1sndGFibGVfdG9wX3RlbXBsYXRlJ10gPSAnVGFiZWxzamFibG9vbiwgdGl0ZWwgYm92ZW4nOwokbGFuZ1snZm9ybV90ZW1wbGF0ZV9uYW1lJ10gPSAnU2phYmxvb24gdmFuICVzJzsKJGxhbmdbJ3RlbXBsYXRlX2FyZV95b3Vfc3VyZSddID0gJ1dlZXQgamUgemVrZXIgZGF0IGplIGRlIHNqYWJsb29uIHdpbHQgb3ZlcnNjaHJpanZlbiBtZXQgaGV0IGdlc2VsZWN0ZWVyZGUgc2phYmxvb24/IChaZWxmcyBhbHMgamUgT0sgYWFuZ2VlZnQsIHp1bCBqZSBkZSB2ZXJhbmRlcmluZ2VuIG1vZXRlbiBiZXdhcmVuKSc7CiRsYW5nWyd0aXRsZV9iYWRfZnVuY3Rpb24nXSA9ICdGb3V0IGJpaiBoZXQgYmVyZWtlbmVuIHZhbiAmcXVvdDslcyZxdW90Oy4nOwokbGFuZ1snbm9fcmVmZXJyZXJfaW5mbyddID0gJ0dlZW4gSFRUUF9SRUZFUkVSIGluZm9ybWF0aWUgYmVzY2hpa2JhYXIgKHdhYXJzY2hpam5pamsgZG9vciBoZXQgZ2VicnVpayB2YW4gRS1tYWlsIEdlYnJ1aWtlciBWYWxpZGF0aWUpJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcGFyYW1fZXJyb3InXSA9ICdWYWxpZGF0aWUgUGFyYW1ldGVyIEZvdXQuIFpvcmcgZXJ2b29yIGRhdCBkZSBVUkwgdmFuIHV3IGVtYWlsIGNvcnJlY3QgZ2Vrb3BpZWVyZCB3b3JkdCEnOwokbGFuZ1sndmFsaWRhdGlvbl9yZXNwb25zZV9lcnJvciddID0gJ1ZhbGlkYXRpZSBSZWFjdGllIEZvdXQuIFpvcmcgZXJ2b29yIGRhdCBkZSBVUkwgdmFuIHV3IGVtYWlsIGNvcnJlY3QgZ2Vrb3BpZWVyZCB3b3JkdCEnOwokbGFuZ1sndmFsaWRhdGlvbl9ub19maWVsZF9lcnJvciddID0gJ1ZhbGlkYXRpb24gUmVhY3RpZSBGb3V0LiBHZWVuIGVtYWlsdmFsaWRhdGlldmVsZGVuIGluIGRpdCBmb3JtdWxpZXIhJzsKJGxhbmdbJ3VwZ3JhZGUwM3RvMDQnXSA9ICdGb3JtdWxpZXJzamFibG9vbiBpcyBhdXRvbWF0aXNjaCBiaWpnZXdlcmt0IGFscyBvbmRlcmRlZWwgdmFuIGRlIHVwZ3JhZGUgdmFuIHZlcnNpZSAwLjMgbmFhciB2ZXJzaWUgMC40LiBNb2dlbGlqayBtb2V0IGplIGVlbiBhYW50YWwgemFrZW4gaGVyc3RlbGxlbi4gQWxzIGplIGhldCBzdGFuZGFhcmRzamFibG9vbiBnZWJydWlrdCwgdmVydmFuZyBkZXplIHNqYWJsb29uIGRhbiBtZXQgZGUgc3RhbmRhYXJkLCBkb29yIGRlIGJvdmVuc3RhYW5kZSBrZXV6ZWxpanN0IHRlIGdlYnJ1aWtlbi4nOwokbGFuZ1snYWRtaW5kZXNjJ10gPSAnQmVoZWVyIHZhbiBpbnRlcmFjdGlldmUgc2Zvcm11bGllcmVuJzsKJGxhbmdbJ29wZXJhdG9yc19oZWxwJ10gPSAnQWxzIGplIFN0cmluZy1ldmFsdWF0aWUgZ2VicnVpa3QgaXMgZGUgZW5pZ2UgYmVzY2hpa2JhcmUgb3BlcmF0aWUgKCspLCB0ZXJ3aWpsIGJpaiBoZXQgZ2VicnVpayB2YW4gTnVtbWVyLWV2YWx1YXRpZSBlZW52b3VkaWdlIHdpc2t1bmRpZ2UgYmV3ZXJraW5nZW4gbW9nZWxpamsgemlqbiAoLCArLCAtLCAqLCAvLCApLic7CiRsYW5nWydkYXRlX2phbnVhcnknXSA9ICdqYW51YXJpJzsKJGxhbmdbJ2RhdGVfZmVicnVhcnknXSA9ICdmZWJydWFyaSc7CiRsYW5nWydkYXRlX21hcmNoJ10gPSAnbWFhcnQnOwokbGFuZ1snZGF0ZV9hcHJpbCddID0gJ2FwcmlsJzsKJGxhbmdbJ2RhdGVfbWF5J10gPSAnbWVpJzsKJGxhbmdbJ2RhdGVfanVuZSddID0gJ2p1bmknOwokbGFuZ1snZGF0ZV9qdWx5J10gPSAnanVsaSc7CiRsYW5nWydkYXRlX2F1Z3VzdCddID0gJ2F1Z3VzdHVzJzsKJGxhbmdbJ2RhdGVfc2VwdGVtYmVyJ10gPSAnc2VwdGVtYmVyJzsKJGxhbmdbJ2RhdGVfb2N0b2JlciddID0gJ29rdG9iZXInOwokbGFuZ1snZGF0ZV9ub3ZlbWJlciddID0gJ25vdmVtYmVyJzsKJGxhbmdbJ2RhdGVfZGVjZW1iZXInXSA9ICdkZWNlbWJlcic7CiRsYW5nWydzdWJtaXNzaW9uX2Vycm9yJ10gPSAnU29ycnkhIEVyIGlzIGVlbiBmb3V0IG9wZ2V0cmVkZW4gdGlqZGVucyBkZSBmb3JtdWxpZXJ2ZXJ3ZXJraW5nLic7CiRsYW5nWydzdWJtaXRfZXJyb3InXSA9ICdGb3JtIEJ1aWxkZXIgdmVyemVuZGluZ3Nmb3V0OiAlcyc7CiRsYW5nWyd1cGxvYWRzX2Vycm9yJ10gPSAnRm91dCBiaWogaGV0IHZlcnN0dXJlbiB2YW4gaGV0IGJlc3RhbmQgbmFhciBkZSB1cGxvYWRtb2R1bGU6ICVzJzsKJGxhbmdbJ25vdXBsb2Fkc19lcnJvciddID0gJ0RlIHVwbG9hZG1vZHVsZSBrb24gbmlldCB3b3JkZW4gZ2V2b25kZW4nOwokbGFuZ1sndXBsb2FkX2F0dGFjaF9lcnJvciddID0gJ1VwbG9hZC9CaWpsYWdlIGZvdXQgYmlqIGJlc3RhbmQgJXMgKHRtcF9uYW1lOiAlcywgdHlwZSAlcyknOwokbGFuZ1snc3VibWlzc2lvbl9lcnJvcl9maWxlX2xvY2snXSA9ICdGb3V0LiBLYW4gZ2VlbiBsb2NrIHZvb3IgYmVzdGFuZCBrcmlqZ2VuLic7CiRsYW5nWydlbWFpbF9kZWZhdWx0X3RlbXBsYXRlJ10gPSAnRm9ybSBCdWlsZGVyIFZlcnplbmRpbmcnOwokbGFuZ1snZW1haWxfdGVtcGxhdGVfbm90X3NldCddID0gJzxici8+RW1haWxzamFibG9vbiBub2cgbmlldCBpbmdlc3RlbGQhJzsKJGxhbmdbJ21pc3NpbmdfY21zX21haWxlciddID0gJ0Zvcm0gQnVpbGRlcjogS2FuIHZlcmVpc3RlIG1vZHVsZSBDTVNNYWlsZXIgbmlldCB2aW5kZW4hJzsKJGxhbmdbJ3VzZXJfYXBwcm92ZWRfc3VibWlzc2lvbiddID0gJ0dlYnJ1aWtlcmdvZWRnZWtldXJkZSB2ZXJ6ZW5kaW5nICVzIHZhbiAlcyc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J10gPSAnR2ViZXVydGVuaXMgZ2VhY3RpdmVlcmQgYWxzIGVlbiBGb3JtIEJ1aWxkZXItZm9ybXVsaWVyIHZlcnpvbmRlbiB3b3JkdCc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InXSA9ICdHZWJldXJ0ZW5pcyBnZWFjdGl2ZWVyZCBhbHMgZWVuIGZvdXQgb3B0cmVlZHQgYmlqIGhldCB2ZXJ6ZW5kZW4gdmFuIGVlbiBGb3JtIEJ1aWxkZXItZm9ybXVsaWVyJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1EaXNwbGF5J10gPSAnR2ViZXVydGVuaXMgZ2VhY3RpdmVlcmQgYWxzIGVlbiBGb3JtIEJ1aWxkZXItZm9ybXVsaWVyIHdvcmR0IGdldG9vbmQnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdCddID0gJzxwPkdlYmV1cnRlbmlzIGdlYWN0aXZlZXJkIGFscyBlZW4gRm9ybSBCdWlsZGVyLWZvcm11bGllciB2ZXJ6b25kZW4gd29yZHQuPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIEZvcm11bGllcm5hYW0gKHN0cmluZyk8L2xpPg0KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBJbnRlcm4gZm9ybXVsaWVyIElEIChpbnQpPC9saT4NCjwvdWw+ICc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InXSA9ICc8cD5HZWJldXJ0ZW5pcyBnZWFjdGl2ZWVyZCBhbHMgZWVuIGZvdXQgb3B0cmVlZHQgYmlqIGhldCB2ZXJ6ZW5kZW4gdmFuIGVlbiBGb3JtIEJ1aWxkZXItZm9ybXVsaWVyPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIEZvcm11bGllcm5hYW0gKHN0cmluZyk8L2xpPg0KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBJbnRlcm4gZm9ybXVsaWVyIElEIChpbnQpPC9saT4NCjxsaT48ZW0+ZXJyb3I8L2VtPiAtIEVlbiBsaWpzdCB2YW4gYWxsZSBiZWtlbmRlIGZvdXRlbiAoc3RyaW5nKTwvbGk+DQo8L3VsPiAnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXSA9ICc8cD5HZWJldXJ0ZW5pcyBnZWFjdGl2ZWVyZCBhbHMgZWVuIEZvcm0gQnVpbGRlci1mb3JtdWxpZXIgd29yZHQgZ2V0b29uZDwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBGb3JtdWxpZXJuYWFtIChzdHJpbmcpPC9saT4NCjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gSW50ZXJuIGZvcm11bGllciBJRCAoaW50KTwvbGk+DQo8L3VsPiAnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX3Jlc3BvbnNlX2lkJ10gPSAnUmVhY3RpZS1JRC4gR2VicnVpa3QgZG9vciBGb3JtQnJvd3Nlcic7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfcGFzc2VkX2Zyb21fdGFnJ10gPSAnU3RhbmRhYXJkIHZlbGR3YWFyZGVuOyB6aWUgbW9kdWxlaHVscCc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZmllbGRfaWQnXSA9ICdWZWxkLUlEIHZvb3IgaW50ZXJuZSBvcGVyYXRpZXMnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2Zvcm1fbmFtZSddID0gJ0Zvcm11bGllcm5hYW0nOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2Zvcm1faWQnXSA9ICdGb3JtdWxpZXItSUQgdm9vciBpbnRlcm5lIG9wZXJhdGllJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19nZW5lcmFsJ10gPSAnQWxnZW1lbmUgcGFyYW1ldGVycyB2b29yIGludGVybmUgb3BlcmF0aWVzJzsKJGxhbmdbJ3RlbXBsYXRlX3ZhcmlhYmxlX2hlbHAnXSA9ICc8aDM+Rm9ybSBUZW1wbGF0ZSBWYXJpYWJsZXM8L2gzPg0KPHA+WW91IGNhbiBlZGl0IGl0IHRvIG1ha2UgeW91ciBmb3JtIGxheW91dCBsb29rIGFueSB3YXkgeW91JiMwMzk7ZCBsaWtlLg0KICAgVG8gbWFrZSB0aGUgZm9ybSB3b3JrLCB5b3UmIzAzOTtsbCBuZWVkIHRvIGFsd2F5cyBpbmNsdWRlIHRoZSB7JGZiX2hpZGRlbn0gYW5kIHskc3VibWl0fQ0KICAgdGFncy48L3A+DQoNCjxwPllvdSBjYW4gYWNjZXNzIHlvdXIgZm9ybSBmaWVsZHMgZWl0aGVyIHVzaW5nIHRoZSAkZmllbGRzIGFycmF5IG9yIGJ5IGRpcmVjdGx5IGFjY2Vzc2luZyBmaWVsZHMgYnkgdGhlaXIgbmFtZXMgKGUuZy4sIHskbXlmaWVsZC0+aW5wdXR9ICk8L3A+DQoNCg0KPHA+RWFjaCBmaWVsZCBoYXMgdGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzOjwvcD4NCjx0YWJsZT4NCjx0cj48dGg+RmllbGQ8L3RoPjx0aD5WYWx1ZTwvdGg+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmRpc3BsYXk8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBzaG91bGQgYmUgZGlzcGxheWVkLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPnJlcXVpcmVkPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgaXMgcmVxdWlyZWQsIDAgb3RoZXJ3aXNlPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+cmVxdWlyZWRfc3ltYm9sPC90ZD48dGQ+dGhlIHN5bWJvbCBmb3IgcmVxdWlyZWQgZmllbGRzPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+Y3NzX2NsYXNzPC90ZD48dGQ+dGhlIENTUyBjbGFzcyBzcGVjaWZpZWQgZm9yIHRoaXMgZmllbGQ8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT52YWxpZDwvdGQ+PHRkPjEgaWYgdGhpcyBmaWVsZCBoYXMgcGFzc2VkIHZhbGlkYXRpb24sIDAgb3RoZXJ3aXNlPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+ZXJyb3I8L3RkPjx0ZD5UZXh0IG9mIHRoZSB2YWxpZGF0aW9uIHByb2JsZW0sIGluIHRoZSBldmVudCB0aGF0IHRoaXMgZmllbGQgZGlkIG5vdCB2YWxpZGF0ZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmhpZGVfbmFtZTwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIG5hbWUgc2hvdWxkIGJlIGhpZGRlbiwgMCBvdGhlcndpc2U8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5oYXNfbGFiZWw8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCB0eXBlIGhhcyBhIGxhYmVsPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+bmVlZHNfZGl2PC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgbmVlZHMgdG8gYmUgd3JhcHBlZCBpbiBhIERJViAob3IgdGFibGUgcm93LCBpZiB0aGF0JiMwMzk7cyB0aGUgd2F5IHlvdSBzd2luZyk8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5uYW1lPC90ZD48dGQ+dGhlIGZpZWxkJiMwMzk7cyBuYW1lPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aW5wdXQ8L3RkPjx0ZD50aGUgZmllbGQmIzAzOTtzIGlucHV0IGNvbnRyb2wgKGUuZy4sIHRoZSBpbnB1dCBmaWVsZCBpdHNlbGYpPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+b3A8L3RkPjx0ZD5hIGNvbnRyb2wgYnV0dG9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgZmllbGQgaWYgYXBwbGljYWJsZSAoZS5nLiwgdGhlIGRlbGV0ZSBidXR0b24gZm9yIGV4cGFuZGFibGUgdGV4dCBpbnB1dCk8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5pbnB1dF9pZDwvdGQ+PHRkPnRoZSBJRCBvZiB0aGUgZmllbGQmIzAzOTtzIGlucHV0ICh1c2VmdWwgZm9yIDxsYWJlbCBmb3I9JnF1b3Q7JnF1b3Q7Pik8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT50eXBlPC90ZD48dGQ+dGhlIGZpZWxkJiMwMzk7cyBkYXRhIHR5cGU8L3RkPjwvdHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KPHRyPjx0ZD5maWVsZC0+bXVsdGlwbGVfcGFydHM8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYSBjb2xsZWN0aW9uIG9mIGNvbnRyb2xzPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+bGFiZWxfcGFydHM8L3RkPjx0ZD4xIGlmIHRoZSBjb2xsZWN0aW9uIG9mIGNvbnRyb2xzIGhhcyBzZXBhcmF0ZSBsYWJlbHMgZm9yIGVhY2ggY29udHJvbDwvdGQ+PC90cj4NCjwvdGFibGU+DQoNCjxwPkluIGNlcnRhaW4gY2FzZXMsIGZpZWxkLT5pbnB1dCBpcyBhY3R1YWxseSBhbiBhcnJheSBvZiBvYmplY3RzIHJhdGhlciB0aGFuIGFuIGlucHV0LiBUaGlzIGhhcHBlbnMsIGZvciBleGFtcGxlLCBpbiBDaGVja0JveEdyb3VwcyBvciBSYWRpb0J1dHRvbkdyb3Vwcy4gRm9yIHRoZW0sIHlvdSBjYW4gaXRlcmF0ZSB0aHJvdWdoIGZpZWxkLT5pbnB1dC0+bmFtZSBhbmQgZmllbGQtPmlucHV0LT5pbnB1dHMuPC9wPg0KICAgIA0KPHA+QWRkaXRpb25hbCBzbWFydHkgdmFyaWFibGVzIHRoYXQgeW91IGNhbiB1c2UgaW5jbHVkZTo8L3A+DQo8dGFibGU+DQo8dHI+PHRoPlZhcmlhYmxlPC90aD48dGg+VmFsdWU8L3RoPjwvdHI+DQo8dHI+PHRkPnRvdGFsX3BhZ2VzPC90ZD48dGQ+bnVtYmVyIG9mIHBhZ2VzIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD50aGlzX3BhZ2U8L3RkPjx0ZD5udW1iZXIgZm8gdGhlIGN1cnJlbnQgcGFnZSBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+dGl0bGVfcGFnZV94X29mX3k8L3RkPjx0ZD5kaXNwbGF5cyAmcXVvdDtwYWdlIHggb2YgeSZxdW90OyBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+Y3NzX2NsYXNzPC90ZD48dGQ+Q1NTIENsYXNzIGZvciB0aGUgZm9ybTwvdGQ+PC90cj4NCjx0cj48dGQ+Zm9ybV9uYW1lPC90ZD48dGQ+Rm9ybSBuYW1lPC90ZD48L3RyPg0KPHRyPjx0ZD5mb3JtX2lkPC90ZD48dGQ+Rm9ybSBkYXRhYmFzZSBJRDwvdGQ+PC90cj4NCjx0cj48dGQ+cHJldjwvdGQ+PHRkPiZxdW90O0JhY2smcXVvdDsgYnV0dG9uIGZvciBtdWx0aXBhcnQgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPnN1Ym1pdDwvdGQ+PHRkPiZxdW90O0NvbnRpbnVlJnF1b3Q7IG9yICZxdW90O1N1Ym1pdCZxdW90OyBidXR0b24gZm9yIG11bHRpcGFydCBmb3JtcywgYWRqdXN0cyBhdXRvbWF0aWNhbGx5PC90ZD48L3RyPg0KPC90YWJsZT4NCjxwPkR1bm5vIHdoeSB5b3UmIzAzOTtkIHdhbnQgc29tZSBvZiB0aG9zZSwgYnV0IHRoZXJlIHlvdSBnby4uLjwvcD4NCic7CiRsYW5nWydwb3N0X2luc3RhbGwnXSA9ICc8cD5NYWtlIHN1cmUgdG8gc2V0IHRoZSAmcXVvdDtNb2RpZnkgRm9ybXMmcXVvdDsgcGVybWlzc2lvbnMNCm9uIHVzZXJzIHdobyB3aWxsIGJlIGFkbWluaXN0ZXJpbmcgZmVlZGJhY2sgZm9ybXMuIEFsc28sIGlmIHlvdSYjMDM5O2xsIGJlIGVtYWlsaW5nIGZvcm0NCnJlc3VsdHMsIGJlIHN1cmUgdG8gdXBkYXRlIHRoZSBDb25maWd1cmF0aW9uIGFwcHJvcHJpYXRlbHkuPC9wPg0KPHA+UGxlYXNlIGJlIGF3YXJlIHRoYXQgYSBmZWVkYmFjayBmb3JtIHNob3VsZCBub3QgYmUgYWN0aXZlIChlLmcuLCB1c2FibGUgYnkgdGhlIHB1YmxpYykgd2hpbGUNCnlvdSBhcmUgc3RpbGwgZWRpdGluZyB0aGUgZm9ybS4gWW91IHNob3VsZCBjcmVhdGUgdGhlIGZvcm0sIGFuZCBwbGFjZSB0aGUgdGFnIGludG8gYW4gYWN0aXZlDQpjb250ZW50IHBhZ2Ugb25seSB3aGVuIHlvdSBoYXZlIGZpbmlzaGVkIGVkaXRpbmcuIE90aGVyd2lzZSwgZXJyb25lb3VzIHJlc3VsdHMgY291bGQgYmUgcmV0dXJuZWQuPC9wPg0KPHA+QWRkaXRpb25hbGx5LCB0aGlzIHZlcnNpb24gZG9lcyBub3Qgc3VwcG9ydCBwYXJhbGxlbCBlZGl0aW5nIG9mIGZvcm1zLiBQbGVhc2UgdGFrZSBjYXJlIHRoYXQNCm9ubHkgb25lIGFkbWluIGlzIGVkaXRpbmcgYSBnaXZlbiBmb3JtIGF0IGEgZ2l2ZW4gdGltZS48L3A+JzsKJGxhbmdbJ2hlbHAnXSA9ICdoMz5XaGF0IERvZXMgVGhpcyBEbz88L2gzPg0KPHA+VGhlIEZvcm0gQnVpbGRlciBNb2R1bGUgYWxsb3dzIHlvdSB0byBjcmVhdGUgZmVlZGJhY2sgZm9ybXMgKGluIGZhY3QsIGl0JiMwMzk7cyBhIHJlcGxhY2VtZW50IG9mIHRoZSBvcmlnaW5hbCBGZWVkYmFjayBGb3JtIG1vZHVsZSksIHdpdGggdGhlIGFkZGVkIHBvd2VyIG9mIGRhdGFiYXNlIHN0b3JhZ2UuIFdpdGggaXRzIGNvbXBhbmlvbiBtb2R1bGUgRm9ybSBCcm93c2VyLCB5b3UgY2FuIHVzZSBpdCB0byBjcmVhdGUgc2ltcGxlIGRhdGFiYXNlIGFwcGxpY2F0aW9ucy48L3A+DQo8cD5UaGUgZm9ybXMgY3JlYXRlZCB1c2luZyB0aGUgRm9ybSBCdWlsZGVyIG1heSBiZSBpbnNlcnRlZA0KaW50byB0ZW1wbGF0ZXMgYW5kL29yIGNvbnRlbnQgcGFnZXMuIEZvcm1zIG1heSBjb250YWluIG1hbnkga2luZHMgb2YgaW5wdXRzLCBhbmQgbWF5IGhhdmUNCnZhbGlkYXRpb24gYXBwbGllZCB0byB0aGVzZSBpbnB1dHMuIFRoZSByZXN1bHRzIG9mIHRoZXNlIGZvcm1zIG1heSBiZSBoYW5kbGVkIGluIGEgdmFyaWV0eSBvZiB3YXlzLjwvcD4NCg0KPGgzPkhvdyBEbyBJIFVzZSBpdD88L2gzPg0KPFA+SW5zdGFsbCBpdCwgYW5kIHBva2UgYXJvdW5kIHRoZSBtZW51cy4gUGxheSB3aXRoIGl0LiBUcnkgY3JlYXRpbmcgZm9ybXMsIGFuZCBhZGRpbmcgdGhlbSB0byB5b3VyIGNvbnRlbnQuDQpJZiB5b3UgZ2V0IHN0dWNrLCBjaGF0IHdpdGggbWUgb24gdGhlICNjbXMgSVJDIGNoYW5uZWwsIHBvc3QgdG8gdGhlIGZvcnVtLCBzZW5kIG1lIGVtYWlsLCBvciwgaWYgeW91JiMwMzk7cmUNCnJlYWxseSBkZXNwZXJhdGUsIHJlYWQgdGhlIHJlc3Qgb2YgdGhpcyBwYWdlLjwvUD4NCg0KPGgzPkhvdyBEbyBJIENyZWF0ZSBhIEZvcm08L2gzPg0KPHA+SW4gdGhlIENNUyBBZG1pbiBNZW51LCB5b3Ugc2hvdWxkIGdldCBhIG5ldyBtZW51IGl0ZW0gY2FsbGVkIEZvcm1CdWlsZGVyLiBDbGljayBvbiB0aGlzLiBPbiB0aGUgcGFnZQ0KdGhhdCBnZXRzIHNob3duLCB0aGVyZSBhcmUgb3B0aW9ucyAoYXQgdGhlIGJvdHRvbSBvZiB0aGUgbGlzdCBvZiBGb3JtcykgdG8gQWRkIGEgTmV3IEZvcm0gb3IgTW9kaWZ5DQpDb25maWd1cmF0aW9uLjwvcD4NCg0KPGgzPkFkZGluZyBhIEZvcm0gdG8gYSBQYWdlPC9oMz4NCjxwPkluIHRoZSBtYWluIEZvcm1CdWlsZGVyIGFkbWluIHBhZ2UsIHlvdSBjYW4gc2VlIGFuIGV4YW1wbGUgb2YgdGhlIHRhZyB1c2VkIHRvIGRpc3BsYXkgZWFjaCBmb3JtLiBJdCBsb29rcw0Kc29tZXRoaW5nIGxpa2Uge2Ntc19tb2R1bGUgbW9kdWxlPSYjMDM5O0Zvcm1CdWlsZGVyJiMwMzk7IGZvcm09JiMwMzk7c2FtcGxlX2Zvcm0mIzAzOTt9PC9wPg0KPHA+QnkgY29weWluZyB0aGlzIHRhZyBpbnRvIHRoZSBjb250ZW50IG9mIGEgcGFnZSwgb3IgaW50byBhIHRlbXBsYXRlLCB3aWxsIGNhdXNlIHRoYXQgZm9ybSB0byBiZSBkaXNwbGF5ZWQuDQpJbiB0aGVvcnksIHlvdSBjYW4gaGF2ZSBtdWx0aXBsZSBmb3JtcyBvbiBhIHBhZ2UgaWYgeW91IHJlYWxseSB3YW50IHRvLiBCZSBjYXJlZnVsIHdoZW4gcGFzdGluZyB0aGUgdGFnDQppbnRvIGEgcGFnZSYjMDM5O3MgY29udGVudCBpZiB5b3UgdXNlIGEgV1lTSVdZRyBlZGl0b3Igc3VjaCBhcyBUaW55TUNFLCBGQ0tFZGl0LCBvciBIVE1MQXJlYS4gVGhlc2UgZWRpdG9ycyBtYXkgc3RlYWx0aGlseQ0KY2hhbmdlIHRoZSBxdW90ZSBtYXJrcyAoJnF1b3Q7KSBpbnRvIEhUTUwgZW50aXRpZXMgKCZhbXA7YW1wO3F1b3Q7KSwgYW5kIHRoZSBmb3JtcyB3aWxsIG5vdCBzaG93IHVwLiBUcnkgdXNpbmcNCnNpbmdsZSBxdW90ZXMgKCYjMDM5Oykgb3IgZWRpdGluZyB0aGUgSFRNTCBkaXJlY3RseS48L3A+DQoNCjxoMz5Xb3JraW5nIHdpdGggRm9ybXM8L2gzPg0KPHA+QnkgY2xpY2tpbmcgb24gYSBGb3JtJiMwMzk7cyBuYW1lLCB5b3UgZW50ZXIgdGhlIEZvcm0gRWRpdCBwYWdlLiBUaGVyZSBhcmUgc2V2ZXJhbCB0YWJzLCB3aGljaCBhcmUgZGVzY3JpYmVkIGJlbG93OjwvcD4NCjxoND5NYWluPC9oND4NCjxwPlRoaXMgaXMgdGhlIG1haW4gcGxhY2UgeW91JiMwMzk7bGwgd29yayBvbiB5b3VyIGZvcm0uIEhlcmUsIHlvdSBnaXZlIGl0IGEgbmFtZSwgYW4gYWxpYXMgKHdoaWNoIGlzIHVzZWQgdG8gaWRlbnRpZnkgaXQgZm9yIHBsYWNpbmcgaXQgaW4gYSBwYWdlIG9yIHRlbXBsYXRlKSwgYW5kLCBvcHRpb25hbGx5LCBhIENTUyBjbGFzcyB3aXRoIHdoaWNoIHRvIHdyYXAgdGhlIHdob2xlIHRoaW5nLjwvcD4NCjxwPkJlbG93IHRoaXMsIGlmIHlvdSBoYXZlIGl0IGVuYWJsZWQsIGlzIHRoZSAmcXVvdDtmYXN0IGZpZWxkIGFkZGVyJnF1b3Q7IHB1bGxkb3duLCB0aGF0IGxldHMgeW91IHF1aWNrbHkgYWRkIGEgZmllbGQgdG8gdGhlIGVuZCBvZiB5b3VyIGZvcm0gYnkgc2VsZWN0aW5nIHRoZSBmaWVsZCB0eXBlLjwvcD4NCjxwPkJlbG93IHRoaXMgaXMgdGhlIGxpc3Qgb2YgZmllbGRzIHRoYXQgbWFrZSB1cCB5b3VyIGZvcm0uIE1vcmUgZGV0YWlsIG9uIHRoaXMgaXMgZGVzY3JpYmVkIGJlbG93LjwvcD4NCjxoND5Gb3JtIFN1Ym1pc3Npb248L2g0Pg0KPHA+V2hlbiB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQsIHlvdSBjYW4gZWl0aGVyIHJlZGlyZWN0IHRoZSB1c2VyIHRvIGFub3RoZXIgcGFnZSBvZiB5b3VyIHNpdGUsIG9yIHlvdSBjYW4gcHJlc2VudCB0aGUgdXNlciBzb21lIG1lc3NhZ2UgKHdoaWNoIGNhbiBjb250YWluIGFueSBvZiB0aGUgdXNlciYjMDM5O3MgZm9ybSBlbnRyaWVzLCBvciBqdXN0IHN0YXRpYyB0ZXh0KS4gSW4gdGhpcyB0YWIsIHlvdSBzZWxlY3Qgd2hpY2ggb2YgdGhlc2UgYXBwcm9hY2hlcyB5b3Ugd2lzaCB0byB1c2UsIGFuZCwgaWYgeW91IGNob3NlIHJlZGlyZWN0aW9uLCBpdCBhbGxvd3MgeW91IHRvIHBpY2sgdGhlIHBhZ2UgdG8gcmVkaXJlY3QgdXNlcnMgdG8gYWZ0ZXIgYSBzdWNjZXNzZnVsIGZvcm0gc3VibWlzc2lvbi48L3A+DQo8cD5BbHNvIG9uIHRoaXMgcGFnZSwgeW91IGNhbiBzcGVjaWZ5IHRoZSBsYWJlbHMgb2YgdmFyaW91cyBzdWJtaXNzaW9uIGJ1dHRvbnMgKCZxdW90O1ByZXZpb3VzJnF1b3Q7LCAmcXVvdDtuZXh0JnF1b3Q7LCAmcXVvdDtzdWJtaXQmcXVvdDspLiBZb3UgY2FuIGFsc28gb3B0IHRvIGhhdmUgc29tZSBKYXZhc2NyaXB0IGFkZGVkIHRvIHRoZSBsYXN0IHBhZ2Ugb2YgYSBmb3JtIHRoYXQgd2lsbCBwcmV2ZW50IG11bHRpcGxlIHN1Ym1pc3Npb25zICh1c2VmdWwgb24gc2xvdyBzZXJ2ZXJzKS48L3A+DQo8aDQ+Rm9ybSBEaXNwbGF5IE9wdGlvbnM8L2g0Pg0KPHA+VGhpcyB0YWIgYWxsb3dzIGZvciBvdGhlciBmb3JtIGN1c3RvbWl6YXRpb25zLCBsaWtlIHRoZSBzeW1ib2wgdG8gc2hvdyBmb3IgcmVxdWlyZWQgZmllbGRzLjwvcD4NCjxoND5DYXB0Y2hhIFNldHRpbmdzPC9oND4NCjxwPklmIHlvdSBoYXZlIGluc3RhbGxlZCB0aGUgQ2FwdGNoYSBtb2R1bGUsIHRoaXMgdGFiIGxldHMgeW91IGNvbmZpZ3VyZSB0aGUgQ2FwdGNoYSBzZXR0aW5ncyBmb3IgeW91ciBmb3JtLjwvcD4NCjxoND5Gb3JtIFRlbXBsYXRlPC9oND4NCjxwPlRoaXMgaXMgd2hlcmUgeW91IGRvIHlvdXIgY3VzdG9taXphdGlvbiB3b3JrIG9mIHlvdXIgZm9ybSYjMDM5O3MgU21hcnR5IFRlbXBsYXRlLiBTZWUgdGhlIHNlY3Rpb24gY2FsbGVkIEZvcm0gVGVtcGxhdGUgVmFyaWFibGVzIGJlbG93LjwvcD4NCjxwPlRoZSBmb3JtIHNob3VsZCBkZWZhdWx0IHRvIGEgQ3VzdG9tIHRlbXBsYXRlIHRoYXQgZG9jdW1lbnRzIHRoZSBTbWFydHkgdGFncyBhdmFpbGFibGUgdG8geW91LjwvcD4NCjxwPlVubGVzcyB5b3UmIzAzOTtyZSBhIFNtYXJ0eSBleHBlcnQsIHlvdSBwcm9iYWJseSBkb24mIzAzOTt0IHdhbnQgdG8gbWVzcyBhcm91bmQgd2l0aCB0aGlzLiBJZiB5b3UgYXJlIGEgU21hcnR5IGV4cGVydCwgdGhpcyBpcyB3aGVyZSB5b3UgY2FuIHVubGVhc2ggeW91ciBtYWdpYy48L3A+DQo8aDQ+U3VibWlzc2lvbiBUZW1wbGF0ZTwvaDQ+DQo8cD5JZiwgaW4gdGhlIEZvcm0gU3VibWlzc2lvbiB0YWIsIHlvdSBzZWxlY3RlZCAmIzAzOTtEaXNwbGF5ICZxdW90O1N1Ym1pc3Npb24gVGVtcGxhdGUmcXVvdDssIHRoaXMgaXMgd2hlcmUgeW91IGNhbiBjcmVhdGUgdGhhdCB0ZW1wbGF0ZS4gVGhlcmUgaXMgYSBkaXNwbGF5IG9mIHdoaWNoIHNtYXJ0eSB2YXJpYWJsZXMgYXJlIGF2YWlsYWJsZSB0byB5b3UsIGFuZCBhIGJ1dHRvbiB0byBnZW5lcmF0ZSBhIHNhbXBsZSB0ZW1wbGF0ZS48L3A+DQo8cD5JZiB5b3UmIzAzOTtyZSBhIFNtYXJ0eSBleHBlcnQsIHlvdSBjYW4gZG8gYWxsIG1hbm5lciBvZiBjcmVhdGl2ZSBhbmQgcG93ZXJmdWwgdGhpbmdzIGhlcmUuIElmIHlvdSYjMDM5O3JlIG5vdCBhIFNtYXJ0eSBleHBlcnQsIHlvdSBtaWdodCBqdXN0IHdhbnQgdG8gdXNlIHRoZSBkZWZhdWx0Lg0KPC9wPg0KDQo8aDM+QWRkaW5nIEZpZWxkcyB0byB5b3VyIEZvcm08L2gzPg0KPHA+VGhlIHR5cGVzIG9mIGZpZWxkcyB0aGF0IGFyZSBjdXJyZW50bHkgc3VwcG9ydGVkIGZpdCBpbnRvIGZvdXIgZ3JvdXBzOiBzdGFuZGFyZCBpbnB1dCBmaWVsZHMsIGRpc3BsYXkgY29udHJvbCBmaWVsZHMsIGVtYWlsLXNwZWNpZmljIGZpZWxkcywgYW5kIGZvcm0gcmVzdWx0IGhhbmRsaW5nIGZpZWxkcyAoYWxzbyBjYWxsZWQgRm9ybSBEaXNwb3NpdGlvbnMgaW4gcGxhY2VzKTo8L3A+DQo8dWw+DQo8bGk+U3RhbmRhcmQgSW5wdXQgRmllbGRzIC0gdGhlc2UgYXJlIGlucHV0cyB0aGF0IGFsbG93IGVudHJ5IG9mIHR5cGljYWwgZm9ybSBlbGVtZW50czsgdGV4dCBpbnB1dHMsIHJhZGlvIGJ1dHRvbnMsIGV0Yy48L2xpPg0KPGxpPkRpc3BsYXkgQ29udHJvbCBGaWVsZHMgLSB0aGVzZSBpbnB1dCBjb250cm9sIGhvdyB0aGUgdXNlciB3aWxsIHNlZSB0aGUgZGlzcGxheSBvZiB0aGUgZm9ybTsgcGFnZSBicmVha3MsIHN0YXRpYyB0ZXh0LCBldGMuPC9saT4NCjxsaT5FbWFpbC1zcGVjaWZpYyBGaWVsZHMgLSBzb21lIGZvcm1zIGdlbmVyYXRlIGVtYWlsLCBhbmQgZW1haWwtc3BlY2lmaWMgZmllbGRzIGNhbiBhbHRlciBhdHRyaWJ1dGVzIG9mIHRoZSBlbWFpbHMgc2VudC48L2xpPg0KPGxpPkZvcm0gRGlzcG9zaXRpb25zIC0gVGhlc2UgZGV0ZXJtaW5lIHdoYXQgaGFwcGVucyB3aGVuIHRoZSB1c2VyDQpzdWJtaXRzIHRoZSBmb3JtOyBmb3IgZWFjaCByZXN1bHQgaGFuZGxpbmcgZmllbGQsIHNvbWUgbWV0aG9kIG9mIHRyYW5zbWl0dGluZywgc2F2aW5nLCBvciBlbWFpbGluZyB0aGUNCmZvcm0gY29udGVudHMgdGFrZXMgcGxhY2UuIEEgZm9ybSBtYXkgaGF2ZSBtdWx0aXBsZSBmb3JtIGRpc3Bvc2l0aW9ucy48L2xpPg0KPC91bD4NCjxwPkZvcm0gZmllbGRzIGFyZSBhc3NpZ25lZCBuYW1lcy4gVGhlc2UgbmFtZXMgaWRlbnRpZnkgdGhlIGZpZWxkLCBub3Qgb25seSBvbiB0aGUgc2NyZWVuIGFzIGxhYmVscyBmb3IgdGhlIHVzZXIsDQpidXQgaW4gdGhlIGRhdGEgd2hlbiBpdCYjMDM5O3Mgc3VibWl0dGVkIHNvIHlvdSBrbm93IHdoYXQgdGhlIHVzZXIgaXMgcmVzcG9uZGluZyB0by4gUGhyYXNpbmcgdGhlIG5hbWUgbGlrZSBhIHF1ZXN0aW9uDQppcyBhIGhhbmR5IHdheSBvZiBtYWtpbmcgaXQgY2xlYXIgdG8gdGhlIHVzZXIgd2hhdCBpcyBleHBlY3RlZC4gU2ltaWxhcmx5LCBtYW55IGZpZWxkcyBoYXZlIGJvdGggTmFtZXMgYW5kIFZhbHVlcy4NClRoZSBOYW1lcyBhcmUgd2hhdCBnZXRzIHNob3duIHRvIHRoZSB1c2VyOyB0aGUgVmFsdWUgaXMgd2hhdCBnZXRzIHNhdmVkIG9yIHRyYW5zbWl0dGVkIHdoZW4gdGhlIHVzZXIgc3VibWl0cw0KdGhlIGZvcm0uIFRoZSBWYWx1ZXMgYXJlIG5ldmVyIHNlZW4gYnkgdGhlIHVzZXIsIG5vciBhcmUgdGhleSB2aXNpYmxlIGluIHRoZSBIVE1MLCBzbyBpdCYjMDM5O3Mgc2FmZSB0byB1c2UgZm9yDQplbWFpbCBhZGRyZXNzZXMgYW5kIHN1Y2guPC9wPg0KPHA+U29tZSBmaWVsZHMgY2FuIGhhdmUgbXVsdGlwbGUgdmFsdWVzLCBvciBtdWx0aXBsZSBuYW1lL3ZhbHVlIHBhaXJzLiBXaGVuIHlvdSBmaXJzdCBjcmVhdGUgc3VjaCBhIGZpZWxkLA0KdGhlcmUgbWF5IG5vdCBiZSBzdWZmaWNpZW50IGlucHV0cyBmb3IgeW91IHRvIHNwZWNpZnkgYWxsIHRoZSB2YWx1ZXMgeW91IHdhbnQuIFRvIGdldCBtb3JlIHNwYWNlIGZvciBpbnB1dHRpbmcNCnRoZXNlIHZhbHVlcywgdXNlIHRoZSBidXR0b25zIGF0IHRoZSBib3R0b20gb2YgdGhlIHBhZ2UgZm9yIGFkZGluZyBvcHRpb25zLjwvcD4NCjxwPkZpZWxkcyBjYW4gYmUgYXNzaWduZWQgdmFsaWRhdGlvbiBydWxlcywgd2hpY2ggdmFyeSBhY2NvcmRpbmcgdG8gdGhlIHR5cGUgb2YgdGhlIGZpZWxkLiBUaGVzZSBydWxlcyBoZWxwDQplbnN1cmUgdGhhdCB0aGUgdXNlciBlbnRlcnMgdmFsaWQgZGF0YS4gVGhleSBtYXkgYWxzbyBiZQ0Kc2VwYXJhdGVseSBtYXJrZWQgJnF1b3Q7UmVxdWlyZWQmcXVvdDssIHdoaWNoIHdpbGwgZm9yY2UgdGhlIHVzZXIgdG8gZW50ZXIgYSByZXNwb25zZS48L3A+DQo8cD5GaWVsZHMgYWxzbyBtYXkgYmUgYXNzaWduZWQgYSBDU1MgY2xhc3MuIFRoaXMgc2ltcGx5IHdyYXBzIHRoZSBpbnB1dCBpbiBhIGRpdiB3aXRoIHRoYXQgY2xhc3MsIHNvIGFzIHRvIGFsbG93DQpjdXN0b21pemVkIGxheW91dHMuIFRvIHVzZSB0aGlzIGVmZmVjdGl2ZWx5LCB5b3UgbWF5IG5lZWQgdG8gJnF1b3Q7dmlldyBzb3VyY2UmcXVvdDsgb24gdGhlIGdlbmVyYXRlZCBmb3JtLCBhbmQgdGhlbg0Kd3JpdGUgeW91ciBDU1MuPC9wPg0KPHVsPg0KPGxpPlN0YW5kYXJkIElucHV0cw0KPHVsPjxsaT5UZXh0IElucHV0LiBUaGlzIGlzIGEgc3RhbmRhcmQgdGV4dCBmaWVsZC4gWW91IGNhbiBsaW1pdCB0aGUgbGVuZ3RoLCBhbmQgYXBwbHkgdmFyaW91cyB2YWxpZGF0aW9uDQpmdW5jdGlvbnMgdG8gdGhlIGZpZWxkLjwvbGk+DQo8bGk+VGV4dCBBcmVhLiBUaGlzIGlzIGEgYmlnLCBmcmVlLWZvcm0gdGV4dCBpbnB1dCBmaWVsZC48L2xpPg0KPGxpPkNoZWNrYm94LiBUaGlzIGlzIGEgc3RhbmRhcmQgY2hlY2sgYm94LjwvbGk+DQo8bGk+Q2hlY2tib3ggR3JvdXAuIFRoaXMgaXMgYSBjb2xsZWN0aW9uIG9mIGNoZWNrYm94ZXMuIFRoZSBvbmx5IGRpZmZlcmVuY2UgYmV0d2VlbiB0aGlzIGlucHV0IGFuZCBhDQpjb2xsZWN0aW9uIG9mIENoZWNrYm94IGlucHV0cyBpcyB0aGF0IHRoZXkgYXJlIHByZXNlbnRlZCBhcyBhIGdyb3VwLCB3aXRoIG9uZSBuYW1lLCBhbmQgY2FuIGhhdmUgYSB2YWxpZGF0aW9uIGZ1bmN0aW9uIHJlcXVpcmluZyB0aGF0IHlvdSBjaGVjayBvbmUgb3IgbW9yZSBvZiB0aGUgYm94ZXMgaW4gdGhlIGdyb3VwLjwvbGk+DQo8bGk+UmFkaW8gR3JvdXAuIFRoaXMgaXMgYSBjb2xsZWN0aW9uIG9mIHJhZGlvIGJ1dHRvbnMuIE9ubHkgb25lIG9mIHRoZSBncm91cCBtYXkgYmUgc2VsZWN0ZWQgYnkgdGhlIHVzZXIuPC9saT4NCjxsaT5QdWxsZG93bi4gVGhpcyBpcyBhIHN0YW5kYXJkIHB1bGxkb3duIG1lbnUuIEl0JiMwMzk7cyByZWFsbHkgY29uY2VwdHVhbGx5IHRoZSBzYW1lIHRoaW5nIGFzIGEgcmFkaW8gYnV0dG9uDQpncm91cCwgYnV0IGlzIGJldHRlciB3aGVuIHRoZXJlIGFyZSBhIGxhcmdlIG51bWJlciBvZiBvcHRpb25zLjwvbGk+DQo8bGk+TXVsdGlzZWxlY3QuIFRoaXMgaXMgYSBtdWx0aS1zZWxlY3QgZmllbGQuIEl0JiMwMzk7cyByZWFsbHkgY29uY2VwdHVhbGx5IHRoZSBzYW1lIHRoaW5nIGFzIGEgY2hlY2tib3ggYnV0dG9uDQpncm91cCwgYnV0IGlzIGJldHRlciB3aGVuIHRoZXJlIGFyZSBhIGxhcmdlIG51bWJlciBvZiBvcHRpb25zLCBhcyB5b3UgY2FuIGxpbWl0IHRoZSBudW1iZXIgZGlzcGxheWVkIG9uIHRoZSBzY3JlZW4gYXQgYW55IG9uZSB0aW1lLjwvbGk+DQo8bGk+U3RhdGUuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBTdGF0ZXMgb2YgdGhlIFUuUy48L2xpPg0KPGxpPkNvdW50cmllcy4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIENvdW50cmllcyBvZiB0aGUgd29ybGQgKGFzIG9mIEp1bHkgMjAwNSkuPC9saT4NCjxsaT5EYXRlIFBpY2tlci4gVGhpcyBpcyBhIHRyaXBsZSBwdWxsZG93biBhbGxvd2luZyB0aGUgdXNlciB0byBzZWxlY3QgYSBkYXRlLjwvbGk+DQo8bGk+VGltZSBQaWNrZXIuIFRoaXMgaXMgYSBzZXQgb2YgcHVsbGRvd25zIGFsbG93aW5nIHRoZSB1c2VyIHRvIHNlbGVjdCBhIHRpbWUgKHVzaW5nIDEyIG9yIDI0IGhvdXIgY2xvY2spLjwvbGk+DQo8bGk+RmlsZSBVcGxvYWQuIFRoaXMgaXMgYSBmaWxlIHVwbG9hZCBmaWVsZC48L2xpPg0KPGxpPkxpbmsgKFVzZXIgRW50ZXJlZCkuIFRoaXMgY3JlYXRlcyBhIGRvdWJsZSBpbnB1dCBmaWVsZCBmb3IgZ2V0dGluZyBhIGxpbmsgVVJMIGFuZCBsaW5rIHRpdGxlLjwvbGk+DQo8bGk+VGV4dCBGaWVsZCAoTXVsdGlwbGUpLiBUaGlzIGZpZWxkIGNyZWF0ZXMgb25lIG9yIG1vcmUgdGV4dCBpbnB1dHMgd2l0aCBhZGQgYW5kIGRlbGV0ZSBidXR0b25zLCBlZmZlY3RpdmVseSBnaXZpbmcgdGhlIGVuZCB1c2VyIGEgd2F5IG9mIGNyZWF0aW5nIHZhcmlhYmxlLWxlbmd0aCBsaXN0cy48L2xpPg0KPC91bD48L2xpPg0KDQo8bGk+RW1haWwtc3BlY2lmaWMgSW5wdXRzDQo8dWw+PGxpPkVtYWlsIEZyb20gQWRkcmVzcyBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSB0aGVpciBlbWFpbCBhZGRyZXNzLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgYWRkcmVzcyBpbiB0aGUgJnF1b3Q7RnJvbSZxdW90OyBmaWVsZC48L2xpPg0KPGxpPkVtYWlsIEZyb20gTmFtZSBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSB0aGVpciBuYW1lLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgbmFtZSBpbiB0aGUgJnF1b3Q7RnJvbSZxdW90OyBmaWVsZC48L2xpPg0KPGxpPkVtYWlsIFN1YmplY3QgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgYSBzdWJqZWN0IGZvciB0aGVpciBlbWFpbC4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIGluIHRoZSAmcXVvdDtTdWJqZWN0JnF1b3Q7IGZpZWxkLiBUaGlzIG1heSBjYXVzZSB0cm91YmxlIHdpdGggY2VydGFpbiBkaXNwb3NpdGlvbnMgdGhhdCB3YW50IHRvIGNvbnRyb2wgdGhlIEVtYWlsIFN1YmplY3QsIHNvIHVzZSBpdCB3aXRoIGNhdXRpb24uPC9saT4NCjwvdWw+PC9saT4NCg0KPGxpPkRpc3BsYXkgQ29udHJvbCBGaWVsZHM8dWw+DQo8bGk+LVBhZ2UgQnJlYWsuIFRoaXMgYWxsb3dzIHlvdSB0byBzcGxpdCB5b3VyIGZlZWRiYWNrIGZvcm0gaW50byBtdWx0aXBsZSBwYWdlcy4gRWFjaCBwYWdlIGlzDQppbmRlcGVuZGVudGx5IHZhbGlkYXRlZC4gVGhpcyBpcyBnb29kIGZvciBhcHBsaWNhdGlvbnMgbGlrZSBvbmxpbmUgc3VydmV5cy48L2xpPg0KPGxpPi1GaWVsZHNldCBTdGFydC4gQ29tYmluZWQgd2l0aCBGaWVsZHNldCBFbmQsIHRoaXMgYWxsb3dzIHlvdSB0byBncm91cCB2YXJpb3VzIGZpZWxkcyB3aXRoaW4geW91ciBmb3JtLiBVc2UgdGhpcyB0byBzdGFydCBhIGdpdmVuIGdyb3VwaW5nLjwvbGk+DQo8bGk+LUZpZWxkc2V0IEVuZC4gQ29tYmluZWQgd2l0aCBGaWVsZHNldCBTdGFydCwgdGhpcyBhbGxvd3MgeW91IHRvIGdyb3VwIHZhcmlvdXMgZmllbGRzIHdpdGhpbiB5b3VyIGZvcm0uIFVzZSB0aGlzIHRvIGVuZCBhIGdpdmVuIGdyb3VwaW5nLjwvbGk+DQo8bGk+LUhpZGRlbiBGaWVsZC4gVGhpcyBhbGxvd3MgeW91IHRvIGVtYmVkIGEgaGlkZGVuIGZpZWxkIGluIHlvdXIgZm9ybS48L2xpPg0KPGxpPi1TdGF0aWMgVGV4dC4gVGhpcyBhbGxvd3MgeW91IHRvIHB1dCB0ZXh0IG9yIGEgbGFiZWwgaW4gdGhlIG1pZGRsZSBvZiB5b3VyIGZvcm0uIFRoaXMgaXMgdXNlZnVsIGZvciBnaXZpbmcgYWRkaXRpb25hbCBoZWxwIHRleHQsIGVzcGVjaWFsbHkgaWYgeW91JiMwMzk7cmUgbm90IHVzaW5nIGEgQ3VzdG9tIFRlbXBsYXRlIHRvIHJlbmRlciB5b3VyIGZvcm0uPC9saT4NCjxsaT4tU3RhdGljIExpbmsuIFRoaXMgYWxsb3dzIHlvdSB0byBwdXQgYSBsaW5rIHRvIGEgZ2l2ZW4gcGFnZSBpbnRvIHlvdXIgZm9ybS4gT3B0aW9uYWxseSwgeW91IGNhbiBoYXZlIGl0IGF1dG9wb3B1bGF0ZSB3aXRoIHRoZSBwYWdlIHdoZXJlIHRoZSBmb3JtIGlzIGVtYmVkZGVkICh1c2VmdWwgaWYgeW91XCYjMDM5O3JlIHNlbmRpbmcgcmVzdWx0cyB2aWEgZW1haWwpLjwvbGk+DQo8bGk+LUNvbXB1dGVkIEZpZWxkLiBUaGlzIGFsbG93cyB5b3UgdG8gZW1iZWQgYSBjb21wdXRlZCBmaWVsZCBpbiB5b3VyIGZvcm0uIEl0IGlzIG5vdCB2aXNpYmxlIHRvIHRoZSB1c2VyIHVudGlsIGFmdGVyIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZC4gSXQgYWxsb3dzIHlvdSB0byBkbyBzaW1wbGUgYXJpdGhtZXRpYyBvciBzdHJpbmcgY29uY2F0ZW5hdGlvbi48L2xpPg0KPC91bD48L2xpPg0KDQo8bGk+Rm9ybSBIYW5kbGluZyBJbnB1dHMgKERpc3Bvc2l0aW9ucykNCjx1bD48bGk+KkNhbGwgYSBVc2VyIERlZmluZWQgVGFnIFdpdGggdGhlIEZvcm0gUmVzdWx0cy4gVGhpcyBzdWJtaXRzIGFsbCB0aGUgZm9ybSByZXN1bHRzIHRvIHRoZSBVc2VyLURlZmluZWQgVGFnIHlvdSBzcGVjaWZ5LiBUaGUgVURUIGNhbiBoYW5kbGUgdGhlIHJlc3VsdHMgaG93ZXZlciBpdCB3YW50cy48L2xpPg0KPGxpPipFbWFpbCBSZXN1bHRzIEJhc2VkIG9uIFB1bGxkb3duLiBUaGlzIGlzIHVzZWZ1bCBmb3Igd2ViIHNpdGVzIHdoZXJlIGNvbW1lbnRzIGdldCByb3V0ZWQgYmFzZWQgb24gdGhlaXIgc3ViamVjdCBtYXR0ZXIsIGUuZy4sIGJ1Z3MgZ2V0IHNlbnQgdG8gb25lIHBlcnNvbiwgbWFya2V0aW5nIHF1ZXN0aW9ucyB0byBhbm90aGVyIHBlcnNvbiwgc2FsZXMgcmVxdWVzdHMgdG8gc29tZW9uZSBlbHNlLCBldGMuIFRoZSBwdWxsZG93biBpcyBwb3B1bGF0ZWQgd2l0aCB0aGUgc3ViamVjdHMsIGFuZCBlYWNoIGdldHMgZGlyZWN0ZWQgdG8gYSBzcGVjaWZpYyBlbWFpbCBhZGRyZXNzLiBZb3Ugc2V0IHVwIHRoZXNlIG1hcHBpbmdzIGluIHRoZSB3aGVuIHlvdSBjcmVhdGUgb3IgZWRpdCBhIGZpZWxkIG9mIHRoaXMgdHlwZS4gSWYgeW91IHVzZSBvbmUgb2YgdGhlc2UgJnF1b3Q7RGlyZWN0b3ImcXVvdDsgcHVsbGRvd25zLCB0aGUgdXNlciBtdXN0IG1ha2UgYSBzZWxlY3Rpb24gaW4gb3JkZXIgdG8gc3VibWl0IHRoZQ0KZm9ybS4gVGhpcyBpbnB1dCBpcyBwYXJ0IG9mIHRoZSBmb3JtIHRoZSB1c2VyIHNlZXMsIGFsdGhvdWdoIHRoZSBlbWFpbCBhZGRyZXNzZXMgYXJlIG5vdCBtYWRlIHZpc2libGUgbm9yDQphcmUgdGhleSBlbWJlZGRlZCBpbiB0aGUgSFRNTC48L2xpPg0KPGxpPipFbWFpbCBSZXN1bHRzIHRvIHNldCBBZGRyZXNzKGVzKS4gVGhpcyBzaW1wbHkgc2VuZHMgdGhlIGZvcm0gcmVzdWx0cyB0byBvbmUgb3IgbW9yZSBlbWFpbCBhZGRyZXNzZXMgdGhhdCB5b3UgZW50ZXIgd2hlbiB5b3UgY3JlYXRlIG9yIGVkaXQgdGhpcyB0eXBlIG9mIGZpZWxkLiBUaGlzIGZpZWxkIGFuZCBpdHMgbmFtZSBhcmUgbm90IHZpc2libGUgaW4gdGhlDQpmb3JtIHRoYXQgdGhlIHVzZXIgc2Vlcy4gVGhlIGVtYWlsIGFkZHJlc3NlcyBhcmUgbm90IG1hZGUgdmlzaWJsZSBub3INCmFyZSB0aGV5IGVtYmVkZGVkIGluIHRoZSBIVE1MLjwvbGk+DQo8bGk+KkVtYWlsIHRvIFVzZXItU3VwcGxpZWQgQWRkcmVzcy4gVGhpcyBwdXRzIGFuIGlucHV0IGZpZWxkIGluIHRoZSBmb3JtIGZvciB0aGUgdXNlciB0byBwb3B1bGF0ZSB3aXRoIGFuIGVtYWlsIGFkZHJlc3MuIFRoZSBmb3JtIHJlc3VsdHMgZ2V0IHNlbnQgdG8gdGhhdCBhZGRyZXNzLiBCZXdhcmUgb2YgU3BhbSBhYnVzZSEgQWN0aXZlIHRoZSBwcmltaXRpdmUgYW50aS1zcGFtIGZlYXR1cmVzIGluIHRoZSBGb3JtQnVpbGRlciBjb25maWd1cmF0aW9uIHNjcmVlbi48L2xpPg0KPGxpPipTdG9yZSBSZXN1bHRzIGluIERhdGFiYXNlLiBUaGlzIHdpbGwgc3RvcmUgdGhlIGZvcm0gY29udGVudHMgaW4gYW4gaW50ZXJuYWwgZGF0YWJhc2UuIFlvdSB3aWxsIGFsd2F5cyB1c2UgdGhpcyBkaXNwb3NpdGlvbiBpZiB5b3UgdXNlIHRoZSBmb3JtIHdpdGggRm9ybUJyb3dzZXIuPC9saT4NCjxsaT4qUmVkaXJlY3QgdG8gUGFnZSBCYXNlZCBvbiBQdWxsZG93bi4gVGhpcyBhbGxvd3MgeW91IHRvIHJlZGlyZWN0IHRoZSBmb3JtIHRvIGEgZGlmZmVyZW50IHNpdGUgcGFnZSBkZXBlbmRpbmcgb24gaXRzIHZhbHVlLiBJZiB5b3UgaGF2ZSBtdWx0aXBsZSBkaXNwb3NpdGlvbnMsIG1ha2Ugc3VyZSB0aGlzIGlzIHVzZWQgbGFzdC48L2xpPg0KPGxpPipWYWxpZGF0ZSB2aWEgRW1haWwuIFRoaXMgaXMgYSBzdHJhbmdlIGFuZCBwb3dlcmZ1bCBmaWVsZC4gSXQgcHJvdmlkZXMgdGhlIHVzZXIgYSBtYW5kYXRvcnkgaW5wdXQgZm9yIHRoZWlyIGVtYWlsIGFkZHJlc3MuIE9uY2UgdGhleSBzdWJtaXQgdGhlaXIgZm9ybSwgdGhlIHN0YW5kYXJkIGZvcm0gZGlzcG9zaXRpb25zIGFyZSBub3QgcGVyZm9ybWVkIC0tIHJhdGhlciwgaXQgc2VuZCB0aGUgdXNlciBhbiBlbWFpbCB3aXRoIGEgc3BlY2lhbCBjb2RlZCBsaW5rLiBJZiB0aGV5IGNsaWNrIG9uIHRoZSBsaW5rLCB0aGUgb3RoZXIgZm9ybSBpcyBjb25zaWRlcmVkICZxdW90O2FwcHJvdmVkLCZxdW90OyBhbmQgdGhlIG90aGVyIGRpc3Bvc2l0aW9ucyBhcmUgYWxsIHBlcmZvcm1lZC48L2xpPg0KPGxpPipXcml0ZSBSZXN1bHRzIHRvIEZsYXQgRmlsZS4gVGhpcyB0YWtlcyB0aGUgZm9ybSByZXN1bHRzIGFuZCB3cml0ZXMgdGhlbSBpbnRvIGEgdGV4dCBmaWxlLiBZb3UgbWF5DQpzZWxlY3QgdGhlIG5hbWUgb2YgdGhlIGZpbGUsIGFuZCBzZXQgaXRzIGZvcm1hdC4gVGhlc2UgZmlsZXMgYXJlIHdyaXR0ZW4gdG8gdGhlICZxdW90O291dHB1dCZxdW90OyBkaXJlY3RvcnkgdW5kZXIgdGhlDQptb2R1bGUmIzAzOTtzIGluc3RhbGxhdGlvbiBkaXJlY3RvcnksIGFzc3VtaW5nIHRoZSB3ZWIgc2VydmVyIGhhcyBwZXJtaXNzaW9uIHRvIHdyaXRlIHRoZXJlLjwvbGk+DQo8bGk+KlNhdmUgUmVzdWx0cyB0byBGaWxlIEJhc2VkIG9uIFB1bGxkb3duLiBMaWtlIHRoZSBGbGF0IEZpbGUgZGlzcG9zaXRpb24sIGV4Y2VwdCB0aGUgdmFsdWUgb2YgYSBwdWxsLWRvd24gZGV0ZXJtaW5lcyB3aGljaCBmaWxlIHJlc3VsdHMgZ2V0IHdyaXR0ZW4gdG8uPC9saT4NCjxsaT4qU2F2ZSBSZXN1bHRzIHRvIEZpbGUocykgQmFzZWQgb24gTXVsdGlwbGUgU2VsZWN0aW9ucy4gTGlrZSB0aGUgRmxhdCBGaWxlIGRpc3Bvc2l0aW9uLCBleGNlcHQgdGhlIHZhbHVlKHMpIG9mIGNoZWNrYm94ZXMgIGRldGVybWluZXMgd2hpY2ggZmlsZShzKSByZXN1bHRzIGdldCB3cml0dGVuIHRvLjwvbGk+DQo8L3VsPjwvbGk+PC9saT48L3VsPg0KDQoNCjxoMz5QYXNzaW5nIERlZmF1bHQgVmFsdWVzIHRvIEZvcm1zPC9oMz4NCjxwPkNhbGd1eSBhZGRlZCBhIG5pY2UgZmVhdHVyZSwgd2hpY2ggaXMgdGhhdCB5b3UgY2FuIHBhc3MgZGVmYXVsdCBmaWVsZCB2YWx1ZXMgdG8geW91ciBmb3JtIHZpYSB0aGUgbW9kdWxlIHRhZy4gVGhpcyBhbGxvd3MgeW91IHRvIGhhdmUNCnRoZSBzYW1lIGZvcm0gaW4gbXVsdGlwbGUgcGxhY2VzLCBidXQgd2l0aCBkaWZmZXJlbnQgZGVmYXVsdCB2YWx1ZXMuIEl0IG1heSBub3Qgd29yayBmb3IgbW9yZSBleG90aWMgZmllbGQgdHlwZXMsIGJ1dCBmb3IgZmllbGRzIHRoYXQgaGF2ZQ0KYSBzaW5nbGUgdmFsdWUsIHlvdSBjYW4gc3BlY2lmeSBsaWtlOjwvcD4NCjxwPntjbXNfbW9kdWxlIG1vZHVsZT0mIzAzOTtGb3JtQnVpbGRlciYjMDM5OyBmb3JtPSYjMDM5O215X2Zvcm0mIzAzOTsgdmFsdWVfPGk+RklFTEROQU1FPC9pPj0mIzAzOTtkZWZhdWx0X3ZhbHVlJiMwMzk7fTwvcD4NCjxwPlRoaXMgd2lsbCBzZXQgdGhlIGZpZWxkIHdpdGggPGk+RklFTEROQU1FPC9pPiB0byAmIzAzOTtkZWZhdWx0X3ZhbHVlJiMwMzk7LjwvcD4NCjxwPlRoaXMgY2FuIGJlIHByb2JsZW1hdGljLCBhcyBzb21ldGltZXMgZmllbGQgbmFtZXMgYXJlIHVud2VpbGR5IG9yIGNvbnRhaW4gY2hhcmFjdGVycyB0aGF0IGRvbiYjMDM5O3Qgd29yayB3ZWxsIHdpdGggU21hcnR5LiBTbyB0aGVyZSBpcyBhbg0KYWx0ZXJuYXRpdmUgbGlrZSB0aGlzOjwvcD4NCjxwPntjbXNfbW9kdWxlIG1vZHVsZT0mIzAzOTtGb3JtQnVpbGRlciYjMDM5OyBmb3JtPSYjMDM5O215X2Zvcm0mIzAzOTsgdmFsdWVfZmxkPGk+TlVNQkVSPC9pPj0mIzAzOTtkZWZhdWx0X3ZhbHVlJiMwMzk7fTwvcD4NCjxwPlRoYXQgdXNlcyBmaWVsZCA8aT5OVU1CRVI8L2k+LCB3aGVyZSA8aT5OVU1CRVI8L2k+IGlzIHRoZSBpbnRlcm5hbCBGb3JtQnVpbGRlciBmaWVsZCBpZC4gWW91IG1pZ2h0IHdvbmRlciBob3cgeW91IGtub3cgd2hhdCB0aGF0IGlkIGlzLiBTaW1wbHkgZ28gaW50byB0aGUgRm9ybUJ1aWxkZXIgY29uZmlndXJhdGlvbiB0YWIsDQphbmQgY2hlY2sgJnF1b3Q7U2hvdyBGaWVsZCBJRHMmcXVvdDs8L3A+DQoNCjxoMz5FbWFpbCBhbmQgRmxhdCBGaWxlIFRlbXBsYXRlczwvaDM+DQo8cD5NYW55IGRpc3Bvc2l0aW9uIHR5cGVzIGFsbG93IHlvdSB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmb3IgdGhlIGVtYWlsIHRoYXQgaXMgZ2VuZXJhdGVkLCBvciBmb3IgdGhlIHdheSB0aGUgcmVzdWx0cyBhcmUgd3JpdHRlbiB0byBhIGZpbGUuIElmIHlvdSBvcHQgbm90IHRvIGNyZWF0ZSBhIHRlbXBsYXRlLCB0aGUgRm9ybUJ1aWxkZXIgd2lsbCB1c2UgaXQmIzAzOTtzIG93biBiZXN0IGd1ZXNzLCB3aGljaCBtYXkgb3IgbWF5IG5vdCB3b3JrIG91dCB0byB5b3VyIGxpa2luZy4gWW91IGNhbiBhbHdheXMgY2xpY2sgb24gdGhlICZxdW90O0NyZWF0ZSBTYW1wbGUgVGVtcGxhdGUmcXVvdDsgYW5kIHRoZW4gY3VzdG9taXplIHRoZSByZXN1bHRzLjwvcD4NCjxwPlRvIHRoZSByaWdodCwgeW91JiMwMzk7bGwgZmluZCBhIGxlZ2VuZCB3aGljaCBsaXN0cyBhbGwgb2YgdGhlIHZhcmlhYmxlcyB0aGF0IGFyZSBhdmFpbGFibGUgdG8geW91IHRvIHVzZSBpbiB5b3VyIHRlbXBsYXRlLiBBcyBvZiB2ZXJzaW9uIDAuMywgdmFyaWFibGVzIGhhdmUgdHdvIG5hbWVzLCBvbmUgYmFzZWQgb24gdGhlIGZpZWxkIG5hbWUsIHRoZSBvdGhlciBiYXNlZCBvbiB0aGUgZmllbGQgSUQuIElmIHlvdSB1c2UgZmllbGQgbmFtZXMgdGhhdCBoYXZlIGNoYXJhY3RlcnMgb3V0c2lkZSBvZiB0aGUgQVNDSUkgMzItMTI2IHJhbmdlLCBpdCB3aWxsIGJlIHNhZmVyIHRvIHVzZSB0aGUgSUQtYmFzZWQgdmFyaWFibGVzLjwvcD4NCjxwPjxzdHJvbmc+Tm90ZSB0aGF0IG9uY2UgeW91JiMwMzk7dmUgY2hhbmdlZCBhIHRlbXBsYXRlLCBpdCB3aWxsIG5vIGxvbmdlciBhdXRvbWF0aWNhbGx5IGFkZCBuZXcgZmllbGRzLjwvc3Ryb25nPiBGb3IgdGhpcyByZWFzb24sIGl0JiMwMzk7cyB1c3VhbGx5IGJlc3QgdG8gY3JlYXRlIHlvdXIgdGVtcGxhdGVzIGFzIHRoZSBsYXN0IHN0ZXAgb2YgY3JlYXRpbmcgeW91ciBmb3JtLjwvcD4NCjxwPkFzIG9mIHZlcnNpb24gMC4yLjQsIHlvdSBjYW4gb3B0IHRvIHNlbmQgYW55IG9mIHRoZXNlIGVtYWlscyBhcyBIVE1MIGVtYWlsLiBUaGVyZSBzaG91bGQgYmUgYSBjaGVja2JveCBhdCB0aGUgdG9wIG9mIHRoZSB0ZW1wbGF0ZSBwYWdlIGZvciB0aGlzLiBUaGVyZSBpcyBhbHNvIGEgJnF1b3Q7Q3JlYXRlIFNhbXBsZSBIVE1MIFRlbXBsYXRlJnF1b3Q7IGJ1dHRvbiBvdmVyIGluIHRoZSBsZWdlbmQgYXJlYS4gRm9yIEhUTUwgZW1haWwsIHRoZSBlbWFpbCBib2R5IHdpbGwgYWxzbyBwcm92aWRlIHRoZSBkZWZhdWx0IHRleHQtb25seSB2YWx1ZXMuPC9wPg0KDQo8aDM+Q29uZmlndXJhdGlvbjwvaDM+DQo8cD5UaGVyZSBhcmUgc29tZSBnbG9iYWwgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBGb3JtQnVpbGRlcjo8L3A+DQo8dWw+DQo8bGk+RW5hYmxlIGZhc3QgZmllbGQgYWRkIHB1bGxkb3duLiBUaGlzIGVuYWJsZXMgdGhlIHB1bGxkb3duIG9uIHRoZSBGb3JtIEVkaXQgcGFnZSB3aGljaCBzYXZlcyBhIHN0ZXAgaW4gdGhlIGNyZWF0aW9uIG9mIG5ldyBmaWVsZHMuPC9saT4NCjxsaT5IaWRlIEVycm9ycy4gVGhpcyBpcyBzZXQgYnkgZGVmYXVsdC4gVW5jaGVja2luZyBpdCB3aWxsIGNhdXNlIG1vcmUgZGV0YWlsZWQgZXJyb3JzIHRvIGJlIGRpc3BsYXllZCBpZiB0aGVyZSBhcmUgcHJvYmxlbXMgd2hlbiB5b3Ugc3VibWl0IHlvdXIgZm9ybS48L2xpPg0KPGxpPlJlcXVpcmUgRmllbGQgTmFtZXMuIFR5cGljYWxseSwgeW91IHdpbGwgd2FudCBmb3JtIGZpZWxkcyB0byBiZSBuYW1lZCBzbyB5b3UgY2FuIHRlbGwgd2hpY2ggaXMgd2hpY2guIEhvd2V2ZXIsIGluIHNvbWUgY2FzZXMsIHlvdSBtaWdodCB3YW50IHRvIGhhdmUgbmFtZWxlc3MgZmllbGRzLiBVbmNoZWNrIHRoaXMgaWYgeW91IHdhbnQgdG8gYWxsb3cgbmFtZWxlc3MgZmllbGRzLjwvbGk+DQo8bGk+VW5pcXVlIEZpZWxkIE5hbWVzLiBUeXBpY2FsbHksIHlvdSB3aWxsIHdhbnQgZm9ybSBmaWVsZHMgdG8gaGF2ZSB1bmlxdWUgbmFtZXMgc28geW91IGNhbiB0ZWxsIHdoaWNoIGlzIHdoaWNoLiBVbmNoZWNrIHRoaXMgaWYgeW91IHdhbnQgdG8gYWxsb3cgZmllbGRzIHRvIHNoYXJlIG5hbWVzLjwvbGk+DQo8bGk+VXNlIHJlbGF4ZWQgZW1haWwgdmFsaWRhdGlvbi4gVGhpcyB1c2VzIGEgbGVzcyByZXN0cmljdGl2ZSByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHZhbGlkYXRpbmcgZW1haWw7IGUuZy4sIHhAeSB3aWxsIGJlIGFsbG93ZWQsIHdoZXJlIHR5cGljYWxseSB4QHkudGxkIGlzIHJlcXVpcmVkLjwvbGk+DQo8bGk+U2hvdyBGb3JtIEJ1aWxkZXIgVmVyc2lvbi4gRGlzcGxheXMgdGhlIHZlcnNpb24gb2YgRm9ybUJ1aWxkZXIgeW91JiMwMzk7cmUgdXNpbmcgaW4gYSBjb21tZW50IHdoZW4gdGhlIGZvcm0gaXMgZ2VuZXJhdGVkLiBUeXBpY2FsbHkgb25seSB1c2VmdWwgd2hlbiBkZWJ1Z2dpbmcuPC9saT4NCjxsaT5FbmFibGUgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcy4gV2hlbiB0dXJuZWQgb24sIHRoaXMgYWxsb3dzIGFueSBnaXZlbiBJUCBhZGRyZXNzIHRvIG9ubHkgZ2VuZXJhdGUgMTAgZW1haWxzIHBlciBob3VyLjwvbGk+DQo8bGk+U2hvdyBGaWVsZCBJRHMuIFdoZW4gdHVybmVkIG9uLCBGb3JtQnVpbGRlciB3aWxsIGRpc3BsYXkgZmllbGQgaWRzIHdoZW4gYWRkaW5nIG9yIGVkaXRpbmcgYSBmb3JtLjwvbGk+DQo8L3VsPg0KPGgzPlN0eWxpbmcgYW5kIENTUzwvaDM+DQo8cD5QYXVsIE5vb25lIGdyYWNpb3VzbHkgcHJvdmlkZXMgdXMgYWxsIHdpdGggYSBwcmV0dHkgZ29vZCBzdGFuZGFyZCBDU1MgdGhhdCB5b3UgY2FuIHVzZSBmb3IgZm9ybXM6PC9wPg0KPHByZT4NCgkvKiBTYW1wbGUgRm9ybUJ1aWxkZXIgQ1NTIGJhc2UgKi8NCglmb3JtIHttYXJnaW4tdG9wOjB9DQoJZm9ybSwgdGQsIHRoLCBsaSB7IGZvbnQtc2l6ZTogMTAwJX0NCglmb3JtIGRpdiB7bWFyZ2luLWJvdHRvbTowfQ0KCWZpZWxkc2V0IGRpdiB7DQoJCW1hcmdpbi1ib3R0b206MC41ZW07DQoJCW1hcmdpbi1sZWZ0OjFlbTsNCgl9DQoJZmllbGRzZXQgZGl2IGRpdiB7DQoJCW1hcmdpbi10b3A6MC41ZW07DQoJCW1hcmdpbi1sZWZ0OjFlbQ0KCX0NCglmaWVsZHNldCB7DQoJCW1hcmdpbi1ib3R0b206MWVtOw0KCQlib3JkZXI6MXB4IHNvbGlkICNGNjA7DQoJCXBhZGRpbmc6MC41ZW0NCgl9DQoJZmllbGRzZXQgbGFiZWwgew0KCQl3aWR0aDphdXRvOw0KCX0NCglsZWdlbmQgew0KCQljb2xvcjojRkZGOw0KCQliYWNrZ3JvdW5kOiNGNjA7DQoJCWZvbnQtc3R5bGU6aXRhbGljOw0KCQlmb250LXNpemU6MS4yZW07DQoJCW1hcmdpbi1ib3R0b206MC41ZW07DQoJCXBhZGRpbmc6MC4yZW07DQoJCXdpZHRoOmF1dG87DQoJCWJvcmRlcjoxcHggc29saWQgI0NDQw0KCX0NCgl0ZXh0YXJlYSB7DQoJCW1hcmdpbjogMC41ZW0gMDsNCgkJd2lkdGg6OTglOw0KCQloZWlnaHQ6IDZlbQ0KCX0NCg0KCS8qIEFwcGx5IHRoaXMgY2xhc3MgdG8gdGV4dC9zZWxlY3QgaW5wdXQgZmllbGRzIHdpdGggc2hvcnRlciBsYWJlbHMNCgkJdG8gaGVscCBhbGlnbm1lbnQgKi8NCgkuc2hvcnQtbGFiZWwgbGFiZWwge2Zsb2F0OmxlZnQ7IHdpZHRoOjEwZW19DQoJLnNob3J0LWxhYmVsIGZpZWxkc2V0IGRpdiBpbnB1dCwNCgkuc2hvcnQtbGFiZWwgZmllbGRzZXQgZGl2IHNlbGVjdCB7d2lkdGg6MTZlbX0NCg0KCS8qIFByZXR0eSB1cCB5b3VyIENhcHRjaGEgaW1hZ2Ugb3V0cHV0ICovDQoJLmNhcHRjaGEgew0KCQltYXJnaW46MC41ZW0gMDsNCgkJd2lkdGg6MjAwcHg7DQoJCXRleHQtYWxpZ246Y2VudGVyDQoJfQ0KCS5jYXB0Y2hhIGltZyB7Ym9yZGVyOjFweCBzb2xpZCAjRjYwOyBtYXJnaW4tYm90dG9tOjAuNWVtfQ0KCS5jYXB0Y2hhIGlucHV0IHt3aWR0aDoxOTZweDsgbWFyZ2luLXRvcDowLjVlbX0NCg0KCS8qIEp1c3QgYSBiaXQgbW9yZSByb29tIGZvciB0aGUgU3VibWl0IGJ1dHRvbiAqLw0KCS5zdWJtaXQge21hcmdpbi10b3A6MC41ZW19DQo8L3ByZT4NCg0KPGgzPkZvcm0gVGVtcGxhdGUgVmFyaWFibGVzPC9oMz4NCg0KPGgzPkZvcm0gVGVtcGxhdGUgVmFyaWFibGVzPC9oMz4NCjxwPllvdSBjYW4gZWRpdCBpdCB0byBtYWtlIHlvdXIgZm9ybSBsYXlvdXQgbG9vayBhbnkgd2F5IHlvdSYjMDM5O2QgbGlrZS4NCiAgIFRvIG1ha2UgdGhlIGZvcm0gd29yaywgeW91JiMwMzk7bGwgbmVlZCB0byBhbHdheXMgaW5jbHVkZSB0aGUgJmFtcDsjMTIzOyRmYl9oaWRkZW59IGFuZCAmYW1wOyMxMjM7JHN1Ym1pdH0NCiAgIHRhZ3MuPC9wPg0KDQo8cD5Zb3UgY2FuIGFjY2VzcyB5b3VyIGZvcm0gZmllbGRzIGVpdGhlciB1c2luZyB0aGUgJGZpZWxkcyBhcnJheSBvciBieSBkaXJlY3RseSBhY2Nlc3NpbmcgZmllbGRzIGJ5IHRoZWlyIG5hbWVzIChlLmcuLCAmYW1wOyMxMjM7JG15ZmllbGQtPmlucHV0fSApPC9wPg0KDQoNCjxwPkVhY2ggZmllbGQgaGFzIHRoZSBmb2xsb3dpbmcgYXR0cmlidXRlczo8L3A+DQo8dGFibGU+DQo8dHI+PHRoPkZpZWxkPC90aD48dGg+VmFsdWU8L3RoPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5kaXNwbGF5PC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgc2hvdWxkIGJlIGRpc3BsYXllZCwgMCBvdGhlcndpc2U8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5yZXF1aXJlZDwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIGlzIHJlcXVpcmVkLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPnJlcXVpcmVkX3N5bWJvbDwvdGQ+PHRkPnRoZSBzeW1ib2wgZm9yIHJlcXVpcmVkIGZpZWxkczwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmNzc19jbGFzczwvdGQ+PHRkPnRoZSBDU1MgY2xhc3Mgc3BlY2lmaWVkIGZvciB0aGlzIGZpZWxkPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+dmFsaWQ8L3RkPjx0ZD4xIGlmIHRoaXMgZmllbGQgaGFzIHBhc3NlZCB2YWxpZGF0aW9uLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmVycm9yPC90ZD48dGQ+VGV4dCBvZiB0aGUgdmFsaWRhdGlvbiBwcm9ibGVtLCBpbiB0aGUgZXZlbnQgdGhhdCB0aGlzIGZpZWxkIGRpZCBub3QgdmFsaWRhdGU8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5oaWRlX25hbWU8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBuYW1lIHNob3VsZCBiZSBoaWRkZW4sIDAgb3RoZXJ3aXNlPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aGFzX2xhYmVsPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgdHlwZSBoYXMgYSBsYWJlbDwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPm5lZWRzX2RpdjwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIG5lZWRzIHRvIGJlIHdyYXBwZWQgaW4gYSBESVYgKG9yIHRhYmxlIHJvdywgaWYgdGhhdCYjMDM5O3MgdGhlIHdheSB5b3Ugc3dpbmcpPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+bmFtZTwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgbmFtZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmlucHV0PC90ZD48dGQ+dGhlIGZpZWxkJiMwMzk7cyBpbnB1dCBjb250cm9sIChlLmcuLCB0aGUgaW5wdXQgZmllbGQgaXRzZWxmKTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPm9wPC90ZD48dGQ+YSBjb250cm9sIGJ1dHRvbiBhc3NvY2lhdGVkIHdpdGggdGhlIGZpZWxkIGlmIGFwcGxpY2FibGUgKGUuZy4sIHRoZSBkZWxldGUgYnV0dG9uIGZvciBleHBhbmRhYmxlIHRleHQgaW5wdXQpPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aW5wdXRfaWQ8L3RkPjx0ZD50aGUgSUQgb2YgdGhlIGZpZWxkJiMwMzk7cyBpbnB1dCAodXNlZnVsIGZvciA8bGFiZWwgZm9yPSZxdW90OyZxdW90Oz4pPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+dHlwZTwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgZGF0YSB0eXBlPC90ZD48L3RyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCjx0cj48dGQ+ZmllbGQtPm11bHRpcGxlX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQtPmlucHV0IGlzIGFjdHVhbGx5IGEgY29sbGVjdGlvbiBvZiBjb250cm9sczwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmxhYmVsX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgY29sbGVjdGlvbiBvZiBjb250cm9scyBoYXMgc2VwYXJhdGUgbGFiZWxzIGZvciBlYWNoIGNvbnRyb2w8L3RkPjwvdHI+DQo8L3RhYmxlPg0KDQo8cD5JbiBjZXJ0YWluIGNhc2VzLCBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYW4gYXJyYXkgb2Ygb2JqZWN0cyByYXRoZXIgdGhhbiBhbiBpbnB1dC4gVGhpcyBoYXBwZW5zLCBmb3IgZXhhbXBsZSwgaW4gQ2hlY2tCb3hHcm91cHMgb3IgUmFkaW9CdXR0b25Hcm91cHMuIEZvciB0aGVtLCB5b3UgY2FuIGl0ZXJhdGUgdGhyb3VnaCBmaWVsZC0+aW5wdXQtPm5hbWUgYW5kIGZpZWxkLT5pbnB1dC0+aW5wdXRzLjwvcD4NCiAgICANCjxwPkFkZGl0aW9uYWwgc21hcnR5IHZhcmlhYmxlcyB0aGF0IHlvdSBjYW4gdXNlIGluY2x1ZGU6PC9wPg0KPHRhYmxlPg0KPHRyPjx0aD5WYXJpYWJsZTwvdGg+PHRoPlZhbHVlPC90aD48L3RyPg0KPHRyPjx0ZD50b3RhbF9wYWdlczwvdGQ+PHRkPm51bWJlciBvZiBwYWdlcyBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+dGhpc19wYWdlPC90ZD48dGQ+bnVtYmVyIGZvIHRoZSBjdXJyZW50IHBhZ2UgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPnRpdGxlX3BhZ2VfeF9vZl95PC90ZD48dGQ+ZGlzcGxheXMgJnF1b3Q7cGFnZSB4IG9mIHkmcXVvdDsgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPmNzc19jbGFzczwvdGQ+PHRkPkNTUyBDbGFzcyBmb3IgdGhlIGZvcm08L3RkPjwvdHI+DQo8dHI+PHRkPmZvcm1fbmFtZTwvdGQ+PHRkPkZvcm0gbmFtZTwvdGQ+PC90cj4NCjx0cj48dGQ+Zm9ybV9pZDwvdGQ+PHRkPkZvcm0gZGF0YWJhc2UgSUQ8L3RkPjwvdHI+DQo8dHI+PHRkPnByZXY8L3RkPjx0ZD4mcXVvdDtCYWNrJnF1b3Q7IGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD5zdWJtaXQ8L3RkPjx0ZD4mcXVvdDtDb250aW51ZSZxdW90OyBvciAmcXVvdDtTdWJtaXQmcXVvdDsgYnV0dG9uIGZvciBtdWx0aXBhcnQgZm9ybXMsIGFkanVzdHMgYXV0b21hdGljYWxseTwvdGQ+PC90cj4NCjwvdGFibGU+DQo8cD5EdW5ubyB3aHkgeW91JiMwMzk7ZCB3YW50IHNvbWUgb2YgdGhvc2UsIGJ1dCB0aGVyZSB5b3UgZ28uLi48L3A+DQoNCg0KPGgzPktub3duIElzc3VlczwvaDM+DQo8dWw+DQo8bGk+Rm9ybUJ1aWxkZXIgaXMgbm90IHlldCBpbnRlZ3JhdGVkIHdpdGggRnJvbnRFbmQgVXNlcnMuIEl0IHdpbGwgYmUuPC9saT4NCjxsaT5Gb3JtQnVpbGRlciBjYW5ub3QgeWV0IGJlIGlubGluZWQuIFRoYXQgc2hvdWxkIGJlIGEgc2ltcGxlIHVwZ3JhZGUgZG93biB0aGUgbGluZS48L2xpPg0KPGxpPkZvcm1CdWlsZGVyIGRvZXMgbm90IHlldCBzdXBwb3J0IHByZXR0eSB1cmxzLCBhbHRob3VnaCB0aGF0IHNob3VsZG4mIzAzOTt0IG1hdHRlciBzaW5jZSB0aGUgdXNlciBzaWRlIGlzIHByZXR0eSBzaW1wbGUuPC9saT4NCjwvdWw+DQoNCjxoMz5Ucm91Ymxlc2hvb3Rpbmc8L2gzPg0KPG9sPjxsaT4gRmlyc3Qgc3RlcCBpcyB0byBjaGVjayB5b3UmIzAzOTtyZSBydW5uaW5nIENNUyAxLjEgb3IgbGF0ZXIuPC9saT4NCjxsaT4gU2Vjb25kIHN0ZXAgaXMgdG8gcmVhZCBhbmQgdW5kZXJzdGFuZCB0aGUgY2F2ZWF0IGFib3V0IFdZU0lXWUcgZWRpdG9ycyB1cCBpbiB0aGUNCnNlY3Rpb24gPGVtPkFkZGluZyBhIEZvcm0gdG8gYSBQYWdlPC9lbT4uPC9saT4NCjxsaT4gSWYgeW91JiMwMzk7cmUgbWlzc2luZyBmaWVsZHMgaW4gYW4gZW1haWwgdGhhdCBnZXRzIGdlbmVyYXRlZCwgY2hlY2sgdGhlIGRpc3Bvc2l0aW9uIGZpZWxkJiMwMzk7cyB0ZW1wbGF0ZSwgYW5kIG1ha2Ugc3VyZSB5b3UmIzAzOTtyZSBzcGVjaWZ5aW5nIHRoZSBtaXNzaW5nIGZpZWxkcy4gU2VlbXMgb2J2aW91cywgYnV0IGl0JiMwMzk7cyBhbiBlYXN5IG1pc3Rha2UgdG8gbWFrZS48L2xpPg0KPGxpPlVuY2hlY2sgdGhlICZxdW90O0hpZGUgRXJyb3JzJnF1b3Q7IGNoZWNrYm94IGluIHRoZSBnbG9iYWwgb3B0aW9ucywgYW5kIHNlZSB3aGF0IG1lc3NhZ2UgZ2V0cyBkaXNwbGF5ZWQgd2hlbiB5b3Ugc3VibWl0IHlvdXIgZm9ybS48L2xpPg0KPGxpPiBKdXN0IG1lc3MgYXJvdW5kIGFuZCB0cnkgY2xpY2tpbmcgb24gbGlua3MgYW5kIGljb25zIGFuZCBzdHVmZi4gU2VlIHdoYXQgaGFwcGVucy48L2xpPg0KPGxpPiBMYXN0IHJlc3BvcnQgaXMgdG8gZW1haWwgbWUgb3IgY2F0Y2ggbWUgb24gSVJDIGFuZCB3ZSBjYW4gZ28gZnJvbSB0aGVyZS48L2xpPg0KPC9vbD4gDQo8cD5UaGlzIGlzIG5vIGxvbmdlciBhIHBhcnRpY3VsYXJseSBlYXJseSB2ZXJzaW9uLCBidXQgaXQgaXMgcHJvYmFibHkgc3RpbGwgYnVnZ3kuIFdoaWxlIEkmIzAzOTt2ZSBkb25lIGFsbCBJIGNhbg0KdG8gbWFrZSBzdXJlIG5vIGVncmVnaW91cyBidWdzIGhhdmUgY3JlcHQgaW4sIEkgaGF2ZSB0byBhZG1pdCB0aGF0IGR1cmluZyBlYXJseSB0ZXN0aW5nLCB0aGlzIHByb2dyYW0NCnJldmVhbGVkIHNldmVuIGNvY2tyb2FjaGVzLCB0d28gZWFyd2lncywgYSBzbWFsbCBmYW1pbHkgb2YgYXBoaWRzLCBhbmQgYSB3YWxraW5nLXN0aWNrIGluc2VjdC4gSXQgYWxzbw0KYXRlIHRoZSBuZWlnaGJvciYjMDM5O3MgbmFzdHkgbGl0dGxlIHlhcCBkb2csIGZvciB3aGljaCBJIHdhcyBpbmFwcHJvcHJpYXRlbHkgZ3JhdGVmdWwuPC9wPg0KPHA+VGhlIGZpbmFsIHJlbGVhc2Ugd2lsbCBpbmNsdWRlIGJ1ZyBmaXhlcywgZG9jdW1lbnRhdGlvbiwgYW5kIHVuY29uZGl0aW9uYWwgbG92ZS48L3A+DQo8aDM+U3VwcG9ydDwvaDM+DQo8cD5UaGlzIG1vZHVsZSBkb2VzIG5vdCBpbmNsdWRlIGNvbW1lcmNpYWwgc3VwcG9ydC4gSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+DQo8dWw+DQo8bGk+Rm9yIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIG1vZHVsZSwgRkFRcywgb3IgdG8gZmlsZSBhIEJ1ZyBSZXBvcnQsIHBsZWFzZSB2aXNpdCB0aGUgQ01TIE1hZGUgU2ltcGxlICA8YSBocmVmPSZxdW90O2h0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcmcXVvdDs+RGV2ZWxvcGVyIEZvcmdlPC9hPi48L2xpPg0KPGxpPlRvIG9idGFpbiBjb21tZXJjaWFsIHN1cHBvcnQsIHBsZWFzZSBzZW5kIGFuIGVtYWlsIHRvIHRoZSBhdXRob3IgYXQgPGEgaHJlZj0mcXVvdDttYWlsdG86c2pnQGNtc21vZHVsZXMuY29tJnF1b3Q7PiZhbXA7bHQ7c2pnQGNtc21vZHVsZXMuY29tJmFtcDtndDs8L2E+LjwvbGk+DQo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSZxdW90O2h0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyZxdW90Oz5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi48L2xpPg0KPGxpPlRoZSBhdXRob3IgY2FuIG9mdGVuIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSZxdW90O2lyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2NtcyZxdW90Oz5DTVMgSVJDIENoYW5uZWw8L2E+LjwvbGk+DQo8bGk+TGFzdGx5LCB5b3UgbWF5IGhhdmUgc29tZSBzdWNjZXNzIGVtYWlsaW5nIHRoZSBhdXRob3IgZGlyZWN0bHkgYW5kIGdyb3ZlbGxpbmcgZm9yIGZyZWUgc3VwcG9ydC48L2xpPg0KPC91bD4NCjxwPkFzIHBlciB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkIGFzLWlzLiBQbGVhc2UgcmVhZCB0aGUgdGV4dA0Kb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuPC9wPg0KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+DQo8cD5Db3B5cmlnaHQgJmFtcDtjb3B5OyAyMDA3LCBTYW11ZWwgR29sZHN0ZWluIDxhIGhyZWY9JnF1b3Q7bWFpbHRvOnNqZ0BjbXNtb2R1bGVzLmNvbSZxdW90Oz4mYW1wO2x0O3NqZ0BjbXNtb2R1bGVzLmNvbSZhbXA7Z3Q7PC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPg0KPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9JnF1b3Q7aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMJnF1b3Q7PkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+JzsKJGxhbmdbJ2NoYW5nZWxvZyddID0gJzx1bD4NCjxsaT5WZXJzaW9uIDAuNA0KCTx1bD4NCgkJPGxpPlVwcGVkIG1pbmltdW0gQ01TIHZlcnNpb24gdG8gMS4xPC9saT4NCgkJPGxpPk51bWVyb3VzIEJ1ZyBmaXhlczsgdG9vIG1hbnkgdG8gZW51bWVyYXRlIGhlcmU8L2xpPg0KCQk8bGk+TWFzc2l2ZSByZWppZ2dlcmluZyBvZiBjb2RlIHRvIHdvcmsgd2l0aCBDTVMgTVMgMS4xIHBhcmFtZXRlciBzYW5pdGl6aW5nIHJlZ2ltZTwvbGk+DQoJCTxsaT5BZGRlZCBmaWVsZCB0eXBlczogJnF1b3Q7VGV4dEZpZWxkIChNdWx0aXBsZSkmcXVvdDsgYW5kICZxdW90O0NvbXB1dGVkIEZpZWxkJnF1b3Q7PC9saT4NCgkJPGxpPkFkZGVkIGRpc3Bvc2l0aW9uczogJnF1b3Q7U2F2ZSBSZXN1bHRzIHRvIEZpbGUgQmFzZWQgb24gUHVsbGRvd24mcXVvdDsgYW5kICZxdW90O1NhdmUgUmVzdWx0cyB0byBGaWxlKHMpIEJhc2VkIG9uIE11bHRpcGxlIFNlbGVjdGlvbnMmcXVvdDsoQ2FsZ3V5KTwvbGk+DQoJCTxsaT5BZGRlZCBuZWF0LW8gQUpBWC15IHRlbXBsYXRlLWNvcHlpbmcgZm9yIEZvcm0gVGVtcGxhdGVzLCBnYXZlIHZlcnNpb25zIG9mIG9sZCB0YWJsZS1iYXNlZCB0ZW1wbGF0ZXMgdG8gc29vdGhlIHRoZSByYWdpbmcgbWFzc2VzLjwvbGk+DQoJCTxsaT5BZGRlZCBhYmlsaXR5IHRvIHBhc3MgZGVmYXVsdCB2YWx1ZXMgdG8gZm9ybSBlbGVtZW50cyBmcm9tIG1vZHVsZSB0YWcgdXNpbmcgdmFsdWVfRklFTEROQU1FPSZxdW90O3ZhbHVlJnF1b3Q7IHN5bnRheCAoQ2FsZ3V5KTwvbGk+DQoJCTxsaT5BZGRlZCBvcHRpb24gdG8gZGlzcGxheSBmaWVsZCBpZHMgaW4gYWRtaW4gKENhbGd1eSk8L2xpPg0KCTwvdWw+DQo8L2xpPg0KPGxpPlZlcnNpb24gMC4zDQogICA8dWw+DQogICAgICA8bGk+QWRkZWQgQ2FwdGNoYSBtb2R1bGUgc3VwcG9ydC48L2xpPg0KICAgICAgPGxpPlJld29ya2VkIGxhYmVsaW5nIG9mIGZvcm0gZWxlbWVudHMgdG8gYmUgWEhUTUwgY29tcGxpYW50PC9saT4NCiAgICAgIDxsaT5BZGRlZCBQYXVsIE5vb25lJiMwMzk7cyBuZXcsIGltcHJvdmVkIGNvbnRhY3QgZm9ybSB0ZW1wbGF0ZXM8L2xpPg0KICAgICAgPGxpPkltcGxlbWVudGF0aW9uIG9mIEVtYWlsIFN1YmplY3QgRmllbGQ8L2xpPg0KICAgICAgPGxpPkFkZGVkIGFkbWluLXNwZWNpZmlhYmxlIHZhbHVlcyB0byBoaWRkZW4gZmllbGQgdHlwZSwgd2hpY2ggbWF5IGNvbnRhaW4gcGFyc2FibGUgc21hcnR5IHRhZ3M8L2xpPg0KICAgICAgPGxpPlRleHQgQXJlYSBGaWVsZCBub3cgYWxsb3dzIHNwZWNpZmljYXRpb24gb2Ygcm93cyBhbmQgY29scyBpbiB0aGUgYWRtaW4sIGluc3RlYWQgb2YgQ1NTPC9saT4NCiAgICAgIDxsaT5BZGRlZCBEcmFnJiMwMzk7biYjMDM5O0Ryb3AgcmVvcmRlcmluZyBvZiBmb3JtIGZpZWxkcy48L2xpPg0KICAgICAgPGxpPkFkZGVkIG5vbi1ibGFuayBmaWVsZCBuYW1lIGFuZCB1bmlxdWUgZmllbGQgbmFtZSBnbG9iYWwgY29uZmlndXJhdGlvbiBvcHRpb25zIGFuZCB2YWxpZGF0aW9uPC9saT4NCiAgICAgIDxsaT5JbXBsZW1lbnRlZCB0ZW1wbGF0ZWQgZGlzcGxheSBvZiBmb3JtIHJlc3VsdHMgdXBvbiBzdWJtaXNzaW9uIGluIGFkZGl0aW9uIHRvIHBhZ2UgcmVkaXJlY3Rpbmc8L2xpPg0KICAgICAgPGxpPjwvbGk+DQogICA8L3VsPg0KPC9saT4NCjxsaT5WZXJzaW9uIDAuMi40IC0gMDkgTWF5IDIwMDcNCiAgIDxwPkJpZyByZWxlYXNlOjx1bD4NCiAgIDxsaT5BZGRlZCAmcXVvdDtFbWFpbCBGb3JtIHRvIFVzZXItU3VwcGxpZWQgQWRkcmVzcyZxdW90OyBkaXNwb3NpdGlvbi48L2xpPg0KICAgPGxpPkFkZGVkICZxdW90O1RpbWVQaWNrZXImcXVvdDsgZmllbGQgdHlwZS4gU3BsaXQgJnF1b3Q7TGluayZxdW90OyBmaWVsZCBpbnRvIGEgJnF1b3Q7VXNlci1zdXBwbGllZCBMaW5rJnF1b3Q7IGZpZWxkIGFuZCBhICZxdW90O1N0YXRpYyBMaW5rJnF1b3Q7IGZpZWxkLjwvbGk+DQogICA8bGk+QWRkZWQgSFRNTCBlbWFpbCBvcHRpb24gYW5kIGF1dG8tdGVtcGxhdGVzIGZvciBhbGwgZW1haWwgZGlzcG9zaXRpb25zLjwvbGk+DQogICA8bGk+QWRkZWQgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcy48L2xpPg0KICAgPGxpPkFkZGVkIFhNTC1iYXNlZCBpbXBvcnQgYW5kIGV4cG9ydCBvZiBmb3Jtcy48L2xpPg0KICAgPC91bD4NCiAgIDwvcD4NCjwvbGk+DQo8bGk+VmVyc2lvbiAwLjIuMw0KICAgPHA+QWRkIHRoZSBhYmlsaXR5IHRvIGNhbGwgYSBzZWxlY3RhYmxlIHVzZXIgZGVmaW5lZCB0YWcgdXBvbiBkaXNwb3NpdGlvbiBvZiB0aGUgZm9ybS48L3A+DQo8L2xpPg0KPGxpPlZlcnNpb24gMC4yLjINCiAgIDxwPk1hbnkgdGhhbmtzIHRvIFV0dGVyIERlc2lnbiBmb3Igc3BvbnNvcmluZyBzb21lIGNoYW5nZXMgYW5kIGJ1Z2ZpeGVzLCB3aGljaCBpbmNsdWRlOg0KICAgPHVsPg0KICAgICAgPGxpPkFkZGVkIGZpbGUgdXBsb2FkIGNhcGFiaWxpdGllcyB0byB0aGUgZW1haWwgZGlzcG9zaXRpb248L2xpPg0KICAgICAgPGxpPkFkZCBQYWdlU2V0U3RhcnQgYW5kIFBhZ2VTZXRFbmQgZmllbGQgdHlwZXMNCiAgICAgIDxwPlRoZXNlIGZpZWxkIHR5cGVzIGFsbG93IHlvdSB0byBjcmVhdGUgZmllbGRzZXRzIGluIHlvdXIgZm9ybSwgYW5kIG9yZ2FuaXNlDQogICAgICB5b3VyIGZpZWxkcyBsb2dpY2FsbHkgZm9yIHRoZSB1c2VyLiAgWW91IGNhbiBldmVuIG5lc3QgZmllbGRzZXRzLCBhbmQNCiAgICAgIGFzc29jaWF0ZSBhIHN0eWxlIHdpdGggdGhlbSBhcHByb3ByaWF0ZWx5LiAgVGhlIGRlZmF1bHQgdGVtcGxhdGUgd2FzIGNoYW5nZWQNCiAgICAgIHRvIHByZXZlbnQgaXQgZnJvbSB3cmFwcGluZyBhIGRpdiBhcm91bmQgdGhlc2UgdHlwZXMgb2YgZmllbGRzLg0KICAgICAgPC9wPg0KICAgICAgPC9saT4NCiAgICAgIDxsaT5GaXhlZCBhIHByb2JsZW0gd2l0aCBEQVRFVElNRSBmaWVsZHMgb24gaW5zdGFsbA0KICAgICAgPHA+VGhpcyBzb2x2ZXMgYSBwcm9ibGVtIHdoZW4gb24gaW5zdGFsbCB0aGUgcmVzcG9uc2UgdGFibGUgd291bGQgc29tZXRpbWVzIG5vdCBnZXQgY3JlYXRlZCB3aGVuIHVzaW5nIGFkb2RiIGxpdGU8L2xpPg0KICAgICAgPC9saT4NCiAgIDwvdWw+DQogICA8L3A+DQo8L2xpPg0KPGxpPlZlcnNpb24gMC4yIC0gMTQgTm92ZW1iZXIgMjAwNi4gQ2FsZ3V5ICZhbXA7YW1wOyB0c3cmIzAzOTtzIGJ1ZyBmaXhlcyBmb3IgZmllbGQgcmUtb3JkZXJpbmcgYW5kIGN1c3RvbSB0ZW1wbGF0ZXMuIEFkZGl0aW9uYWwgYnVnIGZpeGVzIGZvciBmaWVsZCBsYWJlbHMuPC9saT4NCjxsaT5WZXJzaW9uIDAuMSAtIDggSnVseSAyMDA2LiBJbml0aWFsIFJlbGVhc2U8L2xpPg0KPC91bD4NCic7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjExODUxMDg2NTkuMS4xLnV0bWNjbj0oZGlyZWN0KXx1dG1jc3I9KGRpcmVjdCl8dXRtY21kPShub25lKSc7CiRsYW5nWyd1dG1hJ10gPSAnMTU2ODYxMzUzLjE1ODEwNDM1MjIuMTE4NTEwODY1OS4xMTg5NjYxMzk0LjExODk3MTAzMzAuNDUnOwokbGFuZ1sndXRtYiddID0gJzE1Njg2MTM1Myc7CiRsYW5nWyd1dG1jJ10gPSAnMTU2ODYxMzUzJzsKPz4=]]></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/0YDQsNCy0LjRgtGMJzsKJGxhbmdbJ2J1dHRvbl9jb250aW51ZSddID0gJ0NvbnRpbnVlLi4uJzsKJGxhbmdbJ3ZhbHVlX2NoZWNrZWQnXSA9ICdDaGVja2VkJzsKJGxhbmdbJ3ZhbHVlX3VuY2hlY2tlZCddID0gJ1VuY2hlY2tlZCc7CiRsYW5nWydhZGRfb3B0aW9ucyddID0gJ0FkZCBNb3JlIE9wdGlvbnMnOwokbGFuZ1snZGVsZXRlX29wdGlvbnMnXSA9ICdEZWxldGUgTWFya2VkIE9wdGlvbnMnOwokbGFuZ1snYWRkX2NoZWNrYm94ZXMnXSA9ICdBZGQgTW9yZSBDaGVja2JveGVzJzsKJGxhbmdbJ2RlbGV0ZV9jaGVja2JveGVzJ10gPSAnRGVsZXRlIE1hcmtlZCBDaGVja2JveGVzJzsKJGxhbmdbJ2FkZF9hZGRyZXNzJ10gPSAnQWRkIEFub3RoZXIgQWRkcmVzcyc7CiRsYW5nWydkZWxldGVfYWRkcmVzcyddID0gJ0RlbGV0ZSBNYXJrZWQgQWRkcmVzc2VzJzsKJGxhbmdbJ2FkZF9kZXN0aW5hdGlvbiddID0gJ0FkZCBBbm90aGVyIERlc3RpbmF0aW9uJzsKJGxhbmdbJ2RlbGV0ZV9kZXN0aW5hdGlvbiddID0gJ0RlbGV0ZSBNYXJrZWQgRGVzdGluYXRpb25zJzsKJGxhbmdbJ3RpdGxlX3VkdF9uYW1lJ10gPSAnVXNlciBEZWZpbmVkIFRhZyc7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2Rlc3RwYWdlJ10gPSAnUGFnZSB0byByZXR1cm4gdG8gd2l0aCB1cGxvYWRzIGxpbmsnOwokbGFuZ1sndGl0bGVfdXBsb2FkbW9kdWxlX3N1bW1hcnknXSA9ICdTdWJtaXR0ZWQgd2l0aCBmb3JtYnVpbGRlcic7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2NhdGVnb3J5J10gPSAnVXBsb2FkcyBjYXRlZ29yeSc7CiRsYW5nWyd0aXRsZV9zZW5kdG9fdXBsb2FkcyddID0gJ1NlbmQgdGhpcyBmaWxlIHRvIHRoZSB1cGxvYWRzIG1vZHVsZSc7CiRsYW5nWyd0aXRsZV9sZWdlbmQnXSA9ICdMZWdlbmQnOwokbGFuZ1sndGl0bGVfbWF4aW11bV9sZW5ndGgnXSA9ICdNYXhpbXVtIExlbmd0aCc7CiRsYW5nWyd0aXRsZV9jaGVja2JveF9sYWJlbCddID0gJ0NoZWNrYm94IGxhYmVsJzsKJGxhbmdbJ3RpdGxlX2NoZWNrZWRfdmFsdWUnXSA9ICdWYWx1ZSB3aGVuIGNoZWNrZWQnOwokbGFuZ1sndGl0bGVfdW5jaGVja2VkX3ZhbHVlJ10gPSAnVmFsdWUgd2hlbiBub3QgY2hlY2tlZC4nOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfZGV0YWlscyddID0gJ0NoZWNrYm94IEdyb3VwIERldGFpbHMnOwokbGFuZ1sndGl0bGVfZGVsZXRlJ10gPSAnRGVsZXRlPyc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rfb25lX21lc3NhZ2UnXSA9ICciU2VsZWN0IE9uZSIgVGV4dCc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fc3ViamVjdCddID0gJ1NlbGVjdGlvbiBTdWJqZWN0JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X2NvdW50cnknXSA9ICdEZWZhdWx0IFNlbGVjdGlvbic7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9zdGF0ZSddID0gJ0RlZmF1bHQgU2VsZWN0aW9uJzsKJGxhbmdbJ3RpdGxlX29wdGlvbl9uYW1lJ10gPSAnT3B0aW9uIE5hbWUnOwokbGFuZ1sndGl0bGVfb3B0aW9uX3ZhbHVlJ10gPSAnVmFsdWUgU3VibWl0dGVkJzsKJGxhbmdbJ3RpdGxlX3B1bGxkb3duX2RldGFpbHMnXSA9ICdQdWxsZG93biBPcHRpb25zJzsKJGxhbmdbJ3RpdGxlX211bHRpc2VsZWN0X2RldGFpbHMnXSA9ICdNdWx0aXNlbGVjdCBPcHRpb25zJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2FkZHJlc3MnXSA9ICdEZXN0aW5hdGlvbiBFbWFpbCBBZGRyZXNzJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fbmFtZSddID0gJyJGcm9tIG5hbWUiIGZvciBlbWFpbCc7CiRsYW5nWyd0aXRsZV9yZWxheGVkX2VtYWlsX3JlZ2V4J10gPSAnVXNlIHJlbGF4ZWQgZW1haWwgdmFsaWRhdGlvbic7CiRsYW5nWyd0aXRsZV9yZWxheGVkX3JlZ2V4X2xvbmcnXSA9ICdVc2UgcmVsYXhlZCBlbWFpbCBhZGRyZXNzIHZhbGlkYXRpb24gKGUuZy4sIGFsbG93ICJ4QHkiIGluc3RlYWQgb2YgcmVxdWlyaW5nICJ4QHkudGxkIiknOwokbGFuZ1sndGl0bGVfZW1haWxfZnJvbV9hZGRyZXNzJ10gPSAnIkZyb20gYWRkcmVzcyIgZm9yIGVtYWlsJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2VuY29kaW5nJ10gPSAnRW1haWwgY2hhcmFjdGVyIHNldCBlbmNvZGluZyc7CiRsYW5nWyd0aXRsZV9kaXJlY3Rvcl9kZXRhaWxzJ10gPSAnUHVsbGRvd24tYmFzZWQgRW1haWxlciBEZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfbmFtZSddID0gJ0ZpbGUgTmFtZSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9zdWJqZWN0J10gPSAnRW1haWwgU3ViamVjdCBMaW5lJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmFtZSddID0gJ0Zvcm0gTmFtZSc7CiRsYW5nWyd0aXRsZV9mb3JtX3N0YXR1cyddID0gJ0Zvcm0gU3RhdHVzJzsKJGxhbmdbJ3RpdGxlX3JlYWR5X2Zvcl9kZXBsb3ltZW50J10gPSAnUmVhZHkgZm9yIERlcGxveW1lbnQnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MSddID0gJ05vdCBSZWFkeSc7CiRsYW5nWyd0aXRsZV9yZWRpcmVjdF9wYWdlJ10gPSAnUGFnZSB0byByZWRpcmVjdCB0byBhZnRlciBmb3JtIHN1Ym1pc3Npb24nOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MiddID0gJ1BsZWFzZSBhZGQgYSBmaWVsZCB0byB0aGUgZm9ybSBzbyB0aGF0IHRoZSB1c2VyXCdzIGlucHV0IGdldHMgaGFuZGxlZC4gWW91IGNhbic7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHlfbGluayddID0gJ3VzZSB0aGlzIHNob3J0Y3V0JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fYWxpYXMnXSA9ICdGb3JtIEFsaWFzJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fZmllbGRzJ10gPSAnRm9ybSBGaWVsZHMnOwokbGFuZ1sndGl0bGVfZmllbGRfbmFtZSddID0gJ0ZpZWxkIE5hbWUnOwokbGFuZ1sndGl0bGVfcmFkaW9ncm91cF9kZXRhaWxzJ10gPSAnUmFkaW8gQnV0dG9uIEdyb3VwIERldGFpbHMnOwokbGFuZ1sndGl0bGVfZmllbGRfdHlwZSddID0gJ0ZpZWxkIFR5cGUnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MyddID0gJ3RvIGNyZWF0ZSBhIGZvcm0gaGFuZGxpbmcgZmllbGQuJzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZm9ybSddID0gJ0FkZCBOZXcgRm9ybSc7CiRsYW5nWyd0aXRsZV9zaG93X3ZlcnNpb24nXSA9ICdTaG93IEZvcm0gQnVpbGRlciBWZXJzaW9uPyc7CiRsYW5nWyd0aXRsZV9zaG93X3ZlcnNpb25fbG9uZyddID0gJ1RoaXMgd2lsbCBlbWJlZCB5b3VyIGluc3RhbGxlZCB2ZXJzaW9uIG51bWJlciBvZiBGb3JtIEJ1aWxkZXIgbW9kdWxlIGluIGEgY29tbWVudCwgdG8gYWlkIGluIGRlYnVnZ2luZyc7CiRsYW5nWyd0aXRsZV9hZGRfbmV3X2ZpZWxkJ10gPSAnQWRkIE5ldyBGaWVsZCc7CiRsYW5nWyd0aXRsZV9mb3JtX3N1Ym1pdF9idXR0b24nXSA9ICdGb3JtIFN1Ym1pdCBCdXR0b24gVGV4dCc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eSddID0gJ0FkZCBKYXZhc2NyaXB0IHRvIFN1Ym1pdCBCdXR0b24gdG8gcHJldmVudCBtdWx0aXBsZSBzdWJtaXNzaW9ucz8nOwokbGFuZ1sndGl0bGVfc3VibWl0X2J1dHRvbl9zYWZldHlfaGVscCddID0gJ0FkZCBzYWZldHkgc2NyaXB0JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmV4dF9idXR0b24nXSA9ICdGb3JtICJOZXh0IiBCdXR0b24gVGV4dCAodXNlZCBmb3IgbXVsdGlwYWdlIGZvcm1zKSc7CiRsYW5nWyd0aXRsZV9mb3JtX3ByZXZfYnV0dG9uJ10gPSAnRm9ybSAiUHJldmlvdXMiIEJ1dHRvbiBUZXh0ICh1c2VkIGZvciBtdWx0aXBhZ2UgZm9ybXMpJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3ZhbGlkYXRpb24nXSA9ICdGaWVsZCBWYWxpZGF0aW9uJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fY3NzX2NsYXNzJ10gPSAnQ1NTIENsYXNzIGZvciB0aGlzIGZvcm0nOwokbGFuZ1sndGl0bGVfZmllbGRfY3NzX2NsYXNzJ10gPSAnQ1NTIENsYXNzIGZvciB0aGlzIGZpZWxkJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcmVxdWlyZWRfc3ltYm9sJ10gPSAnU3ltYm9sIHRvIG1hcmsgcmVxdWlyZWQgRmllbGRzJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkJ10gPSAnUmVxdWlyZWQnOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWRfbG9uZyddID0gJ1JlcXVpcmUgYSByZXNwb25zZSBmb3IgdGhpcyBGaWVsZCc7CiRsYW5nWyd0aXRsZV9oaWRlX2xhYmVsJ10gPSAnSGlkZSBMYWJlbCc7CiRsYW5nWyd0aXRsZV9oaWRlX2xhYmVsX2xvbmcnXSA9ICdIaWRlIHRoaXMgZmllbGRcJ3MgbmFtZSBvbiBGb3JtJzsKJGxhbmdbJ3RpdGxlX3RleHQnXSA9ICdTdGF0aWMgdGV4dCB0byBkaXNwbGF5JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlZ2V4J10gPSAnVmFsaWRhdGlvbiBSZWdleCc7CiRsYW5nWyd0aXRsZV9saW5lc190b19zaG93J10gPSAnTnVtYmVyIG9mIExpbmVzIHRvIGRpc3BsYXknOwokbGFuZ1snbm9fZGVmYXVsdCddID0gJ05vIERlZmF1bHQnOwokbGFuZ1sncmVkaXJlY3RfYWZ0ZXJfYXBwcm92YWwnXSA9ICdQYWdlIHRvIHJlZGlyZWN0IGFmdGVyIGFwcHJvdmFsJzsKJGxhbmdbJ3RpdGxlX3JlZ2V4X2hlbHAnXSA9ICdUaGlzIHJlZ3VsYXIgZXhwcmVzc2lvbiB3aWxsIG9ubHkgYmUgdXNlZCBpZiAidmFsaWRhdGlvbiB0eXBlIiBpcyBzZXQgdG8gYSByZWdleC1yZWxhdGVkIG9wdGlvbi4gSW5jbHVkZSBhIGZ1bGwgUGVybC1zdHlsZSByZWdleCwgaW5jbHVkaW5nIHRoZSBzdGFydC9zdG9wIHNsYXNoZXMgYW5kIGZsYWdzIChlLmcuLCAiL2ltYWdlXC4oXGQrKS9pIiknOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWRfYWJicmV2J10gPSAnUmVxXCdkJzsKJGxhbmdbJ3RpdGxlX3RpdGxlX3Bvc2l0aW9uJ10gPSAnRmllbGQgVGl0bGUgUG9zaXRpb24gKG5vbi1DU1MgTGF5b3V0IG9ubHkpJzsKJGxhbmdbJ3RpdGxlX3RhYmxlX2xheW91dF9sZWZ0J10gPSAnVGl0bGUgb24gTGVmdCc7CiRsYW5nWyd0aXRsZV90YWJsZV9sYXlvdXRfYWJvdmUnXSA9ICdUaXRsZSBBYm92ZSc7CiRsYW5nWyd0aXRsZV9oaWRlX2Vycm9ycyddID0gJ0hpZGUgRXJyb3JzJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fZGlzcGxheXR5cGUnXSA9ICdGb3JtIERpc3BsYXkgVHlwZSc7CiRsYW5nWyd0aXRsZV9oaWRlX2Vycm9yc19sb25nJ10gPSAnUHJldmVudCBkZWJ1ZyAvIGVycm9yIG1lc3NhZ2VzIGZyb20gYmVpbmcgc2VlbiBieSB1c2Vycy4nOwokbGFuZ1sndGl0bGVfZW1haWxfdGVtcGxhdGUnXSA9ICdFbWFpbCBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX3NpemUnXSA9ICdNYXhpbXVtIHVwbG9hZCBmaWxlIHNpemUgKGtpbG9ieXRlcyknOwokbGFuZ1sndGl0bGVfbWF4aW11bV9zaXplX2xvbmcnXSA9ICdUaGlzIGxpbWl0YXRpb24gaXMgaW4gYWRkaXRpb24gdG8gYW55IGxpbWl0cyBzZXQgYnkgdGhlIHBocCBvciB3ZWIgc2VydmVyIGNvbmZpZ3VyYXRpb24nOwokbGFuZ1sndGl0bGVfcGVybWl0dGVkX2V4dGVuc2lvbnMnXSA9ICdQZXJtaXR0ZWQgRXh0ZW5zaW9ucyc7CiRsYW5nWyd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9uc19sb25nJ10gPSAnRW50ZXIgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCwgZXhjbHVkaW5nIHRoZSBkb3QgKGUuZy4sICJqcGcsZ2lmLGpwZWciKS4gU3BhY2VzIHdpbGwgYmUgaWdub3JlZC4gTGVhdmluZyB0aGlzIGJsYW5rIG1lYW5zIHRoZXJlIHdpbGwgYmUgbm8gcmVzdHJpY3Rpb25zLic7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zJ10gPSAnRGlzcGxheSByZXN0cmljdGlvbnM/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnNfbG9uZyddID0gJ0Rpc3BsYXkgYW55IHNpemUgYW5kIGV4dGVuc2lvbiByZXN0cmljdGlvbnMgd2l0aCB0aGUgdXBsb2FkIGZpZWxkPyc7CiRsYW5nWyd0aXRsZV9mb3JtX3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgdG8gdXNlIHRvIERpc3BsYXkgRm9ybSc7CiRsYW5nWyd0aXRsZV9wYWdlX3hfb2ZfeSddID0gJ1BhZ2UgJXMgb2YgJXMnOwokbGFuZ1sndGl0bGVfbm9fYWR2YW5jZWRfb3B0aW9ucyddID0gJ0ZpZWxkIGhhcyBubyBhZHZhbmNlZCBvcHRpb25zLic7CiRsYW5nWyd0aXRsZV9mb3JtX3Vuc3BlY2lmaWVkJ10gPSAnVGV4dCB0byByZXR1cm4gZm9yIHVuc3BlY2lmaWVkIGZpZWxkIHZhbHVlcyc7CiRsYW5nWyd0aXRsZV9lbmFibGVfZmFzdGFkZF9sb25nJ10gPSAnRW5hYmxlIGZhc3QgZmllbGQgYWRkaW5nIHB1bGxkb3duIGZvciBmb3Jtcz8nOwokbGFuZ1sndGl0bGVfZW5hYmxlX2Zhc3RhZGQnXSA9ICdFbmFibGUgZmFzdCBmaWVsZCBhZGQgcHVsbGRvd24/JzsKJGxhbmdbJ3RpdGxlX2Zhc3RhZGQnXSA9ICdGYXN0IGZpZWxkIGFkZGVyJzsKJGxhbmdbJ2xpbmtfbGFiZWwnXSA9ICdMaW5rIExhYmVsJzsKJGxhbmdbJ2xpbmtfZGVzdGluYXRpb24nXSA9ICdMaW5rIERlc3RpbmF0aW9uIFVSTCc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3NldCddID0gJ0NoZWNrZWQgYnkgRGVmYXVsdD8nOwokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX3RlbXBsYXRlJ10gPSAnVmFyaWFibGVzIEZvciBUZW1wbGF0ZSc7CiRsYW5nWydoZWxwX3N1Ym1pc3Npb25fZGF0ZSddID0gJ0RhdGUgb2YgU3VibWlzc2lvbic7CiRsYW5nWydoZWxwX3NlcnZlcl9uYW1lJ10gPSAnWW91ciBzZXJ2ZXInOwokbGFuZ1snaGVscF9zdWJfc291cmNlX2lwJ10gPSAnSVAgYWRkcmVzcyBvZiBwZXJzb24gdXNpbmcgZm9ybSc7CiRsYW5nWydoZWxwX3N1Yl91cmwnXSA9ICdVUkwgb2YgcGFnZSBjb250YWluaW5nIGZvcm0nOwokbGFuZ1snaGVscF9vdGhlcl9maWVsZHMnXSA9ICdPdGhlciBmaWVsZHMgd2lsbCBiZSBhdmFpbGFibGUgYXMgeW91IGFkZCB0aGVtIHRvIHRoZSBmb3JtLic7CiRsYW5nWydoZWxwX2RhdGVfZm9ybWF0J10gPSAnU2VlIDxhIGhyZWY9Imh0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24uZGF0ZS5waHAiIHRhcmdldD1fTkVXPnRoZSBQSFAgTWFudWFsPC9hPiBmb3IgZm9ybWF0dGluZyBoZWxwLic7CiRsYW5nWydoZWxwX3ZhcmlhYmxlX25hbWUnXSA9ICdWYXJpYWJsZSc7CiRsYW5nWydoZWxwX2Zvcm1fZmllbGQnXSA9ICdGaWVsZCBSZXByZXNlbnRlZCc7CiRsYW5nWydsaW5rX2JhY2tfdG9fZm9ybSddID0gJ8KrIEJhY2sgdG8gRm9ybSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX3RlbXBsYXRlJ10gPSAnQ3JlYXRlIFNhbXBsZSBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2hlYWRlciddID0gJ0NyZWF0ZSBTYW1wbGUgSGVhZGVyJzsKJGxhbmdbJ2hlbHBfdGFiX3N5bWJvbCddID0gJ2EgdGFiIGNoYXJhY3Rlcic7CiRsYW5nWyd0aXRsZV9maWxlX3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgZm9yIG9uZSBsaW5lIG9mIG91dHB1dCBmaWxlJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfaGVhZGVyJ10gPSAnVGVtcGxhdGUgZm9yIHRoZSBoZWFkZXIgb2Ygb3V0cHV0IGZpbGUnOwokbGFuZ1sndGl0bGVfY29uZmlybWF0aW9uX3VybCddID0gJ1VSTCB0byBjbGljayBmb3IgZm9ybSBjb25maXJtYXRpb24nOwokbGFuZ1snbm9fcmVmZXJyZXJfaW5mbyddID0gJ05vIEhUVFBfUkVGRVJFUiBpbmZvIGF2YWlsYWJsZSAocHJvYmFibHkgZHVlIHRvIHVzZSBvZiBVc2VyIEVtYWlsIFZhbGlkYXRpb24pJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcGFyYW1fZXJyb3InXSA9ICdWYWxpZGF0aW9uIFBhcmFtZXRlciBFcnJvci4gUGxlYXNlIG1ha2Ugc3VyZSB5b3UgY29weSB0aGUgVVJMIGZyb20geW91ciBlbWFpbCBjb3JyZWN0bHkhJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVzcG9uc2VfZXJyb3InXSA9ICdWYWxpZGF0aW9uIFJlcHNvbnNlIEVycm9yLiBQbGVhc2UgbWFrZSBzdXJlIHlvdSBjb3B5IHRoZSBVUkwgZnJvbSB5b3VyIGVtYWlsIGNvcnJlY3RseSEnOwokbGFuZ1sndmFsaWRhdGlvbl9ub19maWVsZF9lcnJvciddID0gJ1ZhbGlkYXRpb24gUmVwc29uc2UgRXJyb3IuIE5vIGVtYWlsIHZhbGlkYXRpb24gZmllbGQgaW4gdGhpcyBmb3JtISc7CiRsYW5nWyd0aXRsZV9kYXRlX2Zvcm1hdCddID0gJ0RhdGUgRm9ybWF0IChzdGFuZGFyZCA8YSBocmVmPSJodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwIj5QSFAgRGF0ZSBGb3JtYXRzPC9hPiknOwokbGFuZ1sndGl0bGVfdXNlX3d5c2l3eWcnXSA9ICdVc2UgV1lTSVdZRyBlZGl0b3IgZm9yIHRleHQgQXJlYT8nOwokbGFuZ1snZGlzcHR5cGVfdGFibGUnXSA9ICdUYWJsZS9DU1MnOwokbGFuZ1snZGlzcHR5cGVfY3NzJ10gPSAnUHVyZSBDU1MnOwokbGFuZ1snZGlzcHR5cGVfdGVtcGxhdGUnXSA9ICdDdXN0b20gVGVtcGxhdGUnOwokbGFuZ1snYWRtaW5kZXNjJ10gPSAnQWRkLCBlZGl0IGFuZCBtYW5hZ2UgaW50ZXJhY3RpdmUgRm9ybXMnOwokbGFuZ1snZGF0ZV9qYW51YXJ5J10gPSAnSmFudWFyeSc7CiRsYW5nWydkYXRlX2ZlYnJ1YXJ5J10gPSAnRmVicnVhcnknOwokbGFuZ1snZGF0ZV9tYXJjaCddID0gJ01hcmNoJzsKJGxhbmdbJ2RhdGVfYXByaWwnXSA9ICdBcHJpbCc7CiRsYW5nWydkYXRlX21heSddID0gJ01heSc7CiRsYW5nWydkYXRlX2p1bmUnXSA9ICdKdW5lJzsKJGxhbmdbJ2RhdGVfanVseSddID0gJ0p1bHknOwokbGFuZ1snZGF0ZV9hdWd1c3QnXSA9ICdBdWd1c3QnOwokbGFuZ1snZGF0ZV9zZXB0ZW1iZXInXSA9ICdTZXB0ZW1iZXInOwokbGFuZ1snZGF0ZV9vY3RvYmVyJ10gPSAnT2N0b2Jlcic7CiRsYW5nWydkYXRlX25vdmVtYmVyJ10gPSAnTm92ZW1iZXInOwokbGFuZ1snZGF0ZV9kZWNlbWJlciddID0gJ0RlY2VtYmVyJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3InXSA9ICdTb3JyeSEgVGhlcmUgd2FzIGFuIGVycm9yIGhhbmRsaW5nIHlvdXIgZm9ybSBzdWJtaXNzaW9uLic7CiRsYW5nWydzdWJtaXRfZXJyb3InXSA9ICdGb3JtQnVpbGRlciBzdWJtaXQgZXJyb3I6ICVzJzsKJGxhbmdbJ3VwbG9hZHNfZXJyb3InXSA9ICdFcnJvciBjb21taXR0aW5nIGZpbGUgdG8gdGhlIHVwbG9hZHMgbW9kdWxlOiAlcyc7CiRsYW5nWydub3VwbG9hZHNfZXJyb3InXSA9ICdDb3VsZCBub3QgZmluZCB0aGUgdXBsb2FkcyBtb2R1bGUnOwokbGFuZ1sndXBsb2FkX2F0dGFjaF9lcnJvciddID0gJ1VwbG9hZC9BdHRhY2htZW50IGVycm9yIG9uIGZpbGUgJXMgKHRtcF9uYW1lOiAlcywgb2YgdHlwZSAlcyknOwokbGFuZ1snc3VibWlzc2lvbl9lcnJvcl9maWxlX2xvY2snXSA9ICdFcnJvci4gVW5hYmxlIHRvIG9idGFpbiBsb2NrIGZvciBmaWxlLic7CiRsYW5nWydlbWFpbF9kZWZhdWx0X3RlbXBsYXRlJ10gPSAnRm9ybUJ1aWxkZXIgU3VibWlzc2lvbg0KJzsKJGxhbmdbJ2VtYWlsX3RlbXBsYXRlX25vdF9zZXQnXSA9ICc8YnIvPkVtYWlsIFRlbXBsYXRlIG5vdCB5ZXQgc2V0ISc7CiRsYW5nWydtaXNzaW5nX2Ntc19tYWlsZXInXSA9ICdGb3JtQnVpbGRlcjogQ2Fubm90IGZpbmQgcmVxdWlyZWQgbW9kdWxlIENNU01haWxlciEnOwokbGFuZ1sndXNlcl9hcHByb3ZlZF9zdWJtaXNzaW9uJ10gPSAnVXNlciBhcHByb3ZlZCBzdWJtaXNzaW9uICVzIGZyb20gJXMnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdCddID0gJ0V2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdEVycm9yJ10gPSAnRXZlbnQgdHJpZ2dlcmVkIGlmIHRoZXJlIGlzIGFuIGVycm9yIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZCc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtRGlzcGxheSddID0gJ0V2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBkaXNwbGF5ZWQnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdCddID0gJzxwPkV2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQuPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIFRoZSBmb3JtIG5hbWUgKHN0cmluZyk8L2xpPg0KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBUaGUgaW50ZXJuYWwgZm9ybSBpZCAoaW50KTwvbGk+DQo8bGk+PGVtPnZhbHVlXzxuYW1lPjwvZW0+IC0gU3VwcGx5IGEgZGVmYXVsdCB2YWx1ZSB0byBhIGZpZWxkIHdpdGggdGhlIHNwZWNpZmllZCBuYW1lLjwvbGk+DQo8L3VsPiAnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdEVycm9yJ10gPSAnPHA+RXZlbnQgdHJpZ2dlcmVkIGlmIHRoZXJlIGlzIGFuIGVycm9yIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZDwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBUaGUgZm9ybSBuYW1lIChzdHJpbmcpPC9saT4NCjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gVGhlIGludGVybmFsIGZvcm0gaWQgKGludCk8L2xpPg0KPGxpPjxlbT5lcnJvcjwvZW0+IC0gQSBsaXN0IG9mIGFsbCBrbm93biBlcnJvcnMgKHN0cmluZyk8L2xpPg0KPC91bD4gJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1EaXNwbGF5J10gPSAnPHA+RXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIGRpc3BsYXllZDwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBUaGUgZm9ybSBuYW1lIChzdHJpbmcpPC9saT4NCjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gVGhlIGludGVybmFsIGZvcm0gaWQgKGludCk8L2xpPg0KPC91bD4gJzsKJGxhbmdbJ3Bvc3RfaW5zdGFsbCddID0gJzxwPk1ha2Ugc3VyZSB0byBzZXQgdGhlICJNb2RpZnkgRm9ybXMiIHBlcm1pc3Npb25zDQpvbiB1c2VycyB3aG8gd2lsbCBiZSBhZG1pbmlzdGVyaW5nIGZlZWRiYWNrIGZvcm1zLiBBbHNvLCBpZiB5b3VcJ2xsIGJlIGVtYWlsaW5nIGZvcm0NCnJlc3VsdHMsIGJlIHN1cmUgdG8gdXBkYXRlIHRoZSBDb25maWd1cmF0aW9uIGFwcHJvcHJpYXRlbHkuPC9wPg0KPHA+UGxlYXNlIGJlIGF3YXJlIHRoYXQgYSBmZWVkYmFjayBmb3JtIHNob3VsZCBub3QgYmUgYWN0aXZlIChlLmcuLCB1c2FibGUgYnkgdGhlIHB1YmxpYykgd2hpbGUNCnlvdSBhcmUgc3RpbGwgZWRpdGluZyB0aGUgZm9ybS4gWW91IHNob3VsZCBjcmVhdGUgdGhlIGZvcm0sIGFuZCBwbGFjZSB0aGUgdGFnIGludG8gYW4gYWN0aXZlDQpjb250ZW50IHBhZ2Ugb25seSB3aGVuIHlvdSBoYXZlIGZpbmlzaGVkIGVkaXRpbmcuIE90aGVyd2lzZSwgZXJyb25lb3VzIHJlc3VsdHMgY291bGQgYmUgcmV0dXJuZWQuPC9wPg0KPHA+QWRkaXRpb25hbGx5LCB0aGlzIHZlcnNpb24gZG9lcyBub3Qgc3VwcG9ydCBwYXJhbGxlbCBlZGl0aW5nIG9mIGZvcm1zLiBQbGVhc2UgdGFrZSBjYXJlIHRoYXQNCm9ubHkgb25lIGFkbWluIGlzIGVkaXRpbmcgYSBnaXZlbiBmb3JtIGF0IGEgZ2l2ZW4gdGltZS48L3A+JzsKJGxhbmdbJ2hlbHAnXSA9ICc8aDM+V2hhdCBEb2VzIFRoaXMgRG8/PC9oMz4NCjxwPlRoZSBGb3JtIEJ1aWxkZXIgTW9kdWxlIGFsbG93cyB5b3UgdG8gY3JlYXRlIGZlZWRiYWNrIGZvcm1zIChpbiBmYWN0LCBpdFwncyBhIHJlcGxhY2VtZW50IG9mIHRoZSBvcmlnaW5hbCBGZWVkYmFjayBGb3JtIG1vZHVsZSksIHdpdGggdGhlIGFkZGVkIHBvd2VyIG9mIGRhdGFiYXNlIHN0b3JhZ2UuIFdpdGggaXRzIGNvbXBhbmlvbiBtb2R1bGUgRm9ybSBCcm93c2VyLCB5b3UgY2FuIHVzZSBpdCB0byBjcmVhdGUgc2ltcGxlIGRhdGFiYXNlIGFwcGxpY2F0aW9ucy48L3A+DQo8cD5UaGUgZm9ybXMgY3JlYXRlZCB1c2luZyB0aGUgRm9ybSBCdWlsZGVyIG1heSBiZSBpbnNlcnRlZA0KaW50byB0ZW1wbGF0ZXMgYW5kL29yIGNvbnRlbnQgcGFnZXMuIEZvcm1zIG1heSBjb250YWluIG1hbnkga2luZHMgb2YgaW5wdXRzLCBhbmQgbWF5IGhhdmUNCnZhbGlkYXRpb24gYXBwbGllZCB0byB0aGVzZSBpbnB1dHMuIFRoZSByZXN1bHRzIG9mIHRoZXNlIGZvcm1zIG1heSBiZSBoYW5kbGVkIGluIGEgdmFyaWV0eSBvZiB3YXlzLjwvcD4NCg0KPGgzPkhvdyBEbyBJIFVzZSBpdD88L2gzPg0KPFA+SW5zdGFsbCBpdCwgYW5kIHBva2UgYXJvdW5kIHRoZSBtZW51cy4gUGxheSB3aXRoIGl0LiBUcnkgY3JlYXRpbmcgZm9ybXMsIGFuZCBhZGRpbmcgdGhlbSB0byB5b3VyIGNvbnRlbnQuDQpJZiB5b3UgZ2V0IHN0dWNrLCBjaGF0IHdpdGggbWUgb24gdGhlICNjbXMgSVJDIGNoYW5uZWwsIHBvc3QgdG8gdGhlIGZvcnVtLCBzZW5kIG1lIGVtYWlsLCBvciwgaWYgeW91XCdyZQ0KcmVhbGx5IGRlc3BlcmF0ZSwgcmVhZCB0aGUgcmVzdCBvZiB0aGlzIHBhZ2UuPC9QPg0KDQo8aDM+SG93IERvIEkgQ3JlYXRlIGEgRm9ybTwvaDM+DQo8cD5JbiB0aGUgQ01TIEFkbWluIE1lbnUsIHlvdSBzaG91bGQgZ2V0IGEgbmV3IG1lbnUgaXRlbSBjYWxsZWQgRm9ybUJ1aWxkZXIuIENsaWNrIG9uIHRoaXMuIE9uIHRoZSBwYWdlDQp0aGF0IGdldHMgc2hvd24sIHRoZXJlIGFyZSBvcHRpb25zIChhdCB0aGUgYm90dG9tIG9mIHRoZSBsaXN0IG9mIEZvcm1zKSB0byBBZGQgYSBOZXcgRm9ybSBvciBNb2RpZnkNCkNvbmZpZ3VyYXRpb24uPC9wPg0KDQo8aDM+QWRkaW5nIGEgRm9ybSB0byBhIFBhZ2U8L2gzPg0KPHA+SW4gdGhlIG1haW4gRm9ybUJ1aWxkZXIgYWRtaW4gcGFnZSwgeW91IGNhbiBzZWUgYW4gZXhhbXBsZSBvZiB0aGUgdGFnIHVzZWQgdG8gZGlzcGxheSBlYWNoIGZvcm0uIEl0IGxvb2tzDQpzb21ldGhpbmcgbGlrZSB7Y21zX21vZHVsZSBtb2R1bGU9XCdGb3JtQnVpbGRlclwnIGZvcm09XCdzYW1wbGVfZm9ybVwnfTwvcD4NCjxwPkJ5IGNvcHlpbmcgdGhpcyB0YWcgaW50byB0aGUgY29udGVudCBvZiBhIHBhZ2UsIG9yIGludG8gYSB0ZW1wbGF0ZSwgd2lsbCBjYXVzZSB0aGF0IGZvcm0gdG8gYmUgZGlzcGxheWVkLg0KSW4gdGhlb3J5LCB5b3UgY2FuIGhhdmUgbXVsdGlwbGUgZm9ybXMgb24gYSBwYWdlIGlmIHlvdSByZWFsbHkgd2FudCB0by4gQmUgY2FyZWZ1bCB3aGVuIHBhc3RpbmcgdGhlIHRhZw0KaW50byBhIHBhZ2VcJ3MgY29udGVudCBpZiB5b3UgdXNlIGEgV1lTSVdZRyBlZGl0b3Igc3VjaCBhcyBUaW55TUNFIG9yIEhUTUxBcmVhLiBUaGVzZSBlZGl0b3JzIG1heSBzdGVhbHRoaWx5DQpjaGFuZ2UgdGhlIHF1b3RlIG1hcmtzICgiKSBpbnRvIEhUTUwgZW50aXRpZXMgKCIpLCBhbmQgdGhlIGZvcm1zIHdpbGwgbm90IHNob3cgdXAuIFRyeSB1c2luZw0Kc2luZ2xlIHF1b3RlcyAoXCcpIG9yIGVkaXRpbmcgdGhlIEhUTUwgZGlyZWN0bHkuDQoNCjxoMz5Xb3JraW5nIHdpdGggRm9ybXM8L2gzPg0KPHA+QnkgY2xpY2tpbmcgb24gYSBGb3JtXCdzIG5hbWUsIHlvdSBlbnRlciB0aGUgRm9ybSBFZGl0IHBhZ2UuIFRoZXJlIGFyZSBzZXZlcmFsIHRhYnMsIHdoaWNoIGFyZSBkZXNjcmliZWQgYmVsb3c6PC9wPg0KPGg0Pk1haW48L2g0Pg0KPHA+VGhpcyBpcyB0aGUgbWFpbiBwbGFjZSB5b3VcJ2xsIHdvcmsgb24geW91ciBmb3JtLiBIZXJlLCB5b3UgZ2l2ZSBpdCBhIG5hbWUsIGFuIGFsaWFzICh3aGljaCBpcyB1c2VkIHRvIGlkZW50aWZ5IGl0IGZvciBwbGFjaW5nIGl0IGluIGEgcGFnZSBvciB0ZW1wbGF0ZSksIGFuZCwgb3B0aW9uYWxseSwgYSBDU1MgY2xhc3Mgd2l0aCB3aGljaCB0byB3cmFwIHRoZSB3aG9sZSB0aGluZy4gWW91IGFsc28gc2VsZWN0IHRoZSBkaXNwbGF5IHR5cGUuIFlvdXIgY2hvaWNlcyBhcmU6PC9wPg0KPHVsPg0KPGxpPlRhYmxlL0NTUy4gVGhlIGZvcm0gaXMgY3JlYXRlZCB1c2luZyBIVE1MIHRhYmxlcy4gSWYgeW91IGRvblwndCBrbm93IHdoYXQgdG8gY2hvb3NlLCB0aGlzIGlzIHRoZSBlYXNpZXN0IG9wdGlvbiwgYW5kIHdpbGwgcHJvYmFibHkgZG8gbW9zdCBvZiB3aGF0IHlvdSB3YW50LiBZb3UgY2FuIHN0aWxsIHVzZSBDU1MgdG8gc3R5bGUgdGhlIGZvcm0gaWYgeW91IHdhbnQuPC9saT4NCjxsaT5QdXJlIENTUy4gVGhlIGZvcm0gaXMgY3JlYXRlZCwgd2l0aCBhbGwgdGhlIGZpZWxkcyB3cmFwcGVkIGluIDxkaXY+IHRhZ3MuIFlvdSBjYW4gdGhlbiBzdHlsZSB0aGUgZm9ybSBhcyB5b3Ugc2VlIGZpdC48L2xpPg0KPGxpPkN1c3RvbSBUZW1wbGF0ZS4gQmFzaWNhbGx5LCB5b3UgZ2V0IGEgc21hcnR5IHRlbXBsYXRlLCBhIGJ1bmNoIG9mIHZhcmlhYmxlcywgYW5kIHlvdVwncmUgb24geW91ciBvd24uIFlvdSBoYXZlIHRoZSBwb3dlciB0byBjcmVhdGUgd2hhdGV2ZXIgeW91IHdhbnQuPC9saT4NCjwvdWw+DQo8cD5CZWxvdyB0aGlzLCBpZiB5b3UgaGF2ZSBpdCBlbmFibGVkLCBpcyB0aGUgImZhc3QgZmllbGQgYWRkZXIiIHB1bGxkb3duLCB0aGF0IGxldHMgeW91IHF1aWNrbHkgYWRkIGEgZmllbGQgdG8gdGhlIGVuZCBvZiB5b3VyIGZvcm0gYnkgc2VsZWN0aW5nIHRoZSBmaWVsZCB0eXBlLjwvcD4NCjxwPkJlbG93IHRoaXMgaXMgdGhlIGxpc3Qgb2YgZmllbGRzIHRoYXQgbWFrZSB1cCB5b3VyIGZvcm0uIE1vcmUgZGV0YWlsIG9uIHRoaXMgaXMgZGVzY3JpYmVkIGJlbG93LjwvcD4NCjxoND5Gb3JtIFNldHRpbmdzPC9oND4NCjxwPkZvcm0gU2V0dGluZ3MgYWxsb3dzIHlvdSB0byBjdXN0b21pemUgYSBsb3Qgb2YgdGhlIG1lc3NhZ2VzIGFuZCB0ZXh0IGluIHRoZSBjb250cm9scyBmb3IgeW91ciBmb3JtLiBJdCBhbHNvIGFsbG93cyB5b3UgdG8gcGljayBhIHBhZ2UgdG8gcmVkaXJlY3QgdXNlcnMgdG8gYWZ0ZXIgYSBzdWNjZXNzZnVsIGZvcm0gc3VibWlzc2lvbi48L3A+DQo8aDQ+VGFibGUtYmFzZWQgTGF5b3V0IE9wdGlvbnM8L2g0Pg0KPHA+VGFibGUtbGF5b3V0cyBoYXZlIGdvdHRlbiBzaW1wbGVyLCBzbyB5b3VyIG9ubHkgb3B0aW9uIGhlcmUgaXMgdGhlIHBvc2l0aW9uIG9mIHRoZSBmaWVsZCBuYW1lcyByZWxhdGl2ZSB0byB0aGUgaW5wdXRzLiBJZiB5b3VcJ3JlIHVzaW5nIGEgVGFibGUvQ1NTIGxheW91dCwgeW91IGNhbiB1c2UgdGhpcyB0YWIgdG8gc2VsZWN0IHRoZSBmaWVsZCBuYW1lIHBvc2l0aW9ucy48L3A+DQo8aDQ+VGVtcGxhdGUgTGF5b3V0IE9wdGlvbnM8L2g0Pg0KPHA+VGhpcyBpcyB3aGVyZSB5b3UgZG8geW91ciBjdXN0b21pemF0aW9uIHdvcmsgaWYgeW91ciBmb3JtIHVzZXMgYSBDdXN0b20gVGVtcGxhdGUuPC9wPg0KPHA+VGhlIGZvcm0gc2hvdWxkIGRlZmF1bHQgdG8gYSBhIEN1c3RvbSB0ZW1wbGF0ZSB0aGF0IGRvY3VtZW50cyB0aGUgc21hcnR5IHRhZ3MgYXZhaWxhYmxlIHRvIHlvdS4gVW5sZXNzIHlvdVwncmUgYSBzbWFydHkgZXhwZXJ0LCB5b3UgcHJvYmFibHkgZG9uXCd0IHdhbnQgdG8gbWVzcyBhcm91bmQgd2l0aCB0aGlzLiBJZiB5b3UgYXJlIGEgc21hcnR5IGV4cGVydCwgdGhpcyBpcyB3aGVyZSB5b3UgY2FuIHVubGVhc2ggeW91ciBtYWdpYy48L3A+DQo8aDM+QWRkaW5nIEZpZWxkcyB0byB5b3VyIEZvcm08L2gzPg0KPHA+VGhlIHR5cGVzIG9mIGZpZWxkcyB0aGF0IGFyZSBjdXJyZW50bHkgc3VwcG9ydGVkIGZpdCBpbnRvIGZvdXIgZ3JvdXBzOiBzdGFuZGFyZCBpbnB1dCBmaWVsZHMsIGRpc3BsYXkgY29udHJvbCBmaWVsZHMsIGVtYWlsLXNwZWNpZmljIGZpZWxkcywgYW5kIGZvcm0gcmVzdWx0IGhhbmRsaW5nIGZpZWxkcyAoYWxzbyBjYWxsZWQgRm9ybSBEaXNwb3NpdGlvbnMgaW4gcGxhY2VzKTo8L3A+DQo8dWw+DQo8bGk+U3RhbmRhcmQgSW5wdXQgRmllbGRzIC0gdGhlc2UgYXJlIGlucHV0cyB0aGF0IGFsbG93IGVudHJ5IG9mIHR5cGljYWwgZm9ybSBlbGVtZW50czsgdGV4dCBpbnB1dHMsIHJhZGlvIGJ1dHRvbnMsIGV0Yy48L2xpPg0KPGxpPkRpc3BsYXkgQ29udHJvbCBGaWVsZHMgLSB0aGVzZSBpbnB1dCBjb250cm9sIGhvdyB0aGUgdXNlciB3aWxsIHNlZSB0aGUgZGlzcGxheSBvZiB0aGUgZm9ybTsgcGFnZSBicmVha3MsIHN0YXRpYyB0ZXh0LCBldGMuPC9saT4NCjxsaT5FbWFpbC1zcGVjaWZpYyBGaWVsZHMgLSBzb21lIGZvcm1zIGdlbmVyYXRlIGVtYWlsLCBhbmQgZW1haWwtc3BlY2lmaWMgZmllbGRzIGNhbiBhbHRlciBhdHRyaWJ1dGVzIG9mIHRoZSBlbWFpbHMgc2VudC48L2xpPg0KPGxpPkZvcm0gRGlzcG9zaXRpb25zIC0gVGhlc2UgZGV0ZXJtaW5lIHdoYXQgaGFwcGVucyB3aGVuIHRoZSB1c2VyDQpzdWJtaXRzIHRoZSBmb3JtOyBmb3IgZWFjaCByZXN1bHQgaGFuZGxpbmcgZmllbGQsIHNvbWUgbWV0aG9kIG9mIHRyYW5zbWl0dGluZywgc2F2aW5nLCBvciBlbWFpbGluZyB0aGUNCmZvcm0gY29udGVudHMgdGFrZXMgcGxhY2UuIEEgZm9ybSBtYXkgaGF2ZSBtdWx0aXBsZSBmb3JtIGRpc3Bvc2l0aW9ucy48L2xpPg0KPC91bD4NCjxwPkZvcm0gZmllbGRzIGFyZSBhc3NpZ25lZCBuYW1lcy4gVGhlc2UgbmFtZXMgaWRlbnRpZnkgdGhlIGZpZWxkLCBub3Qgb25seSBvbiB0aGUgc2NyZWVuIGFzIGxhYmVscyBmb3IgdGhlIHVzZXIsDQpidXQgaW4gdGhlIGRhdGEgd2hlbiBpdFwncyBzdWJtaXR0ZWQgc28geW91IGtub3cgd2hhdCB0aGUgdXNlciBpcyByZXNwb25kaW5nIHRvLiBQaHJhc2luZyB0aGUgbmFtZSBsaWtlIGEgcXVlc3Rpb24NCmlzIGEgaGFuZHkgd2F5IG9mIG1ha2luZyBpdCBjbGVhciB0byB0aGUgdXNlciB3aGF0IGlzIGV4cGVjdGVkLiBTaW1pbGFybHksIG1hbnkgZmllbGRzIGhhdmUgYm90aCBOYW1lcyBhbmQgVmFsdWVzLg0KVGhlIE5hbWVzIGFyZSB3aGF0IGdldHMgc2hvd24gdG8gdGhlIHVzZXI7IHRoZSBWYWx1ZSBpcyB3aGF0IGdldHMgc2F2ZWQgb3IgdHJhbnNtaXR0ZWQgd2hlbiB0aGUgdXNlciBzdWJtaXRzDQp0aGUgZm9ybS4gVGhlIFZhbHVlcyBhcmUgbmV2ZXIgc2VlbiBieSB0aGUgdXNlciwgbm9yIGFyZSB0aGV5IHZpc2libGUgaW4gdGhlIEhUTUwsIHNvIGl0XCdzIHNhZmUgdG8gdXNlIGZvcg0KZW1haWwgYWRkcmVzc2VzIGFuZCBzdWNoLjwvcD4NCjxwPlNvbWUgZmllbGRzIGNhbiBoYXZlIG11bHRpcGxlIHZhbHVlcywgb3IgbXVsdGlwbGUgbmFtZS92YWx1ZSBwYWlycy4gV2hlbiB5b3UgZmlyc3QgY3JlYXRlIHN1Y2ggYSBmaWVsZCwNCnRoZXJlIG1heSBub3QgYmUgc3VmZmljaWVudCBpbnB1dHMgZm9yIHlvdSB0byBzcGVjaWZ5IGFsbCB0aGUgdmFsdWVzIHlvdSB3YW50LiBUbyBnZXQgbW9yZSBzcGFjZSBmb3IgaW5wdXR0aW5nDQp0aGVzZSB2YWx1ZXMsIHVzZSB0aGUgYnV0dG9ucyBhdCB0aGUgYm90dG9tIG9mIHRoZSBwYWdlIGZvciBhZGRpbmcgb3B0aW9ucy48L3A+DQo8cD5GaWVsZHMgY2FuIGJlIGFzc2lnbmVkIHZhbGlkYXRpb24gcnVsZXMsIHdoaWNoIHZhcnkgYWNjb3JkaW5nIHRvIHRoZSB0eXBlIG9mIHRoZSBmaWVsZC4gVGhlc2UgcnVsZXMgaGVscA0KZW5zdXJlIHRoYXQgdGhlIHVzZXIgZW50ZXJzIHZhbGlkIGRhdGEuIFRoZXkgbWF5IGFsc28gYmUNCnNlcGFyYXRlbHkgbWFya2VkICJSZXF1aXJlZCIsIHdoaWNoIHdpbGwgZm9yY2UgdGhlIHVzZXIgdG8gZW50ZXIgYSByZXNwb25zZS48L3A+DQo8cD5GaWVsZHMgYWxzbyBtYXkgYmUgYXNzaWduZWQgYSBDU1MgY2xhc3MuIFRoaXMgc2ltcGx5IHdyYXBzIHRoZSBpbnB1dCBpbiBhIGRpdiB3aXRoIHRoYXQgY2xhc3MsIHNvIGFzIHRvIGFsbG93DQpjdXN0b21pemVkIGxheW91dHMuIFRvIHVzZSB0aGlzIGVmZmVjdGl2ZWx5LCB5b3UgbWF5IG5lZWQgdG8gInZpZXcgc291cmNlIiBvbiB0aGUgZ2VuZXJhdGVkIGZvcm0sIGFuZCB0aGVuDQp3cml0ZSB5b3VyIENTUy48L3A+DQo8dWw+DQo8bGk+U3RhbmRhcmQgSW5wdXRzDQo8dWw+PGxpPlRleHQgSW5wdXQuIFRoaXMgaXMgYSBzdGFuZGFyZCB0ZXh0IGZpZWxkLiBZb3UgY2FuIGxpbWl0IHRoZSBsZW5ndGgsIGFuZCBhcHBseSB2YXJpb3VzIHZhbGlkYXRpb24NCmZ1bmN0aW9ucyB0byB0aGUgZmllbGQuPC9saT4NCjxsaT5UZXh0IEFyZWEuIFRoaXMgaXMgYSBiaWcsIGZyZWUtZm9ybSB0ZXh0IGlucHV0IGZpZWxkLjwvbGk+DQo8bGk+Q2hlY2tib3guIFRoaXMgaXMgYSBzdGFuZGFyZCBjaGVjayBib3guPC9saT4NCjxsaT5DaGVja2JveCBHcm91cC4gVGhpcyBpcyBhIGNvbGxlY3Rpb24gb2YgY2hlY2tib3hlcy4gVGhlIG9ubHkgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoaXMgaW5wdXQgYW5kIGENCmNvbGxlY3Rpb24gb2YgQ2hlY2tib3ggaW5wdXRzIGlzIHRoYXQgdGhleSBhcmUgcHJlc2VudGVkIGFzIGEgZ3JvdXAsIHdpdGggb25lIG5hbWUsIGFuZCBjYW4gaGF2ZSBhIHZhbGlkYXRpb24gZnVuY3Rpb24gcmVxdWlyaW5nIHRoYXQgeW91IGNoZWNrIG9uZSBvciBtb3JlIG9mIHRoZSBib3hlcyBpbiB0aGUgZ3JvdXAuPC9saT4NCjxsaT5SYWRpbyBHcm91cC4gVGhpcyBpcyBhIGNvbGxlY3Rpb24gb2YgcmFkaW8gYnV0dG9ucy4gT25seSBvbmUgb2YgdGhlIGdyb3VwIG1heSBiZSBzZWxlY3RlZCBieSB0aGUgdXNlci48L2xpPg0KPGxpPlB1bGxkb3duLiBUaGlzIGlzIGEgc3RhbmRhcmQgcHVsbGRvd24gbWVudS4gSXRcJ3MgcmVhbGx5IGNvbmNlcHR1YWxseSB0aGUgc2FtZSB0aGluZyBhcyBhIHJhZGlvIGJ1dHRvbg0KZ3JvdXAsIGJ1dCBpcyBiZXR0ZXIgd2hlbiB0aGVyZSBhcmUgYSBsYXJnZSBudW1iZXIgb2Ygb3B0aW9ucy48L2xpPg0KPGxpPk11bHRpc2VsZWN0LiBUaGlzIGlzIGEgbXVsdGktc2VsZWN0IGZpZWxkLiBJdFwncyByZWFsbHkgY29uY2VwdHVhbGx5IHRoZSBzYW1lIHRoaW5nIGFzIGEgY2hlY2tib3ggYnV0dG9uDQpncm91cCwgYnV0IGlzIGJldHRlciB3aGVuIHRoZXJlIGFyZSBhIGxhcmdlIG51bWJlciBvZiBvcHRpb25zLCBhcyB5b3UgY2FuIGxpbWl0IHRoZSBudW1iZXIgZGlzcGxheWVkIG9uIHRoZSBzY3JlZW4gYXQgYW55IG9uZSB0aW1lLjwvbGk+DQo8bGk+U3RhdGUuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBTdGF0ZXMgb2YgdGhlIFUuUy48L2xpPg0KPGxpPkNvdW50cmllcy4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIENvdW50cmllcyBvZiB0aGUgd29ybGQgKGFzIG9mIEp1bHkgMjAwNSkuPC9saT4NCjxsaT5EYXRlIFBpY2tlci4gVGhpcyBpcyBhIHRyaXBsZSBwdWxsZG93biBhbGxvd2luZyB0aGUgdXNlciB0byBzZWxlY3QgYSBkYXRlLjwvbGk+DQo8L3VsPjwvbGk+DQoNCjxsaT5FbWFpbC1zcGVjaWZpYyBJbnB1dHMNCjx1bD48bGk+RW1haWwgRnJvbSBBZGRyZXNzIEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIHRoZWlyIGVtYWlsIGFkZHJlc3MuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBhZGRyZXNzIGluIHRoZSAiRnJvbSIgZmllbGQuPC9saT4NCjxsaT5FbWFpbCBGcm9tIE5hbWUgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgdGhlaXIgbmFtZS4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIG5hbWUgaW4gdGhlICJGcm9tIiBmaWVsZC48L2xpPg0KPC91bD48L2xpPg0KDQo8bGk+RGlzcGxheSBDb250cm9sIEZpZWxkczx1bD4NCjxsaT4tUGFnZSBCcmVhay4gVGhpcyBhbGxvd3MgeW91IHRvIHNwbGl0IHlvdXIgZmVlZGJhY2sgZm9ybSBpbnRvIG11bHRpcGxlIHBhZ2VzLiBFYWNoIHBhZ2UgaXMNCmluZGVwZW5kZW50bHkgdmFsaWRhdGVkLiBUaGlzIGlzIGdvb2QgZm9yIGFwcGxpY2F0aW9ucyBsaWtlIG9ubGluZSBzdXJ2ZXlzLjwvbGk+DQo8bGk+LVN0YXRpYyBUZXh0LiBUaGlzIGFsbG93cyB5b3UgdG8gcHV0IHRleHQgb3IgYSBsYWJlbCBpbiB0aGUgbWlkZGxlIG9mIHlvdXIgZm9ybS4gVGhpcyBpcyB1c2VmdWwgZm9yIGdpdmluZyBhZGRpdGlvbmFsIGhlbHAgdGV4dCwgZXNwZWNpYWxseSBpZiB5b3VcJ3JlIG5vdCB1c2luZyBhIEN1c3RvbSBUZW1wbGF0ZSB0byByZW5kZXIgeW91ciBmb3JtLjwvbGk+DQo8L3VsPjwvbGk+DQoNCjxsaT5Gb3JtIEhhbmRsaW5nIElucHV0cyAoRGlzcG9zaXRpb25zKQ0KPHVsPjxsaT4qRW1haWwgUmVzdWx0cyBCYXNlZCBvbiBQdWxsZG93bi4gVGhpcyBpcyB1c2VmdWwgZm9yIHdlYiBzaXRlcyB3aGVyZSBjb21tZW50cyBnZXQgcm91dGVkIGJhc2VkIG9uIHRoZWlyIHN1YmplY3QgbWF0dGVyLCBlLmcuLCBidWdzIGdldCBzZW50IHRvIG9uZSBwZXJzb24sIG1hcmtldGluZyBxdWVzdGlvbnMgdG8gYW5vdGhlciBwZXJzb24sIHNhbGVzIHJlcXVlc3RzIHRvIHNvbWVvbmUgZWxzZSwgZXRjLiBUaGUgcHVsbGRvd24gaXMgcG9wdWxhdGVkIHdpdGggdGhlIHN1YmplY3RzLCBhbmQgZWFjaCBnZXRzIGRpcmVjdGVkIHRvIGEgc3BlY2lmaWMgZW1haWwgYWRkcmVzcy4gWW91IHNldCB1cCB0aGVzZSBtYXBwaW5ncyBpbiB0aGUgd2hlbiB5b3UgY3JlYXRlIG9yIGVkaXQgYSBmaWVsZCBvZiB0aGlzIHR5cGUuIElmIHlvdSB1c2Ugb25lIG9mIHRoZXNlICJEaXJlY3RvciIgcHVsbGRvd25zLCB0aGUgdXNlciBtdXN0IG1ha2UgYSBzZWxlY3Rpb24gaW4gb3JkZXIgdG8gc3VibWl0IHRoZQ0KZm9ybS4gVGhpcyBpbnB1dCBpcyBwYXJ0IG9mIHRoZSBmb3JtIHRoZSB1c2VyIHNlZXMsIGFsdGhvdWdoIHRoZSBlbWFpbCBhZGRyZXNzZXMgYXJlIG5vdCBtYWRlIHZpc2libGUgbm9yDQphcmUgdGhleSBlbWJlZGRlZCBpbiB0aGUgSFRNTC48L2xpPg0KPGxpPipFbWFpbCBSZXN1bHRzIHRvIHNldCBBZGRyZXNzKGVzKS4gVGhpcyBzaW1wbHkgc2VuZHMgdGhlIGZvcm0gcmVzdWx0cyB0byBvbmUgb3IgbW9yZSBlbWFpbCBhZGRyZXNzZXMgdGhhdCB5b3UgZW50ZXIgd2hlbiB5b3UgY3JlYXRlIG9yIGVkaXQgdGhpcyB0eXBlIG9mIGZpZWxkLiBUaGlzIGZpZWxkIGFuZCBpdHMgbmFtZSBhcmUgbm90IHZpc2libGUgaW4gdGhlDQpmb3JtIHRoYXQgdGhlIHVzZXIgc2Vlcy4gVGhlIGVtYWlsIGFkZHJlc3NlcyBhcmUgbm90IG1hZGUgdmlzaWJsZSBub3INCmFyZSB0aGV5IGVtYmVkZGVkIGluIHRoZSBIVE1MLjwvbGk+DQo8bGk+KlN0b3JlIFJlc3VsdHMgaW4gRGF0YWJhc2UuIFRoaXMgd2lsbCBzdG9yZSB0aGUgZm9ybSBjb250ZW50cyBpbiBhbiBpbnRlcm5hbCBkYXRhYmFzZS4gWW91IHdpbGwgYWx3YXlzIHVzZSB0aGlzIGRpc3Bvc2l0aW9uIGlmIHlvdSB1c2UgdGhlIGZvcm0gd2l0aCBGb3JtQnJvd3Nlci48L2xpPg0KPGxpPipWYWxpZGF0ZSB2aWEgRW1haWwuIFRoaXMgaXMgYSBzdHJhbmdlIGFuZCBwb3dlcmZ1bCBmaWVsZC4gSXQgcHJvdmlkZXMgdGhlIHVzZXIgYSBtYW5kYXRvcnkgaW5wdXQgZm9yIHRoZWlyIGVtYWlsIGFkZHJlc3MuIE9uY2UgdGhleSBzdWJtaXQgdGhlaXIgZm9ybSwgdGhlIHN0YW5kYXJkIGZvcm0gZGlzcG9zaXRpb25zIGFyZSBub3QgcGVyZm9ybWVkIC0tIHJhdGhlciwgaXQgc2VuZCB0aGUgdXNlciBhbiBlbWFpbCB3aXRoIGEgc3BlY2lhbCBjb2RlZCBsaW5rLiBJZiB0aGV5IGNsaWNrIG9uIHRoZSBsaW5rLCB0aGUgb3RoZXIgZm9ybSBpcyBjb25zaWRlcmVkICJhcHByb3ZlZCwiIGFuZCB0aGUgb3RoZXIgZGlzcG9zaXRpb25zIGFyZSBhbGwgcGVyZm9ybWVkLjwvbGk+DQo8bGk+KldyaXRlIFJlc3VsdHMgdG8gRmxhdCBGaWxlLiBUaGlzIHRha2VzIHRoZSBmb3JtIHJlc3VsdHMgYW5kIHdyaXRlcyB0aGVtIGludG8gYSB0ZXh0IGZpbGUuIFlvdSBtYXkNCnNlbGVjdCB0aGUgbmFtZSBvZiB0aGUgZmlsZSwgYW5kIHNldCBpdHMgZm9ybWF0LiBUaGVzZSBmaWxlcyBhcmUgd3JpdHRlbiB0byB0aGUgIm91dHB1dCIgZGlyZWN0b3J5IHVuZGVyIHRoZQ0KbW9kdWxlXCdzIGluc3RhbGxhdGlvbiBkaXJlY3RvcnksIGFzc3VtaW5nIHRoZSB3ZWIgc2VydmVyIGhhcyBwZXJtaXNzaW9uIHRvIHdyaXRlIHRoZXJlLg0KPC91bD48L2xpPjwvbGk+PC91bD4NCg0KPGgzPkVtYWlsIGFuZCBGbGF0IEZpbGUgVGVtcGxhdGVzPC9oMz4NCjxwPk1hbiBkaXNwb3NpdGlvbiB0eXBlcyBhbGxvdyB5b3UgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZm9yIHRoZSBlbWFpbCB0aGF0IGlzIGdlbmVyYXRlZCwgb3IgZm9yIHRoZSB3YXkgdGhlIHJlc3VsdHMgYXJlIHdyaXR0ZW4gdG8gYSBmaWxlLiBJZiB5b3Ugb3B0IG5vdCB0byBjcmVhdGUgYSB0ZW1wbGF0ZSwgdGhlIEZvcm1CdWlsZGVyIHdpbGwgdXNlIGl0XCdzIG93biBiZXN0IGd1ZXNzLCB3aGljaCBtYXkgb3IgbWF5IG5vdCB3b3JrIG91dCB0byB5b3VyIGxpa2luZy4gWW91IGNhbiBhbHdheXMgY2xpY2sgb24gdGhlICJDcmVhdGUgU2FtcGxlIFRlbXBsYXRlIiBhbmQgdGhlbiBjdXN0b21pemUgdGhlIHJlc3VsdHMuPC9wPg0KPHA+Tm90ZSB0aGF0IG9uY2UgeW91XCd2ZSBjaGFuZ2VkIGEgdGVtcGxhdGUsIGl0IHdpbGwgbm8gbG9uZ2VyIGF1dG9tYXRpY2FsbHkgYWRkIG5ldyBmaWVsZHMuIEZvciB0aGlzIHJlYXNvbiwgaXRcJ3MgdXN1YWxseSBiZXN0IHRvIGNyZWF0ZSB5b3VyIHRlbXBsYXRlcyBhcyB0aGUgbGFzdCBzdGVwIG9mIGNyZWF0aW5nIHlvdXIgZm9ybS48L3A+DQoNCjxoMz5Lbm93biBJc3N1ZXM8L2gzPg0KPHVsPg0KPGxpPlNvbWUgZmllbGQgdHlwZXMgZnJvbSBGZWVkYmFja0Zvcm1zIGFyZSBub3QgaW1wbGVtZW50ZWQgaW4gRm9ybUJ1aWxkZXIuIElmIHRoZXJlIGlzIGRlbWFuZCBmb3IgdGhlbSwgdGhleSB3aWxsIGJlIGFkZGVkLjwvbGk+DQo8bGk+Rm9ybUJ1aWxkZXIgaXMgbm90IHlldCBpbnRlZ3JhdGVkIHdpdGggRnJvbnRFbmQgVXNlcnMuIEl0IHdpbGwgYmUuPC9saT4NCjxsaT5Gb3JtQnVpbGRlciBjYW5ub3QgeWV0IGJlIGlubGluZWQuIFRoYXQgc2hvdWxkIGJlIGEgc2ltcGxlIHVwZ3JhZGUgZG93biB0aGUgbGluZS48L2xpPg0KPGxpPkZvcm1CdWlsZGVyIGRvZXMgbm90IHlldCBzdXBwb3J0IHByZXR0eSB1cmxzLCBhbHRob3VnaCB0aGF0IHNob3VsZG5cJ3QgbWF0dGVyIHNpbmNlIHRoZSB1c2VyIHNpZGUgaXMgcHJldHR5IHNpbXBsZS48L2xpPg0KPC91bD4NCg0KPGgzPlRyb3VibGVzaG9vdGluZzwvaDM+DQo8b2w+PGxpPiBGaXJzdCBzdGVwIGlzIHRvIGNoZWNrIHlvdVwncmUgcnVubmluZyBDTVMgMS4wLXN2biBvciBsYXRlci48L2xpPg0KPGxpPiBTZWNvbmQgc3RlcCBpcyB0byByZWFkIGFuZCB1bmRlcnN0YW5kIHRoZSBjYXZlYXQgYWJvdXQgV1lTSVdZRyBlZGl0b3JzIHVwIGluIHRoZQ0Kc2VjdGlvbiA8ZW0+QWRkaW5nIGEgRm9ybSB0byBhIFBhZ2U8L2VtPi48L2xpPg0KPGxpPiBJZiB5b3VcJ3JlIG1pc3NpbmcgZmllbGRzIGluIGFuIGVtYWlsIHRoYXQgZ2V0cyBnZW5lcmF0ZWQsIGNoZWNrIHRoZSBkaXNwb3NpdGlvbiBmaWVsZFwncyB0ZW1wbGF0ZSwgYW5kIG1ha2Ugc3VyZSB5b3VcJ3JlIHNwZWNpZnlpbmcgdGhlIG1pc3NpbmcgZmllbGRzLiBTZWVtcyBvYnZpb3VzLCBidXQgaXRcJ3MgYW4gZWFzeSBtaXN0YWtlIHRvIG1ha2UuPC9saT4NCjxsaT4gSnVzdCBtZXNzIGFyb3VuZCBhbmQgdHJ5IGNsaWNraW5nIG9uIGxpbmtzIGFuZCBpY29ucyBhbmQgc3R1ZmYuIFNlZSB3aGF0IGhhcHBlbnMuPC9saT4NCjxsaT4gTGFzdCByZXNwb3J0IGlzIHRvIGVtYWlsIG1lIG9yIGNhdGNoIG1lIG9uIElSQyBhbmQgd2UgY2FuIGdvIGZyb20gdGhlcmUuPC9saT4NCjwvb2w+IA0KPHA+VGhpcyBpcyBhIGZhaXJseSBlYXJseSB2ZXJzaW9uLCBpZiBub3QgYSByYW5rIGJldGEgcmVsZWFzZSwgYW5kIGl0IGlzIHByb2JhYmx5IHN0aWxsIGJ1Z2d5LiBXaGlsZSBJXCd2ZSBkb25lIGFsbCBJIGNhbg0KdG8gbWFrZSBzdXJlIG5vIGVncmVnaW91cyBidWdzIGhhdmUgY3JlcHQgaW4sIEkgaGF2ZSB0byBhZG1pdCB0aGF0IGR1cmluZyB0ZXN0aW5nLCB0aGlzIHByb2dyYW0NCnJldmVhbGVkIHNldmVuIGNvY2tyb2FjaGVzLCB0d28gZWFyd2lncywgYSBzbWFsbCBmYW1pbHkgb2YgYXBoaWRzLCBhbmQgYSB3YWxraW5nLXN0aWNrIGluc2VjdC4gSXQgYWxzbw0KYXRlIHRoZSBuZWlnaGJvclwncyBuYXN0eSBsaXR0bGUgeWFwIGRvZywgZm9yIHdoaWNoIEkgd2FzIGluYXBwcm9wcmlhdGVseSBncmF0ZWZ1bC48L3A+DQo8cD5UaGUgZmluYWwgcmVsZWFzZSB3aWxsIGluY2x1ZGUgYnVnIGZpeGVzLCBkb2N1bWVudGF0aW9uLCBhbmQgdW5jb25kaXRpb25hbCBsb3ZlLjwvcD4NCjxoMz5TdXBwb3J0PC9oMz4NCjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4NCjx1bD4NCjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlLCBGQVFzLCBvciB0byBmaWxlIGEgQnVnIFJlcG9ydCwgcGxlYXNlIHZpc2l0IHRoZSBDTVMgTWFkZSBTaW1wbGUgIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmciPkRldmVsb3BlciBGb3JnZTwvYT4uPC9saT4NCjxsaT5UbyBvYnRhaW4gY29tbWVyY2lhbCBzdXBwb3J0LCBwbGVhc2Ugc2VuZCBhbiBlbWFpbCB0byB0aGUgYXV0aG9yIGF0IDxhIGhyZWY9Im1haWx0bzpzamdAY21zbW9kdWxlcy5jb20iPjxzamdAY21zbW9kdWxlcy5jb20+PC9hPi48L2xpPg0KPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnIj5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi48L2xpPg0KPGxpPlRoZSBhdXRob3IgY2FuIG9mdGVuIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXMiPkNNUyBJUkMgQ2hhbm5lbDwvYT4uPC9saT4NCjxsaT5MYXN0bHksIHlvdSBtYXkgaGF2ZSBzb21lIHN1Y2Nlc3MgZW1haWxpbmcgdGhlIGF1dGhvciBkaXJlY3RseSBhbmQgZ3JvdmVsbGluZyBmb3IgZnJlZSBzdXBwb3J0LjwvbGk+ICANCjwvdWw+DQo8cD5BcyBwZXIgdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCBhcy1pcy4gUGxlYXNlIHJlYWQgdGhlIHRleHQNCm9mIHRoZSBsaWNlbnNlIGZvciB0aGUgZnVsbCBkaXNjbGFpbWVyLjwvcD4NCjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPg0KPHA+Q29weXJpZ2h0IMKpIDIwMDYsIFNhbXVlbCBHb2xkc3RlaW4gPGEgaHJlZj0ibWFpbHRvOnNqZ0BjbXNtb2R1bGVzLmNvbSI+PHNqZ0BjbXNtb2R1bGVzLmNvbT48L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+DQo8cD5UaGlzIG1vZHVsZSBoYXMgYmVlbiByZWxlYXNlZCB1bmRlciB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5HTlUgUHVibGljIExpY2Vuc2U8L2E+LiBZb3UgbXVzdCBhZ3JlZSB0byB0aGlzIGxpY2Vuc2UgYmVmb3JlIHVzaW5nIHRoZSBtb2R1bGUuPC9wPic7CiRsYW5nWydjaGFuZ2Vsb2cnXSA9ICcJCSAgICA8dWw+DQogICAgICAgICAgICAgICAgICAgIDxsaT5WZXJzaW9uIDAuMi4zDQogICAgICAgICAgICAgICAgICAgICAgPHA+QWRkIHRoZSBhYmlsaXR5IHRvIGNhbGwgYSBzZWxlY3RhYmxlIHVzZXIgZGVmaW5lZCB0YWcgdXBvbiBkaXNwb3NpdGlvbiBvZiB0aGUgZm9ybS48L3A+DQogICAgICAgICAgICAgICAgICAgIDwvbGk+DQogICAgICAgICAgICAgICAgICAgIDxsaT5WZXJzaW9uIDAuMi4yDQogICAgICAgICAgICAgICAgICAgICAgIDxwPk1hbnkgdGhhbmtzIHRvIFV0dGVyIERlc2lnbiBmb3Igc3BvbnNvcmluZyBzb21lIGNoYW5nZXMgYW5kIGJ1Z2ZpeGVzLCB3aGljaCBpbmNsdWRlOg0KICAgICAgICAgICAgICAgICAgICAgICAgICA8dWw+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPkFkZGVkIGZpbGUgdXBsb2FkIGNhcGFiaWxpdGllcyB0byB0aGUgZW1haWwgZGlzcG9zaXRpb248L2xpPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5BZGQgUGFnZVNldFN0YXJ0IGFuZCBQYWdlU2V0RW5kIGZpZWxkIHR5cGVzDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlRoZXNlIGZpZWxkIHR5cGVzIGFsbG93IHlvdSB0byBjcmVhdGUgZmllbGRzZXRzIGluIHlvdXIgZm9ybSwgYW5kIG9yZ2FuaXNlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHlvdXIgZmllbGRzIGxvZ2ljYWxseSBmb3IgdGhlIHVzZXIuICBZb3UgY2FuIGV2ZW4gbmVzdCBmaWVsZHNldHMsIGFuZA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NvY2lhdGUgYSBzdHlsZSB3aXRoIHRoZW0gYXBwcm9wcmlhdGVseS4gIFRoZSBkZWZhdWx0IHRlbXBsYXRlIHdhcyBjaGFuZ2VkDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvIHByZXZlbnQgaXQgZnJvbSB3cmFwcGluZyBhIGRpdiBhcm91bmQgdGhlc2UgdHlwZXMgb2YgZmllbGRzLg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+Rml4ZWQgYSBwcm9ibGVtIHdpdGggREFURVRJTUUgZmllbGRzIG9uIGluc3RhbGwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+VGhpcyBzb2x2ZXMgYSBwcm9ibGVtIHdoZW4gb24gaW5zdGFsbCB0aGUgcmVzcG9uc2UgdGFibGUgd291bGQgc29tZXRpbWVzIG5vdCBnZXQgY3JlYXRlZCB3aGVuIHVzaW5nIGFkb2RiIGxpdGU8L2xpPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+DQogICAgICAgICAgICAgICAgICAgICAgIDwvcD4NCgkJICAgIDxsaT5WZXJzaW9uIDAuMiAtIDE0IE5vdmVtYmVyIDIwMDYuIENhbGd1eSAmIHRzd1wncyBidWcgZml4ZXMgZm9yIGZpZWxkIHJlLW9yZGVyaW5nIGFuZCBjdXN0b20gdGVtcGxhdGVzLiBBZGRpdGlvbmFsIGJ1ZyBmaXhlcyBmb3IgZmllbGQgbGFiZWxzLjwvbGk+DQoJCSAgICA8bGk+VmVyc2lvbiAwLjEgLSA4IEp1bHkgMjAwNi4gSW5pdGlhbCBSZWxlYXNlPC9saT4NCiAgICAgICAgICAgICAgICAgICAgPC91bD4NCgkJJzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuMTIxODg0NzY0NC4xMTY3ODk1NDU1LjExNzcyODY3MDkuMTE3NzM0OTE3Ny4zNSc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjExNzcyODY3MDkuMzQuMjMudXRtY2NuPShyZWZlcnJhbCl8dXRtY3NyPWZvcnVtLmNtc21hZGVzaW1wbGUub3JnfHV0bWNjdD0vaW5kZXgucGhwL3RvcGljLDY3NjMuMC5odG1sfHV0bWNtZD1yZWZlcnJhbCc7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lang/ext/sv_SE.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0Zvcm11bCZhdW1sO3JieWdnYXJlbiAoRm9ybSBCdWlsZGVyKSc7CiRsYW5nWydmaWVsZF90eXBlXyddID0gJ0YmYXVtbDtsdHR5cCBpbnRlIHZhbGQnOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldEVuZCddID0gJy1TbHV0IHAmYXJpbmc7IGdydXBwcnV0YSAoZmllbGRzZXQpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmllbGRzZXRTdGFydCddID0gJy1TdGFydCBwJmFyaW5nOyBncnVwcHJ1dGEgKGZpZWxkc2V0KSc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRGaWVsZCddID0gJ0lubWF0bmluZ3NmJmF1bWw7bHQgKHRleHQgaW5wdXQpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkRXhwYW5kYWJsZSddID0gJ0lubWF0bmluZ3NmJmF1bWw7bHQgKGZsZXJhKSc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRBcmVhRmllbGQnXSA9ICdUZXh0cnV0YSAodGV4dGFyZWEpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hGaWVsZCddID0gJ0tyeXNzcnV0YSAoY2hlY2sgYm94KSc7CiRsYW5nWydmaWVsZF90eXBlX0NoZWNrYm94R3JvdXBGaWVsZCddID0gJ0tyeXNzcnV0ZWdydXBwIChjaGVjayBib3ggZ3JvdXApJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUHVsbGRvd25GaWVsZCddID0gJ1J1bGxnYXJkaW5zbWVueSc7CiRsYW5nWydmaWVsZF90eXBlX011bHRpc2VsZWN0RmllbGQnXSA9ICdNdWx0aXYmYXVtbDtsamFyZSc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRlUGlja2VyRmllbGQnXSA9ICdWJmF1bWw7bGphcmUgZiZvdW1sO3IgYW1lcmlrYW5zayBzdGF0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ291bnRyeVBpY2tlckZpZWxkJ10gPSAnTGFuZHYmYXVtbDtsamFyZSc7CiRsYW5nWydmaWVsZF90eXBlX0RhdGVQaWNrZXJGaWVsZCddID0gJ0RhdHVtdiZhdW1sO2xqYXJlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGltZVBpY2tlckZpZWxkJ10gPSAnVGlkdiZhdW1sO2xqYXJlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUmFkaW9Hcm91cEZpZWxkJ10gPSAnQWx0ZXJuYXRpdmtuYXBwZ3J1cHAnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRpcmVjdG9yJ10gPSAnKkUtcG9zdGEgcmVzdWx0YXQgYmFzZXJhZGUgcCZhcmluZzsgdmFsIGkgcnVsbGdhcmRpbnNtZW55JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25GaWxlRGlyZWN0b3InXSA9ICcqU3BhcmEgcmVzdWx0YXQgdGlsbCBmaWwgYmFzZXJhZGUgcCZhcmluZzsgdmFsIGkgcnVsbGdhcmRpbnNtZW55JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25NdWx0aXNlbGVjdEZpbGVEaXJlY3RvciddID0gJypTcGFyYSByZXN1bHRhdCB0aWxsIGZpbChlcikgYmFzZXJhZGUgcCZhcmluZzsgZmxlcmEgdmFsJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25QYWdlUmVkaXJlY3RvciddID0gJypPbWRpcmlnZXJhIHRpbGwgc2lkYSBiYXNlcmF0IHAmYXJpbmc7IHZhbCBpIHJ1bGxnYXJkaW5zbWVueSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWwnXSA9ICcqRS1wb3N0YSByZXN1bHRhdGV0IHRpbGwgYmVzdCZhdW1sO21kIGFkcmVzcy9iZXN0JmF1bWw7bWRhIGFkcmVzc2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbENvbmZpcm1hdGlvbiddID0gJypBZHJlc3MgZiZvdW1sO3IgdmVyaWZpZXJhLXZpYS1lcG9zdCc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRmlsZSddID0gJypTa3JpdiByZXN1bHRhdCB0aWxsIHZhbmxpZyBmaWwnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRhdGFiYXNlJ10gPSAnKlNwYXJhIHJlc3VsdGF0IGkgZGF0YWJhcyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uVXNlclRhZyddID0gJypBbnJvcCB0aWxsIGVuIGFudiZhdW1sO25kYXJkZWZpbmllcmFkIHRhZ2cgbWVkIGZvcm11bCZhdW1sO3JyZXN1bHRhdCc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGVsaXZlclRvRW1haWxBZGRyZXNzRmllbGQnXSA9ICcqRS1wb3N0YSB0aWxsIGVuIGF2IGFudiZhdW1sO25kYXJlbiBhbmdpdmVuIGUtcG9zdGFkcmVzcyc7CiRsYW5nWydmaWVsZF90eXBlX1BhZ2VCcmVha0ZpZWxkJ10gPSAnLVNpZGJyeXRuaW5nJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmlsZVVwbG9hZEZpZWxkJ10gPSAnRmlsdXBwbGFkZG5pbmcnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxBZGRyZXNzRmllbGQnXSA9ICdFLXBvc3RmJmF1bWw7bHQgZiZvdW1sO3IgJnF1b3Q7RnImYXJpbmc7bi1hZHJlc3NlbiZxdW90Oyc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbE5hbWVGaWVsZCddID0gJ0UtcG9zdGYmYXVtbDtsdCBmJm91bWw7ciAmcXVvdDtGciZhcmluZztuLW5hbW5ldCZxdW90Oyc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbFN1YmplY3RGaWVsZCddID0gJ0UtcG9zdGYmYXVtbDtsdCBmJm91bWw7ciAmcXVvdDsmQXVtbDttbmUmcXVvdDsnOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0aWNUZXh0RmllbGQnXSA9ICctU3RhdGlzayB0ZXh0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3lzdGVtTGlua0ZpZWxkJ10gPSAnLVN0YXRpc2sgbCZhdW1sO25rJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTGlua0ZpZWxkJ10gPSAnTCZhdW1sO25rIChhbnYmYXVtbDtuZGFyY2VudHJlcmFkKSc7CiRsYW5nWydmaWVsZF90eXBlX0hpZGRlbkZpZWxkJ10gPSAnLWcmb3VtbDttdCBmJmF1bWw7bHQnOwokbGFuZ1snZmllbGRfdHlwZV9Db21wdXRlZEZpZWxkJ10gPSAnLWJlciZhdW1sO2tuYXQgZiZhdW1sO2x0JzsKJGxhbmdbJ3ZhbGlkYXRpb25fbm9uZSddID0gJ0luZ2VuIHZlcmlmaWVyaW5nJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbnVtZXJpYyddID0gJ051bWVyaXNrJzsKJGxhbmdbJ3ZhbGlkYXRpb25faW50ZWdlciddID0gJ0hlbHRhbCc7CiRsYW5nWyd2YWxpZGF0aW9uX2VtYWlsX2FkZHJlc3MnXSA9ICdFLXBvc3RhZHJlc3MnOwokbGFuZ1sndmFsaWRhdGlvbl9tdXN0X2NoZWNrJ10gPSAnTSZhcmluZztzdGUgdmFyYSBpa3J5c3NhZCc7CiRsYW5nWyd2YWxpZGF0aW9uX3JlZ2V4X21hdGNoJ10gPSAnTWF0Y2hhIHJlZ3VsaiZhdW1sO3J1dHRyeWNrJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbm9tYXRjaCddID0gJ01hdGNoYSBpbnRlIHJlZ3VsaiZhdW1sO3J1dHRyeWNrJzsKJGxhbmdbJ3JlcXVpcmVkX2ZpZWxkX21pc3NpbmcnXSA9ICdJbmdldCB2JmF1bWw7cmRlIGFuZ2F2cyBmJm91bWw7ciBldHQgZiZhdW1sO2x0IHNvbSAmYXVtbDtyIG9ibGlnYXRvcmlza3QnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfdmFsdWUnXSA9ICdBbmdlIGV0dCB2JmF1bWw7cmRlIGYmb3VtbDtyICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX251bWJlciddID0gJ0FuZ2UgZXR0IHRhbCBmJm91bWw7ciAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfdmFsaWQnXSA9ICdBbmdlIGV0dCBnaWx0aWd0IHYmYXVtbDtyZGUgZiZvdW1sO3IgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FuX2ludGVnZXInXSA9ICdBbmdlIGV0dCBoZWx0YWxzdiZhdW1sO3JkZSBmJm91bWw7ciAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5fZW1haWwnXSA9ICdBbmdlIGVuIGdpbHRpZyBlLXBvc3RhZHJlc3MgZiZvdW1sO3IgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1snbm90X3ZhbGlkX2VtYWlsJ10gPSAnJnF1b3Q7JXMmcXVvdDsgdmVya2FyIGludGUgdmFyYSBlbiBnaWx0aWcgZS1wb3N0YWRyZXNzISc7CiRsYW5nWydwbGVhc2VfZW50ZXJfbm9fbG9uZ2VyJ10gPSAnQW5nZSBldHQgdiZhdW1sO3JkZSBzb20gaW50ZSAmYXVtbDtyIGwmYXVtbDtuZ3JlICZhdW1sO24gJXMgdGVja2VuJzsKJGxhbmdbJ3RpdGxlX2xpc3RfZGVsaW1pdGVyJ10gPSAnVGVja2VuIGF0dCBhbnYmYXVtbDtuZGEgc29tIGF2Z3ImYXVtbDtuc2FyZSBpIHJlc3VsdGF0IHNvbSByZXR1cm5lcmFyIG1lciAmYXVtbDtuIGV0dCB2JmF1bWw7cmRlJzsKJGxhbmdbJ3lvdV9uZWVkX3Blcm1pc3Npb24nXSA9ICdEdSBiZWgmb3VtbDt2ZXIgciZhdW1sO3R0aWdoZXRlbiAmcXVvdDslcyZxdW90OyBmJm91bWw7ciBhdHQgdXRmJm91bWw7cmEgZGVuICZhcmluZzt0ZyZhdW1sO3JkZW4uJzsKJGxhbmdbJ2xhY2twZXJtaXNzaW9uJ10gPSAnVHl2JmF1bWw7cnIhIER1IGhhciBpbnRlIHRpbGxyJmF1bWw7Y2tsaWdhIHImYXVtbDt0dGlnaGV0ZXIgZiZvdW1sO3IgYXR0IGtvbW1hICZhcmluZzt0IGRlbiBoJmF1bWw7ciBzZWt0aW9uZW4uJzsKJGxhbmdbJ2ZpZWxkX29yZGVyX3VwZGF0ZWQnXSA9ICdGJmF1bWw7bHRvcmRuaW5nZW4gdXBwZGF0ZXJhZC4nOwokbGFuZ1snZm9ybV9kZWxldGVkJ10gPSAnRm9ybXVsJmF1bWw7ciBib3J0dGFnZXQuJzsKJGxhbmdbJ2ZpZWxkX2RlbGV0ZWQnXSA9ICdGJmF1bWw7bHQgYm9ydHRhZ2V0Lic7CiRsYW5nWydjb25maWd1cmF0aW9uX3VwZGF0ZWQnXSA9ICdLb25maWd1cmF0aW9uIHVwcGRhdGVyYWQuJzsKJGxhbmdbJ3lvdV9tdXN0X2NoZWNrJ10gPSAnRHUgbSZhcmluZztzdGUga3J5c3NhIGkgJnF1b3Q7JXMmcXVvdDsgZiZvdW1sO3IgYXR0IGZvcnRzJmF1bWw7dHRhJzsKJGxhbmdbJ211c3Rfc3BlY2lmeV9vbmVfZGVzdGluYXRpb24nXSA9ICdEdSBtJmFyaW5nO3N0ZSBhbmdlICZhcmluZzt0bWluc3RvbmUgZW4gbW90dGFnYXJhZHJlc3MhJzsKJGxhbmdbJ2FyZV95b3Vfc3VyZV9kZWxldGVfZm9ybSddID0gJyZBdW1sO3IgZHUgcyZhdW1sO2tlciBwJmFyaW5nOyBhdHQgZHUgdmlsbCB0YSBib3J0IGZvcm11bCZhdW1sO3JldCAlcz8nOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9maWVsZCddID0gJyZBdW1sO3IgZHUgcyZhdW1sO2tlciBwJmFyaW5nOyBhdHQgZHUgdmlsbCB0YSBib3J0IGYmYXVtbDtsdGV0ICVzPyc7CiRsYW5nWydub3RpY2Vfc2VsZWN0X3R5cGUnXSA9ICdBdmFuY2VyYWRlIGluc3QmYXVtbDtsbG5pbmdhciAmYXVtbDtyIGludGUgdGlsbGcmYXVtbDtuZ2xpZ2EgZiZvdW1sO3JyJmF1bWw7biBmJmF1bWw7bHR0eXBlbiBoYXIgYW5nZXR0cy4nOwokbGFuZ1snZmllbGRfbmFtZV9pbl91c2UnXSA9ICdGJmF1bWw7bHRuYW1uZXQgJnF1b3Q7JXMmcXVvdDsgYW52JmF1bWw7bmRzIHJlZGFuLiBWJmF1bWw7bmxpZ2VuIGFudiZhdW1sO25kIHVuaWthIGYmYXVtbDtsdG5hbW4gZWxsZXIgYXZtYXJrZXJhIHVuaWthIGYmYXVtbDtsdG5hbW4gaSBrb25maWd1cmF0aW9uZW4gZiZvdW1sO3IgRm9ybXVsJmF1bWw7cmJ5Z2dhcmVuLic7CiRsYW5nWydmaWVsZF9ub19uYW1lJ10gPSAnRiZhdW1sO2x0IG0mYXJpbmc7c3RlIGhhIGV0dCBuYW1uLCBzJmFyaW5nO3ZpZGEgZHUgaW50ZSBhdm1hcmtlcmFyIGRldHRhIGkgRm9ybXVsJmF1bWw7cmJ5Z2dhcmVucyBrb25maWd1cmF0aW9uLic7CiRsYW5nWydhbm9ueW1vdXMnXSA9ICdBbm9ueW0nOwokbGFuZ1snYWJicmV2aWF0aW9uX2xlbmd0aCddID0gJ0wmYXVtbDtuZ2Q6ICVzJzsKJGxhbmdbJ2JveGVzJ10gPSAnJXMgcnV0b3InOwokbGFuZ1snb3B0aW9ucyddID0gJyVzIHZhbCc7CiRsYW5nWyd0ZXh0X2xlbmd0aCddID0gJyUgdGVja2VuLic7CiRsYW5nWydvcmRlciddID0gJ09yZG5pbmcnOwokbGFuZ1sndW5zcGVjaWZpZWQnXSA9ICdbb3NwZWNpZmljZXJhdH0nOwokbGFuZ1snYWRkZWQnXSA9ICd0aWxsYWdkJzsKJGxhbmdbJ3VwZGF0ZWQnXSA9ICd1cHBkYXRlcmFkJzsKJGxhbmdbJ3NvcnRfb3B0aW9ucyddID0gJ1NvcnRlcmluZ3N2YWwgdmlkIG91dHB1dC91dG1hdG5pbmcnOwokbGFuZ1snc2VsZWN0X29uZSddID0gJ1YmYXVtbDtsaiBFbic7CiRsYW5nWydzZWxlY3RfdHlwZSddID0gJ1YmYXVtbDtsaiBUeXAnOwokbGFuZ1sndG8nXSA9ICdUaWxsJzsKJGxhbmdbJ3llcyddID0gJ0phJzsKJGxhbmdbJ25vJ10gPSAnTmVqJzsKJGxhbmdbJ3JlY2lwaWVudHMnXSA9ICdtb3R0YWdhcmUnOwokbGFuZ1snZmlsZV9jb3VudCddID0gJyVzIG0mb3VtbDtqbGlnYSBmaWxlcic7CiRsYW5nWydkZXN0aW5hdGlvbl9jb3VudCddID0gJyVzIGRlc3RpbmF0aW9uZXInOwokbGFuZ1snc2F2ZSddID0gJ1NwYXJhJzsKJGxhbmdbJ2FkZCddID0gJ0wmYXVtbDtnZyB0aWxsJzsKJGxhbmdbJ3VwZGF0ZSddID0gJ1VwcGRhdGVyYSc7CiRsYW5nWydzYXZlX2FuZF9jb250aW51ZSddID0gJ1NwYXJhIG9jaCBmb3J0cyZhdW1sO3R0IHJlZGlnZXJhJzsKJGxhbmdbJ2luZm9ybWF0aW9uJ10gPSAnSW5mb3JtYXRpb24nOwokbGFuZ1snYXV0b21hdGljJ10gPSAnQXV0b21hdGlzayc7CiRsYW5nWydmb3JtcyddID0gJ0Zvcm11bCZhdW1sO3InOwokbGFuZ1snZm9ybSddID0gJ0Zvcm11bCZhdW1sO3IgJXMnOwokbGFuZ1snY29uZmlndXJhdGlvbiddID0gJ0tvbmZpZ3VyYXRpb24nOwokbGFuZ1snZmllbGRfcmVxdWlyZW1lbnRfdXBkYXRlZCddID0gJ1N0YXR1cyBmJm91bWw7ciBvYmxpZ2F0b3Jpc2t0IGYmYXVtbDtsdCB1cHBkYXRlcmFkJzsKJGxhbmdbJ21heGltdW1fc2l6ZSddID0gJ01heHN0b3JsZWsnOwokbGFuZ1sncGVybWl0dGVkX2V4dGVuc2lvbnMnXSA9ICdGaWwmYXVtbDtuZGVsc2VyJzsKJGxhbmdbJ3Blcm1pdHRlZF9maWxldHlwZXMnXSA9ICdUaWxsJmFyaW5nO3RuYSBmaWx0eXBlcic7CiRsYW5nWydmaWxlX3Rvb19sYXJnZSddID0gJ0RlbiB1cHBsYWRkYWRlIGZpbGVuICZvdW1sO3IgZiZvdW1sO3Igc3RvciEgTWF4aW1hbCBzdG9ybGVrICZhdW1sO3I6JzsKJGxhbmdbJ2lsbGVnYWxfZmlsZV90eXBlJ10gPSAnRGVuIGgmYXVtbDtyIGZpbHR5cGVuIGthbiBpbnRlIGxhZGRhcyB1cHAuIEtvbnRyb2xsZXJhIGF0dCBmaWwmYXVtbDtuZGVsc2VuICZhdW1sO3Iga29ycmVrdC4nOwokbGFuZ1sndXBsb2FkJ10gPSAnTGFkZGEgdXBwJzsKJGxhbmdbJ2Zvcm1faW1wb3J0ZWQnXSA9ICdGb3JtdWwmYXVtbDtyIGltcG9ydGVyYXQuJzsKJGxhbmdbJ2Zvcm1faW1wb3J0X2ZhaWxlZCddID0gJ0ltcG9ydCBhdiBmb3JtdWwmYXVtbDtyIG1pc3NseWNrYWRlcyEgRGV0IHZhciBwcm9ibGVtIG1lZCBYTUwtZmlsZW5zIGZvcm1hdC4nOwokbGFuZ1sncm93cyddID0gJyVzIHJhZGVyJzsKJGxhbmdbJ2NvbHMnXSA9ICclcyBrb2x1bW5lcic7CiRsYW5nWycxMl9ob3VyJ10gPSAnMTItdGltbWFyc2tsb2NrYSc7CiRsYW5nWycyNF9ob3VyJ10gPSAnMjQtdGltbWFyc2tsb2NrYSc7CiRsYW5nWydob3VyJ10gPSAnVGltbWUnOwokbGFuZ1snbWluJ10gPSAnTWludXQnOwokbGFuZ1snbWVyaWQnXSA9ICdNZXJpZGlhbic7CiRsYW5nWydkYXRlX3JhbmdlJ10gPSAnUiZhdW1sO2NrdmlkZDogJXMgLSAlcyc7CiRsYW5nWyd0aGFua3MnXSA9ICdUYWNrISBEaXR0IGZvcm11bCZhdW1sO3IgaGFyIHNraWNrYXRzLic7CiRsYW5nWydlZGl0J10gPSAnUmVkaWdlcmEnOwokbGFuZ1snZGVsZXRlJ10gPSAnVGEgYm9ydCc7CiRsYW5nWydkYXknXSA9ICdEYWcnOwokbGFuZ1snbW9uJ10gPSAnTSZhcmluZztuYWQnOwokbGFuZ1sneWVhciddID0gJyZBcmluZztyJzsKJGxhbmdbJ3VuaW5zdGFsbGVkJ10gPSAnTW9kdWxlbiBhdmluc3RhbGxlcmFkLic7CiRsYW5nWydpbnN0YWxsZWQnXSA9ICdNb2R1bHZlcnNpb24gJXMgaW5zdGFsbGVyYWQuJzsKJGxhbmdbJ3VwZ3JhZGVkJ10gPSAnTW9kdWxlbiB1cHBncmFkZXJhZCB0aWxsIHZlcnNpb24gJXMuJzsKJGxhbmdbJ2J1dHRvbl9wcmV2aW91cyddID0gJ1RpbGxiYWthLi4uJzsKJGxhbmdbJ2J1dHRvbl9zdWJtaXQnXSA9ICdTa2lja2EgZm9ybXVsJmF1bWw7cic7CiRsYW5nWydidXR0b25fY29udGludWUnXSA9ICdGb3J0cyZhdW1sO3R0Li4uJzsKJGxhbmdbJ3ZhbHVlX2NoZWNrZWQnXSA9ICdJa3J5c3NhZCc7CiRsYW5nWyd2YWx1ZV91bmNoZWNrZWQnXSA9ICdFaiBpa3J5c3NhZCc7CiRsYW5nWyd0YWJfbWFpbiddID0gJ0h1dnVkLSc7CiRsYW5nWyd0YWJfc3ltYm9sJ10gPSAnSW5zdCZhdW1sO2xsbmluZ2FyIGYmb3VtbDtyIGZvcm11bCZhdW1sO3J2aXNuaW5nJzsKJGxhbmdbJ3RhYl9zdWJtaXQnXSA9ICdTa2lja2F0IGZvcm11bCZhdW1sO3InOwokbGFuZ1sndGFiX2NhcHRjaGEnXSA9ICdJbnN0JmF1bWw7bGxuaW5nYXIgZiZvdW1sO3IgQ2FwdGNoYSc7CiRsYW5nWyd0YWJfYWR2YW5jZWQnXSA9ICdBdmFuY2VyYWRlIGluc3QmYXVtbDtsbG5pbmdhcic7CiRsYW5nWyd0YWJfdGVtcGxhdGVsYXlvdXQnXSA9ICdGb3JtdWwmYXVtbDtybWFsbCc7CiRsYW5nWyd0YWJfc3VibWlzc2lvbnRlbXBsYXRlJ10gPSAnU2tpY2thLW1hbGwnOwokbGFuZ1snY2FudXNlX3NtYXJ0eSddID0gJzxlbT5TbWFydHktdmFyaWFibGVyICZhdW1sO3IgaW50ZSB0aWxsJmFyaW5nO3RuYSBpIGRldCBoJmF1bWw7ciBmJmF1bWw7bHRldC48L2VtPic7CiRsYW5nWydhZGRfb3B0aW9ucyddID0gJ0wmYXVtbDtnZyB0aWxsIGZsZXIgdmFsJzsKJGxhbmdbJ2RlbGV0ZV9vcHRpb25zJ10gPSAnVGEgYm9ydCBtYXJrZXJhZGUgdmFsJzsKJGxhbmdbJ2FkZF9jaGVja2JveGVzJ10gPSAnTCZhdW1sO2dnIHRpbGwgZmxlciBrcnlzc3J1dG9yJzsKJGxhbmdbJ2RlbGV0ZV9jaGVja2JveGVzJ10gPSAnVGEgYm9ydCBtYXJrZXJhZGUga3J5c3NydXRvcic7CiRsYW5nWydhZGRfYWRkcmVzcyddID0gJ0wmYXVtbDtnZyB0aWxsIGVuIGFkcmVzcyc7CiRsYW5nWydkZWxldGVfYWRkcmVzcyddID0gJ1RhIGJvcnQgbWFya2VyYWRlIGFkcmVzc2VyJzsKJGxhbmdbJ2FkZF9kZXN0aW5hdGlvbiddID0gJ0wmYXVtbDtnZyB0aWxsIG1vdHRhZ2FyZSc7CiRsYW5nWydkZWxldGVfZGVzdGluYXRpb24nXSA9ICdUYSBib3J0IG1hcmtlcmFkZSBtb3R0YWdhcmUnOwokbGFuZ1snc3VzcGVjdGVkX3NwYW0nXSA9ICdGJm91bWw7ciBtJmFyaW5nO25nYSBlLXBvc3RtZWRkZWxhbmRlbiBnZW5lcmVyYWRlcyBmciZhcmluZztuIGRpbiBJUC1hZHJlc3MuIEFudGktc2tyJmF1bWw7cHBvc3Qta29kIGhhciBmJm91bWw7cmhpbmRyYXQgYXR0IGRlIGxldmVyZXJhdHMuJzsKJGxhbmdbJ3N1c3BlY3RlZF9zcGFtX2xvZyddID0gJ01pc3N0JmF1bWw7bmt0IHNrciZhdW1sO3Bwb3N0IGZyJmFyaW5nO24gSVAtYWRyZXNzZW4gJXMgc3RvcHBhZGVzLic7CiRsYW5nWydyZW9yZGVyJ10gPSAnJkF1bWw7bmRyYSBmJmF1bWw7bHRvcmRuaW5nJzsKJGxhbmdbJ2NhbmNlbCddID0gJyZBcmluZztuZ3JhJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcGF0aCddID0gJ00mYXJpbmc7bG1hcHAgZiZvdW1sO3IgZmlsZXInOwokbGFuZ1sndGl0bGVfdWR0X25hbWUnXSA9ICdBbnYmYXVtbDtuZGFyZGVmaW5pZXJhZCB0YWdnJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZHNfZGVzdHBhZ2UnXSA9ICdTaWRhIGF0dCAmYXJpbmc7dGVydiZhdW1sO25kYSB0aWxsIG1lZCB1cHBsYWRkbmluZ3NsJmF1bWw7bmsnOwokbGFuZ1sndGl0bGVfdXBsb2FkbW9kdWxlX3N1bW1hcnknXSA9ICdTa2lja2F0IG1lZCBmb3JtdWwmYXVtbDtyYnlnZ2FyZW4nOwokbGFuZ1sndGl0bGVfdXBsb2Fkc19jYXRlZ29yeSddID0gJ1VwcGxhZGRuaW5nc2thdGVnb3JpJzsKJGxhbmdbJ3RpdGxlX3NlbmR0b191cGxvYWRzJ10gPSAnU2tpY2thIGRlbm5hIGZpbCB0aWxsIHVwcGxhZGRuaW5nc21vZHVsZW4uJzsKJGxhbmdbJ3RpdGxlX2xlZ2VuZCddID0gJ0xlZ2VuZCc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX2xlbmd0aCddID0gJ01heGwmYXVtbDtuZ2QnOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfbGFiZWwnXSA9ICdFdGlrZXR0IGYmb3VtbDtyIGtyeXNzcnl0YSc7CiRsYW5nWyd0aXRsZV9yYWRpb19sYWJlbCddID0gJ0V0aWtldHQgZiZvdW1sO3IgYWx0ZXJuYXRpdmtuYXBwJzsKJGxhbmdbJ3RpdGxlX2NoZWNrZWRfdmFsdWUnXSA9ICdWJmF1bWw7cmRlIG4mYXVtbDtyIGlrcnlzc2FkJzsKJGxhbmdbJ3RpdGxlX3VuY2hlY2tlZF92YWx1ZSddID0gJ1YmYXVtbDtyZGUgbiZhdW1sO3IgZWogaWtyeXNzYWQnOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfZGV0YWlscyddID0gJ0RldGFsamVyIGYmb3VtbDtyIGtyeXNzcnV0ZWdydXBwJzsKJGxhbmdbJ3RpdGxlX2RlbGV0ZSddID0gJ1RhIGJvcnQ/JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9vbmVfbWVzc2FnZSddID0gJ1RleHQgZiZvdW1sO3IgJnF1b3Q7ViZhdW1sO2xqIEVuJnF1b3Q7JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl9kaXNwbGF5bmFtZSddID0gJ05hbW4gZiZvdW1sO3IgdXJ2YWxzdmlzbmluZyc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fc3ViamVjdCddID0gJyZBdW1sO21uZSBmJm91bWw7ciB1cnZhbCc7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9jb3VudHJ5J10gPSAnU3RhbmRhcmR1cnZhbCc7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9zdGF0ZSddID0gJ1N0YW5kYXJkdXJ2YWwnOwokbGFuZ1sndGl0bGVfb3B0aW9uX25hbWUnXSA9ICdOYW1uIGYmb3VtbDtyIGFsdGVybmF0aXYnOwokbGFuZ1sndGl0bGVfb3B0aW9uX3ZhbHVlJ10gPSAnViZhdW1sO3JkZXQgc2tpY2thdCc7CiRsYW5nWyd0aXRsZV9wdWxsZG93bl9kZXRhaWxzJ10gPSAnQWx0ZXJuYXRpdiBpIHJ1bGxnYXJkaW5zbWVueSc7CiRsYW5nWyd0aXRsZV9tdWx0aXNlbGVjdF9kZXRhaWxzJ10gPSAnTXVsdGl2YWwtYWx0ZXJuYXRpdic7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9hZGRyZXNzJ10gPSAnTW90dGFnYXJlbnMgZS1wb3N0YWRyZXNzJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2ZpbGVuYW1lJ10gPSAnTmFtbiBwJmFyaW5nOyBtJmFyaW5nO2xmaWwnOwokbGFuZ1sndGl0bGVfZW1haWxfZnJvbV9uYW1lJ10gPSAnJnF1b3Q7RnImYXJpbmc7bi1uYW1uJnF1b3Q7IGYmb3VtbDtyIGUtcG9zdCc7CiRsYW5nWyd0aXRsZV9yZWxheGVkX2VtYWlsX3JlZ2V4J10gPSAnQW52JmF1bWw7bmQgZW5rZWwgZS1wb3N0dmVyaWZpZXJpbmcnOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9yZWdleF9sb25nJ10gPSAnQW52JmF1bWw7bmQgZW5rZWwgZS1wb3N0YWRyZXNzdmVyaWZpZXJpbmcgKHQuZXguIHRpbGwmYXJpbmc7dCAmcXVvdDt4QHkmcXVvdDsgaXN0JmF1bWw7bGxldCBmJm91bWw7ciBhdHQga3ImYXVtbDt2YSAmcXVvdDt4QHkuc2UmcXVvdDspJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fYWRkcmVzcyddID0gJyZxdW90O0ZyJmFyaW5nO24tYWRyZXNzJnF1b3Q7IGYmb3VtbDtyIGUtcG9zdCc7CiRsYW5nWyd0aXRsZV9lbWFpbF9lbmNvZGluZyddID0gJ0UtcG9zdHRlY2tlbmtvZG5pbmcnOwokbGFuZ1sndGl0bGVfZGlyZWN0b3JfZGV0YWlscyddID0gJ1J1bGxnYXJkaW5zbWVueWJhc2VyYWRlIGUtcG9zdGRldGFsamVyJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfbmFtZSddID0gJ0ZpbG5hbW4nOwokbGFuZ1sndGl0bGVfZW1haWxfc3ViamVjdCddID0gJyZBdW1sO21uZXNyYWQgZiZvdW1sO3IgZS1wb3N0JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmFtZSddID0gJ0Zvcm11bCZhdW1sO3JuYW1uJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fc3RhdHVzJ10gPSAnRm9ybXVsJmF1bWw7cnN0YXR1cyc7CiRsYW5nWyd0aXRsZV9yZWFkeV9mb3JfZGVwbG95bWVudCddID0gJ0YmYXVtbDtyZGlnIGF0dCBhbnYmYXVtbDtuZGFzJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTEnXSA9ICdFaiBmJmF1bWw7cmRpZyc7CiRsYW5nWyd0aXRsZV9yZWRpcmVjdF9wYWdlJ10gPSAnU2lkYSBhdHQgb21kaXJpZ2VyYSB0aWxsIGVmdGVyIGF0dCBmb3JtdWwmYXVtbDtyZXQgc2tpY2thdHMnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MiddID0gJ1YmYXVtbDtubGlnYSBsJmF1bWw7Z2cgdGlsbCBldHQgZiZhdW1sO2x0IHRpbGwgZm9ybXVsJmF1bWw7cmV0IHMmYXJpbmc7IGF0dCBhbnYmYXVtbDtuZGFyZW5zIGlubWF0bmluZyBrYW4gaGFudGVyYXMuIER1IGthbic7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHlfbGluayddID0gJ2FudiZhdW1sO25kIGRlbm5hIGdlbnYmYXVtbDtnZW4nOwokbGFuZ1sndGl0bGVfZm9ybV9hbGlhcyddID0gJ0FsaWFzIGYmb3VtbDtyIGZvcm11bCZhdW1sO3InOwokbGFuZ1sndGl0bGVfZm9ybV9maWVsZHMnXSA9ICdGb3JtdWwmYXVtbDtyZiZhdW1sO2x0JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2lkJ10gPSAnRiZhdW1sO2x0LUlEJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX25hbWUnXSA9ICdGJmF1bWw7bHRuYW1uJzsKJGxhbmdbJ3RpdGxlX3JhZGlvZ3JvdXBfZGV0YWlscyddID0gJ0RldGFsamVyIGYmb3VtbDtyIGFsdGVybmF0aXZrbmFwcGdydXBwJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3R5cGUnXSA9ICdGJmF1bWw7bHR0eXAnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MyddID0gJ2Ymb3VtbDtyIGF0dCBza2FwYSBldHQgZm9ybXVsJmF1bWw7cmhhbnRlcmluZ3NmJmF1bWw7bHQnOwokbGFuZ1sndGl0bGVfYWRkX25ld19mb3JtJ10gPSAnTCZhdW1sO2dnIHRpbGwgbnl0dCBmb3JtdWwmYXVtbDtyJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbiddID0gJ1Zpc2EgRm9ybXVsJmF1bWw7cmJ5Z2dhcmVucyB2ZXJzaW9uPyc7CiRsYW5nWyd0aXRsZV9zaG93X3ZlcnNpb25fbG9uZyddID0gJ0RldHRhIGtvbW1lciBhdHQgbCZhdW1sO2dnYSB0aWxsIHZlcnNpb25zbnVtcmV0IGYmb3VtbDtyIGRlbiB2ZXJzaW9uIGF2IEZvcm11bCZhdW1sO3JieWdnYXJtb2R1bGVuIHNvbSBkdSBoYXIgaW5zdGFsbGVyYWQgaSBlbiBrb21tZW50YXIsIGYmb3VtbDtyIGF0dCBoaiZhdW1sO2xwYSB0aWxsIG1lZCBmZWxzJm91bWw7a25pbmcuJzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZmllbGQnXSA9ICdMJmF1bWw7Z2cgdGlsbCBueXR0IGYmYXVtbDtsdCc7CiRsYW5nWyd0aXRsZV9mb3JtX3N1Ym1pdF9idXR0b24nXSA9ICdUZXh0IGYmb3VtbDtyIGZvcm11bCZhdW1sO3JldHMgc2tpY2thLWtuYXBwJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5J10gPSAnTCZhdW1sO2dnYSB0aWxsIEphdmFzY3JpcHQgZiZvdW1sO3IgZGVuIHNpc3RhIHNraWNrYS1rbmFwcGVuIGYmb3VtbDtyIGF0dCBmJm91bWw7cmhpbmRyYSBhdHQgZm9ybXVsJmF1bWw7cmV0IHNraWNrYXMgZmxlcmEgZyZhcmluZztuZ2VyPyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eV9oZWxwJ10gPSAnTCZhdW1sO2dnIHRpbGwgcyZhdW1sO2tlcmhldHNzY3JpcHQnOwokbGFuZ1sndGl0bGVfZm9ybV9uZXh0X2J1dHRvbiddID0gJ1RleHQgZiZvdW1sO3IgJnF1b3Q7TiZhdW1sO3N0YS1rbmFwcGVuJnF1b3Q7IGkgZm9ybXVsJmF1bWw7cmV0IChhbnYmYXVtbDtuZHMgZiZvdW1sO3IgZm9ybXVsJmF1bWw7ciBtZWQgZmxlcmEgc2lkb3IpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcHJldl9idXR0b24nXSA9ICdUZXh0IGYmb3VtbDtyICZxdW90O0Ymb3VtbDtyZWcmYXJpbmc7ZW5kZS1rbmFwcGVuJnF1b3Q7IGkgZm9ybXVsJmF1bWw7cmV0IChhbnYmYXVtbDtuZHMgZiZvdW1sO3IgZm9ybXVsJmF1bWw7ciBtZWQgZmxlcmEgc2lkb3IpJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3ZhbGlkYXRpb24nXSA9ICdGJmF1bWw7bHR2ZXJpZmllcmluZyc7CiRsYW5nWyd0aXRsZV9mb3JtX2Nzc19jbGFzcyddID0gJ0NTUy1rbGFzcyBmJm91bWw7ciBkZXR0YSBmb3JtdWwmYXVtbDtyJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2Nzc19jbGFzcyddID0gJ0NTUy1rbGFzcyBmJm91bWw7ciBkZXR0YSBmJmF1bWw7bHQnOwokbGFuZ1sndGl0bGVfZm9ybV9yZXF1aXJlZF9zeW1ib2wnXSA9ICdTeW1ib2wgZiZvdW1sO3IgYXR0IG1hcmtlcmEgb2JsaWdhdG9yaXNrYSBmJmF1bWw7bHQnOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWQnXSA9ICdPYmxpZ2F0b3Jpc2t0JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2xvbmcnXSA9ICdHJm91bWw7ciBkZXR0YSBmJmF1bWw7bHQgb2JsaWdhdG9yaXNrdCc7CiRsYW5nWyd0aXRsZV9oaWRlX2xhYmVsJ10gPSAnRyZvdW1sO20gZXRpa2V0dCc7CiRsYW5nWyd0aXRsZV9oaWRlX2xhYmVsX2xvbmcnXSA9ICdHJm91bWw7bSBkZXR0YSBmJmF1bWw7bHRzIG5hbW4gcCZhcmluZzsgZm9ybXVsJmF1bWw7cmV0JzsKJGxhbmdbJ3RpdGxlX3RleHQnXSA9ICdTdGF0aXNrIHRleHQgYXR0IHZpc2EnOwokbGFuZ1sndGl0bGVfZmllbGRfcmVnZXgnXSA9ICdSZWd1bGomYXVtbDtydXR0cnljayBmJm91bWw7ciB2ZXJpZmllcmluZyc7CiRsYW5nWyd0aXRsZV9saW5lc190b19zaG93J10gPSAnQW50YWwgcmFkZXIgYXR0IHZpc2EnOwokbGFuZ1snbm9fZGVmYXVsdCddID0gJ0luZ2V0IHN0YW5kYXJkdmFsJzsKJGxhbmdbJ3JlZGlyZWN0X2FmdGVyX2FwcHJvdmFsJ10gPSAnU2lkYSBhdHQgb21kaXJpZ2VyYSB0aWxsIGVmdGVyIGdvZGsmYXVtbDtubmFuZGUnOwokbGFuZ1sndGl0bGVfcmVnZXhfaGVscCddID0gJ0RldHRhIHJlZ3VsaiZhdW1sO3J1dHRyeWNrIGFudiZhdW1sO25kcyBiYXJhIG9tICZxdW90O3ZlcmlmaWVyaW5nc3R5cGVuJnF1b3Q7ICZhdW1sO3Igc2F0dCB0aWxsIGV0dCByZWd1bGomYXVtbDtydXR0cnljay1yZWxhdGVyYXQgYWx0ZXJuYXRpdi4gSW5rbHVkZXJhIGV0dCBmdWxsdCByZWd1bGomYXVtbDtydXR0cnljayBpIFBlcmwtc3RpbCwgaW5rbHVzaXZlIHN0YXJ0L3N0b3Atc25lZHN0cmVja2VuIG9jaCAtZmxhZ2dvcm5hICh0LmV4LiAmcXVvdDsvaW1hZ2VcLihcZCspL2kmcXVvdDspJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2FiYnJldiddID0gJ09ibGlnLic7CiRsYW5nWyd0aXRsZV9oaWRlX2Vycm9ycyddID0gJ0cmb3VtbDttIGZlbCc7CiRsYW5nWyd0aXRsZV9mb3JtX2Rpc3BsYXl0eXBlJ10gPSAnRm9ybXVsJmF1bWw7cnZpc25pbmdzdHlwJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzX2xvbmcnXSA9ICdGJm91bWw7cmhpbmRyYSBmZWxzJm91bWw7a25pbmdzLSBvY2ggZmVsbWVkZGVsYW5kZW4gZnImYXJpbmc7biBhdHQgdmlzYXMgZiZvdW1sO3IgYW5kcmEgYW52JmF1bWw7bmRhcmUuJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX3RlbXBsYXRlJ10gPSAnRS1wb3N0bWFsbCc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX3NpemUnXSA9ICdNYXhpbWFsIGZpbHN0b3JsZWsgZiZvdW1sO3IgdXBwbGFkZG5pbmcgKGtpbG9ieXRlKSc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX3NpemVfbG9uZyddID0gJ0Rlbm5hIGJlZ3ImYXVtbDtuc25pbmcgJmF1bWw7ciB1dCZvdW1sO3ZlciBhbmRyYSBiZWdyJmF1bWw7bnNuaW5nYXIgc29tICZhdW1sO3Igc2F0dGEgYXYgcGhwLSBlbGxlciB3ZWJic2VydmVyaW5zdCZhdW1sO2xsbmluZ2FyLic7CiRsYW5nWyd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ1RpbGwmYXJpbmc7dG5hIGZpbCZhdW1sO25kZWxzZXInOwokbGFuZ1sndGl0bGVfcGVybWl0dGVkX2V4dGVuc2lvbnNfbG9uZyddID0gJ1Nrcml2IGVuIGtvbW1hLXNlcGFyYXJhZCBsaXN0YSwgdXRhbiBwdW5rdCAodC5leC4gJnF1b3Q7anBnLGdpZixqcGVnJnF1b3Q7KS4gTWVsbGFuc2xhZyBpZ25vcmVyYXMuIE9tIGR1IGwmYXVtbDttbmFyIGRldHRhIGYmYXVtbDtsdGV0IGJsYW5rdCBpbm5lYiZhdW1sO3IgZGV0IGF0dCBkZXQgaW50ZSBrb21tZXIgYXR0IGZpbm5hcyBuJmFyaW5nO2dyYSByZXN0cmlrdGlvbmVyLic7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zJ10gPSAnVmlzYSByZXN0cmlrdGlvbmVyPyc7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zX2xvbmcnXSA9ICdWaXNhIGFsbGEgc3Rvcmxla3MtIG9jaCBmaWwmYXVtbDtuZGVsc2VyZXN0cmlrdGlvbmVyIGYmb3VtbDtyIHVwcGxhZGRuaW5nc2YmYXVtbDtsdGV0Pyc7CiRsYW5nWyd0aXRsZV9mb3JtX3RlbXBsYXRlJ10gPSAnTWFsbCBhdHQgYW52JmF1bWw7bmRhIGYmb3VtbDtyIFZpc2EgRm9ybXVsJmF1bWw7cic7CiRsYW5nWyd0aXRsZV9wYWdlX3hfb2ZfeSddID0gJ1NpZGEgJXMgYXYgJXMnOwokbGFuZ1sndGl0bGVfbm9fYWR2YW5jZWRfb3B0aW9ucyddID0gJ0YmYXVtbDtsdGV0IGhhciBpbmdhIGF2YW5jZXJhZGUgaW5zdCZhdW1sO2xsbmluZ2FyJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdW5zcGVjaWZpZWQnXSA9ICdUZXh0IGF0dCByZXR1cm5lcmEgZiZvdW1sO3Igb3NwZWNpZmljZXJhZGUgZiZhdW1sO2x0diZhdW1sO3JkZW4nOwokbGFuZ1sndGl0bGVfZW5hYmxlX2Zhc3RhZGRfbG9uZyddID0gJ00mb3VtbDtqbGlnZyZvdW1sO3IgcnVsbGdhcmRpbnNtZW55IGYmb3VtbDtyIHNuYWJiLXRpbGwmYXVtbDtnZyBhdmwgZiZhdW1sO2x0IGYmb3VtbDtyIGZvcm11bCZhdW1sO3I/JzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9mYXN0YWRkJ10gPSAnTSZvdW1sO2psaWdnJm91bWw7ciBydWxsZ2FyZGluc21lbnkgZiZvdW1sO3Igc25hYmItdGlsbCZhdW1sO2dnPyc7CiRsYW5nWyd0aXRsZV9mYXN0YWRkJ10gPSAnU25hYmItdGlsbCZhdW1sO2dnIGF2IGYmYXVtbDtsdCc7CiRsYW5nWyd0aXRsZV9lbmFibGVfYW50aXNwYW1fbG9uZyddID0gJ04mYXVtbDtyIGRlbm5hIGtsaWNrYXMgcCZhcmluZzsgdGlsbCZhcmluZzt0cyBlbmRhc3QgMTAgZS1wb3N0bWVkZGVsYW5kZW4gYXR0IGdlbmVyZXJhcyBmciZhcmluZztuIGVuIGdpdmVuIElQLWFkcmVzcyAocGVyIHRpbW1lKSc7CiRsYW5nWyd0aXRsZV9lbmFibGVfYW50aXNwYW0nXSA9ICdUaWxsJmFyaW5nO3QgcHJpbWl0aXZhIGFudGktc2tyJmF1bWw7cHBvc3RlZ2Vuc2thcGVyPyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkaWRzJ10gPSAnVmlzYSBmJmF1bWw7bHQtSUQmIzAzOTtuJzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRpZHNfbG9uZyddID0gJ04mYXVtbDtyIGRlbm5hIGtsaWNrYXMgdGlsbCZhcmluZzt0cyBmJmF1bWw7bHQtSUQmIzAzOTtuIGF0dCB2aXNhcyBuJmF1bWw7ciBtYW4gbCZhdW1sO2dnZXIgdGlsbCBlbGxlciByZWRpZ2VyYXIgZXR0IGZvcm11bCZhdW1sO3InOwokbGFuZ1sndGl0bGVfeG1sX3RvX3VwbG9hZCddID0gJ0xhZGRhIHVwcCBmb3JtdWwmYXVtbDtyIGZyJmFyaW5nO24gWE1MLWZpbCc7CiRsYW5nWyd0aXRsZV94bWxfdXBsb2FkX2Zvcm1uYW1lJ10gPSAnQW52JmF1bWw7bmQgZGV0dGEgZm9ybXVsJmF1bWw7cm5hbW4nOwokbGFuZ1sndGl0bGVfaW1wb3J0X2xlZ2VuZCddID0gJ1hNTC1pbXBvcnQgYXYgZm9ybXVsJmF1bWw7cic7CiRsYW5nWyd0aXRsZV94bWxfdXBsb2FkX2Zvcm1hbGlhcyddID0gJ0FudiZhdW1sO25kIGRldHRhIGZvcm11bCZhdW1sO3JhbGlhcyc7CiRsYW5nWyd0aXRsZV9odG1sX2VtYWlsJ10gPSAnR2VuZXJlcmEgSFRNTC1lcG9zdG1lZGRlbGFuZGVuPyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZSddID0gJ0Z5bGwgaSBhdXRvbWF0aXNrdD8nOwokbGFuZ1sndGl0bGVfbGlua19hdXRvcG9wdWxhdGVfaGVscCddID0gJ0Z5bGwgaSBVUkwtYWRyZXNzIGYmb3VtbDtyIHNpZGFuIGQmYXVtbDtyIGZvcm11bCZhdW1sO3JldCBmaW5ucyBhdXRvbWF0aXNrdD8gKGRldHRhICZhcmluZztzaWRvcyZhdW1sO3R0ZXIgYWx0ZXJuYXRpdmV0IHNhanRzaWRlbCZhdW1sO25rIG5lZGFuKSc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2xpbmsnXSA9ICdTdGFuZGFyZC1VUkwtYWRyZXNzIGYmb3VtbDtyIGwmYXVtbDtuayc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2xpbmtfdGl0bGUnXSA9ICdTdGFuZGFyZHRleHQgZiZvdW1sO3IgbCZhdW1sO25rJzsKJGxhbmdbJ3RpdGxlX2xpbmtfdG9fc2l0ZXBhZ2UnXSA9ICdMJmF1bWw7bmsgdGlsbCBzYWp0LXNpZGFuJzsKJGxhbmdbJ3RpdGxlX2NhcHRjaGFfbm90X2luc3RhbGxlZCddID0gJ1lvdSBjYW4gdXNlIDxhIGhyZWY9JnF1b3Q7aHR0cDovL3d3dy53aWtpcGVkaWEub3JnL3dpa2kvQ2FwdGNoYSZxdW90OyB0YXJnZXQ9JnF1b3Q7X25ldyZxdW90Oz4mcXVvdDtDYXB0Y2hhJnF1b3Q7PC9hPiB0byBwcm90ZWN0IGZvcm0gc3VibWlzc2lvbnMgaWYgeW91IGluc3RhbGwgdGhlIENhcHRjaGEgbW9kdWxlLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgPGEgaHJlZj0mcXVvdDtodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2NhcHRjaGEvJnF1b3Q7PmNoZWNrIHRoZSBDYXB0Y2hhIHByb2plY3Q8L2E+Lic7CiRsYW5nWyd0aXRsZV91c2VfY2FwdGNoYSddID0gJ0FudiZhdW1sO25kIENhcHRjaGEgZiZvdW1sO3IgYXR0IGYmb3VtbDtyZWJ5Z2dhIG8mb3VtbDtuc2thdCBmb3JtdWwmYXVtbDtyZGF0YT8nOwokbGFuZ1sndGl0bGVfdXNlX2NhcHRjaGFfaGVscCddID0gJ0NoZWNrIGhlcmUgdG8gcHJvdGVjdCB5b3VyIGZvcm0gd2l0aCBhIDxhIGhyZWY9JnF1b3Q7aHR0cDovL3d3dy53aWtpcGVkaWEub3JnL3dpa2kvQ2FwdGNoYSZxdW90OyB0YXJnZXQ9JnF1b3Q7X25ldyZxdW90Oz4mcXVvdDtDYXB0Y2hhJnF1b3Q7PC9hPi4nOwokbGFuZ1sndGl0bGVfdXNlcl9jYXB0Y2hhJ10gPSAnQmVrciZhdW1sO2Z0YSBhdHQgZHUgaW50ZSAmYXVtbDtyIGV0dCBzY3JpcHQgZ2Vub20gYXR0IG1hdGEgaW4gdGV4dGVuIGkgYmlsZGVuJzsKJGxhbmdbJ3RpdGxlX3VzZXJfY2FwdGNoYV9lcnJvciddID0gJ0NhcHRjaGEtdGV4dGVuIG1pc3NseWNrYWRlcyc7CiRsYW5nWyd3cm9uZ19jYXB0Y2hhJ10gPSAnQ2FwdGNoYS10ZXh0ZW4gdmFyIGludGUgciZhdW1sO3R0JzsKJGxhbmdbJ3RpdGxlX3RpdGxlX3VzZXJfY2FwdGNoYSddID0gJ0hqJmF1bWw7bHB0ZXh0IGYmb3VtbDtyIENhcHRjaGEnOwokbGFuZ1snbGlua19sYWJlbCddID0gJ0wmYXVtbDtua3RldGlrZXR0JzsKJGxhbmdbJ2xpbmtfZGVzdGluYXRpb24nXSA9ICdVUkwnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9zZXQnXSA9ICdLb250cm9sbGVyYXMgc29tIHN0YW5kYXJkPyc7CiRsYW5nWyd0aXRsZV8yNF9ob3VyJ10gPSAnQW52JmF1bWw7bmQgMjQtdGltbWFycyB0aWRzYW5naXZlbHNlPyc7CiRsYW5nWyd0aXRsZV9iZWZvcmVfbm9vbiddID0gJ0FNJzsKJGxhbmdbJ3RpdGxlX2FmdGVyX25vb24nXSA9ICdQTSc7CiRsYW5nWyd0aXRsZV9zbWFydHlfZXZhbCddID0gJ0JlaGFuZGxhIHNtYXJ0eS10YWc6YXIgaSBmJmF1bWw7bHQ/JzsKJGxhbmdbJ3RpdGxlX3RleHRhcmVhX3Jvd3MnXSA9ICdSYWRlciAoTm90ZXJhIGF0dCBkZXR0YSBrYW4gJm91bWw7dmVyc2tyaWRhcyBhdiBDU1MpJzsKJGxhbmdbJ3RpdGxlX3RleHRhcmVhX2NvbHMnXSA9ICdLb2x1bW5lciAoTm90ZXJhIGF0dCBkZXR0YSBrYW4gJm91bWw7dmVyc2tyaWRhcyBhdiBDU1MpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbWFpbiddID0gJ0RldGFsamVyIGYmb3VtbDtyIGh1dnVkZm9ybXVsJmF1bWw7cic7CiRsYW5nWydoZWxwX2xlYXZlZW1wdHknXSA9ICdEZXQgaCZhdW1sO3IgZiZhdW1sO2x0ZXQga2FuIGwmYXVtbDttbmFzIHRvbXQnOwokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX3RlbXBsYXRlJ10gPSAnVmFyaWFibGVyIGYmb3VtbDtyIG1hbGwnOwokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX2NvbXB1dGF0aW9uJ10gPSAnVGlsbGcmYXVtbDtuZ2xpZ2EgdmFyaWFibGVyJzsKJGxhbmdbJ2hlbHBfcGhwX3ZhcmlhYmxlX25hbWUnXSA9ICdQSFAtdmFyaWFiZWwnOwokbGFuZ1snaGVscF9zdWJtaXNzaW9uX2RhdGUnXSA9ICdJbnNraWNrYXQgZGF0dW0nOwokbGFuZ1snaGVscF9zZXJ2ZXJfbmFtZSddID0gJ0RpbiBzZXJ2ZXInOwokbGFuZ1snaGVscF9zdWJfc291cmNlX2lwJ10gPSAnSVAtYWRyZXNzIGYmb3VtbDtyIHBlcnNvbmVuIHNvbSBhbnYmYXVtbDtudCBmb3JtdWwmYXVtbDtyZXQnOwokbGFuZ1snaGVscF9zdWJfdXJsJ10gPSAnVVJMIGYmb3VtbDtyIHNpZGFuIHNvbSBpbm5laCZhcmluZztsbGVyIGZvcm11bCZhdW1sO3InOwokbGFuZ1snaGVscF9vdGhlcl9maWVsZHMnXSA9ICdBbHRlcm5hdGUgZmllbGQgbmFtZXMgY2FuIGJlIHVzZWQgaW50ZXJjaGFuZ2VhYmx5IChlc3BlY2lhbGx5IHVzZWZ1bCBpZiBTbWFydHkgaXMgY2hva2luZyBvbiBjaGFyYWN0ZXJzIG91dHNpZGUgb2YgQVNDSUkgMzItMTI2KS4gPGJyIC8+T3RoZXIgZmllbGRzIHdpbGwgYmUgYXZhaWxhYmxlIGFzIHlvdSBhZGQgdGhlbSB0byB0aGUgZm9ybS4nOwokbGFuZ1snaGVscF9hcnJheV9maWVsZHMnXSA9ICdGaWVsZHMgdGhhdCBoYXZlIG11bHRpcGxlIHZhbHVlcyBtYXkgYWxzbyBiZSBhY2Nlc3NlZCB2aWEgdGhlIHNtYXJ0eSB2YWx1ZSBvZiAkZmllbGRuYW1lX2FycmF5IG9yICRmbGRfI19hcnJheS4nOwokbGFuZ1snaGVscF9kYXRlX2Zvcm1hdCddID0gJ1NlZSA8YSBocmVmPSZxdW90O2h0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24uZGF0ZS5waHAmcXVvdDsgdGFyZ2V0PV9ORVc+dGhlIFBIUCBNYW51YWw8L2E+IGZvciBmb3JtYXR0aW5nIGhlbHAuJzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVfbmFtZSddID0gJ1ZhcmlhYmVsJzsKJGxhbmdbJ2hlbHBfZm9ybV9maWVsZCddID0gJ0ZpZWxkIFJlcHJlc2VudGVkJzsKJGxhbmdbJ2xpbmtfYmFja190b19mb3JtJ10gPSAnJmxhcXVvOyBUaWxsYmFrYSB0aWxsIGZvcm11bCZhdW1sO3InOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV90ZW1wbGF0ZSddID0gJ1NrYXBhIHByb3ZtYWxsJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaHRtbF90ZW1wbGF0ZSddID0gJ1NrYXBhIHByb3ZtYWxsIGYmb3VtbDtyIEhUTUwnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9oZWFkZXInXSA9ICdTa2FwYSBydWJyaWsgKGhlYWRlciknOwokbGFuZ1snaGVscF90YWJfc3ltYm9sJ10gPSAnZXR0IHRhYnVsYXRvci10ZWNrZW4nOwokbGFuZ1sndGl0bGVfZmlsZV90ZW1wbGF0ZSddID0gJ1RlbXBsYXRlIGZvciBvbmUgbGluZSBvZiBvdXRwdXQgZmlsZSc7CiRsYW5nWyd0aXRsZV9maWxlX2hlYWRlciddID0gJ1RlbXBsYXRlIGZvciB0aGUgaGVhZGVyIG9mIG91dHB1dCBmaWxlJzsKJGxhbmdbJ3RpdGxlX2NvbmZpcm1hdGlvbl91cmwnXSA9ICdVUkwgdG8gY2xpY2sgZm9yIGZvcm0gY29uZmlybWF0aW9uJzsKJGxhbmdbJ3RpdGxlX3ZhbHVlJ10gPSAnVmFsdWUgKHNlZSBBZHZhbmNlZCBUYWIgaWYgeW91IHVzZSBTbWFydHkgdGFncyknOwokbGFuZ1sndGl0bGVfZGF0ZV9mb3JtYXQnXSA9ICdEYXRlIEZvcm1hdCAoc3RhbmRhcmQgPGEgaHJlZj0mcXVvdDtodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwJnF1b3Q7PlBIUCBEYXRlIEZvcm1hdHM8L2E+KSc7CiRsYW5nWyd0aXRsZV91c2Vfd3lzaXd5ZyddID0gJ1VzZSBXWVNJV1lHIGVkaXRvciBmb3IgdGV4dCBBcmVhIChBZG1pbiBzaWRlIG9ubHkpPyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYWN0aW9ucyddID0gJ0Zvcm0gU3VibWlzc2lvbiBCZWhhdmlvcic7CiRsYW5nWyd0aXRsZV9zdWJtaXRfbGFiZWxzJ10gPSAnU3VibWlzc2lvbiBCdXR0b24gTGFiZWxzJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9oZWxwJ10gPSAnVGhpcyBwYWdlIGxldHMgeW91IGN1c3RvbWl6ZSBGb3JtIFN1Ym1pc3Npb24uIEl0IGRvZXNuJiMwMzk7dCBkZXRlcm1pbmUgd2hhdCB0aGUgRm9ybSBCdWlsZGVyIGRvZXMgd2l0aCB0aGUgc3VibWl0dGVkIGRhdGEuIFlvdSBjYW4gc2V0IHRoYXQgdXAgYnkgYWRkaW5nICZxdW90O0Rpc3Bvc2l0aW9uJnF1b3Q7IGZpZWxkcyB0byB5b3VyIGZvcm0uJzsKJGxhbmdbJ3RpdGxlX3N0YXJ0X3llYXInXSA9ICdZZWFyIHJhbmdlIHN0YXJ0JzsKJGxhbmdbJ3RpdGxlX2VuZF95ZWFyJ10gPSAnWWVhciByYW5nZSBlbmQnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF95ZWFyJ10gPSAnRGVmYXVsdCBZZWFyJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfeWVhcl9oZWxwJ10gPSAnKFNldCB0byAtMSBmb3IgZGVmYXVsdCB5ZWFyIHRvIGJlIHRoZSBjdXJyZW50IHllYXIpJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9hY3Rpb24nXSA9ICdBZnRlciBmb3JtIGlzIHN1Ym1pdHRlZCc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfcmVzcG9uc2UnXSA9ICdSZXNwb25zZSB0byBkaXNwbGF5JzsKJGxhbmdbJ2Rpc3BsYXlfdGV4dCddID0gJ0Rpc3BsYXkgJnF1b3Q7U3VibWlzc2lvbiBUZW1wbGF0ZSZxdW90Oyc7CiRsYW5nWydyZWRpcmVjdF90b19wYWdlJ10gPSAnUmVkaXJlY3QgdG8gc2l0ZSBwYWdlJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9yZXNwb25zZV9oZWxwJ10gPSAnVGhpcyB0ZW1wbGF0ZSBpcyBmb3IgZGlzcGxheSB0byB0aGUgdXNlciBhZnRlciB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQuIFRoaXMgdGVtcGxhdGUgZG9lcyBub3QgZWZmZWN0IGVtYWlscyBnZW5lcmF0ZWQgb3Igb3RoZXIgZm9ybSBkaXNwb3NpdGlvbnMgLS0geW91IHNldCB0aG9zZSB0ZW1wbGF0ZXMgKHdoZXJlIGFwcHJvcHJpYXRlKSBpbiB0aGUgJnF1b3Q7YWR2YW5jZWQmcXVvdDsgdGFiIGZvciB0aG9zZSBkaXNwb3NpdGlvbiBmaWVsZHMuJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX3BhZ2UnXSA9ICdEZXN0aW5hdGlvbiBQYWdlJzsKJGxhbmdbJ3RpdGxlX3JlcXVpcmVfZmllbGRuYW1lcyddID0gJ1JlcXVpcmUgRmllbGRuYW1lcyc7CiRsYW5nWyd0aXRsZV9yZXF1aXJlX2ZpZWxkbmFtZXNfbG9uZyddID0gJ1JlcXVpcmUgZmllbGRzIHRvIGhhdmUgYSBuYW1lPyc7CiRsYW5nWyd0aXRsZV91bmlxdWVfZmllbGRuYW1lcyddID0gJ1JlcXVpcmUgVW5pcXVlIEZpZWxkbmFtZXMnOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXNfbG9uZyddID0gJ1JlcXVpcmUgZmllbGRzIHRvIGhhdmUgdW5pcXVlIG5hbWVzPyc7CiRsYW5nWyd0aXRsZV9yZW9yZGVyX2Zvcm0nXSA9ICdPbWdydXBwZXJhIGYmYXVtbDtsdCc7CiRsYW5nWyd0aXRsZV9sb2FkX3RlbXBsYXRlJ10gPSAnTGFkZGEgbWFsbCc7CiRsYW5nWyd0aXRsZV9hZGRfYnV0dG9uX3RleHQnXSA9ICdMJmF1bWw7dHQnOwokbGFuZ1sndGl0bGVfZGVsX2J1dHRvbl90ZXh0J10gPSAnRGVsZXRlIEJ1dHRvbiB0ZXh0JzsKJGxhbmdbJ3RpdGxlX3N0cmluZ19vcl9udW1iZXJfZXZhbCddID0gJ0ludGVycHJldCB2YXJpYWJsZXMgYXMgYmVpbmcgbnVtYmVycyBvciBzdHJpbmdzJzsKJGxhbmdbJ3RpdGxlX29yZGVyJ10gPSAnSW50ZXJwcmV0YXRpb24gT3JkZXInOwokbGFuZ1sndGl0bGVfb3JkZXJfaGVscCddID0gJ0lmIG1vcmUgdGhhbiBvbmUgQ29tcHV0ZWQgRmllbGQgZXhpc3RzLCB0aGV5IHdpbGwgYmUgY29tcHV0ZWQgZnJvbSBsb3dlc3Qgb3JkZXIgbnVtYmVyIHRvIGhpZ2hlc3Qgb3JkZXIgbnVtYmVyJzsKJGxhbmdbJ3RpdGxlX2NvbXB1dGVfdmFsdWUnXSA9ICdWYWx1ZSB0byBjb21wdXRlJzsKJGxhbmdbJ3RpdGxlX3N0cmluZyddID0gJ1N0cmluZyc7CiRsYW5nWyd0aXRsZV9udW1lcmljJ10gPSAnTnVtZXJpYyc7CiRsYW5nWydkZWZhdWx0X3RlbXBsYXRlJ10gPSAnRGVmYXVsdCBUZW1wbGF0ZSc7CiRsYW5nWyd0YWJsZV9sZWZ0X3RlbXBsYXRlJ10gPSAnVGFibGUgVGVtcGxhdGUsIFRpdGxlcyBvbiBsZWZ0JzsKJGxhbmdbJ3RhYmxlX3RvcF90ZW1wbGF0ZSddID0gJ1RhYmxlIFRlbXBsYXRlLCBUaXRsZSBvbiB0b3AnOwokbGFuZ1snZm9ybV90ZW1wbGF0ZV9uYW1lJ10gPSAnVGVtcGxhdGUgZnJvbSAlcyc7CiRsYW5nWyd0ZW1wbGF0ZV9hcmVfeW91X3N1cmUnXSA9ICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gb3ZlcndyaXRlIHlvdXIgdGVtcGxhdGUgd2l0aCB0aGUgc2VsZWN0ZWQgdGVtcGxhdGU/IChFdmVuIGlmIHlvdSBzYXkgT0ssIHlvdSB3aWxsIHN0aWxsIG5lZWQgdG8gc2F2ZSB0aGUgY2hhbmdlKSc7CiRsYW5nWyd0aXRsZV9iYWRfZnVuY3Rpb24nXSA9ICdFcnJvciB3aGVuIGNvbXB1dGluZyAmcXVvdDslcyZxdW90Oy4nOwokbGFuZ1snbm9fcmVmZXJyZXJfaW5mbyddID0gJ05vIEhUVFBfUkVGRVJFUiBpbmZvIGF2YWlsYWJsZSAocHJvYmFibHkgZHVlIHRvIHVzZSBvZiBVc2VyIEVtYWlsIFZhbGlkYXRpb24pJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcGFyYW1fZXJyb3InXSA9ICdWYWxpZGF0aW9uIFBhcmFtZXRlciBFcnJvci4gUGxlYXNlIG1ha2Ugc3VyZSB5b3UgY29weSB0aGUgVVJMIGZyb20geW91ciBlbWFpbCBjb3JyZWN0bHkhJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVzcG9uc2VfZXJyb3InXSA9ICdWYWxpZGF0aW9uIFJlcHNvbnNlIEVycm9yLiBQbGVhc2UgbWFrZSBzdXJlIHlvdSBjb3B5IHRoZSBVUkwgZnJvbSB5b3VyIGVtYWlsIGNvcnJlY3RseSEnOwokbGFuZ1sndmFsaWRhdGlvbl9ub19maWVsZF9lcnJvciddID0gJ1ZhbGlkYXRpb24gUmVwc29uc2UgRXJyb3IuIE5vIGVtYWlsIHZhbGlkYXRpb24gZmllbGQgaW4gdGhpcyBmb3JtISc7CiRsYW5nWyd1cGdyYWRlMDN0bzA0J10gPSAnRm9ybSBUZW1wbGF0ZSB3YXMgdXBkYXRlZCBhdXRvbWF0aWNhbGx5IGFzIHBhcnQgb2YgdGhlIHZlcnNpb24gMC4zIHRvIHZlcnNpb24gMC40IHVwZ3JhZGUuIFlvdSBtYXkgbmVlZCB0byBtYWtlIHNvbWUgZml4ZXMuIElmIHlvdSYjMDM5O3JlIHVzaW5nIHRoZSBkZWZhdWx0IGZvcm0sIHNpbXBseSByZXBsYWNlIHRoaXMgdGVtcGxhdGUgd2l0aCAmcXVvdDtkZWZhdWx0JnF1b3Q7IHVzaW5nIHRoZSBwdWxsZG93biBhYm92ZS4nOwokbGFuZ1snYWRtaW5kZXNjJ10gPSAnQWRkLCBlZGl0IGFuZCBtYW5hZ2UgaW50ZXJhY3RpdmUgRm9ybXMnOwokbGFuZ1snb3BlcmF0b3JzX2hlbHAnXSA9ICdJZiB5b3UgdXNlIFN0cmluZyBldmFsdWF0aW9uLCB0aGUgb25seSBvcGVyYXRpb24gYXZhaWxhYmxlIGlzIGNvbmNhdGVuYXRpb24gKCspLCB3aGlsZSBpZiB5b3UgdXNlIE51bWJlciBldmFsdWF0aW9uIHlvdSBoYXZlIGJhc2ljLCB2ZXJ5IHNpbXBsZSBtYXRoICgsICssIC0sICosIC8sICkuJzsKJGxhbmdbJ2RhdGVfamFudWFyeSddID0gJ0phbnVhcmknOwokbGFuZ1snZGF0ZV9mZWJydWFyeSddID0gJ0ZlYnJ1YXJpJzsKJGxhbmdbJ2RhdGVfbWFyY2gnXSA9ICdNYXJzJzsKJGxhbmdbJ2RhdGVfYXByaWwnXSA9ICdBcHJpbCc7CiRsYW5nWydkYXRlX21heSddID0gJ01haic7CiRsYW5nWydkYXRlX2p1bmUnXSA9ICdKdW5pJzsKJGxhbmdbJ2RhdGVfanVseSddID0gJ0p1bGknOwokbGFuZ1snZGF0ZV9hdWd1c3QnXSA9ICdBdWd1c3RpJzsKJGxhbmdbJ2RhdGVfc2VwdGVtYmVyJ10gPSAnU2VwdGVtYmVyJzsKJGxhbmdbJ2RhdGVfb2N0b2JlciddID0gJ09rdG9iZXInOwokbGFuZ1snZGF0ZV9ub3ZlbWJlciddID0gJ05vdmVtYmVyJzsKJGxhbmdbJ2RhdGVfZGVjZW1iZXInXSA9ICdEZWNlbWJlcic7CiRsYW5nWydzdWJtaXNzaW9uX2Vycm9yJ10gPSAnTGVkc2VuISBEZXQgdXBwc3RvZCBldHQgZmVsIGQmYXJpbmc7IGRpdHQgZm9ybXVsJmF1bWw7ciBoYW50ZXJhZGVzJzsKJGxhbmdbJ3N1Ym1pdF9lcnJvciddID0gJ0Zvcm1CdWlsZGVyIHN1Ym1pdCBlcnJvcjogJXMnOwokbGFuZ1sndXBsb2Fkc19lcnJvciddID0gJ0Vycm9yIGNvbW1pdHRpbmcgZmlsZSB0byB0aGUgdXBsb2FkcyBtb2R1bGU6ICVzJzsKJGxhbmdbJ25vdXBsb2Fkc19lcnJvciddID0gJ0t1bmRlIGludGUgaGl0dGEgbW9kdWxlbiBVcGxvYWRzJzsKJGxhbmdbJ3VwbG9hZF9hdHRhY2hfZXJyb3InXSA9ICdVcGxvYWQvQXR0YWNobWVudCBlcnJvciBvbiBmaWxlICVzICh0bXBfbmFtZTogJXMsIG9mIHR5cGUgJXMpJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3JfZmlsZV9sb2NrJ10gPSAnRXR0IGZlbCBoYXIgdXBwc3QmYXJpbmc7dHQhIEt1bmRlIGludGUgb3JkbmEgbCZhcmluZztzbmluZyBwJmFyaW5nOyBmaWxlbi4nOwokbGFuZ1snZW1haWxfZGVmYXVsdF90ZW1wbGF0ZSddID0gJ0Zvcm1CdWlsZGVyIFN1Ym1pc3Npb24nOwokbGFuZ1snZW1haWxfdGVtcGxhdGVfbm90X3NldCddID0gJzxici8+RW1haWwgVGVtcGxhdGUgbm90IHlldCBzZXQhJzsKJGxhbmdbJ21pc3NpbmdfY21zX21haWxlciddID0gJ0Zvcm1CdWlsZGVyOiBDYW5ub3QgZmluZCByZXF1aXJlZCBtb2R1bGUgQ01TTWFpbGVyISc7CiRsYW5nWyd1c2VyX2FwcHJvdmVkX3N1Ym1pc3Npb24nXSA9ICdVc2VyIGFwcHJvdmVkIHN1Ym1pc3Npb24gJXMgZnJvbSAlcyc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J10gPSAnRXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZCc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InXSA9ICdFdmVudCB0cmlnZ2VyZWQgaWYgdGhlcmUgaXMgYW4gZXJyb3Igd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1EaXNwbGF5J10gPSAnRXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIGRpc3BsYXllZCc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J10gPSAnPHA+RXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZC48L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gVGhlIGZvcm0gbmFtZSAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4NCjxsaT48ZW0+dmFsdWVfPG5hbWU+PC9lbT4gLSBTdXBwbHkgYSBkZWZhdWx0IHZhbHVlIHRvIGEgZmllbGQgd2l0aCB0aGUgc3BlY2lmaWVkIG5hbWUuPC9saT4NCjwvdWw+ICc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InXSA9ICc8cD5FdmVudCB0cmlnZ2VyZWQgaWYgdGhlcmUgaXMgYW4gZXJyb3Igd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIFRoZSBmb3JtIG5hbWUgKHN0cmluZyk8L2xpPg0KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBUaGUgaW50ZXJuYWwgZm9ybSBpZCAoaW50KTwvbGk+DQo8bGk+PGVtPmVycm9yPC9lbT4gLSBBIGxpc3Qgb2YgYWxsIGtub3duIGVycm9ycyAoc3RyaW5nKTwvbGk+DQo8L3VsPiAnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXSA9ICc8cD5FdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgZGlzcGxheWVkPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIFRoZSBmb3JtIG5hbWUgKHN0cmluZyk8L2xpPg0KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBUaGUgaW50ZXJuYWwgZm9ybSBpZCAoaW50KTwvbGk+DQo8L3VsPiAnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX3Jlc3BvbnNlX2lkJ10gPSAnUmVzcG9uc0lELiBBbnYmYXVtbDtuZHMgYXYgRm9ybUJyb3dzZXInOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX3Bhc3NlZF9mcm9tX3RhZyddID0gJ0Ymb3VtbDtydmFsZGEgZiZhdW1sO2x0diZhdW1sO3JkZW47IHNlIGhqJmF1bWw7bHBlbiBmJm91bWw7ciBkZW4gaCZhdW1sO3IgbW9kdWxlbic7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZmllbGRfaWQnXSA9ICdGJmF1bWw7bHRJRCBmJm91bWw7ciBpbnRlcm4gaGFudGVyaW5nJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19mb3JtX25hbWUnXSA9ICdGb3JtdWwmYXVtbDtyc25hbW4nOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2Zvcm1faWQnXSA9ICdGb3JtdWwmYXVtbDtyc0lEIGYmb3VtbDtyIGludGVybiBoYW50ZXJpbmcnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2dlbmVyYWwnXSA9ICdBbGxtJmF1bWw7bmEgcGFyYW1ldHJhciBmJm91bWw7ciBpbnRlcm4gaGFudGVyaW5nJzsKJGxhbmdbJ3RlbXBsYXRlX3ZhcmlhYmxlX2hlbHAnXSA9ICc8aDM+Rm9ybSBUZW1wbGF0ZSBWYXJpYWJsZXM8L2gzPg0KPHA+WW91IGNhbiBlZGl0IGl0IHRvIG1ha2UgeW91ciBmb3JtIGxheW91dCBsb29rIGFueSB3YXkgeW91JiMwMzk7ZCBsaWtlLg0KICAgVG8gbWFrZSB0aGUgZm9ybSB3b3JrLCB5b3UmIzAzOTtsbCBuZWVkIHRvIGFsd2F5cyBpbmNsdWRlIHRoZSB7JGZiX2hpZGRlbn0gYW5kIHskc3VibWl0fQ0KICAgdGFncy48L3A+DQoNCjxwPllvdSBjYW4gYWNjZXNzIHlvdXIgZm9ybSBmaWVsZHMgZWl0aGVyIHVzaW5nIHRoZSAkZmllbGRzIGFycmF5IG9yIGJ5IGRpcmVjdGx5IGFjY2Vzc2luZyBmaWVsZHMgYnkgdGhlaXIgbmFtZXMgKGUuZy4sIHskbXlmaWVsZC0+aW5wdXR9ICk8L3A+DQoNCg0KPHA+RWFjaCBmaWVsZCBoYXMgdGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzOjwvcD4NCjx0YWJsZT4NCjx0cj48dGg+RmllbGQ8L3RoPjx0aD5WYWx1ZTwvdGg+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmRpc3BsYXk8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBzaG91bGQgYmUgZGlzcGxheWVkLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPnJlcXVpcmVkPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgaXMgcmVxdWlyZWQsIDAgb3RoZXJ3aXNlPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+cmVxdWlyZWRfc3ltYm9sPC90ZD48dGQ+dGhlIHN5bWJvbCBmb3IgcmVxdWlyZWQgZmllbGRzPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+Y3NzX2NsYXNzPC90ZD48dGQ+dGhlIENTUyBjbGFzcyBzcGVjaWZpZWQgZm9yIHRoaXMgZmllbGQ8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT52YWxpZDwvdGQ+PHRkPjEgaWYgdGhpcyBmaWVsZCBoYXMgcGFzc2VkIHZhbGlkYXRpb24sIDAgb3RoZXJ3aXNlPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+ZXJyb3I8L3RkPjx0ZD5UZXh0IG9mIHRoZSB2YWxpZGF0aW9uIHByb2JsZW0sIGluIHRoZSBldmVudCB0aGF0IHRoaXMgZmllbGQgZGlkIG5vdCB2YWxpZGF0ZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmhpZGVfbmFtZTwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIG5hbWUgc2hvdWxkIGJlIGhpZGRlbiwgMCBvdGhlcndpc2U8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5oYXNfbGFiZWw8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCB0eXBlIGhhcyBhIGxhYmVsPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+bmVlZHNfZGl2PC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgbmVlZHMgdG8gYmUgd3JhcHBlZCBpbiBhIERJViAob3IgdGFibGUgcm93LCBpZiB0aGF0JiMwMzk7cyB0aGUgd2F5IHlvdSBzd2luZyk8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5uYW1lPC90ZD48dGQ+dGhlIGZpZWxkJiMwMzk7cyBuYW1lPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aW5wdXQ8L3RkPjx0ZD50aGUgZmllbGQmIzAzOTtzIGlucHV0IGNvbnRyb2wgKGUuZy4sIHRoZSBpbnB1dCBmaWVsZCBpdHNlbGYpPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+b3A8L3RkPjx0ZD5hIGNvbnRyb2wgYnV0dG9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgZmllbGQgaWYgYXBwbGljYWJsZSAoZS5nLiwgdGhlIGRlbGV0ZSBidXR0b24gZm9yIGV4cGFuZGFibGUgdGV4dCBpbnB1dCk8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5pbnB1dF9pZDwvdGQ+PHRkPnRoZSBJRCBvZiB0aGUgZmllbGQmIzAzOTtzIGlucHV0ICh1c2VmdWwgZm9yIDxsYWJlbCBmb3I9JnF1b3Q7JnF1b3Q7Pik8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT50eXBlPC90ZD48dGQ+dGhlIGZpZWxkJiMwMzk7cyBkYXRhIHR5cGU8L3RkPjwvdHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KPHRyPjx0ZD5maWVsZC0+bXVsdGlwbGVfcGFydHM8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYSBjb2xsZWN0aW9uIG9mIGNvbnRyb2xzPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+bGFiZWxfcGFydHM8L3RkPjx0ZD4xIGlmIHRoZSBjb2xsZWN0aW9uIG9mIGNvbnRyb2xzIGhhcyBzZXBhcmF0ZSBsYWJlbHMgZm9yIGVhY2ggY29udHJvbDwvdGQ+PC90cj4NCjwvdGFibGU+DQoNCjxwPkluIGNlcnRhaW4gY2FzZXMsIGZpZWxkLT5pbnB1dCBpcyBhY3R1YWxseSBhbiBhcnJheSBvZiBvYmplY3RzIHJhdGhlciB0aGFuIGFuIGlucHV0LiBUaGlzIGhhcHBlbnMsIGZvciBleGFtcGxlLCBpbiBDaGVja0JveEdyb3VwcyBvciBSYWRpb0J1dHRvbkdyb3Vwcy4gRm9yIHRoZW0sIHlvdSBjYW4gaXRlcmF0ZSB0aHJvdWdoIGZpZWxkLT5pbnB1dC0+bmFtZSBhbmQgZmllbGQtPmlucHV0LT5pbnB1dHMuPC9wPg0KICAgIA0KPHA+QWRkaXRpb25hbCBzbWFydHkgdmFyaWFibGVzIHRoYXQgeW91IGNhbiB1c2UgaW5jbHVkZTo8L3A+DQo8dGFibGU+DQo8dHI+PHRoPlZhcmlhYmxlPC90aD48dGg+VmFsdWU8L3RoPjwvdHI+DQo8dHI+PHRkPnRvdGFsX3BhZ2VzPC90ZD48dGQ+bnVtYmVyIG9mIHBhZ2VzIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD50aGlzX3BhZ2U8L3RkPjx0ZD5udW1iZXIgZm8gdGhlIGN1cnJlbnQgcGFnZSBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+dGl0bGVfcGFnZV94X29mX3k8L3RkPjx0ZD5kaXNwbGF5cyAmcXVvdDtwYWdlIHggb2YgeSZxdW90OyBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+Y3NzX2NsYXNzPC90ZD48dGQ+Q1NTIENsYXNzIGZvciB0aGUgZm9ybTwvdGQ+PC90cj4NCjx0cj48dGQ+Zm9ybV9uYW1lPC90ZD48dGQ+Rm9ybSBuYW1lPC90ZD48L3RyPg0KPHRyPjx0ZD5mb3JtX2lkPC90ZD48dGQ+Rm9ybSBkYXRhYmFzZSBJRDwvdGQ+PC90cj4NCjx0cj48dGQ+cHJldjwvdGQ+PHRkPiZxdW90O0JhY2smcXVvdDsgYnV0dG9uIGZvciBtdWx0aXBhcnQgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPnN1Ym1pdDwvdGQ+PHRkPiZxdW90O0NvbnRpbnVlJnF1b3Q7IG9yICZxdW90O1N1Ym1pdCZxdW90OyBidXR0b24gZm9yIG11bHRpcGFydCBmb3JtcywgYWRqdXN0cyBhdXRvbWF0aWNhbGx5PC90ZD48L3RyPg0KPC90YWJsZT4NCjxwPkR1bm5vIHdoeSB5b3UmIzAzOTtkIHdhbnQgc29tZSBvZiB0aG9zZSwgYnV0IHRoZXJlIHlvdSBnby4uLjwvcD4NCic7CiRsYW5nWydwb3N0X2luc3RhbGwnXSA9ICc8cD5NYWtlIHN1cmUgdG8gc2V0IHRoZSAmcXVvdDtNb2RpZnkgRm9ybXMmcXVvdDsgcGVybWlzc2lvbnMNCm9uIHVzZXJzIHdobyB3aWxsIGJlIGFkbWluaXN0ZXJpbmcgZmVlZGJhY2sgZm9ybXMuIEFsc28sIGlmIHlvdSYjMDM5O2xsIGJlIGVtYWlsaW5nIGZvcm0NCnJlc3VsdHMsIGJlIHN1cmUgdG8gdXBkYXRlIHRoZSBDb25maWd1cmF0aW9uIGFwcHJvcHJpYXRlbHkuPC9wPg0KPHA+UGxlYXNlIGJlIGF3YXJlIHRoYXQgYSBmZWVkYmFjayBmb3JtIHNob3VsZCBub3QgYmUgYWN0aXZlIChlLmcuLCB1c2FibGUgYnkgdGhlIHB1YmxpYykgd2hpbGUNCnlvdSBhcmUgc3RpbGwgZWRpdGluZyB0aGUgZm9ybS4gWW91IHNob3VsZCBjcmVhdGUgdGhlIGZvcm0sIGFuZCBwbGFjZSB0aGUgdGFnIGludG8gYW4gYWN0aXZlDQpjb250ZW50IHBhZ2Ugb25seSB3aGVuIHlvdSBoYXZlIGZpbmlzaGVkIGVkaXRpbmcuIE90aGVyd2lzZSwgZXJyb25lb3VzIHJlc3VsdHMgY291bGQgYmUgcmV0dXJuZWQuPC9wPg0KPHA+QWRkaXRpb25hbGx5LCB0aGlzIHZlcnNpb24gZG9lcyBub3Qgc3VwcG9ydCBwYXJhbGxlbCBlZGl0aW5nIG9mIGZvcm1zLiBQbGVhc2UgdGFrZSBjYXJlIHRoYXQNCm9ubHkgb25lIGFkbWluIGlzIGVkaXRpbmcgYSBnaXZlbiBmb3JtIGF0IGEgZ2l2ZW4gdGltZS48L3A+JzsKJGxhbmdbJ2hlbHAnXSA9ICc8aDM+V2hhdCBEb2VzIFRoaXMgRG8/PC9oMz4NCjxwPlRoZSBGb3JtIEJ1aWxkZXIgTW9kdWxlIGFsbG93cyB5b3UgdG8gY3JlYXRlIGZlZWRiYWNrIGZvcm1zIChpbiBmYWN0LCBpdCYjMDM5O3MgYSByZXBsYWNlbWVudCBvZiB0aGUgb3JpZ2luYWwgRmVlZGJhY2sgRm9ybSBtb2R1bGUpLCB3aXRoIHRoZSBhZGRlZCBwb3dlciBvZiBkYXRhYmFzZSBzdG9yYWdlLiBXaXRoIGl0cyBjb21wYW5pb24gbW9kdWxlIEZvcm0gQnJvd3NlciwgeW91IGNhbiB1c2UgaXQgdG8gY3JlYXRlIHNpbXBsZSBkYXRhYmFzZSBhcHBsaWNhdGlvbnMuPC9wPg0KPHA+VGhlIGZvcm1zIGNyZWF0ZWQgdXNpbmcgdGhlIEZvcm0gQnVpbGRlciBtYXkgYmUgaW5zZXJ0ZWQNCmludG8gdGVtcGxhdGVzIGFuZC9vciBjb250ZW50IHBhZ2VzLiBGb3JtcyBtYXkgY29udGFpbiBtYW55IGtpbmRzIG9mIGlucHV0cywgYW5kIG1heSBoYXZlDQp2YWxpZGF0aW9uIGFwcGxpZWQgdG8gdGhlc2UgaW5wdXRzLiBUaGUgcmVzdWx0cyBvZiB0aGVzZSBmb3JtcyBtYXkgYmUgaGFuZGxlZCBpbiBhIHZhcmlldHkgb2Ygd2F5cy48L3A+DQoNCjxoMz5Ib3cgRG8gSSBVc2UgaXQ/PC9oMz4NCjxQPkluc3RhbGwgaXQsIGFuZCBwb2tlIGFyb3VuZCB0aGUgbWVudXMuIFBsYXkgd2l0aCBpdC4gVHJ5IGNyZWF0aW5nIGZvcm1zLCBhbmQgYWRkaW5nIHRoZW0gdG8geW91ciBjb250ZW50Lg0KSWYgeW91IGdldCBzdHVjaywgY2hhdCB3aXRoIG1lIG9uIHRoZSAjY21zIElSQyBjaGFubmVsLCBwb3N0IHRvIHRoZSBmb3J1bSwgc2VuZCBtZSBlbWFpbCwgb3IsIGlmIHlvdSYjMDM5O3JlDQpyZWFsbHkgZGVzcGVyYXRlLCByZWFkIHRoZSByZXN0IG9mIHRoaXMgcGFnZS48L1A+DQoNCjxoMz5Ib3cgRG8gSSBDcmVhdGUgYSBGb3JtPC9oMz4NCjxwPkluIHRoZSBDTVMgQWRtaW4gTWVudSwgeW91IHNob3VsZCBnZXQgYSBuZXcgbWVudSBpdGVtIGNhbGxlZCBGb3JtQnVpbGRlci4gQ2xpY2sgb24gdGhpcy4gT24gdGhlIHBhZ2UNCnRoYXQgZ2V0cyBzaG93biwgdGhlcmUgYXJlIG9wdGlvbnMgKGF0IHRoZSBib3R0b20gb2YgdGhlIGxpc3Qgb2YgRm9ybXMpIHRvIEFkZCBhIE5ldyBGb3JtIG9yIE1vZGlmeQ0KQ29uZmlndXJhdGlvbi48L3A+DQoNCjxoMz5BZGRpbmcgYSBGb3JtIHRvIGEgUGFnZTwvaDM+DQo8cD5JbiB0aGUgbWFpbiBGb3JtQnVpbGRlciBhZG1pbiBwYWdlLCB5b3UgY2FuIHNlZSBhbiBleGFtcGxlIG9mIHRoZSB0YWcgdXNlZCB0byBkaXNwbGF5IGVhY2ggZm9ybS4gSXQgbG9va3MNCnNvbWV0aGluZyBsaWtlIHtjbXNfbW9kdWxlIG1vZHVsZT0mIzAzOTtGb3JtQnVpbGRlciYjMDM5OyBmb3JtPSYjMDM5O3NhbXBsZV9mb3JtJiMwMzk7fTwvcD4NCjxwPkJ5IGNvcHlpbmcgdGhpcyB0YWcgaW50byB0aGUgY29udGVudCBvZiBhIHBhZ2UsIG9yIGludG8gYSB0ZW1wbGF0ZSwgd2lsbCBjYXVzZSB0aGF0IGZvcm0gdG8gYmUgZGlzcGxheWVkLg0KSW4gdGhlb3J5LCB5b3UgY2FuIGhhdmUgbXVsdGlwbGUgZm9ybXMgb24gYSBwYWdlIGlmIHlvdSByZWFsbHkgd2FudCB0by4gQmUgY2FyZWZ1bCB3aGVuIHBhc3RpbmcgdGhlIHRhZw0KaW50byBhIHBhZ2UmIzAzOTtzIGNvbnRlbnQgaWYgeW91IHVzZSBhIFdZU0lXWUcgZWRpdG9yIHN1Y2ggYXMgVGlueU1DRSwgRkNLRWRpdCwgb3IgSFRNTEFyZWEuIFRoZXNlIGVkaXRvcnMgbWF5IHN0ZWFsdGhpbHkNCmNoYW5nZSB0aGUgcXVvdGUgbWFya3MgKCZxdW90OykgaW50byBIVE1MIGVudGl0aWVzICgmYW1wO3F1b3Q7KSwgYW5kIHRoZSBmb3JtcyB3aWxsIG5vdCBzaG93IHVwLiBUcnkgdXNpbmcNCnNpbmdsZSBxdW90ZXMgKCYjMDM5Oykgb3IgZWRpdGluZyB0aGUgSFRNTCBkaXJlY3RseS48L3A+DQoNCjxoMz5Xb3JraW5nIHdpdGggRm9ybXM8L2gzPg0KPHA+QnkgY2xpY2tpbmcgb24gYSBGb3JtJiMwMzk7cyBuYW1lLCB5b3UgZW50ZXIgdGhlIEZvcm0gRWRpdCBwYWdlLiBUaGVyZSBhcmUgc2V2ZXJhbCB0YWJzLCB3aGljaCBhcmUgZGVzY3JpYmVkIGJlbG93OjwvcD4NCjxoND5NYWluPC9oND4NCjxwPlRoaXMgaXMgdGhlIG1haW4gcGxhY2UgeW91JiMwMzk7bGwgd29yayBvbiB5b3VyIGZvcm0uIEhlcmUsIHlvdSBnaXZlIGl0IGEgbmFtZSwgYW4gYWxpYXMgKHdoaWNoIGlzIHVzZWQgdG8gaWRlbnRpZnkgaXQgZm9yIHBsYWNpbmcgaXQgaW4gYSBwYWdlIG9yIHRlbXBsYXRlKSwgYW5kLCBvcHRpb25hbGx5LCBhIENTUyBjbGFzcyB3aXRoIHdoaWNoIHRvIHdyYXAgdGhlIHdob2xlIHRoaW5nLjwvcD4NCjxwPkJlbG93IHRoaXMsIGlmIHlvdSBoYXZlIGl0IGVuYWJsZWQsIGlzIHRoZSAmcXVvdDtmYXN0IGZpZWxkIGFkZGVyJnF1b3Q7IHB1bGxkb3duLCB0aGF0IGxldHMgeW91IHF1aWNrbHkgYWRkIGEgZmllbGQgdG8gdGhlIGVuZCBvZiB5b3VyIGZvcm0gYnkgc2VsZWN0aW5nIHRoZSBmaWVsZCB0eXBlLjwvcD4NCjxwPkJlbG93IHRoaXMgaXMgdGhlIGxpc3Qgb2YgZmllbGRzIHRoYXQgbWFrZSB1cCB5b3VyIGZvcm0uIE1vcmUgZGV0YWlsIG9uIHRoaXMgaXMgZGVzY3JpYmVkIGJlbG93LjwvcD4NCjxoND5Gb3JtIFN1Ym1pc3Npb248L2g0Pg0KPHA+V2hlbiB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQsIHlvdSBjYW4gZWl0aGVyIHJlZGlyZWN0IHRoZSB1c2VyIHRvIGFub3RoZXIgcGFnZSBvZiB5b3VyIHNpdGUsIG9yIHlvdSBjYW4gcHJlc2VudCB0aGUgdXNlciBzb21lIG1lc3NhZ2UgKHdoaWNoIGNhbiBjb250YWluIGFueSBvZiB0aGUgdXNlciYjMDM5O3MgZm9ybSBlbnRyaWVzLCBvciBqdXN0IHN0YXRpYyB0ZXh0KS4gSW4gdGhpcyB0YWIsIHlvdSBzZWxlY3Qgd2hpY2ggb2YgdGhlc2UgYXBwcm9hY2hlcyB5b3Ugd2lzaCB0byB1c2UsIGFuZCwgaWYgeW91IGNob3NlIHJlZGlyZWN0aW9uLCBpdCBhbGxvd3MgeW91IHRvIHBpY2sgdGhlIHBhZ2UgdG8gcmVkaXJlY3QgdXNlcnMgdG8gYWZ0ZXIgYSBzdWNjZXNzZnVsIGZvcm0gc3VibWlzc2lvbi48L3A+DQo8cD5BbHNvIG9uIHRoaXMgcGFnZSwgeW91IGNhbiBzcGVjaWZ5IHRoZSBsYWJlbHMgb2YgdmFyaW91cyBzdWJtaXNzaW9uIGJ1dHRvbnMgKCZxdW90O1ByZXZpb3VzJnF1b3Q7LCAmcXVvdDtuZXh0JnF1b3Q7LCAmcXVvdDtzdWJtaXQmcXVvdDspLiBZb3UgY2FuIGFsc28gb3B0IHRvIGhhdmUgc29tZSBKYXZhc2NyaXB0IGFkZGVkIHRvIHRoZSBsYXN0IHBhZ2Ugb2YgYSBmb3JtIHRoYXQgd2lsbCBwcmV2ZW50IG11bHRpcGxlIHN1Ym1pc3Npb25zICh1c2VmdWwgb24gc2xvdyBzZXJ2ZXJzKS48L3A+DQo8aDQ+Rm9ybSBEaXNwbGF5IE9wdGlvbnM8L2g0Pg0KPHA+VGhpcyB0YWIgYWxsb3dzIGZvciBvdGhlciBmb3JtIGN1c3RvbWl6YXRpb25zLCBsaWtlIHRoZSBzeW1ib2wgdG8gc2hvdyBmb3IgcmVxdWlyZWQgZmllbGRzLjwvcD4NCjxoND5DYXB0Y2hhIFNldHRpbmdzPC9oND4NCjxwPklmIHlvdSBoYXZlIGluc3RhbGxlZCB0aGUgQ2FwdGNoYSBtb2R1bGUsIHRoaXMgdGFiIGxldHMgeW91IGNvbmZpZ3VyZSB0aGUgQ2FwdGNoYSBzZXR0aW5ncyBmb3IgeW91ciBmb3JtLjwvcD4NCjxoND5Gb3JtIFRlbXBsYXRlPC9oND4NCjxwPlRoaXMgaXMgd2hlcmUgeW91IGRvIHlvdXIgY3VzdG9taXphdGlvbiB3b3JrIG9mIHlvdXIgZm9ybSYjMDM5O3MgU21hcnR5IFRlbXBsYXRlLiBTZWUgdGhlIHNlY3Rpb24gY2FsbGVkIEZvcm0gVGVtcGxhdGUgVmFyaWFibGVzIGJlbG93LjwvcD4NCjxwPlRoZSBmb3JtIHNob3VsZCBkZWZhdWx0IHRvIGEgQ3VzdG9tIHRlbXBsYXRlIHRoYXQgZG9jdW1lbnRzIHRoZSBTbWFydHkgdGFncyBhdmFpbGFibGUgdG8geW91LjwvcD4NCjxwPlVubGVzcyB5b3UmIzAzOTtyZSBhIFNtYXJ0eSBleHBlcnQsIHlvdSBwcm9iYWJseSBkb24mIzAzOTt0IHdhbnQgdG8gbWVzcyBhcm91bmQgd2l0aCB0aGlzLiBJZiB5b3UgYXJlIGEgU21hcnR5IGV4cGVydCwgdGhpcyBpcyB3aGVyZSB5b3UgY2FuIHVubGVhc2ggeW91ciBtYWdpYy48L3A+DQo8aDQ+U3VibWlzc2lvbiBUZW1wbGF0ZTwvaDQ+DQo8cD5JZiwgaW4gdGhlIEZvcm0gU3VibWlzc2lvbiB0YWIsIHlvdSBzZWxlY3RlZCAmIzAzOTtEaXNwbGF5ICZxdW90O1N1Ym1pc3Npb24gVGVtcGxhdGUmcXVvdDssIHRoaXMgaXMgd2hlcmUgeW91IGNhbiBjcmVhdGUgdGhhdCB0ZW1wbGF0ZS4gVGhlcmUgaXMgYSBkaXNwbGF5IG9mIHdoaWNoIHNtYXJ0eSB2YXJpYWJsZXMgYXJlIGF2YWlsYWJsZSB0byB5b3UsIGFuZCBhIGJ1dHRvbiB0byBnZW5lcmF0ZSBhIHNhbXBsZSB0ZW1wbGF0ZS48L3A+DQo8cD5JZiB5b3UmIzAzOTtyZSBhIFNtYXJ0eSBleHBlcnQsIHlvdSBjYW4gZG8gYWxsIG1hbm5lciBvZiBjcmVhdGl2ZSBhbmQgcG93ZXJmdWwgdGhpbmdzIGhlcmUuIElmIHlvdSYjMDM5O3JlIG5vdCBhIFNtYXJ0eSBleHBlcnQsIHlvdSBtaWdodCBqdXN0IHdhbnQgdG8gdXNlIHRoZSBkZWZhdWx0Lg0KPC9wPg0KDQo8aDM+QWRkaW5nIEZpZWxkcyB0byB5b3VyIEZvcm08L2gzPg0KPHA+VGhlIHR5cGVzIG9mIGZpZWxkcyB0aGF0IGFyZSBjdXJyZW50bHkgc3VwcG9ydGVkIGZpdCBpbnRvIGZvdXIgZ3JvdXBzOiBzdGFuZGFyZCBpbnB1dCBmaWVsZHMsIGRpc3BsYXkgY29udHJvbCBmaWVsZHMsIGVtYWlsLXNwZWNpZmljIGZpZWxkcywgYW5kIGZvcm0gcmVzdWx0IGhhbmRsaW5nIGZpZWxkcyAoYWxzbyBjYWxsZWQgRm9ybSBEaXNwb3NpdGlvbnMgaW4gcGxhY2VzKTo8L3A+DQo8dWw+DQo8bGk+U3RhbmRhcmQgSW5wdXQgRmllbGRzIC0gdGhlc2UgYXJlIGlucHV0cyB0aGF0IGFsbG93IGVudHJ5IG9mIHR5cGljYWwgZm9ybSBlbGVtZW50czsgdGV4dCBpbnB1dHMsIHJhZGlvIGJ1dHRvbnMsIGV0Yy48L2xpPg0KPGxpPkRpc3BsYXkgQ29udHJvbCBGaWVsZHMgLSB0aGVzZSBpbnB1dCBjb250cm9sIGhvdyB0aGUgdXNlciB3aWxsIHNlZSB0aGUgZGlzcGxheSBvZiB0aGUgZm9ybTsgcGFnZSBicmVha3MsIHN0YXRpYyB0ZXh0LCBldGMuPC9saT4NCjxsaT5FbWFpbC1zcGVjaWZpYyBGaWVsZHMgLSBzb21lIGZvcm1zIGdlbmVyYXRlIGVtYWlsLCBhbmQgZW1haWwtc3BlY2lmaWMgZmllbGRzIGNhbiBhbHRlciBhdHRyaWJ1dGVzIG9mIHRoZSBlbWFpbHMgc2VudC48L2xpPg0KPGxpPkZvcm0gRGlzcG9zaXRpb25zIC0gVGhlc2UgZGV0ZXJtaW5lIHdoYXQgaGFwcGVucyB3aGVuIHRoZSB1c2VyDQpzdWJtaXRzIHRoZSBmb3JtOyBmb3IgZWFjaCByZXN1bHQgaGFuZGxpbmcgZmllbGQsIHNvbWUgbWV0aG9kIG9mIHRyYW5zbWl0dGluZywgc2F2aW5nLCBvciBlbWFpbGluZyB0aGUNCmZvcm0gY29udGVudHMgdGFrZXMgcGxhY2UuIEEgZm9ybSBtYXkgaGF2ZSBtdWx0aXBsZSBmb3JtIGRpc3Bvc2l0aW9ucy48L2xpPg0KPC91bD4NCjxwPkZvcm0gZmllbGRzIGFyZSBhc3NpZ25lZCBuYW1lcy4gVGhlc2UgbmFtZXMgaWRlbnRpZnkgdGhlIGZpZWxkLCBub3Qgb25seSBvbiB0aGUgc2NyZWVuIGFzIGxhYmVscyBmb3IgdGhlIHVzZXIsDQpidXQgaW4gdGhlIGRhdGEgd2hlbiBpdCYjMDM5O3Mgc3VibWl0dGVkIHNvIHlvdSBrbm93IHdoYXQgdGhlIHVzZXIgaXMgcmVzcG9uZGluZyB0by4gUGhyYXNpbmcgdGhlIG5hbWUgbGlrZSBhIHF1ZXN0aW9uDQppcyBhIGhhbmR5IHdheSBvZiBtYWtpbmcgaXQgY2xlYXIgdG8gdGhlIHVzZXIgd2hhdCBpcyBleHBlY3RlZC4gU2ltaWxhcmx5LCBtYW55IGZpZWxkcyBoYXZlIGJvdGggTmFtZXMgYW5kIFZhbHVlcy4NClRoZSBOYW1lcyBhcmUgd2hhdCBnZXRzIHNob3duIHRvIHRoZSB1c2VyOyB0aGUgVmFsdWUgaXMgd2hhdCBnZXRzIHNhdmVkIG9yIHRyYW5zbWl0dGVkIHdoZW4gdGhlIHVzZXIgc3VibWl0cw0KdGhlIGZvcm0uIFRoZSBWYWx1ZXMgYXJlIG5ldmVyIHNlZW4gYnkgdGhlIHVzZXIsIG5vciBhcmUgdGhleSB2aXNpYmxlIGluIHRoZSBIVE1MLCBzbyBpdCYjMDM5O3Mgc2FmZSB0byB1c2UgZm9yDQplbWFpbCBhZGRyZXNzZXMgYW5kIHN1Y2guPC9wPg0KPHA+U29tZSBmaWVsZHMgY2FuIGhhdmUgbXVsdGlwbGUgdmFsdWVzLCBvciBtdWx0aXBsZSBuYW1lL3ZhbHVlIHBhaXJzLiBXaGVuIHlvdSBmaXJzdCBjcmVhdGUgc3VjaCBhIGZpZWxkLA0KdGhlcmUgbWF5IG5vdCBiZSBzdWZmaWNpZW50IGlucHV0cyBmb3IgeW91IHRvIHNwZWNpZnkgYWxsIHRoZSB2YWx1ZXMgeW91IHdhbnQuIFRvIGdldCBtb3JlIHNwYWNlIGZvciBpbnB1dHRpbmcNCnRoZXNlIHZhbHVlcywgdXNlIHRoZSBidXR0b25zIGF0IHRoZSBib3R0b20gb2YgdGhlIHBhZ2UgZm9yIGFkZGluZyBvcHRpb25zLjwvcD4NCjxwPkZpZWxkcyBjYW4gYmUgYXNzaWduZWQgdmFsaWRhdGlvbiBydWxlcywgd2hpY2ggdmFyeSBhY2NvcmRpbmcgdG8gdGhlIHR5cGUgb2YgdGhlIGZpZWxkLiBUaGVzZSBydWxlcyBoZWxwDQplbnN1cmUgdGhhdCB0aGUgdXNlciBlbnRlcnMgdmFsaWQgZGF0YS4gVGhleSBtYXkgYWxzbyBiZQ0Kc2VwYXJhdGVseSBtYXJrZWQgJnF1b3Q7UmVxdWlyZWQmcXVvdDssIHdoaWNoIHdpbGwgZm9yY2UgdGhlIHVzZXIgdG8gZW50ZXIgYSByZXNwb25zZS48L3A+DQo8cD5GaWVsZHMgYWxzbyBtYXkgYmUgYXNzaWduZWQgYSBDU1MgY2xhc3MuIFRoaXMgc2ltcGx5IHdyYXBzIHRoZSBpbnB1dCBpbiBhIGRpdiB3aXRoIHRoYXQgY2xhc3MsIHNvIGFzIHRvIGFsbG93DQpjdXN0b21pemVkIGxheW91dHMuIFRvIHVzZSB0aGlzIGVmZmVjdGl2ZWx5LCB5b3UgbWF5IG5lZWQgdG8gJnF1b3Q7dmlldyBzb3VyY2UmcXVvdDsgb24gdGhlIGdlbmVyYXRlZCBmb3JtLCBhbmQgdGhlbg0Kd3JpdGUgeW91ciBDU1MuPC9wPg0KPHVsPg0KPGxpPlN0YW5kYXJkIElucHV0cw0KPHVsPjxsaT5UZXh0IElucHV0LiBUaGlzIGlzIGEgc3RhbmRhcmQgdGV4dCBmaWVsZC4gWW91IGNhbiBsaW1pdCB0aGUgbGVuZ3RoLCBhbmQgYXBwbHkgdmFyaW91cyB2YWxpZGF0aW9uDQpmdW5jdGlvbnMgdG8gdGhlIGZpZWxkLjwvbGk+DQo8bGk+VGV4dCBBcmVhLiBUaGlzIGlzIGEgYmlnLCBmcmVlLWZvcm0gdGV4dCBpbnB1dCBmaWVsZC48L2xpPg0KPGxpPkNoZWNrYm94LiBUaGlzIGlzIGEgc3RhbmRhcmQgY2hlY2sgYm94LjwvbGk+DQo8bGk+Q2hlY2tib3ggR3JvdXAuIFRoaXMgaXMgYSBjb2xsZWN0aW9uIG9mIGNoZWNrYm94ZXMuIFRoZSBvbmx5IGRpZmZlcmVuY2UgYmV0d2VlbiB0aGlzIGlucHV0IGFuZCBhDQpjb2xsZWN0aW9uIG9mIENoZWNrYm94IGlucHV0cyBpcyB0aGF0IHRoZXkgYXJlIHByZXNlbnRlZCBhcyBhIGdyb3VwLCB3aXRoIG9uZSBuYW1lLCBhbmQgY2FuIGhhdmUgYSB2YWxpZGF0aW9uIGZ1bmN0aW9uIHJlcXVpcmluZyB0aGF0IHlvdSBjaGVjayBvbmUgb3IgbW9yZSBvZiB0aGUgYm94ZXMgaW4gdGhlIGdyb3VwLjwvbGk+DQo8bGk+UmFkaW8gR3JvdXAuIFRoaXMgaXMgYSBjb2xsZWN0aW9uIG9mIHJhZGlvIGJ1dHRvbnMuIE9ubHkgb25lIG9mIHRoZSBncm91cCBtYXkgYmUgc2VsZWN0ZWQgYnkgdGhlIHVzZXIuPC9saT4NCjxsaT5QdWxsZG93bi4gVGhpcyBpcyBhIHN0YW5kYXJkIHB1bGxkb3duIG1lbnUuIEl0JiMwMzk7cyByZWFsbHkgY29uY2VwdHVhbGx5IHRoZSBzYW1lIHRoaW5nIGFzIGEgcmFkaW8gYnV0dG9uDQpncm91cCwgYnV0IGlzIGJldHRlciB3aGVuIHRoZXJlIGFyZSBhIGxhcmdlIG51bWJlciBvZiBvcHRpb25zLjwvbGk+DQo8bGk+TXVsdGlzZWxlY3QuIFRoaXMgaXMgYSBtdWx0aS1zZWxlY3QgZmllbGQuIEl0JiMwMzk7cyByZWFsbHkgY29uY2VwdHVhbGx5IHRoZSBzYW1lIHRoaW5nIGFzIGEgY2hlY2tib3ggYnV0dG9uDQpncm91cCwgYnV0IGlzIGJldHRlciB3aGVuIHRoZXJlIGFyZSBhIGxhcmdlIG51bWJlciBvZiBvcHRpb25zLCBhcyB5b3UgY2FuIGxpbWl0IHRoZSBudW1iZXIgZGlzcGxheWVkIG9uIHRoZSBzY3JlZW4gYXQgYW55IG9uZSB0aW1lLjwvbGk+DQo8bGk+U3RhdGUuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBTdGF0ZXMgb2YgdGhlIFUuUy48L2xpPg0KPGxpPkNvdW50cmllcy4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIENvdW50cmllcyBvZiB0aGUgd29ybGQgKGFzIG9mIEp1bHkgMjAwNSkuPC9saT4NCjxsaT5EYXRlIFBpY2tlci4gVGhpcyBpcyBhIHRyaXBsZSBwdWxsZG93biBhbGxvd2luZyB0aGUgdXNlciB0byBzZWxlY3QgYSBkYXRlLjwvbGk+DQo8bGk+VGltZSBQaWNrZXIuIFRoaXMgaXMgYSBzZXQgb2YgcHVsbGRvd25zIGFsbG93aW5nIHRoZSB1c2VyIHRvIHNlbGVjdCBhIHRpbWUgKHVzaW5nIDEyIG9yIDI0IGhvdXIgY2xvY2spLjwvbGk+DQo8bGk+RmlsZSBVcGxvYWQuIFRoaXMgaXMgYSBmaWxlIHVwbG9hZCBmaWVsZC48L2xpPg0KPGxpPkxpbmsgKFVzZXIgRW50ZXJlZCkuIFRoaXMgY3JlYXRlcyBhIGRvdWJsZSBpbnB1dCBmaWVsZCBmb3IgZ2V0dGluZyBhIGxpbmsgVVJMIGFuZCBsaW5rIHRpdGxlLjwvbGk+DQo8bGk+VGV4dCBGaWVsZCAoTXVsdGlwbGUpLiBUaGlzIGZpZWxkIGNyZWF0ZXMgb25lIG9yIG1vcmUgdGV4dCBpbnB1dHMgd2l0aCBhZGQgYW5kIGRlbGV0ZSBidXR0b25zLCBlZmZlY3RpdmVseSBnaXZpbmcgdGhlIGVuZCB1c2VyIGEgd2F5IG9mIGNyZWF0aW5nIHZhcmlhYmxlLWxlbmd0aCBsaXN0cy48L2xpPg0KPC91bD48L2xpPg0KDQo8bGk+RW1haWwtc3BlY2lmaWMgSW5wdXRzDQo8dWw+PGxpPkVtYWlsIEZyb20gQWRkcmVzcyBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSB0aGVpciBlbWFpbCBhZGRyZXNzLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgYWRkcmVzcyBpbiB0aGUgJnF1b3Q7RnJvbSZxdW90OyBmaWVsZC48L2xpPg0KPGxpPkVtYWlsIEZyb20gTmFtZSBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSB0aGVpciBuYW1lLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgbmFtZSBpbiB0aGUgJnF1b3Q7RnJvbSZxdW90OyBmaWVsZC48L2xpPg0KPGxpPkVtYWlsIFN1YmplY3QgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgYSBzdWJqZWN0IGZvciB0aGVpciBlbWFpbC4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIGluIHRoZSAmcXVvdDtTdWJqZWN0JnF1b3Q7IGZpZWxkLiBUaGlzIG1heSBjYXVzZSB0cm91YmxlIHdpdGggY2VydGFpbiBkaXNwb3NpdGlvbnMgdGhhdCB3YW50IHRvIGNvbnRyb2wgdGhlIEVtYWlsIFN1YmplY3QsIHNvIHVzZSBpdCB3aXRoIGNhdXRpb24uPC9saT4NCjwvdWw+PC9saT4NCg0KPGxpPkRpc3BsYXkgQ29udHJvbCBGaWVsZHM8dWw+DQo8bGk+LVBhZ2UgQnJlYWsuIFRoaXMgYWxsb3dzIHlvdSB0byBzcGxpdCB5b3VyIGZlZWRiYWNrIGZvcm0gaW50byBtdWx0aXBsZSBwYWdlcy4gRWFjaCBwYWdlIGlzDQppbmRlcGVuZGVudGx5IHZhbGlkYXRlZC4gVGhpcyBpcyBnb29kIGZvciBhcHBsaWNhdGlvbnMgbGlrZSBvbmxpbmUgc3VydmV5cy48L2xpPg0KPGxpPi1GaWVsZHNldCBTdGFydC4gQ29tYmluZWQgd2l0aCBGaWVsZHNldCBFbmQsIHRoaXMgYWxsb3dzIHlvdSB0byBncm91cCB2YXJpb3VzIGZpZWxkcyB3aXRoaW4geW91ciBmb3JtLiBVc2UgdGhpcyB0byBzdGFydCBhIGdpdmVuIGdyb3VwaW5nLjwvbGk+DQo8bGk+LUZpZWxkc2V0IEVuZC4gQ29tYmluZWQgd2l0aCBGaWVsZHNldCBTdGFydCwgdGhpcyBhbGxvd3MgeW91IHRvIGdyb3VwIHZhcmlvdXMgZmllbGRzIHdpdGhpbiB5b3VyIGZvcm0uIFVzZSB0aGlzIHRvIGVuZCBhIGdpdmVuIGdyb3VwaW5nLjwvbGk+DQo8bGk+LUhpZGRlbiBGaWVsZC4gVGhpcyBhbGxvd3MgeW91IHRvIGVtYmVkIGEgaGlkZGVuIGZpZWxkIGluIHlvdXIgZm9ybS48L2xpPg0KPGxpPi1TdGF0aWMgVGV4dC4gVGhpcyBhbGxvd3MgeW91IHRvIHB1dCB0ZXh0IG9yIGEgbGFiZWwgaW4gdGhlIG1pZGRsZSBvZiB5b3VyIGZvcm0uIFRoaXMgaXMgdXNlZnVsIGZvciBnaXZpbmcgYWRkaXRpb25hbCBoZWxwIHRleHQsIGVzcGVjaWFsbHkgaWYgeW91JiMwMzk7cmUgbm90IHVzaW5nIGEgQ3VzdG9tIFRlbXBsYXRlIHRvIHJlbmRlciB5b3VyIGZvcm0uPC9saT4NCjxsaT4tU3RhdGljIExpbmsuIFRoaXMgYWxsb3dzIHlvdSB0byBwdXQgYSBsaW5rIHRvIGEgZ2l2ZW4gcGFnZSBpbnRvIHlvdXIgZm9ybS4gT3B0aW9uYWxseSwgeW91IGNhbiBoYXZlIGl0IGF1dG9wb3B1bGF0ZSB3aXRoIHRoZSBwYWdlIHdoZXJlIHRoZSBmb3JtIGlzIGVtYmVkZGVkICh1c2VmdWwgaWYgeW91XCYjMDM5O3JlIHNlbmRpbmcgcmVzdWx0cyB2aWEgZW1haWwpLjwvbGk+DQo8bGk+LUNvbXB1dGVkIEZpZWxkLiBUaGlzIGFsbG93cyB5b3UgdG8gZW1iZWQgYSBjb21wdXRlZCBmaWVsZCBpbiB5b3VyIGZvcm0uIEl0IGlzIG5vdCB2aXNpYmxlIHRvIHRoZSB1c2VyIHVudGlsIGFmdGVyIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZC4gSXQgYWxsb3dzIHlvdSB0byBkbyBzaW1wbGUgYXJpdGhtZXRpYyBvciBzdHJpbmcgY29uY2F0ZW5hdGlvbi48L2xpPg0KPC91bD48L2xpPg0KDQo8bGk+Rm9ybSBIYW5kbGluZyBJbnB1dHMgKERpc3Bvc2l0aW9ucykNCjx1bD48bGk+KkNhbGwgYSBVc2VyIERlZmluZWQgVGFnIFdpdGggdGhlIEZvcm0gUmVzdWx0cy4gVGhpcyBzdWJtaXRzIGFsbCB0aGUgZm9ybSByZXN1bHRzIHRvIHRoZSBVc2VyLURlZmluZWQgVGFnIHlvdSBzcGVjaWZ5LiBUaGUgVURUIGNhbiBoYW5kbGUgdGhlIHJlc3VsdHMgaG93ZXZlciBpdCB3YW50cy48L2xpPg0KPGxpPipFbWFpbCBSZXN1bHRzIEJhc2VkIG9uIFB1bGxkb3duLiBUaGlzIGlzIHVzZWZ1bCBmb3Igd2ViIHNpdGVzIHdoZXJlIGNvbW1lbnRzIGdldCByb3V0ZWQgYmFzZWQgb24gdGhlaXIgc3ViamVjdCBtYXR0ZXIsIGUuZy4sIGJ1Z3MgZ2V0IHNlbnQgdG8gb25lIHBlcnNvbiwgbWFya2V0aW5nIHF1ZXN0aW9ucyB0byBhbm90aGVyIHBlcnNvbiwgc2FsZXMgcmVxdWVzdHMgdG8gc29tZW9uZSBlbHNlLCBldGMuIFRoZSBwdWxsZG93biBpcyBwb3B1bGF0ZWQgd2l0aCB0aGUgc3ViamVjdHMsIGFuZCBlYWNoIGdldHMgZGlyZWN0ZWQgdG8gYSBzcGVjaWZpYyBlbWFpbCBhZGRyZXNzLiBZb3Ugc2V0IHVwIHRoZXNlIG1hcHBpbmdzIGluIHRoZSB3aGVuIHlvdSBjcmVhdGUgb3IgZWRpdCBhIGZpZWxkIG9mIHRoaXMgdHlwZS4gSWYgeW91IHVzZSBvbmUgb2YgdGhlc2UgJnF1b3Q7RGlyZWN0b3ImcXVvdDsgcHVsbGRvd25zLCB0aGUgdXNlciBtdXN0IG1ha2UgYSBzZWxlY3Rpb24gaW4gb3JkZXIgdG8gc3VibWl0IHRoZQ0KZm9ybS4gVGhpcyBpbnB1dCBpcyBwYXJ0IG9mIHRoZSBmb3JtIHRoZSB1c2VyIHNlZXMsIGFsdGhvdWdoIHRoZSBlbWFpbCBhZGRyZXNzZXMgYXJlIG5vdCBtYWRlIHZpc2libGUgbm9yDQphcmUgdGhleSBlbWJlZGRlZCBpbiB0aGUgSFRNTC48L2xpPg0KPGxpPipFbWFpbCBSZXN1bHRzIHRvIHNldCBBZGRyZXNzKGVzKS4gVGhpcyBzaW1wbHkgc2VuZHMgdGhlIGZvcm0gcmVzdWx0cyB0byBvbmUgb3IgbW9yZSBlbWFpbCBhZGRyZXNzZXMgdGhhdCB5b3UgZW50ZXIgd2hlbiB5b3UgY3JlYXRlIG9yIGVkaXQgdGhpcyB0eXBlIG9mIGZpZWxkLiBUaGlzIGZpZWxkIGFuZCBpdHMgbmFtZSBhcmUgbm90IHZpc2libGUgaW4gdGhlDQpmb3JtIHRoYXQgdGhlIHVzZXIgc2Vlcy4gVGhlIGVtYWlsIGFkZHJlc3NlcyBhcmUgbm90IG1hZGUgdmlzaWJsZSBub3INCmFyZSB0aGV5IGVtYmVkZGVkIGluIHRoZSBIVE1MLjwvbGk+DQo8bGk+KkVtYWlsIHRvIFVzZXItU3VwcGxpZWQgQWRkcmVzcy4gVGhpcyBwdXRzIGFuIGlucHV0IGZpZWxkIGluIHRoZSBmb3JtIGZvciB0aGUgdXNlciB0byBwb3B1bGF0ZSB3aXRoIGFuIGVtYWlsIGFkZHJlc3MuIFRoZSBmb3JtIHJlc3VsdHMgZ2V0IHNlbnQgdG8gdGhhdCBhZGRyZXNzLiBCZXdhcmUgb2YgU3BhbSBhYnVzZSEgQWN0aXZlIHRoZSBwcmltaXRpdmUgYW50aS1zcGFtIGZlYXR1cmVzIGluIHRoZSBGb3JtQnVpbGRlciBjb25maWd1cmF0aW9uIHNjcmVlbi48L2xpPg0KPGxpPipTdG9yZSBSZXN1bHRzIGluIERhdGFiYXNlLiBUaGlzIHdpbGwgc3RvcmUgdGhlIGZvcm0gY29udGVudHMgaW4gYW4gaW50ZXJuYWwgZGF0YWJhc2UuIFlvdSB3aWxsIGFsd2F5cyB1c2UgdGhpcyBkaXNwb3NpdGlvbiBpZiB5b3UgdXNlIHRoZSBmb3JtIHdpdGggRm9ybUJyb3dzZXIuPC9saT4NCjxsaT4qUmVkaXJlY3QgdG8gUGFnZSBCYXNlZCBvbiBQdWxsZG93bi4gVGhpcyBhbGxvd3MgeW91IHRvIHJlZGlyZWN0IHRoZSBmb3JtIHRvIGEgZGlmZmVyZW50IHNpdGUgcGFnZSBkZXBlbmRpbmcgb24gaXRzIHZhbHVlLiBJZiB5b3UgaGF2ZSBtdWx0aXBsZSBkaXNwb3NpdGlvbnMsIG1ha2Ugc3VyZSB0aGlzIGlzIHVzZWQgbGFzdC48L2xpPg0KPGxpPipWYWxpZGF0ZSB2aWEgRW1haWwuIFRoaXMgaXMgYSBzdHJhbmdlIGFuZCBwb3dlcmZ1bCBmaWVsZC4gSXQgcHJvdmlkZXMgdGhlIHVzZXIgYSBtYW5kYXRvcnkgaW5wdXQgZm9yIHRoZWlyIGVtYWlsIGFkZHJlc3MuIE9uY2UgdGhleSBzdWJtaXQgdGhlaXIgZm9ybSwgdGhlIHN0YW5kYXJkIGZvcm0gZGlzcG9zaXRpb25zIGFyZSBub3QgcGVyZm9ybWVkIC0tIHJhdGhlciwgaXQgc2VuZCB0aGUgdXNlciBhbiBlbWFpbCB3aXRoIGEgc3BlY2lhbCBjb2RlZCBsaW5rLiBJZiB0aGV5IGNsaWNrIG9uIHRoZSBsaW5rLCB0aGUgb3RoZXIgZm9ybSBpcyBjb25zaWRlcmVkICZxdW90O2FwcHJvdmVkLCZxdW90OyBhbmQgdGhlIG90aGVyIGRpc3Bvc2l0aW9ucyBhcmUgYWxsIHBlcmZvcm1lZC48L2xpPg0KPGxpPipXcml0ZSBSZXN1bHRzIHRvIEZsYXQgRmlsZS4gVGhpcyB0YWtlcyB0aGUgZm9ybSByZXN1bHRzIGFuZCB3cml0ZXMgdGhlbSBpbnRvIGEgdGV4dCBmaWxlLiBZb3UgbWF5DQpzZWxlY3QgdGhlIG5hbWUgb2YgdGhlIGZpbGUsIGFuZCBzZXQgaXRzIGZvcm1hdC4gVGhlc2UgZmlsZXMgYXJlIHdyaXR0ZW4gdG8gdGhlICZxdW90O291dHB1dCZxdW90OyBkaXJlY3RvcnkgdW5kZXIgdGhlDQptb2R1bGUmIzAzOTtzIGluc3RhbGxhdGlvbiBkaXJlY3RvcnksIGFzc3VtaW5nIHRoZSB3ZWIgc2VydmVyIGhhcyBwZXJtaXNzaW9uIHRvIHdyaXRlIHRoZXJlLjwvbGk+DQo8bGk+KlNhdmUgUmVzdWx0cyB0byBGaWxlIEJhc2VkIG9uIFB1bGxkb3duLiBMaWtlIHRoZSBGbGF0IEZpbGUgZGlzcG9zaXRpb24sIGV4Y2VwdCB0aGUgdmFsdWUgb2YgYSBwdWxsLWRvd24gZGV0ZXJtaW5lcyB3aGljaCBmaWxlIHJlc3VsdHMgZ2V0IHdyaXR0ZW4gdG8uPC9saT4NCjxsaT4qU2F2ZSBSZXN1bHRzIHRvIEZpbGUocykgQmFzZWQgb24gTXVsdGlwbGUgU2VsZWN0aW9ucy4gTGlrZSB0aGUgRmxhdCBGaWxlIGRpc3Bvc2l0aW9uLCBleGNlcHQgdGhlIHZhbHVlKHMpIG9mIGNoZWNrYm94ZXMgIGRldGVybWluZXMgd2hpY2ggZmlsZShzKSByZXN1bHRzIGdldCB3cml0dGVuIHRvLjwvbGk+DQo8L3VsPjwvbGk+PC9saT48L3VsPg0KDQoNCjxoMz5QYXNzaW5nIERlZmF1bHQgVmFsdWVzIHRvIEZvcm1zPC9oMz4NCjxwPkNhbGd1eSBhZGRlZCBhIG5pY2UgZmVhdHVyZSwgd2hpY2ggaXMgdGhhdCB5b3UgY2FuIHBhc3MgZGVmYXVsdCBmaWVsZCB2YWx1ZXMgdG8geW91ciBmb3JtIHZpYSB0aGUgbW9kdWxlIHRhZy4gVGhpcyBhbGxvd3MgeW91IHRvIGhhdmUNCnRoZSBzYW1lIGZvcm0gaW4gbXVsdGlwbGUgcGxhY2VzLCBidXQgd2l0aCBkaWZmZXJlbnQgZGVmYXVsdCB2YWx1ZXMuIEl0IG1heSBub3Qgd29yayBmb3IgbW9yZSBleG90aWMgZmllbGQgdHlwZXMsIGJ1dCBmb3IgZmllbGRzIHRoYXQgaGF2ZQ0KYSBzaW5nbGUgdmFsdWUsIHlvdSBjYW4gc3BlY2lmeSBsaWtlOjwvcD4NCjxwPntjbXNfbW9kdWxlIG1vZHVsZT0mIzAzOTtGb3JtQnVpbGRlciYjMDM5OyBmb3JtPSYjMDM5O215X2Zvcm0mIzAzOTsgdmFsdWVfPGk+RklFTEROQU1FPC9pPj0mIzAzOTtkZWZhdWx0X3ZhbHVlJiMwMzk7fTwvcD4NCjxwPlRoaXMgd2lsbCBzZXQgdGhlIGZpZWxkIHdpdGggPGk+RklFTEROQU1FPC9pPiB0byAmIzAzOTtkZWZhdWx0X3ZhbHVlJiMwMzk7LjwvcD4NCjxwPlRoaXMgY2FuIGJlIHByb2JsZW1hdGljLCBhcyBzb21ldGltZXMgZmllbGQgbmFtZXMgYXJlIHVud2VpbGR5IG9yIGNvbnRhaW4gY2hhcmFjdGVycyB0aGF0IGRvbiYjMDM5O3Qgd29yayB3ZWxsIHdpdGggU21hcnR5LiBTbyB0aGVyZSBpcyBhbg0KYWx0ZXJuYXRpdmUgbGlrZSB0aGlzOjwvcD4NCjxwPntjbXNfbW9kdWxlIG1vZHVsZT0mIzAzOTtGb3JtQnVpbGRlciYjMDM5OyBmb3JtPSYjMDM5O215X2Zvcm0mIzAzOTsgdmFsdWVfZmxkPGk+TlVNQkVSPC9pPj0mIzAzOTtkZWZhdWx0X3ZhbHVlJiMwMzk7fTwvcD4NCjxwPlRoYXQgdXNlcyBmaWVsZCA8aT5OVU1CRVI8L2k+LCB3aGVyZSA8aT5OVU1CRVI8L2k+IGlzIHRoZSBpbnRlcm5hbCBGb3JtQnVpbGRlciBmaWVsZCBpZC4gWW91IG1pZ2h0IHdvbmRlciBob3cgeW91IGtub3cgd2hhdCB0aGF0IGlkIGlzLiBTaW1wbHkgZ28gaW50byB0aGUgRm9ybUJ1aWxkZXIgY29uZmlndXJhdGlvbiB0YWIsDQphbmQgY2hlY2sgJnF1b3Q7U2hvdyBGaWVsZCBJRHMmcXVvdDs8L3A+DQoNCjxoMz5FbWFpbCBhbmQgRmxhdCBGaWxlIFRlbXBsYXRlczwvaDM+DQo8cD5NYW55IGRpc3Bvc2l0aW9uIHR5cGVzIGFsbG93IHlvdSB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmb3IgdGhlIGVtYWlsIHRoYXQgaXMgZ2VuZXJhdGVkLCBvciBmb3IgdGhlIHdheSB0aGUgcmVzdWx0cyBhcmUgd3JpdHRlbiB0byBhIGZpbGUuIElmIHlvdSBvcHQgbm90IHRvIGNyZWF0ZSBhIHRlbXBsYXRlLCB0aGUgRm9ybUJ1aWxkZXIgd2lsbCB1c2UgaXQmIzAzOTtzIG93biBiZXN0IGd1ZXNzLCB3aGljaCBtYXkgb3IgbWF5IG5vdCB3b3JrIG91dCB0byB5b3VyIGxpa2luZy4gWW91IGNhbiBhbHdheXMgY2xpY2sgb24gdGhlICZxdW90O0NyZWF0ZSBTYW1wbGUgVGVtcGxhdGUmcXVvdDsgYW5kIHRoZW4gY3VzdG9taXplIHRoZSByZXN1bHRzLjwvcD4NCjxwPlRvIHRoZSByaWdodCwgeW91JiMwMzk7bGwgZmluZCBhIGxlZ2VuZCB3aGljaCBsaXN0cyBhbGwgb2YgdGhlIHZhcmlhYmxlcyB0aGF0IGFyZSBhdmFpbGFibGUgdG8geW91IHRvIHVzZSBpbiB5b3VyIHRlbXBsYXRlLiBBcyBvZiB2ZXJzaW9uIDAuMywgdmFyaWFibGVzIGhhdmUgdHdvIG5hbWVzLCBvbmUgYmFzZWQgb24gdGhlIGZpZWxkIG5hbWUsIHRoZSBvdGhlciBiYXNlZCBvbiB0aGUgZmllbGQgSUQuIElmIHlvdSB1c2UgZmllbGQgbmFtZXMgdGhhdCBoYXZlIGNoYXJhY3RlcnMgb3V0c2lkZSBvZiB0aGUgQVNDSUkgMzItMTI2IHJhbmdlLCBpdCB3aWxsIGJlIHNhZmVyIHRvIHVzZSB0aGUgSUQtYmFzZWQgdmFyaWFibGVzLjwvcD4NCjxwPjxzdHJvbmc+Tm90ZSB0aGF0IG9uY2UgeW91JiMwMzk7dmUgY2hhbmdlZCBhIHRlbXBsYXRlLCBpdCB3aWxsIG5vIGxvbmdlciBhdXRvbWF0aWNhbGx5IGFkZCBuZXcgZmllbGRzLjwvc3Ryb25nPiBGb3IgdGhpcyByZWFzb24sIGl0JiMwMzk7cyB1c3VhbGx5IGJlc3QgdG8gY3JlYXRlIHlvdXIgdGVtcGxhdGVzIGFzIHRoZSBsYXN0IHN0ZXAgb2YgY3JlYXRpbmcgeW91ciBmb3JtLjwvcD4NCjxwPkFzIG9mIHZlcnNpb24gMC4yLjQsIHlvdSBjYW4gb3B0IHRvIHNlbmQgYW55IG9mIHRoZXNlIGVtYWlscyBhcyBIVE1MIGVtYWlsLiBUaGVyZSBzaG91bGQgYmUgYSBjaGVja2JveCBhdCB0aGUgdG9wIG9mIHRoZSB0ZW1wbGF0ZSBwYWdlIGZvciB0aGlzLiBUaGVyZSBpcyBhbHNvIGEgJnF1b3Q7Q3JlYXRlIFNhbXBsZSBIVE1MIFRlbXBsYXRlJnF1b3Q7IGJ1dHRvbiBvdmVyIGluIHRoZSBsZWdlbmQgYXJlYS4gRm9yIEhUTUwgZW1haWwsIHRoZSBlbWFpbCBib2R5IHdpbGwgYWxzbyBwcm92aWRlIHRoZSBkZWZhdWx0IHRleHQtb25seSB2YWx1ZXMuPC9wPg0KDQo8aDM+Q29uZmlndXJhdGlvbjwvaDM+DQo8cD5UaGVyZSBhcmUgc29tZSBnbG9iYWwgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBGb3JtQnVpbGRlcjo8L3A+DQo8dWw+DQo8bGk+RW5hYmxlIGZhc3QgZmllbGQgYWRkIHB1bGxkb3duLiBUaGlzIGVuYWJsZXMgdGhlIHB1bGxkb3duIG9uIHRoZSBGb3JtIEVkaXQgcGFnZSB3aGljaCBzYXZlcyBhIHN0ZXAgaW4gdGhlIGNyZWF0aW9uIG9mIG5ldyBmaWVsZHMuPC9saT4NCjxsaT5IaWRlIEVycm9ycy4gVGhpcyBpcyBzZXQgYnkgZGVmYXVsdC4gVW5jaGVja2luZyBpdCB3aWxsIGNhdXNlIG1vcmUgZGV0YWlsZWQgZXJyb3JzIHRvIGJlIGRpc3BsYXllZCBpZiB0aGVyZSBhcmUgcHJvYmxlbXMgd2hlbiB5b3Ugc3VibWl0IHlvdXIgZm9ybS48L2xpPg0KPGxpPlJlcXVpcmUgRmllbGQgTmFtZXMuIFR5cGljYWxseSwgeW91IHdpbGwgd2FudCBmb3JtIGZpZWxkcyB0byBiZSBuYW1lZCBzbyB5b3UgY2FuIHRlbGwgd2hpY2ggaXMgd2hpY2guIEhvd2V2ZXIsIGluIHNvbWUgY2FzZXMsIHlvdSBtaWdodCB3YW50IHRvIGhhdmUgbmFtZWxlc3MgZmllbGRzLiBVbmNoZWNrIHRoaXMgaWYgeW91IHdhbnQgdG8gYWxsb3cgbmFtZWxlc3MgZmllbGRzLjwvbGk+DQo8bGk+VW5pcXVlIEZpZWxkIE5hbWVzLiBUeXBpY2FsbHksIHlvdSB3aWxsIHdhbnQgZm9ybSBmaWVsZHMgdG8gaGF2ZSB1bmlxdWUgbmFtZXMgc28geW91IGNhbiB0ZWxsIHdoaWNoIGlzIHdoaWNoLiBVbmNoZWNrIHRoaXMgaWYgeW91IHdhbnQgdG8gYWxsb3cgZmllbGRzIHRvIHNoYXJlIG5hbWVzLjwvbGk+DQo8bGk+VXNlIHJlbGF4ZWQgZW1haWwgdmFsaWRhdGlvbi4gVGhpcyB1c2VzIGEgbGVzcyByZXN0cmljdGl2ZSByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHZhbGlkYXRpbmcgZW1haWw7IGUuZy4sIHhAeSB3aWxsIGJlIGFsbG93ZWQsIHdoZXJlIHR5cGljYWxseSB4QHkudGxkIGlzIHJlcXVpcmVkLjwvbGk+DQo8bGk+U2hvdyBGb3JtIEJ1aWxkZXIgVmVyc2lvbi4gRGlzcGxheXMgdGhlIHZlcnNpb24gb2YgRm9ybUJ1aWxkZXIgeW91JiMwMzk7cmUgdXNpbmcgaW4gYSBjb21tZW50IHdoZW4gdGhlIGZvcm0gaXMgZ2VuZXJhdGVkLiBUeXBpY2FsbHkgb25seSB1c2VmdWwgd2hlbiBkZWJ1Z2dpbmcuPC9saT4NCjxsaT5FbmFibGUgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcy4gV2hlbiB0dXJuZWQgb24sIHRoaXMgYWxsb3dzIGFueSBnaXZlbiBJUCBhZGRyZXNzIHRvIG9ubHkgZ2VuZXJhdGUgMTAgZW1haWxzIHBlciBob3VyLjwvbGk+DQo8bGk+U2hvdyBGaWVsZCBJRHMuIFdoZW4gdHVybmVkIG9uLCBGb3JtQnVpbGRlciB3aWxsIGRpc3BsYXkgZmllbGQgaWRzIHdoZW4gYWRkaW5nIG9yIGVkaXRpbmcgYSBmb3JtLjwvbGk+DQo8L3VsPg0KPGgzPlN0eWxpbmcgYW5kIENTUzwvaDM+DQo8cD5QYXVsIE5vb25lIGdyYWNpb3VzbHkgcHJvdmlkZXMgdXMgYWxsIHdpdGggYSBwcmV0dHkgZ29vZCBzdGFuZGFyZCBDU1MgdGhhdCB5b3UgY2FuIHVzZSBmb3IgZm9ybXM6PC9wPg0KPHByZT4NCgkvKiBTYW1wbGUgRm9ybUJ1aWxkZXIgQ1NTIGJhc2UgKi8NCglmb3JtIHttYXJnaW4tdG9wOjB9DQoJZm9ybSwgdGQsIHRoLCBsaSB7IGZvbnQtc2l6ZTogMTAwJX0NCglmb3JtIGRpdiB7bWFyZ2luLWJvdHRvbTowfQ0KCWZpZWxkc2V0IGRpdiB7DQoJCW1hcmdpbi1ib3R0b206MC41ZW07DQoJCW1hcmdpbi1sZWZ0OjFlbTsNCgl9DQoJZmllbGRzZXQgZGl2IGRpdiB7DQoJCW1hcmdpbi10b3A6MC41ZW07DQoJCW1hcmdpbi1sZWZ0OjFlbQ0KCX0NCglmaWVsZHNldCB7DQoJCW1hcmdpbi1ib3R0b206MWVtOw0KCQlib3JkZXI6MXB4IHNvbGlkICNGNjA7DQoJCXBhZGRpbmc6MC41ZW0NCgl9DQoJZmllbGRzZXQgbGFiZWwgew0KCQl3aWR0aDphdXRvOw0KCX0NCglsZWdlbmQgew0KCQljb2xvcjojRkZGOw0KCQliYWNrZ3JvdW5kOiNGNjA7DQoJCWZvbnQtc3R5bGU6aXRhbGljOw0KCQlmb250LXNpemU6MS4yZW07DQoJCW1hcmdpbi1ib3R0b206MC41ZW07DQoJCXBhZGRpbmc6MC4yZW07DQoJCXdpZHRoOmF1dG87DQoJCWJvcmRlcjoxcHggc29saWQgI0NDQw0KCX0NCgl0ZXh0YXJlYSB7DQoJCW1hcmdpbjogMC41ZW0gMDsNCgkJd2lkdGg6OTglOw0KCQloZWlnaHQ6IDZlbQ0KCX0NCg0KCS8qIEFwcGx5IHRoaXMgY2xhc3MgdG8gdGV4dC9zZWxlY3QgaW5wdXQgZmllbGRzIHdpdGggc2hvcnRlciBsYWJlbHMNCgkJdG8gaGVscCBhbGlnbm1lbnQgKi8NCgkuc2hvcnQtbGFiZWwgbGFiZWwge2Zsb2F0OmxlZnQ7IHdpZHRoOjEwZW19DQoJLnNob3J0LWxhYmVsIGZpZWxkc2V0IGRpdiBpbnB1dCwNCgkuc2hvcnQtbGFiZWwgZmllbGRzZXQgZGl2IHNlbGVjdCB7d2lkdGg6MTZlbX0NCg0KCS8qIFByZXR0eSB1cCB5b3VyIENhcHRjaGEgaW1hZ2Ugb3V0cHV0ICovDQoJLmNhcHRjaGEgew0KCQltYXJnaW46MC41ZW0gMDsNCgkJd2lkdGg6MjAwcHg7DQoJCXRleHQtYWxpZ246Y2VudGVyDQoJfQ0KCS5jYXB0Y2hhIGltZyB7Ym9yZGVyOjFweCBzb2xpZCAjRjYwOyBtYXJnaW4tYm90dG9tOjAuNWVtfQ0KCS5jYXB0Y2hhIGlucHV0IHt3aWR0aDoxOTZweDsgbWFyZ2luLXRvcDowLjVlbX0NCg0KCS8qIEp1c3QgYSBiaXQgbW9yZSByb29tIGZvciB0aGUgU3VibWl0IGJ1dHRvbiAqLw0KCS5zdWJtaXQge21hcmdpbi10b3A6MC41ZW19DQo8L3ByZT4NCg0KPGgzPkZvcm0gVGVtcGxhdGUgVmFyaWFibGVzPC9oMz4NCg0KPGgzPkZvcm0gVGVtcGxhdGUgVmFyaWFibGVzPC9oMz4NCjxwPllvdSBjYW4gZWRpdCBpdCB0byBtYWtlIHlvdXIgZm9ybSBsYXlvdXQgbG9vayBhbnkgd2F5IHlvdSYjMDM5O2QgbGlrZS4NCiAgIFRvIG1ha2UgdGhlIGZvcm0gd29yaywgeW91JiMwMzk7bGwgbmVlZCB0byBhbHdheXMgaW5jbHVkZSB0aGUgeyRmYl9oaWRkZW59IGFuZCB7JHN1Ym1pdH0NCiAgIHRhZ3MuPC9wPg0KDQo8cD5Zb3UgY2FuIGFjY2VzcyB5b3VyIGZvcm0gZmllbGRzIGVpdGhlciB1c2luZyB0aGUgJGZpZWxkcyBhcnJheSBvciBieSBkaXJlY3RseSBhY2Nlc3NpbmcgZmllbGRzIGJ5IHRoZWlyIG5hbWVzIChlLmcuLCB7JG15ZmllbGQtPmlucHV0fSApPC9wPg0KDQoNCjxwPkVhY2ggZmllbGQgaGFzIHRoZSBmb2xsb3dpbmcgYXR0cmlidXRlczo8L3A+DQo8dGFibGU+DQo8dHI+PHRoPkZpZWxkPC90aD48dGg+VmFsdWU8L3RoPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5kaXNwbGF5PC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgc2hvdWxkIGJlIGRpc3BsYXllZCwgMCBvdGhlcndpc2U8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5yZXF1aXJlZDwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIGlzIHJlcXVpcmVkLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPnJlcXVpcmVkX3N5bWJvbDwvdGQ+PHRkPnRoZSBzeW1ib2wgZm9yIHJlcXVpcmVkIGZpZWxkczwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmNzc19jbGFzczwvdGQ+PHRkPnRoZSBDU1MgY2xhc3Mgc3BlY2lmaWVkIGZvciB0aGlzIGZpZWxkPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+dmFsaWQ8L3RkPjx0ZD4xIGlmIHRoaXMgZmllbGQgaGFzIHBhc3NlZCB2YWxpZGF0aW9uLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmVycm9yPC90ZD48dGQ+VGV4dCBvZiB0aGUgdmFsaWRhdGlvbiBwcm9ibGVtLCBpbiB0aGUgZXZlbnQgdGhhdCB0aGlzIGZpZWxkIGRpZCBub3QgdmFsaWRhdGU8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5oaWRlX25hbWU8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBuYW1lIHNob3VsZCBiZSBoaWRkZW4sIDAgb3RoZXJ3aXNlPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aGFzX2xhYmVsPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgdHlwZSBoYXMgYSBsYWJlbDwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPm5lZWRzX2RpdjwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIG5lZWRzIHRvIGJlIHdyYXBwZWQgaW4gYSBESVYgKG9yIHRhYmxlIHJvdywgaWYgdGhhdCYjMDM5O3MgdGhlIHdheSB5b3Ugc3dpbmcpPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+bmFtZTwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgbmFtZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmlucHV0PC90ZD48dGQ+dGhlIGZpZWxkJiMwMzk7cyBpbnB1dCBjb250cm9sIChlLmcuLCB0aGUgaW5wdXQgZmllbGQgaXRzZWxmKTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPm9wPC90ZD48dGQ+YSBjb250cm9sIGJ1dHRvbiBhc3NvY2lhdGVkIHdpdGggdGhlIGZpZWxkIGlmIGFwcGxpY2FibGUgKGUuZy4sIHRoZSBkZWxldGUgYnV0dG9uIGZvciBleHBhbmRhYmxlIHRleHQgaW5wdXQpPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aW5wdXRfaWQ8L3RkPjx0ZD50aGUgSUQgb2YgdGhlIGZpZWxkJiMwMzk7cyBpbnB1dCAodXNlZnVsIGZvciA8bGFiZWwgZm9yPSZxdW90OyZxdW90Oz4pPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+dHlwZTwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgZGF0YSB0eXBlPC90ZD48L3RyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCjx0cj48dGQ+ZmllbGQtPm11bHRpcGxlX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQtPmlucHV0IGlzIGFjdHVhbGx5IGEgY29sbGVjdGlvbiBvZiBjb250cm9sczwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmxhYmVsX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgY29sbGVjdGlvbiBvZiBjb250cm9scyBoYXMgc2VwYXJhdGUgbGFiZWxzIGZvciBlYWNoIGNvbnRyb2w8L3RkPjwvdHI+DQo8L3RhYmxlPg0KDQo8cD5JbiBjZXJ0YWluIGNhc2VzLCBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYW4gYXJyYXkgb2Ygb2JqZWN0cyByYXRoZXIgdGhhbiBhbiBpbnB1dC4gVGhpcyBoYXBwZW5zLCBmb3IgZXhhbXBsZSwgaW4gQ2hlY2tCb3hHcm91cHMgb3IgUmFkaW9CdXR0b25Hcm91cHMuIEZvciB0aGVtLCB5b3UgY2FuIGl0ZXJhdGUgdGhyb3VnaCBmaWVsZC0+aW5wdXQtPm5hbWUgYW5kIGZpZWxkLT5pbnB1dC0+aW5wdXRzLjwvcD4NCiAgICANCjxwPkFkZGl0aW9uYWwgc21hcnR5IHZhcmlhYmxlcyB0aGF0IHlvdSBjYW4gdXNlIGluY2x1ZGU6PC9wPg0KPHRhYmxlPg0KPHRyPjx0aD5WYXJpYWJsZTwvdGg+PHRoPlZhbHVlPC90aD48L3RyPg0KPHRyPjx0ZD50b3RhbF9wYWdlczwvdGQ+PHRkPm51bWJlciBvZiBwYWdlcyBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+dGhpc19wYWdlPC90ZD48dGQ+bnVtYmVyIGZvIHRoZSBjdXJyZW50IHBhZ2UgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPnRpdGxlX3BhZ2VfeF9vZl95PC90ZD48dGQ+ZGlzcGxheXMgJnF1b3Q7cGFnZSB4IG9mIHkmcXVvdDsgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPmNzc19jbGFzczwvdGQ+PHRkPkNTUyBDbGFzcyBmb3IgdGhlIGZvcm08L3RkPjwvdHI+DQo8dHI+PHRkPmZvcm1fbmFtZTwvdGQ+PHRkPkZvcm0gbmFtZTwvdGQ+PC90cj4NCjx0cj48dGQ+Zm9ybV9pZDwvdGQ+PHRkPkZvcm0gZGF0YWJhc2UgSUQ8L3RkPjwvdHI+DQo8dHI+PHRkPnByZXY8L3RkPjx0ZD4mcXVvdDtCYWNrJnF1b3Q7IGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD5zdWJtaXQ8L3RkPjx0ZD4mcXVvdDtDb250aW51ZSZxdW90OyBvciAmcXVvdDtTdWJtaXQmcXVvdDsgYnV0dG9uIGZvciBtdWx0aXBhcnQgZm9ybXMsIGFkanVzdHMgYXV0b21hdGljYWxseTwvdGQ+PC90cj4NCjwvdGFibGU+DQo8cD5EdW5ubyB3aHkgeW91JiMwMzk7ZCB3YW50IHNvbWUgb2YgdGhvc2UsIGJ1dCB0aGVyZSB5b3UgZ28uLi48L3A+DQoNCg0KPGgzPktub3duIElzc3VlczwvaDM+DQo8dWw+DQo8bGk+Rm9ybUJ1aWxkZXIgaXMgbm90IHlldCBpbnRlZ3JhdGVkIHdpdGggRnJvbnRFbmQgVXNlcnMuIEl0IHdpbGwgYmUuPC9saT4NCjxsaT5Gb3JtQnVpbGRlciBjYW5ub3QgeWV0IGJlIGlubGluZWQuIFRoYXQgc2hvdWxkIGJlIGEgc2ltcGxlIHVwZ3JhZGUgZG93biB0aGUgbGluZS48L2xpPg0KPGxpPkZvcm1CdWlsZGVyIGRvZXMgbm90IHlldCBzdXBwb3J0IHByZXR0eSB1cmxzLCBhbHRob3VnaCB0aGF0IHNob3VsZG4mIzAzOTt0IG1hdHRlciBzaW5jZSB0aGUgdXNlciBzaWRlIGlzIHByZXR0eSBzaW1wbGUuPC9saT4NCjwvdWw+DQoNCjxoMz5Ucm91Ymxlc2hvb3Rpbmc8L2gzPg0KPG9sPjxsaT4gRmlyc3Qgc3RlcCBpcyB0byBjaGVjayB5b3UmIzAzOTtyZSBydW5uaW5nIENNUyAxLjEgb3IgbGF0ZXIuPC9saT4NCjxsaT4gU2Vjb25kIHN0ZXAgaXMgdG8gcmVhZCBhbmQgdW5kZXJzdGFuZCB0aGUgY2F2ZWF0IGFib3V0IFdZU0lXWUcgZWRpdG9ycyB1cCBpbiB0aGUNCnNlY3Rpb24gPGVtPkFkZGluZyBhIEZvcm0gdG8gYSBQYWdlPC9lbT4uPC9saT4NCjxsaT4gSWYgeW91JiMwMzk7cmUgbWlzc2luZyBmaWVsZHMgaW4gYW4gZW1haWwgdGhhdCBnZXRzIGdlbmVyYXRlZCwgY2hlY2sgdGhlIGRpc3Bvc2l0aW9uIGZpZWxkJiMwMzk7cyB0ZW1wbGF0ZSwgYW5kIG1ha2Ugc3VyZSB5b3UmIzAzOTtyZSBzcGVjaWZ5aW5nIHRoZSBtaXNzaW5nIGZpZWxkcy4gU2VlbXMgb2J2aW91cywgYnV0IGl0JiMwMzk7cyBhbiBlYXN5IG1pc3Rha2UgdG8gbWFrZS48L2xpPg0KPGxpPlVuY2hlY2sgdGhlICZxdW90O0hpZGUgRXJyb3JzJnF1b3Q7IGNoZWNrYm94IGluIHRoZSBnbG9iYWwgb3B0aW9ucywgYW5kIHNlZSB3aGF0IG1lc3NhZ2UgZ2V0cyBkaXNwbGF5ZWQgd2hlbiB5b3Ugc3VibWl0IHlvdXIgZm9ybS48L2xpPg0KPGxpPiBKdXN0IG1lc3MgYXJvdW5kIGFuZCB0cnkgY2xpY2tpbmcgb24gbGlua3MgYW5kIGljb25zIGFuZCBzdHVmZi4gU2VlIHdoYXQgaGFwcGVucy48L2xpPg0KPGxpPiBMYXN0IHJlc3BvcnQgaXMgdG8gZW1haWwgbWUgb3IgY2F0Y2ggbWUgb24gSVJDIGFuZCB3ZSBjYW4gZ28gZnJvbSB0aGVyZS48L2xpPg0KPC9vbD4gDQo8cD5UaGlzIGlzIG5vIGxvbmdlciBhIHBhcnRpY3VsYXJseSBlYXJseSB2ZXJzaW9uLCBidXQgaXQgaXMgcHJvYmFibHkgc3RpbGwgYnVnZ3kuIFdoaWxlIEkmIzAzOTt2ZSBkb25lIGFsbCBJIGNhbg0KdG8gbWFrZSBzdXJlIG5vIGVncmVnaW91cyBidWdzIGhhdmUgY3JlcHQgaW4sIEkgaGF2ZSB0byBhZG1pdCB0aGF0IGR1cmluZyBlYXJseSB0ZXN0aW5nLCB0aGlzIHByb2dyYW0NCnJldmVhbGVkIHNldmVuIGNvY2tyb2FjaGVzLCB0d28gZWFyd2lncywgYSBzbWFsbCBmYW1pbHkgb2YgYXBoaWRzLCBhbmQgYSB3YWxraW5nLXN0aWNrIGluc2VjdC4gSXQgYWxzbw0KYXRlIHRoZSBuZWlnaGJvciYjMDM5O3MgbmFzdHkgbGl0dGxlIHlhcCBkb2csIGZvciB3aGljaCBJIHdhcyBpbmFwcHJvcHJpYXRlbHkgZ3JhdGVmdWwuPC9wPg0KPHA+VGhlIGZpbmFsIHJlbGVhc2Ugd2lsbCBpbmNsdWRlIGJ1ZyBmaXhlcywgZG9jdW1lbnRhdGlvbiwgYW5kIHVuY29uZGl0aW9uYWwgbG92ZS48L3A+DQo8aDM+U3VwcG9ydDwvaDM+DQo8cD5UaGlzIG1vZHVsZSBkb2VzIG5vdCBpbmNsdWRlIGNvbW1lcmNpYWwgc3VwcG9ydC4gSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+DQo8dWw+DQo8bGk+Rm9yIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIG1vZHVsZSwgRkFRcywgb3IgdG8gZmlsZSBhIEJ1ZyBSZXBvcnQsIHBsZWFzZSB2aXNpdCB0aGUgQ01TIE1hZGUgU2ltcGxlICA8YSBocmVmPSZxdW90O2h0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcmcXVvdDs+RGV2ZWxvcGVyIEZvcmdlPC9hPi48L2xpPg0KPGxpPlRvIG9idGFpbiBjb21tZXJjaWFsIHN1cHBvcnQsIHBsZWFzZSBzZW5kIGFuIGVtYWlsIHRvIHRoZSBhdXRob3IgYXQgPGEgaHJlZj0mcXVvdDttYWlsdG86c2pnQGNtc21vZHVsZXMuY29tJnF1b3Q7PjxzamdAY21zbW9kdWxlcy5jb20+PC9hPi48L2xpPg0KPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0mcXVvdDtodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmcmcXVvdDs+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uPC9saT4NCjxsaT5UaGUgYXV0aG9yIGNhbiBvZnRlbiBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0mcXVvdDtpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXMmcXVvdDs+Q01TIElSQyBDaGFubmVsPC9hPi48L2xpPg0KPGxpPkxhc3RseSwgeW91IG1heSBoYXZlIHNvbWUgc3VjY2VzcyBlbWFpbGluZyB0aGUgYXV0aG9yIGRpcmVjdGx5IGFuZCBncm92ZWxsaW5nIGZvciBmcmVlIHN1cHBvcnQuPC9saT4NCjwvdWw+DQo8cD5BcyBwZXIgdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCBhcy1pcy4gUGxlYXNlIHJlYWQgdGhlIHRleHQNCm9mIHRoZSBsaWNlbnNlIGZvciB0aGUgZnVsbCBkaXNjbGFpbWVyLjwvcD4NCjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPg0KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDA3LCBTYW11ZWwgR29sZHN0ZWluIDxhIGhyZWY9JnF1b3Q7bWFpbHRvOnNqZ0BjbXNtb2R1bGVzLmNvbSZxdW90Oz48c2pnQGNtc21vZHVsZXMuY29tPjwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4NCjxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSZxdW90O2h0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCZxdW90Oz5HTlUgUHVibGljIExpY2Vuc2U8L2E+LiBZb3UgbXVzdCBhZ3JlZSB0byB0aGlzIGxpY2Vuc2UgYmVmb3JlIHVzaW5nIHRoZSBtb2R1bGUuPC9wPic7CiRsYW5nWydjaGFuZ2Vsb2cnXSA9ICc8dWw+DQo8bGk+VmVyc2lvbiAwLjQNCgk8dWw+DQoJCTxsaT5VcHBlZCBtaW5pbXVtIENNUyB2ZXJzaW9uIHRvIDEuMTwvbGk+DQoJCTxsaT5OdW1lcm91cyBCdWcgZml4ZXM7IHRvbyBtYW55IHRvIGVudW1lcmF0ZSBoZXJlPC9saT4NCgkJPGxpPk1hc3NpdmUgcmVqaWdnZXJpbmcgb2YgY29kZSB0byB3b3JrIHdpdGggQ01TIE1TIDEuMSBwYXJhbWV0ZXIgc2FuaXRpemluZyByZWdpbWU8L2xpPg0KCQk8bGk+QWRkZWQgZmllbGQgdHlwZXM6ICZxdW90O1RleHRGaWVsZCAoTXVsdGlwbGUpJnF1b3Q7IGFuZCAmcXVvdDtDb21wdXRlZCBGaWVsZCZxdW90OzwvbGk+DQoJCTxsaT5BZGRlZCBkaXNwb3NpdGlvbnM6ICZxdW90O1NhdmUgUmVzdWx0cyB0byBGaWxlIEJhc2VkIG9uIFB1bGxkb3duJnF1b3Q7IGFuZCAmcXVvdDtTYXZlIFJlc3VsdHMgdG8gRmlsZShzKSBCYXNlZCBvbiBNdWx0aXBsZSBTZWxlY3Rpb25zJnF1b3Q7KENhbGd1eSk8L2xpPg0KCQk8bGk+QWRkZWQgbmVhdC1vIEFKQVgteSB0ZW1wbGF0ZS1jb3B5aW5nIGZvciBGb3JtIFRlbXBsYXRlcywgZ2F2ZSB2ZXJzaW9ucyBvZiBvbGQgdGFibGUtYmFzZWQgdGVtcGxhdGVzIHRvIHNvb3RoZSB0aGUgcmFnaW5nIG1hc3Nlcy48L2xpPg0KCQk8bGk+QWRkZWQgYWJpbGl0eSB0byBwYXNzIGRlZmF1bHQgdmFsdWVzIHRvIGZvcm0gZWxlbWVudHMgZnJvbSBtb2R1bGUgdGFnIHVzaW5nIHZhbHVlX0ZJRUxETkFNRT0mcXVvdDt2YWx1ZSZxdW90OyBzeW50YXggKENhbGd1eSk8L2xpPg0KCQk8bGk+QWRkZWQgb3B0aW9uIHRvIGRpc3BsYXkgZmllbGQgaWRzIGluIGFkbWluIChDYWxndXkpPC9saT4NCgk8L3VsPg0KPC9saT4NCjxsaT5WZXJzaW9uIDAuMw0KICAgPHVsPg0KICAgICAgPGxpPkFkZGVkIENhcHRjaGEgbW9kdWxlIHN1cHBvcnQuPC9saT4NCiAgICAgIDxsaT5SZXdvcmtlZCBsYWJlbGluZyBvZiBmb3JtIGVsZW1lbnRzIHRvIGJlIFhIVE1MIGNvbXBsaWFudDwvbGk+DQogICAgICA8bGk+QWRkZWQgUGF1bCBOb29uZSYjMDM5O3MgbmV3LCBpbXByb3ZlZCBjb250YWN0IGZvcm0gdGVtcGxhdGVzPC9saT4NCiAgICAgIDxsaT5JbXBsZW1lbnRhdGlvbiBvZiBFbWFpbCBTdWJqZWN0IEZpZWxkPC9saT4NCiAgICAgIDxsaT5BZGRlZCBhZG1pbi1zcGVjaWZpYWJsZSB2YWx1ZXMgdG8gaGlkZGVuIGZpZWxkIHR5cGUsIHdoaWNoIG1heSBjb250YWluIHBhcnNhYmxlIHNtYXJ0eSB0YWdzPC9saT4NCiAgICAgIDxsaT5UZXh0IEFyZWEgRmllbGQgbm93IGFsbG93cyBzcGVjaWZpY2F0aW9uIG9mIHJvd3MgYW5kIGNvbHMgaW4gdGhlIGFkbWluLCBpbnN0ZWFkIG9mIENTUzwvbGk+DQogICAgICA8bGk+QWRkZWQgRHJhZyYjMDM5O24mIzAzOTtEcm9wIHJlb3JkZXJpbmcgb2YgZm9ybSBmaWVsZHMuPC9saT4NCiAgICAgIDxsaT5BZGRlZCBub24tYmxhbmsgZmllbGQgbmFtZSBhbmQgdW5pcXVlIGZpZWxkIG5hbWUgZ2xvYmFsIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhbmQgdmFsaWRhdGlvbjwvbGk+DQogICAgICA8bGk+SW1wbGVtZW50ZWQgdGVtcGxhdGVkIGRpc3BsYXkgb2YgZm9ybSByZXN1bHRzIHVwb24gc3VibWlzc2lvbiBpbiBhZGRpdGlvbiB0byBwYWdlIHJlZGlyZWN0aW5nPC9saT4NCiAgICAgIDxsaT48L2xpPg0KICAgPC91bD4NCjwvbGk+DQo8bGk+VmVyc2lvbiAwLjIuNCAtIDA5IE1heSAyMDA3DQogICA8cD5CaWcgcmVsZWFzZTo8dWw+DQogICA8bGk+QWRkZWQgJnF1b3Q7RW1haWwgRm9ybSB0byBVc2VyLVN1cHBsaWVkIEFkZHJlc3MmcXVvdDsgZGlzcG9zaXRpb24uPC9saT4NCiAgIDxsaT5BZGRlZCAmcXVvdDtUaW1lUGlja2VyJnF1b3Q7IGZpZWxkIHR5cGUuIFNwbGl0ICZxdW90O0xpbmsmcXVvdDsgZmllbGQgaW50byBhICZxdW90O1VzZXItc3VwcGxpZWQgTGluayZxdW90OyBmaWVsZCBhbmQgYSAmcXVvdDtTdGF0aWMgTGluayZxdW90OyBmaWVsZC48L2xpPg0KICAgPGxpPkFkZGVkIEhUTUwgZW1haWwgb3B0aW9uIGFuZCBhdXRvLXRlbXBsYXRlcyBmb3IgYWxsIGVtYWlsIGRpc3Bvc2l0aW9ucy48L2xpPg0KICAgPGxpPkFkZGVkIHByaW1pdGl2ZSBhbnRpLXNwYW0gZmVhdHVyZXMuPC9saT4NCiAgIDxsaT5BZGRlZCBYTUwtYmFzZWQgaW1wb3J0IGFuZCBleHBvcnQgb2YgZm9ybXMuPC9saT4NCiAgIDwvdWw+DQogICA8L3A+DQo8L2xpPg0KPGxpPlZlcnNpb24gMC4yLjMNCiAgIDxwPkFkZCB0aGUgYWJpbGl0eSB0byBjYWxsIGEgc2VsZWN0YWJsZSB1c2VyIGRlZmluZWQgdGFnIHVwb24gZGlzcG9zaXRpb24gb2YgdGhlIGZvcm0uPC9wPg0KPC9saT4NCjxsaT5WZXJzaW9uIDAuMi4yDQogICA8cD5NYW55IHRoYW5rcyB0byBVdHRlciBEZXNpZ24gZm9yIHNwb25zb3Jpbmcgc29tZSBjaGFuZ2VzIGFuZCBidWdmaXhlcywgd2hpY2ggaW5jbHVkZToNCiAgIDx1bD4NCiAgICAgIDxsaT5BZGRlZCBmaWxlIHVwbG9hZCBjYXBhYmlsaXRpZXMgdG8gdGhlIGVtYWlsIGRpc3Bvc2l0aW9uPC9saT4NCiAgICAgIDxsaT5BZGQgUGFnZVNldFN0YXJ0IGFuZCBQYWdlU2V0RW5kIGZpZWxkIHR5cGVzDQogICAgICA8cD5UaGVzZSBmaWVsZCB0eXBlcyBhbGxvdyB5b3UgdG8gY3JlYXRlIGZpZWxkc2V0cyBpbiB5b3VyIGZvcm0sIGFuZCBvcmdhbmlzZQ0KICAgICAgeW91ciBmaWVsZHMgbG9naWNhbGx5IGZvciB0aGUgdXNlci4gIFlvdSBjYW4gZXZlbiBuZXN0IGZpZWxkc2V0cywgYW5kDQogICAgICBhc3NvY2lhdGUgYSBzdHlsZSB3aXRoIHRoZW0gYXBwcm9wcmlhdGVseS4gIFRoZSBkZWZhdWx0IHRlbXBsYXRlIHdhcyBjaGFuZ2VkDQogICAgICB0byBwcmV2ZW50IGl0IGZyb20gd3JhcHBpbmcgYSBkaXYgYXJvdW5kIHRoZXNlIHR5cGVzIG9mIGZpZWxkcy4NCiAgICAgIDwvcD4NCiAgICAgIDwvbGk+DQogICAgICA8bGk+Rml4ZWQgYSBwcm9ibGVtIHdpdGggREFURVRJTUUgZmllbGRzIG9uIGluc3RhbGwNCiAgICAgIDxwPlRoaXMgc29sdmVzIGEgcHJvYmxlbSB3aGVuIG9uIGluc3RhbGwgdGhlIHJlc3BvbnNlIHRhYmxlIHdvdWxkIHNvbWV0aW1lcyBub3QgZ2V0IGNyZWF0ZWQgd2hlbiB1c2luZyBhZG9kYiBsaXRlPC9saT4NCiAgICAgIDwvbGk+DQogICA8L3VsPg0KICAgPC9wPg0KPC9saT4NCjxsaT5WZXJzaW9uIDAuMiAtIDE0IE5vdmVtYmVyIDIwMDYuIENhbGd1eSAmYW1wOyB0c3cmIzAzOTtzIGJ1ZyBmaXhlcyBmb3IgZmllbGQgcmUtb3JkZXJpbmcgYW5kIGN1c3RvbSB0ZW1wbGF0ZXMuIEFkZGl0aW9uYWwgYnVnIGZpeGVzIGZvciBmaWVsZCBsYWJlbHMuPC9saT4NCjxsaT5WZXJzaW9uIDAuMSAtIDggSnVseSAyMDA2LiBJbml0aWFsIFJlbGVhc2U8L2xpPg0KPC91bD4NCic7CiRsYW5nWyd1dG1hJ10gPSAnMTU2ODYxMzUzLjExNjg5OTAxNi4xMTg2NTY5ODk2LjExOTAwNTcxNjUuMTE5MDA2MDcyMC4zOSc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjExODk0MDQyMDMuMjIuNy51dG1jY249KHJlZmVycmFsKXx1dG1jc3I9Zm9ydW0uY21zbWFkZXNpbXBsZS5vcmd8dXRtY2N0PS98dXRtY21kPXJlZmVycmFsJzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNyBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDcgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKCQkkZGIgPSYgJGdDbXMtPkdldERiKCk7CgkJJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSgkZGIpOwoJCSRmbGRzID0gIgoJCQlmb3JtX2lkIEkgS0VZLAoJCQluYW1lIEMoMjU1KSwKCQkJYWxpYXMgQygyNTUpCgkJIjsKCQkkdGFib3B0YXJyYXkgPSBhcnJheSgnbXlzcWwnID0+ICdUWVBFPU15SVNBTScpOwoJCSRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9mb3JtJywgJGZsZHMsICR0YWJvcHRhcnJheSk7CgkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKCQkkZGItPkNyZWF0ZVNlcXVlbmNlKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zvcm1fc2VxJyk7Ci8vCQkkZGItPkNyZWF0ZUluZGV4U1FMKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zvcm1faWR4JywgY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZm9ybScsICdhbGlhcycpOwoJCQoJCSRmbGRzID0gIgoJCQlmb3JtX2F0dHJfaWQgSSBLRVksCgkJCWZvcm1faWQgSSwKCQkJbmFtZSBDKDM1KSwKCQkJdmFsdWUgWAoJCSI7CgkJJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zvcm1fYXR0cicsICRmbGRzLCAkdGFib3B0YXJyYXkpOwoJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgkJJGRiLT5DcmVhdGVTZXF1ZW5jZShjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9mb3JtX2F0dHJfc2VxJyk7Ci8vCQkkZGItPkNyZWF0ZUluZGV4U1FMKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zvcm1fYXR0cl9pZHgnLCBjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9mb3JtX2F0dHInLCAnZm9ybV9pZCcpOwoKCQkkZmxkcyA9ICIKCQkJZmllbGRfaWQgSSBLRVksCgkJCWZvcm1faWQgSSwKCQkJbmFtZSBDKDI1NSksCgkJCXR5cGUgQyg1MCksCgkJCXZhbGlkYXRpb25fdHlwZSBDKDUwKSwKCQkJcmVxdWlyZWQgSTEsCgkJCWhpZGVfbGFiZWwgSTEsCgkJCW9yZGVyX2J5IEkKCQkiOwoJCSRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9maWVsZCcsICRmbGRzLCAkdGFib3B0YXJyYXkpOwoJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgkJJGRiLT5DcmVhdGVTZXF1ZW5jZShjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9maWVsZF9zZXEnKTsKCgkJJGZsZHMgPSAiCgkJCW9wdGlvbl9pZCBJIEtFWSwKCQkJZmllbGRfaWQgSSwKCQkJZm9ybV9pZCBJLAoJCQluYW1lIEMoMjU1KSwKCQkJdmFsdWUgWAoJCSI7CgkJJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2ZpZWxkX29wdCcsICRmbGRzLCAkdGFib3B0YXJyYXkpOwoJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgkJJGRiLT5DcmVhdGVTZXF1ZW5jZShjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9maWVsZF9vcHRfc2VxJyk7CgoJCSRmbGRzID0gIgoJCQlmbG9ja19pZCBJIEtFWSwKCQkJZmxvY2sgVAoJCSI7CgoJCSRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9mbG9jaycsICRmbGRzLCAkdGFib3B0YXJyYXkpOwoJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgkJJGZsZHMgPSAiCgkJCXJlc3BfaWQgSSBLRVksCgkJCWZvcm1faWQgSSwKCQkJZmV1c2VyX2lkIEksCgkJCXVzZXJfYXBwcm92ZWQgIi5DTVNfQURPREJfRFQuIiwKCQkJc2VjcmV0X2NvZGUgQygzNSksCgkJCWFkbWluX2FwcHJvdmVkICIuQ01TX0FET0RCX0RULiIsCgkJCXN1Ym1pdHRlZCAiLkNNU19BRE9EQl9EVDsKCQkkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfcmVzcCcsICRmbGRzLCAkdGFib3B0YXJyYXkpOwoJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgkJJGZsZHMgPSAiCgkJCXJlc3BfYXR0cl9pZCBJIEtFWSwKCQkJcmVzcF9pZCBJLAoJCQluYW1lIEMoMzUpLAoJCQl2YWx1ZSBYCgkJIjsKCQkkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfcmVzcF9hdHRyJywgJGZsZHMsICR0YWJvcHRhcnJheSk7CgkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKCQkkZGItPkNyZWF0ZVNlcXVlbmNlKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX3Jlc3BfYXR0cl9zZXEnKTsKCgoJCSRkYi0+Q3JlYXRlU2VxdWVuY2UoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfcmVzcF9zZXEnKTsKCgkJJGZsZHMgPSAiCgkJCXJlc3BfdmFsX2lkIEkgS0VZLAoJCQlyZXNwX2lkIEksCgkJCWZpZWxkX2lkIEksCgkJCXZhbHVlIFgKCQkiOwoJCSRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9yZXNwX3ZhbCcsICRmbGRzLCAkdGFib3B0YXJyYXkpOwoJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgkJJGRiLT5DcmVhdGVTZXF1ZW5jZShjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9yZXNwX3ZhbF9zZXEnKTsKCgkJJGZsZHMgPSAiCgkJCXNlbnRfaWQgSSBLRVksCgkJCXNyY19pcCBDKDE2KSwKCQkJc2VudF90aW1lICIuQ01TX0FET0RCX0RUOwoJCSRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9pcF9sb2cnLCAkZmxkcywgJHRhYm9wdGFycmF5KTsKCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgoJCSRkYi0+Q3JlYXRlU2VxdWVuY2UoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfaXBfbG9nX3NlcScpOwoKCQkkdGhpcy0+Q3JlYXRlUGVybWlzc2lvbignTW9kaWZ5IEZvcm1zJywgJ01vZGlmeSBGb3JtcycpOwoKCQkkdGhpcy0+Q3JlYXRlRXZlbnQoICdPbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdCcgKTsKCQkkdGhpcy0+Q3JlYXRlRXZlbnQoICdPbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknICk7CgkJJHRoaXMtPkNyZWF0ZUV2ZW50KCAnT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvcicgKTsKCQkKCQkvL2luY2x1ZGUgJ2luY2x1ZGVzL0Zvcm1CdWlsZGVyU2FtcGxlRGF0YS5pbmMnOwkKCQkkcGF0aCA9IGRpcm5hbWUoX19GSUxFX18pLicvaW5jbHVkZXMnOwoJCSRkaXI9b3BlbmRpcigkcGF0aCk7CiAgIAkJd2hpbGUgKCRmaWxlc3BlYz1yZWFkZGlyKCRkaXIpKQogICAJCQl7CiAgIAkJCSRwYXJhbXMgPSBhcnJheSgpOwogICAJCQkkYWVmb3JtID0gJyc7CiAgICAgICAJCWlmIChwcmVnX21hdGNoKCcvLnhtbCQvJywkZmlsZXNwZWMpID4gMCkKICAgICAgIAkJCXsKICAgICAgIAkJCSRwYXJhbXNbJ2ZicnBfeG1sX2ZpbGUnXSA9ICRwYXRoLicvJy4kZmlsZXNwZWM7CiAgICAgICAJCQkkYWVmb3JtID0gbmV3IGZiRm9ybSgkdGhpcywgJHBhcmFtcywgdHJ1ZSk7CgkJCQkkcmVzID0gJGFlZm9ybS0+SW1wb3J0WE1MKCRwYXJhbXMpOwogICAgICAgCQkJfQogICAgICAgCQl9CgoJCSR0aGlzLT5BdWRpdCggMCwgJHRoaXMtPkxhbmcoJ2ZyaWVuZGx5bmFtZScpLCAkdGhpcy0+TGFuZygnaW5zdGFsbGVkJywkdGhpcy0+R2V0VmVyc2lvbigpKSk7Cj8+Cg==]]></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+UmVtb3ZlUHJlZmVyZW5jZSgnZW5hYmxlX2FudGlzcGFtJyk7CgkJJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoJ3JlcXVpcmVfZmllbGRuYW1lcycpOwoJCSR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCd1bmlxdWVfZmllbGRuYW1lcycpOwoKCgkJJHRoaXMtPkF1ZGl0KCAwLCAkdGhpcy0+TGFuZygnZnJpZW5kbHluYW1lJyksICR0aGlzLT5MYW5nKCd1bmluc3RhbGxlZCcpKTsKCj8+]]></data>
	</file>
	<file>
	  <filename>/method.upgrade.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNyBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDcgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCgkJJHRoaXMtPmluaXRpYWxpemUoKTsKCQkkZGIgPSYgJGdDbXMtPkdldERiKCk7CgkJJGN1cnJlbnRfdmVyc2lvbiA9ICRvbGR2ZXJzaW9uOwoJCSRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoJGRiKTsKCQkkdGFib3B0YXJyYXkgPSBhcnJheSgnbXlzcWwnID0+ICdUWVBFPU15SVNBTScpOwoJCWRlYnVnX2Rpc3BsYXkoJ0N1cnJlbnQtdmVyc2lvbjogJy4kY3VycmVudF92ZXJzaW9uKTsKCQlzd2l0Y2goJGN1cnJlbnRfdmVyc2lvbikKCQl7CgkJCWNhc2UgIjAuMSI6CgkJCWNhc2UgIjAuMiI6CgkJCWNhc2UgIjAuMi4yIjoKCQkJY2FzZSAiMC4yLjMiOgoJCQljYXNlICIwLjIuNCI6CgkJCQl7CgkJCQkkZmxkcyA9ICIKCQkJCQlzZW50X2lkIEkgS0VZLAoJCQkJCXNyY19pcCBDKDE2KSwKCQkJCQlzZW50X3RpbWUgIi5DTVNfQURPREJfRFQ7CgkJCQlkZWJ1Z19kaXNwbGF5KCRmbGRzKTsKCQkJCSRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9pcF9sb2cnLCAkZmxkcywgJHRhYm9wdGFycmF5KTsKCQkJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgkJCQkkZGItPkNyZWF0ZVNlcXVlbmNlKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2lwX2xvZ19zZXEnKTsKCQkJCX0KCQkJY2FzZSAiMC4zIjoKCQkJICAgewogICAgICAgICAgICAvLyByZWFkIHRoZSBvbGQgdGVtcGxhdGVzCiAgICAgICAgICAgICR0ZW1wX3RhYl9sZWZ0ID0gZmlsZV9nZXRfY29udGVudHMgKCBkaXJuYW1lKF9fRklMRV9fKS4nL3RlbXBsYXRlcy9SZW5kZXJGb3JtVGFibGVUaXRsZUxlZnQudHBsJyk7CiAgICAgICAgICAgICR0ZW1wX3RhYl90b3AgPSBmaWxlX2dldF9jb250ZW50cyAoIGRpcm5hbWUoX19GSUxFX18pLicvdGVtcGxhdGVzL1JlbmRlckZvcm1UYWJsZVRpdGxlVG9wLnRwbCcpOwogICAgICAgICAgICAkdGVtcF90YWJfY3NzID0gIGZpbGVfZ2V0X2NvbnRlbnRzICggZGlybmFtZShfX0ZJTEVfXykuJy90ZW1wbGF0ZXMvUmVuZGVyRm9ybUNTUy50cGwnKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIC8vIHRoaXMgdXBncmFkZSBzaG91bGQgaGF2ZSBhIGxvdCBtb3JlIGVycm9yIGNoZWNraW5nLCBidXQgSSdtIHRvbyBsYXp5LgogICAgICAgICAgICAvLyBUaGF0J3MgdGhlIGRvd25zaWRlIHRvIEZyZWUgc29mdHdhcmUgOigKCiAgICAgICAgICAgIC8vIHVwZGF0ZSBhbGwgZm9ybXMgdG8gdXNlIGEgQ3VzdG9tIFRlbXBsYXRlCgkgICAgICAgICAkc3FsID0gJ1NFTEVDVCBmb3JtX2lkLCB2YWx1ZSBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkuCgkgICAgICAgICAgICAgICJtb2R1bGVfZmJfZm9ybV9hdHRyIHdoZXJlIG5hbWU9J2Zvcm1fZGlzcGxheXR5cGUnIGFuZCB2YWx1ZSA8PiAndGVtcGxhdGUnIjsKICAgICAgICAgICAgJHN1YnNxbCA9ICdVUERBVEUgJy5jbXNfZGJfcHJlZml4KCkuCgkgICAgICAgICAgICAgICJtb2R1bGVfZmJfZm9ybV9hdHRyIFNFVCB2YWx1ZT0/IHdoZXJlIG5hbWU9J2Zvcm1fdGVtcGxhdGUnIGFuZCBmb3JtX2lkPT8iOwoJICAgICAgICAgJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRzcWwpOwogICAgICAgICAgICB3aGlsZSAoJGRicmVzdWx0ICYmICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgaWYgKCRyb3dbJ3ZhbHVlJ10gPT0gJ3RhYicpCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgLy8gdG9wIG9yIGxlZnQgdGl0bGU/IEFub3RoZXIgZGFtbiBxdWVyeS4KICAgICAgICAgICAgICAgICAgJHRvcGxlZnQgPSAkZGItPkdldE9uZSgnU0VMRUNUIHZhbHVlIGZyb20gJyAuIGNtc19kYl9wcmVmaXgoKS4KCSAgICAgICAgICAgICAgICAgICAgIm1vZHVsZV9mYl9mb3JtX2F0dHIgd2hlcmUgbmFtZT0ndGl0bGVfcG9zaXRpb24nIGFuZCBmb3JtX2lkPT8iLAogICAgICAgICAgICAgICAgICAgICAgIGFycmF5KCRyb3dbJ2Zvcm1faWQnXSkpOwogICAgICAgICAgICAgICAgICBpZiAoJHRvcGxlZnQgPT0gJ2xlZnQnKQogICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICRyZXMgPSAkZGItPkV4ZWN1dGUoJHN1YnNxbCxhcnJheSgkdGVtcF90YWJfbGVmdCwkcm93Wydmb3JtX2lkJ10pKTsKICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPlNldFRlbXBsYXRlKCdmYl8nLiRyb3dbJ2Zvcm1faWQnXSwkdGVtcF90YWJfbGVmdCk7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICRyZXMgPSAkZGItPkV4ZWN1dGUoJHN1YnNxbCxhcnJheSgkdGVtcF90YWJfdG9wLCRyb3dbJ2Zvcm1faWQnXSkpOwogICAgICAgICAgICAgICAgICAgICAkdGhpcy0+U2V0VGVtcGxhdGUoJ2ZiXycuJHJvd1snZm9ybV9pZCddLCR0ZW1wX3RhYl90b3ApOwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgZWxzZSBpZiAoJHJvd1sndmFsdWUnXSA9PSAnY3Nzb25seScpCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgJHJlcyA9ICRkYi0+RXhlY3V0ZSgkc3Vic3FsLGFycmF5KCR0ZW1wX3RhYl9jc3MsJHJvd1snZm9ybV9pZCddKSk7CiAgICAgICAgICAgICAgICAgICR0aGlzLT5TZXRUZW1wbGF0ZSgnZmJfJy4kcm93Wydmb3JtX2lkJ10sJHRlbXBfdGFiX2Nzcyk7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgfQogICAgICAgICAgICAkY2xlYW51cHNxbCA9ICdERUxFVEUgRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpLgoJICAgICAgICAgICAgICAgICAgICAibW9kdWxlX2ZiX2Zvcm1fYXR0ciB3aGVyZSBuYW1lPSd0aXRsZV9wb3NpdGlvbicgb3IgbmFtZT0nZm9ybV9kaXNwbGF5dHlwZSciOwogICAgICAgICAgICAkcmVzID0gJGRiLT5FeGVjdXRlKCRjbGVhbnVwc3FsKTsKICAgICAgICAgICAgfQogICAgICAgICBjYXNlICIwLjQiOgogICAgICAgICAgICB7CiAgICAgICAgICAgIC8vIHVwZ3JhZGUgdGhlIHRlbXBsYXRlcyBzbyB0aGV5IGF0IGxlYXN0IHdvcmsuCgkgICAgICAgICAkc3FsID0gJ1NFTEVDVCBmb3JtX2lkLCB2YWx1ZSBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkuCgkgICAgICAgICAgICAgICJtb2R1bGVfZmJfZm9ybV9hdHRyIHdoZXJlIG5hbWU9J2Zvcm1fdGVtcGxhdGUnIjsKICAgICAgICAgICAgJHN1YnNxbCA9ICdVUERBVEUgJy5jbXNfZGJfcHJlZml4KCkuCgkgICAgICAgICAgICAgICJtb2R1bGVfZmJfZm9ybV9hdHRyIFNFVCB2YWx1ZT0/IHdoZXJlIG5hbWU9J2Zvcm1fdGVtcGxhdGUnIGFuZCBmb3JtX2lkPT8iOwogICAgICAgICAgICAkdGVtcF9uZmggPSBmaWxlX2dldF9jb250ZW50cyAoIGRpcm5hbWUoX19GSUxFX18pLicvaW5jbHVkZXMvbmV3X2Zvcm1faGVhZGVyLnRwbCcpOwogICAgICAgICAgICAkdGVtcF9uZmYgPSBmaWxlX2dldF9jb250ZW50cyAoIGRpcm5hbWUoX19GSUxFX18pLicvaW5jbHVkZXMvbmV3X2Zvcm1fZm9vdGVyLnRwbCcpOwoJICAgICAgICAgJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRzcWwpOwoKICAgICAgICAgICAgd2hpbGUgKCRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICRmaXh0ZW1wbCA9ICR0ZW1wX25maC4ieyoiLiR0aGlzLT5MYW5nKCd1cGdyYWRlMDN0bzA0JykuIip9XG4iLiRyb3dbJ3ZhbHVlJ10uJHRlbXBfbmZmOwoKICAgICAgICAgICAgICAgJHJlcyA9ICRkYi0+RXhlY3V0ZSgkc3Vic3FsLGFycmF5KCRmaXh0ZW1wbCwkcm93Wydmb3JtX2lkJ10pKTsKICAgICAgICAgICAgICAgJHRoaXMtPlNldFRlbXBsYXRlKCdmYl8nLiRyb3dbJ2Zvcm1faWQnXSwkZml4dGVtcGwpOwogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIGZpeCByb3dzL2NvbHMgcHJvYmxlbSBmb3IgVGV4dEFyZWFzCgkgICAgICAgICAkc3FsID0gJ1NFTEVDVCBmb3JtX2lkLCBmaWVsZF9pZCwgbmFtZSwgdmFsdWUgRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpLgoJICAgICAgICAgICAgICAibW9kdWxlX2ZiX2ZpZWxkX29wdCB3aGVyZSBuYW1lPSdyb3dzJyBvciBuYW1lPSdjb2xzJyI7CiAgICAgICAgICAgICRyb3dzID0gYXJyYXkoKTsKICAgICAgICAgICAgJGNvbHMgPSBhcnJheSgpOwoJICAgICAgICAgJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRzcWwpOwogICAgICAgICAgICB3aGlsZSAoJGRicmVzdWx0ICYmICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgaWYgKCRyb3dbJ25hbWUnXSA9PSAncm93cycpCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgJGNvbHNbJHJvd1snZm9ybV9pZCddLidfJy4kcm93WydmaWVsZF9pZCddXSA9ICRyb3dbJ3ZhbHVlJ107CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICRyb3dzWyRyb3dbJ2Zvcm1faWQnXS4nXycuJHJvd1snZmllbGRfaWQnXV0gPSAkcm93Wyd2YWx1ZSddOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgJHNxbCA9ICdVUERBVEUgJy5jbXNfZGJfcHJlZml4KCkuICdtb2R1bGVfZmJfZmllbGRfb3B0IHNldCB2YWx1ZT0/IHdoZXJlIGZvcm1faWQ9PyBhbmQgZmllbGRfaWQ9PyBhbmQgbmFtZT0/JzsKICAgICAgICAgICAgZm9yZWFjaCAoJHJvd3MgYXMgJGtleT0+JHZhbCkKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAkdGhpc1JvdyA9ICR2YWw7CiAgICAgICAgICAgICAgICR0aGlzQ29sID0gJGNvbHNbJGtleV07CiAgICAgICAgICAgICAgIGxpc3QoJGZvcm1faWQsJGZpZWxkX2lkKSA9IGV4cGxvZGUoJ18nLCRrZXkpOwogICAgICAgICAgICAgICAkcmVzID0gJGRiLT5FeGVjdXRlKCRzcWwsYXJyYXkoJHRoaXNSb3csJGZvcm1faWQsJGZpZWxkX2lkLCdyb3dzJykpOwogICAgICAgICAgICAgICAkcmVzID0gJGRiLT5FeGVjdXRlKCRzcWwsYXJyYXkoJHRoaXNDb2wsJGZvcm1faWQsJGZpZWxkX2lkLCdjb2xzJykpOwogICAgICAgICAgICAgICB9CgogICAgICAgICAgICB9CgkJfQoJCSR0aGlzLT5BdWRpdCggMCwgJHRoaXMtPkxhbmcoJ2ZyaWVuZGx5bmFtZScpLCAkdGhpcy0+TGFuZygndXBncmFkZWQnLCR0aGlzLT5HZXRWZXJzaW9uKCkpKTsKCj8+]]></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[e2lmICRtZXNzYWdlICE9ICcnfTxoND57JG1lc3NhZ2V9PC9oND57L2lmfQp7JGJhY2t0b2Zvcm1fbmF2fTxiciAvPgp7JHN0YXJ0X2Zvcm19eyRmYl9oaWRkZW59eyRvcH17JHRhYl9zdGFydH0KeyRtYWludGFiX3N0YXJ0fQoJe2ZvcmVhY2ggZnJvbT0kbWFpbkxpc3QgaXRlbT1lbnRyeX0KCQk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCQk8cCBjbGFzcz0icGFnZXRleHQiPnskZW50cnktPnRpdGxlfTo8L3A+CgkJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskZW50cnktPmlucHV0fTwvcD4KCQkJe2lmICRlbnRyeS0+aGVscCAhPSAnJ317JGVudHJ5LT5oZWxwfXsvaWZ9CgkJPC9kaXY+Cgl7L2ZvcmVhY2h9CnskdGFiX2VuZH0KeyRhZHZhbmNlZHRhYl9zdGFydH0KCXtmb3JlYWNoIGZyb209JGFkdkxpc3QgaXRlbT1lbnRyeX0KCQk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCQk8cCBjbGFzcz0icGFnZXRleHQiPnskZW50cnktPnRpdGxlfTo8L3A+CgkJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskZW50cnktPmlucHV0fTwvcD4KCQkJe2lmICRlbnRyeS0+aGVscCAhPSAnJ317JGVudHJ5LT5oZWxwfXsvaWZ9CgkJPC9kaXY+Cgl7L2ZvcmVhY2h9CnskdGFiX2VuZH0KeyR0YWJzX2VuZH0Ke2lmICRhZGQgIT0gJycgb3IgJGRlbCAhPSAnJ30KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij4mbmJzcDs8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRhZGR9eyRkZWx9PC9wPgoJPC9kaXY+CnsvaWZ9Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskc3VibWl0fTwvcD4KCTwvZGl2Pgp7JGVuZF9mb3JtfQo=]]></data>
	</file>
	<file>
	  <filename>/templates/AddEditForm.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg0Ke2xpdGVyYWx9DQpmdW5jdGlvbiBnZXRUZW1wbGF0ZSgpDQoJewkJDQoJdmFyIHNlbGVjdG9yID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZiX3RlbXBsYXRlX2xvYWQnKTsNCglpZiAoc2VsZWN0b3IpDQoJCXsNCgkJdmFyIHRlbXBsID0gc2VsZWN0b3Jbc2VsZWN0b3Iuc2VsZWN0ZWRJbmRleF0udmFsdWU7DQoNCgkJaWYgKHRlbXBsLmxlbmd0aCA+IDAgJiYgY29uZmlybSgney9saXRlcmFsfXskdGVtcGxhdGVfYXJlX3lvdV9zdXJlfXtsaXRlcmFsfScpKQ0KCQkJew0KCQkJdmFyIHVybCA9ICd7L2xpdGVyYWx9eyRtb2RfcGF0aH17bGl0ZXJhbH0nOw0KCQkJdmFyIHBhcnMgPSAney9saXRlcmFsfXskbW9kX3BhcmFtfXtsaXRlcmFsfSZtMV9mYnJwX3RpZD0nK3RlbXBsOw0KCQkNCgkJCXZhciBteUFqYXggPSBuZXcgQWpheC5SZXF1ZXN0KA0KCQkJCXVybCwgDQoJCQkJew0KCQkJCQltZXRob2Q6ICdnZXQnLCANCgkJCQkJcGFyYW1ldGVyczogcGFycywNCgkJCQkJb25GYWlsdXJlOiByZXBvcnRFcnJvciwNCgkJCQkJb25Db21wbGV0ZTogcmVwbGFjZVRlbXBsYXRlDQoJCQkJfSk7CQkNCgkJCX0NCgkJfQ0KCX0NCmZ1bmN0aW9uIHJlcG9ydEVycm9yKHJlcXVlc3QpDQoJew0KCQlhbGVydCgnU29ycnkuIFRoZXJlIHdhcyBhbiBlcnJvci4nKTsNCgl9DQoNCmZ1bmN0aW9uIHJlcGxhY2VUZW1wbGF0ZShvcmlnaW5hbFJlcXVlc3QpDQoJew0KCQkvL3B1dCByZXR1cm5lZCB0ZW1wbGF0ZSBpbiB0aGUgdGV4dGFyZWENCgkJJCgnZmJfZm9ybV90ZW1wbGF0ZScpLnZhbHVlID0gb3JpZ2luYWxSZXF1ZXN0LnJlc3BvbnNlVGV4dDsNCgl9DQoNCnsvbGl0ZXJhbH0NCjwvc2NyaXB0Pg0Ke2lmICRtZXNzYWdlICE9ICcnfTxoND57JG1lc3NhZ2V9PC9oND57L2lmfQ0KeyRmb3Jtc3RhcnR9eyRmb3JtaWR9eyRmYl9oaWRkZW59eyR0YWJfc3RhcnR9eyRtYWludGFiX3N0YXJ0fQ0KPGZpZWxkc2V0IGNsYXNzPSJtb2R1bGVfZmJfZmllbGRzZXQiPjxsZWdlbmQ+eyR0aXRsZV9mb3JtX21haW59PC9sZWdlbmQ+DQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX2Zvcm1fbmFtZX06PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2Zvcm1fbmFtZX08L3A+DQoJPC9kaXY+DQoNCntpZiAkYWRkaW5nID09IDB9DQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX2Zvcm1fc3RhdHVzfTo8L3A+DQoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPntpZiAkaGFzZGlzcG9zaXRpb24gPT0gMX17JHRleHRfcmVhZHl9e2Vsc2V9eyRsaW5rX25vdHJlYWR5fXsvaWZ9PC9wPg0KCTwvZGl2Pg0Key9pZn0NCgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfZm9ybV9hbGlhc306PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2Zvcm1fYWxpYXN9PC9wPg0KCTwvZGl2Pg0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV9mb3JtX2Nzc19jbGFzc306PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2Zvcm1fY3NzX2NsYXNzfTwvcD4NCgk8L2Rpdj4NCgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfaW5saW5lX2Zvcm19OjwvcD4NCgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9pbmxpbmVfZm9ybX08L3A+DQoJPC9kaXY+DQo8L2ZpZWxkc2V0Pg0Ke2lmICRhZGRpbmc9PTB9DQo8ZmllbGRzZXQ+PGxlZ2VuZD57JHRpdGxlX2Zvcm1fZmllbGRzfTwvbGVnZW5kPg0KCXtpZiAkZmFzdGFkZD09MX0NCgkJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV9mYXN0YWRkfTwvcD4NCgkJCTxkaXYgY2xhc3M9InBhZ2VpbnB1dCI+DQoJCQkJeyRpbnB1dF9mYXN0YWRkfQ0KCQkJPC9kaXY+DQoJCTwvZGl2Pg0KCXsvaWZ9DQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX2Zvcm1fZmllbGRzfTwvcD4NCgkJPGRpdiBjbGFzcz0icGFnZWlucHV0Ij4NCgkJCTx0YWJsZSBjbGFzcz0ibW9kdWxlX2ZiX3RhYmxlIj4NCgkgICAgICAgCXtpZiBpc3NldCgkdGl0bGVfZmllbGRfaWQpfQ0KICAgICAgICAgICAgICAgIDx0aGVhZD48dHI+PHRoPnskdGl0bGVfZmllbGRfaWR9PC90aD4NCiAgICAgICAgICAgICAgICAJPHRoPnskdGl0bGVfZmllbGRfbmFtZX08L3RoPg0KCQl7ZWxzZX0NCiAgICAgICAgICAgICAgICA8dGhlYWQ+PHRyPjx0aD57JHRpdGxlX2ZpZWxkX25hbWV9PC90aD4NCgkJey9pZn0NCiAgICAgICAgICAgICAgICAJPHRoPnskdGl0bGVfZmllbGRfdHlwZX08L3RoPg0KICAgICAgICAgICAgICAgIAk8dGg+eyR0aXRsZV9maWVsZF9yZXF1aXJlZF9hYmJyZXZ9PC90aD4NCiAgICAgICAgICAgICAgICAJPHRoPnskdGl0bGVfaW5mb3JtYXRpb259PC90aD4NCiAgICAgICAgICAgICAgICAgICAgPHRoIGNvbHNwYW49IjIiPnskdGl0bGVfb3JkZXJ9PC90aD4NCiAgICAgICAgICAgICAgICAgICAgPHRoPiZuYnNwOzwvdGg+PHRoPiZuYnNwOzwvdGg+PC90cj4NCgkJCQk8L3RoZWFkPg0KCQkJCTx0Ym9keT4NCgkJCQl7Zm9yZWFjaCBmcm9tPSRmaWVsZHMgaXRlbT1lbnRyeX0NCgkJCQkJPHRyIGNsYXNzPSJ7JGVudHJ5LT5yb3djbGFzc30iIG9ubW91c2VvdmVyPSJ0aGlzLmNsYXNzTmFtZT0neyRlbnRyeS0+cm93Y2xhc3N9aG92ZXInOyIgb25tb3VzZW91dD0idGhpcy5jbGFzc05hbWU9J3skZW50cnktPnJvd2NsYXNzfSc7Ij4NCgkJCQl7aWYgaXNzZXQoJHRpdGxlX2ZpZWxkX2lkKX0NCgkJCQkJPHRkPnskZW50cnktPmlkfTwvdGQ+DQoJCQkJey9pZn0NCgkJCQkJPHRkPnskZW50cnktPm5hbWV9PC90ZD4NCgkJCQkJPHRkPnskZW50cnktPnR5cGV9PC90ZD4NCgkJCQkJPHRkPnskZW50cnktPmRpc3Bvc2l0aW9ufTwvdGQ+DQoJCQkJCTx0ZD57JGVudHJ5LT5maWVsZF9zdGF0dXN9PC90ZD4NCgkJCQkJPHRkPnskZW50cnktPnVwfTwvdGQ+DQoJCQkJCTx0ZD57JGVudHJ5LT5kb3dufTwvdGQ+DQoJCQkJCTx0ZD57JGVudHJ5LT5lZGl0bGlua308L3RkPg0KCQkJCQk8dGQ+eyRlbnRyeS0+ZGVsZXRlbGlua308L3RkPg0KCQkJCQk8L3RyPg0KCQkJCXsvZm9yZWFjaH0NCiAgICAgICAgICAgICAgIAk8dHI+PHRkIGNvbHNwYW49IjgiIGNsYXNzPSJyb3cyIj4mbmJzcDs8L3RkPjwvdHI+DQogICAgICAgICAgICAgICAJPHRyPjx0ZCBjb2xzcGFuPSI4IiBjbGFzcz0icm93MSI+eyRhZGRfZmllbGRfbGlua30gJm5ic3A7IHskb3JkZXJfZmllbGRfbGlua308L3RkPjwvdHI+DQoJCQkJPC90Ym9keT4NCiAgICAgICAgICAgIDwvdGFibGU+DQogICAgICAgIDwvZGl2Pg0KICAgICA8L2Rpdj4NCjwvZmllbGRzZXQ+DQp7L2lmfQ0KeyR0YWJfZW5kfXskc3VibWl0dGFiX3N0YXJ0fQ0KCTxmaWVsZHNldD4NCgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JHRpdGxlX3N1Ym1pdF9oZWxwfTwvcD4NCgk8L2Rpdj4NCgk8L2ZpZWxkc2V0Pg0KPGZpZWxkc2V0IGNsYXNzPSJtb2R1bGVfZmJfZmllbGRzZXQiPjxsZWdlbmQ+eyR0aXRsZV9zdWJtaXRfYWN0aW9uc308L2xlZ2VuZD4NCgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfc3VibWl0X2FjdGlvbn06PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3N1Ym1pdF9hY3Rpb259PC9wPg0KCTwvZGl2Pg0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV9yZWRpcmVjdF9wYWdlfTo8L3A+DQoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfcmVkaXJlY3RfcGFnZX08L3A+DQoJPC9kaXY+DQo8L2ZpZWxkc2V0Pg0KPGZpZWxkc2V0IGNsYXNzPSJtb2R1bGVfZmJfZmllbGRzZXQiPjxsZWdlbmQ+eyR0aXRsZV9zdWJtaXRfbGFiZWxzfTwvbGVnZW5kPg0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eX06PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3N1Ym1pdF9idXR0b25fc2FmZXR5fTwvcD4NCgk8L2Rpdj4NCgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfZm9ybV9zdWJtaXRfYnV0dG9ufTo8L3A+DQoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfZm9ybV9zdWJtaXRfYnV0dG9ufTwvcD4NCgk8L2Rpdj4NCgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfZm9ybV9uZXh0X2J1dHRvbn06PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2Zvcm1fbmV4dF9idXR0b259PC9wPg0KCTwvZGl2Pg0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV9mb3JtX3ByZXZfYnV0dG9ufTo8L3A+DQoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfZm9ybV9wcmV2X2J1dHRvbn08L3A+DQoJPC9kaXY+DQo8L2ZpZWxkc2V0Pg0KeyR0YWJfZW5kfXskc3ltYm9sdGFiX3N0YXJ0fQ0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV9mb3JtX3JlcXVpcmVkX3N5bWJvbH06PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2Zvcm1fcmVxdWlyZWRfc3ltYm9sfTwvcD4NCgk8L2Rpdj4NCgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfZm9ybV91bnNwZWNpZmllZH06PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2Zvcm1fdW5zcGVjaWZpZWR9PC9wPg0KCTwvZGl2Pg0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV9saXN0X2RlbGltaXRlcn06PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2xpc3RfZGVsaW1pdGVyfTwvcD4NCgk8L2Rpdj4NCnskdGFiX2VuZH17JGNhcHRjaGF0YWJfc3RhcnR9DQp7aWYgJGNhcHRjaGFfaW5zdGFsbGVkfQ0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV91c2VfY2FwdGNoYX06PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3VzZV9jYXB0Y2hhfTwvcD4NCgk8L2Rpdj4NCgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfdGl0bGVfdXNlcl9jYXB0Y2hhfTo8L3A+DQoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfdGl0bGVfdXNlcl9jYXB0Y2hhfTwvcD4NCgk8L2Rpdj4NCgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfdXNlcl9jYXB0Y2hhX2Vycm9yfTo8L3A+DQoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfdGl0bGVfdXNlcl9jYXB0Y2hhX2Vycm9yfTwvcD4NCgk8L2Rpdj4NCntlbHNlfQ0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskdGl0bGVfaW5zdGFsbF9jYXB0Y2hhfTwvcD4NCgk8L2Rpdj4NCnsvaWZ9DQp7JHRhYl9lbmR9DQp7JHRlbXBsYXRldGFiX3N0YXJ0fQ0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV9sb2FkX3RlbXBsYXRlfTo8L3A+DQoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfbG9hZF90ZW1wbGF0ZX08L3A+DQoJPC9kaXY+DQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX2Zvcm1fdGVtcGxhdGV9OjwvcD4NCgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9mb3JtX3RlbXBsYXRlfTwvcD4NCgk8L2Rpdj4NCgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGhlbHBfdGVtcGxhdGVfdmFyaWFibGVzfTwvcD4NCgk8L2Rpdj4NCnskdGFiX2VuZH0NCnskc3VibWl0dGVtcGxhdGV0YWJfc3RhcnR9DQoJPGZpZWxkc2V0Pg0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskdGl0bGVfc3VibWl0X3Jlc3BvbnNlX2hlbHB9PC9wPg0KCTwvZGl2Pg0KCTwvZmllbGRzZXQ+DQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX3N1Ym1pdF9yZXNwb25zZX06PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3N1Ym1pdF9yZXNwb25zZX08L3A+DQoJCXskaGVscF9zdWJtaXRfcmVzcG9uc2V9DQoJPC9kaXY+DQp7JHRhYl9lbmR9DQp7JHRhYnNfZW5kfQ0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJCTxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JHNhdmVfYnV0dG9ufXskc3VibWl0X2J1dHRvbn08L3A+DQoJPC9kaXY+DQp7JGZvcm1fZW5kfQ0K]]></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+PC90cj4KPC90YWJsZT4KPGZpZWxkc2V0Pgo8bGVnZW5kPnskbGVnZW5kX3htbF9pbXBvcnR9PC9sZWdlbmQ+Cnskc3RhcnRfeG1sZm9ybX0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfeG1sX3RvX3VwbG9hZH06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfeG1sX3RvX3VwbG9hZH08L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV94bWxfdXBsb2FkX2Zvcm1uYW1lfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF94bWxfdXBsb2FkX2Zvcm1uYW1lfSZuYnNwOzxlbT57JGluZm9fbGVhdmVlbXB0eX08L2VtPjwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX3htbF91cGxvYWRfZm9ybWFsaWFzfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF94bWxfdXBsb2FkX2Zvcm1hbGlhc30mbmJzcDs8ZW0+eyRpbmZvX2xlYXZlZW1wdHl9PC9lbT48L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskc3VibWl0eG1sfQo8L2Rpdj4KeyRlbmRfeG1sZm9ybX0KPC9maWVsZHNldD4KeyRlbmRfdGFifQp7JHN0YXJ0X2NvbmZpZ3RhYn0Ke2lmICRtYXlfY29uZmlnID09IDF9Cnskc3RhcnRfY29uZmlnZm9ybX0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX2VuYWJsZV9mYXN0YWRkfTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9lbmFibGVfZmFzdGFkZH08L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX2hpZGVfZXJyb3JzfTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9oaWRlX2Vycm9yc308L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX3JlcXVpcmVfZmllbGRuYW1lc306PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfcmVxdWlyZV9maWVsZG5hbWVzfTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXN9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3VuaXF1ZV9maWVsZG5hbWVzfTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfcmVsYXhlZF9lbWFpbF9yZWdleH06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfcmVsYXhlZF9lbWFpbF9yZWdleH08L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX3Nob3dfdmVyc2lvbn06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfc2hvd192ZXJzaW9ufTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfZW5hYmxlX2FudGlzcGFtfTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9lbmFibGVfYW50aXNwYW19PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV9zaG93X2ZpZWxkaWRzfTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9zaG93X2ZpZWxkaWRzfTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPiZuYnNwOzwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JHN1Ym1pdH08L3A+Cgk8L2Rpdj4KeyRlbmRfY29uZmlnZm9ybX0KCntlbHNlfQoJPHA+eyRub19wZXJtaXNzaW9ufTwvcD4Key9pZn0KeyRlbmRfdGFifQp7JGVuZF90YWJzfQoK]]></data>
	</file>
	<file>
	  <filename>/templates/RenderFormCSS.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[CTxkaXZ7aWYgJGNzc19jbGFzcyAhPSAnJ30gY2xhc3M9InskY3NzX2NsYXNzfSJ7L2lmfT4KCXtpZiAkdG90YWxfcGFnZXMgZ3QgMX08c3Bhbj57JHRpdGxlX3BhZ2VfeF9vZl95fTwvc3Bhbj57L2lmfQoJe2ZvcmVhY2ggZnJvbT0kZmllbGRzIGl0ZW09ZW50cnl9CgkJe2lmICRlbnRyeS0+ZGlzcGxheSA9PSAxfQogICAgICAgIAl7c3RyaXB9CiAgICAgICAgIAl7aWYgJGVudHJ5LT5uZWVkc19kaXYgPT0gMX0KICAgICAgICAgICAgCTxkaXYKICAgICAgICAgICAgCXtpZiAkZW50cnktPnJlcXVpcmVkID09IDEgfHwgJGVudHJ5LT5jc3NfY2xhc3MgIT0gJyd9IGNsYXNzPSIKICAgICAgICAgICAgICAJCXtpZiAkZW50cnktPnJlcXVpcmVkID09IDF9CiAgICAgICAgICAgICAgICAJCXJlcXVpcmVkCiAgICAgICAgICAgICAgCQl7L2lmfQogICAgICAgICAgICAgIAkJe2lmICRlbnRyeS0+cmVxdWlyZWQgPT0gMSAmJiAkZW50cnktPmNzc19jbGFzcyAhPSAnJ30gey9pZn0KICAgICAgICAgICAgICAJCXtpZiAkZW50cnktPmNzc19jbGFzcyAhPSAnJ30KICAgICAgICAgICAgICAgIAkJeyRlbnRyeS0+Y3NzX2NsYXNzfQogICAgICAgICAgICAgIAkJey9pZn0KICAgICAgICAgICAgICAJCSIKICAgICAgICAgICAgCXsvaWZ9CiAgICAgICAgICAgIAk+CiAgICAgICAgIAl7L2lmfQogICAgICAgICAJe2lmICRlbnRyeS0+aGlkZV9uYW1lID09IDB9CiAgICAgICAgICAgIAk8bGFiZWx7aWYgJGVudHJ5LT5tdWx0aXBsZV9wYXJ0cyAhPSAxfSBmb3I9InskZW50cnktPmlucHV0X2lkfSJ7L2lmfT57JGVudHJ5LT5uYW1lfQogICAgICAgICAgICAJe2lmICRlbnRyeS0+cmVxdWlyZWRfc3ltYm9sICE9ICcnfQogICAgICAgICAgICAgICAJCXskZW50cnktPnJlcXVpcmVkX3N5bWJvbH0KICAgICAgICAgICAgCXsvaWZ9CiAgICAgICAgICAgIAk8L2xhYmVsPgogICAgICAgICAJey9pZn0KICAgICAgICAgCXtpZiAkZW50cnktPm11bHRpcGxlX3BhcnRzID09IDF9CiAgICAgICAgICAgIAl7c2VjdGlvbiBuYW1lPW51bWxvb3AgbG9vcD0kZW50cnktPmlucHV0fQogICAgICAgICAgICAgICAJCXtpZiAkZW50cnktPmxhYmVsX3BhcnRzID09IDF9CiAgICAgICAgICAgICAgIAkJCTxkaXY+eyRlbnRyeS0+aW5wdXRbbnVtbG9vcF0tPmlucHV0fSZuYnNwO3skZW50cnktPmlucHV0W251bWxvb3BdLT5uYW1lfTwvZGl2PgogICAgICAgICAgICAgICAJCXtlbHNlfQogICAgICAgICAgICAgICAJCQl7JGVudHJ5LT5pbnB1dFtudW1sb29wXS0+aW5wdXR9CiAgICAgICAgICAgICAgIAkJey9pZn0KICAgICAgICAgICAgICAgCQl7aWYgJGVudHJ5LT5pbnB1dFtudW1sb29wXS0+b3B9eyRlbnRyeS0+aW5wdXRbbnVtbG9vcF0tPm9wfXsvaWZ9CiAgICAgICAgICAgIAl7L3NlY3Rpb259CiAgICAgICAgIAl7ZWxzZX0KICAgICAgICAgICAgCXtpZiAkZW50cnktPnNtYXJ0eV9ldmFsID09ICcxJ317ZXZhbCB2YXI9JGVudHJ5LT5pbnB1dH17ZWxzZX17JGVudHJ5LT5pbnB1dH17L2lmfQogICAgICAgICAJey9pZn0KICAgICAgICAgCXtpZiAkZW50cnktPnZhbGlkID09IDB9ICZsdDstLS0geyRlbnRyeS0+ZXJyb3J9ey9pZn0KICAgICAgICAgCXtpZiAkZW50cnktPm5lZWRzX2RpdiA9PSAxfQogICAgICAgICAgICAJPC9kaXY+CiAgICAgICAgIAl7L2lmfQogICAgICAgICAJey9zdHJpcH0KICAgICAJey9pZn0KCXsvZm9yZWFjaH0KCXtpZiAkaGFzX2NhcHRjaGEgPT0gMX0KCQk8ZGl2IGNsYXNzPSJjYXB0Y2hhIj57JGdyYXBoaWNfY2FwdGNoYX17JHRpdGxlX2NhcHRjaGF9PGJyIC8+eyRpbnB1dF9jYXB0Y2hhfTwvZGl2PgoJey9pZn0KCTxkaXYgY2xhc3M9InN1Ym1pdCI+eyRwcmV2fXskc3VibWl0fTwvZGl2PgoJPC9kaXY+]]></data>
	</file>
	<file>
	  <filename>/templates/RenderFormDefault.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogREVGQVVMVCBGT1JNIExBWU9VVCAvIHB1cmUgQ1NTICp9CnskZmJfZm9ybV9oZWFkZXJ9CntpZiAkZmJfZm9ybV9kb25lID09IDF9Cgl7KiBUaGlzIGZpcnN0IHNlY3Rpb24gaXMgZm9yIGRpc3BsYXlpbmcgc3VibWlzc2lvbiBlcnJvcnMgKn0KCXtpZiAkZmJfc3VibWlzc2lvbl9lcnJvcn0KCQk8ZGl2IGNsYXNzPSJlcnJvcl9tZXNzYWdlIj57JGZiX3N1Ym1pc3Npb25fZXJyb3J9PC9kaXY+CgkJe2lmICRmYl9zaG93X3N1Ym1pc3Npb25fZXJyb3JzfQoJCQk8ZGl2IGNsYXNzPSJlcnJvciI+CgkJCTx1bD4KCQkJe2ZvcmVhY2ggZnJvbT0kZmJfc3VibWlzc2lvbl9lcnJvcl9saXN0IGl0ZW09dGhpc0Vycn0KCQkJCTxsaT57JHRoaXNFcnJ9PC9saT4KCQkJey9mb3JlYWNofQoJCQk8L3VsPgoJCTwvZGl2PgoJCXsvaWZ9Cgl7L2lmfQp7ZWxzZX0KCXsqIHRoaXMgc2VjdGlvbiBpcyBmb3IgZGlzcGxheWluZyB0aGUgZm9ybSAqfQoJeyogd2Ugc3RhcnQgd2l0aCB2YWxpZGF0aW9uIGVycm9ycyAqfQoJe2lmICRmYl9mb3JtX2hhc192YWxpZGF0aW9uX2Vycm9yc30KCQk8ZGl2IGNsYXNzPSJlcnJvcl9tZXNzYWdlIj4KCQk8dWw+CgkJe2ZvcmVhY2ggZnJvbT0kZmJfZm9ybV92YWxpZGF0aW9uX2Vycm9ycyBpdGVtPXRoaXNFcnJ9CgkJCTxsaT57JHRoaXNFcnJ9PC9saT4KCQl7L2ZvcmVhY2h9CgkJPC91bD4KCQk8L2Rpdj4KCXsvaWZ9Cgl7aWYgJGNhcHRjaGFfZXJyb3J9CgkJPGRpdiBjbGFzcz0iZXJyb3JfbWVzc2FnZSI+eyRjYXB0Y2hhX2Vycm9yfTwvZGl2PgoJey9pZn0KCgl7KiBhbmQgbm93IHRoZSBmb3JtIGl0c2VsZiAqfQoJeyRmYl9mb3JtX3N0YXJ0fQoJeyRmYl9oaWRkZW59Cgk8ZGl2e2lmICRjc3NfY2xhc3MgIT0gJyd9IGNsYXNzPSJ7JGNzc19jbGFzc30iey9pZn0+Cgl7aWYgJHRvdGFsX3BhZ2VzIGd0IDF9PHNwYW4+eyR0aXRsZV9wYWdlX3hfb2ZfeX08L3NwYW4+ey9pZn0KCXtmb3JlYWNoIGZyb209JGZpZWxkcyBpdGVtPWVudHJ5fQoJCXtpZiAkZW50cnktPmRpc3BsYXkgPT0gMX0KICAgICAgICAJe3N0cmlwfQogICAgICAgICAJe2lmICRlbnRyeS0+bmVlZHNfZGl2ID09IDF9CiAgICAgICAgICAgIAk8ZGl2CiAgICAgICAgICAgIAl7aWYgJGVudHJ5LT5yZXF1aXJlZCA9PSAxIHx8ICRlbnRyeS0+Y3NzX2NsYXNzICE9ICcnfSBjbGFzcz0iCiAgICAgICAgICAgICAgCQl7aWYgJGVudHJ5LT5yZXF1aXJlZCA9PSAxfQogICAgICAgICAgICAgICAgCQlyZXF1aXJlZAogICAgICAgICAgICAgIAkJey9pZn0KICAgICAgICAgICAgICAJCXtpZiAkZW50cnktPnJlcXVpcmVkID09IDEgJiYgJGVudHJ5LT5jc3NfY2xhc3MgIT0gJyd9IHsvaWZ9CiAgICAgICAgICAgICAgCQl7aWYgJGVudHJ5LT5jc3NfY2xhc3MgIT0gJyd9CiAgICAgICAgICAgICAgICAJCXskZW50cnktPmNzc19jbGFzc30KICAgICAgICAgICAgICAJCXsvaWZ9CiAgICAgICAgICAgICAgCQkiCiAgICAgICAgICAgIAl7L2lmfQogICAgICAgICAgICAJPgogICAgICAgICAJey9pZn0KICAgICAgICAgCXtpZiAkZW50cnktPmhpZGVfbmFtZSA9PSAwfQogICAgICAgICAgICAJPGxhYmVse2lmICRlbnRyeS0+bXVsdGlwbGVfcGFydHMgIT0gMX0gZm9yPSJ7JGVudHJ5LT5pbnB1dF9pZH0iey9pZn0+eyRlbnRyeS0+bmFtZX0KICAgICAgICAgICAgCXtpZiAkZW50cnktPnJlcXVpcmVkX3N5bWJvbCAhPSAnJ30KICAgICAgICAgICAgICAgCQl7JGVudHJ5LT5yZXF1aXJlZF9zeW1ib2x9CiAgICAgICAgICAgIAl7L2lmfQogICAgICAgICAgICAJPC9sYWJlbD4KICAgICAgICAgCXsvaWZ9CiAgICAgICAgIAl7aWYgJGVudHJ5LT5tdWx0aXBsZV9wYXJ0cyA9PSAxfQogICAgICAgICAgICAJe3NlY3Rpb24gbmFtZT1udW1sb29wIGxvb3A9JGVudHJ5LT5pbnB1dH0KICAgICAgICAgICAgICAgCQl7aWYgJGVudHJ5LT5sYWJlbF9wYXJ0cyA9PSAxfQogICAgICAgICAgICAgICAJCQk8ZGl2PnskZW50cnktPmlucHV0W251bWxvb3BdLT5pbnB1dH0mbmJzcDt7JGVudHJ5LT5pbnB1dFtudW1sb29wXS0+bmFtZX08L2Rpdj4KICAgICAgICAgICAgICAgCQl7ZWxzZX0KICAgICAgICAgICAgICAgCQkJeyRlbnRyeS0+aW5wdXRbbnVtbG9vcF0tPmlucHV0fQogICAgICAgICAgICAgICAJCXsvaWZ9CiAgICAgICAgICAgICAgIAkJe2lmICRlbnRyeS0+aW5wdXRbbnVtbG9vcF0tPm9wfXskZW50cnktPmlucHV0W251bWxvb3BdLT5vcH17L2lmfQogICAgICAgICAgICAJey9zZWN0aW9ufQogICAgICAgICAJe2Vsc2V9CiAgICAgICAgICAgIAl7aWYgJGVudHJ5LT5zbWFydHlfZXZhbCA9PSAnMSd9e2V2YWwgdmFyPSRlbnRyeS0+aW5wdXR9e2Vsc2V9eyRlbnRyeS0+aW5wdXR9ey9pZn0KICAgICAgICAgCXsvaWZ9CiAgICAgICAgIAl7aWYgJGVudHJ5LT52YWxpZCA9PSAwfSAmbHQ7LS0tIHskZW50cnktPmVycm9yfXsvaWZ9CiAgICAgICAgIAl7aWYgJGVudHJ5LT5uZWVkc19kaXYgPT0gMX0KICAgICAgICAgICAgCTwvZGl2PgogICAgICAgICAJey9pZn0KICAgICAgICAgCXsvc3RyaXB9CiAgICAgCXsvaWZ9Cgl7L2ZvcmVhY2h9Cgl7aWYgJGhhc19jYXB0Y2hhID09IDF9CgkJPGRpdiBjbGFzcz0iY2FwdGNoYSI+eyRncmFwaGljX2NhcHRjaGF9eyR0aXRsZV9jYXB0Y2hhfTxiciAvPnskaW5wdXRfY2FwdGNoYX08L2Rpdj4KCXsvaWZ9Cgk8ZGl2IGNsYXNzPSJzdWJtaXQiPnskcHJldn17JHN1Ym1pdH08L2Rpdj4KCTwvZGl2PgoJeyRmYl9mb3JtX2VuZH0Key9pZn0KeyRmYl9mb3JtX2Zvb3Rlcn0=]]></data>
	</file>
	<file>
	  <filename>/templates/RenderFormTableTitleLeft.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogVEFCTEUgRk9STSBMQVlPVVQgLyBGaWVsZCB0aXRsZXMgb24gTGVmdCAqfQ0KeyogbmV4dCBsaW5lIHNldHMgbnVtYmVyIG9mIGNvbHVtbnMgZm9yIHRoaW5ncyBsaWtlIGNoZWNrYm94IGdyb3VwcyAqfQ0Ke2Fzc2lnbiB2YXI9ImNvbHMiIHZhbHVlPSIzIn0NCnskZmJfZm9ybV9oZWFkZXJ9DQp7aWYgJGZiX2Zvcm1fZG9uZSA9PSAxfQ0KCXsqIFRoaXMgZmlyc3Qgc2VjdGlvbiBpcyBmb3IgZGlzcGxheWluZyBzdWJtaXNzaW9uIGVycm9ycyAqfQ0KCXtpZiAkZmJfc3VibWlzc2lvbl9lcnJvcn0NCgkJPGRpdiBjbGFzcz0iZXJyb3JfbWVzc2FnZSI+eyRmYl9zdWJtaXNzaW9uX2Vycm9yfTwvZGl2Pg0KCQl7aWYgJGZiX3Nob3dfc3VibWlzc2lvbl9lcnJvcnN9DQoJCQk8dGFibGUgY2xhc3M9ImVycm9yIj4NCgkJCXtmb3JlYWNoIGZyb209JGZiX3N1Ym1pc3Npb25fZXJyb3JfbGlzdCBpdGVtPXRoaXNFcnJ9DQoJCQkJPHRyPjx0ZD57JHRoaXNFcnJ9PC90ZD48L3RyPg0KCQkJey9mb3JlYWNofQ0KCQkJPC90YWJsZT4NCgkJey9pZn0NCgl7L2lmfQ0Ke2Vsc2V9DQoJeyogdGhpcyBzZWN0aW9uIGlzIGZvciBkaXNwbGF5aW5nIHRoZSBmb3JtICp9DQoJeyogd2Ugc3RhcnQgd2l0aCB2YWxpZGF0aW9uIGVycm9ycyAqfQ0KCXtpZiAkZmJfZm9ybV9oYXNfdmFsaWRhdGlvbl9lcnJvcnN9DQoJCTxkaXYgY2xhc3M9ImVycm9yX21lc3NhZ2UiPg0KCQk8dWw+DQoJCXtmb3JlYWNoIGZyb209JGZiX2Zvcm1fdmFsaWRhdGlvbl9lcnJvcnMgaXRlbT10aGlzRXJyfQ0KCQkJPGxpPnskdGhpc0Vycn08L2xpPg0KCQl7L2ZvcmVhY2h9DQoJCTwvdWw+DQoJCTwvZGl2Pg0KCXsvaWZ9DQoJe2lmICRjYXB0Y2hhX2Vycm9yfQ0KCQk8ZGl2IGNsYXNzPSJlcnJvcl9tZXNzYWdlIj57JGNhcHRjaGFfZXJyb3J9PC9kaXY+DQoJey9pZn0NCg0KCXsqIGFuZCBub3cgdGhlIGZvcm0gaXRzZWxmICp9DQoJeyRmYl9mb3JtX3N0YXJ0fQ0KCXskZmJfaGlkZGVufQ0KDQogICAgPHRhYmxle2lmICRjc3NfY2xhc3MgIT0gJyd9IGNsYXNzPSJ7JGNzc19jbGFzc30iey9pZn0+DQogICAge2lmICR0b3RhbF9wYWdlcyBndCAxfTx0cj48dGQgY29sc3Bhbj0iMiI+eyR0aXRsZV9wYWdlX3hfb2ZfeX08L3RkPjwvdHI+ey9pZn0NCiAgICB7Zm9yZWFjaCBmcm9tPSRmaWVsZHMgaXRlbT1lbnRyeX0NCgkgIHtpZiAkZW50cnktPmRpc3BsYXkgPT0gMSAmJg0KCSAgICAkZW50cnktPnR5cGUgIT0gJy1GaWVsZHNldCBTdGFydCcgJiYNCgkgICAgJGVudHJ5LT50eXBlICE9ICctRmllbGRzZXQgRW5kJyB9DQoJICAgIDx0cj4NCgkgICAgCXtzdHJpcH0NCgkgICAgCTx0ZCBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIg0KCSAgICAJe2lmICRlbnRyeS0+cmVxdWlyZWQgPT0gMSB8fCAkZW50cnktPmNzc19jbGFzcyAhPSAnJ30gY2xhc3M9IiANCgkgICAgCQl7aWYgJGVudHJ5LT5yZXF1aXJlZCA9PSAxfQ0KCSAgICAJCQlyZXF1aXJlZA0KCSAgICAJCXsvaWZ9DQoJICAgIAkJe2lmICRlbnRyeS0+cmVxdWlyZWQgPT0gMSAmJiAkZW50cnktPmNzc19jbGFzcyAhPSAnJ30gey9pZn0NCgkgICAgCQl7aWYgJGVudHJ5LT5jc3NfY2xhc3MgIT0gJyd9DQoJICAgIAkJCXskZW50cnktPmNzc19jbGFzc30NCgkgICAgCQl7L2lmfQ0KCSAgICAJCSINCgkgICAgCXsvaWZ9DQoJICAgIAk+DQoJICAgIAl7aWYgJGVudHJ5LT5oaWRlX25hbWUgPT0gMH0NCgkgICAgCQl7JGVudHJ5LT5uYW1lfQ0KCSAgICAJCXtpZiAkZW50cnktPnJlcXVpcmVkX3N5bWJvbCAhPSAnJ30NCgkgICAgCQkJeyRlbnRyeS0+cmVxdWlyZWRfc3ltYm9sfQ0KCSAgICAJCXsvaWZ9DQoJICAgIAl7L2lmfQ0KCSAgICAJPC90ZD48dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIntpZiAkZW50cnktPmNzc19jbGFzcyAhPSAnJ30gY2xhc3M9InskZW50cnktPmNzc19jbGFzc30iey9pZn0+DQoJICAgIAl7aWYgJGVudHJ5LT5tdWx0aXBsZV9wYXJ0cyA9PSAxfQ0KICAgIAkJPHRhYmxlPg0KCQkJCQk8dHI+DQoJCQkJe3NlY3Rpb24gbmFtZT1udW1sb29wIGxvb3A9JGVudHJ5LT5pbnB1dH0NCgkgICAgCQkJPHRkPnskZW50cnktPmlucHV0W251bWxvb3BdLT5pbnB1dH0mbmJzcDt7JGVudHJ5LT5pbnB1dFtudW1sb29wXS0+bmFtZX17aWYgJGVudHJ5LT5pbnB1dFtudW1sb29wXS0+b3B9Jm5ic3A7eyRlbnRyeS0+aW5wdXRbbnVtbG9vcF0tPm9wfXsvaWZ9PC90ZD4NCgkgICAgCQkJICAgICAgIHtpZiBub3QgKCRzbWFydHkuc2VjdGlvbi5udW1sb29wLnJvd251bSBtb2QgJGNvbHMpfQ0KICAgICAgICAgICAgICAgIAkJCQl7aWYgbm90ICRzbWFydHkuc2VjdGlvbi5udW1sb29wLmxhc3R9DQogICAgICAgICAgICAgICAgICAgICAgICAJCTwvdHI+PHRyPg0KICAgICAgICAgICAgICAgIAkJCQl7L2lmfQ0KICAgICAgICAJCQkJCXsvaWZ9DQogICAgICAgCQkJCXtpZiAkc21hcnR5LnNlY3Rpb24ubnVtbG9vcC5sYXN0fQ0KICAgICAgICAgICAgICAgIAkJe21hdGggZXF1YXRpb24gPSAibiAtIGEgJSBuIiBuPSRjb2xzIGE9JGVudHJ5LT5pbnB1dHxAY291bnQgYXNzaWduPSJjZWxscyJ9DQogICAgICAgICAgICAgICAgCQl7aWYgJGNlbGxzIG5lICRjb2xzfQ0KICAgICAgICAgICAgICAgIAkJCXtzZWN0aW9uIG5hbWU9cGFkIGxvb3A9JGNlbGxzfQ0KICAgICAgICAgICAgICAgICAgICAgICAgCQk8dGQ+Jm5ic3A7PC90ZD4NCiAgICAgICAgICAgICAgICAJCQl7L3NlY3Rpb259DQogICAgICAgICAgICAgICAJCSAJey9pZn0NCiAgICAgICAgICAgICAgICAJCTwvdHI+DQogICAgICAgIAkJCXsvaWZ9DQoJICAgIAkJey9zZWN0aW9ufQ0KCSAgICAJCTwvdGFibGU+DQoJICAgIAl7ZWxzZX0NCgkgICAgCQl7JGVudHJ5LT5pbnB1dH0NCgkgICAgCXsvaWZ9DQoJICAgIAl7aWYgJGVudHJ5LT52YWxpZCA9PSAwfSAmbHQ7LS0tIHskZW50cnktPmVycm9yfXsvaWZ9DQoJICAgIAk8L3RkPjwvdHI+DQoJICAgIAl7L3N0cmlwfQ0KCSAgey9pZn0NCnsvZm9yZWFjaH0NCntpZiAkaGFzX2NhcHRjaGEgPT0gMX0NCjx0cj48dGQ+eyRncmFwaGljX2NhcHRjaGF9PC90ZD48dGQ+eyRpbnB1dF9jYXB0Y2hhfTxiciAvPnskdGl0bGVfY2FwdGNoYX08L3RkPjwvdHI+DQp7L2lmfQ0KPHRyPjx0ZD57JHByZXZ9PC90ZD48dGQ+eyRzdWJtaXR9PC90ZD48L3RyPg0KPC90YWJsZT4NCnskZmJfZm9ybV9lbmR9DQp7L2lmfQ0KeyRmYl9mb3JtX2Zvb3Rlcn0=]]></data>
	</file>
	<file>
	  <filename>/templates/RenderFormTableTitleTop.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogVEFCTEUgRk9STSBMQVlPVVQgLyBGaWVsZCB0aXRsZXMgb24gVG9wICp9DQp7KiBuZXh0IGxpbmUgc2V0cyBudW1iZXIgb2YgY29sdW1ucyBmb3IgdGhpbmdzIGxpa2UgY2hlY2tib3ggZ3JvdXBzICp9DQp7YXNzaWduIHZhcj0iY29scyIgdmFsdWU9IjMifQ0KeyRmYl9mb3JtX2hlYWRlcn0NCntpZiAkZmJfZm9ybV9kb25lID09IDF9DQoJeyogVGhpcyBmaXJzdCBzZWN0aW9uIGlzIGZvciBkaXNwbGF5aW5nIHN1Ym1pc3Npb24gZXJyb3JzICp9DQoJe2lmICRmYl9zdWJtaXNzaW9uX2Vycm9yfQ0KCQk8ZGl2IGNsYXNzPSJlcnJvcl9tZXNzYWdlIj57JGZiX3N1Ym1pc3Npb25fZXJyb3J9PC9kaXY+DQoJCXtpZiAkZmJfc2hvd19zdWJtaXNzaW9uX2Vycm9yc30NCgkJCTx0YWJsZSBjbGFzcz0iZXJyb3IiPg0KCQkJe2ZvcmVhY2ggZnJvbT0kZmJfc3VibWlzc2lvbl9lcnJvcl9saXN0IGl0ZW09dGhpc0Vycn0NCgkJCQk8dHI+PHRkPnskdGhpc0Vycn08L3RkPjwvdHI+DQoJCQl7L2ZvcmVhY2h9DQoJCQk8L3RhYmxlPg0KCQl7L2lmfQ0KCXsvaWZ9DQp7ZWxzZX0NCgl7KiB0aGlzIHNlY3Rpb24gaXMgZm9yIGRpc3BsYXlpbmcgdGhlIGZvcm0gKn0NCgl7KiB3ZSBzdGFydCB3aXRoIHZhbGlkYXRpb24gZXJyb3JzICp9DQoJe2lmICRmYl9mb3JtX2hhc192YWxpZGF0aW9uX2Vycm9yc30NCgkJPGRpdiBjbGFzcz0iZXJyb3JfbWVzc2FnZSI+DQoJCTx1bD4NCgkJe2ZvcmVhY2ggZnJvbT0kZmJfZm9ybV92YWxpZGF0aW9uX2Vycm9ycyBpdGVtPXRoaXNFcnJ9DQoJCQk8bGk+eyR0aGlzRXJyfTwvbGk+DQoJCXsvZm9yZWFjaH0NCgkJPC91bD4NCgkJPC9kaXY+DQoJey9pZn0NCgl7aWYgJGNhcHRjaGFfZXJyb3J9DQoJCTxkaXYgY2xhc3M9ImVycm9yX21lc3NhZ2UiPnskY2FwdGNoYV9lcnJvcn08L2Rpdj4NCgl7L2lmfQ0KDQoJeyogYW5kIG5vdyB0aGUgZm9ybSBpdHNlbGYgKn0NCgl7JGZiX2Zvcm1fc3RhcnR9DQoJeyRmYl9oaWRkZW59DQoNCiAgICA8dGFibGV7aWYgJGNzc19jbGFzcyAhPSAnJ30gY2xhc3M9InskY3NzX2NsYXNzfSJ7L2lmfT4NCiAgICB7aWYgJHRvdGFsX3BhZ2VzIGd0IDF9PHRyPjx0ZCBjb2xzcGFuPSIyIj57JHRpdGxlX3BhZ2VfeF9vZl95fTwvdGQ+PC90cj57L2lmfQ0KICAgIHtmb3JlYWNoIGZyb209JGZpZWxkcyBpdGVtPWVudHJ5fQ0KCSAge2lmICRlbnRyeS0+ZGlzcGxheSA9PSAxICYmDQoJICAgICRlbnRyeS0+dHlwZSAhPSAnLUZpZWxkc2V0IFN0YXJ0JyAmJg0KCSAgICAkZW50cnktPnR5cGUgIT0gJy1GaWVsZHNldCBFbmQnIH0NCgkgICAgPHRyPg0KCSAgICAJe3N0cmlwfQ0KCSAgICAJPHRkIHZhbGlnbj0idG9wIg0KCSAgICAJe2lmICRlbnRyeS0+cmVxdWlyZWQgPT0gMSB8fCAkZW50cnktPmNzc19jbGFzcyAhPSAnJ30gY2xhc3M9IiANCgkgICAgCQl7aWYgJGVudHJ5LT5yZXF1aXJlZCA9PSAxfQ0KCSAgICAJCQlyZXF1aXJlZA0KCSAgICAJCXsvaWZ9DQoJICAgIAkJe2lmICRlbnRyeS0+cmVxdWlyZWQgPT0gMSAmJiAkZW50cnktPmNzc19jbGFzcyAhPSAnJ30gey9pZn0NCgkgICAgCQl7aWYgJGVudHJ5LT5jc3NfY2xhc3MgIT0gJyd9DQoJICAgIAkJCXskZW50cnktPmNzc19jbGFzc30NCgkgICAgCQl7L2lmfQ0KCSAgICAJCSINCgkgICAgCXsvaWZ9DQoJICAgIAk+DQoJICAgIAl7aWYgJGVudHJ5LT5oaWRlX25hbWUgPT0gMH0NCgkgICAgCQl7JGVudHJ5LT5uYW1lfQ0KCSAgICAJCXtpZiAkZW50cnktPnJlcXVpcmVkX3N5bWJvbCAhPSAnJ30NCgkgICAgCQkJeyRlbnRyeS0+cmVxdWlyZWRfc3ltYm9sfQ0KCSAgICAJCXsvaWZ9DQoJICAgIAl7L2lmfQ0KCSAgICAJPC90ZD48L3RyPjx0cj48dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIntpZiAkZW50cnktPmNzc19jbGFzcyAhPSAnJ30gY2xhc3M9InskZW50cnktPmNzc19jbGFzc30iey9pZn0+DQoJICAgIAl7aWYgJGVudHJ5LT5tdWx0aXBsZV9wYXJ0cyA9PSAxfQ0KICAgIAkJPHRhYmxlPg0KCQkJCQk8dHI+DQoJCQkJe3NlY3Rpb24gbmFtZT1udW1sb29wIGxvb3A9JGVudHJ5LT5pbnB1dH0NCgkgICAgCQkJPHRkPnskZW50cnktPmlucHV0W251bWxvb3BdLT5pbnB1dH0mbmJzcDt7JGVudHJ5LT5pbnB1dFtudW1sb29wXS0+bmFtZX17aWYgJGVudHJ5LT5pbnB1dFtudW1sb29wXS0+b3B9Jm5ic3A7eyRlbnRyeS0+aW5wdXRbbnVtbG9vcF0tPm9wfXsvaWZ9PC90ZD4NCgkgICAgCQkJICAgICAgIHtpZiBub3QgKCRzbWFydHkuc2VjdGlvbi5udW1sb29wLnJvd251bSBtb2QgJGNvbHMpfQ0KICAgICAgICAgICAgICAgIAkJCQl7aWYgbm90ICRzbWFydHkuc2VjdGlvbi5udW1sb29wLmxhc3R9DQogICAgICAgICAgICAgICAgICAgICAgICAJCTwvdHI+PHRyPg0KICAgICAgICAgICAgICAgIAkJCQl7L2lmfQ0KICAgICAgICAJCQkJCXsvaWZ9DQogICAgICAgCQkJCXtpZiAkc21hcnR5LnNlY3Rpb24ubnVtbG9vcC5sYXN0fQ0KICAgICAgICAgICAgICAgIAkJe21hdGggZXF1YXRpb24gPSAibiAtIGEgJSBuIiBuPSRjb2xzIGE9JGVudHJ5LT5pbnB1dHxAY291bnQgYXNzaWduPSJjZWxscyJ9DQogICAgICAgICAgICAgICAgCQl7aWYgJGNlbGxzIG5lICRjb2xzfQ0KICAgICAgICAgICAgICAgIAkJCXtzZWN0aW9uIG5hbWU9cGFkIGxvb3A9JGNlbGxzfQ0KICAgICAgICAgICAgICAgICAgICAgICAgCQk8dGQ+Jm5ic3A7PC90ZD4NCiAgICAgICAgICAgICAgICAJCQl7L3NlY3Rpb259DQogICAgICAgICAgICAgICAJCSAJey9pZn0NCiAgICAgICAgICAgICAgICAJCTwvdHI+DQogICAgICAgIAkJCXsvaWZ9DQoJICAgIAkJey9zZWN0aW9ufQ0KCSAgICAJCTwvdGFibGU+DQoJICAgIAl7ZWxzZX0NCgkgICAgCQl7JGVudHJ5LT5pbnB1dH0NCgkgICAgCXsvaWZ9DQoJICAgIAl7aWYgJGVudHJ5LT52YWxpZCA9PSAwfSAmbHQ7LS0tIHskZW50cnktPmVycm9yfXsvaWZ9DQoJICAgIAk8L3RkPjwvdHI+DQoJICAgIAl7L3N0cmlwfQ0KCSAgey9pZn0NCnsvZm9yZWFjaH0NCntpZiAkaGFzX2NhcHRjaGEgPT0gMX0NCjx0cj48dGQ+eyRncmFwaGljX2NhcHRjaGF9PC90ZD48L3RyPjx0cj48dGQ+eyRpbnB1dF9jYXB0Y2hhfTxiciAvPnskdGl0bGVfY2FwdGNoYX08L3RkPjwvdHI+DQp7L2lmfQ0KPHRyPjx0ZD57JHByZXZ9PC90ZD48L3RyPjx0cj48dGQ+eyRzdWJtaXR9PC90ZD48L3RyPg0KPC90YWJsZT4NCnskZmJfZm9ybV9lbmR9DQp7L2lmfQ0KeyRmYl9mb3JtX2Zvb3Rlcn0=]]></data>
	</file>
	<file>
	  <filename>/templates/ReorderForm.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2xpdGVyYWx9CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KZnVuY3Rpb24gc2VuZF9vcmRlcl92YXIoZm9ybV9kZXNjKQogICB7CiAgIHZhciBlbGVtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BhcmVudDAnKTsKICAgaWYgKGVsZW0pCiAgICAgIHsKICAgICAgdmFyIHN0ciA9ICcnOwogICAgICB2YXIgbm9kZXMgPSBlbGVtLmNoaWxkTm9kZXM7CiAgICAgIGZvciAoaT0wO2k8bm9kZXMubGVuZ3RoO2krKykKICAgICAgICAgewogICAgICAgICBzdHIgPSBzdHIgKyBub2Rlc1tpXS5pZCArICcsJzsKICAgICAgICAgfQogICAgICB9CiAgIHZhciBmbGQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnb3JkZXJwYXNzJyk7CiAgIGlmIChmbGQpCgkJewoJCWZsZC52YWx1ZSA9IHN0cjsKCQl9CiAgIHJldHVybiB0cnVlOwogICB9Cjwvc2NyaXB0Pgp7L2xpdGVyYWx9Cgp7JHN0YXJ0X2Zvcm19Cjx1bCBpZD0icGFyZW50MCIgY2xhc3M9InNvcnRhYmxlTGlzdCI+Cntmb3JlYWNoIGZyb209JGZpZWxkcyBpdGVtPXRoaXNGaWVsZH0KCQk8bGkgaWQ9InskdGhpc0ZpZWxkLT5pZH0iPjxzdHJvbmc+eyR0aGlzRmllbGQtPm5hbWV9PC9zdHJvbmc+IC0geyR0aGlzRmllbGQtPnR5cGV9PC9saT4Key9mb3JlYWNofQoKPC91bD4KPGJyIC8+CnskZmJfaGlkZGVufTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJvcmRlcnBhc3MiIG5hbWU9InskaWR9ZmJycF9vcmRlciIgdmFsdWU9IiIgLz4KeyRzdWJtaXR9CnskZW5kX2Zvcm19Cgp7bGl0ZXJhbH0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgpTb3J0YWJsZS5jcmVhdGUoJ3BhcmVudDAnLHt0YWc6J2xpJ30pOwo8L3NjcmlwdD4Key9saXRlcmFsfQ==]]></data>
	</file>
</module>
