<?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.6.3</version>
  <mincmsversion>1.1</mincmsversion>
	<help><![CDATA[PGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+CjxwPlRoZSBGb3JtIEJ1aWxkZXIgTW9kdWxlIGFsbG93cyB5b3UgdG8gY3JlYXRlIGZvcm1zIChpbiBmYWN0LCBpdCdzIGEgcmVwbGFjZW1lbnQgb2YgdGhlIG9yaWdpbmFsIEZlZWRiYWNrIEZvcm0gbW9kdWxlKSwgd2l0aAp0aGUgYWRkZWQgcG93ZXIgb2YgZGF0YWJhc2Ugc3RvcmFnZS4gV2l0aCBpdHMgY29tcGFuaW9uIG1vZHVsZSBGb3JtIEJyb3dzZXIsIHlvdSBjYW4gdXNlIGl0IHRvIGNyZWF0ZSBzaW1wbGUgZGF0YWJhc2UgYXBwbGljYXRpb25zLjwvcD4KPHA+VGhlIGZvcm1zIGNyZWF0ZWQgdXNpbmcgdGhlIEZvcm0gQnVpbGRlciBtYXkgYmUgaW5zZXJ0ZWQKaW50byB0ZW1wbGF0ZXMgYW5kL29yIGNvbnRlbnQgcGFnZXMuIEZvcm1zIG1heSBjb250YWluIG1hbnkga2luZHMgb2YgaW5wdXRzLCBhbmQgbWF5IGhhdmUKdmFsaWRhdGlvbiBhcHBsaWVkIHRvIHRoZXNlIGlucHV0cy4gVGhlIHJlc3VsdHMgb2YgdGhlc2UgZm9ybXMgbWF5IGJlIGhhbmRsZWQgaW4gYSB2YXJpZXR5IG9mIHdheXMuPC9wPgoKPGgzPkhvdyBEbyBJIFVzZSBpdD88L2gzPgo8UD5JbnN0YWxsIGl0LCBhbmQgcG9rZSBhcm91bmQgdGhlIG1lbnVzLiBQbGF5IHdpdGggaXQuIFRyeSBjcmVhdGluZyBmb3JtcywgYW5kIGFkZGluZyB0aGVtIHRvIHlvdXIgY29udGVudC4KSWYgeW91IGdldCBzdHVjaywgY2hhdCB3aXRoIG1lIG9uIHRoZSAjY21zIElSQyBjaGFubmVsLCBwb3N0IHRvIHRoZSBmb3J1bSwgc2VuZCBtZSBlbWFpbCwgb3IsIGlmIHlvdSdyZQpyZWFsbHkgZGVzcGVyYXRlLCB0cnkgcmVhZGluZyB0aGUgaW5zdHJ1Y3Rpb25zIG9uIHRoZSByZXN0IG9mIHRoaXMgcGFnZS48L1A+Cgo8aDM+SG93IERvIEkgQ3JlYXRlIGEgRm9ybTwvaDM+CjxwPkluIHRoZSBDTVMgQWRtaW4gTWVudSwgeW91IHNob3VsZCBnZXQgYSBuZXcgbWVudSBpdGVtIGNhbGxlZCBGb3JtQnVpbGRlci4gQ2xpY2sgb24gdGhpcy4gT24gdGhlIHBhZ2UKdGhhdCBnZXRzIHNob3duLCB0aGVyZSBhcmUgb3B0aW9ucyAoYXQgdGhlIGJvdHRvbSBvZiB0aGUgbGlzdCBvZiBGb3JtcykgdG8gQWRkIGEgTmV3IEZvcm0gb3IgTW9kaWZ5CkNvbmZpZ3VyYXRpb24uPC9wPgoKPGgzPkFkZGluZyBhIEZvcm0gdG8gYSBQYWdlPC9oMz4KPHA+SW4gdGhlIG1haW4gRm9ybUJ1aWxkZXIgYWRtaW4gcGFnZSwgeW91IGNhbiBzZWUgYW4gZXhhbXBsZSBvZiB0aGUgdGFnIHVzZWQgdG8gZGlzcGxheSBlYWNoIGZvcm0uIEl0IGxvb2tzCnNvbWV0aGluZyBsaWtlIHtGb3JtQnVpbGRlciBmb3JtPSdzYW1wbGVfZm9ybSd9PC9wPgo8cD5CeSBjb3B5aW5nIHRoaXMgdGFnIGludG8gdGhlIGNvbnRlbnQgb2YgYSBwYWdlLCBvciBpbnRvIGEgdGVtcGxhdGUsIHdpbGwgY2F1c2UgdGhhdCBmb3JtIHRvIGJlIGRpc3BsYXllZC4KSW4gdGhlb3J5LCB5b3UgY2FuIGhhdmUgbXVsdGlwbGUgZm9ybXMgb24gYSBwYWdlIGlmIHlvdSByZWFsbHkgd2FudCB0by4gQmUgY2FyZWZ1bCB3aGVuIHBhc3RpbmcgdGhlIHRhZwppbnRvIGEgcGFnZSdzIGNvbnRlbnQgaWYgeW91IHVzZSBhIFdZU0lXWUcgZWRpdG9yIHN1Y2ggYXMgVGlueU1DRSwgRkNLRWRpdCwgb3IgSFRNTEFyZWEuIFRoZXNlIGVkaXRvcnMgbWF5IHN0ZWFsdGhpbHkKY2hhbmdlIHRoZSBxdW90ZSBtYXJrcyAoIikgaW50byBIVE1MIGVudGl0aWVzICgmYW1wO3F1b3Q7KSwgYW5kIHRoZSBmb3JtcyB3aWxsIG5vdCBzaG93IHVwLiBUcnkgdXNpbmcKc2luZ2xlIHF1b3RlcyAoJykgb3IgZWRpdGluZyB0aGUgSFRNTCBkaXJlY3RseS48L3A+Cgo8aDM+V29ya2luZyB3aXRoIEZvcm1zPC9oMz4KPHA+QnkgY2xpY2tpbmcgb24gYSBGb3JtJ3MgbmFtZSwgeW91IGVudGVyIHRoZSBGb3JtIEVkaXQgcGFnZS4gVGhlcmUgYXJlIHNldmVyYWwgdGFicywgd2hpY2ggYXJlIGRlc2NyaWJlZCBiZWxvdzo8L3A+CjxoND5NYWluPC9oND4KPHA+VGhpcyBpcyB0aGUgbWFpbiBwbGFjZSB5b3UnbGwgd29yayBvbiB5b3VyIGZvcm0uIEhlcmUsIHlvdSBnaXZlIGl0IGEgbmFtZSwgYW4gYWxpYXMgKHdoaWNoIGlzIHVzZWQgdG8gaWRlbnRpZnkgaXQgZm9yIHBsYWNpbmcgaXQgaW4gYSBwYWdlIG9yIHRlbXBsYXRlKSwgYW5kLCBvcHRpb25hbGx5LCBhIENTUyBjbGFzcyB3aXRoIHdoaWNoIHRvIHdyYXAgdGhlIHdob2xlIHRoaW5nLjwvcD4KPHA+QmVsb3cgdGhpcywgaWYgeW91IGhhdmUgaXQgZW5hYmxlZCwgaXMgdGhlICJmYXN0IGZpZWxkIGFkZGVyIiBwdWxsZG93biwgdGhhdCBsZXRzIHlvdSBxdWlja2x5IGFkZCBhIGZpZWxkIHRvIHRoZSBlbmQgb2YgeW91ciBmb3JtIGJ5IHNlbGVjdGluZyB0aGUgZmllbGQgdHlwZS48L3A+CjxwPkJlbG93IHRoaXMgaXMgdGhlIGxpc3Qgb2YgZmllbGRzIHRoYXQgbWFrZSB1cCB5b3VyIGZvcm0uIE1vcmUgZGV0YWlsIG9uIHRoaXMgaXMgZGVzY3JpYmVkIGJlbG93LjwvcD4KPGg0PkZvcm0gU3VibWlzc2lvbjwvaDQ+CjxwPldoZW4gdGhlIGZvcm0gaXMgc3VibWl0dGVkLCB5b3UgY2FuIGVpdGhlciByZWRpcmVjdCB0aGUgdXNlciB0byBhbm90aGVyIHBhZ2Ugb2YgeW91ciBzaXRlLCBvciB5b3UgY2FuIHByZXNlbnQgdGhlIHVzZXIgc29tZSBtZXNzYWdlICh3aGljaCBjYW4gY29udGFpbiBhbnkgb2YgdGhlIHVzZXIncyBmb3JtIGVudHJpZXMsIG9yIGp1c3Qgc3RhdGljIHRleHQpLiBJbiB0aGlzIHRhYiwgeW91IHNlbGVjdCB3aGljaCBvZiB0aGVzZSBhcHByb2FjaGVzIHlvdSB3aXNoIHRvIHVzZSwgYW5kLCBpZiB5b3UgY2hvc2UgcmVkaXJlY3Rpb24sIGl0IGFsbG93cyB5b3UgdG8gcGljayB0aGUgcGFnZSB0byByZWRpcmVjdCB1c2VycyB0byBhZnRlciBhIHN1Y2Nlc3NmdWwgZm9ybSBzdWJtaXNzaW9uLjwvcD4KPHA+QWxzbyBvbiB0aGlzIHBhZ2UsIHlvdSBjYW4gc3BlY2lmeSB0aGUgbGFiZWxzIG9mIHZhcmlvdXMgc3VibWlzc2lvbiBidXR0b25zICgiUHJldmlvdXMiLCAibmV4dCIsICJzdWJtaXQiKS4gWW91IGNhbiBhbHNvIG9wdCB0byBoYXZlIHNvbWUgSmF2YXNjcmlwdCBhZGRlZCB0byB0aGUgbGFzdCBwYWdlIG9mIGEgZm9ybSB0aGF0IHdpbGwgcHJldmVudCBtdWx0aXBsZSBzdWJtaXNzaW9ucyAodXNlZnVsIG9uIHNsb3cgc2VydmVycykuPC9wPgo8aDQ+Rm9ybSBEaXNwbGF5IE9wdGlvbnM8L2g0Pgo8cD5UaGlzIHRhYiBhbGxvd3MgZm9yIG90aGVyIGZvcm0gY3VzdG9taXphdGlvbnMsIGxpa2UgdGhlIHN5bWJvbCB0byBzaG93IGZvciByZXF1aXJlZCBmaWVsZHMuPC9wPgo8aDQ+Q2FwdGNoYSBTZXR0aW5nczwvaDQ+CjxwPklmIHlvdSBoYXZlIGluc3RhbGxlZCB0aGUgQ2FwdGNoYSBtb2R1bGUsIHRoaXMgdGFiIGxldHMgeW91IGNvbmZpZ3VyZSB0aGUgQ2FwdGNoYSBzZXR0aW5ncyBmb3IgeW91ciBmb3JtLjwvcD4KPGg0PkZvcm0gVGVtcGxhdGU8L2g0Pgo8cD5UaGlzIGlzIHdoZXJlIHlvdSBkbyB5b3VyIGN1c3RvbWl6YXRpb24gd29yayBvZiB5b3VyIGZvcm0ncyBTbWFydHkgVGVtcGxhdGUuIFNlZSB0aGUgc2VjdGlvbiBjYWxsZWQgRm9ybSBUZW1wbGF0ZSBWYXJpYWJsZXMgYmVsb3cuPC9wPgo8cD5UaGUgZm9ybSBzaG91bGQgZGVmYXVsdCB0byBhIEN1c3RvbSB0ZW1wbGF0ZSB0aGF0IGRvY3VtZW50cyB0aGUgU21hcnR5IHRhZ3MgYXZhaWxhYmxlIHRvIHlvdS48L3A+CjxwPlVubGVzcyB5b3UncmUgYSBTbWFydHkgZXhwZXJ0LCB5b3UgcHJvYmFibHkgZG9uJ3Qgd2FudCB0byBtZXNzIGFyb3VuZCB3aXRoIHRoaXMuIElmIHlvdSBhcmUgYSBTbWFydHkgZXhwZXJ0LCB0aGlzIGlzIHdoZXJlIHlvdSBjYW4gdW5sZWFzaCB5b3VyIG1hZ2ljLjwvcD4KPGg0PlN1Ym1pc3Npb24gVGVtcGxhdGU8L2g0Pgo8cD5JZiwgaW4gdGhlIEZvcm0gU3VibWlzc2lvbiB0YWIsIHlvdSBzZWxlY3RlZCAnRGlzcGxheSAiU3VibWlzc2lvbiBUZW1wbGF0ZSIsIHRoaXMgaXMgd2hlcmUgeW91IGNhbiBjcmVhdGUgdGhhdCB0ZW1wbGF0ZS4gVGhlcmUgaXMgYSBkaXNwbGF5IG9mIHdoaWNoIHNtYXJ0eSB2YXJpYWJsZXMgYXJlIGF2YWlsYWJsZSB0byB5b3UsIGFuZCBhIGJ1dHRvbiB0byBnZW5lcmF0ZSBhIHNhbXBsZSB0ZW1wbGF0ZS48L3A+CjxwPklmIHlvdSdyZSBhIFNtYXJ0eSBleHBlcnQsIHlvdSBjYW4gZG8gYWxsIG1hbm5lciBvZiBjcmVhdGl2ZSBhbmQgcG93ZXJmdWwgdGhpbmdzIGhlcmUuIElmIHlvdSdyZSBub3QgYSBTbWFydHkgZXhwZXJ0LCB5b3UgbWlnaHQganVzdCB3YW50IHRvIHVzZSB0aGUgZGVmYXVsdC4KPC9wPgoKPGgzPkFkZGluZyBGaWVsZHMgdG8geW91ciBGb3JtPC9oMz4KPHA+VGhlIHR5cGVzIG9mIGZpZWxkcyB0aGF0IGFyZSBjdXJyZW50bHkgc3VwcG9ydGVkIGZpdCBpbnRvIGZvdXIgZ3JvdXBzOiBzdGFuZGFyZCBpbnB1dCBmaWVsZHMsIGRpc3BsYXkgY29udHJvbCBmaWVsZHMsIGVtYWlsLXNwZWNpZmljIGZpZWxkcywgYW5kIGZvcm0gcmVzdWx0IGhhbmRsaW5nIGZpZWxkcyAoYWxzbyBjYWxsZWQgRm9ybSBEaXNwb3NpdGlvbnMgaW4gcGxhY2VzKTo8L3A+Cjx1bD4KPGxpPlN0YW5kYXJkIElucHV0IEZpZWxkcyAtIHRoZXNlIGFyZSBpbnB1dHMgdGhhdCBhbGxvdyBlbnRyeSBvZiB0eXBpY2FsIGZvcm0gZWxlbWVudHM7IHRleHQgaW5wdXRzLCByYWRpbyBidXR0b25zLCBldGMuPC9saT4KPGxpPkRpc3BsYXkgQ29udHJvbCBGaWVsZHMgLSB0aGVzZSBpbnB1dCBjb250cm9sIGhvdyB0aGUgdXNlciB3aWxsIHNlZSB0aGUgZGlzcGxheSBvZiB0aGUgZm9ybTsgcGFnZSBicmVha3MsIHN0YXRpYyB0ZXh0LCBldGMuPC9saT4KPGxpPkVtYWlsLXNwZWNpZmljIEZpZWxkcyAtIHNvbWUgZm9ybXMgZ2VuZXJhdGUgZW1haWwsIGFuZCBlbWFpbC1zcGVjaWZpYyBmaWVsZHMgY2FuIGFsdGVyIGF0dHJpYnV0ZXMgb2YgdGhlIGVtYWlscyBzZW50LjwvbGk+CjxsaT5Gb3JtIERpc3Bvc2l0aW9ucyAtIFRoZXNlIGRldGVybWluZSB3aGF0IGhhcHBlbnMgd2hlbiB0aGUgdXNlcgpzdWJtaXRzIHRoZSBmb3JtOyBmb3IgZWFjaCByZXN1bHQgaGFuZGxpbmcgZmllbGQsIHNvbWUgbWV0aG9kIG9mIHRyYW5zbWl0dGluZywgc2F2aW5nLCBvciBlbWFpbGluZyB0aGUKZm9ybSBjb250ZW50cyB0YWtlcyBwbGFjZS4gQSBmb3JtIG1heSBoYXZlIG11bHRpcGxlIGZvcm0gZGlzcG9zaXRpb25zLjwvbGk+CjwvdWw+CjxwPkZvcm0gZmllbGRzIGFyZSBhc3NpZ25lZCBuYW1lcy4gVGhlc2UgbmFtZXMgaWRlbnRpZnkgdGhlIGZpZWxkLCBub3Qgb25seSBvbiB0aGUgc2NyZWVuIGFzIGxhYmVscyBmb3IgdGhlIHVzZXIsCmJ1dCBpbiB0aGUgZGF0YSB3aGVuIGl0J3Mgc3VibWl0dGVkIHNvIHlvdSBrbm93IHdoYXQgdGhlIHVzZXIgaXMgcmVzcG9uZGluZyB0by4gUGhyYXNpbmcgdGhlIG5hbWUgbGlrZSBhIHF1ZXN0aW9uCmlzIGEgaGFuZHkgd2F5IG9mIG1ha2luZyBpdCBjbGVhciB0byB0aGUgdXNlciB3aGF0IGlzIGV4cGVjdGVkLiBTaW1pbGFybHksIG1hbnkgZmllbGRzIGhhdmUgYm90aCBOYW1lcyBhbmQgVmFsdWVzLgpUaGUgTmFtZXMgYXJlIHdoYXQgZ2V0cyBzaG93biB0byB0aGUgdXNlcjsgdGhlIFZhbHVlIGlzIHdoYXQgZ2V0cyBzYXZlZCBvciB0cmFuc21pdHRlZCB3aGVuIHRoZSB1c2VyIHN1Ym1pdHMKdGhlIGZvcm0uIFRoZSBWYWx1ZXMgYXJlIG5ldmVyIHNlZW4gYnkgdGhlIHVzZXIsIG5vciBhcmUgdGhleSB2aXNpYmxlIGluIHRoZSBIVE1MLCBzbyBpdCdzIHNhZmUgdG8gdXNlIGZvcgplbWFpbCBhZGRyZXNzZXMgYW5kIHN1Y2guPC9wPgo8cD5Tb21lIGZpZWxkcyBjYW4gaGF2ZSBtdWx0aXBsZSB2YWx1ZXMsIG9yIG11bHRpcGxlIG5hbWUvdmFsdWUgcGFpcnMuIFdoZW4geW91IGZpcnN0IGNyZWF0ZSBzdWNoIGEgZmllbGQsCnRoZXJlIG1heSBub3QgYmUgc3VmZmljaWVudCBpbnB1dHMgZm9yIHlvdSB0byBzcGVjaWZ5IGFsbCB0aGUgdmFsdWVzIHlvdSB3YW50LiBUbyBnZXQgbW9yZSBzcGFjZSBmb3IgaW5wdXR0aW5nCnRoZXNlIHZhbHVlcywgdXNlIHRoZSBidXR0b25zIGF0IHRoZSBib3R0b20gb2YgdGhlIHBhZ2UgZm9yIGFkZGluZyBvcHRpb25zLjwvcD4KPHA+RmllbGRzIGNhbiBiZSBhc3NpZ25lZCB2YWxpZGF0aW9uIHJ1bGVzLCB3aGljaCB2YXJ5IGFjY29yZGluZyB0byB0aGUgdHlwZSBvZiB0aGUgZmllbGQuIFRoZXNlIHJ1bGVzIGhlbHAKZW5zdXJlIHRoYXQgdGhlIHVzZXIgZW50ZXJzIHZhbGlkIGRhdGEuIFRoZXkgbWF5IGFsc28gYmUKc2VwYXJhdGVseSBtYXJrZWQgIlJlcXVpcmVkIiwgd2hpY2ggd2lsbCBmb3JjZSB0aGUgdXNlciB0byBlbnRlciBhIHJlc3BvbnNlLjwvcD4KPHA+RmllbGRzIGFsc28gbWF5IGJlIGFzc2lnbmVkIGEgQ1NTIGNsYXNzLiBUaGlzIHNpbXBseSB3cmFwcyB0aGUgaW5wdXQgaW4gYSBkaXYgd2l0aCB0aGF0IGNsYXNzLCBzbyBhcyB0byBhbGxvdwpjdXN0b21pemVkIGxheW91dHMuIFRvIHVzZSB0aGlzIGVmZmVjdGl2ZWx5LCB5b3UgbWF5IG5lZWQgdG8gInZpZXcgc291cmNlIiBvbiB0aGUgZ2VuZXJhdGVkIGZvcm0sIGFuZCB0aGVuCndyaXRlIHlvdXIgQ1NTLjwvcD4KPHVsPgo8bGk+U3RhbmRhcmQgSW5wdXRzCjx1bD48bGk+VGV4dCBJbnB1dC4gVGhpcyBpcyBhIHN0YW5kYXJkIHRleHQgZmllbGQuIFlvdSBjYW4gbGltaXQgdGhlIGxlbmd0aCwgYW5kIGFwcGx5IHZhcmlvdXMgdmFsaWRhdGlvbgpmdW5jdGlvbnMgdG8gdGhlIGZpZWxkLjwvbGk+CjxsaT5UZXh0IEFyZWEuIFRoaXMgaXMgYSBiaWcsIGZyZWUtZm9ybSB0ZXh0IGlucHV0IGZpZWxkLjwvbGk+CjxsaT5DaGVja2JveC4gVGhpcyBpcyBhIHN0YW5kYXJkIGNoZWNrIGJveC48L2xpPgo8bGk+QnV0dG9uLiBUaGlzIGRvZW5zJ3QgZG8gYW55dGhpbmcsIGJ1dCB5b3UgY2FuIGhvb2sgaXQgaW50byBzb21lIEphdmFzY3JpcHQuPC9saT4KPGxpPkNoZWNrYm94IEdyb3VwLiBUaGlzIGlzIGEgY29sbGVjdGlvbiBvZiBjaGVja2JveGVzLiBUaGUgb25seSBkaWZmZXJlbmNlIGJldHdlZW4gdGhpcyBpbnB1dCBhbmQgYQpjb2xsZWN0aW9uIG9mIENoZWNrYm94IGlucHV0cyBpcyB0aGF0IHRoZXkgYXJlIHByZXNlbnRlZCBhcyBhIGdyb3VwLCB3aXRoIG9uZSBuYW1lLCBhbmQgY2FuIGhhdmUgYSB2YWxpZGF0aW9uIGZ1bmN0aW9uIHJlcXVpcmluZyB0aGF0IHlvdSBjaGVjayBvbmUgb3IgbW9yZSBvZiB0aGUgYm94ZXMgaW4gdGhlIGdyb3VwLjwvbGk+CjxsaT5SYWRpbyBHcm91cC4gVGhpcyBpcyBhIGNvbGxlY3Rpb24gb2YgcmFkaW8gYnV0dG9ucy4gT25seSBvbmUgb2YgdGhlIGdyb3VwIG1heSBiZSBzZWxlY3RlZCBieSB0aGUgdXNlci48L2xpPgo8bGk+UHVsbGRvd24uIFRoaXMgaXMgYSBzdGFuZGFyZCBwdWxsZG93biBtZW51LiBJdCdzIHJlYWxseSBjb25jZXB0dWFsbHkgdGhlIHNhbWUgdGhpbmcgYXMgYSByYWRpbyBidXR0b24KZ3JvdXAsIGJ1dCBpcyBiZXR0ZXIgd2hlbiB0aGVyZSBhcmUgYSBsYXJnZSBudW1iZXIgb2Ygb3B0aW9ucy48L2xpPgo8bGk+TXVsdGlzZWxlY3QuIFRoaXMgaXMgYSBtdWx0aS1zZWxlY3QgZmllbGQuIEl0J3MgcmVhbGx5IGNvbmNlcHR1YWxseSB0aGUgc2FtZSB0aGluZyBhcyBhIGNoZWNrYm94IGJ1dHRvbgpncm91cCwgYnV0IGlzIGJldHRlciB3aGVuIHRoZXJlIGFyZSBhIGxhcmdlIG51bWJlciBvZiBvcHRpb25zLCBhcyB5b3UgY2FuIGxpbWl0IHRoZSBudW1iZXIgZGlzcGxheWVkIG9uIHRoZSBzY3JlZW4gYXQgYW55IG9uZSB0aW1lLjwvbGk+CjxsaT5QYXNzd29yZC4gVGhpcyBpcyBhbiBhc3Rlcmlza2VkLW91dCB0ZXh0IGZpZWxkLCB1c2VmdWwgZm9yIHBhc3N3b3Jkcy48L2xpPgo8bGk+UGFzc3dvcmQgQWdhaW4gKHZlcmlmeSkuIFRoaXMgaXMgYSBmaWVsZCB0aGF0IG11c3QgbWF0Y2ggYSBQYXNzd29yZCBmaWVsZCBmb3Igc3VibWlzc2lvbgp0byBzdWNjZWVkLjwvbGk+CjxsaT5TdGF0ZS4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIFN0YXRlcyBvZiB0aGUgVS5TLjwvbGk+CjxsaT5DYW5hZGlhbiBQcm92aW5jZS4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIENhbmFkaWFuIFByb3ZpbmNlcyAoQ29udHJpYnV0ZWQgYnkgTm9lbCBNY0dyYW4uIFRoYW5rcyEpPC9saT4KPGxpPkNvdW50cmllcy4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIENvdW50cmllcyBvZiB0aGUgd29ybGQgKGFzIG9mIEp1bHkgMjAwNSkuPC9saT4KPGxpPkRhdGUgUGlja2VyLiBUaGlzIGlzIGEgdHJpcGxlIHB1bGxkb3duIGFsbG93aW5nIHRoZSB1c2VyIHRvIHNlbGVjdCBhIGRhdGUuPC9saT4KPGxpPlRpbWUgUGlja2VyLiBUaGlzIGlzIGEgc2V0IG9mIHB1bGxkb3ducyBhbGxvd2luZyB0aGUgdXNlciB0byBzZWxlY3QgYSB0aW1lICh1c2luZyAxMiBvciAyNCBob3VyIGNsb2NrKS48L2xpPgo8bGk+RmlsZSBVcGxvYWQuIFRoaXMgaXMgYSBmaWxlIHVwbG9hZCBmaWVsZC48L2xpPgo8bGk+TGluayAoVXNlciBFbnRlcmVkKS4gVGhpcyBjcmVhdGVzIGEgZG91YmxlIGlucHV0IGZpZWxkIGZvciBnZXR0aW5nIGEgbGluayBVUkwgYW5kIGxpbmsgdGl0bGUuPC9saT4KPGxpPlRleHQgRmllbGQgKE11bHRpcGxlKS4gVGhpcyBmaWVsZCBjcmVhdGVzIG9uZSBvciBtb3JlIHRleHQgaW5wdXRzIHdpdGggYWRkIGFuZCBkZWxldGUgYnV0dG9ucywgZWZmZWN0aXZlbHkgZ2l2aW5nIHRoZSBlbmQgdXNlciBhIHdheSBvZiBjcmVhdGluZyB2YXJpYWJsZS1sZW5ndGggbGlzdHMuPC9saT4KPC91bD48L2xpPgoKPGxpPkVtYWlsLXNwZWNpZmljIElucHV0cwo8dWw+PGxpPkVtYWlsICJGcm9tIEFkZHJlc3MiIEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIHRoZWlyIGVtYWlsIGFkZHJlc3MuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBhZGRyZXNzIGluIHRoZSAiRnJvbSIgZmllbGQuPC9saT4KPGxpPkVtYWlsICJGcm9tIE5hbWUiIEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIHRoZWlyIG5hbWUuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBuYW1lIGluIHRoZSAiRnJvbSIgZmllbGQuPC9saT4KPGxpPkVtYWlsIFN1YmplY3QgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgYSBzdWJqZWN0IGZvciB0aGVpciBlbWFpbC4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIGluIHRoZSAiU3ViamVjdCIgZmllbGQuIFRoaXMgbWF5IGNhdXNlIHRyb3VibGUgd2l0aCBjZXJ0YWluIGRpc3Bvc2l0aW9ucyB0aGF0IHdhbnQgdG8gY29udHJvbCB0aGUgRW1haWwgU3ViamVjdCwgc28gdXNlIGl0IHdpdGggY2F1dGlvbi48L2xpPgo8L3VsPjwvbGk+Cgo8bGk+RGlzcGxheSBDb250cm9sIEZpZWxkczx1bD4KPGxpPi1QYWdlIEJyZWFrLiBUaGlzIGFsbG93cyB5b3UgdG8gc3BsaXQgeW91ciBmZWVkYmFjayBmb3JtIGludG8gbXVsdGlwbGUgcGFnZXMuIEVhY2ggcGFnZSBpcwppbmRlcGVuZGVudGx5IHZhbGlkYXRlZC4gVGhpcyBpcyBnb29kIGZvciBhcHBsaWNhdGlvbnMgbGlrZSBvbmxpbmUgc3VydmV5cy48L2xpPgo8bGk+LUZpZWxkc2V0IFN0YXJ0LiBDb21iaW5lZCB3aXRoIEZpZWxkc2V0IEVuZCwgdGhpcyBhbGxvd3MgeW91IHRvIGdyb3VwIHZhcmlvdXMgZmllbGRzIHdpdGhpbiB5b3VyIGZvcm0uIFVzZSB0aGlzIHRvIHN0YXJ0IGEgZ2l2ZW4gZ3JvdXBpbmcuPC9saT4KPGxpPi1GaWVsZHNldCBFbmQuIENvbWJpbmVkIHdpdGggRmllbGRzZXQgU3RhcnQsIHRoaXMgYWxsb3dzIHlvdSB0byBncm91cCB2YXJpb3VzIGZpZWxkcyB3aXRoaW4geW91ciBmb3JtLiBVc2UgdGhpcyB0byBlbmQgYSBnaXZlbiBncm91cGluZy48L2xpPgo8bGk+LUhpZGRlbiBGaWVsZC4gVGhpcyBhbGxvd3MgeW91IHRvIGVtYmVkIGEgaGlkZGVuIGZpZWxkIGluIHlvdXIgZm9ybS48L2xpPgo8bGk+LVN0YXRpYyBUZXh0LiBUaGlzIGFsbG93cyB5b3UgdG8gcHV0IHRleHQgb3IgYSBsYWJlbCBpbiB0aGUgbWlkZGxlIG9mIHlvdXIgZm9ybS4gVGhpcyBpcyB1c2VmdWwgZm9yIGdpdmluZyBhZGRpdGlvbmFsIGhlbHAgdGV4dCwgZXNwZWNpYWxseSBpZiB5b3UncmUgbm90IHVzaW5nIGEgQ3VzdG9tIFRlbXBsYXRlIHRvIHJlbmRlciB5b3VyIGZvcm0uPC9saT4KPGxpPi1TdGF0aWMgTGluay4gVGhpcyBhbGxvd3MgeW91IHRvIHB1dCBhIGxpbmsgdG8gYSBnaXZlbiBwYWdlIGludG8geW91ciBmb3JtLiBPcHRpb25hbGx5LCB5b3UgY2FuIGhhdmUgaXQgYXV0b3BvcHVsYXRlIHdpdGggdGhlIHBhZ2Ugd2hlcmUgdGhlIGZvcm0gaXMgZW1iZWRkZWQgKHVzZWZ1bCBpZiB5b3UncmUgc2VuZGluZyByZXN1bHRzIHZpYSBlbWFpbCkuPC9saT4KPGxpPi1Db21wdXRlZCBGaWVsZC4gVGhpcyBhbGxvd3MgeW91IHRvIGVtYmVkIGEgY29tcHV0ZWQgZmllbGQgaW4geW91ciBmb3JtLiBJdCBpcyBub3QgdmlzaWJsZSB0byB0aGUgdXNlciB1bnRpbCBhZnRlciB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQuIEl0IGFsbG93cyB5b3UgdG8gZG8gc2ltcGxlIGFyaXRobWV0aWMgb3Igc3RyaW5nIGNvbmNhdGVuYXRpb24uPC9saT4KPGxpPi1VbmlxdWUgSW50ZWdlciAoU2VyaWFsKS4gVGhpcyBpcyBhbiBpbnRlZ2VyIHRoYXQgaW5jcmVhc2VzIGV2ZXJ5IHRpbWUgc29tZW9uZSBoaXRzIHlvdXIgZm9ybS4gWW91ciByZXN1bHRzIG1heSBub3QgYmUgc2VxdWVudGlhbCwgYnV0IHRoZXkgd2lsbCBpbmNyZWFzZSBtb25vdG9uaWNhbGx5LjwvbGk+CjxsaT4tVXNlciBUYWcuIFRoaXMgY2FsbHMgdGhlIHNwZWNpZmllZCBVc2VyIERlZmluZWQgVGFnLCBhbmQgZGlzcGxheXMgYW55dGhpbmcgaXQgcmV0dXJucy4gVGhlIFVEVCBnZXRzIGNhbGxlZCBhbnkgdGltZSB0aGUgZmllbGQgd291bGQgYmUgdmlzaWJsZS48L2xpPgo8L3VsPjwvbGk+CjxsaT4tTW9kdWxlIEluY2x1ZGUgVGFnLiBUaGlzIGFsbG93cyB5b3UgdG8gZW1iZWQgb3RoZXIgbW9kdWxlIG91dHB1dCBpbnRvIHlvdXIgZm9ybSwgZS5nLiwgYSBsaXN0IG9mIHByb2R1Y3RzIGZyb20gdGhlIFByb2R1Y3RzIG1vZHVsZS48L2xpPgoKPGxpPkZvcm0gSGFuZGxpbmcgSW5wdXRzIChEaXNwb3NpdGlvbnMpCjx1bD48bGk+KkNhbGwgYSBVc2VyIERlZmluZWQgVGFnIFdpdGggdGhlIEZvcm0gUmVzdWx0cy4gVGhpcyBzdWJtaXRzIGFsbCB0aGUgZm9ybSByZXN1bHRzIHRvIHRoZSBVc2VyLURlZmluZWQgVGFnIHlvdSBzcGVjaWZ5LiBUaGUgVURUIGNhbiBoYW5kbGUgdGhlIHJlc3VsdHMgaG93ZXZlciBpdCB3YW50cy4gVmFsdWVzIGFyZSBwYXNzZWQgYXMgJHBhcmFtc1snZmllbGRfbmFtZSddLCBhbmQgYXMgJHBhcmFtc1snZmllbGRfYWxpYXMnXSAoaWYgZGVmaW5lZCkuPC9saT4KPGxpPipFbWFpbCBSZXN1bHRzIEJhc2VkIG9uIFB1bGxkb3duLiBUaGlzIGlzIHVzZWZ1bCBmb3Igd2ViIHNpdGVzIHdoZXJlIGNvbW1lbnRzIGdldCByb3V0ZWQgYmFzZWQgb24gdGhlaXIgc3ViamVjdCBtYXR0ZXIsIGUuZy4sIGJ1Z3MgZ2V0IHNlbnQgdG8gb25lIHBlcnNvbiwgbWFya2V0aW5nIHF1ZXN0aW9ucyB0byBhbm90aGVyIHBlcnNvbiwgc2FsZXMgcmVxdWVzdHMgdG8gc29tZW9uZSBlbHNlLCBldGMuIFRoZSBwdWxsZG93biBpcyBwb3B1bGF0ZWQgd2l0aCB0aGUgc3ViamVjdHMsIGFuZCBlYWNoIGdldHMgZGlyZWN0ZWQgdG8gYSBzcGVjaWZpYyBlbWFpbCBhZGRyZXNzLiBZb3Ugc2V0IHVwIHRoZXNlIG1hcHBpbmdzIGluIHRoZSB3aGVuIHlvdSBjcmVhdGUgb3IgZWRpdCBhIGZpZWxkIG9mIHRoaXMgdHlwZS4gSWYgeW91IHVzZSBvbmUgb2YgdGhlc2UgIkRpcmVjdG9yIiBwdWxsZG93bnMsIHRoZSB1c2VyIG11c3QgbWFrZSBhIHNlbGVjdGlvbiBpbiBvcmRlciB0byBzdWJtaXQgdGhlCmZvcm0uIFRoaXMgaW5wdXQgaXMgcGFydCBvZiB0aGUgZm9ybSB0aGUgdXNlciBzZWVzLCBhbHRob3VnaCB0aGUgZW1haWwgYWRkcmVzc2VzIGFyZSBub3QgbWFkZSB2aXNpYmxlIG5vcgphcmUgdGhleSBlbWJlZGRlZCBpbiB0aGUgSFRNTC48L2xpPgo8bGk+KkVtYWlsICJGcm9tIEFkZHJlc3MiIEZpZWxkLCBhbmQgc2VuZCBjb3B5LiBUaGlzIHdvcmtzIGxpa2UgdGhlIEVtYWlsICJGcm9tIEFkZHJlc3MiIEZpZWxkIGRlc2NyaWJlZCBhYm92ZSwgYnV0IGl0IHByb3ZpZGVzIG9wdGlvbnMgZm9yIHNlbmRpbmcgYSBjb3B5IG9mIHRoZSByZXN1bHRzIHRvIHRoZSB1c2VyLjwvbGk+CjxsaT4qRW1haWwgUmVzdWx0cyB0byBzZXQgQWRkcmVzcyhlcykuIFRoaXMgc2ltcGx5IHNlbmRzIHRoZSBmb3JtIHJlc3VsdHMgdG8gb25lIG9yIG1vcmUgZW1haWwgYWRkcmVzc2VzIHRoYXQgeW91IGVudGVyIHdoZW4geW91IGNyZWF0ZSBvciBlZGl0IHRoaXMgdHlwZSBvZiBmaWVsZC4gVGhpcyBmaWVsZCBhbmQgaXRzIG5hbWUgYXJlIG5vdCB2aXNpYmxlIGluIHRoZQpmb3JtIHRoYXQgdGhlIHVzZXIgc2Vlcy4gVGhlIGVtYWlsIGFkZHJlc3NlcyBhcmUgbm90IG1hZGUgdmlzaWJsZSBub3IKYXJlIHRoZXkgZW1iZWRkZWQgaW4gdGhlIEhUTUwuPC9saT4KPGxpPipFbWFpbCB0byBVc2VyLVN1cHBsaWVkIEFkZHJlc3MuIFRoaXMgcHV0cyBhbiBpbnB1dCBmaWVsZCBpbiB0aGUgZm9ybSBmb3IgdGhlIHVzZXIgdG8gcG9wdWxhdGUgd2l0aCBhbiBlbWFpbCBhZGRyZXNzLiBUaGUgZm9ybSByZXN1bHRzIGdldCBzZW50IHRvIHRoYXQgYWRkcmVzcy4gQmV3YXJlIG9mIFNwYW0gYWJ1c2UhIEFjdGl2ZSB0aGUgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcyBpbiB0aGUgRm9ybUJ1aWxkZXIgY29uZmlndXJhdGlvbiBzY3JlZW4uPC9saT4KPGxpPipTdG9yZSBSZXN1bHRzIGluIERhdGFiYXNlLiA8c3Ryb25nPkRlcHJlY2F0ZWQuPC9zdHJvbmc+IFVzZSBTdG9yZSBSZXN1bHRzIGZvciBGb3JtQnJvd3NlciBNb2R1bGUgaW5zdGVhZCEgVGhpcyB3aWxsIHN0b3JlIHRoZSBmb3JtIGNvbnRlbnRzIGluIGFuIGludGVybmFsIGRhdGFiYXNlLiBZb3Ugd2lsbCBhbHdheXMgdXNlIHRoaXMgZGlzcG9zaXRpb24gaWYgeW91IHVzZSB0aGUgZm9ybSB3aXRoIEZvcm1Ccm93c2VyLjwvbGk+CjxsaT4qUmVkaXJlY3QgdG8gUGFnZSBCYXNlZCBvbiBQdWxsZG93bi4gVGhpcyBhbGxvd3MgeW91IHRvIHJlZGlyZWN0IHRoZSBmb3JtIHRvIGEgZGlmZmVyZW50IHNpdGUgcGFnZSBkZXBlbmRpbmcgb24gaXRzIHZhbHVlLiBJZiB5b3UgaGF2ZSBtdWx0aXBsZSBkaXNwb3NpdGlvbnMsIG1ha2Ugc3VyZSB0aGlzIGlzIHVzZWQgbGFzdC48L2xpPgo8bGk+KlZhbGlkYXRlIHZpYSBFbWFpbC4gVGhpcyBpcyBhIHN0cmFuZ2UgYW5kIHBvd2VyZnVsIGZpZWxkLiBJdCBwcm92aWRlcyB0aGUgdXNlciBhIG1hbmRhdG9yeSBpbnB1dCBmb3IgdGhlaXIgZW1haWwgYWRkcmVzcy4gT25jZSB0aGV5IHN1Ym1pdCB0aGVpciBmb3JtLCB0aGUgc3RhbmRhcmQgZm9ybSBkaXNwb3NpdGlvbnMgYXJlIG5vdCBwZXJmb3JtZWQgLS0gcmF0aGVyLCBpdCBzZW5kIHRoZSB1c2VyIGFuIGVtYWlsIHdpdGggYSBzcGVjaWFsIGNvZGVkIGxpbmsuIElmIHRoZXkgY2xpY2sgb24gdGhlIGxpbmssIHRoZSBvdGhlciBmb3JtIGlzIGNvbnNpZGVyZWQgImFwcHJvdmVkLCIgYW5kIHRoZSBvdGhlciBkaXNwb3NpdGlvbnMgYXJlIGFsbCBwZXJmb3JtZWQuPC9saT4KPGxpPipXcml0ZSBSZXN1bHRzIHRvIEZsYXQgRmlsZS4gVGhpcyB0YWtlcyB0aGUgZm9ybSByZXN1bHRzIGFuZCB3cml0ZXMgdGhlbSBpbnRvIGEgdGV4dCBmaWxlLiBZb3UgbWF5CnNlbGVjdCB0aGUgbmFtZSBvZiB0aGUgZmlsZSwgYW5kIHNldCBpdHMgZm9ybWF0LiBUaGVzZSBmaWxlcyBhcmUgd3JpdHRlbiB0byB0aGUgIm91dHB1dCIgZGlyZWN0b3J5IHVuZGVyIHRoZQptb2R1bGUncyBpbnN0YWxsYXRpb24gZGlyZWN0b3J5LCBhc3N1bWluZyB0aGUgd2ViIHNlcnZlciBoYXMgcGVybWlzc2lvbiB0byB3cml0ZSB0aGVyZS48L2xpPgo8bGk+KlNhdmUgUmVzdWx0cyB0byBGaWxlIEJhc2VkIG9uIFB1bGxkb3duLiBMaWtlIHRoZSBGbGF0IEZpbGUgZGlzcG9zaXRpb24sIGV4Y2VwdCB0aGUgdmFsdWUgb2YgYSBwdWxsLWRvd24gZGV0ZXJtaW5lcyB3aGljaCBmaWxlIHJlc3VsdHMgZ2V0IHdyaXR0ZW4gdG8uPC9saT4KPGxpPipTYXZlIFJlc3VsdHMgdG8gRmlsZShzKSBCYXNlZCBvbiBNdWx0aXBsZSBTZWxlY3Rpb25zLiBMaWtlIHRoZSBGbGF0IEZpbGUgZGlzcG9zaXRpb24sIGV4Y2VwdCB0aGUgdmFsdWUocykgb2YgY2hlY2tib3hlcyAgZGV0ZXJtaW5lcyB3aGljaCBmaWxlKHMpIHJlc3VsdHMgZ2V0IHdyaXR0ZW4gdG8uPC9saT4KPGxpPipFbWFpbCB0byBDTVMgQWRtaW4gVXNlci4gUHJvdmlkZXMgYSBwdWxsLWRvd24gb2YgQ01TIEFkbWluIHVzZXJzLCBhbmQgZGlyZWN0cyB0aGUgcmVzdWx0cyBhcyBhbiBlbWFpbCB0byB0aGUgc2VsZWN0ZWQgYWRtaW4uPC9saT4KPGxpPipTdG9yZSBSZXN1bHRzIGZvciBGb3JtQnJvd3NlciBNb2R1bGUgdi4wLjMuIFN0b3JlcyB0aGUgZm9ybSByZXN1bHRzIGluIGFuIFhNTCBzdHJ1Y3R1cmUgYXMgYSBzaW5nbGUgZGF0YWJhc2UgcmVjb3JkLiBUaGlzIGlzIHRoZSBvbmx5IGludGVyZmFjZSB0byBGb3JtIEJyb3dzZXIuIFNlZSBzZWN0aW9uIGJlbG93LjwvbGk+CjxsaT4qU3VibWl0IHRvIGFuIGFyYml0cmFyeSBmb3JtIGFjdGlvbi4gQ3JhZnQgYW4gSFRUUCBHRVQgb3IgUE9TVCwgYW5kIHRyYW5zbWl0IGl0IHVzaW5nIGNVUkwgdG8gdGhlIHNwZWNpZmllZCBVUkwuIFRoaXMgbGV0cyB5b3UgdXNlIEZvcm1CdWlsZGVyIGFzIGEgZnJvbnQtZW5kIHRvIGFueSBDR0kgb3IgRm9ybSBIYW5kbGluZyBzY3JpcHQgb3V0IHRoZXJlLjwvbGk+Cgo8L3VsPjwvbGk+PC9saT48L3VsPgoKPGgzPlBhc3NpbmcgRGVmYXVsdCBWYWx1ZXMgdG8gRm9ybXM8L2gzPgo8cD5DYWxndXkgYWRkZWQgYSBuaWNlIGZlYXR1cmUsIHdoaWNoIGlzIHRoYXQgeW91IGNhbiBwYXNzIGRlZmF1bHQgZmllbGQgdmFsdWVzIHRvIHlvdXIgZm9ybSB2aWEgdGhlIG1vZHVsZSB0YWcuIFRoaXMgYWxsb3dzIHlvdSB0byBoYXZlCnRoZSBzYW1lIGZvcm0gaW4gbXVsdGlwbGUgcGxhY2VzLCBidXQgd2l0aCBkaWZmZXJlbnQgZGVmYXVsdCB2YWx1ZXMuIEl0IG1heSBub3Qgd29yayBmb3IgbW9yZSBleG90aWMgZmllbGQgdHlwZXMsIGJ1dCBmb3IgZmllbGRzIHRoYXQgaGF2ZQphIHNpbmdsZSB2YWx1ZSwgeW91IGNhbiBzcGVjaWZ5IGxpa2U6PC9wPgo8cD57Rm9ybUJ1aWxkZXIgZm9ybT0nbXlfZm9ybScgdmFsdWVfPGk+RklFTEROQU1FPC9pPj0nZGVmYXVsdF92YWx1ZSd9PC9wPgo8cD5UaGlzIHdpbGwgc2V0IHRoZSBmaWVsZCB3aXRoIDxpPkZJRUxETkFNRTwvaT4gdG8gJ2RlZmF1bHRfdmFsdWUnLjwvcD4KPHA+VGhpcyBjYW4gYmUgcHJvYmxlbWF0aWMsIGFzIHNvbWV0aW1lcyBmaWVsZCBuYW1lcyBhcmUgdW53aWVsZHkgb3IgY29udGFpbiBjaGFyYWN0ZXJzIHRoYXQgZG9uJ3Qgd29yayB3ZWxsIHdpdGggU21hcnR5LiBTbyB0aGVyZSBpcyBhbgphbHRlcm5hdGl2ZSBsaWtlIHRoaXM6PC9wPgo8cD57Rm9ybUJ1aWxkZXIgZm9ybT0nbXlfZm9ybScgdmFsdWVfZmxkPGk+TlVNQkVSPC9pPj0nZGVmYXVsdF92YWx1ZSd9PC9wPgo8cD5UaGF0IHVzZXMgZmllbGQgPGk+TlVNQkVSPC9pPiwgd2hlcmUgPGk+TlVNQkVSPC9pPiBpcyB0aGUgaW50ZXJuYWwgRm9ybUJ1aWxkZXIgZmllbGQgaWQuIFlvdSBtaWdodCB3b25kZXIgaG93IHlvdSBrbm93IHdoYXQgdGhhdCBpZCBpcy4gU2ltcGx5IGdvIGludG8gdGhlIEZvcm1CdWlsZGVyIGNvbmZpZ3VyYXRpb24gdGFiLAphbmQgY2hlY2sgIlNob3cgRmllbGQgSURzIjwvcD4KCjxoMz5FbWFpbCBhbmQgRmxhdCBGaWxlIFRlbXBsYXRlczwvaDM+CjxwPk1hbnkgZGlzcG9zaXRpb24gdHlwZXMgYWxsb3cgeW91IHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZvciB0aGUgZW1haWwgdGhhdCBpcyBnZW5lcmF0ZWQsIG9yIGZvciB0aGUgd2F5IHRoZSByZXN1bHRzIGFyZSB3cml0dGVuIHRvIGEgZmlsZS4gSWYgeW91IG9wdCBub3QgdG8gY3JlYXRlIGEgdGVtcGxhdGUsIHRoZSBGb3JtQnVpbGRlciB3aWxsIHVzZSBpdHMgb3duIGJlc3QgZ3Vlc3MsIHdoaWNoIG1heSBvciBtYXkgbm90IHdvcmsgb3V0IHRvIHlvdXIgbGlraW5nLiBZb3UgY2FuIGFsd2F5cyBjbGljayBvbiB0aGUgIkNyZWF0ZSBTYW1wbGUgVGVtcGxhdGUiIGFuZCB0aGVuIGN1c3RvbWl6ZSB0aGUgcmVzdWx0cy48L3A+CjxwPlRvIHRoZSByaWdodCwgeW91J2xsIGZpbmQgYSBsZWdlbmQgd2hpY2ggbGlzdHMgYWxsIG9mIHRoZSB2YXJpYWJsZXMgdGhhdCBhcmUgYXZhaWxhYmxlIHRvIHlvdSB0byB1c2UgaW4geW91ciB0ZW1wbGF0ZS4gQXMgb2YgdmVyc2lvbiAwLjMsIHZhcmlhYmxlcyBoYXZlIHR3byBuYW1lcywgb25lIGJhc2VkIG9uIHRoZSBmaWVsZCBuYW1lLCB0aGUgb3RoZXIgYmFzZWQgb24gdGhlIGZpZWxkIElELiBJZiB5b3UgdXNlIGZpZWxkIG5hbWVzIHRoYXQgaGF2ZSBjaGFyYWN0ZXJzIG91dHNpZGUgb2YgdGhlIEFTQ0lJIDMyLTEyNiByYW5nZSwgaXQgd2lsbCBiZSBzYWZlciB0byB1c2UgdGhlIElELWJhc2VkIHZhcmlhYmxlcy4gQXMgb2YgdmVyc2lvbiAwLjUsIHZhcmlhYmxlcyBhbHNvIGhhdmUgYWxpYXNlcywgd2hpY2ggeW91IGNhbiB1c2UuPC9wPgo8cD48c3Ryb25nPk5vdGUgdGhhdCBvbmNlIHlvdSd2ZSBjaGFuZ2VkIGEgdGVtcGxhdGUsIGl0IHdpbGwgbm8gbG9uZ2VyIGF1dG9tYXRpY2FsbHkgYWRkIG5ldyBmaWVsZHMuPC9zdHJvbmc+IEZvciB0aGlzIHJlYXNvbiwgaXQncyB1c3VhbGx5IGJlc3QgdG8gY3JlYXRlIHlvdXIgdGVtcGxhdGVzIGFzIHRoZSBsYXN0IHN0ZXAgb2YgY3JlYXRpbmcgeW91ciBmb3JtLjwvcD4KPHA+QXMgb2YgdmVyc2lvbiAwLjIuNCwgeW91IGNhbiBvcHQgdG8gc2VuZCBhbnkgb2YgdGhlc2UgZW1haWxzIGFzIEhUTUwgZW1haWwuIFRoZXJlIHNob3VsZCBiZSBhIGNoZWNrYm94IGF0IHRoZSB0b3Agb2YgdGhlIHRlbXBsYXRlIHBhZ2UgZm9yIHRoaXMuIFRoZXJlIGlzIGFsc28gYSAiQ3JlYXRlIFNhbXBsZSBIVE1MIFRlbXBsYXRlIiBidXR0b24gb3ZlciBpbiB0aGUgbGVnZW5kIGFyZWEuIEZvciBIVE1MIGVtYWlsLCB0aGUgZW1haWwgYm9keSB3aWxsIGFsc28gcHJvdmlkZSB0aGUgZGVmYXVsdCB0ZXh0LW9ubHkgdmFsdWVzLjwvcD4KCjxoMz5Vc2Ugd2l0aCBGb3JtQnJvd3NlciB2MzwvaDM+CjxwPlRoZXJlIGFyZSBzb21lIHNwZWNpYWwgZmVhdHVyZXMgd2hlbiB1c2luZyBGb3JtQnVpbGRlciB3aXRoIEZvcm1Ccm93c2VyLiBUaGUgbmV3IGFwcHJvYWNoIHN0b3JlcyB0aGUgZm9ybSByZXN1bHRzIGluIFhNTCwgc28gdGhhdCBmYXIgZmV3ZXIKcXVlcmllcyBhcmUgbmVlZGVkIHRvIHJldHJpZXZlIHJlY29yZHMuIFRoaXMgbWVhbnMgeW91IGNhbiB1c2UgRm9ybUJyb3dzZXIgd2l0aCBodW5kcmVkcyBvciBldmVuIHRob3VzYW5kcyBvZiByZWNvcmRzLiBJdCBhbHNvIG1lYW5zIHlvdQp3aWxsIGhhdmUgdG8gY2hvb3NlIHVwIGZyb250IHdoaWNoIGZpZWxkcyB5b3Ugd2lsbCB3YW50IHRvIGJlIGFibGUgdG8gc29ydCBieS4gWW91IGNhbiBjaG9vc2UgdXAgdG8gZml2ZS4gQ2hhbmdpbmcgdGhlc2UgYWZ0ZXIgdGhlcmUgYXJlIHN1Ym1pdHRlZCByZWNvcmRzIHdpbGwgcmVzdWx0IGluIGltcHJvcGVyIHNvcnRpbmchIEEgcmUtaW5kZXggZnVuY3Rpb24gd2lsbCBiZSBhZGRlZCB0byBhIGZ1dHVyZSB2ZXJzaW9uLjwvcD4KPHA+SW4gYWR2YW5jZWQgb3B0aW9ucywgeW91IGNhbiB0aWUgYSBmb3JtIHRvIEZyb250ZW5kIFVzZXJzLiBUaGF0IG1lYW5zIGVhY2ggdXNlciBnZXRzIG9uZSByZWNvcmQgZm9yIHRoZSBmb3JtOyB0aGV5IGNhbiBjcmVhdGUgaXQKYSBzaW5nbGUgdGltZSwgc3Vic2VxdWVudCB0aW1lcyB0aGV5IHdpbGwgYmUgZWRpdGluZyB0aGVpciByZWNvcmQuIFRoZSByZWNvcmQgd2lsbCBub3QgYmUgdmlzaWJsZSB0byBhbnkgb3RoZXIgdXNlcnMgKGV4Y2x1ZGluZyBhZG1pbnMpLgpUaGlzIGZvcm0gc2hvdWxkIGJlIGFkZGVkIHRvIHlvdXIgcGFnZSB1c2luZyB0aGUgc3ludGF4IHtGb3JtQnVpbGRlciBhY3Rpb249J2ZldXNlcmZvcm0nIGZvcm09J2Zvcm1fbmFtZSd9LjwvcD4KPHA+Rm9yIGdyZWF0ZXIgZGF0YSBzYWZldHksIHlvdSBjYW4gZW5jcnlwdCB0aGUgc3RvcmVkIGZvcm1zIGluIHRoZSBkYXRhYmFzZS4gWW91IGNhbiB1c2UgdGhlIGJ1aWx0LWluIG15Y3J5cHQgbGlicmFyeSBvciB0aGUgT3BlblNTTCBtb2R1bGUuCkluIGVpdGhlciBjYXNlLCBmb3IgdGhlIHBhc3NwaHJhc2UsIHlvdSBjYW4gZWl0aGVyIGVudGVyIHRleHQgaW4gdGhlIGZpZWxkIG9yIGEgZmlsZSBuYW1lLiBJZiB5b3Ugc3BlY2lmeSBhIGZpbGUgbmFtZSwgdGhlIGNvbnRlbnRzIG9mIHRoYXQKZmlsZSB3aWxsIGJlIHVzZWQgYXMgdGhlIHBhc3NwaHJhc2UgZm9yIGVuY3J5cHRpbmcuPC9wPgo8cD5JZiB5b3UgZW5jcnlwdCwgYmUgYXdhcmUgdGhhdCB0aGUgZmllbGRzIHlvdSB1c2UgZm9yIHNvcnRpbmcgYXJlIDxzdHJvbmc+bm90PC9zdHJvbmc+IGVuY3J5cHRlZC4gWW91IGNhbiBjaG9vc2UgdG8gaGFzaCB0aGVtOyB0aGUgY2hlYXQgaGVyZQppcyB0aGF0IHRoZSBmaXJzdCBmb3VyIGxldHRlcnMgYXJlIGxlZnQgaW50YWN0IHRvIGFsbG93IGZvciBzb3J0aW5nLiBUaGUgc29ydGluZyBtYXkgbm90IGJlIHBlcmZlY3QsIGFuZCB0aGlzIHdlYWtlbnMgdGhlIHNlY3VyaXR5IHNpbmNlIGl0CmV4cG9zZXMgc29tZSBjbGVhcnRleHQsIGJ1dCBpdCBpcyBiZXR0ZXIgdGhhbiBub3RoaW5nLjwvcD4KPHA+PHN0cm9uZz5ESVNDTEFJTUVSPC9zdHJvbmc+LiBUaGUgZW5jcnlwdGlvbiBvZmZlcmVkIGhlcmUgc2hvdWxkIGJlIGNvbnNpZGVyZWQganVzdCBvbmUgbW9yZSBodXJkbGUgZm9yIGEgaGFja2VyLCBub3QgYXMgYSBndWFyYW50ZWUgdGhhdAp5b3VyIGluZm9ybWF0aW9uIHdpbGwgYmUgc2VjdXJlLiBBIHNtYXJ0IGhhY2tlciB3aG8gaGFzIGZvdW5kIHNvbWUgZXhwbG9pdCB0byB2aWV3IGRhdGFiYXNlIHJlY29yZHMgbWF5IHdlbGwgYmUgc21hcnQgZW5vdWdoIHRvIGdldCBhdAp0aGUgbW9kdWxlIHNvdXJjZSBjb2RlLCBhbmQgZmluZCB0aGVpciB3YXkgdG8gdGhlIHBhc3NwaHJhc2UuIFRoaXMgd2lsbCBub3QgcHJvdGVjdCB5b3UgYWdhaW5zdCBhbiBlbmVteSB3aG8gaGFzIGZ1bGwgYWNjZXNzIHRvIHlvdXIKc2VydmVyLCBzb21lIGZhbWlsaWFyaXR5IHdpdGggUEhQLCBhbmQgdGhlIHRpbWUgdG8gcG9rZSBhcm91bmQuIDxlbT48c3Ryb25nPkRvIG5vdDwvc3Ryb25nPiB1c2UgdGhpcyB0byBwcm90ZWN0IGhpZ2gtdmFsdWUgaW5mb3JtYXRpb24gc3VjaCBhcyBmaW5hbmNpYWwgZGF0YSwKc2Vuc2l0aXZlIHBvbGl0aWNhbCBpbmZvcm1hdGlvbiwgaHVtYW4gcmlnaHRzIGRhdGEsIG9yIGFueXRoaW5nIGVsc2UgdGhhdCBtaWdodCBiZSBvZiB2YWx1ZSB0byBhIHJlcHJlc3NpdmUgZ292ZXJubWVudCBvciBvcmdhbml6ZWQgY3JpbWUKY2FydGVsLjwvZW0+PC9wPgo8aDM+VXNpbmcgd2l0aCBVc2VyIERlZmluZWQgVGFncyAoVURUcyk8L2gzPgo8cD5TZXZlcmFsIG9wdGlvbnMgZm9yIGN1c3RvbWl6aW5nIGJlaGF2aW9yIHZpYSBVRFRzIGlzIHByb3ZpZGVkICh0aGFua3MgdG8ga2luZCBjb2RlIGNvbnRyaWJ1dGlvbnMsIHNlZSBjcmVkaXRzKS48L3A+Cgo8dWw+PGxpPkNhbGwgVXNlciBEZWZpbmVkIFRhZyBXaXRoIHRoZSBGb3JtIFJlc3VsdHMuIFRoaXMgZmllbGQgdHlwZSBzdWJtaXRzIHRoZSBodW1hbi1yZWFkYWJsZSBmb3JtIHJlc3VsdHMgdG8gdGhlIFVzZXItRGVmaW5lZApUYWcgeW91IHNwZWNpZnkuIFRoZSBVRFQgY2FuIGhhbmRsZSB0aGUgcmVzdWx0cyBob3dldmVyIGl0IHdhbnRzLiBWYWx1ZXMgYXJlIHBhc3NlZCBhcyAkcGFyYW1zWydmaWVsZF9uYW1lJ10sIGFuZAphcyAkcGFyYW1zWydmaWVsZF9hbGlhcyddIChpZiBkZWZpbmVkKS4gQXMgcGVyIGEgc3VnZ2VzdGlvbiwgaXQgYWxzbyBwb3B1bGF0ZXMgYWxsIG9mIHRoZSBTbWFydHkgdmFsdWVzIHRoYXQgd291bGQgYmUgdmlzaWJsZSB0byB0aGUgU3VibWlzc2lvbiBUZW1wbGF0ZSB0b28hPC9saT4KPGxpPlVzZXIgVGFnIEZpZWxkLiBUaGlzIGNhbGxzIHRoZSBzcGVjaWZpZWQgVURULCBhbmQgZGlzcGxheXMgYW55dGhpbmcgaXQgcmV0dXJucy4gVGhlIFVEVCBnZXRzIGNhbGxlZCBhbnkgdGltZSB0aGUgZmllbGQgd291bGQgYmUgdmlzaWJsZS48L2xpPgo8bGk+VmFsaWRhdGlvbiBVRFQuIFNldCB0aGlzIGZvciBhIGZvcm0sIGFuZCB0aGUgVURUIHdpbGwgcmVjZWl2ZSBhbGwgb2YgdGhlIGZvcm1cJ3MgaHVtYW4tcmVhZGFibGUgcmVzdWx0cy4gVGhlIFVEVCBzaG91bGQgZG8gd2hhdGV2ZXIKdmFsaWRhdGlvbiBpdCB3YW50cywgYW5kIHJldHVybiBhbiBhcnJheSB3aXRoIHRoZSBmaXJzdCB2YWx1ZSBiZWluZyB0cnVlIG9yIGZhbHNlIChpbmRpY2F0aW9uIHdoZXRoZXIgdGhlIGZvcm0gdmFsaWRhdGVzKSwgYW5kIHRoZSBzZWNvbmQKdmFsdWUgYmVpbmcgZXJyb3IgbWVzc2FnZXMgKGlmIGFueSkuPC9saT4KPGxpPlVzZXIgZGVmaW5lZCB0YWcgdG8gY2FsbCBiZWZvcmUgZm9ybSBpcyBkaXNwbGF5ZWQgdGhlIGZpcnN0IHRpbWUgKG9ubHkgY2FsbGVkIG9uY2UpLiBUaGlzCmlzIHNldCBpbiB0aGUgRm9ybSBBZG1pbiBpbiB0aGUgVURUIEludGVncmF0aW9uIHRhYi4gVGhlIFVEVCBnZXRzIGNhbGxlZCBvbiB0aGUgZmlyc3QgZGlzcGxheQpvZiB0aGUgZm9ybS48L2xpPgo8bGk+VXNlciBkZWZpbmVkIHRhZyB0byBjYWxsIGJlZm9yZSBmb3JtIGlzIGRpc3BsYXllZCAoY2FsbGVkIG9uIGV2ZXJ5IHBhZ2Ugb2YgbXVsdGlwYWdlCmZvcm1zKS4gVGhpcyBpcyBzZXQgaW4gdGhlIEZvcm0gQWRtaW4gaW4gdGhlIFVEVCBJbnRlZ3JhdGlvbiB0YWIuIFRoZSBVRFQgZ2V0cyBjYWxsZWQKZXZlcnkgdGltZSBhbnkgcGFnZSBvZiB0aGUgZm9ybSBpcyBkaXNwbGF5ZWQgKGluY2x1ZGluZyB3aGVuIHZhbGlkYXRpb24gZmFpbHMpLjwvbGk+CjwvdWw+CjxoMz5Db25maWd1cmF0aW9uPC9oMz4KPHA+VGhlcmUgYXJlIHNvbWUgZ2xvYmFsIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgRm9ybUJ1aWxkZXI6PC9wPgo8dWw+CjxsaT5FbmFibGUgZmFzdCBmaWVsZCBhZGQgcHVsbGRvd24uIFRoaXMgZW5hYmxlcyB0aGUgcHVsbGRvd24gb24gdGhlIEZvcm0gRWRpdCBwYWdlIHdoaWNoIHNhdmVzIGEgc3RlcCBpbiB0aGUgY3JlYXRpb24gb2YgbmV3IGZpZWxkcy48L2xpPgo8bGk+UnVuIGluIE1MRSBNb2RlLiBUaGlzIGNoYW5nZXMgc29tZSBxdWVyaWVzIGFnYWluc3QgdGhlIGNvbnRlbnQgdGFibGUgdG8gdHJ5IHRvIHByZXZlbnQgdWdseSBjcmFzaGVzIHVuZGVyIHRoZSBNTEUgZm9yay4gQ2hlY2tpbmcgdGhpcyB3aWxsIGNhdXNlIHVnbHkgY3Jhc2hlcyBpZiB5b3UgYXJlIE5PVCBydW5uaW5nIHRoZSBNTEUgZm9yay48L2xpPgo8bGk+SGlkZSBFcnJvcnMuIFRoaXMgaXMgbm8gbG9uZ2VyIHNldCBieSBkZWZhdWx0LiBDaGVja2luZyBpdCB3aWxsIGhpZGUgdGhlIG1vcmUgZGV0YWlsZWQgZXJyb3JzIHRoYXQgd291bGQgYmUgZGlzcGxheWVkIGlmIHRoZXJlIGFyZSBwcm9ibGVtcyB3aGVuIHlvdSBzdWJtaXQgeW91ciBmb3JtLjwvbGk+CjxsaT5SZXF1aXJlIEZpZWxkIE5hbWVzLiBUeXBpY2FsbHksIHlvdSB3aWxsIHdhbnQgZm9ybSBmaWVsZHMgdG8gYmUgbmFtZWQgc28geW91IGNhbiB0ZWxsIHdoaWNoIGlzIHdoaWNoLiBIb3dldmVyLCBpbiBzb21lIGNhc2VzLCB5b3UgbWlnaHQgd2FudCB0byBoYXZlIG5hbWVsZXNzIGZpZWxkcy4gVW5jaGVjayB0aGlzIGlmIHlvdSB3YW50IHRvIGFsbG93IG5hbWVsZXNzIGZpZWxkcy48L2xpPgo8bGk+VW5pcXVlIEZpZWxkIE5hbWVzLiBUeXBpY2FsbHksIHlvdSB3aWxsIHdhbnQgZm9ybSBmaWVsZHMgdG8gaGF2ZSB1bmlxdWUgbmFtZXMgc28geW91IGNhbiB0ZWxsIHdoaWNoIGlzIHdoaWNoLiBVbmNoZWNrIHRoaXMgaWYgeW91IHdhbnQgdG8gYWxsb3cgZmllbGRzIHRvIHNoYXJlIG5hbWVzLjwvbGk+CjxsaT5Vc2UgcmVsYXhlZCBlbWFpbCB2YWxpZGF0aW9uLiBUaGlzIHVzZXMgYSBsZXNzIHJlc3RyaWN0aXZlIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgdmFsaWRhdGluZyBlbWFpbDsgZS5nLiwgeEB5IHdpbGwgYmUgYWxsb3dlZCwgd2hlcmUgdHlwaWNhbGx5IHhAeS50bGQgaXMgcmVxdWlyZWQuPC9saT4KPGxpPlNob3cgRm9ybSBCdWlsZGVyIFZlcnNpb24uIERpc3BsYXlzIHRoZSB2ZXJzaW9uIG9mIEZvcm1CdWlsZGVyIHlvdSdyZSB1c2luZyBpbiBhIGNvbW1lbnQgd2hlbiB0aGUgZm9ybSBpcyBnZW5lcmF0ZWQuIFR5cGljYWxseSBvbmx5IHVzZWZ1bCB3aGVuIGRlYnVnZ2luZy48L2xpPgo8bGk+RW5hYmxlIHByaW1pdGl2ZSBhbnRpLXNwYW0gZmVhdHVyZXMuIFdoZW4gdHVybmVkIG9uLCB0aGlzIGFsbG93cyBhbnkgZ2l2ZW4gSVAgYWRkcmVzcyB0byBvbmx5IGdlbmVyYXRlIDEwIGVtYWlscyBwZXIgaG91ci48L2xpPgo8bGk+U2hvdyBGaWVsZCBJRHMuIFdoZW4gdHVybmVkIG9uLCBGb3JtQnVpbGRlciB3aWxsIGRpc3BsYXkgZmllbGQgaWRzIHdoZW4gYWRkaW5nIG9yIGVkaXRpbmcgYSBmb3JtLjwvbGk+CjwvdWw+CjxoMz5TdHlsaW5nIGFuZCBDU1M8L2gzPgo8cD5BZnRlciBhIGJpdCBvZiBuYWdnaW5nIG9uIHRoZSBwYXJ0IG9mIHBlb3BsZSB3aG8gYWN0dWFsbHkgcmVzcGVjdCBzdGFuZGFyZHMsIEZvcm1CdWlsZGVyIG5vIGxvbmdlciBlbmNvdXJhZ2VzIHRyaWNrcyBsaWtlIGVtYmVkZGluZyBDU1MgaW4gCnN0YXRpYyB0ZXh0IGZpZWxkcy4gSW5zdGVhZCwgaXQgY3JlYXRlcyBhIHN0eWxlc2hlZXQgY2FsbGVkICJGb3JtQnVpbGRlciBEZWZhdWx0IiB0aGF0IHlvdSBhcmUgZW5jb3VyYWdlZCB0byBhdHRhY2ggdG8gdGhlIHBhZ2UgdGVtcGxhdGUKdGhhdCB5b3UgdXNlIGZvciBwYWdlcyB0aGF0IGNvbnRhaW4geW91ciBmb3JtLjwvcD4gIAo8cD5UaGlzIGRlZmF1bHQgQ1NTIHdhcyBncmFjaW91c2x5IHByb3ZpZGVkIGJ5IFBhdWwgTm9vbmUuPC9wPgoKCjxoMz5Gb3JtIFRlbXBsYXRlIFZhcmlhYmxlczwvaDM+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+aGVscHRleHQ8L3RkPjx0ZD50aGUgZmllbGQncyBoZWxwIHRleHQ8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmlucHV0PC90ZD48dGQ+dGhlIGZpZWxkJ3MgaW5wdXQgY29udHJvbCAoZS5nLiwgdGhlIGlucHV0IGZpZWxkIGl0c2VsZik8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPm9wPC90ZD48dGQ+YSBjb250cm9sIGJ1dHRvbiBhc3NvY2lhdGVkIHdpdGggdGhlIGZpZWxkIGlmIGFwcGxpY2FibGUgKGUuZy4sIHRoZSBkZWxldGUgYnV0dG9uIGZvciBleHBhbmRhYmxlIHRleHQgaW5wdXQpPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5pbnB1dF9pZDwvdGQ+PHRkPnRoZSBJRCBvZiB0aGUgZmllbGQncyBpbnB1dCAodXNlZnVsIGZvciBsYWJlbCBmb3I9ImZvbyIpPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5hbGlhczwvdGQ+PHRkPnRoZSBhbGlhcyBzcGVjaWZpZWQgZm9yIHRoaXMgZmllbGQ8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmlkPC90ZD48dGQ+dGhlIGludGVybmFsIC8gb3BhcXVlIGlkIEZvcm1CdWlsZGVyIHVzZXMgZm9yIHRoaXMgZmllbGQ8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPnR5cGU8L3RkPjx0ZD50aGUgZmllbGQncyBkYXRhIHR5cGU8L3RkPjwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCjx0cj48dGQ+ZmllbGQtPm11bHRpcGxlX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQtPmlucHV0IGlzIGFjdHVhbGx5IGEgY29sbGVjdGlvbiBvZiBjb250cm9sczwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+bGFiZWxfcGFydHM8L3RkPjx0ZD4xIGlmIHRoZSBjb2xsZWN0aW9uIG9mIGNvbnRyb2xzIGhhcyBzZXBhcmF0ZSBsYWJlbHMgZm9yIGVhY2ggY29udHJvbDwvdGQ+PC90cj4KPC90YWJsZT4KCjxwPkluIHRoZSBjYXNlIG9mIGEgbXVsdGlwYWdlIGZvcm0sIHlvdSB3aWxsIGFsc28gaGF2ZSBhY2Nlc3MgdG8gdGhlIHZhbHVlIG9mIHByZXZpb3VzIGZpZWxkcy4gVGhleQphcmUgaW4gdGhlICRwcmV2aW91cyBhcnJheSwgb3IgYWNjZXNzaWJsZSBieSB0aGVpciBuYW1lcyAoZS5nLiwgJiMxMjM7JG15ZmllbGQtPnZhbHVlfSApLgpZb3UgY2FuIHVzZSB0aGlzIGluIFN0YXRpYyBUZXh0IGZpZWxkcyBhcyB3ZWxsLCB3aGljaCBpcyBhIG5pY2Ugd2F5IHRvIHBlcnNvbmFsaXplIGZvcm1zITwvcD4KCjxwPkluIGNlcnRhaW4gY2FzZXMsIGZpZWxkLT5pbnB1dCBpcyBhY3R1YWxseSBhbiBhcnJheSBvZiBvYmplY3RzIHJhdGhlciB0aGFuIGFuIGlucHV0LiBUaGlzIGhhcHBlbnMsIGZvciBleGFtcGxlLCBpbiBDaGVja0JveEdyb3VwcyBvciBSYWRpb0J1dHRvbkdyb3Vwcy4gRm9yIHRoZW0sIHlvdSBjYW4gaXRlcmF0ZSB0aHJvdWdoIGZpZWxkLT5pbnB1dC0+bmFtZSBhbmQgZmllbGQtPmlucHV0LT5pbnB1dHMuPC9wPgogICAgCjxwPkFkZGl0aW9uYWwgc21hcnR5IHZhcmlhYmxlcyB0aGF0IHlvdSBjYW4gdXNlIGluY2x1ZGU6PC9wPgo8dGFibGU+Cjx0cj48dGg+VmFyaWFibGU8L3RoPjx0aD5WYWx1ZTwvdGg+PC90cj4KPHRyPjx0ZD50b3RhbF9wYWdlczwvdGQ+PHRkPm51bWJlciBvZiBwYWdlcyBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4KPHRyPjx0ZD50aGlzX3BhZ2U8L3RkPjx0ZD5udW1iZXIgZm8gdGhlIGN1cnJlbnQgcGFnZSBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4KPHRyPjx0ZD50aXRsZV9wYWdlX3hfb2ZfeTwvdGQ+PHRkPmRpc3BsYXlzICJwYWdlIHggb2YgeSIgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+Cjx0cj48dGQ+Y3NzX2NsYXNzPC90ZD48dGQ+Q1NTIENsYXNzIGZvciB0aGUgZm9ybTwvdGQ+PC90cj4KPHRyPjx0ZD5mb3JtX25hbWU8L3RkPjx0ZD5Gb3JtIG5hbWU8L3RkPjwvdHI+Cjx0cj48dGQ+Zm9ybV9pZDwvdGQ+PHRkPkZvcm0gZGF0YWJhc2UgSUQ8L3RkPjwvdHI+Cjx0cj48dGQ+aW5fZm9ybWJyb3dzZXI8L3RkPjx0ZD4xIGlmIGZvcm0gaXMgYmVpbmcgdmlld2VkIGZyb20gRm9ybUJyb3dzZXI8L3RkPjwvdHI+Cjx0cj48dGQ+aW5fYWRtaW48L3RkPjx0ZD4xIGlmIGZvcm0gaXMgYmVpbmcgdmlld2VkIHZpYSBGb3JtQnJvd3NlciBhZG1pbjwvdGQ+PC90cj4KPHRyPjx0ZD5mYnJfaWQ8L3RkPjx0ZD5SZXNwb25zZSBJRCBpZiBmb3JtIGlzIGJlaW5nIHZpZXdlZCBmcm9tIEZvcm1Ccm93c2VyPC90ZD48L3RyPgo8dHI+PHRkPnByZXY8L3RkPjx0ZD4iQmFjayIgYnV0dG9uIGZvciBtdWx0aXBhcnQgZm9ybXM8L3RkPjwvdHI+Cjx0cj48dGQ+c3VibWl0PC90ZD48dGQ+IkNvbnRpbnVlIiBvciAiU3VibWl0IiBidXR0b24gZm9yIG11bHRpcGFydCBmb3JtcywgYWRqdXN0cyBhdXRvbWF0aWNhbGx5PC90ZD48L3RyPgo8L3RhYmxlPgo8cD5EdW5ubyB3aHkgeW91J2Qgd2FudCBzb21lIG9mIHRob3NlLCBidXQgdGhlcmUgeW91IGdvLi4uPC9wPgoKPGgzPkNyZWRpdHM8L2gzPgo8cD5NYW55IHBlb3BsZSBoYXZlIGNvbnRyaWJ1dGVkIGNvZGUsIGJ1ZyByZXBvcnRzLCBjYXNoLCBhbmQgaWRlYXMgdG8gRm9ybUJ1aWxkZXIuIEFtb25nIHRoZW0gKGFscGhhYmV0aWNhbGx5KToKPHVsPgo8bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5icHRpLmV1Ij5CYWx0aWMgaW5zdGl0dXRlIG9mIGFkdmFuY2VkIHRlY2hub2xvZ3k8L2E+IC0gY29kZSwgZnVuZGluZyA8L2xpPgo8bGk+SmVyZW15IEJhc3MgLSBjb2RlIGFuZCBzdWdnZXN0aW9uczwvbGk+CjxsaT5BbGJlcnRvIEJlbmF0aSAtIGNvZGU8L2xpPgo8bGk+VHlsZXIgQm9lc3BmbHVnIC0gZnVuZGluZyBhbmQgaWRlYXM8L2xpPgo8bGk+SmVmZiBCb3NjaCAtIFVEVCBWYWxpZGF0aW9uPC9saT4KPGxpPlJvYmVydCBDYW1wYmVsbCAtIG51bWVyb3VzIGNvZGUgY29udHJpYnV0aW9uczwvbGk+CjxsaT5QaW90cmFzIENpbW1wZXJtYW4gLSBjb2RlPC9saT4KPGxpPk51bm8gQ29zdGEgLSBzdWdnZXN0aW9uczwvbGk+CjxsaT5SeWFuIEZvc3RlciAtIGNvZGU8L2xpPgo8bGk+TWFyYyBHZWxkb24gLSBjb2RlPC9saT4KPGxpPktldmluIEdyYW5kb24gLSBjb2RlPC9saT4KPGxpPlJvbm55IEtyaWp0IC0gY29kZTwvbGk+CjxsaT5QYXVsIE5vb25lIC0gQ1NTIGFuZCBpZGVhczwvbGk+CjxsaT5Nb3J0ZW4gUG91bHNlbiAtIGNvZGU8L2xpPgo8bGk+UHJ1ZSBSb3dsYW5kIC0gYnVnIGZpeGVzPC9saT4KPGxpPlNpbW9uIFNjaGF1ZmVsYmVyZ2VyIC0gY29kZTwvbGk+CjwvdWw+CjxwPkkgYXBvbG9naXplIGZvciBhbnkgb21pc3Npb25zIC0gbm90aWZ5IG1lLCBhbmQgSSdsbCBjb3JyZWN0IHRoZSBvbWlzc2lvbiE8L3A+CjxoMz5NaXNjZWxsYW5lb3VzIE5vdGVzPC9oMz4KPHVsPgo8bGk+QW55IGZpZWxkcyB0aGF0IHNlbmRzIGVtYWlsIHRvIGEgc3BlY2lmaWVkIGVtYWlsIGFkZHJlc3Mgd2lsbCBhbHNvIGFjY2VwdCBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIGVtYWlsIGFkZHJlc3Nlcy48L2xpPgo8L3VsPgo8aDM+S25vd24gSXNzdWVzPC9oMz4KPHVsPgo8bGk+Rm9ybUJ1aWxkZXIgZG9lcyBub3QgeWV0IHN1cHBvcnQgcHJldHR5IFVSTHMsIGFsdGhvdWdoIHRoYXQgc2hvdWxkbid0IG1hdHRlciBzaW5jZSB0aGUgdXNlciBzaWRlIGlzIHByZXR0eSBzaW1wbGUuPC9saT4KPGxpPkZpbGVVcGxvYWQgRmllbGRzIG1heSBub3Qgd29yayBjb3JyZWN0bHkgd2l0aCBtdWx0aXBhZ2UgZm9ybXMuPC9saT4KPC91bD4KCjxoMz5Ucm91Ymxlc2hvb3Rpbmc8L2gzPgo8b2w+CjxsaT5Gb3JtQnVpbGRlci9Gb3JtQnJvd3NlciA8c3Ryb25nPnJlcXVpcmVzPC9zdHJvbmc+IFBIUCA1IG9yIGxhdGVyIHRvIGZ1bmN0aW9uIGNvcnJlY3RseS48L2xpPgo8bGk+Rmlyc3Qgc3RlcCBpcyB0byBjaGVjayB5b3UncmUgcnVubmluZyBDTVMgMS42IG9yIGxhdGVyLjwvbGk+CjxsaT5TZWNvbmQgc3RlcCBpcyB0byByZWFkIGFuZCB1bmRlcnN0YW5kIHRoZSBjYXZlYXQgYWJvdXQgV1lTSVdZRyBlZGl0b3JzIHVwIGluIHRoZQpzZWN0aW9uIDxlbT5BZGRpbmcgYSBGb3JtIHRvIGEgUGFnZTwvZW0+LjwvbGk+CjxsaT4gSWYgeW91J3JlIG1pc3NpbmcgZmllbGRzIGluIGFuIGVtYWlsIHRoYXQgZ2V0cyBnZW5lcmF0ZWQsIGNoZWNrIHRoZSBkaXNwb3NpdGlvbiBmaWVsZCdzIHRlbXBsYXRlLCBhbmQgbWFrZSBzdXJlIHlvdSdyZSBzcGVjaWZ5aW5nIHRoZSBtaXNzaW5nIGZpZWxkcy4gU2VlbXMgb2J2aW91cywgYnV0IGl0J3MgYW4gZWFzeSBtaXN0YWtlIHRvIG1ha2UuPC9saT4KPGxpPlVuY2hlY2sgdGhlICJIaWRlIEVycm9ycyIgY2hlY2tib3ggaW4gdGhlIGdsb2JhbCBvcHRpb25zLCBhbmQgc2VlIHdoYXQgbWVzc2FnZSBnZXRzIGRpc3BsYXllZCB3aGVuIHlvdSBzdWJtaXQgeW91ciBmb3JtLjwvbGk+CjxsaT4gSnVzdCBtZXNzIGFyb3VuZCBhbmQgdHJ5IGNsaWNraW5nIG9uIGxpbmtzIGFuZCBpY29ucyBhbmQgc3R1ZmYuIFNlZSB3aGF0IGhhcHBlbnMuPC9saT4KPGxpPiBNYWtlIHN1cmUgeW91IGNhbiBzdWNjZXNzZnVsbHkgc2VuZCBlbWFpbCB2aWEgdGhlIHRlc3QgaW4gdGhlIENNU01haWxlciBNb2R1bGUuIEl0J3Mgc2ltcGx5IGFtYXppbmcgaG93IG1hbnkgcHJvYmxlbXMgYm9pbCBkb3duIHRvIGEgbWlzY29uZmlndXJlZCBDTVNNYWlsZXIuPC9saT4KPGxpPiBMYXN0IHJlc3BvcnQgaXMgdG8gZW1haWwgbWUgb3IgY2F0Y2ggbWUgb24gSVJDIGFuZCB3ZSBjYW4gZ28gZnJvbSB0aGVyZS48L2xpPgo8L29sPiAKPHA+VGhpcyBpcyBubyBsb25nZXIgYSBwYXJ0aWN1bGFybHkgZWFybHkgdmVyc2lvbiwgYnV0IGl0IGlzIHByb2JhYmx5IHN0aWxsIGJ1Z2d5LiBXaGlsZSBJJ3ZlIGRvbmUgYWxsIEkgY2FuCnRvIG1ha2Ugc3VyZSBubyBlZ3JlZ2lvdXMgYnVncyBoYXZlIGNyZXB0IGluLCBJIGhhdmUgdG8gYWRtaXQgdGhhdCBkdXJpbmcgZWFybHkgdGVzdGluZywgdGhpcyBwcm9ncmFtCnJldmVhbGVkIHNldmVuIGNvY2tyb2FjaGVzLCB0d28gZWFyd2lncywgYSBzbWFsbCBmYW1pbHkgb2YgYXBoaWRzLCBhbmQgYSB3YWxraW5nLXN0aWNrIGluc2VjdC4gSXQgYWxzbwphdGUgdGhlIG5laWdoYm9yJ3MgbmFzdHkgbGl0dGxlIHlhcCBkb2csIGZvciB3aGljaCBJIHdhcyBpbmFwcHJvcHJpYXRlbHkgZ3JhdGVmdWwuPC9wPgo8cD5UaGUgZmluYWwgcmVsZWFzZSB3aWxsIGluY2x1ZGUgYnVnIGZpeGVzLCBkb2N1bWVudGF0aW9uLCBhbmQgdW5jb25kaXRpb25hbCBsb3ZlLjwvcD4KPGgzPlN1cHBvcnQ8L2gzPgo8cD5UaGlzIG1vZHVsZSBkb2VzIG5vdCBpbmNsdWRlIGNvbW1lcmNpYWwgc3VwcG9ydC4gSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+Cjx1bD4KPGxpPkZvciB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBtb2R1bGUsIEZBUXMsIG9yIHRvIGZpbGUgYSBCdWcgUmVwb3J0LCBwbGVhc2UgdmlzaXQgdGhlIENNUyBNYWRlIFNpbXBsZSAgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZyI+RGV2ZWxvcGVyIEZvcmdlPC9hPi48L2xpPgo8bGk+VG8gb2J0YWluIGNvbW1lcmNpYWwgc3VwcG9ydCwgcGxlYXNlIHNlbmQgYW4gZW1haWwgdG8gdGhlIGF1dGhvciBhdCA8YSBocmVmPSJtYWlsdG86c2pnQGNtc21vZHVsZXMuY29tIj4mbHQ7c2pnQGNtc21vZHVsZXMuY29tJmd0OzwvYT4uPC9saT4KPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnIj5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi48L2xpPgo8bGk+VGhlIGF1dGhvciBjYW4gb2Z0ZW4gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9ImlyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2NtcyI+Q01TIElSQyBDaGFubmVsPC9hPi48L2xpPgo8bGk+TGFzdGx5LCB5b3UgbWF5IGhhdmUgc29tZSBzdWNjZXNzIGVtYWlsaW5nIHRoZSBhdXRob3IgZGlyZWN0bHkgYW5kIGdyb3ZlbGxpbmcgZm9yIGZyZWUgc3VwcG9ydC48L2xpPgo8bGk+RG9uYXRpb25zIGFyZSBnb29kIG1vdGl2YXRvcnMsIHRvby4gS2VlcCBpbiBtaW5kIHRoYXQgdGhlIGRvbGxhciBpcyB3ZWFrLCBhbmQgaWYgeW91IGFyZSBub3QgaW4gdGhlIFVTLCB5b3VyIGRvbmF0aW9uIGdldHMgbWFnbmlmaWVkLjwvbGk+CjwvdWw+CjxwPktlZXAgaW4gbWluZCB0aGF0IHRoZSBhdXRob3IgaGFzIHB1dCA8ZW0+aHVuZHJlZHMgYW5kIGh1bmRyZWRzIG9mIGhvdXJzPC9lbT4gaW50byB0aGUgZGV2ZWxvcG1lbnQgb2YgdGhpcyBtb2R1bGUuClBsZWFzZSB0YWtlIHRoZSB0aW1lIHRvIHJlYWQgdGhlIGRvY3VtZW50YXRpb24gYmVmb3JlIHNlbmRpbmcgcXVlc3Rpb25zLiBFaXRoZXIgdGhhdCwgb3Igc2VuZCB5b3VyIHF1ZXN0aW9ucyB3cml0dGVuIG9uCmZpbmFuY2lhbGx5IG5lZ290aWFibGUgaW5zdHJ1bWVudHMgKGkuZS4sIGNoZWNrcyBvciBjYXNoKS4gQW0gSSBzb3VuZGluZyBsaWtlIGEgYnJva2VuIHJlY29yZD8gRG8geW91IGtpZHMgdGhlc2UgZGF5cwpldmVuIGtub3cgd2hhdCBhIGJyb2tlbiByZWNvcmQgaXM/IEkgd291bGQgc2F5IHNraXBwaW5nIENELCBidXQgeW91IG1pZ2h0IG5vdCBrbm93IHdoYXQgdGhhdCBpcyBlaXRoZXIuIExpa2UgYQpzYW1wbGUgdGhhdCBnb3Qgc3R1Y2sgb24gbG9vcD8gRGFtbiwgSSBhbSBnZXR0aW5nIG9sZC4gU28gaXMgdGhpcyBwYXJhZ3JhcGguIFRpbWUgdG8gbW92ZSBvbiwgaGVyZS48L3A+PGZvcm0gYWN0aW9uPSJodHRwczovL3d3dy5wYXlwYWwuY29tL2NnaS1iaW4vd2Vic2NyIiBtZXRob2Q9InBvc3QiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjbWQiIHZhbHVlPSJfcy14Y2xpY2siPgo8aW5wdXQgdHlwZT0iaW1hZ2UiIHNyYz0iaHR0cHM6Ly93d3cucGF5cGFsLmNvbS9lbl9VUy9pL2J0bi9idG5fZG9uYXRlQ0NfTEcuZ2lmIiBib3JkZXI9IjAiIG5hbWU9InN1Ym1pdCIgYWx0PSJQYXlQYWwgLSBUaGUgc2FmZXIsIGVhc2llciB3YXkgdG8gcGF5IG9ubGluZSEiPgo8aW1nIGFsdD0iIiBib3JkZXI9IjAiIHNyYz0iaHR0cHM6Ly93d3cucGF5cGFsLmNvbS9lbl9VUy9pL3Njci9waXhlbC5naWYiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJlbmNyeXB0ZWQiIHZhbHVlPSItLS0tLUJFR0lOIFBLQ1M3LS0tLS1NSUlIVHdZSktvWklodmNOQVFjRW9JSUhRRENDQnp3Q0FRRXhnZ0V3TUlJQkxBSUJBRENCbERDQmpqRUxNQWtHQTFVRUJoTUNWVk14Q3pBSkJnTlZCQWdUQWtOQk1SWXdGQVlEVlFRSEV3MU5iM1Z1ZEdGcGJpQldhV1YzTVJRd0VnWURWUVFLRXd0UVlYbFFZV3dnU1c1akxqRVRNQkVHQTFVRUN4UUtiR2wyWlY5alpYSjBjekVSTUE4R0ExVUVBeFFJYkdsMlpWOWhjR2t4SERBYUJna3Foa2lHOXcwQkNRRVdEWEpsUUhCaGVYQmhiQzVqYjIwQ0FRQXdEUVlKS29aSWh2Y05BUUVCQlFBRWdZQUlObkJXYi9YTTRsbXZMR0hsOVJkMWN2TDV0cnFSaGM3K0ZvR0g1THRvZlFpVnJnRlN2aDdoMW9qZzVTelR4Ymd0aTMyWkYwL3VjdXEvT1FTRCtWenV1QUYxdjZ3VnJ0eU9lQ1BFQXc4ajgxREpPWFZqSkhzSVkybXZpb3JQam9sTFFrRm52MTJ5UlRwdUZXRm40WlhlNSt2bkNqWHFCeTBFRS9haHpFTU1uekVMTUFrR0JTc09Bd0lhQlFBd2djd0dDU3FHU0liM0RRRUhBVEFVQmdncWhraUc5dzBEQndRSWNLTk53T1BGb3d1QWdhaXZTN3YwajJYRnlROWRyOG5pOUc5NWVFN1lxb2dHbEs5d3VTcGxsT2c5bG5ydXZuRVFxc21SbVFudGhRcVdDVGJaekcyK0lFdGVNNElVc3hFdUdUcnc4cFpDVTI0VE5EY2tuS1V4OVV6M3ZTeE9oM2d1OTV5SnlEd29lTXZhRUEyNGJzMTRRRWJKYmhOalk2V3hIejkraS9sVkFEQmp5QU9EWU11emFsRGt2ZHV2d2VHTlprOWxZTFJSQ29QUE5pbEcxUGY2dzg3Qkhwa1NNOFdRMUxDOStSV2RYZlpjbStlZ2dnT0hNSUlEZ3pDQ0F1eWdBd0lCQWdJQkFEQU5CZ2txaGtpRzl3MEJBUVVGQURDQmpqRUxNQWtHQTFVRUJoTUNWVk14Q3pBSkJnTlZCQWdUQWtOQk1SWXdGQVlEVlFRSEV3MU5iM1Z1ZEdGcGJpQldhV1YzTVJRd0VnWURWUVFLRXd0UVlYbFFZV3dnU1c1akxqRVRNQkVHQTFVRUN4UUtiR2wyWlY5alpYSjBjekVSTUE4R0ExVUVBeFFJYkdsMlpWOWhjR2t4SERBYUJna3Foa2lHOXcwQkNRRVdEWEpsUUhCaGVYQmhiQzVqYjIwd0hoY05NRFF3TWpFek1UQXhNekUxV2hjTk16VXdNakV6TVRBeE16RTFXakNCampFTE1Ba0dBMVVFQmhNQ1ZWTXhDekFKQmdOVkJBZ1RBa05CTVJZd0ZBWURWUVFIRXcxTmIzVnVkR0ZwYmlCV2FXVjNNUlF3RWdZRFZRUUtFd3RRWVhsUVlXd2dTVzVqTGpFVE1CRUdBMVVFQ3hRS2JHbDJaVjlqWlhKMGN6RVJNQThHQTFVRUF4UUliR2wyWlY5aGNHa3hIREFhQmdrcWhraUc5dzBCQ1FFV0RYSmxRSEJoZVhCaGJDNWpiMjB3Z1o4d0RRWUpLb1pJaHZjTkFRRUJCUUFEZ1kwQU1JR0pBb0dCQU1GSFR0MzhSTXhMWEp5TzJTbVMrTmRsNzJUN29LSjR1NHV3KzZhd250QUxXaDAzUGV3bUlKdXpiQUxTY3NUUzRzWm9TMWZLY2lCR29oMTFnSWZIenlsdmtkTmUvaEpsNjYvUkdxcmo1ckZiMDhzQUFCTlR6RFRpcXFOcEplQnNZcy9jMmFpR296cHRYMlJsbkJrdEgrU1VOcEFhalc3MjROdjJXdmhpZjZzRkFnTUJBQUdqZ2U0d2dlc3dIUVlEVlIwT0JCWUVGSmFmZkx2R2J4ZTlXVDlTMXdvYjdCRFdaSlJyTUlHN0JnTlZIU01FZ2JNd2diQ0FGSmFmZkx2R2J4ZTlXVDlTMXdvYjdCRFdaSlJyb1lHVXBJR1JNSUdPTVFzd0NRWURWUVFHRXdKVlV6RUxNQWtHQTFVRUNCTUNRMEV4RmpBVUJnTlZCQWNURFUxdmRXNTBZV2x1SUZacFpYY3hGREFTQmdOVkJBb1RDMUJoZVZCaGJDQkpibU11TVJNd0VRWURWUVFMRkFwc2FYWmxYMk5sY25Sek1SRXdEd1lEVlFRREZBaHNhWFpsWDJGd2FURWNNQm9HQ1NxR1NJYjNEUUVKQVJZTmNtVkFjR0Y1Y0dGc0xtTnZiWUlCQURBTUJnTlZIUk1FQlRBREFRSC9NQTBHQ1NxR1NJYjNEUUVCQlFVQUE0R0JBSUZmT2xhYWdGcmw3MStqcTZPS2lkYldGU0UrUTRGcVJPdmRnSU9OdGgrOGtTSy8vWS80aWh1RTRZbXZ6bjVjZUUzUy9pQlNRUU1qeXZiK3MyVFdiUVlEd2NwMTI5T1BJYkQ5ZXBkcjR0Sk9VTmlTb2p3N0JId1lSaVBoNThTMXhHbEZnSEZYd3JFQmIzZGdOYk1VYSt1NHFlY3RzTUFYcFZIbkQ5d0l5Zm1ITVlJQm1qQ0NBWllDQVFFd2daUXdnWTR4Q3pBSkJnTlZCQVlUQWxWVE1Rc3dDUVlEVlFRSUV3SkRRVEVXTUJRR0ExVUVCeE1OVFc5MWJuUmhhVzRnVm1sbGR6RVVNQklHQTFVRUNoTUxVR0Y1VUdGc0lFbHVZeTR4RXpBUkJnTlZCQXNVQ214cGRtVmZZMlZ5ZEhNeEVUQVBCZ05WQkFNVUNHeHBkbVZmWVhCcE1Sd3dHZ1lKS29aSWh2Y05BUWtCRmcxeVpVQndZWGx3WVd3dVkyOXRBZ0VBTUFrR0JTc09Bd0lhQlFDZ1hUQVlCZ2txaGtpRzl3MEJDUU14Q3dZSktvWklodmNOQVFjQk1Cd0dDU3FHU0liM0RRRUpCVEVQRncwd09EQTNNREV3TXpVNU16bGFNQ01HQ1NxR1NJYjNEUUVKQkRFV0JCUU0wTFYzMGZMWGNIOU01ZE1tdVRCTG5zRlE0akFOQmdrcWhraUc5dzBCQVFFRkFBU0JnQkV6MlhxTU1xRmJ1VWhqK0wxMjhDdzJ1OFNoT0tRdHRyS3IvaGkwV1JlZW5IRFlCaUhPU3RsNjNSdjc2UTJtcGQ0NTNSdkNqNW1xN2RSdHVSQjZwZkhHUkRrVVg2TjErT09Jb0lmcm9CWklBVE5oejlDRUh3RUZrTmpZZzBFR01BRytqY2JBajFESmpSNzNjeGJhTnJYV1B4QStoaVFoSGxBcnJaQTdyRlY1LS0tLS1FTkQgUEtDUzctLS0tLQoiPgo8L2Zvcm0+PHA+QXMgcGVyIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgYXMtaXMuIFBsZWFzZSByZWFkIHRoZSB0ZXh0Cm9mIHRoZSBsaWNlbnNlIGZvciB0aGUgZnVsbCBkaXNjbGFpbWVyLjwvcD4KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+CjxwPkNvcHlyaWdodCAmY29weTsgMjAwOSwgU2FtdWVsIEdvbGRzdGVpbiA8YSBocmVmPSJtYWlsdG86c2pnQGNtc21vZHVsZXMuY29tIj4mbHQ7c2pnQGNtc21vZHVsZXMuY29tJmd0OzwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4KPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCI+R05VIFB1YmxpYyBMaWNlbnNlPC9hPi4gWW91IG11c3QgYWdyZWUgdG8gdGhpcyBsaWNlbnNlIGJlZm9yZSB1c2luZyB0aGUgbW9kdWxlLjwvcD48aDM+RGVwZW5kZW5jaWVzPC9oMz48dWw+PGxpPkNNU01haWxlciA9Jmd0OyAxLjczPC9saT48L3VsPjxoMz5QYXJhbWV0ZXJzPC9oMz48dWw+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gbGFuZz0iZW5fVVMiIC0gUGFyYW1ldGVyIGlzIHVzZWQgdG8gc3BlY2lmeSB3aGF0IGxhbmd1YWdlIHRvIHVzZSBmb3IgZGlzcGxheSBvbiB0aGUgZnJvbnRlbmQuIE5vdCBhbGwgbW9kdWxlcyBzdXBwb3J0IG9yIG5lZWQgdGhpcy48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGZicnBfKj0ibnVsbCIgLSBHZW5lcmFsIHBhcmFtZXRlcnMgZm9yIGludGVybmFsIG9wZXJhdGlvbnM8L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGZvcm1faWQ9Im51bGwiIC0gRm9ybSBJRCBmb3IgaW50ZXJuYWwgb3BlcmF0aW9uczwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZm9ybT0ibnVsbCIgLSBGb3JtIE5hbWU8L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGZpZWxkX2lkPSJudWxsIiAtIEZpZWxkIElEIGZvciBpbnRlcm5hbCBvcGVyYXRpb25zPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiB2YWx1ZV8qPSJudWxsIiAtIERlZmF1bHQgZmllbGQgdmFsdWVzOyBzZWUgbW9kdWxlIGhlbHA8L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IHJlc3BvbnNlX2lkPSJudWxsIiAtIFJlc3BvbnNlIElELiBVc2VkIGJ5IEZvcm1Ccm93c2VyPC9saT48L3VsPg==]]></help>
	<about><![CDATA[PGJyIC8+QXV0aG9yOiBTakcgJmx0O3NqZ0BjbXNtb2R1bGVzLmNvbSZndDs8YnIgLz48YnIgLz5WZXJzaW9uOiAwLjYuMzxiciAvPjxiciAvPkNoYW5nZSBIaXN0b3J5OjxiciAvPjx1bD4KPGxpPlZlcnNpb24gMC42LjMuCgk8dWw+CgkJPGxpPlNlY3VyaXR5IHBhdGNoIGZvciBVcGxvYWQgZmllbGQgdHlwZS48L2xpPgoJCTxsaT5OdW1lcm91cyBidWdzIGZpeGVzLiBUaGFua3MgdG8gZXZlcnlvbmUgd2hvIHJlcG9ydGVkLjwvbGk+CgkJPGxpPk51bWVyb3VzIGZpeGVzIGFuZCBpbXByb3ZlbWVudHMgZm9yIHVzZSB3aXRoIEZvcm1Ccm93c2VyIHYwLjMueC48L2xpPgoJCTxsaT5JbXByb3ZlbWVudHMgdG8gdGhlIENvbXB1dGVkRmllbGQgdHlwZSB0byBhbGxvdyBtdWNoIG1vcmUgY29tcHV0YXRpb24uPC9saT4KCQk8bGk+Vmlsa2lzJyBmaXhlcyBmb3IgbG9jYWxpemluZyBDb3VudHJ5UGlja2VyPC9saT4KCQk8bGk+UnlhbiBGb3N0ZXIncyBwYXRjaCBmb3IgcmUtb3JkZXJpbmcgZGF0ZSBpbnB1dHMgb24gRGF0ZVBpY2tlcjwvbGk+Cgk8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAwLjYuMi4KCTx1bD4KCQk8bGk+QSBsb3Qgb2Ygc21hbGwgYW5kIGJpZyBidWdzIGZpeGVzLiBUaGFua3MgdG8gZXZlcnlvbmUgd2hvIHJlcG9ydGVkLjwvbGk+CgkJPGxpPkludHJvZHVjaW5nIGR5bmFtaWMgZmllbGQgbWFuYWdlbWVudC48L2xpPgoJCTxsaT5OZXcgIlllYXJQdWxsRG93biIgZmllbGQgdHlwZSBhZGRlZDwvbGk+CgkJPGxpPkNvbXBhdGlibGUgd2l0aCBDTVNNUyAxLjcuMSBhbmQgZnVydGhlci48L2xpPgoJCTxsaT5BZGRlZCBqUXVlcnkuIFByb3RvdHlwZSByZW1vdmVkIGNvbXBsZXRlbHkuPC9saT4KCQk8bGk+QWRkZWQgc29tZSBzdHlsaW5nLjwvbGk+Cgk8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAwLjYuMS4KCTx1bD4KCQk8bGk+TnVtZXJvdXMgQnVnIGZpeGVzLiBJZiB5b3VyIGJ1ZyBpc24ndCBmaXhlZCwgcG9zdCBpdCBpbiB0aGUgdHJhY2tlciE8L2xpPgoJCTxsaT5OZXcgVmFsaWRhdGlvbiBVRFQgY29kZSBwcm92aWRlZCBieSBKZWZmIEJvc2NoPC9saT4KCQk8bGk+QWJpbGl0eSB0byByZWplY3QgYmxhbmsvb25seSBzcGFjZXMgZm9yIHJlcXVpcmVkIGZpZWxkczwvbGk+CgkJPGxpPk5ldyAiQ29tcGFueURpcmVjdG9yeSIiIEZpZWxkIHR5cGUgcHJvdmlkZWQgYnkgSmVyZW15IEJhc3M8L2xpPgoJCTxsaT5JbXByb3ZlbWVudHMgdG8gZGVmYXVsdCB2YWx1ZSBjb2RlIHByb3ZpZGVkIGJ5IEplcmVteSBCYXNzPC9saT4KCQk8bGk+TmV3ICJNb2R1bGUgSW50ZXJmYWNlIiBmaWVsZCB0eXBlIHByb3ZpZGVkIGJ5IEplcmVteSBCYXNzPC9saT4KCQk8bGk+TmV3ICJVc2VyIERlZmluZWQgVGFnIENhbGwiIGZpZWxkIHR5cGU8L2xpPgoJCTxsaT5GaXggdG8gc3VwcG9ydCBzeW50YXggaGlnaGxpZ2h0ZXJzIGZvciB0ZW1wbGF0ZXMgYW5kIEphdmFzY3JpcHQgb24gYWRtaW4gc2lkZTwvbGk+CgkJPGxpPjwvbGk+Cgk8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAwLjYuIDMwIERlYyAwOS4gQnVnIGZpeGVzLiBGaW5hbGx5IHJlbGVhc2luZyB0aGlzIHRoaW5nITwvbGk+CjxsaT5WZXJzaW9uIDAuNmIyLgogICA8dWw+CiAgICAgIDxsaT5OdW1lcm91cyBidWcgZml4ZXMuIFRoYW5rcyBmb3IgYWxsIHdobyByZXBvcnRlZCBvbiBidWdzITwvbGk+CiAgICAgIDxsaT5BZGRlZCBGb3JtIERpc3Bvc2l0aW9uIHRvIGRvIGFuIEhUVFAgR0VUIG9yIFBPU1QgdG8gYW55IGFyYml0cmFyeSBVUkwgZm9yIGZvcm0gaGFuZGxpbmc8L2xpPgogICAgICA8bGk+QWRkZWQgY2FwYWJpbGl0eSAoYW5kIGV4YW1wbGUgb2YpIGFkdmFuY2VkIG11bHRpcGFnZSBjb250YWN0IGZvcm0gd2hlcmUgYSBwcmV2aW91cyByZXNwb25zZSBnZXRzIGRpc3BsYXllZCBvbiBhIHN1YnNlcXVlbnQgcGFnZSBhcyBwZXIgdXB0b2VsZXZlbidzIEZSPC9saT4KICAgICAgPGxpPkZpeCBmb3IgdGVtcGxhdGUgJGZsZF9YIHJlbWFwcGluZyBvbiBYTUwgaW1wb3J0PC9saT4KICAgICAgPGxpPkV4dGVuZGVkIHRvIHByb3ZpZGUgRE9NL0NTUyBpZCBhdHRyaWJ1dGVzIHRvIGZpZWxkczwvbGk+CiAgICAgIDxsaT5DbGVhbmVkIHVwIGJhZCB1c2Ugb2YgcmVmZXJlbmNlcyBmb3IgUEhQIDUueDwvbGk+CiAgIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDAuNmIxLgoJPHVsPgoJCTxsaT5VcGRhdGVkIGRhdGFiYXNlIGNvZGUgdG8gYmUgQ01TTVMgMS43LWNvbXBhdGlibGU8L2xpPgoJCTxsaT5BZGRlZCBCdXR0b24gZmllbGQgdHlwZS48L2xpPgoJCTxsaT5JbXBsZW1lbnRlZCBGb3JtQnJvd3NlciB2MC4zIERpc3Bvc2l0aW9uLjwvbGk+CgkJPGxpPk51bWVyb3VzIGNvZGUgZml4ZXMuPC9saT4KCTwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDAuNS4xMi4gMyBTZXB0IDA5LiBOdW1lcm91cyB1c2VyLXN1Ym1pdHRlZCBmaXhlcy4gVGhhbmtzIHRvIENhbGd1eSBhbmQgU2ltb24gU2NoYXVmaS48L2xpPgo8bGk+VmVyc2lvbiAwLjUuMTEuIDE5IEphbiAwOS4gKGNhbGd1eTEwMDApCiAgPHVsPgogICAgPGxpPkFkZHMgdGhlIGNhcGFiaWxpdHkgdG8gY2FsbCBhIFVEVCBiZWZvcmUgdGhlIGZvcm0gaXMgZGlzcGxheWVkLjwvbGk+CiAgICA8bGk+TW92ZSBjaGFuZ2Vsb2cgdG8gYW4gZXh0ZXJuYWwgZmlsZS48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDAuNS4xMC4gMTIgSmFuIDA5LiBCdWcgZml4ZXMgdG8gcmVzdG9yZSBmdW5jdGlvbmFsaXR5IG9mIEZvcm1Ccm93c2VyLjwvbGk+CjxsaT5WZXJzaW9uIDAuNS45LiBKYW4gMDkgKGNhbGd1eTEwMDApIC0gTWlub3IgY2hhbmdlIHRvIHRoZSBEaXNwb3NpdGlvbkZpbGUgY2xhc3MuPC9saT4KPGxpPlZlcnNpb24gMC41LjguIEphbiAwOSAoY2FsZ3V5MTAwMCkgLSBNaW5vciBjaGFuZ2UgdG8gdGhlIERpc3Bvc2l0aW9uTXVsdGlzZWxlY3RGaWxlRGlyZWN0b3IgY2xhc3MuPC9saT4KPGxpPlZlcnNpb24gMC41LjcuIEphbiAwOSAoY2FsZ3V5MTAwMCkgLSBNaW5vciBjaGFuZ2UgdG8gdGhlIERpc3Bvc2l0aW9uTXVsdGlzZWxlY3RGaWxlRGlyZWN0b3IgY2xhc3MuPC9saT4KPGxpPlZlcnNpb24gMC41LjYuIDIzIERlYyAwOC4gQnVnIGZpeGVzLjwvbGk+CjxsaT5WZXJzaW9uIDAuNS41LiAxIE9jdCAwOC4gQnVnIGZpeGVzLiBBZGRlZCBuZXcgRGlzcG9zaXRpb25Gcm9tRW1haWxBZGRyZXNzRmllbGQgdG8gcmVwbGFjZSBkZWZpY2llbmNpZXMgd2l0aCBFbWFpbCBBZGRyZXNzICdGcm9tJyBGaWVsZCB0eXBlLjwvbGk+CjxsaT5WZXJzaW9uIDAuNS40LiAyOSBBdWcgMDguIFNjcmFwcGluZyBwbGFucyBmb3IgMC42LiBCdWcgZml4ZXMuIFRlZCdzIG5ldyBcIkVtYWlsIFwiRnJvbSBBZGRyZXNzXCIgQWdhaW4gRmllbGRcIi4gQWRkZWQgZGF0YWJhc2UgaW5kaWNlcy48L2xpPgo8bGk+VmVyc2lvbiAwLjUuMy4gMjYgTWF5IDA4LiBCdWdmaXhlcyB0byBwcmV2aW91cyBzZXQgb2YgYnVnZml4ZXMuIE5vdyByZWFkeSBmb3IgbWFqb3IgdXBncmFkZXMgZm9yIDAuNi48L2xpPgo8bGk+VmVyc2lvbiAwLjUuMi4gMjUgTWF5IDA4LiBCdWdmaXhlcy4gUmVsZWFzZSBpbiBwcmVwYXJhdGlvbiBmb3Igc3Vic3RhbnRpYWwgcmV3b3JraW5nIGZvciAwLjY8L2xpPgo8bGk+VmVyc2lvbiAwLjUuMS4gMzAgQXByaWwgMDguIEJ1Z2ZpeGVzLCByZXdyb3RlIHNvbWUgb2YgdGhlIEZpbGUgVXBsb2FkIGNvZGUgdG8gcHJldmVudCB3aGl0ZSBzY3JlZW4gb2YgYW5ub3lhbmNlLjwvbGk+CjxsaT5WZXJzaW9uIDAuNS4gMTkgQXByaWwgMDguIEJ1Z2ZpeGVzLCBzdXBwb3J0IGZvciBGb3JtQnJvd3NlciBmaXhlcyBhbmQgZmVhdHVyZXMsIGRpc3Bvc2l0aW9uIHR5cGUgZm9yIHVwY29taW5nIEZvcm1Ccm93c2VyIHZlcnNpb24uPC9saT4KPGxpPlZlcnNpb24gMC40LjQuIDI2IFNlcHQgMDcuIEJ1Z2ZpeGVzIGZvciByYWRpbyBidXR0b24gZ3JvdXBzLCBmaXggZm9yIHZhbGlkYXRpb24gb2YgRGlzcG9zaXRpb25EZWxpdmVyVG9FbWFpbEFkZHJlc3NGaWVsZC48L2xpPgo8bGk+VmVyc2lvbiAwLjQuMy4gMTggU2VwdCAwNy4gQnVnZml4ZXMgZm9yIHB1bGxkb3ducyB1c2luZyBudW1iZXJzLCBvcHRpb24gdG8gaW5saW5lIGZvcm0sIGZpeGVzIGZvciB0YWJsZS1sYXlvdXRzIHByb3ZpZGVkIGJ5IEFwIE11dGh1LCBmaXggZm9yIHJlcXVpcmFiaWxpdHkgb2YgRGlzcG9zaXRpb25zLjwvbGk+CjxsaT5WZXJzaW9uIDAuNC4yLiAxNCBTZXB0IDA3LiBCdWdmaXhlcyBmb3IgWE1MIGV4cG9ydCwgUmFkaW9CdXR0b24gR3JvdXAgc3VibWlzc2lvbiwgYW5kIEhUTUwgbGFiZWxzLjwvbGk+CjxsaT5WZXJzaW9uIDAuNC4xLiBCdWdmaXhlcyBmb3IgRmlsZSBEaXNwb3NpdGlvbiBUeXBlcy48L2xpPgo8bGk+VmVyc2lvbiAwLjQKCTx1bD4KCQk8bGk+VXBwZWQgbWluaW11bSBDTVMgdmVyc2lvbiB0byAxLjE8L2xpPgoJCTxsaT5OdW1lcm91cyBCdWcgZml4ZXM7IHRvbyBtYW55IHRvIGVudW1lcmF0ZSBoZXJlPC9saT4KCQk8bGk+TWFzc2l2ZSByZWppZ2dlcmluZyBvZiBjb2RlIHRvIHdvcmsgd2l0aCBDTVMgTVMgMS4xIHBhcmFtZXRlciBzYW5pdGl6aW5nIHJlZ2ltZTwvbGk+CgkJPGxpPkFkZGVkIGZpZWxkIHR5cGVzOiBcIlRleHRGaWVsZCAoTXVsdGlwbGUpXCIgYW5kIFwiQ29tcHV0ZWQgRmllbGRcIjwvbGk+CgkJPGxpPkFkZGVkIGRpc3Bvc2l0aW9uczogXCJTYXZlIFJlc3VsdHMgdG8gRmlsZSBCYXNlZCBvbiBQdWxsZG93blwiIGFuZCBcIlNhdmUgUmVzdWx0cyB0byBGaWxlKHMpIEJhc2VkIG9uIE11bHRpcGxlIFNlbGVjdGlvbnNcIihDYWxndXkpPC9saT4KCQk8bGk+QWRkZWQgbmVhdC1vIEFKQVgteSB0ZW1wbGF0ZS1jb3B5aW5nIGZvciBGb3JtIFRlbXBsYXRlcywgZ2F2ZSB2ZXJzaW9ucyBvZiBvbGQgdGFibGUtYmFzZWQgdGVtcGxhdGVzIHRvIHNvb3RoZSB0aGUgcmFnaW5nIG1hc3Nlcy48L2xpPgoJCTxsaT5BZGRlZCBhYmlsaXR5IHRvIHBhc3MgZGVmYXVsdCB2YWx1ZXMgdG8gZm9ybSBlbGVtZW50cyBmcm9tIG1vZHVsZSB0YWcgdXNpbmcgdmFsdWVfRklFTEROQU1FPVwidmFsdWVcIiBzeW50YXggKENhbGd1eSk8L2xpPgoJCTxsaT5BZGRlZCBvcHRpb24gdG8gZGlzcGxheSBmaWVsZCBpZHMgaW4gYWRtaW4gKENhbGd1eSk8L2xpPgoJPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMC4zCiAgIDx1bD4KICAgICAgPGxpPkFkZGVkIENhcHRjaGEgbW9kdWxlIHN1cHBvcnQuPC9saT4KICAgICAgPGxpPlJld29ya2VkIGxhYmVsaW5nIG9mIGZvcm0gZWxlbWVudHMgdG8gYmUgWEhUTUwgY29tcGxpYW50PC9saT4KICAgICAgPGxpPkFkZGVkIFBhdWwgTm9vbmUncyBuZXcsIGltcHJvdmVkIGNvbnRhY3QgZm9ybSB0ZW1wbGF0ZXM8L2xpPgogICAgICA8bGk+SW1wbGVtZW50YXRpb24gb2YgRW1haWwgU3ViamVjdCBGaWVsZDwvbGk+CiAgICAgIDxsaT5BZGRlZCBhZG1pbi1zcGVjaWZpYWJsZSB2YWx1ZXMgdG8gaGlkZGVuIGZpZWxkIHR5cGUsIHdoaWNoIG1heSBjb250YWluIHBhcnNhYmxlIHNtYXJ0eSB0YWdzPC9saT4KICAgICAgPGxpPlRleHQgQXJlYSBGaWVsZCBub3cgYWxsb3dzIHNwZWNpZmljYXRpb24gb2Ygcm93cyBhbmQgY29scyBpbiB0aGUgYWRtaW4sIGluc3RlYWQgb2YgQ1NTPC9saT4KICAgICAgPGxpPkFkZGVkIERyYWcnbidEcm9wIHJlb3JkZXJpbmcgb2YgZm9ybSBmaWVsZHMuPC9saT4KICAgICAgPGxpPkFkZGVkIG5vbi1ibGFuayBmaWVsZCBuYW1lIGFuZCB1bmlxdWUgZmllbGQgbmFtZSBnbG9iYWwgY29uZmlndXJhdGlvbiBvcHRpb25zIGFuZCB2YWxpZGF0aW9uPC9saT4KICAgICAgPGxpPkltcGxlbWVudGVkIHRlbXBsYXRlZCBkaXNwbGF5IG9mIGZvcm0gcmVzdWx0cyB1cG9uIHN1Ym1pc3Npb24gaW4gYWRkaXRpb24gdG8gcGFnZSByZWRpcmVjdGluZzwvbGk+CiAgICAgIDxsaT48L2xpPgogICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAwLjIuNCAtIDA5IE1heSAyMDA3CiAgIDxwPkJpZyByZWxlYXNlOjx1bD4KICAgPGxpPkFkZGVkIFwiRW1haWwgRm9ybSB0byBVc2VyLVN1cHBsaWVkIEFkZHJlc3NcIiBkaXNwb3NpdGlvbi48L2xpPgogICA8bGk+QWRkZWQgXCJUaW1lUGlja2VyXCIgZmllbGQgdHlwZS4gU3BsaXQgXCJMaW5rXCIgZmllbGQgaW50byBhIFwiVXNlci1zdXBwbGllZCBMaW5rXCIgZmllbGQgYW5kIGEgXCJTdGF0aWMgTGlua1wiIGZpZWxkLjwvbGk+CiAgIDxsaT5BZGRlZCBIVE1MIGVtYWlsIG9wdGlvbiBhbmQgYXV0by10ZW1wbGF0ZXMgZm9yIGFsbCBlbWFpbCBkaXNwb3NpdGlvbnMuPC9saT4KICAgPGxpPkFkZGVkIHByaW1pdGl2ZSBhbnRpLXNwYW0gZmVhdHVyZXMuPC9saT4KICAgPGxpPkFkZGVkIFhNTC1iYXNlZCBpbXBvcnQgYW5kIGV4cG9ydCBvZiBmb3Jtcy48L2xpPgogICA8L3VsPgogICA8L3A+CjwvbGk+CjxsaT5WZXJzaW9uIDAuMi4zCiAgIDxwPkFkZCB0aGUgYWJpbGl0eSB0byBjYWxsIGEgc2VsZWN0YWJsZSB1c2VyIGRlZmluZWQgdGFnIHVwb24gZGlzcG9zaXRpb24gb2YgdGhlIGZvcm0uPC9wPgo8L2xpPgo8bGk+VmVyc2lvbiAwLjIuMgogICA8cD5NYW55IHRoYW5rcyB0byBVdHRlciBEZXNpZ24gZm9yIHNwb25zb3Jpbmcgc29tZSBjaGFuZ2VzIGFuZCBidWdmaXhlcywgd2hpY2ggaW5jbHVkZToKICAgPHVsPgogICAgICA8bGk+QWRkZWQgZmlsZSB1cGxvYWQgY2FwYWJpbGl0aWVzIHRvIHRoZSBlbWFpbCBkaXNwb3NpdGlvbjwvbGk+CiAgICAgIDxsaT5BZGQgUGFnZVNldFN0YXJ0IGFuZCBQYWdlU2V0RW5kIGZpZWxkIHR5cGVzCiAgICAgIDxwPlRoZXNlIGZpZWxkIHR5cGVzIGFsbG93IHlvdSB0byBjcmVhdGUgZmllbGRzZXRzIGluIHlvdXIgZm9ybSwgYW5kIG9yZ2FuaXNlCiAgICAgIHlvdXIgZmllbGRzIGxvZ2ljYWxseSBmb3IgdGhlIHVzZXIuICBZb3UgY2FuIGV2ZW4gbmVzdCBmaWVsZHNldHMsIGFuZAogICAgICBhc3NvY2lhdGUgYSBzdHlsZSB3aXRoIHRoZW0gYXBwcm9wcmlhdGVseS4gIFRoZSBkZWZhdWx0IHRlbXBsYXRlIHdhcyBjaGFuZ2VkCiAgICAgIHRvIHByZXZlbnQgaXQgZnJvbSB3cmFwcGluZyBhIGRpdiBhcm91bmQgdGhlc2UgdHlwZXMgb2YgZmllbGRzLgogICAgICA8L3A+CiAgICAgIDwvbGk+CiAgICAgIDxsaT5GaXhlZCBhIHByb2JsZW0gd2l0aCBEQVRFVElNRSBmaWVsZHMgb24gaW5zdGFsbAogICAgICA8cD5UaGlzIHNvbHZlcyBhIHByb2JsZW0gd2hlbiBvbiBpbnN0YWxsIHRoZSByZXNwb25zZSB0YWJsZSB3b3VsZCBzb21ldGltZXMgbm90IGdldCBjcmVhdGVkIHdoZW4gdXNpbmcgYWRvZGIgbGl0ZTwvbGk+CiAgICAgIDwvbGk+CiAgIDwvdWw+CiAgIDwvcD4KPC9saT4KPGxpPlZlcnNpb24gMC4yIC0gMTQgTm92ZW1iZXIgMjAwNi4gQ2FsZ3V5ICZhbXA7IHRzdydzIGJ1ZyBmaXhlcyBmb3IgZmllbGQgcmUtb3JkZXJpbmcgYW5kIGN1c3RvbSB0ZW1wbGF0ZXMuIEFkZGl0aW9uYWwgYnVnIGZpeGVzIGZvciBmaWVsZCBsYWJlbHMuPC9saT4KPGxpPlZlcnNpb24gMC4xIC0gOCBKdWx5IDIwMDYuIEluaXRpYWwgUmVsZWFzZTwvbGk+CjwvdWw+CjxiciAvPg==]]></about>
	<description><![CDATA[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>/.DS_Store</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[AAAAAUJ1ZDEAABAAAAAIAAAAEAAAAAEIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAEAAAABAAAQAABzAGUAc2J3c3BibAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAcAYwBsAGEAcwBzAGUAc2J3c3BibG9iAAAAr2JwbGlzdDAw1gECAwQFBgcICAoIDFxXaW5kb3dCb3VuZHNbU2hvd1NpZGViYXJdU2hvd1N0YXR1c0JhcltTaG93UGF0aGJhcltTaG93VG9vbGJhclxTaWRlYmFyV2lkdGhfEBh7ezgyMSwgMzkyfSwgezc3MCwgNDM3fX0JCQgJEMAIFSIuPEhUYXx9fn+AAAAAAAAAAQEAAAAAAAAADQAAAAAAAAAAAAAAAAAAAIIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAgLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAACAAAAABAAAAQAAAAAEAAACAAAAAAQAAAQAAAAABAAACAAAAAAEAAAQAAAAAAAAAAAEAABAAAAAAAQAAIAAAAAABAABAAAAAAAEAAIAAAAAAAQABAAAAAAABAAIAAAAAAAEABAAAAAAAAQAIAAAAAAABABAAAAAAAAEAIAAAAAAAAQBAAAAAAAABAIAAAAAAAAEBAAAAAAAAAQIAAAAAAAABBAAAAAAAAAEIAAAAAAAAARAAAAAAAAABIAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAEAsAAABFAAABCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBERTREIAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAIAAAAGAAAAAAAAAAAQAAAIAAAAAAAAAAAQAAAgAAAAABAAAEAAAAAAIAAAgAAAAYAAAAAAAAAAABAAAgAAAAAAEAAEAAAAAAAQAAgAAAAAABAAEAAAAAAAEAAgAAAAAAAQAEAAAAAAABAAgAAAAAAAEAEAAAAAAAAQAgAAAAAAABAEAAAAAAAAEAgAAAAAAAAQEAAAAAAAABAgAAAAAAAAEEAAAAAAAAAQgAAAAAAAABEAAAAAAAAAEgAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==]]></data>
	</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+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCgkJaWYgKGlzc2V0KCRwYXJhbXNbJ2ZicnBfc2V0X2ZpZWxkX2xldmVsJ10pKQoJCQl7CgkJCSR0aGlzLT5TZXRQcmVmZXJlbmNlKCdzaG93X2ZpZWxkX2xldmVsJywkcGFyYW1zWydmYnJwX3NldF9maWVsZF9sZXZlbCddKTsKCQkJfQoJCQkKCQkkdGFiID0gJHRoaXMtPkdldEFjdGl2ZVRhYigkcGFyYW1zKTsKCQkKCQkkYWVmb3JtID0gbmV3IGZiRm9ybSgkdGhpcywgJHBhcmFtcywgdHJ1ZSk7CgkJCgkJZWNobyAkYWVmb3JtLT5BZGRFZGl0Rm9ybSgkaWQsICRyZXR1cm5pZCwgJHRhYiwgaXNzZXQoJHBhcmFtc1snZmJycF9tZXNzYWdlJ10pPyR0aGlzLT5TaG93TWVzc2FnZSgkcGFyYW1zWydmYnJwX21lc3NhZ2UnXSk6JycpOwoKPz4=]]></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[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgppZiAocHJlZ19tYXRjaCgnL1wudHBsJC8nLCRwYXJhbXNbJ2ZicnBfdGlkJ10pKQogICAgewogICAgJHRwbHN0ciA9IGZpbGVfZ2V0X2NvbnRlbnRzKGRpcm5hbWUoX19GSUxFX18pLicvdGVtcGxhdGVzLycuJHBhcmFtc1snZmJycF90aWQnXSk7CiAgICB9CmVsc2UKICAgIHsKICAgICRkYiA9ICR0aGlzLT5HZXREYigpOwogICAgJHF1ZXJ5ID0gIlNFTEVDVCB2YWx1ZSBGUk9NICIuY21zX2RiX3ByZWZpeCgpLgoJCSJtb2R1bGVfZmJfZm9ybV9hdHRyIFdIRVJFIGZvcm1faWQ9PyBhbmQgbmFtZT0nZm9ybV90ZW1wbGF0ZSciOwoJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkcGFyYW1zWydmYnJwX3RpZCddKSk7CglpZiAoJGRicmVzdWx0ICE9PSBmYWxzZSAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKQoJCXsKCQkkdHBsc3RyID0gJHJvd1sndmFsdWUnXTsKCQl9CiAgICB9CgogICAgQG9iX2NsZWFuKCk7CiAgICBAb2JfY2xlYW4oKTsKICAgIGhlYWRlcignUHJhZ21hOiBwdWJsaWMnKTsKICAgIGhlYWRlcignRXhwaXJlczogMCcpOwogICAgaGVhZGVyKCdDYWNoZS1Db250cm9sOiBtdXN0LXJldmFsaWRhdGUsIHBvc3QtY2hlY2s9MCwgcHJlLWNoZWNrPTAnKTsKICAgIGhlYWRlcignQ2FjaGUtQ29udHJvbDogcHJpdmF0ZScsZmFsc2UpOwogICAgaGVhZGVyKCdDb250ZW50LURlc2NyaXB0aW9uOiBGaWxlIFRyYW5zZmVyJyk7CiAgICBoZWFkZXIoJ0NvbnRlbnQtTGVuZ3RoOiAnIC4gc3RybGVuKCR0cGxzdHIpKTsKICAgIGVjaG8gJHRwbHN0cjsKICAgIGV4aXQ7Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_store_field.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCiRhZWZvcm0gPSBuZXcgZmJGb3JtKCR0aGlzLCAkcGFyYW1zLCB0cnVlKTsKJGFlZmllbGQgPSAkYWVmb3JtLT5OZXdGaWVsZCgkcGFyYW1zKTsKJHZhbCA9ICRhZWZpZWxkLT5BZG1pblZhbGlkYXRlKCk7CmlmICgkdmFsWzBdKQogIHsKICAgICRhZWZpZWxkLT5Qb3N0QWRtaW5TdWJtaXRDbGVhbnVwKCk7CiAgICAkYWVmaWVsZC0+U3RvcmUodHJ1ZSk7CgkkYWVmaWVsZC0+UG9zdEZpZWxkU2F2ZVByb2Nlc3MoJHBhcmFtcyk7CiAgICAkcGFyYW1zWydmYnJwX21lc3NhZ2UnXT0kcGFyYW1zWydmYnJwX29wJ107CiAgICAkdGhpcy0+RG9BY3Rpb24oJ2FkbWluX2FkZF9lZGl0X2Zvcm0nLCAkaWQsICRwYXJhbXMpOwogIH0KIGVsc2UKICAgewogICAgICRhZWZpZWxkLT5Mb2FkRmllbGQoJHBhcmFtcyk7CiAgICAgJHBhcmFtc1snZmJycF9tZXNzYWdlJ10gPSAkdmFsWzFdOwogICAgIGVjaG8gJGFlZm9ybS0+QWRkRWRpdEZpZWxkKCRpZCwgJGFlZmllbGQsIChpc3NldCgkcGFyYW1zWydmYnJwX2Rpc3Bvc2Vfb25seSddKT8kcGFyYW1zWydmYnJwX2Rpc3Bvc2Vfb25seSddOjApLCAkcmV0dXJuaWQsIGlzc2V0KCRwYXJhbXNbJ2ZicnBfbWVzc2FnZSddKT8kcGFyYW1zWydmYnJwX21lc3NhZ2UnXTonJyk7CiAgIH0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_store_form.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCi8vIFN0b3JlIGRhdGEKJGFlZm9ybSA9IG5ldyBmYkZvcm0oJHRoaXMsICRwYXJhbXMsIHRydWUpOwokYWVmb3JtLT5TdG9yZSgpOwoKJHRhYiA9ICR0aGlzLT5HZXRBY3RpdmVUYWIoJHBhcmFtcyk7CgovLyBDaGVjayB3aGljaCBidXR0b24gd2FzIHByZXNzZWQKaWYgKCRwYXJhbXNbJ2ZicnBfc3VibWl0J10gPT0gJHRoaXMtPkxhbmcoJ3NhdmUnKSkgewoKICAgICRwYXJhbXNbJ2ZicnBfbWVzc2FnZSddID0gJHRoaXMtPkxhbmcoJ2Zvcm0nLCRwYXJhbXNbJ2ZicnBfZm9ybV9vcCddKTsKICAgICR0aGlzLT5Eb0FjdGlvbignZGVmYXVsdGFkbWluJywgJGlkLCAkcGFyYW1zKTsKCQp9IGVsc2UgewoKCWVjaG8gJGFlZm9ybS0+QWRkRWRpdEZvcm0oJGlkLCAkcmV0dXJuaWQsICR0YWIsICR0aGlzLT5MYW5nKCdmb3JtJywkcGFyYW1zWydmYnJwX2Zvcm1fb3AnXSkpOwp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/action.admin_update_config.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCgkJJHRoaXMtPlNldFByZWZlcmVuY2UoJ2hpZGVfZXJyb3JzJyxpc3NldCgkcGFyYW1zWydmYnJwX2hpZGVfZXJyb3JzJ10pPyRwYXJhbXNbJ2ZicnBfaGlkZV9lcnJvcnMnXTowKTsKCQkkdGhpcy0+U2V0UHJlZmVyZW5jZSgnc2hvd192ZXJzaW9uJyxpc3NldCgkcGFyYW1zWydmYnJwX3Nob3dfdmVyc2lvbiddKT8kcGFyYW1zWydmYnJwX3Nob3dfdmVyc2lvbiddOjApOwoJCSR0aGlzLT5TZXRQcmVmZXJlbmNlKCdyZWxheGVkX2VtYWlsX3JlZ2V4Jyxpc3NldCgkcGFyYW1zWydmYnJwX3JlbGF4ZWRfZW1haWxfcmVnZXgnXSk/JHBhcmFtc1snZmJycF9yZWxheGVkX2VtYWlsX3JlZ2V4J106MCk7CgkJJHRoaXMtPlNldFByZWZlcmVuY2UoJ21sZV92ZXJzaW9uJyxpc3NldCgkcGFyYW1zWydmYnJwX21sZV92ZXJzaW9uJ10pPyRwYXJhbXNbJ2ZicnBfbWxlX3ZlcnNpb24nXTowKTsKCgkJJHRoaXMtPlNldFByZWZlcmVuY2UoJ3JlcXVpcmVfZmllbGRuYW1lcycsaXNzZXQoJHBhcmFtc1snZmJycF9yZXF1aXJlX2ZpZWxkbmFtZXMnXSk/JHBhcmFtc1snZmJycF9yZXF1aXJlX2ZpZWxkbmFtZXMnXTowKTsKCgkJJHRoaXMtPlNldFByZWZlcmVuY2UoJ3VuaXF1ZV9maWVsZG5hbWVzJyxpc3NldCgkcGFyYW1zWydmYnJwX3VuaXF1ZV9maWVsZG5hbWVzJ10pPyRwYXJhbXNbJ2ZicnBfdW5pcXVlX2ZpZWxkbmFtZXMnXTowKTsKCgkJJHRoaXMtPlNldFByZWZlcmVuY2UoJ2VuYWJsZV9mYXN0YWRkJyxpc3NldCgkcGFyYW1zWydmYnJwX2VuYWJsZV9mYXN0YWRkJ10pPyRwYXJhbXNbJ2ZicnBfZW5hYmxlX2Zhc3RhZGQnXTowKTsKCQkkdGhpcy0+U2V0UHJlZmVyZW5jZSgnZW5hYmxlX2FudGlzcGFtJyxpc3NldCgkcGFyYW1zWydmYnJwX2VuYWJsZV9hbnRpc3BhbSddKT8kcGFyYW1zWydmYnJwX2VuYWJsZV9hbnRpc3BhbSddOjApOwoKICAgICAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnc2hvd19maWVsZGlkcycsaXNzZXQoJHBhcmFtc1snZmJycF9zaG93X2ZpZWxkaWRzJ10pPyRwYXJhbXNbJ2ZicnBfc2hvd19maWVsZGlkcyddOjApOwogICAgICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdzaG93X2ZpZWxkYWxpYXNlcycsaXNzZXQoJHBhcmFtc1snZmJycF9zaG93X2ZpZWxkYWxpYXNlcyddKT8kcGFyYW1zWydmYnJwX3Nob3dfZmllbGRhbGlhc2VzJ106MCk7CgogICAgICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdibGFua19pbnZhbGlkJyxpc3NldCgkcGFyYW1zWydmYnJwX2JsYW5rX2ludmFsaWQnXSk/JHBhcmFtc1snZmJycF9ibGFua19pbnZhbGlkJ106MCk7CgoJCSRwYXJhbXNbJ2ZicnBfbWVzc2FnZSddID0gJHRoaXMtPkxhbmcoJ2NvbmZpZ3VyYXRpb25fdXBkYXRlZCcpOwogICAgICAgICR0aGlzLT5Eb0FjdGlvbignZGVmYXVsdGFkbWluJywgJGlkLCAkcGFyYW1zKTsKCj8+]]></data>
	</file>
	<file>
	  <filename>/action.admin_update_field_order.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCiAgICAgICAgJGFlZm9ybSA9IG5ldyBmYkZvcm0oJHRoaXMsICRwYXJhbXMsIHRydWUpOwogICAgICAgICRzcmNJbmRleCA9ICRhZWZvcm0tPkdldEZpZWxkSW5kZXhGcm9tSWQoJHBhcmFtc1snZmllbGRfaWQnXSk7CiAgICAgICAgaWYgKCRwYXJhbXNbJ2ZicnBfZGlyJ10gPT0gJ3VwJykKICAgICAgICAgICAgewogICAgICAgICAgICAkZGVzdEluZGV4ID0gJHNyY0luZGV4IC0gMTsKICAgICAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAkZGVzdEluZGV4ID0gJHNyY0luZGV4ICsgMTsKICAgICAgICAgICAgfQogICAgICAgICRhZWZvcm0tPlN3YXBGaWVsZHNCeUluZGV4KCRzcmNJbmRleCwkZGVzdEluZGV4KTsKCgkJLy8gZm9yY2UgcmVsb2FkIG9mIGZvcm0sIHRoaXMgaXMga2luZGEgaGFja2lzaCBidXQgY2FudCB0aGluayBvZiBhbnl0aGluZyBlbHNlIDspCgkJJGFlZm9ybSA9IG5ldyBmYkZvcm0oJHRoaXMsICRwYXJhbXMsIHRydWUpOwoJCSR0YWIgPSAkdGhpcy0+R2V0QWN0aXZlVGFiKCRwYXJhbXMpOwoKCiAgICAgICAgZWNobyAkYWVmb3JtLT5BZGRFZGl0Rm9ybSgkaWQsICRyZXR1cm5pZCwgJHRhYiwgJHRoaXMtPlNob3dNZXNzYWdlKCR0aGlzLT5MYW5nKCdmaWVsZF9vcmRlcl91cGRhdGVkJykpKTsKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.admin_update_field_required.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCiAgICAgICAgJGFlZm9ybSA9IG5ldyBmYkZvcm0oJHRoaXMsICRwYXJhbXMsIHRydWUpOwogICAgICAgIAogICAgICAgICRhZWZpZWxkID0gJGFlZm9ybS0+R2V0RmllbGRCeUlkKCRwYXJhbXNbJ2ZpZWxkX2lkJ10pOwoJCWlmICgkYWVmaWVsZCAhPT0gZmFsc2UpCgkJCXsKCQkJLy8kYWVmaWVsZC0+U2V0UmVxdWlyZWQoJHBhcmFtc1snZmJycF9hY3RpdmUnXT09J29uJz90cnVlOmZhbHNlKTsKCQkJJGFlZmllbGQtPlRvZ2dsZVJlcXVpcmVkKCk7CgkJCSRhZWZpZWxkLT5TdG9yZSgpOwogICAgICAgICAkYWVmb3JtID0gbmV3IGZiRm9ybSgkdGhpcywgJHBhcmFtcywgdHJ1ZSk7CgkJCX0KCQkkdGFiID0gJHRoaXMtPkdldEFjdGl2ZVRhYigkcGFyYW1zKTsKCQkKCQllY2hvICRhZWZvcm0tPkFkZEVkaXRGb3JtKCRpZCwgJHJldHVybmlkLCAkdGFiLCAkdGhpcy0+TGFuZygnZmllbGRfcmVxdWlyZW1lbnRfdXBkYXRlZCcpKTsKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.default.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNyBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDcgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKLy9kZWJ1Z19kaXNwbGF5KCRwYXJhbXMpOwoKaWYgKCEgaXNzZXQoJHBhcmFtc1snZm9ybV9pZCddKSAmJiBpc3NldCgkcGFyYW1zWydmb3JtJ10pKQogIHsKICAgIC8vIGdldCB0aGUgZm9ybSBieSBuYW1lLCBub3QgSUQKICAgICRwYXJhbXNbJ2Zvcm1faWQnXSA9ICR0aGlzLT5HZXRGb3JtSURGcm9tQWxpYXMoJHBhcmFtc1snZm9ybSddKTsKICB9CgokaW5saW5lID0gZmFsc2U7CmlmKCAoaXNzZXQoJHBhcmFtc1snaW5saW5lJ10pKSAmJiBwcmVnX21hdGNoKCcvdChydWUpKnx5KHllcykqfDEvaScsJHBhcmFtc1snaW5saW5lJ10pKQoJewoJJGlubGluZSA9IHRydWU7Cgl9CgoKCiRmYnJwX2NhbGxjb3VudCA9IDA7CiRhZWZvcm0gPSBuZXcgZmJGb3JtKCR0aGlzLCRwYXJhbXMsdHJ1ZSx0cnVlKTsKCiRmbGQgPSAkYWVmb3JtLT5HZXRGb3JtQnJvd3NlckZpZWxkKCk7CmlmICgkZmxkICE9PSBmYWxzZSAmJiAkZmxkLT5HZXRPcHRpb24oJ2ZldV9iaW5kJywnMCcpPT0nMScpCgl7CgkkZmV1ID0gJHRoaXMtPkdldE1vZHVsZUluc3RhbmNlKCdGcm9udEVuZFVzZXJzJyk7CglpZiAoJGZldSA9PSBmYWxzZSkKCQl7CgkJZGVidWdfZGlzcGxheSgiRkFJTEVEIHRvIGluc3RhdGlhdGUgRkVVISIpOwoJCXJldHVybjsKCQl9CglpZiAoJGZldS0+TG9nZ2VkSW5JZCgpID09PSBmYWxzZSkKCQl7CgkJZWNobyAkdGhpcy0+TGFuZygncGxlYXNlX2xvZ2luJyk7CgkJcmV0dXJuOwoJCX0KCX0KCgppZiggISgkaW5saW5lIHx8ICgkYWVmb3JtLT5HZXRBdHRyKCdpbmxpbmUnLCcwJyk9PSAnMScpKSkgJGlkID0gJ2NudG50MDEnOwoKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmYl9mb3JtX2hhc192YWxpZGF0aW9uX2Vycm9ycycsMCk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignZmJfc2hvd19zdWJtaXNzaW9uX2Vycm9ycycsMCk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignZmJfZm9ybV9oZWFkZXInLCAkYWVmb3JtLT5SZW5kZXJGb3JtSGVhZGVyKCkpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2ZiX2Zvcm1fZm9vdGVyJywkYWVmb3JtLT5SZW5kZXJGb3JtRm9vdGVyKCkpOwoKJGZpbmlzaGVkID0gZmFsc2U7CiRmaWVsZEV4cGFuZE9wID0gZmFsc2U7CgppZiggaXNzZXQoJHBhcmFtc1snZmJycF9jYWxsY291bnQnXSkgKQogIHsKICAgICRmYnJwX2NhbGxjb3VudCA9IChpbnQpJHBhcmFtc1snZmJycF9jYWxsY291bnQnXTsKICB9Cgpmb3JlYWNoKCRwYXJhbXMgYXMgJHBLZXk9PiRwVmFsKQogICB7CiAgIGlmIChzdWJzdHIoJHBLZXksMCw5KSA9PSAnZmJycF9GZVhfJyB8fCBzdWJzdHIoJHBLZXksMCw5KSA9PSAnZmJycF9GZURfJykKICAgICAgewogICAgICAvLyBleHBhbmRpbmcgb3Igc2hyaW5raW5nIGEgZmllbGQKICAgICAgJGZpZWxkRXhwYW5kT3AgPSB0cnVlOwogICAgICB9CiAgIH0KCmlmICggISRmaWVsZEV4cGFuZE9wICYmCiAgICAoKCRhZWZvcm0tPkdldFBhZ2VDb3VudCgpID4gMSAmJiAkYWVmb3JtLT5HZXRQYWdlTnVtYmVyKCkgPiAwKSB8fAogICAgIChpc3NldCgkcGFyYW1zWydmYnJwX2RvbmUnXSkmJiAkcGFyYW1zWydmYnJwX2RvbmUnXT09MSkpKQogICAgewogICAgJHJlcyA9ICRhZWZvcm0tPlZhbGlkYXRlKCk7CiAgICAKCS8vIGhhbmRsZSB1cGxvYWRzCiAgICAkcmVzMiA9ICRhZWZvcm0tPm1hbmFnZUZpbGVVcGxvYWRzKCk7CgogICAgaWYgKCRyZXNbMF0gPT09IGZhbHNlIHx8ICRyZXMyWzBdID09PSBmYWxzZSkKICAgICAgewoJICBpZiAoaXNzZXQoJHJlczJbMV0pICYmICFlbXB0eSgkcmVzMlsxXSkpCgkJewoJCWFycmF5X3B1c2goJHJlc1sxXSwkcmVzMlsxXSk7CgkJfQoJICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2ZiX2Zvcm1fdmFsaWRhdGlvbl9lcnJvcnMnLCRyZXNbMV0pOwoJICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2ZiX2Zvcm1faGFzX3ZhbGlkYXRpb25fZXJyb3JzJywxKTsKCSAgCgkgICRhZWZvcm0tPlBhZ2VCYWNrKCk7CiAgICAgIH0KICAgIGVsc2UgaWYgKGlzc2V0KCRwYXJhbXNbJ2ZicnBfZG9uZSddKSAmJiAkcGFyYW1zWydmYnJwX2RvbmUnXT09MSkKICAgICAgewogICAgICAkb2sgPSB0cnVlOwogICAgICAkY2FwdGNoYSA9ICR0aGlzLT5nZXRNb2R1bGVJbnN0YW5jZSgnQ2FwdGNoYScpOwogICAgICBpZiAoJGFlZm9ybS0+R2V0QXR0cigndXNlX2NhcHRjaGEnLCcwJyk9PSAnMScgJiYgJGNhcHRjaGEgIT0gbnVsbCkKICAgICAgICAgewogIAkgICAgICBpZiAoISAkY2FwdGNoYS0+Q2hlY2tDYXB0Y2hhKCRwYXJhbXNbJ2ZicnBfY2FwdGNoYV9waHJhc2UnXSkpCiAgCSAgICAgICAgIHsKICAJICAgICAgICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdjYXB0Y2hhX2Vycm9yJywkYWVmb3JtLT5HZXRBdHRyKCdjYXB0Y2hhX3dyb25nJywkdGhpcy0+TGFuZygnd3JvbmdfY2FwdGNoYScpKSk7CiAgCSAgICAgICAgIAogIAkgICAgICAgICAkYWVmb3JtLT5QYWdlQmFjaygpOwogICAgICAgICAgICAkb2sgPSBmYWxzZTsKICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgIGlmICgkb2spCiAgICAgICAgIHsKICAgICAgICAgJGZpbmlzaGVkID0gdHJ1ZTsKCSAgICAgICRyZXN1bHRzID0gJGFlZm9ybS0+RGlzcG9zZSgkcmV0dXJuaWQpOwoJICAgICAgfQogICAgICB9CiAgfQoKaWYgKCEgJGZpbmlzaGVkKQogICB7CiAgICAgJHBhcm1zID0gYXJyYXkoKTsKICAgICAkcGFybXNbJ2Zvcm1fbmFtZSddID0gJGFlZm9ybS0+R2V0TmFtZSgpOwogICAgICRwYXJtc1snZm9ybV9pZCddID0gJGFlZm9ybS0+R2V0SWQoKTsKICAgICAkdGhpcy0+U2VuZEV2ZW50KCdPbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknLCRwYXJtcyk7CgogICAgIGlmIChpc3NldCgkcGFyYW1zWydmYl9mcm9tX2ZiJ10pKQoJCXsKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2ZiX2Zvcm1fc3RhcnQnLAoJCQkkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwgJ3VzZXJfZWRpdF9yZXNwJywgJHJldHVybmlkLCAncG9zdCcsCgkJCQknbXVsdGlwYXJ0L2Zvcm0tZGF0YScsIAoJCQkJKCRhZWZvcm0tPkdldEF0dHIoJ2lubGluZScsJzAnKT09ICcxJyksICcnLAoJCQkJYXJyYXkoJ2ZicnBfY2FsbGNvdW50Jz0+JGZicnBfY2FsbGNvdW50KzEpKS4KCQkJCSR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsJ3Jlc3BvbnNlX2lkJyxpc3NldCgkcGFyYW1zWydyZXNwb25zZV9pZCddKT8kcGFyYW1zWydyZXNwb25zZV9pZCddOictMScpKTsKCQl9CgllbHNlCgkJewogICAgIAkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2ZiX2Zvcm1fc3RhcnQnLAoJCQkgICAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwgJ2RlZmF1bHQnLCAkcmV0dXJuaWQsICdwb3N0JywgCgkJCQknbXVsdGlwYXJ0L2Zvcm0tZGF0YScsIAoJCQkJKCRhZWZvcm0tPkdldEF0dHIoJ2lubGluZScsJzAnKT09ICcxJyksICcnLAoJCQkJYXJyYXkoJ2ZicnBfY2FsbGNvdW50Jz0+JGZicnBfY2FsbGNvdW50KzEpKSk7CgkJfQoKCSR0aGlzLT5zbWFydHktPmFzc2lnbignZmJfZm9ybV9lbmQnLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmYl9mb3JtX2RvbmUnLDApOwogICB9CmVsc2UKICAgewogICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2ZiX2Zvcm1fZG9uZScsMSk7CiAgIGlmICgkcmVzdWx0c1swXSA9PSB0cnVlKQogICAgICB7CiAgICAgICRwYXJtcyA9IGFycmF5KCk7CiAgICAgICRwYXJtc1snZm9ybV9uYW1lJ10gPSAkYWVmb3JtLT5HZXROYW1lKCk7CiAgICAgICRwYXJtc1snZm9ybV9pZCddID0gJGFlZm9ybS0+R2V0SWQoKTsKICAgICAgJHRoaXMtPlNlbmRFdmVudCgnT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnLCRwYXJtcyk7CgogICAgICAkYWN0ID0gJGFlZm9ybS0+R2V0QXR0cignc3VibWl0X2FjdGlvbicsJ3RleHQnKTsKICAgICAgaWYgKCRhY3QgPT0gJ3RleHQnKQogICAgICAgICB7CiAgICAgICAgICRtZXNzYWdlID0gJGFlZm9ybS0+R2V0QXR0cignc3VibWl0X3Jlc3BvbnNlJywnJyk7CgoJCSAkYWVmb3JtLT5zZXRGaW5pc2hlZEZvcm1TbWFydHkoKTsKICAgICAgICAgZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoICRtZXNzYWdlICk7CiAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICBlbHNlIGlmICgkYWN0ID09ICdyZWRpcicpCiAgICAgICAgIHsKICAgICAgICAgJHJldCA9ICRhZWZvcm0tPkdldEF0dHIoJ3JlZGlyZWN0X3BhZ2UnLCctMScpOwogICAgICAgICBpZiAoJHJldCAhPSAtMSkKICAgICAgICAgICAgewogICAgICAgICAgICAkdGhpcy0+UmVkaXJlY3RDb250ZW50KCRyZXQpOwogICAgICAgICAgICByZXR1cm47CgkgICAJCX0KICAgICAgICAgfQogICAgICB9CiAgIGVsc2UKICAgICAgewogICAgICAkcGFybXMgPSBhcnJheSgpOwogICAgICAkcGFyYW1zWydmYnJwX2Vycm9yJ109Jyc7CiAgICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignZmJfc3VibWlzc2lvbl9lcnJvcicsCgkgCSR0aGlzLT5MYW5nKCdzdWJtaXNzaW9uX2Vycm9yJykpOwoKICAgICAgJHNob3cgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaGlkZV9lcnJvcnMnLCcxJyk7CiAgICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignZmJfc3VibWlzc2lvbl9lcnJvcl9saXN0JywkcmVzdWx0c1sxXSk7CiAgICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignZmJfc2hvd19zdWJtaXNzaW9uX2Vycm9ycycsJHNob3cpOwoKICAgICAgJHBhcm1zWydmb3JtX25hbWUnXSA9ICRhZWZvcm0tPkdldE5hbWUoKTsKICAgICAgJHBhcm1zWydmb3JtX2lkJ10gPSAkYWVmb3JtLT5HZXRJZCgpOwogICAgICAkdGhpcy0+U2VuZEV2ZW50KCdPbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdEVycm9yJywkcGFybXMpOwogICAgICB9CiAgIH0KCiR1ZHRvbmNlID0gJGFlZm9ybS0+R2V0QXR0cigncHJlZGlzcGxheV91ZHQnLCcnKTsKJHVkdGV2ZXJ5ID0gJGFlZm9ybS0+R2V0QXR0cigncHJlZGlzcGxheV9lYWNoX3VkdCcsJycpOwppZiAoISRmaW5pc2hlZCAmJgogICAoKCFlbXB0eSgkdWR0b25jZSkgJiYgJHVkdG9uY2UgIT0gJy0xJykgfHwKICAgKCFlbXB0eSgkdWR0ZXZlcnkpICYmICR1ZHRldmVyeSAhPSAnLTEnKSkpCiAgIHsKICAgJHVzZXJ0YWdvcHMgPSAkZ0Ntcy0+R2V0VXNlclRhZ09wZXJhdGlvbnMoKTsKICAgJHBhcm1zID0gJHBhcmFtczsKCSRwYXJtc1snRk9STSddID0mICRhZWZvcm07CgogICBpZiggaXNzZXQoJGZicnBfY2FsbGNvdW50KSAmJiAkZmJycF9jYWxsY291bnQgPT0gMCAmJgogICAgICAhZW1wdHkoJHVkdG9uY2UpICYmICItMSIgIT0gJHVkdG9uY2UgKQogICAgICB7CgkgICAkdG1wID0gJHVzZXJ0YWdvcHMtPkNhbGxVc2VyVGFnKCR1ZHRvbmNlLCRwYXJtcyk7CiAgICAgIH0KICAgaWYoIWVtcHR5KCR1ZHRldmVyeSkgJiYgIi0xIiAhPSAkdWR0ZXZlcnkpCiAgICAgIHsKCSAgICR0bXAgPSAkdXNlcnRhZ29wcy0+Q2FsbFVzZXJUYWcoJHVkdGV2ZXJ5LCRwYXJtcyk7CiAgICAgIH0KCiAgfQoKZWNobyAkYWVmb3JtLT5SZW5kZXJGb3JtKCRpZCwgJHBhcmFtcywgJHJldHVybmlkKTsKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNyBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogICBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwoqLwppZiAoIWlzc2V0KCRnQ21zKSkgZXhpdDsKCgkvLyBhbmQgYSBsaXN0IG9mIGFsbCB0aGUgZXh0YW50IGZvcm1zLgoJJGZvcm1zID0gJHRoaXMtPkdldEZvcm1zKCk7CgkkbnVtX2Zvcm1zID0gY291bnQoJGZvcm1zKTsKCQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0YWJoZWFkZXJzJywgJHRoaXMtPlN0YXJ0VGFiSGVhZGVycygpIC4KCQkkdGhpcy0+U2V0VGFiSGVhZGVyKCdmb3JtcycsJHRoaXMtPkxhbmcoJ2Zvcm1zJykpIC4KCQkkdGhpcy0+U2V0VGFiSGVhZGVyKCdjb25maWcnLCR0aGlzLT5MYW5nKCdjb25maWd1cmF0aW9uJykpIC4KCQkkdGhpcy0+RW5kVGFiSGVhZGVycygpLgoJCSR0aGlzLT5TdGFydFRhYkNvbnRlbnQoKSk7CgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3N0YXJ0X2Zvcm10YWInLCR0aGlzLT5TdGFydFRhYigiZm9ybXMiKSk7CgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3N0YXJ0X2NvbmZpZ3RhYicsJHRoaXMtPlN0YXJ0VGFiKCJjb25maWciKSk7CgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2VuZF90YWInLCR0aGlzLT5FbmRUYWIoKSk7CgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2VuZF90YWJzJywkdGhpcy0+RW5kVGFiQ29udGVudCgpKTsKCSR0aGlzLT5zbWFydHktPmFzc2lnbigndGl0bGVfZm9ybV9uYW1lJywkdGhpcy0+TGFuZygndGl0bGVfZm9ybV9uYW1lJykpOwoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9mb3JtX2FsaWFzJywkdGhpcy0+TGFuZygndGl0bGVfZm9ybV9hbGlhcycpKTsKCSR0aGlzLT5zbWFydHktPmFzc2lnbignc3RhcnRfY29uZmlnZm9ybScsJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsCgkJJ2FkbWluX3VwZGF0ZV9jb25maWcnLCAkcmV0dXJuaWQpKTsKCSR0aGlzLT5zbWFydHktPmFzc2lnbignbWVzc2FnZScsIGlzc2V0KCRwYXJhbXNbJ2ZicnBfbWVzc2FnZSddKT8kcGFyYW1zWydmYnJwX21lc3NhZ2UnXTonJyk7CgkKCSRmb3JtQXJyYXkgPSBhcnJheSgpOwoJJGN1cnJvdyA9ICJyb3cxIjsKCWZvcmVhY2ggKCRmb3JtcyBhcyAkdGhpc0Zvcm0pCgl7CgkJJG9uZXNldCA9IG5ldyBzdGRDbGFzcygpOwoJCSRvbmVzZXQtPnJvd2NsYXNzID0gJGN1cnJvdzsKCQlpZiAoJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IEZvcm1zJykpCgkJewoJCQkkY29uZiA9ICR0aGlzLT5HZXRDb25maWcoKTsKCQkJJG9uZXNldC0+bmFtZSA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwKCQkJCSdhZG1pbl9hZGRfZWRpdF9mb3JtJywgJycsCgkJCQkkdGhpc0Zvcm1bJ25hbWUnXSwgYXJyYXkoJ2Zvcm1faWQnPT4kdGhpc0Zvcm1bJ2Zvcm1faWQnXSkpOwoJCQkkb25lc2V0LT54bWwgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsJ2V4cG9ydHhtbCcsJycsIjxpbWcgc3JjPVwiIi4kY29uZlsncm9vdF91cmwnXS4iL2ltYWdlcy9jbXMveG1sX3Jzcy5naWZcIiBjbGFzcz1cInN5c3RlbWljb25cIiBhbHQ9XCJFeHBvcnQgRm9ybSBhcyBYTUxcIiAvPiIsYXJyYXkoJ2Zvcm1faWQnPT4kdGhpc0Zvcm1bJ2Zvcm1faWQnXSkpOwoJCQkkb25lc2V0LT5lZGl0bGluayA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwKCQkJCSdhZG1pbl9hZGRfZWRpdF9mb3JtJywgJycsCgkJCQkkZ0Ntcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2VkaXQuZ2lmJywkdGhpcy0+TGFuZygnZWRpdCcpLCcnLCcnLCdzeXN0ZW1pY29uJyksCgkJCQkJYXJyYXkoJ2Zvcm1faWQnPT4kdGhpc0Zvcm1bJ2Zvcm1faWQnXSkpOwoJCQkkb25lc2V0LT5kZWxldGVsaW5rID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLAoJCQkJJ2FkbWluX2RlbGV0ZV9mb3JtJywgJycsCgkJCQkkZ0Ntcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2RlbGV0ZS5naWYnLCR0aGlzLT5MYW5nKCdkZWxldGUnKSwnJywnJywnc3lzdGVtaWNvbicpLAoJCQkJYXJyYXkoJ2Zvcm1faWQnPT4kdGhpc0Zvcm1bJ2Zvcm1faWQnXSksCgkJCQkkdGhpcy0+TGFuZygnYXJlX3lvdV9zdXJlX2RlbGV0ZV9mb3JtJywkdGhpc0Zvcm1bJ25hbWUnXSkpOwoJCgkJfQoJCWVsc2UKCQl7CgkJCSRvbmVzZXQtPm5hbWU9JHRoaXNGb3JtWyduYW1lJ107CgkJCSRvbmVzZXQtPmVkaXRsaW5rID0gJyc7CgkJCSRvbmVzZXQtPmRlbGV0ZWxpbmsgPSAnJzsKCQl9CgkJJG9uZXNldC0+dXNhZ2UgPSAkdGhpc0Zvcm1bJ2FsaWFzJ107CgkJYXJyYXlfcHVzaCgkZm9ybUFycmF5LCRvbmVzZXQpOwoJCSgkY3Vycm93ID09ICJyb3cxIj8kY3Vycm93PSJyb3cyIjokY3Vycm93PSJyb3cxIik7CgkJfQoJaWYgKCR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBGb3JtcycpKQoJewoJCSR0aGlzLT5zbWFydHktPmFzc2lnbignYWRkbGluaycsJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLAoJCQknYWRtaW5fYWRkX2VkaXRfZm9ybScsICcnLAoJCQkkZ0Ntcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL25ld29iamVjdC5naWYnLCAkdGhpcy0+TGFuZygndGl0bGVfYWRkX25ld19mb3JtJyksJycsCgkJCQknJywnc3lzdGVtaWNvbicpLCBhcnJheSgpKSk7CgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdhZGRmb3JtJywkdGhpcy0+Q3JlYXRlTGluaygkaWQsCgkJCSdhZG1pbl9hZGRfZWRpdF9mb3JtJywgJycsICR0aGlzLT5MYW5nKCd0aXRsZV9hZGRfbmV3X2Zvcm0nKSwKCQkJYXJyYXkoKSkpOwoJCSR0aGlzLT5zbWFydHktPmFzc2lnbignbWF5X2NvbmZpZycsMSk7Cgl9CgllbHNlCgl7CgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdub19wZXJtaXNzaW9uJywKCQkJJHRoaXMtPkxhbmcoJ2xhY2twZXJtaXNzaW9uJykpOwoJfQoJCgoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9tbGVfdmVyc2lvbicsJHRoaXMtPkxhbmcoJ3RpdGxlX21sZV92ZXJzaW9uJykpOwkJCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X21sZV92ZXJzaW9uJywkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsICdmYnJwX21sZV92ZXJzaW9uJywgMSwgJHRoaXMtPkdldFByZWZlcmVuY2UoJ21sZV92ZXJzaW9uJywnMCcpKS4gJHRoaXMtPkxhbmcoJ3RpdGxlX21sZV92ZXJzaW9uX2xvbmcnKSk7CgoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9oaWRlX2Vycm9ycycsJHRoaXMtPkxhbmcoJ3RpdGxlX2hpZGVfZXJyb3JzJykpOwkJCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X2hpZGVfZXJyb3JzJywkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsICdmYnJwX2hpZGVfZXJyb3JzJywgMSwgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2hpZGVfZXJyb3JzJywnMCcpKS4gJHRoaXMtPkxhbmcoJ3RpdGxlX2hpZGVfZXJyb3JzX2xvbmcnKSk7CgkKCSR0aGlzLT5zbWFydHktPmFzc2lnbigndGl0bGVfcmVsYXhlZF9lbWFpbF9yZWdleCcsJHRoaXMtPkxhbmcoJ3RpdGxlX3JlbGF4ZWRfZW1haWxfcmVnZXgnKSk7CQkKCSR0aGlzLT5zbWFydHktPmFzc2lnbignaW5wdXRfcmVsYXhlZF9lbWFpbF9yZWdleCcsJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAnZmJycF9yZWxheGVkX2VtYWlsX3JlZ2V4JywgMSwgJHRoaXMtPkdldFByZWZlcmVuY2UoJ3JlbGF4ZWRfZW1haWxfcmVnZXgnLCcwJykpLiAkdGhpcy0+TGFuZygndGl0bGVfcmVsYXhlZF9yZWdleF9sb25nJykpOwoJCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2VuYWJsZV9mYXN0YWRkJywkdGhpcy0+TGFuZygndGl0bGVfZW5hYmxlX2Zhc3RhZGQnKSk7CgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X2VuYWJsZV9mYXN0YWRkJywkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsICdmYnJwX2VuYWJsZV9mYXN0YWRkJywgMSwgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2VuYWJsZV9mYXN0YWRkJywnMScpKS4gJHRoaXMtPkxhbmcoJ3RpdGxlX2VuYWJsZV9mYXN0YWRkX2xvbmcnKSk7CQkKCQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9yZXF1aXJlX2ZpZWxkbmFtZXMnLCR0aGlzLT5MYW5nKCd0aXRsZV9yZXF1aXJlX2ZpZWxkbmFtZXMnKSk7CQkKCSR0aGlzLT5zbWFydHktPmFzc2lnbignaW5wdXRfcmVxdWlyZV9maWVsZG5hbWVzJywkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsICdmYnJwX3JlcXVpcmVfZmllbGRuYW1lcycsIDEsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdyZXF1aXJlX2ZpZWxkbmFtZXMnLCcxJykpLiAkdGhpcy0+TGFuZygndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzX2xvbmcnKSk7CQkKCQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV91bmlxdWVfZmllbGRuYW1lcycsJHRoaXMtPkxhbmcoJ3RpdGxlX3VuaXF1ZV9maWVsZG5hbWVzJykpOwoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF91bmlxdWVfZmllbGRuYW1lcycsJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAnZmJycF91bmlxdWVfZmllbGRuYW1lcycsIDEsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCd1bmlxdWVfZmllbGRuYW1lcycsJzEnKSkuICR0aGlzLT5MYW5nKCd0aXRsZV91bmlxdWVfZmllbGRuYW1lc19sb25nJykpOwkJCgkKCSR0aGlzLT5zbWFydHktPmFzc2lnbigndGl0bGVfZW5hYmxlX2FudGlzcGFtJywkdGhpcy0+TGFuZygndGl0bGVfZW5hYmxlX2FudGlzcGFtJykpOwoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF9lbmFibGVfYW50aXNwYW0nLCR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwgJ2ZicnBfZW5hYmxlX2FudGlzcGFtJywgMSwgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2VuYWJsZV9hbnRpc3BhbScsJzEnKSkuICR0aGlzLT5MYW5nKCd0aXRsZV9lbmFibGVfYW50aXNwYW1fbG9uZycpKTsKCQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9zaG93X2ZpZWxkaWRzJywkdGhpcy0+TGFuZygndGl0bGVfc2hvd19maWVsZGlkcycpKTsKCSR0aGlzLT5zbWFydHktPmFzc2lnbignaW5wdXRfc2hvd19maWVsZGlkcycsCgkJJHRoaXMtPkNyZWF0ZUlucHV0Y2hlY2tib3goJGlkLCdmYnJwX3Nob3dfZmllbGRpZHMnLDEsCgkJJHRoaXMtPkdldFByZWZlcmVuY2UoJ3Nob3dfZmllbGRpZHMnLCcwJykpLiAkdGhpcy0+TGFuZygndGl0bGVfc2hvd19maWVsZGlkc19sb25nJykpOwoJCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX3Nob3dfZmllbGRhbGlhc2VzJywkdGhpcy0+TGFuZygndGl0bGVfc2hvd19maWVsZGFsaWFzZXMnKSk7CgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X3Nob3dfZmllbGRhbGlhc2VzJywKCQkkdGhpcy0+Q3JlYXRlSW5wdXRjaGVja2JveCgkaWQsJ2ZicnBfc2hvd19maWVsZGFsaWFzZXMnLDEsCgkJJHRoaXMtPkdldFByZWZlcmVuY2UoJ3Nob3dfZmllbGRhbGlhc2VzJywnMScpKS4gJHRoaXMtPkxhbmcoJ3RpdGxlX3Nob3dfZmllbGRhbGlhc2VzX2xvbmcnKSk7CgkKCSR0aGlzLT5zbWFydHktPmFzc2lnbigndGl0bGVfc2hvd192ZXJzaW9uJywkdGhpcy0+TGFuZygndGl0bGVfc2hvd192ZXJzaW9uJykpOwoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF9zaG93X3ZlcnNpb24nLCR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwgJ2ZicnBfc2hvd192ZXJzaW9uJywgMSwgJHRoaXMtPkdldFByZWZlcmVuY2UoJ3Nob3dfdmVyc2lvbicsJzEnKSkuICR0aGlzLT5MYW5nKCd0aXRsZV9zaG93X3ZlcnNpb25fbG9uZycpKTsKCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2JsYW5rX2ludmFsaWQnLCR0aGlzLT5MYW5nKCd0aXRsZV9ibGFua19pbnZhbGlkJykpOwoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF9ibGFua19pbnZhbGlkJywkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsCiAgICAgICdmYnJwX2JsYW5rX2ludmFsaWQnLCAxLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnYmxhbmtfaW52YWxpZCcsJzAnKSkuCiAgICAgICR0aGlzLT5MYW5nKCd0aXRsZV9ibGFua19pbnZhbGlkX2xvbmcnKSk7CiAgIAkJCQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnZmJycF9zdWJtaXQnLCAkdGhpcy0+TGFuZygnc2F2ZScpKSk7CgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2VuZF9jb25maWdmb3JtJywkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKCQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzdGFydF94bWxmb3JtJywkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwgJ2ltcG9ydHhtbCcsICRyZXR1cm5pZCwgJ3Bvc3QnLCdtdWx0aXBhcnQvZm9ybS1kYXRhJykpOwoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzdWJtaXR4bWwnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnZmJycF9zdWJtaXQnLCAkdGhpcy0+TGFuZygndXBsb2FkJykpKTsKCSR0aGlzLT5zbWFydHktPmFzc2lnbignZW5kX3htbGZvcm0nLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwoJCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X3htbF90b191cGxvYWQnLCR0aGlzLT5DcmVhdGVJbnB1dEZpbGUoJGlkLCAnZmJycF94bWxmaWxlJykpOwoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV94bWxfdG9fdXBsb2FkJywkdGhpcy0+TGFuZygndGl0bGVfeG1sX3RvX3VwbG9hZCcpKTsKCSR0aGlzLT5zbWFydHktPmFzc2lnbigndGl0bGVfeG1sX3VwbG9hZF9mb3JtbmFtZScsJHRoaXMtPkxhbmcoJ3RpdGxlX3htbF91cGxvYWRfZm9ybW5hbWUnKSk7CgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X3htbF91cGxvYWRfZm9ybW5hbWUnLAoJICAgICAgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsJ2ZicnBfaW1wb3J0X2Zvcm1uYW1lJywnJywyNSkpOwoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV94bWxfdXBsb2FkX2Zvcm1hbGlhcycsJHRoaXMtPkxhbmcoJ3RpdGxlX3htbF91cGxvYWRfZm9ybWFsaWFzJykpOwoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF94bWxfdXBsb2FkX2Zvcm1hbGlhcycsCgkgICAgICAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwnZmJycF9pbXBvcnRfZm9ybWFsaWFzJywnJywyNSkpOwoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdpbmZvX2xlYXZlZW1wdHknLCR0aGlzLT5MYW5nKCdoZWxwX2xlYXZlZW1wdHknKSk7CgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2xlZ2VuZF94bWxfaW1wb3J0JywkdGhpcy0+TGFuZygndGl0bGVfaW1wb3J0X2xlZ2VuZCcpKTsKCQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduX2J5X3JlZignZm9ybXMnLCAkZm9ybUFycmF5KTsJCQkKCWVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnQWRtaW5NYWluLnRwbCcpOwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/action.exportxml.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgppZiAoISBpc3NldCgkcGFyYW1zWydmb3JtX2lkJ10pICYmIGlzc2V0KCRwYXJhbXNbJ2Zvcm0nXSkpCiAgewogICAgLy8gZ2V0IHRoZSBmb3JtIGJ5IG5hbWUsIG5vdCBJRAogICAgJHBhcmFtc1snZm9ybV9pZCddID0gJHRoaXMtPkdldEZvcm1JREZyb21BbGlhcygkcGFyYW1zWydmb3JtJ10pOwogIH0KCiRhZWZvcm0gPSBuZXcgZmJGb3JtKCR0aGlzLCRwYXJhbXMsdHJ1ZSk7Cgokc3BlYyA9ICRhZWZvcm0tPkdldE5hbWUoKS4iLnhtbCI7CiRzcGVjID0gcHJlZ19yZXBsYWNlKCcvW15cd1xkXC5cLVxfXS8nLCdfJywkc3BlYyk7CiR4bWxzdHIgPSAkYWVmb3JtLT5FeHBvcnRYTUwoaXNzZXQoJHBhcmFtc1snZmJycF9leHBvcnRfdmFsdWVzJ10pP3RydWU6ZmFsc2UpOwoKICAgIEBvYl9jbGVhbigpOwogICAgQG9iX2NsZWFuKCk7CiAgICBoZWFkZXIoJ1ByYWdtYTogcHVibGljJyk7CiAgICBoZWFkZXIoJ0V4cGlyZXM6IDAnKTsKICAgIGhlYWRlcignQ2FjaGUtQ29udHJvbDogbXVzdC1yZXZhbGlkYXRlLCBwb3N0LWNoZWNrPTAsIHByZS1jaGVjaz0wJyk7CiAgICBoZWFkZXIoJ0NhY2hlLUNvbnRyb2w6IHByaXZhdGUnLGZhbHNlKTsKICAgIGhlYWRlcignQ29udGVudC1EZXNjcmlwdGlvbjogRmlsZSBUcmFuc2ZlcicpOwogICAgaGVhZGVyKCdDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2ZvcmNlLWRvd25sb2FkOyBjaGFyc2V0PXV0Zi04Jyk7CiAgICBoZWFkZXIoJ0NvbnRlbnQtTGVuZ3RoOiAnIC4gc3RybGVuKCR4bWxzdHIpKTsKICAgIGhlYWRlcignQ29udGVudC1EaXNwb3NpdGlvbjogYXR0YWNobWVudDsgZmlsZW5hbWU9JyAuICRzcGVjKTsKICAgIGVjaG8gJHhtbHN0cjsKICAgIGV4aXQ7Cj8+]]></data>
	</file>
	<file>
	  <filename>/action.feuserform.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKJGZldSA9ICYkdGhpcy0+R2V0TW9kdWxlSW5zdGFuY2UoJ0Zyb250RW5kVXNlcnMnKTsKaWYgKCRmZXUgPT0gZmFsc2UgfHwgJGZldS0+TG9nZ2VkSW4oKSA9PSBmYWxzZSkKCXsKCXJldHVybjsKCX0KJHRoaXMtPkRvQWN0aW9uKCdkZWZhdWx0JywkaWQsJHBhcmFtcywgJHJldHVybmlkKTsKPz4K]]></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+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgppZiAoIWlzc2V0KCRwYXJhbXNbJ2ZicnBfZiddKSB8fCAhaXNzZXQoJHBhcmFtc1snZmJycF9yJ10pIHx8ICFpc3NldCgkcGFyYW1zWydmYnJwX2MnXSkpCgl7CgllY2hvICR0aGlzLT5MYW5nKCd2YWxpZGF0aW9uX3BhcmFtX2Vycm9yJyk7CglyZXR1cm4gZmFsc2U7Cgl9CgokcGFyYW1zWydyZXNwb25zZV9pZCddPSRwYXJhbXNbJ2ZicnBfciddOwokcGFyYW1zWydmb3JtX2lkJ109JHBhcmFtc1snZmJycF9mJ107CiRwYXJhbXNbJ2ZicnBfdXNlcl9mb3JtX3ZhbGlkYXRlJ109dHJ1ZTsKJGFlZm9ybSA9IG5ldyBmYkZvcm0oJHRoaXMsICRwYXJhbXMsIHRydWUpOwoKaWYgKCEkYWVmb3JtLT5DaGVja1Jlc3BvbnNlKCRwYXJhbXNbJ2ZicnBfZiddLCAkcGFyYW1zWydmYnJwX3InXSwgJHBhcmFtc1snZmJycF9jJ10pKQp7CgllY2hvICR0aGlzLT5MYW5nKCd2YWxpZGF0aW9uX3Jlc3BvbnNlX2Vycm9yJyk7CglyZXR1cm4gZmFsc2U7Cn0KCgovKiBTdGlra2kgcmVtb3ZlZDogT2xkIHN0dWZmLCBzaG91bGQgYmUgcmVtb3ZlZCBmcm9tIEZvcm0uY2xhc3MucGhwIGFzd2VsbAplbHNlCnsKCS8vWyMyNzkyXSBEZWxldGVSZXNwb25zZSBpcyBuZXZlciBjYWxsZWQgb24gdmFsaWRhdGlvbjsKCS8vJGFlZm9ybS0+RGVsZXRlUmVzcG9uc2UoJHBhcmFtc1snZmJycF9yJ10pOwp9CiovCgokZmllbGRzID0gJGFlZm9ybS0+R2V0RmllbGRzKCk7CiRjb25maXJtYXRpb25GaWVsZCA9IC0xOwpmb3IoJGk9MDskaTxjb3VudCgkZmllbGRzKTskaSsrKQoJewoJaWYgKCRmaWVsZHNbJGldLT5HZXRGaWVsZFR5cGUoKSA9PSAnRGlzcG9zaXRpb25FbWFpbENvbmZpcm1hdGlvbicpCgkJewoJCSRjb25maXJtYXRpb25GaWVsZCA9ICRpOwoJCWJyZWFrOwoJCX0KCX0KCQppZiAoJGNvbmZpcm1hdGlvbkZpZWxkICE9IC0xKQoJewoJJGZpZWxkc1skY29uZmlybWF0aW9uRmllbGRdLT5BcHByb3ZlVG9HbygkcGFyYW1zWydmYnJwX3InXSk7CgkkcmVzdWx0cyA9ICRhZWZvcm0tPkRpc3Bvc2UoJHJldHVybmlkKTsKCWlmICgkcmVzdWx0c1swXSA9PSB0cnVlKQoJCXsKCQkkcmV0ID0gJGZpZWxkc1skY29uZmlybWF0aW9uRmllbGRdLT5HZXRPcHRpb24oJ3JlZGlyZWN0X3BhZ2UnLCctMScpOwoJCWlmICgkcmV0ICE9IC0xKQoJCQl7CgkJCSR0aGlzLT5SZWRpcmVjdENvbnRlbnQoJHJldCk7CgkJCX0KCQl9CgllbHNlCgkJewoJCWVjaG8gIkVycm9yITogIjsKCQlmb3JlYWNoICgkcmVzdWx0c1sxXSBhcyAkdGhpc1JlcykKCQkJewoJCQllY2hvICR0aGlzUmVzIC4gJzxiciAvPic7CgkJCX0KCQl9Cgl9CmVsc2UKCXsKCQllY2hvICR0aGlzLT5MYW5nKCd2YWxpZGF0aW9uX25vX2ZpZWxkX2Vycm9yJyk7Cgl9Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/changelog.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHVsPgo8bGk+VmVyc2lvbiAwLjYuMy4KCTx1bD4KCQk8bGk+U2VjdXJpdHkgcGF0Y2ggZm9yIFVwbG9hZCBmaWVsZCB0eXBlLjwvbGk+CgkJPGxpPk51bWVyb3VzIGJ1Z3MgZml4ZXMuIFRoYW5rcyB0byBldmVyeW9uZSB3aG8gcmVwb3J0ZWQuPC9saT4KCQk8bGk+TnVtZXJvdXMgZml4ZXMgYW5kIGltcHJvdmVtZW50cyBmb3IgdXNlIHdpdGggRm9ybUJyb3dzZXIgdjAuMy54LjwvbGk+CgkJPGxpPkltcHJvdmVtZW50cyB0byB0aGUgQ29tcHV0ZWRGaWVsZCB0eXBlIHRvIGFsbG93IG11Y2ggbW9yZSBjb21wdXRhdGlvbi48L2xpPgoJCTxsaT5WaWxraXMnIGZpeGVzIGZvciBsb2NhbGl6aW5nIENvdW50cnlQaWNrZXI8L2xpPgoJCTxsaT5SeWFuIEZvc3RlcidzIHBhdGNoIGZvciByZS1vcmRlcmluZyBkYXRlIGlucHV0cyBvbiBEYXRlUGlja2VyPC9saT4KCTwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDAuNi4yLgoJPHVsPgoJCTxsaT5BIGxvdCBvZiBzbWFsbCBhbmQgYmlnIGJ1Z3MgZml4ZXMuIFRoYW5rcyB0byBldmVyeW9uZSB3aG8gcmVwb3J0ZWQuPC9saT4KCQk8bGk+SW50cm9kdWNpbmcgZHluYW1pYyBmaWVsZCBtYW5hZ2VtZW50LjwvbGk+CgkJPGxpPk5ldyAiWWVhclB1bGxEb3duIiBmaWVsZCB0eXBlIGFkZGVkPC9saT4KCQk8bGk+Q29tcGF0aWJsZSB3aXRoIENNU01TIDEuNy4xIGFuZCBmdXJ0aGVyLjwvbGk+CgkJPGxpPkFkZGVkIGpRdWVyeS4gUHJvdG90eXBlIHJlbW92ZWQgY29tcGxldGVseS48L2xpPgoJCTxsaT5BZGRlZCBzb21lIHN0eWxpbmcuPC9saT4KCTwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDAuNi4xLgoJPHVsPgoJCTxsaT5OdW1lcm91cyBCdWcgZml4ZXMuIElmIHlvdXIgYnVnIGlzbid0IGZpeGVkLCBwb3N0IGl0IGluIHRoZSB0cmFja2VyITwvbGk+CgkJPGxpPk5ldyBWYWxpZGF0aW9uIFVEVCBjb2RlIHByb3ZpZGVkIGJ5IEplZmYgQm9zY2g8L2xpPgoJCTxsaT5BYmlsaXR5IHRvIHJlamVjdCBibGFuay9vbmx5IHNwYWNlcyBmb3IgcmVxdWlyZWQgZmllbGRzPC9saT4KCQk8bGk+TmV3ICJDb21wYW55RGlyZWN0b3J5IiIgRmllbGQgdHlwZSBwcm92aWRlZCBieSBKZXJlbXkgQmFzczwvbGk+CgkJPGxpPkltcHJvdmVtZW50cyB0byBkZWZhdWx0IHZhbHVlIGNvZGUgcHJvdmlkZWQgYnkgSmVyZW15IEJhc3M8L2xpPgoJCTxsaT5OZXcgIk1vZHVsZSBJbnRlcmZhY2UiIGZpZWxkIHR5cGUgcHJvdmlkZWQgYnkgSmVyZW15IEJhc3M8L2xpPgoJCTxsaT5OZXcgIlVzZXIgRGVmaW5lZCBUYWcgQ2FsbCIgZmllbGQgdHlwZTwvbGk+CgkJPGxpPkZpeCB0byBzdXBwb3J0IHN5bnRheCBoaWdobGlnaHRlcnMgZm9yIHRlbXBsYXRlcyBhbmQgSmF2YXNjcmlwdCBvbiBhZG1pbiBzaWRlPC9saT4KCQk8bGk+PC9saT4KCTwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDAuNi4gMzAgRGVjIDA5LiBCdWcgZml4ZXMuIEZpbmFsbHkgcmVsZWFzaW5nIHRoaXMgdGhpbmchPC9saT4KPGxpPlZlcnNpb24gMC42YjIuCiAgIDx1bD4KICAgICAgPGxpPk51bWVyb3VzIGJ1ZyBmaXhlcy4gVGhhbmtzIGZvciBhbGwgd2hvIHJlcG9ydGVkIG9uIGJ1Z3MhPC9saT4KICAgICAgPGxpPkFkZGVkIEZvcm0gRGlzcG9zaXRpb24gdG8gZG8gYW4gSFRUUCBHRVQgb3IgUE9TVCB0byBhbnkgYXJiaXRyYXJ5IFVSTCBmb3IgZm9ybSBoYW5kbGluZzwvbGk+CiAgICAgIDxsaT5BZGRlZCBjYXBhYmlsaXR5IChhbmQgZXhhbXBsZSBvZikgYWR2YW5jZWQgbXVsdGlwYWdlIGNvbnRhY3QgZm9ybSB3aGVyZSBhIHByZXZpb3VzIHJlc3BvbnNlIGdldHMgZGlzcGxheWVkIG9uIGEgc3Vic2VxdWVudCBwYWdlIGFzIHBlciB1cHRvZWxldmVuJ3MgRlI8L2xpPgogICAgICA8bGk+Rml4IGZvciB0ZW1wbGF0ZSAkZmxkX1ggcmVtYXBwaW5nIG9uIFhNTCBpbXBvcnQ8L2xpPgogICAgICA8bGk+RXh0ZW5kZWQgdG8gcHJvdmlkZSBET00vQ1NTIGlkIGF0dHJpYnV0ZXMgdG8gZmllbGRzPC9saT4KICAgICAgPGxpPkNsZWFuZWQgdXAgYmFkIHVzZSBvZiByZWZlcmVuY2VzIGZvciBQSFAgNS54PC9saT4KICAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMC42YjEuCgk8dWw+CgkJPGxpPlVwZGF0ZWQgZGF0YWJhc2UgY29kZSB0byBiZSBDTVNNUyAxLjctY29tcGF0aWJsZTwvbGk+CgkJPGxpPkFkZGVkIEJ1dHRvbiBmaWVsZCB0eXBlLjwvbGk+CgkJPGxpPkltcGxlbWVudGVkIEZvcm1Ccm93c2VyIHYwLjMgRGlzcG9zaXRpb24uPC9saT4KCQk8bGk+TnVtZXJvdXMgY29kZSBmaXhlcy48L2xpPgoJPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMC41LjEyLiAzIFNlcHQgMDkuIE51bWVyb3VzIHVzZXItc3VibWl0dGVkIGZpeGVzLiBUaGFua3MgdG8gQ2FsZ3V5IGFuZCBTaW1vbiBTY2hhdWZpLjwvbGk+CjxsaT5WZXJzaW9uIDAuNS4xMS4gMTkgSmFuIDA5LiAoY2FsZ3V5MTAwMCkKICA8dWw+CiAgICA8bGk+QWRkcyB0aGUgY2FwYWJpbGl0eSB0byBjYWxsIGEgVURUIGJlZm9yZSB0aGUgZm9ybSBpcyBkaXNwbGF5ZWQuPC9saT4KICAgIDxsaT5Nb3ZlIGNoYW5nZWxvZyB0byBhbiBleHRlcm5hbCBmaWxlLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMC41LjEwLiAxMiBKYW4gMDkuIEJ1ZyBmaXhlcyB0byByZXN0b3JlIGZ1bmN0aW9uYWxpdHkgb2YgRm9ybUJyb3dzZXIuPC9saT4KPGxpPlZlcnNpb24gMC41LjkuIEphbiAwOSAoY2FsZ3V5MTAwMCkgLSBNaW5vciBjaGFuZ2UgdG8gdGhlIERpc3Bvc2l0aW9uRmlsZSBjbGFzcy48L2xpPgo8bGk+VmVyc2lvbiAwLjUuOC4gSmFuIDA5IChjYWxndXkxMDAwKSAtIE1pbm9yIGNoYW5nZSB0byB0aGUgRGlzcG9zaXRpb25NdWx0aXNlbGVjdEZpbGVEaXJlY3RvciBjbGFzcy48L2xpPgo8bGk+VmVyc2lvbiAwLjUuNy4gSmFuIDA5IChjYWxndXkxMDAwKSAtIE1pbm9yIGNoYW5nZSB0byB0aGUgRGlzcG9zaXRpb25NdWx0aXNlbGVjdEZpbGVEaXJlY3RvciBjbGFzcy48L2xpPgo8bGk+VmVyc2lvbiAwLjUuNi4gMjMgRGVjIDA4LiBCdWcgZml4ZXMuPC9saT4KPGxpPlZlcnNpb24gMC41LjUuIDEgT2N0IDA4LiBCdWcgZml4ZXMuIEFkZGVkIG5ldyBEaXNwb3NpdGlvbkZyb21FbWFpbEFkZHJlc3NGaWVsZCB0byByZXBsYWNlIGRlZmljaWVuY2llcyB3aXRoIEVtYWlsIEFkZHJlc3MgJ0Zyb20nIEZpZWxkIHR5cGUuPC9saT4KPGxpPlZlcnNpb24gMC41LjQuIDI5IEF1ZyAwOC4gU2NyYXBwaW5nIHBsYW5zIGZvciAwLjYuIEJ1ZyBmaXhlcy4gVGVkJ3MgbmV3IFwiRW1haWwgXCJGcm9tIEFkZHJlc3NcIiBBZ2FpbiBGaWVsZFwiLiBBZGRlZCBkYXRhYmFzZSBpbmRpY2VzLjwvbGk+CjxsaT5WZXJzaW9uIDAuNS4zLiAyNiBNYXkgMDguIEJ1Z2ZpeGVzIHRvIHByZXZpb3VzIHNldCBvZiBidWdmaXhlcy4gTm93IHJlYWR5IGZvciBtYWpvciB1cGdyYWRlcyBmb3IgMC42LjwvbGk+CjxsaT5WZXJzaW9uIDAuNS4yLiAyNSBNYXkgMDguIEJ1Z2ZpeGVzLiBSZWxlYXNlIGluIHByZXBhcmF0aW9uIGZvciBzdWJzdGFudGlhbCByZXdvcmtpbmcgZm9yIDAuNjwvbGk+CjxsaT5WZXJzaW9uIDAuNS4xLiAzMCBBcHJpbCAwOC4gQnVnZml4ZXMsIHJld3JvdGUgc29tZSBvZiB0aGUgRmlsZSBVcGxvYWQgY29kZSB0byBwcmV2ZW50IHdoaXRlIHNjcmVlbiBvZiBhbm5veWFuY2UuPC9saT4KPGxpPlZlcnNpb24gMC41LiAxOSBBcHJpbCAwOC4gQnVnZml4ZXMsIHN1cHBvcnQgZm9yIEZvcm1Ccm93c2VyIGZpeGVzIGFuZCBmZWF0dXJlcywgZGlzcG9zaXRpb24gdHlwZSBmb3IgdXBjb21pbmcgRm9ybUJyb3dzZXIgdmVyc2lvbi48L2xpPgo8bGk+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+VmVyc2lvbiAwLjEgLSA4IEp1bHkgMjAwNi4gSW5pdGlhbCBSZWxlYXNlPC9saT4KPC91bD4K]]></data>
	</file>
	<file>
	  <filename>/classes/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/classes/ButtonField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwOSBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDkgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkJ1dHRvbkZpZWxkIGV4dGVuZHMgZmJGaWVsZEJhc2UgCnsKCiAgZnVuY3Rpb24gZmJCdXR0b25GaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKICB7CiAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICRtb2QgPSAkZm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkdGhpcy0+VHlwZSA9ICdCdXR0b25GaWVsZCc7CiAgICAkdGhpcy0+RGlzcGxheUluRm9ybSA9IHRydWU7CiAgICAkdGhpcy0+RGlzcGxheUluU3VibWlzc2lvbiA9IGZhbHNlOwogICAgJHRoaXMtPk5vblJlcXVpcmFibGVGaWVsZCA9IHRydWU7CiAgICAkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoKTsKICAgICR0aGlzLT5zb3J0YWJsZSA9IGZhbHNlOwogIH0KCgogIGZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQogIHsKICAgICRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkkanMgPSAkdGhpcy0+R2V0T3B0aW9uKCdqYXZhc2NyaXB0JywnJyk7CgkkY3NzaWQgPSAkdGhpcy0+R2V0Q1NTSWRUYWcoKTsKCiAgICAkcmV0ID0gJzxpbnB1dCB0eXBlPSJidXR0b24iIG5hbWU9IicuJGlkLidmYnJwX18nLiR0aGlzLT5JZC4nIiB2YWx1ZT0iJyAuCgkgICAkdGhpcy0+R2V0T3B0aW9uKCd0ZXh0JywnJykuJyIgJy4kanMuJGNzc2lkLicvPic7CgkKCXJldHVybiAkcmV0OwogIH0KCiAgZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQogIHsKICAgICRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkbWFpbiA9IGFycmF5KAoJCSAgYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfYnV0dG9uX3RleHQnKSwKICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCdmYnJwX29wdF90ZXh0JywKCQkJCQkgICAgICAkdGhpcy0+R2V0T3B0aW9uKCd0ZXh0JywnJyksIDQwKSkpOwogICAgJGFkdiA9IGFycmF5KCk7CiAgICByZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7CiAgfQoKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/CatalogerItemsField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgovKiBBIGNsYXNzIHRvIHByb3ZpZGUgYSBkeW5hbWljIG11bHRpc2VsZWN0IGxpc3QgdG8gYWxsb3cgc2VsZWN0aW5nIG9uZQogKiBvciBtb3JlIGl0ZW1zIGZyb20gdGhlIGNhdGFsb2dlciAKICogdGhlIGl0ZW0gbGlzdCBpcyBmaWx0ZXJlZCBieSBhbiBhcnJheQogKiBvZiBvcHRpb25zIGFzIHNwZWNpZmllZCBpbiB0aGUgYWRtaW4uCiAqLwpjbGFzcyBmYkNhdGFsb2dlckl0ZW1zRmllbGQgZXh0ZW5kcyBmYkZpZWxkQmFzZSB7CgogIHZhciAkb3B0aW9uQ291bnQ7CiAgdmFyICRvcHRpb25BZGQ7CgogIGZ1bmN0aW9uIGZiQ2F0YWxvZ2VySXRlbXNGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKICB7CiAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICRtb2QgPSAkZm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkdGhpcy0+VHlwZSA9ICdDYXRhbG9nZXJJdGVtc0ZpZWxkJzsKICAgICR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKICAgICR0aGlzLT5Ob25SZXF1aXJhYmxlRmllbGQgPSBmYWxzZTsKICAgICR0aGlzLT5IYXNBZGRPcCA9IGZhbHNlOwogICAgJHRoaXMtPkhhc0RlbGV0ZU9wID0gZmFsc2U7CiAgICAkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoCiAgICAgICAgICAgICk7CiAgICAkdGhpcy0+b3B0aW9uQWRkID0gMDsKICAgICR0aGlzLT5zb3J0YWJsZSA9IGZhbHNlOwogIH0KCgogIGZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQogIHsKICAgIGdsb2JhbCAkZ0NtczsKCiAgICAkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgJGNhdGFsb2dlciA9ICRtb2QtPkdldE1vZHVsZUluc3RhbmNlKCdDYXRhbG9nZXInKTsKICAgIGlmKCAhJGNhdGFsb2dlciApCiAgICAgIHsKCXJldHVybiAkbW9kLT5MYW5nKCdlcnJvcl9jYXRhbG9nZXJfbW9kdWxlX25vdF9hdmFpbGFibGUnKTsKICAgICAgfQogICAgCiAgICAkY2F0YWxvZ2VyLT5nZXRVc2VyQXR0cmlidXRlcygpOwogICAgJHRtcF9hdHRycyA9ICRnQ21zLT52YXJpYWJsZXNbJ2NhdGFsb2dfYXR0cnMnXTsKICAgICRsaW5lcyA9IChpbnQpJHRoaXMtPkdldE9wdGlvbignbGluZXMnLCc1Jyk7CiAgICAkbmFtZXJlZ2V4ID0gdHJpbSgkdGhpcy0+R2V0T3B0aW9uKCduYW1lcmVnZXgnLCcnKSk7CiAgICAKICAgICRhdHRycyA9IGFycmF5KCk7CiAgICBmb3JlYWNoKCAkdG1wX2F0dHJzIGFzICRvbmUgKQogICAgICB7Cgkkc2FmZWF0dHIgPSBzdHJ0b2xvd2VyKHByZWdfcmVwbGFjZSgnL1xXLycsJycsJG9uZS0+YXR0cikpOwoJJHZhbCA9IHRyaW0oJHRoaXMtPkdldE9wdGlvbignYXR0cl8nLiRzYWZlYXR0ciwnJykpOwoJaWYoIGVtcHR5KCR2YWwpICkgY29udGludWU7Cgkkb25lLT5pbnB1dCA9ICR2YWw7CgkkYXR0cnNbXSA9ICRvbmU7CiAgICAgIH0KCiAgICAvLyBwdXQgdGhlIGhpZGRlbiBmaWVsZHMgaW50byBzbWFydHkuCiAgICBpZiggIWlzc2V0KCRnQ21zLT52YXJpYWJsZXNbJ2ZiX3NtYXJ0eV92YXJzX3NldCddKSApCiAgICAgIHsKCSRzbWFydHkgPSAkZ0Ntcy0+R2V0U21hcnR5KCk7CgkkdGhlRmllbGRzID0gJHRoaXMtPmZvcm1fcHRyLT5HZXRGaWVsZHMoKTsKCQoJZm9yKCRpID0gMDsgJGkgPCBjb3VudCgkdGhlRmllbGRzKTsgJGkrKyApCgkgIHsKCSAgICBpZiggJHRoZUZpZWxkc1skaV0tPkdldEZpZWxkVHlwZSgpICE9ICdIaWRkZW5GaWVsZCcgKSBjb250aW51ZTsKCSAgICAkc21hcnR5LT5hc3NpZ24oJ2ZsZF8nLiR0aGVGaWVsZHNbJGldLT5HZXRJZCgpLCR0aGVGaWVsZHNbJGldLT5WYWx1ZSk7CgkgICAgaWYoICR0aGVGaWVsZHNbJGldLT5HZXRBbGlhcygpICE9ICcnICkKCSAgICAgIHsKCQkkc21hcnR5LT5hc3NpZ24oJHRoZUZpZWxkc1skaV0tPkdldEFsaWFzKCksJHRoZUZpZWxkc1skaV0tPlZhbHVlKTsKCSAgICAgIH0KCSAgfQoKCSRnQ21zLT52YXJpYWJsZXNbJ2ZiX3NtYXJ0eV92YXJzX3NldCddID0gMTsKICAgICAgfQoKICAgIC8vIGZvciBlYWNoIGhpZXJhcmNoeSBpdGVtIChmcm9tIHRoZSByb290IGRvd24pCiAgICAkaG0gPSAkZ0Ntcy0+R2V0SGllcmFyY2h5TWFuYWdlcigpOwogICAgJGFsbGNvbnRlbnQgPSAkaG0tPmdldEZsYXRMaXN0KCk7CiAgICAkcmVzdWx0cyA9IGFycmF5KCk7CiAgICBmb3JlYWNoKCAkYWxsY29udGVudCBhcyAkb25lcGFnZSApCiAgICAgIHsKCSRjb250ZW50ID0gJG9uZXBhZ2UtPkdldENvbnRlbnQoKTsKCgkvLyBpZiBpdCdzIG5vdCBhIGNhdGFsb2dlciBpdGVtIGNvbnRpbnVlCglpZiggJGNvbnRlbnQtPlR5cGUoKSAhPSAnY2F0YWxvZ2l0ZW0nICkgY29udGludWU7CgoJLy8gaWYgaXQncyBub3QgYWN0aXZlIG9yIHNob3duIGluIG1lbnUgY29udGludWUKCWlmKCAhJGNvbnRlbnQtPkFjdGl2ZSgpIHx8ICEkY29udGVudC0+U2hvd0luTWVudSgpICkgY29udGludWU7CgoJLy8gaWYgdGhlIG5hbWVyZWdleCBzdHJpbmcgaXMgbm90IGVtcHR5LCBhbmQgdGhlIG5hbWUgZG9lcyBub3QgbWF0Y2ggdGhlCgkvLyAgICByZWdleCwgY29udGludWUKCWlmKCAhZW1wdHkoJG5hbWVyZWdleCApICYmICFwcmVnX21hdGNoKCcvJy4kbmFtZXJlZ2V4LicvJywkY29udGVudC0+TmFtZSgpKSApCgkgIHsKCSAgICBjb250aW51ZTsKCSAgfQoKCS8vIGZvciBlYWNoIGF0dHJpYnV0ZQoJJHBhc3NlZCA9IHRydWU7Cglmb3JlYWNoKCAkYXR0cnMgYXMgJG9uZWF0dHIgKQoJICB7CgkgICAgLy8gcGFyc2UgdGhlIGZpZWxkIHZhbHVlIHRocm91Z2ggc21hcnR5PwoJICAgICRleHByID0gJG1vZC0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoJG9uZWF0dHItPmlucHV0KTsKCSAgICBpZiggZW1wdHkoJGV4cHIpICkgY29udGludWU7IC8vIG5vIGV4cHJlc3Npb24gZm9yIHRoaXMgZmllbGQuIHBhc3MKCSAgICAKCSAgICAvLyBnZXQgdGhlIHZhbHVlIGZvciB0aGlzIGF0dHJpYnV0ZSBmb3IgdGhpcyBjb250ZW50CgkgICAgJGN1cnJlbnR2YWwgPSAkY29udGVudC0+R2V0UHJvcGVydHlWYWx1ZSgkb25lYXR0ci0+YXR0cik7CgkgICAgaWYoIGVtcHR5KCRjdXJyZW50dmFsKSApCgkgICAgICB7CgkJLy8gbm8gdmFsdWUgZm9yIHRoaXMgZmllbGQsIGJ1dCB3ZSBoYXZlIGFuIGV4cHJlc3Npb24KCQkvLyB0aGlzIGNhdGFsb2cgaXRlbSBmYWlscy4KCQkkcGFzc2VkID0gZmFsc2U7CgkJYnJlYWs7CgkgICAgICB9CgoJICAgIGxpc3QoJHR5cGUsJGV4cHIpID0gZXhwbG9kZSgnOicsJGV4cHIsMik7CgkgICAgJHR5cGUgPSB0cmltKCR0eXBlKTsKCSAgICAkZXhwciA9IHRyaW0oJGV4cHIpOwoKCSAgICAkcmVzID0gZmFsc2U7CgkgICAgc3dpdGNoKCBzdHJ0b2xvd2VyKCR0eXBlKSApCgkgICAgICB7CgkgICAgICBjYXNlICdyYW5nZSc6CgkJLy8gZm9yIHJhbmdlczoKCQkvLyBncmFiIG1pbiBhbmQgbWF4IHZhbHVlcwoJCWxpc3QoJG1pbnZhbCwkbWF4dmFsKSA9IGV4cGxvZGUoJ3RvJywkZXhwcik7CgkJJG1pbnZhbCA9IHRyaW0oJG1pbnZhbCk7ICRtYXh2YWwgPSB0cmltKCRtYXh2YWwpOwoJCS8vIGNoZWNrIGZvciBudW1lcmljCgkJaWYoICFpc19udW1lcmljKCRtaW52YWwpIHx8ICFpc19udW1lcmljKCRtYXh2YWwpICkKCQkgIHsKCQkgICAgLy8gY2FuJ3QgdGVzdCByYW5nZXMgd2l0aCBub24gbnVtZXJpYyB2YWx1ZXMKCQkgICAgLy8gc28gZmFpbAoJCSAgICAkcGFzc2VkID0gZmFsc2U7CgkJICAgIGJyZWFrOwoJCSAgfQoJCWlmKCAkbWludmFsID4gJG1heHZhbCApCgkJICB7CgkJICAgICR0bXAgPSAkbWludmFsOwoJCSAgICAkbWludmFsID0gJG1heHZhbDsKCQkgICAgJG1heHZhbCA9ICR0bXA7CgkJICB9CgkJJHJlcyA9ICgkY3VycmVudHZhbCA+PSAkbWludmFsICYmICRjdXJyZW50dmFsIDw9ICRtYXh2YWwgKTsKCQlicmVhazsKCgkgICAgICBjYXNlICdtdWx0aSc6CgkJLy8gZm9yIG11bHRpCgkJJHRtcCA9IGV4cGxvZGUoJ3wnLCRleHByKTsKCQkkcmVzID0gaW5fYXJyYXkoJGN1cnJlbnR2YWwsJHRtcCk7CgkJYnJlYWs7CgkgICAgICB9CgoJICAgIGlmKCAhJHJlcyApCgkgICAgICB7CgkJJHBhc3NlZCA9IGZhbHNlOwoJCWJyZWFrOwoJICAgICAgfQoJICB9IC8vIGZvcmVhY2ggYXR0cgoKCWlmKCAkcGFzc2VkICkKCSAgewoJICAgICRyZXN1bHRzWyRjb250ZW50LT5OYW1lKCldID0gJGNvbnRlbnQtPk5hbWUoKTsKCSAgfQogICAgICB9IC8vIGZvcmVhY2ggY29udGVudAogICAKCiAgICAvLyBBbGwgZG9uZSwgZG8gd2UgaGF2ZSBzb21ldGhpbmcgdG8gZGlzcGxheT8KICAgIGlmKCBjb3VudCgkcmVzdWx0cykgKSAKICAgICAgewoJJHNpemUgPSBtaW4oJGxpbmVzLGNvdW50KCRyZXN1bHRzKSk7Cgkkc2l6ZSA9IG1pbig1MCwkc2l6ZSk7IC8vIG1heGltdW0gNTAgbGluZXMsIHRob3VnaCB0aGlzIGlzIHByb2JhYmx5IGJpZwoKCSR2YWwgPSBhcnJheSgpOwoJaWYoICR0aGlzLT5WYWx1ZSAhPT0gZmFsc2UgKQoJICB7CgkgICAgJHZhbCA9ICR0aGlzLT5WYWx1ZTsKCSAgICBpZiggIWlzX2FycmF5KCAkdGhpcy0+VmFsdWUgKSApCgkgICAgICB7CgkJJHZhbCA9IGFycmF5KCR0aGlzLT5WYWx1ZSk7CgkgICAgICB9CgkgIH0KICAgJGNzc2lkID0gJHRoaXMtPkdldENTU0lkVGFnKCk7CglyZXR1cm4gJG1vZC0+Q3JlYXRlSW5wdXRTZWxlY3RMaXN0KCRpZCwnZmJycF9fJy4kdGhpcy0+SWQuJ1tdJywgJHJlc3VsdHMsICR2YWwsCgkJCQkJICAgJHNpemUsICRjc3NpZCk7CiAgICAgIH0KCiAgICByZXR1cm4gJyc7IC8vIGVycm9yCiAgfQoKCiAgZnVuY3Rpb24gU3RhdHVzSW5mbygpCiAgewogICAgLy8gcmV0dXJuIGEgc3RyaW5nIGZvciBkaXNwbGF5aW5nIGluIHRoZSBvcHRpb25zIGZpZWxkCiAgICAkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgJGNhdGFsb2dlciA9ICRtb2QtPkdldE1vZHVsZUluc3RhbmNlKCdDYXRhbG9nZXInKTsKICAgIGlmKCAhJGNhdGFsb2dlciApCiAgICAgIHsKCXJldHVybiAkbW9kLT5MYW5nKCdlcnJvcl9jYXRhbG9nZXJfbW9kdWxlX25vdF9hdmFpbGFibGUnKTsKICAgICAgfQogICAgcmV0dXJuICcnOwogIH0KCQoKICBmdW5jdGlvbiBQcmVQb3B1bGF0ZUFkbWluRm9ybSgkZm9ybURlc2NyaXB0b3IpCiAgewogICAgJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCiAgICAkbWFpbiA9IGFycmF5KCk7CiAgICAkY2F0YWxvZ2VyID0gJG1vZC0+R2V0TW9kdWxlSW5zdGFuY2UoJ0NhdGFsb2dlcicpOwogICAgaWYoICEkY2F0YWxvZ2VyICkKICAgICAgewoJJHRtcCA9IGFycmF5KCRtb2QtPkxhbmcoJ3dhcm5pbmcnKSwkbW9kLT5MYW5nKCdlcnJvcl9jYXRhbG9nZXJfbW9kdWxlX25vdF9hdmFpbGFibGUnKSk7CgkkbWFpbltdID0gJHRtcDsKICAgICAgfQogICAgZWxzZQogICAgICB7CglnbG9iYWwgJGdDbXM7CgkkY2F0YWxvZ2VyLT5nZXRVc2VyQXR0cmlidXRlcygpOwoJJGF0dHJzID0gJGdDbXMtPnZhcmlhYmxlc1snY2F0YWxvZ19hdHRycyddOwoKCSR0bXAgPSBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9oZWlnaHQnKSwKCQkgICAgICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsCgkJCQkJICAgJ2ZicnBfb3B0X2xpbmVzJywKCQkJCQkgICAkdGhpcy0+R2V0T3B0aW9uKCdsaW5lcycsJzUnKSwzLDMpLgoJCSAgICAgJyZuYnNwOycuJG1vZC0+TGFuZygnaGVscF9maWVsZF9oZWlnaHQnKSk7CgkkbWFpbltdID0gJHRtcDsKCgkkdG1wID0gYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfbmFtZV9yZWdleCcpLAoJCSAgICAgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwKCQkJCQkgICAnZnJicF9vcHRfbmFtZXJlZ2V4JywKCQkJCQkgICAkdGhpcy0+R2V0T3B0aW9uKCduYW1lcmVnZXgnLCcnKSwKCQkJCQkgICAyNSwyNSkuCgkJICAgICAnJm5ic3A7Jy4kbW9kLT5MYW5nKCdoZWxwX25hbWVfcmVnZXgnKSk7CgkkbWFpbltdID0gJHRtcDsKCgkkdG1wID0gYXJyYXkoJycsJG1vZC0+TGFuZygnaGVscF9jYXRhbG9nZXJfYXR0cmlidXRlX2ZpZWxkcycpKTsKCSRtYWluW10gPSAkdG1wOwoJCglmb3JlYWNoKCAkYXR0cnMgYXMgJG9uZSApCgkgIHsKCSAgICAkc2FmZWF0dHIgPSBzdHJ0b2xvd2VyKHByZWdfcmVwbGFjZSgnL1xXLycsJycsJG9uZS0+YXR0cikpOwoJICAgIGlmKCAkb25lLT5pc190ZXh0ICkgY29udGludWU7CgkgICAgJHRtcCA9IGFycmF5KCRvbmUtPmF0dHIsCgkJCSAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLAoJCQkJCSAgICAgICAnZmJycF9vcHRfYXR0cl8nLiRzYWZlYXR0ciwKCQkJCQkgICAgICAgJHRoaXMtPkdldE9wdGlvbignYXR0cl8nLiRzYWZlYXR0ciwnJyksCgkJCQkJICAgICAgIDMwLDgwKSk7CgkgICAgJG1haW5bXSA9ICR0bXA7CgkgIH0KICAgICAgfQoKICAgICRhZHYgPSBhcnJheSgpOwogICAgcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwogIH0KCgogIGZ1bmN0aW9uIEdldEh1bWFuUmVhZGFibGVWYWx1ZSgkYXNfc3RyaW5nPXRydWUpCiAgewogICAgJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICRmb3JtID0gJHRoaXMtPmZvcm1fcHRyOwogICAgaWYgKCR0aGlzLT5IYXNWYWx1ZSgpKQogICAgICB7CgkkZmllbGRSZXQgPSBhcnJheSgpOwoJaWYgKCEgaXNfYXJyYXkoJHRoaXMtPlZhbHVlKSkKCSAgewoJICAgICR0aGlzLT5WYWx1ZSA9IGFycmF5KCR0aGlzLT5WYWx1ZSk7CgkgIH0KCWlmICgkYXNfc3RyaW5nKQoJICB7CgkgICAgcmV0dXJuIGpvaW4oJGZvcm0tPkdldEF0dHIoJ2xpc3RfZGVsaW1pdGVyJywnLCcpLCR0aGlzLT5WYWx1ZSk7CgkgIH0KCWVsc2UKCSAgewoJICAgIHJldHVybiBhcnJheSgkdGhpcy0+VmFsdWUpOwoJICB9CQkJCiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJaWYgKCRhc19zdHJpbmcpCgkgIHsKCSAgICByZXR1cm4gJG1vZC0+TGFuZygndW5zcGVjaWZpZWQnKTsKCSAgfQoJZWxzZQoJICB7CgkgICAgcmV0dXJuIGFycmF5KCRtb2QtPkxhbmcoJ3Vuc3BlY2lmaWVkJykpOwoJICB9CiAgICAgIH0KCQogIH0KCn0KPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/CheckboxField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkNoZWNrYm94RmllbGQgZXh0ZW5kcyBmYkZpZWxkQmFzZSB7CgoJZnVuY3Rpb24gZmJDaGVja2JveEZpZWxkKCYkZm9ybV9wdHIsICYkcGFyYW1zKQoJewogICAgICAgICR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgICAgICRtb2QgPSAkZm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHRoaXMtPlR5cGUgPSAgJ0NoZWNrYm94RmllbGQnOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+Tm9uUmVxdWlyYWJsZUZpZWxkID0gZmFsc2U7CgkJJHRoaXMtPlJlcXVpcmVkID0gZmFsc2U7CgkJJHRoaXMtPlZhbGlkYXRpb25UeXBlcyA9IGFycmF5KAogICAgICAgICAgICAkbW9kLT5MYW5nKCd2YWxpZGF0aW9uX25vbmUnKT0+J25vbmUnLAogICAgICAgICAgICAkbW9kLT5MYW5nKCd2YWxpZGF0aW9uX211c3RfY2hlY2snKT0+J2NoZWNrZWQnCiAgICAgICAgICAgICk7CiAgICAgICR0aGlzLT5zb3J0YWJsZSA9IGZhbHNlOwoJfQoKCWZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJGxhYmVsID0gJyc7CgkJaWYgKHN0cmxlbigkdGhpcy0+R2V0T3B0aW9uKCdsYWJlbCcsJycpKSA+IDApCgkJCXsKCQkJJGxhYmVsID0gJyZuYnNwOzxsYWJlbCBmb3I9IicuJHRoaXMtPkdldENTU0lkKCkuJyI+Jy4kdGhpcy0+R2V0T3B0aW9uKCdsYWJlbCcpLic8L2xhYmVsPic7CgkJCX0KCQlpZiAoJHRoaXMtPlZhbHVlID09PSBmYWxzZSAmJiAkdGhpcy0+R2V0T3B0aW9uKCdpc19jaGVja2VkJywnMCcpPT0nMScpCgkJCXsKCQkJJHRoaXMtPlZhbHVlID0gJ3QnOwoJCQl9CgkJJGpzID0gJHRoaXMtPkdldE9wdGlvbignamF2YXNjcmlwdCcsJycpOwoJCXJldHVybiAkbW9kLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwgJ2ZicnBfXycuJHRoaXMtPklkLCAndCcsJHRoaXMtPlZhbHVlLCRqcy4kdGhpcy0+R2V0Q1NTSWRUYWcoKSkuJGxhYmVsOwoJfQoKCWZ1bmN0aW9uIEdldEh1bWFuUmVhZGFibGVWYWx1ZSgkYXNfc3RyaW5nPXRydWUpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQlpZiAoJHRoaXMtPlZhbHVlID09PSBmYWxzZSkKCQkJewoJCQkkcmV0ID0gJHRoaXMtPkdldE9wdGlvbigndW5jaGVja2VkX3ZhbHVlJywkbW9kLT5MYW5nKCd2YWx1ZV91bmNoZWNrZWQnKSk7CgkJCX0KCQllbHNlCgkJCXsKCQkJJHJldCA9ICR0aGlzLT5HZXRPcHRpb24oJ2NoZWNrZWRfdmFsdWUnLCRtb2QtPkxhbmcoJ3ZhbHVlX2NoZWNrZWQnKSk7CgkJCX0KCQlpZiAoJGFzX3N0cmluZykKCQkJewoJCQlyZXR1cm4gJHJldDsKCQkJfQoJCWVsc2UKCQkJewoJCQlyZXR1cm4gYXJyYXkoJHJldCk7CgkJCX0KCX0KCgoJZnVuY3Rpb24gU3RhdHVzSW5mbygpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkcmV0ID0gICgkdGhpcy0+R2V0T3B0aW9uKCdpc19jaGVja2VkJywnMCcpPT0nMSc/JG1vZC0+TGFuZygnY2hlY2tlZF9ieV9kZWZhdWx0Jyk6JG1vZC0+TGFuZygndW5jaGVja2VkX2J5X2RlZmF1bHQnKSk7CgkJaWYgKHN0cmxlbigkdGhpcy0+VmFsaWRhdGlvblR5cGUpPjApCgkJICB7CgkJICAJJHJldCAuPSAiLCAiLmFycmF5X3NlYXJjaCgkdGhpcy0+VmFsaWRhdGlvblR5cGUsJHRoaXMtPlZhbGlkYXRpb25UeXBlcyk7CgkJICB9CgkJcmV0dXJuICRyZXQ7Cgl9CgoJZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJG1haW4gPSBhcnJheSgKCQkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfY2hlY2tib3hfbGFiZWwnKSwKICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfbGFiZWwnLAogICAgICAgICAgICAJCSR0aGlzLT5HZXRPcHRpb24oJ2xhYmVsJywnJyksMjUsMjU1KSksCiAgICAgICAgICAgIGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2NoZWNrZWRfdmFsdWUnKSwKICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfY2hlY2tlZF92YWx1ZScsCiAgICAgICAgICAgIAkJJHRoaXMtPkdldE9wdGlvbignY2hlY2tlZF92YWx1ZScsJG1vZC0+TGFuZygndmFsdWVfY2hlY2tlZCcpKSwyNSwyNTUpKSwKICAgICAgICAgICAgYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfdW5jaGVja2VkX3ZhbHVlJyksCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X3VuY2hlY2tlZF92YWx1ZScsCiAgICAgICAgICAgIAkJJHRoaXMtPkdldE9wdGlvbigndW5jaGVja2VkX3ZhbHVlJywkbW9kLT5MYW5nKCd2YWx1ZV91bmNoZWNrZWQnKSksMjUsMjU1KSksCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2RlZmF1bHRfc2V0JyksCgkJCQkkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkZm9ybURlc2NyaXB0b3IsJ2ZicnBfb3B0X2lzX2NoZWNrZWQnLCcwJykuJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9pc19jaGVja2VkJywgJzEnLCAkdGhpcy0+R2V0T3B0aW9uKCdpc19jaGVja2VkJywnMCcpKSkKCQkJCSk7CgkJJGFkdiA9IGFycmF5KAoJCSk7CgkJcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwoJfQoKCWZ1bmN0aW9uIFZhbGlkYXRlKCkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT52YWxpZGF0ZWQgPSB0cnVlOwoJCSR0aGlzLT52YWxpZGF0aW9uRXJyb3JUZXh0ID0gJyc7CgoJCXN3aXRjaCAoJHRoaXMtPlZhbGlkYXRpb25UeXBlKQoJCSAgewoJCSAgCSAgIGNhc2UgJ25vbmUnOgoJCSAgCSAgICAgICBicmVhazsKCQkgIAkgICBjYXNlICdjaGVja2VkJzoKCQkgIAkgICAgICAgaWYgKCR0aGlzLT5WYWx1ZSA9PT0gZmFsc2UpCgkJICAJICAgICAgICAgICB7CgkJICAJICAgICAgICAgICAkdGhpcy0+dmFsaWRhdGVkID0gZmFsc2U7CgkJICAJICAgICAgICAgICAkdGhpcy0+dmFsaWRhdGlvbkVycm9yVGV4dCA9ICRtb2QtPkxhbmcoJ3lvdV9tdXN0X2NoZWNrJywkdGhpcy0+R2V0T3B0aW9uKCdsYWJlbCcsJycpKTsKCQkgIAkgICAgICAgICAgIH0KCQkgIAkgICAgICAgYnJlYWs7CgkJICB9CgkJcmV0dXJuIGFycmF5KCR0aGlzLT52YWxpZGF0ZWQsICR0aGlzLT52YWxpZGF0aW9uRXJyb3JUZXh0KTsKCX0KCn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/CheckboxGroupField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkNoZWNrYm94R3JvdXBGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCgl2YXIgJGJveENvdW50OwoJdmFyICRib3hBZGQ7CgkKCS8vIENvbnN0cnVjdG9yCglmdW5jdGlvbiBmYkNoZWNrYm94R3JvdXBGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gJ0NoZWNrYm94R3JvdXBGaWVsZCc7CgkJJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwoJCSR0aGlzLT5IYXNBZGRPcCA9IHRydWU7CgkJJHRoaXMtPkhhc0RlbGV0ZU9wID0gdHJ1ZTsKCQkkdGhpcy0+Tm9uUmVxdWlyYWJsZUZpZWxkID0gZmFsc2U7CgkJJHRoaXMtPlZhbGlkYXRpb25UeXBlcyA9IGFycmF5KCk7CiAgICAgICAgJHRoaXMtPmJveEFkZCA9IDA7CiAgICAgICAgJHRoaXMtPmhhc011bHRpcGxlRm9ybUNvbXBvbmVudHMgPSB0cnVlOwogICAgICAgICR0aGlzLT5zb3J0YWJsZSA9IGZhbHNlOwoJfQoKCS8vIENvdW50IGhvdyBtYW55IGJveGVzIHdlIGhhdmUKCWZ1bmN0aW9uIGNvdW50Qm94ZXMoKQoJewoJCSR0bXAgPSAkdGhpcy0+R2V0T3B0aW9uUmVmKCdib3hfbmFtZScpOwoJCWlmIChpc19hcnJheSgkdG1wKSkgewoJCQoJICAgICAgICAkdGhpcy0+Ym94Q291bnQgPSBjb3VudCgkdG1wKTsKCQkKCQl9IGVsc2VpZiAoJHRtcCAhPT0gZmFsc2UpIHsKCSAgICAgICAgCgkJCSR0aGlzLT5ib3hDb3VudCA9IDE7CgkgICAgfSBlbHNlIHsKCQkJCgkJCSR0aGlzLT5ib3hDb3VudCA9IDA7CgkgICAgfQoJfQoKCS8vIFJldHVybiBzdGF0dXMKICAgIGZ1bmN0aW9uIFN0YXR1c0luZm8oKQoJewogICAgICAgICRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHRoaXMtPmNvdW50Qm94ZXMoKTsKCQkkcmV0ID0gJG1vZC0+TGFuZygnYm94ZXMnLCR0aGlzLT5ib3hDb3VudCk7CgkJIHJldHVybiAkcmV0OwoJfQoKCS8vIEdldCBhZGQgYnV0dG9uCglmdW5jdGlvbiBHZXRPcHRpb25BZGRCdXR0b24oKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJcmV0dXJuICRtb2QtPkxhbmcoJ2FkZF9jaGVja2JveGVzJyk7Cgl9CgoJLy8gR2V0IGRlbGV0ZSBidXR0b24KCWZ1bmN0aW9uIEdldE9wdGlvbkRlbGV0ZUJ1dHRvbigpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQlyZXR1cm4gJG1vZC0+TGFuZygnZGVsZXRlX2NoZWNrYm94ZXMnKTsKCX0KCgkvLyBHZXQgaW5wdXQKCWZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJG5hbWVzID0gJHRoaXMtPkdldE9wdGlvblJlZignYm94X25hbWUnKTsKCQkkaXNfc2V0ID0gJHRoaXMtPkdldE9wdGlvblJlZignYm94X2lzX3NldCcpOwoJCSRqcyA9ICR0aGlzLT5HZXRPcHRpb24oJ2phdmFzY3JpcHQnLCcnKTsKCQlpZiAoISBpc19hcnJheSgkbmFtZXMpKQoJCQl7CgkJCSRuYW1lcyA9IGFycmF5KCRuYW1lcyk7CgkJCX0JCgkJaWYgKCEgaXNfYXJyYXkoJGlzX3NldCkpCgkJCXsKCQkJJGlzX3NldCA9IGFycmF5KCRpc19zZXQpOwoJCQl9CgkJJGZpZWxkRGlzcCA9IGFycmF5KCk7CgkJZm9yICgkaT0wOyRpPGNvdW50KCRuYW1lcyk7JGkrKykKCQkJewoJCQkkbGFiZWwgPSAnJzsKCQkJJHRoaXNCb3ggPSBuZXcgc3RkQ2xhc3MoKTsKCQkJaWYgKHN0cmxlbigkbmFtZXNbJGldKSA+IDApCgkJCQl7CgkJCQkkdGhpc0JveC0+bmFtZSA9ICc8bGFiZWwgZm9yPSInLiR0aGlzLT5HZXRDU1NJZCgnXycuJGkpLiciPicuJG5hbWVzWyRpXS4nPC9sYWJlbD4nOwoJCQkJJHRoaXNCb3gtPnRpdGxlID0gJG5hbWVzWyRpXTsKCQkJCX0KCQkJJGNoZWNrX3ZhbCA9IGZhbHNlOwoJCQlpZiAoJHRoaXMtPlZhbHVlICE9PSBmYWxzZSkKCQkJCXsKCQkJCSRjaGVja192YWwgPSAkdGhpcy0+RmluZEFycmF5VmFsdWUoJGkrMSk7CgkJCQl9CgkJCWVsc2UKCQkJCXsKCQkJCWlmIChpc3NldCgkaXNfc2V0WyRpXSkgJiYgJGlzX3NldFskaV0gPT0gJ3knKQoJCQkJCXsKCQkJCQkkY2hlY2tfdmFsID0gdHJ1ZTsKCQkJCQl9CgkJCQl9CgkJCSR0aGlzQm94LT5pbnB1dCA9ICRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQuJ1tdJywgKCRpKzEpLAoJCQkJJGNoZWNrX3ZhbCAhPT0gZmFsc2U/KCRpKzEpOictMScsJGpzLiR0aGlzLT5HZXRDU1NJZFRhZygnXycuJGkpKTsKCgkJCWFycmF5X3B1c2goJGZpZWxkRGlzcCwgJHRoaXNCb3gpOwoJCQl9CQkJCgkJcmV0dXJuICRmaWVsZERpc3A7Cgl9CgoJLy8gR2V0IEh1bWFuIHJlYWRhYmxlIHZhbHVlCglmdW5jdGlvbiBHZXRIdW1hblJlYWRhYmxlVmFsdWUoJGFzX3N0cmluZz10cnVlKQoJewoJCSRmb3JtID0gJHRoaXMtPmZvcm1fcHRyOwoJCQoJCS8vIEluaXQgbmFtZXMKCQkkbmFtZXMgPSAkdGhpcy0+R2V0T3B0aW9uUmVmKCdib3hfbmFtZScpOwoJCWlmICghIGlzX2FycmF5KCRuYW1lcykpIHsKCQkKCQkJCSRuYW1lcyA9IGFycmF5KCRuYW1lcyk7CgkJfQoJCQoJCS8vIEluaXQgY2hlY2tlZCBib3hlcwoJCSRjaGVja2VkID0gJHRoaXMtPkdldE9wdGlvblJlZignYm94X2NoZWNrZWQnKTsKCQlpZiAoISBpc19hcnJheSgkY2hlY2tlZCkpIHsKCQkKCQkJJGNoZWNrZWQgPSBhcnJheSgkY2hlY2tlZCk7CgkJfQoJCQoJCS8vIEluaXQgdW5jaGVja2VkIGJveGVzCgkJJHVuY2hlY2tlZCA9ICR0aGlzLT5HZXRPcHRpb25SZWYoJ2JveF91bmNoZWNrZWQnKTsKCQlpZiAoISBpc19hcnJheSgkdW5jaGVja2VkKSkgewoJCQoJCQkkdW5jaGVja2VkID0gYXJyYXkoJHVuY2hlY2tlZCk7CgkJfQoJCQoJCS8vJGZpZWxkTGFiZWxzID0gYXJyYXkoKTsKCQkkZmllbGRSZXQgPSBhcnJheSgpOwoJCWZvciAoJGk9MTskaTw9Y291bnQoJG5hbWVzKTskaSsrKSB7CgkJCgkJCWlmICgkdGhpcy0+RmluZEFycmF5VmFsdWUoJGkpID09PSBmYWxzZSkgewoJCQkKCQkJCWlmICgkdGhpcy0+R2V0T3B0aW9uKCdub19lbXB0eScsJzAnKSAhPSAnMScgJiYgaXNzZXQoJHVuY2hlY2tlZFskaS0xXSkgJiYgdHJpbSgkdW5jaGVja2VkWyRpLTFdKSAhPSAnJyApIHsKCQkJCQoJCQkJCSRmaWVsZFJldFskbmFtZXNbJGktMV1dID0gJHVuY2hlY2tlZFskaS0xXTsKCQkJCX0KCQkJfSBlbHNlIHsKCQkJCQoJCQkJaWYoIGlzc2V0KCRjaGVja2VkWyRpLTFdKSAmJiB0cmltKCRjaGVja2VkWyRpLTFdKSAhPSAnJyApICRmaWVsZFJldFskbmFtZXNbJGktMV1dID0gJGNoZWNrZWRbJGktMV07CgkJCX0KCQl9CgkJCgkJaWYgKCRhc19zdHJpbmcpIHsKCQkJCgkJCS8vIENoZWNrIGlmIHdlIHNob3VsZCBpbmNsdWRlIGxhYmVscwoJCQlpZigkdGhpcy0+R2V0T3B0aW9uKCdpbmNsdWRlX2xhYmVscycsJzAnKSA9PSB0cnVlKSB7CgkJCQoJCQkJJG91dHB1dCA9ICcnOwoJCQkJZm9yZWFjaCgkZmllbGRSZXQgYXMgJGtleT0+JHZhbHVlKSB7CgkJCQkKCQkJCQkkb3V0cHV0IC49ICRrZXkuJzogJy4kdmFsdWUuJGZvcm0tPkdldEF0dHIoJ2xpc3RfZGVsaW1pdGVyJywnLCcpOwoJCQkJCgkJCQl9CgkJCQoJCQkJJG91dHB1dCA9IHN1YnN0cigkb3V0cHV0LDAsc3RybGVuKCRvdXRwdXQpLTEpOwoJCQkJcmV0dXJuICRvdXRwdXQ7CgkJCX0KCQkJCgkJCXJldHVybiBqb2luKCRmb3JtLT5HZXRBdHRyKCdsaXN0X2RlbGltaXRlcicsJywnKSwkZmllbGRSZXQpOwoJCQkKCQl9IGVsc2UgewoJCQoJCQlyZXR1cm4gJGZpZWxkUmV0OwoJCX0KCX0KCgkvLyBBZGQgYWN0aW9uCglmdW5jdGlvbiBEb09wdGlvbkFkZCgmJHBhcmFtcykKCXsKCQkkdGhpcy0+Ym94QWRkID0gMTsKCX0KCgkvLyBEZWxldGUgYWN0aW9uCglmdW5jdGlvbiBEb09wdGlvbkRlbGV0ZSgmJHBhcmFtcykKCXsKCQkkZGVsY291bnQgPSAwOwoJCWZvcmVhY2ggKCRwYXJhbXMgYXMgJHRoaXNLZXk9PiR0aGlzVmFsKQoJCQl7CgkJCWlmIChzdWJzdHIoJHRoaXNLZXksMCw5KSA9PSAnZmJycF9kZWxfJykKCQkJCXsKCQkJCSR0aGlzLT5SZW1vdmVPcHRpb25FbGVtZW50KCdib3hfbmFtZScsICR0aGlzVmFsIC0gJGRlbGNvdW50KTsKCQkJCSR0aGlzLT5SZW1vdmVPcHRpb25FbGVtZW50KCdib3hfY2hlY2tlZCcsICR0aGlzVmFsIC0gJGRlbGNvdW50KTsKCQkJCSR0aGlzLT5SZW1vdmVPcHRpb25FbGVtZW50KCdib3hfdW5jaGVja2VkJywgJHRoaXNWYWwgLSAkZGVsY291bnQpOwoJCQkJJHRoaXMtPlJlbW92ZU9wdGlvbkVsZW1lbnQoJ2JveF9pc19zZXQnLCAkdGhpc1ZhbCAtICRkZWxjb3VudCk7CgkJCQkkZGVsY291bnQrKzsKCQkJCX0KCQkJfQoJfQoKCS8vIFBvcHVsYXRlIHRhYnMKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR5ZXNObyA9IGFycmF5KCRtb2QtPkxhbmcoJ25vJyk9PiduJywkbW9kLT5MYW5nKCd5ZXMnKT0+J3knKTsKCgkJJHRoaXMtPmNvdW50Qm94ZXMoKTsKCQlpZiAoJHRoaXMtPmJveEFkZCA+IDApCgkJCXsKCQkJJHRoaXMtPmJveENvdW50ICs9ICR0aGlzLT5ib3hBZGQ7CgkJCSR0aGlzLT5ib3hBZGQgPSAwOwoJCQl9CgkJCSRib3hlcyA9ICc8dGFibGUgY2xhc3M9Im1vZHVsZV9mYl90YWJsZSBwYWdldGFibGUiIGNlbGxwYWRkaW5nPSIwIiBjZWxsc3BhY2luZz0iMCI+PHRoZWFkPjx0cj48dGg+Jy4KCQkJJG1vZC0+TGFuZygndGl0bGVfY2hlY2tib3hfbGFiZWwnKS4nPC90aD48dGg+Jy4KCQkJJG1vZC0+TGFuZygndGl0bGVfY2hlY2tlZF92YWx1ZScpLic8L3RoPjx0aD4nLgoJCQkkbW9kLT5MYW5nKCd0aXRsZV91bmNoZWNrZWRfdmFsdWUnKS4nPC90aD48dGg+Jy4KCQkJJG1vZC0+TGFuZygndGl0bGVfZGVmYXVsdF9zZXQnKS4nPC90aD48dGg+Jy4KCQkJJG1vZC0+TGFuZygndGl0bGVfZGVsZXRlJykuJzwvdGg+PC90cj48L3RoZWFkPjx0Ym9keT4nOwoKCQkkcm93Y2xhc3MgPSAncm93MSc7CgkJZm9yICgkaT0wOyRpPCgkdGhpcy0+Ym94Q291bnQ+MT8kdGhpcy0+Ym94Q291bnQ6MSk7JGkrKykKCQkJewoJCQkkYm94ZXMgLj0gJzx0ciBjbGFzcz0iJy4kcm93Y2xhc3MuJyI+PHRkPicuCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2JveF9uYW1lW10nLCR0aGlzLT5HZXRPcHRpb25FbGVtZW50KCdib3hfbmFtZScsJGkpLDI1LDEyOCkuCiAgICAgICAgICAgIAkJJzwvdGQ+PHRkPicuCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2JveF9jaGVja2VkW10nLCR0aGlzLT5HZXRPcHRpb25FbGVtZW50KCdib3hfY2hlY2tlZCcsJGkpLDI1LDEyOCkuCiAgICAgICAgICAgIAkJJzwvdGQ+PHRkPicuCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2JveF91bmNoZWNrZWRbXScsJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ2JveF91bmNoZWNrZWQnLCRpKSwyNSwxMjgpLgogICAgICAgICAgICAJCSc8L3RkPjx0ZD4nLiAgICAgICAgICAgIAkJICAgIAogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfYm94X2lzX3NldFtdJywgJHllc05vLCAtMSwgJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ2JveF9pc19zZXQnLCRpKSkuCQogICAgICAgICAgICAJCSc8L3RkPjx0ZD4nLgogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9kZWxfJy4kaSwgJGksLTEpLgogICAgICAgICAgICAgCQknPC90ZD48L3RyPic7CgkJCQkJCgkJCSgkcm93Y2xhc3MgPT0gJ3JvdzEnPyRyb3djbGFzcz0ncm93Mic6JHJvd2NsYXNzPSdyb3cxJyk7CgkJCX0KCQkkYm94ZXMgLj0gJzwvdGJvZHk+PC90YWJsZT4nOwoJCQoJCSRtYWluID0gYXJyYXkoCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2RvbnRfc3VibWl0X3VuY2hlY2tlZCcpLCRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRmb3JtRGVzY3JpcHRvciwnZmJycF9vcHRfbm9fZW1wdHknLCcwJykuCgkJCQkJCSRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfbm9fZW1wdHknLCcxJywkdGhpcy0+R2V0T3B0aW9uKCdub19lbXB0eScsJzAnKSkuJG1vZC0+TGFuZygndGl0bGVfZG9udF9zdWJtaXRfdW5jaGVja2VkX2hlbHAnKSksCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2NoZWNrYm94X2RldGFpbHMnKSwkYm94ZXMpCgkJKTsKCQkKCQkkYWR2ID0gYXJyYXkoCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX2luY2x1ZGVsYWJlbHMnKSwkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkZm9ybURlc2NyaXB0b3IsJ2ZicnBfb3B0X2luY2x1ZGVfbGFiZWxzJywnMCcpLgoJCQkJCQkkbW9kLT5DcmVhdGVJbnB1dENoZWNrYm94KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2luY2x1ZGVfbGFiZWxzJywnMScsJHRoaXMtPkdldE9wdGlvbignaW5jbHVkZV9sYWJlbHMnLCcwJykpLiRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX2luY2x1ZGVsYWJlbHNfaGVscCcpKQoJCSk7CgkJCgkJcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwoJfQoKCgkvLyBCZWZvcmUgYWRtaW4gc3VibWl0IGRvIGNsZWFudXAKCWZ1bmN0aW9uIFBvc3RBZG1pblN1Ym1pdENsZWFudXAoKQoJewoJCSRuYW1lcyA9ICR0aGlzLT5HZXRPcHRpb25SZWYoJ2JveF9uYW1lJyk7CgkJJGNoZWNrZWQgPSAkdGhpcy0+R2V0T3B0aW9uUmVmKCdib3hfY2hlY2tlZCcpOwoJCSR1bmNoZWNrZWQgPSAkdGhpcy0+R2V0T3B0aW9uUmVmKCdib3hfdW5jaGVja2VkJyk7CgkJJGlzX3NldCA9ICR0aGlzLT5HZXRPcHRpb25SZWYoJ2JveF9pc19zZXQnKTsKCQlmb3IgKCRpPTA7JGk8Y291bnQoJG5hbWVzKTskaSsrKQoJCQl7CgkJCWlmICgkbmFtZXNbJGldID09ICcnICYmICRjaGVja2VkWyRpXSA9PSAnJyApCgkJCQl7CgkJCQkkdGhpcy0+UmVtb3ZlT3B0aW9uRWxlbWVudCgnYm94X25hbWUnLCAkaSk7CgkJCQkkdGhpcy0+UmVtb3ZlT3B0aW9uRWxlbWVudCgnYm94X2NoZWNrZWQnLCAkaSk7CgkJCQkkdGhpcy0+UmVtb3ZlT3B0aW9uRWxlbWVudCgnYm94X3VuY2hlY2tlZCcsICRpKTsKCQkJCSR0aGlzLT5SZW1vdmVPcHRpb25FbGVtZW50KCdib3hfaXNfc2V0JywgJGkpOwoJCQkJJGktLTsKCQkJCX0KCQkJfQoJCSR0aGlzLT5jb3VudEJveGVzKCk7Cgl9CgkKfSAvLyBFbmQgb2YgQ2xhc3MKCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/CompanyDirectoryField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgovKiBBIGNsYXNzIHRvIHByb3ZpZGUgYSBkeW5hbWljIG11bHRpc2VsZWN0IGxpc3QgdG8gYWxsb3cgc2VsZWN0aW5nIG9uZQogKiBvciBtb3JlIGl0ZW1zIGZyb20gdGhlIENvbXBhbnlEaXJlY3RvcnkgCiAqIHRoZSBpdGVtIGxpc3QgaXMgZmlsdGVyZWQgYnkgYW4gYXJyYXkKICogb2Ygb3B0aW9ucyBhcyBzcGVjaWZpZWQgaW4gdGhlIGFkbWluLgogKiBUaGlzIEZpZWxkIHdyaXR0ZW4gYnkgSmVyZW15IEJhc3MgPGplcmVteUJhc3NAY2FibGVvbmUubmV0PgogKi8KY2xhc3MgZmJDb21wYW55RGlyZWN0b3J5RmllbGQgZXh0ZW5kcyBmYkZpZWxkQmFzZSB7CgogIHZhciAkb3B0aW9uQ291bnQ7CiAgdmFyICRvcHRpb25BZGQ7CgogIGZ1bmN0aW9uIGZiQ29tcGFueURpcmVjdG9yeUZpZWxkKCYkZm9ybV9wdHIsICYkcGFyYW1zKQogIHsKICAgICR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgJG1vZCA9ICRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICR0aGlzLT5UeXBlID0gJ0NvbXBhbnlEaXJlY3RvcnlGaWVsZCc7CiAgICAkdGhpcy0+RGlzcGxheUluRm9ybSA9IHRydWU7CiAgICAkdGhpcy0+Tm9uUmVxdWlyYWJsZUZpZWxkID0gZmFsc2U7CgkkdGhpcy0+RGlzcGxheUluU3VibWlzc2lvbiA9IHRydWU7CiAgICAkdGhpcy0+SGFzQWRkT3AgPSBmYWxzZTsKICAgICR0aGlzLT5IYXNEZWxldGVPcCA9IGZhbHNlOwogICAgJHRoaXMtPlZhbGlkYXRpb25UeXBlcyA9IGFycmF5KCk7CiAgICAkdGhpcy0+b3B0aW9uQWRkID0gMDsKICAgICR0aGlzLT5zb3J0YWJsZSA9IGZhbHNlOwogIH0KCgogIGZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQogIHsKICAgIGdsb2JhbCAkZ0NtczsKCiAgICAkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgJENvbXBhbnlEaXJlY3RvcnkgPSAkbW9kLT5HZXRNb2R1bGVJbnN0YW5jZSgnQ29tcGFueURpcmVjdG9yeScpOwogICAgaWYoICEkQ29tcGFueURpcmVjdG9yeSApCiAgICAgIHsKCXJldHVybiAkbW9kLT5MYW5nKCdlcnJvcl9Db21wYW55RGlyZWN0b3J5X21vZHVsZV9ub3RfYXZhaWxhYmxlJyk7CiAgICAgIH0KCiAgICAkcmVzdWx0cyA9IGFycmF5KCk7CgoJCSRkYiA9ICRnQ21zLT5HZXREYigpOwogCQkkTGlrZT0kdGhpcy0+R2V0T3B0aW9uKCdDYXRlZ29yeScsJyUnKTsKCQlpZigkTGlrZT09Jyd8fCRMaWtlPT0nJSd8fCRMaWtlPT0nQWxsJyl7CgkJCSRwcm9jZXNzUGF0aD0iTElLRSAgJyUnIjsKCQl9ZWxzZXsKCQkJJHByb2Nlc3NQYXRoPSI9ICA/IjsKCQl9CiAJCSRxdWVyeSA9ICdTRUxFQ1QgY29tLmlkLCBjb20uY29tcGFueV9uYW1lIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2NvbXBhbnlfY2F0ZWdvcmllcyBBUyBjb21jYXQgJwoJCQkJLidMRUZUIEpPSU4gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2NhdGVnb3JpZXMgQVMgY2F0IE9OIGNhdC5pZCA9IGNvbWNhdC5jYXRlZ29yeV9pZCAnCgkJCQkuJ0xFRlQgSk9JTiAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY29tcGFuaWVzIEFTIGNvbSBPTiBjb20uaWQgPSBjb21jYXQuY29tcGFueV9pZCAnCgkJCQkuJ1dIRVJFIGNhdC5uYW1lICcuJHByb2Nlc3NQYXRoLicgQU5EIHN0YXR1cyA9IFwncHVibGlzaGVkXCcnOwoKCQkkcXVlcnkyID0gJ1NFTEVDVCB2YWx1ZSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9maWVsZHZhbHMgQVMgY29tZnYgJwoJCQkJLidMRUZUIEpPSU4gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2ZpZWxkZGVmcyBBUyBmZGQgT04gZmRkLmlkID0gY29tZnYuZmllbGRkZWZfaWQgJwoJCQkJLidMRUZUIEpPSU4gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2NvbXBhbmllcyBBUyBjb20gT04gY29tZnYuY29tcGFueV9pZCA9IGNvbS5pZCAnCgkJCQkuJ1dIRVJFIGNvbS5jb21wYW55X25hbWUgPSA/IEFORCBmZGQubmFtZSA9ID8nOwoJCSR2YWw9YXJyYXkoKTsKCQkkY29tcGFuaWVzID0gYXJyYXkoKTsKCQkkZmllbGQ9JHRoaXMtPkdldE9wdGlvbignRmllbGREZWZzJywnJyk7CgkJaWYoJExpa2U9PScnfHwkTGlrZT09JyUnfHwkTGlrZT09J0FsbCcpewoJCQkkZGJyID0gJGRiLT5FeGVjdXRlKCAkcXVlcnkgLCBhcnJheSgpKTsKCQkJCXdoaWxlKCAkZGJyICYmICgkcm93ID0gJGRici0+RmV0Y2hSb3coKSkgKXsKCQkJCQkkY29tcGFueT0kcm93Wydjb21wYW55X25hbWUnXTsKCQkJCQkkRkR2YWw9Jyc7CgkJCQkJJGRicjIgPSAkZGItPkV4ZWN1dGUoICRxdWVyeTIgLCBhcnJheSgkY29tcGFueSwkZmllbGQpKTsKCQkJCQkJd2hpbGUoICRkYnIyICYmICgkcm93ID0gJGRicjItPkZldGNoUm93KCkpICl7CgkJCQkJCQkkRkR2YWw9JHJvd1sndmFsdWUnXTsKCQkJCQkJfQoJCQkJCSRjb21wYW5pZXNbJGNvbXBhbnldID0gJEZEdmFsOwoJCQkJfQoKCQl9ZWxzZXsKCQkJaWYoaXNfYXJyYXkoJExpa2UpKXsKCQkJCWZvcmVhY2goJExpa2UgYXMgJGtleSA9PiAkdmFsdWUpewoJCQkJCSRkYnIgPSAkZGItPkV4ZWN1dGUoICRxdWVyeSAsIGFycmF5KCR2YWx1ZSkpOwoJCQkJCQl3aGlsZSggJGRiciAmJiAoJHJvdyA9ICRkYnItPkZldGNoUm93KCkpICl7CgkJCQkJCQkkY29tcGFueT0kcm93Wydjb21wYW55X25hbWUnXTsKCQkJCQkJCSRGRHZhbD0nJzsKCQkJCQkJCSRkYnIyID0gJGRiLT5FeGVjdXRlKCAkcXVlcnkyICwgYXJyYXkoJGNvbXBhbnksJGZpZWxkKSk7CgkJCQkJCQkJd2hpbGUoICRkYnIyICYmICgkcm93ID0gJGRicjItPkZldGNoUm93KCkpICl7CgkJCQkJCQkJCSRGRHZhbD0kcm93Wyd2YWx1ZSddOwoJCQkJCQkJCX0KCQkJCQkJCSRjb21wYW5pZXNbJGNvbXBhbnldID0gJEZEdmFsOwoJCQkJCQl9CgkJCQl9CgkJCX1lbHNlewoJCQkJJGRiciA9ICRkYi0+RXhlY3V0ZSggJHF1ZXJ5ICwgYXJyYXkoJExpa2UpKTsKCQkJCQl3aGlsZSggJGRiciAmJiAoJHJvdyA9ICRkYnItPkZldGNoUm93KCkpICl7CgkJCQkJCQkkY29tcGFueT0kcm93Wydjb21wYW55X25hbWUnXTsKCQkJCQkJCSRGRHZhbD0nJzsKCQkJCQkJCSRkYnIyID0gJGRiLT5FeGVjdXRlKCAkcXVlcnkyICwgYXJyYXkoJGNvbXBhbnksJGZpZWxkKSk7CgkJCQkJCQkJd2hpbGUoICRkYnIyICYmICgkcm93ID0gJGRicjItPkZldGNoUm93KCkpICl7CgkJCQkJCQkJCSRGRHZhbD0kcm93Wyd2YWx1ZSddOwoJCQkJCQkJCX0KCQkJCQkJCSRjb21wYW5pZXNbJGNvbXBhbnldID0gJEZEdmFsOwoJCQkJCX0KCQkJfQoJCX0KCiAgICAgIGZvcmVhY2goJGNvbXBhbmllcyBhcyAka2V5PT4kdmFsKQogICAgICAgICB7CiAgICAgICAgIGlmIChlbXB0eSgkdmFsKSkKICAgICAgICAgICAgewogICAgICAgICAgICAkY29tcGFuaWVzWyRrZXldPSRrZXk7CiAgICAgICAgICAgIH0KICAgICAgICAgfQoJCS8vIEFsbCBkb25lLCBkbyB3ZSBoYXZlIHNvbWV0aGluZyB0byBkaXNwbGF5PwoJCWlmKCBjb3VudCgkY29tcGFuaWVzKSApewoJCQkkc2l6ZSA9IG1pbig1MCxjb3VudCgkY29tcGFuaWVzKSk7IC8vIG1heGltdW0gNTAgbGluZXMsIHRob3VnaCB0aGlzIGlzIHByb2JhYmx5IGJpZwoJCQkKCQkJJHZhbCA9IGFycmF5KCk7CgkJCWlmKCAkdGhpcy0+VmFsdWUgIT09IGZhbHNlICl7CgkJCQkkdmFsID0gJHRoaXMtPlZhbHVlOwoJCQkJaWYoICFpc19hcnJheSggJHRoaXMtPlZhbHVlICkgKXsKCQkJCQkkdmFsID0gYXJyYXkoJHRoaXMtPlZhbHVlKTsKCQkJCX0KCQkJfQoJCQkKCQkJJGNzc2lkID0gJHRoaXMtPkdldENTU0lkVGFnKCk7CgkJCSRVc2VySW5wdXQgPSAkdGhpcy0+R2V0T3B0aW9uKCdVc2VySW5wdXQnLCdEcm9wZG93bicpOwoJCQlpZigkVXNlcklucHV0PT0nU2VsZWN0IExpc3Qtc2luZ2xlJyl7CgkJCQlyZXR1cm4gJG1vZC0+Q3JlYXRlSW5wdXRTZWxlY3RMaXN0KCRpZCwnZmJycF9fJy4kdGhpcy0+SWQuJ1tdJywgJGNvbXBhbmllcywgJHZhbCwgJHNpemUsICRjc3NpZCk7CgkJCX1lbHNlaWYoJFVzZXJJbnB1dD09J1NlbGVjdCBMaXN0LW11bHRpcGxlJyl7CgkJCQlyZXR1cm4gJG1vZC0+Q3JlYXRlSW5wdXRTZWxlY3RMaXN0KCRpZCwnZmJycF9fJy4kdGhpcy0+SWQuJ1tdJywgJGNvbXBhbmllcywgJHZhbCwgJHNpemUsICRjc3NpZCwgdHJ1ZSk7CgkJCX1lbHNlaWYoJFVzZXJJbnB1dD09J0Ryb3Bkb3duJyl7CgkJCQlyZXR1cm4gJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsJ2ZicnBfXycuJHRoaXMtPklkLicnLCAkY29tcGFuaWVzLCAnLTEnLCAkdmFsKTsKCQkJfWVsc2VpZigkVXNlcklucHV0PT0nUmFkaW8gR3JvdXAnKXsKCQkJCXJldHVybiAkbW9kLT5DcmVhdGVJbnB1dFJhZGlvR3JvdXAoJGlkLCdmYnJwX18nLiR0aGlzLT5JZC4nJywgJGNvbXBhbmllcywgJHZhbCwnJywnICcpOwoJCQl9CgkJfQoKICAgIHJldHVybiAnJzsgLy8gZXJyb3IKCX0KCgogIGZ1bmN0aW9uIFN0YXR1c0luZm8oKQogIHsKICAgIC8vIHJldHVybiBhIHN0cmluZyBmb3IgZGlzcGxheWluZyBpbiB0aGUgb3B0aW9ucyBmaWVsZAogICAgJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICRDb21wYW55RGlyZWN0b3J5ID0gJG1vZC0+R2V0TW9kdWxlSW5zdGFuY2UoJ0NvbXBhbnlEaXJlY3RvcnknKTsKICAgIGlmKCAhJENvbXBhbnlEaXJlY3RvcnkgKQogICAgICB7CglyZXR1cm4gJG1vZC0+TGFuZygnZXJyb3JfQ29tcGFueURpcmVjdG9yeV9tb2R1bGVfbm90X2F2YWlsYWJsZScpOwogICAgICB9CiAgICByZXR1cm4gJyc7CiAgfQoJCgogIGZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKICB7CiAgICAkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJZ2xvYmFsICRnQ21zOwogICAvLyRDb21wYW55RGlyZWN0b3J5ID0gJG1vZC0+R2V0TW9kdWxlSW5zdGFuY2UoJ0NvbXBhbnlEaXJlY3RvcnknKTsKCSAkZGIgPSYgJGdDbXMtPkdldERiKCk7CgkJJHF1ZXJ5ID0gJ1NFTEVDVCBpZCwgbmFtZSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jYXRlZ29yaWVzICc7CgkJJGRiciA9ICRkYi0+RXhlY3V0ZSggJHF1ZXJ5ICwgYXJyYXkoKSk7CgkJJENhdGVnb3JpZXMgPSBhcnJheSgpOwoJCSRDYXRlZ29yaWVzWydBbGwnXSA9ICdBbGwnOwoJCXdoaWxlKCAkZGJyICYmICgkcm93ID0gJGRici0+RmV0Y2hSb3coKSkgKQoJCXsKCQkJJENhdGVnb3JpZXNbJHJvd1snbmFtZSddXSA9ICRyb3dbJ25hbWUnXTsKCQl9CgkJJENhdGVnb3J5U2VsZWN0ZWQ9JHRoaXMtPkdldE9wdGlvbignQ2F0ZWdvcnknLCcnKTsKCgkJJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2ZpZWxkZGVmcyBPUkRFUiBCWSBpdGVtX29yZGVyJzsKCQkkZGJyID0gJGRiLT5FeGVjdXRlKCAkcXVlcnkgLCBhcnJheSgpKTsKCQkkRmllbGREZWZzID0gYXJyYXkoKTsKCQkkRmllbGREZWZzWydub25lJ10gPSAnbm9uZSc7CgkJd2hpbGUoICRkYnIgJiYgKCRyb3cgPSAkZGJyLT5GZXRjaFJvdygpKSApCgkJewoJCQkkRmllbGREZWZzWyRyb3dbJ25hbWUnXV0gPSAkcm93WyduYW1lJ107CgkJfQoJCSRGaWVsZERlZnNTZWxlY3RlZD0kdGhpcy0+R2V0T3B0aW9uKCdGaWVsZERlZnMnLCcnKTsKCQkKCQkvL2NoZWNrIGFuZCBmb3JjZSB0aGUgcmlnaHQgdHlwZQoJCWlmKCFpc19hcnJheSgkQ2F0ZWdvcnlTZWxlY3RlZCkpeyRDYXRlZ29yeVNlbGVjdGVkPWV4cGxvZGUoJywnLCRDYXRlZ29yeVNlbGVjdGVkKTt9CgkJaWYoIWlzX2FycmF5KCRGaWVsZERlZnNTZWxlY3RlZCkpeyRGaWVsZERlZnNTZWxlY3RlZD1leHBsb2RlKCcsJywkRmllbGREZWZzU2VsZWN0ZWQpO30JCQoJCQoJCQoJCSRVc2VpbnB1dD1hcnJheSgkbW9kLT5MYW5nKCdvcHRpb25fZHJvcGRvd24nKT0+J0Ryb3Bkb3duJywKCQkJICAgJG1vZC0+TGFuZygnb3B0aW9uX3NlbGVjdGxpc3Rfc2luZ2xlJyk9PidTZWxlY3QgTGlzdC1zaW5nbGUnLAoJCQkgICAkbW9kLT5MYW5nKCdvcHRpb25fc2VsZWN0bGlzdF9tdWx0aXBsZScpPT4nU2VsZWN0IExpc3QtbXVsdGlwbGUnLAoJCQkgICAkbW9kLT5MYW5nKCdvcHRpb25fcmFkaW9ncm91cCcpPT4nUmFkaW8gR3JvdXAnCgkJCSAgICk7CgkJCgkJJG1haW4gPSBhcnJheSgKCQkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2NvbXBhbnlfZmllbGRfbm90ZScpLCcnKSwgIAoJCQkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfcGlja19jYXRlZ29yaWVzJyksCgkJCQkJJG1vZC0+Q3JlYXRlSW5wdXRTZWxlY3RMaXN0KCRmb3JtRGVzY3JpcHRvciwnZmJycF9vcHRfQ2F0ZWdvcnlbXScsICRDYXRlZ29yaWVzLCAkQ2F0ZWdvcnlTZWxlY3RlZCwgNSwnJyx0cnVlKQoJCQkJKSwKCQkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3BpY2tfZmllbGRkZWYnKSwKCQkJCQkkbW9kLT5DcmVhdGVJbnB1dFNlbGVjdExpc3QoJGZvcm1EZXNjcmlwdG9yLCdmYnJwX29wdF9GaWVsZERlZnMnLCAkRmllbGREZWZzLCAkRmllbGREZWZzU2VsZWN0ZWQsIDUsJycsZmFsc2UpCgkJCQkpCgkJKTsKCQkkYWR2ID0gYXJyYXkoCgkJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9jaG9vc2VfdXNlcl9pbnB1dCcpLAoJCQkJCSRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24gKCRmb3JtRGVzY3JpcHRvciwnZmJycF9vcHRfVXNlcklucHV0JywgJFVzZWlucHV0LCAnLTEnLCAkdGhpcy0+R2V0T3B0aW9uKCdVc2VySW5wdXQnLCcnKSkgCgkJCQkpCgkJKTsKCQlyZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7CiAgfQoKICBmdW5jdGlvbiBHZXRIdW1hblJlYWRhYmxlVmFsdWUoJGFzX3N0cmluZz10cnVlKQogIHsKICAgICRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkZm9ybSA9ICR0aGlzLT5mb3JtX3B0cjsKICAgIGlmICgkdGhpcy0+SGFzVmFsdWUoKSkKICAgICAgewoJJGZpZWxkUmV0ID0gYXJyYXkoKTsKCWlmICghIGlzX2FycmF5KCR0aGlzLT5WYWx1ZSkpCgkgIHsKCSAgICAkdGhpcy0+VmFsdWUgPSBhcnJheSgkdGhpcy0+VmFsdWUpOwoJICB9CglpZiAoJGFzX3N0cmluZykKCSAgewoJICAgIHJldHVybiBqb2luKCRmb3JtLT5HZXRBdHRyKCdsaXN0X2RlbGltaXRlcicsJywnKSwkdGhpcy0+VmFsdWUpOwoJICB9CgllbHNlCgkgIHsKCSAgICByZXR1cm4gYXJyYXkoJHRoaXMtPlZhbHVlKTsKCSAgfQkJCQogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCWlmICgkYXNfc3RyaW5nKQoJICB7CgkgICAgcmV0dXJuICRtb2QtPkxhbmcoJ3Vuc3BlY2lmaWVkJyk7CgkgIH0KCWVsc2UKCSAgewoJICAgIHJldHVybiBhcnJheSgkbW9kLT5MYW5nKCd1bnNwZWNpZmllZCcpKTsKCSAgfQogICAgICB9CgkKICB9Cgp9Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/ComputedField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyoKICAgRm9ybUJ1aWxkZXIuIENvcHlyaWdodCAoYykgMjAwNS0yMDA3IFNhbXVlbCBHb2xkc3RlaW4gPHNqZ0BjbXNtb2R1bGVzLmNvbT4KICAgTW9yZSBpbmZvIGF0IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvZm9ybWJ1aWxkZXIKICAgCiAgIEEgTW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUsIENvcHlyaWdodCAoYykgMjAwNyBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiAgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKKi8KCmNsYXNzIGZiQ29tcHV0ZWRGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIAp7CgogIGZ1bmN0aW9uIGZiQ29tcHV0ZWRGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKICB7CiAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICRtb2QgPSAkZm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkdGhpcy0+VHlwZSA9ICdDb21wdXRlZEZpZWxkJzsKICAgICR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gZmFsc2U7CiAgICAkdGhpcy0+RGlzcGxheUluU3VibWlzc2lvbiA9IHRydWU7CiAgICAkdGhpcy0+Tm9uUmVxdWlyYWJsZUZpZWxkID0gdHJ1ZTsKICAgICR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgpOwogICAgJHRoaXMtPkhhc0xhYmVsID0gMTsKICAgICR0aGlzLT5OZWVkc0RpdiA9IDA7CiAgICAkdGhpcy0+c29ydGFibGUgPSBmYWxzZTsKICAgICR0aGlzLT5Jc0NvbXB1dGVkT25TdWJtaXNzaW9uID0gdHJ1ZTsKICB9CgogICAgZnVuY3Rpb24gQ29tcHV0ZU9yZGVyKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPkdldE9wdGlvbignb3JkZXInLCcxJyk7ICAgIAogICAgfQoKICAgIGZ1bmN0aW9uIENvbXB1dGUoKQogICAgewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAgICAgJG90aGVycyA9ICR0aGlzLT5mb3JtX3B0ci0+R2V0RmllbGRzKCk7CgogICAgICAgICRtYXBJZCA9IGFycmF5KCk7CgkJJGV2YWxfc3RyaW5nID0gZmFsc2U7CgogICAgICAgIGZvcigkaT0wOyRpPGNvdW50KCRvdGhlcnMpOyRpKyspCiAgICAgICAgICAgIHsKCSAgICAgICAgJG1hcElkWyRvdGhlcnNbJGldLT5HZXRJZCgpXSA9ICRpOwogICAgICAgICAgICB9CgogICAgICAgICRmbGRzID0gYXJyYXkoKTsKICAgICAgICAkcHJvY3N0ciA9ICR0aGlzLT5HZXRPcHRpb24oJ3ZhbHVlJywnJyk7CiAgICAgICAgcHJlZ19tYXRjaF9hbGwoJy9cJGZsZF8oXGQrKS8nLCAkcHJvY3N0ciwgJGZsZHMpOwogICAgICAgIAogICAgICAgIGlmICgkdGhpcy0+R2V0T3B0aW9uKCdzdHJpbmdfb3JfbnVtYmVyX2V2YWwnLCdudW1lcmljJykgPT0gJ251bWVyaWMnKQogICAgICAgICAgICB7CiAgICAgICAgICAgIGZvcmVhY2ggKCRmbGRzWzFdIGFzICR0RikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGlmIChpc3NldCgkbWFwSWRbJHRGXSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICRyZWYgPSAkbWFwSWRbJHRGXTsKICAgICAgICAgICAgICAgICAgICBpZiAoaXNfbnVtZXJpYygkb3RoZXJzWyRyZWZdLT5HZXRIdW1hblJlYWRhYmxlVmFsdWUoKSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgJHByb2NzdHIgPSBzdHJfcmVwbGFjZSgnJGZsZF8nLiR0RiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRvdGhlcnNbJHJlZl0tPkdldEh1bWFuUmVhZGFibGVWYWx1ZSgpLCRwcm9jc3RyKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAkcHJvY3N0ciA9IHN0cl9yZXBsYWNlKCckZmxkXycuJHRGLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJzAnLCRwcm9jc3RyKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgJGV2YWxfc3RyaW5nID0gdHJ1ZTsKICAgICAgICAgICAgfQogICAgICAgIGVsc2UgaWYgKCR0aGlzLT5HZXRPcHRpb24oJ3N0cmluZ19vcl9udW1iZXJfZXZhbCcsJ251bWVyaWMnKSA9PSAnY29tcHV0ZScpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgZm9yZWFjaCAoJGZsZHNbMV0gYXMgJHRGKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWYgKGlzc2V0KCRtYXBJZFskdEZdKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgJHJlZiA9ICRtYXBJZFskdEZdOwogICAgICAgICAgICAgICAgICAgICRwcm9jc3RyID0gc3RyX3JlcGxhY2UoJyRmbGRfJy4kdEYsCiAgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+c2FuaXRpemVWYWx1ZSgkb3RoZXJzWyRyZWZdLT5HZXRIdW1hblJlYWRhYmxlVmFsdWUoKSksJHByb2NzdHIpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCQkJJGV2YWxfc3RyaW5nID0gdHJ1ZTsKICAgICAgICAgICAgfQoJCWVsc2UKCQkJewoJCQkkdGhpc1ZhbHVlID0gJyc7CgkJCWZvcmVhY2ggKCRmbGRzWzFdIGFzICR0RikKCQkJCXsKCQkJCWlmIChpc3NldCgkbWFwSWRbJHRGXSkpCgkJCQkJewoJCQkJCSRyZWYgPSAkbWFwSWRbJHRGXTsKCQkJCQkkdGhpcy0+VmFsdWUgLj0gJG90aGVyc1skcmVmXS0+R2V0VmFsdWUoKTsKCQkJCQlpZiAoJHRoaXMtPkdldE9wdGlvbignc3RyaW5nX29yX251bWJlcl9ldmFsJywnbnVtZXJpYycpICE9ICd1bnN0cmluZycpCgkJCQkJCXsKCQkJCQkJJHRoaXMtPlZhbHVlIC49ICcgJzsKCQkJCQkJfQoJCQkJCX0KCQkJCX0KCQkJfQoJCWlmICgkZXZhbF9zdHJpbmcpCgkJCXsKCQkJJHN0clRvRXZhbCA9ICJcJHRoaXMtPlZhbHVlPSRwcm9jc3RyOyI7CgkJCS8vIHNlZSBpZiB3ZSBjYW4gdHJhcCBhbiBlcnJvcgoJCQkvLyB0aGlzIGlzIGFsbCB2dWxuZXJhYmxlIHRvIGFuIGV2aWwgZm9ybSBkZXNpZ25lciwgYnV0CgkJCS8vIG5vdCBhbiBldmlsIGZvcm0gdXNlci4gCgkJCW9iX3N0YXJ0KCk7CgkJCWlmIChldmFsKCdmdW5jdGlvbiB0ZXN0Y2ZpZWxkJy5yYW5kKCkuJygpIHsnLiRzdHJUb0V2YWwuJ30nKSA9PT0gRkFMU0UpCgkJCQl7CgkJCQkkdGhpcy0+VmFsdWUgPSAkbW9kLT5MYW5nKCd0aXRsZV9iYWRfZnVuY3Rpb24nLCRwcm9jc3RyKTsKCQkJCX0KCQkJZWxzZQoJCQkJewoJCQkJZXZhbCgkc3RyVG9FdmFsKTsKCQkJCX0gCgkJCW9iX2VuZF9jbGVhbigpOyAgICAgICAgICAgICAgICAKCQkJfQogICAgfQoKCS8vIHN0cmlwIGFueSBwb3NzaWJsZSBQSFAgZnVuY3Rpb24gZnJvbSBzdWJtaXR0ZWQgc3RyaW5nCglmdW5jdGlvbiBzYW5pdGl6ZVZhbHVlKCR2YWwpCgl7CgkJJGFyciA9IGdldF9kZWZpbmVkX2Z1bmN0aW9ucygpOyAvLyBpbnRlcm5hbCBhbmQgdXNlcgoJCSR2YWwgPSBzdHJfcmVwbGFjZSgkYXJyWydpbnRlcm5hbCddLCcnLCR2YWwpOwoJCSR2YWwgPSBzdHJfcmVwbGFjZSgkYXJyWyd1c2VyJ10sJycsJHZhbCk7CgkJcmV0dXJuICR2YWw7Cgl9CgoJZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHByb2Nlc3NUeXBlID0gYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfbnVtZXJpYycpPT4nbnVtZXJpYycsCgkJICAgICRtb2QtPkxhbmcoJ3RpdGxlX3N0cmluZycpPT4nc3RyaW5nJywgJG1vZC0+TGFuZygndGl0bGVfc3RyaW5nX3Vuc3BhY2VkJyk9Pid1bnN0cmluZycsICRtb2QtPkxhbmcoJ3RpdGxlX2NvbXB1dGUnKT0+J2NvbXB1dGUnKTsKCQkKCQkkcmV0ID0gJzx0YWJsZSBjbGFzcz0ibW9kdWxlX2ZiX2xlZ2VuZCI+PHRyPjx0aCBjb2xzcGFuPSIyIj4nLiRtb2QtPkxhbmcoJ2hlbHBfdmFyaWFibGVzX2Zvcl9jb21wdXRhdGlvbicpLic8L3RoPjwvdHI+JzsKICAgICAgICAkcmV0IC49ICc8dHI+PHRoPicuJG1vZC0+TGFuZygnaGVscF9waHBfdmFyaWFibGVfbmFtZScpLic8L3RoPjx0aD4nLiRtb2QtPkxhbmcoJ2hlbHBfZm9ybV9maWVsZCcpLic8L3RoPjwvdHI+JzsKICAgICAgICAkb2RkID0gZmFsc2U7CgogICAgICAgICRvdGhlcnMgPSAkdGhpcy0+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[PD9waHANCi8qIA0KICAgRm9ybUJ1aWxkZXIuIENvcHlyaWdodCAoYykgMjAwNS0yMDA2IFNhbXVlbCBHb2xkc3RlaW4gPHNqZ0BjbXNtb2R1bGVzLmNvbT4NCiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyDQogICANCiAgIEEgTW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUsIENvcHlyaWdodCAoYykgMjAwNiBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpDQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnDQoqLw0KY2xhc3MgZmJDb3VudHJ5UGlja2VyRmllbGQgZXh0ZW5kcyBmYkZpZWxkQmFzZSB7DQoNCgl2YXIgJENvdW50cmllczsNCgkNCglmdW5jdGlvbiBmYkNvdW50cnlQaWNrZXJGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykNCgl7DQogICAgICAgICR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOw0KICAgICAgICAkbW9kID0gJGZvcm1fcHRyLT5tb2R1bGVfcHRyOw0KCQkkdGhpcy0+VHlwZSA9ICdDb3VudHJ5UGlja2VyRmllbGQnOw0KCQkkdGhpcy0+RGlzcGxheUluRm9ybSA9IHRydWU7DQoJCSR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgNCiAgICAgICAgICAgICk7DQoNCiAgICAgICAgJHRoaXMtPkNvdW50cmllcyA9IGFycmF5KCRtb2QtPkxhbmcoJ25vX2RlZmF1bHQnKT0+JycsDQoJCSAgICAgICAkbW9kLT5MYW5nKCdBRicpID0+J0FGJywkbW9kLT5MYW5nKCdBWCcpID0+J0FYJywkbW9kLT5MYW5nKCdBTCcpID0+J0FMJywNCgkJCQkkbW9kLT5MYW5nKCdEWicpID0+J0RaJywkbW9kLT5MYW5nKCdBUycpID0+J0FTJywkbW9kLT5MYW5nKCdBRCcpID0+J0FEJywNCgkJCQkkbW9kLT5MYW5nKCdBTycpID0+J0FPJywkbW9kLT5MYW5nKCdBSScpID0+J0FJJywkbW9kLT5MYW5nKCdBUScpID0+J0FRJywNCgkJCQkkbW9kLT5MYW5nKCdBRycpID0+J0FHJywkbW9kLT5MYW5nKCdBUicpID0+J0FSJywkbW9kLT5MYW5nKCdBTScpID0+J0FNJywNCgkJCQkkbW9kLT5MYW5nKCdBVycpID0+J0FXJywkbW9kLT5MYW5nKCdBVScpID0+J0FVJywkbW9kLT5MYW5nKCdBVCcpID0+J0FUJywNCgkJCQkkbW9kLT5MYW5nKCdBWicpID0+J0FaJywkbW9kLT5MYW5nKCdCUycpID0+J0JTJywkbW9kLT5MYW5nKCdCSCcpID0+J0JIJywNCgkJCQkkbW9kLT5MYW5nKCdCQicpID0+J0JCJywkbW9kLT5MYW5nKCdCRCcpID0+J0JEJywkbW9kLT5MYW5nKCdCWScpID0+J0JZJywNCgkJCQkkbW9kLT5MYW5nKCdCRScpID0+J0JFJywkbW9kLT5MYW5nKCdCWicpID0+J0JaJywkbW9kLT5MYW5nKCdCSicpID0+J0JKJywNCgkJCQkkbW9kLT5MYW5nKCdCTScpID0+J0JNJywkbW9kLT5MYW5nKCdCVCcpID0+J0JUJywkbW9kLT5MYW5nKCdCVycpID0+J0JXJywNCgkJCQkkbW9kLT5MYW5nKCdCTycpID0+J0JPJywkbW9kLT5MYW5nKCdCQScpID0+J0JBJywkbW9kLT5MYW5nKCdCVicpID0+J0JWJywNCgkJCQkkbW9kLT5MYW5nKCdCUicpID0+J0JSJywkbW9kLT5MYW5nKCdJTycpID0+J0lPJywkbW9kLT5MYW5nKCdCTicpID0+J0JOJywNCgkJCQkkbW9kLT5MYW5nKCdCRycpID0+J0JHJywkbW9kLT5MYW5nKCdCRicpID0+J0JGJywkbW9kLT5MYW5nKCdCSScpID0+J0JJJywNCgkJCQkkbW9kLT5MYW5nKCdLSCcpID0+J0tIJywkbW9kLT5MYW5nKCdDTScpID0+J0NNJywkbW9kLT5MYW5nKCdDQScpID0+J0NBJywNCgkJCQkkbW9kLT5MYW5nKCdDVicpID0+J0NWJywkbW9kLT5MYW5nKCdLWScpID0+J0tZJywkbW9kLT5MYW5nKCdDRicpID0+J0NGJywNCgkJCQkkbW9kLT5MYW5nKCdURCcpID0+J1REJywkbW9kLT5MYW5nKCdDTCcpID0+J0NMJywkbW9kLT5MYW5nKCdDTicpID0+J0NOJywNCgkJCQkkbW9kLT5MYW5nKCdDWCcpID0+J0NYJywkbW9kLT5MYW5nKCdDQycpID0+J0NDJywkbW9kLT5MYW5nKCdDTycpID0+J0NPJywNCgkJCQkkbW9kLT5MYW5nKCdLTScpID0+J0tNJywkbW9kLT5MYW5nKCdDRycpID0+J0NHJywkbW9kLT5MYW5nKCdDRCcpID0+J0NEJywNCgkJCQkkbW9kLT5MYW5nKCdDSycpID0+J0NLJywkbW9kLT5MYW5nKCdDUicpID0+J0NSJywkbW9kLT5MYW5nKCdDSScpID0+J0NJJywNCgkJCQkkbW9kLT5MYW5nKCdIUicpID0+J0hSJywkbW9kLT5MYW5nKCdDVScpID0+J0NVJywkbW9kLT5MYW5nKCdDWScpID0+J0NZJywNCgkJCQkkbW9kLT5MYW5nKCdDWicpID0+J0NaJywkbW9kLT5MYW5nKCdESycpID0+J0RLJywkbW9kLT5MYW5nKCdESicpID0+J0RKJywNCgkJCQkkbW9kLT5MYW5nKCdETSAnKSA9PidETSAnLCRtb2QtPkxhbmcoJ0RPJykgPT4nRE8nLCRtb2QtPkxhbmcoJ1RQJykgPT4nVFAnLA0KCQkJCSRtb2QtPkxhbmcoJ0VDJykgPT4nRUMnLCRtb2QtPkxhbmcoJ0VHJykgPT4nRUcnLCRtb2QtPkxhbmcoJ1NWJykgPT4nU1YnLA0KCQkJCSRtb2QtPkxhbmcoJ0dRJykgPT4nR1EnLCRtb2QtPkxhbmcoJ0VSJykgPT4nRVInLCRtb2QtPkxhbmcoJ0VFJykgPT4nRUUnLA0KCQkJCSRtb2QtPkxhbmcoJ0VUJykgPT4nRVQnLCRtb2QtPkxhbmcoJ0ZLJykgPT4nRksnLCRtb2QtPkxhbmcoJ0ZPJykgPT4nRk8nLA0KCQkJCSRtb2QtPkxhbmcoJ0ZKJykgPT4nRkonLCRtb2QtPkxhbmcoJ0ZJJykgPT4nRkknLCRtb2QtPkxhbmcoJ0ZSJykgPT4nRlInLA0KCQkJCSRtb2QtPkxhbmcoJ0ZYJykgPT4nRlgnLCRtb2QtPkxhbmcoJ0dGJykgPT4nR0YnLCRtb2QtPkxhbmcoJ1BGJykgPT4nUEYnLA0KCQkJCSRtb2QtPkxhbmcoJ1RGJykgPT4nVEYnLCRtb2QtPkxhbmcoJ01LJykgPT4nTUsnLCRtb2QtPkxhbmcoJ0dBJykgPT4nR0EnLA0KCQkJCSRtb2QtPkxhbmcoJ0dNJykgPT4nR00nLCRtb2QtPkxhbmcoJ0dFJykgPT4nR0UnLCRtb2QtPkxhbmcoJ0RFJykgPT4nREUnLA0KCQkJCSRtb2QtPkxhbmcoJ0dIJykgPT4nR0gnLCRtb2QtPkxhbmcoJ0dJJykgPT4nR0knLCRtb2QtPkxhbmcoJ0dCJykgPT4nR0InLA0KCQkJCSRtb2QtPkxhbmcoJ0dSJykgPT4nR1InLCRtb2QtPkxhbmcoJ0dMJykgPT4nR0wnLCRtb2QtPkxhbmcoJ0dEJykgPT4nR0QnLA0KCQkJCSRtb2QtPkxhbmcoJ0dQJykgPT4nR1AnLCRtb2QtPkxhbmcoJ0dVJykgPT4nR1UnLCRtb2QtPkxhbmcoJ0dUJykgPT4nR1QnLA0KCQkJCSRtb2QtPkxhbmcoJ0dGJykgPT4nR0YnLCRtb2QtPkxhbmcoJ0dOJykgPT4nR04nLCRtb2QtPkxhbmcoJ0dXJykgPT4nR1cnLA0KCQkJCSRtb2QtPkxhbmcoJ0dZJykgPT4nR1knLCRtb2QtPkxhbmcoJ0hUJykgPT4nSFQnLCRtb2QtPkxhbmcoJ0hNJykgPT4nSE0nLA0KCQkJCSRtb2QtPkxhbmcoJ0hOJykgPT4nSE4nLCRtb2QtPkxhbmcoJ0hLJykgPT4nSEsnLCRtb2QtPkxhbmcoJ0hVJykgPT4nSFUnLA0KCQkJCSRtb2QtPkxhbmcoJ0lTJykgPT4nSVMnLCRtb2QtPkxhbmcoJ0lOJykgPT4nSU4nLCRtb2QtPkxhbmcoJ0lEJykgPT4nSUQnLA0KCQkJCSRtb2QtPkxhbmcoJ0lSJykgPT4nSVInLCRtb2QtPkxhbmcoJ0lRJykgPT4nSVEnLCRtb2QtPkxhbmcoJ0lFJykgPT4nSUUnLA0KCQkJCSRtb2QtPkxhbmcoJ0lMJykgPT4nSUwnLCRtb2QtPkxhbmcoJ0lNJykgPT4nSU0nLCRtb2QtPkxhbmcoJ0lUJykgPT4nSVQnLA0KCQkJCSRtb2QtPkxhbmcoJ0pFJykgPT4nSkUnLCRtb2QtPkxhbmcoJ0pNJykgPT4nSk0nLCRtb2QtPkxhbmcoJ0pQJykgPT4nSlAnLA0KCQkJCSRtb2QtPkxhbmcoJ0pPJykgPT4nSk8nLCRtb2QtPkxhbmcoJ0taJykgPT4nS1onLCRtb2QtPkxhbmcoJ0tFJykgPT4nS0UnLA0KCQkJCSRtb2QtPkxhbmcoJ0tJJykgPT4nS0knLCRtb2QtPkxhbmcoJ0tQJykgPT4nS1AnLCRtb2QtPkxhbmcoJ0tSJykgPT4nS1InLA0KCQkJCSRtb2QtPkxhbmcoJ0tXJykgPT4nS1cnLCRtb2QtPkxhbmcoJ0tHJykgPT4nS0cnLCRtb2QtPkxhbmcoJ0xBJykgPT4nTEEnLA0KCQkJCSRtb2QtPkxhbmcoJ0xWJykgPT4nTFYnLCRtb2QtPkxhbmcoJ0xCJykgPT4nTEInLCRtb2QtPkxhbmcoJ0xJJykgPT4nTEknLA0KCQkJCSRtb2QtPkxhbmcoJ0xSJykgPT4nTFInLCRtb2QtPkxhbmcoJ0xZJykgPT4nTFknLCRtb2QtPkxhbmcoJ0xTJykgPT4nTFMnLA0KCQkJCSRtb2QtPkxhbmcoJ0xUJykgPT4nTFQnLCRtb2QtPkxhbmcoJ0xVJykgPT4nTFUnLCRtb2QtPkxhbmcoJ01PJykgPT4nTU8nLA0KCQkJCSRtb2QtPkxhbmcoJ01HJykgPT4nTUcnLCRtb2QtPkxhbmcoJ01XJykgPT4nTVcnLCRtb2QtPkxhbmcoJ01ZJykgPT4nTVknLA0KCQkJCSRtb2QtPkxhbmcoJ01WJykgPT4nTVYnLCRtb2QtPkxhbmcoJ01MJykgPT4nTUwnLCRtb2QtPkxhbmcoJ01UJykgPT4nTVQnLA0KCQkJCSRtb2QtPkxhbmcoJ01IJykgPT4nTUgnLCRtb2QtPkxhbmcoJ01RJykgPT4nTVEnLCRtb2QtPkxhbmcoJ01SJykgPT4nTVInLA0KCQkJCSRtb2QtPkxhbmcoJ01VJykgPT4nTVUnLCRtb2QtPkxhbmcoJ1lUJykgPT4nWVQnLCRtb2QtPkxhbmcoJ01YJykgPT4nTVgnLA0KCQkJCSRtb2QtPkxhbmcoJ0ZNJykgPT4nRk0nLCRtb2QtPkxhbmcoJ01DJykgPT4nTUMnLCRtb2QtPkxhbmcoJ01EJykgPT4nTUQnLA0KCQkJCSRtb2QtPkxhbmcoJ01BJykgPT4nTUEnLCRtb2QtPkxhbmcoJ01OJykgPT4nTU4nLCRtb2QtPkxhbmcoJ01TJykgPT4nTVMnLA0KCQkJCSRtb2QtPkxhbmcoJ01aJykgPT4nTVonLCRtb2QtPkxhbmcoJ01NJykgPT4nTU0nLCRtb2QtPkxhbmcoJ05BJykgPT4nTkEnLA0KCQkJCSRtb2QtPkxhbmcoJ05SJykgPT4nTlInLCRtb2QtPkxhbmcoJ05QJykgPT4nTlAnLCRtb2QtPkxhbmcoJ05MJykgPT4nTkwnLA0KCQkJCSRtb2QtPkxhbmcoJ0FOJykgPT4nQU4nLCRtb2QtPkxhbmcoJ05UJykgPT4nTlQnLCRtb2QtPkxhbmcoJ05DJykgPT4nTkMnLA0KCQkJCSRtb2QtPkxhbmcoJ05aJykgPT4nTlonLCRtb2QtPkxhbmcoJ05JJykgPT4nTkknLCRtb2QtPkxhbmcoJ05FJykgPT4nTkUnLA0KCQkJCSRtb2QtPkxhbmcoJ05HJykgPT4nTkcnLCRtb2QtPkxhbmcoJ05VJykgPT4nTlUnLCRtb2QtPkxhbmcoJ05GJykgPT4nTkYnLA0KCQkJCSRtb2QtPkxhbmcoJ01QJykgPT4nTVAnLCRtb2QtPkxhbmcoJ05PJykgPT4nTk8nLCRtb2QtPkxhbmcoJ09NJykgPT4nT00nLA0KCQkJCSRtb2QtPkxhbmcoJ1BLJykgPT4nUEsnLCRtb2QtPkxhbmcoJ1BXJykgPT4nUFcnLCRtb2QtPkxhbmcoJ1BTJykgPT4nUFMnLA0KCQkJCSRtb2QtPkxhbmcoJ1BBJykgPT4nUEEnLCRtb2QtPkxhbmcoJ1BHJykgPT4nUEcnLCRtb2QtPkxhbmcoJ1BZJykgPT4nUFknLA0KCQkJCSRtb2QtPkxhbmcoJ1BFJykgPT4nUEUnLCRtb2QtPkxhbmcoJ1BIJykgPT4nUEgnLCRtb2QtPkxhbmcoJ1BOJykgPT4nUE4nLA0KCQkJCSRtb2QtPkxhbmcoJ1BMJykgPT4nUEwnLCRtb2QtPkxhbmcoJ1BUJykgPT4nUFQnLCRtb2QtPkxhbmcoJ1BSJykgPT4nUFInLA0KCQkJCSRtb2QtPkxhbmcoJ1FBJykgPT4nUUEnLCRtb2QtPkxhbmcoJ1JFJykgPT4nUkUnLCRtb2QtPkxhbmcoJ1JPJykgPT4nUk8nLA0KCQkJCSRtb2QtPkxhbmcoJ1JVJykgPT4nUlUnLCRtb2QtPkxhbmcoJ1JXJykgPT4nUlcnLCRtb2QtPkxhbmcoJ0dTJykgPT4nR1MnLA0KCQkJCSRtb2QtPkxhbmcoJ0tOJykgPT4nS04nLCRtb2QtPkxhbmcoJ0xDJykgPT4nTEMnLCRtb2QtPkxhbmcoJ1ZDJykgPT4nVkMnLA0KCQkJCSRtb2QtPkxhbmcoJ1dTJykgPT4nV1MnLCRtb2QtPkxhbmcoJ1NNJykgPT4nU00nLCRtb2QtPkxhbmcoJ1NUJykgPT4nU1QnLA0KCQkJCSRtb2QtPkxhbmcoJ1NBJykgPT4nU0EnLCRtb2QtPkxhbmcoJ1NOJykgPT4nU04nLCRtb2QtPkxhbmcoJ1NDJykgPT4nU0MnLA0KCQkJCSRtb2QtPkxhbmcoJ1NMJykgPT4nU0wnLCRtb2QtPkxhbmcoJ1NHJykgPT4nU0cnLCRtb2QtPkxhbmcoJ1NJJykgPT4nU0knLA0KCQkJCSRtb2QtPkxhbmcoJ1NLJykgPT4nU0snLCRtb2QtPkxhbmcoJ1NCJykgPT4nU0InLCRtb2QtPkxhbmcoJ1NPJykgPT4nU08nLA0KCQkJCSRtb2QtPkxhbmcoJ1pBJykgPT4nWkEnLCRtb2QtPkxhbmcoJ0VTJykgPT4nRVMnLCRtb2QtPkxhbmcoJ0xLJykgPT4nTEsnLA0KCQkJCSRtb2QtPkxhbmcoJ1NIJykgPT4nU0gnLCRtb2QtPkxhbmcoJ1BNJykgPT4nUE0nLCRtb2QtPkxhbmcoJ1NEJykgPT4nU0QnLA0KCQkJCSRtb2QtPkxhbmcoJ1NSJykgPT4nU1InLCRtb2QtPkxhbmcoJ1NKJykgPT4nU0onLCRtb2QtPkxhbmcoJ1NaJykgPT4nU1onLA0KCQkJCSRtb2QtPkxhbmcoJ1NFJykgPT4nU0UnLCRtb2QtPkxhbmcoJ0NIJykgPT4nQ0gnLCRtb2QtPkxhbmcoJ1NZJykgPT4nU1knLA0KCQkJCSRtb2QtPkxhbmcoJ1RXJykgPT4nVFcnLCRtb2QtPkxhbmcoJ1RKJykgPT4nVEonLCRtb2QtPkxhbmcoJ1RaJykgPT4nVFonLA0KCQkJCSRtb2QtPkxhbmcoJ1RIJykgPT4nVEgnLCRtb2QtPkxhbmcoJ1RHJykgPT4nVEcnLCRtb2QtPkxhbmcoJ1RLJykgPT4nVEsnLA0KCQkJCSRtb2QtPkxhbmcoJ1RPJykgPT4nVE8nLCRtb2QtPkxhbmcoJ1RUJykgPT4nVFQnLCRtb2QtPkxhbmcoJ1ROJykgPT4nVE4nLA0KCQkJCSRtb2QtPkxhbmcoJ1RSJykgPT4nVFInLCRtb2QtPkxhbmcoJ1RNJykgPT4nVE0nLCRtb2QtPkxhbmcoJ1RDJykgPT4nVEMnLA0KCQkJCSRtb2QtPkxhbmcoJ1RWJykgPT4nVFYnLCRtb2QtPkxhbmcoJ1VHJykgPT4nVUcnLCRtb2QtPkxhbmcoJ1VBJykgPT4nVUEnLA0KCQkJCSRtb2QtPkxhbmcoJ0FFJykgPT4nQUUnLCRtb2QtPkxhbmcoJ1VLJykgPT4nVUsnLCRtb2QtPkxhbmcoJ1VTJykgPT4nVVMnLA0KCQkJCSRtb2QtPkxhbmcoJ1VNJykgPT4nVU0nLCRtb2QtPkxhbmcoJ1VZJykgPT4nVVknLCRtb2QtPkxhbmcoJ1VaJykgPT4nVVonLA0KCQkJCSRtb2QtPkxhbmcoJ1ZVJykgPT4nVlUnLCRtb2QtPkxhbmcoJ1ZBJykgPT4nVkEnLCRtb2QtPkxhbmcoJ1ZFJykgPT4nVkUnLA0KCQkJCSRtb2QtPkxhbmcoJ1ZOJykgPT4nVk4nLCRtb2QtPkxhbmcoJ1ZHJykgPT4nVkcnLCRtb2QtPkxhbmcoJ1ZJJykgPT4nVkknLA0KCQkJCSRtb2QtPkxhbmcoJ1dGJykgPT4nV0YnLCRtb2QtPkxhbmcoJ0VIJykgPT4nRUgnLCRtb2QtPkxhbmcoJ1lFJykgPT4nWUUnLA0KCQkJCSRtb2QtPkxhbmcoJ1lVJykgPT4nWVUnLCRtb2QtPkxhbmcoJ1pNJykgPT4nWk0nLCRtb2QtPkxhbmcoJ1pXJykgPT4nWlcnDQoJCQkJKTsNCgkJfQ0KDQogICAgZnVuY3Rpb24gU3RhdHVzSW5mbygpDQoJew0KCQlyZXR1cm4gJyc7DQoJfQ0KDQoJZnVuY3Rpb24gR2V0SHVtYW5SZWFkYWJsZVZhbHVlKCRhc19zdHJpbmc9dHJ1ZSkNCgl7DQoJCSRyZXQgPSBhcnJheV9zZWFyY2goJHRoaXMtPlZhbHVlLCR0aGlzLT5Db3VudHJpZXMpOw0KCQlpZiAoJGFzX3N0cmluZykNCgkJCXsNCgkJCXJldHVybiAkcmV0Ow0KCQkJfQ0KCQllbHNlDQoJCQl7DQoJCQlyZXR1cm4gYXJyYXkoJHJldCk7DQoJCQl9DQoJfQ0KDQoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpDQoJew0KCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOw0KDQoJCXVuc2V0KCR0aGlzLT5Db3VudHJpZXNbJG1vZC0+TGFuZygnbm9fZGVmYXVsdCcpXSk7DQoJCSRqcyA9ICR0aGlzLT5HZXRPcHRpb24oJ2phdmFzY3JpcHQnLCcnKTsNCgkJaWYgKCR0aGlzLT5HZXRPcHRpb24oJ3NlbGVjdF9vbmUnLCcnKSAhPSAnJykNCgkJCXsNCgkJCSR0aGlzLT5Db3VudHJpZXMgPSBhcnJheV9tZXJnZShhcnJheSgkdGhpcy0+R2V0T3B0aW9uKCdzZWxlY3Rfb25lJywnJyk9PicnKSwkdGhpcy0+Q291bnRyaWVzKTsNCgkJCX0NCgkJZWxzZQ0KCQkJew0KCQkJJHRoaXMtPkNvdW50cmllcyA9IGFycmF5X21lcmdlKGFycmF5KCRtb2QtPkxhbmcoJ3NlbGVjdF9vbmUnKT0+JycpLCR0aGlzLT5Db3VudHJpZXMpOw0KCQkJfQ0KDQoJCWlmICghICR0aGlzLT5IYXNWYWx1ZSgpICYmICR0aGlzLT5HZXRPcHRpb24oJ2RlZmF1bHRfY291bnRyeScsJycpICE9ICcnKQ0KCQkgIHsNCgkJICAkdGhpcy0+U2V0VmFsdWUoJHRoaXMtPkdldE9wdGlvbignZGVmYXVsdF9jb3VudHJ5JywnJykpOw0KCQkgIH0NCg0KCQlyZXR1cm4gJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICdmYnJwX18nLiR0aGlzLT5JZCwgJHRoaXMtPkNvdW50cmllcywgLTEsDQogICAgICAgICAkdGhpcy0+VmFsdWUsICRqcy4kdGhpcy0+R2V0Q1NTSWRUYWcoKSk7DQoJfQ0KDQoJZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQ0KCXsNCgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsNCgkJa3NvcnQoJHRoaXMtPkNvdW50cmllcyk7DQoNCgkJJG1haW4gPSBhcnJheSgNCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X2NvdW50cnknKSwNCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9kZWZhdWx0X2NvdW50cnknLA0KICAgICAgICAgICAgCQkkdGhpcy0+Q291bnRyaWVzLCAtMSwgJHRoaXMtPkdldE9wdGlvbignZGVmYXVsdF9jb3VudHJ5JywnJykpKSwNCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3NlbGVjdF9vbmVfbWVzc2FnZScpLA0KICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfc2VsZWN0X29uZScsDQogICAgICAgICAgICAJCSR0aGlzLT5HZXRPcHRpb24oJ3NlbGVjdF9vbmUnLCRtb2QtPkxhbmcoJ3NlbGVjdF9vbmUnKSkpKQ0KCQkpOw0KCQlyZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbixhcnJheSgpKTsNCgl9DQoNCg0KfQ0KDQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/classes/DatePickerField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkRhdGVQaWNrZXJGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCgl2YXIgJE1vbnRoczsKCQoJZnVuY3Rpb24gZmJEYXRlUGlja2VyRmllbGQoJiRmb3JtX3B0ciwgJiRwYXJhbXMpCgl7CiAgICAgICAgJHRoaXMtPmZiRmllbGRCYXNlKCRmb3JtX3B0ciwgJHBhcmFtcyk7CiAgICAgICAgJG1vZCA9ICRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkdGhpcy0+VHlwZSA9ICdEYXRlUGlja2VyRmllbGQnOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25fbm9uZScpPT4nbm9uZScsCiAgICAgICAgICAgICk7CiAgICAgICAgJHRoaXMtPk1vbnRocyA9IGFycmF5KAoJCQknJz0+JycsCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ2RhdGVfamFudWFyeScpPT4xLAogICAgICAgICAgICAkbW9kLT5MYW5nKCdkYXRlX2ZlYnJ1YXJ5Jyk9PjIsCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ2RhdGVfbWFyY2gnKT0+MywKICAgICAgICAgICAgJG1vZC0+TGFuZygnZGF0ZV9hcHJpbCcpPT40LAogICAgICAgICAgICAkbW9kLT5MYW5nKCdkYXRlX21heScpPT41LAogICAgICAgICAgICAkbW9kLT5MYW5nKCdkYXRlX2p1bmUnKT0+NiwKICAgICAgICAgICAgJG1vZC0+TGFuZygnZGF0ZV9qdWx5Jyk9PjcsCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ2RhdGVfYXVndXN0Jyk9PjgsCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ2RhdGVfc2VwdGVtYmVyJyk9PjksCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ2RhdGVfb2N0b2JlcicpPT4xMCwKICAgICAgICAgICAgJG1vZC0+TGFuZygnZGF0ZV9ub3ZlbWJlcicpPT4xMSwKICAgICAgICAgICAgJG1vZC0+TGFuZygnZGF0ZV9kZWNlbWJlcicpPT4xMik7CiAgICAkdGhpcy0+aGFzTXVsdGlwbGVGb3JtQ29tcG9uZW50cyA9IHRydWU7CiAgICAkdGhpcy0+bGFiZWxTdWJDb21wb25lbnRzID0gZmFsc2U7Cgl9CgoKICAgIGZ1bmN0aW9uIFN0YXR1c0luZm8oKQoJewogICAgICAkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgICAkdG9kYXkgPSBnZXRkYXRlKCk7CgkJcmV0dXJuICRtb2QtPkxhbmcoImRhdGVfcmFuZ2UiLGFycmF5KCR0aGlzLT5HZXRPcHRpb24oJ3N0YXJ0X3llYXInLCgkdG9kYXlbJ3llYXInXS0xMCkpICwKICAgICAgICAgJHRoaXMtPkdldE9wdGlvbignZW5kX3llYXInLCgkdG9kYXlbJ3llYXInXSsxMCkpKSkuCiAgICAgICAgICgkdGhpcy0+R2V0T3B0aW9uKCdkZWZhdWx0X3llYXInLCctMScpIT09Jy0xJz8nICgnLiR0aGlzLT5HZXRPcHRpb24oJ2RlZmF1bHRfeWVhcicsJy0xJykuJyknOicnKTsKCX0KCgoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICAgICR0b2RheSA9IGdldGRhdGUoKTsKICAgICAgICREYXlzID0gYXJyYXkoJyc9PicnKTsKICAgICAgIGZvciAoJGk9MTskaTwzMjskaSsrKQogICAgICAgICB7CiAgICAgICAgIAkkRGF5c1skaV09JGk7CiAgICAgICAgIH0KICAgICAgICRZZWFyID0gYXJyYXkoJyc9PicnKTsKCSAgICRzdHkgPSAkdGhpcy0+R2V0T3B0aW9uKCdzdGFydF95ZWFyJywoJHRvZGF5Wyd5ZWFyJ10tMTApKTsKCSAgIGlmICgkc3R5ID09IC0xKQoJCQl7CgkJCSRzdHkgPSAkdG9kYXlbJ3llYXInXTsKCQkJfQogICAgICAgZm9yICgkaT0kc3R5OyRpPCR0aGlzLT5HZXRPcHRpb24oJ2VuZF95ZWFyJywoJHRvZGF5Wyd5ZWFyJ10rMTApKSsxOyRpKyspCiAgICAgICAgIHsKICAgICAgICAgCSRZZWFyWyRpXT0kaTsKICAgICAgICAgfQoJCWlmICgkdGhpcy0+SGFzVmFsdWUoKSkKCQkJewoJCQkkdG9kYXlbJ21kYXknXSA9ICR0aGlzLT5HZXRBcnJheVZhbHVlKDApOwoJCQkkdG9kYXlbJ21vbiddID0gJHRoaXMtPkdldEFycmF5VmFsdWUoMSk7CgkJCSR0b2RheVsneWVhciddID0gJHRoaXMtPkdldEFycmF5VmFsdWUoMik7CQkJCgkJCX0KCQllbHNlIGlmICgkdGhpcy0+R2V0T3B0aW9uKCdkZWZhdWx0X2JsYW5rJywnMCcpID09ICcxJykKCQkJewoJCQkkdG9kYXlbJ21kYXknXT0nJzsKCQkJJHRvZGF5Wydtb24nXT0nJzsKCQkJJHRvZGF5Wyd5ZWFyJ109Jyc7CgkJCX0KCQllbHNlIGlmICgkdGhpcy0+R2V0T3B0aW9uKCdkZWZhdWx0X3llYXInLCctMScpICE9ICctMScpCgkJICAgewogICAgICAgICAkdG9kYXlbJ3llYXInXSA9ICR0aGlzLT5HZXRPcHRpb24oJ2RlZmF1bHRfeWVhcicsJy0xJyk7CiAgICAgICAgIH0KCiAgICAgICRyZXQgPSBhcnJheSgpOwogICAgICAkZGF5ID0gbmV3IHN0ZENsYXNzKCk7CgkgICRqcyA9ICR0aGlzLT5HZXRPcHRpb24oJ2phdmFzY3JpcHQnLCcnKTsKCiAgICAgICRkYXktPmlucHV0ID0gJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICdmYnJwX18nLiR0aGlzLT5JZC4nW10nLCAkRGF5cywgLTEsCiAgICAgICAgICAkdG9kYXlbJ21kYXknXSwgJGpzLiR0aGlzLT5HZXRDU1NJZFRhZygnX2RheScpKTsKIAkJJGRheS0+dGl0bGUgPSAkbW9kLT5MYW5nKCdkYXknKTsKIAkJJGRheS0+bmFtZSA9ICc8bGFiZWwgZm9yPSInLiR0aGlzLT5HZXRDU1NJZCgnX2RheScpLiciPicuJG1vZC0+TGFuZygnZGF5JykuJzwvbGFiZWw+JzsKIAogICAgICAkbW9uID0gbmV3IHN0ZENsYXNzKCk7CiAgICAgICRtb24tPmlucHV0ID0gJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICdmYnJwX18nLiR0aGlzLT5JZC4nW10nLCAkdGhpcy0+TW9udGhzLCAtMSwKICAgICAgICAgICR0b2RheVsnbW9uJ10sICRqcy4kdGhpcy0+R2V0Q1NTSWRUYWcoJ19tb250aCcpKTsKIAkJJG1vbi0+dGl0bGUgPSAkbW9kLT5MYW5nKCdtb24nKTsKIAkJJG1vbi0+bmFtZSA9ICc8bGFiZWwgZm9yPSInLiR0aGlzLT5HZXRDU1NJZCgnX21vbnRoJykuJyI+Jy4kbW9kLT5MYW5nKCdtb24nKS4nPC9sYWJlbD4nOwogCiAgICAgICR5ciA9IG5ldyBzdGRDbGFzcygpOwogICAgICAkeXItPmlucHV0ID0gJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICdmYnJwX18nLiR0aGlzLT5JZC4nW10nLCAkWWVhciwgLTEsCiAgICAgICAgICR0b2RheVsneWVhciddLCRqcy4kdGhpcy0+R2V0Q1NTSWRUYWcoJ195ZWFyJykpOwogICAgICAkeXItPm5hbWUgPSAnPGxhYmVsIGZvcj0iJy4kdGhpcy0+R2V0Q1NTSWQoJ195ZWFyJykuJyI+Jy4kbW9kLT5MYW5nKCd5ZWFyJykuJzwvbGFiZWw+JzsKICAgICAgJHlyLT50aXRsZSA9ICRtb2QtPkxhbmcoJ3llYXInKTsKCgkJJG9yZGVyID0gYXJyYXkoImQiID0+ICRkYXksICJtIiA9PiAkbW9uLCAieSIgPT4gJHlyKTsKCQkkdXNlcl9vcmRlciA9ICR0aGlzLT5HZXRPcHRpb24oJ2RhdGVfb3JkZXInLCdkLW0teScpOwoJCSRhcnJVc2VyT3JkZXIgPSBleHBsb2RlKCItIiwgJHVzZXJfb3JkZXIpOwoJCWZvcmVhY2ggKCRhcnJVc2VyT3JkZXIgYXMgJGtleSkKCQkJewoJCQlhcnJheV9wdXNoKCRyZXQsICRvcmRlclska2V5XSk7CgkJCX0KCiAgICAgIHJldHVybiAkcmV0OwoJfQoKICAgZnVuY3Rpb24gQ29tcGFyZVRvKCR2YWwpCiAgIHsKICAgICAgJHRkID0gMDsKICAgICAgJG9kID0gMDsKICAgICAgaWYgKCR0aGlzLT5IYXNWYWx1ZSgpKQoJCQl7CgkJCSR0ZCA9IG1rdGltZSAoIDEsIDEsIDEsICR0aGlzLT5HZXRBcnJheVZhbHVlKDEpLCAgJHRoaXMtPkdldEFycmF5VmFsdWUoMCksICR0aGlzLT5HZXRBcnJheVZhbHVlKDIpICk7CgkJCX0KCQkkbyA9ICR2YWwtPkdldFZhbHVlKCk7CiAgICAgIGlmICgkby0+SGFzVmFsdWUoKSkKCQkJewoJCQkkb2QgPSBta3RpbWUgKCAxLCAxLCAxLCAkby0+R2V0QXJyYXlWYWx1ZSgxKSwgICRvLT5HZXRBcnJheVZhbHVlKDApLCAkby0+R2V0QXJyYXlWYWx1ZSgyKSApOwoJCQl9CiAgICAgIGlmICgkdGQgPT0gJG9kKQogICAgICAgICB7CiAgICAgICAgIHJldHVybiAwOwogICAgICAgICB9CiAgICAgIHJldHVybiAoJHRkIDwgJG9kKSA/IC0xIDogMTsKICAgfQoKCgoJZnVuY3Rpb24gR2V0SHVtYW5SZWFkYWJsZVZhbHVlKCRhc19zdHJpbmc9dHJ1ZSkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCWlmICgkdGhpcy0+SGFzVmFsdWUoKSkKCQkJewoJCQkkdGhlRGF0ZSA9IG1rdGltZSAoIDEsIDEsIDEsICR0aGlzLT5HZXRBcnJheVZhbHVlKDEpLCAgJHRoaXMtPkdldEFycmF5VmFsdWUoMCksICR0aGlzLT5HZXRBcnJheVZhbHVlKDIpICk7CgkJCSRyZXQgPSBkYXRlKCR0aGlzLT5HZXRPcHRpb24oJ2RhdGVfZm9ybWF0JywnaiBGIFknKSwgJHRoZURhdGUpOwoJCQl9CgkJZWxzZQoJCQl7CgkJCSRyZXQgPSAkbW9kLT5MYW5nKCd1bnNwZWNpZmllZCcpOwoJCQl9CgkJaWYgKCRhc19zdHJpbmcpCgkJCXsKCQkJcmV0dXJuICRyZXQ7CgkJCX0KCQllbHNlCgkJCXsKCQkJcmV0dXJuIGFycmF5KCRyZXQpOwoJCQl9Cgl9CgoJZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAgICR0b2RheSA9IGdldGRhdGUoKTsKCQkkbWFpbiA9IGFycmF5KAoJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9kYXRlX2Zvcm1hdCcpLAogICAgICAgICAgICAJCWFycmF5KCRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9kYXRlX2Zvcm1hdCcsCiAgICAgICAgICAgIAkJJHRoaXMtPkdldE9wdGlvbignZGF0ZV9mb3JtYXQnLCdqIEYgWScpLDI1LDI1KSwkbW9kLT5MYW5nKCdoZWxwX2RhdGVfZm9ybWF0JykpCgkJICAgICksCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2RhdGVfb3JkZXInKSwKCQkJCQlhcnJheSgkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZGF0ZV9vcmRlcicsCgkJCQkJJHRoaXMtPkdldE9wdGlvbignZGF0ZV9vcmRlcicsJ2QtbS15JyksNSw1KSwkbW9kLT5MYW5nKCdoZWxwX2RhdGVfb3JkZXInKSkKCQkJKSwKCQkgICBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9kZWZhdWx0X2JsYW5rJyksCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGZvcm1EZXNjcmlwdG9yLCdmYnJwX29wdF9kZWZhdWx0X2JsYW5rJywnMCcpLgoJCQkJCSRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZGVmYXVsdF9ibGFuaycsCiAgICAgICAgICAgIAkJJzEnLCR0aGlzLT5HZXRPcHRpb24oJ2RlZmF1bHRfYmxhbmsnLCcwJykpLiRtb2QtPkxhbmcoJ3RpdGxlX2RlZmF1bHRfYmxhbmtfaGVscCcpKSwKCQkgICBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9zdGFydF95ZWFyJyksCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X3N0YXJ0X3llYXInLAogICAgICAgICAgICAJCSAgICAkdGhpcy0+R2V0T3B0aW9uKCdzdGFydF95ZWFyJywoJHRvZGF5Wyd5ZWFyJ10tMTApKSwxMCwxMCkpLAoJCSAgIGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2VuZF95ZWFyJyksCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2VuZF95ZWFyJywKICAgICAgICAgICAgCQkgICAgJHRoaXMtPkdldE9wdGlvbignZW5kX3llYXInLCgkdG9kYXlbJ3llYXInXSsxMCkpLDEwLDEwKSksCgkJICAgYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZGVmYXVsdF95ZWFyJyksCiAgICAgICAgICAgIAkJYXJyYXkoJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2RlZmF1bHRfeWVhcicsCiAgICAgICAgICAgIAkJICAgICR0aGlzLT5HZXRPcHRpb24oJ2RlZmF1bHRfeWVhcicsJy0xJyksMTAsMTApLCRtb2QtPkxhbmcoJ3RpdGxlX2RlZmF1bHRfeWVhcl9oZWxwJykpCiAgICAgICAgICkKICAgICAgKTsKCQlyZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbixhcnJheSgpKTsKCX0KCiAgZnVuY3Rpb24gSGFzVmFsdWUoJGRlbnlfYmxhbmtfcmVzcG9uc2VzPWZhbHNlKQogIHsKICAgIGlmICgkdGhpcy0+VmFsdWUgPT09IGZhbHNlKQoJCXsKCQlyZXR1cm4gZmFsc2U7CgkJfQoJaWYgKCFpc19hcnJheSgkdGhpcy0+VmFsdWUpKQoJCXsKCQlyZXR1cm4gZmFsc2U7CgkJfQoJaWYgKCR0aGlzLT5HZXRBcnJheVZhbHVlKDEpID09ICcnIHx8CgkgIAkkdGhpcy0+R2V0QXJyYXlWYWx1ZSgwKSA9PSAnJyB8fAoJICAgICR0aGlzLT5HZXRBcnJheVZhbHVlKDIpID09ICcnKQoJCXsKCQlyZXR1cm4gZmFsc2U7CgkJfQoJcmV0dXJuIHRydWU7CiAgfQoKCn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionDatabase.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkRpc3Bvc2l0aW9uRGF0YWJhc2UgZXh0ZW5kcyBmYkZpZWxkQmFzZSB7CgoJdmFyICRhcHByb3ZlZEJ5OwoKCWZ1bmN0aW9uIGZiRGlzcG9zaXRpb25EYXRhYmFzZSgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgJHRoaXMtPmZiRmllbGRCYXNlKCRmb3JtX3B0ciwgJHBhcmFtcyk7CiAgICAgICRtb2QgPSAkZm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHRoaXMtPlR5cGUgPSAnRGlzcG9zaXRpb25EYXRhYmFzZSc7CgkJJHRoaXMtPklzRGlzcG9zaXRpb24gPSB0cnVlOwoJCSR0aGlzLT5Ob25SZXF1aXJhYmxlRmllbGQgPSB0cnVlOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+RGlzcGxheUluU3VibWlzc2lvbiA9IGZhbHNlOwoJCSR0aGlzLT5IaWRlTGFiZWwgPSAxOwoJCSR0aGlzLT5OZWVkc0RpdiA9IDA7CgkJJHRoaXMtPmFwcHJvdmVkQnkgPSAnJzsKCQkkdGhpcy0+c29ydGFibGUgPSBmYWxzZTsKCX0KCglmdW5jdGlvbiBHZXRGaWVsZElucHV0KCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCWlmICgkdGhpcy0+VmFsdWUgPT09IGZhbHNlKQoJCQl7CgkJCXJldHVybiAnJzsKCQkJfQoJCXJldHVybiAkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdmYnJwX18nLiR0aGlzLT5JZCwJCgkJCSR0aGlzLT5FbmNvZGVSZXFJZCgkdGhpcy0+VmFsdWUpKTsKCX0KCglmdW5jdGlvbiBTZXRBcHByb3ZhbE5hbWUoJG5hbWUpCgl7CgkJJHRoaXMtPmFwcHJvdmVkQnkgPSAkbmFtZTsKCX0KCglmdW5jdGlvbiBTdGF0dXNJbmZvKCkKCXsKCQkgcmV0dXJuICcnOwoJfQoJCglmdW5jdGlvbiBEZWNvZGVSZXFJZCgkdGhlVmFsKQoJewoJCSR0bXAgPSBiYXNlNjRfZGVjb2RlKCR0aGVWYWwpOwoJCSR0bXAyID0gc3RyX3JlcGxhY2Uoc2Vzc2lvbl9pZCgpLCcnLCR0bXApOwoJCWlmIChzdWJzdHIoJHRtcDIsMCwxKSA9PSAnXycpCgkJCXsKCQkJcmV0dXJuIHN1YnN0cigkdG1wMiwxKTsKCQkJfQoJCWVsc2UKCQkJewoJCQlyZXR1cm4gLTE7CgkJCX0KCX0KCQoJZnVuY3Rpb24gRW5jb2RlUmVxSWQoJHJlcV9pZCkKCXsKCQlyZXR1cm4gYmFzZTY0X2VuY29kZShzZXNzaW9uX2lkKCkuJ18nLiRyZXFfaWQpOwoJfQoJCgkKCWZ1bmN0aW9uIFNldFZhbHVlKCR2YWwpCgl7CgoJCSRkZWN2YWwgPSBiYXNlNjRfZGVjb2RlKCR2YWwpOwogICAKCQlpZiAoJHZhbCA9PT0gZmFsc2UpCgkJCXsKCQkJLy8gbm8gdmFsdWUgc2V0LCBzbyB3ZSdsbCBsZWF2ZSB2YWx1ZSBhcyBmYWxzZQoJCQl9CgkJZWxzZWlmIChzdHJwb3MoJGRlY3ZhbCwnXycpID09PSBmYWxzZSkKCQkJewoJCQkvLyB1bmVuY3J5cHRlZCB2YWx1ZSwgY29taW5nIGluIGZyb20gcHJldmlvdXMgcmVzcG9uc2UKCQkJJHRoaXMtPlZhbHVlID0gJHZhbDsKCQkJfQoJCWVsc2UKCQkJewoJCQkvLyBlbmNyeXB0ZWQgdmFsdWUgY29taW5nIGluIGZyb20gYSBmb3JtLCBzbyB3ZSdsbCB1cGRhdGUuCgkJCSR0aGlzLT5WYWx1ZSA9ICR0aGlzLT5EZWNvZGVSZXFJZCgkdmFsKTsKCQkJfQoJfQoJCglmdW5jdGlvbiBnZXRTb3J0RmllbGRWYWwoJHNvcnRGaWVsZE51bWJlcikKCXsKICAgICAgcmV0dXJuIC0xOwogICB9CgkKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgICAkbWFpbiA9IGFycmF5KCk7CiAgICAgICRhZHYgPSBhcnJheSgpOwogICAgICBhcnJheV9wdXNoKCRtYWluLCBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9kYXRhX3N0b3JlZF9pbl9mYnInKSwKICAgICAgICAgJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZmV1X2JuZCcsJzAnKS4KICAgICAgICAgJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfY3J5cHQnLCcwJykuCiAgICAgICAgICRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2hhc2hfc29ydCcsJzAnKS4KICAgICAgICAgJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfc29ydGZpZWxkMScsJycpLgogICAgICAgICAkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9zb3J0ZmllbGQyJywnJykuCiAgICAgICAgICRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X3NvcnRmaWVsZDMnLCcnKS4KICAgICAgICAgJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfc29ydGZpZWxkNCcsJycpLgogICAgICAgICAkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9zb3J0ZmllbGQ1JywnJykpKTsKCQlyZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7Cgl9CgoJZnVuY3Rpb24gUG9zdFBvcHVsYXRlQWRtaW5Gb3JtKCYkbWFpbkFycmF5LCAmJGFkdkFycmF5KQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHRoaXMtPkhpZGRlbkRpc3Bvc2l0aW9uRmllbGRzKCRtYWluQXJyYXksICRhZHZBcnJheSk7Cgl9CgogICAgLy8gV3JpdGUgVG8gdGhlIERhdGFiYXNlCglmdW5jdGlvbiBEaXNwb3NlRm9ybSgkcmV0dXJuaWQpCgl7CgkJJGZvcm0gPSAkdGhpcy0+Zm9ybV9wdHI7CgkJbGlzdCgkcmVzLCRtc2cpID0gJGZvcm0tPlN0b3JlUmVzcG9uc2UoKCR0aGlzLT5WYWx1ZT8kdGhpcy0+VmFsdWU6LTEpLCR0aGlzLT5hcHByb3ZlZEJ5LCR0aGlzKTsKCQlyZXR1cm4gYXJyYXkoJHJlcywgJG1zZyk7Cgl9Cgp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionDeliverToEmailAddressField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCnJlcXVpcmVfb25jZShkaXJuYW1lKF9fRklMRV9fKS4nL0Rpc3Bvc2l0aW9uRW1haWxCYXNlLmNsYXNzLnBocCcpOwoKY2xhc3MgZmJEaXNwb3NpdGlvbkRlbGl2ZXJUb0VtYWlsQWRkcmVzc0ZpZWxkIGV4dGVuZHMgZmJEaXNwb3NpdGlvbkVtYWlsQmFzZSB7CgoJZnVuY3Rpb24gZmJEaXNwb3NpdGlvbkRlbGl2ZXJUb0VtYWlsQWRkcmVzc0ZpZWxkKCYkZm9ybV9wdHIsICYkcGFyYW1zKQoJewogICAgICAkdGhpcy0+ZmJEaXNwb3NpdGlvbkVtYWlsQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgICAkbW9kID0gJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gJ0Rpc3Bvc2l0aW9uRGVsaXZlclRvRW1haWxBZGRyZXNzRmllbGQnOwogICAgICAkdGhpcy0+SXNEaXNwb3NpdGlvbiA9IHRydWU7CgkJJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwoJCSR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgKICAgICAgICAgICAgJG1vZC0+TGFuZygndmFsaWRhdGlvbl9lbWFpbF9hZGRyZXNzJyk9PidlbWFpbCcsCiAgICAgICAgICAgICk7CiAgICAgICR0aGlzLT5WYWxpZGF0aW9uVHlwZSA9ICdlbWFpbCc7CgkgICAkdGhpcy0+bW9kaWZpZXNPdGhlckZpZWxkcyA9IGZhbHNlOwoJICAgJHRoaXMtPlJlcXVpcmVkID0gMTsKCX0KCglmdW5jdGlvbiBHZXRGaWVsZElucHV0KCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRqcyA9ICR0aGlzLT5HZXRPcHRpb24oJ2phdmFzY3JpcHQnLCcnKTsKCQlyZXR1cm4gJG1vZC0+ZmJDcmVhdGVJbnB1dFRleHQoJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQsCgkJCWh0bWxzcGVjaWFsY2hhcnMoJHRoaXMtPlZhbHVlLCBFTlRfUVVPVEVTKSwKICAgICAgICAgICAyNSwxMjgsJGpzLiR0aGlzLT5HZXRDU1NJZFRhZygpKTsKCX0KCglmdW5jdGlvbiBEaXNwb3NlRm9ybSgpCgl7CiAgICAgIGlmICgkdGhpcy0+SGFzVmFsdWUoKSAhPSBmYWxzZSkKICAgICAgICAgewoJCSAgIHJldHVybiAkdGhpcy0+U2VuZEZvcm0oJHRoaXMtPlZhbHVlLCR0aGlzLT5HZXRPcHRpb24oJ2VtYWlsX3N1YmplY3QnKSk7CgkJICAgfQoJCWVsc2UKCQkgICB7CiAgICAgICAgIHJldHVybiBhcnJheSh0cnVlLCcnKTsKICAgICAgICAgfQoJfQoKCglmdW5jdGlvbiBTdGF0dXNJbmZvKCkKCXsKCQlyZXR1cm4gJHRoaXMtPlRlbXBsYXRlU3RhdHVzKCk7Cgl9CgoJZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQoJewoJCWxpc3QoJG1haW4sJGFkdikgPSAkdGhpcy0+UHJlUG9wdWxhdGVBZG1pbkZvcm1CYXNlKCRmb3JtRGVzY3JpcHRvcik7CgkJcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwoJfQoKCWZ1bmN0aW9uIFZhbGlkYXRlKCkKCXsKCiAgCQkkdGhpcy0+dmFsaWRhdGVkID0gdHJ1ZTsKICAJCSR0aGlzLT52YWxpZGF0aW9uRXJyb3JUZXh0ID0gJyc7CgkJJHJlc3VsdCA9IHRydWU7CgkJJG1lc3NhZ2UgPSAnJzsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgICBpZiAoJHRoaXMtPlZhbHVlICE9PSBmYWxzZSAmJgogICAgICAgICAgICAhIHByZWdfbWF0Y2goKCRtb2QtPkdldFByZWZlcmVuY2UoJ3JlbGF4ZWRfZW1haWxfcmVnZXgnLCcwJyk9PTA/JG1vZC0+ZW1haWxfcmVnZXg6JG1vZC0+ZW1haWxfcmVnZXhfcmVsYXhlZCksICR0aGlzLT5WYWx1ZSkpCiAgICAgICAgIHsKICAgICAgICAgJHRoaXMtPnZhbGlkYXRlZCA9IGZhbHNlOwogICAgICAgICAkdGhpcy0+dmFsaWRhdGlvbkVycm9yVGV4dCA9ICRtb2QtPkxhbmcoJ3BsZWFzZV9lbnRlcl9hbl9lbWFpbCcsJHRoaXMtPk5hbWUpOwogICAgICAgICB9CgoJCXJldHVybiBhcnJheSgkdGhpcy0+dmFsaWRhdGVkLCAkdGhpcy0+dmFsaWRhdGlvbkVycm9yVGV4dCk7Cgl9Cn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionDirector.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpyZXF1aXJlX29uY2UoJ0Rpc3Bvc2l0aW9uRW1haWxCYXNlLmNsYXNzLnBocCcpOwoKY2xhc3MgZmJEaXNwb3NpdGlvbkRpcmVjdG9yIGV4dGVuZHMgZmJEaXNwb3NpdGlvbkVtYWlsQmFzZSB7CgoJdmFyICRhZGRyZXNzQ291bnQ7Cgl2YXIgJGFkZHJlc3NBZGQ7CgoJZnVuY3Rpb24gZmJEaXNwb3NpdGlvbkRpcmVjdG9yKCYkZm9ybV9wdHIsICYkcGFyYW1zKQoJewogICAgICAgJHRoaXMtPmZiRGlzcG9zaXRpb25FbWFpbEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gJ0Rpc3Bvc2l0aW9uRGlyZWN0b3InOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+SXNEaXNwb3NpdGlvbiA9IHRydWU7CgkJJHRoaXMtPkhhc0FkZE9wID0gdHJ1ZTsKCQkkdGhpcy0+SGFzRGVsZXRlT3AgPSB0cnVlOwoJCSR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgKICAgICAgIAkJKTsKICAgICAgIAkkdGhpcy0+YWRkcmVzc0FkZCA9IDA7Cgl9CgoJZnVuY3Rpb24gR2V0T3B0aW9uQWRkQnV0dG9uKCkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCXJldHVybiAkbW9kLT5MYW5nKCdhZGRfZGVzdGluYXRpb24nKTsKCX0KCglmdW5jdGlvbiBHZXRPcHRpb25EZWxldGVCdXR0b24oKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJcmV0dXJuICRtb2QtPkxhbmcoJ2RlbGV0ZV9kZXN0aW5hdGlvbicpOwoJfQoKCWZ1bmN0aW9uIERvT3B0aW9uQWRkKCYkcGFyYW1zKQoJewoJCSR0aGlzLT5hZGRyZXNzQWRkID0gMTsKCX0KCglmdW5jdGlvbiBEb09wdGlvbkRlbGV0ZSgmJHBhcmFtcykKCXsKCQkkZGVsY291bnQgPSAwOwoJCWZvcmVhY2ggKCRwYXJhbXMgYXMgJHRoaXNLZXk9PiR0aGlzVmFsKQoJCQl7CgkJCWlmIChzdWJzdHIoJHRoaXNLZXksMCw5KSA9PSAnZmJycF9kZWxfJykKCQkJCXsKCQkJCSR0aGlzLT5SZW1vdmVPcHRpb25FbGVtZW50KCdkZXN0aW5hdGlvbl9hZGRyZXNzJywgJHRoaXNWYWwgLSAkZGVsY291bnQpOwoJCQkJJHRoaXMtPlJlbW92ZU9wdGlvbkVsZW1lbnQoJ2Rlc3RpbmF0aW9uX3N1YmplY3QnLCAkdGhpc1ZhbCAtICRkZWxjb3VudCk7CgkJCQkkZGVsY291bnQrKzsKCQkJCX0KCQkJfQoJfQoKCWZ1bmN0aW9uIGNvdW50QWRkcmVzc2VzKCkKCXsKCQkJJHRtcCA9ICR0aGlzLT5HZXRPcHRpb25SZWYoJ2Rlc3RpbmF0aW9uX2FkZHJlc3MnKTsKCQkJaWYgKGlzX2FycmF5KCR0bXApKQoJCQkJewoJICAgICAgICAJJHRoaXMtPmFkZHJlc3NDb3VudCA9IGNvdW50KCR0bXApOwoJICAgICAgICAJfQoJICAgICAgICBlbHNlaWYgKCR0bXAgIT09IGZhbHNlKQoJICAgICAgICAJewoJICAgICAgICAJJHRoaXMtPmFkZHJlc3NDb3VudCA9IDE7CgkgICAgICAgIAl9CgkgICAgICAgIGVsc2UKCSAgICAgICAgCXsKCSAgICAgICAgCSR0aGlzLT5hZGRyZXNzQ291bnQgPSAwOwoJICAgICAgICAJfQoJfQoKCWZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJGpzID0gJHRoaXMtPkdldE9wdGlvbignamF2YXNjcmlwdCcsJycpOwoKCQkvLyB3aHkgYWxsIHRoaXM/IEFzc29jaWF0aXZlIGFycmF5cyBhcmUgbm90IGd1YXJhbnRlZWQgdG8gcHJlc2VydmUKCQkvLyBvcmRlciwgZXhjZXB0IGluICJjaHJvbm9sb2dpY2FsIiBjcmVhdGlvbiBvcmRlci4KCQkkc29ydGVkID1hcnJheSgpOwoJCWlmICgkdGhpcy0+R2V0T3B0aW9uKCdzZWxlY3Rfb25lJywnJykgIT0gJycpCgkJCXsKCQkJJHNvcnRlZFsnICcuJHRoaXMtPkdldE9wdGlvbignc2VsZWN0X29uZScsJycpXT0nJzsKCQkJfQoJCWVsc2UKCQkJewoJCQkkc29ydGVkWycgJy4kbW9kLT5MYW5nKCdzZWxlY3Rfb25lJyldPScnOwoJCQl9CgkJJHN1YmplY3RzID0gJHRoaXMtPkdldE9wdGlvblJlZignZGVzdGluYXRpb25fc3ViamVjdCcpOwoKCQlpZiAoY291bnQoJHN1YmplY3RzKSA+IDEpCgkJCXsKCQkJZm9yKCRpPTA7JGk8Y291bnQoJHN1YmplY3RzKTskaSsrKQoJCQkJewoJCQkJJHNvcnRlZFskc3ViamVjdHNbJGldXT0oJGkrMSk7CgkJCQl9CgkJCX0KCQllbHNlCgkJCXsKCQkJJHNvcnRlZFskc3ViamVjdHNdID0gJzEnOwoJCQl9CgkJcmV0dXJuICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQsICRzb3J0ZWQsIC0xLCAkdGhpcy0+VmFsdWUsICRqcy4kdGhpcy0+R2V0Q1NTSWRUYWcoKSk7Cgl9CgoKCiAgICBmdW5jdGlvbiBTdGF0dXNJbmZvKCkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRvcHQgPSAkdGhpcy0+R2V0T3B0aW9uKCdkZXN0aW5hdGlvbl9hZGRyZXNzJywnJyk7CgkJCgkJaWYgKGlzX2FycmF5KCRvcHQpKQoJCSAgewoJCSAgICAgICRudW0gPSBjb3VudCgkb3B0KTsKCQkgIH0KCQllbHNlaWYgKCRvcHQgIT0gJycpCgkJCXsKCQkJJG51bSA9IDE7CgkJCX0KCQllbHNlCgkJICB7CiAgICAgICAgICAkbnVtID0gMDsKICAgICAgICAgIH0KICAgICAgICAgJHJldD0gJG1vZC0+TGFuZygnZGVzdGluYXRpb25fY291bnQnLCRudW0pOwogICAgICAgICRyZXQuPSAkdGhpcy0+VGVtcGxhdGVTdGF0dXMoKTsKICAgICAgICByZXR1cm4gJHJldDsKCX0KCQoJZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgoJCSR0aGlzLT5jb3VudEFkZHJlc3NlcygpOwoJCWlmICgkdGhpcy0+YWRkcmVzc0FkZCA+IDApCgkJCXsKCQkJJHRoaXMtPmFkZHJlc3NDb3VudCArPSAkdGhpcy0+YWRkcmVzc0FkZDsKCQkJJHRoaXMtPmFkZHJlc3NBZGQgPSAwOwoJCQl9CgkJJGRlc3RzID0gJzx0YWJsZSBjbGFzcz0ibW9kdWxlX2ZiX3RhYmxlIj48dHI+PHRoPicuJG1vZC0+TGFuZygndGl0bGVfc2VsZWN0aW9uX3N1YmplY3QnKS4nPC90aD48dGg+Jy4KCQkJJG1vZC0+TGFuZygndGl0bGVfZGVzdGluYXRpb25fYWRkcmVzcycpLic8L3RoPjx0aD4nLgoJCQkkbW9kLT5MYW5nKCd0aXRsZV9kZWxldGUnKS4nPC90aD48L3RyPic7CgoKCQlmb3IgKCRpPTA7JGk8KCR0aGlzLT5hZGRyZXNzQ291bnQ+MT8kdGhpcy0+YWRkcmVzc0NvdW50OjEpOyRpKyspCgkJCXsKCQkJJGRlc3RzIC49ICAnPHRyPjx0ZD4nLgogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9kZXN0aW5hdGlvbl9zdWJqZWN0W10nLCR0aGlzLT5HZXRPcHRpb25FbGVtZW50KCdkZXN0aW5hdGlvbl9zdWJqZWN0JywkaSksMjUsMTI4KS4KICAgICAgICAgICAgCQknPC90ZD48dGQ+Jy4KICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZGVzdGluYXRpb25fYWRkcmVzc1tdJywkdGhpcy0+R2V0T3B0aW9uRWxlbWVudCgnZGVzdGluYXRpb25fYWRkcmVzcycsJGkpLDI1LDEyOCkuCiAgICAgICAgICAgIAkJJzwvdGQ+PHRkPicuCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX2RlbF8nLiRpLCAkaSwtMSkuCiAgICAgICAgICAgICAJCSc8L3RkPjwvdHI+JzsKCQkJfQoJCSRkZXN0cyAuPSAnPC90YWJsZT4nOwoJCWxpc3QoJG1haW4sJGFkdikgPSAkdGhpcy0+UHJlUG9wdWxhdGVBZG1pbkZvcm1CYXNlKCRmb3JtRGVzY3JpcHRvcik7CgkJYXJyYXlfcHVzaCgkbWFpbixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9zZWxlY3Rfb25lX21lc3NhZ2UnKSwKCQkJJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X3NlbGVjdF9vbmUnLAoJCQkkdGhpcy0+R2V0T3B0aW9uKCdzZWxlY3Rfb25lJywkbW9kLT5MYW5nKCdzZWxlY3Rfb25lJykpLDI1LDEyOCkpKTsKCQlhcnJheV9wdXNoKCRtYWluLGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2FsbG93X3N1YmplY3Rfb3ZlcnJpZGUnKSwKCQkJJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGZvcm1EZXNjcmlwdG9yLCdmYnJwX29wdF9zdWJqZWN0X292ZXJyaWRlJywnMCcpLgoJCQkkbW9kLT5DcmVhdGVJbnB1dENoZWNrYm94KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X3N1YmplY3Rfb3ZlcnJpZGUnLAogICAgICAgICAgICAgICAgJzEnLCR0aGlzLT5HZXRPcHRpb24oJ3N1YmplY3Rfb3ZlcnJpZGUnLCcwJykpLgoJCQkJJG1vZC0+TGFuZygndGl0bGVfYWxsb3dfc3ViamVjdF9vdmVycmlkZV9sb25nJykpKTsJCQoJCWFycmF5X3B1c2goJG1haW4sYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZGlyZWN0b3JfZGV0YWlscycpLCRkZXN0cykpOwoJCXJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLCdhZHYnPT4kYWR2KTsKCX0KCglmdW5jdGlvbiBQb3N0UG9wdWxhdGVBZG1pbkZvcm0oJiRtYWluQXJyYXksICYkYWR2QXJyYXkpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkvLyByZW1vdmUgdGhlICJlbWFpbCBzdWJqZWN0IiBmaWVsZAogICAgICAkdGhpcy0+UmVtb3ZlQWRtaW5GaWVsZCgkbWFpbkFycmF5LCAkbW9kLT5MYW5nKCd0aXRsZV9lbWFpbF9zdWJqZWN0JykpOwoKCX0KCglmdW5jdGlvbiBHZXRIdW1hblJlYWRhYmxlVmFsdWUoJGFzX3N0cmluZz10cnVlKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJaWYgKCR0aGlzLT5IYXNWYWx1ZSgpKQoJCQl7CgkJCSRyZXQgPSAkdGhpcy0+R2V0T3B0aW9uRWxlbWVudCgnZGVzdGluYXRpb25fc3ViamVjdCcsKCR0aGlzLT5WYWx1ZSAtIDEpKTsKCQkJfQoJCWVsc2UKCQkJewoJCQkkcmV0ID0gJG1vZC0+TGFuZygndW5zcGVjaWZpZWQnKTsKCQkJfQkKCQlpZiAoJGFzX3N0cmluZykKCQkJewoJCQlyZXR1cm4gJHJldDsKCQkJfQoJCWVsc2UKCQkJewoJCQlyZXR1cm4gYXJyYXkoJHJldCk7CgkJCX0KCX0KCQoJZnVuY3Rpb24gRGlzcG9zZUZvcm0oJHJldHVybmlkKQoJewoJCWlmICgkdGhpcy0+R2V0T3B0aW9uKCdzdWJqZWN0X292ZXJyaWRlJywnMCcpID09ICcxJyAmJiAkdGhpcy0+R2V0T3B0aW9uKCdlbWFpbF9zdWJqZWN0JywnJykgIT0gJycpCgkJCXsKCQkJJHN1YmplY3QgPSAkdGhpcy0+R2V0T3B0aW9uKCdlbWFpbF9zdWJqZWN0Jyk7CgkJCX0KCQllbHNlCgkJCXsKCQkJJHN1YmplY3QgPSAkdGhpcy0+R2V0T3B0aW9uRWxlbWVudCgnZGVzdGluYXRpb25fc3ViamVjdCcsKCR0aGlzLT5WYWx1ZSAtIDEpKTsKCQkJfQoJCXJldHVybiAkdGhpcy0+U2VuZEZvcm0oJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ2Rlc3RpbmF0aW9uX2FkZHJlc3MnLCgkdGhpcy0+VmFsdWUgLSAxKSksCgkJCSRzdWJqZWN0KTsKCX0KCgoJZnVuY3Rpb24gQWRtaW5WYWxpZGF0ZSgpCiAgICB7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgIAkkb3B0ID0gJHRoaXMtPkdldE9wdGlvbignZGVzdGluYXRpb25fYWRkcmVzcycpOwogIAkJbGlzdCgkcmV0LCAkbWVzc2FnZSkgPSAkdGhpcy0+RG9lc0ZpZWxkSGF2ZU5hbWUoKTsKCQlpZiAoJHJldCkKCQkJewoJCQlsaXN0KCRyZXQsICRtZXNzYWdlKSA9ICR0aGlzLT5Eb2VzRmllbGROYW1lRXhpc3QoKTsKCQkJfQkJCgoJCWlmIChjb3VudCgkb3B0KSA9PSAwKQoJCQl7CgkJCSRyZXQgPSBmYWxzZTsKCQkJJG1lc3NhZ2UgLj0gJG1vZC0+TGFuZygnbXVzdF9zcGVjaWZ5X29uZV9kZXN0aW5hdGlvbicpLic8L2JyPic7CgkJCX0KCQlsaXN0KCRydiwkbWVzcykgPSAkdGhpcy0+dmFsaWRhdGVFbWFpbEFkZHIoJHRoaXMtPkdldE9wdGlvbignZW1haWxfZnJvbV9hZGRyZXNzJykpOwoJCWlmICghJHJ2KQoJCQl7CiAgICAJICAgICRyZXQgPSBmYWxzZTsKICAgICAgICAgICAgJG1lc3NhZ2UgLj0gJG1lc3M7CgkJCX0KICAgICAgICBmb3IoJGk9MDskaTxjb3VudCgkb3B0KTskaSsrKQogICAgCSAgIHsKCQkgICBsaXN0KCRydiwkbWVzcykgPSAkdGhpcy0+dmFsaWRhdGVFbWFpbEFkZHIoJG9wdFskaV0pOwoJCSAgIGlmICghJHJ2KQoJCQkJewoJCQkJJHJldCA9IGZhbHNlOwoJCQkJJG1lc3NhZ2UgLj0gJG1lc3M7CiAgICAJICAgICAgICB9CgkJCX0KCiAgICAgICAgcmV0dXJuIGFycmF5KCRyZXQsJG1lc3NhZ2UpOwogICAgfQogICAgCiAgICBmdW5jdGlvbiBWYWxpZGF0ZSgpCiAgICB7CiAgICAgICAgICRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAgICAgICRyZXN1bHQgPSB0cnVlOwogICAgICAgICAkbWVzc2FnZSA9ICcnOwoKICAgICAgICAgaWYgKCR0aGlzLT5WYWx1ZSA9PSBmYWxzZSkKICAgICAgICAgICAgewogICAgICAgICAgICAkcmVzdWx0ID0gZmFsc2U7CiAgICAgICAgICAgICRtZXNzYWdlIC49CiRtb2QtPkxhbmcoJ211c3Rfc3BlY2lmeV9vbmVfZGVzdGluYXRpb24nKS4nPC9icj4nOwogICAgICAgICAgICB9CiAgICAgICAgcmV0dXJuIGFycmF5KCRyZXN1bHQsJG1lc3NhZ2UpOwogICAgfQoKfQo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionEmail.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpyZXF1aXJlX29uY2UoZGlybmFtZShfX0ZJTEVfXykuJy9EaXNwb3NpdGlvbkVtYWlsQmFzZS5jbGFzcy5waHAnKTsKCmNsYXNzIGZiRGlzcG9zaXRpb25FbWFpbCBleHRlbmRzIGZiRGlzcG9zaXRpb25FbWFpbEJhc2UgewoKCXZhciAkYWRkcmVzc0NvdW50OwoJdmFyICRhZGRyZXNzQWRkOwoKCWZ1bmN0aW9uIGZiRGlzcG9zaXRpb25FbWFpbCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgICAkdGhpcy0+ZmJEaXNwb3NpdGlvbkVtYWlsQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgICAgICRtb2QgPSAkZm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHRoaXMtPlR5cGUgPSAnRGlzcG9zaXRpb25FbWFpbCc7CgkJJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSBmYWxzZTsKCQkkdGhpcy0+RGlzcGxheUluU3VibWlzc2lvbiA9IGZhbHNlOwoJCSR0aGlzLT5Ob25SZXF1aXJhYmxlRmllbGQgPSB0cnVlOwoJCSR0aGlzLT5Jc0Rpc3Bvc2l0aW9uID0gdHJ1ZTsKCQkkdGhpcy0+SGFzQWRkT3AgPSB0cnVlOwoJCSR0aGlzLT5IYXNEZWxldGVPcCA9IHRydWU7CgkJJHRoaXMtPlZhbGlkYXRpb25UeXBlcyA9IGFycmF5KAogICAgICAgCQkpOwogICAgfQoKCWZ1bmN0aW9uIEdldE9wdGlvbkFkZEJ1dHRvbigpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQlyZXR1cm4gJG1vZC0+TGFuZygnYWRkX2FkZHJlc3MnKTsKCX0KCglmdW5jdGlvbiBHZXRPcHRpb25EZWxldGVCdXR0b24oKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJcmV0dXJuICRtb2QtPkxhbmcoJ2RlbGV0ZV9hZGRyZXNzJyk7Cgl9CgoJZnVuY3Rpb24gRG9PcHRpb25BZGQoJiRwYXJhbXMpCgl7CgkJJHRoaXMtPmFkZHJlc3NBZGQgPSAxOwoJfQoKCWZ1bmN0aW9uIERvT3B0aW9uRGVsZXRlKCYkcGFyYW1zKQoJewoJCSRkZWxjb3VudCA9IDA7CgkJZm9yZWFjaCAoJHBhcmFtcyBhcyAkdGhpc0tleT0+JHRoaXNWYWwpCgkJCXsKCQkJaWYgKHN1YnN0cigkdGhpc0tleSwwLDkpID09ICdmYnJwX2RlbF8nKQoJCQkJewoJCQkJJHRoaXMtPlJlbW92ZU9wdGlvbkVsZW1lbnQoJ2Rlc3RpbmF0aW9uX2FkZHJlc3MnLCAkdGhpc1ZhbCAtICRkZWxjb3VudCk7CgkJCQkkZGVsY291bnQrKzsKCQkJCX0KCQkJfQoJfQoKCgogICAgZnVuY3Rpb24gU3RhdHVzSW5mbygpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkb3B0ID0gJHRoaXMtPkdldE9wdGlvbignZGVzdGluYXRpb25fYWRkcmVzcycsJycpOwoJCSRyZXQ9ICRtb2QtPkxhbmcoJ3RvJykuIjogIjsKCQlpZiAoaXNfYXJyYXkoJG9wdCkpCgkJICB7CgkJICBpZiAoY291bnQoJG9wdCk+MSkKCQkgICAgICB7CgkJICAgICAgJHJldC49IGNvdW50KCRvcHQpOwoJCSAgICAgICRyZXQuPSAiICIuJG1vZC0+TGFuZygncmVjaXBpZW50cycpOwoJCSAgICAgIH0KCQkgIGVsc2UKCQkgICAgICB7CgkJICAgICAgJHJldC49ICRvcHRbMF07CgkJICAgICAgfQoJCSAgfQoJCWVsc2VpZiAoJG9wdCAhPSAnJykKCQkJewoJCQkkcmV0IC49ICRvcHQ7CgkJCX0KCQllbHNlCgkJICB7CiAgICAgICAgICAkcmV0Lj0gJG1vZC0+TGFuZygndW5zcGVjaWZpZWQnKTsKICAgICAgICAgIH0KICAgICAgICAkcmV0Lj0gJHRoaXMtPlRlbXBsYXRlU3RhdHVzKCk7CiAgICAgICAgcmV0dXJuICRyZXQ7Cgl9CgoJZnVuY3Rpb24gY291bnRBZGRyZXNzZXMoKQoJewoJCQkkdG1wID0gJHRoaXMtPkdldE9wdGlvblJlZignZGVzdGluYXRpb25fYWRkcmVzcycpOwoJCQlpZiAoaXNfYXJyYXkoJHRtcCkpCgkJCQl7CgkgICAgICAgIAkkdGhpcy0+YWRkcmVzc0NvdW50ID0gY291bnQoJHRtcCk7CgkgICAgICAgIAl9CgkgICAgICAgIGVsc2VpZiAoJHRtcCAhPT0gZmFsc2UpCgkgICAgICAgIAl7CgkgICAgICAgIAkkdGhpcy0+YWRkcmVzc0NvdW50ID0gMTsKCSAgICAgICAgCX0KCSAgICAgICAgZWxzZQoJICAgICAgICAJewoJICAgICAgICAJJHRoaXMtPmFkZHJlc3NDb3VudCA9IDA7CgkgICAgICAgIAl9Cgl9CgoKICAgIC8vIFNlbmQgb2ZmIHRob3NlIGVtYWlscwoJZnVuY3Rpb24gRGlzcG9zZUZvcm0oKQoJewoJCSR0bXAgPSAkdGhpcy0+R2V0T3B0aW9uUmVmKCdkZXN0aW5hdGlvbl9hZGRyZXNzJyk7CgkJcmV0dXJuICR0aGlzLT5TZW5kRm9ybSgkdG1wLCR0aGlzLT5HZXRPcHRpb24oJ2VtYWlsX3N1YmplY3QnKSk7Cgl9CgoJZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgoJCSR0aGlzLT5jb3VudEFkZHJlc3NlcygpOwoJCWlmICgkdGhpcy0+YWRkcmVzc0FkZCA+IDApCgkJCXsKCQkJJHRoaXMtPmFkZHJlc3NDb3VudCArPSAkdGhpcy0+YWRkcmVzc0FkZDsKCQkJJHRoaXMtPmFkZHJlc3NBZGQgPSAwOwoJCQl9CgkJJGRlc3RzID0gJzx0YWJsZSAgY2xhc3M9Im1vZHVsZV9mYl90YWJsZSI+PHRyPjx0aD4nLiRtb2QtPkxhbmcoJ3RpdGxlX2Rlc3RpbmF0aW9uX2FkZHJlc3MnKS4nPC90aD48dGg+Jy4KCQkJJG1vZC0+TGFuZygndGl0bGVfZGVsZXRlJykuJzwvdGg+PC90cj4nOwoKCgkJZm9yICgkaT0wOyRpPCgkdGhpcy0+YWRkcmVzc0NvdW50PjE/JHRoaXMtPmFkZHJlc3NDb3VudDoxKTskaSsrKQoJCQl7CgkJCSRkZXN0cyAuPSAnPHRyPjx0ZD4nLgogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9kZXN0aW5hdGlvbl9hZGRyZXNzW10nLCR0aGlzLT5HZXRPcHRpb25FbGVtZW50KCdkZXN0aW5hdGlvbl9hZGRyZXNzJywkaSksMjUsMTI4KS4KICAgICAgICAgICAgCQknPC90ZD48dGQ+Jy4KICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dENoZWNrYm94KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfZGVsXycuJGksICRpLC0xKS4KICAgICAgICAgICAgIAkJJzwvdGQ+PC90cj4nOwoJCQl9CgkJJGRlc3RzIC49ICc8L3RhYmxlPic7CgkJbGlzdCgkbWFpbiwkYWR2KSA9ICR0aGlzLT5QcmVQb3B1bGF0ZUFkbWluRm9ybUJhc2UoJGZvcm1EZXNjcmlwdG9yKTsKCQlhcnJheV9wdXNoKCRtYWluLGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2Rlc3RpbmF0aW9uX2FkZHJlc3MnKSwkZGVzdHMpKTsKCQlyZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7Cgl9CgoJZnVuY3Rpb24gUG9zdFBvcHVsYXRlQWRtaW5Gb3JtKCYkbWFpbkFycmF5LCAmJGFkdkFycmF5KQoJewoJCSR0aGlzLT5IaWRkZW5EaXNwb3NpdGlvbkZpZWxkcygkbWFpbkFycmF5LCAkYWR2QXJyYXkpOwoJfQoKCglmdW5jdGlvbiBBZG1pblZhbGlkYXRlKCkKICAgIHsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgCSRvcHQgPSAkdGhpcy0+R2V0T3B0aW9uUmVmKCdkZXN0aW5hdGlvbl9hZGRyZXNzJyk7CiAgCQlsaXN0KCRyZXQsICRtZXNzYWdlKSA9ICR0aGlzLT5Eb2VzRmllbGRIYXZlTmFtZSgpOwoJCWlmICgkcmV0KQoJCQl7CgkJCWxpc3QoJHJldCwgJG1lc3NhZ2UpID0gJHRoaXMtPkRvZXNGaWVsZE5hbWVFeGlzdCgpOwoJCQl9CQkKCQlpZiAoJG9wdCA9PT0gZmFsc2UgfHwgY291bnQoJG9wdCkgPT0gMCkKCQkJewoJCQkkcmV0ID0gZmFsc2U7CgkJCSRtZXNzYWdlIC49ICRtb2QtPkxhbmcoJ211c3Rfc3BlY2lmeV9vbmVfZGVzdGluYXRpb24nKS4nPC9icj4nOwoJCQl9CgkJbGlzdCgkcnYsJG1lc3MpID0gJHRoaXMtPnZhbGlkYXRlRW1haWxBZGRyKCR0aGlzLT5HZXRPcHRpb24oJ2VtYWlsX2Zyb21fYWRkcmVzcycpKTsKCQlpZiAoISRydikKCQkJewogICAgCSAgICAkcmV0ID0gZmFsc2U7CiAgICAgICAgICAgICRtZXNzYWdlIC49ICRtZXNzOwoJCQl9CiAgICAgICAgZm9yKCRpPTA7JGk8Y291bnQoJG9wdCk7JGkrKykKICAgIAkgICB7CgkJICAgbGlzdCgkcnYsJG1lc3MpID0gJHRoaXMtPnZhbGlkYXRlRW1haWxBZGRyKCRvcHRbJGldKTsKCQkgICBpZiAoISRydikKCQkJCXsKCQkJCSRyZXQgPSBmYWxzZTsKCQkJCSRtZXNzYWdlIC49ICRtZXNzOwogICAgCSAgICAgICAgfQoJCQl9CiAgICAgICAgcmV0dXJuIGFycmF5KCRyZXQsJG1lc3NhZ2UpOyAgICAgICAKICAgIH0KCn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionEmailBase.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyoKICAgRm9ybUJ1aWxkZXIuIENvcHlyaWdodCAoYykgMjAwNS0yMDA2IFNhbXVlbCBHb2xkc3RlaW4gPHNqZ0BjbXNtb2R1bGVzLmNvbT4KICAgTW9yZSBpbmZvIGF0IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvZm9ybWJ1aWxkZXIKCiAgIEEgTW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUsIENvcHlyaWdodCAoYykgMjAwNiBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiAgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKKi8KCmNsYXNzIGZiRGlzcG9zaXRpb25FbWFpbEJhc2UgZXh0ZW5kcyBmYkZpZWxkQmFzZQp7CgogIGZ1bmN0aW9uIGZiRGlzcG9zaXRpb25FbWFpbEJhc2UoJiRmb3JtX3B0ciwgJiRwYXJhbXMpCiAgewogICAgJHRoaXMtPmZiRmllbGRCYXNlKCRmb3JtX3B0ciwgJHBhcmFtcyk7CiAgICAkbW9kID0gJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgJHRoaXMtPklzRGlzcG9zaXRpb24gPSB0cnVlOwoJJHRoaXMtPklzRW1haWxEaXNwb3NpdGlvbiA9IHRydWU7CiAgICAkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoKTsKCiAgfQoKICAvLyBvdmVycmlkZSBtZSEKICBmdW5jdGlvbiBTdGF0dXNJbmZvKCkKICB7CiAgfQoKICBmdW5jdGlvbiBUZW1wbGF0ZVN0YXR1cygpCiAgewogICAgJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgIGlmICgkdGhpcy0+R2V0T3B0aW9uKCdlbWFpbF90ZW1wbGF0ZScsJycpID09ICcnKQogICAgICB7CiAgcmV0dXJuICRtb2QtPkxhbmcoJ2VtYWlsX3RlbXBsYXRlX25vdF9zZXQnKTsKICAgICAgfQogIH0KCiAgLy8gb3ZlcnJpZGUgbWUhCiAgZnVuY3Rpb24gRGlzcG9zZUZvcm0oKQogIHsKICAgIHJldHVybiBhcnJheSh0cnVlLCcnKTsKICB9CgogIC8vIG92ZXJyaWRlIG1lIGFzIG5lY2Vzc2FyeQogIGZ1bmN0aW9uIFNldEZyb21BZGRyZXNzKCkKICB7CiAgICByZXR1cm4gdHJ1ZTsKICB9CgogIC8vIG92ZXJyaWRlIG1lIGFzIG5lY2Vzc2FyeQogIGZ1bmN0aW9uIFNldEZyb21OYW1lKCkKICB7CiAgICByZXR1cm4gdHJ1ZTsKICB9CgogIC8vIG92ZXJyaWRlIG1lIGFzIG5lY2Vzc2FyeQogIGZ1bmN0aW9uIFNldFJlcGx5VG9OYW1lKCkKICB7CiAgICByZXR1cm4gdHJ1ZTsKICB9CgogIC8vIG92ZXJyaWRlIG1lIGFzIG5lY2Vzc2FyeQogIGZ1bmN0aW9uIFNldFJlcGx5VG9BZGRyZXNzKCkKICB7CiAgICByZXR1cm4gdHJ1ZTsKICB9CgogIC8vIFNlbmQgb2ZmIHRob3NlIGVtYWlscwogIGZ1bmN0aW9uIFNlbmRGb3JtKCRkZXN0aW5hdGlvbl9hcnJheSwgJHN1YmplY3QpCiAgewogICAgJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICRmb3JtID0gJHRoaXMtPmZvcm1fcHRyOwoKICAgaWYgKCRtb2QtPkdldFByZWZlcmVuY2UoJ2VuYWJsZV9hbnRpc3BhbScsMSkpCiAgICAgewogICAgJGRiID0kbW9kLT5HZXREYigpOwogICAgJHF1ZXJ5ID0gJ3NlbGVjdCBjb3VudChzcmNfaXApIGFzIHNlbnQgZnJvbSAnLmNtc19kYl9wcmVmaXgoKS4KICAgICAgJ21vZHVsZV9mYl9pcF9sb2cgd2hlcmUgc3JjX2lwPT8gQU5EIHNlbnRfdGltZSA+ID8nOwoKICAgICRkYnJlc3VsdCA9ICRkYi0+R2V0T25lKCRxdWVyeSwgYXJyYXkoJF9TRVJWRVJbJ1JFTU9URV9BRERSJ10sCiAgICAgICAgICAgICAgIHRyaW0oJGRiLT5EQlRpbWVTdGFtcCh0aW1lKCkgLSAzNjAwKSwiJyIpKSk7CgogICAgaWYgKCRkYnJlc3VsdCAmJiAkZGJyZXN1bHRbJ3NlbnQnXSA+IDkpCiAgICAgIHsKICAgICAgLy8gdG9vIG1hbnkgZnJvbSB0aGlzIElQIGFkZHJlc3MuIEtpbGwgaXQuCiAgICAgICAgJG1zZyA9ICc8aHIgLz4nLiRtb2QtPkxhbmcoJ3N1c3BlY3RlZF9zcGFtJykuICc8aHIgLz4nOwogICAgICBhdWRpdCgtMSwgJG1vZC0+R2V0TmFtZSgpLCRtb2QtPkxhbmcoJ2xvZ19zdXNwZWN0ZWRfc3BhbScsJF9TRVJWRVJbJ1JFTU9URV9BRERSJ10pKTsKICAgICAgcmV0dXJuIGFycmF5KGZhbHNlLCRtc2cpOwogICAgICB9CiAgICB9CgogICAgJG1haWwgPSAkbW9kLT5HZXRNb2R1bGVJbnN0YW5jZSgnQ01TTWFpbGVyJyk7CiAgICBpZiAoJG1haWwgPT0gRkFMU0UpCiAgICAgIHsKICAkbXNnID0gJyc7CiAgaWYgKCEgJG1vZC0+R2V0UHJlZmVyZW5jZSgnaGlkZV9lcnJvcnMnLDApKQogICAgewogICAgICAkbXNnID0gJzxociAvPicuJG1vZC0+TGFuZygnbWlzc2luZ19jbXNfbWFpbGVyJykuICc8aHIgLz4nOwogICAgfQogIGF1ZGl0KC0xLCAkbW9kLT5HZXROYW1lKCksJG1vZC0+TGFuZygnbWlzc2luZ19jbXNfbWFpbGVyJykpOwogIHJldHVybiBhcnJheShmYWxzZSwkbXNnKTsKICAgICAgfQogICAgJG1haWwtPnJlc2V0KCk7CiAgICAKICAgICRydCA9ICR0aGlzLT5HZXRPcHRpb24oJ2VtYWlsX3JlcGx5X3RvX2FkZHJlc3MnLCcnKTsKICAgICRybiA9ICR0aGlzLT5HZXRPcHRpb24oJ2VtYWlsX3JlcGx5X3RvX25hbWUnLCcnKTsKICAgIGlmIChlbXB0eSgkcm4pKQogICAgICB7CiAgICAgICRybiA9ICR0aGlzLT5HZXRPcHRpb24oJ2VtYWlsX2Zyb21fbmFtZScsJycpOwogICAgICB9CiAgICBpZiAoJHRoaXMtPlNldFJlcGx5VG9BZGRyZXNzKCkgJiYgIWVtcHR5KCRydCkpCiAgICAgIHsKICAgICAgJG1haWwtPkFkZFJlcGx5VG8oJHJ0LCR0aGlzLT5TZXRGcm9tTmFtZSgpPyRybjonJyk7CiAgICAgIH0KICAgIAogICAgaWYgKCR0aGlzLT5TZXRGcm9tQWRkcmVzcygpKQogICAgICB7CiAgCSAgICRtYWlsLT5TZXRGcm9tKCR0aGlzLT5HZXRPcHRpb24oJ2VtYWlsX2Zyb21fYWRkcmVzcycpKTsKICAgICAgfQogICAgaWYgKCR0aGlzLT5TZXRGcm9tTmFtZSgpKQogICAgICB7CiAgICAgICRtYWlsLT5TZXRGcm9tTmFtZSgkdGhpcy0+R2V0T3B0aW9uKCdlbWFpbF9mcm9tX25hbWUnKSk7CiAgICAgIH0KICAgICRtYWlsLT5TZXRDaGFyU2V0KCR0aGlzLT5HZXRPcHRpb24oJ2VtYWlsX2VuY29kaW5nJywndXRmLTgnKSk7CgogICAgJG1lc3NhZ2UgPSAkdGhpcy0+R2V0T3B0aW9uKCdlbWFpbF90ZW1wbGF0ZScsJycpOwogICAgJGh0bWxlbWFpbCA9ICgkdGhpcy0+R2V0T3B0aW9uKCdodG1sX2VtYWlsJywnMCcpID09ICcxJyk7CglpZiAoJHRoaXMtPkdldEZpZWxkVHlwZSgpID09ICdEaXNwb3NpdGlvbkVtYWlsQ29uZmlybWF0aW9uJykKCQl7CgkJJGZvcm0tPkFkZFRlbXBsYXRlVmFyaWFibGUoJ2NvbmZpcm1fdXJsJywkbW9kLT5MYW5nKCd0aXRsZV9jb25maXJtYXRpb25fdXJsJykpOwoJCX0KICAgIGlmICgkaHRtbGVtYWlsKQogICAgIHsKICAgICRtYWlsLT5Jc0hUTUwodHJ1ZSk7CiAgICB9CiAgIGlmIChzdHJsZW4oJG1lc3NhZ2UpIDwgMSkKICAgICAgewogICAgJG1lc3NhZ2UgPSAkZm9ybS0+Y3JlYXRlU2FtcGxlVGVtcGxhdGUoZmFsc2UpOwogICAgICBpZiAoJGh0bWxlbWFpbCkKICAgICAgIHsKICAgICAgJG1lc3NhZ2UyID0gJGZvcm0tPmNyZWF0ZVNhbXBsZVRlbXBsYXRlKHRydWUpOwogICAgICB9CiAgICAgIH0KICAgIGVsc2VpZiAoJGh0bWxlbWFpbCkKICAgICAgewogICAgJG1lc3NhZ2UyID0gJG1lc3NhZ2U7CiAgICB9CiAgICAkZm9ybS0+c2V0RmluaXNoZWRGb3JtU21hcnR5KCRodG1sZW1haWwpOwoKICAgICR0aGVGaWVsZHMgPSAkZm9ybS0+R2V0RmllbGRzKCk7CgogICAgZm9yKCRpPTA7JGk8Y291bnQoJHRoZUZpZWxkcyk7JGkrKykKCQl7CiAJCWlmIChzdHJ0b2xvd2VyKGdldF9jbGFzcygkdGhlRmllbGRzWyRpXSkpID09ICdmYmZpbGV1cGxvYWRmaWVsZCcgKQogICAgCQl7CiAgICAJCWlmKCEgJHRoZUZpZWxkc1skaV0tPkdldE9wdGlvbignc2VuZHRvX3VwbG9hZHMnKSApCiAgICAgIAkJCXsKICAgICAgICAJCS8vIHdlIGhhdmUgYSBmaWxlIHdlIHdpc2ggdG8gYXR0YWNoCgkJCQkkdGhpc0F0dCA9ICR0aGVGaWVsZHNbJGldLT5HZXRIdW1hblJlYWRhYmxlVmFsdWUoZmFsc2UpOwoJCQkKCQkJCWlmIChpc19hcnJheSgkdGhpc0F0dCkpCgkJCQkJewoJCQkJCWlmIChmdW5jdGlvbl9leGlzdHMoJ2ZpbmZvX29wZW4nKSkKCQkJCQkJewoJCQkJCQkkZmluZm8gPSBmaW5mb19vcGVuKEZJTEVJTkZPX01JTUUpOyAvLyByZXR1cm4gbWltZSB0eXBlIGFsYSBtaW1ldHlwZSBleHRlbnNpb24KCQkJCQkJJHRoaXNUeXBlID0gZmluZm9fZmlsZSgkZmluZm8sICR0aGlzQXR0WzBdKTsKCQkJCQkJZmluZm9fY2xvc2UoJGZpbmZvKTsKCQkJCQkJfQoJCQkJCWVsc2UgaWYgKGZ1bmN0aW9uX2V4aXN0cygnbWltZV9jb250ZW50X3R5cGUnKSkKCQkJCQkJewoJCQkJCQkkdGhpc1R5cGUgPSBtaW1lX2NvbnRlbnRfdHlwZSgkdGhpc0F0dFswXSk7CgkJCQkJCX0KCQkJCQllbHNlCgkJCQkJCXsKCQkJCQkJJHRoaXNUeXBlID0gJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSc7CgkJCQkJCX0KCQkJCQkkdGhpc05hbWVzID0gc3BsaXQoJ1svOlxcXScsJHRoaXNBdHRbMF0pOwoJCQkJCSR0aGlzTmFtZSA9IGFycmF5X3BvcCgkdGhpc05hbWVzKTsKICAgIAkJCQlpZiAoISAkbWFpbC0+QWRkQXR0YWNobWVudCgkdGhpc0F0dFswXSwgJHRoaXNOYW1lLCAiYmFzZTY0IiwgJHRoaXNUeXBlKSkKICAgICAgICAgIAkJCQl7CiAgICAgIAkJCQkJLy8gZmFpbGVkIHVwbG9hZCBraWxscyB0aGUgc2VuZC4KICAgICAgCQkJCQlhdWRpdCgtMSwgKGlzc2V0KCRuYW1lKT8kbmFtZToiIiksICRtb2QtPkxhbmcoJ3N1Ym1pdF9lcnJvcicsJG1haWwtPkdldEVycm9ySW5mbygpKSk7CiAgICAgIAkJCQkJcmV0dXJuIGFycmF5KCRyZXMsICRtb2QtPkxhbmcoJ3VwbG9hZF9hdHRhY2hfZXJyb3InLAogICAgICAgICAgICAgICAgICAJCQkJYXJyYXkoJHRoaXNBdHRbMF0sJHRoaXNBdHRbMF0gLCR0aGlzVHlwZSkpKTsKICAgICAgICAgIAkJCQl9CgkJCQkJfQogICAgICAJCQl9CiAgICAgCQl9CiAgICAJfQoKCQogICAgJG1lc3NhZ2UgPSAkbW9kLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSggJG1lc3NhZ2UgKTsKICAgICRzdWJqZWN0ID0gJG1vZC0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoICRzdWJqZWN0ICk7CiAgICAkbWFpbC0+U2V0U3ViamVjdCgkc3ViamVjdCk7CiAgICAgaWYgKCRodG1sZW1haWwpCiAgICAgewogICAgJG1lc3NhZ2UyID0gJG1vZC0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoJG1lc3NhZ2UyKTsKICAgICRtYWlsLT5TZXRBbHRCb2R5KHN0cmlwX3RhZ3MoaHRtbF9lbnRpdHlfZGVjb2RlKCRtZXNzYWdlKSkpOwogICAgJG1haWwtPlNldEJvZHkoJG1lc3NhZ2UyKTsKICAgIH0KICAgZWxzZQogICAgIHsKICAgICAkbWFpbC0+U2V0Qm9keShodG1sX2VudGl0eV9kZWNvZGUoJG1lc3NhZ2UpKTsKICAgIH0KICAgIC8vIHNlbmQgdGhlIG1lc3NhZ2UuLi4KICAgIGlmICghIGlzX2FycmF5KCRkZXN0aW5hdGlvbl9hcnJheSkpCiAgICAgIHsKICAkZGVzdGluYXRpb25fYXJyYXkgPSBhcnJheSgkZGVzdGluYXRpb25fYXJyYXkpOwogICAgICB9CiAgICBmb3JlYWNoICgkZGVzdGluYXRpb25fYXJyYXkgYXMgJHRoaXNEZXN0KQogICAgICB7CgkJaWYgKHN0cnBvcygkdGhpc0Rlc3QsJywnKSAhPT0gZmFsc2UpCgkJCXsKCQkJJHN1Yl9hZHMgPSBleHBsb2RlKCcsJywkdGhpc0Rlc3QpOwoJCQlmb3JlYWNoICgkc3ViX2FkcyBhcyAkdGhpc19hZCkKCQkJCXsKCQkJCSRtYWlsLT5BZGRBZGRyZXNzKHRyaW0oJHRoaXNfYWQpKTsJCgkJCQl9CgkJCX0KCQllbHNlCgkJCXsKICAJCQkkbWFpbC0+QWRkQWRkcmVzcygkdGhpc0Rlc3QpOwoJCQl9CiAgICAgIH0KCiAgICAkcmVzID0gJG1haWwtPlNlbmQoKTsKICAgIGlmICgkcmVzID09PSBmYWxzZSkKICAgICAgewogIGF1ZGl0KC0xLCAoaXNzZXQoJG5hbWUpPyRuYW1lOiIiKSwgJG1vZC0+TGFuZygnc3VibWl0X2Vycm9yJywkbWFpbC0+R2V0RXJyb3JJbmZvKCkpKTsKICAgICAgfQogICAgZWxzZSBpZiAoJG1vZC0+R2V0UHJlZmVyZW5jZSgnZW5hYmxlX2FudGlzcGFtJywxKSkKICAgICB7CiAgICAkZGIgPSAkbW9kLT5HZXREYigpOwoKICAgICRyZWNfaWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2lwX2xvZ19zZXEnKTsKICAgICRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLmNtc19kYl9wcmVmaXgoKS4KICAgICAgJ21vZHVsZV9mYl9pcF9sb2cgKHNlbnRfaWQsIHNyY19pcCwgc2VudF90aW1lKSBWQUxVRVMgKD8sID8sID8pJzsKCiAgICAkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkcmVjX2lkLCAkX1NFUlZFUlsnUkVNT1RFX0FERFInXSwKICAgICAgICAgICAgICAgdHJpbSgkZGItPkRCVGltZVN0YW1wKHRpbWUoKSksIiciKSkpOwogICAgfQogICAgcmV0dXJuIGFycmF5KCRyZXMsICRtYWlsLT5HZXRFcnJvckluZm8oKSk7CiAgfQoKICBmdW5jdGlvbiBQcmVQb3B1bGF0ZUFkbWluRm9ybUJhc2UoJGZvcm1EZXNjcmlwdG9yKQogIHsKICAgICRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkbWVzc2FnZSA9ICR0aGlzLT5HZXRPcHRpb24oJ2VtYWlsX3RlbXBsYXRlJywnJyk7CgoJJHBhcm0gPSBhcnJheSgpOwoJJHBhcm1bJ29wdF9lbWFpbF90ZW1wbGF0ZSddWydodG1sX2J1dHRvbiddID0gdHJ1ZTsKCSRwYXJtWydvcHRfZW1haWxfdGVtcGxhdGUnXVsndGV4dF9idXR0b24nXSA9IHRydWU7CgkkcGFybVsnb3B0X2VtYWlsX3RlbXBsYXRlJ11bJ2lzX2VtYWlsJ10gPSB0cnVlOwoJaWYgKCR0aGlzLT5HZXRGaWVsZFR5cGUoKSA9PSAnRGlzcG9zaXRpb25FbWFpbENvbmZpcm1hdGlvbicpCgkJewoJCSR0aGlzLT5mb3JtX3B0ci0+QWRkVGVtcGxhdGVWYXJpYWJsZSgnY29uZmlybV91cmwnLCRtb2QtPkxhbmcoJ3RpdGxlX2NvbmZpcm1hdGlvbl91cmwnKSk7CgkJfQoKICAgIHJldHVybiBhcnJheSgKICAgICBhcnJheSgKICAgICAgICAgICBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9lbWFpbF9zdWJqZWN0JyksJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2VtYWlsX3N1YmplY3QnLCR0aGlzLT5HZXRPcHRpb24oJ2VtYWlsX3N1YmplY3QnLCcnKSw1MCkuJzxici8+Jy4kbW9kLT5MYW5nKCdjYW51c2Vfc21hcnR5JykpLAogICAgICAgICAgIGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2VtYWlsX2Zyb21fbmFtZScpLCRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9lbWFpbF9mcm9tX25hbWUnLCR0aGlzLT5HZXRPcHRpb24oJ2VtYWlsX2Zyb21fbmFtZScsJG1vZC0+TGFuZygnZnJpZW5kbHluYW1lJykpLDI1LDEyOCkpLAogICAgICAgICAgIGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2VtYWlsX2Zyb21fYWRkcmVzcycpLCRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9lbWFpbF9mcm9tX2FkZHJlc3MnLCR0aGlzLT5HZXRPcHRpb24oJ2VtYWlsX2Zyb21fYWRkcmVzcycsJycpLDI1LDEyOCkuJzxiciAvPicuCgkJJG1vZC0+TGFuZygnZW1haWxfZnJvbV9hZGRyX2hlbHAnLGFycmF5KCRfU0VSVkVSWydTRVJWRVJfTkFNRSddKSkpLAogICAgICAgICAgICksCiAgICAgYXJyYXkoCiAgICAgICAgICBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9odG1sX2VtYWlsJyksCiAgICAgICAgICAgICRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRmb3JtRGVzY3JpcHRvciwnZmJycF9vcHRfaHRtbF9lbWFpbCcsJzAnKS4kbW9kLT5DcmVhdGVJbnB1dENoZWNrYm94KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2h0bWxfZW1haWwnLAogICAgICAgICAgICAgICAgJzEnLCR0aGlzLT5HZXRPcHRpb24oJ2h0bWxfZW1haWwnLCcwJykpKSwKICAgICAgICAgICBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9lbWFpbF90ZW1wbGF0ZScpLAogICAgICAgICAgIGFycmF5KCRtb2QtPkNyZWF0ZVRleHRBcmVhKGZhbHNlLCAkZm9ybURlc2NyaXB0b3IsCiAgICAgICAgICAgICAgLyooJHRoaXMtPkdldE9wdGlvbignaHRtbF9lbWFpbCcsJzAnKT09JzEnPyRtZXNzYWdlOmh0bWxzcGVjaWFsY2hhcnMoJG1lc3NhZ2UpKSovCgkJCSAkbWVzc2FnZSwnZmJycF9vcHRfZW1haWxfdGVtcGxhdGUnLCAnbW9kdWxlX2ZiX2FyZWFfd2lkZScsICcnLCcnLCcnLCc4MCcsICcxNScsJycsJ2h0bWwnKSwKICAgICAgICAgICAgICAkdGhpcy0+Zm9ybV9wdHItPkFkbWluVGVtcGxhdGVIZWxwKCRmb3JtRGVzY3JpcHRvciwkcGFybSkpKSwKICAgICAgICAgICBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9lbWFpbF9lbmNvZGluZycpLCRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9lbWFpbF9lbmNvZGluZycsJHRoaXMtPkdldE9wdGlvbignZW1haWxfZW5jb2RpbmcnLCd1dGYtOCcpLDI1LDEyOCkpCiAgICAgICAgICAgKQogICAgICk7CiAgfQoKICBmdW5jdGlvbiB2YWxpZGF0ZUVtYWlsQWRkcigkZW1haWwpCgl7CgkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJJHJldCA9IHRydWU7CgkkbWVzc2FnZSA9ICcnOwoJaWYgKHN0cnBvcygkZW1haWwsJywnKSAhPT0gZmFsc2UpCgkJewoJCSR0YSA9IGV4cGxvZGUoJywnLCRlbWFpbCk7CQoJCX0KCWVsc2UKCQl7CgkJJHRhID0gYXJyYXkoJGVtYWlsKTsJCgkJfQoJZm9yZWFjaCgkdGEgYXMgJHRvKQoJCXsKCQlpZiAoISBwcmVnX21hdGNoKCgkbW9kLT5HZXRQcmVmZXJlbmNlKCdyZWxheGVkX2VtYWlsX3JlZ2V4JywnMCcpPT0wPyRtb2QtPmVtYWlsX3JlZ2V4OiRtb2QtPmVtYWlsX3JlZ2V4X3JlbGF4ZWQpLCAkdG8pKQoJICAgICAgIHsKCSAgICAgICAJJHJldCA9IGZhbHNlOwogICAgICAgICAgICAkbWVzc2FnZSAuPSAkbW9kLT5MYW5nKCdub3RfdmFsaWRfZW1haWwnLCR0bykuJzxici8+JzsKCSAgICAgICB9CgkJfQoJcmV0dXJuIGFycmF5KCRyZXQsICRtZXNzYWdlKTsKCX0KCn0KCi8vIEVPRgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionEmailConfirmation.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpyZXF1aXJlX29uY2UoJ0Rpc3Bvc2l0aW9uRW1haWxCYXNlLmNsYXNzLnBocCcpOwoKY2xhc3MgZmJEaXNwb3NpdGlvbkVtYWlsQ29uZmlybWF0aW9uIGV4dGVuZHMgZmJEaXNwb3NpdGlvbkVtYWlsQmFzZSB7CgoJLy92YXIgJHZhbGlkYXRlZDsKCglmdW5jdGlvbiBmYkRpc3Bvc2l0aW9uRW1haWxDb25maXJtYXRpb24oJiRmb3JtX3B0ciwgJiRwYXJhbXMpCgl7CiAgICAgICAgJHRoaXMtPmZiRGlzcG9zaXRpb25FbWFpbEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gJ0Rpc3Bvc2l0aW9uRW1haWxDb25maXJtYXRpb24nOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+Tm9uUmVxdWlyYWJsZUZpZWxkID0gZmFsc2U7CgkJJHRoaXMtPkRpc3BsYXlJblN1Ym1pc3Npb24gPSB0cnVlOwoJCSR0aGlzLT5Jc0Rpc3Bvc2l0aW9uID0gdHJ1ZTsKCQkkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoKTsKICAgICAgIAkkdGhpcy0+VmFsaWRhdGlvblR5cGUgPSAnZW1haWwnOwogICAgICAgCSR0aGlzLT5tb2RpZmllc090aGVyRmllbGRzID0gdHJ1ZTsKICAgICAgIAkkdGhpcy0+Zm9ybV9wdHItPkFkZFRlbXBsYXRlVmFyaWFibGUoJ2NvbmZpcm1fdXJsJywKICAgICAgIAkJJG1vZC0+TGFuZygndGl0bGVfY29uZmlybWF0aW9uX3VybCcpKTsKICAgICAgIAkkdGhpcy0+YXBwcm92ZWRUb0dvID0gZmFsc2U7CiAgICB9CgogICAgZnVuY3Rpb24gU3RhdHVzSW5mbygpCgl7CiAgICAgICAgcmV0dXJuICR0aGlzLT5UZW1wbGF0ZVN0YXR1cygpOwoJfQoKCWZ1bmN0aW9uIEFwcHJvdmVUb0dvKCRyZXNwb25zZV9pZCkKCXsKCQkkdGhpcy0+YXBwcm92ZWRUb0dvID0gdHJ1ZTsKCX0KCglmdW5jdGlvbiBNb2RpZnlPdGhlckZpZWxkcygpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCgkJaWYgKCR0aGlzLT5mb3JtX3B0ci0+R2V0Rm9ybVN0YXRlKCkgPT0gJ3VwZGF0ZScpCgkJCXsKCQkJJHRoaXMtPmFwcHJvdmVkVG9HbyA9IHRydWU7CgkJCXJldHVybjsKCQkJfQoJCS8vIElmIHdlIGhhdmVuJ3QgYmVlbiBhcHByb3ZlZCwgaW5oaWJpdCBhbGwgb3RoZXIgZGlzcG9zaXRpb25zIQoJCSRvdGhlcnMgPSAkdGhpcy0+Zm9ybV9wdHItPkdldEZpZWxkcygpOwoKCQlmb3IoJGk9MDskaTxjb3VudCgkb3RoZXJzKTskaSsrKQoJCQl7CgkJCWlmICgoJHRoaXMtPmFwcHJvdmVkVG9HbyAmJiAkb3RoZXJzWyRpXS0+R2V0RmllbGRUeXBlKCkgPT0gJ0Rpc3Bvc2l0aW9uRGF0YWJhc2UnKSB8fAoJCQkJKCR0aGlzLT5hcHByb3ZlZFRvR28gJiYgJG90aGVyc1skaV0tPkdldEZpZWxkVHlwZSgpID09ICdEaXNwb3NpdGlvbkZvcm1Ccm93c2VyJykpCgkJCQl7CgkJCQkkb3RoZXJzWyRpXS0+U2V0QXBwcm92YWxOYW1lKCR0aGlzLT5HZXRWYWx1ZSgpKTsKCQkJCX0KCQkJZWxzZWlmICghICR0aGlzLT5hcHByb3ZlZFRvR28gJiYgJG90aGVyc1skaV0tPklzRGlzcG9zaXRpb24oKSkKCQkJCXsKCQkJCSRvdGhlcnNbJGldLT5TZXREaXNwb3NpdGlvblBlcm1pc3Npb24oZmFsc2UpOwoJCQkJfQoJCQl9CgkJJHRoaXMtPlNldERpc3Bvc2l0aW9uUGVybWlzc2lvbih0cnVlKTsJCQoJfQoKCWZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJcmV0dXJuICRtb2QtPmZiQ3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2ZicnBfXycuJHRoaXMtPklkLAoJCQlodG1sc3BlY2lhbGNoYXJzKCR0aGlzLT5WYWx1ZSwgRU5UX1FVT1RFUyksMjUsODAsJHRoaXMtPkdldENTU0lkVGFnKCksJ2VtYWlsJyk7Cgl9CgoKICAgIC8vIFNlbmQgb2ZmIHRob3NlIGVtYWlscwoJZnVuY3Rpb24gRGlzcG9zZUZvcm0oJHJldHVybmlkKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJaWYgKCEgJHRoaXMtPmFwcHJvdmVkVG9HbykKCQkJewoJCQkvLyBjcmVhdGUgcmVzcG9uc2UgVVJMCgkJCSRmYnJmID0gbnVsbDsKCQkJbGlzdCgkcmlkLCRjb2RlKSA9ICR0aGlzLT5mb3JtX3B0ci0+U3RvcmVSZXNwb25zZSgtMSwnJywkZmJyZik7CgkJCQoJCQkkbW9kLT5zbWFydHktPmFzc2lnbignY29uZmlybV91cmwnLCRtb2QtPkNyZWF0ZUZyb250ZW5kTGluaygnJywgJHJldHVybmlkLAoJCQkJJ3ZhbGlkYXRlJywgJycsIGFycmF5KCdmYnJwX2YnPT4kdGhpcy0+Zm9ybV9wdHItPkdldElkKCksJ2ZicnBfcic9PiRyaWQsJ2ZicnBfYyc9PiRjb2RlKSwgJycsCgkJCQl0cnVlLGZhbHNlLCcnLHRydWUpKTsKCQkJcmV0dXJuICR0aGlzLT5TZW5kRm9ybSgkdGhpcy0+R2V0VmFsdWUoKSwkdGhpcy0+R2V0T3B0aW9uKCdlbWFpbF9zdWJqZWN0JykpOwoJCQl9CgkJZWxzZQoJCQl7CgkJCXJldHVybiBhcnJheSh0cnVlLCcnKTsKCQkJfQoJfQoKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCSAgJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCSAgCgkgIGdsb2JhbCAkZ0NtczsKCSAgJGNvbnRlbnRvcHMgPSAkZ0Ntcy0+R2V0Q29udGVudE9wZXJhdGlvbnMoKTsKCgkgIGxpc3QoJG1haW4sJGFkdikgPSAkdGhpcy0+UHJlUG9wdWxhdGVBZG1pbkZvcm1CYXNlKCRmb3JtRGVzY3JpcHRvcik7CgkgIGFycmF5X3B1c2goJG1haW4sYXJyYXkoJG1vZC0+TGFuZygncmVkaXJlY3RfYWZ0ZXJfYXBwcm92YWwnKSwKCQkJCSBAJGNvbnRlbnRvcHMtPkNyZWF0ZUhpZXJhcmNoeURyb3Bkb3duKCcnLCR0aGlzLT5HZXRPcHRpb24oJ3JlZGlyZWN0X3BhZ2UnLCcwJyksICRmb3JtRGVzY3JpcHRvci4nZmJycF9vcHRfcmVkaXJlY3RfcGFnZScpKSk7CgkgIHJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLCdhZHYnPT4kYWR2KTsKCX0KCglmdW5jdGlvbiBWYWxpZGF0ZSgpCgl7CiAgCQkkdGhpcy0+dmFsaWRhdGVkID0gdHJ1ZTsKICAJCSR0aGlzLT52YWxpZGF0aW9uRXJyb3JUZXh0ID0gJyc7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQlzd2l0Y2ggKCR0aGlzLT5WYWxpZGF0aW9uVHlwZSkKCQkgIHsKCQkgIAkgICBjYXNlICdlbWFpbCc6CiAgICAgICAgICAgICAgICAgIGlmICgkdGhpcy0+VmFsdWUgIT09IGZhbHNlICYmCiAgICAgICAgICAgICAgICAgICAgICAhIHByZWdfbWF0Y2goKCRtb2QtPkdldFByZWZlcmVuY2UoJ3JlbGF4ZWRfZW1haWxfcmVnZXgnLCcwJyk9PTA/JG1vZC0+ZW1haWxfcmVnZXg6JG1vZC0+ZW1haWxfcmVnZXhfcmVsYXhlZCksICR0aGlzLT5WYWx1ZSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICR0aGlzLT52YWxpZGF0ZWQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+dmFsaWRhdGlvbkVycm9yVGV4dCA9ICRtb2QtPkxhbmcoJ3BsZWFzZV9lbnRlcl9hbl9lbWFpbCcsJHRoaXMtPk5hbWUpOwogICAgICAgICAgICAgICAgICAgIH0KCQkgIAkgICAgICAgYnJlYWs7CgkJICB9CgkJcmV0dXJuIGFycmF5KCR0aGlzLT52YWxpZGF0ZWQsICR0aGlzLT52YWxpZGF0aW9uRXJyb3JUZXh0KTsKCX0KCgp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionEmailSiteAdmin.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwOCBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDggYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpyZXF1aXJlX29uY2UoJ0Rpc3Bvc2l0aW9uRW1haWxCYXNlLmNsYXNzLnBocCcpOwoKY2xhc3MgZmJEaXNwb3NpdGlvbkVtYWlsU2l0ZUFkbWluIGV4dGVuZHMgZmJEaXNwb3NpdGlvbkVtYWlsQmFzZSB7CgoJdmFyICRhZGRyZXNzQ291bnQ7Cgl2YXIgJGFkZHJlc3NBZGQ7CgoJZnVuY3Rpb24gZmJEaXNwb3NpdGlvbkVtYWlsU2l0ZUFkbWluKCYkZm9ybV9wdHIsICYkcGFyYW1zKQoJewogICAgICAgJHRoaXMtPmZiRGlzcG9zaXRpb25FbWFpbEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gJ0Rpc3Bvc2l0aW9uRW1haWxTaXRlQWRtaW4nOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+SXNEaXNwb3NpdGlvbiA9IHRydWU7CgkJJHRoaXMtPkhhc0FkZE9wID0gZmFsc2U7CgkJJHRoaXMtPkhhc0RlbGV0ZU9wID0gZmFsc2U7CgkJJHRoaXMtPlZhbGlkYXRpb25UeXBlcyA9IGFycmF5KAogICAgICAgCQkpOwoJfQoKCglmdW5jdGlvbiBHZXRGaWVsZElucHV0KCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkKCXsKCSAgICBnbG9iYWwgJGdDbXM7CgkgICAgJHVzZXJvcHMgPSAkZ0Ntcy0+R2V0VXNlck9wZXJhdGlvbnMoKTsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRqcyA9ICR0aGlzLT5HZXRPcHRpb24oJ2phdmFzY3JpcHQnLCcnKTsKCgkJLy8gd2h5IGFsbCB0aGlzPyBBc3NvY2lhdGl2ZSBhcnJheXMgYXJlIG5vdCBndWFyYW50ZWVkIHRvIHByZXNlcnZlCgkJLy8gb3JkZXIsIGV4Y2VwdCBpbiAiY2hyb25vbG9naWNhbCIgY3JlYXRpb24gb3JkZXIuCgkJJHNvcnRlZCA9YXJyYXkoKTsKCQlpZiAoJHRoaXMtPkdldE9wdGlvbignc2VsZWN0X29uZScsJycpICE9ICcnKQoJCQl7CgkJCSRzb3J0ZWRbJyAnLiR0aGlzLT5HZXRPcHRpb24oJ3NlbGVjdF9vbmUnLCcnKV09Jyc7CgkJCX0KCQllbHNlCgkJCXsKCQkJJHNvcnRlZFsnICcuJG1vZC0+TGFuZygnc2VsZWN0X29uZScpXT0nJzsKCQkJfQoJCQkKCQlpZiAoJHRoaXMtPkdldE9wdGlvbigncmVzdHJpY3RfdG9fZ3JvdXAnLCcwJyk9PScxJykKCQkJewoJCQkkdXNlcmxpc3QgPSAkdXNlcm9wcy0+TG9hZFVzZXJzSW5Hcm91cCgkdGhpcy0+R2V0T3B0aW9uKCdncm91cCcpKTsKCQkJfQoJCWVsc2UKCQkJewoJCQkkdXNlcmxpc3QgPSAkdXNlcm9wcy0+TG9hZFVzZXJzKCk7CgkJCX0KCQlmb3IoJGk9MDskaTxjb3VudCgkdXNlcmxpc3QpOyRpKyspCgkJCXsKCQkJJG5hbWUgPSBhcnJheSgpOwoJCQlpZiAoJHRoaXMtPkdldE9wdGlvbignc2hvd191c2VyZmlyc3RuYW1lJywnMCcpPT0nMScpCgkJCQl7CgkJCQlhcnJheV9wdXNoKCRuYW1lLCR1c2VybGlzdFskaV0tPmZpcnN0bmFtZSk7CgkJCQl9CgkJCWlmICgkdGhpcy0+R2V0T3B0aW9uKCdzaG93X3VzZXJsYXN0bmFtZScsJzAnKT09JzEnKQoJCQkJewoJCQkJYXJyYXlfcHVzaCgkbmFtZSwkdXNlcmxpc3RbJGldLT5sYXN0bmFtZSk7CgkJCQl9CgkJCWlmICgkdGhpcy0+R2V0T3B0aW9uKCdzaG93X3VzZXJuYW1lJywnMCcpPT0nMScpCgkJCQl7CgkJCQlhcnJheV9wdXNoKCRuYW1lLCcgKCcuJHVzZXJsaXN0WyRpXS0+dXNlcm5hbWUuJyknKTsKCQkJCX0KCQkJJHNuYW1lID0gaW1wbG9kZSgnICcsJG5hbWUpOwoJCQkkc29ydGVkWyRzbmFtZV09KCRpKzEpOwoJCQl9CgkJcmV0dXJuICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQsICRzb3J0ZWQsIC0xLCAkdGhpcy0+VmFsdWUsICRqcy4kdGhpcy0+R2V0Q1NTSWRUYWcoKSk7Cgl9CgoKCiAgICBmdW5jdGlvbiBTdGF0dXNJbmZvKCkKCXsKCSAgICBnbG9iYWwgJGdDbXM7CgkgICAgJGdyb3Vwb3BzID0gJGdDbXMtPkdldEdyb3VwT3BlcmF0aW9ucygpOwoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAgICAgJHJldCA9ICR0aGlzLT5UZW1wbGF0ZVN0YXR1cygpOwoJCWlmICgkdGhpcy0+R2V0T3B0aW9uKCdyZXN0cmljdF90b19ncm91cCcsJzAnKT09JzEnKQoJCQl7CgkJCSRncm91cCA9ICRncm91cG9wcy0+TG9hZEdyb3VwQnlJRCgkdGhpcy0+R2V0T3B0aW9uKCdncm91cCcpKTsKCQkJaWYgKCRncm91cCAmJiBpc3NldCgkZ3JvdXAtPm5hbWUpKQoJCQkJewoJCQkJJHJldCAuPSAnLCAnLiRtb2QtPkxhbmcoJ3Jlc3RyaWN0ZWRfdG9fZ3JvdXAnLCRncm91cC0+bmFtZSk7CgkJCQl9CgkJCX0KICAgICAgICByZXR1cm4gJHJldDsKCX0KCQoJZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQoJewoJICAgIGdsb2JhbCAkZ0NtczsKCSAgICAkZ3JvdXBvcHMgPSAkZ0Ntcy0+R2V0R3JvdXBPcGVyYXRpb25zKCk7CgkgICAgJGdyb3VwcyA9ICRncm91cG9wcy0+TG9hZEdyb3VwcygpOwoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgoJCWxpc3QoJG1haW4sJGFkdikgPSAkdGhpcy0+UHJlUG9wdWxhdGVBZG1pbkZvcm1CYXNlKCRmb3JtRGVzY3JpcHRvcik7CgkJYXJyYXlfcHVzaCgkbWFpbixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9zZWxlY3Rfb25lX21lc3NhZ2UnKSwKCQkJJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X3NlbGVjdF9vbmUnLAoJCQkkdGhpcy0+R2V0T3B0aW9uKCdzZWxlY3Rfb25lJywkbW9kLT5MYW5nKCdzZWxlY3Rfb25lJykpLDI1LDEyOCkpKTsKCQlhcnJheV9wdXNoKCRtYWluLGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3Nob3dfdXNlcmZpcnN0bmFtZScpLAoJCQkJJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGZvcm1EZXNjcmlwdG9yLCdmYnJwX29wdF9zaG93X3VzZXJmaXJzdG5hbWUnLCcwJykuCgkJCQkkbW9kLT5DcmVhdGVJbnB1dENoZWNrYm94KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X3Nob3dfdXNlcmZpcnN0bmFtZScsICcxJywKCQkJCSR0aGlzLT5HZXRPcHRpb24oJ3Nob3dfdXNlcmZpcnN0bmFtZScsJzEnKSkpKTsKCQkJYXJyYXlfcHVzaCgkbWFpbixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9zaG93X3VzZXJsYXN0bmFtZScpLAoJCQkJCSRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRmb3JtRGVzY3JpcHRvciwnZmJycF9vcHRfc2hvd191c2VybGFzdG5hbWUnLCcwJykuCgkJCQkJJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9zaG93X3VzZXJsYXN0bmFtZScsICcxJywKCQkJCQkkdGhpcy0+R2V0T3B0aW9uKCdzaG93X3VzZXJsYXN0bmFtZScsJzEnKSkpKTsKCQlhcnJheV9wdXNoKCRtYWluLGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3Nob3dfdXNlcm5hbWUnKSwKCQkJCSRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRmb3JtRGVzY3JpcHRvciwnZmJycF9vcHRfc2hvd191c2VybmFtZScsJzAnKS4KCQkJCSRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfc2hvd191c2VybmFtZScsICcxJywKCQkJCSR0aGlzLT5HZXRPcHRpb24oJ3Nob3dfdXNlcm5hbWUnLCcwJykpKSk7CgkJCQkKCgkJJGl0ZW1zID0gYXJyYXkoKTsKCQlmb3JlYWNoICgkZ3JvdXBzIGFzICR0aGlzR3JvdXApCgkJCXsKCQkJJGl0ZW1zWyR0aGlzR3JvdXAtPm5hbWVdPSR0aGlzR3JvdXAtPmlkOwoJCQl9CgkJCgkJYXJyYXlfcHVzaCgkbWFpbixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9yZXN0cmljdF90b19ncm91cCcpLAoJCQkJJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGZvcm1EZXNjcmlwdG9yLCdmYnJwX29wdF9yZXN0cmljdF90b19ncm91cCcsJzAnKS4KCQkJCSRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfcmVzdHJpY3RfdG9fZ3JvdXAnLCAnMScsCgkJCQkkdGhpcy0+R2V0T3B0aW9uKCdyZXN0cmljdF90b19ncm91cCcsJzAnKSkuCgkJCQkkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2dyb3VwJywgJGl0ZW1zLCAtMSwgJHRoaXMtPkdldE9wdGlvbignZ3JvdXAnLCcnKSkKCQkJCSkpOwoJCQkJCgkJcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwoJfQoKCWZ1bmN0aW9uIEdldEh1bWFuUmVhZGFibGVWYWx1ZSgkYXNfc3RyaW5nPXRydWUpCgl7CgkgICAgZ2xvYmFsICRnQ21zOwoJICAgICR1c2Vyb3BzID0gJGdDbXMtPkdldFVzZXJPcGVyYXRpb25zKCk7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCgkJaWYgKCR0aGlzLT5HZXRPcHRpb24oJ3Jlc3RyaWN0X3RvX2dyb3VwJywnMCcpPT0nMScpCgkJCXsKCQkJJHVzZXJsaXN0ID0gJHVzZXJvcHMtPkxvYWRVc2Vyc0luR3JvdXAoJHRoaXMtPkdldE9wdGlvbignZ3JvdXAnKSk7CgkJCX0KCQllbHNlCgkJCXsKCQkJJHVzZXJsaXN0ID0gJHVzZXJvcHMtPkxvYWRVc2VycygpOwoJCQl9CgkJaWYgKGlzc2V0KCR1c2VybGlzdFskdGhpcy0+VmFsdWUgLSAxXSkpCgkJCXsKCQkJJHJldCA9ICR1c2VybGlzdFskdGhpcy0+VmFsdWUgLSAxXS0+Zmlyc3RuYW1lIC4gJyAnLiAkdXNlcmxpc3RbJHRoaXMtPlZhbHVlIC0gMV0tPmxhc3RuYW1lOwoJCQl9CgkJZWxzZQoJCQl7CgkJCSRyZXQgPSAkbW9kLT5MYW5nKCd1bnNwZWNpZmllZCcpOwoJCQl9CgkJaWYgKCRhc19zdHJpbmcpCgkJCXsKCQkJcmV0dXJuICRyZXQ7CgkJCX0KCQllbHNlCgkJCXsKCQkJcmV0dXJuIGFycmF5KCRyZXQpOwoJCQl9CgkJCgl9CgkKCWZ1bmN0aW9uIERpc3Bvc2VGb3JtKCRyZXR1cm5pZCkKCXsKCSAgICBnbG9iYWwgJGdDbXM7CgkgICAgJHVzZXJvcHMgPSAkZ0Ntcy0+R2V0VXNlck9wZXJhdGlvbnMoKTsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoKCQlpZiAoJHRoaXMtPkdldE9wdGlvbigncmVzdHJpY3RfdG9fZ3JvdXAnLCcwJyk9PScxJykKCQkJewoJCQkkdXNlcmxpc3QgPSAkdXNlcm9wcy0+TG9hZFVzZXJzSW5Hcm91cCgkdGhpcy0+R2V0T3B0aW9uKCdncm91cCcpKTsKCQkJfQoJCWVsc2UKCQkJewoJCQkkdXNlcmxpc3QgPSAkdXNlcm9wcy0+TG9hZFVzZXJzKCk7CgkJCX0KCQkkZGVzdCA9IGFycmF5KCR1c2VybGlzdFskdGhpcy0+VmFsdWUgLSAxXS0+ZW1haWwpOwoJCXJldHVybiAkdGhpcy0+U2VuZEZvcm0oJGRlc3QsJHRoaXMtPkdldE9wdGlvbignZW1haWxfc3ViamVjdCcpKTsKCX0KCgoJZnVuY3Rpb24gQWRtaW5WYWxpZGF0ZSgpCiAgICB7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQlsaXN0KCRyZXQsJG1lc3NhZ2UpID0gJHRoaXMtPnZhbGlkYXRlRW1haWxBZGRyKCR0aGlzLT5HZXRPcHRpb24oJ2VtYWlsX2Zyb21fYWRkcmVzcycpKTsKICAgICAgICByZXR1cm4gYXJyYXkoJHJldCwkbWVzc2FnZSk7CiAgICB9CiAgICAKICAgIGZ1bmN0aW9uIFZhbGlkYXRlKCkKICAgIHsKICAgICAgICAgJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICAgICAgJHJlc3VsdCA9IHRydWU7CiAgICAgICAgICRtZXNzYWdlID0gJyc7CgogICAgICAgICBpZiAoJHRoaXMtPlZhbHVlID09IGZhbHNlKQogICAgICAgICAgICB7CiAgICAgICAgICAgICRyZXN1bHQgPSBmYWxzZTsKICAgICAgICAgICAgJG1lc3NhZ2UgLj0KJG1vZC0+TGFuZygnbXVzdF9zcGVjaWZ5X29uZV9kZXN0aW5hdGlvbicpLic8L2JyPic7CiAgICAgICAgICAgIH0KICAgICAgICByZXR1cm4gYXJyYXkoJHJlc3VsdCwkbWVzc2FnZSk7CiAgICB9Cgp9Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionFile.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkRpc3Bvc2l0aW9uRmlsZSBleHRlbmRzIGZiRmllbGRCYXNlIAp7CgogIGZ1bmN0aW9uIGZiRGlzcG9zaXRpb25GaWxlKCYkZm9ybV9wdHIsICYkcGFyYW1zKQogIHsKICAgICR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgJG1vZCA9ICRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICR0aGlzLT5UeXBlID0gJ0Rpc3Bvc2l0aW9uRmlsZSc7CiAgICAkdGhpcy0+SXNEaXNwb3NpdGlvbiA9IHRydWU7CiAgICAkdGhpcy0+Tm9uUmVxdWlyYWJsZUZpZWxkID0gdHJ1ZTsKICAgICR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gZmFsc2U7CiAgICAkdGhpcy0+c29ydGFibGUgPSBmYWxzZTsKCiAgfQoKICBmdW5jdGlvbiBTdGF0dXNJbmZvKCkKICB7CiAgICAkbW9kPSR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgIHJldHVybiAkdGhpcy0+R2V0T3B0aW9uKCdmaWxlc3BlYycsJG1vZC0+TGFuZygndW5zcGVjaWZpZWQnKSk7CiAgfQoKICBmdW5jdGlvbiBEaXNwb3NlRm9ybSgkcmV0dXJuaWQpCiAgewoJZ2xvYmFsICRnQ21zOwoJJG9wdGlvbnMgPSAkZ0Ntcy0+R2V0Q29uZmlnKCk7CiAgICAkbW9kPSR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICRmb3JtPSR0aGlzLT5mb3JtX3B0cjsKICAgICRjb3VudCA9IDA7CiAgICB3aGlsZSAoISAkbW9kLT5HZXRGaWxlTG9jaygpICYmICRjb3VudDwyMDApCiAgICAgIHsKCSRjb3VudCsrOwoJdXNsZWVwKDUwMCk7CiAgICAgIH0KICAgIGlmICgkY291bnQgPT0gMjAwKQogICAgICB7CglyZXR1cm4gYXJyYXkoZmFsc2UsICRtb2QtPkxhbmcoJ3N1Ym1pc3Npb25fZXJyb3JfZmlsZV9sb2NrJykpOwogICAgICB9CgogICAgJGZpbGVzcGVjID0gJHRoaXMtPkdldE9wdGlvbignZmlsZXJvb3QnLCRvcHRpb25zWyd1cGxvYWRzX3Jvb3QnXSkuJy8nLgogICAgICBwcmVnX3JlcGxhY2UoIi9bXlx3XGRcLl18XC5cLi8iLCAiXyIsICR0aGlzLT5HZXRPcHRpb24oJ2ZpbGVzcGVjJywnZm9ybV9zdWJtaXNzaW9ucy50eHQnKSk7CgogICAgJGZvcm0tPnNldEZpbmlzaGVkRm9ybVNtYXJ0eSgpOwoKICAgICRsaW5lID0gJyc7CgkKCS8vIENoZWNrIGlmIGZpcnN0IHRpbWUsIHdyaXRlIGhlYWRlcgogICAgaWYgKCEgZmlsZV9leGlzdHMoJGZpbGVzcGVjKSkKICAgICAgewoJCSRoZWFkZXIgPSAkdGhpcy0+R2V0T3B0aW9uKCdmaWxlX2hlYWRlcicsJycpOwoKCQlpZigkaGVhZGVyICE9ICcnKSB7CgkJCSRoZWFkZXIgPSAkbW9kLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkaGVhZGVyKTsKCQl9CiAgICAgIH0KCSAgCgkgIAoJLy8gTWFrZSBuZXdsaW5lICAKICAgICR0ZW1wbGF0ZSA9ICR0aGlzLT5HZXRPcHRpb24oJ2ZpbGVfdGVtcGxhdGUnLCcnKTsKICAgIGlmICgkdGVtcGxhdGUgPT0gJycpCiAgICAgIHsKCSR0ZW1wbGF0ZSA9ICRmb3JtLT5jcmVhdGVTYW1wbGVUZW1wbGF0ZSgpOwogICAgICB9CiAgICAkbGluZSA9ICR0ZW1wbGF0ZTsKCiAgICAkbmV3bGluZSA9ICRtb2QtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCAkbGluZSApOwoJJHJlcGxjaGFyID0gJHRoaXMtPkdldE9wdGlvbignbmV3bGluZWNoYXInLCcnKTsKCWlmICgkcmVwbGNoYXIgIT0gJycpCgkJewoJCSRuZXdsaW5lID0gcnRyaW0oJG5ld2xpbmUsIlxyXG4iKTsKICAgIAkkbmV3bGluZSA9IHByZWdfcmVwbGFjZSgnL1tcblxyXS8nLCRyZXBsY2hhciwkbmV3bGluZSk7CgkJfQogICAgaWYgKHN1YnN0cigkbmV3bGluZSwtMSwxKSAhPSAiXG4iKQogICAgICB7CgkgICRuZXdsaW5lIC49ICJcbiI7CiAgICAgIH0KCQoJLy8gR2V0IGZvb3RlcgoJJGZvb3RlciA9ICR0aGlzLT5HZXRPcHRpb24oJ2ZpbGVfZm9vdGVyJywnJyk7CgoJaWYoJGZvb3RlciAhPSAnJykgewoJCSRmb290ZXIgPSAkbW9kLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkZm9vdGVyKTsKCX0KCgkvLyBXcml0ZSBmaWxlCglpZihmaWxlX2V4aXN0cygkZmlsZXNwZWMpKSB7CgkKCQkkcm93cyA9IGZpbGUoJGZpbGVzcGVjKTsKCQkkZnAgPSBmb3BlbigkZmlsZXNwZWMsICd3Jyk7CgkJCgkJZm9yZWFjaCgkcm93cyBhcyAkb25lbGluZSkgewoJCQoJCQlpZihzdWJzdHIoJGZvb3RlciwgMCwgc3RybGVuKCRvbmVsaW5lKSkgPT0gJG9uZWxpbmUpIHsKCQkJCgkJCQlicmVhazsKCQkJfQoJCQkKCQkJZndyaXRlKCRmcCwkb25lbGluZSk7CgkJfQoJCgl9IGVsc2UgewoJCQoJCSRmcCA9IGZvcGVuKCRmaWxlc3BlYywgJ3cnKTsKCX0KCQoJZndyaXRlKCRmcCwkaGVhZGVyLiRuZXdsaW5lLiRmb290ZXIpOwoJZmNsb3NlKCRmcCk7CgkKCS8qICBTdGlra2kgcmVtb3ZlZDogZHVlIG5ldyByZXdyaXRlIG1ldGhvZAogICAgJGYyID0gZm9wZW4oJGZpbGVzcGVjLCJhIik7CiAgICBmd3JpdGUoJGYyLCRoZWFkZXIuJG5ld2xpbmUpOwogICAgZmNsb3NlKCRmMik7Ki8gCiAgICAkbW9kLT5SZXR1cm5GaWxlTG9jaygpOwogICAgcmV0dXJuIGFycmF5KHRydWUsJycpOyAgICAgICAgCiAgfQoKICBmdW5jdGlvbiBQcmVQb3B1bGF0ZUFkbWluRm9ybSgkZm9ybURlc2NyaXB0b3IpCiAgewogIAoJZ2xvYmFsICRnQ21zOwogICAgJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCSRjb25maWcgPSAkZ0Ntcy0+R2V0Q29uZmlnKCk7CgoJCiAgICAkbWFpbiA9IGFycmF5KCk7CiAgICAkYWR2ID0gYXJyYXkoKTsKICAgICRwYXJtTWFpbiA9IGFycmF5KCk7CiAgICAkcGFybU1haW5bJ29wdF9maWxlX3RlbXBsYXRlJ11bJ2lzX29uZWxpbmUnXT10cnVlOwogICAgJHBhcm1NYWluWydvcHRfZmlsZV9oZWFkZXInXVsnaXNfb25lbGluZSddPXRydWU7CiAgICAkcGFybU1haW5bJ29wdF9maWxlX2hlYWRlciddWydpc19oZWFkZXInXT10cnVlOwogICAgJHBhcm1NYWluWydvcHRfZmlsZV9mb290ZXInXVsnaXNfb25lbGluZSddPXRydWU7CiAgICAkcGFybU1haW5bJ29wdF9maWxlX2Zvb3RlciddWydpc19mb290ZXInXT10cnVlOwkKCQogICAgYXJyYXlfcHVzaCgkbWFpbixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9maWxlX3Jvb3QnKSwKCQkJICAgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2ZpbGVyb290JywKCQkJCQkJICR0aGlzLT5HZXRPcHRpb24oJ2ZpbGVyb290JywkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSksNDUsMjU1KS4nPGJyIC8+Jy4KCQkJCSRtb2QtPkxhbmcoJ3RpdGxlX2ZpbGVfcm9vdF9oZWxwJykpKTsKCQkJCQogICAgYXJyYXlfcHVzaCgkbWFpbixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9maWxlX25hbWUnKSwKCQkJICAgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2ZpbGVzcGVjJywKCQkJCQkJICR0aGlzLT5HZXRPcHRpb24oJ2ZpbGVzcGVjJywnZm9ybV9zdWJtaXNzaW9ucy50eHQnKSwyNSwxMjgpKSk7CgogICAgYXJyYXlfcHVzaCgkbWFpbixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9uZXdsaW5lX3JlcGxhY2VtZW50JyksCgkJCSAgICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9uZXdsaW5lY2hhcicsCgkJCQkJCSAkdGhpcy0+R2V0T3B0aW9uKCduZXdsaW5lY2hhcicsJycpLDUsMTUpLic8YnIgLz4nLgoJCQkJCQkkbW9kLT5MYW5nKCd0aXRsZV9uZXdsaW5lX3JlcGxhY2VtZW50X2hlbHAnKSkpOwoJCQkJCQkgCiAgICBhcnJheV9wdXNoKCRhZHYsYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZmlsZV90ZW1wbGF0ZScpLAoJCQkgIGFycmF5KCRtb2QtPkNyZWF0ZVRleHRBcmVhKGZhbHNlLCAkZm9ybURlc2NyaXB0b3IsICR0aGlzLT5HZXRPcHRpb24oJ2ZpbGVfdGVtcGxhdGUnLCcnKSwnZmJycF9vcHRfZmlsZV90ZW1wbGF0ZScsICdtb2R1bGVfZmJfYXJlYV9zaG9ydCcsICcnLCcnLDAsMCksJHRoaXMtPmZvcm1fcHRyLT5BZG1pblRlbXBsYXRlSGVscCgkZm9ybURlc2NyaXB0b3IsJHBhcm1NYWluKSkpKTsKCQkJCQkJICAgLy9odG1sc3BlY2lhbGNoYXJzKCR0aGlzLT5HZXRPcHRpb24oJ2ZpbGVfdGVtcGxhdGUnLCcnKSksJ2ZicnBfb3B0X2ZpbGVfdGVtcGxhdGUnLCAnbW9kdWxlX2ZiX2FyZWFfc2hvcnQnLCAnJywnJywwLDApLCR0aGlzLT5mb3JtX3B0ci0+QWRtaW5UZW1wbGF0ZUhlbHAoJGZvcm1EZXNjcmlwdG9yLCRwYXJtTWFpbikpKSk7IFN0aWtraSBjaGFuZ2VkOiBicmVpa2luZyB0ZW1wbGF0ZQoJCQkJCQkJCQkJCQkKICAgIGFycmF5X3B1c2goJGFkdixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9maWxlX2hlYWRlcicpLAoJCQkgICRtb2QtPkNyZWF0ZVRleHRBcmVhKGZhbHNlLCAkZm9ybURlc2NyaXB0b3IsICR0aGlzLT5HZXRPcHRpb24oJ2ZpbGVfaGVhZGVyJywnJyksJ2ZicnBfb3B0X2ZpbGVfaGVhZGVyJywgJ21vZHVsZV9mYl9hcmVhX3Nob3J0JywgJycsJycsMCwwKSkpOwoJCQkJCSAgICAgICAvL2h0bWxzcGVjaWFsY2hhcnMoJHRoaXMtPkdldE9wdGlvbignZmlsZV9oZWFkZXInLCcnKSksJ2ZicnBfb3B0X2ZpbGVfaGVhZGVyJywgJ21vZHVsZV9mYl9hcmVhX3Nob3J0JywgJycsJycsMCwwKSkpOyBTdGlra2kgY2hhbmdlZDogYnJlaWtpbmcgdGVtcGxhdGUKCQkJCQkJICAgCiAgICBhcnJheV9wdXNoKCRhZHYsYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZmlsZV9mb290ZXInKSwKCQkJICAkbW9kLT5DcmVhdGVUZXh0QXJlYShmYWxzZSwgJGZvcm1EZXNjcmlwdG9yLCAkdGhpcy0+R2V0T3B0aW9uKCdmaWxlX2Zvb3RlcicsJycpLCAnZmJycF9vcHRfZmlsZV9mb290ZXInLCAnbW9kdWxlX2ZiX2FyZWFfc2hvcnQnLCAnJywnJywwLDApKSk7CSAgIAoKICAgIHJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLCdhZHYnPT4kYWR2KTsKICB9CgogIGZ1bmN0aW9uIFBvc3RQb3B1bGF0ZUFkbWluRm9ybSgmJG1haW5BcnJheSwgJiRhZHZBcnJheSkKICB7CiAgICAkdGhpcy0+SGlkZGVuRGlzcG9zaXRpb25GaWVsZHMoJG1haW5BcnJheSwgJGFkdkFycmF5KTsKICB9CiAgCn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionFileDirector.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCgogICBUaGlzIGZpbGU6IENvcHlyaWdodCAoYykgMjAwNyBSb2JlcnQgQ2FtcGJlbGwgPGNhbGd1eTEwMDBAaG90bWFpbC5jb20+CiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiovCgpjbGFzcyBmYkRpc3Bvc2l0aW9uRmlsZURpcmVjdG9yIGV4dGVuZHMgZmJGaWVsZEJhc2UgCnsKICB2YXIgJGZpbGVDb3VudDsKICB2YXIgJGZpbGVBZGQ7CiAgdmFyICRzYW1wbGVUZW1wbGF0ZUNvZGU7CiAgdmFyICRzYW1wbGVIZWFkZXI7CiAgdmFyICRkZmx0X2ZpbGVwYXRoOwoKICBmdW5jdGlvbiBmYkRpc3Bvc2l0aW9uRmlsZURpcmVjdG9yKCYkZm9ybV9wdHIsICYkcGFyYW1zKQogIHsKICAgICR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgJG1vZCA9ICRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICR0aGlzLT5UeXBlID0gJ0Rpc3Bvc2l0aW9uRmlsZURpcmVjdG9yJzsKICAgICR0aGlzLT5Jc0Rpc3Bvc2l0aW9uID0gdHJ1ZTsKICAgICR0aGlzLT5EaXNwbGF5SW5TdWJtaXNzaW9uID0gZmFsc2U7CiAgICAkdGhpcy0+RGlzcGxheUluRm9ybSA9IHRydWU7CiAgICAkdGhpcy0+SGFzQWRkT3AgPSB0cnVlOwogICAgJHRoaXMtPkhhc0RlbGV0ZU9wID0gdHJ1ZTsKICAgICR0aGlzLT5zb3J0YWJsZSA9IGZhbHNlOwogICAgJHRoaXMtPmZpbGVBZGQgPSAwOwoKICAgIGdsb2JhbCAkZ0NtczsKICAgICRjb25maWcgPSAkZ0Ntcy0+Z2V0Q29uZmlnKCk7CiAgICAkdGhpcy0+ZGZsdF9maWxlcGF0aCA9ICRjb25maWdbJ3VwbG9hZHNfcGF0aCddOwogIH0KCgogIGZ1bmN0aW9uIERvT3B0aW9uQWRkKCYkcGFyYW1zKQogIHsKICAgICR0aGlzLT5maWxlQWRkID0gMTsKICB9CgogIGZ1bmN0aW9uIERvT3B0aW9uRGVsZXRlKCYkcGFyYW1zKQogIHsKICAgICRkZWxjb3VudCA9IDA7CiAgICBmb3JlYWNoICgkcGFyYW1zIGFzICR0aGlzS2V5PT4kdGhpc1ZhbCkKICAgICAgewoJaWYgKHN1YnN0cigkdGhpc0tleSwwLDkpID09ICdmYnJwX2RlbF8nKQoJICB7CgkgICAgJHRoaXMtPlJlbW92ZU9wdGlvbkVsZW1lbnQoJ2Rlc3RpbmF0aW9uX2ZpbGVuYW1lJywgJHRoaXNWYWwgLSAkZGVsY291bnQpOwoJICAgICR0aGlzLT5SZW1vdmVPcHRpb25FbGVtZW50KCdkZXN0aW5hdGlvbl9kaXNwbGF5bmFtZScsICR0aGlzVmFsIC0gJGRlbGNvdW50KTsKCSAgICAkZGVsY291bnQrKzsKCSAgfQogICAgICB9CiAgfQoKICBmdW5jdGlvbiBjb3VudEZpbGVzKCkKICB7CiAgICAkdG1wID0gJHRoaXMtPkdldE9wdGlvblJlZignZGVzdGluYXRpb25fZmlsZW5hbWUnKTsKICAgIGlmIChpc19hcnJheSgkdG1wKSkKICAgICAgewoJJHRoaXMtPmZpbGVDb3VudCA9IGNvdW50KCR0bXApOwogICAgICB9CiAgICBlbHNlaWYgKCR0bXAgIT09IGZhbHNlKQogICAgICB7CgkkdGhpcy0+ZmlsZUNvdW50ID0gMTsKICAgICAgfQogICAgZWxzZQogICAgICB7CgkkdGhpcy0+ZmlsZUNvdW50ID0gMDsKICAgICAgfQogIH0KCiAgZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCiAgewogICAgJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICRqcyA9ICR0aGlzLT5HZXRPcHRpb24oJ2phdmFzY3JpcHQnLCcnKTsKCQogICAgLy8gd2h5IGFsbCB0aGlzPyBBc3NvY2lhdGl2ZSBhcnJheXMgYXJlIG5vdCBndWFyYW50ZWVkIHRvIHByZXNlcnZlCiAgICAvLyBvcmRlciwgZXhjZXB0IGluICJjaHJvbm9sb2dpY2FsIiBjcmVhdGlvbiBvcmRlci4KICAgICRzb3J0ZWQgPWFycmF5KCk7CiAgICBpZiAoJHRoaXMtPkdldE9wdGlvbignc2VsZWN0X29uZScsJycpICE9ICcnKQogICAgICB7Cgkkc29ydGVkWycgJy4kdGhpcy0+R2V0T3B0aW9uKCdzZWxlY3Rfb25lJywnJyldPScnOwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCSRzb3J0ZWRbJyAnLiRtb2QtPkxhbmcoJ3NlbGVjdF9vbmUnKV09Jyc7CiAgICAgIH0KICAgICRkaXNwbGF5bmFtZXMgPSAkdGhpcy0+R2V0T3B0aW9uUmVmKCdkZXN0aW5hdGlvbl9kaXNwbGF5bmFtZScpOwogICAgCiAgICBpZiAoY291bnQoJGRpc3BsYXluYW1lcykgPiAxKQogICAgICB7Cglmb3IoJGk9MDskaTxjb3VudCgkZGlzcGxheW5hbWVzKTskaSsrKQoJICB7CgkgICAgJHNvcnRlZFskZGlzcGxheW5hbWVzWyRpXV09KCRpKzEpOwoJICB9CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJJHNvcnRlZFskZGlzcGxheW5hbWVzXSA9ICcxJzsKICAgICAgfQogICAgcmV0dXJuICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQsICRzb3J0ZWQsIC0xLCAkdGhpcy0+VmFsdWUsICRqcy4kdGhpcy0+R2V0Q1NTSWRUYWcoKSk7CiAgfQoKICBmdW5jdGlvbiBTdGF0dXNJbmZvKCkKICB7CiAgICAkdGhpcy0+Y291bnRGaWxlcygpOwogICAgJG1vZD0kdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkcmV0PSAkbW9kLT5MYW5nKCdmaWxlX2NvdW50JywkdGhpcy0+ZmlsZUNvdW50KTsKICAgIHJldHVybiAkcmV0OwogIH0KCiAgZnVuY3Rpb24gRGlzcG9zZUZvcm0oJHJldHVybmlkKQogIHsKCWdsb2JhbCAkZ0NtczsKCSRvcHRpb25zID0gJGdDbXMtPkdldENvbmZpZygpOwogICAgJG1vZD0kdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkZm9ybT0kdGhpcy0+Zm9ybV9wdHI7CiAgICAkY291bnQgPSAwOwogICAgd2hpbGUgKCEgJG1vZC0+R2V0RmlsZUxvY2soKSAmJiAkY291bnQ8MjAwKQogICAgICB7CgkkY291bnQrKzsKCXVzbGVlcCg1MDApOwogICAgICB9CiAgICBpZiAoJGNvdW50ID09IDIwMCkKICAgICAgewoJcmV0dXJuIGFycmF5KGZhbHNlLCAkbW9kLT5MYW5nKCdzdWJtaXNzaW9uX2Vycm9yX2ZpbGVfbG9jaycpKTsKICAgICAgfQoKCiAgICAkZGlyID0gJHRoaXMtPkdldE9wdGlvbignZmlsZV9wYXRoJywkdGhpcy0+ZGZsdF9maWxlcGF0aCkuJy8nOwogICAgJGZpbGVzcGVjID0gJGRpci4KICAgICAgcHJlZ19yZXBsYWNlKCIvW15cd1xkXC5dfFwuXC4vIiwgIl8iLCAKCQkgICAkdGhpcy0+R2V0T3B0aW9uRWxlbWVudCgnZGVzdGluYXRpb25fZmlsZW5hbWUnLAoJCQkJCSAgICgkdGhpcy0+VmFsdWUgLSAxKSkpOwoKICAgICRsaW5lID0gJyc7CiAgICBpZiAoISBmaWxlX2V4aXN0cygkZmlsZXNwZWMpKQogICAgICB7CgkkaGVhZGVyID0gJHRoaXMtPkdldE9wdGlvbignZmlsZV9oZWFkZXInLCcnKTsKCWlmICgkaGVhZGVyID09ICcnKQoJICB7CgkgICAgJGhlYWRlciA9ICRmb3JtLT5jcmVhdGVTYW1wbGVUZW1wbGF0ZShmYWxzZSxmYWxzZSxmYWxzZSx0cnVlKTsKCSAgfSAKCSRoZWFkZXIgLj0gIlxuIjsKICAgICAgfQogICAgJHRlbXBsYXRlID0gJHRoaXMtPkdldE9wdGlvbignZmlsZV90ZW1wbGF0ZScsJycpOwogICAgaWYgKCR0ZW1wbGF0ZSA9PSAnJykKICAgICAgewoJJHRlbXBsYXRlID0gJGZvcm0tPmNyZWF0ZVNhbXBsZVRlbXBsYXRlKCk7CiAgICAgIH0KICAgICRsaW5lID0gJHRlbXBsYXRlOwoKCSRmb3JtLT5zZXRGaW5pc2hlZEZvcm1TbWFydHkoKTsKICAgICRuZXdsaW5lID0gJG1vZC0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoICRsaW5lICk7CgkkcmVwbGNoYXIgPSAkdGhpcy0+R2V0T3B0aW9uKCduZXdsaW5lY2hhcicsJycpOwoJaWYgKCRyZXBsY2hhciAhPSAnJykKCQl7CgkJJG5ld2xpbmUgPSBydHJpbSgkbmV3bGluZSwiXHJcbiIpOwogICAgCSRuZXdsaW5lID0gcHJlZ19yZXBsYWNlKCcvW1xuXHJdLycsJHJlcGxjaGFyLCRuZXdsaW5lKTsKCQl9CiAgICBpZiAoc3Vic3RyKCRuZXdsaW5lLC0xLDEpICE9ICJcbiIpCiAgICAgIHsKCSAgJG5ld2xpbmUgLj0gIlxuIjsKICAgICAgfQogICAgJGYyID0gZm9wZW4oJGZpbGVzcGVjLCJhIik7CiAgICBmY2xvc2UoJGYyKTsgCiAgICAkbW9kLT5SZXR1cm5GaWxlTG9jaygpOwogICAgcmV0dXJuIGFycmF5KHRydWUsJycpOyAgICAgICAgCiAgfQoKICBmdW5jdGlvbiBjcmVhdGVTYW1wbGVIZWFkZXIoKQogIHsKICAgICRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkb3RoZXJzID0gJHRoaXMtPmZvcm1fcHRyLT5HZXRGaWVsZHMoKTsKICAgICRmaWVsZHMgPSBhcnJheSgpOwogICAgZm9yKCRpPTA7JGk8Y291bnQoJG90aGVycyk7JGkrKykKICAgICAgewoJaWYgKCRvdGhlcnNbJGldLT5EaXNwbGF5SW5TdWJtaXNzaW9uKCkpCgkgIHsKCSAgICBhcnJheV9wdXNoKCRmaWVsZHMsJG90aGVyc1skaV0tPkdldE5hbWUoKSk7CgkgIH0KICAgICAgfQogICAgcmV0dXJuIGltcGxvZGUoJ3skVEFCfScsJGZpZWxkcyk7CiAgfQoKCiAgZnVuY3Rpb24gY3JlYXRlU2FtcGxlVGVtcGxhdGUoKQogIHsKICAgICRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkb3RoZXJzID0gJHRoaXMtPmZvcm1fcHRyLT5HZXRGaWVsZHMoKTsKICAgICRmaWVsZHMgPSBhcnJheSgpOwogICAgZm9yKCRpPTA7JGk8Y291bnQoJG90aGVycyk7JGkrKykKICAgICAgewoJaWYgKCRvdGhlcnNbJGldLT5EaXNwbGF5SW5TdWJtaXNzaW9uKCkpCgkgIHsKCSAgICBhcnJheV9wdXNoKCRmaWVsZHMsJ3skJyAuICRvdGhlcnNbJGldLT5HZXRWYXJpYWJsZU5hbWUoKSAuICd9Jyk7CgkgIH0KICAgICAgfQogICAgcmV0dXJuIGltcGxvZGUoJ3skVEFCfScsJGZpZWxkcyk7CiAgfQoKCiAgZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQogIHsKICAgICRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgogICAgJHRoaXMtPmNvdW50RmlsZXMoKTsKICAgIGlmKCAkdGhpcy0+ZmlsZUFkZCA+IDAgKQogICAgICB7CgkkdGhpcy0+ZmlsZUNvdW50ICs9ICR0aGlzLT5maWxlQWRkOwoJJHRoaXMtPmZpbGVBZGQgPSAwOwogICAgICB9CgogICAgJGRlc3RzID0gJzx0YWJsZSBjbGFzcz0ibW9kdWxlX2ZiX3RhYmxlIj48dHI+PHRoPicuJG1vZC0+TGFuZygndGl0bGVfc2VsZWN0aW9uX2Rpc3BsYXluYW1lJykuJzwvdGg+PHRoPicuCiAgICAgICRtb2QtPkxhbmcoJ3RpdGxlX2Rlc3RpbmF0aW9uX2ZpbGVuYW1lJykuJzwvdGg+PHRoPicuCiAgICAgICRtb2QtPkxhbmcoJ3RpdGxlX2RlbGV0ZScpLic8L3RoPjwvdHI+JzsKCiAgICBmb3IgKCRpPTA7JGk8KCR0aGlzLT5maWxlQ291bnQ+MT8kdGhpcy0+ZmlsZUNvdW50OjEpOyRpKyspCiAgICAgIHsKCSRkZXN0cyAuPSAgJzx0cj48dGQ+Jy4KCSAgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2Rlc3RpbmF0aW9uX2Rpc3BsYXluYW1lW10nLCR0aGlzLT5HZXRPcHRpb25FbGVtZW50KCdkZXN0aW5hdGlvbl9kaXNwbGF5bmFtZScsJGkpLDI1LDEyOCkuCgkgICc8L3RkPjx0ZD4nLgoJICAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZGVzdGluYXRpb25fZmlsZW5hbWVbXScsJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ2Rlc3RpbmF0aW9uX2ZpbGVuYW1lJywkaSksMjUsMTI4KS4KCSAgJzwvdGQ+PHRkPicuCgkgICRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9kZWxfJy4kaSwgJGksLTEpLgoJICAnPC90ZD48L3RyPic7CiAgICAgIH0KICAgICRkZXN0cyAuPSAnPC90YWJsZT4nOwoKICAgICRtYWluID0gYXJyYXkoKTsKICAgICRhZHYgPSBhcnJheSgpOwogICAgJHBhcm1NYWluID0gYXJyYXkoKTsKICAgICRwYXJtTWFpblsnb3B0X2ZpbGVfdGVtcGxhdGUnXVsnaXNfb25lbGluZSddPXRydWU7CiAgICAkcGFybU1haW5bJ29wdF9maWxlX2hlYWRlciddWydpc19vbmVsaW5lJ109dHJ1ZTsKICAgICRwYXJtTWFpblsnb3B0X2ZpbGVfaGVhZGVyJ11bJ2lzX2hlYWRlciddPXRydWU7CiAgICBhcnJheV9wdXNoKCRtYWluLGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3NlbGVjdF9vbmVfbWVzc2FnZScpLAoJCQkgICAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAKCQkJCQkJICdmYnJwX29wdF9zZWxlY3Rfb25lJywKCSAgICAkdGhpcy0+R2V0T3B0aW9uKCdzZWxlY3Rfb25lJywkbW9kLT5MYW5nKCdzZWxlY3Rfb25lJykpLDI1LDEyOCkpKTsKICAgIGFycmF5X3B1c2goJG1haW4sYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZGlyZWN0b3JfZGV0YWlscycpLCRkZXN0cykpOwoKICAgIGFycmF5X3B1c2goJGFkdixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9maWxlX3BhdGgnKSwKCQkJICAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLAoJCQkJCQknZmJycF9vcHRfZmlsZV9wYXRoJywKCQkJCQkJJHRoaXMtPkdldE9wdGlvbignZmlsZV9wYXRoJywkdGhpcy0+ZGZsdF9maWxlcGF0aCksNDAsMTI4KSkpOwogICAgYXJyYXlfcHVzaCgkYWR2LGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2ZpbGVfdGVtcGxhdGUnKSwKCQkJICBhcnJheSgkbW9kLT5DcmVhdGVUZXh0QXJlYShmYWxzZSwgJGZvcm1EZXNjcmlwdG9yLAoJCQkJCQkgICAgIGh0bWxzcGVjaWFsY2hhcnMoJHRoaXMtPkdldE9wdGlvbignZmlsZV90ZW1wbGF0ZScsJycpKSwnZmJycF9vcHRfZmlsZV90ZW1wbGF0ZScsICdtb2R1bGVfZmJfYXJlYV9zaG9ydCcsICcnLCcnLDAsMCksJHRoaXMtPmZvcm1fcHRyLT5BZG1pblRlbXBsYXRlSGVscCgkZm9ybURlc2NyaXB0b3IsJHBhcm1NYWluKSkpKTsKICAgIGFycmF5X3B1c2goJGFkdixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9maWxlX2hlYWRlcicpLAoJCQkgICRtb2QtPkNyZWF0ZVRleHRBcmVhKGZhbHNlLCAkZm9ybURlc2NyaXB0b3IsCgkJCQkJICAgICAgIGh0bWxzcGVjaWFsY2hhcnMoJHRoaXMtPkdldE9wdGlvbignZmlsZV9oZWFkZXInLCcnKSksJ2ZicnBfb3B0X2ZpbGVfaGVhZGVyJywgJ21vZHVsZV9mYl9hcmVhX3Nob3J0JywgJycsJycsMCwwKSkpOwogICAgYXJyYXlfcHVzaCgkbWFpbixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9uZXdsaW5lX3JlcGxhY2VtZW50JyksCgkJCSAgICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9uZXdsaW5lY2hhcicsCgkJCQkJCSAkdGhpcy0+R2V0T3B0aW9uKCduZXdsaW5lY2hhcicsJycpLDUsMTUpLic8YnIgLz4nLgoJCQkJCQkkbW9kLT5MYW5nKCd0aXRsZV9uZXdsaW5lX3JlcGxhY2VtZW50X2hlbHAnKSkpOwoKICAgIHJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLCdhZHYnPT4kYWR2KTsKICB9Cgp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionForm.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkRpc3Bvc2l0aW9uRm9ybSBleHRlbmRzICBmYkZpZWxkQmFzZQp7CgoKICBmdW5jdGlvbiBmYkRpc3Bvc2l0aW9uRm9ybSgmJGZvcm1fcHRyLCAmJHBhcmFtcykKICB7CiAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICRtb2QgPSAkZm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkdGhpcy0+VHlwZSA9ICdEaXNwb3NpdGlvbkZvcm0nOwogICAgJHRoaXMtPklzRGlzcG9zaXRpb24gPSB0cnVlOwogICAgJHRoaXMtPk5vblJlcXVpcmFibGVGaWVsZCA9IHRydWU7CiAgICAkdGhpcy0+RGlzcGxheUluRm9ybSA9IGZhbHNlOwogICAgJHRoaXMtPnNvcnRhYmxlID0gZmFsc2U7CiAgIH0KCiAgZnVuY3Rpb24gU3RhdHVzSW5mbygpCiAgewogICAgJG1vZD0kdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICByZXR1cm4gJHRoaXMtPkdldE9wdGlvbignbWV0aG9kJykuJyAnLiR0aGlzLT5HZXRPcHRpb24oJ3VybCcpOwogIH0KCiAgZnVuY3Rpb24gRGlzcG9zZUZvcm0oJHJldHVybmlkKQogIHsKICAgICRtb2Q9JHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgJGZwdHI9JHRoaXMtPmZvcm1fcHRyOwogICAgJG1zZyA9ICcnOwogICAgJHN1Ym1pc3Npb24gPSAkdGhpcy0+R2V0T3B0aW9uKCd1cmwnKTsKICAgICRwYXlsb2FkID0gYXJyYXkoKTsKCSAkdGhlRmllbGRzID0gJGZwdHItPkdldEZpZWxkcygpOwoJICR1bnNwZWMgPSAkZnB0ci0+R2V0QXR0cigndW5zcGVjaWZpZWQnLCRtb2QtPkxhbmcoJ3Vuc3BlY2lmaWVkJykpOwoKCSBmb3IoJGk9MDskaTxjb3VudCgkdGhlRmllbGRzKTskaSsrKQogICAgICB7CiAgICAgIGlmICgkdGhpcy0+R2V0T3B0aW9uKCdzdWJfJy4kdGhlRmllbGRzWyRpXS0+R2V0SWQoKSwnMCcpID09ICcxJykKICAgICAgICAgewogICAgICAgICAkcGwgPSB1cmxlbmNvZGUoJHRoaXMtPkdldE9wdGlvbignZmxkXycuJHRoZUZpZWxkc1skaV0tPkdldElkKCkpKS4nPScuCiAgICAgICAgICAgIHVybGVuY29kZSgkdGhlRmllbGRzWyRpXS0+R2V0SHVtYW5SZWFkYWJsZVZhbHVlKCkpOwogICAgICAgICBhcnJheV9wdXNoKCRwYXlsb2FkLCRwbCk7CiAgICAgICAgIH0KCQl9CiAgICBpZiAoJHRoaXMtPkdldE9wdGlvbignYWRkaXRpb25hbCcsJycpICE9ICcnKQogICAgICB7CiAgICAgICBhcnJheV9wdXNoKCRwYXlsb2FkLCR0aGlzLT5HZXRPcHRpb24oJ2FkZGl0aW9uYWwnKSk7CiAgICAgIH0KICAgICRzZW5kX3BheWxvYWQgPSBpbXBsb2RlKCcmJywkcGF5bG9hZCk7CiAgICBpZiAoJHRoaXMtPkdldE9wdGlvbignbWV0aG9kJywnUE9TVCcpID09ICdQT1NUJykKICAgICAgICAgewogICAgICAgICAkY2ggPSBjdXJsX2luaXQoJHRoaXMtPkdldE9wdGlvbigndXJsJykpOwogICAgICAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUE9TVCwxKTsKICAgICAgICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1BPU1RGSUVMRFMsJHNlbmRfcGF5bG9hZCk7CiAgICAgICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9GT0xMT1dMT0NBVElPTiwxKTsKICAgICAgICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLDApOwogICAgICAgICAkcmVzID0gY3VybF9leGVjKCRjaCk7CiAgICAgICAgIGlmICghJHJlcykKICAgICAgICAgICAgewogICAgICAgICAgICAkbXNnID0gY3VybF9lcnJvcigkY2gpOwogICAgICAgICAgICB9CiAgICAgICAgIGN1cmxfY2xvc2UoJGNoKTsKICAgICAgICAgfQogICAgICBlbHNlCiAgICAgICAgIHsKICAgICAgICAgJHVybCA9ICR0aGlzLT5HZXRPcHRpb24oJ3VybCcpOwogICAgICAgICBpZiAoc3RycG9zKCR1cmwsJz8nKSkKICAgICAgICAgICAgewogICAgICAgICAgICAkdXJsIC49ICcmJy4kc2VuZF9wYXlsb2FkOwogICAgICAgICAgICB9CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAkdXJsIC49ICc/Jy4kc2VuZF9wYXlsb2FkOwogICAgICAgICAgICB9CiAgICAgICAgICRjaCA9IGN1cmxfaW5pdCgkdXJsKTsKICAgICAgICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0hUVFBHRVQsMSk7CiAgICAgICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9GT0xMT1dMT0NBVElPTiwxKTsKICAgICAgICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLDApOwogICAgICAgICAkcmVzID0gY3VybF9leGVjKCRjaCk7CiAgICAgICAgIGlmICghJHJlcykKICAgICAgICAgICAgewogICAgICAgICAgICAkbXNnID0gY3VybF9lcnJvcigkY2gpOwogICAgICAgICAgICB9CiAgICAgICAgIGN1cmxfY2xvc2UoJGNoKTsKICAgICAgICAgfQogICAgcmV0dXJuIGFycmF5KCRyZXMsJG1zZyk7CiAgfQoKCiAgZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQogIHsKCWdsb2JhbCAkZ0NtczsKICAgICRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkZnB0ID0gJHRoaXMtPmZvcm1fcHRyOwoKICAgICRtYWluID0gYXJyYXkoKTsKICAgICRhZHYgPSBhcnJheSgpOwogICAgJG1ldGhvZHMgPSBhcnJheSgnUE9TVCc9PidQT1NUJywnR0VUJz0+J0dFVCcpOwogICAgaWYgKCFmdW5jdGlvbl9leGlzdHMoJ2N1cmxfaW5pdCcpKQogICAgICB7CiAgICAgIGFycmF5X3B1c2goJG1haW4sYXJyYXkoJycsJG1vZC0+TGFuZygndGl0bGVfaW5zdGFsbF9jdXJsJykpKTsKICAgICAgfQogICAgZWxzZQogICAgICB7CiAgICBhcnJheV9wdXNoKCRtYWluLGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX21ldGhvZCcpLAoJCQkJJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9tZXRob2QnLCAkbWV0aG9kcywgLTEsCiAgICAgICAgICAgICAgICR0aGlzLT5HZXRPcHRpb24oJ21ldGhvZCcpKSkpOwogICAgYXJyYXlfcHVzaCgkbWFpbixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV91cmwnKSwKCQkJICAgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X3VybCcsCgkJCQkJCSAkdGhpcy0+R2V0T3B0aW9uKCd1cmwnLCcnKSw0MCwyNTUpLic8YnIgLz4nLgogICAgICAgICAgICAgICAgICAgJG1vZC0+TGFuZygndGl0bGVfdXJsX2hlbHAnKSkpOwogICAgICRmaWVsZHMgPSAkZnB0LT5HZXRGaWVsZHMoKTsKICAgICAgZm9yZWFjaCgkZmllbGRzIGFzICR0ZikKICAgICAgICAgewogICAgICAgICAkYWwgPSAkdGYtPkdldEFsaWFzKCk7CiAgICAgICAgIGlmIChlbXB0eSgkYWwpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICRhbCA9ICR0Zi0+R2V0VmFyaWFibGVOYW1lKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgYXJyYXlfcHVzaCgkYWR2LGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX21hcHNfdG8nLCR0Zi0+R2V0TmFtZSgpKSwKCQkJICAgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2ZsZF8nLiR0Zi0+R2V0SWQoKSwKCQkJCQkJICR0aGlzLT5HZXRPcHRpb24oJ2ZsZF8nLiR0Zi0+R2V0SWQoKSwkYWwpLDQwLDI1NSkuCiAgICAgICAgICAgICRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRmb3JtRGVzY3JpcHRvciwnZmJycF9vcHRfc3ViXycuJHRmLT5HZXRJZCgpLCcwJykuCiAgICAgICAgICAgICRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCdmYnJwX29wdF9zdWJfJy4kdGYtPkdldElkKCksJzEnLAogICAgICAgICAgICAgICAkdGhpcy0+R2V0T3B0aW9uKCdzdWJfJy4kdGYtPkdldElkKCksKCR0Zi0+RGlzcGxheUluU3VibWlzc2lvbigpPycxJzonMCcpKSkuCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3RpdGxlX2luY2x1ZGVfaW5fc3VibWlzc2lvbicpKSk7CiAgICAgICAgIH0KICAgICAgYXJyYXlfcHVzaCgkYWR2LGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2FkZGl0aW9uYWwnKSwKCQkJICAgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2FkZGl0aW9uYWwnLAoJCQkJCQkgJHRoaXMtPkdldE9wdGlvbignYWRkaXRpb25hbCcpLDQwLDI1NSkuJzxiciAvPicuCiAgICAgICAgICAgICAgICAgICAkbW9kLT5MYW5nKCd0aXRsZV9hZGRpdGlvbmFsX2hlbHAnKSkpOwoKICAgICAgfQogICAgcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwogIH0KCiAgZnVuY3Rpb24gUG9zdFBvcHVsYXRlQWRtaW5Gb3JtKCYkbWFpbkFycmF5LCAmJGFkdkFycmF5KQogIHsKICAgICR0aGlzLT5IaWRkZW5EaXNwb3NpdGlvbkZpZWxkcygkbWFpbkFycmF5LCAkYWR2QXJyYXkpOwogIH0KfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionFormBrowser.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwOCBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDggYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkRpc3Bvc2l0aW9uRm9ybUJyb3dzZXIgZXh0ZW5kcyBmYkZpZWxkQmFzZSB7CgoJdmFyICRhcHByb3ZlZEJ5OwoKCWZ1bmN0aW9uIGZiRGlzcG9zaXRpb25Gb3JtQnJvd3NlcigmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgJHRoaXMtPmZiRmllbGRCYXNlKCRmb3JtX3B0ciwgJHBhcmFtcyk7CiAgICAgICRtb2QgPSAkZm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHRoaXMtPlR5cGUgPSAnRGlzcG9zaXRpb25Gb3JtQnJvd3Nlcic7CgkJJHRoaXMtPklzRGlzcG9zaXRpb24gPSB0cnVlOwoJCSR0aGlzLT5Ob25SZXF1aXJhYmxlRmllbGQgPSB0cnVlOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+RGlzcGxheUluU3VibWlzc2lvbiA9IGZhbHNlOwoJCSR0aGlzLT5IaWRlTGFiZWwgPSAxOwoJCSR0aGlzLT5OZWVkc0RpdiA9IDA7CgkJJHRoaXMtPmFwcHJvdmVkQnkgPSAnJzsKCQkkdGhpcy0+c29ydGFibGUgPSBmYWxzZTsKCX0KCglmdW5jdGlvbiBHZXRGaWVsZElucHV0KCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCWlmICgkdGhpcy0+VmFsdWUgPT09IGZhbHNlKQoJCQl7CgkJCXJldHVybiAnJzsKCQkJfQoJCXJldHVybiAkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdmYnJwX18nLiR0aGlzLT5JZCwJCgkJCSR0aGlzLT5FbmNvZGVSZXFJZCgkdGhpcy0+VmFsdWUpKTsKCX0KCglmdW5jdGlvbiBTZXRBcHByb3ZhbE5hbWUoJG5hbWUpCgl7CgkJJHRoaXMtPmFwcHJvdmVkQnkgPSAkbmFtZTsKCX0KCglmdW5jdGlvbiBTdGF0dXNJbmZvKCkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRlbmMgPSAoJHRoaXMtPkdldE9wdGlvbignY3J5cHQnLCcwJykgPT0gJzEnPyRtb2QtPkxhbmcoJ3llcycpOiRtb2QtPkxhbmcoJ25vJykpOwoJCSRmZXUgPSAoJHRoaXMtPkdldE9wdGlvbignZmV1X2JpbmQnLCcwJykgPT0gJzEnPyRtb2QtPkxhbmcoJ3llcycpOiRtb2QtPkxhbmcoJ25vJykpOwoJCXJldHVybiAkbW9kLT5MYW5nKCd0aXRsZV9lbmNyeXB0aW9uJykuJzonLiRlbmMuJywgJy4kbW9kLT5MYW5nKCd0aXRsZV9mZXVfYmluZGluZycpLic6Jy4kZmV1OwoJfQoJCglmdW5jdGlvbiBEZWNvZGVSZXFJZCgkdGhlVmFsKQoJewoJCSR0bXAgPSBiYXNlNjRfZGVjb2RlKCR0aGVWYWwpOwoJCSR0bXAyID0gc3RyX3JlcGxhY2Uoc2Vzc2lvbl9pZCgpLCcnLCR0bXApOwoJCWlmIChzdWJzdHIoJHRtcDIsMCwxKSA9PSAnXycpCgkJCXsKCQkJcmV0dXJuIHN1YnN0cigkdG1wMiwxKTsKCQkJfQoJCWVsc2UKCQkJewoJCQlyZXR1cm4gLTE7CgkJCX0KCX0KCQoJZnVuY3Rpb24gRW5jb2RlUmVxSWQoJHJlcV9pZCkKCXsKCQlyZXR1cm4gYmFzZTY0X2VuY29kZShzZXNzaW9uX2lkKCkuJ18nLiRyZXFfaWQpOwoJfQoJCgkKCWZ1bmN0aW9uIFNldFZhbHVlKCR2YWwpCgl7CgkJJGRlY3ZhbCA9IGJhc2U2NF9kZWNvZGUoJHZhbCk7CiAgIAoJCWlmICgkdmFsID09PSBmYWxzZSkKCQkJewoJCQkvLyBubyB2YWx1ZSBzZXQsIHNvIHdlJ2xsIGxlYXZlIHZhbHVlIGFzIGZhbHNlCgkJCX0KCQllbHNlaWYgKHN0cnBvcygkZGVjdmFsLCdfJykgPT09IGZhbHNlKQoJCQl7CgkJCS8vIHVuZW5jcnlwdGVkIHZhbHVlLCBjb21pbmcgaW4gZnJvbSBwcmV2aW91cyByZXNwb25zZQoJCQkkdGhpcy0+VmFsdWUgPSAkdmFsOwoJCQl9CgkJZWxzZQoJCQl7CgkJCS8vIGVuY3J5cHRlZCB2YWx1ZSBjb21pbmcgaW4gZnJvbSBhIGZvcm0sIHNvIHdlJ2xsIHVwZGF0ZS4KCQkJJHRoaXMtPlZhbHVlID0gJHRoaXMtPkRlY29kZVJlcUlkKCR2YWwpOwoJCQl9Cgl9CgkKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRmb3JtID0gJHRoaXMtPmZvcm1fcHRyOwoJCSRmaWVsZHMgPSAkZm9ybS0+R2V0RmllbGRzKCk7CgkJJGZpZWxkbGlzdCA9IGFycmF5KCRtb2QtPkxhbmcoJ25vbmUnKT0+Jy0xJyk7CgkJJG1haW4gPSBhcnJheSgpOwoJCSRhZHYgPSBhcnJheSgpOwoJCWZvciAoJGk9MDskaTxjb3VudCgkZmllbGRzKTskaSsrKQoJCQl7CgkJCWlmICgkZmllbGRzWyRpXS0+RGlzcGxheUluU3VibWlzc2lvbigpKQoJCQkJewoJCQkJJGZpZWxkbGlzdFskZmllbGRzWyRpXS0+R2V0TmFtZSgpXSA9ICRmaWVsZHNbJGldLT5HZXRJZCgpOwoJCQkJfQoJCQl9CgkJJGN1cnJlbnRfaW5kZXhlcyA9IGFycmF5KCk7CgkJZm9yICgkaT0xOyRpPDY7JGkrKykKCQkJewoJCQkkZm5hbWUgPSBhcnJheV9zZWFyY2goJHRoaXMtPkdldE9wdGlvbignc29ydGZpZWxkJy4kaSksJGZpZWxkbGlzdCk7CgkJCWFycmF5X3B1c2goJG1haW4sCgkJCQkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfc29ydGFibGVfZmllbGQnLGFycmF5KCRpKSksCgkJCQkJCSRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfc29ydGZpZWxkJy4kaSwgJGZpZWxkbGlzdCwgLTEsCgkJCQkJJHRoaXMtPkdldE9wdGlvbignc29ydGZpZWxkJy4kaSwtMSkpCgkJCQkJKSk7CgkJCWFycmF5X3B1c2goJGN1cnJlbnRfaW5kZXhlcywkdGhpcy0+R2V0T3B0aW9uKCdzb3J0ZmllbGQnLiRpLC0xKSk7CgkJCX0KCSAgYXJyYXlfcHVzaCgkbWFpbixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9ub3RlJyksJG1vZC0+TGFuZygndGl0bGVfY2hhbmdpbmdfdHJpZ2dlcnNfcmVpbmRleCcpLgoJCSRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRmb3JtRGVzY3JpcHRvciwnZmJycF9wcmV2aW91c19pbmRpY2VzJyxpbXBsb2RlKCc6JywkY3VycmVudF9pbmRleGVzKSkKCQkpKTsKCglhcnJheV9wdXNoKCRhZHYsYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfc2VhcmNoYWJsZScpLAoJCSRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X3NlYXJjaGFibGUnLCcwJykuCgkJJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9zZWFyY2hhYmxlJywKCQknMScsJHRoaXMtPkdldE9wdGlvbignc2VhcmNoYWJsZScsJzAnKSkuCgkJJG1vZC0+TGFuZygndGl0bGVfc2VhcmNoYWJsZV9oZWxwJykpKTsKCgkgICRmZXUgPSAkbW9kLT5HZXRNb2R1bGVJbnN0YW5jZSgnRnJvbnRFbmRVc2VycycpOwoJICBpZiAoJGZldSA9PSBGQUxTRSkKCQl7CgkJYXJyYXlfcHVzaCgkYWR2LGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2ZldV9iaW5kaW5nJyksCgkJCSRtb2QtPkxhbmcoJ3RpdGxlX2luc3RhbGxfZmV1JykpKTsJCgkJfQoJZWxzZQoJCXsKCQlhcnJheV9wdXNoKCRhZHYsYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZmV1X2JpbmRpbmcnKSwKCQkJJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZmV1X2JpbmQnLCcwJykuCgkJCSRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZmV1X2JpbmQnLAoJCQknMScsJHRoaXMtPkdldE9wdGlvbignZmV1X2JpbmQnLCcwJykpLgoJCQkkbW9kLT5MYW5nKCd0aXRsZV9mZXVfYmluZF9oZWxwJykpKTsKCQl9CgkJCgkgICRvcGVuc3NsID0gJG1vZC0+R2V0TW9kdWxlSW5zdGFuY2UoJ09wZW5TU0wnKTsKCSAgaWYgKCRvcGVuc3NsID09IEZBTFNFICYmICFmdW5jdGlvbl9leGlzdHMoJ21jcnlwdF9lbmNyeXB0JykpCgkJewoJCWFycmF5X3B1c2goJGFkdixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9lbmNyeXB0aW9uX2Z1bmN0aW9ucycpLAogICAgICAgICAgICAkbW9kLT5MYW5nKCd0aXRsZV9pbnN0YWxsX2NyeXB0bycpKSk7CiAgICAgICAgCgkJfQoJZWxzZQoJCXsKCQlpZiAoJG9wZW5zc2wgIT09IEZBTFNFKQogICAgICAgICB7CgkJICAgICRrZXlzID0gJG9wZW5zc2wtPmdldEtleUxpc3QoKTsKCQkgICAgJGNlcnRzID0gJG9wZW5zc2wtPmdldENlcnRMaXN0KCk7CgkJICAgIH0KCQlhcnJheV9wdXNoKCRhZHYsYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZW5jcnlwdF9kYXRhYmFzZV9kYXRhJyksCgkJCSAgICRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2NyeXB0JywnMCcpLgogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfY3J5cHQnLAogICAgICAgICAgICAJCScxJywkdGhpcy0+R2V0T3B0aW9uKCdjcnlwdCcsJzAnKSkuCgkJCQkJJG1vZC0+TGFuZygndGl0bGVfZW5jcnlwdF9kYXRhYmFzZV9sb25nJykpKTsKCQlhcnJheV9wdXNoKCRhZHYsYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZW5jcnlwdF9zb3J0ZmllbGRzJyksCgkJCSAgICRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2hhc2hfc29ydCcsJzAnKS4KICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dENoZWNrYm94KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2hhc2hfc29ydCcsCiAgICAgICAgICAgIAkJJzEnLCR0aGlzLT5HZXRPcHRpb24oJ2hhc2hfc29ydCcsJzAnKSkuCiAgICAgICAgICAgICAgICAgICRtb2QtPkxhbmcoJ3RpdGxlX2VuY3J5cHRfc29ydGZpZWxkc19oZWxwJykpKTsKCQlhcnJheV9wdXNoKCRhZHYsYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZW5jcnlwdGlvbl9rZXlmaWxlJyksCiAgICAgICAgICAgICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9rZXlmaWxlJywKICAgICAgICAgICAgCQkkdGhpcy0+R2V0T3B0aW9uKCdrZXlmaWxlJywnJyksNDAsMjU1KSkpOwoKICAgICAgJGNyeXB0bGlicyA9IGFycmF5KCk7CiAgICAgIGlmICgkb3BlbnNzbCAhPT0gRkFMU0UpCiAgICAgICAgIHsKICAgICAgICAgJGNyeXB0bGlic1skbW9kLT5MYW5nKCdvcGVuc3NsJyldPSdvcGVuc3NsJzsKICAgICAgICAgfQogICAgICBpZiAoZnVuY3Rpb25fZXhpc3RzKCdtY3J5cHRfZW5jcnlwdCcpKQogICAgICAgICB7CiAgICAgICAgICRjcnlwdGxpYnNbJG1vZC0+TGFuZygnbWNyeXB0JyldPSdtY3J5cHQnOwogICAgICAgICB9CgoJCWFycmF5X3B1c2goJGFkdixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9jcnlwdF9saWInKSwKICAgICAgICAgICAgJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkZm9ybURlc2NyaXB0b3IsJ2ZicnBfb3B0X2NyeXB0X2xpYicsCiAgICAgICAgICAgICRjcnlwdGxpYnMsLTEsJHRoaXMtPkdldE9wdGlvbignY3J5cHRfbGliJykpKSk7CgoKCiAgICAgIGlmICgkb3BlbnNzbCAhPT0gRkFMU0UpCiAgICAgICAgIHsKICAgICAgICAgYXJyYXlfcHVzaCgkYWR2LGFycmF5KCRtb2QtPkxhbmcoJ2Nob29zZV9jcnlwdCcpLCRtb2QtPkxhbmcoJ2Nob29zZV9jcnlwdF9sb25nJykpKTsKCgkJICAgYXJyYXlfcHVzaCgkYWR2LGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2NyeXB0X2NlcnQnKSwKCQkJCQkkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2NyeXB0X2NlcnQnLCAkY2VydHMsCgkJCQkJCS0xLCR0aGlzLT5HZXRPcHRpb24oJ2NyeXB0X2NlcnQnKSkpKTsKCQkgICAgYXJyYXlfcHVzaCgkYWR2LGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3ByaXZhdGVfa2V5JyksCgkJCQkkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X3ByaXZhdGVfa2V5JywgJGtleXMsCgkJCQkJLTEsJHRoaXMtPkdldE9wdGlvbigncHJpdmF0ZV9rZXknKSkuJG1vZC0+TGFuZygndGl0bGVfZW5zdXJlX2NlcnRfa2V5X21hdGNoJykpKTsKICAgICAgICAgfQoJCX0KCgkJcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwoJfQoKCWZ1bmN0aW9uIFBvc3RQb3B1bGF0ZUFkbWluRm9ybSgmJG1haW5BcnJheSwgJiRhZHZBcnJheSkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5IaWRkZW5EaXNwb3NpdGlvbkZpZWxkcygkbWFpbkFycmF5LCAkYWR2QXJyYXkpOwoJfQoKCglmdW5jdGlvbiBEaXNwb3NlRm9ybSgkcmV0dXJuaWQpCgl7CgkJJGZvcm0gPSAkdGhpcy0+Zm9ybV9wdHI7CgkJbGlzdCgkcmVzLCRtc2cpID0gJGZvcm0tPlN0b3JlUmVzcG9uc2UoKCR0aGlzLT5WYWx1ZT8kdGhpcy0+VmFsdWU6LTEpLCR0aGlzLT5hcHByb3ZlZEJ5LCR0aGlzKTsKCQlpZiAoJHRoaXMtPkdldE9wdGlvbignc2VhcmNoYWJsZScsJzAnKSA9PSAnMScpCgkJCXsKCQkJJGZvcm0tPkFkZFRvU2VhcmNoSW5kZXgoJHRoaXMtPlZhbHVlKTsKCQkJfQoJCXJldHVybiBhcnJheSgkcmVzLCAkbXNnKTsKCX0KCgogIGZ1bmN0aW9uIFBvc3RGaWVsZFNhdmVQcm9jZXNzKCYkcGFyYW1zKQogIHsKCSRyZWluZGV4ID0gZmFsc2U7CgkkcHJldl9pbmRpY2VzID0gZXhwbG9kZSgnOicsJHBhcmFtc1snZmJycF9wcmV2aW91c19pbmRpY2VzJ10pOwoJZm9yICgkaT0xOyRpPDY7JGkrKykKCQl7CgkJaWYgKCR0aGlzLT5HZXRPcHRpb24oJ3NvcnRmaWVsZCcuJGkpICE9ICRwcmV2X2luZGljZXNbJGktMV0pCgkJCXsKCQkJJHJlaW5kZXggPSB0cnVlOwoJCQl9CgkJfQoJaWYgKCEgJHJlaW5kZXgpCgkJewoJCXJldHVybjsKCQl9CgkkZm9ybSA9ICR0aGlzLT5mb3JtX3B0cjsKCSRmb3JtLT5SZWluZGV4UmVzcG9uc2VzKCk7CiAgfQogIAoKCWZ1bmN0aW9uIGdldEhhc2hlZFNvcnRGaWVsZFZhbCgkc29ydEZpZWxkTnVtYmVyKQogICB7CiAgICAgICR2ID0gJHRoaXMtPmdldFNvcnRGaWVsZFZhbCgkc29ydEZpZWxkTnVtYmVyKTsKICAgICAgaWYgKHN0cmxlbigkdikgPiA0KQogICAgICAgICB7CiAgICAgICAgICR2ID0gc3Vic3RyKCR2LDAsNCkuIG1kNShzdWJzdHIoJHYsNCkpOwogICAgICAgICB9CiAgICAgIHJldHVybiAkdjsKICAgfQoJCglmdW5jdGlvbiBnZXRTb3J0RmllbGRMaXN0KCkKCXsKCQkkZm9ybSA9ICR0aGlzLT5mb3JtX3B0cjsKCQkkcmV0ID0gYXJyYXkoKTsKCQlmb3IgKCRpPTE7JGk8NjskaSsrKQoJCQl7CgkJCWlmICgkdGhpcy0+R2V0T3B0aW9uKCdzb3J0ZmllbGQnLiRpLCctMScpICE9ICctMScpCgkJCQl7CgkJCQkkYWZpZWxkID0gJGZvcm0tPkdldEZpZWxkQnlJZCgkdGhpcy0+R2V0T3B0aW9uKCdzb3J0ZmllbGQnLiRpKSk7CgkJCQlpZiAoJGFmaWVsZCAhPT0gZmFsc2UpCiAgICAgICAgICAgICAgIHsKCQkJCSAgICRyZXRbJGldID0gJGFmaWVsZC0+R2V0TmFtZSgpOwogICAgICAgICAgICAgICB9CgkJCQl9CgkJCX0KCQlyZXR1cm4gJHJldDsKCX0KCglmdW5jdGlvbiBnZXRTb3J0RmllbGRWYWwoJHNvcnRGaWVsZE51bWJlcikKCXsKCQkkZm9ybSA9ICR0aGlzLT5mb3JtX3B0cjsKCQkkdmFsID0gIiI7CgkJaWYgKCR0aGlzLT5HZXRPcHRpb24oJ3NvcnRmaWVsZCcuJHNvcnRGaWVsZE51bWJlciwnLTEnKSAhPSAnLTEnKQoJCQl7CgkJCSRhZmllbGQgPSAkZm9ybS0+R2V0RmllbGRCeUlkKCR0aGlzLT5HZXRPcHRpb24oJ3NvcnRmaWVsZCcuJHNvcnRGaWVsZE51bWJlcikpOwogICAgICAgICBpZiAoJGFmaWVsZCAhPT0gZmFsc2UpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgJHZhbCA9ICRhZmllbGQtPkdldEh1bWFuUmVhZGFibGVWYWx1ZSgpOwogICAgICAgICAgICB9CgkJCX0KCQlpZiAoc3RybGVuKCR2YWwpID4gODApCgkJCXsKCQkJJHZhbCA9IHN1YnN0cigkdmFsLDAsODApOwoJCQl9CgkJcmV0dXJuICR2YWw7Cgl9Cgp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionFromEmailAddressField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCnJlcXVpcmVfb25jZShkaXJuYW1lKF9fRklMRV9fKS4nL0Rpc3Bvc2l0aW9uRW1haWxCYXNlLmNsYXNzLnBocCcpOwoKY2xhc3MgZmJEaXNwb3NpdGlvbkZyb21FbWFpbEFkZHJlc3NGaWVsZCBleHRlbmRzIGZiRGlzcG9zaXRpb25FbWFpbEJhc2UgewoKCWZ1bmN0aW9uIGZiRGlzcG9zaXRpb25Gcm9tRW1haWxBZGRyZXNzRmllbGQoJiRmb3JtX3B0ciwgJiRwYXJhbXMpCgl7CiAgICAgICR0aGlzLT5mYkRpc3Bvc2l0aW9uRW1haWxCYXNlKCRmb3JtX3B0ciwgJHBhcmFtcyk7CiAgICAgICRtb2QgPSAkZm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHRoaXMtPlR5cGUgPSAnRGlzcG9zaXRpb25Gcm9tRW1haWxBZGRyZXNzRmllbGQnOwogICAgICAkdGhpcy0+SXNEaXNwb3NpdGlvbiA9IHRydWU7CgkJJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwoJCSR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgKCQkJJG1vZC0+TGFuZygndmFsaWRhdGlvbl9ub25lJyk9Pidub25lJywKICAgICAgICAgICAgJG1vZC0+TGFuZygndmFsaWRhdGlvbl9lbWFpbF9hZGRyZXNzJyk9PidlbWFpbCcsCiAgICAgICAgICAgICk7CgkkdGhpcy0+bW9kaWZpZXNPdGhlckZpZWxkcyA9IHRydWU7CgkkdGhpcy0+Tm9uUmVxdWlyYWJsZUZpZWxkID0gZmFsc2U7CQoJfQoKCWZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJGpzID0gJHRoaXMtPkdldE9wdGlvbignamF2YXNjcmlwdCcsJycpOwoJCSRyZXRzdHIgPSAnPGlucHV0IHR5cGU9InRleHQiIG5hbWU9IicuJGlkLidmYnJwX18nLiR0aGlzLT5JZC4nW10iICcuCgkJCSR0aGlzLT5HZXRDU1NJZFRhZygnXzEnKS4nIHZhbHVlPSInLmh0bWxzcGVjaWFsY2hhcnMoJHRoaXMtPlZhbHVlWzBdLCBFTlRfUVVPVEVTKS4KCQkJJyIgc2l6ZT0iMjUiIG1heGxlbmd0aD0iMTI4IiAnLiRqcy4nLz4nOwogCQlpZiAoJHRoaXMtPkdldE9wdGlvbignc2VuZF91c2VyX2NvcHknLCduJykgPT0gJ2MnKQoJCQl7CgkJCSRyZXRzdHIgLj0gJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsICdmYnJwX18nLiR0aGlzLT5JZC4nW10nLCAxLAoJCQkJCTAsJHRoaXMtPkdldENTU0lkVGFnKCdfMicpLCdlbWFpbCcpOwoJCQkkcmV0c3RyIC49ICc8bGFiZWwgZm9yPSInLiR0aGlzLT5HZXRDU1NJZCgnXzInKS4nIiBjbGFzcz0ibGFiZWwiPicuJHRoaXMtPkdldE9wdGlvbignc2VuZF91c2VyX2xhYmVsJywKCQkJCSRtb2QtPkxhbmcoJ3RpdGxlX3NlbmRfbWVfYV9jb3B5JykpLic8L2xhYmVsPic7CgkJCX0KCQlyZXR1cm4gJHJldHN0cjsKCX0KCiAgIGZ1bmN0aW9uIEhhc1ZhbHVlKCRkZW55X2JsYW5rX3Jlc3BvbnNlcz1mYWxzZSkKICAgewogICByZXR1cm4gKCR0aGlzLT5WYWx1ZVswXSAhPT0gZmFsc2UgJiYgIWVtcHR5KCR0aGlzLT5WYWx1ZVswXSkpOwogICB9CgogIAlmdW5jdGlvbiBHZXRWYWx1ZSgpCiAgCXsKICAgIAlyZXR1cm4gJHRoaXMtPlZhbHVlWzBdOwogIAl9CgogICBmdW5jdGlvbiBTZXRWYWx1ZSgkdmFsU3RyKQogICB7CiAgICAgIGlmICghIGlzX2FycmF5KCR2YWxTdHIpKQogICAgICAgICB7CiAgICAgICAgICR0aGlzLT5WYWx1ZSA9IGFycmF5KCR2YWxTdHIpOwogICAgICAgICB9CiAgICAgIGVsc2UKICAgICAgICAgewogICAgICAgICAkdGhpcy0+VmFsdWUgPSAkdmFsU3RyOwogICAgICAgICB9CiAgIH0KCglmdW5jdGlvbiBHZXRIdW1hblJlYWRhYmxlVmFsdWUoJGFzX3N0cmluZz10cnVlKQoJewoJCWlmIChpc19hcnJheSgkdGhpcy0+VmFsdWUpKQoJCQl7CgkJCXJldHVybiAkdGhpcy0+VmFsdWVbMF07CgkJCX0KCQllbHNlCgkJCXsKCQkJcmV0dXJuICR0aGlzLT5WYWx1ZTsKCQkJfQoJfQoKCWZ1bmN0aW9uIERpc3Bvc2VGb3JtKCkKCXsKICAgICAgaWYgKCR0aGlzLT5IYXNWYWx1ZSgpICE9IGZhbHNlICYmIAoJCQkoCgkJCQkkdGhpcy0+R2V0T3B0aW9uKCdzZW5kX3VzZXJfY29weScsJ24nKSA9PSAnYScKCQkJCXx8CgkJCQkoJHRoaXMtPkdldE9wdGlvbignc2VuZF91c2VyX2NvcHknLCduJykgPT0gJ2MnICYmIGlzc2V0KCR0aGlzLT5WYWx1ZVsxXSkgJiYgJHRoaXMtPlZhbHVlWzFdID09IDEpCgkJCSkKCQkgKQoJCQl7CgkJCXJldHVybiAkdGhpcy0+U2VuZEZvcm0oJHRoaXMtPlZhbHVlWzBdLCR0aGlzLT5HZXRPcHRpb24oJ2VtYWlsX3N1YmplY3QnKSk7CgkJCX0KCSAgZWxzZQoJCXsKICAgICAgICByZXR1cm4gYXJyYXkodHJ1ZSwnJyk7CiAgICAgICAgfQoJfQoKCglmdW5jdGlvbiBTdGF0dXNJbmZvKCkKCXsKCQlyZXR1cm4gJHRoaXMtPlRlbXBsYXRlU3RhdHVzKCk7Cgl9CgoJZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJbGlzdCgkbWFpbiwkYWR2KSA9ICR0aGlzLT5QcmVQb3B1bGF0ZUFkbWluRm9ybUJhc2UoJGZvcm1EZXNjcmlwdG9yKTsKCQkkb3B0cyA9IGFycmF5KCRtb2QtPkxhbmcoJ29wdGlvbl9uZXZlcicpPT4nbicsJG1vZC0+TGFuZygnb3B0aW9uX3VzZXJfY2hvaWNlJyk9PidjJywkbW9kLT5MYW5nKCdvcHRpb25fYWx3YXlzJyk9PidhJyk7CgkJYXJyYXlfcHVzaCgkbWFpbixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9zZW5kX3VzZXJjb3B5JyksCgkJCSRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfc2VuZF91c2VyX2NvcHknLCAkb3B0cywgLTEsICR0aGlzLT5HZXRPcHRpb24oJ3NlbmRfdXNlcl9jb3B5JywnbicpKSkpOwoJCWFycmF5X3B1c2goJG1haW4sYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfc2VuZF91c2VyY29weV9sYWJlbCcpLAoJCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfc2VuZF91c2VyX2xhYmVsJywgJHRoaXMtPkdldE9wdGlvbignc2VuZF91c2VyX2xhYmVsJywKCQkJCSRtb2QtPkxhbmcoJ3RpdGxlX3NlbmRfbWVfYV9jb3B5JykpLDI1LDEyNSkpKTsKCQkkaG9wdHMgPSBhcnJheSgkbW9kLT5MYW5nKCdvcHRpb25fZnJvbScpPT4nZicsJG1vZC0+TGFuZygnb3B0aW9uX3JlcGx5Jyk9PidyJywkbW9kLT5MYW5nKCdvcHRpb25fYm90aCcpPT4nYicpOwoJCWFycmF5X3B1c2goJG1haW4sYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfaGVhZGVyc190b19tb2RpZnknKSwKCQkJJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9oZWFkZXJzX3RvX21vZGlmeScsICRob3B0cywgLTEsICR0aGlzLT5HZXRPcHRpb24oJ2hlYWRlcnNfdG9fbW9kaWZ5JywnZicpKSkpOwoJCXJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLCdhZHYnPT4kYWR2KTsKCX0KCglmdW5jdGlvbiBQb3N0UG9wdWxhdGVBZG1pbkZvcm0oJiRtYWluQXJyYXksICYkYWR2QXJyYXkpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkdGhpcy0+UmVtb3ZlQWRtaW5GaWVsZCgkbWFpbkFycmF5LCAkbW9kLT5MYW5nKCd0aXRsZV9lbWFpbF9mcm9tX2FkZHJlc3MnKSk7Cgl9CgoKCWZ1bmN0aW9uIE1vZGlmeU90aGVyRmllbGRzKCkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRvdGhlcnMgPSAkdGhpcy0+Zm9ybV9wdHItPkdldEZpZWxkcygpOwoJCSRodG0gPSAkdGhpcy0+R2V0T3B0aW9uKCdoZWFkZXJzX3RvX21vZGlmeScsJ2YnKTsKCQlpZiAoJHRoaXMtPlZhbHVlICE9PSBmYWxzZSkKCQkJewoJCQlmb3IoJGk9MDskaTxjb3VudCgkb3RoZXJzKTskaSsrKQoJCQkJewoJCQkJJHJlcGxWYWwgPSAnJzsKCQkJCWlmICgkb3RoZXJzWyRpXS0+SXNEaXNwb3NpdGlvbigpICYmCiAgICAgICAgICAgICAgIGlzX3N1YmNsYXNzX29mKCRvdGhlcnNbJGldLCdmYkRpc3Bvc2l0aW9uRW1haWxCYXNlJykpCgkJCQkJewoJCQkJCWlmICgkaHRtID09ICdmJyB8fCAkaHRtID09ICdiJykKICAgICAgICAgICAgICAgICAgewoJCQkJCSAgICAkb3RoZXJzWyRpXS0+U2V0T3B0aW9uKCdlbWFpbF9mcm9tX2FkZHJlc3MnLCR0aGlzLT5WYWx1ZVswXSk7CgkJCQkJICAgfQogICAgICAgICAgICAgICBpZiAoJGh0bSA9PSAncicgfHwgJGh0bSA9PSAnYicpCiAgICAgICAgICAgICAgICAgIHsKCQkJCQkgICAgJG90aGVyc1skaV0tPlNldE9wdGlvbignZW1haWxfcmVwbHlfdG9fYWRkcmVzcycsJHRoaXMtPlZhbHVlWzBdKTsKICAgICAgICAgICAgICAgICAgfQoJCQkJCX0KCQkJCX0KCQkJfQoJfQoKCWZ1bmN0aW9uIFZhbGlkYXRlKCkKCXsKCiAgCQkkdGhpcy0+dmFsaWRhdGVkID0gdHJ1ZTsKICAJCSR0aGlzLT52YWxpZGF0aW9uRXJyb3JUZXh0ID0gJyc7CgkJJHJlc3VsdCA9IHRydWU7CgkJJG1lc3NhZ2UgPSAnJzsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCWlmICgkdGhpcy0+VmFsaWRhdGlvblR5cGUgIT0gJ25vbmUnKQoJCQl7CgkJICAgICAgaWYgKCR0aGlzLT5WYWx1ZSAhPT0gZmFsc2UgJiYKCQkgICAgICAgICAgICAhIHByZWdfbWF0Y2goKCRtb2QtPkdldFByZWZlcmVuY2UoJ3JlbGF4ZWRfZW1haWxfcmVnZXgnLCcwJyk9PTA/JG1vZC0+ZW1haWxfcmVnZXg6JG1vZC0+ZW1haWxfcmVnZXhfcmVsYXhlZCksICR0aGlzLT5WYWx1ZVswXSkpCgkJICAgICAgICAgewoJCSAgICAgICAgICR0aGlzLT52YWxpZGF0ZWQgPSBmYWxzZTsKCQkgICAgICAgICAkdGhpcy0+dmFsaWRhdGlvbkVycm9yVGV4dCA9ICRtb2QtPkxhbmcoJ3BsZWFzZV9lbnRlcl9hbl9lbWFpbCcsJHRoaXMtPk5hbWUpOwoJCSAgICAgICAgIH0KCQkJfQoJCXJldHVybiBhcnJheSgkdGhpcy0+dmFsaWRhdGVkLCAkdGhpcy0+dmFsaWRhdGlvbkVycm9yVGV4dCk7Cgl9Cn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionMultiselectFileDirector.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCgogICBUaGlzIGZpbGU6IENvcHlyaWdodCAoYykgMjAwNyBSb2JlcnQgQ2FtcGJlbGwgPGNhbGd1eTEwMDBAaG90bWFpbC5jb20+CiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiovCgpjbGFzcyBmYkRpc3Bvc2l0aW9uTXVsdGlzZWxlY3RGaWxlRGlyZWN0b3IgZXh0ZW5kcyAgZmJGaWVsZEJhc2UgCnsKICB2YXIgJGZpbGVDb3VudDsKICB2YXIgJGZpbGVBZGQ7CiAgdmFyICRzYW1wbGVUZW1wbGF0ZUNvZGU7CiAgdmFyICRzYW1wbGVIZWFkZXI7CiAgdmFyICRkZmx0X2ZpbGVwYXRoOwoKICBmdW5jdGlvbiBmYkRpc3Bvc2l0aW9uTXVsdGlzZWxlY3RGaWxlRGlyZWN0b3IoJiRmb3JtX3B0ciwgJiRwYXJhbXMpCiAgewogICAgJHRoaXMtPmZiRmllbGRCYXNlKCRmb3JtX3B0ciwgJHBhcmFtcyk7CiAgICAkbW9kID0gJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgJHRoaXMtPlR5cGUgPSAnRGlzcG9zaXRpb25NdWx0aXNlbGVjdEZpbGVEaXJlY3Rvcic7CiAgICAkdGhpcy0+SXNEaXNwb3NpdGlvbiA9IHRydWU7CiAgICAkdGhpcy0+RGlzcGxheUluRm9ybSA9IHRydWU7CiAgICAkdGhpcy0+RGlzcGxheUluU3VibWlzc2lvbiA9IGZhbHNlOwogICAgJHRoaXMtPkRpc3BsYXlJblN1Ym1pc3Npb24gPSB0cnVlOwogICAgJHRoaXMtPkhhc0FkZE9wID0gdHJ1ZTsKICAgICR0aGlzLT5IYXNEZWxldGVPcCA9IHRydWU7CiAgICAkdGhpcy0+aGFzTXVsdGlwbGVGb3JtQ29tcG9uZW50cyA9IHRydWU7CiAgICAkdGhpcy0+c29ydGFibGUgPSBmYWxzZTsKICAgICR0aGlzLT5maWxlQWRkID0gMDsKCiAgICBnbG9iYWwgJGdDbXM7CiAgICAkY29uZmlnID0gJGdDbXMtPmdldENvbmZpZygpOwogICAgJHRoaXMtPmRmbHRfZmlsZXBhdGggPSAkY29uZmlnWyd1cGxvYWRzX3BhdGgnXTsKICB9CgoKICBmdW5jdGlvbiBEb09wdGlvbkFkZCgmJHBhcmFtcykKICB7CiAgICAkdGhpcy0+ZmlsZUFkZCA9IDE7CiAgfQoKICBmdW5jdGlvbiBEb09wdGlvbkRlbGV0ZSgmJHBhcmFtcykKICB7CiAgICAkZGVsY291bnQgPSAwOwogICAgZm9yZWFjaCAoJHBhcmFtcyBhcyAkdGhpc0tleT0+JHRoaXNWYWwpCiAgICAgIHsKCWlmIChzdWJzdHIoJHRoaXNLZXksMCw5KSA9PSAnZmJycF9kZWxfJykKCSAgewoJICAgICR0aGlzLT5SZW1vdmVPcHRpb25FbGVtZW50KCdkZXN0aW5hdGlvbl9maWxlbmFtZScsICR0aGlzVmFsIC0gJGRlbGNvdW50KTsKCSAgICAkdGhpcy0+UmVtb3ZlT3B0aW9uRWxlbWVudCgnZGVzdGluYXRpb25fZGlzcGxheW5hbWUnLCAkdGhpc1ZhbCAtICRkZWxjb3VudCk7CgkgICAgJGRlbGNvdW50Kys7CgkgIH0KICAgICAgfQogIH0KCiAgZnVuY3Rpb24gY291bnRGaWxlcygpCiAgewogICAgJHRtcCA9ICR0aGlzLT5HZXRPcHRpb25SZWYoJ2Rlc3RpbmF0aW9uX2ZpbGVuYW1lJyk7CiAgICBpZiAoaXNfYXJyYXkoJHRtcCkpCiAgICAgIHsKCSR0aGlzLT5maWxlQ291bnQgPSBjb3VudCgkdG1wKTsKICAgICAgfQogICAgZWxzZWlmICgkdG1wICE9PSBmYWxzZSkKICAgICAgewoJJHRoaXMtPmZpbGVDb3VudCA9IDE7CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJJHRoaXMtPmZpbGVDb3VudCA9IDA7CiAgICAgIH0KICB9CgogIGZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQogIHsKICAgICRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkanMgPSAkdGhpcy0+R2V0T3B0aW9uKCdqYXZhc2NyaXB0JywnJyk7CgkKICAgIC8vIHdoeSBhbGwgdGhpcz8gQXNzb2NpYXRpdmUgYXJyYXlzIGFyZSBub3QgZ3VhcmFudGVlZCB0byBwcmVzZXJ2ZQogICAgLy8gb3JkZXIsIGV4Y2VwdCBpbiAiY2hyb25vbG9naWNhbCIgY3JlYXRpb24gb3JkZXIuCiAgICAkZGlzcGxheW5hbWVzID0gJHRoaXMtPkdldE9wdGlvblJlZignZGVzdGluYXRpb25fZGlzcGxheW5hbWUnKTsKICAgICRkaXNwbGF5ZmlsZXMgPSAkdGhpcy0+R2V0T3B0aW9uUmVmKCdkZXN0aW5hdGlvbl9maWxlbmFtZScpOwogICAgJGRpc3BsYXl2YWx1ZXMgPSAkdGhpcy0+R2V0T3B0aW9uUmVmKCdkZXN0aW5hdGlvbl92YWx1ZScpOwoKICAgICRmaWVsZHMgPSBhcnJheSgpOwogICAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJGRpc3BsYXluYW1lcyk7ICRpKysgKQogICAgICB7CgkkbGFiZWwgPSAnJzsKCSRjdHJsID0gbmV3IHN0ZENsYXNzKCk7CgkkY3RybC0+bmFtZSA9ICc8bGFiZWwgZm9yPSInLiR0aGlzLT5HZXRDU1NJZCgnXycuJGkpLiciPicuJGRpc3BsYXluYW1lc1skaV0uJzwvbGFiZWw+JzsKCSRjdHJsLT50aXRsZSA9ICRkaXNwbGF5bmFtZXNbJGldOwoJJGN0cmwtPmlucHV0ID0gJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsCgkJCQkJCSAnZmJycF9fJy4kdGhpcy0+SWQuJ1tdJywgCgkJCQkJCSAkZGlzcGxheXZhbHVlc1skaV0sCiAgICAgICAgICAgICAgICAgICAgICAgICAoaXNfYXJyYXkoJHRoaXMtPlZhbHVlKSAmJiBpbl9hcnJheSgkZGlzcGxheXZhbHVlc1skaV0sJHRoaXMtPlZhbHVlKSk/JGRpc3BsYXl2YWx1ZXNbJGldOictMScsCgkJCQkJCSAkdGhpcy0+R2V0Q1NTSWRUYWcoJ18nLiRpKS4kanMpOwoJJGZpZWxkc1tdID0gJGN0cmw7CiAgICAgIH0KICAgIHJldHVybiAkZmllbGRzOwogIH0KCiAgZnVuY3Rpb24gR2V0SHVtYW5SZWFkYWJsZVZhbHVlKCRhc19zdHJpbmc9dHJ1ZSkKICB7CiAgICAkZm9ybSA9ICR0aGlzLT5mb3JtX3B0cjsKICAgICR0bXAgPSBhcnJheSgpOwogICAgaWYoIGlzX2FycmF5KCR0aGlzLT5WYWx1ZSkgKQogICAgICB7Cglmb3JlYWNoKCAkdGhpcy0+VmFsdWUgYXMgJG9uZXZhbHVlICkKCSAgewoJICAgIGlmKCBlbXB0eSgkb25ldmFsdWUpICkgY29udGludWU7CgkgICAgCgkgICAgJHRtcFtdID0gJG9uZXZhbHVlOwoJICB9IC8vIGZvcmVhY2gKICAgICAgfSAvLyBpZgoKICAgIGlmICgkYXNfc3RyaW5nKQogICAgICB7CgkkdG1wID0gam9pbigkZm9ybS0+R2V0QXR0cignbGlzdF9kZWxpbWl0ZXInLCcsJyksJHRtcCk7CiAgICAgIH0KICAgIHJldHVybiAkdG1wOwogIH0KCiAgZnVuY3Rpb24gU3RhdHVzSW5mbygpCiAgewogICAgJHRoaXMtPmNvdW50RmlsZXMoKTsKICAgICRtb2Q9JHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgJHJldD0gJG1vZC0+TGFuZygnZmlsZV9jb3VudCcsJHRoaXMtPmZpbGVDb3VudCk7CiAgICByZXR1cm4gJHJldDsKICB9CgogIGZ1bmN0aW9uIERpc3Bvc2VGb3JtKCRyZXR1cm5pZCkKICB7CgogICAgJG1vZD0kdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkY291bnQgPSAwOwogICAgd2hpbGUgKCEgJG1vZC0+R2V0RmlsZUxvY2soKSAmJiAkY291bnQ8MjAwKQogICAgICB7CgkkY291bnQrKzsKCXVzbGVlcCg1MDApOwogICAgICB9CiAgICBpZiAoJGNvdW50ID09IDIwMCkKICAgICAgewoJcmV0dXJuIGFycmF5KGZhbHNlLCAkbW9kLT5MYW5nKCdzdWJtaXNzaW9uX2Vycm9yX2ZpbGVfbG9jaycpKTsKICAgICAgfQoKCiAgICAkZGlyID0gJHRoaXMtPkdldE9wdGlvbignZmlsZV9wYXRoJywkdGhpcy0+ZGZsdF9maWxlcGF0aCkuJy8nOwoKCSR0aGlzLT5mb3JtX3B0ci0+c2V0RmluaXNoZWRGb3JtU21hcnR5KCk7CiAgICAkaGVhZGVyID0gJHRoaXMtPkdldE9wdGlvbignZmlsZV9oZWFkZXInLCcnKTsKICAgIGlmICgkaGVhZGVyID09ICcnKQogICAgICB7CgkkaGVhZGVyID0gJHRoaXMtPmZvcm1fcHRyLT5jcmVhdGVTYW1wbGVUZW1wbGF0ZShmYWxzZSxmYWxzZSxmYWxzZSx0cnVlKTsKICAgICAgfSAKICAgICRoZWFkZXIgLj0gIlxuIjsKCiAgICAkdGVtcGxhdGUgPSAkdGhpcy0+R2V0T3B0aW9uKCdmaWxlX3RlbXBsYXRlJywnJyk7CiAgICBpZiAoJHRlbXBsYXRlID09ICcnKQogICAgICB7CgkkdGVtcGxhdGUgPSAkdGhpcy0+Zm9ybV9wdHItPmNyZWF0ZVNhbXBsZVRlbXBsYXRlKCk7CiAgICAgIH0KCiAgICAvLyBCZWdpbiBvdXRwdXQgdG8gZmlsZXMKICAgIGlmKCBpc19hcnJheSgkdGhpcy0+VmFsdWUpICkKICAgICAgewoJJGRpc3BsYXlmaWxlcyA9ICR0aGlzLT5HZXRPcHRpb25SZWYoJ2Rlc3RpbmF0aW9uX2ZpbGVuYW1lJyk7CgkkZGlzcGxheXZhbHVlcyA9ICR0aGlzLT5HZXRPcHRpb25SZWYoJ2Rlc3RpbmF0aW9uX3ZhbHVlJyk7CgoJZm9yZWFjaCggJHRoaXMtPlZhbHVlIGFzICRvbmV2YWx1ZSApCgkgIHsKCSAgICAvLyBJIGR1bm5vIHdoeSBpdCdzIGVtcHR5IHNvbWV0aW1lcywgYnV0Li4uCgkgICAgaWYoIGVtcHR5KCRvbmV2YWx1ZSkgKSBjb250aW51ZTsKCSAgICAKCSAgICAkaWR4ID0gYXJyYXlfc2VhcmNoKCRvbmV2YWx1ZSwkZGlzcGxheXZhbHVlcyk7CgkgICAgCgkgICAgJHRtcCA9ICRkaXNwbGF5ZmlsZXNbJGlkeF07CgkgICAgLy8gZ2V0IHRoZSBmaWxlbmFtZQoJICAgICRmaWxlc3BlYyA9ICRkaXIuCgkgICAgICBwcmVnX3JlcGxhY2UoIi9bXlx3XGRcLl18XC5cLi8iLCAiXyIsICR0bXApOwoJICAgIAoJICAgICRsaW5lID0gJHRlbXBsYXRlOwoJICAgIGlmICghIGZpbGVfZXhpc3RzKCRmaWxlc3BlYykpCgkgICAgICB7CgkJJGxpbmUgPSAkaGVhZGVyLiR0ZW1wbGF0ZTsKCSAgICAgIH0KCSAgICAKCSAgICAkbmV3bGluZSA9ICRtb2QtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCAkbGluZSApOwoJICAgIGlmIChzdWJzdHIoJG5ld2xpbmUsLTEsMSkgIT0gIlxuIikKCSAgICAgIHsKCQkkbmV3bGluZSAuPSAiXG4iOwoJICAgICAgfQkKCSAgICAKCSAgICAkZjIgPSBmb3BlbigkZmlsZXNwZWMsImEiKTsKCSAgICBmd3JpdGUoJGYyLCRuZXdsaW5lKTsKCSAgICBmY2xvc2UoJGYyKTsgCgkgICAgCgkgIH0gLy8gZm9yZWFjaAogICAgICB9IC8vIGlmCiAgICAkbW9kLT5SZXR1cm5GaWxlTG9jaygpOwogICAgcmV0dXJuIGFycmF5KHRydWUsJycpOyAgICAgICAgCiAgfQoKICBmdW5jdGlvbiBQcmVQb3B1bGF0ZUFkbWluRm9ybSgkZm9ybURlc2NyaXB0b3IpCiAgewogICAgJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCiAgICAkdGhpcy0+Y291bnRGaWxlcygpOwogICAgaWYoICR0aGlzLT5maWxlQWRkID4gMCApCiAgICAgIHsKCSR0aGlzLT5maWxlQ291bnQgKz0gJHRoaXMtPmZpbGVBZGQ7CgkkdGhpcy0+ZmlsZUFkZCA9IDA7CiAgICAgIH0KCiAgICAkZGVzdHMgPSAnPHRhYmxlIGNsYXNzPSJtb2R1bGVfZmJfdGFibGUiPjx0cj48dGg+Jy4kbW9kLT5MYW5nKCd0aXRsZV9zZWxlY3Rpb25fZGlzcGxheW5hbWUnKS4nPC90aD48dGg+Jy4KICAgICAgJG1vZC0+TGFuZygndGl0bGVfc2VsZWN0aW9uX3ZhbHVlJykuJzwvdGg+PHRoPicuCiAgICAgICRtb2QtPkxhbmcoJ3RpdGxlX2Rlc3RpbmF0aW9uX2ZpbGVuYW1lJykuJzwvdGg+PHRoPicuCiAgICAgICRtb2QtPkxhbmcoJ3RpdGxlX2RlbGV0ZScpLic8L3RoPjwvdHI+JzsKCiAgICBmb3IgKCRpPTA7JGk8KCR0aGlzLT5maWxlQ291bnQ+MT8kdGhpcy0+ZmlsZUNvdW50OjEpOyRpKyspCiAgICAgIHsKCSRkZXN0cyAuPSAgJzx0cj48dGQ+Jy4KCSAgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2Rlc3RpbmF0aW9uX2Rpc3BsYXluYW1lW10nLCR0aGlzLT5HZXRPcHRpb25FbGVtZW50KCdkZXN0aW5hdGlvbl9kaXNwbGF5bmFtZScsJGkpLDI1LDEyOCkuCgkgICc8L3RkPjx0ZD4nLgoJICAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZGVzdGluYXRpb25fdmFsdWVbXScsJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ2Rlc3RpbmF0aW9uX3ZhbHVlJywkaSksMjUsMTI4KS4nPC90ZD48dGQ+Jy4KCSAgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2Rlc3RpbmF0aW9uX2ZpbGVuYW1lW10nLCR0aGlzLT5HZXRPcHRpb25FbGVtZW50KCdkZXN0aW5hdGlvbl9maWxlbmFtZScsJGkpLDI1LDEyOCkuCgkgICc8L3RkPjx0ZD4nLgoJICAkbW9kLT5DcmVhdGVJbnB1dENoZWNrYm94KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfZGVsXycuJGksICRpLC0xKS4KCSAgJzwvdGQ+PC90cj4nOwogICAgICB9CiAgICAkZGVzdHMgLj0gJzwvdGFibGU+JzsKCgogICAgJG1haW4gPSBhcnJheSgpOwogICAgJGFkdiA9IGFycmF5KCk7CiAgICAkcGFybU1haW4gPSBhcnJheSgpOwogICAgJHBhcm1NYWluWydvcHRfZmlsZV90ZW1wbGF0ZSddWydpc19vbmVsaW5lJ109dHJ1ZTsKICAgICRwYXJtTWFpblsnb3B0X2ZpbGVfaGVhZGVyJ11bJ2lzX29uZWxpbmUnXT10cnVlOwogICAgJHBhcm1NYWluWydvcHRfZmlsZV9oZWFkZXInXVsnaXNfaGVhZGVyJ109dHJ1ZTsKICAgIGFycmF5X3B1c2goJG1haW4sYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfc2VsZWN0X29uZV9tZXNzYWdlJyksCgkJCSAgICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsIAoJCQkJCQkgJ2ZicnBfb3B0X3NlbGVjdF9vbmUnLAoJICAgICR0aGlzLT5HZXRPcHRpb24oJ3NlbGVjdF9vbmUnLCRtb2QtPkxhbmcoJ3NlbGVjdF9vbmUnKSksMjUsMTI4KSkpOwogICAgYXJyYXlfcHVzaCgkbWFpbixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9kaXJlY3Rvcl9kZXRhaWxzJyksJGRlc3RzKSk7CgogICAgYXJyYXlfcHVzaCgkYWR2LGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2ZpbGVfcGF0aCcpLAoJCQkgICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsCgkJCQkJCSdmYnJwX29wdF9maWxlX3BhdGgnLAoJCQkJCQkkdGhpcy0+R2V0T3B0aW9uKCdmaWxlX3BhdGgnLCR0aGlzLT5kZmx0X2ZpbGVwYXRoKSw0MCwxMjgpKSk7CiAgICBhcnJheV9wdXNoKCRhZHYsYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZmlsZV90ZW1wbGF0ZScpLAoJCQkgIGFycmF5KCRtb2QtPkNyZWF0ZVRleHRBcmVhKGZhbHNlLCAkZm9ybURlc2NyaXB0b3IsCgkJCQkJCSAgICAgaHRtbHNwZWNpYWxjaGFycygkdGhpcy0+R2V0T3B0aW9uKCdmaWxlX3RlbXBsYXRlJywnJykpLCdmYnJwX29wdF9maWxlX3RlbXBsYXRlJywgJ21vZHVsZV9mYl9hcmVhX3Nob3J0JywgJycsJycsMCwwKSwkdGhpcy0+Zm9ybV9wdHItPkFkbWluVGVtcGxhdGVIZWxwKCRmb3JtRGVzY3JpcHRvciwkcGFybU1haW4pKSkpOwogICAgYXJyYXlfcHVzaCgkYWR2LGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2ZpbGVfaGVhZGVyJyksCgkJCSAgJG1vZC0+Q3JlYXRlVGV4dEFyZWEoZmFsc2UsICRmb3JtRGVzY3JpcHRvciwKCQkJCQkgICAgICAgaHRtbHNwZWNpYWxjaGFycygkdGhpcy0+R2V0T3B0aW9uKCdmaWxlX2hlYWRlcicsJycpKSwnZmJycF9vcHRfZmlsZV9oZWFkZXInLCAnbW9kdWxlX2ZiX2FyZWFfc2hvcnQnLCAnJywnJywwLDApKSk7CgogICAgcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwogIH0KCn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionPageRedirector.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkRpc3Bvc2l0aW9uUGFnZVJlZGlyZWN0b3IgZXh0ZW5kcyBmYkZpZWxkQmFzZSB7CgoJdmFyICRhZGRyZXNzQ291bnQ7Cgl2YXIgJGFkZHJlc3NBZGQ7CgoJZnVuY3Rpb24gZmJEaXNwb3NpdGlvblBhZ2VSZWRpcmVjdG9yKCYkZm9ybV9wdHIsICYkcGFyYW1zKQoJewogCQkkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gJ0Rpc3Bvc2l0aW9uUGFnZVJlZGlyZWN0b3InOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+Tm9uUmVxdWlyYWJsZUZpZWxkID0gZmFsc2U7CgkJJHRoaXMtPklzRGlzcG9zaXRpb24gPSB0cnVlOwoJCSR0aGlzLT5IYXNBZGRPcCA9IHRydWU7CgkJJHRoaXMtPkhhc0RlbGV0ZU9wID0gdHJ1ZTsKCQkkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoCiAgICAgICAJCSk7CiAgICAgICAJJHRoaXMtPmFkZHJlc3NBZGQgPSAwOwoJfQoKCWZ1bmN0aW9uIEdldE9wdGlvbkFkZEJ1dHRvbigpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQlyZXR1cm4gJG1vZC0+TGFuZygnYWRkX2Rlc3RpbmF0aW9uJyk7Cgl9CgoJZnVuY3Rpb24gR2V0T3B0aW9uRGVsZXRlQnV0dG9uKCkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCXJldHVybiAkbW9kLT5MYW5nKCdkZWxldGVfZGVzdGluYXRpb24nKTsKCX0KCglmdW5jdGlvbiBEb09wdGlvbkFkZCgmJHBhcmFtcykKCXsKCQkkdGhpcy0+YWRkcmVzc0FkZCA9IDE7Cgl9CgoJZnVuY3Rpb24gRG9PcHRpb25EZWxldGUoJiRwYXJhbXMpCgl7CgkJJGRlbGNvdW50ID0gMDsKCQlmb3JlYWNoICgkcGFyYW1zIGFzICR0aGlzS2V5PT4kdGhpc1ZhbCkKCQkJewoJCQlpZiAoc3Vic3RyKCR0aGlzS2V5LDAsOSkgPT0gJ2ZicnBfZGVsXycpCgkJCQl7CgkJCQkkdGhpcy0+UmVtb3ZlT3B0aW9uRWxlbWVudCgnZGVzdGluYXRpb25fcGFnZScsICR0aGlzVmFsIC0gJGRlbGNvdW50KTsKCQkJCSR0aGlzLT5SZW1vdmVPcHRpb25FbGVtZW50KCdkZXN0aW5hdGlvbl9zdWJqZWN0JywgJHRoaXNWYWwgLSAkZGVsY291bnQpOwoJCQkJJGRlbGNvdW50Kys7CgkJCQl9CgkJCX0KCX0KCglmdW5jdGlvbiBjb3VudEFkZHJlc3NlcygpCgl7CgkJCSR0bXAgPSAkdGhpcy0+R2V0T3B0aW9uUmVmKCdkZXN0aW5hdGlvbl9wYWdlJyk7CgkJCWlmIChpc19hcnJheSgkdG1wKSkKCQkJCXsKCSAgICAgICAgCSR0aGlzLT5hZGRyZXNzQ291bnQgPSBjb3VudCgkdG1wKTsKCSAgICAgICAgCX0KCSAgICAgICAgZWxzZWlmICgkdG1wICE9PSBmYWxzZSkKCSAgICAgICAgCXsKCSAgICAgICAgCSR0aGlzLT5hZGRyZXNzQ291bnQgPSAxOwoJICAgICAgICAJfQoJICAgICAgICBlbHNlCgkgICAgICAgIAl7CgkgICAgICAgIAkkdGhpcy0+YWRkcmVzc0NvdW50ID0gMDsKCSAgICAgICAgCX0KCX0KCglmdW5jdGlvbiBHZXRGaWVsZElucHV0KCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRqcyA9ICR0aGlzLT5HZXRPcHRpb24oJ2phdmFzY3JpcHQnLCcnKTsKCgkJLy8gd2h5IGFsbCB0aGlzPyBBc3NvY2lhdGl2ZSBhcnJheXMgYXJlIG5vdCBndWFyYW50ZWVkIHRvIHByZXNlcnZlCgkJLy8gb3JkZXIsIGV4Y2VwdCBpbiAiY2hyb25vbG9naWNhbCIgY3JlYXRpb24gb3JkZXIuCgkJJHNvcnRlZCA9YXJyYXkoKTsKCQlpZiAoJHRoaXMtPkdldE9wdGlvbignc2VsZWN0X29uZScsJycpICE9ICcnKQoJCQl7CgkJCSRzb3J0ZWRbJyAnLiR0aGlzLT5HZXRPcHRpb24oJ3NlbGVjdF9vbmUnLCcnKV09Jyc7CgkJCX0KCQllbHNlCgkJCXsKCQkJJHNvcnRlZFsnICcuJG1vZC0+TGFuZygnc2VsZWN0X29uZScpXT0nJzsKCQkJfQoJCSRzdWJqZWN0cyA9ICR0aGlzLT5HZXRPcHRpb25SZWYoJ2Rlc3RpbmF0aW9uX3N1YmplY3QnKTsKCgkJaWYgKGNvdW50KCRzdWJqZWN0cykgPiAxKQoJCQl7CgkJCWZvcigkaT0wOyRpPGNvdW50KCRzdWJqZWN0cyk7JGkrKykKCQkJCXsKCQkJCSRzb3J0ZWRbJHN1YmplY3RzWyRpXV09KCRpKzEpOwoJCQkJfQoJCQl9CgkJZWxzZQoJCQl7CgkJCSRzb3J0ZWRbJHN1YmplY3RzXSA9ICcxJzsKCQkJfQoJCXJldHVybiAkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ2ZicnBfXycuJHRoaXMtPklkLCAkc29ydGVkLCAtMSwgJHRoaXMtPlZhbHVlLCAkanMuJHRoaXMtPkdldENTU0lkVGFnKCkpOwoJfQoKCgogICAgZnVuY3Rpb24gU3RhdHVzSW5mbygpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkb3B0ID0gJHRoaXMtPkdldE9wdGlvbignZGVzdGluYXRpb25fcGFnZScsJycpOwoJCQoJCWlmIChpc19hcnJheSgkb3B0KSkKCQkgIHsKCQkgICAgICAkbnVtID0gY291bnQoJG9wdCk7CgkJICB9CgkJZWxzZWlmICgkb3B0ICE9ICcnKQoJCQl7CgkJCSRudW0gPSAxOwoJCQl9CgkJZWxzZQoJCSAgewogICAgICAgICAgJG51bSA9IDA7CiAgICAgICAgICB9CiAgICAgICAgICRyZXQ9ICRtb2QtPkxhbmcoJ2Rlc3RpbmF0aW9uX2NvdW50JywkbnVtKTsKICAgICAgLy8gICRyZXQuPSAkdGhpcy0+VGVtcGxhdGVTdGF0dXMoKTsKICAgICAgICByZXR1cm4gJHJldDsKCX0KCQoJZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQoJewogICAJCWdsb2JhbCAkZ0NtczsKCQlnbG9iYWwgJGlkOwogICAgCQkkY29udGVudG9wcyA9ICRnQ21zLT5HZXRDb250ZW50T3BlcmF0aW9ucygpOwoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgoJCSR0aGlzLT5jb3VudEFkZHJlc3NlcygpOwoJCWlmICgkdGhpcy0+YWRkcmVzc0FkZCA+IDApCgkJCXsKCQkJJHRoaXMtPmFkZHJlc3NDb3VudCArPSAkdGhpcy0+YWRkcmVzc0FkZDsKCQkJJHRoaXMtPmFkZHJlc3NBZGQgPSAwOwoJCQl9CgkJJGRlc3RzID0gJzx0YWJsZSBjbGFzcz0ibW9kdWxlX2ZiX3RhYmxlIj48dHI+PHRoPicuJG1vZC0+TGFuZygndGl0bGVfc2VsZWN0aW9uX3N1YmplY3QnKS4nPC90aD48dGg+Jy4KCQkJJG1vZC0+TGFuZygndGl0bGVfZGVzdGluYXRpb25fcGFnZScpLic8L3RoPjx0aD4nLgoJCQkkbW9kLT5MYW5nKCd0aXRsZV9kZWxldGUnKS4nPC90aD48L3RyPic7CgoKCQlmb3IgKCRpPTA7JGk8KCR0aGlzLT5hZGRyZXNzQ291bnQ+MT8kdGhpcy0+YWRkcmVzc0NvdW50OjEpOyRpKyspCgkJCXsKCQkJJGRlc3RzIC49ICAnPHRyPjx0ZD4nOwogICAgICAgICAgICAJCSRkZXN0cyAuPSAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZGVzdGluYXRpb25fc3ViamVjdFtdJywkdGhpcy0+R2V0T3B0aW9uRWxlbWVudCgnZGVzdGluYXRpb25fc3ViamVjdCcsJGkpLDI1LDEyOCk7CiAgICAgICAgICAgIAkJJGRlc3RzIC49ICc8L3RkPjx0ZD4nOwoJCQkkZGVzdHMgLj0gICAgIAkJCSRjb250ZW50b3BzLT5DcmVhdGVIaWVyYXJjaHlEcm9wZG93bignJywkdGhpcy0+R2V0T3B0aW9uRWxlbWVudCgnZGVzdGluYXRpb25fcGFnZScsJGkpLCAkaWQuJ2ZicnBfb3B0X2Rlc3RpbmF0aW9uX3BhZ2VbXScpOwoJCQkkZGVzdHMgLj0gJzwvdGQ+PHRkPic7CiAgICAgICAgICAgIAkJJGRlc3RzIC49ICRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9kZWxfJy4kaSwgJGksLTEpOwogICAgICAgICAgICAgCQkkZGVzdHMgLj0gJzwvdGQ+PC90cj4nOwogICAgICAgICAgICAJCS8vJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ29wdF9kZXN0aW5hdGlvbl9wYWdlW10nLCR0aGlzLT5HZXRPcHRpb25FbGVtZW50KCdkZXN0aW5hdGlvbl9wYWdlJywkaSksMjUsMTI4KS4KCgkJCX0KCQkkZGVzdHMgLj0gJzwvdGFibGU+JzsKCQkvLyBsaXN0KCRtYWluLCRhZHYpID0gJHRoaXMtPlByZVBvcHVsYXRlQWRtaW5Gb3JtQmFzZSgkZm9ybURlc2NyaXB0b3IpOwoJCSRhZHYgPSBhcnJheSgpOwoJCSRtYWluID0gYXJyYXkoKTsKCQlhcnJheV9wdXNoKCRtYWluLGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3NlbGVjdF9vbmVfbWVzc2FnZScpLAoJCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfc2VsZWN0X29uZScsCgkJCSR0aGlzLT5HZXRPcHRpb24oJ3NlbGVjdF9vbmUnLCRtb2QtPkxhbmcoJ3NlbGVjdF9vbmUnKSksMjUsMTI4KSkpOwoKCQlhcnJheV9wdXNoKCRtYWluLGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2RpcmVjdG9yX2RldGFpbHMnKSwkZGVzdHMpKTsKCQlyZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7Cgl9CgoJZnVuY3Rpb24gUG9zdFBvcHVsYXRlQWRtaW5Gb3JtKCYkbWFpbkFycmF5LCAmJGFkdkFycmF5KQoJewogICAgICAkdGhpcy0+SGlkZGVuRGlzcG9zaXRpb25GaWVsZHMoJG1haW5BcnJheSwgJGFkdkFycmF5KTsKCX0KCglmdW5jdGlvbiBHZXRIdW1hblJlYWRhYmxlVmFsdWUoJGFzX3N0cmluZykKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCWlmICgkdGhpcy0+SGFzVmFsdWUoKSkKCQkJewoJCQkkcmV0ID0gJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ2Rlc3RpbmF0aW9uX3BhZ2UnLCgkdGhpcy0+VmFsdWUgLSAxKSk7CgkJCX0KCQllbHNlCgkJCXsKCQkJJHJldCA9ICRtb2QtPkxhbmcoJ3Vuc3BlY2lmaWVkJyk7CgkJCX0KCQlpZiAoJGFzX3N0cmluZykKCQkJewoJCQlyZXR1cm4gJHJldDsKCQkJfQoJCWVsc2UKCQkJewoJCQlyZXR1cm4gYXJyYXkoJHJldCk7CgkJCX0KCgl9CgkKCWZ1bmN0aW9uIERpc3Bvc2VGb3JtKCRyZXR1cm5pZCkKCXsKCQkvLyBJZiBuZWVkZWQsIG1ha2Ugc3VyZSBvdGhlciBkaXNwb3NpdGlvbnMgZ2V0IHJ1biAxc3QuU2VlICBEaXNwb3NlKCRyZXR1cm5pZCkgaW4gRm9ybSBjbGFzcy4KCQkvLyBOb3QgcmVhbGx5IG5lZWRlZCwgdGhlICdGcm9tRW1haWxBZGRyZXNzRmllbGQnIGFscmVhZHkgY2FsbHMgbW9kaWZ5IG90aGVyIGZpZWxkcywgSnVzdCBuZWVkIHRvIG1ha2Ugc3VyZSB0aGUgdGhlIGVtYWlsIHJlc3VsdHMgdGhpbmdzIGFyZSBsaXN0ZWQgYmVmb3JlIHRoaXMgb25lIGFuZCBldmVyeXRoaW5nIHNob3VsZCBiZSBmaW5lLgoJCS8vIHByaW50X3IoJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ2Rlc3RpbmF0aW9uX3BhZ2UnLCgkdGhpcy0+VmFsdWUgLSAxKSkpOwogICAgCQlnbG9iYWwgJGdDbXM7CiAgICAJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAJCSRtb2QtPlJlZGlyZWN0Q29udGVudCgkdGhpcy0+R2V0T3B0aW9uRWxlbWVudCgnZGVzdGluYXRpb25fcGFnZScsKCR0aGlzLT5WYWx1ZSAtIDEpKSk7CgkJLy9yZXR1cm4gJHRoaXMtPlNlbmRGb3JtKCR0aGlzLT5HZXRPcHRpb25FbGVtZW50KCdkZXN0aW5hdGlvbl9wYWdlJywoJHRoaXMtPlZhbHVlIC0gMSkpLAoJCS8vCSR0aGlzLT5HZXRPcHRpb25FbGVtZW50KCdkZXN0aW5hdGlvbl9zdWJqZWN0JywoJHRoaXMtPlZhbHVlIC0gMSkpKTsKCQlyZXR1cm4gYXJyYXkodHJ1ZSwgJ2V2ZXJ5dGhpbmcgd29ya2VkJyk7Cgl9CgoKCWZ1bmN0aW9uIEFkbWluVmFsaWRhdGUoKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAJCSRvcHQgPSAkdGhpcy0+R2V0T3B0aW9uKCdkZXN0aW5hdGlvbl9wYWdlJyk7CiAgCQlsaXN0KCRyZXQsICRtZXNzYWdlKSA9ICR0aGlzLT5Eb2VzRmllbGRIYXZlTmFtZSgpOwoJCWlmICgkcmV0KQoJCQl7CgkJCWxpc3QoJHJldCwgJG1lc3NhZ2UpID0gJHRoaXMtPkRvZXNGaWVsZE5hbWVFeGlzdCgpOwoJCQl9CQkKCQlpZiAoY291bnQoJG9wdCkgPT0gMCkKCQkJewoJCQkkcmV0ID0gZmFsc2U7CgkJCSRtZXNzYWdlIC49ICRtb2QtPkxhbmcoJ211c3Rfc3BlY2lmeV9vbmVfZGVzdGluYXRpb24nKS4nPC9icj4nOwoJCQl9CgkgICAgICAgIHJldHVybiBhcnJheSgkcmV0LCRtZXNzYWdlKTsKICAgIH0KCn0KPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionUserTag.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkRpc3Bvc2l0aW9uVXNlclRhZyBleHRlbmRzICBmYkZpZWxkQmFzZSAKewoKICBmdW5jdGlvbiBmYkRpc3Bvc2l0aW9uVXNlclRhZygmJGZvcm1fcHRyLCAmJHBhcmFtcykKICB7CiAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICRtb2QgPSAkZm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkdGhpcy0+VHlwZSA9ICdEaXNwb3NpdGlvblVzZXJUYWcnOwogICAgJHRoaXMtPklzRGlzcG9zaXRpb24gPSB0cnVlOwogICAgJHRoaXMtPk5vblJlcXVpcmFibGVGaWVsZCA9IHRydWU7CiAgICAkdGhpcy0+RGlzcGxheUluRm9ybSA9IGZhbHNlOwogICAgJHRoaXMtPkRpc3BsYXlJblN1Ym1pc3Npb24gPSBmYWxzZTsKICAgICR0aGlzLT5zb3J0YWJsZSA9IGZhbHNlOwogIH0KCiAgZnVuY3Rpb24gU3RhdHVzSW5mbygpCiAgewogICAgJG1vZD0kdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICByZXR1cm4gJHRoaXMtPkdldE9wdGlvbigndWR0bmFtZScsJG1vZC0+TGFuZygndW5zcGVjaWZpZWQnKSk7CiAgfQoKICBmdW5jdGlvbiBEaXNwb3NlRm9ybSgkcmV0dXJuaWQpCiAgewogICAgJG1vZD0kdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkb3RoZXJzID0gJHRoaXMtPmZvcm1fcHRyLT5HZXRGaWVsZHMoKTsKICAgICR1bnNwZWMgPSAkdGhpcy0+Zm9ybV9wdHItPkdldEF0dHIoJ3Vuc3BlY2lmaWVkJywkbW9kLT5MYW5nKCd1bnNwZWNpZmllZCcpKTsKICAgICRwYXJhbXMgPSBhcnJheSgpOwogICAgaWYgKCR0aGlzLT5HZXRPcHRpb24oJ2V4cG9ydF9mb3JtJywnMCcpID09ICcxJykKICAgICAgewogICAgICAkcGFyYW1zWydGT1JNJ10gPSAkdGhpcy0+Zm9ybV9wdHI7CiAgICAgIH0KICAgIGZvcigkaT0wOyRpPGNvdW50KCRvdGhlcnMpOyRpKyspCiAgICAgIHsKCSRyZXBsVmFsID0gJyc7CglpZiAoJG90aGVyc1skaV0tPkRpc3BsYXlJblN1Ym1pc3Npb24oKSkKCSAgewoJICAgICRyZXBsVmFsID0gJG90aGVyc1skaV0tPkdldEh1bWFuUmVhZGFibGVWYWx1ZSgpOwoJICAgIGlmICgkcmVwbFZhbCA9PSAnJykKCSAgICAgIHsKCQkgICAgJHJlcGxWYWwgPSAkdW5zcGVjOwoJICAgICAgfQoJICB9CiAgICRuYW1lID0gJG90aGVyc1skaV0tPkdldFZhcmlhYmxlTmFtZSgpOwoJJHBhcmFtc1skbmFtZV0gPSAkcmVwbFZhbDsKCSRpZCA9ICRvdGhlcnNbJGldLT5HZXRJZCgpOwoJJHBhcmFtc1snZmxkXycuJGlkXSA9ICRyZXBsVmFsOwoJJGFsaWFzID0gJG90aGVyc1skaV0tPkdldEFsaWFzKCk7CglpZiAoIWVtcHR5KCRhbGlhcykpCiAgICAgIHsKCSAgICRwYXJhbXNbJGFsaWFzXSA9ICRyZXBsVmFsOwoJICAgfQogICB9CgoJJHRoaXMtPmZvcm1fcHRyLT5zZXRGaW5pc2hlZEZvcm1TbWFydHkoKTsKICAgIGdsb2JhbCAkZ0NtczsKICAgICR1c2VydGFnb3BzID0gJGdDbXMtPkdldFVzZXJUYWdPcGVyYXRpb25zKCk7CiAgICAkcmVzID0gJHVzZXJ0YWdvcHMtPkNhbGxVc2VyVGFnKCAkdGhpcy0+R2V0T3B0aW9uKCd1ZHRuYW1lJyksICRwYXJhbXMpOwoKICAgIGlmKCAkcmVzID09PSBGQUxTRSApCiAgICAgIHsKCXJldHVybiBhcnJheShmYWxzZSwkbW9kLT5MYW5nKCdlcnJvcl91c2VydGFnX2Rpc3Bvc2l0aW9uJykpOwogICAgICB9CiAgICByZXR1cm4gYXJyYXkodHJ1ZSwnJyk7ICAgICAgICAKICB9CgogIGZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKICB7CiAgICAkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgJG1haW4gPSBhcnJheSgpOwogICAgJGFkdiA9IGFycmF5KCk7CgogICAgZ2xvYmFsICRnQ21zOwogICAgJHVzZXJ0YWdvcHMgPSAkZ0Ntcy0+R2V0VXNlclRhZ09wZXJhdGlvbnMoKTsKICAgICR1c2VydGFncyA9ICR1c2VydGFnb3BzLT5MaXN0VXNlclRhZ3MoKTsKICAgICR1c2VydGFnbGlzdCA9IGFycmF5KCk7CiAgICBmb3JlYWNoKCAkdXNlcnRhZ3MgYXMgJGtleSA9PiAkdmFsdWUgKQogICAgICB7CgkkdXNlcnRhZ2xpc3RbJHZhbHVlXSA9ICRrZXk7CiAgICAgIH0KICAgICRtYWluW10gPSBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV91ZHRfbmFtZScpLAoJCSAgICAkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRmb3JtRGVzY3JpcHRvciwKCQkJCQkgICAgICAnZmJycF9vcHRfdWR0bmFtZScsJHVzZXJ0YWdsaXN0LC0xLAoJCQkJCSAgICAgICR0aGlzLT5HZXRPcHRpb24oJ3VkdG5hbWUnKSkpOwogICAgICAkbWFpbltdID0gYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZXhwb3J0X2Zvcm1fdG9fdWR0JyksCgkJCSAgICAgICRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2V4cG9ydF9mb3JtJywnMCcpLgogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZXhwb3J0X2Zvcm0nLAogICAgICAgICAgICAJCScxJywkdGhpcy0+R2V0T3B0aW9uKCdleHBvcnRfZm9ybScsJzAnKSkpOwogICAgcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwogIH0KCiAgZnVuY3Rpb24gUG9zdFBvcHVsYXRlQWRtaW5Gb3JtKCYkbWFpbkFycmF5LCAmJGFkdkFycmF5KQogIHsKICAgICR0aGlzLT5IaWRkZW5EaXNwb3NpdGlvbkZpZWxkcygkbWFpbkFycmF5LCAkYWR2QXJyYXkpOwogIH0KfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/FieldBase.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkZpZWxkQmFzZSB7CgogIHZhciAkSWQ9LTE7CiAgdmFyICRGb3JtSWQ7CiAgdmFyICROYW1lOwogIHZhciAkVHlwZTsKICB2YXIgJFJlcXVpcmVkPS0xOwogIHZhciAkT3JkZXJCeTsKICB2YXIgJEhpZGVMYWJlbD0tMTsKICB2YXIgJEhhc0xhYmVsPTE7CiAgdmFyICROZWVkc0Rpdj0xOwogIHZhciAkU21hcnR5RXZhbDsKCiAgdmFyICRWYWxpZGF0aW9uVHlwZXM7CiAgdmFyICRWYWxpZGF0aW9uVHlwZTsKICB2YXIgJHZhbGlkYXRlZCA9IHRydWU7CiAgdmFyICR2YWxpZGF0aW9uRXJyb3JUZXh0OwoKICB2YXIgJERpc3BsYXlJbkZvcm07CiAgdmFyICREaXNwbGF5SW5TdWJtaXNzaW9uOwogIHZhciAkRGlzcG9zaXRpb25QZXJtaXR0ZWQ7CiAgdmFyICRJc0NvbXB1dGVkT25TdWJtaXNzaW9uOwogIHZhciAkTm9uUmVxdWlyYWJsZUZpZWxkOwogIHZhciAkSGFzQWRkT3A7CiAgdmFyICRIYXNEZWxldGVPcDsKICB2YXIgJEhhc1VzZXJBZGRPcDsKICB2YXIgJEhhc1VzZXJEZWxldGVPcDsKICB2YXIgJG1vZGlmaWVzT3RoZXJGaWVsZHM7CiAgdmFyICRoYXNNdWx0aXBsZUZvcm1Db21wb25lbnRzOwogIHZhciAkbGFiZWxTdWJDb21wb25lbnRzOwoKICB2YXIgJFZhbHVlPWZhbHNlOwogIHZhciAkZm9ybV9wdHI7CiAgdmFyICRPcHRpb25zOwogIHZhciAkbG9hZGVkOwogIHZhciAkc29ydGFibGU7CgogIGZ1bmN0aW9uIGZiRmllbGRCYXNlKCYkZm9ybV9wdHIsICYkcGFyYW1zKQogIHsKCiAgICAkdGhpcy0+Zm9ybV9wdHIgPSAkZm9ybV9wdHI7CiAgICAkbW9kID0gJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgJHRoaXMtPk9wdGlvbnMgPSBhcnJheSgpOwogICAgJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwogICAgJHRoaXMtPkRpc3BsYXlJblN1Ym1pc3Npb24gPSB0cnVlOwogICAgJHRoaXMtPklzRGlzcG9zaXRpb24gPSBmYWxzZTsKICAgICR0aGlzLT5Jc0VtYWlsRGlzcG9zaXRpb24gPSBmYWxzZTsKICAgICR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgkbW9kLT5MYW5nKCd2YWxpZGF0aW9uX25vbmUnKT0+J25vbmUnKTsKICAgICR0aGlzLT5sb2FkZWQgPSBmYWxzZTsKICAgICR0aGlzLT5Ob25SZXF1aXJhYmxlRmllbGQgPSBmYWxzZTsKICAgICR0aGlzLT5IYXNBZGRPcCA9IGZhbHNlOwogICAgJHRoaXMtPkhhc0RlbGV0ZU9wID0gZmFsc2U7CiAgICAkdGhpcy0+SGFzVXNlckFkZE9wID0gZmFsc2U7CiAgICAkdGhpcy0+SGFzVXNlckRlbGV0ZU9wID0gZmFsc2U7CiAgICAkdGhpcy0+bW9kaWZpZXNPdGhlckZpZWxkcyA9IGZhbHNlOwogICAgJHRoaXMtPmhhc011bHRpcGxlRm9ybUNvbXBvbmVudHMgPSBmYWxzZTsKICAgICR0aGlzLT5EaXNwb3NpdGlvblBlcm1pdHRlZCA9IHRydWU7CiAgICAkdGhpcy0+U21hcnR5RXZhbCA9IGZhbHNlOwogICAgJHRoaXMtPmxhYmVsU3ViQ29tcG9uZW50cyA9IHRydWU7CiAgICAkdGhpcy0+c29ydGFibGUgPSB0cnVlOwogICAgJHRoaXMtPklzQ29tcHV0ZWRPblN1Ym1pc3Npb24gPSBmYWxzZTsKCiAgICBpZiAoaXNzZXQoJHBhcmFtc1snZm9ybV9pZCddKSkKICAgICAgewoJJHRoaXMtPkZvcm1JZCA9ICRwYXJhbXNbJ2Zvcm1faWQnXTsKICAgICAgfQogICAgaWYgKGlzc2V0KCRwYXJhbXNbJ2ZpZWxkX2lkJ10pKQogICAgICB7CgkkdGhpcy0+SWQgPSAkcGFyYW1zWydmaWVsZF9pZCddOwogICAgICB9CiAgICBpZiAoaXNzZXQoJHBhcmFtc1snZmJycF9maWVsZF9uYW1lJ10pKQogICAgICB7CgkkdGhpcy0+TmFtZSA9ICRwYXJhbXNbJ2ZicnBfZmllbGRfbmFtZSddOwogICAgICB9CiAgICBpZiAoaXNzZXQoJHBhcmFtc1snZmJycF9maWVsZF90eXBlJ10pKQogICAgICB7CgkkdGhpcy0+VHlwZSA9ICRwYXJhbXNbJ2ZicnBfZmllbGRfdHlwZSddOwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCSR0aGlzLT5UeXBlID0gJyc7CiAgICAgIH0KICAgIGlmIChpc3NldCgkcGFyYW1zWydmYnJwX29yZGVyX2J5J10pKQogICAgICB7CgkkdGhpcy0+T3JkZXJCeSA9ICRwYXJhbXNbJ2ZicnBfb3JkZXJfYnknXTsKICAgICAgfQogICAgaWYgKGlzc2V0KCRwYXJhbXNbJ2ZicnBfaGlkZV9sYWJlbCddKSkKICAgICAgewoJJHRoaXMtPkhpZGVMYWJlbCA9ICRwYXJhbXNbJ2ZicnBfaGlkZV9sYWJlbCddOwogICAgICB9CiAgICBlbHNlIGlmIChpc3NldCgkcGFyYW1zWydmYnJwX3NldF9mcm9tX2Zvcm0nXSkpCiAgICAgIHsKCSR0aGlzLT5IaWRlTGFiZWwgPSAwOwogICAgICB9CiAgICBpZiAoaXNzZXQoJHBhcmFtc1snZmJycF9yZXF1aXJlZCddKSkKICAgICAgewoJJHRoaXMtPlJlcXVpcmVkID0gJHBhcmFtc1snZmJycF9yZXF1aXJlZCddOwogICAgICB9CiAgICBlbHNlIGlmIChpc3NldCgkcGFyYW1zWydmYnJwX3NldF9mcm9tX2Zvcm0nXSkpCiAgICAgIHsKCSR0aGlzLT5SZXF1aXJlZCA9IDA7CiAgICAgIH0KICAgIGlmIChpc3NldCgkcGFyYW1zWydmYnJwX3ZhbGlkYXRpb25fdHlwZSddKSkKICAgICAgewoJJHRoaXMtPlZhbGlkYXRpb25UeXBlID0gJHBhcmFtc1snZmJycF92YWxpZGF0aW9uX3R5cGUnXTsKICAgICAgfQoKICAgIGZvcmVhY2ggKCRwYXJhbXMgYXMgJHRoaXNQYXJhbUtleT0+JHRoaXNQYXJhbVZhbCkKICAgICAgewoJaWYgKHN1YnN0cigkdGhpc1BhcmFtS2V5LDAsOSkgPT0gJ2ZicnBfb3B0XycpCgkgIHsKCSAgICAkdGhpc1BhcmFtS2V5ID0gc3Vic3RyKCR0aGlzUGFyYW1LZXksOSk7CgkgICAgJHRoaXMtPk9wdGlvbnNbJHRoaXNQYXJhbUtleV0gPSAkdGhpc1BhcmFtVmFsOwoJICB9CiAgICAgIH0KCiAgICBpZiAoaXNzZXQoJHBhcmFtc1snZmJycF9fJy4kdGhpcy0+SWRdKSAmJgoJKGlzX2FycmF5KCRwYXJhbXNbJ2ZicnBfXycuJHRoaXMtPklkXSkgfHwKCSBzdHJsZW4oJHBhcmFtc1snZmJycF9fJy4kdGhpcy0+SWRdKSA+IDApKQogICAgICB7CgkgICAkdGhpcy0+U2V0VmFsdWUoJHBhcmFtc1snZmJycF9fJy4kdGhpcy0+SWRdKTsKICAgICAgfQogIH0KCiAgZnVuY3Rpb24gSGFzTXVsdGlwbGVGb3JtQ29tcG9uZW50cygpCiAgewogICAgcmV0dXJuICR0aGlzLT5oYXNNdWx0aXBsZUZvcm1Db21wb25lbnRzOwogIH0KCiAgZnVuY3Rpb24gTGFiZWxTdWJDb21wb25lbnRzKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPmxhYmVsU3ViQ29tcG9uZW50czsKICB9CgogIGZ1bmN0aW9uIENvbXB1dGVPblN1Ym1pc3Npb24oKQogIHsKICAgIHJldHVybiAkdGhpcy0+SXNDb21wdXRlZE9uU3VibWlzc2lvbjsKICB9CgoKICAvLyBvdmVycmlkZSBtZSAKICBmdW5jdGlvbiBDb21wdXRlT3JkZXIoKQogIHsKICAJcmV0dXJuIDA7CiAgfQoKICBmdW5jdGlvbiBIYXNNdWx0aXBsZVZhbHVlcygpCiAgewogIAlpZiAoJHRoaXMtPmhhc011bHRpcGxlRm9ybUNvbXBvbmVudHMgfHwgJHRoaXMtPkhhc1VzZXJBZGRPcCkKICAJCXsKICAJCXJldHVybiB0cnVlOwogIAkJfQogIAllbHNlCiAgCQl7CiAgCQlyZXR1cm4gZmFsc2U7CiAgCQl9CiAgfQoKICBmdW5jdGlvbiBHZXRGaWVsZElucHV0SWQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQogIHsKICAgIHJldHVybiAkaWQuJ2ZicnBfXycuJHRoaXMtPklkOwogIH0KCiAgZnVuY3Rpb24gTW9kaWZpZXNPdGhlckZpZWxkcygpCiAgewogICAgcmV0dXJuICR0aGlzLT5tb2RpZmllc090aGVyRmllbGRzOwogIH0KCiAgLy8gbWVjaGFuaXNtIGZvciBmaWVsZHMvZGlzcG9zaXRpb25zIHRvIGluaGliaXQgb3RoZXIgZGlzcG9zaXRpb25zCiAgZnVuY3Rpb24gRGlzcG9zaXRpb25Jc1Blcm1pdHRlZCgpCiAgewogICAgcmV0dXJuICR0aGlzLT5EaXNwb3NpdGlvblBlcm1pdHRlZDsKICB9CgogIC8vIG1lY2hhbmlzbSBmb3IgZmllbGRzL2Rpc3Bvc2l0aW9ucyB0byBpbmhpYml0IG90aGVyIGRpc3Bvc2l0aW9ucwogIGZ1bmN0aW9uIFNldERpc3Bvc2l0aW9uUGVybWlzc2lvbigkcGVybWl0dGVkPXRydWUpCiAgewogICAgJHRoaXMtPkRpc3Bvc2l0aW9uUGVybWl0dGVkID0gJHBlcm1pdHRlZDsKICB9CgoKICAvLyBvdmVycmlkZSBtZSBpZiB5b3UgbmVlZCB0byBkbyBzb21ldGhpbmcgYWZ0ZXIgdGhlIGZvcm0gaGFzIGJlZW4gZGlzcG9zZWQKICBmdW5jdGlvbiBQb3N0RGlzcG9zaXRpb25BY3Rpb24oKQogIHsKCXJldHVybjsKICB9CgogIC8vIG92ZXJyaWRlIG1lIGlmIHlvdSdyZSBqdXN0IHR3ZWFraW5nIG90aGVyIGZpZWxkcyBiZWZvcmUgZGlzcG9zaXRpb24KICBmdW5jdGlvbiBNb2RpZnlPdGhlckZpZWxkcygpCiAgewogIH0KCiAgLy8gb3ZlcnJpZGUgbWUgd2l0aCBhIGZvcm0gaW5wdXQgc3RyaW5nIG9yIHNvbWV0aGluZwogIC8vIHRoaXMgc2hvdWxkIGp1c3QgYmUgdGhlIGlucHV0IHBvcnRpb24uIFRoZSB0aXRsZQogIC8vIGFuZCBhbnkgd3JhcHBpbmcgZGl2cyB3aWxsIGJlIHByb3ZpZGVkIGJ5IHRoZSBmb3JtCiAgLy8gcmVuZGVyZXIuCiAgZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCiAgewogICAgcmV0dXJuICcnOwogIH0KCiAgLy8gU2VuZHMgbG9naWMgYWxvbmcgd2l0aCBmaWVsZCwgYWxzbyBhbGxvd3Mgc21hcnR5IGxvZ2ljCiAgLy8gRG9zZW4ndCBuZWVkIG92ZXJyaWRlIGluIG1vc3QgY2FzZXMKICBmdW5jdGlvbiBHZXRGaWVsZExvZ2ljKCkgCiAgewoJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCSRjb2RlID0gJHRoaXMtPkdldE9wdGlvbignZmllbGRfbG9naWMnLCcnKTsKCQoJaWYoIWVtcHR5KCRjb2RlKSkgewoJCgkJcmV0dXJuICRtb2QtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCRjb2RlKTsKCX0KICB9CiAgCiAgLy8gb3ZlcnJpZGUgbWUgd2l0aCBzb21ldGhpbmcgdG8gc2hvdyB1c2VycwogIGZ1bmN0aW9uIFN0YXR1c0luZm8oKQogIHsKICAgIHJldHVybiAnJzsKICB9CgogIGZ1bmN0aW9uIERlYnVnRGlzcGxheSgpCiAgewogICAgJHRtcCA9ICR0aGlzLT5mb3JtX3B0cjsKICAgICR0aGlzLT5mb3JtX3B0ciA9ICdbZnJtcHRyOiAnLiR0bXAtPkdldElkKCkuJ10nOwogICAgZGVidWdfZGlzcGxheSgkdGhpcyk7CiAgICAkdGhpcy0+Zm9ybV9wdHIgPSAkdG1wOwogIH0KCiAgZnVuY3Rpb24gR2V0SWQoKQogIHsKICAgIHJldHVybiAkdGhpcy0+SWQ7CiAgfQoKICBmdW5jdGlvbiBIYXNBZGRPcCgpCiAgewogICAgcmV0dXJuICR0aGlzLT5IYXNBZGRPcDsKICB9CgogIC8vIG92ZXJyaWRlIG1lLCB3aGVuIG5lY2Vzc2FyeSBvciB1c2VmdWwKICBmdW5jdGlvbiBEb09wdGlvbkFkZCgmJHBhcmFtcykKICB7CiAgfQoKICAvLyBvdmVycmlkZSBtZQogIGZ1bmN0aW9uIEdldE9wdGlvbkFkZEJ1dHRvbigpCiAgewogICAgJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgIHJldHVybiAkbW9kLT5MYW5nKCdhZGRfb3B0aW9ucycpOwogIH0KCQogIGZ1bmN0aW9uIEhhc0RlbGV0ZU9wKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPkhhc0RlbGV0ZU9wOwogIH0KCiAgLy8gb3ZlcnJpZGUgbWUsIHdoZW4gbmVjZXNzYXJ5IG9yIHVzZWZ1bAogIGZ1bmN0aW9uIERvT3B0aW9uRGVsZXRlKCYkcGFyYW1zKQogIHsKICB9CgogIC8vIG92ZXJyaWRlIG1lCiAgZnVuY3Rpb24gR2V0T3B0aW9uRGVsZXRlQnV0dG9uKCkKICB7CiAgICAkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgcmV0dXJuICRtb2QtPkxhbmcoJ2RlbGV0ZV9vcHRpb25zJyk7CiAgfQoKICBmdW5jdGlvbiBTZXROYW1lKCRuYW1lKQogIHsKICAJJHRoaXMtPk5hbWUgPSAkbmFtZTsKICB9CiAgCiAgZnVuY3Rpb24gR2V0TmFtZSgpCiAgewogICAgcmV0dXJuICR0aGlzLT5OYW1lOwogIH0KCiAgZnVuY3Rpb24gR2V0QWxpYXMoKQogIHsKICAgIHJldHVybiAkdGhpcy0+R2V0T3B0aW9uKCdmaWVsZF9hbGlhcycsJycpOwogIH0KCiAgZnVuY3Rpb24gR2V0VmFyaWFibGVOYW1lKCkKICB7CiAgICAkbWF4dmFybGVuID0gMjQ7CiAgICAkc3RyaW5nID0gc3RydG9sb3dlcihwcmVnX3JlcGxhY2UoJy9ccysvJywnXycsJHRoaXMtPk5hbWUpKTsKICAgICRzdHJpbmcgPSBzdHJ0b2xvd2VyKHByZWdfcmVwbGFjZSgnL1xXLycsJ18nLCRzdHJpbmcpKTsKICAgIGlmIChzdHJsZW4oJHN0cmluZykgPiAkbWF4dmFybGVuKQogICAgICB7CiAgICAgICRzdHJpbmcgPSBzdWJzdHIoJHN0cmluZywwLCRtYXh2YXJsZW4pOwogICAgICAkcG9zID0gc3RycnBvcygkc3RyaW5nLCdfJyk7CiAgICAgIGlmICgkcG9zICE9PSBmYWxzZSkKICAgICAgICAgewogICAgICAgICAkc3RyaW5nID0gc3Vic3RyKCRzdHJpbmcsMCwkcG9zKTsKICAgICAgICAgfQogICAgICB9CiAgIHJldHVybiAkc3RyaW5nOwogIH0KCiAgZnVuY3Rpb24gR2V0Q1NTSWRUYWcoJHN1ZmZpeD0nJykKICB7CiAgICAgIHJldHVybiAnIGlkPSInLiR0aGlzLT5HZXRDU1NJZCgkc3VmZml4KS4nIic7CiAgfQoKICBmdW5jdGlvbiBHZXRDU1NJZCgkc3VmZml4PScnKQogIHsKCSRhbGlhcyA9ICR0aGlzLT5HZXRBbGlhcygpOwoJaWYgKGVtcHR5KCRhbGlhcykpCiAgICAgIHsKICAgICAgJGNzc2lkID0gJ2ZicnBfXycuJHRoaXMtPklkOwogICAgICBpZiAoJHRoaXMtPkhhc011bHRpcGxlRm9ybUNvbXBvbmVudHMoKSkKICAgICAgICAgewogICAgICAgICAkY3NzaWQgLj0gJ18xJzsKICAgICAgICAgfQogICAgICB9CiAgIGVsc2UKICAgICAgewogICAgICAkY3NzaWQgPSAkYWxpYXM7CiAgICAgIH0KICAgJGNzc2lkIC49ICRzdWZmaXg7CiAgIHJldHVybiAkY3NzaWQ7CiAgfQoKICBmdW5jdGlvbiBTZXRBbGlhcygkYWxpYXMpCiAgewogICAgJHRoaXMtPlNldE9wdGlvbignZmllbGRfYWxpYXMnLCRhbGlhcyk7CiAgfQoKCiAgZnVuY3Rpb24gU2V0U21hcnR5RXZhbCgkYm9vbCkKICB7CiAgCSR0aGlzLT5TbWFydHlFdmFsID0gJGJvb2w7CiAgfQogIAogIGZ1bmN0aW9uIEdldFNtYXJ0eUV2YWwoKQogIHsKICAgIHJldHVybiAkdGhpcy0+U21hcnR5RXZhbDsKICB9CgogIGZ1bmN0aW9uIEdldE9yZGVyKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPk9yZGVyQnk7CiAgfQoKICBmdW5jdGlvbiBTZXRPcmRlcigkb3JkZXIpCiAgewogICAgJHRoaXMtPk9yZGVyQnkgPSAkb3JkZXI7CiAgfQoJCiAgZnVuY3Rpb24gR2V0RmllbGRUeXBlKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPlR5cGU7CiAgfQoKICBmdW5jdGlvbiBTZXRGaWVsZFR5cGUoJHR5cGUpCiAgewogICAgcmV0dXJuICR0aGlzLT5UeXBlID0gJHR5cGU7CiAgfQoKCQogIGZ1bmN0aW9uIElzRGlzcG9zaXRpb24oKQogIHsKICAgIHJldHVybiAkdGhpcy0+SXNEaXNwb3NpdGlvbjsKICB9CgogIGZ1bmN0aW9uIElzRW1haWxEaXNwb3NpdGlvbigpCiAgewogICAgcmV0dXJuICR0aGlzLT5Jc0VtYWlsRGlzcG9zaXRpb247CiAgfQoKICBmdW5jdGlvbiBIYXNMYWJlbCgpCiAgewogICAgcmV0dXJuICR0aGlzLT5IYXNMYWJlbDsKICB9CgogIGZ1bmN0aW9uIE5lZWRzRGl2KCkKICB7CiAgICByZXR1cm4gJHRoaXMtPk5lZWRzRGl2OwogIH0KCgogIGZ1bmN0aW9uIFNldEhpZGVMYWJlbCgkaGlkZSkKICB7CiAgCSR0aGlzLT5IaWRlTGFiZWwgPSAkaGlkZT8xOjA7CiAgfQogIAkKICBmdW5jdGlvbiBIaWRlTGFiZWwoKQogIHsKICAgIHJldHVybiAoJHRoaXMtPkhpZGVMYWJlbD09MT90cnVlOmZhbHNlKTsKICB9CgogIGZ1bmN0aW9uIERpc3BsYXlJbkZvcm0oKQogIHsKICAgIHJldHVybiAkdGhpcy0+RGlzcGxheUluRm9ybTsKICB9CgogIGZ1bmN0aW9uIERpc3BsYXlJblN1Ym1pc3Npb24oKQogIHsKICAgIC8vcmV0dXJuICgkdGhpcy0+RGlzcGxheUluRm9ybSAmJiAkdGhpcy0+RGlzcGxheUluU3VibWlzc2lvbik7CiAgICByZXR1cm4gJHRoaXMtPkRpc3BsYXlJblN1Ym1pc3Npb247CiAgfQoKCQogIGZ1bmN0aW9uIElzTm9uUmVxdWlyYWJsZUZpZWxkKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPk5vblJlcXVpcmFibGVGaWVsZDsKICB9CgogIGZ1bmN0aW9uIElzUmVxdWlyZWQoKQogIHsKICAgIHJldHVybiAoJHRoaXMtPlJlcXVpcmVkID09IDE/dHJ1ZTpmYWxzZSk7CiAgfQoKICBmdW5jdGlvbiBTZXRSZXF1aXJlZCgkcmVxdWlyZWQpCiAgewogICAgJHRoaXMtPlJlcXVpcmVkID0gKCRyZXF1aXJlZD8xOjApOwogIH0KCiAgZnVuY3Rpb24gVG9nZ2xlUmVxdWlyZWQoKQogIHsKICAgICR0aGlzLT5SZXF1aXJlZCA9ICgkdGhpcy0+UmVxdWlyZWQ/MDoxKTsKICB9CgoKICBmdW5jdGlvbiBHZXRWYWxpZGF0aW9uVHlwZXMoKQogIHsKICAgIHJldHVybiAkdGhpcy0+VmFsaWRhdGlvblR5cGVzOwogIH0KCQogIGZ1bmN0aW9uIEdldFZhbGlkYXRpb25UeXBlKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPlZhbGlkYXRpb25UeXBlOwogIH0KCiAgZnVuY3Rpb24gU2V0VmFsaWRhdGlvblR5cGUoJHRoZVR5cGUpCiAgewogICAgJHRoaXMtPlZhbGlkYXRpb25UeXBlID0gJHRoZVR5cGU7CiAgfQoKICBmdW5jdGlvbiBJc1ZhbGlkKCkKICB7CiAgCXJldHVybiAkdGhpcy0+dmFsaWRhdGVkOwogIH0KICAKICBmdW5jdGlvbiBHZXRWYWxpZGF0aW9uRXJyb3JUZXh0KCkKICB7CiAgCXJldHVybiAkdGhpcy0+dmFsaWRhdGlvbkVycm9yVGV4dDsKICB9CgoKICAvLyBvdmVycmlkZSBtZSB3aXRoIGEgZGlzcGxheWFibGUgdHlwZQogIGZ1bmN0aW9uIEdldERpc3BsYXlUeXBlKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyLT5MYW5nKCdmaWVsZF90eXBlXycuJHRoaXMtPlR5cGUpOwogIH0KCgogIC8vIEJhc2UgYmFja2VuZGVkIGZpZWxkcyBjb25maWd1cmF0aW9uCiAgZnVuY3Rpb24gUHJlUG9wdWxhdGVCYXNlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvciwkZGlzcG9zZU9ubHk9MCkKICB7CiAgICAkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCgkvLyBEbyB0aGUgZmllbGQgdHlwZSBjaGVjawogICAgaWYgKCR0aGlzLT5UeXBlID09ICcnKSB7CgkJaWYgKCRkaXNwb3NlT25seSA9PSAxKSB7CgkJCgkJCSR0eXBlSW5wdXQgPSAkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfZmllbGRfdHlwZScsYXJyYXlfbWVyZ2UoYXJyYXkoJG1vZC0+TGFuZygnc2VsZWN0X3R5cGUnKT0+JycpLCRtb2QtPmRpc3BfZmllbGRfdHlwZXMpLCAtMSwnJywgJ29uY2hhbmdlPSJ0aGlzLmZvcm0uc3VibWl0KCkiJyk7CgkJfSBlbHNlIHsKCQkKCQkJJHR5cGVJbnB1dCA9ICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9maWVsZF90eXBlJyxhcnJheV9tZXJnZShhcnJheSgkbW9kLT5MYW5nKCdzZWxlY3RfdHlwZScpPT4nJyksJG1vZC0+ZmllbGRfdHlwZXMpLCAtMSwnJywgJ29uY2hhbmdlPSJ0aGlzLmZvcm0uc3VibWl0KCkiJyk7CgkJfQogICAgfSBlbHNlIHsKCQoJCSR0eXBlSW5wdXQgPSAkdGhpcy0+R2V0RGlzcGxheVR5cGUoKS4kbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkZm9ybURlc2NyaXB0b3IsICdmYnJwX2ZpZWxkX3R5cGUnLCAkdGhpcy0+VHlwZSk7CiAgICB9CgkJCgkvLyBJbml0IG1haW4gdGFiCQogICAgJG1haW4gPSBhcnJheSgKCQkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX25hbWUnKSwkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9maWVsZF9uYW1lJywgJHRoaXMtPkdldE5hbWUoKSwgNTApKSwKCQkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX3R5cGUnKSwkdHlwZUlucHV0KQoJCQkpOwoKCS8vIEluaXQgYWR2YW5jZWQgdGFiCiAgICAkYWR2ID0gYXJyYXkoKTsKCiAgICAvLyBpZiB3ZSBrbm93IG91ciB0eXBlLCB3ZSBjYW4gbG9hZCB1cCB3aXRoIGFkZGl0aW9uYWwgb3B0aW9ucwogICAgaWYgKCR0aGlzLT5UeXBlICE9ICcnKSB7CgkJCQoJCS8vIHZhbGlkYXRpb24gdHlwZXM/CgkJaWYgKGNvdW50KCR0aGlzLT5HZXRWYWxpZGF0aW9uVHlwZXMoKSkgPiAxKSB7CgkJCgkJCSR2YWxpZElucHV0ID0gJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkZm9ybURlc2NyaXB0b3IsICdmYnJwX3ZhbGlkYXRpb25fdHlwZScsICR0aGlzLT5HZXRWYWxpZGF0aW9uVHlwZXMoKSwgLTEsICR0aGlzLT5HZXRWYWxpZGF0aW9uVHlwZSgpKTsKCQl9IGVsc2UgewoJCQoJCQkkdmFsaWRJbnB1dCA9ICRtb2QtPkxhbmcoJ2F1dG9tYXRpYycpOwoJCX0KCQkJCQoJCWlmICghJHRoaXMtPklzTm9uUmVxdWlyYWJsZUZpZWxkKCkpIHsKCQkJYXJyYXlfcHVzaCgkbWFpbiwgYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZmllbGRfcmVxdWlyZWQnKSwkbW9kLT5DcmVhdGVJbnB1dENoZWNrYm94KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfcmVxdWlyZWQnLCAxLCAkdGhpcy0+SXNSZXF1aXJlZCgpKS4kbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9yZXF1aXJlZF9sb25nJykpKTsKCQl9CgkJCQkKCQlhcnJheV9wdXNoKCRtYWluLCBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF92YWxpZGF0aW9uJyksJHZhbGlkSW5wdXQpKTsKCgkJaWYoICR0aGlzLT5IYXNMYWJlbCA9PSAxICkgewoJCQkKCQkJYXJyYXlfcHVzaCgkYWR2LCBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9oaWRlX2xhYmVsJyksJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX2hpZGVfbGFiZWwnLCAxLCAkdGhpcy0+SGlkZUxhYmVsKCkpLiRtb2QtPkxhbmcoJ3RpdGxlX2hpZGVfbGFiZWxfbG9uZycpKSk7CgkJfQoKCQkkYWxpYXMgPSAkdGhpcy0+R2V0T3B0aW9uKCdmaWVsZF9hbGlhcycsJycpOwoJCWlmICgkYWxpYXMgPT0gJycpIHsKCQkJJGFsaWFzID0gJ2ZsZCcuJHRoaXMtPkdldElkKCk7CgkJfQoJCQoJCWFycmF5X3B1c2goJGFkdiwgYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZmllbGRfYWxpYXMnKSwkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZmllbGRfYWxpYXMnLCAkdGhpcy0+R2V0T3B0aW9uKCdmaWVsZF9hbGlhcycpLCA1MCkpKTsJCQkKCgkJaWYgKCR0aGlzLT5EaXNwbGF5SW5Gb3JtKCkpIHsKCQkJYXJyYXlfcHVzaCgkYWR2LGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX2Nzc19jbGFzcycpLCRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9jc3NfY2xhc3MnLCAkdGhpcy0+R2V0T3B0aW9uKCdjc3NfY2xhc3MnKSwgNTApKSk7CgkJCWFycmF5X3B1c2goJGFkdixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9oZWxwdGV4dCcpLCRtb2QtPkNyZWF0ZVRleHRBcmVhKGZhbHNlLCAkZm9ybURlc2NyaXB0b3IsICR0aGlzLT5HZXRPcHRpb24oJ2hlbHB0ZXh0JywnJyksICdmYnJwX29wdF9oZWxwdGV4dCcsJ21vZHVsZV9mYl9hcmVhX3Nob3J0JykpKTsKCQkJYXJyYXlfcHVzaCgkYWR2LGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX2phdmFzY3JpcHQnKSwkbW9kLT5DcmVhdGVUZXh0QXJlYShmYWxzZSwgJGZvcm1EZXNjcmlwdG9yLCAkdGhpcy0+R2V0T3B0aW9uKCdqYXZhc2NyaXB0JywnJyksIAoJCQkJCQkJCSdmYnJwX29wdF9qYXZhc2NyaXB0JywnbW9kdWxlX2ZiX2FyZWFfc2hvcnQnLCcnLCcnLCAnJywgJzgwJywgJzE1JywnJywnanMnKS4nPGJyIC8+Jy4kbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9qYXZhc2NyaXB0X2xvbmcnKSkpOwoJCQlhcnJheV9wdXNoKCRhZHYsYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZmllbGRfbG9naWMnKSwkbW9kLT5DcmVhdGVUZXh0QXJlYShmYWxzZSwgJGZvcm1EZXNjcmlwdG9yLCAkdGhpcy0+R2V0T3B0aW9uKCdmaWVsZF9sb2dpYycsJycpLCAKCQkJCQkJCQknZmJycF9vcHRfZmllbGRfbG9naWMnLCdtb2R1bGVfZmJfYXJlYV9zaG9ydCcsJycsJycsICcnLCAnODAnLCAnMTUnKS4nPGJyIC8+Jy4kbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9sb2dpY19sb25nJykpKTsKCQl9CgkKICAgIH0gZWxzZSB7CgkKCQkvLyBubyBhZHZhbmNlZCBvcHRpb25zIHVudGlsIHdlIGtub3cgb3VyIHR5cGUKCQlhcnJheV9wdXNoKCRhZHYsYXJyYXkoJG1vZC0+TGFuZygndGFiX2FkdmFuY2VkJyksJG1vZC0+TGFuZygnbm90aWNlX3NlbGVjdF90eXBlJykpKTsKICAgIH0KCQkJCQogICAgcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sICdhZHYnPT4kYWR2KTsKICB9CgkKCQogIC8vIG92ZXJyaWRlIG1lLgogIC8vIEkgcmV0dXJuIGFuIHVnbHkgZGF0YSBzdHJ1Y3R1cmU6CiAgLy8gSXQncyBhbiBhc3NvY2lhdGl2ZSBhcnJheSB3aXRoIHR3byBpdGVtcywgJ21haW4nIGFuZCAnYWR2JyAoZm9yIHRoZQogIC8vIG1haW4gYW5kIGFkdmFuY2VkIHNldHRpbmcgdGFicykuCiAgLy8gRWFjaCBvZiB0aGVzZSBpcyBhbiBhc3NvY2lhdGl2ZSBhcnJheSBvZiBUaXRsZSAvIElucHV0IHZhbHVlcy4KICAvLyBUaGUgVGl0bGUgd2lsbCBiZSBkaXNwbGF5ZWQgaWYgaXQgaGFzIGEgbGVuZ3RoOwogIC8vIHRoZSAiSW5wdXQiIHNob3VsZCBiZSBhIEZvcm0gaW5wdXQgZm9yIHRoYXQgZmllbGQgYXR0cmlidXRlL29wdGlvbgogIGZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKICB7CiAgICByZXR1cm4gYXJyYXkoKTsKICB9CgogIC8vIG92ZXJyaWRlIG1lLgogIC8vIFRoaXMgZ2l2ZXMgeW91IGEgY2hhbmNlIHRvIGFsdGVyIHRoZSBhcnJheSBjb250ZW50cyBiZWZvcmUKICAvLyB0aGV5IGdldCByZW5kZXJlZC4gCiAgZnVuY3Rpb24gUG9zdFBvcHVsYXRlQWRtaW5Gb3JtKCYkbWFpbkFycmF5LCAmJGFkdkFycmF5KQogIHsKICB9CgoKICAvLyBvdmVycmlkZSBtZSBhcyBuZWNlc3NhcnkKICBmdW5jdGlvbiBQb3N0QWRtaW5TdWJtaXRDbGVhbnVwKCkKICB7CiAgfQoKICAvLyBvdmVycmlkZSBtZSBhcyBuZWNlc3NhcnkKICBmdW5jdGlvbiBQb3N0RmllbGRTYXZlUHJvY2VzcygmJHBhcmFtcykKICB7CiAgfQoKCiAgLy8gbmV3IG1ldGhvZCBhcyBvZiBPY3QgMDkgdGhhdCBzaG91bGQgaGF2ZSBiZWVuIGhlcmUgYWxsIGFsb25nLi4uCiAgZnVuY3Rpb24gUmVtb3ZlQWRtaW5GaWVsZCgmJGFycmF5LCAkZmllbGRuYW1lKQogIHsKCQkkcmVxSW5kZXggPSAtMTsKICAgIAlmb3IgKCRpPTA7JGk8Y291bnQoJGFycmF5KTskaSsrKQogICAgICAJCXsKCQkJICAgaWYgKCRhcnJheVskaV0tPnRpdGxlID09ICRmaWVsZG5hbWUpCgkgIAkJCSAgIHsKCSAgICAJCSAgICRyZXFJbmRleCA9ICRpOwoJICAJCQkgICB9CiAgICAgIAkJfQogICAgCWlmICgkcmVxSW5kZXggIT0gLTEpCiAgICAgIAkJewoJCQkgICBhcnJheV9zcGxpY2UoJGFycmF5LCAkcmVxSW5kZXgsMSk7CiAgICAgIAkJfQogIH0KCiAgZnVuY3Rpb24gQ2hlY2tGb3JBZHZhbmNlZFRhYigmJGFkdkFycmF5KQogICB7CiAgICBpZiAoY291bnQoJGFkdkFycmF5KSA9PSAwKQogICAgICB7CgkgICAkYWR2QXJyYXlbMF0tPnRpdGxlID0gJG1vZC0+TGFuZygndGFiX2FkdmFuY2VkJyk7CgkgICAkYWR2QXJyYXlbMF0tPmlucHV0ID0gJG1vZC0+TGFuZygndGl0bGVfbm9fYWR2YW5jZWRfb3B0aW9ucycpOwogICAgICB9CiAgIH0KCiAgLy8gY2xlYXIgZmllbGRzIHVudXNlZCBieSBpbnZpc2libGUgZGlzcG9zaXRpb25zCiAgZnVuY3Rpb24gSGlkZGVuRGlzcG9zaXRpb25GaWVsZHMoJiRtYWluQXJyYXksICYkYWR2QXJyYXksICRoaWRlUmVxPXRydWUpCiAgewoJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCgkvLyByZW1vdmUgdGhlICJyZXF1aXJlZCIgZmllbGQKICAgIGlmICgkaGlkZVJlcSkgewogICAgICAkdGhpcy0+UmVtb3ZlQWRtaW5GaWVsZCgkbWFpbkFycmF5LCAkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9yZXF1aXJlZCcpKTsKICAgIH0KCQogICAgLy8gcmVtb3ZlIHRoZSAiaGlkZSBuYW1lIiBmaWVsZAogICAgJHRoaXMtPlJlbW92ZUFkbWluRmllbGQoJGFkdkFycmF5LCAkbW9kLT5MYW5nKCd0aXRsZV9oaWRlX2xhYmVsJykpOwoJCiAgICAvLyByZW1vdmUgdGhlICJjc3MiIGZpZWxkCiAgICAkdGhpcy0+UmVtb3ZlQWRtaW5GaWVsZCgkYWR2QXJyYXksICRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX2Nzc19jbGFzcycpKTsKCQogICAgLy8gaGlkZSAiamF2YXNjcmlwdCIKICAgICR0aGlzLT5SZW1vdmVBZG1pbkZpZWxkKCRhZHZBcnJheSwgJG1vZC0+TGFuZygndGl0bGVfZmllbGRfamF2YXNjcmlwdCcpKTsKCQogICAgLy8gaGlkZSAibG9naWMiCiAgICAkdGhpcy0+UmVtb3ZlQWRtaW5GaWVsZCgkYWR2QXJyYXksICRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX2xvZ2ljJykpOwkKCQogICAgLy8gaGlkZSAiaGVscCB0ZXh0IgogICAgJHRoaXMtPlJlbW92ZUFkbWluRmllbGQoJGFkdkFycmF5LCAkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9oZWxwdGV4dCcpKTsKCiAgICAkdGhpcy0+Q2hlY2tGb3JBZHZhbmNlZFRhYigkYWR2QXJyYXkpOwogIH0KCQoKICAvLyBvdmVycmlkZSBtZS4gUmV0dXJucyBhbiBhcnJheTogZmlyc3QgdmFsdWUgaXMgYSB0cnVlIG9yIGZhbHNlICh3aGV0aGVyIG9yIG5vdAogIC8vIHRoZSB2YWx1ZSBpcyB2YWxpZCksIHRoZSBzZWNvbmQgaXMgYSBtZXNzYWdlCiAgZnVuY3Rpb24gVmFsaWRhdGUoKQogIHsKICAJJHRoaXMtPnZhbGlkYXRlZCA9IHRydWU7CiAgCSR0aGlzLT52YWxpZGF0ZWRFcnJvclRleHQgPSAnJzsKICAgIHJldHVybiBhcnJheSgkdGhpcy0+dmFsaWRhdGVkLCAkdGhpcy0+dmFsaWRhdGVkRXJyb3JUZXh0KTsKICB9CgoKICAvLyBvdmVycmlkZSBtZSEKICBmdW5jdGlvbiBHZXRIdW1hblJlYWRhYmxlVmFsdWUoJGFzX3N0cmluZz10cnVlKQogIHsKICAgICRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICBpZiAoJHRoaXMtPlZhbHVlICE9PSBmYWxzZSkKICAgICAgewoJCSRyZXQgPSAkdGhpcy0+VmFsdWU7CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJICAkcmV0ID0gJHRoaXMtPmZvcm1fcHRyLT5HZXRBdHRyKCd1bnNwZWNpZmllZCcsJG1vZC0+TGFuZygndW5zcGVjaWZpZWQnKSk7CgkgIH0KCWlmICgkYXNfc3RyaW5nKQoJCXsKCQlyZXR1cm4gJHJldDsKCQl9CgllbHNlCgkJewoJCXJldHVybiBhcnJheSgkcmV0KTsKCQl9CiAgfQogIAogIC8vIG92ZXJyaWRlIG1lIQogIGZ1bmN0aW9uIEdldEFsbEh1bWFuUmVhZGFibGVWYWx1ZXMoKQogIHsKCQkKCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CQoJaWYoaW5fYXJyYXkoJ29wdGlvbl92YWx1ZScsJHRoaXMtPkdldE9wdGlvbk5hbWVzKCkpKSB7CgkJCgkJaWYoY291bnQoJHRoaXMtPkdldE9wdGlvbignb3B0aW9uX3ZhbHVlJykpID4gMCkgewoJCQoJCQlyZXR1cm4gJHRoaXMtPkdldE9wdGlvbignb3B0aW9uX3ZhbHVlJyk7CgkJfQoJfQoJCglyZXR1cm4gZmFsc2U7CiAgfQkKCgogIC8vIG92ZXJyaWRlIHRoaXMgaWYgeW91IGhhdmUgc29tZSB1bnVzdWFsIGZvcm1hdCBmb3IgdmFsdWVzLAogIC8vIGVzcGVjaWFsbHkgaWYgImZhbHNlIiBpcyBhIHZhbGlkIHZhbHVlIQogIGZ1bmN0aW9uIEhhc1ZhbHVlKCRkZW55X2JsYW5rX3Jlc3BvbnNlcz1mYWxzZSkKICB7CiAgICAgaWYgKCR0aGlzLT5HZXRGaWVsZFR5cGUoKT09J1RleHRGaWVsZCcgfHwgJHRoaXMtPkdldEZpZWxkVHlwZSgpPT0nVGV4dEFyZWFGaWVsZCcpCiAgICAgICAgIHsKICAgICAgICAgLy8gZmllbGRzIHdpdGggZGVmYXVsdHMKICAgICAgICAgJGRlZiA9ICR0aGlzLT5HZXRPcHRpb24oJ2RlZmF1bHQnLCcnKTsKICAgICAgICAgaWYgKCR0aGlzLT5WYWx1ZSAhPT0gZmFsc2UgJiYKICAgICAgICAgICAgKCRkZWYgPT0gJycgfHwgJHRoaXMtPlZhbHVlICE9ICRkZWYpKQogICAgICAgICAgICB7CiAgICAgICAgICAgIGlmICgkZGVueV9ibGFua19yZXNwb25zZXMgJiYgIWlzX2FycmF5KCR0aGlzLT5WYWx1ZSkKICAgICAgICAgICAgICAgJiYgcHJlZ19tYXRjaCgnL15ccyskLycsJHRoaXMtPlZhbHVlKSkKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICBlbHNlIGlmICgkdGhpcy0+VmFsdWUgIT09IGZhbHNlKQogICAgICAgICB7CiAgICAgICAgIGlmICgkZGVueV9ibGFua19yZXNwb25zZXMgJiYgIWlzX2FycmF5KCR0aGlzLT5WYWx1ZSkKICAgICAgICAgICAgJiYgcHJlZ19tYXRjaCgnL15ccyskLycsJHRoaXMtPlZhbHVlKSkKICAgICAgICAgICAgewogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KICAgcmV0dXJuIGZhbHNlOwogIH0KCQogIC8vIHByb2JhYmx5IGRvbid0IG5lZWQgdG8gb3ZlcnJpZGUgdGhpcwogIGZ1bmN0aW9uIEdldFZhbHVlKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPlZhbHVlOwogIH0KCiAgLy8gb3ZlcnJpZGUgbWU/IFJldHVybnMgdGhlIChwb3NzaWJseSBjb252ZXJ0ZWQpIHZhbHVlIG9mIHRoZSBmaWVsZC4KICBmdW5jdGlvbiBHZXRBcnJheVZhbHVlKCRpbmRleCkKICB7CiAgICBpZiAoJHRoaXMtPlZhbHVlICE9PSBmYWxzZSkKICAgICAgewoJaWYgKGlzX2FycmF5KCR0aGlzLT5WYWx1ZSkpCgkgIHsKCSAgICBpZiAoaXNzZXQoJHRoaXMtPlZhbHVlWyRpbmRleF0pKQoJICAgICAgewoJCXJldHVybiAkdGhpcy0+VmFsdWVbJGluZGV4XTsKCSAgICAgIH0KCSAgfQoJZWxzZWlmICgkaW5kZXggPT0gMCkKCSAgewoJICAgIHJldHVybiAkdGhpcy0+VmFsdWU7CgkgIH0KICAgICAgfQogICAgcmV0dXJuIGZhbHNlOwogIH0KCiAgLy8gb3ZlcnJpZGUgbWU/IFJldHVybnMgdHJ1ZSBpZiB0aGUgdmFsdWUgaXMgY29udGFpbmVkIGluIHRoZSBWYWx1ZSBhcnJheQogIGZ1bmN0aW9uIEZpbmRBcnJheVZhbHVlKCR2YWx1ZSkKICB7CiAgICBpZiAoJHRoaXMtPlZhbHVlICE9PSBmYWxzZSkKICAgICAgewoJaWYgKGlzX2FycmF5KCR0aGlzLT5WYWx1ZSkpCgkgIHsKCSAgICByZXR1cm4gYXJyYXlfc2VhcmNoKCR2YWx1ZSwkdGhpcy0+VmFsdWUpOwoJICB9CgllbHNlaWYgKCR0aGlzLT5WYWx1ZSA9PSAkdmFsdWUpCgkgIHsKCSAgICByZXR1cm4gdHJ1ZTsKCSAgfQogICAgICB9CiAgICByZXR1cm4gZmFsc2U7CiAgfQoKICBmdW5jdGlvbiBSZXNldFZhbHVlKCkKICB7CiAgICAkdGhpcy0+VmFsdWUgPSBmYWxzZTsKICB9CgogIC8vIG92ZXJyaWRlIG1lLCBpZiBuZWNlc3NhcnkgdG8gY29udmVydCB0eXBlIG9yIHNvbWV0aGluZy4KICBmdW5jdGlvbiBTZXRWYWx1ZSgkdmFsU3RyKQogIHsKCiAgLy9lcnJvcl9sb2coJHRoaXMtPkdldE5hbWUoKS4nOicucHJpbnRfcigkdmFsU3RyLHRydWUpKTsKICAgICRmbSA9ICR0aGlzLT5mb3JtX3B0cjsKICAgIGlmICgkdGhpcy0+VmFsdWUgPT09IGZhbHNlKQogICAgICB7CiAgICAgIGlmIChpc19hcnJheSgkdmFsU3RyKSkKICAgICAgICAgewogICAgICAgICAkdGhpcy0+VmFsdWUgPSAkdmFsU3RyOwogICAgICAgICBmb3IgKCRpPTA7JGk8Y291bnQoJHRoaXMtPlZhbHVlKTskaSsrKQogICAgICAgICAgICB7CiAgICAgICAgICAgIHdoaWxlICggJHRoaXMtPlZhbHVlWyRpXSAhPSAkZm0tPnVubXlfaHRtbGVudGl0aWVzKCR0aGlzLT5WYWx1ZVskaV0pKQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICR0aGlzLT5WYWx1ZVskaV0gPSAkZm0tPnVubXlfaHRtbGVudGl0aWVzKCR0aGlzLT5WYWx1ZVskaV0pOwogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICBlbHNlCiAgICAgICAgIHsKICAgICAgICAgd2hpbGUgKCR0aGlzLT5WYWx1ZSAhPSAkZm0tPnVubXlfaHRtbGVudGl0aWVzKCR2YWxTdHIpKQogICAgICAgICAgICB7CgkgICAgICAgICAkdGhpcy0+VmFsdWUgPSAkZm0tPnVubXlfaHRtbGVudGl0aWVzKCR2YWxTdHIpOwoJICAgICAgICAgfQoJICAgICAgfQogICAgICB9CiAgICBlbHNlCiAgICAgIHsKICAgICAgd2hpbGUgKCR2YWxTdHIgIT0gJGZtLT51bm15X2h0bWxlbnRpdGllcygkdmFsU3RyKSkKICAgICAgICAgewogICAgICAgICAkdmFsU3RyID0gJGZtLT51bm15X2h0bWxlbnRpdGllcygkdmFsU3RyKTsKICAgICAgICAgfQoJaWYgKCEgaXNfYXJyYXkoJHRoaXMtPlZhbHVlKSkKCSAgewoJICAgICR0aGlzLT5WYWx1ZSA9IGFycmF5KCR0aGlzLT5WYWx1ZSk7CgkgIH0KCWFycmF5X3B1c2goJHRoaXMtPlZhbHVlLCR2YWxTdHIpOwogICAgICB9CiAgfQoKICAvLyBvdmVycmlkZSBtZSwgYXMgbmVjZXNzYXJ5CiAgZnVuY3Rpb24gQ29tcGFyZVRvKCR2YWwpCiAgewogICAgcmV0dXJuIHN0cmNtcCgkdmFsLT5HZXRIdW1hblJlYWRhYmxlVmFsdWUoKSwgJHRoaXMtPkdldEh1bWFuUmVhZGFibGVWYWx1ZSgpKTsKICB9CgogIGZ1bmN0aW9uIFJlcXVpcmVzVmFsaWRhdGlvbigpCiAgewogICAgaWYgKCR0aGlzLT5WYWxpZGF0aW9uVHlwZSA9PSAnbm9uZScpCiAgICAgIHsKCXJldHVybiBmYWxzZTsKICAgICAgfQogICAgZWxzZQogICAgICB7CglyZXR1cm4gdHJ1ZTsKICAgICAgfQogIH0KCiAgZnVuY3Rpb24gRG9lc0ZpZWxkTmFtZUV4aXN0KCkKICB7CiAgICAkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCQogICAgLy8gZmllbGQgbmFtZSBpbiB1c2U/PwogICAgaWYgKCRtb2QtPkdldFByZWZlcmVuY2UoJ3VuaXF1ZV9maWVsZG5hbWVzJywnMScpID09ICcxJyAmJgogICAgCSR0aGlzLT5mb3JtX3B0ci0+SGFzRmllbGROYW1lZCgkdGhpcy0+R2V0TmFtZSgpKSAhPSAkdGhpcy0+SWQpCiAgICAgIHsKCQlyZXR1cm4gYXJyYXkoZmFsc2UsJG1vZC0+TGFuZygnZmllbGRfbmFtZV9pbl91c2UnLCR0aGlzLT5HZXROYW1lKCkpLgoJCSc8YnIgLz4nKTsKICAgICAgfQkJCiAgICByZXR1cm4gYXJyYXkodHJ1ZSwnJyk7CiAgfQoKCiAgIGZ1bmN0aW9uIERvZXNGaWVsZEhhdmVOYW1lKCkKICAgewogICAgJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAJaWYgKCRtb2QtPkdldFByZWZlcmVuY2UoJ3JlcXVpcmVfZmllbGRuYW1lcycsJzEnKSA9PSAnMScgJiYKICAJCXN0cmxlbigkdGhpcy0+R2V0TmFtZSgpKSA8IDEpCiAgCQl7CiAgCQlyZXR1cm4gYXJyYXkoZmFsc2UsICRtb2QtPkxhbmcoJ2ZpZWxkX25vX25hbWUnKS4nPGJyIC8+Jyk7CiAgCQl9CglyZXR1cm4gYXJyYXkodHJ1ZSwnJyk7ICAgCiAgIH0KCiAgLy8gb3ZlcnJpZGUgbWUsIGlmIG5lZWRlZC4gUmV0dXJucyBhbiBhcnJheTogZmlyc3QgdmFsdWUgaXMgYSB0cnVlIG9yCiAgLy8gZmFsc2UgKHdoZXRoZXIgb3Igbm90IHRoZSB2YWx1ZSBpcyB2YWxpZCksIHRoZSBzZWNvbmQgaXMgYSBtZXNzYWdlCiAgZnVuY3Rpb24gQWRtaW5WYWxpZGF0ZSgpCiAgewogIAlsaXN0KCRyZXQsICRtZXNzYWdlKSA9ICR0aGlzLT5Eb2VzRmllbGRIYXZlTmFtZSgpOwoJaWYgKCRyZXQpCgkJewoJCWxpc3QoJHJldCwgJG1lc3NhZ2UpID0gJHRoaXMtPkRvZXNGaWVsZE5hbWVFeGlzdCgpOwoJCX0KCQkKCXJldHVybiBhcnJheSgkcmV0LCAkbWVzc2FnZSk7CiAgfQoKCiAgLy8gb3ZlcnJpZGUgbWUgaWYgeW91J3JlIGEgRm9ybSBEaXNwb3NpdGlvbiBwc2V1ZG8tZmllbGQuCiAgLy8gVGhpcyBtZXRob2QgY2FuIGRvIGp1c3QKICAvLyBhYm91dCBhbnl0aGluZyB5b3Ugd2FudCBpdCB0bywgaW4gb3JkZXIgdG8gaGFuZGxlIGZvcm0gY29udGVudHMuCiAgLy8gaXQgcmV0dXJucyBhbiBhcnJheSwgd2hlcmUgdGhlIGZpcnN0IGVsZW1lbnQgaXMgdHJ1ZSBvbiBzdWNjZXNzLAogIC8vIG9yIGZhbHNlIG9uIGZhaWx1cmUsIGFuZCB0aGUgc2Vjb25kIGVsZW1lbnQgaXMgZXhwbGFuYXRvcnkKICAvLyB0ZXh0IGZvciB0aGUgZmFpbHVyZQogIGZ1bmN0aW9uIERpc3Bvc2VGb3JtKCkKICB7CiAgICByZXR1cm4gYXJyYXkodHJ1ZSwgJycpOwogIH0JCgogIGZ1bmN0aW9uIEV4cG9ydFhNTCgkZXhwb3J0VmFsdWVzID0gZmFsc2UpCiAgewoJJHhtbHN0ciA9ICJcdDxmaWVsZCBpZD1cIiIuJHRoaXMtPklkLiJcIlxuIjsKCSR4bWxzdHIgLj0gIlx0XHR0eXBlPVwiIi4kdGhpcy0+VHlwZS4iXCJcbiI7CgkvLyR4bWxzdHIgLj0gIlx0XHRuYW1lPVwiIi5odG1sc3BlY2lhbGNoYXJzKCR0aGlzLT5OYW1lKS4iXCJcbiI7CgkkeG1sc3RyIC49ICJcdFx0dmFsaWRhdGlvbl90eXBlPVwiIi4kdGhpcy0+VmFsaWRhdGlvblR5cGUuIlwiXG4iOwoJJHhtbHN0ciAuPSAiXHRcdG9yZGVyX2J5PVwiIi4kdGhpcy0+T3JkZXJCeS4iXCJcbiI7CgkkeG1sc3RyIC49ICJcdFx0cmVxdWlyZWQ9XCIiLiR0aGlzLT5SZXF1aXJlZC4iXCJcbiI7CgkkeG1sc3RyIC49ICJcdFx0aGlkZV9sYWJlbD1cIiIuJHRoaXMtPkhpZGVMYWJlbC4iXCJcbiI7CgkkeG1sc3RyIC49ICJcdFx0ZGlzcGxheV9pbl9zdWJtaXNzaW9uPVwiIi4kdGhpcy0+RGlzcGxheUluU3VibWlzc2lvbi4iXCIiOwoJJHhtbHN0ciAuPSAiPlxuIjsKCSR4bWxzdHIgLj0gIlx0XHRcdDxmaWVsZF9uYW1lPjwhW0NEQVRBWyIuJHRoaXMtPk5hbWUuIl1dPjwvZmllbGRfbmFtZT5cbiI7CgkkeG1sc3RyIC49ICJcdFx0XHQ8b3B0aW9ucz5cbiIuJHRoaXMtPk9wdGlvbnNBc1hNTCgpLiJcdFx0XHQ8L29wdGlvbnM+XG4iOwoJaWYgKCRleHBvcnRWYWx1ZXMpCgkJewoJCQkkeG1sc3RyIC49ICJcdFx0XHQ8aHVtYW5fcmVhZGFibGVfdmFsdWU+PCFbQ0RBVEFbIi4KICAgICAgICAgICAgJHRoaXMtPkdldEh1bWFuUmVhZGFibGVWYWx1ZSgpLgogICAgICAgICAgICAiXV0+PC9odW1hbl9yZWFkYWJsZV92YWx1ZT5cbiI7CgkJfQoKCSR4bWxzdHIgLj0gIjwvZmllbGQ+XG4iOwoJcmV0dXJuICR4bWxzdHI7CiAgfQoKCgkvLyBvdmVycmlkZSBhcyBuZWNlc3NhcnkKICAgZnVuY3Rpb24gT3B0aW9uRnJvbVhNTCgkdGhlQXJyYXkpCgl7CgkJaWYgKCR0aGVBcnJheVsnbmFtZSddICE9ICdvcHRpb24nKQoJCQl7CgkJCXJldHVybjsKCQkJfQoJCWlmICghIGlzc2V0KCR0aGlzLT5PcHRpb25zKSkKCQkJewoJCQkkdGhpcy0+T3B0aW9ucyA9IGFycmF5KCk7CQoJCQl9CgkJaWYgKGlzc2V0KCR0aGlzLT5PcHRpb25zWyR0aGVBcnJheVsnYXR0cmlidXRlcyddWyduYW1lJ11dKSkKCQkJewoJCQlpZiAoISBpc19hcnJheSgkdGhpcy0+T3B0aW9uc1skdGhlQXJyYXlbJ2F0dHJpYnV0ZXMnXVsnbmFtZSddXSkpCgkJCQl7CgkJCQkkdGhpcy0+T3B0aW9uc1skdGhlQXJyYXlbJ2F0dHJpYnV0ZXMnXVsnbmFtZSddXSA9IGFycmF5KCR0aGlzLT5PcHRpb25zWyR0aGVBcnJheVsnYXR0cmlidXRlcyddWyduYW1lJ11dKTsKCQkJCX0KCQkJYXJyYXlfcHVzaCgkdGhpcy0+T3B0aW9uc1skdGhlQXJyYXlbJ2F0dHJpYnV0ZXMnXVsnbmFtZSddXSwgJHRoZUFycmF5Wydjb250ZW50J10pOwoJCQl9CgkJZWxzZQoJCQl7CgkvLwkkdGhpcy0+T3B0aW9uc1skdGhlQXJyYXlbJ25hbWUnXV0gPSAkdGhlQXJyYXlbJ2F0dHJpYnV0ZXMnXVsnbmFtZSddOwoJCQkkdGhpcy0+T3B0aW9uc1skdGhlQXJyYXlbJ2F0dHJpYnV0ZXMnXVsnbmFtZSddXSA9ICR0aGVBcnJheVsnY29udGVudCddOwoJCQl9Cgl9CgogICAvLyBvdmVycmlkZSBhcyBuZWNlc3NhcnkKICAgZnVuY3Rpb24gT3B0aW9uc0FzWE1MKCkKCXsKCQkkeG1sc3RyID0gIiI7CgkJZm9yZWFjaCgkdGhpcy0+T3B0aW9ucyBhcyAkbmFtZT0+JHZhbHVlKQoJCQl7CgkJCWlmICghIGlzX2FycmF5KCR2YWx1ZSkpCgkJCQl7CgkJCQkkdmFsdWUgPSBhcnJheSgkdmFsdWUpOwoJCQkJfQoJCQlmb3JlYWNoICgkdmFsdWUgYXMgJHRoaXNWYWwpCgkJCQl7CgkJCQkkeG1sc3RyIC49ICJcdFx0XHQ8b3B0aW9uIG5hbWU9XCIkbmFtZVwiPjwhW0NEQVRBWyIuJHRoaXNWYWwuCiAgICAgICAgICAgICAgICJdXT48L29wdGlvbj5cbiI7CgkJCQl9CgkJCX0KCQlpZiAoaXNzZXQoJHRoaXMtPlZhbHVlKSkKCQkJewoJCQlpZiAoISBpc19hcnJheSgkdGhpcy0+VmFsdWUpKQoJCQkJewoJCQkJJHRoaXNWYWwgPSBhcnJheSgkdGhpcy0+VmFsdWUpOwkKCQkJCX0KCQkJZWxzZQoJCQkJewoJCQkJJHRoaXNWYWwgPSAkdGhpcy0+VmFsdWU7CgkJCQl9CgkJCWZvcmVhY2ggKCR0aGlzVmFsIGFzICR0aGlzVmFsT3V0KQoJCQkJewoJCQkJJHhtbHN0ciAuPSAiXHRcdFx0PHZhbHVlPjwhW0NEQVRBWyIuJHRoaXNWYWxPdXQuCiAgICAgICAgICAgICAgICJdXT48L3ZhbHVlPlxuIjsKCQkJCX0KCQkJfQoJCXJldHVybiAgJHhtbHN0cjsKCX0KCgogIGZ1bmN0aW9uIEV4cG9ydE9iamVjdCgpCiAgewoJJG9iaiA9IG5ldyBzdGRDbGFzcygpOwoJJG9iai0+bmFtZSA9ICR0aGlzLT5OYW1lOwoJJG9iai0+dHlwZSA9ICR0aGlzLT5UeXBlOwoJJG9iai0+aWQgPSAkdGhpcy0+SWQ7Cgkkb2JqLT52YWx1ZSA9ICR0aGlzLT5HZXRIdW1hblJlYWRhYmxlVmFsdWUodHJ1ZSk7Cgkkb2JqLT52YWx1ZUFycmF5ID0gJHRoaXMtPkdldEh1bWFuUmVhZGFibGVWYWx1ZShmYWxzZSk7CglyZXR1cm4gJG9iajsKICB9CgoKICBmdW5jdGlvbiBHZXRPcHRpb25OYW1lcygpCiAgewogICAgcmV0dXJuIGFycmF5X2tleXMoJHRoaXMtPk9wdGlvbnMpOwogIH0KCiAgZnVuY3Rpb24gR2V0T3B0aW9uKCRvcHRpb25OYW1lLCAkZGVmYXVsdD0nJykKICB7CiAgICBpZiAoaXNzZXQoJHRoaXMtPk9wdGlvbnNbJG9wdGlvbk5hbWVdKSkKICAgICAgewoJcmV0dXJuICR0aGlzLT5PcHRpb25zWyRvcHRpb25OYW1lXTsKICAgICAgfQogICAgcmV0dXJuICRkZWZhdWx0OwogIH0KCiAgZnVuY3Rpb24gR2V0T3B0aW9uUmVmKCRvcHRpb25OYW1lKQogICAgewogICAgICBpZiAoaXNzZXQoJHRoaXMtPk9wdGlvbnNbJG9wdGlvbk5hbWVdKSkKCXsKCSAgcmV0dXJuICR0aGlzLT5PcHRpb25zWyRvcHRpb25OYW1lXTsKCX0KICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQoKCQogIGZ1bmN0aW9uIFJlbW92ZU9wdGlvbkVsZW1lbnQoJG9wdGlvbk5hbWUsICRpbmRleCkKICB7CiAgICBpZiAoaXNzZXQoJHRoaXMtPk9wdGlvbnNbJG9wdGlvbk5hbWVdKSkKICAgICAgewoJaWYgKGlzX2FycmF5KCR0aGlzLT5PcHRpb25zWyRvcHRpb25OYW1lXSkpCgkgIHsKCSAgICBpZiAoaXNzZXQoJHRoaXMtPk9wdGlvbnNbJG9wdGlvbk5hbWVdWyRpbmRleF0pKQoJICAgICAgewoJCWFycmF5X3NwbGljZSgkdGhpcy0+T3B0aW9uc1skb3B0aW9uTmFtZV0sJGluZGV4LDEpOwoJICAgICAgfQoJICB9CiAgICAgIH0KICB9CgkKICBmdW5jdGlvbiBHZXRPcHRpb25FbGVtZW50KCRvcHRpb25OYW1lLCAkaW5kZXgsICRkZWZhdWx0PSIiKQogIHsKICAgIGlmIChpc3NldCgkdGhpcy0+T3B0aW9uc1skb3B0aW9uTmFtZV0pKQogICAgICB7CglpZiAoaXNfYXJyYXkoJHRoaXMtPk9wdGlvbnNbJG9wdGlvbk5hbWVdKSkKCSAgewoJICAgIGlmIChpc3NldCgkdGhpcy0+T3B0aW9uc1skb3B0aW9uTmFtZV1bJGluZGV4XSkpCgkgICAgICB7CgkJcmV0dXJuICR0aGlzLT5PcHRpb25zWyRvcHRpb25OYW1lXVskaW5kZXhdOwoJICAgICAgfQoJICB9CgllbHNlaWYgKCRpbmRleCA9PSAwKQoJICB7CgkgICAgcmV0dXJuICR0aGlzLT5PcHRpb25zWyRvcHRpb25OYW1lXTsKCSAgfQogICAgICB9CgogICAgcmV0dXJuICRkZWZhdWx0OwkJCiAgfQoKICBmdW5jdGlvbiBTZXRPcHRpb24oJG9wdGlvbk5hbWUsICRvcHRpb25WYWx1ZSkKICB7CiAgICAkdGhpcy0+T3B0aW9uc1skb3B0aW9uTmFtZV0gPSAkb3B0aW9uVmFsdWU7CiAgfQogIAogIGZ1bmN0aW9uIFB1c2hPcHRpb25FbGVtZW50KCRvcHRpb25OYW1lLCAkdmFsKQogIHsKICAJaWYgKGlzc2V0KCR0aGlzLT5PcHRpb25zWyRvcHRpb25OYW1lXSkpCiAgCQl7CiAgCQlpZiAoaXNfYXJyYXkoJHRoaXMtPk9wdGlvbnNbJG9wdGlvbk5hbWVdKSkKICAJCQl7CiAgCQkJYXJyYXlfcHVzaCgkdGhpcy0+T3B0aW9uc1skb3B0aW9uTmFtZV0sJHZhbCk7CiAgCQkJfQogIAkJZWxzZQogIAkJCXsKICAJCQkkdGhpcy0+T3B0aW9uc1skb3B0aW9uTmFtZV0gPSBhcnJheSgkdGhpcy0+T3B0aW9uc1skb3B0aW9uTmFtZV0sJHZhbCk7CiAgCQkJfQogIAkJfQogIAllbHNlCiAgCQl7CiAgCQkkdGhpcy0+T3B0aW9uc1skb3B0aW9uTmFtZV0gPSAkdmFsOwogIAkJfQogIH0KCiAgZnVuY3Rpb24gTG9hZEZpZWxkKCYkcGFyYW1zKQogIHsKICAgIGlmICgkdGhpcy0+SWQgPiAwKQogICAgICB7CgkkdGhpcy0+TG9hZCgkdGhpcy0+SWQsICRwYXJhbXMsIHRydWUpOwogICAgICB9CiAgICByZXR1cm47CiAgfQoKICAvLyBjdXN0b21pemVkIHZlcnNpb24gb2YgQVBJIGZ1bmN0aW9uIENyZWF0ZVRleHRJbnB1dC4gVGhpcyBkb2Vzbid0IHRocm93IGluIGFuIElEIHRoYXQncyB0aGUgc2FtZSBhcyB0aGUgZmllbGQgbmFtZS4KICBmdW5jdGlvbiBUZXh0RmllbGQoJGlkLCAkbmFtZSwgJHZhbHVlPScnLCAkc2l6ZT0nMTAnLCAkbWF4bGVuZ3RoPScyNTUnLCAkYWRkdHRleHQ9JycpCnsKICAkdmFsdWUgPSBjbXNfaHRtbGVudGl0aWVzKGh0bWxfZW50aXR5X2RlY29kZSgkdmFsdWUpKTsKICAkaWQgPSBjbXNfaHRtbGVudGl0aWVzKGh0bWxfZW50aXR5X2RlY29kZSgkaWQpKTsKICAkbmFtZSA9IGNtc19odG1sZW50aXRpZXMoaHRtbF9lbnRpdHlfZGVjb2RlKCRuYW1lKSk7CiAgJHNpemUgPSAoJHNpemUhPScnP2Ntc19odG1sZW50aXRpZXMoJHNpemUpOjEwKTsKICAkbWF4bGVuZ3RoID0gKCRtYXhsZW5ndGghPScnP2Ntc19odG1sZW50aXRpZXMoJG1heGxlbmd0aCk6MjU1KTsKCiAgJHZhbHVlID0gc3RyX3JlcGxhY2UoJyInLCAnJnF1b3Q7JywgJHZhbHVlKTsKICAKICAkdGV4dCA9ICc8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iJy4kaWQuJG5hbWUuJyIgdmFsdWU9IicuJHZhbHVlLiciIHNpemU9IicuJHNpemUuJyIgbWF4bGVuZ3RoPSInLiRtYXhsZW5ndGguJyInOwogIGlmICgkYWRkdHRleHQgIT0gJycpCiAgICB7CiAgICAgICR0ZXh0IC49ICcgJyAuICRhZGR0dGV4dDsKICAgIH0KICAkdGV4dCAuPSAiIC8+XG4iOwogIHJldHVybiAkdGV4dDsKfQoKCiAgLy8gbG9hZERlZXAgYWxzbyBsb2FkcyBhbGwgb3B0aW9ucyBmb3IgYSBmaWVsZC4KICBmdW5jdGlvbiBMb2FkKCRpZCwgJiRwYXJhbXMsICRsb2FkRGVlcD1mYWxzZSkKICB7CiAgICAkc3FsID0gJ1NFTEVDVCAqIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfZmJfZmllbGQgV0hFUkUgZmllbGRfaWQ9Pyc7CiAgICBpZigkcmVzdWx0ID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyLT5kYkhhbmRsZS0+R2V0Um93KCRzcWwsIGFycmF5KCR0aGlzLT5JZCkpKQogICAgICB7CglpZiAoc3RybGVuKCR0aGlzLT5OYW1lKSA8IDEpCgkgIHsKCSAgICAkdGhpcy0+TmFtZSA9ICRyZXN1bHRbJ25hbWUnXTsKCSAgfQoJaWYgKHN0cmxlbigkdGhpcy0+VmFsaWRhdGlvblR5cGUpIDwgMSkKCSAgewoJICAgICR0aGlzLT5WYWxpZGF0aW9uVHlwZSA9ICRyZXN1bHRbJ3ZhbGlkYXRpb25fdHlwZSddOwoJICB9CgkkdGhpcy0+VHlwZSA9ICRyZXN1bHRbJ3R5cGUnXTsKCSR0aGlzLT5PcmRlckJ5ID0gJHJlc3VsdFsnb3JkZXJfYnknXTsKCWlmICgkdGhpcy0+UmVxdWlyZWQgPT0gLTEpCgkgIHsKCSAgICAkdGhpcy0+UmVxdWlyZWQgPSAkcmVzdWx0WydyZXF1aXJlZCddOwoJICB9CglpZiAoJHRoaXMtPkhpZGVMYWJlbCA9PSAtMSkKCSAgewoJICAgICR0aGlzLT5IaWRlTGFiZWwgPSAkcmVzdWx0WydoaWRlX2xhYmVsJ107CgkgIH0KICAgICAgfQogICAgZWxzZQogICAgICB7CglyZXR1cm4gZmFsc2U7CiAgICAgIH0KICAgICR0aGlzLT5sb2FkZWQgPSB0cnVlOwogICAgaWYgKCRsb2FkRGVlcCkKICAgICAgewoJJHNxbCA9ICdTRUxFQ1QgbmFtZSwgdmFsdWUgRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpIC4KCSAgJ21vZHVsZV9mYl9maWVsZF9vcHQgV0hFUkUgZmllbGRfaWQ9PyBPUkRFUiBCWSBvcHRpb25faWQnOwoJJHJzID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyLT5kYkhhbmRsZS0+RXhlY3V0ZSgkc3FsLAoJCQkJCQkJICAgICBhcnJheSgkdGhpcy0+SWQpKTsKCSR0bXBPcHRzID0gYXJyYXkoKTsKCXdoaWxlICgkcnMgJiYgJHJlc3VsdHMgPSAkcnMtPkZldGNoUm93KCkpCgkgIHsKCSAgICBpZiAoaXNzZXQoJHRtcE9wdHNbJHJlc3VsdHNbJ25hbWUnXV0pKQoJICAgICAgewoJCWlmICghIGlzX2FycmF5KCR0bXBPcHRzWyRyZXN1bHRzWyduYW1lJ11dKSkKCQkgIHsKCQkgICAgJHRtcE9wdHNbJHJlc3VsdHNbJ25hbWUnXV0gPSBhcnJheSgkdG1wT3B0c1skcmVzdWx0c1snbmFtZSddXSk7CgkJICB9CgkJYXJyYXlfcHVzaCgkdG1wT3B0c1skcmVzdWx0c1snbmFtZSddXSwkcmVzdWx0c1sndmFsdWUnXSk7CgkgICAgICB9CgkgICAgZWxzZQoJICAgICAgewoJCSR0bXBPcHRzWyRyZXN1bHRzWyduYW1lJ11dPSRyZXN1bHRzWyd2YWx1ZSddOwoJICAgICAgfQoJICB9CgkkdGhpcy0+T3B0aW9ucyA9IGFycmF5X21lcmdlKCR0bXBPcHRzLCR0aGlzLT5PcHRpb25zKTsKCglpZiAoaXNzZXQoJHBhcmFtc1sndmFsdWVfJy4kdGhpcy0+TmFtZV0pICYmCgkgICAgKGlzX2FycmF5KCRwYXJhbXNbJ3ZhbHVlXycuJHRoaXMtPk5hbWVdKSB8fAoJICAgICBzdHJsZW4oJHBhcmFtc1sndmFsdWVfJy4kdGhpcy0+TmFtZV0pID4gMCkpCgkgIHsKCSAgICAkdGhpcy0+U2V0VmFsdWUoJHBhcmFtc1sndmFsdWVfJy4kdGhpcy0+TmFtZV0pOwoJICB9CgkKCWlmIChpc3NldCgkcGFyYW1zWyd2YWx1ZV9mbGQnLiR0aGlzLT5JZF0pICYmCgkgICAgKGlzX2FycmF5KCRwYXJhbXNbJ3ZhbHVlX2ZsZCcuJHRoaXMtPklkXSkgfHwKCSAgICAgc3RybGVuKCRwYXJhbXNbJ3ZhbHVlX2ZsZCcuJHRoaXMtPklkXSkgPiAwKSkKCSAgewoJICAgICR0aGlzLT5TZXRWYWx1ZSgkcGFyYW1zWyd2YWx1ZV9mbGQnLiR0aGlzLT5JZF0pOwoJICB9CiAgICAgIH0KCiAgICByZXR1cm4gdHJ1ZTsKICB9CgoKICBmdW5jdGlvbiBTdG9yZSgkc3RvcmVEZWVwPWZhbHNlKQogIHsKICAgICRtb2QgPSAgJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgaWYgKCR0aGlzLT5JZCA9PSAtMSkKICAgICAgewoJJHRoaXMtPklkID0gJG1vZC0+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+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkZpZWxkc2V0RW5kIGV4dGVuZHMgZmJGaWVsZEJhc2UgewoKICBmdW5jdGlvbiBmYkZpZWxkc2V0RW5kKCYkZm9ybV9wdHIsICYkcGFyYW1zKQogIHsKICAgICR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgJG1vZCA9ICRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICR0aGlzLT5UeXBlID0gJ0ZpZWxkc2V0RW5kJzsKICAgICR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKICAgICR0aGlzLT5EaXNwbGF5SW5TdWJtaXNzaW9uID0gZmFsc2U7CiAgICAkdGhpcy0+Tm9uUmVxdWlyYWJsZUZpZWxkID0gdHJ1ZTsKICAgICR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgpOyAgICAKICAgICR0aGlzLT5IYXNMYWJlbCA9IDA7CiAgICAkdGhpcy0+TmVlZHNEaXYgPSAwOwogICAgJHRoaXMtPnNvcnRhYmxlID0gZmFsc2U7CiAgfQoKICBmdW5jdGlvbiBHZXRGaWVsZElucHV0KCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkKICB7CiAgICByZXR1cm4gJzwvZmllbGRzZXQ+JzsKICB9CgogIGZ1bmN0aW9uIFN0YXR1c0luZm8oKQogIHsKICAgIHJldHVybiAnJzsKICB9CgogIGZ1bmN0aW9uIEdldEh1bWFuUmVhZGFibGVWYWx1ZSgkYXNfc3RyaW5nPXRydWUpCiAgewogICAgLy8gdGhlcmUncyBub3RoaW5nIGh1bWFuIHJlYWRhYmxlIGFib3V0IGEgZmllbGRzZXQuCiAgICAkcmV0ID0gJ1tFbmQgRmllbGRzZXQ6ICcuJHRoaXMtPlZhbHVlLiddJzsKCWlmICgkYXNfc3RyaW5nKQoJCXsKCQlyZXR1cm4gJHJldDsKCQl9CgllbHNlCgkJewoJCXJldHVybiBhcnJheSgkcmV0KTsKCQl9CiAgfQoJCiAgZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQogIHsKICAgICRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkbWFpbiA9IGFycmF5KCk7CiAgICAkYWR2ID0gYXJyYXkoKTsKICAgIHJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLCdhZHYnPT4kYWR2KTsKICB9CgoJZnVuY3Rpb24gUG9zdFBvcHVsYXRlQWRtaW5Gb3JtKCYkbWFpbkFycmF5LCAmJGFkdkFycmF5KQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAgICR0aGlzLT5SZW1vdmVBZG1pbkZpZWxkKCRhZHZBcnJheSwgJG1vZC0+TGFuZygndGl0bGVfZmllbGRfamF2YXNjcmlwdCcpKTsKICAgICR0aGlzLT5DaGVja0ZvckFkdmFuY2VkVGFiKCRhZHZBcnJheSk7Cgl9CgoKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/FieldsetStart.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkZpZWxkc2V0U3RhcnQgZXh0ZW5kcyBmYkZpZWxkQmFzZSB7CgogIGZ1bmN0aW9uIGZiRmllbGRzZXRTdGFydCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKICB7CiAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICRtb2QgPSAkZm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkdGhpcy0+VHlwZSA9ICdGaWVsZHNldFN0YXJ0JzsKICAgICR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKICAgICR0aGlzLT5EaXNwbGF5SW5TdWJtaXNzaW9uID0gZmFsc2U7CiAgICAkdGhpcy0+Tm9uUmVxdWlyYWJsZUZpZWxkID0gdHJ1ZTsKICAgICR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgpOyAgICAKICAgICR0aGlzLT5IYXNMYWJlbCA9IDA7CiAgICAkdGhpcy0+TmVlZHNEaXYgPSAwOwogICAgJHRoaXMtPnNvcnRhYmxlID0gZmFsc2U7CiAgfQoKICBmdW5jdGlvbiBHZXRGaWVsZElucHV0KCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkKICB7CiAgICAkanMgPSAkdGhpcy0+R2V0T3B0aW9uKCdqYXZhc2NyaXB0JywnJyk7CiAgICAkc3RyID0gJzxmaWVsZHNldCc7CiAgICAkY2xhc3MgPSAkdGhpcy0+R2V0T3B0aW9uKCdjc3NfY2xhc3MnKTsKICAgICRsZWdlbmQgPSAkdGhpcy0+R2V0T3B0aW9uKCdsZWdlbmQnKTsKCSRzdHIgLj0gJHRoaXMtPkdldENTU0lkVGFnKCk7CiAgICBpZiggJGNsYXNzICE9ICcnICkKICAgICAgewoJJHN0ciAuPSAiIGNsYXNzPVwiJGNsYXNzXCIiOwogICAgICB9CiAgICBpZiAoJGpzICE9ICcnKQoJCXsKCQkkc3RyIC49ICcgJy4kanM7CgkJfQogICAgJHN0ciAuPSAnPic7CiAgICBpZiggJGxlZ2VuZCAhPSAnJyApCiAgICAgIHsKCSRzdHIgLj0gJzxsZWdlbmQ+Jy4kbGVnZW5kLic8L2xlZ2VuZD4nOwogICAgICB9CiAgICByZXR1cm4gJHN0cjsKICB9CgogIGZ1bmN0aW9uIFN0YXR1c0luZm8oKQogIHsKICAgIHJldHVybiAnJzsKICB9CgogIGZ1bmN0aW9uIEdldEh1bWFuUmVhZGFibGVWYWx1ZSgkYXNfc3RyaW5nPXRydWUpCiAgewogICAgLy8gdGhlcmUncyBub3RoaW5nIGh1bWFuIHJlYWRhYmxlIGFib3V0IGEgZmllbGRzZXQuCiAgICAkcmV0ID0gJ1tCZWdpbiBGaWVsZHNldDogJy4kdGhpcy0+VmFsdWUuJ10nOwoJaWYgKCRhc19zdHJpbmcpCgkJewoJCXJldHVybiAkcmV0OwoJCX0KCWVsc2UKCQl7CgkJcmV0dXJuIGFycmF5KCRyZXQpOwoJCX0KICB9CgkKICBmdW5jdGlvbiBQcmVQb3B1bGF0ZUFkbWluRm9ybSgkZm9ybURlc2NyaXB0b3IpCiAgewogICAgJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICRtYWluID0gYXJyYXkoCgkJICBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9sZWdlbmQnKSwKICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCdmYnJwX29wdF9sZWdlbmQnLAoJCQkJCSAgICAgICR0aGlzLT5HZXRPcHRpb24oJ2xlZ2VuZCcsJycpLCA1MCkpKTsKICAgICRhZHYgPSBhcnJheSgpOwogICAgcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwogIH0KCn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/FileUploadField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLy8gRmVlZGJhY2sgRm9ybS4gMDIvMjAwNSBTakcgPGZlZWRiYWNrZm9ybV9jbXNtb2R1bGVAZm9nYm91bmQubmV0PgovLyBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCAoYykyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKLy8gVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKCmNsYXNzIGZiRmlsZVVwbG9hZEZpZWxkIGV4dGVuZHMgZmJGaWVsZEJhc2UgewoKICBmdW5jdGlvbiBmYkZpbGVVcGxvYWRGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKICB7CiAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICRtb2QgPSAkZm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkdGhpcy0+VHlwZSA9ICdGaWxlVXBsb2FkRmllbGQnOwogICAgLy8gICAgJHRoaXMtPkRpc3BsYXlUeXBlID0gJG1vZC0+TGFuZygnZmllbGRfdHlwZV9maWxlX3VwbG9hZCcpOwogICAgJHRoaXMtPlZhbGlkYXRpb25UeXBlcyA9IGFycmF5KAoJCQkJICAgJG1vZC0+TGFuZygndmFsaWRhdGlvbl9ub25lJyk9Pidub25lJyk7CgkgJHRoaXMtPnNvcnRhYmxlID0gZmFsc2U7CiAgfQoKICBmdW5jdGlvbiBHZXRGaWVsZElucHV0KCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkKICB7CiAgICAkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJJGpzID0gJHRoaXMtPkdldE9wdGlvbignamF2YXNjcmlwdCcsJycpOwogICAgJHR4dCA9ICRtb2QtPkNyZWF0ZUZpbGVVcGxvYWRJbnB1dCgkaWQsJ2ZicnBfXycuJHRoaXMtPklkLCRqcy4kdGhpcy0+R2V0Q1NTSWRUYWcoKSk7CglpZiAoJHRoaXMtPkdldE9wdGlvbignc2hvd19kZXRhaWxzJywnMCcpID09ICcxJykKCQl7CgkJICRtcyA9ICR0aGlzLT5HZXRPcHRpb24oJ21heF9zaXplJyk7CgkJIGlmICgkbXMgIT0gJycpCgkJCXsKCQkJJHR4dCAuPSAnICcuJG1vZC0+TGFuZygnbWF4aW11bV9zaXplJykuJzogJy4kbXMuJ2tiJzsJCgkJCX0KCQkgJGV4dHMgPSAkdGhpcy0+R2V0T3B0aW9uKCdwZXJtaXR0ZWRfZXh0ZW5zaW9ucycpOwoJCSBpZiAoJGV4dHMgIT0gJycpCgkJCXsKCSAgICAJJHR4dCAuPSAnICcuJG1vZC0+TGFuZygncGVybWl0dGVkX2V4dGVuc2lvbnMnKSAuICc6ICcuJGV4dHM7CgkJCX0KCQl9CiAgICByZXR1cm4gJHR4dDsKICB9CgogIGZ1bmN0aW9uIExvYWQoJGlkLCAmJHBhcmFtcywgJGxvYWREZWVwPWZhbHNlKQogIHsKICAgICRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICBwYXJlbnQ6OkxvYWQoJGlkLCRwYXJhbXMsJGxvYWREZWVwKTsKICAgIGlmKCBpc3NldCggJF9GSUxFUyApICYmIGlzc2V0KCAkX0ZJTEVTWyRtb2QtPm1vZHVsZV9pZC4nZmJycF9fJy4kdGhpcy0+SWRdICkgJiYKICAgICAgJF9GSUxFU1skbW9kLT5tb2R1bGVfaWQuJ2ZicnBfXycuJHRoaXMtPklkXVsnc2l6ZSddID4gMCApCiAgICAgIHsKCQkvLyBPa2F5LCBhIGZpbGUgd2FzIHVwbG9hZGVkCgkJJHRoaXMtPlNldFZhbHVlKCRtb2QtPm1vZHVsZV9pZC4nZmJycF9fJy4kdGhpcy0+SWQpOwogICAgICB9CiAgfQoKICBmdW5jdGlvbiBHZXRIdW1hblJlYWRhYmxlVmFsdWUoJGFzX3N0cmluZz10cnVlKQoJewoJICAgICRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJaWYgKCRhc19zdHJpbmcgJiYgaXNfYXJyYXkoJHRoaXMtPlZhbHVlKSAmJiBpc3NldCgkdGhpcy0+VmFsdWVbMV0pKQoJCQl7CgkJCXJldHVybiAkdGhpcy0+VmFsdWVbMV07CgkJCX0KCQllbHNlCgkJCXsKCQkJcmV0dXJuICR0aGlzLT5WYWx1ZTsKCQkJfQoJfQoKICBmdW5jdGlvbiBTdGF0dXNJbmZvKCkKICB7CiAgICAkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgJG1zID0gJHRoaXMtPkdldE9wdGlvbignbWF4X3NpemUnLCcnKTsKICAgICRleHRzID0gJHRoaXMtPkdldE9wdGlvbigncGVybWl0dGVkX2V4dGVuc2lvbnMnLCcnKTsKICAgICRyZXQgPSAnJzsKCWlmICgkbXMgIT0gJycpCiAgICAJewoJCSRyZXQgLj0gJG1vZC0+TGFuZygnbWF4aW11bV9zaXplJykuJzogJy4kbXMuJ2tiLCAnOwoJCX0KCWlmICgkZXh0cyAhPSAnJykKCQl7CiAJCSRyZXQgLj0gJG1vZC0+TGFuZygncGVybWl0dGVkX2V4dGVuc2lvbnMnKSAuICc6ICcuJGV4dHMuJywgJzsKCQl9CglpZiAoJHRoaXMtPkdldE9wdGlvbignZmlsZV9kZXN0aW5hdGlvbicsJycpICE9ICcnKQoJCXsKCQkkcmV0IC49ICR0aGlzLT5HZXRPcHRpb24oJ2ZpbGVfZGVzdGluYXRpb24nLCcnKTsKCQl9CiAgICByZXR1cm4gJHJldDsKICB9CiAgCiAgCiAgZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQogIHsKCWdsb2JhbCAkZ0NtczsKICAgICRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkbXMgPSAkdGhpcy0+R2V0T3B0aW9uKCdtYXhfc2l6ZScpOwogICAgJGV4dHMgPSAkdGhpcy0+R2V0T3B0aW9uKCdwZXJtaXR0ZWRfZXh0ZW5zaW9ucycpOwogICAgJHNob3cgPSAkdGhpcy0+R2V0T3B0aW9uKCdzaG93X2RldGFpbHMnLCcwJyk7CiAgICAkc2VuZHRvX3VwbG9hZHMgPSAkdGhpcy0+R2V0T3B0aW9uKCdzZW5kdG9fdXBsb2FkcycsJ2ZhbHNlJyk7CiAgICAkdXBsb2Fkc19jYXRlZ29yeSA9ICR0aGlzLT5HZXRPcHRpb24oJ3VwbG9hZHNfY2F0ZWdvcnknKTsKICAgICR1cGxvYWRzX2Rlc3RwYWdlID0gJHRoaXMtPkdldE9wdGlvbigndXBsb2Fkc19kZXN0cGFnZScpOwoKICAgICRtYWluID0gYXJyYXkoCgkJICBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9tYXhpbXVtX3NpemUnKSwKCQkJJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgCgkJCQkJICAgICAgJ2ZicnBfb3B0X21heF9zaXplJywgJG1zLCA1LCA1KS4KCQkJJyAnLiRtb2QtPkxhbmcoJ3RpdGxlX21heGltdW1fc2l6ZV9sb25nJykpLAoJCSAgYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfcGVybWl0dGVkX2V4dGVuc2lvbnMnKSwKCQkJJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgCgkJCQkJICAgICAgJ2ZicnBfb3B0X3Blcm1pdHRlZF9leHRlbnNpb25zJywKCQkJCQkgICAgICAkZXh0cywyNSw4MCkuJzxici8+Jy4KCQkJJG1vZC0+TGFuZygndGl0bGVfcGVybWl0dGVkX2V4dGVuc2lvbnNfbG9uZycpKSwKCQkgIGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnMnKSwKCQkJJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGZvcm1EZXNjcmlwdG9yLCdmYnJwX29wdF9zaG93X2RldGFpbHMnLCcwJykuCgkJCSRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAKCQkJCQkJICAnZmJycF9vcHRfc2hvd19kZXRhaWxzJywgJzEnLCAkc2hvdykuCgkJCScgJy4kbW9kLT5MYW5nKCd0aXRsZV9zaG93X2xpbWl0YXRpb25zX2xvbmcnKSkKCQkgKTsKCiAgICAkdXBsb2FkcyA9ICRtb2QtPkdldE1vZHVsZUluc3RhbmNlKCdVcGxvYWRzJyk7CiAgICAkc2VuZHRvX3VwbG9hZHNfbGlzdCA9IGFycmF5KCRtb2QtPkxhbmcoJ25vJyk9PjAsCgkJCQkgJG1vZC0+TGFuZygneWVzJyk9PjEpOwogICAgaWYoICR1cGxvYWRzICkKICAgICAgewoJCSRjYXRlZ29yeWxpc3QgPSAkdXBsb2Fkcy0+Z2V0Q2F0ZWdvcnlMaXN0KCk7CgkJJGFkdiA9IGFycmF5KAoJCSAgICAgYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfc2VuZHRvX3VwbG9hZHMnKSwKCQkJICAgJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkZm9ybURlc2NyaXB0b3IsCgkJCQkJCSAgICAgJ2ZicnBfb3B0X3NlbmR0b191cGxvYWRzJywkc2VuZHRvX3VwbG9hZHNfbGlzdCwKCQkJCQkJICAgICAkc2VuZHRvX3VwbG9hZHMpKSwKCQkgICAgIGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3VwbG9hZHNfY2F0ZWdvcnknKSwKCQkJICAgJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkZm9ybURlc2NyaXB0b3IsCgkJCQkJCSAgICAgJ2ZicnBfb3B0X3VwbG9hZHNfY2F0ZWdvcnknLCRjYXRlZ29yeWxpc3QsCgkJCQkJCSAgICAgJHVwbG9hZHNfY2F0ZWdvcnkpKSwKCQkgICAgIGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3VwbG9hZHNfZGVzdHBhZ2UnKSwKCQkJICAgJG1vZC0+Q3JlYXRlUGFnZURyb3Bkb3duKCRmb3JtRGVzY3JpcHRvciwKCQkJCQkJICAgICdmYnJwX29wdF91cGxvYWRzX2Rlc3RwYWdlJywkdXBsb2Fkc19kZXN0cGFnZSkpCgkJCQkJCSAgCgkJICAgICApOwogICAgICB9CgllbHNlCgkJewoJCSRhZHYgPSBhcnJheSgpOwoJCWFycmF5X3B1c2goJG1haW4sIGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3JlbW92ZV9maWxlX2Zyb21fc2VydmVyJyksCgkJCSRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRmb3JtRGVzY3JpcHRvciwnZmJycF9vcHRfcmVtb3ZlX2ZpbGUnLCcwJykuCgkJCSRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAKCQkJCQkgICdmYnJwX29wdF9yZW1vdmVfZmlsZScsICcxJywgCgkJCQkJICAkdGhpcy0+R2V0T3B0aW9uKCdyZW1vdmVfZmlsZScsJzAnKSkpKTsKCQlhcnJheV9wdXNoKCRtYWluLCBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9maWxlX2Rlc3RpbmF0aW9uJyksCgkJCSRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsJ2ZicnBfb3B0X2ZpbGVfZGVzdGluYXRpb24nLAoJCQkJJHRoaXMtPkdldE9wdGlvbignZmlsZV9kZXN0aW5hdGlvbicsJGdDbXMtPmNvbmZpZ1sndXBsb2Fkc19wYXRoJ10pLDYwLDI1NSkpKTsKCQl9CgogICAgcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwogIH0KCgogIGZ1bmN0aW9uIFBvc3REaXNwb3NpdGlvbkFjdGlvbigpCiAgewoJaWYgKCR0aGlzLT5HZXRPcHRpb24oJ3JlbW92ZV9maWxlJywnMCcpID09ICcxJykKCQl7CgkJaWYgKGlzX2FycmF5KCR0aGlzLT5WYWx1ZSkpCgkJCXsKCQkJJGRlc3QgPSAkdGhpcy0+VmFsdWVbMF07CQoJCQlpZiAoZmlsZV9leGlzdHMoJGRlc3QpKQoJCQkJewoJCQkJdW5saW5rKCRkZXN0KTsKCQkJCX0KCQkJfQoJCX0KICB9CgogIGZ1bmN0aW9uIFZhbGlkYXRlKCkKICB7CiAgCSR0aGlzLT52YWxpZGF0ZWQgPSB0cnVlOwogIAkkdGhpcy0+dmFsaWRhdGlvbkVycm9yVGV4dCA9ICcnOwogICAgJG1zID0gJHRoaXMtPkdldE9wdGlvbignbWF4X3NpemUnKTsKICAgICRleHRzID0gJHRoaXMtPkdldE9wdGlvbigncGVybWl0dGVkX2V4dGVuc2lvbnMnLCcnKTsKICAgICRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAvLyRmdWxsQWxpYXMgPSAkdGhpcy0+R2V0VmFsdWUoKTsgLS0gU3Rpa2tpIG1vZGlmeXM6IE5vdyBnZXRzIGNvcnJlY3QgYWxpYXMKICAgICRmdWxsQWxpYXMgPSAkbW9kLT5tb2R1bGVfaWQuJ2ZicnBfXycuJHRoaXMtPklkOwogICAgaWYgKCRfRklMRVNbJGZ1bGxBbGlhc11bJ3NpemUnXSA8IDEgJiYgISAkdGhpcy0+UmVxdWlyZWQpCiAgICAgIHsKCXJldHVybiBhcnJheSh0cnVlLCcnKTsKICAgICAgfQogICAgaWYgKCRfRklMRVNbJGZ1bGxBbGlhc11bJ3NpemUnXSA8IDEgJiYgJHRoaXMtPlJlcXVpcmVkICkKICAgICAgewogCSR0aGlzLT52YWxpZGF0ZWQgPSBmYWxzZTsKIAkkdGhpcy0+dmFsaWRhdGlvbkVycm9yVGV4dCA9ICRtb2QtPkxhbmcoJ3JlcXVpcmVkX2ZpZWxkX21pc3NpbmcnKTsKICAgICAgfQogICAgZWxzZSBpZiAoJG1zICE9ICcnICYmICRfRklMRVNbJGZ1bGxBbGlhc11bJ3NpemUnXSA+ICgkbXMgKiAxMDI0KSkKICAgICAgewoJJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQgPSAkbW9kLT5MYW5nKCdmaWxlX3Rvb19sYXJnZScpLiAnICcuKCRtcyAqIDEwMjQpLidrYic7CgkkdGhpcy0+dmFsaWRhdGVkID0gZmFsc2U7CiAgICAgIH0KICAgIGVsc2UgaWYgKCRleHRzICE9ICcnKQogICAgICB7CgkkbWF0Y2ggPSBmYWxzZTsKCSRsZWdhbEV4dHMgPSBleHBsb2RlKCcsJywkZXh0cyk7Cglmb3JlYWNoICgkbGVnYWxFeHRzIGFzICR0aGlzRXh0KQoJICB7CgkgICAgaWYgKHByZWdfbWF0Y2goJy9cLicudHJpbSgkdGhpc0V4dCkuJyQvaScsJF9GSUxFU1skZnVsbEFsaWFzXVsnbmFtZSddKSkKCSAgICAgIHsKCQkkbWF0Y2ggPSB0cnVlOwoJICAgICAgfQoJICAgIGVsc2UgaWYgKHByZWdfbWF0Y2goJy8nLnRyaW0oJHRoaXNFeHQpLicvaScsJF9GSUxFU1skZnVsbEFsaWFzXVsndHlwZSddKSkKCSAgICAgIHsKCQkkbWF0Y2ggPSB0cnVlOwoJICAgICAgfQoJICB9CglpZiAoISAkbWF0Y2gpCgkgIHsKCSAgICAkdGhpcy0+dmFsaWRhdGlvbkVycm9yVGV4dCA9ICRtb2QtPkxhbmcoJ2lsbGVnYWxfZmlsZV90eXBlJyk7CgkgICAgJHRoaXMtPnZhbGlkYXRlZCA9IGZhbHNlOwoJICB9CiAgICAgIH0KICAgIHJldHVybiBhcnJheSgkdGhpcy0+dmFsaWRhdGVkLCAkdGhpcy0+dmFsaWRhdGlvbkVycm9yVGV4dCk7CiAgfQogIAp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/Form.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwOCBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDggYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkZvcm0gewoKICB2YXIgJG1vZHVsZV9wdHIgPSAtMTsKICB2YXIgJG1vZHVsZV9wYXJhbXMgPSAtMTsKICB2YXIgJElkID0gLTE7CiAgdmFyICROYW1lID0gJyc7CiAgdmFyICRBbGlhcyA9ICcnOwogIHZhciAkbG9hZGVkID0gJ25vdCc7CiAgdmFyICRmb3JtVG90YWxQYWdlcyA9IDA7CiAgdmFyICRQYWdlOwogIHZhciAkQXR0cnM7CiAgdmFyICRGaWVsZHM7CiAgdmFyICRmb3JtU3RhdGU7CiAgdmFyICRzYW1wbGVUZW1wbGF0ZUNvZGU7CiAgdmFyICR0ZW1wbGF0ZVZhcmlhYmxlczsKCiAgZnVuY3Rpb24gZmJGb3JtKCYkbW9kdWxlX3B0ciwgJiRwYXJhbXMsICRsb2FkRGVlcD1mYWxzZSwgJGxvYWRSZXNwPWZhbHNlKQogIHsKICAgICR0aGlzLT5tb2R1bGVfcHRyID0gJG1vZHVsZV9wdHI7CiAgICAkdGhpcy0+bW9kdWxlX3BhcmFtcyA9ICRwYXJhbXM7CiAgICAkdGhpcy0+RmllbGRzID0gYXJyYXkoKTsKICAgICR0aGlzLT5BdHRycyA9IGFycmF5KCk7CiAgICAkdGhpcy0+Zm9ybVN0YXRlID0gJ25ldyc7CgkKCS8vIFN0aWtraSBhZGRpbmc6ICRpZCBvdmVyd3JpdGUgcG9zc2libGUgd2l0aCAkcGFyYW0KICAgIGlmICgoIWlzc2V0KCR0aGlzLT5tb2R1bGVfcHRyLT5tb2R1bGVfaWQpIHx8IGVtcHR5KCR0aGlzLT5tb2R1bGVfcHRyLT5tb2R1bGVfaWQpKSAmJiBpc3NldCgkcGFyYW1zWydtb2R1bGVfaWQnXSkpIHsKCQoJCSR0aGlzLT5tb2R1bGVfcHRyLT5tb2R1bGVfaWQgPSAkcGFyYW1zWydtb2R1bGVfaWQnXTsKICAgIH0JIAoJICAKICAgIGlmIChpc3NldCgkcGFyYW1zWydmb3JtX2lkJ10pKSB7CgkJCgkJJHRoaXMtPklkID0gJHBhcmFtc1snZm9ybV9pZCddOwogICAgfQoJICAKICAgIGlmIChpc3NldCgkcGFyYW1zWydmYnJwX2Zvcm1fYWxpYXMnXSkpIHsKCSAgCgkJJHRoaXMtPkFsaWFzID0gJHBhcmFtc1snZmJycF9mb3JtX2FsaWFzJ107CiAgICB9CgkgIAogICAgaWYgKGlzc2V0KCRwYXJhbXNbJ2ZicnBfZm9ybV9uYW1lJ10pKSB7CgkKCQkkdGhpcy0+TmFtZSA9ICRwYXJhbXNbJ2ZicnBfZm9ybV9uYW1lJ107CiAgICB9CgogICAkZmllbGRFeHBhbmRPcCA9IGZhbHNlOwoKICAgZm9yZWFjaCgkcGFyYW1zIGFzICRwS2V5PT4kcFZhbCkKICAgICAgewogICAgICBpZiAoc3Vic3RyKCRwS2V5LDAsOSkgPT0gJ2ZicnBfRmVYXycgfHwgc3Vic3RyKCRwS2V5LDAsOSkgPT0gJ2ZicnBfRmVEXycpCiAgICAgICAgIHsKICAgICAgICAgLy8gZXhwYW5kaW5nIG9yIHNocmlua2luZyBhIGZpZWxkCiAgICAgICAgICRmaWVsZEV4cGFuZE9wID0gdHJ1ZTsKICAgICAgICAgfQogICAgICB9CgogICAgaWYgKCRmaWVsZEV4cGFuZE9wKQogICAgICB7CiAgICAgICRwYXJhbXNbJ2ZicnBfZG9uZSddID0gMDsKICAgICAgaWYgKGlzc2V0KCRwYXJhbXNbJ2ZicnBfY29udGludWUnXSkpCiAgICAgICAgIHsKCSAgICAgICR0aGlzLT5QYWdlID0gJHBhcmFtc1snZmJycF9jb250aW51ZSddIC0gMTsKICAgICAgICAgfQogICAgICBlbHNlCiAgICAgICAgIHsKCSAgICAgICR0aGlzLT5QYWdlID0gMTsKICAgICAgICAgfQogICAgICB9CiAgICBlbHNlCiAgICAgIHsKICAgICAgaWYgKGlzc2V0KCRwYXJhbXNbJ2ZicnBfY29udGludWUnXSkpCiAgICAgICAgIHsKCSAgICAgICR0aGlzLT5QYWdlID0gJHBhcmFtc1snZmJycF9jb250aW51ZSddOwogICAgICAgICB9CiAgICAgIGVsc2UKICAgICAgICAgewoJICAgICAgJHRoaXMtPlBhZ2UgPSAxOwogICAgICAgICB9CiAgICAgIGlmIChpc3NldCgkcGFyYW1zWydmYnJwX3ByZXYnXSkgJiYgaXNzZXQoJHBhcmFtc1snZmJycF9wcmV2aW91cyddKSkKICAgICAgICAgewoJICAgICAgJHRoaXMtPlBhZ2UgPSAkcGFyYW1zWydmYnJwX3ByZXZpb3VzJ107CgkgICAgICAkcGFyYW1zWydmYnJwX2RvbmUnXSA9IDA7CiAgICAgICAgIH0KICAgICAgfQogICAgJHRoaXMtPmZvcm1Ub3RhbFBhZ2VzID0gMTsKICAgIGlmIChpc3NldCgkcGFyYW1zWydmYnJwX2RvbmUnXSkmJiAkcGFyYW1zWydmYnJwX2RvbmUnXT09MSkKICAgICAgewoJJHRoaXMtPmZvcm1TdGF0ZSA9ICdzdWJtaXQnOwogICAgICB9CiAgICBpZiAoaXNzZXQoJHBhcmFtc1snZmJycF91c2VyX2Zvcm1fdmFsaWRhdGUnXSkgJiYgJHBhcmFtc1snZmJycF91c2VyX2Zvcm1fdmFsaWRhdGUnXT09dHJ1ZSkKICAgICAgewoJJHRoaXMtPmZvcm1TdGF0ZSA9ICdjb25maXJtJzsKICAgICAgfQogICAgaWYgKCR0aGlzLT5JZCAhPSAtMSkKICAgICAgewoJaWYgKGlzc2V0KCRwYXJhbXNbJ3Jlc3BvbnNlX2lkJ10pICYmICR0aGlzLT5mb3JtU3RhdGUgPT0gJ3N1Ym1pdCcpCgkgIHsKCSAgICAkdGhpcy0+Zm9ybVN0YXRlID0gJ3VwZGF0ZSc7CgkgIH0KCSR0aGlzLT5Mb2FkKCR0aGlzLT5JZCwgJHBhcmFtcywgJGxvYWREZWVwLCAkbG9hZFJlc3ApOwogICAgICB9CiAgICBmb3JlYWNoICgkcGFyYW1zIGFzICR0aGlzUGFyYW1LZXk9PiR0aGlzUGFyYW1WYWwpCiAgICAgIHsKCWlmIChzdWJzdHIoJHRoaXNQYXJhbUtleSwwLDExKSA9PSAnZmJycF9mb3JtYV8nKQoJICB7CgkgICAgJHRoaXNQYXJhbUtleSA9IHN1YnN0cigkdGhpc1BhcmFtS2V5LDExKTsKCSAgICAkdGhpcy0+QXR0cnNbJHRoaXNQYXJhbUtleV0gPSAkdGhpc1BhcmFtVmFsOwoJICB9CgllbHNlIGlmICgkdGhpc1BhcmFtS2V5ID09ICdmYnJwX2Zvcm1fdGVtcGxhdGUnICYmICR0aGlzLT5JZCAhPSAtMSkKCSAgewoJICAgICR0aGlzLT5tb2R1bGVfcHRyLT5TZXRUZW1wbGF0ZSgnZmJfJy4kdGhpcy0+SWQsJHRoaXNQYXJhbVZhbCk7CgkgIH0KICAgICAgfQoKICAgICR0aGlzLT50ZW1wbGF0ZVZhcmlhYmxlcyA9IEFycmF5KAoJCSd7JHN1Yl9mb3JtX25hbWV9Jz0+JHRoaXMtPm1vZHVsZV9wdHItPkxhbmcoJ3RpdGxlX2Zvcm1fbmFtZScpLAoJCSd7JHN1Yl9kYXRlfSc9PiR0aGlzLT5tb2R1bGVfcHRyLT5MYW5nKCdoZWxwX3N1Ym1pc3Npb25fZGF0ZScpLAoJCSd7JHN1Yl9ob3N0fSc9PiR0aGlzLT5tb2R1bGVfcHRyLT5MYW5nKCdoZWxwX3NlcnZlcl9uYW1lJyksCgkJJ3skc3ViX3NvdXJjZV9pcH0nPT4kdGhpcy0+bW9kdWxlX3B0ci0+TGFuZygnaGVscF9zdWJfc291cmNlX2lwJyksCgkJJ3skc3ViX3VybH0nPT4kdGhpcy0+bW9kdWxlX3B0ci0+TGFuZygnaGVscF9zdWJfdXJsJyksCgkJJ3skZmJfdmVyc2lvbn0nPT4kdGhpcy0+bW9kdWxlX3B0ci0+TGFuZygnaGVscF9mYl92ZXJzaW9uJyksCgkJJ3skVEFCfSc9PiR0aGlzLT5tb2R1bGVfcHRyLT5MYW5nKCdoZWxwX3RhYicpLAoJKTsKICB9CgogIGZ1bmN0aW9uIFNldEF0dHJpYnV0ZXMoJGF0dHJBcnJheSkKICB7CiAgICAkdGhpcy0+QXR0cnMgPSBhcnJheV9tZXJnZSgkdGhpcy0+QXR0cnMsJGF0dHJBcnJheSk7CiAgfQoKICBmdW5jdGlvbiBTZXRUZW1wbGF0ZSgkdGVtcGxhdGUpCiAgewogICAgJHRoaXMtPkF0dHJzWydmb3JtX3RlbXBsYXRlJ10gPSAkdGVtcGxhdGU7CiAgICAkdGhpcy0+bW9kdWxlX3B0ci0+U2V0VGVtcGxhdGUoJ2ZiXycuJHRoaXMtPklkLCR0ZW1wbGF0ZSk7CiAgfQoKICBmdW5jdGlvbiBHZXRJZCgpCiAgewogICAgcmV0dXJuICR0aGlzLT5JZDsKICB9CgogIGZ1bmN0aW9uIFNldElkKCRpZCkKICB7CiAgICAkdGhpcy0+SWQgPSAkaWQ7CiAgfQoKICBmdW5jdGlvbiBHZXROYW1lKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPk5hbWU7CiAgfQoJCiAgZnVuY3Rpb24gR2V0Rm9ybVN0YXRlKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPmZvcm1TdGF0ZTsKICB9CgkKICBmdW5jdGlvbiBHZXRQYWdlQ291bnQoKQogIHsKICAgIHJldHVybiAkdGhpcy0+Zm9ybVRvdGFsUGFnZXM7CiAgfQoJCiAgZnVuY3Rpb24gR2V0UGFnZU51bWJlcigpCiAgewogICAgcmV0dXJuICR0aGlzLT5QYWdlOwogIH0KCiAgZnVuY3Rpb24gUGFnZUJhY2soKQogIHsKICAgICR0aGlzLT5QYWdlLS07CiAgfQoKICBmdW5jdGlvbiBTZXROYW1lKCRuYW1lKQogIHsKICAgICR0aGlzLT5OYW1lID0gJG5hbWU7CiAgfQoJCiAgZnVuY3Rpb24gR2V0QWxpYXMoKQogIHsKICAgIHJldHVybiAkdGhpcy0+QWxpYXM7CiAgfQoKICBmdW5jdGlvbiBTZXRBbGlhcygkYWxpYXMpCiAgewogICAgJHRoaXMtPkFsaWFzID0gJGFsaWFzOwogIH0KCi8vIGR1bXAgcGFyYW1zCiAgZnVuY3Rpb24gRGVidWdEaXNwbGF5KCRwYXJhbXM9YXJyYXkoKSkKICB7CiAgICAkdG1wID0gJHRoaXMtPm1vZHVsZV9wdHI7CiAgICAkdGhpcy0+bW9kdWxlX3B0ciA9ICdbbWRwdHJdJzsKCiAgIGlmIChpc3NldCgkcGFyYW1zWydGT1JNJ10pKQoJCXsKCQkkZnB0ID0gJHBhcmFtc1snRk9STSddOwoJCSRwYXJhbXNbJ0ZPUk0nXSA9ICdbZm9ybV9wb2ludGVyXSc7CgkJfQoKICAgICR0ZW1wbGF0ZV90bXAgPSAkdGhpcy0+R2V0QXR0cignZm9ybV90ZW1wbGF0ZScsJycpOwogICAgJHRoaXMtPlNldEF0dHIoJ2Zvcm1fdGVtcGxhdGUnLHN0cmxlbigkdGVtcGxhdGVfdG1wKS4nIGNoYXJhY3RlcnMnKTsKICAgICRmaWVsZF90bXAgPSAkdGhpcy0+RmllbGRzOwogICAgJHRoaXMtPkZpZWxkcyA9ICdGaWVsZCBBcnJheTogJy5jb3VudCgkZmllbGRfdG1wKTsKICAgIGRlYnVnX2Rpc3BsYXkoJHRoaXMpOwogICAgJHRoaXMtPlNldEF0dHIoJ2Zvcm1fdGVtcGxhdGUnLCR0ZW1wbGF0ZV90bXApOwogICAgJHRoaXMtPkZpZWxkcyA9ICRmaWVsZF90bXA7CiAgICBmb3JlYWNoKCR0aGlzLT5GaWVsZHMgYXMgJGZsZCkKICAgICAgewoJCSRmbGQtPkRlYnVnRGlzcGxheSgpOwogICAgICB9CiAgICAkdGhpcy0+bW9kdWxlX3B0ciA9ICR0bXA7CiAgfQoKCQogIGZ1bmN0aW9uIFNldEF0dHIoJGF0dHJuYW1lLCAkdmFsKQogIHsKICAgICR0aGlzLT5BdHRyc1skYXR0cm5hbWVdID0gJHZhbDsKICB9CgkKICBmdW5jdGlvbiBHZXRBdHRyKCRhdHRybmFtZSwgJGRlZmF1bHQ9IiIpCiAgewogICAgaWYgKGlzc2V0KCR0aGlzLT5BdHRyc1skYXR0cm5hbWVdKSkKICAgICAgewoJcmV0dXJuICR0aGlzLT5BdHRyc1skYXR0cm5hbWVdOwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCXJldHVybiAkZGVmYXVsdDsKICAgICAgfQogIH0KCQogIGZ1bmN0aW9uIEdldEZpZWxkQ291bnQoKQogIHsKICAgIHJldHVybiBjb3VudCgkdGhpcy0+RmllbGRzKTsKICB9CgogIGZ1bmN0aW9uIEhhc0ZpZWxkTmFtZWQoJG5hbWUpCiAgewogICAgJHJldCA9IC0xOwogICAgZm9yZWFjaCgkdGhpcy0+RmllbGRzIGFzICRmbGQpCgkJewoJCWlmICgkZmxkLT5HZXROYW1lKCkgPT0gJG5hbWUpCgkJCXsKCQkJJHJldCA9ICRmbGQtPkdldElkKCk7CgkJCX0KCQl9CiAgICByZXR1cm4gJHJldDsKICB9CgogIGZ1bmN0aW9uIEFkZFRlbXBsYXRlVmFyaWFibGUoJG5hbWUsJGRlZikKICB7CiAgICAkdGhlS2V5ID0gJ3skJy4kbmFtZS4nfSc7CiAgICAkdGhpcy0+dGVtcGxhdGVWYXJpYWJsZXNbJHRoZUtleV0gPSAkZGVmOwogIH0KCgogIGZ1bmN0aW9uIGNyZWF0ZVNhbXBsZVRlbXBsYXRlSmF2YXNjcmlwdCgkZmllbGROYW1lPSdvcHRfZW1haWxfdGVtcGxhdGUnLCAkYnV0dG9uX3RleHQ9JycsICRzdWZmaXg9JycpCiAgewoJJGZsZEFsaWFzID0gcHJlZ19yZXBsYWNlKCcvW15cd1xkXS8nLCdfJywkZmllbGROYW1lKS4kc3VmZml4OwogICAgJGpzQ29kZSA9ICI8c2NyaXB0IHR5cGU9XCJ0ZXh0L2phdmFzY3JpcHRcIj5cbgovKiA8IVtDREFUQVsgKi8KZnVuY3Rpb24gcG9wdWxhdGUiLiRmbGRBbGlhcy4iKGZvcm1uYW1lKQogICAgewogICAgdmFyIGZuYW1lID0gJ0lEZmJycF8iLiRmaWVsZE5hbWUuIic7CiAgICBmb3JtbmFtZVtmbmFtZV0udmFsdWU9fFRFTVBMQVRFfDsKICAgIH0KLyogXV0+ICovCjwvc2NyaXB0PiI7CgkkanNDb2RlIC49ICI8aW5wdXQgdHlwZT1cImJ1dHRvblwiIHZhbHVlPVwiIi4KJGJ1dHRvbl90ZXh0LiJcIiBvbmNsaWNrPVwiamF2YXNjcmlwdDpwb3B1bGF0ZSIuJGZsZEFsaWFzLiIodGhpcy5mb3JtKVwiIC8+IjsKICByZXR1cm4gJGpzQ29kZTsKICB9CgoKICBmdW5jdGlvbiBjcmVhdGVTYW1wbGVUZW1wbGF0ZSgkaHRtbGlzaD1mYWxzZSwkZW1haWw9dHJ1ZSwgJG9uZWxpbmU9ZmFsc2UsJGhlYWRlcj1mYWxzZSwkZm9vdGVyPWZhbHNlKQogIHsKICAgICRtb2QgPSAkdGhpcy0+bW9kdWxlX3B0cjsKICAgICRyZXQgPSAiIjsKCglpZiAoJGVtYWlsKQoJCXsKICAgIAlpZiAoJGh0bWxpc2gpCiAgICAJCXsKCQkJJHJldCAuPSAiPGgxPiIuJG1vZC0+TGFuZygnZW1haWxfZGVmYXVsdF90ZW1wbGF0ZScpLiI8L2gxPlxuIjsKCQkJfQoJIAllbHNlCgkgCQl7CgkJCSRyZXQgLj0gJG1vZC0+TGFuZygnZW1haWxfZGVmYXVsdF90ZW1wbGF0ZScpLiJcbiI7CgkJCX0KICAgIAlmb3JlYWNoKCR0aGlzLT50ZW1wbGF0ZVZhcmlhYmxlcyBhcyAkdGhpc0tleT0+JHRoaXNWYWwpCiAgICAgIAkJewoJCQlpZiAoJGh0bWxpc2gpCgkJCQl7CgkJCQkkcmV0IC49ICc8c3Ryb25nPicuJHRoaXNWYWwuJzwvc3Ryb25nPjogJy4kdGhpc0tleS4iPGJyIC8+IjsKCQkJCX0KCQkJZWxzZQoJCQkJewoJCQkJJHJldCAuPSAkdGhpc1ZhbC4nOiAnLiR0aGlzS2V5OwoJCQkJfQoJCQkkcmV0IC49ICJcbiI7CiAgICAgIAkJfQogICAgIAlpZiAoJGh0bWxpc2gpCiAgICAgCSAgCXsKCQkgIAkkcmV0IC49ICJcbjxociAvPlxuIjsKCSAgCSAgCX0KCSAgCWVsc2UKCSAgCSAgCXsKICAgIAkgIAkkcmV0IC49ICJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiI7CiAgICAJICAJfQogICAgCX0KCQkKCWVsc2VpZiAoISRvbmVsaW5lKQoJCXsKCQlpZiAoJGh0bWxpc2gpCgkJCXsKCQkJJHJldCAuPSAnPGgyPic7CgkJCX0KCQkkcmV0IC49ICRtb2QtPkxhbmcoJ3RoYW5rcycpOwoJCWlmICgkaHRtbGlzaCkKCQkJewoJCQkkcmV0IC49ICc8L2gyPic7CgkJCX0KCQl9CgkJCgllbHNlaWYgKCRmb290ZXIpCgkJIHsKCQkgJHJldCAuPSAnLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5FT0Zcbic7CgkJIHJldHVybiAkcmV0OwoJCSB9CQkJCgkJCiAgICAkb3RoZXJzID0gJHRoaXMtPkdldEZpZWxkcygpOwogICAgZm9yKCRpPTA7JGk8Y291bnQoJG90aGVycyk7JGkrKykKICAgICAgewoJaWYgKCRvdGhlcnNbJGldLT5EaXNwbGF5SW5TdWJtaXNzaW9uKCkpCgkgIHsKCSAgaWYgKCRvdGhlcnNbJGldLT5HZXRBbGlhcygpICE9ICcnKQoJCXsKCQkkZmxkcmVmID0gJG90aGVyc1skaV0tPkdldEFsaWFzKCk7CgkJfQoJICBlbHNlCgkJewoJCSRmbGRyZWYgPSAnZmxkXycuICRvdGhlcnNbJGldLT5HZXRJZCgpOwoJCX0KCQkKCSAgJHJldCAuPSAne2lmICQnLiRmbGRyZWYuJyAhPSAiIiAmJiAkJy4kZmxkcmVmLicgIT0gIicuJHRoaXMtPkdldEF0dHIoJ3Vuc3BlY2lmaWVkJywkbW9kLT5MYW5nKCd1bnNwZWNpZmllZCcpKS4nIiB9JzsKCSAgJGZsZHJlZiA9ICd7JCcuJGZsZHJlZi4nfSc7CgkgIAoJICBpZiAoJGh0bWxpc2gpCiAgICAgCSAgewogIAkJICAkcmV0IC49ICc8c3Ryb25nPicuJG90aGVyc1skaV0tPkdldE5hbWUoKSAuICc8L3N0cm9uZz46ICcgLiAkZmxkcmVmLiAiPGJyIC8+IjsKICAJCSAgfQogIAkgIGVsc2VpZiAoJG9uZWxpbmUgJiYgISRoZWFkZXIpCgkJICB7CgkJICAkcmV0IC49ICRmbGRyZWYuICd7JFRBQn0nOwoJCSAgfQoJICBlbHNlaWYgKCRvbmVsaW5lICYmICRoZWFkZXIpCgkJIHsKCQkgJHJldCAuPSAkb3RoZXJzWyRpXS0+R2V0TmFtZSgpLid7JFRBQn0nOwoJCSB9CSAKCSAgZWxzZQogIAkgIAkgIHsKCSAgICAgICRyZXQgLj0gJG90aGVyc1skaV0tPkdldE5hbWUoKSAuICc6ICcgLiRmbGRyZWY7CgkgICAgICB9CgkgIAkkcmV0IC49ICJ7L2lmfVxuIjsKCQl9CiAgICAgIH0JICAKCSAgCgkgLyogU3Rpa2tpIHNheXM6IERvbid0IHNlZSBhbnkgdXNlIGZvciB0aGlzLCBjb3JyZWN0IG1lIGlmIGknbSB3cm9uZy4KICAgIGlmICgkb25lbGluZSkKCQl7CgkJJHJldCA9IHN1YnN0cigkcmV0LDAsc3RybGVuKCRyZXQpIC0gNikuICJcbiI7CgkJfQoJKi8KICAgIHJldHVybiAkcmV0OwogIH0KCgovLyAgZnVuY3Rpb24gQWRtaW5UZW1wbGF0ZUhlbHAoJGZvcm1EZXNjcmlwdG9yLCRmaWVsZHM9J29wdF9lbWFpbF90ZW1wbGF0ZScsCi8vICAJJGluY2x1ZGVIVE1MPXRydWUsICRpbmNsdWRlVGV4dD10cnVlLCAkb25lbGluZSA9IGZhbHNlLCAkaGVhZGVyTmFtZT0nJykKICBmdW5jdGlvbiBBZG1pblRlbXBsYXRlSGVscCgkZm9ybURlc2NyaXB0b3IsJGZpZWxkU3RydWN0KQogIHsKICAgICRtb2QgPSAkdGhpcy0+bW9kdWxlX3B0cjsKICAgICRyZXQgPSAnPHRhYmxlIGNsYXNzPSJtb2R1bGVfZmJfbGVnZW5kIj48dHI+PHRoIGNvbHNwYW49IjIiPicuJG1vZC0+TGFuZygnaGVscF92YXJpYWJsZXNfZm9yX3RlbXBsYXRlJykuJzwvdGg+PC90cj4nOwogICAgJHJldCAuPSAnPHRyPjx0aD4nLiRtb2QtPkxhbmcoJ2hlbHBfdmFyaWFibGVfbmFtZScpLic8L3RoPjx0aD4nLiRtb2QtPkxhbmcoJ2hlbHBfZm9ybV9maWVsZCcpLic8L3RoPjwvdHI+JzsKICAgICRvZGQgPSBmYWxzZTsKICAgIGZvcmVhY2goJHRoaXMtPnRlbXBsYXRlVmFyaWFibGVzIGFzICR0aGlzS2V5PT4kdGhpc1ZhbCkKICAgICAgewoJCSRyZXQgLj0gJzx0cj48dGQgY2xhc3M9IicuKCRvZGQ/J29kZCc6J2V2ZW4nKS4KCQknIj4nLiR0aGlzS2V5Lic8L3RkPjx0ZCBjbGFzcz0iJy4oJG9kZD8nb2RkJzonZXZlbicpLgoJCSciPicuJHRoaXNWYWwuJzwvdGQ+PC90cj4nOwogICAgICAkb2RkID0gISAkb2RkOwogICAgICB9CgogICAgJG90aGVycyA9ICR0aGlzLT5HZXRGaWVsZHMoKTsKICAgIGZvcigkaT0wOyRpPGNvdW50KCRvdGhlcnMpOyRpKyspCiAgICAgIHsKCWlmICgkb3RoZXJzWyRpXS0+RGlzcGxheUluU3VibWlzc2lvbigpKQoJICB7ICAgICAgICAgICAgICAgIAoJICAgICRyZXQgLj0gJzx0cj48dGQgY2xhc3M9IicuKCRvZGQ/J29kZCc6J2V2ZW4nKS4KCSAgICAnIj57JCcuJG90aGVyc1skaV0tPkdldFZhcmlhYmxlTmFtZSgpLgoJICAgICd9IC8geyRmbGRfJy4KCSAgICAkb3RoZXJzWyRpXS0+R2V0SWQoKS4nfSc7CgkJaWYgKCRvdGhlcnNbJGldLT5HZXRBbGlhcygpICE9ICcnKQoJCQl7CgkJCSRyZXQgLj0gJyAvIHskJy4kb3RoZXJzWyRpXS0+R2V0QWxpYXMoKS4nfSc7CQoJCQl9CgkgICAgJHJldCAuPSAnPC90ZD48dGQgY2xhc3M9IicuKCRvZGQ/J29kZCc6J2V2ZW4nKS4KCSAgICAnIj4nIC4kb3RoZXJzWyRpXS0+R2V0TmFtZSgpIC4gJzwvdGQ+PC90cj4nOwoJICAJJG9kZCA9ICEgJG9kZDsKCSAgfQogICAgICB9CiAgICAgICAJCiAgICAkcmV0IC49ICc8dHI+PHRkIGNvbHNwYW49IjIiPicuJG1vZC0+TGFuZygnaGVscF9hcnJheV9maWVsZHMnKS4nPC90ZD48L3RyPic7CiAgICAkcmV0IC49ICc8dHI+PHRkIGNvbHNwYW49IjIiPicuJG1vZC0+TGFuZygnaGVscF9vdGhlcl9maWVsZHMnKS4nPC90ZD48L3RyPic7CgogICAgJHNhbXBsZVRlbXBsYXRlQ29kZSA9ICcnOwogICAgZm9yZWFjaCAoJGZpZWxkU3RydWN0IGFzICRrZXk9PiR2YWwpCgkJewoJCSRodG1sX2J1dHRvbiA9IChpc3NldCgkdmFsWydodG1sX2J1dHRvbiddKSAmJiAkdmFsWydodG1sX2J1dHRvbiddKTsKCQkkdGV4dF9idXR0b24gPSAoaXNzZXQoJHZhbFsndGV4dF9idXR0b24nXSkgJiYgJHZhbFsndGV4dF9idXR0b24nXSk7CgkJJGlzX29uZWxpbmUgPSAoaXNzZXQoJHZhbFsnaXNfb25lbGluZSddKSAmJiAkdmFsWydpc19vbmVsaW5lJ10pOwoJCSRpc19lbWFpbCA9IChpc3NldCgkdmFsWydpc19lbWFpbCddKSAmJiAkdmFsWydpc19lbWFpbCddKTsKCQkkaXNfaGVhZGVyID0gKGlzc2V0KCR2YWxbJ2lzX2hlYWRlciddKSAmJiAkdmFsWydpc19oZWFkZXInXSk7CgkJJGlzX2Zvb3RlciA9IChpc3NldCgkdmFsWydpc19mb290ZXInXSkgJiYgJHZhbFsnaXNfZm9vdGVyJ10pOwoJCQoJCWlmICgkaHRtbF9idXR0b24pCgkJCXsKCQkJJGJ1dHRvbl90ZXh0ID0gJG1vZC0+TGFuZygndGl0bGVfY3JlYXRlX3NhbXBsZV9odG1sX3RlbXBsYXRlJyk7CgkJCX0KCQllbHNlaWYgKCRpc19oZWFkZXIpCgkJCXsKCQkJJGJ1dHRvbl90ZXh0ID0gJG1vZC0+TGFuZygndGl0bGVfY3JlYXRlX3NhbXBsZV9oZWFkZXJfdGVtcGxhdGUnKTsKCQkJfQoJCWVsc2VpZiAoJGlzX2Zvb3RlcikKCQkJewoJCQkkYnV0dG9uX3RleHQgPSAkbW9kLT5MYW5nKCd0aXRsZV9jcmVhdGVfc2FtcGxlX2Zvb3Rlcl90ZW1wbGF0ZScpOwoJCQl9CQkJCQkJCgkJZWxzZQoJCQl7CgkJCSRidXR0b25fdGV4dCA9ICRtb2QtPkxhbmcoJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfdGVtcGxhdGUnKTsKCQkJfQoKCQlpZiAoJGh0bWxfYnV0dG9uICYmICR0ZXh0X2J1dHRvbikKCQkJewoJCQkkc2FtcGxlID0gJHRoaXMtPmNyZWF0ZVNhbXBsZVRlbXBsYXRlKGZhbHNlLCAkaXNfZW1haWwsICRpc19vbmVsaW5lLCAkaXNfaGVhZGVyLCAkaXNfZm9vdGVyKTsKCQkJJHNhbXBsZSA9IHByZWdfcmVwbGFjZSgnL1wnLycsIlxcJyIsJHNhbXBsZSk7CgkJCSRzYW1wbGUgPSBwcmVnX3JlcGxhY2UoJy9cbi8nLCJcXG4nK1xuJyIsICRzYW1wbGUpOwoJCQkkc2FtcGxlVGVtcGxhdGVDb2RlIC49IHByZWdfcmVwbGFjZSgnL1x8VEVNUExBVEVcfC8nLCInIi4kc2FtcGxlLiInIiwKCQkJJHRoaXMtPmNyZWF0ZVNhbXBsZVRlbXBsYXRlSmF2YXNjcmlwdCgka2V5LCAkbW9kLT5MYW5nKCd0aXRsZV9jcmVhdGVfc2FtcGxlX3RlbXBsYXRlJyksJ3RleHQnKSk7CgkJCX0KCQkKCQkkc2FtcGxlID0gJHRoaXMtPmNyZWF0ZVNhbXBsZVRlbXBsYXRlKCRodG1sX2J1dHRvbiwkaXNfZW1haWwsICRpc19vbmVsaW5lLCRpc19oZWFkZXIsICRpc19mb290ZXIpOwoJCSRzYW1wbGUgPSBwcmVnX3JlcGxhY2UoJy9cJy8nLCJcXCciLCRzYW1wbGUpOwoJCSRzYW1wbGUgPSBwcmVnX3JlcGxhY2UoJy9cbi8nLCJcXG4nK1xuJyIsICRzYW1wbGUpOwoJCSRzYW1wbGVUZW1wbGF0ZUNvZGUgLj0gcHJlZ19yZXBsYWNlKCcvXHxURU1QTEFURVx8LycsIiciLiRzYW1wbGUuIiciLAoJICAgICR0aGlzLT5jcmVhdGVTYW1wbGVUZW1wbGF0ZUphdmFzY3JpcHQoJGtleSwgJGJ1dHRvbl90ZXh0KSk7CgkJfQoKICAgICRzYW1wbGVUZW1wbGF0ZUNvZGUgPSBwcmVnX3JlcGxhY2UoJy9JRC8nLCRmb3JtRGVzY3JpcHRvciwgJHNhbXBsZVRlbXBsYXRlQ29kZSk7CiAgICAkcmV0IC49ICc8dHI+PHRkIGNvbHNwYW49IjIiPicuJHNhbXBsZVRlbXBsYXRlQ29kZS4nPC90ZD48L3RyPic7CiAgICAkcmV0IC49ICc8L3RhYmxlPic7CgkKICAgIHJldHVybiAkcmV0OwogIH0KCgogIGZ1bmN0aW9uIFZhbGlkYXRlKCkKICB7CglnbG9iYWwgJGdDbXM7CiAgICAkdmFsaWRhdGVkID0gdHJ1ZTsKICAgICRtZXNzYWdlID0gYXJyYXkoKTsKICAgICRmb3JtUGFnZUNvdW50PTE7CiAgICAkdmFsUGFnZSA9ICR0aGlzLT5QYWdlIC0gMTsKICAgIGZvcigkaT0wOyRpPGNvdW50KCR0aGlzLT5GaWVsZHMpOyRpKyspCiAgICAgIHsKCWlmICgkdGhpcy0+RmllbGRzWyRpXS0+R2V0RmllbGRUeXBlKCkgPT0gJ1BhZ2VCcmVha0ZpZWxkJykKCSAgewoJICAgICRmb3JtUGFnZUNvdW50Kys7CgkgIH0KCWlmICgkdmFsUGFnZSAhPSAkZm9ybVBhZ2VDb3VudCkKCSAgewoJICAgIGNvbnRpbnVlOwoJICB9CgkgIAogICAgJGRlbnlfc3BhY2VfdmFsaWRhdGlvbiA9ICgkdGhpcy0+bW9kdWxlX3B0ci0+R2V0UHJlZmVyZW5jZSgnYmxhbmtfaW52YWxpZCcsJzAnKSA9PSAnMScpOwovKgkgIGRlYnVnX2Rpc3BsYXkoJHRoaXMtPkZpZWxkc1skaV0tPkdldE5hbWUoKS4nICcuCiAgICAgICgkdGhpcy0+RmllbGRzWyRpXS0+SGFzVmFsdWUoKSA9PT0gZmFsc2U/J0ZhbHNlJzondHJ1ZScpKTsKICAgICAgaWYgKCR0aGlzLT5GaWVsZHNbJGldLT5IYXNWYWx1ZSgpKQogICAgICAgICBkZWJ1Z19kaXNwbGF5KCR0aGlzLT5GaWVsZHNbJGldLT5HZXRWYWx1ZSgpKTsKKi8KCWlmICgvKiEgJHRoaXMtPkZpZWxkc1skaV0tPklzTm9uUmVxdWlyYWJsZUZpZWxkKCkgJiYgKi8KCSAgICAkdGhpcy0+RmllbGRzWyRpXS0+SXNSZXF1aXJlZCgpICYmCgkgICAgJHRoaXMtPkZpZWxkc1skaV0tPkhhc1ZhbHVlKCRkZW55X3NwYWNlX3ZhbGlkYXRpb24pID09PSBmYWxzZSkKCSAgewoJICAgIGFycmF5X3B1c2goJG1lc3NhZ2UsCgkgICAgCSR0aGlzLT5tb2R1bGVfcHRyLT5MYW5nKCdwbGVhc2VfZW50ZXJfYV92YWx1ZScsJHRoaXMtPkZpZWxkc1skaV0tPkdldE5hbWUoKSkpOwoJICAgICR2YWxpZGF0ZWQgPSBmYWxzZTsKCSAgICAkdGhpcy0+RmllbGRzWyRpXS0+U2V0T3B0aW9uKCdpc192YWxpZCcsZmFsc2UpOwoJICAgICR0aGlzLT5GaWVsZHNbJGldLT52YWxpZGF0aW9uRXJyb3JUZXh0ID0gJHRoaXMtPm1vZHVsZV9wdHItPkxhbmcoJ3BsZWFzZV9lbnRlcl9hX3ZhbHVlJywkdGhpcy0+RmllbGRzWyRpXS0+R2V0TmFtZSgpKTsKCSAgICAkdGhpcy0+RmllbGRzWyRpXS0+dmFsaWRhdGVkID0gZmFsc2U7CgkgIH0KCWVsc2UgaWYgKCR0aGlzLT5GaWVsZHNbJGldLT5HZXRWYWx1ZSgpICE9ICR0aGlzLT5tb2R1bGVfcHRyLT5MYW5nKCd1bnNwZWNpZmllZCcpKQoJICB7IAoJICAgICRyZXMgPSAkdGhpcy0+RmllbGRzWyRpXS0+VmFsaWRhdGUoKTsKCSAgICBpZiAoJHJlc1swXSAhPSB0cnVlKQoJICAgICAgewoJCWFycmF5X3B1c2goJG1lc3NhZ2UsJHJlc1sxXSk7CgkJJHZhbGlkYXRlZCA9IGZhbHNlOwoJCSR0aGlzLT5GaWVsZHNbJGldLT5TZXRPcHRpb24oJ2lzX3ZhbGlkJyxmYWxzZSk7CgkgICAgICB9CgkgICAgZWxzZQoJICAgICAgewoJCSR0aGlzLT5GaWVsZHNbJGldLT5TZXRPcHRpb24oJ2lzX3ZhbGlkJyx0cnVlKTsKCSAgICAgIH0KCSAgfQoJJHVzZXJ0YWdvcHMgPSAkZ0Ntcy0+R2V0VXNlclRhZ09wZXJhdGlvbnMoKTsKCSR1ZHQgPSAkdGhpcy0+R2V0QXR0cigndmFsaWRhdGVfdWR0JywnJyk7CgkkdW5zcGVjID0gJHRoaXMtPkdldEF0dHIoJ3Vuc3BlY2lmaWVkJywkdGhpcy0+bW9kdWxlX3B0ci0+TGFuZygndW5zcGVjaWZpZWQnKSk7CgkKCWlmKCAkdmFsaWRhdGVkID09IHRydWUgJiYgIWVtcHR5KCR1ZHQpICYmICItMSIgIT0gJHVkdCApCgkJewoJCSRwYXJtcyA9ICRwYXJhbXM7IAoJCSRvdGhlcnMgPSAkdGhpcy0+R2V0RmllbGRzKCk7CgkJZm9yKCRpPTA7JGk8Y291bnQoJG90aGVycyk7JGkrKykKCQkJewoJCQkkcmVwbFZhbCA9ICcnOwoJCQlpZiAoJG90aGVyc1skaV0tPkRpc3BsYXlJblN1Ym1pc3Npb24oKSkKCQkJCXsKCQkJCSRyZXBsVmFsID0gJG90aGVyc1skaV0tPkdldEh1bWFuUmVhZGFibGVWYWx1ZSgpOwoJCQkJaWYgKCRyZXBsVmFsID09ICcnKQoJCQkJCXsKCQkJCQkkcmVwbFZhbCA9ICR1bnNwZWM7CgkJCQkJfQoJCQkJfQoJCQkkbmFtZSA9ICRvdGhlcnNbJGldLT5HZXRWYXJpYWJsZU5hbWUoKTsKCQkJJHBhcm1zWyRuYW1lXSA9ICRyZXBsVmFsOwoJCQkkaWQgPSAkb3RoZXJzWyRpXS0+R2V0SWQoKTsKCQkJJHBhcm1zWydmbGRfJy4kaWRdID0gJHJlcGxWYWw7CgkJCSRhbGlhcyA9ICRvdGhlcnNbJGldLT5HZXRBbGlhcygpOwoJCQlpZiAoIWVtcHR5KCRhbGlhcykpCgkJCQl7CgkJCQkkcGFybXNbJGFsaWFzXSA9ICRyZXBsVmFsOwoJCQkJfQoJCQl9CgkJJHJlcyA9ICR1c2VydGFnb3BzLT5DYWxsVXNlclRhZygkdWR0LCRwYXJtcyk7CgkJaWYgKCRyZXNbMF0gIT0gdHJ1ZSkKCQkJewkKCQkJYXJyYXlfcHVzaCgkbWVzc2FnZSwkcmVzWzFdKTsKCQkJJHZhbGlkYXRlZCA9IGZhbHNlOwkKCQkJfQoJCX0JCiAgICAgIH0KICAgIHJldHVybiBhcnJheSgkdmFsaWRhdGVkLCAkbWVzc2FnZSk7CiAgfQoKCiAgZnVuY3Rpb24gSGFzRGlzcG9zaXRpb24oKQogIHsKICAgICRoYXNEaXNwID0gZmFsc2U7CiAgICBmb3IoJGk9MDskaTxjb3VudCgkdGhpcy0+RmllbGRzKTskaSsrKQogICAgICB7CglpZiAoJHRoaXMtPkZpZWxkc1skaV0tPklzRGlzcG9zaXRpb24oKSkKCSAgewoJICAgICRoYXNEaXNwID0gdHJ1ZTsKCSAgfQogICAgICB9CiAgICByZXR1cm4gJGhhc0Rpc3A7CiAgfQoKICAvLyByZXR1cm4gYW4gYXJyYXk6IGVsZW1lbnQgMCBpcyB0cnVlIGZvciBzdWNjZXNzLCBmYWxzZSBmb3IgZmFpbHVyZQogIC8vIGVsZW1lbnQgMSBpcyBhbiBhcnJheSBvZiByZWFzb25zLCBpbiB0aGUgZXZlbnQgb2YgZmFpbHVyZS4KICBmdW5jdGlvbiBEaXNwb3NlKCRyZXR1cm5pZCwkc3VwcHJlc3NfZW1haWw9ZmFsc2UpCiAgewogICAgLy8gZmlyc3QsIHdlIHJ1biBhbGwgZmllbGQgbWV0aG9kcyB0aGF0IHdpbGwgbW9kaWZ5IG90aGVyIGZpZWxkcwogICAgJGNvbXB1dGVzID0gYXJyYXkoKTsKICAgIGZvcigkaT0wOyRpPGNvdW50KCR0aGlzLT5GaWVsZHMpOyRpKyspCiAgICAgIHsKCQlpZiAoJHRoaXMtPkZpZWxkc1skaV0tPk1vZGlmaWVzT3RoZXJGaWVsZHMoKSkKCSAgCXsKCSAgICAJJHRoaXMtPkZpZWxkc1skaV0tPk1vZGlmeU90aGVyRmllbGRzKCk7CgkgIAl9CgkgIGlmICgkdGhpcy0+RmllbGRzWyRpXS0+Q29tcHV0ZU9uU3VibWlzc2lvbigpKQoJICAJewoJICAJCSRjb21wdXRlc1skaV0gPSAkdGhpcy0+RmllbGRzWyRpXS0+Q29tcHV0ZU9yZGVyKCk7CgkgIAl9CiAgICAgIH0KICAgICAgCiAgICBhc29ydCgkY29tcHV0ZXMpOwogICAgZm9yZWFjaCgkY29tcHV0ZXMgYXMgJGNLZXk9PiRjVmFsKQogICAgCXsKICAgIAkkdGhpcy0+RmllbGRzWyRjS2V5XS0+Q29tcHV0ZSgpOwogICAgCX0KCiAgICAkcmVzQXJyYXkgPSBhcnJheSgpOwogICAgJHJldENvZGUgPSB0cnVlOwogICAgLy8gZm9yIGVhY2ggZm9ybSBkaXNwb3NpdGlvbiBwc2V1ZG8tZmllbGQsIGRpc3Bvc2UgdGhlIGZvcm0gcmVzdWx0cwogICAgZm9yKCRpPTA7JGk8Y291bnQoJHRoaXMtPkZpZWxkcyk7JGkrKykKICAgICAgewoJaWYgKCR0aGlzLT5GaWVsZHNbJGldLT5Jc0Rpc3Bvc2l0aW9uKCkgJiYgJHRoaXMtPkZpZWxkc1skaV0tPkRpc3Bvc2l0aW9uSXNQZXJtaXR0ZWQoKSkKCSAgewoJCWlmICghICgkc3VwcHJlc3NfZW1haWwgJiYgJHRoaXMtPkZpZWxkc1skaV0tPklzRW1haWxEaXNwb3NpdGlvbigpKSkKCQkJewoJCSAgICAkcmVzID0gJHRoaXMtPkZpZWxkc1skaV0tPkRpc3Bvc2VGb3JtKCRyZXR1cm5pZCk7CgkJICAgIGlmICgkcmVzWzBdID09IGZhbHNlKQoJCSAgICAgIHsKCQkJJHJldENvZGUgPSBmYWxzZTsKCQkJYXJyYXlfcHVzaCgkcmVzQXJyYXksJHJlc1sxXSk7CgkJICAgICAgfQoJCQl9CgkgIH0KICAgICAgfQoKCS8vIGhhbmRsZSBhbnkgbGFzdCBjbGVhbnVwIGZ1bmN0aW9ucwogICAgZm9yKCRpPTA7JGk8Y291bnQoJHRoaXMtPkZpZWxkcyk7JGkrKykKICAgICAgewoJCSR0aGlzLT5GaWVsZHNbJGldLT5Qb3N0RGlzcG9zaXRpb25BY3Rpb24oKTsKCSAgfQogICAgcmV0dXJuIGFycmF5KCRyZXRDb2RlLCRyZXNBcnJheSk7CiAgfQoKICBmdW5jdGlvbiBSZW5kZXJGb3JtSGVhZGVyKCkKICB7CiAgICBpZiAoJHRoaXMtPm1vZHVsZV9wdHItPkdldFByZWZlcmVuY2UoJ3Nob3dfdmVyc2lvbicsMCkgPT0gMSkKICAgICAgewoJcmV0dXJuICJcbjwhLS0gU3RhcnQgRm9ybUJ1aWxkZXIgTW9kdWxlICgiLiR0aGlzLT5tb2R1bGVfcHRyLT5HZXRWZXJzaW9uKCkuIikgLS0+XG4iOwogICAgICB9CiAgfQoKICBmdW5jdGlvbiBSZW5kZXJGb3JtRm9vdGVyKCkKICB7CiAgICBpZiAoJHRoaXMtPm1vZHVsZV9wdHItPkdldFByZWZlcmVuY2UoJ3Nob3dfdmVyc2lvbicsMCkgPT0gMSkKICAgICAgewoJcmV0dXJuICJcbjwhLS0gRW5kIEZvcm1CdWlsZGVyIE1vZHVsZSAtLT5cbiI7CiAgICAgIH0KICB9CgoKICAvLyByZXR1cm5zIGEgc3RyaW5nLgogIGZ1bmN0aW9uIFJlbmRlckZvcm0oJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQogIHsKCWluY2x1ZGUoZGlybmFtZShfX0ZJTEVfXykgLiAnLy4uLy4uLy4uL2xpYi9yZXBsYWNlbWVudC5waHAnKTsgIAoKCS8vIENoZWNrIGlmIGZvcm0gaWQgZ2l2ZW4KICAgICRtb2QgPSAkdGhpcy0+bW9kdWxlX3B0cjsKICAgIGlmICgkdGhpcy0+SWQgPT0gLTEpCiAgICAgIHsKCQlyZXR1cm4gIjwhLS0gbm8gZm9ybSAtLT5cbiI7CiAgICAgIH0KCSAgCgkvLyBDaGVjayBpZiBzaG93IGZ1bGwgZm9ybQogICAgaWYgKCR0aGlzLT5sb2FkZWQgIT0gJ2Z1bGwnKQogICAgICB7CgkJJHRoaXMtPkxvYWQoJHRoaXMtPklkLCRwYXJhbXMsdHJ1ZSk7CiAgICAgIH0KCgkvLyBVc3VhbCBjcmFwCiAgICAkcmVxU3ltYm9sID0gJHRoaXMtPkdldEF0dHIoJ3JlcXVpcmVkX2ZpZWxkX3N5bWJvbCcsJyonKTsKCiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfcGFnZV94X29mX3knLCRtb2QtPkxhbmcoJ3RpdGxlX3BhZ2VfeF9vZl95JyxhcnJheSgkdGhpcy0+UGFnZSwkdGhpcy0+Zm9ybVRvdGFsUGFnZXMpKSk7CgkJCiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignY3NzX2NsYXNzJywkdGhpcy0+R2V0QXR0cignY3NzX2NsYXNzJywnJykpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RvdGFsX3BhZ2VzJywkdGhpcy0+Zm9ybVRvdGFsUGFnZXMpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RoaXNfcGFnZScsJHRoaXMtPlBhZ2UpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2Zvcm1fbmFtZScsJHRoaXMtPk5hbWUpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2Zvcm1faWQnLCR0aGlzLT5JZCk7CgoJLy8gQnVpbGQgaGlkZGVuCiAgICAkaGlkZGVuID0gJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnZm9ybV9pZCcsICR0aGlzLT5JZCk7CglpZiAoaXNzZXQoJHBhcmFtc1snbGFuZyddKSkKCQl7CgkJJGhpZGRlbiAuPSAkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdsYW5nJywgJHBhcmFtc1snbGFuZyddKTsKCQl9CiAgICAkaGlkZGVuIC49ICRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ2ZicnBfY29udGludWUnLCAoJHRoaXMtPlBhZ2UgKyAxKSk7CiAgICBpZiAoaXNzZXQoJHBhcmFtc1snZmJycF9icm93c2VyX2lkJ10pKQogICAgICB7CgkkaGlkZGVuIC49ICRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwnZmJycF9icm93c2VyX2lkJywkcGFyYW1zWydmYnJwX2Jyb3dzZXJfaWQnXSk7CiAgICAgIH0KICAgIGlmIChpc3NldCgkcGFyYW1zWydyZXNwb25zZV9pZCddKSkKICAgICAgewoJICAkaGlkZGVuIC49ICRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwncmVzcG9uc2VfaWQnLCRwYXJhbXNbJ3Jlc3BvbnNlX2lkJ10pOwogICAgICB9CiAgICBpZiAoJHRoaXMtPlBhZ2UgPiAxKQogICAgICB7CgkkaGlkZGVuIC49ICRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ2ZicnBfcHJldmlvdXMnLCAoJHRoaXMtPlBhZ2UgLSAxKSk7CiAgICAgIH0KICAgIGlmICgkdGhpcy0+UGFnZSA9PSAkdGhpcy0+Zm9ybVRvdGFsUGFnZXMpCiAgICAgIHsKCSRoaWRkZW4gLj0gJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnZmJycF9kb25lJywgMSk7CiAgICAgIH0KCSAgCgkgIAoJICAKCS8vIFN0YXJ0IGJ1aWxkaW5nIGZpZWxkcwogICAgJGZpZWxkcyA9IGFycmF5KCk7CiAgICAkcHJldiA9IGFycmF5KCk7CiAgICAkZm9ybVBhZ2VDb3VudCA9IDE7CgkKICAgIGZvciAoJGk9MDsgJGkgPCBjb3VudCgkdGhpcy0+RmllbGRzKTsgJGkrKykgewoJCgkKCSR0aGlzRmllbGQgPSAmJHRoaXMtPkZpZWxkc1skaV07CgkKCWlmICgkdGhpc0ZpZWxkLT5HZXRGaWVsZFR5cGUoKSA9PSAnUGFnZUJyZWFrRmllbGQnKQoJICB7CgkgICAgJGZvcm1QYWdlQ291bnQrKzsKCSAgfQoJaWYgKCRmb3JtUGFnZUNvdW50ICE9ICR0aGlzLT5QYWdlKQoJICB7CgkgICAgJHRlc3RJbmRleCA9ICdmYnJwX18nLiR0aGlzLT5GaWVsZHNbJGldLT5HZXRJZCgpOwoJICAgIGlmICghaXNzZXQoJHBhcmFtc1skdGVzdEluZGV4XSkpCgkgICAgICB7CgkJCS8vIGRvIHdlIG5lZWQgdG8gd3JpdGUgc29tZXRoaW5nPwoJICAgICAgfQoJICAgIGVsc2VpZiAoaXNfYXJyYXkoJHBhcmFtc1skdGVzdEluZGV4XSkpCgkgICAgICB7CgkJZm9yZWFjaCAoJHBhcmFtc1skdGVzdEluZGV4XSBhcyAkdmFsKQoJCSAgewoJCSAgICAkaGlkZGVuIC49ICRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwKCQkJCQkJICAgICAgICR0ZXN0SW5kZXguJ1tdJywKCQkJCQkJICAgICAgICR0aGlzLT51bm15X2h0bWxlbnRpdGllcygkdmFsKSk7CgkJICB9CgkgICAgICB9CgkgICAgZWxzZQoJICAgICAgewoJCSRoaWRkZW4gLj0gJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLAoJCQkJCQkgICAkdGVzdEluZGV4LAoJCQkJCQkgICAkdGhpcy0+dW5teV9odG1sZW50aXRpZXMoJHBhcmFtc1skdGVzdEluZGV4XSkpOwoJICAgICAgfQoJICAgICAgCiAgICAgIGlmICgkZm9ybVBhZ2VDb3VudCA8ICR0aGlzLT5QYWdlICYmICR0aGlzLT5GaWVsZHNbJGldLT5EaXNwbGF5SW5TdWJtaXNzaW9uKCkpCiAgICAgICAgIHsKICAgICAgICAgJG9uZXNldCA9IG5ldyBzdGRDbGFzcygpOwogICAgICAgICAkb25lc2V0LT52YWx1ZSA9ICR0aGlzLT5GaWVsZHNbJGldLT5HZXRIdW1hblJlYWRhYmxlVmFsdWUoKTsKCiAgICAgICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCR0aGlzLT5GaWVsZHNbJGldLT5HZXROYW1lKCksJG9uZXNldCk7CgoJICAgICAgaWYgKCR0aGlzLT5GaWVsZHNbJGldLT5HZXRBbGlhcygpICE9ICcnKQogICAgICAgICAgICB7CgkJICAgICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJHRoaXMtPkZpZWxkc1skaV0tPkdldEFsaWFzKCksJG9uZXNldCk7CgkJICAgICAgfQoKCSAgICAgIGFycmF5X3B1c2goJHByZXYsJG9uZXNldCk7CiAgICAgICAgIH0KCSAgICBjb250aW51ZTsKCSAgfQoJJG9uZXNldCA9IG5ldyBzdGRDbGFzcygpOwoJJG9uZXNldC0+ZGlzcGxheSA9ICR0aGlzRmllbGQtPkRpc3BsYXlJbkZvcm0oKT8xOjA7Cgkkb25lc2V0LT5yZXF1aXJlZCA9ICR0aGlzRmllbGQtPklzUmVxdWlyZWQoKT8xOjA7Cgkkb25lc2V0LT5yZXF1aXJlZF9zeW1ib2wgPSAkdGhpc0ZpZWxkLT5Jc1JlcXVpcmVkKCk/JHJlcVN5bWJvbDonJzsKCSRvbmVzZXQtPmNzc19jbGFzcyA9ICR0aGlzRmllbGQtPkdldE9wdGlvbignY3NzX2NsYXNzJyk7Cgkkb25lc2V0LT5oZWxwdGV4dCA9ICR0aGlzRmllbGQtPkdldE9wdGlvbignaGVscHRleHQnKTsKCSRvbmVzZXQtPmZpZWxkX2hlbHB0ZXh0X2lkID0gJ2ZicnBfaHRfJy4kdGhpc0ZpZWxkLT5HZXRJRCgpOwovLwkkb25lc2V0LT52YWxpZCA9ICR0aGlzRmllbGQtPkdldE9wdGlvbignaXNfdmFsaWQnLHRydWUpPzE6MDsKCSRvbmVzZXQtPnZhbGlkID0gJHRoaXNGaWVsZC0+dmFsaWRhdGVkPzE6MDsKCSRvbmVzZXQtPmVycm9yID0gJHRoaXNGaWVsZC0+R2V0T3B0aW9uKCdpc192YWxpZCcsdHJ1ZSk/Jyc6JHRoaXNGaWVsZC0+dmFsaWRhdGlvbkVycm9yVGV4dDsKCSRvbmVzZXQtPmhpZGVfbmFtZSA9IDA7CglpZiggKCEkdGhpc0ZpZWxkLT5IYXNMYWJlbCgpKSB8fCAkdGhpc0ZpZWxkLT5IaWRlTGFiZWwoKSApCgkgIHsKCSAgICAkb25lc2V0LT5oaWRlX25hbWUgPSAxOwoJICB9Cgkkb25lc2V0LT5oYXNfbGFiZWwgPSAkdGhpc0ZpZWxkLT5IYXNMYWJlbCgpOwoJJG9uZXNldC0+bmVlZHNfZGl2ID0gJHRoaXNGaWVsZC0+TmVlZHNEaXYoKTsKCSRvbmVzZXQtPm5hbWUgPSAkdGhpc0ZpZWxkLT5HZXROYW1lKCk7Cgkkb25lc2V0LT5pbnB1dCA9ICR0aGlzRmllbGQtPkdldEZpZWxkSW5wdXQoJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQpOwoJJG9uZXNldC0+bG9naWMgPSAkdGhpc0ZpZWxkLT5HZXRGaWVsZExvZ2ljKCk7Cgkkb25lc2V0LT52YWx1ZXMgPSAkdGhpc0ZpZWxkLT5HZXRBbGxIdW1hblJlYWRhYmxlVmFsdWVzKCk7Cgkkb25lc2V0LT5zbWFydHlfZXZhbCA9ICR0aGlzRmllbGQtPkdldFNtYXJ0eUV2YWwoKT8xOjA7CgkKCSRvbmVzZXQtPm11bHRpcGxlX3BhcnRzID0gJHRoaXNGaWVsZC0+SGFzTXVsdGlwbGVGb3JtQ29tcG9uZW50cygpPzE6MDsKCSRvbmVzZXQtPmxhYmVsX3BhcnRzID0gJHRoaXNGaWVsZC0+TGFiZWxTdWJDb21wb25lbnRzKCk/MTowOwoJJG9uZXNldC0+dHlwZSA9ICR0aGlzRmllbGQtPkdldERpc3BsYXlUeXBlKCk7Cgkkb25lc2V0LT5pbnB1dF9pZCA9ICR0aGlzRmllbGQtPkdldENTU0lkKCk7CgoJLy8gQWRkZWQgYnkgU3Rpa2tpIFNUQVJUUwoJJG5hbWVfYWxpYXMgPSAkdGhpc0ZpZWxkLT5HZXROYW1lKCk7CgkkbmFtZV9hbGlhcyA9IHN0cl9yZXBsYWNlKCR0b3JlcGxhY2UsICRyZXBsYWNlbWVudCwgJG5hbWVfYWxpYXMpOwoJJG5hbWVfYWxpYXMgPSBzdHJ0b2xvd2VyKCRuYW1lX2FsaWFzKTsKCSRuYW1lX2FsaWFzID0gcHJlZ19yZXBsYWNlKCcvW15hLXowLTldKy9pJywnXycsJG5hbWVfYWxpYXMpOwoKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCRuYW1lX2FsaWFzLCRvbmVzZXQpOwoJLy8gQWRkZWQgYnkgU3Rpa2tpIEVORFMKCQoJaWYgKCR0aGlzRmllbGQtPkdldEFsaWFzKCkgIT0gJycpCgkJewoJCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCR0aGlzRmllbGQtPkdldEFsaWFzKCksJG9uZXNldCk7CgkJfQoKCSRmaWVsZHNbJG9uZXNldC0+aW5wdXRfaWRdID0gJG9uZXNldDsKCS8vYXJyYXlfcHVzaCgkZmllbGRzLCRvbmVzZXQpOwogICAgICB9CgkgIAogICAgJG1vZC0+c21hcnR5LT5hc3NpZ25fYnlfcmVmKCdmYl9oaWRkZW4nLCRoaWRkZW4pOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ25fYnlfcmVmKCdmaWVsZHMnLCRmaWVsZHMpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ25fYnlfcmVmKCdwcmV2aW91cycsJHByZXYpOwoKICAgICRqc1N0ciA9ICcnOwogICAgJGpzVHJpZ2dlciA9ICcnOwogICAgaWYgKCR0aGlzLT5HZXRBdHRyKCdpbnB1dF9idXR0b25fc2FmZXR5JywnMCcpID09ICcxJykKICAgICAgewoJJGpzU3RyID0gJzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCS8qIDwhW0NEQVRBWyAqLwogICAgdmFyIHN1Ym1pdHRlZCA9IDA7CiAgICBmdW5jdGlvbiBMb2NrQnV0dG9uICgpCiAgICAgICB7CiAgICAgICB2YXIgcmV0ID0gZmFsc2U7CiAgICAgICBpZiAoICEgc3VibWl0dGVkICkKICAgICAgICAgIHsKICAgICAgICAgICB2YXIgaXRlbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCInLiRpZC4nZmJycF9zdWJtaXQiKTsKICAgICAgICAgICBpZiAoaXRlbSAhPSBudWxsKQogICAgICAgICAgICAgewogICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHtpdGVtLmRpc2FibGVkID0gdHJ1ZX0sIDApOwogICAgICAgICAgICAgfQogICAgICAgICAgIHN1Ym1pdHRlZCA9IDE7CiAgICAgICAgICAgcmV0ID0gdHJ1ZTsKICAgICAgICAgIH0KICAgICAgICByZXR1cm4gcmV0OwogICAgICAgIH0KLyogXV0+ICovCjwvc2NyaXB0Pic7CiAgICAgICRqc1RyaWdnZXIgPSAiIG9uY2xpY2s9J3JldHVybiBMb2NrQnV0dG9uKCknIjsKICAgICAgfQoKICAgICRqcyA9ICR0aGlzLT5HZXRBdHRyKCdzdWJtaXRfamF2YXNjcmlwdCcpOwoKICAgIGlmICgkdGhpcy0+UGFnZSA+IDEpCiAgICAgIHsKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdwcmV2JywnPGlucHV0IGNsYXNzPSJjbXNfc3VibWl0IGZic3VibWl0X3ByZXYiIG5hbWU9IicuJGlkLidmYnJwX3ByZXYiIGlkPSInLiRpZC4nZmJycF9wcmV2IiB2YWx1ZT0iJy4kdGhpcy0+R2V0QXR0cigncHJldl9idXR0b25fdGV4dCcpLiciIHR5cGU9InN1Ym1pdCIgJy4kanMuJyAvPicpOwkJCQkJCQogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdwcmV2JywnJyk7CiAgICAgIH0KCiAgICBpZiAoJHRoaXMtPlBhZ2UgPCAkZm9ybVBhZ2VDb3VudCkKICAgICAgewoKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCc8aW5wdXQgY2xhc3M9ImNtc19zdWJtaXQgZmJzdWJtaXRfbmV4dCIgbmFtZT0iJy4kaWQuJ2ZicnBfc3VibWl0IiBpZD0iJy4kaWQuJ2ZicnBfc3VibWl0IiB2YWx1ZT0iJy4kdGhpcy0+R2V0QXR0cignbmV4dF9idXR0b25fdGV4dCcpLiciIHR5cGU9InN1Ym1pdCIgJy4kanMuJyAvPicpOyAgCiAgICAgIH0KICAgIGVsc2UKICAgICAgewogICAgICAkY2FwdGNoYSA9ICRtb2QtPmdldE1vZHVsZUluc3RhbmNlKCdDYXB0Y2hhJyk7CiAgICAgIGlmICgkdGhpcy0+R2V0QXR0cigndXNlX2NhcHRjaGEnLCcwJyk9PSAnMScgJiYgJGNhcHRjaGEgIT0gbnVsbCkKICAgICAgICAgewogICAgICAgICAkbW9kLT5zbWFydHktPmFzc2lnbignZ3JhcGhpY19jYXB0Y2hhJywkY2FwdGNoYS0+Z2V0Q2FwdGNoYSgpKTsKICAgICAgICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2NhcHRjaGEnLCR0aGlzLT5HZXRBdHRyKCd0aXRsZV91c2VyX2NhcHRjaGEnLCRtb2QtPkxhbmcoJ3RpdGxlX3VzZXJfY2FwdGNoYScpKSk7CiAgICAgICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF9jYXB0Y2hhJywkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnZmJycF9jYXB0Y2hhX3BocmFzZScsJycpKTsKICAgICAgICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2hhc19jYXB0Y2hhJywnMScpOwogICAgICAgICB9CiAgICAgIGVsc2UKICAgICAgICAgewogICAgICAgICAkbW9kLT5zbWFydHktPmFzc2lnbignaGFzX2NhcHRjaGEnLCcwJyk7CiAgICAgICAgIH0KCQkgCgkJIAoJCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCc8aW5wdXQgY2xhc3M9ImNtc19zdWJtaXQgZmJzdWJtaXQiIG5hbWU9IicuJGlkLidmYnJwX3N1Ym1pdCIgaWQ9IicuJGlkLidmYnJwX3N1Ym1pdCIgdmFsdWU9IicuJHRoaXMtPkdldEF0dHIoJ3N1Ym1pdF9idXR0b25fdGV4dCcpLiciIHR5cGU9InN1Ym1pdCIgJy4kanMuJyAvPicpOyAgCQkgCiAgICAgIH0KCgkgIHJldHVybiAkbW9kLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YWJhc2UoJ2ZiXycuJHRoaXMtPklkKTsKICB9CgogIGZ1bmN0aW9uIExvYWRGb3JtKCRsb2FkRGVlcD1mYWxzZSkKICB7CiAgICByZXR1cm4gJHRoaXMtPkxvYWQoJHRoaXMtPklkLCBhcnJheSgpLCAkbG9hZERlZXApOwogIH0KCmZ1bmN0aW9uIHVubXlfaHRtbGVudGl0aWVzKCR2YWwpCnsKCWlmICgkdmFsID09ICIiKQoJewoJCXJldHVybiAiIjsKCX0KCSR2YWwgPSBodG1sX2VudGl0eV9kZWNvZGUoJHZhbCk7CgkkdmFsID0gc3RyX3JlcGxhY2UoIiZhbXA7IiwiJiIsJHZhbCk7CgkkdmFsID0gc3RyX3JlcGxhY2UoIiYjNjA7JiMzMzstLSIsIjwhLS0iLCR2YWwpOwoJJHZhbCA9IHN0cl9yZXBsYWNlKCItLSYjNjI7IiwiLS0+IiwkdmFsKTsKCSR2YWwgPSBzdHJfcmVwbGFjZSgiJmd0OyIsIj4iLCAkdmFsKTsKCSR2YWwgPSBzdHJfcmVwbGFjZSgiJmx0OyIsIjwiLCR2YWwpOwoJJHZhbCA9IHN0cl9yZXBsYWNlKCImcXVvdDsiLCJcIiIsJHZhbCk7CgkkdmFsID0gc3RyX3JlcGxhY2UoIiYjMDM2OyIsIlwkIiwkdmFsKTsKCSR2YWwgPSBzdHJfcmVwbGFjZSgiJiMzMzsiLCIhIiwkdmFsKTsKCSR2YWwgPSBzdHJfcmVwbGFjZSgiJiMzOTsiLCInIiwkdmFsKTsKCgkvLyBVbmNvbW1lbnQgaWYgeW91IG5lZWQgdG8gY29udmVydCB1bmljb2RlIGNoYXJzCglyZXR1cm4gJHZhbDsKfQoKCgoKCiAgZnVuY3Rpb24gTG9hZCgkZm9ybUlkLCAmJHBhcmFtcywgJGxvYWREZWVwPWZhbHNlLCAkbG9hZFJlc3A9ZmFsc2UpCiAgewoKICAgICRtb2QgPSAkdGhpcy0+bW9kdWxlX3B0cjsKCi8vZXJyb3JfbG9nKCJlbnRlcmluZyBGb3JtIExvYWQgd2l0aCB1c2FnZSAiLm1lbW9yeV9nZXRfdXNhZ2UoKSk7CiAgICAkc3FsID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9mb3JtIFdIRVJFIGZvcm1faWQ9Pyc7CiAgICAkcnMgPSAkdGhpcy0+bW9kdWxlX3B0ci0+ZGJIYW5kbGUtPkV4ZWN1dGUoJHNxbCwgYXJyYXkoJGZvcm1JZCkpOwogICAgaWYoJHJzICYmICRycy0+UmVjb3JkQ291bnQoKSA+IDApCiAgICAgIHsKCSRyZXN1bHQgPSAkcnMtPkZldGNoUm93KCk7CgkkdGhpcy0+SWQgPSAkcmVzdWx0Wydmb3JtX2lkJ107CglpZiAoIWlzc2V0KCRwYXJhbXNbJ2ZicnBfZm9ybV9uYW1lJ10pIHx8IGVtcHR5KCRwYXJhbXNbJ2ZicnBfZm9ybV9uYW1lJ10pKQoJICB7CgkgICAgJHRoaXMtPk5hbWUgPSAkcmVzdWx0WyduYW1lJ107CgkgIH0KCWlmICghaXNzZXQoJHBhcmFtc1snZmJycF9mb3JtX2FsaWFzJ10pIHx8IGVtcHR5KCRwYXJhbXNbJ2ZicnBfZm9ybV9hbGlhcyddKSkKCSAgewoJICAgICR0aGlzLT5BbGlhcyA9ICRyZXN1bHRbJ2FsaWFzJ107CgkgIH0KICAgICAgfQogICAgZWxzZQogICAgICB7CglyZXR1cm4gZmFsc2U7CiAgICAgIH0KICAgICRzcWwgPSAnU0VMRUNUIG5hbWUsdmFsdWUgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4KICAgICAgJ21vZHVsZV9mYl9mb3JtX2F0dHIgV0hFUkUgZm9ybV9pZD0/JzsKICAgICRycyA9ICR0aGlzLT5tb2R1bGVfcHRyLT5kYkhhbmRsZS0+RXhlY3V0ZSgkc3FsLCBhcnJheSgkZm9ybUlkKSk7CiAgICB3aGlsZSAoJHJzICYmICRyZXN1bHQ9JHJzLT5GZXRjaFJvdygpKQogICAgICB7CgkkdGhpcy0+QXR0cnNbJHJlc3VsdFsnbmFtZSddXSA9ICRyZXN1bHRbJ3ZhbHVlJ107CiAgICAgIH0KICAgICAgICAgIAogICAgJHRoaXMtPmxvYWRlZCA9ICdzdW1tYXJ5JzsKCiAgICBpZiAoaXNzZXQoJHBhcmFtc1sncmVzcG9uc2VfaWQnXSkpCiAgICAgIHsKCSRsb2FkRGVlcCA9IHRydWU7CgkkbG9hZFJlc3AgPSB0cnVlOwogICAgICB9CgkJCQogICAgaWYgKCRsb2FkRGVlcCkKICAgICAgewoJICBpZiAoJGxvYWRSZXNwKQoJCXsKCS8vIGlmIGl0J3MgYSBzdG9yZWQgZm9ybSwgbG9hZCB0aGUgcmVzdWx0cyAtLSBidXQgd2UgbmVlZCB0byBtYW51YWxseSBtZXJnZSB0aGVtLAoJLy8gc2luY2UgJHBhcmFtc1tdIHNob3VsZCBvdmVycmlkZSB0aGUgZGF0YWJhc2UgdmFsdWUgKHNheSB3ZSdyZSByZXN1Ym1pdHRpbmcgYSBmb3JtKQoJCSRmYmYgPSAkbW9kLT5HZXRGb3JtQnJvd3NlckZpZWxkKCRmb3JtSWQpOwoJCWlmICgkZmJmICE9IGZhbHNlKQoJCQl7CgkJCS8vIGlmIHdlJ3JlIGJpbmRpbmcgdG8gRkVVLCBnZXQgdGhlIEZFVSBJRCwgc2VlIGlmIHRoZXJlJ3MgYSByZXNwb25zZSBmb3IKCQkJLy8gdGhhdCB1c2VyLiBJZiBzbywgbG9hZCBpdC4gT3RoZXJ3aXNlLCBicmluZyB1cCBhbiBlbXB0eSBmb3JtLgoJCQlpZiAoJGZiZi0+R2V0T3B0aW9uKCdmZXVfYmluZCcsJzAnKT09JzEnKQoJCQkJewoJCQkJJGZldSA9ICRtb2QtPkdldE1vZHVsZUluc3RhbmNlKCdGcm9udEVuZFVzZXJzJyk7CgkJCQlpZiAoJGZldSA9PSBmYWxzZSkKCQkJCQl7CgkJCQkJZGVidWdfZGlzcGxheSgiRkFJTEVEIHRvIGluc3RhdGlhdGUgRkVVISIpOwoJCQkJCXJldHVybjsKCQkJCQl9CgkJCQlpZiAoIWlzc2V0KCRfQ09PS0lFWydjbXNfYWRtaW5fdXNlcl9pZCddKSkKCQkJCQl7CgkJCQkJJHJlc3BvbnNlX2lkID0gJG1vZC0+R2V0UmVzcG9uc2VJREZyb21GRVVJRCgkZmV1LT5Mb2dnZWRJbklkKCkpOwoJCQkJCWlmICgkcmVzcG9uc2VfaWQgIT09IGZhbHNlKQoJCQkJCQl7CgkJCQkJCSRjaGVjayA9ICR0aGlzLT5tb2R1bGVfcHRyLT5kYkhhbmRsZS0+R2V0T25lKCdzZWxlY3QgY291bnQoKikgZnJvbSAnLmNtc19kYl9wcmVmaXgoKS4KCQkJCQkJCSdtb2R1bGVfZmJfZm9ybWJyb3dzZXIgd2hlcmUgZmJyX2lkPT8nLGFycmF5KCRyZXNwb25zZV9pZCkpOwoJCQkJCQlpZiAoJGNoZWNrID09IDEpCgkJCQkJCQl7CgkJCQkJCQkkcGFyYW1zWydyZXNwb25zZV9pZCddID0gJHJlc3BvbnNlX2lkOwoJCQkJCQkJfQoJCQkJCQl9CgkJCQkJfQoJCQkJfQoJCQl9CglpZiAoaXNzZXQoJHBhcmFtc1sncmVzcG9uc2VfaWQnXSkpCgkgIHsKCSAgICAkbG9hZFBhcmFtcyA9IGFycmF5KCdyZXNwb25zZV9pZCc9PiRwYXJhbXNbJ3Jlc3BvbnNlX2lkJ10pOwoJICAgICR0aGlzLT5Mb2FkUmVzcG9uc2VWYWx1ZXMoJGxvYWRQYXJhbXMpOwoJICAgIGZvcmVhY2ggKCRsb2FkUGFyYW1zIGFzICR0aGlzUGFyYW1LZXk9PiR0aGlzUGFyYW1WYWx1ZSkKCSAgICAgIHsKCQlpZiAoISBpc3NldCgkcGFyYW1zWyR0aGlzUGFyYW1LZXldKSkKCQkgIHsKCQkgICAgJHBhcmFtc1skdGhpc1BhcmFtS2V5XSA9ICR0aGlzUGFyYW1WYWx1ZTsKCQkgIH0KCSAgICAgIH0KCSAgfQoJfQoJJHNxbCA9ICdTRUxFQ1QgKiBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkuCgkgICdtb2R1bGVfZmJfZmllbGQgV0hFUkUgZm9ybV9pZD0/IE9SREVSIEJZIG9yZGVyX2J5JzsKCSRycyA9ICR0aGlzLT5tb2R1bGVfcHRyLT5kYkhhbmRsZS0+RXhlY3V0ZSgkc3FsLCBhcnJheSgkZm9ybUlkKSk7CgkkcmVzdWx0ID0gYXJyYXkoKTsKCWlmICgkcnMgJiYgJHJzLT5SZWNvcmRDb3VudCgpID4gMCkKCSAgewoJICAgICRyZXN1bHQgPSAkcnMtPkdldEFycmF5KCk7CgkgIH0KCSRmaWVsZENvdW50ID0gMDsKCWlmIChjb3VudCgkcmVzdWx0KSA+IDApCgkgIHsKCSAgICBmb3JlYWNoKCRyZXN1bHQgYXMgJHRoaXNSZXMpCgkgICAgICB7Ci8vZXJyb3JfbG9nKCJJbnN0YW50aWF0aW5nIEZpZWxkLiB1c2FnZSAiLm1lbW9yeV9nZXRfdXNhZ2UoKSk7CgoJCSRjbGFzc05hbWUgPSAkdGhpcy0+TWFrZUNsYXNzTmFtZSgkdGhpc1Jlc1sndHlwZSddLCAnJyk7CgkJLy8gY3JlYXRlIHRoZSBmaWVsZCBvYmplY3QKCQlpZiAoCgkJICAgICggCgkJICAgICBpc3NldCgkdGhpc1Jlc1snZmllbGRfaWQnXSkgJiYKCQkgICAgICAoCgkJICAgICAgIGlzc2V0KCRwYXJhbXNbJ2ZicnBfXycuJHRoaXNSZXNbJ2ZpZWxkX2lkJ11dKSB8fAoJCSAgICAgICBpc3NldCgkcGFyYW1zWydmYnJwX19fJy4kdGhpc1Jlc1snZmllbGRfaWQnXV0pCgkJICAgICAgICkKCQkgICAgICApIHx8CgkJICAgIChpc3NldCgkdGhpc1Jlc1snZmllbGRfaWQnXSkgJiYKCQkgICAgIGlzc2V0KCRwYXJhbXNbJ3ZhbHVlXycuJHRoaXNSZXNbJ25hbWUnXV0pKSB8fAoJCSAgICAoaXNzZXQoJHRoaXNSZXNbJ2ZpZWxkX2lkJ10pICYmCgkJICAgICBpc3NldCgkcGFyYW1zWyd2YWx1ZV9mbGQnLiR0aGlzUmVzWydmaWVsZF9pZCddXSkpIHx8CgkJICAgICgKCQkgICAgIGlzc2V0KCRwYXJhbXNbJ2ZpZWxkX2lkJ10pICYmIGlzc2V0KCR0aGlzUmVzWydmaWVsZF9pZCddKSAmJgoJCSAgICAgJHBhcmFtc1snZmllbGRfaWQnXSA9PSAkdGhpc1Jlc1snZmllbGRfaWQnXQoJCSAgICAgKQoJCSAgICApCgkJICB7CgkJICAgICR0aGlzUmVzID0gYXJyYXlfbWVyZ2UoJHRoaXNSZXMsJHBhcmFtcyk7CgkJICB9CgkJJHRoaXMtPkZpZWxkc1skZmllbGRDb3VudF0gPSAkdGhpcy0+TmV3RmllbGQoJHRoaXNSZXMpOwoJCSRmaWVsZENvdW50Kys7CgkgICAgICB9CgkgIH0KCSR0aGlzLT5sb2FkZWQgPSAnZnVsbCc7CiAgICAgIH0KCgkJCiAgICBmb3IgKCRpPTA7ICRpIDwgY291bnQoJHRoaXMtPkZpZWxkcyk7ICRpKyspCiAgICAgIHsKCWlmICgkdGhpcy0+RmllbGRzWyRpXS0+VHlwZSA9PSAnUGFnZUJyZWFrRmllbGQnKQoJICB7CgkgICAgJHRoaXMtPmZvcm1Ub3RhbFBhZ2VzKys7CgkgIH0KICAgICAgfQoKICAgIHJldHVybiB0cnVlOwogIH0KCi8qIG5vdGFibGUgcGFyYW1zOgogIGZicnBfeG1sX2ZpbGUgLS0gc291cmNlIGZpbGUgZm9yIHRoZSBYTUwKICB4bWxfc3RyaW5nIC0tIHNvdXJjZSBzdHJpbmcgZm9yIHRoZSBYTUwKKi8KCiAgZnVuY3Rpb24gSW1wb3J0WE1MKCYkcGFyYW1zKQogIHsKICAJLy8geG1sX3BhcnNlcl9jcmVhdGUsIHhtbF9wYXJzZV9pbnRvX3N0cnVjdAogIAkkcGFyc2VyID0geG1sX3BhcnNlcl9jcmVhdGUoJycpOwogICB4bWxfcGFyc2VyX3NldF9vcHRpb24oICRwYXJzZXIsIFhNTF9PUFRJT05fQ0FTRV9GT0xESU5HLCAwICk7CiAgIHhtbF9wYXJzZXJfc2V0X29wdGlvbiggJHBhcnNlciwgWE1MX09QVElPTl9TS0lQX1dISVRFLCAwICk7IC8vIHdhcyAxCiAgICBpZiAoaXNzZXQoJHBhcmFtc1snZmJycF94bWxfZmlsZSddKSAmJiAhIGVtcHR5KCRwYXJhbXNbJ2ZicnBfeG1sX2ZpbGUnXSkpCgkJewoJCXhtbF9wYXJzZV9pbnRvX3N0cnVjdCgkcGFyc2VyLCBmaWxlX2dldF9jb250ZW50cygkcGFyYW1zWydmYnJwX3htbF9maWxlJ10pLCAkdmFsdWVzKTsKCQl9CgllbHNlaWYgKGlzc2V0KCRwYXJhbXNbJ3htbF9zdHJpbmcnXSkgJiYgISBlbXB0eSgkcGFyYW1zWyd4bWxfc3RyaW5nJ10pKQoJCXsKCQl4bWxfcGFyc2VfaW50b19zdHJ1Y3QoJHBhcnNlciwgJHBhcmFtc1sneG1sX3N0cmluZyddLCAkdmFsdWVzKTsKCQl9CgllbHNlCgkJewoJCXJldHVybiBmYWxzZTsKCQl9Cgl4bWxfcGFyc2VyX2ZyZWUoJHBhcnNlcik7CgkkZWxlbWVudHMgPSBhcnJheSgpOwoJJHN0YWNrID0gYXJyYXkoKTsKCSRmaWVsZE1hcCA9IGFycmF5KCk7Cglmb3JlYWNoICggJHZhbHVlcyBhcyAkdGFnICkKCQl7CgkJJGluZGV4ID0gY291bnQoICRlbGVtZW50cyApOwoJCWlmICggJHRhZ1sndHlwZSddID09ICJjb21wbGV0ZSIgfHwgJHRhZ1sndHlwZSddID09ICJvcGVuIiApCgkJCXsKCQkJJGVsZW1lbnRzWyRpbmRleF0gPSBhcnJheSgpOwoJCQkkZWxlbWVudHNbJGluZGV4XVsnbmFtZSddID0gJHRhZ1sndGFnJ107CgkJCSRlbGVtZW50c1skaW5kZXhdWydhdHRyaWJ1dGVzJ10gPSBlbXB0eSgkdGFnWydhdHRyaWJ1dGVzJ10pID8gIiIgOiAkdGFnWydhdHRyaWJ1dGVzJ107CgkJCSRlbGVtZW50c1skaW5kZXhdWydjb250ZW50J10gICAgPSBlbXB0eSgkdGFnWyd2YWx1ZSddKSA/ICIiIDogJHRhZ1sndmFsdWUnXTsKCQkJaWYgKCAkdGFnWyd0eXBlJ10gPT0gIm9wZW4iICkKCQkJCXsKCQkJCSMgcHVzaAoJCQkJJGVsZW1lbnRzWyRpbmRleF1bJ2NoaWxkcmVuJ10gPSBhcnJheSgpOwoJCQkJJHN0YWNrW2NvdW50KCRzdGFjayldID0gJiRlbGVtZW50czsKCQkJCSRlbGVtZW50cyA9ICYkZWxlbWVudHNbJGluZGV4XVsnY2hpbGRyZW4nXTsKCQkJCX0KICAgICAgICB9CgkJaWYgKCAkdGFnWyd0eXBlJ10gPT0gImNsb3NlIiApCgkJCXsgICAgIyBwb3AKCQkJJGVsZW1lbnRzID0gJiRzdGFja1tjb3VudCgkc3RhY2spIC0gMV07CgkJCXVuc2V0KCRzdGFja1tjb3VudCgkc3RhY2spIC0gMV0pOwoJCQl9CgkJfQovL2RlYnVnX2Rpc3BsYXkoJGVsZW1lbnRzKTsKCWlmICghaXNzZXQoJGVsZW1lbnRzWzBdKSB8fCAhaXNzZXQoJGVsZW1lbnRzWzBdKSB8fCAhaXNzZXQoJGVsZW1lbnRzWzBdWydhdHRyaWJ1dGVzJ10pKQoJCXsKCQkvL3BhcnNpbmcgZmFpbGVkLCBvciBpbnZhbGlkIGZpbGUuCgkJcmV0dXJuIGZhbHNlOwoJCX0KCSRwYXJhbXNbJ2Zvcm1faWQnXSA9IC0xOyAvLyBvdmVycmlkZSBhbnkgZm9ybV9pZCB2YWx1ZXMgdGhhdCBtYXkgYmUgYXJvdW5kCgkkZm9ybUF0dHJzID0gJiRlbGVtZW50c1swXVsnYXR0cmlidXRlcyddOwoKICAgaWYgKGlzc2V0KCRwYXJhbXNbJ2ZicnBfaW1wb3J0X2Zvcm1hbGlhcyddKSAmJiAhZW1wdHkoJHBhcmFtc1snZmJycF9pbXBvcnRfZm9ybWFsaWFzJ10pKQogICAgICB7CiAgICAgICR0aGlzLT5TZXRBbGlhcygkcGFyYW1zWydmYnJwX2ltcG9ydF9mb3JtYWxpYXMnXSk7CiAgICAgIH0KICAgZWxzZSBpZiAoJHRoaXMtPmluWE1MKCRmb3JtQXR0cnNbJ2FsaWFzJ10pKQoJCXsKCQkkdGhpcy0+U2V0QWxpYXMoJGZvcm1BdHRyc1snYWxpYXMnXSk7CgkJfQogICBpZiAoaXNzZXQoJHBhcmFtc1snZmJycF9pbXBvcnRfZm9ybW5hbWUnXSkgJiYgIWVtcHR5KCRwYXJhbXNbJ2ZicnBfaW1wb3J0X2Zvcm1uYW1lJ10pKQogICAgICB7CiAgICAgICR0aGlzLT5TZXROYW1lKCRwYXJhbXNbJ2ZicnBfaW1wb3J0X2Zvcm1uYW1lJ10pOwogICAgICB9CgkkZm91bmRmaWVsZHMgPSBmYWxzZTsKCS8vIHBvcHVsYXRlIHRoZSBhdHRyaWJ1dGVzIGFuZCBmaWVsZCBuYW1lIGZpcnN0LiBXaGVuIHdlIHNlZSBhIGZpZWxkLCB3ZSBzYXZlIHRoZSBmb3JtIGFuZCB0aGVuIHN0YXJ0IGFkZGluZyB0aGUgZmllbGRzIHRvIGl0LgoKCWZvcmVhY2ggKCRlbGVtZW50c1swXVsnY2hpbGRyZW4nXSBhcyAkdGhpc0NoaWxkKQoJCXsKCQlpZiAoJHRoaXNDaGlsZFsnbmFtZSddID09ICdmb3JtX25hbWUnKQoJCQl7CgkJCSRjdXJuYW1lID0gICR0aGlzLT5HZXROYW1lKCk7CgkJCWlmIChlbXB0eSgkY3VybmFtZSkpCiAgICAgICAgICAgIHsKCQkJICAgJHRoaXMtPlNldE5hbWUoJHRoaXNDaGlsZFsnY29udGVudCddKTsKCQkJICAgfQoJCQl9CgkJZWxzZWlmICgkdGhpc0NoaWxkWyduYW1lJ10gPT0gJ2F0dHJpYnV0ZScpCgkJCXsKCQkJJHRoaXMtPlNldEF0dHIoJHRoaXNDaGlsZFsnYXR0cmlidXRlcyddWydrZXknXSwgJHRoaXNDaGlsZFsnY29udGVudCddKTsKCQkJfQoJCWVsc2UKCQkJewoJCQkvLyB3ZSBnb3QgdXMgYSBmaWVsZAoJCQlpZiAoISAkZm91bmRmaWVsZHMpCgkJCQl7CgkJCQkvLyBmaXJzdCBmaWVsZAoJCQkJJGZvdW5kZmllbGRzID0gdHJ1ZTsKCQkJCWlmKCBpc3NldCgkcGFyYW1zWydmYnJwX2ltcG9ydF9mb3JtbmFtZSddKSAmJiAKCQkJCSAgICB0cmltKCRwYXJhbXNbJ2ZicnBfaW1wb3J0X2Zvcm1uYW1lJ10pICE9ICcnKQoJCQkJICB7CgkJCQkgICAgJHRoaXMtPlNldE5hbWUodHJpbSgkcGFyYW1zWydmYnJwX2ltcG9ydF9mb3JtbmFtZSddKSk7CgkJCQkgIH0KCQkJCWlmKCBpc3NldCgkcGFyYW1zWydmYnJwX2ltcG9ydF9mb3JtYWxpYXMnXSkgJiYKCQkJCSAgICB0cmltKCRwYXJhbXNbJ2ZicnBfaW1wb3J0X2Zvcm1uYW1lJ10pICE9ICcnKQoJCQkJICB7CgkJCQkgICAgJHRoaXMtPlNldEFsaWFzKHRyaW0oJHBhcmFtc1snZmJycF9pbXBvcnRfZm9ybWFsaWFzJ10pKTsKCQkJCSAgfQoJCQkJJHRoaXMtPlN0b3JlKCk7CgkJCQkkcGFyYW1zWydmb3JtX2lkJ10gPSAkdGhpcy0+R2V0SWQoKTsKCQkJCX0KCQkJCS8vZGVidWdfZGlzcGxheSgkdGhpc0NoaWxkKTsKCQkJJGZpZWxkQXR0cnMgPSAmJHRoaXNDaGlsZFsnYXR0cmlidXRlcyddOwoJCQkkY2xhc3NOYW1lID0gJHRoaXMtPk1ha2VDbGFzc05hbWUoJGZpZWxkQXR0cnNbJ3R5cGUnXSwgJycpOwoJCQkvL2RlYnVnX2Rpc3BsYXkoJGNsYXNzTmFtZSk7CgkJICAgICRuZXdGaWVsZCA9IG5ldyAkY2xhc3NOYW1lKCR0aGlzLCAkcGFyYW1zKTsKCQkJJG9sZElkID0gJGZpZWxkQXR0cnNbJ2lkJ107CgoJCQlpZiAoJHRoaXMtPmluWE1MKCRmaWVsZEF0dHJzWydhbGlhcyddKSkKCQkJCXsKCQkJCSRuZXdGaWVsZC0+U2V0QWxpYXMoJGZpZWxkQXR0cnNbJ2FsaWFzJ10pOwoJCQkJfQoJCQkkbmV3RmllbGQtPlNldFZhbGlkYXRpb25UeXBlKCRmaWVsZEF0dHJzWyd2YWxpZGF0aW9uX3R5cGUnXSk7CgkJCWlmICgkdGhpcy0+aW5YTUwoJGZpZWxkQXR0cnNbJ29yZGVyX2J5J10pKQoJCQkJewoJCQkJJG5ld0ZpZWxkLT5TZXRPcmRlcigkZmllbGRBdHRyc1snb3JkZXJfYnknXSk7CgkJCQl9CgkJCWlmICgkdGhpcy0+aW5YTUwoJGZpZWxkQXR0cnNbJ3JlcXVpcmVkJ10pKQoJCQkJewoJCQkJJG5ld0ZpZWxkLT5TZXRSZXF1aXJlZCgkZmllbGRBdHRyc1sncmVxdWlyZWQnXSk7CgkJCQl9CgkJCWlmICgkdGhpcy0+aW5YTUwoJGZpZWxkQXR0cnNbJ2hpZGVfbGFiZWwnXSkpCgkJCQl7CgkJCQkkbmV3RmllbGQtPlNldEhpZGVMYWJlbCgkZmllbGRBdHRyc1snaGlkZV9sYWJlbCddKTsKCQkJCX0KCQkJZm9yZWFjaCAoJHRoaXNDaGlsZFsnY2hpbGRyZW4nXSBhcyAkdGhpc09wdCkKCQkJCXsJCgkJCQlpZiAoJHRoaXNPcHRbJ25hbWUnXSA9PSAnZmllbGRfbmFtZScpCgkJCQkJewoJCQkJCSRuZXdGaWVsZC0+U2V0TmFtZSgkdGhpc09wdFsnY29udGVudCddKTsKCQkJCQl9CgkJCQlpZiAoJHRoaXNPcHRbJ25hbWUnXSA9PSAnb3B0aW9ucycpCgkJCQkJewoJCQkJCWZvcmVhY2ggKCR0aGlzT3B0WydjaGlsZHJlbiddIGFzICR0aGlzT3B0aW9uKQoJCQkJCQkJewoJCQkJCQkJJG5ld0ZpZWxkLT5PcHRpb25Gcm9tWE1MKCR0aGlzT3B0aW9uKTsKCQkJCQkJCX0KCQkJCQl9CgkJCQl9CgkJCSRuZXdGaWVsZC0+U3RvcmUodHJ1ZSk7CiAgICAgICAgIGFycmF5X3B1c2goJHRoaXMtPkZpZWxkcywkbmV3RmllbGQpOwoJCQkkZmllbGRNYXBbJG9sZElkXSA9ICRuZXdGaWVsZC0+R2V0SWQoKTsKCQkJfQoJCX0KCiAgIC8vIGNsZWFuIHVwIHJlZmVyZW5jZXMKICAgCglpZiAoaXNzZXQoJHBhcmFtc1snZmJycF94bWxfZmlsZSddKSAmJiAhIGVtcHR5KCRwYXJhbXNbJ2ZicnBfeG1sX2ZpbGUnXSkpCgkJewoJCS8vIG5lZWQgdG8gdXBkYXRlIG1hcHBpbmdzIGluIHRlbXBsYXRlcy4KCQkkdG1wID0gJHRoaXMtPnVwZGF0ZVJlZnMoJHRoaXMtPkdldEF0dHIoJ2Zvcm1fdGVtcGxhdGUnLCcnKSwgJGZpZWxkTWFwKTsKCQkkdGhpcy0+U2V0QXR0cignZm9ybV90ZW1wbGF0ZScsJHRtcCk7CgkJJHRtcCA9ICR0aGlzLT51cGRhdGVSZWZzKCR0aGlzLT5HZXRBdHRyKCdzdWJtaXRfcmVzcG9uc2UnLCcnKSwgJGZpZWxkTWFwKTsKCQkkdGhpcy0+U2V0QXR0cignc3VibWl0X3Jlc3BvbnNlJywkdG1wKTsKCgkJLy8gbmVlZCB0byB1cGRhdGUgbWFwcGluZ3MgaW4gZmllbGQgdGVtcGxhdGVzLgogICAgICAkb3B0aW9ucyA9IGFycmF5KCdlbWFpbF90ZW1wbGF0ZScsJ2ZpbGVfdGVtcGxhdGUnKTsKCQlmb3JlYWNoKCR0aGlzLT5GaWVsZHMgYXMgJGZpZD0+JHRoaXNGaWVsZCkKICAgICAgICAgewogICAgICAgICAkY2hhbmdlcyA9IGZhbHNlOwogICAgICAgICBmb3JlYWNoICgkb3B0aW9ucyBhcyAkdG8pCiAgICAgICAgICAgIHsKICAgICAgICAgICAgJHRlbXBsID0gJHRoaXNGaWVsZC0+R2V0T3B0aW9uKCR0bywnJyk7CiAgICAgICAgICAgIGlmICghZW1wdHkoJHRlbXBsKSkKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAkdG1wID0gJHRoaXMtPnVwZGF0ZVJlZnMoJHRlbXBsLCAkZmllbGRNYXApOwogICAgICAgICAgICAgICAkdGhpc0ZpZWxkLT5TZXRPcHRpb24oJHRvLCR0bXApOwogICAgICAgICAgICAgICAkY2hhbmdlcyA9IHRydWU7CiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoJCSAgIC8vIG5lZWQgdG8gdXBkYXRlIG1hcHBpbmdzIGluIEZvcm1Ccm93c2VyIHNvcnQgZmllbGRzCiAgICAgICAgIGlmICgkdGhpc0ZpZWxkLT5HZXRGaWVsZFR5cGUoKSA9PSAnRGlzcG9zaXRpb25Gb3JtQnJvd3NlcicpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgZm9yICgkaT0xOyRpPDY7JGkrKykKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAkb2xkID0gJHRoaXNGaWVsZC0+R2V0T3B0aW9uKCdzb3J0ZmllbGQnLiRpKTsKICAgICAgICAgICAgICAgaWYgKGlzc2V0KCRmaWVsZE1hcFskb2xkXSkpCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgJHRoaXNGaWVsZC0+U2V0T3B0aW9uKCdzb3J0ZmllbGQnLiRpLCRmaWVsZE1hcFskb2xkXSk7CiAgICAgICAgICAgICAgICAgICRjaGFuZ2VzID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgaWYgKCRjaGFuZ2VzKQogICAgICAgICAgICB7CiAgICAgICAgICAgICR0aGlzRmllbGQtPlN0b3JlKHRydWUpOwogICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICR0aGlzLT5TdG9yZSgpOwogICAJfQoJCglyZXR1cm4gdHJ1ZTsJCiAgfQoKCiAgZnVuY3Rpb24gdXBkYXRlUmVmcygkdGV4dCwgJiRmaWVsZE1hcCkKICAgewogICAgICBmb3JlYWNoICgkZmllbGRNYXAgYXMgJGs9PiR2KQogICAgICAgICB7CiAgICAgICAgICR0ZXh0ID0gcHJlZ19yZXBsYWNlKCcvKFtce1xiXHNdKVwkZmxkXycuJGsuJyhbXH1cYlxzXSkvJywnJDFcJGZsZF8nLiR2LickMicsJHRleHQpOwogICAgICAgICB9CiAgICAgIHJldHVybiAkdGV4dDsKICAgfQoKICBmdW5jdGlvbiBpblhNTCgmJHZhcikKICB7CiAgCQlpZiAoaXNzZXQoJHZhcikgJiYgc3RybGVuKCR2YXIpID4gMCkKICAJCQl7CgkJCXJldHVybiB0cnVlOwoJCQl9CgkJZWxzZQoJCQl7CgkJCXJldHVybiBmYWxzZTsKCQkJfQogIH0KCiAgLy8gc3RvcmVEZWVwIGFsc28gc3RvcmVzIGFsbCBmaWVsZHMgYW5kIG9wdGlvbnMgZm9yIGEgZm9ybQogIGZ1bmN0aW9uIFN0b3JlKCRzdG9yZURlZXA9ZmFsc2UpCiAgewogIAoJJGRiID0gJHRoaXMtPm1vZHVsZV9wdHItPmRiSGFuZGxlOwoJJHBhcmFtcyA9ICR0aGlzLT5tb2R1bGVfcGFyYW1zOwogIAoJLy8gQ2hlY2sgaWYgbmV3IG9yIG9sZCBmb3JtCiAgICBpZiAoJHRoaXMtPklkID09IC0xKSB7CgkKCQkkdGhpcy0+SWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zvcm1fc2VxJyk7CgkJJHNxbCA9ICJJTlNFUlQgSU5UTyAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2ZiX2Zvcm0gKGZvcm1faWQsIG5hbWUsIGFsaWFzKSBWQUxVRVMgKD8sID8sID8pIjsKCQkkcmVzID0gJGRiLT5FeGVjdXRlKCRzcWwsIGFycmF5KCR0aGlzLT5JZCwgJHRoaXMtPk5hbWUsICR0aGlzLT5BbGlhcykpOwogICAgfSBlbHNlIHsKCQkKCQkkc3FsID0gIlVQREFURSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2ZiX2Zvcm0gc2V0IG5hbWU9PywgYWxpYXM9PyB3aGVyZSBmb3JtX2lkPT8iOwoJCSRyZXMgPSAkZGItPkV4ZWN1dGUoJHNxbCwgYXJyYXkoJHRoaXMtPk5hbWUsICR0aGlzLT5BbGlhcywgJHRoaXMtPklkKSk7CiAgICB9CgkgIAogICAgLy8gU2F2ZSBvdXQgdGhlIGF0dHJzCiAgICAkc3FsID0gIkRFTEVURSBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZmJfZm9ybV9hdHRyIFdIRVJFIGZvcm1faWQ9PyI7CiAgICAkcmVzID0gJGRiLT5FeGVjdXRlKCRzcWwsIGFycmF5KCR0aGlzLT5JZCkpOwoJCiAgICBmb3JlYWNoICgkdGhpcy0+QXR0cnMgYXMgJHRoaXNBdHRyS2V5PT4kdGhpc0F0dHJWYWx1ZSkgewoJCgkJJGZvcm1BdHRySWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zvcm1fYXR0cl9zZXEnKTsKCQkkc3FsID0gIklOU0VSVCBJTlRPICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZmJfZm9ybV9hdHRyIChmb3JtX2F0dHJfaWQsIGZvcm1faWQsIG5hbWUsIHZhbHVlKSBWQUxVRVMgKD8sID8sID8sID8pIjsKCQkkcmVzID0gJGRiLT5FeGVjdXRlKCRzcWwsIGFycmF5KCRmb3JtQXR0cklkLCAkdGhpcy0+SWQsICR0aGlzQXR0cktleSwgJHRoaXNBdHRyVmFsdWUpKTsKCQoJCWlmICgkdGhpc0F0dHJLZXkgPT0gJ2Zvcm1fdGVtcGxhdGUnKSB7CgkJCgkJCSR0aGlzLT5tb2R1bGVfcHRyLT5TZXRUZW1wbGF0ZSgnZmJfJy4kdGhpcy0+SWQsJHRoaXNBdHRyVmFsdWUpOwoJCX0KICAgIH0KCQoJLy8gVXBkYXRlIGZpZWxkIHBvc2l0aW9uCgkkb3JkZXJfbGlzdCA9IGZhbHNlOwoJaWYgKGlzc2V0KCRwYXJhbXNbJ2ZicnBfc29ydCddKSkKCQl7CgkJJG9yZGVyX2xpc3QgPSBleHBsb2RlKCcsJywkcGFyYW1zWydmYnJwX3NvcnQnXSk7CgkJfQoJCQoJaWYoaXNfYXJyYXkoJG9yZGVyX2xpc3QpICYmIGNvdW50KCRvcmRlcl9saXN0KSA+IDApIHsKCQkKCQkkY291bnQgPSAxOwoJCSRzcWwgPSAiVVBEQVRFICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZmJfZmllbGQgU0VUIG9yZGVyX2J5PT8gV0hFUkUgZmllbGRfaWQ9PyI7CgoJCWZvcmVhY2ggKCRvcmRlcl9saXN0IGFzICRvbmVmbGRpZCkgewoJCgkJCSRmaWVsZGlkID0gc3Vic3RyKCRvbmVmbGRpZCw1KTsKCQkJJGRiLT5FeGVjdXRlKCRzcWwsIGFycmF5KCRjb3VudCwgJGZpZWxkaWQpKTsKCQkJJGNvdW50Kys7CgkJfQoJfQoJCgkvLyBSZWxvYWQgZXZlcnl0aGluZwoJJHRoaXMtPkxvYWQoJHRoaXMtPklkLCRwYXJhbXMsdHJ1ZSk7CgkKICAgIHJldHVybiAkcmVzOwogIH0KCiAgZnVuY3Rpb24gRGVsZXRlKCkKICB7CiAgICBpZiAoJHRoaXMtPklkID09IC0xKQogICAgICB7CgkJcmV0dXJuIGZhbHNlOwogICAgICB9CiAgICBpZiAoJHRoaXMtPmxvYWRlZCAhPSAnZnVsbCcpCiAgICAgIHsKCQkkdGhpcy0+TG9hZCgkdGhpcy0+SWQsYXJyYXkoKSx0cnVlKTsKICAgICAgfQogICAgZm9yZWFjaCAoJHRoaXMtPkZpZWxkcyBhcyAkZmllbGQpCiAgICAgIHsKCQkkZmllbGQtPkRlbGV0ZSgpOwogICAgICB9CiAgICAkdGhpcy0+bW9kdWxlX3B0ci0+RGVsZXRlVGVtcGxhdGUoJ2ZiXycuJHRoaXMtPklkKTsKICAgICRzcWwgPSAnREVMRVRFIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfZmJfZm9ybSB3aGVyZSBmb3JtX2lkPT8nOwogICAgJHJlcyA9ICR0aGlzLT5tb2R1bGVfcHRyLT5kYkhhbmRsZS0+RXhlY3V0ZSgkc3FsLCBhcnJheSgkdGhpcy0+SWQpKTsKICAgICRzcWwgPSAnREVMRVRFIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfZmJfZm9ybV9hdHRyIHdoZXJlIGZvcm1faWQ9Pyc7CiAgICAkcmVzID0gJHRoaXMtPm1vZHVsZV9wdHItPmRiSGFuZGxlLT5FeGVjdXRlKCRzcWwsIGFycmF5KCR0aGlzLT5JZCkpOwogICAgcmV0dXJuIHRydWU7CiAgfQoKICAvLyByZXR1cm5zIGEgY2xhc3MgbmFtZSwgYW5kIG1ha2VzIHN1cmUgdGhlIGZpbGUgd2hlcmUgdGhlIGNsYXNzIGlzCiAgLy8gZGVmaW5lZCBoYXMgYmVlbiBsb2FkZWQuCiAgZnVuY3Rpb24gTWFrZUNsYXNzTmFtZSgkdHlwZSwgJGNsYXNzRGlyUHJlZml4KQogIHsKICAgIC8vIHBlcmZvcm0gcnVkaW1lbnRhcnkgc2VjdXJpdHksIHNpbmNlIFR5cGUgY291bGQgY29tZSBpbiBmcm9tIGEgZm9ybQogICAgJHR5cGUgPSBwcmVnX3JlcGxhY2UoIi9bXFddfFwuXC4vIiwgIl8iLCAkdHlwZSk7CiAgICBpZiAoJHR5cGUgPT0gJycgfHwgc3RybGVuKCR0eXBlKSA8IDEpCiAgICAgIHsKCSR0eXBlID0gJ0ZpZWxkJzsKICAgICAgfQogICAgJGNsYXNzRmlsZT0nJzsKICAgIGlmIChzdHJsZW4oJGNsYXNzRGlyUHJlZml4KSA+IDApCiAgICAgIHsKCSRjbGFzc0ZpbGUgPSAkY2xhc3NEaXJQcmVmaXggLicvJy4kdHlwZS4nLmNsYXNzLnBocCc7CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJJGNsYXNzRmlsZSA9ICR0eXBlLicuY2xhc3MucGhwJzsKICAgICAgfQogICAgcmVxdWlyZV9vbmNlIGNtc19qb2luX3BhdGgoZGlybmFtZShfX0ZJTEVfXyksICRjbGFzc0ZpbGUpOwogICAgLy8gY2xhc3MgbmFtZXMgYXJlIHByZXBlbmRlZCB3aXRoICJmYiIgdG8gcHJldmVudCBuYW1lc3BhY2UgY2xhc2guCiAgICByZXR1cm4gKCAnZmInLiR0eXBlICk7CiAgfQoKICBmdW5jdGlvbiBBZGRFZGl0Rm9ybSgkaWQsICRyZXR1cm5pZCwgJHRhYiwgJG1lc3NhZ2U9JycpCiAgewogICAgZ2xvYmFsICRnQ21zOwogICAgJG1vZCA9ICR0aGlzLT5tb2R1bGVfcHRyOwoJJGNvbmZpZyA9ICRtb2QtPkdldENvbmZpZygpOwoJCQogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ21lc3NhZ2UnLCRtZXNzYWdlKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdmb3Jtc3RhcnQnLCAkbW9kLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAnYWRtaW5fc3RvcmVfZm9ybScsICRyZXR1cm5pZCkpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2Zvcm1pZCcsICRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ2Zvcm1faWQnLCAkdGhpcy0+SWQpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0YWJfc3RhcnQnLCRtb2QtPlN0YXJ0VGFiSGVhZGVycygpLgoJCQkJCQkJJG1vZC0+U2V0VGFiSGVhZGVyKCdtYWludGFiJywkbW9kLT5MYW5nKCd0YWJfbWFpbicpLCgnbWFpbnRhYicgPT0gJHRhYik/dHJ1ZTpmYWxzZSkuCgkJCQkJCQkkbW9kLT5TZXRUYWJIZWFkZXIoJ3N1Ym1pdHRhYicsJG1vZC0+TGFuZygndGFiX3N1Ym1pdCcpLCgnc3VibWl0dGFiJyA9PSAkdGFiKT90cnVlOmZhbHNlKS4KCQkJCQkJCSRtb2QtPlNldFRhYkhlYWRlcignc3ltYm9sdGFiJywkbW9kLT5MYW5nKCd0YWJfc3ltYm9sJyksKCdzeW1ib2x0YWInID09ICR0YWIpP3RydWU6ZmFsc2UpLgoJCQkJCQkJJG1vZC0+U2V0VGFiSGVhZGVyKCdjYXB0Y2hhdGFiJywkbW9kLT5MYW5nKCd0YWJfY2FwdGNoYScpLCgnY2FwdGNoYXRhYicgPT0gJHRhYik/dHJ1ZTpmYWxzZSkuCgkJCQkJCQkkbW9kLT5TZXRUYWJIZWFkZXIoJ3VkdHRhYicsJG1vZC0+TGFuZygndGFiX3VkdCcpLCgndWR0dGFiJyA9PSAkdGFiKT90cnVlOmZhbHNlKS4KCQkJCQkJCSRtb2QtPlNldFRhYkhlYWRlcigndGVtcGxhdGVsYXlvdXQnLCRtb2QtPkxhbmcoJ3RhYl90ZW1wbGF0ZWxheW91dCcpLCgndGVtcGxhdGVsYXlvdXQnID09ICR0YWIpP3RydWU6ZmFsc2UpLgoJCQkJCQkJJG1vZC0+U2V0VGFiSGVhZGVyKCdzdWJtaXR0ZW1wbGF0ZScsJG1vZC0+TGFuZygndGFiX3N1Ym1pc3Npb250ZW1wbGF0ZScpLCgnc3VibWl0dGVtcGxhdGUnID09ICR0YWIpP3RydWU6ZmFsc2UpLgoJCQkJCQkJJG1vZC0+RW5kVGFiSGVhZGVycygpIC4gJG1vZC0+U3RhcnRUYWJDb250ZW50KCkpOwoJICAKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0YWJzX2VuZCcsJG1vZC0+RW5kVGFiQ29udGVudCgpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdtYWludGFiX3N0YXJ0JywkbW9kLT5TdGFydFRhYigibWFpbnRhYiIpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdzdWJtaXR0YWJfc3RhcnQnLCRtb2QtPlN0YXJ0VGFiKCJzdWJtaXR0YWIiKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignc3ltYm9sdGFiX3N0YXJ0JywkbW9kLT5TdGFydFRhYigic3ltYm9sdGFiIikpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3VkdHRhYl9zdGFydCcsJG1vZC0+U3RhcnRUYWIoInVkdHRhYiIpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0ZW1wbGF0ZXRhYl9zdGFydCcsJG1vZC0+U3RhcnRUYWIoInRlbXBsYXRlbGF5b3V0IikpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3N1Ym1pdHRlbXBsYXRldGFiX3N0YXJ0JywkbW9kLT5TdGFydFRhYigic3VibWl0dGVtcGxhdGUiKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignY2FwdGNoYXRhYl9zdGFydCcsJG1vZC0+U3RhcnRUYWIoImNhcHRjaGF0YWIiKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGFiX2VuZCcsJG1vZC0+RW5kVGFiKCkpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2Zvcm1fZW5kJywkbW9kLT5DcmVhdGVGb3JtRW5kKCkpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2Zvcm1fbmFtZScsJG1vZC0+TGFuZygndGl0bGVfZm9ybV9uYW1lJykpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X2Zvcm1fbmFtZScsICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdmYnJwX2Zvcm1fbmFtZScsICR0aGlzLT5OYW1lLCA1MCkpOwoJCgkkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfbG9hZF90ZW1wbGF0ZScsJG1vZC0+TGFuZygndGl0bGVfbG9hZF90ZW1wbGF0ZScpKTsKCSRtb2RMaW5rID0gJG1vZC0+Q3JlYXRlTGluaygkaWQsICdhZG1pbl9nZXRfdGVtcGxhdGUnLCAkcmV0dXJuaWQsICcnLCBhcnJheSgpLCAnJywgdHJ1ZSk7CgkkbW9kLT5zbWFydHktPmFzc2lnbignc2VjdXJpdHlfa2V5JyxDTVNfU0VDVVJFX1BBUkFNX05BTUUuJz0nLiRfU0VTU0lPTltDTVNfVVNFUl9LRVldKTsKCQoJJHRlbXBsYXRlTGlzdCA9IGFycmF5KCcnPT4nJywkbW9kLT5MYW5nKCdkZWZhdWx0X3RlbXBsYXRlJyk9PidSZW5kZXJGb3JtRGVmYXVsdC50cGwnLAoJCSRtb2QtPkxhbmcoJ3RhYmxlX2xlZnRfdGVtcGxhdGUnKT0+J1JlbmRlckZvcm1UYWJsZVRpdGxlTGVmdC50cGwnLAoJCSRtb2QtPkxhbmcoJ3RhYmxlX3RvcF90ZW1wbGF0ZScpPT4nUmVuZGVyRm9ybVRhYmxlVGl0bGVUb3AudHBsJyk7CgkJCgkkYWxsRm9ybXMgPSAkbW9kLT5HZXRGb3JtcygpOwoJZm9yZWFjaCAoJGFsbEZvcm1zIGFzICR0aGlzRm9ybSkKCQl7CgkJaWYgKCR0aGlzRm9ybVsnZm9ybV9pZCddICE9ICR0aGlzLT5JZCkKCQkJewoJCQkkdGVtcGxhdGVMaXN0WyRtb2QtPkxhbmcoJ2Zvcm1fdGVtcGxhdGVfbmFtZScsJHRoaXNGb3JtWyduYW1lJ10pXSA9CgkJCQkkdGhpc0Zvcm1bJ2Zvcm1faWQnXTsKCQkJfQoJCX0KCQoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X2xvYWRfdGVtcGxhdGUnLCRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLAoJCSdmYnJwX2ZiX3RlbXBsYXRlX2xvYWQnLCAkdGVtcGxhdGVMaXN0LCAtMSwgJycsICdpZD0iZmJfdGVtcGxhdGVfbG9hZCIgb25jaGFuZ2U9IiRqUXVlcnkodGhpcykuZmJfZ2V0X3RlbXBsYXRlKFwnJy4kbW9kLT5MYW5nKCd0ZW1wbGF0ZV9hcmVfeW91X3N1cmUnKS4nXCcsXCcnLiRtb2RMaW5rLidcJyk7IicpKTsKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdoZWxwX3RlbXBsYXRlX3ZhcmlhYmxlcycsJG1vZC0+TGFuZygndGVtcGxhdGVfdmFyaWFibGVfaGVscCcpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9mb3JtX3Vuc3BlY2lmaWVkJywkbW9kLT5MYW5nKCd0aXRsZV9mb3JtX3Vuc3BlY2lmaWVkJykpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X2Zvcm1fdW5zcGVjaWZpZWQnLAoJCQkgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2ZicnBfZm9ybWFfdW5zcGVjaWZpZWQnLAoJCQkJCSAgICAgICAkdGhpcy0+R2V0QXR0cigndW5zcGVjaWZpZWQnLCRtb2QtPkxhbmcoJ3Vuc3BlY2lmaWVkJykpLCA1MCkpOwogICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfZm9ybV9zdGF0dXMnLAoJCQkgJG1vZC0+TGFuZygndGl0bGVfZm9ybV9zdGF0dXMnKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGV4dF9yZWFkeScsCgkJCSAkbW9kLT5MYW5nKCd0aXRsZV9yZWFkeV9mb3JfZGVwbG95bWVudCcpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9mb3JtX2FsaWFzJywkbW9kLT5MYW5nKCd0aXRsZV9mb3JtX2FsaWFzJykpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X2Zvcm1fYWxpYXMnLAoJCQkgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2ZicnBfZm9ybV9hbGlhcycsCgkJCQkJICAgICAgICR0aGlzLT5BbGlhcywgNTApKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9mb3JtX2Nzc19jbGFzcycsCgkJCSAkbW9kLT5MYW5nKCd0aXRsZV9mb3JtX2Nzc19jbGFzcycpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF9mb3JtX2Nzc19jbGFzcycsCgkJCSAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnZmJycF9mb3JtYV9jc3NfY2xhc3MnLAoJCQkJCSAgICAgICAkdGhpcy0+R2V0QXR0cignY3NzX2NsYXNzJywnZm9ybWJ1aWxkZXJmb3JtJyksIDUwLDUwKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfZm9ybV9maWVsZHMnLAoJCQkgJG1vZC0+TGFuZygndGl0bGVfZm9ybV9maWVsZHMnKSk7CgkkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfZm9ybV9tYWluJywKCQkJICRtb2QtPkxhbmcoJ3RpdGxlX2Zvcm1fbWFpbicpKTsKICAgIGlmKCAkbW9kLT5HZXRQcmVmZXJlbmNlKCdzaG93X2ZpZWxkaWRzJywwKSAhPSAwICkKICAgICAgewoJICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfZmllbGRfaWQnLAoJCQkgICAgICRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX2lkJykpOwogICAgICB9CiAgICBpZiggJG1vZC0+R2V0UHJlZmVyZW5jZSgnc2hvd19maWVsZGFsaWFzZXMnLDEpICE9IDAgKQogICAgICB7CgkgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9maWVsZF9hbGlhcycsCgkJCSAgICAgJG1vZC0+TGFuZygndGl0bGVfZmllbGRfYWxpYXNfc2hvcnQnKSk7CiAgICAgIH0KCiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignYmFjaycsICRtb2QtPkNyZWF0ZUxpbmsoJGlkLCAnZGVmYXVsdGFkbWluJywgJycsICRtb2QtPkxhbmcoJ2JhY2tfdG9wJyksIGFycmF5KCkpKTsKCiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfZmllbGRfbmFtZScsCgkJCSAkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9uYW1lJykpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2ZpZWxkX3R5cGUnLAoJCQkgJG1vZC0+TGFuZygndGl0bGVfZmllbGRfdHlwZScpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9maWVsZF90eXBlJywKCQkJICRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX3R5cGUnKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfZm9ybV90ZW1wbGF0ZScsCgkJCSAkbW9kLT5MYW5nKCd0aXRsZV9mb3JtX3RlbXBsYXRlJykpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2xpc3RfZGVsaW1pdGVyJywKCQkJICRtb2QtPkxhbmcoJ3RpdGxlX2xpc3RfZGVsaW1pdGVyJykpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX3JlZGlyZWN0X3BhZ2UnLAoJCQkgJG1vZC0+TGFuZygndGl0bGVfcmVkaXJlY3RfcGFnZScpKTsKCQkJIAogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX3N1Ym1pdF9hY3Rpb24nLAoJCQkgJG1vZC0+TGFuZygndGl0bGVfc3VibWl0X2FjdGlvbicpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9zdWJtaXRfcmVzcG9uc2UnLAoJCQkgJG1vZC0+TGFuZygndGl0bGVfc3VibWl0X3Jlc3BvbnNlJykpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX211c3Rfc2F2ZV9vcmRlcicsCgkJCSAkbW9kLT5MYW5nKCd0aXRsZV9tdXN0X3NhdmVfb3JkZXInKSk7CgoKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9pbmxpbmVfZm9ybScsCgkJCSAkbW9kLT5MYW5nKCd0aXRsZV9pbmxpbmVfZm9ybScpKTsKCiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfc3VibWl0X2FjdGlvbnMnLAoJCQkgJG1vZC0+TGFuZygndGl0bGVfc3VibWl0X2FjdGlvbnMnKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfc3VibWl0X2xhYmVscycsCgkJCSAkbW9kLT5MYW5nKCd0aXRsZV9zdWJtaXRfbGFiZWxzJykpOwoJICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9zdWJtaXRfamF2YXNjcmlwdCcsCgkJCQkgJG1vZC0+TGFuZygndGl0bGVfc3VibWl0X2phdmFzY3JpcHQnKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfc3VibWl0X2hlbHAnLAokbW9kLT5jbXMtPnZhcmlhYmxlc1snYWRtaW50aGVtZSddLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9pbmZvLmdpZicsJ3RydWUnLCcnLCcnLCdzeXN0ZW1pY29uJykuCgkJCSAkbW9kLT5MYW5nKCd0aXRsZV9zdWJtaXRfaGVscCcpKTsKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9zdWJtaXRfcmVzcG9uc2VfaGVscCcsCiRtb2QtPmNtcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2luZm8uZ2lmJywndHJ1ZScsJycsJycsJ3N5c3RlbWljb24nKS4KCQkJJG1vZC0+TGFuZygndGl0bGVfc3VibWl0X3Jlc3BvbnNlX2hlbHAnKSk7CgogICAgJHN1Ym1pdEFjdGlvbnMgPSBhcnJheSgkbW9kLT5MYW5nKCdkaXNwbGF5X3RleHQnKT0+J3RleHQnLAogICAgICAgICAkbW9kLT5MYW5nKCdyZWRpcmVjdF90b19wYWdlJyk9PidyZWRpcicpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X3N1Ym1pdF9hY3Rpb24nLAogICAgICAgICAgJG1vZC0+Q3JlYXRlSW5wdXRSYWRpb0dyb3VwKCRpZCwgJ2ZicnBfZm9ybWFfc3VibWl0X2FjdGlvbicsICRzdWJtaXRBY3Rpb25zLCAkdGhpcy0+R2V0QXR0cignc3VibWl0X2FjdGlvbicsJ3RleHQnKSkpOwoKICAgICRjYXB0Y2hhID0gJG1vZC0+Z2V0TW9kdWxlSW5zdGFuY2UoJ0NhcHRjaGEnKTsKICAgIGlmICgkY2FwdGNoYSA9PSBudWxsKQogICAgICAgICB7CiAgICAgICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9pbnN0YWxsX2NhcHRjaGEnLAoJCQkgICAkbW9kLT5MYW5nKCd0aXRsZV9jYXB0Y2hhX25vdF9pbnN0YWxsZWQnKSk7CiAgICAgICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdjYXB0Y2hhX2luc3RhbGxlZCcsMCk7CiAgICAgICAgIH0KICAgIGVsc2UKICAgICAgICAgewogICAgICAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfdXNlX2NhcHRjaGEnLAoJCQkgICAkbW9kLT5MYW5nKCd0aXRsZV91c2VfY2FwdGNoYScpKTsKICAgICAgICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2NhcHRjaGFfaW5zdGFsbGVkJywxKTsKCiAgICAgICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF91c2VfY2FwdGNoYScsJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCdmYnJwX2Zvcm1hX3VzZV9jYXB0Y2hhJywnMCcpLgoJCQkgICAkbW9kLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwnZmJycF9mb3JtYV91c2VfY2FwdGNoYScsJzEnLCR0aGlzLT5HZXRBdHRyKCd1c2VfY2FwdGNoYScsJzAnKSkuCgkJCSAgICRtb2QtPkxhbmcoJ3RpdGxlX3VzZV9jYXB0Y2hhX2hlbHAnKSk7CgkJCX0KICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9pbmZvcm1hdGlvbicsJG1vZC0+TGFuZygnaW5mb3JtYXRpb24nKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfb3JkZXInLCRtb2QtPkxhbmcoJ29yZGVyJykpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2FiYnJldicsJG1vZC0+TGFuZygndGl0bGVfZmllbGRfcmVxdWlyZWRfYWJicmV2JykpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2hhc2Rpc3Bvc2l0aW9uJywkdGhpcy0+SGFzRGlzcG9zaXRpb24oKT8xOjApOwogICAgJG1heE9yZGVyID0gMTsKICAgIGlmKCR0aGlzLT5JZCA+IDApCiAgICAgIHsKCSAgCgkkbW9kLT5zbWFydHktPmFzc2lnbignZmJfaGlkZGVuJywgJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnZmJycF9mb3JtX29wJywkbW9kLT5MYW5nKCd1cGRhdGVkJykpLgoJCQkJCQkJCQkkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdmYnJwX3NvcnQnLCcnLCdpZD0iZmJycF9zb3J0IicpKTsKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdhZGRpbmcnLDApOwoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3NhdmVfYnV0dG9uJywgJG1vZC0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnZmJycF9zdWJtaXQnLCAkbW9kLT5MYW5nKCdzYXZlJykpKTsKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdzdWJtaXRfYnV0dG9uJywgJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnYWN0aXZlX3RhYicsICcnLCAnaWQ9ImZicl9hdGFiIicpLgoJCSRtb2QtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ2ZicnBfc3VibWl0JywgJG1vZC0+TGFuZygnc2F2ZV9hbmRfY29udGludWUnKSwnb25jbGljaz0ialF1ZXJ5KHRoaXMpLmZiX3NldF90YWIoKSInKSk7CgkKCSRmaWVsZExpc3QgPSBhcnJheSgpOwoJJGN1cnJvdyA9ICJyb3cxIjsKCSRjb3VudCA9IDE7CgkkbGFzdCA9ICR0aGlzLT5HZXRGaWVsZENvdW50KCk7Cglmb3JlYWNoICgkdGhpcy0+RmllbGRzIGFzICR0aGlzRmllbGQpCgkgIHsKCSAgICAkb25lc2V0ID0gbmV3IHN0ZENsYXNzKCk7CgkgICAgJG9uZXNldC0+cm93Y2xhc3MgPSAkY3Vycm93OwoJICAgICRvbmVzZXQtPm5hbWUgPSAkbW9kLT5DcmVhdGVMaW5rKCRpZCwgJ2FkbWluX2FkZF9lZGl0X2ZpZWxkJywgJycsICR0aGlzRmllbGQtPkdldE5hbWUoKSwgYXJyYXkoJ2ZpZWxkX2lkJz0+JHRoaXNGaWVsZC0+R2V0SWQoKSwnZm9ybV9pZCc9PiR0aGlzLT5JZCkpOwoJICAgIGlmKCAkbW9kLT5HZXRQcmVmZXJlbmNlKCdzaG93X2ZpZWxkaWRzJywwKSAhPSAwICkKCSAgICAgIHsKCQkJJG9uZXNldC0+aWQgPSAkbW9kLT5DcmVhdGVMaW5rKCRpZCwgJ2FkbWluX2FkZF9lZGl0X2ZpZWxkJywgJycsICR0aGlzRmllbGQtPkdldElkKCksIGFycmF5KCdmaWVsZF9pZCc9PiR0aGlzRmllbGQtPkdldElkKCksJ2Zvcm1faWQnPT4kdGhpcy0+SWQpKTsKCSAgICAgIH0KCSAgICAkb25lc2V0LT50eXBlID0gJHRoaXNGaWVsZC0+R2V0RGlzcGxheVR5cGUoKTsKCSAgICAkb25lc2V0LT5hbGlhcyA9ICR0aGlzRmllbGQtPkdldEFsaWFzKCk7CgkJJG9uZXNldC0+aWQgPSAkdGhpc0ZpZWxkLT5HZXRJRCgpOwoKCSAgICBpZiAoISR0aGlzRmllbGQtPkRpc3BsYXlJbkZvcm0oKSB8fCAkdGhpc0ZpZWxkLT5Jc05vblJlcXVpcmFibGVGaWVsZCgpKQoJICAgICAgewoJCQlpZigkbW9kLT5jbXMtPnZhcmlhYmxlc1snYWRtaW50aGVtZSddLT50aGVtZU5hbWUgPT0gJ05DbGVhbkdyZXknKSB7CgoJCQkJJG9uZXNldC0+ZGlzcG9zaXRpb24gPSAnPGltZyBzcmM9IicuJGNvbmZpZ1sncm9vdF91cmwnXS4nL21vZHVsZXMvJy4kbW9kLT5HZXROYW1lKCkuJy9pbWFnZXMvc3RvcC5naWYiIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgYWx0PSJObyBhdmFpbGFibGUiIHRpdGxlPSJObyBhdmFpbGFibGUiIC8+JzsKCQkJfSBlbHNlIHsKCgkJCQkkb25lc2V0LT5kaXNwb3NpdGlvbiA9ICc8aW1nIHNyYz0iJy4kY29uZmlnWydyb290X3VybCddLicvbW9kdWxlcy8nLiRtb2QtPkdldE5hbWUoKS4nL2ltYWdlcy9zdG9wLmdpZiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBhbHQ9Ik5vIGF2YWlsYWJsZSIgdGl0bGU9Ik5vIGF2YWlsYWJsZSIgLz4nOwkKCQkJfQoJICAgICAgfQoJICAgIGVsc2UgaWYgKCR0aGlzRmllbGQtPklzUmVxdWlyZWQoKSkKCSAgICAgIHsKCQkJJG9uZXNldC0+ZGlzcG9zaXRpb24gPSAkbW9kLT5DcmVhdGVMaW5rKCRpZCwgJ2FkbWluX3VwZGF0ZV9maWVsZF9yZXF1aXJlZCcsICcnLCAkbW9kLT5jbXMtPnZhcmlhYmxlc1snYWRtaW50aGVtZSddLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS90cnVlLmdpZicsJ3RydWUnLCcnLCcnLCdzeXN0ZW1pY29uJyksIGFycmF5KCdmb3JtX2lkJz0+JHRoaXMtPklkLCdmYnJwX2FjdGl2ZSc9PidvZmYnLCdmaWVsZF9pZCc9PiR0aGlzRmllbGQtPkdldElkKCkpLCcnLCAnJywgJycsICdjbGFzcz0idHJ1ZSIgb25jbGljaz0ialF1ZXJ5KHRoaXMpLmZiX2FkbWluX3VwZGF0ZV9maWVsZF9yZXF1aXJlZCgpOyByZXR1cm4gZmFsc2U7IicpOwoJICAgICAgfQoJICAgIGVsc2UKCSAgICAgIHsKCQkJJG9uZXNldC0+ZGlzcG9zaXRpb24gPSAkbW9kLT5DcmVhdGVMaW5rKCRpZCwgJ2FkbWluX3VwZGF0ZV9maWVsZF9yZXF1aXJlZCcsICcnLCAkbW9kLT5jbXMtPnZhcmlhYmxlc1snYWRtaW50aGVtZSddLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9mYWxzZS5naWYnLCdmYWxzZScsJycsJycsJ3N5c3RlbWljb24nKSwgYXJyYXkoJ2Zvcm1faWQnPT4kdGhpcy0+SWQsJ2ZicnBfYWN0aXZlJz0+J29uJywnZmllbGRfaWQnPT4kdGhpc0ZpZWxkLT5HZXRJZCgpKSwnJywgJycsICcnLCAnY2xhc3M9ImZhbHNlIiBvbmNsaWNrPSJqUXVlcnkodGhpcykuZmJfYWRtaW5fdXBkYXRlX2ZpZWxkX3JlcXVpcmVkKCk7IHJldHVybiBmYWxzZTsiJyk7CgkgICAgICB9CgkJICAKCSAgICAkb25lc2V0LT5maWVsZF9zdGF0dXMgPSAkdGhpc0ZpZWxkLT5TdGF0dXNJbmZvKCk7CgkgICAgJG9uZXNldC0+ZWRpdGxpbmsgPSAkbW9kLT5DcmVhdGVMaW5rKCRpZCwgJ2FkbWluX2FkZF9lZGl0X2ZpZWxkJywgJycsICRtb2QtPmNtcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2VkaXQuZ2lmJywkbW9kLT5MYW5nKCdlZGl0JyksJycsJycsJ3N5c3RlbWljb24nKSwgYXJyYXkoJ2ZpZWxkX2lkJz0+JHRoaXNGaWVsZC0+R2V0SWQoKSwnZm9ybV9pZCc9PiR0aGlzLT5JZCkpOwoJICAgICRvbmVzZXQtPmRlbGV0ZWxpbmsgPSAkbW9kLT5DcmVhdGVMaW5rKCRpZCwgJ2FkbWluX2RlbGV0ZV9maWVsZCcsICcnLCAkbW9kLT5jbXMtPnZhcmlhYmxlc1snYWRtaW50aGVtZSddLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9kZWxldGUuZ2lmJywkbW9kLT5MYW5nKCdkZWxldGUnKSwnJywnJywnc3lzdGVtaWNvbicpLCBhcnJheSgnZmllbGRfaWQnPT4kdGhpc0ZpZWxkLT5HZXRJZCgpLCdmb3JtX2lkJz0+JHRoaXMtPklkKSwnJywgJycsICcnLCAnb25jbGljaz0ialF1ZXJ5KHRoaXMpLmZiX2RlbGV0ZV9maWVsZChcJycuJG1vZC0+TGFuZygnYXJlX3lvdV9zdXJlX2RlbGV0ZV9maWVsZCcsaHRtbHNwZWNpYWxjaGFycygkdGhpc0ZpZWxkLT5HZXROYW1lKCkpKS4nXCcpOyByZXR1cm4gZmFsc2U7IicpOwoKCQkvKiBSZW1vdmVkIEJ5IFN0aWtraSwgcmVpbnN0YXRlZCBieSBTakcgd2l0aCBKYXZhc2NyaXB0IHRvIGhpZGUgaXQgaWYgSmF2YXNjcmlwdCdzIGVuYWJsZWQuICovCgkJaWYgKCRjb3VudCA+IDEpCgkJCXsKCQkJJG9uZXNldC0+dXAgPSAkbW9kLT5DcmVhdGVMaW5rKCRpZCwgJ2FkbWluX3VwZGF0ZV9maWVsZF9vcmRlcicsICcnLCAkbW9kLT5jbXMtPnZhcmlhYmxlc1snYWRtaW50aGVtZSddLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9hcnJvdy11LmdpZicsJ3VwJywnJywnJywnc3lzdGVtaWNvbicpLCBhcnJheSgnZm9ybV9pZCc9PiR0aGlzLT5JZCwnZmJycF9kaXInPT4ndXAnLCdmaWVsZF9pZCc9PiR0aGlzRmllbGQtPkdldElkKCkpKTsKCQkJfQoJCWVsc2UKCQkJewoJCQkkb25lc2V0LT51cCA9ICcmbmJzcDsnOwoJCQl9CgkJaWYgKCRjb3VudCA8ICRsYXN0KQoJCQl7CgkJCSRvbmVzZXQtPmRvd249JG1vZC0+Q3JlYXRlTGluaygkaWQsICdhZG1pbl91cGRhdGVfZmllbGRfb3JkZXInLCAnJywgJG1vZC0+Y21zLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vYXJyb3ctZC5naWYnLCdkb3duJywnJywnJywnc3lzdGVtaWNvbicpLCBhcnJheSgnZm9ybV9pZCc9PiR0aGlzLT5JZCwnZmJycF9kaXInPT4nZG93bicsJ2ZpZWxkX2lkJz0+JHRoaXNGaWVsZC0+R2V0SWQoKSkpOwoJCQl9CgkJZWxzZQoJCQl7CgkJCSRvbmVzZXQtPmRvd24gPSAnJm5ic3A7JzsKCQkJfQoKCSAgICAoJGN1cnJvdyA9PSAicm93MSI/JGN1cnJvdz0icm93MiI6JGN1cnJvdz0icm93MSIpOwoJICAgICRjb3VudCsrOwoJICAgIGlmICgkdGhpc0ZpZWxkLT5HZXRPcmRlcigpID49ICRtYXhPcmRlcikKCSAgICAgIHsKCQkJJG1heE9yZGVyID0gJHRoaXNGaWVsZC0+R2V0T3JkZXIoKSArIDE7CgkgICAgICB9CgkgICAgYXJyYXlfcHVzaCgkZmllbGRMaXN0LCAkb25lc2V0KTsKCSAgfQoJICAKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdmaWVsZHMnLCRmaWVsZExpc3QpOwoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2FkZF9maWVsZF9saW5rJywKCQkJICAgICAkbW9kLT5DcmVhdGVMaW5rKCRpZCwgJ2FkbWluX2FkZF9lZGl0X2ZpZWxkJywgJHJldHVybmlkLCRtb2QtPmNtcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL25ld29iamVjdC5naWYnLCRtb2QtPkxhbmcoJ3RpdGxlX2FkZF9uZXdfZmllbGQnKSwnJywnJywnc3lzdGVtaWNvbicpLGFycmF5KCdmb3JtX2lkJz0+JHRoaXMtPklkLCAnZmJycF9vcmRlcl9ieSc9PiRtYXhPcmRlciksICcnLCBmYWxzZSkgLiAkbW9kLT5DcmVhdGVMaW5rKCRpZCwgJ2FkbWluX2FkZF9lZGl0X2ZpZWxkJywgJHJldHVybmlkLCRtb2QtPkxhbmcoJ3RpdGxlX2FkZF9uZXdfZmllbGQnKSxhcnJheSgnZm9ybV9pZCc9PiR0aGlzLT5JZCwgJ2ZicnBfb3JkZXJfYnknPT4kbWF4T3JkZXIpLCAnJywgZmFsc2UpKTsKCglpZiAoJG1vZC0+R2V0UHJlZmVyZW5jZSgnZW5hYmxlX2Zhc3RhZGQnLDEpID09IDEpCgkgIHsKCSAgICAkbW9kLT5zbWFydHktPmFzc2lnbignZmFzdGFkZCcsMSk7CgkgICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2Zhc3RhZGQnLCRtb2QtPkxhbmcoJ3RpdGxlX2Zhc3RhZGQnKSk7CgkgICAgJHR5cGVJbnB1dCA9ICI8c2NyaXB0IHR5cGU9XCJ0ZXh0L2phdmFzY3JpcHRcIj4KLyogPCFbQ0RBVEFbICovCmZ1bmN0aW9uIGZhc3RfYWRkKGZpZWxkX3R5cGUpCnsKCXZhciB0eXBlPWZpZWxkX3R5cGUub3B0aW9uc1tmaWVsZF90eXBlLnNlbGVjdGVkSW5kZXhdLnZhbHVlOwoJdmFyIGxpbmsgPSAnIi4kbW9kLT5DcmVhdGVMaW5rKCRpZCwgJ2FkbWluX2FkZF9lZGl0X2ZpZWxkJywgJHJldHVybmlkLCcnLGFycmF5KCdmb3JtX2lkJz0+JHRoaXMtPklkLCAnZmJycF9vcmRlcl9ieSc9PiRtYXhPcmRlciksICcnLCB0cnVlLHRydWUpLiImIi4kaWQuImZicnBfZmllbGRfdHlwZT0nK3R5cGU7Cgl0aGlzLmxvY2F0aW9uPWxpbms7CglyZXR1cm4gdHJ1ZTsKfQovKiBdXT4gKi8KPC9zY3JpcHQ+IjsKCSAgICAkdHlwZUlucHV0ID0gc3RyX3JlcGxhY2UoJyZhbXA7JywnJicsJHR5cGVJbnB1dCk7IAoJICAgICRtb2QtPmluaXRpYWxpemUoKTsKCSAgICBpZiAoJG1vZC0+R2V0UHJlZmVyZW5jZSgnc2hvd19maWVsZF9sZXZlbCcsJ2Jhc2ljJykgPT0gJ2Jhc2ljJykKCQkJewoJCQkkbW9kLT5zbWFydHktPmFzc2lnbignaW5wdXRfZmFzdGFkZCcsJHR5cGVJbnB1dC4kbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ2ZicnBfZmllbGRfdHlwZScsYXJyYXlfbWVyZ2UoYXJyYXkoJG1vZC0+TGFuZygnc2VsZWN0X3R5cGUnKT0+JycpLCRtb2QtPnN0ZF9maWVsZF90eXBlcyksIC0xLCcnLCAnb25jaGFuZ2U9ImZhc3RfYWRkKHRoaXMpIicpLgoJCQkJJG1vZC0+TGFuZygndGl0bGVfc3dpdGNoX2FkdmFuY2VkJykuCgkJCQkkbW9kLT5DcmVhdGVMaW5rKCRpZCwgJ2FkbWluX2FkZF9lZGl0X2Zvcm0nLCAkcmV0dXJuaWQsJG1vZC0+TGFuZygndGl0bGVfc3dpdGNoX2FkdmFuY2VkX2xpbmsnKSxhcnJheSgnZm9ybV9pZCc9PiR0aGlzLT5JZCwgJ2ZicnBfc2V0X2ZpZWxkX2xldmVsJz0+J2FkdmFuY2VkJykpKTsKCQkJfQoJCWVsc2UKCQkJewoJCQkkbW9kLT5zbWFydHktPmFzc2lnbignaW5wdXRfZmFzdGFkZCcsJHR5cGVJbnB1dC4kbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ2ZicnBfZmllbGRfdHlwZScsYXJyYXlfbWVyZ2UoYXJyYXkoJG1vZC0+TGFuZygnc2VsZWN0X3R5cGUnKT0+JycpLCRtb2QtPmZpZWxkX3R5cGVzKSwgLTEsJycsICdvbmNoYW5nZT0iZmFzdF9hZGQodGhpcykiJykuCgkJCSRtb2QtPkxhbmcoJ3RpdGxlX3N3aXRjaF9iYXNpYycpLgoJCQkkbW9kLT5DcmVhdGVMaW5rKCRpZCwgJ2FkbWluX2FkZF9lZGl0X2Zvcm0nLCAkcmV0dXJuaWQsJG1vZC0+TGFuZygndGl0bGVfc3dpdGNoX2Jhc2ljX2xpbmsnKSxhcnJheSgnZm9ybV9pZCc9PiR0aGlzLT5JZCwgJ2ZicnBfc2V0X2ZpZWxkX2xldmVsJz0+J2Jhc2ljJykpKTsKCQkJfQoJICB9CQkJCQkJCQogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdzYXZlX2J1dHRvbicsJycpOwoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3N1Ym1pdF9idXR0b24nLAoJCQkgICAgICRtb2QtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ2ZicnBfc3VibWl0JywgJG1vZC0+TGFuZygnYWRkJykpKTsKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdmYl9oaWRkZW4nLAoJCQkgICAgICRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ2ZicnBfZm9ybV9vcCcsJG1vZC0+TGFuZygnYWRkZWQnKSkuJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnZmJycF9zb3J0JywnJywnaWQ9ImZicnBfc29ydCInKSk7CgkkbW9kLT5zbWFydHktPmFzc2lnbignYWRkaW5nJywxKTsKICAgICAgfQogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2xpbmtfbm90cmVhZHknLCI8c3Ryb25nPiIuJG1vZC0+TGFuZygndGl0bGVfbm90X3JlYWR5MScpLiI8L3N0cm9uZz4gIi4kbW9kLT5MYW5nKCd0aXRsZV9ub3RfcmVhZHkyJykuIiAiLiRtb2QtPkNyZWF0ZUxpbmsoJGlkLCAnYWRtaW5fYWRkX2VkaXRfZmllbGQnLCAkcmV0dXJuaWQsJG1vZC0+TGFuZygndGl0bGVfbm90X3JlYWR5X2xpbmsnKSxhcnJheSgnZm9ybV9pZCc9PiR0aGlzLT5JZCwgJ2ZicnBfb3JkZXJfYnknPT4kbWF4T3JkZXIsJ2ZicnBfZGlzcG9zZV9vbmx5Jz0+MSksICcnLCBmYWxzZSwgZmFsc2UsJ2NsYXNzPSJtb2R1bGVfZmJfbGluayInKS4iICIuJG1vZC0+TGFuZygndGl0bGVfbm90X3JlYWR5MycpCgkJCSApOwoKICAgCiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignaW5wdXRfaW5saW5lX2Zvcm0nLCRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwnZmJycF9mb3JtYV9pbmxpbmUnLCcwJykuCgkJCSAgICRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCdmYnJwX2Zvcm1hX2lubGluZScsJzEnLCR0aGlzLT5HZXRBdHRyKCdpbmxpbmUnLCcwJykpLgoJCQkgICAkbW9kLT5MYW5nKCd0aXRsZV9pbmxpbmVfZm9ybV9oZWxwJykpOwoKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9mb3JtX3N1Ym1pdF9idXR0b24nLAoJCQkgJG1vZC0+TGFuZygndGl0bGVfZm9ybV9zdWJtaXRfYnV0dG9uJykpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X2Zvcm1fc3VibWl0X2J1dHRvbicsCgkJCSAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnZmJycF9mb3JtYV9zdWJtaXRfYnV0dG9uX3RleHQnLAoJCQkJCSAgICAgICAkdGhpcy0+R2V0QXR0cignc3VibWl0X2J1dHRvbl90ZXh0JywkbW9kLT5MYW5nKCdidXR0b25fc3VibWl0JykpLCAzNSwgMzUpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eScsCgkJCSAkbW9kLT5MYW5nKCd0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eV9oZWxwJykpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X3N1Ym1pdF9idXR0b25fc2FmZXR5JywkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsJ2ZicnBfZm9ybWFfaW5wdXRfYnV0dG9uX3NhZmV0eScsJzAnKS4KCQkJICRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCdmYnJwX2Zvcm1hX2lucHV0X2J1dHRvbl9zYWZldHknLCcxJywkdGhpcy0+R2V0QXR0cignaW5wdXRfYnV0dG9uX3NhZmV0eScsJzAnKSkuCgkJCSAkbW9kLT5MYW5nKCd0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eScpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9mb3JtX3ByZXZfYnV0dG9uJywKCQkJICRtb2QtPkxhbmcoJ3RpdGxlX2Zvcm1fcHJldl9idXR0b24nKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignaW5wdXRfZm9ybV9wcmV2X2J1dHRvbicsCgkJCSAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnZmJycF9mb3JtYV9wcmV2X2J1dHRvbl90ZXh0JywKCQkJCQkgICAgICAgJHRoaXMtPkdldEF0dHIoJ3ByZXZfYnV0dG9uX3RleHQnLCRtb2QtPkxhbmcoJ2J1dHRvbl9wcmV2aW91cycpKSwgMzUsIDM1KSk7CgogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X3RpdGxlX3VzZXJfY2FwdGNoYScsCgkJCSAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnZmJycF9mb3JtYV90aXRsZV91c2VyX2NhcHRjaGEnLAogICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPkdldEF0dHIoJ3RpdGxlX3VzZXJfY2FwdGNoYScsJG1vZC0+TGFuZygndGl0bGVfdXNlcl9jYXB0Y2hhJykpLDM1LDgwKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfdGl0bGVfdXNlcl9jYXB0Y2hhJywkbW9kLT5MYW5nKCd0aXRsZV90aXRsZV91c2VyX2NhcHRjaGEnKSk7CgogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X3RpdGxlX3VzZXJfY2FwdGNoYV9lcnJvcicsCgkJCSAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnZmJycF9mb3JtYV9jYXB0Y2hhX3dyb25nJywKICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5HZXRBdHRyKCdjYXB0Y2hhX3dyb25nJywkbW9kLT5MYW5nKCd3cm9uZ19jYXB0Y2hhJykpLDM1LDgwKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfdXNlcl9jYXB0Y2hhX2Vycm9yJywkbW9kLT5MYW5nKCd0aXRsZV91c2VyX2NhcHRjaGFfZXJyb3InKSk7CgogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2Zvcm1fbmV4dF9idXR0b24nLAoJCQkgJG1vZC0+TGFuZygndGl0bGVfZm9ybV9uZXh0X2J1dHRvbicpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF9mb3JtX25leHRfYnV0dG9uJywKCQkJICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdmYnJwX2Zvcm1hX25leHRfYnV0dG9uX3RleHQnLAoJCQkJCSAgICAgICAkdGhpcy0+R2V0QXR0cignbmV4dF9idXR0b25fdGV4dCcsJG1vZC0+TGFuZygnYnV0dG9uX2NvbnRpbnVlJykpLCAzNSwgMzUpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9mb3JtX3ByZWRpc3BsYXlfdWR0JywKICAgICAgICAgICAgICAgICAgICAgICAgICRtb2QtPkxhbmcoJ3RpdGxlX2Zvcm1fcHJlZGlzcGxheV91ZHQnKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfZm9ybV9wcmVkaXNwbGF5X2VhY2hfdWR0JywKICAgICAgICAgICAgICAgICAgICAgICAgICRtb2QtPkxhbmcoJ3RpdGxlX2Zvcm1fcHJlZGlzcGxheV9lYWNoX3VkdCcpKTsKICAgIHsKICAgICAgJHVzZXJ0YWdvcHMgPSAkZ0Ntcy0+R2V0VXNlclRhZ09wZXJhdGlvbnMoKTsKICAgICAgJHVzZXJ0YWdzID0gJHVzZXJ0YWdvcHMtPkxpc3RVc2VyVGFncygpOwogICAgICAkdXNlcnRhZ2xpc3QgPSBhcnJheSgpOwogICAgICAkdXNlcnRhZ2xpc3RbJG1vZC0+bGFuZygnbm9uZScpXSA9IC0xOwogICAgICBmb3JlYWNoKCAkdXNlcnRhZ3MgYXMgJGtleSA9PiAkdmFsdWUgKQogICAgICAgIHsKICAJICAkdXNlcnRhZ2xpc3RbJHZhbHVlXSA9ICRrZXk7CiAgICAgICAgfQogICAgICAkbW9kLT5zbWFydHktPmFzc2lnbignaW5wdXRfZm9ybV9wcmVkaXNwbGF5X3VkdCcsCiAgICAgICAgICAgICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCdmYnJwX2Zvcm1hX3ByZWRpc3BsYXlfdWR0JywkdXNlcnRhZ2xpc3QsLTEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPkdldEF0dHIoJ3ByZWRpc3BsYXlfdWR0JywtMSkpKTsKICAgICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X2Zvcm1fcHJlZGlzcGxheV9lYWNoX3VkdCcsCiAgICAgICAgICAgICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCdmYnJwX2Zvcm1hX3ByZWRpc3BsYXlfZWFjaF91ZHQnLCR1c2VydGFnbGlzdCwtMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+R2V0QXR0cigncHJlZGlzcGxheV9lYWNoX3VkdCcsLTEpKSk7CgogICAgfQogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2Zvcm1fdmFsaWRhdGVfdWR0JywKICAgICAgICAgICAgICAgICAgICAgICAgICRtb2QtPkxhbmcoJ3RpdGxlX2Zvcm1fdmFsaWRhdGVfdWR0JykpOwogICAgewogICAgICAkdXNlcnRhZ29wcyA9ICRnQ21zLT5HZXRVc2VyVGFnT3BlcmF0aW9ucygpOwogICAgICAkdXNlcnRhZ3MgPSAkdXNlcnRhZ29wcy0+TGlzdFVzZXJUYWdzKCk7CiAgICAgICR1c2VydGFnbGlzdCA9IGFycmF5KCk7CiAgICAgICR1c2VydGFnbGlzdFskbW9kLT5sYW5nKCdub25lJyldID0gLTE7CiAgICAgIGZvcmVhY2goICR1c2VydGFncyBhcyAka2V5ID0+ICR2YWx1ZSApCiAgICAgICAgewogIAkgICR1c2VydGFnbGlzdFskdmFsdWVdID0gJGtleTsKICAgICAgICB9CiAgICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF9mb3JtX3ZhbGlkYXRlX3VkdCcsCiAgICAgICAgICAgICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCdmYnJwX2Zvcm1hX3ZhbGlkYXRlX3VkdCcsJHVzZXJ0YWdsaXN0LC0xLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5HZXRBdHRyKCd2YWxpZGF0ZV91ZHQnLC0xKSkpOwogICAgfQoKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9mb3JtX3JlcXVpcmVkX3N5bWJvbCcsCgkJCSAkbW9kLT5MYW5nKCd0aXRsZV9mb3JtX3JlcXVpcmVkX3N5bWJvbCcpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF9mb3JtX3JlcXVpcmVkX3N5bWJvbCcsCgkJCSAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnZmJycF9mb3JtYV9yZXF1aXJlZF9maWVsZF9zeW1ib2wnLAoJCQkJCSAgICAgICAkdGhpcy0+R2V0QXR0cigncmVxdWlyZWRfZmllbGRfc3ltYm9sJywnKicpLCA1MCkpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X2xpc3RfZGVsaW1pdGVyJywKCQkJICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdmYnJwX2Zvcm1hX2xpc3RfZGVsaW1pdGVyJywKCQkJCQkgICAgICAgJHRoaXMtPkdldEF0dHIoJ2xpc3RfZGVsaW1pdGVyJywnLCcpLCA1MCkpOwoKICAgICRjb250ZW50b3BzID0gJGdDbXMtPkdldENvbnRlbnRPcGVyYXRpb25zKCk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignaW5wdXRfcmVkaXJlY3RfcGFnZScsJGNvbnRlbnRvcHMtPkNyZWF0ZUhpZXJhcmNoeURyb3Bkb3duKCcnLCR0aGlzLT5HZXRBdHRyKCdyZWRpcmVjdF9wYWdlJywnMCcpLCAkaWQuJ2ZicnBfZm9ybWFfcmVkaXJlY3RfcGFnZScpKTsKCiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignaW5wdXRfZm9ybV90ZW1wbGF0ZScsCgkJCSAkbW9kLT5DcmVhdGVUZXh0QXJlYShmYWxzZSwgJGlkLAoJCQkJJHRoaXMtPkdldEF0dHIoJ2Zvcm1fdGVtcGxhdGUnLCR0aGlzLT5EZWZhdWx0VGVtcGxhdGUoKSksICdmYnJwX2Zvcm1hX2Zvcm1fdGVtcGxhdGUnLCcnLCdmYl9mb3JtX3RlbXBsYXRlJywKCQkJCScnLCAnJywgJzgwJywgJzE1JywnJywnaHRtbCcpKTsKCgkkbW9kLT5zbWFydHktPmFzc2lnbignaW5wdXRfc3VibWl0X2phdmFzY3JpcHQnLAoJCSRtb2QtPkNyZWF0ZVRleHRBcmVhKGZhbHNlLCAkaWQsCgkJCQkkdGhpcy0+R2V0QXR0cignc3VibWl0X2phdmFzY3JpcHQnLCcnKSwgJ2ZicnBfZm9ybWFfc3VibWl0X2phdmFzY3JpcHQnLCdtb2R1bGVfZmJfYXJlYV9zaG9ydCcsJ2ZiX3N1Ym1pdF9qYXZhc2NyaXB0JywKCQkJCScnLCAnJywgJzgwJywgJzE1JywnJywnanMnKS4KCQkJCSc8YnIgLz4nLiRtb2QtPkxhbmcoJ3RpdGxlX3N1Ym1pdF9qYXZhc2NyaXB0X2xvbmcnKSk7CgoJCQkJCSAgICAgIAogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X3N1Ym1pdF9yZXNwb25zZScsCgkJCSAkbW9kLT5DcmVhdGVUZXh0QXJlYShmYWxzZSwgJGlkLAoJCQkJJHRoaXMtPkdldEF0dHIoJ3N1Ym1pdF9yZXNwb25zZScsJHRoaXMtPmNyZWF0ZVNhbXBsZVRlbXBsYXRlKHRydWUsZmFsc2UpKSwKCQkJCSdmYnJwX2Zvcm1hX3N1Ym1pdF9yZXNwb25zZScsJ21vZHVsZV9mYl9hcmVhX3dpZGUnLCcnLAoJCQkJJycsICcnLCAnODAnLCAnMTUnLCcnLCdodG1sJykpOwoKCSRwYXJtcyA9IGFycmF5KCk7CgkkcGFybXNbJ2Zvcm1hX3N1Ym1pdF9yZXNwb25zZSddWydodG1sX2J1dHRvbiddID0gdHJ1ZTsKCSRwYXJtc1snZm9ybWFfc3VibWl0X3Jlc3BvbnNlJ11bJ3R4dF9idXR0b24nXSA9IGZhbHNlOwoJJHBhcm1zWydmb3JtYV9zdWJtaXRfcmVzcG9uc2UnXVsnaXNfb25lX2xpbmUnXSA9IGZhbHNlOwoJJHBhcm1zWydmb3JtYV9zdWJtaXRfcmVzcG9uc2UnXVsnaXNfZW1haWwnXSA9IGZhbHNlOwoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2hlbHBfc3VibWl0X3Jlc3BvbnNlJywgJHRoaXMtPkFkbWluVGVtcGxhdGVIZWxwKCRpZCwkcGFybXMpKTsKCglyZXR1cm4gJG1vZC0+UHJvY2Vzc1RlbXBsYXRlKCdBZGRFZGl0Rm9ybS50cGwnKTsKICB9CgoJLy8gQWRkIG5ldyBmaWVsZAogICAgZnVuY3Rpb24gJk5ld0ZpZWxkKCYkcGFyYW1zKQogICAgICB7CgkvLyRhZWZpZWxkID0gbmV3IGZiRmllbGRCYXNlKCR0aGlzLCRwYXJhbXMpOwoJJGFlZmllbGQgPSBmYWxzZTsKICAgICAgICBpZiAoaXNzZXQoJHBhcmFtc1snZmllbGRfaWQnXSkgJiYgJHBhcmFtc1snZmllbGRfaWQnXSAhPSAtMSApCgkgIHsKICAgICAgICAgICAgLy8gd2UncmUgbG9hZGluZyBhbiBleHRhbnQgZmllbGQKCSAgICAkc3FsID0gJ1NFTEVDVCB0eXBlIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfZmJfZmllbGQgV0hFUkUgZmllbGRfaWQ9Pyc7CgkgICAgJHJzID0gJHRoaXMtPm1vZHVsZV9wdHItPmRiSGFuZGxlLT5FeGVjdXRlKCRzcWwsIGFycmF5KCAkcGFyYW1zWydmaWVsZF9pZCddKSk7CgkgICAgaWYoJHJzICYmICRyZXN1bHQgPSAkcnMtPkZldGNoUm93KCkpCgkgICAgICB7CQkJCQoJCWlmICgkcmVzdWx0Wyd0eXBlJ10gIT0gJycpCgkJICB7CgkJICAgICRjbGFzc05hbWUgPSAkdGhpcy0+TWFrZUNsYXNzTmFtZSgkcmVzdWx0Wyd0eXBlJ10gLCAnJyk7CgkJICAgICRhZWZpZWxkID0gbmV3ICRjbGFzc05hbWUoJHRoaXMsICRwYXJhbXMpOwoJCSAgICAkYWVmaWVsZC0+TG9hZEZpZWxkKCRwYXJhbXMpOwoJCSAgfQoJICAgICAgfQoJICB9CglpZiAoJGFlZmllbGQgPT09IGZhbHNlKQoJICB7CgkgICAgLy8gbmV3IGZpZWxkCgkgICAgaWYgKCEgaXNzZXQoJHBhcmFtc1snZmJycF9maWVsZF90eXBlJ10pKQoJICAgICAgewoJCS8vIHVua25vd24gZmllbGQgdHlwZQoJCSRhZWZpZWxkID0gbmV3IGZiRmllbGRCYXNlKCR0aGlzLCRwYXJhbXMpOwoJICAgICAgfQoJICAgIGVsc2UKCSAgICAgIHsKCQkvLyBzcGVjaWZpZWQgZmllbGQgdHlwZSB2aWEgcGFyYW1zCiAgICAgICAgICAgIAkkY2xhc3NOYW1lID0gJHRoaXMtPk1ha2VDbGFzc05hbWUoJHBhcmFtc1snZmJycF9maWVsZF90eXBlJ10sICcnKTsKICAgICAgICAgICAgCSRhZWZpZWxkID0gbmV3ICRjbGFzc05hbWUoJHRoaXMsICRwYXJhbXMpOwoJICAgICAgfQoJICB9CglyZXR1cm4gJGFlZmllbGQ7CiAgICAgIH0KCgoKICBmdW5jdGlvbiBBZGRFZGl0RmllbGQoJGlkLCAmJGFlZmllbGQsICRkaXNwb3NlX29ubHksICRyZXR1cm5pZCwgJG1lc3NhZ2U9JycpCiAgewogICAgJG1vZCA9ICR0aGlzLT5tb2R1bGVfcHRyOwoJCQogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ21lc3NhZ2UnLCRtZXNzYWdlKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdiYWNrdG9mb3JtX25hdicsJG1vZC0+Q3JlYXRlTGluaygkaWQsICdhZG1pbl9hZGRfZWRpdF9mb3JtJywgJHJldHVybmlkLCAkbW9kLT5MYW5nKCdsaW5rX2JhY2tfdG9fZm9ybScpLCBhcnJheSgnZm9ybV9pZCc9PiR0aGlzLT5JZCkpKTsKICAgICRtYWluTGlzdCA9IGFycmF5KCk7CiAgICAkYWR2TGlzdCA9IGFycmF5KCk7CiAgICAkYmFzZUxpc3QgPSAkYWVmaWVsZC0+UHJlUG9wdWxhdGVCYXNlQWRtaW5Gb3JtKCRpZCwgJGRpc3Bvc2Vfb25seSk7CiAgICBpZiAoJGFlZmllbGQtPkdldEZpZWxkVHlwZSgpID09ICcnKQogICAgICB7CgkvLyBzdGlsbCBuZWVkIHR5cGUKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdzdGFydF9mb3JtJywkbW9kLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAnYWRtaW5fYWRkX2VkaXRfZmllbGQnLCAkcmV0dXJuaWQpKTsJCQkKCSRmaWVsZExpc3QgPSBhcnJheSgnbWFpbic9PmFycmF5KCksJ2Fkdic9PmFycmF5KCkpOwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCS8vIHdlIGhhdmUgb3VyIHR5cGUKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdzdGFydF9mb3JtJywkbW9kLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAnYWRtaW5fYWRkX2VkaXRfZmllbGQnLCAkcmV0dXJuaWQpKTsJCgkkZmllbGRMaXN0ID0gJGFlZmllbGQtPlByZVBvcHVsYXRlQWRtaW5Gb3JtKCRpZCk7CiAgICAgIH0KICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdlbmRfZm9ybScsICRtb2QtPkNyZWF0ZUZvcm1FbmQoKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGFiX3N0YXJ0JywkbW9kLT5TdGFydFRhYkhlYWRlcnMoKS4KCQkJICRtb2QtPlNldFRhYkhlYWRlcignbWFpbnRhYicsJG1vZC0+TGFuZygndGFiX21haW4nKSkuCgkJCSAkbW9kLT5TZXRUYWJIZWFkZXIoJ2FkdmFuY2VkdGFiJywkbW9kLT5MYW5nKCd0YWJfYWR2YW5jZWQnKSkuCgkJCSAkbW9kLT5FbmRUYWJIZWFkZXJzKCkgLiAkbW9kLT5TdGFydFRhYkNvbnRlbnQoKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGFic19lbmQnLCRtb2QtPkVuZFRhYkNvbnRlbnQoKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignbWFpbnRhYl9zdGFydCcsJG1vZC0+U3RhcnRUYWIoIm1haW50YWIiKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignYWR2YW5jZWR0YWJfc3RhcnQnLCRtb2QtPlN0YXJ0VGFiKCJhZHZhbmNlZHRhYiIpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0YWJfZW5kJywkbW9kLT5FbmRUYWIoKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignbm90aWNlX3NlbGVjdF90eXBlJywkbW9kLT5MYW5nKCdub3RpY2Vfc2VsZWN0X3R5cGUnKSk7CgogICAgaWYoJGFlZmllbGQtPkdldElkKCkgIT0gLTEpCiAgICAgIHsKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdvcCcsJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnZmJycF9vcCcsJG1vZC0+TGFuZygndXBkYXRlZCcpKSk7CgkkbW9kLT5zbWFydHktPmFzc2lnbignc3VibWl0JywkbW9kLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdmYnJwX2FlZl91cGQnLCAkbW9kLT5MYW5nKCd1cGRhdGUnKSkpOwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdvcCcsJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnZmJycF9vcCcsICRtb2QtPkxhbmcoJ2FkZGVkJykpKTsKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCRtb2QtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ2ZicnBfYWVmX2FkZCcsICRtb2QtPkxhbmcoJ2FkZCcpKSk7CiAgICAgIH0KCiAgICBpZiAoJGFlZmllbGQtPkhhc0FkZE9wKCkpCiAgICAgIHsKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdhZGQnLCRtb2QtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwnZmJycF9hZWZfb3B0YWRkJywkYWVmaWVsZC0+R2V0T3B0aW9uQWRkQnV0dG9uKCkpKTsKICAgICAgfQogICAgZWxzZQogICAgICB7CgkkbW9kLT5zbWFydHktPmFzc2lnbignYWRkJywnJyk7CiAgICAgIH0KICAgIGlmICgkYWVmaWVsZC0+SGFzRGVsZXRlT3AoKSkKICAgICAgewoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2RlbCcsJG1vZC0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCdmYnJwX2FlZl9vcHRkZWwnLCRhZWZpZWxkLT5HZXRPcHRpb25EZWxldGVCdXR0b24oKSkpOwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdkZWwnLCcnKTsKICAgICAgfQoKCiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignZmJfaGlkZGVuJywgJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnZm9ybV9pZCcsICR0aGlzLT5JZCkgLiAkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdmaWVsZF9pZCcsICRhZWZpZWxkLT5HZXRJZCgpKSAuICRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ2ZicnBfb3JkZXJfYnknLCAkYWVmaWVsZC0+R2V0T3JkZXIoKSkuCgkJCSAkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsJ2ZicnBfc2V0X2Zyb21fZm9ybScsJzEnKSk7CgogICAgaWYgKC8qISRhZWZpZWxkLT5Jc0Rpc3Bvc2l0aW9uKCkgJiYgKi8gISRhZWZpZWxkLT5Jc05vblJlcXVpcmFibGVGaWVsZCgpKQogICAgICB7CgkkbW9kLT5zbWFydHktPmFzc2lnbigncmVxdWlyYWJsZScsMSk7CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3JlcXVpcmFibGUnLDApOwogICAgICB9CgkJCQogICAgaWYgKGlzc2V0KCRiYXNlTGlzdFsnbWFpbiddKSkKICAgICAgewoJZm9yZWFjaCAoJGJhc2VMaXN0WydtYWluJ10gYXMgJGl0ZW0pCgkgIHsKCSAgICAkdGl0bGVTdHI9JGl0ZW1bMF07CgkgICAgJGlucHV0U3RyPSRpdGVtWzFdOwoJICAgICRvbmVzZXQgPSBuZXcgc3RkQ2xhc3MoKTsKCSAgICAkb25lc2V0LT50aXRsZSA9ICR0aXRsZVN0cjsKCSAgICBpZiAoaXNfYXJyYXkoJGlucHV0U3RyKSkKCSAgICAgIHsKCQkkb25lc2V0LT5pbnB1dCA9ICRpbnB1dFN0clswXTsKCQkkb25lc2V0LT5oZWxwID0gJGlucHV0U3RyWzFdOwoJICAgICAgfQoJICAgIGVsc2UKCSAgICAgIHsKCQkkb25lc2V0LT5pbnB1dCA9ICRpbnB1dFN0cjsKCQkkb25lc2V0LT5oZWxwPScnOwoJICAgICAgfQoJICAgIGFycmF5X3B1c2goJG1haW5MaXN0LCRvbmVzZXQpOwoJICB9CiAgICAgIH0JCiAgICBpZiAoaXNzZXQoJGJhc2VMaXN0WydhZHYnXSkpCiAgICAgIHsKCWZvcmVhY2ggKCRiYXNlTGlzdFsnYWR2J10gYXMgJGl0ZW0pCgkgIHsKCSAgICAkdGl0bGVTdHIgPSAkaXRlbVswXTsKCSAgICAkaW5wdXRTdHIgPSAkaXRlbVsxXTsKCSAgICAkb25lc2V0ID0gbmV3IHN0ZENsYXNzKCk7CgkgICAgJG9uZXNldC0+dGl0bGUgPSAkdGl0bGVTdHI7CgkgICAgaWYgKGlzX2FycmF5KCRpbnB1dFN0cikpCgkgICAgICB7CgkJJG9uZXNldC0+aW5wdXQgPSAkaW5wdXRTdHJbMF07CgkJJG9uZXNldC0+aGVscCA9ICRpbnB1dFN0clsxXTsKCSAgICAgIH0KCSAgICBlbHNlCgkgICAgICB7CgkJJG9uZXNldC0+aW5wdXQgPSAkaW5wdXRTdHI7CgkJJG9uZXNldC0+aGVscD0nJzsKCSAgICAgIH0KCSAgICBhcnJheV9wdXNoKCRhZHZMaXN0LCRvbmVzZXQpOwoJICB9CiAgICAgIH0JCiAgICBpZiAoaXNzZXQoJGZpZWxkTGlzdFsnbWFpbiddKSkKICAgICAgewoJZm9yZWFjaCAoJGZpZWxkTGlzdFsnbWFpbiddIGFzICRpdGVtKQoJICB7CgkgICAgJHRpdGxlU3RyPSRpdGVtWzBdOwoJICAgICRpbnB1dFN0cj0kaXRlbVsxXTsKCSAgICAkb25lc2V0ID0gbmV3IHN0ZENsYXNzKCk7CgkgICAgJG9uZXNldC0+dGl0bGUgPSAkdGl0bGVTdHI7CgkgICAgaWYgKGlzX2FycmF5KCRpbnB1dFN0cikpCgkgICAgICB7CgkJJG9uZXNldC0+aW5wdXQgPSAkaW5wdXRTdHJbMF07CgkJJG9uZXNldC0+aGVscCA9ICRpbnB1dFN0clsxXTsKCSAgICAgIH0KCSAgICBlbHNlCgkgICAgICB7CgkJJG9uZXNldC0+aW5wdXQgPSAkaW5wdXRTdHI7CgkJJG9uZXNldC0+aGVscD0nJzsKCSAgICAgIH0KCSAgICBhcnJheV9wdXNoKCRtYWluTGlzdCwkb25lc2V0KTsKCSAgfQogICAgICB9CiAgICBpZiAoaXNzZXQoJGZpZWxkTGlzdFsnYWR2J10pKQogICAgICB7Cglmb3JlYWNoICgkZmllbGRMaXN0WydhZHYnXSBhcyAkaXRlbSkKCSAgewoJICAgICR0aXRsZVN0cj0kaXRlbVswXTsKCSAgICAkaW5wdXRTdHI9JGl0ZW1bMV07CgkgICAgJG9uZXNldCA9IG5ldyBzdGRDbGFzcygpOwoJICAgICRvbmVzZXQtPnRpdGxlID0gJHRpdGxlU3RyOwoJICAgIGlmIChpc19hcnJheSgkaW5wdXRTdHIpKQoJICAgICAgewoJCSRvbmVzZXQtPmlucHV0ID0gJGlucHV0U3RyWzBdOwoJCSRvbmVzZXQtPmhlbHAgPSAkaW5wdXRTdHJbMV07CgkgICAgICB9CgkgICAgZWxzZQoJICAgICAgewoJCSRvbmVzZXQtPmlucHV0ID0gJGlucHV0U3RyOwoJCSRvbmVzZXQtPmhlbHA9Jyc7CgkgICAgICB9CgkgICAgYXJyYXlfcHVzaCgkYWR2TGlzdCwkb25lc2V0KTsKCSAgfQogICAgICB9CgkJCiAgICAkYWVmaWVsZC0+UG9zdFBvcHVsYXRlQWRtaW5Gb3JtKCRtYWluTGlzdCwgJGFkdkxpc3QpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ21haW5MaXN0JywkbWFpbkxpc3QpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2Fkdkxpc3QnLCRhZHZMaXN0KTsKICAgIHJldHVybiAkbW9kLT5Qcm9jZXNzVGVtcGxhdGUoJ0FkZEVkaXRGaWVsZC50cGwnKTsKICB9CgogIGZ1bmN0aW9uIE1ha2VBbGlhcygkc3RyaW5nLCAkaXNGb3JtPWZhbHNlKQogIHsKICAgICRzdHJpbmcgPSB0cmltKGh0bWxzcGVjaWFsY2hhcnMoJHN0cmluZykpOwogICAgaWYgKCRpc0Zvcm0pCiAgICAgIHsKCQlyZXR1cm4gc3RydG9sb3dlcigkc3RyaW5nKTsKICAgICAgfQogICAgZWxzZQogICAgICB7CgkJcmV0dXJuICdmYicuc3RydG9sb3dlcigkc3RyaW5nKTsKICAgICAgfQogIH0KICAgIAogIGZ1bmN0aW9uIFN3YXBGaWVsZHNCeUluZGV4KCRzcmNfZmllbGRfaW5kZXgsICRkZXN0X2ZpZWxkX2luZGV4KQogIHsKICAgICRzcmNGaWVsZCA9ICR0aGlzLT5HZXRGaWVsZEJ5SW5kZXgoJHNyY19maWVsZF9pbmRleCk7CiAgICAkZGVzdEZpZWxkID0gJHRoaXMtPkdldEZpZWxkQnlJbmRleCgkZGVzdF9maWVsZF9pbmRleCk7CiAgICAkdG1wT3JkZXJCeSA9ICRkZXN0RmllbGQtPkdldE9yZGVyKCk7CiAgICAkZGVzdEZpZWxkLT5TZXRPcmRlcigkc3JjRmllbGQtPkdldE9yZGVyKCkpOwogICAgJHNyY0ZpZWxkLT5TZXRPcmRlcigkdG1wT3JkZXJCeSk7CiAgICAvL2l0IHNlZW1zIHRoaXMgbWFrZXMgcGhwNCBnbyBjcmF6eSBmaXhlZCBieSByZWxvYWRpbmcgZm9ybSBiZWZvcmUgc2hvd2luZyBpdCBhZ2FpbgogICAgIyAgICAgICAgJHRoaXMtPkZpZWxkc1skZGVzdF9maWVsZF9pbmRleF0gPSAkc3JjRmllbGQ7CiAgICAjICAgICAgICAkdGhpcy0+RmllbGRzWyRzcmNfZmllbGRfaW5kZXhdID0gJGRlc3RGaWVsZDsKICAgICRzcmNGaWVsZC0+U3RvcmUoKTsKICAgICRkZXN0RmllbGQtPlN0b3JlKCk7CiAgfQoKICBmdW5jdGlvbiAmR2V0RmllbGRzKCkKICAgIHsKICAgICAgcmV0dXJuICR0aGlzLT5GaWVsZHM7CiAgICB9CgogIGZ1bmN0aW9uICZHZXRGaWVsZEJ5SWQoJGZpZWxkX2lkKQogICAgewoJJGluZGV4ID0gLTE7CgkkcmV0ID0gZmFsc2U7Cglmb3IgKCRpPTA7JGk8Y291bnQoJHRoaXMtPkZpZWxkcyk7JGkrKykKCQl7CgkJaWYgKCR0aGlzLT5GaWVsZHNbJGldLT5HZXRJZCgpID09ICRmaWVsZF9pZCkKCSAgICAJewoJCQkkaW5kZXggPSAkaTsKCQkJfQoJCX0KCWlmICgkaW5kZXggIT0gLTEpCgkJewoJICAJJHJldCA9ICR0aGlzLT5GaWVsZHNbJGluZGV4XTsKCQl9CglyZXR1cm4gJHJldDsKICAgIH0KCgogIGZ1bmN0aW9uICZHZXRGaWVsZEJ5QWxpYXMoJGZpZWxkX2FsaWFzKQogICAgewoJJGluZGV4ID0gLTE7CgkkcmV0ID0gZmFsc2U7Cglmb3IgKCRpPTA7JGk8Y291bnQoJHRoaXMtPkZpZWxkcyk7JGkrKykKCQl7CgkJaWYgKCR0aGlzLT5GaWVsZHNbJGldLT5HZXRBbGlhcygpID09ICRmaWVsZF9hbGlhcykKCSAgICAJewoJCQkkaW5kZXggPSAkaTsKCQkJfQoJCX0KCWlmICgkaW5kZXggIT0gLTEpCgkJewoJICAJJHJldCA9ICR0aGlzLT5GaWVsZHNbJGluZGV4XTsKCQl9CglyZXR1cm4gJHJldDsKICAgIH0KCiAgZnVuY3Rpb24gJkdldEZpZWxkQnlOYW1lKCRmaWVsZF9uYW1lKQogICAgewoJJGluZGV4ID0gLTE7CgkkcmV0ID0gZmFsc2U7Cglmb3IgKCRpPTA7JGk8Y291bnQoJHRoaXMtPkZpZWxkcyk7JGkrKykKCQl7CgkJaWYgKCR0aGlzLT5GaWVsZHNbJGldLT5HZXROYW1lKCkgPT0gJGZpZWxkX25hbWUpCgkgICAgCXsKCQkJJGluZGV4ID0gJGk7CgkJCX0KCQl9CglpZiAoJGluZGV4ICE9IC0xKQoJCXsKCSAgCSRyZXQgPSAkdGhpcy0+RmllbGRzWyRpbmRleF07CgkJfQoJcmV0dXJuICRyZXQ7CiAgICB9CgoKICBmdW5jdGlvbiAmR2V0RmllbGRCeUluZGV4KCRmaWVsZF9pbmRleCkKICAgIHsKICAgICAgcmV0dXJuICR0aGlzLT5GaWVsZHNbJGZpZWxkX2luZGV4XTsKICAgIH0KCgogIGZ1bmN0aW9uIEdldEZpZWxkSW5kZXhGcm9tSWQoJGZpZWxkX2lkKQogIHsKICAgICRpbmRleCA9IC0xOwogICAgZm9yICgkaT0wOyRpPGNvdW50KCR0aGlzLT5GaWVsZHMpOyRpKyspCiAgICAgIHsKCWlmICgkdGhpcy0+RmllbGRzWyRpXS0+R2V0SWQoKSA9PSAkZmllbGRfaWQpCgkgIHsKCSAgICAkaW5kZXggPSAkaTsKCSAgfQogICAgICB9CiAgICByZXR1cm4gJGluZGV4OwogIH0KCgogIGZ1bmN0aW9uIERlZmF1bHRUZW1wbGF0ZSgpCiAgewogICAgcmV0dXJuIGZpbGVfZ2V0X2NvbnRlbnRzKGRpcm5hbWUoX19GSUxFX18pLicvLi4vdGVtcGxhdGVzL1JlbmRlckZvcm1EZWZhdWx0LnRwbCcpOwogIH0KCiAgZnVuY3Rpb24gRGVsZXRlRmllbGQoJGZpZWxkX2lkKQogIHsKICAgICRpbmRleCA9ICR0aGlzLT5HZXRGaWVsZEluZGV4RnJvbUlkKCRmaWVsZF9pZCk7CiAgICBpZiAoJGluZGV4ICE9IC0xKQogICAgICB7CgkkdGhpcy0+RmllbGRzWyRpbmRleF0tPkRlbGV0ZSgpOwoJYXJyYXlfc3BsaWNlKCR0aGlzLT5GaWVsZHMsJGluZGV4LDEpOwogICAgICB9CiAgfSAKCiAgZnVuY3Rpb24gUmVzZXRGaWVsZHMoKQogIHsKICAgIGZvcigkaT0wOyRpPGNvdW50KCR0aGlzLT5GaWVsZHMpOyRpKyspCiAgICAgIHsKCQkkdGhpcy0+RmllbGRzWyRpXS0+UmVzZXRWYWx1ZSgpOwogICAgICB9CiAgfQoKICAvLyBGb3JtQnJvd3NlciA+PSAwLjMgUmVzcG9uc2UgbG9hZCBtZXRob2QuIFRoaXMgcG9wdWxhdGVzIHRoZSBGaWVsZCB2YWx1ZXMgZGlyZWN0bHkKICAvLyAoYXMgb3Bwb3NlZCB0byBMb2FkUmVzcG9uc2VWYWx1ZXMsIHdoaWNoIHBsYWNlcyB0aGUgdmFsdWVzIGludG8gdGhlICRwYXJhbXMgYXJyYXkpCiAgZnVuY3Rpb24gTG9hZFJlc3BvbnNlKCRyZXNwb25zZV9pZCkKICB7CgkkbW9kID0gJHRoaXMtPm1vZHVsZV9wdHI7CgkkZGIgPSAkdGhpcy0+bW9kdWxlX3B0ci0+ZGJIYW5kbGU7CgkJCgkkb25lc2V0ID0gbmV3IFN0ZENsYXNzKCk7CgkkcmVzID0gJGRiLT5FeGVjdXRlKCdTRUxFQ1QgcmVzcG9uc2UsIGZvcm1faWQgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4KCQkJCQknbW9kdWxlX2ZiX2Zvcm1icm93c2VyIFdIRVJFIGZicl9pZD0/JywgYXJyYXkoJHJlc3BvbnNlX2lkKSk7CgoJaWYgKCRyZXMgJiYgJHJvdz0kcmVzLT5GZXRjaFJvdygpKQoJCXsKCQkkb25lc2V0LT54bWwgPSAkcm93WydyZXNwb25zZSddOwoJCSRvbmVzZXQtPmZvcm1faWQgPSAkcm93Wydmb3JtX2lkJ107CgkJfQoJaWYgKCRvbmVzZXQtPmZvcm1faWQgIT0gJHRoaXMtPkdldElkKCkpCgkJewoJCXJldHVybiBmYWxzZTsKCQl9CgkkZmJGaWVsZCA9ICR0aGlzLT5HZXRGb3JtQnJvd3NlckZpZWxkKCk7CglpZiAoJGZiRmllbGQgPT0gZmFsc2UpCgkJewoJCS8vIGVycm9yIGhhbmRsaW5nIGdvZXMgaGVyZS4KCQllY2hvKCRtb2QtPkxhbmcoJ2Vycm9yX2hhc19ub19mYl9maWVsZCcpKTsKCQl9CgkkbW9kLT5IYW5kbGVSZXNwb25zZUZyb21YTUwoJGZiRmllbGQsICRvbmVzZXQpOwoKCWxpc3QoJGZuYW1lcywgJGFsaWFzZXMsICR2YWxzKSA9ICRtb2QtPlBhcnNlUmVzcG9uc2VYTUwoJG9uZXNldC0+eG1sLCBmYWxzZSk7CgkkdGhpcy0+UmVzZXRGaWVsZHMoKTsKCWZvcmVhY2ggKCR2YWxzIGFzICRpZD0+JHZhbCkKCQl7CgkJLy9lcnJvcl9sb2coInNldHRpbmcgdmFsdWUgb2YgZmllbGQgIi4kaWQuIiB0byBiZSAiLiR2YWwpOwoJCSRpbmRleCA9ICR0aGlzLT5HZXRGaWVsZEluZGV4RnJvbUlkKCRpZCk7CgkJaWYoJGluZGV4ICE9IC0xICYmICBpc19vYmplY3QoJHRoaXMtPkZpZWxkc1skaW5kZXhdKSApCgkJCXsKCQkJJHRoaXMtPkZpZWxkc1skaW5kZXhdLT5TZXRWYWx1ZSgkdmFsKTsKCQkJfQoJCX0KCXJldHVybiB0cnVlOwogIH0KCgkvLyBDaGVjayBpZiBGb3JtQnJvd2Vpc2VyIGZpZWxkIGV4aXN0cwoJZnVuY3Rpb24gR2V0Rm9ybUJyb3dzZXJGaWVsZCgpCgl7CgkJJGZpZWxkcyA9ICR0aGlzLT5HZXRGaWVsZHMoKTsKCQkkZmJGaWVsZCA9IGZhbHNlOwoJCWZvcmVhY2goJGZpZWxkcyBhcyAkdGhpc0ZpZWxkKQoJCQl7CgkJCWlmICgkdGhpc0ZpZWxkLT5HZXRGaWVsZFR5cGUoKSA9PSAnRGlzcG9zaXRpb25Gb3JtQnJvd3NlcicpCgkJCQl7CgkJCQkkZmJGaWVsZCA9ICR0aGlzRmllbGQ7CgkJCQl9CgkJCX0KCQlpZiAoJGZiRmllbGQgPT0gZmFsc2UpCgkJCXsKCQkJLy8gZXJyb3IgaGFuZGxpbmcgZ29lcyBoZXJlLgoJCQlyZXR1cm4gZmFsc2U7CQoJCQl9CgkJcmV0dXJuICRmYkZpZWxkOwkJCgl9CgoKICBmdW5jdGlvbiBSZWluZGV4UmVzcG9uc2VzKCkKICB7CglAc2V0X3RpbWVfbGltaXQoMCk7CgkkbW9kID0gJHRoaXMtPm1vZHVsZV9wdHI7CgkkZGIgPSAkdGhpcy0+bW9kdWxlX3B0ci0+ZGJIYW5kbGU7CgkkcmVzcG9uc2VzID0gYXJyYXkoKTsKCSRyZXMgPSAkZGItPkV4ZWN1dGUoJ1NFTEVDVCBmYnJfaWQgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zvcm1icm93c2VyIFdIRVJFIGZvcm1faWQ9PycsIGFycmF5KCR0aGlzLT5JZCkpOwoJd2hpbGUgKCRyZXMgJiYgJHJvdz0kcmVzLT5GZXRjaFJvdygpKQoJCXsKCQlhcnJheV9wdXNoKCRyZXNwb25zZXMsJHJvd1snZmJyX2lkJ10pOwoJCX0KCSRmYnJfZmllbGQgPSAkdGhpcy0+R2V0Rm9ybUJyb3dzZXJGaWVsZCgpOwoJZm9yZWFjaCgkcmVzcG9uc2VzIGFzICR0aGlzX3Jlc3ApCgkJewoJCWlmICgkdGhpcy0+TG9hZFJlc3BvbnNlKCR0aGlzX3Jlc3ApKQoJCQl7CgkJCSR0aGlzLT5TdG9yZVJlc3BvbnNlKCR0aGlzX3Jlc3AsJycsJGZicl9maWVsZCk7CgkJCX0KCQl9CiAgfQoKCiAgLy8gRm9ybUJyb3dzZXIgPj0gMC4zIFJlc3BvbnNlIGxvYWQgbWV0aG9kLiBUaGlzIHBvcHVsYXRlcyB0aGUgJHBhcmFtcyBhcnJheSBmb3IgbGF0ZXIgcHJvY2Vzc2luZy9jb21iaW5hdGlvbgogIC8vIChhcyBvcHBvc2VkIHRvIExvYWRSZXNwb25zZSwgd2hpY2ggcGxhY2VzIHRoZSB2YWx1ZXMgaW50byB0aGUgRmllbGQgdmFsdWVzIGRpcmVjdGx5KQogIGZ1bmN0aW9uIExvYWRSZXNwb25zZVZhbHVlcygmJHBhcmFtcykKICB7CgkkbW9kID0gJHRoaXMtPm1vZHVsZV9wdHI7CgkkZGIgPSAkdGhpcy0+bW9kdWxlX3B0ci0+ZGJIYW5kbGU7Cgkkb25lc2V0ID0gbmV3IFN0ZENsYXNzKCk7CgkkZm9ybV9pZCA9IC0xOwoJJHJlcyA9ICRkYi0+RXhlY3V0ZSgnU0VMRUNUIHJlc3BvbnNlLCBmb3JtX2lkIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9mb3JtYnJvd3NlciBXSEVSRSBmYnJfaWQ9PycsIGFycmF5KCRwYXJhbXNbJ3Jlc3BvbnNlX2lkJ10pKTsKCglpZiAoJHJlcyAmJiAkcm93PSRyZXMtPkZldGNoUm93KCkpCgkJewoJCSRvbmVzZXQtPnhtbCA9ICRyb3dbJ3Jlc3BvbnNlJ107CgkJJGZvcm1faWQgPSAkcm93Wydmb3JtX2lkJ107CgkJfQoJLy8gbG9hZGVkIGEgcmVzcG9uc2UgLS0gYXQgdGhpcyBwb2ludCwgd2UgY2hlY2sgdGhhdCB0aGUgcmVzcG9uc2UKCS8vIGlzIGZvciB0aGUgY29ycmVjdCBmb3JtX2lkIQoJaWYgKCRmb3JtX2lkICE9ICR0aGlzLT5HZXRJZCgpKQoJCXsKCQlyZXR1cm4gZmFsc2U7CgkJfQoJJGZiRmllbGQgPSAkbW9kLT5HZXRGb3JtQnJvd3NlckZpZWxkKCRmb3JtX2lkKTsKCWlmICgkZmJGaWVsZCA9PSBmYWxzZSkKCQl7CgkJLy8gZXJyb3IgaGFuZGxpbmcgZ29lcyBoZXJlLgoJCWVjaG8oJG1vZC0+TGFuZygnZXJyb3JfaGFzX25vX2ZiX2ZpZWxkJykpOwoJCX0KCSRtb2QtPkhhbmRsZVJlc3BvbnNlRnJvbVhNTCgkZmJGaWVsZCwgJG9uZXNldCk7CglsaXN0KCRmbmFtZXMsICRhbGlhc2VzLCAkdmFscykgPSAkbW9kLT5QYXJzZVJlc3BvbnNlWE1MKCRvbmVzZXQtPnhtbCwgZmFsc2UpOwoJZm9yZWFjaCAoJHZhbHMgYXMgJGlkPT4kdmFsKQoJCXsKCQlpZiAoaXNzZXQoJHBhcmFtc1snZmJycF9fJy4kaWRdKSAmJgoJCQkhIGlzX2FycmF5KCRwYXJhbXNbJ2ZicnBfXycuJGlkXSkpCgkJCXsKCQkJJHBhcmFtc1snZmJycF9fJy4kaWRdID0gYXJyYXkoJHBhcmFtc1snZmJycF9fJy4kaWRdKTsKCQkJYXJyYXlfcHVzaCgkcGFyYW1zWydmYnJwX18nLiRpZF0sICR2YWwpOwoJCQl9CgkJZWxzZWlmIChpc3NldCgkcGFyYW1zWydmYnJwX18nLiRpZF0pKQoJCQl7CgkJCWFycmF5X3B1c2goJHBhcmFtc1snZmJycF9fJy4kaWRdLCAkdmFsKTsKCQkJfQoJCWVsc2UKCQkJewoJCQkkcGFyYW1zWydmYnJwX18nLiRpZF0gPSAkdmFsOwoJCQl9CgkJfQoJcmV0dXJuIHRydWU7CiAgfQoKICAvLyBGb3JtQnJvd3NlciA8IDAuMyBSZXNwb25zZSBsb2FkIG1ldGhvZCAgCiAgZnVuY3Rpb24gTG9hZFJlc3BvbnNlVmFsdWVzT2xkKCYkcGFyYW1zKQogIHsKICAgICRkYiA9ICR0aGlzLT5tb2R1bGVfcHRyLT5kYkhhbmRsZTsKICAgIC8vIGxvYWRpbmcgYSByZXNwb25zZSAtLSBhdCB0aGlzIHBvaW50LCB3ZSBjaGVjayB0aGF0IHRoZSByZXNwb25zZQogICAgLy8gaXMgZm9yIHRoZSBjb3JyZWN0IGZvcm1faWQhCiAgICAkc3FsID0gJ1NFTEVDVCBmb3JtX2lkIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKS4KICAgICAgJ21vZHVsZV9mYl9yZXNwIHdoZXJlIHJlc3BfaWQ9Pyc7CiAgICBpZigkcmVzdWx0ID0gJGRiLT5HZXRSb3coJHNxbCwgYXJyYXkoJHBhcmFtc1sncmVzcG9uc2VfaWQnXSkpKQogICAgICB7CglpZiAoJHJlc3VsdFsnZm9ybV9pZCddICE9ICR0aGlzLT5HZXRJZCgpKQoJICB7CgkgICAgcmV0dXJuIGZhbHNlOwoJICB9Cgkkc3FsID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuCgkgICdtb2R1bGVfZmJfcmVzcF92YWwgV0hFUkUgcmVzcF9pZD0/IG9yZGVyIGJ5IHJlc3BfdmFsX2lkJzsKCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkc3FsLCBhcnJheSgkcGFyYW1zWydyZXNwb25zZV9pZCddKSk7Cgl3aGlsZSAoJGRicmVzdWx0ICYmICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpCgkgIHsgLy8gd2FzICdfXycJCSAgICAgICAgCQoJICAgIGlmIChpc3NldCgkcGFyYW1zWydmYnJwX18nLiRyb3dbJ2ZpZWxkX2lkJ11dKSAmJgoJCSEgaXNfYXJyYXkoJHBhcmFtc1snZmJycF9fJy4kcm93WydmaWVsZF9pZCddXSkpCgkgICAgICB7CgkJJHBhcmFtc1snZmJycF9fJy4kcm93WydmaWVsZF9pZCddXSA9IGFycmF5KCRwYXJhbXNbJ2ZicnBfXycuJHJvd1snZmllbGRfaWQnXV0pOwoJCWFycmF5X3B1c2goJHBhcmFtc1snZmJycF9fJy4kcm93WydmaWVsZF9pZCddXSwgJHJvd1sndmFsdWUnXSk7CgkgICAgICB9CgkgICAgZWxzZWlmIChpc3NldCgkcGFyYW1zWydmYnJwX18nLiRyb3dbJ2ZpZWxkX2lkJ11dKSkKCSAgICAgIHsKCQlhcnJheV9wdXNoKCRwYXJhbXNbJ2ZicnBfXycuJHJvd1snZmllbGRfaWQnXV0sICRyb3dbJ3ZhbHVlJ10pOwoJICAgICAgfQoJICAgIGVsc2UKCSAgICAgIHsKCQkkcGFyYW1zWydmYnJwX18nLiRyb3dbJ2ZpZWxkX2lkJ11dID0gJHJvd1sndmFsdWUnXTsKCSAgICAgIH0KCSAgfQogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCXJldHVybiBmYWxzZTsKICAgICAgfQogIH0gICAKCiAgLy8gVmFsaWRhdGlvbiBzdHVmZiBhY3Rpb24udmFsaWRhdGUucGhwCiAgZnVuY3Rpb24gQ2hlY2tSZXNwb25zZSgkZm9ybV9pZCwgJHJlc3BvbnNlX2lkLCAkY29kZSkKICB7CiAgICAkZGIgPSAkdGhpcy0+bW9kdWxlX3B0ci0+ZGJIYW5kbGU7CiAgICAkc3FsID0gJ1NFTEVDVCBzZWNyZXRfY29kZSBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkuICdtb2R1bGVfZmJfZm9ybWJyb3dzZXIgV0hFUkUgZm9ybV9pZD0/IEFORCBmYnJfaWQ9Pyc7CiAgICBpZigkcmVzdWx0ID0gJGRiLT5HZXRSb3coJHNxbCwgYXJyYXkoJGZvcm1faWQsJHJlc3BvbnNlX2lkKSkpCiAgICAgIHsKCWlmICgkcmVzdWx0WydzZWNyZXRfY29kZSddID09ICRjb2RlKQoJICB7CgkgICAgcmV0dXJuIHRydWU7CgkgIH0KICAgICAgfQogICAgcmV0dXJuIGZhbHNlOwogIH0KCiAgLy8gTWFzdGVyIHJlc3BvbnNlIGlucHV0dGVyCiAgZnVuY3Rpb24gU3RvcmVSZXNwb25zZSgkcmVzcG9uc2VfaWQ9LTEsJGFwcHJvdmVyPScnLCYkZm9ybUJ1aWxkZXJEaXNwb3NpdGlvbikKICB7CgkkbW9kID0gJHRoaXMtPm1vZHVsZV9wdHI7CiAgICAkZGIgPSAkdGhpcy0+bW9kdWxlX3B0ci0+ZGJIYW5kbGU7CiAgICAkZmllbGRzID0gJHRoaXMtPkdldEZpZWxkcygpOwoJJG5ld3JlYyA9IGZhbHNlOwoJCgkkY3J5cHQgPSBmYWxzZTsKCSRoYXNoX2ZpZWxkcyA9IGZhbHNlOwoJJHNvcnRfZmllbGRzID0gYXJyYXkoKTsKCQoJLy8gQ2hlY2sgaWYgZm9ybSBoYXMgRGF0YWJhc2UgZmllbGRzLCBkbyBpbml0CglpZiAoaXNfb2JqZWN0KCRmb3JtQnVpbGRlckRpc3Bvc2l0aW9uKSAmJgogICAgICAoJGZvcm1CdWlsZGVyRGlzcG9zaXRpb24tPkdldEZpZWxkVHlwZSgpPT0nRGlzcG9zaXRpb25Gb3JtQnJvd3NlcicgfHwKICAgICAgICRmb3JtQnVpbGRlckRpc3Bvc2l0aW9uLT5HZXRGaWVsZFR5cGUoKT09J0Rpc3Bvc2l0aW9uRGF0YWJhc2UnKSkKCQl7CgkJJGNyeXB0ID0gKCRmb3JtQnVpbGRlckRpc3Bvc2l0aW9uLT5HZXRPcHRpb24oJ2NyeXB0JywnMCcpID09ICcxJyk7CgkJJGhhc2hfZmllbGRzID0gKCRmb3JtQnVpbGRlckRpc3Bvc2l0aW9uLT5HZXRPcHRpb24oJ2hhc2hfc29ydCcsJzAnKSA9PSAnMScpOwoJCWZvciAoJGk9MDskaTw1OyRpKyspCgkJCXsKCQkJJHNvcnRfZmllbGRzWyRpXSA9ICRmb3JtQnVpbGRlckRpc3Bvc2l0aW9uLT5nZXRTb3J0RmllbGRWYWwoJGkrMSk7CgkJCX0KCQl9CgoJLy8gSWYgbmV3IGZpZWxkCglpZiAoJHJlc3BvbnNlX2lkID09IC0xKQoJCXsKCQlpZiAoaXNfb2JqZWN0KCRmb3JtQnVpbGRlckRpc3Bvc2l0aW9uKSAmJiAkZm9ybUJ1aWxkZXJEaXNwb3NpdGlvbi0+R2V0T3B0aW9uKCdmZXVfYmluZCcsJzAnKSA9PSAnMScpCgkJCXsKCQkJJGZldSA9ICRtb2QtPkdldE1vZHVsZUluc3RhbmNlKCdGcm9udEVuZFVzZXJzJyk7CgkJCWlmICgkZmV1ID09IGZhbHNlKQoJCQkJewoJCQkJZGVidWdfZGlzcGxheSgiRkFJTEVEIHRvIGluc3RhdGlhdGUgRkVVISIpOwoJCQkJcmV0dXJuOwoJCQkJfQoJCQkkZmV1X2lkID0gJGZldS0+TG9nZ2VkSW5JZCgpOwoJCQl9CgkJZWxzZQoJCQl7CgkJCSRmZXVfaWQgPSAtMTsKCQkJfQkJCQoJCSRyZXNwb25zZV9pZCA9ICRkYi0+R2VuSUQoY21zX2RiX3ByZWZpeCgpLiAnbW9kdWxlX2ZiX2Zvcm1icm93c2VyX3NlcScpOwkKCSAgICBmb3JlYWNoICgkZmllbGRzIGFzICR0aGlzRmllbGQpCgkJCXsKCQkJLy8gc2V0IHRoZSByZXNwb25zZV9pZCB0byBiZSB0aGUgYXR0cmlidXRlIG9mIHRoZSBkYXRhYmFzZSBkaXNwb3NpdGlvbgoJCQlpZiAoKCR0aGlzRmllbGQtPkdldEZpZWxkVHlwZSgpID09ICdEaXNwb3NpdGlvbkRhdGFiYXNlJyl8fAoJCQkJKCR0aGlzRmllbGQtPkdldEZpZWxkVHlwZSgpID09ICdEaXNwb3NpdGlvbkZvcm1Ccm93c2VyJykpCgkJCQl7CgkJCQkkdGhpc0ZpZWxkLT5TZXRWYWx1ZSgkcmVzcG9uc2VfaWQpOwoJCQkJfQoJCQl9CgkJJG5ld3JlYyA9IHRydWU7CgkJfQoJZWxzZQoJCXsKCQkkZmV1X2lkID0gJG1vZC0+Z2V0RkVVSURGcm9tUmVzcG9uc2VJRCgkcmVzcG9uc2VfaWQpOwoJCX0KCQkKCS8vIENvbnZlcnQgZm9ybSB0byBYTUwKCSR4bWwgPSAkdGhpcy0+UmVzcG9uc2VUb1hNTCgpOwoJCgkvLyBEbyB0aGUgYWN0dWFsIGFkZGluZwoJaWYgKCEgJGNyeXB0KQoJCXsKCQkkb3V0cHV0ID0gJHRoaXMtPlN0b3JlUmVzcG9uc2VYTUwoCgkJCSRyZXNwb25zZV9pZCwKCQkJJG5ld3JlYywKCQkJJGFwcHJvdmVyLAoJCQlpc3NldCgkc29ydF9maWVsZHNbMF0pPyRzb3J0X2ZpZWxkc1swXTonJywKCQkJaXNzZXQoJHNvcnRfZmllbGRzWzFdKT8kc29ydF9maWVsZHNbMV06JycsCgkJCWlzc2V0KCRzb3J0X2ZpZWxkc1syXSk/JHNvcnRfZmllbGRzWzJdOicnLAoJCQlpc3NldCgkc29ydF9maWVsZHNbM10pPyRzb3J0X2ZpZWxkc1szXTonJywKCQkJaXNzZXQoJHNvcnRfZmllbGRzWzRdKT8kc29ydF9maWVsZHNbNF06JycsCgkJCSRmZXVfaWQsCgkJCSR4bWwpOwoJCX0KCWVsc2VpZiAoISAkaGFzaF9maWVsZHMpCgkJewoJCWxpc3QoJHJlcywgJHhtbCkgPSAkbW9kLT5jcnlwdCgkeG1sLCRmb3JtQnVpbGRlckRpc3Bvc2l0aW9uKTsKCQlpZiAoISAkcmVzKQoJCQl7CgkJCXJldHVybiBhcnJheShmYWxzZSwgJHhtbCk7CgkJCX0KCQkkb3V0cHV0ID0gJHRoaXMtPlN0b3JlUmVzcG9uc2VYTUwoCgkJCSRyZXNwb25zZV9pZCwKCQkJJG5ld3JlYywKCQkJJGFwcHJvdmVyLAoJCQlpc3NldCgkc29ydF9maWVsZHNbMF0pPyRzb3J0X2ZpZWxkc1swXTonJywKCQkJaXNzZXQoJHNvcnRfZmllbGRzWzFdKT8kc29ydF9maWVsZHNbMV06JycsCgkJCWlzc2V0KCRzb3J0X2ZpZWxkc1syXSk/JHNvcnRfZmllbGRzWzJdOicnLAoJCQlpc3NldCgkc29ydF9maWVsZHNbM10pPyRzb3J0X2ZpZWxkc1szXTonJywKCQkJaXNzZXQoJHNvcnRfZmllbGRzWzRdKT8kc29ydF9maWVsZHNbNF06JycsCgkJCSRmZXVfaWQsCgkJCSR4bWwpOwoJCX0KCWVsc2UKCQl7CgkJbGlzdCgkcmVzLCAkeG1sKSA9ICRtb2QtPmNyeXB0KCR4bWwsJGZvcm1CdWlsZGVyRGlzcG9zaXRpb24pOwoJCWlmICghICRyZXMpCgkJCXsKCQkJcmV0dXJuIGFycmF5KGZhbHNlLCAkeG1sKTsKCQkJfQoJCSRvdXRwdXQgPSAkdGhpcy0+U3RvcmVSZXNwb25zZVhNTCgKCQkJJHJlc3BvbnNlX2lkLAoJCQkkbmV3cmVjLAoJCQkkYXBwcm92ZXIsCgkJCWlzc2V0KCRzb3J0X2ZpZWxkc1swXSk/JG1vZC0+Z2V0SGFzaGVkU29ydEZpZWxkVmFsKCRzb3J0X2ZpZWxkc1swXSk6JycsCgkJCWlzc2V0KCRzb3J0X2ZpZWxkc1sxXSk/JG1vZC0+Z2V0SGFzaGVkU29ydEZpZWxkVmFsKCRzb3J0X2ZpZWxkc1sxXSk6JycsCgkJCWlzc2V0KCRzb3J0X2ZpZWxkc1syXSk/JG1vZC0+Z2V0SGFzaGVkU29ydEZpZWxkVmFsKCRzb3J0X2ZpZWxkc1syXSk6JycsCgkJCWlzc2V0KCRzb3J0X2ZpZWxkc1szXSk/JG1vZC0+Z2V0SGFzaGVkU29ydEZpZWxkVmFsKCRzb3J0X2ZpZWxkc1szXSk6JycsCgkJCWlzc2V0KCRzb3J0X2ZpZWxkc1s0XSk/JG1vZC0+Z2V0SGFzaGVkU29ydEZpZWxkVmFsKCRzb3J0X2ZpZWxkc1s0XSk6JycsCgkJCSRmZXVfaWQsCgkJCSR4bWwpOwoJCX0KCS8vcmV0dXJuIGFycmF5KHRydWUsJycpOyBTdGlra2kgcmVwbGFjZWQ6IGluc3RlYWQgb2YgdHJ1ZSwgcmV0dXJuIGFjdHVhbCBkYXRhLCBkaWRuJ3Qgc2F3IGFueSBzaWRlIGVmZmVjdHMuCglyZXR1cm4gJG91dHB1dDsKICB9CgogIC8vIENvbnZlcnRzIGZvcm0gdG8gWE1MCiAgZnVuY3Rpb24gJlJlc3BvbnNlVG9YTUwoKQogIHsKICAJJHhtbCA9ICI8P3htbCB2ZXJzaW9uPVwiMS4wXCIgZW5jb2Rpbmc9XCJ1dGYtOFwiPz5cbiI7CgkkeG1sIC49ICI8cmVzcG9uc2UgZm9ybV9pZD1cIiIuJHRoaXMtPklkLiJcIj5cbiI7Cglmb3JlYWNoKCR0aGlzLT5GaWVsZHMgYXMgJHRoaXNGaWVsZCkKCQl7CgkJCSR4bWwgLj0gJHRoaXNGaWVsZC0+RXhwb3J0WE1MKHRydWUpOwoJCX0KCSR4bWwgLj0gIjwvcmVzcG9uc2U+XG4iOwogICByZXR1cm4gJHhtbDsKICB9CgogIC8vIEluc2VydHMgcGFyc2VkIFhNTCBkYXRhIHRvIGRhdGFiYXNlCiAgZnVuY3Rpb24gU3RvcmVSZXNwb25zZVhNTCgkcmVzcG9uc2VfaWQ9LTEsJG5ld3JlYz1mYWxzZSwkYXBwcm92ZXI9JycsJHNvcnRmaWVsZDEsCiAgICRzb3J0ZmllbGQyLCRzb3J0ZmllbGQzLCRzb3J0ZmllbGQ0LCRzb3J0ZmllbGQ1LCAkZmV1X2lkLCR4bWwpCiAgewogICAgJGRiID0gJHRoaXMtPm1vZHVsZV9wdHItPmRiSGFuZGxlOwogICAgJHNlY3JldF9jb2RlID0gJyc7CgogICAgaWYgKCRuZXdyZWMpCiAgICAgIHsKCQkvLyBzYXZpbmcgYSBuZXcgcmVzcG9uc2UKCQkkc2VjcmV0X2NvZGUgPSBzdWJzdHIobWQ1KHNlc3Npb25faWQoKS4nXycudGltZSgpKSwwLDcpOwoJCS8vJHJlc3BvbnNlX2lkID0gJGRiLT5HZW5JRChjbXNfZGJfcHJlZml4KCkuICdtb2R1bGVfZmJfZm9ybWJyb3dzZXJfc2VxJyk7CgkJJHNxbCA9ICdJTlNFUlQgSU5UTyAnIC4gY21zX2RiX3ByZWZpeCgpLgoJICAnbW9kdWxlX2ZiX2Zvcm1icm93c2VyIChmYnJfaWQsIGZvcm1faWQsIHN1Ym1pdHRlZCwgc2VjcmV0X2NvZGUsIGluZGV4X2tleV8xLCBpbmRleF9rZXlfMiwgaW5kZXhfa2V5XzMsIGluZGV4X2tleV80LCBpbmRleF9rZXlfNSwgZmV1aWQsIHJlc3BvbnNlKSBWQUxVRVMgKD8sPyw/LD8sPyw/LD8sPyw/LD8sPyknOwoJCSRyZXMgPSAkZGItPkV4ZWN1dGUoJHNxbCwKCQkJYXJyYXkoJHJlc3BvbnNlX2lkLAoJCQkJJHRoaXMtPkdldElkKCksCgkJCQkkdGhpcy0+Y2xlYW5fZGF0ZXRpbWUoJGRiLT5EQlRpbWVTdGFtcCh0aW1lKCkpKSwKCQkJCSRzZWNyZXRfY29kZSwKCQkJCSRzb3J0ZmllbGQxLCRzb3J0ZmllbGQyLCRzb3J0ZmllbGQzLCRzb3J0ZmllbGQ0LCRzb3J0ZmllbGQ1LAoJCQkJJGZldV9pZCwKCQkJCSR4bWwKCQkJKSk7CiAgICAgIH0KICAgIGVsc2UgaWYgKCRhcHByb3ZlciAhPSAnJykKICAgICAgewoJCSRzcWwgPSAnVVBEQVRFICcgLiBjbXNfZGJfcHJlZml4KCkuCgkJCSdtb2R1bGVfZmJfZm9ybWJyb3dzZXIgc2V0IHVzZXJfYXBwcm92ZWQ9PyB3aGVyZSBmYnJfaWQ9Pyc7CgkJJHJlcyA9ICRkYi0+RXhlY3V0ZSgkc3FsLAoJCQkgICAgYXJyYXkoJHRoaXMtPmNsZWFuX2RhdGV0aW1lKCRkYi0+REJUaW1lU3RhbXAodGltZSgpKSksJHJlc3BvbnNlX2lkKSk7CgkJYXVkaXQoLTEsIChpc3NldCgkbmFtZSk/JG5hbWU6IiIpLCAkdGhpcy0+bW9kdWxlX3B0ci0+TGFuZygndXNlcl9hcHByb3ZlZF9zdWJtaXNzaW9uJyxhcnJheSgkcmVzcG9uc2VfaWQsJGFwcHJvdmVyKSkpOwogICAgICB9CiAgICBpZiAoISAkbmV3cmVjKQogICAgICB7CgkgICRzcWwgPSAnVVBEQVRFICcgLiBjbXNfZGJfcHJlZml4KCkuCgkJCSdtb2R1bGVfZmJfZm9ybWJyb3dzZXIgc2V0IGluZGV4X2tleV8xPT8sIGluZGV4X2tleV8yPT8sIGluZGV4X2tleV8zPT8sIGluZGV4X2tleV80PT8sIGluZGV4X2tleV81PT8sIHJlc3BvbnNlPT8gd2hlcmUgZmJyX2lkPT8nOwoJICAkcmVzID0gJGRiLT5FeGVjdXRlKCRzcWwsCgkJCSAgICBhcnJheSgkc29ydGZpZWxkMSwkc29ydGZpZWxkMiwkc29ydGZpZWxkMywkc29ydGZpZWxkNCwkc29ydGZpZWxkNSwkeG1sLCRyZXNwb25zZV9pZCkpOwogICAgICB9CiAgICByZXR1cm4gYXJyYXkoJHJlc3BvbnNlX2lkLCRzZWNyZXRfY29kZSk7CiAgfSAgIAoKCS8vIFNvbWUgc3R1cGlkIGRhdGUgZnVuY3Rpb24KCWZ1bmN0aW9uIGNsZWFuX2RhdGV0aW1lKCRkdCkKCXsKICAgIHJldHVybiBzdWJzdHIoJGR0LDEsc3RybGVuKCRkdCktMik7Cgl9CiAgCiAgLy8gV2hlbiBkb3dubG9hZGluZyBmb3JtLgogIGZ1bmN0aW9uIEV4cG9ydFhNTCgkZXhwb3J0VmFsdWVzID0gZmFsc2UpCiAgewoJJHhtbHN0ciA9ICI8P3htbCB2ZXJzaW9uPVwiMS4wXCIgZW5jb2Rpbmc9XCJ1dGYtOFwiPz5cbiI7CgkkeG1sc3RyIC49ICI8Zm9ybSBpZD1cIiIuJHRoaXMtPklkLiJcIlxuIjsKCSR4bWxzdHIgLj0gIlx0YWxpYXM9XCIiLiR0aGlzLT5BbGlhcy4iXCI+XG4iOwoJJHhtbHN0ciAuPSAiXHRcdDxmb3JtX25hbWU+PCFbQ0RBVEFbIi4kdGhpcy0+TmFtZS4iXV0+PC9mb3JtX25hbWU+XG4iOwogICBmb3JlYWNoICgkdGhpcy0+QXR0cnMgYXMgJHRoaXNBdHRyS2V5PT4kdGhpc0F0dHJWYWx1ZSkKICAgICAgewoJCSR4bWxzdHIgLj0gIlx0XHQ8YXR0cmlidXRlIGtleT1cIiR0aGlzQXR0cktleVwiPjwhW0NEQVRBWyR0aGlzQXR0clZhbHVlXV0+PC9hdHRyaWJ1dGU+XG4iOwoJCX0KCWZvcmVhY2goJHRoaXMtPkZpZWxkcyBhcyAkdGhpc0ZpZWxkKQoJCXsKCQkkeG1sc3RyIC49ICR0aGlzRmllbGQtPkV4cG9ydFhNTCgkZXhwb3J0VmFsdWVzKTsKCQl9CgkkeG1sc3RyIC49ICI8L2Zvcm0+XG4iOwoJcmV0dXJuICR4bWxzdHI7CiAgfQogIAogIGZ1bmN0aW9uIEdldEZvcm1Ccm93c2Vyc0ZvckZvcm0oKQoJewoJCSRkYiA9ICR0aGlzLT5tb2R1bGVfcHRyLT5kYkhhbmRsZTsKCQkkZmJyID0gJHRoaXMtPm1vZHVsZV9wdHItPkdldE1vZHVsZUluc3RhbmNlKCdGb3JtQnJvd3NlcicpOwoJCSRicm93c2VycyA9IGFycmF5KCk7CgkJaWYgKCRmYnIgIT0gRkFMU0UpCgkJCXsKCQkJJHJlcyA9ICRkYi0+RXhlY3V0ZSgnU0VMRUNUIGJyb3dzZXJfaWQgZnJvbSAnLiBjbXNfZGJfcHJlZml4KCkuICdtb2R1bGVfZmJyX2Jyb3dzZXIgd2hlcmUgZm9ybV9pZD0/JywKCQkJCWFycmF5KCR0aGlzLT5HZXRJZCgpKSk7CgkJCXdoaWxlICgkcmVzICYmICRyb3c9JHJlcy0+RmV0Y2hSb3coKSkKCQkJCXsKCQkJCWFycmF5X3B1c2goJGJyb3dzZXJzLCAkcm93Wydicm93c2VyX2lkJ10pOwoJCQkJfQoJICAgICAgCX0KCQlyZXR1cm4gJGJyb3dzZXJzOwoJfQoKICBmdW5jdGlvbiBBZGRUb1NlYXJjaEluZGV4KCRyZXNwb25zZV9pZCkKCXsJCgkvLyBmaW5kIGJyb3dzZXJzIGtleWVkIHRvIHRoaXMKCSRicm93c2VycyA9ICR0aGlzLT5HZXRGb3JtQnJvd3NlcnNGb3JGb3JtKCk7CglpZiAoY291bnQoJGJyb3dzZXJzKSA8IDEpCgkJewoJCXJldHVybjsKCQl9CgkKCSRtb2R1bGUgPSYgJHRoaXMtPm1vZHVsZV9wdHItPkdldE1vZHVsZUluc3RhbmNlKCdTZWFyY2gnKTsKICAgIGlmICgkbW9kdWxlICE9IEZBTFNFKQogICAgICB7CgkJJHN1Ym1pdHN0cmluZyA9ICcnOwoJCWZvcmVhY2ggKCR0aGlzLT5GaWVsZHMgYXMgJHRoaXNGaWVsZCkKCQkJewoJCQlpZiAoJHRoaXNGaWVsZC0+RGlzcGxheUluU3VibWlzc2lvbigpKQoJCQkJewoJCQkJJHN1Ym1pdHN0cmluZyAuPSAnICcuJHRoaXNGaWVsZC0+R2V0SHVtYW5SZWFkYWJsZVZhbHVlKCRhc19zdHJpbmc9dHJ1ZSk7CgkJCQl9CgkJCX0KCQlmb3JlYWNoICgkYnJvd3NlcnMgYXMgJHRoaXNCcm93c2VyKQoJCQl7CgkJCSRtb2R1bGUtPkFkZFdvcmRzKCAnRm9ybUJyb3dzZXInLCAkcmVzcG9uc2VfaWQsICdzdWJfJy4kdGhpc0Jyb3dzZXIsICRzdWJtaXRzdHJpbmcsIG51bGwpOwkKCQkJfQogICAgICB9Cgl9CgogIGZ1bmN0aW9uIHNldEZpbmlzaGVkRm9ybVNtYXJ0eSgkaHRtbGVtYWlsPWZhbHNlKQoJewoJCSRtb2QgPSAkdGhpcy0+bW9kdWxlX3B0cjsKCSAgIAoJICAgICR0aGVGaWVsZHMgPSAkdGhpcy0+R2V0RmllbGRzKCk7CgkgICAgJHVuc3BlYyA9ICR0aGlzLT5HZXRBdHRyKCd1bnNwZWNpZmllZCcsJG1vZC0+TGFuZygndW5zcGVjaWZpZWQnKSk7CgoJCSRmb3JtSW5mbyA9IGFycmF5KCk7CgkJCgkgICAgZm9yKCRpPTA7JGk8Y291bnQoJHRoZUZpZWxkcyk7JGkrKykKCSAgICAgIHsKCQkJJHJlcGxWYWwgPSAkdW5zcGVjOwoJCQkkcmVwbFZhbHMgPSBhcnJheSgpOwoJCQlpZiAoJHRoZUZpZWxkc1skaV0tPkRpc3BsYXlJblN1Ym1pc3Npb24oKSkKCQkgIAkJewoJCSAgICAJCSRyZXBsVmFsID0gJHRoZUZpZWxkc1skaV0tPkdldEh1bWFuUmVhZGFibGVWYWx1ZSgpOwoJCSAgICAJCWlmICgkaHRtbGVtYWlsKQoJCSAgICAgICAgCQl7CgkJCQkJCS8vIGFsbG93IDxCUj4gYXMgZGVsaW1pdGVyIG9yIGluIGNvbnRlbnQKCQkJCQkJJHJlcGxWYWwgPSBwcmVnX3JlcGxhY2UoJy88YnIoXHMpKihcLykqPi9pJywnfEJSfCcsJHJlcGxWYWwpOwoJCQkJCQkkcmVwbFZhbCA9IHByZWdfcmVwbGFjZSgnL1tcblxyXSsvJywnfEJSfCcsJHJlcGxWYWwpOwoJICAgICAgICAgICAgCQkkcmVwbFZhbCA9IGh0bWxzcGVjaWFsY2hhcnMoJHJlcGxWYWwpOwoJCQkJCQkkcmVwbFZhbCA9IHByZWdfcmVwbGFjZSgnL1x8QlJcfC8nLCc8YnIgLz4nLCRyZXBsVmFsKTsKCSAgICAgICAgICAgIAkJfQoJCSAgICAJCWlmICgkcmVwbFZhbCA9PSAnJykKCQkgICAgICAJCQl7CgkJCQkJCSRyZXBsVmFsID0gJHVuc3BlYzsKCQkgICAgICAJCQl9CgkJICAJCX0KCQkKCQkgCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCR0aGVGaWVsZHNbJGldLT5HZXRWYXJpYWJsZU5hbWUoKSwkcmVwbFZhbCk7CgkJIAkkbW9kLT5zbWFydHktPmFzc2lnbignZmxkXycuJHRoZUZpZWxkc1skaV0tPkdldElkKCksJHJlcGxWYWwpOwoJCQkkZmxkb2JqID0gJHRoZUZpZWxkc1skaV0tPkV4cG9ydE9iamVjdCgpOwoJCSAJJG1vZC0+c21hcnR5LT5hc3NpZ24oJHRoZUZpZWxkc1skaV0tPkdldFZhcmlhYmxlTmFtZSgpLidfb2JqJywkZmxkb2JqKTsKCQkgCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdmbGRfJy4kdGhlRmllbGRzWyRpXS0+R2V0SWQoKS4nX29iaicsJGZsZG9iaik7CgkJCWlmICgkdGhlRmllbGRzWyRpXS0+R2V0QWxpYXMoKSAhPSAnJykKCQkJCXsKCQkgICAgCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCR0aGVGaWVsZHNbJGldLT5HZXRBbGlhcygpLCRyZXBsVmFsKTsKCQkgICAgCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCR0aGVGaWVsZHNbJGldLT5HZXRBbGlhcygpLidfb2JqJywkZmxkb2JqKTsKCQkJCX0KCSAgICAgIH0KCQkvLyBnZW5lcmFsIGZvcm0gZGV0YWlscwoJCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdzdWJfZm9ybV9uYW1lJywkdGhpcy0+R2V0TmFtZSgpKTsKCSAgICAkbW9kLT5zbWFydHktPmFzc2lnbignc3ViX2RhdGUnLGRhdGUoJ3InKSk7CgkgICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3N1Yl9ob3N0JywkX1NFUlZFUlsnU0VSVkVSX05BTUUnXSk7CgkgICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3N1Yl9zb3VyY2VfaXAnLCRfU0VSVkVSWydSRU1PVEVfQUREUiddKTsKCSAgCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdzdWJfdXJsJywoZW1wdHkoJF9TRVJWRVJbJ0hUVFBfUkVGRVJFUiddKT8kbW9kLT5MYW5nKCdub19yZWZlcnJlcl9pbmZvJyk6JF9TRVJWRVJbJ0hUVFBfUkVGRVJFUiddKSk7CgkgICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2ZiX3ZlcnNpb24nLCRtb2QtPkdldFZlcnNpb24oKSk7CgkgICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ1RBQicsIlx0Iik7Cgl9IAoKCWZ1bmN0aW9uIG1hbmFnZUZpbGVVcGxvYWRzKCkKCXsKCQlnbG9iYWwgJGdDbXM7CgkJJHRoZUZpZWxkcyA9ICR0aGlzLT5HZXRGaWVsZHMoKTsKCQkkbW9kID0gJHRoaXMtPm1vZHVsZV9wdHI7CgoJICAgIGZvcigkaT0wOyRpPGNvdW50KCR0aGVGaWVsZHMpOyRpKyspCgkgICAgICB7CgkgIAkJaWYgKHN0cnRvbG93ZXIoZ2V0X2NsYXNzKCR0aGVGaWVsZHNbJGldKSkgPT0gJ2ZiZmlsZXVwbG9hZGZpZWxkJyApCgkgICAgCQl7CgkgCQkgICAgICAvLyBIYW5kbGUgZmlsZSB1cGxvYWRzCgkJCSAgICAgIC8vIGlmIHRoZSB1cGxvYWRzIG1vZHVsZSBpcyBmb3VuZCwgYW5kIHRoZSBvcHRpb24gaXMgY2hlY2tlZCBpbgoJCQkgICAgICAvLyB0aGUgZmllbGQsIHRoZW4gdGhlIGZpbGUgaXMgYWRkZWQgdG8gdGhlIHVwbG9hZHMgbW9kdWxlCgkJCSAgICAgIC8vIGFuZCBhIGxpbmsgaXMgYWRkZWQgdG8gdGhlIHJlc3VsdHMKCQkJICAgICAgLy8gaWYgdGhlIG9wdGlvbiBpcyBub3QgY2hlY2tlZCwgdGhlbiB0aGUgZmlsZSBpcyBtZXJlbHkgdXBsb2FkZWQgdG8KCQkJCSAgLy8gdGhlICJ1cGxvYWRzIiBkaXJlY3RvcnkKCQkJICAgICAgLy8KCQkJCSAgCgkgICAgICAJCS8vJF9pZCA9ICR0aGVGaWVsZHNbJGldLT5HZXRWYWx1ZSgpOyAtLSBTdGlra2kgbW9kaWZ5czogbm93IGdldHMgY29ycmVjdCBpZAoJICAgICAgCQkkX2lkID0gJG1vZC0+bW9kdWxlX2lkLidmYnJwX18nLiR0aGVGaWVsZHNbJGldLT5JZDsKCSAgICAgIAkJaWYoIGlzc2V0KCAkX0ZJTEVTWyRfaWRdICkgJiYgJF9GSUxFU1skX2lkXVsnc2l6ZSddID4gMCApCgkgICAgICAgIAkJewoJICAgIAkJCSR0aGlzRmlsZSA9JiAkX0ZJTEVTWyRfaWRdOwoJICAgIAkJCWlmKCAkdGhlRmllbGRzWyRpXS0+R2V0T3B0aW9uKCdzZW5kdG9fdXBsb2FkcycpICkKCSAgICAgIAkJCQl7CgkgICAgICAgIAkJCS8vIHdlIGhhdmUgYSBmaWxlIHdlIGNhbiBzZW5kIHRvIHRoZSB1cGxvYWRzCgkgICAgICAgIAkJCSR1cGxvYWRzID0gJG1vZC0+R2V0TW9kdWxlSW5zdGFuY2UoJ1VwbG9hZHMnKTsKCSAgICAgICAgCQkJaWYoICEkdXBsb2FkcyApCgkgICAgICAgICAgCQkJCXsKCSAgICAgIAkJCQkJLy8gbm8gdXBsb2FkcyBtb2R1bGUKCSAgICAgIAkJCQkJYXVkaXQoLTEsICRtb2QtPkdldE5hbWUoKSwgJG1vZC0+TGFuZygnc3VibWl0X2Vycm9yJyksJG1haWwtPkdldEVycm9ySW5mbygpKTsKCSAgICAgICAgICAgIAkJCXJldHVybiBhcnJheSgkcmVzLCAkbW9kLT5MYW5nKCdub3VwbG9hZHNfZXJyb3InKSk7CgkgICAgICAgICAgCQkJCX0KCgkgICAgICAgIAkJCSRwYXJtcyA9IGFycmF5KCk7CgkgICAgICAgIAkJCSRwYXJtc1snaW5wdXRfYXV0aG9yJ10gPSAkbW9kLT5MYW5nKCdhbm9ueW1vdXMnKTsKCSAgICAgICAgCQkJJHBhcm1zWydpbnB1dF9zdW1tYXJ5J10gPSAkbW9kLT5MYW5nKCd0aXRsZV91cGxvYWRtb2R1bGVfc3VtbWFyeScpOwoJICAgICAgICAJCQkkcGFybXNbJ2NhdGVnb3J5X2lkJ10gPSAkdGhlRmllbGRzWyRpXS0+R2V0T3B0aW9uKCd1cGxvYWRzX2NhdGVnb3J5Jyk7CgkgICAgICAgIAkJCSRwYXJtc1snZmllbGRfbmFtZSddID0gJF9pZDsKCSAgICAgICAgCQkJJHJlcyA9ICR1cGxvYWRzLT5BdHRlbXB0VXBsb2FkKC0xLCRwYXJtcywtMSk7CgkgICAgICAgIAkJCQoJICAgICAgICAJCQlpZiggJHJlc1swXSA9PSBmYWxzZSApCgkgICAgICAgICAgCQkJCXsKCSAgICAgIAkJCQkJLy8gZmFpbGVkIHVwbG9hZCBraWxscyB0aGUgc2VuZC4KCSAgICAgIAkJCQkJYXVkaXQoLTEsICRtb2QtPkdldE5hbWUoKSwgJG1vZC0+TGFuZygnc3VibWl0X2Vycm9yJywkcmVzWzFdKSk7CgkgICAgICAJCQkJCXJldHVybiBhcnJheSgkcmVzWzBdLCAkbW9kLT5MYW5nKCd1cGxvYWRzX2Vycm9yJywkcmVzWzFdKSk7CgkgICAgICAgICAgCQkJCX0KCgkgICAgICAgIAkJCSR1cGxvYWRzX2Rlc3RwYWdlID0gJHRoZUZpZWxkc1skaV0tPkdldE9wdGlvbigndXBsb2Fkc19kZXN0cGFnZScpOwoJCQkJCQkkdXJsID0gJHVwbG9hZHMtPkNyZWF0ZUxpbmsgKCRwYXJtc1snY2F0ZWdvcnlfaWQnXSwgJ2dldGZpbGUnLCAkdXBsb2Fkc19kZXN0cGFnZSwgJycsCgkJCQkJCQlhcnJheSAoJ3VwbG9hZF9pZCcgPT4gJHJlc1sxXSksICcnLCB0cnVlKTsKCgkJCQkJCSR1cmwgPSBzdHJfcmVwbGFjZSgnYWRtaW4vbW9kdWxlaW50ZXJmYWNlLnBocD8nLCdpbmRleC5waHA/JywkdXJsKTsKCQoJCQkJCQkkdGhlRmllbGRzWyRpXS0+UmVzZXRWYWx1ZSgpOwoJICAgICAgICAJCQkkdGhlRmllbGRzWyRpXS0+U2V0VmFsdWUoJHVybCk7CgkgICAgICAJCQkJfQoJICAgIAkJCWVsc2UKCSAgICAgIAkJCQl7CgkgICAgICAgIAkJCS8vIEhhbmRsZSB0aGUgdXBsb2FkIG91cnNlbHZlcwoJCQkJCQkkc3JjID0gJHRoaXNGaWxlWyd0bXBfbmFtZSddOwkJCQkJCQoJCQkJCQkkZGVzdF9wYXRoID0gJHRoZUZpZWxkc1skaV0tPkdldE9wdGlvbignZmlsZV9kZXN0aW5hdGlvbicsJGdDbXMtPmNvbmZpZ1sndXBsb2Fkc19wYXRoJ10pOwkJCQkJCQoJCQkJCQkKCQkJCQkJLy8gdmFsaWRhdGVkIG1lc3NhZ2UgYmVmb3JlLCBub3cgZG8gaXQgZm9yIHRoZSBmaWxlIGl0c2VsZgoJCQkJCQkkdmFsaWQgPSB0cnVlOwoJCQkJCSAgICAkbXMgPSAkdGhlRmllbGRzWyRpXS0+R2V0T3B0aW9uKCdtYXhfc2l6ZScpOwoJCQkJCSAgICAkZXh0cyA9ICR0aGVGaWVsZHNbJGldLT5HZXRPcHRpb24oJ3Blcm1pdHRlZF9leHRlbnNpb25zJywnJyk7CgkJCQkJICAgIGlmICgkbXMgIT0gJycgJiYgJHRoaXNGaWxlWydzaXplJ10gPiAoJG1zICogMTAyNCkpCgkJCQkJCQl7CgkJCQkJCQkkdmFsaWQgPSBmYWxzZTsKCQkJCQkJCX0KCQkJCQkgICAgZWxzZSBpZiAoJGV4dHMgIT0gJycpCgkJCQkJCQl7CgkJCQkJCQkkbWF0Y2ggPSBmYWxzZTsKCQkJCQkJCSRsZWdhbEV4dHMgPSBleHBsb2RlKCcsJywkZXh0cyk7CgkJCQkJCQlmb3JlYWNoICgkbGVnYWxFeHRzIGFzICR0aGlzRXh0KQoJCQkJCQkJCXsKCQkJCQkJCQlpZiAocHJlZ19tYXRjaCgnL1wuJy50cmltKCR0aGlzRXh0KS4nJC9pJywkdGhpc0ZpbGVbJ25hbWUnXSkpCgkJCQkJCQkJCXsKCQkJCQkJCQkJJG1hdGNoID0gdHJ1ZTsKCQkJCQkJCQkJfQoJCQkJCQkJCWVsc2UgaWYgKHByZWdfbWF0Y2goJy8nLnRyaW0oJHRoaXNFeHQpLicvaScsJHRoaXNGaWxlWyd0eXBlJ10pKQoJCQkJCQkJCQl7CgkJCQkJCQkJCSRtYXRjaCA9IHRydWU7CgkJCQkJCQkJCX0KCQkJCQkJCQl9CgkJCQkJCQlpZiAoISAkbWF0Y2gpCgkJCQkJCQkJewoJCQkJCQkJCSR2YWxpZCA9IGZhbHNlOwoJCQkJCQkJCX0KCQkJCQkJCX0KCQkJCQkJaWYgKCEgJHZhbGlkKQoJCQkJCQkJewoJCQkJCQkJdW5saW5rKCRzcmMpOwoJCQkJCQkJYXVkaXQoLTEsICRtb2QtPkdldE5hbWUoKSwgJG1vZC0+TGFuZygnaWxsZWdhbF9maWxlJyxhcnJheSgkdGhpc0ZpbGVbJ25hbWUnXSwkX1NFUlZFUlsnUkVNT1RFX0FERFInXSkpKTsKCQkgICAgICAJCQkJcmV0dXJuIGFycmF5KGZhbHNlLCAnJyk7CgkJCQkJCQl9CgkJCQkJCSRkZXN0ID0gJGRlc3RfcGF0aC5ESVJFQ1RPUllfU0VQQVJBVE9SLiR0aGlzRmlsZVsnbmFtZSddOwoJCQkJCQlpZiAoISBtb3ZlX3VwbG9hZGVkX2ZpbGUoJHNyYywkZGVzdCkpCgkJCQkJCQl7CgkJCQkJCQlhdWRpdCgtMSwgJG1vZC0+R2V0TmFtZSgpLCAkbW9kLT5MYW5nKCdzdWJtaXRfZXJyb3InLCcnKSk7CgkJICAgICAgCQkJCXJldHVybiBhcnJheShmYWxzZSwgJG1vZC0+TGFuZygndXBsb2Fkc19lcnJvcicsJycpKTsKCQkJCQkJCX0KCQkJCQkJZWxzZQoJCQkJCQkJewoJCQkJCQkJaWYgKHN0cnBvcygkZGVzdF9wYXRoLCRnQ21zLT5jb25maWdbJ3Jvb3RfcGF0aCddKSAhPT0gRkFMU0UpCgkJCQkJCQkJewoJCQkJCQkJCSR1cmwgPSBzdHJfcmVwbGFjZSgkZ0Ntcy0+Y29uZmlnWydyb290X3BhdGgnXSwnJywkZGVzdF9wYXRoKS4nLycuJHRoaXNGaWxlWyduYW1lJ107CgkJCQkJCQkJfQoJCQkJCQkJZWxzZQoJCQkJCQkJCXsKCQkJCQkJCQkkdXJsID0gJG1vZC0+TGFuZygndXBsb2FkZWRfb3V0c2lkZV93ZWJyb290JywkdGhpc0ZpbGVbJ25hbWUnXSk7CgkJCQkJCQkJfQoJCQkJCQkJJHRoZUZpZWxkc1skaV0tPlJlc2V0VmFsdWUoKTsKCQkJCQkJCSR0aGVGaWVsZHNbJGldLT5TZXRWYWx1ZShhcnJheSgkZGVzdCwkdXJsKSk7CgkJCQkJCQl9CgkgICAgICAJCQkJfQoJICAgICAgICAJCX0KCSAgICAJCX0KCSAgICAgIAl9CgkJcmV0dXJuIGFycmF5KHRydWUsJycpOwoJfQoKCn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/FromEmailAddressAgainField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkZyb21FbWFpbEFkZHJlc3NBZ2FpbkZpZWxkIGV4dGVuZHMgZmJGaWVsZEJhc2UgewoKCWZ1bmN0aW9uIGZiRnJvbUVtYWlsQWRkcmVzc0FnYWluRmllbGQoJiRmb3JtX3B0ciwgJiRwYXJhbXMpCgl7CgkJJHRoaXMtPmZiRmllbGRCYXNlKCRmb3JtX3B0ciwgJHBhcmFtcyk7CgkJJG1vZCA9ICRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkdGhpcy0+VHlwZSA9ICdGcm9tRW1haWxBZGRyZXNzQWdhaW5GaWVsZCc7CgkJJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwoJCSR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgKCQkJJG1vZC0+TGFuZygndmFsaWRhdGlvbl9lbWFpbF9hZGRyZXNzJyk9PidlbWFpbCcsCgkJCSk7CgkJJHRoaXMtPm1vZGlmaWVzT3RoZXJGaWVsZHMgPSBmYWxzZTsKCX0KCglmdW5jdGlvbiBHZXRGaWVsZElucHV0KCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRqcyA9ICR0aGlzLT5HZXRPcHRpb24oJ2phdmFzY3JpcHQnLCcnKTsKCgkJcmV0dXJuICRtb2QtPmZiQ3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2ZicnBfXycuJHRoaXMtPklkLAoJCQlodG1sc3BlY2lhbGNoYXJzKCR0aGlzLT5WYWx1ZSwgRU5UX1FVT1RFUyksCgkJCTI1LDEyOCwkanMuJHRoaXMtPkdldENTU0lkVGFnKCksJ2VtYWlsJyk7Cgl9CgoJZnVuY3Rpb24gU3RhdHVzSW5mbygpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQlyZXR1cm4gJG1vZC0+TGFuZygndGl0bGVfZmllbGRfaWQnKSAuICc6ICcgLiAkdGhpcy0+R2V0T3B0aW9uKCdmaWVsZF90b192YWxpZGF0ZScsJycpOwoJfQoJCglmdW5jdGlvbiBQcmVQb3B1bGF0ZUFkbWluRm9ybSgkZm9ybURlc2NyaXB0b3IpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkZmxkcyA9ICR0aGlzLT5mb3JtX3B0ci0+R2V0RmllbGRzKCk7CgkJJG9wdHMgPSBhcnJheSgpOwoJCWZvcmVhY2ggKCRmbGRzIGFzICR0ZikKCQkJewoJCQkkb3B0c1skdGYtPkdldE5hbWUoKV09JHRmLT5HZXROYW1lKCk7CgkJCX0KCQkkbWFpbiA9IGFycmF5KAoJCQlhcnJheSgKCQkJCSRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX3RvX3ZhbGlkYXRlJyksCgkJCSRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZmllbGRfdG9fdmFsaWRhdGUnLCAkb3B0cywgLTEsICR0aGlzLT5HZXRPcHRpb24oJ2ZpZWxkX3RvX3ZhbGlkYXRlJykpCgkJCSkKCQkpOwoKCQlyZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbik7Cgl9CgoKCWZ1bmN0aW9uIFZhbGlkYXRlKCkKCXsKCQkkdGhpcy0+dmFsaWRhdGVkID0gdHJ1ZTsKCQkkdGhpcy0+dmFsaWRhdGlvbkVycm9yVGV4dCA9ICcnOwoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgoJCSRmaWVsZF90b192YWxpZGF0ZSA9ICR0aGlzLT5HZXRPcHRpb24oJ2ZpZWxkX3RvX3ZhbGlkYXRlJywnJyk7CgoJCWlmICgkZmllbGRfdG9fdmFsaWRhdGUgIT0gJycpCgkJewoJCQlmb3JlYWNoICgkdGhpcy0+Zm9ybV9wdHItPkZpZWxkcyBhcyAkb25lX2ZpZWxkKQoJCQl7CgkJCQlpZiAoJG9uZV9maWVsZC0+TmFtZSA9PSAkZmllbGRfdG9fdmFsaWRhdGUpCgkJCQl7CgkJCQkJJHZhbHVlID0gJG9uZV9maWVsZC0+R2V0VmFsdWUoKTsKCQkJCQlpZiAoJHZhbHVlICE9ICR0aGlzLT5WYWx1ZSkKCQkJCQl7CgkJCQkJCSR0aGlzLT52YWxpZGF0ZWQgPSBmYWxzZTsKCQkJCQkJJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQgPSAkbW9kLT5MYW5nKCdlbWFpbF9hZGRyZXNzX2RvZXNfbm90X21hdGNoJywgJGZpZWxkX3RvX3ZhbGlkYXRlKTsKCQkJCQl9CgkJCQl9CgkJCX0KCQl9CgkJcmV0dXJuIGFycmF5KCR0aGlzLT52YWxpZGF0ZWQsICR0aGlzLT52YWxpZGF0aW9uRXJyb3JUZXh0KTsKCX0KfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/FromEmailAddressField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkZyb21FbWFpbEFkZHJlc3NGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCglmdW5jdGlvbiBmYkZyb21FbWFpbEFkZHJlc3NGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gJ0Zyb21FbWFpbEFkZHJlc3NGaWVsZCc7CgkJJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwoJCSR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgKICAgICAgICAgICAgJG1vZC0+TGFuZygndmFsaWRhdGlvbl9lbWFpbF9hZGRyZXNzJyk9PidlbWFpbCcsCiAgICAgICAgICAgICk7CiAgICAgICAgJHRoaXMtPlZhbGlkYXRpb25UeXBlID0gJ2VtYWlsJzsKCSAgICR0aGlzLT5tb2RpZmllc090aGVyRmllbGRzID0gdHJ1ZTsKCX0KCglmdW5jdGlvbiBHZXRGaWVsZElucHV0KCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRqcyA9ICR0aGlzLT5HZXRPcHRpb24oJ2phdmFzY3JpcHQnLCcnKTsKCQkKCQlyZXR1cm4gJG1vZC0+ZmJDcmVhdGVJbnB1dFRleHQoJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQsCgkJCWh0bWxzcGVjaWFsY2hhcnMoJHRoaXMtPlZhbHVlLCBFTlRfUVVPVEVTKSwKICAgICAgICAgICAyNSwxMjgsJGpzLiR0aGlzLT5HZXRDU1NJZFRhZygpLCdlbWFpbCcpOwoJfQoKCglmdW5jdGlvbiBQcmVQb3B1bGF0ZUFkbWluRm9ybSgkZm9ybURlc2NyaXB0b3IpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICAgJG1haW4gPSBhcnJheSgpOwogICAgICAkYWR2ID0gYXJyYXkoKTsKCQkkaG9wdHMgPSBhcnJheSgkbW9kLT5MYW5nKCdvcHRpb25fZnJvbScpPT4nZicsJG1vZC0+TGFuZygnb3B0aW9uX3JlcGx5Jyk9PidyJywkbW9kLT5MYW5nKCdvcHRpb25fYm90aCcpPT4nYicpOwoJCWFycmF5X3B1c2goJG1haW4sYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfaGVhZGVyc190b19tb2RpZnknKSwKCQkJJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9oZWFkZXJzX3RvX21vZGlmeScsICRob3B0cywgLTEsICR0aGlzLT5HZXRPcHRpb24oJ2hlYWRlcnNfdG9fbW9kaWZ5JywnZicpKSkpOwoKCQlyZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7Cgl9CgoJCglmdW5jdGlvbiBNb2RpZnlPdGhlckZpZWxkcygpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkb3RoZXJzID0gJHRoaXMtPmZvcm1fcHRyLT5HZXRGaWVsZHMoKTsKCQkkaHRtID0gJHRoaXMtPkdldE9wdGlvbignaGVhZGVyc190b19tb2RpZnknLCdmJyk7CgoJCWlmICgkdGhpcy0+VmFsdWUgIT09IGZhbHNlKQoJCQl7CgkJCWZvcigkaT0wOyRpPGNvdW50KCRvdGhlcnMpOyRpKyspCgkJCQl7CgkJCQkkcmVwbFZhbCA9ICcnOwoJCQkJaWYgKCRvdGhlcnNbJGldLT5Jc0Rpc3Bvc2l0aW9uKCkKICAgICAgICAgICAgICAgJiYgaXNfc3ViY2xhc3Nfb2YoJG90aGVyc1skaV0sJ2ZiRGlzcG9zaXRpb25FbWFpbEJhc2UnKSkKCQkJCQl7CgkJCQkJaWYgKCRodG0gPT0gJ2YnIHx8ICRodG0gPT0gJ2InKQogICAgICAgICAgICAgICAgICB7CgkJCQkJICAgICRvdGhlcnNbJGldLT5TZXRPcHRpb24oJ2VtYWlsX2Zyb21fYWRkcmVzcycsJHRoaXMtPlZhbHVlKTsKCQkJCQkgICB9CiAgICAgICAgICAgICAgIGlmICgkaHRtID09ICdyJyB8fCAkaHRtID09ICdiJykKICAgICAgICAgICAgICAgICAgewoJCQkJCSAgICAkb3RoZXJzWyRpXS0+U2V0T3B0aW9uKCdlbWFpbF9yZXBseV90b19hZGRyZXNzJywkdGhpcy0+VmFsdWUpOwogICAgICAgICAgICAgICAgICB9CgkJCQkJfQoJCQkJfQoJCQl9Cgl9CgoJZnVuY3Rpb24gU3RhdHVzSW5mbygpCgl7CgkJcmV0dXJuICcnOwoJfQoKCWZ1bmN0aW9uIFZhbGlkYXRlKCkKCXsKCQkkdGhpcy0+dmFsaWRhdGVkID0gdHJ1ZTsKCQkkdGhpcy0+dmFsaWRhdGlvbkVycm9yVGV4dCA9ICcnOwoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJc3dpdGNoICgkdGhpcy0+VmFsaWRhdGlvblR5cGUpCgkJICB7CgkJICAJICAgY2FzZSAnZW1haWwnOgogICAgICAgICAgICAgICAgICBpZiAoJHRoaXMtPlZhbHVlICE9PSBmYWxzZSAmJgogICAgICAgICAgICAgICAgICAgICAgISBwcmVnX21hdGNoKCgkbW9kLT5HZXRQcmVmZXJlbmNlKCdyZWxheGVkX2VtYWlsX3JlZ2V4JywnMCcpPT0wPyRtb2QtPmVtYWlsX3JlZ2V4OiRtb2QtPmVtYWlsX3JlZ2V4X3JlbGF4ZWQpLCAkdGhpcy0+VmFsdWUpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+dmFsaWRhdGVkID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQgPSAkbW9kLT5MYW5nKCdwbGVhc2VfZW50ZXJfYW5fZW1haWwnLCR0aGlzLT5OYW1lKTsKICAgICAgICAgICAgICAgICAgICB9CgkJICAJICAgICAgIGJyZWFrOwoJCSAgfQoJCXJldHVybiBhcnJheSgkdGhpcy0+dmFsaWRhdGVkLCAkdGhpcy0+dmFsaWRhdGlvbkVycm9yVGV4dCk7Cgl9Cn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/FromEmailNameField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkZyb21FbWFpbE5hbWVGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCglmdW5jdGlvbiBmYkZyb21FbWFpbE5hbWVGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gJ0Zyb21FbWFpbE5hbWVGaWVsZCc7CgkJJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwoJCSR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgKICAgICAgICAgICAgKTsKCSAgICR0aGlzLT5tb2RpZmllc090aGVyRmllbGRzID0gdHJ1ZTsKCX0KCglmdW5jdGlvbiBHZXRGaWVsZElucHV0KCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRqcyA9ICR0aGlzLT5HZXRPcHRpb24oJ2phdmFzY3JpcHQnLCcnKTsKCQkKCQlyZXR1cm4gJG1vZC0+ZmJDcmVhdGVJbnB1dFRleHQoJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQsCgkJCWh0bWxzcGVjaWFsY2hhcnMoJHRoaXMtPlZhbHVlLCBFTlRfUVVPVEVTKSwKICAgICAgICAgICAyNSwxMjgsJGpzLiR0aGlzLT5HZXRDU1NJZFRhZygpKTsKCX0KCglmdW5jdGlvbiBQcmVQb3B1bGF0ZUFkbWluRm9ybSgkZm9ybURlc2NyaXB0b3IpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICAgJG1haW4gPSBhcnJheSgpOwogICAgICAkYWR2ID0gYXJyYXkoKTsKCQkkaG9wdHMgPSBhcnJheSgkbW9kLT5MYW5nKCdvcHRpb25fZnJvbScpPT4nZicsJG1vZC0+TGFuZygnb3B0aW9uX3JlcGx5Jyk9PidyJywkbW9kLT5MYW5nKCdvcHRpb25fYm90aCcpPT4nYicpOwoJCWFycmF5X3B1c2goJG1haW4sYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfaGVhZGVyc190b19tb2RpZnknKSwKCQkJJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9oZWFkZXJzX3RvX21vZGlmeScsICRob3B0cywgLTEsICR0aGlzLT5HZXRPcHRpb24oJ2hlYWRlcnNfdG9fbW9kaWZ5JywnYicpKSkpOwoKCQlyZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7Cgl9CgoJZnVuY3Rpb24gTW9kaWZ5T3RoZXJGaWVsZHMoKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJG90aGVycyA9ICR0aGlzLT5mb3JtX3B0ci0+R2V0RmllbGRzKCk7CgkJJGh0bSA9ICR0aGlzLT5HZXRPcHRpb24oJ2hlYWRlcnNfdG9fbW9kaWZ5JywnYicpOwoKCQlpZiAoJHRoaXMtPlZhbHVlICE9PSBmYWxzZSkKCQkJewkJCgkJCWZvcigkaT0wOyRpPGNvdW50KCRvdGhlcnMpOyRpKyspCgkJCQl7CgkJCQkkcmVwbFZhbCA9ICcnOwoJCQkJaWYgKCRvdGhlcnNbJGldLT5Jc0Rpc3Bvc2l0aW9uKCkKICAgICAgICAgICAgICAgJiYgaXNfc3ViY2xhc3Nfb2YoJG90aGVyc1skaV0sJ2ZiRGlzcG9zaXRpb25FbWFpbEJhc2UnKSkKCQkJCQl7CgkJCQkJaWYgKCRodG0gPT0gJ2YnIHx8ICRodG0gPT0gJ2InKQogICAgICAgICAgICAgICAgICB7CgkJCQkJICAgICRvdGhlcnNbJGldLT5TZXRPcHRpb24oJ2VtYWlsX2Zyb21fbmFtZScsJHRoaXMtPlZhbHVlKTsKCQkJCQkgICB9CiAgICAgICAgICAgICAgIGlmICgkaHRtID09ICdyJyB8fCAkaHRtID09ICdiJykKICAgICAgICAgICAgICAgICAgewoJCQkJCSAgICAkb3RoZXJzWyRpXS0+U2V0T3B0aW9uKCdlbWFpbF9yZXBseV90b19uYW1lJywkdGhpcy0+VmFsdWUpOwogICAgICAgICAgICAgICAgICB9CgkJCQkJfQoJCQkJfQoJCQl9Cgl9CgoJZnVuY3Rpb24gU3RhdHVzSW5mbygpCgl7CgkJcmV0dXJuICcnOwoJfQoKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/FromEmailSubjectField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkZyb21FbWFpbFN1YmplY3RGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCglmdW5jdGlvbiBmYkZyb21FbWFpbFN1YmplY3RGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gJ0Zyb21FbWFpbFN1YmplY3RGaWVsZCc7CgkJJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwoJCSR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgKICAgICAgICAgICAgKTsKCSAgICR0aGlzLT5tb2RpZmllc090aGVyRmllbGRzID0gdHJ1ZTsKCX0KCglmdW5jdGlvbiBHZXRGaWVsZElucHV0KCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRqcyA9ICR0aGlzLT5HZXRPcHRpb24oJ2phdmFzY3JpcHQnLCcnKTsKCQkKCQlyZXR1cm4gJG1vZC0+ZmJDcmVhdGVJbnB1dFRleHQoJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQsCgkJCWh0bWxzcGVjaWFsY2hhcnMoJHRoaXMtPlZhbHVlLCBFTlRfUVVPVEVTKSwKICAgICAgICAgICAyNSwxMjgsJGpzLiR0aGlzLT5HZXRDU1NJZFRhZygpKTsKCX0KCQoJZnVuY3Rpb24gTW9kaWZ5T3RoZXJGaWVsZHMoKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJG90aGVycyA9ICR0aGlzLT5mb3JtX3B0ci0+R2V0RmllbGRzKCk7CgkJaWYgKCR0aGlzLT5WYWx1ZSAhPT0gZmFsc2UpCgkJCXsJCQoJCQlmb3IoJGk9MDskaTxjb3VudCgkb3RoZXJzKTskaSsrKQoJCQkJewoJCQkJJHJlcGxWYWwgPSAnJzsKCQkJCWlmICgkb3RoZXJzWyRpXS0+SXNEaXNwb3NpdGlvbigpICYmIGlzX3N1YmNsYXNzX29mKCRvdGhlcnNbJGldLCdmYkRpc3Bvc2l0aW9uRW1haWxCYXNlJykpCgkJCQkJewoJCQkJCSRvdGhlcnNbJGldLT5TZXRPcHRpb24oJ2VtYWlsX3N1YmplY3QnLCR0aGlzLT5WYWx1ZSk7CgkJCQkJfQoJCQkJfQoJCQl9Cgl9CgoJZnVuY3Rpb24gU3RhdHVzSW5mbygpCgl7CgkJcmV0dXJuICcnOwoJfQoKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/HiddenField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkhpZGRlbkZpZWxkIGV4dGVuZHMgZmJGaWVsZEJhc2UgCnsKCiAgZnVuY3Rpb24gZmJIaWRkZW5GaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKICB7CiAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICRtb2QgPSAmJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgJHRoaXMtPlR5cGUgPSAnSGlkZGVuRmllbGQnOwogICAgJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwogICAgJHRoaXMtPk5vblJlcXVpcmFibGVGaWVsZCA9IHRydWU7CiAgICAkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoKTsKICAgICR0aGlzLT5IYXNMYWJlbCA9IDA7CiAgICAkdGhpcy0+TmVlZHNEaXYgPSAwOwogICAgJHRoaXMtPnNvcnRhYmxlID0gZmFsc2U7CiAgfQoKCiAgZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCiAgewogICAgJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgogICBpZiAoJHRoaXMtPlZhbHVlICE9PSBmYWxzZSkKICAgICAgewoJICAkdiA9ICR0aGlzLT5WYWx1ZTsKICAJICB9CgllbHNlCgkJewoJCSR2ID0gJHRoaXMtPkdldE9wdGlvbigndmFsdWUnLCcnKTsKCQl9CgogICAgaWYgKCR0aGlzLT5HZXRPcHRpb24oJ3NtYXJ0eV9ldmFsJywnMCcpID09ICcxJykKICAgICAgewogICAgICAkdiA9ICAkbW9kLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkdik7CiAgICAgIH0KICAgIHJldHVybiAnPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iJy4kaWQuJ2ZicnBfXycuJHRoaXMtPklkLiciIHZhbHVlPSInLiR2LiciJy4kdGhpcy0+R2V0Q1NTSWRUYWcoKS4nIC8+JzsKICB9CgoJZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRtYWluID0gYXJyYXkoCgkJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV92YWx1ZScpLAogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF92YWx1ZScsJHRoaXMtPkdldE9wdGlvbigndmFsdWUnLCcnKSwyNSwxMDI0KSkKCQkpOwoJCSRhZHYgPSBhcnJheSgKCQkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3NtYXJ0eV9ldmFsJyksCgkJCQkkbW9kLT5DcmVhdGVJbnB1dENoZWNrYm94KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X3NtYXJ0eV9ldmFsJywKICAgICAgICAgICAgCQknMScsJHRoaXMtPkdldE9wdGlvbignc21hcnR5X2V2YWwnLCcwJykpKQoJCSk7CgkJcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwoJfQoKCn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/LinkField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkxpbmtGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCglmdW5jdGlvbiBmYkxpbmtGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gICdMaW5rRmllbGQnOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+Tm9uUmVxdWlyYWJsZUZpZWxkID0gdHJ1ZTsKCQkkdGhpcy0+UmVxdWlyZWQgPSBmYWxzZTsKCQkkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25fbm9uZScpPT4nbm9uZScKICAgICAgICAgICAgKTsKICAgICAgJHRoaXMtPmhhc011bHRpcGxlRm9ybUNvbXBvbmVudHMgPSB0cnVlOwoJfQoKCWZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJGpzID0gJHRoaXMtPkdldE9wdGlvbignamF2YXNjcmlwdCcsJycpOwoJCQoJCWlmICgkdGhpcy0+VmFsdWUgIT09IGZhbHNlICYmIGlzX2FycmF5KCR0aGlzLT5WYWx1ZSkpCgkJCXsKCQkJJHZhbCA9ICR0aGlzLT5WYWx1ZTsKCQkJfQoJCWVsc2UKCQkJewoJCQkkdmFsID0gYXJyYXkoJHRoaXMtPkdldE9wdGlvbignZGVmYXVsdF9saW5rJywnJyksJHRoaXMtPkdldE9wdGlvbignZGVmYXVsdF9saW5rX3RpdGxlJywnJykpOwoJCQl9IAoJCSRmaWVsZERpc3AgPSBhcnJheSgpOwoJCSR0aGlzQm94ID0gbmV3IHN0ZENsYXNzKCk7CgkJJHRoaXNCb3gtPm5hbWUgPSAnPGxhYmVsIGZvcj0iJy4kaWQuJ2ZicnBfXycuJHRoaXMtPklkLidfMSI+Jy4kbW9kLT5MYW5nKCdsaW5rX2Rlc3RpbmF0aW9uJykuJzwvbGFiZWw+JzsKCQkkdGhpc0JveC0+dGl0bGUgPSAkbW9kLT5MYW5nKCdsaW5rX2Rlc3RpbmF0aW9uJyk7CgkJJHRoaXNCb3gtPmlucHV0ID0gJHRoaXMtPlRleHRGaWVsZCgkaWQsICdmYnJwX18nLiR0aGlzLT5JZC4nW10nLCAkdmFsWzBdLCcnLCcnLCRqcy4kdGhpcy0+R2V0Q1NTSWRUYWcoJ18xJykpOwoJCWFycmF5X3B1c2goJGZpZWxkRGlzcCwgJHRoaXNCb3gpOwoJCSR0aGlzQm94ID0gbmV3IHN0ZENsYXNzKCk7CgkJJHRoaXNCb3gtPm5hbWUgPSAnPGxhYmVsIGZvcj0iJy4kaWQuJ2ZicnBfXycuJHRoaXMtPklkLidfMiI+Jy4kbW9kLT5MYW5nKCdsaW5rX2xhYmVsJykuJzwvbGFiZWw+JzsKCQkkdGhpc0JveC0+dGl0bGUgPSAkbW9kLT5MYW5nKCdsaW5rX2xhYmVsJyk7CgkJJHRoaXNCb3gtPmlucHV0ID0gJHRoaXMtPlRleHRGaWVsZCgkaWQsICdmYnJwX18nLiR0aGlzLT5JZC4nW10nLCAkdmFsWzFdLCcnLCcnLCRqcy4kdGhpcy0+R2V0Q1NTSWRUYWcoJ18yJykpOwoJCWFycmF5X3B1c2goJGZpZWxkRGlzcCwgJHRoaXNCb3gpOwkJCQoJCXJldHVybiAkZmllbGREaXNwOwoJCQoJfQoKCWZ1bmN0aW9uIEdldEh1bWFuUmVhZGFibGVWYWx1ZSgkYXNfc3RyaW5nPXRydWUpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCgkJaWYgKCR0aGlzLT5WYWx1ZSA9PT0gZmFsc2UgfHwgISBpc19hcnJheSgkdGhpcy0+VmFsdWUpKQoJCQl7CgkJCSRyZXQgPSAnJzsKCQkJfQoJCWVsc2UKCQkJewoJCQkkcmV0ID0gJzxhIGhyZWY9IicuJHRoaXMtPlZhbHVlWzBdLiciPicuJHRoaXMtPlZhbHVlWzFdLic8L2E+JzsKCQkJfQoJCWlmICgkYXNfc3RyaW5nKQoJCQl7CgkJCXJldHVybiAkcmV0OwoJCQl9CgkJZWxzZQoJCQl7CgkJCXJldHVybiBhcnJheSgkcmV0KTsKCQkJfQoKCX0KCgoJZnVuY3Rpb24gUG9zdFBvcHVsYXRlQWRtaW5Gb3JtKCYkbWFpbkFycmF5LCAmJGFkdkFycmF5KQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJLy8gcmVtb3ZlIHRoZSAicmVxdWlyZWQiIGZpZWxkLCBzaW5jZSB0aGlzIGNhbiBvbmx5IGJlIGRvbmUgdmlhIHZhbGlkYXRpb24KICAgICAgJHRoaXMtPlJlbW92ZUFkbWluRmllbGQoJG1haW5BcnJheSwgJG1vZC0+TGFuZygndGl0bGVfZmllbGRfcmVxdWlyZWQnKSk7Cgl9CgoKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRtYWluID0gYXJyYXkoCiAgICAgICAgICAgICBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9kZWZhdWx0X2xpbmsnKSwkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZGVmYXVsdF9saW5rJywkdGhpcy0+R2V0T3B0aW9uKCdkZWZhdWx0X2xpbmsnLCcnKSwyNSwxMjgpKSwKICAgICAgICAgICAgIGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2RlZmF1bHRfbGlua190aXRsZScpLCRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9kZWZhdWx0X2xpbmtfdGl0bGUnLCR0aGlzLT5HZXRPcHRpb24oJ2RlZmF1bHRfbGlua190aXRsZScsJycpLDI1LDEyOCkpCgkJKTsKCQkkYWR2ID0gYXJyYXkoCgkJKTsKCQlyZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7Cgl9Cgp9Cj8+]]></data>
	</file>
	<file>
	  <filename>/classes/ModuleInterfaceField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCgoqIFRoaXMgRmllbGQgd3JpdHRlbiBieSBKZXJlbXkgQmFzcyA8amVyZW15QmFzc0BjYWJsZW9uZS5uZXQ+CgoqLwoKY2xhc3MgZmJNb2R1bGVJbnRlcmZhY2VGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIAp7CgogIGZ1bmN0aW9uIGZiTW9kdWxlSW50ZXJmYWNlRmllbGQoJiRmb3JtX3B0ciwgJiRwYXJhbXMpCiAgewogICAgJHRoaXMtPmZiRmllbGRCYXNlKCRmb3JtX3B0ciwgJHBhcmFtcyk7CiAgICAkbW9kID0gJiRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICR0aGlzLT5UeXBlID0gJ01vZHVsZUludGVyZmFjZUZpZWxkJzsKICAgICR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKICAgIC8vJHRoaXMtPk5vblJlcXVpcmFibGVGaWVsZCA9IHRydWU7IFJFTU9WRUQgQlkgU3Rpa2tpCiAgICAkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoKTsKICAgICR0aGlzLT5IYXNMYWJlbCA9IDA7CiAgICAkdGhpcy0+TmVlZHNEaXYgPSAwOyAKICAgICR0aGlzLT5zb3J0YWJsZSA9IGZhbHNlOwoJJHRoaXMtPkRpc3BsYXlJblN1Ym1pc3Npb24gPSB0cnVlOwogIH0KCgogIGZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKXsKICAgICRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCgkkdiA9ICR0aGlzLT5HZXRPcHRpb24oJ3ZhbHVlJywnJyk7CgkkdmFsID0gYXJyYXkoKTsKCWlmKCAkdGhpcy0+VmFsdWUgIT09IGZhbHNlICl7CgkJJHZhbCA9ICR0aGlzLT5WYWx1ZTsKCQlpZiggIWlzX2FycmF5KCAkdGhpcy0+VmFsdWUgKSApewoJCQkkdmFsID0gYXJyYXkoJHRoaXMtPlZhbHVlKTsKCQl9Cgl9CgkJCglnbG9iYWwgJGdDbXM7CgkkZ0Ntcy0+c21hcnR5LT5hc3NpZ24oJ0ZCaWQnLCRpZC4nZmJycF9fJy4kdGhpcy0+SWQpOwoJLy8gZm9yIHNlbGVjdGVkLi4uIHdoYXQgdG8gZG8gaGVyZSAgCgkvLyBmb3IgdGhpbmdzIGxpa2UgY2hlY2tlZD0iY2hlY2tlZCIgb24gdGhlIGJhY2sgcGFnZQoJJGdDbXMtPnNtYXJ0eS0+YXNzaWduKCdGQnZhbHVlJywkdmFsKTsKCQoJJHYgPSAgJG1vZC0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoJHYpOwoKICAgIHJldHVybiAkdjsKICB9CgoJZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRtYWluID0gYXJyYXkoCgkJCQlhcnJheSgkbW9kLT5MYW5nKCdoZWxwX21vZHVsZV9pbnRlcmZhY2UnKSwKICAgICAgICAgICAgCQkkbW9kLT5MYW5nKCdoZWxwX21vZHVsZV9pbnRlcmZhY2VfbG9uZycpKSwKCQkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2FkZF90YWcnKSwKICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfdmFsdWUnLCR0aGlzLT5HZXRPcHRpb24oJ3ZhbHVlJywnJyksMTAwLDEwMjQpKQoJCSk7CgkJJGFkdiA9IGFycmF5KCk7CgkJcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwoJfQoJCmZ1bmN0aW9uIEdldEh1bWFuUmVhZGFibGVWYWx1ZSgkYXNfc3RyaW5nPXRydWUpCiAgewogICAgJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICRmb3JtID0gJHRoaXMtPmZvcm1fcHRyOwogICAgaWYgKCR0aGlzLT5IYXNWYWx1ZSgpKQogICAgICB7CgkkZmllbGRSZXQgPSBhcnJheSgpOwoJaWYgKCEgaXNfYXJyYXkoJHRoaXMtPlZhbHVlKSkKCSAgewoJICAgICR0aGlzLT5WYWx1ZSA9IGFycmF5KCR0aGlzLT5WYWx1ZSk7CgkgIH0KCWlmICgkYXNfc3RyaW5nKQoJICB7CgkgICAgcmV0dXJuIGpvaW4oJGZvcm0tPkdldEF0dHIoJ2xpc3RfZGVsaW1pdGVyJywnLCcpLCR0aGlzLT5WYWx1ZSk7CgkgIH0KCWVsc2UKCSAgewoJICAgIHJldHVybiBhcnJheSgkdGhpcy0+VmFsdWUpOwoJICB9CQkJCiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJaWYgKCRhc19zdHJpbmcpCgkgIHsKCSAgICByZXR1cm4gJG1vZC0+TGFuZygndW5zcGVjaWZpZWQnKTsKCSAgfQoJZWxzZQoJICB7CgkgICAgcmV0dXJuIGFycmF5KCRtb2QtPkxhbmcoJ3Vuc3BlY2lmaWVkJykpOwoJICB9CiAgICAgIH0KCQogIH0KCgp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/MultiselectField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYk11bHRpc2VsZWN0RmllbGQgZXh0ZW5kcyBmYkZpZWxkQmFzZSB7CgoJdmFyICRvcHRpb25Db3VudDsKCXZhciAkb3B0aW9uQWRkOwoKCWZ1bmN0aW9uIGZiTXVsdGlzZWxlY3RGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgICR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgICAgICRtb2QgPSAkZm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHRoaXMtPlR5cGUgPSAnTXVsdGlzZWxlY3RGaWVsZCc7CgkJJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwoJCSR0aGlzLT5Ob25SZXF1aXJhYmxlRmllbGQgPSBmYWxzZTsKCQkkdGhpcy0+SGFzQWRkT3AgPSB0cnVlOwoJCSR0aGlzLT5IYXNEZWxldGVPcCA9IHRydWU7CgkJJHRoaXMtPlZhbGlkYXRpb25UeXBlcyA9IGFycmF5KAogICAgICAgICAgICApOwogICAgICAgICR0aGlzLT5vcHRpb25BZGQgPSAwOwogICAgICAgICR0aGlzLT5zb3J0YWJsZSA9IGZhbHNlOwoJfQoKCWZ1bmN0aW9uIEdldE9wdGlvbkFkZEJ1dHRvbigpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQlyZXR1cm4gJG1vZC0+TGFuZygnYWRkX29wdGlvbnMnKTsKCX0KCglmdW5jdGlvbiBHZXRPcHRpb25EZWxldGVCdXR0b24oKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJcmV0dXJuICRtb2QtPkxhbmcoJ2RlbGV0ZV9vcHRpb25zJyk7Cgl9CgoJZnVuY3Rpb24gRG9PcHRpb25BZGQoJiRwYXJhbXMpCgl7CgkJJHRoaXMtPm9wdGlvbkFkZCA9IDI7Cgl9CgoJZnVuY3Rpb24gRG9PcHRpb25EZWxldGUoJiRwYXJhbXMpCgl7CgkJJGRlbGNvdW50ID0gMDsKCQlmb3JlYWNoICgkcGFyYW1zIGFzICR0aGlzS2V5PT4kdGhpc1ZhbCkKCQkJewoJCQlpZiAoc3Vic3RyKCR0aGlzS2V5LDAsOSkgPT0gJ2ZicnBfZGVsXycpCgkJCQl7CgkJCQkkdGhpcy0+UmVtb3ZlT3B0aW9uRWxlbWVudCgnb3B0aW9uX25hbWUnLCAkdGhpc1ZhbCAtICRkZWxjb3VudCk7CgkJCQkkdGhpcy0+UmVtb3ZlT3B0aW9uRWxlbWVudCgnb3B0aW9uX3ZhbHVlJywgJHRoaXNWYWwgLSAkZGVsY291bnQpOwoJCQkJJGRlbGNvdW50Kys7CgkJCQl9CgkJCX0KCX0KCglmdW5jdGlvbiBjb3VudEl0ZW1zKCkKCXsKCQkJJHRtcCA9ICR0aGlzLT5HZXRPcHRpb25SZWYoJ29wdGlvbl9uYW1lJyk7CgkJCWlmIChpc19hcnJheSgkdG1wKSkKCQkJCXsKCSAgICAgICAgCSR0aGlzLT5vcHRpb25Db3VudCA9IGNvdW50KCR0bXApOwoJICAgICAgICAJfQoJICAgICAgICBlbHNlaWYgKCR0bXAgIT09IGZhbHNlKQoJICAgICAgICAJewoJICAgICAgICAJJHRoaXMtPm9wdGlvbkNvdW50ID0gMTsKCSAgICAgICAgCX0KCSAgICAgICAgZWxzZQoJICAgICAgICAJewoJICAgICAgICAJJHRoaXMtPm9wdGlvbkNvdW50ID0gMDsKCSAgICAgICAgCX0KCX0KCglmdW5jdGlvbiBHZXRGaWVsZElucHV0KCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRqcyA9ICR0aGlzLT5HZXRPcHRpb24oJ2phdmFzY3JpcHQnLCcnKTsKCgkJLy8gd2h5IGFsbCB0aGlzPyBBc3NvY2lhdGl2ZSBhcnJheXMgYXJlIG5vdCBndWFyYW50ZWVkIHRvIHByZXNlcnZlCgkJLy8gb3JkZXIsIGV4Y2VwdCBpbiAiY2hyb25vbG9naWNhbCIgY3JlYXRpb24gb3JkZXIuCgkJJHNvcnRlZCA9YXJyYXkoKTsKCQkkc3ViamVjdHMgPSAkdGhpcy0+R2V0T3B0aW9uUmVmKCdvcHRpb25fbmFtZScpOwoKCQlpZiAoY291bnQoJHN1YmplY3RzKSA+IDEpCgkJCXsKCQkJZm9yKCRpPTA7JGk8Y291bnQoJHN1YmplY3RzKTskaSsrKQoJCQkJewoJCQkJJHNvcnRlZFskc3ViamVjdHNbJGldXT0oJGkrMSk7CgkJCQl9CgkJCX0KCQllbHNlCgkJCXsKCQkJJHNvcnRlZFskc3ViamVjdHNdID0gJzEnOwoJCQl9CgkJaWYgKCR0aGlzLT5WYWx1ZSA9PT0gZmFsc2UpCgkJCXsKCQkJJHZhbCA9IGFycmF5KCk7CgkJCX0KCQllbHNlaWYgKCFpc19hcnJheSgkdGhpcy0+VmFsdWUpKQoJCQl7CgkJCSR2YWwgPSBhcnJheSgkdGhpcy0+VmFsdWUpOwoJCQl9CgkJZWxzZQoJCQl7CgkJCSR2YWwgPSAkdGhpcy0+VmFsdWU7CgkJCX0KCQlyZXR1cm4gJG1vZC0+Q3JlYXRlSW5wdXRTZWxlY3RMaXN0KCRpZCwgJ2ZicnBfXycuJHRoaXMtPklkLidbXScsICRzb3J0ZWQsJHZhbCwgJHRoaXMtPkdldE9wdGlvbignbGluZXMnLCczJyksCiAgICAgICAgICRqcy4kdGhpcy0+R2V0Q1NTSWRUYWcoKSk7Cgl9CgoKCiAgICBmdW5jdGlvbiBTdGF0dXNJbmZvKCkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRvcHQgPSAkdGhpcy0+R2V0T3B0aW9uKCdvcHRpb25fbmFtZScsJycpOwoJCQoJCWlmIChpc19hcnJheSgkb3B0KSkKCQkgIHsKCQkgICAgICAkbnVtID0gY291bnQoJG9wdCk7CgkJICB9CgkJZWxzZWlmICgkb3B0ICE9ICcnKQoJCQl7CgkJCSRudW0gPSAxOwoJCQl9CgkJZWxzZQoJCSAgewogICAgICAgICAgJG51bSA9IDA7CiAgICAgICAgICB9CiAgICAgICAgICRyZXQ9ICRtb2QtPkxhbmcoJ29wdGlvbnMnLCRudW0pOwogICAgICAgIHJldHVybiAkcmV0OwoJfQoJCglmdW5jdGlvbiBQcmVQb3B1bGF0ZUFkbWluRm9ybSgkZm9ybURlc2NyaXB0b3IpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCgkJJHRoaXMtPmNvdW50SXRlbXMoKTsKCQlpZiAoJHRoaXMtPm9wdGlvbkFkZCA+IDApCgkJCXsKCQkJJHRoaXMtPm9wdGlvbkNvdW50ICs9ICR0aGlzLT5vcHRpb25BZGQ7CgkJCSR0aGlzLT5vcHRpb25BZGQgPSAwOwoJCQl9CgkJJGRlc3RzID0gJzx0YWJsZSBjbGFzcz0ibW9kdWxlX2ZiX3RhYmxlIj48dHI+PHRoPicuJG1vZC0+TGFuZygndGl0bGVfb3B0aW9uX25hbWUnKS4nPC90aD48dGg+Jy4KCQkJJG1vZC0+TGFuZygndGl0bGVfb3B0aW9uX3ZhbHVlJykuJzwvdGg+PHRoPicuCgkJCSRtb2QtPkxhbmcoJ3RpdGxlX2RlbGV0ZScpLic8L3RoPjwvdHI+JzsKCgoJCWZvciAoJGk9MDskaTwoJHRoaXMtPm9wdGlvbkNvdW50PjE/JHRoaXMtPm9wdGlvbkNvdW50OjEpOyRpKyspCgkJCXsKCQkJJGRlc3RzIC49ICAnPHRyPjx0ZD4nLgogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9vcHRpb25fbmFtZVtdJywkdGhpcy0+R2V0T3B0aW9uRWxlbWVudCgnb3B0aW9uX25hbWUnLCRpKSwyNSwxMjgpLgogICAgICAgICAgICAJCSc8L3RkPjx0ZD4nLgogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9vcHRpb25fdmFsdWVbXScsJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ29wdGlvbl92YWx1ZScsJGkpLDI1LDEyOCkuCiAgICAgICAgICAgIAkJJzwvdGQ+PHRkPicuCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX2RlbF8nLiRpLCAkaSwtMSkuCiAgICAgICAgICAgICAJCSc8L3RkPjwvdHI+JzsKCQkJfQoJCSRkZXN0cyAuPSAnPC90YWJsZT4nOwoJCSRtYWluID0gYXJyYXkoKTsKCQkkYWR2ID0gYXJyYXkoKTsKCQlhcnJheV9wdXNoKCRtYWluLGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2xpbmVzX3RvX3Nob3cnKSwkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfbGluZXMnLCR0aGlzLT5HZXRPcHRpb24oJ2xpbmVzJywnMycpLDEwLDEwKSkpOwoJCWFycmF5X3B1c2goJG1haW4sYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfbXVsdGlzZWxlY3RfZGV0YWlscycpLCRkZXN0cykpOwoJCXJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLCdhZHYnPT4kYWR2KTsKCX0KCglmdW5jdGlvbiBHZXRIdW1hblJlYWRhYmxlVmFsdWUoJGFzX3N0cmluZz10cnVlKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJGZvcm0gPSAkdGhpcy0+Zm9ybV9wdHI7CgkJJHZhbHMgPSAkdGhpcy0+R2V0T3B0aW9uUmVmKCdvcHRpb25fdmFsdWUnKTsKCQlpZiAoJHRoaXMtPkhhc1ZhbHVlKCkpCgkJCXsKCQkJJGZpZWxkUmV0ID0gYXJyYXkoKTsKCQkJaWYgKCEgaXNfYXJyYXkoJHRoaXMtPlZhbHVlKSkKCQkJCXsKCQkJCSR0aGlzLT5WYWx1ZSA9IGFycmF5KCR0aGlzLT5WYWx1ZSk7CgkJCQl9CgkJCWZvcmVhY2ggKCR0aGlzLT5WYWx1ZSBhcyAkdGhpc09uZSkKCQkJCXsKCQkJCWFycmF5X3B1c2goJGZpZWxkUmV0LCR2YWxzWyR0aGlzT25lIC0gMV0pOwoJCQkJfQoJCQlpZiAoJGFzX3N0cmluZykKCQkJCXsKCQkJCXJldHVybiBqb2luKCRmb3JtLT5HZXRBdHRyKCdsaXN0X2RlbGltaXRlcicsJywnKSwkZmllbGRSZXQpOwoJCQkJfQoJCQllbHNlCgkJCQl7CgkJCQlyZXR1cm4gYXJyYXkoJGZpZWxkUmV0KTsKCQkJCX0JCQkKCQkJfQoJCWVsc2UKCQkJewoJCQlpZiAoJGFzX3N0cmluZykKCQkJCXsKCQkJCXJldHVybiAkbW9kLT5MYW5nKCd1bnNwZWNpZmllZCcpOwoJCQkJfQoJCQllbHNlCgkJCQl7CgkJCQlyZXR1cm4gYXJyYXkoJG1vZC0+TGFuZygndW5zcGVjaWZpZWQnKSk7CgkJCQl9CgkJCX0KCQoJfQkKfQo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/PageBreakField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYlBhZ2VCcmVha0ZpZWxkIGV4dGVuZHMgZmJGaWVsZEJhc2UgewoKCWZ1bmN0aW9uIGZiUGFnZUJyZWFrRmllbGQoJiRmb3JtX3B0ciwgJiRwYXJhbXMpCgl7CiAgICAgICAgJHRoaXMtPmZiRmllbGRCYXNlKCRmb3JtX3B0ciwgJHBhcmFtcyk7CiAgICAgICAgJG1vZCA9ICRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkdGhpcy0+VHlwZSA9ICdQYWdlQnJlYWtGaWVsZCc7CgkJJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSBmYWxzZTsKCQkkdGhpcy0+UmVxdWlyZWQgPSBmYWxzZTsKCQkvLyR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgkbW9kLT5MYW5nKCd2YWxpZGF0aW9uX25vbmUnKT0+J25vbmUnKTsKCQkkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoKTsKCQkkdGhpcy0+Tm9uUmVxdWlyYWJsZUZpZWxkID0gdHJ1ZTsKCQkkdGhpcy0+c29ydGFibGUgPSBmYWxzZTsKCX0KCglmdW5jdGlvbiBHZXRGaWVsZElucHV0KCRpZCwgJiRwYXJhbXMsICRyZXR1cm5faWQpCgl7Cgl9CgoKCWZ1bmN0aW9uIFN0YXR1c0luZm8oKQoJewoJCXJldHVybiAnJzsKCX0KCgoJZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQoJewoJCXJldHVybiBhcnJheSgpOwoJfQoKCWZ1bmN0aW9uIFBvc3RQb3B1bGF0ZUFkbWluRm9ybSgmJG1haW5BcnJheSwgJiRhZHZBcnJheSkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCS8vIHJlbW92ZSB0aGUgInJlcXVpcmVkIiBmaWVsZAogICAgICAkdGhpcy0+UmVtb3ZlQWRtaW5GaWVsZCgkbWFpbkFycmF5LCAkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9yZXF1aXJlZCcpKTsKICAgICAgJHRoaXMtPkhpZGRlbkRpc3Bvc2l0aW9uRmllbGRzKCRtYWluQXJyYXksICRhZHZBcnJheSk7Cgl9CgoKCWZ1bmN0aW9uIFZhbGlkYXRlKCkKCXsKCQlyZXR1cm4gYXJyYXkodHJ1ZSwnJyk7Cgl9CgkKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/PasswordAgainField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYlBhc3N3b3JkQWdhaW5GaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCglmdW5jdGlvbiBmYlBhc3N3b3JkQWdhaW5GaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKCQkkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKCQkkbW9kID0gJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gJ1Bhc3N3b3JkQWdhaW5GaWVsZCc7CgkJJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwoJCSR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgKCQkJKTsKCQkkdGhpcy0+bW9kaWZpZXNPdGhlckZpZWxkcyA9IGZhbHNlOwoJfQoKCWZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQoJewoJICAkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJICAkanMgPSAkdGhpcy0+R2V0T3B0aW9uKCdqYXZhc2NyaXB0JywnJyk7CiAgICAgaWYgKCR0aGlzLT5HZXRPcHRpb24oJ2hpZGUnLCcxJykgPT0gJzAnKQogICAgICAgewoJICAgICByZXR1cm4gJG1vZC0+ZmJDcmVhdGVJbnB1dFRleHQoJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQsCgkJCQkgICAgKCR0aGlzLT5WYWx1ZT8kdGhpcy0+VmFsdWU6JycpLAogICAgICAgICAgICAkdGhpcy0+R2V0T3B0aW9uKCdsZW5ndGgnKSwKICAgICAgICAgICAgMjU1LAoJCQkkanMuJHRoaXMtPkdldENTU0lkVGFnKCkpOwogICAgICAgIH0KICAgICAgZWxzZQogICAgICAgICB7CiAgICAgICAgIHJldHVybiAkbW9kLT5DcmVhdGVJbnB1dFBhc3N3b3JkKCRpZCwgJ2ZicnBfXycuJHRoaXMtPklkLAogICAgICAgICAgICAoJHRoaXMtPlZhbHVlPyR0aGlzLT5WYWx1ZTonJyksICR0aGlzLT5HZXRPcHRpb24oJ2xlbmd0aCcpLAogICAgICAgICAgICAyNTUsICRqcy4kdGhpcy0+R2V0Q1NTSWRUYWcoKSk7CiAgICAgICAgIH0KICAgfQoKCWZ1bmN0aW9uIFN0YXR1c0luZm8oKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJcmV0dXJuICRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX2lkJykgLiAnOiAnIC4gJHRoaXMtPkdldE9wdGlvbignZmllbGRfdG9fdmFsaWRhdGUnLCcnKTsKCX0KCQoJZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJGZsZHMgPSAkdGhpcy0+Zm9ybV9wdHItPkdldEZpZWxkcygpOwoJCSRvcHRzID0gYXJyYXkoKTsKCQlmb3JlYWNoICgkZmxkcyBhcyAkdGYpCgkJCXsKCQkJaWYgKCR0Zi0+R2V0RmllbGRUeXBlKCkgPT0gJ1Bhc3N3b3JkRmllbGQnKQogICAgICAgICAgICB7CgkJCSAgICRvcHRzWyR0Zi0+R2V0TmFtZSgpXT0kdGYtPkdldE5hbWUoKTsKCQkJICAgfQoJCQl9CgkJJG1haW4gPSBhcnJheSgKCQkJYXJyYXkoCgkJCQkkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF90b192YWxpZGF0ZScpLAoJCQkkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2ZpZWxkX3RvX3ZhbGlkYXRlJywgJG9wdHMsIC0xLCAkdGhpcy0+R2V0T3B0aW9uKCdmaWVsZF90b192YWxpZGF0ZScpKQoJCQkpLAoJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9kaXNwbGF5X2xlbmd0aCcpLAoJCQkgICAgICAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLAoJCQkJCQkgICAgJ2ZicnBfb3B0X2xlbmd0aCcsCgkJCSAgICAgICAgICR0aGlzLT5HZXRPcHRpb24oJ2xlbmd0aCcsJzEyJyksMjUsMjUpKSwKCQkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfbWluaW11bV9sZW5ndGgnKSwKCQkJICAgICAgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwKCQkJCQkJICAgICdmYnJwX29wdF9taW5fbGVuZ3RoJywKCQkJICAgICAgICAgJHRoaXMtPkdldE9wdGlvbignbWluX2xlbmd0aCcsJzgnKSwyNSwyNSkpLAoJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9oaWRlJyksCgkJCSAgICAgICRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2hpZGUnLCcwJykuCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9oaWRlJywKICAgICAgICAgICAgCQknMScsJHRoaXMtPkdldE9wdGlvbignaGlkZScsJzEnKSkuJG1vZC0+TGFuZygndGl0bGVfaGlkZV9oZWxwJykpLAoKCQkpOwoKCQlyZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbik7Cgl9CgoKCWZ1bmN0aW9uIFZhbGlkYXRlKCkKCXsKCQkkdGhpcy0+dmFsaWRhdGVkID0gdHJ1ZTsKCQkkdGhpcy0+dmFsaWRhdGlvbkVycm9yVGV4dCA9ICcnOwoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgoJCSRmaWVsZF90b192YWxpZGF0ZSA9ICR0aGlzLT5HZXRPcHRpb24oJ2ZpZWxkX3RvX3ZhbGlkYXRlJywnJyk7CgoJCWlmICgkZmllbGRfdG9fdmFsaWRhdGUgIT0gJycpCgkJewoJCQlmb3JlYWNoICgkdGhpcy0+Zm9ybV9wdHItPkZpZWxkcyBhcyAkb25lX2ZpZWxkKQoJCQl7CgkJCQlpZiAoJG9uZV9maWVsZC0+TmFtZSA9PSAkZmllbGRfdG9fdmFsaWRhdGUpCgkJCQl7CgkJCQkJJHZhbHVlID0gJG9uZV9maWVsZC0+R2V0VmFsdWUoKTsKCQkJCQlpZiAoJHZhbHVlICE9ICR0aGlzLT5WYWx1ZSkKCQkJCQl7CgkJCQkJCSR0aGlzLT52YWxpZGF0ZWQgPSBmYWxzZTsKCQkJCQkJJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQgPSAkbW9kLT5MYW5nKCdwYXNzd29yZF9kb2VzX25vdF9tYXRjaCcsICRmaWVsZF90b192YWxpZGF0ZSk7CgkJCQkJfQoJCQkJfQoJCQl9CgkJfQoJCXJldHVybiBhcnJheSgkdGhpcy0+dmFsaWRhdGVkLCAkdGhpcy0+dmFsaWRhdGlvbkVycm9yVGV4dCk7Cgl9Cn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/PasswordField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyoKICAgRm9ybUJ1aWxkZXIuIENvcHlyaWdodCAoYykgMjAwNS0yMDA2IFNhbXVlbCBHb2xkc3RlaW4gPHNqZ0BjbXNtb2R1bGVzLmNvbT4KICAgTW9yZSBpbmZvIGF0IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvZm9ybWJ1aWxkZXIKCiAgIEEgTW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUsIENvcHlyaWdodCAoYykgMjAwNiBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiAgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKKi8KCmNsYXNzIGZiUGFzc3dvcmRGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCglmdW5jdGlvbiBmYlBhc3N3b3JkRmllbGQoJiRmb3JtX3B0ciwgJiRwYXJhbXMpCgl7CiAgICAgICR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgICAkbW9kID0gJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gJ1Bhc3N3b3JkRmllbGQnOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25fbm9uZScpPT4nbm9uZScsCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25fcmVnZXhfbWF0Y2gnKT0+J3JlZ2V4X21hdGNoJywKICAgICAgICAgICAgJG1vZC0+TGFuZygndmFsaWRhdGlvbl9yZWdleF9ub21hdGNoJyk9PidyZWdleF9ub21hdGNoJwogICAgICAgICAgICApOwoKCX0KCgoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCgl7CgkgICRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkgICRqcyA9ICR0aGlzLT5HZXRPcHRpb24oJ2phdmFzY3JpcHQnLCcnKTsKCSAgJHJvID0gJyc7CiAgICAgaWYgKCR0aGlzLT5HZXRPcHRpb24oJ3JlYWRvbmx5JywnMCcpID09ICcxJykKICAgICAgICAgewogICAgICAgICAkcm8gPSAnIHJlYWRvbmx5PSJyZWFkb25seSInOwogICAgICAgICB9CiAgICAgaWYgKCR0aGlzLT5HZXRPcHRpb24oJ2hpZGUnLCcxJykgPT0gJzAnKQogICAgICAgewoJICAgICByZXR1cm4gJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2ZicnBfXycuJHRoaXMtPklkLAoJCQkJICAgICgkdGhpcy0+VmFsdWU/JHRoaXMtPlZhbHVlOicnKSwKICAgICAgICAgICAgJHRoaXMtPkdldE9wdGlvbignbGVuZ3RoJyksCiAgICAgICAgICAgIDI1NSwKCQkJJGpzLiRyby4kdGhpcy0+R2V0Q1NTSWRUYWcoKSk7CiAgICAgICAgfQogICAgICBlbHNlCiAgICAgICAgIHsKICAgICAgICAgcmV0dXJuICRtb2QtPkNyZWF0ZUlucHV0UGFzc3dvcmQoJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQsCiAgICAgICAgICAgICgkdGhpcy0+VmFsdWU/JHRoaXMtPlZhbHVlOicnKSwgJHRoaXMtPkdldE9wdGlvbignbGVuZ3RoJyksCiAgICAgICAgICAgIDI1NSwgJGpzLiRyby4kdGhpcy0+R2V0Q1NTSWRUYWcoKSk7CiAgICAgICAgIH0KCX0KCglmdW5jdGlvbiBTdGF0dXNJbmZvKCkKCXsKCSAgJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCSAgJHJldCA9ICRtb2QtPkxhbmcoJ2FiYnJldmlhdGlvbl9sZW5ndGgnLCR0aGlzLT5HZXRPcHRpb24oJ2xlbmd0aCcsJzgwJykpOwoJCWlmIChzdHJsZW4oJHRoaXMtPlZhbGlkYXRpb25UeXBlKT4wKQoJCSAgewoJCSAgCSRyZXQgLj0gIiwgIi5hcnJheV9zZWFyY2goJHRoaXMtPlZhbGlkYXRpb25UeXBlLCR0aGlzLT5WYWxpZGF0aW9uVHlwZXMpOwoJCSAgfQogICAgICBpZiAoJHRoaXMtPkdldE9wdGlvbigncmVhZG9ubHknLCcwJykgPT0gJzEnKQogICAgICAgICB7CiAgICAgICAgICRyZXQgLj0gIiwgIi4kbW9kLT5MYW5nKCd0aXRsZV9yZWFkX29ubHknKTsKICAgICAgICAgfQoJCSByZXR1cm4gJHJldDsKCX0KCgoJZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJG1haW4gPSBhcnJheSgKCQkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZGlzcGxheV9sZW5ndGgnKSwKCQkJICAgICAgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwKCQkJCQkJICAgICdmYnJwX29wdF9sZW5ndGgnLAoJCQkgICAgICAgICAkdGhpcy0+R2V0T3B0aW9uKCdsZW5ndGgnLCcxMicpLDI1LDI1KSksCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX21pbmltdW1fbGVuZ3RoJyksCgkJCSAgICAgICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsCgkJCQkJCSAgICAnZmJycF9vcHRfbWluX2xlbmd0aCcsCgkJCSAgICAgICAgICR0aGlzLT5HZXRPcHRpb24oJ21pbl9sZW5ndGgnLCc4JyksMjUsMjUpKSwKCQkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfaGlkZScpLAoJCQkgICAgICAkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9oaWRlJywnMCcpLgogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfaGlkZScsCiAgICAgICAgICAgIAkJJzEnLCR0aGlzLT5HZXRPcHRpb24oJ2hpZGUnLCcxJykpLiRtb2QtPkxhbmcoJ3RpdGxlX2hpZGVfaGVscCcpKSwKCQkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfcmVhZF9vbmx5JyksCgkJCSAgICAgICRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X3JlYWRvbmx5JywnMCcpLgogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfcmVhZG9ubHknLAogICAgICAgICAgICAJCScxJywkdGhpcy0+R2V0T3B0aW9uKCdyZWFkb25seScsJzAnKSkpCgkJKTsKCQkkYWR2ID0gYXJyYXkoCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX3JlZ2V4JyksCgkJCSAgICAgIGFycmF5KCRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsCgkJCQkJCQkgICdmYnJwX29wdF9yZWdleCcsCgkJCQkJCQkgICR0aGlzLT5HZXRPcHRpb24oJ3JlZ2V4JyksMjUsMTAyNCksJG1vZC0+TGFuZygndGl0bGVfcmVnZXhfaGVscCcpKSksCgkJKTsKCQlyZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7Cgl9CgoKCWZ1bmN0aW9uIFZhbGlkYXRlKCkKCXsKCQkkdGhpcy0+dmFsaWRhdGVkID0gdHJ1ZTsKCQkkdGhpcy0+dmFsaWRhdGlvbkVycm9yVGV4dCA9ICcnOwoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJc3dpdGNoICgkdGhpcy0+VmFsaWRhdGlvblR5cGUpCgkJICB7CgkJICAJICAgY2FzZSAnbm9uZSc6CgkJICAJICAgICAgIGJyZWFrOwoJCSAgCSAgIGNhc2UgJ3JlZ2V4X21hdGNoJzoKICAgICAgICAgICAgICAgICAgaWYgKCR0aGlzLT5WYWx1ZSAhPT0gZmFsc2UgJiYKICAgICAgICAgICAgICAgICAgICAgICEgcHJlZ19tYXRjaCgkdGhpcy0+R2V0T3B0aW9uKCdyZWdleCcsJy8uKi8nKSwgJHRoaXMtPlZhbHVlKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnZhbGlkYXRlZCA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgICR0aGlzLT52YWxpZGF0aW9uRXJyb3JUZXh0ID0gJG1vZC0+TGFuZygncGxlYXNlX2VudGVyX3ZhbGlkJywkdGhpcy0+TmFtZSk7CiAgICAgICAgICAgICAgICAgICAgfQoJCSAgCSAgIAkgICBicmVhazsKCQkgIAkgICBjYXNlICdyZWdleF9ub21hdGNoJzoKICAgICAgICAgICAgICAgICAgaWYgKCR0aGlzLT5WYWx1ZSAhPT0gZmFsc2UgJiYKICAgICAgICAgICAgICAgICAgICAgICBwcmVnX21hdGNoKCR0aGlzLT5HZXRPcHRpb24oJ3JlZ2V4JywnLy4qLycpLCAkdGhpcy0+VmFsdWUpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+dmFsaWRhdGVkID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQgPSAkbW9kLT5MYW5nKCdwbGVhc2VfZW50ZXJfdmFsaWQnLCR0aGlzLT5OYW1lKTsKICAgICAgICAgICAgICAgICAgICB9CgkJICAJICAgCSAgIGJyZWFrOwoJCSAgfQoJCWlmICgkdGhpcy0+R2V0T3B0aW9uKCdtaW5fbGVuZ3RoJywwKSA+IDAgJiYgc3RybGVuKCR0aGlzLT5WYWx1ZSkgPCAkdGhpcy0+R2V0T3B0aW9uKCdtaW5fbGVuZ3RoJywwKSkKCQkJewoJCQkkdGhpcy0+dmFsaWRhdGVkID0gZmFsc2U7CgkJCSR0aGlzLT52YWxpZGF0aW9uRXJyb3JUZXh0ID0gJG1vZC0+TGFuZygncGxlYXNlX2VudGVyX2F0X2xlYXN0JywkdGhpcy0+R2V0T3B0aW9uKCdtaW5fbGVuZ3RoJywwKSk7CgkJCX0KCQlyZXR1cm4gYXJyYXkoJHRoaXMtPnZhbGlkYXRlZCwgJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQpOwoJfQp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/ProvincePickerField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLy8gRmVlZGJhY2sgRm9ybS4gMDIvMjAwNSBTakcgPGZlZWRiYWNrZm9ybV9jbXNtb2R1bGVAZm9nYm91bmQubmV0PgovLyBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCAoYykyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKLy8gVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKCmNsYXNzIGZiUHJvdmluY2VQaWNrZXJGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCgl2YXIgJFByb3ZpbmNlczsKCQoJZnVuY3Rpb24gZmJQcm92aW5jZVBpY2tlckZpZWxkKCYkZm9ybV9wdHIsICYkcGFyYW1zKQoJewogICAgICAgICR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgICAgICRtb2QgPSAkZm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHRoaXMtPlR5cGUgPSAnUHJvdmluY2VQaWNrZXJGaWVsZCc7CgkJJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwoJCSR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgKICAgICAgICAgICAgKTsKCiAgICAgICAgJHRoaXMtPlByb3ZpbmNlcyA9IGFycmF5KAogICAgICAgICJObyBEZWZhdWx0Ij0+JycsIkFsYmVydGEiPT4iQUIiLCAiQnJpdGlzaCBDb2x1bWJpYSI9PiJCQyIsICJNYW5pdG9iYSI9PiJNQiIsICJOZXcgQnJ1bnN3aWNrIj0+Ik5CIiwgCiAgICAgICAgIk5ld2ZvdW5kbGFuZCBhbmQgTGFicmFkb3IiPT4iTkwiLCAiTm9ydGh3ZXN0IFRlcnJpdG9yaWVzIj0+Ik5UIiwgIk5vdmEgU2NvdGlhIj0+Ik5TIiwgIk51bmF2dXQiPT4iTlUiLCAKICAgICAgICAiT250YXJpbyI9PiJPTiIsICJQcmluY2UgRWR3YXJkIElzbGFuZCI9PiJQRSIsICJRdWViZWMiPT4iUUMiLCAiU2Fza2F0Y2hld2FuIj0+IlNLIiwgIll1a29uIj0+IllUIik7CgoJfQoKCiAgICBmdW5jdGlvbiBTdGF0dXNJbmZvKCkKCXsKCQlyZXR1cm4gJyc7Cgl9CgoJZnVuY3Rpb24gR2V0SHVtYW5SZWFkYWJsZVZhbHVlKCRhc19zdHJpbmc9dHJ1ZSkKCXsKCQkkcmV0ID0gYXJyYXlfc2VhcmNoKCR0aGlzLT5WYWx1ZSwkdGhpcy0+UHJvdmluY2VzKTsKCQlpZiAoJGFzX3N0cmluZykKCQkJewoJCQlyZXR1cm4gJHJldDsKCQkJfQoJCWVsc2UKCQkJewoJCQlyZXR1cm4gYXJyYXkoJHJldCk7CgkJCX0KCX0KCgoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkanMgPSAkdGhpcy0+R2V0T3B0aW9uKCdqYXZhc2NyaXB0JywnJyk7CgoJCXVuc2V0KCR0aGlzLT5Qcm92aW5jZXNbJG1vZC0+TGFuZygnbm9fZGVmYXVsdCcpXSk7CgkJaWYgKCR0aGlzLT5HZXRPcHRpb24oJ3NlbGVjdF9vbmUnLCcnKSAhPSAnJykKCQkJewoJCQkkdGhpcy0+UHJvdmluY2VzID0gYXJyYXlfbWVyZ2UoYXJyYXkoJHRoaXMtPkdldE9wdGlvbignc2VsZWN0X29uZScsJycpPT4nJyksJHRoaXMtPlByb3ZpbmNlcyk7CgkJCX0KCQllbHNlCgkJCXsKCQkJJHRoaXMtPlByb3ZpbmNlcyA9IGFycmF5X21lcmdlKGFycmF5KCRtb2QtPkxhbmcoJ3NlbGVjdF9vbmUnKT0+JycpLCR0aGlzLT5Qcm92aW5jZXMpOwoJCQl9CgoKCQlpZiAoISAkdGhpcy0+SGFzVmFsdWUoKSAmJiAkdGhpcy0+R2V0T3B0aW9uKCdkZWZhdWx0X3Byb3ZpbmNlJywnJykgIT0gJycpCgkJICB7CgkJICAkdGhpcy0+U2V0VmFsdWUoJHRoaXMtPkdldE9wdGlvbignZGVmYXVsdF9wcm92aW5jZScsJycpKTsKCQkgIH0KCgkJcmV0dXJuICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQsICR0aGlzLT5Qcm92aW5jZXMsIC0xLCAkdGhpcy0+VmFsdWUsJGpzLiR0aGlzLT5HZXRDU1NJZFRhZygpKTsKCX0KCglmdW5jdGlvbiBQcmVQb3B1bGF0ZUFkbWluRm9ybSgkZm9ybURlc2NyaXB0b3IpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQlrc29ydCgkdGhpcy0+UHJvdmluY2VzKTsKCgkJJG1haW4gPSBhcnJheSgKCQkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfc2VsZWN0X2RlZmF1bHRfcHJvdmluY2UnKSwKICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2RlZmF1bHRfcHJvdmluY2UnLAogICAgICAgICAgICAJCSR0aGlzLT5Qcm92aW5jZXMsIC0xLCAkdGhpcy0+R2V0T3B0aW9uKCdkZWZhdWx0X3Byb3ZpbmNlJywnJykpKSwKCQkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfc2VsZWN0X29uZV9tZXNzYWdlJyksCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X3NlbGVjdF9vbmUnLAogICAgICAgICAgICAJCSR0aGlzLT5HZXRPcHRpb24oJ3NlbGVjdF9vbmUnLCRtb2QtPkxhbmcoJ3NlbGVjdF9vbmUnKSkpKQoJCSk7CgkJcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sYXJyYXkoKSk7Cgl9CgoKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/PulldownField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYlB1bGxkb3duRmllbGQgZXh0ZW5kcyBmYkZpZWxkQmFzZSB7CgoJdmFyICRvcHRpb25Db3VudDsKCXZhciAkb3B0aW9uQWRkOwoKICAgIGZ1bmN0aW9uIGFycmF5X3NvcnRfYnlfa2V5KCRpbnB1dCkKCXsKCQlpZiggIWlzX2FycmF5KCRpbnB1dCkgKSByZXR1cm47CgkJJGExID0gYXJyYXkoKTsKCQlmb3JlYWNoKCAkaW5wdXQgYXMgJGsgPT4gJHYgKSB7CgkJCSRhMVskdl0gPSAkazsKCQl9CgkJYXNvcnQoJGExKTsKCQkkYTIgPSBhcnJheSgpOwoJCWZvcmVhY2goICRhMSBhcyAkayA9PiAkdiApIHsKCQkJJGEyWyR2XSA9ICRrOwoJCX0KCQlyZXR1cm4gJGEyOwoJfQoKCWZ1bmN0aW9uIGZiUHVsbGRvd25GaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKCQkkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gJ1B1bGxkb3duRmllbGQnOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+SGFzQWRkT3AgPSB0cnVlOwoJCSR0aGlzLT5IYXNEZWxldGVPcCA9IHRydWU7CgkJJHRoaXMtPlZhbGlkYXRpb25UeXBlcyA9IGFycmF5KAogICAgICAgICAgICApOwogICAgICAgICR0aGlzLT5vcHRpb25BZGQgPSAwOwoJfQoKCWZ1bmN0aW9uIEdldE9wdGlvbkFkZEJ1dHRvbigpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQlyZXR1cm4gJG1vZC0+TGFuZygnYWRkX29wdGlvbnMnKTsKCX0KCglmdW5jdGlvbiBHZXRPcHRpb25EZWxldGVCdXR0b24oKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJcmV0dXJuICRtb2QtPkxhbmcoJ2RlbGV0ZV9vcHRpb25zJyk7Cgl9CgoJZnVuY3Rpb24gRG9PcHRpb25BZGQoJiRwYXJhbXMpCgl7CgkJJHRoaXMtPm9wdGlvbkFkZCA9IDE7Cgl9CgoJZnVuY3Rpb24gRG9PcHRpb25EZWxldGUoJiRwYXJhbXMpCgl7CgkJJGRlbGNvdW50ID0gMDsKCQlmb3JlYWNoICgkcGFyYW1zIGFzICR0aGlzS2V5PT4kdGhpc1ZhbCkKCQkJewoJCQlpZiAoc3Vic3RyKCR0aGlzS2V5LDAsOSkgPT0gJ2ZicnBfZGVsXycpCgkJCQl7CgkJCQkkdGhpcy0+UmVtb3ZlT3B0aW9uRWxlbWVudCgnb3B0aW9uX25hbWUnLCAkdGhpc1ZhbCAtICRkZWxjb3VudCk7CgkJCQkkdGhpcy0+UmVtb3ZlT3B0aW9uRWxlbWVudCgnb3B0aW9uX3ZhbHVlJywgJHRoaXNWYWwgLSAkZGVsY291bnQpOwoJCQkJJGRlbGNvdW50Kys7CgkJCQl9CgkJCX0KCX0KCglmdW5jdGlvbiBjb3VudEl0ZW1zKCkKCXsKCQkJJHRtcCA9ICR0aGlzLT5HZXRPcHRpb25SZWYoJ29wdGlvbl9uYW1lJyk7CgkJCWlmIChpc19hcnJheSgkdG1wKSkKCQkJCXsKCSAgICAgICAgCSR0aGlzLT5vcHRpb25Db3VudCA9IGNvdW50KCR0bXApOwoJICAgICAgICAJfQoJICAgICAgICBlbHNlaWYgKCR0bXAgIT09IGZhbHNlKQoJICAgICAgICAJewoJICAgICAgICAJJHRoaXMtPm9wdGlvbkNvdW50ID0gMTsKCSAgICAgICAgCX0KCSAgICAgICAgZWxzZQoJICAgICAgICAJewoJICAgICAgICAJJHRoaXMtPm9wdGlvbkNvdW50ID0gMDsKCSAgICAgICAgCX0KCX0KCglmdW5jdGlvbiBHZXRGaWVsZElucHV0KCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRqcyA9ICR0aGlzLT5HZXRPcHRpb24oJ2phdmFzY3JpcHQnLCcnKTsKCgkJLy8gd2h5IGFsbCB0aGlzPyBBc3NvY2lhdGl2ZSBhcnJheXMgYXJlIG5vdCBndWFyYW50ZWVkIHRvIHByZXNlcnZlCgkJLy8gb3JkZXIsIGV4Y2VwdCBpbiAiY2hyb25vbG9naWNhbCIgY3JlYXRpb24gb3JkZXIuCgkJJHNvcnRlZCA9YXJyYXkoKTsKCQkkc3ViamVjdHMgPSAkdGhpcy0+R2V0T3B0aW9uUmVmKCdvcHRpb25fbmFtZScpOwoJCWlmIChjb3VudCgkc3ViamVjdHMpID4gMSkgewoJCQlmb3IoJGk9MDskaTxjb3VudCgkc3ViamVjdHMpOyRpKyspIHsKCQkJCSRzb3J0ZWRbJHN1YmplY3RzWyRpXV09KCRpKzEpOwoJCQl9CgkJCWlmKCAkdGhpcy0+R2V0T3B0aW9uKCdzb3J0JykgPT0gJzEnICkgewoJCQkJa3NvcnQoJHNvcnRlZCk7CgkJCX0KCQl9CgkJZWxzZSB7CgkJCSRzb3J0ZWRbJHN1YmplY3RzXSA9ICcxJzsKCQl9CgoJCWlmICgkdGhpcy0+R2V0T3B0aW9uKCdzZWxlY3Rfb25lJywnJykgIT0gJycpIHsKCQkJJHNvcnRlZCA9IGFycmF5KCcgJy4kdGhpcy0+R2V0T3B0aW9uKCdzZWxlY3Rfb25lJywnJyk9PicnKSArICRzb3J0ZWQ7CgkJfQoJCWVsc2UgewoJCQkkc29ydGVkID0gYXJyYXkoJyAnLiRtb2QtPkxhbmcoJ3NlbGVjdF9vbmUnKT0+JycpICsgJHNvcnRlZDsKCQl9CgkJcmV0dXJuICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQsICRzb3J0ZWQsIC0xLCAkdGhpcy0+VmFsdWUsJGpzLiR0aGlzLT5HZXRDU1NJZFRhZygpKTsKCX0KCgoKICAgIGZ1bmN0aW9uIFN0YXR1c0luZm8oKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJG9wdCA9ICR0aGlzLT5HZXRPcHRpb24oJ29wdGlvbl9uYW1lJywnJyk7CgkJCgkJaWYgKGlzX2FycmF5KCRvcHQpKQoJCSAgewoJCSAgICAgICRudW0gPSBjb3VudCgkb3B0KTsKCQkgIH0KCQllbHNlaWYgKCRvcHQgIT0gJycpCgkJCXsKCQkJJG51bSA9IDE7CgkJCX0KCQllbHNlCgkJICB7CiAgICAgICAgICAkbnVtID0gMDsKICAgICAgICAgIH0KICAgICAgICAgJHJldD0gJG1vZC0+TGFuZygnb3B0aW9ucycsJG51bSk7CiAgICAgICAgcmV0dXJuICRyZXQ7Cgl9CgkKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoKCQkkdGhpcy0+Y291bnRJdGVtcygpOwoJCWlmICgkdGhpcy0+b3B0aW9uQWRkID4gMCkKCQkJewoJCQkkdGhpcy0+b3B0aW9uQ291bnQgKz0gJHRoaXMtPm9wdGlvbkFkZDsKCQkJJHRoaXMtPm9wdGlvbkFkZCA9IDA7CgkJCX0KCQkkZGVzdHMgPSAnPHRhYmxlIGNsYXNzPSJtb2R1bGVfZmJfdGFibGUiPjx0cj48dGg+Jy4kbW9kLT5MYW5nKCd0aXRsZV9vcHRpb25fbmFtZScpLic8L3RoPjx0aD4nLgoJCQkkbW9kLT5MYW5nKCd0aXRsZV9vcHRpb25fdmFsdWUnKS4nPC90aD48dGg+Jy4KCQkJJG1vZC0+TGFuZygndGl0bGVfZGVsZXRlJykuJzwvdGg+PC90cj4nOwoKCgkJZm9yICgkaT0wOyRpPCgkdGhpcy0+b3B0aW9uQ291bnQ+MT8kdGhpcy0+b3B0aW9uQ291bnQ6MSk7JGkrKykKCQkJewoJCQkkZGVzdHMgLj0gICc8dHI+PHRkPicuCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X29wdGlvbl9uYW1lW10nLCR0aGlzLT5HZXRPcHRpb25FbGVtZW50KCdvcHRpb25fbmFtZScsJGkpLDI1LDEyOCkuCiAgICAgICAgICAgIAkJJzwvdGQ+PHRkPicuCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X29wdGlvbl92YWx1ZVtdJywkdGhpcy0+R2V0T3B0aW9uRWxlbWVudCgnb3B0aW9uX3ZhbHVlJywkaSksMjUsMTI4KS4KICAgICAgICAgICAgCQknPC90ZD48dGQ+Jy4KICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dENoZWNrYm94KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfZGVsXycuJGksICRpLC0xKS4KICAgICAgICAgICAgIAkJJzwvdGQ+PC90cj4nOwoJCQl9CgkJJGRlc3RzIC49ICc8L3RhYmxlPic7CgkJJG1haW4gPSBhcnJheSgpOwoJCSRhZHYgPSBhcnJheSgpOwoJCSRtYWluW10gPSBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9zZWxlY3Rfb25lX21lc3NhZ2UnKSwKCQkJCQkJJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X3NlbGVjdF9vbmUnLAoJCQkJCQkJCQkJCSAgJHRoaXMtPkdldE9wdGlvbignc2VsZWN0X29uZScsJG1vZC0+TGFuZygnc2VsZWN0X29uZScpKSwyNSwxMjgpKTsKCQkkbWFpbltdID0gYXJyYXkoJG1vZC0+TGFuZygnc29ydF9vcHRpb25zJyksCgkJCQkJCSRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGZvcm1EZXNjcmlwdG9yLCdmYnJwX29wdF9zb3J0JywKCQkJCQkJCQkJCQkJICBhcnJheSgnWWVzJz0+MSwnTm8nPT4wKSwtMSwKCQkJCQkJCQkJCQkJICAkdGhpcy0+R2V0T3B0aW9uKCdzb3J0JywwKSkpOwoJCWFycmF5X3B1c2goJG1haW4sYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfcHVsbGRvd25fZGV0YWlscycpLCRkZXN0cykpOwoJCXJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLCdhZHYnPT4kYWR2KTsKCX0KCgoJZnVuY3Rpb24gR2V0SHVtYW5SZWFkYWJsZVZhbHVlKCRhc19zdHJpbmc9dHJ1ZSkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCWlmICgkdGhpcy0+SGFzVmFsdWUoKSkKCQkJewoJCQkkcmV0ID0gJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ29wdGlvbl92YWx1ZScsKCR0aGlzLT5WYWx1ZS0xKSk7CgkJCX0KCQllbHNlCgkJCXsKCQkJLy8kcmV0ID0gJG1vZC0+TGFuZygndW5zcGVjaWZpZWQnKTsKCQkJJHJldCA9ICR0aGlzLT5mb3JtX3B0ci0+R2V0QXR0cigndW5zcGVjaWZpZWQnLCRtb2QtPkxhbmcoJ3Vuc3BlY2lmaWVkJykpOwoJCQl9CgkJaWYgKCRhc19zdHJpbmcpCgkJCXsKCQkJcmV0dXJuICRyZXQ7CgkJCX0KCQllbHNlCgkJCXsKCQkJcmV0dXJuIGFycmF5KCRyZXQpOwoJCQl9Cgl9Cgp9Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/RadioGroupField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYlJhZGlvR3JvdXBGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIAp7CgogIHZhciAkb3B0aW9uQ291bnQ7CiAgdmFyICRvcHRpb25BZGQ7CgkKICBmdW5jdGlvbiBmYlJhZGlvR3JvdXBGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKICB7CiAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICRtb2QgPSAkZm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkdGhpcy0+VHlwZSA9ICdSYWRpb0dyb3VwRmllbGQnOwogICAgJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwogICAgJHRoaXMtPkhhc0FkZE9wID0gdHJ1ZTsKICAgICR0aGlzLT5IYXNEZWxldGVPcCA9IHRydWU7CiAgICAkdGhpcy0+Tm9uUmVxdWlyYWJsZUZpZWxkID0gZmFsc2U7CiAgICAkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoCiAgICAgICAgICAgICk7CiAgICAkdGhpcy0+b3B0aW9uQWRkID0gMDsKICAgICR0aGlzLT5oYXNNdWx0aXBsZUZvcm1Db21wb25lbnRzID0gdHJ1ZTsKCiAgfQoKICBmdW5jdGlvbiBjb3VudEJveGVzKCkKICB7CiAgICAkdG1wID0gJHRoaXMtPkdldE9wdGlvblJlZignYnV0dG9uX25hbWUnKTsKICAgIGlmIChpc19hcnJheSgkdG1wKSkKICAgICAgewoJJHRoaXMtPm9wdGlvbkNvdW50ID0gY291bnQoJHRtcCk7CiAgICAgIH0KICAgIGVsc2VpZiAoJHRtcCAhPT0gZmFsc2UpCiAgICAgIHsKCSR0aGlzLT5vcHRpb25Db3VudCA9IDE7CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJJHRoaXMtPm9wdGlvbkNvdW50ID0gMDsKICAgICAgfQogIH0KCiAgZnVuY3Rpb24gU3RhdHVzSW5mbygpCiAgewogICAgJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICR0aGlzLT5jb3VudEJveGVzKCk7CiAgICAkcmV0ID0gJG1vZC0+TGFuZygnb3B0aW9ucycsJHRoaXMtPm9wdGlvbkNvdW50KTsKICAgIGlmIChzdHJsZW4oJHRoaXMtPlZhbGlkYXRpb25UeXBlKT4wKQogICAgICB7CgkkcmV0IC49ICIsICIuYXJyYXlfc2VhcmNoKCR0aGlzLT5WYWxpZGF0aW9uVHlwZSwkdGhpcy0+VmFsaWRhdGlvblR5cGVzKTsKICAgICAgfQogICAgcmV0dXJuICRyZXQ7CiAgfQoKICBmdW5jdGlvbiBHZXRPcHRpb25BZGRCdXR0b24oKQogIHsKICAgICRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICByZXR1cm4gJG1vZC0+TGFuZygnYWRkX29wdGlvbnMnKTsKICB9CgogIGZ1bmN0aW9uIEdldE9wdGlvbkRlbGV0ZUJ1dHRvbigpCiAgewogICAgJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgIHJldHVybiAkbW9kLT5MYW5nKCdkZWxldGVfb3B0aW9ucycpOwogIH0KCiAgZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCiAgewogICAgJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICRuYW1lcyA9ICR0aGlzLT5HZXRPcHRpb25SZWYoJ2J1dHRvbl9uYW1lJyk7CiAgICAkaXNfc2V0ID0gJHRoaXMtPkdldE9wdGlvblJlZignYnV0dG9uX2lzX3NldCcpOwoJJGpzID0gJHRoaXMtPkdldE9wdGlvbignamF2YXNjcmlwdCcsJycpOwoKICAgICRmaWVsZERpc3AgPSBhcnJheSgpOwogICAgZm9yICgkaT0wOyRpPGNvdW50KCRuYW1lcyk7JGkrKykKICAgICAgewoJJGxhYmVsID0gJyc7CgkkdGhpc0JveCA9IG5ldyBzdGRDbGFzcygpOwoJaWYgKHN0cmxlbigkbmFtZXNbJGldKSA+IDApCgkgIHsKCSAgICAkdGhpc0JveC0+bmFtZSA9ICc8bGFiZWwgZm9yPSInLiR0aGlzLT5HZXRDU1NJZCgnXycuJGkpLiciPicuJG5hbWVzWyRpXS4nPC9sYWJlbD4nOwoJICAgICR0aGlzQm94LT50aXRsZSA9ICRuYW1lc1skaV07CgkgIH0KCSRjaGVja192YWwgPSBmYWxzZTsKCWlmICgkdGhpcy0+VmFsdWUgIT09IGZhbHNlKQoJICB7CgkgICAgJGNoZWNrX3ZhbCA9ICR0aGlzLT5GaW5kQXJyYXlWYWx1ZSgkaSsxKTsKCSAgfQoJZWxzZQoJICB7CgkgICAgaWYgKGlzc2V0KCRpc19zZXRbJGldKSAmJiAkaXNfc2V0WyRpXSA9PSAneScpCgkgICAgICB7CgkJJGNoZWNrX3ZhbCA9IHRydWU7CgkgICAgICB9CQkJCQoJICB9CgkkdGhpc0JveC0+aW5wdXQgPSAnPGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSInLiRpZC4nZmJycF9fJy4kdGhpcy0+SWQuJyIgdmFsdWU9IicuKCRpKzEpLiciJzsKCWlmICgkY2hlY2tfdmFsKQoJICB7CgkgICAgJHRoaXNCb3gtPmlucHV0IC49ICcgY2hlY2tlZD0iY2hlY2tlZCInOwoJICB9CgkkdGhpc0JveC0+aW5wdXQgLj0gJGpzLiR0aGlzLT5HZXRDU1NJZFRhZygnXycuJGkpLicgLz4nOwoJYXJyYXlfcHVzaCgkZmllbGREaXNwLCAkdGhpc0JveCk7CiAgICAgIH0KICAgIHJldHVybiAkZmllbGREaXNwOwogIH0KCiAgZnVuY3Rpb24gR2V0SHVtYW5SZWFkYWJsZVZhbHVlKCRhc19zdHJpbmc9dHJ1ZSkKICB7CiAgICAkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgaWYgKCR0aGlzLT5IYXNWYWx1ZSgpKQogICAgICB7CgkgICAkcmV0ID0gJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ2J1dHRvbl9jaGVja2VkJywoJHRoaXMtPlZhbHVlIC0gMSkpOwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCSAgICRyZXQgPSAkdGhpcy0+Zm9ybV9wdHItPkdldEF0dHIoJ3Vuc3BlY2lmaWVkJywkbW9kLT5MYW5nKCd1bnNwZWNpZmllZCcpKTsKICAgICAgfQoJaWYgKCRhc19zdHJpbmcpCgkJewoJCXJldHVybiAkcmV0OwoJCX0KCWVsc2UKCQl7CgkJcmV0dXJuIGFycmF5KCRyZXQpOwoJCX0KICB9CgoKICBmdW5jdGlvbiBEb09wdGlvbkFkZCgmJHBhcmFtcykKICB7CiAgICAkdGhpcy0+b3B0aW9uQWRkID0gMTsKICB9CgogIGZ1bmN0aW9uIERvT3B0aW9uRGVsZXRlKCYkcGFyYW1zKQogIHsKICAgICRkZWxjb3VudCA9IDA7CiAgICBmb3JlYWNoICgkcGFyYW1zIGFzICR0aGlzS2V5PT4kdGhpc1ZhbCkKICAgICAgewoJaWYgKHN1YnN0cigkdGhpc0tleSwwLDkpID09ICdmYnJwX2RlbF8nKQoJICB7CgkgICAgJHRoaXMtPlJlbW92ZU9wdGlvbkVsZW1lbnQoJ2J1dHRvbl9uYW1lJywgJHRoaXNWYWwgLSAkZGVsY291bnQpOwoJICAgICR0aGlzLT5SZW1vdmVPcHRpb25FbGVtZW50KCdidXR0b25fY2hlY2tlZCcsICR0aGlzVmFsIC0gJGRlbGNvdW50KTsKCSAgICAkdGhpcy0+UmVtb3ZlT3B0aW9uRWxlbWVudCgnYnV0dG9uX2lzX3NldCcsICR0aGlzVmFsIC0gJGRlbGNvdW50KTsKCSAgICAkZGVsY291bnQrKzsKCSAgfQogICAgICB9CiAgfQoKCiAgZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQogIHsKICAgICRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkeWVzTm8gPSBhcnJheSgkbW9kLT5MYW5nKCdubycpPT4nbicsJG1vZC0+TGFuZygneWVzJyk9Pid5Jyk7CgogICAgJHRoaXMtPmNvdW50Qm94ZXMoKTsKICAgIGlmICgkdGhpcy0+b3B0aW9uQWRkID4gMCkKICAgICAgewoJJHRoaXMtPm9wdGlvbkNvdW50ICs9ICR0aGlzLT5vcHRpb25BZGQ7CgkkdGhpcy0+b3B0aW9uQWRkID0gMDsKICAgICAgfQogICAgJGJveGVzID0gJzx0YWJsZSBjbGFzcz0ibW9kdWxlX2ZiX3RhYmxlIj48dHI+PHRoPicuJG1vZC0+TGFuZygndGl0bGVfcmFkaW9fbGFiZWwnKS4nPC90aD48dGg+Jy4KICAgICAgJG1vZC0+TGFuZygndGl0bGVfY2hlY2tlZF92YWx1ZScpLic8L3RoPjx0aD4nLgogICAgICAkbW9kLT5MYW5nKCd0aXRsZV9kZWZhdWx0X3NldCcpLic8L3RoPjx0aD4nLgogICAgICAkbW9kLT5MYW5nKCd0aXRsZV9kZWxldGUnKS4KICAgICAgJzwvdGg+PC90cj4nOwoKCiAgICBmb3IgKCRpPTA7JGk8KCR0aGlzLT5vcHRpb25Db3VudD4xPyR0aGlzLT5vcHRpb25Db3VudDoxKTskaSsrKQogICAgICB7CgkkYm94ZXMgLj0gJzx0cj48dGQ+Jy4KCSAgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2J1dHRvbl9uYW1lW10nLCR0aGlzLT5HZXRPcHRpb25FbGVtZW50KCdidXR0b25fbmFtZScsJGkpLDI1LDEyOCkuCgkgICc8L3RkPjx0ZD4nLgoJICAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfYnV0dG9uX2NoZWNrZWRbXScsJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ2J1dHRvbl9jaGVja2VkJywkaSksMjUsMTI4KS4KCSAgJzwvdGQ+PHRkPicuCgkgICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfYnV0dG9uX2lzX3NldFtdJywgJHllc05vLCAtMSwgJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ2J1dHRvbl9pc19zZXQnLCRpKSkuCgkgICc8L3RkPjx0ZD4nLgoJICAkbW9kLT5DcmVhdGVJbnB1dENoZWNrYm94KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfZGVsXycuJGksICRpLC0xKS4KCSAgJzwvdGQ+PC90cj4nOwogICAgICB9CiAgICAkYm94ZXMgLj0gJzwvdGFibGU+JzsKICAgICRtYWluID0gYXJyYXkoCgkJICBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9yYWRpb2dyb3VwX2RldGFpbHMnKSwkYm94ZXMpCgkJICApOwogICAgJGFkdiA9IGFycmF5KCk7CiAgICByZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7CiAgfQoKCiAgZnVuY3Rpb24gUG9zdEFkbWluU3VibWl0Q2xlYW51cCgpCiAgewogICAgJG5hbWVzID0gJHRoaXMtPkdldE9wdGlvblJlZignYnV0dG9uX25hbWUnKTsKICAgICRjaGVja2VkID0gJHRoaXMtPkdldE9wdGlvblJlZignYnV0dG9uX2NoZWNrZWQnKTsKICAgIGZvciAoJGk9MDskaTxjb3VudCgkbmFtZXMpOyRpKyspCiAgICAgIHsKCWlmICgkbmFtZXNbJGldID09ICcnICYmICRjaGVja2VkWyRpXSA9PSAnJyApCgkgIHsKCSAgICAkdGhpcy0+UmVtb3ZlT3B0aW9uRWxlbWVudCgnYnV0dG9uX25hbWUnLCAkaSk7CgkgICAgJHRoaXMtPlJlbW92ZU9wdGlvbkVsZW1lbnQoJ2J1dHRvbl9jaGVja2VkJywgJGkpOwoJICAgICR0aGlzLT5SZW1vdmVPcHRpb25FbGVtZW50KCdidXR0b25faXNfc2V0JywgJGkpOwoJICAgICRpLS07CgkgIH0KICAgICAgfQogICAgJHRoaXMtPmNvdW50Qm94ZXMoKTsKICB9Cn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/StatePickerField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLy8gRmVlZGJhY2sgRm9ybS4gMDIvMjAwNSBTakcgPGZlZWRiYWNrZm9ybV9jbXNtb2R1bGVAZm9nYm91bmQubmV0PgovLyBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCAoYykyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKLy8gVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKCmNsYXNzIGZiU3RhdGVQaWNrZXJGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCgl2YXIgJFN0YXRlczsKCQoJZnVuY3Rpb24gZmJTdGF0ZVBpY2tlckZpZWxkKCYkZm9ybV9wdHIsICYkcGFyYW1zKQoJewogICAgICAgICR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgICAgICRtb2QgPSAkZm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHRoaXMtPlR5cGUgPSAnU3RhdGVQaWNrZXJGaWVsZCc7CgkJJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwoJCSR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgKICAgICAgICAgICAgKTsKCiAgICAgICAgJHRoaXMtPlN0YXRlcyA9IGFycmF5KAogICAgICAgICJObyBEZWZhdWx0Ij0+JycsIkFsYWJhbWEiPT4iQUwiLCAiQWxhc2thIj0+IkFLIiwgIkFyaXpvbmEiPT4iQVoiLCAiQXJrYW5zYXMiPT4iQVIiLCAKICAgICAgICAiQ2FsaWZvcm5pYSI9PiJDQSIsICJDb2xvcmFkbyI9PiJDTyIsICJDb25uZWN0aWN1dCI9PiJDVCIsICJEZWxhd2FyZSI9PiJERSIsIAogICAgICAgICJGbG9yaWRhIj0+IkZMIiwgIkdlb3JnaWEiPT4iR0EiLCAiSGF3YWlpIj0+IkhJIiwgIklkYWhvIj0+IklEIiwgCiAgICAgICAgIklsbGlub2lzIj0+IklMIiwgIkluZGlhbmEiPT4iSU4iLCAiSW93YSI9PiJJQSIsIAogICAgICAgICJLYW5zYXMiPT4iS1MiLCAiS2VudHVja3kiPT4iS1kiLCAiTG91aXNpYW5hIj0+IkxBIiwgIk1haW5lIj0+Ik1FIiwKICAgICAgICAiTWFyeWxhbmQiPT4iTUQiLCAiTWFzc2FjaHVzZXR0cyI9PiJNQSIsIAogICAgICAgICJNaWNoaWdhbiI9PiJNSSIsICJNaW5uZXNvdGEiPT4iTU4iLCAiTWlzc2lzc2lwcGkiPT4iTVMiLAogICAgICAgICJNaXNzb3VyaSI9PiJNTyIsICJNb250YW5hIj0+Ik1UIiwgIk5lYnJhc2thIj0+Ik5FIiwgCiAgICAgICAgIk5ldmFkYSI9PiJOViIsICJOZXcgSGFtcHNoaXJlIj0+Ik5IIiwgIk5ldyBKZXJzZXkiPT4iTkoiLAogICAgICAgICJOZXcgTWV4aWNvIj0+Ik5NIiwgIk5ldyBZb3JrIj0+Ik5ZIiwgCiAgICAgICAgIk5vcnRoIENhcm9saW5hIj0+Ik5DIiwgIk5vcnRoIERha290YSI9PiJORCIsICJPaGlvIj0+Ik9IIiwKICAgICAgICAiT2tsYWhvbWEiPT4iT0siLCAiT3JlZ29uIj0+Ik9SIiwgCiAgICAgICAgIlBlbm5zeWx2YW5pYSI9PiJQQSIsICJSaG9kZSBJc2xhbmQiPT4iUkkiLCAiU291dGggQ2Fyb2xpbmEiPT4iU0MiLAogICAgICAgICJTb3V0aCBEYWtvdGEiPT4iU0QiLCAiVGVubmVzc2VlIj0+IlROIiwgIlRleGFzIj0+IlRYIiwgIlV0YWgiPT4iVVQiLAogICAgICAgICJWZXJtb250Ij0+IlZUIiwgIlZpcmdpbmlhIj0+IlZBIiwgIldhc2hpbmd0b24iPT4iV0EiLAogICAgICAgICJEaXN0cmljdCBvZiBDb2x1bWJpYSI9PiJEQyIsICJXZXN0IFZpcmdpbmlhIj0+IldWIiwgIldpc2NvbnNpbiI9PiJXSSIsCiAgICAgICAgIld5b21pbmciPT4iV1kiKTsKCgl9CgoKICAgIGZ1bmN0aW9uIFN0YXR1c0luZm8oKQoJewoJCXJldHVybiAnJzsKCX0KCglmdW5jdGlvbiBHZXRIdW1hblJlYWRhYmxlVmFsdWUoJGFzX3N0cmluZz10cnVlKQoJewoJCSRyZXQgPSBhcnJheV9zZWFyY2goJHRoaXMtPlZhbHVlLCR0aGlzLT5TdGF0ZXMpOwoJCWlmICgkYXNfc3RyaW5nKQoJCQl7CgkJCXJldHVybiAkcmV0OwoJCQl9CgkJZWxzZQoJCQl7CgkJCXJldHVybiBhcnJheSgkcmV0KTsKCQkJfQkJCgl9CgoKCWZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJGpzID0gJHRoaXMtPkdldE9wdGlvbignamF2YXNjcmlwdCcsJycpOwoKCQl1bnNldCgkdGhpcy0+U3RhdGVzWyRtb2QtPkxhbmcoJ25vX2RlZmF1bHQnKV0pOwoJCWlmICgkdGhpcy0+R2V0T3B0aW9uKCdzZWxlY3Rfb25lJywnJykgIT0gJycpCgkJCXsKCQkJJHRoaXMtPlN0YXRlcyA9IGFycmF5X21lcmdlKGFycmF5KCR0aGlzLT5HZXRPcHRpb24oJ3NlbGVjdF9vbmUnLCcnKT0+JycpLCR0aGlzLT5TdGF0ZXMpOwoJCQl9CgkJZWxzZQoJCQl7CgkJCSR0aGlzLT5TdGF0ZXMgPSBhcnJheV9tZXJnZShhcnJheSgkbW9kLT5MYW5nKCdzZWxlY3Rfb25lJyk9PicnKSwkdGhpcy0+U3RhdGVzKTsKCQkJfQoKCgkJaWYgKCEgJHRoaXMtPkhhc1ZhbHVlKCkgJiYgJHRoaXMtPkdldE9wdGlvbignZGVmYXVsdF9zdGF0ZScsJycpICE9ICcnKQoJCSAgewoJCSAgJHRoaXMtPlNldFZhbHVlKCR0aGlzLT5HZXRPcHRpb24oJ2RlZmF1bHRfc3RhdGUnLCcnKSk7CgkJICB9CgoJCXJldHVybiAkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ2ZicnBfXycuJHRoaXMtPklkLCAkdGhpcy0+U3RhdGVzLCAtMSwgJHRoaXMtPlZhbHVlLCAkanMuJHRoaXMtPkdldENTU0lkVGFnKCkpOwoJfQoKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCWtzb3J0KCR0aGlzLT5TdGF0ZXMpOwoKCQkkbWFpbiA9IGFycmF5KAoJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9zZWxlY3RfZGVmYXVsdF9zdGF0ZScpLAogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZGVmYXVsdF9zdGF0ZScsCiAgICAgICAgICAgIAkJJHRoaXMtPlN0YXRlcywgLTEsICR0aGlzLT5HZXRPcHRpb24oJ2RlZmF1bHRfc3RhdGUnLCcnKSkpLAoJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9zZWxlY3Rfb25lX21lc3NhZ2UnKSwKICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfc2VsZWN0X29uZScsCiAgICAgICAgICAgIAkJJHRoaXMtPkdldE9wdGlvbignc2VsZWN0X29uZScsJG1vZC0+TGFuZygnc2VsZWN0X29uZScpKSkpCgkJKTsKCQlyZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbixhcnJheSgpKTsKCX0KCgp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/StaticTextField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYlN0YXRpY1RleHRGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCglmdW5jdGlvbiBmYlN0YXRpY1RleHRGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gJ1N0YXRpY1RleHRGaWVsZCc7CgkJJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwoJCSR0aGlzLT5EaXNwbGF5SW5TdWJtaXNzaW9uID0gZmFsc2U7CgkJJHRoaXMtPk5vblJlcXVpcmFibGVGaWVsZCA9IHRydWU7CgkJJHRoaXMtPkhhc0xhYmVsID0gMDsKCQkkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoKTsKCX0KCglmdW5jdGlvbiBHZXRGaWVsZElucHV0KCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkKCXsKICAgICAgaWYgKCR0aGlzLT5HZXRPcHRpb24oJ3NtYXJ0eV9ldmFsJywnMCcpID09ICcxJykKICAgICAgICAgewogICAgICAgICAkdGhpcy0+U2V0U21hcnR5RXZhbCh0cnVlKTsKICAgICAgICAgfQoJCXJldHVybiAkdGhpcy0+R2V0T3B0aW9uKCd0ZXh0JywnJyk7Cgl9CgoJZnVuY3Rpb24gU3RhdHVzSW5mbygpCgl7CgkJIHJldHVybiAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHItPkxhbmcoJ3RleHRfbGVuZ3RoJyxzdHJsZW4oJHRoaXMtPkdldE9wdGlvbigndGV4dCcsJycpKSk7Cgl9CgoJZnVuY3Rpb24gR2V0SHVtYW5SZWFkYWJsZVZhbHVlKCRhc19zdHJpbmc9dHJ1ZSkKCXsKCQkkcmV0ID0gJ1tzdGF0aWMgdGV4dCBmaWVsZF0nOwoJCWlmICgkYXNfc3RyaW5nKQoJCQl7CgkJCXJldHVybiAkcmV0OwoJCQl9CgkJZWxzZQoJCQl7CgkJCXJldHVybiBhcnJheSgkcmV0KTsKCQkJfQkJCgl9CgkKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRtYWluID0gYXJyYXkoCgkJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV90ZXh0JyksCgkJCQkkbW9kLT5DcmVhdGVUZXh0QXJlYSgoZ2V0X3ByZWZlcmVuY2UoZ2V0X3VzZXJpZCgpLCAndXNlX3d5c2l3eWcnKT09JzEnKSwgJGZvcm1EZXNjcmlwdG9yLCAgJHRoaXMtPkdldE9wdGlvbigndGV4dCcsJycpLCAnZmJycF9vcHRfdGV4dCcsJ3BhZ2VoZWFkdGFncycpKQoJCSk7CgkJJGFkdiA9IGFycmF5KAoJCQkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfc21hcnR5X2V2YWwnKSwKCQkJCSRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfc21hcnR5X2V2YWwnLAogICAgICAgICAgICAJCScxJywkdGhpcy0+R2V0T3B0aW9uKCdzbWFydHlfZXZhbCcsJzAnKSkpCgkJKTsKCQlyZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7Cgl9Cn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/SystemLinkField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYlN5c3RlbUxpbmtGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCglmdW5jdGlvbiBmYlN5c3RlbUxpbmtGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gICdTeXN0ZW1MaW5rRmllbGQnOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+Tm9uUmVxdWlyYWJsZUZpZWxkID0gdHJ1ZTsKCQkkdGhpcy0+UmVxdWlyZWQgPSBmYWxzZTsKCQkkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25fbm9uZScpPT4nbm9uZScKICAgICAgICAgICAgKTsKICAgICAgICAkdGhpcy0+aGFzTXVsdGlwbGVGb3JtQ29tcG9uZW50cyA9IHRydWU7CiAgICAgICAgJHRoaXMtPnNvcnRhYmxlID0gZmFsc2U7Cgl9CgoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCgl7CgkJJHRoaXNMaW5rID0gbmV3IHN0ZENsYXNzKCk7CgkJZ2xvYmFsICRnQ21zOwoJCWlmICgkdGhpcy0+R2V0T3B0aW9uKCdhdXRvX2xpbmsnLCcwJykgPT0gJzEnKQoJCQl7CgkJCSRwYWdlaW5mbyA9ICRnQ21zLT52YXJpYWJsZXNbJ3BhZ2VpbmZvJ107CgkJCSR0aGlzTGluay0+aW5wdXQgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHItPkNyZWF0ZUNvbnRlbnRMaW5rKCRwYWdlaW5mby0+Y29udGVudF9pZCwgJHBhZ2VpbmZvLT5jb250ZW50X3RpdGxlKTsKCQkJJHRoaXNMaW5rLT5uYW1lID0gJHBhZ2VpbmZvLT5jb250ZW50X3RpdGxlOwoJCQkkdGhpc0xpbmstPnRpdGxlID0gJHBhZ2VpbmZvLT5jb250ZW50X3RpdGxlOwoJCQl9CgkJZWxzZQoJCQl7CgkJCSRjb250ZW50b3BzID0gJGdDbXMtPkdldENvbnRlbnRPcGVyYXRpb25zKCk7CiAgICAJCSRjb2JqID0gJGNvbnRlbnRvcHMtPkxvYWRDb250ZW50RnJvbUlkKCR0aGlzLT5HZXRPcHRpb24oJ3RhcmdldF9wYWdlJywnMCcpKTsKCQkJJHRoaXNMaW5rLT5pbnB1dCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0ci0+Q3JlYXRlQ29udGVudExpbmsoJGNvYmotPklkKCksICRjb2JqLT5OYW1lKCkpOwoJCQkkdGhpc0xpbmstPm5hbWUgPSAkY29iai0+TmFtZSgpOwoJCQkkdGhpc0xpbmstPnRpdGxlID0gJGNvYmotPk5hbWUoKTsKCQkJfQoJCXJldHVybiBhcnJheSgkdGhpc0xpbmspOwoJfQoKCWZ1bmN0aW9uIEdldEh1bWFuUmVhZGFibGVWYWx1ZSgkYXNfc3RyaW5nPXRydWUpCgl7CgkJZ2xvYmFsICRnQ21zOwoJCWlmICgkdGhpcy0+R2V0T3B0aW9uKCdhdXRvX2xpbmsnLCcwJykgPT0gJzEnKQoJCQl7CgkJCSRwYWdlaW5mbyA9ICRnQ21zLT52YXJpYWJsZXNbJ3BhZ2VpbmZvJ107CgkJCSRyZXQgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHItPkNyZWF0ZUNvbnRlbnRMaW5rKCRwYWdlaW5mby0+Y29udGVudF9pZCwgJHBhZ2VpbmZvLT5jb250ZW50X3RpdGxlKTsKCQkJfQoJCWVsc2UKCQkJewoJCQkkY29udGVudG9wcyA9ICRnQ21zLT5HZXRDb250ZW50T3BlcmF0aW9ucygpOwogICAgCQkkY29iaiA9ICRjb250ZW50b3BzLT5Mb2FkQ29udGVudEZyb21JZCgkdGhpcy0+R2V0T3B0aW9uKCd0YXJnZXRfcGFnZScsJzAnKSk7CgkJCSRyZXQgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHItPkNyZWF0ZUNvbnRlbnRMaW5rKCRjb2JqLT5JZCgpLCAkY29iai0+TmFtZSgpKTsKCQkJfQoJCWlmICgkYXNfc3RyaW5nKQoJCQl7CgkJCXJldHVybiAkcmV0OwoJCQl9CgkJZWxzZQoJCQl7CgkJCXJldHVybiBhcnJheSgkcmV0KTsKCQkJfQoJfQoKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgCWdsb2JhbCAkZ0NtczsKICAgIAkkY29udGVudG9wcyA9ICRnQ21zLT5HZXRDb250ZW50T3BlcmF0aW9ucygpOwoKCQkkbWFpbiA9IGFycmF5KAoJCSAJCSBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZScpLCRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfYXV0b19saW5rJywKICAgICAgICAgICAgCQknMScsJHRoaXMtPkdldE9wdGlvbignYXV0b19saW5rJywnMCcpKS4kbW9kLT5MYW5nKCd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZV9oZWxwJykpLAogICAgICAgICAgICAgYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfbGlua190b19zaXRlcGFnZScpLAoJCQkJIAkkY29udGVudG9wcy0+Q3JlYXRlSGllcmFyY2h5RHJvcGRvd24oJycsJHRoaXMtPkdldE9wdGlvbigndGFyZ2V0X3BhZ2UnLCcnKSwgJGZvcm1EZXNjcmlwdG9yLidmYnJwX29wdF90YXJnZXRfcGFnZScpKQoJCSk7CgkJJGFkdiA9IGFycmF5KAoJCSk7CgkJcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwoJfQoKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/TextAreaField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlndGggKGMpMjAwNiBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiAgIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYlRleHRBcmVhRmllbGQgZXh0ZW5kcyBmYkZpZWxkQmFzZSB7CgoJZnVuY3Rpb24gZmJUZXh0QXJlYUZpZWxkKCYkZm9ybV9wdHIsICYkcGFyYW1zKQoJewoJCSR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwoJCSRtb2QgPSAkZm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHRoaXMtPlR5cGUgPSAnVGV4dEFyZWFGaWVsZCc7CgkJJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwoJCSR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgKICAgICAgICAgICAgJG1vZC0+TGFuZygndmFsaWRhdGlvbl9ub25lJyk9Pidub25lJywKCQkJJG1vZC0+TGFuZygndmFsaWRhdGlvbl9sZW5ndGgnKT0+J2xlbmd0aCcKICAgICAgICAgICAgKTsKCgl9CgoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCgl7ICAgICAgICAgICAgCgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsJCgkJJHJldCA9ICRtb2QtPkNyZWF0ZVRleHRBcmVhKCgkdGhpcy0+R2V0T3B0aW9uKCd3eXNpd3lnJywnMCcpID09ICcxJz90cnVlOmZhbHNlKSwkaWQsKCR0aGlzLT5WYWx1ZT8kdGhpcy0+VmFsdWU6JHRoaXMtPkdldE9wdGlvbignZGVmYXVsdCcpKSwKCQkJCSAgICdmYnJwX18nLiR0aGlzLT5JZCwnJywkdGhpcy0+R2V0Q1NTSWQoKSwnJywnJywkdGhpcy0+R2V0T3B0aW9uKCdjb2xzJywnODAnKSwkdGhpcy0+R2V0T3B0aW9uKCdyb3dzJywnMTUnKSk7CgkJCQkgICAKCQlpZiAoJHRoaXMtPkdldE9wdGlvbignY2xlYXJfZGVmYXVsdCcsJzAnKT09JzEnKSB7CgkJCSRyZXQgLj0gJzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4nOwoJCQkkcmV0IC49ICJcbnZhciBmID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJyIuJHRoaXMtPkdldENTU0lkKCkuIicpO1xuIjsKCQkJJHJldCAuPSAiaWYgKGYpXG57XG5mLm9uZm9jdXM9ZnVuY3Rpb24oKXtcbmlmICh0aGlzLnZhbHVlPT10aGlzLmRlZmF1bHRWYWx1ZSkge3RoaXMudmFsdWU9Jyc7fVxufVxuIjsKCQkJJHJldCAuPSAiZi5vbmJsdXI9ZnVuY3Rpb24oKXtcbmlmICh0aGlzLnZhbHVlPT0nJykge3RoaXMudmFsdWU9dGhpcy5kZWZhdWx0VmFsdWU7fVxufVxuIjsKCQkJJHJldCAuPSAifVxuOyI7CgkJCSRyZXQgLj0gIjwvc2NyaXB0PlxuIjsKCQl9CgoJCXJldHVybiAkcmV0OwogICB9CglmdW5jdGlvbiBWYWxpZGF0ZSgpewoJCSR0aGlzLT52YWxpZGF0ZWQgPSB0cnVlOwoJCSR0aGlzLT52YWxpZGF0aW9uRXJyb3JUZXh0ID0gJyc7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkbGVuZ3RoID0gJHRoaXMtPkdldE9wdGlvbignbGVuZ3RoJywnJyk7CgkJaWYoaXNfbnVtZXJpYygkbGVuZ3RoKSAmJiAkbGVuZ3RoID4gMCl7CgkJCWlmKChzdHJsZW4oJHRoaXMtPlZhbHVlKS0xKSA+ICRsZW5ndGgpewoJCQkJJHRoaXMtPnZhbGlkYXRlZCA9IGZhbHNlOwoJCQkJJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQgPSAkbW9kLT5MYW5nKCdwbGVhc2VfZW50ZXJfbm9fbG9uZ2VyJywgJGxlbmd0aCk7CgkJCX0KCQkJJHRoaXMtPlZhbHVlID0gc3Vic3RyKCR0aGlzLT5WYWx1ZSwgMCwgJGxlbmd0aCsxKTsKCQl9CgkJcmV0dXJuIGFycmF5KCR0aGlzLT52YWxpZGF0ZWQsICR0aGlzLT52YWxpZGF0aW9uRXJyb3JUZXh0KTsKCX0KCglmdW5jdGlvbiBTdGF0dXNJbmZvKCkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRyZXQgPSAnJzsKCgkJaWYgKHN0cmxlbigkdGhpcy0+VmFsaWRhdGlvblR5cGUpPjApIHsKCQkKCQkJJHJldCA9IGFycmF5X3NlYXJjaCgkdGhpcy0+VmFsaWRhdGlvblR5cGUsJHRoaXMtPlZhbGlkYXRpb25UeXBlcyk7CgkJfQoJCQoJCWlmICgkdGhpcy0+R2V0T3B0aW9uKCd3eXNpd3lnJywnMCcpID09ICcxJykgewoJCQoJCQkkcmV0IC49ICcgd3lzaXd5Zyc7CgkJfSBlbHNlIHsKCQkKCQkJJHJldCAuPSAnIG5vbi13eXNpd3lnJzsKCQl9CgkJCgkJJHJldCAuPSAgJywgJy4kbW9kLT5MYW5nKCdyb3dzJywkdGhpcy0+R2V0T3B0aW9uKCdyb3dzJywnMTUnKSk7CgkJJHJldCAuPSAgJywgJy4kbW9kLT5MYW5nKCdjb2xzJywkdGhpcy0+R2V0T3B0aW9uKCdjb2xzJywnODAnKSk7CgkJCgkJcmV0dXJuICRyZXQ7Cgl9CgoKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCSAgICRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkgICAkbWFpbiA9IGFycmF5KAogICAgICAgICAJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfdXNlX3d5c2l3eWcnKSwkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF93eXNpd3lnJywnMCcpLgoJCQkJCQkkbW9kLT5DcmVhdGVJbnB1dENoZWNrYm94KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X3d5c2l3eWcnLCcxJywkdGhpcy0+R2V0T3B0aW9uKCd3eXNpd3lnJywnMCcpKSksCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3RleHRhcmVhX3Jvd3MnKSwkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfcm93cycsJHRoaXMtPkdldE9wdGlvbigncm93cycsJzE1JyksNSw1KSksCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3RleHRhcmVhX2NvbHMnKSwkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfY29scycsJHRoaXMtPkdldE9wdGlvbignY29scycsJzgwJyksNSw1KSksCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3RleHRhcmVhX2xlbmd0aCcpLCRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9sZW5ndGgnLCR0aGlzLT5HZXRPcHRpb24oJ2xlbmd0aCcsJycpLCA1LCA1KSkKICAgICAgICAgICAgKTsKCSAgICRhZHYgPSBhcnJheShhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9kZWZhdWx0X3ZhbHVlJyksCgkJCQkgICRtb2QtPkNyZWF0ZVRleHRBcmVhKGZhbHNlLAoJCQkJCQkJCSAgICRmb3JtRGVzY3JpcHRvciwgJHRoaXMtPkdldE9wdGlvbignZGVmYXVsdCcpLAoJCQkJCQkJCSAgICdmYnJwX29wdF9kZWZhdWx0JwoJCQkJICAgICAgICAgICAgICAgKSksICAgICAgICApOwoJCQoJICAgJGFkdiA9IGFycmF5KAoJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9kZWZhdWx0X3ZhbHVlJyksJG1vZC0+Q3JlYXRlVGV4dEFyZWEoZmFsc2UsJGZvcm1EZXNjcmlwdG9yLCAkdGhpcy0+R2V0T3B0aW9uKCdkZWZhdWx0JyksJ2ZicnBfb3B0X2RlZmF1bHQnKSksCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2NsZWFyX2RlZmF1bHQnKSwkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkZm9ybURlc2NyaXB0b3IsJ2ZicnBfb3B0X2NsZWFyX2RlZmF1bHQnLCcwJykuCgkJCQkJCSRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfY2xlYXJfZGVmYXVsdCcsJzEnLCR0aGlzLT5HZXRPcHRpb24oJ2NsZWFyX2RlZmF1bHQnLCcwJykpLic8YnIgLz4nLiRtb2QtPkxhbmcoJ3RpdGxlX2NsZWFyX2RlZmF1bHRfaGVscCcpKQoJCSk7CgogICAgICAgIHJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLCdhZHYnPT4kYWR2KTsKCX0KCglmdW5jdGlvbiBQb3N0UG9wdWxhdGVBZG1pbkZvcm0oJiRtYWluQXJyYXksICYkYWR2QXJyYXkpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkKCQkvLyBoaWRlICJqYXZhc2NyaXB0IgoJCSR0aGlzLT5SZW1vdmVBZG1pbkZpZWxkKCRhZHZBcnJheSwgJG1vZC0+TGFuZygndGl0bGVfZmllbGRfamF2YXNjcmlwdCcpKTsKCX0KCgp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/TextField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYlRleHRGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCglmdW5jdGlvbiBmYlRleHRGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gJ1RleHRGaWVsZCc7CgkJJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwoJCSR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgKICAgICAgICAgICAgJG1vZC0+TGFuZygndmFsaWRhdGlvbl9ub25lJyk9Pidub25lJywKICAgICAgICAgICAgJG1vZC0+TGFuZygndmFsaWRhdGlvbl9udW1lcmljJyk9PidudW1lcmljJywKICAgICAgICAgICAgJG1vZC0+TGFuZygndmFsaWRhdGlvbl9pbnRlZ2VyJyk9PidpbnRlZ2VyJywKICAgICAgICAgICAgJG1vZC0+TGFuZygndmFsaWRhdGlvbl91c3Bob25lJyk9Pid1c3Bob25lJywKICAgICAgICAgICAgJG1vZC0+TGFuZygndmFsaWRhdGlvbl9lbWFpbF9hZGRyZXNzJyk9PidlbWFpbCcsCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25fcmVnZXhfbWF0Y2gnKT0+J3JlZ2V4X21hdGNoJywKICAgICAgICAgICAgJG1vZC0+TGFuZygndmFsaWRhdGlvbl9yZWdleF9ub21hdGNoJyk9PidyZWdleF9ub21hdGNoJwogICAgICAgICAgICApOwoKCX0KCglmdW5jdGlvbiBHZXRGaWVsZElucHV0KCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRqcyA9ICR0aGlzLT5HZXRPcHRpb24oJ2phdmFzY3JpcHQnLCcnKTsKCQkkcm8gPSAnJzsKCQkKCQlpZiAoJHRoaXMtPkdldE9wdGlvbigncmVhZG9ubHknLCcwJykgPT0gJzEnKSB7CgkJCSRybyA9ICcgcmVhZG9ubHk9InJlYWRvbmx5Iic7CiAgICAgICAgfQoJCgkJaWYgKCR0aGlzLT5HZXRPcHRpb24oJ2h0bWw1JywnMCcpID09ICcxJykKCQkJewoJCQlyZXR1cm4gJG1vZC0+ZmJDcmVhdGVJbnB1dFRleHQoJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQsJHRoaXMtPlZhbHVlLCR0aGlzLT5HZXRPcHRpb24oJ2xlbmd0aCcpPDI1PyR0aGlzLT5HZXRPcHRpb24oJ2xlbmd0aCcpOjI1LAoJCQkJJHRoaXMtPkdldE9wdGlvbignbGVuZ3RoJyksCgkJCQkJJyBwbGFjZWhvbGRlcj0iJy4kdGhpcy0+R2V0T3B0aW9uKCdkZWZhdWx0JykuJyInLiRqcy4kcm8uJHRoaXMtPkdldENTU0lkVGFnKCkpOwoJCQl9CgkJZWxzZQoJCQl7CgkJCXJldHVybiAkbW9kLT5mYkNyZWF0ZUlucHV0VGV4dCgkaWQsICdmYnJwX18nLiR0aGlzLT5JZCwoJHRoaXMtPlZhbHVlPyR0aGlzLT5WYWx1ZTokdGhpcy0+R2V0T3B0aW9uKCdkZWZhdWx0JykpLCR0aGlzLT5HZXRPcHRpb24oJ2xlbmd0aCcpPDI1PyR0aGlzLT5HZXRPcHRpb24oJ2xlbmd0aCcpOjI1LCAkdGhpcy0+R2V0T3B0aW9uKCdsZW5ndGgnKSwKCQkJCSgkdGhpcy0+R2V0T3B0aW9uKCdjbGVhcl9kZWZhdWx0JywnMCcpPT0xPygnIG9uZm9jdXM9ImlmKHRoaXMudmFsdWU9PXRoaXMuZGVmYXVsdFZhbHVlKSB0aGlzLnZhbHVlPVwnXCc7IiBvbmJsdXI9ImlmKHRoaXMudmFsdWU9PVwnXCcpIHRoaXMudmFsdWU9dGhpcy5kZWZhdWx0VmFsdWU7IicpOicgJykuJGpzLiRyby4kdGhpcy0+R2V0Q1NTSWRUYWcoKSk7CgkJCX0KCX0KCglmdW5jdGlvbiBTdGF0dXNJbmZvKCkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRyZXQgPSAkbW9kLT5MYW5nKCdhYmJyZXZpYXRpb25fbGVuZ3RoJywkdGhpcy0+R2V0T3B0aW9uKCdsZW5ndGgnLCc4MCcpKTsKCQkKCQlpZiAoc3RybGVuKCR0aGlzLT5WYWxpZGF0aW9uVHlwZSk+MCkgewoJCQoJCSAgCSRyZXQgLj0gIiwgIi5hcnJheV9zZWFyY2goJHRoaXMtPlZhbGlkYXRpb25UeXBlLCR0aGlzLT5WYWxpZGF0aW9uVHlwZXMpOwoJCX0KCQkKCQlpZiAoJHRoaXMtPkdldE9wdGlvbigncmVhZG9ubHknLCcwJykgPT0gJzEnKSB7CiAgICAgICAgCgkJCSRyZXQgLj0gIiwgIi4kbW9kLT5MYW5nKCd0aXRsZV9yZWFkX29ubHknKTsKICAgICAgICB9CgkJIAoJCXJldHVybiAkcmV0OwoJfQoKCglmdW5jdGlvbiBQcmVQb3B1bGF0ZUFkbWluRm9ybSgkZm9ybURlc2NyaXB0b3IpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkKCQkkbWFpbiA9IGFycmF5KAoJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9tYXhpbXVtX2xlbmd0aCcpLCRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9sZW5ndGgnLCR0aGlzLT5HZXRPcHRpb24oJ2xlbmd0aCcsJzgwJyksMjUsMjUpKSwKCQkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfcmVhZF9vbmx5JyksJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfcmVhZG9ubHknLCcwJykuCgkJCQkJCSRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfcmVhZG9ubHknLCcxJywkdGhpcy0+R2V0T3B0aW9uKCdyZWFkb25seScsJzAnKSkpCgkJKTsKCgkJJGFkdiA9IGFycmF5KAoJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9yZWdleCcpLCRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9yZWdleCcsJHRoaXMtPkdldE9wdGlvbigncmVnZXgnKSwyNSwxMDI0KS4nPGJyIC8+Jy4kbW9kLT5MYW5nKCd0aXRsZV9yZWdleF9oZWxwJykpLAoJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9kZWZhdWx0X3ZhbHVlJyksJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2RlZmF1bHQnLCR0aGlzLT5HZXRPcHRpb24oJ2RlZmF1bHQnKSwyNSwxMDI0KSksCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2h0bWw1JyksJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGZvcm1EZXNjcmlwdG9yLCdmYnJwX29wdF9odG1sNScsJzAnKS4KCQkJCQkJJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9odG1sNScsJzEnLCR0aGlzLT5HZXRPcHRpb24oJ2h0bWw1JywnMCcpKSksCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2NsZWFyX2RlZmF1bHQnKSwkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkZm9ybURlc2NyaXB0b3IsJ2ZicnBfb3B0X2NsZWFyX2RlZmF1bHQnLCcwJykuCgkJCQkJCSRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfY2xlYXJfZGVmYXVsdCcsJzEnLCR0aGlzLT5HZXRPcHRpb24oJ2NsZWFyX2RlZmF1bHQnLCcwJykpLic8YnIgLz4nLiRtb2QtPkxhbmcoJ3RpdGxlX2NsZWFyX2RlZmF1bHRfaGVscCcpKQkKCQkpOwoJCQoJCXJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLCdhZHYnPT4kYWR2KTsKCX0KCgoJZnVuY3Rpb24gVmFsaWRhdGUoKQoJewoJCSR0aGlzLT52YWxpZGF0ZWQgPSB0cnVlOwoJCSR0aGlzLT52YWxpZGF0aW9uRXJyb3JUZXh0ID0gJyc7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQlzd2l0Y2ggKCR0aGlzLT5WYWxpZGF0aW9uVHlwZSkKCQkgIHsKCQkgIAkgICBjYXNlICdub25lJzoKCQkgIAkgICAgICAgYnJlYWs7CgkJICAJICAgY2FzZSAnbnVtZXJpYyc6CgkJCQkgIGlmICgkdGhpcy0+VmFsdWUgIT09IGZhbHNlKSAkdGhpcy0+VmFsdWUgPSB0cmltKCR0aGlzLT5WYWx1ZSk7CiAgICAgICAgICAgICAgICAgIGlmICgkdGhpcy0+VmFsdWUgIT09IGZhbHNlICYmCiAgICAgICAgICAgICAgICAgICAgICAhIHByZWdfbWF0Y2goIi9eKFtcZFwuXCxdKSskL2kiLCAkdGhpcy0+VmFsdWUpKQogICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnZhbGlkYXRlZCA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQgPSAkbW9kLT5MYW5nKCdwbGVhc2VfZW50ZXJfYV9udW1iZXInLCR0aGlzLT5OYW1lKTsKICAgICAgICAgICAgICAgICAgICAgIH0KCQkgIAkgICAgICAgYnJlYWs7CgkJICAJICAgY2FzZSAnaW50ZWdlcic6CgkJCQkgIGlmICgkdGhpcy0+VmFsdWUgIT09IGZhbHNlKSAkdGhpcy0+VmFsdWUgPSB0cmltKCR0aGlzLT5WYWx1ZSk7CiAgICAgICAgICAgICAgICAgIGlmICgkdGhpcy0+VmFsdWUgIT09IGZhbHNlICYmCiAgICAgICAgICAgICAgICAgIAkhIHByZWdfbWF0Y2goIi9eKFtcZF0pKyQvaSIsICR0aGlzLT5WYWx1ZSkgfHwKICAgICAgICAgICAgICAgICAgICAgIGludHZhbCgkdGhpcy0+VmFsdWUpICE9ICR0aGlzLT5WYWx1ZSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnZhbGlkYXRlZCA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgICR0aGlzLT52YWxpZGF0aW9uRXJyb3JUZXh0ID0gJG1vZC0+TGFuZygncGxlYXNlX2VudGVyX2FuX2ludGVnZXInLCR0aGlzLT5OYW1lKTsKICAgICAgICAgICAgICAgICAgICB9CgkJICAJICAgICAgIGJyZWFrOwoJCSAgCSAgIGNhc2UgJ2VtYWlsJzoKCQkJCSAgaWYgKCR0aGlzLT5WYWx1ZSAhPT0gZmFsc2UpICR0aGlzLT5WYWx1ZSA9IHRyaW0oJHRoaXMtPlZhbHVlKTsKICAgICAgICAgICAgICAgICAgaWYgKCR0aGlzLT5WYWx1ZSAhPT0gZmFsc2UgJiYKICAgICAgICAgICAgICAgICAgICAgICEgcHJlZ19tYXRjaCgoJG1vZC0+R2V0UHJlZmVyZW5jZSgncmVsYXhlZF9lbWFpbF9yZWdleCcsJzAnKT09MD8kbW9kLT5lbWFpbF9yZWdleDokbW9kLT5lbWFpbF9yZWdleF9yZWxheGVkKSwgJHRoaXMtPlZhbHVlKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnZhbGlkYXRlZCA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgICR0aGlzLT52YWxpZGF0aW9uRXJyb3JUZXh0ID0gJG1vZC0+TGFuZygncGxlYXNlX2VudGVyX2FuX2VtYWlsJywkdGhpcy0+TmFtZSk7CiAgICAgICAgICAgICAgICAgICAgfQoJCSAgCSAgICAgICBicmVhazsKCQkgIAkgICBjYXNlICd1c3Bob25lJzoKCQkJCSAgaWYgKCR0aGlzLT5WYWx1ZSAhPT0gZmFsc2UpICR0aGlzLT5WYWx1ZSA9IHRyaW0oJHRoaXMtPlZhbHVlKTsKICAgICAgICAgICAgICAgICAgaWYgKCR0aGlzLT5WYWx1ZSAhPT0gZmFsc2UgJiYKICAgICAgICAgICAgICAgICAgICAgICEgcHJlZ19tYXRjaCgnL14oWzAtOV1bXHNcLi1dPyk/KFwoP1swLTldezN9XCk/fFswLTldezN9KVtcc1wuLV0/KFswLTldezN9W1xzXC4tXT9bMC05XXs0fXxbYS16QS1aMC05XXs3fSkoXHM/KHh8ZXh0fGV4dC4pXHM/W2EtekEtWjAtOV0rKT8kLycsCiAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPlZhbHVlKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnZhbGlkYXRlZCA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgICR0aGlzLT52YWxpZGF0aW9uRXJyb3JUZXh0ID0gJG1vZC0+TGFuZygncGxlYXNlX2VudGVyX2FfcGhvbmUnLCR0aGlzLT5OYW1lKTsKICAgICAgICAgICAgICAgICAgICB9CgkJICAJICAgICAgIGJyZWFrOwoJCSAgCSAgIGNhc2UgJ3JlZ2V4X21hdGNoJzoKICAgICAgICAgICAgICAgICAgaWYgKCR0aGlzLT5WYWx1ZSAhPT0gZmFsc2UgJiYKICAgICAgICAgICAgICAgICAgICAgICEgcHJlZ19tYXRjaCgkdGhpcy0+R2V0T3B0aW9uKCdyZWdleCcsJy8uKi8nKSwgJHRoaXMtPlZhbHVlKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnZhbGlkYXRlZCA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgICR0aGlzLT52YWxpZGF0aW9uRXJyb3JUZXh0ID0gJG1vZC0+TGFuZygncGxlYXNlX2VudGVyX3ZhbGlkJywkdGhpcy0+TmFtZSk7CiAgICAgICAgICAgICAgICAgICAgfQoJCSAgCSAgIAkgICBicmVhazsKCQkgIAkgICBjYXNlICdyZWdleF9ub21hdGNoJzoKICAgICAgICAgICAgICAgICAgaWYgKCR0aGlzLT5WYWx1ZSAhPT0gZmFsc2UgJiYKICAgICAgICAgICAgICAgICAgICAgICBwcmVnX21hdGNoKCR0aGlzLT5HZXRPcHRpb24oJ3JlZ2V4JywnLy4qLycpLCAkdGhpcy0+VmFsdWUpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+dmFsaWRhdGVkID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQgPSAkbW9kLT5MYW5nKCdwbGVhc2VfZW50ZXJfdmFsaWQnLCR0aGlzLT5OYW1lKTsKICAgICAgICAgICAgICAgICAgICB9CgkJICAJICAgCSAgIGJyZWFrOwoJCSAgfQoJCSAgCgkJaWYgKCR0aGlzLT5HZXRPcHRpb24oJ2xlbmd0aCcsMCkgPiAwICYmIHN0cmxlbigkdGhpcy0+VmFsdWUpID4gJHRoaXMtPkdldE9wdGlvbignbGVuZ3RoJywwKSkKCQkJewoJCQkkdGhpcy0+dmFsaWRhdGVkID0gZmFsc2U7CgkJCSR0aGlzLT52YWxpZGF0aW9uRXJyb3JUZXh0ID0gJG1vZC0+TGFuZygncGxlYXNlX2VudGVyX25vX2xvbmdlcicsJHRoaXMtPkdldE9wdGlvbignbGVuZ3RoJywwKSk7CgkJCX0KCQkJCgkJcmV0dXJuIGFycmF5KCR0aGlzLT52YWxpZGF0ZWQsICR0aGlzLT52YWxpZGF0aW9uRXJyb3JUZXh0KTsKCX0KfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/TextFieldExpandable.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYlRleHRGaWVsZEV4cGFuZGFibGUgZXh0ZW5kcyBmYkZpZWxkQmFzZSB7CgoJZnVuY3Rpb24gZmJUZXh0RmllbGRFeHBhbmRhYmxlKCYkZm9ybV9wdHIsICYkcGFyYW1zKQoJewogICAgICAgICR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgICAgICRtb2QgPSAkZm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHRoaXMtPlR5cGUgPSAnVGV4dEZpZWxkRXhwYW5kYWJsZSc7CgkJJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwoJCSR0aGlzLT5IYXNVc2VyQWRkT3AgPSB0cnVlOwoJCSR0aGlzLT5IYXNVc2VyRGVsZXRlT3AgPSB0cnVlOwoJCSR0aGlzLT5Ob25SZXF1aXJhYmxlRmllbGQgPSBmYWxzZTsKCQkkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25fbm9uZScpPT4nbm9uZScsCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25fbnVtZXJpYycpPT4nbnVtZXJpYycsCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25faW50ZWdlcicpPT4naW50ZWdlcicsCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25fZW1haWxfYWRkcmVzcycpPT4nZW1haWwnLAogICAgICAgICAgICAkbW9kLT5MYW5nKCd2YWxpZGF0aW9uX3JlZ2V4X21hdGNoJyk9PidyZWdleF9tYXRjaCcsCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25fcmVnZXhfbm9tYXRjaCcpPT4ncmVnZXhfbm9tYXRjaCcKICAgICAgICAgICAgKTsKCQkkdGhpcy0+aGFzTXVsdGlwbGVGb3JtQ29tcG9uZW50cyA9IHRydWU7CgoJfQoKCWZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJGpzID0gJHRoaXMtPkdldE9wdGlvbignamF2YXNjcmlwdCcsJycpOwoJCSRzaWJsaW5nX2lkID0gJHRoaXMtPkdldE9wdGlvbignc2libGluZ3MnLCcnKTsKCQkkaGlkZWJ1dHRvbnMgPSAkdGhpcy0+R2V0T3B0aW9uKCdoaWRlYnV0dG9ucycsJycpOwoKCQlpZiAoISBpc19hcnJheSgkdGhpcy0+VmFsdWUpKSB7CgoJCQkkdmFscyA9IDE7CgkgICAgfSBlbHNlIHsKCgkJCSR2YWxzID0gY291bnQoJHRoaXMtPlZhbHVlKTsKCSAgICB9CgkJCgkJZm9yZWFjaCAoJHBhcmFtcyBhcyAkcEtleT0+JHBWYWwpIHsKCQkKCQkJaWYgKHN1YnN0cigkcEtleSwwLDkpID09ICdmYnJwX0ZlWF8nKSB7CgkJCQkKCQkJCSRwdHMgPSBleHBsb2RlKCdfJywkcEtleSk7CgkJCQlpZiAoJHB0c1syXSA9PSAkdGhpcy0+SWQgfHwgJHB0c1syXSA9PSAkc2libGluZ19pZCkgewoJCQkJCQoJCQkJCS8vIGFkZCByb3cKCQkJCQkkdGhpcy0+VmFsdWVbJHZhbHNdPScnOwoJCQkJCSR2YWxzKys7CgkJCQl9CiAgICAgICAgICAgIH0KCQkJCgkJCWVsc2UgaWYgKHN1YnN0cigkcEtleSwwLDkpID09ICdmYnJwX0ZlRF8nKSB7CgkJCQkKCQkJCSRwdHMgPSBleHBsb2RlKCdfJywkcEtleSk7CgkJCQlpZiAoJHB0c1syXSA9PSAkdGhpcy0+SWQgfHwgJHB0c1syXSA9PSAkc2libGluZ19pZCkgewoJCQkJCgkJCQkJLy8gZGVsZXRlIHJvdwoJCQkJCWlmIChpc3NldCgkdGhpcy0+VmFsdWVbJHB0c1syXV0pKSB7CgkJCQkJCgkJCQkJCWFycmF5X3NwbGljZSgkdGhpcy0+VmFsdWUsICRwdHNbMl0sIDEpOwoJCQkJCX0KCQkJCQkkdmFscy0tOwoJCQkJfQogICAgICAgICAgICB9CiAgICAgICAgfQoKCQkvLyBJbnB1dCBmaWVsZHMKCQkkcmV0ID0gYXJyYXkoKTsKCQlmb3IgKCRpPTA7JGk8JHZhbHM7JGkrKykgewoJCQoJCQkkdGhpc1JvdyA9IG5ldyBzdGRDbGFzcygpOwoKCQkJLy8kdGhpc1Jvdy0+bmFtZSA9ICcnOwoJCQkvLyR0aGlzUm93LT50aXRsZSA9ICcnOwoJCQkkdGhpc1Jvdy0+aW5wdXQgPSAkbW9kLT5mYkNyZWF0ZUlucHV0VGV4dCgkaWQsICdmYnJwX18nLiR0aGlzLT5JZC4nW10nLCR0aGlzLT5WYWx1ZVskaV0sJHRoaXMtPkdldE9wdGlvbignbGVuZ3RoJyk8MjU/JHRoaXMtPkdldE9wdGlvbignbGVuZ3RoJyk6MjUsCgkJCQkJCQkkdGhpcy0+R2V0T3B0aW9uKCdsZW5ndGgnKSwkanMuJHRoaXMtPkdldENTU0lkVGFnKCdfJy4kaSkpOwoJCQkKCQkJaWYoISRoaWRlYnV0dG9ucykgJHRoaXNSb3ctPm9wID0gJG1vZC0+ZmJDcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdmYnJwX0ZlRF8nLiR0aGlzLT5JZC4nXycuJGksICR0aGlzLT5HZXRPcHRpb24oJ2RlbF9idXR0b24nLCdYJyksICR0aGlzLT5HZXRDU1NJZFRhZygnX2RlbF8nLiRpKS4oJHZhbHM9PTE/JyBkaXNhYmxlZD0iZGlzYWJsZWQiJzonJykpOwoKCQkJCgkJCWFycmF5X3B1c2goJHJldCwgJHRoaXNSb3cpOwogICAgICAgIH0KCQkKCQkvLyBBZGQgYnV0dG9uCgkJJHRoaXNSb3cgPSBuZXcgc3RkQ2xhc3MoKTsKCQkvLyR0aGlzUm93LT5uYW1lID0gJyc7CgkJLy8kdGhpc1Jvdy0+dGl0bGUgPSAnJzsKCQkvLyR0aGlzUm93LT5pbnB1dCA9ICcnOwoJCWlmKCEkaGlkZWJ1dHRvbnMpICR0aGlzUm93LT5vcCA9ICRtb2QtPmZiQ3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnZmJycF9GZVhfJy4kdGhpcy0+SWQuJ18nLiRpLCAkdGhpcy0+R2V0T3B0aW9uKCdhZGRfYnV0dG9uJywnKycpLCAkdGhpcy0+R2V0Q1NTSWRUYWcoJ19hZGRfJy4kaSkpOwoJCQoJCWFycmF5X3B1c2goJHJldCwgJHRoaXNSb3cpOwoJCQoJCQoJCXJldHVybiAkcmV0OwoJfQoKCWZ1bmN0aW9uIFN0YXR1c0luZm8oKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHJldCA9ICRtb2QtPkxhbmcoJ2FiYnJldmlhdGlvbl9sZW5ndGgnLCR0aGlzLT5HZXRPcHRpb24oJ2xlbmd0aCcsJzgwJykpOwoJCWlmIChzdHJsZW4oJHRoaXMtPlZhbGlkYXRpb25UeXBlKT4wKSB7CgkJCgkJCSRyZXQgLj0gIiwgIi5hcnJheV9zZWFyY2goJHRoaXMtPlZhbGlkYXRpb25UeXBlLCR0aGlzLT5WYWxpZGF0aW9uVHlwZXMpOwoJCX0KCQkKCQlyZXR1cm4gJHJldDsKCX0KCglmdW5jdGlvbiBHZXRIdW1hblJlYWRhYmxlVmFsdWUoJGFzX3N0cmluZyA9IHRydWUpCgl7CgkJJGZvcm0gPSAkdGhpcy0+Zm9ybV9wdHI7CgkJaWYgKCEgaXNfYXJyYXkoJHRoaXMtPlZhbHVlKSkgewoJCQoJCQkkdGhpcy0+VmFsdWUgPSBhcnJheSgkdGhpcy0+VmFsdWUpOwoJICAgIH0KCQkKCQlpZiAoJGFzX3N0cmluZykgewoJCQoJCQlyZXR1cm4gam9pbigkZm9ybS0+R2V0QXR0cignbGlzdF9kZWxpbWl0ZXInLCcsJyksJHRoaXMtPlZhbHVlKTsKCQl9IGVsc2UgewoJCQoJCQlyZXR1cm4gYXJyYXkoJHJldCk7CgkJfQoJfQoKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCQoJCSRtYWluID0gYXJyYXkoCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX21heGltdW1fbGVuZ3RoJyksJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwnZmJycF9vcHRfbGVuZ3RoJywkdGhpcy0+R2V0T3B0aW9uKCdsZW5ndGgnLCc4MCcpLDI1LDI1KSksCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2FkZF9idXR0b25fdGV4dCcpLCRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsJ2ZicnBfb3B0X2FkZF9idXR0b24nLCR0aGlzLT5HZXRPcHRpb24oJ2FkZF9idXR0b24nLCcrJyksMTUsMjUpKSwKCQkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZGVsX2J1dHRvbl90ZXh0JyksJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwnZmJycF9vcHRfZGVsX2J1dHRvbicsJHRoaXMtPkdldE9wdGlvbignZGVsX2J1dHRvbicsJ1gnKSwxNSwyNSkpCgkJKTsKCQkKCQkkYWR2ID0gYXJyYXkoCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX3JlZ2V4JyksJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X3JlZ2V4JywkdGhpcy0+R2V0T3B0aW9uKCdyZWdleCcpLDI1LDI1NSkuJzxiciAvPicuJG1vZC0+TGFuZygndGl0bGVfcmVnZXhfaGVscCcpKSwKCQkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZmllbGRfc2libGluZ3MnKSwkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X3NpYmxpbmdzJywkdGhpcy0+R2V0RmllbGRTaWJsaW5ncygpLC0xLCR0aGlzLT5HZXRPcHRpb24oJ3NpYmxpbmdzJywnJykpLic8YnIgLz4nLiRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX3NpYmxpbmdzX2hlbHAnKSksCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX2hpZGVidXR0b25zJyksJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGZvcm1EZXNjcmlwdG9yLCdmYnJwX29wdF9oaWRlYnV0dG9ucycsMCkuCgkJCQkJCSRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfaGlkZWJ1dHRvbnMnLDEsJHRoaXMtPkdldE9wdGlvbignaGlkZWJ1dHRvbnMnLDApKS4kbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9oaWRlYnV0dG9uc19oZWxwJykpCQkJCQoJCSk7CgkJCgkJcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwoJfQoKCWZ1bmN0aW9uIExhYmVsU3ViQ29tcG9uZW50cygpCgl7CgkJcmV0dXJuIGZhbHNlOwoJfQkKCglmdW5jdGlvbiBWYWxpZGF0ZSgpCgl7CgkJJHRoaXMtPnZhbGlkYXRlZCA9IHRydWU7CgkJJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQgPSAnJzsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCWlmICghIGlzX2FycmF5KCR0aGlzLT5WYWx1ZSkpCgkJICAgIHsKCQkgICAgJHRoaXMtPlZhbHVlID0gYXJyYXkoJHRoaXMtPlZhbHVlKTsKCQkgICAgfQoJCWZvcmVhY2ggKCR0aGlzLT5WYWx1ZSBhcyAkdGhpc1ZhbCkKCQkgICAgewoJCSAgICBzd2l0Y2ggKCR0aGlzLT5WYWxpZGF0aW9uVHlwZSkKCQkgICAgewoJCSAgCSAgIGNhc2UgJ25vbmUnOgoJCSAgCSAgICAgICBicmVhazsKCQkgIAkgICBjYXNlICdudW1lcmljJzoKICAgICAgICAgICAgICAgICAgaWYgKCR0aGlzVmFsICE9PSBmYWxzZSAmJgogICAgICAgICAgICAgICAgICAgICAgISBwcmVnX21hdGNoKCIvXihbXGRcLlwsXSkrJC9pIiwgJHRoaXNWYWwpKQogICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnZhbGlkYXRlZCA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQgPSAkbW9kLT5MYW5nKCdwbGVhc2VfZW50ZXJfYV9udW1iZXInLCR0aGlzLT5OYW1lKTsKICAgICAgICAgICAgICAgICAgICAgIH0KCQkgIAkgICAgICAgYnJlYWs7CgkJICAJICAgY2FzZSAnaW50ZWdlcic6CiAgICAgICAgICAgICAgICAgIGlmICgkdGhpc1ZhbCAhPT0gZmFsc2UgJiYKICAgICAgICAgICAgICAgICAgCSEgcHJlZ19tYXRjaCgiL14oW1xkXSkrJC9pIiwgJHRoaXNWYWwpIHx8CiAgICAgICAgICAgICAgICAgICAgICBpbnR2YWwoJHRoaXNWYWwpICE9ICR0aGlzVmFsKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+dmFsaWRhdGVkID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQgPSAkbW9kLT5MYW5nKCdwbGVhc2VfZW50ZXJfYW5faW50ZWdlcicsJHRoaXMtPk5hbWUpOwogICAgICAgICAgICAgICAgICAgIH0KCQkgIAkgICAgICAgYnJlYWs7CgkJICAJICAgY2FzZSAnZW1haWwnOgogICAgICAgICAgICAgICAgICBpZiAoJHRoaXNWYWwgIT09IGZhbHNlICYmCiAgICAgICAgICAgICAgICAgICAgICAhIHByZWdfbWF0Y2goKCRtb2QtPkdldFByZWZlcmVuY2UoJ3JlbGF4ZWRfZW1haWxfcmVnZXgnLCcwJyk9PTA/JG1vZC0+ZW1haWxfcmVnZXg6JG1vZC0+ZW1haWxfcmVnZXhfcmVsYXhlZCksICR0aGlzVmFsKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnZhbGlkYXRlZCA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgICR0aGlzLT52YWxpZGF0aW9uRXJyb3JUZXh0ID0gJG1vZC0+TGFuZygncGxlYXNlX2VudGVyX2FuX2VtYWlsJywkdGhpcy0+TmFtZSk7CiAgICAgICAgICAgICAgICAgICAgfQoJCSAgCSAgICAgICBicmVhazsKCQkgIAkgICBjYXNlICdyZWdleF9tYXRjaCc6CiAgICAgICAgICAgICAgICAgIGlmICgkdGhpc1ZhbCAhPT0gZmFsc2UgJiYKICAgICAgICAgICAgICAgICAgICAgICEgcHJlZ19tYXRjaCgkdGhpcy0+R2V0T3B0aW9uKCdyZWdleCcsJy8uKi8nKSwgJHRoaXNWYWwpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+dmFsaWRhdGVkID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQgPSAkbW9kLT5MYW5nKCdwbGVhc2VfZW50ZXJfdmFsaWQnLCR0aGlzLT5OYW1lKTsKICAgICAgICAgICAgICAgICAgICB9CgkJICAJICAgCSAgIGJyZWFrOwoJCSAgCSAgIGNhc2UgJ3JlZ2V4X25vbWF0Y2gnOgogICAgICAgICAgICAgICAgICBpZiAoJHRoaXNWYWwgIT09IGZhbHNlICYmCiAgICAgICAgICAgICAgICAgICAgICAgcHJlZ19tYXRjaCgkdGhpcy0+R2V0T3B0aW9uKCdyZWdleCcsJy8uKi8nKSwgJHRoaXNWYWwpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+dmFsaWRhdGVkID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQgPSAkbW9kLT5MYW5nKCdwbGVhc2VfZW50ZXJfdmFsaWQnLCR0aGlzLT5OYW1lKTsKICAgICAgICAgICAgICAgICAgICB9CgkJICAJICAgCSAgIGJyZWFrOwoJCSAgfQoJCSAgCgkJaWYgKCR0aGlzLT5HZXRPcHRpb24oJ2xlbmd0aCcsMCkgPiAwICYmIHN0cmxlbigkdGhpc1ZhbCkgPiAkdGhpcy0+R2V0T3B0aW9uKCdsZW5ndGgnLDApKQoJCQl7CgkJCSR0aGlzLT52YWxpZGF0ZWQgPSBmYWxzZTsKCQkJJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQgPSAkbW9kLT5MYW5nKCdwbGVhc2VfZW50ZXJfbm9fbG9uZ2VyJywkdGhpcy0+R2V0T3B0aW9uKCdsZW5ndGgnLDApKTsKCQkJfQoJCX0KCQkKCQlyZXR1cm4gYXJyYXkoJHRoaXMtPnZhbGlkYXRlZCwgJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQpOwoJfQoJCgkvLyBHZXRzIGFsbCBtaXJyb3IgZmllbGRzIG9mIHRoaXMgZmllbGQKCWZ1bmN0aW9uIEdldEZpZWxkU2libGluZ3MoKSAKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRmb3JtID0gJHRoaXMtPmZvcm1fcHRyOwoJCSRzaWJsaW5ncyA9IGFycmF5KCk7CgkJCgkJJHNpYmxpbmdzWyRtb2QtPkxhbmcoJ3NlbGVjdF9vbmUnKV0gPSAnJzsKCQoJCWZvciAoJGk9MDsgJGkgPCBjb3VudCgkZm9ybS0+RmllbGRzKTsgJGkrKykgewoJCgkJCSR0aGlzRmllbGQgPSAmJGZvcm0tPkZpZWxkc1skaV07CgkKCQkJaWYgKCR0aGlzRmllbGQtPkdldEZpZWxkVHlwZSgpID09ICdUZXh0RmllbGRFeHBhbmRhYmxlJyAmJiAkdGhpc0ZpZWxkLT5HZXRJZCgpICE9ICR0aGlzLT5HZXRJZCgpKSB7CgkJCgkJCQkkc2libGluZ3NbJHRoaXNGaWVsZC0+R2V0TmFtZSgpXSA9ICR0aGlzRmllbGQtPkdldElkKCk7CgkJCQkKCQkJfQoJCX0KCQkKCQlyZXR1cm4gJHNpYmxpbmdzOwoJCgl9CgkKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/TimePickerField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYlRpbWVQaWNrZXJGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCgl2YXIgJGZsYWcxMmhvdXI7CgkKCWZ1bmN0aW9uIGZiVGltZVBpY2tlckZpZWxkKCYkZm9ybV9wdHIsICYkcGFyYW1zKQoJewogICAgICAgICR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgICAgICRtb2QgPSAkZm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHRoaXMtPlR5cGUgPSAnVGltZVBpY2tlckZpZWxkJzsKCQkkdGhpcy0+RGlzcGxheUluRm9ybSA9IHRydWU7CgkJJHRoaXMtPlZhbGlkYXRpb25UeXBlcyA9IGFycmF5KAogICAgICAgICAgICAkbW9kLT5MYW5nKCd2YWxpZGF0aW9uX25vbmUnKT0+J25vbmUnLAogICAgICAgICAgICApOwogICAgICAkdGhpcy0+ZmxhZzEyaG91ciA9IGFycmF5KAoJCSAgCSRtb2QtPkxhbmcoJ3RpdGxlX2JlZm9yZV9ub29uJyk9PiRtb2QtPkxhbmcoJ3RpdGxlX2JlZm9yZV9ub29uJyksCiAgICAgICAgCSRtb2QtPkxhbmcoJ3RpdGxlX2FmdGVyX25vb24nKT0+JG1vZC0+TGFuZygndGl0bGVfYWZ0ZXJfbm9vbicpKTsKICAgICR0aGlzLT5oYXNNdWx0aXBsZUZvcm1Db21wb25lbnRzID0gdHJ1ZTsKICAgICR0aGlzLT5sYWJlbFN1YkNvbXBvbmVudHMgPSBmYWxzZTsKCX0KCgogICAgZnVuY3Rpb24gU3RhdHVzSW5mbygpCgl7CiAgICAgICRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJcmV0dXJuICgkdGhpcy0+R2V0T3B0aW9uKCcyNF9ob3VyJywnMCcpID09ICcwJz8kbW9kLT5MYW5nKCcxMl9ob3VyJyk6JG1vZC0+TGFuZygnMjRfaG91cicpKTsKCX0KCgoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkanMgPSAkdGhpcy0+R2V0T3B0aW9uKCdqYXZhc2NyaXB0JywnJyk7CgkJCiAgICAgICAkbm93ID0gbG9jYWx0aW1lKHRpbWUoKSx0cnVlKTsKICAgICAgICRNaW5zID0gYXJyYXkoKTsKICAgICAgICRIb3VycyA9IGFycmF5KCk7CiAgICAgICAkcmV0ID0gYXJyYXkoKTsKICAgICAgIGZvciAoJGk9MDskaTw2MDskaSsrKQogICAgICAgCXsKCQkJJG1vID0gc3ByaW50ZigiJTAyZCIsJGkpOwoJCQkkTWluc1skbW9dPSRtbzsKCQkJfQogICAgICAgaWYgKCR0aGlzLT5HZXRPcHRpb24oJzI0X2hvdXInLCcwJykgPT0gJzAnKQogICAgICAgCQl7CiAgICAgICAJCWZvciAoJGk9MTskaTwxMzskaSsrKQogICAgICAgCQl7CgkJCQkJJG1vID0gc3ByaW50ZigiJTAyZCIsJGkpOwoJCQkJCSRIb3Vyc1skbW9dPSRtbzsKCQkJCX0KCQkJaWYgKCR0aGlzLT5IYXNWYWx1ZSgpKQoJCQkJewoJCQkJJG5vd1sndG1faG91ciddID0gJHRoaXMtPkdldEFycmF5VmFsdWUoMCk7CgkJCQkkbm93WydtZXJpZCddID0gJHRoaXMtPkdldEFycmF5VmFsdWUoMik7CgkJCQkkbm93Wyd0bV9taW4nXSA9ICR0aGlzLT5HZXRBcnJheVZhbHVlKDEpOwoJCQkJfQoJCQllbHNlCgkJCQl7CgkJCQkkbm93WydtZXJpZCddID0gJG1vZC0+TGFuZygndGl0bGVfYmVmb3JlX25vb24nKTsKCQkJCWlmICgkbm93Wyd0bV9ob3VyJ10gPiAxMikKCQkJCQl7CgkJCQkJJG5vd1sndG1faG91ciddIC09IDEyOwoJCQkJCSRub3dbJ21lcmlkJ10gPSAkbW9kLT5MYW5nKCd0aXRsZV9hZnRlcl9ub29uJyk7CgkJCQkJfQoJCQkJZWxzZWlmICgkbm93Wyd0bV9ob3VyJ10gPT0gMCkKCQkJCQl7CgkJCQkJJG5vd1sndG1faG91ciddID0gMTI7CgkJCQkJfQoJCQkJfQoKICAgICAgICAgICAgJGhyID0gbmV3IHN0ZENsYXNzKCk7CiAgICAgICAgICAgICRoci0+aW5wdXQgPSAkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ2ZicnBfXycuJHRoaXMtPklkLidbXScsCiAgICAgICAJCQkkSG91cnMsIC0xLCAkbm93Wyd0bV9ob3VyJ10sJGpzLiR0aGlzLT5HZXRDU1NJZFRhZygnX2hvdXInKSk7CiAgICAgICAJCSRoci0+dGl0bGUgPSAkbW9kLT5MYW5nKCdob3VyJyk7CiAgICAgICAJCSRoci0+bmFtZSA9ICc8bGFiZWwgZm9yPSInLiR0aGlzLT5HZXRDU1NJZCgnX2hvdXInKS4nIj4nLiRtb2QtPkxhbmcoJ2hvdXInKS4nPC9sYWJlbD4nOwogICAgICAgCQlhcnJheV9wdXNoKCRyZXQsICRocik7CiAgICAgICAJCQogICAgICAgICAgICAkbWluID0gbmV3IHN0ZENsYXNzKCk7CiAgICAgICAgICAgICRtaW4tPmlucHV0ID0gJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICdmYnJwX18nLiR0aGlzLT5JZC4nW10nLAogICAgICAgCQkJJE1pbnMsIC0xLCAkbm93Wyd0bV9taW4nXSwkanMuJHRoaXMtPkdldENTU0lkVGFnKCdfbWluJykpOwogICAgICAgCQkkbWluLT50aXRsZSA9ICRtb2QtPkxhbmcoJ21pbicpOwogICAgICAgCQkkbWluLT5uYW1lID0gJzxsYWJlbCBmb3I9IicuJHRoaXMtPkdldENTU0lkKCdfbWluJykuJyI+Jy4kbW9kLT5MYW5nKCdtaW4nKS4nPC9sYWJlbD4nOwogICAgICAgCQlhcnJheV9wdXNoKCRyZXQsICRtaW4pOwoKICAgICAgICAgICAgJG1lciA9IG5ldyBzdGRDbGFzcygpOwogICAgICAgICAgICAkbWVyLT5pbnB1dCA9ICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQuJ1tdJywKICAgICAgIAkJCSR0aGlzLT5mbGFnMTJob3VyLCAtMSwgJG5vd1snbWVyaWQnXSwgJGpzLiR0aGlzLT5HZXRDU1NJZFRhZygnX21lcmlkaWFuJykpOwogICAgICAgICAgICAkbWVyLT5uYW1lID0gJzxsYWJlbCBmb3I9IicuJHRoaXMtPkdldENTU0lkKCdfbWVyaWRpYW4nKS4nIj4nLiRtb2QtPkxhbmcoJ21lcmlkJykuJzwvbGFiZWw+JzsKICAgICAgICAgICAgJG1lci0+dGl0bGUgPSAkbW9kLT5MYW5nKCdtZXJpZCcpOwogICAgICAgICAgICBhcnJheV9wdXNoKCRyZXQsJG1lcik7CiAgICAgICAgICAgIHJldHVybiAkcmV0OwogICAgICAgCQl9CiAgICAgICBlbHNlCiAgICAgICAJCXsKICAgICAgIAkJZm9yICgkaT0wOyRpPDI0OyRpKyspCiAgICAgICAJCXsKCQkJCQkkbW8gPSBzcHJpbnRmKCIlMDJkIiwkaSk7CgkJCQkJJEhvdXJzWyRtb109JG1vOwoJCQkJfQoKCQkJaWYgKCR0aGlzLT5IYXNWYWx1ZSgpKQoJCQkJewoJCQkJJG5vd1sndG1faG91ciddID0gJHRoaXMtPkdldEFycmF5VmFsdWUoMCk7CgkJCQkkbm93Wyd0bV9taW4nXSA9ICR0aGlzLT5HZXRBcnJheVZhbHVlKDEpOwoJCQkJfQogICAgICAgICAgICAkaHIgPSBuZXcgc3RkQ2xhc3MoKTsKICAgICAgICAgICAgJGhyLT5pbnB1dCA9ICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQuJ1tdJywKICAgICAgIAkJCSRIb3VycywgLTEsICRub3dbJ3RtX2hvdXInXSwkanMuJHRoaXMtPkdldENTU0lkVGFnKCdfaG91cicpKTsKICAgICAgIAkJJGhyLT50aXRsZSA9ICRtb2QtPkxhbmcoJ2hvdXInKTsKICAgICAgIAkJJGhyLT5uYW1lID0gJzxsYWJlbCBmb3I9IicuJHRoaXMtPkdldENTU0lkKCdfaG91cicpLiciPicuJG1vZC0+TGFuZygnaG91cicpLic8L2xhYmVsPic7CiAgICAgICAJCWFycmF5X3B1c2goJHJldCwgJGhyKTsKICAgICAgIAkJCiAgICAgICAgICAgICRtaW4gPSBuZXcgc3RkQ2xhc3MoKTsKICAgICAgICAgICAgJG1pbi0+aW5wdXQgPSAkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ2ZicnBfXycuJHRoaXMtPklkLidbXScsCiAgICAgICAJCQkkTWlucywgLTEsICRub3dbJ3RtX21pbiddLCRqcy4kdGhpcy0+R2V0Q1NTSWRUYWcoJ19taW4nKSk7CiAgICAgICAJCSRtaW4tPnRpdGxlID0gJG1vZC0+TGFuZygnbWluJyk7CiAgICAgICAJCSRtaW4tPm5hbWUgPSAnPGxhYmVsIGZvcj0iJy4kdGhpcy0+R2V0Q1NTSWQoJ19taW4nKS4nIj4nLiRtb2QtPkxhbmcoJ21pbicpLic8L2xhYmVsPic7CiAgICAgICAJCWFycmF5X3B1c2goJHJldCwgJG1pbik7CgogICAgICAgICAgICByZXR1cm4gJHJldDsKICAgICAgIAkJfQoKCgl9CgogICBmdW5jdGlvbiBDb21wYXJlVG8oJHZhbCkKICAgewogICAgICAkdHQgPSAwOwogICAgICAkb3QgPSAwOwogICAgICBpZiAoJHRoaXMtPkhhc1ZhbHVlKCkpCgkJCXsKCQkJJHR0ID0gJHRoaXMtPkdldEFycmF5VmFsdWUoMCkgKiA2MCArICR0aGlzLT5HZXRBcnJheVZhbHVlKDEpOwoJCQl9CgkJJG8gPSAkdmFsLT5HZXRWYWx1ZSgpOwogICAgICBpZiAoJG8tPkhhc1ZhbHVlKCkpCgkJCXsKCQkJJG90ID0gJG8tPkdldEFycmF5VmFsdWUoMCkgKiA2MCArICRvLT5HZXRBcnJheVZhbHVlKDEpOwoJCQl9CiAgICAgIGlmICgkdHQgPT0gJG90KQogICAgICAgICB7CiAgICAgICAgIHJldHVybiAwOwogICAgICAgICB9CiAgICAgIHJldHVybiAoJHR0IDwgJG90KSA/IC0xIDogMTsKICAgfQoKCWZ1bmN0aW9uIEdldEh1bWFuUmVhZGFibGVWYWx1ZSgkYXNfc3RyaW5nPXRydWUpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQlpZiAoJHRoaXMtPkhhc1ZhbHVlKCkpCgkJCXsKCQkJaWYgKCR0aGlzLT5HZXRPcHRpb24oJzI0X2hvdXInLCcwJykgPT0gJzAnKQoJCQkJewoJCQkJJHJldCA9ICR0aGlzLT5HZXRBcnJheVZhbHVlKDApLic6Jy4KCQkJCQkkdGhpcy0+R2V0QXJyYXlWYWx1ZSgxKS4nICcuCgkJCQkJJHRoaXMtPkdldEFycmF5VmFsdWUoMik7CgkJCQl9CgkJCWVsc2UKCQkJCXsKCQkJCSRyZXQgPSAkdGhpcy0+R2V0QXJyYXlWYWx1ZSgwKS4nOicuCgkJCQkJJHRoaXMtPkdldEFycmF5VmFsdWUoMSk7CgkJCQl9CgkJCX0KCQllbHNlCgkJCXsKCQkJJHJldCA9ICRtb2QtPkxhbmcoJ3Vuc3BlY2lmaWVkJyk7CgkJCX0KCQlpZiAoJGFzX3N0cmluZykKCQkJewoJCQlyZXR1cm4gJHJldDsKCQkJfQoJCWVsc2UKCQkJewoJCQlyZXR1cm4gYXJyYXkoJHJldCk7CgkJCX0KCX0KCglmdW5jdGlvbiBQcmVQb3B1bGF0ZUFkbWluRm9ybSgkZm9ybURlc2NyaXB0b3IpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkbWFpbiA9IGFycmF5KAoJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV8yNF9ob3VyJyksCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF8yNF9ob3VyJywKICAgICAgICAgICAgCQknMScsJHRoaXMtPkdldE9wdGlvbignMjRfaG91cicsJzAnKSkpKTsKCQlyZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbixhcnJheSgpKTsKCX0KCn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/UniqueIntegerField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwOCBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDggYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYlVuaXF1ZUludGVnZXJGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIAp7CgogIGZ1bmN0aW9uIGZiVW5pcXVlSW50ZWdlckZpZWxkKCYkZm9ybV9wdHIsICYkcGFyYW1zKQogIHsKICAgICR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgJG1vZCA9ICRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICR0aGlzLT5UeXBlID0gJ1VuaXF1ZUludGVnZXJGaWVsZCc7CiAgICAkdGhpcy0+RGlzcGxheUluRm9ybSA9IHRydWU7CiAgICAkdGhpcy0+Tm9uUmVxdWlyYWJsZUZpZWxkID0gdHJ1ZTsKICAgICR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgpOwogICAgJHRoaXMtPnNvcnRhYmxlID0gZmFsc2U7CiAgfQoKCiAgZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCiAgewogICAgJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgaWYgKCR0aGlzLT5WYWx1ZSAhPT0gZmFsc2UpCiAgICAgIHsKICAgICAgJHJldCA9ICRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ2ZicnBfXycuJHRoaXMtPklkLAoJCQkJICAgJHRoaXMtPlZhbHVlKTsKCSAgaWYgKCR0aGlzLT5HZXRPcHRpb24oJ3Nob3dfdG9fdXNlcicsJzAnKSA9PSAnMScpCgkJIHsKCQkgJHJldCAuPSAkdGhpcy0+VmFsdWU7CgkJIH0KCSAgfQoJZWxzZQoJICAgewoJICAgJGRiID0gJG1vZC0+ZGJIYW5kbGU7CgkgICAkc2VxID0gJGRiLT5HZW5JRChjbXNfZGJfcHJlZml4KCkuICdtb2R1bGVfZmJfdW5pcXVlZmllbGRfc2VxJyk7CiAgICAgICAkcmV0ID0gJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQsJHNlcSk7CgkgICBpZiAoJHRoaXMtPkdldE9wdGlvbignc2hvd190b191c2VyJywnMCcpID09ICcxJykKCQkgewoJCSAkcmV0IC49ICRzZXE7CgkJIH0KICAgICAgfQoJcmV0dXJuICRyZXQ7CiAgfQoKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRtYWluID0gYXJyYXkoCgkJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9zaG93X3RvX3VzZXInKSwKCQkJCSRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRmb3JtRGVzY3JpcHRvciwnZmJycF9vcHRfc2hvd190b191c2VyJywnMCcpLgoJCQkJJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9zaG93X3RvX3VzZXInLCAnMScsCgkJCQkkdGhpcy0+R2V0T3B0aW9uKCdzaG93X3RvX3VzZXInLCcwJykpKQoJCQkJKTsKCQkkYWR2ID0gYXJyYXkoKTsKCQlyZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7Cgl9CgoKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/UserTagField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYlVzZXJUYWdGaWVsZCBleHRlbmRzICBmYkZpZWxkQmFzZQp7CgogIGZ1bmN0aW9uIGZiVXNlclRhZ0ZpZWxkKCYkZm9ybV9wdHIsICYkcGFyYW1zKQogIHsKICAgICR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgJG1vZCA9ICRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICR0aGlzLT5UeXBlID0gJ1VzZXJUYWdGaWVsZCc7CiAgICAkdGhpcy0+SXNEaXNwb3NpdGlvbiA9IGZhbHNlOwogICAgJHRoaXMtPk5vblJlcXVpcmFibGVGaWVsZCA9IHRydWU7CiAgICAkdGhpcy0+RGlzcGxheUluRm9ybSA9IHRydWU7CiAgICAkdGhpcy0+RGlzcGxheUluU3VibWlzc2lvbiA9IGZhbHNlOwogICAgJHRoaXMtPnNvcnRhYmxlID0gZmFsc2U7CiAgfQoKICBmdW5jdGlvbiBTdGF0dXNJbmZvKCkKICB7CiAgICAkbW9kPSR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgIHJldHVybiAkdGhpcy0+R2V0T3B0aW9uKCd1ZHRuYW1lJywkbW9kLT5MYW5nKCd1bnNwZWNpZmllZCcpKTsKICB9CgoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCgl7CiAgICAkbW9kPSR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICRvdGhlcnMgPSAkdGhpcy0+Zm9ybV9wdHItPkdldEZpZWxkcygpOwogICAgJHVuc3BlYyA9ICR0aGlzLT5mb3JtX3B0ci0+R2V0QXR0cigndW5zcGVjaWZpZWQnLCRtb2QtPkxhbmcoJ3Vuc3BlY2lmaWVkJykpOwogICAgJHBhcmFtcyA9IGFycmF5KCk7CiAgICBpZiAoJHRoaXMtPkdldE9wdGlvbignZXhwb3J0X2Zvcm0nLCcwJykgPT0gJzEnKQogICAgICB7CiAgICAgICRwYXJhbXNbJ0ZPUk0nXSA9ICR0aGlzLT5mb3JtX3B0cjsKICAgICAgfQogICAgZm9yKCRpPTA7JGk8Y291bnQoJG90aGVycyk7JGkrKykKICAgICAgewoJJHJlcGxWYWwgPSAnJzsKCWlmICgkb3RoZXJzWyRpXS0+RGlzcGxheUluU3VibWlzc2lvbigpKQoJICB7CgkgICAgJHJlcGxWYWwgPSAkb3RoZXJzWyRpXS0+R2V0SHVtYW5SZWFkYWJsZVZhbHVlKCk7CgkgICAgaWYgKCRyZXBsVmFsID09ICcnKQoJICAgICAgewoJCSAgICAkcmVwbFZhbCA9ICR1bnNwZWM7CgkgICAgICB9CgkgIH0KICAgJG5hbWUgPSAkb3RoZXJzWyRpXS0+R2V0VmFyaWFibGVOYW1lKCk7CgkkcGFyYW1zWyRuYW1lXSA9ICRyZXBsVmFsOwoJJGlkID0gJG90aGVyc1skaV0tPkdldElkKCk7CgkkcGFyYW1zWydmbGRfJy4kaWRdID0gJHJlcGxWYWw7CgkkYWxpYXMgPSAkb3RoZXJzWyRpXS0+R2V0QWxpYXMoKTsKCWlmICghZW1wdHkoJGFsaWFzKSkKICAgICAgewoJICAgJHBhcmFtc1skYWxpYXNdID0gJHJlcGxWYWw7CgkgICB9CiAgIH0KCiAgICBnbG9iYWwgJGdDbXM7CiAgICAkdXNlcnRhZ29wcyA9ICRnQ21zLT5HZXRVc2VyVGFnT3BlcmF0aW9ucygpOwogICAgJHVkdCA9ICR0aGlzLT5HZXRPcHRpb24oJ3VkdG5hbWUnKTsKICAgICRyZXMgPSAkdXNlcnRhZ29wcy0+Q2FsbFVzZXJUYWcoICR1ZHQsICRwYXJhbXMpOwoKICAgIGlmKCAkcmVzID09PSBGQUxTRSApCiAgICAgIHsKCSAgIHJldHVybiAkbW9kLT5MYW5nKCdlcnJvcl91c2VydGFnJywgJHVkdCk7CiAgICAgIH0KICAgIHJldHVybiAkcmVzOwoJfQoKCiAgZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQogIHsKICAgICRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkbWFpbiA9IGFycmF5KCk7CiAgICAkYWR2ID0gYXJyYXkoKTsKCiAgICBnbG9iYWwgJGdDbXM7CiAgICAkdXNlcnRhZ29wcyA9ICRnQ21zLT5HZXRVc2VyVGFnT3BlcmF0aW9ucygpOwogICAgJHVzZXJ0YWdzID0gJHVzZXJ0YWdvcHMtPkxpc3RVc2VyVGFncygpOwogICAgJHVzZXJ0YWdsaXN0ID0gYXJyYXkoKTsKICAgIGZvcmVhY2goICR1c2VydGFncyBhcyAka2V5ID0+ICR2YWx1ZSApCiAgICAgIHsKCSR1c2VydGFnbGlzdFskdmFsdWVdID0gJGtleTsKICAgICAgfQogICAgJG1haW5bXSA9IGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3VkdF9uYW1lJyksCgkJICAgICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGZvcm1EZXNjcmlwdG9yLAoJCQkJCSAgICAgICdmYnJwX29wdF91ZHRuYW1lJywkdXNlcnRhZ2xpc3QsLTEsCgkJCQkJICAgICAgJHRoaXMtPkdldE9wdGlvbigndWR0bmFtZScpKSk7CiAgICAgICRtYWluW10gPSBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9leHBvcnRfZm9ybV90b191ZHQnKSwKCQkJICAgICAgJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZXhwb3J0X2Zvcm0nLCcwJykuCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9leHBvcnRfZm9ybScsCiAgICAgICAgICAgIAkJJzEnLCR0aGlzLT5HZXRPcHRpb24oJ2V4cG9ydF9mb3JtJywnMCcpKSk7CiAgICByZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7CiAgfQoKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/YearPullDownField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogICBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwogICAKICAgVGhpcyBGaWVsZCB3cml0dGVuIGJ5IFRhcGlvICJTdGlra2kiIEz2eXR0eSA8dGFwc2FAYmxhY2ttaWxrLmZpPgoqLwoKY2xhc3MgZmJZZWFyUHVsbGRvd25GaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCglmdW5jdGlvbiBmYlllYXJQdWxsZG93bkZpZWxkKCYkZm9ybV9wdHIsICYkcGFyYW1zKQoJewoJCSR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgICAgICRtb2QgPSAkZm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHRoaXMtPlR5cGUgPSAnWWVhclB1bGxEb3duRmllbGQnOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoKTsKCgl9CgoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkanMgPSAkdGhpcy0+R2V0T3B0aW9uKCdqYXZhc2NyaXB0JywnJyk7CgkJJHNvcnRlZCA9YXJyYXkoKTsKCgkJaWYgKCR0aGlzLT5HZXRPcHRpb24oJ3llYXJfc3RhcnQnLCcnKSAhPSAnJykgewoJCQkkY291bnRfZnJvbSA9ICR0aGlzLT5HZXRPcHRpb24oJ3llYXJfc3RhcnQnLCcnKTsKCQl9IGVsc2UgewoJCQkkY291bnRfZnJvbSA9IDE5MDA7CgkJfQoJCQoJCWZvciAoJGk9ZGF0ZSgiWSIpOyAkaT49JGNvdW50X2Zyb207ICRpLS0pIHsKCQkJJHNvcnRlZFskaV09JGk7CgkJfQoJCQkKCQlpZiggJHRoaXMtPkdldE9wdGlvbignc29ydCcpID09ICcxJyApIHsKCQkJa3NvcnQoJHNvcnRlZCk7CgkJfQoJCgkJaWYgKCR0aGlzLT5HZXRPcHRpb24oJ3NlbGVjdF9vbmUnLCcnKSAhPSAnJykgewoJCQkkc29ydGVkID0gYXJyYXkoJyAnLiR0aGlzLT5HZXRPcHRpb24oJ3NlbGVjdF9vbmUnLCcnKT0+JycpICsgJHNvcnRlZDsKCQl9IGVsc2UgewoJCQkkc29ydGVkID0gYXJyYXkoJyAnLiRtb2QtPkxhbmcoJ3NlbGVjdF9vbmUnKT0+JycpICsgJHNvcnRlZDsKCQl9CgkJcmV0dXJuICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQsICRzb3J0ZWQsIC0xLCAkdGhpcy0+VmFsdWUsJGpzLiR0aGlzLT5HZXRDU1NJZFRhZygpKTsKCX0KCQoJZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkKCQkkbWFpbiA9IGFycmF5KCk7CgkJJGFkdiA9IGFycmF5KCk7CgkJJG1haW5bXSA9IGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3NlbGVjdF9vbmVfbWVzc2FnZScpLAoJCQkJCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfc2VsZWN0X29uZScsCgkJCQkJCQkJCQkJICAkdGhpcy0+R2V0T3B0aW9uKCdzZWxlY3Rfb25lJywkbW9kLT5MYW5nKCdzZWxlY3Rfb25lJykpLDI1LDEyOCkpOwoJCQkJCQkJCQkJCSAgCgkJJG1haW5bXSA9IGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3llYXJfZW5kX21lc3NhZ2UnKSwKCQkJCQkJJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X3llYXJfc3RhcnQnLAoJCQkJCQkJCQkJCSAgJHRoaXMtPkdldE9wdGlvbigneWVhcl9zdGFydCcsMTkwMCksMjUsMTI4KSk7CgkJCQkJCQkJCQkJICAKCQkkbWFpbltdID0gYXJyYXkoJG1vZC0+TGFuZygnc29ydF9vcHRpb25zJyksCgkJCQkJCSRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGZvcm1EZXNjcmlwdG9yLCdmYnJwX29wdF9zb3J0JywKCQkJCQkJCQkJCQkJICBhcnJheSgnWWVzJz0+MSwnTm8nPT4wKSwtMSwKCQkJCQkJCQkJCQkJICAkdGhpcy0+R2V0T3B0aW9uKCdzb3J0JywwKSkpOwoJCQkJCQkJCQkJCQkgIAoJCXJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLCdhZHYnPT4kYWR2KTsKCX0KCgoJZnVuY3Rpb24gR2V0SHVtYW5SZWFkYWJsZVZhbHVlKCRhc19zdHJpbmc9dHJ1ZSkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCWlmICgkdGhpcy0+SGFzVmFsdWUoKSkKCQkJewoJCQkkcmV0ID0gJHRoaXMtPlZhbHVlOwoJCQl9CgkJZWxzZQoJCQl7CgkJCSRyZXQgPSAkdGhpcy0+Zm9ybV9wdHItPkdldEF0dHIoJ3Vuc3BlY2lmaWVkJywkbW9kLT5MYW5nKCd1bnNwZWNpZmllZCcpKTsKCQkJfQoJCWlmICgkYXNfc3RyaW5nKQoJCQl7CgkJCXJldHVybiAkcmV0OwoJCQl9CgkJZWxzZQoJCQl7CgkJCXJldHVybiBhcnJheSgkcmV0KTsKCQkJfQoJfQoKfQo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/FormBuilder.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZvcm1CdWlsZGVyCiMgVmVyc2lvbjogMC42LCByZWxlYXNlZCAyMDA4CiMKIyBDb3B5cmlnaHQgKGMpIDIwMDcsIFNhbXVlbCBHb2xkc3RlaW4gPHNqZ0BjbXNtb2R1bGVzLmNvbT4KIyBGb3IgSW5mb3JtYXRpb24sIFN1cHBvcnQsIEJ1ZyBSZXBvcnRzLCBldGMsIHBsZWFzZSB2aXNpdCB0aGUKIyBDTVMgTWFkZSBTaW1wbGUgRm9yZ2U6CiMgaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9mb3JtYnVpbGRlci8KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNiBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpjbGFzcyBGb3JtQnVpbGRlciBleHRlbmRzIENNU01vZHVsZQp7CgoJdmFyICRmaWVsZF90eXBlczsKCXZhciAkZGlzcF9maWVsZF90eXBlczsKCXZhciAkc3RkX2ZpZWxkX3R5cGVzOwoJdmFyICRhbGxfdmFsaWRhdGlvbl90eXBlczsKCXZhciAkbW9kdWxlX3B0cjsKCXZhciAkbW9kdWxlX2lkOwoJdmFyICRlbWFpbF9yZWdleDsKCXZhciAkZW1haWxfcmVnZXhfcmVsYXhlZDsKCXZhciAkZGJIYW5kbGU7CgoJZnVuY3Rpb24gRm9ybUJ1aWxkZXIoKQoJewoJCWdsb2JhbCAkZ0NtczsKCQkkdGhpcy0+Q01TTW9kdWxlKCk7CgoJCSR0aGlzLT5tb2R1bGVfcHRyID0gJiR0aGlzOwoJCSR0aGlzLT5kYkhhbmRsZSA9ICAkdGhpcy0+R2V0RGIoKTsKCQkkdGhpcy0+bW9kdWxlX2lkID0gJyc7CgkJJHRoaXMtPmVtYWlsX3JlZ2V4ID0gIi9eKFtcd1xkXC5cLVxfXSkrXEAoW1x3XGRcLlwtXF9dKylcLihcdyspJC9pIjsKCQkkdGhpcy0+ZW1haWxfcmVnZXhfcmVsYXhlZD0iL14oW1x3XGRcLlwtXF9dKStcQChbXHdcZFwuXC1cX10pKyQvaSI7CgkJCgkJcmVxdWlyZV9vbmNlIGRpcm5hbWUoX19GSUxFX18pLicvY2xhc3Nlcy9Gb3JtLmNsYXNzLnBocCc7CgkJcmVxdWlyZV9vbmNlIGRpcm5hbWUoX19GSUxFX18pLicvY2xhc3Nlcy9GaWVsZEJhc2UuY2xhc3MucGhwJzsJCQoJCQoJfQoJCglmdW5jdGlvbiBpbml0aWFsaXplKCkKCXsKCQkkZGlyPW9wZW5kaXIoZGlybmFtZShfX0ZJTEVfXykuJy9jbGFzc2VzJyk7CgkJJHRoaXMtPmZpZWxkX3R5cGVzID0gYXJyYXkoKTsKCQl3aGlsZSgkZmlsZXNwZWM9cmVhZGRpcigkZGlyKSkKCQl7CgkJCWlmKHN0cnBvcygkZmlsZXNwZWMsJ0ZpZWxkJykgPT09IGZhbHNlICYmIHN0cnBvcygkZmlsZXNwZWMsJ0Rpc3Bvc2l0aW9uJykgPT09IGZhbHNlKQoJCQl7CgkJCQljb250aW51ZTsKCQkJfQoJCQkkc2hvcnRuYW1lID0gc3Vic3RyKCRmaWxlc3BlYywwLHN0cnBvcygkZmlsZXNwZWMsJy4nKSk7CgkJCWlmIChzdWJzdHIoJHNob3J0bmFtZSwtNCkgPT0gJ0Jhc2UnKQoJCQl7CgkJCQljb250aW51ZTsKCQkJfQoJCQkkdGhpcy0+ZmllbGRfdHlwZXNbJHRoaXMtPkxhbmcoJ2ZpZWxkX3R5cGVfJy4kc2hvcnRuYW1lKV0gPSAkc2hvcnRuYW1lOwoJCX0KCQkKCQlmb3JlYWNoICgkdGhpcy0+ZmllbGRfdHlwZXMgYXMgJHROYW1lPT4kdFR5cGUpCgkJewoJCQlpZiAoc3Vic3RyKCR0VHlwZSwwLDExKSA9PSAnRGlzcG9zaXRpb24nKQoJCQl7CgkJCQkkdGhpcy0+ZGlzcF9maWVsZF90eXBlc1skdE5hbWVdPSR0VHlwZTsKCQkJfQoJCX0KCQkkdGhpcy0+YWxsX3ZhbGlkYXRpb25fdHlwZXMgPSBhcnJheSgpOwoJCWtzb3J0KCR0aGlzLT5maWVsZF90eXBlcyk7CgkJJHRoaXMtPnN0ZF9maWVsZF90eXBlcyA9IGFycmF5KAoJCQkkdGhpcy0+TGFuZygnZmllbGRfdHlwZV9UZXh0RmllbGQnKT0+J1RleHRGaWVsZCcsCgkJCSR0aGlzLT5MYW5nKCdmaWVsZF90eXBlX1RleHRBcmVhRmllbGQnKT0+J1RleHRBcmVhRmllbGQnLAoJCQkkdGhpcy0+TGFuZygnZmllbGRfdHlwZV9DaGVja2JveEZpZWxkJyk9PidDaGVja2JveEZpZWxkJywKCQkJJHRoaXMtPkxhbmcoJ2ZpZWxkX3R5cGVfQ2hlY2tib3hHcm91cEZpZWxkJyk9PidDaGVja2JveEdyb3VwRmllbGQnLAoJCQkkdGhpcy0+TGFuZygnZmllbGRfdHlwZV9QdWxsZG93bkZpZWxkJyk9PidQdWxsZG93bkZpZWxkJywKCQkJJHRoaXMtPkxhbmcoJ2ZpZWxkX3R5cGVfUmFkaW9Hcm91cEZpZWxkJyk9PidSYWRpb0dyb3VwRmllbGQnLAoJCQkkdGhpcy0+TGFuZygnZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsJyk9PidEaXNwb3NpdGlvbkVtYWlsJywKCQkJJHRoaXMtPkxhbmcoJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25GaWxlJyk9PidEaXNwb3NpdGlvbkZpbGUnLAoJCQkkdGhpcy0+TGFuZygnZmllbGRfdHlwZV9QYWdlQnJlYWtGaWVsZCcpPT4nUGFnZUJyZWFrRmllbGQnLAoJCQkkdGhpcy0+TGFuZygnZmllbGRfdHlwZV9TdGF0aWNUZXh0RmllbGQnKT0+J1N0YXRpY1RleHRGaWVsZCcpOwoJCWtzb3J0KCR0aGlzLT5zdGRfZmllbGRfdHlwZXMpOwoJfQoKCWZ1bmN0aW9uIEFsbG93QXV0b0luc3RhbGwoKQoJewoJCXJldHVybiBGQUxTRTsKCX0KCglmdW5jdGlvbiBBbGxvd0F1dG9VcGdyYWRlKCkKCXsKCQlyZXR1cm4gRkFMU0U7Cgl9CgoJZnVuY3Rpb24gR2V0TmFtZSgpCgl7CgkJcmV0dXJuICdGb3JtQnVpbGRlcic7Cgl9CgkKCWZ1bmN0aW9uIEdldEZyaWVuZGx5TmFtZSgpCgl7CgkJcmV0dXJuICR0aGlzLT5MYW5nKCdmcmllbmRseW5hbWUnKTsKCX0KCglmdW5jdGlvbiBHZXRWZXJzaW9uKCkKCXsKCQlyZXR1cm4gJzAuNi4zJzsKCX0KCglmdW5jdGlvbiBHZXRBdXRob3IoKQoJewoJCXJldHVybiAnU2pHJzsKCX0KCglmdW5jdGlvbiBHZXRBdXRob3JFbWFpbCgpCgl7CgkJcmV0dXJuICdzamdAY21zbW9kdWxlcy5jb20nOwoJfQoKCWZ1bmN0aW9uIEdldEFkbWluRGVzY3JpcHRpb24oJGxhbmcgPSAnZW5fVVMnKQoJewoJCXJldHVybiAkdGhpcy0+TGFuZygnYWRtaW5kZXNjJyk7Cgl9CgoJZnVuY3Rpb24gR2V0Q2hhbmdlTG9nKCkKCXsKCQkkZm4gPSBkaXJuYW1lKF9fRklMRV9fKS4nL2NoYW5nZWxvZy5pbmMnOwoJCXJldHVybiBAZmlsZV9nZXRfY29udGVudHMoJGZuKTsKCX0KCglmdW5jdGlvbiBJc1BsdWdpbk1vZHVsZSgpCgl7CgkJcmV0dXJuIHRydWU7Cgl9CgoJZnVuY3Rpb24gSGFzQWRtaW4oKQoJewoJCXJldHVybiB0cnVlOwoJfQoKCWZ1bmN0aW9uIFZpc2libGVUb0FkbWluVXNlcigpCgl7CgkJcmV0dXJuICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBGb3JtcycpOwoJfQoKCWZ1bmN0aW9uIEFkbWluU3R5bGUoKQoJewoJCSRvdXRwdXQgPSAnJzsKCQkKCQkkZm4gPSBkaXJuYW1lKF9fRklMRV9fKS4nL2luY2x1ZGVzL2FkbWluLmNzcyc7CgkJJG91dHB1dCAuPSBAZmlsZV9nZXRfY29udGVudHMoJGZuKTsKCQkKCQlyZXR1cm4gJG91dHB1dDsKCX0KCglmdW5jdGlvbiBHZXRIZWFkZXJIVE1MKCkKCXsKCQlnbG9iYWwgJGdDbXM7CQoJCSR0bXBsID0gJyc7CgkJCgkJJHRtcGwgLj0gJzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IicuJGdDbXMtPmNvbmZpZ1sncm9vdF91cmwnXS4nL21vZHVsZXMvJy4kdGhpcy0+R2V0TmFtZSgpLicvaW5jbHVkZXMvanF1ZXJ5LTEuNC4yLm1pbi5qcyI+PC9zY3JpcHQ+JzsKCQkkdG1wbCAuPSAnPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iJy4kZ0Ntcy0+Y29uZmlnWydyb290X3VybCddLicvbW9kdWxlcy8nLiR0aGlzLT5HZXROYW1lKCkuJy9pbmNsdWRlcy9qcXVlcnkudGFibGVkbmQuanMiPjwvc2NyaXB0Pic7CQkKCQkkdG1wbCAuPSAnPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iJy4kZ0Ntcy0+Y29uZmlnWydyb290X3VybCddLicvbW9kdWxlcy8nLiR0aGlzLT5HZXROYW1lKCkuJy9pbmNsdWRlcy9mYl9qcXVlcnlfZnVuY3Rpb25zLmpzIj48L3NjcmlwdD4nOwoJCSR0bXBsIC49ICc8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSInLiRnQ21zLT5jb25maWdbJ3Jvb3RfdXJsJ10uJy9tb2R1bGVzLycuJHRoaXMtPkdldE5hbWUoKS4nL2luY2x1ZGVzL2ZiX2pxdWVyeS5qcyI+PC9zY3JpcHQ+JzsKCQkKICAgICAgICByZXR1cm4gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCR0bXBsKTsKCQkKCX0JCQoJCglmdW5jdGlvbiBTZXRQYXJhbWV0ZXJzKCkKCXsKCQkkdGhpcy0+UmVnaXN0ZXJNb2R1bGVQbHVnaW4oKTsKCQkkdGhpcy0+UmVzdHJpY3RVbmtub3duUGFyYW1zKCk7CgkJJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignZmJycF8qJywnbnVsbCcsJHRoaXMtPkxhbmcoJ2Zvcm1idWlsZGVyX3BhcmFtc19nZW5lcmFsJykpOwoJCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKENMRUFOX1JFR0VYUC4nL2ZicnBfLiovJyxDTEVBTl9TVFJJTkcpOwoJCSR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2Zvcm1faWQnLCdudWxsJywkdGhpcy0+TGFuZygnZm9ybWJ1aWxkZXJfcGFyYW1zX2Zvcm1faWQnKSk7CgkJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2Zvcm1faWQnLENMRUFOX0lOVCk7CgkJJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignZm9ybScsJ251bGwnLCR0aGlzLT5MYW5nKCdmb3JtYnVpbGRlcl9wYXJhbXNfZm9ybV9uYW1lJykpOwoJCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdmb3JtJyxDTEVBTl9TVFJJTkcpOwoJCQoJCSR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2ZpZWxkX2lkJywnbnVsbCcsJHRoaXMtPkxhbmcoJ2Zvcm1idWlsZGVyX3BhcmFtc19maWVsZF9pZCcpKTsKCQkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnZmllbGRfaWQnLENMRUFOX0lOVCk7CgkJCgkJJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcigndmFsdWVfKicsJ251bGwnLCR0aGlzLT5MYW5nKCdmb3JtYnVpbGRlcl9wYXJhbXNfcGFzc2VkX2Zyb21fdGFnJykpOwoJCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKENMRUFOX1JFR0VYUC4nL3ZhbHVlXy4qLycsQ0xFQU5fU1RSSU5HKTsKCQkKCQkkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdyZXNwb25zZV9pZCcsJ251bGwnLCR0aGlzLT5MYW5nKCdmb3JtYnVpbGRlcl9wYXJhbXNfcmVzcG9uc2VfaWQnKSk7CgkJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3Jlc3BvbnNlX2lkJyxDTEVBTl9JTlQpOwoJfQoKCWZ1bmN0aW9uIERvQWN0aW9uKCRuYW1lLCRpZCwkcGFyYW1zLCRyZXR1cm5pZD0nJykKCXsKCQoJCWdsb2JhbCAkZ0NtczsKCQkkc21hcnR5ID0mICRnQ21zLT5HZXRTbWFydHkoKTsKCQkKCQkkdGhpcy0+bW9kdWxlX2lkID0gJGlkOwoJCXBhcmVudDo6RG9BY3Rpb24oJG5hbWUsJGlkLCRwYXJhbXMsJHJldHVybmlkKTsKCgl9CgoJZnVuY3Rpb24gR2V0RGVwZW5kZW5jaWVzKCkKCXsKCQlyZXR1cm4gYXJyYXkoJ0NNU01haWxlcic9PicxLjczJyk7Cgl9CgoJLy8gbWF5IGJlIHRvbyBzdHJpbmdlbnQsIGJ1dCBiZXR0ZXIgc2FmZSB0aGFuIHNvcnJ5LgoJZnVuY3Rpb24gTWluaW11bUNNU1ZlcnNpb24oKQoJewoJCXJldHVybiAnMS4xJzsKCX0KCglmdW5jdGlvbiBJbnN0YWxsUG9zdE1lc3NhZ2UoKQoJewoJCXJldHVybiAkdGhpcy0+TGFuZygncG9zdF9pbnN0YWxsJyk7Cgl9CgoKCWZ1bmN0aW9uIENoZWNrQWNjZXNzKCRwZXJtaXNzaW9uPSdNb2RpZnkgRm9ybXMnKQoJewoJCSRhY2Nlc3MgPSAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCRwZXJtaXNzaW9uKTsKCQlpZiAoISRhY2Nlc3MpICB7CgkJCWVjaG8gIjxwIGNsYXNzPVwiZXJyb3JcIj4iLiR0aGlzLT5MYW5nKCd5b3VfbmVlZF9wZXJtaXNzaW9uJywkcGVybWlzc2lvbikuIjwvcD4iOwoJCQlyZXR1cm4gZmFsc2U7CgkJfQoJCWVsc2UgcmV0dXJuIHRydWU7Cgl9CgoJLyoKCURPIE5PVCBhbGxvdyBwYXJhbWV0ZXJzIHRvIGJlIHVzZWQgZm9yIHBhc3NpbmcgdGhlIG9yZGVyX2J5ISBJdCBpcyBub3QgZXNjYXBlZCBiZWZvcmUKCWRhdGFiYXNlIGFjY2Vzcy4gSWYgd2UgbGV0IEFET0RCIHF1b3RlIGl0LCB0aGUgU1FMIGlzIG5vdCB2YWxpZCAobm90IHRoYXQgTXlTUUwgY2FyZXMsCglidXQgUG9zdGdyZXMgZG9lcykuCgkqLwoJCglmdW5jdGlvbiBHZXRGb3Jtcygkb3JkZXJfYnk9J25hbWUnKQoJewoJCSRkYiA9ICR0aGlzLT5HZXREYigpOwoJCSRzcWwgPSAiU0VMRUNUICogRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zvcm0gT1JERVIgQlkgJy4kb3JkZXJfYnk7CgkJJHJlc3VsdCA9IGFycmF5KCk7CgkJJHJzID0gJGRiLT5FeGVjdXRlKCRzcWwpOwoJCWlmKCRycyAmJiAkcnMtPlJlY29yZENvdW50KCkgPiAwKQoJCXsKCQkJJHJlc3VsdCA9ICRycy0+R2V0QXJyYXkoKTsKCQl9CgkJcmV0dXJuICRyZXN1bHQ7Cgl9CgoJZnVuY3Rpb24gR2V0Rm9ybUlERnJvbUFsaWFzKCRmb3JtX2FsaWFzKQoJewoJCSRkYiA9ICR0aGlzLT5HZXREYigpOwoJCSRzcWwgPSAnU0VMRUNUIGZvcm1faWQgZnJvbSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zvcm0gV0hFUkUgYWxpYXMgPSA/JzsKCQkkcnMgPSAkZGItPkV4ZWN1dGUoJHNxbCwgYXJyYXkoJGZvcm1fYWxpYXMpKTsKCQlpZigkcnMgJiYgJHJzLT5SZWNvcmRDb3VudCgpID4gMCkKCQl7CgkJCSRyZXN1bHQgPSAkcnMtPkZldGNoUm93KCk7CgkJCXJldHVybiAkcmVzdWx0Wydmb3JtX2lkJ107CgkJfQoJCXJldHVybiAtMTsKCX0KCglmdW5jdGlvbiBHZXRGb3JtTmFtZUZyb21JRCgkZm9ybV9pZCkKCXsKCQkkZGIgPSAkdGhpcy0+R2V0RGIoKTsKCQkkc3FsID0gJ1NFTEVDVCBuYW1lIGZyb20gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9mb3JtIFdIRVJFIGZvcm1faWQgPSA/JzsKCQkkcnMgPSAkZGItPkV4ZWN1dGUoJHNxbCwgYXJyYXkoJGZvcm1faWQpKTsKCQlpZigkcnMgJiYgJHJzLT5SZWNvcmRDb3VudCgpID4gMCkKCQl7CgkJCSRyZXN1bHQgPSAkcnMtPkZldGNoUm93KCk7CgkJfQoJCXJldHVybiAkcmVzdWx0WyduYW1lJ107Cgl9CgoJZnVuY3Rpb24gR2V0Rm9ybUJ5SUQoJGZvcm1faWQsICRsb2FkRGVlcD1mYWxzZSkKCXsKCQkkcGFyYW1zID0gYXJyYXkoJ2Zvcm1faWQnPT4kZm9ybV9pZCk7CgkJcmV0dXJuIG5ldyBmYkZvcm0oJHRoaXMsICRwYXJhbXMsICRsb2FkRGVlcCk7Cgl9CgoJZnVuY3Rpb24gR2V0Rm9ybUJ5UGFyYW1zKCYkcGFyYW1zLCAkbG9hZERlZXA9ZmFsc2UpCgl7CgkJcmV0dXJuIG5ldyBmYkZvcm0oJHRoaXMsICRwYXJhbXMsICRsb2FkRGVlcCk7Cgl9CgoJCglmdW5jdGlvbiBHZXRIZWxwKCRsYW5nID0gJ2VuX1VTJykKCXsKCQlyZXR1cm4gJHRoaXMtPkxhbmcoJ2hlbHAnKTsKCX0KCglmdW5jdGlvbiBHZXRSZXNwb25zZSgkZm9ybV9pZCwkcmVzcG9uc2VfaWQsJGZpZWxkX2xpc3Q9YXJyYXkoKSwgJGRhdGVGbXQ9J2QgRiB5JykKCXsKCQkkbmFtZXMgPSBhcnJheSgpOwoJCSR2YWx1ZXMgPSBhcnJheSgpOwoJCSRkYiA9ICR0aGlzLT5HZXREYigpOwoJCSRmYkZpZWxkID0gJHRoaXMtPkdldEZvcm1Ccm93c2VyRmllbGQoJGZvcm1faWQpOwoJCWlmICgkZmJGaWVsZCA9PSBmYWxzZSkKCQkJewoJCQkvLyBlcnJvciBoYW5kbGluZyBnb2VzIGhlcmUuCgkJCWVjaG8oJHRoaXMtPkxhbmcoJ2Vycm9yX2hhc19ub19mYl9maWVsZCcpKTsKCQkJfQoKCQkkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuCgkJCQkJJ21vZHVsZV9mYl9mb3JtYnJvd3NlciBXSEVSRSBmYnJfaWQ9PycsIGFycmF5KCRyZXNwb25zZV9pZCkpOwoKCQkkb25lc2V0ID0gbmV3IHN0ZENsYXNzKCk7CgkJaWYgKCRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKQoJCXsKCQkJJG9uZXNldC0+aWQgPSAkcm93WydmYnJfaWQnXTsKCQkJJG9uZXNldC0+dXNlcl9hcHByb3ZlZCA9IChlbXB0eSgkcm93Wyd1c2VyX2FwcHJvdmVkJ10pPycnOmRhdGUoJGRhdGVGbXQsJGRiLT5Vbml4VGltZVN0YW1wKCRyb3dbJ3VzZXJfYXBwcm92ZWQnXSkpKTsgCgkJCSRvbmVzZXQtPmFkbWluX2FwcHJvdmVkID0gKGVtcHR5KCRyb3dbJ2FkbWluX2FwcHJvdmVkJ10pPycnOmRhdGUoJGRhdGVGbXQsJGRiLT5Vbml4VGltZVN0YW1wKCRyb3dbJ2FkbWluX2FwcHJvdmVkJ10pKSk7CgkJCSRvbmVzZXQtPnN1Ym1pdHRlZCA9IGRhdGUoJGRhdGVGbXQsJGRiLT5Vbml4VGltZVN0YW1wKCRyb3dbJ3N1Ym1pdHRlZCddKSk7CgkJCSRvbmVzZXQtPnVzZXJfYXBwcm92ZWRfZGF0ZSA9IChlbXB0eSgkcm93Wyd1c2VyX2FwcHJvdmVkJ10pPycnOiRkYi0+VW5peFRpbWVTdGFtcCgkcm93Wyd1c2VyX2FwcHJvdmVkJ10pKTsgCgkJCSRvbmVzZXQtPmFkbWluX2FwcHJvdmVkX2RhdGUgPSAoZW1wdHkoJHJvd1snYWRtaW5fYXBwcm92ZWQnXSk/Jyc6JGRiLT5Vbml4VGltZVN0YW1wKCRyb3dbJ2FkbWluX2FwcHJvdmVkJ10pKTsKCQkJJG9uZXNldC0+c3VibWl0dGVkX2RhdGUgPSAkZGItPlVuaXhUaW1lU3RhbXAoJHJvd1snc3VibWl0dGVkJ10pOwoJCQkkb25lc2V0LT54bWwgPSAkcm93WydyZXNwb25zZSddOwoJCQkkb25lc2V0LT5maWVsZHMgPSBhcnJheSgpOwoJCQkkb25lc2V0LT5uYW1lcyA9IGFycmF5KCk7CgkJCSRvbmVzZXQtPmZpZWxkc2J5YWxpYXMgPSBhcnJheSgpOwoJCX0KCQkKCQkkcG9wdWxhdGVfbmFtZXMgPSB0cnVlOwoJCSR0aGlzLT5IYW5kbGVSZXNwb25zZUZyb21YTUwoJGZiRmllbGQsICRvbmVzZXQpOwoJCWxpc3QoJGZuYW1lcywgJGFsaWFzZXMsICR2YWxzKSA9ICR0aGlzLT5QYXJzZVJlc3BvbnNlWE1MKCRvbmVzZXQtPnhtbCk7CgoJCWZvcmVhY2ggKCRmbmFtZXMgYXMgJGlkPT4kbmFtZSkKCQkJewoJCQlpZiAoaXNzZXQoJGZpZWxkX2xpc3RbJGlkXSkgJiYgJGZpZWxkX2xpc3RbJGlkXSA+IC0xKQoJCQkJewoJCQkJJG9uZXNldC0+dmFsdWVzWyRmaWVsZF9saXN0WyRpZF1dPSR2YWxzWyRpZF07CgkJCQkkb25lc2V0LT5uYW1lc1skZmllbGRfbGlzdFskaWRdXT0kZm5hbWVzWyRpZF07CgkJCQl9CgkJCWlmIChpc3NldCgkYWxpYXNlc1skaWRdKSkKCQkJCXsKCQkJCSRvbmVzZXQtPmZpZWxkc2J5YWxpYXNbJGFsaWFzZXNbJGlkXV0gPSAkdmFsc1skaWRdOwoJCQkJfQoJCQl9CQkJCgkJcmV0dXJuICRvbmVzZXQ7Cgl9CgoJZnVuY3Rpb24gUGFyc2VSZXNwb25zZVhNTCgkeG1sc3RyLCAkaHVtYW5fcmVhZGFibGVfdmFsdWVzID0gdHJ1ZSkKCXsKCQkkbmFtZXMgPSBhcnJheSgpOwoJCSRhbGlhc2VzID0gYXJyYXkoKTsKCQkkdmFscyA9IGFycmF5KCk7CgkJJHhtbCA9IG5ldyBTaW1wbGVYTUxFbGVtZW50KCR4bWxzdHIpOwoJCWZvcmVhY2ggKCR4bWwtPmZpZWxkIGFzICR4bWxmaWVsZCkKCQkJewoJCQlpZiAoJGh1bWFuX3JlYWRhYmxlX3ZhbHVlcykKCQkJCXsKCQkJCWlmIChpc3NldCgkeG1sZmllbGRbJ2Rpc3BsYXlfaW5fc3VibWlzc2lvbiddKSAmJiAkeG1sZmllbGRbJ2Rpc3BsYXlfaW5fc3VibWlzc2lvbiddID09ICcxJykKCQkJCQl7CgkJCQkJJGlkID0gKGludCkkeG1sZmllbGRbJ2lkJ107CgkJCQkJJG5hbWVzWyRpZF0gPSAoKHN0cmluZykkeG1sZmllbGQtPmZpZWxkX25hbWUpOwoJCQkJCSR2YWxzWyRpZF0gPSAoKHN0cmluZykkeG1sZmllbGQtPmh1bWFuX3JlYWRhYmxlX3ZhbHVlKTsKCQkJCQlpZiAoaXNzZXQoJHhtbGZpZWxkLT5vcHRpb25zKSkKCQkJCQkJewoJCQkJCQlmb3JlYWNoICgkeG1sZmllbGQtPm9wdGlvbnMtPm9wdGlvbiBhcyAkdG8pCgkJCQkJCQl7CgkJCQkJCQlpZiAoJHRvWyduYW1lJ10gPT0gJ2ZpZWxkX2FsaWFzJykKCQkJCQkJCQl7CgkJCQkJCQkJJGFsaWFzZXNbJGlkXT0oKHN0cmluZykkdG8pOwoJCQkJCQkJCX0KCQkJCQkJCX0KCQkJCQkJfQoJCQkJCX0KCQkJCX0KCQkJZWxzZQoJCQkJewoJCQkJJGlkID0gKGludCkkeG1sZmllbGRbJ2lkJ107CgkJCQkkYXJyVHlwZXMgPSAkeG1sZmllbGQtPnhwYXRoKCdvcHRpb25zL3ZhbHVlJyk7IAoJCQkJaWYgKGNvdW50KCRhcnJUeXBlcykgPiAxKQoJCQkJCXsKCQkJCQkkdmFsc1skaWRdID0gYXJyYXkoKTsKCQkJCQlmb3JlYWNoKCRhcnJUeXBlcyBhcyAkdHYpCgkJCQkJCXsKCQkJCQkJYXJyYXlfcHVzaCgkdmFsc1skaWRdLChzdHJpbmcpJHR2KTsKCQkJCQkJfQoJCQkJCX0KCQkJCWVsc2UKCQkJCQl7CgkJCQkJJHZhbHNbJGlkXSA9IChzdHJpbmcpJHhtbGZpZWxkLT5vcHRpb25zLT52YWx1ZTsKCQkJCQl9CgkJCQl9CgkJCX0KCQlyZXR1cm4gYXJyYXkoJG5hbWVzLCAkYWxpYXNlcywgJHZhbHMpOwoJfQoKCglmdW5jdGlvbiBHZXRGb3JtQnJvd3NlckZpZWxkKCRmb3JtX2lkKQoJewoJCSRkYiA9ICR0aGlzLT5HZXREYigpOwoJCSRzcWwgPSAnU0VMRUNUICogRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGQgV0hFUkUgZm9ybV9pZD0/IGFuZCB0eXBlPT8nOwoJCSRycyA9ICR0aGlzLT5tb2R1bGVfcHRyLT5kYkhhbmRsZS0+RXhlY3V0ZSgkc3FsLCBhcnJheSgkZm9ybV9pZCwnRGlzcG9zaXRpb25Gb3JtQnJvd3NlcicpKTsKCQkkcmVzdWx0ID0gYXJyYXkoKTsKCQlpZiAoISAkcnMgfHwgJHJzLT5SZWNvcmRDb3VudCgpID09IDApCgkJCXsKCQkJcmV0dXJuIGZhbHNlOwoJCQl9CgkJJHRoaXNSZXMgPSAkcnMtPkdldEFycmF5KCk7CgkJJHBhcmFtcyA9IGFycmF5KCk7CgkJJGFlZm9ybSA9IG5ldyBmYkZvcm0oJHRoaXMsJHBhcmFtcyxmYWxzZSk7CgoJCSRjbGFzc05hbWUgPSAkYWVmb3JtLT5NYWtlQ2xhc3NOYW1lKCR0aGlzUmVzWzBdWyd0eXBlJ10sICcnKTsKCQkvLyBjcmVhdGUgdGhlIGZpZWxkIG9iamVjdAoJCSRmaWVsZCA9ICRhZWZvcm0tPk5ld0ZpZWxkKCR0aGlzUmVzWzBdKTsKCQlyZXR1cm4gJGZpZWxkOwkJCgl9CgkKCQoJZnVuY3Rpb24gSGFuZGxlUmVzcG9uc2VGcm9tWE1MKCYkZmJGaWVsZCwgJiRyZXNwb25zZU9iaikKCXsKCQkkY3J5cHQgPSAkZmJGaWVsZC0+R2V0T3B0aW9uKCdjcnlwdCcsJzAnKTsKCQlpZiAoJGNyeXB0ID09ICcxJykKCQkJewoJCQkkY3J5cHRsaWIgPSAkZmJGaWVsZC0+R2V0T3B0aW9uKCdjcnlwdF9saWInKTsKCQkJJGtleWZpbGUgPSAkZmJGaWVsZC0+R2V0T3B0aW9uKCdrZXlmaWxlJyk7CgkJCWlmICgkY3J5cHRsaWIgPT0gJ29wZW5zc2wnKQoJCQkJewoJCQkJJG9wZW5zc2wgPSAkdGhpcy0+R2V0TW9kdWxlSW5zdGFuY2UoJ09wZW5TU0wnKTsKCQkJCSRwa2V5ID0gJGZiRmllbGQtPkdldE9wdGlvbigncHJpdmF0ZV9rZXknKTsKCQkJCSRvcGVuc3NsLT5SZXNldCgpOwoJCQkJJG9wZW5zc2wtPmxvYWRfcHJpdmF0ZV9rZXlmaWxlKCRwa2V5LCRrZXlmaWxlKTsKCQkJCX0KCQkJZWxzZQoJCQkJewoJCQkJaWYgKGZpbGVfZXhpc3RzKCRrZXlmaWxlKSkKCQkJICAgIAl7CgkJCSAgICAgICAgJGtleWZpbGUgPSBmaWxlX2dldF9jb250ZW50cygka2V5ZmlsZSk7CgkJCSAgICAgICAgfQoJCQkJfQoJCQl9CgoJCWlmICgkY3J5cHQgPT0gJzEnKQoJCQl7CgkJCWlmICgkY3J5cHRsaWIgPT0gJ29wZW5zc2wnKQoJCQkJewoJCQkJJHJlc3BvbnNlT2JqLT54bWwgPSAkb3BlbnNzbC0+ZGVjcnlwdF9mcm9tX3BheWxvYWQoJHJlc3BvbnNlT2JqLT54bWwpOwoJCQkJaWYgKCRyZXNwb25zZU9iai0+eG1sID09IGZhbHNlKQoJCQkJCXsKCQkJCQlkZWJ1Z19kaXNwbGF5KCRvcGVuc3NsLT5vcGVuc3NsX2Vycm9ycygpKTsKCQkJCQl9CgkJCQl9CgkJCWVsc2UKCQkJCXsKCQkJCSRyZXNwb25zZU9iai0+eG1sID0gJHRoaXMtPmZiZGVjcnlwdCgkcmVzcG9uc2VPYmotPnhtbCwka2V5ZmlsZSk7CgkJCQl9CgkJCX0KCX0KCglmdW5jdGlvbiBHZXRTb3J0ZWRSZXNwb25zZXMoJGZvcm1faWQsICRzdGFydF9wb2ludCwgJG51bWJlcj0xMDAsICRhZG1pbl9hcHByb3ZlZD1mYWxzZSwgJHVzZXJfYXBwcm92ZWQ9ZmFsc2UsICRmaWVsZF9saXN0PWFycmF5KCksICRkYXRlRm10PSdkIEYgeScsICYkcGFyYW1zKQoJewoJCSRkYiA9ICR0aGlzLT5HZXREYigpOwoJCSRuYW1lcyA9IGFycmF5KCk7CgkJJHZhbHVlcyA9IGFycmF5KCk7CgkJJHNxbCA9ICdGUk9NICcuY21zX2RiX3ByZWZpeCgpLgoJCQkJJ21vZHVsZV9mYl9mb3JtYnJvd3NlciBXSEVSRSBmb3JtX2lkPT8nOwoJCWlmICgkdXNlcl9hcHByb3ZlZCkKCQl7CgkJCSRzcWwgLj0gJyBhbmQgdXNlcl9hcHByb3ZlZCBpcyBub3QgbnVsbCc7CgkJfQoJCWlmICgkYWRtaW5fYXBwcm92ZWQpCgkJewoJCQkkc3FsIC49ICcgYW5kIGFkbWluX2FwcHJvdmVkIGlzIG5vdCBudWxsJzsKCQl9CgkJaWYoICghIGVtcHR5KCRwYXJhbXNbJ2ZicnBfcmVzcG9uc2Vfc2VhcmNoJ10pKSAmJiAoaXNfYXJyYXkoJHBhcmFtc1snZmJycF9yZXNwb25zZV9zZWFyY2gnXSkpICkKCQl7CgkJCSRzcWwgLj0gJyBBTkQgcmVzcF9pZCBJTiAoJy4gaW1wbG9kZSgnLCcsICRwYXJhbXNbJ2ZicnBfcmVzcG9uc2Vfc2VhcmNoJ10pIC4nKSc7CgkJfQoJCWlmICghIGlzc2V0KCRwYXJhbXNbJ2ZicnBfc29ydF9maWVsZCddKSB8fCAkcGFyYW1zWydmYnJwX3NvcnRfZmllbGQnXT09J3N1Ym1pdGRhdGUnIHx8IGVtcHR5KCRwYXJhbXNbJ2ZicnBfc29ydF9maWVsZCddKSkKCQl7CgkJCWlmIChpc3NldCgkcGFyYW1zWydmYnJwX3NvcnRfZGlyJ10pICYmICRwYXJhbXNbJ2ZicnBfc29ydF9kaXInXSA9PSAnZCcpCgkJCXsKCQkJCSRzcWwgLj0gJyBvcmRlciBieSBzdWJtaXR0ZWQgZGVzYyc7CQoJCQl9CgkJCWVsc2UKCQkJewoJCQkJJHNxbCAuPSAnIG9yZGVyIGJ5IHN1Ym1pdHRlZCBhc2MnOwoJCQl9CgkJfQoJCWVsc2UgaWYgKGlzc2V0KCRwYXJhbXNbJ2ZicnBfc29ydF9maWVsZCddKSkKCQkJewoJCQlpZiAoaXNzZXQoJHBhcmFtc1snZmJycF9zb3J0X2RpciddKSAmJiAkcGFyYW1zWydmYnJwX3NvcnRfZGlyJ10gPT0gJ2QnKQoJCQkJewoJCQkJCSRzcWwgLj0gJyBvcmRlciBieSBpbmRleF9rZXlfJy4oaW50KSRwYXJhbXNbJ2ZicnBfc29ydF9maWVsZCddLicgZGVzYyc7CQoJCQkJfQoJCQkJZWxzZQoJCQkJewoJCQkJCSRzcWwgLj0gJyBvcmRlciBieSBpbmRleF9rZXlfJy4oaW50KSRwYXJhbXNbJ2ZicnBfc29ydF9maWVsZCddLicgYXNjJzsKCQkJCX0KCQkJfQoKCQkkZGJjb3VudCA9ICRkYi0+RXhlY3V0ZSgnU0VMRUNUIENPVU5UKCopIGFzIG51bSAnLiRzcWwsYXJyYXkoJGZvcm1faWQpKTsKCgkJJHJlY29yZHMgPSAwOwoJCWlmICgkZGJjb3VudCAmJiAkcm93ID0gJGRiY291bnQtPkZldGNoUm93KCkpCgkJewoJCQkkcmVjb3JkcyA9ICRyb3dbJ251bSddOwoJCX0KCgkJaWYgKCRudW1iZXIgPiAtMSkKCQkJewoJCQkkZGJyZXN1bHQgPSAkZGItPlNlbGVjdExpbWl0KCdTRUxFQ1QgKiAnLiRzcWwsICRudW1iZXIsICRzdGFydF9wb2ludCwgYXJyYXkoJGZvcm1faWQpKTsKCQkJfQoJCWVsc2UKCQkJewoJCQkkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJ1NFTEVDVCAqICcuJHNxbCwgYXJyYXkoJGZvcm1faWQpKTsJCgkJCX0KCQkJCgkJd2hpbGUgKCRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKQoJCXsKCQkJJG9uZXNldCA9IG5ldyBzdGRDbGFzcygpOwoJCQkkb25lc2V0LT5pZCA9ICRyb3dbJ2Zicl9pZCddOwoJCQkkb25lc2V0LT51c2VyX2FwcHJvdmVkID0gKGVtcHR5KCRyb3dbJ3VzZXJfYXBwcm92ZWQnXSk/Jyc6ZGF0ZSgkZGF0ZUZtdCwkZGItPlVuaXhUaW1lU3RhbXAoJHJvd1sndXNlcl9hcHByb3ZlZCddKSkpOyAKCQkJJG9uZXNldC0+YWRtaW5fYXBwcm92ZWQgPSAoZW1wdHkoJHJvd1snYWRtaW5fYXBwcm92ZWQnXSk/Jyc6ZGF0ZSgkZGF0ZUZtdCwkZGItPlVuaXhUaW1lU3RhbXAoJHJvd1snYWRtaW5fYXBwcm92ZWQnXSkpKTsgCgkJCSRvbmVzZXQtPnN1Ym1pdHRlZCA9IGRhdGUoJGRhdGVGbXQsJGRiLT5Vbml4VGltZVN0YW1wKCRyb3dbJ3N1Ym1pdHRlZCddKSk7CgkJCSRvbmVzZXQtPnVzZXJfYXBwcm92ZWRfZGF0ZSA9IChlbXB0eSgkcm93Wyd1c2VyX2FwcHJvdmVkJ10pPycnOiRkYi0+VW5peFRpbWVTdGFtcCgkcm93Wyd1c2VyX2FwcHJvdmVkJ10pKTsgCgkJCSRvbmVzZXQtPmFkbWluX2FwcHJvdmVkX2RhdGUgPSAoZW1wdHkoJHJvd1snYWRtaW5fYXBwcm92ZWQnXSk/Jyc6JGRiLT5Vbml4VGltZVN0YW1wKCRyb3dbJ2FkbWluX2FwcHJvdmVkJ10pKTsgCgkJCSRvbmVzZXQtPnN1Ym1pdHRlZF9kYXRlID0gJGRiLT5Vbml4VGltZVN0YW1wKCRyb3dbJ3N1Ym1pdHRlZCddKTsKCgkJCSRvbmVzZXQtPnhtbCA9ICRyb3dbJ3Jlc3BvbnNlJ107CgkJCSRvbmVzZXQtPmZpZWxkcyA9IGFycmF5KCk7CgkJCSRvbmVzZXQtPmZpZWxkc2J5YWxpYXMgPSBhcnJheSgpOwoJCQlhcnJheV9wdXNoKCR2YWx1ZXMsJG9uZXNldCk7CgkJfQoJCSRmYkZpZWxkID0gJHRoaXMtPkdldEZvcm1Ccm93c2VyRmllbGQoJGZvcm1faWQpOwoJCWlmICgkZmJGaWVsZCA9PSBmYWxzZSkKCQkJewoJCQkvLyBlcnJvciBoYW5kbGluZyBnb2VzIGhlcmUuCgkJCWVjaG8oJHRoaXMtPkxhbmcoJ2Vycm9yX2hhc19ub19mYl9maWVsZCcpKTsKCQkJfQoJCQoJCSRwb3B1bGF0ZV9uYW1lcyA9IHRydWU7CgkJJG1hcGZpZWxkcyA9IChjb3VudCgkZmllbGRfbGlzdCkgPiAwKTsKCQlmb3IgKCRpPTA7JGk8Y291bnQoJHZhbHVlcyk7JGkrKykKCQl7CgkJCSR0aGlzLT5IYW5kbGVSZXNwb25zZUZyb21YTUwoJGZiRmllbGQsICR2YWx1ZXNbJGldKTsKCQkJbGlzdCgkZm5hbWVzLCAkYWxpYXNlcywgJHZhbHMpID0gJHRoaXMtPlBhcnNlUmVzcG9uc2VYTUwoJHZhbHVlc1skaV0tPnhtbCk7CgkJCWZvcmVhY2ggKCRmbmFtZXMgYXMgJGlkPT4kbmFtZSkKCQkJCXsKCQkJCWlmICgkbWFwZmllbGRzKQoJCQkJCXsKCQkJCQlpZiAoaXNzZXQoJGZpZWxkX2xpc3RbJGlkXSkgJiYgJGZpZWxkX2xpc3RbJGlkXSA+IC0xKQoJCQkJCQl7CgkJCQkJCWlmICgkcG9wdWxhdGVfbmFtZXMpCgkJCQkJCQl7CgkJCQkJCQkkbmFtZXNbJGZpZWxkX2xpc3RbJGlkXV0gPSAkbmFtZTsKCQkJCQkJCX0KCQkJCQkJJHZhbHVlc1skaV0tPmZpZWxkc1skZmllbGRfbGlzdFskaWRdXT0kdmFsc1skaWRdOwoJCQkJCQl9CgkJCQkJaWYgKGlzc2V0KCRhbGlhc2VzWyRpZF0pKQoJCQkJCQl7CgkJCQkJCSR2YWx1ZXNbJGldLT5maWVsZHNieWFsaWFzWyRhbGlhc2VzWyRpZF1dID0gJHZhbHNbJGlkXTsKCQkJCQkJfQoJCQkJCX0KCQkJCWVsc2UKCQkJCQl7CgkJCQkJaWYgKCRwb3B1bGF0ZV9uYW1lcykKCQkJCQkJewoJCQkJCQkkbmFtZXNbJGlkXSA9ICRuYW1lOwoJCQkJCQl9CgkJCQkJJHZhbHVlc1skaV0tPmZpZWxkc1skaWRdPSR2YWxzWyRpZF07CgkJCQkJaWYgKGlzc2V0KCRhbGlhc2VzWyRpZF0pKQoJCQkJCQl7CgkJCQkJCSR2YWx1ZXNbJGldLT5maWVsZHNieWFsaWFzWyRhbGlhc2VzWyRpZF1dID0gJHZhbHNbJGlkXTsKCQkJCQkJfQoJCQkJCX0KCQkJCX0KCQkJJHBvcHVsYXRlX25hbWVzID0gZmFsc2U7CgkJfQoJCXJldHVybiBhcnJheSgkcmVjb3JkcywgJG5hbWVzLCAkdmFsdWVzKTsKCX0KCgkvLyB3cml0ZXMgYWxsIHJlY29yZHMgaW50byBhIGZsYXQgZmlsZS4KCWZ1bmN0aW9uIFdyaXRlU29ydGVkUmVzcG9uc2VzVG9GaWxlKCRmb3JtX2lkLCAkZmlsZXNwZWMsICRzdHJpcHRhZ3M9dHJ1ZSwgJGRhdGVGbXQ9J2QgRiB5JywgJiRwYXJhbXMpCgl7CgkJJGRiID0gJHRoaXMtPkdldERiKCk7CgkJJG5hbWVzID0gYXJyYXkoKTsKCQkkdmFsdWVzID0gYXJyYXkoKTsKCQkkc3FsID0gJ0ZST00gJy5jbXNfZGJfcHJlZml4KCkuCgkJCQknbW9kdWxlX2ZiX2Zvcm1icm93c2VyIFdIRVJFIGZvcm1faWQ9Pyc7CgoJCWlmICghIGlzc2V0KCRwYXJhbXNbJ2ZicnBfc29ydF9maWVsZCddKSB8fCAkcGFyYW1zWydmYnJwX3NvcnRfZmllbGQnXT09J3N1Ym1pdGRhdGUnIHx8IGVtcHR5KCRwYXJhbXNbJ2ZicnBfc29ydF9maWVsZCddKSkKCQl7CgkJCWlmIChpc3NldCgkcGFyYW1zWydmYnJwX3NvcnRfZGlyJ10pICYmICRwYXJhbXNbJ2ZicnBfc29ydF9kaXInXSA9PSAnZCcpCgkJCXsKCQkJCSRzcWwgLj0gJyBvcmRlciBieSBzdWJtaXR0ZWQgZGVzYyc7CQoJCQl9CgkJCWVsc2UKCQkJewoJCQkJJHNxbCAuPSAnIG9yZGVyIGJ5IHN1Ym1pdHRlZCBhc2MnOwoJCQl9CgkJfQoJCWVsc2UgaWYgKGlzc2V0KCRwYXJhbXNbJ2ZicnBfc29ydF9maWVsZCddKSkKCQkJewoJCQlpZiAoaXNzZXQoJHBhcmFtc1snZmJycF9zb3J0X2RpciddKSAmJiAkcGFyYW1zWydmYnJwX3NvcnRfZGlyJ10gPT0gJ2QnKQoJCQkJewoJCQkJCSRzcWwgLj0gJyBvcmRlciBieSBpbmRleF9rZXlfJy4oaW50KSRwYXJhbXNbJ2ZicnBfc29ydF9maWVsZCddLicgZGVzYyc7CQoJCQkJfQoJCQkJZWxzZQoJCQkJewoJCQkJCSRzcWwgLj0gJyBvcmRlciBieSBpbmRleF9rZXlfJy4oaW50KSRwYXJhbXNbJ2ZicnBfc29ydF9maWVsZCddLicgYXNjJzsKCQkJCX0KCQkJfQoKCQkkZmJGaWVsZCA9ICR0aGlzLT5HZXRGb3JtQnJvd3NlckZpZWxkKCRmb3JtX2lkKTsKCQlpZiAoJGZiRmllbGQgPT0gZmFsc2UpCgkJCXsKCQkJLy8gZXJyb3IgaGFuZGxpbmcgZ29lcyBoZXJlLgoJCQllY2hvKCR0aGlzLT5MYW5nKCdlcnJvcl9oYXNfbm9fZmJfZmllbGQnKSk7CgkJCX0KCgkJJGZoID0gZm9wZW4oJGZpbGVzcGVjLCAndysnKTsKCQlpZiAoJGZoID09PSBmYWxzZSkKCQkJewoJCQlyZXR1cm4gZmFsc2U7CgkJCX0KCgkJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCdTRUxFQ1QgKiAnLiRzcWwsIGFycmF5KCRmb3JtX2lkKSk7CQoJCQkKCQkkcG9wdWxhdGVfbmFtZXMgPSB0cnVlOwoJCXdoaWxlICgkZGJyZXN1bHQgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSkKCQl7CgkJCSRvbmVzZXQgPSBuZXcgc3RkQ2xhc3MoKTsKCQkJJG9uZXNldC0+aWQgPSAkcm93WydmYnJfaWQnXTsKCQkJJG9uZXNldC0+dXNlcl9hcHByb3ZlZCA9IChlbXB0eSgkcm93Wyd1c2VyX2FwcHJvdmVkJ10pPycnOmRhdGUoJGRhdGVGbXQsJGRiLT5Vbml4VGltZVN0YW1wKCRyb3dbJ3VzZXJfYXBwcm92ZWQnXSkpKTsgCgkJCSRvbmVzZXQtPmFkbWluX2FwcHJvdmVkID0gKGVtcHR5KCRyb3dbJ2FkbWluX2FwcHJvdmVkJ10pPycnOmRhdGUoJGRhdGVGbXQsJGRiLT5Vbml4VGltZVN0YW1wKCRyb3dbJ2FkbWluX2FwcHJvdmVkJ10pKSk7IAoJCQkkb25lc2V0LT5zdWJtaXR0ZWQgPSBkYXRlKCRkYXRlRm10LCRkYi0+VW5peFRpbWVTdGFtcCgkcm93WydzdWJtaXR0ZWQnXSkpOwoJCQkkb25lc2V0LT54bWwgPSAkcm93WydyZXNwb25zZSddOwoJCQkkdGhpcy0+SGFuZGxlUmVzcG9uc2VGcm9tWE1MKCRmYkZpZWxkLCAkb25lc2V0KTsKCQkJbGlzdCgkZm5hbWVzLCAkYWxpYXNlcywgJHZhbHMpID0gJHRoaXMtPlBhcnNlUmVzcG9uc2VYTUwoJG9uZXNldC0+eG1sKTsKCQkJaWYgKCRwb3B1bGF0ZV9uYW1lcykKCQkJCXsKCQkJCWlmICgkc3RyaXB0YWdzKQoJCSAgICAgICAgIAl7CgkJCQkJZm9yZWFjaCAoJGZuYW1lcyBhcyAkaWQ9PiRuYW1lKQoJCQkJCQl7CgkJICAgICAgICAgICAgCSRmbmFtZXNbJGldID0gc3RyaXBfdGFncygkZm5hbWVzWyRpXSk7CgkJICAgICAgICAgICAgCX0KCQkgICAgICAgICAJfQoJCQkJZnB1dHMgKCRmaCwgJHRoaXMtPkxhbmcoJ3RpdGxlX3N1Ym1pdF9kYXRlJykuIlx0Ii4KCQkJCQkkdGhpcy0+TGFuZygndGl0bGVfYXBwcm92YWxfZGF0ZScpLiJcdCIuCgkJCQkJJHRoaXMtPkxhbmcoJ3RpdGxlX3VzZXJfYXBwcm92ZWQnKS4iXHQiLgoJCQkJCWltcGxvZGUoIlx0IiwkZm5hbWVzKS4iXG4iKTsKCQkJCSRwb3B1bGF0ZV9uYW1lcyA9IGZhbHNlOwoJCQkJfQoJCQlmcHV0cyAoJGZoLCRvbmVzZXQtPnN1Ym1pdHRlZCAuICJcdCIpOwoJCQlmcHV0cyAoJGZoLCRvbmVzZXQtPmFkbWluX2FwcHJvdmVkIC4gIlx0Iik7CgkJCWZwdXRzICgkZmgsJG9uZXNldC0+dXNlcl9hcHByb3ZlZCAuICJcdCIpOwoJCQlmb3JlYWNoICgkdmFscyBhcyAkdHYpCgkJCQl7CgkJCQlpZiAoJHN0cmlwdGFncykKCSAgICAgICAgICAgICAgIHsKCSAgICAgICAgICAgICAgICR0diA9IHN0cmlwX3RhZ3MoJHR2KTsKCSAgICAgICAgICAgICAgIH0KCQkJCWZwdXRzICgkZmgscHJlZ19yZXBsYWNlKCcvW1xuXHRccl0vJywnICcsJHR2KSk7CgkJCQlmcHV0cyAoJGZoLCJcdCIpOwoJCQkJfQoJCQlmcHV0cygkZmgsIlxuIik7CgkJfQkJCQkJCgkJZmNsb3NlKCRmaCk7CgkJcmV0dXJuIHRydWU7Cgl9CgoKCglmdW5jdGlvbiBHZXRTb3J0YWJsZUZpZWxkcygkZm9ybV9pZCkKCXsKCQkkcmV0ID0gYXJyYXkoKTsKCQkkcGFybSA9IGFycmF5KCdmb3JtX2lkJz0+JGZvcm1faWQpOwoJCSRhZWZvcm0gPSBuZXcgZmJGb3JtKCR0aGlzLCAkcGFybSwgdHJ1ZSk7CgkJJGZiRmllbGQgPSAkYWVmb3JtLT5HZXRGb3JtQnJvd3NlckZpZWxkKCk7CgkJaWYgKCRmYkZpZWxkID09IGZhbHNlKQoJCQl7CgkJCS8vIGVycm9yIGhhbmRsaW5nIGdvZXMgaGVyZS4KCQkJcmV0dXJuICRyZXQ7CQoJCQl9CgkJcmV0dXJuICRmYkZpZWxkLT5nZXRTb3J0RmllbGRMaXN0KCk7Cgl9CgogIGZ1bmN0aW9uIGdldEZFVUlERnJvbVJlc3BvbnNlSUQoJHJlc3BvbnNlX2lkKQoJewoJJGRiID0gJHRoaXMtPkdldERiKCk7CiAgICAkc3FsID0gJ1NFTEVDVCBmZXVpZCBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkuCiAgICAgICdtb2R1bGVfZmJfZm9ybWJyb3dzZXIgd2hlcmUgZmJyX2lkPT8nOwogICAgaWYoJHJlc3VsdCA9ICRkYi0+R2V0Um93KCRzcWwsIGFycmF5KCRyZXNwb25zZV9pZCkpKQogICAgICB7CgkgICAgcmV0dXJuICRyZXN1bHRbJ2ZldWlkJ107CiAgICAgIH0KICAgIHJldHVybiAtMTsKCX0KCiAgZnVuY3Rpb24gZ2V0UmVzcG9uc2VJREZyb21GRVVJRCgkZmV1X2lkKQoJewoJJGRiID0gJHRoaXMtPkdldERiKCk7CiAgICAkc3FsID0gJ1NFTEVDVCBmYnJfaWQgRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpLgogICAgICAnbW9kdWxlX2ZiX2Zvcm1icm93c2VyIHdoZXJlIGZldWlkPT8nOwogICAgaWYoJHJlc3VsdCA9ICRkYi0+R2V0Um93KCRzcWwsIGFycmF5KCRmZXVfaWQpKSkKICAgICAgewoJICAgIHJldHVybiAkcmVzdWx0WydmYnJfaWQnXTsKICAgICAgfQogICAgcmV0dXJuIGZhbHNlOwogCX0KCglmdW5jdGlvbiBmaWVsZF9zb3J0ZXJfYXNjKCRhLCAkYikKCXsKCQlyZXR1cm4gc3RyY2FzZWNtcCgkYS0+ZmllbGRzWyRhLT5zZl0sICRiLT5maWVsZHNbJGItPnNmXSk7Cgl9CgoJZnVuY3Rpb24gZmllbGRfc29ydGVyX2Rlc2MoJGEsICRiKQoJewoJCXJldHVybiBzdHJjYXNlY21wKCRiLT5maWVsZHNbJGItPnNmXSwgJGEtPmZpZWxkc1skYS0+c2ZdKTsKCX0KCgkKCS8vIEZvciBhIGdpdmVuIGZvcm0sIHJldHVybnMgYW4gYXJyYXkgb2YgcmVzcG9uc2Ugb2JqZWN0cwoJZnVuY3Rpb24gTGlzdFJlc3BvbnNlcygkZm9ybV9pZCwgJHNvcnRfb3JkZXI9J3N1Ym1pdHRlZCcpCgl7CgkJJGRiID0gJHRoaXMtPkdldERiKCk7CgkJJHJldCA9IGFycmF5KCk7CgkJJHNxbCA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLgoJCQkJJ21vZHVsZV9mYl9yZXNwIFdIRVJFIGZvcm1faWQ9PyBPUkRFUiBCWSA/JzsKCQkkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkZm9ybV9pZCwkc29ydF9vcmRlcikpOwoJCXdoaWxlICgkZGJyZXN1bHQgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSkKCQl7CgkJCSRvbmVzZXQgPSBuZXcgc3RkQ2xhc3MoKTsKCQkJJG9uZXNldC0+aWQgPSAkcmVzdWx0WydyZXNwX2lkJ107CgkJCSRvbmVzZXQtPnVzZXJfYXBwcm92ZWQgPSAkZGItPlVuaXhUaW1lU3RhbXAoJHJlc3VsdFsndXNlcl9hcHByb3ZlZCddKTsgCgkJCSRvbmVzZXQtPmFkbWluX2FwcHJvdmVkID0gJGRiLT5Vbml4VGltZVN0YW1wKCRyZXN1bHRbJ2FkbWluX2FwcHJvdmVkJ10pOyAKCQkJJG9uZXNldC0+c3VibWl0dGVkID0gJGRiLT5Vbml4VGltZVN0YW1wKCRyZXN1bHRbJ3N1Ym1pdHRlZCddKTsgCgkJCWFycmF5X3B1c2goJHJldCwkb25lc2V0KTsKCQl9CgkJcmV0dXJuICRyZXQ7Cgl9CgoJZnVuY3Rpb24gZGVmKCYkdmFyKQoJewoJCWlmICghaXNzZXQoJHZhcikpCgkJewoJCQlyZXR1cm4gZmFsc2U7CgkJfQoJCWVsc2UgaWYgKGlzX251bGwoJHZhcikpCgkJewoJCQlyZXR1cm4gZmFsc2U7CgkJfQoJCWVsc2UgaWYgKCFpc19hcnJheSgkdmFyKSAmJiBlbXB0eSgkdmFyKSkKCQl7CgkJCXJldHVybiBmYWxzZTsKCQl9CgkJZWxzZSBpZiAoaXNfYXJyYXkoJHZhcikgJiYgY291bnQoJHZhcikgPT0gMCkKCQl7CgkJCXJldHVybiBmYWxzZTsKCQl9CgkJcmV0dXJuIHRydWU7Cgl9CgoJZnVuY3Rpb24gQ2xlYXJGaWxlTG9jaygpCgl7CgkJJGRiID0gJHRoaXMtPkdldERiKCk7CgkJJHNxbCA9ICJERUxFVEUgZnJvbSAiLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zsb2NrJzsKCQkkcnMgPSAkZGItPkV4ZWN1dGUoJHNxbCk7Cgl9CgoJZnVuY3Rpb24gR2V0RmlsZUxvY2soKQoJewoJCSRkYiA9ICR0aGlzLT5HZXREYigpOwoJCSRzcWwgPSAiaW5zZXJ0IGludG8gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mYl9mbG9jayAoZmxvY2tfaWQsIGZsb2NrKSB2YWx1ZXMgKDEsIi4kZGItPnN5c1RpbWVTdGFtcC4iKSI7CgkJJHJzID0gJGRiLT5FeGVjdXRlKCRzcWwpOwoJCWlmICgkcnMpCgkJewoJCQlyZXR1cm4gdHJ1ZTsKCQl9CgkJJHNxbCA9ICJTRUxFQ1QgZmxvY2tfaWQgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4KCQkJCSJtb2R1bGVfZmJfZmxvY2sgd2hlcmUgZmxvY2sgKyBpbnRlcnZhbCAxNSBzZWNvbmQgPCAiLiRkYi0+c3lzVGltZVN0YW1wOwoJCSRycyA9ICRkYi0+RXhlY3V0ZSgkc3FsKTsKCQlpZiAoJHJzICYmICRycy0+UmVjb3JkQ291bnQoKSA+IDApCgkJewoJCQkkdGhpcy0+Q2xlYXJGaWxlTG9jaygpOwoJCQlyZXR1cm4gZmFsc2U7CgkJfQoJCXJldHVybiBmYWxzZTsKCX0KCglmdW5jdGlvbiBSZXR1cm5GaWxlTG9jaygpCgl7CgkJJHRoaXMtPkNsZWFyRmlsZUxvY2soKTsKCX0KCglmdW5jdGlvbiBHZXRFdmVudERlc2NyaXB0aW9uICggJGV2ZW50bmFtZSApCgl7CgkJcmV0dXJuICR0aGlzLT5MYW5nKCdldmVudF9pbmZvXycuJGV2ZW50bmFtZSApOwoJfQoKCWZ1bmN0aW9uIEdldEV2ZW50SGVscCAoICRldmVudG5hbWUgKQoJewoJCXJldHVybiAkdGhpcy0+TGFuZygnZXZlbnRfaGVscF8nLiRldmVudG5hbWUgKTsKCX0KCglmdW5jdGlvbiBDcmVhdGVQYWdlRHJvcGRvd24oJGlkLCRuYW1lLCRjdXJyZW50PScnLAoJCQkJCQkJCSRhZGR0ZXh0PScnLCRtYXJrZGVmYXVsdCA9dHJ1ZSkKCXsKICAgICAgZ2xvYmFsICRnQ21zOwoJCS8vIHdlIGdldCBoZXJlIChob3BlZnVsbHkpIHdoZW4gdGhlIHRlbXBsYXRlIGlzIGNoYW5nZWQKCQkvLyBpbiB0aGUgZHJvcGRvd24uCgkJJGRiID0gJHRoaXMtPkdldERiKCk7CgkJJGRlZmF1bHRpZCA9ICcnOwoJCWlmKCAkbWFya2RlZmF1bHQgKQoJCXsKCQkJJGNvbnRlbnRvcHMgPSAkZ0Ntcy0+R2V0Q29udGVudE9wZXJhdGlvbnMoKTsKCQkJJGRlZmF1bHRpZCA9ICRjb250ZW50b3BzLT5HZXREZWZhdWx0UGFnZUlEKCk7CgkJfQoJCQoJCS8vIGdldCBhIGxpc3Qgb2YgdGhlIHBhZ2VzIHVzZWQgYnkgdGhpcyB0ZW1wbGF0ZQoJCSRteXBhZ2VzID0gYXJyYXkoKTsKCgkJaWYgKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdtbGVfdmVyc2lvbicsJzAnKSA9PSAnMScpCgkJCXsKCQkJZ2xvYmFsICRtbGVibG9jazsKCQkJJHEgPSAiU0VMRUNUIGNvbnRlbnRfaWQsY29udGVudF9uYW1lJG1sZWJsb2NrIGFzIGNvbnRlbnRfbmFtZSBGUk9NICIuCgkJCQljbXNfZGJfcHJlZml4KCkuImNvbnRlbnQgV0hFUkUgdHlwZSA9ID8gQU5EIGFjdGl2ZSA9IDEiOwkKCQkJfQoJCWVsc2UKCQkJewoJCQkkcSA9ICJTRUxFQ1QgY29udGVudF9pZCxjb250ZW50X25hbWUgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4KCQkJCSJjb250ZW50IFdIRVJFIHR5cGUgPSA/IEFORCBhY3RpdmUgPSAxIjsKCQkJfQoJCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSggJHEsIGFycmF5KCdjb250ZW50JykgKTsKCQl3aGlsZSggJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSApCgkJewoJCQlpZiggJGRlZmF1bHRpZCAhPSAnJyAmJiAkcm93Wydjb250ZW50X2lkJ10gPT0gJGRlZmF1bHRpZCApCgkJCXsKCQkJCS8vIHVzZSBhIHN0YXIgaW5zdGVhZCBvZiBhIHdvcmQgaGVyZSBzbyBJIGRvbid0IGhhdmUgdG8KCQkJCS8vIHdvcnJ5IGFib3V0IHRyYW5zbGF0aW9uIHN0dWZmCgkJCQkkbXlwYWdlc1skcm93Wydjb250ZW50X25hbWUnXS4nICgqKSddID0gJHJvd1snY29udGVudF9pZCddOwoJCQl9CgkJCWVsc2UKCQkJewoJCQkJJG15cGFnZXNbJHJvd1snY29udGVudF9uYW1lJ11dID0gJHJvd1snY29udGVudF9pZCddOwoJCQl9CgkJfQoJCXJldHVybiAkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsJ2ZicnBfJy4kbmFtZSwkbXlwYWdlcywtMSwkY3VycmVudCwkYWRkdGV4dCk7Cgl9CgoJZnVuY3Rpb24gU3VwcHJlc3NBZG1pbk91dHB1dCgmJHJlcXVlc3QpCgl7CgkJaWYgKGlzc2V0KCRfU0VSVkVSWydRVUVSWV9TVFJJTkcnXSkgJiYgc3RycG9zKCRfU0VSVkVSWydRVUVSWV9TVFJJTkcnXSwnZXhwb3J0eG1sJykgIT09IGZhbHNlKQoJCXsKCQkJcmV0dXJuIHRydWU7CgkJfQoJCWVsc2VpZiAoaXNzZXQoJF9TRVJWRVJbJ1FVRVJZX1NUUklORyddKSAmJiBzdHJwb3MoJF9TRVJWRVJbJ1FVRVJZX1NUUklORyddLCdhZG1pbl9nZXRfdGVtcGxhdGUnKSAhPT0gZmFsc2UpCgkJewoJCQlyZXR1cm4gdHJ1ZTsKCQl9CgkJcmV0dXJuIGZhbHNlOwoJfQoKICAgZnVuY3Rpb24gY3J5cHQoJHN0cmluZywgJGRpc3Bvc2l0aW9uRmllbGQpCiAgIHsKICAgaWYgKCRkaXNwb3NpdGlvbkZpZWxkLT5HZXRPcHRpb24oJ2NyeXB0X2xpYicpID09ICdvcGVuc3NsJykKICAgICAgewoJICAgJG9wZW5zc2wgPSAkdGhpcy0+R2V0TW9kdWxlSW5zdGFuY2UoJ09wZW5TU0wnKTsKCSAgIGlmICgkb3BlbnNzbCA9PT0gRkFMU0UpCgkJICAgIHsKCQkgICAgcmV0dXJuIGFycmF5KGZhbHNlLCR0aGlzLT5MYW5nKCd0aXRsZV9pbnN0YWxsX29wZW5zc2wnKSk7CgkJICAgIH0KCSAgICRvcGVuc3NsLT5SZXNldCgpOwoJICAgaWYgKCEgJG9wZW5zc2wtPmxvYWRfY2VydGlmaWNhdGUoJGRpc3Bvc2l0aW9uRmllbGQtPkdldE9wdGlvbignY3J5cHRfY2VydCcpKSkKCQkgICB7CgkJICAgcmV0dXJuIGFycmF5KGZhbHNlLCRvcGVuc3NsLT5vcGVuc3NsX2Vycm9ycygpKTsKCQkgICB9CgkgICAkZW5jID0gJG9wZW5zc2wtPmVuY3J5cHRfdG9fcGF5bG9hZCgkc3RyaW5nKTsKCSAgIH0KICAgIGVsc2UKICAgICAgewogICAgICAka2YgPSAkZGlzcG9zaXRpb25GaWVsZC0+R2V0T3B0aW9uKCdrZXlmaWxlJyk7CiAgICAgIGlmIChmaWxlX2V4aXN0cygka2YpKQogICAgICAgICB7CiAgICAgICAgICRrZXkgPSBmaWxlX2dldF9jb250ZW50cygka2YpOwogICAgICAgICB9CiAgICAgIGVsc2UKICAgICAgICAgewogICAgICAgICAka2V5ID0gJGtmOwogICAgICAgICB9CiAgICAgICRlbmMgPSAkdGhpcy0+ZmJlbmNyeXB0KCRzdHJpbmcsJGtleSk7CiAgICAgIH0KICAgIHJldHVybiBhcnJheSh0cnVlLCRlbmMpOwogICB9CgoKICBmdW5jdGlvbiBnZXRIYXNoZWRTb3J0RmllbGRWYWwoJHZhbCkKCXsKCWlmIChzdHJsZW4oJHZhbCkgPiA0KQoJCXsKCQkkdmFsID0gc3Vic3RyKCR2YWwsMCw0KS4gbWQ1KHN1YnN0cigkdmFsLDQpKTsKCQl9CglyZXR1cm4gJHZhbDsKCX0KICAgCglmdW5jdGlvbiBHZXRBY3RpdmVUYWIoJiRwYXJhbXMpCgkJewoJCWlmIChGQUxTRSA9PSBlbXB0eSgkcGFyYW1zWydhY3RpdmVfdGFiJ10pKQoJCQl7CgkJICAgIHJldHVybiAkcGFyYW1zWydhY3RpdmVfdGFiJ107CgkJICAJfQoJCWVsc2UKCQkJewoJCQlyZXR1cm4gJ21haW50YWInOwoJCQl9Cgl9CiAgCiAgIGZ1bmN0aW9uIGZiZW5jcnlwdCgkc3RyaW5nLCRrZXkpCiAgICAgIHsKICAgICAgJGtleSA9IHN1YnN0cihtZDUoJGtleSksMCwyNCk7CiAgICAgICR0ZCA9IG1jcnlwdF9tb2R1bGVfb3BlbiAoJ3RyaXBsZWRlcycsICcnLCAnZWNiJywgJycpOwogICAgICAkaXYgPSBtY3J5cHRfY3JlYXRlX2l2IChtY3J5cHRfZW5jX2dldF9pdl9zaXplICgkdGQpLCBNQ1JZUFRfUkFORCk7CiAgICAgIG1jcnlwdF9nZW5lcmljX2luaXQgKCR0ZCwgJGtleSwgJGl2KTsKICAgICAgJGVuYyA9IGJhc2U2NF9lbmNvZGUobWNyeXB0X2dlbmVyaWMgKCR0ZCwgJHN0cmluZykpOwogICAgICBtY3J5cHRfZ2VuZXJpY19kZWluaXQgKCR0ZCk7CiAgICAgIG1jcnlwdF9tb2R1bGVfY2xvc2UgKCR0ZCk7CiAgICAgIHJldHVybiAkZW5jOwogICAgICB9CgogICBmdW5jdGlvbiBmYmRlY3J5cHQoJGNyeXB0LCRrZXkpCiAgICAgIHsKICAgICAgJGNyeXB0ID0gYmFzZTY0X2RlY29kZSgkY3J5cHQpOwogICAgICAkdGQgPSBtY3J5cHRfbW9kdWxlX29wZW4gKCd0cmlwbGVkZXMnLCAnJywgJ2VjYicsICcnKTsKICAgICAgJGtleSA9IHN1YnN0cihtZDUoJGtleSksMCwyNCk7CiAgICAgICRpdiA9IG1jcnlwdF9jcmVhdGVfaXYgKG1jcnlwdF9lbmNfZ2V0X2l2X3NpemUgKCR0ZCksIE1DUllQVF9SQU5EKTsKICAgICAgbWNyeXB0X2dlbmVyaWNfaW5pdCAoJHRkLCAka2V5LCAkaXYpOwogICAgICAkcGxhaW4gPSBtZGVjcnlwdF9nZW5lcmljICgkdGQsICRjcnlwdCk7CiAgICAgIG1jcnlwdF9nZW5lcmljX2RlaW5pdCAoJHRkKTsKICAgICAgbWNyeXB0X21vZHVsZV9jbG9zZSAoJHRkKTsKICAgICAgcmV0dXJuICRwbGFpbjsKICAgICAgfQoKICBmdW5jdGlvbiBmYkNyZWF0ZUlucHV0VGV4dCgkaWQsICRuYW1lLCAkdmFsdWU9JycsICRzaXplPScxMCcsICRtYXhsZW5ndGg9JzI1NScsICRhZGR0dGV4dD0nJywgJHR5cGU9J3RleHQnKQoJewogIAkkdmFsdWUgPSBjbXNfaHRtbGVudGl0aWVzKCR2YWx1ZSk7CiAgCSRpZCA9IGNtc19odG1sZW50aXRpZXMoJGlkKTsKICAJJG5hbWUgPSBjbXNfaHRtbGVudGl0aWVzKCRuYW1lKTsKICAJJHNpemUgPSBjbXNfaHRtbGVudGl0aWVzKCRzaXplKTsKICAJJG1heGxlbmd0aCA9IGNtc19odG1sZW50aXRpZXMoJG1heGxlbmd0aCk7CgogIAkkdmFsdWUgPSBzdHJfcmVwbGFjZSgnIicsICcmcXVvdDsnLCAkdmFsdWUpOwoKICAJJHRleHQgPSAnPGlucHV0IHR5cGU9IicuJHR5cGUuJyIgbmFtZT0iJy4kaWQuJG5hbWUuJyIgdmFsdWU9IicuJHZhbHVlLiciIHNpemU9IicuJHNpemUuJyIgbWF4bGVuZ3RoPSInLiRtYXhsZW5ndGguJyInOwogIAlpZiAoJGFkZHR0ZXh0ICE9ICcnKQogICAgCXsKICAgICAgCSR0ZXh0IC49ICcgJyAuICRhZGR0dGV4dDsKICAgIAl9CiAgCSR0ZXh0IC49ICIgLz5cbiI7CiAgCXJldHVybiAkdGV4dDsKCX0KCglmdW5jdGlvbiBmYkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJG5hbWUsICR2YWx1ZT0nJywgJGFkZHR0ZXh0PScnLCAkaW1hZ2U9JycsICRjb25maXJtdGV4dD0nJykKCXsKCSAgJGlkID0gY21zX2h0bWxlbnRpdGllcygkaWQpOwoJICAkbmFtZSA9IGNtc19odG1sZW50aXRpZXMoJG5hbWUpOwoJICAkaW1hZ2UgPSBjbXNfaHRtbGVudGl0aWVzKCRpbWFnZSk7CgkJZ2xvYmFsICRnQ21zOwoJCSRjb25maWcgPSAkZ0Ntcy0+R2V0Q29uZmlnKCk7CgkJJHRleHQgPSAnPGlucHV0IG5hbWU9IicuJGlkLiRuYW1lLiciIHZhbHVlPSInLiR2YWx1ZS4nIiB0eXBlPSc7CgkJaWYgKCRpbWFnZSAhPSAnJykKCQl7CgkJCSR0ZXh0IC49ICciaW1hZ2UiJzsKCQkJJGltZyA9ICRjb25maWdbJ3Jvb3RfdXJsJ10gLiAnLycgLiAkaW1hZ2U7CgkJCSR0ZXh0IC49ICcgc3JjPSInLiRpbWcuJyInOwoJCX0KCQllbHNlCgkJewoJCQkkdGV4dCAuPSAnInN1Ym1pdCInOwoJCX0KCQlpZiAoJGNvbmZpcm10ZXh0ICE9ICcnICkKCQkgIHsKCQkJJHRleHQgLj0gJyBvbmNsaWNrPSJyZXR1cm4gY29uZmlybShcJycuJGNvbmZpcm10ZXh0LidcJyk7Iic7CgkJICB9CgkJaWYgKCRhZGR0dGV4dCAhPSAnJykKCQl7CgkJCSR0ZXh0IC49ICcgJy4kYWRkdHRleHQ7CgkJfQoJCSR0ZXh0IC49ICcgLz4nOwoJCXJldHVybiAkdGV4dCAuICJcbiI7Cgl9CgoKICBmdW5jdGlvbiBEZWxldGVGcm9tU2VhcmNoSW5kZXgoJiRwYXJhbXMpCgl7CgkJJGFlZm9ybSA9IG5ldyBmYkZvcm0oJHRoaXMsICRwYXJhbXMsIHRydWUpOwoJCQoJCS8vIGZpbmQgYnJvd3NlcnMga2V5ZWQgdG8gdGhpcwoJCSRicm93c2VycyA9ICRhZWZvcm0tPkdldEZvcm1Ccm93c2Vyc0ZvckZvcm0oKTsKCQlpZiAoY291bnQoJGJyb3dzZXJzKSA8IDEpCgkJCXsKCQkJcmV0dXJuOwoJCQl9CgoJCSRtb2R1bGUgPSYgJHRoaXMtPm1vZHVsZV9wdHItPkdldE1vZHVsZUluc3RhbmNlKCdTZWFyY2gnKTsKCSAgICBpZiAoJG1vZHVsZSAhPSBGQUxTRSkKCSAgICAgIHsKCQkJZm9yZWFjaCAoJGJyb3dzZXJzIGFzICR0aGlzQnJvd3NlcikKCQkJCXsKCQkJCSRtb2R1bGUtPkRlbGV0ZVdvcmRzKCAnRm9ybUJyb3dzZXInLCAkcGFyYW1zWydyZXNwb25zZV9pZCddLCAnc3ViXycuJHRoaXNCcm93c2VyKTsJCgkJCQl9CgkgICAgICB9CQkKCX0KCgoKCn0gLy8gRW5kIG9mIENsYXNzCgojIHZpbTp0cz00IHN3PTQgbm9ldAo/Pg==]]></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>/images/info-large.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhFAAUAOZoAHm4/367/326/3q4/3W2/3e3/3u5/3O1/////ozB/Hy6/67U/Xi3/+bx/n+6/Hy5/3a3/3a2/+Hv/vT5/oS+/1ak/W6y/qvR/e31/2Cq/mSr/Fil/H66/2Cp/GSs/GWt/nKz/IrA/Guv/JDE//j7/4C6/Pr8/3O1/t7t/lal/Wqv/pHE/Guw/mSs/lel/GSt/t/u/l6p/FWk/Fyn/Ie+/Nnr/vf7/2Gr/ff6/2yx/lWk/Xi4/1im/b7c/ZDD/OXx/qbP/WGq/bnZ/VGi/KPN/Wiu/n65/IG7/KXP/4jA/3K0/+v0/nW1/5zL/3S1/4zC//L4/rva/myx/6vS/tbp/rzb/4G8//r8/vz+/qnR/5/M/9vs/rXX/+71/oa//3S2/9Pn/pLF/+jy/orB/63U/5rJ/3K1/3q5/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAGgALAAAAAAUABQAAAf/gGiCgxhCKyVGIRcwg42NPSIyNyosLxUdRDaOgjhHOhEBAgpnCgEDQR4ojiYgRQEGAAAEAhAAAwEnGxKNPi0BsbJcS1FMsQIHGiSCNUO/sQwFYghUTsABGUBoDTQWD8AABWFTXgXAAwMxDQszsN8HEBTl3wEpCwkuHN8FTRITFLXABHxI4ICHM1kjfmCZYEVerAc5HBQ8uMMAhQk/GDD4BtHBvXzACIxBAEZKhG8CE6xrF+tAGQRVsmj5Yq3etm7AlJBBAKXLCAKxzqVDw+ygGSRXtiQ5YA3boF4HDTyRFRCZMkGsXMHaQWCjLVy6HHX6FEqBAgGmUKnahAaSJEqWDDBpYiuo0KFEizYFAgA7]]></data>
	</file>
	<file>
	  <filename>/images/info-small.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhDAAMAOZNAHm4/3W2/3y6/367/3e3/326/3u5/3+7/3i4/4a+/XO1/4S9/fP5/3+6/Hq4/3a2/+/3/u31/5vJ/Y/D/WKq/bLW/7XX/XK0/2at/GWt/t7u/mSs/Mbg/s/m/tXo/pHE/cni/qHM/YjA/5TG/Wyx/pDD/abP/W2x/mKr/YnA/9rr/oS+/6fQ/97t/m2x/4e//3G0/43C/2+y/na3/8vj/szk/o/D/325/JrJ/efy/m2y/4e+/Yi//c7l/nS1/4m//dnr/sLe/rbY/WKs/bnZ/cji/+Lw/qvS/YC7/5LF//j7/2au/nCz/v///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAE0ALAAAAAAMAAwAAAeAgE2CDEILNyFGgopBGwEIPgQoOIo0GQcIKRVIBQElTQwYBwAKLBAvBAVLHhYyBgAEAjYPAAACIzsBDgQrGkAXtAMJCw8OAAFFNTrACUdMrjAdPUkBtRMRFKIKKjkxMwIuIE1EJAMIIgMBBQANiiZDBgYFAicNSopNLRI/PB8cioEAOw==]]></data>
	</file>
	<file>
	  <filename>/images/stop.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhFAAUAOZ/AI0AAJQAAf36+tsCFP729/79/deRlPujq8tydO1zfd2Xm+QFGvzBx65NTaMAAe4OJdoAC/bp6ecPI/V6hv4qQPHg4eQAFP4sQv7q7KkAA9oABsmKivo4Tfe4va4DDPkiOdurrPESKf4nPf8oP+EADfvx8vrl570ABbEAA//M0Z0nJ5kAAf3u78QABcgADP0kO/OXn6tHR54eH/YgNp4AAfUYL+/c3ORVYdaKjv3i5bweKPyqs/cnPf1NYPomPcImMK4/P9UAA/Lc3f10guMcLumQlv/u8LZBRbVPULtSVfbCxvjf4fLJzP3m6NWXmMNGTs9IUeG5utpJV/rIzfxse9+2tu4RJ/ZSY/5QYv1fb8VvcdRucv7p68FSVu6bofRib74FEukJIPUbMv8jOuAsPejLy70lL7YACOTBweUyQ+8bMP7k5+9DU8AeKd4YKtY9SOvV1e/S0+zX1/GTmvSXn+9hcOptdcA2PPbs7PabpPyWof5xgP53hf/+/v///////yH5BAEAAH8ALAAAAAAUABQAAAf/gH+Cgn5rO3tYPVQHOX6Dj4IYfBQiFJQfNSFfTZCCKRcjFC8UHBwzIVZhCx2QKWMXF1kMXAQEGAxsFgskrIJGoRcvep0FdCQWECZ/fkMfPh88NQeOkDAaLlJ+GGIzVxMhamF51IN9by4tSzsPD1N+EwsSFjDkgkwnJ0V1YRIsf30JSCyAMKdeCTAnoKRZQISAIIAaBmgoOEhAmzM/yAxw4/ChnSAuUCigJkAHCjM3IAzwV26LAw8ZRv4pAfOJFw0alEDqg8BBBgcK/sRx4ACHiRYn7vTZiYCGAxoGujwV4ifJihVOOvFcQYPriiNLIwRYEcBJAUh+tFwlW2FQFAABMQIAQYNHgIAIZZDEBQACUhUAgOHKkBEgMN96gio0MGw4ho1O5eRsiKFCRYwNcM4+CgQAOw==]]></data>
	</file>
	<file>
	  <filename>/includes/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/includes/admin.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[dGFibGUubW9kdWxlX2ZiX3RhYmxlIHtmb250LXNpemU6IDEwcHg7IHdpZHRoOjYwMHB4OyBtYXJnaW46IDA7fQoubW9kdWxlX2ZiX2FyZWFfd2lkZSB7d2lkdGg6IDUwMHB4O30KLm1vZHVsZV9mYl9sZWdlbmR7Zm9udC1zaXplOiA5cHg7IG1hcmdpbjogNnB4OyBib3JkZXI6IDFweCBzb2xpZCBibGFjazt9Ci5tb2R1bGVfZmJfYXJlYV9zaG9ydCB7d2lkdGg6IDUwMHB4OyBoZWlnaHQ6IDEwMHB4O30KLm1vZHVsZV9mYl9saW5rIHt0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTt9Ci5tb2R1bGVfZmJfZmllbGRzZXQge21hcmdpbi1ib3R0b206MmVtO30KLm1vZHVsZV9mYnJfdGFibGUgdHIucm93MTpob3ZlciwgLm1vZHVsZV9mYnJfdGFibGUgdHIucm93Mjpob3ZlcntiYWNrZ3JvdW5kOiAjQ0NEQkREO30KLm9kZCB7YmFja2dyb3VuZC1jb2xvcjogI2ZmZjt0ZXh0LWFsaWduOmxlZnQ7dmVydGljYWwtYWxpZ25tZW50OiB0b3A7fQouZXZlbiB7YmFja2dyb3VuZC1jb2xvcjogI2RkZDt0ZXh0LWFsaWduOmxlZnQ7dmVydGljYWwtYWxpZ25tZW50OiB0b3A7fQ==]]></data>
	</file>
	<file>
	  <filename>/includes/Advanced_Contact_Form.xml</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPGZvcm0gaWQ9IjE0IgoJYWxpYXM9ImFkdmFuY2VkX2NvbnRhY3QiPgoJCTxmb3JtX25hbWU+PCFbQ0RBVEFbQWR2YW5jZWQgQ29udGFjdCBGb3JtXV0+PC9mb3JtX25hbWU+CgkJPGF0dHJpYnV0ZSBrZXk9InN1Ym1pdF9hY3Rpb24iPjwhW0NEQVRBW3RleHRdXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0iY3NzX2NsYXNzIj48IVtDREFUQVthZHZhbmNlZGNvbnRhY3Rmb3JtXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9Imxpc3RfZGVsaW1pdGVyIj48IVtDREFUQVssXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9ImlubGluZSI+PCFbQ0RBVEFbMF1dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJzdWJtaXRfamF2YXNjcmlwdCI+PCFbQ0RBVEFbXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9Im5leHRfYnV0dG9uX3RleHQiPjwhW0NEQVRBW0NvbnRpbnVlLi4uXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9InRpdGxlX3VzZXJfY2FwdGNoYSI+PCFbQ0RBVEFbUGxlYXNlIGNvbmZpcm0gdGhhdCB5b3UgYXJlIG5vdCBhIHNjcmlwdCBieSBlbnRlcmluZyB0aGUgbGV0dGVycyBmcm9tIHRoZSBpbWFnZS5dXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0idXNlX2NhcHRjaGEiPjwhW0NEQVRBW11dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJjYXB0Y2hhX3dyb25nIj48IVtDREFUQVtDYXB0Y2hhIHdhcyBub3QgY29ycmVjdC5dXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0icHJldl9idXR0b25fdGV4dCI+PCFbQ0RBVEFbQmFjay4uLl1dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJyZXF1aXJlZF9maWVsZF9zeW1ib2wiPjwhW0NEQVRBWypdXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0idW5zcGVjaWZpZWQiPjwhW0NEQVRBW1t1bnNwZWNpZmllZF1dXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0ic3VibWl0X2J1dHRvbl90ZXh0Ij48IVtDREFUQVtTdWJtaXQgRm9ybV1dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJpbnB1dF9idXR0b25fc2FmZXR5Ij48IVtDREFUQVswXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9InJlZGlyZWN0X3BhZ2UiPjwhW0NEQVRBWy0xXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9InN1Ym1pdF9yZXNwb25zZSI+PCFbQ0RBVEFbPHA+VGhhbmsgeW91LCA8c3Ryb25nPnskeW91cl9uYW1lfTwvc3Ryb25nPi48L3A+DQo8cD5Zb3VyIHN1Ym1pc3Npb24gaGFzIGJlZW4gc3VjY2Vzc2Z1bC4gWW91IG1heSB3aXNoIHRvIHByaW50IHRoaXMgcGFnZSBhcyBhIHJlZmVyZW5jZS48L3A+DQo8aDM+Q29udGFjdCBEZXRhaWxzPC9oMz4NCjxwPg0KPHN0cm9uZz5OYW1lPC9zdHJvbmc+OiB7JHlvdXJfbmFtZX08YnIgLz4NCjxzdHJvbmc+RW1haWw8L3N0cm9uZz46IDxhIGhyZWY9Im1haWx0bzp7JHlvdXJfZW1haWxfYWRkcmVzc30iPnskeW91cl9lbWFpbF9hZGRyZXNzfTwvYT48YnIgLz4NCjwvcD4NCjxoMz5GZWVkYmFjayBEZXRhaWxzPC9oMz4NCjxwPg0KPHN0cm9uZz5TdWJqZWN0PC9zdHJvbmc+OiB7JHN1YmplY3R9PGJyIC8+DQo8c3Ryb25nPkNvbW1lbnRzPC9zdHJvbmc+OjxiciAvPg0KeyRtZXNzYWdlfQ0KPC9wPiANCjxoND5PdGhlciBpbmZvcm1hdGlvbjwvaDQ+DQo8cD4NCjxzdHJvbmc+RGF0ZSBvZiBTdWJtaXNzaW9uPC9zdHJvbmc+OiB7JHN1Yl9kYXRlfTxiciAvPg0KPHN0cm9uZz5Gb3JtIE5hbWU8L3N0cm9uZz46IHskc3ViX2Zvcm1fbmFtZX08YnIgLz4NCjxzdHJvbmc+VVJMIG9mIHBhZ2UgY29udGFpbmluZyBmb3JtPC9zdHJvbmc+OiB7JHN1Yl91cmx9PGJyIC8+DQo8c3Ryb25nPkRvbWFpbjwvc3Ryb25nPjogeyRzdWJfaG9zdH08YnIgLz4NCjxzdHJvbmc+WW91ciBJUCBhZGRyZXNzPC9zdHJvbmc+OiB7JHN1Yl9zb3VyY2VfaXB9DQo8L3A+IF1dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJwcmVkaXNwbGF5X3VkdCI+PCFbQ0RBVEFbLTFdXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0iZm9ybV90ZW1wbGF0ZSI+PCFbQ0RBVEFbeyogREVGQVVMVCBGT1JNIExBWU9VVCAvIHB1cmUgQ1NTICp9DQp7JGZiX2Zvcm1faGVhZGVyfQ0Ke2lmICRmYl9mb3JtX2RvbmUgPT0gMX0NCgl7KiBUaGlzIGZpcnN0IHNlY3Rpb24gaXMgZm9yIGRpc3BsYXlpbmcgc3VibWlzc2lvbiBlcnJvcnMgKn0NCgl7aWYgaXNzZXQoJGZiX3N1Ym1pc3Npb25fZXJyb3IpICYmICRmYl9zdWJtaXNzaW9uX2Vycm9yfQ0KCQk8ZGl2IGNsYXNzPSJlcnJvcl9tZXNzYWdlIj57JGZiX3N1Ym1pc3Npb25fZXJyb3J9PC9kaXY+DQoJCXtpZiBpc3NldCgkZmJfc2hvd19zdWJtaXNzaW9uX2Vycm9ycykgJiYgJGZiX3Nob3dfc3VibWlzc2lvbl9lcnJvcnN9DQoJCQk8ZGl2IGNsYXNzPSJlcnJvciI+DQoJCQk8dWw+DQoJCQl7Zm9yZWFjaCBmcm9tPSRmYl9zdWJtaXNzaW9uX2Vycm9yX2xpc3QgaXRlbT10aGlzRXJyfQ0KCQkJCTxsaT57JHRoaXNFcnJ9PC9saT4NCgkJCXsvZm9yZWFjaH0NCgkJCTwvdWw+DQoJCTwvZGl2Pg0KCQl7L2lmfQ0KCXsvaWZ9DQp7ZWxzZX0NCgl7KiB0aGlzIHNlY3Rpb24gaXMgZm9yIGRpc3BsYXlpbmcgdGhlIGZvcm0gKn0NCgl7KiB3ZSBzdGFydCB3aXRoIHZhbGlkYXRpb24gZXJyb3JzICp9DQoJe2lmIGlzc2V0KCRmYl9mb3JtX2hhc192YWxpZGF0aW9uX2Vycm9ycykgJiYgJGZiX2Zvcm1faGFzX3ZhbGlkYXRpb25fZXJyb3JzfQ0KCQk8ZGl2IGNsYXNzPSJlcnJvcl9tZXNzYWdlIj4NCgkJPHVsPg0KCQl7Zm9yZWFjaCBmcm9tPSRmYl9mb3JtX3ZhbGlkYXRpb25fZXJyb3JzIGl0ZW09dGhpc0Vycn0NCgkJCTxsaT57JHRoaXNFcnJ9PC9saT4NCgkJey9mb3JlYWNofQ0KCQk8L3VsPg0KCQk8L2Rpdj4NCgl7L2lmfQ0KCXtpZiBpc3NldCgkY2FwdGNoYV9lcnJvcikgJiYgJGNhcHRjaGFfZXJyb3J9DQoJCTxkaXYgY2xhc3M9ImVycm9yX21lc3NhZ2UiPnskY2FwdGNoYV9lcnJvcn08L2Rpdj4NCgl7L2lmfQ0KDQoJeyogYW5kIG5vdyB0aGUgZm9ybSBpdHNlbGYgKn0NCgl7JGZiX2Zvcm1fc3RhcnR9DQoJPGRpdj57JGZiX2hpZGRlbn08L2Rpdj4NCgk8ZGl2e2lmICRjc3NfY2xhc3MgIT0gJyd9IGNsYXNzPSJ7JGNzc19jbGFzc30iey9pZn0+DQoJe2lmICR0b3RhbF9wYWdlcyBndCAxfTxzcGFuPnskdGl0bGVfcGFnZV94X29mX3l9PC9zcGFuPnsvaWZ9DQoJe2ZvcmVhY2ggZnJvbT0kZmllbGRzIGl0ZW09ZW50cnl9DQoJCXtpZiAkZW50cnktPmRpc3BsYXkgPT0gMX0NCiAgICAgICAgCXtzdHJpcH0NCiAgICAgICAgIAl7aWYgJGVudHJ5LT5uZWVkc19kaXYgPT0gMX0NCiAgICAgICAgICAgIAk8ZGl2DQogICAgICAgICAgICAJe2lmICRlbnRyeS0+cmVxdWlyZWQgPT0gMSB8fCAkZW50cnktPmNzc19jbGFzcyAhPSAnJyB8fCAkZW50cnktPnZhbGlkID09IDB9IGNsYXNzPSINCiAgICAgICAgICAgICAgCQl7aWYgJGVudHJ5LT5yZXF1aXJlZCA9PSAxfXJlcXVpcmVkey9pZn0NCiAgICAgICAgICAgICAgCQl7aWYgJGVudHJ5LT5jc3NfY2xhc3MgIT0gJyd9IHskZW50cnktPmNzc19jbGFzc317L2lmfQ0KICAgICAgICAgICAgICAgICAgICB7aWYgJGVudHJ5LT52YWxpZCA9PSAwfSBmYl9pbnZhbGlkey9pZn0NCiAgICAgICAgICAgICAgCQkiDQogICAgICAgICAgICAJey9pZn0NCiAgICAgICAgICAgIAk+DQogICAgICAgICAJey9pZn0NCiAgICAgICAgIAl7aWYgJGVudHJ5LT5oaWRlX25hbWUgPT0gMH0NCiAgICAgICAgICAgIAk8bGFiZWx7aWYgJGVudHJ5LT5tdWx0aXBsZV9wYXJ0cyAhPSAxfSBmb3I9InskZW50cnktPmlucHV0X2lkfSJ7L2lmfT57JGVudHJ5LT5uYW1lfQ0KICAgICAgICAgICAgCXtpZiAkZW50cnktPnJlcXVpcmVkX3N5bWJvbCAhPSAnJ30NCiAgICAgICAgICAgICAgIAkJeyRlbnRyeS0+cmVxdWlyZWRfc3ltYm9sfQ0KICAgICAgICAgICAgCXsvaWZ9DQogICAgICAgICAgICAJPC9sYWJlbD4NCiAgICAgICAgIAl7L2lmfQ0KICAgICAgICAgCXtpZiAkZW50cnktPm11bHRpcGxlX3BhcnRzID09IDF9DQogICAgICAgICAgICAJe3NlY3Rpb24gbmFtZT1udW1sb29wIGxvb3A9JGVudHJ5LT5pbnB1dH0NCiAgICAgICAgICAgICAgIAkJe2lmICRlbnRyeS0+bGFiZWxfcGFydHMgPT0gMX0NCiAgICAgICAgICAgICAgIAkJCTxkaXY+eyRlbnRyeS0+aW5wdXRbbnVtbG9vcF0tPmlucHV0fSZuYnNwO3skZW50cnktPmlucHV0W251bWxvb3BdLT5uYW1lfTwvZGl2Pg0KICAgICAgICAgICAgICAgCQl7ZWxzZX0NCiAgICAgICAgICAgICAgIAkJCXskZW50cnktPmlucHV0W251bWxvb3BdLT5pbnB1dH0NCiAgICAgICAgICAgICAgIAkJey9pZn0NCiAgICAgICAgICAgICAgIAkJe2lmIGlzc2V0KCRlbnRyeS0+aW5wdXRbbnVtbG9vcF0tPm9wKSAmJiAkZW50cnktPmlucHV0W251bWxvb3BdLT5vcH17JGVudHJ5LT5pbnB1dFtudW1sb29wXS0+b3B9ey9pZn0NCiAgICAgICAgICAgIAl7L3NlY3Rpb259DQogICAgICAgICAJe2Vsc2V9DQogICAgICAgICAgICAJe2lmICRlbnRyeS0+c21hcnR5X2V2YWwgPT0gJzEnfXtldmFsIHZhcj0kZW50cnktPmlucHV0fXtlbHNlfXskZW50cnktPmlucHV0fXsvaWZ9DQogICAgICAgICAJey9pZn0NCiAgICAgICAgIAl7aWYgJGVudHJ5LT52YWxpZCA9PSAwfSAmbHQ7LS0tIHskZW50cnktPmVycm9yfXsvaWZ9DQogICAgICAgICAJe2lmICRlbnRyeS0+bmVlZHNfZGl2ID09IDF9DQogICAgICAgICAgICAJPC9kaXY+DQogICAgICAgICAJey9pZn0NCiAgICAgICAgIAl7L3N0cmlwfQ0KICAgICAJey9pZn0NCgl7L2ZvcmVhY2h9DQoJe2lmICRoYXNfY2FwdGNoYSA9PSAxfQ0KCQk8ZGl2IGNsYXNzPSJjYXB0Y2hhIj57JGdyYXBoaWNfY2FwdGNoYX17JHRpdGxlX2NhcHRjaGF9PGJyIC8+eyRpbnB1dF9jYXB0Y2hhfTwvZGl2Pg0KCXsvaWZ9DQoJPGRpdiBjbGFzcz0ic3VibWl0Ij57JHByZXZ9eyRzdWJtaXR9PC9kaXY+DQoJPC9kaXY+DQoJeyRmYl9mb3JtX2VuZH0NCnsvaWZ9DQp7JGZiX2Zvcm1fZm9vdGVyfV1dPjwvYXR0cmlidXRlPgoJPGZpZWxkIGlkPSIxMTMiCgkJdHlwZT0iRmllbGRzZXRTdGFydCIKCQl2YWxpZGF0aW9uX3R5cGU9IiIKCQlvcmRlcl9ieT0iMSIKCQlyZXF1aXJlZD0iMCIKCQloaWRlX2xhYmVsPSIwIgoJCWRpc3BsYXlfaW5fc3VibWlzc2lvbj0iIj4KCQkJPGZpZWxkX25hbWU+PCFbQ0RBVEFbQWJvdXQgWW91IEZpZWxkc2V0XV0+PC9maWVsZF9uYW1lPgoJCQk8b3B0aW9ucz4KCQkJPG9wdGlvbiBuYW1lPSJsZWdlbmQiPjwhW0NEQVRBW0Fib3V0IFlvdV1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImNzc19jbGFzcyI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iZmllbGRfYWxpYXMiPjwhW0NEQVRBW11dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImhlbHB0ZXh0Ij48IVtDREFUQVtdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJqYXZhc2NyaXB0Ij48IVtDREFUQVtdXT48L29wdGlvbj4KCQkJPHZhbHVlPjwvdmFsdWU+CgkJCTwvb3B0aW9ucz4KPC9maWVsZD4KCTxmaWVsZCBpZD0iMTE0IgoJCXR5cGU9IkZyb21FbWFpbE5hbWVGaWVsZCIKCQl2YWxpZGF0aW9uX3R5cGU9IiIKCQlvcmRlcl9ieT0iMiIKCQlyZXF1aXJlZD0iMSIKCQloaWRlX2xhYmVsPSIwIgoJCWRpc3BsYXlfaW5fc3VibWlzc2lvbj0iMSI+CgkJCTxmaWVsZF9uYW1lPjwhW0NEQVRBW1lvdXIgTmFtZV1dPjwvZmllbGRfbmFtZT4KCQkJPG9wdGlvbnM+CgkJCTxvcHRpb24gbmFtZT0iY3NzX2NsYXNzIj48IVtDREFUQVtdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJmaWVsZF9hbGlhcyI+PCFbQ0RBVEFbdXNlcnNfbmFtZV1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImhlbHB0ZXh0Ij48IVtDREFUQVtdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJqYXZhc2NyaXB0Ij48IVtDREFUQVtdXT48L29wdGlvbj4KCQkJPHZhbHVlPjwvdmFsdWU+CgkJCTwvb3B0aW9ucz4KPC9maWVsZD4KCTxmaWVsZCBpZD0iMTE1IgoJCXR5cGU9IkRpc3Bvc2l0aW9uRnJvbUVtYWlsQWRkcmVzc0ZpZWxkIgoJCXZhbGlkYXRpb25fdHlwZT0ibm9uZSIKCQlvcmRlcl9ieT0iMyIKCQlyZXF1aXJlZD0iMCIKCQloaWRlX2xhYmVsPSIwIgoJCWRpc3BsYXlfaW5fc3VibWlzc2lvbj0iMSI+CgkJCTxmaWVsZF9uYW1lPjwhW0NEQVRBW1lvdXIgRW1haWwgQWRkcmVzc11dPjwvZmllbGRfbmFtZT4KCQkJPG9wdGlvbnM+CgkJCTxvcHRpb24gbmFtZT0iZW1haWxfc3ViamVjdCI+PCFbQ0RBVEFbRW1haWwgZnJvbSBTaXRlXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iZW1haWxfZnJvbV9uYW1lIj48IVtDREFUQVtGb3JtIEJ1aWxkZXJdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJzZW5kX3VzZXJfY29weSI+PCFbQ0RBVEFbY11dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9InNlbmRfdXNlcl9sYWJlbCI+PCFbQ0RBVEFbU2VuZCBtZSBhIGNvcHkgb2YgZm9ybV1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImZpZWxkX2FsaWFzIj48IVtDREFUQVtdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJqYXZhc2NyaXB0Ij48IVtDREFUQVtdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJodG1sX2VtYWlsIj48IVtDREFUQVtdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJlbWFpbF90ZW1wbGF0ZSI+PCFbQ0RBVEFbRm9ybUJ1aWxkZXIgU3VibWlzc2lvbgpGb3JtIE5hbWU6IHskc3ViX2Zvcm1fbmFtZX0KRGF0ZSBvZiBTdWJtaXNzaW9uOiB7JHN1Yl9kYXRlfQpZb3VyIHNlcnZlcjogeyRzdWJfaG9zdH0KSVAgYWRkcmVzcyBvZiBwZXJzb24gdXNpbmcgZm9ybTogeyRzdWJfc291cmNlX2lwfQpVUkwgb2YgcGFnZSBjb250YWluaW5nIGZvcm06IHskc3ViX3VybH0KRm9ybUJ1aWxkZXIgdmVyc2lvbjogeyRmYl92ZXJzaW9ufQpUYWIgQ2hhcmFjdGVyOiB7JFRBQn0KLT4KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpZb3VyIE5hbWU6IHskZmxkXzExNn0KWW91ciBFbWFpbCBBZGRyZXNzOiB7JGZsZF80M30KRW1haWwgQWdhaW46IHskZmxkXzQyfQpTdWJqZWN0OiB7JGZsZF8xMTh9Ck1lc3NhZ2U6IHskZm9vfQpdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJlbWFpbF9lbmNvZGluZyI+PCFbQ0RBVEFbdXRmLThdXT48L29wdGlvbj4KCQkJPHZhbHVlPjwvdmFsdWU+CgkJCTwvb3B0aW9ucz4KPC9maWVsZD4KCTxmaWVsZCBpZD0iMTE2IgoJCXR5cGU9IkZyb21FbWFpbEFkZHJlc3NBZ2FpbkZpZWxkIgoJCXZhbGlkYXRpb25fdHlwZT0iIgoJCW9yZGVyX2J5PSI0IgoJCXJlcXVpcmVkPSIwIgoJCWhpZGVfbGFiZWw9IjAiCgkJZGlzcGxheV9pbl9zdWJtaXNzaW9uPSIxIj4KCQkJPGZpZWxkX25hbWU+PCFbQ0RBVEFbRW1haWwgQWdhaW5dXT48L2ZpZWxkX25hbWU+CgkJCTxvcHRpb25zPgoJCQk8b3B0aW9uIG5hbWU9ImZpZWxkX3RvX3ZhbGlkYXRlIj48IVtDREFUQVtZb3VyIEVtYWlsIEFkZHJlc3NdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJmaWVsZF9hbGlhcyI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iY3NzX2NsYXNzIj48IVtDREFUQVtdXT48L29wdGlvbj4KCQkJPHZhbHVlPjwvdmFsdWU+CgkJCTwvb3B0aW9ucz4KPC9maWVsZD4KCTxmaWVsZCBpZD0iMTIwIgoJCXR5cGU9IkZpZWxkc2V0RW5kIgoJCXZhbGlkYXRpb25fdHlwZT0iIgoJCW9yZGVyX2J5PSI1IgoJCXJlcXVpcmVkPSIwIgoJCWhpZGVfbGFiZWw9IjAiCgkJZGlzcGxheV9pbl9zdWJtaXNzaW9uPSIiPgoJCQk8ZmllbGRfbmFtZT48IVtDREFUQVtBYm91dCBZb3UgRmllbGRzZXQgRW5kXV0+PC9maWVsZF9uYW1lPgoJCQk8b3B0aW9ucz4KCQkJPG9wdGlvbiBuYW1lPSJmaWVsZF9hbGlhcyI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iY3NzX2NsYXNzIj48IVtDREFUQVtdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJoZWxwdGV4dCI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CgkJCTx2YWx1ZT48L3ZhbHVlPgoJCQk8L29wdGlvbnM+CjwvZmllbGQ+Cgk8ZmllbGQgaWQ9IjEyMSIKCQl0eXBlPSJQYWdlQnJlYWtGaWVsZCIKCQl2YWxpZGF0aW9uX3R5cGU9IiIKCQlvcmRlcl9ieT0iNiIKCQlyZXF1aXJlZD0iIgoJCWhpZGVfbGFiZWw9IjAiCgkJZGlzcGxheV9pbl9zdWJtaXNzaW9uPSIxIj4KCQkJPGZpZWxkX25hbWU+PCFbQ0RBVEFbYnJlYWtlcl1dPjwvZmllbGRfbmFtZT4KCQkJPG9wdGlvbnM+CgkJCTxvcHRpb24gbmFtZT0iZmllbGRfYWxpYXMiPjwhW0NEQVRBW11dPjwvb3B0aW9uPgoJCQk8dmFsdWU+PC92YWx1ZT4KCQkJPC9vcHRpb25zPgo8L2ZpZWxkPgoJPGZpZWxkIGlkPSIxMjMiCgkJdHlwZT0iRmllbGRzZXRTdGFydCIKCQl2YWxpZGF0aW9uX3R5cGU9IiIKCQlvcmRlcl9ieT0iNyIKCQlyZXF1aXJlZD0iMCIKCQloaWRlX2xhYmVsPSIwIgoJCWRpc3BsYXlfaW5fc3VibWlzc2lvbj0iIj4KCQkJPGZpZWxkX25hbWU+PCFbQ0RBVEFbQ29udGFjdCBGaWVsZHNldF1dPjwvZmllbGRfbmFtZT4KCQkJPG9wdGlvbnM+CgkJCTxvcHRpb24gbmFtZT0ibGVnZW5kIj48IVtDREFUQVtDb250YWN0XV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iZmllbGRfYWxpYXMiPjwhW0NEQVRBW11dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImNzc19jbGFzcyI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iaGVscHRleHQiPjwhW0NEQVRBW11dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImphdmFzY3JpcHQiPjwhW0NEQVRBW11dPjwvb3B0aW9uPgoJCQk8dmFsdWU+PC92YWx1ZT4KCQkJPC9vcHRpb25zPgo8L2ZpZWxkPgoJPGZpZWxkIGlkPSIxMjIiCgkJdHlwZT0iU3RhdGljVGV4dEZpZWxkIgoJCXZhbGlkYXRpb25fdHlwZT0iIgoJCW9yZGVyX2J5PSI4IgoJCXJlcXVpcmVkPSIwIgoJCWhpZGVfbGFiZWw9IjAiCgkJZGlzcGxheV9pbl9zdWJtaXNzaW9uPSIiPgoJCQk8ZmllbGRfbmFtZT48IVtDREFUQVtHcmVldGluZ11dPjwvZmllbGRfbmFtZT4KCQkJPG9wdGlvbnM+CgkJCTxvcHRpb24gbmFtZT0idGV4dCI+PCFbQ0RBVEFbSGVsbG8sIHskdXNlcnNfbmFtZS0+dmFsdWV9ITxiciAvPiBXaGF0IGlzIGl0IHlvdSdkIGxpa2UgdG8gdGFsayB0byB1cyBhYm91dD9dXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJmaWVsZF9hbGlhcyI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iY3NzX2NsYXNzIj48IVtDREFUQVtdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJoZWxwdGV4dCI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iamF2YXNjcmlwdCI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0ic21hcnR5X2V2YWwiPjwhW0NEQVRBWzFdXT48L29wdGlvbj4KCQkJPHZhbHVlPjwvdmFsdWU+CgkJCTwvb3B0aW9ucz4KPC9maWVsZD4KCTxmaWVsZCBpZD0iMTE3IgoJCXR5cGU9IkZyb21FbWFpbFN1YmplY3RGaWVsZCIKCQl2YWxpZGF0aW9uX3R5cGU9IiIKCQlvcmRlcl9ieT0iOSIKCQlyZXF1aXJlZD0iMCIKCQloaWRlX2xhYmVsPSIwIgoJCWRpc3BsYXlfaW5fc3VibWlzc2lvbj0iMSI+CgkJCTxmaWVsZF9uYW1lPjwhW0NEQVRBW1N1YmplY3RdXT48L2ZpZWxkX25hbWU+CgkJCTxvcHRpb25zPgoJCQk8b3B0aW9uIG5hbWU9ImNzc19jbGFzcyI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CgkJCTx2YWx1ZT48L3ZhbHVlPgoJCQk8L29wdGlvbnM+CjwvZmllbGQ+Cgk8ZmllbGQgaWQ9IjExOCIKCQl0eXBlPSJUZXh0QXJlYUZpZWxkIgoJCXZhbGlkYXRpb25fdHlwZT0iIgoJCW9yZGVyX2J5PSIxMCIKCQlyZXF1aXJlZD0iMSIKCQloaWRlX2xhYmVsPSIwIgoJCWRpc3BsYXlfaW5fc3VibWlzc2lvbj0iMSI+CgkJCTxmaWVsZF9uYW1lPjwhW0NEQVRBW01lc3NhZ2VdXT48L2ZpZWxkX25hbWU+CgkJCTxvcHRpb25zPgoJCQk8b3B0aW9uIG5hbWU9InJvd3MiPjwhW0NEQVRBWzVdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJjb2xzIj48IVtDREFUQVs2MF1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImNzc19jbGFzcyI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iZmllbGRfYWxpYXMiPjwhW0NEQVRBW21lc3NhZ2VdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJkZWZhdWx0Ij48IVtDREFUQVtFbnRlciBZb3VyIE1lc3NhZ2UgSGVyZV1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImNsZWFyX2RlZmF1bHQiPjwhW0NEQVRBWzFdXT48L29wdGlvbj4KCQkJPHZhbHVlPjwvdmFsdWU+CgkJCTwvb3B0aW9ucz4KPC9maWVsZD4KCTxmaWVsZCBpZD0iMTE5IgoJCXR5cGU9IkRpc3Bvc2l0aW9uRW1haWwiCgkJdmFsaWRhdGlvbl90eXBlPSIiCgkJb3JkZXJfYnk9IjExIgoJCXJlcXVpcmVkPSIwIgoJCWhpZGVfbGFiZWw9IjAiCgkJZGlzcGxheV9pbl9zdWJtaXNzaW9uPSIxIj4KCQkJPGZpZWxkX25hbWU+PCFbQ0RBVEFbU2VuZCBUb11dPjwvZmllbGRfbmFtZT4KCQkJPG9wdGlvbnM+CgkJCTxvcHRpb24gbmFtZT0iZW1haWxfc3ViamVjdCI+PCFbQ0RBVEFbQ29udGFjdCBGb3JtIFN1Ym1pc3Npb25dXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJlbWFpbF9mcm9tX25hbWUiPjwhW0NEQVRBW0Zvcm0gQnVpbGRlcl1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImVtYWlsX2Zyb21fYWRkcmVzcyI+PCFbQ0RBVEFbd2Vic2l0ZUB5b3VyZG9tYWluLmNvbV1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImRlc3RpbmF0aW9uX2FkZHJlc3MiPjwhW0NEQVRBW3lvdUB5b3VyZG9tYWluLmNvbV1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImZpZWxkX2FsaWFzIj48IVtDREFUQVtdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJodG1sX2VtYWlsIj48IVtDREFUQVsxXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iZW1haWxfdGVtcGxhdGUiPjwhW0NEQVRBWzxoMT5Gb3JtQnVpbGRlciBTdWJtaXNzaW9uPC9oMT4NCjxzdHJvbmc+Rm9ybSBOYW1lPC9zdHJvbmc+OiB7JHN1Yl9mb3JtX25hbWV9PGJyIC8+DQo8c3Ryb25nPkRhdGUgb2YgU3VibWlzc2lvbjwvc3Ryb25nPjogeyRzdWJfZGF0ZX08YnIgLz4NCjxzdHJvbmc+WW91ciBzZXJ2ZXI8L3N0cm9uZz46IHskc3ViX2hvc3R9PGJyIC8+DQo8c3Ryb25nPklQIGFkZHJlc3Mgb2YgcGVyc29uIHVzaW5nIGZvcm08L3N0cm9uZz46IHskc3ViX3NvdXJjZV9pcH08YnIgLz4NCjxzdHJvbmc+VVJMIG9mIHBhZ2UgY29udGFpbmluZyBmb3JtPC9zdHJvbmc+OiB7JHN1Yl91cmx9PGJyIC8+DQo8c3Ryb25nPkZvcm1CdWlsZGVyIHZlcnNpb248L3N0cm9uZz46IHskZmJfdmVyc2lvbn08YnIgLz4NCjxzdHJvbmc+VGFiIENoYXJhY3Rlcjwvc3Ryb25nPjogeyRUQUJ9PGJyIC8+DQoNCjxociAvPg0Ke2lmICRmbGRfMTE0ICE9ICIiICYmICRmbGRfMTE0ICE9ICJbdW5zcGVjaWZpZWRdIiB9PHN0cm9uZz5Zb3VyIE5hbWU8L3N0cm9uZz46IHskZmxkXzExNH08YnIgLz57L2lmfQ0Ke2lmICRmbGRfMTE1ICE9ICIiICYmICRmbGRfMTE1ICE9ICJbdW5zcGVjaWZpZWRdIiB9PHN0cm9uZz5Zb3VyIEVtYWlsIEFkZHJlc3M8L3N0cm9uZz46IHskZmxkXzExNX08YnIgLz57L2lmfQ0Ke2lmICRmbGRfMTE2ICE9ICIiICYmICRmbGRfMTE2ICE9ICJbdW5zcGVjaWZpZWRdIiB9PHN0cm9uZz5FbWFpbCBBZ2Fpbjwvc3Ryb25nPjogeyRmbGRfMTE2fTxiciAvPnsvaWZ9DQp7aWYgJGZsZF8xMTcgIT0gIiIgJiYgJGZsZF8xMTcgIT0gIlt1bnNwZWNpZmllZF0iIH08c3Ryb25nPlN1YmplY3Q8L3N0cm9uZz46IHskZmxkXzExN308YnIgLz57L2lmfQ0Ke2lmICRtZXNzYWdlICE9ICIiICYmICRtZXNzYWdlICE9ICJbdW5zcGVjaWZpZWRdIiB9PHN0cm9uZz5NZXNzYWdlPC9zdHJvbmc+OiB7JG1lc3NhZ2V9PGJyIC8+ey9pZn0NCntpZiAkZmxkXzExOSAhPSAiIiAmJiAkZmxkXzExOSAhPSAiW3Vuc3BlY2lmaWVkXSIgfTxzdHJvbmc+U2VuZCBUbzwvc3Ryb25nPjogeyRmbGRfMTE5fTxiciAvPnsvaWZ9DQpdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJlbWFpbF9lbmNvZGluZyI+PCFbQ0RBVEFbdXRmLThdXT48L29wdGlvbj4KCQkJPHZhbHVlPjwvdmFsdWU+CgkJCTwvb3B0aW9ucz4KPC9maWVsZD4KCTxmaWVsZCBpZD0iMTI0IgoJCXR5cGU9IkZpZWxkc2V0RW5kIgoJCXZhbGlkYXRpb25fdHlwZT0iIgoJCW9yZGVyX2J5PSIxMiIKCQlyZXF1aXJlZD0iMCIKCQloaWRlX2xhYmVsPSIwIgoJCWRpc3BsYXlfaW5fc3VibWlzc2lvbj0iIj4KCQkJPGZpZWxkX25hbWU+PCFbQ0RBVEFbQ29udGFjdCBGaWVsZHNldCBFbmRdXT48L2ZpZWxkX25hbWU+CgkJCTxvcHRpb25zPgoJCQk8b3B0aW9uIG5hbWU9ImZpZWxkX2FsaWFzIj48IVtDREFUQVtdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJjc3NfY2xhc3MiPjwhW0NEQVRBW11dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImhlbHB0ZXh0Ij48IVtDREFUQVtdXT48L29wdGlvbj4KCQkJPHZhbHVlPjwvdmFsdWU+CgkJCTwvb3B0aW9ucz4KPC9maWVsZD4KPC9mb3JtPgo=]]></data>
	</file>
	<file>
	  <filename>/includes/Contact_Form.xml</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPGZvcm0gaWQ9IjEiCglhbGlhcz0iY29udGFjdCI+CgkJPGZvcm1fbmFtZT48IVtDREFUQVtDb250YWN0IEZvcm1dXT48L2Zvcm1fbmFtZT4KCQk8YXR0cmlidXRlIGtleT0iZm9ybV90ZW1wbGF0ZSI+PCFbQ0RBVEFbeyogREVGQVVMVCBGT1JNIExBWU9VVCAvIHB1cmUgQ1NTICp9CnskZmJfZm9ybV9oZWFkZXJ9CntpZiAkZmJfZm9ybV9kb25lID09IDF9Cgl7KiBUaGlzIGZpcnN0IHNlY3Rpb24gaXMgZm9yIGRpc3BsYXlpbmcgc3VibWlzc2lvbiBlcnJvcnMgKn0KCXtpZiBpc3NldCgkZmJfc3VibWlzc2lvbl9lcnJvcikgJiYgJGZiX3N1Ym1pc3Npb25fZXJyb3J9CgkJPGRpdiBjbGFzcz0iZXJyb3JfbWVzc2FnZSI+eyRmYl9zdWJtaXNzaW9uX2Vycm9yfTwvZGl2PgoJCXtpZiBpc3NldCgkZmJfc2hvd19zdWJtaXNzaW9uX2Vycm9ycykgJiYgJGZiX3Nob3dfc3VibWlzc2lvbl9lcnJvcnN9CgkJCTxkaXYgY2xhc3M9ImVycm9yIj4KCQkJPHVsPgoJCQl7Zm9yZWFjaCBmcm9tPSRmYl9zdWJtaXNzaW9uX2Vycm9yX2xpc3QgaXRlbT10aGlzRXJyfQoJCQkJPGxpPnskdGhpc0Vycn08L2xpPgoJCQl7L2ZvcmVhY2h9CgkJCTwvdWw+CgkJPC9kaXY+CgkJey9pZn0KCXsvaWZ9CntlbHNlfQoJeyogdGhpcyBzZWN0aW9uIGlzIGZvciBkaXNwbGF5aW5nIHRoZSBmb3JtICp9Cgl7KiB3ZSBzdGFydCB3aXRoIHZhbGlkYXRpb24gZXJyb3JzICp9Cgl7aWYgaXNzZXQoJGZiX2Zvcm1faGFzX3ZhbGlkYXRpb25fZXJyb3JzKSAmJiAkZmJfZm9ybV9oYXNfdmFsaWRhdGlvbl9lcnJvcnN9CgkJPGRpdiBjbGFzcz0iZXJyb3JfbWVzc2FnZSI+CgkJPHVsPgoJCXtmb3JlYWNoIGZyb209JGZiX2Zvcm1fdmFsaWRhdGlvbl9lcnJvcnMgaXRlbT10aGlzRXJyfQoJCQk8bGk+eyR0aGlzRXJyfTwvbGk+CgkJey9mb3JlYWNofQoJCTwvdWw+CgkJPC9kaXY+Cgl7L2lmfQoJe2lmIGlzc2V0KCRjYXB0Y2hhX2Vycm9yKSAmJiAkY2FwdGNoYV9lcnJvcn0KCQk8ZGl2IGNsYXNzPSJlcnJvcl9tZXNzYWdlIj57JGNhcHRjaGFfZXJyb3J9PC9kaXY+Cgl7L2lmfQoKCXsqIGFuZCBub3cgdGhlIGZvcm0gaXRzZWxmICp9Cgl7JGZiX2Zvcm1fc3RhcnR9Cgk8ZGl2PnskZmJfaGlkZGVufTwvZGl2PgoJPGRpdntpZiAkY3NzX2NsYXNzICE9ICcnfSBjbGFzcz0ieyRjc3NfY2xhc3N9InsvaWZ9PgoJe2lmICR0b3RhbF9wYWdlcyBndCAxfTxzcGFuPnskdGl0bGVfcGFnZV94X29mX3l9PC9zcGFuPnsvaWZ9Cgl7Zm9yZWFjaCBmcm9tPSRmaWVsZHMgaXRlbT1lbnRyeX0KCQl7aWYgJGVudHJ5LT5kaXNwbGF5ID09IDF9CiAgICAgICAgCXtzdHJpcH0KICAgICAgICAgCXtpZiAkZW50cnktPm5lZWRzX2RpdiA9PSAxfQogICAgICAgICAgICAJPGRpdgogICAgICAgICAgICAJe2lmICRlbnRyeS0+cmVxdWlyZWQgPT0gMSB8fCAkZW50cnktPmNzc19jbGFzcyAhPSAnJyB8fCAkZW50cnktPnZhbGlkID09IDB9IGNsYXNzPSIKICAgICAgICAgICAgICAJCXtpZiAkZW50cnktPnJlcXVpcmVkID09IDF9cmVxdWlyZWR7L2lmfQogICAgICAgICAgICAgIAkJe2lmICRlbnRyeS0+Y3NzX2NsYXNzICE9ICcnfSB7JGVudHJ5LT5jc3NfY2xhc3N9ey9pZn0KICAgICAgICAgICAgICAgICAgICB7aWYgJGVudHJ5LT52YWxpZCA9PSAwfSBmYl9pbnZhbGlkey9pZn0KICAgICAgICAgICAgICAJCSIKICAgICAgICAgICAgCXsvaWZ9CiAgICAgICAgICAgIAk+CiAgICAgICAgIAl7L2lmfQogICAgICAgICAJe2lmICRlbnRyeS0+aGlkZV9uYW1lID09IDB9CiAgICAgICAgICAgIAk8bGFiZWx7aWYgJGVudHJ5LT5tdWx0aXBsZV9wYXJ0cyAhPSAxfSBmb3I9InskZW50cnktPmlucHV0X2lkfSJ7L2lmfT57JGVudHJ5LT5uYW1lfQogICAgICAgICAgICAJe2lmICRlbnRyeS0+cmVxdWlyZWRfc3ltYm9sICE9ICcnfQogICAgICAgICAgICAgICAJCXskZW50cnktPnJlcXVpcmVkX3N5bWJvbH0KICAgICAgICAgICAgCXsvaWZ9CiAgICAgICAgICAgIAk8L2xhYmVsPgogICAgICAgICAJey9pZn0KICAgICAgICAgCXtpZiAkZW50cnktPm11bHRpcGxlX3BhcnRzID09IDF9CiAgICAgICAgICAgIAl7c2VjdGlvbiBuYW1lPW51bWxvb3AgbG9vcD0kZW50cnktPmlucHV0fQogICAgICAgICAgICAgICAJCXtpZiAkZW50cnktPmxhYmVsX3BhcnRzID09IDF9CiAgICAgICAgICAgICAgIAkJCTxkaXY+eyRlbnRyeS0+aW5wdXRbbnVtbG9vcF0tPmlucHV0fSZuYnNwO3skZW50cnktPmlucHV0W251bWxvb3BdLT5uYW1lfTwvZGl2PgogICAgICAgICAgICAgICAJCXtlbHNlfQogICAgICAgICAgICAgICAJCQl7JGVudHJ5LT5pbnB1dFtudW1sb29wXS0+aW5wdXR9CiAgICAgICAgICAgICAgIAkJey9pZn0KICAgICAgICAgICAgICAgCQl7aWYgaXNzZXQoJGVudHJ5LT5pbnB1dFtudW1sb29wXS0+b3ApICYmICRlbnRyeS0+aW5wdXRbbnVtbG9vcF0tPm9wfXskZW50cnktPmlucHV0W251bWxvb3BdLT5vcH17L2lmfQogICAgICAgICAgICAJey9zZWN0aW9ufQogICAgICAgICAJe2Vsc2V9CiAgICAgICAgICAgIAl7aWYgJGVudHJ5LT5zbWFydHlfZXZhbCA9PSAnMSd9e2V2YWwgdmFyPSRlbnRyeS0+aW5wdXR9e2Vsc2V9eyRlbnRyeS0+aW5wdXR9ey9pZn0KICAgICAgICAgCXsvaWZ9CiAgICAgICAgIAl7aWYgJGVudHJ5LT52YWxpZCA9PSAwfSAmbHQ7LS0tIHskZW50cnktPmVycm9yfXsvaWZ9CiAgICAgICAgIAl7aWYgJGVudHJ5LT5uZWVkc19kaXYgPT0gMX0KICAgICAgICAgICAgCTwvZGl2PgogICAgICAgICAJey9pZn0KICAgICAgICAgCXsvc3RyaXB9CiAgICAgCXsvaWZ9Cgl7L2ZvcmVhY2h9Cgl7aWYgJGhhc19jYXB0Y2hhID09IDF9CgkJPGRpdiBjbGFzcz0iY2FwdGNoYSI+eyRncmFwaGljX2NhcHRjaGF9eyR0aXRsZV9jYXB0Y2hhfTxiciAvPnskaW5wdXRfY2FwdGNoYX08L2Rpdj4KCXsvaWZ9Cgk8ZGl2IGNsYXNzPSJzdWJtaXQiPnskcHJldn17JHN1Ym1pdH08L2Rpdj4KCTwvZGl2PgoJeyRmYl9mb3JtX2VuZH0Key9pZn0KeyRmYl9mb3JtX2Zvb3Rlcn1dXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0ic3VibWl0X2FjdGlvbiI+PCFbQ0RBVEFbdGV4dF1dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJjc3NfY2xhc3MiPjwhW0NEQVRBW2NvbnRhY3Rmb3JtXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9Imxpc3RfZGVsaW1pdGVyIj48IVtDREFUQVssXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9ImlubGluZSI+PCFbQ0RBVEFbMF1dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJzdWJtaXRfamF2YXNjcmlwdCI+PCFbQ0RBVEFbXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9Im5leHRfYnV0dG9uX3RleHQiPjwhW0NEQVRBW0NvbnRpbnVlLi4uXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9InRpdGxlX3VzZXJfY2FwdGNoYSI+PCFbQ0RBVEFbUGxlYXNlIGNvbmZpcm0gdGhhdCB5b3UgYXJlIG5vdCBhIHNjcmlwdCBieSBlbnRlcmluZyB0aGUgbGV0dGVycyBmcm9tIHRoZSBpbWFnZS5dXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0idXNlX2NhcHRjaGEiPjwhW0NEQVRBW11dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJjYXB0Y2hhX3dyb25nIj48IVtDREFUQVtDYXB0Y2hhIHdhcyBub3QgY29ycmVjdC5dXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0icHJldl9idXR0b25fdGV4dCI+PCFbQ0RBVEFbQmFjay4uLl1dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJyZXF1aXJlZF9maWVsZF9zeW1ib2wiPjwhW0NEQVRBWypdXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0idW5zcGVjaWZpZWQiPjwhW0NEQVRBW1t1bnNwZWNpZmllZF1dXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0ic3VibWl0X2J1dHRvbl90ZXh0Ij48IVtDREFUQVtTdWJtaXQgRm9ybV1dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJpbnB1dF9idXR0b25fc2FmZXR5Ij48IVtDREFUQVswXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9InJlZGlyZWN0X3BhZ2UiPjwhW0NEQVRBWy0xXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9InN1Ym1pdF9yZXNwb25zZSI+PCFbQ0RBVEFbPHA+VGhhbmsgeW91LCA8c3Ryb25nPnskeW91cl9uYW1lfTwvc3Ryb25nPi48L3A+CjxwPllvdXIgc3VibWlzc2lvbiBoYXMgYmVlbiBzdWNjZXNzZnVsLiBZb3UgbWF5IHdpc2ggdG8gcHJpbnQgdGhpcyBwYWdlIGFzIGEgcmVmZXJlbmNlLjwvcD4KPGgzPkNvbnRhY3QgRGV0YWlsczwvaDM+CjxwPgo8c3Ryb25nPk5hbWU8L3N0cm9uZz46IHskeW91cl9uYW1lfTxiciAvPgo8c3Ryb25nPkVtYWlsPC9zdHJvbmc+OiA8YSBocmVmPSJtYWlsdG86eyR5b3VyX2VtYWlsX2FkZHJlc3N9Ij57JHlvdXJfZW1haWxfYWRkcmVzc308L2E+PGJyIC8+CjwvcD4KPGgzPkZlZWRiYWNrIERldGFpbHM8L2gzPgo8cD4KPHN0cm9uZz5TdWJqZWN0PC9zdHJvbmc+OiB7JHN1YmplY3R9PGJyIC8+CjxzdHJvbmc+Q29tbWVudHM8L3N0cm9uZz46PGJyIC8+CnskbWVzc2FnZX0KPC9wPiAKPGg0Pk90aGVyIGluZm9ybWF0aW9uPC9oND4KPHA+CjxzdHJvbmc+RGF0ZSBvZiBTdWJtaXNzaW9uPC9zdHJvbmc+OiB7JHN1Yl9kYXRlfTxiciAvPgo8c3Ryb25nPkZvcm0gTmFtZTwvc3Ryb25nPjogeyRzdWJfZm9ybV9uYW1lfTxiciAvPgo8c3Ryb25nPlVSTCBvZiBwYWdlIGNvbnRhaW5pbmcgZm9ybTwvc3Ryb25nPjogeyRzdWJfdXJsfTxiciAvPgo8c3Ryb25nPkRvbWFpbjwvc3Ryb25nPjogeyRzdWJfaG9zdH08YnIgLz4KPHN0cm9uZz5Zb3VyIElQIGFkZHJlc3M8L3N0cm9uZz46IHskc3ViX3NvdXJjZV9pcH0KPC9wPiBdXT48L2F0dHJpYnV0ZT4KCTxmaWVsZCBpZD0iMyIKCQl0eXBlPSJGaWVsZHNldFN0YXJ0IgoJCXZhbGlkYXRpb25fdHlwZT0iIgoJCW9yZGVyX2J5PSIxIgoJCXJlcXVpcmVkPSIwIgoJCWhpZGVfbGFiZWw9IjAiCgkJYWxpYXM9IiI+CgkJCTxmaWVsZF9uYW1lPjwhW0NEQVRBW0NvbnRhY3QgRmllbGRzZXRdXT48L2ZpZWxkX25hbWU+CgkJCTxvcHRpb25zPgoJCQk8b3B0aW9uIG5hbWU9ImxlZ2VuZCI+PCFbQ0RBVEFbQ29udGFjdF1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImNzc19jbGFzcyI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CgkJCTx2YWx1ZT48L3ZhbHVlPgoJCQk8L29wdGlvbnM+CjwvZmllbGQ+Cgk8ZmllbGQgaWQ9IjQiCgkJdHlwZT0iRnJvbUVtYWlsTmFtZUZpZWxkIgoJCXZhbGlkYXRpb25fdHlwZT0iIgoJCW9yZGVyX2J5PSIyIgoJCXJlcXVpcmVkPSIwIgoJCWhpZGVfbGFiZWw9IjAiCgkJYWxpYXM9IiI+CgkJCTxmaWVsZF9uYW1lPjwhW0NEQVRBW1lvdXIgTmFtZV1dPjwvZmllbGRfbmFtZT4KCQkJPG9wdGlvbnM+CgkJCTxvcHRpb24gbmFtZT0iY3NzX2NsYXNzIj48IVtDREFUQVtdXT48L29wdGlvbj4KCQkJPHZhbHVlPjwvdmFsdWU+CgkJCTwvb3B0aW9ucz4KPC9maWVsZD4KCTxmaWVsZCBpZD0iNDMiCgkJdHlwZT0iRGlzcG9zaXRpb25Gcm9tRW1haWxBZGRyZXNzRmllbGQiCgkJdmFsaWRhdGlvbl90eXBlPSJub25lIgoJCW9yZGVyX2J5PSIzIgoJCXJlcXVpcmVkPSIwIgoJCWhpZGVfbGFiZWw9IjAiCgkJYWxpYXM9IiI+CgkJCTxmaWVsZF9uYW1lPjwhW0NEQVRBW1lvdXIgRW1haWwgQWRkcmVzc11dPjwvZmllbGRfbmFtZT4KCQkJPG9wdGlvbnM+CgkJCTxvcHRpb24gbmFtZT0iZW1haWxfc3ViamVjdCI+PCFbQ0RBVEFbRW1haWwgZnJvbSBTaXRlXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iZW1haWxfZnJvbV9uYW1lIj48IVtDREFUQVtGb3JtIEJ1aWxkZXJdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJzZW5kX3VzZXJfY29weSI+PCFbQ0RBVEFbY11dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9InNlbmRfdXNlcl9sYWJlbCI+PCFbQ0RBVEFbU2VuZCBtZSBhIGNvcHkgb2YgZm9ybV1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImZpZWxkX2FsaWFzIj48IVtDREFUQVtdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJqYXZhc2NyaXB0Ij48IVtDREFUQVtdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJodG1sX2VtYWlsIj48IVtDREFUQVswXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iZW1haWxfdGVtcGxhdGUiPjwhW0NEQVRBW0Zvcm1CdWlsZGVyIFN1Ym1pc3Npb24KRm9ybSBOYW1lOiB7JHN1Yl9mb3JtX25hbWV9CkRhdGUgb2YgU3VibWlzc2lvbjogeyRzdWJfZGF0ZX0KWW91ciBzZXJ2ZXI6IHskc3ViX2hvc3R9CklQIGFkZHJlc3Mgb2YgcGVyc29uIHVzaW5nIGZvcm06IHskc3ViX3NvdXJjZV9pcH0KVVJMIG9mIHBhZ2UgY29udGFpbmluZyBmb3JtOiB7JHN1Yl91cmx9CkZvcm1CdWlsZGVyIHZlcnNpb246IHskZmJfdmVyc2lvbn0KVGFiIENoYXJhY3RlcjogeyRUQUJ9Ci0+Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KWW91ciBOYW1lOiB7JGZsZF80fQpZb3VyIEVtYWlsIEFkZHJlc3M6IHskZmxkXzQzfQpFbWFpbCBBZ2FpbjogeyRmbGRfNDJ9ClN1YmplY3Q6IHskZmxkXzZ9Ck1lc3NhZ2U6IHskZm9vfQpdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJlbWFpbF9lbmNvZGluZyI+PCFbQ0RBVEFbdXRmLThdXT48L29wdGlvbj4KCQkJPHZhbHVlPjwvdmFsdWU+CgkJCTwvb3B0aW9ucz4KPC9maWVsZD4KCTxmaWVsZCBpZD0iNDIiCgkJdHlwZT0iRnJvbUVtYWlsQWRkcmVzc0FnYWluRmllbGQiCgkJdmFsaWRhdGlvbl90eXBlPSIiCgkJb3JkZXJfYnk9IjQiCgkJcmVxdWlyZWQ9IjAiCgkJaGlkZV9sYWJlbD0iMCIKCQlhbGlhcz0iIj4KCQkJPGZpZWxkX25hbWU+PCFbQ0RBVEFbRW1haWwgQWdhaW5dXT48L2ZpZWxkX25hbWU+CgkJCTxvcHRpb25zPgoJCQk8b3B0aW9uIG5hbWU9ImZpZWxkX3RvX3ZhbGlkYXRlIj48IVtDREFUQVtZb3VyIEVtYWlsIEFkZHJlc3NdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJmaWVsZF9hbGlhcyI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iY3NzX2NsYXNzIj48IVtDREFUQVtdXT48L29wdGlvbj4KCQkJPHZhbHVlPjwvdmFsdWU+CgkJCTwvb3B0aW9ucz4KPC9maWVsZD4KCTxmaWVsZCBpZD0iNiIKCQl0eXBlPSJGcm9tRW1haWxTdWJqZWN0RmllbGQiCgkJdmFsaWRhdGlvbl90eXBlPSIiCgkJb3JkZXJfYnk9IjUiCgkJcmVxdWlyZWQ9IjAiCgkJaGlkZV9sYWJlbD0iMCIKCQlhbGlhcz0iIj4KCQkJPGZpZWxkX25hbWU+PCFbQ0RBVEFbU3ViamVjdF1dPjwvZmllbGRfbmFtZT4KCQkJPG9wdGlvbnM+CgkJCTxvcHRpb24gbmFtZT0iY3NzX2NsYXNzIj48IVtDREFUQVtdXT48L29wdGlvbj4KCQkJPHZhbHVlPjwvdmFsdWU+CgkJCTwvb3B0aW9ucz4KPC9maWVsZD4KCTxmaWVsZCBpZD0iNyIKCQl0eXBlPSJUZXh0QXJlYUZpZWxkIgoJCXZhbGlkYXRpb25fdHlwZT0iIgoJCW9yZGVyX2J5PSI2IgoJCXJlcXVpcmVkPSIxIgoJCWhpZGVfbGFiZWw9IjAiCgkJYWxpYXM9IiI+CgkJCTxmaWVsZF9uYW1lPjwhW0NEQVRBW01lc3NhZ2VdXT48L2ZpZWxkX25hbWU+CgkJCTxvcHRpb25zPgoJCQk8b3B0aW9uIG5hbWU9InJvd3MiPjwhW0NEQVRBWzVdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJjb2xzIj48IVtDREFUQVs2MF1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImNzc19jbGFzcyI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iZmllbGRfYWxpYXMiPjwhW0NEQVRBW21lc3NhZ2VdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJkZWZhdWx0Ij48IVtDREFUQVtFbnRlciBZb3VyIE1lc3NhZ2UgSGVyZV1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImNsZWFyX2RlZmF1bHQiPjwhW0NEQVRBWzFdXT48L29wdGlvbj4KCQkJPHZhbHVlPjwvdmFsdWU+CgkJCTwvb3B0aW9ucz4KPC9maWVsZD4KCTxmaWVsZCBpZD0iMTA0IgoJCXR5cGU9IkRpc3Bvc2l0aW9uRW1haWwiCgkJdmFsaWRhdGlvbl90eXBlPSIiCgkJb3JkZXJfYnk9IjciCgkJcmVxdWlyZWQ9IjAiCgkJaGlkZV9sYWJlbD0iMCIKCQlhbGlhcz0iIj4KCQkJPGZpZWxkX25hbWU+PCFbQ0RBVEFbU2VuZCBUb11dPjwvZmllbGRfbmFtZT4KCQkJPG9wdGlvbnM+CgkJCTxvcHRpb24gbmFtZT0iZW1haWxfc3ViamVjdCI+PCFbQ0RBVEFbQ29udGFjdCBGb3JtIFN1Ym1pc3Npb25dXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJlbWFpbF9mcm9tX25hbWUiPjwhW0NEQVRBW0Zvcm0gQnVpbGRlcl1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImVtYWlsX2Zyb21fYWRkcmVzcyI+PCFbQ0RBVEFbd2Vic2l0ZUB5b3VyZG9tYWluLmNvbV1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImRlc3RpbmF0aW9uX2FkZHJlc3MiPjwhW0NEQVRBW3lvdUB5b3VyZG9tYWluLmNvbV1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImZpZWxkX2FsaWFzIj48IVtDREFUQVtdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJodG1sX2VtYWlsIj48IVtDREFUQVsxXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iZW1haWxfdGVtcGxhdGUiPjwhW0NEQVRBW11dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImVtYWlsX2VuY29kaW5nIj48IVtDREFUQVt1dGYtOF1dPjwvb3B0aW9uPgoJCQk8dmFsdWU+PC92YWx1ZT4KCQkJPC9vcHRpb25zPgo8L2ZpZWxkPgoJPGZpZWxkIGlkPSIxMDUiCgkJdHlwZT0iRmllbGRzZXRFbmQiCgkJdmFsaWRhdGlvbl90eXBlPSIiCgkJb3JkZXJfYnk9IjgiCgkJcmVxdWlyZWQ9IjAiCgkJaGlkZV9sYWJlbD0iMCIKCQlhbGlhcz0iIj4KCQkJPGZpZWxkX25hbWU+PCFbQ0RBVEFbZmllbGRzZXQgZW5kXV0+PC9maWVsZF9uYW1lPgoJCQk8b3B0aW9ucz4KCQkJPG9wdGlvbiBuYW1lPSJmaWVsZF9hbGlhcyI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iY3NzX2NsYXNzIj48IVtDREFUQVtdXT48L29wdGlvbj4KCQkJPHZhbHVlPjwvdmFsdWU+CgkJCTwvb3B0aW9ucz4KPC9maWVsZD4KPC9mb3JtPgo=]]></data>
	</file>
	<file>
	  <filename>/includes/default.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyogU2FtcGxlIEZvcm1CdWlsZGVyIENTUyBiYXNlICovCmZvcm0ge21hcmdpbi10b3A6MH0KZm9ybSwgdGQsIHRoLCBsaSB7IGZvbnQtc2l6ZTogMTAwJX0KZm9ybSBkaXYge21hcmdpbi1ib3R0b206MH0KZmllbGRzZXQgZGl2IHsKCW1hcmdpbi1ib3R0b206MC41ZW07CgltYXJnaW4tbGVmdDoxZW07Cn0KZmllbGRzZXQgZGl2IGRpdiB7CgltYXJnaW4tdG9wOjAuNWVtOwoJbWFyZ2luLWxlZnQ6MWVtCn0KZmllbGRzZXQgewoJbWFyZ2luLWJvdHRvbToxZW07Cglib3JkZXI6MXB4IHNvbGlkICNGNjA7CglwYWRkaW5nOjAuNWVtCn0KZmllbGRzZXQgbGFiZWwgewoJd2lkdGg6YXV0bzsKfQpsZWdlbmQgewoJY29sb3I6I0ZGRjsKCWJhY2tncm91bmQ6I0Y2MDsKCWZvbnQtc3R5bGU6aXRhbGljOwoJZm9udC1zaXplOjEuMmVtOwoJbWFyZ2luLWJvdHRvbTowLjVlbTsKCXBhZGRpbmc6MC4yZW07Cgl3aWR0aDphdXRvOwoJYm9yZGVyOjFweCBzb2xpZCAjQ0NDCn0KdGV4dGFyZWEgewoJbWFyZ2luOiAwLjVlbSAwOwoJd2lkdGg6OTglOwoJaGVpZ2h0OiA2ZW0KfQoKLyogQXBwbHkgdGhpcyBjbGFzcyB0byB0ZXh0L3NlbGVjdCBpbnB1dCBmaWVsZHMgd2l0aCBzaG9ydGVyIGxhYmVscwoJdG8gaGVscCBhbGlnbm1lbnQgKi8KLnNob3J0LWxhYmVsIGxhYmVsIHtmbG9hdDpsZWZ0OyB3aWR0aDoxMGVtfQouc2hvcnQtbGFiZWwgZmllbGRzZXQgZGl2IGlucHV0LAouc2hvcnQtbGFiZWwgZmllbGRzZXQgZGl2IHNlbGVjdCB7d2lkdGg6MTZlbX0KCi8qIFByZXR0eSB1cCB5b3VyIENhcHRjaGEgaW1hZ2Ugb3V0cHV0ICovCi5jYXB0Y2hhIHsKCW1hcmdpbjowLjVlbSAwOwoJd2lkdGg6MjAwcHg7Cgl0ZXh0LWFsaWduOmNlbnRlcgp9Ci5jYXB0Y2hhIGltZyB7Ym9yZGVyOjFweCBzb2xpZCAjRjYwOyBtYXJnaW4tYm90dG9tOjAuNWVtfQouY2FwdGNoYSBpbnB1dCB7d2lkdGg6MTk2cHg7IG1hcmdpbi10b3A6MC41ZW19CgovKiBKdXN0IGEgYml0IG1vcmUgcm9vbSBmb3IgdGhlIFN1Ym1pdCBidXR0b24gKi8KLnN1Ym1pdCB7bWFyZ2luLXRvcDowLjVlbX0KCi8qIEFwcGx5IHRoaXMgY2xhc3MgdG8gdGV4dC9zZWxlY3QgaW5wdXQgZmllbGRzIHdpdGggc2hvcnRlciBsYWJlbHMKCXRvIGhlbHAgYWxpZ25tZW50ICovCi5zaG9ydC1sYWJlbCBsYWJlbCB7ZmxvYXQ6bGVmdDsgd2lkdGg6MTBlbX0KLnNob3J0LWxhYmVsIGZpZWxkc2V0IGRpdiBpbnB1dCwKLnNob3J0LWxhYmVsIGZpZWxkc2V0IGRpdiBzZWxlY3Qge3dpZHRoOjE2ZW19CgovKiBQcmV0dHkgdXAgeW91ciBDYXB0Y2hhIGltYWdlIG91dHB1dCAqLwouY2FwdGNoYSB7CgltYXJnaW46MC41ZW0gMDsKCXdpZHRoOjIwMHB4OwoJdGV4dC1hbGlnbjpjZW50ZXIKfQouY2FwdGNoYSBpbWcge2JvcmRlcjoxcHggc29saWQgI0Y2MDsgbWFyZ2luLWJvdHRvbTowLjVlbX0KLmNhcHRjaGEgaW5wdXQge3dpZHRoOjE5NnB4OyBtYXJnaW4tdG9wOjAuNWVtfQoKLyogSnVzdCBhIGJpdCBtb3JlIHJvb20gZm9yIHRoZSBTdWJtaXQgYnV0dG9uICovCi5zdWJtaXQge21hcmdpbi10b3A6MC41ZW19CgouY29udGFjdGZvcm0gaW5wdXQge2JvcmRlcjogMXB4IHNvbGlkICNmNjA7fQouY29udGFjdGZvcm0gaW5wdXQuY2hlY2tib3gge2JvcmRlcjogbm9uZTt9Ci5jb250YWN0Zm9ybSBsYWJlbCB7CglkaXNwbGF5OiBibG9jazsKCWZsb2F0OiBsZWZ0OwoJd2lkdGg6IDE1MHB4Owp9Ci5jb250YWN0Zm9ybSBsYWJlbC5sYWJlbCB7CglkaXNwbGF5OiBpbmxpbmU7CglmbG9hdDogbm9uZTsKCXdpZHRoOiA1MHB4OwoJZm9udC1zaXplOiAxMHB4Owp9Ci5jb250YWN0Zm9ybSB0ZXh0YXJlYSB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjZmZjOwoJYm9yZGVyOiAxcHggc29saWQgI2Y2MDsKfQouZm9ybWJ1aWxkZXJmb3JtIC5tZXNzYWdlIHsKCWxpbmUtaGVpZ2h0OiAxNnB4OwoJcGFkZGluZzogMCAwIDhweCAwOwp9]]></data>
	</file>
	<file>
	  <filename>/includes/fb_jquery.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[alF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigkKSB7CgoJJCgiLm1vZHVsZV9mYl90YWJsZSIpLnRhYmxlRG5EKHsKCQoJCW9uRHJhZ0NsYXNzOiAicm93MWhvdmVyIiwKCQlvbkRyb3A6IGZ1bmN0aW9uKHRhYmxlLCByb3cpIHsKCQkKCQkJCXZhciB0b3RhbHJvd3MgPSBqUXVlcnkoIi5tb2R1bGVfZmJfdGFibGUiKS5maW5kKCJ0Ym9keSB0ciIpLnNpemUoKTsKCQkJCQoJCQkJalF1ZXJ5KCIubW9kdWxlX2ZiX3RhYmxlIikuZmluZCgidGJvZHkgdHIiKS5yZW1vdmVDbGFzcygpOwoJCQkJalF1ZXJ5KCIubW9kdWxlX2ZiX3RhYmxlIikuZmluZCgidGJvZHkgdHI6bnRoLWNoaWxkKDJuKzEpIikuYWRkQ2xhc3MoInJvdzEiKTsKCQkJCWpRdWVyeSgiLm1vZHVsZV9mYl90YWJsZSIpLmZpbmQoInRib2R5IHRyOm50aC1jaGlsZCgybikiKS5hZGRDbGFzcygicm93MiIpOwoJCQkJCgkJCQl2YXIgcm93cyA9IHRhYmxlLnRCb2RpZXNbMF0ucm93czsKCQkJCXZhciBzb3J0c3RyID0gcm93c1swXS5pZDsKCQkJCWZvciAodmFyIGk9MTsgaTxyb3dzLmxlbmd0aDsgaSsrKSB7CgkJCQkJc29ydHN0ciArPSAiLCIrcm93c1tpXS5pZDsKCQkJCX0KCQkJCQoJCQkJJCgnI2ZicnBfc29ydCcpLnZhbChzb3J0c3RyKTsKCQkJCSQoJy5yZW9yZGVybWVzc2FnZScpLnNob3coKTsKCQl9Cgl9KTsKICAgIGpRdWVyeSgiLnVwZG93biIpLmhpZGUoKTsKfSk7]]></data>
	</file>
	<file>
	  <filename>/includes/fb_jquery_functions.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[alF1ZXJ5LmZuLmZiX2RlbGV0ZV9maWVsZCA9IGZ1bmN0aW9uKG1lc3NhZ2UpIHsKCiAgICBpZiAoY29uZmlybShtZXNzYWdlKSkgewoKCQl2YXIgdXJsID0galF1ZXJ5KHRoaXMpLmF0dHIoImhyZWYiKTsKCQl2YXIgcGFyZW50ID0galF1ZXJ5KHRoaXMpLmNsb3Nlc3QoInRyIik7CgkJCgkJalF1ZXJ5LmFqYXgoewoJCQl0eXBlOiAiR0VUIiwKCQkJdXJsOiB1cmwsCgkJCWVycm9yOiBmdW5jdGlvbigpIHsKCQkJCQoJCQkJYWxlcnQoJ1NvcnJ5LiBUaGVyZSB3YXMgYW4gZXJyb3IuJyk7CgkJCX0sCQkJCgkJCXN1Y2Nlc3M6IGZ1bmN0aW9uKCkgewoJCQkKCQkJCXBhcmVudC5mYWRlT3V0KCIxMDAwIiwgZnVuY3Rpb24oKSB7CgoJCQkJCXBhcmVudC5yZW1vdmUoKTsKCQkJCQl2YXIgdG90YWxyb3dzID0galF1ZXJ5KCIubW9kdWxlX2ZiX3RhYmxlIikuZmluZCgidGJvZHkgdHIiKS5zaXplKCk7CgkJCQkKCQkJCQlqUXVlcnkoIi5tb2R1bGVfZmJfdGFibGUiKS5maW5kKCJ0Ym9keSB0ciIpLnJlbW92ZUNsYXNzKCk7CgkJCQkJalF1ZXJ5KCIubW9kdWxlX2ZiX3RhYmxlIikuZmluZCgidGJvZHkgdHI6bnRoLWNoaWxkKDJuKzEpIikuYWRkQ2xhc3MoInJvdzEiKTsKCQkJCQlqUXVlcnkoIi5tb2R1bGVfZmJfdGFibGUiKS5maW5kKCJ0Ym9keSB0cjpudGgtY2hpbGQoMm4pIikuYWRkQ2xhc3MoInJvdzIiKTsKCQkJCX0pOwkJCQoJCQl9CQoJCX0pOwoJCQoJfQoJCgp9OwoKalF1ZXJ5LmZuLmZiX2dldF90ZW1wbGF0ZSA9IGZ1bmN0aW9uKG1lc3NhZ2UsIHVybCkgewoKCXZhciB2YWx1ZSA9IGpRdWVyeSh0aGlzKS52YWwoKTsKCQkKCWlmIChjb25maXJtKG1lc3NhZ2UpKSB7CgkJCQoJCWpRdWVyeS5hamF4KHsKCQkJdHlwZTogIkdFVCIsCgkJCXVybDogdXJsLAkJCQoJCQlkYXRhOiAnJm0xX2ZicnBfdGlkPScrdmFsdWUsCgkJCWVycm9yOiBmdW5jdGlvbigpIHsKCQkJCQoJCQkJYWxlcnQoJ1NvcnJ5LiBUaGVyZSB3YXMgYW4gZXJyb3IuJyk7CgkJCX0sCgkJCXN1Y2Nlc3M6IGZ1bmN0aW9uKGRhdGEpIHsKCQkJCQoJCQkJalF1ZXJ5KCIjZmJfZm9ybV90ZW1wbGF0ZSIpLnZhbChkYXRhKTsKCQkJfQoJCX0pOwkKCQkJCQoJCgl9CgkKfTsKCmpRdWVyeS5mbi5mYl9hZG1pbl91cGRhdGVfZmllbGRfcmVxdWlyZWQgPSBmdW5jdGlvbigpIHsKCgl2YXIgdXJsID0galF1ZXJ5KHRoaXMpLmF0dHIoImhyZWYiKTsKCXZhciBjdXJyZW50ID0galF1ZXJ5KHRoaXMpOwoJCglqUXVlcnkuYWpheCh7CgkJdHlwZTogIkdFVCIsCgkJdXJsOiB1cmwsCgkJZXJyb3I6IGZ1bmN0aW9uKCkgewoJCQkJCgkJCWFsZXJ0KCdTb3JyeS4gVGhlcmUgd2FzIGFuIGVycm9yLicpOwoJCX0sCQkJCgkJc3VjY2VzczogZnVuY3Rpb24oKSB7CgkJCQoJCQlpZihjdXJyZW50Lmhhc0NsYXNzKCJ0cnVlIikpIHsKCQkKCQkJCXZhciByZXBsYWNldXJsID0gY3VycmVudC5hdHRyKCJocmVmIikucmVwbGFjZSgnZmJycF9hY3RpdmU9b2ZmJywnZmJycF9hY3RpdmU9b24nKTsKCQkJCXZhciByZXBsYWNlcGljID0gY3VycmVudC5jaGlsZHJlbigpLmF0dHIoInNyYyIpLnJlcGxhY2UoJ3RydWUnLCAnZmFsc2UnKTsKCQkJCXZhciByZXBsYWNlb3RoZXIgPSAnZmFsc2UnOwkJCQoJCQkJY3VycmVudC5yZW1vdmVDbGFzcygidHJ1ZSIpLmFkZENsYXNzKCJmYWxzZSIpOwoJCQkKCQkJfSBlbHNlIHsKCQkJCQoJCQkJdmFyIHJlcGxhY2V1cmwgPSBjdXJyZW50LmF0dHIoImhyZWYiKS5yZXBsYWNlKCdmYnJwX2FjdGl2ZT1vbicsJ2ZicnBfYWN0aXZlPW9mZicpOwoJCQkJdmFyIHJlcGxhY2VwaWMgPSBjdXJyZW50LmNoaWxkcmVuKCkuYXR0cigic3JjIikucmVwbGFjZSgnZmFsc2UnLCAndHJ1ZScpOwoJCQkJdmFyIHJlcGxhY2VvdGhlciA9ICd0cnVlJzsKCQkJCWN1cnJlbnQucmVtb3ZlQ2xhc3MoImZhbHNlIikuYWRkQ2xhc3MoInRydWUiKTsKCQkKCQkJfQoJCQoJCQljdXJyZW50LmF0dHIoeyBocmVmIDogcmVwbGFjZXVybCB9KTsKCQkJY3VycmVudC5jaGlsZHJlbigpLmF0dHIoeyBzcmMgOiByZXBsYWNlcGljLCB0aXRsZSA6IHJlcGxhY2VvdGhlciwgYWx0IDogcmVwbGFjZW90aGVyIH0pOwkJCgkJCQoJCQkKCQl9Cgl9KTsJCQp9OwoKalF1ZXJ5LmZuLmZiX3NldF90YWIgPSBmdW5jdGlvbigpIHsKCXZhciBhY3RpdmUgPSBqUXVlcnkoJyNwYWdlX3RhYnMgPiAuYWN0aXZlJyk7CglqUXVlcnkoJyNmYnJfYXRhYicpLnZhbChhY3RpdmUuYXR0cignaWQnKSk7Cn0=]]></data>
	</file>
	<file>
	  <filename>/includes/jquery-1.4.2.min.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyohCiAqIGpRdWVyeSBKYXZhU2NyaXB0IExpYnJhcnkgdjEuNC4yCiAqIGh0dHA6Ly9qcXVlcnkuY29tLwogKgogKiBDb3B5cmlnaHQgMjAxMCwgSm9obiBSZXNpZwogKiBEdWFsIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgb3IgR1BMIFZlcnNpb24gMiBsaWNlbnNlcy4KICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQogKgogKiBJbmNsdWRlcyBTaXp6bGUuanMKICogaHR0cDovL3NpenpsZWpzLmNvbS8KICogQ29weXJpZ2h0IDIwMTAsIFRoZSBEb2pvIEZvdW5kYXRpb24KICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCwgQlNELCBhbmQgR1BMIExpY2Vuc2VzLgogKgogKiBEYXRlOiBTYXQgRmViIDEzIDIyOjMzOjQ4IDIwMTAgLTA1MDAKICovCihmdW5jdGlvbihBLHcpe2Z1bmN0aW9uIG1hKCl7aWYoIWMuaXNSZWFkeSl7dHJ5e3MuZG9jdW1lbnRFbGVtZW50LmRvU2Nyb2xsKCJsZWZ0Iil9Y2F0Y2goYSl7c2V0VGltZW91dChtYSwxKTtyZXR1cm59Yy5yZWFkeSgpfX1mdW5jdGlvbiBRYShhLGIpe2Iuc3JjP2MuYWpheCh7dXJsOmIuc3JjLGFzeW5jOmZhbHNlLGRhdGFUeXBlOiJzY3JpcHQifSk6Yy5nbG9iYWxFdmFsKGIudGV4dHx8Yi50ZXh0Q29udGVudHx8Yi5pbm5lckhUTUx8fCIiKTtiLnBhcmVudE5vZGUmJmIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChiKX1mdW5jdGlvbiBYKGEsYixkLGYsZSxqKXt2YXIgaT1hLmxlbmd0aDtpZih0eXBlb2YgYj09PSJvYmplY3QiKXtmb3IodmFyIG8gaW4gYilYKGEsbyxiW29dLGYsZSxkKTtyZXR1cm4gYX1pZihkIT09dyl7Zj0haiYmZiYmYy5pc0Z1bmN0aW9uKGQpO2ZvcihvPTA7bzxpO28rKyllKGFbb10sYixmP2QuY2FsbChhW29dLG8sZShhW29dLGIpKTpkLGopO3JldHVybiBhfXJldHVybiBpPwplKGFbMF0sYik6d31mdW5jdGlvbiBKKCl7cmV0dXJuKG5ldyBEYXRlKS5nZXRUaW1lKCl9ZnVuY3Rpb24gWSgpe3JldHVybiBmYWxzZX1mdW5jdGlvbiBaKCl7cmV0dXJuIHRydWV9ZnVuY3Rpb24gbmEoYSxiLGQpe2RbMF0udHlwZT1hO3JldHVybiBjLmV2ZW50LmhhbmRsZS5hcHBseShiLGQpfWZ1bmN0aW9uIG9hKGEpe3ZhciBiLGQ9W10sZj1bXSxlPWFyZ3VtZW50cyxqLGksbyxrLG4scjtpPWMuZGF0YSh0aGlzLCJldmVudHMiKTtpZighKGEubGl2ZUZpcmVkPT09dGhpc3x8IWl8fCFpLmxpdmV8fGEuYnV0dG9uJiZhLnR5cGU9PT0iY2xpY2siKSl7YS5saXZlRmlyZWQ9dGhpczt2YXIgdT1pLmxpdmUuc2xpY2UoMCk7Zm9yKGs9MDtrPHUubGVuZ3RoO2srKyl7aT11W2tdO2kub3JpZ1R5cGUucmVwbGFjZShPLCIiKT09PWEudHlwZT9mLnB1c2goaS5zZWxlY3Rvcik6dS5zcGxpY2Uoay0tLDEpfWo9YyhhLnRhcmdldCkuY2xvc2VzdChmLGEuY3VycmVudFRhcmdldCk7bj0wO2ZvcihyPQpqLmxlbmd0aDtuPHI7bisrKWZvcihrPTA7azx1Lmxlbmd0aDtrKyspe2k9dVtrXTtpZihqW25dLnNlbGVjdG9yPT09aS5zZWxlY3Rvcil7bz1qW25dLmVsZW07Zj1udWxsO2lmKGkucHJlVHlwZT09PSJtb3VzZWVudGVyInx8aS5wcmVUeXBlPT09Im1vdXNlbGVhdmUiKWY9YyhhLnJlbGF0ZWRUYXJnZXQpLmNsb3Nlc3QoaS5zZWxlY3RvcilbMF07aWYoIWZ8fGYhPT1vKWQucHVzaCh7ZWxlbTpvLGhhbmRsZU9iajppfSl9fW49MDtmb3Iocj1kLmxlbmd0aDtuPHI7bisrKXtqPWRbbl07YS5jdXJyZW50VGFyZ2V0PWouZWxlbTthLmRhdGE9ai5oYW5kbGVPYmouZGF0YTthLmhhbmRsZU9iaj1qLmhhbmRsZU9iajtpZihqLmhhbmRsZU9iai5vcmlnSGFuZGxlci5hcHBseShqLmVsZW0sZSk9PT1mYWxzZSl7Yj1mYWxzZTticmVha319cmV0dXJuIGJ9fWZ1bmN0aW9uIHBhKGEsYil7cmV0dXJuImxpdmUuIisoYSYmYSE9PSIqIj9hKyIuIjoiIikrYi5yZXBsYWNlKC9cLi9nLCJgIikucmVwbGFjZSgvIC9nLAoiJiIpfWZ1bmN0aW9uIHFhKGEpe3JldHVybiFhfHwhYS5wYXJlbnROb2RlfHxhLnBhcmVudE5vZGUubm9kZVR5cGU9PT0xMX1mdW5jdGlvbiByYShhLGIpe3ZhciBkPTA7Yi5lYWNoKGZ1bmN0aW9uKCl7aWYodGhpcy5ub2RlTmFtZT09PShhW2RdJiZhW2RdLm5vZGVOYW1lKSl7dmFyIGY9Yy5kYXRhKGFbZCsrXSksZT1jLmRhdGEodGhpcyxmKTtpZihmPWYmJmYuZXZlbnRzKXtkZWxldGUgZS5oYW5kbGU7ZS5ldmVudHM9e307Zm9yKHZhciBqIGluIGYpZm9yKHZhciBpIGluIGZbal0pYy5ldmVudC5hZGQodGhpcyxqLGZbal1baV0sZltqXVtpXS5kYXRhKX19fSl9ZnVuY3Rpb24gc2EoYSxiLGQpe3ZhciBmLGUsajtiPWImJmJbMF0/YlswXS5vd25lckRvY3VtZW50fHxiWzBdOnM7aWYoYS5sZW5ndGg9PT0xJiZ0eXBlb2YgYVswXT09PSJzdHJpbmciJiZhWzBdLmxlbmd0aDw1MTImJmI9PT1zJiYhdGEudGVzdChhWzBdKSYmKGMuc3VwcG9ydC5jaGVja0Nsb25lfHwhdWEudGVzdChhWzBdKSkpe2U9CnRydWU7aWYoaj1jLmZyYWdtZW50c1thWzBdXSlpZihqIT09MSlmPWp9aWYoIWYpe2Y9Yi5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7Yy5jbGVhbihhLGIsZixkKX1pZihlKWMuZnJhZ21lbnRzW2FbMF1dPWo/ZjoxO3JldHVybntmcmFnbWVudDpmLGNhY2hlYWJsZTplfX1mdW5jdGlvbiBLKGEsYil7dmFyIGQ9e307Yy5lYWNoKHZhLmNvbmNhdC5hcHBseShbXSx2YS5zbGljZSgwLGIpKSxmdW5jdGlvbigpe2RbdGhpc109YX0pO3JldHVybiBkfWZ1bmN0aW9uIHdhKGEpe3JldHVybiJzY3JvbGxUbyJpbiBhJiZhLmRvY3VtZW50P2E6YS5ub2RlVHlwZT09PTk/YS5kZWZhdWx0Vmlld3x8YS5wYXJlbnRXaW5kb3c6ZmFsc2V9dmFyIGM9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gbmV3IGMuZm4uaW5pdChhLGIpfSxSYT1BLmpRdWVyeSxTYT1BLiQscz1BLmRvY3VtZW50LFQsVGE9L15bXjxdKig8W1x3XFddKz4pW14+XSokfF4jKFtcdy1dKykkLyxVYT0vXi5bXjojXFtcLixdKiQvLFZhPS9cUy8sCldhPS9eKFxzfFx1MDBBMCkrfChcc3xcdTAwQTApKyQvZyxYYT0vXjwoXHcrKVxzKlwvPz4oPzo8XC9cMT4pPyQvLFA9bmF2aWdhdG9yLnVzZXJBZ2VudCx4YT1mYWxzZSxRPVtdLEwsJD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLGFhPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksYmE9QXJyYXkucHJvdG90eXBlLnB1c2gsUj1BcnJheS5wcm90b3R5cGUuc2xpY2UseWE9QXJyYXkucHJvdG90eXBlLmluZGV4T2Y7Yy5mbj1jLnByb3RvdHlwZT17aW5pdDpmdW5jdGlvbihhLGIpe3ZhciBkLGY7aWYoIWEpcmV0dXJuIHRoaXM7aWYoYS5ub2RlVHlwZSl7dGhpcy5jb250ZXh0PXRoaXNbMF09YTt0aGlzLmxlbmd0aD0xO3JldHVybiB0aGlzfWlmKGE9PT0iYm9keSImJiFiKXt0aGlzLmNvbnRleHQ9czt0aGlzWzBdPXMuYm9keTt0aGlzLnNlbGVjdG9yPSJib2R5Ijt0aGlzLmxlbmd0aD0xO3JldHVybiB0aGlzfWlmKHR5cGVvZiBhPT09InN0cmluZyIpaWYoKGQ9VGEuZXhlYyhhKSkmJgooZFsxXXx8IWIpKWlmKGRbMV0pe2Y9Yj9iLm93bmVyRG9jdW1lbnR8fGI6cztpZihhPVhhLmV4ZWMoYSkpaWYoYy5pc1BsYWluT2JqZWN0KGIpKXthPVtzLmNyZWF0ZUVsZW1lbnQoYVsxXSldO2MuZm4uYXR0ci5jYWxsKGEsYix0cnVlKX1lbHNlIGE9W2YuY3JlYXRlRWxlbWVudChhWzFdKV07ZWxzZXthPXNhKFtkWzFdXSxbZl0pO2E9KGEuY2FjaGVhYmxlP2EuZnJhZ21lbnQuY2xvbmVOb2RlKHRydWUpOmEuZnJhZ21lbnQpLmNoaWxkTm9kZXN9cmV0dXJuIGMubWVyZ2UodGhpcyxhKX1lbHNle2lmKGI9cy5nZXRFbGVtZW50QnlJZChkWzJdKSl7aWYoYi5pZCE9PWRbMl0pcmV0dXJuIFQuZmluZChhKTt0aGlzLmxlbmd0aD0xO3RoaXNbMF09Yn10aGlzLmNvbnRleHQ9czt0aGlzLnNlbGVjdG9yPWE7cmV0dXJuIHRoaXN9ZWxzZSBpZighYiYmL15cdyskLy50ZXN0KGEpKXt0aGlzLnNlbGVjdG9yPWE7dGhpcy5jb250ZXh0PXM7YT1zLmdldEVsZW1lbnRzQnlUYWdOYW1lKGEpO3JldHVybiBjLm1lcmdlKHRoaXMsCmEpfWVsc2UgcmV0dXJuIWJ8fGIuanF1ZXJ5PyhifHxUKS5maW5kKGEpOmMoYikuZmluZChhKTtlbHNlIGlmKGMuaXNGdW5jdGlvbihhKSlyZXR1cm4gVC5yZWFkeShhKTtpZihhLnNlbGVjdG9yIT09dyl7dGhpcy5zZWxlY3Rvcj1hLnNlbGVjdG9yO3RoaXMuY29udGV4dD1hLmNvbnRleHR9cmV0dXJuIGMubWFrZUFycmF5KGEsdGhpcyl9LHNlbGVjdG9yOiIiLGpxdWVyeToiMS40LjIiLGxlbmd0aDowLHNpemU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sZW5ndGh9LHRvQXJyYXk6ZnVuY3Rpb24oKXtyZXR1cm4gUi5jYWxsKHRoaXMsMCl9LGdldDpmdW5jdGlvbihhKXtyZXR1cm4gYT09bnVsbD90aGlzLnRvQXJyYXkoKTphPDA/dGhpcy5zbGljZShhKVswXTp0aGlzW2FdfSxwdXNoU3RhY2s6ZnVuY3Rpb24oYSxiLGQpe3ZhciBmPWMoKTtjLmlzQXJyYXkoYSk/YmEuYXBwbHkoZixhKTpjLm1lcmdlKGYsYSk7Zi5wcmV2T2JqZWN0PXRoaXM7Zi5jb250ZXh0PXRoaXMuY29udGV4dDtpZihiPT09CiJmaW5kIilmLnNlbGVjdG9yPXRoaXMuc2VsZWN0b3IrKHRoaXMuc2VsZWN0b3I/IiAiOiIiKStkO2Vsc2UgaWYoYilmLnNlbGVjdG9yPXRoaXMuc2VsZWN0b3IrIi4iK2IrIigiK2QrIikiO3JldHVybiBmfSxlYWNoOmZ1bmN0aW9uKGEsYil7cmV0dXJuIGMuZWFjaCh0aGlzLGEsYil9LHJlYWR5OmZ1bmN0aW9uKGEpe2MuYmluZFJlYWR5KCk7aWYoYy5pc1JlYWR5KWEuY2FsbChzLGMpO2Vsc2UgUSYmUS5wdXNoKGEpO3JldHVybiB0aGlzfSxlcTpmdW5jdGlvbihhKXtyZXR1cm4gYT09PS0xP3RoaXMuc2xpY2UoYSk6dGhpcy5zbGljZShhLCthKzEpfSxmaXJzdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVxKDApfSxsYXN0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZXEoLTEpfSxzbGljZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnB1c2hTdGFjayhSLmFwcGx5KHRoaXMsYXJndW1lbnRzKSwic2xpY2UiLFIuY2FsbChhcmd1bWVudHMpLmpvaW4oIiwiKSl9LG1hcDpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soYy5tYXAodGhpcywKZnVuY3Rpb24oYixkKXtyZXR1cm4gYS5jYWxsKGIsZCxiKX0pKX0sZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHJldk9iamVjdHx8YyhudWxsKX0scHVzaDpiYSxzb3J0OltdLnNvcnQsc3BsaWNlOltdLnNwbGljZX07Yy5mbi5pbml0LnByb3RvdHlwZT1jLmZuO2MuZXh0ZW5kPWMuZm4uZXh0ZW5kPWZ1bmN0aW9uKCl7dmFyIGE9YXJndW1lbnRzWzBdfHx7fSxiPTEsZD1hcmd1bWVudHMubGVuZ3RoLGY9ZmFsc2UsZSxqLGksbztpZih0eXBlb2YgYT09PSJib29sZWFuIil7Zj1hO2E9YXJndW1lbnRzWzFdfHx7fTtiPTJ9aWYodHlwZW9mIGEhPT0ib2JqZWN0IiYmIWMuaXNGdW5jdGlvbihhKSlhPXt9O2lmKGQ9PT1iKXthPXRoaXM7LS1ifWZvcig7YjxkO2IrKylpZigoZT1hcmd1bWVudHNbYl0pIT1udWxsKWZvcihqIGluIGUpe2k9YVtqXTtvPWVbal07aWYoYSE9PW8paWYoZiYmbyYmKGMuaXNQbGFpbk9iamVjdChvKXx8Yy5pc0FycmF5KG8pKSl7aT1pJiYoYy5pc1BsYWluT2JqZWN0KGkpfHwKYy5pc0FycmF5KGkpKT9pOmMuaXNBcnJheShvKT9bXTp7fTthW2pdPWMuZXh0ZW5kKGYsaSxvKX1lbHNlIGlmKG8hPT13KWFbal09b31yZXR1cm4gYX07Yy5leHRlbmQoe25vQ29uZmxpY3Q6ZnVuY3Rpb24oYSl7QS4kPVNhO2lmKGEpQS5qUXVlcnk9UmE7cmV0dXJuIGN9LGlzUmVhZHk6ZmFsc2UscmVhZHk6ZnVuY3Rpb24oKXtpZighYy5pc1JlYWR5KXtpZighcy5ib2R5KXJldHVybiBzZXRUaW1lb3V0KGMucmVhZHksMTMpO2MuaXNSZWFkeT10cnVlO2lmKFEpe2Zvcih2YXIgYSxiPTA7YT1RW2IrK107KWEuY2FsbChzLGMpO1E9bnVsbH1jLmZuLnRyaWdnZXJIYW5kbGVyJiZjKHMpLnRyaWdnZXJIYW5kbGVyKCJyZWFkeSIpfX0sYmluZFJlYWR5OmZ1bmN0aW9uKCl7aWYoIXhhKXt4YT10cnVlO2lmKHMucmVhZHlTdGF0ZT09PSJjb21wbGV0ZSIpcmV0dXJuIGMucmVhZHkoKTtpZihzLmFkZEV2ZW50TGlzdGVuZXIpe3MuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsCkwsZmFsc2UpO0EuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsYy5yZWFkeSxmYWxzZSl9ZWxzZSBpZihzLmF0dGFjaEV2ZW50KXtzLmF0dGFjaEV2ZW50KCJvbnJlYWR5c3RhdGVjaGFuZ2UiLEwpO0EuYXR0YWNoRXZlbnQoIm9ubG9hZCIsYy5yZWFkeSk7dmFyIGE9ZmFsc2U7dHJ5e2E9QS5mcmFtZUVsZW1lbnQ9PW51bGx9Y2F0Y2goYil7fXMuZG9jdW1lbnRFbGVtZW50LmRvU2Nyb2xsJiZhJiZtYSgpfX19LGlzRnVuY3Rpb246ZnVuY3Rpb24oYSl7cmV0dXJuICQuY2FsbChhKT09PSJbb2JqZWN0IEZ1bmN0aW9uXSJ9LGlzQXJyYXk6ZnVuY3Rpb24oYSl7cmV0dXJuICQuY2FsbChhKT09PSJbb2JqZWN0IEFycmF5XSJ9LGlzUGxhaW5PYmplY3Q6ZnVuY3Rpb24oYSl7aWYoIWF8fCQuY2FsbChhKSE9PSJbb2JqZWN0IE9iamVjdF0ifHxhLm5vZGVUeXBlfHxhLnNldEludGVydmFsKXJldHVybiBmYWxzZTtpZihhLmNvbnN0cnVjdG9yJiYhYWEuY2FsbChhLCJjb25zdHJ1Y3RvciIpJiYhYWEuY2FsbChhLmNvbnN0cnVjdG9yLnByb3RvdHlwZSwKImlzUHJvdG90eXBlT2YiKSlyZXR1cm4gZmFsc2U7dmFyIGI7Zm9yKGIgaW4gYSk7cmV0dXJuIGI9PT13fHxhYS5jYWxsKGEsYil9LGlzRW1wdHlPYmplY3Q6ZnVuY3Rpb24oYSl7Zm9yKHZhciBiIGluIGEpcmV0dXJuIGZhbHNlO3JldHVybiB0cnVlfSxlcnJvcjpmdW5jdGlvbihhKXt0aHJvdyBhO30scGFyc2VKU09OOmZ1bmN0aW9uKGEpe2lmKHR5cGVvZiBhIT09InN0cmluZyJ8fCFhKXJldHVybiBudWxsO2E9Yy50cmltKGEpO2lmKC9eW1xdLDp7fVxzXSokLy50ZXN0KGEucmVwbGFjZSgvXFwoPzpbIlxcXC9iZm5ydF18dVswLTlhLWZBLUZdezR9KS9nLCJAIikucmVwbGFjZSgvIlteIlxcXG5ccl0qInx0cnVlfGZhbHNlfG51bGx8LT9cZCsoPzpcLlxkKik/KD86W2VFXVsrXC1dP1xkKyk/L2csIl0iKS5yZXBsYWNlKC8oPzpefDp8LCkoPzpccypcWykrL2csIiIpKSlyZXR1cm4gQS5KU09OJiZBLkpTT04ucGFyc2U/QS5KU09OLnBhcnNlKGEpOihuZXcgRnVuY3Rpb24oInJldHVybiAiKwphKSkoKTtlbHNlIGMuZXJyb3IoIkludmFsaWQgSlNPTjogIithKX0sbm9vcDpmdW5jdGlvbigpe30sZ2xvYmFsRXZhbDpmdW5jdGlvbihhKXtpZihhJiZWYS50ZXN0KGEpKXt2YXIgYj1zLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF18fHMuZG9jdW1lbnRFbGVtZW50LGQ9cy5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTtkLnR5cGU9InRleHQvamF2YXNjcmlwdCI7aWYoYy5zdXBwb3J0LnNjcmlwdEV2YWwpZC5hcHBlbmRDaGlsZChzLmNyZWF0ZVRleHROb2RlKGEpKTtlbHNlIGQudGV4dD1hO2IuaW5zZXJ0QmVmb3JlKGQsYi5maXJzdENoaWxkKTtiLnJlbW92ZUNoaWxkKGQpfX0sbm9kZU5hbWU6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYS5ub2RlTmFtZSYmYS5ub2RlTmFtZS50b1VwcGVyQ2FzZSgpPT09Yi50b1VwcGVyQ2FzZSgpfSxlYWNoOmZ1bmN0aW9uKGEsYixkKXt2YXIgZixlPTAsaj1hLmxlbmd0aCxpPWo9PT13fHxjLmlzRnVuY3Rpb24oYSk7aWYoZClpZihpKWZvcihmIGluIGEpe2lmKGIuYXBwbHkoYVtmXSwKZCk9PT1mYWxzZSlicmVha31lbHNlIGZvcig7ZTxqOyl7aWYoYi5hcHBseShhW2UrK10sZCk9PT1mYWxzZSlicmVha31lbHNlIGlmKGkpZm9yKGYgaW4gYSl7aWYoYi5jYWxsKGFbZl0sZixhW2ZdKT09PWZhbHNlKWJyZWFrfWVsc2UgZm9yKGQ9YVswXTtlPGomJmIuY2FsbChkLGUsZCkhPT1mYWxzZTtkPWFbKytlXSk7cmV0dXJuIGF9LHRyaW06ZnVuY3Rpb24oYSl7cmV0dXJuKGF8fCIiKS5yZXBsYWNlKFdhLCIiKX0sbWFrZUFycmF5OmZ1bmN0aW9uKGEsYil7Yj1ifHxbXTtpZihhIT1udWxsKWEubGVuZ3RoPT1udWxsfHx0eXBlb2YgYT09PSJzdHJpbmcifHxjLmlzRnVuY3Rpb24oYSl8fHR5cGVvZiBhIT09ImZ1bmN0aW9uIiYmYS5zZXRJbnRlcnZhbD9iYS5jYWxsKGIsYSk6Yy5tZXJnZShiLGEpO3JldHVybiBifSxpbkFycmF5OmZ1bmN0aW9uKGEsYil7aWYoYi5pbmRleE9mKXJldHVybiBiLmluZGV4T2YoYSk7Zm9yKHZhciBkPTAsZj1iLmxlbmd0aDtkPGY7ZCsrKWlmKGJbZF09PT0KYSlyZXR1cm4gZDtyZXR1cm4tMX0sbWVyZ2U6ZnVuY3Rpb24oYSxiKXt2YXIgZD1hLmxlbmd0aCxmPTA7aWYodHlwZW9mIGIubGVuZ3RoPT09Im51bWJlciIpZm9yKHZhciBlPWIubGVuZ3RoO2Y8ZTtmKyspYVtkKytdPWJbZl07ZWxzZSBmb3IoO2JbZl0hPT13OylhW2QrK109YltmKytdO2EubGVuZ3RoPWQ7cmV0dXJuIGF9LGdyZXA6ZnVuY3Rpb24oYSxiLGQpe2Zvcih2YXIgZj1bXSxlPTAsaj1hLmxlbmd0aDtlPGo7ZSsrKSFkIT09IWIoYVtlXSxlKSYmZi5wdXNoKGFbZV0pO3JldHVybiBmfSxtYXA6ZnVuY3Rpb24oYSxiLGQpe2Zvcih2YXIgZj1bXSxlLGo9MCxpPWEubGVuZ3RoO2o8aTtqKyspe2U9YihhW2pdLGosZCk7aWYoZSE9bnVsbClmW2YubGVuZ3RoXT1lfXJldHVybiBmLmNvbmNhdC5hcHBseShbXSxmKX0sZ3VpZDoxLHByb3h5OmZ1bmN0aW9uKGEsYixkKXtpZihhcmd1bWVudHMubGVuZ3RoPT09MilpZih0eXBlb2YgYj09PSJzdHJpbmciKXtkPWE7YT1kW2JdO2I9d31lbHNlIGlmKGImJgohYy5pc0Z1bmN0aW9uKGIpKXtkPWI7Yj13fWlmKCFiJiZhKWI9ZnVuY3Rpb24oKXtyZXR1cm4gYS5hcHBseShkfHx0aGlzLGFyZ3VtZW50cyl9O2lmKGEpYi5ndWlkPWEuZ3VpZD1hLmd1aWR8fGIuZ3VpZHx8Yy5ndWlkKys7cmV0dXJuIGJ9LHVhTWF0Y2g6ZnVuY3Rpb24oYSl7YT1hLnRvTG93ZXJDYXNlKCk7YT0vKHdlYmtpdClbIFwvXShbXHcuXSspLy5leGVjKGEpfHwvKG9wZXJhKSg/Oi4qdmVyc2lvbik/WyBcL10oW1x3Ll0rKS8uZXhlYyhhKXx8Lyhtc2llKSAoW1x3Ll0rKS8uZXhlYyhhKXx8IS9jb21wYXRpYmxlLy50ZXN0KGEpJiYvKG1vemlsbGEpKD86Lio/IHJ2OihbXHcuXSspKT8vLmV4ZWMoYSl8fFtdO3JldHVybnticm93c2VyOmFbMV18fCIiLHZlcnNpb246YVsyXXx8IjAifX0sYnJvd3Nlcjp7fX0pO1A9Yy51YU1hdGNoKFApO2lmKFAuYnJvd3Nlcil7Yy5icm93c2VyW1AuYnJvd3Nlcl09dHJ1ZTtjLmJyb3dzZXIudmVyc2lvbj1QLnZlcnNpb259aWYoYy5icm93c2VyLndlYmtpdCljLmJyb3dzZXIuc2FmYXJpPQp0cnVlO2lmKHlhKWMuaW5BcnJheT1mdW5jdGlvbihhLGIpe3JldHVybiB5YS5jYWxsKGIsYSl9O1Q9YyhzKTtpZihzLmFkZEV2ZW50TGlzdGVuZXIpTD1mdW5jdGlvbigpe3MucmVtb3ZlRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsTCxmYWxzZSk7Yy5yZWFkeSgpfTtlbHNlIGlmKHMuYXR0YWNoRXZlbnQpTD1mdW5jdGlvbigpe2lmKHMucmVhZHlTdGF0ZT09PSJjb21wbGV0ZSIpe3MuZGV0YWNoRXZlbnQoIm9ucmVhZHlzdGF0ZWNoYW5nZSIsTCk7Yy5yZWFkeSgpfX07KGZ1bmN0aW9uKCl7Yy5zdXBwb3J0PXt9O3ZhciBhPXMuZG9jdW1lbnRFbGVtZW50LGI9cy5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKSxkPXMuY3JlYXRlRWxlbWVudCgiZGl2IiksZj0ic2NyaXB0IitKKCk7ZC5zdHlsZS5kaXNwbGF5PSJub25lIjtkLmlubmVySFRNTD0iICAgPGxpbmsvPjx0YWJsZT48L3RhYmxlPjxhIGhyZWY9Jy9hJyBzdHlsZT0nY29sb3I6cmVkO2Zsb2F0OmxlZnQ7b3BhY2l0eTouNTU7Jz5hPC9hPjxpbnB1dCB0eXBlPSdjaGVja2JveCcvPiI7CnZhciBlPWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIioiKSxqPWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImEiKVswXTtpZighKCFlfHwhZS5sZW5ndGh8fCFqKSl7Yy5zdXBwb3J0PXtsZWFkaW5nV2hpdGVzcGFjZTpkLmZpcnN0Q2hpbGQubm9kZVR5cGU9PT0zLHRib2R5OiFkLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0Ym9keSIpLmxlbmd0aCxodG1sU2VyaWFsaXplOiEhZC5nZXRFbGVtZW50c0J5VGFnTmFtZSgibGluayIpLmxlbmd0aCxzdHlsZTovcmVkLy50ZXN0KGouZ2V0QXR0cmlidXRlKCJzdHlsZSIpKSxocmVmTm9ybWFsaXplZDpqLmdldEF0dHJpYnV0ZSgiaHJlZiIpPT09Ii9hIixvcGFjaXR5Oi9eMC41NSQvLnRlc3Qoai5zdHlsZS5vcGFjaXR5KSxjc3NGbG9hdDohIWouc3R5bGUuY3NzRmxvYXQsY2hlY2tPbjpkLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpbnB1dCIpWzBdLnZhbHVlPT09Im9uIixvcHRTZWxlY3RlZDpzLmNyZWF0ZUVsZW1lbnQoInNlbGVjdCIpLmFwcGVuZENoaWxkKHMuY3JlYXRlRWxlbWVudCgib3B0aW9uIikpLnNlbGVjdGVkLApwYXJlbnROb2RlOmQucmVtb3ZlQ2hpbGQoZC5hcHBlbmRDaGlsZChzLmNyZWF0ZUVsZW1lbnQoImRpdiIpKSkucGFyZW50Tm9kZT09PW51bGwsZGVsZXRlRXhwYW5kbzp0cnVlLGNoZWNrQ2xvbmU6ZmFsc2Usc2NyaXB0RXZhbDpmYWxzZSxub0Nsb25lRXZlbnQ6dHJ1ZSxib3hNb2RlbDpudWxsfTtiLnR5cGU9InRleHQvamF2YXNjcmlwdCI7dHJ5e2IuYXBwZW5kQ2hpbGQocy5jcmVhdGVUZXh0Tm9kZSgid2luZG93LiIrZisiPTE7IikpfWNhdGNoKGkpe31hLmluc2VydEJlZm9yZShiLGEuZmlyc3RDaGlsZCk7aWYoQVtmXSl7Yy5zdXBwb3J0LnNjcmlwdEV2YWw9dHJ1ZTtkZWxldGUgQVtmXX10cnl7ZGVsZXRlIGIudGVzdH1jYXRjaChvKXtjLnN1cHBvcnQuZGVsZXRlRXhwYW5kbz1mYWxzZX1hLnJlbW92ZUNoaWxkKGIpO2lmKGQuYXR0YWNoRXZlbnQmJmQuZmlyZUV2ZW50KXtkLmF0dGFjaEV2ZW50KCJvbmNsaWNrIixmdW5jdGlvbiBrKCl7Yy5zdXBwb3J0Lm5vQ2xvbmVFdmVudD0KZmFsc2U7ZC5kZXRhY2hFdmVudCgib25jbGljayIsayl9KTtkLmNsb25lTm9kZSh0cnVlKS5maXJlRXZlbnQoIm9uY2xpY2siKX1kPXMuY3JlYXRlRWxlbWVudCgiZGl2Iik7ZC5pbm5lckhUTUw9IjxpbnB1dCB0eXBlPSdyYWRpbycgbmFtZT0ncmFkaW90ZXN0JyBjaGVja2VkPSdjaGVja2VkJy8+IjthPXMuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpO2EuYXBwZW5kQ2hpbGQoZC5maXJzdENoaWxkKTtjLnN1cHBvcnQuY2hlY2tDbG9uZT1hLmNsb25lTm9kZSh0cnVlKS5jbG9uZU5vZGUodHJ1ZSkubGFzdENoaWxkLmNoZWNrZWQ7YyhmdW5jdGlvbigpe3ZhciBrPXMuY3JlYXRlRWxlbWVudCgiZGl2Iik7ay5zdHlsZS53aWR0aD1rLnN0eWxlLnBhZGRpbmdMZWZ0PSIxcHgiO3MuYm9keS5hcHBlbmRDaGlsZChrKTtjLmJveE1vZGVsPWMuc3VwcG9ydC5ib3hNb2RlbD1rLm9mZnNldFdpZHRoPT09MjtzLmJvZHkucmVtb3ZlQ2hpbGQoaykuc3R5bGUuZGlzcGxheT0ibm9uZSJ9KTthPWZ1bmN0aW9uKGspe3ZhciBuPQpzLmNyZWF0ZUVsZW1lbnQoImRpdiIpO2s9Im9uIitrO3ZhciByPWsgaW4gbjtpZighcil7bi5zZXRBdHRyaWJ1dGUoaywicmV0dXJuOyIpO3I9dHlwZW9mIG5ba109PT0iZnVuY3Rpb24ifXJldHVybiByfTtjLnN1cHBvcnQuc3VibWl0QnViYmxlcz1hKCJzdWJtaXQiKTtjLnN1cHBvcnQuY2hhbmdlQnViYmxlcz1hKCJjaGFuZ2UiKTthPWI9ZD1lPWo9bnVsbH19KSgpO2MucHJvcHM9eyJmb3IiOiJodG1sRm9yIiwiY2xhc3MiOiJjbGFzc05hbWUiLHJlYWRvbmx5OiJyZWFkT25seSIsbWF4bGVuZ3RoOiJtYXhMZW5ndGgiLGNlbGxzcGFjaW5nOiJjZWxsU3BhY2luZyIscm93c3Bhbjoicm93U3BhbiIsY29sc3BhbjoiY29sU3BhbiIsdGFiaW5kZXg6InRhYkluZGV4Iix1c2VtYXA6InVzZU1hcCIsZnJhbWVib3JkZXI6ImZyYW1lQm9yZGVyIn07dmFyIEc9ImpRdWVyeSIrSigpLFlhPTAsemE9e307Yy5leHRlbmQoe2NhY2hlOnt9LGV4cGFuZG86Ryxub0RhdGE6e2VtYmVkOnRydWUsb2JqZWN0OnRydWUsCmFwcGxldDp0cnVlfSxkYXRhOmZ1bmN0aW9uKGEsYixkKXtpZighKGEubm9kZU5hbWUmJmMubm9EYXRhW2Eubm9kZU5hbWUudG9Mb3dlckNhc2UoKV0pKXthPWE9PUE/emE6YTt2YXIgZj1hW0ddLGU9Yy5jYWNoZTtpZighZiYmdHlwZW9mIGI9PT0ic3RyaW5nIiYmZD09PXcpcmV0dXJuIG51bGw7Znx8KGY9KytZYSk7aWYodHlwZW9mIGI9PT0ib2JqZWN0Iil7YVtHXT1mO2VbZl09Yy5leHRlbmQodHJ1ZSx7fSxiKX1lbHNlIGlmKCFlW2ZdKXthW0ddPWY7ZVtmXT17fX1hPWVbZl07aWYoZCE9PXcpYVtiXT1kO3JldHVybiB0eXBlb2YgYj09PSJzdHJpbmciP2FbYl06YX19LHJlbW92ZURhdGE6ZnVuY3Rpb24oYSxiKXtpZighKGEubm9kZU5hbWUmJmMubm9EYXRhW2Eubm9kZU5hbWUudG9Mb3dlckNhc2UoKV0pKXthPWE9PUE/emE6YTt2YXIgZD1hW0ddLGY9Yy5jYWNoZSxlPWZbZF07aWYoYil7aWYoZSl7ZGVsZXRlIGVbYl07Yy5pc0VtcHR5T2JqZWN0KGUpJiZjLnJlbW92ZURhdGEoYSl9fWVsc2V7aWYoYy5zdXBwb3J0LmRlbGV0ZUV4cGFuZG8pZGVsZXRlIGFbYy5leHBhbmRvXTsKZWxzZSBhLnJlbW92ZUF0dHJpYnV0ZSYmYS5yZW1vdmVBdHRyaWJ1dGUoYy5leHBhbmRvKTtkZWxldGUgZltkXX19fX0pO2MuZm4uZXh0ZW5kKHtkYXRhOmZ1bmN0aW9uKGEsYil7aWYodHlwZW9mIGE9PT0idW5kZWZpbmVkIiYmdGhpcy5sZW5ndGgpcmV0dXJuIGMuZGF0YSh0aGlzWzBdKTtlbHNlIGlmKHR5cGVvZiBhPT09Im9iamVjdCIpcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2MuZGF0YSh0aGlzLGEpfSk7dmFyIGQ9YS5zcGxpdCgiLiIpO2RbMV09ZFsxXT8iLiIrZFsxXToiIjtpZihiPT09dyl7dmFyIGY9dGhpcy50cmlnZ2VySGFuZGxlcigiZ2V0RGF0YSIrZFsxXSsiISIsW2RbMF1dKTtpZihmPT09dyYmdGhpcy5sZW5ndGgpZj1jLmRhdGEodGhpc1swXSxhKTtyZXR1cm4gZj09PXcmJmRbMV0/dGhpcy5kYXRhKGRbMF0pOmZ9ZWxzZSByZXR1cm4gdGhpcy50cmlnZ2VyKCJzZXREYXRhIitkWzFdKyIhIixbZFswXSxiXSkuZWFjaChmdW5jdGlvbigpe2MuZGF0YSh0aGlzLAphLGIpfSl9LHJlbW92ZURhdGE6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2MucmVtb3ZlRGF0YSh0aGlzLGEpfSl9fSk7Yy5leHRlbmQoe3F1ZXVlOmZ1bmN0aW9uKGEsYixkKXtpZihhKXtiPShifHwiZngiKSsicXVldWUiO3ZhciBmPWMuZGF0YShhLGIpO2lmKCFkKXJldHVybiBmfHxbXTtpZighZnx8Yy5pc0FycmF5KGQpKWY9Yy5kYXRhKGEsYixjLm1ha2VBcnJheShkKSk7ZWxzZSBmLnB1c2goZCk7cmV0dXJuIGZ9fSxkZXF1ZXVlOmZ1bmN0aW9uKGEsYil7Yj1ifHwiZngiO3ZhciBkPWMucXVldWUoYSxiKSxmPWQuc2hpZnQoKTtpZihmPT09ImlucHJvZ3Jlc3MiKWY9ZC5zaGlmdCgpO2lmKGYpe2I9PT0iZngiJiZkLnVuc2hpZnQoImlucHJvZ3Jlc3MiKTtmLmNhbGwoYSxmdW5jdGlvbigpe2MuZGVxdWV1ZShhLGIpfSl9fX0pO2MuZm4uZXh0ZW5kKHtxdWV1ZTpmdW5jdGlvbihhLGIpe2lmKHR5cGVvZiBhIT09InN0cmluZyIpe2I9YTthPSJmeCJ9aWYoYj09PQp3KXJldHVybiBjLnF1ZXVlKHRoaXNbMF0sYSk7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBkPWMucXVldWUodGhpcyxhLGIpO2E9PT0iZngiJiZkWzBdIT09ImlucHJvZ3Jlc3MiJiZjLmRlcXVldWUodGhpcyxhKX0pfSxkZXF1ZXVlOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtjLmRlcXVldWUodGhpcyxhKX0pfSxkZWxheTpmdW5jdGlvbihhLGIpe2E9Yy5meD9jLmZ4LnNwZWVkc1thXXx8YTphO2I9Ynx8ImZ4IjtyZXR1cm4gdGhpcy5xdWV1ZShiLGZ1bmN0aW9uKCl7dmFyIGQ9dGhpcztzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5kZXF1ZXVlKGQsYil9LGEpfSl9LGNsZWFyUXVldWU6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMucXVldWUoYXx8ImZ4IixbXSl9fSk7dmFyIEFhPS9bXG5cdF0vZyxjYT0vXHMrLyxaYT0vXHIvZywkYT0vaHJlZnxzcmN8c3R5bGUvLGFiPS8oYnV0dG9ufGlucHV0KS9pLGJiPS8oYnV0dG9ufGlucHV0fG9iamVjdHxzZWxlY3R8dGV4dGFyZWEpL2ksCmNiPS9eKGF8YXJlYSkkL2ksQmE9L3JhZGlvfGNoZWNrYm94LztjLmZuLmV4dGVuZCh7YXR0cjpmdW5jdGlvbihhLGIpe3JldHVybiBYKHRoaXMsYSxiLHRydWUsYy5hdHRyKX0scmVtb3ZlQXR0cjpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7Yy5hdHRyKHRoaXMsYSwiIik7dGhpcy5ub2RlVHlwZT09PTEmJnRoaXMucmVtb3ZlQXR0cmlidXRlKGEpfSl9LGFkZENsYXNzOmZ1bmN0aW9uKGEpe2lmKGMuaXNGdW5jdGlvbihhKSlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKG4pe3ZhciByPWModGhpcyk7ci5hZGRDbGFzcyhhLmNhbGwodGhpcyxuLHIuYXR0cigiY2xhc3MiKSkpfSk7aWYoYSYmdHlwZW9mIGE9PT0ic3RyaW5nIilmb3IodmFyIGI9KGF8fCIiKS5zcGxpdChjYSksZD0wLGY9dGhpcy5sZW5ndGg7ZDxmO2QrKyl7dmFyIGU9dGhpc1tkXTtpZihlLm5vZGVUeXBlPT09MSlpZihlLmNsYXNzTmFtZSl7Zm9yKHZhciBqPSIgIitlLmNsYXNzTmFtZSsiICIsCmk9ZS5jbGFzc05hbWUsbz0wLGs9Yi5sZW5ndGg7bzxrO28rKylpZihqLmluZGV4T2YoIiAiK2Jbb10rIiAiKTwwKWkrPSIgIitiW29dO2UuY2xhc3NOYW1lPWMudHJpbShpKX1lbHNlIGUuY2xhc3NOYW1lPWF9cmV0dXJuIHRoaXN9LHJlbW92ZUNsYXNzOmZ1bmN0aW9uKGEpe2lmKGMuaXNGdW5jdGlvbihhKSlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGspe3ZhciBuPWModGhpcyk7bi5yZW1vdmVDbGFzcyhhLmNhbGwodGhpcyxrLG4uYXR0cigiY2xhc3MiKSkpfSk7aWYoYSYmdHlwZW9mIGE9PT0ic3RyaW5nInx8YT09PXcpZm9yKHZhciBiPShhfHwiIikuc3BsaXQoY2EpLGQ9MCxmPXRoaXMubGVuZ3RoO2Q8ZjtkKyspe3ZhciBlPXRoaXNbZF07aWYoZS5ub2RlVHlwZT09PTEmJmUuY2xhc3NOYW1lKWlmKGEpe2Zvcih2YXIgaj0oIiAiK2UuY2xhc3NOYW1lKyIgIikucmVwbGFjZShBYSwiICIpLGk9MCxvPWIubGVuZ3RoO2k8bztpKyspaj1qLnJlcGxhY2UoIiAiK2JbaV0rIiAiLAoiICIpO2UuY2xhc3NOYW1lPWMudHJpbShqKX1lbHNlIGUuY2xhc3NOYW1lPSIifXJldHVybiB0aGlzfSx0b2dnbGVDbGFzczpmdW5jdGlvbihhLGIpe3ZhciBkPXR5cGVvZiBhLGY9dHlwZW9mIGI9PT0iYm9vbGVhbiI7aWYoYy5pc0Z1bmN0aW9uKGEpKXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oZSl7dmFyIGo9Yyh0aGlzKTtqLnRvZ2dsZUNsYXNzKGEuY2FsbCh0aGlzLGUsai5hdHRyKCJjbGFzcyIpLGIpLGIpfSk7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2lmKGQ9PT0ic3RyaW5nIilmb3IodmFyIGUsaj0wLGk9Yyh0aGlzKSxvPWIsaz1hLnNwbGl0KGNhKTtlPWtbaisrXTspe289Zj9vOiFpLmhhc0NsYXNzKGUpO2lbbz8iYWRkQ2xhc3MiOiJyZW1vdmVDbGFzcyJdKGUpfWVsc2UgaWYoZD09PSJ1bmRlZmluZWQifHxkPT09ImJvb2xlYW4iKXt0aGlzLmNsYXNzTmFtZSYmYy5kYXRhKHRoaXMsIl9fY2xhc3NOYW1lX18iLHRoaXMuY2xhc3NOYW1lKTt0aGlzLmNsYXNzTmFtZT0KdGhpcy5jbGFzc05hbWV8fGE9PT1mYWxzZT8iIjpjLmRhdGEodGhpcywiX19jbGFzc05hbWVfXyIpfHwiIn19KX0saGFzQ2xhc3M6ZnVuY3Rpb24oYSl7YT0iICIrYSsiICI7Zm9yKHZhciBiPTAsZD10aGlzLmxlbmd0aDtiPGQ7YisrKWlmKCgiICIrdGhpc1tiXS5jbGFzc05hbWUrIiAiKS5yZXBsYWNlKEFhLCIgIikuaW5kZXhPZihhKT4tMSlyZXR1cm4gdHJ1ZTtyZXR1cm4gZmFsc2V9LHZhbDpmdW5jdGlvbihhKXtpZihhPT09dyl7dmFyIGI9dGhpc1swXTtpZihiKXtpZihjLm5vZGVOYW1lKGIsIm9wdGlvbiIpKXJldHVybihiLmF0dHJpYnV0ZXMudmFsdWV8fHt9KS5zcGVjaWZpZWQ/Yi52YWx1ZTpiLnRleHQ7aWYoYy5ub2RlTmFtZShiLCJzZWxlY3QiKSl7dmFyIGQ9Yi5zZWxlY3RlZEluZGV4LGY9W10sZT1iLm9wdGlvbnM7Yj1iLnR5cGU9PT0ic2VsZWN0LW9uZSI7aWYoZDwwKXJldHVybiBudWxsO3ZhciBqPWI/ZDowO2ZvcihkPWI/ZCsxOmUubGVuZ3RoO2o8ZDtqKyspe3ZhciBpPQplW2pdO2lmKGkuc2VsZWN0ZWQpe2E9YyhpKS52YWwoKTtpZihiKXJldHVybiBhO2YucHVzaChhKX19cmV0dXJuIGZ9aWYoQmEudGVzdChiLnR5cGUpJiYhYy5zdXBwb3J0LmNoZWNrT24pcmV0dXJuIGIuZ2V0QXR0cmlidXRlKCJ2YWx1ZSIpPT09bnVsbD8ib24iOmIudmFsdWU7cmV0dXJuKGIudmFsdWV8fCIiKS5yZXBsYWNlKFphLCIiKX1yZXR1cm4gd312YXIgbz1jLmlzRnVuY3Rpb24oYSk7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihrKXt2YXIgbj1jKHRoaXMpLHI9YTtpZih0aGlzLm5vZGVUeXBlPT09MSl7aWYobylyPWEuY2FsbCh0aGlzLGssbi52YWwoKSk7aWYodHlwZW9mIHI9PT0ibnVtYmVyIilyKz0iIjtpZihjLmlzQXJyYXkocikmJkJhLnRlc3QodGhpcy50eXBlKSl0aGlzLmNoZWNrZWQ9Yy5pbkFycmF5KG4udmFsKCkscik+PTA7ZWxzZSBpZihjLm5vZGVOYW1lKHRoaXMsInNlbGVjdCIpKXt2YXIgdT1jLm1ha2VBcnJheShyKTtjKCJvcHRpb24iLHRoaXMpLmVhY2goZnVuY3Rpb24oKXt0aGlzLnNlbGVjdGVkPQpjLmluQXJyYXkoYyh0aGlzKS52YWwoKSx1KT49MH0pO2lmKCF1Lmxlbmd0aCl0aGlzLnNlbGVjdGVkSW5kZXg9LTF9ZWxzZSB0aGlzLnZhbHVlPXJ9fSl9fSk7Yy5leHRlbmQoe2F0dHJGbjp7dmFsOnRydWUsY3NzOnRydWUsaHRtbDp0cnVlLHRleHQ6dHJ1ZSxkYXRhOnRydWUsd2lkdGg6dHJ1ZSxoZWlnaHQ6dHJ1ZSxvZmZzZXQ6dHJ1ZX0sYXR0cjpmdW5jdGlvbihhLGIsZCxmKXtpZighYXx8YS5ub2RlVHlwZT09PTN8fGEubm9kZVR5cGU9PT04KXJldHVybiB3O2lmKGYmJmIgaW4gYy5hdHRyRm4pcmV0dXJuIGMoYSlbYl0oZCk7Zj1hLm5vZGVUeXBlIT09MXx8IWMuaXNYTUxEb2MoYSk7dmFyIGU9ZCE9PXc7Yj1mJiZjLnByb3BzW2JdfHxiO2lmKGEubm9kZVR5cGU9PT0xKXt2YXIgaj0kYS50ZXN0KGIpO2lmKGIgaW4gYSYmZiYmIWope2lmKGUpe2I9PT0idHlwZSImJmFiLnRlc3QoYS5ub2RlTmFtZSkmJmEucGFyZW50Tm9kZSYmYy5lcnJvcigidHlwZSBwcm9wZXJ0eSBjYW4ndCBiZSBjaGFuZ2VkIik7CmFbYl09ZH1pZihjLm5vZGVOYW1lKGEsImZvcm0iKSYmYS5nZXRBdHRyaWJ1dGVOb2RlKGIpKXJldHVybiBhLmdldEF0dHJpYnV0ZU5vZGUoYikubm9kZVZhbHVlO2lmKGI9PT0idGFiSW5kZXgiKXJldHVybihiPWEuZ2V0QXR0cmlidXRlTm9kZSgidGFiSW5kZXgiKSkmJmIuc3BlY2lmaWVkP2IudmFsdWU6YmIudGVzdChhLm5vZGVOYW1lKXx8Y2IudGVzdChhLm5vZGVOYW1lKSYmYS5ocmVmPzA6dztyZXR1cm4gYVtiXX1pZighYy5zdXBwb3J0LnN0eWxlJiZmJiZiPT09InN0eWxlIil7aWYoZSlhLnN0eWxlLmNzc1RleHQ9IiIrZDtyZXR1cm4gYS5zdHlsZS5jc3NUZXh0fWUmJmEuc2V0QXR0cmlidXRlKGIsIiIrZCk7YT0hYy5zdXBwb3J0LmhyZWZOb3JtYWxpemVkJiZmJiZqP2EuZ2V0QXR0cmlidXRlKGIsMik6YS5nZXRBdHRyaWJ1dGUoYik7cmV0dXJuIGE9PT1udWxsP3c6YX1yZXR1cm4gYy5zdHlsZShhLGIsZCl9fSk7dmFyIE89L1wuKC4qKSQvLGRiPWZ1bmN0aW9uKGEpe3JldHVybiBhLnJlcGxhY2UoL1teXHdcc1wuXHxgXS9nLApmdW5jdGlvbihiKXtyZXR1cm4iXFwiK2J9KX07Yy5ldmVudD17YWRkOmZ1bmN0aW9uKGEsYixkLGYpe2lmKCEoYS5ub2RlVHlwZT09PTN8fGEubm9kZVR5cGU9PT04KSl7aWYoYS5zZXRJbnRlcnZhbCYmYSE9PUEmJiFhLmZyYW1lRWxlbWVudClhPUE7dmFyIGUsajtpZihkLmhhbmRsZXIpe2U9ZDtkPWUuaGFuZGxlcn1pZighZC5ndWlkKWQuZ3VpZD1jLmd1aWQrKztpZihqPWMuZGF0YShhKSl7dmFyIGk9ai5ldmVudHM9ai5ldmVudHN8fHt9LG89ai5oYW5kbGU7aWYoIW8pai5oYW5kbGU9bz1mdW5jdGlvbigpe3JldHVybiB0eXBlb2YgYyE9PSJ1bmRlZmluZWQiJiYhYy5ldmVudC50cmlnZ2VyZWQ/Yy5ldmVudC5oYW5kbGUuYXBwbHkoby5lbGVtLGFyZ3VtZW50cyk6d307by5lbGVtPWE7Yj1iLnNwbGl0KCIgIik7Zm9yKHZhciBrLG49MCxyO2s9YltuKytdOyl7aj1lP2MuZXh0ZW5kKHt9LGUpOntoYW5kbGVyOmQsZGF0YTpmfTtpZihrLmluZGV4T2YoIi4iKT4tMSl7cj1rLnNwbGl0KCIuIik7Cms9ci5zaGlmdCgpO2oubmFtZXNwYWNlPXIuc2xpY2UoMCkuc29ydCgpLmpvaW4oIi4iKX1lbHNle3I9W107ai5uYW1lc3BhY2U9IiJ9ai50eXBlPWs7ai5ndWlkPWQuZ3VpZDt2YXIgdT1pW2tdLHo9Yy5ldmVudC5zcGVjaWFsW2tdfHx7fTtpZighdSl7dT1pW2tdPVtdO2lmKCF6LnNldHVwfHx6LnNldHVwLmNhbGwoYSxmLHIsbyk9PT1mYWxzZSlpZihhLmFkZEV2ZW50TGlzdGVuZXIpYS5hZGRFdmVudExpc3RlbmVyKGssbyxmYWxzZSk7ZWxzZSBhLmF0dGFjaEV2ZW50JiZhLmF0dGFjaEV2ZW50KCJvbiIrayxvKX1pZih6LmFkZCl7ei5hZGQuY2FsbChhLGopO2lmKCFqLmhhbmRsZXIuZ3VpZClqLmhhbmRsZXIuZ3VpZD1kLmd1aWR9dS5wdXNoKGopO2MuZXZlbnQuZ2xvYmFsW2tdPXRydWV9YT1udWxsfX19LGdsb2JhbDp7fSxyZW1vdmU6ZnVuY3Rpb24oYSxiLGQsZil7aWYoIShhLm5vZGVUeXBlPT09M3x8YS5ub2RlVHlwZT09PTgpKXt2YXIgZSxqPTAsaSxvLGssbixyLHUsej1jLmRhdGEoYSksCkM9eiYmei5ldmVudHM7aWYoeiYmQyl7aWYoYiYmYi50eXBlKXtkPWIuaGFuZGxlcjtiPWIudHlwZX1pZighYnx8dHlwZW9mIGI9PT0ic3RyaW5nIiYmYi5jaGFyQXQoMCk9PT0iLiIpe2I9Ynx8IiI7Zm9yKGUgaW4gQyljLmV2ZW50LnJlbW92ZShhLGUrYil9ZWxzZXtmb3IoYj1iLnNwbGl0KCIgIik7ZT1iW2orK107KXtuPWU7aT1lLmluZGV4T2YoIi4iKTwwO289W107aWYoIWkpe289ZS5zcGxpdCgiLiIpO2U9by5zaGlmdCgpO2s9bmV3IFJlZ0V4cCgiKF58XFwuKSIrYy5tYXAoby5zbGljZSgwKS5zb3J0KCksZGIpLmpvaW4oIlxcLig/Oi4qXFwuKT8iKSsiKFxcLnwkKSIpfWlmKHI9Q1tlXSlpZihkKXtuPWMuZXZlbnQuc3BlY2lhbFtlXXx8e307Zm9yKEI9Znx8MDtCPHIubGVuZ3RoO0IrKyl7dT1yW0JdO2lmKGQuZ3VpZD09PXUuZ3VpZCl7aWYoaXx8ay50ZXN0KHUubmFtZXNwYWNlKSl7Zj09bnVsbCYmci5zcGxpY2UoQi0tLDEpO24ucmVtb3ZlJiZuLnJlbW92ZS5jYWxsKGEsdSl9aWYoZiE9Cm51bGwpYnJlYWt9fWlmKHIubGVuZ3RoPT09MHx8ZiE9bnVsbCYmci5sZW5ndGg9PT0xKXtpZighbi50ZWFyZG93bnx8bi50ZWFyZG93bi5jYWxsKGEsbyk9PT1mYWxzZSlDYShhLGUsei5oYW5kbGUpO2RlbGV0ZSBDW2VdfX1lbHNlIGZvcih2YXIgQj0wO0I8ci5sZW5ndGg7QisrKXt1PXJbQl07aWYoaXx8ay50ZXN0KHUubmFtZXNwYWNlKSl7Yy5ldmVudC5yZW1vdmUoYSxuLHUuaGFuZGxlcixCKTtyLnNwbGljZShCLS0sMSl9fX1pZihjLmlzRW1wdHlPYmplY3QoQykpe2lmKGI9ei5oYW5kbGUpYi5lbGVtPW51bGw7ZGVsZXRlIHouZXZlbnRzO2RlbGV0ZSB6LmhhbmRsZTtjLmlzRW1wdHlPYmplY3QoeikmJmMucmVtb3ZlRGF0YShhKX19fX19LHRyaWdnZXI6ZnVuY3Rpb24oYSxiLGQsZil7dmFyIGU9YS50eXBlfHxhO2lmKCFmKXthPXR5cGVvZiBhPT09Im9iamVjdCI/YVtHXT9hOmMuZXh0ZW5kKGMuRXZlbnQoZSksYSk6Yy5FdmVudChlKTtpZihlLmluZGV4T2YoIiEiKT49MCl7YS50eXBlPQplPWUuc2xpY2UoMCwtMSk7YS5leGNsdXNpdmU9dHJ1ZX1pZighZCl7YS5zdG9wUHJvcGFnYXRpb24oKTtjLmV2ZW50Lmdsb2JhbFtlXSYmYy5lYWNoKGMuY2FjaGUsZnVuY3Rpb24oKXt0aGlzLmV2ZW50cyYmdGhpcy5ldmVudHNbZV0mJmMuZXZlbnQudHJpZ2dlcihhLGIsdGhpcy5oYW5kbGUuZWxlbSl9KX1pZighZHx8ZC5ub2RlVHlwZT09PTN8fGQubm9kZVR5cGU9PT04KXJldHVybiB3O2EucmVzdWx0PXc7YS50YXJnZXQ9ZDtiPWMubWFrZUFycmF5KGIpO2IudW5zaGlmdChhKX1hLmN1cnJlbnRUYXJnZXQ9ZDsoZj1jLmRhdGEoZCwiaGFuZGxlIikpJiZmLmFwcGx5KGQsYik7Zj1kLnBhcmVudE5vZGV8fGQub3duZXJEb2N1bWVudDt0cnl7aWYoIShkJiZkLm5vZGVOYW1lJiZjLm5vRGF0YVtkLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCldKSlpZihkWyJvbiIrZV0mJmRbIm9uIitlXS5hcHBseShkLGIpPT09ZmFsc2UpYS5yZXN1bHQ9ZmFsc2V9Y2F0Y2goail7fWlmKCFhLmlzUHJvcGFnYXRpb25TdG9wcGVkKCkmJgpmKWMuZXZlbnQudHJpZ2dlcihhLGIsZix0cnVlKTtlbHNlIGlmKCFhLmlzRGVmYXVsdFByZXZlbnRlZCgpKXtmPWEudGFyZ2V0O3ZhciBpLG89Yy5ub2RlTmFtZShmLCJhIikmJmU9PT0iY2xpY2siLGs9Yy5ldmVudC5zcGVjaWFsW2VdfHx7fTtpZigoIWsuX2RlZmF1bHR8fGsuX2RlZmF1bHQuY2FsbChkLGEpPT09ZmFsc2UpJiYhbyYmIShmJiZmLm5vZGVOYW1lJiZjLm5vRGF0YVtmLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCldKSl7dHJ5e2lmKGZbZV0pe2lmKGk9Zlsib24iK2VdKWZbIm9uIitlXT1udWxsO2MuZXZlbnQudHJpZ2dlcmVkPXRydWU7ZltlXSgpfX1jYXRjaChuKXt9aWYoaSlmWyJvbiIrZV09aTtjLmV2ZW50LnRyaWdnZXJlZD1mYWxzZX19fSxoYW5kbGU6ZnVuY3Rpb24oYSl7dmFyIGIsZCxmLGU7YT1hcmd1bWVudHNbMF09Yy5ldmVudC5maXgoYXx8QS5ldmVudCk7YS5jdXJyZW50VGFyZ2V0PXRoaXM7Yj1hLnR5cGUuaW5kZXhPZigiLiIpPDAmJiFhLmV4Y2x1c2l2ZTsKaWYoIWIpe2Q9YS50eXBlLnNwbGl0KCIuIik7YS50eXBlPWQuc2hpZnQoKTtmPW5ldyBSZWdFeHAoIihefFxcLikiK2Quc2xpY2UoMCkuc29ydCgpLmpvaW4oIlxcLig/Oi4qXFwuKT8iKSsiKFxcLnwkKSIpfWU9Yy5kYXRhKHRoaXMsImV2ZW50cyIpO2Q9ZVthLnR5cGVdO2lmKGUmJmQpe2Q9ZC5zbGljZSgwKTtlPTA7Zm9yKHZhciBqPWQubGVuZ3RoO2U8ajtlKyspe3ZhciBpPWRbZV07aWYoYnx8Zi50ZXN0KGkubmFtZXNwYWNlKSl7YS5oYW5kbGVyPWkuaGFuZGxlcjthLmRhdGE9aS5kYXRhO2EuaGFuZGxlT2JqPWk7aT1pLmhhbmRsZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpO2lmKGkhPT13KXthLnJlc3VsdD1pO2lmKGk9PT1mYWxzZSl7YS5wcmV2ZW50RGVmYXVsdCgpO2Euc3RvcFByb3BhZ2F0aW9uKCl9fWlmKGEuaXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQoKSlicmVha319fXJldHVybiBhLnJlc3VsdH0scHJvcHM6ImFsdEtleSBhdHRyQ2hhbmdlIGF0dHJOYW1lIGJ1YmJsZXMgYnV0dG9uIGNhbmNlbGFibGUgY2hhckNvZGUgY2xpZW50WCBjbGllbnRZIGN0cmxLZXkgY3VycmVudFRhcmdldCBkYXRhIGRldGFpbCBldmVudFBoYXNlIGZyb21FbGVtZW50IGhhbmRsZXIga2V5Q29kZSBsYXllclggbGF5ZXJZIG1ldGFLZXkgbmV3VmFsdWUgb2Zmc2V0WCBvZmZzZXRZIG9yaWdpbmFsVGFyZ2V0IHBhZ2VYIHBhZ2VZIHByZXZWYWx1ZSByZWxhdGVkTm9kZSByZWxhdGVkVGFyZ2V0IHNjcmVlblggc2NyZWVuWSBzaGlmdEtleSBzcmNFbGVtZW50IHRhcmdldCB0b0VsZW1lbnQgdmlldyB3aGVlbERlbHRhIHdoaWNoIi5zcGxpdCgiICIpLApmaXg6ZnVuY3Rpb24oYSl7aWYoYVtHXSlyZXR1cm4gYTt2YXIgYj1hO2E9Yy5FdmVudChiKTtmb3IodmFyIGQ9dGhpcy5wcm9wcy5sZW5ndGgsZjtkOyl7Zj10aGlzLnByb3BzWy0tZF07YVtmXT1iW2ZdfWlmKCFhLnRhcmdldClhLnRhcmdldD1hLnNyY0VsZW1lbnR8fHM7aWYoYS50YXJnZXQubm9kZVR5cGU9PT0zKWEudGFyZ2V0PWEudGFyZ2V0LnBhcmVudE5vZGU7aWYoIWEucmVsYXRlZFRhcmdldCYmYS5mcm9tRWxlbWVudClhLnJlbGF0ZWRUYXJnZXQ9YS5mcm9tRWxlbWVudD09PWEudGFyZ2V0P2EudG9FbGVtZW50OmEuZnJvbUVsZW1lbnQ7aWYoYS5wYWdlWD09bnVsbCYmYS5jbGllbnRYIT1udWxsKXtiPXMuZG9jdW1lbnRFbGVtZW50O2Q9cy5ib2R5O2EucGFnZVg9YS5jbGllbnRYKyhiJiZiLnNjcm9sbExlZnR8fGQmJmQuc2Nyb2xsTGVmdHx8MCktKGImJmIuY2xpZW50TGVmdHx8ZCYmZC5jbGllbnRMZWZ0fHwwKTthLnBhZ2VZPWEuY2xpZW50WSsoYiYmYi5zY3JvbGxUb3B8fApkJiZkLnNjcm9sbFRvcHx8MCktKGImJmIuY2xpZW50VG9wfHxkJiZkLmNsaWVudFRvcHx8MCl9aWYoIWEud2hpY2gmJihhLmNoYXJDb2RlfHxhLmNoYXJDb2RlPT09MD9hLmNoYXJDb2RlOmEua2V5Q29kZSkpYS53aGljaD1hLmNoYXJDb2RlfHxhLmtleUNvZGU7aWYoIWEubWV0YUtleSYmYS5jdHJsS2V5KWEubWV0YUtleT1hLmN0cmxLZXk7aWYoIWEud2hpY2gmJmEuYnV0dG9uIT09dylhLndoaWNoPWEuYnV0dG9uJjE/MTphLmJ1dHRvbiYyPzM6YS5idXR0b24mND8yOjA7cmV0dXJuIGF9LGd1aWQ6MUU4LHByb3h5OmMucHJveHksc3BlY2lhbDp7cmVhZHk6e3NldHVwOmMuYmluZFJlYWR5LHRlYXJkb3duOmMubm9vcH0sbGl2ZTp7YWRkOmZ1bmN0aW9uKGEpe2MuZXZlbnQuYWRkKHRoaXMsYS5vcmlnVHlwZSxjLmV4dGVuZCh7fSxhLHtoYW5kbGVyOm9hfSkpfSxyZW1vdmU6ZnVuY3Rpb24oYSl7dmFyIGI9dHJ1ZSxkPWEub3JpZ1R5cGUucmVwbGFjZShPLCIiKTtjLmVhY2goYy5kYXRhKHRoaXMsCiJldmVudHMiKS5saXZlfHxbXSxmdW5jdGlvbigpe2lmKGQ9PT10aGlzLm9yaWdUeXBlLnJlcGxhY2UoTywiIikpcmV0dXJuIGI9ZmFsc2V9KTtiJiZjLmV2ZW50LnJlbW92ZSh0aGlzLGEub3JpZ1R5cGUsb2EpfX0sYmVmb3JldW5sb2FkOntzZXR1cDpmdW5jdGlvbihhLGIsZCl7aWYodGhpcy5zZXRJbnRlcnZhbCl0aGlzLm9uYmVmb3JldW5sb2FkPWQ7cmV0dXJuIGZhbHNlfSx0ZWFyZG93bjpmdW5jdGlvbihhLGIpe2lmKHRoaXMub25iZWZvcmV1bmxvYWQ9PT1iKXRoaXMub25iZWZvcmV1bmxvYWQ9bnVsbH19fX07dmFyIENhPXMucmVtb3ZlRXZlbnRMaXN0ZW5lcj9mdW5jdGlvbihhLGIsZCl7YS5yZW1vdmVFdmVudExpc3RlbmVyKGIsZCxmYWxzZSl9OmZ1bmN0aW9uKGEsYixkKXthLmRldGFjaEV2ZW50KCJvbiIrYixkKX07Yy5FdmVudD1mdW5jdGlvbihhKXtpZighdGhpcy5wcmV2ZW50RGVmYXVsdClyZXR1cm4gbmV3IGMuRXZlbnQoYSk7aWYoYSYmYS50eXBlKXt0aGlzLm9yaWdpbmFsRXZlbnQ9CmE7dGhpcy50eXBlPWEudHlwZX1lbHNlIHRoaXMudHlwZT1hO3RoaXMudGltZVN0YW1wPUooKTt0aGlzW0ddPXRydWV9O2MuRXZlbnQucHJvdG90eXBlPXtwcmV2ZW50RGVmYXVsdDpmdW5jdGlvbigpe3RoaXMuaXNEZWZhdWx0UHJldmVudGVkPVo7dmFyIGE9dGhpcy5vcmlnaW5hbEV2ZW50O2lmKGEpe2EucHJldmVudERlZmF1bHQmJmEucHJldmVudERlZmF1bHQoKTthLnJldHVyblZhbHVlPWZhbHNlfX0sc3RvcFByb3BhZ2F0aW9uOmZ1bmN0aW9uKCl7dGhpcy5pc1Byb3BhZ2F0aW9uU3RvcHBlZD1aO3ZhciBhPXRoaXMub3JpZ2luYWxFdmVudDtpZihhKXthLnN0b3BQcm9wYWdhdGlvbiYmYS5zdG9wUHJvcGFnYXRpb24oKTthLmNhbmNlbEJ1YmJsZT10cnVlfX0sc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uOmZ1bmN0aW9uKCl7dGhpcy5pc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZD1aO3RoaXMuc3RvcFByb3BhZ2F0aW9uKCl9LGlzRGVmYXVsdFByZXZlbnRlZDpZLGlzUHJvcGFnYXRpb25TdG9wcGVkOlksCmlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkOll9O3ZhciBEYT1mdW5jdGlvbihhKXt2YXIgYj1hLnJlbGF0ZWRUYXJnZXQ7dHJ5e2Zvcig7YiYmYiE9PXRoaXM7KWI9Yi5wYXJlbnROb2RlO2lmKGIhPT10aGlzKXthLnR5cGU9YS5kYXRhO2MuZXZlbnQuaGFuZGxlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19Y2F0Y2goZCl7fX0sRWE9ZnVuY3Rpb24oYSl7YS50eXBlPWEuZGF0YTtjLmV2ZW50LmhhbmRsZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O2MuZWFjaCh7bW91c2VlbnRlcjoibW91c2VvdmVyIixtb3VzZWxlYXZlOiJtb3VzZW91dCJ9LGZ1bmN0aW9uKGEsYil7Yy5ldmVudC5zcGVjaWFsW2FdPXtzZXR1cDpmdW5jdGlvbihkKXtjLmV2ZW50LmFkZCh0aGlzLGIsZCYmZC5zZWxlY3Rvcj9FYTpEYSxhKX0sdGVhcmRvd246ZnVuY3Rpb24oZCl7Yy5ldmVudC5yZW1vdmUodGhpcyxiLGQmJmQuc2VsZWN0b3I/RWE6RGEpfX19KTtpZighYy5zdXBwb3J0LnN1Ym1pdEJ1YmJsZXMpYy5ldmVudC5zcGVjaWFsLnN1Ym1pdD0Ke3NldHVwOmZ1bmN0aW9uKCl7aWYodGhpcy5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpIT09ImZvcm0iKXtjLmV2ZW50LmFkZCh0aGlzLCJjbGljay5zcGVjaWFsU3VibWl0IixmdW5jdGlvbihhKXt2YXIgYj1hLnRhcmdldCxkPWIudHlwZTtpZigoZD09PSJzdWJtaXQifHxkPT09ImltYWdlIikmJmMoYikuY2xvc2VzdCgiZm9ybSIpLmxlbmd0aClyZXR1cm4gbmEoInN1Ym1pdCIsdGhpcyxhcmd1bWVudHMpfSk7Yy5ldmVudC5hZGQodGhpcywia2V5cHJlc3Muc3BlY2lhbFN1Ym1pdCIsZnVuY3Rpb24oYSl7dmFyIGI9YS50YXJnZXQsZD1iLnR5cGU7aWYoKGQ9PT0idGV4dCJ8fGQ9PT0icGFzc3dvcmQiKSYmYyhiKS5jbG9zZXN0KCJmb3JtIikubGVuZ3RoJiZhLmtleUNvZGU9PT0xMylyZXR1cm4gbmEoInN1Ym1pdCIsdGhpcyxhcmd1bWVudHMpfSl9ZWxzZSByZXR1cm4gZmFsc2V9LHRlYXJkb3duOmZ1bmN0aW9uKCl7Yy5ldmVudC5yZW1vdmUodGhpcywiLnNwZWNpYWxTdWJtaXQiKX19OwppZighYy5zdXBwb3J0LmNoYW5nZUJ1YmJsZXMpe3ZhciBkYT0vdGV4dGFyZWF8aW5wdXR8c2VsZWN0L2ksZWEsRmE9ZnVuY3Rpb24oYSl7dmFyIGI9YS50eXBlLGQ9YS52YWx1ZTtpZihiPT09InJhZGlvInx8Yj09PSJjaGVja2JveCIpZD1hLmNoZWNrZWQ7ZWxzZSBpZihiPT09InNlbGVjdC1tdWx0aXBsZSIpZD1hLnNlbGVjdGVkSW5kZXg+LTE/Yy5tYXAoYS5vcHRpb25zLGZ1bmN0aW9uKGYpe3JldHVybiBmLnNlbGVjdGVkfSkuam9pbigiLSIpOiIiO2Vsc2UgaWYoYS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpPT09InNlbGVjdCIpZD1hLnNlbGVjdGVkSW5kZXg7cmV0dXJuIGR9LGZhPWZ1bmN0aW9uKGEsYil7dmFyIGQ9YS50YXJnZXQsZixlO2lmKCEoIWRhLnRlc3QoZC5ub2RlTmFtZSl8fGQucmVhZE9ubHkpKXtmPWMuZGF0YShkLCJfY2hhbmdlX2RhdGEiKTtlPUZhKGQpO2lmKGEudHlwZSE9PSJmb2N1c291dCJ8fGQudHlwZSE9PSJyYWRpbyIpYy5kYXRhKGQsIl9jaGFuZ2VfZGF0YSIsCmUpO2lmKCEoZj09PXd8fGU9PT1mKSlpZihmIT1udWxsfHxlKXthLnR5cGU9ImNoYW5nZSI7cmV0dXJuIGMuZXZlbnQudHJpZ2dlcihhLGIsZCl9fX07Yy5ldmVudC5zcGVjaWFsLmNoYW5nZT17ZmlsdGVyczp7Zm9jdXNvdXQ6ZmEsY2xpY2s6ZnVuY3Rpb24oYSl7dmFyIGI9YS50YXJnZXQsZD1iLnR5cGU7aWYoZD09PSJyYWRpbyJ8fGQ9PT0iY2hlY2tib3gifHxiLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT0ic2VsZWN0IilyZXR1cm4gZmEuY2FsbCh0aGlzLGEpfSxrZXlkb3duOmZ1bmN0aW9uKGEpe3ZhciBiPWEudGFyZ2V0LGQ9Yi50eXBlO2lmKGEua2V5Q29kZT09PTEzJiZiLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkhPT0idGV4dGFyZWEifHxhLmtleUNvZGU9PT0zMiYmKGQ9PT0iY2hlY2tib3gifHxkPT09InJhZGlvIil8fGQ9PT0ic2VsZWN0LW11bHRpcGxlIilyZXR1cm4gZmEuY2FsbCh0aGlzLGEpfSxiZWZvcmVhY3RpdmF0ZTpmdW5jdGlvbihhKXthPWEudGFyZ2V0O2MuZGF0YShhLAoiX2NoYW5nZV9kYXRhIixGYShhKSl9fSxzZXR1cDpmdW5jdGlvbigpe2lmKHRoaXMudHlwZT09PSJmaWxlIilyZXR1cm4gZmFsc2U7Zm9yKHZhciBhIGluIGVhKWMuZXZlbnQuYWRkKHRoaXMsYSsiLnNwZWNpYWxDaGFuZ2UiLGVhW2FdKTtyZXR1cm4gZGEudGVzdCh0aGlzLm5vZGVOYW1lKX0sdGVhcmRvd246ZnVuY3Rpb24oKXtjLmV2ZW50LnJlbW92ZSh0aGlzLCIuc3BlY2lhbENoYW5nZSIpO3JldHVybiBkYS50ZXN0KHRoaXMubm9kZU5hbWUpfX07ZWE9Yy5ldmVudC5zcGVjaWFsLmNoYW5nZS5maWx0ZXJzfXMuYWRkRXZlbnRMaXN0ZW5lciYmYy5lYWNoKHtmb2N1czoiZm9jdXNpbiIsYmx1cjoiZm9jdXNvdXQifSxmdW5jdGlvbihhLGIpe2Z1bmN0aW9uIGQoZil7Zj1jLmV2ZW50LmZpeChmKTtmLnR5cGU9YjtyZXR1cm4gYy5ldmVudC5oYW5kbGUuY2FsbCh0aGlzLGYpfWMuZXZlbnQuc3BlY2lhbFtiXT17c2V0dXA6ZnVuY3Rpb24oKXt0aGlzLmFkZEV2ZW50TGlzdGVuZXIoYSwKZCx0cnVlKX0sdGVhcmRvd246ZnVuY3Rpb24oKXt0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIoYSxkLHRydWUpfX19KTtjLmVhY2goWyJiaW5kIiwib25lIl0sZnVuY3Rpb24oYSxiKXtjLmZuW2JdPWZ1bmN0aW9uKGQsZixlKXtpZih0eXBlb2YgZD09PSJvYmplY3QiKXtmb3IodmFyIGogaW4gZCl0aGlzW2JdKGosZixkW2pdLGUpO3JldHVybiB0aGlzfWlmKGMuaXNGdW5jdGlvbihmKSl7ZT1mO2Y9d312YXIgaT1iPT09Im9uZSI/Yy5wcm94eShlLGZ1bmN0aW9uKGspe2ModGhpcykudW5iaW5kKGssaSk7cmV0dXJuIGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfSk6ZTtpZihkPT09InVubG9hZCImJmIhPT0ib25lIil0aGlzLm9uZShkLGYsZSk7ZWxzZXtqPTA7Zm9yKHZhciBvPXRoaXMubGVuZ3RoO2o8bztqKyspYy5ldmVudC5hZGQodGhpc1tqXSxkLGksZil9cmV0dXJuIHRoaXN9fSk7Yy5mbi5leHRlbmQoe3VuYmluZDpmdW5jdGlvbihhLGIpe2lmKHR5cGVvZiBhPT09Im9iamVjdCImJgohYS5wcmV2ZW50RGVmYXVsdClmb3IodmFyIGQgaW4gYSl0aGlzLnVuYmluZChkLGFbZF0pO2Vsc2V7ZD0wO2Zvcih2YXIgZj10aGlzLmxlbmd0aDtkPGY7ZCsrKWMuZXZlbnQucmVtb3ZlKHRoaXNbZF0sYSxiKX1yZXR1cm4gdGhpc30sZGVsZWdhdGU6ZnVuY3Rpb24oYSxiLGQsZil7cmV0dXJuIHRoaXMubGl2ZShiLGQsZixhKX0sdW5kZWxlZ2F0ZTpmdW5jdGlvbihhLGIsZCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg9PT0wP3RoaXMudW5iaW5kKCJsaXZlIik6dGhpcy5kaWUoYixudWxsLGQsYSl9LHRyaWdnZXI6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7Yy5ldmVudC50cmlnZ2VyKGEsYix0aGlzKX0pfSx0cmlnZ2VySGFuZGxlcjpmdW5jdGlvbihhLGIpe2lmKHRoaXNbMF0pe2E9Yy5FdmVudChhKTthLnByZXZlbnREZWZhdWx0KCk7YS5zdG9wUHJvcGFnYXRpb24oKTtjLmV2ZW50LnRyaWdnZXIoYSxiLHRoaXNbMF0pO3JldHVybiBhLnJlc3VsdH19LAp0b2dnbGU6ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPWFyZ3VtZW50cyxkPTE7ZDxiLmxlbmd0aDspYy5wcm94eShhLGJbZCsrXSk7cmV0dXJuIHRoaXMuY2xpY2soYy5wcm94eShhLGZ1bmN0aW9uKGYpe3ZhciBlPShjLmRhdGEodGhpcywibGFzdFRvZ2dsZSIrYS5ndWlkKXx8MCklZDtjLmRhdGEodGhpcywibGFzdFRvZ2dsZSIrYS5ndWlkLGUrMSk7Zi5wcmV2ZW50RGVmYXVsdCgpO3JldHVybiBiW2VdLmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8ZmFsc2V9KSl9LGhvdmVyOmZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMubW91c2VlbnRlcihhKS5tb3VzZWxlYXZlKGJ8fGEpfX0pO3ZhciBHYT17Zm9jdXM6ImZvY3VzaW4iLGJsdXI6ImZvY3Vzb3V0Iixtb3VzZWVudGVyOiJtb3VzZW92ZXIiLG1vdXNlbGVhdmU6Im1vdXNlb3V0In07Yy5lYWNoKFsibGl2ZSIsImRpZSJdLGZ1bmN0aW9uKGEsYil7Yy5mbltiXT1mdW5jdGlvbihkLGYsZSxqKXt2YXIgaSxvPTAsayxuLHI9anx8dGhpcy5zZWxlY3RvciwKdT1qP3RoaXM6Yyh0aGlzLmNvbnRleHQpO2lmKGMuaXNGdW5jdGlvbihmKSl7ZT1mO2Y9d31mb3IoZD0oZHx8IiIpLnNwbGl0KCIgIik7KGk9ZFtvKytdKSE9bnVsbDspe2o9Ty5leGVjKGkpO2s9IiI7aWYoail7az1qWzBdO2k9aS5yZXBsYWNlKE8sIiIpfWlmKGk9PT0iaG92ZXIiKWQucHVzaCgibW91c2VlbnRlciIraywibW91c2VsZWF2ZSIrayk7ZWxzZXtuPWk7aWYoaT09PSJmb2N1cyJ8fGk9PT0iYmx1ciIpe2QucHVzaChHYVtpXStrKTtpKz1rfWVsc2UgaT0oR2FbaV18fGkpK2s7Yj09PSJsaXZlIj91LmVhY2goZnVuY3Rpb24oKXtjLmV2ZW50LmFkZCh0aGlzLHBhKGkscikse2RhdGE6ZixzZWxlY3RvcjpyLGhhbmRsZXI6ZSxvcmlnVHlwZTppLG9yaWdIYW5kbGVyOmUscHJlVHlwZTpufSl9KTp1LnVuYmluZChwYShpLHIpLGUpfX1yZXR1cm4gdGhpc319KTtjLmVhY2goImJsdXIgZm9jdXMgZm9jdXNpbiBmb2N1c291dCBsb2FkIHJlc2l6ZSBzY3JvbGwgdW5sb2FkIGNsaWNrIGRibGNsaWNrIG1vdXNlZG93biBtb3VzZXVwIG1vdXNlbW92ZSBtb3VzZW92ZXIgbW91c2VvdXQgbW91c2VlbnRlciBtb3VzZWxlYXZlIGNoYW5nZSBzZWxlY3Qgc3VibWl0IGtleWRvd24ga2V5cHJlc3Mga2V5dXAgZXJyb3IiLnNwbGl0KCIgIiksCmZ1bmN0aW9uKGEsYil7Yy5mbltiXT1mdW5jdGlvbihkKXtyZXR1cm4gZD90aGlzLmJpbmQoYixkKTp0aGlzLnRyaWdnZXIoYil9O2lmKGMuYXR0ckZuKWMuYXR0ckZuW2JdPXRydWV9KTtBLmF0dGFjaEV2ZW50JiYhQS5hZGRFdmVudExpc3RlbmVyJiZBLmF0dGFjaEV2ZW50KCJvbnVubG9hZCIsZnVuY3Rpb24oKXtmb3IodmFyIGEgaW4gYy5jYWNoZSlpZihjLmNhY2hlW2FdLmhhbmRsZSl0cnl7Yy5ldmVudC5yZW1vdmUoYy5jYWNoZVthXS5oYW5kbGUuZWxlbSl9Y2F0Y2goYil7fX0pOyhmdW5jdGlvbigpe2Z1bmN0aW9uIGEoZyl7Zm9yKHZhciBoPSIiLGwsbT0wO2dbbV07bSsrKXtsPWdbbV07aWYobC5ub2RlVHlwZT09PTN8fGwubm9kZVR5cGU9PT00KWgrPWwubm9kZVZhbHVlO2Vsc2UgaWYobC5ub2RlVHlwZSE9PTgpaCs9YShsLmNoaWxkTm9kZXMpfXJldHVybiBofWZ1bmN0aW9uIGIoZyxoLGwsbSxxLHApe3E9MDtmb3IodmFyIHY9bS5sZW5ndGg7cTx2O3ErKyl7dmFyIHQ9bVtxXTsKaWYodCl7dD10W2ddO2Zvcih2YXIgeT1mYWxzZTt0Oyl7aWYodC5zaXpjYWNoZT09PWwpe3k9bVt0LnNpenNldF07YnJlYWt9aWYodC5ub2RlVHlwZT09PTEmJiFwKXt0LnNpemNhY2hlPWw7dC5zaXpzZXQ9cX1pZih0Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT1oKXt5PXQ7YnJlYWt9dD10W2ddfW1bcV09eX19fWZ1bmN0aW9uIGQoZyxoLGwsbSxxLHApe3E9MDtmb3IodmFyIHY9bS5sZW5ndGg7cTx2O3ErKyl7dmFyIHQ9bVtxXTtpZih0KXt0PXRbZ107Zm9yKHZhciB5PWZhbHNlO3Q7KXtpZih0LnNpemNhY2hlPT09bCl7eT1tW3Quc2l6c2V0XTticmVha31pZih0Lm5vZGVUeXBlPT09MSl7aWYoIXApe3Quc2l6Y2FjaGU9bDt0LnNpenNldD1xfWlmKHR5cGVvZiBoIT09InN0cmluZyIpe2lmKHQ9PT1oKXt5PXRydWU7YnJlYWt9fWVsc2UgaWYoay5maWx0ZXIoaCxbdF0pLmxlbmd0aD4wKXt5PXQ7YnJlYWt9fXQ9dFtnXX1tW3FdPXl9fX12YXIgZj0vKCg/OlwoKD86XChbXigpXStcKXxbXigpXSspK1wpfFxbKD86XFtbXltcXV0qXF18WyciXVteJyJdKlsnIl18W15bXF0nIl0rKStcXXxcXC58W14gPit+LChcW1xcXSspK3xbPit+XSkoXHMqLFxzKik/KCg/Oi58XHJ8XG4pKikvZywKZT0wLGo9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyxpPWZhbHNlLG89dHJ1ZTtbMCwwXS5zb3J0KGZ1bmN0aW9uKCl7bz1mYWxzZTtyZXR1cm4gMH0pO3ZhciBrPWZ1bmN0aW9uKGcsaCxsLG0pe2w9bHx8W107dmFyIHE9aD1ofHxzO2lmKGgubm9kZVR5cGUhPT0xJiZoLm5vZGVUeXBlIT09OSlyZXR1cm5bXTtpZighZ3x8dHlwZW9mIGchPT0ic3RyaW5nIilyZXR1cm4gbDtmb3IodmFyIHA9W10sdix0LHksUyxIPXRydWUsTT14KGgpLEk9ZzsoZi5leGVjKCIiKSx2PWYuZXhlYyhJKSkhPT1udWxsOyl7ST12WzNdO3AucHVzaCh2WzFdKTtpZih2WzJdKXtTPXZbM107YnJlYWt9fWlmKHAubGVuZ3RoPjEmJnIuZXhlYyhnKSlpZihwLmxlbmd0aD09PTImJm4ucmVsYXRpdmVbcFswXV0pdD1nYShwWzBdK3BbMV0saCk7ZWxzZSBmb3IodD1uLnJlbGF0aXZlW3BbMF1dP1toXTprKHAuc2hpZnQoKSxoKTtwLmxlbmd0aDspe2c9cC5zaGlmdCgpO2lmKG4ucmVsYXRpdmVbZ10pZys9cC5zaGlmdCgpOwp0PWdhKGcsdCl9ZWxzZXtpZighbSYmcC5sZW5ndGg+MSYmaC5ub2RlVHlwZT09PTkmJiFNJiZuLm1hdGNoLklELnRlc3QocFswXSkmJiFuLm1hdGNoLklELnRlc3QocFtwLmxlbmd0aC0xXSkpe3Y9ay5maW5kKHAuc2hpZnQoKSxoLE0pO2g9di5leHByP2suZmlsdGVyKHYuZXhwcix2LnNldClbMF06di5zZXRbMF19aWYoaCl7dj1tP3tleHByOnAucG9wKCksc2V0OnoobSl9OmsuZmluZChwLnBvcCgpLHAubGVuZ3RoPT09MSYmKHBbMF09PT0ifiJ8fHBbMF09PT0iKyIpJiZoLnBhcmVudE5vZGU/aC5wYXJlbnROb2RlOmgsTSk7dD12LmV4cHI/ay5maWx0ZXIodi5leHByLHYuc2V0KTp2LnNldDtpZihwLmxlbmd0aD4wKXk9eih0KTtlbHNlIEg9ZmFsc2U7Zm9yKDtwLmxlbmd0aDspe3ZhciBEPXAucG9wKCk7dj1EO2lmKG4ucmVsYXRpdmVbRF0pdj1wLnBvcCgpO2Vsc2UgRD0iIjtpZih2PT1udWxsKXY9aDtuLnJlbGF0aXZlW0RdKHksdixNKX19ZWxzZSB5PVtdfXl8fCh5PXQpO3l8fGsuZXJyb3IoRHx8CmcpO2lmKGouY2FsbCh5KT09PSJbb2JqZWN0IEFycmF5XSIpaWYoSClpZihoJiZoLm5vZGVUeXBlPT09MSlmb3IoZz0wO3lbZ10hPW51bGw7ZysrKXtpZih5W2ddJiYoeVtnXT09PXRydWV8fHlbZ10ubm9kZVR5cGU9PT0xJiZFKGgseVtnXSkpKWwucHVzaCh0W2ddKX1lbHNlIGZvcihnPTA7eVtnXSE9bnVsbDtnKyspeVtnXSYmeVtnXS5ub2RlVHlwZT09PTEmJmwucHVzaCh0W2ddKTtlbHNlIGwucHVzaC5hcHBseShsLHkpO2Vsc2Ugeih5LGwpO2lmKFMpe2soUyxxLGwsbSk7ay51bmlxdWVTb3J0KGwpfXJldHVybiBsfTtrLnVuaXF1ZVNvcnQ9ZnVuY3Rpb24oZyl7aWYoQil7aT1vO2cuc29ydChCKTtpZihpKWZvcih2YXIgaD0xO2g8Zy5sZW5ndGg7aCsrKWdbaF09PT1nW2gtMV0mJmcuc3BsaWNlKGgtLSwxKX1yZXR1cm4gZ307ay5tYXRjaGVzPWZ1bmN0aW9uKGcsaCl7cmV0dXJuIGsoZyxudWxsLG51bGwsaCl9O2suZmluZD1mdW5jdGlvbihnLGgsbCl7dmFyIG0scTtpZighZylyZXR1cm5bXTsKZm9yKHZhciBwPTAsdj1uLm9yZGVyLmxlbmd0aDtwPHY7cCsrKXt2YXIgdD1uLm9yZGVyW3BdO2lmKHE9bi5sZWZ0TWF0Y2hbdF0uZXhlYyhnKSl7dmFyIHk9cVsxXTtxLnNwbGljZSgxLDEpO2lmKHkuc3Vic3RyKHkubGVuZ3RoLTEpIT09IlxcIil7cVsxXT0ocVsxXXx8IiIpLnJlcGxhY2UoL1xcL2csIiIpO209bi5maW5kW3RdKHEsaCxsKTtpZihtIT1udWxsKXtnPWcucmVwbGFjZShuLm1hdGNoW3RdLCIiKTticmVha319fX1tfHwobT1oLmdldEVsZW1lbnRzQnlUYWdOYW1lKCIqIikpO3JldHVybntzZXQ6bSxleHByOmd9fTtrLmZpbHRlcj1mdW5jdGlvbihnLGgsbCxtKXtmb3IodmFyIHE9ZyxwPVtdLHY9aCx0LHksUz1oJiZoWzBdJiZ4KGhbMF0pO2cmJmgubGVuZ3RoOyl7Zm9yKHZhciBIIGluIG4uZmlsdGVyKWlmKCh0PW4ubGVmdE1hdGNoW0hdLmV4ZWMoZykpIT1udWxsJiZ0WzJdKXt2YXIgTT1uLmZpbHRlcltIXSxJLEQ7RD10WzFdO3k9ZmFsc2U7dC5zcGxpY2UoMSwxKTtpZihELnN1YnN0cihELmxlbmd0aC0KMSkhPT0iXFwiKXtpZih2PT09cClwPVtdO2lmKG4ucHJlRmlsdGVyW0hdKWlmKHQ9bi5wcmVGaWx0ZXJbSF0odCx2LGwscCxtLFMpKXtpZih0PT09dHJ1ZSljb250aW51ZX1lbHNlIHk9ST10cnVlO2lmKHQpZm9yKHZhciBVPTA7KEQ9dltVXSkhPW51bGw7VSsrKWlmKEQpe0k9TShELHQsVSx2KTt2YXIgSGE9bV4hIUk7aWYobCYmSSE9bnVsbClpZihIYSl5PXRydWU7ZWxzZSB2W1VdPWZhbHNlO2Vsc2UgaWYoSGEpe3AucHVzaChEKTt5PXRydWV9fWlmKEkhPT13KXtsfHwodj1wKTtnPWcucmVwbGFjZShuLm1hdGNoW0hdLCIiKTtpZigheSlyZXR1cm5bXTticmVha319fWlmKGc9PT1xKWlmKHk9PW51bGwpay5lcnJvcihnKTtlbHNlIGJyZWFrO3E9Z31yZXR1cm4gdn07ay5lcnJvcj1mdW5jdGlvbihnKXt0aHJvdyJTeW50YXggZXJyb3IsIHVucmVjb2duaXplZCBleHByZXNzaW9uOiAiK2c7fTt2YXIgbj1rLnNlbGVjdG9ycz17b3JkZXI6WyJJRCIsIk5BTUUiLCJUQUciXSxtYXRjaDp7SUQ6LyMoKD86W1x3XHUwMGMwLVx1RkZGRi1dfFxcLikrKS8sCkNMQVNTOi9cLigoPzpbXHdcdTAwYzAtXHVGRkZGLV18XFwuKSspLyxOQU1FOi9cW25hbWU9WyciXSooKD86W1x3XHUwMGMwLVx1RkZGRi1dfFxcLikrKVsnIl0qXF0vLEFUVFI6L1xbXHMqKCg/Oltcd1x1MDBjMC1cdUZGRkYtXXxcXC4pKylccyooPzooXFM/PSlccyooWyciXSopKC4qPylcM3wpXHMqXF0vLFRBRzovXigoPzpbXHdcdTAwYzAtXHVGRkZGXCotXXxcXC4pKykvLENISUxEOi86KG9ubHl8bnRofGxhc3R8Zmlyc3QpLWNoaWxkKD86XCgoZXZlbnxvZGR8W1xkbistXSopXCkpPy8sUE9TOi86KG50aHxlcXxndHxsdHxmaXJzdHxsYXN0fGV2ZW58b2RkKSg/OlwoKFxkKilcKSk/KD89W14tXXwkKS8sUFNFVURPOi86KCg/Oltcd1x1MDBjMC1cdUZGRkYtXXxcXC4pKykoPzpcKChbJyJdPykoKD86XChbXlwpXStcKXxbXlwoXCldKikrKVwyXCkpPy99LGxlZnRNYXRjaDp7fSxhdHRyTWFwOnsiY2xhc3MiOiJjbGFzc05hbWUiLCJmb3IiOiJodG1sRm9yIn0sYXR0ckhhbmRsZTp7aHJlZjpmdW5jdGlvbihnKXtyZXR1cm4gZy5nZXRBdHRyaWJ1dGUoImhyZWYiKX19LApyZWxhdGl2ZTp7IisiOmZ1bmN0aW9uKGcsaCl7dmFyIGw9dHlwZW9mIGg9PT0ic3RyaW5nIixtPWwmJiEvXFcvLnRlc3QoaCk7bD1sJiYhbTtpZihtKWg9aC50b0xvd2VyQ2FzZSgpO209MDtmb3IodmFyIHE9Zy5sZW5ndGgscDttPHE7bSsrKWlmKHA9Z1ttXSl7Zm9yKDsocD1wLnByZXZpb3VzU2libGluZykmJnAubm9kZVR5cGUhPT0xOyk7Z1ttXT1sfHxwJiZwLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT1oP3B8fGZhbHNlOnA9PT1ofWwmJmsuZmlsdGVyKGgsZyx0cnVlKX0sIj4iOmZ1bmN0aW9uKGcsaCl7dmFyIGw9dHlwZW9mIGg9PT0ic3RyaW5nIjtpZihsJiYhL1xXLy50ZXN0KGgpKXtoPWgudG9Mb3dlckNhc2UoKTtmb3IodmFyIG09MCxxPWcubGVuZ3RoO208cTttKyspe3ZhciBwPWdbbV07aWYocCl7bD1wLnBhcmVudE5vZGU7Z1ttXT1sLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT1oP2w6ZmFsc2V9fX1lbHNle209MDtmb3IocT1nLmxlbmd0aDttPHE7bSsrKWlmKHA9Z1ttXSlnW21dPQpsP3AucGFyZW50Tm9kZTpwLnBhcmVudE5vZGU9PT1oO2wmJmsuZmlsdGVyKGgsZyx0cnVlKX19LCIiOmZ1bmN0aW9uKGcsaCxsKXt2YXIgbT1lKysscT1kO2lmKHR5cGVvZiBoPT09InN0cmluZyImJiEvXFcvLnRlc3QoaCkpe3ZhciBwPWg9aC50b0xvd2VyQ2FzZSgpO3E9Yn1xKCJwYXJlbnROb2RlIixoLG0sZyxwLGwpfSwifiI6ZnVuY3Rpb24oZyxoLGwpe3ZhciBtPWUrKyxxPWQ7aWYodHlwZW9mIGg9PT0ic3RyaW5nIiYmIS9cVy8udGVzdChoKSl7dmFyIHA9aD1oLnRvTG93ZXJDYXNlKCk7cT1ifXEoInByZXZpb3VzU2libGluZyIsaCxtLGcscCxsKX19LGZpbmQ6e0lEOmZ1bmN0aW9uKGcsaCxsKXtpZih0eXBlb2YgaC5nZXRFbGVtZW50QnlJZCE9PSJ1bmRlZmluZWQiJiYhbClyZXR1cm4oZz1oLmdldEVsZW1lbnRCeUlkKGdbMV0pKT9bZ106W119LE5BTUU6ZnVuY3Rpb24oZyxoKXtpZih0eXBlb2YgaC5nZXRFbGVtZW50c0J5TmFtZSE9PSJ1bmRlZmluZWQiKXt2YXIgbD1bXTsKaD1oLmdldEVsZW1lbnRzQnlOYW1lKGdbMV0pO2Zvcih2YXIgbT0wLHE9aC5sZW5ndGg7bTxxO20rKyloW21dLmdldEF0dHJpYnV0ZSgibmFtZSIpPT09Z1sxXSYmbC5wdXNoKGhbbV0pO3JldHVybiBsLmxlbmd0aD09PTA/bnVsbDpsfX0sVEFHOmZ1bmN0aW9uKGcsaCl7cmV0dXJuIGguZ2V0RWxlbWVudHNCeVRhZ05hbWUoZ1sxXSl9fSxwcmVGaWx0ZXI6e0NMQVNTOmZ1bmN0aW9uKGcsaCxsLG0scSxwKXtnPSIgIitnWzFdLnJlcGxhY2UoL1xcL2csIiIpKyIgIjtpZihwKXJldHVybiBnO3A9MDtmb3IodmFyIHY7KHY9aFtwXSkhPW51bGw7cCsrKWlmKHYpaWYocV4odi5jbGFzc05hbWUmJigiICIrdi5jbGFzc05hbWUrIiAiKS5yZXBsYWNlKC9bXHRcbl0vZywiICIpLmluZGV4T2YoZyk+PTApKWx8fG0ucHVzaCh2KTtlbHNlIGlmKGwpaFtwXT1mYWxzZTtyZXR1cm4gZmFsc2V9LElEOmZ1bmN0aW9uKGcpe3JldHVybiBnWzFdLnJlcGxhY2UoL1xcL2csIiIpfSxUQUc6ZnVuY3Rpb24oZyl7cmV0dXJuIGdbMV0udG9Mb3dlckNhc2UoKX0sCkNISUxEOmZ1bmN0aW9uKGcpe2lmKGdbMV09PT0ibnRoIil7dmFyIGg9LygtPykoXGQqKW4oKD86XCt8LSk/XGQqKS8uZXhlYyhnWzJdPT09ImV2ZW4iJiYiMm4ifHxnWzJdPT09Im9kZCImJiIybisxInx8IS9cRC8udGVzdChnWzJdKSYmIjBuKyIrZ1syXXx8Z1syXSk7Z1syXT1oWzFdKyhoWzJdfHwxKS0wO2dbM109aFszXS0wfWdbMF09ZSsrO3JldHVybiBnfSxBVFRSOmZ1bmN0aW9uKGcsaCxsLG0scSxwKXtoPWdbMV0ucmVwbGFjZSgvXFwvZywiIik7aWYoIXAmJm4uYXR0ck1hcFtoXSlnWzFdPW4uYXR0ck1hcFtoXTtpZihnWzJdPT09In49IilnWzRdPSIgIitnWzRdKyIgIjtyZXR1cm4gZ30sUFNFVURPOmZ1bmN0aW9uKGcsaCxsLG0scSl7aWYoZ1sxXT09PSJub3QiKWlmKChmLmV4ZWMoZ1szXSl8fCIiKS5sZW5ndGg+MXx8L15cdy8udGVzdChnWzNdKSlnWzNdPWsoZ1szXSxudWxsLG51bGwsaCk7ZWxzZXtnPWsuZmlsdGVyKGdbM10saCxsLHRydWVecSk7bHx8bS5wdXNoLmFwcGx5KG0sCmcpO3JldHVybiBmYWxzZX1lbHNlIGlmKG4ubWF0Y2guUE9TLnRlc3QoZ1swXSl8fG4ubWF0Y2guQ0hJTEQudGVzdChnWzBdKSlyZXR1cm4gdHJ1ZTtyZXR1cm4gZ30sUE9TOmZ1bmN0aW9uKGcpe2cudW5zaGlmdCh0cnVlKTtyZXR1cm4gZ319LGZpbHRlcnM6e2VuYWJsZWQ6ZnVuY3Rpb24oZyl7cmV0dXJuIGcuZGlzYWJsZWQ9PT1mYWxzZSYmZy50eXBlIT09ImhpZGRlbiJ9LGRpc2FibGVkOmZ1bmN0aW9uKGcpe3JldHVybiBnLmRpc2FibGVkPT09dHJ1ZX0sY2hlY2tlZDpmdW5jdGlvbihnKXtyZXR1cm4gZy5jaGVja2VkPT09dHJ1ZX0sc2VsZWN0ZWQ6ZnVuY3Rpb24oZyl7cmV0dXJuIGcuc2VsZWN0ZWQ9PT10cnVlfSxwYXJlbnQ6ZnVuY3Rpb24oZyl7cmV0dXJuISFnLmZpcnN0Q2hpbGR9LGVtcHR5OmZ1bmN0aW9uKGcpe3JldHVybiFnLmZpcnN0Q2hpbGR9LGhhczpmdW5jdGlvbihnLGgsbCl7cmV0dXJuISFrKGxbM10sZykubGVuZ3RofSxoZWFkZXI6ZnVuY3Rpb24oZyl7cmV0dXJuL2hcZC9pLnRlc3QoZy5ub2RlTmFtZSl9LAp0ZXh0OmZ1bmN0aW9uKGcpe3JldHVybiJ0ZXh0Ij09PWcudHlwZX0scmFkaW86ZnVuY3Rpb24oZyl7cmV0dXJuInJhZGlvIj09PWcudHlwZX0sY2hlY2tib3g6ZnVuY3Rpb24oZyl7cmV0dXJuImNoZWNrYm94Ij09PWcudHlwZX0sZmlsZTpmdW5jdGlvbihnKXtyZXR1cm4iZmlsZSI9PT1nLnR5cGV9LHBhc3N3b3JkOmZ1bmN0aW9uKGcpe3JldHVybiJwYXNzd29yZCI9PT1nLnR5cGV9LHN1Ym1pdDpmdW5jdGlvbihnKXtyZXR1cm4ic3VibWl0Ij09PWcudHlwZX0saW1hZ2U6ZnVuY3Rpb24oZyl7cmV0dXJuImltYWdlIj09PWcudHlwZX0scmVzZXQ6ZnVuY3Rpb24oZyl7cmV0dXJuInJlc2V0Ij09PWcudHlwZX0sYnV0dG9uOmZ1bmN0aW9uKGcpe3JldHVybiJidXR0b24iPT09Zy50eXBlfHxnLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT0iYnV0dG9uIn0saW5wdXQ6ZnVuY3Rpb24oZyl7cmV0dXJuL2lucHV0fHNlbGVjdHx0ZXh0YXJlYXxidXR0b24vaS50ZXN0KGcubm9kZU5hbWUpfX0sCnNldEZpbHRlcnM6e2ZpcnN0OmZ1bmN0aW9uKGcsaCl7cmV0dXJuIGg9PT0wfSxsYXN0OmZ1bmN0aW9uKGcsaCxsLG0pe3JldHVybiBoPT09bS5sZW5ndGgtMX0sZXZlbjpmdW5jdGlvbihnLGgpe3JldHVybiBoJTI9PT0wfSxvZGQ6ZnVuY3Rpb24oZyxoKXtyZXR1cm4gaCUyPT09MX0sbHQ6ZnVuY3Rpb24oZyxoLGwpe3JldHVybiBoPGxbM10tMH0sZ3Q6ZnVuY3Rpb24oZyxoLGwpe3JldHVybiBoPmxbM10tMH0sbnRoOmZ1bmN0aW9uKGcsaCxsKXtyZXR1cm4gbFszXS0wPT09aH0sZXE6ZnVuY3Rpb24oZyxoLGwpe3JldHVybiBsWzNdLTA9PT1ofX0sZmlsdGVyOntQU0VVRE86ZnVuY3Rpb24oZyxoLGwsbSl7dmFyIHE9aFsxXSxwPW4uZmlsdGVyc1txXTtpZihwKXJldHVybiBwKGcsbCxoLG0pO2Vsc2UgaWYocT09PSJjb250YWlucyIpcmV0dXJuKGcudGV4dENvbnRlbnR8fGcuaW5uZXJUZXh0fHxhKFtnXSl8fCIiKS5pbmRleE9mKGhbM10pPj0wO2Vsc2UgaWYocT09PSJub3QiKXtoPQpoWzNdO2w9MDtmb3IobT1oLmxlbmd0aDtsPG07bCsrKWlmKGhbbF09PT1nKXJldHVybiBmYWxzZTtyZXR1cm4gdHJ1ZX1lbHNlIGsuZXJyb3IoIlN5bnRheCBlcnJvciwgdW5yZWNvZ25pemVkIGV4cHJlc3Npb246ICIrcSl9LENISUxEOmZ1bmN0aW9uKGcsaCl7dmFyIGw9aFsxXSxtPWc7c3dpdGNoKGwpe2Nhc2UgIm9ubHkiOmNhc2UgImZpcnN0Ijpmb3IoO209bS5wcmV2aW91c1NpYmxpbmc7KWlmKG0ubm9kZVR5cGU9PT0xKXJldHVybiBmYWxzZTtpZihsPT09ImZpcnN0IilyZXR1cm4gdHJ1ZTttPWc7Y2FzZSAibGFzdCI6Zm9yKDttPW0ubmV4dFNpYmxpbmc7KWlmKG0ubm9kZVR5cGU9PT0xKXJldHVybiBmYWxzZTtyZXR1cm4gdHJ1ZTtjYXNlICJudGgiOmw9aFsyXTt2YXIgcT1oWzNdO2lmKGw9PT0xJiZxPT09MClyZXR1cm4gdHJ1ZTtoPWhbMF07dmFyIHA9Zy5wYXJlbnROb2RlO2lmKHAmJihwLnNpemNhY2hlIT09aHx8IWcubm9kZUluZGV4KSl7dmFyIHY9MDtmb3IobT1wLmZpcnN0Q2hpbGQ7bTttPQptLm5leHRTaWJsaW5nKWlmKG0ubm9kZVR5cGU9PT0xKW0ubm9kZUluZGV4PSsrdjtwLnNpemNhY2hlPWh9Zz1nLm5vZGVJbmRleC1xO3JldHVybiBsPT09MD9nPT09MDpnJWw9PT0wJiZnL2w+PTB9fSxJRDpmdW5jdGlvbihnLGgpe3JldHVybiBnLm5vZGVUeXBlPT09MSYmZy5nZXRBdHRyaWJ1dGUoImlkIik9PT1ofSxUQUc6ZnVuY3Rpb24oZyxoKXtyZXR1cm4gaD09PSIqIiYmZy5ub2RlVHlwZT09PTF8fGcubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PWh9LENMQVNTOmZ1bmN0aW9uKGcsaCl7cmV0dXJuKCIgIisoZy5jbGFzc05hbWV8fGcuZ2V0QXR0cmlidXRlKCJjbGFzcyIpKSsiICIpLmluZGV4T2YoaCk+LTF9LEFUVFI6ZnVuY3Rpb24oZyxoKXt2YXIgbD1oWzFdO2c9bi5hdHRySGFuZGxlW2xdP24uYXR0ckhhbmRsZVtsXShnKTpnW2xdIT1udWxsP2dbbF06Zy5nZXRBdHRyaWJ1dGUobCk7bD1nKyIiO3ZhciBtPWhbMl07aD1oWzRdO3JldHVybiBnPT1udWxsP209PT0iIT0iOm09PT0KIj0iP2w9PT1oOm09PT0iKj0iP2wuaW5kZXhPZihoKT49MDptPT09In49Ij8oIiAiK2wrIiAiKS5pbmRleE9mKGgpPj0wOiFoP2wmJmchPT1mYWxzZTptPT09IiE9Ij9sIT09aDptPT09Il49Ij9sLmluZGV4T2YoaCk9PT0wOm09PT0iJD0iP2wuc3Vic3RyKGwubGVuZ3RoLWgubGVuZ3RoKT09PWg6bT09PSJ8PSI/bD09PWh8fGwuc3Vic3RyKDAsaC5sZW5ndGgrMSk9PT1oKyItIjpmYWxzZX0sUE9TOmZ1bmN0aW9uKGcsaCxsLG0pe3ZhciBxPW4uc2V0RmlsdGVyc1toWzJdXTtpZihxKXJldHVybiBxKGcsbCxoLG0pfX19LHI9bi5tYXRjaC5QT1M7Zm9yKHZhciB1IGluIG4ubWF0Y2gpe24ubWF0Y2hbdV09bmV3IFJlZ0V4cChuLm1hdGNoW3VdLnNvdXJjZSsvKD8hW15cW10qXF0pKD8hW15cKF0qXCkpLy5zb3VyY2UpO24ubGVmdE1hdGNoW3VdPW5ldyBSZWdFeHAoLyheKD86LnxccnxcbikqPykvLnNvdXJjZStuLm1hdGNoW3VdLnNvdXJjZS5yZXBsYWNlKC9cXChcZCspL2csZnVuY3Rpb24oZywKaCl7cmV0dXJuIlxcIisoaC0wKzEpfSkpfXZhciB6PWZ1bmN0aW9uKGcsaCl7Zz1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChnLDApO2lmKGgpe2gucHVzaC5hcHBseShoLGcpO3JldHVybiBofXJldHVybiBnfTt0cnl7QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwocy5kb2N1bWVudEVsZW1lbnQuY2hpbGROb2RlcywwKX1jYXRjaChDKXt6PWZ1bmN0aW9uKGcsaCl7aD1ofHxbXTtpZihqLmNhbGwoZyk9PT0iW29iamVjdCBBcnJheV0iKUFycmF5LnByb3RvdHlwZS5wdXNoLmFwcGx5KGgsZyk7ZWxzZSBpZih0eXBlb2YgZy5sZW5ndGg9PT0ibnVtYmVyIilmb3IodmFyIGw9MCxtPWcubGVuZ3RoO2w8bTtsKyspaC5wdXNoKGdbbF0pO2Vsc2UgZm9yKGw9MDtnW2xdO2wrKyloLnB1c2goZ1tsXSk7cmV0dXJuIGh9fXZhciBCO2lmKHMuZG9jdW1lbnRFbGVtZW50LmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKUI9ZnVuY3Rpb24oZyxoKXtpZighZy5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbnx8CiFoLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKXtpZihnPT1oKWk9dHJ1ZTtyZXR1cm4gZy5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbj8tMToxfWc9Zy5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihoKSY0Py0xOmc9PT1oPzA6MTtpZihnPT09MClpPXRydWU7cmV0dXJuIGd9O2Vsc2UgaWYoInNvdXJjZUluZGV4ImluIHMuZG9jdW1lbnRFbGVtZW50KUI9ZnVuY3Rpb24oZyxoKXtpZighZy5zb3VyY2VJbmRleHx8IWguc291cmNlSW5kZXgpe2lmKGc9PWgpaT10cnVlO3JldHVybiBnLnNvdXJjZUluZGV4Py0xOjF9Zz1nLnNvdXJjZUluZGV4LWguc291cmNlSW5kZXg7aWYoZz09PTApaT10cnVlO3JldHVybiBnfTtlbHNlIGlmKHMuY3JlYXRlUmFuZ2UpQj1mdW5jdGlvbihnLGgpe2lmKCFnLm93bmVyRG9jdW1lbnR8fCFoLm93bmVyRG9jdW1lbnQpe2lmKGc9PWgpaT10cnVlO3JldHVybiBnLm93bmVyRG9jdW1lbnQ/LTE6MX12YXIgbD1nLm93bmVyRG9jdW1lbnQuY3JlYXRlUmFuZ2UoKSxtPQpoLm93bmVyRG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtsLnNldFN0YXJ0KGcsMCk7bC5zZXRFbmQoZywwKTttLnNldFN0YXJ0KGgsMCk7bS5zZXRFbmQoaCwwKTtnPWwuY29tcGFyZUJvdW5kYXJ5UG9pbnRzKFJhbmdlLlNUQVJUX1RPX0VORCxtKTtpZihnPT09MClpPXRydWU7cmV0dXJuIGd9OyhmdW5jdGlvbigpe3ZhciBnPXMuY3JlYXRlRWxlbWVudCgiZGl2IiksaD0ic2NyaXB0IisobmV3IERhdGUpLmdldFRpbWUoKTtnLmlubmVySFRNTD0iPGEgbmFtZT0nIitoKyInLz4iO3ZhciBsPXMuZG9jdW1lbnRFbGVtZW50O2wuaW5zZXJ0QmVmb3JlKGcsbC5maXJzdENoaWxkKTtpZihzLmdldEVsZW1lbnRCeUlkKGgpKXtuLmZpbmQuSUQ9ZnVuY3Rpb24obSxxLHApe2lmKHR5cGVvZiBxLmdldEVsZW1lbnRCeUlkIT09InVuZGVmaW5lZCImJiFwKXJldHVybihxPXEuZ2V0RWxlbWVudEJ5SWQobVsxXSkpP3EuaWQ9PT1tWzFdfHx0eXBlb2YgcS5nZXRBdHRyaWJ1dGVOb2RlIT09InVuZGVmaW5lZCImJgpxLmdldEF0dHJpYnV0ZU5vZGUoImlkIikubm9kZVZhbHVlPT09bVsxXT9bcV06dzpbXX07bi5maWx0ZXIuSUQ9ZnVuY3Rpb24obSxxKXt2YXIgcD10eXBlb2YgbS5nZXRBdHRyaWJ1dGVOb2RlIT09InVuZGVmaW5lZCImJm0uZ2V0QXR0cmlidXRlTm9kZSgiaWQiKTtyZXR1cm4gbS5ub2RlVHlwZT09PTEmJnAmJnAubm9kZVZhbHVlPT09cX19bC5yZW1vdmVDaGlsZChnKTtsPWc9bnVsbH0pKCk7KGZ1bmN0aW9uKCl7dmFyIGc9cy5jcmVhdGVFbGVtZW50KCJkaXYiKTtnLmFwcGVuZENoaWxkKHMuY3JlYXRlQ29tbWVudCgiIikpO2lmKGcuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIioiKS5sZW5ndGg+MCluLmZpbmQuVEFHPWZ1bmN0aW9uKGgsbCl7bD1sLmdldEVsZW1lbnRzQnlUYWdOYW1lKGhbMV0pO2lmKGhbMV09PT0iKiIpe2g9W107Zm9yKHZhciBtPTA7bFttXTttKyspbFttXS5ub2RlVHlwZT09PTEmJmgucHVzaChsW21dKTtsPWh9cmV0dXJuIGx9O2cuaW5uZXJIVE1MPSI8YSBocmVmPScjJz48L2E+IjsKaWYoZy5maXJzdENoaWxkJiZ0eXBlb2YgZy5maXJzdENoaWxkLmdldEF0dHJpYnV0ZSE9PSJ1bmRlZmluZWQiJiZnLmZpcnN0Q2hpbGQuZ2V0QXR0cmlidXRlKCJocmVmIikhPT0iIyIpbi5hdHRySGFuZGxlLmhyZWY9ZnVuY3Rpb24oaCl7cmV0dXJuIGguZ2V0QXR0cmlidXRlKCJocmVmIiwyKX07Zz1udWxsfSkoKTtzLnF1ZXJ5U2VsZWN0b3JBbGwmJmZ1bmN0aW9uKCl7dmFyIGc9ayxoPXMuY3JlYXRlRWxlbWVudCgiZGl2Iik7aC5pbm5lckhUTUw9IjxwIGNsYXNzPSdURVNUJz48L3A+IjtpZighKGgucXVlcnlTZWxlY3RvckFsbCYmaC5xdWVyeVNlbGVjdG9yQWxsKCIuVEVTVCIpLmxlbmd0aD09PTApKXtrPWZ1bmN0aW9uKG0scSxwLHYpe3E9cXx8cztpZighdiYmcS5ub2RlVHlwZT09PTkmJiF4KHEpKXRyeXtyZXR1cm4geihxLnF1ZXJ5U2VsZWN0b3JBbGwobSkscCl9Y2F0Y2godCl7fXJldHVybiBnKG0scSxwLHYpfTtmb3IodmFyIGwgaW4gZylrW2xdPWdbbF07aD1udWxsfX0oKTsKKGZ1bmN0aW9uKCl7dmFyIGc9cy5jcmVhdGVFbGVtZW50KCJkaXYiKTtnLmlubmVySFRNTD0iPGRpdiBjbGFzcz0ndGVzdCBlJz48L2Rpdj48ZGl2IGNsYXNzPSd0ZXN0Jz48L2Rpdj4iO2lmKCEoIWcuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZXx8Zy5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJlIikubGVuZ3RoPT09MCkpe2cubGFzdENoaWxkLmNsYXNzTmFtZT0iZSI7aWYoZy5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJlIikubGVuZ3RoIT09MSl7bi5vcmRlci5zcGxpY2UoMSwwLCJDTEFTUyIpO24uZmluZC5DTEFTUz1mdW5jdGlvbihoLGwsbSl7aWYodHlwZW9mIGwuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSE9PSJ1bmRlZmluZWQiJiYhbSlyZXR1cm4gbC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGhbMV0pfTtnPW51bGx9fX0pKCk7dmFyIEU9cy5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbj9mdW5jdGlvbihnLGgpe3JldHVybiEhKGcuY29tcGFyZURvY3VtZW50UG9zaXRpb24oaCkmMTYpfToKZnVuY3Rpb24oZyxoKXtyZXR1cm4gZyE9PWgmJihnLmNvbnRhaW5zP2cuY29udGFpbnMoaCk6dHJ1ZSl9LHg9ZnVuY3Rpb24oZyl7cmV0dXJuKGc9KGc/Zy5vd25lckRvY3VtZW50fHxnOjApLmRvY3VtZW50RWxlbWVudCk/Zy5ub2RlTmFtZSE9PSJIVE1MIjpmYWxzZX0sZ2E9ZnVuY3Rpb24oZyxoKXt2YXIgbD1bXSxtPSIiLHE7Zm9yKGg9aC5ub2RlVHlwZT9baF06aDtxPW4ubWF0Y2guUFNFVURPLmV4ZWMoZyk7KXttKz1xWzBdO2c9Zy5yZXBsYWNlKG4ubWF0Y2guUFNFVURPLCIiKX1nPW4ucmVsYXRpdmVbZ10/ZysiKiI6ZztxPTA7Zm9yKHZhciBwPWgubGVuZ3RoO3E8cDtxKyspayhnLGhbcV0sbCk7cmV0dXJuIGsuZmlsdGVyKG0sbCl9O2MuZmluZD1rO2MuZXhwcj1rLnNlbGVjdG9ycztjLmV4cHJbIjoiXT1jLmV4cHIuZmlsdGVycztjLnVuaXF1ZT1rLnVuaXF1ZVNvcnQ7Yy50ZXh0PWE7Yy5pc1hNTERvYz14O2MuY29udGFpbnM9RX0pKCk7dmFyIGViPS9VbnRpbCQvLGZiPS9eKD86cGFyZW50c3xwcmV2VW50aWx8cHJldkFsbCkvLApnYj0vLC87Uj1BcnJheS5wcm90b3R5cGUuc2xpY2U7dmFyIElhPWZ1bmN0aW9uKGEsYixkKXtpZihjLmlzRnVuY3Rpb24oYikpcmV0dXJuIGMuZ3JlcChhLGZ1bmN0aW9uKGUsail7cmV0dXJuISFiLmNhbGwoZSxqLGUpPT09ZH0pO2Vsc2UgaWYoYi5ub2RlVHlwZSlyZXR1cm4gYy5ncmVwKGEsZnVuY3Rpb24oZSl7cmV0dXJuIGU9PT1iPT09ZH0pO2Vsc2UgaWYodHlwZW9mIGI9PT0ic3RyaW5nIil7dmFyIGY9Yy5ncmVwKGEsZnVuY3Rpb24oZSl7cmV0dXJuIGUubm9kZVR5cGU9PT0xfSk7aWYoVWEudGVzdChiKSlyZXR1cm4gYy5maWx0ZXIoYixmLCFkKTtlbHNlIGI9Yy5maWx0ZXIoYixmKX1yZXR1cm4gYy5ncmVwKGEsZnVuY3Rpb24oZSl7cmV0dXJuIGMuaW5BcnJheShlLGIpPj0wPT09ZH0pfTtjLmZuLmV4dGVuZCh7ZmluZDpmdW5jdGlvbihhKXtmb3IodmFyIGI9dGhpcy5wdXNoU3RhY2soIiIsImZpbmQiLGEpLGQ9MCxmPTAsZT10aGlzLmxlbmd0aDtmPGU7ZisrKXtkPWIubGVuZ3RoOwpjLmZpbmQoYSx0aGlzW2ZdLGIpO2lmKGY+MClmb3IodmFyIGo9ZDtqPGIubGVuZ3RoO2orKylmb3IodmFyIGk9MDtpPGQ7aSsrKWlmKGJbaV09PT1iW2pdKXtiLnNwbGljZShqLS0sMSk7YnJlYWt9fXJldHVybiBifSxoYXM6ZnVuY3Rpb24oYSl7dmFyIGI9YyhhKTtyZXR1cm4gdGhpcy5maWx0ZXIoZnVuY3Rpb24oKXtmb3IodmFyIGQ9MCxmPWIubGVuZ3RoO2Q8ZjtkKyspaWYoYy5jb250YWlucyh0aGlzLGJbZF0pKXJldHVybiB0cnVlfSl9LG5vdDpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soSWEodGhpcyxhLGZhbHNlKSwibm90IixhKX0sZmlsdGVyOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnB1c2hTdGFjayhJYSh0aGlzLGEsdHJ1ZSksImZpbHRlciIsYSl9LGlzOmZ1bmN0aW9uKGEpe3JldHVybiEhYSYmYy5maWx0ZXIoYSx0aGlzKS5sZW5ndGg+MH0sY2xvc2VzdDpmdW5jdGlvbihhLGIpe2lmKGMuaXNBcnJheShhKSl7dmFyIGQ9W10sZj10aGlzWzBdLGUsaj0Ke30saTtpZihmJiZhLmxlbmd0aCl7ZT0wO2Zvcih2YXIgbz1hLmxlbmd0aDtlPG87ZSsrKXtpPWFbZV07altpXXx8KGpbaV09Yy5leHByLm1hdGNoLlBPUy50ZXN0KGkpP2MoaSxifHx0aGlzLmNvbnRleHQpOmkpfWZvcig7ZiYmZi5vd25lckRvY3VtZW50JiZmIT09Yjspe2ZvcihpIGluIGope2U9altpXTtpZihlLmpxdWVyeT9lLmluZGV4KGYpPi0xOmMoZikuaXMoZSkpe2QucHVzaCh7c2VsZWN0b3I6aSxlbGVtOmZ9KTtkZWxldGUgaltpXX19Zj1mLnBhcmVudE5vZGV9fXJldHVybiBkfXZhciBrPWMuZXhwci5tYXRjaC5QT1MudGVzdChhKT9jKGEsYnx8dGhpcy5jb250ZXh0KTpudWxsO3JldHVybiB0aGlzLm1hcChmdW5jdGlvbihuLHIpe2Zvcig7ciYmci5vd25lckRvY3VtZW50JiZyIT09Yjspe2lmKGs/ay5pbmRleChyKT4tMTpjKHIpLmlzKGEpKXJldHVybiByO3I9ci5wYXJlbnROb2RlfXJldHVybiBudWxsfSl9LGluZGV4OmZ1bmN0aW9uKGEpe2lmKCFhfHx0eXBlb2YgYT09PQoic3RyaW5nIilyZXR1cm4gYy5pbkFycmF5KHRoaXNbMF0sYT9jKGEpOnRoaXMucGFyZW50KCkuY2hpbGRyZW4oKSk7cmV0dXJuIGMuaW5BcnJheShhLmpxdWVyeT9hWzBdOmEsdGhpcyl9LGFkZDpmdW5jdGlvbihhLGIpe2E9dHlwZW9mIGE9PT0ic3RyaW5nIj9jKGEsYnx8dGhpcy5jb250ZXh0KTpjLm1ha2VBcnJheShhKTtiPWMubWVyZ2UodGhpcy5nZXQoKSxhKTtyZXR1cm4gdGhpcy5wdXNoU3RhY2socWEoYVswXSl8fHFhKGJbMF0pP2I6Yy51bmlxdWUoYikpfSxhbmRTZWxmOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYWRkKHRoaXMucHJldk9iamVjdCl9fSk7Yy5lYWNoKHtwYXJlbnQ6ZnVuY3Rpb24oYSl7cmV0dXJuKGE9YS5wYXJlbnROb2RlKSYmYS5ub2RlVHlwZSE9PTExP2E6bnVsbH0scGFyZW50czpmdW5jdGlvbihhKXtyZXR1cm4gYy5kaXIoYSwicGFyZW50Tm9kZSIpfSxwYXJlbnRzVW50aWw6ZnVuY3Rpb24oYSxiLGQpe3JldHVybiBjLmRpcihhLCJwYXJlbnROb2RlIiwKZCl9LG5leHQ6ZnVuY3Rpb24oYSl7cmV0dXJuIGMubnRoKGEsMiwibmV4dFNpYmxpbmciKX0scHJldjpmdW5jdGlvbihhKXtyZXR1cm4gYy5udGgoYSwyLCJwcmV2aW91c1NpYmxpbmciKX0sbmV4dEFsbDpmdW5jdGlvbihhKXtyZXR1cm4gYy5kaXIoYSwibmV4dFNpYmxpbmciKX0scHJldkFsbDpmdW5jdGlvbihhKXtyZXR1cm4gYy5kaXIoYSwicHJldmlvdXNTaWJsaW5nIil9LG5leHRVbnRpbDpmdW5jdGlvbihhLGIsZCl7cmV0dXJuIGMuZGlyKGEsIm5leHRTaWJsaW5nIixkKX0scHJldlVudGlsOmZ1bmN0aW9uKGEsYixkKXtyZXR1cm4gYy5kaXIoYSwicHJldmlvdXNTaWJsaW5nIixkKX0sc2libGluZ3M6ZnVuY3Rpb24oYSl7cmV0dXJuIGMuc2libGluZyhhLnBhcmVudE5vZGUuZmlyc3RDaGlsZCxhKX0sY2hpbGRyZW46ZnVuY3Rpb24oYSl7cmV0dXJuIGMuc2libGluZyhhLmZpcnN0Q2hpbGQpfSxjb250ZW50czpmdW5jdGlvbihhKXtyZXR1cm4gYy5ub2RlTmFtZShhLCJpZnJhbWUiKT8KYS5jb250ZW50RG9jdW1lbnR8fGEuY29udGVudFdpbmRvdy5kb2N1bWVudDpjLm1ha2VBcnJheShhLmNoaWxkTm9kZXMpfX0sZnVuY3Rpb24oYSxiKXtjLmZuW2FdPWZ1bmN0aW9uKGQsZil7dmFyIGU9Yy5tYXAodGhpcyxiLGQpO2ViLnRlc3QoYSl8fChmPWQpO2lmKGYmJnR5cGVvZiBmPT09InN0cmluZyIpZT1jLmZpbHRlcihmLGUpO2U9dGhpcy5sZW5ndGg+MT9jLnVuaXF1ZShlKTplO2lmKCh0aGlzLmxlbmd0aD4xfHxnYi50ZXN0KGYpKSYmZmIudGVzdChhKSllPWUucmV2ZXJzZSgpO3JldHVybiB0aGlzLnB1c2hTdGFjayhlLGEsUi5jYWxsKGFyZ3VtZW50cykuam9pbigiLCIpKX19KTtjLmV4dGVuZCh7ZmlsdGVyOmZ1bmN0aW9uKGEsYixkKXtpZihkKWE9Ijpub3QoIithKyIpIjtyZXR1cm4gYy5maW5kLm1hdGNoZXMoYSxiKX0sZGlyOmZ1bmN0aW9uKGEsYixkKXt2YXIgZj1bXTtmb3IoYT1hW2JdO2EmJmEubm9kZVR5cGUhPT05JiYoZD09PXd8fGEubm9kZVR5cGUhPT0xfHwhYyhhKS5pcyhkKSk7KXthLm5vZGVUeXBlPT09CjEmJmYucHVzaChhKTthPWFbYl19cmV0dXJuIGZ9LG50aDpmdW5jdGlvbihhLGIsZCl7Yj1ifHwxO2Zvcih2YXIgZj0wO2E7YT1hW2RdKWlmKGEubm9kZVR5cGU9PT0xJiYrK2Y9PT1iKWJyZWFrO3JldHVybiBhfSxzaWJsaW5nOmZ1bmN0aW9uKGEsYil7Zm9yKHZhciBkPVtdO2E7YT1hLm5leHRTaWJsaW5nKWEubm9kZVR5cGU9PT0xJiZhIT09YiYmZC5wdXNoKGEpO3JldHVybiBkfX0pO3ZhciBKYT0vIGpRdWVyeVxkKz0iKD86XGQrfG51bGwpIi9nLFY9L15ccysvLEthPS8oPChbXHc6XSspW14+XSo/KVwvPi9nLGhiPS9eKD86YXJlYXxicnxjb2x8ZW1iZWR8aHJ8aW1nfGlucHV0fGxpbmt8bWV0YXxwYXJhbSkkL2ksTGE9LzwoW1x3Ol0rKS8saWI9Lzx0Ym9keS9pLGpiPS88fCYjP1x3KzsvLHRhPS88c2NyaXB0fDxvYmplY3R8PGVtYmVkfDxvcHRpb258PHN0eWxlL2ksdWE9L2NoZWNrZWRccyooPzpbXj1dfD1ccyouY2hlY2tlZC4pL2ksTWE9ZnVuY3Rpb24oYSxiLGQpe3JldHVybiBoYi50ZXN0KGQpPwphOmIrIj48LyIrZCsiPiJ9LEY9e29wdGlvbjpbMSwiPHNlbGVjdCBtdWx0aXBsZT0nbXVsdGlwbGUnPiIsIjwvc2VsZWN0PiJdLGxlZ2VuZDpbMSwiPGZpZWxkc2V0PiIsIjwvZmllbGRzZXQ+Il0sdGhlYWQ6WzEsIjx0YWJsZT4iLCI8L3RhYmxlPiJdLHRyOlsyLCI8dGFibGU+PHRib2R5PiIsIjwvdGJvZHk+PC90YWJsZT4iXSx0ZDpbMywiPHRhYmxlPjx0Ym9keT48dHI+IiwiPC90cj48L3Rib2R5PjwvdGFibGU+Il0sY29sOlsyLCI8dGFibGU+PHRib2R5PjwvdGJvZHk+PGNvbGdyb3VwPiIsIjwvY29sZ3JvdXA+PC90YWJsZT4iXSxhcmVhOlsxLCI8bWFwPiIsIjwvbWFwPiJdLF9kZWZhdWx0OlswLCIiLCIiXX07Ri5vcHRncm91cD1GLm9wdGlvbjtGLnRib2R5PUYudGZvb3Q9Ri5jb2xncm91cD1GLmNhcHRpb249Ri50aGVhZDtGLnRoPUYudGQ7aWYoIWMuc3VwcG9ydC5odG1sU2VyaWFsaXplKUYuX2RlZmF1bHQ9WzEsImRpdjxkaXY+IiwiPC9kaXY+Il07Yy5mbi5leHRlbmQoe3RleHQ6ZnVuY3Rpb24oYSl7aWYoYy5pc0Z1bmN0aW9uKGEpKXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oYil7dmFyIGQ9CmModGhpcyk7ZC50ZXh0KGEuY2FsbCh0aGlzLGIsZC50ZXh0KCkpKX0pO2lmKHR5cGVvZiBhIT09Im9iamVjdCImJmEhPT13KXJldHVybiB0aGlzLmVtcHR5KCkuYXBwZW5kKCh0aGlzWzBdJiZ0aGlzWzBdLm93bmVyRG9jdW1lbnR8fHMpLmNyZWF0ZVRleHROb2RlKGEpKTtyZXR1cm4gYy50ZXh0KHRoaXMpfSx3cmFwQWxsOmZ1bmN0aW9uKGEpe2lmKGMuaXNGdW5jdGlvbihhKSlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGQpe2ModGhpcykud3JhcEFsbChhLmNhbGwodGhpcyxkKSl9KTtpZih0aGlzWzBdKXt2YXIgYj1jKGEsdGhpc1swXS5vd25lckRvY3VtZW50KS5lcSgwKS5jbG9uZSh0cnVlKTt0aGlzWzBdLnBhcmVudE5vZGUmJmIuaW5zZXJ0QmVmb3JlKHRoaXNbMF0pO2IubWFwKGZ1bmN0aW9uKCl7Zm9yKHZhciBkPXRoaXM7ZC5maXJzdENoaWxkJiZkLmZpcnN0Q2hpbGQubm9kZVR5cGU9PT0xOylkPWQuZmlyc3RDaGlsZDtyZXR1cm4gZH0pLmFwcGVuZCh0aGlzKX1yZXR1cm4gdGhpc30sCndyYXBJbm5lcjpmdW5jdGlvbihhKXtpZihjLmlzRnVuY3Rpb24oYSkpcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihiKXtjKHRoaXMpLndyYXBJbm5lcihhLmNhbGwodGhpcyxiKSl9KTtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGI9Yyh0aGlzKSxkPWIuY29udGVudHMoKTtkLmxlbmd0aD9kLndyYXBBbGwoYSk6Yi5hcHBlbmQoYSl9KX0sd3JhcDpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7Yyh0aGlzKS53cmFwQWxsKGEpfSl9LHVud3JhcDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBhcmVudCgpLmVhY2goZnVuY3Rpb24oKXtjLm5vZGVOYW1lKHRoaXMsImJvZHkiKXx8Yyh0aGlzKS5yZXBsYWNlV2l0aCh0aGlzLmNoaWxkTm9kZXMpfSkuZW5kKCl9LGFwcGVuZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmRvbU1hbmlwKGFyZ3VtZW50cyx0cnVlLGZ1bmN0aW9uKGEpe3RoaXMubm9kZVR5cGU9PT0xJiZ0aGlzLmFwcGVuZENoaWxkKGEpfSl9LApwcmVwZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZG9tTWFuaXAoYXJndW1lbnRzLHRydWUsZnVuY3Rpb24oYSl7dGhpcy5ub2RlVHlwZT09PTEmJnRoaXMuaW5zZXJ0QmVmb3JlKGEsdGhpcy5maXJzdENoaWxkKX0pfSxiZWZvcmU6ZnVuY3Rpb24oKXtpZih0aGlzWzBdJiZ0aGlzWzBdLnBhcmVudE5vZGUpcmV0dXJuIHRoaXMuZG9tTWFuaXAoYXJndW1lbnRzLGZhbHNlLGZ1bmN0aW9uKGIpe3RoaXMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoYix0aGlzKX0pO2Vsc2UgaWYoYXJndW1lbnRzLmxlbmd0aCl7dmFyIGE9Yyhhcmd1bWVudHNbMF0pO2EucHVzaC5hcHBseShhLHRoaXMudG9BcnJheSgpKTtyZXR1cm4gdGhpcy5wdXNoU3RhY2soYSwiYmVmb3JlIixhcmd1bWVudHMpfX0sYWZ0ZXI6ZnVuY3Rpb24oKXtpZih0aGlzWzBdJiZ0aGlzWzBdLnBhcmVudE5vZGUpcmV0dXJuIHRoaXMuZG9tTWFuaXAoYXJndW1lbnRzLGZhbHNlLGZ1bmN0aW9uKGIpe3RoaXMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoYiwKdGhpcy5uZXh0U2libGluZyl9KTtlbHNlIGlmKGFyZ3VtZW50cy5sZW5ndGgpe3ZhciBhPXRoaXMucHVzaFN0YWNrKHRoaXMsImFmdGVyIixhcmd1bWVudHMpO2EucHVzaC5hcHBseShhLGMoYXJndW1lbnRzWzBdKS50b0FycmF5KCkpO3JldHVybiBhfX0scmVtb3ZlOmZ1bmN0aW9uKGEsYil7Zm9yKHZhciBkPTAsZjsoZj10aGlzW2RdKSE9bnVsbDtkKyspaWYoIWF8fGMuZmlsdGVyKGEsW2ZdKS5sZW5ndGgpe2lmKCFiJiZmLm5vZGVUeXBlPT09MSl7Yy5jbGVhbkRhdGEoZi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpKTtjLmNsZWFuRGF0YShbZl0pfWYucGFyZW50Tm9kZSYmZi5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGYpfXJldHVybiB0aGlzfSxlbXB0eTpmdW5jdGlvbigpe2Zvcih2YXIgYT0wLGI7KGI9dGhpc1thXSkhPW51bGw7YSsrKWZvcihiLm5vZGVUeXBlPT09MSYmYy5jbGVhbkRhdGEoYi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpKTtiLmZpcnN0Q2hpbGQ7KWIucmVtb3ZlQ2hpbGQoYi5maXJzdENoaWxkKTsKcmV0dXJuIHRoaXN9LGNsb25lOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMubWFwKGZ1bmN0aW9uKCl7aWYoIWMuc3VwcG9ydC5ub0Nsb25lRXZlbnQmJiFjLmlzWE1MRG9jKHRoaXMpKXt2YXIgZD10aGlzLm91dGVySFRNTCxmPXRoaXMub3duZXJEb2N1bWVudDtpZighZCl7ZD1mLmNyZWF0ZUVsZW1lbnQoImRpdiIpO2QuYXBwZW5kQ2hpbGQodGhpcy5jbG9uZU5vZGUodHJ1ZSkpO2Q9ZC5pbm5lckhUTUx9cmV0dXJuIGMuY2xlYW4oW2QucmVwbGFjZShKYSwiIikucmVwbGFjZSgvPShbXj0iJz5cc10rXC8pPi9nLCc9IiQxIj4nKS5yZXBsYWNlKFYsIiIpXSxmKVswXX1lbHNlIHJldHVybiB0aGlzLmNsb25lTm9kZSh0cnVlKX0pO2lmKGE9PT10cnVlKXtyYSh0aGlzLGIpO3JhKHRoaXMuZmluZCgiKiIpLGIuZmluZCgiKiIpKX1yZXR1cm4gYn0saHRtbDpmdW5jdGlvbihhKXtpZihhPT09dylyZXR1cm4gdGhpc1swXSYmdGhpc1swXS5ub2RlVHlwZT09PTE/dGhpc1swXS5pbm5lckhUTUwucmVwbGFjZShKYSwKIiIpOm51bGw7ZWxzZSBpZih0eXBlb2YgYT09PSJzdHJpbmciJiYhdGEudGVzdChhKSYmKGMuc3VwcG9ydC5sZWFkaW5nV2hpdGVzcGFjZXx8IVYudGVzdChhKSkmJiFGWyhMYS5leGVjKGEpfHxbIiIsIiJdKVsxXS50b0xvd2VyQ2FzZSgpXSl7YT1hLnJlcGxhY2UoS2EsTWEpO3RyeXtmb3IodmFyIGI9MCxkPXRoaXMubGVuZ3RoO2I8ZDtiKyspaWYodGhpc1tiXS5ub2RlVHlwZT09PTEpe2MuY2xlYW5EYXRhKHRoaXNbYl0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIioiKSk7dGhpc1tiXS5pbm5lckhUTUw9YX19Y2F0Y2goZil7dGhpcy5lbXB0eSgpLmFwcGVuZChhKX19ZWxzZSBjLmlzRnVuY3Rpb24oYSk/dGhpcy5lYWNoKGZ1bmN0aW9uKGUpe3ZhciBqPWModGhpcyksaT1qLmh0bWwoKTtqLmVtcHR5KCkuYXBwZW5kKGZ1bmN0aW9uKCl7cmV0dXJuIGEuY2FsbCh0aGlzLGUsaSl9KX0pOnRoaXMuZW1wdHkoKS5hcHBlbmQoYSk7cmV0dXJuIHRoaXN9LHJlcGxhY2VXaXRoOmZ1bmN0aW9uKGEpe2lmKHRoaXNbMF0mJgp0aGlzWzBdLnBhcmVudE5vZGUpe2lmKGMuaXNGdW5jdGlvbihhKSlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGIpe3ZhciBkPWModGhpcyksZj1kLmh0bWwoKTtkLnJlcGxhY2VXaXRoKGEuY2FsbCh0aGlzLGIsZikpfSk7aWYodHlwZW9mIGEhPT0ic3RyaW5nIilhPWMoYSkuZGV0YWNoKCk7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBiPXRoaXMubmV4dFNpYmxpbmcsZD10aGlzLnBhcmVudE5vZGU7Yyh0aGlzKS5yZW1vdmUoKTtiP2MoYikuYmVmb3JlKGEpOmMoZCkuYXBwZW5kKGEpfSl9ZWxzZSByZXR1cm4gdGhpcy5wdXNoU3RhY2soYyhjLmlzRnVuY3Rpb24oYSk/YSgpOmEpLCJyZXBsYWNlV2l0aCIsYSl9LGRldGFjaDpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5yZW1vdmUoYSx0cnVlKX0sZG9tTWFuaXA6ZnVuY3Rpb24oYSxiLGQpe2Z1bmN0aW9uIGYodSl7cmV0dXJuIGMubm9kZU5hbWUodSwidGFibGUiKT91LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0Ym9keSIpWzBdfHwKdS5hcHBlbmRDaGlsZCh1Lm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGJvZHkiKSk6dX12YXIgZSxqLGk9YVswXSxvPVtdLGs7aWYoIWMuc3VwcG9ydC5jaGVja0Nsb25lJiZhcmd1bWVudHMubGVuZ3RoPT09MyYmdHlwZW9mIGk9PT0ic3RyaW5nIiYmdWEudGVzdChpKSlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7Yyh0aGlzKS5kb21NYW5pcChhLGIsZCx0cnVlKX0pO2lmKGMuaXNGdW5jdGlvbihpKSlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKHUpe3ZhciB6PWModGhpcyk7YVswXT1pLmNhbGwodGhpcyx1LGI/ei5odG1sKCk6dyk7ei5kb21NYW5pcChhLGIsZCl9KTtpZih0aGlzWzBdKXtlPWkmJmkucGFyZW50Tm9kZTtlPWMuc3VwcG9ydC5wYXJlbnROb2RlJiZlJiZlLm5vZGVUeXBlPT09MTEmJmUuY2hpbGROb2Rlcy5sZW5ndGg9PT10aGlzLmxlbmd0aD97ZnJhZ21lbnQ6ZX06c2EoYSx0aGlzLG8pO2s9ZS5mcmFnbWVudDtpZihqPWsuY2hpbGROb2Rlcy5sZW5ndGg9PT0KMT8oaz1rLmZpcnN0Q2hpbGQpOmsuZmlyc3RDaGlsZCl7Yj1iJiZjLm5vZGVOYW1lKGosInRyIik7Zm9yKHZhciBuPTAscj10aGlzLmxlbmd0aDtuPHI7bisrKWQuY2FsbChiP2YodGhpc1tuXSxqKTp0aGlzW25dLG4+MHx8ZS5jYWNoZWFibGV8fHRoaXMubGVuZ3RoPjE/ay5jbG9uZU5vZGUodHJ1ZSk6ayl9by5sZW5ndGgmJmMuZWFjaChvLFFhKX1yZXR1cm4gdGhpc319KTtjLmZyYWdtZW50cz17fTtjLmVhY2goe2FwcGVuZFRvOiJhcHBlbmQiLHByZXBlbmRUbzoicHJlcGVuZCIsaW5zZXJ0QmVmb3JlOiJiZWZvcmUiLGluc2VydEFmdGVyOiJhZnRlciIscmVwbGFjZUFsbDoicmVwbGFjZVdpdGgifSxmdW5jdGlvbihhLGIpe2MuZm5bYV09ZnVuY3Rpb24oZCl7dmFyIGY9W107ZD1jKGQpO3ZhciBlPXRoaXMubGVuZ3RoPT09MSYmdGhpc1swXS5wYXJlbnROb2RlO2lmKGUmJmUubm9kZVR5cGU9PT0xMSYmZS5jaGlsZE5vZGVzLmxlbmd0aD09PTEmJmQubGVuZ3RoPT09MSl7ZFtiXSh0aGlzWzBdKTsKcmV0dXJuIHRoaXN9ZWxzZXtlPTA7Zm9yKHZhciBqPWQubGVuZ3RoO2U8ajtlKyspe3ZhciBpPShlPjA/dGhpcy5jbG9uZSh0cnVlKTp0aGlzKS5nZXQoKTtjLmZuW2JdLmFwcGx5KGMoZFtlXSksaSk7Zj1mLmNvbmNhdChpKX1yZXR1cm4gdGhpcy5wdXNoU3RhY2soZixhLGQuc2VsZWN0b3IpfX19KTtjLmV4dGVuZCh7Y2xlYW46ZnVuY3Rpb24oYSxiLGQsZil7Yj1ifHxzO2lmKHR5cGVvZiBiLmNyZWF0ZUVsZW1lbnQ9PT0idW5kZWZpbmVkIiliPWIub3duZXJEb2N1bWVudHx8YlswXSYmYlswXS5vd25lckRvY3VtZW50fHxzO2Zvcih2YXIgZT1bXSxqPTAsaTsoaT1hW2pdKSE9bnVsbDtqKyspe2lmKHR5cGVvZiBpPT09Im51bWJlciIpaSs9IiI7aWYoaSl7aWYodHlwZW9mIGk9PT0ic3RyaW5nIiYmIWpiLnRlc3QoaSkpaT1iLmNyZWF0ZVRleHROb2RlKGkpO2Vsc2UgaWYodHlwZW9mIGk9PT0ic3RyaW5nIil7aT1pLnJlcGxhY2UoS2EsTWEpO3ZhciBvPShMYS5leGVjKGkpfHxbIiIsCiIiXSlbMV0udG9Mb3dlckNhc2UoKSxrPUZbb118fEYuX2RlZmF1bHQsbj1rWzBdLHI9Yi5jcmVhdGVFbGVtZW50KCJkaXYiKTtmb3Ioci5pbm5lckhUTUw9a1sxXStpK2tbMl07bi0tOylyPXIubGFzdENoaWxkO2lmKCFjLnN1cHBvcnQudGJvZHkpe249aWIudGVzdChpKTtvPW89PT0idGFibGUiJiYhbj9yLmZpcnN0Q2hpbGQmJnIuZmlyc3RDaGlsZC5jaGlsZE5vZGVzOmtbMV09PT0iPHRhYmxlPiImJiFuP3IuY2hpbGROb2RlczpbXTtmb3Ioaz1vLmxlbmd0aC0xO2s+PTA7LS1rKWMubm9kZU5hbWUob1trXSwidGJvZHkiKSYmIW9ba10uY2hpbGROb2Rlcy5sZW5ndGgmJm9ba10ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChvW2tdKX0hYy5zdXBwb3J0LmxlYWRpbmdXaGl0ZXNwYWNlJiZWLnRlc3QoaSkmJnIuaW5zZXJ0QmVmb3JlKGIuY3JlYXRlVGV4dE5vZGUoVi5leGVjKGkpWzBdKSxyLmZpcnN0Q2hpbGQpO2k9ci5jaGlsZE5vZGVzfWlmKGkubm9kZVR5cGUpZS5wdXNoKGkpO2Vsc2UgZT0KYy5tZXJnZShlLGkpfX1pZihkKWZvcihqPTA7ZVtqXTtqKyspaWYoZiYmYy5ub2RlTmFtZShlW2pdLCJzY3JpcHQiKSYmKCFlW2pdLnR5cGV8fGVbal0udHlwZS50b0xvd2VyQ2FzZSgpPT09InRleHQvamF2YXNjcmlwdCIpKWYucHVzaChlW2pdLnBhcmVudE5vZGU/ZVtqXS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGVbal0pOmVbal0pO2Vsc2V7ZVtqXS5ub2RlVHlwZT09PTEmJmUuc3BsaWNlLmFwcGx5KGUsW2orMSwwXS5jb25jYXQoYy5tYWtlQXJyYXkoZVtqXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0IikpKSk7ZC5hcHBlbmRDaGlsZChlW2pdKX1yZXR1cm4gZX0sY2xlYW5EYXRhOmZ1bmN0aW9uKGEpe2Zvcih2YXIgYixkLGY9Yy5jYWNoZSxlPWMuZXZlbnQuc3BlY2lhbCxqPWMuc3VwcG9ydC5kZWxldGVFeHBhbmRvLGk9MCxvOyhvPWFbaV0pIT1udWxsO2krKylpZihkPW9bYy5leHBhbmRvXSl7Yj1mW2RdO2lmKGIuZXZlbnRzKWZvcih2YXIgayBpbiBiLmV2ZW50cyllW2tdPwpjLmV2ZW50LnJlbW92ZShvLGspOkNhKG8sayxiLmhhbmRsZSk7aWYoailkZWxldGUgb1tjLmV4cGFuZG9dO2Vsc2Ugby5yZW1vdmVBdHRyaWJ1dGUmJm8ucmVtb3ZlQXR0cmlidXRlKGMuZXhwYW5kbyk7ZGVsZXRlIGZbZF19fX0pO3ZhciBrYj0vei0/aW5kZXh8Zm9udC0/d2VpZ2h0fG9wYWNpdHl8em9vbXxsaW5lLT9oZWlnaHQvaSxOYT0vYWxwaGFcKFteKV0qXCkvLE9hPS9vcGFjaXR5PShbXildKikvLGhhPS9mbG9hdC9pLGlhPS8tKFthLXpdKS9pZyxsYj0vKFtBLVpdKS9nLG1iPS9eLT9cZCsoPzpweCk/JC9pLG5iPS9eLT9cZC8sb2I9e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdmlzaWJpbGl0eToiaGlkZGVuIixkaXNwbGF5OiJibG9jayJ9LHBiPVsiTGVmdCIsIlJpZ2h0Il0scWI9WyJUb3AiLCJCb3R0b20iXSxyYj1zLmRlZmF1bHRWaWV3JiZzLmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUsUGE9Yy5zdXBwb3J0LmNzc0Zsb2F0PyJjc3NGbG9hdCI6InN0eWxlRmxvYXQiLGphPQpmdW5jdGlvbihhLGIpe3JldHVybiBiLnRvVXBwZXJDYXNlKCl9O2MuZm4uY3NzPWZ1bmN0aW9uKGEsYil7cmV0dXJuIFgodGhpcyxhLGIsdHJ1ZSxmdW5jdGlvbihkLGYsZSl7aWYoZT09PXcpcmV0dXJuIGMuY3VyQ1NTKGQsZik7aWYodHlwZW9mIGU9PT0ibnVtYmVyIiYmIWtiLnRlc3QoZikpZSs9InB4IjtjLnN0eWxlKGQsZixlKX0pfTtjLmV4dGVuZCh7c3R5bGU6ZnVuY3Rpb24oYSxiLGQpe2lmKCFhfHxhLm5vZGVUeXBlPT09M3x8YS5ub2RlVHlwZT09PTgpcmV0dXJuIHc7aWYoKGI9PT0id2lkdGgifHxiPT09ImhlaWdodCIpJiZwYXJzZUZsb2F0KGQpPDApZD13O3ZhciBmPWEuc3R5bGV8fGEsZT1kIT09dztpZighYy5zdXBwb3J0Lm9wYWNpdHkmJmI9PT0ib3BhY2l0eSIpe2lmKGUpe2Yuem9vbT0xO2I9cGFyc2VJbnQoZCwxMCkrIiI9PT0iTmFOIj8iIjoiYWxwaGEob3BhY2l0eT0iK2QqMTAwKyIpIjthPWYuZmlsdGVyfHxjLmN1ckNTUyhhLCJmaWx0ZXIiKXx8IiI7Zi5maWx0ZXI9Ck5hLnRlc3QoYSk/YS5yZXBsYWNlKE5hLGIpOmJ9cmV0dXJuIGYuZmlsdGVyJiZmLmZpbHRlci5pbmRleE9mKCJvcGFjaXR5PSIpPj0wP3BhcnNlRmxvYXQoT2EuZXhlYyhmLmZpbHRlcilbMV0pLzEwMCsiIjoiIn1pZihoYS50ZXN0KGIpKWI9UGE7Yj1iLnJlcGxhY2UoaWEsamEpO2lmKGUpZltiXT1kO3JldHVybiBmW2JdfSxjc3M6ZnVuY3Rpb24oYSxiLGQsZil7aWYoYj09PSJ3aWR0aCJ8fGI9PT0iaGVpZ2h0Iil7dmFyIGUsaj1iPT09IndpZHRoIj9wYjpxYjtmdW5jdGlvbiBpKCl7ZT1iPT09IndpZHRoIj9hLm9mZnNldFdpZHRoOmEub2Zmc2V0SGVpZ2h0O2YhPT0iYm9yZGVyIiYmYy5lYWNoKGosZnVuY3Rpb24oKXtmfHwoZS09cGFyc2VGbG9hdChjLmN1ckNTUyhhLCJwYWRkaW5nIit0aGlzLHRydWUpKXx8MCk7aWYoZj09PSJtYXJnaW4iKWUrPXBhcnNlRmxvYXQoYy5jdXJDU1MoYSwibWFyZ2luIit0aGlzLHRydWUpKXx8MDtlbHNlIGUtPXBhcnNlRmxvYXQoYy5jdXJDU1MoYSwKImJvcmRlciIrdGhpcysiV2lkdGgiLHRydWUpKXx8MH0pfWEub2Zmc2V0V2lkdGghPT0wP2koKTpjLnN3YXAoYSxvYixpKTtyZXR1cm4gTWF0aC5tYXgoMCxNYXRoLnJvdW5kKGUpKX1yZXR1cm4gYy5jdXJDU1MoYSxiLGQpfSxjdXJDU1M6ZnVuY3Rpb24oYSxiLGQpe3ZhciBmLGU9YS5zdHlsZTtpZighYy5zdXBwb3J0Lm9wYWNpdHkmJmI9PT0ib3BhY2l0eSImJmEuY3VycmVudFN0eWxlKXtmPU9hLnRlc3QoYS5jdXJyZW50U3R5bGUuZmlsdGVyfHwiIik/cGFyc2VGbG9hdChSZWdFeHAuJDEpLzEwMCsiIjoiIjtyZXR1cm4gZj09PSIiPyIxIjpmfWlmKGhhLnRlc3QoYikpYj1QYTtpZighZCYmZSYmZVtiXSlmPWVbYl07ZWxzZSBpZihyYil7aWYoaGEudGVzdChiKSliPSJmbG9hdCI7Yj1iLnJlcGxhY2UobGIsIi0kMSIpLnRvTG93ZXJDYXNlKCk7ZT1hLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXc7aWYoIWUpcmV0dXJuIG51bGw7aWYoYT1lLmdldENvbXB1dGVkU3R5bGUoYSxudWxsKSlmPQphLmdldFByb3BlcnR5VmFsdWUoYik7aWYoYj09PSJvcGFjaXR5IiYmZj09PSIiKWY9IjEifWVsc2UgaWYoYS5jdXJyZW50U3R5bGUpe2Q9Yi5yZXBsYWNlKGlhLGphKTtmPWEuY3VycmVudFN0eWxlW2JdfHxhLmN1cnJlbnRTdHlsZVtkXTtpZighbWIudGVzdChmKSYmbmIudGVzdChmKSl7Yj1lLmxlZnQ7dmFyIGo9YS5ydW50aW1lU3R5bGUubGVmdDthLnJ1bnRpbWVTdHlsZS5sZWZ0PWEuY3VycmVudFN0eWxlLmxlZnQ7ZS5sZWZ0PWQ9PT0iZm9udFNpemUiPyIxZW0iOmZ8fDA7Zj1lLnBpeGVsTGVmdCsicHgiO2UubGVmdD1iO2EucnVudGltZVN0eWxlLmxlZnQ9an19cmV0dXJuIGZ9LHN3YXA6ZnVuY3Rpb24oYSxiLGQpe3ZhciBmPXt9O2Zvcih2YXIgZSBpbiBiKXtmW2VdPWEuc3R5bGVbZV07YS5zdHlsZVtlXT1iW2VdfWQuY2FsbChhKTtmb3IoZSBpbiBiKWEuc3R5bGVbZV09ZltlXX19KTtpZihjLmV4cHImJmMuZXhwci5maWx0ZXJzKXtjLmV4cHIuZmlsdGVycy5oaWRkZW49ZnVuY3Rpb24oYSl7dmFyIGI9CmEub2Zmc2V0V2lkdGgsZD1hLm9mZnNldEhlaWdodCxmPWEubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PSJ0ciI7cmV0dXJuIGI9PT0wJiZkPT09MCYmIWY/dHJ1ZTpiPjAmJmQ+MCYmIWY/ZmFsc2U6Yy5jdXJDU1MoYSwiZGlzcGxheSIpPT09Im5vbmUifTtjLmV4cHIuZmlsdGVycy52aXNpYmxlPWZ1bmN0aW9uKGEpe3JldHVybiFjLmV4cHIuZmlsdGVycy5oaWRkZW4oYSl9fXZhciBzYj1KKCksdGI9LzxzY3JpcHQoLnxccykqP1wvc2NyaXB0Pi9naSx1Yj0vc2VsZWN0fHRleHRhcmVhL2ksdmI9L2NvbG9yfGRhdGV8ZGF0ZXRpbWV8ZW1haWx8aGlkZGVufG1vbnRofG51bWJlcnxwYXNzd29yZHxyYW5nZXxzZWFyY2h8dGVsfHRleHR8dGltZXx1cmx8d2Vlay9pLE49Lz1cPygmfCQpLyxrYT0vXD8vLHdiPS8oXD98JilfPS4qPygmfCQpLyx4Yj0vXihcdys6KT9cL1wvKFteXC8/I10rKS8seWI9LyUyMC9nLHpiPWMuZm4ubG9hZDtjLmZuLmV4dGVuZCh7bG9hZDpmdW5jdGlvbihhLGIsZCl7aWYodHlwZW9mIGEhPT0KInN0cmluZyIpcmV0dXJuIHpiLmNhbGwodGhpcyxhKTtlbHNlIGlmKCF0aGlzLmxlbmd0aClyZXR1cm4gdGhpczt2YXIgZj1hLmluZGV4T2YoIiAiKTtpZihmPj0wKXt2YXIgZT1hLnNsaWNlKGYsYS5sZW5ndGgpO2E9YS5zbGljZSgwLGYpfWY9IkdFVCI7aWYoYilpZihjLmlzRnVuY3Rpb24oYikpe2Q9YjtiPW51bGx9ZWxzZSBpZih0eXBlb2YgYj09PSJvYmplY3QiKXtiPWMucGFyYW0oYixjLmFqYXhTZXR0aW5ncy50cmFkaXRpb25hbCk7Zj0iUE9TVCJ9dmFyIGo9dGhpcztjLmFqYXgoe3VybDphLHR5cGU6ZixkYXRhVHlwZToiaHRtbCIsZGF0YTpiLGNvbXBsZXRlOmZ1bmN0aW9uKGksbyl7aWYobz09PSJzdWNjZXNzInx8bz09PSJub3Rtb2RpZmllZCIpai5odG1sKGU/YygiPGRpdiAvPiIpLmFwcGVuZChpLnJlc3BvbnNlVGV4dC5yZXBsYWNlKHRiLCIiKSkuZmluZChlKTppLnJlc3BvbnNlVGV4dCk7ZCYmai5lYWNoKGQsW2kucmVzcG9uc2VUZXh0LG8saV0pfX0pO3JldHVybiB0aGlzfSwKc2VyaWFsaXplOmZ1bmN0aW9uKCl7cmV0dXJuIGMucGFyYW0odGhpcy5zZXJpYWxpemVBcnJheSgpKX0sc2VyaWFsaXplQXJyYXk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbGVtZW50cz9jLm1ha2VBcnJheSh0aGlzLmVsZW1lbnRzKTp0aGlzfSkuZmlsdGVyKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubmFtZSYmIXRoaXMuZGlzYWJsZWQmJih0aGlzLmNoZWNrZWR8fHViLnRlc3QodGhpcy5ub2RlTmFtZSl8fHZiLnRlc3QodGhpcy50eXBlKSl9KS5tYXAoZnVuY3Rpb24oYSxiKXthPWModGhpcykudmFsKCk7cmV0dXJuIGE9PW51bGw/bnVsbDpjLmlzQXJyYXkoYSk/Yy5tYXAoYSxmdW5jdGlvbihkKXtyZXR1cm57bmFtZTpiLm5hbWUsdmFsdWU6ZH19KTp7bmFtZTpiLm5hbWUsdmFsdWU6YX19KS5nZXQoKX19KTtjLmVhY2goImFqYXhTdGFydCBhamF4U3RvcCBhamF4Q29tcGxldGUgYWpheEVycm9yIGFqYXhTdWNjZXNzIGFqYXhTZW5kIi5zcGxpdCgiICIpLApmdW5jdGlvbihhLGIpe2MuZm5bYl09ZnVuY3Rpb24oZCl7cmV0dXJuIHRoaXMuYmluZChiLGQpfX0pO2MuZXh0ZW5kKHtnZXQ6ZnVuY3Rpb24oYSxiLGQsZil7aWYoYy5pc0Z1bmN0aW9uKGIpKXtmPWZ8fGQ7ZD1iO2I9bnVsbH1yZXR1cm4gYy5hamF4KHt0eXBlOiJHRVQiLHVybDphLGRhdGE6YixzdWNjZXNzOmQsZGF0YVR5cGU6Zn0pfSxnZXRTY3JpcHQ6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYy5nZXQoYSxudWxsLGIsInNjcmlwdCIpfSxnZXRKU09OOmZ1bmN0aW9uKGEsYixkKXtyZXR1cm4gYy5nZXQoYSxiLGQsImpzb24iKX0scG9zdDpmdW5jdGlvbihhLGIsZCxmKXtpZihjLmlzRnVuY3Rpb24oYikpe2Y9Znx8ZDtkPWI7Yj17fX1yZXR1cm4gYy5hamF4KHt0eXBlOiJQT1NUIix1cmw6YSxkYXRhOmIsc3VjY2VzczpkLGRhdGFUeXBlOmZ9KX0sYWpheFNldHVwOmZ1bmN0aW9uKGEpe2MuZXh0ZW5kKGMuYWpheFNldHRpbmdzLGEpfSxhamF4U2V0dGluZ3M6e3VybDpsb2NhdGlvbi5ocmVmLApnbG9iYWw6dHJ1ZSx0eXBlOiJHRVQiLGNvbnRlbnRUeXBlOiJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiLHByb2Nlc3NEYXRhOnRydWUsYXN5bmM6dHJ1ZSx4aHI6QS5YTUxIdHRwUmVxdWVzdCYmKEEubG9jYXRpb24ucHJvdG9jb2whPT0iZmlsZToifHwhQS5BY3RpdmVYT2JqZWN0KT9mdW5jdGlvbigpe3JldHVybiBuZXcgQS5YTUxIdHRwUmVxdWVzdH06ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIG5ldyBBLkFjdGl2ZVhPYmplY3QoIk1pY3Jvc29mdC5YTUxIVFRQIil9Y2F0Y2goYSl7fX0sYWNjZXB0czp7eG1sOiJhcHBsaWNhdGlvbi94bWwsIHRleHQveG1sIixodG1sOiJ0ZXh0L2h0bWwiLHNjcmlwdDoidGV4dC9qYXZhc2NyaXB0LCBhcHBsaWNhdGlvbi9qYXZhc2NyaXB0Iixqc29uOiJhcHBsaWNhdGlvbi9qc29uLCB0ZXh0L2phdmFzY3JpcHQiLHRleHQ6InRleHQvcGxhaW4iLF9kZWZhdWx0OiIqLyoifX0sbGFzdE1vZGlmaWVkOnt9LGV0YWc6e30sYWpheDpmdW5jdGlvbihhKXtmdW5jdGlvbiBiKCl7ZS5zdWNjZXNzJiYKZS5zdWNjZXNzLmNhbGwoayxvLGkseCk7ZS5nbG9iYWwmJmYoImFqYXhTdWNjZXNzIixbeCxlXSl9ZnVuY3Rpb24gZCgpe2UuY29tcGxldGUmJmUuY29tcGxldGUuY2FsbChrLHgsaSk7ZS5nbG9iYWwmJmYoImFqYXhDb21wbGV0ZSIsW3gsZV0pO2UuZ2xvYmFsJiYhLS1jLmFjdGl2ZSYmYy5ldmVudC50cmlnZ2VyKCJhamF4U3RvcCIpfWZ1bmN0aW9uIGYocSxwKXsoZS5jb250ZXh0P2MoZS5jb250ZXh0KTpjLmV2ZW50KS50cmlnZ2VyKHEscCl9dmFyIGU9Yy5leHRlbmQodHJ1ZSx7fSxjLmFqYXhTZXR0aW5ncyxhKSxqLGksbyxrPWEmJmEuY29udGV4dHx8ZSxuPWUudHlwZS50b1VwcGVyQ2FzZSgpO2lmKGUuZGF0YSYmZS5wcm9jZXNzRGF0YSYmdHlwZW9mIGUuZGF0YSE9PSJzdHJpbmciKWUuZGF0YT1jLnBhcmFtKGUuZGF0YSxlLnRyYWRpdGlvbmFsKTtpZihlLmRhdGFUeXBlPT09Impzb25wIil7aWYobj09PSJHRVQiKU4udGVzdChlLnVybCl8fChlLnVybCs9KGthLnRlc3QoZS51cmwpPwoiJiI6Ij8iKSsoZS5qc29ucHx8ImNhbGxiYWNrIikrIj0/Iik7ZWxzZSBpZighZS5kYXRhfHwhTi50ZXN0KGUuZGF0YSkpZS5kYXRhPShlLmRhdGE/ZS5kYXRhKyImIjoiIikrKGUuanNvbnB8fCJjYWxsYmFjayIpKyI9PyI7ZS5kYXRhVHlwZT0ianNvbiJ9aWYoZS5kYXRhVHlwZT09PSJqc29uIiYmKGUuZGF0YSYmTi50ZXN0KGUuZGF0YSl8fE4udGVzdChlLnVybCkpKXtqPWUuanNvbnBDYWxsYmFja3x8Impzb25wIitzYisrO2lmKGUuZGF0YSllLmRhdGE9KGUuZGF0YSsiIikucmVwbGFjZShOLCI9IitqKyIkMSIpO2UudXJsPWUudXJsLnJlcGxhY2UoTiwiPSIraisiJDEiKTtlLmRhdGFUeXBlPSJzY3JpcHQiO0Fbal09QVtqXXx8ZnVuY3Rpb24ocSl7bz1xO2IoKTtkKCk7QVtqXT13O3RyeXtkZWxldGUgQVtqXX1jYXRjaChwKXt9eiYmei5yZW1vdmVDaGlsZChDKX19aWYoZS5kYXRhVHlwZT09PSJzY3JpcHQiJiZlLmNhY2hlPT09bnVsbCllLmNhY2hlPWZhbHNlO2lmKGUuY2FjaGU9PT0KZmFsc2UmJm49PT0iR0VUIil7dmFyIHI9SigpLHU9ZS51cmwucmVwbGFjZSh3YiwiJDFfPSIrcisiJDIiKTtlLnVybD11Kyh1PT09ZS51cmw/KGthLnRlc3QoZS51cmwpPyImIjoiPyIpKyJfPSIrcjoiIil9aWYoZS5kYXRhJiZuPT09IkdFVCIpZS51cmwrPShrYS50ZXN0KGUudXJsKT8iJiI6Ij8iKStlLmRhdGE7ZS5nbG9iYWwmJiFjLmFjdGl2ZSsrJiZjLmV2ZW50LnRyaWdnZXIoImFqYXhTdGFydCIpO3I9KHI9eGIuZXhlYyhlLnVybCkpJiYoclsxXSYmclsxXSE9PWxvY2F0aW9uLnByb3RvY29sfHxyWzJdIT09bG9jYXRpb24uaG9zdCk7aWYoZS5kYXRhVHlwZT09PSJzY3JpcHQiJiZuPT09IkdFVCImJnIpe3ZhciB6PXMuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImhlYWQiKVswXXx8cy5kb2N1bWVudEVsZW1lbnQsQz1zLmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO0Muc3JjPWUudXJsO2lmKGUuc2NyaXB0Q2hhcnNldClDLmNoYXJzZXQ9ZS5zY3JpcHRDaGFyc2V0O2lmKCFqKXt2YXIgQj0KZmFsc2U7Qy5vbmxvYWQ9Qy5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXtpZighQiYmKCF0aGlzLnJlYWR5U3RhdGV8fHRoaXMucmVhZHlTdGF0ZT09PSJsb2FkZWQifHx0aGlzLnJlYWR5U3RhdGU9PT0iY29tcGxldGUiKSl7Qj10cnVlO2IoKTtkKCk7Qy5vbmxvYWQ9Qy5vbnJlYWR5c3RhdGVjaGFuZ2U9bnVsbDt6JiZDLnBhcmVudE5vZGUmJnoucmVtb3ZlQ2hpbGQoQyl9fX16Lmluc2VydEJlZm9yZShDLHouZmlyc3RDaGlsZCk7cmV0dXJuIHd9dmFyIEU9ZmFsc2UseD1lLnhocigpO2lmKHgpe2UudXNlcm5hbWU/eC5vcGVuKG4sZS51cmwsZS5hc3luYyxlLnVzZXJuYW1lLGUucGFzc3dvcmQpOngub3BlbihuLGUudXJsLGUuYXN5bmMpO3RyeXtpZihlLmRhdGF8fGEmJmEuY29udGVudFR5cGUpeC5zZXRSZXF1ZXN0SGVhZGVyKCJDb250ZW50LVR5cGUiLGUuY29udGVudFR5cGUpO2lmKGUuaWZNb2RpZmllZCl7Yy5sYXN0TW9kaWZpZWRbZS51cmxdJiZ4LnNldFJlcXVlc3RIZWFkZXIoIklmLU1vZGlmaWVkLVNpbmNlIiwKYy5sYXN0TW9kaWZpZWRbZS51cmxdKTtjLmV0YWdbZS51cmxdJiZ4LnNldFJlcXVlc3RIZWFkZXIoIklmLU5vbmUtTWF0Y2giLGMuZXRhZ1tlLnVybF0pfXJ8fHguc2V0UmVxdWVzdEhlYWRlcigiWC1SZXF1ZXN0ZWQtV2l0aCIsIlhNTEh0dHBSZXF1ZXN0Iik7eC5zZXRSZXF1ZXN0SGVhZGVyKCJBY2NlcHQiLGUuZGF0YVR5cGUmJmUuYWNjZXB0c1tlLmRhdGFUeXBlXT9lLmFjY2VwdHNbZS5kYXRhVHlwZV0rIiwgKi8qIjplLmFjY2VwdHMuX2RlZmF1bHQpfWNhdGNoKGdhKXt9aWYoZS5iZWZvcmVTZW5kJiZlLmJlZm9yZVNlbmQuY2FsbChrLHgsZSk9PT1mYWxzZSl7ZS5nbG9iYWwmJiEtLWMuYWN0aXZlJiZjLmV2ZW50LnRyaWdnZXIoImFqYXhTdG9wIik7eC5hYm9ydCgpO3JldHVybiBmYWxzZX1lLmdsb2JhbCYmZigiYWpheFNlbmQiLFt4LGVdKTt2YXIgZz14Lm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbihxKXtpZigheHx8eC5yZWFkeVN0YXRlPT09MHx8cT09PSJhYm9ydCIpe0V8fApkKCk7RT10cnVlO2lmKHgpeC5vbnJlYWR5c3RhdGVjaGFuZ2U9Yy5ub29wfWVsc2UgaWYoIUUmJngmJih4LnJlYWR5U3RhdGU9PT00fHxxPT09InRpbWVvdXQiKSl7RT10cnVlO3gub25yZWFkeXN0YXRlY2hhbmdlPWMubm9vcDtpPXE9PT0idGltZW91dCI/InRpbWVvdXQiOiFjLmh0dHBTdWNjZXNzKHgpPyJlcnJvciI6ZS5pZk1vZGlmaWVkJiZjLmh0dHBOb3RNb2RpZmllZCh4LGUudXJsKT8ibm90bW9kaWZpZWQiOiJzdWNjZXNzIjt2YXIgcDtpZihpPT09InN1Y2Nlc3MiKXRyeXtvPWMuaHR0cERhdGEoeCxlLmRhdGFUeXBlLGUpfWNhdGNoKHYpe2k9InBhcnNlcmVycm9yIjtwPXZ9aWYoaT09PSJzdWNjZXNzInx8aT09PSJub3Rtb2RpZmllZCIpanx8YigpO2Vsc2UgYy5oYW5kbGVFcnJvcihlLHgsaSxwKTtkKCk7cT09PSJ0aW1lb3V0IiYmeC5hYm9ydCgpO2lmKGUuYXN5bmMpeD1udWxsfX07dHJ5e3ZhciBoPXguYWJvcnQ7eC5hYm9ydD1mdW5jdGlvbigpe3gmJmguY2FsbCh4KTsKZygiYWJvcnQiKX19Y2F0Y2gobCl7fWUuYXN5bmMmJmUudGltZW91dD4wJiZzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7eCYmIUUmJmcoInRpbWVvdXQiKX0sZS50aW1lb3V0KTt0cnl7eC5zZW5kKG49PT0iUE9TVCJ8fG49PT0iUFVUInx8bj09PSJERUxFVEUiP2UuZGF0YTpudWxsKX1jYXRjaChtKXtjLmhhbmRsZUVycm9yKGUseCxudWxsLG0pO2QoKX1lLmFzeW5jfHxnKCk7cmV0dXJuIHh9fSxoYW5kbGVFcnJvcjpmdW5jdGlvbihhLGIsZCxmKXtpZihhLmVycm9yKWEuZXJyb3IuY2FsbChhLmNvbnRleHR8fGEsYixkLGYpO2lmKGEuZ2xvYmFsKShhLmNvbnRleHQ/YyhhLmNvbnRleHQpOmMuZXZlbnQpLnRyaWdnZXIoImFqYXhFcnJvciIsW2IsYSxmXSl9LGFjdGl2ZTowLGh0dHBTdWNjZXNzOmZ1bmN0aW9uKGEpe3RyeXtyZXR1cm4hYS5zdGF0dXMmJmxvY2F0aW9uLnByb3RvY29sPT09ImZpbGU6Inx8YS5zdGF0dXM+PTIwMCYmYS5zdGF0dXM8MzAwfHxhLnN0YXR1cz09PTMwNHx8YS5zdGF0dXM9PT0KMTIyM3x8YS5zdGF0dXM9PT0wfWNhdGNoKGIpe31yZXR1cm4gZmFsc2V9LGh0dHBOb3RNb2RpZmllZDpmdW5jdGlvbihhLGIpe3ZhciBkPWEuZ2V0UmVzcG9uc2VIZWFkZXIoIkxhc3QtTW9kaWZpZWQiKSxmPWEuZ2V0UmVzcG9uc2VIZWFkZXIoIkV0YWciKTtpZihkKWMubGFzdE1vZGlmaWVkW2JdPWQ7aWYoZiljLmV0YWdbYl09ZjtyZXR1cm4gYS5zdGF0dXM9PT0zMDR8fGEuc3RhdHVzPT09MH0saHR0cERhdGE6ZnVuY3Rpb24oYSxiLGQpe3ZhciBmPWEuZ2V0UmVzcG9uc2VIZWFkZXIoImNvbnRlbnQtdHlwZSIpfHwiIixlPWI9PT0ieG1sInx8IWImJmYuaW5kZXhPZigieG1sIik+PTA7YT1lP2EucmVzcG9uc2VYTUw6YS5yZXNwb25zZVRleHQ7ZSYmYS5kb2N1bWVudEVsZW1lbnQubm9kZU5hbWU9PT0icGFyc2VyZXJyb3IiJiZjLmVycm9yKCJwYXJzZXJlcnJvciIpO2lmKGQmJmQuZGF0YUZpbHRlcilhPWQuZGF0YUZpbHRlcihhLGIpO2lmKHR5cGVvZiBhPT09InN0cmluZyIpaWYoYj09PQoianNvbiJ8fCFiJiZmLmluZGV4T2YoImpzb24iKT49MClhPWMucGFyc2VKU09OKGEpO2Vsc2UgaWYoYj09PSJzY3JpcHQifHwhYiYmZi5pbmRleE9mKCJqYXZhc2NyaXB0Iik+PTApYy5nbG9iYWxFdmFsKGEpO3JldHVybiBhfSxwYXJhbTpmdW5jdGlvbihhLGIpe2Z1bmN0aW9uIGQoaSxvKXtpZihjLmlzQXJyYXkobykpYy5lYWNoKG8sZnVuY3Rpb24oayxuKXtifHwvXFtcXSQvLnRlc3QoaSk/ZihpLG4pOmQoaSsiWyIrKHR5cGVvZiBuPT09Im9iamVjdCJ8fGMuaXNBcnJheShuKT9rOiIiKSsiXSIsbil9KTtlbHNlIWImJm8hPW51bGwmJnR5cGVvZiBvPT09Im9iamVjdCI/Yy5lYWNoKG8sZnVuY3Rpb24oayxuKXtkKGkrIlsiK2srIl0iLG4pfSk6ZihpLG8pfWZ1bmN0aW9uIGYoaSxvKXtvPWMuaXNGdW5jdGlvbihvKT9vKCk6bztlW2UubGVuZ3RoXT1lbmNvZGVVUklDb21wb25lbnQoaSkrIj0iK2VuY29kZVVSSUNvbXBvbmVudChvKX12YXIgZT1bXTtpZihiPT09dyliPWMuYWpheFNldHRpbmdzLnRyYWRpdGlvbmFsOwppZihjLmlzQXJyYXkoYSl8fGEuanF1ZXJ5KWMuZWFjaChhLGZ1bmN0aW9uKCl7Zih0aGlzLm5hbWUsdGhpcy52YWx1ZSl9KTtlbHNlIGZvcih2YXIgaiBpbiBhKWQoaixhW2pdKTtyZXR1cm4gZS5qb2luKCImIikucmVwbGFjZSh5YiwiKyIpfX0pO3ZhciBsYT17fSxBYj0vdG9nZ2xlfHNob3d8aGlkZS8sQmI9L14oWystXT0pPyhbXGQrLS5dKykoLiopJC8sVyx2YT1bWyJoZWlnaHQiLCJtYXJnaW5Ub3AiLCJtYXJnaW5Cb3R0b20iLCJwYWRkaW5nVG9wIiwicGFkZGluZ0JvdHRvbSJdLFsid2lkdGgiLCJtYXJnaW5MZWZ0IiwibWFyZ2luUmlnaHQiLCJwYWRkaW5nTGVmdCIsInBhZGRpbmdSaWdodCJdLFsib3BhY2l0eSJdXTtjLmZuLmV4dGVuZCh7c2hvdzpmdW5jdGlvbihhLGIpe2lmKGF8fGE9PT0wKXJldHVybiB0aGlzLmFuaW1hdGUoSygic2hvdyIsMyksYSxiKTtlbHNle2E9MDtmb3IoYj10aGlzLmxlbmd0aDthPGI7YSsrKXt2YXIgZD1jLmRhdGEodGhpc1thXSwib2xkZGlzcGxheSIpOwp0aGlzW2FdLnN0eWxlLmRpc3BsYXk9ZHx8IiI7aWYoYy5jc3ModGhpc1thXSwiZGlzcGxheSIpPT09Im5vbmUiKXtkPXRoaXNbYV0ubm9kZU5hbWU7dmFyIGY7aWYobGFbZF0pZj1sYVtkXTtlbHNle3ZhciBlPWMoIjwiK2QrIiAvPiIpLmFwcGVuZFRvKCJib2R5Iik7Zj1lLmNzcygiZGlzcGxheSIpO2lmKGY9PT0ibm9uZSIpZj0iYmxvY2siO2UucmVtb3ZlKCk7bGFbZF09Zn1jLmRhdGEodGhpc1thXSwib2xkZGlzcGxheSIsZil9fWE9MDtmb3IoYj10aGlzLmxlbmd0aDthPGI7YSsrKXRoaXNbYV0uc3R5bGUuZGlzcGxheT1jLmRhdGEodGhpc1thXSwib2xkZGlzcGxheSIpfHwiIjtyZXR1cm4gdGhpc319LGhpZGU6ZnVuY3Rpb24oYSxiKXtpZihhfHxhPT09MClyZXR1cm4gdGhpcy5hbmltYXRlKEsoImhpZGUiLDMpLGEsYik7ZWxzZXthPTA7Zm9yKGI9dGhpcy5sZW5ndGg7YTxiO2ErKyl7dmFyIGQ9Yy5kYXRhKHRoaXNbYV0sIm9sZGRpc3BsYXkiKTshZCYmZCE9PSJub25lIiYmYy5kYXRhKHRoaXNbYV0sCiJvbGRkaXNwbGF5IixjLmNzcyh0aGlzW2FdLCJkaXNwbGF5IikpfWE9MDtmb3IoYj10aGlzLmxlbmd0aDthPGI7YSsrKXRoaXNbYV0uc3R5bGUuZGlzcGxheT0ibm9uZSI7cmV0dXJuIHRoaXN9fSxfdG9nZ2xlOmMuZm4udG9nZ2xlLHRvZ2dsZTpmdW5jdGlvbihhLGIpe3ZhciBkPXR5cGVvZiBhPT09ImJvb2xlYW4iO2lmKGMuaXNGdW5jdGlvbihhKSYmYy5pc0Z1bmN0aW9uKGIpKXRoaXMuX3RvZ2dsZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7ZWxzZSBhPT1udWxsfHxkP3RoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBmPWQ/YTpjKHRoaXMpLmlzKCI6aGlkZGVuIik7Yyh0aGlzKVtmPyJzaG93IjoiaGlkZSJdKCl9KTp0aGlzLmFuaW1hdGUoSygidG9nZ2xlIiwzKSxhLGIpO3JldHVybiB0aGlzfSxmYWRlVG86ZnVuY3Rpb24oYSxiLGQpe3JldHVybiB0aGlzLmZpbHRlcigiOmhpZGRlbiIpLmNzcygib3BhY2l0eSIsMCkuc2hvdygpLmVuZCgpLmFuaW1hdGUoe29wYWNpdHk6Yn0sYSxkKX0sCmFuaW1hdGU6ZnVuY3Rpb24oYSxiLGQsZil7dmFyIGU9Yy5zcGVlZChiLGQsZik7aWYoYy5pc0VtcHR5T2JqZWN0KGEpKXJldHVybiB0aGlzLmVhY2goZS5jb21wbGV0ZSk7cmV0dXJuIHRoaXNbZS5xdWV1ZT09PWZhbHNlPyJlYWNoIjoicXVldWUiXShmdW5jdGlvbigpe3ZhciBqPWMuZXh0ZW5kKHt9LGUpLGksbz10aGlzLm5vZGVUeXBlPT09MSYmYyh0aGlzKS5pcygiOmhpZGRlbiIpLGs9dGhpcztmb3IoaSBpbiBhKXt2YXIgbj1pLnJlcGxhY2UoaWEsamEpO2lmKGkhPT1uKXthW25dPWFbaV07ZGVsZXRlIGFbaV07aT1ufWlmKGFbaV09PT0iaGlkZSImJm98fGFbaV09PT0ic2hvdyImJiFvKXJldHVybiBqLmNvbXBsZXRlLmNhbGwodGhpcyk7aWYoKGk9PT0iaGVpZ2h0Inx8aT09PSJ3aWR0aCIpJiZ0aGlzLnN0eWxlKXtqLmRpc3BsYXk9Yy5jc3ModGhpcywiZGlzcGxheSIpO2oub3ZlcmZsb3c9dGhpcy5zdHlsZS5vdmVyZmxvd31pZihjLmlzQXJyYXkoYVtpXSkpeyhqLnNwZWNpYWxFYXNpbmc9Cmouc3BlY2lhbEVhc2luZ3x8e30pW2ldPWFbaV1bMV07YVtpXT1hW2ldWzBdfX1pZihqLm92ZXJmbG93IT1udWxsKXRoaXMuc3R5bGUub3ZlcmZsb3c9ImhpZGRlbiI7ai5jdXJBbmltPWMuZXh0ZW5kKHt9LGEpO2MuZWFjaChhLGZ1bmN0aW9uKHIsdSl7dmFyIHo9bmV3IGMuZngoayxqLHIpO2lmKEFiLnRlc3QodSkpelt1PT09InRvZ2dsZSI/bz8ic2hvdyI6ImhpZGUiOnVdKGEpO2Vsc2V7dmFyIEM9QmIuZXhlYyh1KSxCPXouY3VyKHRydWUpfHwwO2lmKEMpe3U9cGFyc2VGbG9hdChDWzJdKTt2YXIgRT1DWzNdfHwicHgiO2lmKEUhPT0icHgiKXtrLnN0eWxlW3JdPSh1fHwxKStFO0I9KHV8fDEpL3ouY3VyKHRydWUpKkI7ay5zdHlsZVtyXT1CK0V9aWYoQ1sxXSl1PShDWzFdPT09Ii09Ij8tMToxKSp1K0I7ei5jdXN0b20oQix1LEUpfWVsc2Ugei5jdXN0b20oQix1LCIiKX19KTtyZXR1cm4gdHJ1ZX0pfSxzdG9wOmZ1bmN0aW9uKGEsYil7dmFyIGQ9Yy50aW1lcnM7YSYmdGhpcy5xdWV1ZShbXSk7CnRoaXMuZWFjaChmdW5jdGlvbigpe2Zvcih2YXIgZj1kLmxlbmd0aC0xO2Y+PTA7Zi0tKWlmKGRbZl0uZWxlbT09PXRoaXMpe2ImJmRbZl0odHJ1ZSk7ZC5zcGxpY2UoZiwxKX19KTtifHx0aGlzLmRlcXVldWUoKTtyZXR1cm4gdGhpc319KTtjLmVhY2goe3NsaWRlRG93bjpLKCJzaG93IiwxKSxzbGlkZVVwOksoImhpZGUiLDEpLHNsaWRlVG9nZ2xlOksoInRvZ2dsZSIsMSksZmFkZUluOntvcGFjaXR5OiJzaG93In0sZmFkZU91dDp7b3BhY2l0eToiaGlkZSJ9fSxmdW5jdGlvbihhLGIpe2MuZm5bYV09ZnVuY3Rpb24oZCxmKXtyZXR1cm4gdGhpcy5hbmltYXRlKGIsZCxmKX19KTtjLmV4dGVuZCh7c3BlZWQ6ZnVuY3Rpb24oYSxiLGQpe3ZhciBmPWEmJnR5cGVvZiBhPT09Im9iamVjdCI/YTp7Y29tcGxldGU6ZHx8IWQmJmJ8fGMuaXNGdW5jdGlvbihhKSYmYSxkdXJhdGlvbjphLGVhc2luZzpkJiZifHxiJiYhYy5pc0Z1bmN0aW9uKGIpJiZifTtmLmR1cmF0aW9uPWMuZngub2ZmPzA6dHlwZW9mIGYuZHVyYXRpb249PT0KIm51bWJlciI/Zi5kdXJhdGlvbjpjLmZ4LnNwZWVkc1tmLmR1cmF0aW9uXXx8Yy5meC5zcGVlZHMuX2RlZmF1bHQ7Zi5vbGQ9Zi5jb21wbGV0ZTtmLmNvbXBsZXRlPWZ1bmN0aW9uKCl7Zi5xdWV1ZSE9PWZhbHNlJiZjKHRoaXMpLmRlcXVldWUoKTtjLmlzRnVuY3Rpb24oZi5vbGQpJiZmLm9sZC5jYWxsKHRoaXMpfTtyZXR1cm4gZn0sZWFzaW5nOntsaW5lYXI6ZnVuY3Rpb24oYSxiLGQsZil7cmV0dXJuIGQrZiphfSxzd2luZzpmdW5jdGlvbihhLGIsZCxmKXtyZXR1cm4oLU1hdGguY29zKGEqTWF0aC5QSSkvMiswLjUpKmYrZH19LHRpbWVyczpbXSxmeDpmdW5jdGlvbihhLGIsZCl7dGhpcy5vcHRpb25zPWI7dGhpcy5lbGVtPWE7dGhpcy5wcm9wPWQ7aWYoIWIub3JpZyliLm9yaWc9e319fSk7Yy5meC5wcm90b3R5cGU9e3VwZGF0ZTpmdW5jdGlvbigpe3RoaXMub3B0aW9ucy5zdGVwJiZ0aGlzLm9wdGlvbnMuc3RlcC5jYWxsKHRoaXMuZWxlbSx0aGlzLm5vdyx0aGlzKTsoYy5meC5zdGVwW3RoaXMucHJvcF18fApjLmZ4LnN0ZXAuX2RlZmF1bHQpKHRoaXMpO2lmKCh0aGlzLnByb3A9PT0iaGVpZ2h0Inx8dGhpcy5wcm9wPT09IndpZHRoIikmJnRoaXMuZWxlbS5zdHlsZSl0aGlzLmVsZW0uc3R5bGUuZGlzcGxheT0iYmxvY2sifSxjdXI6ZnVuY3Rpb24oYSl7aWYodGhpcy5lbGVtW3RoaXMucHJvcF0hPW51bGwmJighdGhpcy5lbGVtLnN0eWxlfHx0aGlzLmVsZW0uc3R5bGVbdGhpcy5wcm9wXT09bnVsbCkpcmV0dXJuIHRoaXMuZWxlbVt0aGlzLnByb3BdO3JldHVybihhPXBhcnNlRmxvYXQoYy5jc3ModGhpcy5lbGVtLHRoaXMucHJvcCxhKSkpJiZhPi0xMDAwMD9hOnBhcnNlRmxvYXQoYy5jdXJDU1ModGhpcy5lbGVtLHRoaXMucHJvcCkpfHwwfSxjdXN0b206ZnVuY3Rpb24oYSxiLGQpe2Z1bmN0aW9uIGYoail7cmV0dXJuIGUuc3RlcChqKX10aGlzLnN0YXJ0VGltZT1KKCk7dGhpcy5zdGFydD1hO3RoaXMuZW5kPWI7dGhpcy51bml0PWR8fHRoaXMudW5pdHx8InB4Ijt0aGlzLm5vdz10aGlzLnN0YXJ0Owp0aGlzLnBvcz10aGlzLnN0YXRlPTA7dmFyIGU9dGhpcztmLmVsZW09dGhpcy5lbGVtO2lmKGYoKSYmYy50aW1lcnMucHVzaChmKSYmIVcpVz1zZXRJbnRlcnZhbChjLmZ4LnRpY2ssMTMpfSxzaG93OmZ1bmN0aW9uKCl7dGhpcy5vcHRpb25zLm9yaWdbdGhpcy5wcm9wXT1jLnN0eWxlKHRoaXMuZWxlbSx0aGlzLnByb3ApO3RoaXMub3B0aW9ucy5zaG93PXRydWU7dGhpcy5jdXN0b20odGhpcy5wcm9wPT09IndpZHRoInx8dGhpcy5wcm9wPT09ImhlaWdodCI/MTowLHRoaXMuY3VyKCkpO2ModGhpcy5lbGVtKS5zaG93KCl9LGhpZGU6ZnVuY3Rpb24oKXt0aGlzLm9wdGlvbnMub3JpZ1t0aGlzLnByb3BdPWMuc3R5bGUodGhpcy5lbGVtLHRoaXMucHJvcCk7dGhpcy5vcHRpb25zLmhpZGU9dHJ1ZTt0aGlzLmN1c3RvbSh0aGlzLmN1cigpLDApfSxzdGVwOmZ1bmN0aW9uKGEpe3ZhciBiPUooKSxkPXRydWU7aWYoYXx8Yj49dGhpcy5vcHRpb25zLmR1cmF0aW9uK3RoaXMuc3RhcnRUaW1lKXt0aGlzLm5vdz0KdGhpcy5lbmQ7dGhpcy5wb3M9dGhpcy5zdGF0ZT0xO3RoaXMudXBkYXRlKCk7dGhpcy5vcHRpb25zLmN1ckFuaW1bdGhpcy5wcm9wXT10cnVlO2Zvcih2YXIgZiBpbiB0aGlzLm9wdGlvbnMuY3VyQW5pbSlpZih0aGlzLm9wdGlvbnMuY3VyQW5pbVtmXSE9PXRydWUpZD1mYWxzZTtpZihkKXtpZih0aGlzLm9wdGlvbnMuZGlzcGxheSE9bnVsbCl7dGhpcy5lbGVtLnN0eWxlLm92ZXJmbG93PXRoaXMub3B0aW9ucy5vdmVyZmxvdzthPWMuZGF0YSh0aGlzLmVsZW0sIm9sZGRpc3BsYXkiKTt0aGlzLmVsZW0uc3R5bGUuZGlzcGxheT1hP2E6dGhpcy5vcHRpb25zLmRpc3BsYXk7aWYoYy5jc3ModGhpcy5lbGVtLCJkaXNwbGF5Iik9PT0ibm9uZSIpdGhpcy5lbGVtLnN0eWxlLmRpc3BsYXk9ImJsb2NrIn10aGlzLm9wdGlvbnMuaGlkZSYmYyh0aGlzLmVsZW0pLmhpZGUoKTtpZih0aGlzLm9wdGlvbnMuaGlkZXx8dGhpcy5vcHRpb25zLnNob3cpZm9yKHZhciBlIGluIHRoaXMub3B0aW9ucy5jdXJBbmltKWMuc3R5bGUodGhpcy5lbGVtLAplLHRoaXMub3B0aW9ucy5vcmlnW2VdKTt0aGlzLm9wdGlvbnMuY29tcGxldGUuY2FsbCh0aGlzLmVsZW0pfXJldHVybiBmYWxzZX1lbHNle2U9Yi10aGlzLnN0YXJ0VGltZTt0aGlzLnN0YXRlPWUvdGhpcy5vcHRpb25zLmR1cmF0aW9uO2E9dGhpcy5vcHRpb25zLmVhc2luZ3x8KGMuZWFzaW5nLnN3aW5nPyJzd2luZyI6ImxpbmVhciIpO3RoaXMucG9zPWMuZWFzaW5nW3RoaXMub3B0aW9ucy5zcGVjaWFsRWFzaW5nJiZ0aGlzLm9wdGlvbnMuc3BlY2lhbEVhc2luZ1t0aGlzLnByb3BdfHxhXSh0aGlzLnN0YXRlLGUsMCwxLHRoaXMub3B0aW9ucy5kdXJhdGlvbik7dGhpcy5ub3c9dGhpcy5zdGFydCsodGhpcy5lbmQtdGhpcy5zdGFydCkqdGhpcy5wb3M7dGhpcy51cGRhdGUoKX1yZXR1cm4gdHJ1ZX19O2MuZXh0ZW5kKGMuZngse3RpY2s6ZnVuY3Rpb24oKXtmb3IodmFyIGE9Yy50aW1lcnMsYj0wO2I8YS5sZW5ndGg7YisrKWFbYl0oKXx8YS5zcGxpY2UoYi0tLDEpO2EubGVuZ3RofHwKYy5meC5zdG9wKCl9LHN0b3A6ZnVuY3Rpb24oKXtjbGVhckludGVydmFsKFcpO1c9bnVsbH0sc3BlZWRzOntzbG93OjYwMCxmYXN0OjIwMCxfZGVmYXVsdDo0MDB9LHN0ZXA6e29wYWNpdHk6ZnVuY3Rpb24oYSl7Yy5zdHlsZShhLmVsZW0sIm9wYWNpdHkiLGEubm93KX0sX2RlZmF1bHQ6ZnVuY3Rpb24oYSl7aWYoYS5lbGVtLnN0eWxlJiZhLmVsZW0uc3R5bGVbYS5wcm9wXSE9bnVsbClhLmVsZW0uc3R5bGVbYS5wcm9wXT0oYS5wcm9wPT09IndpZHRoInx8YS5wcm9wPT09ImhlaWdodCI/TWF0aC5tYXgoMCxhLm5vdyk6YS5ub3cpK2EudW5pdDtlbHNlIGEuZWxlbVthLnByb3BdPWEubm93fX19KTtpZihjLmV4cHImJmMuZXhwci5maWx0ZXJzKWMuZXhwci5maWx0ZXJzLmFuaW1hdGVkPWZ1bmN0aW9uKGEpe3JldHVybiBjLmdyZXAoYy50aW1lcnMsZnVuY3Rpb24oYil7cmV0dXJuIGE9PT1iLmVsZW19KS5sZW5ndGh9O2MuZm4ub2Zmc2V0PSJnZXRCb3VuZGluZ0NsaWVudFJlY3QiaW4gcy5kb2N1bWVudEVsZW1lbnQ/CmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXNbMF07aWYoYSlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGUpe2Mub2Zmc2V0LnNldE9mZnNldCh0aGlzLGEsZSl9KTtpZighYnx8IWIub3duZXJEb2N1bWVudClyZXR1cm4gbnVsbDtpZihiPT09Yi5vd25lckRvY3VtZW50LmJvZHkpcmV0dXJuIGMub2Zmc2V0LmJvZHlPZmZzZXQoYik7dmFyIGQ9Yi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxmPWIub3duZXJEb2N1bWVudDtiPWYuYm9keTtmPWYuZG9jdW1lbnRFbGVtZW50O3JldHVybnt0b3A6ZC50b3ArKHNlbGYucGFnZVlPZmZzZXR8fGMuc3VwcG9ydC5ib3hNb2RlbCYmZi5zY3JvbGxUb3B8fGIuc2Nyb2xsVG9wKS0oZi5jbGllbnRUb3B8fGIuY2xpZW50VG9wfHwwKSxsZWZ0OmQubGVmdCsoc2VsZi5wYWdlWE9mZnNldHx8Yy5zdXBwb3J0LmJveE1vZGVsJiZmLnNjcm9sbExlZnR8fGIuc2Nyb2xsTGVmdCktKGYuY2xpZW50TGVmdHx8Yi5jbGllbnRMZWZ0fHwwKX19OmZ1bmN0aW9uKGEpe3ZhciBiPQp0aGlzWzBdO2lmKGEpcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihyKXtjLm9mZnNldC5zZXRPZmZzZXQodGhpcyxhLHIpfSk7aWYoIWJ8fCFiLm93bmVyRG9jdW1lbnQpcmV0dXJuIG51bGw7aWYoYj09PWIub3duZXJEb2N1bWVudC5ib2R5KXJldHVybiBjLm9mZnNldC5ib2R5T2Zmc2V0KGIpO2Mub2Zmc2V0LmluaXRpYWxpemUoKTt2YXIgZD1iLm9mZnNldFBhcmVudCxmPWIsZT1iLm93bmVyRG9jdW1lbnQsaixpPWUuZG9jdW1lbnRFbGVtZW50LG89ZS5ib2R5O2Y9KGU9ZS5kZWZhdWx0Vmlldyk/ZS5nZXRDb21wdXRlZFN0eWxlKGIsbnVsbCk6Yi5jdXJyZW50U3R5bGU7Zm9yKHZhciBrPWIub2Zmc2V0VG9wLG49Yi5vZmZzZXRMZWZ0OyhiPWIucGFyZW50Tm9kZSkmJmIhPT1vJiZiIT09aTspe2lmKGMub2Zmc2V0LnN1cHBvcnRzRml4ZWRQb3NpdGlvbiYmZi5wb3NpdGlvbj09PSJmaXhlZCIpYnJlYWs7aj1lP2UuZ2V0Q29tcHV0ZWRTdHlsZShiLG51bGwpOmIuY3VycmVudFN0eWxlOwprLT1iLnNjcm9sbFRvcDtuLT1iLnNjcm9sbExlZnQ7aWYoYj09PWQpe2srPWIub2Zmc2V0VG9wO24rPWIub2Zmc2V0TGVmdDtpZihjLm9mZnNldC5kb2VzTm90QWRkQm9yZGVyJiYhKGMub2Zmc2V0LmRvZXNBZGRCb3JkZXJGb3JUYWJsZUFuZENlbGxzJiYvXnQoYWJsZXxkfGgpJC9pLnRlc3QoYi5ub2RlTmFtZSkpKXtrKz1wYXJzZUZsb2F0KGouYm9yZGVyVG9wV2lkdGgpfHwwO24rPXBhcnNlRmxvYXQoai5ib3JkZXJMZWZ0V2lkdGgpfHwwfWY9ZDtkPWIub2Zmc2V0UGFyZW50fWlmKGMub2Zmc2V0LnN1YnRyYWN0c0JvcmRlckZvck92ZXJmbG93Tm90VmlzaWJsZSYmai5vdmVyZmxvdyE9PSJ2aXNpYmxlIil7ays9cGFyc2VGbG9hdChqLmJvcmRlclRvcFdpZHRoKXx8MDtuKz1wYXJzZUZsb2F0KGouYm9yZGVyTGVmdFdpZHRoKXx8MH1mPWp9aWYoZi5wb3NpdGlvbj09PSJyZWxhdGl2ZSJ8fGYucG9zaXRpb249PT0ic3RhdGljIil7ays9by5vZmZzZXRUb3A7bis9by5vZmZzZXRMZWZ0fWlmKGMub2Zmc2V0LnN1cHBvcnRzRml4ZWRQb3NpdGlvbiYmCmYucG9zaXRpb249PT0iZml4ZWQiKXtrKz1NYXRoLm1heChpLnNjcm9sbFRvcCxvLnNjcm9sbFRvcCk7bis9TWF0aC5tYXgoaS5zY3JvbGxMZWZ0LG8uc2Nyb2xsTGVmdCl9cmV0dXJue3RvcDprLGxlZnQ6bn19O2Mub2Zmc2V0PXtpbml0aWFsaXplOmZ1bmN0aW9uKCl7dmFyIGE9cy5ib2R5LGI9cy5jcmVhdGVFbGVtZW50KCJkaXYiKSxkLGYsZSxqPXBhcnNlRmxvYXQoYy5jdXJDU1MoYSwibWFyZ2luVG9wIix0cnVlKSl8fDA7Yy5leHRlbmQoYi5zdHlsZSx7cG9zaXRpb246ImFic29sdXRlIix0b3A6MCxsZWZ0OjAsbWFyZ2luOjAsYm9yZGVyOjAsd2lkdGg6IjFweCIsaGVpZ2h0OiIxcHgiLHZpc2liaWxpdHk6ImhpZGRlbiJ9KTtiLmlubmVySFRNTD0iPGRpdiBzdHlsZT0ncG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO21hcmdpbjowO2JvcmRlcjo1cHggc29saWQgIzAwMDtwYWRkaW5nOjA7d2lkdGg6MXB4O2hlaWdodDoxcHg7Jz48ZGl2PjwvZGl2PjwvZGl2Pjx0YWJsZSBzdHlsZT0ncG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO21hcmdpbjowO2JvcmRlcjo1cHggc29saWQgIzAwMDtwYWRkaW5nOjA7d2lkdGg6MXB4O2hlaWdodDoxcHg7JyBjZWxscGFkZGluZz0nMCcgY2VsbHNwYWNpbmc9JzAnPjx0cj48dGQ+PC90ZD48L3RyPjwvdGFibGU+IjsKYS5pbnNlcnRCZWZvcmUoYixhLmZpcnN0Q2hpbGQpO2Q9Yi5maXJzdENoaWxkO2Y9ZC5maXJzdENoaWxkO2U9ZC5uZXh0U2libGluZy5maXJzdENoaWxkLmZpcnN0Q2hpbGQ7dGhpcy5kb2VzTm90QWRkQm9yZGVyPWYub2Zmc2V0VG9wIT09NTt0aGlzLmRvZXNBZGRCb3JkZXJGb3JUYWJsZUFuZENlbGxzPWUub2Zmc2V0VG9wPT09NTtmLnN0eWxlLnBvc2l0aW9uPSJmaXhlZCI7Zi5zdHlsZS50b3A9IjIwcHgiO3RoaXMuc3VwcG9ydHNGaXhlZFBvc2l0aW9uPWYub2Zmc2V0VG9wPT09MjB8fGYub2Zmc2V0VG9wPT09MTU7Zi5zdHlsZS5wb3NpdGlvbj1mLnN0eWxlLnRvcD0iIjtkLnN0eWxlLm92ZXJmbG93PSJoaWRkZW4iO2Quc3R5bGUucG9zaXRpb249InJlbGF0aXZlIjt0aGlzLnN1YnRyYWN0c0JvcmRlckZvck92ZXJmbG93Tm90VmlzaWJsZT1mLm9mZnNldFRvcD09PS01O3RoaXMuZG9lc05vdEluY2x1ZGVNYXJnaW5JbkJvZHlPZmZzZXQ9YS5vZmZzZXRUb3AhPT1qO2EucmVtb3ZlQ2hpbGQoYik7CmMub2Zmc2V0LmluaXRpYWxpemU9Yy5ub29wfSxib2R5T2Zmc2V0OmZ1bmN0aW9uKGEpe3ZhciBiPWEub2Zmc2V0VG9wLGQ9YS5vZmZzZXRMZWZ0O2Mub2Zmc2V0LmluaXRpYWxpemUoKTtpZihjLm9mZnNldC5kb2VzTm90SW5jbHVkZU1hcmdpbkluQm9keU9mZnNldCl7Yis9cGFyc2VGbG9hdChjLmN1ckNTUyhhLCJtYXJnaW5Ub3AiLHRydWUpKXx8MDtkKz1wYXJzZUZsb2F0KGMuY3VyQ1NTKGEsIm1hcmdpbkxlZnQiLHRydWUpKXx8MH1yZXR1cm57dG9wOmIsbGVmdDpkfX0sc2V0T2Zmc2V0OmZ1bmN0aW9uKGEsYixkKXtpZigvc3RhdGljLy50ZXN0KGMuY3VyQ1NTKGEsInBvc2l0aW9uIikpKWEuc3R5bGUucG9zaXRpb249InJlbGF0aXZlIjt2YXIgZj1jKGEpLGU9Zi5vZmZzZXQoKSxqPXBhcnNlSW50KGMuY3VyQ1NTKGEsInRvcCIsdHJ1ZSksMTApfHwwLGk9cGFyc2VJbnQoYy5jdXJDU1MoYSwibGVmdCIsdHJ1ZSksMTApfHwwO2lmKGMuaXNGdW5jdGlvbihiKSliPWIuY2FsbChhLApkLGUpO2Q9e3RvcDpiLnRvcC1lLnRvcCtqLGxlZnQ6Yi5sZWZ0LWUubGVmdCtpfTsidXNpbmciaW4gYj9iLnVzaW5nLmNhbGwoYSxkKTpmLmNzcyhkKX19O2MuZm4uZXh0ZW5kKHtwb3NpdGlvbjpmdW5jdGlvbigpe2lmKCF0aGlzWzBdKXJldHVybiBudWxsO3ZhciBhPXRoaXNbMF0sYj10aGlzLm9mZnNldFBhcmVudCgpLGQ9dGhpcy5vZmZzZXQoKSxmPS9eYm9keXxodG1sJC9pLnRlc3QoYlswXS5ub2RlTmFtZSk/e3RvcDowLGxlZnQ6MH06Yi5vZmZzZXQoKTtkLnRvcC09cGFyc2VGbG9hdChjLmN1ckNTUyhhLCJtYXJnaW5Ub3AiLHRydWUpKXx8MDtkLmxlZnQtPXBhcnNlRmxvYXQoYy5jdXJDU1MoYSwibWFyZ2luTGVmdCIsdHJ1ZSkpfHwwO2YudG9wKz1wYXJzZUZsb2F0KGMuY3VyQ1NTKGJbMF0sImJvcmRlclRvcFdpZHRoIix0cnVlKSl8fDA7Zi5sZWZ0Kz1wYXJzZUZsb2F0KGMuY3VyQ1NTKGJbMF0sImJvcmRlckxlZnRXaWR0aCIsdHJ1ZSkpfHwwO3JldHVybnt0b3A6ZC50b3AtCmYudG9wLGxlZnQ6ZC5sZWZ0LWYubGVmdH19LG9mZnNldFBhcmVudDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1hcChmdW5jdGlvbigpe2Zvcih2YXIgYT10aGlzLm9mZnNldFBhcmVudHx8cy5ib2R5O2EmJiEvXmJvZHl8aHRtbCQvaS50ZXN0KGEubm9kZU5hbWUpJiZjLmNzcyhhLCJwb3NpdGlvbiIpPT09InN0YXRpYyI7KWE9YS5vZmZzZXRQYXJlbnQ7cmV0dXJuIGF9KX19KTtjLmVhY2goWyJMZWZ0IiwiVG9wIl0sZnVuY3Rpb24oYSxiKXt2YXIgZD0ic2Nyb2xsIitiO2MuZm5bZF09ZnVuY3Rpb24oZil7dmFyIGU9dGhpc1swXSxqO2lmKCFlKXJldHVybiBudWxsO2lmKGYhPT13KXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtpZihqPXdhKHRoaXMpKWouc2Nyb2xsVG8oIWE/ZjpjKGopLnNjcm9sbExlZnQoKSxhP2Y6YyhqKS5zY3JvbGxUb3AoKSk7ZWxzZSB0aGlzW2RdPWZ9KTtlbHNlIHJldHVybihqPXdhKGUpKT8icGFnZVhPZmZzZXQiaW4gaj9qW2E/InBhZ2VZT2Zmc2V0IjoKInBhZ2VYT2Zmc2V0Il06Yy5zdXBwb3J0LmJveE1vZGVsJiZqLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudFtkXXx8ai5kb2N1bWVudC5ib2R5W2RdOmVbZF19fSk7Yy5lYWNoKFsiSGVpZ2h0IiwiV2lkdGgiXSxmdW5jdGlvbihhLGIpe3ZhciBkPWIudG9Mb3dlckNhc2UoKTtjLmZuWyJpbm5lciIrYl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc1swXT9jLmNzcyh0aGlzWzBdLGQsZmFsc2UsInBhZGRpbmciKTpudWxsfTtjLmZuWyJvdXRlciIrYl09ZnVuY3Rpb24oZil7cmV0dXJuIHRoaXNbMF0/Yy5jc3ModGhpc1swXSxkLGZhbHNlLGY/Im1hcmdpbiI6ImJvcmRlciIpOm51bGx9O2MuZm5bZF09ZnVuY3Rpb24oZil7dmFyIGU9dGhpc1swXTtpZighZSlyZXR1cm4gZj09bnVsbD9udWxsOnRoaXM7aWYoYy5pc0Z1bmN0aW9uKGYpKXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oail7dmFyIGk9Yyh0aGlzKTtpW2RdKGYuY2FsbCh0aGlzLGosaVtkXSgpKSl9KTtyZXR1cm4ic2Nyb2xsVG8iaW4KZSYmZS5kb2N1bWVudD9lLmRvY3VtZW50LmNvbXBhdE1vZGU9PT0iQ1NTMUNvbXBhdCImJmUuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50WyJjbGllbnQiK2JdfHxlLmRvY3VtZW50LmJvZHlbImNsaWVudCIrYl06ZS5ub2RlVHlwZT09PTk/TWF0aC5tYXgoZS5kb2N1bWVudEVsZW1lbnRbImNsaWVudCIrYl0sZS5ib2R5WyJzY3JvbGwiK2JdLGUuZG9jdW1lbnRFbGVtZW50WyJzY3JvbGwiK2JdLGUuYm9keVsib2Zmc2V0IitiXSxlLmRvY3VtZW50RWxlbWVudFsib2Zmc2V0IitiXSk6Zj09PXc/Yy5jc3MoZSxkKTp0aGlzLmNzcyhkLHR5cGVvZiBmPT09InN0cmluZyI/ZjpmKyJweCIpfX0pO0EualF1ZXJ5PUEuJD1jfSkod2luZG93KTtqUXVlcnkubm9Db25mbGljdCgpOwoKCg==]]></data>
	</file>
	<file>
	  <filename>/includes/jquery.tablednd.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoqCiAqIFRhYmxlRG5EIHBsdWctaW4gZm9yIEpRdWVyeSwgYWxsb3dzIHlvdSB0byBkcmFnIGFuZCBkcm9wIHRhYmxlIHJvd3MKICogWW91IGNhbiBzZXQgdXAgdmFyaW91cyBvcHRpb25zIHRvIGNvbnRyb2wgaG93IHRoZSBzeXN0ZW0gd2lsbCB3b3JrCiAqIENvcHlyaWdodCAoYykgRGVuaXMgSG93bGV0dCA8ZGVuaXNoQGlzb2NyYS5jb20+CiAqIExpY2Vuc2VkIGxpa2UgalF1ZXJ5LCBzZWUgaHR0cDovL2RvY3MuanF1ZXJ5LmNvbS9MaWNlbnNlLgogKgogKiBDb25maWd1cmF0aW9uIG9wdGlvbnM6CiAqIAogKiBvbkRyYWdTdHlsZQogKiAgICAgVGhpcyBpcyB0aGUgc3R5bGUgdGhhdCBpcyBhc3NpZ25lZCB0byB0aGUgcm93IGR1cmluZyBkcmFnLiBUaGVyZSBhcmUgbGltaXRhdGlvbnMgdG8gdGhlIHN0eWxlcyB0aGF0IGNhbiBiZQogKiAgICAgYXNzb2NpYXRlZCB3aXRoIGEgcm93IChzdWNoIGFzIHlvdSBjYW4ndCBhc3NpZ24gYSBib3JkZXItLXdlbGwgeW91IGNhbiwgYnV0IGl0IHdvbid0IGJlCiAqICAgICBkaXNwbGF5ZWQpLiAoU28gaW5zdGVhZCBjb25zaWRlciB1c2luZyBvbkRyYWdDbGFzcy4pIFRoZSBDU1Mgc3R5bGUgdG8gYXBwbHkgaXMgc3BlY2lmaWVkIGFzCiAqICAgICBhIG1hcCAoYXMgdXNlZCBpbiB0aGUgalF1ZXJ5IGNzcyguLi4pIGZ1bmN0aW9uKS4KICogb25Ecm9wU3R5bGUKICogICAgIFRoaXMgaXMgdGhlIHN0eWxlIHRoYXQgaXMgYXNzaWduZWQgdG8gdGhlIHJvdyB3aGVuIGl0IGlzIGRyb3BwZWQuIEFzIGZvciBvbkRyYWdTdHlsZSwgdGhlcmUgYXJlIGxpbWl0YXRpb25zCiAqICAgICB0byB3aGF0IHlvdSBjYW4gZG8uIEFsc28gdGhpcyByZXBsYWNlcyB0aGUgb3JpZ2luYWwgc3R5bGUsIHNvIGFnYWluIGNvbnNpZGVyIHVzaW5nIG9uRHJhZ0NsYXNzIHdoaWNoCiAqICAgICBpcyBzaW1wbHkgYWRkZWQgYW5kIHRoZW4gcmVtb3ZlZCBvbiBkcm9wLgogKiBvbkRyYWdDbGFzcwogKiAgICAgVGhpcyBjbGFzcyBpcyBhZGRlZCBmb3IgdGhlIGR1cmF0aW9uIG9mIHRoZSBkcmFnIGFuZCB0aGVuIHJlbW92ZWQgd2hlbiB0aGUgcm93IGlzIGRyb3BwZWQuIEl0IGlzIG1vcmUKICogICAgIGZsZXhpYmxlIHRoYW4gdXNpbmcgb25EcmFnU3R5bGUgc2luY2UgaXQgY2FuIGJlIGluaGVyaXRlZCBieSB0aGUgcm93IGNlbGxzIGFuZCBvdGhlciBjb250ZW50LiBUaGUgZGVmYXVsdAogKiAgICAgaXMgY2xhc3MgaXMgdERuRF93aGlsZURyYWcuIFNvIHRvIHVzZSB0aGUgZGVmYXVsdCwgc2ltcGx5IGN1c3RvbWlzZSB0aGlzIENTUyBjbGFzcyBpbiB5b3VyCiAqICAgICBzdHlsZXNoZWV0LgogKiBvbkRyb3AKICogICAgIFBhc3MgYSBmdW5jdGlvbiB0aGF0IHdpbGwgYmUgY2FsbGVkIHdoZW4gdGhlIHJvdyBpcyBkcm9wcGVkLiBUaGUgZnVuY3Rpb24gdGFrZXMgMiBwYXJhbWV0ZXJzOiB0aGUgdGFibGUKICogICAgIGFuZCB0aGUgcm93IHRoYXQgd2FzIGRyb3BwZWQuIFlvdSBjYW4gd29yayBvdXQgdGhlIG5ldyBvcmRlciBvZiB0aGUgcm93cyBieSB1c2luZwogKiAgICAgdGFibGUucm93cy4KICogb25EcmFnU3RhcnQKICogICAgIFBhc3MgYSBmdW5jdGlvbiB0aGF0IHdpbGwgYmUgY2FsbGVkIHdoZW4gdGhlIHVzZXIgc3RhcnRzIGRyYWdnaW5nLiBUaGUgZnVuY3Rpb24gdGFrZXMgMiBwYXJhbWV0ZXJzOiB0aGUKICogICAgIHRhYmxlIGFuZCB0aGUgcm93IHdoaWNoIHRoZSB1c2VyIGhhcyBzdGFydGVkIHRvIGRyYWcuCiAqIG9uQWxsb3dEcm9wCiAqICAgICBQYXNzIGEgZnVuY3Rpb24gdGhhdCB3aWxsIGJlIGNhbGxlZCBhcyBhIHJvdyBpcyBvdmVyIGFub3RoZXIgcm93LiBJZiB0aGUgZnVuY3Rpb24gcmV0dXJucyB0cnVlLCBhbGxvdyAKICogICAgIGRyb3BwaW5nIG9uIHRoYXQgcm93LCBvdGhlcndpc2Ugbm90LiBUaGUgZnVuY3Rpb24gdGFrZXMgMiBwYXJhbWV0ZXJzOiB0aGUgZHJhZ2dlZCByb3cgYW5kIHRoZSByb3cgdW5kZXIKICogICAgIHRoZSBjdXJzb3IuIEl0IHJldHVybnMgYSBib29sZWFuOiB0cnVlIGFsbG93cyB0aGUgZHJvcCwgZmFsc2UgZG9lc24ndCBhbGxvdyBpdC4KICogc2Nyb2xsQW1vdW50CiAqICAgICBUaGlzIGlzIHRoZSBudW1iZXIgb2YgcGl4ZWxzIHRvIHNjcm9sbCBpZiB0aGUgdXNlciBtb3ZlcyB0aGUgbW91c2UgY3Vyc29yIHRvIHRoZSB0b3Agb3IgYm90dG9tIG9mIHRoZQogKiAgICAgd2luZG93LiBUaGUgcGFnZSBzaG91bGQgYXV0b21hdGljYWxseSBzY3JvbGwgdXAgb3IgZG93biBhcyBhcHByb3ByaWF0ZSAodGVzdGVkIGluIElFNiwgSUU3LCBTYWZhcmksIEZGMiwKICogICAgIEZGMyBiZXRhCiAqIGRyYWdIYW5kbGUKICogICAgIFRoaXMgaXMgdGhlIG5hbWUgb2YgYSBjbGFzcyB0aGF0IHlvdSBhc3NpZ24gdG8gb25lIG9yIG1vcmUgY2VsbHMgaW4gZWFjaCByb3cgdGhhdCBpcyBkcmFnZ2FibGUuIElmIHlvdQogKiAgICAgc3BlY2lmeSB0aGlzIGNsYXNzLCB0aGVuIHlvdSBhcmUgcmVzcG9uc2libGUgZm9yIHNldHRpbmcgY3Vyc29yOiBtb3ZlIGluIHRoZSBDU1MgYW5kIG9ubHkgdGhlc2UgY2VsbHMKICogICAgIHdpbGwgaGF2ZSB0aGUgZHJhZyBiZWhhdmlvdXIuIElmIHlvdSBkbyBub3Qgc3BlY2lmeSBhIGRyYWdIYW5kbGUsIHRoZW4geW91IGdldCB0aGUgb2xkIGJlaGF2aW91ciB3aGVyZQogKiAgICAgdGhlIHdob2xlIHJvdyBpcyBkcmFnZ2FibGUuCiAqIAogKiBPdGhlciB3YXlzIHRvIGNvbnRyb2wgYmVoYXZpb3VyOgogKgogKiBBZGQgY2xhc3M9Im5vZHJvcCIgdG8gYW55IHJvd3MgZm9yIHdoaWNoIHlvdSBkb24ndCB3YW50IHRvIGFsbG93IGRyb3BwaW5nLCBhbmQgY2xhc3M9Im5vZHJhZyIgdG8gYW55IHJvd3MKICogdGhhdCB5b3UgZG9uJ3Qgd2FudCB0byBiZSBkcmFnZ2FibGUuCiAqCiAqIEluc2lkZSB0aGUgb25Ecm9wIG1ldGhvZCB5b3UgY2FuIGFsc28gY2FsbCAkLnRhYmxlRG5ELnNlcmlhbGl6ZSgpIHRoaXMgcmV0dXJucyBhIHN0cmluZyBvZiB0aGUgZm9ybQogKiA8dGFibGVJRD5bXT08cm93SUQxPiY8dGFibGVJRD5bXT08cm93SUQyPiBzbyB0aGF0IHlvdSBjYW4gc2VuZCB0aGlzIGJhY2sgdG8gdGhlIHNlcnZlci4gVGhlIHRhYmxlIG11c3QgaGF2ZQogKiBhbiBJRCBhcyBtdXN0IGFsbCB0aGUgcm93cy4KICoKICogT3RoZXIgbWV0aG9kczoKICoKICogJCgiLi4uIikudGFibGVEbkRVcGRhdGUoKSAKICogV2lsbCB1cGRhdGUgYWxsIHRoZSBtYXRjaGluZyB0YWJsZXMsIHRoYXQgaXMgaXQgd2lsbCByZWFwcGx5IHRoZSBtb3VzZWRvd24gbWV0aG9kIHRvIHRoZSByb3dzIChvciBoYW5kbGUgY2VsbHMpLgogKiBUaGlzIGlzIHVzZWZ1bCBpZiB5b3UgaGF2ZSB1cGRhdGVkIHRoZSB0YWJsZSByb3dzIHVzaW5nIEFqYXggYW5kIHlvdSB3YW50IHRvIG1ha2UgdGhlIHRhYmxlIGRyYWdnYWJsZSBhZ2Fpbi4KICogVGhlIHRhYmxlIG1haW50YWlucyB0aGUgb3JpZ2luYWwgY29uZmlndXJhdGlvbiAoc28geW91IGRvbid0IGhhdmUgdG8gc3BlY2lmeSBpdCBhZ2FpbikuCiAqCiAqICQoIi4uLiIpLnRhYmxlRG5EU2VyaWFsaXplKCkKICogV2lsbCBzZXJpYWxpemUgYW5kIHJldHVybiB0aGUgc2VyaWFsaXplZCBzdHJpbmcgYXMgYWJvdmUsIGJ1dCBmb3IgZWFjaCBvZiB0aGUgbWF0Y2hpbmcgdGFibGVzLS1zbyBpdCBjYW4gYmUKICogY2FsbGVkIGZyb20gYW55d2hlcmUgYW5kIGlzbid0IGRlcGVuZGVudCBvbiB0aGUgY3VycmVudFRhYmxlIGJlaW5nIHNldCB1cCBjb3JyZWN0bHkgYmVmb3JlIGNhbGxpbmcKICoKICogS25vd24gcHJvYmxlbXM6CiAqIC0gQXV0by1zY29sbCBoYXMgc29tZSBwcm9ibGVtcyB3aXRoIElFNyAgKGl0IHNjcm9sbHMgZXZlbiB3aGVuIGl0IHNob3VsZG4ndCksIHdvcmstYXJvdW5kOiBzZXQgc2Nyb2xsQW1vdW50IHRvIDAKICogCiAqIFZlcnNpb24gMC4yOiAyMDA4LTAyLTIwIEZpcnN0IHB1YmxpYyB2ZXJzaW9uCiAqIFZlcnNpb24gMC4zOiAyMDA4LTAyLTA3IEFkZGVkIG9uRHJhZ1N0YXJ0IG9wdGlvbgogKiAgICAgICAgICAgICAgICAgICAgICAgICBNYWRlIHRoZSBzY3JvbGwgYW1vdW50IGNvbmZpZ3VyYWJsZSAoZGVmYXVsdCBpcyA1IGFzIGJlZm9yZSkKICogVmVyc2lvbiAwLjQ6IDIwMDgtMDMtMTUgQ2hhbmdlZCB0aGUgbm9EcmFnL25vRHJvcCBhdHRyaWJ1dGVzIHRvIG5vZHJhZy9ub2Ryb3AgY2xhc3NlcwogKiAgICAgICAgICAgICAgICAgICAgICAgICBBZGRlZCBvbkFsbG93RHJvcCB0byBjb250cm9sIGRyb3BwaW5nCiAqICAgICAgICAgICAgICAgICAgICAgICAgIEZpeGVkIGEgYnVnIHdoaWNoIG1lYW50IHRoYXQgeW91IGNvdWxkbid0IHNldCB0aGUgc2Nyb2xsIGFtb3VudCBpbiBib3RoIGRpcmVjdGlvbnMKICogICAgICAgICAgICAgICAgICAgICAgICAgQWRkZWQgc2VyaWFsaXplIG1ldGhvZAogKiBWZXJzaW9uIDAuNTogMjAwOC0wNS0xNiBDaGFuZ2VkIHNvIHRoYXQgaWYgeW91IHNwZWNpZnkgYSBkcmFnSGFuZGxlIGNsYXNzIGl0IGRvZXNuJ3QgbWFrZSB0aGUgd2hvbGUgcm93CiAqICAgICAgICAgICAgICAgICAgICAgICAgIGRyYWdnYWJsZQogKiAgICAgICAgICAgICAgICAgICAgICAgICBJbXByb3ZlZCB0aGUgc2VyaWFsaXplIG1ldGhvZCB0byB1c2UgYSBkZWZhdWx0IChhbmQgc2V0dGFibGUpIHJlZ3VsYXIgZXhwcmVzc2lvbi4KICogICAgICAgICAgICAgICAgICAgICAgICAgQWRkZWQgdGFibGVEbkR1cGF0ZSgpIGFuZCB0YWJsZURuRFNlcmlhbGl6ZSgpIHRvIGJlIGNhbGxlZCB3aGVuIHlvdSBhcmUgb3V0c2lkZSB0aGUgdGFibGUKICovCmpRdWVyeS50YWJsZURuRCA9IHsKICAgIC8qKiBLZWVwIGhvbGQgb2YgdGhlIGN1cnJlbnQgdGFibGUgYmVpbmcgZHJhZ2dlZCAqLwogICAgY3VycmVudFRhYmxlIDogbnVsbCwKICAgIC8qKiBLZWVwIGhvbGQgb2YgdGhlIGN1cnJlbnQgZHJhZyBvYmplY3QgaWYgYW55ICovCiAgICBkcmFnT2JqZWN0OiBudWxsLAogICAgLyoqIFRoZSBjdXJyZW50IG1vdXNlIG9mZnNldCAqLwogICAgbW91c2VPZmZzZXQ6IG51bGwsCiAgICAvKiogUmVtZW1iZXIgdGhlIG9sZCB2YWx1ZSBvZiBZIHNvIHRoYXQgd2UgZG9uJ3QgZG8gdG9vIG11Y2ggcHJvY2Vzc2luZyAqLwogICAgb2xkWTogMCwKCiAgICAvKiogQWN0dWFsbHkgYnVpbGQgdGhlIHN0cnVjdHVyZSAqLwogICAgYnVpbGQ6IGZ1bmN0aW9uKG9wdGlvbnMpIHsKICAgICAgICAvLyBTZXQgdXAgdGhlIGRlZmF1bHRzIGlmIGFueQoKICAgICAgICB0aGlzLmVhY2goZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIC8vIFRoaXMgaXMgYm91bmQgdG8gZWFjaCBtYXRjaGluZyB0YWJsZSwgc2V0IHVwIHRoZSBkZWZhdWx0cyBhbmQgb3ZlcnJpZGUgd2l0aCB1c2VyIG9wdGlvbnMKICAgICAgICAgICAgdGhpcy50YWJsZURuRENvbmZpZyA9IGpRdWVyeS5leHRlbmQoewogICAgICAgICAgICAgICAgb25EcmFnU3R5bGU6IG51bGwsCiAgICAgICAgICAgICAgICBvbkRyb3BTdHlsZTogbnVsbCwKCQkJCS8vIEFkZCBpbiB0aGUgZGVmYXVsdCBjbGFzcyBmb3Igd2hpbGVEcmFnZ2luZwoJCQkJb25EcmFnQ2xhc3M6ICJ0RG5EX3doaWxlRHJhZyIsCiAgICAgICAgICAgICAgICBvbkRyb3A6IG51bGwsCiAgICAgICAgICAgICAgICBvbkRyYWdTdGFydDogbnVsbCwKICAgICAgICAgICAgICAgIHNjcm9sbEFtb3VudDogNSwKCQkJCXNlcmlhbGl6ZVJlZ2V4cDogL1teXC1dKiQvLCAvLyBUaGUgcmVndWxhciBleHByZXNzaW9uIHRvIHVzZSB0byB0cmltIHJvdyBJRHMKCQkJCXNlcmlhbGl6ZVBhcmFtTmFtZTogbnVsbCwgLy8gSWYgeW91IHdhbnQgdG8gc3BlY2lmeSBhbm90aGVyIHBhcmFtZXRlciBuYW1lIGluc3RlYWQgb2YgdGhlIHRhYmxlIElECiAgICAgICAgICAgICAgICBkcmFnSGFuZGxlOiBudWxsIC8vIElmIHlvdSBnaXZlIHRoZSBuYW1lIG9mIGEgY2xhc3MgaGVyZSwgdGhlbiBvbmx5IENlbGxzIHdpdGggdGhpcyBjbGFzcyB3aWxsIGJlIGRyYWdnYWJsZQogICAgICAgICAgICB9LCBvcHRpb25zIHx8IHt9KTsKICAgICAgICAgICAgLy8gTm93IG1ha2UgdGhlIHJvd3MgZHJhZ2dhYmxlCiAgICAgICAgICAgIGpRdWVyeS50YWJsZURuRC5tYWtlRHJhZ2dhYmxlKHRoaXMpOwogICAgICAgIH0pOwoKICAgICAgICAvLyBOb3cgd2UgbmVlZCB0byBjYXB0dXJlIHRoZSBtb3VzZSB1cCBhbmQgbW91c2UgbW92ZSBldmVudAogICAgICAgIC8vIFdlIGNhbiB1c2UgYmluZCBzbyB0aGF0IHdlIGRvbid0IGludGVyZmVyZSB3aXRoIG90aGVyIGV2ZW50IGhhbmRsZXJzCiAgICAgICAgalF1ZXJ5KGRvY3VtZW50KQogICAgICAgICAgICAuYmluZCgnbW91c2Vtb3ZlJywgalF1ZXJ5LnRhYmxlRG5ELm1vdXNlbW92ZSkKICAgICAgICAgICAgLmJpbmQoJ21vdXNldXAnLCBqUXVlcnkudGFibGVEbkQubW91c2V1cCk7CgogICAgICAgIC8vIERvbid0IGJyZWFrIHRoZSBjaGFpbgogICAgICAgIHJldHVybiB0aGlzOwogICAgfSwKCiAgICAvKiogVGhpcyBmdW5jdGlvbiBtYWtlcyBhbGwgdGhlIHJvd3Mgb24gdGhlIHRhYmxlIGRyYWdnYWJsZSBhcGFydCBmcm9tIHRob3NlIG1hcmtlZCBhcyAiTm9EcmFnIiAqLwogICAgbWFrZURyYWdnYWJsZTogZnVuY3Rpb24odGFibGUpIHsKICAgICAgICB2YXIgY29uZmlnID0gdGFibGUudGFibGVEbkRDb25maWc7CgkJaWYgKHRhYmxlLnRhYmxlRG5EQ29uZmlnLmRyYWdIYW5kbGUpIHsKCQkJLy8gV2Ugb25seSBuZWVkIHRvIGFkZCB0aGUgZXZlbnQgdG8gdGhlIHNwZWNpZmllZCBjZWxscwoJCQl2YXIgY2VsbHMgPSBqUXVlcnkoInRkLiIrdGFibGUudGFibGVEbkRDb25maWcuZHJhZ0hhbmRsZSwgdGFibGUpOwoJCQljZWxscy5lYWNoKGZ1bmN0aW9uKCkgewoJCQkJLy8gVGhlIGNlbGwgaXMgYm91bmQgdG8gInRoaXMiCiAgICAgICAgICAgICAgICBqUXVlcnkodGhpcykubW91c2Vkb3duKGZ1bmN0aW9uKGV2KSB7CiAgICAgICAgICAgICAgICAgICAgalF1ZXJ5LnRhYmxlRG5ELmRyYWdPYmplY3QgPSB0aGlzLnBhcmVudE5vZGU7CiAgICAgICAgICAgICAgICAgICAgalF1ZXJ5LnRhYmxlRG5ELmN1cnJlbnRUYWJsZSA9IHRhYmxlOwogICAgICAgICAgICAgICAgICAgIGpRdWVyeS50YWJsZURuRC5tb3VzZU9mZnNldCA9IGpRdWVyeS50YWJsZURuRC5nZXRNb3VzZU9mZnNldCh0aGlzLCBldik7CiAgICAgICAgICAgICAgICAgICAgaWYgKGNvbmZpZy5vbkRyYWdTdGFydCkgewogICAgICAgICAgICAgICAgICAgICAgICAvLyBDYWxsIHRoZSBvbkRyb3AgbWV0aG9kIGlmIHRoZXJlIGlzIG9uZQogICAgICAgICAgICAgICAgICAgICAgICBjb25maWcub25EcmFnU3RhcnQodGFibGUsIHRoaXMpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgICB9KTsKCQkJfSkKCQl9IGVsc2UgewoJCQkvLyBGb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHksIHdlIGFkZCB0aGUgZXZlbnQgdG8gdGhlIHdob2xlIHJvdwoJICAgICAgICB2YXIgcm93cyA9IGpRdWVyeSgidHIiLCB0YWJsZSk7IC8vIGdldCBhbGwgdGhlIHJvd3MgYXMgYSB3cmFwcGVkIHNldAoJICAgICAgICByb3dzLmVhY2goZnVuY3Rpb24oKSB7CgkJCQkvLyBJdGVyYXRlIHRocm91Z2ggZWFjaCByb3csIHRoZSByb3cgaXMgYm91bmQgdG8gInRoaXMiCgkJCQl2YXIgcm93ID0galF1ZXJ5KHRoaXMpOwoJCQkJaWYgKCEgcm93Lmhhc0NsYXNzKCJub2RyYWciKSkgewoJICAgICAgICAgICAgICAgIHJvdy5tb3VzZWRvd24oZnVuY3Rpb24oZXYpIHsKCSAgICAgICAgICAgICAgICAgICAgaWYgKGV2LnRhcmdldC50YWdOYW1lID09ICJURCIpIHsKCSAgICAgICAgICAgICAgICAgICAgICAgIGpRdWVyeS50YWJsZURuRC5kcmFnT2JqZWN0ID0gdGhpczsKCSAgICAgICAgICAgICAgICAgICAgICAgIGpRdWVyeS50YWJsZURuRC5jdXJyZW50VGFibGUgPSB0YWJsZTsKCSAgICAgICAgICAgICAgICAgICAgICAgIGpRdWVyeS50YWJsZURuRC5tb3VzZU9mZnNldCA9IGpRdWVyeS50YWJsZURuRC5nZXRNb3VzZU9mZnNldCh0aGlzLCBldik7CgkgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY29uZmlnLm9uRHJhZ1N0YXJ0KSB7CgkgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ2FsbCB0aGUgb25Ecm9wIG1ldGhvZCBpZiB0aGVyZSBpcyBvbmUKCSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWcub25EcmFnU3RhcnQodGFibGUsIHRoaXMpOwoJICAgICAgICAgICAgICAgICAgICAgICAgfQoJICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwoJICAgICAgICAgICAgICAgICAgICB9CgkgICAgICAgICAgICAgICAgfSkuY3NzKCJjdXJzb3IiLCAibW92ZSIpOyAvLyBTdG9yZSB0aGUgdGFibGVEbkQgb2JqZWN0CgkJCQl9CgkJCX0pOwoJCX0KCX0sCgoJdXBkYXRlVGFibGVzOiBmdW5jdGlvbigpIHsKCQl0aGlzLmVhY2goZnVuY3Rpb24oKSB7CgkJCS8vIHRoaXMgaXMgbm93IGJvdW5kIHRvIGVhY2ggbWF0Y2hpbmcgdGFibGUKCQkJaWYgKHRoaXMudGFibGVEbkRDb25maWcpIHsKCQkJCWpRdWVyeS50YWJsZURuRC5tYWtlRHJhZ2dhYmxlKHRoaXMpOwoJCQl9CgkJfSkKCX0sCgogICAgLyoqIEdldCB0aGUgbW91c2UgY29vcmRpbmF0ZXMgZnJvbSB0aGUgZXZlbnQgKGFsbG93aW5nIGZvciBicm93c2VyIGRpZmZlcmVuY2VzKSAqLwogICAgbW91c2VDb29yZHM6IGZ1bmN0aW9uKGV2KXsKICAgICAgICBpZihldi5wYWdlWCB8fCBldi5wYWdlWSl7CiAgICAgICAgICAgIHJldHVybiB7eDpldi5wYWdlWCwgeTpldi5wYWdlWX07CiAgICAgICAgfQogICAgICAgIHJldHVybiB7CiAgICAgICAgICAgIHg6ZXYuY2xpZW50WCArIGRvY3VtZW50LmJvZHkuc2Nyb2xsTGVmdCAtIGRvY3VtZW50LmJvZHkuY2xpZW50TGVmdCwKICAgICAgICAgICAgeTpldi5jbGllbnRZICsgZG9jdW1lbnQuYm9keS5zY3JvbGxUb3AgIC0gZG9jdW1lbnQuYm9keS5jbGllbnRUb3AKICAgICAgICB9OwogICAgfSwKCiAgICAvKiogR2l2ZW4gYSB0YXJnZXQgZWxlbWVudCBhbmQgYSBtb3VzZSBldmVudCwgZ2V0IHRoZSBtb3VzZSBvZmZzZXQgZnJvbSB0aGF0IGVsZW1lbnQuCiAgICAgICAgVG8gZG8gdGhpcyB3ZSBuZWVkIHRoZSBlbGVtZW50J3MgcG9zaXRpb24gYW5kIHRoZSBtb3VzZSBwb3NpdGlvbiAqLwogICAgZ2V0TW91c2VPZmZzZXQ6IGZ1bmN0aW9uKHRhcmdldCwgZXYpIHsKICAgICAgICBldiA9IGV2IHx8IHdpbmRvdy5ldmVudDsKCiAgICAgICAgdmFyIGRvY1BvcyAgICA9IHRoaXMuZ2V0UG9zaXRpb24odGFyZ2V0KTsKICAgICAgICB2YXIgbW91c2VQb3MgID0gdGhpcy5tb3VzZUNvb3Jkcyhldik7CiAgICAgICAgcmV0dXJuIHt4Om1vdXNlUG9zLnggLSBkb2NQb3MueCwgeTptb3VzZVBvcy55IC0gZG9jUG9zLnl9OwogICAgfSwKCiAgICAvKiogR2V0IHRoZSBwb3NpdGlvbiBvZiBhbiBlbGVtZW50IGJ5IGdvaW5nIHVwIHRoZSBET00gdHJlZSBhbmQgYWRkaW5nIHVwIGFsbCB0aGUgb2Zmc2V0cyAqLwogICAgZ2V0UG9zaXRpb246IGZ1bmN0aW9uKGUpewogICAgICAgIHZhciBsZWZ0ID0gMDsKICAgICAgICB2YXIgdG9wICA9IDA7CiAgICAgICAgLyoqIFNhZmFyaSBmaXggLS0gdGhhbmtzIHRvIEx1aXMgQ2hhdG8gZm9yIHRoaXMhICovCiAgICAgICAgaWYgKGUub2Zmc2V0SGVpZ2h0ID09IDApIHsKICAgICAgICAgICAgLyoqIFNhZmFyaSAyIGRvZXNuJ3QgY29ycmVjdGx5IGdyYWIgdGhlIG9mZnNldFRvcCBvZiBhIHRhYmxlIHJvdwogICAgICAgICAgICB0aGlzIGlzIGRldGFpbGVkIGhlcmU6CiAgICAgICAgICAgIGh0dHA6Ly9qYWNvYi5wZWFyZ3JvdmUuY29tL2Jsb2cvMjAwNi90ZWNobmljYWwvdGFibGUtcm93LW9mZnNldHRvcC1idWctaW4tc2FmYXJpLwogICAgICAgICAgICB0aGUgc29sdXRpb24gaXMgbGlrZXdpc2Ugbm90ZWQgdGhlcmUsIGdyYWIgdGhlIG9mZnNldCBvZiBhIHRhYmxlIGNlbGwgaW4gdGhlIHJvdyAtIHRoZSBmaXJzdENoaWxkLgogICAgICAgICAgICBub3RlIHRoYXQgZmlyZWZveCB3aWxsIHJldHVybiBhIHRleHQgbm9kZSBhcyBhIGZpcnN0IGNoaWxkLCBzbyBkZXNpZ25pbmcgYSBtb3JlIHRob3JvdWdoCiAgICAgICAgICAgIHNvbHV0aW9uIG1heSBuZWVkIHRvIHRha2UgdGhhdCBpbnRvIGFjY291bnQsIGZvciBub3cgdGhpcyBzZWVtcyB0byB3b3JrIGluIGZpcmVmb3gsIHNhZmFyaSwgaWUgKi8KICAgICAgICAgICAgZSA9IGUuZmlyc3RDaGlsZDsgLy8gYSB0YWJsZSBjZWxsCiAgICAgICAgfQoJCWlmIChlICYmIGUub2Zmc2V0UGFyZW50KSB7CiAgICAgICAgCXdoaWxlIChlLm9mZnNldFBhcmVudCl7CiAgICAgICAgICAgIAlsZWZ0ICs9IGUub2Zmc2V0TGVmdDsKICAgICAgICAgICAgCXRvcCAgKz0gZS5vZmZzZXRUb3A7CiAgICAgICAgICAgIAllICAgICA9IGUub2Zmc2V0UGFyZW50OwogICAgICAgIAl9CgogICAgICAgIAlsZWZ0ICs9IGUub2Zmc2V0TGVmdDsKICAgICAgICAJdG9wICArPSBlLm9mZnNldFRvcDsKICAgICAgICB9CgogICAgICAgIHJldHVybiB7eDpsZWZ0LCB5OnRvcH07CiAgICB9LAoKICAgIG1vdXNlbW92ZTogZnVuY3Rpb24oZXYpIHsKICAgICAgICBpZiAoalF1ZXJ5LnRhYmxlRG5ELmRyYWdPYmplY3QgPT0gbnVsbCkgewogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICB2YXIgZHJhZ09iaiA9IGpRdWVyeShqUXVlcnkudGFibGVEbkQuZHJhZ09iamVjdCk7CiAgICAgICAgdmFyIGNvbmZpZyA9IGpRdWVyeS50YWJsZURuRC5jdXJyZW50VGFibGUudGFibGVEbkRDb25maWc7CiAgICAgICAgdmFyIG1vdXNlUG9zID0galF1ZXJ5LnRhYmxlRG5ELm1vdXNlQ29vcmRzKGV2KTsKICAgICAgICB2YXIgeSA9IG1vdXNlUG9zLnkgLSBqUXVlcnkudGFibGVEbkQubW91c2VPZmZzZXQueTsKICAgICAgICAvL2F1dG8gc2Nyb2xsIHRoZSB3aW5kb3cKCSAgICB2YXIgeU9mZnNldCA9IHdpbmRvdy5wYWdlWU9mZnNldDsKCSAJaWYgKGRvY3VtZW50LmFsbCkgewoJICAgICAgICAvLyBXaW5kb3dzIHZlcnNpb24KCSAgICAgICAgLy95T2Zmc2V0PWRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wOwoJICAgICAgICBpZiAodHlwZW9mIGRvY3VtZW50LmNvbXBhdE1vZGUgIT0gJ3VuZGVmaW5lZCcgJiYKCSAgICAgICAgICAgICBkb2N1bWVudC5jb21wYXRNb2RlICE9ICdCYWNrQ29tcGF0JykgewoJICAgICAgICAgICB5T2Zmc2V0ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcDsKCSAgICAgICAgfQoJICAgICAgICBlbHNlIGlmICh0eXBlb2YgZG9jdW1lbnQuYm9keSAhPSAndW5kZWZpbmVkJykgewoJICAgICAgICAgICB5T2Zmc2V0PWRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wOwoJICAgICAgICB9CgoJICAgIH0KCQkgICAgCgkJaWYgKG1vdXNlUG9zLnkteU9mZnNldCA8IGNvbmZpZy5zY3JvbGxBbW91bnQpIHsKCSAgICAJd2luZG93LnNjcm9sbEJ5KDAsIC1jb25maWcuc2Nyb2xsQW1vdW50KTsKCSAgICB9IGVsc2UgewogICAgICAgICAgICB2YXIgd2luZG93SGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0ID8gd2luZG93LmlubmVySGVpZ2h0CiAgICAgICAgICAgICAgICAgICAgOiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0ID8gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCA6IGRvY3VtZW50LmJvZHkuY2xpZW50SGVpZ2h0OwogICAgICAgICAgICBpZiAod2luZG93SGVpZ2h0LShtb3VzZVBvcy55LXlPZmZzZXQpIDwgY29uZmlnLnNjcm9sbEFtb3VudCkgewogICAgICAgICAgICAgICAgd2luZG93LnNjcm9sbEJ5KDAsIGNvbmZpZy5zY3JvbGxBbW91bnQpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKCiAgICAgICAgaWYgKHkgIT0galF1ZXJ5LnRhYmxlRG5ELm9sZFkpIHsKICAgICAgICAgICAgLy8gd29yayBvdXQgaWYgd2UncmUgZ29pbmcgdXAgb3IgZG93bi4uLgogICAgICAgICAgICB2YXIgbW92aW5nRG93biA9IHkgPiBqUXVlcnkudGFibGVEbkQub2xkWTsKICAgICAgICAgICAgLy8gdXBkYXRlIHRoZSBvbGQgdmFsdWUKICAgICAgICAgICAgalF1ZXJ5LnRhYmxlRG5ELm9sZFkgPSB5OwogICAgICAgICAgICAvLyB1cGRhdGUgdGhlIHN0eWxlIHRvIHNob3cgd2UncmUgZHJhZ2dpbmcKCQkJaWYgKGNvbmZpZy5vbkRyYWdDbGFzcykgewoJCQkJZHJhZ09iai5hZGRDbGFzcyhjb25maWcub25EcmFnQ2xhc3MpOwoJCQl9IGVsc2UgewoJICAgICAgICAgICAgZHJhZ09iai5jc3MoY29uZmlnLm9uRHJhZ1N0eWxlKTsKCQkJfQogICAgICAgICAgICAvLyBJZiB3ZSdyZSBvdmVyIGEgcm93IHRoZW4gbW92ZSB0aGUgZHJhZ2dlZCByb3cgdG8gdGhlcmUgc28gdGhhdCB0aGUgdXNlciBzZWVzIHRoZQogICAgICAgICAgICAvLyBlZmZlY3QgZHluYW1pY2FsbHkKICAgICAgICAgICAgdmFyIGN1cnJlbnRSb3cgPSBqUXVlcnkudGFibGVEbkQuZmluZERyb3BUYXJnZXRSb3coZHJhZ09iaiwgeSk7CiAgICAgICAgICAgIGlmIChjdXJyZW50Um93KSB7CiAgICAgICAgICAgICAgICAvLyBUT0RPIHdvcnJ5IGFib3V0IHdoYXQgaGFwcGVucyB3aGVuIHRoZXJlIGFyZSBtdWx0aXBsZSBUQk9ESUVTCiAgICAgICAgICAgICAgICBpZiAobW92aW5nRG93biAmJiBqUXVlcnkudGFibGVEbkQuZHJhZ09iamVjdCAhPSBjdXJyZW50Um93KSB7CiAgICAgICAgICAgICAgICAgICAgalF1ZXJ5LnRhYmxlRG5ELmRyYWdPYmplY3QucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoalF1ZXJ5LnRhYmxlRG5ELmRyYWdPYmplY3QsIGN1cnJlbnRSb3cubmV4dFNpYmxpbmcpOwogICAgICAgICAgICAgICAgfSBlbHNlIGlmICghIG1vdmluZ0Rvd24gJiYgalF1ZXJ5LnRhYmxlRG5ELmRyYWdPYmplY3QgIT0gY3VycmVudFJvdykgewogICAgICAgICAgICAgICAgICAgIGpRdWVyeS50YWJsZURuRC5kcmFnT2JqZWN0LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGpRdWVyeS50YWJsZURuRC5kcmFnT2JqZWN0LCBjdXJyZW50Um93KTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfSwKCiAgICAvKiogV2UncmUgb25seSB3b3JyaWVkIGFib3V0IHRoZSB5IHBvc2l0aW9uIHJlYWxseSwgYmVjYXVzZSB3ZSBjYW4gb25seSBtb3ZlIHJvd3MgdXAgYW5kIGRvd24gKi8KICAgIGZpbmREcm9wVGFyZ2V0Um93OiBmdW5jdGlvbihkcmFnZ2VkUm93LCB5KSB7CiAgICAgICAgdmFyIHJvd3MgPSBqUXVlcnkudGFibGVEbkQuY3VycmVudFRhYmxlLnJvd3M7CiAgICAgICAgZm9yICh2YXIgaT0wOyBpPHJvd3MubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgdmFyIHJvdyA9IHJvd3NbaV07CiAgICAgICAgICAgIHZhciByb3dZICAgID0gdGhpcy5nZXRQb3NpdGlvbihyb3cpLnk7CiAgICAgICAgICAgIHZhciByb3dIZWlnaHQgPSBwYXJzZUludChyb3cub2Zmc2V0SGVpZ2h0KS8yOwogICAgICAgICAgICBpZiAocm93Lm9mZnNldEhlaWdodCA9PSAwKSB7CiAgICAgICAgICAgICAgICByb3dZID0gdGhpcy5nZXRQb3NpdGlvbihyb3cuZmlyc3RDaGlsZCkueTsKICAgICAgICAgICAgICAgIHJvd0hlaWdodCA9IHBhcnNlSW50KHJvdy5maXJzdENoaWxkLm9mZnNldEhlaWdodCkvMjsKICAgICAgICAgICAgfQogICAgICAgICAgICAvLyBCZWNhdXNlIHdlIGFsd2F5cyBoYXZlIHRvIGluc2VydCBiZWZvcmUsIHdlIG5lZWQgdG8gb2Zmc2V0IHRoZSBoZWlnaHQgYSBiaXQKICAgICAgICAgICAgaWYgKCh5ID4gcm93WSAtIHJvd0hlaWdodCkgJiYgKHkgPCAocm93WSArIHJvd0hlaWdodCkpKSB7CiAgICAgICAgICAgICAgICAvLyB0aGF0J3MgdGhlIHJvdyB3ZSdyZSBvdmVyCgkJCQkvLyBJZiBpdCdzIHRoZSBzYW1lIGFzIHRoZSBjdXJyZW50IHJvdywgaWdub3JlIGl0CgkJCQlpZiAocm93ID09IGRyYWdnZWRSb3cpIHtyZXR1cm4gbnVsbDt9CiAgICAgICAgICAgICAgICB2YXIgY29uZmlnID0galF1ZXJ5LnRhYmxlRG5ELmN1cnJlbnRUYWJsZS50YWJsZURuRENvbmZpZzsKICAgICAgICAgICAgICAgIGlmIChjb25maWcub25BbGxvd0Ryb3ApIHsKICAgICAgICAgICAgICAgICAgICBpZiAoY29uZmlnLm9uQWxsb3dEcm9wKGRyYWdnZWRSb3csIHJvdykpIHsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJvdzsKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9IGVsc2UgewoJCQkJCS8vIElmIGEgcm93IGhhcyBub2Ryb3AgY2xhc3MsIHRoZW4gZG9uJ3QgYWxsb3cgZHJvcHBpbmcgKGluc3BpcmVkIGJ5IEpvaG4gVGFyciBhbmQgRmFtaWMpCiAgICAgICAgICAgICAgICAgICAgdmFyIG5vZHJvcCA9IGpRdWVyeShyb3cpLmhhc0NsYXNzKCJub2Ryb3AiKTsKICAgICAgICAgICAgICAgICAgICBpZiAoISBub2Ryb3ApIHsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJvdzsKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICByZXR1cm4gcm93OwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiBudWxsOwogICAgfSwKCiAgICBtb3VzZXVwOiBmdW5jdGlvbihlKSB7CiAgICAgICAgaWYgKGpRdWVyeS50YWJsZURuRC5jdXJyZW50VGFibGUgJiYgalF1ZXJ5LnRhYmxlRG5ELmRyYWdPYmplY3QpIHsKICAgICAgICAgICAgdmFyIGRyb3BwZWRSb3cgPSBqUXVlcnkudGFibGVEbkQuZHJhZ09iamVjdDsKICAgICAgICAgICAgdmFyIGNvbmZpZyA9IGpRdWVyeS50YWJsZURuRC5jdXJyZW50VGFibGUudGFibGVEbkRDb25maWc7CiAgICAgICAgICAgIC8vIElmIHdlIGhhdmUgYSBkcmFnT2JqZWN0LCB0aGVuIHdlIG5lZWQgdG8gcmVsZWFzZSBpdCwKICAgICAgICAgICAgLy8gVGhlIHJvdyB3aWxsIGFscmVhZHkgaGF2ZSBiZWVuIG1vdmVkIHRvIHRoZSByaWdodCBwbGFjZSBzbyB3ZSBqdXN0IHJlc2V0IHN0dWZmCgkJCWlmIChjb25maWcub25EcmFnQ2xhc3MpIHsKCSAgICAgICAgICAgIGpRdWVyeShkcm9wcGVkUm93KS5yZW1vdmVDbGFzcyhjb25maWcub25EcmFnQ2xhc3MpOwoJCQl9IGVsc2UgewoJICAgICAgICAgICAgalF1ZXJ5KGRyb3BwZWRSb3cpLmNzcyhjb25maWcub25Ecm9wU3R5bGUpOwoJCQl9CiAgICAgICAgICAgIGpRdWVyeS50YWJsZURuRC5kcmFnT2JqZWN0ICAgPSBudWxsOwogICAgICAgICAgICBpZiAoY29uZmlnLm9uRHJvcCkgewogICAgICAgICAgICAgICAgLy8gQ2FsbCB0aGUgb25Ecm9wIG1ldGhvZCBpZiB0aGVyZSBpcyBvbmUKICAgICAgICAgICAgICAgIGNvbmZpZy5vbkRyb3AoalF1ZXJ5LnRhYmxlRG5ELmN1cnJlbnRUYWJsZSwgZHJvcHBlZFJvdyk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgalF1ZXJ5LnRhYmxlRG5ELmN1cnJlbnRUYWJsZSA9IG51bGw7IC8vIGxldCBnbyBvZiB0aGUgdGFibGUgdG9vCiAgICAgICAgfQogICAgfSwKCiAgICBzZXJpYWxpemU6IGZ1bmN0aW9uKCkgewogICAgICAgIGlmIChqUXVlcnkudGFibGVEbkQuY3VycmVudFRhYmxlKSB7CiAgICAgICAgICAgIHJldHVybiBqUXVlcnkudGFibGVEbkQuc2VyaWFsaXplVGFibGUoalF1ZXJ5LnRhYmxlRG5ELmN1cnJlbnRUYWJsZSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgcmV0dXJuICJFcnJvcjogTm8gVGFibGUgaWQgc2V0LCB5b3UgbmVlZCB0byBzZXQgYW4gaWQgb24geW91ciB0YWJsZSBhbmQgZXZlcnkgcm93IjsKICAgICAgICB9CiAgICB9LAoKCXNlcmlhbGl6ZVRhYmxlOiBmdW5jdGlvbih0YWJsZSkgewogICAgICAgIHZhciByZXN1bHQgPSAiIjsKICAgICAgICB2YXIgdGFibGVJZCA9IHRhYmxlLmlkOwogICAgICAgIHZhciByb3dzID0gdGFibGUucm93czsKICAgICAgICBmb3IgKHZhciBpPTA7IGk8cm93cy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICBpZiAocmVzdWx0Lmxlbmd0aCA+IDApIHJlc3VsdCArPSAiJiI7CiAgICAgICAgICAgIHZhciByb3dJZCA9IHJvd3NbaV0uaWQ7CiAgICAgICAgICAgIGlmIChyb3dJZCAmJiByb3dJZCAmJiB0YWJsZS50YWJsZURuRENvbmZpZyAmJiB0YWJsZS50YWJsZURuRENvbmZpZy5zZXJpYWxpemVSZWdleHApIHsKICAgICAgICAgICAgICAgIHJvd0lkID0gcm93SWQubWF0Y2godGFibGUudGFibGVEbkRDb25maWcuc2VyaWFsaXplUmVnZXhwKVswXTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgcmVzdWx0ICs9IHRhYmxlSWQgKyAnW109JyArIHJvd0lkOwogICAgICAgIH0KICAgICAgICByZXR1cm4gcmVzdWx0OwoJfSwKCglzZXJpYWxpemVUYWJsZXM6IGZ1bmN0aW9uKCkgewogICAgICAgIHZhciByZXN1bHQgPSAiIjsKICAgICAgICB0aGlzLmVhY2goZnVuY3Rpb24oKSB7CgkJCS8vIHRoaXMgaXMgbm93IGJvdW5kIHRvIGVhY2ggbWF0Y2hpbmcgdGFibGUKCQkJcmVzdWx0ICs9IGpRdWVyeS50YWJsZURuRC5zZXJpYWxpemVUYWJsZSh0aGlzKTsKCQl9KTsKICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgfQoKfQoKalF1ZXJ5LmZuLmV4dGVuZCgKCXsKCQl0YWJsZURuRCA6IGpRdWVyeS50YWJsZURuRC5idWlsZCwKCQl0YWJsZURuRFVwZGF0ZSA6IGpRdWVyeS50YWJsZURuRC51cGRhdGVUYWJsZXMsCgkJdGFibGVEbkRTZXJpYWxpemU6IGpRdWVyeS50YWJsZURuRC5zZXJpYWxpemVUYWJsZXMKCX0KKTs=]]></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+Cgl7L2lmfQoKCXsqIGFuZCBub3cgdGhlIGZvcm0gaXRzZWxmICp9Cgl7JGZiX2Zvcm1fc3RhcnR9Cgk8ZGl2PnskZmJfaGlkZGVufTwvZGl2Pgo=]]></data>
	</file>
	<file>
	  <filename>/includes/Sample_Form.xml</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPGZvcm0gaWQ9IjQiCglhbGlhcz0ic2FtcGxlX2Zvcm0iPgoJCTxmb3JtX25hbWU+PCFbQ0RBVEFbU2FtcGxlIEZvcm1dXT48L2Zvcm1fbmFtZT4KCQk8YXR0cmlidXRlIGtleT0ic3VibWl0X2FjdGlvbiI+PCFbQ0RBVEFbdGV4dF1dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJpbnB1dF9idXR0b25fc2FmZXR5Ij48IVtDREFUQVswXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9InVzZV9jYXRjaGEiPjwhW0NEQVRBW11dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJ0aXRsZV91c2VyX2NhcHRjaGEiPjwhW0NEQVRBW1BsZWFzZSBjb25maXJtIHRoYXQgeW91IGFyZSBub3QgYSBzY3JpcHQgYnkgZW50ZXJpbmcgdGhlIGxldHRlcnMgZnJvbSB0aGUgaW1hZ2UuXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9InByZXZfYnV0dG9uX3RleHQiPjwhW0NEQVRBW0JhY2suLi5dXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0iaW5saW5lIj48IVtDREFUQVswXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9InN1Ym1pdF9qYXZhc2NyaXB0Ij48IVtDREFUQVtdXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0iZm9ybV90ZW1wbGF0ZSI+PCFbQ0RBVEFbeyogREVGQVVMVCBGT1JNIExBWU9VVCAvIHB1cmUgQ1NTICp9DQp7JGZiX2Zvcm1faGVhZGVyfQ0Ke2lmICRmYl9mb3JtX2RvbmUgPT0gMX0NCgl7KiBUaGlzIGZpcnN0IHNlY3Rpb24gaXMgZm9yIGRpc3BsYXlpbmcgc3VibWlzc2lvbiBlcnJvcnMgKn0NCgl7aWYgJGZiX3N1Ym1pc3Npb25fZXJyb3J9DQoJCTxkaXYgY2xhc3M9ImVycm9yX21lc3NhZ2UiPnskZmJfc3VibWlzc2lvbl9lcnJvcn08L2Rpdj4NCgkJe2lmICRmYl9zaG93X3N1Ym1pc3Npb25fZXJyb3JzfQ0KCQkJPGRpdiBjbGFzcz0iZXJyb3IiPg0KCQkJPHVsPg0KCQkJe2ZvcmVhY2ggZnJvbT0kZmJfc3VibWlzc2lvbl9lcnJvcl9saXN0IGl0ZW09dGhpc0Vycn0NCgkJCQk8bGk+eyR0aGlzRXJyfTwvbGk+DQoJCQl7L2ZvcmVhY2h9DQoJCQk8L3VsPg0KCQk8L2Rpdj4NCgkJey9pZn0NCgl7L2lmfQ0Ke2Vsc2V9DQoJeyogdGhpcyBzZWN0aW9uIGlzIGZvciBkaXNwbGF5aW5nIHRoZSBmb3JtICp9DQoJeyogd2Ugc3RhcnQgd2l0aCB2YWxpZGF0aW9uIGVycm9ycyAqfQ0KCXtpZiAkZmJfZm9ybV9oYXNfdmFsaWRhdGlvbl9lcnJvcnN9DQoJCTxkaXYgY2xhc3M9ImVycm9yX21lc3NhZ2UiPg0KCQk8dWw+DQoJCXtmb3JlYWNoIGZyb209JGZiX2Zvcm1fdmFsaWRhdGlvbl9lcnJvcnMgaXRlbT10aGlzRXJyfQ0KCQkJPGxpPnskdGhpc0Vycn08L2xpPg0KCQl7L2ZvcmVhY2h9DQoJCTwvdWw+DQoJCTwvZGl2Pg0KCXsvaWZ9DQoJe2lmICRjYXB0Y2hhX2Vycm9yfQ0KCQk8ZGl2IGNsYXNzPSJlcnJvcl9tZXNzYWdlIj57JGNhcHRjaGFfZXJyb3J9PC9kaXY+DQoJey9pZn0NCg0KCXsqIGFuZCBub3cgdGhlIGZvcm0gaXRzZWxmICp9DQoJeyRmYl9mb3JtX3N0YXJ0fQ0KCTxkaXY+eyRmYl9oaWRkZW59PC9kaXY+DQoJPGRpdntpZiAkY3NzX2NsYXNzICE9ICcnfSBjbGFzcz0ieyRjc3NfY2xhc3N9InsvaWZ9Pg0KCXtpZiAkdG90YWxfcGFnZXMgZ3QgMX08c3Bhbj57JHRpdGxlX3BhZ2VfeF9vZl95fTwvc3Bhbj57L2lmfQ0KCXtmb3JlYWNoIGZyb209JGZpZWxkcyBpdGVtPWVudHJ5fQ0KCQl7aWYgJGVudHJ5LT5kaXNwbGF5ID09IDF9DQogICAgICAgIAl7c3RyaXB9DQogICAgICAgICAJe2lmICRlbnRyeS0+bmVlZHNfZGl2ID09IDF9DQogICAgICAgICAgICAJPGRpdg0KICAgICAgICAgICAgCXtpZiAkZW50cnktPnJlcXVpcmVkID09IDEgfHwgJGVudHJ5LT5jc3NfY2xhc3MgIT0gJyd9IGNsYXNzPSINCiAgICAgICAgICAgICAgCQl7aWYgJGVudHJ5LT5yZXF1aXJlZCA9PSAxfQ0KICAgICAgICAgICAgICAgIAkJcmVxdWlyZWQNCiAgICAgICAgICAgICAgCQl7L2lmfQ0KICAgICAgICAgICAgICAJCXtpZiAkZW50cnktPnJlcXVpcmVkID09IDEgJiYgJGVudHJ5LT5jc3NfY2xhc3MgIT0gJyd9IHsvaWZ9DQogICAgICAgICAgICAgIAkJe2lmICRlbnRyeS0+Y3NzX2NsYXNzICE9ICcnfQ0KICAgICAgICAgICAgICAgIAkJeyRlbnRyeS0+Y3NzX2NsYXNzfQ0KICAgICAgICAgICAgICAJCXsvaWZ9DQogICAgICAgICAgICAgIAkJIg0KICAgICAgICAgICAgCXsvaWZ9DQogICAgICAgICAgICAJPg0KICAgICAgICAgCXsvaWZ9DQogICAgICAgICAJe2lmICRlbnRyeS0+aGlkZV9uYW1lID09IDB9DQogICAgICAgICAgICAJPGxhYmVse2lmICRlbnRyeS0+bXVsdGlwbGVfcGFydHMgIT0gMX0gZm9yPSJ7JGVudHJ5LT5pbnB1dF9pZH0iey9pZn0+eyRlbnRyeS0+bmFtZX0NCiAgICAgICAgICAgIAl7aWYgJGVudHJ5LT5yZXF1aXJlZF9zeW1ib2wgIT0gJyd9DQogICAgICAgICAgICAgICAJCXskZW50cnktPnJlcXVpcmVkX3N5bWJvbH0NCiAgICAgICAgICAgIAl7L2lmfQ0KICAgICAgICAgICAgCTwvbGFiZWw+DQogICAgICAgICAJey9pZn0NCiAgICAgICAgIAl7aWYgJGVudHJ5LT5tdWx0aXBsZV9wYXJ0cyA9PSAxfQ0KICAgICAgICAgICAgCXtzZWN0aW9uIG5hbWU9bnVtbG9vcCBsb29wPSRlbnRyeS0+aW5wdXR9DQogICAgICAgICAgICAgICAJCXtpZiAkZW50cnktPmxhYmVsX3BhcnRzID09IDF9DQogICAgICAgICAgICAgICAJCQk8ZGl2PnskZW50cnktPmlucHV0W251bWxvb3BdLT5pbnB1dH0mbmJzcDt7JGVudHJ5LT5pbnB1dFtudW1sb29wXS0+bmFtZX08L2Rpdj4NCiAgICAgICAgICAgICAgIAkJe2Vsc2V9DQogICAgICAgICAgICAgICAJCQl7JGVudHJ5LT5pbnB1dFtudW1sb29wXS0+aW5wdXR9DQogICAgICAgICAgICAgICAJCXsvaWZ9DQogICAgICAgICAgICAgICAJCXtpZiAkZW50cnktPmlucHV0W251bWxvb3BdLT5vcH17JGVudHJ5LT5pbnB1dFtudW1sb29wXS0+b3B9ey9pZn0NCiAgICAgICAgICAgIAl7L3NlY3Rpb259DQogICAgICAgICAJe2Vsc2V9DQogICAgICAgICAgICAJe2lmICRlbnRyeS0+c21hcnR5X2V2YWwgPT0gJzEnfXtldmFsIHZhcj0kZW50cnktPmlucHV0fXtlbHNlfXskZW50cnktPmlucHV0fXsvaWZ9DQogICAgICAgICAJey9pZn0NCiAgICAgICAgIAl7aWYgJGVudHJ5LT52YWxpZCA9PSAwfSAmbHQ7LS0tIHskZW50cnktPmVycm9yfXsvaWZ9DQogICAgICAgICAJe2lmICRlbnRyeS0+bmVlZHNfZGl2ID09IDF9DQogICAgICAgICAgICAJPC9kaXY+DQogICAgICAgICAJey9pZn0NCiAgICAgICAgIAl7L3N0cmlwfQ0KICAgICAJey9pZn0NCgl7L2ZvcmVhY2h9DQoJe2lmICRoYXNfY2FwdGNoYSA9PSAxfQ0KCQk8ZGl2IGNsYXNzPSJjYXB0Y2hhIj57JGdyYXBoaWNfY2FwdGNoYX17JHRpdGxlX2NhcHRjaGF9PGJyIC8+eyRpbnB1dF9jYXB0Y2hhfTwvZGl2Pg0KCXsvaWZ9DQoJPGRpdiBjbGFzcz0ic3VibWl0Ij57JHByZXZ9eyRzdWJtaXR9PC9kaXY+DQoJPC9kaXY+DQoJeyRmYl9mb3JtX2VuZH0NCnsvaWZ9DQp7JGZiX2Zvcm1fZm9vdGVyfV1dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJ0aXRsZV9wb3NpdGlvbiI+PCFbQ0RBVEFbbGVmdF1dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJsaXN0X2RlbGltaXRlciI+PCFbQ0RBVEFbIC0gXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9InJlcXVpcmVkX2ZpZWxkX3N5bWJvbCI+PCFbQ0RBVEFbKl1dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJ1bnNwZWNpZmllZCI+PCFbQ0RBVEFbW3Vuc3BlY2lmaWVkXV1dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJuZXh0X2J1dHRvbl90ZXh0Ij48IVtDREFUQVtDb250aW51ZS4uLl1dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJzdWJtaXRfYnV0dG9uX3RleHQiPjwhW0NEQVRBW1NlbmQgRmVlZGJhY2tdXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0iZm9ybV9kaXNwbGF5dHlwZSI+PCFbQ0RBVEFbdGFiXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9InJlZGlyZWN0X3BhZ2UiPjwhW0NEQVRBWy0xXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9ImNzc19jbGFzcyI+PCFbQ0RBVEFbZm9ybWJ1aWxkZXJmb3JtXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9ImNhcHRjaGFfd3JvbmciPjwhW0NEQVRBW0NhcHRjaGEgd2FzIG5vdCBjb3JyZWN0Ll1dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJzdWJtaXRfcmVzcG9uc2UiPjwhW0NEQVRBWzxoMT5UaGFua3MhPC9oMT4NCg0KPHA+WW91ciBmZWVkYmFjayBoZWxwcyBtZSBtYWtlIHRoaXMgYSBiZXR0ZXIgbW9kdWxlLjwvcD4NCg0KPHA+SWYgeW91J2QgbGlrZSB0byBjb250cmlidXRlIHRvIHRoZSBmdXR1cmUgZGV2ZWxvcG1lbnQgb2YgRm9ybUJ1aWxkZXIsIHlvdSBjYW4gbWFrZSBhIGRvbmF0aW9uIGJlbG93LiBJIHdpbGwgYmUgaGFwcHkgdG8gZ2l2ZSBkb25vcnMgY3JlZGl0IGFzIGEgc3BvbnNvciBpbiB0aGUgRm9ybUJ1aWxkZXIgaGVscC4gRXZlcnkgYml0IGhlbHBzITwvcD4NCg0KPGZvcm0gYWN0aW9uPSJodHRwczovL3d3dy5wYXlwYWwuY29tL2NnaS1iaW4vd2Vic2NyIiBtZXRob2Q9InBvc3QiPg0KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY21kIiB2YWx1ZT0iX3MteGNsaWNrIj4NCjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Imhvc3RlZF9idXR0b25faWQiIHZhbHVlPSIyMDU3MjMxIj4NCjxpbnB1dCB0eXBlPSJpbWFnZSIgc3JjPSJodHRwczovL3d3dy5wYXlwYWwuY29tL2VuX1VTL2kvYnRuL2J0bl9kb25hdGVfU00uZ2lmIiBib3JkZXI9IjAiIG5hbWU9InN1Ym1pdCIgYWx0PSIiPg0KPGltZyBhbHQ9IiIgYm9yZGVyPSIwIiBzcmM9Imh0dHBzOi8vd3d3LnBheXBhbC5jb20vZW5fVVMvaS9zY3IvcGl4ZWwuZ2lmIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj4NCjwvZm9ybT4NCl1dPjwvYXR0cmlidXRlPgoJPGZpZWxkIGlkPSIyNiIKCQl0eXBlPSJGaWVsZHNldFN0YXJ0IgoJCXZhbGlkYXRpb25fdHlwZT0iIgoJCW9yZGVyX2J5PSIyIgoJCXJlcXVpcmVkPSIwIgoJCWhpZGVfbGFiZWw9IjAiCgkJYWxpYXM9IiI+CgkJCTxmaWVsZF9uYW1lPjwhW0NEQVRBW0ZpZWxkc2V0IFN0YXJ0XV0+PC9maWVsZF9uYW1lPgoJCQk8b3B0aW9ucz4KCQkJPG9wdGlvbiBuYW1lPSJsZWdlbmQiPjwhW0NEQVRBW0hlbHAgSW1wcm92ZSBGb3JtIEJ1aWxkZXJdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJjc3NfY2xhc3MiPjwhW0NEQVRBW11dPjwvb3B0aW9uPgoJCQk8dmFsdWU+PC92YWx1ZT4KCQkJPC9vcHRpb25zPgo8L2ZpZWxkPgoJPGZpZWxkIGlkPSIyNyIKCQl0eXBlPSJEaXNwb3NpdGlvbkVtYWlsIgoJCXZhbGlkYXRpb25fdHlwZT0iIgoJCW9yZGVyX2J5PSIzIgoJCXJlcXVpcmVkPSIwIgoJCWhpZGVfbGFiZWw9IjAiCgkJYWxpYXM9IiI+CgkJCTxmaWVsZF9uYW1lPjwhW0NEQVRBW1NlbmQgSXRdXT48L2ZpZWxkX25hbWU+CgkJCTxvcHRpb25zPgoJCQk8b3B0aW9uIG5hbWU9ImVtYWlsX3N1YmplY3QiPjwhW0NEQVRBW0Zvcm1CdWlsZGVyIFNhbXBsZSBGb3JtIFN1Ym1pc3Npb25dXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJlbWFpbF9mcm9tX25hbWUiPjwhW0NEQVRBW0Zvcm0gQnVpbGRlciBJbnN0YWxsYXRpb25dXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJlbWFpbF9mcm9tX2FkZHJlc3MiPjwhW0NEQVRBW3lvdUB5b3VyaG9zdC5jb21dXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJkZXN0aW5hdGlvbl9hZGRyZXNzIj48IVtDREFUQVtzamdAY21zbW9kdWxlcy5jb21dXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJlbWFpbF90ZW1wbGF0ZSI+PCFbQ0RBVEFbPGgxPlNvbWVvbmUncyBUZXN0aW5nIGEgRm9ybUJ1aWxkZXIgU3VibWlzc2lvbiE8L2gxPgo8c3Ryb25nPkZvcm0gTmFtZTwvc3Ryb25nPjogeyRzdWJfZm9ybV9uYW1lfTxiciAvPgo8c3Ryb25nPkRhdGUgb2YgU3VibWlzc2lvbjwvc3Ryb25nPjogeyRzdWJfZGF0ZX08YnIgLz4KPHN0cm9uZz5Zb3VyIHNlcnZlcjwvc3Ryb25nPjogeyRzdWJfaG9zdH08YnIgLz4KPHN0cm9uZz5JUCBhZGRyZXNzIG9mIHBlcnNvbiB1c2luZyBmb3JtPC9zdHJvbmc+OiB7JHN1Yl9zb3VyY2VfaXB9PGJyIC8+CjxzdHJvbmc+VVJMIG9mIHBhZ2UgY29udGFpbmluZyBmb3JtPC9zdHJvbmc+OiB7JHN1Yl91cmx9PGJyIC8+Cgo8aHIgLz4KPHN0cm9uZz5Nb2R1bGVzIHlvdSdsbCBiZSB1c2luZyB0b2dldGhlcjwvc3Ryb25nPjogeyRtb2R1bGVzX3lvdV9sbF9iZV91c2luZ308YnIgLz4KPHN0cm9uZz5XaGF0IHdpbGwgeW91IHBlcnNvbmFsbHkgYmUgZG9pbmcgb24geW91ciBDTVMgTVMgc2l0ZT88L3N0cm9uZz46IHskd2hhdF93aWxsX3lvdX08YnIgLz4KPHN0cm9uZz5XaGVyZSBhcmUgeW91IGZyb20/PC9zdHJvbmc+OiB7JHdoZXJlX2FyZV95b3VfZnJvbV99PGJyIC8+CjxzdHJvbmc+RG8geW91IGhhdmUgYW55IGNvbW1lbnRzIC8gZmVlZGJhY2sgZm9yIG1lPzwvc3Ryb25nPjogeyRkb195b3VfaGF2ZV9hbnl9PGJyIC8+Cl1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImVtYWlsX2VuY29kaW5nIj48IVtDREFUQVt1dGYtOF1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9Imh0bWxfZW1haWwiPjwhW0NEQVRBWzFdXT48L29wdGlvbj4KCQkJPHZhbHVlPjwvdmFsdWU+CgkJCTwvb3B0aW9ucz4KPC9maWVsZD4KCTxmaWVsZCBpZD0iMjgiCgkJdHlwZT0iU3RhdGljVGV4dEZpZWxkIgoJCXZhbGlkYXRpb25fdHlwZT0iIgoJCW9yZGVyX2J5PSI0IgoJCXJlcXVpcmVkPSIwIgoJCWhpZGVfbGFiZWw9IjAiCgkJYWxpYXM9IiI+CgkJCTxmaWVsZF9uYW1lPjwhW0NEQVRBW1dlbGNvbWUhXV0+PC9maWVsZF9uYW1lPgoJCQk8b3B0aW9ucz4KCQkJPG9wdGlvbiBuYW1lPSJ0ZXh0Ij48IVtDREFUQVtUaGFua3MgZm9yIHRyeWluZyBvdXQgRm9ybUJ1aWxkZXIuIFlvdSBjYW4gdXNlIHRoaXMgZm9ybSB0byBwcm92aWRlIG1lIHdpdGggZmVlZGJhY2sgYWJvdXQgaG93IHlvdSB3aWxsIGJlIHVzaW5nIEZvcm0gQnVpbGRlciwgc28gSSBjYW4gYmVzdCBhbGxvY2F0ZSByZXNvdXJjZXMgZm9yIGZ1dHVyZSBkZXZlbG9wbWVudC4gVGhhbmtzLCBfX19TYW11ZWxfX19dXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJjc3NfY2xhc3MiPjwhW0NEQVRBW21lc3NhZ2VdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJmaWVsZF9hbGlhcyI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CgkJCTx2YWx1ZT48L3ZhbHVlPgoJCQk8L29wdGlvbnM+CjwvZmllbGQ+Cgk8ZmllbGQgaWQ9IjI5IgoJCXR5cGU9IkNoZWNrYm94R3JvdXBGaWVsZCIKCQl2YWxpZGF0aW9uX3R5cGU9IiIKCQlvcmRlcl9ieT0iNSIKCQlyZXF1aXJlZD0iMCIKCQloaWRlX2xhYmVsPSIwIgoJCWFsaWFzPSIiPgoJCQk8ZmllbGRfbmFtZT48IVtDREFUQVtNb2R1bGVzIHlvdSdsbCBiZSB1c2luZyB0b2dldGhlcl1dPjwvZmllbGRfbmFtZT4KCQkJPG9wdGlvbnM+CgkJCTxvcHRpb24gbmFtZT0ibm9fZW1wdHkiPjwhW0NEQVRBW11dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImJveF9uYW1lIj48IVtDREFUQVtGb3JtQnVpbGRlcl1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImJveF9uYW1lIj48IVtDREFUQVtGb3JtQnJvd3Nlcl1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImJveF9uYW1lIj48IVtDREFUQVtGcm9udCBFbmQgVXNlcnNdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfbmFtZSI+PCFbQ0RBVEFbTmV3c2xldHRlciBNYWRlIFNpbXBsZSAoTk1TKV1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImJveF9uYW1lIj48IVtDREFUQVtDYXRhbG9nZXJdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfbmFtZSI+PCFbQ0RBVEFbT3RoZXIocyldXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfY2hlY2tlZCI+PCFbQ0RBVEFbRm9ybUJ1aWxkZXJdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfY2hlY2tlZCI+PCFbQ0RBVEFbRm9ybUJyb3dzZXJdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfY2hlY2tlZCI+PCFbQ0RBVEFbRkVVXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X2NoZWNrZWQiPjwhW0NEQVRBW05NU11dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImJveF9jaGVja2VkIj48IVtDREFUQVtDYXRhbG9nZXJdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfY2hlY2tlZCI+PCFbQ0RBVEFbT3RoZXIocyldXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfdW5jaGVja2VkIj48IVtDREFUQVsobm90IEZvcm1CdWlsZGVyKV1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImJveF91bmNoZWNrZWQiPjwhW0NEQVRBWyhub3QgRm9ybUJyb3dzZXIpXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X3VuY2hlY2tlZCI+PCFbQ0RBVEFbKG5vdCBGRVUpXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X3VuY2hlY2tlZCI+PCFbQ0RBVEFbKG5vdCBOTVMpXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X3VuY2hlY2tlZCI+PCFbQ0RBVEFbKG5vdCBDYXRhbG9nZXIpXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X3VuY2hlY2tlZCI+PCFbQ0RBVEFbKG5vIE90aGVycyldXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfaXNfc2V0Ij48IVtDREFUQVt5XV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X2lzX3NldCI+PCFbQ0RBVEFbbl1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImJveF9pc19zZXQiPjwhW0NEQVRBW25dXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfaXNfc2V0Ij48IVtDREFUQVtuXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X2lzX3NldCI+PCFbQ0RBVEFbbl1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImJveF9pc19zZXQiPjwhW0NEQVRBW25dXT48L29wdGlvbj4KCQkJPHZhbHVlPjwvdmFsdWU+CgkJCTwvb3B0aW9ucz4KPC9maWVsZD4KCTxmaWVsZCBpZD0iMzAiCgkJdHlwZT0iQ2hlY2tib3hHcm91cEZpZWxkIgoJCXZhbGlkYXRpb25fdHlwZT0iIgoJCW9yZGVyX2J5PSI2IgoJCXJlcXVpcmVkPSIwIgoJCWhpZGVfbGFiZWw9IjAiCgkJYWxpYXM9IiI+CgkJCTxmaWVsZF9uYW1lPjwhW0NEQVRBW1doYXQgd2lsbCB5b3UgcGVyc29uYWxseSBiZSBkb2luZyBvbiB5b3VyIENNUyBNUyBzaXRlP11dPjwvZmllbGRfbmFtZT4KCQkJPG9wdGlvbnM+CgkJCTxvcHRpb24gbmFtZT0ibm9fZW1wdHkiPjwhW0NEQVRBWzFdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfbmFtZSI+PCFbQ0RBVEFbR3JhcGhpY2FsIERlc2lnbl1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImJveF9uYW1lIj48IVtDREFUQVtIVE1MIGFuZCBDU1NdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfbmFtZSI+PCFbQ0RBVEFbV3JpdGUgLyBNYWludGFpbiBDb250ZW50XV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X25hbWUiPjwhW0NEQVRBW0VkaXQgU21hcnR5IFRlbXBsYXRlc11dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImJveF9uYW1lIj48IVtDREFUQVtXcml0ZSBNb2R1bGVzXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X25hbWUiPjwhW0NEQVRBW1dyaXRlIENvcmUgQ01TIGNvZGVdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfbmFtZSI+PCFbQ0RBVEFbRG9uYXRlIHRvIENvcmUvTW9kdWxlIERldmVsb3Blc11dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImJveF9jaGVja2VkIj48IVtDREFUQVtHcmFwaGljYWwgRGVzaWduXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X2NoZWNrZWQiPjwhW0NEQVRBW0hUTUwvQ1NTXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X2NoZWNrZWQiPjwhW0NEQVRBW0NvbnRlbnRdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfY2hlY2tlZCI+PCFbQ0RBVEFbU21hcnR5XV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X2NoZWNrZWQiPjwhW0NEQVRBW01vZHVsZXNdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfY2hlY2tlZCI+PCFbQ0RBVEFbQ29yZV1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImJveF9jaGVja2VkIj48IVtDREFUQVtkb25hdGUhXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X3VuY2hlY2tlZCI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X3VuY2hlY2tlZCI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X3VuY2hlY2tlZCI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X3VuY2hlY2tlZCI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X3VuY2hlY2tlZCI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X3VuY2hlY2tlZCI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X3VuY2hlY2tlZCI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X2lzX3NldCI+PCFbQ0RBVEFbbl1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImJveF9pc19zZXQiPjwhW0NEQVRBW25dXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfaXNfc2V0Ij48IVtDREFUQVtuXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X2lzX3NldCI+PCFbQ0RBVEFbbl1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImJveF9pc19zZXQiPjwhW0NEQVRBW25dXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfaXNfc2V0Ij48IVtDREFUQVtuXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X2lzX3NldCI+PCFbQ0RBVEFbbl1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImNzc19jbGFzcyI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CgkJCTx2YWx1ZT48L3ZhbHVlPgoJCQk8L29wdGlvbnM+CjwvZmllbGQ+Cgk8ZmllbGQgaWQ9IjMxIgoJCXR5cGU9IkNvdW50cnlQaWNrZXJGaWVsZCIKCQl2YWxpZGF0aW9uX3R5cGU9IiIKCQlvcmRlcl9ieT0iNyIKCQlyZXF1aXJlZD0iMCIKCQloaWRlX2xhYmVsPSIwIgoJCWFsaWFzPSIiPgoJCQk8ZmllbGRfbmFtZT48IVtDREFUQVtXaGVyZSBhcmUgeW91IGZyb20/XV0+PC9maWVsZF9uYW1lPgoJCQk8b3B0aW9ucz4KCQkJPG9wdGlvbiBuYW1lPSJkZWZhdWx0Ij48IVtDREFUQVtdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJzZWxlY3Rfb25lIj48IVtDREFUQVtTZWxlY3QgT25lXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iY3NzX2NsYXNzIj48IVtDREFUQVtdXT48L29wdGlvbj4KCQkJPHZhbHVlPjwvdmFsdWU+CgkJCTwvb3B0aW9ucz4KPC9maWVsZD4KCTxmaWVsZCBpZD0iMzIiCgkJdHlwZT0iVGV4dEFyZWFGaWVsZCIKCQl2YWxpZGF0aW9uX3R5cGU9IiIKCQlvcmRlcl9ieT0iOCIKCQlyZXF1aXJlZD0iMCIKCQloaWRlX2xhYmVsPSIwIgoJCWFsaWFzPSIiPgoJCQk8ZmllbGRfbmFtZT48IVtDREFUQVtEbyB5b3UgaGF2ZSBhbnkgY29tbWVudHMgLyBmZWVkYmFjayBmb3IgbWU/XV0+PC9maWVsZF9uYW1lPgoJCQk8b3B0aW9ucz4KCQkJPG9wdGlvbiBuYW1lPSJjc3NfY2xhc3MiPjwhW0NEQVRBW11dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9InJvd3MiPjwhW0NEQVRBWzEwXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iY29scyI+PCFbQ0RBVEFbNjBdXT48L29wdGlvbj4KCQkJPHZhbHVlPjwvdmFsdWU+CgkJCTwvb3B0aW9ucz4KPC9maWVsZD4KCTxmaWVsZCBpZD0iMzMiCgkJdHlwZT0iRmllbGRzZXRFbmQiCgkJdmFsaWRhdGlvbl90eXBlPSIiCgkJb3JkZXJfYnk9IjkiCgkJcmVxdWlyZWQ9IjAiCgkJaGlkZV9sYWJlbD0iMCIKCQlhbGlhcz0iIj4KCQkJPGZpZWxkX25hbWU+PCFbQ0RBVEFbRmllbGRzZXQgRW5kXV0+PC9maWVsZF9uYW1lPgoJCQk8b3B0aW9ucz4KCQkJPG9wdGlvbiBuYW1lPSJjc3NfY2xhc3MiPjwhW0NEQVRBW11dPjwvb3B0aW9uPgoJCQk8dmFsdWU+PC92YWx1ZT4KCQkJPC9vcHRpb25zPgo8L2ZpZWxkPgo8L2Zvcm0+Cg==]]></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[PD9waHAKLy8gRW5nbGlzaF9VUyBMb2NhbGl6YXRpb24gRmlsZQokbGFuZ1snZnJpZW5kbHluYW1lJ10gPSAnRm9ybSBCdWlsZGVyJzsKCi8vIGZpZWxkIHR5cGVzCiRsYW5nWydmaWVsZF90eXBlXyddPSdGaWVsZCBUeXBlIE5vdCBTZXQnOwokbGFuZ1snZmllbGRfdHlwZV9DYXRhbG9nZXJJdGVtc0ZpZWxkJ10gPSAnU2VsZWN0IG9uZSAob3IgbW9yZSkgY2F0YWxvZ2VyIGl0ZW1zJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmllbGRzZXRFbmQnXSA9ICctRmllbGRzZXQgRW5kJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmllbGRzZXRTdGFydCddPSctRmllbGRzZXQgU3RhcnQnOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0RmllbGQnXT0nVGV4dCBJbnB1dCc7CiRsYW5nWydmaWVsZF90eXBlX0hUTUw1TnVtYmVyRmllbGQnXT0nSFRNTDUgTnVtYmVyIElucHV0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfSFRNTDVFbWFpbEZpZWxkJ109J0hUTUw1IEVtYWlsIElucHV0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfSFRNTDVVUkxGaWVsZCddPSdIVE1MNSBVUkwgSW5wdXQnOwokbGFuZ1snZmllbGRfdHlwZV9QYXNzd29yZEZpZWxkJ109J1Bhc3N3b3JkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUGFzc3dvcmRBZ2FpbkZpZWxkJ109J1Bhc3N3b3JkIEFnYWluICh2ZXJpZnkpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkRXhwYW5kYWJsZSddPSdUZXh0IElucHV0IChNdWx0aXBsZSknOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0QXJlYUZpZWxkJ109J1RleHQgQXJlYSc7CiRsYW5nWydmaWVsZF90eXBlX0J1dHRvbkZpZWxkJ109J0J1dHRvbic7CiRsYW5nWydmaWVsZF90eXBlX0NoZWNrYm94RmllbGQnXT0nQ2hlY2sgQm94JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hHcm91cEZpZWxkJ109J0NoZWNrIEJveCBHcm91cCc7CiRsYW5nWydmaWVsZF90eXBlX1B1bGxkb3duRmllbGQnXT0nUHVsbGRvd24nOwokbGFuZ1snZmllbGRfdHlwZV9ZZWFyUHVsbERvd25GaWVsZCddPSdZZWFyIFB1bGxkb3duJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTXVsdGlzZWxlY3RGaWVsZCddPSdNdWx0aXNlbGVjdCc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRlUGlja2VyRmllbGQnXT0nVS5TLiBTdGF0ZSBQaWNrZXInOwokbGFuZ1snZmllbGRfdHlwZV9Qcm92aW5jZVBpY2tlckZpZWxkJ109J0NhbmFkaWFuIFByb3ZpbmNlIFBpY2tlcic7CiRsYW5nWydmaWVsZF90eXBlX0NvdW50cnlQaWNrZXJGaWVsZCddPSdDb3VudHJ5IFBpY2tlcic7CiRsYW5nWydmaWVsZF90eXBlX0RhdGVQaWNrZXJGaWVsZCddPSdEYXRlIFBpY2tlcic7CiRsYW5nWydmaWVsZF90eXBlX1RpbWVQaWNrZXJGaWVsZCddPSdUaW1lIFBpY2tlcic7CiRsYW5nWydmaWVsZF90eXBlX1JhZGlvR3JvdXBGaWVsZCddPSdSYWRpbyBCdXR0b24gR3JvdXAnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRpcmVjdG9yJ109JypFbWFpbCBSZXN1bHRzIEJhc2VkIG9uIFB1bGxkb3duJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25GaWxlRGlyZWN0b3InXSA9ICcqU2F2ZSBSZXN1bHRzIHRvIEZpbGUgQmFzZWQgb24gUHVsbGRvd24nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbk11bHRpc2VsZWN0RmlsZURpcmVjdG9yJ10gPSAnKlNhdmUgUmVzdWx0cyB0byBGaWxlKHMpIEJhc2VkIG9uIE11bHRpcGxlIFNlbGVjdGlvbnMnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvblBhZ2VSZWRpcmVjdG9yJ109JypSZWRpcmVjdCB0byBQYWdlIEJhc2VkIG9uIFB1bGxkb3duJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbCddPScqRW1haWwgUmVzdWx0cyB0byBzZXQgQWRkcmVzcyhlcyknOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsQ29uZmlybWF0aW9uJ109JypWYWxpZGF0ZS12aWEtRW1haWwgQWRkcmVzcyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRnJvbUVtYWlsQWRkcmVzc0ZpZWxkJ109JypFbWFpbCAiRnJvbSBBZGRyZXNzIiBGaWVsZCwgYW5kIHNlbmQgY29weSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRmlsZSddPScqV3JpdGUgUmVzdWx0cyB0byBGbGF0IEZpbGUnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRhdGFiYXNlJ109JypTdG9yZSBSZXN1bHRzIGluIERhdGFiYXNlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Gb3JtQnJvd3NlciddPScqU3RvcmUgUmVzdWx0cyBmb3IgRm9ybUJyb3dzZXIgTW9kdWxlIHYuMC4zJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Vc2VyVGFnJ109JypDYWxsIEEgVXNlciBEZWZpbmVkIFRhZyBXaXRoIHRoZSBGb3JtIFJlc3VsdHMnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZvcm0nXSA9ICcqU3VibWl0IHRvIGFuIGFyYml0cmFyeSBmb3JtIGFjdGlvbic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGVsaXZlclRvRW1haWxBZGRyZXNzRmllbGQnXT0nKkVtYWlsIHRvIFVzZXItU3VwcGxpZWQgRW1haWwgQWRkcmVzcyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxTaXRlQWRtaW4nXT0nKkVtYWlsIHRvIENNUyBBZG1pbiBVc2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUGFnZUJyZWFrRmllbGQnXT0nLVBhZ2UgQnJlYWsnOwokbGFuZ1snZmllbGRfdHlwZV9GaWxlVXBsb2FkRmllbGQnXT0nRmlsZSBVcGxvYWQnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxBZGRyZXNzRmllbGQnXT0nRW1haWwgIkZyb20gQWRkcmVzcyIgRmllbGQnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxBZGRyZXNzQWdhaW5GaWVsZCddID0gJ0VtYWlsICJGcm9tIEFkZHJlc3MiIEFnYWluIEZpZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsTmFtZUZpZWxkJ109J0VtYWlsICJGcm9tIE5hbWUiIEZpZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsU3ViamVjdEZpZWxkJ109J0VtYWlsICJTdWJqZWN0IiBGaWVsZCc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRpY1RleHRGaWVsZCddPSctU3RhdGljIFRleHQnOwokbGFuZ1snZmllbGRfdHlwZV9TeXN0ZW1MaW5rRmllbGQnXT0nLVN0YXRpYyBMaW5rJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTGlua0ZpZWxkJ109J0xpbmsgKFVzZXItZW50ZXJlZCknOwokbGFuZ1snZmllbGRfdHlwZV9IaWRkZW5GaWVsZCddID0gJy1IaWRkZW4gRmllbGQnOwokbGFuZ1snZmllbGRfdHlwZV9Db21wdXRlZEZpZWxkJ10gPSAnLUNvbXB1dGVkIEZpZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVW5pcXVlSW50ZWdlckZpZWxkJ109Jy1VbmlxdWUgSW50ZWdlciAoU2VyaWFsKSc7CiRsYW5nWydmaWVsZF90eXBlX1VzZXJUYWdGaWVsZCddID0gJy1Vc2VyIERlZmluZWQgVGFnIENhbGwnOwokbGFuZ1snZmllbGRfdHlwZV9Db21wYW55RGlyZWN0b3J5RmllbGQnXSA9ICdDb21wYW55IERpcmVjdG9yeSBGaWVsZCc7CiRsYW5nWydmaWVsZF90eXBlX01vZHVsZUludGVyZmFjZUZpZWxkJ10gPSAnLU1vZHVsZSBJbnRlcmZhY2UgRmllbGQnOwoKLy8gdmFsaWRhdGlvbiB0eXBlcwokbGFuZ1sndmFsaWRhdGlvbl9ub25lJ109J05vIFZhbGlkYXRpb24nOwokbGFuZ1sndmFsaWRhdGlvbl9udW1lcmljJ109J051bWVyaWMnOwokbGFuZ1sndmFsaWRhdGlvbl9pbnRlZ2VyJ109J0ludGVnZXInOwokbGFuZ1sndmFsaWRhdGlvbl9lbWFpbF9hZGRyZXNzJ109J0VtYWlsIEFkZHJlc3MnOwokbGFuZ1sndmFsaWRhdGlvbl91c3Bob25lJ109J1Bob25lIE51bWJlciAoVVMpJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbXVzdF9jaGVjayddPSdNdXN0IEJlIENoZWNrZWQnOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9tYXRjaCddPSdNYXRjaCBSZWd1bGFyIEV4cHJlc3Npb24nOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9ub21hdGNoJ109J0RvZXNuXCd0IG1hdGNoIFJlZ3VsYXIgRXhwcmVzc2lvbic7CgovLyB2YWxpZGF0aW9uIGVycm9yIG1lc3NhZ2VzIGFuZCBvdGhlciBhbGVydHMKJGxhbmdbJ3JlcXVpcmVkX2ZpZWxkX21pc3NpbmcnXSA9ICdBIHZhbHVlIHdhcyBub3Qgc3VwcGxpZWQgZm9yIGEgcmVxdWlyZWQgZmllbGQnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfdmFsdWUnXT0nUGxlYXNlIGVudGVyIGEgdmFsdWUgZm9yICIlcyInOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfbnVtYmVyJ109J1BsZWFzZSBlbnRlciBhIG51bWJlciBmb3IgIiVzIic7CiRsYW5nWydwbGVhc2VfZW50ZXJfdmFsaWQnXSA9ICdQbGVhc2UgZW50ZXIgYSB2YWxpZCBlbnRyeSBmb3IgIiVzIic7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5faW50ZWdlciddPSdQbGVhc2UgZW50ZXIgYW4gaW50ZWdlciB2YWx1ZSBmb3IgIiVzIic7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5fZW1haWwnXT0nUGxlYXNlIGVudGVyIGEgdmFsaWQgZW1haWwgYWRkcmVzcyBmb3IgIiVzIic7CiRsYW5nWydlbWFpbF9hZGRyZXNzX2RvZXNfbm90X21hdGNoJ109J0VtYWlsIGFkZHJlc3MgZG9lcyBub3QgbWF0Y2ggdmFsdWUgaW4gIiVzIic7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV9waG9uZSddPSdQbGVhc2UgZW50ZXIgYSB2YWxpZCBwaG9uZSBudW1iZXIgZm9yICIlcyInOwokbGFuZ1sncGxlYXNlX2xvZ2luJ10gPSAnUGxlYXNlIGxvZyBpbiB0byB1c2UgdGhpcyBmb3JtJzsKJGxhbmdbJ25vdF92YWxpZF9lbWFpbCddPSciJXMiIGRvZXMgbm90IGFwcGVhciB0byBiZSBhIHZhbGlkIGVtYWlsIGFkZHJlc3MhJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9ub19sb25nZXInXT0nUGxlYXNlIGVudGVyIGEgdmFsdWUgdGhhdCBpcyBubyBsb25nZXIgdGhhbiAlcyBjaGFyYWN0ZXJzJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hdF9sZWFzdCddID0gJ1BsZWFzZSBlbnRlciBhIHZhbHVlIHRoYXQgaXMgYXQgbGVhc3QgJXMgY2hhcmFjdGVycyc7CiRsYW5nWyd0aXRsZV9saXN0X2RlbGltaXRlciddID0gJ0NoYXJhY3RlciB0byB1c2UgYXMgZGVsaW1pdGVyIGluIHJlc3VsdHMgdGhhdCByZXR1cm4gbW9yZSB0aGFuIG9uZSB2YWx1ZSc7CiRsYW5nWyd5b3VfbmVlZF9wZXJtaXNzaW9uJ109J1lvdSBuZWVkIHRoZSAiJXMiIHBlcm1pc3Npb24gdG8gcGVyZm9ybSB0aGF0IG9wZXJhdGlvbi4nOwokbGFuZ1snbGFja3Blcm1pc3Npb24nXT0nU29ycnkhIFlvdSBkb25cJ3QgaGF2ZSBhZGVxdWF0ZSBwcml2aWxlZ2VzIHRvIGFjY2VzcyB0aGlzIHNlY3Rpb24uJzsKJGxhbmdbJ2ZpZWxkX29yZGVyX3VwZGF0ZWQnXT0nRmllbGQgb3JkZXIgdXBkYXRlZC4nOwokbGFuZ1snZm9ybV9kZWxldGVkJ109J0Zvcm0gZGVsZXRlZC4nOwokbGFuZ1snZmllbGRfZGVsZXRlZCddPSdGaWVsZCBkZWxldGVkLic7CiRsYW5nWydjb25maWd1cmF0aW9uX3VwZGF0ZWQnXT0nQ29uZmlndXJhdGlvbiBVcGRhdGVkLic7CiRsYW5nWyd5b3VfbXVzdF9jaGVjayddPSdZb3UgbXVzdCBjaGVjayAiJXMiIGluIG9yZGVyIHRvIGNvbnRpbnVlLic7CiRsYW5nWydtdXN0X3NwZWNpZnlfb25lX2Rlc3RpbmF0aW9uJ109J1lvdSBuZWVkIHRvIHNwZWNpZnkgYXQgbGVhc3Qgb25lIGRlc3RpbmF0aW9uIGFkZHJlc3MhJzsKJGxhbmdbJ2FyZV95b3Vfc3VyZV9kZWxldGVfZm9ybSddPSdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoZSBmb3JtICVzPyc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2ZpZWxkJ109J0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgdGhlIGZpZWxkICVzPyc7CiRsYW5nWydub3RpY2Vfc2VsZWN0X3R5cGUnXT0nQWR2YW5jZWQgb3B0aW9ucyBhcmUgbm90IGF2YWlsYWJsZSB1bnRpbCB0aGUgZmllbGQgdHlwZSBoYXMgYmVlbiBzZXQuJzsKJGxhbmdbJ2ZpZWxkX25hbWVfaW5fdXNlJ109J1RoZSBmaWVsZCBuYW1lICIlcyIgaXMgYWxyZWFkeSBpbiB1c2UuIFBsZWFzZSB1c2UgdW5pcXVlIGZpZWxkIG5hbWVzLCBvciBkaXNhYmxlIHVuaXF1ZSBmaWVsZCBuYW1lcyBpbiB0aGUgRm9ybSBCdWlsZGVyIGNvbmZpZ3VyYXRpb24uJzsKJGxhbmdbJ2ZpZWxkX25vX25hbWUnXSA9ICdGaWVsZHMgbXVzdCBiZSBuYW1lZCwgdW5sZXNzIHlvdSBkaXNhYmxlIHRoaXMgaW4gdGhlIEZvcm0gQnVpbGRlciBjb25maWd1cmF0aW9uLic7CgovLyBhYmJyZXZpYXRpb25zLCB2ZXJicywgYW5kIG90aGVyIGdlbmVyYWwgdGVybXMKJGxhbmdbJ2Fub255bW91cyddID0gJ0Fub255bW91cyc7CiRsYW5nWydhYmJyZXZpYXRpb25fbGVuZ3RoJ109J0xlbjogJXMnOwokbGFuZ1snYm94ZXMnXT0nJXMgYm94ZXMnOwokbGFuZ1snb3B0aW9ucyddPSclcyBvcHRpb25zJzsKJGxhbmdbJ3RleHRfbGVuZ3RoJ109JyVzIGNoYXJzLic7CiRsYW5nWydvcmRlciddPSdPcmRlcic7CiRsYW5nWyd1bnNwZWNpZmllZCddPSdbdW5zcGVjaWZpZWRdJzsKJGxhbmdbJ2FkZGVkJ109J2FkZGVkJzsKJGxhbmdbJ3VwZGF0ZWQnXT0ndXBkYXRlZCc7CiRsYW5nWydzb3J0X29wdGlvbnMnXSA9ICdTb3J0IG9wdGlvbnMgb24gb3V0cHV0JzsKJGxhbmdbJ3NlbGVjdF9vbmUnXT0nU2VsZWN0IE9uZSc7CiRsYW5nWydzZWxlY3RfdHlwZSddPSdTZWxlY3QgVHlwZSc7CiRsYW5nWyd0byddPSdUbyc7CiRsYW5nWyd5ZXMnXT0nWWVzJzsKJGxhbmdbJ25vJ109J05vJzsKJGxhbmdbJ3JlY2lwaWVudHMnXT0ncmVjaXBpZW50cyc7CiRsYW5nWydmaWxlX2NvdW50J10gPSAnJXMgcG9zc2libGUgZmlsZXMnOwokbGFuZ1snZGVzdGluYXRpb25fY291bnQnXSA9ICclcyBkZXN0aW5hdGlvbnMnOwokbGFuZ1snc2F2ZSddPSdTYXZlJzsKJGxhbmdbJ2FkZCddPSdBZGQnOwokbGFuZ1sndXBkYXRlJ109J1VwZGF0ZSc7CiRsYW5nWydzYXZlX2FuZF9jb250aW51ZSddPSdTYXZlIGFuZCBDb250aW51ZSBFZGl0aW5nJzsKJGxhbmdbJ2luZm9ybWF0aW9uJ109J0luZm9ybWF0aW9uJzsKJGxhbmdbJ2F1dG9tYXRpYyddPSdBdXRvbWF0aWMnOwokbGFuZ1snZm9ybXMnXT0nRm9ybXMnOwokbGFuZ1snZm9ybSddPSdGb3JtICVzJzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb24nXT0nQ29uZmlndXJhdGlvbic7CiRsYW5nWydmaWVsZF9yZXF1aXJlbWVudF91cGRhdGVkJ10gPSAnRmllbGQgcmVxdWlyZWQgc3RhdGUgdXBkYXRlZC4nOwokbGFuZ1snbWF4aW11bV9zaXplJ109J01heC4gU2l6ZSc7CiRsYW5nWydwZXJtaXR0ZWRfZXh0ZW5zaW9ucyddPSdFeHRlbnNpb25zJzsKJGxhbmdbJ3Blcm1pdHRlZF9maWxldHlwZXMnXT0nQWxsb3dlZCBmaWxlIHR5cGVzJzsKJGxhbmdbJ2ZpbGVfdG9vX2xhcmdlJ109J1VwbG9hZGVkIGZpbGUgaXMgdG9vIGxhcmdlISBNYXhpbXVtIHNpemUgaXM6JzsKJGxhbmdbJ2lsbGVnYWxfZmlsZV90eXBlJ109J1RoaXMgdHlwZSBvZiBmaWxlIG1heSBub3QgYmUgdXBsb2FkZWQuIFBsZWFzZSBjaGVjayB0aGF0IHRoZSBleHRlbnNpb24gaXMgY29ycmVjdC4nOwokbGFuZ1sndXBsb2FkJ10gPSAnVXBsb2FkJzsKJGxhbmdbJ2Zvcm1faW1wb3J0ZWQnXSA9ICdGb3JtIEltcG9ydGVkLic7CiRsYW5nWydmb3JtX2ltcG9ydF9mYWlsZWQnXSA9ICdGb3JtIGltcG9ydCBmYWlsZWQhIFRoZXJlIHdhcyBhIHByb2JsZW0gd2l0aCB0aGUgZm9ybWF0IG9mIHRoZSBYTUwgZmlsZS4nOwokbGFuZ1sncm93cyddID0gJyVzIHJvd3MnOwokbGFuZ1snY29scyddID0gJyVzIGNvbHMnOwokbGFuZ1snMTJfaG91ciddID0gJzEyIEhvdXIgQ2xvY2snOwokbGFuZ1snMjRfaG91ciddID0gJzI0IEhvdXIgQ2xvY2snOwokbGFuZ1snaG91ciddID0gJ0hvdXInOwokbGFuZ1snbWluJ10gPSAnTWludXRlJzsKJGxhbmdbJ21lcmlkJ10gPSAnTWVyaWRpYW4nOwokbGFuZ1snZGF0ZV9yYW5nZSddID0gJ1JhbmdlOiAlcyAtICVzJzsKJGxhbmdbJ3RoYW5rcyddID0gJ1RoYW5rcyEgWW91ciBzdWJtaXNzaW9ucyBoYXZlIGJlZW4gcmVjZWl2ZWQuJzsKJGxhbmdbJ2VkaXQnXSA9ICdFZGl0JzsKJGxhbmdbJ2RlbGV0ZSddID0gJ0RlbGV0ZSc7CiRsYW5nWydkYXknXSA9ICdEYXknOwokbGFuZ1snbW9uJ10gPSAnTW9udGgnOwokbGFuZ1sneWVhciddID0gJ1llYXInOwokbGFuZ1snbm9uZSddID0gJyhub25lKSc7CiRsYW5nWydjc3MnXSA9ICdDU1MnOwovLyRsYW5nWyd5ZWFyX3N0YXJ0J10gPSAnU3RhcnQgeWVhcic7CgokbGFuZ1sndW5pbnN0YWxsZWQnXSA9ICdNb2R1bGUgdW5pbnN0YWxsZWQuJzsKJGxhbmdbJ2luc3RhbGxlZCddID0gJ01vZHVsZSB2ZXJzaW9uICVzIGluc3RhbGxlZC4nOwokbGFuZ1sndXBncmFkZWQnXSA9ICdNb2R1bGUgdXBncmFkZWQgdG8gdmVyc2lvbiAlcy4nOwoKJGxhbmdbJ2J1dHRvbl9wcmV2aW91cyddID0gJ0JhY2suLi4nOwokbGFuZ1snYnV0dG9uX3N1Ym1pdCddID0gJ1N1Ym1pdCBGb3JtJzsKJGxhbmdbJ2J1dHRvbl9jb250aW51ZSddID0gJ0NvbnRpbnVlLi4uJzsKCiRsYW5nWyd2YWx1ZV9jaGVja2VkJ10gPSAnQ2hlY2tlZCc7CiRsYW5nWyd2YWx1ZV91bmNoZWNrZWQnXSA9ICdVbmNoZWNrZWQnOwoKJGxhbmdbJ3RhYl9tYWluJ109J01haW4nOwokbGFuZ1sndGFiX3N5bWJvbCddPSdGb3JtIERpc3BsYXkgU2V0dGluZ3MnOwokbGFuZ1sndGFiX3N1Ym1pdCddPSdGb3JtIFN1Ym1pc3Npb24nOwokbGFuZ1sndGFiX2NhcHRjaGEnXT0nQ2FwdGNoYSBTZXR0aW5ncyc7CiRsYW5nWyd0YWJfYWR2YW5jZWQnXT0nQWR2YW5jZWQgU2V0dGluZ3MnOwokbGFuZ1sndGFiX3RlbXBsYXRlbGF5b3V0J10gPSAnRm9ybSBUZW1wbGF0ZSc7CiRsYW5nWyd0YWJfc3VibWlzc2lvbnRlbXBsYXRlJ10gPSAnU3VibWlzc2lvbiBUZW1wbGF0ZSc7CiRsYW5nWyd0YWJfdWR0J10gPSAnVURUIEludGVncmF0aW9uJzsKCgokbGFuZ1snY2FudXNlX3NtYXJ0eSddID0gJzxlbT5TbWFydHkgdmFyaWFibGVzIGFyZSB2YWxpZCBpbiB0aGlzIGZpZWxkLjwvZW0+JzsKJGxhbmdbJ2FkZF9vcHRpb25zJ10gPSAnQWRkIE1vcmUgT3B0aW9ucyc7CiRsYW5nWydkZWxldGVfb3B0aW9ucyddID0gJ0RlbGV0ZSBNYXJrZWQgT3B0aW9ucyc7CiRsYW5nWydhZGRfY2hlY2tib3hlcyddID0gJ0FkZCBNb3JlIENoZWNrYm94ZXMnOwokbGFuZ1snZGVsZXRlX2NoZWNrYm94ZXMnXSA9ICdEZWxldGUgTWFya2VkIENoZWNrYm94ZXMnOwokbGFuZ1snYWRkX2FkZHJlc3MnXSA9ICdBZGQgQW5vdGhlciBBZGRyZXNzJzsKJGxhbmdbJ2RlbGV0ZV9hZGRyZXNzJ10gPSAnRGVsZXRlIE1hcmtlZCBBZGRyZXNzZXMnOwokbGFuZ1snYWRkX2Rlc3RpbmF0aW9uJ10gPSAnQWRkIEFub3RoZXIgRGVzdGluYXRpb24nOwokbGFuZ1snZGVsZXRlX2Rlc3RpbmF0aW9uJ10gPSAnRGVsZXRlIE1hcmtlZCBEZXN0aW5hdGlvbnMnOwokbGFuZ1snc3VzcGVjdGVkX3NwYW0nXSA9ICdUb28gbWFueSBlbWFpbHMgZ2VuZXJhdGVkIGZyb20geW91ciBJUCBhZGRyZXNzLiBBbnRpLVNwYW0gY29kZSBoYXMgcHJldmVudGVkIGRlbGl2ZXJ5Lic7CiRsYW5nWydzdXNwZWN0ZWRfc3BhbV9sb2cnXSA9ICdTdXNwZWN0ZWQgc3BhbSBmcm9tIElQICVzIHN0b3BwZWQuJzsKJGxhbmdbJ3Jlb3JkZXInXSA9ICdSZW9yZGVyIEZpZWxkcyc7CiRsYW5nWydjYW5jZWwnXSA9ICdDYW5jZWwnOwokbGFuZ1sndmFsdWVfc2V0J10gPSAnVmFsdWUgc2V0OiAlcyc7CgovLyBGaWVsZCBBdHRyaWJ1dGUgVGl0bGVzCiRsYW5nWydoZWxwX2NhdGFsb2dlcl9hdHRyaWJ1dGVfZmllbGRzJ10gPSA8PDxFT1QKQmVsb3cgaXMgYSBsaXN0IG9mIHRoZSBhdHRyaWJ1dGVzIGF2YWlsYWJsZSBmcm9tIHRoZSBDYXRhbG9nZXIgbW9kdWxlLjxici8+WW91IGNhbiBvcHRpb25hbGx5IHNwZWNpZnkgdmFsaWQgcmFuZ2VzLCB2YWx1ZXMsIG9yIG51bWVyb3VzIHZhbHVlcyB0byBiZSB1c2VkIGluIGZpbHRlcmluZyB0aGUgbGlzdCBvZiBpdGVtcyB0aGF0IGlzIGRpc3BsYXllZCB0byB0aGUgdXNlci48YnIvPgo8YnIvPgo8c3Ryb25nPlJhbmdlczo8L3N0cm9uZz48YnIvPgpSYW5nZXMgY2FuIGJlIHNwZWNpZmllZCBieSBzaWduaWZ5aW5nIGEgbWluaW11bSBhbmQgbWF4aW11bSB2YWx1ZSB1c2luZyB0aGlzIHN5bnRheDogJnF1b3Q7cmFuZ2U6IG1pbnZhbHVlIHRvIG1heHZhbHVlJnF1b3Q7PGJyLz4KPGJyLz4KPHN0cm9uZz5NdWx0aXBsZSBWYWx1ZXM6PC9zdHJvbmc+PGJyLz4KVG8gc3BlY2lmeSBtdWx0aXBsZSB2YWx1ZXMgZm9yIGFuIGF0dHJpYnV0ZSB1c2UgdGhlIHN5bnRheCAmcXVvdDttdWx0aTogdmFsdWUxfHZhbHVlMnx2YWx1ZTMmcXVvdDs8YnIvPgo8YnIvPgo8c3Ryb25nPlZhbHVlcyBmcm9tIGhpZGRlbiBmaWVsZHM8L3N0cm9uZz48YnIvPgpUbyBzcGVjaWZ5IGEgdmFsdWUgZnJvbSBhIGhpZGRlbiBmaWVsZCB1c2UgdGhlIHN5bnRheCB7XCRmbGRfaWR9PGJyLz4KPGJyLz4KRU9UOwokbGFuZ1snaGVscF9uYW1lX3JlZ2V4J10gPSAnQSByZWd1bGFyIGV4cHJlc3Npb24gdG8gYWxsb3cgZmlsdGVyaW5nIGNhdGFsb2dlciBpdGVtcyBieSBuYW1lJzsKJGxhbmdbJ2hlbHBfZmllbGRfaGVpZ2h0J10gPSAnVGhlIGhlaWdodCBvZiB0aGUgbXVsdGlzZWxlY3QgZmllbGQnOwokbGFuZ1sndGl0bGVfbmFtZV9yZWdleCddID0gJ0NhdGFsb2dlciBJdGVtIE5hbWUgUmVndWxhciBFeHByZXNzaW9uJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2hlaWdodCddID0gJ0ZpZWxkIEhlaWdodCc7CiRsYW5nWyd0aXRsZV9maWxlX3BhdGgnXSA9ICdEZXN0aW5hdGlvbiBEaXJlY3RvcnkgZm9yIG91dHB1dCBmaWxlcyc7CiRsYW5nWyd0aXRsZV91ZHRfbmFtZSddID0gJ1VzZXIgRGVmaW5lZCBUYWcnOwokbGFuZ1sndGl0bGVfdXBsb2Fkc19kZXN0cGFnZSddID0gJ1BhZ2UgdG8gcmV0dXJuIHRvIHdpdGggdXBsb2FkcyBsaW5rJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZG1vZHVsZV9zdW1tYXJ5J10gPSAnU3VibWl0dGVkIHdpdGggZm9ybWJ1aWxkZXInOwokbGFuZ1sndGl0bGVfdXBsb2Fkc19jYXRlZ29yeSddID0gJ1VwbG9hZHMgY2F0ZWdvcnknOwokbGFuZ1sndGl0bGVfc2VuZHRvX3VwbG9hZHMnXSA9ICdTZW5kIHRoaXMgZmlsZSB0byB0aGUgdXBsb2FkcyBtb2R1bGUnOwokbGFuZ1sndGl0bGVfbGVnZW5kJ10gPSAnTGVnZW5kJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fbGVuZ3RoJ109J01heGltdW0gTGVuZ3RoJzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2xhYmVsJ109J0NoZWNrYm94IGxhYmVsJzsKJGxhbmdbJ3RpdGxlX3JhZGlvX2xhYmVsJ109J1JhZGlvIEJ1dHRvbiBsYWJlbCc7CiRsYW5nWyd0aXRsZV9jaGVja2VkX3ZhbHVlJ109J1ZhbHVlIHdoZW4gY2hlY2tlZCc7CiRsYW5nWyd0aXRsZV91bmNoZWNrZWRfdmFsdWUnXT0nVmFsdWUgd2hlbiBub3QgY2hlY2tlZC4nOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfZGV0YWlscyddPSdDaGVja2JveCBHcm91cCBEZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX2RlbGV0ZSddID0gJ0RlbGV0ZT8nOwokbGFuZ1sndGl0bGVfc2VsZWN0X29uZV9tZXNzYWdlJ109JyJTZWxlY3QgT25lIiBUZXh0JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl92YWx1ZSddID0gJ1NlbGVjdGlvbiBWYWx1ZSc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fZGlzcGxheW5hbWUnXSA9ICdTZWxlY3Rpb24gRGlzcGxheSBOYW1lJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl9zdWJqZWN0J109J1NlbGVjdGlvbiBTdWJqZWN0JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X2NvdW50cnknXT0nRGVmYXVsdCBTZWxlY3Rpb24nOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfc3RhdGUnXT0nRGVmYXVsdCBTZWxlY3Rpb24nOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfcHJvdmluY2UnXT0nRGVmYXVsdCBTZWxlY3Rpb24nOwokbGFuZ1sndGl0bGVfb3B0aW9uX25hbWUnXT0iT3B0aW9uIE5hbWUiOwokbGFuZ1sndGl0bGVfb3B0aW9uX3ZhbHVlJ109IlZhbHVlIFN1Ym1pdHRlZCI7CiRsYW5nWyd0aXRsZV9wdWxsZG93bl9kZXRhaWxzJ109J1B1bGxkb3duIE9wdGlvbnMnOwokbGFuZ1sndGl0bGVfbXVsdGlzZWxlY3RfZGV0YWlscyddPSdNdWx0aXNlbGVjdCBPcHRpb25zJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2FkZHJlc3MnXT0nRGVzdGluYXRpb24gRW1haWwgQWRkcmVzcyc7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9maWxlbmFtZSddID0gJ0Rlc3RpbmF0aW9uIEZpbGUgTmFtZSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9mcm9tX25hbWUnXT0nIkZyb20gbmFtZSIgZm9yIGVtYWlsJzsKJGxhbmdbJ3RpdGxlX3JlbGF4ZWRfZW1haWxfcmVnZXgnXT0nVXNlIHJlbGF4ZWQgZW1haWwgdmFsaWRhdGlvbic7CiRsYW5nWyd0aXRsZV9yZWxheGVkX3JlZ2V4X2xvbmcnXT0nVXNlIHJlbGF4ZWQgZW1haWwgYWRkcmVzcyB2YWxpZGF0aW9uIChlLmcuLCBhbGxvdyAieEB5IiBpbnN0ZWFkIG9mIHJlcXVpcmluZyAieEB5LnRsZCIpJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fYWRkcmVzcyddPSciRnJvbSBhZGRyZXNzIiBmb3IgZW1haWwnOwokbGFuZ1sndGl0bGVfZW1haWxfZW5jb2RpbmcnXT0nRW1haWwgY2hhcmFjdGVyIHNldCBlbmNvZGluZyc7CiRsYW5nWyd0aXRsZV9kaXJlY3Rvcl9kZXRhaWxzJ109J1B1bGxkb3duLWJhc2VkIEVtYWlsZXIgRGV0YWlscyc7CiRsYW5nWyd0aXRsZV9maWxlX25hbWUnXT0nRmlsZSBOYW1lJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX3N1YmplY3QnXT0nRW1haWwgU3ViamVjdCBMaW5lJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmFtZSddPSdGb3JtIE5hbWUnOwokbGFuZ1sndGl0bGVfZm9ybV9zdGF0dXMnXT0nRm9ybSBTdGF0dXMnOwokbGFuZ1sndGl0bGVfcmVhZHlfZm9yX2RlcGxveW1lbnQnXT0nUmVhZHkgZm9yIERlcGxveW1lbnQnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MSddPSdOb3QgUmVhZHknOwokbGFuZ1sndGl0bGVfcmVkaXJlY3RfcGFnZSddPSdQYWdlIHRvIHJlZGlyZWN0IHRvIGFmdGVyIGZvcm0gc3VibWlzc2lvbic7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkyJ109J1BsZWFzZSBhZGQgYSBmaWVsZCB0byB0aGUgZm9ybSBzbyB0aGF0IHRoZSB1c2VyXCdzIGlucHV0IGdldHMgaGFuZGxlZC4gWW91IGNhbic7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHlfbGluayddPSd1c2UgdGhpcyBzaG9ydGN1dCc7CiRsYW5nWyd0aXRsZV9mb3JtX2FsaWFzJ109J0Zvcm0gQWxpYXMnOwokbGFuZ1sndGl0bGVfZmllbGRfYWxpYXNfc2hvcnQnXT0nQWxpYXMnOwokbGFuZ1sndGl0bGVfZm9ybV9maWVsZHMnXT0nRm9ybSBGaWVsZHMnOwokbGFuZ1sndGl0bGVfZmllbGRfaWQnXT0nRmllbGQgSWQnOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGFsaWFzZXMnXT0nU2hvdyBGaWVsZCBBbGlhc2VzJzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRhbGlhc2VzX2xvbmcnXT0nQ2xpY2tpbmcgdGhpcyB3aWxsIGRpc3BsYXkgZmllbGQgYWxpYXNlcyB3aGVuIGFkZGluZyBvciBlZGl0aW5nIGEgZm9ybSc7CiRsYW5nWyd0aXRsZV9maWVsZF9uYW1lJ109J0ZpZWxkIE5hbWUnOwokbGFuZ1sndGl0bGVfZmllbGRfYWxpYXMnXT0nRmllbGQgQWxpYXMgYW5kIERPTSBpZCAoQ1NTIGlkKSBhdHRyaWJ1dGUnOwokbGFuZ1sndGl0bGVfcmFkaW9ncm91cF9kZXRhaWxzJ109J1JhZGlvIEJ1dHRvbiBHcm91cCBEZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3R5cGUnXT0nRmllbGQgVHlwZSc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkzJ109J3RvIGNyZWF0ZSBhIGZvcm0gaGFuZGxpbmcgZmllbGQuJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fYWxpYXMnXT0nRm9ybSBBbGlhcyc7CiRsYW5nWyd0aXRsZV9hZGRfbmV3X2Zvcm0nXT0nQWRkIE5ldyBGb3JtJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbiddPSdTaG93IEZvcm0gQnVpbGRlciBWZXJzaW9uPyc7CiRsYW5nWyd0aXRsZV9zaG93X3ZlcnNpb25fbG9uZyddPSdUaGlzIHdpbGwgZW1iZWQgeW91ciBpbnN0YWxsZWQgdmVyc2lvbiBudW1iZXIgb2YgRm9ybSBCdWlsZGVyIG1vZHVsZSBpbiBhIGNvbW1lbnQsIHRvIGFpZCBpbiBkZWJ1Z2dpbmcnOwokbGFuZ1sndGl0bGVfYWRkX25ld19maWVsZCddPSdBZGQgTmV3IEZpZWxkJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fc3VibWl0X2J1dHRvbiddPSdGb3JtIFN1Ym1pdCBCdXR0b24gVGV4dCc7CiRsYW5nWyd0aXRsZV9idXR0b25fdGV4dCddPSdCdXR0b24gdGV4dCc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eSddPSdBZGQgSmF2YXNjcmlwdCB0byBmaW5hbCBTdWJtaXQgQnV0dG9uIHRoYXQgd2lsbCBoZWxwIHByZXZlbnQgbXVsdGlwbGUgc3VibWlzc2lvbnM/JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5X2hlbHAnXT0nQWRkIHNhZmV0eSBzY3JpcHQnOwokbGFuZ1sndGl0bGVfZm9ybV9uZXh0X2J1dHRvbiddPSdGb3JtICJOZXh0IiBCdXR0b24gVGV4dCAodXNlZCBmb3IgbXVsdGlwYWdlIGZvcm1zKSc7CiRsYW5nWyd0aXRsZV9mb3JtX3ByZXZfYnV0dG9uJ10gPSAnRm9ybSAiUHJldmlvdXMiIEJ1dHRvbiBUZXh0ICh1c2VkIGZvciBtdWx0aXBhZ2UgZm9ybXMpJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3ZhbGlkYXRpb24nXT0nRmllbGQgVmFsaWRhdGlvbic7CiRsYW5nWyd0aXRsZV9maWVsZF90b192YWxpZGF0ZSddID0gJ0ZpZWxkIHRvIFZhbGlkYXRlJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2Nzc19pZCddPSdDU1MgaWQgZm9yIHRoaXMgZmllbGQnOwokbGFuZ1sndGl0bGVfZm9ybV9jc3NfY2xhc3MnXT0nQ1NTIENsYXNzIGZvciB0aGlzIGZvcm0nOwokbGFuZ1sndGl0bGVfZmllbGRfY3NzX2NsYXNzJ109J0NTUyBDbGFzcyBmb3IgdGhpcyBmaWVsZCc7CiRsYW5nWyd0aXRsZV9mb3JtX3ByZWRpc3BsYXlfdWR0J10gPSAnVXNlciBkZWZpbmVkIHRhZyB0byBjYWxsIGJlZm9yZSBmb3JtIGlzIGRpc3BsYXllZCB0aGUgZmlyc3QgdGltZSAob25seSBjYWxsZWQgb25jZSknOwokbGFuZ1sndGl0bGVfZm9ybV9wcmVkaXNwbGF5X2VhY2hfdWR0J10gPSAnVXNlciBkZWZpbmVkIHRhZyB0byBjYWxsIGJlZm9yZSBmb3JtIGlzIGRpc3BsYXllZCAoY2FsbGVkIG9uIGV2ZXJ5IHBhZ2Ugb2YgbXVsdGlwYWdlIGZvcm1zKSc7CiRsYW5nWyd0aXRsZV9mb3JtX3ZhbGlkYXRlX3VkdCddID0gJ1VzZXIgZGVmaW5lZCB0YWcgdG8gY2FsbCBkdXJpbmcgZm9ybSB2YWxpZGF0aW9uJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcmVxdWlyZWRfc3ltYm9sJ109J1N5bWJvbCB0byBtYXJrIHJlcXVpcmVkIEZpZWxkcyc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZCddPSdSZXF1aXJlZCc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9sb25nJ109J1JlcXVpcmUgYSByZXNwb25zZSBmb3IgdGhpcyBGaWVsZCc7CiRsYW5nWyd0aXRsZV9oaWRlX2xhYmVsJ109J0hpZGUgTGFiZWwnOwokbGFuZ1sndGl0bGVfaGlkZV9sYWJlbF9sb25nJ109J0hpZGUgdGhpcyBmaWVsZFwncyBuYW1lIG9uIEZvcm0nOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfbGVuZ3RoJ109J01heGltdW0gbGVuZ3RoIG9mIGZpZWxkIGNvbnRlbnQgKDAgb3IgYmxhbmsgbWVhbnMgbm8gbGltaXQpJzsKJGxhbmdbJ3RpdGxlX3RleHQnXT0nU3RhdGljIHRleHQgdG8gZGlzcGxheSc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZWdleCddPSdWYWxpZGF0aW9uIFJlZ2V4JzsKJGxhbmdbJ3RpdGxlX2xpbmVzX3RvX3Nob3cnXSA9ICdOdW1iZXIgb2YgTGluZXMgdG8gZGlzcGxheSc7CiRsYW5nWyd0aXRsZV9yZWFkX29ubHknXSA9ICdSZWFkIE9ubHknOwokbGFuZ1snbm9fZGVmYXVsdCddPSdObyBEZWZhdWx0JzsKJGxhbmdbJ3JlZGlyZWN0X2FmdGVyX2FwcHJvdmFsJ109J1BhZ2UgdG8gcmVkaXJlY3QgYWZ0ZXIgYXBwcm92YWwnOwokbGFuZ1sndGl0bGVfcmVnZXhfaGVscCddPSdUaGlzIHJlZ3VsYXIgZXhwcmVzc2lvbiB3aWxsIG9ubHkgYmUgdXNlZCBpZiAidmFsaWRhdGlvbiB0eXBlIiBpcyBzZXQgdG8gYSByZWdleC1yZWxhdGVkIG9wdGlvbi4gSW5jbHVkZSBhIGZ1bGwgUGVybC1zdHlsZSByZWdleCwgaW5jbHVkaW5nIHRoZSBzdGFydC9zdG9wIHNsYXNoZXMgYW5kIGZsYWdzIChlLmcuLCAiL2ltYWdlXC4oXGQrKS9pIiknOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWRfYWJicmV2J109J1JlcVwnZCc7CiRsYW5nWyd0aXRsZV9oaWRlX2Vycm9ycyddPSdIaWRlIEVycm9ycyc7CiRsYW5nWyd0aXRsZV9mb3JtX2Rpc3BsYXl0eXBlJ10gPSAnRm9ybSBEaXNwbGF5IFR5cGUnOwokbGFuZ1sndGl0bGVfaGlkZV9lcnJvcnNfbG9uZyddPSdQcmV2ZW50IGRlYnVnIC8gZXJyb3IgbWVzc2FnZXMgZnJvbSBiZWluZyBzZWVuIGJ5IHVzZXJzLic7CiRsYW5nWyd0aXRsZV9lbWFpbF90ZW1wbGF0ZSddPSdFbWFpbCBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX3NpemUnXT0nTWF4aW11bSB1cGxvYWQgZmlsZSBzaXplIChraWxvYnl0ZXMpJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZV9sb25nJ10gPSAnVGhpcyBsaW1pdGF0aW9uIGlzIGluIGFkZGl0aW9uIHRvIGFueSBsaW1pdHMgc2V0IGJ5IHRoZSBwaHAgb3Igd2ViIHNlcnZlciBjb25maWd1cmF0aW9uJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfZGVzdGluYXRpb24nXSA9ICdEaXJlY3RvcnkgdG8gc2F2ZSBmaWxlcyBpbnRvJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zJ109J1Blcm1pdHRlZCBFeHRlbnNpb25zJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zX2xvbmcnXT0nRW50ZXIgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCwgZXhjbHVkaW5nIHRoZSBkb3QgKGUuZy4sICJqcGcsZ2lmLGpwZWciKS4gU3BhY2VzIHdpbGwgYmUgaWdub3JlZC4gTGVhdmluZyB0aGlzIGJsYW5rIG1lYW5zIHRoZXJlIHdpbGwgYmUgbm8gcmVzdHJpY3Rpb25zLic7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zJ109J0Rpc3BsYXkgcmVzdHJpY3Rpb25zPyc7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zX2xvbmcnXT0nRGlzcGxheSBhbnkgc2l6ZSBhbmQgZXh0ZW5zaW9uIHJlc3RyaWN0aW9ucyB3aXRoIHRoZSB1cGxvYWQgZmllbGQ/JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdGVtcGxhdGUnXT0nVGVtcGxhdGUgdG8gdXNlIHRvIERpc3BsYXkgRm9ybSc7CiRsYW5nWyd0aXRsZV9wYWdlX3hfb2ZfeSddID0gJ1BhZ2UgJXMgb2YgJXMnOwokbGFuZ1sndGl0bGVfbm9fYWR2YW5jZWRfb3B0aW9ucyddPSdGaWVsZCBoYXMgbm8gYWR2YW5jZWQgb3B0aW9ucy4nOwokbGFuZ1sndGl0bGVfZm9ybV91bnNwZWNpZmllZCddPSdUZXh0IHRvIHJldHVybiBmb3IgdW5zcGVjaWZpZWQgZmllbGQgdmFsdWVzJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9mYXN0YWRkX2xvbmcnXT0nRW5hYmxlIGZhc3QgZmllbGQgYWRkaW5nIHB1bGxkb3duIGZvciBmb3Jtcz8nOwokbGFuZ1sndGl0bGVfZW5hYmxlX2Zhc3RhZGQnXT0nRW5hYmxlIGZhc3QgZmllbGQgYWRkIHB1bGxkb3duPyc7CiRsYW5nWyd0aXRsZV9mYXN0YWRkJ109J0Zhc3QgZmllbGQgYWRkZXInOwokbGFuZ1sndGl0bGVfZW5hYmxlX2FudGlzcGFtX2xvbmcnXT0nQ2xpY2tpbmcgdGhpcyB3aWxsIG9ubHkgYWxsb3cgMTAgZW1haWxzIHRvIGJlIHRyaWdnZXJlZCBmcm9tIGEgZ2l2ZW4gSVAgYWRkcmVzcyAocGVyIGhvdXIpLic7CiRsYW5nWyd0aXRsZV9lbmFibGVfYW50aXNwYW0nXT0nRW5hYmxlIHByaW1pdGl2ZSBhbnRpLXNwYW0gZmVhdHVyZXM/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRpZHMnXSA9ICdTaG93IEZpZWxkIElEcyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkaWRzX2xvbmcnXSA9ICdDbGlja2luZyB0aGlzIHdpbGwgYWxsb3cgZGlzcGxheWluZyBmaWVsZCBpZHMgd2hlbiBhZGRpbmcgb3IgZWRpdGluZyBhIGZvcm0nOwokbGFuZ1sndGl0bGVfeG1sX3RvX3VwbG9hZCddPSdVcGxvYWQgZm9ybSBmcm9tIFhNTCBmaWxlJzsKJGxhbmdbJ3RpdGxlX3htbF91cGxvYWRfZm9ybW5hbWUnXSA9ICdVc2UgdGhpcyBmb3JtIG5hbWUnOwokbGFuZ1sndGl0bGVfaW1wb3J0X2xlZ2VuZCddID0gJ1hNTCBGb3JtIEltcG9ydCc7CiRsYW5nWyd0aXRsZV94bWxfdXBsb2FkX2Zvcm1hbGlhcyddID0gJ1VzZSB0aGlzIGZvcm0gYWxpYXMnOwokbGFuZ1sndGl0bGVfaHRtbF9lbWFpbCddPSdHZW5lcmF0ZSBIVE1MIGVtYWlsPyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZSddPSdBdXRvbWF0aWNhbGx5IHBvcHVsYXRlPyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZV9oZWxwJ109J0F1dG9tYXRpY2FsbHkgcG9wdWxhdGUgd2l0aCB0aGUgVVJMIG9mIHRoZSBwYWdlIGNvbnRhaW5pbmcgdGhlIGZvcm0/ICh0aGlzIG92ZXJyaWRlcyBzaXRlIHBhZ2UgbGluayBvcHRpb24gYmVsb3cpJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfbGluayddPSdEZWZhdWx0IGxpbmsgVVJMJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfbGlua190aXRsZSddPSdEZWZhdWx0IGxpbmsgdGV4dCc7CiRsYW5nWyd0aXRsZV9saW5rX3RvX3NpdGVwYWdlJ109J0xpbmsgdG8gc2l0ZSBwYWdlJzsKJGxhbmdbJ3RpdGxlX2NhcHRjaGFfbm90X2luc3RhbGxlZCddID0gJ1lvdSBjYW4gdXNlIDxhIGhyZWY9Imh0dHA6Ly93d3cud2lraXBlZGlhLm9yZy93aWtpL0NhcHRjaGEiIHRhcmdldD0iX25ldyI+IkNhcHRjaGEiPC9hPiB0byBwcm90ZWN0IGZvcm0gc3VibWlzc2lvbnMgaWYgeW91IGluc3RhbGwgdGhlIENhcHRjaGEgbW9kdWxlLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9jYXB0Y2hhLyI+Y2hlY2sgdGhlIENhcHRjaGEgcHJvamVjdDwvYT4uJzsKJGxhbmdbJ3RpdGxlX3VzZV9jYXB0Y2hhJ10gPSAnVXNlIENhcHRjaGEgdG8gcHJvdGVjdCBmb3JtIHN1Ym1pc3Npb25zPyc7CiRsYW5nWyd0aXRsZV91c2VfY2FwdGNoYV9oZWxwJ10gPSAnQ2hlY2sgaGVyZSB0byBwcm90ZWN0IHlvdXIgZm9ybSB3aXRoIGEgPGEgaHJlZj0iaHR0cDovL3d3dy53aWtpcGVkaWEub3JnL3dpa2kvQ2FwdGNoYSIgdGFyZ2V0PSJfbmV3Ij4iQ2FwdGNoYSI8L2E+Lic7CiRsYW5nWyd0aXRsZV91c2VyX2NhcHRjaGEnXSA9ICdQbGVhc2UgY29uZmlybSB0aGF0IHlvdSBhcmUgbm90IGEgc2NyaXB0IGJ5IGVudGVyaW5nIHRoZSBsZXR0ZXJzIGZyb20gdGhlIGltYWdlLic7CiRsYW5nWyd0aXRsZV91c2VyX2NhcHRjaGFfZXJyb3InXSA9ICdGYWlsZWQgdGV4dCBmb3IgQ2FwdGNoYSc7CiRsYW5nWyd3cm9uZ19jYXB0Y2hhJ109J0NhcHRjaGEgd2FzIG5vdCBjb3JyZWN0Lic7CiRsYW5nWyd0aXRsZV90aXRsZV91c2VyX2NhcHRjaGEnXSA9ICdIZWxwIHRleHQgZm9yIENhcHRjaGEnOwokbGFuZ1sndGl0bGVfZG9udF9zdWJtaXRfdW5jaGVja2VkJ10gPSAnRG9uXCd0IHN1Ym1pdCB2YWx1ZXMgZm9yIHVuY2hlY2tlZCBib3hlcyc7CiRsYW5nWyd0aXRsZV9kb250X3N1Ym1pdF91bmNoZWNrZWRfaGVscCddID0gJ0NoZWNrIHRoaXMgaWYgeW91IG9ubHkgd2FudCBjaGVja2VkIGJveGVzIHRvIHJldHVybiB2YWx1ZXMuJzsKJGxhbmdbJ2xpbmtfbGFiZWwnXT0nTGluayBMYWJlbCc7CiRsYW5nWydsaW5rX2Rlc3RpbmF0aW9uJ109J0xpbmsgRGVzdGluYXRpb24gVVJMJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfc2V0J109J0NoZWNrZWQgYnkgRGVmYXVsdD8nOwokbGFuZ1sndGl0bGVfMjRfaG91ciddPSdVc2UgMjQtaG91ciBjbG9jaz8nOwokbGFuZ1sndGl0bGVfYmVmb3JlX25vb24nXSA9ICdBTSc7CiRsYW5nWyd0aXRsZV9hZnRlcl9ub29uJ10gPSAnUE0nOwokbGFuZ1sndGl0bGVfc21hcnR5X2V2YWwnXSA9ICdQcm9jZXNzIHNtYXJ0eSB0YWdzIHdpdGhpbiBmaWVsZD8nOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfcm93cyddID0gJ1Jvd3MgKG5vdGU6IHRoaXMgbWF5IGJlIG92ZXJyaWRkZW4gYnkgQ1NTKSc7CiRsYW5nWyd0aXRsZV90ZXh0YXJlYV9jb2xzJ10gPSAnQ29sdW1ucyAobm90ZTogdGhpcyBtYXkgYmUgb3ZlcnJpZGRlbiBieSBDU1MpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbWFpbiddPSAnTWFpbiBGb3JtIERldGFpbHMnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9ibGFuayddPSdEZWZhdWx0IHRvIGJsYW5rJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfYmxhbmtfaGVscCddPSdEZWZhdWx0IHRvIGJsYW5rICh1bmNoZWNrIHRvIGRlZmF1bHQgdG8gdG9kYXlcJ3MgZGF0ZSknOwokbGFuZ1sndGl0bGVfc2hvd191c2VybmFtZSddPSdEaXNwbGF5IFVzZXJcJ3MgbG9naW4gbmFtZT8nOwokbGFuZ1sndGl0bGVfc2hvd191c2VyZmlyc3RuYW1lJ109J0Rpc3BsYXkgVXNlclwncyBmaXJzdCBuYW1lPyc7CiRsYW5nWyd0aXRsZV9zaG93X3VzZXJsYXN0bmFtZSddPSdEaXNwbGF5IFVzZXJcJ3MgbGFzdCBuYW1lPyc7CiRsYW5nWyd0aXRsZV9yZXN0cmljdF90b19ncm91cCddPSdSZXN0cmljdCB1c2VyIGxpc3QgdG8gdXNlcnMgaW4gc3BlY2lmaWVkIGdyb3VwJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRfZGF0YWJhc2VfZGF0YSddID0gJ0VuY3J5cHQgZGF0YSBzdG9yZWQgaW4gZGF0YWJhc2UnOwokbGFuZ1sndGl0bGVfY3J5cHRfY2VydCddID0gJ0NlcnRpZmljYXRlIGZvciBlbmNyeXB0aW5nIGRhdGEnOwokbGFuZ1sndGl0bGVfZW5jcnlwdGlvbl9rZXlmaWxlJ10gPSAnUGFzc3BocmFzZSBvciBwYXRoIHRvIGZpbGUgY29udGFpbmluZyBwYXNzcGhyYXNlLiAoSWYgdXNpbmcgT3BlblNTTCwgdGhpcyBpcyB0aGUgcGFzc3BocmFzZSBmb3IgdGhlIHByaXZhdGUga2V5KSc7CiRsYW5nWyd0aXRsZV9lbmNyeXB0X3NvcnRmaWVsZHMnXSA9ICdIYXNoIHNvcnQgZmllbGRzPyc7CiRsYW5nWyd0aXRsZV9wcml2YXRlX2tleSddID0gJ1ByaXZhdGUgS2V5IHRvIHVzZSBmb3IgZW5jcnlwdGluZyBkYXRhJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRfc29ydGZpZWxkc19oZWxwJ10gPSAnVGhpcyBoYXNoZXMgdGhlIHNvcnQgZmllbGRzLCBidXQgbGVhdmVzIHRoZSBmaXJzdCBmZXcgbGV0dGVycyB1bmVuY3J5cHRlZC4gQ3J5cHRvZ3JhcGhpY2FsbHksIHRoaXMgY3JlYXRlcyBhIHZ1bG5lcmFiaWxpdHksIGJ1dCBmb3IgbW9zdCB1c2VycyBpdCBpcyBhbiBhY2NlcHRhYmxlIHRyYWRlb2ZmIGJldHdlZW4gc2VjdXJpdHkgYW5kIHRoZSBhYmlsaXR5IHRvIHNvcnQgcmVjb3Jkcy4gU29ydGluZyBiZWNvbWVzIGFwcHJveGltYXRlLCBidXQgd2lsbCByZW1haW4gcHJldHR5IGdvb2QuIElmIHlvdSBkbyBub3QgdXNlIHRoaXMgb3B0aW9uLCBzb3J0IGZpZWxkcyBhcmUgc3RvcmVkIGluIHBsYWludGV4dC4nOwokbGFuZ1sndGl0bGVfZW5jcnlwdGlvbl9mdW5jdGlvbnMnXSA9ICdTdG9yYWdlIEVuY3J5cHRpb24gVW5hdmFpbGFibGUnOwokbGFuZ1sndGl0bGVfaW5zdGFsbF9jcnlwdG8nXSA9ICdQbGVhc2UgaW5zdGFsbCB0aGUgT3BlblNTTCBtb2R1bGUgb3IgbWNyeXB0IHN1cHBvcnQgaWYgeW91IHdvdWxkIGxpa2UgdG8gZW5hYmxlIGRhdGFiYXNlIGVuY3J5cHRpb24uJzsKJGxhbmdbJ3RpdGxlX2luc3RhbGxfY3VybCddID0gJ1BsZWFzZSBtYWtlIHN1cmUgeW91IGhhdmUgQ1VSTCBzdXBwb3J0IGFjdGl2ZSBpbiB5b3VyIFBIUCBpbnN0YWxsLiBTZWUgaHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9ib29rLmN1cmwucGhwJzsKJGxhbmdbJ3RpdGxlX21sZV92ZXJzaW9uJ10gPSAnUnVuIGluIE1MRSBNb2RlJzsKJGxhbmdbJ3RpdGxlX21sZV92ZXJzaW9uX2xvbmcnXSA9ICdDaGFuZ2VzL3N1cHBvcnQgZm9yIENNU01TIE11bHRpLUxhbmd1YWdlIEVkaXRpb24gZm9yay4gRG8gbm90IGNoZWNrIHRoaXMgaWYgeW91IGFyZSBub3QgcnVubmluZyB0aGUgTUxFIHZlcnNpb24uJzsKJGxhbmdbJ3RpdGxlX2Vuc3VyZV9jZXJ0X2tleV9tYXRjaCddID0gJ0Vuc3VyZSB0aGF0IHlvdSBzZWxlY3QgdGhlIHByaXZhdGUga2V5IHRoYXQgaXMgYXBwcm9wcmlhdGUgZm9yIHRoZSBjZXJ0aWZpY2F0ZSB5b3UgYXJlIHVzaW5nIGZvciBlbmNyeXB0aW9uISc7CiRsYW5nWydjaG9vc2VfY3J5cHQnXSA9ICdFbmNyeXB0aW9uIExpYnJhcnknOwokbGFuZ1sndGl0bGVfZW5jcnlwdF9kYXRhYmFzZV9sb25nJ10gPSAnQ2hlY2sgdGhpcyB0byBlbmNyeXB0IHRoZSBzdG9yZWQgZGF0YS4gVGhpcyBtYWtlcyBpdCBtb3JlIGRpZmZpY3VsdCAoYnV0IG5vdCBpbXBvc3NpYmxlKSBmb3IgaGFja2VycyB0byB2aWV3IHRoZSBpbmZvcm1hdGlvbi4nOwokbGFuZ1snY2hvb3NlX2NyeXB0X2xvbmcnXSA9ICdUaGUgb3B0aW9ucyBiZWxvdyBvbmx5IGFwcGx5IGlmIHlvdSBhcmUgdXNpbmcgdGhlIE9wZW5TU0wgRW5jcnlwdGlvbiBsaWJyYXJ5JzsKJGxhbmdbJ3RpdGxlX2NyeXB0X2xpYiddPSdFbmNyeXB0aW9uIExpYnJhcnknOwokbGFuZ1snb3BlbnNzbCddID0gJ09wZW5TU0wgTGlicmFyeSc7CiRsYW5nWydtY3J5cHQnXSA9ICdQSFAgbWNyeXB0IExpYnJhcnknOwokbGFuZ1sndGl0bGVfZmV1X2JpbmRpbmcnXSA9ICdGcm9udGVuZCBVc2VyIGJpbmRpbmcnOwokbGFuZ1sndGl0bGVfaW5zdGFsbF9mZXUnXSA9ICdQbGVhc2UgaW5zdGFsbCB0aGUgRnJvbnRlbmQgVXNlciBtb2R1bGUgdG8gY29ubmVjdCBhIGZvcm0gYW5kIGl0cyBkYXRhIHRvIGEgc3BlY2lmaWMgdXNlcic7CiRsYW5nWyd0aXRsZV9mZXVfYmluZF9oZWxwJ10gPSAnQ2hlY2sgdGhpcyB0byBsb2NrIGZyb250LWVuZCBhY2Nlc3MgdG8gdGhpcyBmb3JtXCdzIGRhdGEgdG8gdGhlIGxvZ2dlZC1pbiBmcm9udC1lbmQgdXNlci4nOwokbGFuZ1sndGl0bGVfZW5jcnlwdGlvbiddID0gJ0VuY3J5cHRpb24nOwokbGFuZ1sndGl0bGVfZXhwb3J0X2Zvcm1fdG9fdWR0J10gPSAnRXhwb3J0IGZvcm0gcmVmZXJlbmNlIHRvIFVEVCBhcyAkcGFyYW1zW1wnRk9STVwnXT8gKGRvIG5vdCBkbyB0aGlzIGlmIHlvdSBhcmUgZ29pbmcgdG8gcHJpbnRfcigkcGFyYW1zKSApJzsKJGxhbmdbJ3RpdGxlX3VybF9oZWxwJ10gPSAnRW50aXJlIFVSTCwgaW5jbHVkaW5nIHByb3RvY29sIGFuZCBwYXRoIChlLmcuLCBodHRwOi8vbXlob3N0LmNvbS9mb3JtX2hhbmRsZXIuY2dpKSc7CiRsYW5nWyd0aXRsZV91cmwnXSA9ICdGb3JtIHN1Ym1pc3Npb24gVVJMJzsKJGxhbmdbJ3RpdGxlX21ldGhvZCddID0gJ0Zvcm0gbWV0aG9kJzsKJGxhbmdbJ3RpdGxlX21hcHNfdG8nXSA9ICdNYXAgZmllbGQgIiVzIiB0byBmb3JtIHN1Ym1pc3Npb24gdmFyaWFibGUnOwokbGFuZ1sndGl0bGVfYWRkaXRpb25hbCddID0gJ0FkZGl0aW9uYWwgc3VibWlzc2lvbic7CiRsYW5nWyd0aXRsZV9hZGRpdGlvbmFsX2hlbHAnXSA9ICdBbnl0aGluZyB0byBiZSBhcHBlbmRlZCB0byB0aGUgc3VibWlzc2lvbiBwYXlsb2FkLCBpbiBVUkwtZW5jb2RlZCBmb3JtICguZS5nLCAidXNlcj1zdGV2ZStqb2JzJmVtcGxveWVlX251bWJlcj0xKSc7CiRsYW5nWyd0aXRsZV9pbmNsdWRlX2luX3N1Ym1pc3Npb24nXSA9ICdJbmNsdWRlIGZpZWxkIGluIFN1Ym1pc3Npb24nOwokbGFuZ1sndGl0bGVfZGF0ZV9vcmRlciddPSdEYXRlIGNvbXBvbmVudCBmaWVsZCBvcmRlciAoZm9yIGlucHV0KSc7CiRsYW5nWyd0aXRsZV9kYXRhX3N0b3JlZF9pbl9mYnInXSA9ICdEYXRhIHdpbGwgYmUgc3RvcmVkIGluIGFuIFhNTCBmb3JtYXQgaW4gdGhlIFtQUkVGSVhdX21vZHVsZV9mYl9mcm9tYnJvd3NlciBkYXRhYmFzZSB0YWJsZS4nOwokbGFuZ1snZXJyb3JfaGFzX25vX2ZiX2ZpZWxkJ10gPSAnRXJyb3IhIEVpdGhlciB0aGUgZm9ybSBoYXMgbm8gZm9ybV9idWlsZGVyIGRpc3Bvc2l0aW9uLCBvciBpdCBmYWlsZWQgdG8gaW5zdGFudGlhdGUgKGR1ZSB0byBtZW1vcnkgaXNzdWVzPyknOwokbGFuZ1snaGVscF9kYXRlX29yZGVyJ109J1VzZSAibSIgZm9yIE1vbnRoLCAiZCIgZm9yIERheSwgYW5kICJ5IiBmb3IgWWVhci4gU2VwYXJhdGUgdGhlIGl0ZW1zIGJ5IGh5cGhlbnMuJzsKJGxhbmdbJ3Jlc3RyaWN0ZWRfdG9fZ3JvdXAnXSA9ICdPbmx5IGluIGdyb3VwICVzJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdG9fdXNlciddID0gJ0Rpc3BsYXkgdG8gdXNlcj8nOwokbGFuZ1snaGVscF9sZWF2ZWVtcHR5J10gPSAnVGhpcyBmaWVsZCBtYXkgYmUgbGVmdCBlbXB0eSc7CiRsYW5nWydoZWxwX3ZhcmlhYmxlc19mb3JfdGVtcGxhdGUnXT0nVmFyaWFibGVzIEZvciBUZW1wbGF0ZSc7CiRsYW5nWydoZWxwX3ZhcmlhYmxlc19mb3JfY29tcHV0YXRpb24nXT0nVmFyaWFibGVzIEF2YWlsYWJsZSc7CiRsYW5nWydoZWxwX3BocF92YXJpYWJsZV9uYW1lJ10gPSAnUEhQIHZhcmlhYmxlJzsKJGxhbmdbJ2hlbHBfc3VibWlzc2lvbl9kYXRlJ109J0RhdGUgb2YgU3VibWlzc2lvbic7CiRsYW5nWydoZWxwX3NlcnZlcl9uYW1lJ109J1lvdXIgc2VydmVyJzsKJGxhbmdbJ2hlbHBfc3ViX3NvdXJjZV9pcCddPSdJUCBhZGRyZXNzIG9mIHBlcnNvbiB1c2luZyBmb3JtJzsKJGxhbmdbJ2hlbHBfc3ViX3VybCddPSdVUkwgb2YgcGFnZSBjb250YWluaW5nIGZvcm0nOwokbGFuZ1snaGVscF9mYl92ZXJzaW9uJ109J0Zvcm1CdWlsZGVyIHZlcnNpb24nOwokbGFuZ1snaGVscF90YWInXT0nVGFiIENoYXJhY3Rlcic7CiRsYW5nWydoZWxwX290aGVyX2ZpZWxkcyddPSdBbHRlcm5hdGUgZmllbGQgbmFtZXMgY2FuIGJlIHVzZWQgaW50ZXJjaGFuZ2VhYmx5IChlc3BlY2lhbGx5IHVzZWZ1bCBpZiBTbWFydHkgaXMgY2hva2luZyBvbiBjaGFyYWN0ZXJzIG91dHNpZGUgb2YgQVNDSUkgMzItMTI2KS4gPGJyIC8+T3RoZXIgZmllbGRzIHdpbGwgYmUgYXZhaWxhYmxlIGFzIHlvdSBhZGQgdGhlbSB0byB0aGUgZm9ybS4nOwokbGFuZ1snaGVscF9hcnJheV9maWVsZHMnXT0nWWV0IGFub3RoZXIgd2F5IG9mIGFjY2Vzc2luZyBmaWVsZCB2YWx1ZXMgaXMgdmlhICRmaWVsZG5hbWVfb2JqLCAkYWxpYXNfb2JqLCBvciAkZmxkXyNfb2JqLCB3aGVyZSBlYWNoIGZpZWxkIGlzIGFuIG9iamVjdCBjb250YWluZ2luZzo8YnIgLz48dGFibGU+Cjx0cj48dGQgY2xhc3M9Im9kZCI+bmFtZTwvdGQ+PHRkIGNsYXNzPSJvZGQiPkZpZWxkIE5hbWU8L3RkPjwvdHI+Cjx0cj48dGQ+dHlwZTwvdGQ+PHRkPkZpZWxkIFR5cGU8L3RkPjwvdHI+Cjx0cj48dGQgY2xhc3M9Im9kZCI+aWQ8L3RkPjx0ZCBjbGFzcz0ib2RkIj5JbnRlcm5hbCBGaWVsZCBJRDwvdGQ+PC90cj4KPHRyPjx0ZD52YWx1ZTwvdGQ+PHRkPkh1bWFuLXJlYWRhYmxlIFZhbHVlPC90ZD48L3RyPgo8dHI+PHRkIGNsYXNzPSJvZGQiPnZhbHVlQXJyYXk8L3RkPjx0ZCBjbGFzcz0ib2RkIj5BcnJheSBvZiBmaWVsZCB2YWx1ZShzKTwvdGQ+PC90cj48L3RhYmxlPjxlbT5lLmcuPC9lbT4sIHlvdSBjb3VsZCB1c2UgInskZmxkXzFfb2JqLT5uYW1lfSA9IHskZmxkXzFfb2JqLT52YWx1ZX0nOwokbGFuZ1snaGVscF9kYXRlX2Zvcm1hdCddPSdTZWUgPGEgaHJlZj0iaHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5kYXRlLnBocCIgdGFyZ2V0PV9ORVc+dGhlIFBIUCBNYW51YWw8L2E+IGZvciBmb3JtYXR0aW5nIGhlbHAuJzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVfbmFtZSddPSdWYXJpYWJsZSc7CiRsYW5nWydoZWxwX2Zvcm1fZmllbGQnXT0nRmllbGQgUmVwcmVzZW50ZWQnOwokbGFuZ1snbGlua19iYWNrX3RvX2Zvcm0nXT0nJiMxNzE7IEJhY2sgdG8gRm9ybSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX3RlbXBsYXRlJ109J0NyZWF0ZSBTYW1wbGUgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9odG1sX3RlbXBsYXRlJ109J0NyZWF0ZSBTYW1wbGUgSFRNTCBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2hlYWRlcl90ZW1wbGF0ZSddPSdDcmVhdGUgU2FtcGxlIEhlYWRlciBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2Zvb3Rlcl90ZW1wbGF0ZSddPSdDcmVhdGUgU2FtcGxlIEZvb3RlciBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2hlYWRlciddPSdDcmVhdGUgU2FtcGxlIEhlYWRlcic7CiRsYW5nWydoZWxwX3RhYl9zeW1ib2wnXT0nYSB0YWIgY2hhcmFjdGVyJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfdGVtcGxhdGUnXT0nVGVtcGxhdGUgZm9yIG9uZSBsaW5lIG9mIG91dHB1dCBmaWxlJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfaGVhZGVyJ109J1RlbXBsYXRlIGZvciB0aGUgaGVhZGVyIG9mIG91dHB1dCBmaWxlJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfZm9vdGVyJ109J1RlbXBsYXRlIGZvciB0aGUgZm9vdGVyIG9mIG91dHB1dCBmaWxlJzsKJGxhbmdbJ3RpdGxlX2NvbmZpcm1hdGlvbl91cmwnXT0nVVJMIHRvIGNsaWNrIGZvciBmb3JtIGNvbmZpcm1hdGlvbic7CiRsYW5nWyd0aXRsZV92YWx1ZSddID0gJ1ZhbHVlIChzZWUgQWR2YW5jZWQgVGFiIGlmIHlvdSB1c2UgU21hcnR5IHRhZ3MpJzsKJGxhbmdbJ3RpdGxlX2RhdGVfZm9ybWF0J109J0RhdGUgRm9ybWF0IGZvciBkaXNwbGF5IChzdGFuZGFyZCA8YSBocmVmPSJodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwIj5QSFAgRGF0ZSBGb3JtYXRzPC9hPiknOwokbGFuZ1sndGl0bGVfdXNlX3d5c2l3eWcnXT0nVXNlIFdZU0lXWUcgZWRpdG9yIGZvciB0ZXh0IEFyZWEgKEFkbWluIHNpZGUgb25seSk/JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9hY3Rpb25zJ10gPSAnRm9ybSBTdWJtaXNzaW9uIEJlaGF2aW9yJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9sYWJlbHMnXSA9ICdTdWJtaXNzaW9uIEJ1dHRvbiBMYWJlbHMnOwokbGFuZ1sndGl0bGVfc29ydGFibGVfZmllbGQnXSA9ICdTb3J0YWJsZSBGaWVsZCAjJXMnOwokbGFuZ1sndGl0bGVfc3VibWl0X2hlbHAnXSA9ICdUaGlzIHBhZ2UgbGV0cyB5b3UgY3VzdG9taXplIEZvcm0gU3VibWlzc2lvbi4gSXQgZG9lc25cJ3QgZGV0ZXJtaW5lIHdoYXQgdGhlIEZvcm0gQnVpbGRlciBkb2VzIHdpdGggdGhlIHN1Ym1pdHRlZCBkYXRhLiBZb3UgY2FuIHNldCB0aGF0IHVwIGJ5IGFkZGluZyAiRGlzcG9zaXRpb24iIGZpZWxkcyB0byB5b3VyIGZvcm0uJzsKJGxhbmdbJ3RpdGxlX3N0YXJ0X3llYXInXSA9ICdZZWFyIHJhbmdlIHN0YXJ0JzsKJGxhbmdbJ3RpdGxlX2VuZF95ZWFyJ10gPSAnWWVhciByYW5nZSBlbmQnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF95ZWFyJ10gPSAnRGVmYXVsdCBZZWFyJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfeWVhcl9oZWxwJ10gPSAnKFNldCB0byAtMSBmb3IgZGVmYXVsdCB5ZWFyIHRvIGJlIHRoZSBjdXJyZW50IHllYXIpJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9hY3Rpb24nXSA9ICdBZnRlciBmb3JtIGlzIHN1Ym1pdHRlZCc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfcmVzcG9uc2UnXSA9ICdSZXNwb25zZSB0byBkaXNwbGF5JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9kYXRlJ109J0RhdGUgU3VibWl0dGVkJzsKJGxhbmdbJ3RpdGxlX2FwcHJvdmFsX2RhdGUnXT0nRGF0ZSBBcHByb3ZlZCAoYnkgYWRtaW4pJzsKJGxhbmdbJ3RpdGxlX3VzZXJfYXBwcm92ZWQnXT0nRGF0ZSBBcHByb3ZlZCAoYnkgc3VibWl0dGVyKSc7CiRsYW5nWydkaXNwbGF5X3RleHQnXSA9ICdEaXNwbGF5ICJTdWJtaXNzaW9uIFRlbXBsYXRlIic7CiRsYW5nWydyZWRpcmVjdF90b19wYWdlJ10gPSAnUmVkaXJlY3QgdG8gc2l0ZSBwYWdlJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9yZXNwb25zZV9oZWxwJ10gPSAnVGhpcyB0ZW1wbGF0ZSBpcyBmb3IgZGlzcGxheSB0byB0aGUgdXNlciBhZnRlciB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQuIFRoaXMgdGVtcGxhdGUgZG9lcyBub3QgZWZmZWN0IGVtYWlscyBnZW5lcmF0ZWQgb3Igb3RoZXIgZm9ybSBkaXNwb3NpdGlvbnMgLS0geW91IHNldCB0aG9zZSB0ZW1wbGF0ZXMgKHdoZXJlIGFwcHJvcHJpYXRlKSBpbiB0aGUgImFkdmFuY2VkIiB0YWIgZm9yIHRob3NlIGRpc3Bvc2l0aW9uIGZpZWxkcy4nOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fcGFnZSddID0gJ0Rlc3RpbmF0aW9uIFBhZ2UnOwokbGFuZ1sndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzJ10gPSAnUmVxdWlyZSBGaWVsZG5hbWVzJzsKJGxhbmdbJ3RpdGxlX3JlcXVpcmVfZmllbGRuYW1lc19sb25nJ10gPSAnUmVxdWlyZSBmaWVsZHMgdG8gaGF2ZSBhIG5hbWU/JzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWVsZG5hbWVzJ10gPSAnUmVxdWlyZSBVbmlxdWUgRmllbGRuYW1lcyc7CiRsYW5nWyd0aXRsZV91bmlxdWVfZmllbGRuYW1lc19sb25nJ10gPSAnUmVxdWlyZSBmaWVsZHMgdG8gaGF2ZSB1bmlxdWUgbmFtZXM/JzsKJGxhbmdbJ3RpdGxlX3Jlb3JkZXJfZm9ybSddID0gJ1Jlb3JkZXIgRmllbGRzJzsKJGxhbmdbJ3RpdGxlX2xvYWRfdGVtcGxhdGUnXSA9ICdMb2FkIHRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2FkZF9idXR0b25fdGV4dCddID0gJ0FkZCBCdXR0b24gdGV4dCc7CiRsYW5nWyd0aXRsZV9kZWxfYnV0dG9uX3RleHQnXSA9ICdEZWxldGUgQnV0dG9uIHRleHQnOwokbGFuZ1sndGl0bGVfZmllbGRfaGVscHRleHQnXSA9ICdIZWxwLXRleHQgdG8gZGlzcGxheSB3aXRoIHRoaXMgZmllbGQnOwokbGFuZ1sndGl0bGVfc3RyaW5nX29yX251bWJlcl9ldmFsJ10gPSAnSW50ZXJwcmV0IHZhcmlhYmxlcyBhcyBiZWluZyBudW1iZXJzIG9yIHN0cmluZ3MnOwokbGFuZ1sndGl0bGVfb3JkZXInXT0nSW50ZXJwcmV0YXRpb24gT3JkZXInOwokbGFuZ1sndGl0bGVfb3JkZXJfaGVscCddPSdJZiBtb3JlIHRoYW4gb25lIENvbXB1dGVkIEZpZWxkIGV4aXN0cywgdGhleSB3aWxsIGJlIGNvbXB1dGVkIGZyb20gbG93ZXN0IG9yZGVyIG51bWJlciB0byBoaWdoZXN0IG9yZGVyIG51bWJlcic7CiRsYW5nWyd0aXRsZV9zdHJpbmdfdW5zcGFjZWQnXSA9ICdTdHJpbmcgKG5vIHNwYWNlcyBiZXR3ZWVuIGZpZWxkcyk/JzsKJGxhbmdbJ3RpdGxlX2NvbXB1dGVfdmFsdWUnXSA9ICdWYWx1ZSB0byBjb21wdXRlJzsKJGxhbmdbJ3RpdGxlX2NvbXB1dGUnXSA9ICdDb21wdXRlZC9QSFAnOwokbGFuZ1sndGl0bGVfc3RyaW5nJ10gPSAnU3RyaW5nJzsKJGxhbmdbJ3RpdGxlX251bWVyaWMnXSA9ICdOdW1lcmljJzsKJGxhbmdbJ3RpdGxlX2lubGluZV9mb3JtJ10gPSAnRGlzcGxheSBmb3JtIGlubGluZT8nOwokbGFuZ1sndGl0bGVfaW5saW5lX2Zvcm1faGVscCddID0gJ0lubGluZSBtZWFucyBhbnkgZm9ybSBmb2xsb3d1cCByZXBsYWNlcyB0aGUge0Zvcm1CdWlsZGVyfSB0YWcsIG5vbi1pbmxpbmUgcmVwbGFjZXMgdGhlIHtjb250ZW50fSB0YWcuJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2RlZmF1bHRfdmFsdWUnXSA9ICdEZWZhdWx0IHZhbHVlIGZvciBmaWVsZCc7CiRsYW5nWyd0aXRsZV9jbGVhcl9kZWZhdWx0J10gPSAnQ2xlYXIgZGVmYXVsdCBvbiBjbGljaz8nOwokbGFuZ1sndGl0bGVfY2xlYXJfZGVmYXVsdF9oZWxwJ10gPSAnQ2hlY2sgdGhpcyB0byBjbGVhciB0aGUgZGVmYXVsdCB2YWx1ZSB3aGVuIHRoZSB1c2VyIGNsaWNrcyB0aGlzIGZpZWxkLiBTaW5jZSB0aGlzIHVzZXMgYSBqYXZhc2NyaXB0IHN0cmluZyBjb21wYXJlLCBpdCB3aWxsIGZhaWwgaWYgeW91IHB1dCBzaW5nbGUgcXVvdGVzIGluIHlvdXIgZGVmYXVsdCB0ZXh0LiBPdGhlciB1bi1qYXZhc2NyaXB0LWZyaWVuZGx5IGNoYXJhY3RlcnMgbWF5IGFsc28gY2F1c2UgaXQgdG8gZmFpbC4nOwokbGFuZ1sndGl0bGVfcmVtb3ZlX2ZpbGVfZnJvbV9zZXJ2ZXInXSA9ICdEZWxldGUgdXBsb2FkZWQgZmlsZSBmcm9tIHNlcnZlciBhZnRlciBwcm9jZXNzaW5nIChlbWFpbCBkaXNwb3NpdGlvbnMpJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2phdmFzY3JpcHQnXSA9ICdKYXZhc2NyaXB0IGZvciBmaWVsZCc7CiRsYW5nWyd0aXRsZV9maWVsZF9qYXZhc2NyaXB0X2xvbmcnXSA9ICdNYWtlIHRoaXMgdGhlIGNvbXBsZXRlIEphdmFzY3JpcHQgY2FsbCwgaW5jbHVkaW5nIHRoZSBldmVudCB5b3Ugd2FudCB0byB0cmFwLCBlLmcuLCBvbmNsaWNrPSJ5b3VyZm4oKSInOwokbGFuZ1sndGl0bGVfc3VibWl0X2phdmFzY3JpcHQnXSA9ICdGb3JtIFN1Ym1pc3Npb24gSmF2YXNjcmlwdCc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfamF2YXNjcmlwdF9sb25nJ10gPSAnTWFrZSB0aGlzIHRoZSBjb21wbGV0ZSBKYXZhc2NyaXB0IGNhbGwsIGluY2x1ZGluZyB0aGUgZXZlbnQgeW91IHdhbnQgdG8gdHJhcCwgZS5nLiwgb25jbGljaz0ieW91cmZuKCkiLjxiciAvPlRoaXMgd2lsbCBwcm9iYWJseSBub3Qgd29yayB3ZWxsIGlmIHlvdSB1c2UgdGhlICJzYWZldHkgc2NyaXB0IiBvcHRpb24gYWJvdmUuJzsKJGxhbmdbJ2VtYWlsX2Zyb21fYWRkcl9oZWxwJ109J0RvIG5vdCBqdXN0IHBpY2sgYSByYW5kb20gYWRkcmVzcyBoZXJlIC0tIG1hbnkgSVNQcyB3aWxsPGJyIC8+bm90IGRlbGl2ZXIgdGhlIG1haWwgaWYgeW91IGFyZSB1c2luZyBhIGRpZmZlcmVudCBkb21haW4gbmFtZSB0aGFuIHlvdXIgYWN0dWFsPGJyIC8+aG9zdCBuYW1lIChpLmUuLCB1c2Ugc29tZXRoaW5nIGxpa2UgbmFtZUAlcyknOwokbGFuZ1sndGl0bGVfc3dpdGNoX2FkdmFuY2VkJ109J05lZWQgbW9yZSBmaWVsZCB0eXBlcz8gJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9iYXNpYyddPSdUb28gbWFueSBjb25mdXNpbmcgZmllbGQgdHlwZXM/ICc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYWR2YW5jZWRfbGluayddPSdTd2l0Y2ggdG8gQWR2YW5jZWQgTW9kZSc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYmFzaWNfbGluayddPSdTd2l0Y2ggdG8gU2ltcGxlIE1vZGUnOwokbGFuZ1sndGl0bGVfZmlsZV9yb290J109J0RpcmVjdG9yeSB0byBzYXZlIGZpbGUgaW4nOwokbGFuZ1sndGl0bGVfZmlsZV9yb290X2hlbHAnXSA9ICdUaGlzIG5lZWRzIHRvIGJlIGEgZGlyZWN0b3J5IHRoYXQgeW91ciB3ZWIgc2VydmVyIGhhcyBwZXJtaXNzaW9ucyB0byB3cml0ZSBpbi48YnIgLz5DaG1vZCBpdCA3NzcgaWYgeW91IGhhdmUgcHJvYmxlbXMvZG91YnRzLjxiciAvPkFsc28sIGNoZWNrIHRvIHNlZSB0aGF0IHlvdSBkbyBub3QgaGF2ZSBQSFAgZGlyZWN0b3J5IHJlc3RyaWN0aW9ucy4nOwokbGFuZ1sndGl0bGVfbmV3bGluZV9yZXBsYWNlbWVudCddPSdOZXdsaW5lL0NhcnJpYWdlIFJldHVybiByZXBsYWNlbWVudCBjaGFyYWN0ZXInOwokbGFuZ1sndGl0bGVfbmV3bGluZV9yZXBsYWNlbWVudF9oZWxwJ109J0xlYXZlIGJsYW5rIHRvIGFsbG93IG5ld2xpbmVzIGFuZCBjYXJyaWFnZSByZXR1cm5zIGluIG91dHB1dCc7CiRsYW5nWyd0aXRsZV9zZW5kX3VzZXJjb3B5J10gPSAnU2VuZCBVc2VyIGEgQ29weSBvZiBTdWJtaXNzaW9uPyc7CiRsYW5nWyd0aXRsZV9zZW5kX3VzZXJjb3B5X2xhYmVsJ10gPSAnTGFiZWwgZm9yIENoZWNrYm94IChpZiB1c2VyIGNob2ljZSknOwokbGFuZ1sndGl0bGVfc2VuZF9tZV9hX2NvcHknXSA9ICdTZW5kIG1lIGEgY29weSBvZiBmb3JtJzsKJGxhbmdbJ3RpdGxlX2FsbG93X3N1YmplY3Rfb3ZlcnJpZGUnXSA9ICdBbGxvdyBzdWJqZWN0IHRvIGJlIG92ZXJyaWRkZW4/JzsKJGxhbmdbJ3RpdGxlX2FsbG93X3N1YmplY3Rfb3ZlcnJpZGVfbG9uZyddID0gJ0FsbG93IFwnRW1haWwgIlN1YmplY3QiIEZpZWxkc1wnIHRvIG92ZXJyaWRlIHRoZSBzdWJqZWN0IHNwZWNpZmllZCBpbiB0aGUgcHVsbGRvd24uJzsKJGxhbmdbJ3RpdGxlX2Rpc3BsYXlfbGVuZ3RoJ10gPSAnRGlzcGxheSBsZW5ndGgnOwokbGFuZ1sndGl0bGVfbWluaW11bV9sZW5ndGgnXSA9ICdNaW5pbXVtIHJlc3BvbnNlIGxlbmd0aCc7CiRsYW5nWyd0aXRsZV9oaWRlJ10gPSAnSGlkZSBpbnB1dCc7CiRsYW5nWyd0aXRsZV9oaWRlX2hlbHAnXSA9ICdTaG93IHN5bWJvbHMgcmF0aGVyIHBsYWluIHRleHQgd2hlbiB1c2VyIGVudGVycyBwYXNzd29yZD8nOwokbGFuZ1sncGFzc3dvcmRfZG9lc19ub3RfbWF0Y2gnXSA9ICdQYXNzd29yZCBkb2VzIG5vdCBtYXRjaCAlcyc7CiRsYW5nWydiYWNrX3RvcCddID0gJ0JhY2sgdG8gRm9ybUJ1aWxkZXIgTWFpbiBQYWdlJzsKJGxhbmdbJ3RpdGxlX2hlYWRlcnNfdG9fbW9kaWZ5J10gPSAnV2hpY2ggZW1haWwgaGVhZGVycyBzaG91bGQgdGhpcyBpbnB1dCBwb3B1bGF0ZT8nOwokbGFuZ1sndGl0bGVfYmxhbmtfaW52YWxpZCddID0gJ0RvIG5vdCBhY2NlcHQgYmxhbmsgc3BhY2UgYXMgdmFsaWQgcmVzcG9uc2UnOwokbGFuZ1sndGl0bGVfYmxhbmtfaW52YWxpZF9sb25nJ10gPSAnSWYgYSBmaWVsZCBpcyByZXF1aXJlZCwgY2hlY2tpbmcgdGhpcyB3aWxsIHJlcXVpcmUgdGhhdCBwZW9wbGUgcHV0IGluIHNvbWUgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMsIG5vdCBqdXN0IHNwYWNlcyc7CiRsYW5nWyd0aXRsZV9tdXN0X3NhdmVfb3JkZXInXSA9ICdZb3UgbXVzdCBjbGljayBvbmUgb2YgdGhlICJzYXZlIiBidXR0b25zIHRvIG1ha2UgeW91ciBuZXcgZmllbGQgb3JkZXIgcGVybWFuZW50Lic7CiRsYW5nWyd0aXRsZV9odG1sNSddID0gJ1VzZSBIVE1MNSBwbGFjZWhvbGRlciB0ZXh0IGluc3RlYWQgb2YgSmF2YXNjcmlwdCc7CiRsYW5nWydlcnJvcl9Db21wYW55RGlyZWN0b3J5X21vZHVsZV9ub3RfYXZhaWxhYmxlJ10gPSAnQ29tcGFueSBEaXJlY3RvcnkgbW9kdWxlIGlzIG5vdCBhdmFpbGFibGUhJzsKJGxhbmdbJ29wdGlvbl9uZXZlciddID0gJ05ldmVyJzsKJGxhbmdbJ29wdGlvbl91c2VyX2Nob2ljZSddID0gJ0dpdmUgdXNlciBhIGNob2ljZSAoY2hlY2tib3gpJzsKJGxhbmdbJ29wdGlvbl9hbHdheXMnXSA9ICdBbHdheXMnOwokbGFuZ1snb3B0aW9uX2Zyb20nXSA9ICciRnJvbSIgZW1haWwgYWRkcmVzcyc7CiRsYW5nWydvcHRpb25fcmVwbHknXSA9ICciUmVwbHktVG8iIGVtYWlsIGFkZHJlc3MnOwokbGFuZ1snb3B0aW9uX2JvdGgnXSA9ICdCb3RoICJGcm9tIiBhbmQgIlJlcGx5LVRvIiBlbWFpbCBhZGRyZXNzZXMnOwokbGFuZ1snb3B0aW9uX2Ryb3Bkb3duJ109J0Ryb3Bkb3duJzsKJGxhbmdbJ29wdGlvbl9zZWxlY3RsaXN0X3NpbmdsZSddPSdTZWxlY3QgTGlzdCAoc2luZ2xlKSc7CiRsYW5nWydvcHRpb25fc2VsZWN0bGlzdF9tdWx0aXBsZSddPSdTZWxlY3QgTGlzdCAobXVsdGlwbGUpJzsKJGxhbmdbJ29wdGlvbl9yYWRpb2dyb3VwJ109J1JhZGlvIEdyb3VwJzsKJGxhbmdbJ3RpdGxlX2NvbXBhbnlfZmllbGRfbm90ZSddPSdOb3RlOiBPdXRwdXQgd2lsbCBiZSBpbiB0aGUgZm9ybSBvZjxici8+ImNvbXBhbnkgbmFtZSI9PiJ2YWx1ZSInOwokbGFuZ1sndGl0bGVfcGlja19jYXRlZ29yaWVzJ109J1BpY2sgYSBjYXRlZ29yeSAobXVsdGlwbGUpJzsKJGxhbmdbJ3RpdGxlX3BpY2tfZmllbGRkZWYnXT0nUHVsbCBhIGZpZWxkIERlZmluaXRpb25cJ3MgdmFsdWUgKHNpbmdsZSkgPGVtPm9wdGlvbmFsPC9lbT4nOwokbGFuZ1sndGl0bGVfY2hvb3NlX3VzZXJfaW5wdXQnXT0nQ2hvb3NlIFVzZXIgaW5wdXQnOwokbGFuZ1sndGl0bGVfc2VlX2Fsc29fdWR0J109JyhBbHNvIHRha2UgYSBsb29rIGF0IHRoZSBGb3JtIFN1Ym1pc3Npb24gdGFiIGlmIHlvdSB3YW50IHRvIHNldCBhIFVEVCBmb3IgZm9ybSB2YWxpZGF0aW9uKSc7CiRsYW5nWyd0aXRsZV95ZWFyX2VuZF9tZXNzYWdlJ109J0VuZCB5ZWFyJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2xvZ2ljJ109J1NtYXJ0eSBkYXRhIG9yIGxvZ2ljIHRoYXQgaXMgbWVhbnQgdG8gYmUgc2VudCB3aXRoIHRoaXMgZmllbGQnOwokbGFuZ1sndGl0bGVfZmllbGRfbG9naWNfbG9uZyddPSdDYW4gYmUgc21hcnR5IGRhdGEsIGphdmFzY3JpcHQsIG9yIHNvbWUgb3RoZXIgZGF0YSB5b3Ugd2FuXCd0IHRvIHNlbnQgYWxvbmcgd2l0aCB0aGlzIGZpZWxkLjxiciAvPkdvZXMgdGhyb3VnaCB0aGUgU21hcnR5IGNvbXBpbGVyLCBzbyByZW1lbWJlciB1c2Uge2xpdGVyYWx9ey9saXRlcmFsfSB0YWdzIHdpdGggJmx0O3NjcmlwdCZndDsmbHQ7L3NjcmlwdCZndDsnOwokbGFuZ1sndGl0bGVfZmllbGRfaW5jbHVkZWxhYmVscyddPSdJbmNsdWRlIGxhYmVscyc7CiRsYW5nWyd0aXRsZV9maWVsZF9pbmNsdWRlbGFiZWxzX2hlbHAnXT0nRW5hYmxpbmcgdGhpcyBpbmNsdWRlcyBsYWJlbHMgdG8gb3V0cHV0LiBleGFtcGxlIC0gbGFiZWw6IHZhbHVlLGxhYmVsMjogdmFsdWUyJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3NpYmxpbmdzJ109J0xpbmsgdGhpcyBmaWVsZCB0byBpdFwncyBzaWJsaW5nJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3NpYmxpbmdzX2hlbHAnXT0nRHJvcGRvd24gbGlzdHMgYWxsIHNpYmxpbmdzIG9mIHRoaXMgZmllbGQgYW5kIGFsbG93cyB5b3UgdG8gbGluayB0aGlzIGZpZWxkIHRvIG9uZSBvZiBpdFwncyBzaWJsaW5nLiBNYWtlcyBwb3NzaWJsZSBjb250cm9sbGluZyB0aGlzIGZpZWxkIHdpdGggc2VsZWN0ZWQgc2libGluZyBjb250cm9scy4nOwokbGFuZ1sndGl0bGVfZmllbGRfaGlkZWJ1dHRvbnMnXT0nSGlkZSBjb250cm9sIGJ1dHRvbnMnOwokbGFuZ1sndGl0bGVfZmllbGRfaGlkZWJ1dHRvbnNfaGVscCddPSdIaWRlcyBmcm9udGVuZCBjb250cm9sIGJ1dHRvbnMgb2YgdGhpcyBmaWVsZC4nOwokbGFuZ1sndGl0bGVfbm90ZSddPSdOb3RlJzsKJGxhbmdbJ3RpdGxlX2NoYW5naW5nX3RyaWdnZXJzX3JlaW5kZXgnXT0nQ2hhbmdpbmcgYW55IG9mIHRoZSBhYm92ZSBmaWVsZHMgd2lsbCB0cmlnZ2VyIGEgcmVpbmRleCBvZiAqYWxsKiBzYXZlZCByZWNvcmRzLCBzbyBpdCBjb3VsZCB0YWtlIGEgd2hpbGUuJzsKJGxhbmdbJ2lsbGVnYWxfZmlsZSddPSdBdHRlbXB0ZWQgdXBsb2FkIG9mIGlsbGVnYWwgZmlsZSB0eXBlICglcykgZnJvbSAlcyc7CiRsYW5nWyd0aXRsZV9zZWFyY2hhYmxlJ109J01ha2UgcmVjb3JkcyBhY2Nlc3NpYmxlIHRvIFNlYXJjaCBNb2R1bGUnOwokbGFuZ1sndGl0bGVfc2VhcmNoYWJsZV9oZWxwJ109J0NoZWNraW5nIHRoaXMgd2lsbCBtYWtlIGFsbCBzdWJtaXR0ZWQgZGF0YSBhY2Nlc3NpYmxlIHRvIHRoZSBTZWFyY2ggTW9kdWxlLiBETyBOT1QgdXNlIHRoaXMgaWYgeW91IGVuY3J5cHQgeW91ciBkYXRhIC0tIHRoZSBpbmZvcm1hdGlvbiBnZXRzIGV4cG9zZWQgdG8gc2VhcmNoIHdoZXRoZXIgb3Igbm90IGl0IGlzIGVuY3J5cHRlZCEnOwokbGFuZ1sndXBsb2FkZWRfb3V0c2lkZV93ZWJyb290J109JyVzIChvdXRzaWRlIHdlYiByb290KSc7CgokbGFuZ1snZXJyb3JfdXNlcnRhZ19kaXNwb3NpdGlvbiddID0gJ1VzZXIgZGVmaW5lZCB0YWcgcmV0dXJuZWQgYW4gZXJyb3InOwokbGFuZ1snZXJyb3JfdXNlcnRhZyddID0gJ1VzZXIgZGVmaW5lZCB0YWcgJXMgcmV0dXJuZWQgYW4gZXJyb3IuJzsKJGxhbmdbJ2Vycm9yX2NhdGFsb2dlcl9tb2R1bGVfbm90X2F2YWlsYWJsZSddPSc8c3Ryb25nPkNhdGFsb2dlciBtb2R1bGUgZG9lcyBub3Qgc2VlbSB0byBiZSBpbnN0YWxsZWQvYWN0aXZlLjwvc3Ryb25nPic7CiRsYW5nWyd3YXJuaW5nJ10gPSAnV0FSTklORyEnOwokbGFuZ1snZGVmYXVsdF90ZW1wbGF0ZSddID0gJ0RlZmF1bHQgVGVtcGxhdGUnOwokbGFuZ1sndGFibGVfbGVmdF90ZW1wbGF0ZSddID0gJ1RhYmxlIFRlbXBsYXRlLCBUaXRsZXMgb24gbGVmdCc7CiRsYW5nWyd0YWJsZV90b3BfdGVtcGxhdGUnXSA9ICdUYWJsZSBUZW1wbGF0ZSwgVGl0bGUgb24gdG9wJzsKJGxhbmdbJ2Zvcm1fdGVtcGxhdGVfbmFtZSddID0gJ1RlbXBsYXRlIGZyb20gJXMnOwokbGFuZ1sndGVtcGxhdGVfYXJlX3lvdV9zdXJlJ109J0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBvdmVyd3JpdGUgeW91ciB0ZW1wbGF0ZSB3aXRoIHRoZSBzZWxlY3RlZCB0ZW1wbGF0ZT8gKEV2ZW4gaWYgeW91IHNheSBPSywgeW91IHdpbGwgc3RpbGwgbmVlZCB0byBzYXZlIHRoZSBjaGFuZ2UpJzsKJGxhbmdbJ3RpdGxlX2JhZF9mdW5jdGlvbiddID0gJ0Vycm9yIHdoZW4gY29tcHV0aW5nICIlcyIuJzsKJGxhbmdbJ25vX3JlZmVycmVyX2luZm8nXT0nTm8gSFRUUF9SRUZFUkVSIGluZm8gYXZhaWxhYmxlIChwcm9iYWJseSBkdWUgdG8gdXNlIG9mIFVzZXIgRW1haWwgVmFsaWRhdGlvbiknOwokbGFuZ1sndmFsaWRhdGlvbl9wYXJhbV9lcnJvciddPSdWYWxpZGF0aW9uIFBhcmFtZXRlciBFcnJvci4gUGxlYXNlIG1ha2Ugc3VyZSB5b3UgY29weSB0aGUgVVJMIGZyb20geW91ciBlbWFpbCBjb3JyZWN0bHkhJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVzcG9uc2VfZXJyb3InXT0nVmFsaWRhdGlvbiBSZXNwb25zZSBFcnJvci4gUGxlYXNlIG1ha2Ugc3VyZSB5b3UgY29weSB0aGUgVVJMIGZyb20geW91ciBlbWFpbCBjb3JyZWN0bHkhJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbm9fZmllbGRfZXJyb3InXT0nVmFsaWRhdGlvbiBSZXNwb25zZSBFcnJvci4gTm8gZW1haWwgdmFsaWRhdGlvbiBmaWVsZCBpbiB0aGlzIGZvcm0hJzsKJGxhbmdbJ3VwZ3JhZGUwM3RvMDQnXSA9ICdGb3JtIFRlbXBsYXRlIHdhcyB1cGRhdGVkIGF1dG9tYXRpY2FsbHkgYXMgcGFydCBvZiB0aGUgdmVyc2lvbiAwLjMgdG8gdmVyc2lvbiAwLjQgdXBncmFkZS4gWW91IG1heSBuZWVkIHRvIG1ha2Ugc29tZSBmaXhlcy4gSWYgeW91XCdyZSB1c2luZyB0aGUgZGVmYXVsdCBmb3JtLCBzaW1wbHkgcmVwbGFjZSB0aGlzIHRlbXBsYXRlIHdpdGggImRlZmF1bHQiIHVzaW5nIHRoZSBwdWxsZG93biBhYm92ZS4nOwokbGFuZ1snYWRtaW5kZXNjJ109J0FkZCwgZWRpdCBhbmQgbWFuYWdlIGludGVyYWN0aXZlIEZvcm1zJzsKCiRsYW5nWydvcGVyYXRvcnNfaGVscCddID0gJ0lmIHlvdSB1c2UgU3RyaW5nIGV2YWx1YXRpb24sIHRoZSBvbmx5IG9wZXJhdGlvbiBhdmFpbGFibGUgaXMgY29uY2F0ZW5hdGlvbiAoKykuIElmIHlvdSB1c2UgTnVtYmVyIGV2YWx1YXRpb24geW91IGhhdmUgYmFzaWMsIHZlcnkgc2ltcGxlIG1hdGggKCwgKywgLSwgKiwgLywgKS4gSWYgeW91IHVzZSBDb21wdXRlZC9QSFAgZXZhbHVhdGlvbiwgeW91IGNhbgp1c2UgYW55IGZ1bmN0aW9uIHlvdSB3YW50LCBidXQgeW91IG5lZWQgdG8gcXVvdGUgdGhpbmdzIChzdWJzdGl0dXRpb24gb2NjdXJzIGJlZm9yZSBldmFsdWF0aW9uKSwgZS5nLiwgc3Vic3RyKFwnJGZsZF8yMlwnLDAsMikuXCckZmxkXzIzXCcuJzsgCiRsYW5nWydoZWxwX21vZHVsZV9pbnRlcmZhY2UnXT0nVXNpbmcgTW9kdWxlIEludGVyZmFjZSc7CiRsYW5nWydoZWxwX21vZHVsZV9pbnRlcmZhY2VfbG9uZyddPSc8Yj5UaGlzIGZpZWxkIGlzIHVzZWQgYXMgYSBnYXRld2F5IHRvIG90aGVyIG1vZHVsZXMhPC9iPgpVc2UgaXQgYnkgY3JlYXRpbmcgeW91ciBmb3JtIGVsZW1lbnRzIGluIHRoZSB0ZW1wbGF0ZXMgb2YgdGhlIG90aGVyIG1vZHVsZShzKSB5b3Ugd2lzaCB0byBpbmNvcnBvcmF0ZSwgYW5kIHVzaW5nIHRoZSA8c3Ryb25nPnskRkJpZH08L3N0cm9uZz4gdG8gdGllIGl0IGJhY2sgdG8gRm9ybUJ1aWxkZXIuIEZvciBleGFtcGxlLCB0byBpbmNsdWRlIGZvcm0gb3B0aW9ucyBiYXNlZCBvbiB0aGUgUHJvZHVjdHMgbW9kdWxlLCBjcmVhdGUgdGhlIGZvbGxvd2luZyB0ZW1wbGF0ZSBpbiBQcm9kdWN0czo8YnIvPgo8cHJlPgp7Zm9yZWFjaCBmcm9tPSRpdGVtcyBpdGVtPWVudHJ5fQoJe2Fzc2lnbiB2YXI9TURhdGEgdmFsdWU9XCdcJ30KCXthc3NpZ24gdmFyPUNkIHZhbHVlPVwnXCd9CgkJe2ZvcmVhY2ggZnJvbT0kRkJ2YWx1ZSBpdGVtPU1EYXRhfQoJCQl7YXNzaWduIHZhcj1NRGF0YSB2YWx1ZT1cJzo6XCd8ZXhwbG9kZTokTURhdGF9CgkJCXtpZiAkTURhdGFbMV09PSRlbnRyeS0+aWR9CgkJCQl7YXNzaWduIHZhcj1DZCB2YWx1ZT1cJyBjaGVja2VkPSJjaGVja2VkIlwnfQoJCQl7L2lmfQoJCXsvZm9yZWFjaH0KCSZsdDtkaXYgY2xhc3M9IlByb2R1Y3REaXJlY3RvcnlJdGVtIj4KCQkmbHQ7aW5wdXQgdHlwZT0iY2hlY2tib3giIHZhbHVlPSJ7JGVudHJ5LT5wcmljZX06OnskZW50cnktPmlkfSIgbmFtZT0ieyRGQmlkfVtdIiB7JENkfSAvPnskZW50cnktPnByb2R1Y3RfbmFtZX0gKHskZW50cnktPndlaWdodH17JHdlaWdodF91bml0c30pICZwb3VuZDt7JGVudHJ5LT5wcmljZX0gICAgCgkmbHQ7L2Rpdj4Key9mb3JlYWNofQo8L3ByZT4KPGJyLz4Kd2hlcmUgaW4gdGhlIGlucHV0IGJlbG93IHlvdSBwdXQgc29tZXRoaW5nIGxpa2UgPHN0cm9uZz57UHJvZHVjdHMgY2F0ZWdvcnk9ImNhdCIgc3VtbWFyeXRlbXBsYXRlPSJZb3VyX0ZCX3RlbXBsYXRlIn08L3N0cm9uZz4nOwokbGFuZ1sndGl0bGVfYWRkX3RhZyddID0gJ0FkZCB5b3VyIHRhZyc7CgokbGFuZ1snZGF0ZV9qYW51YXJ5J109J0phbnVhcnknOwokbGFuZ1snZGF0ZV9mZWJydWFyeSddPSdGZWJydWFyeSc7CiRsYW5nWydkYXRlX21hcmNoJ109J01hcmNoJzsKJGxhbmdbJ2RhdGVfYXByaWwnXT0nQXByaWwnOwokbGFuZ1snZGF0ZV9tYXknXT0nTWF5JzsKJGxhbmdbJ2RhdGVfanVuZSddPSdKdW5lJzsKJGxhbmdbJ2RhdGVfanVseSddPSdKdWx5JzsKJGxhbmdbJ2RhdGVfYXVndXN0J109J0F1Z3VzdCc7CiRsYW5nWydkYXRlX3NlcHRlbWJlciddPSdTZXB0ZW1iZXInOwokbGFuZ1snZGF0ZV9vY3RvYmVyJ109J09jdG9iZXInOwokbGFuZ1snZGF0ZV9ub3ZlbWJlciddPSdOb3ZlbWJlcic7CiRsYW5nWydkYXRlX2RlY2VtYmVyJ109J0RlY2VtYmVyJzsKCiRsYW5nWydBRiddPSdBZmdoYW5pc3Rhbic7CiRsYW5nWydBWCddPSdBbGFuZCBJc2xhbmRzJzsKJGxhbmdbJ0FMJ109J0FsYmFuaWEnOwokbGFuZ1snRFonXT0nQWxnZXJpYSc7CiRsYW5nWydBUyddPSdBbWVyaWNhbiBTYW1vYSc7CiRsYW5nWydBRCddPSdBbmRvcnJhJzsKJGxhbmdbJ0FPJ109J0FuZ29sYSc7CiRsYW5nWydBSSddPSdBbmd1aWxsYSc7CiRsYW5nWydBUSddPSdBbnRhcmN0aWNhJzsKJGxhbmdbJ0FHJ109J0FudGlndWEgYW5kIEJhcmJ1ZGEnOwokbGFuZ1snQVInXT0nQXJnZW50aW5hJzsKJGxhbmdbJ0FNJ109J0FybWVuaWEnOwokbGFuZ1snQVcnXT0nQXJ1YmEnOwokbGFuZ1snQVUnXT0nQXVzdHJhbGlhJzsKJGxhbmdbJ0FUJ109J0F1c3RyaWEnOwokbGFuZ1snQVonXT0nQXplcmJhaWphbic7CiRsYW5nWydCUyddPSdCYWhhbWFzJzsKJGxhbmdbJ0JIJ109J0JhaHJhaW4nOwokbGFuZ1snQkInXT0nQmFyYmFkb3MnOwokbGFuZ1snQkQnXT0nQmFuZ2xhZGVzaCc7CiRsYW5nWydCWSddPSdCZWxhcnVzJzsKJGxhbmdbJ0JFJ109J0JlbGdpdW0nOwokbGFuZ1snQlonXT0nQmVsaXplJzsKJGxhbmdbJ0JKJ109J0JlbmluJzsKJGxhbmdbJ0JNJ109J0Jlcm11ZGEnOwokbGFuZ1snQlQnXT0nQmh1dGFuJzsKJGxhbmdbJ0JXJ109J0JvdHN3YW5hJzsKJGxhbmdbJ0JPJ109J0JvbGl2aWEnOwokbGFuZ1snQkEnXT0nQm9zbmlhIGFuZCBIZXJ6ZWdvdmluYSc7CiRsYW5nWydCViddPSdCb3V2ZXQgSXNsYW5kJzsKJGxhbmdbJ0JSJ109J0JyYXppbCc7CiRsYW5nWydJTyddPSdCcml0aXNoIEluZGlhbiBPY2VhbiBUZXJyaXRvcnknOwokbGFuZ1snQk4nXT0nQnJ1bmVpIERhcnVzc2FsYW0nOwokbGFuZ1snQkcnXT0nQnVsZ2FyaWEnOwokbGFuZ1snQkYnXT0nQnVya2luYSBGYXNvJzsKJGxhbmdbJ0JJJ109J0J1cnVuZGknOwokbGFuZ1snS0gnXT0nQ2FtYm9kaWEnOwokbGFuZ1snQ00nXT0nQ2FtZXJvb24nOwokbGFuZ1snQ0EnXT0nQ2FuYWRhJzsKJGxhbmdbJ0NWJ109J0NhcGUgVmVyZGUnOwokbGFuZ1snS1knXT0nQ2F5bWFuIElzbGFuZHMnOwokbGFuZ1snQ0YnXT0nQ2VudHJhbCBBZnJpY2FuIFJlcHVibGljJzsKJGxhbmdbJ1REJ109J0NoYWQnOwokbGFuZ1snQ0wnXT0nQ2hpbGUnOwokbGFuZ1snQ04nXT0nQ2hpbmEnOwokbGFuZ1snQ1gnXT0nQ2hyaXN0bWFzIElzbGFuZCc7CiRsYW5nWydDQyddPSdDb2NvcyAoS2VlbGluZykgSXNsYW5kcyc7CiRsYW5nWydDTyddPSdDb2xvbWJpYSc7CiRsYW5nWydLTSddPSdDb21vcm9zJzsKJGxhbmdbJ0NHJ109J0NvbmdvJzsKJGxhbmdbJ0NEJ109J0NvbmdvLCAgRGVtb2NyYXRpYyBSZXB1YmxpYyc7CiRsYW5nWydDSyddPSdDb29rIElzbGFuZHMnOwokbGFuZ1snQ1InXT0nQ29zdGEgUmljYSc7CiRsYW5nWydDSSddPSdJdm9pcmUgKEl2b3J5IENvYXN0KSc7CiRsYW5nWydIUiddPSdDcm9hdGlhIChIcnZhdHNrYSknOwokbGFuZ1snQ1UnXT0nQ3ViYSc7CiRsYW5nWydDWSddPSdDeXBydXMnOwokbGFuZ1snQ1onXT0nQ3plY2ggUmVwdWJsaWMnOwokbGFuZ1snREsnXT0nRGVubWFyayc7CiRsYW5nWydESiddPSdEamlib3V0aSc7CiRsYW5nWydETSddPSdEb21pbmljYSc7CiRsYW5nWydETyddPSdEb21pbmljYW4gUmVwdWJsaWMnOwokbGFuZ1snVFAnXT0nRWFzdCBUaW1vcic7CiRsYW5nWydFQyddPSdFY3VhZG9yJzsKJGxhbmdbJ0VHJ109J0VneXB0JzsKJGxhbmdbJ1NWJ109J0VsIFNhbHZhZG9yJzsKJGxhbmdbJ0dRJ109J0VxdWF0b3JpYWwgR3VpbmVhJzsKJGxhbmdbJ0VSJ109J0VyaXRyZWEnOwokbGFuZ1snRUUnXT0nRXN0b25pYSc7CiRsYW5nWydFVCddPSdFdGhpb3BpYSc7CiRsYW5nWydGSyddPSdGYWxrbGFuZCBJc2xhbmRzIChNYWx2aW5hcyknOwokbGFuZ1snRk8nXT0nRmFyb2UgSXNsYW5kcyc7CiRsYW5nWydGSiddPSdGaWppJzsKJGxhbmdbJ0ZJJ109J0ZpbmxhbmQnOwokbGFuZ1snRlInXT0nRnJhbmNlJzsKJGxhbmdbJ0ZYJ109J0ZyYW5jZSwgIE1ldHJvcG9saXRhbic7CiRsYW5nWydHRiddPSdGcmVuY2ggR3VpYW5hJzsKJGxhbmdbJ1BGJ109J0ZyZW5jaCBQb2x5bmVzaWEnOwokbGFuZ1snVEYnXT0nRnJlbmNoIFNvdXRoZXJuIFRlcnJpdG9yaWVzJzsKJGxhbmdbJ01LJ109J0YuWS5SLk8uTS4gKE1hY2Vkb25pYSknOwokbGFuZ1snR0EnXT0nR2Fib24nOwokbGFuZ1snR00nXT0nR2FtYmlhJzsKJGxhbmdbJ0dFJ109J0dlb3JnaWEnOwokbGFuZ1snREUnXT0nR2VybWFueSc7CiRsYW5nWydHSCddPSdHaGFuYSc7CiRsYW5nWydHSSddPSdHaWJyYWx0YXInOwokbGFuZ1snR0InXT0nR3JlYXQgQnJpdGFpbiAoVUspJzsKJGxhbmdbJ0dSJ109J0dyZWVjZSc7CiRsYW5nWydHTCddPSdHcmVlbmxhbmQnOwokbGFuZ1snR0QnXT0nR3JlbmFkYSc7CiRsYW5nWydHUCddPSdHdWFkZWxvdXBlJzsKJGxhbmdbJ0dVJ109J0d1YW0nOwokbGFuZ1snR1QnXT0nR3VhdGVtYWxhJzsKJGxhbmdbJ0dGJ109J0d1ZXJuc2V5JzsKJGxhbmdbJ0dOJ109J0d1aW5lYSc7CiRsYW5nWydHVyddPSdHdWluZWEtQmlzc2F1JzsKJGxhbmdbJ0dZJ109J0d1eWFuYSc7CiRsYW5nWydIVCddPSdIYWl0aSc7CiRsYW5nWydITSddPSdIZWFyZCBhbmQgTWNEb25hbGQgSXNsYW5kcyc7CiRsYW5nWydITiddPSdIb25kdXJhcyc7CiRsYW5nWydISyddPSdIb25nIEtvbmcnOwokbGFuZ1snSFUnXT0nSHVuZ2FyeSc7CiRsYW5nWydJUyddPSdJY2VsYW5kJzsKJGxhbmdbJ0lOJ109J0luZGlhJzsKJGxhbmdbJ0lEJ109J0luZG9uZXNpYSc7CiRsYW5nWydJUiddPSdJcmFuJzsKJGxhbmdbJ0lRJ109J0lyYXEnOwokbGFuZ1snSUUnXT0nSXJlbGFuZCc7CiRsYW5nWydJTCddPSdJc3JhZWwnOwokbGFuZ1snSU0nXT0nSXNsZSBvZiBNYW4nOwokbGFuZ1snSVQnXT0nSXRhbHknOwokbGFuZ1snSkUnXT0nSmVyc2V5JzsKJGxhbmdbJ0pNJ109J0phbWFpY2EnOwokbGFuZ1snSlAnXT0nSmFwYW4nOwokbGFuZ1snSk8nXT0nSm9yZGFuJzsKJGxhbmdbJ0taJ109J0themFraHN0YW4nOwokbGFuZ1snS0UnXT0nS2VueWEnOwokbGFuZ1snS0knXT0nS2lyaWJhdGknOwokbGFuZ1snS1AnXT0nS29yZWEgKE5vcnRoKSc7CiRsYW5nWydLUiddPSdLb3JlYSAoU291dGgpJzsKJGxhbmdbJ0tXJ109J0t1d2FpdCc7CiRsYW5nWydLRyddPSdLeXJneXpzdGFuJzsKJGxhbmdbJ0xBJ109J0xhb3MnOwokbGFuZ1snTFYnXT0nTGF0dmlhJzsKJGxhbmdbJ0xCJ109J0xlYmFub24nOwokbGFuZ1snTEknXT0nTGllY2h0ZW5zdGVpbic7CiRsYW5nWydMUiddPSdMaWJlcmlhJzsKJGxhbmdbJ0xZJ109J0xpYnlhJzsKJGxhbmdbJ0xTJ109J0xlc290aG8nOwokbGFuZ1snTFQnXT0nTGl0aHVhbmlhJzsKJGxhbmdbJ0xVJ109J0x1eGVtYm91cmcnOwokbGFuZ1snTU8nXT0nTWFjYXUnOwokbGFuZ1snTUcnXT0nTWFkYWdhc2Nhcic7CiRsYW5nWydNVyddPSdNYWxhd2knOwokbGFuZ1snTVknXT0nTWFsYXlzaWEnOwokbGFuZ1snTVYnXT0nTWFsZGl2ZXMnOwokbGFuZ1snTUwnXT0nTWFsaSc7CiRsYW5nWydNVCddPSdNYWx0YSc7CiRsYW5nWydNSCddPSdNYXJzaGFsbCBJc2xhbmRzJzsKJGxhbmdbJ01RJ109J01hcnRpbmlxdWUnOwokbGFuZ1snTVInXT0nTWF1cml0YW5pYSc7CiRsYW5nWydNVSddPSdNYXVyaXRpdXMnOwokbGFuZ1snWVQnXT0nTWF5b3R0ZSc7CiRsYW5nWydNWCddPSdNZXhpY28nOwokbGFuZ1snRk0nXT0nTWljcm9uZXNpYSc7CiRsYW5nWydNQyddPSdNb25hY28nOwokbGFuZ1snTUQnXT0nTW9sZG92YSc7CiRsYW5nWydNQSddPSdNb3JvY2NvJzsKJGxhbmdbJ01OJ109J01vbmdvbGlhJzsKJGxhbmdbJ01TJ109J01vbnRzZXJyYXQnOwokbGFuZ1snTVonXT0nTW96YW1iaXF1ZSc7CiRsYW5nWydNTSddPSdNeWFubWFyJzsKJGxhbmdbJ05BJ109J05hbWliaWEnOwokbGFuZ1snTlInXT0nTmF1cnUnOwokbGFuZ1snTlAnXT0nTmVwYWwnOwokbGFuZ1snTkwnXT0nTmV0aGVybGFuZHMnOwokbGFuZ1snQU4nXT0nTmV0aGVybGFuZHMgQW50aWxsZXMnOwokbGFuZ1snTlQnXT0nTmV1dHJhbCBab25lJzsKJGxhbmdbJ05DJ109J05ldyBDYWxlZG9uaWEnOwokbGFuZ1snTlonXT0nTmV3IFplYWxhbmQgKEFvdGVhcm9hKSc7CiRsYW5nWydOSSddPSdOaWNhcmFndWEnOwokbGFuZ1snTkUnXT0nTmlnZXInOwokbGFuZ1snTkcnXT0nTmlnZXJpYSc7CiRsYW5nWydOVSddPSdOaXVlJzsKJGxhbmdbJ05GJ109J05vcmZvbGsgSXNsYW5kJzsKJGxhbmdbJ01QJ109J05vcnRoZXJuIE1hcmlhbmEgSXNsYW5kcyc7CiRsYW5nWydOTyddPSdOb3J3YXknOwokbGFuZ1snT00nXT0nT21hbic7CiRsYW5nWydQSyddPSdQYWtpc3Rhbic7CiRsYW5nWydQVyddPSdQYWxhdSc7CiRsYW5nWydQUyddPSdQYWxlc3RpbmlhbiBUZXJyaXRvcnknOwokbGFuZ1snUEEnXT0nUGFuYW1hJzsKJGxhbmdbJ1BHJ109J1BhcHVhIE5ldyBHdWluZWEnOwokbGFuZ1snUFknXT0nUGFyYWd1YXknOwokbGFuZ1snUEUnXT0nUGVydSc7CiRsYW5nWydQSCddPSdQaGlsaXBwaW5lcyc7CiRsYW5nWydQTiddPSdQaXRjYWlybic7CiRsYW5nWydQTCddPSdQb2xhbmQnOwokbGFuZ1snUFQnXT0nUG9ydHVnYWwnOwokbGFuZ1snUFInXT0nUHVlcnRvIFJpY28nOwokbGFuZ1snUUEnXT0nUWF0YXInOwokbGFuZ1snUkUnXT0nUmV1bmlvbic7CiRsYW5nWydSTyddPSdSb21hbmlhJzsKJGxhbmdbJ1JVJ109J1J1c3NpYW4gRmVkZXJhdGlvbic7CiRsYW5nWydSVyddPSdSd2FuZGEnOwokbGFuZ1snR1MnXT0nUy4gR2VvcmdpYSBhbmQgUy4gU2FuZHdpY2ggSXNscy4nOwokbGFuZ1snS04nXT0nU2FpbnQgS2l0dHMgYW5kIE5ldmlzJzsKJGxhbmdbJ0xDJ109J1NhaW50IEx1Y2lhJzsKJGxhbmdbJ1ZDJ109J1NhaW50IFZpbmNlbnQgJmFtcDsgdGhlIEdyZW5hZGluZXMnOwokbGFuZ1snV1MnXT0nU2Ftb2EnOwokbGFuZ1snU00nXT0nU2FuIE1hcmlubyc7CiRsYW5nWydTVCddPSdTYW8gVG9tZSBhbmQgUHJpbmNpcGUnOwokbGFuZ1snU0EnXT0nU2F1ZGkgQXJhYmlhJzsKJGxhbmdbJ1NOJ109J1NlbmVnYWwnOwokbGFuZ1snU0MnXT0nU2V5Y2hlbGxlcyc7CiRsYW5nWydTTCddPSdTaWVycmEgTGVvbmUnOwokbGFuZ1snU0cnXT0nU2luZ2Fwb3JlJzsKJGxhbmdbJ1NJJ109J1Nsb3ZlbmlhJzsKJGxhbmdbJ1NLJ109J1Nsb3ZhayBSZXB1YmxpYyc7CiRsYW5nWydTQiddPSdTb2xvbW9uIElzbGFuZHMnOwokbGFuZ1snU08nXT0nU29tYWxpYSc7CiRsYW5nWydaQSddPSdTb3V0aCBBZnJpY2EnOwokbGFuZ1snRVMnXT0nU3BhaW4nOwokbGFuZ1snTEsnXT0nU3JpIExhbmthJzsKJGxhbmdbJ1NIJ109J1N0LiBIZWxlbmEnOwokbGFuZ1snUE0nXT0nU3QuIFBpZXJyZSBhbmQgTWlxdWVsb24gJzsKJGxhbmdbJ1NEJ109J1N1ZGFuJzsKJGxhbmdbJ1NSJ109J1N1cmluYW1lJzsKJGxhbmdbJ1NKJ109J1N2YWxiYXJkICZhbXA7IEphbiBNYXllbiBJc2xhbmRzJzsKJGxhbmdbJ1NaJ109J1N3YXppbGFuZCc7CiRsYW5nWydTRSddPSdTd2VkZW4nOwokbGFuZ1snQ0gnXT0nU3dpdHplcmxhbmQnOwokbGFuZ1snU1knXT0nU3lyaWEnOwokbGFuZ1snVFcnXT0nVGFpd2FuJzsKJGxhbmdbJ1RKJ109J1RhamlraXN0YW4nOwokbGFuZ1snVFonXT0nVGFuemFuaWEnOwokbGFuZ1snVEgnXT0nVGhhaWxhbmQnOwokbGFuZ1snVEcnXT0nVG9nbyc7CiRsYW5nWydUSyddPSdUb2tlbGF1JzsKJGxhbmdbJ1RPJ109J1RvbmdhJzsKJGxhbmdbJ1RUJ109J1RyaW5pZGFkIGFuZCBUb2JhZ28nOwokbGFuZ1snVE4nXT0nVHVuaXNpYSc7CiRsYW5nWydUUiddPSdUdXJrZXknOwokbGFuZ1snVE0nXT0nVHVya21lbmlzdGFuJzsKJGxhbmdbJ1RDJ109J1R1cmtzIGFuZCBDYWljb3MgSXNsYW5kcyc7CiRsYW5nWydUViddPSdUdXZhbHUnOwokbGFuZ1snVUcnXT0nVWdhbmRhJzsKJGxhbmdbJ1VBJ109J1VrcmFpbmUnOwokbGFuZ1snQUUnXT0nVW5pdGVkIEFyYWIgRW1pcmF0ZXMnOwokbGFuZ1snVUsnXT0nVW5pdGVkIEtpbmdkb20nOwokbGFuZ1snVVMnXT0nVW5pdGVkIFN0YXRlcyc7CiRsYW5nWydVTSddPSdVUyBNaW5vciBPdXRseWluZyBJc2xhbmRzJzsKJGxhbmdbJ1VZJ109J1VydWd1YXknOwokbGFuZ1snVVonXT0nVXpiZWtpc3Rhbic7CiRsYW5nWydWVSddPSdWYW51YXR1JzsKJGxhbmdbJ1ZBJ109J1ZhdGljYW4gQ2l0eSBTdGF0ZSAoSG9seSBTZWUpJzsKJGxhbmdbJ1ZFJ109J1ZlbmV6dWVsYSc7CiRsYW5nWydWTiddPSdWaWV0IE5hbSc7CiRsYW5nWydWRyddPSdWaXJnaW4gSXNsYW5kcyAoQnJpdGlzaCknOwokbGFuZ1snVkknXT0nVmlyZ2luIElzbGFuZHMgKFUuUy4pJzsKJGxhbmdbJ1dGJ109J1dhbGxpcyBhbmQgRnV0dW5hIElzbGFuZHMnOwokbGFuZ1snRUgnXT0nV2VzdGVybiBTYWhhcmEnOwokbGFuZ1snWUUnXT0nWWVtZW4nOwokbGFuZ1snWVUnXT0nWXVnb3NsYXZpYSc7CiRsYW5nWydaTSddPSdaYW1iaWEnOwokbGFuZ1snWlcnXT0nWmltYmFid2UnOwoKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3InXSA9ICdTb3JyeSEgVGhlcmUgd2FzIGFuIGVycm9yIGhhbmRsaW5nIHlvdXIgZm9ybSBzdWJtaXNzaW9uLic7CiRsYW5nWydzdWJtaXRfZXJyb3InXT0nRm9ybUJ1aWxkZXIgc3VibWl0IGVycm9yOiAlcyc7CiRsYW5nWyd1cGxvYWRzX2Vycm9yJ10gPSAnRXJyb3IgY29tbWl0dGluZyBmaWxlIHRvIHRoZSB1cGxvYWRzIG1vZHVsZTogJXMnOwokbGFuZ1snbm91cGxvYWRzX2Vycm9yJ10gPSAnQ291bGQgbm90IGZpbmQgdGhlIHVwbG9hZHMgbW9kdWxlJzsKJGxhbmdbJ3VwbG9hZF9hdHRhY2hfZXJyb3InXSA9ICdVcGxvYWQvQXR0YWNobWVudCBlcnJvciBvbiBmaWxlICVzICh0bXBfbmFtZTogJXMsIG9mIHR5cGUgJXMpJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3JfZmlsZV9sb2NrJ10gPSAnRXJyb3IuIFVuYWJsZSB0byBvYnRhaW4gbG9jayBmb3IgZmlsZS4nOwokbGFuZ1sndW5jaGVja2VkX2J5X2RlZmF1bHQnXT0nRGVmYXVsdDogdW5jaGVja2VkJzsKJGxhbmdbJ2NoZWNrZWRfYnlfZGVmYXVsdCddPSdEZWZhdWx0OiBjaGVja2VkJzsKCiRsYW5nWydlbWFpbF9kZWZhdWx0X3RlbXBsYXRlJ10gPSAiRm9ybUJ1aWxkZXIgU3VibWlzc2lvbiI7CiRsYW5nWydlbWFpbF90ZW1wbGF0ZV9ub3Rfc2V0J10gPSAnPGJyLz5FbWFpbCBUZW1wbGF0ZSBub3QgeWV0IHNldCEnOyAgICAgIAokbGFuZ1snbWlzc2luZ19jbXNfbWFpbGVyJ10gPSAnRm9ybUJ1aWxkZXI6IENhbm5vdCBmaW5kIHJlcXVpcmVkIG1vZHVsZSBDTVNNYWlsZXIhJzsgIAkJCiRsYW5nWyd1c2VyX2FwcHJvdmVkX3N1Ym1pc3Npb24nXT0nVXNlciBhcHByb3ZlZCBzdWJtaXNzaW9uICVzIGZyb20gJXMnOwoKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXT0nRXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZCc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InXT0nRXZlbnQgdHJpZ2dlcmVkIGlmIHRoZXJlIGlzIGFuIGVycm9yIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZCc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtRGlzcGxheSddPSdFdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgZGlzcGxheWVkJzsKCiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J109JzxwPkV2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQuPC9wPgo8aDQ+UGFyYW1ldGVyczwvaDQ+Cjx1bD4KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIFRoZSBmb3JtIG5hbWUgKHN0cmluZyk8L2xpPgo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4KPGxpPjxlbT52YWx1ZV8mbHQ7bmFtZSZndDs8L2VtPiAtIFN1cHBseSBhIGRlZmF1bHQgdmFsdWUgdG8gYSBmaWVsZCB3aXRoIHRoZSBzcGVjaWZpZWQgbmFtZS48L2xpPgo8L3VsPiAnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdEVycm9yJ109JzxwPkV2ZW50IHRyaWdnZXJlZCBpZiB0aGVyZSBpcyBhbiBlcnJvciB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQ8L3A+CjxoND5QYXJhbWV0ZXJzPC9oND4KPHVsPgo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gVGhlIGZvcm0gbmFtZSAoc3RyaW5nKTwvbGk+CjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gVGhlIGludGVybmFsIGZvcm0gaWQgKGludCk8L2xpPgo8bGk+PGVtPmVycm9yPC9lbT4gLSBBIGxpc3Qgb2YgYWxsIGtub3duIGVycm9ycyAoc3RyaW5nKTwvbGk+CjwvdWw+ICc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtRGlzcGxheSddPSc8cD5FdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgZGlzcGxheWVkPC9wPgo8aDQ+UGFyYW1ldGVyczwvaDQ+Cjx1bD4KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIFRoZSBmb3JtIG5hbWUgKHN0cmluZyk8L2xpPgo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4KPC91bD4gJzsKCiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfcmVzcG9uc2VfaWQnXSA9ICdSZXNwb25zZSBJRC4gVXNlZCBieSBGb3JtQnJvd3Nlcic7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfcGFzc2VkX2Zyb21fdGFnJ10gPSAnRGVmYXVsdCBmaWVsZCB2YWx1ZXM7IHNlZSBtb2R1bGUgaGVscCc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZmllbGRfaWQnXSA9ICdGaWVsZCBJRCBmb3IgaW50ZXJuYWwgb3BlcmF0aW9ucyc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZm9ybV9uYW1lJ10gPSAnRm9ybSBOYW1lJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19mb3JtX2lkJ10gPSAnRm9ybSBJRCBmb3IgaW50ZXJuYWwgb3BlcmF0aW9ucyc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZ2VuZXJhbCddID0gJ0dlbmVyYWwgcGFyYW1ldGVycyBmb3IgaW50ZXJuYWwgb3BlcmF0aW9ucyc7CgokbGFuZ1sndGVtcGxhdGVfdmFyaWFibGVfaGVscCddID0gIgo8aDM+Rm9ybSBUZW1wbGF0ZSBWYXJpYWJsZXM8L2gzPgo8cD5Zb3UgY2FuIGVkaXQgaXQgdG8gbWFrZSB5b3VyIGZvcm0gbGF5b3V0IGxvb2sgYW55IHdheSB5b3UnZCBsaWtlLgogICBUbyBtYWtlIHRoZSBmb3JtIHdvcmssIHlvdSdsbCBuZWVkIHRvIGFsd2F5cyBpbmNsdWRlIHRoZSAmIzEyMztcJGZiX2hpZGRlbn0gYW5kICYjMTIzO1wkc3VibWl0fQogICB0YWdzLjwvcD4KCjxwPllvdSBjYW4gYWNjZXNzIHlvdXIgZm9ybSBmaWVsZHMgZWl0aGVyIHVzaW5nIHRoZSBcJGZpZWxkcyBhcnJheSBvciBieSBkaXJlY3RseSBhY2Nlc3NpbmcgZmllbGRzIGJ5IHRoZWlyIG5hbWVzIChlLmcuLCAmIzEyMztcJG15ZmllbGQtPmlucHV0fSApPC9wPgoKCjxwPkVhY2ggZmllbGQgaGFzIHRoZSBmb2xsb3dpbmcgYXR0cmlidXRlczo8L3A+Cjx0YWJsZT4KPHRyPjx0aD5GaWVsZDwvdGg+PHRoPlZhbHVlPC90aD48L3RyPgo8dHI+PHRkPmZpZWxkLT5kaXNwbGF5PC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgc2hvdWxkIGJlIGRpc3BsYXllZCwgMCBvdGhlcndpc2U8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPnJlcXVpcmVkPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgaXMgcmVxdWlyZWQsIDAgb3RoZXJ3aXNlPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5yZXF1aXJlZF9zeW1ib2w8L3RkPjx0ZD50aGUgc3ltYm9sIGZvciByZXF1aXJlZCBmaWVsZHM8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmNzc19jbGFzczwvdGQ+PHRkPnRoZSBDU1MgY2xhc3Mgc3BlY2lmaWVkIGZvciB0aGlzIGZpZWxkPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT52YWxpZDwvdGQ+PHRkPjEgaWYgdGhpcyBmaWVsZCBoYXMgcGFzc2VkIHZhbGlkYXRpb24sIDAgb3RoZXJ3aXNlPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5lcnJvcjwvdGQ+PHRkPlRleHQgb2YgdGhlIHZhbGlkYXRpb24gcHJvYmxlbSwgaW4gdGhlIGV2ZW50IHRoYXQgdGhpcyBmaWVsZCBkaWQgbm90IHZhbGlkYXRlPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5oaWRlX25hbWU8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBuYW1lIHNob3VsZCBiZSBoaWRkZW4sIDAgb3RoZXJ3aXNlPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5oYXNfbGFiZWw8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCB0eXBlIGhhcyBhIGxhYmVsPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5uZWVkc19kaXY8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBuZWVkcyB0byBiZSB3cmFwcGVkIGluIGEgRElWIChvciB0YWJsZSByb3csIGlmIHRoYXQncyB0aGUgd2F5IHlvdSBzd2luZyk8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPm5hbWU8L3RkPjx0ZD50aGUgZmllbGQncyBuYW1lPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5oZWxwdGV4dDwvdGQ+PHRkPnRoZSBmaWVsZCdzIGhlbHAgdGV4dDwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+aW5wdXQ8L3RkPjx0ZD50aGUgZmllbGQncyBpbnB1dCBjb250cm9sIChlLmcuLCB0aGUgaW5wdXQgZmllbGQgaXRzZWxmKTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+b3A8L3RkPjx0ZD5hIGNvbnRyb2wgYnV0dG9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgZmllbGQgaWYgYXBwbGljYWJsZSAoZS5nLiwgdGhlIGRlbGV0ZSBidXR0b24gZm9yIGV4cGFuZGFibGUgdGV4dCBpbnB1dCk8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmlucHV0X2lkPC90ZD48dGQ+dGhlIElEIG9mIHRoZSBmaWVsZCdzIGlucHV0ICh1c2VmdWwgZm9yIGxhYmVsIGZvcj1cImZvb1wiKTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+YWxpYXM8L3RkPjx0ZD50aGUgYWxpYXMgc3BlY2lmaWVkIGZvciB0aGlzIGZpZWxkPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5pZDwvdGQ+PHRkPnRoZSBpbnRlcm5hbCAvIG9wYXF1ZSBpZCBGb3JtQnVpbGRlciB1c2VzIGZvciB0aGlzIGZpZWxkPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT50eXBlPC90ZD48dGQ+dGhlIGZpZWxkJ3MgZGF0YSB0eXBlPC90ZD48L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8dHI+PHRkPmZpZWxkLT5tdWx0aXBsZV9wYXJ0czwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkLT5pbnB1dCBpcyBhY3R1YWxseSBhIGNvbGxlY3Rpb24gb2YgY29udHJvbHM8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmxhYmVsX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgY29sbGVjdGlvbiBvZiBjb250cm9scyBoYXMgc2VwYXJhdGUgbGFiZWxzIGZvciBlYWNoIGNvbnRyb2w8L3RkPjwvdHI+CjwvdGFibGU+Cgo8cD5JbiB0aGUgY2FzZSBvZiBhIG11bHRpcGFnZSBmb3JtLCB5b3Ugd2lsbCBhbHNvIGhhdmUgYWNjZXNzIHRvIHRoZSB2YWx1ZSBvZiBwcmV2aW91cyBmaWVsZHMuIFRoZXkKYXJlIGluIHRoZSBcJHByZXZpb3VzIGFycmF5LCBvciBhY2Nlc3NpYmxlIGJ5IHRoZWlyIG5hbWVzIChlLmcuLCAmIzEyMztcJG15ZmllbGQtPnZhbHVlfSApLgpZb3UgY2FuIHVzZSB0aGlzIGluIFN0YXRpYyBUZXh0IGZpZWxkcyBhcyB3ZWxsLCB3aGljaCBpcyBhIG5pY2Ugd2F5IHRvIHBlcnNvbmFsaXplIGZvcm1zITwvcD4KCjxwPkluIGNlcnRhaW4gY2FzZXMsIGZpZWxkLT5pbnB1dCBpcyBhY3R1YWxseSBhbiBhcnJheSBvZiBvYmplY3RzIHJhdGhlciB0aGFuIGFuIGlucHV0LiBUaGlzIGhhcHBlbnMsIGZvciBleGFtcGxlLCBpbiBDaGVja0JveEdyb3VwcyBvciBSYWRpb0J1dHRvbkdyb3Vwcy4gRm9yIHRoZW0sIHlvdSBjYW4gaXRlcmF0ZSB0aHJvdWdoIGZpZWxkLT5pbnB1dC0+bmFtZSBhbmQgZmllbGQtPmlucHV0LT5pbnB1dHMuPC9wPgogICAgCjxwPkFkZGl0aW9uYWwgc21hcnR5IHZhcmlhYmxlcyB0aGF0IHlvdSBjYW4gdXNlIGluY2x1ZGU6PC9wPgo8dGFibGU+Cjx0cj48dGg+VmFyaWFibGU8L3RoPjx0aD5WYWx1ZTwvdGg+PC90cj4KPHRyPjx0ZD50b3RhbF9wYWdlczwvdGQ+PHRkPm51bWJlciBvZiBwYWdlcyBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4KPHRyPjx0ZD50aGlzX3BhZ2U8L3RkPjx0ZD5udW1iZXIgZm8gdGhlIGN1cnJlbnQgcGFnZSBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4KPHRyPjx0ZD50aXRsZV9wYWdlX3hfb2ZfeTwvdGQ+PHRkPmRpc3BsYXlzIFwicGFnZSB4IG9mIHlcIiBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4KPHRyPjx0ZD5jc3NfY2xhc3M8L3RkPjx0ZD5DU1MgQ2xhc3MgZm9yIHRoZSBmb3JtPC90ZD48L3RyPgo8dHI+PHRkPmZvcm1fbmFtZTwvdGQ+PHRkPkZvcm0gbmFtZTwvdGQ+PC90cj4KPHRyPjx0ZD5mb3JtX2lkPC90ZD48dGQ+Rm9ybSBkYXRhYmFzZSBJRDwvdGQ+PC90cj4KPHRyPjx0ZD5pbl9mb3JtYnJvd3NlcjwvdGQ+PHRkPjEgaWYgZm9ybSBpcyBiZWluZyB2aWV3ZWQgZnJvbSBGb3JtQnJvd3NlcjwvdGQ+PC90cj4KPHRyPjx0ZD5pbl9hZG1pbjwvdGQ+PHRkPjEgaWYgZm9ybSBpcyBiZWluZyB2aWV3ZWQgdmlhIEZvcm1Ccm93c2VyIGFkbWluPC90ZD48L3RyPgo8dHI+PHRkPmZicl9pZDwvdGQ+PHRkPlJlc3BvbnNlIElEIGlmIGZvcm0gaXMgYmVpbmcgdmlld2VkIGZyb20gRm9ybUJyb3dzZXI8L3RkPjwvdHI+Cjx0cj48dGQ+cHJldjwvdGQ+PHRkPlwiQmFja1wiIGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zPC90ZD48L3RyPgo8dHI+PHRkPnN1Ym1pdDwvdGQ+PHRkPlwiQ29udGludWVcIiBvciBcIlN1Ym1pdFwiIGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zLCBhZGp1c3RzIGF1dG9tYXRpY2FsbHk8L3RkPjwvdHI+CjwvdGFibGU+CjxwPkR1bm5vIHdoeSB5b3UnZCB3YW50IHNvbWUgb2YgdGhvc2UsIGJ1dCB0aGVyZSB5b3UgZ28uLi48L3A+CiI7CgovLyBwb3N0LWluc3RhbGwgbWVzc2FnZQokbGFuZ1sncG9zdF9pbnN0YWxsJ109IkZvcm1CdWlsZGVyIGluc3RhbGxlZC4gUGxlYXNlIGNvbnN1bHQgdGhlIG1vZHVsZSdzIEhlbHAgcGFnZSBmb3IgZG9jdW1lbnRhdGlvbi4iOwoKJGxhbmdbJ2hlbHAnXSA9ICI8aDM+V2hhdCBEb2VzIFRoaXMgRG8/PC9oMz4KPHA+VGhlIEZvcm0gQnVpbGRlciBNb2R1bGUgYWxsb3dzIHlvdSB0byBjcmVhdGUgZm9ybXMgKGluIGZhY3QsIGl0J3MgYSByZXBsYWNlbWVudCBvZiB0aGUgb3JpZ2luYWwgRmVlZGJhY2sgRm9ybSBtb2R1bGUpLCB3aXRoCnRoZSBhZGRlZCBwb3dlciBvZiBkYXRhYmFzZSBzdG9yYWdlLiBXaXRoIGl0cyBjb21wYW5pb24gbW9kdWxlIEZvcm0gQnJvd3NlciwgeW91IGNhbiB1c2UgaXQgdG8gY3JlYXRlIHNpbXBsZSBkYXRhYmFzZSBhcHBsaWNhdGlvbnMuPC9wPgo8cD5UaGUgZm9ybXMgY3JlYXRlZCB1c2luZyB0aGUgRm9ybSBCdWlsZGVyIG1heSBiZSBpbnNlcnRlZAppbnRvIHRlbXBsYXRlcyBhbmQvb3IgY29udGVudCBwYWdlcy4gRm9ybXMgbWF5IGNvbnRhaW4gbWFueSBraW5kcyBvZiBpbnB1dHMsIGFuZCBtYXkgaGF2ZQp2YWxpZGF0aW9uIGFwcGxpZWQgdG8gdGhlc2UgaW5wdXRzLiBUaGUgcmVzdWx0cyBvZiB0aGVzZSBmb3JtcyBtYXkgYmUgaGFuZGxlZCBpbiBhIHZhcmlldHkgb2Ygd2F5cy48L3A+Cgo8aDM+SG93IERvIEkgVXNlIGl0PzwvaDM+CjxQPkluc3RhbGwgaXQsIGFuZCBwb2tlIGFyb3VuZCB0aGUgbWVudXMuIFBsYXkgd2l0aCBpdC4gVHJ5IGNyZWF0aW5nIGZvcm1zLCBhbmQgYWRkaW5nIHRoZW0gdG8geW91ciBjb250ZW50LgpJZiB5b3UgZ2V0IHN0dWNrLCBjaGF0IHdpdGggbWUgb24gdGhlICNjbXMgSVJDIGNoYW5uZWwsIHBvc3QgdG8gdGhlIGZvcnVtLCBzZW5kIG1lIGVtYWlsLCBvciwgaWYgeW91J3JlCnJlYWxseSBkZXNwZXJhdGUsIHRyeSByZWFkaW5nIHRoZSBpbnN0cnVjdGlvbnMgb24gdGhlIHJlc3Qgb2YgdGhpcyBwYWdlLjwvUD4KCjxoMz5Ib3cgRG8gSSBDcmVhdGUgYSBGb3JtPC9oMz4KPHA+SW4gdGhlIENNUyBBZG1pbiBNZW51LCB5b3Ugc2hvdWxkIGdldCBhIG5ldyBtZW51IGl0ZW0gY2FsbGVkIEZvcm1CdWlsZGVyLiBDbGljayBvbiB0aGlzLiBPbiB0aGUgcGFnZQp0aGF0IGdldHMgc2hvd24sIHRoZXJlIGFyZSBvcHRpb25zIChhdCB0aGUgYm90dG9tIG9mIHRoZSBsaXN0IG9mIEZvcm1zKSB0byBBZGQgYSBOZXcgRm9ybSBvciBNb2RpZnkKQ29uZmlndXJhdGlvbi48L3A+Cgo8aDM+QWRkaW5nIGEgRm9ybSB0byBhIFBhZ2U8L2gzPgo8cD5JbiB0aGUgbWFpbiBGb3JtQnVpbGRlciBhZG1pbiBwYWdlLCB5b3UgY2FuIHNlZSBhbiBleGFtcGxlIG9mIHRoZSB0YWcgdXNlZCB0byBkaXNwbGF5IGVhY2ggZm9ybS4gSXQgbG9va3MKc29tZXRoaW5nIGxpa2Uge0Zvcm1CdWlsZGVyIGZvcm09J3NhbXBsZV9mb3JtJ308L3A+CjxwPkJ5IGNvcHlpbmcgdGhpcyB0YWcgaW50byB0aGUgY29udGVudCBvZiBhIHBhZ2UsIG9yIGludG8gYSB0ZW1wbGF0ZSwgd2lsbCBjYXVzZSB0aGF0IGZvcm0gdG8gYmUgZGlzcGxheWVkLgpJbiB0aGVvcnksIHlvdSBjYW4gaGF2ZSBtdWx0aXBsZSBmb3JtcyBvbiBhIHBhZ2UgaWYgeW91IHJlYWxseSB3YW50IHRvLiBCZSBjYXJlZnVsIHdoZW4gcGFzdGluZyB0aGUgdGFnCmludG8gYSBwYWdlJ3MgY29udGVudCBpZiB5b3UgdXNlIGEgV1lTSVdZRyBlZGl0b3Igc3VjaCBhcyBUaW55TUNFLCBGQ0tFZGl0LCBvciBIVE1MQXJlYS4gVGhlc2UgZWRpdG9ycyBtYXkgc3RlYWx0aGlseQpjaGFuZ2UgdGhlIHF1b3RlIG1hcmtzIChcIikgaW50byBIVE1MIGVudGl0aWVzICgmYW1wO3F1b3Q7KSwgYW5kIHRoZSBmb3JtcyB3aWxsIG5vdCBzaG93IHVwLiBUcnkgdXNpbmcKc2luZ2xlIHF1b3RlcyAoJykgb3IgZWRpdGluZyB0aGUgSFRNTCBkaXJlY3RseS48L3A+Cgo8aDM+V29ya2luZyB3aXRoIEZvcm1zPC9oMz4KPHA+QnkgY2xpY2tpbmcgb24gYSBGb3JtJ3MgbmFtZSwgeW91IGVudGVyIHRoZSBGb3JtIEVkaXQgcGFnZS4gVGhlcmUgYXJlIHNldmVyYWwgdGFicywgd2hpY2ggYXJlIGRlc2NyaWJlZCBiZWxvdzo8L3A+CjxoND5NYWluPC9oND4KPHA+VGhpcyBpcyB0aGUgbWFpbiBwbGFjZSB5b3UnbGwgd29yayBvbiB5b3VyIGZvcm0uIEhlcmUsIHlvdSBnaXZlIGl0IGEgbmFtZSwgYW4gYWxpYXMgKHdoaWNoIGlzIHVzZWQgdG8gaWRlbnRpZnkgaXQgZm9yIHBsYWNpbmcgaXQgaW4gYSBwYWdlIG9yIHRlbXBsYXRlKSwgYW5kLCBvcHRpb25hbGx5LCBhIENTUyBjbGFzcyB3aXRoIHdoaWNoIHRvIHdyYXAgdGhlIHdob2xlIHRoaW5nLjwvcD4KPHA+QmVsb3cgdGhpcywgaWYgeW91IGhhdmUgaXQgZW5hYmxlZCwgaXMgdGhlIFwiZmFzdCBmaWVsZCBhZGRlclwiIHB1bGxkb3duLCB0aGF0IGxldHMgeW91IHF1aWNrbHkgYWRkIGEgZmllbGQgdG8gdGhlIGVuZCBvZiB5b3VyIGZvcm0gYnkgc2VsZWN0aW5nIHRoZSBmaWVsZCB0eXBlLjwvcD4KPHA+QmVsb3cgdGhpcyBpcyB0aGUgbGlzdCBvZiBmaWVsZHMgdGhhdCBtYWtlIHVwIHlvdXIgZm9ybS4gTW9yZSBkZXRhaWwgb24gdGhpcyBpcyBkZXNjcmliZWQgYmVsb3cuPC9wPgo8aDQ+Rm9ybSBTdWJtaXNzaW9uPC9oND4KPHA+V2hlbiB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQsIHlvdSBjYW4gZWl0aGVyIHJlZGlyZWN0IHRoZSB1c2VyIHRvIGFub3RoZXIgcGFnZSBvZiB5b3VyIHNpdGUsIG9yIHlvdSBjYW4gcHJlc2VudCB0aGUgdXNlciBzb21lIG1lc3NhZ2UgKHdoaWNoIGNhbiBjb250YWluIGFueSBvZiB0aGUgdXNlcidzIGZvcm0gZW50cmllcywgb3IganVzdCBzdGF0aWMgdGV4dCkuIEluIHRoaXMgdGFiLCB5b3Ugc2VsZWN0IHdoaWNoIG9mIHRoZXNlIGFwcHJvYWNoZXMgeW91IHdpc2ggdG8gdXNlLCBhbmQsIGlmIHlvdSBjaG9zZSByZWRpcmVjdGlvbiwgaXQgYWxsb3dzIHlvdSB0byBwaWNrIHRoZSBwYWdlIHRvIHJlZGlyZWN0IHVzZXJzIHRvIGFmdGVyIGEgc3VjY2Vzc2Z1bCBmb3JtIHN1Ym1pc3Npb24uPC9wPgo8cD5BbHNvIG9uIHRoaXMgcGFnZSwgeW91IGNhbiBzcGVjaWZ5IHRoZSBsYWJlbHMgb2YgdmFyaW91cyBzdWJtaXNzaW9uIGJ1dHRvbnMgKFwiUHJldmlvdXNcIiwgXCJuZXh0XCIsIFwic3VibWl0XCIpLiBZb3UgY2FuIGFsc28gb3B0IHRvIGhhdmUgc29tZSBKYXZhc2NyaXB0IGFkZGVkIHRvIHRoZSBsYXN0IHBhZ2Ugb2YgYSBmb3JtIHRoYXQgd2lsbCBwcmV2ZW50IG11bHRpcGxlIHN1Ym1pc3Npb25zICh1c2VmdWwgb24gc2xvdyBzZXJ2ZXJzKS48L3A+CjxoND5Gb3JtIERpc3BsYXkgT3B0aW9uczwvaDQ+CjxwPlRoaXMgdGFiIGFsbG93cyBmb3Igb3RoZXIgZm9ybSBjdXN0b21pemF0aW9ucywgbGlrZSB0aGUgc3ltYm9sIHRvIHNob3cgZm9yIHJlcXVpcmVkIGZpZWxkcy48L3A+CjxoND5DYXB0Y2hhIFNldHRpbmdzPC9oND4KPHA+SWYgeW91IGhhdmUgaW5zdGFsbGVkIHRoZSBDYXB0Y2hhIG1vZHVsZSwgdGhpcyB0YWIgbGV0cyB5b3UgY29uZmlndXJlIHRoZSBDYXB0Y2hhIHNldHRpbmdzIGZvciB5b3VyIGZvcm0uPC9wPgo8aDQ+Rm9ybSBUZW1wbGF0ZTwvaDQ+CjxwPlRoaXMgaXMgd2hlcmUgeW91IGRvIHlvdXIgY3VzdG9taXphdGlvbiB3b3JrIG9mIHlvdXIgZm9ybSdzIFNtYXJ0eSBUZW1wbGF0ZS4gU2VlIHRoZSBzZWN0aW9uIGNhbGxlZCBGb3JtIFRlbXBsYXRlIFZhcmlhYmxlcyBiZWxvdy48L3A+CjxwPlRoZSBmb3JtIHNob3VsZCBkZWZhdWx0IHRvIGEgQ3VzdG9tIHRlbXBsYXRlIHRoYXQgZG9jdW1lbnRzIHRoZSBTbWFydHkgdGFncyBhdmFpbGFibGUgdG8geW91LjwvcD4KPHA+VW5sZXNzIHlvdSdyZSBhIFNtYXJ0eSBleHBlcnQsIHlvdSBwcm9iYWJseSBkb24ndCB3YW50IHRvIG1lc3MgYXJvdW5kIHdpdGggdGhpcy4gSWYgeW91IGFyZSBhIFNtYXJ0eSBleHBlcnQsIHRoaXMgaXMgd2hlcmUgeW91IGNhbiB1bmxlYXNoIHlvdXIgbWFnaWMuPC9wPgo8aDQ+U3VibWlzc2lvbiBUZW1wbGF0ZTwvaDQ+CjxwPklmLCBpbiB0aGUgRm9ybSBTdWJtaXNzaW9uIHRhYiwgeW91IHNlbGVjdGVkICdEaXNwbGF5IFwiU3VibWlzc2lvbiBUZW1wbGF0ZVwiLCB0aGlzIGlzIHdoZXJlIHlvdSBjYW4gY3JlYXRlIHRoYXQgdGVtcGxhdGUuIFRoZXJlIGlzIGEgZGlzcGxheSBvZiB3aGljaCBzbWFydHkgdmFyaWFibGVzIGFyZSBhdmFpbGFibGUgdG8geW91LCBhbmQgYSBidXR0b24gdG8gZ2VuZXJhdGUgYSBzYW1wbGUgdGVtcGxhdGUuPC9wPgo8cD5JZiB5b3UncmUgYSBTbWFydHkgZXhwZXJ0LCB5b3UgY2FuIGRvIGFsbCBtYW5uZXIgb2YgY3JlYXRpdmUgYW5kIHBvd2VyZnVsIHRoaW5ncyBoZXJlLiBJZiB5b3UncmUgbm90IGEgU21hcnR5IGV4cGVydCwgeW91IG1pZ2h0IGp1c3Qgd2FudCB0byB1c2UgdGhlIGRlZmF1bHQuCjwvcD4KCjxoMz5BZGRpbmcgRmllbGRzIHRvIHlvdXIgRm9ybTwvaDM+CjxwPlRoZSB0eXBlcyBvZiBmaWVsZHMgdGhhdCBhcmUgY3VycmVudGx5IHN1cHBvcnRlZCBmaXQgaW50byBmb3VyIGdyb3Vwczogc3RhbmRhcmQgaW5wdXQgZmllbGRzLCBkaXNwbGF5IGNvbnRyb2wgZmllbGRzLCBlbWFpbC1zcGVjaWZpYyBmaWVsZHMsIGFuZCBmb3JtIHJlc3VsdCBoYW5kbGluZyBmaWVsZHMgKGFsc28gY2FsbGVkIEZvcm0gRGlzcG9zaXRpb25zIGluIHBsYWNlcyk6PC9wPgo8dWw+CjxsaT5TdGFuZGFyZCBJbnB1dCBGaWVsZHMgLSB0aGVzZSBhcmUgaW5wdXRzIHRoYXQgYWxsb3cgZW50cnkgb2YgdHlwaWNhbCBmb3JtIGVsZW1lbnRzOyB0ZXh0IGlucHV0cywgcmFkaW8gYnV0dG9ucywgZXRjLjwvbGk+CjxsaT5EaXNwbGF5IENvbnRyb2wgRmllbGRzIC0gdGhlc2UgaW5wdXQgY29udHJvbCBob3cgdGhlIHVzZXIgd2lsbCBzZWUgdGhlIGRpc3BsYXkgb2YgdGhlIGZvcm07IHBhZ2UgYnJlYWtzLCBzdGF0aWMgdGV4dCwgZXRjLjwvbGk+CjxsaT5FbWFpbC1zcGVjaWZpYyBGaWVsZHMgLSBzb21lIGZvcm1zIGdlbmVyYXRlIGVtYWlsLCBhbmQgZW1haWwtc3BlY2lmaWMgZmllbGRzIGNhbiBhbHRlciBhdHRyaWJ1dGVzIG9mIHRoZSBlbWFpbHMgc2VudC48L2xpPgo8bGk+Rm9ybSBEaXNwb3NpdGlvbnMgLSBUaGVzZSBkZXRlcm1pbmUgd2hhdCBoYXBwZW5zIHdoZW4gdGhlIHVzZXIKc3VibWl0cyB0aGUgZm9ybTsgZm9yIGVhY2ggcmVzdWx0IGhhbmRsaW5nIGZpZWxkLCBzb21lIG1ldGhvZCBvZiB0cmFuc21pdHRpbmcsIHNhdmluZywgb3IgZW1haWxpbmcgdGhlCmZvcm0gY29udGVudHMgdGFrZXMgcGxhY2UuIEEgZm9ybSBtYXkgaGF2ZSBtdWx0aXBsZSBmb3JtIGRpc3Bvc2l0aW9ucy48L2xpPgo8L3VsPgo8cD5Gb3JtIGZpZWxkcyBhcmUgYXNzaWduZWQgbmFtZXMuIFRoZXNlIG5hbWVzIGlkZW50aWZ5IHRoZSBmaWVsZCwgbm90IG9ubHkgb24gdGhlIHNjcmVlbiBhcyBsYWJlbHMgZm9yIHRoZSB1c2VyLApidXQgaW4gdGhlIGRhdGEgd2hlbiBpdCdzIHN1Ym1pdHRlZCBzbyB5b3Uga25vdyB3aGF0IHRoZSB1c2VyIGlzIHJlc3BvbmRpbmcgdG8uIFBocmFzaW5nIHRoZSBuYW1lIGxpa2UgYSBxdWVzdGlvbgppcyBhIGhhbmR5IHdheSBvZiBtYWtpbmcgaXQgY2xlYXIgdG8gdGhlIHVzZXIgd2hhdCBpcyBleHBlY3RlZC4gU2ltaWxhcmx5LCBtYW55IGZpZWxkcyBoYXZlIGJvdGggTmFtZXMgYW5kIFZhbHVlcy4KVGhlIE5hbWVzIGFyZSB3aGF0IGdldHMgc2hvd24gdG8gdGhlIHVzZXI7IHRoZSBWYWx1ZSBpcyB3aGF0IGdldHMgc2F2ZWQgb3IgdHJhbnNtaXR0ZWQgd2hlbiB0aGUgdXNlciBzdWJtaXRzCnRoZSBmb3JtLiBUaGUgVmFsdWVzIGFyZSBuZXZlciBzZWVuIGJ5IHRoZSB1c2VyLCBub3IgYXJlIHRoZXkgdmlzaWJsZSBpbiB0aGUgSFRNTCwgc28gaXQncyBzYWZlIHRvIHVzZSBmb3IKZW1haWwgYWRkcmVzc2VzIGFuZCBzdWNoLjwvcD4KPHA+U29tZSBmaWVsZHMgY2FuIGhhdmUgbXVsdGlwbGUgdmFsdWVzLCBvciBtdWx0aXBsZSBuYW1lL3ZhbHVlIHBhaXJzLiBXaGVuIHlvdSBmaXJzdCBjcmVhdGUgc3VjaCBhIGZpZWxkLAp0aGVyZSBtYXkgbm90IGJlIHN1ZmZpY2llbnQgaW5wdXRzIGZvciB5b3UgdG8gc3BlY2lmeSBhbGwgdGhlIHZhbHVlcyB5b3Ugd2FudC4gVG8gZ2V0IG1vcmUgc3BhY2UgZm9yIGlucHV0dGluZwp0aGVzZSB2YWx1ZXMsIHVzZSB0aGUgYnV0dG9ucyBhdCB0aGUgYm90dG9tIG9mIHRoZSBwYWdlIGZvciBhZGRpbmcgb3B0aW9ucy48L3A+CjxwPkZpZWxkcyBjYW4gYmUgYXNzaWduZWQgdmFsaWRhdGlvbiBydWxlcywgd2hpY2ggdmFyeSBhY2NvcmRpbmcgdG8gdGhlIHR5cGUgb2YgdGhlIGZpZWxkLiBUaGVzZSBydWxlcyBoZWxwCmVuc3VyZSB0aGF0IHRoZSB1c2VyIGVudGVycyB2YWxpZCBkYXRhLiBUaGV5IG1heSBhbHNvIGJlCnNlcGFyYXRlbHkgbWFya2VkIFwiUmVxdWlyZWRcIiwgd2hpY2ggd2lsbCBmb3JjZSB0aGUgdXNlciB0byBlbnRlciBhIHJlc3BvbnNlLjwvcD4KPHA+RmllbGRzIGFsc28gbWF5IGJlIGFzc2lnbmVkIGEgQ1NTIGNsYXNzLiBUaGlzIHNpbXBseSB3cmFwcyB0aGUgaW5wdXQgaW4gYSBkaXYgd2l0aCB0aGF0IGNsYXNzLCBzbyBhcyB0byBhbGxvdwpjdXN0b21pemVkIGxheW91dHMuIFRvIHVzZSB0aGlzIGVmZmVjdGl2ZWx5LCB5b3UgbWF5IG5lZWQgdG8gXCJ2aWV3IHNvdXJjZVwiIG9uIHRoZSBnZW5lcmF0ZWQgZm9ybSwgYW5kIHRoZW4Kd3JpdGUgeW91ciBDU1MuPC9wPgo8dWw+CjxsaT5TdGFuZGFyZCBJbnB1dHMKPHVsPjxsaT5UZXh0IElucHV0LiBUaGlzIGlzIGEgc3RhbmRhcmQgdGV4dCBmaWVsZC4gWW91IGNhbiBsaW1pdCB0aGUgbGVuZ3RoLCBhbmQgYXBwbHkgdmFyaW91cyB2YWxpZGF0aW9uCmZ1bmN0aW9ucyB0byB0aGUgZmllbGQuPC9saT4KPGxpPlRleHQgQXJlYS4gVGhpcyBpcyBhIGJpZywgZnJlZS1mb3JtIHRleHQgaW5wdXQgZmllbGQuPC9saT4KPGxpPkNoZWNrYm94LiBUaGlzIGlzIGEgc3RhbmRhcmQgY2hlY2sgYm94LjwvbGk+CjxsaT5CdXR0b24uIFRoaXMgZG9lbnMndCBkbyBhbnl0aGluZywgYnV0IHlvdSBjYW4gaG9vayBpdCBpbnRvIHNvbWUgSmF2YXNjcmlwdC48L2xpPgo8bGk+Q2hlY2tib3ggR3JvdXAuIFRoaXMgaXMgYSBjb2xsZWN0aW9uIG9mIGNoZWNrYm94ZXMuIFRoZSBvbmx5IGRpZmZlcmVuY2UgYmV0d2VlbiB0aGlzIGlucHV0IGFuZCBhCmNvbGxlY3Rpb24gb2YgQ2hlY2tib3ggaW5wdXRzIGlzIHRoYXQgdGhleSBhcmUgcHJlc2VudGVkIGFzIGEgZ3JvdXAsIHdpdGggb25lIG5hbWUsIGFuZCBjYW4gaGF2ZSBhIHZhbGlkYXRpb24gZnVuY3Rpb24gcmVxdWlyaW5nIHRoYXQgeW91IGNoZWNrIG9uZSBvciBtb3JlIG9mIHRoZSBib3hlcyBpbiB0aGUgZ3JvdXAuPC9saT4KPGxpPlJhZGlvIEdyb3VwLiBUaGlzIGlzIGEgY29sbGVjdGlvbiBvZiByYWRpbyBidXR0b25zLiBPbmx5IG9uZSBvZiB0aGUgZ3JvdXAgbWF5IGJlIHNlbGVjdGVkIGJ5IHRoZSB1c2VyLjwvbGk+CjxsaT5QdWxsZG93bi4gVGhpcyBpcyBhIHN0YW5kYXJkIHB1bGxkb3duIG1lbnUuIEl0J3MgcmVhbGx5IGNvbmNlcHR1YWxseSB0aGUgc2FtZSB0aGluZyBhcyBhIHJhZGlvIGJ1dHRvbgpncm91cCwgYnV0IGlzIGJldHRlciB3aGVuIHRoZXJlIGFyZSBhIGxhcmdlIG51bWJlciBvZiBvcHRpb25zLjwvbGk+CjxsaT5NdWx0aXNlbGVjdC4gVGhpcyBpcyBhIG11bHRpLXNlbGVjdCBmaWVsZC4gSXQncyByZWFsbHkgY29uY2VwdHVhbGx5IHRoZSBzYW1lIHRoaW5nIGFzIGEgY2hlY2tib3ggYnV0dG9uCmdyb3VwLCBidXQgaXMgYmV0dGVyIHdoZW4gdGhlcmUgYXJlIGEgbGFyZ2UgbnVtYmVyIG9mIG9wdGlvbnMsIGFzIHlvdSBjYW4gbGltaXQgdGhlIG51bWJlciBkaXNwbGF5ZWQgb24gdGhlIHNjcmVlbiBhdCBhbnkgb25lIHRpbWUuPC9saT4KPGxpPlBhc3N3b3JkLiBUaGlzIGlzIGFuIGFzdGVyaXNrZWQtb3V0IHRleHQgZmllbGQsIHVzZWZ1bCBmb3IgcGFzc3dvcmRzLjwvbGk+CjxsaT5QYXNzd29yZCBBZ2FpbiAodmVyaWZ5KS4gVGhpcyBpcyBhIGZpZWxkIHRoYXQgbXVzdCBtYXRjaCBhIFBhc3N3b3JkIGZpZWxkIGZvciBzdWJtaXNzaW9uCnRvIHN1Y2NlZWQuPC9saT4KPGxpPlN0YXRlLiBUaGlzIGlzIGEgcHVsbGRvd24gbGlzdGluZyB0aGUgU3RhdGVzIG9mIHRoZSBVLlMuPC9saT4KPGxpPkNhbmFkaWFuIFByb3ZpbmNlLiBUaGlzIGlzIGEgcHVsbGRvd24gbGlzdGluZyB0aGUgQ2FuYWRpYW4gUHJvdmluY2VzIChDb250cmlidXRlZCBieSBOb2VsIE1jR3Jhbi4gVGhhbmtzISk8L2xpPgo8bGk+Q291bnRyaWVzLiBUaGlzIGlzIGEgcHVsbGRvd24gbGlzdGluZyB0aGUgQ291bnRyaWVzIG9mIHRoZSB3b3JsZCAoYXMgb2YgSnVseSAyMDA1KS48L2xpPgo8bGk+RGF0ZSBQaWNrZXIuIFRoaXMgaXMgYSB0cmlwbGUgcHVsbGRvd24gYWxsb3dpbmcgdGhlIHVzZXIgdG8gc2VsZWN0IGEgZGF0ZS48L2xpPgo8bGk+VGltZSBQaWNrZXIuIFRoaXMgaXMgYSBzZXQgb2YgcHVsbGRvd25zIGFsbG93aW5nIHRoZSB1c2VyIHRvIHNlbGVjdCBhIHRpbWUgKHVzaW5nIDEyIG9yIDI0IGhvdXIgY2xvY2spLjwvbGk+CjxsaT5GaWxlIFVwbG9hZC4gVGhpcyBpcyBhIGZpbGUgdXBsb2FkIGZpZWxkLjwvbGk+CjxsaT5MaW5rIChVc2VyIEVudGVyZWQpLiBUaGlzIGNyZWF0ZXMgYSBkb3VibGUgaW5wdXQgZmllbGQgZm9yIGdldHRpbmcgYSBsaW5rIFVSTCBhbmQgbGluayB0aXRsZS48L2xpPgo8bGk+VGV4dCBGaWVsZCAoTXVsdGlwbGUpLiBUaGlzIGZpZWxkIGNyZWF0ZXMgb25lIG9yIG1vcmUgdGV4dCBpbnB1dHMgd2l0aCBhZGQgYW5kIGRlbGV0ZSBidXR0b25zLCBlZmZlY3RpdmVseSBnaXZpbmcgdGhlIGVuZCB1c2VyIGEgd2F5IG9mIGNyZWF0aW5nIHZhcmlhYmxlLWxlbmd0aCBsaXN0cy48L2xpPgo8L3VsPjwvbGk+Cgo8bGk+RW1haWwtc3BlY2lmaWMgSW5wdXRzCjx1bD48bGk+RW1haWwgXCJGcm9tIEFkZHJlc3NcIiBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSB0aGVpciBlbWFpbCBhZGRyZXNzLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgYWRkcmVzcyBpbiB0aGUgXCJGcm9tXCIgZmllbGQuPC9saT4KPGxpPkVtYWlsIFwiRnJvbSBOYW1lXCIgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgdGhlaXIgbmFtZS4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIG5hbWUgaW4gdGhlIFwiRnJvbVwiIGZpZWxkLjwvbGk+CjxsaT5FbWFpbCBTdWJqZWN0IEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIGEgc3ViamVjdCBmb3IgdGhlaXIgZW1haWwuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBpbiB0aGUgXCJTdWJqZWN0XCIgZmllbGQuIFRoaXMgbWF5IGNhdXNlIHRyb3VibGUgd2l0aCBjZXJ0YWluIGRpc3Bvc2l0aW9ucyB0aGF0IHdhbnQgdG8gY29udHJvbCB0aGUgRW1haWwgU3ViamVjdCwgc28gdXNlIGl0IHdpdGggY2F1dGlvbi48L2xpPgo8L3VsPjwvbGk+Cgo8bGk+RGlzcGxheSBDb250cm9sIEZpZWxkczx1bD4KPGxpPi1QYWdlIEJyZWFrLiBUaGlzIGFsbG93cyB5b3UgdG8gc3BsaXQgeW91ciBmZWVkYmFjayBmb3JtIGludG8gbXVsdGlwbGUgcGFnZXMuIEVhY2ggcGFnZSBpcwppbmRlcGVuZGVudGx5IHZhbGlkYXRlZC4gVGhpcyBpcyBnb29kIGZvciBhcHBsaWNhdGlvbnMgbGlrZSBvbmxpbmUgc3VydmV5cy48L2xpPgo8bGk+LUZpZWxkc2V0IFN0YXJ0LiBDb21iaW5lZCB3aXRoIEZpZWxkc2V0IEVuZCwgdGhpcyBhbGxvd3MgeW91IHRvIGdyb3VwIHZhcmlvdXMgZmllbGRzIHdpdGhpbiB5b3VyIGZvcm0uIFVzZSB0aGlzIHRvIHN0YXJ0IGEgZ2l2ZW4gZ3JvdXBpbmcuPC9saT4KPGxpPi1GaWVsZHNldCBFbmQuIENvbWJpbmVkIHdpdGggRmllbGRzZXQgU3RhcnQsIHRoaXMgYWxsb3dzIHlvdSB0byBncm91cCB2YXJpb3VzIGZpZWxkcyB3aXRoaW4geW91ciBmb3JtLiBVc2UgdGhpcyB0byBlbmQgYSBnaXZlbiBncm91cGluZy48L2xpPgo8bGk+LUhpZGRlbiBGaWVsZC4gVGhpcyBhbGxvd3MgeW91IHRvIGVtYmVkIGEgaGlkZGVuIGZpZWxkIGluIHlvdXIgZm9ybS48L2xpPgo8bGk+LVN0YXRpYyBUZXh0LiBUaGlzIGFsbG93cyB5b3UgdG8gcHV0IHRleHQgb3IgYSBsYWJlbCBpbiB0aGUgbWlkZGxlIG9mIHlvdXIgZm9ybS4gVGhpcyBpcyB1c2VmdWwgZm9yIGdpdmluZyBhZGRpdGlvbmFsIGhlbHAgdGV4dCwgZXNwZWNpYWxseSBpZiB5b3UncmUgbm90IHVzaW5nIGEgQ3VzdG9tIFRlbXBsYXRlIHRvIHJlbmRlciB5b3VyIGZvcm0uPC9saT4KPGxpPi1TdGF0aWMgTGluay4gVGhpcyBhbGxvd3MgeW91IHRvIHB1dCBhIGxpbmsgdG8gYSBnaXZlbiBwYWdlIGludG8geW91ciBmb3JtLiBPcHRpb25hbGx5LCB5b3UgY2FuIGhhdmUgaXQgYXV0b3BvcHVsYXRlIHdpdGggdGhlIHBhZ2Ugd2hlcmUgdGhlIGZvcm0gaXMgZW1iZWRkZWQgKHVzZWZ1bCBpZiB5b3UncmUgc2VuZGluZyByZXN1bHRzIHZpYSBlbWFpbCkuPC9saT4KPGxpPi1Db21wdXRlZCBGaWVsZC4gVGhpcyBhbGxvd3MgeW91IHRvIGVtYmVkIGEgY29tcHV0ZWQgZmllbGQgaW4geW91ciBmb3JtLiBJdCBpcyBub3QgdmlzaWJsZSB0byB0aGUgdXNlciB1bnRpbCBhZnRlciB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQuIEl0IGFsbG93cyB5b3UgdG8gZG8gc2ltcGxlIGFyaXRobWV0aWMgb3Igc3RyaW5nIGNvbmNhdGVuYXRpb24uPC9saT4KPGxpPi1VbmlxdWUgSW50ZWdlciAoU2VyaWFsKS4gVGhpcyBpcyBhbiBpbnRlZ2VyIHRoYXQgaW5jcmVhc2VzIGV2ZXJ5IHRpbWUgc29tZW9uZSBoaXRzIHlvdXIgZm9ybS4gWW91ciByZXN1bHRzIG1heSBub3QgYmUgc2VxdWVudGlhbCwgYnV0IHRoZXkgd2lsbCBpbmNyZWFzZSBtb25vdG9uaWNhbGx5LjwvbGk+CjxsaT4tVXNlciBUYWcuIFRoaXMgY2FsbHMgdGhlIHNwZWNpZmllZCBVc2VyIERlZmluZWQgVGFnLCBhbmQgZGlzcGxheXMgYW55dGhpbmcgaXQgcmV0dXJucy4gVGhlIFVEVCBnZXRzIGNhbGxlZCBhbnkgdGltZSB0aGUgZmllbGQgd291bGQgYmUgdmlzaWJsZS48L2xpPgo8L3VsPjwvbGk+CjxsaT4tTW9kdWxlIEluY2x1ZGUgVGFnLiBUaGlzIGFsbG93cyB5b3UgdG8gZW1iZWQgb3RoZXIgbW9kdWxlIG91dHB1dCBpbnRvIHlvdXIgZm9ybSwgZS5nLiwgYSBsaXN0IG9mIHByb2R1Y3RzIGZyb20gdGhlIFByb2R1Y3RzIG1vZHVsZS48L2xpPgoKPGxpPkZvcm0gSGFuZGxpbmcgSW5wdXRzIChEaXNwb3NpdGlvbnMpCjx1bD48bGk+KkNhbGwgYSBVc2VyIERlZmluZWQgVGFnIFdpdGggdGhlIEZvcm0gUmVzdWx0cy4gVGhpcyBzdWJtaXRzIGFsbCB0aGUgZm9ybSByZXN1bHRzIHRvIHRoZSBVc2VyLURlZmluZWQgVGFnIHlvdSBzcGVjaWZ5LiBUaGUgVURUIGNhbiBoYW5kbGUgdGhlIHJlc3VsdHMgaG93ZXZlciBpdCB3YW50cy4gVmFsdWVzIGFyZSBwYXNzZWQgYXMgXCRwYXJhbXNbJ2ZpZWxkX25hbWUnXSwgYW5kIGFzIFwkcGFyYW1zWydmaWVsZF9hbGlhcyddIChpZiBkZWZpbmVkKS48L2xpPgo8bGk+KkVtYWlsIFJlc3VsdHMgQmFzZWQgb24gUHVsbGRvd24uIFRoaXMgaXMgdXNlZnVsIGZvciB3ZWIgc2l0ZXMgd2hlcmUgY29tbWVudHMgZ2V0IHJvdXRlZCBiYXNlZCBvbiB0aGVpciBzdWJqZWN0IG1hdHRlciwgZS5nLiwgYnVncyBnZXQgc2VudCB0byBvbmUgcGVyc29uLCBtYXJrZXRpbmcgcXVlc3Rpb25zIHRvIGFub3RoZXIgcGVyc29uLCBzYWxlcyByZXF1ZXN0cyB0byBzb21lb25lIGVsc2UsIGV0Yy4gVGhlIHB1bGxkb3duIGlzIHBvcHVsYXRlZCB3aXRoIHRoZSBzdWJqZWN0cywgYW5kIGVhY2ggZ2V0cyBkaXJlY3RlZCB0byBhIHNwZWNpZmljIGVtYWlsIGFkZHJlc3MuIFlvdSBzZXQgdXAgdGhlc2UgbWFwcGluZ3MgaW4gdGhlIHdoZW4geW91IGNyZWF0ZSBvciBlZGl0IGEgZmllbGQgb2YgdGhpcyB0eXBlLiBJZiB5b3UgdXNlIG9uZSBvZiB0aGVzZSBcIkRpcmVjdG9yXCIgcHVsbGRvd25zLCB0aGUgdXNlciBtdXN0IG1ha2UgYSBzZWxlY3Rpb24gaW4gb3JkZXIgdG8gc3VibWl0IHRoZQpmb3JtLiBUaGlzIGlucHV0IGlzIHBhcnQgb2YgdGhlIGZvcm0gdGhlIHVzZXIgc2VlcywgYWx0aG91Z2ggdGhlIGVtYWlsIGFkZHJlc3NlcyBhcmUgbm90IG1hZGUgdmlzaWJsZSBub3IKYXJlIHRoZXkgZW1iZWRkZWQgaW4gdGhlIEhUTUwuPC9saT4KPGxpPipFbWFpbCBcIkZyb20gQWRkcmVzc1wiIEZpZWxkLCBhbmQgc2VuZCBjb3B5LiBUaGlzIHdvcmtzIGxpa2UgdGhlIEVtYWlsIFwiRnJvbSBBZGRyZXNzXCIgRmllbGQgZGVzY3JpYmVkIGFib3ZlLCBidXQgaXQgcHJvdmlkZXMgb3B0aW9ucyBmb3Igc2VuZGluZyBhIGNvcHkgb2YgdGhlIHJlc3VsdHMgdG8gdGhlIHVzZXIuPC9saT4KPGxpPipFbWFpbCBSZXN1bHRzIHRvIHNldCBBZGRyZXNzKGVzKS4gVGhpcyBzaW1wbHkgc2VuZHMgdGhlIGZvcm0gcmVzdWx0cyB0byBvbmUgb3IgbW9yZSBlbWFpbCBhZGRyZXNzZXMgdGhhdCB5b3UgZW50ZXIgd2hlbiB5b3UgY3JlYXRlIG9yIGVkaXQgdGhpcyB0eXBlIG9mIGZpZWxkLiBUaGlzIGZpZWxkIGFuZCBpdHMgbmFtZSBhcmUgbm90IHZpc2libGUgaW4gdGhlCmZvcm0gdGhhdCB0aGUgdXNlciBzZWVzLiBUaGUgZW1haWwgYWRkcmVzc2VzIGFyZSBub3QgbWFkZSB2aXNpYmxlIG5vcgphcmUgdGhleSBlbWJlZGRlZCBpbiB0aGUgSFRNTC48L2xpPgo8bGk+KkVtYWlsIHRvIFVzZXItU3VwcGxpZWQgQWRkcmVzcy4gVGhpcyBwdXRzIGFuIGlucHV0IGZpZWxkIGluIHRoZSBmb3JtIGZvciB0aGUgdXNlciB0byBwb3B1bGF0ZSB3aXRoIGFuIGVtYWlsIGFkZHJlc3MuIFRoZSBmb3JtIHJlc3VsdHMgZ2V0IHNlbnQgdG8gdGhhdCBhZGRyZXNzLiBCZXdhcmUgb2YgU3BhbSBhYnVzZSEgQWN0aXZlIHRoZSBwcmltaXRpdmUgYW50aS1zcGFtIGZlYXR1cmVzIGluIHRoZSBGb3JtQnVpbGRlciBjb25maWd1cmF0aW9uIHNjcmVlbi48L2xpPgo8bGk+KlN0b3JlIFJlc3VsdHMgaW4gRGF0YWJhc2UuIDxzdHJvbmc+RGVwcmVjYXRlZC48L3N0cm9uZz4gVXNlIFN0b3JlIFJlc3VsdHMgZm9yIEZvcm1Ccm93c2VyIE1vZHVsZSBpbnN0ZWFkISBUaGlzIHdpbGwgc3RvcmUgdGhlIGZvcm0gY29udGVudHMgaW4gYW4gaW50ZXJuYWwgZGF0YWJhc2UuIFlvdSB3aWxsIGFsd2F5cyB1c2UgdGhpcyBkaXNwb3NpdGlvbiBpZiB5b3UgdXNlIHRoZSBmb3JtIHdpdGggRm9ybUJyb3dzZXIuPC9saT4KPGxpPipSZWRpcmVjdCB0byBQYWdlIEJhc2VkIG9uIFB1bGxkb3duLiBUaGlzIGFsbG93cyB5b3UgdG8gcmVkaXJlY3QgdGhlIGZvcm0gdG8gYSBkaWZmZXJlbnQgc2l0ZSBwYWdlIGRlcGVuZGluZyBvbiBpdHMgdmFsdWUuIElmIHlvdSBoYXZlIG11bHRpcGxlIGRpc3Bvc2l0aW9ucywgbWFrZSBzdXJlIHRoaXMgaXMgdXNlZCBsYXN0LjwvbGk+CjxsaT4qVmFsaWRhdGUgdmlhIEVtYWlsLiBUaGlzIGlzIGEgc3RyYW5nZSBhbmQgcG93ZXJmdWwgZmllbGQuIEl0IHByb3ZpZGVzIHRoZSB1c2VyIGEgbWFuZGF0b3J5IGlucHV0IGZvciB0aGVpciBlbWFpbCBhZGRyZXNzLiBPbmNlIHRoZXkgc3VibWl0IHRoZWlyIGZvcm0sIHRoZSBzdGFuZGFyZCBmb3JtIGRpc3Bvc2l0aW9ucyBhcmUgbm90IHBlcmZvcm1lZCAtLSByYXRoZXIsIGl0IHNlbmQgdGhlIHVzZXIgYW4gZW1haWwgd2l0aCBhIHNwZWNpYWwgY29kZWQgbGluay4gSWYgdGhleSBjbGljayBvbiB0aGUgbGluaywgdGhlIG90aGVyIGZvcm0gaXMgY29uc2lkZXJlZCBcImFwcHJvdmVkLFwiIGFuZCB0aGUgb3RoZXIgZGlzcG9zaXRpb25zIGFyZSBhbGwgcGVyZm9ybWVkLjwvbGk+CjxsaT4qV3JpdGUgUmVzdWx0cyB0byBGbGF0IEZpbGUuIFRoaXMgdGFrZXMgdGhlIGZvcm0gcmVzdWx0cyBhbmQgd3JpdGVzIHRoZW0gaW50byBhIHRleHQgZmlsZS4gWW91IG1heQpzZWxlY3QgdGhlIG5hbWUgb2YgdGhlIGZpbGUsIGFuZCBzZXQgaXRzIGZvcm1hdC4gVGhlc2UgZmlsZXMgYXJlIHdyaXR0ZW4gdG8gdGhlIFwib3V0cHV0XCIgZGlyZWN0b3J5IHVuZGVyIHRoZQptb2R1bGUncyBpbnN0YWxsYXRpb24gZGlyZWN0b3J5LCBhc3N1bWluZyB0aGUgd2ViIHNlcnZlciBoYXMgcGVybWlzc2lvbiB0byB3cml0ZSB0aGVyZS48L2xpPgo8bGk+KlNhdmUgUmVzdWx0cyB0byBGaWxlIEJhc2VkIG9uIFB1bGxkb3duLiBMaWtlIHRoZSBGbGF0IEZpbGUgZGlzcG9zaXRpb24sIGV4Y2VwdCB0aGUgdmFsdWUgb2YgYSBwdWxsLWRvd24gZGV0ZXJtaW5lcyB3aGljaCBmaWxlIHJlc3VsdHMgZ2V0IHdyaXR0ZW4gdG8uPC9saT4KPGxpPipTYXZlIFJlc3VsdHMgdG8gRmlsZShzKSBCYXNlZCBvbiBNdWx0aXBsZSBTZWxlY3Rpb25zLiBMaWtlIHRoZSBGbGF0IEZpbGUgZGlzcG9zaXRpb24sIGV4Y2VwdCB0aGUgdmFsdWUocykgb2YgY2hlY2tib3hlcyAgZGV0ZXJtaW5lcyB3aGljaCBmaWxlKHMpIHJlc3VsdHMgZ2V0IHdyaXR0ZW4gdG8uPC9saT4KPGxpPipFbWFpbCB0byBDTVMgQWRtaW4gVXNlci4gUHJvdmlkZXMgYSBwdWxsLWRvd24gb2YgQ01TIEFkbWluIHVzZXJzLCBhbmQgZGlyZWN0cyB0aGUgcmVzdWx0cyBhcyBhbiBlbWFpbCB0byB0aGUgc2VsZWN0ZWQgYWRtaW4uPC9saT4KPGxpPipTdG9yZSBSZXN1bHRzIGZvciBGb3JtQnJvd3NlciBNb2R1bGUgdi4wLjMuIFN0b3JlcyB0aGUgZm9ybSByZXN1bHRzIGluIGFuIFhNTCBzdHJ1Y3R1cmUgYXMgYSBzaW5nbGUgZGF0YWJhc2UgcmVjb3JkLiBUaGlzIGlzIHRoZSBvbmx5IGludGVyZmFjZSB0byBGb3JtIEJyb3dzZXIuIFNlZSBzZWN0aW9uIGJlbG93LjwvbGk+CjxsaT4qU3VibWl0IHRvIGFuIGFyYml0cmFyeSBmb3JtIGFjdGlvbi4gQ3JhZnQgYW4gSFRUUCBHRVQgb3IgUE9TVCwgYW5kIHRyYW5zbWl0IGl0IHVzaW5nIGNVUkwgdG8gdGhlIHNwZWNpZmllZCBVUkwuIFRoaXMgbGV0cyB5b3UgdXNlIEZvcm1CdWlsZGVyIGFzIGEgZnJvbnQtZW5kIHRvIGFueSBDR0kgb3IgRm9ybSBIYW5kbGluZyBzY3JpcHQgb3V0IHRoZXJlLjwvbGk+Cgo8L3VsPjwvbGk+PC9saT48L3VsPgoKPGgzPlBhc3NpbmcgRGVmYXVsdCBWYWx1ZXMgdG8gRm9ybXM8L2gzPgo8cD5DYWxndXkgYWRkZWQgYSBuaWNlIGZlYXR1cmUsIHdoaWNoIGlzIHRoYXQgeW91IGNhbiBwYXNzIGRlZmF1bHQgZmllbGQgdmFsdWVzIHRvIHlvdXIgZm9ybSB2aWEgdGhlIG1vZHVsZSB0YWcuIFRoaXMgYWxsb3dzIHlvdSB0byBoYXZlCnRoZSBzYW1lIGZvcm0gaW4gbXVsdGlwbGUgcGxhY2VzLCBidXQgd2l0aCBkaWZmZXJlbnQgZGVmYXVsdCB2YWx1ZXMuIEl0IG1heSBub3Qgd29yayBmb3IgbW9yZSBleG90aWMgZmllbGQgdHlwZXMsIGJ1dCBmb3IgZmllbGRzIHRoYXQgaGF2ZQphIHNpbmdsZSB2YWx1ZSwgeW91IGNhbiBzcGVjaWZ5IGxpa2U6PC9wPgo8cD57Rm9ybUJ1aWxkZXIgZm9ybT0nbXlfZm9ybScgdmFsdWVfPGk+RklFTEROQU1FPC9pPj0nZGVmYXVsdF92YWx1ZSd9PC9wPgo8cD5UaGlzIHdpbGwgc2V0IHRoZSBmaWVsZCB3aXRoIDxpPkZJRUxETkFNRTwvaT4gdG8gJ2RlZmF1bHRfdmFsdWUnLjwvcD4KPHA+VGhpcyBjYW4gYmUgcHJvYmxlbWF0aWMsIGFzIHNvbWV0aW1lcyBmaWVsZCBuYW1lcyBhcmUgdW53aWVsZHkgb3IgY29udGFpbiBjaGFyYWN0ZXJzIHRoYXQgZG9uJ3Qgd29yayB3ZWxsIHdpdGggU21hcnR5LiBTbyB0aGVyZSBpcyBhbgphbHRlcm5hdGl2ZSBsaWtlIHRoaXM6PC9wPgo8cD57Rm9ybUJ1aWxkZXIgZm9ybT0nbXlfZm9ybScgdmFsdWVfZmxkPGk+TlVNQkVSPC9pPj0nZGVmYXVsdF92YWx1ZSd9PC9wPgo8cD5UaGF0IHVzZXMgZmllbGQgPGk+TlVNQkVSPC9pPiwgd2hlcmUgPGk+TlVNQkVSPC9pPiBpcyB0aGUgaW50ZXJuYWwgRm9ybUJ1aWxkZXIgZmllbGQgaWQuIFlvdSBtaWdodCB3b25kZXIgaG93IHlvdSBrbm93IHdoYXQgdGhhdCBpZCBpcy4gU2ltcGx5IGdvIGludG8gdGhlIEZvcm1CdWlsZGVyIGNvbmZpZ3VyYXRpb24gdGFiLAphbmQgY2hlY2sgXCJTaG93IEZpZWxkIElEc1wiPC9wPgoKPGgzPkVtYWlsIGFuZCBGbGF0IEZpbGUgVGVtcGxhdGVzPC9oMz4KPHA+TWFueSBkaXNwb3NpdGlvbiB0eXBlcyBhbGxvdyB5b3UgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZm9yIHRoZSBlbWFpbCB0aGF0IGlzIGdlbmVyYXRlZCwgb3IgZm9yIHRoZSB3YXkgdGhlIHJlc3VsdHMgYXJlIHdyaXR0ZW4gdG8gYSBmaWxlLiBJZiB5b3Ugb3B0IG5vdCB0byBjcmVhdGUgYSB0ZW1wbGF0ZSwgdGhlIEZvcm1CdWlsZGVyIHdpbGwgdXNlIGl0cyBvd24gYmVzdCBndWVzcywgd2hpY2ggbWF5IG9yIG1heSBub3Qgd29yayBvdXQgdG8geW91ciBsaWtpbmcuIFlvdSBjYW4gYWx3YXlzIGNsaWNrIG9uIHRoZSBcIkNyZWF0ZSBTYW1wbGUgVGVtcGxhdGVcIiBhbmQgdGhlbiBjdXN0b21pemUgdGhlIHJlc3VsdHMuPC9wPgo8cD5UbyB0aGUgcmlnaHQsIHlvdSdsbCBmaW5kIGEgbGVnZW5kIHdoaWNoIGxpc3RzIGFsbCBvZiB0aGUgdmFyaWFibGVzIHRoYXQgYXJlIGF2YWlsYWJsZSB0byB5b3UgdG8gdXNlIGluIHlvdXIgdGVtcGxhdGUuIEFzIG9mIHZlcnNpb24gMC4zLCB2YXJpYWJsZXMgaGF2ZSB0d28gbmFtZXMsIG9uZSBiYXNlZCBvbiB0aGUgZmllbGQgbmFtZSwgdGhlIG90aGVyIGJhc2VkIG9uIHRoZSBmaWVsZCBJRC4gSWYgeW91IHVzZSBmaWVsZCBuYW1lcyB0aGF0IGhhdmUgY2hhcmFjdGVycyBvdXRzaWRlIG9mIHRoZSBBU0NJSSAzMi0xMjYgcmFuZ2UsIGl0IHdpbGwgYmUgc2FmZXIgdG8gdXNlIHRoZSBJRC1iYXNlZCB2YXJpYWJsZXMuIEFzIG9mIHZlcnNpb24gMC41LCB2YXJpYWJsZXMgYWxzbyBoYXZlIGFsaWFzZXMsIHdoaWNoIHlvdSBjYW4gdXNlLjwvcD4KPHA+PHN0cm9uZz5Ob3RlIHRoYXQgb25jZSB5b3UndmUgY2hhbmdlZCBhIHRlbXBsYXRlLCBpdCB3aWxsIG5vIGxvbmdlciBhdXRvbWF0aWNhbGx5IGFkZCBuZXcgZmllbGRzLjwvc3Ryb25nPiBGb3IgdGhpcyByZWFzb24sIGl0J3MgdXN1YWxseSBiZXN0IHRvIGNyZWF0ZSB5b3VyIHRlbXBsYXRlcyBhcyB0aGUgbGFzdCBzdGVwIG9mIGNyZWF0aW5nIHlvdXIgZm9ybS48L3A+CjxwPkFzIG9mIHZlcnNpb24gMC4yLjQsIHlvdSBjYW4gb3B0IHRvIHNlbmQgYW55IG9mIHRoZXNlIGVtYWlscyBhcyBIVE1MIGVtYWlsLiBUaGVyZSBzaG91bGQgYmUgYSBjaGVja2JveCBhdCB0aGUgdG9wIG9mIHRoZSB0ZW1wbGF0ZSBwYWdlIGZvciB0aGlzLiBUaGVyZSBpcyBhbHNvIGEgXCJDcmVhdGUgU2FtcGxlIEhUTUwgVGVtcGxhdGVcIiBidXR0b24gb3ZlciBpbiB0aGUgbGVnZW5kIGFyZWEuIEZvciBIVE1MIGVtYWlsLCB0aGUgZW1haWwgYm9keSB3aWxsIGFsc28gcHJvdmlkZSB0aGUgZGVmYXVsdCB0ZXh0LW9ubHkgdmFsdWVzLjwvcD4KCjxoMz5Vc2Ugd2l0aCBGb3JtQnJvd3NlciB2MzwvaDM+CjxwPlRoZXJlIGFyZSBzb21lIHNwZWNpYWwgZmVhdHVyZXMgd2hlbiB1c2luZyBGb3JtQnVpbGRlciB3aXRoIEZvcm1Ccm93c2VyLiBUaGUgbmV3IGFwcHJvYWNoIHN0b3JlcyB0aGUgZm9ybSByZXN1bHRzIGluIFhNTCwgc28gdGhhdCBmYXIgZmV3ZXIKcXVlcmllcyBhcmUgbmVlZGVkIHRvIHJldHJpZXZlIHJlY29yZHMuIFRoaXMgbWVhbnMgeW91IGNhbiB1c2UgRm9ybUJyb3dzZXIgd2l0aCBodW5kcmVkcyBvciBldmVuIHRob3VzYW5kcyBvZiByZWNvcmRzLiBJdCBhbHNvIG1lYW5zIHlvdQp3aWxsIGhhdmUgdG8gY2hvb3NlIHVwIGZyb250IHdoaWNoIGZpZWxkcyB5b3Ugd2lsbCB3YW50IHRvIGJlIGFibGUgdG8gc29ydCBieS4gWW91IGNhbiBjaG9vc2UgdXAgdG8gZml2ZS4gQ2hhbmdpbmcgdGhlc2UgYWZ0ZXIgdGhlcmUgYXJlIHN1Ym1pdHRlZCByZWNvcmRzIHdpbGwgcmVzdWx0IGluIGltcHJvcGVyIHNvcnRpbmchIEEgcmUtaW5kZXggZnVuY3Rpb24gd2lsbCBiZSBhZGRlZCB0byBhIGZ1dHVyZSB2ZXJzaW9uLjwvcD4KPHA+SW4gYWR2YW5jZWQgb3B0aW9ucywgeW91IGNhbiB0aWUgYSBmb3JtIHRvIEZyb250ZW5kIFVzZXJzLiBUaGF0IG1lYW5zIGVhY2ggdXNlciBnZXRzIG9uZSByZWNvcmQgZm9yIHRoZSBmb3JtOyB0aGV5IGNhbiBjcmVhdGUgaXQKYSBzaW5nbGUgdGltZSwgc3Vic2VxdWVudCB0aW1lcyB0aGV5IHdpbGwgYmUgZWRpdGluZyB0aGVpciByZWNvcmQuIFRoZSByZWNvcmQgd2lsbCBub3QgYmUgdmlzaWJsZSB0byBhbnkgb3RoZXIgdXNlcnMgKGV4Y2x1ZGluZyBhZG1pbnMpLgpUaGlzIGZvcm0gc2hvdWxkIGJlIGFkZGVkIHRvIHlvdXIgcGFnZSB1c2luZyB0aGUgc3ludGF4IHtGb3JtQnVpbGRlciBhY3Rpb249J2ZldXNlcmZvcm0nIGZvcm09J2Zvcm1fbmFtZSd9LjwvcD4KPHA+Rm9yIGdyZWF0ZXIgZGF0YSBzYWZldHksIHlvdSBjYW4gZW5jcnlwdCB0aGUgc3RvcmVkIGZvcm1zIGluIHRoZSBkYXRhYmFzZS4gWW91IGNhbiB1c2UgdGhlIGJ1aWx0LWluIG15Y3J5cHQgbGlicmFyeSBvciB0aGUgT3BlblNTTCBtb2R1bGUuCkluIGVpdGhlciBjYXNlLCBmb3IgdGhlIHBhc3NwaHJhc2UsIHlvdSBjYW4gZWl0aGVyIGVudGVyIHRleHQgaW4gdGhlIGZpZWxkIG9yIGEgZmlsZSBuYW1lLiBJZiB5b3Ugc3BlY2lmeSBhIGZpbGUgbmFtZSwgdGhlIGNvbnRlbnRzIG9mIHRoYXQKZmlsZSB3aWxsIGJlIHVzZWQgYXMgdGhlIHBhc3NwaHJhc2UgZm9yIGVuY3J5cHRpbmcuPC9wPgo8cD5JZiB5b3UgZW5jcnlwdCwgYmUgYXdhcmUgdGhhdCB0aGUgZmllbGRzIHlvdSB1c2UgZm9yIHNvcnRpbmcgYXJlIDxzdHJvbmc+bm90PC9zdHJvbmc+IGVuY3J5cHRlZC4gWW91IGNhbiBjaG9vc2UgdG8gaGFzaCB0aGVtOyB0aGUgY2hlYXQgaGVyZQppcyB0aGF0IHRoZSBmaXJzdCBmb3VyIGxldHRlcnMgYXJlIGxlZnQgaW50YWN0IHRvIGFsbG93IGZvciBzb3J0aW5nLiBUaGUgc29ydGluZyBtYXkgbm90IGJlIHBlcmZlY3QsIGFuZCB0aGlzIHdlYWtlbnMgdGhlIHNlY3VyaXR5IHNpbmNlIGl0CmV4cG9zZXMgc29tZSBjbGVhcnRleHQsIGJ1dCBpdCBpcyBiZXR0ZXIgdGhhbiBub3RoaW5nLjwvcD4KPHA+PHN0cm9uZz5ESVNDTEFJTUVSPC9zdHJvbmc+LiBUaGUgZW5jcnlwdGlvbiBvZmZlcmVkIGhlcmUgc2hvdWxkIGJlIGNvbnNpZGVyZWQganVzdCBvbmUgbW9yZSBodXJkbGUgZm9yIGEgaGFja2VyLCBub3QgYXMgYSBndWFyYW50ZWUgdGhhdAp5b3VyIGluZm9ybWF0aW9uIHdpbGwgYmUgc2VjdXJlLiBBIHNtYXJ0IGhhY2tlciB3aG8gaGFzIGZvdW5kIHNvbWUgZXhwbG9pdCB0byB2aWV3IGRhdGFiYXNlIHJlY29yZHMgbWF5IHdlbGwgYmUgc21hcnQgZW5vdWdoIHRvIGdldCBhdAp0aGUgbW9kdWxlIHNvdXJjZSBjb2RlLCBhbmQgZmluZCB0aGVpciB3YXkgdG8gdGhlIHBhc3NwaHJhc2UuIFRoaXMgd2lsbCBub3QgcHJvdGVjdCB5b3UgYWdhaW5zdCBhbiBlbmVteSB3aG8gaGFzIGZ1bGwgYWNjZXNzIHRvIHlvdXIKc2VydmVyLCBzb21lIGZhbWlsaWFyaXR5IHdpdGggUEhQLCBhbmQgdGhlIHRpbWUgdG8gcG9rZSBhcm91bmQuIDxlbT48c3Ryb25nPkRvIG5vdDwvc3Ryb25nPiB1c2UgdGhpcyB0byBwcm90ZWN0IGhpZ2gtdmFsdWUgaW5mb3JtYXRpb24gc3VjaCBhcyBmaW5hbmNpYWwgZGF0YSwKc2Vuc2l0aXZlIHBvbGl0aWNhbCBpbmZvcm1hdGlvbiwgaHVtYW4gcmlnaHRzIGRhdGEsIG9yIGFueXRoaW5nIGVsc2UgdGhhdCBtaWdodCBiZSBvZiB2YWx1ZSB0byBhIHJlcHJlc3NpdmUgZ292ZXJubWVudCBvciBvcmdhbml6ZWQgY3JpbWUKY2FydGVsLjwvZW0+PC9wPgo8aDM+VXNpbmcgd2l0aCBVc2VyIERlZmluZWQgVGFncyAoVURUcyk8L2gzPgo8cD5TZXZlcmFsIG9wdGlvbnMgZm9yIGN1c3RvbWl6aW5nIGJlaGF2aW9yIHZpYSBVRFRzIGlzIHByb3ZpZGVkICh0aGFua3MgdG8ga2luZCBjb2RlIGNvbnRyaWJ1dGlvbnMsIHNlZSBjcmVkaXRzKS48L3A+Cgo8dWw+PGxpPkNhbGwgVXNlciBEZWZpbmVkIFRhZyBXaXRoIHRoZSBGb3JtIFJlc3VsdHMuIFRoaXMgZmllbGQgdHlwZSBzdWJtaXRzIHRoZSBodW1hbi1yZWFkYWJsZSBmb3JtIHJlc3VsdHMgdG8gdGhlIFVzZXItRGVmaW5lZApUYWcgeW91IHNwZWNpZnkuIFRoZSBVRFQgY2FuIGhhbmRsZSB0aGUgcmVzdWx0cyBob3dldmVyIGl0IHdhbnRzLiBWYWx1ZXMgYXJlIHBhc3NlZCBhcyBcJHBhcmFtc1snZmllbGRfbmFtZSddLCBhbmQKYXMgXCRwYXJhbXNbJ2ZpZWxkX2FsaWFzJ10gKGlmIGRlZmluZWQpLiBBcyBwZXIgYSBzdWdnZXN0aW9uLCBpdCBhbHNvIHBvcHVsYXRlcyBhbGwgb2YgdGhlIFNtYXJ0eSB2YWx1ZXMgdGhhdCB3b3VsZCBiZSB2aXNpYmxlIHRvIHRoZSBTdWJtaXNzaW9uIFRlbXBsYXRlIHRvbyE8L2xpPgo8bGk+VXNlciBUYWcgRmllbGQuIFRoaXMgY2FsbHMgdGhlIHNwZWNpZmllZCBVRFQsIGFuZCBkaXNwbGF5cyBhbnl0aGluZyBpdCByZXR1cm5zLiBUaGUgVURUIGdldHMgY2FsbGVkIGFueSB0aW1lIHRoZSBmaWVsZCB3b3VsZCBiZSB2aXNpYmxlLjwvbGk+CjxsaT5WYWxpZGF0aW9uIFVEVC4gU2V0IHRoaXMgZm9yIGEgZm9ybSwgYW5kIHRoZSBVRFQgd2lsbCByZWNlaXZlIGFsbCBvZiB0aGUgZm9ybVwncyBodW1hbi1yZWFkYWJsZSByZXN1bHRzLiBUaGUgVURUIHNob3VsZCBkbyB3aGF0ZXZlcgp2YWxpZGF0aW9uIGl0IHdhbnRzLCBhbmQgcmV0dXJuIGFuIGFycmF5IHdpdGggdGhlIGZpcnN0IHZhbHVlIGJlaW5nIHRydWUgb3IgZmFsc2UgKGluZGljYXRpb24gd2hldGhlciB0aGUgZm9ybSB2YWxpZGF0ZXMpLCBhbmQgdGhlIHNlY29uZAp2YWx1ZSBiZWluZyBlcnJvciBtZXNzYWdlcyAoaWYgYW55KS48L2xpPgo8bGk+VXNlciBkZWZpbmVkIHRhZyB0byBjYWxsIGJlZm9yZSBmb3JtIGlzIGRpc3BsYXllZCB0aGUgZmlyc3QgdGltZSAob25seSBjYWxsZWQgb25jZSkuIFRoaXMKaXMgc2V0IGluIHRoZSBGb3JtIEFkbWluIGluIHRoZSBVRFQgSW50ZWdyYXRpb24gdGFiLiBUaGUgVURUIGdldHMgY2FsbGVkIG9uIHRoZSBmaXJzdCBkaXNwbGF5Cm9mIHRoZSBmb3JtLjwvbGk+CjxsaT5Vc2VyIGRlZmluZWQgdGFnIHRvIGNhbGwgYmVmb3JlIGZvcm0gaXMgZGlzcGxheWVkIChjYWxsZWQgb24gZXZlcnkgcGFnZSBvZiBtdWx0aXBhZ2UKZm9ybXMpLiBUaGlzIGlzIHNldCBpbiB0aGUgRm9ybSBBZG1pbiBpbiB0aGUgVURUIEludGVncmF0aW9uIHRhYi4gVGhlIFVEVCBnZXRzIGNhbGxlZApldmVyeSB0aW1lIGFueSBwYWdlIG9mIHRoZSBmb3JtIGlzIGRpc3BsYXllZCAoaW5jbHVkaW5nIHdoZW4gdmFsaWRhdGlvbiBmYWlscykuPC9saT4KPC91bD4KPGgzPkNvbmZpZ3VyYXRpb248L2gzPgo8cD5UaGVyZSBhcmUgc29tZSBnbG9iYWwgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBGb3JtQnVpbGRlcjo8L3A+Cjx1bD4KPGxpPkVuYWJsZSBmYXN0IGZpZWxkIGFkZCBwdWxsZG93bi4gVGhpcyBlbmFibGVzIHRoZSBwdWxsZG93biBvbiB0aGUgRm9ybSBFZGl0IHBhZ2Ugd2hpY2ggc2F2ZXMgYSBzdGVwIGluIHRoZSBjcmVhdGlvbiBvZiBuZXcgZmllbGRzLjwvbGk+CjxsaT5SdW4gaW4gTUxFIE1vZGUuIFRoaXMgY2hhbmdlcyBzb21lIHF1ZXJpZXMgYWdhaW5zdCB0aGUgY29udGVudCB0YWJsZSB0byB0cnkgdG8gcHJldmVudCB1Z2x5IGNyYXNoZXMgdW5kZXIgdGhlIE1MRSBmb3JrLiBDaGVja2luZyB0aGlzIHdpbGwgY2F1c2UgdWdseSBjcmFzaGVzIGlmIHlvdSBhcmUgTk9UIHJ1bm5pbmcgdGhlIE1MRSBmb3JrLjwvbGk+CjxsaT5IaWRlIEVycm9ycy4gVGhpcyBpcyBubyBsb25nZXIgc2V0IGJ5IGRlZmF1bHQuIENoZWNraW5nIGl0IHdpbGwgaGlkZSB0aGUgbW9yZSBkZXRhaWxlZCBlcnJvcnMgdGhhdCB3b3VsZCBiZSBkaXNwbGF5ZWQgaWYgdGhlcmUgYXJlIHByb2JsZW1zIHdoZW4geW91IHN1Ym1pdCB5b3VyIGZvcm0uPC9saT4KPGxpPlJlcXVpcmUgRmllbGQgTmFtZXMuIFR5cGljYWxseSwgeW91IHdpbGwgd2FudCBmb3JtIGZpZWxkcyB0byBiZSBuYW1lZCBzbyB5b3UgY2FuIHRlbGwgd2hpY2ggaXMgd2hpY2guIEhvd2V2ZXIsIGluIHNvbWUgY2FzZXMsIHlvdSBtaWdodCB3YW50IHRvIGhhdmUgbmFtZWxlc3MgZmllbGRzLiBVbmNoZWNrIHRoaXMgaWYgeW91IHdhbnQgdG8gYWxsb3cgbmFtZWxlc3MgZmllbGRzLjwvbGk+CjxsaT5VbmlxdWUgRmllbGQgTmFtZXMuIFR5cGljYWxseSwgeW91IHdpbGwgd2FudCBmb3JtIGZpZWxkcyB0byBoYXZlIHVuaXF1ZSBuYW1lcyBzbyB5b3UgY2FuIHRlbGwgd2hpY2ggaXMgd2hpY2guIFVuY2hlY2sgdGhpcyBpZiB5b3Ugd2FudCB0byBhbGxvdyBmaWVsZHMgdG8gc2hhcmUgbmFtZXMuPC9saT4KPGxpPlVzZSByZWxheGVkIGVtYWlsIHZhbGlkYXRpb24uIFRoaXMgdXNlcyBhIGxlc3MgcmVzdHJpY3RpdmUgcmVndWxhciBleHByZXNzaW9uIGZvciB2YWxpZGF0aW5nIGVtYWlsOyBlLmcuLCB4QHkgd2lsbCBiZSBhbGxvd2VkLCB3aGVyZSB0eXBpY2FsbHkgeEB5LnRsZCBpcyByZXF1aXJlZC48L2xpPgo8bGk+U2hvdyBGb3JtIEJ1aWxkZXIgVmVyc2lvbi4gRGlzcGxheXMgdGhlIHZlcnNpb24gb2YgRm9ybUJ1aWxkZXIgeW91J3JlIHVzaW5nIGluIGEgY29tbWVudCB3aGVuIHRoZSBmb3JtIGlzIGdlbmVyYXRlZC4gVHlwaWNhbGx5IG9ubHkgdXNlZnVsIHdoZW4gZGVidWdnaW5nLjwvbGk+CjxsaT5FbmFibGUgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcy4gV2hlbiB0dXJuZWQgb24sIHRoaXMgYWxsb3dzIGFueSBnaXZlbiBJUCBhZGRyZXNzIHRvIG9ubHkgZ2VuZXJhdGUgMTAgZW1haWxzIHBlciBob3VyLjwvbGk+CjxsaT5TaG93IEZpZWxkIElEcy4gV2hlbiB0dXJuZWQgb24sIEZvcm1CdWlsZGVyIHdpbGwgZGlzcGxheSBmaWVsZCBpZHMgd2hlbiBhZGRpbmcgb3IgZWRpdGluZyBhIGZvcm0uPC9saT4KPC91bD4KPGgzPlN0eWxpbmcgYW5kIENTUzwvaDM+CjxwPkFmdGVyIGEgYml0IG9mIG5hZ2dpbmcgb24gdGhlIHBhcnQgb2YgcGVvcGxlIHdobyBhY3R1YWxseSByZXNwZWN0IHN0YW5kYXJkcywgRm9ybUJ1aWxkZXIgbm8gbG9uZ2VyIGVuY291cmFnZXMgdHJpY2tzIGxpa2UgZW1iZWRkaW5nIENTUyBpbiAKc3RhdGljIHRleHQgZmllbGRzLiBJbnN0ZWFkLCBpdCBjcmVhdGVzIGEgc3R5bGVzaGVldCBjYWxsZWQgXCJGb3JtQnVpbGRlciBEZWZhdWx0XCIgdGhhdCB5b3UgYXJlIGVuY291cmFnZWQgdG8gYXR0YWNoIHRvIHRoZSBwYWdlIHRlbXBsYXRlCnRoYXQgeW91IHVzZSBmb3IgcGFnZXMgdGhhdCBjb250YWluIHlvdXIgZm9ybS48L3A+ICAKPHA+VGhpcyBkZWZhdWx0IENTUyB3YXMgZ3JhY2lvdXNseSBwcm92aWRlZCBieSBQYXVsIE5vb25lLjwvcD4KCiIuJGxhbmdbJ3RlbXBsYXRlX3ZhcmlhYmxlX2hlbHAnXS4iCjxoMz5DcmVkaXRzPC9oMz4KPHA+TWFueSBwZW9wbGUgaGF2ZSBjb250cmlidXRlZCBjb2RlLCBidWcgcmVwb3J0cywgY2FzaCwgYW5kIGlkZWFzIHRvIEZvcm1CdWlsZGVyLiBBbW9uZyB0aGVtIChhbHBoYWJldGljYWxseSk6Cjx1bD4KPGxpPjxhIGhyZWY9XCJodHRwOi8vd3d3LmJwdGkuZXVcIj5CYWx0aWMgaW5zdGl0dXRlIG9mIGFkdmFuY2VkIHRlY2hub2xvZ3k8L2E+IC0gY29kZSwgZnVuZGluZyA8L2xpPgo8bGk+SmVyZW15IEJhc3MgLSBjb2RlIGFuZCBzdWdnZXN0aW9uczwvbGk+CjxsaT5BbGJlcnRvIEJlbmF0aSAtIGNvZGU8L2xpPgo8bGk+VHlsZXIgQm9lc3BmbHVnIC0gZnVuZGluZyBhbmQgaWRlYXM8L2xpPgo8bGk+SmVmZiBCb3NjaCAtIFVEVCBWYWxpZGF0aW9uPC9saT4KPGxpPlJvYmVydCBDYW1wYmVsbCAtIG51bWVyb3VzIGNvZGUgY29udHJpYnV0aW9uczwvbGk+CjxsaT5QaW90cmFzIENpbW1wZXJtYW4gLSBjb2RlPC9saT4KPGxpPk51bm8gQ29zdGEgLSBzdWdnZXN0aW9uczwvbGk+CjxsaT5SeWFuIEZvc3RlciAtIGNvZGU8L2xpPgo8bGk+TWFyYyBHZWxkb24gLSBjb2RlPC9saT4KPGxpPktldmluIEdyYW5kb24gLSBjb2RlPC9saT4KPGxpPlJvbm55IEtyaWp0IC0gY29kZTwvbGk+CjxsaT5QYXVsIE5vb25lIC0gQ1NTIGFuZCBpZGVhczwvbGk+CjxsaT5Nb3J0ZW4gUG91bHNlbiAtIGNvZGU8L2xpPgo8bGk+UHJ1ZSBSb3dsYW5kIC0gYnVnIGZpeGVzPC9saT4KPGxpPlNpbW9uIFNjaGF1ZmVsYmVyZ2VyIC0gY29kZTwvbGk+CjwvdWw+CjxwPkkgYXBvbG9naXplIGZvciBhbnkgb21pc3Npb25zIC0gbm90aWZ5IG1lLCBhbmQgSSdsbCBjb3JyZWN0IHRoZSBvbWlzc2lvbiE8L3A+CjxoMz5NaXNjZWxsYW5lb3VzIE5vdGVzPC9oMz4KPHVsPgo8bGk+QW55IGZpZWxkcyB0aGF0IHNlbmRzIGVtYWlsIHRvIGEgc3BlY2lmaWVkIGVtYWlsIGFkZHJlc3Mgd2lsbCBhbHNvIGFjY2VwdCBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIGVtYWlsIGFkZHJlc3Nlcy48L2xpPgo8L3VsPgo8aDM+S25vd24gSXNzdWVzPC9oMz4KPHVsPgo8bGk+Rm9ybUJ1aWxkZXIgZG9lcyBub3QgeWV0IHN1cHBvcnQgcHJldHR5IFVSTHMsIGFsdGhvdWdoIHRoYXQgc2hvdWxkbid0IG1hdHRlciBzaW5jZSB0aGUgdXNlciBzaWRlIGlzIHByZXR0eSBzaW1wbGUuPC9saT4KPGxpPkZpbGVVcGxvYWQgRmllbGRzIG1heSBub3Qgd29yayBjb3JyZWN0bHkgd2l0aCBtdWx0aXBhZ2UgZm9ybXMuPC9saT4KPC91bD4KCjxoMz5Ucm91Ymxlc2hvb3Rpbmc8L2gzPgo8b2w+CjxsaT5Gb3JtQnVpbGRlci9Gb3JtQnJvd3NlciA8c3Ryb25nPnJlcXVpcmVzPC9zdHJvbmc+IFBIUCA1IG9yIGxhdGVyIHRvIGZ1bmN0aW9uIGNvcnJlY3RseS48L2xpPgo8bGk+Rmlyc3Qgc3RlcCBpcyB0byBjaGVjayB5b3UncmUgcnVubmluZyBDTVMgMS42IG9yIGxhdGVyLjwvbGk+CjxsaT5TZWNvbmQgc3RlcCBpcyB0byByZWFkIGFuZCB1bmRlcnN0YW5kIHRoZSBjYXZlYXQgYWJvdXQgV1lTSVdZRyBlZGl0b3JzIHVwIGluIHRoZQpzZWN0aW9uIDxlbT5BZGRpbmcgYSBGb3JtIHRvIGEgUGFnZTwvZW0+LjwvbGk+CjxsaT4gSWYgeW91J3JlIG1pc3NpbmcgZmllbGRzIGluIGFuIGVtYWlsIHRoYXQgZ2V0cyBnZW5lcmF0ZWQsIGNoZWNrIHRoZSBkaXNwb3NpdGlvbiBmaWVsZCdzIHRlbXBsYXRlLCBhbmQgbWFrZSBzdXJlIHlvdSdyZSBzcGVjaWZ5aW5nIHRoZSBtaXNzaW5nIGZpZWxkcy4gU2VlbXMgb2J2aW91cywgYnV0IGl0J3MgYW4gZWFzeSBtaXN0YWtlIHRvIG1ha2UuPC9saT4KPGxpPlVuY2hlY2sgdGhlIFwiSGlkZSBFcnJvcnNcIiBjaGVja2JveCBpbiB0aGUgZ2xvYmFsIG9wdGlvbnMsIGFuZCBzZWUgd2hhdCBtZXNzYWdlIGdldHMgZGlzcGxheWVkIHdoZW4geW91IHN1Ym1pdCB5b3VyIGZvcm0uPC9saT4KPGxpPiBKdXN0IG1lc3MgYXJvdW5kIGFuZCB0cnkgY2xpY2tpbmcgb24gbGlua3MgYW5kIGljb25zIGFuZCBzdHVmZi4gU2VlIHdoYXQgaGFwcGVucy48L2xpPgo8bGk+IE1ha2Ugc3VyZSB5b3UgY2FuIHN1Y2Nlc3NmdWxseSBzZW5kIGVtYWlsIHZpYSB0aGUgdGVzdCBpbiB0aGUgQ01TTWFpbGVyIE1vZHVsZS4gSXQncyBzaW1wbHkgYW1hemluZyBob3cgbWFueSBwcm9ibGVtcyBib2lsIGRvd24gdG8gYSBtaXNjb25maWd1cmVkIENNU01haWxlci48L2xpPgo8bGk+IExhc3QgcmVzcG9ydCBpcyB0byBlbWFpbCBtZSBvciBjYXRjaCBtZSBvbiBJUkMgYW5kIHdlIGNhbiBnbyBmcm9tIHRoZXJlLjwvbGk+Cjwvb2w+IAo8cD5UaGlzIGlzIG5vIGxvbmdlciBhIHBhcnRpY3VsYXJseSBlYXJseSB2ZXJzaW9uLCBidXQgaXQgaXMgcHJvYmFibHkgc3RpbGwgYnVnZ3kuIFdoaWxlIEkndmUgZG9uZSBhbGwgSSBjYW4KdG8gbWFrZSBzdXJlIG5vIGVncmVnaW91cyBidWdzIGhhdmUgY3JlcHQgaW4sIEkgaGF2ZSB0byBhZG1pdCB0aGF0IGR1cmluZyBlYXJseSB0ZXN0aW5nLCB0aGlzIHByb2dyYW0KcmV2ZWFsZWQgc2V2ZW4gY29ja3JvYWNoZXMsIHR3byBlYXJ3aWdzLCBhIHNtYWxsIGZhbWlseSBvZiBhcGhpZHMsIGFuZCBhIHdhbGtpbmctc3RpY2sgaW5zZWN0LiBJdCBhbHNvCmF0ZSB0aGUgbmVpZ2hib3IncyBuYXN0eSBsaXR0bGUgeWFwIGRvZywgZm9yIHdoaWNoIEkgd2FzIGluYXBwcm9wcmlhdGVseSBncmF0ZWZ1bC48L3A+CjxwPlRoZSBmaW5hbCByZWxlYXNlIHdpbGwgaW5jbHVkZSBidWcgZml4ZXMsIGRvY3VtZW50YXRpb24sIGFuZCB1bmNvbmRpdGlvbmFsIGxvdmUuPC9wPgo8aDM+U3VwcG9ydDwvaDM+CjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4KPHVsPgo8bGk+Rm9yIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIG1vZHVsZSwgRkFRcywgb3IgdG8gZmlsZSBhIEJ1ZyBSZXBvcnQsIHBsZWFzZSB2aXNpdCB0aGUgQ01TIE1hZGUgU2ltcGxlICA8YSBocmVmPVwiaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZ1wiPkRldmVsb3BlciBGb3JnZTwvYT4uPC9saT4KPGxpPlRvIG9idGFpbiBjb21tZXJjaWFsIHN1cHBvcnQsIHBsZWFzZSBzZW5kIGFuIGVtYWlsIHRvIHRoZSBhdXRob3IgYXQgPGEgaHJlZj1cIm1haWx0bzpzamdAY21zbW9kdWxlcy5jb21cIj4mbHQ7c2pnQGNtc21vZHVsZXMuY29tJmd0OzwvYT4uPC9saT4KPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj1cImh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZ1wiPkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LjwvbGk+CjxsaT5UaGUgYXV0aG9yIGNhbiBvZnRlbiBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj1cImlyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2Ntc1wiPkNNUyBJUkMgQ2hhbm5lbDwvYT4uPC9saT4KPGxpPkxhc3RseSwgeW91IG1heSBoYXZlIHNvbWUgc3VjY2VzcyBlbWFpbGluZyB0aGUgYXV0aG9yIGRpcmVjdGx5IGFuZCBncm92ZWxsaW5nIGZvciBmcmVlIHN1cHBvcnQuPC9saT4KPGxpPkRvbmF0aW9ucyBhcmUgZ29vZCBtb3RpdmF0b3JzLCB0b28uIEtlZXAgaW4gbWluZCB0aGF0IHRoZSBkb2xsYXIgaXMgd2VhaywgYW5kIGlmIHlvdSBhcmUgbm90IGluIHRoZSBVUywgeW91ciBkb25hdGlvbiBnZXRzIG1hZ25pZmllZC48L2xpPgo8L3VsPgo8cD5LZWVwIGluIG1pbmQgdGhhdCB0aGUgYXV0aG9yIGhhcyBwdXQgPGVtPmh1bmRyZWRzIGFuZCBodW5kcmVkcyBvZiBob3VyczwvZW0+IGludG8gdGhlIGRldmVsb3BtZW50IG9mIHRoaXMgbW9kdWxlLgpQbGVhc2UgdGFrZSB0aGUgdGltZSB0byByZWFkIHRoZSBkb2N1bWVudGF0aW9uIGJlZm9yZSBzZW5kaW5nIHF1ZXN0aW9ucy4gRWl0aGVyIHRoYXQsIG9yIHNlbmQgeW91ciBxdWVzdGlvbnMgd3JpdHRlbiBvbgpmaW5hbmNpYWxseSBuZWdvdGlhYmxlIGluc3RydW1lbnRzIChpLmUuLCBjaGVja3Mgb3IgY2FzaCkuIEFtIEkgc291bmRpbmcgbGlrZSBhIGJyb2tlbiByZWNvcmQ/IERvIHlvdSBraWRzIHRoZXNlIGRheXMKZXZlbiBrbm93IHdoYXQgYSBicm9rZW4gcmVjb3JkIGlzPyBJIHdvdWxkIHNheSBza2lwcGluZyBDRCwgYnV0IHlvdSBtaWdodCBub3Qga25vdyB3aGF0IHRoYXQgaXMgZWl0aGVyLiBMaWtlIGEKc2FtcGxlIHRoYXQgZ290IHN0dWNrIG9uIGxvb3A/IERhbW4sIEkgYW0gZ2V0dGluZyBvbGQuIFNvIGlzIHRoaXMgcGFyYWdyYXBoLiBUaW1lIHRvIG1vdmUgb24sIGhlcmUuPC9wPiIuCic8Zm9ybSBhY3Rpb249Imh0dHBzOi8vd3d3LnBheXBhbC5jb20vY2dpLWJpbi93ZWJzY3IiIG1ldGhvZD0icG9zdCI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNtZCIgdmFsdWU9Il9zLXhjbGljayI+CjxpbnB1dCB0eXBlPSJpbWFnZSIgc3JjPSJodHRwczovL3d3dy5wYXlwYWwuY29tL2VuX1VTL2kvYnRuL2J0bl9kb25hdGVDQ19MRy5naWYiIGJvcmRlcj0iMCIgbmFtZT0ic3VibWl0IiBhbHQ9IlBheVBhbCAtIFRoZSBzYWZlciwgZWFzaWVyIHdheSB0byBwYXkgb25saW5lISI+CjxpbWcgYWx0PSIiIGJvcmRlcj0iMCIgc3JjPSJodHRwczovL3d3dy5wYXlwYWwuY29tL2VuX1VTL2kvc2NyL3BpeGVsLmdpZiIgd2lkdGg9IjEiIGhlaWdodD0iMSI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImVuY3J5cHRlZCIgdmFsdWU9Ii0tLS0tQkVHSU4gUEtDUzctLS0tLU1JSUhUd1lKS29aSWh2Y05BUWNFb0lJSFFEQ0NCendDQVFFeGdnRXdNSUlCTEFJQkFEQ0JsRENCampFTE1Ba0dBMVVFQmhNQ1ZWTXhDekFKQmdOVkJBZ1RBa05CTVJZd0ZBWURWUVFIRXcxTmIzVnVkR0ZwYmlCV2FXVjNNUlF3RWdZRFZRUUtFd3RRWVhsUVlXd2dTVzVqTGpFVE1CRUdBMVVFQ3hRS2JHbDJaVjlqWlhKMGN6RVJNQThHQTFVRUF4UUliR2wyWlY5aGNHa3hIREFhQmdrcWhraUc5dzBCQ1FFV0RYSmxRSEJoZVhCaGJDNWpiMjBDQVFBd0RRWUpLb1pJaHZjTkFRRUJCUUFFZ1lBSU5uQldiL1hNNGxtdkxHSGw5UmQxY3ZMNXRycVJoYzcrRm9HSDVMdG9mUWlWcmdGU3ZoN2gxb2pnNVN6VHhiZ3RpMzJaRjAvdWN1cS9PUVNEK1Z6dXVBRjF2NndWcnR5T2VDUEVBdzhqODFESk9YVmpKSHNJWTJtdmlvclBqb2xMUWtGbnYxMnlSVHB1RldGbjRaWGU1K3ZuQ2pYcUJ5MEVFL2FoekVNTW56RUxNQWtHQlNzT0F3SWFCUUF3Z2N3R0NTcUdTSWIzRFFFSEFUQVVCZ2dxaGtpRzl3MERCd1FJY0tOTndPUEZvd3VBZ2FpdlM3djBqMlhGeVE5ZHI4bmk5Rzk1ZUU3WXFvZ0dsSzl3dVNwbGxPZzlsbnJ1dm5FUXFzbVJtUW50aFFxV0NUYlp6RzIrSUV0ZU00SVVzeEV1R1RydzhwWkNVMjRUTkRja25LVXg5VXozdlN4T2gzZ3U5NXlKeUR3b2VNdmFFQTI0YnMxNFFFYkpiaE5qWTZXeEh6OStpL2xWQURCanlBT0RZTXV6YWxEa3ZkdXZ3ZUdOWms5bFlMUlJDb1BQTmlsRzFQZjZ3ODdCSHBrU004V1ExTEM5K1JXZFhmWmNtK2VnZ2dPSE1JSURnekNDQXV5Z0F3SUJBZ0lCQURBTkJna3Foa2lHOXcwQkFRVUZBRENCampFTE1Ba0dBMVVFQmhNQ1ZWTXhDekFKQmdOVkJBZ1RBa05CTVJZd0ZBWURWUVFIRXcxTmIzVnVkR0ZwYmlCV2FXVjNNUlF3RWdZRFZRUUtFd3RRWVhsUVlXd2dTVzVqTGpFVE1CRUdBMVVFQ3hRS2JHbDJaVjlqWlhKMGN6RVJNQThHQTFVRUF4UUliR2wyWlY5aGNHa3hIREFhQmdrcWhraUc5dzBCQ1FFV0RYSmxRSEJoZVhCaGJDNWpiMjB3SGhjTk1EUXdNakV6TVRBeE16RTFXaGNOTXpVd01qRXpNVEF4TXpFMVdqQ0JqakVMTUFrR0ExVUVCaE1DVlZNeEN6QUpCZ05WQkFnVEFrTkJNUll3RkFZRFZRUUhFdzFOYjNWdWRHRnBiaUJXYVdWM01SUXdFZ1lEVlFRS0V3dFFZWGxRWVd3Z1NXNWpMakVUTUJFR0ExVUVDeFFLYkdsMlpWOWpaWEowY3pFUk1BOEdBMVVFQXhRSWJHbDJaVjloY0dreEhEQWFCZ2txaGtpRzl3MEJDUUVXRFhKbFFIQmhlWEJoYkM1amIyMHdnWjh3RFFZSktvWklodmNOQVFFQkJRQURnWTBBTUlHSkFvR0JBTUZIVHQzOFJNeExYSnlPMlNtUytOZGw3MlQ3b0tKNHU0dXcrNmF3bnRBTFdoMDNQZXdtSUp1emJBTFNjc1RTNHNab1MxZktjaUJHb2gxMWdJZkh6eWx2a2ROZS9oSmw2Ni9SR3FyajVyRmIwOHNBQUJOVHpEVGlxcU5wSmVCc1lzL2MyYWlHb3pwdFgyUmxuQmt0SCtTVU5wQWFqVzcyNE52Mld2aGlmNnNGQWdNQkFBR2pnZTR3Z2Vzd0hRWURWUjBPQkJZRUZKYWZmTHZHYnhlOVdUOVMxd29iN0JEV1pKUnJNSUc3QmdOVkhTTUVnYk13Z2JDQUZKYWZmTHZHYnhlOVdUOVMxd29iN0JEV1pKUnJvWUdVcElHUk1JR09NUXN3Q1FZRFZRUUdFd0pWVXpFTE1Ba0dBMVVFQ0JNQ1EwRXhGakFVQmdOVkJBY1REVTF2ZFc1MFlXbHVJRlpwWlhjeEZEQVNCZ05WQkFvVEMxQmhlVkJoYkNCSmJtTXVNUk13RVFZRFZRUUxGQXBzYVhabFgyTmxjblJ6TVJFd0R3WURWUVFERkFoc2FYWmxYMkZ3YVRFY01Cb0dDU3FHU0liM0RRRUpBUllOY21WQWNHRjVjR0ZzTG1OdmJZSUJBREFNQmdOVkhSTUVCVEFEQVFIL01BMEdDU3FHU0liM0RRRUJCUVVBQTRHQkFJRmZPbGFhZ0ZybDcxK2pxNk9LaWRiV0ZTRStRNEZxUk92ZGdJT050aCs4a1NLLy9ZLzRpaHVFNFltdnpuNWNlRTNTL2lCU1FRTWp5dmIrczJUV2JRWUR3Y3AxMjlPUEliRDllcGRyNHRKT1VOaVNvanc3Qkh3WVJpUGg1OFMxeEdsRmdIRlh3ckVCYjNkZ05iTVVhK3U0cWVjdHNNQVhwVkhuRDl3SXlmbUhNWUlCbWpDQ0FaWUNBUUV3Z1pRd2dZNHhDekFKQmdOVkJBWVRBbFZUTVFzd0NRWURWUVFJRXdKRFFURVdNQlFHQTFVRUJ4TU5UVzkxYm5SaGFXNGdWbWxsZHpFVU1CSUdBMVVFQ2hNTFVHRjVVR0ZzSUVsdVl5NHhFekFSQmdOVkJBc1VDbXhwZG1WZlkyVnlkSE14RVRBUEJnTlZCQU1VQ0d4cGRtVmZZWEJwTVJ3d0dnWUpLb1pJaHZjTkFRa0JGZzF5WlVCd1lYbHdZV3d1WTI5dEFnRUFNQWtHQlNzT0F3SWFCUUNnWFRBWUJna3Foa2lHOXcwQkNRTXhDd1lKS29aSWh2Y05BUWNCTUJ3R0NTcUdTSWIzRFFFSkJURVBGdzB3T0RBM01ERXdNelU1TXpsYU1DTUdDU3FHU0liM0RRRUpCREVXQkJRTTBMVjMwZkxYY0g5TTVkTW11VEJMbnNGUTRqQU5CZ2txaGtpRzl3MEJBUUVGQUFTQmdCRXoyWHFNTXFGYnVVaGorTDEyOEN3MnU4U2hPS1F0dHJLci9oaTBXUmVlbkhEWUJpSE9TdGw2M1J2NzZRMm1wZDQ1M1J2Q2o1bXE3ZFJ0dVJCNnBmSEdSRGtVWDZOMStPT0lvSWZyb0JaSUFUTmh6OUNFSHdFRmtOallnMEVHTUFHK2pjYkFqMURKalI3M2N4YmFOclhXUHhBK2hpUWhIbEFyclpBN3JGVjUtLS0tLUVORCBQS0NTNy0tLS0tCiI+CjwvZm9ybT4nLgoiPHA+QXMgcGVyIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgYXMtaXMuIFBsZWFzZSByZWFkIHRoZSB0ZXh0Cm9mIHRoZSBsaWNlbnNlIGZvciB0aGUgZnVsbCBkaXNjbGFpbWVyLjwvcD4KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+CjxwPkNvcHlyaWdodCAmY29weTsgMjAwOSwgU2FtdWVsIEdvbGRzdGVpbiA8YSBocmVmPVwibWFpbHRvOnNqZ0BjbXNtb2R1bGVzLmNvbVwiPiZsdDtzamdAY21zbW9kdWxlcy5jb20mZ3Q7PC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPgo8cD5UaGlzIG1vZHVsZSBoYXMgYmVlbiByZWxlYXNlZCB1bmRlciB0aGUgPGEgaHJlZj1cImh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTFwiPkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+IjsKCgoKPz4K]]></data>
	</file>
	<file>
	  <filename>/lang/ext/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/ext/cs_CZ.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ1R2xa9yY2UgZm9ybXVsJmFhY3V0ZTvFmcWvJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfJ10gPSAnVHlwIHBvbGUgbmVieWwgbmFzdGF2ZW4nOwokbGFuZ1snZmllbGRfdHlwZV9DYXRhbG9nZXJJdGVtc0ZpZWxkJ10gPSAnVnliZXJ0ZSBqZWRudSAobmVibyB2JmlhY3V0ZTtjZSkgcG9sb8W+ZWsgbW9kdWx1IENhdGFsb2dlcic7CiRsYW5nWydmaWVsZF90eXBlX0ZpZWxkc2V0RW5kJ10gPSAnLUtvbmVjIHNrdXBpbnkgcG9sJmlhY3V0ZTvEjWVrJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmllbGRzZXRTdGFydCddID0gJy1aYcSNJmFhY3V0ZTt0ZWsgc2t1cGlueSBwb2wmaWFjdXRlO8SNZWsnOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0RmllbGQnXSA9ICdUZXh0b3YmZWFjdXRlOyB2c3R1cG4maWFjdXRlOyBwb2xlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkRXhwYW5kYWJsZSddID0gJ1RleHRvdiZlYWN1dGU7IHZzdHVwbiZpYWN1dGU7IHBvbGUgKHYmaWFjdXRlO2NlbiZhYWN1dGU7c29ibiZlYWN1dGU7KSc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRBcmVhRmllbGQnXSA9ICdUZXh0b3YmeWFjdXRlOyByJmFhY3V0ZTttZcSNZWsnOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEZpZWxkJ10gPSAnWmEmc2Nhcm9uO2tydCZhYWN1dGU7dmFjJmlhY3V0ZTsgcG9sJmlhY3V0ZTvEjWtvJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hHcm91cEZpZWxkJ10gPSAnU2t1cGluYSB6YSZzY2Fyb247a3J0JmFhY3V0ZTt2YWMmaWFjdXRlO2NoIHBvbCZpYWN1dGU7xI1layc7CiRsYW5nWydmaWVsZF90eXBlX1B1bGxkb3duRmllbGQnXSA9ICdSb3piYWxvdmFjJmlhY3V0ZTsgbmFiJmlhY3V0ZTtka2EnOwokbGFuZ1snZmllbGRfdHlwZV9NdWx0aXNlbGVjdEZpZWxkJ10gPSAnViZ5YWN1dGU7YsSbciB2JmlhY3V0ZTtjZSBtb8W+bm9zdCZpYWN1dGU7JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3RhdGVQaWNrZXJGaWVsZCddID0gJ1YmeWFjdXRlO2LEm3Igc3QmYWFjdXRlO3TFryBVU0EnOwokbGFuZ1snZmllbGRfdHlwZV9Qcm92aW5jZVBpY2tlckZpZWxkJ10gPSAnViZ5YWN1dGU7YsSbciBrYW5hZHNrJnlhY3V0ZTtjaCBwcm92aW5jaSZpYWN1dGU7JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ291bnRyeVBpY2tlckZpZWxkJ10gPSAnViZ5YWN1dGU7YsSbciBzdCZhYWN1dGU7dMWvJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGF0ZVBpY2tlckZpZWxkJ10gPSAnViZ5YWN1dGU7YsSbciBkYXRhJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGltZVBpY2tlckZpZWxkJ10gPSAnViZ5YWN1dGU7YsSbciDEjWFzdSc7CiRsYW5nWydmaWVsZF90eXBlX1JhZGlvR3JvdXBGaWVsZCddID0gJ1NrdXBpbmEgcMWZZXAmaWFjdXRlO25hxI3Fryc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGlyZWN0b3InXSA9ICcqRW1haWwgUmVzdWx0cyBCYXNlZCBvbiBQdWxsZG93bic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRmlsZURpcmVjdG9yJ10gPSAnKlNhdmUgUmVzdWx0cyB0byBGaWxlIEJhc2VkIG9uIFB1bGxkb3duJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25NdWx0aXNlbGVjdEZpbGVEaXJlY3RvciddID0gJypTYXZlIFJlc3VsdHMgdG8gRmlsZShzKSBCYXNlZCBvbiBNdWx0aXBsZSBTZWxlY3Rpb25zJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25QYWdlUmVkaXJlY3RvciddID0gJypSZWRpcmVjdCB0byBQYWdlIEJhc2VkIG9uIFB1bGxkb3duJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbCddID0gJypFbWFpbCBSZXN1bHRzIHRvIHNldCBBZGRyZXNzKGVzKSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxDb25maXJtYXRpb24nXSA9ICcqVmFsaWRhdGUtdmlhLUVtYWlsIEFkZHJlc3MnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZyb21FbWFpbEFkZHJlc3NGaWVsZCddID0gJypFbWFpbCAmcXVvdDtGcm9tIEFkZHJlc3MmcXVvdDsgRmllbGQsIGFuZCBzZW5kIGNvcHknOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZpbGUnXSA9ICcqWmFwc2F0IHYmeWFjdXRlO3NsZWRreSBkbyB0ZXh0b3YmZWFjdXRlO2hvIHNvdWJvcnUnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRhdGFiYXNlJ10gPSAnKlVsb8W+aXQgdiZ5YWN1dGU7c2xlZGt5IGRvIGRhdGFiJmFhY3V0ZTt6ZSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRm9ybUJyb3dzZXInXSA9ICcqVWxvxb5pdCB2JnlhY3V0ZTtzbGVka3kgcHJvIG1vZHVsIFByb2hsJmlhY3V0ZTvFvmXEjSBmb3JtdWwmYWFjdXRlO8WZxa8gdi4zJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Vc2VyVGFnJ10gPSAnKkNhbGwgQSBVc2VyIERlZmluZWQgVGFnIFdpdGggdGhlIEZvcm0gUmVzdWx0cyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGVsaXZlclRvRW1haWxBZGRyZXNzRmllbGQnXSA9ICcqRW1haWwgdG8gVXNlci1TdXBwbGllZCBFbWFpbCBBZGRyZXNzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbFNpdGVBZG1pbiddID0gJypFbWFpbCB0byBDTVMgQWRtaW4gVXNlcic7CiRsYW5nWydmaWVsZF90eXBlX1BhZ2VCcmVha0ZpZWxkJ10gPSAnLVBhZ2UgQnJlYWsnOwokbGFuZ1snZmllbGRfdHlwZV9GaWxlVXBsb2FkRmllbGQnXSA9ICdOYWhyJmFhY3V0ZTtuJmlhY3V0ZTsgc291Ym9ydSc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbEFkZHJlc3NGaWVsZCddID0gJ0VtYWlsICZxdW90O0Zyb20gQWRkcmVzcyZxdW90OyBGaWVsZCc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbEFkZHJlc3NBZ2FpbkZpZWxkJ10gPSAnRW1haWwgJnF1b3Q7RnJvbSBBZGRyZXNzJnF1b3Q7IEFnYWluIEZpZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsTmFtZUZpZWxkJ10gPSAnRW1haWwgJnF1b3Q7RnJvbSBOYW1lJnF1b3Q7IEZpZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsU3ViamVjdEZpZWxkJ10gPSAnRW1haWwgJnF1b3Q7U3ViamVjdCZxdW90OyBGaWVsZCc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRpY1RleHRGaWVsZCddID0gJy1TdGF0aWNrJnlhY3V0ZTsgdGV4dCAoU3RhdGljIFRleHQpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3lzdGVtTGlua0ZpZWxkJ10gPSAnLVN0YXRpY2smeWFjdXRlOyBvZGtheiAoU3RhdGljIExpbmspJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTGlua0ZpZWxkJ10gPSAnT2RrYXogKHZsb8W+ZW4meWFjdXRlOyB1xb5pdmF0ZWxlbSkgW0xpbmsgKFVzZXItZW50ZXJlZCldJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfSGlkZGVuRmllbGQnXSA9ICctU2Nob3ZhbiZlYWN1dGU7IHBvbGUgKEhpZGRlbiBGaWVsZCknOwokbGFuZ1snZmllbGRfdHlwZV9Db21wdXRlZEZpZWxkJ10gPSAnLVZ5cG/EjSZpYWN1dGU7dGFuJmVhY3V0ZTsgcG9sZSAoQ29tcHV0ZWQgRmllbGQpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVW5pcXVlSW50ZWdlckZpZWxkJ10gPSAnLVVuaXF1ZSBJbnRlZ2VyIChTZXJpYWwpJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbm9uZSddID0gJ0JleiBvdmXFmWVuJmlhY3V0ZTsgcGxhdG5vc3RpJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbnVtZXJpYyddID0gJ8SMJmlhY3V0ZTtzZWxuJmFhY3V0ZTsgaG9kbm90YSAoTnVtZXJpYyknOwokbGFuZ1sndmFsaWRhdGlvbl9pbnRlZ2VyJ10gPSAnQ2Vsb8SNJmlhY3V0ZTtzZWxuJmFhY3V0ZTsgaG9kbm90YSAoSW50ZWdlciknOwokbGFuZ1sndmFsaWRhdGlvbl9lbWFpbF9hZGRyZXNzJ10gPSAnRW1haWxvdiZhYWN1dGU7IGFkcmVzYSAoRW1haWwgQWRkcmVzcyknOwokbGFuZ1sndmFsaWRhdGlvbl91c3Bob25lJ10gPSAnVGVsZWZvbiZpYWN1dGU7IMSNJmlhY3V0ZTtzbG8gKFVTKSc7CiRsYW5nWyd2YWxpZGF0aW9uX211c3RfY2hlY2snXSA9ICdNdXMmaWFjdXRlOyBiJnlhY3V0ZTt0IHphJnNjYXJvbjtrcnRudXRvIChNdXN0IEJlIENoZWNrZWQpJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbWF0Y2gnXSA9ICdPZHBvdiZpYWN1dGU7ZCZhYWN1dGU7IHJlZ3VsJmFhY3V0ZTtybiZpYWN1dGU7bXUgdiZ5YWN1dGU7cmF6dSc7CiRsYW5nWyd2YWxpZGF0aW9uX3JlZ2V4X25vbWF0Y2gnXSA9ICdOZW9kcG92JmlhY3V0ZTtkJmFhY3V0ZTsgcmVndWwmYWFjdXRlO3JuJmlhY3V0ZTttdSB2JnlhY3V0ZTtyYXp1JzsKJGxhbmdbJ3JlcXVpcmVkX2ZpZWxkX21pc3NpbmcnXSA9ICdWZSB2ecW+YWRvdmFuJmVhY3V0ZTttIHBvbGkgbmVieWxhIHZsb8W+ZW5hIGhvZG5vdGEnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfdmFsdWUnXSA9ICdQcm9zJmlhY3V0ZTttIHZ5cGzFiHRlIHBvbGUgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfbnVtYmVyJ10gPSAnUHJvcyZpYWN1dGU7bSB2eXBsxYh0ZSDEjSZpYWN1dGU7c2Vsbm91IGhvZG5vdHUgdiBwb2xpICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl92YWxpZCddID0gJ1Byb3MmaWFjdXRlO20gdnlwbMWIdGUgcGxhdG4meWFjdXRlOyAmdWFjdXRlO2RhaiB2IHBvbGkgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FuX2ludGVnZXInXSA9ICdQcm9zJmlhY3V0ZTttIHZ5cGzFiHRlIGNlbG/EjSZpYWN1dGU7c2Vsbm91IGhvZG5vdHUgdiBwb2xpICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hbl9lbWFpbCddID0gJ1Byb3MmaWFjdXRlO20gdnlwbMWIdGUgcGxhdG5vdSBlbWFpbG92b3UgYWRyZXN1IHYgcG9saSAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydlbWFpbF9hZGRyZXNzX2RvZXNfbm90X21hdGNoJ10gPSAnRS1tYWlsb3YmYWFjdXRlOyBhZHJlc2EgbmVvZHBvdiZpYWN1dGU7ZCZhYWN1dGU7IGhvZG5vdMSbIHYgcG9saSAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV9waG9uZSddID0gJ1Byb3MmaWFjdXRlO20gdmxvxb50ZSBwbGF0biZlYWN1dGU7IHRlbGVmb24maWFjdXRlOyDEjSZpYWN1dGU7c2xvIGRvIHBvbGUgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1snbm90X3ZhbGlkX2VtYWlsJ10gPSAnJnF1b3Q7JXMmcXVvdDsgbmV2eXBhZCZhYWN1dGU7IGpha28gcGxhdG4mYWFjdXRlOyBlbWFpbG92JmFhY3V0ZTsgYWRyZXNhISc7CiRsYW5nWydwbGVhc2VfZW50ZXJfbm9fbG9uZ2VyJ10gPSAnUHJvcyZpYWN1dGU7bSB2bG/FvnRlIGhvZG5vdHUga3JhdCZzY2Fyb247JmlhY3V0ZTsgbmXFviAlcyB6bmFrxa8nOwokbGFuZ1sndGl0bGVfbGlzdF9kZWxpbWl0ZXInXSA9ICdabmFrLCBrdGVyJnlhY3V0ZTsgYnVkZSBwb3XFvml0IGpha28gb2RkxJtsb3ZhxI0gdmUgdiZ5YWN1dGU7c2xlZGMmaWFjdXRlO2NoLCBrdGVyJmVhY3V0ZTsgdnJhY2VqJmlhY3V0ZTsgdiZpYWN1dGU7Y2UgbmXFviAxIGhvZG5vdHUnOwokbGFuZ1sneW91X25lZWRfcGVybWlzc2lvbiddID0gJ1lvdSBuZWVkIHRoZSAmcXVvdDslcyZxdW90OyBwZXJtaXNzaW9uIHRvIHBlcmZvcm0gdGhhdCBvcGVyYXRpb24uJzsKJGxhbmdbJ2xhY2twZXJtaXNzaW9uJ10gPSAnU29ycnkhIFlvdSBkb24mIzAzOTt0IGhhdmUgYWRlcXVhdGUgcHJpdmlsZWdlcyB0byBhY2Nlc3MgdGhpcyBzZWN0aW9uLic7CiRsYW5nWydmaWVsZF9vcmRlcl91cGRhdGVkJ10gPSAnUG/FmWFkJmlhY3V0ZTsgcG9sJmlhY3V0ZTsgYWt0dWFsaXpvdiZhYWN1dGU7bm8uJzsKJGxhbmdbJ2Zvcm1fZGVsZXRlZCddID0gJ0Zvcm11bCZhYWN1dGU7xZkgc21heiZhYWN1dGU7bi4nOwokbGFuZ1snZmllbGRfZGVsZXRlZCddID0gJ1BvbGUgc21heiZhYWN1dGU7bm8uJzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb25fdXBkYXRlZCddID0gJ0tvbmZpZ3VyYWNlIGFrdHVhbGl6b3YmYWFjdXRlO25hLic7CiRsYW5nWyd5b3VfbXVzdF9jaGVjayddID0gJ1BybyBwb2tyYcSNb3YmYWFjdXRlO24maWFjdXRlOyBtdXMmaWFjdXRlO3RlIHphJnNjYXJvbjtrcnRub3V0ICZxdW90OyVzJnF1b3Q7Lic7CiRsYW5nWydtdXN0X3NwZWNpZnlfb25lX2Rlc3RpbmF0aW9uJ10gPSAnTXVzJmlhY3V0ZTt0ZSB1csSNaXQgYWxlc3BvxYggamVkbnUgYWRyZXN1ISc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2Zvcm0nXSA9ICdKc3RlIHNpIGppc3QgdnltYXomYWFjdXRlO24maWFjdXRlO20gZm9ybXVsJmFhY3V0ZTvFmWUgJXM/JzsKJGxhbmdbJ2FyZV95b3Vfc3VyZV9kZWxldGVfZmllbGQnXSA9ICdKc3RlIHNpIGppc3Qgc21heiZhYWN1dGU7biZpYWN1dGU7bSBwb2xlICVzPyc7CiRsYW5nWydub3RpY2Vfc2VsZWN0X3R5cGUnXSA9ICdQb2tyb8SNaWwmZWFjdXRlOyBtb8W+bm9zdGkgbmVqc291IGRvc3R1cG4mZWFjdXRlOywgZG9rdWQgbmVuJmlhY3V0ZTsgbmFzdGF2ZW4gdHlwIHBvbGUuJzsKJGxhbmdbJ2ZpZWxkX25hbWVfaW5fdXNlJ10gPSAnVGhlIGZpZWxkIG5hbWUgJnF1b3Q7JXMmcXVvdDsgaXMgYWxyZWFkeSBpbiB1c2UuIFBsZWFzZSB1c2UgdW5pcXVlIGZpZWxkIG5hbWVzLCBvciBkaXNhYmxlIHVuaXF1ZSBmaWVsZCBuYW1lcyBpbiB0aGUgRm9ybSBCdWlsZGVyIGNvbmZpZ3VyYXRpb24uJzsKJGxhbmdbJ2ZpZWxkX25vX25hbWUnXSA9ICdQb2xlIG11c2VqJmlhY3V0ZTsgYiZ5YWN1dGU7dCBwb2ptZW5vdiZhYWN1dGU7bmEsIHBva3VkIHRvdG8gbmV2eXBuZXRlIHYgbmFzdGF2ZW4maWFjdXRlOyBUdsWvcmNlIGZvcm11bCZhYWN1dGU7xZnFry4nOwokbGFuZ1snYW5vbnltb3VzJ10gPSAnQW5vbnltbiZpYWN1dGU7JzsKJGxhbmdbJ2FiYnJldmlhdGlvbl9sZW5ndGgnXSA9ICdEJmVhY3V0ZTtsa2E6ICVzJzsKJGxhbmdbJ2JveGVzJ10gPSAnJXMgYm94ZXMnOwokbGFuZ1snb3B0aW9ucyddID0gJyVzIG1vxb5ub3N0JmlhY3V0ZTsnOwokbGFuZ1sndGV4dF9sZW5ndGgnXSA9ICclcyB6bmFrxa8uJzsKJGxhbmdbJ29yZGVyJ10gPSAnUG/FmWFkJmlhY3V0ZTsnOwokbGFuZ1sndW5zcGVjaWZpZWQnXSA9ICdbbmV1csSNZW5vXSc7CiRsYW5nWydhZGRlZCddID0gJ3DFmWlkJmFhY3V0ZTtubyc7CiRsYW5nWyd1cGRhdGVkJ10gPSAnYWt0dWFsaXpvdiZhYWN1dGU7bm8nOwokbGFuZ1snc29ydF9vcHRpb25zJ10gPSAnVMWZJmlhY3V0ZTtkaXQgdmxhc3Rub3N0aSBuYSB2JnlhY3V0ZTtzdHVwdSc7CiRsYW5nWydzZWxlY3Rfb25lJ10gPSAnU2VsZWN0IE9uZSc7CiRsYW5nWydzZWxlY3RfdHlwZSddID0gJ1NlbGVjdCBUeXBlJzsKJGxhbmdbJ3RvJ10gPSAnUHJvJzsKJGxhbmdbJ3llcyddID0gJ0Fubyc7CiRsYW5nWydubyddID0gJ05lJzsKJGxhbmdbJ3JlY2lwaWVudHMnXSA9ICdwxZkmaWFjdXRlO2plbWPFryc7CiRsYW5nWydmaWxlX2NvdW50J10gPSAnJXMgbW/Fvm4meWFjdXRlO2NoIHNvdWJvcsWvJzsKJGxhbmdbJ2Rlc3RpbmF0aW9uX2NvdW50J10gPSAnJXMgZGVzdGluYXRpb25zJzsKJGxhbmdbJ3NhdmUnXSA9ICdVbG/Fvml0JzsKJGxhbmdbJ2FkZCddID0gJ1DFmWlkYXQnOwokbGFuZ1sndXBkYXRlJ10gPSAnQWt0dWFsaXpvdmF0JzsKJGxhbmdbJ3NhdmVfYW5kX2NvbnRpbnVlJ10gPSAnVWxvxb5pdCBhIHBva3JhxI1vdmF0IHYgJnVhY3V0ZTtwcmF2JmFhY3V0ZTtjaCc7CiRsYW5nWydpbmZvcm1hdGlvbiddID0gJ0luZm9ybWFjZSc7CiRsYW5nWydhdXRvbWF0aWMnXSA9ICdBdXRvbWF0aWNrJmVhY3V0ZTsnOwokbGFuZ1snZm9ybXMnXSA9ICdGb3JtdWwmYWFjdXRlO8WZZSc7CiRsYW5nWydmb3JtJ10gPSAnRm9ybXVsJmFhY3V0ZTvFmSAlcyc7CiRsYW5nWydjb25maWd1cmF0aW9uJ10gPSAnTmFzdGF2ZW4maWFjdXRlOyc7CiRsYW5nWydmaWVsZF9yZXF1aXJlbWVudF91cGRhdGVkJ10gPSAnVnnFvmFkb3Zhbm9zdCBwb2wmaWFjdXRlO8SNa2EgYnlsYSB1cHJhdmVuYS4nOwokbGFuZ1snbWF4aW11bV9zaXplJ10gPSAnTWF4LiB2ZWxpa29zdCc7CiRsYW5nWydwZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ1JveiZzY2Fyb247JmlhY3V0ZTvFmWVuJmlhY3V0ZTsnOwokbGFuZ1sncGVybWl0dGVkX2ZpbGV0eXBlcyddID0gJ1Bvdm9sZW4mZWFjdXRlOyB0eXB5IHNvdWJvcsWvJzsKJGxhbmdbJ2ZpbGVfdG9vX2xhcmdlJ10gPSAnTmFocmFuJnlhY3V0ZTsgc291Ym9yIGplIHDFmSZpYWN1dGU7bGkmc2Nhcm9uOyB2ZWxpayZ5YWN1dGU7LiBQb3ZvbGVuJmFhY3V0ZTsgdmVsaWtvc3QgamU6JzsKJGxhbmdbJ2lsbGVnYWxfZmlsZV90eXBlJ10gPSAnVGVudG8gdHlwIHNvdWJvcnUgbmVtxa/FvmUgYiZ5YWN1dGU7dCBuYWhyJmFhY3V0ZTtuLiBQcm9zJmlhY3V0ZTttIHprb250cm9sdWp0ZSwgxb5lIHNvdWJvciBtJmFhY3V0ZTsgc3ByJmFhY3V0ZTt2bm91IHDFmSZpYWN1dGU7cG9udS4nOwokbGFuZ1sndXBsb2FkJ10gPSAnTmFociZhYWN1dGU7dCc7CiRsYW5nWydmb3JtX2ltcG9ydGVkJ10gPSAnRm9ybXVsJmFhY3V0ZTvFmSBieWwgaW1wb3J0b3YmYWFjdXRlO24uJzsKJGxhbmdbJ2Zvcm1faW1wb3J0X2ZhaWxlZCddID0gJ0ltcG9ydCBmb3JtdWwmYWFjdXRlO8WZZSBzZWxoYWwhIFhNTCBzb3Vib3IgbmVuJmlhY3V0ZTsgdmUgc3ByJmFhY3V0ZTt2biZlYWN1dGU7bSB0dmFydS4nOwokbGFuZ1sncm93cyddID0gJyVzIMWZJmFhY3V0ZTtka8WvJzsKJGxhbmdbJ2NvbHMnXSA9ICclcyBzbG91cGPFryc7CiRsYW5nWycxMl9ob3VyJ10gPSAnMTIgaG9kaW5vdiZlYWN1dGU7IHBvxI0maWFjdXRlO3QmYWFjdXRlO24maWFjdXRlOyDEjWFzdSc7CiRsYW5nWycyNF9ob3VyJ10gPSAnMjQgaG9kaW5vdiZlYWN1dGU7IHBvxI0maWFjdXRlO3QmYWFjdXRlO24maWFjdXRlOyDEjWFzdSc7CiRsYW5nWydob3VyJ10gPSAnSG9kaW5hJzsKJGxhbmdbJ21pbiddID0gJ01pbnV0YSc7CiRsYW5nWydtZXJpZCddID0gJ1BvbGVkbiZpYWN1dGU7ayc7CiRsYW5nWydkYXRlX3JhbmdlJ10gPSAnUm96c2FoOiAlcyAtICVzJzsKJGxhbmdbJ3RoYW5rcyddID0gJ0TEm2t1amVtZSEgViZhYWN1dGU7JnNjYXJvbjsgcMWZJmlhY3V0ZTtzcMSbdmVrIGJ5bCB6YXpuYW1lbiZhYWN1dGU7bi4nOwokbGFuZ1snZWRpdCddID0gJ1VwcmF2aXQnOwokbGFuZ1snZGVsZXRlJ10gPSAnU21hemF0JzsKJGxhbmdbJ2RheSddID0gJ0Rlbic7CiRsYW5nWydtb24nXSA9ICdNxJtzJmlhY3V0ZTtjJzsKJGxhbmdbJ3llYXInXSA9ICdSb2snOwokbGFuZ1snbm9uZSddID0gJyhuaWMpJzsKJGxhbmdbJ2NzcyddID0gJ0NTUyc7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHVsIG9kaW5zdGFsb3YmYWFjdXRlO24uJzsKJGxhbmdbJ2luc3RhbGxlZCddID0gJ01vZHVsIHZlcnplICVzIGJ5bCBuYWluc3RhbG92JmFhY3V0ZTtuLic7CiRsYW5nWyd1cGdyYWRlZCddID0gJ01vZHVsIGJ5bCB1cGdyYWRvdiZhYWN1dGU7biBuYSB2ZXJ6aSAlcy4nOwokbGFuZ1snYnV0dG9uX3ByZXZpb3VzJ10gPSAnWnDEm3QuLi4nOwokbGFuZ1snYnV0dG9uX3N1Ym1pdCddID0gJ1Vsb8W+aXQgZm9ybXVsJmFhY3V0ZTvFmSc7CiRsYW5nWydidXR0b25fY29udGludWUnXSA9ICdQb2tyYcSNb3ZhdC4uLic7CiRsYW5nWyd2YWx1ZV9jaGVja2VkJ10gPSAnWmEmc2Nhcm9uO2tydG51dG8nOwokbGFuZ1sndmFsdWVfdW5jaGVja2VkJ10gPSAnTmV6YSZzY2Fyb247a3J0bnV0byc7CiRsYW5nWyd0YWJfbWFpbiddID0gJ0hsYXZuJmlhY3V0ZTsnOwokbGFuZ1sndGFiX3N5bWJvbCddID0gJ05hc3RhdmVuJmlhY3V0ZTsgem9icmF6ZW4maWFjdXRlOyBmb3JtdWwmYWFjdXRlO8WZZSc7CiRsYW5nWyd0YWJfc3VibWl0J10gPSAnVWtsJmFhY3V0ZTtkJmFhY3V0ZTtuJmlhY3V0ZTsgZm9ybXVsJmFhY3V0ZTvFmWUnOwokbGFuZ1sndGFiX2NhcHRjaGEnXSA9ICdOYXN0YXZlbiZpYWN1dGU7IENhcHRjaGEnOwokbGFuZ1sndGFiX2FkdmFuY2VkJ10gPSAnUG9rcm/EjWlsJmFhY3V0ZTsgbmFzdGF2ZW4maWFjdXRlOyc7CiRsYW5nWyd0YWJfdGVtcGxhdGVsYXlvdXQnXSA9ICcmU2Nhcm9uO2FibG9uYSBmb3JtdWwmYWFjdXRlO8WZZSc7CiRsYW5nWyd0YWJfc3VibWlzc2lvbnRlbXBsYXRlJ10gPSAnJlNjYXJvbjthYmxvbmEgenByJmFhY3V0ZTt2eSBwbyB2bG/FvmVuJmlhY3V0ZTsgZGF0JzsKJGxhbmdbJ2NhbnVzZV9zbWFydHknXSA9ICc8ZW0+ViB0b210byBwb2xpIGx6ZSBwb3XFviZpYWN1dGU7dCBwcm9txJtubiZlYWN1dGU7IFNtYXJ0eS48ZW0+JzsKJGxhbmdbJ2FkZF9vcHRpb25zJ10gPSAnUMWZaWRhdCB2JmlhY3V0ZTtjZSBtb8W+bm9zdCZpYWN1dGU7JzsKJGxhbmdbJ2RlbGV0ZV9vcHRpb25zJ10gPSAnU21hemF0IG96bmHEjWVuJmVhY3V0ZTsgbW/Fvm5vc3RpJzsKJGxhbmdbJ2FkZF9jaGVja2JveGVzJ10gPSAnUMWZaWRhdCB2JmlhY3V0ZTtjZSB6YSZzY2Fyb247a3J0JmFhY3V0ZTt2YWMmaWFjdXRlO2NoIHBvbCZpYWN1dGU7xI1layc7CiRsYW5nWydkZWxldGVfY2hlY2tib3hlcyddID0gJ1NtYXphdCBvem5hxI1lbiZhYWN1dGU7IHphJnNjYXJvbjtrcnQmYWFjdXRlO3ZhYyZpYWN1dGU7IHBvbCZpYWN1dGU7xI1rYSc7CiRsYW5nWydhZGRfYWRkcmVzcyddID0gJ1DFmWlkYXQgZGFsJnNjYXJvbjsmaWFjdXRlOyBhZHJlc3UnOwokbGFuZ1snZGVsZXRlX2FkZHJlc3MnXSA9ICdTbWF6YXQgb3puYcSNZW4mZWFjdXRlOyBhZHJlc3knOwokbGFuZ1snYWRkX2Rlc3RpbmF0aW9uJ10gPSAnUMWZaWRhdCBkYWwmc2Nhcm9uOyZpYWN1dGU7IGMmaWFjdXRlO2wnOwokbGFuZ1snZGVsZXRlX2Rlc3RpbmF0aW9uJ10gPSAnU21hemF0IG96bmHEjWVuJmVhY3V0ZTsgYyZpYWN1dGU7bGUnOwokbGFuZ1snc3VzcGVjdGVkX3NwYW0nXSA9ICdCeWxvIHZ5dHZvxZllbm8gcMWZJmlhY3V0ZTtsaSZzY2Fyb247IG1ub2hvIGUtbWFpbMWvIHBybyBWYSZzY2Fyb247aSBJUCBhZHJlc3UuIEFudGlzcGFtIHphYnImYWFjdXRlO25pbCBkb3J1xI1lbiZpYWN1dGU7Lic7CiRsYW5nWydzdXNwZWN0ZWRfc3BhbV9sb2cnXSA9ICdTdXNwZWN0ZWQgc3BhbSBmcm9tIElQICVzIHN0b3BwZWQuJzsKJGxhbmdbJ3Jlb3JkZXInXSA9ICdTZcWZYWRpdCBwb2wmaWFjdXRlO8SNa2EnOwokbGFuZ1snY2FuY2VsJ10gPSAnU3Ryb25vJzsKJGxhbmdbJ3ZhbHVlX3NldCddID0gJ1NhZGEgaG9kbm90OiAlcyc7CiRsYW5nWydoZWxwX2NhdGFsb2dlcl9hdHRyaWJ1dGVfZmllbGRzJ10gPSAnQmVsb3cgaXMgYSBsaXN0IG9mIHRoZSBhdHRyaWJ1dGVzIGF2YWlsYWJsZSBmcm9tIHRoZSBDYXRhbG9nZXIgbW9kdWxlLjxici8+WW91IGNhbiBvcHRpb25hbGx5IHNwZWNpZnkgdmFsaWQgcmFuZ2VzLCB2YWx1ZXMsIG9yIG51bWVyb3VzIHZhbHVlcyB0byBiZSB1c2VkIGluIGZpbHRlcmluZyB0aGUgbGlzdCBvZiBpdGVtcyB0aGF0IGlzIGRpc3BsYXllZCB0byB0aGUgdXNlci48YnIvPg0KPGJyLz4NCjxzdHJvbmc+UmFuZ2VzOjwvc3Ryb25nPjxici8+DQpSYW5nZXMgY2FuIGJlIHNwZWNpZmllZCBieSBzaWduaWZ5aW5nIGEgbWluaW11bSBhbmQgbWF4aW11bSB2YWx1ZSB1c2luZyB0aGlzIHN5bnRheDogJnF1b3Q7cmFuZ2U6IG1pbnZhbHVlIHRvIG1heHZhbHVlJnF1b3Q7PGJyLz4NCjxici8+DQo8c3Ryb25nPk11bHRpcGxlIFZhbHVlczo8L3N0cm9uZz48YnIvPg0KVG8gc3BlY2lmeSBtdWx0aXBsZSB2YWx1ZXMgZm9yIGFuIGF0dHJpYnV0ZSB1c2UgdGhlIHN5bnRheCAmcXVvdDttdWx0aTogdmFsdWUxfHZhbHVlMnx2YWx1ZTMmcXVvdDs8YnIvPg0KPGJyLz4NCjxzdHJvbmc+VmFsdWVzIGZyb20gaGlkZGVuIGZpZWxkczwvc3Ryb25nPjxici8+DQpUbyBzcGVjaWZ5IGEgdmFsdWUgZnJvbSBhIGhpZGRlbiBmaWVsZCB1c2UgdGhlIHN5bnRheCB7JGZsZF9pZH08YnIvPg0KPGJyLz4nOwokbGFuZ1snaGVscF9uYW1lX3JlZ2V4J10gPSAnUmVndWwmYWFjdXRlO3JuJmlhY3V0ZTsgdiZ5YWN1dGU7cmF6LCB1bW/FvsWIdWomaWFjdXRlO2MmaWFjdXRlOyBmaWx0cm92JmFhY3V0ZTtuJmlhY3V0ZTsgcG9sJmlhY3V0ZTvEjWVrIG1vZHVsdSBDYXRhbG9nZXIgcG9kbGUgam0mZWFjdXRlO25hJzsKJGxhbmdbJ2hlbHBfZmllbGRfaGVpZ2h0J10gPSAnViZ5YWN1dGU7JnNjYXJvbjtrYSBwb2wmaWFjdXRlO8SNa2EgdHlwdSBzZWxlY3QnOwokbGFuZ1sndGl0bGVfbmFtZV9yZWdleCddID0gJ0NhdGFsb2dlciBJdGVtIE5hbWUgUmVndWxhciBFeHByZXNzaW9uJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2hlaWdodCddID0gJ1YmeWFjdXRlOyZzY2Fyb247a2EgcG9sJmlhY3V0ZTvEjWthJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcGF0aCddID0gJ0FkcmVzJmFhY3V0ZTvFmSwga2FtIGJ1ZG91IHVrbCZhYWN1dGU7ZCZhYWN1dGU7bnkgb3Vib3J5JzsKJGxhbmdbJ3RpdGxlX3VkdF9uYW1lJ10gPSAnVcW+aXZhdGVsZW0gZGVmaW5vdmFuJnlhY3V0ZTsgdGFnJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZHNfZGVzdHBhZ2UnXSA9ICdQYWdlIHRvIHJldHVybiB0byB3aXRoIHVwbG9hZHMgbGluayc7CiRsYW5nWyd0aXRsZV91cGxvYWRtb2R1bGVfc3VtbWFyeSddID0gJ1N1Ym1pdHRlZCB3aXRoIGZvcm1idWlsZGVyJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZHNfY2F0ZWdvcnknXSA9ICdVcGxvYWRzIGNhdGVnb3J5JzsKJGxhbmdbJ3RpdGxlX3NlbmR0b191cGxvYWRzJ10gPSAnU2VuZCB0aGlzIGZpbGUgdG8gdGhlIHVwbG9hZHMgbW9kdWxlJzsKJGxhbmdbJ3RpdGxlX2xlZ2VuZCddID0gJ0xlZ2VuZCc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX2xlbmd0aCddID0gJ01heGltdW0gTGVuZ3RoJzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2xhYmVsJ10gPSAnQ2hlY2tib3ggbGFiZWwnOwokbGFuZ1sndGl0bGVfcmFkaW9fbGFiZWwnXSA9ICdSYWRpbyBCdXR0b24gbGFiZWwnOwokbGFuZ1sndGl0bGVfY2hlY2tlZF92YWx1ZSddID0gJ1ZhbHVlIHdoZW4gY2hlY2tlZCc7CiRsYW5nWyd0aXRsZV91bmNoZWNrZWRfdmFsdWUnXSA9ICdWYWx1ZSB3aGVuIG5vdCBjaGVja2VkLic7CiRsYW5nWyd0aXRsZV9jaGVja2JveF9kZXRhaWxzJ10gPSAnQ2hlY2tib3ggR3JvdXAgRGV0YWlscyc7CiRsYW5nWyd0aXRsZV9kZWxldGUnXSA9ICdEZWxldGU/JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9vbmVfbWVzc2FnZSddID0gJyZxdW90O1NlbGVjdCBPbmUmcXVvdDsgVGV4dCc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fdmFsdWUnXSA9ICdTZWxlY3Rpb24gVmFsdWUnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX2Rpc3BsYXluYW1lJ10gPSAnU2VsZWN0aW9uIERpc3BsYXkgTmFtZSc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fc3ViamVjdCddID0gJ1NlbGVjdGlvbiBTdWJqZWN0JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X2NvdW50cnknXSA9ICdEZWZhdWx0IFNlbGVjdGlvbic7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9zdGF0ZSddID0gJ0RlZmF1bHQgU2VsZWN0aW9uJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X3Byb3ZpbmNlJ10gPSAnRGVmYXVsdCBTZWxlY3Rpb24nOwokbGFuZ1sndGl0bGVfb3B0aW9uX25hbWUnXSA9ICdPcHRpb24gTmFtZSc7CiRsYW5nWyd0aXRsZV9vcHRpb25fdmFsdWUnXSA9ICdWYWx1ZSBTdWJtaXR0ZWQnOwokbGFuZ1sndGl0bGVfcHVsbGRvd25fZGV0YWlscyddID0gJ1B1bGxkb3duIE9wdGlvbnMnOwokbGFuZ1sndGl0bGVfbXVsdGlzZWxlY3RfZGV0YWlscyddID0gJ011bHRpc2VsZWN0IE9wdGlvbnMnOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fYWRkcmVzcyddID0gJ0Rlc3RpbmF0aW9uIEVtYWlsIEFkZHJlc3MnOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fZmlsZW5hbWUnXSA9ICdEZXN0aW5hdGlvbiBGaWxlIE5hbWUnOwokbGFuZ1sndGl0bGVfZW1haWxfZnJvbV9uYW1lJ10gPSAnJnF1b3Q7RnJvbSBuYW1lJnF1b3Q7IGZvciBlbWFpbCc7CiRsYW5nWyd0aXRsZV9yZWxheGVkX2VtYWlsX3JlZ2V4J10gPSAnVXNlIHJlbGF4ZWQgZW1haWwgdmFsaWRhdGlvbic7CiRsYW5nWyd0aXRsZV9yZWxheGVkX3JlZ2V4X2xvbmcnXSA9ICdVc2UgcmVsYXhlZCBlbWFpbCBhZGRyZXNzIHZhbGlkYXRpb24gKGUuZy4sIGFsbG93ICZxdW90O3hAeSZxdW90OyBpbnN0ZWFkIG9mIHJlcXVpcmluZyAmcXVvdDt4QHkudGxkJnF1b3Q7KSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9mcm9tX2FkZHJlc3MnXSA9ICcmcXVvdDtGcm9tIGFkZHJlc3MmcXVvdDsgZm9yIGVtYWlsJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2VuY29kaW5nJ10gPSAnRW1haWwgY2hhcmFjdGVyIHNldCBlbmNvZGluZyc7CiRsYW5nWyd0aXRsZV9kaXJlY3Rvcl9kZXRhaWxzJ10gPSAnUHVsbGRvd24tYmFzZWQgRW1haWxlciBEZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfbmFtZSddID0gJ0ZpbGUgTmFtZSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9zdWJqZWN0J10gPSAnRW1haWwgU3ViamVjdCBMaW5lJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmFtZSddID0gJ0Zvcm0gTmFtZSc7CiRsYW5nWyd0aXRsZV9mb3JtX3N0YXR1cyddID0gJ0Zvcm0gU3RhdHVzJzsKJGxhbmdbJ3RpdGxlX3JlYWR5X2Zvcl9kZXBsb3ltZW50J10gPSAnUmVhZHkgZm9yIERlcGxveW1lbnQnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MSddID0gJ05vdCBSZWFkeSc7CiRsYW5nWyd0aXRsZV9yZWRpcmVjdF9wYWdlJ10gPSAnUGFnZSB0byByZWRpcmVjdCB0byBhZnRlciBmb3JtIHN1Ym1pc3Npb24nOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MiddID0gJ1BsZWFzZSBhZGQgYSBmaWVsZCB0byB0aGUgZm9ybSBzbyB0aGF0IHRoZSB1c2VyJiMwMzk7cyBpbnB1dCBnZXRzIGhhbmRsZWQuIFlvdSBjYW4nOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5X2xpbmsnXSA9ICd1c2UgdGhpcyBzaG9ydGN1dCc7CiRsYW5nWyd0aXRsZV9mb3JtX2FsaWFzJ10gPSAnRm9ybSBBbGlhcyc7CiRsYW5nWyd0aXRsZV9mb3JtX2ZpZWxkcyddID0gJ0Zvcm0gRmllbGRzJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2lkJ10gPSAnRmllbGQgSWQnOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGFsaWFzZXMnXSA9ICdTaG93IEZpZWxkIEFsaWFzZXMnOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGFsaWFzZXNfbG9uZyddID0gJ0NsaWNraW5nIHRoaXMgd2lsbCBkaXNwbGF5IGZpZWxkIGFsaWFzZXMgd2hlbiBhZGRpbmcgb3IgZWRpdGluZyBhIGZvcm0nOwokbGFuZ1sndGl0bGVfZmllbGRfbmFtZSddID0gJ0ZpZWxkIE5hbWUnOwokbGFuZ1sndGl0bGVfZmllbGRfYWxpYXMnXSA9ICdGaWVsZCBBbGlhcyc7CiRsYW5nWyd0aXRsZV9yYWRpb2dyb3VwX2RldGFpbHMnXSA9ICdSYWRpbyBCdXR0b24gR3JvdXAgRGV0YWlscyc7CiRsYW5nWyd0aXRsZV9maWVsZF90eXBlJ10gPSAnRmllbGQgVHlwZSc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkzJ10gPSAndG8gY3JlYXRlIGEgZm9ybSBoYW5kbGluZyBmaWVsZC4nOwokbGFuZ1sndGl0bGVfYWRkX25ld19mb3JtJ10gPSAnQWRkIE5ldyBGb3JtJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbiddID0gJ1Nob3cgRm9ybSBCdWlsZGVyIFZlcnNpb24/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbl9sb25nJ10gPSAnVGhpcyB3aWxsIGVtYmVkIHlvdXIgaW5zdGFsbGVkIHZlcnNpb24gbnVtYmVyIG9mIEZvcm0gQnVpbGRlciBtb2R1bGUgaW4gYSBjb21tZW50LCB0byBhaWQgaW4gZGVidWdnaW5nJzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZmllbGQnXSA9ICdBZGQgTmV3IEZpZWxkJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fc3VibWl0X2J1dHRvbiddID0gJ0Zvcm0gU3VibWl0IEJ1dHRvbiBUZXh0JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5J10gPSAnQWRkIEphdmFzY3JpcHQgdG8gZmluYWwgU3VibWl0IEJ1dHRvbiB0aGF0IHdpbGwgaGVscCBwcmV2ZW50IG11bHRpcGxlIHN1Ym1pc3Npb25zPyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eV9oZWxwJ10gPSAnQWRkIHNhZmV0eSBzY3JpcHQnOwokbGFuZ1sndGl0bGVfZm9ybV9uZXh0X2J1dHRvbiddID0gJ0Zvcm0gJnF1b3Q7TmV4dCZxdW90OyBCdXR0b24gVGV4dCAodXNlZCBmb3IgbXVsdGlwYWdlIGZvcm1zKSc7CiRsYW5nWyd0aXRsZV9mb3JtX3ByZXZfYnV0dG9uJ10gPSAnRm9ybSAmcXVvdDtQcmV2aW91cyZxdW90OyBCdXR0b24gVGV4dCAodXNlZCBmb3IgbXVsdGlwYWdlIGZvcm1zKSc7CiRsYW5nWyd0aXRsZV9maWVsZF92YWxpZGF0aW9uJ10gPSAnRmllbGQgVmFsaWRhdGlvbic7CiRsYW5nWyd0aXRsZV9maWVsZF90b192YWxpZGF0ZSddID0gJ0ZpZWxkIHRvIFZhbGlkYXRlJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2Nzc19pZCddID0gJ0NTUyBpZCBmb3IgdGhpcyBmaWVsZCc7CiRsYW5nWyd0aXRsZV9mb3JtX2Nzc19jbGFzcyddID0gJ0NTUyBDbGFzcyBmb3IgdGhpcyBmb3JtJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2Nzc19jbGFzcyddID0gJ0NTUyBDbGFzcyBmb3IgdGhpcyBmaWVsZCc7CiRsYW5nWyd0aXRsZV9mb3JtX3ByZWRpc3BsYXlfdWR0J10gPSAnVXNlciBkZWZpbmVkIHRhZyB0byBjYWxsIGJlZm9yZSBmb3JtIGlzIGRpc3BsYXllZCc7CiRsYW5nWyd0aXRsZV9mb3JtX3JlcXVpcmVkX3N5bWJvbCddID0gJ1N5bWJvbCB0byBtYXJrIHJlcXVpcmVkIEZpZWxkcyc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZCddID0gJ1JlcXVpcmVkJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2xvbmcnXSA9ICdSZXF1aXJlIGEgcmVzcG9uc2UgZm9yIHRoaXMgRmllbGQnOwokbGFuZ1sndGl0bGVfaGlkZV9sYWJlbCddID0gJ0hpZGUgTGFiZWwnOwokbGFuZ1sndGl0bGVfaGlkZV9sYWJlbF9sb25nJ10gPSAnSGlkZSB0aGlzIGZpZWxkJiMwMzk7cyBuYW1lIG9uIEZvcm0nOwokbGFuZ1sndGl0bGVfdGV4dCddID0gJ1N0YXRpYyB0ZXh0IHRvIGRpc3BsYXknOwokbGFuZ1sndGl0bGVfZmllbGRfcmVnZXgnXSA9ICdWYWxpZGF0aW9uIFJlZ2V4JzsKJGxhbmdbJ3RpdGxlX2xpbmVzX3RvX3Nob3cnXSA9ICdOdW1iZXIgb2YgTGluZXMgdG8gZGlzcGxheSc7CiRsYW5nWydub19kZWZhdWx0J10gPSAnTm8gRGVmYXVsdCc7CiRsYW5nWydyZWRpcmVjdF9hZnRlcl9hcHByb3ZhbCddID0gJ1BhZ2UgdG8gcmVkaXJlY3QgYWZ0ZXIgYXBwcm92YWwnOwokbGFuZ1sndGl0bGVfcmVnZXhfaGVscCddID0gJ1RoaXMgcmVndWxhciBleHByZXNzaW9uIHdpbGwgb25seSBiZSB1c2VkIGlmICZxdW90O3ZhbGlkYXRpb24gdHlwZSZxdW90OyBpcyBzZXQgdG8gYSByZWdleC1yZWxhdGVkIG9wdGlvbi4gSW5jbHVkZSBhIGZ1bGwgUGVybC1zdHlsZSByZWdleCwgaW5jbHVkaW5nIHRoZSBzdGFydC9zdG9wIHNsYXNoZXMgYW5kIGZsYWdzIChlLmcuLCAmcXVvdDsvaW1hZ2VcLihcZCspL2kmcXVvdDspJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2FiYnJldiddID0gJ1JlcSYjMDM5O2QnOwokbGFuZ1sndGl0bGVfaGlkZV9lcnJvcnMnXSA9ICdIaWRlIEVycm9ycyc7CiRsYW5nWyd0aXRsZV9mb3JtX2Rpc3BsYXl0eXBlJ10gPSAnRm9ybSBEaXNwbGF5IFR5cGUnOwokbGFuZ1sndGl0bGVfaGlkZV9lcnJvcnNfbG9uZyddID0gJ1ByZXZlbnQgZGVidWcgLyBlcnJvciBtZXNzYWdlcyBmcm9tIGJlaW5nIHNlZW4gYnkgdXNlcnMuJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX3RlbXBsYXRlJ10gPSAnRW1haWwgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfbWF4aW11bV9zaXplJ10gPSAnTWF4aW11bSB1cGxvYWQgZmlsZSBzaXplIChraWxvYnl0ZXMpJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZV9sb25nJ10gPSAnVGhpcyBsaW1pdGF0aW9uIGlzIGluIGFkZGl0aW9uIHRvIGFueSBsaW1pdHMgc2V0IGJ5IHRoZSBwaHAgb3Igd2ViIHNlcnZlciBjb25maWd1cmF0aW9uJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zJ10gPSAnUGVybWl0dGVkIEV4dGVuc2lvbnMnOwokbGFuZ1sndGl0bGVfcGVybWl0dGVkX2V4dGVuc2lvbnNfbG9uZyddID0gJ0VudGVyIGEgY29tbWEtc2VwYXJhdGVkIGxpc3QsIGV4Y2x1ZGluZyB0aGUgZG90IChlLmcuLCAmcXVvdDtqcGcsZ2lmLGpwZWcmcXVvdDspLiBTcGFjZXMgd2lsbCBiZSBpZ25vcmVkLiBMZWF2aW5nIHRoaXMgYmxhbmsgbWVhbnMgdGhlcmUgd2lsbCBiZSBubyByZXN0cmljdGlvbnMuJzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnMnXSA9ICdEaXNwbGF5IHJlc3RyaWN0aW9ucz8nOwokbGFuZ1sndGl0bGVfc2hvd19saW1pdGF0aW9uc19sb25nJ10gPSAnRGlzcGxheSBhbnkgc2l6ZSBhbmQgZXh0ZW5zaW9uIHJlc3RyaWN0aW9ucyB3aXRoIHRoZSB1cGxvYWQgZmllbGQ/JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSB0byB1c2UgdG8gRGlzcGxheSBGb3JtJzsKJGxhbmdbJ3RpdGxlX3BhZ2VfeF9vZl95J10gPSAnUGFnZSAlcyBvZiAlcyc7CiRsYW5nWyd0aXRsZV9ub19hZHZhbmNlZF9vcHRpb25zJ10gPSAnRmllbGQgaGFzIG5vIGFkdmFuY2VkIG9wdGlvbnMuJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdW5zcGVjaWZpZWQnXSA9ICdUZXh0IHRvIHJldHVybiBmb3IgdW5zcGVjaWZpZWQgZmllbGQgdmFsdWVzJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9mYXN0YWRkX2xvbmcnXSA9ICdFbmFibGUgZmFzdCBmaWVsZCBhZGRpbmcgcHVsbGRvd24gZm9yIGZvcm1zPyc7CiRsYW5nWyd0aXRsZV9lbmFibGVfZmFzdGFkZCddID0gJ0VuYWJsZSBmYXN0IGZpZWxkIGFkZCBwdWxsZG93bj8nOwokbGFuZ1sndGl0bGVfZmFzdGFkZCddID0gJ0Zhc3QgZmllbGQgYWRkZXInOwokbGFuZ1sndGl0bGVfZW5hYmxlX2FudGlzcGFtX2xvbmcnXSA9ICdDbGlja2luZyB0aGlzIHdpbGwgb25seSBhbGxvdyAxMCBlbWFpbHMgdG8gYmUgdHJpZ2dlcmVkIGZyb20gYSBnaXZlbiBJUCBhZGRyZXNzIChwZXIgaG91cikuJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9hbnRpc3BhbSddID0gJ0VuYWJsZSBwcmltaXRpdmUgYW50aS1zcGFtIGZlYXR1cmVzPyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkaWRzJ10gPSAnU2hvdyBGaWVsZCBJRHMnOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGlkc19sb25nJ10gPSAnQ2xpY2tpbmcgdGhpcyB3aWxsIGFsbG93IGRpc3BsYXlpbmcgZmllbGQgaWRzIHdoZW4gYWRkaW5nIG9yIGVkaXRpbmcgYSBmb3JtJzsKJGxhbmdbJ3RpdGxlX3htbF90b191cGxvYWQnXSA9ICdVcGxvYWQgZm9ybSBmcm9tIFhNTCBmaWxlJzsKJGxhbmdbJ3RpdGxlX3htbF91cGxvYWRfZm9ybW5hbWUnXSA9ICdVc2UgdGhpcyBmb3JtIG5hbWUnOwokbGFuZ1sndGl0bGVfaW1wb3J0X2xlZ2VuZCddID0gJ1hNTCBGb3JtIEltcG9ydCc7CiRsYW5nWyd0aXRsZV94bWxfdXBsb2FkX2Zvcm1hbGlhcyddID0gJ1VzZSB0aGlzIGZvcm0gYWxpYXMnOwokbGFuZ1sndGl0bGVfaHRtbF9lbWFpbCddID0gJ0dlbmVyYXRlIEhUTUwgZW1haWw/JzsKJGxhbmdbJ3RpdGxlX2xpbmtfYXV0b3BvcHVsYXRlJ10gPSAnQXV0b21hdGljYWxseSBwb3B1bGF0ZT8nOwokbGFuZ1sndGl0bGVfbGlua19hdXRvcG9wdWxhdGVfaGVscCddID0gJ0F1dG9tYXRpY2FsbHkgcG9wdWxhdGUgd2l0aCB0aGUgVVJMIG9mIHRoZSBwYWdlIGNvbnRhaW5pbmcgdGhlIGZvcm0/ICh0aGlzIG92ZXJyaWRlcyBzaXRlIHBhZ2UgbGluayBvcHRpb24gYmVsb3cpJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfbGluayddID0gJ0RlZmF1bHQgbGluayBVUkwnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9saW5rX3RpdGxlJ10gPSAnRGVmYXVsdCBsaW5rIHRleHQnOwokbGFuZ1sndGl0bGVfbGlua190b19zaXRlcGFnZSddID0gJ0xpbmsgdG8gc2l0ZSBwYWdlJzsKJGxhbmdbJ3RpdGxlX2NhcHRjaGFfbm90X2luc3RhbGxlZCddID0gJ1lvdSBjYW4gdXNlIDxhIGhyZWY9Imh0dHA6Ly93d3cud2lraXBlZGlhLm9yZy93aWtpL0NhcHRjaGEiIHRhcmdldD0iX25ldyI+JnF1b3Q7Q2FwdGNoYSZxdW90OzwvYT4gdG8gcHJvdGVjdCBmb3JtIHN1Ym1pc3Npb25zIGlmIHlvdSBpbnN0YWxsIHRoZSBDYXB0Y2hhIG1vZHVsZS4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvY2FwdGNoYS8iPmNoZWNrIHRoZSBDYXB0Y2hhIHByb2plY3Q8L2E+Lic7CiRsYW5nWyd0aXRsZV91c2VfY2FwdGNoYSddID0gJ1VzZSBDYXB0Y2hhIHRvIHByb3RlY3QgZm9ybSBzdWJtaXNzaW9ucz8nOwokbGFuZ1sndGl0bGVfdXNlX2NhcHRjaGFfaGVscCddID0gJ0NoZWNrIGhlcmUgdG8gcHJvdGVjdCB5b3VyIGZvcm0gd2l0aCBhIDxhIGhyZWY9Imh0dHA6Ly93d3cud2lraXBlZGlhLm9yZy93aWtpL0NhcHRjaGEiIHRhcmdldD0iX25ldyI+JnF1b3Q7Q2FwdGNoYSZxdW90OzwvYT4uJzsKJGxhbmdbJ3RpdGxlX3VzZXJfY2FwdGNoYSddID0gJ1BsZWFzZSBjb25maXJtIHRoYXQgeW91IGFyZSBub3QgYSBzY3JpcHQgYnkgZW50ZXJpbmcgdGhlIGxldHRlcnMgZnJvbSB0aGUgaW1hZ2UuJzsKJGxhbmdbJ3RpdGxlX3VzZXJfY2FwdGNoYV9lcnJvciddID0gJ0ZhaWxlZCB0ZXh0IGZvciBDYXB0Y2hhJzsKJGxhbmdbJ3dyb25nX2NhcHRjaGEnXSA9ICdPcGkmc2Nhcm9uO3RlIHNwciZhYWN1dGU7dm7EmyB6bmFreSB6IG9iciZhYWN1dGU7emt1Lic7CiRsYW5nWyd0aXRsZV90aXRsZV91c2VyX2NhcHRjaGEnXSA9ICdIZWxwIHRleHQgZm9yIENhcHRjaGEnOwokbGFuZ1sndGl0bGVfZG9udF9zdWJtaXRfdW5jaGVja2VkJ10gPSAnRG9uJiMwMzk7dCBzdWJtaXQgdmFsdWVzIGZvciB1bmNoZWNrZWQgYm94ZXMnOwokbGFuZ1sndGl0bGVfZG9udF9zdWJtaXRfdW5jaGVja2VkX2hlbHAnXSA9ICdDaGVjayB0aGlzIGlmIHlvdSBvbmx5IHdhbnQgY2hlY2tlZCBib3hlcyB0byByZXR1cm4gdmFsdWVzLic7CiRsYW5nWydsaW5rX2xhYmVsJ10gPSAnTGluayBMYWJlbCc7CiRsYW5nWydsaW5rX2Rlc3RpbmF0aW9uJ10gPSAnTGluayBEZXN0aW5hdGlvbiBVUkwnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9zZXQnXSA9ICdDaGVja2VkIGJ5IERlZmF1bHQ/JzsKJGxhbmdbJ3RpdGxlXzI0X2hvdXInXSA9ICdVc2UgMjQtaG91ciBjbG9jaz8nOwokbGFuZ1sndGl0bGVfYmVmb3JlX25vb24nXSA9ICdBTSc7CiRsYW5nWyd0aXRsZV9hZnRlcl9ub29uJ10gPSAnUE0nOwokbGFuZ1sndGl0bGVfc21hcnR5X2V2YWwnXSA9ICdQcm9jZXNzIHNtYXJ0eSB0YWdzIHdpdGhpbiBmaWVsZD8nOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfcm93cyddID0gJ1Jvd3MgKG5vdGU6IHRoaXMgbWF5IGJlIG92ZXJyaWRkZW4gYnkgQ1NTKSc7CiRsYW5nWyd0aXRsZV90ZXh0YXJlYV9jb2xzJ10gPSAnQ29sdW1ucyAobm90ZTogdGhpcyBtYXkgYmUgb3ZlcnJpZGRlbiBieSBDU1MpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbWFpbiddID0gJ01haW4gRm9ybSBEZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcm5hbWUnXSA9ICdEaXNwbGF5IFVzZXImIzAzOTtzIGxvZ2luIG5hbWU/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcmZpcnN0bmFtZSddID0gJ0Rpc3BsYXkgVXNlciYjMDM5O3MgZmlyc3QgbmFtZT8nOwokbGFuZ1sndGl0bGVfc2hvd191c2VybGFzdG5hbWUnXSA9ICdEaXNwbGF5IFVzZXImIzAzOTtzIGxhc3QgbmFtZT8nOwokbGFuZ1sndGl0bGVfcmVzdHJpY3RfdG9fZ3JvdXAnXSA9ICdSZXN0cmljdCB1c2VyIGxpc3QgdG8gdXNlcnMgaW4gc3BlY2lmaWVkIGdyb3VwJzsKJGxhbmdbJ3Jlc3RyaWN0ZWRfdG9fZ3JvdXAnXSA9ICdPbmx5IGluIGdyb3VwICVzJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdG9fdXNlciddID0gJ0Rpc3BsYXkgdG8gdXNlcj8nOwokbGFuZ1snaGVscF9sZWF2ZWVtcHR5J10gPSAnVGhpcyBmaWVsZCBtYXkgYmUgbGVmdCBlbXB0eSc7CiRsYW5nWydoZWxwX3ZhcmlhYmxlc19mb3JfdGVtcGxhdGUnXSA9ICdWYXJpYWJsZXMgRm9yIFRlbXBsYXRlJzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVzX2Zvcl9jb21wdXRhdGlvbiddID0gJ1ZhcmlhYmxlcyBBdmFpbGFibGUnOwokbGFuZ1snaGVscF9waHBfdmFyaWFibGVfbmFtZSddID0gJ1BIUCB2YXJpYWJsZSc7CiRsYW5nWydoZWxwX3N1Ym1pc3Npb25fZGF0ZSddID0gJ0RhdGUgb2YgU3VibWlzc2lvbic7CiRsYW5nWydoZWxwX3NlcnZlcl9uYW1lJ10gPSAnWW91ciBzZXJ2ZXInOwokbGFuZ1snaGVscF9zdWJfc291cmNlX2lwJ10gPSAnSVAgYWRkcmVzcyBvZiBwZXJzb24gdXNpbmcgZm9ybSc7CiRsYW5nWydoZWxwX3N1Yl91cmwnXSA9ICdVUkwgb2YgcGFnZSBjb250YWluaW5nIGZvcm0nOwokbGFuZ1snaGVscF9mYl92ZXJzaW9uJ10gPSAnRm9ybUJ1aWxkZXIgdmVyc2lvbic7CiRsYW5nWydoZWxwX3RhYiddID0gJ1RhYiBDaGFyYWN0ZXInOwokbGFuZ1snaGVscF9vdGhlcl9maWVsZHMnXSA9ICdBbHRlcm5hdGUgZmllbGQgbmFtZXMgY2FuIGJlIHVzZWQgaW50ZXJjaGFuZ2VhYmx5IChlc3BlY2lhbGx5IHVzZWZ1bCBpZiBTbWFydHkgaXMgY2hva2luZyBvbiBjaGFyYWN0ZXJzIG91dHNpZGUgb2YgQVNDSUkgMzItMTI2KS4gPGJyIC8+T3RoZXIgZmllbGRzIHdpbGwgYmUgYXZhaWxhYmxlIGFzIHlvdSBhZGQgdGhlbSB0byB0aGUgZm9ybS4nOwokbGFuZ1snaGVscF9hcnJheV9maWVsZHMnXSA9ICdGaWVsZHMgdGhhdCBoYXZlIG11bHRpcGxlIHZhbHVlcyBtYXkgYWxzbyBiZSBhY2Nlc3NlZCB2aWEgdGhlIHNtYXJ0eSB2YWx1ZSBvZiAkZmllbGRuYW1lX2FycmF5IG9yICRmbGRfI19hcnJheS4nOwokbGFuZ1snaGVscF9kYXRlX2Zvcm1hdCddID0gJ1NlZSA8YSBocmVmPSJodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwIiB0YXJnZXQ9X05FVz50aGUgUEhQIE1hbnVhbDwvYT4gZm9yIGZvcm1hdHRpbmcgaGVscC4nOwokbGFuZ1snaGVscF92YXJpYWJsZV9uYW1lJ10gPSAnVmFyaWFibGUnOwokbGFuZ1snaGVscF9mb3JtX2ZpZWxkJ10gPSAnRmllbGQgUmVwcmVzZW50ZWQnOwokbGFuZ1snbGlua19iYWNrX3RvX2Zvcm0nXSA9ICcmbGFxdW87IEJhY2sgdG8gRm9ybSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX3RlbXBsYXRlJ10gPSAnQ3JlYXRlIFNhbXBsZSBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2h0bWxfdGVtcGxhdGUnXSA9ICdDcmVhdGUgU2FtcGxlIEhUTUwgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9oZWFkZXJfdGVtcGxhdGUnXSA9ICdDcmVhdGUgU2FtcGxlIEhlYWRlciBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2hlYWRlciddID0gJ0NyZWF0ZSBTYW1wbGUgSGVhZGVyJzsKJGxhbmdbJ2hlbHBfdGFiX3N5bWJvbCddID0gJ2EgdGFiIGNoYXJhY3Rlcic7CiRsYW5nWyd0aXRsZV9maWxlX3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgZm9yIG9uZSBsaW5lIG9mIG91dHB1dCBmaWxlJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfaGVhZGVyJ10gPSAnVGVtcGxhdGUgZm9yIHRoZSBoZWFkZXIgb2Ygb3V0cHV0IGZpbGUnOwokbGFuZ1sndGl0bGVfY29uZmlybWF0aW9uX3VybCddID0gJ1VSTCB0byBjbGljayBmb3IgZm9ybSBjb25maXJtYXRpb24nOwokbGFuZ1sndGl0bGVfdmFsdWUnXSA9ICdWYWx1ZSAoc2VlIEFkdmFuY2VkIFRhYiBpZiB5b3UgdXNlIFNtYXJ0eSB0YWdzKSc7CiRsYW5nWyd0aXRsZV9kYXRlX2Zvcm1hdCddID0gJ0RhdGUgRm9ybWF0IChzdGFuZGFyZCA8YSBocmVmPSJodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwIj5QSFAgRGF0ZSBGb3JtYXRzPC9hPiknOwokbGFuZ1sndGl0bGVfdXNlX3d5c2l3eWcnXSA9ICdVc2UgV1lTSVdZRyBlZGl0b3IgZm9yIHRleHQgQXJlYSAoQWRtaW4gc2lkZSBvbmx5KT8nOwokbGFuZ1sndGl0bGVfc3VibWl0X2FjdGlvbnMnXSA9ICdGb3JtIFN1Ym1pc3Npb24gQmVoYXZpb3InOwokbGFuZ1sndGl0bGVfc3VibWl0X2xhYmVscyddID0gJ1N1Ym1pc3Npb24gQnV0dG9uIExhYmVscyc7CiRsYW5nWyd0aXRsZV9zb3J0YWJsZV9maWVsZCddID0gJ1NvcnRhYmxlIEZpZWxkICMlcyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfaGVscCddID0gJ1RoaXMgcGFnZSBsZXRzIHlvdSBjdXN0b21pemUgRm9ybSBTdWJtaXNzaW9uLiBJdCBkb2VzbiYjMDM5O3QgZGV0ZXJtaW5lIHdoYXQgdGhlIEZvcm0gQnVpbGRlciBkb2VzIHdpdGggdGhlIHN1Ym1pdHRlZCBkYXRhLiBZb3UgY2FuIHNldCB0aGF0IHVwIGJ5IGFkZGluZyAmcXVvdDtEaXNwb3NpdGlvbiZxdW90OyBmaWVsZHMgdG8geW91ciBmb3JtLic7CiRsYW5nWyd0aXRsZV9zdGFydF95ZWFyJ10gPSAnWWVhciByYW5nZSBzdGFydCc7CiRsYW5nWyd0aXRsZV9lbmRfeWVhciddID0gJ1llYXIgcmFuZ2UgZW5kJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfeWVhciddID0gJ0RlZmF1bHQgWWVhcic7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3llYXJfaGVscCddID0gJyhTZXQgdG8gLTEgZm9yIGRlZmF1bHQgeWVhciB0byBiZSB0aGUgY3VycmVudCB5ZWFyKSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYWN0aW9uJ10gPSAnQWZ0ZXIgZm9ybSBpcyBzdWJtaXR0ZWQnOwokbGFuZ1sndGl0bGVfc3VibWl0X3Jlc3BvbnNlJ10gPSAnUmVzcG9uc2UgdG8gZGlzcGxheSc7CiRsYW5nWydkaXNwbGF5X3RleHQnXSA9ICdEaXNwbGF5ICZxdW90O1N1Ym1pc3Npb24gVGVtcGxhdGUmcXVvdDsnOwokbGFuZ1sncmVkaXJlY3RfdG9fcGFnZSddID0gJ1JlZGlyZWN0IHRvIHNpdGUgcGFnZSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfcmVzcG9uc2VfaGVscCddID0gJ1RoaXMgdGVtcGxhdGUgaXMgZm9yIGRpc3BsYXkgdG8gdGhlIHVzZXIgYWZ0ZXIgdGhlIGZvcm0gaXMgc3VibWl0dGVkLiBUaGlzIHRlbXBsYXRlIGRvZXMgbm90IGVmZmVjdCBlbWFpbHMgZ2VuZXJhdGVkIG9yIG90aGVyIGZvcm0gZGlzcG9zaXRpb25zIC0tIHlvdSBzZXQgdGhvc2UgdGVtcGxhdGVzICh3aGVyZSBhcHByb3ByaWF0ZSkgaW4gdGhlICZxdW90O2FkdmFuY2VkJnF1b3Q7IHRhYiBmb3IgdGhvc2UgZGlzcG9zaXRpb24gZmllbGRzLic7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9wYWdlJ10gPSAnRGVzdGluYXRpb24gUGFnZSc7CiRsYW5nWyd0aXRsZV9yZXF1aXJlX2ZpZWxkbmFtZXMnXSA9ICdSZXF1aXJlIEZpZWxkbmFtZXMnOwokbGFuZ1sndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzX2xvbmcnXSA9ICdSZXF1aXJlIGZpZWxkcyB0byBoYXZlIGEgbmFtZT8nOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXMnXSA9ICdSZXF1aXJlIFVuaXF1ZSBGaWVsZG5hbWVzJzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWVsZG5hbWVzX2xvbmcnXSA9ICdSZXF1aXJlIGZpZWxkcyB0byBoYXZlIHVuaXF1ZSBuYW1lcz8nOwokbGFuZ1sndGl0bGVfcmVvcmRlcl9mb3JtJ10gPSAnUmVvcmRlciBGaWVsZHMnOwokbGFuZ1sndGl0bGVfbG9hZF90ZW1wbGF0ZSddID0gJ0xvYWQgdGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfYWRkX2J1dHRvbl90ZXh0J10gPSAnQWRkIEJ1dHRvbiB0ZXh0JzsKJGxhbmdbJ3RpdGxlX2RlbF9idXR0b25fdGV4dCddID0gJ0RlbGV0ZSBCdXR0b24gdGV4dCc7CiRsYW5nWyd0aXRsZV9zdHJpbmdfb3JfbnVtYmVyX2V2YWwnXSA9ICdJbnRlcnByZXQgdmFyaWFibGVzIGFzIGJlaW5nIG51bWJlcnMgb3Igc3RyaW5ncyc7CiRsYW5nWyd0aXRsZV9vcmRlciddID0gJ0ludGVycHJldGF0aW9uIE9yZGVyJzsKJGxhbmdbJ3RpdGxlX29yZGVyX2hlbHAnXSA9ICdJZiBtb3JlIHRoYW4gb25lIENvbXB1dGVkIEZpZWxkIGV4aXN0cywgdGhleSB3aWxsIGJlIGNvbXB1dGVkIGZyb20gbG93ZXN0IG9yZGVyIG51bWJlciB0byBoaWdoZXN0IG9yZGVyIG51bWJlcic7CiRsYW5nWyd0aXRsZV9jb21wdXRlX3ZhbHVlJ10gPSAnVmFsdWUgdG8gY29tcHV0ZSc7CiRsYW5nWyd0aXRsZV9zdHJpbmcnXSA9ICdTdHJpbmcnOwokbGFuZ1sndGl0bGVfbnVtZXJpYyddID0gJ051bWVyaWMnOwokbGFuZ1sndGl0bGVfaW5saW5lX2Zvcm0nXSA9ICdEaXNwbGF5IGZvcm0gaW5saW5lPyc7CiRsYW5nWyd0aXRsZV9pbmxpbmVfZm9ybV9oZWxwJ10gPSAnSW5saW5lIG1lYW5zIGFueSBmb3JtIGZvbGxvd3VwIHJlcGxhY2VzIHRoZSB7Y21zX21vZHVsZX0gdGFnLCBub24taW5saW5lIHJlcGxhY2VzIHRoZSB7Y29udGVudH0gdGFnLic7CiRsYW5nWyd0aXRsZV9maWVsZF9kZWZhdWx0X3ZhbHVlJ10gPSAnRGVmYXVsdCB2YWx1ZSBmb3IgZmllbGQnOwokbGFuZ1sndGl0bGVfY2xlYXJfZGVmYXVsdCddID0gJ0NsZWFyIGRlZmF1bHQgb24gY2xpY2s/JzsKJGxhbmdbJ3RpdGxlX2NsZWFyX2RlZmF1bHRfaGVscCddID0gJ0NoZWNrIHRoaXMgdG8gY2xlYXIgdGhlIGRlZmF1bHQgdmFsdWUgd2hlbiB0aGUgdXNlciBjbGlja3MgdGhpcyBmaWVsZC4gU2luY2UgdGhpcyB1c2VzIGEgamF2YXNjcmlwdCBzdHJpbmcgY29tcGFyZSwgaXQgd2lsbCBmYWlsIGlmIHlvdSBwdXQgc2luZ2xlIHF1b3RlcyBpbiB5b3VyIGRlZmF1bHQgdGV4dC4gT3RoZXIgdW4tamF2YXNjcmlwdC1mcmllbmRseSBjaGFyYWN0ZXJzIG1heSBhbHNvIGNhdXNlIGl0IHRvIGZhaWwuJzsKJGxhbmdbJ3RpdGxlX3JlbW92ZV9maWxlX2Zyb21fc2VydmVyJ10gPSAnRGVsZXRlIHVwbG9hZGVkIGZpbGUgZnJvbSBzZXJ2ZXIgYWZ0ZXIgcHJvY2Vzc2luZyAoZW1haWwgZGlzcG9zaXRpb25zKSc7CiRsYW5nWyd0aXRsZV9maWVsZF9qYXZhc2NyaXB0J10gPSAnSmF2YXNjcmlwdCBmb3IgZmllbGQnOwokbGFuZ1sndGl0bGVfZmllbGRfamF2YXNjcmlwdF9sb25nJ10gPSAnTWFrZSB0aGlzIHRoZSBjb21wbGV0ZSBKYXZhc2NyaXB0IGNhbGwsIGluY2x1ZGluZyB0aGUgZXZlbnQgeW91IHdhbnQgdG8gdHJhcCwgZS5nLiwgb25jbGljaz0mcXVvdDt5b3VyZm4oKSZxdW90Oyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfamF2YXNjcmlwdCddID0gJ0Zvcm0gU3VibWlzc2lvbiBKYXZhc2NyaXB0JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9qYXZhc2NyaXB0X2xvbmcnXSA9ICdNYWtlIHRoaXMgdGhlIGNvbXBsZXRlIEphdmFzY3JpcHQgY2FsbCwgaW5jbHVkaW5nIHRoZSBldmVudCB5b3Ugd2FudCB0byB0cmFwLCBlLmcuLCBvbmNsaWNrPSZxdW90O3lvdXJmbigpJnF1b3Q7LjxiciAvPlRoaXMgd2lsbCBwcm9iYWJseSBub3Qgd29yayB3ZWxsIGlmIHlvdSB1c2UgdGhlICZxdW90O3NhZmV0eSBzY3JpcHQmcXVvdDsgb3B0aW9uIGFib3ZlLic7CiRsYW5nWydlbWFpbF9mcm9tX2FkZHJfaGVscCddID0gJ0RvIG5vdCBqdXN0IHBpY2sgYSByYW5kb20gYWRkcmVzcyBoZXJlIC0tIG1hbnkgSVNQcyB3aWxsPGJyIC8+bm90IGRlbGl2ZXIgdGhlIG1haWwgaWYgeW91IGFyZSB1c2luZyBhIGRpZmZlcmVudCBkb21haW4gbmFtZSB0aGFuIHlvdXIgYWN0dWFsPGJyIC8+aG9zdCBuYW1lIChpLmUuLCB1c2Ugc29tZXRoaW5nIGxpa2UgbmFtZUAlcyknOwokbGFuZ1sndGl0bGVfc3dpdGNoX2FkdmFuY2VkJ10gPSAnTmVlZCBtb3JlIGZpZWxkIHR5cGVzPyAnOwokbGFuZ1sndGl0bGVfc3dpdGNoX2Jhc2ljJ10gPSAnVG9vIG1hbnkgY29uZnVzaW5nIGZpZWxkIHR5cGVzPyAnOwokbGFuZ1sndGl0bGVfc3dpdGNoX2FkdmFuY2VkX2xpbmsnXSA9ICdTd2l0Y2ggdG8gQWR2YW5jZWQgTW9kZSc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYmFzaWNfbGluayddID0gJ1N3aXRjaCB0byBTaW1wbGUgTW9kZSc7CiRsYW5nWyd0aXRsZV9maWxlX3Jvb3QnXSA9ICdEaXJlY3RvcnkgdG8gc2F2ZSBmaWxlIGluJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcm9vdF9oZWxwJ10gPSAnVGhpcyBuZWVkcyB0byBiZSBhIGRpcmVjdG9yeSB0aGF0IHlvdXIgd2ViIHNlcnZlciBoYXMgcGVybWlzc2lvbnMgdG8gd3JpdGUgaW4uPGJyIC8+Q2htb2QgaXQgNzc3IGlmIHlvdSBoYXZlIHByb2JsZW1zL2RvdWJ0cy48YnIgLz5BbHNvLCBjaGVjayB0byBzZWUgdGhhdCB5b3UgZG8gbm90IGhhdmUgUEhQIGRpcmVjdG9yeSByZXN0cmljdGlvbnMuJzsKJGxhbmdbJ3RpdGxlX25ld2xpbmVfcmVwbGFjZW1lbnQnXSA9ICdOZXdsaW5lL0NhcnJpYWdlIFJldHVybiByZXBsYWNlbWVudCBjaGFyYWN0ZXInOwokbGFuZ1sndGl0bGVfbmV3bGluZV9yZXBsYWNlbWVudF9oZWxwJ10gPSAnTGVhdmUgYmxhbmsgdG8gYWxsb3cgbmV3bGluZXMgYW5kIGNhcnJpYWdlIHJldHVybnMgaW4gb3V0cHV0JzsKJGxhbmdbJ3RpdGxlX3NlbmRfdXNlcmNvcHknXSA9ICdTZW5kIFVzZXIgYSBDb3B5IG9mIFN1Ym1pc3Npb24/JzsKJGxhbmdbJ3RpdGxlX3NlbmRfdXNlcmNvcHlfbGFiZWwnXSA9ICdMYWJlbCBmb3IgQ2hlY2tib3ggKGlmIHVzZXIgY2hvaWNlKSc7CiRsYW5nWyd0aXRsZV9zZW5kX21lX2FfY29weSddID0gJ1NlbmQgbWUgYSBjb3B5IG9mIGZvcm0nOwokbGFuZ1sndGl0bGVfYWxsb3dfc3ViamVjdF9vdmVycmlkZSddID0gJ0FsbG93IHN1YmplY3QgdG8gYmUgb3ZlcnJpZGRlbj8nOwokbGFuZ1sndGl0bGVfYWxsb3dfc3ViamVjdF9vdmVycmlkZV9sb25nJ10gPSAnQWxsb3cgJiMwMzk7RW1haWwgJnF1b3Q7U3ViamVjdCZxdW90OyBGaWVsZHMmIzAzOTsgdG8gb3ZlcnJpZGUgdGhlIHN1YmplY3Qgc3BlY2lmaWVkIGluIHRoZSBwdWxsZG93bi4nOwokbGFuZ1snb3B0aW9uX25ldmVyJ10gPSAnTmV2ZXInOwokbGFuZ1snb3B0aW9uX3VzZXJfY2hvaWNlJ10gPSAnR2l2ZSB1c2VyIGEgY2hvaWNlIChjaGVja2JveCknOwokbGFuZ1snb3B0aW9uX2Fsd2F5cyddID0gJ0Fsd2F5cyc7CiRsYW5nWydlcnJvcl91c2VydGFnX2Rpc3Bvc2l0aW9uJ10gPSAnVXNlciBkZWZpbmVkIHRhZyByZXR1cm5lZCBhbiBlcnJvcic7CiRsYW5nWydlcnJvcl9jYXRhbG9nZXJfbW9kdWxlX25vdF9hdmFpbGFibGUnXSA9ICc8c3Ryb25nPkNhdGFsb2dlciBtb2R1bGUgZG9lcyBub3Qgc2VlbSB0byBiZSBpbnN0YWxsZWQvYWN0aXZlLjwvc3Ryb25nPic7CiRsYW5nWyd3YXJuaW5nJ10gPSAnV0FSTklORyEnOwokbGFuZ1snZGVmYXVsdF90ZW1wbGF0ZSddID0gJ0RlZmF1bHQgVGVtcGxhdGUnOwokbGFuZ1sndGFibGVfbGVmdF90ZW1wbGF0ZSddID0gJ1RhYmxlIFRlbXBsYXRlLCBUaXRsZXMgb24gbGVmdCc7CiRsYW5nWyd0YWJsZV90b3BfdGVtcGxhdGUnXSA9ICdUYWJsZSBUZW1wbGF0ZSwgVGl0bGUgb24gdG9wJzsKJGxhbmdbJ2Zvcm1fdGVtcGxhdGVfbmFtZSddID0gJ1RlbXBsYXRlIGZyb20gJXMnOwokbGFuZ1sndGVtcGxhdGVfYXJlX3lvdV9zdXJlJ10gPSAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIG92ZXJ3cml0ZSB5b3VyIHRlbXBsYXRlIHdpdGggdGhlIHNlbGVjdGVkIHRlbXBsYXRlPyAoRXZlbiBpZiB5b3Ugc2F5IE9LLCB5b3Ugd2lsbCBzdGlsbCBuZWVkIHRvIHNhdmUgdGhlIGNoYW5nZSknOwokbGFuZ1sndGl0bGVfYmFkX2Z1bmN0aW9uJ10gPSAnRXJyb3Igd2hlbiBjb21wdXRpbmcgJnF1b3Q7JXMmcXVvdDsuJzsKJGxhbmdbJ25vX3JlZmVycmVyX2luZm8nXSA9ICdObyBIVFRQX1JFRkVSRVIgaW5mbyBhdmFpbGFibGUgKHByb2JhYmx5IGR1ZSB0byB1c2Ugb2YgVXNlciBFbWFpbCBWYWxpZGF0aW9uKSc7CiRsYW5nWyd2YWxpZGF0aW9uX3BhcmFtX2Vycm9yJ10gPSAnVmFsaWRhdGlvbiBQYXJhbWV0ZXIgRXJyb3IuIFBsZWFzZSBtYWtlIHN1cmUgeW91IGNvcHkgdGhlIFVSTCBmcm9tIHlvdXIgZW1haWwgY29ycmVjdGx5ISc7CiRsYW5nWyd2YWxpZGF0aW9uX3Jlc3BvbnNlX2Vycm9yJ10gPSAnVmFsaWRhdGlvbiBSZXBzb25zZSBFcnJvci4gUGxlYXNlIG1ha2Ugc3VyZSB5b3UgY29weSB0aGUgVVJMIGZyb20geW91ciBlbWFpbCBjb3JyZWN0bHkhJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbm9fZmllbGRfZXJyb3InXSA9ICdWYWxpZGF0aW9uIFJlcHNvbnNlIEVycm9yLiBObyBlbWFpbCB2YWxpZGF0aW9uIGZpZWxkIGluIHRoaXMgZm9ybSEnOwokbGFuZ1sndXBncmFkZTAzdG8wNCddID0gJ0Zvcm0gVGVtcGxhdGUgd2FzIHVwZGF0ZWQgYXV0b21hdGljYWxseSBhcyBwYXJ0IG9mIHRoZSB2ZXJzaW9uIDAuMyB0byB2ZXJzaW9uIDAuNCB1cGdyYWRlLiBZb3UgbWF5IG5lZWQgdG8gbWFrZSBzb21lIGZpeGVzLiBJZiB5b3UmIzAzOTtyZSB1c2luZyB0aGUgZGVmYXVsdCBmb3JtLCBzaW1wbHkgcmVwbGFjZSB0aGlzIHRlbXBsYXRlIHdpdGggJnF1b3Q7ZGVmYXVsdCZxdW90OyB1c2luZyB0aGUgcHVsbGRvd24gYWJvdmUuJzsKJGxhbmdbJ2FkbWluZGVzYyddID0gJ0FkZCwgZWRpdCBhbmQgbWFuYWdlIGludGVyYWN0aXZlIEZvcm1zJzsKJGxhbmdbJ29wZXJhdG9yc19oZWxwJ10gPSAnSWYgeW91IHVzZSBTdHJpbmcgZXZhbHVhdGlvbiwgdGhlIG9ubHkgb3BlcmF0aW9uIGF2YWlsYWJsZSBpcyBjb25jYXRlbmF0aW9uICgrKSwgd2hpbGUgaWYgeW91IHVzZSBOdW1iZXIgZXZhbHVhdGlvbiB5b3UgaGF2ZSBiYXNpYywgdmVyeSBzaW1wbGUgbWF0aCAoLCArLCAtLCAqLCAvLCApLic7CiRsYW5nWydkYXRlX2phbnVhcnknXSA9ICdsZWRuYSc7CiRsYW5nWydkYXRlX2ZlYnJ1YXJ5J10gPSAnJnVhY3V0ZTtub3JhJzsKJGxhbmdbJ2RhdGVfbWFyY2gnXSA9ICdixZllem5hJzsKJGxhbmdbJ2RhdGVfYXByaWwnXSA9ICdkdWJuYSc7CiRsYW5nWydkYXRlX21heSddID0gJ2t2xJt0bmEnOwokbGFuZ1snZGF0ZV9qdW5lJ10gPSAnxI1lcnZuYSc7CiRsYW5nWydkYXRlX2p1bHknXSA9ICfEjWVydmVuY2UnOwokbGFuZ1snZGF0ZV9hdWd1c3QnXSA9ICdzcnBuYSc7CiRsYW5nWydkYXRlX3NlcHRlbWJlciddID0gJ3omYWFjdXRlO8WZJmlhY3V0ZTsnOwokbGFuZ1snZGF0ZV9vY3RvYmVyJ10gPSAnxZkmaWFjdXRlO2puYSc7CiRsYW5nWydkYXRlX25vdmVtYmVyJ10gPSAnbGlzdG9wYWR1JzsKJGxhbmdbJ2RhdGVfZGVjZW1iZXInXSA9ICdwcm9zaW5jZSc7CiRsYW5nWydzdWJtaXNzaW9uX2Vycm9yJ10gPSAnU29ycnkhIFRoZXJlIHdhcyBhbiBlcnJvciBoYW5kbGluZyB5b3VyIGZvcm0gc3VibWlzc2lvbi4nOwokbGFuZ1snc3VibWl0X2Vycm9yJ10gPSAnRm9ybUJ1aWxkZXIgc3VibWl0IGVycm9yOiAlcyc7CiRsYW5nWyd1cGxvYWRzX2Vycm9yJ10gPSAnRXJyb3IgY29tbWl0dGluZyBmaWxlIHRvIHRoZSB1cGxvYWRzIG1vZHVsZTogJXMnOwokbGFuZ1snbm91cGxvYWRzX2Vycm9yJ10gPSAnQ291bGQgbm90IGZpbmQgdGhlIHVwbG9hZHMgbW9kdWxlJzsKJGxhbmdbJ3VwbG9hZF9hdHRhY2hfZXJyb3InXSA9ICdVcGxvYWQvQXR0YWNobWVudCBlcnJvciBvbiBmaWxlICVzICh0bXBfbmFtZTogJXMsIG9mIHR5cGUgJXMpJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3JfZmlsZV9sb2NrJ10gPSAnRXJyb3IuIFVuYWJsZSB0byBvYnRhaW4gbG9jayBmb3IgZmlsZS4nOwokbGFuZ1sndW5jaGVja2VkX2J5X2RlZmF1bHQnXSA9ICdEZWZhdWx0OiB1bmNoZWNrZWQnOwokbGFuZ1snY2hlY2tlZF9ieV9kZWZhdWx0J10gPSAnRGVmYXVsdDogY2hlY2tlZCc7CiRsYW5nWydlbWFpbF9kZWZhdWx0X3RlbXBsYXRlJ10gPSAnRm9ybUJ1aWxkZXIgU3VibWlzc2lvbic7CiRsYW5nWydlbWFpbF90ZW1wbGF0ZV9ub3Rfc2V0J10gPSAnPGJyLz5FbWFpbCBUZW1wbGF0ZSBub3QgeWV0IHNldCEnOwokbGFuZ1snbWlzc2luZ19jbXNfbWFpbGVyJ10gPSAnRm9ybUJ1aWxkZXI6IENhbm5vdCBmaW5kIHJlcXVpcmVkIG1vZHVsZSBDTVNNYWlsZXIhJzsKJGxhbmdbJ3VzZXJfYXBwcm92ZWRfc3VibWlzc2lvbiddID0gJ1VzZXIgYXBwcm92ZWQgc3VibWlzc2lvbiAlcyBmcm9tICVzJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXSA9ICdFdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddID0gJ0V2ZW50IHRyaWdnZXJlZCBpZiB0aGVyZSBpcyBhbiBlcnJvciB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXSA9ICdFdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgZGlzcGxheWVkJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXSA9ICc8cD5FdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkLjwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+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+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPg0KPHVsPg0KPGxpPkZvciB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBtb2R1bGUsIEZBUXMsIG9yIHRvIGZpbGUgYSBCdWcgUmVwb3J0LCBwbGVhc2UgdmlzaXQgdGhlIENNUyBNYWRlIFNpbXBsZSAgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZyI+RGV2ZWxvcGVyIEZvcmdlPC9hPi48L2xpPg0KPGxpPlRvIG9idGFpbiBjb21tZXJjaWFsIHN1cHBvcnQsIHBsZWFzZSBzZW5kIGFuIGVtYWlsIHRvIHRoZSBhdXRob3IgYXQgPGEgaHJlZj0ibWFpbHRvOnNqZ0BjbXNtb2R1bGVzLmNvbSI+PHNqZ0BjbXNtb2R1bGVzLmNvbT48L2E+LjwvbGk+DQo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LjwvbGk+DQo8bGk+VGhlIGF1dGhvciBjYW4gb2Z0ZW4gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9ImlyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2NtcyI+Q01TIElSQyBDaGFubmVsPC9hPi48L2xpPg0KPGxpPkxhc3RseSwgeW91IG1heSBoYXZlIHNvbWUgc3VjY2VzcyBlbWFpbGluZyB0aGUgYXV0aG9yIGRpcmVjdGx5IGFuZCBncm92ZWxsaW5nIGZvciBmcmVlIHN1cHBvcnQuPC9saT4NCjwvdWw+DQo8cD5BcyBwZXIgdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCBhcy1pcy4gUGxlYXNlIHJlYWQgdGhlIHRleHQNCm9mIHRoZSBsaWNlbnNlIGZvciB0aGUgZnVsbCBkaXNjbGFpbWVyLjwvcD4NCjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPg0KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDA3LCBTYW11ZWwgR29sZHN0ZWluIDxhIGhyZWY9Im1haWx0bzpzamdAY21zbW9kdWxlcy5jb20iPjxzamdAY21zbW9kdWxlcy5jb20+PC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPg0KPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCI+R05VIFB1YmxpYyBMaWNlbnNlPC9hPi4gWW91IG11c3QgYWdyZWUgdG8gdGhpcyBsaWNlbnNlIGJlZm9yZSB1c2luZyB0aGUgbW9kdWxlLjwvcD4nOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My4xODEyNDQ2OTI3LjEyMDEyNTAyMzAuMTI0NzU4Njg1Ni4xMjQ3Nzc4ODIzLjExOSc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEyNDcxNTEyOTAuMTE3LjU0LnV0bWNjbj0ocmVmZXJyYWwpfHV0bWNzcj16c3ByYWtzaWNlLnprZWR1LmN6fHV0bWNjdD0vc2tvbGNhL2FkbWluL2ltYWdlZmlsZXMucGhwfHV0bWNtZD1yZWZlcnJhbCc7CiRsYW5nWyd1dG1jJ10gPSAnMTU2ODYxMzUzJzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/da_DK.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0Zvcm11bGFyIEdlbmVyYXRvcic7CiRsYW5nWydmaWVsZF90eXBlXyddID0gJ0ZlbHQtdHlwZSBpa2tlIHNhdCc7CiRsYW5nWydmaWVsZF90eXBlX0NhdGFsb2dlckl0ZW1zRmllbGQnXSA9ICdWJmFlbGlnO2xnIGVuIChlbGxlciBmbGVyZSkga2F0YWxvZyBlbW5lcic7CiRsYW5nWydmaWVsZF90eXBlX0ZpZWxkc2V0RW5kJ10gPSAnLUZlbHRzJmFlbGlnO3Qgc2x1dCc7CiRsYW5nWydmaWVsZF90eXBlX0ZpZWxkc2V0U3RhcnQnXSA9ICctRmVsdHMmYWVsaWc7dCBiZWd5bmQnOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0RmllbGQnXSA9ICdUZWtzdGZlbHQnOwokbGFuZ1snZmllbGRfdHlwZV9QYXNzd29yZEZpZWxkJ10gPSAnUGFzc3dvcmQnOwokbGFuZ1snZmllbGRfdHlwZV9QYXNzd29yZEFnYWluRmllbGQnXSA9ICdTa3JpdiBQYXNzd29yZCAoa29uZmlybWF0aW9uKSc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRGaWVsZEV4cGFuZGFibGUnXSA9ICdUZWtzdGZlbHQgKGZsZXJlKSc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRBcmVhRmllbGQnXSA9ICdUZWtzdGZlbHQsIGZsZXJlIGxpbmllcic7CiRsYW5nWydmaWVsZF90eXBlX0J1dHRvbkZpZWxkJ10gPSAnS25hcCc7CiRsYW5nWydmaWVsZF90eXBlX0NoZWNrYm94RmllbGQnXSA9ICdBZmtyeWRzbmluZ3Nib2tzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hHcm91cEZpZWxkJ10gPSAnR3J1cHBlIGFmIGFma3J5ZHNuaW5nc2Jva3NlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUHVsbGRvd25GaWVsZCddID0gJ1B1bGxkb3duLW1lbnUnOwokbGFuZ1snZmllbGRfdHlwZV9ZZWFyUHVsbERvd25GaWVsZCddID0gJ1B1bGxkb3duICgmYXJpbmc7ciknOwokbGFuZ1snZmllbGRfdHlwZV9NdWx0aXNlbGVjdEZpZWxkJ10gPSAnTXVsdGktdmFsZyc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRlUGlja2VyRmllbGQnXSA9ICdVLlMuIFN0YXRlIHYmYWVsaWc7bGdlcic7CiRsYW5nWydmaWVsZF90eXBlX1Byb3ZpbmNlUGlja2VyRmllbGQnXSA9ICdDYW5hZGlzayBwcm9pbnMgdiZhZWxpZztsZ2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ291bnRyeVBpY2tlckZpZWxkJ10gPSAnTGFuZGUgdmFsZyc7CiRsYW5nWydmaWVsZF90eXBlX0RhdGVQaWNrZXJGaWVsZCddID0gJ0RhdG8gVmFsZyc7CiRsYW5nWydmaWVsZF90eXBlX1RpbWVQaWNrZXJGaWVsZCddID0gJ1RpZHN2YWxnJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUmFkaW9Hcm91cEZpZWxkJ10gPSAnUmFkaW8ga25hcCBncnVwcGUnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRpcmVjdG9yJ10gPSAnKkVtYWlsIHJlc3VsdGF0ZXQgYmFzZXJldCBwJmFyaW5nOyBwdWxsZG93bi12YWxnJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25GaWxlRGlyZWN0b3InXSA9ICcqR2VtIHJlc3VsdGF0ZXIgaSBlbiBmaWwgYmFzZXJldCBwJmFyaW5nOyBtZW51JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25NdWx0aXNlbGVjdEZpbGVEaXJlY3RvciddID0gJypHZW0gcmVzdWx0YXRlciBpIGVuIGZpbCBiYXNlcmV0IHAmYXJpbmc7IGZsZXJlIHZhbGd0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25QYWdlUmVkaXJlY3RvciddID0gJypWaWRlcmVzdGlsIHRpbCBzaWRlIGJhc2VyZXQgcCZhcmluZzsgcHVsbGRvd24tdmFsZyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWwnXSA9ICcqRW1haWwgcmVzdWx0YXRldCB0aWwgYW5naXZuZSBhZHJlc3NlKHIpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbENvbmZpcm1hdGlvbiddID0gJypWYWxpZCZlYWN1dGU7ciB2aWEgZW1haWwgYWRyZXNzZSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRnJvbUVtYWlsQWRkcmVzc0ZpZWxkJ10gPSAnKkVtYWlsICZxdW90O0Zyb20gQWRkcmVzcyZxdW90OyBGaWVsZCwgYW5kIHNlbmQgY29weSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRmlsZSddID0gJypTa3JpdiByZXN1bHRhdGVyIHRpbCBhbG0uIHRla3N0LWZpbCc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGF0YWJhc2UnXSA9ICcqR2VtIHJlc3VsdGF0ZXIgaSBkYXRhYmFzZW4nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZvcm1Ccm93c2VyJ10gPSAnKkdlbSByZXN1bHRhdGVyIHRpbCBGb3JtQnJvd3NlciBtb2R1bCB2ZXJzaW9uIDMnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvblVzZXJUYWcnXSA9ICcqS2FsZCBlbiBicnVnZXJkZWZpbmVyZXQgdGFnIGluZGUgaSBmb3JtdWxhcmVuJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Gb3JtJ10gPSAnKlN1Ym1pdCB0byBhbiBhcmJpdHJhcnkgZm9ybSBhY3Rpb24nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRlbGl2ZXJUb0VtYWlsQWRkcmVzc0ZpZWxkJ10gPSAnKkVtYWlsIHRpbCBicnVnZXItYW5naXZlbiBlbWFpbCBhZHJlc3NlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbFNpdGVBZG1pbiddID0gJypFbWFpbCB0aWwgZW4gQ01TIGFkbWluIGJydWdlcic7CiRsYW5nWydmaWVsZF90eXBlX1BhZ2VCcmVha0ZpZWxkJ10gPSAnLVNpZGVza2lmdCc7CiRsYW5nWydmaWVsZF90eXBlX0ZpbGVVcGxvYWRGaWVsZCddID0gJ0ZpbC11cGxvYWQnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxBZGRyZXNzRmllbGQnXSA9ICdFbWFpbCAmcXVvdDtGcmEgYWRyZXNzZSZxdW90OyBmZWx0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsQWRkcmVzc0FnYWluRmllbGQnXSA9ICdFbWFpbCAmcXVvdDtGcm9tIEFkZHJlc3MmcXVvdDsgQWdhaW4gRmllbGQnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxOYW1lRmllbGQnXSA9ICdFbWFpbCAmcXVvdDtGcmEgbmF2biZxdW90OyBmZWx0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsU3ViamVjdEZpZWxkJ10gPSAnRW1haWwgJnF1b3Q7RW1uZSZxdW90OyBmZWx0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3RhdGljVGV4dEZpZWxkJ10gPSAnLVN0YXRpc2sgdGVrc3QnOwokbGFuZ1snZmllbGRfdHlwZV9TeXN0ZW1MaW5rRmllbGQnXSA9ICctU3RhdGlzayBsaW5rJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTGlua0ZpZWxkJ10gPSAnLUxpbmsnOwokbGFuZ1snZmllbGRfdHlwZV9IaWRkZW5GaWVsZCddID0gJy1Ta2p1bHQgZmVsdCc7CiRsYW5nWydmaWVsZF90eXBlX0NvbXB1dGVkRmllbGQnXSA9ICctQmVyZWduZXQgZmVsdCc7CiRsYW5nWydmaWVsZF90eXBlX1VuaXF1ZUludGVnZXJGaWVsZCddID0gJy1VbmlrdCB0YWwgKHNlcmllbHQpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVXNlclRhZ0ZpZWxkJ10gPSAnLVVzZXIgRGVmaW5lZCBUYWcgQ2FsbCc7CiRsYW5nWydmaWVsZF90eXBlX0NvbXBhbnlEaXJlY3RvcnlGaWVsZCddID0gJ0NvbXBhbnkgRGlyZWN0b3J5IEZpZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTW9kdWxlSW50ZXJmYWNlRmllbGQnXSA9ICctTW9kdWxlIEludGVyZmFjZSBGaWVsZCc7CiRsYW5nWyd2YWxpZGF0aW9uX25vbmUnXSA9ICdJbmdlbiB2YWxpZGVyaW5nJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbnVtZXJpYyddID0gJ051bWVyaXNrJzsKJGxhbmdbJ3ZhbGlkYXRpb25faW50ZWdlciddID0gJ0hlbHRhbCc7CiRsYW5nWyd2YWxpZGF0aW9uX2VtYWlsX2FkZHJlc3MnXSA9ICdFbWFpbCBhZHJlc3NlJzsKJGxhbmdbJ3ZhbGlkYXRpb25fdXNwaG9uZSddID0gJ1RlbGVmb24gbnVtbWVyIChVU0EpJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbXVzdF9jaGVjayddID0gJ1NrYWwgdiZhZWxpZztyZSB2YWxndCc7CiRsYW5nWyd2YWxpZGF0aW9uX3JlZ2V4X21hdGNoJ10gPSAnU2thbCBtYXRjaGUgcmVndWwmYWVsaWc7ciB1ZHRyeWsnOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9ub21hdGNoJ10gPSAnTSZhcmluZzsgaWtrZSBtYXRjaGUgcmVndWwmYWVsaWc7ciB1ZHRyeWsnOwokbGFuZ1sncmVxdWlyZWRfZmllbGRfbWlzc2luZyddID0gJ0VuIHYmYWVsaWc7cmRpIGJsZXYgaWtrZSBhbmdpdmV0IGkgZXQgcCZhcmluZztrciZhZWxpZzt2ZXQgZmVsdCc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV92YWx1ZSddID0gJ0FuZ2l2IGVuIHYmYWVsaWc7cmRpIGZvciAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV9udW1iZXInXSA9ICdBbmdpdiBldCB0YWwgZm9yICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl92YWxpZCddID0gJ0FuZ2l2IGVuIGd5bGRpZyB2JmFlbGlnO3JkaSBmb3IgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FuX2ludGVnZXInXSA9ICdBbmdpdiBldCBoZWx0YWwgZm9yICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hbl9lbWFpbCddID0gJ0FuZ2l2IGVuIGd5bGRpZyBlbWFpbCBhZHJlc3NlIGZvciAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydlbWFpbF9hZGRyZXNzX2RvZXNfbm90X21hdGNoJ10gPSAnRW1haWwgYWRkcmVzcyBkb2VzIG5vdCBtYXRjaCB2YWx1ZSBpbiAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV9waG9uZSddID0gJ1BsZWFzZSBlbnRlciBhIHZhbGlkIHBob25lIG51bWJlciBmb3IgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2xvZ2luJ10gPSAnViZhZWxpZztyIHZlbmxpZyBhdCBsb2dnZSBpbmQgZm9yIGF0IGJydWdlIGRlbm5lIGZvcm11bGFyJzsKJGxhbmdbJ25vdF92YWxpZF9lbWFpbCddID0gJyZxdW90OyVzJnF1b3Q7IGVyIGlra2UgZW4gZ3lsZGlnIGVtYWlsIGFkcmVzc2UhJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9ub19sb25nZXInXSA9ICdBbmdpdiBlbiB2JmFlbGlnO3JkaSBkZXIgaWtrZSBlciBsJmFlbGlnO25nZXJlIGVuZCAlcyB0ZWduJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hdF9sZWFzdCddID0gJ1YmYWVsaWc7ciB2ZW5saWcgYXQgdGFzdGUgZW4gdiZhZWxpZztyZGkgZGVyIGhhciBtaW5kc3QgJXMgdGVnbic7CiRsYW5nWyd0aXRsZV9saXN0X2RlbGltaXRlciddID0gJ1RlZ24gZGVyIGthbiBiZW55dHRlcyB0aWwgYXQgYWRza2lsbGUgZmxlcmUgdiZhZWxpZztyZGllcic7CiRsYW5nWyd5b3VfbmVlZF9wZXJtaXNzaW9uJ10gPSAnRHUgc2thbCBoYXZlICZxdW90OyVzJnF1b3Q7IHRpbGxhZGVsc2VuIGZvciBhdCBrdW5uZSB1ZGYmb3NsYXNoO3JlIGRlbiBvcGVyYXRpb24nOwokbGFuZ1snbGFja3Blcm1pc3Npb24nXSA9ICdCZWtsYWdlciEgRHUgaGFyIGlra2UgZGUgbiZvc2xhc2g7ZHZlbmRpZ2UgdGlsbGFkZWxzZXIgZm9yIGF0IHRpbGcmYXJpbmc7IGRlbiBzZWt0aW9uLic7CiRsYW5nWydmaWVsZF9vcmRlcl91cGRhdGVkJ10gPSAnRmVsdC1yJmFlbGlnO2trZWYmb3NsYXNoO2xnZW4gYmxldiBvcGRhdGVyZXQuJzsKJGxhbmdbJ2Zvcm1fZGVsZXRlZCddID0gJ0Zvcm11bGFyZW0gYmxldiBzbGV0dGV0JzsKJGxhbmdbJ2ZpZWxkX2RlbGV0ZWQnXSA9ICdGZWx0ZXQgYmxldiBzbGV0dGV0JzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb25fdXBkYXRlZCddID0gJ0tvbmZpZ3VyYXRpb25lbiBibGV2IG9wZGF0ZXJldCc7CiRsYW5nWyd5b3VfbXVzdF9jaGVjayddID0gJ0R1IHNrYWwgcyZhZWxpZzt0dGUga3J5ZHMgaSAmcXVvdDslcyZxdW90OyBmb3IgYXQgZm9ydHMmYWVsaWc7dHRlJzsKJGxhbmdbJ211c3Rfc3BlY2lmeV9vbmVfZGVzdGluYXRpb24nXSA9ICdEdSBza2FsIGFuZ2l2ZSBtaW5kc3QgZW4gbW9kdGFnZXItYWRyZXNzZSc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2Zvcm0nXSA9ICdFciBkdSBzaWtrZXIgcCZhcmluZzsgZHUgdmlsIHNsZXR0ZSBmb3JtdWxhcmVuICVzPyc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2ZpZWxkJ10gPSAnRXIgZHUgc2lra2VyIHAmYXJpbmc7IGR1IHZpbCBzbGV0dGUgZmVsdGV0ICVzPyc7CiRsYW5nWydub3RpY2Vfc2VsZWN0X3R5cGUnXSA9ICdVZHZpZGVkZSBpbmRzdGlsbGluZ2VyIGthbiBmJm9zbGFzaDtyc3Qgc2VzLCBuJmFyaW5nO3IgZGVyIGVyIHZhbGd0IGZlbHR0eXBlJzsKJGxhbmdbJ2ZpZWxkX25hbWVfaW5fdXNlJ10gPSAnRmVsdG5hdm5ldCAmcXVvdDslcyZxdW90OyBlciBhbGxlcmVkZSBpIGJydWcuIEJlbnl0IHZlbmxpZ3N0IHVuaWtrZSBmZWx0bmF2bmUnOwokbGFuZ1snZmllbGRfbm9fbmFtZSddID0gJ0ZlbHRlciBza2FsIG5hdm5naXZlcyBtZWQgbWluZHJlIGR1IHNsJmFyaW5nOyBkZXR0ZSBmcmEgaSBGb3JtdWxhciBHZW5lcmF0b3JlbnMgaW5kc3RpbGxpbmdlcic7CiRsYW5nWydhbm9ueW1vdXMnXSA9ICdBbm9ueW0nOwokbGFuZ1snYWJicmV2aWF0aW9uX2xlbmd0aCddID0gJ0wmYWVsaWc7bmdkZTogJXMnOwokbGFuZ1snYm94ZXMnXSA9ICclcyBib2tzZSc7CiRsYW5nWydvcHRpb25zJ10gPSAnJXMgdmFsZ211bGlnaGVkZXInOwokbGFuZ1sndGV4dF9sZW5ndGgnXSA9ICclcyBjaGFycyc7CiRsYW5nWydvcmRlciddID0gJ1ImYWVsaWc7a2tlZiZvc2xhc2g7bGdlJzsKJGxhbmdbJ3Vuc3BlY2lmaWVkJ10gPSAnW2lra2UgYW5naXZldF0nOwokbGFuZ1snYWRkZWQnXSA9ICd0aWxmJm9zbGFzaDtqZXQnOwokbGFuZ1sndXBkYXRlZCddID0gJ29wZGF0ZXJldCc7CiRsYW5nWydzb3J0X29wdGlvbnMnXSA9ICdTb3J0JmVhY3V0ZTtyIHZhbGdtdWxpZ2hlZGVyIHZlZCBvdXRwdXQnOwokbGFuZ1snc2VsZWN0X29uZSddID0gJ1YmYWVsaWc7bGcgZW4nOwokbGFuZ1snc2VsZWN0X3R5cGUnXSA9ICdWJmFlbGlnO2xnIHR5cGUnOwokbGFuZ1sndG8nXSA9ICdUaWwnOwokbGFuZ1sneWVzJ10gPSAnSmEnOwokbGFuZ1snbm8nXSA9ICdOZWonOwokbGFuZ1sncmVjaXBpZW50cyddID0gJ21vZHRhZ2VyZSc7CiRsYW5nWydmaWxlX2NvdW50J10gPSAnJXMgbXVsaWdlIGZpbGVyJzsKJGxhbmdbJ2Rlc3RpbmF0aW9uX2NvdW50J10gPSAnJXMgZGVzdGluYXRpb25lcic7CiRsYW5nWydzYXZlJ10gPSAnR2VtJzsKJGxhbmdbJ2FkZCddID0gJ1RpbGYmb3NsYXNoO2onOwokbGFuZ1sndXBkYXRlJ10gPSAnT3BkYXQmZWFjdXRlO3InOwokbGFuZ1snc2F2ZV9hbmRfY29udGludWUnXSA9ICdHZW0gb2cgZm9ydHMmYWVsaWc7dCByZWRpZ2VyaW5nJzsKJGxhbmdbJ2luZm9ybWF0aW9uJ10gPSAnSW5mb3JtYXRpb24nOwokbGFuZ1snYXV0b21hdGljJ10gPSAnQXV0b21hdGlzayc7CiRsYW5nWydmb3JtcyddID0gJ0Zvcm11bGFyZXInOwokbGFuZ1snZm9ybSddID0gJ0Zvcm11bGFyICVzJzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb24nXSA9ICdLb25maWd1cmF0aW9uJzsKJGxhbmdbJ2ZpZWxkX3JlcXVpcmVtZW50X3VwZGF0ZWQnXSA9ICdGZWx0ZXRzIHAmYXJpbmc7a3ImYWVsaWc7dmV0LXN0YXR1cyBvcGRhdGVyZXQnOwokbGFuZ1snbWF4aW11bV9zaXplJ10gPSAnTWFrcy4gc3Qmb3NsYXNoO3JyZWxzZSc7CiRsYW5nWydwZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ1VkdmlkZWxzZXInOwokbGFuZ1sncGVybWl0dGVkX2ZpbGV0eXBlcyddID0gJ1RpbGxhZHRlIGZpbHR5cGVyJzsKJGxhbmdbJ2ZpbGVfdG9vX2xhcmdlJ10gPSAnRGVuIHVwbG9hZCYjMDM5O2VkZSBmaWwgZXIgZm9yIHN0b3IhIE1ha3NpbWFsIHN0Jm9zbGFzaDtycmVsc2UgZXI6ICc7CiRsYW5nWydpbGxlZ2FsX2ZpbGVfdHlwZSddID0gJ0Rlbm5lIHR5cGUgZmlsIG0mYXJpbmc7IGlra2UgdXBsb2FkZXMuIEtvbnRyb2xsJmVhY3V0ZTtyIHZlbmxpZ3N0IGF0IGZpbHR5cGVuIGVyIGtvcnJla3QuJzsKJGxhbmdbJ3VwbG9hZCddID0gJ1VwbG9hZCc7CiRsYW5nWydmb3JtX2ltcG9ydGVkJ10gPSAnRm9ybXVsYXIgaW1wb3J0ZXJldCc7CiRsYW5nWydmb3JtX2ltcG9ydF9mYWlsZWQnXSA9ICdJbXBvcnQgYWYgZm9ybXVsYXIgZmVqbGVkZS4gRGVyIHZhciBldCBwcm9ibGVtIG1lZCBmb3JtYXRldCBhZiBYTUwtZmlsZW4nOwokbGFuZ1sncm93cyddID0gJyVzIHImYWVsaWc7a2tlcic7CiRsYW5nWydjb2xzJ10gPSAnJXMga29sb25uZXInOwokbGFuZ1snMTJfaG91ciddID0gJzEyLXRpbWVycyB0aWQnOwokbGFuZ1snMjRfaG91ciddID0gJzI0LXRpbWVycyB0aWQnOwokbGFuZ1snaG91ciddID0gJ1RpbWUnOwokbGFuZ1snbWluJ10gPSAnTWludXQnOwokbGFuZ1snbWVyaWQnXSA9ICdNZXJpZGlhbic7CiRsYW5nWydkYXRlX3JhbmdlJ10gPSAnT21yJmFyaW5nO2RlOiAlcyAtICVzJzsKJGxhbmdbJ3RoYW5rcyddID0gJ1RhayEgRGluIGFmc2VuZGVsc2UgZXIgbW9kdGFnZXQuJzsKJGxhbmdbJ2VkaXQnXSA9ICdSZWRpZyZlYWN1dGU7cic7CiRsYW5nWydkZWxldGUnXSA9ICdTbGV0JzsKJGxhbmdbJ2RheSddID0gJ0RhZyc7CiRsYW5nWydtb24nXSA9ICdNJmFyaW5nO25lZCc7CiRsYW5nWyd5ZWFyJ10gPSAnJkFyaW5nO3InOwokbGFuZ1snbm9uZSddID0gJyhpbmdlbiknOwokbGFuZ1snY3NzJ10gPSAnQ1NTJzsKJGxhbmdbJ3VuaW5zdGFsbGVkJ10gPSAnTW9kdWxldCBibGV2IGFmaW5zdGFsbGVyZXQnOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnTW9kdWwgdmVyc2lvbiAlcyBpbnN0YWxsZXJldC4nOwokbGFuZ1sndXBncmFkZWQnXSA9ICdNb2R1bGV0IGJsZXYgb3BncmFkZXJldCB0aWwgdmVyc2lvbiAlcy4nOwokbGFuZ1snYnV0dG9uX3ByZXZpb3VzJ10gPSAnVGlsYmFnZS4uLic7CiRsYW5nWydidXR0b25fc3VibWl0J10gPSAnU2VuZCBmb3JtdWxhcic7CiRsYW5nWydidXR0b25fY29udGludWUnXSA9ICdWaWRlcmUuLi4nOwokbGFuZ1sndmFsdWVfY2hlY2tlZCddID0gJ1ZhbGd0JzsKJGxhbmdbJ3ZhbHVlX3VuY2hlY2tlZCddID0gJ0lra2UgdmFsZ3QnOwokbGFuZ1sndGFiX21haW4nXSA9ICdNYWluJzsKJGxhbmdbJ3RhYl9zeW1ib2wnXSA9ICdGb3JtdWxhciBmcmVtdmlzbmluZ3MgaW5kc3RpbGxpbmdlcic7CiRsYW5nWyd0YWJfc3VibWl0J10gPSAnRm9ybXVsYXIgYWZzZW5kZWxzZSc7CiRsYW5nWyd0YWJfY2FwdGNoYSddID0gJ0NhcHRjaGEgaW5kc3RpbGxpbmdlcic7CiRsYW5nWyd0YWJfYWR2YW5jZWQnXSA9ICdBdmFuY2VyZWRlIGluZHN0aWxsaW5nZXInOwokbGFuZ1sndGFiX3RlbXBsYXRlbGF5b3V0J10gPSAnVGVtcGxhdGUgTGF5b3V0IE9wdGlvbnMnOwokbGFuZ1sndGFiX3N1Ym1pc3Npb250ZW1wbGF0ZSddID0gJ0Fmc2VuZGVsc2VzIHNrYWJlbG9uJzsKJGxhbmdbJ3RhYl91ZHQnXSA9ICdVRFQgSW50ZWdyYXRpb24nOwokbGFuZ1snY2FudXNlX3NtYXJ0eSddID0gJzxlbT5TbWFydHkgdmFyaWFibGVyIGthbiBiZW55dHRlcyBpIGRldHRlIGZlbHQuPC9lbT4nOwokbGFuZ1snYWRkX29wdGlvbnMnXSA9ICdUaWxmJm9zbGFzaDtqIGZsZXJlIHZhbGdtdWxpZ2hlZGVyJzsKJGxhbmdbJ2RlbGV0ZV9vcHRpb25zJ10gPSAnU2xldCBtYXJrZXJlZGUgdmFsZ211bGlnaGVkZXInOwokbGFuZ1snYWRkX2NoZWNrYm94ZXMnXSA9ICdUaWxmJm9zbGFzaDtqIGZsZXJlIGNoZWNrYm94ZSc7CiRsYW5nWydkZWxldGVfY2hlY2tib3hlcyddID0gJ1NsZXQgbWFya2VyZWRlIGNoZWNrYm94ZSc7CiRsYW5nWydhZGRfYWRkcmVzcyddID0gJ1RpbGYmb3NsYXNoO2ogZW5kbnUgZW4gYWRyZXNzZSc7CiRsYW5nWydkZWxldGVfYWRkcmVzcyddID0gJ1NsZXQgZGVuIG1hcmtlcmVkZSBhZHJlc3NlJzsKJGxhbmdbJ2FkZF9kZXN0aW5hdGlvbiddID0gJ1RpbGYmb3NsYXNoO2ogZW5kbnUgZW4gZGVzdGluYXRpb24nOwokbGFuZ1snZGVsZXRlX2Rlc3RpbmF0aW9uJ10gPSAnU2xldCBkZSBtYXJrZXJlZGUgZGVzdGluYXRpb25zJzsKJGxhbmdbJ3N1c3BlY3RlZF9zcGFtJ10gPSAnRGVyIGVyIGdlbmVyZXJldCBmb3IgbWFuZ2UgZS1tYWlscyBmcmEgZGVubmUgSVAgYWRyZXNzZS4gQW50aS1TcGFtIGZ1bmt0aW9uZW4gaGFyIGZvcmhpbmRyZXQgYWZzZW5kZWxzZS4nOwokbGFuZ1snc3VzcGVjdGVkX3NwYW1fbG9nJ10gPSAnTWFpbCBmcmEgSVAgJXMsIG1pc3QmYWVsaWc7bmt0IGZvciBhdCB2JmFlbGlnO3JlIHNwYW0sIGVyIHN0b3BwZXQuJzsKJGxhbmdbJ3Jlb3JkZXInXSA9ICdPbWFycmFuZyZlYWN1dGU7ciBmZWx0ZXInOwokbGFuZ1snY2FuY2VsJ10gPSAnRm9ydHJ5ZCc7CiRsYW5nWyd2YWx1ZV9zZXQnXSA9ICdWYWx1ZSBzZXQ6ICVzJzsKJGxhbmdbJ2hlbHBfY2F0YWxvZ2VyX2F0dHJpYnV0ZV9maWVsZHMnXSA9ICdCZWxvdyBpcyBhIGxpc3Qgb2YgdGhlIGF0dHJpYnV0ZXMgYXZhaWxhYmxlIGZyb20gdGhlIENhdGFsb2dlciBtb2R1bGUuPGJyLz5Zb3UgY2FuIG9wdGlvbmFsbHkgc3BlY2lmeSB2YWxpZCByYW5nZXMsIHZhbHVlcywgb3IgbnVtZXJvdXMgdmFsdWVzIHRvIGJlIHVzZWQgaW4gZmlsdGVyaW5nIHRoZSBsaXN0IG9mIGl0ZW1zIHRoYXQgaXMgZGlzcGxheWVkIHRvIHRoZSB1c2VyLjxici8+DQo8YnIvPg0KPHN0cm9uZz5SYW5nZXM6PC9zdHJvbmc+PGJyLz4NClJhbmdlcyBjYW4gYmUgc3BlY2lmaWVkIGJ5IHNpZ25pZnlpbmcgYSBtaW5pbXVtIGFuZCBtYXhpbXVtIHZhbHVlIHVzaW5nIHRoaXMgc3ludGF4OiAmcXVvdDtyYW5nZTogbWludmFsdWUgdG8gbWF4dmFsdWUmcXVvdDs8YnIvPg0KPGJyLz4NCjxzdHJvbmc+TXVsdGlwbGUgVmFsdWVzOjwvc3Ryb25nPjxici8+DQpUbyBzcGVjaWZ5IG11bHRpcGxlIHZhbHVlcyBmb3IgYW4gYXR0cmlidXRlIHVzZSB0aGUgc3ludGF4ICZxdW90O211bHRpOiB2YWx1ZTF8dmFsdWUyfHZhbHVlMyZxdW90Ozxici8+DQo8YnIvPg0KPHN0cm9uZz5WYWx1ZXMgZnJvbSBoaWRkZW4gZmllbGRzPC9zdHJvbmc+PGJyLz4NClRvIHNwZWNpZnkgYSB2YWx1ZSBmcm9tIGEgaGlkZGVuIGZpZWxkIHVzZSB0aGUgc3ludGF4IHskZmxkX2lkfTxici8+DQo8YnIvPic7CiRsYW5nWydoZWxwX25hbWVfcmVnZXgnXSA9ICdBIHJlZ3VsYXIgZXhwcmVzc2lvbiB0byBhbGxvdyBmaWx0ZXJpbmcgY2F0YWxvZ2VyIGl0ZW1zIGJ5IG5hbWUnOwokbGFuZ1snaGVscF9maWVsZF9oZWlnaHQnXSA9ICdIJm9zbGFzaDtqZGVuIHAmYXJpbmc7IG11bHRpLXYmYWVsaWc7bGcgZmVsdCc7CiRsYW5nWyd0aXRsZV9uYW1lX3JlZ2V4J10gPSAnQ2F0YWxvZ2VyIEl0ZW0gTmFtZSBSZWd1bGFyIEV4cHJlc3Npb24nOwokbGFuZ1sndGl0bGVfZmllbGRfaGVpZ2h0J10gPSAnRmVsdGgmb3NsYXNoO2pkZSc7CiRsYW5nWyd0aXRsZV9maWxlX3BhdGgnXSA9ICdEZXN0aW5hdGlvbnNtYXBwZSBmb3Igb3V0cHV0IGZpbGVyJzsKJGxhbmdbJ3RpdGxlX3VkdF9uYW1lJ10gPSAnQnJ1Z2VyZGVmaW5lcmV0IFRhZyc7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2Rlc3RwYWdlJ10gPSAnU2lkZSBhdCB2ZW5kZSB0aWxiYWdlIHRpbCBtZWQgdXBsb2FkLWwmYWVsaWc7bmtlbic7CiRsYW5nWyd0aXRsZV91cGxvYWRtb2R1bGVfc3VtbWFyeSddID0gJ0luZHNlbmR0IG1lZCBmb3JtdWxhcmdlbmVyYXRvcic7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2NhdGVnb3J5J10gPSAnVXBsb2FkIGthdGVnb3JpJzsKJGxhbmdbJ3RpdGxlX3NlbmR0b191cGxvYWRzJ10gPSAnU2VuZCBkZW5uZSBmaWwgdGlsIHVwbG9hZC1tb2R1bGV0JzsKJGxhbmdbJ3RpdGxlX2xlZ2VuZCddID0gJ0hpc3RvcmllJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fbGVuZ3RoJ10gPSAnTWF4aW11bSBsJmFlbGlnO25nZGUnOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfbGFiZWwnXSA9ICdOYXZuIHAmYXJpbmc7IGNoZWNrYm9rcyc7CiRsYW5nWyd0aXRsZV9yYWRpb19sYWJlbCddID0gJ05hdm4gcCZhcmluZzsga25hcCc7CiRsYW5nWyd0aXRsZV9jaGVja2VkX3ZhbHVlJ10gPSAnViZhZWxpZztyZGkgbiZhcmluZztyIG1hcmtlcmV0JzsKJGxhbmdbJ3RpdGxlX3VuY2hlY2tlZF92YWx1ZSddID0gJ1YmYWVsaWc7cmRpIHVkZW4gbWFya2VyaW5nJzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2RldGFpbHMnXSA9ICdHcnVwcGVkZXRhbGplciBmb3IgQ2hlY2tib2tzJzsKJGxhbmdbJ3RpdGxlX2RlbGV0ZSddID0gJ1NsZXQ/JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9vbmVfbWVzc2FnZSddID0gJyZxdW90O1YmYWVsaWc7bGcgZW4mcXVvdDsgVGV4dCc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fdmFsdWUnXSA9ICdWYWxndCB2JmFlbGlnO3JkaSc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fZGlzcGxheW5hbWUnXSA9ICdTZWxlY3Rpb24gRGlzcGxheSBOYW1lJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl9zdWJqZWN0J10gPSAnU2VsZWN0aW9uIFN1YmplY3QnOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfY291bnRyeSddID0gJ1N0YW5kYXJ0IHVkdmFsZyc7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9zdGF0ZSddID0gJ1N0YW5kYXJ0IHVkdmFsZyc7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9wcm92aW5jZSddID0gJ1N0YW5kYXJ0IHVkdmFsZyc7CiRsYW5nWyd0aXRsZV9vcHRpb25fbmFtZSddID0gJ1ZhbGdtdWxpZ2hlZGVucyBuYXZuJzsKJGxhbmdbJ3RpdGxlX29wdGlvbl92YWx1ZSddID0gJ0luZHNlbmR0IHYmYWVsaWc7cmRpJzsKJGxhbmdbJ3RpdGxlX3B1bGxkb3duX2RldGFpbHMnXSA9ICdQdWxsZG93biBtdWxpZ2hlZGVyJzsKJGxhbmdbJ3RpdGxlX211bHRpc2VsZWN0X2RldGFpbHMnXSA9ICdNdWx0aXZhbGcgbXVsaWdoZWRlcic7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9hZGRyZXNzJ10gPSAnRGVzdGluYXRpb24gRW1haWwgQWRkcmVzcyc7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9maWxlbmFtZSddID0gJ0Rlc3RpYW50aW9uIGZvciBGaWwtbmF2bic7CiRsYW5nWyd0aXRsZV9lbWFpbF9mcm9tX25hbWUnXSA9ICcmcXVvdDtGcmEgbmF2biZxdW90OyBmb3IgZW1haWwnOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9lbWFpbF9yZWdleCddID0gJ0JydWcgYmwmb3NsYXNoO2QgZW1haWwgdmFsaWRlcmluZyc7CiRsYW5nWyd0aXRsZV9yZWxheGVkX3JlZ2V4X2xvbmcnXSA9ICdCZW55dCBhZnNsYXBwZXQgZW1haWwtdmFsaWRlcmluZyAoZi5la3MuLCB0aWxsYWQgJnF1b3Q7eEB5JnF1b3Q7IGkgc3RlZGV0IGZvciBhdCBrciZhZWxpZzt2ZSAmcXVvdDt4QHkudGxkJnF1b3Q7KSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9mcm9tX2FkZHJlc3MnXSA9ICcmcXVvdDtGcmEgYWRyZXNzZSZxdW90OyBmb3IgZW1haWwnOwokbGFuZ1sndGl0bGVfZW1haWxfZW5jb2RpbmcnXSA9ICdFbWFpbCB0ZWducyZhZWxpZzt0IGtvZG5pbmcnOwokbGFuZ1sndGl0bGVfZGlyZWN0b3JfZGV0YWlscyddID0gJ1B1bGxkb3duLWJhc2VkIEVtYWlsZXIgRGV0YWlscyc7CiRsYW5nWyd0aXRsZV9maWxlX25hbWUnXSA9ICdGaWwgbmF2bic7CiRsYW5nWyd0aXRsZV9lbWFpbF9zdWJqZWN0J10gPSAnRW1uZWxpbmllIGkgZS1tYWlsJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmFtZSddID0gJ0Zvcm11bGFyIG5hdm4nOwokbGFuZ1sndGl0bGVfZm9ybV9zdGF0dXMnXSA9ICdGb3JtdWxhciBzdGF0dXMnOwokbGFuZ1sndGl0bGVfcmVhZHlfZm9yX2RlcGxveW1lbnQnXSA9ICdLbGFyIHRpbCBicnVnJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTEnXSA9ICdJa2tlIGtsYXInOwokbGFuZ1sndGl0bGVfcmVkaXJlY3RfcGFnZSddID0gJ1NpZGUgZGVyIHNrYWwgdmlkZXJlc3RpbGxlcyB0aWwgZWZ0ZXIgYWZzZW5kZWxzZSBhZiBmb3JtdWxhcic7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkyJ10gPSAnUGxlYXNlIGFkZCBhIGZpZWxkIHRvIHRoZSBmb3JtIHNvIHRoYXQgdGhlIHVzZXJcJiMwMzk7cyBpbnB1dCBnZXRzIGhhbmRsZWQuIFlvdSBjYW4nOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5X2xpbmsnXSA9ICdiZW55dCBkZW5uZSBnZW52ZWonOwokbGFuZ1sndGl0bGVfZm9ybV9hbGlhcyddID0gJ0Zvcm0gQWxpYXMnOwokbGFuZ1sndGl0bGVfZmllbGRfYWxpYXNfc2hvcnQnXSA9ICdBbGlhcyc7CiRsYW5nWyd0aXRsZV9mb3JtX2ZpZWxkcyddID0gJ0Zvcm11bGFyIGZlbHRlcic7CiRsYW5nWyd0aXRsZV9maWVsZF9pZCddID0gJ0ZlbHQgSWQnOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGFsaWFzZXMnXSA9ICdWaXMgRmllbGQgQWxpYXNlcyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkYWxpYXNlc19sb25nJ10gPSAnS2xpayBoZXIgZm9yIGF0IGZvciBhdCBzZSBkaXNwbGF5IGFsaWFzZXIgbiZhcmluZztyIGRlciB0aWxmJm9zbGFzaDtyZXMgZWxsZXIgcmVkaWdlcmVzIGkgZW4gZm9ybXVsYXInOwokbGFuZ1sndGl0bGVfZmllbGRfbmFtZSddID0gJ0ZlbHQgTmF2bic7CiRsYW5nWyd0aXRsZV9maWVsZF9hbGlhcyddID0gJ0ZpZWxkIEFsaWFzJzsKJGxhbmdbJ3RpdGxlX3JhZGlvZ3JvdXBfZGV0YWlscyddID0gJ1JhZGlvIEJ1dHRvbiBHcm91cCBEZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3R5cGUnXSA9ICdGZWx0dHlwZSc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkzJ10gPSAnZm9yIGF0IHNrYWJlIGV0IGZvcm11bGFyLXN0eXJlbmRlIGZlbHQnOwokbGFuZ1sndGl0bGVfYWRkX25ld19mb3JtJ10gPSAnVGlsZiZvc2xhc2g7aiBueSBmb3JtdWxhcic7CiRsYW5nWyd0aXRsZV9zaG93X3ZlcnNpb24nXSA9ICdWaXMgZm9ybXVsYXIgZ2VuZXJhdG9yIHZlcnNpb24/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbl9sb25nJ10gPSAnRGV0dGUgdmlsIGluZHMmYWVsaWc7dHRlIGZvcm11bGFyZ2VuZXJhdG9yZW5zIHZlcnNpb25zbnVtbWVyIGkgZW4ga29tbWVudGFyIGZvciBhdCBiaWRyYWdlIHRpbCBkZWJ1Z2dpbmcnOwokbGFuZ1sndGl0bGVfYWRkX25ld19maWVsZCddID0gJ1RpbGYmb3NsYXNoO3Igbnl0IGZlbHQnOwokbGFuZ1sndGl0bGVfZm9ybV9zdWJtaXRfYnV0dG9uJ10gPSAnVGVrc3QgdGlsIGZvcm11bGFyZW5zICZxdW90O0luZHNlbmQmcXVvdDsga25hcCc7CiRsYW5nWyd0aXRsZV9idXR0b25fdGV4dCddID0gJ0tuYXAtdGVrc3QnOwokbGFuZ1sndGl0bGVfc3VibWl0X2J1dHRvbl9zYWZldHknXSA9ICdUaWxmJm9zbGFzaDtqIEphdmFzY3JpcHQgdGlsIGVuZGVsaWcgJnF1b3Q7SW5kc2VuZCZxdW90Oy1rbmFwLCBkZXIgdmlsIGZvcmhpbmRyZSBtdWx0aXBsZSBpbmRzZW5kZWxzZXI/JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5X2hlbHAnXSA9ICdUaWxmJm9zbGFzaDtqIHNpa2tlcmhlZHMtc2NyaXB0JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmV4dF9idXR0b24nXSA9ICdGb3JtICZxdW90O05leHQmcXVvdDsgQnV0dG9uIFRleHQgKHVzZWQgZm9yIG11bHRpcGFnZSBmb3JtcyknOwokbGFuZ1sndGl0bGVfZm9ybV9wcmV2X2J1dHRvbiddID0gJ0Zvcm0gJnF1b3Q7UHJldmlvdXMmcXVvdDsgQnV0dG9uIFRleHQgKHVzZWQgZm9yIG11bHRpcGFnZSBmb3JtcyknOwokbGFuZ1sndGl0bGVfZmllbGRfdmFsaWRhdGlvbiddID0gJ0ZlbHQgdmFsaWRlcmluZyc7CiRsYW5nWyd0aXRsZV9maWVsZF90b192YWxpZGF0ZSddID0gJ0ZlbHQgZGVyIHNrYWwgdmFsaWRlcmVzJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2Nzc19pZCddID0gJ0NTUyBpZCBmb3IgdGhpcyBmaWVsZCc7CiRsYW5nWyd0aXRsZV9mb3JtX2Nzc19jbGFzcyddID0gJ0NTUyBDbGFzcyBmb3IgdGhpcyBmb3JtJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2Nzc19jbGFzcyddID0gJ0NTUyBDbGFzcyBmb3IgdGhpcyBmaWVsZCc7CiRsYW5nWyd0aXRsZV9mb3JtX3ByZWRpc3BsYXlfdWR0J10gPSAnQnJ1Z2VyZGVmaW5lcmV0IHRhZyBkZXIgc2thbCBrYWxkZXMgZiZvc2xhc2g7ciBmb3JtdWxhcmVuIHZpc2VzIGYmb3NsYXNoO3JzdGUgZ2FuZyAoa2FsZGVzIGt1biAmZWFjdXRlO24gZ2FuZyknOwokbGFuZ1sndGl0bGVfZm9ybV9wcmVkaXNwbGF5X2VhY2hfdWR0J10gPSAnQnJ1Z2VyZGVmaW5lcmV0IHRhZyBkZXIgc2thbCBrYWxkZXMgZiZvc2xhc2g7ciBmb3JtdWxhcmVuIHZpc2VzIChrYWxkZXMgcCZhcmluZzsgaHZlciBzaWRlIGFmIGZsZXJzaWRpZ2UgZm9ybXVsYXJlciknOwokbGFuZ1sndGl0bGVfZm9ybV92YWxpZGF0ZV91ZHQnXSA9ICdCcnVnZXJkZWZpbmVyZXQgdGFnIGRlciBza2FsIGthbGRlcyB1bmRlciBmb3JtdWxhcnZhbGlkZXJpbmcnOwokbGFuZ1sndGl0bGVfZm9ybV9yZXF1aXJlZF9zeW1ib2wnXSA9ICdTeW1ib2wgZGVyIGJydWdlcyB0aWwgYXQgbWFya2VyZSAmcXVvdDtLciZhZWxpZzt2ZXQgZmVsdCZxdW90Oyc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZCddID0gJ1AmYXJpbmc7a3ImYWVsaWc7dmV0JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2xvbmcnXSA9ICdLciZhZWxpZzt2IGVuIG1hcmtlcmluZyBmb3IgZGV0dGUgZmVsdCc7CiRsYW5nWyd0aXRsZV9oaWRlX2xhYmVsJ10gPSAnU2tqdWwgbGFiZWwnOwokbGFuZ1sndGl0bGVfaGlkZV9sYWJlbF9sb25nJ10gPSAnU2tqdWwgZmVsdGV0cyBuYXZuIHAmYXJpbmc7IGZvcm11bGFyZW4nOwokbGFuZ1sndGl0bGVfdGV4dCddID0gJ1N0YXRpc2sgdGVrc3QgZGVyIHNrYWwgdmlzZXMnOwokbGFuZ1sndGl0bGVfZmllbGRfcmVnZXgnXSA9ICdWYWxpZGF0aW9uIFJlZ2V4JzsKJGxhbmdbJ3RpdGxlX2xpbmVzX3RvX3Nob3cnXSA9ICdBbnRhbCBsaW5pZXIgYXQgdmlzZSc7CiRsYW5nWyd0aXRsZV9yZWFkX29ubHknXSA9ICdLdW4gbCZhZWxpZztzZXJldHRpZ2hlZCc7CiRsYW5nWydub19kZWZhdWx0J10gPSAnSW50ZXQgRGVmYXVsdCc7CiRsYW5nWydyZWRpcmVjdF9hZnRlcl9hcHByb3ZhbCddID0gJ1BhZ2UgdG8gcmVkaXJlY3QgYWZ0ZXIgYXBwcm92YWwnOwokbGFuZ1sndGl0bGVfcmVnZXhfaGVscCddID0gJ1RoaXMgcmVndWxhciBleHByZXNzaW9uIHdpbGwgb25seSBiZSB1c2VkIGlmIFwmcXVvdDt2YWxpZGF0aW9uIHR5cGVcJnF1b3Q7IGlzIHNldCB0byBhIHJlZ2V4LXJlbGF0ZWQgb3B0aW9uLiBJbmNsdWRlIGEgZnVsbCBQZXJsLXN0eWxlIHJlZ2V4LCBpbmNsdWRpbmcgdGhlIHN0YXJ0L3N0b3Agc2xhc2hlcyBhbmQgZmxhZ3MgKGUuZy4sIFwmcXVvdDsvaW1hZ2VcLihcZCspL2lcJnF1b3Q7KSc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9hYmJyZXYnXSA9ICdQJmFyaW5nO2tyJmFlbGlnO3ZldCc7CiRsYW5nWyd0aXRsZV9oaWRlX2Vycm9ycyddID0gJ1NranVsIGZlamwnOwokbGFuZ1sndGl0bGVfZm9ybV9kaXNwbGF5dHlwZSddID0gJ0Zvcm0gRGlzcGxheSBUeXBlJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzX2xvbmcnXSA9ICdEZWJ1Zy0gLyBmZWpsbWVkZGVsZWxzZXIgZm9yaGluZHJlcyBpIGF0IGJsaXZlIHNldCBhZiBicnVnZXJlLic7CiRsYW5nWyd0aXRsZV9lbWFpbF90ZW1wbGF0ZSddID0gJ0VtYWlsIHNrYWJlbG9uJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZSddID0gJ01heGltdW0gdXBsb2Fkc3Qmb3NsYXNoO3JyZWxzZSBmb3IgZmlsZXIgKGtpbG9ieXRlcyknOwokbGFuZ1sndGl0bGVfbWF4aW11bV9zaXplX2xvbmcnXSA9ICdEZW5uZSBiZWdyJmFlbGlnO25zbmluZyBlciBlbiB0aWxmJm9zbGFzaDtqZWxzZSAgdGlsIGV2ZW50dWVsbGUgYmVnciZhZWxpZztuc25pbmdlciBzYXQgYWYgcGhwIGVsbGVyIHdlYnNlcnZlci1rb25maWd1cmF0aW9uZW4nOwokbGFuZ1sndGl0bGVfcGVybWl0dGVkX2V4dGVuc2lvbnMnXSA9ICdUaWxsYWR0ZSBlbmRlbHNlcic7CiRsYW5nWyd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9uc19sb25nJ10gPSAnRW50ZXIgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCwgZXhjbHVkaW5nIHRoZSBkb3QgKGUuZy4sIFwmcXVvdDtqcGcsZ2lmLGpwZWdcJnF1b3Q7KS4gU3BhY2VzIHdpbGwgYmUgaWdub3JlZC4gTGVhdmluZyB0aGlzIGJsYW5rIG1lYW5zIHRoZXJlIHdpbGwgYmUgbm8gcmVzdHJpY3Rpb25zLic7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zJ10gPSAnVmlzIHJlc3RyaWt0aW9uZXI/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnNfbG9uZyddID0gJ0Rpc3BsYXkgYW55IHNpemUgYW5kIGV4dGVuc2lvbiByZXN0cmljdGlvbnMgd2l0aCB0aGUgdXBsb2FkIGZpZWxkPyc7CiRsYW5nWyd0aXRsZV9mb3JtX3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgdG8gdXNlIHRvIERpc3BsYXkgRm9ybSc7CiRsYW5nWyd0aXRsZV9wYWdlX3hfb2ZfeSddID0gJ1NpZGUgbnVtbWVyICVzIGFmICVzJzsKJGxhbmdbJ3RpdGxlX25vX2FkdmFuY2VkX29wdGlvbnMnXSA9ICdGZWx0ZXQgaGFyIGluZGVuIGF2YW5jZXJlZCB2YWxnbXVsaWdoZWRlcic7CiRsYW5nWyd0aXRsZV9mb3JtX3Vuc3BlY2lmaWVkJ10gPSAnUmVzcG9uc3Rla3N0IHZlZCB1c3BlY2lmZXJlZGUgZmVsdHYmYWVsaWc7cmRpZXInOwokbGFuZ1sndGl0bGVfZW5hYmxlX2Zhc3RhZGRfbG9uZyddID0gJ0VuYWJsZSBmYXN0IGZpZWxkIGFkZGluZyBwdWxsZG93biBmb3IgZm9ybXM/JzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9mYXN0YWRkJ10gPSAnRW5hYmxlIGZhc3QgZmllbGQgYWRkIHB1bGxkb3duPyc7CiRsYW5nWyd0aXRsZV9mYXN0YWRkJ10gPSAnRmFzdCBmaWVsZCBhZGRlcic7CiRsYW5nWyd0aXRsZV9lbmFibGVfYW50aXNwYW1fbG9uZyddID0gJ0tsaWsgaGVyIGZvciBhdCBzJmFlbGlnO3R0ZSBlbiBnciZhZWxpZztuc2UgcCZhcmluZzsgdGkgKDEwKSBtYWlscyB0aWxsYWR0IGZyYSBkZW4gZ2l2bmUgSVAgYWRyZXNzZSBwZXIgdGltZS4nOwokbGFuZ1sndGl0bGVfZW5hYmxlX2FudGlzcGFtJ10gPSAnSXYmYWVsaWc7cmtzJmFlbGlnO3Qgc2ltcGxlIGFudGktc3BhbSBmb3Job2xkc3JlZ2xlcj8nOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGlkcyddID0gJ1ZpcyBGaWVsZCBJRHMnOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGlkc19sb25nJ10gPSAnVGlsbGFkIHZpc25pbmcgYWYgZmVsdCBJRCBuJmFyaW5nO3IgZGVyIHRpbGYmb3NsYXNoO2plcyBlbGxlciByZWRpZ2VyZXMgaSBlbiBmb3JtdWxhciBodmlzIGRlciBrbGlra2VzIGhlcic7CiRsYW5nWyd0aXRsZV94bWxfdG9fdXBsb2FkJ10gPSAnVXBsb2FkIGZvcm11bGFyIGZyYSBYTUwgZmlsZSc7CiRsYW5nWyd0aXRsZV94bWxfdXBsb2FkX2Zvcm1uYW1lJ10gPSAnQnJ1ZyBkZXR0ZSBmb3JtdWxhcm5hdm4nOwokbGFuZ1sndGl0bGVfaW1wb3J0X2xlZ2VuZCddID0gJ1hNTCBmb3JtdWxhciBpbXBvcnQnOwokbGFuZ1sndGl0bGVfeG1sX3VwbG9hZF9mb3JtYWxpYXMnXSA9ICdCcnVnIGRldHRlIGZvcm11bGFyIGFsaWFzJzsKJGxhbmdbJ3RpdGxlX2h0bWxfZW1haWwnXSA9ICdHZW5lciZlYWN1dGU7ciBIVE1MIGVtYWlsPyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZSddID0gJ0Z1bGRmJm9zbGFzaDtyIGF1dG9tYXRpc2s/JzsKJGxhbmdbJ3RpdGxlX2xpbmtfYXV0b3BvcHVsYXRlX2hlbHAnXSA9ICdJbmRzJmFlbGlnO3QgYXV0b21hdGlzayBVUkwgZnJhIHNpZGVuLCBkZXIgaW5kZWhvbGRlciBmb3JtdWxhcmVuPw0KKERldHRlIHRhZ2VyIHByZWNlZGVucyBmcmEgc2lkZWwmYWVsaWc7bmtlIG11bGlnaGVkZW4gbmVkZW51bmRlciknOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9saW5rJ10gPSAnU3RhbmRhcnQgbCZhZWxpZztua2UgVVJMJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfbGlua190aXRsZSddID0gJ1N0YW5kYXJ0IGwmYWVsaWc7bmtlIHRla3N0JzsKJGxhbmdbJ3RpdGxlX2xpbmtfdG9fc2l0ZXBhZ2UnXSA9ICdMJmFlbGlnO25rZSB0aWwgc2lkZSc7CiRsYW5nWyd0aXRsZV9jYXB0Y2hhX25vdF9pbnN0YWxsZWQnXSA9ICdZb3UgY2FuIHVzZSA8YSBocmVmPVwiaHR0cDovL3d3dy53aWtpcGVkaWEub3JnL3dpa2kvQ2FwdGNoYVwiIHRhcmdldD1cIl9uZXdcIj5cJnF1b3Q7Q2FwdGNoYVwmcXVvdDs8L2E+IHRvIHByb3RlY3QgZm9ybSBzdWJtaXNzaW9ucyBpZiB5b3UgaW5zdGFsbCB0aGUgQ2FwdGNoYSBtb2R1bGUuIEZvciBtb3JlIGluZm9ybWF0aW9uLCA8YSBocmVmPVwiaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9jYXB0Y2hhL1wiPmNoZWNrIHRoZSBDYXB0Y2hhIHByb2plY3Q8L2E+Lic7CiRsYW5nWyd0aXRsZV91c2VfY2FwdGNoYSddID0gJ0JydWcgQ2FwdGNoYSBmb3IgYXQgYmVza3l0dGUgZm9ybXVsYXJpbmRsJmFlbGlnO2c/JzsKJGxhbmdbJ3RpdGxlX3VzZV9jYXB0Y2hhX2hlbHAnXSA9ICdDaGVjayBoZXJlIHRvIHByb3RlY3QgeW91ciBmb3JtIHdpdGggYSA8YSBocmVmPSJodHRwOi8vd3d3Lndpa2lwZWRpYS5vcmcvd2lraS9DYXB0Y2hhIiB0YXJnZXQ9Il9uZXdcIj4mcXVvdDtDYXB0Y2hhJnF1b3Q7PC9hPi4nOwokbGFuZ1sndGl0bGVfdXNlcl9jYXB0Y2hhJ10gPSAnS29uZmlybSZlYWN1dGU7ciB2ZW5saWdzdCBhdCBkdSBpa2tlIGVyIGV0IHNjcmlwdCB2ZWQgYXQgbCZhZWxpZztzZSBvZyBpbmRzJmFlbGlnO3R0ZSB0ZWduZW5lIGZyYSBiaWxsZWRldCc7CiRsYW5nWyd0aXRsZV91c2VyX2NhcHRjaGFfZXJyb3InXSA9ICdGb3JrZXJ0IHRla3N0IGZvciBDYXB0Y2hhJzsKJGxhbmdbJ3dyb25nX2NhcHRjaGEnXSA9ICdDYXB0Y2hhIHZhciBpa2tlIGlkZW50aXNrJzsKJGxhbmdbJ3RpdGxlX3RpdGxlX3VzZXJfY2FwdGNoYSddID0gJ0hqJmFlbGlnO2xwZXRla3N0IGZvciBDYXB0Y2hhJzsKJGxhbmdbJ3RpdGxlX2RvbnRfc3VibWl0X3VuY2hlY2tlZCddID0gJ0RvbiYjMDM5O3Qgc3VibWl0IHZhbHVlcyBmb3IgdW5jaGVja2VkIGJveGVzJzsKJGxhbmdbJ3RpdGxlX2RvbnRfc3VibWl0X3VuY2hlY2tlZF9oZWxwJ10gPSAnQ2hlY2sgdGhpcyBpZiB5b3Ugb25seSB3YW50IGNoZWNrZWQgYm94ZXMgdG8gcmV0dXJuIHZhbHVlcy4nOwokbGFuZ1snbGlua19sYWJlbCddID0gJ0xpbmsgTGFiZWwnOwokbGFuZ1snbGlua19kZXN0aW5hdGlvbiddID0gJ0xpbmsgRGVzdGluYXRpb24gVVJMJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfc2V0J10gPSAnQ2hlY2tlZCBieSBEZWZhdWx0Pyc7CiRsYW5nWyd0aXRsZV8yNF9ob3VyJ10gPSAnVXNlIDI0LWhvdXIgY2xvY2s/JzsKJGxhbmdbJ3RpdGxlX2JlZm9yZV9ub29uJ10gPSAnQU0nOwokbGFuZ1sndGl0bGVfYWZ0ZXJfbm9vbiddID0gJ1BNJzsKJGxhbmdbJ3RpdGxlX3NtYXJ0eV9ldmFsJ10gPSAnUHJvY2VzcyBzbWFydHkgdGFncyB3aXRoaW4gZmllbGQ/JzsKJGxhbmdbJ3RpdGxlX3RleHRhcmVhX3Jvd3MnXSA9ICdSb3dzIChub3RlOiB0aGlzIG1heSBiZSBvdmVycmlkZGVuIGJ5IENTUyknOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfY29scyddID0gJ0NvbHVtbnMgKG5vdGU6IHRoaXMgbWF5IGJlIG92ZXJyaWRkZW4gYnkgQ1NTKSc7CiRsYW5nWyd0aXRsZV9mb3JtX21haW4nXSA9ICdNYWluIEZvcm0gRGV0YWlscyc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2JsYW5rJ10gPSAnRGVmYXVsdCB0byBibGFuayc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2JsYW5rX2hlbHAnXSA9ICdEZWZhdWx0IHRvIGJsYW5rICh1bmNoZWNrIHRvIGRlZmF1bHQgdG8gdG9kYXkmIzAzOTtzIGRhdGUpJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcm5hbWUnXSA9ICdEaXNwbGF5IFVzZXImIzAzOTtzIGxvZ2luIG5hbWU/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcmZpcnN0bmFtZSddID0gJ0Rpc3BsYXkgVXNlciYjMDM5O3MgZmlyc3QgbmFtZT8nOwokbGFuZ1sndGl0bGVfc2hvd191c2VybGFzdG5hbWUnXSA9ICdEaXNwbGF5IFVzZXImIzAzOTtzIGxhc3QgbmFtZT8nOwokbGFuZ1sndGl0bGVfcmVzdHJpY3RfdG9fZ3JvdXAnXSA9ICdSZXN0cmljdCB1c2VyIGxpc3QgdG8gdXNlcnMgaW4gc3BlY2lmaWVkIGdyb3VwJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRfZGF0YWJhc2VfZGF0YSddID0gJ0VuY3J5cHQgZGF0YSBzdG9yZWQgaW4gZGF0YWJhc2UnOwokbGFuZ1sndGl0bGVfY3J5cHRfY2VydCddID0gJ0NlcnRpZmljYXRlIGZvciBlbmNyeXB0aW5nIGRhdGEnOwokbGFuZ1sndGl0bGVfZW5jcnlwdGlvbl9rZXlmaWxlJ10gPSAnUGFzc3BocmFzZSBvciBwYXRoIHRvIGZpbGUgY29udGFpbmluZyBwYXNzcGhyYXNlLiAoSWYgdXNpbmcgT3BlblNTTCwgdGhpcyBpcyB0aGUgcGFzc3BocmFzZSBmb3IgdGhlIHByaXZhdGUga2V5KSc7CiRsYW5nWyd0aXRsZV9lbmNyeXB0X3NvcnRmaWVsZHMnXSA9ICdIYXNoIHNvcnQgZmllbGRzPyc7CiRsYW5nWyd0aXRsZV9wcml2YXRlX2tleSddID0gJ1ByaXZhdGUgS2V5IHRvIHVzZSBmb3IgZW5jcnlwdGluZyBkYXRhJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRfc29ydGZpZWxkc19oZWxwJ10gPSAnVGhpcyBoYXNoZXMgdGhlIHNvcnQgZmllbGRzLCBidXQgbGVhdmVzIHRoZSBmaXJzdCBmZXcgbGV0dGVycyB1bmVuY3J5cHRlZC4gQ3J5cHRvZ3JhcGhpY2FsbHksIHRoaXMgY3JlYXRlcyBhIHZ1bG5lcmFiaWxpdHksIGJ1dCBmb3IgbW9zdCB1c2VycyBpdCBpcyBhbiBhY2NlcHRhYmxlIHRyYWRlb2ZmIGJldHdlZW4gc2VjdXJpdHkgYW5kIHRoZSBhYmlsaXR5IHRvIHNvcnQgcmVjb3Jkcy4gU29ydGluZyBiZWNvbWVzIGFwcHJveGltYXRlLCBidXQgd2lsbCByZW1haW4gcHJldHR5IGdvb2QuIElmIHlvdSBkbyBub3QgdXNlIHRoaXMgb3B0aW9uLCBzb3J0IGZpZWxkcyBhcmUgc3RvcmVkIGluIHBsYWludGV4dC4nOwokbGFuZ1sndGl0bGVfZW5jcnlwdGlvbl9mdW5jdGlvbnMnXSA9ICdTdG9yYWdlIEVuY3J5cHRpb24gVW5hdmFpbGFibGUnOwokbGFuZ1sndGl0bGVfaW5zdGFsbF9jcnlwdG8nXSA9ICdQbGVhc2UgaW5zdGFsbCB0aGUgT3BlblNTTCBtb2R1bGUgb3IgbWNyeXB0IHN1cHBvcnQgaWYgeW91IHdvdWxkIGxpa2UgdG8gZW5hYmxlIGRhdGFiYXNlIGVuY3J5cHRpb24uJzsKJGxhbmdbJ3RpdGxlX2luc3RhbGxfY3VybCddID0gJ1BsZWFzZSBtYWtlIHN1cmUgeW91IGhhdmUgQ1VSTCBzdXBwb3J0IGFjdGl2ZSBpbiB5b3VyIFBIUCBpbnN0YWxsLiBTZWUgaHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9ib29rLmN1cmwucGhwJzsKJGxhbmdbJ3RpdGxlX21sZV92ZXJzaW9uJ10gPSAnUnVuIGluIE1MRSBNb2RlJzsKJGxhbmdbJ3RpdGxlX21sZV92ZXJzaW9uX2xvbmcnXSA9ICdDaGFuZ2VzL3N1cHBvcnQgZm9yIENNU01TIE11bHRpLUxhbmd1YWdlIEVkaXRpb24gZm9yay4gRG8gbm90IGNoZWNrIHRoaXMgaWYgeW91IGFyZSBub3QgcnVubmluZyB0aGUgTUxFIHZlcnNpb24uJzsKJGxhbmdbJ3RpdGxlX2Vuc3VyZV9jZXJ0X2tleV9tYXRjaCddID0gJ0Vuc3VyZSB0aGF0IHlvdSBzZWxlY3QgdGhlIHByaXZhdGUga2V5IHRoYXQgaXMgYXBwcm9wcmlhdGUgZm9yIHRoZSBjZXJ0aWZpY2F0ZSB5b3UgYXJlIHVzaW5nIGZvciBlbmNyeXB0aW9uISc7CiRsYW5nWydjaG9vc2VfY3J5cHQnXSA9ICdFbmNyeXB0aW9uIExpYnJhcnknOwokbGFuZ1sndGl0bGVfZW5jcnlwdF9kYXRhYmFzZV9sb25nJ10gPSAnQ2hlY2sgdGhpcyB0byBlbmNyeXB0IHRoZSBzdG9yZWQgZGF0YS4gVGhpcyBtYWtlcyBpdCBtb3JlIGRpZmZpY3VsdCAoYnV0IG5vdCBpbXBvc3NpYmxlKSBmb3IgaGFja2VycyB0byB2aWV3IHRoZSBpbmZvcm1hdGlvbi4nOwokbGFuZ1snY2hvb3NlX2NyeXB0X2xvbmcnXSA9ICdUaGUgb3B0aW9ucyBiZWxvdyBvbmx5IGFwcGx5IGlmIHlvdSBhcmUgdXNpbmcgdGhlIE9wZW5TU0wgRW5jcnlwdGlvbiBsaWJyYXJ5JzsKJGxhbmdbJ3RpdGxlX2NyeXB0X2xpYiddID0gJ0VuY3J5cHRpb24gTGlicmFyeSc7CiRsYW5nWydvcGVuc3NsJ10gPSAnT3BlblNTTCBMaWJyYXJ5JzsKJGxhbmdbJ21jcnlwdCddID0gJ1BIUCBtY3J5cHQgTGlicmFyeSc7CiRsYW5nWyd0aXRsZV9mZXVfYmluZGluZyddID0gJ0Zyb250ZW5kIFVzZXIgYmluZGluZyc7CiRsYW5nWyd0aXRsZV9pbnN0YWxsX2ZldSddID0gJ1BsZWFzZSBpbnN0YWxsIHRoZSBGcm9udGVuZCBVc2VyIG1vZHVsZSB0byBjb25uZWN0IGEgZm9ybSBhbmQgaXRzIGRhdGEgdG8gYSBzcGVjaWZpYyB1c2VyJzsKJGxhbmdbJ3RpdGxlX2ZldV9iaW5kX2hlbHAnXSA9ICdDaGVjayB0aGlzIHRvIGxvY2sgZnJvbnQtZW5kIGFjY2VzcyB0byB0aGlzIGZvcm0mIzAzOTtzIGRhdGEgdG8gdGhlIGxvZ2dlZC1pbiBmcm9udC1lbmQgdXNlci4nOwokbGFuZ1sndGl0bGVfZW5jcnlwdGlvbiddID0gJ0VuY3J5cHRpb24nOwokbGFuZ1sndGl0bGVfZXhwb3J0X2Zvcm1fdG9fdWR0J10gPSAnRXhwb3J0IGZvcm0gcmVmZXJlbmNlIHRvIFVEVCBhcyAkcGFyYW1zWyYjMDM5O0ZPUk0mIzAzOTtdPyAoZG8gbm90IGRvIHRoaXMgaWYgeW91IGFyZSBnb2luZyB0byBwcmludF9yKCRwYXJhbXMpICknOwokbGFuZ1sndGl0bGVfdXJsX2hlbHAnXSA9ICdFbnRpcmUgVVJMLCBpbmNsdWRpbmcgcHJvdG9jb2wgYW5kIHBhdGggKGUuZy4sIGh0dHA6Ly9teWhvc3QuY29tL2Zvcm1faGFuZGxlci5jZ2kpJzsKJGxhbmdbJ3RpdGxlX3VybCddID0gJ0Zvcm0gc3VibWlzc2lvbiBVUkwnOwokbGFuZ1sndGl0bGVfbWV0aG9kJ10gPSAnRm9ybSBtZXRob2QnOwokbGFuZ1sndGl0bGVfbWFwc190byddID0gJ01hcCBmaWVsZCAmcXVvdDslcyZxdW90OyB0byBmb3JtIHN1Ym1pc3Npb24gdmFyaWFibGUnOwokbGFuZ1sndGl0bGVfYWRkaXRpb25hbCddID0gJ0FkZGl0aW9uYWwgc3VibWlzc2lvbic7CiRsYW5nWyd0aXRsZV9hZGRpdGlvbmFsX2hlbHAnXSA9ICdBbnl0aGluZyB0byBiZSBhcHBlbmRlZCB0byB0aGUgc3VibWlzc2lvbiBwYXlsb2FkLCBpbiBVUkwtZW5jb2RlZCBmb3JtICguZS5nLCAmcXVvdDt1c2VyPXN0ZXZlK2pvYnMmYW1wO2VtcGxveWVlX251bWJlcj0xKSc7CiRsYW5nWyd0aXRsZV9pbmNsdWRlX2luX3N1Ym1pc3Npb24nXSA9ICdJbmNsdWRlIGZpZWxkIGluIFN1Ym1pc3Npb24nOwokbGFuZ1sndGl0bGVfZGF0YV9zdG9yZWRfaW5fZmJyJ10gPSAnRGF0YSB3aWxsIGJlIHN0b3JlZCBpbiBhbiBYTUwgZm9ybWF0IGluIHRoZSBbUFJFRklYXV9tb2R1bGVfZmJfZnJvbWJyb3dzZXIgZGF0YWJhc2UgdGFibGUuJzsKJGxhbmdbJ2Vycm9yX2hhc19ub19mYl9maWVsZCddID0gJ0Vycm9yISBFaXRoZXIgdGhlIGZvcm0gaGFzIG5vIGZvcm1fYnVpbGRlciBkaXNwb3NpdGlvbiwgb3IgaXQgZmFpbGVkIHRvIGluc3RhbnRpYXRlIChkdWUgdG8gbWVtb3J5IGlzc3Vlcz8pJzsKJGxhbmdbJ3Jlc3RyaWN0ZWRfdG9fZ3JvdXAnXSA9ICdPbmx5IGluIGdyb3VwICVzJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdG9fdXNlciddID0gJ0Rpc3BsYXkgdG8gdXNlcj8nOwokbGFuZ1snaGVscF9sZWF2ZWVtcHR5J10gPSAnVGhpcyBmaWVsZCBtYXkgYmUgbGVmdCBlbXB0eSc7CiRsYW5nWydoZWxwX3ZhcmlhYmxlc19mb3JfdGVtcGxhdGUnXSA9ICdWYXJpYWJsZXMgRm9yIFRlbXBsYXRlJzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVzX2Zvcl9jb21wdXRhdGlvbiddID0gJ1ZhcmlhYmxlcyBBdmFpbGFibGUnOwokbGFuZ1snaGVscF9waHBfdmFyaWFibGVfbmFtZSddID0gJ1BIUCB2YXJpYWJsZSc7CiRsYW5nWydoZWxwX3N1Ym1pc3Npb25fZGF0ZSddID0gJ0RhdG8gZm9yIGFmc2VuZGVsc2UnOwokbGFuZ1snaGVscF9zZXJ2ZXJfbmFtZSddID0gJ0RpbiBzZXJ2ZXInOwokbGFuZ1snaGVscF9zdWJfc291cmNlX2lwJ10gPSAnSVAgYWRkcmVzcyBvZiBwZXJzb24gdXNpbmcgZm9ybSc7CiRsYW5nWydoZWxwX3N1Yl91cmwnXSA9ICdVUkwgb2YgcGFnZSBjb250YWluaW5nIGZvcm0nOwokbGFuZ1snaGVscF9mYl92ZXJzaW9uJ10gPSAnRm9ybUJ1aWxkZXIgdmVyc2lvbic7CiRsYW5nWydoZWxwX3RhYiddID0gJ1RhYiBDaGFyYWN0ZXInOwokbGFuZ1snaGVscF9vdGhlcl9maWVsZHMnXSA9ICdPdGhlciBmaWVsZHMgd2lsbCBiZSBhdmFpbGFibGUgYXMgeW91IGFkZCB0aGVtIHRvIHRoZSBmb3JtLic7CiRsYW5nWydoZWxwX2FycmF5X2ZpZWxkcyddID0gJ1lldCBhbm90aGVyIHdheSBvZiBhY2Nlc3NpbmcgZmllbGQgdmFsdWVzIGlzIHZpYSAkZmllbGRuYW1lX29iaiwgJGFsaWFzX29iaiwgb3IgJGZsZF8jX29iaiwgd2hlcmUgZWFjaCBmaWVsZCBpcyBhbiBvYmplY3QgY29udGFpbmdpbmc6PGJyIC8+PHRhYmxlPg0KPHRyPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+bmFtZTwvdGQ+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz5GaWVsZCBOYW1lPC90ZD48L3RyPg0KPHRyPjx0ZD50eXBlPC90ZD48dGQ+RmllbGQgVHlwZTwvdGQ+PC90cj4NCjx0cj48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7PmlkPC90ZD48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7PkludGVybmFsIEZpZWxkIElEPC90ZD48L3RyPg0KPHRyPjx0ZD52YWx1ZTwvdGQ+PHRkPkh1bWFuLXJlYWRhYmxlIFZhbHVlPC90ZD48L3RyPg0KPHRyPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+dmFsdWVBcnJheTwvdGQ+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz5BcnJheSBvZiBmaWVsZCB2YWx1ZShzKTwvdGQ+PC90cj48L3RhYmxlPjxlbT5lLmcuPC9lbT4sIHlvdSBjb3VsZCB1c2UgJnF1b3Q7eyRmbGRfMV9vYmotPm5hbWV9ID0geyRmbGRfMV9vYmotPnZhbHVlfSc7CiRsYW5nWydoZWxwX2RhdGVfZm9ybWF0J10gPSAnU2VlIDxhIGhyZWY9Imh0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24uZGF0ZS5waHAiIHRhcmdldD1fTkVXPnRoZSBQSFAgTWFudWFsPC9hPiBmb3IgZm9ybWF0dGluZyBoZWxwLic7CiRsYW5nWydoZWxwX3ZhcmlhYmxlX25hbWUnXSA9ICdWYXJpYWJsZSc7CiRsYW5nWydoZWxwX2Zvcm1fZmllbGQnXSA9ICdGaWVsZCBSZXByZXNlbnRlZCc7CiRsYW5nWydsaW5rX2JhY2tfdG9fZm9ybSddID0gJyZsYXF1bzsgVGlsYmFnZSB0aWwgZm9ybXVsYXInOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV90ZW1wbGF0ZSddID0gJ0NyZWF0ZSBTYW1wbGUgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9odG1sX3RlbXBsYXRlJ10gPSAnQ3JlYXRlIFNhbXBsZSBIVE1MIFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaGVhZGVyX3RlbXBsYXRlJ10gPSAnQ3JlYXRlIFNhbXBsZSBIZWFkZXIgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9mb290ZXJfdGVtcGxhdGUnXSA9ICdDcmVhdGUgU2FtcGxlIEZvb3RlciBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2hlYWRlciddID0gJ0NyZWF0ZSBTYW1wbGUgSGVhZGVyJzsKJGxhbmdbJ2hlbHBfdGFiX3N5bWJvbCddID0gJ2EgdGFiIGNoYXJhY3Rlcic7CiRsYW5nWyd0aXRsZV9maWxlX3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgZm9yIG9uZSBsaW5lIG9mIG91dHB1dCBmaWxlJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfaGVhZGVyJ10gPSAnVGVtcGxhdGUgZm9yIHRoZSBoZWFkZXIgb2Ygb3V0cHV0IGZpbGUnOwokbGFuZ1sndGl0bGVfZmlsZV9mb290ZXInXSA9ICdUZW1wbGF0ZSBmb3IgdGhlIGZvb3RlciBvZiBvdXRwdXQgZmlsZSc7CiRsYW5nWyd0aXRsZV9jb25maXJtYXRpb25fdXJsJ10gPSAnVVJMIHRvIGNsaWNrIGZvciBmb3JtIGNvbmZpcm1hdGlvbic7CiRsYW5nWyd0aXRsZV92YWx1ZSddID0gJ1ZhbHVlIChzZWUgQWR2YW5jZWQgVGFiIGlmIHlvdSB1c2UgU21hcnR5IHRhZ3MpJzsKJGxhbmdbJ3RpdGxlX2RhdGVfZm9ybWF0J10gPSAnRGF0ZSBGb3JtYXQgKHN0YW5kYXJkIDxhIGhyZWY9XCJodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwXCI+UEhQIERhdGUgRm9ybWF0czwvYT4pJzsKJGxhbmdbJ3RpdGxlX3VzZV93eXNpd3lnJ10gPSAnVXNlIFdZU0lXWUcgZWRpdG9yIGZvciB0ZXh0IEFyZWE/JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9hY3Rpb25zJ10gPSAnRm9ybSBTdWJtaXNzaW9uIEJlaGF2aW9yJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9sYWJlbHMnXSA9ICdTdWJtaXNzaW9uIEJ1dHRvbiBMYWJlbHMnOwokbGFuZ1sndGl0bGVfc29ydGFibGVfZmllbGQnXSA9ICdTb3J0YWJsZSBGaWVsZCAjJXMnOwokbGFuZ1sndGl0bGVfc3VibWl0X2hlbHAnXSA9ICdUaGlzIHBhZ2UgbGV0cyB5b3UgY3VzdG9taXplIEZvcm0gU3VibWlzc2lvbi4gSXQgZG9lc25cJiMwMzk7dCBkZXRlcm1pbmUgd2hhdCB0aGUgRm9ybSBCdWlsZGVyIGRvZXMgd2l0aCB0aGUgc3VibWl0dGVkIGRhdGEuIFlvdSBjYW4gc2V0IHRoYXQgdXAgYnkgYWRkaW5nIFwmcXVvdDtEaXNwb3NpdGlvblwmcXVvdDsgZmllbGRzIHRvIHlvdXIgZm9ybS4nOwokbGFuZ1sndGl0bGVfc3RhcnRfeWVhciddID0gJ1llYXIgcmFuZ2Ugc3RhcnQnOwokbGFuZ1sndGl0bGVfZW5kX3llYXInXSA9ICdZZWFyIHJhbmdlIGVuZCc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3llYXInXSA9ICdEZWZhdWx0IFllYXInOwokbGFuZ1sndGl0bGVfZGVmYXVsdF95ZWFyX2hlbHAnXSA9ICcoU2V0IHRvIC0xIGZvciBkZWZhdWx0IHllYXIgdG8gYmUgdGhlIGN1cnJlbnQgeWVhciknOwokbGFuZ1sndGl0bGVfc3VibWl0X2FjdGlvbiddID0gJ0FmdGVyIGZvcm0gaXMgc3VibWl0dGVkJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9yZXNwb25zZSddID0gJ1Jlc3BvbnNlIHRvIGRpc3BsYXknOwokbGFuZ1sndGl0bGVfc3VibWl0X2RhdGUnXSA9ICdEYXRlIFN1Ym1pdHRlZCc7CiRsYW5nWyd0aXRsZV9hcHByb3ZhbF9kYXRlJ10gPSAnRGF0ZSBBcHByb3ZlZCAoYnkgYWRtaW4pJzsKJGxhbmdbJ3RpdGxlX3VzZXJfYXBwcm92ZWQnXSA9ICdEYXRlIEFwcHJvdmVkIChieSBzdWJtaXR0ZXIpJzsKJGxhbmdbJ2Rpc3BsYXlfdGV4dCddID0gJ1ZpcyAmcXVvdDthZnNlbmRlbHNlcyBza2FiZWxvbiZxdW90Oyc7CiRsYW5nWydyZWRpcmVjdF90b19wYWdlJ10gPSAnUmVkaXJlY3QgdG8gc2l0ZSBwYWdlJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9yZXNwb25zZV9oZWxwJ10gPSAnVGhpcyB0ZW1wbGF0ZSBpcyBmb3IgZGlzcGxheSB0byB0aGUgdXNlciBhZnRlciB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQuIFRoaXMgdGVtcGxhdGUgZG9lcyBub3QgZWZmZWN0IGVtYWlscyBnZW5lcmF0ZWQgb3Igb3RoZXIgZm9ybSBkaXNwb3NpdGlvbnMgLS0geW91IHNldCB0aG9zZSB0ZW1wbGF0ZXMgKHdoZXJlIGFwcHJvcHJpYXRlKSBpbiB0aGUgXCZxdW90O2FkdmFuY2VkXCZxdW90OyB0YWIgZm9yIHRob3NlIGRpc3Bvc2l0aW9uIGZpZWxkcy4nOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fcGFnZSddID0gJ0Rlc3RpbmF0aW9uIFBhZ2UnOwokbGFuZ1sndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzJ10gPSAnUmVxdWlyZSBGaWVsZG5hbWVzJzsKJGxhbmdbJ3RpdGxlX3JlcXVpcmVfZmllbGRuYW1lc19sb25nJ10gPSAnUmVxdWlyZSBmaWVsZHMgdG8gaGF2ZSBhIG5hbWU/JzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWVsZG5hbWVzJ10gPSAnUmVxdWlyZSBVbmlxdWUgRmllbGRuYW1lcyc7CiRsYW5nWyd0aXRsZV91bmlxdWVfZmllbGRuYW1lc19sb25nJ10gPSAnUmVxdWlyZSBmaWVsZHMgdG8gaGF2ZSB1bmlxdWUgbmFtZXM/JzsKJGxhbmdbJ3RpdGxlX3Jlb3JkZXJfZm9ybSddID0gJ1Jlb3JkZXIgRmllbGRzJzsKJGxhbmdbJ3RpdGxlX2xvYWRfdGVtcGxhdGUnXSA9ICdMb2FkIHRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2FkZF9idXR0b25fdGV4dCddID0gJ0FkZCBCdXR0b24gdGV4dCc7CiRsYW5nWyd0aXRsZV9kZWxfYnV0dG9uX3RleHQnXSA9ICdEZWxldGUgQnV0dG9uIHRleHQnOwokbGFuZ1sndGl0bGVfZmllbGRfaGVscHRleHQnXSA9ICdIZWxwLXRleHQgdG8gZGlzcGxheSB3aXRoIHRoaXMgZmllbGQnOwokbGFuZ1sndGl0bGVfc3RyaW5nX29yX251bWJlcl9ldmFsJ10gPSAnSW50ZXJwcmV0IHZhcmlhYmxlcyBhcyBiZWluZyBudW1iZXJzIG9yIHN0cmluZ3MnOwokbGFuZ1sndGl0bGVfb3JkZXInXSA9ICdJbnRlcnByZXRhdGlvbiBPcmRlcic7CiRsYW5nWyd0aXRsZV9vcmRlcl9oZWxwJ10gPSAnSWYgbW9yZSB0aGFuIG9uZSBDb21wdXRlZCBGaWVsZCBleGlzdHMsIHRoZXkgd2lsbCBiZSBjb21wdXRlZCBmcm9tIGxvd2VzdCBvcmRlciBudW1iZXIgdG8gaGlnaGVzdCBvcmRlciBudW1iZXInOwokbGFuZ1sndGl0bGVfY29tcHV0ZV92YWx1ZSddID0gJ1ZhbHVlIHRvIGNvbXB1dGUnOwokbGFuZ1sndGl0bGVfc3RyaW5nJ10gPSAnU3RyZW5nJzsKJGxhbmdbJ3RpdGxlX251bWVyaWMnXSA9ICdOdW1lcmlzayc7CiRsYW5nWyd0aXRsZV9pbmxpbmVfZm9ybSddID0gJ0Rpc3BsYXkgZm9ybSBpbmxpbmU/JzsKJGxhbmdbJ3RpdGxlX2lubGluZV9mb3JtX2hlbHAnXSA9ICdJbmxpbmUgbWVhbnMgYW55IGZvcm0gZm9sbG93dXAgcmVwbGFjZXMgdGhlIHtjbXNfbW9kdWxlfSB0YWcsIG5vbi1pbmxpbmUgcmVwbGFjZXMgdGhlIHtjb250ZW50fSB0YWcuJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2RlZmF1bHRfdmFsdWUnXSA9ICdEZWZhdWx0IHZhbHVlIGZvciBmaWVsZCc7CiRsYW5nWyd0aXRsZV9jbGVhcl9kZWZhdWx0J10gPSAnQ2xlYXIgZGVmYXVsdCBvbiBjbGljaz8nOwokbGFuZ1sndGl0bGVfY2xlYXJfZGVmYXVsdF9oZWxwJ10gPSAnQ2hlY2sgdGhpcyB0byBjbGVhciB0aGUgZGVmYXVsdCB2YWx1ZSB3aGVuIHRoZSB1c2VyIGNsaWNrcyB0aGlzIGZpZWxkLiBTaW5jZSB0aGlzIHVzZXMgYSBqYXZhc2NyaXB0IHN0cmluZyBjb21wYXJlLCBpdCB3aWxsIGZhaWwgaWYgeW91IHB1dCBzaW5nbGUgcXVvdGVzIGluIHlvdXIgZGVmYXVsdCB0ZXh0LiBPdGhlciB1bi1qYXZhc2NyaXB0LWZyaWVuZGx5IGNoYXJhY3RlcnMgbWF5IGFsc28gY2F1c2UgaXQgdG8gZmFpbC4nOwokbGFuZ1sndGl0bGVfcmVtb3ZlX2ZpbGVfZnJvbV9zZXJ2ZXInXSA9ICdEZWxldGUgdXBsb2FkZWQgZmlsZSBmcm9tIHNlcnZlciBhZnRlciBwcm9jZXNzaW5nIChlbWFpbCBkaXNwb3NpdGlvbnMpJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2phdmFzY3JpcHQnXSA9ICdKYXZhc2NyaXB0IGZvciBmaWVsZCc7CiRsYW5nWyd0aXRsZV9maWVsZF9qYXZhc2NyaXB0X2xvbmcnXSA9ICdNYWtlIHRoaXMgdGhlIGNvbXBsZXRlIEphdmFzY3JpcHQgY2FsbCwgaW5jbHVkaW5nIHRoZSBldmVudCB5b3Ugd2FudCB0byB0cmFwLCBlLmcuLCBvbmNsaWNrPSZxdW90O3lvdXJmbigpJnF1b3Q7JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9qYXZhc2NyaXB0J10gPSAnRm9ybSBTdWJtaXNzaW9uIEphdmFzY3JpcHQnOwokbGFuZ1sndGl0bGVfc3VibWl0X2phdmFzY3JpcHRfbG9uZyddID0gJ01ha2UgdGhpcyB0aGUgY29tcGxldGUgSmF2YXNjcmlwdCBjYWxsLCBpbmNsdWRpbmcgdGhlIGV2ZW50IHlvdSB3YW50IHRvIHRyYXAsIGUuZy4sIG9uY2xpY2s9JnF1b3Q7eW91cmZuKCkmcXVvdDsuPGJyIC8+VGhpcyB3aWxsIHByb2JhYmx5IG5vdCB3b3JrIHdlbGwgaWYgeW91IHVzZSB0aGUgJnF1b3Q7c2FmZXR5IHNjcmlwdCZxdW90OyBvcHRpb24gYWJvdmUuJzsKJGxhbmdbJ2VtYWlsX2Zyb21fYWRkcl9oZWxwJ10gPSAnRG8gbm90IGp1c3QgcGljayBhIHJhbmRvbSBhZGRyZXNzIGhlcmUgLS0gbWFueSBJU1BzIHdpbGw8YnIgLz5ub3QgZGVsaXZlciB0aGUgbWFpbCBpZiB5b3UgYXJlIHVzaW5nIGEgZGlmZmVyZW50IGRvbWFpbiBuYW1lIHRoYW4geW91ciBhY3R1YWw8YnIgLz5ob3N0IG5hbWUgKGkuZS4sIHVzZSBzb21ldGhpbmcgbGlrZSBuYW1lQCVzKSc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYWR2YW5jZWQnXSA9ICdCcnVnIGZvciBmbGVyZSBmZWx0dHlwZXI/ICc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYmFzaWMnXSA9ICdGb3IgbWFuZ2UgZm9ydmlycmVuZGUgZmVsdHR5cGVyPyc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYWR2YW5jZWRfbGluayddID0gJ1NraWZ0IHRpbCBhdmFuY2VyZXQgdmlzbmluZyc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYmFzaWNfbGluayddID0gJ1NraWZ0IHRpbCBzaW1wbGUgdmlzbmluZyc7CiRsYW5nWyd0aXRsZV9maWxlX3Jvb3QnXSA9ICdEaXJlY3RvcnkgdG8gc2F2ZSBmaWxlIGluJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcm9vdF9oZWxwJ10gPSAnVGhpcyBuZWVkcyB0byBiZSBhIGRpcmVjdG9yeSB0aGF0IHlvdXIgd2ViIHNlcnZlciBoYXMgcGVybWlzc2lvbnMgdG8gd3JpdGUgaW4uPGJyIC8+Q2htb2QgaXQgNzc3IGlmIHlvdSBoYXZlIHByb2JsZW1zL2RvdWJ0cy48YnIgLz5BbHNvLCBjaGVjayB0byBzZWUgdGhhdCB5b3UgZG8gbm90IGhhdmUgUEhQIGRpcmVjdG9yeSByZXN0cmljdGlvbnMuJzsKJGxhbmdbJ3RpdGxlX25ld2xpbmVfcmVwbGFjZW1lbnQnXSA9ICdOZXdsaW5lL0NhcnJpYWdlIFJldHVybiByZXBsYWNlbWVudCBjaGFyYWN0ZXInOwokbGFuZ1sndGl0bGVfbmV3bGluZV9yZXBsYWNlbWVudF9oZWxwJ10gPSAnTGVhdmUgYmxhbmsgdG8gYWxsb3cgbmV3bGluZXMgYW5kIGNhcnJpYWdlIHJldHVybnMgaW4gb3V0cHV0JzsKJGxhbmdbJ3RpdGxlX3NlbmRfdXNlcmNvcHknXSA9ICdTZW5kIFVzZXIgYSBDb3B5IG9mIFN1Ym1pc3Npb24/JzsKJGxhbmdbJ3RpdGxlX3NlbmRfdXNlcmNvcHlfbGFiZWwnXSA9ICdMYWJlbCBmb3IgQ2hlY2tib3ggKGlmIHVzZXIgY2hvaWNlKSc7CiRsYW5nWyd0aXRsZV9zZW5kX21lX2FfY29weSddID0gJ1NlbmQgbWUgYSBjb3B5IG9mIGZvcm0nOwokbGFuZ1sndGl0bGVfYWxsb3dfc3ViamVjdF9vdmVycmlkZSddID0gJ0FsbG93IHN1YmplY3QgdG8gYmUgb3ZlcnJpZGRlbj8nOwokbGFuZ1sndGl0bGVfYWxsb3dfc3ViamVjdF9vdmVycmlkZV9sb25nJ10gPSAnQWxsb3cgJiMwMzk7RW1haWwgJnF1b3Q7U3ViamVjdCZxdW90OyBGaWVsZHMmIzAzOTsgdG8gb3ZlcnJpZGUgdGhlIHN1YmplY3Qgc3BlY2lmaWVkIGluIHRoZSBwdWxsZG93bi4nOwokbGFuZ1sndGl0bGVfZGlzcGxheV9sZW5ndGgnXSA9ICdEaXNwbGF5IGxlbmd0aCc7CiRsYW5nWyd0aXRsZV9taW5pbXVtX2xlbmd0aCddID0gJ01pbmltdW0gcmVzcG9uc2UgbGVuZ3RoJzsKJGxhbmdbJ3RpdGxlX2hpZGUnXSA9ICdIaWRlIGlucHV0JzsKJGxhbmdbJ3RpdGxlX2hpZGVfaGVscCddID0gJ1Nob3cgc3ltYm9scyByYXRoZXIgcGxhaW4gdGV4dCB3aGVuIHVzZXIgZW50ZXJzIHBhc3N3b3JkPyc7CiRsYW5nWydwYXNzd29yZF9kb2VzX25vdF9tYXRjaCddID0gJ1Bhc3N3b3JkIGRvZXMgbm90IG1hdGNoICVzJzsKJGxhbmdbJ2JhY2tfdG9wJ10gPSAnQmFjayB0byBGb3JtQnVpbGRlciBNYWluIFBhZ2UnOwokbGFuZ1sndGl0bGVfaGVhZGVyc190b19tb2RpZnknXSA9ICdXaGljaCBlbWFpbCBoZWFkZXJzIHNob3VsZCB0aGlzIGlucHV0IHBvcHVsYXRlPyc7CiRsYW5nWyd0aXRsZV9ibGFua19pbnZhbGlkJ10gPSAnRG8gbm90IGFjY2VwdCBibGFuayBzcGFjZSBhcyB2YWxpZCByZXNwb25zZSc7CiRsYW5nWyd0aXRsZV9ibGFua19pbnZhbGlkX2xvbmcnXSA9ICdJZiBhIGZpZWxkIGlzIHJlcXVpcmVkLCBjaGVja2luZyB0aGlzIHdpbGwgcmVxdWlyZSB0aGF0IHBlb3BsZSBwdXQgaW4gc29tZSBhbHBoYW51bWVyaWMgY2hhcmFjdGVycywgbm90IGp1c3Qgc3BhY2VzJzsKJGxhbmdbJ2Vycm9yX0NvbXBhbnlEaXJlY3RvcnlfbW9kdWxlX25vdF9hdmFpbGFibGUnXSA9ICdDb21wYW55IERpcmVjdG9yeSBtb2R1bGUgaXMgbm90IGF2YWlsYWJsZSEnOwokbGFuZ1snb3B0aW9uX25ldmVyJ10gPSAnQWxkcmlnJzsKJGxhbmdbJ29wdGlvbl91c2VyX2Nob2ljZSddID0gJ0dpdmUgdXNlciBhIGNob2ljZSAoY2hlY2tib3gpJzsKJGxhbmdbJ29wdGlvbl9hbHdheXMnXSA9ICdBbHRpZCc7CiRsYW5nWydvcHRpb25fZnJvbSddID0gJyZxdW90O0Zyb20mcXVvdDsgZW1haWwgYWRkcmVzcyc7CiRsYW5nWydvcHRpb25fcmVwbHknXSA9ICcmcXVvdDtSZXBseS1UbyZxdW90OyBlbWFpbCBhZGRyZXNzJzsKJGxhbmdbJ29wdGlvbl9ib3RoJ10gPSAnQm90aCAmcXVvdDtGcm9tJnF1b3Q7IGFuZCAmcXVvdDtSZXBseS1UbyZxdW90OyBlbWFpbCBhZGRyZXNzZXMnOwokbGFuZ1snb3B0aW9uX2Ryb3Bkb3duJ10gPSAnRHJvcGRvd24nOwokbGFuZ1snb3B0aW9uX3NlbGVjdGxpc3Rfc2luZ2xlJ10gPSAnU2VsZWN0IExpc3QgKHNpbmdsZSknOwokbGFuZ1snb3B0aW9uX3NlbGVjdGxpc3RfbXVsdGlwbGUnXSA9ICdTZWxlY3QgTGlzdCAobXVsdGlwbGUpJzsKJGxhbmdbJ29wdGlvbl9yYWRpb2dyb3VwJ10gPSAnUmFkaW8gR3JvdXAnOwokbGFuZ1sndGl0bGVfY29tcGFueV9maWVsZF9ub3RlJ10gPSAnTm90ZTogT3V0cHV0IHdpbGwgYmUgaW4gdGhlIGZvcm0gb2Y8YnIvPiZxdW90O2NvbXBhbnkgbmFtZSZxdW90Oz0+JnF1b3Q7dmFsdWUmcXVvdDsnOwokbGFuZ1sndGl0bGVfcGlja19jYXRlZ29yaWVzJ10gPSAnUGljayBhIGNhdGVnb3J5IChtdWx0aXBsZSknOwokbGFuZ1sndGl0bGVfcGlja19maWVsZGRlZiddID0gJ1B1bGwgYSBmaWVsZCBEZWZpbml0aW9uJiMwMzk7cyB2YWx1ZSAoc2luZ2xlKSA8ZW0+b3B0aW9uYWw8L2VtPic7CiRsYW5nWyd0aXRsZV9jaG9vc2VfdXNlcl9pbnB1dCddID0gJ0Nob29zZSBVc2VyIGlucHV0JzsKJGxhbmdbJ3RpdGxlX3NlZV9hbHNvX3VkdCddID0gJyhBbHNvIHRha2UgYSBsb29rIGF0IHRoZSBGb3JtIFN1Ym1pc3Npb24gdGFiIGlmIHlvdSB3YW50IHRvIHNldCBhIFVEVCBmb3IgZm9ybSB2YWxpZGF0aW9uKSc7CiRsYW5nWyd0aXRsZV95ZWFyX2VuZF9tZXNzYWdlJ10gPSAnRW5kIHllYXInOwokbGFuZ1snZXJyb3JfdXNlcnRhZ19kaXNwb3NpdGlvbiddID0gJ1VzZXIgZGVmaW5lZCB0YWcgcmV0dXJuZWQgYW4gZXJyb3InOwokbGFuZ1snZXJyb3JfdXNlcnRhZyddID0gJ1VzZXIgZGVmaW5lZCB0YWcgJXMgcmV0dXJuZWQgYW4gZXJyb3IuJzsKJGxhbmdbJ2Vycm9yX2NhdGFsb2dlcl9tb2R1bGVfbm90X2F2YWlsYWJsZSddID0gJzxzdHJvbmc+Q2F0YWxvZ2VyIG1vZHVsZSBkb2VzIG5vdCBzZWVtIHRvIGJlIGluc3RhbGxlZC9hY3RpdmUuPC9zdHJvbmc+JzsKJGxhbmdbJ3dhcm5pbmcnXSA9ICdBZHZhcnNlbCc7CiRsYW5nWydkZWZhdWx0X3RlbXBsYXRlJ10gPSAnRGVmYXVsdCBUZW1wbGF0ZSc7CiRsYW5nWyd0YWJsZV9sZWZ0X3RlbXBsYXRlJ10gPSAnVGFibGUgVGVtcGxhdGUsIFRpdGxlcyBvbiBsZWZ0JzsKJGxhbmdbJ3RhYmxlX3RvcF90ZW1wbGF0ZSddID0gJ1RhYmxlIFRlbXBsYXRlLCBUaXRsZSBvbiB0b3AnOwokbGFuZ1snZm9ybV90ZW1wbGF0ZV9uYW1lJ10gPSAnVGVtcGxhdGUgZnJvbSAlcyc7CiRsYW5nWyd0ZW1wbGF0ZV9hcmVfeW91X3N1cmUnXSA9ICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gb3ZlcndyaXRlIHlvdXIgdGVtcGxhdGUgd2l0aCB0aGUgc2VsZWN0ZWQgdGVtcGxhdGU/IChFdmVuIGlmIHlvdSBzYXkgT0ssIHlvdSB3aWxsIHN0aWxsIG5lZWQgdG8gc2F2ZSB0aGUgY2hhbmdlKSc7CiRsYW5nWyd0aXRsZV9iYWRfZnVuY3Rpb24nXSA9ICdFcnJvciB3aGVuIGNvbXB1dGluZyAmcXVvdDslcyZxdW90Oy4nOwokbGFuZ1snbm9fcmVmZXJyZXJfaW5mbyddID0gJ05vIEhUVFBfUkVGRVJFUiBpbmZvIGF2YWlsYWJsZSAocHJvYmFibHkgZHVlIHRvIHVzZSBvZiBVc2VyIEVtYWlsIFZhbGlkYXRpb24pJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcGFyYW1fZXJyb3InXSA9ICdWYWxpZGF0aW9uIFBhcmFtZXRlciBFcnJvci4gUGxlYXNlIG1ha2Ugc3VyZSB5b3UgY29weSB0aGUgVVJMIGZyb20geW91ciBlbWFpbCBjb3JyZWN0bHkhJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVzcG9uc2VfZXJyb3InXSA9ICdWYWxpZGF0aW9uIFJlcHNvbnNlIEVycm9yLiBQbGVhc2UgbWFrZSBzdXJlIHlvdSBjb3B5IHRoZSBVUkwgZnJvbSB5b3VyIGVtYWlsIGNvcnJlY3RseSEnOwokbGFuZ1sndmFsaWRhdGlvbl9ub19maWVsZF9lcnJvciddID0gJ1ZhbGlkYXRpb24gUmVwc29uc2UgRXJyb3IuIE5vIGVtYWlsIHZhbGlkYXRpb24gZmllbGQgaW4gdGhpcyBmb3JtISc7CiRsYW5nWyd1cGdyYWRlMDN0bzA0J10gPSAnRm9ybSBUZW1wbGF0ZSB3YXMgdXBkYXRlZCBhdXRvbWF0aWNhbGx5IGFzIHBhcnQgb2YgdGhlIHZlcnNpb24gMC4zIHRvIHZlcnNpb24gMC40IHVwZ3JhZGUuIFlvdSBtYXkgbmVlZCB0byBtYWtlIHNvbWUgZml4ZXMuIElmIHlvdSYjMDM5O3JlIHVzaW5nIHRoZSBkZWZhdWx0IGZvcm0sIHNpbXBseSByZXBsYWNlIHRoaXMgdGVtcGxhdGUgd2l0aCAmcXVvdDtkZWZhdWx0JnF1b3Q7IHVzaW5nIHRoZSBwdWxsZG93biBhYm92ZS4nOwokbGFuZ1snYWRtaW5kZXNjJ10gPSAnQWRkLCBlZGl0IGFuZCBtYW5hZ2UgaW50ZXJhY3RpdmUgRm9ybXMnOwokbGFuZ1snb3BlcmF0b3JzX2hlbHAnXSA9ICdJZiB5b3UgdXNlIFN0cmluZyBldmFsdWF0aW9uLCB0aGUgb25seSBvcGVyYXRpb24gYXZhaWxhYmxlIGlzIGNvbmNhdGVuYXRpb24gKCspLCB3aGlsZSBpZiB5b3UgdXNlIE51bWJlciBldmFsdWF0aW9uIHlvdSBoYXZlIGJhc2ljLCB2ZXJ5IHNpbXBsZSBtYXRoICgsICssIC0sICosIC8sICkuJzsKJGxhbmdbJ2hlbHBfbW9kdWxlX2ludGVyZmFjZSddID0gJ1VzaW5nIE1vZHVsZSBJbnRlcmZhY2UnOwokbGFuZ1snaGVscF9tb2R1bGVfaW50ZXJmYWNlX2xvbmcnXSA9ICc8Yj5UaGlzIGZpZWxkIGlzIHVzZWQgYXMgYSBnYXRld2F5IHRvIG90aGVyIG1vZHVsZXMhPC9iPg0KVXNlIGl0IGJ5IGNyZWF0aW5nIHlvdXIgZm9ybSBlbGVtZW50cyBpbiB0aGUgdGVtcGxhdGVzIG9mIHRoZSBvdGhlciBtb2R1bGUocykgeW91IHdpc2ggdG8gaW5jb3Jwb3JhdGUsIGFuZCB1c2luZyB0aGUgPHN0cm9uZz57JEZCaWR9PC9zdHJvbmc+IHRvIHRpZSBpdCBiYWNrIHRvIEZvcm1CdWlsZGVyLiBGb3IgZXhhbXBsZSwgdG8gaW5jbHVkZSBmb3JtIG9wdGlvbnMgYmFzZWQgb24gdGhlIFByb2R1Y3RzIG1vZHVsZSwgY3JlYXRlIHRoZSBmb2xsb3dpbmcgdGVtcGxhdGUgaW4gUHJvZHVjdHM6PGJyLz4NCjxwcmU+DQp7Zm9yZWFjaCBmcm9tPSRpdGVtcyBpdGVtPWVudHJ5fQ0KCXthc3NpZ24gdmFyPU1EYXRhIHZhbHVlPSYjMDM5OyYjMDM5O30NCgl7YXNzaWduIHZhcj1DZCB2YWx1ZT0mIzAzOTsmIzAzOTt9DQoJCXtmb3JlYWNoIGZyb209JEZCdmFsdWUgaXRlbT1NRGF0YX0NCgkJCXthc3NpZ24gdmFyPU1EYXRhIHZhbHVlPSYjMDM5Ozo6JiMwMzk7fGV4cGxvZGU6JE1EYXRhfQ0KCQkJe2lmICRNRGF0YVsxXT09JGVudHJ5LT5pZH0NCgkJCQl7YXNzaWduIHZhcj1DZCB2YWx1ZT0mIzAzOTsgY2hlY2tlZD0mcXVvdDtjaGVja2VkJnF1b3Q7JiMwMzk7fQ0KCQkJey9pZn0NCgkJey9mb3JlYWNofQ0KCTxkaXYgY2xhc3M9JnF1b3Q7UHJvZHVjdERpcmVjdG9yeUl0ZW0mcXVvdDs+DQoJCTxpbnB1dCB0eXBlPSZxdW90O2NoZWNrYm94JnF1b3Q7IHZhbHVlPSZxdW90O3skZW50cnktPnByaWNlfTo6eyRlbnRyeS0+aWR9JnF1b3Q7IG5hbWU9JnF1b3Q7eyRGQmlkfVtdJnF1b3Q7IHskQ2R9IC8+eyRlbnRyeS0+cHJvZHVjdF9uYW1lfSAoeyRlbnRyeS0+d2VpZ2h0fXskd2VpZ2h0X3VuaXRzfSkgJnBvdW5kO3skZW50cnktPnByaWNlfSAgICANCgk8L2Rpdj4NCnsvZm9yZWFjaH0NCjwvcHJlPg0KPGJyLz4NCndoZXJlIGluIHRoZSBpbnB1dCBiZWxvdyB5b3UgcHV0IHNvbWV0aGluZyBsaWtlIDxzdHJvbmc+e1Byb2R1Y3RzIGNhdGVnb3J5PSZxdW90O2NhdCZxdW90OyBzdW1tYXJ5dGVtcGxhdGU9JnF1b3Q7WW91cl9GQl90ZW1wbGF0ZSZxdW90O308L3N0cm9uZz4nOwokbGFuZ1sndGl0bGVfYWRkX3RhZyddID0gJ0FkZCB5b3VyIHRhZyc7CiRsYW5nWydkYXRlX2phbnVhcnknXSA9ICdKYW51YXInOwokbGFuZ1snZGF0ZV9mZWJydWFyeSddID0gJ0ZlYnJ1YXInOwokbGFuZ1snZGF0ZV9tYXJjaCddID0gJ01hcnRzJzsKJGxhbmdbJ2RhdGVfYXByaWwnXSA9ICdBcHJpbCc7CiRsYW5nWydkYXRlX21heSddID0gJ01haic7CiRsYW5nWydkYXRlX2p1bmUnXSA9ICdKdW5pJzsKJGxhbmdbJ2RhdGVfanVseSddID0gJ0p1bGknOwokbGFuZ1snZGF0ZV9hdWd1c3QnXSA9ICdBdWd1c3QnOwokbGFuZ1snZGF0ZV9zZXB0ZW1iZXInXSA9ICdTZXB0ZW1iZXInOwokbGFuZ1snZGF0ZV9vY3RvYmVyJ10gPSAnT2t0b2Jlcic7CiRsYW5nWydkYXRlX25vdmVtYmVyJ10gPSAnTm92ZW1iZXInOwokbGFuZ1snZGF0ZV9kZWNlbWJlciddID0gJ0RlY2VtYmVyJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3InXSA9ICdTb3JyeSEgVGhlcmUgd2FzIGFuIGVycm9yIGhhbmRsaW5nIHlvdXIgZm9ybSBzdWJtaXNzaW9uLic7CiRsYW5nWydzdWJtaXRfZXJyb3InXSA9ICdGb3JtQnVpbGRlciBzdWJtaXQgZXJyb3I6ICVzJzsKJGxhbmdbJ3VwbG9hZHNfZXJyb3InXSA9ICdFcnJvciBjb21taXR0aW5nIGZpbGUgdG8gdGhlIHVwbG9hZHMgbW9kdWxlOiAlcyc7CiRsYW5nWydub3VwbG9hZHNfZXJyb3InXSA9ICdDb3VsZCBub3QgZmluZCB0aGUgdXBsb2FkcyBtb2R1bGUnOwokbGFuZ1sndXBsb2FkX2F0dGFjaF9lcnJvciddID0gJ1VwbG9hZC9BdHRhY2htZW50IGVycm9yIG9uIGZpbGUgJXMgKHRtcF9uYW1lOiAlcywgb2YgdHlwZSAlcyknOwokbGFuZ1snc3VibWlzc2lvbl9lcnJvcl9maWxlX2xvY2snXSA9ICdFcnJvci4gVW5hYmxlIHRvIG9idGFpbiBsb2NrIGZvciBmaWxlLic7CiRsYW5nWyd1bmNoZWNrZWRfYnlfZGVmYXVsdCddID0gJ0RlZmF1bHQ6IHVuY2hlY2tlZCc7CiRsYW5nWydjaGVja2VkX2J5X2RlZmF1bHQnXSA9ICdEZWZhdWx0OiBjaGVja2VkJzsKJGxhbmdbJ2VtYWlsX2RlZmF1bHRfdGVtcGxhdGUnXSA9ICdGb3JtQnVpbGRlciBBZnNlbmRlbHNlJzsKJGxhbmdbJ2VtYWlsX3RlbXBsYXRlX25vdF9zZXQnXSA9ICc8YnIvPkVtYWlsIFRlbXBsYXRlIG5vdCB5ZXQgc2V0ISc7CiRsYW5nWydtaXNzaW5nX2Ntc19tYWlsZXInXSA9ICdGb3JtQnVpbGRlcjogQ2Fubm90IGZpbmQgcmVxdWlyZWQgbW9kdWxlIENNU01haWxlciEnOwokbGFuZ1sndXNlcl9hcHByb3ZlZF9zdWJtaXNzaW9uJ10gPSAnVXNlciBhcHByb3ZlZCBzdWJtaXNzaW9uICVzIGZyb20gJXMnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdCddID0gJ0V2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdEVycm9yJ10gPSAnRXZlbnQgdHJpZ2dlcmVkIGlmIHRoZXJlIGlzIGFuIGVycm9yIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZCc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtRGlzcGxheSddID0gJ0V2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBkaXNwbGF5ZWQnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdCddID0gJzxwPkV2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQuPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIFRoZSBmb3JtIG5hbWUgKHN0cmluZyk8L2xpPg0KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBUaGUgaW50ZXJuYWwgZm9ybSBpZCAoaW50KTwvbGk+DQo8L3VsPiAnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdEVycm9yJ10gPSAnPHA+RXZlbnQgdHJpZ2dlcmVkIGlmIHRoZXJlIGlzIGFuIGVycm9yIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZDwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBUaGUgZm9ybSBuYW1lIChzdHJpbmcpPC9saT4NCjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gVGhlIGludGVybmFsIGZvcm0gaWQgKGludCk8L2xpPg0KPGxpPjxlbT5lcnJvcjwvZW0+IC0gQSBsaXN0IG9mIGFsbCBrbm93biBlcnJvcnMgKHN0cmluZyk8L2xpPg0KPC91bD4gJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1EaXNwbGF5J10gPSAnPHA+RXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIGRpc3BsYXllZDwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBUaGUgZm9ybSBuYW1lIChzdHJpbmcpPC9saT4NCjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gVGhlIGludGVybmFsIGZvcm0gaWQgKGludCk8L2xpPg0KPC91bD4gJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19yZXNwb25zZV9pZCddID0gJ1Jlc3BvbnNlIElELiBVc2VkIGJ5IEZvcm1Ccm93c2VyJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19wYXNzZWRfZnJvbV90YWcnXSA9ICdEZWZhdWx0IGZpZWxkIHZhbHVlczsgc2VlIG1vZHVsZSBoZWxwJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19maWVsZF9pZCddID0gJ0ZpZWxkIElEIGZvciBpbnRlcm5hbCBvcGVyYXRpb25zJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19mb3JtX25hbWUnXSA9ICdGb3JtIE5hbWUnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2Zvcm1faWQnXSA9ICdGb3JtIElEIGZvciBpbnRlcm5hbCBvcGVyYXRpb25zJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19nZW5lcmFsJ10gPSAnR2VuZXJhbCBwYXJhbWV0ZXJzIGZvciBpbnRlcm5hbCBvcGVyYXRpb25zJzsKJGxhbmdbJ3RlbXBsYXRlX3ZhcmlhYmxlX2hlbHAnXSA9ICc8aDM+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+DQonOwokbGFuZ1sncG9zdF9pbnN0YWxsJ10gPSAnPHA+TWFrZSBzdXJlIHRvIHNldCB0aGUgXCZxdW90O01vZGlmeSBGb3Jtc1wmcXVvdDsgcGVybWlzc2lvbnMNCm9uIHVzZXJzIHdobyB3aWxsIGJlIGFkbWluaXN0ZXJpbmcgZmVlZGJhY2sgZm9ybXMuIEFsc28sIGlmIHlvdVwmIzAzOTtsbCBiZSBlbWFpbGluZyBmb3JtDQpyZXN1bHRzLCBiZSBzdXJlIHRvIHVwZGF0ZSB0aGUgQ29uZmlndXJhdGlvbiBhcHByb3ByaWF0ZWx5LjwvcD4NCjxwPlBsZWFzZSBiZSBhd2FyZSB0aGF0IGEgZmVlZGJhY2sgZm9ybSBzaG91bGQgbm90IGJlIGFjdGl2ZSAoZS5nLiwgdXNhYmxlIGJ5IHRoZSBwdWJsaWMpIHdoaWxlDQp5b3UgYXJlIHN0aWxsIGVkaXRpbmcgdGhlIGZvcm0uIFlvdSBzaG91bGQgY3JlYXRlIHRoZSBmb3JtLCBhbmQgcGxhY2UgdGhlIHRhZyBpbnRvIGFuIGFjdGl2ZQ0KY29udGVudCBwYWdlIG9ubHkgd2hlbiB5b3UgaGF2ZSBmaW5pc2hlZCBlZGl0aW5nLiBPdGhlcndpc2UsIGVycm9uZW91cyByZXN1bHRzIGNvdWxkIGJlIHJldHVybmVkLjwvcD4NCjxwPkFkZGl0aW9uYWxseSwgdGhpcyB2ZXJzaW9uIGRvZXMgbm90IHN1cHBvcnQgcGFyYWxsZWwgZWRpdGluZyBvZiBmb3Jtcy4gUGxlYXNlIHRha2UgY2FyZSB0aGF0DQpvbmx5IG9uZSBhZG1pbiBpcyBlZGl0aW5nIGEgZ2l2ZW4gZm9ybSBhdCBhIGdpdmVuIHRpbWUuPC9wPic7CiRsYW5nWydoZWxwJ10gPSAnaDM+V2hhdCBEb2VzIFRoaXMgRG8/PC9oMz4NCjxwPlRoZSBGb3JtIEJ1aWxkZXIgTW9kdWxlIGFsbG93cyB5b3UgdG8gY3JlYXRlIGZlZWRiYWNrIGZvcm1zIChpbiBmYWN0LCBpdFwmIzAzOTtzIGEgcmVwbGFjZW1lbnQgb2YgdGhlIG9yaWdpbmFsIEZlZWRiYWNrIEZvcm0gbW9kdWxlKSwgd2l0aCB0aGUgYWRkZWQgcG93ZXIgb2YgZGF0YWJhc2Ugc3RvcmFnZS4gV2l0aCBpdHMgY29tcGFuaW9uIG1vZHVsZSBGb3JtIEJyb3dzZXIsIHlvdSBjYW4gdXNlIGl0IHRvIGNyZWF0ZSBzaW1wbGUgZGF0YWJhc2UgYXBwbGljYXRpb25zLjwvcD4NCjxwPlRoZSBmb3JtcyBjcmVhdGVkIHVzaW5nIHRoZSBGb3JtIEJ1aWxkZXIgbWF5IGJlIGluc2VydGVkDQppbnRvIHRlbXBsYXRlcyBhbmQvb3IgY29udGVudCBwYWdlcy4gRm9ybXMgbWF5IGNvbnRhaW4gbWFueSBraW5kcyBvZiBpbnB1dHMsIGFuZCBtYXkgaGF2ZQ0KdmFsaWRhdGlvbiBhcHBsaWVkIHRvIHRoZXNlIGlucHV0cy4gVGhlIHJlc3VsdHMgb2YgdGhlc2UgZm9ybXMgbWF5IGJlIGhhbmRsZWQgaW4gYSB2YXJpZXR5IG9mIHdheXMuPC9wPg0KDQo8aDM+SG93IERvIEkgVXNlIGl0PzwvaDM+DQo8UD5JbnN0YWxsIGl0LCBhbmQgcG9rZSBhcm91bmQgdGhlIG1lbnVzLiBQbGF5IHdpdGggaXQuIFRyeSBjcmVhdGluZyBmb3JtcywgYW5kIGFkZGluZyB0aGVtIHRvIHlvdXIgY29udGVudC4NCklmIHlvdSBnZXQgc3R1Y2ssIGNoYXQgd2l0aCBtZSBvbiB0aGUgI2NtcyBJUkMgY2hhbm5lbCwgcG9zdCB0byB0aGUgZm9ydW0sIHNlbmQgbWUgZW1haWwsIG9yLCBpZiB5b3VcJiMwMzk7cmUNCnJlYWxseSBkZXNwZXJhdGUsIHJlYWQgdGhlIHJlc3Qgb2YgdGhpcyBwYWdlLjwvUD4NCg0KPGgzPkhvdyBEbyBJIENyZWF0ZSBhIEZvcm08L2gzPg0KPHA+SW4gdGhlIENNUyBBZG1pbiBNZW51LCB5b3Ugc2hvdWxkIGdldCBhIG5ldyBtZW51IGl0ZW0gY2FsbGVkIEZvcm1CdWlsZGVyLiBDbGljayBvbiB0aGlzLiBPbiB0aGUgcGFnZQ0KdGhhdCBnZXRzIHNob3duLCB0aGVyZSBhcmUgb3B0aW9ucyAoYXQgdGhlIGJvdHRvbSBvZiB0aGUgbGlzdCBvZiBGb3JtcykgdG8gQWRkIGEgTmV3IEZvcm0gb3IgTW9kaWZ5DQpDb25maWd1cmF0aW9uLjwvcD4NCg0KPGgzPkFkZGluZyBhIEZvcm0gdG8gYSBQYWdlPC9oMz4NCjxwPkluIHRoZSBtYWluIEZvcm1CdWlsZGVyIGFkbWluIHBhZ2UsIHlvdSBjYW4gc2VlIGFuIGV4YW1wbGUgb2YgdGhlIHRhZyB1c2VkIHRvIGRpc3BsYXkgZWFjaCBmb3JtLiBJdCBsb29rcw0Kc29tZXRoaW5nIGxpa2Uge2Ntc19tb2R1bGUgbW9kdWxlPVwmIzAzOTtGb3JtQnVpbGRlclwmIzAzOTsgZm9ybT1cJiMwMzk7c2FtcGxlX2Zvcm1cJiMwMzk7fTwvcD4NCjxwPkJ5IGNvcHlpbmcgdGhpcyB0YWcgaW50byB0aGUgY29udGVudCBvZiBhIHBhZ2UsIG9yIGludG8gYSB0ZW1wbGF0ZSwgd2lsbCBjYXVzZSB0aGF0IGZvcm0gdG8gYmUgZGlzcGxheWVkLg0KSW4gdGhlb3J5LCB5b3UgY2FuIGhhdmUgbXVsdGlwbGUgZm9ybXMgb24gYSBwYWdlIGlmIHlvdSByZWFsbHkgd2FudCB0by4gQmUgY2FyZWZ1bCB3aGVuIHBhc3RpbmcgdGhlIHRhZw0KaW50byBhIHBhZ2VcJiMwMzk7cyBjb250ZW50IGlmIHlvdSB1c2UgYSBXWVNJV1lHIGVkaXRvciBzdWNoIGFzIFRpbnlNQ0UsIEZDS0VkaXQsIG9yIEhUTUxBcmVhLiBUaGVzZSBlZGl0b3JzIG1heSBzdGVhbHRoaWx5DQpjaGFuZ2UgdGhlIHF1b3RlIG1hcmtzIChcJnF1b3Q7KSBpbnRvIEhUTUwgZW50aXRpZXMgKCZhbXA7YW1wO3F1b3Q7KSwgYW5kIHRoZSBmb3JtcyB3aWxsIG5vdCBzaG93IHVwLiBUcnkgdXNpbmcNCnNpbmdsZSBxdW90ZXMgKFwmIzAzOTspIG9yIGVkaXRpbmcgdGhlIEhUTUwgZGlyZWN0bHkuDQoNCjxoMz5Xb3JraW5nIHdpdGggRm9ybXM8L2gzPg0KPHA+QnkgY2xpY2tpbmcgb24gYSBGb3JtXCYjMDM5O3MgbmFtZSwgeW91IGVudGVyIHRoZSBGb3JtIEVkaXQgcGFnZS4gVGhlcmUgYXJlIHNldmVyYWwgdGFicywgd2hpY2ggYXJlIGRlc2NyaWJlZCBiZWxvdzo8L3A+DQo8aDQ+TWFpbjwvaDQ+DQo8cD5UaGlzIGlzIHRoZSBtYWluIHBsYWNlIHlvdVwmIzAzOTtsbCB3b3JrIG9uIHlvdXIgZm9ybS4gSGVyZSwgeW91IGdpdmUgaXQgYSBuYW1lLCBhbiBhbGlhcyAod2hpY2ggaXMgdXNlZCB0byBpZGVudGlmeSBpdCBmb3IgcGxhY2luZyBpdCBpbiBhIHBhZ2Ugb3IgdGVtcGxhdGUpLCBhbmQsIG9wdGlvbmFsbHksIGEgQ1NTIGNsYXNzIHdpdGggd2hpY2ggdG8gd3JhcCB0aGUgd2hvbGUgdGhpbmcuPC9wPg0KPHA+QmVsb3cgdGhpcywgaWYgeW91IGhhdmUgaXQgZW5hYmxlZCwgaXMgdGhlIFwmcXVvdDtmYXN0IGZpZWxkIGFkZGVyXCZxdW90OyBwdWxsZG93biwgdGhhdCBsZXRzIHlvdSBxdWlja2x5IGFkZCBhIGZpZWxkIHRvIHRoZSBlbmQgb2YgeW91ciBmb3JtIGJ5IHNlbGVjdGluZyB0aGUgZmllbGQgdHlwZS48L3A+DQo8cD5CZWxvdyB0aGlzIGlzIHRoZSBsaXN0IG9mIGZpZWxkcyB0aGF0IG1ha2UgdXAgeW91ciBmb3JtLiBNb3JlIGRldGFpbCBvbiB0aGlzIGlzIGRlc2NyaWJlZCBiZWxvdy48L3A+DQo8aDQ+Rm9ybSBTdWJtaXNzaW9uPC9oND4NCjxwPldoZW4gdGhlIGZvcm0gaXMgc3VibWl0dGVkLCB5b3UgY2FuIGVpdGhlciByZWRpcmVjdCB0aGUgdXNlciB0byBhbm90aGVyIHBhZ2Ugb2YgeW91ciBzaXRlLCBvciB5b3UgY2FuIHByZXNlbnQgdGhlIHVzZXIgc29tZSBtZXNzYWdlICh3aGljaCBjYW4gY29udGFpbiBhbnkgb2YgdGhlIHVzZXJcJiMwMzk7cyBmb3JtIGVudHJpZXMsIG9yIGp1c3Qgc3RhdGljIHRleHQpLiBJbiB0aGlzIHRhYiwgeW91IHNlbGVjdCB3aGljaCBvZiB0aGVzZSBhcHByb2FjaGVzIHlvdSB3aXNoIHRvIHVzZSwgYW5kLCBpZiB5b3UgY2hvc2UgcmVkaXJlY3Rpb24sIGl0IGFsbG93cyB5b3UgdG8gcGljayB0aGUgcGFnZSB0byByZWRpcmVjdCB1c2VycyB0byBhZnRlciBhIHN1Y2Nlc3NmdWwgZm9ybSBzdWJtaXNzaW9uLjwvcD4NCjxwPkFsc28gb24gdGhpcyBwYWdlLCB5b3UgY2FuIHNwZWNpZnkgdGhlIGxhYmVscyBvZiB2YXJpb3VzIHN1Ym1pc3Npb24gYnV0dG9ucyAoXCZxdW90O1ByZXZpb3VzXCZxdW90OywgXCZxdW90O25leHRcJnF1b3Q7LCBcJnF1b3Q7c3VibWl0XCZxdW90OykuIFlvdSBjYW4gYWxzbyBvcHQgdG8gaGF2ZSBzb21lIEphdmFzY3JpcHQgYWRkZWQgdG8gdGhlIGxhc3QgcGFnZSBvZiBhIGZvcm0gdGhhdCB3aWxsIHByZXZlbnQgbXVsdGlwbGUgc3VibWlzc2lvbnMgKHVzZWZ1bCBvbiBzbG93IHNlcnZlcnMpLjwvcD4NCjxoND5Gb3JtIERpc3BsYXkgT3B0aW9uczwvaDQ+DQo8cD5UaGlzIHRhYiBhbGxvd3MgZm9yIG90aGVyIGZvcm0gY3VzdG9taXphdGlvbnMsIGxpa2UgdGhlIHN5bWJvbCB0byBzaG93IGZvciByZXF1aXJlZCBmaWVsZHMuPC9wPg0KPGg0PkNhcHRjaGEgU2V0dGluZ3M8L2g0Pg0KPHA+SWYgeW91IGhhdmUgaW5zdGFsbGVkIHRoZSBDYXB0Y2hhIG1vZHVsZSwgdGhpcyB0YWIgbGV0cyB5b3UgY29uZmlndXJlIHRoZSBDYXB0Y2hhIHNldHRpbmdzIGZvciB5b3VyIGZvcm0uPC9wPg0KPGg0PkZvcm0gVGVtcGxhdGU8L2g0Pg0KPHA+VGhpcyBpcyB3aGVyZSB5b3UgZG8geW91ciBjdXN0b21pemF0aW9uIHdvcmsgb2YgeW91ciBmb3JtXCYjMDM5O3MgU21hcnR5IFRlbXBsYXRlLiBTZWUgdGhlIHNlY3Rpb24gY2FsbGVkIEZvcm0gVGVtcGxhdGUgVmFyaWFibGVzIGJlbG93LjwvcD4NCjxwPlRoZSBmb3JtIHNob3VsZCBkZWZhdWx0IHRvIGEgQ3VzdG9tIHRlbXBsYXRlIHRoYXQgZG9jdW1lbnRzIHRoZSBTbWFydHkgdGFncyBhdmFpbGFibGUgdG8geW91LjwvcD4NCjxwPlVubGVzcyB5b3VcJiMwMzk7cmUgYSBTbWFydHkgZXhwZXJ0LCB5b3UgcHJvYmFibHkgZG9uXCYjMDM5O3Qgd2FudCB0byBtZXNzIGFyb3VuZCB3aXRoIHRoaXMuIElmIHlvdSBhcmUgYSBTbWFydHkgZXhwZXJ0LCB0aGlzIGlzIHdoZXJlIHlvdSBjYW4gdW5sZWFzaCB5b3VyIG1hZ2ljLjwvcD4NCjxoND5TdWJtaXNzaW9uIFRlbXBsYXRlPC9oND4NCjxwPklmLCBpbiB0aGUgRm9ybSBTdWJtaXNzaW9uIHRhYiwgeW91IHNlbGVjdGVkIFwmIzAzOTtEaXNwbGF5IFwmcXVvdDtTdWJtaXNzaW9uIFRlbXBsYXRlXCZxdW90OywgdGhpcyBpcyB3aGVyZSB5b3UgY2FuIGNyZWF0ZSB0aGF0IHRlbXBsYXRlLiBUaGVyZSBpcyBhIGRpc3BsYXkgb2Ygd2hpY2ggc21hcnR5IHZhcmlhYmxlcyBhcmUgYXZhaWxhYmxlIHRvIHlvdSwgYW5kIGEgYnV0dG9uIHRvIGdlbmVyYXRlIGEgc2FtcGxlIHRlbXBsYXRlLjwvcD4NCjxwPklmIHlvdVwmIzAzOTtyZSBhIFNtYXJ0eSBleHBlcnQsIHlvdSBjYW4gZG8gYWxsIG1hbm5lciBvZiBjcmVhdGl2ZSBhbmQgcG93ZXJmdWwgdGhpbmdzIGhlcmUuIElmIHlvdVwmIzAzOTtyZSBub3QgYSBTbWFydHkgZXhwZXJ0LCB5b3UgbWlnaHQganVzdCB3YW50IHRvIHVzZSB0aGUgZGVmYXVsdC4NCjwvcD4NCjxoMz5BZGRpbmcgRmllbGRzIHRvIHlvdXIgRm9ybTwvaDM+DQo8cD5UaGUgdHlwZXMgb2YgZmllbGRzIHRoYXQgYXJlIGN1cnJlbnRseSBzdXBwb3J0ZWQgZml0IGludG8gZm91ciBncm91cHM6IHN0YW5kYXJkIGlucHV0IGZpZWxkcywgZGlzcGxheSBjb250cm9sIGZpZWxkcywgZW1haWwtc3BlY2lmaWMgZmllbGRzLCBhbmQgZm9ybSByZXN1bHQgaGFuZGxpbmcgZmllbGRzIChhbHNvIGNhbGxlZCBGb3JtIERpc3Bvc2l0aW9ucyBpbiBwbGFjZXMpOjwvcD4NCjx1bD4NCjxsaT5TdGFuZGFyZCBJbnB1dCBGaWVsZHMgLSB0aGVzZSBhcmUgaW5wdXRzIHRoYXQgYWxsb3cgZW50cnkgb2YgdHlwaWNhbCBmb3JtIGVsZW1lbnRzOyB0ZXh0IGlucHV0cywgcmFkaW8gYnV0dG9ucywgZXRjLjwvbGk+DQo8bGk+RGlzcGxheSBDb250cm9sIEZpZWxkcyAtIHRoZXNlIGlucHV0IGNvbnRyb2wgaG93IHRoZSB1c2VyIHdpbGwgc2VlIHRoZSBkaXNwbGF5IG9mIHRoZSBmb3JtOyBwYWdlIGJyZWFrcywgc3RhdGljIHRleHQsIGV0Yy48L2xpPg0KPGxpPkVtYWlsLXNwZWNpZmljIEZpZWxkcyAtIHNvbWUgZm9ybXMgZ2VuZXJhdGUgZW1haWwsIGFuZCBlbWFpbC1zcGVjaWZpYyBmaWVsZHMgY2FuIGFsdGVyIGF0dHJpYnV0ZXMgb2YgdGhlIGVtYWlscyBzZW50LjwvbGk+DQo8bGk+Rm9ybSBEaXNwb3NpdGlvbnMgLSBUaGVzZSBkZXRlcm1pbmUgd2hhdCBoYXBwZW5zIHdoZW4gdGhlIHVzZXINCnN1Ym1pdHMgdGhlIGZvcm07IGZvciBlYWNoIHJlc3VsdCBoYW5kbGluZyBmaWVsZCwgc29tZSBtZXRob2Qgb2YgdHJhbnNtaXR0aW5nLCBzYXZpbmcsIG9yIGVtYWlsaW5nIHRoZQ0KZm9ybSBjb250ZW50cyB0YWtlcyBwbGFjZS4gQSBmb3JtIG1heSBoYXZlIG11bHRpcGxlIGZvcm0gZGlzcG9zaXRpb25zLjwvbGk+DQo8L3VsPg0KPHA+Rm9ybSBmaWVsZHMgYXJlIGFzc2lnbmVkIG5hbWVzLiBUaGVzZSBuYW1lcyBpZGVudGlmeSB0aGUgZmllbGQsIG5vdCBvbmx5IG9uIHRoZSBzY3JlZW4gYXMgbGFiZWxzIGZvciB0aGUgdXNlciwNCmJ1dCBpbiB0aGUgZGF0YSB3aGVuIGl0XCYjMDM5O3Mgc3VibWl0dGVkIHNvIHlvdSBrbm93IHdoYXQgdGhlIHVzZXIgaXMgcmVzcG9uZGluZyB0by4gUGhyYXNpbmcgdGhlIG5hbWUgbGlrZSBhIHF1ZXN0aW9uDQppcyBhIGhhbmR5IHdheSBvZiBtYWtpbmcgaXQgY2xlYXIgdG8gdGhlIHVzZXIgd2hhdCBpcyBleHBlY3RlZC4gU2ltaWxhcmx5LCBtYW55IGZpZWxkcyBoYXZlIGJvdGggTmFtZXMgYW5kIFZhbHVlcy4NClRoZSBOYW1lcyBhcmUgd2hhdCBnZXRzIHNob3duIHRvIHRoZSB1c2VyOyB0aGUgVmFsdWUgaXMgd2hhdCBnZXRzIHNhdmVkIG9yIHRyYW5zbWl0dGVkIHdoZW4gdGhlIHVzZXIgc3VibWl0cw0KdGhlIGZvcm0uIFRoZSBWYWx1ZXMgYXJlIG5ldmVyIHNlZW4gYnkgdGhlIHVzZXIsIG5vciBhcmUgdGhleSB2aXNpYmxlIGluIHRoZSBIVE1MLCBzbyBpdFwmIzAzOTtzIHNhZmUgdG8gdXNlIGZvcg0KZW1haWwgYWRkcmVzc2VzIGFuZCBzdWNoLjwvcD4NCjxwPlNvbWUgZmllbGRzIGNhbiBoYXZlIG11bHRpcGxlIHZhbHVlcywgb3IgbXVsdGlwbGUgbmFtZS92YWx1ZSBwYWlycy4gV2hlbiB5b3UgZmlyc3QgY3JlYXRlIHN1Y2ggYSBmaWVsZCwNCnRoZXJlIG1heSBub3QgYmUgc3VmZmljaWVudCBpbnB1dHMgZm9yIHlvdSB0byBzcGVjaWZ5IGFsbCB0aGUgdmFsdWVzIHlvdSB3YW50LiBUbyBnZXQgbW9yZSBzcGFjZSBmb3IgaW5wdXR0aW5nDQp0aGVzZSB2YWx1ZXMsIHVzZSB0aGUgYnV0dG9ucyBhdCB0aGUgYm90dG9tIG9mIHRoZSBwYWdlIGZvciBhZGRpbmcgb3B0aW9ucy48L3A+DQo8cD5GaWVsZHMgY2FuIGJlIGFzc2lnbmVkIHZhbGlkYXRpb24gcnVsZXMsIHdoaWNoIHZhcnkgYWNjb3JkaW5nIHRvIHRoZSB0eXBlIG9mIHRoZSBmaWVsZC4gVGhlc2UgcnVsZXMgaGVscA0KZW5zdXJlIHRoYXQgdGhlIHVzZXIgZW50ZXJzIHZhbGlkIGRhdGEuIFRoZXkgbWF5IGFsc28gYmUNCnNlcGFyYXRlbHkgbWFya2VkIFwmcXVvdDtSZXF1aXJlZFwmcXVvdDssIHdoaWNoIHdpbGwgZm9yY2UgdGhlIHVzZXIgdG8gZW50ZXIgYSByZXNwb25zZS48L3A+DQo8cD5GaWVsZHMgYWxzbyBtYXkgYmUgYXNzaWduZWQgYSBDU1MgY2xhc3MuIFRoaXMgc2ltcGx5IHdyYXBzIHRoZSBpbnB1dCBpbiBhIGRpdiB3aXRoIHRoYXQgY2xhc3MsIHNvIGFzIHRvIGFsbG93DQpjdXN0b21pemVkIGxheW91dHMuIFRvIHVzZSB0aGlzIGVmZmVjdGl2ZWx5LCB5b3UgbWF5IG5lZWQgdG8gXCZxdW90O3ZpZXcgc291cmNlXCZxdW90OyBvbiB0aGUgZ2VuZXJhdGVkIGZvcm0sIGFuZCB0aGVuDQp3cml0ZSB5b3VyIENTUy48L3A+DQo8dWw+DQo8bGk+U3RhbmRhcmQgSW5wdXRzDQo8dWw+PGxpPlRleHQgSW5wdXQuIFRoaXMgaXMgYSBzdGFuZGFyZCB0ZXh0IGZpZWxkLiBZb3UgY2FuIGxpbWl0IHRoZSBsZW5ndGgsIGFuZCBhcHBseSB2YXJpb3VzIHZhbGlkYXRpb24NCmZ1bmN0aW9ucyB0byB0aGUgZmllbGQuPC9saT4NCjxsaT5UZXh0IEFyZWEuIFRoaXMgaXMgYSBiaWcsIGZyZWUtZm9ybSB0ZXh0IGlucHV0IGZpZWxkLjwvbGk+DQo8bGk+Q2hlY2tib3guIFRoaXMgaXMgYSBzdGFuZGFyZCBjaGVjayBib3guPC9saT4NCjxsaT5DaGVja2JveCBHcm91cC4gVGhpcyBpcyBhIGNvbGxlY3Rpb24gb2YgY2hlY2tib3hlcy4gVGhlIG9ubHkgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoaXMgaW5wdXQgYW5kIGENCmNvbGxlY3Rpb24gb2YgQ2hlY2tib3ggaW5wdXRzIGlzIHRoYXQgdGhleSBhcmUgcHJlc2VudGVkIGFzIGEgZ3JvdXAsIHdpdGggb25lIG5hbWUsIGFuZCBjYW4gaGF2ZSBhIHZhbGlkYXRpb24gZnVuY3Rpb24gcmVxdWlyaW5nIHRoYXQgeW91IGNoZWNrIG9uZSBvciBtb3JlIG9mIHRoZSBib3hlcyBpbiB0aGUgZ3JvdXAuPC9saT4NCjxsaT5SYWRpbyBHcm91cC4gVGhpcyBpcyBhIGNvbGxlY3Rpb24gb2YgcmFkaW8gYnV0dG9ucy4gT25seSBvbmUgb2YgdGhlIGdyb3VwIG1heSBiZSBzZWxlY3RlZCBieSB0aGUgdXNlci48L2xpPg0KPGxpPlB1bGxkb3duLiBUaGlzIGlzIGEgc3RhbmRhcmQgcHVsbGRvd24gbWVudS4gSXRcJiMwMzk7cyByZWFsbHkgY29uY2VwdHVhbGx5IHRoZSBzYW1lIHRoaW5nIGFzIGEgcmFkaW8gYnV0dG9uDQpncm91cCwgYnV0IGlzIGJldHRlciB3aGVuIHRoZXJlIGFyZSBhIGxhcmdlIG51bWJlciBvZiBvcHRpb25zLjwvbGk+DQo8bGk+TXVsdGlzZWxlY3QuIFRoaXMgaXMgYSBtdWx0aS1zZWxlY3QgZmllbGQuIEl0XCYjMDM5O3MgcmVhbGx5IGNvbmNlcHR1YWxseSB0aGUgc2FtZSB0aGluZyBhcyBhIGNoZWNrYm94IGJ1dHRvbg0KZ3JvdXAsIGJ1dCBpcyBiZXR0ZXIgd2hlbiB0aGVyZSBhcmUgYSBsYXJnZSBudW1iZXIgb2Ygb3B0aW9ucywgYXMgeW91IGNhbiBsaW1pdCB0aGUgbnVtYmVyIGRpc3BsYXllZCBvbiB0aGUgc2NyZWVuIGF0IGFueSBvbmUgdGltZS48L2xpPg0KPGxpPlN0YXRlLiBUaGlzIGlzIGEgcHVsbGRvd24gbGlzdGluZyB0aGUgU3RhdGVzIG9mIHRoZSBVLlMuPC9saT4NCjxsaT5Db3VudHJpZXMuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBDb3VudHJpZXMgb2YgdGhlIHdvcmxkIChhcyBvZiBKdWx5IDIwMDUpLjwvbGk+DQo8bGk+RGF0ZSBQaWNrZXIuIFRoaXMgaXMgYSB0cmlwbGUgcHVsbGRvd24gYWxsb3dpbmcgdGhlIHVzZXIgdG8gc2VsZWN0IGEgZGF0ZS48L2xpPg0KPGxpPlRpbWUgUGlja2VyLiBUaGlzIGlzIGEgc2V0IG9mIHB1bGxkb3ducyBhbGxvd2luZyB0aGUgdXNlciB0byBzZWxlY3QgYSB0aW1lICh1c2luZyAxMiBvciAyNCBob3VyIGNsb2NrKS48L2xpPg0KPGxpPkZpbGUgVXBsb2FkLiBUaGlzIGlzIGEgZmlsZSB1cGxvYWQgZmllbGQuPC9saT4NCjxsaT5MaW5rIChVc2VyIEVudGVyZWQpLiBUaGlzIGNyZWF0ZXMgYSBkb3VibGUgaW5wdXQgZmllbGQgZm9yIGdldHRpbmcgYSBsaW5rIFVSTCBhbmQgbGluayB0aXRsZS48L2xpPg0KPC91bD48L2xpPg0KDQo8bGk+RW1haWwtc3BlY2lmaWMgSW5wdXRzDQo8dWw+PGxpPkVtYWlsIEZyb20gQWRkcmVzcyBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSB0aGVpciBlbWFpbCBhZGRyZXNzLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgYWRkcmVzcyBpbiB0aGUgXCZxdW90O0Zyb21cJnF1b3Q7IGZpZWxkLjwvbGk+DQo8bGk+RW1haWwgRnJvbSBOYW1lIEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIHRoZWlyIG5hbWUuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBuYW1lIGluIHRoZSBcJnF1b3Q7RnJvbVwmcXVvdDsgZmllbGQuPC9saT4NCjxsaT5FbWFpbCBTdWJqZWN0IEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIGEgc3ViamVjdCBmb3IgdGhlaXIgZW1haWwuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBpbiB0aGUgXCZxdW90O1N1YmplY3RcJnF1b3Q7IGZpZWxkLiBUaGlzIG1heSBjYXVzZSB0cm91YmxlIHdpdGggY2VydGFpbiBkaXNwb3NpdGlvbnMgdGhhdCB3YW50IHRvIGNvbnRyb2wgdGhlIEVtYWlsIFN1YmplY3QsIHNvIHVzZSBpdCB3aXRoIGNhdXRpb24uPC9saT4NCjwvdWw+PC9saT4NCg0KPGxpPkRpc3BsYXkgQ29udHJvbCBGaWVsZHM8dWw+DQo8bGk+LVBhZ2UgQnJlYWsuIFRoaXMgYWxsb3dzIHlvdSB0byBzcGxpdCB5b3VyIGZlZWRiYWNrIGZvcm0gaW50byBtdWx0aXBsZSBwYWdlcy4gRWFjaCBwYWdlIGlzDQppbmRlcGVuZGVudGx5IHZhbGlkYXRlZC4gVGhpcyBpcyBnb29kIGZvciBhcHBsaWNhdGlvbnMgbGlrZSBvbmxpbmUgc3VydmV5cy48L2xpPg0KPGxpPi1GaWVsZHNldCBTdGFydC4gQ29tYmluZWQgd2l0aCBGaWVsZHNldCBFbmQsIHRoaXMgYWxsb3dzIHlvdSB0byBncm91cCB2YXJpb3VzIGZpZWxkcyB3aXRoaW4geW91ciBmb3JtLiBVc2UgdGhpcyB0byBzdGFydCBhIGdpdmVuIGdyb3VwaW5nLjwvbGk+DQo8bGk+LUZpZWxkc2V0IEVuZC4gQ29tYmluZWQgd2l0aCBGaWVsZHNldCBTdGFydCwgdGhpcyBhbGxvd3MgeW91IHRvIGdyb3VwIHZhcmlvdXMgZmllbGRzIHdpdGhpbiB5b3VyIGZvcm0uIFVzZSB0aGlzIHRvIGVuZCBhIGdpdmVuIGdyb3VwaW5nLjwvbGk+DQo8bGk+LUhpZGRlbiBGaWVsZC4gVGhpcyBhbGxvd3MgeW91IHRvIGVtYmVkIGEgaGlkZGVuIGZpZWxkIGluIHlvdXIgZm9ybS48L2xpPg0KPGxpPi1TdGF0aWMgVGV4dC4gVGhpcyBhbGxvd3MgeW91IHRvIHB1dCB0ZXh0IG9yIGEgbGFiZWwgaW4gdGhlIG1pZGRsZSBvZiB5b3VyIGZvcm0uIFRoaXMgaXMgdXNlZnVsIGZvciBnaXZpbmcgYWRkaXRpb25hbCBoZWxwIHRleHQsIGVzcGVjaWFsbHkgaWYgeW91XCYjMDM5O3JlIG5vdCB1c2luZyBhIEN1c3RvbSBUZW1wbGF0ZSB0byByZW5kZXIgeW91ciBmb3JtLjwvbGk+DQo8bGk+LVN0YXRpYyBMaW5rLiBUaGlzIGFsbG93cyB5b3UgdG8gcHV0IGEgbGluayB0byBhIGdpdmVuIHBhZ2UgaW50byB5b3VyIGZvcm0uIE9wdGlvbmFsbHksIHlvdSBjYW4gaGF2ZSBpdCBhdXRvcG9wdWxhdGUgd2l0aCB0aGUgcGFnZSB3aGVyZSB0aGUgZm9ybSBpcyBlbWJlZGRlZCAodXNlZnVsIGlmIHlvdVwmIzAzOTtyZSBzZW5kaW5nIHJlc3VsdHMgdmlhIGVtYWlsKS48L2xpPg0KPC91bD48L2xpPg0KDQo8bGk+Rm9ybSBIYW5kbGluZyBJbnB1dHMgKERpc3Bvc2l0aW9ucykNCjx1bD48bGk+KkNhbGwgYSBVc2VyIERlZmluZWQgVGFnIFdpdGggdGhlIEZvcm0gUmVzdWx0cy4gVGhpcyBzdWJtaXRzIGFsbCB0aGUgZm9ybSByZXN1bHRzIHRvIHRoZSBVc2VyLURlZmluZWQgVGFnIHlvdSBzcGVjaWZ5LiBUaGUgVURUIGNhbiBoYW5kbGUgdGhlIHJlc3VsdHMgaG93ZXZlciBpdCB3YW50cy48L2xpPg0KPGxpPipFbWFpbCBSZXN1bHRzIEJhc2VkIG9uIFB1bGxkb3duLiBUaGlzIGlzIHVzZWZ1bCBmb3Igd2ViIHNpdGVzIHdoZXJlIGNvbW1lbnRzIGdldCByb3V0ZWQgYmFzZWQgb24gdGhlaXIgc3ViamVjdCBtYXR0ZXIsIGUuZy4sIGJ1Z3MgZ2V0IHNlbnQgdG8gb25lIHBlcnNvbiwgbWFya2V0aW5nIHF1ZXN0aW9ucyB0byBhbm90aGVyIHBlcnNvbiwgc2FsZXMgcmVxdWVzdHMgdG8gc29tZW9uZSBlbHNlLCBldGMuIFRoZSBwdWxsZG93biBpcyBwb3B1bGF0ZWQgd2l0aCB0aGUgc3ViamVjdHMsIGFuZCBlYWNoIGdldHMgZGlyZWN0ZWQgdG8gYSBzcGVjaWZpYyBlbWFpbCBhZGRyZXNzLiBZb3Ugc2V0IHVwIHRoZXNlIG1hcHBpbmdzIGluIHRoZSB3aGVuIHlvdSBjcmVhdGUgb3IgZWRpdCBhIGZpZWxkIG9mIHRoaXMgdHlwZS4gSWYgeW91IHVzZSBvbmUgb2YgdGhlc2UgXCZxdW90O0RpcmVjdG9yXCZxdW90OyBwdWxsZG93bnMsIHRoZSB1c2VyIG11c3QgbWFrZSBhIHNlbGVjdGlvbiBpbiBvcmRlciB0byBzdWJtaXQgdGhlDQpmb3JtLiBUaGlzIGlucHV0IGlzIHBhcnQgb2YgdGhlIGZvcm0gdGhlIHVzZXIgc2VlcywgYWx0aG91Z2ggdGhlIGVtYWlsIGFkZHJlc3NlcyBhcmUgbm90IG1hZGUgdmlzaWJsZSBub3INCmFyZSB0aGV5IGVtYmVkZGVkIGluIHRoZSBIVE1MLjwvbGk+DQo8bGk+KkVtYWlsIFJlc3VsdHMgdG8gc2V0IEFkZHJlc3MoZXMpLiBUaGlzIHNpbXBseSBzZW5kcyB0aGUgZm9ybSByZXN1bHRzIHRvIG9uZSBvciBtb3JlIGVtYWlsIGFkZHJlc3NlcyB0aGF0IHlvdSBlbnRlciB3aGVuIHlvdSBjcmVhdGUgb3IgZWRpdCB0aGlzIHR5cGUgb2YgZmllbGQuIFRoaXMgZmllbGQgYW5kIGl0cyBuYW1lIGFyZSBub3QgdmlzaWJsZSBpbiB0aGUNCmZvcm0gdGhhdCB0aGUgdXNlciBzZWVzLiBUaGUgZW1haWwgYWRkcmVzc2VzIGFyZSBub3QgbWFkZSB2aXNpYmxlIG5vcg0KYXJlIHRoZXkgZW1iZWRkZWQgaW4gdGhlIEhUTUwuPC9saT4NCjxsaT4qRW1haWwgdG8gVXNlci1TdXBwbGllZCBBZGRyZXNzLiBUaGlzIHB1dHMgYW4gaW5wdXQgZmllbGQgaW4gdGhlIGZvcm0gZm9yIHRoZSB1c2VyIHRvIHBvcHVsYXRlIHdpdGggYW4gZW1haWwgYWRkcmVzcy4gVGhlIGZvcm0gcmVzdWx0cyBnZXQgc2VudCB0byB0aGF0IGFkZHJlc3MuIEJld2FyZSBvZiBTcGFtIGFidXNlISBBY3RpdmUgdGhlIHByaW1pdGl2ZSBhbnRpLXNwYW0gZmVhdHVyZXMgaW4gdGhlIEZvcm1CdWlsZGVyIGNvbmZpZ3VyYXRpb24gc2NyZWVuLjwvbGk+DQo8bGk+KlN0b3JlIFJlc3VsdHMgaW4gRGF0YWJhc2UuIFRoaXMgd2lsbCBzdG9yZSB0aGUgZm9ybSBjb250ZW50cyBpbiBhbiBpbnRlcm5hbCBkYXRhYmFzZS4gWW91IHdpbGwgYWx3YXlzIHVzZSB0aGlzIGRpc3Bvc2l0aW9uIGlmIHlvdSB1c2UgdGhlIGZvcm0gd2l0aCBGb3JtQnJvd3Nlci48L2xpPg0KPGxpPipSZWRpcmVjdCB0byBQYWdlIEJhc2VkIG9uIFB1bGxkb3duLiBUaGlzIGFsbG93cyB5b3UgdG8gcmVkaXJlY3QgdGhlIGZvcm0gdG8gYSBkaWZmZXJlbnQgc2l0ZSBwYWdlIGRlcGVuZGluZyBvbiBpdHMgdmFsdWUuIElmIHlvdSBoYXZlIG11bHRpcGxlIGRpc3Bvc2l0aW9ucywgbWFrZSBzdXJlIHRoaXMgaXMgdXNlZCBsYXN0LjwvbGk+DQo8bGk+KlZhbGlkYXRlIHZpYSBFbWFpbC4gVGhpcyBpcyBhIHN0cmFuZ2UgYW5kIHBvd2VyZnVsIGZpZWxkLiBJdCBwcm92aWRlcyB0aGUgdXNlciBhIG1hbmRhdG9yeSBpbnB1dCBmb3IgdGhlaXIgZW1haWwgYWRkcmVzcy4gT25jZSB0aGV5IHN1Ym1pdCB0aGVpciBmb3JtLCB0aGUgc3RhbmRhcmQgZm9ybSBkaXNwb3NpdGlvbnMgYXJlIG5vdCBwZXJmb3JtZWQgLS0gcmF0aGVyLCBpdCBzZW5kIHRoZSB1c2VyIGFuIGVtYWlsIHdpdGggYSBzcGVjaWFsIGNvZGVkIGxpbmsuIElmIHRoZXkgY2xpY2sgb24gdGhlIGxpbmssIHRoZSBvdGhlciBmb3JtIGlzIGNvbnNpZGVyZWQgXCZxdW90O2FwcHJvdmVkLFwmcXVvdDsgYW5kIHRoZSBvdGhlciBkaXNwb3NpdGlvbnMgYXJlIGFsbCBwZXJmb3JtZWQuPC9saT4NCjxsaT4qV3JpdGUgUmVzdWx0cyB0byBGbGF0IEZpbGUuIFRoaXMgdGFrZXMgdGhlIGZvcm0gcmVzdWx0cyBhbmQgd3JpdGVzIHRoZW0gaW50byBhIHRleHQgZmlsZS4gWW91IG1heQ0Kc2VsZWN0IHRoZSBuYW1lIG9mIHRoZSBmaWxlLCBhbmQgc2V0IGl0cyBmb3JtYXQuIFRoZXNlIGZpbGVzIGFyZSB3cml0dGVuIHRvIHRoZSBcJnF1b3Q7b3V0cHV0XCZxdW90OyBkaXJlY3RvcnkgdW5kZXIgdGhlDQptb2R1bGVcJiMwMzk7cyBpbnN0YWxsYXRpb24gZGlyZWN0b3J5LCBhc3N1bWluZyB0aGUgd2ViIHNlcnZlciBoYXMgcGVybWlzc2lvbiB0byB3cml0ZSB0aGVyZS48L2xpPg0KPC91bD48L2xpPjwvbGk+PC91bD4NCg0KPGgzPkVtYWlsIGFuZCBGbGF0IEZpbGUgVGVtcGxhdGVzPC9oMz4NCjxwPk1hbnkgZGlzcG9zaXRpb24gdHlwZXMgYWxsb3cgeW91IHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZvciB0aGUgZW1haWwgdGhhdCBpcyBnZW5lcmF0ZWQsIG9yIGZvciB0aGUgd2F5IHRoZSByZXN1bHRzIGFyZSB3cml0dGVuIHRvIGEgZmlsZS4gSWYgeW91IG9wdCBub3QgdG8gY3JlYXRlIGEgdGVtcGxhdGUsIHRoZSBGb3JtQnVpbGRlciB3aWxsIHVzZSBpdFwmIzAzOTtzIG93biBiZXN0IGd1ZXNzLCB3aGljaCBtYXkgb3IgbWF5IG5vdCB3b3JrIG91dCB0byB5b3VyIGxpa2luZy4gWW91IGNhbiBhbHdheXMgY2xpY2sgb24gdGhlIFwmcXVvdDtDcmVhdGUgU2FtcGxlIFRlbXBsYXRlXCZxdW90OyBhbmQgdGhlbiBjdXN0b21pemUgdGhlIHJlc3VsdHMuPC9wPg0KPHA+VG8gdGhlIHJpZ2h0LCB5b3VcJiMwMzk7bGwgZmluZCBhIGxlZ2VuZCB3aGljaCBsaXN0cyBhbGwgb2YgdGhlIHZhcmlhYmxlcyB0aGF0IGFyZSBhdmFpbGFibGUgdG8geW91IHRvIHVzZSBpbiB5b3VyIHRlbXBsYXRlLiBBcyBvZiB2ZXJzaW9uIDAuMywgdmFyaWFibGVzIGhhdmUgdHdvIG5hbWVzLCBvbmUgYmFzZWQgb24gdGhlIGZpZWxkIG5hbWUsIHRoZSBvdGhlciBiYXNlZCBvbiB0aGUgZmllbGQgSUQuIElmIHlvdSB1c2UgZmllbGQgbmFtZXMgdGhhdCBoYXZlIGNoYXJhY3RlcnMgb3V0c2lkZSBvZiB0aGUgQVNDSUkgMzItMTI2IHJhbmdlLCBpdCB3aWxsIGJlIHNhZmVyIHRvIHVzZSB0aGUgSUQtYmFzZWQgdmFyaWFibGVzLjwvcD4NCjxwPjxzdHJvbmc+Tm90ZSB0aGF0IG9uY2UgeW91XCYjMDM5O3ZlIGNoYW5nZWQgYSB0ZW1wbGF0ZSwgaXQgd2lsbCBubyBsb25nZXIgYXV0b21hdGljYWxseSBhZGQgbmV3IGZpZWxkcy48L3N0cm9uZz4gRm9yIHRoaXMgcmVhc29uLCBpdFwmIzAzOTtzIHVzdWFsbHkgYmVzdCB0byBjcmVhdGUgeW91ciB0ZW1wbGF0ZXMgYXMgdGhlIGxhc3Qgc3RlcCBvZiBjcmVhdGluZyB5b3VyIGZvcm0uPC9wPg0KPHA+QXMgb2YgdmVyc2lvbiAwLjIuNCwgeW91IGNhbiBvcHQgdG8gc2VuZCBhbnkgb2YgdGhlc2UgZW1haWxzIGFzIEhUTUwgZW1haWwuIFRoZXJlIHNob3VsZCBiZSBhIGNoZWNrYm94IGF0IHRoZSB0b3Agb2YgdGhlIHRlbXBsYXRlIHBhZ2UgZm9yIHRoaXMuIFRoZXJlIGlzIGFsc28gYSBcJnF1b3Q7Q3JlYXRlIFNhbXBsZSBIVE1MIFRlbXBsYXRlXCZxdW90OyBidXR0b24gb3ZlciBpbiB0aGUgbGVnZW5kIGFyZWEuIEZvciBIVE1MIGVtYWlsLCB0aGUgZW1haWwgYm9keSB3aWxsIGFsc28gcHJvdmlkZSB0aGUgZGVmYXVsdCB0ZXh0LW9ubHkgdmFsdWVzLjwvcD4NCg0KPGgzPkNvbmZpZ3VyYXRpb248L2gzPg0KPHA+VGhlcmUgYXJlIHNvbWUgZ2xvYmFsIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgRm9ybUJ1aWxkZXI6PC9wPg0KPHVsPg0KPGxpPkVuYWJsZSBmYXN0IGZpZWxkIGFkZCBwdWxsZG93bi4gVGhpcyBlbmFibGVzIHRoZSBwdWxsZG93biBvbiB0aGUgRm9ybSBFZGl0IHBhZ2Ugd2hpY2ggc2F2ZXMgYSBzdGVwIGluIHRoZSBjcmVhdGlvbiBvZiBuZXcgZmllbGRzLjwvbGk+DQo8bGk+SGlkZSBFcnJvcnMuIFRoaXMgaXMgc2V0IGJ5IGRlZmF1bHQuIFVuY2hlY2tpbmcgaXQgd2lsbCBjYXVzZSBtb3JlIGRldGFpbGVkIGVycm9ycyB0byBiZSBkaXNwbGF5ZWQgaWYgdGhlcmUgYXJlIHByb2JsZW1zIHdoZW4geW91IHN1Ym1pdCB5b3VyIGZvcm0uPC9saT4NCjxsaT5SZXF1aXJlIEZpZWxkIE5hbWVzLiBUeXBpY2FsbHksIHlvdSB3aWxsIHdhbnQgZm9ybSBmaWVsZHMgdG8gYmUgbmFtZWQgc28geW91IGNhbiB0ZWxsIHdoaWNoIGlzIHdoaWNoLiBIb3dldmVyLCBpbiBzb21lIGNhc2VzLCB5b3UgbWlnaHQgd2FudCB0byBoYXZlIG5hbWVsZXNzIGZpZWxkcy4gVW5jaGVjayB0aGlzIGlmIHlvdSB3YW50IHRvIGFsbG93IG5hbWVsZXNzIGZpZWxkcy48L2xpPg0KPGxpPlVuaXF1ZSBGaWVsZCBOYW1lcy4gVHlwaWNhbGx5LCB5b3Ugd2lsbCB3YW50IGZvcm0gZmllbGRzIHRvIGhhdmUgdW5pcXVlIG5hbWVzIHNvIHlvdSBjYW4gdGVsbCB3aGljaCBpcyB3aGljaC4gVW5jaGVjayB0aGlzIGlmIHlvdSB3YW50IHRvIGFsbG93IGZpZWxkcyB0byBzaGFyZSBuYW1lcy48L2xpPg0KPGxpPlVzZSByZWxheGVkIGVtYWlsIHZhbGlkYXRpb24uIFRoaXMgdXNlcyBhIGxlc3MgcmVzdHJpY3RpdmUgcmVndWxhciBleHByZXNzaW9uIGZvciB2YWxpZGF0aW5nIGVtYWlsOyBlLmcuLCB4QHkgd2lsbCBiZSBhbGxvd2VkLCB3aGVyZSB0eXBpY2FsbHkgeEB5LnRsZCBpcyByZXF1aXJlZC48L2xpPg0KPGxpPlNob3cgRm9ybSBCdWlsZGVyIFZlcnNpb24uIERpc3BsYXlzIHRoZSB2ZXJzaW9uIG9mIEZvcm1CdWlsZGVyIHlvdVwmIzAzOTtyZSB1c2luZyBpbiBhIGNvbW1lbnQgd2hlbiB0aGUgZm9ybSBpcyBnZW5lcmF0ZWQuIFR5cGljYWxseSBvbmx5IHVzZWZ1bCB3aGVuIGRlYnVnZ2luZy48L2xpPg0KPGxpPkVuYWJsZSBwcmltaXRpdmUgYW50aS1zcGFtIGZlYXR1cmVzLiBXaGVuIHR1cm5lZCBvbiwgdGhpcyBhbGxvd3MgYW55IGdpdmVuIElQIGFkZHJlc3MgdG8gb25seSBnZW5lcmF0ZSAxMCBlbWFpbHMgcGVyIGhvdXIuPC9saT4NCjwvdWw+DQo8aDM+U3R5bGluZyBhbmQgQ1NTPC9oMz4NCjxwPlBhdWwgTm9vbmUgZ3JhY2lvdXNseSBwcm92aWRlcyB1cyBhbGwgd2l0aCBhIHByZXR0eSBnb29kIHN0YW5kYXJkIENTUyB0aGF0IHlvdSBjYW4gdXNlIGZvciBmb3Jtczo8L3A+DQo8cHJlPg0KCS8qIFNhbXBsZSBGb3JtQnVpbGRlciBDU1MgYmFzZSAqLw0KCWZvcm0ge21hcmdpbi10b3A6MH0NCglmb3JtLCB0ZCwgdGgsIGxpIHsgZm9udC1zaXplOiAxMDAlfQ0KCWZvcm0gZGl2IHttYXJnaW4tYm90dG9tOjB9DQoJZmllbGRzZXQgZGl2IHsNCgkJbWFyZ2luLWJvdHRvbTowLjVlbTsNCgkJbWFyZ2luLWxlZnQ6MWVtOw0KCX0NCglmaWVsZHNldCBkaXYgZGl2IHsNCgkJbWFyZ2luLXRvcDowLjVlbTsNCgkJbWFyZ2luLWxlZnQ6MWVtDQoJfQ0KCWZpZWxkc2V0IHsNCgkJbWFyZ2luLWJvdHRvbToxZW07DQoJCWJvcmRlcjoxcHggc29saWQgI0Y2MDsNCgkJcGFkZGluZzowLjVlbQ0KCX0NCglmaWVsZHNldCBsYWJlbCB7DQoJCXdpZHRoOmF1dG87DQoJfQ0KCWxlZ2VuZCB7DQoJCWNvbG9yOiNGRkY7DQoJCWJhY2tncm91bmQ6I0Y2MDsNCgkJZm9udC1zdHlsZTppdGFsaWM7DQoJCWZvbnQtc2l6ZToxLjJlbTsNCgkJbWFyZ2luLWJvdHRvbTowLjVlbTsNCgkJcGFkZGluZzowLjJlbTsNCgkJd2lkdGg6YXV0bzsNCgkJYm9yZGVyOjFweCBzb2xpZCAjQ0NDDQoJfQ0KCXRleHRhcmVhIHsNCgkJbWFyZ2luOiAwLjVlbSAwOw0KCQl3aWR0aDo5OCU7DQoJCWhlaWdodDogNmVtDQoJfQ0KDQoJLyogQXBwbHkgdGhpcyBjbGFzcyB0byB0ZXh0L3NlbGVjdCBpbnB1dCBmaWVsZHMgd2l0aCBzaG9ydGVyIGxhYmVscw0KCQl0byBoZWxwIGFsaWdubWVudCAqLw0KCS5zaG9ydC1sYWJlbCBsYWJlbCB7ZmxvYXQ6bGVmdDsgd2lkdGg6MTBlbX0NCgkuc2hvcnQtbGFiZWwgZmllbGRzZXQgZGl2IGlucHV0LCANCgkuc2hvcnQtbGFiZWwgZmllbGRzZXQgZGl2IHNlbGVjdCB7d2lkdGg6MTZlbX0NCg0KCS8qIFByZXR0eSB1cCB5b3VyIENhcHRjaGEgaW1hZ2Ugb3V0cHV0ICovDQoJLmNhcHRjaGEgew0KCQltYXJnaW46MC41ZW0gMDsNCgkJd2lkdGg6MjAwcHg7DQoJCXRleHQtYWxpZ246Y2VudGVyDQoJfQ0KCS5jYXB0Y2hhIGltZyB7Ym9yZGVyOjFweCBzb2xpZCAjRjYwOyBtYXJnaW4tYm90dG9tOjAuNWVtfQ0KCS5jYXB0Y2hhIGlucHV0IHt3aWR0aDoxOTZweDsgbWFyZ2luLXRvcDowLjVlbX0NCg0KCS8qIEp1c3QgYSBiaXQgbW9yZSByb29tIGZvciB0aGUgU3VibWl0IGJ1dHRvbiAqLw0KCS5zdWJtaXQge21hcmdpbi10b3A6MC41ZW19DQo8L3ByZT4NCg0KPGgzPkZvcm0gVGVtcGxhdGUgVmFyaWFibGVzPC9oMz4NCg0KPGgzPkZvcm0gVGVtcGxhdGUgVmFyaWFibGVzPC9oMz4NCjxwPllvdSBjYW4gZWRpdCBpdCB0byBtYWtlIHlvdXIgZm9ybSBsYXlvdXQgbG9vayBhbnkgd2F5IHlvdVwmIzAzOTtkIGxpa2UuDQogICBUbyBtYWtlIHRoZSBmb3JtIHdvcmssIHlvdVwmIzAzOTtsbCBuZWVkIHRvIGFsd2F5cyBpbmNsdWRlIHRoZSAmYW1wOyMxMjM7JGZiX2hpZGRlbn0gYW5kICZhbXA7IzEyMzskc3VibWl0fQ0KICAgdGFncy48L3A+DQoNCjxwPllvdSBjYW4gYWNjZXNzIHlvdXIgZm9ybSBmaWVsZHMgZWl0aGVyIHVzaW5nIHRoZSAkZmllbGRzIGFycmF5IG9yIGJ5IGRpcmVjdGx5IGFjY2Vzc2luZyBmaWVsZHMgYnkgdGhlaXIgbmFtZXMgKGUuZy4sICZhbXA7IzEyMzskbXlmaWVsZC0+aW5wdXR9ICk8L3A+DQoNCg0KPHA+RWFjaCBmaWVsZCBoYXMgdGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzOjwvcD4NCjx0YWJsZT4NCjx0cj48dGg+RmllbGQ8L3RoPjx0aD5WYWx1ZTwvdGg+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmRpc3BsYXk8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBzaG91bGQgYmUgZGlzcGxheWVkLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPnJlcXVpcmVkPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgaXMgcmVxdWlyZWQsIDAgb3RoZXJ3aXNlPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+cmVxdWlyZWRfc3ltYm9sPC90ZD48dGQ+dGhlIHN5bWJvbCBmb3IgcmVxdWlyZWQgZmllbGRzPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+Y3NzX2NsYXNzPC90ZD48dGQ+dGhlIENTUyBjbGFzcyBzcGVjaWZpZWQgZm9yIHRoaXMgZmllbGQ8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT52YWxpZDwvdGQ+PHRkPjEgaWYgdGhpcyBmaWVsZCBoYXMgcGFzc2VkIHZhbGlkYXRpb24sIDAgb3RoZXJ3aXNlPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+ZXJyb3I8L3RkPjx0ZD5UZXh0IG9mIHRoZSB2YWxpZGF0aW9uIHByb2JsZW0sIGluIHRoZSBldmVudCB0aGF0IHRoaXMgZmllbGQgZGlkIG5vdCB2YWxpZGF0ZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmhpZGVfbmFtZTwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIG5hbWUgc2hvdWxkIGJlIGhpZGRlbiwgMCBvdGhlcndpc2U8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5oYXNfbGFiZWw8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCB0eXBlIGhhcyBhIGxhYmVsPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+bmVlZHNfZGl2PC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgbmVlZHMgdG8gYmUgd3JhcHBlZCBpbiBhIERJViAob3IgdGFibGUgcm93LCBpZiB0aGF0XCYjMDM5O3MgdGhlIHdheSB5b3Ugc3dpbmcpPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+bmFtZTwvdGQ+PHRkPnRoZSBmaWVsZFwmIzAzOTtzIG5hbWU8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5pbnB1dDwvdGQ+PHRkPnRoZSBmaWVsZFwmIzAzOTtzIGlucHV0IGNvbnRyb2wgKGUuZy4sIHRoZSBpbnB1dCBmaWVsZCBpdHNlbGYpPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aW5wdXRfaWQ8L3RkPjx0ZD50aGUgSUQgb2YgdGhlIGZpZWxkXCYjMDM5O3MgaW5wdXQgKHVzZWZ1bCBmb3IgPGxhYmVsIGZvcj1cJnF1b3Q7XCZxdW90Oz4pPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+dHlwZTwvdGQ+PHRkPnRoZSBmaWVsZFwmIzAzOTtzIGRhdGEgdHlwZTwvdGQ+PC90cj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQo8dHI+PHRkPmZpZWxkLT5tdWx0aXBsZV9wYXJ0czwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkLT5pbnB1dCBpcyBhY3R1YWxseSBhIGNvbGxlY3Rpb24gb2YgY29udHJvbHM8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5sYWJlbF9wYXJ0czwvdGQ+PHRkPjEgaWYgdGhlIGNvbGxlY3Rpb24gb2YgY29udHJvbHMgaGFzIHNlcGFyYXRlIGxhYmVscyBmb3IgZWFjaCBjb250cm9sPC90ZD48L3RyPg0KPC90YWJsZT4NCg0KPHA+SW4gY2VydGFpbiBjYXNlcywgZmllbGQtPmlucHV0IGlzIGFjdHVhbGx5IGFuIGFycmF5IG9mIG9iamVjdHMgcmF0aGVyIHRoYW4gYW4gaW5wdXQuIFRoaXMgaGFwcGVucywgZm9yIGV4YW1wbGUsIGluIENoZWNrQm94R3JvdXBzIG9yIFJhZGlvQnV0dG9uR3JvdXBzLiBGb3IgdGhlbSwgeW91IGNhbiBpdGVyYXRlIHRocm91Z2ggZmllbGQtPmlucHV0LT5uYW1lIGFuZCBmaWVsZC0+aW5wdXQtPmlucHV0cy48L3A+DQogICAgDQo8cD5BZGRpdGlvbmFsIHNtYXJ0eSB2YXJpYWJsZXMgdGhhdCB5b3UgY2FuIHVzZSBpbmNsdWRlOjwvcD4NCjx0YWJsZT4NCjx0cj48dGg+VmFyaWFibGU8L3RoPjx0aD5WYWx1ZTwvdGg+PC90cj4NCjx0cj48dGQ+dG90YWxfcGFnZXM8L3RkPjx0ZD5udW1iZXIgb2YgcGFnZXMgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPnRoaXNfcGFnZTwvdGQ+PHRkPm51bWJlciBmbyB0aGUgY3VycmVudCBwYWdlIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD50aXRsZV9wYWdlX3hfb2ZfeTwvdGQ+PHRkPmRpc3BsYXlzIFwmcXVvdDtwYWdlIHggb2YgeVwmcXVvdDsgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPmNzc19jbGFzczwvdGQ+PHRkPkNTUyBDbGFzcyBmb3IgdGhlIGZvcm08L3RkPjwvdHI+DQo8dHI+PHRkPmZvcm1fbmFtZTwvdGQ+PHRkPkZvcm0gbmFtZTwvdGQ+PC90cj4NCjx0cj48dGQ+Zm9ybV9pZDwvdGQ+PHRkPkZvcm0gZGF0YWJhc2UgSUQ8L3RkPjwvdHI+DQo8dHI+PHRkPnByZXY8L3RkPjx0ZD5cJnF1b3Q7QmFja1wmcXVvdDsgYnV0dG9uIGZvciBtdWx0aXBhcnQgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPnN1Ym1pdDwvdGQ+PHRkPlwmcXVvdDtDb250aW51ZVwmcXVvdDsgb3IgXCZxdW90O1N1Ym1pdFwmcXVvdDsgYnV0dG9uIGZvciBtdWx0aXBhcnQgZm9ybXMsIGFkanVzdHMgYXV0b21hdGljYWxseTwvdGQ+PC90cj4NCjwvdGFibGU+DQo8cD5EdW5ubyB3aHkgeW91XCYjMDM5O2Qgd2FudCBzb21lIG9mIHRob3NlLCBidXQgdGhlcmUgeW91IGdvLi4uPC9wPg0KDQoNCjxoMz5Lbm93biBJc3N1ZXM8L2gzPg0KPHVsPg0KPGxpPkZvcm1CdWlsZGVyIGlzIG5vdCB5ZXQgaW50ZWdyYXRlZCB3aXRoIEZyb250RW5kIFVzZXJzLiBJdCB3aWxsIGJlLjwvbGk+DQo8bGk+Rm9ybUJ1aWxkZXIgY2Fubm90IHlldCBiZSBpbmxpbmVkLiBUaGF0IHNob3VsZCBiZSBhIHNpbXBsZSB1cGdyYWRlIGRvd24gdGhlIGxpbmUuPC9saT4NCjxsaT5Gb3JtQnVpbGRlciBkb2VzIG5vdCB5ZXQgc3VwcG9ydCBwcmV0dHkgdXJscywgYWx0aG91Z2ggdGhhdCBzaG91bGRuXCYjMDM5O3QgbWF0dGVyIHNpbmNlIHRoZSB1c2VyIHNpZGUgaXMgcHJldHR5IHNpbXBsZS48L2xpPg0KPC91bD4NCg0KPGgzPlRyb3VibGVzaG9vdGluZzwvaDM+DQo8b2w+PGxpPiBGaXJzdCBzdGVwIGlzIHRvIGNoZWNrIHlvdVwmIzAzOTtyZSBydW5uaW5nIENNUyAxLjAtc3ZuIG9yIGxhdGVyLjwvbGk+DQo8bGk+IFNlY29uZCBzdGVwIGlzIHRvIHJlYWQgYW5kIHVuZGVyc3RhbmQgdGhlIGNhdmVhdCBhYm91dCBXWVNJV1lHIGVkaXRvcnMgdXAgaW4gdGhlDQpzZWN0aW9uIDxlbT5BZGRpbmcgYSBGb3JtIHRvIGEgUGFnZTwvZW0+LjwvbGk+DQo8bGk+IElmIHlvdVwmIzAzOTtyZSBtaXNzaW5nIGZpZWxkcyBpbiBhbiBlbWFpbCB0aGF0IGdldHMgZ2VuZXJhdGVkLCBjaGVjayB0aGUgZGlzcG9zaXRpb24gZmllbGRcJiMwMzk7cyB0ZW1wbGF0ZSwgYW5kIG1ha2Ugc3VyZSB5b3VcJiMwMzk7cmUgc3BlY2lmeWluZyB0aGUgbWlzc2luZyBmaWVsZHMuIFNlZW1zIG9idmlvdXMsIGJ1dCBpdFwmIzAzOTtzIGFuIGVhc3kgbWlzdGFrZSB0byBtYWtlLjwvbGk+DQo8bGk+VW5jaGVjayB0aGUgXCZxdW90O0hpZGUgRXJyb3JzXCZxdW90OyBjaGVja2JveCBpbiB0aGUgZ2xvYmFsIG9wdGlvbnMsIGFuZCBzZWUgd2hhdCBtZXNzYWdlIGdldHMgZGlzcGxheWVkIHdoZW4geW91IHN1Ym1pdCB5b3VyIGZvcm0uPC9saT4NCjxsaT4gSnVzdCBtZXNzIGFyb3VuZCBhbmQgdHJ5IGNsaWNraW5nIG9uIGxpbmtzIGFuZCBpY29ucyBhbmQgc3R1ZmYuIFNlZSB3aGF0IGhhcHBlbnMuPC9saT4NCjxsaT4gTGFzdCByZXNwb3J0IGlzIHRvIGVtYWlsIG1lIG9yIGNhdGNoIG1lIG9uIElSQyBhbmQgd2UgY2FuIGdvIGZyb20gdGhlcmUuPC9saT4NCjwvb2w+IA0KPHA+VGhpcyBpcyBubyBsb25nZXIgYSBwYXJ0aWN1bGFybHkgZWFybHkgdmVyc2lvbiwgYnV0IGl0IGlzIHByb2JhYmx5IHN0aWxsIGJ1Z2d5LiBXaGlsZSBJXCYjMDM5O3ZlIGRvbmUgYWxsIEkgY2FuDQp0byBtYWtlIHN1cmUgbm8gZWdyZWdpb3VzIGJ1Z3MgaGF2ZSBjcmVwdCBpbiwgSSBoYXZlIHRvIGFkbWl0IHRoYXQgZHVyaW5nIGVhcmx5IHRlc3RpbmcsIHRoaXMgcHJvZ3JhbQ0KcmV2ZWFsZWQgc2V2ZW4gY29ja3JvYWNoZXMsIHR3byBlYXJ3aWdzLCBhIHNtYWxsIGZhbWlseSBvZiBhcGhpZHMsIGFuZCBhIHdhbGtpbmctc3RpY2sgaW5zZWN0LiBJdCBhbHNvDQphdGUgdGhlIG5laWdoYm9yXCYjMDM5O3MgbmFzdHkgbGl0dGxlIHlhcCBkb2csIGZvciB3aGljaCBJIHdhcyBpbmFwcHJvcHJpYXRlbHkgZ3JhdGVmdWwuPC9wPg0KPHA+VGhlIGZpbmFsIHJlbGVhc2Ugd2lsbCBpbmNsdWRlIGJ1ZyBmaXhlcywgZG9jdW1lbnRhdGlvbiwgYW5kIHVuY29uZGl0aW9uYWwgbG92ZS48L3A+DQo8aDM+U3VwcG9ydDwvaDM+DQo8cD5UaGlzIG1vZHVsZSBkb2VzIG5vdCBpbmNsdWRlIGNvbW1lcmNpYWwgc3VwcG9ydC4gSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+DQo8dWw+DQo8bGk+Rm9yIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIG1vZHVsZSwgRkFRcywgb3IgdG8gZmlsZSBhIEJ1ZyBSZXBvcnQsIHBsZWFzZSB2aXNpdCB0aGUgQ01TIE1hZGUgU2ltcGxlICA8YSBocmVmPVwiaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZ1wiPkRldmVsb3BlciBGb3JnZTwvYT4uPC9saT4NCjxsaT5UbyBvYnRhaW4gY29tbWVyY2lhbCBzdXBwb3J0LCBwbGVhc2Ugc2VuZCBhbiBlbWFpbCB0byB0aGUgYXV0aG9yIGF0IDxhIGhyZWY9XCJtYWlsdG86c2pnQGNtc21vZHVsZXMuY29tXCI+JmFtcDtsdDtzamdAY21zbW9kdWxlcy5jb20mYW1wO2d0OzwvYT4uPC9saT4NCjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9XCJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmdcIj5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi48L2xpPg0KPGxpPlRoZSBhdXRob3IgY2FuIG9mdGVuIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPVwiaXJjOi8vaXJjLmZyZWVub2RlLm5ldC8jY21zXCI+Q01TIElSQyBDaGFubmVsPC9hPi48L2xpPg0KPGxpPkxhc3RseSwgeW91IG1heSBoYXZlIHNvbWUgc3VjY2VzcyBlbWFpbGluZyB0aGUgYXV0aG9yIGRpcmVjdGx5IGFuZCBncm92ZWxsaW5nIGZvciBmcmVlIHN1cHBvcnQuPC9saT4NCjwvdWw+DQo8cD5BcyBwZXIgdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCBhcy1pcy4gUGxlYXNlIHJlYWQgdGhlIHRleHQNCm9mIHRoZSBsaWNlbnNlIGZvciB0aGUgZnVsbCBkaXNjbGFpbWVyLjwvcD4NCjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPg0KPHA+Q29weXJpZ2h0ICZhbXA7Y29weTsgMjAwNywgU2FtdWVsIEdvbGRzdGVpbiA8YSBocmVmPVwibWFpbHRvOnNqZ0BjbXNtb2R1bGVzLmNvbVwiPiZhbXA7bHQ7c2pnQGNtc21vZHVsZXMuY29tJmFtcDtndDs8L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+DQo8cD5UaGlzIG1vZHVsZSBoYXMgYmVlbiByZWxlYXNlZCB1bmRlciB0aGUgPGEgaHJlZj1cImh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTFwiPkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+JzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuMTk1NDMyMzA3NS4xMjY2ODc0Njk4LjEyNzA2NjYyNDguMTI3MTEwMTI2NC4zJzsKJGxhbmdbJ3V0bXonXSA9ICcxNTY4NjEzNTMuMTI3MTEwMTI2NC4zLjMudXRtY2NuPShyZWZlcnJhbCl8dXRtY3NyPWNtc21zLm9yZ3x1dG1jY3Q9L3x1dG1jbWQ9cmVmZXJyYWwnOwokbGFuZ1sncWNhJ10gPSAnUDAtMTE0NzI1ODc1NS0xMjY2ODc0Njk4MDUwJzsKJGxhbmdbJ3V0bWInXSA9ICcxNTY4NjEzNTMnOwokbGFuZ1sndXRtYyddID0gJzE1Njg2MTM1Myc7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lang/ext/de_DE.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0Zvcm1CdWlsZGVyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfJ10gPSAnRmVsZHR5cCB3dXJkZSBuaWNodCBkZWZpbmllcnQnOwokbGFuZ1snZmllbGRfdHlwZV9DYXRhbG9nZXJJdGVtc0ZpZWxkJ10gPSAnVyZhdW1sO2hsZW4gU2llIGVpbmVuIChvZGVyIG1laHJlcmUpIENhdGFsb2dlci1FaW50ciZhdW1sO2dlIGF1cyc7CiRsYW5nWydmaWVsZF90eXBlX0ZpZWxkc2V0RW5kJ10gPSAnLSBGZWxkZWluc3RlbGx1bmdlbiBFbmRlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmllbGRzZXRTdGFydCddID0gJy0gRmVsZGVpbnN0ZWxsdW5nZW4gU3RhcnQnOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0RmllbGQnXSA9ICdUZXh0ZmVsZCc7CiRsYW5nWydmaWVsZF90eXBlX1Bhc3N3b3JkRmllbGQnXSA9ICdQYXNzd29ydCc7CiRsYW5nWydmaWVsZF90eXBlX1Bhc3N3b3JkQWdhaW5GaWVsZCddID0gJ1Bhc3N3b3J0IChub2NobWFscyB6dXIgJlV1bWw7YmVycHImdXVtbDtmdW5nKSc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRGaWVsZEV4cGFuZGFibGUnXSA9ICdUZXh0ZmVsZCAoTWVocmZhY2gpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEFyZWFGaWVsZCddID0gJ1RleHRiZXJlaWNoJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQnV0dG9uRmllbGQnXSA9ICdCdXR0b24gJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hGaWVsZCddID0gJ0tvbnRyb2xsayZhdW1sO3N0Y2hlbic7CiRsYW5nWydmaWVsZF90eXBlX0NoZWNrYm94R3JvdXBGaWVsZCddID0gJ0tvbnRyb2xsayZhdW1sO3N0Y2hlbi1HcnVwcGUnOwokbGFuZ1snZmllbGRfdHlwZV9QdWxsZG93bkZpZWxkJ10gPSAnTGlzdGVuZmVsZCc7CiRsYW5nWydmaWVsZF90eXBlX011bHRpc2VsZWN0RmllbGQnXSA9ICdNZWhyZmFjaGF1c3dhaGwnOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0ZVBpY2tlckZpZWxkJ10gPSAnQXVzd2FobCBlaW5lcyBVLlMuLVN0YWF0ZXMnOwokbGFuZ1snZmllbGRfdHlwZV9Qcm92aW5jZVBpY2tlckZpZWxkJ10gPSAnQXVzd2FobCBlaW5lciBrYW5hZGlzY2hlbiBQcm92aW56JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ291bnRyeVBpY2tlckZpZWxkJ10gPSAnQXVzd2FobCBkZXMgTGFuZGVzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGF0ZVBpY2tlckZpZWxkJ10gPSAnQXVzd2FobCBkZXMgRGF0dW1zJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGltZVBpY2tlckZpZWxkJ10gPSAnQXVzd2FobCBkZXIgWmVpdCc7CiRsYW5nWydmaWVsZF90eXBlX1JhZGlvR3JvdXBGaWVsZCddID0gJ09wdGlvbnNmZWxkLUdydXBwZSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGlyZWN0b3InXSA9ICcqRXJnZWJuaXNzZSBwZXIgRW1haWwgYW4gQXVzd2FobCBhdXMgZGVtIExpc3RlbmZlbGQgc2VuZGVuJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25GaWxlRGlyZWN0b3InXSA9ICcqRXJnZWJuaXNzZSBpbiBlaW5lIERhdGVpIGF1cyBkZXIgTGlzdGVuZmVsZGF1c3dhaGwgc3BlaWNoZXJuJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25NdWx0aXNlbGVjdEZpbGVEaXJlY3RvciddID0gJypEaWUgRXJnZWJuaXNzZSBpbiBEYXRlaShlbikgYXVzIGRlciBNZWhyZmFjaGxpc3Rlbi1BdXN3YWhsIHNwZWljaGVybic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uUGFnZVJlZGlyZWN0b3InXSA9ICcqQXVmIGRpZSBTZWl0ZSBhdXMgZGVtIExpc3RlbmZlbGQgd2VpdGVybGVpdGVuJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbCddID0gJypFcmdlYm5pc3NlIHBlciBFbWFpbCBhbiB2b3JnZWdlYmVuZSBBZHJlc3NlKG4pIHNlbmRlbic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxDb25maXJtYXRpb24nXSA9ICcqJlV1bWw7YmVycHImdXVtbDtmdW5nICZ1dW1sO2JlciBkaWUgRW1haWwtQWRyZXNzZSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRnJvbUVtYWlsQWRkcmVzc0ZpZWxkJ10gPSAnKnBlciBFbWFpbCBhbiBkYXMgJmJkcXVvO0Zyb20gQWRkcmVzcyZsZHF1bzstRmVsZCBlaW5lIEtvcGllIHNlbmRlbic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRmlsZSddID0gJypFcmdlYm5pc3NlIGluIGVpbmUgRGF0ZWkgc2NocmVpYmVuJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EYXRhYmFzZSddID0gJypFcmdlYm5pc3NlIGluIGRlciBEYXRlbmJhbmsgc3BlaWNoZXJuJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Gb3JtQnJvd3NlciddID0gJypFcmdlYm5pc3NlIGYmdXVtbDtyIGRhcyBGb3JtQnJvd3Nlci1Nb2R1bCBWZXJzaW9uIDAuMyBzcGVpY2hlcm4nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvblVzZXJUYWcnXSA9ICcqRWluZW4gYmVudXR6ZXJkZWZpbmllcnRlbiBUYWcgbWl0IGRlbiBFcmdlYm5pc3NlbiBhbHMgUGFyYW1ldGVyIGF1ZnJ1ZmVuJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Gb3JtJ10gPSAnKkVyZ2Vibmlzc2UgYW4gZWluZSBmZXN0Z2VsZWd0ZSBGb3JtdWxhci1Ba3Rpb25zIGVuZGVuJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EZWxpdmVyVG9FbWFpbEFkZHJlc3NGaWVsZCddID0gJypFcmdlYm5pc3NlIHBlciBFbWFpbCBhbiBlaW5lIGJlbnV0emVyZGVmaW5pZXJ0ZSBFbWFpbC1BZHJlc3NlIHZlcnNlbmRlbic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxTaXRlQWRtaW4nXSA9ICcqRW1haWwgYW4gZGVuIENNUy1BZG1pbmlzdHJhdG9yJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUGFnZUJyZWFrRmllbGQnXSA9ICctIFNlaXRlbnVtYnJ1Y2gnOwokbGFuZ1snZmllbGRfdHlwZV9GaWxlVXBsb2FkRmllbGQnXSA9ICdIb2NobGFkZW4gdm9uIERhdGVpZW4nOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxBZGRyZXNzRmllbGQnXSA9ICdFbWFpbC1GZWxkICZiZHF1bztWb24gKEVtYWlsKSZsZHF1bzsnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxBZGRyZXNzQWdhaW5GaWVsZCddID0gJ0VtYWlsLUZlbGQgJmJkcXVvO1ZvbiAoRW1haWwpJmxkcXVvOyB3aWVkZXJob2xlbic7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbE5hbWVGaWVsZCddID0gJ0VtYWlsLUZlbGQgJmJkcXVvO1ZvbiAoTmFtZSkmbGRxdW87JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsU3ViamVjdEZpZWxkJ10gPSAnRW1haWwtRmVsZCAmYmRxdW87QmV0cmVmZiZsZHF1bzsnOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0aWNUZXh0RmllbGQnXSA9ICctIFN0YXRpc2NoZXIgVGV4dCc7CiRsYW5nWydmaWVsZF90eXBlX1N5c3RlbUxpbmtGaWVsZCddID0gJy0gU3RhdGlzY2hlciBMaW5rJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTGlua0ZpZWxkJ10gPSAnTGluayAodm9tIEJlbnV0emVyIGVpbmdlZ2ViZW4pJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfSGlkZGVuRmllbGQnXSA9ICctIFZlcmJvcmdlbmVzIEZlbGQnOwokbGFuZ1snZmllbGRfdHlwZV9Db21wdXRlZEZpZWxkJ10gPSAnLSBCZXJlY2huZXRlcyBGZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVW5pcXVlSW50ZWdlckZpZWxkJ10gPSAnLSBFaW5kZXV0aWdlIEdhbnp6YWhsIChTZXJpZWxsKSc7CiRsYW5nWyd2YWxpZGF0aW9uX25vbmUnXSA9ICdLZWluZSAmVXVtbDtiZXJwciZ1dW1sO2Z1bmcnOwokbGFuZ1sndmFsaWRhdGlvbl9udW1lcmljJ10gPSAnTnVtbWVyaXNjaCc7CiRsYW5nWyd2YWxpZGF0aW9uX2ludGVnZXInXSA9ICdHYW56emFobCc7CiRsYW5nWyd2YWxpZGF0aW9uX2VtYWlsX2FkZHJlc3MnXSA9ICdFbWFpbC1BZHJlc3NlJzsKJGxhbmdbJ3ZhbGlkYXRpb25fdXNwaG9uZSddID0gJ1RlbGVmb25udW1tZXIgKFVTKSc7CiRsYW5nWyd2YWxpZGF0aW9uX211c3RfY2hlY2snXSA9ICdQZmxpY2h0ZmVsZCAnOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9tYXRjaCddID0gJ0VudHNwcmljaHQgZGVtIHJlZ3VsJmF1bWw7cmVuIEF1c2RydWNrJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbm9tYXRjaCddID0gJ0VudHNwcmljaHQgbmljaHQgZGVtIHJlZ3VsJmF1bWw7cmVuIEF1c2RydWNrJzsKJGxhbmdbJ3JlcXVpcmVkX2ZpZWxkX21pc3NpbmcnXSA9ICdGJnV1bWw7ciBlaW4gUGZsaWNodGZlbGQgd3VyZGUga2VpbiBXZXJ0IGVpbmdlZ2ViZW4nOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfdmFsdWUnXSA9ICdCaXR0ZSBnZWJlbiBTaWUgYmVpICZiZHF1bzslcyZsZHF1bzsgZWluZW4gV2VydCBlaW4uJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX251bWJlciddID0gJ0JpdHRlIGdlYmVuIFNpZSBiZWkgJmJkcXVvOyVzJmxkcXVvOyBlaW5lIFphaGwgZWluLic7CiRsYW5nWydwbGVhc2VfZW50ZXJfdmFsaWQnXSA9ICdCaXR0ZSBnZWJlbiBTaWUgYmVpICZiZHF1bzslcyZsZHF1bzsgZWluZW4gZyZ1dW1sO2x0aWdlbiBFaW50cmFnIGVpbi4nOwokbGFuZ1sncGxlYXNlX2VudGVyX2FuX2ludGVnZXInXSA9ICdCaXR0ZSBnZWJlbiBTaWUgYmVpICZiZHF1bzslcyZsZHF1bzsgZWluZW4gZ2FuenphaGxpZ2VuIFdlcnQgZWluLic7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5fZW1haWwnXSA9ICdCaXR0ZSBnZWJlbiBTaWUgZiZ1dW1sO3IgJmJkcXVvOyVzJmxkcXVvOyBlaW5lIGcmdXVtbDtsdGlnZSBFbWFpbC1BZHJlc3NlIGVpbi4nOwokbGFuZ1snZW1haWxfYWRkcmVzc19kb2VzX25vdF9tYXRjaCddID0gJ0RpZSBFbWFpbC1BZHJlc3NlIHN0aW1tdCBuaWNodCBtaXQgZGVyIEVpbmdhYmUgaW4gJmJkcXVvOyVzJmxkcXVvOyAmdXVtbDtiZXJlaW4uJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX3Bob25lJ10gPSAnQml0dGUgZ2ViZW4gU2llIGJlaSAmYmRxdW87JXMmbGRxdW87IGVpbmUgZyZ1dW1sO2x0aWdlIFRlbGVmb25udW1tZXIgZWluLic7CiRsYW5nWydwbGVhc2VfbG9naW4nXSA9ICdCaXR0ZSBtZWxkZW4gU2llIHNpY2ggYW4sIHVtIGRpZXNlcyBGb3JtdWxhciB6dSB2ZXJ3ZW5kZW4hJzsKJGxhbmdbJ25vdF92YWxpZF9lbWFpbCddID0gJyZiZHF1bzslcyZsZHF1bzsgc2NoZWludCBrZWluZSBnJnV1bWw7bHRpZ2UgRW1haWwtQWRyZXNzZSB6dSBzZWluLic7CiRsYW5nWydwbGVhc2VfZW50ZXJfbm9fbG9uZ2VyJ10gPSAnQml0dGUgZ2ViZW4gU2llIGVpbmVuIFdlcnQgZWluLCBkZXIgbmljaHQgbCZhdW1sO25nZXIgYWxzICVzIFplaWNoZW4gaXN0Lic7CiRsYW5nWydwbGVhc2VfZW50ZXJfYXRfbGVhc3QnXSA9ICdCaXR0ZSBnZWJlbiBTaWUgZWluZW4gV2VydCBlaW4sIGRlciBtaW5kZXN0ZW5zICVzIFplaWNoZW4gaGF0Lic7CiRsYW5nWyd0aXRsZV9saXN0X2RlbGltaXRlciddID0gJ1plaWNoZW4sIGRhcyBhbHMgVHJlbm5lciB2ZXJ3ZW5kZXQgd2VyZGVuIHNvbGwsIHdlbm4gbWVociBhbHMgZWluIFdlcnQgYWxzIEVyZ2VibmlzIHp1ciZ1dW1sO2NrZ2VnZWJlbiB3aXJkJzsKJGxhbmdbJ3lvdV9uZWVkX3Blcm1pc3Npb24nXSA9ICdTaWUgYmVuJm91bWw7dGlnZW4gZGllIEJlcmVjaHRpZ3VuZyAmYmRxdW87JXMmbGRxdW87LCB1bSBkaWVzZSBBa3Rpb24gYXVzenVmJnV1bWw7aHJlbi4nOwokbGFuZ1snbGFja3Blcm1pc3Npb24nXSA9ICdTaWUgaGFiZW4gbmljaHQgZGllIGVyZm9yZGVybGljaGUgQmVyZWNodGlndW5nLCB1bSBhdWYgZGllc2VuIEJlcmVpY2ggenV6dWdyZWlmZW4uJzsKJGxhbmdbJ2ZpZWxkX29yZGVyX3VwZGF0ZWQnXSA9ICdGZWxkcmVpaGVuZm9sZ2UgYWt0dWFsaXNpZXJ0Lic7CiRsYW5nWydmb3JtX2RlbGV0ZWQnXSA9ICdGb3JtdWxhciBnZWwmb3VtbDtzY2h0Lic7CiRsYW5nWydmaWVsZF9kZWxldGVkJ10gPSAnRmVsZCBnZWwmb3VtbDtzY2h0Lic7CiRsYW5nWydjb25maWd1cmF0aW9uX3VwZGF0ZWQnXSA9ICdLb25maWd1cmF0aW9uZW4gYWt0dWFsaXNpZXJ0Lic7CiRsYW5nWyd5b3VfbXVzdF9jaGVjayddID0gJ0Jldm9yIFNpZSB3ZWl0ZXJtYWNoZW4gayZvdW1sO25uZW4sIG0mdXVtbDtzc2VuIFNpZSAmYmRxdW87JXMmbGRxdW87ICZ1dW1sO2JlcnByJnV1bWw7ZmVuLic7CiRsYW5nWydtdXN0X3NwZWNpZnlfb25lX2Rlc3RpbmF0aW9uJ10gPSAnU2llIG0mdXVtbDtzc2VuIGhpZXIgbWluZGVzdGVucyBlaW5lIFppZWxhZHJlc3NlIGFuZ2ViZW4hJzsKJGxhbmdbJ2FyZV95b3Vfc3VyZV9kZWxldGVfZm9ybSddID0gJ1dvbGxlbiBTaWUgZGFzIEZvcm11bGFyICZiZHF1bzslcyZsZHF1bzsgd2lya2xpY2ggbCZvdW1sO3NjaGVuPyc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2ZpZWxkJ10gPSAnV29sbGVuIFNpZSBkYXMgRmVsZCAmYmRxdW87JXMmbGRxdW87IHdpcmtsaWNoIGwmb3VtbDtzY2hlbj8nOwokbGFuZ1snbm90aWNlX3NlbGVjdF90eXBlJ10gPSAnRGllIGVyd2VpdGVydGVuIE9wdGlvbmVuIHNpbmQgZXJzdCB2ZXJmJnV1bWw7Z2Jhciwgd2VubiBkZXIgRmVsZHR5cCBmZXN0Z2VsZWd0IHd1cmRlLic7CiRsYW5nWydmaWVsZF9uYW1lX2luX3VzZSddID0gJ0RlciBGZWxkbmFtZSAmYmRxdW87JXMmbGRxdW87IHdpcmQgYmVyZWl0cyB2ZXJ3ZW5kZXQuIEJpdHRlIHZlcndlbmRlbiBTaWUgZWluZGV1dGlnZSBGZWxkbmFtZW4gb2RlciBkZWFrdGl2aWVyZW4gZGllIFZlcndlbmR1bmcgZWluZGV1dGlnZXIgRmVsZG5hbWVuIGluIGRlciBGb3JtQnVpbGRlci1Lb25maWd1cmF0aW9uLic7CiRsYW5nWydmaWVsZF9ub19uYW1lJ10gPSAnRGllIEZlbGRlciBtJnV1bWw7c3NlbiBlaW5lbiBOYW1lbiBlcmhhbHRlbiwgb2RlciBTaWUgZGVha3RpdmllcmVuIGRpZXMgaW4gZGVyIEZvcm1CdWlsZGVyLUtvbmZpZ3VyYXRpb24uJzsKJGxhbmdbJ2Fub255bW91cyddID0gJ0Fub255bSc7CiRsYW5nWydhYmJyZXZpYXRpb25fbGVuZ3RoJ10gPSAnTCZhdW1sO25nZTogJXMnOwokbGFuZ1snYm94ZXMnXSA9ICclcyBLb250cm9sbGsmYXVtbDtzdGNoZW4nOwokbGFuZ1snb3B0aW9ucyddID0gJyVzIE9wdGlvbmVuJzsKJGxhbmdbJ3RleHRfbGVuZ3RoJ10gPSAnJXMgWmVpY2hlbic7CiRsYW5nWydvcmRlciddID0gJ1JlaWhlbmZvbGdlJzsKJGxhbmdbJ3Vuc3BlY2lmaWVkJ10gPSAnKG5pY2h0IGFuZ2VnZWJlbiknOwokbGFuZ1snYWRkZWQnXSA9ICdoaW56dWdlZiZ1dW1sO2d0JzsKJGxhbmdbJ3VwZGF0ZWQnXSA9ICdha3R1YWxpc2llcnQnOwokbGFuZ1snc29ydF9vcHRpb25zJ10gPSAnT3B0aW9uZW4genVyIFNvcnRpZXJ1bmcgYmVpIGRlciBBdXNnYWJlJzsKJGxhbmdbJ3NlbGVjdF9vbmUnXSA9ICdCaXR0ZSBlaW5lbiBhdXN3JmF1bWw7aGxlbic7CiRsYW5nWydzZWxlY3RfdHlwZSddID0gJ0VpbmVuIFR5cCBhdXN3JmF1bWw7aGxlbic7CiRsYW5nWyd0byddID0gJ0FuJzsKJGxhbmdbJ3llcyddID0gJ0phJzsKJGxhbmdbJ25vJ10gPSAnTmVpbic7CiRsYW5nWydyZWNpcGllbnRzJ10gPSAnRW1wZiZhdW1sO25nZXInOwokbGFuZ1snZmlsZV9jb3VudCddID0gJyVzIG0mb3VtbDtnbGljaGUgRGF0ZWllbic7CiRsYW5nWydkZXN0aW5hdGlvbl9jb3VudCddID0gJyVzIFppZWxlJzsKJGxhbmdbJ3NhdmUnXSA9ICdTcGVpY2hlcm4nOwokbGFuZ1snYWRkJ10gPSAnSGluenVmJnV1bWw7Z2VuJzsKJGxhbmdbJ3VwZGF0ZSddID0gJ0FrdHVhbGlzaWVyZW4nOwokbGFuZ1snc2F2ZV9hbmRfY29udGludWUnXSA9ICdTcGVpY2hlcm4gdW5kIEJlYXJiZWl0dW5nIGZvcnRzZXR6ZW4nOwokbGFuZ1snaW5mb3JtYXRpb24nXSA9ICdJbmZvcm1hdGlvbiAnOwokbGFuZ1snYXV0b21hdGljJ10gPSAnQXV0b21hdGlzY2gnOwokbGFuZ1snZm9ybXMnXSA9ICdGb3JtdWxhcmUnOwokbGFuZ1snZm9ybSddID0gJ0Zvcm11bGFyICVzJzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb24nXSA9ICdLb25maWd1cmF0aW9uJzsKJGxhbmdbJ2ZpZWxkX3JlcXVpcmVtZW50X3VwZGF0ZWQnXSA9ICdGZWxkc3RhdHVzIGFrdHVhbGlzaWVydC4nOwokbGFuZ1snbWF4aW11bV9zaXplJ10gPSAnTWF4LiBHciZvdW1sOyZzemxpZztlJzsKJGxhbmdbJ3Blcm1pdHRlZF9leHRlbnNpb25zJ10gPSAnRGF0ZWllcndlaXRlcnVuZ2VuJzsKJGxhbmdbJ3Blcm1pdHRlZF9maWxldHlwZXMnXSA9ICdFcmxhdWJ0ZSBEYXRlaXR5cGVuJzsKJGxhbmdbJ2ZpbGVfdG9vX2xhcmdlJ10gPSAnRGllIGhvY2hnZWxhZGVuZSBEYXRlaSBpc3QgenUgZ3JvJnN6bGlnOyEgRGllIG1heGltYWxlIEdyJm91bWw7JnN6bGlnO2UgaXN0Oic7CiRsYW5nWydpbGxlZ2FsX2ZpbGVfdHlwZSddID0gJ0RpZXNlciBEYXRlaXR5cCBkYXJmIG5pY2h0IGhvY2hnZWxhZGVuIHdlcmRlbi4gQml0dGUgcHImdXVtbDtmZW4gU2llLCBvYiBkaWUgRGF0ZXJld2VpdGVydW5nIGtvcnJla3QgaXN0Lic7CiRsYW5nWyd1cGxvYWQnXSA9ICdIb2NobGFkZW4nOwokbGFuZ1snZm9ybV9pbXBvcnRlZCddID0gJ0Zvcm11bGFyIGltcG9ydGllcnQuJzsKJGxhbmdbJ2Zvcm1faW1wb3J0X2ZhaWxlZCddID0gJ0Zvcm11bGFyLUltcG9ydCBmZWhsZ2VzY2hsYWdlbiEgRXMgaXN0IGVpbiBQcm9ibGVtIG1pdCBkZW0gRm9ybWF0IGRlciBYTUwtRGF0ZWkgYXVmZ2V0cmV0ZW4uJzsKJGxhbmdbJ3Jvd3MnXSA9ICclcyBaZWlsZW4nOwokbGFuZ1snY29scyddID0gJyVzIFNwYWx0ZW4nOwokbGFuZ1snMTJfaG91ciddID0gJzEyLVN0dW5kZW4tQW56ZWlnZSc7CiRsYW5nWycyNF9ob3VyJ10gPSAnMjQtU3R1bmRlbi1BbnplaWdlJzsKJGxhbmdbJ2hvdXInXSA9ICdTdHVuZGUnOwokbGFuZ1snbWluJ10gPSAnTWludXRlICc7CiRsYW5nWydtZXJpZCddID0gJ01lcmlkaWFuICc7CiRsYW5nWydkYXRlX3JhbmdlJ10gPSAnQmVyZWljaDogJXMgJm5kYXNoOyAlcyc7CiRsYW5nWyd0aGFua3MnXSA9ICdWaWVsZW4gRGFuayEgSWhyZSBFaW5nYWJlbiB3dXJkZW4gZXJmb2xncmVpY2ggdmVyc2FuZHQuJzsKJGxhbmdbJ2VkaXQnXSA9ICdCZWFyYmVpdGVuJzsKJGxhbmdbJ2RlbGV0ZSddID0gJ0wmb3VtbDtzY2hlbic7CiRsYW5nWydkYXknXSA9ICdUYWcnOwokbGFuZ1snbW9uJ10gPSAnTW9uYXQnOwokbGFuZ1sneWVhciddID0gJ0phaHInOwokbGFuZ1snbm9uZSddID0gJyhrZWluZSBBbmdhYmUpJzsKJGxhbmdbJ2NzcyddID0gJ0NTUyAnOwokbGFuZ1sndW5pbnN0YWxsZWQnXSA9ICdNb2R1bCBkZWluc3RhbGxpZXJ0Lic7CiRsYW5nWydpbnN0YWxsZWQnXSA9ICdNb2R1bHZlcnNpb24gJXMgaW5zdGFsbGllcnQuJzsKJGxhbmdbJ3VwZ3JhZGVkJ10gPSAnTW9kdWwgYXVmIFZlcnNpb24gJXMgYWt0dWFsaXNpZXJ0Lic7CiRsYW5nWydidXR0b25fcHJldmlvdXMnXSA9ICc8IHp1ciZ1dW1sO2NrJzsKJGxhbmdbJ2J1dHRvbl9zdWJtaXQnXSA9ICdGb3JtdWxhciBhYnNlbmRlbic7CiRsYW5nWydidXR0b25fY29udGludWUnXSA9ICd3ZWl0ZXIgPic7CiRsYW5nWyd2YWx1ZV9jaGVja2VkJ10gPSAnR2VwciZ1dW1sO2Z0JzsKJGxhbmdbJ3ZhbHVlX3VuY2hlY2tlZCddID0gJ1VuZ2VwciZ1dW1sO2Z0JzsKJGxhbmdbJ3RhYl9tYWluJ10gPSAnSGF1cHRzZWl0ZSc7CiRsYW5nWyd0YWJfc3ltYm9sJ10gPSAnRWluc3RlbGx1bmdlbiBmJnV1bWw7ciBkaWUgRm9ybXVsYXJhbnplaWdlJzsKJGxhbmdbJ3RhYl9zdWJtaXQnXSA9ICdGb3JtdWxhci1WZXJzYW5kJzsKJGxhbmdbJ3RhYl9jYXB0Y2hhJ10gPSAnQ2FwdGNoYS1FaW5zdGVsbHVuZ2VuJzsKJGxhbmdbJ3RhYl9hZHZhbmNlZCddID0gJ0Vyd2VpdGVydGUgRWluc3RlbGx1bmdlbic7CiRsYW5nWyd0YWJfdGVtcGxhdGVsYXlvdXQnXSA9ICdGb3JtdWxhci1UZW1wbGF0ZSc7CiRsYW5nWyd0YWJfc3VibWlzc2lvbnRlbXBsYXRlJ10gPSAnQmVzdCZhdW1sO3RpZ3VuZ3MtVGVtcGxhdGUnOwokbGFuZ1snY2FudXNlX3NtYXJ0eSddID0gJzxlbT5JbiBkaWVzZW0gRmVsZCBzaW5kIGF1Y2ggU21hcnR5LVZhcmlhYmxlbiBnJnV1bWw7bHRpZ2UgV2VydGUuPGVtPic7CiRsYW5nWydhZGRfb3B0aW9ucyddID0gJ1dlaXRlcmUgT3B0aW9uZW4gaGluenVmJnV1bWw7Z2VuJzsKJGxhbmdbJ2RlbGV0ZV9vcHRpb25zJ10gPSAnTWFya2llcnRlIE9wdGlvbmVuIGwmb3VtbDtzY2hlbic7CiRsYW5nWydhZGRfY2hlY2tib3hlcyddID0gJ1dlaXRlcmUgS29udHJvbGxrJmF1bWw7c3RjaGVuIGhpbnp1ZiZ1dW1sO2dlbic7CiRsYW5nWydkZWxldGVfY2hlY2tib3hlcyddID0gJ01hcmtpZXJ0ZSBLb250cm9sbGsmYXVtbDtzdGNoZW4gbCZvdW1sO3NjaGVuJzsKJGxhbmdbJ2FkZF9hZGRyZXNzJ10gPSAnRWluZSB3ZWl0ZXJlIEFkcmVzc2UgaGluenVmJnV1bWw7Z2VuJzsKJGxhbmdbJ2RlbGV0ZV9hZGRyZXNzJ10gPSAnTWFya2llcnRlIEFkcmVzc2VuIGwmb3VtbDtzY2hlbic7CiRsYW5nWydhZGRfZGVzdGluYXRpb24nXSA9ICdFaW4gd2VpdGVyZXMgWmllbCBoaW56dWYmdXVtbDtnZW4nOwokbGFuZ1snZGVsZXRlX2Rlc3RpbmF0aW9uJ10gPSAnTWFya2llcnRlIFppZWxlIGwmb3VtbDtzY2hlbic7CiRsYW5nWydzdXNwZWN0ZWRfc3BhbSddID0gJ1ZvbiBJaHJlciBJUC1BZHJlc3NlIHd1cmRlbiB6dSB2aWVsZSBFbWFpbHMgZ2VuZXJpZXJ0LiBFcyB3dXJkZSBkYWhlciB2b3JiZXVnZW5kIGVpbiBBbnRpLVNwYW0tQ29kZSBhdXNnZWdlYmVuLic7CiRsYW5nWydzdXNwZWN0ZWRfc3BhbV9sb2cnXSA9ICdWZXJkJmF1bWw7Y2h0aWdlciBTcGFtIHZvbiBkZXIgSVAgJXMgd3VyZGUgZ2VzdG9wcHQuJzsKJGxhbmdbJ3Jlb3JkZXInXSA9ICdGZWxkZXIgbmV1IG9yZG5lbic7CiRsYW5nWydjYW5jZWwnXSA9ICdBYmJyZWNoZW4nOwokbGFuZ1sndmFsdWVfc2V0J10gPSAnRmVzdGdlbGVndGVyIFdlcnQ6ICVzJzsKJGxhbmdbJ2hlbHBfY2F0YWxvZ2VyX2F0dHJpYnV0ZV9maWVsZHMnXSA9ICdJbSBmb2xnZW5kZW4gZmluZGVuIFNpZSBlaW5lIExpc3RlIHZvbiBBdHRyaWJ1dGVuLCBkaWUgdm9tIENhdGFsb2dlci1Nb2R1bCB2ZXJmJnV1bWw7Z2JhciBzaW5kLjxici8+T3B0aW9uYWwgayZvdW1sO25uZW4gU2llIGcmdXVtbDtsdGlnZSBCZXJlaWNoZSwgV2VydGUgb2RlciBtZWhyZXJlIFdlcnRlIGZlc3RsZWdlbiwgZGllIHp1ciBGaWx0ZXJ1bmcgZGVyIEVpbnRyJmF1bWw7Z2UgdmVyd2VuZGV0IHdlcmRlbiBrJm91bWw7bm5lbiwgZGllIGRlbiBCZXN1Y2hlcm4gYW5nZXplaWd0IHdlcmRlbi48YnIvPg0KPGJyLz4NCjxzdHJvbmc+QmVyZWljaGU6PC9zdHJvbmc+PGJyLz4NClZlcndlbmRlbiBTaWUgZGVuIFN5bnRheDogJnF1b3Q7cmFuZ2U6IG1pbldlcnQgdG8gbWF4V2VydCZxdW90OywgdW0gZWluZW4gbWluaW1hbGVuIHVuZCBlaW5lbiBtYXhpbWFsZW4gV2VydCBmZXN0enVsZWdlbi48YnIvPg0KPGJyLz4NCjxzdHJvbmc+TWVocmVyZSBXZXJ0ZTo8L3N0cm9uZz48YnIvPg0KIFZlcndlbmRlbiBTaWUgZGVuIFN5bnRheCAmcXVvdDttdWx0aTogV2VydDF8V2VydDJ8V2VydDMmcXVvdDssIHVtIG1laHJlcmUgV2VydGUgZiZ1dW1sO3IgZWluIEF0dHJpYnV0IGZlc3R6dWxlZ2VuLjxici8+DQo8YnIvPg0KPHN0cm9uZz5XZXJ0ZSBkZXIgdmVyYm9yZ2VuZW4gRmVsZGVyPC9zdHJvbmc+PGJyLz4NClZlcndlbmRlbiBTaWUgZGVuIFN5bnRheCB7JGZsZF9pZH0sIHVtIGVpbmVuIFdlcnQgZiZ1dW1sO3IgZWluIHZlcmJvcmdlbmVzIEZlbGQgZmVzdHp1bGVnZW4uPGJyLz4NCjxici8+JzsKJGxhbmdbJ2hlbHBfbmFtZV9yZWdleCddID0gJ0VpbiByZWd1bCZhdW1sO3JlciBBdXNkcnVjaywgZGVyIGVzIGVybSZvdW1sO2dsaWNodCwgQ2F0YWxvZ2VyLUVpbnRyJmF1bWw7Z2UgbmFjaCBkZW0gTmFtZW4genUgZmlsdGVybic7CiRsYW5nWydoZWxwX2ZpZWxkX2hlaWdodCddID0gJ0RpZSBIJm91bWw7aGUgZGVzIEZlbGRlcyB6dXIgTWVocmZhY2hhdXN3YWhsJzsKJGxhbmdbJ3RpdGxlX25hbWVfcmVnZXgnXSA9ICdSZWd1bCZhdW1sO3JlciBBdXNkcnVjayBmJnV1bWw7ciBkaWUgTmFtZW4gdm9uIENhdGFsb2dlci1FaW50ciZhdW1sO2dlbic7CiRsYW5nWyd0aXRsZV9maWVsZF9oZWlnaHQnXSA9ICdGZWxkLUgmb3VtbDtoZSc7CiRsYW5nWyd0aXRsZV9maWxlX3BhdGgnXSA9ICdaaWVsdmVyemVpY2huaXMgZiZ1dW1sO3IgZGllIGF1c2dlZ2ViZW5lbiBEYXRlaWVuJzsKJGxhbmdbJ3RpdGxlX3VkdF9uYW1lJ10gPSAnQmVudXR6ZXJkZWZpbmllcnRlciBUYWcnOwokbGFuZ1sndGl0bGVfdXBsb2Fkc19kZXN0cGFnZSddID0gJ1NlaXRlLCBhdWYgZGVyIGRlciBVcGxvYWRzLUxpbmsgZGFyZ2VzdGVsbHQgd2VyZGVuIHNvbGwnOwokbGFuZ1sndGl0bGVfdXBsb2FkbW9kdWxlX3N1bW1hcnknXSA9ICdNaXQgZGVtIEZvcm1CdWlsZGVyLU1vZHVsIHZlcnNhbmR0ICc7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2NhdGVnb3J5J10gPSAnVXBsb2Fkcy1LYXRlZ29yaWUnOwokbGFuZ1sndGl0bGVfc2VuZHRvX3VwbG9hZHMnXSA9ICdEaWVzZSBEYXRlaSBhbiBkYXMgVXBsb2Fkcy1Nb2R1bCAmdXVtbDtiZXJnZWJlbic7CiRsYW5nWyd0aXRsZV9sZWdlbmQnXSA9ICdMZWdlbmRlJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fbGVuZ3RoJ10gPSAnTWF4aW1hbGUgTCZhdW1sO25nZSc7CiRsYW5nWyd0aXRsZV9jaGVja2JveF9sYWJlbCddID0gJ0Jlc2NocmlmdHVuZyBkZXMgS29udHJvbGxrJmF1bWw7c3RjaGVucyc7CiRsYW5nWyd0aXRsZV9yYWRpb19sYWJlbCddID0gJ0Jlc2NocmlmdHVuZyBkZXMgT3B0aW9uc2ZlbGRlcyc7CiRsYW5nWyd0aXRsZV9jaGVja2VkX3ZhbHVlJ10gPSAnV2VydCBuYWNoIGVyZm9sZ3RlciBBa3RpdmllcnVuZyc7CiRsYW5nWyd0aXRsZV91bmNoZWNrZWRfdmFsdWUnXSA9ICdXZXJ0IG9obmUgZXJmb2xndGUgQWt0aXZpZXJ1bmcnOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfZGV0YWlscyddID0gJ0RldGFpbHMgenVyIEtvbnRyb2xsayZhdW1sO3N0Y2hlbi1HcnVwcGUnOwokbGFuZ1sndGl0bGVfZGVsZXRlJ10gPSAnTCZvdW1sO3NjaGVuPyc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rfb25lX21lc3NhZ2UnXSA9ICdUZXh0IGYmdXVtbDtyICZiZHF1bztCaXR0ZSBhdXN3JmF1bWw7aGxlbiZsZHF1bzsnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX3ZhbHVlJ10gPSAnQXVzd2FobCBXZXJ0JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl9kaXNwbGF5bmFtZSddID0gJ0F1c3dhaGwgZGVzIGFuZ2V6ZWlndGVuIE5hbWVucyc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fc3ViamVjdCddID0gJ0F1c3dhaGwgZGVzICZiZHF1bztCZXRyZWZmcyZsZHF1bzsnOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfY291bnRyeSddID0gJ1N0YW5kYXJkYXVzd2FobCc7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9zdGF0ZSddID0gJ1N0YW5kYXJkYXVzd2FobCc7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9wcm92aW5jZSddID0gJ1N0YW5kYXJkYXVzd2FobCc7CiRsYW5nWyd0aXRsZV9vcHRpb25fbmFtZSddID0gJ05hbWUgZGVyIE9wdGlvbic7CiRsYW5nWyd0aXRsZV9vcHRpb25fdmFsdWUnXSA9ICcmVXVtbDtiZXJtaXR0ZWx0ZXIgV2VydCc7CiRsYW5nWyd0aXRsZV9wdWxsZG93bl9kZXRhaWxzJ10gPSAnTGlzdGVuZmVsZC1PcHRpb25lbic7CiRsYW5nWyd0aXRsZV9tdWx0aXNlbGVjdF9kZXRhaWxzJ10gPSAnT3B0aW9uZW4genVyIE1laHJmYWNoYXVzd2FobCc7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9hZGRyZXNzJ10gPSAnWmllbC1FbWFpbC1BZHJlc3NlJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2ZpbGVuYW1lJ10gPSAnTmFtZSBkZXIgWmllbGRhdGVpJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fbmFtZSddID0gJyZiZHF1bztWb24gKE5hbWUpJmxkcXVvOyBkZXIgRW1haWwnOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9lbWFpbF9yZWdleCddID0gJ0xvY2tlcmUgRW1haWwtJlV1bWw7YmVycHImdXVtbDtmdW5nIHZlcndlbmRlbic7CiRsYW5nWyd0aXRsZV9yZWxheGVkX3JlZ2V4X2xvbmcnXSA9ICdWZXJ3ZW5kZXQgZWluZSBsb2NrZXJlICZVdW1sO2JlcnByJnV1bWw7ZnVuZyBkZXIgRW1haWwgKGVybGF1YnQgei4gQnNwLiAmYmRxdW87eEB5JmxkcXVvOyBhbnN0YXR0IGRlcyBlcmZvcmRlcmxpY2hlbiAmYmRxdW87eEB5LmRlJmxkcXVvOyknOwokbGFuZ1sndGl0bGVfZW1haWxfZnJvbV9hZGRyZXNzJ10gPSAnJmJkcXVvO1ZvbiAoRW1haWwtQWRyZXNzZSkmbGRxdW87IGRlciBFbWFpbCc7CiRsYW5nWyd0aXRsZV9lbWFpbF9lbmNvZGluZyddID0gJ1plaWNoZW5rb2RpZXJ1bmcgZGVyIEVtYWlsJzsKJGxhbmdbJ3RpdGxlX2RpcmVjdG9yX2RldGFpbHMnXSA9ICdMaXN0ZW5mZWxkYmFzaWVydGUgRW1haWwtRGV0YWlscyc7CiRsYW5nWyd0aXRsZV9maWxlX25hbWUnXSA9ICdEYXRlaW5hbWUnOwokbGFuZ1sndGl0bGVfZW1haWxfc3ViamVjdCddID0gJ0JldHJlZmYtWmVpbGUgZGVyIEVtYWlsJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmFtZSddID0gJ0Zvcm11bGFybmFtZSc7CiRsYW5nWyd0aXRsZV9mb3JtX3N0YXR1cyddID0gJ0Zvcm11bGFyc3RhdHVzJzsKJGxhbmdbJ3RpdGxlX3JlYWR5X2Zvcl9kZXBsb3ltZW50J10gPSAnRWluc2F0emJlcmVpdCc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkxJ10gPSAnTmljaHQgZWluc2F0emJlcmVpdCc7CiRsYW5nWyd0aXRsZV9yZWRpcmVjdF9wYWdlJ10gPSAnU2VpdGUsIGF1ZiBkaWUgbmFjaCBkZW0gVmVyc2FuZCBnZXNwcnVuZ2VuIHdlcmRlbiBzb2xsJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTInXSA9ICdCaXR0ZSBmJnV1bWw7Z2VuIFNpZSBlaW4gRmVsZCBoaW56dSwgbWl0IGRlbSBkaWUgQmVudXR6ZXJlaW5nYWJlbiB2ZXJhcmJlaXRldCB3ZXJkZW4uIFNpZSBrJm91bWw7bm5lbic7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHlfbGluayddID0gJ2RpZXNlIFRhc3RlbmtvbWJpbmF0aW9uIHZlcndlbmRlbiwnOwokbGFuZ1sndGl0bGVfZm9ybV9hbGlhcyddID0gJ0Zvcm11bGFyLUFsaWFzJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2FsaWFzX3Nob3J0J10gPSAnQWxpYXMgJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fZmllbGRzJ10gPSAnRm9ybXVsYXJmZWxkZXInOwokbGFuZ1sndGl0bGVfZmllbGRfaWQnXSA9ICdGZWxkLUlEJzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRhbGlhc2VzJ10gPSAnRmVsZC1BbGlhc2UgYW56ZWlnZW4nOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGFsaWFzZXNfbG9uZyddID0gJ0FrdGl2aWVyZW4gU2llIGRpZXMsIHdlbm4gYmVpbSBCZWFyYmVpdGVuIGRlcyBGb3JtdWxhcnMgZGVyIEZlbGQtQWxpYXMgYW5nZXplaWd0IHdlcmRlbiBzb2xsJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX25hbWUnXSA9ICdGZWxkbmFtZSc7CiRsYW5nWyd0aXRsZV9maWVsZF9hbGlhcyddID0gJ0ZlbGQtQWxpYXMnOwokbGFuZ1sndGl0bGVfcmFkaW9ncm91cF9kZXRhaWxzJ10gPSAnRGV0YWlscyB6dXIgT3B0aW9uc2ZlbGQtR3J1cHBlJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3R5cGUnXSA9ICdGZWxkdHlwJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTMnXSA9ICd1bSBlaW4gRmVsZCB6dXIgRm9ybXVsYXJ2ZXJhcmJlaXR1bmcgenUgZXJzdGVsbGVuLic7CiRsYW5nWyd0aXRsZV9hZGRfbmV3X2Zvcm0nXSA9ICdOZXVlcyBGb3JtdWxhciBoaW56dWYmdXVtbDtnZW4nOwokbGFuZ1sndGl0bGVfc2hvd192ZXJzaW9uJ10gPSAnVmVyc2lvbiBkZXMgRm9ybUJ1aWxkZXItTW9kdWxzIGFuemVpZ2VuPyc7CiRsYW5nWyd0aXRsZV9zaG93X3ZlcnNpb25fbG9uZyddID0gJ0FscyBIaWxmZSB6dXIgRmVobGVyYmVzZWl0aWd1bmcgd2lyZCBkaWUgVmVyc2lvbnNudW1tZXIgZGVzIEZvcm1CdWlsZGVyLU1vZHVscyBpbiBlaW5lbSBLb21tZW50YXIgZWluZ2ViZXR0ZXQuJzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZmllbGQnXSA9ICdOZXVlcyBGZWxkIGhpbnp1ZiZ1dW1sO2dlbic7CiRsYW5nWyd0aXRsZV9mb3JtX3N1Ym1pdF9idXR0b24nXSA9ICdUZXh0IGYmdXVtbDtyIGRlbiAmcXVvdDtBYnNlbmRlbiZxdW90Oy1CdXR0b24nOwokbGFuZ1sndGl0bGVfYnV0dG9uX3RleHQnXSA9ICdCdXR0b24tVGV4dCc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eSddID0gJ1NvbGwgZGVtIFZlcnNlbmRlbi1Lbm9wZiBlaW4gSmF2YXNjcmlwdCBoaW56dWdlZiZ1dW1sO2d0IHdlcmRlbiwgdW0gZGVuIG1laHJmYWNoZW4gVmVyc2FuZCBkZXMgRm9ybXVsYXJzIHp1IHZlcmhpbmRlcm4/JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5X2hlbHAnXSA9ICdTaWNoZXJoZWl0c3NjcmlwdCBoaW56dWYmdXVtbDtnZW4nOwokbGFuZ1sndGl0bGVfZm9ybV9uZXh0X2J1dHRvbiddID0gJ1RleHQgZiZ1dW1sO3IgZGVuICZxdW90O1dlaXRlciZxdW90Oy1CdXR0b24gKGYmdXVtbDtyIG1laHJzZWl0aWdlIEZvcm11bGFyZSknOwokbGFuZ1sndGl0bGVfZm9ybV9wcmV2X2J1dHRvbiddID0gJ1RleHQgZiZ1dW1sO3IgZGVuICZxdW90O1p1ciZ1dW1sO2NrJnF1b3Q7LUJ1dHRvbiAoZiZ1dW1sO3IgbWVocnNlaXRpZ2UgRm9ybXVsYXJlKSc7CiRsYW5nWyd0aXRsZV9maWVsZF92YWxpZGF0aW9uJ10gPSAnRmVsZC0mVXVtbDtiZXJwciZ1dW1sO2Z1bmcnOwokbGFuZ1sndGl0bGVfZmllbGRfdG9fdmFsaWRhdGUnXSA9ICdadSAmdXVtbDtiZXJwciZ1dW1sO2ZlbmRlcyBGZWxkJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2Nzc19pZCddID0gJ0NTUy1JRCBmJnV1bWw7ciBkaWVzZXMgRmVsZCc7CiRsYW5nWyd0aXRsZV9mb3JtX2Nzc19jbGFzcyddID0gJ0NTUy1LbGFzc2UgZiZ1dW1sO3IgZGllc2VzIEZvcm11bGFyJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2Nzc19jbGFzcyddID0gJ0NTUy1LbGFzc2UgZiZ1dW1sO3IgZGllc2VzIEZlbGQnOwokbGFuZ1sndGl0bGVfZm9ybV9wcmVkaXNwbGF5X3VkdCddID0gJ0JlbnV0emVyZGVmaW5pZXJ0ZXIgVGFnLCBkZXIgdm9yIGRlciBBbnplaWdlIGRlcyBGb3JtdWxhcnMgYXVzZ2VmJnV1bWw7aHJ0IHdlcmRlbiBzb2xsJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcmVxdWlyZWRfc3ltYm9sJ10gPSAnU3ltYm9sIHp1ciBLZW5uemVpY2hudW5nIGRlciBQZmxpY2h0ZmVsZGVyJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkJ10gPSAnUGZsaWNodGZlbGQnOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWRfbG9uZyddID0gJ0VyZm9yZGVydCB6d2luZ2VuZCBlaW5lIEFudHdvcnQgaW4gZGllc2VtIEZlbGQnOwokbGFuZ1sndGl0bGVfaGlkZV9sYWJlbCddID0gJ0Jlc2NocmlmdHVuZyB2ZXJiZXJnZW4nOwokbGFuZ1sndGl0bGVfaGlkZV9sYWJlbF9sb25nJ10gPSAnRGllc2VuIEZlbGRuYW1lbiBpbSBGb3JtdWxhciB2ZXJiZXJnZW4nOwokbGFuZ1sndGl0bGVfdGV4dCddID0gJ0FuenV6ZWlnZW5kZXIgc3RhdGlzY2hlciBUZXh0JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlZ2V4J10gPSAnUmVnZXgtJlV1bWw7YmVycHImdXVtbDtmdW5nJzsKJGxhbmdbJ3RpdGxlX2xpbmVzX3RvX3Nob3cnXSA9ICdBbnphaGwgZGVyIGFuenV6ZWlnZW5kZW4gWmVpbGVuJzsKJGxhbmdbJ3RpdGxlX3JlYWRfb25seSddID0gJ051ciBsZXNlbic7CiRsYW5nWydub19kZWZhdWx0J10gPSAnS2VpbmUgVm9yZWluc3RlbGx1bmcnOwokbGFuZ1sncmVkaXJlY3RfYWZ0ZXJfYXBwcm92YWwnXSA9ICdTZWl0ZSwgYXVmIGRpZSBuYWNoICZVdW1sO2JlcnByJnV1bWw7ZnVuZyB3ZWl0ZXJnZWxlaXRldCB3aXJkJzsKJGxhbmdbJ3RpdGxlX3JlZ2V4X2hlbHAnXSA9ICdUaGlzIHJlZ3VsYXIgZXhwcmVzc2lvbiB3aWxsIG9ubHkgYmUgdXNlZCBpZiAmcXVvdDt2YWxpZGF0aW9uIHR5cGUmcXVvdDsgaXMgc2V0IHRvIGEgcmVnZXgtcmVsYXRlZCBvcHRpb24uIEluY2x1ZGUgYSBmdWxsIFBlcmwtc3R5bGUgcmVnZXgsIGluY2x1ZGluZyB0aGUgc3RhcnQvc3RvcCBzbGFzaGVzIGFuZCBmbGFncyAoei4gQnNwLiAmcXVvdDsvaW1hZ2VcLihcZCspL2kmcXVvdDspJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2FiYnJldiddID0gJ1BmbGljaHRmZWxkJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzJ10gPSAnRmVobGVyIHZlcmJlcmdlbic7CiRsYW5nWyd0aXRsZV9mb3JtX2Rpc3BsYXl0eXBlJ10gPSAnQW56ZWlnZXR5cCBkZXMgRm9ybXVsYXJzJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzX2xvbmcnXSA9ICdGZWhsZXItTWVsZHVuZ2VuIHZvciBkZW4gQmVudXR6ZXJuIHZlcmJlcmdlbi4nOwokbGFuZ1sndGl0bGVfZW1haWxfdGVtcGxhdGUnXSA9ICdFbWFpbC1UZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX3NpemUnXSA9ICdNYXhpbWFsZSBHciZvdW1sOyZzemxpZztlIGYmdXVtbDtyIGhvY2h6dWxhZGVuZGUgRGF0ZWllbiAoa2lsb2J5dGUpJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZV9sb25nJ10gPSAnRGllc2VzIExpbWl0IGlzdCBlaW5lIEVyZyZhdW1sO256dW5nIGRlciBWb3JnYWJlbiBhdXMgZGVyIFBIUC0gb2RlciBTZXJ2ZXItS29uZmlndXJhdGlvbi4nOwokbGFuZ1sndGl0bGVfcGVybWl0dGVkX2V4dGVuc2lvbnMnXSA9ICdadWdlbGFzc2VuZSBEYXRlaS1FbmR1bmdlbic7CiRsYW5nWyd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9uc19sb25nJ10gPSAnR2ViZW4gU2llIGhpZXIgZWluZSBBdWZ6JmF1bWw7aGx1bmcgZGVyIHp1Z2VsYXNzZW5lbiBEYXRlaS1FbmR1bmdlbiBqZXdlaWxzIGdldHJlbm50IGR1Y2ggZWluIEtvbW1hIGVpbiAob2huZSBQdW5rdCAtIHouQi4gJnF1b3Q7anBnLGdpZixqcGVnJnF1b3Q7KS4gTGVlcnplaWNoZW4gd2VyZGVuIGlnbm9yaWVydC4gT2huZSBFaW50cmFnIGdlbHRlbiBrZWluZSBCZXNjaHImYXVtbDtua3VuZ2VuLic7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zJ10gPSAnQmVzY2hyJmF1bWw7bmt1bmdlbiBhbnplaWdlbj8nOwokbGFuZ1sndGl0bGVfc2hvd19saW1pdGF0aW9uc19sb25nJ10gPSAnQmVzY2hyJmF1bWw7bmt1bmdlbiBkZXIgR3Imb3VtbDsmc3psaWc7ZSB1bmQgZGVyIERhdGVpLUVuZHVuZ2VuIG1pdCBkZW0gVXBsb2FkLUZlbGQgYW56ZWlnZW4/JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSBmJnV1bWw7ciBkaWUgRm9ybXVsYXJhbnplaWdlJzsKJGxhbmdbJ3RpdGxlX3BhZ2VfeF9vZl95J10gPSAnU2VpdGUgJXMgdm9uICVzJzsKJGxhbmdbJ3RpdGxlX25vX2FkdmFuY2VkX29wdGlvbnMnXSA9ICdEYXMgRmVsZCBoYXQga2VpbmUgZXJ3ZWl0ZXJ0ZW4gT3B0aW9uZW4uJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdW5zcGVjaWZpZWQnXSA9ICdUZXh0LCBkZXIgYmVpIHVuZ2VuYXVlbiBFaW5nYWJlbiB6dXImdXVtbDtja2dlZ2ViZW4gd2lyZCc7CiRsYW5nWyd0aXRsZV9lbmFibGVfZmFzdGFkZF9sb25nJ10gPSAnRGFzIExpc3RlbmZlbGQgZiZ1dW1sO3Igc2NobmVsbGVzIEhpbnp1ZiZ1dW1sO2dlbiB2b24gRmVsZGVybiBpbiBGb3JtdWxhcmVuIGFrdGl2aWVyZW4/JzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9mYXN0YWRkJ10gPSAnRGFzIExpc3RlbmZlbGQgZiZ1dW1sO3Igc2NobmVsbGVzIEhpbnp1ZiZ1dW1sO2dlbiB2b24gRmVsZGVybiBha3RpdmllcmVuPyc7CiRsYW5nWyd0aXRsZV9mYXN0YWRkJ10gPSAnU2NobmVsbGUgRmVsZGVyc3RlbGx1bmcnOwokbGFuZ1sndGl0bGVfZW5hYmxlX2FudGlzcGFtX2xvbmcnXSA9ICdXZW5uIFNpZSBkaWVzIGFrdGl2aWVyZW4sIGsmb3VtbDtubmVuIHBybyBJUC1BZHJlc3NlIG1heGltYWwgMTAgRW1haWxzIHZlcnNhbmR0IHdlcmRlbiAocHJvIFN0dW5kZSkuJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9hbnRpc3BhbSddID0gJ0VpbmZhY2hlbiBBbnRpLVNwYW0tU2NodXR6IGFrdGl2aWVyZW4/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRpZHMnXSA9ICdGZWxkLUlEcyBhbnplaWdlbic7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkaWRzX2xvbmcnXSA9ICdXZW5uIFNpZSBkaWVzZXMgRmVsZCBha3RpdmllcmVuLCB3ZXJkZW4gZGllIEZlbGQtSURzIGJlaW0gQmVhcmJlaXRlbiBkZXMgRm9ybXVsYXJzIGFuZ2V6ZWlndCc7CiRsYW5nWyd0aXRsZV94bWxfdG9fdXBsb2FkJ10gPSAnRWluIEZvcm11bGFyIGFscyBYTUwtRGF0ZWkgaG9jaGxhZGVuJzsKJGxhbmdbJ3RpdGxlX3htbF91cGxvYWRfZm9ybW5hbWUnXSA9ICdEaWVzZW4gRm9ybXVsYXJuYW1lbiB2ZXJ3ZW5kZW4nOwokbGFuZ1sndGl0bGVfaW1wb3J0X2xlZ2VuZCddID0gJ1hNTC1Gb3JtdWxhci1JbXBvcnQnOwokbGFuZ1sndGl0bGVfeG1sX3VwbG9hZF9mb3JtYWxpYXMnXSA9ICdEaWVzZW4gRm9ybXVsYXItQWxpYXMgdmVyd2VuZGVuJzsKJGxhbmdbJ3RpdGxlX2h0bWxfZW1haWwnXSA9ICdFaW5lIEhUTUwtRW1haWwgZXJ6ZXVnZW4/JzsKJGxhbmdbJ3RpdGxlX2xpbmtfYXV0b3BvcHVsYXRlJ10gPSAnQXV0b21hdGlzY2ggdmVyJm91bWw7ZmZlbnRsaWNoZW4/JzsKJGxhbmdbJ3RpdGxlX2xpbmtfYXV0b3BvcHVsYXRlX2hlbHAnXSA9ICdBdXRvbWF0aXNjaCBtaXQgZGVyIFVSTCBkZXIgRm9ybXVsYXJzZWl0ZSB2ZXImb3VtbDtmZmVudGxpY2hlbj8gKGRpZXMgJnV1bWw7YmVyc2NocmVpYnQgZGllIHdlaXRlciB1bnRlbiBiZW5hbm50ZSBTZWl0ZW4tTGluay1PcHRpb24pJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfbGluayddID0gJ1N0YW5kYXJkLUxpbmstVVJMJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfbGlua190aXRsZSddID0gJ1N0YW5kYXJkLUxpbmstVGV4dCc7CiRsYW5nWyd0aXRsZV9saW5rX3RvX3NpdGVwYWdlJ10gPSAnTGluayBhdWYgZGllIFNlaXRlJzsKJGxhbmdbJ3RpdGxlX2NhcHRjaGFfbm90X2luc3RhbGxlZCddID0gJ1dlbm4gU2llIGRhcyBDYXB0Y2hhLU1vZHVsIGluc3RhbGxpZXJlbiwgayZvdW1sO25uZW4gU2llICZ1dW1sO2JlciBlaW4gPGEgaHJlZj0iaHR0cDovL3d3dy53aWtpcGVkaWEub3JnL3dpa2kvQ2FwdGNoYSIgdGFyZ2V0PSJfbmV3Ij4mcXVvdDtDYXB0Y2hhJnF1b3Q7PC9hPiBJaHIgRm9ybXVsYXIgdm9yIFNwYW0gc2NoJnV1bWw7dHplbi4gV2VpdGVyZSBJbmZvcm1hdGlvbmVuIGZpbmRlbiBTaWUgaW0gPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9jYXB0Y2hhLyI+Q2FwdGNoYS1Qcm9qZWN0PC9hPi4nOwokbGFuZ1sndGl0bGVfdXNlX2NhcHRjaGEnXSA9ICdDYXB0Y2hhIHZlcndlbmRlbiwgdW0gZGVuIEZvcm11bGFydmVyc2FuZCB6dSBzY2gmdXVtbDt0emVuPyc7CiRsYW5nWyd0aXRsZV91c2VfY2FwdGNoYV9oZWxwJ10gPSAnQWt0aXZpZXJlbiBTaWUgZGllc2VzIEZlbGQsIHVtIElociBGb3JtdWxhciBtaXR0ZWxzIDxhIGhyZWY9Imh0dHA6Ly93d3cud2lraXBlZGlhLm9yZy93aWtpL0NhcHRjaGEiIHRhcmdldD0iX2JsYW5rIj4mcXVvdDtDYXB0Y2hhJnF1b3Q7PC9hPiB2b3IgU3BhbSB6dSBzY2gmdXVtbDt0emVuLic7CiRsYW5nWyd0aXRsZV91c2VyX2NhcHRjaGEnXSA9ICdCaXR0ZSBiZXN0JmF1bWw7dGlnZW4gU2llLCBkYXNzIFNpZSBrZWluIG1hc2NoaW5lbGxlcyBTY3JpcHQgc2luZCwgaW5kZW0gU2llIGRpZSBCdWNoc3RhYmVuIGF1cyBkZW0gQmlsZCBlaW5nZWJlbi4nOwokbGFuZ1sndGl0bGVfdXNlcl9jYXB0Y2hhX2Vycm9yJ10gPSAnVGV4dCBiZWkgZmFsc2NoIGVpbmdlZ2ViZW5lbSBDYXB0Y2hhJzsKJGxhbmdbJ3dyb25nX2NhcHRjaGEnXSA9ICdEZXIgZWluZ2VnZWJlbmUgQ2FwdGNoYS1UZXh0IHdhciBmYWxzY2guJzsKJGxhbmdbJ3RpdGxlX3RpdGxlX3VzZXJfY2FwdGNoYSddID0gJ0hpbGZldGV4dCBmJnV1bWw7ciBDYXB0Y2hhJzsKJGxhbmdbJ3RpdGxlX2RvbnRfc3VibWl0X3VuY2hlY2tlZCddID0gJ0YmdXVtbDtyIG5pY2h0IGFrdGl2aWVydGUgS29udHJvbGxrJmF1bWw7c3RjaGVuIGtlaW5lIFdlcnRlICZ1dW1sO2Jlcm1pdHRlbG4nOwokbGFuZ1sndGl0bGVfZG9udF9zdWJtaXRfdW5jaGVja2VkX2hlbHAnXSA9ICdBa3RpdmllcmVuIFNpZSBkaWVzLCB3ZW5uIG51ciBiZWkgYWt0aXZpZXJ0ZW0gS29udHJvbGxrJmF1bWw7c3RjaGVuIFdlcnRlIHp1ciZ1dW1sO2NrZ2VnZWJlbiB3ZXJkZW4gc29sbGVuLic7CiRsYW5nWydsaW5rX2xhYmVsJ10gPSAnQmVzY2hyaWZ0dW5nIGRlcyBMaW5rcyc7CiRsYW5nWydsaW5rX2Rlc3RpbmF0aW9uJ10gPSAnWmllbC1VUkwgZGVzIExpbmtzJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfc2V0J10gPSAnU3RhbmRhcmRtJmF1bWw7JnN6bGlnO2lnICZ1dW1sO2JlcnByJnV1bWw7ZmVuPyc7CiRsYW5nWyd0aXRsZV8yNF9ob3VyJ10gPSAnMjQtU3R1bmRlbi1BbnplaWdlIHZlcndlbmRlbj8nOwokbGFuZ1sndGl0bGVfYmVmb3JlX25vb24nXSA9ICdBLk0uJzsKJGxhbmdbJ3RpdGxlX2FmdGVyX25vb24nXSA9ICdQLk0uJzsKJGxhbmdbJ3RpdGxlX3NtYXJ0eV9ldmFsJ10gPSAnU21hcnR5LVRhZ3MgaW4gZGVuIEZlbGRlcm4gdmVyYXJiZWl0ZW4/JzsKJGxhbmdbJ3RpdGxlX3RleHRhcmVhX3Jvd3MnXSA9ICdaZWlsZW4gKEhpbndlaXM6IERpZXMga2FubiBkdXJjaCBDU1MgJnV1bWw7YmVyc2NocmllYmVuIHdlcmRlbiknOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfY29scyddID0gJ1NwYWx0ZW4gKEhpbndlaXM6IERpZXMga2FubiBkdXJjaCBDU1MgJnV1bWw7YmVyc2NocmllYmVuIHdlcmRlbiknOwokbGFuZ1sndGl0bGVfZm9ybV9tYWluJ10gPSAnRGV0YWlscyBkZXMgSGF1cHRmb3JtdWxhcnMnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9ibGFuayddID0gJ1ZvcmVpbmdlc3RlbGx0IGxlZXInOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9ibGFua19oZWxwJ10gPSAnVm9yZWluZ2VzdGVsbHQgbGVlciAoZGVha3RpdmllcnQgZGllIFZvcmVpbnN0ZWxsdW5nIGYmdXVtbDtyIGRhcyBoZXV0aWdlIERhdHVtKSc7CiRsYW5nWyd0aXRsZV9zaG93X3VzZXJuYW1lJ10gPSAnRGVuIEFubWVsZGUtTmFtZW4gZGVzIEJlbnV0emVycyBhbnplaWdlbj8nOwokbGFuZ1sndGl0bGVfc2hvd191c2VyZmlyc3RuYW1lJ10gPSAnRGVuIFZvcm5hbWVuIGRlcyBCZW51dHplcnMgYW56ZWlnZW4/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcmxhc3RuYW1lJ10gPSAnRGVuIE5hY2huYW1lbiBkZXMgQmVudXR6ZXJzIGFuemVpZ2VuPyc7CiRsYW5nWyd0aXRsZV9yZXN0cmljdF90b19ncm91cCddID0gJ0RpZSBCZW51dHplcmxpc3RlIGF1ZiBCZW51dHplciBkZXIgc3BlemlmaXppZXJ0ZW4gR3J1cHBlIGJlc2NociZhdW1sO25rZW4nOwokbGFuZ1sndGl0bGVfZW5jcnlwdF9kYXRhYmFzZV9kYXRhJ10gPSAnRW5jcnlwdCBkYXRhIHN0b3JlZCBpbiBkYXRhYmFzZSc7CiRsYW5nWyd0aXRsZV9jcnlwdF9jZXJ0J10gPSAnQ2VydGlmaWNhdGUgZm9yIGVuY3J5cHRpbmcgZGF0YSc7CiRsYW5nWyd0aXRsZV9lbmNyeXB0aW9uX2tleWZpbGUnXSA9ICdQYXNzcGhyYXNlIG9yIHBhdGggdG8gZmlsZSBjb250YWluaW5nIHBhc3NwaHJhc2UuIChJZiB1c2luZyBPcGVuU1NMLCB0aGlzIGlzIHRoZSBwYXNzcGhyYXNlIGZvciB0aGUgcHJpdmF0ZSBrZXkpJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRfc29ydGZpZWxkcyddID0gJ0hhc2ggc29ydCBmaWVsZHM/JzsKJGxhbmdbJ3RpdGxlX3ByaXZhdGVfa2V5J10gPSAnUHJpdmF0ZSBLZXkgdG8gdXNlIGZvciBlbmNyeXB0aW5nIGRhdGEnOwokbGFuZ1sndGl0bGVfZW5jcnlwdF9zb3J0ZmllbGRzX2hlbHAnXSA9ICdUaGlzIGhhc2hlcyB0aGUgc29ydCBmaWVsZHMsIGJ1dCBsZWF2ZXMgdGhlIGZpcnN0IGZldyBsZXR0ZXJzIHVuZW5jcnlwdGVkLiBDcnlwdG9ncmFwaGljYWxseSwgdGhpcyBjcmVhdGVzIGEgdnVsbmVyYWJpbGl0eSwgYnV0IGZvciBtb3N0IHVzZXJzIGl0IGlzIGFuIGFjY2VwdGFibGUgdHJhZGVvZmYgYmV0d2VlbiBzZWN1cml0eSBhbmQgdGhlIGFiaWxpdHkgdG8gc29ydCByZWNvcmRzLiBTb3J0aW5nIGJlY29tZXMgYXBwcm94aW1hdGUsIGJ1dCB3aWxsIHJlbWFpbiBwcmV0dHkgZ29vZC4gSWYgeW91IGRvIG5vdCB1c2UgdGhpcyBvcHRpb24sIHNvcnQgZmllbGRzIGFyZSBzdG9yZWQgaW4gcGxhaW50ZXh0Lic7CiRsYW5nWyd0aXRsZV9lbmNyeXB0aW9uX2Z1bmN0aW9ucyddID0gJ1N0b3JhZ2UgRW5jcnlwdGlvbiBVbmF2YWlsYWJsZSc7CiRsYW5nWyd0aXRsZV9pbnN0YWxsX2NyeXB0byddID0gJ1BsZWFzZSBpbnN0YWxsIHRoZSBPcGVuU1NMIG1vZHVsZSBvciBtY3J5cHQgc3VwcG9ydCBpZiB5b3Ugd291bGQgbGlrZSB0byBlbmFibGUgZGF0YWJhc2UgZW5jcnlwdGlvbi4nOwokbGFuZ1sndGl0bGVfaW5zdGFsbF9jdXJsJ10gPSAnUGxlYXNlIG1ha2Ugc3VyZSB5b3UgaGF2ZSBDVVJMIHN1cHBvcnQgYWN0aXZlIGluIHlvdXIgUEhQIGluc3RhbGwuIFNlZSBodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Jvb2suY3VybC5waHAnOwokbGFuZ1sndGl0bGVfbWxlX3ZlcnNpb24nXSA9ICdJbSBNTEUtTW9kdXMgc3RhcnRlbic7CiRsYW5nWyd0aXRsZV9tbGVfdmVyc2lvbl9sb25nJ10gPSAnQ2hhbmdlcy9zdXBwb3J0IGZvciBDTVNNUyBNdWx0aS1MYW5ndWFnZSBFZGl0aW9uIGZvcmsuIERvIG5vdCBjaGVjayB0aGlzIGlmIHlvdSBhcmUgbm90IHJ1bm5pbmcgdGhlIE1MRSB2ZXJzaW9uLic7CiRsYW5nWyd0aXRsZV9lbnN1cmVfY2VydF9rZXlfbWF0Y2gnXSA9ICdFbnN1cmUgdGhhdCB5b3Ugc2VsZWN0IHRoZSBwcml2YXRlIGtleSB0aGF0IGlzIGFwcHJvcHJpYXRlIGZvciB0aGUgY2VydGlmaWNhdGUgeW91IGFyZSB1c2luZyBmb3IgZW5jcnlwdGlvbiEnOwokbGFuZ1snY2hvb3NlX2NyeXB0J10gPSAnRW5jcnlwdGlvbiBMaWJyYXJ5JzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRfZGF0YWJhc2VfbG9uZyddID0gJ0NoZWNrIHRoaXMgdG8gZW5jcnlwdCB0aGUgc3RvcmVkIGRhdGEuIFRoaXMgbWFrZXMgaXQgbW9yZSBkaWZmaWN1bHQgKGJ1dCBub3QgaW1wb3NzaWJsZSkgZm9yIGhhY2tlcnMgdG8gdmlldyB0aGUgaW5mb3JtYXRpb24uJzsKJGxhbmdbJ2Nob29zZV9jcnlwdF9sb25nJ10gPSAnVGhlIG9wdGlvbnMgYmVsb3cgb25seSBhcHBseSBpZiB5b3UgYXJlIHVzaW5nIHRoZSBPcGVuU1NMIEVuY3J5cHRpb24gbGlicmFyeSc7CiRsYW5nWyd0aXRsZV9jcnlwdF9saWInXSA9ICdFbmNyeXB0aW9uIExpYnJhcnknOwokbGFuZ1snb3BlbnNzbCddID0gJ09wZW5TU0wgTGlicmFyeSc7CiRsYW5nWydtY3J5cHQnXSA9ICdQSFAgbWNyeXB0IExpYnJhcnknOwokbGFuZ1sndGl0bGVfZmV1X2JpbmRpbmcnXSA9ICdGcm9udGVuZCBVc2VyIGJpbmRpbmcnOwokbGFuZ1sndGl0bGVfaW5zdGFsbF9mZXUnXSA9ICdQbGVhc2UgaW5zdGFsbCB0aGUgRnJvbnRlbmQgVXNlciBtb2R1bGUgdG8gY29ubmVjdCBhIGZvcm0gYW5kIGl0cyBkYXRhIHRvIGEgc3BlY2lmaWMgdXNlcic7CiRsYW5nWyd0aXRsZV9mZXVfYmluZF9oZWxwJ10gPSAnQ2hlY2sgdGhpcyB0byBsb2NrIGZyb250LWVuZCBhY2Nlc3MgdG8gdGhpcyBmb3JtJiMwMzk7cyBkYXRhIHRvIHRoZSBsb2dnZWQtaW4gZnJvbnQtZW5kIHVzZXIuJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRpb24nXSA9ICdFbmNyeXB0aW9uJzsKJGxhbmdbJ3RpdGxlX2V4cG9ydF9mb3JtX3RvX3VkdCddID0gJ0V4cG9ydCBmb3JtIHJlZmVyZW5jZSB0byBVRFQgYXMgJHBhcmFtc1smIzAzOTtGT1JNJiMwMzk7XT8nOwokbGFuZ1sndGl0bGVfdXJsX2hlbHAnXSA9ICdFbnRpcmUgVVJMLCBpbmNsdWRpbmcgcHJvdG9jb2wgYW5kIHBhdGggKGUuZy4sIGh0dHA6Ly9teWhvc3QuY29tL2Zvcm1faGFuZGxlci5jZ2kpJzsKJGxhbmdbJ3RpdGxlX3VybCddID0gJ0Zvcm0gc3VibWlzc2lvbiBVUkwnOwokbGFuZ1sndGl0bGVfbWV0aG9kJ10gPSAnRm9ybSBtZXRob2QnOwokbGFuZ1sndGl0bGVfbWFwc190byddID0gJ01hcCBmaWVsZCAmcXVvdDslcyZxdW90OyB0byBmb3JtIHN1Ym1pc3Npb24gdmFyaWFibGUnOwokbGFuZ1sndGl0bGVfYWRkaXRpb25hbCddID0gJ0FkZGl0aW9uYWwgc3VibWlzc2lvbic7CiRsYW5nWyd0aXRsZV9hZGRpdGlvbmFsX2hlbHAnXSA9ICdBbnl0aGluZyB0byBiZSBhcHBlbmRlZCB0byB0aGUgc3VibWlzc2lvbiBwYXlsb2FkLCBpbiBVUkwtZW5jb2RlZCBmb3JtICguZS5nLCAmcXVvdDt1c2VyPXN0ZXZlK2pvYnMmYW1wO2VtcGxveWVlX251bWJlcj0xKSc7CiRsYW5nWyd0aXRsZV9pbmNsdWRlX2luX3N1Ym1pc3Npb24nXSA9ICdJbmNsdWRlIGZpZWxkIGluIFN1Ym1pc3Npb24nOwokbGFuZ1sndGl0bGVfZGF0YV9zdG9yZWRfaW5fZmJyJ10gPSAnRGF0YSB3aWxsIGJlIHN0b3JlZCBpbiBhbiBYTUwgZm9ybWF0IGluIHRoZSBbUFJFRklYXV9tb2R1bGVfZmJfZnJvbWJyb3dzZXIgZGF0YWJhc2UgdGFibGUuJzsKJGxhbmdbJ2Vycm9yX2hhc19ub19mYl9maWVsZCddID0gJ0Vycm9yISBFaXRoZXIgdGhlIGZvcm0gaGFzIG5vIGZvcm1fYnVpbGRlciBkaXNwb3NpdGlvbiwgb3IgaXQgZmFpbGVkIHRvIGluc3RhbnRpYXRlIChkdWUgdG8gbWVtb3J5IGlzc3Vlcz8pJzsKJGxhbmdbJ3Jlc3RyaWN0ZWRfdG9fZ3JvdXAnXSA9ICdOdXIgaW4gR3J1cHBlICVzJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdG9fdXNlciddID0gJ0RlbSBCZW51dHplciBhbnplaWdlbj8nOwokbGFuZ1snaGVscF9sZWF2ZWVtcHR5J10gPSAnRGllc2VzIEZlbGQga2FubiBsZWVyIGdlbGFzc2VuIHdlcmRlbic7CiRsYW5nWydoZWxwX3ZhcmlhYmxlc19mb3JfdGVtcGxhdGUnXSA9ICdWYXJpYWJsZW4gZiZ1dW1sO3IgZGFzIFRlbXBsYXRlJzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVzX2Zvcl9jb21wdXRhdGlvbiddID0gJ1ZlcmYmdXVtbDtnYmFyZSBWYXJpYWJsZW4nOwokbGFuZ1snaGVscF9waHBfdmFyaWFibGVfbmFtZSddID0gJ1BIUC1WYXJpYWJsZSc7CiRsYW5nWydoZWxwX3N1Ym1pc3Npb25fZGF0ZSddID0gJ1ZlcnNhbmRkYXR1bSc7CiRsYW5nWydoZWxwX3NlcnZlcl9uYW1lJ10gPSAnSWhyIFNlcnZlcic7CiRsYW5nWydoZWxwX3N1Yl9zb3VyY2VfaXAnXSA9ICdJUC1BZHJlc3NlIGRlcyBGb3JtdWxhcmFic2VuZGVycyc7CiRsYW5nWydoZWxwX3N1Yl91cmwnXSA9ICdVUkwgZGVyIEZvcm11bGFyc2VpdGUnOwokbGFuZ1snaGVscF9mYl92ZXJzaW9uJ10gPSAnRm9ybUJ1aWxkZXItVmVyc2lvbic7CiRsYW5nWydoZWxwX3RhYiddID0gJ1RhYi1aZWljaGVuJzsKJGxhbmdbJ2hlbHBfb3RoZXJfZmllbGRzJ10gPSAnQWx0ZXJuYXRpdmUgRmVsZG5hbWVuIGsmb3VtbDtubmVuIHdlY2hzZWx3ZWlzZSB2ZXJ3ZW5kZXQgd2VyZGVuIChkaWVzIGlzdCBpbnNiZXNvbmRlcmUgZGFubiBuJnV1bWw7dHpsaWNoLCB3ZW5uIFNtYXJ0eSBQcm9ibGVtZSBtaXQgWmVpY2hlbiBhdSZzemxpZztlcmhhbGIgdm9uIEFTQ0lJIDMyLTEyNiBoYXQpLiA8YnIgLz5XZW5uIFNpZSBkaWVzZSBkZW0gRm9ybXVsYXIgaGluenVmJnV1bWw7Z2VuLCBzaW5kIHdlaXRlcmUgRmVsZGVyIHZlcmYmdXVtbDtnYmFyLic7CiRsYW5nWydoZWxwX2FycmF5X2ZpZWxkcyddID0gJ0RpZXMgaXN0IGVpbmUgd2VpdGVyZSBPcHRpb24sIHVtIHZpYSAkZmllbGRuYW1lX29iaiwgJGFsaWFzX29iaiBvZGVyICRmbGRfI19vYmogZGllIEZlbGR3ZXJ0ZSBhYnp1ZnJhZ2VuIChqZWRlcyBGZWxkIGVudGgmYXVtbDtsdCBlaW4gT2JqZWt0KTo8YnIgLz4NCjx0YWJsZT4NCjx0cj48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7Pm5hbWU8L3RkPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+RmVsZC1uYW1lPC90ZD48L3RyPg0KPHRyPjx0ZD50eXBlPC90ZD48dGQ+RmVsZHR5cDwvdGQ+PC90cj4NCjx0cj48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7PmlkPC90ZD48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7PkludGVybmUgRmVsZC1JRDwvdGQ+PC90cj4NCjx0cj48dGQ+dmFsdWU8L3RkPjx0ZD5NZW5zY2hlbi1sZXNiYXJlciBXZXJ0PC90ZD48L3RyPg0KPHRyPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+dmFsdWVBcnJheTwvdGQ+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz5BcnJheSBkZXIgRmVsZHdlcnRlPC90ZD48L3RyPjwvdGFibGU+DQo8ZW0+QmVpc3BpZWw6PC9lbT57JGZsZF8xX29iai0+bmFtZX0gPSB7JGZsZF8xX29iai0+dmFsdWV9JzsKJGxhbmdbJ2hlbHBfZGF0ZV9mb3JtYXQnXSA9ICdJbmZvcm1hdGlvbmVuIHp1ciBGb3JtYXRpZXJ1bmcgZmluZGVuIFNpZSA8YSBocmVmPSJodHRwOi8vZGUucGhwLm5ldC9tYW51YWwvZGUvZnVuY3Rpb24uZGF0ZS5waHAiIHRhcmdldD0iX2JsYW5rIj5pbiBkZXIgUEhQLUJlc2NocmVpYnVuZzwvYT4uJzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVfbmFtZSddID0gJ1ZhcmlhYmxlICc7CiRsYW5nWydoZWxwX2Zvcm1fZmllbGQnXSA9ICdEaWVzZXMgRmVsZCBlbnRoJmF1bWw7bHQnOwokbGFuZ1snbGlua19iYWNrX3RvX2Zvcm0nXSA9ICc8PCBadXImdXVtbDtjayB6dW0gRm9ybXVsYXInOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV90ZW1wbGF0ZSddID0gJ0VpbiBCZWlzcGllbC1UZW1wbGF0ZSBlcnN0ZWxsZW4nOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9odG1sX3RlbXBsYXRlJ10gPSAnRWluIEJlaXNwaWVsLUhUTUwtVGVtcGxhdGUgZXJzdGVsbGVuJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaGVhZGVyX3RlbXBsYXRlJ10gPSAnRWluIEJlaXNwaWVsLUhlYWRlci1UZW1wbGF0ZSBlcnN0ZWxsZW4nOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9oZWFkZXInXSA9ICdFaW5lbiBCZWlzcGllbC1IZWFkZXIgZXJzdGVsbGVuJzsKJGxhbmdbJ2hlbHBfdGFiX3N5bWJvbCddID0gJ2VpbiBUYWJ1bGF0b3ItWmVpY2hlbic7CiRsYW5nWyd0aXRsZV9maWxlX3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgZiZ1dW1sO3IgZWluZSBaZWlsZSBkZXIgYXVzZ2VnZWJlbmVuIERhdGVpJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfaGVhZGVyJ10gPSAnVGVtcGxhdGUgZiZ1dW1sO3IgZGVuIEhlYWRlciBkZXIgYXVzZ2VnZWJlbmVuIERhdGVpJzsKJGxhbmdbJ3RpdGxlX2NvbmZpcm1hdGlvbl91cmwnXSA9ICdVUkwgenVyIEJlc3QmYXVtbDt0aWd1bmcgZGVzIEZvcm11bGFycyc7CiRsYW5nWyd0aXRsZV92YWx1ZSddID0gJ1dlcnQgKHNpZWhlIFJlZ2lzdGVya2FydGUgRXJ3ZWl0ZXJ1bmdlbiwgd2VubiBTaWUgU21hcnR5LVRhZ3MgdmVyd2VuZGVuKSc7CiRsYW5nWyd0aXRsZV9kYXRlX2Zvcm1hdCddID0gJ0RhdHVtcy1Gb3JtYXQgKHNpZWhlIDxhIGhyZWY9Imh0dHA6Ly9kZS5waHAubmV0L21hbnVhbC9kZS9mdW5jdGlvbi5kYXRlLnBocCIgdGFyZ2V0PSJfYmxhbmsiPlBIUC1EYXR1bXNmb3JtYXQ8L2E+KSc7CiRsYW5nWyd0aXRsZV91c2Vfd3lzaXd5ZyddID0gJ1dZU0lXWUctRWRpdG9yIGYmdXVtbDtyIGRlbiBUZXh0YmVyZWljaCB2ZXJ3ZW5kZW4gKG51ciBpbiBkZXIgQWRtaW5pc3RyYXRpb24pPyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYWN0aW9ucyddID0gJ1ZlcmhhbHRlbiBuYWNoIGRlbSBGb3JtdWxhci1WZXJzYW5kJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9sYWJlbHMnXSA9ICdCZXNjaHJpZnR1bmcgZGVyIFZlcnNhbmQtQnV0dG9uJzsKJGxhbmdbJ3RpdGxlX3NvcnRhYmxlX2ZpZWxkJ10gPSAnU29ydGllcmJhcmVzIEZlbGQgIyVzJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9oZWxwJ10gPSAnQXVmIGRpZXNlciBTZWl0ZSBrJm91bWw7bm5lbiBTaWUgZGVuIEZvcm11bGFydmVyc2FuZCBhbnBhc3Nlbi4gRXMgd2lyZCBqZWRvY2ggTklDSFQgZmVzdGdlbGVndCwgd2llIGRpZSB2ZXJzYW5kdGVuIERhdGVuIHZlcmFyYmVpdGV0IHdlcmRlbi4gRGFmJnV1bWw7ciBtJnV1bWw7c3NlbiBTaWUgSWhyZW0gRm9ybXVsYXIgZWluIHNlcGFyYXRlcyBGZWxkIGhpbnp1ZiZ1dW1sO2dlbi4nOwokbGFuZ1sndGl0bGVfc3RhcnRfeWVhciddID0gJ0phaHJlc2JlcmVpY2ggQmVnaW5uJzsKJGxhbmdbJ3RpdGxlX2VuZF95ZWFyJ10gPSAnSmFocmVzYmVyZWljaCBFbmRlJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfeWVhciddID0gJ1ZvcmVpbmdlc3RlbGx0ZXMgSmFocic7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3llYXJfaGVscCddID0gJyhNaXQgLTEgd2lyZCBkYXMgYWt0dWVsbGUgSmFociBhbHMgVm9yZWluc3RlbGx1bmcgdmVyd2VuZGV0KSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYWN0aW9uJ10gPSAnTmFjaGRlbSBkYXMgRm9ybXVsYXIgdmVyc2FuZHQgd3VyZGUnOwokbGFuZ1sndGl0bGVfc3VibWl0X3Jlc3BvbnNlJ10gPSAnQW56dXplaWdlbmRlIEFudHdvcnQnOwokbGFuZ1snZGlzcGxheV90ZXh0J10gPSAnJmJkcXVvO1ZlcnNhbmQtVGVtcGxhdGUmbGRxdW87IGFuemVpZ2VuJzsKJGxhbmdbJ3JlZGlyZWN0X3RvX3BhZ2UnXSA9ICdXZWl0ZXJsZWl0ZW4gYXVmIGRpZSBTZWl0ZSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfcmVzcG9uc2VfaGVscCddID0gJ0RpZXNlcyBUZW1wbGF0ZSB3aXJkIGFuZ2V6ZWlndCwgbmFjaGRlbSBkYXMgRm9ybXVsYXIgdmVyc2FuZHQgd3VyZGUuIERpZXNlcyBUZW1wbGF0ZSB3aXJkIG5pY2h0IHZlcndlbmRldCwgdW0gRW1haWxzIHp1IGVyemV1Z2VuIG9kZXIgYW5kZXJlIEZvcm11bGFyLU9wdGlvbmVuIGF1c3p1ZiZ1dW1sO2hyZW4uIEZhbGxzIGVydyZ1dW1sO25zY2h0LCBrJm91bWw7bm5lbiBTaWUgZGllc2UgVGVtcGxhdGVzIGluIGRlciAmYmRxdW87ZXJ3ZWl0ZXJ0ZW4mbGRxdW87IFJlZ2lzdGVya2FydGUgZiZ1dW1sO3IgZGllc2UgRmVsZGVyIGZlc3RsZWdlbi4nOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fcGFnZSddID0gJ1ppZWxzZWl0ZSc7CiRsYW5nWyd0aXRsZV9yZXF1aXJlX2ZpZWxkbmFtZXMnXSA9ICdFcmZvcmRlcnQgRmVsZG5hbWVuJzsKJGxhbmdbJ3RpdGxlX3JlcXVpcmVfZmllbGRuYW1lc19sb25nJ10gPSAnU29sbCBmJnV1bWw7ciBkaWUgRmVsZGVyIGVpbiBOYW1lIGZlc3RnZWxlZ3Qgd2VyZGVuPyc7CiRsYW5nWyd0aXRsZV91bmlxdWVfZmllbGRuYW1lcyddID0gJ0VyZm9yZGVydCBlaW5kZXV0aWdlIEZlbGRuYW1lbic7CiRsYW5nWyd0aXRsZV91bmlxdWVfZmllbGRuYW1lc19sb25nJ10gPSAnU29sbCBmJnV1bWw7ciBkaWUgRmVsZGVyIGVpbiBlaW5kZXV0aWdlciBOYW1lIGZlc3RnZWxlZ3Qgd2VyZGVuPyc7CiRsYW5nWyd0aXRsZV9yZW9yZGVyX2Zvcm0nXSA9ICdGZWxkZXIgbmV1IG9yZG5lbic7CiRsYW5nWyd0aXRsZV9sb2FkX3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgbGFkZW4nOwokbGFuZ1sndGl0bGVfYWRkX2J1dHRvbl90ZXh0J10gPSAnRWluZW4gQnV0dG9uLVRleHQgaGluenVmJnV1bWw7Z2VuJzsKJGxhbmdbJ3RpdGxlX2RlbF9idXR0b25fdGV4dCddID0gJ0RlbiBCdXR0b24tVGV4dCBsJm91bWw7c2NoZW4nOwokbGFuZ1sndGl0bGVfZmllbGRfaGVscHRleHQnXSA9ICdIaWxmZXRleHQsIGRlciBmJnV1bWw7ciBkaWVzZXMgRmVsZCBhbmdlemVpZ3Qgd2lyZCc7CiRsYW5nWyd0aXRsZV9zdHJpbmdfb3JfbnVtYmVyX2V2YWwnXSA9ICdWYXJpYWJsZW4gYWxzIFphaGwgb2RlciBTdHJpbmcgaW50ZXJwcmV0aWVyZW4nOwokbGFuZ1sndGl0bGVfb3JkZXInXSA9ICdJbnRlcnByZXRhdGlvbnMtUmVpaGVuZm9sZ2UnOwokbGFuZ1sndGl0bGVfb3JkZXJfaGVscCddID0gJ1dlbm4gbWVociBhbHMgZWluIEZlbGQgYmVyZWNobmV0IHdlcmRlbiBtdXNzLCB3ZXJkZW4gZGllIEJlcmVjaG51bmcgdm9uIGRlciBuaWVkcmlnc3RlbiB6dXIgaCZvdW1sO2Noc3RlbiBPcmRudW5nc251bW1lciBoaW4gZHVyY2hnZWYmdXVtbDtocnQnOwokbGFuZ1sndGl0bGVfY29tcHV0ZV92YWx1ZSddID0gJ1p1IGJlcmVjaG5lbmRlciBXZXJ0JzsKJGxhbmdbJ3RpdGxlX3N0cmluZyddID0gJ1plaWNoZW5rZXR0ZSc7CiRsYW5nWyd0aXRsZV9udW1lcmljJ10gPSAnWmFobCc7CiRsYW5nWyd0aXRsZV9pbmxpbmVfZm9ybSddID0gJ0RhcyBGb3JtdWxhciBpbmxpbmUgYW56ZWlnZW4/JzsKJGxhbmdbJ3RpdGxlX2lubGluZV9mb3JtX2hlbHAnXSA9ICdJbmxpbmUgYmVkZXV0ZXQsIGRhc3MgZGFzIEZvcm11bGFyIGRlbiB7Y21zX21vZHVsZX0tVGFnIGVyc2V0enQsIGFuZGVyZW5mYWxscyB3aXJkIGRlciB7Y29udGVudH0tVGFnIGVyc2V0enQuJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2RlZmF1bHRfdmFsdWUnXSA9ICdTdGFuZGFyZHdlcnQgZiZ1dW1sO3IgZGFzIEZlbGQnOwokbGFuZ1sndGl0bGVfY2xlYXJfZGVmYXVsdCddID0gJ0JlaSBLbGljayBhdWYgZGFzIEZlbGQgZGllIHZvcmVpbmdlc3RlbGx0ZW4gV2VydGUgZW50ZmVybmVuPyc7CiRsYW5nWyd0aXRsZV9jbGVhcl9kZWZhdWx0X2hlbHAnXSA9ICdBa3RpdmllcmVuIFNpZSBkaWVzZXMgRmVsZCwgd2VubiBkZXIgdm9yZWluZ2VzdGVsbHRlIFdlcnQgYmVpIEtsaWNrIGF1ZiBkYXMgRmVsZCBlbnRmZXJudCB3ZXJkZW4gc29sbC4gU2VpdCBkYWYmdXVtbDtyIGVpbiBKYXZhc2NyaXB0IHZlcndlbmRldCB3aXJkLCB0cml0dCBlaW4gRmVobGVyIGF1Ziwgd2VubiBTaWUgaW4gZGVtIHZvcmdlZ2ViZW5lbiBUZXh0IGVpbmZhY2hlIEFuZiZ1dW1sO2hydW5nc3plaWNoZW4gdmVyd2VuZGVuLiBEaWVzZXIgRmVobGVyIGthbm4gYXVjaCBiZWkgYW5kZXJlbiBKYXZhc2NyaXB0LXVuZnJldW5kbGljaGVuIFplaWNoZW4gYXVmdHJldGVuLic7CiRsYW5nWyd0aXRsZV9yZW1vdmVfZmlsZV9mcm9tX3NlcnZlciddID0gJ0VpbmUgaG9jaGdlbGFkZW5lIERhdGVpIG5hY2ggZGVyIFZlcmFyYmVpdHVuZyAoRW1haWwtVmVyc2FuZCkgdm9tIFNlcnZlciBsJm91bWw7c2NoZW4nOwokbGFuZ1sndGl0bGVfZmllbGRfamF2YXNjcmlwdCddID0gJ0phdmFzY3JpcHQgZiZ1dW1sO3IgZGFzIEZlbGQnOwokbGFuZ1sndGl0bGVfZmllbGRfamF2YXNjcmlwdF9sb25nJ10gPSAnRXJzdGVsbHQgZWluZW4gdm9sbHN0JmF1bWw7bmRpZ2VuIEphdmFzY3JpcHQtQXVmcnVmLCBlaW5zY2hsaWUmc3psaWc7bGljaCBkZXMgRXJlaWduaXNzZXMsIGF1ZiBkYXMgcmVhZ2llcnQgd2VyZGVuIHNvbGwsIHouQnNwLiBvbmNsaWNrPSZxdW90O3lvdXJmbigpJnF1b3Q7JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9qYXZhc2NyaXB0J10gPSAnSmF2YXNjcmlwdCBmJnV1bWw7ciBkZW4gRm9ybXVsYXJ2ZXJzYW5kJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9qYXZhc2NyaXB0X2xvbmcnXSA9ICdFcnN0ZWxsdCBlaW5lbiB2b2xsc3QmYXVtbDtuZGlnZW4gSmF2YXNjcmlwdC1BdWZydWYsIGVpbnNjaGxpZSZzemxpZztsaWNoIGRlcyBFcmVpZ25pc3NlcywgYXVmIGRhcyByZWFnaWVydCB3ZXJkZW4gc29sbCwgei5Cc3AuIG9uY2xpY2s9JnF1b3Q7eW91cmZuKCkmcXVvdDsuPGJyIC8+RGllcyBmdW5rdGlvbmllcnQgbSZvdW1sO2dsaWNoZXJ3ZWlzZSBuaWNodCByaWNodGlnLCB3ZW5uIFNpZSBkaWUgJnF1b3Q7c2FmZXR5IHNjcmlwdCZxdW90Oy1PcHRpb24gdmVyd2VuZGVuLic7CiRsYW5nWydlbWFpbF9mcm9tX2FkZHJfaGVscCddID0gJ1cmYXVtbDtobGVuIFNpZSBoaWVyIGtlaW5lIHp1ZiZhdW1sO2xsaWdlIEFkcmVzc2UgLS0gZWluaWdlIFByb3ZpZGVyIHZlcnNlbmRlbjxiciAvPmtlaW5lIEVtYWlscywgd2VubiBkZXIgRG9tYWlubmFtZSBuaWNodCBtaXQgZGVtIGFrdHVlbGxlbjxiciAvPkhvc3RuYW1lbiAmdXVtbDtiZXJlaW5zdGltbXQgKHZlcndlbmRlbiBTaWUgenVtIEJlaXNwaWVsIGV0d2FzIHdpZSBuYW1lQCVzKSc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYWR2YW5jZWQnXSA9ICdCZW4mb3VtbDt0aWdlbiBTaWUgbm9jaCBtZWhyIEZlbGR0eXBlbj8nOwokbGFuZ1sndGl0bGVfc3dpdGNoX2Jhc2ljJ10gPSAnWnUgdmllbGUgdmVyd2lycmVuZGUgRmVsZHR5cGVuPyc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYWR2YW5jZWRfbGluayddID0gJ0luIGRlbiBlcndlaXRlcnRlbiBNb2R1cyB3ZWNoc2Vsbic7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYmFzaWNfbGluayddID0gJ0luIGRlbiBlaW5mYWNoZW4gTW9kdXMgd2VjaHNlbG4nOwokbGFuZ1sndGl0bGVfZmlsZV9yb290J10gPSAnRGF0ZWkgaW4gZm9sZ2VuZGVtIFZlcnplaWNobmlzIHNwZWljaGVybic7CiRsYW5nWyd0aXRsZV9maWxlX3Jvb3RfaGVscCddID0gJ0YmdXVtbDtyIGRpZXNlcyBWZXJ6ZWljaG5pcyBtdXNzIElociBXZWJzZXJ2ZXIgZGllIFNjaHJlaWJiZXJlY2h0aWd1bmcgaGFiZW48YnIgLz4gU2V0emVuIFNpZSBkaWVzZSBiZWkgQmVkYXJmIHZpYSBjaG1vZCA3NzcuPGJyIC8+QXUmc3psaWc7ZXJkZW0gc29sbHRlbiBTaWUgZGFyYXVmIGFjaHRlbiwgZGFzcyBrZWluZSBQSFAtVmVyemVpY2huaXMtQmVzY2hyJmF1bWw7bmt1bmdlbiBiZXN0ZWhlbi4nOwokbGFuZ1sndGl0bGVfbmV3bGluZV9yZXBsYWNlbWVudCddID0gJ1plaWNoZW4sIHdlbGNoZXMgZGllIFplaWxlbnVtYnImdXVtbDtjaGUgZXJzZXR6ZW4gc29sbCc7CiRsYW5nWyd0aXRsZV9uZXdsaW5lX3JlcGxhY2VtZW50X2hlbHAnXSA9ICdMYXNzZW4gU2llIGRpZXNlcyBGZWxkIGxlZXIsIHdlbm4gYWxsZSBaZWlsZW51bWJyJnV1bWw7Y2hlIG1pdCBhdXNnZWdlYmVuIHdlcmRlbiBzb2xsZW4nOwokbGFuZ1sndGl0bGVfc2VuZF91c2VyY29weSddID0gJ0RlbSBCZW51dHplciBlaW5lIEtvcGllIGRlcyBGb3JtdWxhcnMgc2NoaWNrZW4/JzsKJGxhbmdbJ3RpdGxlX3NlbmRfdXNlcmNvcHlfbGFiZWwnXSA9ICdCZXNjaHJpZnR1bmcgZiZ1dW1sO3IgZGFzIEtvbnRyb2xsayZhdW1sO3N0Y2hlbiAoZmFsbHMgZHVyY2ggZGVuIEJlbnV0emVyIGF1c2dldyZhdW1sO2hsdCknOwokbGFuZ1sndGl0bGVfc2VuZF9tZV9hX2NvcHknXSA9ICdNaXIgZWluZSBLb3BpZSBkZXMgRm9ybXVsYXJzIHNjaGlja2VuJzsKJGxhbmdbJ3RpdGxlX2FsbG93X3N1YmplY3Rfb3ZlcnJpZGUnXSA9ICdEYXMgJlV1bWw7YmVyc2NocmVpYmVuIGRlcyBCZXRyZWZmcyBlcmxhdWJlbj8nOwokbGFuZ1sndGl0bGVfYWxsb3dfc3ViamVjdF9vdmVycmlkZV9sb25nJ10gPSAnRGFtaXQgZXJsYXViZW4gU2llLCBkYXNzIGRlciBpbSBMaXN0ZW5mZWxkIGZlc3RnZWxlZ3RlIEJldHJlZmYgZGVyIEVtYWlsICZ1dW1sO2JlcnNjaHJpZWJlbiB3ZXJkZW4ga2Fubi4nOwokbGFuZ1sndGl0bGVfZGlzcGxheV9sZW5ndGgnXSA9ICdBbnplaWdlbCZhdW1sO25nZSc7CiRsYW5nWyd0aXRsZV9taW5pbXVtX2xlbmd0aCddID0gJ01pbmltYWxlIEFudHdvcnRsJmF1bWw7bmdlJzsKJGxhbmdbJ3RpdGxlX2hpZGUnXSA9ICdFaW5nYWJlIHZlcmJlcmdlbic7CiRsYW5nWyd0aXRsZV9oaWRlX2hlbHAnXSA9ICdTb2xsZW4gYmVpIGRlciBQYXNzd29ydGVpbmdhYmUgU3ltYm9sZSBhbnN0YXR0IGVpbmZhY2hlbSBUZXh0IGFuZ2V6ZWlndCB3ZXJkZW4/JzsKJGxhbmdbJ3Bhc3N3b3JkX2RvZXNfbm90X21hdGNoJ10gPSAnRGFzIFBhc3N3b3JkIHN0aW1tdCBuaWNodCBtaXQgJXMgJnV1bWw7YmVyZWluISc7CiRsYW5nWydiYWNrX3RvcCddID0gJ1p1ciZ1dW1sO2NrIHp1ciBGb3JtQnVpbGRlci1IYXVwdHNlaXRlJzsKJGxhbmdbJ3RpdGxlX2hlYWRlcnNfdG9fbW9kaWZ5J10gPSAnV2VsY2hlIEVtYWlsLUhlYWRlciBzb2xsZW4gZGllc2UgRWluZ2FiZSBlcmhhbHRlbj8nOwokbGFuZ1snb3B0aW9uX25ldmVyJ10gPSAnTmllbWFscyc7CiRsYW5nWydvcHRpb25fdXNlcl9jaG9pY2UnXSA9ICdEZW0gQmVudXR6ZXIgZWluZSBBdXN3YWhsIGFuYmlldGVuIChLb250cm9sbGsmYXVtbDtzdGNoZW4pJzsKJGxhbmdbJ29wdGlvbl9hbHdheXMnXSA9ICdJbW1lcic7CiRsYW5nWydvcHRpb25fZnJvbSddID0gJyZxdW90O0Zyb20mcXVvdDsgZW1haWwgYWRkcmVzcyc7CiRsYW5nWydvcHRpb25fcmVwbHknXSA9ICcmcXVvdDtSZXBseS1UbyZxdW90OyBlbWFpbCBhZGRyZXNzJzsKJGxhbmdbJ29wdGlvbl9ib3RoJ10gPSAnQm90aCAmcXVvdDtGcm9tJnF1b3Q7IGFuZCAmcXVvdDtSZXBseS1UbyZxdW90OyBlbWFpbCBhZGRyZXNzZXMnOwokbGFuZ1snZXJyb3JfdXNlcnRhZ19kaXNwb3NpdGlvbiddID0gJ0RlciBiZW51dHplcmRlZmluaWVydGUgVGFnIGhhdCBlaW5lbiBGZWhsZXIgenVyJnV1bWw7Y2tnZWdlYmVuJzsKJGxhbmdbJ2Vycm9yX2NhdGFsb2dlcl9tb2R1bGVfbm90X2F2YWlsYWJsZSddID0gJzxzdHJvbmc+RGFzIENhdGFsb2dlci1Nb2R1bCBzY2hlaW50IG5pY2h0IGluc3RhbGxpZXJ0IG9kZXIgYWt0aXYgenUgc2Vpbi48L3N0cm9uZz4nOwokbGFuZ1snd2FybmluZyddID0gJ1dBUk5VTkchJzsKJGxhbmdbJ2RlZmF1bHRfdGVtcGxhdGUnXSA9ICdTdGFuZGFyZC1UZW1wbGF0ZSc7CiRsYW5nWyd0YWJsZV9sZWZ0X3RlbXBsYXRlJ10gPSAnVGFiZWxsZW4tVGVtcGxhdGUsIFRpdGVsIGxpbmtzJzsKJGxhbmdbJ3RhYmxlX3RvcF90ZW1wbGF0ZSddID0gJ1RhYmVsbGVuLVRlbXBsYXRlLCBUaXRlbCBvYmVuJzsKJGxhbmdbJ2Zvcm1fdGVtcGxhdGVfbmFtZSddID0gJ1RlbXBsYXRlIHZvbiAlcyc7CiRsYW5nWyd0ZW1wbGF0ZV9hcmVfeW91X3N1cmUnXSA9ICdXb2xsZW4gU2llIHdpcmtsaWNoIElociBUZW1wbGF0ZSBtaXQgZGVtIGF1c2dldyZhdW1sO2hsdGVuIFRlbXBsYXRlICZ1dW1sO2JlcnNjaHJlaWJlbj8gKEF1Y2gsIHdlbm4gU2llIGRpZXMgYmVzdCZhdW1sO3RpZ2VuLCBtJnV1bWw7c3NlbiBTaWUgZGllICZBdW1sO25kZXJ1bmcgc3BlaWNoZXJuKSc7CiRsYW5nWyd0aXRsZV9iYWRfZnVuY3Rpb24nXSA9ICdGZWhsZXIgYmVpbSBCZXJlY2huZW4gdm9uICZiZHF1bzslcyZsZHF1bzsuJzsKJGxhbmdbJ25vX3JlZmVycmVyX2luZm8nXSA9ICdLZWluZSBJbmZvcm1hdGlvbmVuICZ1dW1sO2JlciBkZW4gSFRUUF9SRUZFUkVSIHZlcmYmdXVtbDtnYmFyICh3YWhyc2NoZWlubGljaCBhdWZncnVuZCBkZXIgdmVyd2VuZGV0ZW4gRW1haWwtUHImdXVtbDtmdW5nKSc7CiRsYW5nWyd2YWxpZGF0aW9uX3BhcmFtX2Vycm9yJ10gPSAnRmVobGVyIGJlaW0gJlV1bWw7YmVycHImdXVtbDtmZW4gZGVyIFBhcmFtZXRlci4gQml0dGUgc3RlbGxlbiBTaWUgc2ljaGVyLCBkYXNzIGRpZSBVUkwgYXVzIElocmVyIEVtYWlsIGtvcnJla3Qga29waWVydCB3dXJkZSEnOwokbGFuZ1sndmFsaWRhdGlvbl9yZXNwb25zZV9lcnJvciddID0gJ0ZlaGxlciBiZWkgZGVyICZVdW1sO2JlcnByJnV1bWw7ZnVuZy4gQml0dGUgc3RlbGxlbiBTaWUgc2ljaGVyLCBkYXNzIGRpZSBVUkwgYXVzIElocmVyIEVtYWlsIGtvcnJla3Qga29waWVydCB3dXJkZSEnOwokbGFuZ1sndmFsaWRhdGlvbl9ub19maWVsZF9lcnJvciddID0gJ0ZlaGxlciBiZWkgZGVyICZVdW1sO2JlcnByJnV1bWw7ZnVuZy4gRGllc2VzIEZvcm11bGFyIGVudGgmYXVtbDtsdCBrZWluIEZlbGQgenVyICZVdW1sO2JlcnByJnV1bWw7ZnVuZyBkZXIgRW1haWwhJzsKJGxhbmdbJ3VwZ3JhZGUwM3RvMDQnXSA9ICdGb3JtIFRlbXBsYXRlIHdhcyB1cGRhdGVkIGF1dG9tYXRpY2FsbHkgYXMgcGFydCBvZiB0aGUgdmVyc2lvbiAwLjMgdG8gdmVyc2lvbiAwLjQgdXBncmFkZS4gWW91IG1heSBuZWVkIHRvIG1ha2Ugc29tZSBmaXhlcy4gSWYgeW91JiMwMzk7cmUgdXNpbmcgdGhlIGRlZmF1bHQgZm9ybSwgc2ltcGx5IHJlcGxhY2UgdGhpcyB0ZW1wbGF0ZSB3aXRoICZxdW90O2RlZmF1bHQmcXVvdDsgdXNpbmcgdGhlIHB1bGxkb3duIGFib3ZlLic7CiRsYW5nWydhZG1pbmRlc2MnXSA9ICdIaW56dWYmdXVtbDtnZW4sIEJlYXJiZWl0ZW4gdW5kIFZlcndhbHRlbiB2b24gaW50ZXJha3RpdmVuIEZvcm11bGFyZW4nOwokbGFuZ1snb3BlcmF0b3JzX2hlbHAnXSA9ICdJZiB5b3UgdXNlIFN0cmluZyBldmFsdWF0aW9uLCB0aGUgb25seSBvcGVyYXRpb24gYXZhaWxhYmxlIGlzIGNvbmNhdGVuYXRpb24gKCspLCB3aGlsZSBpZiB5b3UgdXNlIE51bWJlciBldmFsdWF0aW9uIHlvdSBoYXZlIGJhc2ljLCB2ZXJ5IHNpbXBsZSBtYXRoICgsICssIC0sICosIC8sICkuJzsKJGxhbmdbJ2RhdGVfamFudWFyeSddID0gJ0phbnVhcic7CiRsYW5nWydkYXRlX2ZlYnJ1YXJ5J10gPSAnRmVicnVhcic7CiRsYW5nWydkYXRlX21hcmNoJ10gPSAnTSZhdW1sO3J6JzsKJGxhbmdbJ2RhdGVfYXByaWwnXSA9ICdBcHJpbCAnOwokbGFuZ1snZGF0ZV9tYXknXSA9ICdNYWknOwokbGFuZ1snZGF0ZV9qdW5lJ10gPSAnSnVuaSc7CiRsYW5nWydkYXRlX2p1bHknXSA9ICdKdWxpJzsKJGxhbmdbJ2RhdGVfYXVndXN0J10gPSAnQXVndXN0ICc7CiRsYW5nWydkYXRlX3NlcHRlbWJlciddID0gJ1NlcHRlbWJlciAnOwokbGFuZ1snZGF0ZV9vY3RvYmVyJ10gPSAnT2t0b2Jlcic7CiRsYW5nWydkYXRlX25vdmVtYmVyJ10gPSAnTm92ZW1iZXIgJzsKJGxhbmdbJ2RhdGVfZGVjZW1iZXInXSA9ICdEZXplbWJlcic7CiRsYW5nWydzdWJtaXNzaW9uX2Vycm9yJ10gPSAnQmVpIGRlciBWZXJhcmJlaXR1bmcgZGVzIHZlcnNhbmR0ZW4gRm9ybXVsYXJzIGlzdCBlaW4gRmVobGVyIGF1ZmdldHJldGVuLic7CiRsYW5nWydzdWJtaXRfZXJyb3InXSA9ICdGZWhsZXIgYmVpbSBWZXJzYW5kOiAlcyc7CiRsYW5nWyd1cGxvYWRzX2Vycm9yJ10gPSAnRmVobGVyIGJlaSBkZXIgJlV1bWw7YmVyZ2FiZSBkZXIgRGF0ZWkgYW4gZGFzIFVwbG9hZHMtTW9kdWw6ICVzJzsKJGxhbmdbJ25vdXBsb2Fkc19lcnJvciddID0gJ0tvbm50ZSBkYXMgVXBsb2Fkcy1Nb2R1bCBuaWNodCBmaW5kZW4nOwokbGFuZ1sndXBsb2FkX2F0dGFjaF9lcnJvciddID0gJ0ZlaGxlciBiZWltIEhvY2hsYWRlbiBkZXIgRGF0ZWkgJXMgKHRlbXBvciZhdW1sO3JlciBOYW1lICVzIGRlcyBUeXBzICVzKSc7CiRsYW5nWydzdWJtaXNzaW9uX2Vycm9yX2ZpbGVfbG9jayddID0gJ0ZlaGxlci4gRGF0ZWkga29ubnRlIG5pY2h0IGdlc3BlcnJ0IHdlcmRlbi4nOwokbGFuZ1sndW5jaGVja2VkX2J5X2RlZmF1bHQnXSA9ICdTdGFuZGFyZDogbmljaHQgYXVzZ2V3JmF1bWw7aGx0JzsKJGxhbmdbJ2NoZWNrZWRfYnlfZGVmYXVsdCddID0gJ1N0YW5kYXJkOiBhdXNnZXcmYXVtbDtobHQnOwokbGFuZ1snZW1haWxfZGVmYXVsdF90ZW1wbGF0ZSddID0gJ0Zvcm1CdWlsZGVyLVZlcnNhbmQnOwokbGFuZ1snZW1haWxfdGVtcGxhdGVfbm90X3NldCddID0gJzxici8+RGFzIEVtYWlsLVRlbXBsYXRlIHd1cmRlIG5vY2ggbmljaHQgZmVzdGdlbGVndCEnOwokbGFuZ1snbWlzc2luZ19jbXNfbWFpbGVyJ10gPSAnRm9ybUJ1aWxkZXI6IEtvbm50ZSBkYXMgZXJmb3JkZXJsaWNoZSBDTVNNYWlsZXItTW9kdWwgbmljaHQgZmluZGVuISc7CiRsYW5nWyd1c2VyX2FwcHJvdmVkX3N1Ym1pc3Npb24nXSA9ICdCZW51dHplcmdlcHImdXVtbDtmdGUgJlV1bWw7YmVybWl0dGx1bmcgJXMgdm9uICVzJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXSA9ICdBdXNmJnV1bWw7aHJlbiwgd2VubiBlaW4gRm9ybXVsYXIgbWl0IGRlbSBGb3JtQnVpbGRlciB2ZXJzYW5kdCB3dXJkZSc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InXSA9ICdBdXNmJnV1bWw7aHJlbiwgd2VubiBiZWltIFZlcnNhbmQgZWluZXMgRm9ybUJ1aWxkZXItRm9ybXVsYXJzIGVpbiBGZWhsZXIgYXVmZ2V0cmV0ZW4gaXN0JzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1EaXNwbGF5J10gPSAnQXVzZiZ1dW1sO2hyZW4sIHdlbm4gZWluIEZvcm1CdWlsZGVyLUZvcm11bGFyIGFuZ2V6ZWlndCB3dXJkZSc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J10gPSAnPHA+QXVzZiZ1dW1sO2hyZW4sIHdlbm4gZWluIEZvcm11bGFyIG1pdCBkZW0gRm9ybUJ1aWxkZXIgdmVyc2FuZHQgd3VyZGUuPC9wPg0KPGg0PlBhcmFtZXRlcjwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gZGVyIE5hbWUgZGVzIEZvcm11bGFycyAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIGRpZSBpbnRlcm5lIEZvcm11bGF0LUlEIChpbnQpPC9saT4NCjxsaT48ZW0+dmFsdWVfPG5hbWU+PC9lbT4gLSB2ZXJ3ZW5kZXQgZWluZW4gdm9yZ2VnZWJlbmVuIFdlcnQgZiZ1dW1sO3IgZWluIGZlc3RnZWxlZ3RlcyBGZWxkLjwvbGk+DQo8L3VsPiAnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdEVycm9yJ10gPSAnPHA+QXVzZiZ1dW1sO2hyZW4sIHdlbm4gYmVpbSBWZXJzYW5kIGVpbmVzIEZvcm1CdWlsZGVyLUZvcm11bGFycyBlaW4gRmVobGVyIGF1ZmdldHJldGVuIGlzdDwvcD4NCjxoND5QYXJhbWV0ZXI8L2g0Pg0KPHVsPg0KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIE5hbWUgZGVzIEZvcm11bGFycyAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIGRpZSBpbnRlcm5lIEZvcm11bGFyLUlEIChpbnQpPC9saT4NCjxsaT48ZW0+ZXJyb3I8L2VtPiAtIGVpbmUgTGlzdGUgYWxsZXIgYmVrYW5udGUgRmVobGVyIChzdHJpbmcpPC9saT4NCjwvdWw+ICc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtRGlzcGxheSddID0gJzxwPkF1c2YmdXVtbDtocmVuLCB3ZW5uIGVpbiBGb3JtQnVpbGRlci1Gb3JtdWxhciBhbmdlemVpZ3Qgd3VyZGU8L3A+DQo8aDQ+UGFyYW1ldGVyPC9oND4NCjx1bD4NCjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBOYW1lIGRlcyBGb3JtdWxhcnMgKHN0cmluZyk8L2xpPg0KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBkaWUgaW50ZXJuZSBGb3JtdWxhci1JRCAoaW50KTwvbGk+DQo8L3VsPiAnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX3Jlc3BvbnNlX2lkJ10gPSAnUmVzcG9uc2UtSUQuIFdpcmQgdm9tIEZvcm1Ccm93c2VyLU1vZHVsIHZlcndlbmRldCc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfcGFzc2VkX2Zyb21fdGFnJ10gPSAnU3RhbmRhcmR3ZXJ0ZSBkZXIgRmVsZGVyOyBzaWVoZSBNb2R1bC1IaWxmZSc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZmllbGRfaWQnXSA9ICdGZWxkLUlEIGYmdXVtbDtyIGludGVybmUgT3BlcmF0aW9uZW4nOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2Zvcm1fbmFtZSddID0gJ0Zvcm11bGFyLU5hbWUnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2Zvcm1faWQnXSA9ICdGb3JtdWxhci1JRCBmJnV1bWw7ciBpbnRlcm5lIE9wZXJhdGlvbmVuJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19nZW5lcmFsJ10gPSAnQWxsZ2VtZWluZSBQYXJhbWV0ZXIgZiZ1dW1sO3IgaW50ZXJuZSBPcGVyYXRpb25lbic7CiRsYW5nWyd0ZW1wbGF0ZV92YXJpYWJsZV9oZWxwJ10gPSAnPGgzPkZvcm0gVGVtcGxhdGUgVmFyaWFibGVzPC9oMz4NCjxwPllvdSBjYW4gZWRpdCBpdCB0byBtYWtlIHlvdXIgZm9ybSBsYXlvdXQgbG9vayBhbnkgd2F5IHlvdSYjMDM5O2QgbGlrZS4NCiAgIFRvIG1ha2UgdGhlIGZvcm0gd29yaywgeW91JiMwMzk7bGwgbmVlZCB0byBhbHdheXMgaW5jbHVkZSB0aGUgJmFtcDsjMTIzOyRmYl9oaWRkZW59IGFuZCAmYW1wOyMxMjM7JHN1Ym1pdH0NCiAgIHRhZ3MuPC9wPg0KDQo8cD5Zb3UgY2FuIGFjY2VzcyB5b3VyIGZvcm0gZmllbGRzIGVpdGhlciB1c2luZyB0aGUgJGZpZWxkcyBhcnJheSBvciBieSBkaXJlY3RseSBhY2Nlc3NpbmcgZmllbGRzIGJ5IHRoZWlyIG5hbWVzIChlLmcuLCAmYW1wOyMxMjM7JG15ZmllbGQtPmlucHV0fSApPC9wPg0KDQoNCjxwPkVhY2ggZmllbGQgaGFzIHRoZSBmb2xsb3dpbmcgYXR0cmlidXRlczo8L3A+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+JzsKJGxhbmdbJ3Bvc3RfaW5zdGFsbCddID0gJzxwPlN0ZWxsZW4gU2llIHNpY2hlciwgZGFzcyBkaWUgQmVyZWNodGlndW5nICZiZHF1bztNb2RpZnkgRm9ybXMmbGRxdW87IA0KZiZ1dW1sO3IgZGllIEJlbnV0emVyIGdlc2V0enQgaXN0LCB3ZWxjaGUgZGllIEZlZWRiYWNrLUZvcm11bGFyZSBhZG1pbmlzdHJpZXJlbiB3ZXJkZW4uIFNvbGxlbiBkaWUgV2VydGUgYXVzIGRlbSBGb3JtdWxhciBwZXIgRW1haWwgdmVyc2FuZHQgd2VyZGVuLCANCnN0ZWxsZW4gU2llIGViZW5mYWxscyBzaWNoZXIsIGRhc3MgZGllIEtvbmZpZ3VyYXRpb24gZW50c3ByZWNoZW5kIGFrdHVhbGlzaWVydCB3dXJkZS48L3A+DQo8cD5BQ0hUVU5HOiBXJmF1bWw7aHJlbmQgZGVyIEJlYXJiZWl0dW5nIGRhcmYgZGFzIGpld2VpbGlnZSBGb3JtdWxhciANCkJlYXJiZWl0dW5nIG5pY2h0IGFrdGl2IHNlaW4gKD1udXR6YmFyIGYmdXVtbDtyIGRpZSBHJmF1bWw7c3RlIElocmVyIEhvbWVwYWdlKS4gU2llIHNvbGx0ZW4gZGFoZXIgZGVuIEZvcm11bGFyLVRhZyBlcnN0IGRhbm4gaW4gZWluZSBha3RpdmUgSW5oYWx0c3NlaXRlIGVpbmYmdXVtbDtnZW4sIHdlbm4gZGFzIEZvcm11bGFyIGtvbXBsZXR0IGVyc3RlbGx0IGlzdC4gQW5kZXJlbmZhbGxzIGthbm4gZXMgenUgZmVobGVyaGFmdGVuIEVyZ2Vibmlzc2VuIGtvbW1lbi48L3A+DQo8cD5IaW53ZWlzOiBEaWVzZSBWZXJzaW9uIHVudGVyc3QmdXVtbDt0enQga2VpbmUgcGFyYWxsZWxlIEJlYXJiZWl0dW5nIHZvbiBGb3JtdWxhcmVuIGR1cmNoIG1laHJlcmUgQWRtaW5pc3RyYXRvcmVuLiBTdGVsbGVuIFNpZSBkYWhlciBzaWNoZXIsIGRhc3MgZWluIEZvcm11bGFyIGpld2VpbHMgbnVyIHZvbiBlaW5lbSBBZG1pbmlzdHJhdG9yIGJlYXJiZWl0ZXQgd2lyZC48L3A+JzsKJGxhbmdbJ2hlbHAnXSA9ICc8aDM+V2FzIG1hY2h0IGRpZXNlcyBNb2R1bD88L2gzPg0KPHA+RGFzIEZvcm1CdWlsZGVyLU1vZHVsIGVybGF1YnQgSWhuZW4sIEZlZWRiYWNrLUZvcm11bGFyZSB6dSBlcnN0ZWxsZW4gKGxvZ2lzY2gsIGVzIGlzdCBkZXIgTmFjaGZvbGdlciBkZXMgRmVlZGJhY2tGb3JtLU1vZHVscyksIGVyd2VpdGVydCB1bSBkaWUgRiZhdW1sO2hpZ2tlaXQsIGVpbmdlZ2ViZW5lIERhdGVuIGF1Y2ggaW4gZWluZXIgRGF0ZW5iYW5rIGFibGVnZW4genUgayZvdW1sO25uZW4uIFp1c2FtbWVuIG1pdCBkZW0gRm9ybUJyb3dzZXItTW9kdWwgayZvdW1sO25uZW4gU2llIGVpbnNldHplbiwgdW0gZWluZmFjaGUgRGF0ZW5iYW5rLUFud2VuZHVuZ2VuIHNlbGJzdCB6dSBlcnN0ZWxsZW4uPC9wPg0KPHA+RGllIHZvbSBGb3JtQnVpbGRlciBlcnpldWd0ZW4gRm9ybXVsYXJlIGsmb3VtbDtubmVuIGluIFRlbXBsYXRlcyANCnVuZC9vZGVyIFNlaXRlbiBlaW5nZWYmdXVtbDtndCB3ZXJkZW4uIEluIGRpZSBGb3JtdWxhciBrJm91bWw7bm5lbiB2ZXJzY2hpZWRlbmUgQXJ0ZW4gdm9uIERhdGVuIGVpbmdlZ2ViZW4gd2VyZGVuLiBEaWVzZSBFaW5nYWJlbiANCjxwPkZvcm11bGFyZmVsZGVybiB3ZXJkZW4gTmFtZW4genVnZXdpZXNlbi4gRGllc2UgTmFtZW4gaWRlbnRpZml6aWVyZW4gSWhyZSBGb3JtdWxhcmZlbGRlciwgbmljaHQgbnVyIGF1ZiBkZW0gQmlsZHNjaGlybSBhbHMgQmV6ZWljaG51bmdlbiBkaWUgZGVtIEJlbnV0emVyIGRpZW5lbiwgc29uZGVybiBhdWNoIGluIGRlbiBEYXRlbiB3ZW5uIHNpZSB2ZXJzY2hpY2t0IHdlcmRlbi4gRGFtaXQgd2lyZCBzaWNoZXJnZXN0ZWxsdCBkYXNzIFNpZSBkYXMgc2VoZW4gd2FzIGRlciBOdXR6ZXIgZWluZ2VnZWJlbiBoYXQuIDxicj4NCkRlbiBOYW1lbiB3aWUgZWluZSBGcmFnZSB6dSBnZXN0YWx0ZW4gaXN0IGVpbmUgc2VociBoYW5kbGljaGUgQXJ0IHVuZCBXZWlzZSBkZW0gTnV0emVyIHp1IHZlcm1pdHRlbG4gd2FzIGhpZXIgdm9uIGlobSBlcndhcnRldCB3aXJkLiA8YnI+DQpWaWVsZSBGZWxkZXIgaGFiZW4gYmVpZGVzLCBOYW1lbiB1bmQgV2VydGUuIERpZSBOYW1lbiwgZGllIGRlbSBOdXR6ZXIgYW5nZXplaWd0IHdlcmRlbiB1bmQgZGllIFdlcnRlLCBkYXMgc2luZCBkaWUgZGllIGdlc3BlaWNoZXJ0IHdlcmRlbiB3ZW5uIGRlciBOdXR6ZXIgZGFzIEZvcm11bGFyIGFic2NoaWNrdC4gRGllIFdlcnRlIHNpbmQgd2VkZXIgdm9tIEJlbnV0emVyIGVpbnNlaGJhciBub2NoIGltIEhUTUwsIHNvbWl0IGlzdCBlcyBzaWNoZXIgc2llIGYmdXVtbDtyIEVtYWlsLUFkcmVzc2VuIHVzdy4genUgdmVyd2VuZGVuLiA8L3A+DQo8cD5FaW5pZ2UgRmVsZGVyIGsmb3VtbDtubmVuIG1laHJlcmUgV2VydGUgb2RlciBOYW1lbi9XZXJ0ZSBQYWFyZSBoYWJlbi4gV2VubiBTaWUgenVlcnN0IGVpbiBzb2xjaGVzIEZlbGQgZXJzdGVsbGVuLCBrYW5uIGVzIG0mb3VtbDtnbGljaCBzZWluLCBkYXNzIG5pY2h0IGdlbiZ1dW1sO2dlbmQgRWluZ2FiZWZlbGRlciB2b3JoYW5kZW4gc2luZCwgdW0gZGllIFdlcnRlIGVpbnp1dHJhZ2VuLiBVbSBtZWhyIE0mb3VtbDtnbGljaGtlaXRlbiB6dSBlcmhhbHRlbiBXZXJ0ZSBlaW56dXRyYWdlbiwgYmVudXR6ZW4gU2llIGRlbiBTY2hhbHRlciBhbSB1bnRlcmVuIEVuZGUgZGVyIFNlaXRlIGYmdXVtbDtyIHdlaXRlcmUgT3B0aW9uZW4uPC9wPg0KPHA+RmVsZGVybiBrJm91bWw7bm5lbiBWYWxpZGllcnVuZ3NyZWdlbG4genVnZXdpZXNlbiB3ZXJkZW4sIHdlbGNoZSBqZSBuYWNoIEZlbGR0eXAgdW50ZXJzY2hpZWRsaWNoIHNlaW4gayZvdW1sO25uZW4uIERpZXNlIFJlZ2VsbiBoZWxmZW4gc2ljaGVyenVzdGVsbGVuIGRhc3MgZGVyIE51dHplciBnJnV1bWw7bHRpZ2UgRGF0ZW4gZWluZ2lidC4gQXUmc3psaWc7ZXJkZW0gaXN0IGVzIG0mb3VtbDtnbGljaCwgRmVsZGVyIHNlcGVyYXQgbWl0IGVpbmVtICZiZHF1bzt3aXJkIGJlbiZvdW1sO3RpZ3QmbGRxdW87IHp1IG1hcmtpZXJlbiwgZGFtaXQgd2lyZCBkZXIgTnV0emVyIHNvenVzYWdlbiAmYmRxdW87Z2V6d3VuZ2VuJmxkcXVvOyBFaW5nYWJlbiB6dSBtYWNoZW4uIDwvcD4NCjxwPkZlbGRlcm4gayZvdW1sO25uZW4gYXVjaCBDU1MtS2xhc3NlbiB6dWdld2llc2VuIHdlcmRlbi4gRXMgd2VyZGVuIGRpZSBFaW5nYWJlZmVsZGVyIG1pdCBlaW5lbSBESVYgVGFnIHVuZCBkYXp1Z2VoJm91bWw7cmlnZXIgQ1NTLUtsYXNzZSB1bWdlYmVuOyBzb21pdCBrJm91bWw7bm5lbiBTaWUgSWhyIEZvcm11bGFyIHNlbGJzdCBnZXN0YWx0ZW4uIFVtIGRpZXMgZWZmaXppZW50IG51dHplbiB6dSBrJm91bWw7bm5lbiwgc29sbHRlbiBpbiBkZW4gUXVlbGx0ZXh0IGRlcyBGb3JtdWxhcmVzIGdlaGVuIHVuZCBkYW5uIElocmVuIENTUy1Db2RlIHNjaHJlaWJlbi4gPC9wPg0KPHVsPg0KPGxpPlN0YW5kYXJkIEVpbmdhYmVmZWxkZXINCiAgPHVsPg0KICAgIDxsaT5UZXh0IEVpbmdhYmVmZWxkLiBEaWVzIGlzdCBkYXMgU3RhbmRhcmQgRWluZ2FiZWZlbGQuIFNpZSBrJm91bWw7bm5lbiBkaWUgTCZhdW1sO25nZSBkZXIgZWlnZWdlYmVuZW4gWmVpY2hlbiB3JmF1bWw7aGxlbiB1bmQgdmVyc2NoaWVkZW5lIFZhbGlkaWVydW5nc2Z1bmt0aW9uZW4gYXVmIGRpZXNlIEZlbGQgYW53ZW5kZW4uPC9saT4NCiAgICA8bGk+VGV4dGJlcmVpY2guIERpZXMgaXN0IGVpbiBncm8mc3psaWc7ZXMgZm9ybWZyZWllcyBUZXh0ZWluZ2FiZWZlbGQuPC9saT4NCiAgICA8bGk+Q2hlY2tib3guIERhcyBpc3QgZGllIFN0YW5kYXJkIENoZWNrYm94LjwvbGk+DQogICAgPGxpPkNoZWNrYm94IEdydXBwZS4gRGFzIGlzdCBlaW5lIFNhbW1sdW5nIHZvbiBDaGVja2JveGVuLiBEZXIgZWluemlnZSBVbnRlcnNjaGllZCBiZXN0ZWh0IGRhcmluLCBkYXNzIGRpZXMgZWluZSBHcnVwcGUgdm9uIENoZWNrYm94ZW4gbWl0IGVpbmVtIE5hbWVuIGlzdC4gV2VpdGVyaGluIGsmb3VtbDtubmVuIFNpZSBlaW5lbiBvZGVyIG1laHJlcmUgYWxzICZiZHF1bzt3aXJkIGJlbiZvdW1sO3RpZ3QmbGRxdW87IG1hcmtpZXJlbi4gU29taXQgaXN0IGRlciBOdXR6ZXIgJmJkcXVvO2dlend1bmdlbiZsZHF1bzsgZWluZSBvZGVyIG1laHJlcmUgQ2hlY2tib3hlbiBkaWVzZXIgR3J1cHBlIGF1c3p1dyZhdW1sO2hsZW4uPC9saT4NCiAgICA8bGk+UmFkaW8gQnV0dG9uIEdydXBwZS4gRGFzIGlzdCBlaW5lIFNhbW1sdW5nIHZvbiBSYWRpbyBCdXR0b25zLiBOdXIgZWluIFJhZGlvIEJ1dHRvbiBpbiBkZXIgR3J1cHBlIGthbm4gYXVzZ2V3JmF1bWw7aGx0IHdlcmRlbi48L2xpPg0KICAgIDxsaT5QdWxsZG93bi4gRGFzIGlzdCBlaW4gU3RhbmRhcmQgUHVsbGRvd24gTWVuJnV1bWw7LiBWb20gS29uemVwdCBoZXIgZ2VzZWhlbiBkYXMgZ2xlaWNoZSB3aWUgZGllIFJhZGlvIEJ1dHRvbiBHcnVwcGUsIGFiZXIgYmVzc2VyIHdlbm4gU2llIHZpZWxlIEF1c3dhaGxtJm91bWw7Z2xpY2hrZWl0ZW4gaGFiZW4uPC9saT4NCiAgICA8bGk+TWVocmZhY2hhdXN3YWhsLiBEYXMgaXN0IGRhcyBNZWhyZmFjaGF1c3dhaGwgRmVsZC4gVm9tIEtvbnplcHQgaGVyIGdlc2VoZW4gZGFzIGdsZWljaGUgd2llIGRpZSBSYWRpbyBCdXR0b24gR3J1cHBlLCBhYmVyIGJlc3NlciB3ZW5uIFNpZSB2aWVsZSBBdXN3YWhsbSZvdW1sO2dsaWNoa2VpdGVuIGhhYmVuIHVuZCBkaWUgQXVzd2FobCBhYmVyIGJlZ3JlbnplbiBtJm91bWw7Y2h0ZW4uPC9saT4NCg0KICAgIDxsaT5CdW5kZXNzdGFhdC4gRGllcyBpc3QgZWluZSBQdWxsZG93biBMaXN0ZSBtaXQgcyZhdW1sO210bGljaGVuIEJ1bmRlc3N0YWF0ZW4gZGVyIFVTQS48L2xpPg0KPGxpPkwmYXVtbDtuZGVyLiBEaWVzIGlzdCBlaW5lIFB1bGxkb3duIExpc3RlIHMmYXVtbDttdGxpY2hlciBzaWNoIGF1ZiBkZXIgRXJkZSBiZWZpbmRsaWNoZW4gTCZhdW1sO25kZXIuPC9saT4NCjxsaT5EYXR1bXNhdXN3YWhsLiBEaWVzIGlzdCBlaW5lIGRyZWlmYWNoIFB1bGxkb3duIExpc3RlLCBkaWUgZGVtIE51dHplciBkaWUgTSZvdW1sO2dsaWNoa2VpdCBnaWJ0IGVpbiBEYXR1bSBhdXp1dyZhdW1sO2hsZW4uPC9saT4NCjwvdWw+PC9saT4NCg0KPGxpPkVtYWlsLXNwZXppZmlzY2hlIEVpbmdhYmVmZWxkZXINCiAgPHVsPg0KICAgIDxsaT5FbWFpbCBWb24gIEFkcmVzcyBGZWxkLiBIaWVyIGsmb3VtbDtubmVuIFNpZSBJaHJlIEVtYWlsLUFkcmVzc2UgZWluZ2ViZW4uIERpZXNlIHdpcmQgaW4gZGVyIGdlbmVyaWVydGVuIEVtYWlsIGltIEZlbGQgVm9uIChNYWlsYWRyZXNzZSk6IGFuZ2VnZWJlbi48L2xpPg0KICAgIDxsaT5FbWFpbCBWb24gTmFtZSBGZWxkLiBIaWVyIGsmb3VtbDtubmVuIFNpZSBJaHJlbiBOYW1lbiBlaW5nZWJlbi4gRGllc2Ugd2lyZCBpbiBkZXIgZ2VuZXJpZXJ0ZW4gRW1haWwgaW0gRmVsZCBOYW1lIChBYnNlbmRlcm5hbWUpOiBhbmdlZ2ViZW4uPC9saT4NCg0KPC91bD48L2xpPg0KDQo8bGk+S29udHJvbGxmZWxkZXIgZiZ1dW1sO3IgZGllIEFuemVpZ2U8dWw+DQo8bGk+U2VpdGVudW1icnVjaCAtIGRhcyBlcm0mb3VtbDtnbGljaHQgSWhuZW4gZGllIEF1ZnRlaWx1bmcgSWhyZXMgRmVlZGJhY2stRm9ybXVsYXJzIGluIG1laHJlcmUgU2VpdGVuLiBEaWUgRWluZ2FiZW4gamVkZXIgU2VpdGUgd2VyZGVuDQp1bmFiaCZhdW1sO25naWcgdm9uZWluYW5kZXIgZ2VwciZ1dW1sO2Z0LiBEYXMgaXN0IGluc2Jlc29uZGVyZSBiZWkgT25saW5lLVVtZnJhZ2VuICZhdW1sO3Umc3psaWc7ZXJzdCB2b3J0ZWlsaGFmdC48L2xpPg0KPGxpPi1TdGF0aXNjaGVyIFRleHQuIERhbWl0IGsmb3VtbDtubmVuIFNpZSBJaHJlbSBGb3JtdWxhciBlaW5mYWNoZW4gVGV4dCBoaW56dWYmdXVtbDtnZW4gb2RlciBlcyBiZXNjaHJpZnRlbi4gRGllcyBpc3QgZiZ1dW1sO3IgQXVzZiZ1dW1sO2xsaGlud2Vpc2UsIEhpbGZlbiB1c3cuIHNlaHIgbiZ1dW1sO3R6bGljaCwgaW5zYmVzb25kZXJlIHdlbm4gU2llIGYmdXVtbDtyIGRpZSBBbnplaWdlIGRlcyBGb3JtdWxhcnMga2VpbiBhbmdlcGFzc3RlcyBUZW1wbGF0ZSB2ZXJ3ZW5kZW4uPC9saT4NCjwvdWw+PC9saT4NCg0KPGxpPkZvcm11bGFyICYjMDM5O0hhbmRsaW5nJiMwMzk7DQogIDx1bD4NCiAgICA8bGk+KkVtYWlsIEVyZ2VibmlzIGJhc2llcmVuZCBhdWYgZGVtIFB1bGxkb3duLiBEaWVzIGlzdCBoaWxmcmVpY2ggZiZ1dW1sO3IgSW50ZXJuZXRzZWl0ZW4gd28gS29tbWVudGFyZSAmdXVtbDtiZXIgZGllIEFuZ2VsZWdlbmhlaXQgaW4gZGVuIEJldHJlZmYgZ2VzY2hyaWViZW4gd2VyZGVuLiB6LkIuIEJ1Z3Mgd2VyZGVuIHp1bSBFbnR3aWNrbGVyIGdlc2VuZGV0LCBNYXJrZXRpbmcgRnJhZ2VuIHp1IGVpbmVyIFBlcnNvbiwgRnJhZ2VuIHp1bSBWZXJrYXVmIHp1IGVpbmVyIGFuZGVyZW4gUGVzb24gdXN3LiBEYXMgUHVsbGRvd24gTWVuJnV1bWw7IHdpcmQgbWl0IEJldHJlZmZzIGhpbnRlcmxlZ3QgdW5kIGplZGVyIHdpcmQgenUgZWluZXIgc3BlemlmaXNjaGVuIE1haWxhZHJlc3NlIHZlcnNhbmR0LiBTaWUgZXJzdGVsbGVuIGRlbiBqZXdlaWxpZ2VuIEJldHJlZmYgd2VubiBTaWUgZWluIHNvbGNoZXMgRmVsZCBlcnN0ZWxsZW4gb2RlciBlZGl0aWVyZW4uIFdlbm4gU2llIGVpbiBzb2xjaGVzIFB1bGxkb3duIE1lbiZ1dW1sOyBiZW51dHplbiwgbXVzcyBkZXIgTnV0emVyIGVpbmUgQXVzd2FobCBkZXMgQmV0cmVmZnMgdyZhdW1sO2hsZW4gdW0gZGFzIEZvcm11bGFyIGFic2NoaWNrZW4genUgayZvdW1sO25uZW4uIERpZXNlcyBBdXN3YWhsZmVsZCBpc3QgZiZ1dW1sO3IgZGVuIE51dHplciBzaWNodGJhciBhYmVyIGRpZSBNYWlsYWRyZXNzZW4gZGllIGRhaGludGVyIHN0ZWhlbiB3ZXJkZW4gd2VkZXIgSWhtIG5vY2ggaW0gSFRNTCBhbmdlemVpZ3QuPC9saT4NCg0KICAgIDxsaT4qRW1haWwgRXJnZWJuaXMgYW4gQWRyZXNzZShuKSBzZW5kZW4uIERpZXMgc2VuZGV0IGRpZSBEYXRlbiBhbiBlaW5lIHZvcmhlciBhbmdlZ2ViZW5lIE1haWxhZHJlc3NlLiBEaWUgTWFpbGFkcmVzc2UobikgayZvdW1sO25uZW4gU2llIGFuZ2ViZW4gd2VubiBTaWUgZWluIHNvbGNoZXMgRmVsZCBnZW5lcmllcmVuLiBEYXMgRmVsZCB1bmQgZGVyIE5hbWUgaXN0IGYmdXVtbDtyIGRlbiBOdXR6ZXIgbmljaHQgc2ljaHRiYXIuIEF1Y2ggbmljaHQgaW0gUXVlbGx0ZXh0LjwvbGk+DQogICAgPGxpPipEYXRlbiBpbiBEYXRlbmJhbmsgc3BlaWNoZXJuLiBEaWVzIHNwZWljaGVydCBkaWUgYWJnZWdlYmVuZW4gRGF0ZW4gaW4gZWluZXIgaW50ZXJuZW4gRGF0ZW5iYW5rLiBEaWVzZSBFaW5zdGVsbHVuZyB2ZXJ3ZW5kZW4gU2llIG1laXN0ZW4gaW4gVmVyYmluZHVuZyBtaXQgZGVtIE1vZHVsIEZvcm1Ccm93c2VyLjwvbGk+DQogICAgPGxpPipWYWxpZGllcnVuZyAmdXVtbDtiZXIgZGllIE1haWxhZHJlc3NlLiBEaWVzIGlzdCBlaW4gc2VociBsZWlzdHVuZ3NmJmF1bWw7aGlnZXMgRmVsZC4gRXMgc3RlbGx0IGRlbSBCZW51dHplciBlaW4gdm9yZ2VnZWJlbmVzIEVpbmdhYmVmZWxkIGYmdXVtbDtyIHNlaW5lIE1haWxhZHJlc3NlIHp1ciBWZXJmJnV1bWw7Z3VuZy4gV2VubiBkaWVzZXIgZGFzIEZvcm11bGFyIGFic2NoaWNrdCB3aXJkIGRpZSAmVXVtbDtiZXJtaXR0bHVuZyBuaWNodCBkaXJla3QgYXVzZ2VmJnV1bWw7aHJ0LCBzb25kZXJuIHNjaGlja3QgZGVtIE51dHplciBlaW5lIE1haWwgbWl0IGVpbmVtIGNvZGllcnRlbiBMaW5rLiBFcnN0IHdlbm4gZGllc2VyIExpbmsgZ2VkciZ1dW1sO2NrdCB3aXJkIHdpcmQgZGFzIEZvcm11bGFyIHZhbGlkaWVydCB1bmQgZGllIEVpbmdhYmVuIGFiZ2VzY2hpY2t0LjwvbGk+DQogICAgPGxpPipJbiBEYXRlaSBTY2hyZWliZW4uIERpZXNlIE9wdGlvbiBncmVpZnQgZGllIERhdGVuIGFiIHVuZCBzY2hyZWlidCBzaWUgaW4gZWluZSBUZXh0ZGF0ZWkuIFNpZSBrJm91bWw7bm5lbiBkZW4gTmFtZW4gdW5kIGRhcyBEYXRlaWZvcm1hdCBiZXN0aW1tZW4uIERpZXNlIERhdGVpZW4gd2VyZGVuIGluIGRhcyBBdXNnYWJldmVyemVpY2huaXMgZGVzIE1vZHVsIEluc3RhbGxhdGlvbnMgVmVyemVpY2huaXNzZXMgZ2VzY2hyaWViZW4uIFZvcnJhdXNnZXNldHp0IGlzdCwgZGFzcyBkZXIgU2VydmVyIGRpZSBub3R3ZW5kaWdlbiBTY2hyZWlicmVjaHRlIHZlcmdlYmVuIGhhdC4NCiAgICA8L3VsPjwvbGk+PC9saT48L3VsPg0KDQo8aDM+VGVtcGxhdGVzIGYmdXVtbDtyIEVtYWlsIHVuZCBlaW5mYWNoZSBEYXRlaWVuPC9oMz4NCjxwPk1hbiBkaXNwb3NpdGlvbiB0eXBlcyBhbGxvdyB5b3UgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZm9yIHRoZSBFbWFpbCB0aGF0IGlzIGdlbmVyYXRlZCwgb3IgZm9yIHRoZSB3YXkgdGhlIHJlc3VsdHMgYXJlIHdyaXR0ZW4gdG8gYSBmaWxlLiBXZW5uIFNpZSBzZWxic3Qga2VpbmUgVGVtcGxhdGVzIGVyc3RlbGxlbiB3b2xsZW4sIHdpcmQgRm9ybUJ1aWxkZXIgZGllIG5hY2ggc2VpbmVyIEVpbnNjaCZhdW1sO3R6dW5nIGJlc3RlIEwmb3VtbDtzdW5nIHZlcndlbmRlbiwgZGllIHNvIGZ1bmt0aW9uaWVydCwgd2llIFNpZSB3b2xsZW4gb2RlciBhdWNoIG5pY2h0LiBTaWUgayZvdW1sO25uZW4gamVkZXJ6ZWl0IGF1ZiAmYmRxdW87RWluIE11c3Rlci1UZW1wbGF0ZSBlcnN0ZWxsZW4mbGRxdW87IGtsaWNrZW4gdW5kIGRhbm4gZGllIEVyZ2Vibmlzc2UgYW5wYXNzZW4uPC9wPg0KPHA+QmVhY2h0ZW4gU2llLCBkYXNzIG5ldSBoaW56dWdlZiZ1dW1sO2d0ZSBGZWxkZXIgbmljaHQgbWVociBhdXRvbWF0aXNjaCBkZW0gVGVtcGxhdGUgaGluenVnZWYmdXVtbDtndCB3ZXJkZW4sIHdlbm4gZXMgZWlubWFsIGdlJmF1bWw7bmRlcnQgd3VyZGUuIEF1cyBkaWVzZW0gR3J1bmQgaXN0IGVzIGRhcyBCZXN0ZSwgd2VubiBTaWUgZXJzdCB6dW0gU2NobHVzcyBkYXMgVGVtcGxhdGUgZiZ1dW1sO3IgZGFzIEZvcm11bGFyIGVyc3RlbGxlbi48L3A+DQoNCjxoMz5CZWthbm50ZSBQcm9ibGVtZTwvaDM+DQo8dWw+DQo8bGk+RWluaWdlIEZlbGR0eXBlbiwgZGllIGltIEZlZWRiYWNrRm9ybS1Nb2R1bCBlbnRoYWx0ZW4gd2FyZW4sIHNpbmQgaW4gRm9ybUJ1aWxkZXIgbmljaHQgaW1wbGVtZW50aWVydC4gV2VubiBlaW4gQmVkYXJmIGYmdXVtbDtyIGRpZXNlIEZlbGRlciB2b3JoYW5kZW4gaXN0LCB3ZXJkZSBpY2ggc2llIGhpbnp1Z2VmJnV1bWw7Z2VuLjwvbGk+DQo8bGk+RGFzIEZvcm1CdWlsZGVyLU1vZHVsIGthbm4gZ2VnZW53JmF1bWw7cnRpZyBub2NoIG5pY2h0IGF1ZiBkaWUgRGF0ZW4gZGVzIEZyb250ZW5kVXNlcnMtTW9kdWxzIHp1Z3JlaWZlbi4gRGllcyBpc3QgYWJlciBnZXBsYW50LjwvbGk+DQo8bGk+Rm9ybUJ1aWxkZXIgdW50ZXJzdCZ1dW1sO3R6dCBnZWdlbncmYXVtbDtydGlnIG5vY2gga2VpbmUgUHJldHR5IFVSTHMsIGRpZXMgc29sbHRlIGplZG9jaCBrZWluIFByb2JsZW0gc2VpbiwgZGEgZGllIEF1c2dhYmVuIEJlbnV0emVyc2VpdGUgc2VociBlaW5mYWNoIGdlaGFsdGVuIGlzdC48L2xpPg0KPC91bD4NCg0KPGgzPkZlaGxlcnN1Y2hlPC9oMz4NCjxvbD48bGk+IEFscyBlcnN0ZXMgc29sbHRlbiBTaWUgcHImdXVtbDtmZW4sIG9iIFNpZSBDTVNtcyBpbiBlaW5lciBWZXJzaW9uID4gMS4wIHZlcndlbmRlbi48L2xpPg0KPGxpPiBJbSB6d2VpdGVuIFNjaHJpdHQgc29sbHRlbiBTaWUgZGllIFByb2JsZW1lIGJlaSBkZXIgVmVyd2VuZHVuZyB2b24gV1lTSVdZRy1FZGl0b3JlbiBpbSBBYnNjaG5pdHQNCiA8ZW0+RWluIEZvcm11bGFyIGVpbmVyIFNlaXRlIGhpbnp1ZiZ1dW1sO2dlbjwvZW0+IGxlc2VuIHVuZCB2ZXJzdGVoZW4uPC9saT4NCjxsaT5XZW5uIFNpZSBpbiBlaW5lciB2b20gRm9ybUJ1aWxkZXIgZ2VuZXJpZXJ0ZW4gRW1haWwgYmVzdGltbXRlIEZlbGRlciB2ZXJtaXNzZW4sICZ1dW1sO2JlcnByJnV1bWw7ZmVuIFNpZSwgb2IgZGllIEZlbGRlciBpbSBUZW1wbGF0ZSBlbnRoYWx0ZW4gc2luZCwgdW5kIHN0ZWxsZW4gU2llIHNpY2hlciwgZGFzcyBTaWUgZGllIGZlaGxlbmRlbiBGZWxkZXIgYXVjaCB0YXRzJmF1bWw7Y2hsaWNoIGRlZmluaWVydCBoYWJlbi4gQXVjaCB3ZW5uIGVzIG5pY2h0IGtsYXIgZXJzaWNodGxpY2ggc2NoZWludCwga2FubiBlcyBkdXJjaGF1cyBudXIgZWluIGdhbnogZWluZmFjaGVyIEZlaGxlciBzZWluLjwvbGk+DQo8bGk+IFZlcnN1Y2hlbiBTaWUsIGF1ZiBMaW5rcyB1bmQgSWNvbnMgenUga2xpY2tlbiB1bmQgYmVvYmFjaHRlbiBnZW5hdSwgd2FzIHBhc3NpZXJ0LjwvbGk+DQo8bGk+IERpZSBsZXR6dGUgTSZvdW1sO2dsaWNoa2VpdCBpc3QsIG1pciBkYXMgUHJvYmxlbSBwZXIgRW1haWwgbWl0enV0ZWlsZW4gb2RlciBtaWNoIGltIElSQy1DaGF0IGFuenVzcHJlY2hlbiwgZGFtaXQgd2lyIGRhcyBQcm9ibGVtIGdlbWVpbnNhbSBiZWhlYmVuLjwvbGk+DQo8L29sPiANCjxwPkRpZXMgaXN0IGVpbmUgc2VociBmciZ1dW1sO2hlIFZlcnNpb24sIGVpbiB1bmdldGVzdGV0ZXMgQmV0YS1SZWxlYXNlLCB1bmQgc2VociB3YWhyc2NoZWlubGljaCBpc3QgZXMgZmVobGVyaGFmdC4gT2J3b2hsIGljaCBhbGxlcyBnZXRhbiBoYWJlLCB3YXMgaWNoIGtvbm50ZSwgDQp1bSBzaWNoZXJ6dXN0ZWxsZW4sIGRhc3Mgc2ljaCBrZWluZSBnciZvdW1sOyZzemxpZztlcmVuICZiZHF1bztXYW56ZW4mbGRxdW87IGVpbmdlc2NobGljaGVuIGhhYmVuLCBtdXNzdGUgaWNoIHcmYXVtbDtocmVuZCBkZXMgVGVzdGVucyBmZXN0c3RlbGxlbiwgZGFzcyBkYXMgUHJvZ3JhbW0gDQpzaWViZW4gS2FrZXJsYWtlbiwgendlaSBPaHJ3JnV1bWw7cm1lciwgZWluZSBrbGVpbmUgRmFtaWxpZSB2b24gQmxhdHRsJmF1bWw7dXNlbiB1bmQgZWluZSBXYW5kZXJzdGFiaGV1c2NocmVja2UgZW50aGllbHQuIFNpZSBmcmEmc3psaWc7ZW4gYXVjaA0KTmFjaGJhcnMgYiZvdW1sO3NlbiBrbGVpbmVuIGtsJmF1bWw7ZmZlbmRlbiBIdW5kLCB3b2YmdXVtbDtyIGljaCB1bmVuZGxpY2ggZGFua2JhciB3YXIuPC9wPg0KPHA+RGFzIGZpbmFsZSBSZWxlYXNlIHdpcmQgQnVnZml4ZXMsIGVpbmUgRG9rdW1lbnRhdGlvbiB1bmQgdW5iZWRpbmd0ZSBMaWViZSBlbnRoYWx0ZW4uPC9wPg0KPGgzPlN1cHBvcnQ8L2gzPg0KPHA+RGllc2VzIE1vZHVsIGJlaW5oYWx0ZXQga2VpbmVuIGtvbW1lcnppZWxsZW4gU3VwcG9ydC4gU2llIGsmb3VtbDtubmVuIGplZG9jaCAmdXVtbDtiZXIgZGllIGZvbGdlbmRlIFdlZ2UgSGlsZmUgenUgZGVtIE1vZHVsIGVyaGFsdGVuOjwvcD4NCjx1bD4NCjxsaT5GJnV1bWw7ciBkaWUgbGV0enRlIFZlcnNpb24gZGllc2VzIE1vZHVscywgRkFRcywgZGVtIFZlcnNhbmQgZWluZXMgRmVobGVycmVwb3J0cyBvZGVyIGRlbSBLYXVmIGtvbW1lcnppZWxsZW4gU3VwcG9ydCBiZXN1Y2hlbiBzaWUgYml0dGUgY2FsZ3V5cyBIb21lcGFnZSB1bnRlciA8YSBocmVmPSJodHRwOi8vdGVjaGNvbS5keW5kbnMub3JnIj50ZWNoY29tLmR5bmRucy5vcmc8L2E+LjwvbGk+DQo8bGk+RWluZSB3ZWl0ZXJlIERpc2t1c3Npb24genUgZGllc2VtIE1vZHVsIGlzdCBhdWNoIGluIGRlbiBGb3JlbiB2b24gPGEgaHJlZj0iaHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnIj5DTVMgTWFkZSBTaW1wbGU8L2E+IHp1IGZpbmRlbi48L2xpPg0KPGxpPkRlciBBdXRvciBjYWxndXkxMDAwLCBpc3QgaCZhdW1sO3VmaWcgaW0gPGEgaHJlZj0iaXJjOi8vaXJjLmZyZWVub2RlLm5ldC8jY21zIj5DTVMgSVJDIENoYW5uZWw8L2E+IHp1IGZpbmRlbi48L2xpPg0KPGxpPkxldHp0bGljaCBlcnJlaWNoZW4gU2llIGRlbiBBdXRvciBhdWNoICZ1dW1sO2JlciBlaW5lIGRpcmVrdGUgRW1haWwuPC9saT4gIA0KPC91bD4NCjxwPk5hY2ggZGVyIEdQTCB3aXJkIGRpZXNlIFNvZnR3YXJlIHNvIHZlciZvdW1sO2ZmZW50bGljaHQsIHdpZSBzaWUgaXN0LiBCaXR0ZSBsZXNlbiBTaWUgZGVuIExpemVuenRleHQgZiZ1dW1sO3IgZGVuIHZvbGxlbiBIYWZ0dW5nc2F1c3NjaGx1c3MuPC9wPg0KPGgzPkNvcHlyaWdodCB1bmQgTGl6ZW56PC9oMz4NCjxwPkNvcHlyaWdodCAmY29weTsgMjAwNiwgU2FtdWVsIEdvbGRzdGVpbiA8YSBocmVmPSJtYWlsdG86c2pnQGNtc21vZHVsZXMuY29tIj48c2pnQGNtc21vZHVsZXMuY29tPjwvYT4uIEFsbGUgUmVjaHRlIHZvcmJlaGFsdGVuLjwvcD4NCjxwPkRpZXNlcyBNb2R1bCB3dXJkZSB1bnRlciBkZXIgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5HTlUgUHVibGljIExpY2Vuc2U8L2E+IHZlciZvdW1sO2ZmZW50bGljaHQuIFNpZSBtJnV1bWw7c3NlbiBkaWVzZXIgTGl6ZW56IHp1c3RpbW1lbiwgYmV2b3IgU2llIGRhcyBNb2R1bCB2ZXJ3ZW5kZW4uPC9wPic7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEyNDgyNDEzOTIuMS4xLnV0bWNjbj0ocmVmZXJyYWwpfHV0bWNzcj1mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZ3x1dG1jY3Q9L2luZGV4LnBocHx1dG1jbWQ9cmVmZXJyYWwnOwokbGFuZ1sncWNhJ10gPSAnUDAtMTIwNTg4OTc2NS0xMjUwNDAxNTMzMjg3JzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuMTExMTE4OTExMy4xMjQ4MjQxMzkyLjEyNTA0MDIwNDAuMTI2MDQ3NzI0NC4zJzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/el_GR.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ86UzrfOvM65zr/Phc+BzrPPjM+CIM+Gzr/Pgc68z47OvSc7CiRsYW5nWydmaWVsZF90eXBlXyddID0gJ86UzrXOvSDOtM+MzrjOt866zrUgz4TPjc+Azr/PgiDOs865zrEgz4TOvyDOoM61zrTOr86/JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2F0YWxvZ2VySXRlbXNGaWVsZCddID0gJ86Vz4DOuc67zq3Ovs+EzrUgzq3Ovc6xICjOriDPgM61z4HOuc+Dz4PPjM+EzrXPgc6xKSBjYXRhbG9nZXIgzrHOvc+EzrnOus61zq/OvM61zr3OsSc7CiRsYW5nWydmaWVsZF90eXBlX0ZpZWxkc2V0RW5kJ10gPSAnLc6jzrXPhCDPgM61zrTOr8+Jzr0gz4TOrc67zr/Pgic7CiRsYW5nWydmaWVsZF90eXBlX0ZpZWxkc2V0U3RhcnQnXSA9ICctzqPOtc+EIM+AzrXOtM6vz4nOvSDOsc+Bz4fOric7CiRsYW5nWydmaWVsZF90eXBlX1RleHRGaWVsZCddID0gJ86gzrXOtM6vzr8gzrrOtc65zrzOrc69zr/PhSc7CiRsYW5nWydmaWVsZF90eXBlX1Bhc3N3b3JkRmllbGQnXSA9ICfOms+JzrTOuc66z4zPgic7CiRsYW5nWydmaWVsZF90eXBlX1Bhc3N3b3JkQWdhaW5GaWVsZCddID0gJ86az4nOtM65zrrPjM+CICjOvs6xzr3OrCDOs865zrEgzrXPgM6xzrvOrs64zrXPhc+DzrcpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkRXhwYW5kYWJsZSddID0gJ86gzrXOtM6vzr8gzrrOtc65zrzOrc69zr/PhSAozqDOv867zrvOsc+AzrvPjCknOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0QXJlYUZpZWxkJ10gPSAnzqDOtc+BzrnOv8+Hzq4gzrrOtc65zrzOrc69zr/PhSc7CiRsYW5nWydmaWVsZF90eXBlX0J1dHRvbkZpZWxkJ10gPSAnzprOv8+FzrzPgM6vJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hGaWVsZCddID0gJ86gzrXOtM6vzr8gzrXOu86tzrPPh86/z4UnOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEdyb3VwRmllbGQnXSA9ICfOn868zqzOtM6xIM+AzrXOtM6vzr/OvSDOtc67zq3Os8+Hzr/PhSc7CiRsYW5nWydmaWVsZF90eXBlX1B1bGxkb3duRmllbGQnXSA9ICfOkc69zrHPgM+Ez4XPg8+Dz4zOvM61zr3Ov8+CIM+Azq/Ovc6xzrrOsc+CJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfWWVhclB1bGxEb3duRmllbGQnXSA9ICfOkc69zrHPgM+Ez4XPg8+Dz4zOvM61zr3Ov8+CIM+Azq/Ovc6xzrrOsc+CIM6Iz4TOv8+Fz4InOwokbGFuZ1snZmllbGRfdHlwZV9NdWx0aXNlbGVjdEZpZWxkJ10gPSAnzqDOv867z4XOtc+AzrnOu86/zrPOric7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRlUGlja2VyRmllbGQnXSA9ICfOlc+AzrnOu86/zrPOrc6xz4Igz4DOv867zrnPhM61zq/Osc+CICBVLlMnOwokbGFuZ1snZmllbGRfdHlwZV9Qcm92aW5jZVBpY2tlckZpZWxkJ10gPSAnzpXPgM65zrvOv86zzq3Osc+CICDOtc+AzrHPgc+Hzq/Osc+CIM6azrHOvc6xzrTOrCc7CiRsYW5nWydmaWVsZF90eXBlX0NvdW50cnlQaWNrZXJGaWVsZCddID0gJ86Vz4DOuc67zr/Os86tzrHPgiDOp8+Oz4HOsc+CJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGF0ZVBpY2tlckZpZWxkJ10gPSAnzpXPgM65zrvOv86zzq3Osc+CIM63zrzOtc+Bzr/OvM63zr3Or86xz4InOwokbGFuZ1snZmllbGRfdHlwZV9UaW1lUGlja2VyRmllbGQnXSA9ICfOlc+AzrnOu86/zrPOrc6xz4Igzo/Pgc6xz4InOwokbGFuZ1snZmllbGRfdHlwZV9SYWRpb0dyb3VwRmllbGQnXSA9ICfOn868zqzOtM6xIM+BzqzOtM65zr/Otc+AzrnOu86/zrPOrc+Jzr0nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRpcmVjdG9yJ10gPSAnKiDOkc+Azr/Pg8+Ez4zOu863IM68zrUgRW1haWwgzrPOuc6xIM+EzrEgzrHPgM6/z4TOtc67zq3Pg868zrHPhM6xIM+Azr/PhSDOss6xz4POr862zrXPhM6xzrkgz4PPhM63zr0gzrXPgM65zrvOv86zzq4gzpHOvc6xz4DPhM+Fz4PPg8+MzrzOtc69zr/PhSDPgM6vzr3Osc66zrEgKFB1bGxkb3duKSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRmlsZURpcmVjdG9yJ10gPSAnKs6Rz4DOv864zq7Ous61z4XPg863IM+DzrUgzrHPgc+HzrXOr86/IM6zzrnOsSDPhM6xIM6xz4DOv8+EzrXOu86tz4POvM6xz4TOsSDPgM6/z4UgzrLOsc+Dzq/Ots61z4TOsc65IM+Dz4TOt869IM61z4DOuc67zr/Os86uIM6Rzr3Osc+Az4TPhc+Dz4PPjM68zrXOvc6/z4Ugz4DOr869zrHOus6xIChQdWxsZG93biknOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbk11bHRpc2VsZWN0RmlsZURpcmVjdG9yJ10gPSAnKs6Rz4DOv864zq7Ous61z4XPg863IM+DzrUgzrHPgc+HzrXOr86/KM6xKSDPgM6/z4UgzrLOsc+Dzq/Ots61z4TOtSDPg861IM+Azr/Ou867zrHPgM67zq3PgiDOtc+AzrnOu86/zrPOrc+CJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25QYWdlUmVkaXJlY3RvciddID0gJyrOkc69zrHOus6xz4TOtc+NzrjOt869z4POtyDPg861IM+DzrXOu86vzrTOsSwgz4DOv8+FIM6yzrHPg86vzrbOtc+EzrHOuSDPg8+EzrfOvSDOtc+AzrnOu86/zrPOriDOkc69zrHPgM+Ez4XPg8+Dz4zOvM61zr3Ov8+FIM+Azq/Ovc6xzrrOsSAoUHVsbGRvd24pJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbCddID0gJyrOkc+Azr/Pg8+Ez4zOu863IM68zrUgRW1haWwgz4PPhM63zr0gzrTOuc61z43OuM+Fzr3Pg863KM61zrnPgiknOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsQ29uZmlybWF0aW9uJ10gPSAnKs6Vz4DOsc67zq7OuM61z4XPg863IM68zq3Pg8+JIEVtYWlsJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Gcm9tRW1haWxBZGRyZXNzRmllbGQnXSA9ICcqzpHPgM6/z4PPhM6/zrvOriDOsc69z4TOuc6zz4HOrM+Gzr/PhSDPh8+BzrfPg865zrzOv8+Azr/Ouc+Ozr3PhM6xz4Igz4TOvyBFbWFpbCDOsc+Azr8gz4TOvyDPgM61zrTOr86/ICJGcm9tIEFkZHJlc3MiLic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRmlsZSddID0gJyrOlc6zzrPPgc6xz4bOtyDPg861ICDOkc+AzrvPjCDOsc+Bz4fOtc6vzr8nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRhdGFiYXNlJ10gPSAnKs6Rz4DOv864zq7Ous61z4XPg863IM+DzrUgzrLOrM+DzrcgzrTOtc60zr/OvM6tzr3Pic69JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Gb3JtQnJvd3NlciddID0gJyrOkc+Azr/OuM6uzrrOtc+Fz4POtyDOkc+Azr/PhM61zrvOtc+DzrzOrM+Ez4nOvSDOsc+Az4wgz4TOt869IM+AzrHOu86xzrnPjM+EzrXPgc63IM6tzrrOtM6/z4POtyBGb3JtQnJvd3NlciBNb2R1bGUgdi4wLjMnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvblVzZXJUYWcnXSA9ICcqzprOu86uz4POtyDOvM65zrHPgiDOtc+EzrnOus6tz4TOsc+CIM+Hz4HOt8+Dz4TOriDOvM6xzrbOryDOvM61IM+EzrEgzrHPgM6/z4TOtc67zq3Pg868zrHPhM6xIM+EzrfPgiDPhs+Mz4HOvM6xz4InOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZvcm0nXSA9ICcqzpHPgM6/z4PPhM6/zrvOriDPg861IM68zrnOsSDOtc69zq3Pgc6zzrXOuc6xIM+EzrfPgiDPhs+Mz4HOvM6xz4InOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRlbGl2ZXJUb0VtYWlsQWRkcmVzc0ZpZWxkJ10gPSAnKs6Rz4DOv8+Dz4TOv867zq4gRW1haWwgz4POtSDOvM65zrEgzrrOsc64zr/Pgc65zrbPjM68zrXOvc63IM6xz4DPjCDPhM6/zr0gz4fPgc63z4PPhM6uIM60zrnOtc+NzrjPhc69z4POtyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxTaXRlQWRtaW4nXSA9ICcqzpHPgM6/z4PPhM6/zrvOriBFbWFpbCDPg8+Ezr/OvSDOtM65zrHPh861zrnPgc65z4PPhM6uIM+Ezr/PhSBDTVMnOwokbGFuZ1snZmllbGRfdHlwZV9QYWdlQnJlYWtGaWVsZCddID0gJy3Okc67zrvOsc6zzq4gz4POtc67zq/OtM6xz4InOwokbGFuZ1snZmllbGRfdHlwZV9GaWxlVXBsb2FkRmllbGQnXSA9ICfOnM61z4TOsc+Gz4zPgc+Ez4nPg863IM6Rz4HPh861zq/Ov8+FJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsQWRkcmVzc0ZpZWxkJ10gPSAnzpXOvM+GzqzOvc65z4POtyDPg8+Ezr8gRW1haWwgz4TOv8+FIM+AzrXOtM6vzr/PhSAiRnJvbSBBZGRyZXNzIiAnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxBZGRyZXNzQWdhaW5GaWVsZCddID0gJ86VzrzPhs6szr3Ouc+Dzrcgz4PPhM6/IEVtYWlsIM+Ezr/PhSDPgM61zrTOr86/z4UgICJGcm9tIEFkZHJlc3MgQWdhaW4iJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsTmFtZUZpZWxkJ10gPSAnzpXOvM+GzqzOvc65z4POtyDPg8+Ezr8gRW1haWwgz4TOv8+FIM+AzrXOtM6vzr/PhSAgIkZyb20gTmFtZSIgJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsU3ViamVjdEZpZWxkJ10gPSAnzpXOvM+GzqzOvc65z4POtyDPg8+Ezr8gRW1haWwgz4TOv8+FIM+AzrXOtM6vzr/PhSAgIlN1YmplY3QiJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3RhdGljVGV4dEZpZWxkJ10gPSAnLc6jz4TOsc+EzrnOus+MIM66zrXOr868zrXOvc6/JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3lzdGVtTGlua0ZpZWxkJ10gPSAnLc6jz4TOsc+EzrnOus+Mz4Igz4XPgM61z4HPg8+Nzr3OtM61z4POvM6/z4InOwokbGFuZ1snZmllbGRfdHlwZV9MaW5rRmllbGQnXSA9ICfPhc+AzrXPgc+Dz43Ovc60zrXPg868zr/PgiAozpXOuc+DzrHOs8+JzrPOriDOsc+Azr8gz4fPgc6uz4PPhM63KSc7CiRsYW5nWydmaWVsZF90eXBlX0hpZGRlbkZpZWxkJ10gPSAnLc6az4HPhc+Gz4wgz4DOtc60zq/Ovyc7CiRsYW5nWydmaWVsZF90eXBlX0NvbXB1dGVkRmllbGQnXSA9ICctzqXPgM6/zrvOv86zzrnOts+MzrzOtc69zr8gz4DOtc60zq/Ovyc7CiRsYW5nWydmaWVsZF90eXBlX1VuaXF1ZUludGVnZXJGaWVsZCddID0gJy3OnM6/zr3Osc60zrnOus+Mz4IgzrHOus6tz4HOsc65zr/PgiAozqPPhc+BzrnOsc66z4zPgiknOwokbGFuZ1snZmllbGRfdHlwZV9Vc2VyVGFnRmllbGQnXSA9ICctzprOu86uz4POtyDOtc+EzrnOus6tz4TOsc+CIM+Hz4HOrs+Dz4TOtyc7CiRsYW5nWydmaWVsZF90eXBlX0NvbXBhbnlEaXJlY3RvcnlGaWVsZCddID0gJ86gzrXOtM6vzr8gzrrOsc+EzrHOu8+MzrPOv8+FIM61z4TOsc65z4HOtc6vzrHPgiAnOwokbGFuZ1snZmllbGRfdHlwZV9Nb2R1bGVJbnRlcmZhY2VGaWVsZCddID0gJy3OoM61zrTOr86/IM60zrnOtc+AzrHPhs6uz4IgTW9kdWxlJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbm9uZSddID0gJ86nz4nPgc6vz4IgzpXPgM6xzrvOrs64zrXPhc+DzrcnOwokbGFuZ1sndmFsaWRhdGlvbl9udW1lcmljJ10gPSAnzpHPgc65zrjOvM63z4TOuc66z4wnOwokbGFuZ1sndmFsaWRhdGlvbl9pbnRlZ2VyJ10gPSAnzpHOus6tz4HOsc65zr/Pgic7CiRsYW5nWyd2YWxpZGF0aW9uX2VtYWlsX2FkZHJlc3MnXSA9ICfOlM65zrXPjc64z4XOvc+DzrcgRW1haWwnOwokbGFuZ1sndmFsaWRhdGlvbl91c3Bob25lJ10gPSAnzpHPgc65zrjOvM+Mz4Igz4TOt867zrXPhs+Ozr3Ov8+FIM6zzrnOsSBVUyc7CiRsYW5nWyd2YWxpZGF0aW9uX211c3RfY2hlY2snXSA9ICfOoM+Bzq3PgM61zrkgzr3OsSDOtc+AzrnOu861z4fOuM61zq8nOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9tYXRjaCddID0gJ86kzrHPjc+EzrnPg863IM+Dz4XOvc6uzrjOv8+Fz4Igzq3Ous+Gz4HOsc+DzrfPgiAoUmVndWxhciBFeHByZXNzaW9uKSc7CiRsYW5nWyd2YWxpZGF0aW9uX3JlZ2V4X25vbWF0Y2gnXSA9ICfOp8+Jz4HOr8+CIM+EzrHPjc+EzrnPg863IM+Dz4XOvc6uzrjOv8+Fz4Igzq3Ous+Gz4HOsc+DzrfPgiAoUmVndWxhciBFeHByZXNzaW9uKSc7CiRsYW5nWydyZXF1aXJlZF9maWVsZF9taXNzaW5nJ10gPSAnzpTOtc69IM60z4zOuM63zrrOtSDPhM65zrzOriDPg861IM+Fz4DOv8+Hz4HOtc+Jz4TOuc66z4wgz4DOtc60zq/Ovyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV92YWx1ZSddID0gJ86gzrHPgc6xzrrOsc67z44gzrXOuc+DzqzOs861z4TOtSDOvM65zrEgz4TOuc68zq4gzrPOuc6xICIlcyInOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfbnVtYmVyJ10gPSAnzqDOsc+BzrHOus6xzrvPjiDOtc65z4POrM6zzrXPhM61IM68zrnOsSDOsc+BzrnOuM68zrfPhM65zrrOriDPhM65zrzOriDOs865zrEgIiVzIic7CiRsYW5nWydwbGVhc2VfZW50ZXJfdmFsaWQnXSA9ICfOoM6xz4HOsc66zrHOu8+OIM61zrnPg86szrPOtc+EzrUgzrzOuc6xIM6tzrPOus+Fz4HOtyDOus6xz4TOsc+Hz47Pgc63z4POtyDOs865zrEgIiVzIic7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5faW50ZWdlciddID0gJ86gzrHPgc6xzrrOsc67z44gzrXOuc+DzqzOs861z4TOtSDOvM65zrEgzrHOus6tz4HOsc65zrEgzrHPgc65zrjOvM63z4TOuc66zq4gz4TOuc68zq4gzrPOuc6xICIlcyInOwokbGFuZ1sncGxlYXNlX2VudGVyX2FuX2VtYWlsJ10gPSAnzqDOsc+BzrHOus6xzrvPjiDOtc65z4POrM6zzrXPhM61IM68zrnOsSDOrc6zzrrPhc+BzrcgzrTOuc61z43OuM+Fzr3Pg863IM63zrvOtc66z4TPgc6/zr3Ouc66zr/PjSDPhM6xz4fPhc60z4HOv868zrXOr86/z4UgzrPOuc6xICIlcyInOwokbGFuZ1snZW1haWxfYWRkcmVzc19kb2VzX25vdF9tYXRjaCddID0gJ86XIM60zrnOtc+NzrjPhc69z4POtyDOt867zrXOus+Ez4HOv869zrnOus6/z40gz4TOsc+Hz4XOtM+Bzr/OvM61zq/Ov8+FIM60zrXOvSDPhM6xzrnPgc65zqzOts61zrkgz4PPhM63zr0gz4TOuc68zq4gz4TOv8+FICIlcyInOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfcGhvbmUnXSA9ICfOoM6xz4HOsc66zrHOu8+OIM61zrnPg86szrPOtc+EzrUgzq3Ovc6xzr0gzq3Os866z4XPgc6/IM6xz4HOuc64zrzPjCDPhM63zrvOtc+Gz47Ovc6/z4UgzrPOuc6xICIlcyInOwokbGFuZ1sncGxlYXNlX2xvZ2luJ10gPSAnzqDOsc+BzrHOus6xzrvPjiDPg8+Fzr3OtM61zrjOtc6vz4TOtSDOs865zrEgzr3OsSDPh8+BzrfPg865zrzOv8+Azr/Ouc6uz4POtc+EzrUgzrHPhc+Ezq4gz4TOtyDPhs+Mz4HOvM6xJzsKJGxhbmdbJ25vdF92YWxpZF9lbWFpbCddID0gJyIlcyIgzrTOtc69IM+GzrHOr869zrXPhM6xzrkgzr3OsSDOtc6vzr3Osc65IM68zrnOsSDOrc6zzrrPhc+BzrcgzrTOuc61z43OuM+Fzr3Pg863IM63zrvOtc66z4TPgc6/zr3Ouc66zr/PjSDPhM6xz4fPhc60z4HOv868zrXOr86/z4UhJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9ub19sb25nZXInXSA9ICfOoM6xz4HOsc66zrHOu8+OIM61zrnPg86szrPOtc+EzrUgzrzOuc6xIM+EzrnOvM6uIM+Azr/PhSDOtM61zr0gzrXOr869zrHOuSDOvM61zrPOsc67z43PhM61z4HOtyDOsc+Az4wgJXMgz4fOsc+BzrHOus+Ezq7Pgc61z4InOwokbGFuZ1sncGxlYXNlX2VudGVyX2F0X2xlYXN0J10gPSAnzqDOsc+BzrHOus6xzrvPjiDOtc65z4POrM6zzrXPhM61IM68zrnOsSDPhM65zrzOriDPgM6/z4UgzrXOr869zrHOuSDPhM6/z4XOu86sz4fOuc+Dz4TOv869ICVzIM+HzrHPgc6xzrrPhM6uz4HOtc+CJzsKJGxhbmdbJ3RpdGxlX2xpc3RfZGVsaW1pdGVyJ10gPSAnzqfOsc+BzrHOus+Ezq7Pgc6xz4Igz4DOv8+FIM64zrEgz4fPgc63z4POuc68zr/PgM6/zrnOt864zrXOryDPic+CIM60zrnOsc+Hz4nPgc65z4PPhM65zrrPjCDPg861IM6xz4DOv8+EzrXOu86tz4POvM6xz4TOsSDPgM6/z4UgzrjOsSDOtc+AzrnPg8+Ez4HOrc+Izr/Phc69IM+AzrXPgc65z4PPg8+Mz4TOtc+BzrXPgiDOsc+Az4wgzrzOr86xIM+EzrnOvM6tz4InOwokbGFuZ1sneW91X25lZWRfcGVybWlzc2lvbiddID0gJ86YzrEgz4DPgc6tz4DOtc65IM69zrEgzq3Ph861z4TOtSDPhM63zr0gIiVzIiDOrM60zrXOuc6xIM6zzrnOsSDPhM63zr0gzrXOus+Ezq3Ou861z4POtyDPhM63z4Igz4PPhc6zzrrOtc66z4HOuc68zq3Ovc63z4Igz4DPgc6szr7Ot8+CLic7CiRsYW5nWydsYWNrcGVybWlzc2lvbiddID0gJ86jz4XOs86zzr3Pjs68zrchIM6UzrXOvSDOrc+HzrXPhM61IM61z4DOsc+BzrrOriDOtM65zrrOsc65z47OvM6xz4TOsSDOs865zrEgzr3OsSDOsc+Azr/Ous+Ezq7Pg861z4TOtSDPgM+Bz4zPg86yzrHPg863IM+DzrUgzrHPhc+Ez4wgz4TOvyDPhM68zq7OvM6xLic7CiRsYW5nWydmaWVsZF9vcmRlcl91cGRhdGVkJ10gPSAnzpcgz4TOsc6+zrnOvc+MzrzOt8+Dzrcgz4TPic69IM+AzrXOtM6vz4nOvSDOtc69zrfOvM61z4HPjs64zrfOus61Lic7CiRsYW5nWydmb3JtX2RlbGV0ZWQnXSA9ICfOlyDPhs+Mz4HOvM6xIM60zrnOsc6zz4HOrM+GzrfOus61Lic7CiRsYW5nWydmaWVsZF9kZWxldGVkJ10gPSAnzqTOvyDPgM61zrTOr86/IM60zrnOsc6zz4HOrM+GzrfOus61Lic7CiRsYW5nWydjb25maWd1cmF0aW9uX3VwZGF0ZWQnXSA9ICfOlc69zrfOvM61z4HPjs64zrfOus6xzr0gzr/OuSDPgc+FzrjOvM6vz4POtc65z4IuJzsKJGxhbmdbJ3lvdV9tdXN0X2NoZWNrJ10gPSAnzqDPgc6tz4DOtc65IM69zrEgzrXPgM65zrvOrc6+zrXPhM61IM+Ezr8gIiVzIiDOs865zrEgzr3OsSDPg8+Fzr3Otc+Hzq/Pg861z4TOtS4nOwokbGFuZ1snbXVzdF9zcGVjaWZ5X29uZV9kZXN0aW5hdGlvbiddID0gJ86gz4HOrc+AzrXOuSDOvc6xIM66zrHOuM6/z4HOr8+DzrXPhM61IM+Ezr/Phc67zqzPh865z4PPhM6/zr0gzrzOr86xIM60zrnOtc+NzrjPhc69z4POtyDPgM+Bzr/Ov8+BzrnPg868zr/PjSEnOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9mb3JtJ10gPSAnzpXOr8+Dz4TOtSDPg86vzrPOv8+Fz4HOv8+CIM+Mz4TOuSDOuM6tzrvOtc+EzrUgzr3OsSDOtM65zrHOs8+BzqzPiM61z4TOtSDPhM63IM+Gz4zPgc68zrEgJXM/JzsKJGxhbmdbJ2FyZV95b3Vfc3VyZV9kZWxldGVfZmllbGQnXSA9ICfOlc6vz4PPhM61IM+Dzq/Os86/z4XPgc6/z4Igz4zPhM65IM64zq3Ou861z4TOtSDOvc6xIM60zrnOsc6zz4HOrM+IzrXPhM61IM+Ezr8gz4DOtc60zq/OvyAlcz8nOwokbGFuZ1snbm90aWNlX3NlbGVjdF90eXBlJ10gPSAnzp/OuSDPgM+Bzr/Ot86zzrzOrc69zrXPgiDOtc+AzrnOu86/zrPOrc+CIM60zrXOvSDOtc6vzr3Osc65IM60zrnOsc64zq3Pg865zrzOtc+CIM6tz4nPgiDPjM+Ezr/PhSDOvyDPhM+Nz4DOv8+CIM+AzrXOtM6vzr/PhSDOvc6xIM+Bz4XOuM68zrnPg8+EzrXOry4nOwokbGFuZ1snZmllbGRfbmFtZV9pbl91c2UnXSA9ICfOpM6/IM+Mzr3Ov868zrEgz4TOv8+FIM+AzrXOtM6vzr/PhSAiJXMiIM61zq/Ovc6xzrkgzq7OtM63IM+DzrUgz4fPgc6uz4POty4gzqDOsc+BzrHOus6xzrvOv8+NzrzOtSDPh8+BzrfPg865zrzOv8+Azr/Ouc6uz4PPhM61IM68zr/Ovc6xzrTOuc66zqwgzr/Ovc+MzrzOsc+EzrEgzrPOuc6xIM+EzrEgz4DOtc60zq/OsSwgzq4gIM6xz4DOtc69zrXPgc6zzr/PgM6/zrnOrs+DzrXPhM61IM+EzrEgzrzOv869zrHOtM65zrrOrCDOv869z4zOvM6xz4TOsSDPgM61zrTOr8+Jzr0gz4PPhM65z4Igz4HPhc64zrzOr8+DzrXOuc+CIM+Ezr/PhSDOtM63zrzOuc6/z4XPgc6zzr/PjSDPhs6/z4HOvM+Jzr0uJzsKJGxhbmdbJ2ZpZWxkX25vX25hbWUnXSA9ICfOpM6xIM+AzrXOtM6vzrEgz4DPgc6tz4DOtc65IM69zrEgzq3Ph86/z4XOvSDPjM69zr/OvM6xLCDOtc66z4TPjM+CIM6xzr0gzrrOsc+EzrHPgc6zzrfOuM61zq8gzrHPhc+Ezq4gzrcgzrXPgM65zrvOv86zzq4gzrHPgM+MIM+EzrnPgiDPgc+FzrjOvM6vz4POtc65z4IuJzsKJGxhbmdbJ2Fub255bW91cyddID0gJ86Rzr3Pjs69z4XOvM6/z4InOwokbGFuZ1snYWJicmV2aWF0aW9uX2xlbmd0aCddID0gJ86czq7Ous6/z4I6ICVzICc7CiRsYW5nWydib3hlcyddID0gJyVzIM66zr/Phc+EzrnOrCc7CiRsYW5nWydvcHRpb25zJ10gPSAnJXMgzrXPgM65zrvOv86zzq3Pgic7CiRsYW5nWyd0ZXh0X2xlbmd0aCddID0gJyVzIM+HzrHPgc6xzrrPhM63z4HOtc+CLic7CiRsYW5nWydvcmRlciddID0gJ86jzrXOuc+BzqwnOwokbGFuZ1sndW5zcGVjaWZpZWQnXSA9ICdbzrHOus6xzrjPjM+BzrnPg8+Ezr9dJzsKJGxhbmdbJ2FkZGVkJ10gPSAnz4DPgc6/z4PPhM6tzrjOt866zrUnOwokbGFuZ1sndXBkYXRlZCddID0gJ861zr3Ot868zrXPgc+OzrjOt866zrUnOwokbGFuZ1snc29ydF9vcHRpb25zJ10gPSAnzpXPgM65zrvOv86zzq3PgiDPhM6xzr7Ouc69z4zOvM63z4POt8+CIM6zzrnOsSDPhM63zr0gzq3Ovs6/zrTOvyc7CiRsYW5nWydzZWxlY3Rfb25lJ10gPSAnzpXPgM65zrvOv86zzq4gzrXOvc+Mz4InOwokbGFuZ1snc2VsZWN0X3R5cGUnXSA9ICfOlc+AzrnOu86/zrPOriDPhM+Nz4DOv8+FJzsKJGxhbmdbJ3RvJ10gPSAnzqDPgc+Mz4InOwokbGFuZ1sneWVzJ10gPSAnzp3Osc6vJzsKJGxhbmdbJ25vJ10gPSAnzozPh865JzsKJGxhbmdbJ3JlY2lwaWVudHMnXSA9ICfPgM6xz4HOsc67zq7PgM+EzrXPgic7CiRsYW5nWydmaWxlX2NvdW50J10gPSAnJXMgz4DOuc64zrHOvc6sIM6xz4HPh861zq/OsSc7CiRsYW5nWydkZXN0aW5hdGlvbl9jb3VudCddID0gJyVzIM+Az4HOv86/z4HOuc+DzrzOv86vJzsKJGxhbmdbJ3NhdmUnXSA9ICfOkc+Azr/OuM6uzrrOtc+Fz4POtyc7CiRsYW5nWydhZGQnXSA9ICfOoM+Bzr/Pg864zq7Ous63JzsKJGxhbmdbJ3VwZGF0ZSddID0gJ86Vzr3Ot868zq3Pgc+Jz4POtyc7CiRsYW5nWydzYXZlX2FuZF9jb250aW51ZSddID0gJ86Rz4DOv864zq7Ous61z4XPg863IM66zrHOuSDPg8+Fzr3Orc+HzrXOuc6xIM+EzrfPgiDOtc+BzrPOsc+Dzq/Osc+CJzsKJGxhbmdbJ2luZm9ybWF0aW9uJ10gPSAnzqDOu863z4HOv8+Gzr/Pgc6vzrXPgic7CiRsYW5nWydhdXRvbWF0aWMnXSA9ICfOkc+Fz4TPjM68zrHPhM6xJzsKJGxhbmdbJ2Zvcm1zJ10gPSAnzqbPjM+BzrzOtc+CJzsKJGxhbmdbJ2Zvcm0nXSA9ICfOps+Mz4HOvM6xICVzJzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb24nXSA9ICfOoc+FzrjOvM6vz4POtc65z4InOwokbGFuZ1snZmllbGRfcmVxdWlyZW1lbnRfdXBkYXRlZCddID0gJ86XIM6xz4DOsc65z4TOv8+FzrzOrc69zrcgzrrOsc+EzqzPg8+EzrHPg863IM6zzrnOsSDPhM6/IM+AzrXOtM6vzr8gzrXOvc63zrzOtc+Bz47OuM63zrrOtS4nOwokbGFuZ1snbWF4aW11bV9zaXplJ10gPSAnzpzOrc6zzrnPg8+Ezr8gzpzOrc6zzrXOuM6/z4InOwokbGFuZ1sncGVybWl0dGVkX2V4dGVuc2lvbnMnXSA9ICfOpM+Nz4DOv865JzsKJGxhbmdbJ3Blcm1pdHRlZF9maWxldHlwZXMnXSA9ICfOlc+AzrnPhM+BzrXPgM+MzrzOtc69zr/OuSDPhM+Nz4DOv865IM6xz4HPh861zq/Pic69JzsKJGxhbmdbJ2ZpbGVfdG9vX2xhcmdlJ10gPSAnzqTOvyDOsc+Bz4fOtc6vzr8gzrXOr869zrHOuSDPgM6/zrvPjSDOvM61zrPOrM67zr8hIM6kzr8gzrzOrc6zzrnPg8+Ezr8gzrXPgM65z4TPgc61z4DPhM+MIM68zq3Os861zrjOv8+CIM61zq/Ovc6xzrk6JzsKJGxhbmdbJ2lsbGVnYWxfZmlsZV90eXBlJ10gPSAnzpHPhc+Ez4zPgiDOvyDPhM+Nz4DOv8+CIM6xz4HPh861zq/Ov8+FIM61zr3OtM6tz4fOtc+EzrHOuSDOvc6xIM68zrfOvSDPhs6/z4HPhM+JzrjOtc6vLiDOoM6xz4HOsc66zrHOu86/z43OvM61IM6yzrXOss6xzrnPic64zrXOr8+EzrUgz4zPhM65IM63ICDOus6xz4TOrM67zrfOvs63IM+Ezr/PhSDOsc+Bz4fOtc6vzr/PhSDOtc6vzr3Osc65IM+Dz4nPg8+Ezq4uJzsKJGxhbmdbJ3VwbG9hZCddID0gJ86czrXPhM6xz4bPjM+Bz4TPic+DzrcnOwokbGFuZ1snZm9ybV9pbXBvcnRlZCddID0gJ86XIM+Gz4zPgc68zrEgzrXOuc+Dzq7Ph864zrfOus61Lic7CiRsYW5nWydmb3JtX2ltcG9ydF9mYWlsZWQnXSA9ICfOlyDOtc65z4POsc6zz4nOs86uIM+EzrfPgiDPhs+Mz4HOvM6xz4IgzrHPgM6tz4TPhc+HzrUhISDOpc+AzqzPgc+HzrXOuSDOus6sz4DOv865zr8gz4DPgc+MzrLOu863zrzOsSDOvM61IM+Ezr8gzrHPgc+HzrXOr86/IFhNTC4nOwokbGFuZ1sncm93cyddID0gJyVzIM+DzrXOuc+Bzq3Pgic7CiRsYW5nWydjb2xzJ10gPSAnJXMgz4PPhM6uzrvOtc+CJzsKJGxhbmdbJzEyX2hvdXInXSA9ICcxMs+Oz4HOvyDPgc6/zrvPjM65JzsKJGxhbmdbJzI0X2hvdXInXSA9ICcyNM+Oz4HOvyDPgc6/zrvPjM65JzsKJGxhbmdbJ2hvdXInXSA9ICfOj8+BzrEnOwokbGFuZ1snbWluJ10gPSAnzpvOtc+Az4TPjCc7CiRsYW5nWydtZXJpZCddID0gJ86czrXPg863zrzOss+BzrnOvc+Mz4InOwokbGFuZ1snZGF0ZV9yYW5nZSddID0gJ86jzrXOuc+Bzqw6ICVzIC0gJXMnOwokbGFuZ1sndGhhbmtzJ10gPSAnzpXPhc+HzrHPgc65z4PPhM+OISDOv865IM+AzrHPgc6xz4TOt8+Bzq7Pg861zrnPgiDPg86xz4Igzq3Ph86/z4XOvSDOu863z4bOuM61zq8uJzsKJGxhbmdbJ2VkaXQnXSA9ICfOlc+AzrXOvs61z4HOs86xz4POr86xJzsKJGxhbmdbJ2RlbGV0ZSddID0gJ86UzrnOsc6zz4HOsc+Gzq4nOwokbGFuZ1snZGF5J10gPSAnzpfOvM6tz4HOsSc7CiRsYW5nWydtb24nXSA9ICfOnM6uzr3Osc+CJzsKJGxhbmdbJ3llYXInXSA9ICfOp8+Bz4zOvc6/z4InOwokbGFuZ1snbm9uZSddID0gJyjPhM6vz4DOv8+EzrEpJzsKJGxhbmdbJ2NzcyddID0gJ0NTUyAnOwokbGFuZ1sndW5pbnN0YWxsZWQnXSA9ICfOpM6/IE1vZHVsZSDOsc+AzrXOs866zrHPhM6xz4PPhM6szrjOt866zrUuJzsKJGxhbmdbJ2luc3RhbGxlZCddID0gJ86XIM6tzrrOtM6/z4POtyAgJXMgIM+Ezr/PhSBNb2R1bGUgzrXOs866zrHPhM6xz4PPhM6szrjOt866zrUuJzsKJGxhbmdbJ3VwZ3JhZGVkJ10gPSAnzqTOvyBNb2R1bGUgzrXOvc63zrzOtc+Bz47OuM63zrrOtSDPg8+EzrfOvSDOrc66zrTOv8+DzrcgJXMuJzsKJGxhbmdbJ2J1dHRvbl9wcmV2aW91cyddID0gJ86gzq/Pg8+JLi4uJzsKJGxhbmdbJ2J1dHRvbl9zdWJtaXQnXSA9ICfOkc+Azr/Pg8+Ezr/Ou86uIM+Gz4zPgc68zrHPgic7CiRsYW5nWydidXR0b25fY29udGludWUnXSA9ICfOo8+Fzr3Orc+HzrXOuc6xLi4uJzsKJGxhbmdbJ3ZhbHVlX2NoZWNrZWQnXSA9ICfOlc+AzrnOu861zrPOvM6tzr3Ovyc7CiRsYW5nWyd2YWx1ZV91bmNoZWNrZWQnXSA9ICfOkc+AzrXPgM65zrvOtc6zzrzOrc69zr8nOwokbGFuZ1sndGFiX21haW4nXSA9ICfOms+Fz4HOr8+Jz4InOwokbGFuZ1sndGFiX3N5bWJvbCddID0gJ86hz4XOuM68zq/Pg861zrnPgiDOtc68z4bOrM69zrnPg863z4IgzqbPjM+BzrzOsc+CJzsKJGxhbmdbJ3RhYl9zdWJtaXQnXSA9ICfOkc+Azr/Pg8+Ezr/Ou86uIM+Gz4zPgc68zrHPgic7CiRsYW5nWyd0YWJfY2FwdGNoYSddID0gJ86hz4XOuM68zq/Pg861zrnPgiDOn8+Az4TOv861zrvOrc6zz4fOv8+FJzsKJGxhbmdbJ3RhYl9hZHZhbmNlZCddID0gJ86gz4HOv8+Hz4nPgc63zrzOrc69zrXPgiDPgc+FzrjOvM6vz4POtc65z4InOwokbGFuZ1sndGFiX3RlbXBsYXRlbGF5b3V0J10gPSAnzqDPgc+Mz4TPhc+Azr8gzqbPjM+BzrzOsc+CJzsKJGxhbmdbJ3RhYl9zdWJtaXNzaW9udGVtcGxhdGUnXSA9ICfOoM+Bz4zPhM+Fz4DOvyDOsc+Azr/Pg8+Ezr/Ou86uz4InOwokbGFuZ1sndGFiX3VkdCddID0gJ86UzrnOsc+Dz43Ovc60zrXPg863IM68zrUgVURUJzsKJGxhbmdbJ2NhbnVzZV9zbWFydHknXSA9ICc8ZW0+zp/OuSDOvM61z4TOsc6yzrvOt8+Ezq3PgiBTbWFydHkgzrXOr869zrHOuSDOrc6zzrrPhc+BzrXPgiDOs865zrEgz4TOvyDPgM61zrTOr86/LjwvZW0+JzsKJGxhbmdbJ2FkZF9vcHRpb25zJ10gPSAnzqDPgc6/z4POuM6uzrrOtyDOoM61z4HOuc+Dz4PPjM+EzrXPgc+Jzr0gzpXPgM65zrvOv86zz47OvSc7CiRsYW5nWydkZWxldGVfb3B0aW9ucyddID0gJ86UzrnOsc6zz4HOsc+Gzq4gz4TPic69IM61z4DOuc67zrXOs868zq3Ovc+Jzr0gzrXPgM65zrvOv86zz47OvSc7CiRsYW5nWydhZGRfY2hlY2tib3hlcyddID0gJ86gz4HOv8+DzrjOrs66zrcgz4DOtc+BzrnPg8+Dz4zPhM61z4HOv869IENoZWNrYm94ZXMnOwokbGFuZ1snZGVsZXRlX2NoZWNrYm94ZXMnXSA9ICfOlM65zrHOs8+BzrHPhs6uIM+Ez4nOvSDOtc+AzrnOu861zrPOvM6tzr3Pic69IENoZWNrYm94ZXMnOwokbGFuZ1snYWRkX2FkZHJlc3MnXSA9ICfOoM+Bzr/Pg864zq7Ous63IM66zrHOuSDOrM67zrvOt8+CIM60zrnOtc+NzrjPhc69z4POt8+CJzsKJGxhbmdbJ2RlbGV0ZV9hZGRyZXNzJ10gPSAnzpTOuc6xzrPPgc6xz4bOriDPhM+Jzr0gzrXPgM65zrvOtc6zzrzOrc69z4nOvSDOtM65zrXPhc64z43Ovc+DzrXPic69JzsKJGxhbmdbJ2FkZF9kZXN0aW5hdGlvbiddID0gJ86gz4HOv8+DzrjOrc+Dz4TOtSDOus6xzrkgzqzOu867zr8gz4DPgc6/zr/Pgc65z4POvM+MJzsKJGxhbmdbJ2RlbGV0ZV9kZXN0aW5hdGlvbiddID0gJ86UzrnOsc6zz4HOsc+Gzq4gz4TPic69IM61z4DOuc67zrXOs868zq3Ovc+Jzr0gz4DPgc6/zr/Pgc65z4POvM+Ozr0nOwokbGFuZ1snc3VzcGVjdGVkX3NwYW0nXSA9ICfOoM6sz4HOsSDPgM6/zrvOu86sIM68zrfOvc+NzrzOsc+EzrEgzrfOu861zrrPhM+Bzr/Ovc65zrrOv8+NIM+EzrHPh8+FzrTPgc6/zrzOtc6vzr/PhSDOrc+Hzr/Phc69IM+Dz4TOsc67zrjOtc6vIM6xz4DPjCDPhM63zr0gSVAgzrTOuc61z43OuM+Fzr3Pg86uIM+DzrHPgi7OnyDOus+OzrTOuc66zrHPgiDOs865zrEgQW50aS1TcGFtIM6tz4fOtc65IM61zrzPgM6/zrTOr8+DzrXOuSDPhM63zr0gz4DOsc+BzqzOtM6/z4POty4nOwokbGFuZ1snc3VzcGVjdGVkX3NwYW1fbG9nJ10gPSAnzqXPgM6/z4jOr86xIM6zzrnOsSBzcGFtIM6xz4DPjCDPhM63zr0gSVAgICVzICzOtyDOv8+Azr/Or86xIM61zq/Ovc6xzrkgz4DOu86tz4nOvSDOvM+AzrvOv866zrHPgc65z4POvM6tzr3Oty4nOwokbGFuZ1sncmVvcmRlciddID0gJ86Rzr3Osc60zrnOrM+EzrHOvs63IM+AzrXOtM6vz4nOvSc7CiRsYW5nWydjYW5jZWwnXSA9ICfOkc66z43Pgc+Jz4POtyc7CiRsYW5nWyd2YWx1ZV9zZXQnXSA9ICfOpM65zrzOrjogJXMnOwokbGFuZ1snaGVscF9jYXRhbG9nZXJfYXR0cmlidXRlX2ZpZWxkcyddID0gJ86gzrHPgc6xzrrOrM+Ez4kgzrXOr869zrHOuSDOvM65zrEgzrvOr8+Dz4TOsSDOvM61IM+EzrEgz4fOsc+BzrHOus+EzrfPgc65z4PPhM65zrrOrCDPgM6/z4UgzrTOuc6xz4TOr864zrXOvc+EzrHOuSDOsc+Az4wgz4TOvyAgbW9kdWxlIENhdGFsb2dlci48YnIvPllvdSBjYW4gb3B0aW9uYWxseSBzcGVjaWZ5IHZhbGlkIHJhbmdlcywgdmFsdWVzLCBvciBudW1lcm91cyB2YWx1ZXMgdG8gYmUgdXNlZCBpbiBmaWx0ZXJpbmcgdGhlIGxpc3Qgb2YgaXRlbXMgdGhhdCBpcyBkaXNwbGF5ZWQgdG8gdGhlIHVzZXIuPGJyLz4NCjxici8+DQo8c3Ryb25nPlJhbmdlczo8L3N0cm9uZz48YnIvPg0KUmFuZ2VzIGNhbiBiZSBzcGVjaWZpZWQgYnkgc2lnbmlmeWluZyBhIG1pbmltdW0gYW5kIG1heGltdW0gdmFsdWUgdXNpbmcgdGhpcyBzeW50YXg6ICJyYW5nZTogbWludmFsdWUgdG8gbWF4dmFsdWUiPGJyLz4NCjxici8+DQo8c3Ryb25nPk11bHRpcGxlIFZhbHVlczo8L3N0cm9uZz48YnIvPg0KVG8gc3BlY2lmeSBtdWx0aXBsZSB2YWx1ZXMgZm9yIGFuIGF0dHJpYnV0ZSB1c2UgdGhlIHN5bnRheCAibXVsdGk6IHZhbHVlMXx2YWx1ZTJ8dmFsdWUzIjxici8+DQo8YnIvPg0KPHN0cm9uZz5WYWx1ZXMgZnJvbSBoaWRkZW4gZmllbGRzPC9zdHJvbmc+PGJyLz4NClRvIHNwZWNpZnkgYSB2YWx1ZSBmcm9tIGEgaGlkZGVuIGZpZWxkIHVzZSB0aGUgc3ludGF4IHskZmxkX2lkfTxici8+DQo8YnIvPic7CiRsYW5nWydoZWxwX25hbWVfcmVnZXgnXSA9ICfOnM65zrEgzrrOsc69zr/Ovc65zrrOriDOrc66z4bPgc6xz4POtyAocmVndWxhciBleHByZXNzaW9uKSDPgM6/z4UgzrjOsSDOtc+AzrnPhM+Bzq3PiM61zrkgz4TOvyDPhs65zrvPhM+BzqzPgc65z4POvM6xIM+Ez4nOvSDOsc69z4TOuc66zrXOr868zrXOvc+Jzr0gY2F0YWxvZ2VyIM66zrHPhM6sIM+Mzr3Ov868zrEnOwokbGFuZ1snaGVscF9maWVsZF9oZWlnaHQnXSA9ICfOpM6/IM+Nz4jOv8+CIM+Ezr/PhSDPgM61zrTOr86/z4UgbXVsdGlzZWxlY3QnOwokbGFuZ1sndGl0bGVfbmFtZV9yZWdleCddID0gJ86azrHOvc6/zr3Ouc66zq4gzq3Ous+Gz4HOsc+DzrcgKFJlZ3VsYXIgRXhwcmVzc2lvbikgzrPOuc6xIM6Mzr3Ov868zrEgzqDOtc60zq/Ov8+FIENhdGFsb2dlcic7CiRsYW5nWyd0aXRsZV9maWVsZF9oZWlnaHQnXSA9ICfOjs+Izr/PgiDPgM61zrTOr86/z4UnOwokbGFuZ1sndGl0bGVfZmlsZV9wYXRoJ10gPSAnzprOsc+EzqzOu86/zrPOv8+CIM+Az4HOv86/z4HOuc+DzrzOv8+NIM6zzrnOsSDPhM6xIM6xz4HPh861zq/OsSDOtc6+z4zOtM6/z4UnOwokbGFuZ1sndGl0bGVfdWR0X25hbWUnXSA9ICfOlc+EzrnOus6tz4TOsSDOus6xzrjOv8+BzrnOts+MzrzOtc69zrcgzrHPgM+MIM+Ezr/OvSDPh8+Bzq7Pg8+EzrcnOwokbGFuZ1sndGl0bGVfdXBsb2Fkc19kZXN0cGFnZSddID0gJ86jzrXOu86vzrTOsSDOs865zrEgzr3OsSDOtc+AzrnPg8+Ez4HOrc+IzrXPhM61IM68zrUgz4PPhc69zrTOrc+DzrzOv8+Fz4Igz4POtSDOvM61z4TOsc+Gzr/Pgc+Ez47Pg861zrnPgic7CiRsYW5nWyd0aXRsZV91cGxvYWRtb2R1bGVfc3VtbWFyeSddID0gJ86lz4DOv86yzrvOrs64zrfOus61IGZvcm1idWlsZGVyJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZHNfY2F0ZWdvcnknXSA9ICfOms6xz4TOt86zzr/Pgc6vzrXPgiDOvM61z4TOsc+Gzr/Pgc+Ez47Pg861z4nOvSc7CiRsYW5nWyd0aXRsZV9zZW5kdG9fdXBsb2FkcyddID0gJ86Rz4DOv8+Dz4TOv867zq4gzrHPhc+Ezr/PjSDPhM6/z4UgzrHPgc+HzrXOr86/z4Ugz4PPhM6/IHVwbG9hZHMgbW9kdWxlJzsKJGxhbmdbJ3RpdGxlX2xlZ2VuZCddID0gJ86lz4DPjM68zr3Ot868zrEnOwokbGFuZ1sndGl0bGVfbWF4aW11bV9sZW5ndGgnXSA9ICfOnM6tzrPOuc+Dz4TOvyDOnM6uzrrOv8+CJzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2xhYmVsJ10gPSAnzpXPhM65zrrOrc+EzrEgQ2hlY2tib3gnOwokbGFuZ1sndGl0bGVfcmFkaW9fbGFiZWwnXSA9ICfOlc+EzrnOus6tz4TOsSBSYWRpbyBCdXR0b24nOwokbGFuZ1sndGl0bGVfY2hlY2tlZF92YWx1ZSddID0gJ86kzrnOvM6uIM+Mz4TOsc69IM61z4DOuc67zrXOs861zq8nOwokbGFuZ1sndGl0bGVfdW5jaGVja2VkX3ZhbHVlJ10gPSAnzqTOuc68zq4gzrXOrM69IM60zrXOvSDOrc+HzrXOuSDOtc+AzrnOu861zrPOtc6vJzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2RldGFpbHMnXSA9ICfOm861z4DPhM6/zrzOrc+BzrXOuc61z4Igzr/OvM6szrTOsc+CIENoZWNrYm94JzsKJGxhbmdbJ3RpdGxlX2RlbGV0ZSddID0gJ86UzrnOsc6zz4HOsc+Gzq4/JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9vbmVfbWVzc2FnZSddID0gJyLOlc+AzrnOu86/zrPOriDOtc69z4zPgiIgzprOtc6vzrzOtc69zr8nOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX3ZhbHVlJ10gPSAnzpXPgM65zrvOv86zzq4gz4TOuc68zq7Pgic7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fZGlzcGxheW5hbWUnXSA9ICfOlc68z4bOsc69zrnOts+MzrzOtc69zr8gzozOvc6/zrzOsSDOtc+AzrnOu86/zrPOrs+CJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl9zdWJqZWN0J10gPSAnzpjOrc68zrEgzrXPgM65zrvOv86zzq7Pgic7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9jb3VudHJ5J10gPSAnzqDPgc6/zrrOsc64zr/Pgc65z4POvM6tzr3OtyDOtc+AzrnOu86/zrPOric7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9zdGF0ZSddID0gJ86gz4HOv866zrHOuM6/z4HOuc+DzrzOrc69zrcgzrXPgM65zrvOv86zzq4nOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfcHJvdmluY2UnXSA9ICfOoM+Bzr/Ous6xzrjOv8+BzrnPg868zq3Ovc63IM61z4DOuc67zr/Os86uJzsKJGxhbmdbJ3RpdGxlX29wdGlvbl9uYW1lJ10gPSAnzozOvc6/zrzOsSDOlc+AzrnOu86/zrPOrs+CJzsKJGxhbmdbJ3RpdGxlX29wdGlvbl92YWx1ZSddID0gJ86kzrnOvM6uIM+Fz4DOv86yzrvOrs64zrfOus61JzsKJGxhbmdbJ3RpdGxlX3B1bGxkb3duX2RldGFpbHMnXSA9ICfOlc+AzrnOu86/zrPOrc+CIM6xzr3Osc+Az4TPhc+Dz4PPjM68zrXOvc6/z4Ugz4DOr869zrHOus6xIChQdWxsZG93biknOwokbGFuZ1sndGl0bGVfbXVsdGlzZWxlY3RfZGV0YWlscyddID0gJ86Vz4DOuc67zr/Os86tz4Igz4DOv867z4XOtc+AzrnOu86/zrPOrs+CIChNdWx0aXNlbGVjdCknOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fYWRkcmVzcyddID0gJ86UzrnOtc+NzrjPhc69z4POtyBFbWFpbCDPgM+Bzr/Ov8+BzrnPg868zr/PjSc7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9maWxlbmFtZSddID0gJ86Mzr3Ov868zrEgzrHPgc+HzrXOr86/z4Ugz4DPgc6/zr/Pgc65z4POvM6/z40nOwokbGFuZ1sndGl0bGVfZW1haWxfZnJvbV9uYW1lJ10gPSAnIs6Rz4DPjCDPjM69zr/OvM6xIiAgzrPOuc6xIGVtYWlsJzsKJGxhbmdbJ3RpdGxlX3JlbGF4ZWRfZW1haWxfcmVnZXgnXSA9ICfOp8+BzrfPg865zrzOv8+Azr/Ouc6uz4PPhM61IM+HzrHOu86xz4HOriDOtc+AzrnOus+Nz4HPic+DzrcgZW1haWwnOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9yZWdleF9sb25nJ10gPSAnzqfPgc63z4POuc68zr/PgM6/zrnOrs+Dz4TOtSDPh86xzrvOsc+Bzq4gzrXPgM65zrrPjc+Bz4nPg863IGVtYWlsIChlLmcuLCDOtc+Azq3PhM+BzrXPiM61ICJ4QHkiIM6xzr3PhM6vIM6zzrnOsSDPhM6/IM+Dz4XOvc6uzrjPic+CIM6xz4DOsc65z4TOv8+NzrzOtc69zr8gInhAeS50bGQiKSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9mcm9tX2FkZHJlc3MnXSA9ICcizpHPgM+MIM60zrnOtc+NzrjPhc69z4POtyIgzrPOuc6xIGVtYWlsJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2VuY29kaW5nJ10gPSAnzprPic60zrnOus6/z4DOv86vzrfPg863IM+HzrHPgc6xzrrPhM6uz4HPic69IEVtYWlsJzsKJGxhbmdbJ3RpdGxlX2RpcmVjdG9yX2RldGFpbHMnXSA9ICfOm861z4DPhM6/zrzOrc+BzrXOuc61z4IgRW1haWxlciDOss6xz4POuc62z4zOvM61zr3OvyDPg861IM6xzr3Osc+Az4TPhc+Dz4PPjM68zrXOvc6/IM+Azq/Ovc6xzrrOsSAoUHVsbGRvd24pJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfbmFtZSddID0gJ86Mzr3Ov868zrEgzrHPgc+HzrXOr86/z4UnOwokbGFuZ1sndGl0bGVfZW1haWxfc3ViamVjdCddID0gJ86Yzq3OvM6xIEVtYWlsJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmFtZSddID0gJ86Mzr3Ov868zrEgz4bPjM+BzrzOsc+CJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fc3RhdHVzJ10gPSAnzprOsc+EzqzPg8+EzrHPg863IM+Gz4zPgc68zrHPgic7CiRsYW5nWyd0aXRsZV9yZWFkeV9mb3JfZGVwbG95bWVudCddID0gJ86Iz4TOv865zrzOv865IM6zzrnOsSDOtc6zzrrOsc+EzqzPg8+EzrHPg863JzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTEnXSA9ICfOlM61zr0gzrXOr869zrHOuSDOrc+Ezr/Ouc68zr8nOwokbGFuZ1sndGl0bGVfcmVkaXJlY3RfcGFnZSddID0gJ86jzrXOu86vzrTOsSDOsc69zrHOus6xz4TOtc+NzrjPhc69z4POt8+CIM68zrXPhM6sIM+EzrfOvSDOsc+Azr/Pg8+Ezr/Ou86uIM+EzrfPgiDPhs+Mz4HOvM6xz4InOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MiddID0gJ86gzrHPgc6xzrrOsc67zrXOr8+DzrjOtSDOvc6xIM+Az4HOv8+DzrjOrc+DzrXPhM61IM6tzr3OsSDPgM61zrTOr86/IM+Dz4TOtyDPhs+Mz4HOvM6xIM6zzrnOsSDOvc6xIM+Hz4HOt8+DzrnOvM6/z4DOv865zrfOuM61zq8gz4PPhM6/zr0gzrXOu86tzrPPh86/IM+Ezr/OvSDOtM61zrTOv868zq3Ovc6/zr0gz4TOv8+FIM+Hz4HOrs+Dz4TOty4gzpzPgM6/z4HOtc6vz4TOtSDOvc6xJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeV9saW5rJ10gPSAnz4fPgc63z4POuc68zr/PgM6/zrnOrs+DzrXPhM61IM6xz4XPhM6uzr0gz4TOtyDPg8+Fzr3PhM+MzrzOtc+Fz4POtyc7CiRsYW5nWyd0aXRsZV9mb3JtX2FsaWFzJ10gPSAnzqjOtc+FzrTPjs69z4XOvM6/IM+Gz4zPgc68zrHPgic7CiRsYW5nWyd0aXRsZV9maWVsZF9hbGlhc19zaG9ydCddID0gJ86ozrXPhc60z47Ovc+FzrzOvyc7CiRsYW5nWyd0aXRsZV9mb3JtX2ZpZWxkcyddID0gJ86gzrXOtM6vzrEgz4bPjM+BzrzOsc+CJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2lkJ10gPSAnSWQgzqDOtc60zq/Ov8+FJzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRhbGlhc2VzJ10gPSAnzpXOvM+GzqzOvc65z4POtyDOqM61z4XOtM+Ozr3Phc68zr/PhSDPhM+Jzr0gzqDOtc60zq/Pic69JzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRhbGlhc2VzX2xvbmcnXSA9ICfOms6szr3Ov869z4TOsc+CIM66zrvOuc66IM+DzrUgzrHPhc+Ez4wgzrjOsSDOtc68z4bOsc69zq/Ots6/zr3PhM6xzrkgz4TOsSDPiM61z4XOtM+Ozr3Phc68zrEgz4TPic69IM+AzrXOtM6vz4nOvSDOus6xz4TOrCDPhM63zr0gz4DPgc6/z4POuM6uzrrOtyDOriDPhM63zr0gzrXPgM61zr7Otc+BzrPOsc+Dzq/OsSDOvM65zrHPgiDPhs+Mz4HOvM6xz4InOwokbGFuZ1sndGl0bGVfZmllbGRfbmFtZSddID0gJ86Mzr3Ov868zrEgz4DOtc60zq/Ov8+FJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2FsaWFzJ10gPSAnzqjOtc+FzrTPjs69z4XOvM6/IM+AzrXOtM6vzr/PhSDOus6xzrkgz4zOvc6/zrzOsSBET00gaWQgKENTUyBpZCknOwokbGFuZ1sndGl0bGVfcmFkaW9ncm91cF9kZXRhaWxzJ10gPSAnzpvOtc+Az4TOv868zq3Pgc61zrnOtc+CIM6/zrzOrM60zrHPgiBSYWRpbyBCdXR0b24nOwokbGFuZ1sndGl0bGVfZmllbGRfdHlwZSddID0gJ86kz43PgM6/z4Igz4DOtc60zq/Ov8+FJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTMnXSA9ICfOs865zrEgzr3OsSDOtM63zrzOuc6/z4XPgc6zzq7Pg861z4TOtSDOrc69zrEgz4DOtc60zq/OvyDPh861zrnPgc65z4POvM6/z40gz4TOt8+CIM+Gz4zPgc68zrHPgi4nOwokbGFuZ1sndGl0bGVfYWRkX25ld19mb3JtJ10gPSAnzqDPgc6/z4POuM6uzrrOtyDOvc6tzrHPgiDPhs+Mz4HOvM6xz4InOwokbGFuZ1sndGl0bGVfc2hvd192ZXJzaW9uJ10gPSAnzpXOvM+GzrHOvc65z4POtyDPhM63z4IgzrXOus60zr/Pg863z4Igz4TOv8+FICBGb3JtIEJ1aWxkZXI/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbl9sb25nJ10gPSAnzpHPhc+Ez4wgzrjOsSDOtc68z4bOsc69zq/Pg861zrkgz4TOv869IM6xz4HOuc64zrzPjCDPhM63z4Igzq3Ous60zr/Pg863z4Igz4TOv8+FIEZvcm0gQnVpbGRlciAgzrzOrc+DzrEgz4POtSDOrc69zrEgz4PPh8+MzrvOuc6/LCDOs865zrEgzr3OsSDOss6/zrfOuM6uz4POtc65IM+Ezr/OvSDOtc69z4TOv8+AzrnPg868z4wgz4PPhs6xzrvOvM6sz4TPic69JzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZmllbGQnXSA9ICfOoM+Bzr/Pg864zq7Ous63IM69zq3Ov8+FIM+AzrXOtM6vzr/PhSc7CiRsYW5nWyd0aXRsZV9mb3JtX3N1Ym1pdF9idXR0b24nXSA9ICfOms61zq/OvM61zr3OvyDOus6/z4XOvM+AzrnOv8+NIM6xz4DOv8+Dz4TOv867zq7Pgic7CiRsYW5nWyd0aXRsZV9idXR0b25fdGV4dCddID0gJ86azrXOuc68zrXOvc+MIM66zr/Phc68z4DOuc6/z40nOwokbGFuZ1sndGl0bGVfc3VibWl0X2J1dHRvbl9zYWZldHknXSA9ICfOoM+Bz4zPg864zrXPg863IM66z47OtM65zrrOsSBKYXZhc2NyaXB0IM+Dz4TOvyDOus6/z4XOvM+Azq8gzrHPgM6/z4PPhM6/zrvOrs+CIM+Azr/PhSDOuM6xIM6yzr/Ot864zq7Pg861zrkgz4PPhM63zr0gz4DPgc+MzrvOt8+Izrcgz4DOv867zrvOsc+AzrvPjs69IM+Fz4DOv86yzr/Ou8+Ozr0/JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5X2hlbHAnXSA9ICfOoM+Bzr/Pg864zq7Ous63IM66z47OtM65zrrOsSBzY3JpcHQgzrHPg8+GzqzOu861zrnOsc+CJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmV4dF9idXR0b24nXSA9ICfOms61zq/OvM61zr3OvyDOs865zrEgz4TOvyDOus6/z4XOvM+Azq8gIs6Vz4DPjM68zrXOvc6/IiAgKM6nz4HOt8+DzrnOvM6/z4DOv865zrXOr8+EzrUgz4POtSDPhs+Mz4HOvM61z4IgzrzOtSDPgM6/zrvOu86tz4Igz4POtc67zq/OtM61z4IpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcHJldl9idXR0b24nXSA9ICfOms61zq/OvM61zr3OvyDOs865zrEgz4TOvyDOus6/z4XOvM+Azq8gIs6gz4HOv863zrPOv8+NzrzOtc69zr8iICjOp8+BzrfPg865zrzOv8+Azr/Ouc61zq/PhM61IM+DzrUgz4bPjM+BzrzOtc+CIM68zrUgz4DOv867zrvOrc+CIM+DzrXOu86vzrTOtc+CKSc7CiRsYW5nWyd0aXRsZV9maWVsZF92YWxpZGF0aW9uJ10gPSAnzpXPgM65zrrPjc+Bz4nPg863IM6gzrXOtM6vzr/PhSc7CiRsYW5nWyd0aXRsZV9maWVsZF90b192YWxpZGF0ZSddID0gJ86gzrXOtM6vzr8gzrPOuc6xIM61z4DOuc66z43Pgc+Jz4POtyc7CiRsYW5nWyd0aXRsZV9maWVsZF9jc3NfaWQnXSA9ICdDU1MgaWQgzrPOuc6xIM+Ezr8gz4DOtc60zq/Ovyc7CiRsYW5nWyd0aXRsZV9mb3JtX2Nzc19jbGFzcyddID0gJ0NTUyBDbGFzcyDOs865zrEgz4TOt869IM+Gz4zPgc68zrEnOwokbGFuZ1sndGl0bGVfZmllbGRfY3NzX2NsYXNzJ10gPSAnQ1NTIENsYXNzIM6zzrnOsSDPhM6/IM+AzrXOtM6vzr8nOwokbGFuZ1sndGl0bGVfZm9ybV9wcmVkaXNwbGF5X3VkdCddID0gJ86Vz4TOuc66zq3PhM6xIM+Hz4HOrs+Dz4TOtyDPgM6/z4UgzrrOsc67zrXOr8+EzrHOuSDPgM+BzrnOvSDPhM63zr0gzrXOvM+GzqzOvc65z4POtyDPhM63z4IgzqbPjM+BzrzOsc+CICjOms6xzrvOtc6vz4TOtSDOvM+Mzr3OvyDOvM65zrEgz4bOv8+BzqwpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcHJlZGlzcGxheV9lYWNoX3VkdCddID0gJ86Vz4TOuc66zq3PhM6xIM+Hz4HOrs+Dz4TOtyDPgM6/z4UgzrrOsc67zrXOr8+EzrHOuSDPgM+BzrnOvSDPhM63zr0gzrXOvM+GzqzOvc65z4POtyDPhM63z4IgzqbPjM+BzrzOsc+CICAozprOsc67zrXOr8+EzrUgz4POtSDOus6szrjOtSDPg861zrvOr860zrEgzrHOvSDOrc+HzrXOuSDPgM6/zrvOu86xz4DOu86tz4Igz4POtc67zq/OtM61z4Igzrcgz4bPjM+BzrzOsSknOwokbGFuZ1sndGl0bGVfZm9ybV92YWxpZGF0ZV91ZHQnXSA9ICfOlc+EzrnOus6tz4TOsSDPh8+Bzq7Pg8+Ezrcgz4DOv8+FIM66zrHOu861zq/PhM6xzrkgz4zPhM6xzr0gzrPOr869zrXPhM6xzrkgzrXPgM65zrrPjc+Bz4nPg863IM+EzrfPgiDPhs+Mz4HOvM6xz4InOwokbGFuZ1sndGl0bGVfZm9ybV9yZXF1aXJlZF9zeW1ib2wnXSA9ICfPg8+NzrzOss6/zrvOvyDPgM6/z4UgzrXPgM65z4POt868zqzOvc61zrkgz4TOsSDOsc+AzrHOuc+Ezr/Pjc68zrXOvc6xIM+AzrXOtM6vzrEgKM+Dz4XOvc6uzrjPic+CICopJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkJ10gPSAnzpHPgM6xzrnPhM61zq/PhM6xzrknOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWRfbG9uZyddID0gJ86Rz4DOsc65z4TOtc65z4TOsc65IM68zrnOsSDOsc+AzqzOvc+EzrfPg863IM6zzrkgXCfOsc+Fz4TPjCDPhM6/IM+AzrXOtM6vzr8nOwokbGFuZ1sndGl0bGVfaGlkZV9sYWJlbCddID0gJ86Rz4DPjM66z4HPhc+IzrcgzrXPhM65zrrOrc+EzrHPgic7CiRsYW5nWyd0aXRsZV9oaWRlX2xhYmVsX2xvbmcnXSA9ICfOms+Bz43Oss61zrkgz4TOvyDPjM69zr/OvM6xIM+Ezr/PhSDPgM61zrTOr86/z4Ugz4PPhM63zr0gz4bPjM+BzrzOsSc7CiRsYW5nWyd0aXRsZV90ZXh0J10gPSAnzqPPhM6xz4TOuc66z4wgzrrOtc6vzrzOtc69zr8gzrPOuc6xIM61zrzPhs6szr3Ouc+DzrcnOwokbGFuZ1sndGl0bGVfZmllbGRfcmVnZXgnXSA9ICfOms6xzr3PjM69zrXPgiBSZWdleCDOs865zrEgzrXPgM65zrrPjc+Bz4nPg863JzsKJGxhbmdbJ3RpdGxlX2xpbmVzX3RvX3Nob3cnXSA9ICfOkc+BzrnOuM68z4zPgiDOk8+BzrHOvM68z47OvSDOs865zrEgz4TOt869IM6xz4DOtc65zrrPjM69zrnPg863JzsKJGxhbmdbJ3RpdGxlX3JlYWRfb25seSddID0gJ86cz4zOvc6/IM6zzrnOsSDOsc69zqzOs869z4nPg863JzsKJGxhbmdbJ25vX2RlZmF1bHQnXSA9ICfOp8+Jz4HOr8+CIM+Az4HOv866zrHOuM6/z4HOuc+DzrzOrc69zr8nOwokbGFuZ1sncmVkaXJlY3RfYWZ0ZXJfYXBwcm92YWwnXSA9ICfOo861zrvOr860zrEgzrHOvc6xzrrOsc+EzrXPjc64z4XOvc+DzrfPgiDOvM61z4TOrCDPhM63zr0gzrHPgM6/zrTOv8+Hzq4nOwokbGFuZ1sndGl0bGVfcmVnZXhfaGVscCddID0gJ86Rz4XPhM6uIM63IM66zrHOvc6/zr3Ouc66zq4gzq3Ous+Gz4HOsc+DzrcgKHJlZ3VsYXIgZXhwcmVzc2lvbikgz4fPgc63z4POuc68zr/PgM6/zq/Ot8+EzrHOuSDOvM+Mzr3OvyDOsc69ICDPhM6/ICJ2YWxpZGF0aW9uIHR5cGUiICDOtc6vzr3Osc65IM+Bz4XOuM68zrnPg868zq3Ovc6/IM6zzrnOsSAgIHJlZ2V4LiDOoM61z4HOuc67zrHOvM6yzqzOvc61zrkgzq3Ovc6xIM6/zrvOv866zrvOt8+Bz4nOvM6tzr3OvyDPg861z4QgzrXOvc+Ezr/Ou8+Ozr0gz4zOvM6/zrnOvyDOvM61IM+EzrfPgiAgUGVyLCDOvM61IHN0YXJ0L3N0b3Agc2xhc2hlcyDOus6xzrkgZmxhZ3MgKM6gLs6nLiwgIi9pbWFnZVxcLihcXGQrKS9pIiknOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWRfYWJicmV2J10gPSAnUmVxXCdkICc7CiRsYW5nWyd0aXRsZV9oaWRlX2Vycm9ycyddID0gJ86Rz4DPjM66z4HPhc+Izrcgz4PPhs6xzrvOvM6sz4TPic69JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fZGlzcGxheXR5cGUnXSA9ICfOpM+Nz4DOv8+CIM6xz4DOtc65zrrPjM69zrnPg863z4IgzqbPjM+BzrzOsc+CJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzX2xvbmcnXSA9ICfOkc+Azr/PhM+Bzq3PiM+EzrHOuSDPhM6xIGRlYnVnIC8gzrzOt869z43OvM6xz4TOsSDOu86szrjOv8+Fz4IgzrHPgM+MIM+Ezr8gzr3OsSDOtM6/z4XOvSDOv865IM+Hz4HOrs+Dz4TOtc+CLiAnOwokbGFuZ1sndGl0bGVfZW1haWxfdGVtcGxhdGUnXSA9ICfOoM+Bz4zPhM+Fz4DOvyBFbWFpbCc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX3NpemUnXSA9ICfOnM6tzrPOuc+Dz4TOvyDOvM6tzrPOtc64zr/PgiDOsc+Bz4fOtc6vzr/PhSDOs865zrEgzrzOtc+EzrHPhs+Mz4HPhM+Jz4POtyAoa2lsb2J5dGVzKSc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX3NpemVfbG9uZyddID0gJ86fIM+AzrXPgc65zr/Pgc65z4POvM+Mz4IgzrHPhc+Ez4zPgiDOtc6vzr3Osc65IM61z4DOuc+AzrvOrc6/zr0gzrHPgM+MIM6/z4DOv865zrHOtM6uz4DOv8+EzrUgz4zPgc65zrEgzrrOsc64zr/Pgc6vzrbOv869z4TOsc65IM6xz4DPjCDPhM63zr0gcGhwICDOriDPhM63zr0gz4DOsc+BzrHOvM61z4TPgc6/z4DOv86vzrfPg863IM+Ezr/PhSDOtM65zrHOus6/zrzOuc+Dz4TOri4nOwokbGFuZ1sndGl0bGVfcGVybWl0dGVkX2V4dGVuc2lvbnMnXSA9ICfOlc+AzrnPhM+BzrXPgM+MzrzOtc69zrXPgiDOlc+AzrXOus+EzqzPg861zrnPgic7CiRsYW5nWyd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9uc19sb25nJ10gPSAnzpvOr8+Dz4TOsSDOtM65zrHPh8+Jz4HOuc+DzrzOrc69zrcgzrzOtSDOus+OzrzOsSAsIM+Hz4nPgc6vz4Igz4TOt869IM+EzrXOu861zq/OsS4gKM6gLs6nLiwgImpwZyxnaWYsanBlZyIpLiDOpM6xIM66zrXOvc6sIM6xzrPOvc6/zr/Pjc69z4TOsc65LCDOsc69IM60zrXOvSDPg8+FzrzPgM67zrfPgc+JzrjOtc6vIM+Ez4zPhM61IM60zrXOvSDPhc+AzqzPgc+Hzr/Phc69IM+AzrXPgc65zr/Pgc65z4POvM6/zq8gz4PPhM65z4IgzrXPgM61zrrPhM6sz4POtc65z4Igz4TPic69IM6xz4HPh861zq/Pic69Lic7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zJ10gPSAnzqDOtc+BzrnOv8+BzrnPg868zr/OryDOtc68z4bOrM69zrnPg863z4I/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnNfbG9uZyddID0gJ86VzrzPhs6szr3Ouc+Dzrcgz4TPic69IM+AzrXPgc65zr/Pgc65z4POvM+Ozr0gzrzOtc6zzq3OuM6/z4XPgiDOus6xzrkgzrXPgM61zrrPhM6sz4POtc+Jzr0gzrPOuc6xIM+Ezr8gz4DOtc60zq/OvyDOvM61z4TOsc+Gz4zPgc+Ez4nPg863z4I/JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdGVtcGxhdGUnXSA9ICfOoM+Bz4zPhM+Fz4DOvyDOs865zrEgz4TOt869IM61zrzPhs6szr3Ouc+Dzrcgz4TOt8+CIM+Gz4zPgc68zrHPgic7CiRsYW5nWyd0aXRsZV9wYWdlX3hfb2ZfeSddID0gJ86jzrXOu86vzrTOsSAlcyDOsc+Az4wgJXMnOwokbGFuZ1sndGl0bGVfbm9fYWR2YW5jZWRfb3B0aW9ucyddID0gJ86kzr8gz4DOtc60zq/OvyDOtM61zr0gzq3Ph861zrkgRmllbGQgz4DPgc6/zrfOs868zq3Ovc61z4IgzrXPgM65zrvOv86zzq3Pgic7CiRsYW5nWyd0aXRsZV9mb3JtX3Vuc3BlY2lmaWVkJ10gPSAnzprOtc6vzrzOtc69zr8gz4DOv8+FIM61z4DOuc+Dz4TPgc6tz4bOtc+EzrUgzrPOuc6xIM6xz4DPgc6/z4POtM65z4zPgc65z4PPhM63IM+EzrnOvM6uIM+AzrXOtM6vzr/PhSc7CiRsYW5nWyd0aXRsZV9lbmFibGVfZmFzdGFkZF9sb25nJ10gPSAnzpXOvc61z4HOs86/z4DOv86vzrfPg863IM6zz4HOrs6zzr/Pgc63z4Igz4DPgc6/z4POuM6uzrrOt8+CIM+AzrXOtM6vz4nOvSDOvM61IM+Hz4HOrs+DzrcgzrHOvc6xz4DPhM+Fz4PPg8+MzrzOtc69zr/PhSDOvM61zr3Ov8+NIChwdWxsZG93bikgzrPOuc6xIM+EzrnPgiDPhs+Mz4HOvM61z4I/JzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9mYXN0YWRkJ10gPSAnzpXOvc61z4HOs86/z4DOv86vzrfPg863IM6xzr3Osc+Az4TPhc+Dz4PPjM68zrXOvc6/z4UgzrzOtc69zr/PjSAocHVsbGRvd24pIM6zz4HOrs6zzr/Pgc63z4Igz4DPgc6/z4POuM6uzrrOt8+CIM+AzrXOtM6vz4nOvT8nOwokbGFuZ1sndGl0bGVfZmFzdGFkZCddID0gJ86Tz4HOrs6zzr/Pgc63IM+Az4HOv8+DzrjOrs66zrcgz4DOtc60zq/Pic69JzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9hbnRpc3BhbV9sb25nJ10gPSAnzprOrM69zr/Ovc+EzrHPgiDOus67zrnOuiDPg861IM6xz4XPhM+MIM64zrEgzrzPgM6/z4HOv8+Nzr0gzr3OsSDPg8+EzrHOu86/z43OvSDOvM+Mzr3OvyDOrc+Jz4IgMTAgzrzOt869z43OvM6xz4TOsSDOt867zrXOus+Ez4HOv869zrnOus6/z40gz4TOsc+Hz4XOtM+Bzr/OvM61zq/Ov8+FIM6xz4DPjCDOvM65zrEgz4PPhc6zzrrOtc66z4HOuc68zq3Ovc63IM60zrnOtc+NzrjPhc69z4POtyBJUCAozrHOvc6sIM+Oz4HOsSkuICc7CiRsYW5nWyd0aXRsZV9lbmFibGVfYW50aXNwYW0nXSA9ICfOlc69zrXPgc6zzr/PgM6/zq/Ot8+DzrcgzrHPgM67zqwgz4fOsc+BzrHOus+EzrfPgc65z4PPhM65zrrOrCBhbnRpLXNwYW07JzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRpZHMnXSA9ICfOlc68z4bOrM69zrnPg863IElEcyDPgM61zrTOr8+Jzr0nOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGlkc19sb25nJ10gPSAnzprOrM69zr/Ovc+EzrHPgiDOus67zrnOuiDPg861IM6xz4XPhM+MIM64zrEgzrXPgM65z4TPgc6tz4jOtc65IM+EzrfOvSDOtc68z4bOrM69zrnPg863IM+Ez4nOvSBpZHMgIM+Ez4nOvSDPgM61zrTOr8+Jzr0gzrrOsc+Ezqwgz4TOt869IM+Az4HOv8+DzrjOrs66zrcgzq4gz4TOt869IM61z4DOtc6+zrXPgc6zzrHPg86vzrEgzrzOuc6xz4Igz4bPjM+BzrzOsc+CICc7CiRsYW5nWyd0aXRsZV94bWxfdG9fdXBsb2FkJ10gPSAnzpzOtc+EzrHPhs+Mz4HPhM+Jz4POtyDPhs+Mz4HOvM6xz4IgzrHPgM+MIM6xz4HPh861zq/OvyBYTUwnOwokbGFuZ1sndGl0bGVfeG1sX3VwbG9hZF9mb3JtbmFtZSddID0gJ86nz4HOrs+DzrcgzrHPhc+Ezr/PjSDPhM6/z4Ugzr/Ovc+MzrzOsc+Ezr/PgiDPhs+Mz4HOvM6xz4InOwokbGFuZ1sndGl0bGVfaW1wb3J0X2xlZ2VuZCddID0gJ86VzrnPg86xzrPPic6zzrcgz4bOv8+BzrzOrM+CIFhNTCc7CiRsYW5nWyd0aXRsZV94bWxfdXBsb2FkX2Zvcm1hbGlhcyddID0gJ86nz4HOrs+DzrcgzrHPhc+Ezr/PjSDPhM6/z4Ugz4jOtc+FzrTPjs69z4XOvM6/z4Ugz4bPjM+BzrzOsc+CJzsKJGxhbmdbJ3RpdGxlX2h0bWxfZW1haWwnXSA9ICfOlM63zrzOuc6/z4XPgc6zzq/OsSBIVE1MIGVtYWlsPyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZSddID0gJ86Rz4XPhM+MzrzOsc+Ezr8gVVJMPyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZV9oZWxwJ10gPSAnzp3OsSDPg8+FzrzPgM67zrfPgc+JzrjOtc6vIM6xz4XPhM+MzrzOsc+EzrEgz4TOvyAgVVJMIM6xz4DPjCDPhM63zr0gz4POtc67zq/OtM6xIM+Azr/PhSDOss+Bzq/Pg866zrXPhM6xzrkgzrcgz4bPjM+BzrzOsT8gKM6xz4XPhM+MIM+Fz4DOtc+BzrnPg8+Hz43Otc65IM+EzrfPgiDOtc+AzrnOu86/zrPOrs+CIM+Dz4XOvc60zq3Pg868zr/PhSDPgM6xz4HOsc66zqzPhM+JKSc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2xpbmsnXSA9ICdVUkwgzqDPgc6/zrrOsc64zr/Pgc65z4POvM6tzr3Ov8+FIM+Dz4XOvc60zq3Pg868zr/PhSc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2xpbmtfdGl0bGUnXSA9ICfOms61zq/OvM61zr3OvyDOoM+Bzr/Ous6xzrjOv8+BzrnPg868zq3Ovc6/z4Ugz4PPhc69zrTOrc+DzrzOv8+FJzsKJGxhbmdbJ3RpdGxlX2xpbmtfdG9fc2l0ZXBhZ2UnXSA9ICfOo8+Nzr3OtM61z4POvM6/z4Igz4POtSDPg861zrvOr860zrEgz4TOv8+FIM6Zz4PPhM+Mz4TOv8+Azr/PhSc7CiRsYW5nWyd0aXRsZV9jYXB0Y2hhX25vdF9pbnN0YWxsZWQnXSA9ICfOnM+Azr/Pgc61zq/PhM61IM69zrEgz4fPgc63z4POuc68zr/PgM6/zrnOrs+DzrXPhM61IM6fz4DPhM6/zq3Ou861zrPPh86/IDxhIGhyZWY9Imh0dHA6Ly93d3cud2lraXBlZGlhLm9yZy93aWtpL0NhcHRjaGEiIHRhcmdldD0iX25ldyI+IkNhcHRjaGEiPC9hPiDOs865zrEgz4TOt869IM+Az4HOv8+Dz4TOsc+Dzq/OsSDPhM63z4Igz4bPjM+BzrzOsc+CIM6xzr0gzq3Ph861z4TOtSDOtc6zzrrOsc+EzrHPg8+EzrfOvM6tzr3OvyDPhM6/IENhcHRjaGEgbW9kdWxlLiDOs865zrEgz4DOtc+BzrnPg8+Dz4zPhM61z4HOtc+CIM+AzrvOt8+Bzr/Phs6/z4HOr861z4IgLCA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2NhcHRjaGEvIj7OtM61zq/PhM61IM+Ezr8gQ2FwdGNoYSBwcm9qZWN0PC9hPi4nOwokbGFuZ1sndGl0bGVfdXNlX2NhcHRjaGEnXSA9ICfOp8+Bzq7Pg863IM6fz4DPhM6/zrXOu86tzrPPh86/z4UgzrPOuc6xIM+EzrfOvSDPgM+Bzr/Pg8+EzrHPg86vzrEgzrHPgM+MIM66zrHOus+MzrLOv8+FzrvOtc+CIM6xz4DOv8+Dz4TOv867zq3Pgj8nOwokbGFuZ1sndGl0bGVfdXNlX2NhcHRjaGFfaGVscCddID0gJ86Vz4DOuc67zrXOvs+EzrUgzrPOuc6xIM+Az4HOv8+Dz4TOsc+Dzq/OsSDPhM63z4Igz4bOrM+BzrzOsc+CIM68zrUgz4TOt869IM68zq3OuM6/zrTOvyDPhM6/z4Ugzp/PgM+Ezr/Otc67zq3Os8+Hzr/PhSAgPGEgaHJlZj0iaHR0cDovL3d3dy53aWtpcGVkaWEub3JnL3dpa2kvQ2FwdGNoYSIgdGFyZ2V0PSJfbmV3Ij4iQ2FwdGNoYSI8L2E+Lic7CiRsYW5nWyd0aXRsZV91c2VyX2NhcHRjaGEnXSA9ICfOoM6xz4HOsc66zrHOu8+OIM+AzrvOt866z4TPgc6/zrvOv86zzq7Pg8+EzrUgz4TOvyDOus61zq/OvM61zr3OvyDPgM6/z4Ugz4bOsc6vzr3Otc+EzrHOuSDPg8+EzrfOvSDOtc65zrrPjM69zrEuJzsKJGxhbmdbJ3RpdGxlX3VzZXJfY2FwdGNoYV9lcnJvciddID0gJ86bzrHOvc64zrHPg868zq3Ovc6/IM66zrXOr868zrXOvc6/IM6fz4DPhM6/zrXOu86tzrPPh86/z4UnOwokbGFuZ1snd3JvbmdfY2FwdGNoYSddID0gJ86fIM6fz4DPhM6/zq3Ou861zrPPh86/z4IgzrTOtc69IM61zrnOvc6xzrkgz4PPic+Dz4TPjM+CLic7CiRsYW5nWyd0aXRsZV90aXRsZV91c2VyX2NhcHRjaGEnXSA9ICfOms61zq/OvM61zr3OvyDOss6/zrfOuM61zq/Osc+CIM6zzrnOsSDPhM6/zr0gzp/PgM+Ezr/Orc67zrXOs8+Hzr8nOwokbGFuZ1sndGl0bGVfZG9udF9zdWJtaXRfdW5jaGVja2VkJ10gPSAnzp3OsSDOvM63zr0gz4XPgM6/zrLOu863zrjOv8+Nzr0gzr/OuSDPhM65zrzOrc+CIM6xz4DPjCDPhM6xIM6xz4DOtc+AzrnOu861zrPOvM6tzr3OsSDOus6/z4XPhM65zqwgKGNoZWNrYm94KSc7CiRsYW5nWyd0aXRsZV9kb250X3N1Ym1pdF91bmNoZWNrZWRfaGVscCddID0gJ86kz4POrc66zrHPgc61IM+Ezr8gzrHOvSDOuM6tzrvOtc+EzrUgzrzPjM69zr8gz4TOsSDOtc+AzrnOu861zrPOvM6tzr3OsSDOus6/z4XPhM65zqwoY2hlY2tib3gpIM69zrEgzrXPgM65z4PPhM+Bzq3PiM6/z4XOvSDPhM65zrzOrc+CLic7CiRsYW5nWydsaW5rX2xhYmVsJ10gPSAnzpXPhM65zrrOrc+EzrEgTGluayc7CiRsYW5nWydsaW5rX2Rlc3RpbmF0aW9uJ10gPSAnIFVSTCDPg8+Fzr3OtM6tz4POvM6/z4Ugz4DPgc6/zr/Pgc65z4POvM6/z40nOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9zZXQnXSA9ICfOlc+AzrnOu861zrPOvM6tzr3OvyDOsc+Azr8gz4DPgc6/zrXPgM65zrvOv86zzq4/JzsKJGxhbmdbJ3RpdGxlXzI0X2hvdXInXSA9ICfOp8+Bzq7Pg863IDI0z4nPgc6/z4Ugz4HOv867zr/Os865zr/PjT8nOwokbGFuZ1sndGl0bGVfYmVmb3JlX25vb24nXSA9ICfOoM6cJzsKJGxhbmdbJ3RpdGxlX2FmdGVyX25vb24nXSA9ICfOnM6cJzsKJGxhbmdbJ3RpdGxlX3NtYXJ0eV9ldmFsJ10gPSAnzqfPgc6uz4POtyBzbWFydHkgdGFncyDOs865zrEgz4TOvyDPgM61zrTOr86/Pyc7CiRsYW5nWyd0aXRsZV90ZXh0YXJlYV9yb3dzJ10gPSAnzqPOtc65z4HOrc+CICjPg863zrzOtc6vz4nPg863OiDOsc+Fz4TPjCDOvM+Azr/Pgc61zq8gzr3OsSDPgM6xz4HOsc66zrHOvM+GzrjOtc6vIM6xz4DPjCBDU1MpJzsKJGxhbmdbJ3RpdGxlX3RleHRhcmVhX2NvbHMnXSA9ICfOo8+Ezq7Ou861z4IgKM+DzrfOvM61zq/Pic+Dzrc6IM6xz4XPhM+MIM68z4DOv8+BzrXOryDOvc6xIM+AzrHPgc6xzrrOsc68z4bOuM61zq8gzrHPgM+MIENTUyknOwokbGFuZ1sndGl0bGVfZm9ybV9tYWluJ10gPSAnzpvOtc+Az4TOv868zq3Pgc61zrnOtc+CIM66z43Pgc65zrHPgiDPhs+Mz4HOvM6xz4InOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9ibGFuayddID0gJ86gz4HOv861z4DOuc67zr/Os86uIM+DzrUgzrrOtc69z4wnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9ibGFua19oZWxwJ10gPSAnzqDPgc6/zrrOsc64zr/Pgc65z4POvM6tzr3OvyDPg861IM66zrXOvc+MICjOkc+Azr/Otc+AzrnOu86tzr7PhM61IM6zzrnOsSDPhM63zr0gz4POt868zrXPgc65zr3OriDOt868zrXPgc6/zrzOt869zq/OsSDPic+CIM+Az4HOv866zrHOuM6/z4HOuc+DzrzOrc69zr8pJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcm5hbWUnXSA9ICfOlc68z4bOrM69zrnPg863IM+Ezr/PhSDPiM61z4XOtM+Ozr3Phc68zr/PhSDPhM6/z4Ugz4fPgc6uz4PPhM63Pyc7CiRsYW5nWyd0aXRsZV9zaG93X3VzZXJmaXJzdG5hbWUnXSA9ICfOlc68z4bOrM69zrnPg863IM+Ezr/PhSDOv869z4zOvM6xz4TOv8+CIM+Ezr/PhSDPh8+Bzq7Pg8+Ezrc/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcmxhc3RuYW1lJ10gPSAnzpXOvM+GzqzOvc65z4POtyDPhM6/z4UgzrXPgM65zrjOrc+Ezr/PhSDPhM6/z4Ugz4fPgc6uz4PPhM63Pyc7CiRsYW5nWyd0aXRsZV9yZXN0cmljdF90b19ncm91cCddID0gJ86gzrXPgc65zr/Pgc6vz4POtc65IM+Ezr/OvSDOus6xz4TOrM67zr/Os86/IM+Ez4nOvSDPh8+BzrfPg8+Ez47OvSDPg8+Ezr/Phc+CIM+Hz4HOrs+Dz4TOtc+CIM+Dz4XOs866zrXOus+BzrnOvM6tzr3Ot8+CIM6/zrzOrM60zrHPgic7CiRsYW5nWyd0aXRsZV9lbmNyeXB0X2RhdGFiYXNlX2RhdGEnXSA9ICfOms+Bz4XPgM+Ezr/Os8+BzqzPhs63z4POtyDOtM61zrTOv868zq3Ovc+Jzr0gz4DOv8+FIM6xz4DOv864zrfOus61z43Ov869z4TOsc65IM+Dz4TOtyDOss6sz4POtyDOtM61zrTOv868zq3Ovc+Jzr0nOwokbGFuZ1sndGl0bGVfY3J5cHRfY2VydCddID0gJ86gzrnPg8+Ezr/PgM6/zrnOt8+EzrnOus+MIChDZXJ0aWZpY2F0ZSkgzrPOuc6xIM+EzrfOvSDOus+Bz4XPgM+Ezr/Os8+BzqzPhs63z4POtyDPhM+Jzr0gzrTOtc60zr/OvM6tzr3Pic69JzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRpb25fa2V5ZmlsZSddID0gJ86jz4XOvc64zrfOvM6xz4TOuc66zq4gz4bPgc6sz4POtyDOriDPhM63zr0gzrTOuc6xzrTPgc6/zrzOriDPgM+Bzr/PgiDPhM6/IM6xz4HPh861zq/OvyDPgM6/z4Ugz4DOtc+BzrnOrc+HzrXOuSDPg8+Fzr3OuM63zrzOsc+EzrnOus6uIM+Gz4HOrM+DzrcuICjOkc69IM+Hz4HOt8+DzrnOvM6/z4DOv865zrXOr8+EzrUgT3BlblNTTCwgzrHPhc+Ezq4gzrXOr869zrHOuSDOtyDPg8+Fzr3OuM63zrzOsc+EzrnOus6uIM+Gz4HOrM+DzrcgzrPOuc6xIM+Ezr8gzrnOtM65z4nPhM65zrrPjCDOus67zrXOuc60zq8pJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRfc29ydGZpZWxkcyddID0gJ86kzrHOvs65zr3PjM68zrfPg863IM6zzrnOsSDPgM61zrTOr86xIM68zrUgzrrPgc+Fz4DPhM6/zrPPgc6sz4bOt8+DzrcgSGFzaD8nOwokbGFuZ1sndGl0bGVfcHJpdmF0ZV9rZXknXSA9ICfOmc60zrnPic+EzrnOus+MIM66zrvOtc65zrTOryDOs865zrEgzr3OsSDPhM6/IM+Hz4HOt8+DzrnOvM6/z4DOv865zq7Pg861z4TOtSDPg8+EzrfOvSDOus+Bz4XPgM+Ezr/Os8+BzqzPhs63z4POtyDOtM61zrTOv868zq3Ovc+Jzr0nOwokbGFuZ1sndGl0bGVfZW5jcnlwdF9zb3J0ZmllbGRzX2hlbHAnXSA9ICfOkc+Fz4TPjCDOus+BzrnPgM+Ezr/Os8+BzrHPhs61zrkgz4TOsSDPgM61zrTOr86xIM+EzrHOvs65zr3PjM68zrfPg863z4IsIM6xzrvOu86sIM6xz4bOrs69zrXOuSDPhM6xIM+Az4HPjs+EzrEgzrPPgc6szrzOvM6xz4TOsSDPh8+Jz4HOr8+CIM66z4HPhc+Az4TOv86zz4HOrM+GzrfPg863LiDOms+Bz4XPgM+Ezr/Os8+BzrHPhs65zrrOrCwgzrHPhc+Ez4wgzrTOt868zrnOv8+Fz4HOs861zq8gzrzOuc6xIM61z4XPgM6szrjOtc65zrEsIM6xzrvOu86sIM6zzrnOsSDPhM6/z4XPgiDPgM61z4HOuc+Dz4PPjM+EzrXPgc6/z4XPgiDPh8+Bzq7Pg8+EzrXPgiwgzrXOr869zrHOuSDOsc+Azr/OtM61zrrPhM+MLg0KzpXOr869zrHOuSDPg8+FzrzOss65zrLOsc+DzrzPjM+CIM68zrXPhM6xzr7PjSDPhM63z4IgzrHPg8+GzqzOu861zrnOsc+CIM66zrHOuSDPhM63IM60z4XOvc6xz4TPjM+EzrfPhM6xIM69zrEgz4TOsc6+zrnOvc6/zrzOrs+DzrXPhM61IM+EzrnPgiDOtc6zzrPPgc6xz4bOrc+CLiAgzpcgz4TOsc6+zrnOvc+MzrzOt8+DzrcgzrPOr869zrXPhM6xzrkgzrrOsc+Ezqwgz4DPgc6/z4POrc6zzrPOuc+DzrcsIM6xzrvOu86sIM6xz4HOus61z4TOrCDOus6xzrvOrC4gzpXOrM69IM60zrXOvSDPh8+BzrfPg865zrzOv8+Azr/Ouc6uz4POtc+EzrUgzrHPhc+Ezq7OvSDPhM63zr0gzrXPgM65zrvOv86zzq4sIM+EzrEgz4DOtc60zq/OsSDOsc+Azr/OuM63zrrOtc+Nzr/Ovc+EzrHOuSDPg861IM66zrHOuM6xz4HPjCDOus61zq/OvM61zr3Ovy4nOwokbGFuZ1sndGl0bGVfZW5jcnlwdGlvbl9mdW5jdGlvbnMnXSA9ICfOlyDOus+Bz4XPgM+Ezr/Os8+BzqzPhs63z4POtyDPhM63z4IgzrHPgM6/zrjOrs66zrXPhc+DzrfPgiDOtM61zr0gzrXOr869zrHOuSDOtM65zrHOuM6tz4POuc68zrcnOwokbGFuZ1sndGl0bGVfaW5zdGFsbF9jcnlwdG8nXSA9ICfOoM6xz4HOsc66zrHOu861zq/Pg864zrUgzr3OsSDOtc6zzrrOsc+EzrHPg8+Ezq7Pg861z4TOtSDPhM6/IE9wZW5TU0wgbW9kdWxlIM6uIM+EzrfOvSAgz4XPgM6/z4PPhM6uz4HOuc6+zrcgbWNyeXB0ICDOtc6szr0gIM61z4DOuc64z4XOvM61zq/PhM61IM+EzrfOvSDOus+Bz4XPgM+Ezr/Os8+BzqzPhs63z4POtyDOtM61zrTOv868zq3Ovc+Jzr0uJzsKJGxhbmdbJ3RpdGxlX2luc3RhbGxfY3VybCddID0gJ86gzrHPgc6xzrrOsc67z44gIM6yzrXOss6xzrnPic64zrXOr8+EzrUgz4zPhM65IM6tz4fOtc+EzrUgz4TOt869IM+Fz4DOv8+Dz4TOrs+BzrnOvs63IENVUkwgzrXOvc61z4HOs86/z4DOv865zrfOvM6tzr3OtyDPg8+EzrfOvSBQSFAuIM6UzrXOr8+EzrUgaHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9ib29rLmN1cmwucGhwJzsKJGxhbmdbJ3RpdGxlX21sZV92ZXJzaW9uJ10gPSAnzqfPgc6uz4POtyDPg8+EzrfOvSDOrc66zrTOv8+DzrcgTUxFJzsKJGxhbmdbJ3RpdGxlX21sZV92ZXJzaW9uX2xvbmcnXSA9ICfOkc67zrvOsc6zzrcgzrPOuc6xIM+EzrfOvSDPhc+Azr/Pg8+EzrfPgc63zr7OtyDPhM6/z4UgQ01TTVMgTXVsdGktTGFuZ3VhZ2UgRWRpdGlvbiAuICDOnM63zr0gz4TOvyDOtc+AzrnOu86tzr7Otc+EzrUgzrHOvSDOtM61zr0gzq3Ph861z4TOtSDPhM63zr0gzq3Ous60zr/Pg863IE1MRSEuJzsKJGxhbmdbJ3RpdGxlX2Vuc3VyZV9jZXJ0X2tleV9tYXRjaCddID0gJ86SzrXOss6xzrnPic64zrXOr8+EzrUgz4zPhM65IM6tz4fOtc+EzrUgzrXPgM65zrvOrc6+zrXOuSDPhM6/IM65zrTOuc+Jz4TOuc66z4wgzrrOu861zrnOtM6vIM+Azr/PhSDOtc6vzr3Osc65IM66zrHPhM6szrvOu863zrvOvyDOs865zrEgz4TOvyDPgM65z4PPhM6/z4DOv865zrfPhM65zrrPjCDPgM6/z4Ugz4fPgc63z4POuc68zr/PgM6/zrnOtc6vz4TOtSDOs865zrEgz4TOt869IM66z4HPhc+Az4TOv86zz4HOrM+GzrfPg863JzsKJGxhbmdbJ2Nob29zZV9jcnlwdCddID0gJ86SzrnOss67zrnOv864zq7Ous63IM6az4HPhc+Az4TOv86zz4HOrM+GzrfPg863z4InOwokbGFuZ1sndGl0bGVfZW5jcnlwdF9kYXRhYmFzZV9sb25nJ10gPSAnzpXOu86tzrPOvs+EzrUgzrHPhc+Ez4wgzrPOuc6xIM69zrEgzrrPgc+Fz4DPhM6/zrPPgc6xz4bOt864zr/Pjc69IM+EzrEgzrHPgM6/zrjOt866zrXPhc68zq3Ovc6xIM60zrXOtM6/zrzOrc69zrEuIM6Rz4XPhM+MIM66zrHOuM65z4PPhM6sIM6xzrrPjM68zrcgz4DOuc6/IM60z43Pg866zr/Ou86/ICjOsc67zrvOrCDPjM+HzrkgzrHOtM+Nzr3Osc+Ezr8pIM6zzrnOsSDPhM6/z4XPgiDPh86szrrOtc+BICDOvc6xIM60zr/Phc69IM+EzrnPgiDPgM67zrfPgc6/z4bOv8+Bzq/Otc+CLic7CiRsYW5nWydjaG9vc2VfY3J5cHRfbG9uZyddID0gJ86fzrkgz4DOsc+BzrHOus6sz4TPiSDOtc+AzrnOu86/zrPOrc+CIM65z4PPh8+Nzr/Phc69IM68z4zOvc6/IM6xzr0gz4fPgc63z4POuc68zr/PgM6/zrnOtc6vz4TOtSDPhM63zr0gzrLOuc6yzrvOuc6/zrjOrs66zrcgzrrPgc+Fz4DPhM6/zrPPgc6sz4bOt8+DzrfPgiBPcGVuU1NMJzsKJGxhbmdbJ3RpdGxlX2NyeXB0X2xpYiddID0gJ86SzrnOss67zrnOv864zq7Ous63IM6az4HPhc+Az4TOv86zz4HOrM+GzrfPg863z4InOwokbGFuZ1snb3BlbnNzbCddID0gJ86SzrnOss67zrnOv864zq7Ous63IE9wZW5TU0wnOwokbGFuZ1snbWNyeXB0J10gPSAnzpLOuc6yzrvOuc6/zrjOrs66zrcgUEhQIG1jcnlwdCc7CiRsYW5nWyd0aXRsZV9mZXVfYmluZGluZyddID0gJ86jz43Ovc60zrXPg863IM68zrUgz4fPgc6uz4PPhM63IEZyb250ZW5kJzsKJGxhbmdbJ3RpdGxlX2luc3RhbGxfZmV1J10gPSAnzpXOs866zrHPhM6xz4PPhM6uz4PPhM61IM+Ezr8gRnJvbnRlbmQgbW9kdWxlIM6zzrnOsSDOvc6xIM+Dz4XOvc60zq3Pg861z4TOtSDOvM65zrEgz4bPjM+BzrzOsSDOus6xzrkgz4TOsSDOtM61zrTOv868zq3Ovc6xIM+EzrfPgiDPg861IM6tzr3OsSDPg8+FzrPOus61zrrPgc65zrzOrc69zr8gz4fPgc6uz4PPhM63JzsKJGxhbmdbJ3RpdGxlX2ZldV9iaW5kX2hlbHAnXSA9ICfOlc+AzrnOu86tzr7PhM61IM6xz4XPhM+MICDOs865zrEgz4TOt869IM+Dz43Ovc60zrXPg863IM60zrXOtM6/zrzOrc69z4nOvSDOvM+Mzr3OvyDOvM61IM+Ezr/Phc+CIM+Dz4XOvc60zrXOtM61zrzOrc69zr/Phc+CIGZyb250LWVuZCDPh8+Bzq7Pg8+EzrXPgi4nOwokbGFuZ1sndGl0bGVfZW5jcnlwdGlvbiddID0gJ86az4HPhc+Az4TOv86zz4HOrM+GzrfPg863JzsKJGxhbmdbJ3RpdGxlX2V4cG9ydF9mb3JtX3RvX3VkdCddID0gJ86Vzr7Osc6zz4nOs86uIM+Gz4zPgc68zrHPgiDOvM61IM6xzr3Osc+Gzr/Pgc6sIM+DzrUgVURUIM+Jz4IgJHBhcmFtc1tcJ0ZPUk1cJ10/KM6czrfOvSDPhM6/IM66zqzOvc61z4TOtSDOsc+Fz4TPjCwgzrHOvSDPgM+Bz4zOus61zrnPhM6xzrkgzr3OsSDPh8+BzrfPg865zrzOv8+Azr/Ouc6uz4POtc+EzrUgz4TOt869IHByaW50X3IoJHBhcmFtcykpJzsKJGxhbmdbJ3RpdGxlX3VybF9oZWxwJ10gPSAnzp/Ou8+MzrrOu863z4HOvyDPhM6/IFVSTCwgzr3OsSDPgM61z4HOuc67zrHOvM6yzqzOvc61zrkgz4TOvyDPgM+Bz4nPhM+MzrrOv867zrvOvyDOus6xzrkgz4TOt869IM60zrnOsc60z4HOv868zq4gKM6gLs6nLiwgaHR0cDovL215aG9zdC5jb20vZm9ybV9oYW5kbGVyLmNnaSknOwokbGFuZ1sndGl0bGVfdXJsJ10gPSAnVVJMIM+Fz4DOv86yzr/Ou86uz4Igz4bPjM+BzrzOsc+CJzsKJGxhbmdbJ3RpdGxlX21ldGhvZCddID0gJ86czq3OuM6/zrTOv8+CIM+Gz4zPgc68zrHPgic7CiRsYW5nWyd0aXRsZV9tYXBzX3RvJ10gPSAnzqPPhc+Dz4fOtc+EzrnPg868z4zPgiDPhM6/z4Ugz4DOtc60zq/Ov8+FICAiJXMiIM+DzrUgzrzOtc+EzrHOss67zrfPhM6uIM6xz4DOv8+Dz4TOv867zq7PgiDPhM63z4Igz4bPjM+BzrzOsc+CJzsKJGxhbmdbJ3RpdGxlX2FkZGl0aW9uYWwnXSA9ICfOo8+FzrzPgM67zrfPgc+JzrzOsc+EzrnOus6sIM+Dz4fPjM67zrnOsSc7CiRsYW5nWyd0aXRsZV9hZGRpdGlvbmFsX2hlbHAnXSA9ICfOn8+EzrnOtM6uz4DOv8+EzrUgz4DOv8+FIM64zrEgz4DPgc6/z4POsc+Bz4TOrM+EzrHOuSDPg8+EzrfOvSDPhc+Azr/Oss6/zrvOriwgz4POtSBVUkwtzrrPic60zrnOus6/z4DOv865zrfOvM6tzr3OtyDOvM6/z4HPhs6uICguIM6gLs6nLiwgInVzZXIgPVN0ZXZlK0pvYnMmZW1wbG95ZWVfbnVtYmVyPTEpJzsKJGxhbmdbJ3RpdGxlX2luY2x1ZGVfaW5fc3VibWlzc2lvbiddID0gJ86jz4XOvM+AzrXPgc65zrvOrM6yzrXPhM61IM+AzrXOtM6vzr8gz4PPhM63zr0gzqXPgM6/zrLOv867zq4nOwokbGFuZ1sndGl0bGVfZGF0YV9zdG9yZWRfaW5fZmJyJ10gPSAnzqTOsSDOtM61zrTOv868zq3Ovc6xIM64zrEgzrHPgM6/zrjOt866zrXPjc6/zr3PhM6xzrkgz4POtSDOvM6/z4HPhs6uIFhNTCDPg8+Ezr8gW1BSRUZJWCBfbW9kdWxlX2ZiX2Zyb21icm93c2VyXSDPgM6vzr3Osc66zrEgz4TOt8+CIM6yzqzPg863z4IgzrTOtc60zr/OvM6tzr3Pic69Lic7CiRsYW5nWydlcnJvcl9oYXNfbm9fZmJfZmllbGQnXSA9ICfOo8+GzqzOu868zrEhIM6Vzq/PhM61IM+Ezr8gzq3Ovc+Ez4XPgM6/IM60zrXOvSDOrc+HzrXOuSDOus6xzrzOr86xIM+Dz4fOrc+DzrcgzrzOtSBmb3JtX2J1aWxkZXIsIM6uIM60zrXOvSDOvM+Az4zPgc61z4POtSDOvc6xIM6xz4HPh865zrrOv8+Azr/Ouc63zrjOtc6vICjOu8+MzrPPiSAgz4DPgc6/zrLOu863zrzOrM+Ez4nOvSDOvM69zq7OvM63z4I/KSc7CiRsYW5nWydyZXN0cmljdGVkX3RvX2dyb3VwJ10gPSAnzpzPjM69zr8gz4PPhM63zr0gzr/OvM6szrTOsSAlcyc7CiRsYW5nWyd0aXRsZV9zaG93X3RvX3VzZXInXSA9ICfOlc68z4bOrM69zrnPg863IM+Dz4TOv869IM+Hz4HOrs+Dz4TOtz8nOwokbGFuZ1snaGVscF9sZWF2ZWVtcHR5J10gPSAnzqTOvyDPgM61zrTOr86/IM+Az4HOrc+AzrXOuSDOvc6xIM68zrXOr869zrXOuSDOus61zr3PjCc7CiRsYW5nWydoZWxwX3ZhcmlhYmxlc19mb3JfdGVtcGxhdGUnXSA9ICfOnM61z4TOsc6yzrvOt8+Ezq3PgiDOs865zrEgz4DPgc+Mz4TPhc+Azr8nOwokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX2NvbXB1dGF0aW9uJ10gPSAnzpTOuc6xzrjOrc+DzrnOvM61z4IgzpzOtc+EzrHOss67zrfPhM6tz4InOwokbGFuZ1snaGVscF9waHBfdmFyaWFibGVfbmFtZSddID0gJ86czrXPhM6xzrLOu863z4TOriBQSFAgJzsKJGxhbmdbJ2hlbHBfc3VibWlzc2lvbl9kYXRlJ10gPSAnzpfOvM61z4HOv868zrfOvc6vzrEgzqXPgM6/zrLOv867zq7Pgic7CiRsYW5nWydoZWxwX3NlcnZlcl9uYW1lJ10gPSAnzp8gzrTOuc6xzrrOv868zrnPg8+Ezq7PgiDPg86xz4InOwokbGFuZ1snaGVscF9zdWJfc291cmNlX2lwJ10gPSAnzpcgzrTOuc61z43OuM+Fzr3Pg863IElQIM+Ezr/PhSDOsc+Ez4zOvM6/z4Ugz4DOv8+FIM+Hz4HOt8+DzrnOvM6/z4DOv865zrXOr8+DzrHOuSDPhM63zr0gz4bPjM+BzrzOsSc7CiRsYW5nWydoZWxwX3N1Yl91cmwnXSA9ICdVUkwgz4TOt8+CIM+DzrXOu86vzrTOsc+CIM+Azr/PhSDPgM61z4HOuc6tz4fOtc65IM+EzrfOvSDPhs+Mz4HOvM6xJzsKJGxhbmdbJ2hlbHBfZmJfdmVyc2lvbiddID0gJ86IzrrOtM6/z4POtyBGb3JtQnVpbGRlcic7CiRsYW5nWydoZWxwX3RhYiddID0gJ86nzrHPgc6xzrrPhM6uz4HOsc+CIFRhYic7CiRsYW5nWydoZWxwX290aGVyX2ZpZWxkcyddID0gJ86kzrEgz4jOtc+FzrTPjs69z4XOvM6xIM+Ez4nOvSDPgM61zrTOr8+Jzr0gzrzPgM6/z4HOv8+Nzr0gzr3OsSDPh8+BzrfPg865zrzOv8+Azr/Ouc63zrjOv8+Nzr0gzrXOvc6xzrvOu86xzrrPhM65zrrOrCjOuc60zrnOsc6vz4TOtc+BzrEgz4fPgc6uz4POuc68zr8gzrHOvSDPhM6/IFNtYXJ0eSDOtM61zr0gz4PPhc69zrXPgc6zzqzOts61z4TOsc65IM68zrUgz4fOsc+BzrHOus+Ezq7Pgc61z4IgzqzOu867zr/Phc+CIM61zrrPhM+Mz4Igz4TOv8+FIEFTQ0lJIDMyLTEyNikgJzsKJGxhbmdbJ2hlbHBfYXJyYXlfZmllbGRzJ10gPSAnWWV0IGFub3RoZXIgd2F5IG9mIGFjY2Vzc2luZyBmaWVsZCB2YWx1ZXMgaXMgdmlhICRmaWVsZG5hbWVfb2JqLCAkYWxpYXNfb2JqLCBvciAkZmxkXyNfb2JqLCB3aGVyZSBlYWNoIGZpZWxkIGlzIGFuIG9iamVjdCBjb250YWluZ2luZzo8YnIgLz48dGFibGU+DQo8dHI+PHRkIGNsYXNzPSJvZGQiPm5hbWU8L3RkPjx0ZCBjbGFzcz0ib2RkIj5GaWVsZCBOYW1lPC90ZD48L3RyPg0KPHRyPjx0ZD50eXBlPC90ZD48dGQ+RmllbGQgVHlwZTwvdGQ+PC90cj4NCjx0cj48dGQgY2xhc3M9Im9kZCI+aWQ8L3RkPjx0ZCBjbGFzcz0ib2RkIj5JbnRlcm5hbCBGaWVsZCBJRDwvdGQ+PC90cj4NCjx0cj48dGQ+dmFsdWU8L3RkPjx0ZD5IdW1hbi1yZWFkYWJsZSBWYWx1ZTwvdGQ+PC90cj4NCjx0cj48dGQgY2xhc3M9Im9kZCI+dmFsdWVBcnJheTwvdGQ+PHRkIGNsYXNzPSJvZGQiPkFycmF5IG9mIGZpZWxkIHZhbHVlKHMpPC90ZD48L3RyPjwvdGFibGU+PGVtPmUuZy48L2VtPiwgeW91IGNvdWxkIHVzZSAieyRmbGRfMV9vYmotPm5hbWV9ID0geyRmbGRfMV9vYmotPnZhbHVlfSc7CiRsYW5nWydoZWxwX2RhdGVfZm9ybWF0J10gPSAnzpTOtc6vz4TOtSA8YSBocmVmPSJodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwIiB0YXJnZXQ9X05FVz7PhM6/ICDOtc6zz4fOtc65z4HOr860zrnOvyDPhM63z4IgUEhQIDwvYT4gzrPOuc6xIM6yzr/Ors64zrXOuc6xIM+Dz4TOt869IM68zr/Pgc+Gzr/PgM6/zq/Ot8+Dzq4gzrfOvM61z4HOv868zrfOvc6vzrHPgi4nOwokbGFuZ1snaGVscF92YXJpYWJsZV9uYW1lJ10gPSAnzpzOtc+EzrHOss67zrfPhM6uJzsKJGxhbmdbJ2hlbHBfZm9ybV9maWVsZCddID0gJ86Rzr3PhM65z4DPgc6/z4PPjs+AzrXPhc+Dzrcgz4DOtc60zq/Ov8+FJzsKJGxhbmdbJ2xpbmtfYmFja190b19mb3JtJ10gPSAnwqsgzqDOr8+Dz4kgz4PPhM63zr0gz4bPjM+BzrzOsSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX3RlbXBsYXRlJ10gPSAnzpTOt868zrnOv8+Fz4HOs86vzrEgzrTOtc6vzrPOvM6xz4TOv8+CIM+Az4HOv8+Ez43PgM6/z4UnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9odG1sX3RlbXBsYXRlJ10gPSAnzpTOt868zrnOv8+Fz4HOs86vzrEgzrTOtc6vzrPOvM6xz4TOv8+CIM+Az4HOv8+Ez43PgM6/z4UgSFRNTCc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2hlYWRlcl90ZW1wbGF0ZSddID0gJ86UzrfOvM65zr/Phc+BzrPOr86xIM60zrXOr86zzrzOsc+Ezr/PgiDPgM+Bzr/PhM+Nz4DOv8+FIM6azrXPhs6xzrvOr860zrHPgic7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2Zvb3Rlcl90ZW1wbGF0ZSddID0gJ86UzrfOvM65zr/Phc+BzrPOr86xIM60zrXOr86zzrzOsc+Ezr/PgiDPgM+Bzr/PhM+Nz4DOv8+FIM6lz4DOv8+Dzq3Ou865zrTOv8+FJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaGVhZGVyJ10gPSAnzpTOt868zrnOv8+Fz4HOs86vzrEgzrTOtc6vzrPOvM6xz4TOv8+CIM6azrXPhs6xzrvOr860zrHPgic7CiRsYW5nWydoZWxwX3RhYl9zeW1ib2wnXSA9ICfOvyDPh86xz4HOsc66z4TOrs+BzrHPgiB0YWInOwokbGFuZ1sndGl0bGVfZmlsZV90ZW1wbGF0ZSddID0gJ86gz4HPjM+Ez4XPgM6/IM6zzrnOsSDOvM65zrEgzrPPgc6xzrzOvM6uIM+Ezr/PhSDOsc+Bz4fOtc6vzr/PhSDOtc6+z4zOtM6/z4UnOwokbGFuZ1sndGl0bGVfZmlsZV9oZWFkZXInXSA9ICfOoM+Bz4zPhM+Fz4DOvyDOs865zrEgz4TOt869IM66zrXPhs6xzrvOr860zrEgz4TOv8+FIM6xz4HPh861zq/Ov8+FIM61zr7PjM60zr/PhSc7CiRsYW5nWyd0aXRsZV9maWxlX2Zvb3RlciddID0gJ86gz4HPjM+Ez4XPgM6/IM6zzrnOsSDPhM6/IM+Fz4DOv8+Dzq3Ou865zrTOvyDPhM6/z4UgzrHPgc+HzrXOr86/z4UgzrXOvs+MzrTOv8+FJzsKJGxhbmdbJ3RpdGxlX2NvbmZpcm1hdGlvbl91cmwnXSA9ICfOlM65zrXPjc64z4XOvc+DzrcgVVJMIM6zzrnOsSDOvc6xIM66zqzOvc61z4TOtSDOus67zrnOuiDOs865zrEgz4TOt869IM61z4DOsc67zq7OuM61z4XPg863IM+EzrfPgiDPhs+Mz4HOvM6xz4InOwokbGFuZ1sndGl0bGVfdmFsdWUnXSA9ICfOnM61z4TOsc6yzrvOt8+Ezq4gKM6UzrXPgiDPhM63zr0gzrrOsc+Bz4TOrc67zrEgzrPOuc6xIM6gz4HOv8+Hz4nPgc63zrzOrc69zr/Phc+CIM6xzr0gzrPOr869zrXPhM61IM+Hz4HOrs+DzrcgzrXPhM65zrrOtc+Ez47OvSBTbWFydHkgKSc7CiRsYW5nWyd0aXRsZV9kYXRlX2Zvcm1hdCddID0gJ86czr/Pgc+Gzq4gzrfOvM61z4HOv868zrfOvc6vzrEgKM6yzrHPg865z4POvM6tzr3OvyDPg8+Ezr8gPGEgaHJlZj0iaHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5kYXRlLnBocCI+IM+Az4HPjM+Ez4XPgM6/IM63zrzOtc+Bzr/OvM63zr3Ouc+Ozr0gz4TOt8+CIFBIUDwvYT4pJzsKJGxhbmdbJ3RpdGxlX3VzZV93eXNpd3lnJ10gPSAnzqfPgc6uz4POtyBXWVNJV1lHIM6zzrnOsSDPhM63z4Igz4DOtc+BzrnOv8+HzrXPgiDOus61zrnOvM6tzr3Ov8+FICjOkc+Az4wgz4TOt869IM68zrXPgc65zqwgz4TOv8+FIM60zrnOsc+HzrXOuc+BzrnPg8+Ezq4gzrzPjM69zr8pPyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYWN0aW9ucyddID0gJ86jz4XOvM+AzrXPgc65z4bOv8+BzqwgIM6lz4DOv86yzr/Ou86uz4IgzqbPjM+BzrzOsc+CJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9sYWJlbHMnXSA9ICfOlc+EzrnOus6tz4TOtc+CIM6zzrnOsSDPhM6xIM66zr/Phc68z4DOuc6sIM+Fz4DOv86yzr/Ou86uz4InOwokbGFuZ1sndGl0bGVfc29ydGFibGVfZmllbGQnXSA9ICfOpM6xzr7Ouc69z4zOvM63z4POtyDPgM61zrTOr8+Jzr0gIyVzJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9oZWxwJ10gPSAnzpHPhc+Ezq4gzrcgz4POtc67zq/OtM6xIM+DzrHPgiDOtc+AzrnPhM+Bzq3PgM61zrkgzr3OsSDPgM+Bzr/Pg86xz4HOvM+Mz4POtc+EzrUgz4TOt869IM+Fz4DOv86yzr/Ou86uIM+EzrfPgiDPhs+Mz4HOvM6xz4IuIM6UzrXOvSDOsc+Dz4fOv867zrXOr8+EzrHOuSDOvM61IM+Ezr8gz4TOuSDOs86vzr3Ov869z4TOsc65IM+EzrEgz4XPgM6/zrLOsc67zrvPjM68zrXOvc6xIM60zrXOtM6/zrzOrc69zrEuIM6cz4DOv8+BzrXOr8+EzrUgzr3OsSDPhM6/IM6/z4HOr8+DzrXPhM61IM6xz4XPhM+MICDOvM61IM+EzrfOvSDPgM+Bzr/Pg864zq7Ous63IM+AzrXOtM6vz4nOvSAizpTOuc6szrjOtc+DzrfPgiIgz4PPhM63zr0gz4bPjM+BzrzOsSDPg86xz4IuJzsKJGxhbmdbJ3RpdGxlX3N0YXJ0X3llYXInXSA9ICfOlc66zrrOr869zrfPg863IM+AzrXPgc65z4zOtM6/z4UgzrXPhM+Ozr0nOwokbGFuZ1sndGl0bGVfZW5kX3llYXInXSA9ICfOpM6tzrvOv8+CIM+AzrXPgc65z4zOtM6/z4UgzrXPhM+Ozr0nOwokbGFuZ1sndGl0bGVfZGVmYXVsdF95ZWFyJ10gPSAnzqDPgc6/zrrOsc64zr/Pgc65z4POvM6tzr3OvyDOrc+Ezr/Pgic7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3llYXJfaGVscCddID0gJyjOoc+NzrjOvM65z4POtyDPg861IC0xIM6zzrnOsSDOvc6xIM61zq/Ovc6xzrkgz4TOvyDPhM+Bzq3Ph86/zr0gzq3PhM6/z4Igz4TOvyDPgM+Bzr/Ous6xzrjOv8+BzrnPg868zq3Ovc6/KSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYWN0aW9uJ10gPSAnzpzOtc+Ezqwgz4TOt869IM+Fz4DOv86yzr/Ou86uIM+EzrfPgiDPhs+Mz4HOvM6xz4InOwokbGFuZ1sndGl0bGVfc3VibWl0X3Jlc3BvbnNlJ10gPSAnzpXOvM+GzqzOvc65z4POtyDOkc+AzqzOvc+EzrfPg863z4InOwokbGFuZ1sndGl0bGVfc3VibWl0X2RhdGUnXSA9ICfOl868zrXPgc6/zrzOt869zq/OsSDOpc+Azr/Oss6/zrvOrs+CJzsKJGxhbmdbJ3RpdGxlX2FwcHJvdmFsX2RhdGUnXSA9ICfOl868zrXPgc6/zrzOt869zq/OsSDOrc6zzrrPgc65z4POt8+CICjOsc+Azr8gz4TOv869IM60zrnOsc+HzrXOuc+BzrnPg8+Ezq4pJzsKJGxhbmdbJ3RpdGxlX3VzZXJfYXBwcm92ZWQnXSA9ICfOl868zrXPgc6/zrzOt869zq/OsSDOrc6zzrrPgc65z4POt8+CICjOsc+Azr8gz4TOv869IM6xz4DOv8+Dz4TOv867zq3OsSknOwokbGFuZ1snZGlzcGxheV90ZXh0J10gPSAnzpXOvM+GzqzOvc65z4POtyAgIs6gz4HOv8+Ez4XPgM6/z4UgzrHPgM6/z4PPhM6/zrvOt8+CIic7CiRsYW5nWydyZWRpcmVjdF90b19wYWdlJ10gPSAnzpHOvc6xzrrOsc+EzrXPjc64z4XOvc+Dzrcgz4PPhM63zr0gz4POtc67zq/OtM6xIM+Ezr/PhSDOmc+Dz4TPjM+Ezr/PgM6/z4UnOwokbGFuZ1sndGl0bGVfc3VibWl0X3Jlc3BvbnNlX2hlbHAnXSA9ICfOkc+Fz4TPjCDPhM6/IM+Az4HPjM+Ez4XPgM6/IM61zrzPhs6xzr3Or862zrXPhM61IM+Dz4TOv869IM+Hz4HOrs+Dz4TOtyDOvM61z4TOrCDPhM63zr0gz4XPgM6/zrLOv867zq4gz4TOt8+CIM+Gz4zPgc68zrHPgi4gzpHPhc+Ez4wgz4TOvyDPgM+Bz4zPhM+Fz4DOvyDOtM61zr0gzq3Ph861zrkgzrXPgM6vz4DPhM+Jz4POtyDPg8+EzrEgzrzOt869z43OvM6xz4TOsSDOt867zrXOus+Ez4HOv869zrnOus6/z40gz4TOsc+Hz4XOtM+Bzr/OvM61zq/Ov8+FIM6uIM+DzrUgzqzOu867zrXPgiDOvM6/z4HPhs6tz4IgzrTOuc6szrjOtc+DzrfPgiDPhM+Jzr0gzrTOtc60zr/OvM6tzr3Ov869IC0gzrXPg861zq/PgiDOv8+Bzq/Ots61z4TOtSDOsc+Fz4TOrCDPhM6xIM+Az4HPjM+Ez4XPgM6xICjOus6xz4TOrCDPgM61z4HOr8+Az4TPic+DzrcpIM+Dz4TOt869ICDOus6xz4HPhM6tzrvOsSDOs865zrEgIs+Az4HOv8+Hz4nPgc63zrzOrc69zr/Phc+CIi4nOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fcGFnZSddID0gJ86jzrXOu86vzrTOsSDPgM+Bzr/Ov8+BzrnPg868zr/PjSc7CiRsYW5nWyd0aXRsZV9yZXF1aXJlX2ZpZWxkbmFtZXMnXSA9ICfOkc+AzrHOuc+Ezr/Pjc69z4TOsc65IM6/zr3PjM68zrHPhM6xIM+AzrXOtM6vz4nOvSc7CiRsYW5nWyd0aXRsZV9yZXF1aXJlX2ZpZWxkbmFtZXNfbG9uZyddID0gJ86Rz4DOsc65z4TOtc6vz4TOsc65IM+EzrEgz4DOtc60zq/OsSDOvc6xIM6tz4fOv8+Fzr0gz4zOvc6/zrzOsT8nOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXMnXSA9ICfOkc+AzrHOuc+Ezr/Pjc69z4TOsc65IM68zr/Ovc6xzrTOuc66zqwgzr/Ovc+MzrzOsc+EzrEgz4DOtc60zq/Pic69JzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWVsZG5hbWVzX2xvbmcnXSA9ICfOnc6xIM6xz4DOsc65z4TOv8+Nzr3PhM6xzrkgzrzOv869zrHOtM65zrrOrCDOv869z4zOvM6xz4TOsSDOs865zrEgz4TOsSDPgM61zrTOr86xPyc7CiRsYW5nWyd0aXRsZV9yZW9yZGVyX2Zvcm0nXSA9ICfOkc69zrHOtM65zqzPhM6xzr7OtyDPgM61zrTOr8+Jzr0nOwokbGFuZ1sndGl0bGVfbG9hZF90ZW1wbGF0ZSddID0gJ86mz4zPgc+Ez4nPg863IM+Az4HOv8+Ez43PgM6/z4UnOwokbGFuZ1sndGl0bGVfYWRkX2J1dHRvbl90ZXh0J10gPSAnzprOtc6vzrzOtc69zr8gzrrOv8+FzrzPgM65zr/PjSDPgM+Bzr/Pg864zq7Ous63z4InOwokbGFuZ1sndGl0bGVfZGVsX2J1dHRvbl90ZXh0J10gPSAnzprOtc6vzrzOtc69zr8gzrrOv8+FzrzPgM65zr/PjSDOtM65zrHOs8+BzrHPhs6uz4InOwokbGFuZ1sndGl0bGVfZmllbGRfaGVscHRleHQnXSA9ICfOms61zq/OvM61zr3OvyDOss6/zq7OuM61zrnOsc+CIM6zzrnOsSDOsc+Fz4TPjCDPhM6/IM+AzrXOtM6vzr8nOwokbGFuZ1sndGl0bGVfc3RyaW5nX29yX251bWJlcl9ldmFsJ10gPSAnzpXPgM61zr7Otc+BzrPOsc+Dzq/OsSDPhM+Jzr0gzrzOtc+EzrHOss67zrfPhM+Ozr0gz4nPgiDOsc+BzrnOuM68zr/Pjc+CIM6uIM+Dz4XOvM6yzr/Ou86/z4POtc65z4HOrc+CJzsKJGxhbmdbJ3RpdGxlX29yZGVyJ10gPSAnzqTOsc6+zrnOvc+MzrzOt8+DzrcgzpXPgM61zr7Otc+BzrPOsc+Dzq/Osc+CJzsKJGxhbmdbJ3RpdGxlX29yZGVyX2hlbHAnXSA9ICfOlc6szr0gz4XPgM6sz4HPh86/z4XOvSDPgM61z4HOuc+Dz4PPjM+EzrXPgc6xIM6xz4DPjCDOrc69zrEgz4XPgM6/zrvOv86zzrnOts+MzrzOtc69zrEgzqDOtc60zq/OsSAszr8gz4XPgM6/zrvOv86zzrnPg868z4zPgiDOuM6xIM6zzq/Ovc61zrkgzrHPgM+MIM+Ezr/OvSDOvM65zrrPgc+Mz4TOtc+Bzr8gzrHPgc65zrjOvM+MIM+EzrHOvs65zr3PjM68zrfPg863z4Igz4DPgc6/z4Igz4TOv869IM+Fz4jOt867z4zPhM61z4HOvyDOsc+BzrnOuM68z4wgJzsKJGxhbmdbJ3RpdGxlX2NvbXB1dGVfdmFsdWUnXSA9ICfOpM65zrzOriDOs865zrEgz4TOv869IM+Fz4DOv867zr/Os865z4POvM+MJzsKJGxhbmdbJ3RpdGxlX3N0cmluZyddID0gJ86RzrvPhs6xz4HOuc64zrzOt8+EzrnOus+MJzsKJGxhbmdbJ3RpdGxlX251bWVyaWMnXSA9ICfOkc+BzrnOuM68zrfPhM65zrrPjCc7CiRsYW5nWyd0aXRsZV9pbmxpbmVfZm9ybSddID0gJ86Rz4DOtc65zrrPjM69zrnPg863IM+EzrfPgiDPhs+Mz4HOvM6xz4IgIGlubGluZT8nOwokbGFuZ1sndGl0bGVfaW5saW5lX2Zvcm1faGVscCddID0gJ86kzr8gSW5saW5lIM+DzrfOvM6xzq/Ovc61zrkgzr/PhM65ICDOus6szrjOtSDPhs+Mz4HOvM6xIM+Azr/PhSDOsc66zr/Ou86/z4XOuM61zq8gzrHOvc+EzrnOus6xzrjOuc+Dz4TOrCDPhM63zr0gzrXPhM65zrrOrc+EzrEge0Zvcm1CdWlsZGVyfSwgzrXOvc+JIM6xzr0gzrXOuc69zrHOuSBub24taW5saW5lIM6xzr3PhM65zrrOsc64zrnPg8+Ezqwgz4TOt869IM61z4TOuc66zq3PhM6xIHtjb250ZW50fSAuJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2RlZmF1bHRfdmFsdWUnXSA9ICfOoM+Bzr/Ous6xzrjOv8+BzrnPg868zq3Ovc63IM+EzrnOvM6uIM+AzrXOtM6vzr/PhSc7CiRsYW5nWyd0aXRsZV9jbGVhcl9kZWZhdWx0J10gPSAnzprOsc64zrHPgc65z4POvM+Mz4Igz4TOv8+FIM+Az4HOv866zrHOuM6/z4HOuc+DzrzOrc69zr/PhSDOvM61IM66zrvOuc66Pyc7CiRsYW5nWyd0aXRsZV9jbGVhcl9kZWZhdWx0X2hlbHAnXSA9ICfOlc+AzrnOu86tzr7PhM61ICDOs865zrEgzr3OsSDOus6xz4TOsc+BzrPOtc6vz4POtc+EzrUgz4TOt869IM+Az4HOv861z4DOuc67zrXOs868zq3Ovc63IM+EzrnOvM6uIM+Mz4TOsc69IM6/IM+Hz4HOrs+Dz4TOt8+CIM66zqzOvc61zrkgzrrOu865zrogz4POtSDOsc+Fz4TPjCDPhM6/IM+AzrXOtM6vzr8uIM6UzrXOtM6/zrzOrc69zr/PhSDPjM+EzrkgzrHPhc+Ez4wgz4fPgc63z4POuc68zr/PgM6/zrnOtc6vIM66z47OtM65zrrOsSBqYXZhc2NyaXB0ICDOsc69IM6yzqzOu861z4TOtSDOvM6/zr3OrCDOtc65z4POsc6zz4nOs865zrrOrCAoXCcpIM+Dz4TOvyDPgM+Bzr/Otc+AzrnOu861zrPOvM6tzr3OvyDOus61zq/OvM61zr3OvywgzrjOsSDOsc+Azr/PhM+Nz4fOtc65LiDOhs67zrvOv865IM68zrcgz4bOuc67zrnOus6/zq8gz4DPgc6/z4IgamF2YXNjcmlwdCAgz4fOsc+BzrHOus+Ezq7Pgc61z4IgzrzPgM6/z4HOv8+Nzr0gzrXPgM6vz4POt8+CIM69zrEgz4DPgc6/zrrOsc67zq3Pg86/z4XOvSDPgM+Bz4zOss67zrfOvM6xLic7CiRsYW5nWyd0aXRsZV9yZW1vdmVfZmlsZV9mcm9tX3NlcnZlciddID0gJ86UzrnOsc6zz4HOsc+Gzq4gz4TOv8+FIM6xz4HPh861zq/Ov8+FIM+Azr/PhSDOvM61z4TOsc+Gzr/Pgc+Ez47OuM63zrrOtSDOsc+Az4wgz4TOv869IHNlcnZlciDOvM61z4TOsSDPhM63zr0gzrXPgM61zr7Otc+BzrPOsc+Dzq/OsSDPhM6/z4UgKM66zrHOvc+Mzr3Otc+CIGVtYWlsKSc7CiRsYW5nWyd0aXRsZV9maWVsZF9qYXZhc2NyaXB0J10gPSAnSmF2YXNjcmlwdCDOs865zrEgz4TOvyDOoM61zrTOr86/JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2phdmFzY3JpcHRfbG9uZyddID0gJ86jz4XOvc+EzqzOvs+EzrUgz4DOu86uz4HPic+CIM+EzrfOvSDOus67zq7Pg863ICBKYXZhc2NyaXB0LCDPg8+FzrzPgM61z4HOuc67zrHOvM6yzrHOvc6/zrzOrc69zr/PhSDPhM6/z4UgzrPOtc6zzr/Ovc+Mz4TOv8+CIM+Azr/PhSDOuM6tzrvOtc+EzrUgzr3OsSDPgM6xzrPOuc60zrXPjc+DzrXPhM61LCDOoC7Opy4sIG9uY2xpY2s9InlvdXJmbigpIic7CiRsYW5nWyd0aXRsZV9zdWJtaXRfamF2YXNjcmlwdCddID0gJ0phdmFzY3JpcHQgzqbPjM+BzrzOsc+CIM6xz4DOv8+Dz4TOv867zq7Pgic7CiRsYW5nWyd0aXRsZV9zdWJtaXRfamF2YXNjcmlwdF9sb25nJ10gPSAnzqPPhc69z4TOrM6+z4TOtSDPgM67zq7Pgc+Jz4Igz4TOt869IM66zrvOrs+DzrcgIEphdmFzY3JpcHQsIM+Dz4XOvM+AzrXPgc65zrvOsc68zrLOsc69zr/OvM6tzr3Ov8+FIM+Ezr/PhSDOs861zrPOv869z4zPhM6/z4Igz4DOv8+FIM64zq3Ou861z4TOtSDOvc6xIM+AzrHOs865zrTOtc+Nz4POtc+EzrUsIM6gLs6nLiwgb25jbGljaz0ieW91cmZuKCkiPGJyIC8+zpHPhc+Ez4wgz4DOuc64zrHOvc+Mzr0gzr3OsSDOvM63zr0gzrvOtc65z4TOv8+Fz4HOs861zq8gzrrOsc67zqwgzrrOsc65IM6xzr0gz4fPgc63z4POuc68zr/PgM6/zrnOtc6vz4TOtSDPhM63zr0gzrXPgM65zrvOv86zzq4gIs+DzrXOvc6sz4HOuc6/IM6xz4PPhs6xzrvOtc6vzrHPgiIgz4DOsc+BzrHPgM6szr3PiS4nOwokbGFuZ1snZW1haWxfZnJvbV9hZGRyX2hlbHAnXSA9ICfOnM63zr0gzrXPgM65zrvOrc6+zrXPhM61IM68zrnOsSDPhM+Fz4fOsc6vzrEgzrTOuc61z43OuM+Fzr3Pg863IM61zrTPjiAtIM+Azr/Ou867zr/OryBJU1BzICA8YnIgLz4gzrTOtc69IM64zrEgz4DOsc+BzrHOtM+Oz4POv8+Fzr0gz4TOvyDPhM6xz4fPhc60z4HOv868zrXOr86/IM6xzr0gz4fPgc63z4POuc68zr/PgM6/zrnOtc6vz4TOtSDOrc69zrEgzrTOuc6xz4bOv8+BzrXPhM65zrrPjCDPjM69zr/OvM6xIM+Ezr/OvM6tzrEgzrHPgM+MIM+Ezr8gz4DPgc6xzrPOvM6xz4TOuc66z4w8YnIgLz4ozqAuzqcuLCDPh8+BzrfPg865zrzOv8+Azr/Ouc6uz4PPhM61IM66zrHPhM65IM+DzrHOvSDPjM69zr/OvM6xQCVzKSc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYWR2YW5jZWQnXSA9ICfOp8+BzrXOuc6szrbOtc+Dz4TOtSDPgM61z4HOuc+Dz4POv8+Ezq3Pgc6/z4XPgiDPhM+Nz4DOv8+Fz4Igz4DOtc60zq/Pic69PyAnOwokbGFuZ1sndGl0bGVfc3dpdGNoX2Jhc2ljJ10gPSAnzqDOrM+BzrEgz4DOv867zrvOv86vIM+Dz4XOs866zrXPh8+FzrzOrc69zr/OuSDPhM+Nz4DOv865IM+AzrXOtM6vz4nOvT8gJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9hZHZhbmNlZF9saW5rJ10gPSAnzpHOu867zrHOs86uIM+DzrUgzqDPgc6/z4fPic+BzrfOvM6tzr3OvyDPgM61z4HOuc6yzqzOu867zr/OvSc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYmFzaWNfbGluayddID0gJ86RzrvOu86xzrPOriDPg861IM6Rz4DOu8+MIM+AzrXPgc65zrLOrM67zrvOv869JzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcm9vdCddID0gJ86mzqzOus61zrvOv8+CIM6zzrnOsSDPhM63zr0gzrHPgM6/zrjOrs66zrXPhc+Dzrcgz4TOv8+FIM6xz4HPh861zq/Ov8+FJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcm9vdF9oZWxwJ10gPSAnzqDPgc6tz4DOtc65IM69zrEgzrXOr869zrHOuSDOus6xz4TOrM67zr/Os86/z4Igz4TOv8+FIHdlYiBzZXJ2ZXIgz4DOv8+FIM6tz4fOtc+EzrUgz4TOtyDOtM65zrrOsc65zr/OtM6/z4POr86xIM69zrEgzrPPgc6sz4jOtc+EzrUuIDxiciAvPiDOp8+BzrfPg865zrzOv8+Azr/Ouc6uz4PPhM61IM+EzrfOvSBjaG1vZCA3NzcsIM6xzr0gzq3Ph861z4TOtSDPgM+Bzr/Oss67zq7OvM6xz4TOsS4gPGJyIC8+IM6Vz4DOr8+DzrfPgiwgzrXOu86tzrPOvs+EzrUgzrPOuc6xIM69zrEgzrTOtc6vz4TOtSDPjM+EzrkgzrTOtc69IM6tz4fOtc+EzrUgz4DOtc+BzrnOv8+BzrnPg868zr/Pjc+CIM+Ezr/PhSDOus6xz4TOsc67z4zOs86/z4Ugz4PPhM63zr0gUEhQLic7CiRsYW5nWyd0aXRsZV9uZXdsaW5lX3JlcGxhY2VtZW50J10gPSAnzqfOsc+BzrHOus+Ezq7Pgc6xz4IgzrHOvc+EzrnOus6xz4TOrM+Dz4TOsc+DzrfPgiDOs865zrEgz4TOv869IM+HzrHPgc6xzrrPhM6uz4HOsSDOsc67zrvOsc6zzq7PgiDOs8+BzrHOvM68zq7PgihOTCkgzrrOsc65IM+Ezr/OvSDPh86xz4HOsc66z4TOrs+BzrEgzrXPgM65z4PPhM+Bzr/Phs6uz4IoTEYpJzsKJGxhbmdbJ3RpdGxlX25ld2xpbmVfcmVwbGFjZW1lbnRfaGVscCddID0gJ86Rz4bOrs+Dz4TOtSDPhM6/IM66zrXOvc+MIM6zzrnOsSDOvc6xIM61z4DOuc+Ez4HOrc+Azr/Ovc+EzrHOuSDOv865IM+HzrHPgc6xzrrPhM6uz4HOtc+CIM6xzrvOu86xzrPOrs+CIM6zz4HOsc68zrzOrs+CIM66zrHOuSDOtc+AzrHOvc6xz4bOv8+BzqzPgiDPg8+EzrfOvSDOrc6+zr/OtM6/JzsKJGxhbmdbJ3RpdGxlX3NlbmRfdXNlcmNvcHknXSA9ICfOnc6xIM+Dz4TOrc67zr3Otc+EzrUgzrHOvc+Ezq/Os8+BzrHPhs6/IM+EzrfPgiDOsc+Azr/Pg8+Ezr/Ou86uz4Igz4PPhM6/zr0gz4fPgc6uz4PPhM63Pyc7CiRsYW5nWyd0aXRsZV9zZW5kX3VzZXJjb3B5X2xhYmVsJ10gPSAnzpXPhM65zrrOrc+EzrEgzrPOuc6xIM+Ezr8gIENoZWNrYm94ICjOtc6szr0gz4TOvyDOtc+AzrnOu86tzr7Otc65IM6/IM+Hz4HOrs+Dz4TOt8+CKSc7CiRsYW5nWyd0aXRsZV9zZW5kX21lX2FfY29weSddID0gJ86jz4TOtc6vzrvOtSDOvM6/z4UgzrHOvc+Ezq/Os8+BzrHPhs6/IM+EzrfPgiDPhs+Mz4HOvM6xz4InOwokbGFuZ1sndGl0bGVfYWxsb3dfc3ViamVjdF9vdmVycmlkZSddID0gJ86dzrEgzrXPgM65z4TPgc6tz4DOtc+EzrUgzrHOvc+EzrnOus6xz4TOrM+Dz4TOsc+Dzrcgz4TOv8+FIM6Yzq3OvM6xz4TOv8+CPyc7CiRsYW5nWyd0aXRsZV9hbGxvd19zdWJqZWN0X292ZXJyaWRlX2xvbmcnXSA9ICfOlc+AzrnPhM+Bzq3PgM61zrkgz4TOvyDPgM61zrTOr86/ICLOmM6tzrzOsSIgz4TOv8+FIEVtYWlsIM69zrEgzrHOvc+EzrnOus6xzrjOuc+Dz4TOrM+EzrUgzrHPgM+MIM61z4DOuc67zr/Os86uIM+Ezr/PhSDOsc69zrHPgM+Ez4XPg8+Dz4zOvM61zr3Ov8+FIM68zrXOvc6/z40gKCBwdWxsZG93bikuJzsKJGxhbmdbJ3RpdGxlX2Rpc3BsYXlfbGVuZ3RoJ10gPSAnzpzOrs66zr/PgiDPgM+Bzr/Oss6/zrvOrs+CJzsKJGxhbmdbJ3RpdGxlX21pbmltdW1fbGVuZ3RoJ10gPSAnzpXOu86sz4fOuc+Dz4TOvyDOvM6uzrrOv8+CIM6xz4DOrM69z4TOt8+DzrfPgic7CiRsYW5nWyd0aXRsZV9oaWRlJ10gPSAnzpHPgM+MzrrPgc+Fz4jOtyDOtc65z4PPjM60zr/PhSc7CiRsYW5nWyd0aXRsZV9oaWRlX2hlbHAnXSA9ICfOnc6xIM60zrXOr8+Hzr3Otc65IM+Dz43OvM6yzr/Ou86xIM6xzr3PhM6vIM6zzrnOsSDOsc+AzrvPjCDOus61zq/OvM61zr3OvyDPjM+EzrHOvSDOvyDPh8+Bzq7Pg8+EzrfPgiDOtc65z4POrM6zzrXOuSDPhM6/zr0gzrrPic60zrnOus+MIM+Az4HPjM+DzrLOsc+DzrfPgj8nOwokbGFuZ1sncGFzc3dvcmRfZG9lc19ub3RfbWF0Y2gnXSA9ICfOnyDOms+JzrTOuc66z4zPgiDPgM+Bz4zPg86yzrHPg863z4IgzrTOtc69IM+EzrHOuc+BzrnOrM62zrXOuSAlcyc7CiRsYW5nWydiYWNrX3RvcCddID0gJ86Vz4DOuc+Dz4TPgc6/z4bOriDPg8+EzrfOvSDOus+Nz4HOuc6xIM+DzrXOu86vzrTOsSDPhM6/z4UgIM60zrfOvM65zr/Phc+BzrPOv8+NIM+Gzr/Pgc68z47OvSc7CiRsYW5nWyd0aXRsZV9oZWFkZXJzX3RvX21vZGlmeSddID0gJ86gzr/Ouc61z4IgzrrOtc+GzrHOu86vzrTOtc+CIM63zrvOtc66z4TPgc6/zr3Ouc66zr/PjSDPhM6xz4fPhc60z4HOv868zrXOr86/z4UgzrjOsSDPgM+Bzq3PgM61zrkgzr3OsSDOrc+HzrXOuSDOsc+Fz4TOriDOtyDOtc6vz4POv860zr/Pgj8nOwokbGFuZ1sndGl0bGVfYmxhbmtfaW52YWxpZCddID0gJ86czrfOvSDOsc+Azr/OtM6tz4fOtc+Dz4TOtSDPhM6/IM66zrXOvc+MLCDPic+CIM6tzrPOus+Fz4HOtyDOsc+AzqzOvc+EzrfPg863JzsKJGxhbmdbJ3RpdGxlX2JsYW5rX2ludmFsaWRfbG9uZyddID0gJ86VzqzOvSDOrc69zrEgz4DOtc60zq/OvyDOsc+AzrHOuc+EzrXOr8+EzrHOuSwgz4TPjM+EzrUgzr8gzq3Ou861zrPPh86/z4IgzrjOsSDOsc+AzrHOuc+Ezq7Pg861zrkgz4zPhM65IM6/IM+Hz4HOrs+Dz4TOt8+CIM64zrEgzrTPjs+DzrXOuSDOvM61z4HOuc66zr/Pjc+CIM6xzrvPhs6xz4HOuc64zrzOt8+EzrnOus6/z43PgiDPh86xz4HOsc66z4TOrs+BzrXPgiDOus6xzrkgz4zPh865IM66zrXOvc6sJzsKJGxhbmdbJ2Vycm9yX0NvbXBhbnlEaXJlY3RvcnlfbW9kdWxlX25vdF9hdmFpbGFibGUnXSA9ICfOpM6/IENvbXBhbnkgRGlyZWN0b3J5IG1vZHVsZSDOtM61zr0gzrXOr869zrHOuSDOtM65zrHOuM6tz4POuc68zr8hJzsKJGxhbmdbJ29wdGlvbl9uZXZlciddID0gJ86gzr/PhM6tJzsKJGxhbmdbJ29wdGlvbl91c2VyX2Nob2ljZSddID0gJ86Uz47Pg8+EzrUgz4PPhM6/zr0gz4fPgc6uz4PPhM63IM61z4DOuc67zr/Os86uIChjaGVja2JveCknOwokbGFuZ1snb3B0aW9uX2Fsd2F5cyddID0gJ86gzqzOvc+EzrEnOwokbGFuZ1snb3B0aW9uX2Zyb20nXSA9ICfOlM65zrXPjc64z4XOvc+DzrcgZW1haWwgIs6Rz4DPjCIgJzsKJGxhbmdbJ29wdGlvbl9yZXBseSddID0gJ86UzrnOtc+NzrjPhc69z4POtyBlbWFpbCAizpHPgM6szr3PhM63z4POty3Oo861Iic7CiRsYW5nWydvcHRpb25fYm90aCddID0gJ86UzrnOtc+NzrjPhc69z4POtyBlbWFpbCDOus6xzrkgz4PPhM6xIM60z4XOvyAizpHPgM+MIiDOus6xzrkgIs6Rz4DOrM69z4TOt8+DzrctzqPOtSInOwokbGFuZ1snb3B0aW9uX2Ryb3Bkb3duJ10gPSAnzpHOvc6xz4DPhM+Fz4PPg8+MzrzOtc69zr8gzrzOtc69zr/PjSAoRHJvcGRvd24pJzsKJGxhbmdbJ29wdGlvbl9zZWxlY3RsaXN0X3NpbmdsZSddID0gJ86Vz4DOuc67zr/Os86uIM67zq/Pg8+EzrHPgiAozrzOv869zq4pJzsKJGxhbmdbJ29wdGlvbl9zZWxlY3RsaXN0X211bHRpcGxlJ10gPSAnzpXPgM65zrvOv86zzq4gzrvOr8+Dz4TOsc+CICjPgM6/zrvOu86xz4DOu86uKSc7CiRsYW5nWydvcHRpb25fcmFkaW9ncm91cCddID0gJ1JhZGlvIEdyb3VwICc7CiRsYW5nWyd0aXRsZV9jb21wYW55X2ZpZWxkX25vdGUnXSA9ICfOo863zrzOtc6vz4nPg863OiDOlyDOrc6+zr/OtM6/z4IgzrjOsSDOtc6vzr3Osc65IM+Fz4DPjCDPhM63IM68zr/Pgc+Gzq4gPGJyLz4gIs+Ezr8gz4zOvc6/zrzOsSDPhM63z4IgzrXPhM6xzrnPgc61zq/Osc+CIj0+Is+EzrnOvM6uIic7CiRsYW5nWyd0aXRsZV9waWNrX2NhdGVnb3JpZXMnXSA9ICfOlc+AzrnOu86tzr7PhM61IM66zrHPhM63zrPOv8+Bzq/OsSAoz4DOv867zrvOsc+AzrvOriknOwokbGFuZ1sndGl0bGVfcGlja19maWVsZGRlZiddID0gJ86UzrXOr86+z4TOtSDPhM63zr0gz4TOuc68zq4gzrXPgM61zr7Ors6zzrfPg863z4Igz4TOv8+FIM+AzrXOtM6vzr/PhSjOvM6/zr3PjCk8ZW0+z4DPgc6/zrHOuc+BzrXPhM65zrrPjDwvIGVtPic7CiRsYW5nWyd0aXRsZV9jaG9vc2VfdXNlcl9pbnB1dCddID0gJ86Vz4DOuc67zr/Os86uIM61zrnPg8+MzrTOv8+FIM+Hz4HOrs+Dz4TOtyc7CiRsYW5nWyd0aXRsZV9zZWVfYWxzb191ZHQnXSA9ICcozpXPgM6vz4POt8+CLCDPgc6vzr7PhM61IM68zrnOsSDOvM6xz4TOuc6sIM+Dz4TOt869IM66zrHPgc+Ezq3Ou86xIM6lz4DOv86yzr/Ou86uIM6mz4zPgc68zrHPgiwgzrHOvSDOuM6tzrvOtc+EzrUgzr3OsSDOv8+Bzq/Pg861z4TOtSDPhM6/IFVEVCDOs865zrEgzrXPgM65zrrPjc+Bz4nPg863IM+Gz4zPgc68zrHPgiknOwokbGFuZ1sndGl0bGVfeWVhcl9lbmRfbWVzc2FnZSddID0gJ86kzq3Ou86/z4Igzq3PhM6/z4XPgic7CiRsYW5nWyd0aXRsZV9maWVsZF9sb2dpYyddID0gJ86jz4TOv865z4fOtc6vzrEgU21hcnR5IM6uICDOu86/zrPOuc66zq4gz4DOv8+FIM61zq/Ovc6xzrkgzrHPgM6xz4HOsc6vz4TOt8+Ezr8gzr3OsSDPg8+EzrHOu861zq8gzrzOtSDOsc+Fz4TPjCDPhM6/IM+AzrXOtM6vzr8nOwokbGFuZ1sndGl0bGVfZmllbGRfbG9naWNfbG9uZyddID0gJ0NhbiBiZSBzbWFydHkgZGF0YSwgamF2YXNjcmlwdCwgb3Igc29tZSBvdGhlciBkYXRhIHlvdSB3YW5cJ3QgdG8gc2VudCBhbG9uZyB3aXRoIHRoaXMgZmllbGQuPGJyIC8+R29lcyB0cm91Z2h0IHNtYXJ0eSBjb21waWxlciwgc28gcmVtZWJlciB1c2Uge2xpdGVyYWx9ey9saXRlcmFsfSB0YWdzIHdpdGggPHNjcmlwdD48L3NjcmlwdD4nOwokbGFuZ1sndGl0bGVfZmllbGRfaW5jbHVkZWxhYmVscyddID0gJ86dzrEgz4PPhc68z4DOtc+BzrnOu86xzrzOss6szr3Otc65IM61z4TOuc66zq3PhM61z4InOwokbGFuZ1sndGl0bGVfZmllbGRfaW5jbHVkZWxhYmVsc19oZWxwJ10gPSAnzpzOtSDPhM63zr0gzrXOvc61z4HOs86/z4DOv86vzrfPg863IM+AzrXPgc65zrvOsc68zrLOrM69zr/Ovc+EzrHOryDOtc+EzrnOus6tz4TOtc+CIM+Dz4TOt869IM6tzr7Ov860zr8uIM+AzrHPgc6szrTOtc65zrPOvM6xIC0gbGFiZWw6IHZhbHVlLGxhYmVsMjogdmFsdWUyJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3NpYmxpbmdzJ10gPSAnzqPPjc69zrTOtc+Dzq4gzrHPhc+Ezr/PjSDPhM6/z4Ugz4DOtc60zq/Ov8+FIM68zrUgz4TOt869IM+Az4HOv861z4DOuc67zr/Os86uJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3NpYmxpbmdzX2hlbHAnXSA9ICfOpM6/IM6xzr3Osc+Az4TPhc+Dz4PPjM68zrXOvc6/IM68zrXOvc6/z40gKERyb3Bkb3duKSDPgM6xz4HOsc64zq3PhM61zrkgz4zOu861z4Igz4TOt8+CIM+Az4HOv861z4DOuc67zr/Os86tz4Igz4TOv8+FIM61zr0gzrvPjM6zz4kgz4DOtc60zq/Ov8+FIM66zrHOuSDPg86xz4IgzrXPgM65z4TPgc6tz4DOtc65IM69zrEgz4PPhc69zrTOrc+DzrXPhM61IM6xz4XPhM+MIM+Ezr8gz4DOtc60zq/OvyDPg861IM68zrnOsSDOsc+Az4wgz4TOuc+CIM+Az4HOv861z4DOuc67zr/Os86tz4IuIM6Vz4DOuc+Ez4HOrc+AzrXOuSDPhM6/zr0gzq3Ou861zrPPh86/IM+Ezr/PhSDPgM61zrTOr86/z4UgzrzOtSDPhM6xIM61z4DOuc67zrXOs868zq3Ovc6xIM66zr/Ovc+Ez4HPjM67Lic7CiRsYW5nWyd0aXRsZV9maWVsZF9oaWRlYnV0dG9ucyddID0gJ86az4HPjc6yzrXOuSDPhM6xIM66zr/Phc68z4DOuc6sIM61zrvOrc6zz4fOv8+FJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2hpZGVidXR0b25zX2hlbHAnXSA9ICfOms+Bz43Oss61zrkgz4TOsSDOtc68z4DPgc+Mz4POuM65zrEgKGZyb25kZW5kKSDOus6/z4XOvM+AzrnOrCDOtc67zq3Os8+Hzr/PhSDOs865zrEgzrHPhc+Ez4wgz4TOvyDPgM61zrTOr86/JzsKJGxhbmdbJ2Vycm9yX3VzZXJ0YWdfZGlzcG9zaXRpb24nXSA9ICfOlyDOtc+EzrnOus6tz4TOsSDPh8+Bzq7Pg8+EzrcgzrXPgM6tz4PPhM+BzrXPiM61IM+Dz4bOrM67zrzOsS4nOwokbGFuZ1snZXJyb3JfdXNlcnRhZyddID0gJ86XIM61z4TOuc66zq3PhM6xIM+Hz4HOrs+Dz4TOtyAlcyDOtc+Azq3Pg8+Ez4HOtc+IzrUgz4PPhs6szrvOvM6xLic7CiRsYW5nWydlcnJvcl9jYXRhbG9nZXJfbW9kdWxlX25vdF9hdmFpbGFibGUnXSA9ICc8c3Ryb25nPs6kzr8gQ2F0YWxvZ2VyIG1vZHVsZSDOtM61zr0gzrXOr869zrHOuSDOtc6zzrrOsc+EzrXPg8+EzrfOvM6tzr3Ovy/Otc69zrXPgc6zzr/PgM6/zrnOt868zq3Ovc6/Ljwvc3Ryb25nPic7CiRsYW5nWyd3YXJuaW5nJ10gPSAnzqDOoc6fzqPOn86nzpchJzsKJGxhbmdbJ2RlZmF1bHRfdGVtcGxhdGUnXSA9ICfOoM+Bzr/Ous6xzrjOv8+BzrnPg868zq3Ovc6/IM+Az4HPjM+Ez4XPgM6/JzsKJGxhbmdbJ3RhYmxlX2xlZnRfdGVtcGxhdGUnXSA9ICfOoM+Bz4zPhM+Fz4DOvyDPgM6vzr3Osc66zrEsIM6/zrkgzqTOr8+EzrvOv865IM6xz4HOuc+Dz4TOtc+BzqwnOwokbGFuZ1sndGFibGVfdG9wX3RlbXBsYXRlJ10gPSAnzqDPgc+Mz4TPhc+Azr8gz4DOr869zrHOus6xLCDOv865IM6kzq/PhM67zr/OuSDOtc+AzqzOvc+JJzsKJGxhbmdbJ2Zvcm1fdGVtcGxhdGVfbmFtZSddID0gJ86gz4HPjM+Ez4XPgM6/IM6xz4DPjCAlcyc7CiRsYW5nWyd0ZW1wbGF0ZV9hcmVfeW91X3N1cmUnXSA9ICfOlc6vz4PPhM61IM+Dzq/Os86/z4XPgc6/zrkgz4zPhM65IM64zq3Ou861z4TOtSDOvc6xIM6xzr3PhM65zrrOsc+EzrHPg8+Ezq7Pg861z4TOtSDPhM6/IM+Az4HPjM+Ez4XPgM+MIM+DzrHPgiDOvM61IM+Ezr8gzrXPgM65zrvOtc6zzrzOrc69zr8gz4DPgc+Mz4TPhc+Azr87ICjOkc66z4zOvM6xIM66zrkgzrHOvSDPgM61zq/PhM61IM61zr3PhM6szr7Otc65LCDOuM6xIM+Az4HOrc+AzrXOuSDOvc6xIM6xz4DOv864zrfOus61z43Pg861z4TOtSDPhM65z4IgzrHOu867zrHOs86tz4IpJzsKJGxhbmdbJ3RpdGxlX2JhZF9mdW5jdGlvbiddID0gJ86jz4bOrM67zrzOsSDOus6xz4TOrCDPhM6/zr0gz4XPgM6/zrvOv86zzrnPg868z4wgz4TOv8+FICIlcyIuJzsKJGxhbmdbJ25vX3JlZmVycmVyX2luZm8nXSA9ICfOlM61zr0gz4XPgM6sz4HPh86/z4XOvSDPgM67zrfPgc6/z4bOv8+Bzq/Otc+CIEhUVFBfUkVGRVJFUiDOtM65zrHOuM6tz4POuc68zrXPgiAozrrOsc+Ezqwgz4DOrM+DzrEgz4DOuc64zrHOvc+Mz4TOt8+EzrEgzrvPjM6zz4kgz4TOt8+CIM+Hz4HOrs+DzrfPgiDPhM63z4IgzrXPgM65zrrPjc+Bz4nPg863z4IgIEVtYWlsIM6nz4HOrs+Dz4TOtyknOwokbGFuZ1sndmFsaWRhdGlvbl9wYXJhbV9lcnJvciddID0gJ86jz4bOrM67zrzOsSDPgM6xz4HOsc68zq3PhM+Bzr/PhSDOtc+AzrnOus+Nz4HPic+DzrfPgi4gIM6gzrHPgc6xzrrOsc67z44gzrLOtc6yzrHOuc+JzrjOtc6vz4TOtSDPjM+EzrkgzrHOvc+EzrnOs8+BzqzPiM6xz4TOtSDPhM63IM60zrnOtc+NzrjPhc69z4POtyBVUkwgzrHPgM+MIM+Ezr8gZW1haWwgz4POsc+CIM+Dz4nPg8+EzqwhJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVzcG9uc2VfZXJyb3InXSA9ICfOo8+GzqzOu868zrEgzrXPgM65zrrPjc+Bz4nPg863z4IuIM6gzrHPgc6xzrrOsc67z44gzrLOtc6yzrHOuc+JzrjOtc6vz4TOtSDPjM+EzrkgzrHOvc+EzrnOs8+BzqzPiM6xz4TOtSDPhM63IM60zrnOtc+NzrjPhc69z4POtyBVUkwgzrHPgM+MIM+Ezr8gZW1haWwgz4POsc+CIM+Dz4nPg8+EzqwhJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbm9fZmllbGRfZXJyb3InXSA9ICfOo8+GzqzOu868zrEgzrXPgM65zrrPjc+Bz4nPg863z4IuIM6UzrXOvSDPhc+AzqzPgc+HzrXOuSDPgM61zrTOr86/IM61z4DOuc66z43Pgc+Jz4POt8+CIGUtbWFpbCDPg861IM6xz4XPhM6uIM+EzrfOvSDPhs+Mz4HOvM6xISc7CiRsYW5nWyd1cGdyYWRlMDN0bzA0J10gPSAnzqTOvyDOoM+Bz4zPhM+Fz4DOvyDPhM63z4Igz4bPjM+BzrzOsc+CIM61zr3Ot868zrXPgc+OzrjOt866zrUgz4PPhM6/IM+AzrvOsc6vz4POuc6/IM+EzrfPgiDOsc69zrHOss6szrjOvM65z4POt8+CIM+EzrfPgiDOrc66zrTOv8+DzrfPgiDOsc+Az4wgMC4zIM+DzrUgMC40LiDOnM+Azr/Pgc61zq8gzr3OsSDPh8+BzrXOuc6xz4PPhM61zq8gzr3OsSDOs86vzr3Ov8+Fzr0gzr/Pgc65z4POvM6tzr3Otc+CIM60zrnOv8+BzrjPjs+DzrXOuc+CLiDOkc69IM+Hz4HOt8+DzrnOvM6/z4DOv865zrXOr8+EzrUgz4TOt869IM+Az4HOv861z4DOuc67zrXOs868zq3Ovc63IM+Gz4zPgc68zrEsIM6xz4DOu86sIM6xzr3PhM65zrrOsc+EzrHPg8+Ezq7Pg8+EzrUgzrHPhc+Ez4wgz4TOvyDPgM+Bz4zPhM+Fz4DOvyDOvM61IM+Ezr8gIs6gz4HOv866zrHOuM6/z4HOuc+DzrzOrc69zr8iIM+Hz4HOt8+DzrnOvM6/z4DOv865z47Ovc+EzrHPgiDPhM6/IM6xzr3Osc+Az4TPhc+Dz4PPjM68zrXOvc6/IM68zrXOvc6/z40gKHB1bGxkb3duKSDPgM6xz4HOsc+AzqzOvc+JLic7CiRsYW5nWydhZG1pbmRlc2MnXSA9ICfOoM+Bzr/Pg864zq7Ous63LCDOtc+AzrXOvs61z4HOs86xz4POr86xIM66zrHOuSDOtM65zrHPh861zq/Pgc65z4POtyDPhM+Jzr0gzrTOuc6xzrTPgc6xz4PPhM65zrrPjs69IM6mzr/Pgc68z47OvSc7CiRsYW5nWydvcGVyYXRvcnNfaGVscCddID0gJ86VzqzOvSDPh8+BzrfPg865zrzOv8+Azr/Ouc61zq/PhM61IM+Ezr8gzrHOvs65zr/Ou8+MzrPOt8+DzrcgzrHOu8+GzrHPgc65zrjOvM63z4TOuc66zr/PjSAoU3RyaW5nKSAsIM63IM68z4zOvc63IM67zrXOuc+Ezr/Phc+BzrPOr86xIM+Azr/PhSDOtM65zrHPhM6vzrjOtc+EzrHOuSDOtc6vzr3Osc65IM63IM6xzrvOu863zrvOv8+Fz4fOr86xICgrKSwgzrXOvc+OIM6xzr0gz4fPgc63z4POuc68zr/PgM6/zrnOrs+DzrXPhM61IM6xz4HOuc64zrzOt8+EzrnOus6uIChOdW1lcmljKSDOsc6+zrnOv867z4zOs863z4POtyDOrc+HzrXPhM61IM+EzrnPgiDOss6xz4POuc66zq3PgiAsIM6xz4DOu86sIM68zrHOuM63zrzOsc+EzrnOus6sICgsICssIC0sICosIC8sKS4nOwokbGFuZ1snaGVscF9tb2R1bGVfaW50ZXJmYWNlJ10gPSAnzqfPgc63z4POuc68zr/PgM6/zq/Ot8+Dzrcgz4TOt8+CIM60zrnOtc+AzrHPhs6uz4Igz4TOv8+FIE1vZHVsZSc7CiRsYW5nWydoZWxwX21vZHVsZV9pbnRlcmZhY2VfbG9uZyddID0gJzxiPs6kzr8gz4DOtc60zq/OvyDOsc+Fz4TPjCDPh8+BzrfPg865zrzOv8+Azr/Ouc61zq/PhM6xzrkgz4nPgiDPgM+NzrvOtyDOtc65z4PPjM60zr/PhSDOs865zrEgzqzOu867zrEgbW9kdWxlcyE8L2I+DQpVc2UgaXQgYnkgY3JlYXRpbmcgeW91ciBmb3JtIGVsZW1lbnRzIGluIHRoZSB0ZW1wbGF0ZXMgb2YgdGhlIG90aGVyIG1vZHVsZShzKSB5b3Ugd2lzaCB0byBpbmNvcnBvcmF0ZSwgYW5kIHVzaW5nIHRoZSA8c3Ryb25nPnskRkJpZH08L3N0cm9uZz4gdG8gdGllIGl0IGJhY2sgdG8gRm9ybUJ1aWxkZXIuIEZvciBleGFtcGxlLCB0byBpbmNsdWRlIGZvcm0gb3B0aW9ucyBiYXNlZCBvbiB0aGUgUHJvZHVjdHMgbW9kdWxlLCBjcmVhdGUgdGhlIGZvbGxvd2luZyB0ZW1wbGF0ZSBpbiBQcm9kdWN0czo8YnIvPg0KPHByZT4NCntmb3JlYWNoIGZyb209JGl0ZW1zIGl0ZW09ZW50cnl9DQoJe2Fzc2lnbiB2YXI9TURhdGEgdmFsdWU9XCdcJ30NCgl7YXNzaWduIHZhcj1DZCB2YWx1ZT1cJ1wnfQ0KCQl7Zm9yZWFjaCBmcm9tPSRGQnZhbHVlIGl0ZW09TURhdGF9DQoJCQl7YXNzaWduIHZhcj1NRGF0YSB2YWx1ZT1cJzo6XCd8ZXhwbG9kZTokTURhdGF9DQoJCQl7aWYgJE1EYXRhWzFdPT0kZW50cnktPmlkfQ0KCQkJCXthc3NpZ24gdmFyPUNkIHZhbHVlPVwnIGNoZWNrZWQ9ImNoZWNrZWQiXCd9DQoJCQl7L2lmfQ0KCQl7L2ZvcmVhY2h9DQoJPGRpdiBjbGFzcz0iUHJvZHVjdERpcmVjdG9yeUl0ZW0iPg0KCQk8aW5wdXQgdHlwZT0iY2hlY2tib3giIHZhbHVlPSJ7JGVudHJ5LT5wcmljZX06OnskZW50cnktPmlkfSIgbmFtZT0ieyRGQmlkfVtdIiB7JENkfSAvPnskZW50cnktPnByb2R1Y3RfbmFtZX0gKHskZW50cnktPndlaWdodH17JHdlaWdodF91bml0c30pIMKjeyRlbnRyeS0+cHJpY2V9ICAgIA0KCTwvZGl2Pg0Key9mb3JlYWNofQ0KPC9wcmU+DQo8YnIvPg0Kd2hlcmUgaW4gdGhlIGlucHV0IGJlbG93IHlvdSBwdXQgc29tZXRoaW5nIGxpa2UgPHN0cm9uZz57UHJvZHVjdHMgY2F0ZWdvcnk9ImNhdCIgc3VtbWFyeXRlbXBsYXRlPSJZb3VyX0ZCX3RlbXBsYXRlIn08L3N0cm9uZz4nOwokbGFuZ1sndGl0bGVfYWRkX3RhZyddID0gJ86gz4HOv8+DzrjOrs66zrcgzrXPhM65zrrOrc+EzrHPgiDPg86xz4InOwokbGFuZ1snZGF0ZV9qYW51YXJ5J10gPSAnzpnOsc69zr/Phc6sz4HOuc6/z4InOwokbGFuZ1snZGF0ZV9mZWJydWFyeSddID0gJ86mzrXOss+Bzr/Phc6sz4HOuc6/z4InOwokbGFuZ1snZGF0ZV9tYXJjaCddID0gJ86czqzPgc+EzrnOv8+CJzsKJGxhbmdbJ2RhdGVfYXByaWwnXSA9ICfOkc+Az4HOr867zrnOv8+CJzsKJGxhbmdbJ2RhdGVfbWF5J10gPSAnzpzOrM65zr/Pgic7CiRsYW5nWydkYXRlX2p1bmUnXSA9ICfOmc6/z43Ovc65zr/Pgic7CiRsYW5nWydkYXRlX2p1bHknXSA9ICfOmc6/z43Ou865zr/Pgic7CiRsYW5nWydkYXRlX2F1Z3VzdCddID0gJ86Rz43Os86/z4XPg8+Ezr/Pgic7CiRsYW5nWydkYXRlX3NlcHRlbWJlciddID0gJ86jzrXPgM+Ezq3OvM6yz4HOuc6/z4InOwokbGFuZ1snZGF0ZV9vY3RvYmVyJ10gPSAnzp/Ous+Ez47Oss+BzrnOv8+CJzsKJGxhbmdbJ2RhdGVfbm92ZW1iZXInXSA9ICfOnc6/zq3OvM6yz4HOuc6/z4InOwokbGFuZ1snZGF0ZV9kZWNlbWJlciddID0gJ86UzrXOus6tzrzOss+BzrnOv8+CJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3InXSA9ICfOo8+FzrPOs869z47OvM63ISDOpc+Azq7Pgc6+zrUgzq3Ovc6xIM67zqzOuM6/z4Igz4PPhM63zr0gz4XPgM6/zrLOv867zq4gz4TOt8+CIM+Gz4zPgc68zrHPgiDPg86xz4IuJzsKJGxhbmdbJ3N1Ym1pdF9lcnJvciddID0gJ0Zvcm1CdWlsZGVyIM67zqzOuM6/z4IgzrHPgM6/z4PPhM6/zrvOrs+COiAlcyc7CiRsYW5nWyd1cGxvYWRzX2Vycm9yJ10gPSAnzqPPhs6szrvOvM6xIM6xz4DOv8+Dz4TOv867zq7PgiDOsc+Bz4fOtc6vzr/PhSDPg8+Ezr8gdXBsb2FkcyBtb2R1bGU6ICVzJzsKJGxhbmdbJ25vdXBsb2Fkc19lcnJvciddID0gJ86UzrXOvSDOss+Bzq/Pg866z4kgz4TOvyB1cGxvYWRzIG1vZHVsZSc7CiRsYW5nWyd1cGxvYWRfYXR0YWNoX2Vycm9yJ10gPSAnzqPPhs6szrvOvM6xIM6czrXPhM6xz4bPjM+Bz4TPic+DzrfPgi/Oo8+Fzr3Ot868zrzOrc69zr/PhSDOsc+Bz4fOtc6vzr/PhSDOs865zrEgJXMgKHRtcF9uYW1lOiVzLCDPhM6/z4Ugz4TPjc+Azr/PhSAlcyknOwokbGFuZ1snc3VibWlzc2lvbl9lcnJvcl9maWxlX2xvY2snXSA9ICfOo8+GzqzOu868zrEuICDOlM61zr0gzrzPgM6/z4HPjiDOvc6xIM66zrvOtc65zrTPjs+Dz4kgz4TOvyDOsc+Bz4fOtc6vzr8uJzsKJGxhbmdbJ3VuY2hlY2tlZF9ieV9kZWZhdWx0J10gPSAnzqDPgc6/zrXPgM65zrvOv86zzq46IM6xz4DOtc+AzrnOu861zrPOvM6tzr3Ovyc7CiRsYW5nWydjaGVja2VkX2J5X2RlZmF1bHQnXSA9ICfOoM+Bzr/Otc+AzrnOu86/zrPOrjogzrXPgM65zrvOtc6zzrzOrc69zr8nOwokbGFuZ1snZW1haWxfZGVmYXVsdF90ZW1wbGF0ZSddID0gJ0Zvcm1CdWlsZGVyIM6lz4DOv86yzr/Ou86uJzsKJGxhbmdbJ2VtYWlsX3RlbXBsYXRlX25vdF9zZXQnXSA9ICc8YnIvPs6UzrXOvSDOrc+HzrXOuSDPgc+FzrjOvM65z4PPhM61zq8gz4DPgc+Mz4TPhc+Azr8gzrPOuc6xIEVtYWlsIM6xzrrPjM68zrEhJzsKJGxhbmdbJ21pc3NpbmdfY21zX21haWxlciddID0gJ0Zvcm1CdWlsZGVyOiDOlM6tzr0gzrLPgc6vz4POus+JIM+Ezr8gbW9kdWxlIENNU01haWxlciEnOwokbGFuZ1sndXNlcl9hcHByb3ZlZF9zdWJtaXNzaW9uJ10gPSAnzp8gz4fPgc6uz4PPhM63z4IgzrXOvc6tzrrPgc65zr3OtSDPhM63zr0gz4XPgM6/zrLOv867zq4gJXMgzrHPgM+MICVzJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXSA9ICfOk861zrPOv869z4zPgiDPgM6/z4UgzrXOvc61z4HOs86/z4DOv865zrXOr8+EzrHOuSDPjM+EzrHOvSDOvM65zrEgz4bPjM+BzrzOsSDPhM6/z4UgRm9ybUJ1aWxkZXIgzrHPgM6/z4PPhM6tzrvOvc61z4TOsc65JzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddID0gJ86TzrXOs86/zr3PjM+CIM+Azr/PhSDOtc69zrXPgc6zzr/PgM6/zrnOtc6vz4TOsc65IM+Mz4TOsc69IM+Fz4DOrM+Bzr7Otc65IM67zqzOuM6/z4IgzrrOsc+Ezqwgz4TOt869IM6xz4DOv8+Dz4TOv867zq4gz4bPjM+BzrzOsc+CIM+Ezr/PhSBGb3JtQnVpbGRlcic7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtRGlzcGxheSddID0gJ86TzrXOs86/zr3PjM+CIM+Azr/PhSDOtc69zrXPgc6zzr/PgM6/zrnOtc6vz4TOsc65IM+Mz4TOsc69IM+Mz4TOsc69IM68zrnOsSDPhs+Mz4HOvM6xIM+Ezr/PhSBGb3JtQnVpbGRlciDOtc68z4bOsc69zq/Ots61z4TOsc65JzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXSA9ICc8cD7Ok861zrPOv869z4zPgiDPgM6/z4UgzrXOvc61z4HOs86/z4DOv865zrXOr8+EzrHOuSDPjM+EzrHOvSDOvM65zrEgz4bPjM+BzrzOsSDPhM6/z4UgRm9ybUJ1aWxkZXIgzrHPgM6/z4PPhM6tzrvOvc61z4TOsc65LjwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBUaGUgZm9ybSBuYW1lIChzdHJpbmcpPC9saT4NCjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gVGhlIGludGVybmFsIGZvcm0gaWQgKGludCk8L2xpPg0KPGxpPjxlbT52YWx1ZV88bmFtZT48L2VtPiAtIFN1cHBseSBhIGRlZmF1bHQgdmFsdWUgdG8gYSBmaWVsZCB3aXRoIHRoZSBzcGVjaWZpZWQgbmFtZS48L2xpPg0KPC91bD4gJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddID0gJzxwPs6TzrXOs86/zr3PjM+CIM+Azr/PhSDOtc69zrXPgc6zzr/PgM6/zrnOtc6vz4TOsc65IM+Mz4TOsc69IM+Fz4DOrM+Bzr7Otc65IM67zqzOuM6/z4IgzrrOsc+Ezqwgz4TOt869IM6xz4DOv8+Dz4TOv867zq4gz4bPjM+BzrzOsc+CIM+Ezr/PhSBGb3JtQnVpbGRlcjwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBUaGUgZm9ybSBuYW1lIChzdHJpbmcpPC9saT4NCjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gVGhlIGludGVybmFsIGZvcm0gaWQgKGludCk8L2xpPg0KPGxpPjxlbT5lcnJvcjwvZW0+IC0gQSBsaXN0IG9mIGFsbCBrbm93biBlcnJvcnMgKHN0cmluZyk8L2xpPg0KPC91bD4gJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1EaXNwbGF5J10gPSAnPHA+zpPOtc6zzr/Ovc+Mz4Igz4DOv8+FIM61zr3Otc+BzrPOv8+Azr/Ouc61zq/PhM6xzrkgz4zPhM6xzr0gz4zPhM6xzr0gzrzOuc6xIM+Gz4zPgc68zrEgz4TOv8+FIEZvcm1CdWlsZGVyIM61zrzPhs6xzr3Or862zrXPhM6xzrk8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gVGhlIGZvcm0gbmFtZSAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4NCjwvdWw+ICc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfcmVzcG9uc2VfaWQnXSA9ICdJRCDOsc+AzqzOvc+EzrfPg863z4IuIM6nz4HOt8+DzrnOvM6/z4DOv865zrXOr8+EzrHOuSDOsc+Az4wgRm9ybUJyb3dzZXInOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX3Bhc3NlZF9mcm9tX3RhZyddID0gJ86gz4HOv866zrHOuM6/z4HOuc+DzrzOrc69zrXPgiDPhM65zrzOrc+CIM+AzrXOtM6vz4nOvTsgIM6UzrXPgiDPhM63zr0gzrLOv86uzrjOtc65zrEgz4TOv8+FIG1vZHVsZSc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZmllbGRfaWQnXSA9ICdJRCDPgM61zrTOuc6/z4UgzrPOuc6xIM61z4PPic+EzrXPgc65zrrOrc+CIM60zrnOtc+BzrPOsc+Dzq/Otc+CJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19mb3JtX25hbWUnXSA9ICfOjM69zr/OvM6xIM+Gz4zPgc68zrHPgic7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZm9ybV9pZCddID0gJ0lEIM+Gz4zPgc68zrHPgiDOs865zrEgzrXPg8+Jz4TOtc+BzrnOus6tz4IgzrTOuc61z4HOs86xz4POr861z4InOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2dlbmVyYWwnXSA9ICfOk861zr3Ouc66zq3PgiDPgM6xz4HOrM68zrXPhM+Bzr/OuSDOs865zrEgzrXPg8+Jz4TOtc+BzrnOus6tz4IgzrTOuc61z4HOs86xz4POr861z4IuJzsKJGxhbmdbJ3RlbXBsYXRlX3ZhcmlhYmxlX2hlbHAnXSA9ICc8aDM+zpzOtc+EzrHOss67zrfPhM6tz4IgzrPOuc6xIM6gz4HPjM+Ez4XPgM6/IM6mz4zPgc68zrHPgjwvaDM+DQo8cD5Zb3UgY2FuIGVkaXQgaXQgdG8gbWFrZSB5b3VyIGZvcm0gbGF5b3V0IGxvb2sgYW55IHdheSB5b3VcJ2QgbGlrZS4NCiAgIFRvIG1ha2UgdGhlIGZvcm0gd29yaywgeW91XCdsbCBuZWVkIHRvIGFsd2F5cyBpbmNsdWRlIHRoZSB7JGZiX2hpZGRlbn0gYW5kIHskc3VibWl0fQ0KICAgdGFncy48L3A+DQoNCjxwPllvdSBjYW4gYWNjZXNzIHlvdXIgZm9ybSBmaWVsZHMgZWl0aGVyIHVzaW5nIHRoZSAkZmllbGRzIGFycmF5IG9yIGJ5IGRpcmVjdGx5IGFjY2Vzc2luZyBmaWVsZHMgYnkgdGhlaXIgbmFtZXMgKGUuZy4sIHskbXlmaWVsZC0+aW5wdXR9ICk8L3A+DQoNCg0KPHA+RWFjaCBmaWVsZCBoYXMgdGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzOjwvcD4NCjx0YWJsZT4NCjx0cj48dGg+RmllbGQ8L3RoPjx0aD5WYWx1ZTwvdGg+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmRpc3BsYXk8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBzaG91bGQgYmUgZGlzcGxheWVkLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPnJlcXVpcmVkPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgaXMgcmVxdWlyZWQsIDAgb3RoZXJ3aXNlPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+cmVxdWlyZWRfc3ltYm9sPC90ZD48dGQ+dGhlIHN5bWJvbCBmb3IgcmVxdWlyZWQgZmllbGRzPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+Y3NzX2NsYXNzPC90ZD48dGQ+dGhlIENTUyBjbGFzcyBzcGVjaWZpZWQgZm9yIHRoaXMgZmllbGQ8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT52YWxpZDwvdGQ+PHRkPjEgaWYgdGhpcyBmaWVsZCBoYXMgcGFzc2VkIHZhbGlkYXRpb24sIDAgb3RoZXJ3aXNlPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+ZXJyb3I8L3RkPjx0ZD5UZXh0IG9mIHRoZSB2YWxpZGF0aW9uIHByb2JsZW0sIGluIHRoZSBldmVudCB0aGF0IHRoaXMgZmllbGQgZGlkIG5vdCB2YWxpZGF0ZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmhpZGVfbmFtZTwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIG5hbWUgc2hvdWxkIGJlIGhpZGRlbiwgMCBvdGhlcndpc2U8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5oYXNfbGFiZWw8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCB0eXBlIGhhcyBhIGxhYmVsPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+bmVlZHNfZGl2PC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgbmVlZHMgdG8gYmUgd3JhcHBlZCBpbiBhIERJViAob3IgdGFibGUgcm93LCBpZiB0aGF0XCdzIHRoZSB3YXkgeW91IHN3aW5nKTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPm5hbWU8L3RkPjx0ZD50aGUgZmllbGRcJ3MgbmFtZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmhlbHB0ZXh0PC90ZD48dGQ+dGhlIGZpZWxkXCdzIGhlbHAgdGV4dDwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmlucHV0PC90ZD48dGQ+dGhlIGZpZWxkXCdzIGlucHV0IGNvbnRyb2wgKGUuZy4sIHRoZSBpbnB1dCBmaWVsZCBpdHNlbGYpPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+b3A8L3RkPjx0ZD5hIGNvbnRyb2wgYnV0dG9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgZmllbGQgaWYgYXBwbGljYWJsZSAoZS5nLiwgdGhlIGRlbGV0ZSBidXR0b24gZm9yIGV4cGFuZGFibGUgdGV4dCBpbnB1dCk8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5pbnB1dF9pZDwvdGQ+PHRkPnRoZSBJRCBvZiB0aGUgZmllbGRcJ3MgaW5wdXQgKHVzZWZ1bCBmb3IgbGFiZWwgZm9yPSJmb28iKTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmFsaWFzPC90ZD48dGQ+dGhlIGFsaWFzIHNwZWNpZmllZCBmb3IgdGhpcyBmaWVsZDwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmlkPC90ZD48dGQ+dGhlIGludGVybmFsIC8gb3BhcXVlIGlkIEZvcm1CdWlsZGVyIHVzZXMgZm9yIHRoaXMgZmllbGQ8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT50eXBlPC90ZD48dGQ+dGhlIGZpZWxkXCdzIGRhdGEgdHlwZTwvdGQ+PC90cj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQo8dHI+PHRkPmZpZWxkLT5tdWx0aXBsZV9wYXJ0czwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkLT5pbnB1dCBpcyBhY3R1YWxseSBhIGNvbGxlY3Rpb24gb2YgY29udHJvbHM8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5sYWJlbF9wYXJ0czwvdGQ+PHRkPjEgaWYgdGhlIGNvbGxlY3Rpb24gb2YgY29udHJvbHMgaGFzIHNlcGFyYXRlIGxhYmVscyBmb3IgZWFjaCBjb250cm9sPC90ZD48L3RyPg0KPC90YWJsZT4NCg0KPHA+SW4gdGhlIGNhc2Ugb2YgYSBtdWx0aXBhZ2UgZm9ybSwgeW91IHdpbGwgYWxzbyBoYXZlIGFjY2VzcyB0byB0aGUgdmFsdWUgb2YgcHJldmlvdXMgZmllbGRzLiBUaGV5DQphcmUgaW4gdGhlICRwcmV2aW91cyBhcnJheSwgb3IgYWNjZXNzaWJsZSBieSB0aGVpciBuYW1lcyAoZS5nLiwgeyRteWZpZWxkLT52YWx1ZX0gKS4NCllvdSBjYW4gdXNlIHRoaXMgaW4gU3RhdGljIFRleHQgZmllbGRzIGFzIHdlbGwsIHdoaWNoIGlzIGEgbmljZSB3YXkgdG8gcGVyc29uYWxpemUgZm9ybXMhPC9wPg0KDQo8cD5JbiBjZXJ0YWluIGNhc2VzLCBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYW4gYXJyYXkgb2Ygb2JqZWN0cyByYXRoZXIgdGhhbiBhbiBpbnB1dC4gVGhpcyBoYXBwZW5zLCBmb3IgZXhhbXBsZSwgaW4gQ2hlY2tCb3hHcm91cHMgb3IgUmFkaW9CdXR0b25Hcm91cHMuIEZvciB0aGVtLCB5b3UgY2FuIGl0ZXJhdGUgdGhyb3VnaCBmaWVsZC0+aW5wdXQtPm5hbWUgYW5kIGZpZWxkLT5pbnB1dC0+aW5wdXRzLjwvcD4NCiAgICANCjxwPkFkZGl0aW9uYWwgc21hcnR5IHZhcmlhYmxlcyB0aGF0IHlvdSBjYW4gdXNlIGluY2x1ZGU6PC9wPg0KPHRhYmxlPg0KPHRyPjx0aD5WYXJpYWJsZTwvdGg+PHRoPlZhbHVlPC90aD48L3RyPg0KPHRyPjx0ZD50b3RhbF9wYWdlczwvdGQ+PHRkPm51bWJlciBvZiBwYWdlcyBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+dGhpc19wYWdlPC90ZD48dGQ+bnVtYmVyIGZvIHRoZSBjdXJyZW50IHBhZ2UgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPnRpdGxlX3BhZ2VfeF9vZl95PC90ZD48dGQ+ZGlzcGxheXMgInBhZ2UgeCBvZiB5IiBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+Y3NzX2NsYXNzPC90ZD48dGQ+Q1NTIENsYXNzIGZvciB0aGUgZm9ybTwvdGQ+PC90cj4NCjx0cj48dGQ+Zm9ybV9uYW1lPC90ZD48dGQ+Rm9ybSBuYW1lPC90ZD48L3RyPg0KPHRyPjx0ZD5mb3JtX2lkPC90ZD48dGQ+Rm9ybSBkYXRhYmFzZSBJRDwvdGQ+PC90cj4NCjx0cj48dGQ+aW5fZm9ybWJyb3dzZXI8L3RkPjx0ZD4xIGlmIGZvcm0gaXMgYmVpbmcgdmlld2VkIGZyb20gRm9ybUJyb3dzZXI8L3RkPjwvdHI+DQo8dHI+PHRkPmluX2FkbWluPC90ZD48dGQ+MSBpZiBmb3JtIGlzIGJlaW5nIHZpZXdlZCB2aWEgRm9ybUJyb3dzZXIgYWRtaW48L3RkPjwvdHI+DQo8dHI+PHRkPmZicl9pZDwvdGQ+PHRkPlJlc3BvbnNlIElEIGlmIGZvcm0gaXMgYmVpbmcgdmlld2VkIGZyb20gRm9ybUJyb3dzZXI8L3RkPjwvdHI+DQo8dHI+PHRkPnByZXY8L3RkPjx0ZD4iQmFjayIgYnV0dG9uIGZvciBtdWx0aXBhcnQgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPnN1Ym1pdDwvdGQ+PHRkPiJDb250aW51ZSIgb3IgIlN1Ym1pdCIgYnV0dG9uIGZvciBtdWx0aXBhcnQgZm9ybXMsIGFkanVzdHMgYXV0b21hdGljYWxseTwvdGQ+PC90cj4NCjwvdGFibGU+DQo8cD5EdW5ubyB3aHkgeW91XCdkIHdhbnQgc29tZSBvZiB0aG9zZSwgYnV0IHRoZXJlIHlvdSBnby4uLjwvcD4NCic7CiRsYW5nWydwb3N0X2luc3RhbGwnXSA9ICfOnyDOlM63zrzOuc6/z4XPgc6zz4zPgiDPhs6/z4HOvM+Ozr0gKEZvcm1CdWlsZGVyKSDOtc6zzrrOsc+EzrHPg8+EzqzOuM63zrrOtS7OoM6xz4HOsc66zrHOu8+OIM+Dz4XOvM6yzr/Phc67zrXPhc+EzrXOr8+EzrUgz4TOt869IM6yzr/Ors64zrXOuc6xIM6zzrnOsSDPhM6/IG1vZHVsZS4nOwokbGFuZ1snaGVscCddID0gJzxoMz7OpM6vIM66zqzOvc61zrkgzrHPhc+Ez4w/PC9oMz4NCjxwPlRoZSBGb3JtIEJ1aWxkZXIgTW9kdWxlIGFsbG93cyB5b3UgdG8gY3JlYXRlIGZvcm1zIChpbiBmYWN0LCBpdFwncyBhIHJlcGxhY2VtZW50IG9mIHRoZSBvcmlnaW5hbCBGZWVkYmFjayBGb3JtIG1vZHVsZSksIHdpdGgNCnRoZSBhZGRlZCBwb3dlciBvZiBkYXRhYmFzZSBzdG9yYWdlLiBXaXRoIGl0cyBjb21wYW5pb24gbW9kdWxlIEZvcm0gQnJvd3NlciwgeW91IGNhbiB1c2UgaXQgdG8gY3JlYXRlIHNpbXBsZSBkYXRhYmFzZSBhcHBsaWNhdGlvbnMuPC9wPg0KPHA+VGhlIGZvcm1zIGNyZWF0ZWQgdXNpbmcgdGhlIEZvcm0gQnVpbGRlciBtYXkgYmUgaW5zZXJ0ZWQNCmludG8gdGVtcGxhdGVzIGFuZC9vciBjb250ZW50IHBhZ2VzLiBGb3JtcyBtYXkgY29udGFpbiBtYW55IGtpbmRzIG9mIGlucHV0cywgYW5kIG1heSBoYXZlDQp2YWxpZGF0aW9uIGFwcGxpZWQgdG8gdGhlc2UgaW5wdXRzLiBUaGUgcmVzdWx0cyBvZiB0aGVzZSBmb3JtcyBtYXkgYmUgaGFuZGxlZCBpbiBhIHZhcmlldHkgb2Ygd2F5cy48L3A+DQoNCjxoMz5Ib3cgRG8gSSBVc2UgaXQ/PC9oMz4NCjxQPkluc3RhbGwgaXQsIGFuZCBwb2tlIGFyb3VuZCB0aGUgbWVudXMuIFBsYXkgd2l0aCBpdC4gVHJ5IGNyZWF0aW5nIGZvcm1zLCBhbmQgYWRkaW5nIHRoZW0gdG8geW91ciBjb250ZW50Lg0KSWYgeW91IGdldCBzdHVjaywgY2hhdCB3aXRoIG1lIG9uIHRoZSAjY21zIElSQyBjaGFubmVsLCBwb3N0IHRvIHRoZSBmb3J1bSwgc2VuZCBtZSBlbWFpbCwgb3IsIGlmIHlvdVwncmUNCnJlYWxseSBkZXNwZXJhdGUsIHRyeSByZWFkaW5nIHRoZSBpbnN0cnVjdGlvbnMgb24gdGhlIHJlc3Qgb2YgdGhpcyBwYWdlLjwvUD4NCg0KPGgzPkhvdyBEbyBJIENyZWF0ZSBhIEZvcm08L2gzPg0KPHA+SW4gdGhlIENNUyBBZG1pbiBNZW51LCB5b3Ugc2hvdWxkIGdldCBhIG5ldyBtZW51IGl0ZW0gY2FsbGVkIEZvcm1CdWlsZGVyLiBDbGljayBvbiB0aGlzLiBPbiB0aGUgcGFnZQ0KdGhhdCBnZXRzIHNob3duLCB0aGVyZSBhcmUgb3B0aW9ucyAoYXQgdGhlIGJvdHRvbSBvZiB0aGUgbGlzdCBvZiBGb3JtcykgdG8gQWRkIGEgTmV3IEZvcm0gb3IgTW9kaWZ5DQpDb25maWd1cmF0aW9uLjwvcD4NCg0KPGgzPkFkZGluZyBhIEZvcm0gdG8gYSBQYWdlPC9oMz4NCjxwPkluIHRoZSBtYWluIEZvcm1CdWlsZGVyIGFkbWluIHBhZ2UsIHlvdSBjYW4gc2VlIGFuIGV4YW1wbGUgb2YgdGhlIHRhZyB1c2VkIHRvIGRpc3BsYXkgZWFjaCBmb3JtLiBJdCBsb29rcw0Kc29tZXRoaW5nIGxpa2Uge0Zvcm1CdWlsZGVyIGZvcm09XCdzYW1wbGVfZm9ybVwnfTwvcD4NCjxwPkJ5IGNvcHlpbmcgdGhpcyB0YWcgaW50byB0aGUgY29udGVudCBvZiBhIHBhZ2UsIG9yIGludG8gYSB0ZW1wbGF0ZSwgd2lsbCBjYXVzZSB0aGF0IGZvcm0gdG8gYmUgZGlzcGxheWVkLg0KSW4gdGhlb3J5LCB5b3UgY2FuIGhhdmUgbXVsdGlwbGUgZm9ybXMgb24gYSBwYWdlIGlmIHlvdSByZWFsbHkgd2FudCB0by4gQmUgY2FyZWZ1bCB3aGVuIHBhc3RpbmcgdGhlIHRhZw0KaW50byBhIHBhZ2VcJ3MgY29udGVudCBpZiB5b3UgdXNlIGEgV1lTSVdZRyBlZGl0b3Igc3VjaCBhcyBUaW55TUNFLCBGQ0tFZGl0LCBvciBIVE1MQXJlYS4gVGhlc2UgZWRpdG9ycyBtYXkgc3RlYWx0aGlseQ0KY2hhbmdlIHRoZSBxdW90ZSBtYXJrcyAoIikgaW50byBIVE1MIGVudGl0aWVzICgiKSwgYW5kIHRoZSBmb3JtcyB3aWxsIG5vdCBzaG93IHVwLiBUcnkgdXNpbmcNCnNpbmdsZSBxdW90ZXMgKFwnKSBvciBlZGl0aW5nIHRoZSBIVE1MIGRpcmVjdGx5LjwvcD4NCg0KPGgzPldvcmtpbmcgd2l0aCBGb3JtczwvaDM+DQo8cD5CeSBjbGlja2luZyBvbiBhIEZvcm1cJ3MgbmFtZSwgeW91IGVudGVyIHRoZSBGb3JtIEVkaXQgcGFnZS4gVGhlcmUgYXJlIHNldmVyYWwgdGFicywgd2hpY2ggYXJlIGRlc2NyaWJlZCBiZWxvdzo8L3A+DQo8aDQ+TWFpbjwvaDQ+DQo8cD5UaGlzIGlzIHRoZSBtYWluIHBsYWNlIHlvdVwnbGwgd29yayBvbiB5b3VyIGZvcm0uIEhlcmUsIHlvdSBnaXZlIGl0IGEgbmFtZSwgYW4gYWxpYXMgKHdoaWNoIGlzIHVzZWQgdG8gaWRlbnRpZnkgaXQgZm9yIHBsYWNpbmcgaXQgaW4gYSBwYWdlIG9yIHRlbXBsYXRlKSwgYW5kLCBvcHRpb25hbGx5LCBhIENTUyBjbGFzcyB3aXRoIHdoaWNoIHRvIHdyYXAgdGhlIHdob2xlIHRoaW5nLjwvcD4NCjxwPkJlbG93IHRoaXMsIGlmIHlvdSBoYXZlIGl0IGVuYWJsZWQsIGlzIHRoZSAiZmFzdCBmaWVsZCBhZGRlciIgcHVsbGRvd24sIHRoYXQgbGV0cyB5b3UgcXVpY2tseSBhZGQgYSBmaWVsZCB0byB0aGUgZW5kIG9mIHlvdXIgZm9ybSBieSBzZWxlY3RpbmcgdGhlIGZpZWxkIHR5cGUuPC9wPg0KPHA+QmVsb3cgdGhpcyBpcyB0aGUgbGlzdCBvZiBmaWVsZHMgdGhhdCBtYWtlIHVwIHlvdXIgZm9ybS4gTW9yZSBkZXRhaWwgb24gdGhpcyBpcyBkZXNjcmliZWQgYmVsb3cuPC9wPg0KPGg0PkZvcm0gU3VibWlzc2lvbjwvaDQ+DQo8cD5XaGVuIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZCwgeW91IGNhbiBlaXRoZXIgcmVkaXJlY3QgdGhlIHVzZXIgdG8gYW5vdGhlciBwYWdlIG9mIHlvdXIgc2l0ZSwgb3IgeW91IGNhbiBwcmVzZW50IHRoZSB1c2VyIHNvbWUgbWVzc2FnZSAod2hpY2ggY2FuIGNvbnRhaW4gYW55IG9mIHRoZSB1c2VyXCdzIGZvcm0gZW50cmllcywgb3IganVzdCBzdGF0aWMgdGV4dCkuIEluIHRoaXMgdGFiLCB5b3Ugc2VsZWN0IHdoaWNoIG9mIHRoZXNlIGFwcHJvYWNoZXMgeW91IHdpc2ggdG8gdXNlLCBhbmQsIGlmIHlvdSBjaG9zZSByZWRpcmVjdGlvbiwgaXQgYWxsb3dzIHlvdSB0byBwaWNrIHRoZSBwYWdlIHRvIHJlZGlyZWN0IHVzZXJzIHRvIGFmdGVyIGEgc3VjY2Vzc2Z1bCBmb3JtIHN1Ym1pc3Npb24uPC9wPg0KPHA+QWxzbyBvbiB0aGlzIHBhZ2UsIHlvdSBjYW4gc3BlY2lmeSB0aGUgbGFiZWxzIG9mIHZhcmlvdXMgc3VibWlzc2lvbiBidXR0b25zICgiUHJldmlvdXMiLCAibmV4dCIsICJzdWJtaXQiKS4gWW91IGNhbiBhbHNvIG9wdCB0byBoYXZlIHNvbWUgSmF2YXNjcmlwdCBhZGRlZCB0byB0aGUgbGFzdCBwYWdlIG9mIGEgZm9ybSB0aGF0IHdpbGwgcHJldmVudCBtdWx0aXBsZSBzdWJtaXNzaW9ucyAodXNlZnVsIG9uIHNsb3cgc2VydmVycykuPC9wPg0KPGg0PkZvcm0gRGlzcGxheSBPcHRpb25zPC9oND4NCjxwPlRoaXMgdGFiIGFsbG93cyBmb3Igb3RoZXIgZm9ybSBjdXN0b21pemF0aW9ucywgbGlrZSB0aGUgc3ltYm9sIHRvIHNob3cgZm9yIHJlcXVpcmVkIGZpZWxkcy48L3A+DQo8aDQ+Q2FwdGNoYSBTZXR0aW5nczwvaDQ+DQo8cD5JZiB5b3UgaGF2ZSBpbnN0YWxsZWQgdGhlIENhcHRjaGEgbW9kdWxlLCB0aGlzIHRhYiBsZXRzIHlvdSBjb25maWd1cmUgdGhlIENhcHRjaGEgc2V0dGluZ3MgZm9yIHlvdXIgZm9ybS48L3A+DQo8aDQ+Rm9ybSBUZW1wbGF0ZTwvaDQ+DQo8cD5UaGlzIGlzIHdoZXJlIHlvdSBkbyB5b3VyIGN1c3RvbWl6YXRpb24gd29yayBvZiB5b3VyIGZvcm1cJ3MgU21hcnR5IFRlbXBsYXRlLiBTZWUgdGhlIHNlY3Rpb24gY2FsbGVkIEZvcm0gVGVtcGxhdGUgVmFyaWFibGVzIGJlbG93LjwvcD4NCjxwPlRoZSBmb3JtIHNob3VsZCBkZWZhdWx0IHRvIGEgQ3VzdG9tIHRlbXBsYXRlIHRoYXQgZG9jdW1lbnRzIHRoZSBTbWFydHkgdGFncyBhdmFpbGFibGUgdG8geW91LjwvcD4NCjxwPlVubGVzcyB5b3VcJ3JlIGEgU21hcnR5IGV4cGVydCwgeW91IHByb2JhYmx5IGRvblwndCB3YW50IHRvIG1lc3MgYXJvdW5kIHdpdGggdGhpcy4gSWYgeW91IGFyZSBhIFNtYXJ0eSBleHBlcnQsIHRoaXMgaXMgd2hlcmUgeW91IGNhbiB1bmxlYXNoIHlvdXIgbWFnaWMuPC9wPg0KPGg0PlN1Ym1pc3Npb24gVGVtcGxhdGU8L2g0Pg0KPHA+SWYsIGluIHRoZSBGb3JtIFN1Ym1pc3Npb24gdGFiLCB5b3Ugc2VsZWN0ZWQgXCdEaXNwbGF5ICJTdWJtaXNzaW9uIFRlbXBsYXRlIiwgdGhpcyBpcyB3aGVyZSB5b3UgY2FuIGNyZWF0ZSB0aGF0IHRlbXBsYXRlLiBUaGVyZSBpcyBhIGRpc3BsYXkgb2Ygd2hpY2ggc21hcnR5IHZhcmlhYmxlcyBhcmUgYXZhaWxhYmxlIHRvIHlvdSwgYW5kIGEgYnV0dG9uIHRvIGdlbmVyYXRlIGEgc2FtcGxlIHRlbXBsYXRlLjwvcD4NCjxwPklmIHlvdVwncmUgYSBTbWFydHkgZXhwZXJ0LCB5b3UgY2FuIGRvIGFsbCBtYW5uZXIgb2YgY3JlYXRpdmUgYW5kIHBvd2VyZnVsIHRoaW5ncyBoZXJlLiBJZiB5b3VcJ3JlIG5vdCBhIFNtYXJ0eSBleHBlcnQsIHlvdSBtaWdodCBqdXN0IHdhbnQgdG8gdXNlIHRoZSBkZWZhdWx0Lg0KPC9wPg0KDQo8aDM+QWRkaW5nIEZpZWxkcyB0byB5b3VyIEZvcm08L2gzPg0KPHA+VGhlIHR5cGVzIG9mIGZpZWxkcyB0aGF0IGFyZSBjdXJyZW50bHkgc3VwcG9ydGVkIGZpdCBpbnRvIGZvdXIgZ3JvdXBzOiBzdGFuZGFyZCBpbnB1dCBmaWVsZHMsIGRpc3BsYXkgY29udHJvbCBmaWVsZHMsIGVtYWlsLXNwZWNpZmljIGZpZWxkcywgYW5kIGZvcm0gcmVzdWx0IGhhbmRsaW5nIGZpZWxkcyAoYWxzbyBjYWxsZWQgRm9ybSBEaXNwb3NpdGlvbnMgaW4gcGxhY2VzKTo8L3A+DQo8dWw+DQo8bGk+U3RhbmRhcmQgSW5wdXQgRmllbGRzIC0gdGhlc2UgYXJlIGlucHV0cyB0aGF0IGFsbG93IGVudHJ5IG9mIHR5cGljYWwgZm9ybSBlbGVtZW50czsgdGV4dCBpbnB1dHMsIHJhZGlvIGJ1dHRvbnMsIGV0Yy48L2xpPg0KPGxpPkRpc3BsYXkgQ29udHJvbCBGaWVsZHMgLSB0aGVzZSBpbnB1dCBjb250cm9sIGhvdyB0aGUgdXNlciB3aWxsIHNlZSB0aGUgZGlzcGxheSBvZiB0aGUgZm9ybTsgcGFnZSBicmVha3MsIHN0YXRpYyB0ZXh0LCBldGMuPC9saT4NCjxsaT5FbWFpbC1zcGVjaWZpYyBGaWVsZHMgLSBzb21lIGZvcm1zIGdlbmVyYXRlIGVtYWlsLCBhbmQgZW1haWwtc3BlY2lmaWMgZmllbGRzIGNhbiBhbHRlciBhdHRyaWJ1dGVzIG9mIHRoZSBlbWFpbHMgc2VudC48L2xpPg0KPGxpPkZvcm0gRGlzcG9zaXRpb25zIC0gVGhlc2UgZGV0ZXJtaW5lIHdoYXQgaGFwcGVucyB3aGVuIHRoZSB1c2VyDQpzdWJtaXRzIHRoZSBmb3JtOyBmb3IgZWFjaCByZXN1bHQgaGFuZGxpbmcgZmllbGQsIHNvbWUgbWV0aG9kIG9mIHRyYW5zbWl0dGluZywgc2F2aW5nLCBvciBlbWFpbGluZyB0aGUNCmZvcm0gY29udGVudHMgdGFrZXMgcGxhY2UuIEEgZm9ybSBtYXkgaGF2ZSBtdWx0aXBsZSBmb3JtIGRpc3Bvc2l0aW9ucy48L2xpPg0KPC91bD4NCjxwPkZvcm0gZmllbGRzIGFyZSBhc3NpZ25lZCBuYW1lcy4gVGhlc2UgbmFtZXMgaWRlbnRpZnkgdGhlIGZpZWxkLCBub3Qgb25seSBvbiB0aGUgc2NyZWVuIGFzIGxhYmVscyBmb3IgdGhlIHVzZXIsDQpidXQgaW4gdGhlIGRhdGEgd2hlbiBpdFwncyBzdWJtaXR0ZWQgc28geW91IGtub3cgd2hhdCB0aGUgdXNlciBpcyByZXNwb25kaW5nIHRvLiBQaHJhc2luZyB0aGUgbmFtZSBsaWtlIGEgcXVlc3Rpb24NCmlzIGEgaGFuZHkgd2F5IG9mIG1ha2luZyBpdCBjbGVhciB0byB0aGUgdXNlciB3aGF0IGlzIGV4cGVjdGVkLiBTaW1pbGFybHksIG1hbnkgZmllbGRzIGhhdmUgYm90aCBOYW1lcyBhbmQgVmFsdWVzLg0KVGhlIE5hbWVzIGFyZSB3aGF0IGdldHMgc2hvd24gdG8gdGhlIHVzZXI7IHRoZSBWYWx1ZSBpcyB3aGF0IGdldHMgc2F2ZWQgb3IgdHJhbnNtaXR0ZWQgd2hlbiB0aGUgdXNlciBzdWJtaXRzDQp0aGUgZm9ybS4gVGhlIFZhbHVlcyBhcmUgbmV2ZXIgc2VlbiBieSB0aGUgdXNlciwgbm9yIGFyZSB0aGV5IHZpc2libGUgaW4gdGhlIEhUTUwsIHNvIGl0XCdzIHNhZmUgdG8gdXNlIGZvcg0KZW1haWwgYWRkcmVzc2VzIGFuZCBzdWNoLjwvcD4NCjxwPlNvbWUgZmllbGRzIGNhbiBoYXZlIG11bHRpcGxlIHZhbHVlcywgb3IgbXVsdGlwbGUgbmFtZS92YWx1ZSBwYWlycy4gV2hlbiB5b3UgZmlyc3QgY3JlYXRlIHN1Y2ggYSBmaWVsZCwNCnRoZXJlIG1heSBub3QgYmUgc3VmZmljaWVudCBpbnB1dHMgZm9yIHlvdSB0byBzcGVjaWZ5IGFsbCB0aGUgdmFsdWVzIHlvdSB3YW50LiBUbyBnZXQgbW9yZSBzcGFjZSBmb3IgaW5wdXR0aW5nDQp0aGVzZSB2YWx1ZXMsIHVzZSB0aGUgYnV0dG9ucyBhdCB0aGUgYm90dG9tIG9mIHRoZSBwYWdlIGZvciBhZGRpbmcgb3B0aW9ucy48L3A+DQo8cD5GaWVsZHMgY2FuIGJlIGFzc2lnbmVkIHZhbGlkYXRpb24gcnVsZXMsIHdoaWNoIHZhcnkgYWNjb3JkaW5nIHRvIHRoZSB0eXBlIG9mIHRoZSBmaWVsZC4gVGhlc2UgcnVsZXMgaGVscA0KZW5zdXJlIHRoYXQgdGhlIHVzZXIgZW50ZXJzIHZhbGlkIGRhdGEuIFRoZXkgbWF5IGFsc28gYmUNCnNlcGFyYXRlbHkgbWFya2VkICJSZXF1aXJlZCIsIHdoaWNoIHdpbGwgZm9yY2UgdGhlIHVzZXIgdG8gZW50ZXIgYSByZXNwb25zZS48L3A+DQo8cD5GaWVsZHMgYWxzbyBtYXkgYmUgYXNzaWduZWQgYSBDU1MgY2xhc3MuIFRoaXMgc2ltcGx5IHdyYXBzIHRoZSBpbnB1dCBpbiBhIGRpdiB3aXRoIHRoYXQgY2xhc3MsIHNvIGFzIHRvIGFsbG93DQpjdXN0b21pemVkIGxheW91dHMuIFRvIHVzZSB0aGlzIGVmZmVjdGl2ZWx5LCB5b3UgbWF5IG5lZWQgdG8gInZpZXcgc291cmNlIiBvbiB0aGUgZ2VuZXJhdGVkIGZvcm0sIGFuZCB0aGVuDQp3cml0ZSB5b3VyIENTUy48L3A+DQo8dWw+DQo8bGk+U3RhbmRhcmQgSW5wdXRzDQo8dWw+PGxpPlRleHQgSW5wdXQuIFRoaXMgaXMgYSBzdGFuZGFyZCB0ZXh0IGZpZWxkLiBZb3UgY2FuIGxpbWl0IHRoZSBsZW5ndGgsIGFuZCBhcHBseSB2YXJpb3VzIHZhbGlkYXRpb24NCmZ1bmN0aW9ucyB0byB0aGUgZmllbGQuPC9saT4NCjxsaT5UZXh0IEFyZWEuIFRoaXMgaXMgYSBiaWcsIGZyZWUtZm9ybSB0ZXh0IGlucHV0IGZpZWxkLjwvbGk+DQo8bGk+Q2hlY2tib3guIFRoaXMgaXMgYSBzdGFuZGFyZCBjaGVjayBib3guPC9saT4NCjxsaT5CdXR0b24uIFRoaXMgZG9lbnNcJ3QgZG8gYW55dGhpbmcsIGJ1dCB5b3UgY2FuIGhvb2sgaXQgaW50byBzb21lIEphdmFzY3JpcHQuPC9saT4NCjxsaT5DaGVja2JveCBHcm91cC4gVGhpcyBpcyBhIGNvbGxlY3Rpb24gb2YgY2hlY2tib3hlcy4gVGhlIG9ubHkgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoaXMgaW5wdXQgYW5kIGENCmNvbGxlY3Rpb24gb2YgQ2hlY2tib3ggaW5wdXRzIGlzIHRoYXQgdGhleSBhcmUgcHJlc2VudGVkIGFzIGEgZ3JvdXAsIHdpdGggb25lIG5hbWUsIGFuZCBjYW4gaGF2ZSBhIHZhbGlkYXRpb24gZnVuY3Rpb24gcmVxdWlyaW5nIHRoYXQgeW91IGNoZWNrIG9uZSBvciBtb3JlIG9mIHRoZSBib3hlcyBpbiB0aGUgZ3JvdXAuPC9saT4NCjxsaT5SYWRpbyBHcm91cC4gVGhpcyBpcyBhIGNvbGxlY3Rpb24gb2YgcmFkaW8gYnV0dG9ucy4gT25seSBvbmUgb2YgdGhlIGdyb3VwIG1heSBiZSBzZWxlY3RlZCBieSB0aGUgdXNlci48L2xpPg0KPGxpPlB1bGxkb3duLiBUaGlzIGlzIGEgc3RhbmRhcmQgcHVsbGRvd24gbWVudS4gSXRcJ3MgcmVhbGx5IGNvbmNlcHR1YWxseSB0aGUgc2FtZSB0aGluZyBhcyBhIHJhZGlvIGJ1dHRvbg0KZ3JvdXAsIGJ1dCBpcyBiZXR0ZXIgd2hlbiB0aGVyZSBhcmUgYSBsYXJnZSBudW1iZXIgb2Ygb3B0aW9ucy48L2xpPg0KPGxpPk11bHRpc2VsZWN0LiBUaGlzIGlzIGEgbXVsdGktc2VsZWN0IGZpZWxkLiBJdFwncyByZWFsbHkgY29uY2VwdHVhbGx5IHRoZSBzYW1lIHRoaW5nIGFzIGEgY2hlY2tib3ggYnV0dG9uDQpncm91cCwgYnV0IGlzIGJldHRlciB3aGVuIHRoZXJlIGFyZSBhIGxhcmdlIG51bWJlciBvZiBvcHRpb25zLCBhcyB5b3UgY2FuIGxpbWl0IHRoZSBudW1iZXIgZGlzcGxheWVkIG9uIHRoZSBzY3JlZW4gYXQgYW55IG9uZSB0aW1lLjwvbGk+DQo8bGk+UGFzc3dvcmQuIFRoaXMgaXMgYW4gYXN0ZXJpc2tlZC1vdXQgdGV4dCBmaWVsZCwgdXNlZnVsIGZvciBwYXNzd29yZHMuPC9saT4NCjxsaT5QYXNzd29yZCBBZ2FpbiAodmVyaWZ5KS4gVGhpcyBpcyBhIGZpZWxkIHRoYXQgbXVzdCBtYXRjaCBhIFBhc3N3b3JkIGZpZWxkIGZvciBzdWJtaXNzaW9uDQp0byBzdWNjZWVkLjwvbGk+DQo8bGk+U3RhdGUuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBTdGF0ZXMgb2YgdGhlIFUuUy48L2xpPg0KPGxpPkNhbmFkaWFuIFByb3ZpbmNlLiBUaGlzIGlzIGEgcHVsbGRvd24gbGlzdGluZyB0aGUgQ2FuYWRpYW4gUHJvdmluY2VzIChDb250cmlidXRlZCBieSBOb2VsIE1jR3Jhbi4gVGhhbmtzISk8L2xpPg0KPGxpPkNvdW50cmllcy4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIENvdW50cmllcyBvZiB0aGUgd29ybGQgKGFzIG9mIEp1bHkgMjAwNSkuPC9saT4NCjxsaT5EYXRlIFBpY2tlci4gVGhpcyBpcyBhIHRyaXBsZSBwdWxsZG93biBhbGxvd2luZyB0aGUgdXNlciB0byBzZWxlY3QgYSBkYXRlLjwvbGk+DQo8bGk+VGltZSBQaWNrZXIuIFRoaXMgaXMgYSBzZXQgb2YgcHVsbGRvd25zIGFsbG93aW5nIHRoZSB1c2VyIHRvIHNlbGVjdCBhIHRpbWUgKHVzaW5nIDEyIG9yIDI0IGhvdXIgY2xvY2spLjwvbGk+DQo8bGk+RmlsZSBVcGxvYWQuIFRoaXMgaXMgYSBmaWxlIHVwbG9hZCBmaWVsZC48L2xpPg0KPGxpPkxpbmsgKFVzZXIgRW50ZXJlZCkuIFRoaXMgY3JlYXRlcyBhIGRvdWJsZSBpbnB1dCBmaWVsZCBmb3IgZ2V0dGluZyBhIGxpbmsgVVJMIGFuZCBsaW5rIHRpdGxlLjwvbGk+DQo8bGk+VGV4dCBGaWVsZCAoTXVsdGlwbGUpLiBUaGlzIGZpZWxkIGNyZWF0ZXMgb25lIG9yIG1vcmUgdGV4dCBpbnB1dHMgd2l0aCBhZGQgYW5kIGRlbGV0ZSBidXR0b25zLCBlZmZlY3RpdmVseSBnaXZpbmcgdGhlIGVuZCB1c2VyIGEgd2F5IG9mIGNyZWF0aW5nIHZhcmlhYmxlLWxlbmd0aCBsaXN0cy48L2xpPg0KPC91bD48L2xpPg0KDQo8bGk+RW1haWwtc3BlY2lmaWMgSW5wdXRzDQo8dWw+PGxpPkVtYWlsICJGcm9tIEFkZHJlc3MiIEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIHRoZWlyIGVtYWlsIGFkZHJlc3MuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBhZGRyZXNzIGluIHRoZSAiRnJvbSIgZmllbGQuPC9saT4NCjxsaT5FbWFpbCAiRnJvbSBOYW1lIiBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSB0aGVpciBuYW1lLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgbmFtZSBpbiB0aGUgIkZyb20iIGZpZWxkLjwvbGk+DQo8bGk+RW1haWwgU3ViamVjdCBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSBhIHN1YmplY3QgZm9yIHRoZWlyIGVtYWlsLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgaW4gdGhlICJTdWJqZWN0IiBmaWVsZC4gVGhpcyBtYXkgY2F1c2UgdHJvdWJsZSB3aXRoIGNlcnRhaW4gZGlzcG9zaXRpb25zIHRoYXQgd2FudCB0byBjb250cm9sIHRoZSBFbWFpbCBTdWJqZWN0LCBzbyB1c2UgaXQgd2l0aCBjYXV0aW9uLjwvbGk+DQo8L3VsPjwvbGk+DQoNCjxsaT5EaXNwbGF5IENvbnRyb2wgRmllbGRzPHVsPg0KPGxpPi1QYWdlIEJyZWFrLiBUaGlzIGFsbG93cyB5b3UgdG8gc3BsaXQgeW91ciBmZWVkYmFjayBmb3JtIGludG8gbXVsdGlwbGUgcGFnZXMuIEVhY2ggcGFnZSBpcw0KaW5kZXBlbmRlbnRseSB2YWxpZGF0ZWQuIFRoaXMgaXMgZ29vZCBmb3IgYXBwbGljYXRpb25zIGxpa2Ugb25saW5lIHN1cnZleXMuPC9saT4NCjxsaT4tRmllbGRzZXQgU3RhcnQuIENvbWJpbmVkIHdpdGggRmllbGRzZXQgRW5kLCB0aGlzIGFsbG93cyB5b3UgdG8gZ3JvdXAgdmFyaW91cyBmaWVsZHMgd2l0aGluIHlvdXIgZm9ybS4gVXNlIHRoaXMgdG8gc3RhcnQgYSBnaXZlbiBncm91cGluZy48L2xpPg0KPGxpPi1GaWVsZHNldCBFbmQuIENvbWJpbmVkIHdpdGggRmllbGRzZXQgU3RhcnQsIHRoaXMgYWxsb3dzIHlvdSB0byBncm91cCB2YXJpb3VzIGZpZWxkcyB3aXRoaW4geW91ciBmb3JtLiBVc2UgdGhpcyB0byBlbmQgYSBnaXZlbiBncm91cGluZy48L2xpPg0KPGxpPi1IaWRkZW4gRmllbGQuIFRoaXMgYWxsb3dzIHlvdSB0byBlbWJlZCBhIGhpZGRlbiBmaWVsZCBpbiB5b3VyIGZvcm0uPC9saT4NCjxsaT4tU3RhdGljIFRleHQuIFRoaXMgYWxsb3dzIHlvdSB0byBwdXQgdGV4dCBvciBhIGxhYmVsIGluIHRoZSBtaWRkbGUgb2YgeW91ciBmb3JtLiBUaGlzIGlzIHVzZWZ1bCBmb3IgZ2l2aW5nIGFkZGl0aW9uYWwgaGVscCB0ZXh0LCBlc3BlY2lhbGx5IGlmIHlvdVwncmUgbm90IHVzaW5nIGEgQ3VzdG9tIFRlbXBsYXRlIHRvIHJlbmRlciB5b3VyIGZvcm0uPC9saT4NCjxsaT4tU3RhdGljIExpbmsuIFRoaXMgYWxsb3dzIHlvdSB0byBwdXQgYSBsaW5rIHRvIGEgZ2l2ZW4gcGFnZSBpbnRvIHlvdXIgZm9ybS4gT3B0aW9uYWxseSwgeW91IGNhbiBoYXZlIGl0IGF1dG9wb3B1bGF0ZSB3aXRoIHRoZSBwYWdlIHdoZXJlIHRoZSBmb3JtIGlzIGVtYmVkZGVkICh1c2VmdWwgaWYgeW91XCdyZSBzZW5kaW5nIHJlc3VsdHMgdmlhIGVtYWlsKS48L2xpPg0KPGxpPi1Db21wdXRlZCBGaWVsZC4gVGhpcyBhbGxvd3MgeW91IHRvIGVtYmVkIGEgY29tcHV0ZWQgZmllbGQgaW4geW91ciBmb3JtLiBJdCBpcyBub3QgdmlzaWJsZSB0byB0aGUgdXNlciB1bnRpbCBhZnRlciB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQuIEl0IGFsbG93cyB5b3UgdG8gZG8gc2ltcGxlIGFyaXRobWV0aWMgb3Igc3RyaW5nIGNvbmNhdGVuYXRpb24uPC9saT4NCjxsaT4tVW5pcXVlIEludGVnZXIgKFNlcmlhbCkuIFRoaXMgaXMgYW4gaW50ZWdlciB0aGF0IGluY3JlYXNlcyBldmVyeSB0aW1lIHNvbWVvbmUgaGl0cyB5b3VyIGZvcm0uIFlvdXIgcmVzdWx0cyBtYXkgbm90IGJlIHNlcXVlbnRpYWwsIGJ1dCB0aGV5IHdpbGwgaW5jcmVhc2UgbW9ub3RvbmljYWxseS48L2xpPg0KPGxpPi1Vc2VyIFRhZy4gVGhpcyBjYWxscyB0aGUgc3BlY2lmaWVkIFVzZXIgRGVmaW5lZCBUYWcsIGFuZCBkaXNwbGF5cyBhbnl0aGluZyBpdCByZXR1cm5zLiBUaGUgVURUIGdldHMgY2FsbGVkIGFueSB0aW1lIHRoZSBmaWVsZCB3b3VsZCBiZSB2aXNpYmxlLjwvbGk+DQo8L3VsPjwvbGk+DQo8bGk+LU1vZHVsZSBJbmNsdWRlIFRhZy4gVGhpcyBhbGxvd3MgeW91IHRvIGVtYmVkIG90aGVyIG1vZHVsZSBvdXRwdXQgaW50byB5b3VyIGZvcm0sIGUuZy4sIGEgbGlzdCBvZiBwcm9kdWN0cyBmcm9tIHRoZSBQcm9kdWN0cyBtb2R1bGUuPC9saT4NCg0KPGxpPkZvcm0gSGFuZGxpbmcgSW5wdXRzIChEaXNwb3NpdGlvbnMpDQo8dWw+PGxpPipDYWxsIGEgVXNlciBEZWZpbmVkIFRhZyBXaXRoIHRoZSBGb3JtIFJlc3VsdHMuIFRoaXMgc3VibWl0cyBhbGwgdGhlIGZvcm0gcmVzdWx0cyB0byB0aGUgVXNlci1EZWZpbmVkIFRhZyB5b3Ugc3BlY2lmeS4gVGhlIFVEVCBjYW4gaGFuZGxlIHRoZSByZXN1bHRzIGhvd2V2ZXIgaXQgd2FudHMuIFZhbHVlcyBhcmUgcGFzc2VkIGFzICRwYXJhbXNbXCdmaWVsZF9uYW1lXCddLCBhbmQgYXMgJHBhcmFtc1tcJ2ZpZWxkX2FsaWFzXCddIChpZiBkZWZpbmVkKS48L2xpPg0KPGxpPipFbWFpbCBSZXN1bHRzIEJhc2VkIG9uIFB1bGxkb3duLiBUaGlzIGlzIHVzZWZ1bCBmb3Igd2ViIHNpdGVzIHdoZXJlIGNvbW1lbnRzIGdldCByb3V0ZWQgYmFzZWQgb24gdGhlaXIgc3ViamVjdCBtYXR0ZXIsIGUuZy4sIGJ1Z3MgZ2V0IHNlbnQgdG8gb25lIHBlcnNvbiwgbWFya2V0aW5nIHF1ZXN0aW9ucyB0byBhbm90aGVyIHBlcnNvbiwgc2FsZXMgcmVxdWVzdHMgdG8gc29tZW9uZSBlbHNlLCBldGMuIFRoZSBwdWxsZG93biBpcyBwb3B1bGF0ZWQgd2l0aCB0aGUgc3ViamVjdHMsIGFuZCBlYWNoIGdldHMgZGlyZWN0ZWQgdG8gYSBzcGVjaWZpYyBlbWFpbCBhZGRyZXNzLiBZb3Ugc2V0IHVwIHRoZXNlIG1hcHBpbmdzIGluIHRoZSB3aGVuIHlvdSBjcmVhdGUgb3IgZWRpdCBhIGZpZWxkIG9mIHRoaXMgdHlwZS4gSWYgeW91IHVzZSBvbmUgb2YgdGhlc2UgIkRpcmVjdG9yIiBwdWxsZG93bnMsIHRoZSB1c2VyIG11c3QgbWFrZSBhIHNlbGVjdGlvbiBpbiBvcmRlciB0byBzdWJtaXQgdGhlDQpmb3JtLiBUaGlzIGlucHV0IGlzIHBhcnQgb2YgdGhlIGZvcm0gdGhlIHVzZXIgc2VlcywgYWx0aG91Z2ggdGhlIGVtYWlsIGFkZHJlc3NlcyBhcmUgbm90IG1hZGUgdmlzaWJsZSBub3INCmFyZSB0aGV5IGVtYmVkZGVkIGluIHRoZSBIVE1MLjwvbGk+DQo8bGk+KkVtYWlsICJGcm9tIEFkZHJlc3MiIEZpZWxkLCBhbmQgc2VuZCBjb3B5LiBUaGlzIHdvcmtzIGxpa2UgdGhlIEVtYWlsICJGcm9tIEFkZHJlc3MiIEZpZWxkIGRlc2NyaWJlZCBhYm92ZSwgYnV0IGl0IHByb3ZpZGVzIG9wdGlvbnMgZm9yIHNlbmRpbmcgYSBjb3B5IG9mIHRoZSByZXN1bHRzIHRvIHRoZSB1c2VyLjwvbGk+DQo8bGk+KkVtYWlsIFJlc3VsdHMgdG8gc2V0IEFkZHJlc3MoZXMpLiBUaGlzIHNpbXBseSBzZW5kcyB0aGUgZm9ybSByZXN1bHRzIHRvIG9uZSBvciBtb3JlIGVtYWlsIGFkZHJlc3NlcyB0aGF0IHlvdSBlbnRlciB3aGVuIHlvdSBjcmVhdGUgb3IgZWRpdCB0aGlzIHR5cGUgb2YgZmllbGQuIFRoaXMgZmllbGQgYW5kIGl0cyBuYW1lIGFyZSBub3QgdmlzaWJsZSBpbiB0aGUNCmZvcm0gdGhhdCB0aGUgdXNlciBzZWVzLiBUaGUgZW1haWwgYWRkcmVzc2VzIGFyZSBub3QgbWFkZSB2aXNpYmxlIG5vcg0KYXJlIHRoZXkgZW1iZWRkZWQgaW4gdGhlIEhUTUwuPC9saT4NCjxsaT4qRW1haWwgdG8gVXNlci1TdXBwbGllZCBBZGRyZXNzLiBUaGlzIHB1dHMgYW4gaW5wdXQgZmllbGQgaW4gdGhlIGZvcm0gZm9yIHRoZSB1c2VyIHRvIHBvcHVsYXRlIHdpdGggYW4gZW1haWwgYWRkcmVzcy4gVGhlIGZvcm0gcmVzdWx0cyBnZXQgc2VudCB0byB0aGF0IGFkZHJlc3MuIEJld2FyZSBvZiBTcGFtIGFidXNlISBBY3RpdmUgdGhlIHByaW1pdGl2ZSBhbnRpLXNwYW0gZmVhdHVyZXMgaW4gdGhlIEZvcm1CdWlsZGVyIGNvbmZpZ3VyYXRpb24gc2NyZWVuLjwvbGk+DQo8bGk+KlN0b3JlIFJlc3VsdHMgaW4gRGF0YWJhc2UuIDxzdHJvbmc+RGVwcmVjYXRlZC48L3N0cm9uZz4gVXNlIFN0b3JlIFJlc3VsdHMgZm9yIEZvcm1Ccm93c2VyIE1vZHVsZSBpbnN0ZWFkISBUaGlzIHdpbGwgc3RvcmUgdGhlIGZvcm0gY29udGVudHMgaW4gYW4gaW50ZXJuYWwgZGF0YWJhc2UuIFlvdSB3aWxsIGFsd2F5cyB1c2UgdGhpcyBkaXNwb3NpdGlvbiBpZiB5b3UgdXNlIHRoZSBmb3JtIHdpdGggRm9ybUJyb3dzZXIuPC9saT4NCjxsaT4qUmVkaXJlY3QgdG8gUGFnZSBCYXNlZCBvbiBQdWxsZG93bi4gVGhpcyBhbGxvd3MgeW91IHRvIHJlZGlyZWN0IHRoZSBmb3JtIHRvIGEgZGlmZmVyZW50IHNpdGUgcGFnZSBkZXBlbmRpbmcgb24gaXRzIHZhbHVlLiBJZiB5b3UgaGF2ZSBtdWx0aXBsZSBkaXNwb3NpdGlvbnMsIG1ha2Ugc3VyZSB0aGlzIGlzIHVzZWQgbGFzdC48L2xpPg0KPGxpPipWYWxpZGF0ZSB2aWEgRW1haWwuIFRoaXMgaXMgYSBzdHJhbmdlIGFuZCBwb3dlcmZ1bCBmaWVsZC4gSXQgcHJvdmlkZXMgdGhlIHVzZXIgYSBtYW5kYXRvcnkgaW5wdXQgZm9yIHRoZWlyIGVtYWlsIGFkZHJlc3MuIE9uY2UgdGhleSBzdWJtaXQgdGhlaXIgZm9ybSwgdGhlIHN0YW5kYXJkIGZvcm0gZGlzcG9zaXRpb25zIGFyZSBub3QgcGVyZm9ybWVkIC0tIHJhdGhlciwgaXQgc2VuZCB0aGUgdXNlciBhbiBlbWFpbCB3aXRoIGEgc3BlY2lhbCBjb2RlZCBsaW5rLiBJZiB0aGV5IGNsaWNrIG9uIHRoZSBsaW5rLCB0aGUgb3RoZXIgZm9ybSBpcyBjb25zaWRlcmVkICJhcHByb3ZlZCwiIGFuZCB0aGUgb3RoZXIgZGlzcG9zaXRpb25zIGFyZSBhbGwgcGVyZm9ybWVkLjwvbGk+DQo8bGk+KldyaXRlIFJlc3VsdHMgdG8gRmxhdCBGaWxlLiBUaGlzIHRha2VzIHRoZSBmb3JtIHJlc3VsdHMgYW5kIHdyaXRlcyB0aGVtIGludG8gYSB0ZXh0IGZpbGUuIFlvdSBtYXkNCnNlbGVjdCB0aGUgbmFtZSBvZiB0aGUgZmlsZSwgYW5kIHNldCBpdHMgZm9ybWF0LiBUaGVzZSBmaWxlcyBhcmUgd3JpdHRlbiB0byB0aGUgIm91dHB1dCIgZGlyZWN0b3J5IHVuZGVyIHRoZQ0KbW9kdWxlXCdzIGluc3RhbGxhdGlvbiBkaXJlY3RvcnksIGFzc3VtaW5nIHRoZSB3ZWIgc2VydmVyIGhhcyBwZXJtaXNzaW9uIHRvIHdyaXRlIHRoZXJlLjwvbGk+DQo8bGk+KlNhdmUgUmVzdWx0cyB0byBGaWxlIEJhc2VkIG9uIFB1bGxkb3duLiBMaWtlIHRoZSBGbGF0IEZpbGUgZGlzcG9zaXRpb24sIGV4Y2VwdCB0aGUgdmFsdWUgb2YgYSBwdWxsLWRvd24gZGV0ZXJtaW5lcyB3aGljaCBmaWxlIHJlc3VsdHMgZ2V0IHdyaXR0ZW4gdG8uPC9saT4NCjxsaT4qU2F2ZSBSZXN1bHRzIHRvIEZpbGUocykgQmFzZWQgb24gTXVsdGlwbGUgU2VsZWN0aW9ucy4gTGlrZSB0aGUgRmxhdCBGaWxlIGRpc3Bvc2l0aW9uLCBleGNlcHQgdGhlIHZhbHVlKHMpIG9mIGNoZWNrYm94ZXMgIGRldGVybWluZXMgd2hpY2ggZmlsZShzKSByZXN1bHRzIGdldCB3cml0dGVuIHRvLjwvbGk+DQo8bGk+KkVtYWlsIHRvIENNUyBBZG1pbiBVc2VyLiBQcm92aWRlcyBhIHB1bGwtZG93biBvZiBDTVMgQWRtaW4gdXNlcnMsIGFuZCBkaXJlY3RzIHRoZSByZXN1bHRzIGFzIGFuIGVtYWlsIHRvIHRoZSBzZWxlY3RlZCBhZG1pbi48L2xpPg0KPGxpPipTdG9yZSBSZXN1bHRzIGZvciBGb3JtQnJvd3NlciBNb2R1bGUgdi4wLjMuIFN0b3JlcyB0aGUgZm9ybSByZXN1bHRzIGluIGFuIFhNTCBzdHJ1Y3R1cmUgYXMgYSBzaW5nbGUgZGF0YWJhc2UgcmVjb3JkLiBUaGlzIGlzIHRoZSBvbmx5IGludGVyZmFjZSB0byBGb3JtIEJyb3dzZXIuIFNlZSBzZWN0aW9uIGJlbG93LjwvbGk+DQo8bGk+KlN1Ym1pdCB0byBhbiBhcmJpdHJhcnkgZm9ybSBhY3Rpb24uIENyYWZ0IGFuIEhUVFAgR0VUIG9yIFBPU1QsIGFuZCB0cmFuc21pdCBpdCB1c2luZyBjVVJMIHRvIHRoZSBzcGVjaWZpZWQgVVJMLiBUaGlzIGxldHMgeW91IHVzZSBGb3JtQnVpbGRlciBhcyBhIGZyb250LWVuZCB0byBhbnkgQ0dJIG9yIEZvcm0gSGFuZGxpbmcgc2NyaXB0IG91dCB0aGVyZS48L2xpPg0KDQo8L3VsPjwvbGk+PC9saT48L3VsPg0KDQo8aDM+UGFzc2luZyBEZWZhdWx0IFZhbHVlcyB0byBGb3JtczwvaDM+DQo8cD5DYWxndXkgYWRkZWQgYSBuaWNlIGZlYXR1cmUsIHdoaWNoIGlzIHRoYXQgeW91IGNhbiBwYXNzIGRlZmF1bHQgZmllbGQgdmFsdWVzIHRvIHlvdXIgZm9ybSB2aWEgdGhlIG1vZHVsZSB0YWcuIFRoaXMgYWxsb3dzIHlvdSB0byBoYXZlDQp0aGUgc2FtZSBmb3JtIGluIG11bHRpcGxlIHBsYWNlcywgYnV0IHdpdGggZGlmZmVyZW50IGRlZmF1bHQgdmFsdWVzLiBJdCBtYXkgbm90IHdvcmsgZm9yIG1vcmUgZXhvdGljIGZpZWxkIHR5cGVzLCBidXQgZm9yIGZpZWxkcyB0aGF0IGhhdmUNCmEgc2luZ2xlIHZhbHVlLCB5b3UgY2FuIHNwZWNpZnkgbGlrZTo8L3A+DQo8cD57Rm9ybUJ1aWxkZXIgZm9ybT1cJ215X2Zvcm1cJyB2YWx1ZV88aT5GSUVMRE5BTUU8L2k+PVwnZGVmYXVsdF92YWx1ZVwnfTwvcD4NCjxwPlRoaXMgd2lsbCBzZXQgdGhlIGZpZWxkIHdpdGggPGk+RklFTEROQU1FPC9pPiB0byBcJ2RlZmF1bHRfdmFsdWVcJy48L3A+DQo8cD5UaGlzIGNhbiBiZSBwcm9ibGVtYXRpYywgYXMgc29tZXRpbWVzIGZpZWxkIG5hbWVzIGFyZSB1bndpZWxkeSBvciBjb250YWluIGNoYXJhY3RlcnMgdGhhdCBkb25cJ3Qgd29yayB3ZWxsIHdpdGggU21hcnR5LiBTbyB0aGVyZSBpcyBhbg0KYWx0ZXJuYXRpdmUgbGlrZSB0aGlzOjwvcD4NCjxwPntGb3JtQnVpbGRlciBmb3JtPVwnbXlfZm9ybVwnIHZhbHVlX2ZsZDxpPk5VTUJFUjwvaT49XCdkZWZhdWx0X3ZhbHVlXCd9PC9wPg0KPHA+VGhhdCB1c2VzIGZpZWxkIDxpPk5VTUJFUjwvaT4sIHdoZXJlIDxpPk5VTUJFUjwvaT4gaXMgdGhlIGludGVybmFsIEZvcm1CdWlsZGVyIGZpZWxkIGlkLiBZb3UgbWlnaHQgd29uZGVyIGhvdyB5b3Uga25vdyB3aGF0IHRoYXQgaWQgaXMuIFNpbXBseSBnbyBpbnRvIHRoZSBGb3JtQnVpbGRlciBjb25maWd1cmF0aW9uIHRhYiwNCmFuZCBjaGVjayAiU2hvdyBGaWVsZCBJRHMiPC9wPg0KDQo8aDM+RW1haWwgYW5kIEZsYXQgRmlsZSBUZW1wbGF0ZXM8L2gzPg0KPHA+TWFueSBkaXNwb3NpdGlvbiB0eXBlcyBhbGxvdyB5b3UgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZm9yIHRoZSBlbWFpbCB0aGF0IGlzIGdlbmVyYXRlZCwgb3IgZm9yIHRoZSB3YXkgdGhlIHJlc3VsdHMgYXJlIHdyaXR0ZW4gdG8gYSBmaWxlLiBJZiB5b3Ugb3B0IG5vdCB0byBjcmVhdGUgYSB0ZW1wbGF0ZSwgdGhlIEZvcm1CdWlsZGVyIHdpbGwgdXNlIGl0cyBvd24gYmVzdCBndWVzcywgd2hpY2ggbWF5IG9yIG1heSBub3Qgd29yayBvdXQgdG8geW91ciBsaWtpbmcuIFlvdSBjYW4gYWx3YXlzIGNsaWNrIG9uIHRoZSAiQ3JlYXRlIFNhbXBsZSBUZW1wbGF0ZSIgYW5kIHRoZW4gY3VzdG9taXplIHRoZSByZXN1bHRzLjwvcD4NCjxwPlRvIHRoZSByaWdodCwgeW91XCdsbCBmaW5kIGEgbGVnZW5kIHdoaWNoIGxpc3RzIGFsbCBvZiB0aGUgdmFyaWFibGVzIHRoYXQgYXJlIGF2YWlsYWJsZSB0byB5b3UgdG8gdXNlIGluIHlvdXIgdGVtcGxhdGUuIEFzIG9mIHZlcnNpb24gMC4zLCB2YXJpYWJsZXMgaGF2ZSB0d28gbmFtZXMsIG9uZSBiYXNlZCBvbiB0aGUgZmllbGQgbmFtZSwgdGhlIG90aGVyIGJhc2VkIG9uIHRoZSBmaWVsZCBJRC4gSWYgeW91IHVzZSBmaWVsZCBuYW1lcyB0aGF0IGhhdmUgY2hhcmFjdGVycyBvdXRzaWRlIG9mIHRoZSBBU0NJSSAzMi0xMjYgcmFuZ2UsIGl0IHdpbGwgYmUgc2FmZXIgdG8gdXNlIHRoZSBJRC1iYXNlZCB2YXJpYWJsZXMuIEFzIG9mIHZlcnNpb24gMC41LCB2YXJpYWJsZXMgYWxzbyBoYXZlIGFsaWFzZXMsIHdoaWNoIHlvdSBjYW4gdXNlLjwvcD4NCjxwPjxzdHJvbmc+Tm90ZSB0aGF0IG9uY2UgeW91XCd2ZSBjaGFuZ2VkIGEgdGVtcGxhdGUsIGl0IHdpbGwgbm8gbG9uZ2VyIGF1dG9tYXRpY2FsbHkgYWRkIG5ldyBmaWVsZHMuPC9zdHJvbmc+IEZvciB0aGlzIHJlYXNvbiwgaXRcJ3MgdXN1YWxseSBiZXN0IHRvIGNyZWF0ZSB5b3VyIHRlbXBsYXRlcyBhcyB0aGUgbGFzdCBzdGVwIG9mIGNyZWF0aW5nIHlvdXIgZm9ybS48L3A+DQo8cD5BcyBvZiB2ZXJzaW9uIDAuMi40LCB5b3UgY2FuIG9wdCB0byBzZW5kIGFueSBvZiB0aGVzZSBlbWFpbHMgYXMgSFRNTCBlbWFpbC4gVGhlcmUgc2hvdWxkIGJlIGEgY2hlY2tib3ggYXQgdGhlIHRvcCBvZiB0aGUgdGVtcGxhdGUgcGFnZSBmb3IgdGhpcy4gVGhlcmUgaXMgYWxzbyBhICJDcmVhdGUgU2FtcGxlIEhUTUwgVGVtcGxhdGUiIGJ1dHRvbiBvdmVyIGluIHRoZSBsZWdlbmQgYXJlYS4gRm9yIEhUTUwgZW1haWwsIHRoZSBlbWFpbCBib2R5IHdpbGwgYWxzbyBwcm92aWRlIHRoZSBkZWZhdWx0IHRleHQtb25seSB2YWx1ZXMuPC9wPg0KDQo8aDM+VXNlIHdpdGggRm9ybUJyb3dzZXIgdjM8L2gzPg0KPHA+VGhlcmUgYXJlIHNvbWUgc3BlY2lhbCBmZWF0dXJlcyB3aGVuIHVzaW5nIEZvcm1CdWlsZGVyIHdpdGggRm9ybUJyb3dzZXIuIFRoZSBuZXcgYXBwcm9hY2ggc3RvcmVzIHRoZSBmb3JtIHJlc3VsdHMgaW4gWE1MLCBzbyB0aGF0IGZhciBmZXdlcg0KcXVlcmllcyBhcmUgbmVlZGVkIHRvIHJldHJpZXZlIHJlY29yZHMuIFRoaXMgbWVhbnMgeW91IGNhbiB1c2UgRm9ybUJyb3dzZXIgd2l0aCBodW5kcmVkcyBvciBldmVuIHRob3VzYW5kcyBvZiByZWNvcmRzLiBJdCBhbHNvIG1lYW5zIHlvdQ0Kd2lsbCBoYXZlIHRvIGNob29zZSB1cCBmcm9udCB3aGljaCBmaWVsZHMgeW91IHdpbGwgd2FudCB0byBiZSBhYmxlIHRvIHNvcnQgYnkuIFlvdSBjYW4gY2hvb3NlIHVwIHRvIGZpdmUuIENoYW5naW5nIHRoZXNlIGFmdGVyIHRoZXJlIGFyZSBzdWJtaXR0ZWQgcmVjb3JkcyB3aWxsIHJlc3VsdCBpbiBpbXByb3BlciBzb3J0aW5nISBBIHJlLWluZGV4IGZ1bmN0aW9uIHdpbGwgYmUgYWRkZWQgdG8gYSBmdXR1cmUgdmVyc2lvbi48L3A+DQo8cD5JbiBhZHZhbmNlZCBvcHRpb25zLCB5b3UgY2FuIHRpZSBhIGZvcm0gdG8gRnJvbnRlbmQgVXNlcnMuIFRoYXQgbWVhbnMgZWFjaCB1c2VyIGdldHMgb25lIHJlY29yZCBmb3IgdGhlIGZvcm07IHRoZXkgY2FuIGNyZWF0ZSBpdA0KYSBzaW5nbGUgdGltZSwgc3Vic2VxdWVudCB0aW1lcyB0aGV5IHdpbGwgYmUgZWRpdGluZyB0aGVpciByZWNvcmQuIFRoZSByZWNvcmQgd2lsbCBub3QgYmUgdmlzaWJsZSB0byBhbnkgb3RoZXIgdXNlcnMgKGV4Y2x1ZGluZyBhZG1pbnMpLg0KVGhpcyBmb3JtIHNob3VsZCBiZSBhZGRlZCB0byB5b3VyIHBhZ2UgdXNpbmcgdGhlIHN5bnRheCB7Rm9ybUJ1aWxkZXIgYWN0aW9uPVwnZmV1c2VyZm9ybVwnIGZvcm09XCdmb3JtX25hbWVcJ30uPC9wPg0KPHA+Rm9yIGdyZWF0ZXIgZGF0YSBzYWZldHksIHlvdSBjYW4gZW5jcnlwdCB0aGUgc3RvcmVkIGZvcm1zIGluIHRoZSBkYXRhYmFzZS4gWW91IGNhbiB1c2UgdGhlIGJ1aWx0LWluIG15Y3J5cHQgbGlicmFyeSBvciB0aGUgT3BlblNTTCBtb2R1bGUuDQpJbiBlaXRoZXIgY2FzZSwgZm9yIHRoZSBwYXNzcGhyYXNlLCB5b3UgY2FuIGVpdGhlciBlbnRlciB0ZXh0IGluIHRoZSBmaWVsZCBvciBhIGZpbGUgbmFtZS4gSWYgeW91IHNwZWNpZnkgYSBmaWxlIG5hbWUsIHRoZSBjb250ZW50cyBvZiB0aGF0DQpmaWxlIHdpbGwgYmUgdXNlZCBhcyB0aGUgcGFzc3BocmFzZSBmb3IgZW5jcnlwdGluZy48L3A+DQo8cD5JZiB5b3UgZW5jcnlwdCwgYmUgYXdhcmUgdGhhdCB0aGUgZmllbGRzIHlvdSB1c2UgZm9yIHNvcnRpbmcgYXJlIDxzdHJvbmc+bm90PC9zdHJvbmc+IGVuY3J5cHRlZC4gWW91IGNhbiBjaG9vc2UgdG8gaGFzaCB0aGVtOyB0aGUgY2hlYXQgaGVyZQ0KaXMgdGhhdCB0aGUgZmlyc3QgZm91ciBsZXR0ZXJzIGFyZSBsZWZ0IGludGFjdCB0byBhbGxvdyBmb3Igc29ydGluZy4gVGhlIHNvcnRpbmcgbWF5IG5vdCBiZSBwZXJmZWN0LCBhbmQgdGhpcyB3ZWFrZW5zIHRoZSBzZWN1cml0eSBzaW5jZSBpdA0KZXhwb3NlcyBzb21lIGNsZWFydGV4dCwgYnV0IGl0IGlzIGJldHRlciB0aGFuIG5vdGhpbmcuPC9wPg0KPHA+PHN0cm9uZz5ESVNDTEFJTUVSPC9zdHJvbmc+LiBUaGUgZW5jcnlwdGlvbiBvZmZlcmVkIGhlcmUgc2hvdWxkIGJlIGNvbnNpZGVyZWQganVzdCBvbmUgbW9yZSBodXJkbGUgZm9yIGEgaGFja2VyLCBub3QgYXMgYSBndWFyYW50ZWUgdGhhdA0KeW91ciBpbmZvcm1hdGlvbiB3aWxsIGJlIHNlY3VyZS4gQSBzbWFydCBoYWNrZXIgd2hvIGhhcyBmb3VuZCBzb21lIGV4cGxvaXQgdG8gdmlldyBkYXRhYmFzZSByZWNvcmRzIG1heSB3ZWxsIGJlIHNtYXJ0IGVub3VnaCB0byBnZXQgYXQNCnRoZSBtb2R1bGUgc291cmNlIGNvZGUsIGFuZCBmaW5kIHRoZWlyIHdheSB0byB0aGUgcGFzc3BocmFzZS4gVGhpcyB3aWxsIG5vdCBwcm90ZWN0IHlvdSBhZ2FpbnN0IGFuIGVuZW15IHdobyBoYXMgZnVsbCBhY2Nlc3MgdG8geW91cg0Kc2VydmVyLCBzb21lIGZhbWlsaWFyaXR5IHdpdGggUEhQLCBhbmQgdGhlIHRpbWUgdG8gcG9rZSBhcm91bmQuIDxlbT48c3Ryb25nPkRvIG5vdDwvc3Ryb25nPiB1c2UgdGhpcyB0byBwcm90ZWN0IGhpZ2gtdmFsdWUgaW5mb3JtYXRpb24gc3VjaCBhcyBmaW5hbmNpYWwgZGF0YSwNCnNlbnNpdGl2ZSBwb2xpdGljYWwgaW5mb3JtYXRpb24sIGh1bWFuIHJpZ2h0cyBkYXRhLCBvciBhbnl0aGluZyBlbHNlIHRoYXQgbWlnaHQgYmUgb2YgdmFsdWUgdG8gYSByZXByZXNzaXZlIGdvdmVybm1lbnQgb3Igb3JnYW5pemVkIGNyaW1lDQpjYXJ0ZWwuPC9lbT48L3A+DQo8aDM+VXNpbmcgd2l0aCBVc2VyIERlZmluZWQgVGFncyAoVURUcyk8L2gzPg0KPHA+U2V2ZXJhbCBvcHRpb25zIGZvciBjdXN0b21pemluZyBiZWhhdmlvciB2aWEgVURUcyBpcyBwcm92aWRlZCAodGhhbmtzIHRvIGtpbmQgY29kZSBjb250cmlidXRpb25zLCBzZWUgY3JlZGl0cykuPC9wPg0KDQo8dWw+PGxpPkNhbGwgVXNlciBEZWZpbmVkIFRhZyBXaXRoIHRoZSBGb3JtIFJlc3VsdHMuIFRoaXMgZmllbGQgdHlwZSBzdWJtaXRzIHRoZSBodW1hbi1yZWFkYWJsZSBmb3JtIHJlc3VsdHMgdG8gdGhlIFVzZXItRGVmaW5lZA0KVGFnIHlvdSBzcGVjaWZ5LiBUaGUgVURUIGNhbiBoYW5kbGUgdGhlIHJlc3VsdHMgaG93ZXZlciBpdCB3YW50cy4gVmFsdWVzIGFyZSBwYXNzZWQgYXMgJHBhcmFtc1tcJ2ZpZWxkX25hbWVcJ10sIGFuZA0KYXMgJHBhcmFtc1tcJ2ZpZWxkX2FsaWFzXCddIChpZiBkZWZpbmVkKS4gQXMgcGVyIGEgc3VnZ2VzdGlvbiwgaXQgYWxzbyBwb3B1bGF0ZXMgYWxsIG9mIHRoZSBTbWFydHkgdmFsdWVzIHRoYXQgd291bGQgYmUgdmlzaWJsZSB0byB0aGUgU3VibWlzc2lvbiBUZW1wbGF0ZSB0b28hPC9saT4NCjxsaT5Vc2VyIFRhZyBGaWVsZC4gVGhpcyBjYWxscyB0aGUgc3BlY2lmaWVkIFVEVCwgYW5kIGRpc3BsYXlzIGFueXRoaW5nIGl0IHJldHVybnMuIFRoZSBVRFQgZ2V0cyBjYWxsZWQgYW55IHRpbWUgdGhlIGZpZWxkIHdvdWxkIGJlIHZpc2libGUuPC9saT4NCjxsaT5WYWxpZGF0aW9uIFVEVC4gU2V0IHRoaXMgZm9yIGEgZm9ybSwgYW5kIHRoZSBVRFQgd2lsbCByZWNlaXZlIGFsbCBvZiB0aGUgZm9ybVxcXCdzIGh1bWFuLXJlYWRhYmxlIHJlc3VsdHMuIFRoZSBVRFQgc2hvdWxkIGRvIHdoYXRldmVyDQp2YWxpZGF0aW9uIGl0IHdhbnRzLCBhbmQgcmV0dXJuIGFuIGFycmF5IHdpdGggdGhlIGZpcnN0IHZhbHVlIGJlaW5nIHRydWUgb3IgZmFsc2UgKGluZGljYXRpb24gd2hldGhlciB0aGUgZm9ybSB2YWxpZGF0ZXMpLCBhbmQgdGhlIHNlY29uZA0KdmFsdWUgYmVpbmcgZXJyb3IgbWVzc2FnZXMgKGlmIGFueSkuPC9saT4NCjxsaT5Vc2VyIGRlZmluZWQgdGFnIHRvIGNhbGwgYmVmb3JlIGZvcm0gaXMgZGlzcGxheWVkIHRoZSBmaXJzdCB0aW1lIChvbmx5IGNhbGxlZCBvbmNlKS4gVGhpcw0KaXMgc2V0IGluIHRoZSBGb3JtIEFkbWluIGluIHRoZSBVRFQgSW50ZWdyYXRpb24gdGFiLiBUaGUgVURUIGdldHMgY2FsbGVkIG9uIHRoZSBmaXJzdCBkaXNwbGF5DQpvZiB0aGUgZm9ybS48L2xpPg0KPGxpPlVzZXIgZGVmaW5lZCB0YWcgdG8gY2FsbCBiZWZvcmUgZm9ybSBpcyBkaXNwbGF5ZWQgKGNhbGxlZCBvbiBldmVyeSBwYWdlIG9mIG11bHRpcGFnZQ0KZm9ybXMpLiBUaGlzIGlzIHNldCBpbiB0aGUgRm9ybSBBZG1pbiBpbiB0aGUgVURUIEludGVncmF0aW9uIHRhYi4gVGhlIFVEVCBnZXRzIGNhbGxlZA0KZXZlcnkgdGltZSBhbnkgcGFnZSBvZiB0aGUgZm9ybSBpcyBkaXNwbGF5ZWQgKGluY2x1ZGluZyB3aGVuIHZhbGlkYXRpb24gZmFpbHMpLjwvbGk+DQo8L3VsPg0KPGgzPkNvbmZpZ3VyYXRpb248L2gzPg0KPHA+VGhlcmUgYXJlIHNvbWUgZ2xvYmFsIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgRm9ybUJ1aWxkZXI6PC9wPg0KPHVsPg0KPGxpPkVuYWJsZSBmYXN0IGZpZWxkIGFkZCBwdWxsZG93bi4gVGhpcyBlbmFibGVzIHRoZSBwdWxsZG93biBvbiB0aGUgRm9ybSBFZGl0IHBhZ2Ugd2hpY2ggc2F2ZXMgYSBzdGVwIGluIHRoZSBjcmVhdGlvbiBvZiBuZXcgZmllbGRzLjwvbGk+DQo8bGk+UnVuIGluIE1MRSBNb2RlLiBUaGlzIGNoYW5nZXMgc29tZSBxdWVyaWVzIGFnYWluc3QgdGhlIGNvbnRlbnQgdGFibGUgdG8gdHJ5IHRvIHByZXZlbnQgdWdseSBjcmFzaGVzIHVuZGVyIHRoZSBNTEUgZm9yay4gQ2hlY2tpbmcgdGhpcyB3aWxsIGNhdXNlIHVnbHkgY3Jhc2hlcyBpZiB5b3UgYXJlIE5PVCBydW5uaW5nIHRoZSBNTEUgZm9yay48L2xpPg0KPGxpPkhpZGUgRXJyb3JzLiBUaGlzIGlzIG5vIGxvbmdlciBzZXQgYnkgZGVmYXVsdC4gQ2hlY2tpbmcgaXQgd2lsbCBoaWRlIHRoZSBtb3JlIGRldGFpbGVkIGVycm9ycyB0aGF0IHdvdWxkIGJlIGRpc3BsYXllZCBpZiB0aGVyZSBhcmUgcHJvYmxlbXMgd2hlbiB5b3Ugc3VibWl0IHlvdXIgZm9ybS48L2xpPg0KPGxpPlJlcXVpcmUgRmllbGQgTmFtZXMuIFR5cGljYWxseSwgeW91IHdpbGwgd2FudCBmb3JtIGZpZWxkcyB0byBiZSBuYW1lZCBzbyB5b3UgY2FuIHRlbGwgd2hpY2ggaXMgd2hpY2guIEhvd2V2ZXIsIGluIHNvbWUgY2FzZXMsIHlvdSBtaWdodCB3YW50IHRvIGhhdmUgbmFtZWxlc3MgZmllbGRzLiBVbmNoZWNrIHRoaXMgaWYgeW91IHdhbnQgdG8gYWxsb3cgbmFtZWxlc3MgZmllbGRzLjwvbGk+DQo8bGk+VW5pcXVlIEZpZWxkIE5hbWVzLiBUeXBpY2FsbHksIHlvdSB3aWxsIHdhbnQgZm9ybSBmaWVsZHMgdG8gaGF2ZSB1bmlxdWUgbmFtZXMgc28geW91IGNhbiB0ZWxsIHdoaWNoIGlzIHdoaWNoLiBVbmNoZWNrIHRoaXMgaWYgeW91IHdhbnQgdG8gYWxsb3cgZmllbGRzIHRvIHNoYXJlIG5hbWVzLjwvbGk+DQo8bGk+VXNlIHJlbGF4ZWQgZW1haWwgdmFsaWRhdGlvbi4gVGhpcyB1c2VzIGEgbGVzcyByZXN0cmljdGl2ZSByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHZhbGlkYXRpbmcgZW1haWw7IGUuZy4sIHhAeSB3aWxsIGJlIGFsbG93ZWQsIHdoZXJlIHR5cGljYWxseSB4QHkudGxkIGlzIHJlcXVpcmVkLjwvbGk+DQo8bGk+U2hvdyBGb3JtIEJ1aWxkZXIgVmVyc2lvbi4gRGlzcGxheXMgdGhlIHZlcnNpb24gb2YgRm9ybUJ1aWxkZXIgeW91XCdyZSB1c2luZyBpbiBhIGNvbW1lbnQgd2hlbiB0aGUgZm9ybSBpcyBnZW5lcmF0ZWQuIFR5cGljYWxseSBvbmx5IHVzZWZ1bCB3aGVuIGRlYnVnZ2luZy48L2xpPg0KPGxpPkVuYWJsZSBwcmltaXRpdmUgYW50aS1zcGFtIGZlYXR1cmVzLiBXaGVuIHR1cm5lZCBvbiwgdGhpcyBhbGxvd3MgYW55IGdpdmVuIElQIGFkZHJlc3MgdG8gb25seSBnZW5lcmF0ZSAxMCBlbWFpbHMgcGVyIGhvdXIuPC9saT4NCjxsaT5TaG93IEZpZWxkIElEcy4gV2hlbiB0dXJuZWQgb24sIEZvcm1CdWlsZGVyIHdpbGwgZGlzcGxheSBmaWVsZCBpZHMgd2hlbiBhZGRpbmcgb3IgZWRpdGluZyBhIGZvcm0uPC9saT4NCjwvdWw+DQo8aDM+U3R5bGluZyBhbmQgQ1NTPC9oMz4NCjxwPkFmdGVyIGEgYml0IG9mIG5hZ2dpbmcgb24gdGhlIHBhcnQgb2YgcGVvcGxlIHdobyBhY3R1YWxseSByZXNwZWN0IHN0YW5kYXJkcywgRm9ybUJ1aWxkZXIgbm8gbG9uZ2VyIGVuY291cmFnZXMgdHJpY2tzIGxpa2UgZW1iZWRkaW5nIENTUyBpbiANCnN0YXRpYyB0ZXh0IGZpZWxkcy4gSW5zdGVhZCwgaXQgY3JlYXRlcyBhIHN0eWxlc2hlZXQgY2FsbGVkICJGb3JtQnVpbGRlciBEZWZhdWx0IiB0aGF0IHlvdSBhcmUgZW5jb3VyYWdlZCB0byBhdHRhY2ggdG8gdGhlIHBhZ2UgdGVtcGxhdGUNCnRoYXQgeW91IHVzZSBmb3IgcGFnZXMgdGhhdCBjb250YWluIHlvdXIgZm9ybS48L3A+ICANCjxwPlRoaXMgZGVmYXVsdCBDU1Mgd2FzIGdyYWNpb3VzbHkgcHJvdmlkZWQgYnkgUGF1bCBOb29uZS48L3A+DQoNCg0KPGgzPkZvcm0gVGVtcGxhdGUgVmFyaWFibGVzPC9oMz4NCjxwPllvdSBjYW4gZWRpdCBpdCB0byBtYWtlIHlvdXIgZm9ybSBsYXlvdXQgbG9vayBhbnkgd2F5IHlvdVwnZCBsaWtlLg0KICAgVG8gbWFrZSB0aGUgZm9ybSB3b3JrLCB5b3VcJ2xsIG5lZWQgdG8gYWx3YXlzIGluY2x1ZGUgdGhlIHskZmJfaGlkZGVufSBhbmQgeyRzdWJtaXR9DQogICB0YWdzLjwvcD4NCg0KPHA+WW91IGNhbiBhY2Nlc3MgeW91ciBmb3JtIGZpZWxkcyBlaXRoZXIgdXNpbmcgdGhlICRmaWVsZHMgYXJyYXkgb3IgYnkgZGlyZWN0bHkgYWNjZXNzaW5nIGZpZWxkcyBieSB0aGVpciBuYW1lcyAoZS5nLiwgeyRteWZpZWxkLT5pbnB1dH0gKTwvcD4NCg0KDQo8cD5FYWNoIGZpZWxkIGhhcyB0aGUgZm9sbG93aW5nIGF0dHJpYnV0ZXM6PC9wPg0KPHRhYmxlPg0KPHRyPjx0aD5GaWVsZDwvdGg+PHRoPlZhbHVlPC90aD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+ZGlzcGxheTwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIHNob3VsZCBiZSBkaXNwbGF5ZWQsIDAgb3RoZXJ3aXNlPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+cmVxdWlyZWQ8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBpcyByZXF1aXJlZCwgMCBvdGhlcndpc2U8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5yZXF1aXJlZF9zeW1ib2w8L3RkPjx0ZD50aGUgc3ltYm9sIGZvciByZXF1aXJlZCBmaWVsZHM8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5jc3NfY2xhc3M8L3RkPjx0ZD50aGUgQ1NTIGNsYXNzIHNwZWNpZmllZCBmb3IgdGhpcyBmaWVsZDwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPnZhbGlkPC90ZD48dGQ+MSBpZiB0aGlzIGZpZWxkIGhhcyBwYXNzZWQgdmFsaWRhdGlvbiwgMCBvdGhlcndpc2U8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5lcnJvcjwvdGQ+PHRkPlRleHQgb2YgdGhlIHZhbGlkYXRpb24gcHJvYmxlbSwgaW4gdGhlIGV2ZW50IHRoYXQgdGhpcyBmaWVsZCBkaWQgbm90IHZhbGlkYXRlPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aGlkZV9uYW1lPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgbmFtZSBzaG91bGQgYmUgaGlkZGVuLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmhhc19sYWJlbDwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIHR5cGUgaGFzIGEgbGFiZWw8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5uZWVkc19kaXY8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBuZWVkcyB0byBiZSB3cmFwcGVkIGluIGEgRElWIChvciB0YWJsZSByb3csIGlmIHRoYXRcJ3MgdGhlIHdheSB5b3Ugc3dpbmcpPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+bmFtZTwvdGQ+PHRkPnRoZSBmaWVsZFwncyBuYW1lPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aGVscHRleHQ8L3RkPjx0ZD50aGUgZmllbGRcJ3MgaGVscCB0ZXh0PC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aW5wdXQ8L3RkPjx0ZD50aGUgZmllbGRcJ3MgaW5wdXQgY29udHJvbCAoZS5nLiwgdGhlIGlucHV0IGZpZWxkIGl0c2VsZik8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5vcDwvdGQ+PHRkPmEgY29udHJvbCBidXR0b24gYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWVsZCBpZiBhcHBsaWNhYmxlIChlLmcuLCB0aGUgZGVsZXRlIGJ1dHRvbiBmb3IgZXhwYW5kYWJsZSB0ZXh0IGlucHV0KTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmlucHV0X2lkPC90ZD48dGQ+dGhlIElEIG9mIHRoZSBmaWVsZFwncyBpbnB1dCAodXNlZnVsIGZvciBsYWJlbCBmb3I9ImZvbyIpPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+YWxpYXM8L3RkPjx0ZD50aGUgYWxpYXMgc3BlY2lmaWVkIGZvciB0aGlzIGZpZWxkPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aWQ8L3RkPjx0ZD50aGUgaW50ZXJuYWwgLyBvcGFxdWUgaWQgRm9ybUJ1aWxkZXIgdXNlcyBmb3IgdGhpcyBmaWVsZDwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPnR5cGU8L3RkPjx0ZD50aGUgZmllbGRcJ3MgZGF0YSB0eXBlPC90ZD48L3RyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCjx0cj48dGQ+ZmllbGQtPm11bHRpcGxlX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQtPmlucHV0IGlzIGFjdHVhbGx5IGEgY29sbGVjdGlvbiBvZiBjb250cm9sczwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmxhYmVsX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgY29sbGVjdGlvbiBvZiBjb250cm9scyBoYXMgc2VwYXJhdGUgbGFiZWxzIGZvciBlYWNoIGNvbnRyb2w8L3RkPjwvdHI+DQo8L3RhYmxlPg0KDQo8cD5JbiB0aGUgY2FzZSBvZiBhIG11bHRpcGFnZSBmb3JtLCB5b3Ugd2lsbCBhbHNvIGhhdmUgYWNjZXNzIHRvIHRoZSB2YWx1ZSBvZiBwcmV2aW91cyBmaWVsZHMuIFRoZXkNCmFyZSBpbiB0aGUgJHByZXZpb3VzIGFycmF5LCBvciBhY2Nlc3NpYmxlIGJ5IHRoZWlyIG5hbWVzIChlLmcuLCB7JG15ZmllbGQtPnZhbHVlfSApLg0KWW91IGNhbiB1c2UgdGhpcyBpbiBTdGF0aWMgVGV4dCBmaWVsZHMgYXMgd2VsbCwgd2hpY2ggaXMgYSBuaWNlIHdheSB0byBwZXJzb25hbGl6ZSBmb3JtcyE8L3A+DQoNCjxwPkluIGNlcnRhaW4gY2FzZXMsIGZpZWxkLT5pbnB1dCBpcyBhY3R1YWxseSBhbiBhcnJheSBvZiBvYmplY3RzIHJhdGhlciB0aGFuIGFuIGlucHV0LiBUaGlzIGhhcHBlbnMsIGZvciBleGFtcGxlLCBpbiBDaGVja0JveEdyb3VwcyBvciBSYWRpb0J1dHRvbkdyb3Vwcy4gRm9yIHRoZW0sIHlvdSBjYW4gaXRlcmF0ZSB0aHJvdWdoIGZpZWxkLT5pbnB1dC0+bmFtZSBhbmQgZmllbGQtPmlucHV0LT5pbnB1dHMuPC9wPg0KICAgIA0KPHA+QWRkaXRpb25hbCBzbWFydHkgdmFyaWFibGVzIHRoYXQgeW91IGNhbiB1c2UgaW5jbHVkZTo8L3A+DQo8dGFibGU+DQo8dHI+PHRoPlZhcmlhYmxlPC90aD48dGg+VmFsdWU8L3RoPjwvdHI+DQo8dHI+PHRkPnRvdGFsX3BhZ2VzPC90ZD48dGQ+bnVtYmVyIG9mIHBhZ2VzIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD50aGlzX3BhZ2U8L3RkPjx0ZD5udW1iZXIgZm8gdGhlIGN1cnJlbnQgcGFnZSBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+dGl0bGVfcGFnZV94X29mX3k8L3RkPjx0ZD5kaXNwbGF5cyAicGFnZSB4IG9mIHkiIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD5jc3NfY2xhc3M8L3RkPjx0ZD5DU1MgQ2xhc3MgZm9yIHRoZSBmb3JtPC90ZD48L3RyPg0KPHRyPjx0ZD5mb3JtX25hbWU8L3RkPjx0ZD5Gb3JtIG5hbWU8L3RkPjwvdHI+DQo8dHI+PHRkPmZvcm1faWQ8L3RkPjx0ZD5Gb3JtIGRhdGFiYXNlIElEPC90ZD48L3RyPg0KPHRyPjx0ZD5pbl9mb3JtYnJvd3NlcjwvdGQ+PHRkPjEgaWYgZm9ybSBpcyBiZWluZyB2aWV3ZWQgZnJvbSBGb3JtQnJvd3NlcjwvdGQ+PC90cj4NCjx0cj48dGQ+aW5fYWRtaW48L3RkPjx0ZD4xIGlmIGZvcm0gaXMgYmVpbmcgdmlld2VkIHZpYSBGb3JtQnJvd3NlciBhZG1pbjwvdGQ+PC90cj4NCjx0cj48dGQ+ZmJyX2lkPC90ZD48dGQ+UmVzcG9uc2UgSUQgaWYgZm9ybSBpcyBiZWluZyB2aWV3ZWQgZnJvbSBGb3JtQnJvd3NlcjwvdGQ+PC90cj4NCjx0cj48dGQ+cHJldjwvdGQ+PHRkPiJCYWNrIiBidXR0b24gZm9yIG11bHRpcGFydCBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+c3VibWl0PC90ZD48dGQ+IkNvbnRpbnVlIiBvciAiU3VibWl0IiBidXR0b24gZm9yIG11bHRpcGFydCBmb3JtcywgYWRqdXN0cyBhdXRvbWF0aWNhbGx5PC90ZD48L3RyPg0KPC90YWJsZT4NCjxwPkR1bm5vIHdoeSB5b3VcJ2Qgd2FudCBzb21lIG9mIHRob3NlLCBidXQgdGhlcmUgeW91IGdvLi4uPC9wPg0KDQo8aDM+Q3JlZGl0czwvaDM+DQo8cD5NYW55IHBlb3BsZSBoYXZlIGNvbnRyaWJ1dGVkIGNvZGUsIGJ1ZyByZXBvcnRzLCBjYXNoLCBhbmQgaWRlYXMgdG8gRm9ybUJ1aWxkZXIuIEFtb25nIHRoZW0gKGFscGhhYmV0aWNhbGx5KToNCjx1bD4NCjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmJwdGkuZXUiPkJhbHRpYyBpbnN0aXR1dGUgb2YgYWR2YW5jZWQgdGVjaG5vbG9neTwvYT4gLSBmdW5kaW5nIDwvbGk+DQo8bGk+SmVyZW15IEJhc3MgLSBjb2RlIGFuZCBzdWdnZXN0aW9uczwvbGk+DQo8bGk+QWxiZXJ0byBCZW5hdGkgLSBjb2RlPC9saT4NCjxsaT5UeWxlciBCb2VzcGZsdWcgLSBmdW5kaW5nIGFuZCBpZGVhczwvbGk+DQo8bGk+SmVmZiBCb3NjaCAtIFVEVCBWYWxpZGF0aW9uPC9saT4NCjxsaT5Sb2JlcnQgQ2FtcGJlbGwgLSBudW1lcm91cyBjb2RlIGNvbnRyaWJ1dGlvbnM8L2xpPg0KPGxpPk51bm8gQ29zdGEgLSBzdWdnZXN0aW9uczwvbGk+DQo8bGk+TWFyYyBHZWxkb24gLSBjb2RlPC9saT4NCjxsaT5LZXZpbiBHcmFuZG9uIC0gY29kZTwvbGk+DQo8bGk+Um9ubnkgS3JpanQgLSBjb2RlPC9saT4NCjxsaT5QYXVsIE5vb25lIC0gQ1NTIGFuZCBpZGVhczwvbGk+DQo8bGk+TW9ydGVuIFBvdWxzZW4gLSBjb2RlPC9saT4NCjxsaT5TaW1vbiBTY2hhdWZlbGJlcmdlciAtIGNvZGU8L2xpPg0KPC91bD4NCjxwPkkgYXBvbG9naXplIGZvciBhbnkgb21pc3Npb25zIC0gbm90aWZ5IG1lLCBhbmQgSVwnbGwgY29ycmVjdCB0aGUgb21pc3Npb24hPC9wPg0KPGgzPk1pc2NlbGxhbmVvdXMgTm90ZXM8L2gzPg0KPHVsPg0KPGxpPkFueSBmaWVsZHMgdGhhdCBzZW5kcyBlbWFpbCB0byBhIHNwZWNpZmllZCBlbWFpbCBhZGRyZXNzIHdpbGwgYWxzbyBhY2NlcHQgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBlbWFpbCBhZGRyZXNzZXMuPC9saT4NCjwvdWw+DQo8aDM+S25vd24gSXNzdWVzPC9oMz4NCjx1bD4NCjxsaT5Gb3JtQnVpbGRlciBkb2VzIG5vdCB5ZXQgc3VwcG9ydCBwcmV0dHkgVVJMcywgYWx0aG91Z2ggdGhhdCBzaG91bGRuXCd0IG1hdHRlciBzaW5jZSB0aGUgdXNlciBzaWRlIGlzIHByZXR0eSBzaW1wbGUuPC9saT4NCjxsaT5GaWxlVXBsb2FkIEZpZWxkcyBtYXkgbm90IHdvcmsgY29ycmVjdGx5IHdpdGggbXVsdGlwYWdlIGZvcm1zLjwvbGk+DQo8L3VsPg0KDQo8aDM+VHJvdWJsZXNob290aW5nPC9oMz4NCjxvbD4NCjxsaT5Gb3JtQnVpbGRlci9Gb3JtQnJvd3NlciA8c3Ryb25nPnJlcXVpcmVzPC9zdHJvbmc+IFBIUCA1IG9yIGxhdGVyIHRvIGZ1bmN0aW9uIGNvcnJlY3RseS48L2xpPg0KPGxpPkZpcnN0IHN0ZXAgaXMgdG8gY2hlY2sgeW91XCdyZSBydW5uaW5nIENNUyAxLjYgb3IgbGF0ZXIuPC9saT4NCjxsaT5TZWNvbmQgc3RlcCBpcyB0byByZWFkIGFuZCB1bmRlcnN0YW5kIHRoZSBjYXZlYXQgYWJvdXQgV1lTSVdZRyBlZGl0b3JzIHVwIGluIHRoZQ0Kc2VjdGlvbiA8ZW0+QWRkaW5nIGEgRm9ybSB0byBhIFBhZ2U8L2VtPi48L2xpPg0KPGxpPiBJZiB5b3VcJ3JlIG1pc3NpbmcgZmllbGRzIGluIGFuIGVtYWlsIHRoYXQgZ2V0cyBnZW5lcmF0ZWQsIGNoZWNrIHRoZSBkaXNwb3NpdGlvbiBmaWVsZFwncyB0ZW1wbGF0ZSwgYW5kIG1ha2Ugc3VyZSB5b3VcJ3JlIHNwZWNpZnlpbmcgdGhlIG1pc3NpbmcgZmllbGRzLiBTZWVtcyBvYnZpb3VzLCBidXQgaXRcJ3MgYW4gZWFzeSBtaXN0YWtlIHRvIG1ha2UuPC9saT4NCjxsaT5VbmNoZWNrIHRoZSAiSGlkZSBFcnJvcnMiIGNoZWNrYm94IGluIHRoZSBnbG9iYWwgb3B0aW9ucywgYW5kIHNlZSB3aGF0IG1lc3NhZ2UgZ2V0cyBkaXNwbGF5ZWQgd2hlbiB5b3Ugc3VibWl0IHlvdXIgZm9ybS48L2xpPg0KPGxpPiBKdXN0IG1lc3MgYXJvdW5kIGFuZCB0cnkgY2xpY2tpbmcgb24gbGlua3MgYW5kIGljb25zIGFuZCBzdHVmZi4gU2VlIHdoYXQgaGFwcGVucy48L2xpPg0KPGxpPiBNYWtlIHN1cmUgeW91IGNhbiBzdWNjZXNzZnVsbHkgc2VuZCBlbWFpbCB2aWEgdGhlIHRlc3QgaW4gdGhlIENNU01haWxlciBNb2R1bGUuIEl0XCdzIHNpbXBseSBhbWF6aW5nIGhvdyBtYW55IHByb2JsZW1zIGJvaWwgZG93biB0byBhIG1pc2NvbmZpZ3VyZWQgQ01TTWFpbGVyLjwvbGk+DQo8bGk+IExhc3QgcmVzcG9ydCBpcyB0byBlbWFpbCBtZSBvciBjYXRjaCBtZSBvbiBJUkMgYW5kIHdlIGNhbiBnbyBmcm9tIHRoZXJlLjwvbGk+DQo8L29sPiANCjxwPlRoaXMgaXMgbm8gbG9uZ2VyIGEgcGFydGljdWxhcmx5IGVhcmx5IHZlcnNpb24sIGJ1dCBpdCBpcyBwcm9iYWJseSBzdGlsbCBidWdneS4gV2hpbGUgSVwndmUgZG9uZSBhbGwgSSBjYW4NCnRvIG1ha2Ugc3VyZSBubyBlZ3JlZ2lvdXMgYnVncyBoYXZlIGNyZXB0IGluLCBJIGhhdmUgdG8gYWRtaXQgdGhhdCBkdXJpbmcgZWFybHkgdGVzdGluZywgdGhpcyBwcm9ncmFtDQpyZXZlYWxlZCBzZXZlbiBjb2Nrcm9hY2hlcywgdHdvIGVhcndpZ3MsIGEgc21hbGwgZmFtaWx5IG9mIGFwaGlkcywgYW5kIGEgd2Fsa2luZy1zdGljayBpbnNlY3QuIEl0IGFsc28NCmF0ZSB0aGUgbmVpZ2hib3JcJ3MgbmFzdHkgbGl0dGxlIHlhcCBkb2csIGZvciB3aGljaCBJIHdhcyBpbmFwcHJvcHJpYXRlbHkgZ3JhdGVmdWwuPC9wPg0KPHA+VGhlIGZpbmFsIHJlbGVhc2Ugd2lsbCBpbmNsdWRlIGJ1ZyBmaXhlcywgZG9jdW1lbnRhdGlvbiwgYW5kIHVuY29uZGl0aW9uYWwgbG92ZS48L3A+DQo8aDM+U3VwcG9ydDwvaDM+DQo8cD5UaGlzIG1vZHVsZSBkb2VzIG5vdCBpbmNsdWRlIGNvbW1lcmNpYWwgc3VwcG9ydC4gSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+DQo8dWw+DQo8bGk+Rm9yIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIG1vZHVsZSwgRkFRcywgb3IgdG8gZmlsZSBhIEJ1ZyBSZXBvcnQsIHBsZWFzZSB2aXNpdCB0aGUgQ01TIE1hZGUgU2ltcGxlICA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnIj5EZXZlbG9wZXIgRm9yZ2U8L2E+LjwvbGk+DQo8bGk+VG8gb2J0YWluIGNvbW1lcmNpYWwgc3VwcG9ydCwgcGxlYXNlIHNlbmQgYW4gZW1haWwgdG8gdGhlIGF1dGhvciBhdCA8YSBocmVmPSJtYWlsdG86c2pnQGNtc21vZHVsZXMuY29tIj48c2pnQGNtc21vZHVsZXMuY29tPjwvYT4uPC9saT4NCjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyI+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uPC9saT4NCjxsaT5UaGUgYXV0aG9yIGNhbiBvZnRlbiBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaXJjOi8vaXJjLmZyZWVub2RlLm5ldC8jY21zIj5DTVMgSVJDIENoYW5uZWw8L2E+LjwvbGk+DQo8bGk+TGFzdGx5LCB5b3UgbWF5IGhhdmUgc29tZSBzdWNjZXNzIGVtYWlsaW5nIHRoZSBhdXRob3IgZGlyZWN0bHkgYW5kIGdyb3ZlbGxpbmcgZm9yIGZyZWUgc3VwcG9ydC48L2xpPg0KPGxpPkRvbmF0aW9ucyBhcmUgZ29vZCBtb3RpdmF0b3JzLCB0b28uIEtlZXAgaW4gbWluZCB0aGF0IHRoZSBkb2xsYXIgaXMgd2VhaywgYW5kIGlmIHlvdSBhcmUgbm90IGluIHRoZSBVUywgeW91ciBkb25hdGlvbiBnZXRzIG1hZ25pZmllZC48L2xpPg0KPC91bD4NCjxwPktlZXAgaW4gbWluZCB0aGF0IHRoZSBhdXRob3IgaGFzIHB1dCA8ZW0+aHVuZHJlZHMgYW5kIGh1bmRyZWRzIG9mIGhvdXJzPC9lbT4gaW50byB0aGUgZGV2ZWxvcG1lbnQgb2YgdGhpcyBtb2R1bGUuDQpQbGVhc2UgdGFrZSB0aGUgdGltZSB0byByZWFkIHRoZSBkb2N1bWVudGF0aW9uIGJlZm9yZSBzZW5kaW5nIHF1ZXN0aW9ucy4gRWl0aGVyIHRoYXQsIG9yIHNlbmQgeW91ciBxdWVzdGlvbnMgd3JpdHRlbiBvbg0KZmluYW5jaWFsbHkgbmVnb3RpYWJsZSBpbnN0cnVtZW50cyAoaS5lLiwgY2hlY2tzIG9yIGNhc2gpLiBBbSBJIHNvdW5kaW5nIGxpa2UgYSBicm9rZW4gcmVjb3JkPyBEbyB5b3Uga2lkcyB0aGVzZSBkYXlzDQpldmVuIGtub3cgd2hhdCBhIGJyb2tlbiByZWNvcmQgaXM/IEkgd291bGQgc2F5IHNraXBwaW5nIENELCBidXQgeW91IG1pZ2h0IG5vdCBrbm93IHdoYXQgdGhhdCBpcyBlaXRoZXIuIExpa2UgYQ0Kc2FtcGxlIHRoYXQgZ290IHN0dWNrIG9uIGxvb3A/IERhbW4sIEkgYW0gZ2V0dGluZyBvbGQuIFNvIGlzIHRoaXMgcGFyYWdyYXBoLiBUaW1lIHRvIG1vdmUgb24sIGhlcmUuPC9wPjxmb3JtIGFjdGlvbj0iaHR0cHM6Ly93d3cucGF5cGFsLmNvbS9jZ2ktYmluL3dlYnNjciIgbWV0aG9kPSJwb3N0Ij4NCjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNtZCIgdmFsdWU9Il9zLXhjbGljayI+DQo8aW5wdXQgdHlwZT0iaW1hZ2UiIHNyYz0iaHR0cHM6Ly93d3cucGF5cGFsLmNvbS9lbl9VUy9pL2J0bi9idG5fZG9uYXRlQ0NfTEcuZ2lmIiBib3JkZXI9IjAiIG5hbWU9InN1Ym1pdCIgYWx0PSJQYXlQYWwgLSBUaGUgc2FmZXIsIGVhc2llciB3YXkgdG8gcGF5IG9ubGluZSEiPg0KPGltZyBhbHQ9IiIgYm9yZGVyPSIwIiBzcmM9Imh0dHBzOi8vd3d3LnBheXBhbC5jb20vZW5fVVMvaS9zY3IvcGl4ZWwuZ2lmIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj4NCjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImVuY3J5cHRlZCIgdmFsdWU9Ii0tLS0tQkVHSU4gUEtDUzctLS0tLU1JSUhUd1lKS29aSWh2Y05BUWNFb0lJSFFEQ0NCendDQVFFeGdnRXdNSUlCTEFJQkFEQ0JsRENCampFTE1Ba0dBMVVFQmhNQ1ZWTXhDekFKQmdOVkJBZ1RBa05CTVJZd0ZBWURWUVFIRXcxTmIzVnVkR0ZwYmlCV2FXVjNNUlF3RWdZRFZRUUtFd3RRWVhsUVlXd2dTVzVqTGpFVE1CRUdBMVVFQ3hRS2JHbDJaVjlqWlhKMGN6RVJNQThHQTFVRUF4UUliR2wyWlY5aGNHa3hIREFhQmdrcWhraUc5dzBCQ1FFV0RYSmxRSEJoZVhCaGJDNWpiMjBDQVFBd0RRWUpLb1pJaHZjTkFRRUJCUUFFZ1lBSU5uQldiL1hNNGxtdkxHSGw5UmQxY3ZMNXRycVJoYzcrRm9HSDVMdG9mUWlWcmdGU3ZoN2gxb2pnNVN6VHhiZ3RpMzJaRjAvdWN1cS9PUVNEK1Z6dXVBRjF2NndWcnR5T2VDUEVBdzhqODFESk9YVmpKSHNJWTJtdmlvclBqb2xMUWtGbnYxMnlSVHB1RldGbjRaWGU1K3ZuQ2pYcUJ5MEVFL2FoekVNTW56RUxNQWtHQlNzT0F3SWFCUUF3Z2N3R0NTcUdTSWIzRFFFSEFUQVVCZ2dxaGtpRzl3MERCd1FJY0tOTndPUEZvd3VBZ2FpdlM3djBqMlhGeVE5ZHI4bmk5Rzk1ZUU3WXFvZ0dsSzl3dVNwbGxPZzlsbnJ1dm5FUXFzbVJtUW50aFFxV0NUYlp6RzIrSUV0ZU00SVVzeEV1R1RydzhwWkNVMjRUTkRja25LVXg5VXozdlN4T2gzZ3U5NXlKeUR3b2VNdmFFQTI0YnMxNFFFYkpiaE5qWTZXeEh6OStpL2xWQURCanlBT0RZTXV6YWxEa3ZkdXZ3ZUdOWms5bFlMUlJDb1BQTmlsRzFQZjZ3ODdCSHBrU004V1ExTEM5K1JXZFhmWmNtK2VnZ2dPSE1JSURnekNDQXV5Z0F3SUJBZ0lCQURBTkJna3Foa2lHOXcwQkFRVUZBRENCampFTE1Ba0dBMVVFQmhNQ1ZWTXhDekFKQmdOVkJBZ1RBa05CTVJZd0ZBWURWUVFIRXcxTmIzVnVkR0ZwYmlCV2FXVjNNUlF3RWdZRFZRUUtFd3RRWVhsUVlXd2dTVzVqTGpFVE1CRUdBMVVFQ3hRS2JHbDJaVjlqWlhKMGN6RVJNQThHQTFVRUF4UUliR2wyWlY5aGNHa3hIREFhQmdrcWhraUc5dzBCQ1FFV0RYSmxRSEJoZVhCaGJDNWpiMjB3SGhjTk1EUXdNakV6TVRBeE16RTFXaGNOTXpVd01qRXpNVEF4TXpFMVdqQ0JqakVMTUFrR0ExVUVCaE1DVlZNeEN6QUpCZ05WQkFnVEFrTkJNUll3RkFZRFZRUUhFdzFOYjNWdWRHRnBiaUJXYVdWM01SUXdFZ1lEVlFRS0V3dFFZWGxRWVd3Z1NXNWpMakVUTUJFR0ExVUVDeFFLYkdsMlpWOWpaWEowY3pFUk1BOEdBMVVFQXhRSWJHbDJaVjloY0dreEhEQWFCZ2txaGtpRzl3MEJDUUVXRFhKbFFIQmhlWEJoYkM1amIyMHdnWjh3RFFZSktvWklodmNOQVFFQkJRQURnWTBBTUlHSkFvR0JBTUZIVHQzOFJNeExYSnlPMlNtUytOZGw3MlQ3b0tKNHU0dXcrNmF3bnRBTFdoMDNQZXdtSUp1emJBTFNjc1RTNHNab1MxZktjaUJHb2gxMWdJZkh6eWx2a2ROZS9oSmw2Ni9SR3FyajVyRmIwOHNBQUJOVHpEVGlxcU5wSmVCc1lzL2MyYWlHb3pwdFgyUmxuQmt0SCtTVU5wQWFqVzcyNE52Mld2aGlmNnNGQWdNQkFBR2pnZTR3Z2Vzd0hRWURWUjBPQkJZRUZKYWZmTHZHYnhlOVdUOVMxd29iN0JEV1pKUnJNSUc3QmdOVkhTTUVnYk13Z2JDQUZKYWZmTHZHYnhlOVdUOVMxd29iN0JEV1pKUnJvWUdVcElHUk1JR09NUXN3Q1FZRFZRUUdFd0pWVXpFTE1Ba0dBMVVFQ0JNQ1EwRXhGakFVQmdOVkJBY1REVTF2ZFc1MFlXbHVJRlpwWlhjeEZEQVNCZ05WQkFvVEMxQmhlVkJoYkNCSmJtTXVNUk13RVFZRFZRUUxGQXBzYVhabFgyTmxjblJ6TVJFd0R3WURWUVFERkFoc2FYWmxYMkZ3YVRFY01Cb0dDU3FHU0liM0RRRUpBUllOY21WQWNHRjVjR0ZzTG1OdmJZSUJBREFNQmdOVkhSTUVCVEFEQVFIL01BMEdDU3FHU0liM0RRRUJCUVVBQTRHQkFJRmZPbGFhZ0ZybDcxK2pxNk9LaWRiV0ZTRStRNEZxUk92ZGdJT050aCs4a1NLLy9ZLzRpaHVFNFltdnpuNWNlRTNTL2lCU1FRTWp5dmIrczJUV2JRWUR3Y3AxMjlPUEliRDllcGRyNHRKT1VOaVNvanc3Qkh3WVJpUGg1OFMxeEdsRmdIRlh3ckVCYjNkZ05iTVVhK3U0cWVjdHNNQVhwVkhuRDl3SXlmbUhNWUlCbWpDQ0FaWUNBUUV3Z1pRd2dZNHhDekFKQmdOVkJBWVRBbFZUTVFzd0NRWURWUVFJRXdKRFFURVdNQlFHQTFVRUJ4TU5UVzkxYm5SaGFXNGdWbWxsZHpFVU1CSUdBMVVFQ2hNTFVHRjVVR0ZzSUVsdVl5NHhFekFSQmdOVkJBc1VDbXhwZG1WZlkyVnlkSE14RVRBUEJnTlZCQU1VQ0d4cGRtVmZZWEJwTVJ3d0dnWUpLb1pJaHZjTkFRa0JGZzF5WlVCd1lYbHdZV3d1WTI5dEFnRUFNQWtHQlNzT0F3SWFCUUNnWFRBWUJna3Foa2lHOXcwQkNRTXhDd1lKS29aSWh2Y05BUWNCTUJ3R0NTcUdTSWIzRFFFSkJURVBGdzB3T0RBM01ERXdNelU1TXpsYU1DTUdDU3FHU0liM0RRRUpCREVXQkJRTTBMVjMwZkxYY0g5TTVkTW11VEJMbnNGUTRqQU5CZ2txaGtpRzl3MEJBUUVGQUFTQmdCRXoyWHFNTXFGYnVVaGorTDEyOEN3MnU4U2hPS1F0dHJLci9oaTBXUmVlbkhEWUJpSE9TdGw2M1J2NzZRMm1wZDQ1M1J2Q2o1bXE3ZFJ0dVJCNnBmSEdSRGtVWDZOMStPT0lvSWZyb0JaSUFUTmh6OUNFSHdFRmtOallnMEVHTUFHK2pjYkFqMURKalI3M2N4YmFOclhXUHhBK2hpUWhIbEFyclpBN3JGVjUtLS0tLUVORCBQS0NTNy0tLS0tDQoiPg0KPC9mb3JtPjxwPkFzIHBlciB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkIGFzLWlzLiBQbGVhc2UgcmVhZCB0aGUgdGV4dA0Kb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuPC9wPg0KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+DQo8cD5Db3B5cmlnaHQgwqkgMjAwOSwgU2FtdWVsIEdvbGRzdGVpbiA8YSBocmVmPSJtYWlsdG86c2pnQGNtc21vZHVsZXMuY29tIj48c2pnQGNtc21vZHVsZXMuY29tPjwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4NCjxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+JzsKJGxhbmdbJ3FjYSddID0gJ1AwLTE5NjYzNTIzMjktMTI3NTIzMTMyMTE5MSc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEyNzUyMzIzMzcuMS4yLnV0bWNzcj1nb29nbGV8dXRtY2NuPShvcmdhbmljKXx1dG1jbWQ9b3JnYW5pY3x1dG1jdHI9Y21zbXMgZG93bmxvYWQgbW9kdWxlIHRyYW5zbGF0ZSc7CiRsYW5nWyd1dG1hJ10gPSAnMTU2ODYxMzUzLjEzMTE2Mzc1MTAuMTI3NTIzMTMyMS4xMjc1MjQ0OTUyLjEyNzUzMzA5ODkuMyc7CiRsYW5nWyd1dG1jJ10gPSAnMTU2ODYxMzUzJzsKJGxhbmdbJ3V0bWInXSA9ICcxNTY4NjEzNTMnOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/es_ES.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0NvbnN0cnVjdG9yIGRlIEZvcm11bGFyaW9zJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfJ10gPSAnU2luIENvbmZpZ3VyYXIgVGlwbyBkZSBDYW1wbyc7CiRsYW5nWydmaWVsZF90eXBlX0NhdGFsb2dlckl0ZW1zRmllbGQnXSA9ICdTZWxlY2Npb25hciB1bm8gKG8gbWFzKSBpdGVtcyBkZSBDYXRhbG9nZXInOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldEVuZCddID0gJy1GaW4gZGUgRmllbGRzZXQnOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldFN0YXJ0J10gPSAnLUNvbWllbnpvIGRlIEZpZWxkc2V0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkJ10gPSAnRW50cmFkYSBkZSBUZXh0byc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRGaWVsZEV4cGFuZGFibGUnXSA9ICdFbnRyYWRhIGRlIFRleHRvIChNJnVhY3V0ZTtsdGlwbGUpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEFyZWFGaWVsZCddID0gJyZBYWN1dGU7cmVhIGRlIFRleHRvJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hGaWVsZCddID0gJ0NhamEgZGUgVGlsZGUnOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEdyb3VwRmllbGQnXSA9ICdHcnVwbyBDYWphcyBkZSBUaWxkZSc7CiRsYW5nWydmaWVsZF90eXBlX1B1bGxkb3duRmllbGQnXSA9ICdEZXNwbGVnYWJsZSc7CiRsYW5nWydmaWVsZF90eXBlX011bHRpc2VsZWN0RmllbGQnXSA9ICdNdWx0aXNlbGVjY2kmb2FjdXRlO24nOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0ZVBpY2tlckZpZWxkJ10gPSAnU2VsZWN0b3IgRXN0YWRvcyBkZSBVLlMuJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUHJvdmluY2VQaWNrZXJGaWVsZCddID0gJ1NlbGVjY2lvbmFkb3IgZGUgcHJvdmluY2lhIENhbmFkaWVuc2UnOwokbGFuZ1snZmllbGRfdHlwZV9Db3VudHJ5UGlja2VyRmllbGQnXSA9ICdTZWxlY3RvciBkZSBQYWlzZXMnOwokbGFuZ1snZmllbGRfdHlwZV9EYXRlUGlja2VyRmllbGQnXSA9ICdTZWxlY3RvciBkZSBGZWNoYXMnOwokbGFuZ1snZmllbGRfdHlwZV9UaW1lUGlja2VyRmllbGQnXSA9ICdTZWxlY3RvciBkZSBIb3Jhcyc7CiRsYW5nWydmaWVsZF90eXBlX1JhZGlvR3JvdXBGaWVsZCddID0gJ0dydXBvIEJvdCZvYWN1dGU7bmVzIGRlIFJhZGlvJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EaXJlY3RvciddID0gJypFbnZpYXIgRW1haWwgZGUgUmVzdWx0YWRvcyBCYXNhZG8gZW4gRGVzcGxlZ2FibGUnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZpbGVEaXJlY3RvciddID0gJypHdWFyZGFyIFJlc3VsdGFkb3MgYSBBcmNoaXZvIEJhc2FkbyBlbiBEZXNwbGVnYWJsZSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uTXVsdGlzZWxlY3RGaWxlRGlyZWN0b3InXSA9ICcqR3VhcmRhciBSZXN1bHRhZG9zIGEgQXJjaGl2byhzKSBCYXNhZG8ocykgZW4gTSZ1YWN1dGU7bHRpcGxlIFNlbGVjY2lvbmVzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25QYWdlUmVkaXJlY3RvciddID0gJypSZWRpcmVjY2lvbmFyIGEgUCZhYWN1dGU7Z2luYSBCYXNhZGEgZW4gRGVzcGxlZ2FibGUnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsJ10gPSAnKkVudmlhciBFbWFpbCBkZSBSZXN1bHRhZG9zIGEgRGlyZWNjaSZvYWN1dGU7bihlcykgQ29uZmlndXJhZGFzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbENvbmZpcm1hdGlvbiddID0gJypWYWxpZGFyLXZpYS1EaXJlY2NpJm9hY3V0ZTtuIEVtYWlsJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Gcm9tRW1haWxBZGRyZXNzRmllbGQnXSA9ICcqQ2FtcG8gRW1haWwgJnF1b3Q7RGUgRGlyZWNjaSZvYWN1dGU7biZxdW90OywgeSBlbnZpYXIgY29waWEnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZpbGUnXSA9ICcqRXNjcmliaXIgUmVzdWx0YWRvcyBhIEFyY2hpdm8gUGxhbm8nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRhdGFiYXNlJ10gPSAnKkd1YXJkYXIgUmVzdWx0YWRvcyBlbiBCYXNlIGRlIERhdG9zJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Gb3JtQnJvd3NlciddID0gJypHdWFyZGFyIFJlc3VsdGFkb3MgcGFyYSBNb2R1bG8gRm9ybUJyb3dzZXIgdi4zJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Vc2VyVGFnJ10gPSAnKkxsYW1hciBhIHVuYSBUYWcgZGVmaW5pZGEgcG9yIFVzdWFyaW8gY29uIGxvcyBSZXN1bHRhZG9zIGRlbCBGb3JtJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EZWxpdmVyVG9FbWFpbEFkZHJlc3NGaWVsZCddID0gJypFbnZpYXIgRW1haWwgYSBEaXJlY2Npb24gRW1haWwgU3VtaW5pc3RyYWRhIHBvciBVc3VhcmlvJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbFNpdGVBZG1pbiddID0gJypFbnZpYXIgRW1haWwgYSBVc3VhcmlvIEFkbWluaXN0cmF0aXZvIGRlIENNUyc7CiRsYW5nWydmaWVsZF90eXBlX1BhZ2VCcmVha0ZpZWxkJ10gPSAnLUNvcnRlIGRlIFAmYWFjdXRlO2dpbmEnOwokbGFuZ1snZmllbGRfdHlwZV9GaWxlVXBsb2FkRmllbGQnXSA9ICdTdWJpciBBcmNoaXZvJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsQWRkcmVzc0ZpZWxkJ10gPSAnQ2FtcG8gRW1haWwgJnF1b3Q7RGVzZGUgRGlyZWNjaSZvYWN1dGU7biZxdW90Oyc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbEFkZHJlc3NBZ2FpbkZpZWxkJ10gPSAnQ2FtcG8gRW1haWwgJnF1b3Q7RGUgRGlyZWNjaSZvYWN1dGU7biZxdW90OyBkZSBudWV2byc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbE5hbWVGaWVsZCddID0gJ0NhbXBvIEVtYWlsICZxdW90O0Rlc2RlIE5vbWJyZSZxdW90Oyc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbFN1YmplY3RGaWVsZCddID0gJ0NhbXBvIEVtYWlsICZxdW90O0FzdW50byZxdW90Oyc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRpY1RleHRGaWVsZCddID0gJy1UZXh0byBFc3QmYWFjdXRlO3RpY28nOwokbGFuZ1snZmllbGRfdHlwZV9TeXN0ZW1MaW5rRmllbGQnXSA9ICctRW5sYWNlIEVzdCZhYWN1dGU7dGljbyc7CiRsYW5nWydmaWVsZF90eXBlX0xpbmtGaWVsZCddID0gJ0VubGFjZSAoRW50cmFkbyBwb3IgVXN1YXJpbyknOwokbGFuZ1snZmllbGRfdHlwZV9IaWRkZW5GaWVsZCddID0gJy1DYW1wbyBPY3VsdG8nOwokbGFuZ1snZmllbGRfdHlwZV9Db21wdXRlZEZpZWxkJ10gPSAnLUNhbXBvIENvbXB1dGFkbyc7CiRsYW5nWydmaWVsZF90eXBlX1VuaXF1ZUludGVnZXJGaWVsZCddID0gJy1OdW1lcm8gZW50ZXJvIHVuaWNvIChzZXJpYWwpJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbm9uZSddID0gJ1NpbiBWYWxpZGFyJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbnVtZXJpYyddID0gJ051bSZlYWN1dGU7cmljbyc7CiRsYW5nWyd2YWxpZGF0aW9uX2ludGVnZXInXSA9ICdFbnRlcm8nOwokbGFuZ1sndmFsaWRhdGlvbl9lbWFpbF9hZGRyZXNzJ10gPSAnRGlyZWNjaSZvYWN1dGU7biBFbWFpbCc7CiRsYW5nWyd2YWxpZGF0aW9uX3VzcGhvbmUnXSA9ICdOJnVhY3V0ZTttZXJvIGRlIFRlbCZlYWN1dGU7Zm9ubyAoVVNBKSc7CiRsYW5nWyd2YWxpZGF0aW9uX211c3RfY2hlY2snXSA9ICdEZWJlIENoZXF1ZWFyc2UnOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9tYXRjaCddID0gJ0lndWFsYSBFeHByZXNpJm9hY3V0ZTtuIFJlZ3VsYXInOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9ub21hdGNoJ10gPSAnTm8gSWd1YWxhIEV4cHJlc2kmb2FjdXRlO24gUmVndWxhcic7CiRsYW5nWydyZXF1aXJlZF9maWVsZF9taXNzaW5nJ10gPSAnTm8gc2UgaW5kaWMmb2FjdXRlOyBlbCB2YWxvciBwYXJhIHVuIGNhbXBvIHJlcXVlcmlkbyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV92YWx1ZSddID0gJ1BvciBmYXZvciBpbmdyZXNlIHVuIHZhbG9yIHBhcmEgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfbnVtYmVyJ10gPSAnUG9yIGZhdm9yIGluZ3Jlc2UgdW4gbiZ1YWN1dGU7bWVybyBwYXJhICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl92YWxpZCddID0gJ1BvciBmYXZvciBpbmdyZXNlIHVuYSBlbnRyYWRhIHYmYWFjdXRlO2xpZGEgcGFyYSAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5faW50ZWdlciddID0gJ1BvciBmYXZvciBpbmdyZXNlIHVuIHZhbG9yIGVudGVybyBwYXJhICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hbl9lbWFpbCddID0gJ1BvciBmYXZvciBpbmdyZXNlIHVuYSBkaXJlY2NpJm9hY3V0ZTtuIGVtYWlsIHYmYWFjdXRlO2xpZGEgcGFyYSAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydlbWFpbF9hZGRyZXNzX2RvZXNfbm90X21hdGNoJ10gPSAnTGEgZGlyZWNjaSZvYWN1dGU7biBkZSBFbWFpbCBubyBjb2luY2lkZSBjb24gbGEgZGUgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfcGhvbmUnXSA9ICdQb3IgZmF2b3IgaW5ncmVzZSB1biBuJnVhY3V0ZTttZXJvIGRlIHRlbCZlYWN1dGU7Zm9ubyB2JmFhY3V0ZTtsaWRvIHBhcmEgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1snbm90X3ZhbGlkX2VtYWlsJ10gPSAnJmlleGNsOyZxdW90OyVzJnF1b3Q7IG5vIHBhcmVjZSBzZXIgdW5hIGRpcmVjY2kmb2FjdXRlO24gZGUgZW1haWwgdiZhYWN1dGU7bGlkYSEnOwokbGFuZ1sncGxlYXNlX2VudGVyX25vX2xvbmdlciddID0gJ1BvciBmYXZvciBpbmdyZXNlIHVuIHZhbG9yIHF1ZSBubyB0ZW5nYSBtJmFhY3V0ZTtzIGRlICVzIGNhcmFjdGVyZXMnOwokbGFuZ1sndGl0bGVfbGlzdF9kZWxpbWl0ZXInXSA9ICdDYXJhY3RlciBhIHV0aWxpemFyIGNvbW8gZGVsaW1pdGFkb3IgZW4gcmVzdWx0YWRvcyBxdWUgb2ZyZWNlbiBtJmFhY3V0ZTtzIGRlIHVuIHZhbG9yJzsKJGxhbmdbJ3lvdV9uZWVkX3Blcm1pc3Npb24nXSA9ICdVc3RlZCBuZWNlc2l0YSB0ZW5lciBlbCBwZXJtaXNvICZxdW90OyVzJnF1b3Q7IHBhcmEgcmVhbGl6YXIgbGEgb3BlcmFjaSZvYWN1dGU7bi4nOwokbGFuZ1snbGFja3Blcm1pc3Npb24nXSA9ICcmaWV4Y2w7UGVyZCZvYWN1dGU7biEgUGVybyB1c3RlZCBubyB0aWVuZSBwcml2aWxlZ2lvcyBhZGVjdWFkb3MgcGFyYSBpbmdyZXNhciBhICZlYWN1dGU7c3RhIHNlY2NpJm9hY3V0ZTtuLic7CiRsYW5nWydmaWVsZF9vcmRlcl91cGRhdGVkJ10gPSAnU2UgYWN0dWFsaXomb2FjdXRlOyBlbCBvcmRlbiBkZSBsb3MgY2FtcG9zLic7CiRsYW5nWydmb3JtX2RlbGV0ZWQnXSA9ICdGb3JtdWxhcmlvIGVsaW1pbmFkby4nOwokbGFuZ1snZmllbGRfZGVsZXRlZCddID0gJ0NhbXBvIGVsaW1pbmFkby4nOwokbGFuZ1snY29uZmlndXJhdGlvbl91cGRhdGVkJ10gPSAnQ29uZmlndXJhY2kmb2FjdXRlO24gQWN0dWFsaXphZGEuJzsKJGxhbmdbJ3lvdV9tdXN0X2NoZWNrJ10gPSAnRGViZSBjb250cm9sYXIgYSAmcXVvdDslcyZxdW90OyBwYXJhIHBvZGVyIGNvbnRpbnVhci4nOwokbGFuZ1snbXVzdF9zcGVjaWZ5X29uZV9kZXN0aW5hdGlvbiddID0gJyZpZXhjbDtEZWJlIGluZGljYXIgYWwgbWVub3MgdW5hIGRpcmVjY2kmb2FjdXRlO24gZGUgZGVzdGlubyEnOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9mb3JtJ10gPSAnJmlleGNsO0VzdCZhYWN1dGU7IHNlZ3VybyBxdWUgcXVpZXJlIGVsaW1pbmFyIGVsIGZvcm11bGFyaW8gJXM/JzsKJGxhbmdbJ2FyZV95b3Vfc3VyZV9kZWxldGVfZmllbGQnXSA9ICcmaWV4Y2w7RXN0JmFhY3V0ZTsgc2VndXJvIHF1ZSBxdWllcmUgZWxpbWluYXIgZWwgY2FtcG8gJXM/JzsKJGxhbmdbJ25vdGljZV9zZWxlY3RfdHlwZSddID0gJ0xhcyBvcGNpb25lcyBhdmFuemFkYXMgbm8gZXN0JmFhY3V0ZTtuIGRpc3BvbmlibGVzIGhhc3RhIHF1ZSBubyBzZSBoYXlhIGZpamFkbyBlbCB0aXBvIGRlIGNhbXBvLic7CiRsYW5nWydmaWVsZF9uYW1lX2luX3VzZSddID0gJ0VsIG5vbWJyZSBkZSBjYW1wbyAmcXVvdDslcyZxdW90OyB5YSBlc3QmYWFjdXRlOyBlbiB1c28uIFBvciBmYXZvciB1c2Ugbm9tYnJlcyBkZSBjYW1wb3MgJnVhY3V0ZTtuaWNvcywgbyBkZXNoYWJpbGl0ZSBub21icmVzIGRlIGNhbXBvcyAmdWFjdXRlO25pY29zIGVuIGxhIGNvbmZpZ3VyYWNpJm9hY3V0ZTtuIGRlbCBDb25zdHJ1Y3RvciBkZSBGb3JtdWxhcmlvcy4nOwokbGFuZ1snZmllbGRfbm9fbmFtZSddID0gJ0xvcyBjYW1wb3MgZGViZW4gdGVuZXIgbm9tYnJlLCBzYWx2byBxdWUgbG8gZGVzaGFiaWxpdGUgZW4gbGEgY29uZmlndXJhY2kmb2FjdXRlO24gZGVsIENvbnN0cnVjdG9yIGRlIEZvcm11bGFyaW9zLic7CiRsYW5nWydhbm9ueW1vdXMnXSA9ICdBbiZvYWN1dGU7bmltbyc7CiRsYW5nWydhYmJyZXZpYXRpb25fbGVuZ3RoJ10gPSAnTG9uZzogJXMnOwokbGFuZ1snYm94ZXMnXSA9ICclcyBjYWphcyc7CiRsYW5nWydvcHRpb25zJ10gPSAnJXMgb3BjaW9uZXMnOwokbGFuZ1sndGV4dF9sZW5ndGgnXSA9ICclcyBjYXJhY3QuJzsKJGxhbmdbJ29yZGVyJ10gPSAnT3JkZW4nOwokbGFuZ1sndW5zcGVjaWZpZWQnXSA9ICdbc2luIGVzcGVjaWZpY2FyXSc7CiRsYW5nWydhZGRlZCddID0gJ2FncmVnYWRvJzsKJGxhbmdbJ3VwZGF0ZWQnXSA9ICdhY3R1YWxpemFkbyc7CiRsYW5nWydzb3J0X29wdGlvbnMnXSA9ICdPcmRlbmFyIG9wY2lvbmVzIGFsIHNhbGlyJzsKJGxhbmdbJ3NlbGVjdF9vbmUnXSA9ICdFbGVnaXIgVW5vJzsKJGxhbmdbJ3NlbGVjdF90eXBlJ10gPSAnRWxlZ2lyIFRpcG8nOwokbGFuZ1sndG8nXSA9ICdBJzsKJGxhbmdbJ3llcyddID0gJ1NpJzsKJGxhbmdbJ25vJ10gPSAnTm8gJzsKJGxhbmdbJ3JlY2lwaWVudHMnXSA9ICdyZWNlcHRvcmVzJzsKJGxhbmdbJ2ZpbGVfY291bnQnXSA9ICclcyBhcmNoaXZvcyBwb3NpYmxlcyc7CiRsYW5nWydkZXN0aW5hdGlvbl9jb3VudCddID0gJyVzIGRlc3Rpbm9zJzsKJGxhbmdbJ3NhdmUnXSA9ICdHdWFyZGFyJzsKJGxhbmdbJ2FkZCddID0gJ0FncmVnYXInOwokbGFuZ1sndXBkYXRlJ10gPSAnQWN0dWFsaXphcic7CiRsYW5nWydzYXZlX2FuZF9jb250aW51ZSddID0gJ0d1YXJkYXIgeSBDb250aW51YXIgRWRpdGFuZG8nOwokbGFuZ1snaW5mb3JtYXRpb24nXSA9ICdJbmZvcm1hY2kmb2FjdXRlO24nOwokbGFuZ1snYXV0b21hdGljJ10gPSAnQXV0b20mYWFjdXRlO3RpY28nOwokbGFuZ1snZm9ybXMnXSA9ICdGb3JtdWxhcmlvcyc7CiRsYW5nWydmb3JtJ10gPSAnRm9ybXVsYXJpbyAlcyc7CiRsYW5nWydjb25maWd1cmF0aW9uJ10gPSAnQ29uZmlndXJhY2kmb2FjdXRlO24nOwokbGFuZ1snZmllbGRfcmVxdWlyZW1lbnRfdXBkYXRlZCddID0gJ0VzdGFkbyBkZSBjYW1wbyByZXF1ZXJpZG8gYWN0dWFsaXphZG8uJzsKJGxhbmdbJ21heGltdW1fc2l6ZSddID0gJ1RhbWEmbnRpbGRlO28gTSZhYWN1dGU7eC4nOwokbGFuZ1sncGVybWl0dGVkX2V4dGVuc2lvbnMnXSA9ICdFeHRlbmNpb25lcyc7CiRsYW5nWydwZXJtaXR0ZWRfZmlsZXR5cGVzJ10gPSAnVGlwb3MgZGUgYXJjaGl2b3MgcGVybWl0aWRvcyc7CiRsYW5nWydmaWxlX3Rvb19sYXJnZSddID0gJyZpZXhjbDtBcmNoaXZvIHN1YmlkbyBlcyBtdXkgZ3JhbmRlISBUYW1hJm50aWxkZTtvIG0mYWFjdXRlO3guIGVzOic7CiRsYW5nWydpbGxlZ2FsX2ZpbGVfdHlwZSddID0gJ0VzdGUgdGlwbyBkZSBhcmNoaXZvIG5vIHB1ZWRlIHNlciBzdWJpZG8uIFBvciBmYXZvciBjb250cm9sYXIgcXVlIGxhIGV4dGVuc2kmb2FjdXRlO24gZXMgY29ycmVjdGEuJzsKJGxhbmdbJ3VwbG9hZCddID0gJ1N1YmlyJzsKJGxhbmdbJ2Zvcm1faW1wb3J0ZWQnXSA9ICdGb3JtdWxhcmlvIEltcG9ydGFkby4nOwokbGFuZ1snZm9ybV9pbXBvcnRfZmFpbGVkJ10gPSAnJmlleGNsO0ZhbGwmb2FjdXRlOyBsYSBpbXBvcnRhY2kmb2FjdXRlO24gZGVsIGZvcm11bGFyaW8hIE5vIGhheSBwcm9ibGVtYSBjb24gZWwgZm9ybWF0byBkZWwgYXJjaGl2byBYTUwuJzsKJGxhbmdbJ3Jvd3MnXSA9ICclcyBmaWxhcyc7CiRsYW5nWydjb2xzJ10gPSAnJXMgY29sdW1uYXMnOwokbGFuZ1snMTJfaG91ciddID0gJ1JlbG9qIGRlIDEyIEhvcmFzJzsKJGxhbmdbJzI0X2hvdXInXSA9ICdSZWxvaiBkZSAyNCBIb3Jhcyc7CiRsYW5nWydob3VyJ10gPSAnSG9yYSc7CiRsYW5nWydtaW4nXSA9ICdNaW51dG8nOwokbGFuZ1snbWVyaWQnXSA9ICdNZXJpZGlhbm8nOwokbGFuZ1snZGF0ZV9yYW5nZSddID0gJ1JhbmdvOiAlcyAtICVzJzsKJGxhbmdbJ3RoYW5rcyddID0gJyZpZXhjbDtHcmFjaWFzISBTZSByZWNpYmkmb2FjdXRlOyBzdSBlbnYmaWFjdXRlO28uJzsKJGxhbmdbJ2VkaXQnXSA9ICdFZGl0YXInOwokbGFuZ1snZGVsZXRlJ10gPSAnRWxpbWluYXInOwokbGFuZ1snZGF5J10gPSAnRCZpYWN1dGU7YSc7CiRsYW5nWydtb24nXSA9ICdNZXMnOwokbGFuZ1sneWVhciddID0gJ0EmbnRpbGRlO28nOwokbGFuZ1snbm9uZSddID0gJyhuaW5ndW5vKSc7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ00mb2FjdXRlO2R1bG8gZGVzaW5zdGFsYWRvLic7CiRsYW5nWydpbnN0YWxsZWQnXSA9ICdJbnN0YWxhZGEgdmVyc2kmb2FjdXRlO24gJXMgZGVsIG0mb2FjdXRlO2R1bG8uJzsKJGxhbmdbJ3VwZ3JhZGVkJ10gPSAnU2UgYWN0dWFsaXpvIGVsIG0mb2FjdXRlO2R1bG8gYSBsYSB2ZXJzaSZvYWN1dGU7biAlcy4nOwokbGFuZ1snYnV0dG9uX3ByZXZpb3VzJ10gPSAnVm9sdmVyLi4uJzsKJGxhbmdbJ2J1dHRvbl9zdWJtaXQnXSA9ICdFbnZpYXIgRm9ybXVsYXJpbyc7CiRsYW5nWydidXR0b25fY29udGludWUnXSA9ICdDb250aW51YXIuLi4nOwokbGFuZ1sndmFsdWVfY2hlY2tlZCddID0gJ0NoZXF1ZWFkbyc7CiRsYW5nWyd2YWx1ZV91bmNoZWNrZWQnXSA9ICdTaW4gY2hlcXVlYXInOwokbGFuZ1sndGFiX21haW4nXSA9ICdQcmluY2lwYWwnOwokbGFuZ1sndGFiX3N5bWJvbCddID0gJ0NvbmZpZ3VyYXIgVmlzdGEgZGVsIEZvcm0nOwokbGFuZ1sndGFiX3N1Ym1pdCddID0gJ0VudiZpYWN1dGU7byBkZWwgRm9ybXVsYXJpbyc7CiRsYW5nWyd0YWJfY2FwdGNoYSddID0gJ0NvbmZpZ3VyYWNpb25lcyBkZSBDYXB0Y2hhJzsKJGxhbmdbJ3RhYl9hZHZhbmNlZCddID0gJ0NvbmZpZy4gQXZhbnphZGFzJzsKJGxhbmdbJ3RhYl90ZW1wbGF0ZWxheW91dCddID0gJ1BsYW50aWxsYSBkZWwgRm9ybXVsYXJpbyc7CiRsYW5nWyd0YWJfc3VibWlzc2lvbnRlbXBsYXRlJ10gPSAnUGxhbnRpbGxhIGRlIEVudmlhZG8nOwokbGFuZ1snY2FudXNlX3NtYXJ0eSddID0gJzxlbT5MYXMgdmFyaWFibGVzIFNtYXJ0eSBzb24gdiZhYWN1dGU7bGlkYXMgZW4gZXN0ZSBjYW1wby48L2VtPic7CiRsYW5nWydhZGRfb3B0aW9ucyddID0gJ0FncmVnYXIgTSZhYWN1dGU7cyBPcGNpb25lcyc7CiRsYW5nWydkZWxldGVfb3B0aW9ucyddID0gJ0VsaW1pbmFyIE9wY2lvbmVzIE1hcmNhZGFzJzsKJGxhbmdbJ2FkZF9jaGVja2JveGVzJ10gPSAnQWdyZWdhciBNJmFhY3V0ZTtzIENhamFzIGRlIFRpbGRhcic7CiRsYW5nWydkZWxldGVfY2hlY2tib3hlcyddID0gJ0VsaW1pbmFyIENhamFzIGRlIFRpbGRhciBNYXJjYWRhcyc7CiRsYW5nWydhZGRfYWRkcmVzcyddID0gJ0FncmVnYXIgT3RyYSBEaXJlY2NpJm9hY3V0ZTtuJzsKJGxhbmdbJ2RlbGV0ZV9hZGRyZXNzJ10gPSAnRWxpbWluYXIgRGlyZWNjaW9uZXMgTWFyY2FkYXMnOwokbGFuZ1snYWRkX2Rlc3RpbmF0aW9uJ10gPSAnQWdyZWdhciBPdHJvIERlc3Rpbm8nOwokbGFuZ1snZGVsZXRlX2Rlc3RpbmF0aW9uJ10gPSAnRWxpbWluYXIgRGVzdGlub3MgTWFyY2Fkb3MnOwokbGFuZ1snc3VzcGVjdGVkX3NwYW0nXSA9ICdTZSBoYW4gZ2VuZXJhZG8gZGVtYXNpYWRvcyAgZW1haWxzIGRlc2RlIHN1IERpcmVjY2kmb2FjdXRlO24gSVAuIEMmb2FjdXRlO2RpZ28gQW50aS1TcGFtIGhhIHByZXZlbmlkbyBlbCBlbnYmaWFjdXRlO28uJzsKJGxhbmdbJ3N1c3BlY3RlZF9zcGFtX2xvZyddID0gJ1NlIGludGVycnVtcGkmb2FjdXRlOyBlbnZpbyBzb3NwZWNoYWRvIHBvciBTcGFtIGRlc2RlIElQICVzLic7CiRsYW5nWydyZW9yZGVyJ10gPSAnUmVvcmRlbmFyIENhbXBvcyc7CiRsYW5nWydjYW5jZWwnXSA9ICdDYW5jZWxhcic7CiRsYW5nWyd2YWx1ZV9zZXQnXSA9ICdWYWxvciBjb25maWd1cmFkbzogJXMnOwokbGFuZ1snaGVscF9jYXRhbG9nZXJfYXR0cmlidXRlX2ZpZWxkcyddID0gJ0JlbG93IGlzIGEgbGlzdCBvZiB0aGUgYXR0cmlidXRlcyBhdmFpbGFibGUgZnJvbSB0aGUgQ2F0YWxvZ2VyIG1vZHVsZS48YnIvPllvdSBjYW4gb3B0aW9uYWxseSBzcGVjaWZ5IHZhbGlkIHJhbmdlcywgdmFsdWVzLCBvciBudW1lcm91cyB2YWx1ZXMgdG8gYmUgdXNlZCBpbiBmaWx0ZXJpbmcgdGhlIGxpc3Qgb2YgaXRlbXMgdGhhdCBpcyBkaXNwbGF5ZWQgdG8gdGhlIHVzZXIuPGJyLz4NCjxici8+DQo8c3Ryb25nPlJhbmdlczo8L3N0cm9uZz48YnIvPg0KUmFuZ2VzIGNhbiBiZSBzcGVjaWZpZWQgYnkgc2lnbmlmeWluZyBhIG1pbmltdW0gYW5kIG1heGltdW0gdmFsdWUgdXNpbmcgdGhpcyBzeW50YXg6ICZxdW90O3JhbmdlOiBtaW52YWx1ZSB0byBtYXh2YWx1ZSZxdW90Ozxici8+DQo8YnIvPg0KPHN0cm9uZz5NdWx0aXBsZSBWYWx1ZXM6PC9zdHJvbmc+PGJyLz4NClRvIHNwZWNpZnkgbXVsdGlwbGUgdmFsdWVzIGZvciBhbiBhdHRyaWJ1dGUgdXNlIHRoZSBzeW50YXggJnF1b3Q7bXVsdGk6IHZhbHVlMXx2YWx1ZTJ8dmFsdWUzJnF1b3Q7PGJyLz4NCjxici8+DQo8c3Ryb25nPlZhbHVlcyBmcm9tIGhpZGRlbiBmaWVsZHM8L3N0cm9uZz48YnIvPg0KVG8gc3BlY2lmeSBhIHZhbHVlIGZyb20gYSBoaWRkZW4gZmllbGQgdXNlIHRoZSBzeW50YXggeyRmbGRfaWR9PGJyLz4NCjxici8+JzsKJGxhbmdbJ2hlbHBfbmFtZV9yZWdleCddID0gJ1VuYSBleHByZXNpJm9hY3V0ZTtuIHJlZ3VsYXIgcGFyYSBwZXJtaXRpciBmaWx0cmFyIGl0ZW1zIGRlIENhdGFsb2dlciBwb3Igbm9tYnJlJzsKJGxhbmdbJ2hlbHBfZmllbGRfaGVpZ2h0J10gPSAnQWx0dXJhIGRlbCBjYW1wbyBkZSBzZWxlY2NpJm9hY3V0ZTtuIG11bHRpcGxlJzsKJGxhbmdbJ3RpdGxlX25hbWVfcmVnZXgnXSA9ICdDYXRhbG9nZXIgSXRlbSBOYW1lIFJlZ3VsYXIgRXhwcmVzc2lvbic7CiRsYW5nWyd0aXRsZV9maWVsZF9oZWlnaHQnXSA9ICdBbHR1cmEgZGUgY2FtcG8nOwokbGFuZ1sndGl0bGVfZmlsZV9wYXRoJ10gPSAnRGlyZWN0b3JpbyBEZXN0aW5vIGRlIGFyY2hpdm9zIGRlIHNhbGlkYSc7CiRsYW5nWyd0aXRsZV91ZHRfbmFtZSddID0gJ1RhZyBEZWZpbmlkYSBwb3IgVXN1YXJpbyc7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2Rlc3RwYWdlJ10gPSAnUCZhYWN1dGU7Z2luYSBhIGRvbmRlIHZvbHZlciBjb24gZW5sYWNlcyBzdWJpZG9zJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZG1vZHVsZV9zdW1tYXJ5J10gPSAnRW52aWFkbyBjb24gZWwgY29uc3RydWN0b3IgZGUgZm9ybXVsYXJpb3MnOwokbGFuZ1sndGl0bGVfdXBsb2Fkc19jYXRlZ29yeSddID0gJ0NhdGVnb3ImaWFjdXRlO2EgZGUgc3ViaWRhcyc7CiRsYW5nWyd0aXRsZV9zZW5kdG9fdXBsb2FkcyddID0gJ0VudmlhciBlc3RlIGFyY2hpdm8gYWwgbSZvYWN1dGU7ZHVsbyBkZSBzdWJpZGFzJzsKJGxhbmdbJ3RpdGxlX2xlZ2VuZCddID0gJ0xleWVuZGEnOwokbGFuZ1sndGl0bGVfbWF4aW11bV9sZW5ndGgnXSA9ICdMb25naXR1ZCBNJmFhY3V0ZTt4aW1hJzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2xhYmVsJ10gPSAnRXRpcXVldGEgZGUgQ2FqYSBkZSBUaWxkZSc7CiRsYW5nWyd0aXRsZV9yYWRpb19sYWJlbCddID0gJ0V0aXF1ZXRhIGRlIEJvdCZvYWN1dGU7biBkZSBSYWRpbyc7CiRsYW5nWyd0aXRsZV9jaGVja2VkX3ZhbHVlJ10gPSAnVmFsb3IgY3VhbmRvIHRpZW5lIHRpbGRlLic7CiRsYW5nWyd0aXRsZV91bmNoZWNrZWRfdmFsdWUnXSA9ICdWYWxvciBjdWFuZG8gbm8gdGllbmUgdGlsZGUuJzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2RldGFpbHMnXSA9ICdEZXRhbGxlcyBkZSBHcnVwbyBkZSBDYWphIGRlIFRpbGRlJzsKJGxhbmdbJ3RpdGxlX2RlbGV0ZSddID0gJyZpcXVlc3Q7RWxpbWluYXI/JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9vbmVfbWVzc2FnZSddID0gJ1RleHRvICZxdW90O0VsZWdpciBVbm8mcXVvdDsnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX3ZhbHVlJ10gPSAnVmFsb3IgZGUgc2VsZWNjaSZvYWN1dGU7bic7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fZGlzcGxheW5hbWUnXSA9ICdOb21icmUgZGUgU2VsZWNjaSZvYWN1dGU7biBhIE1vc3RyYXInOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX3N1YmplY3QnXSA9ICdBc3VudG8gZGUgU2VsZWNjaSZvYWN1dGU7bic7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9jb3VudHJ5J10gPSAnU2VsZWNjaSZvYWN1dGU7biBwb3IgRGVmZWN0byc7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9zdGF0ZSddID0gJ1NlbGVjY2kmb2FjdXRlO24gcG9yIERlZmVjdG8nOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfcHJvdmluY2UnXSA9ICdTZWxlY2NpJm9hY3V0ZTtuIHBvciBkZWZlY3RvJzsKJGxhbmdbJ3RpdGxlX29wdGlvbl9uYW1lJ10gPSAnTm9tYnJlIGRlIE9wY2kmb2FjdXRlO24nOwokbGFuZ1sndGl0bGVfb3B0aW9uX3ZhbHVlJ10gPSAnVmFsb3IgRW52aWFkbyc7CiRsYW5nWyd0aXRsZV9wdWxsZG93bl9kZXRhaWxzJ10gPSAnT3BjaW9uZXMgZGUgRGVzcGxlZ2FibGUnOwokbGFuZ1sndGl0bGVfbXVsdGlzZWxlY3RfZGV0YWlscyddID0gJ09wY2lvbmVzIGRlIE11bHRpc2VsZWNjaSZvYWN1dGU7bic7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9hZGRyZXNzJ10gPSAnRGlyZWNjaSZvYWN1dGU7biBFbWFpbCBkZSBEZXN0aW5vJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2ZpbGVuYW1lJ10gPSAnTm9tYnJlIGRlIEFyY2hpdm8gZGUgRGVzdGlubyc7CiRsYW5nWyd0aXRsZV9lbWFpbF9mcm9tX25hbWUnXSA9ICcmcXVvdDtEZXNkZSBub21icmUmcXVvdDsgcGFyYSBlbWFpbCc7CiRsYW5nWyd0aXRsZV9yZWxheGVkX2VtYWlsX3JlZ2V4J10gPSAnVXNhciB2YWxpZGFjaSZvYWN1dGU7biBkZSBlbWFpbCByZWxhamFkYSc7CiRsYW5nWyd0aXRsZV9yZWxheGVkX3JlZ2V4X2xvbmcnXSA9ICdVc2FyIHZhbGlkYWNpJm9hY3V0ZTtuIGRlIGRpcmVjY2kmb2FjdXRlO24gZW1haWwgcmVsYWphZGEgKHAuZWouLCBwZXJtaXRlICZxdW90O3hAeSZxdW90OyBlbiB2ZXogZGUgcmVxdWVyaXIgYSAmcXVvdDt4QHkudGxkJnF1b3Q7KSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9mcm9tX2FkZHJlc3MnXSA9ICcmcXVvdDtEZXNkZSBkaXJlY2NpJm9hY3V0ZTtuJnF1b3Q7IHBhcmEgZW1haWwnOwokbGFuZ1sndGl0bGVfZW1haWxfZW5jb2RpbmcnXSA9ICdDb25maWd1cmFjaSZvYWN1dGU7biBkZSBjJm9hY3V0ZTtkaWZpY2FjaSZvYWN1dGU7biBkZSBjYXJhY3RlcmVzIGRlIEVtYWlsJzsKJGxhbmdbJ3RpdGxlX2RpcmVjdG9yX2RldGFpbHMnXSA9ICdEZXRhbGxlcyBwYXJhIEVtaXNvci1FbWFpbCBjb24gYmFzZSBEZXNwbGVnYWJsZSc7CiRsYW5nWyd0aXRsZV9maWxlX25hbWUnXSA9ICdOb21icmUgZGUgYXJjaGl2byc7CiRsYW5nWyd0aXRsZV9lbWFpbF9zdWJqZWN0J10gPSAnTCZpYWN1dGU7bmVhIEFzdW50byBkZSBFbWFpbCc7CiRsYW5nWyd0aXRsZV9mb3JtX25hbWUnXSA9ICdOb21icmUgZGUgRm9ybXVsYXJpbyc7CiRsYW5nWyd0aXRsZV9mb3JtX3N0YXR1cyddID0gJ0VzdGFkbyBkZSBGb3JtdWxhcmlvJzsKJGxhbmdbJ3RpdGxlX3JlYWR5X2Zvcl9kZXBsb3ltZW50J10gPSAnTGlzdG8gcGFyYSBzdSBEZXNhcnJvbGxvJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTEnXSA9ICdObyBlc3QmYWFjdXRlOyBMaXN0byc7CiRsYW5nWyd0aXRsZV9yZWRpcmVjdF9wYWdlJ10gPSAnUCZhYWN1dGU7Z2luYSBhIGRvbmRlIGRpcmlnaXJzZSBsdWVnbyBkZWwgZW52JmlhY3V0ZTtvJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTInXSA9ICdQb3IgZmF2b3IgYWdyZWd1ZSB1biBjYW1wbyBhbCBmb3JtdWxhcmlvIHBhcmEgcXVlIGxvIGluZ3Jlc2FkbyBwb3IgZWwgdXN1YXJpbyBwdWVkYSBzZXIgbWFuZWphZG8uJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeV9saW5rJ10gPSAnUHVlZGUgdXNhciBlc3RlIGF0YWpvJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fYWxpYXMnXSA9ICdBbGlhcyBkZSBGb3JtdWxhcmlvJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fZmllbGRzJ10gPSAnQ2FtcG9zIGRlIEZvcm11bGFyaW8nOwokbGFuZ1sndGl0bGVfZmllbGRfaWQnXSA9ICdJZCBkZSBDYW1wbyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkYWxpYXNlcyddID0gJ01vc3RyYXIgQWxpYXNlcyBkZSBsb3MgY2FtcG9zJzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRhbGlhc2VzX2xvbmcnXSA9ICdNYXJjYXIgZXN0byB2YSBhIG1vc3RyYXIgbG9zIGFsaWFzZXMgZGUgY2FtcG9zIGN1YW5kbyBzZSBhZ3JlZ2EgbyBlZGl0YSB1bmEgZm9ybWEnOwokbGFuZ1sndGl0bGVfZmllbGRfbmFtZSddID0gJ05vbWJyZSBkZSBDYW1wbyc7CiRsYW5nWyd0aXRsZV9maWVsZF9hbGlhcyddID0gJ0FsaWFzIGRlIENhbXBvJzsKJGxhbmdbJ3RpdGxlX3JhZGlvZ3JvdXBfZGV0YWlscyddID0gJ0RldGFsbGVzIGRlIEdydXBvIEJvdCZvYWN1dGU7biBkZSBSYWRpbyc7CiRsYW5nWyd0aXRsZV9maWVsZF90eXBlJ10gPSAnVGlwbyBkZSBDYW1wbyc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkzJ10gPSAncGFyYSBjcmVhciB1biBjYW1wbyBkZSBtYW5lam8gZGVsIGZvcm11bGFyaW8uJzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZm9ybSddID0gJ0FncmVnYXIgTnVldm8gRm9ybXVsYXJpbyc7CiRsYW5nWyd0aXRsZV9zaG93X3ZlcnNpb24nXSA9ICcmaXF1ZXN0O01vc3RyYXIgVmVyc2kmb2FjdXRlO24gZGVsIE0mb2FjdXRlO2R1bG8/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbl9sb25nJ10gPSAnTGEgdmVyc2kmb2FjdXRlO24gZGVsIG0mb2FjdXRlO2R1bG8gQ29uc3RydWN0b3IgZGUgRm9ybXVsYXJpb3MgaW5zdGFsYWRvIHNlIGluY2x1aXImYWFjdXRlOyBlbiBjb21lbnRhcmlvcywgYXl1ZGEgYWwgaGFjZXIgZGVidWcnOwokbGFuZ1sndGl0bGVfYWRkX25ld19maWVsZCddID0gJ0FncmVnYXIgTnVldm8gQ2FtcG8nOwokbGFuZ1sndGl0bGVfZm9ybV9zdWJtaXRfYnV0dG9uJ10gPSAnQm90Jm9hY3V0ZTtuIGRlIFBydWViYSBFbnYmaWFjdXRlO28gZGUgRm9ybXVsYXJpbyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eSddID0gJyZpcXVlc3Q7QWdyZWdhbW9zIEphdmFzY3JpcHQgYWwgQm90Jm9hY3V0ZTtuIGRlIEVudiZpYWN1dGU7byBxdWUgYXl1ZGFyJmFhY3V0ZTsgYSBwcmV2ZW5pciBtJnVhY3V0ZTtsdGlwbGVzIGVudiZpYWN1dGU7b3MgZGVsIGZvcm11bGFyaW8/JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5X2hlbHAnXSA9ICdBZ3JlZ2FyIHNjcmlwdCBkZSBzZWd1cmlkYWQnOwokbGFuZ1sndGl0bGVfZm9ybV9uZXh0X2J1dHRvbiddID0gJ1RleHRvIHBhcmEgQm90Jm9hY3V0ZTtuICZxdW90O1NpZ3VpZW50ZSZxdW90OyBkZWwgRm9ybSAoc2UgdXNhIGVuIGZvcm0mIzAzOTtzIG11bHRpcCZhYWN1dGU7Z2luYSknOwokbGFuZ1sndGl0bGVfZm9ybV9wcmV2X2J1dHRvbiddID0gJ1RleHRvIHBhcmEgQm90Jm9hY3V0ZTtuICZxdW90O1ByZXZpbyZxdW90OyBkZWwgRm9ybSAoc2UgdXNhIGVuIGZvcm0mIzAzOTtzIG11bHRpcCZhYWN1dGU7Z2luYSknOwokbGFuZ1sndGl0bGVfZmllbGRfdmFsaWRhdGlvbiddID0gJ1ZhbGlkYWNpJm9hY3V0ZTtuIGRlIENhbXBvJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3RvX3ZhbGlkYXRlJ10gPSAnQ2FtcG8gYSBWYWxpZGFyJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fY3NzX2NsYXNzJ10gPSAnQ2xhc2UgQ1NTIHBhcmEgZXN0ZSBmb3JtJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2Nzc19jbGFzcyddID0gJ0NsYXNlIENTUyBwYXJhIGVzdGUgY2FtcG8nOwokbGFuZ1sndGl0bGVfZm9ybV9yZXF1aXJlZF9zeW1ib2wnXSA9ICdTJmlhY3V0ZTttYm9sbyBwYXJhIGlkZW50aWZpY2FyIGNhbXBvcyByZXF1ZXJpZG9zJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkJ10gPSAnUmVxdWVyaWRvJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2xvbmcnXSA9ICdTZSByZXF1aWVyZSB1bmEgcmVzcHVlc3RhIHBhcmEgZXN0ZSBDYW1wbyc7CiRsYW5nWyd0aXRsZV9oaWRlX2xhYmVsJ10gPSAnT2N1bHRhciBFdGlxdWV0YSc7CiRsYW5nWyd0aXRsZV9oaWRlX2xhYmVsX2xvbmcnXSA9ICdPY3VsdGFyIGVsIG5vbWJyZSBkZSBlc3RlIGNhbXBvIGVuIGVsIEZvcm0nOwokbGFuZ1sndGl0bGVfdGV4dCddID0gJ1RleHRvIGVzdCZhYWN1dGU7dGljbyBhIG1vc3RyYXInOwokbGFuZ1sndGl0bGVfZmllbGRfcmVnZXgnXSA9ICdWYWxpZGFjaSZvYWN1dGU7biBkZSBSZWdleCc7CiRsYW5nWyd0aXRsZV9saW5lc190b19zaG93J10gPSAnTiZ1YWN1dGU7bWVybyBkZSBMJmlhY3V0ZTtuZWFzIGEgbW9zdHJhcic7CiRsYW5nWydub19kZWZhdWx0J10gPSAnTm8gZXMgUG9yIERlZmVjdG8nOwokbGFuZ1sncmVkaXJlY3RfYWZ0ZXJfYXBwcm92YWwnXSA9ICdQJmFhY3V0ZTtnaW5hIGEgZG9uZGUgaXIgZGVzcHUmZWFjdXRlO3MgZGUgYXByb2Jhcic7CiRsYW5nWyd0aXRsZV9yZWdleF9oZWxwJ10gPSAnRXN0YSBleHByZXNpJm9hY3V0ZTtuIHJlZ3VsYXIgc2UgdXNhciZhYWN1dGU7IHMmb2FjdXRlO2xvIHNpICZxdW90O3ZhbGlkYXRpb24gdHlwZSZxdW90OyBlcyBwdWVzdG8gYSB1bmEgb3BjaSZvYWN1dGU7biByZWdleC1yZWxhY2lvbmFkYS4gSW5jbHV5ZSB1biBjb21wbGV0byByZWdleCBlc3RpbG8gUGVybCwgaW5jbHV5ZW5kbyBhZGVtJmFhY3V0ZTtzIGxhcyBiYXJyYXMgZGUgY29taWVuem8vcGFyYXIgeSBmbGFncyAoZS5nLiwgJnF1b3Q7L2ltYWdlXC4oXGQrKS9pJnF1b3Q7KSc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9hYmJyZXYnXSA9ICdSZXEmIzAzOTtkbyc7CiRsYW5nWyd0aXRsZV9oaWRlX2Vycm9ycyddID0gJ09jdWx0YXIgRXJyb3Jlcyc7CiRsYW5nWyd0aXRsZV9mb3JtX2Rpc3BsYXl0eXBlJ10gPSAnVGlwbyBkZSBGb3JtdWxhcmlvIE1vc3RyYWRvJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzX2xvbmcnXSA9ICdQcmV2ZW5pciBxdWUgbWVuc2FqZXMgZGUgZGVidWcgLyBlcnJvciBsb3MgdmVhIGVsIHVzdWFyaW8uJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX3RlbXBsYXRlJ10gPSAnUGxhbnRpbGxhIGRlIEVtYWlsJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZSddID0gJ1RhbWEmbnRpbGRlO28gbSZhYWN1dGU7eGltbyBkZSBhcmNoaXZvIGEgc3ViaXIgKGtpbG9ieXRlcyknOwokbGFuZ1sndGl0bGVfbWF4aW11bV9zaXplX2xvbmcnXSA9ICdFc3RhIGxpbWl0YWNpJm9hY3V0ZTtuIHNlIGFncmVnYSBhIGxhcyBmaWphZGFzIHBvciBsYSBjb25maWd1cmFjaSZvYWN1dGU7biBkZSBwaHAgeSBlbCBzZXJ2aWRvciB3ZWInOwokbGFuZ1sndGl0bGVfcGVybWl0dGVkX2V4dGVuc2lvbnMnXSA9ICdFeHRlbnNpb25lcyBQZXJtaXRpZGFzJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zX2xvbmcnXSA9ICdFbnRyYXIgdW5hIGxpc3RhIHNlcGFyYWRhIHBvciBjb21hcywgZXhjbHV5ZW5kbyBlbCBwdW50byAocC5lai4sICZxdW90O2pwZyxnaWYsanBlZyZxdW90OykuIExvcyBlc3BhY2lvcyBzb24gaWdub3JhZG9zLiBTaSBkZWphIGVzdG8gZW4gYmxhbmNvIHNpZ25pZmljYSBxdWUgbm8gaGF5IHJlc3RyaWNjaW9uZXMuJzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnMnXSA9ICcmaXF1ZXN0O01vc3RyYXIgcmVzdHJpY2Npb25lcz8nOwokbGFuZ1sndGl0bGVfc2hvd19saW1pdGF0aW9uc19sb25nJ10gPSAnJmlxdWVzdDtNb3N0cmFyIGN1YWxxdWllciByZXN0cmljY2kmb2FjdXRlO24gZGUgdGFtYSZudGlsZGU7byB5IGV4dGVuc2kmb2FjdXRlO24gY29uIGVsIGFyY2hpdm8gYSBzdWJpcj8nOwokbGFuZ1sndGl0bGVfZm9ybV90ZW1wbGF0ZSddID0gJ1BsYW50aWxsYSBhIHV0aWxpemFyIHBhcmEgTW9zdHJhciBGb3JtdWxhcmlvJzsKJGxhbmdbJ3RpdGxlX3BhZ2VfeF9vZl95J10gPSAnUCZhYWN1dGU7Z2luYSAlcyBkZSAlcyc7CiRsYW5nWyd0aXRsZV9ub19hZHZhbmNlZF9vcHRpb25zJ10gPSAnRWwgY2FtcG8gbm8gdGllbmUgb3BjaW9uZXMgYXZhbnphZGFzLic7CiRsYW5nWyd0aXRsZV9mb3JtX3Vuc3BlY2lmaWVkJ10gPSAnVGV4dG8gYSBkZXZvbHZlciBwYXJhIHZhbG9yZXMgZGUgY2FtcG8gc2luIGVzcGVjaWZpY2FyJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9mYXN0YWRkX2xvbmcnXSA9ICcmaXF1ZXN0O0hhYmlsaXRhIGRlc3BsZWdhYmxlIGRlIGFncmVnYWRvIHImYWFjdXRlO3BpZG8gZGUgY2FtcG9zIGVuIGZvcm11bGFyaW9zPyc7CiRsYW5nWyd0aXRsZV9lbmFibGVfZmFzdGFkZCddID0gJyZpcXVlc3Q7SGFiaWxpdGFtb3MgZGVzcGxlZ2FibGUgZGUgYWdyZWdhZG8gciZhYWN1dGU7cGlkbyBkZSBjYW1wb3M/JzsKJGxhbmdbJ3RpdGxlX2Zhc3RhZGQnXSA9ICdBZ3JlZ2FyIHImYWFjdXRlO3BpZGFtZW50ZSBjYW1wb3MnOwokbGFuZ1sndGl0bGVfZW5hYmxlX2FudGlzcGFtX2xvbmcnXSA9ICdIYWNpZW5kbyBjbGljayBhcXUmaWFjdXRlOyBwZXJtaXRpciZhYWN1dGU7IHMmb2FjdXRlO2xvIDEwIGVtYWlscyBhIHNlciBkaXNwYXJhZG9zIHBvciB1bmEgZGlyZWNjaSZvYWN1dGU7biBJUCBkYWRhIChwb3IgaG9yYSkuJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9hbnRpc3BhbSddID0gJyZpcXVlc3Q7SGFiaWxpdGFyIGNhcmFjdGVyJmlhY3V0ZTtzdGljYXMgZWxlbWVudGFsZXMgcGFyYSBhbnRpLXNwYW0/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRpZHMnXSA9ICdNb3N0cmFyIElEcyBkZSBDYW1wbyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkaWRzX2xvbmcnXSA9ICdIYWNpZW5kbyBjbGljayBhcXUmaWFjdXRlOyBwZXJtaXRpciZhYWN1dGU7IHZlciBpZHMgZGUgY2FtcG9zIGN1YW5kbyBzZSBhZ3JlZ2EgbyBlZGl0YSB1biBmb3JtdWxhcmlvJzsKJGxhbmdbJ3RpdGxlX3htbF90b191cGxvYWQnXSA9ICdTdWJpciBmb3JtdWxhcmlvIGRlc2RlIGFyY2hpdm8gWE1MJzsKJGxhbmdbJ3RpdGxlX3htbF91cGxvYWRfZm9ybW5hbWUnXSA9ICdVc2FyIGVzdGUgbm9tYnJlIGRlIGZvcm11bGFyaW8nOwokbGFuZ1sndGl0bGVfaW1wb3J0X2xlZ2VuZCddID0gJ0ltcG9ydGFyIEZvcm11bGFyaW8gWE1MJzsKJGxhbmdbJ3RpdGxlX3htbF91cGxvYWRfZm9ybWFsaWFzJ10gPSAnVXNhciBlc3RlIGFsaWFzIGRlIGZvcm11bGFyaW8nOwokbGFuZ1sndGl0bGVfaHRtbF9lbWFpbCddID0gJyZpcXVlc3Q7R2VuZXJhciBlbWFpbCBIVE1MPyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZSddID0gJyZpcXVlc3Q7UHVibGljYXIgYXV0b20mYWFjdXRlO3RpY2FtZW50ZT8nOwokbGFuZ1sndGl0bGVfbGlua19hdXRvcG9wdWxhdGVfaGVscCddID0gJyZpcXVlc3Q7UHVibGljYXJsbyBhdXRvbSZhYWN1dGU7dGljYW1lbnRlIGNvbiBsYSBVUkwgZGUgbGEgcCZhYWN1dGU7Z2luYSBxdWUgY29udGllbmUgZWwgZm9ybXVsYXJpbz8gKGVzdG8gc29icmVzY3JpYmUgbGEgb3BjaSZvYWN1dGU7biBkZSBhYmFqbyBkZSBlbmxhY2UgZGUgcCZhYWN1dGU7Z2luYSBkZWwgc2l0aW8pJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfbGluayddID0gJ1VybCBwb3IgZGVmZWN0byBkZWwgZW5sYWNlJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfbGlua190aXRsZSddID0gJ1RleHRvIHBvciBkZWZlY3RvIGRlbCBlbmxhY2UnOwokbGFuZ1sndGl0bGVfbGlua190b19zaXRlcGFnZSddID0gJ0VubGFjZSBhIHAmYWFjdXRlO2dpbmEgZGVsIHNpdGlvJzsKJGxhbmdbJ3RpdGxlX2NhcHRjaGFfbm90X2luc3RhbGxlZCddID0gJ1VzdGVkIHB1ZWRlIHVzYXIgYSA8YSBocmVmPSJodHRwOi8vd3d3Lndpa2lwZWRpYS5vcmcvd2lraS9DYXB0Y2hhIiB0YXJnZXQ9Il9uZXciPiZxdW90O0NhcHRjaGEmcXVvdDs8L2E+IHBhcmEgcHJvdGVnZXIgZWwgZW52JmlhY3V0ZTtvIGRlIGxvcyBmb3JtdWxhcmlvcy4gUGFyYSBlc28gaW5zdGFsZSBlbCBtJm9hY3V0ZTtkdWxvLiBQb3IgbSZhYWN1dGU7cyBpbmZvcm1hY2kmb2FjdXRlO24sIGRlIHVuYSB2dWVsdGEgcG9yIGVsIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvY2FwdGNoYS8iPnByb2plY3RvIENhcHRjaGE8L2E+Lic7CiRsYW5nWyd0aXRsZV91c2VfY2FwdGNoYSddID0gJyZpcXVlc3Q7VXNhciBDYXB0Y2hhIHBhcmEgcHJvdGVqZXIgZWwgZW52JmlhY3V0ZTtvIGRlIGZvcm11bGFyaW9zPyc7CiRsYW5nWyd0aXRsZV91c2VfY2FwdGNoYV9oZWxwJ10gPSAnT2JzZXJ2ZSBhcXUmaWFjdXRlOyBwYXJhIHByb3RlZ2VyIGEgc3UgZm9ybXVsYXJpbyBjb24gPGEgaHJlZj0iaHR0cDovL3d3dy53aWtpcGVkaWEub3JnL3dpa2kvQ2FwdGNoYSIgdGFyZ2V0PSJfbmV3Ij4mcXVvdDtDYXB0Y2hhJnF1b3Q7PC9hPi4nOwokbGFuZ1sndGl0bGVfdXNlcl9jYXB0Y2hhJ10gPSAnUG9yIGZhdm9yIGNvbmZpcm1lIHF1ZSB1c3RlZCBubyBlcyB1biBzY3JpcHQgaW5ncmVzYW5kbyBsb3MgY2FyYWN0ZXJlcyBkZSBsYSBpbWFnZW4uJzsKJGxhbmdbJ3RpdGxlX3VzZXJfY2FwdGNoYV9lcnJvciddID0gJ0Vycm9yIGVuIGVsIHRleHRvIHBhcmEgQ2FwdGNoYSc7CiRsYW5nWyd3cm9uZ19jYXB0Y2hhJ10gPSAnRWwgQ2FwdGNoYSBubyBlcyBjb3JyZWN0by4nOwokbGFuZ1sndGl0bGVfdGl0bGVfdXNlcl9jYXB0Y2hhJ10gPSAnVGV4dG8gZGUgYXl1ZGEgcGFyYSBDYXB0Y2hhJzsKJGxhbmdbJ3RpdGxlX2RvbnRfc3VibWl0X3VuY2hlY2tlZCddID0gJ05vIGVudmlhciB2YWxvcmVzIGRlIGNhamFzIHNpbiB0aWxkYXInOwokbGFuZ1sndGl0bGVfZG9udF9zdWJtaXRfdW5jaGVja2VkX2hlbHAnXSA9ICdUaWxkYXIgZXN0byBzaSBkZXNlYSBxdWUgbGFzIGNhamFzIHRpbGRhZGFzIHJlZ3Jlc2VuIHVuIHZhbG9yJzsKJGxhbmdbJ2xpbmtfbGFiZWwnXSA9ICdFdGlxdWV0YSBkZSBFbmxhY2UnOwokbGFuZ1snbGlua19kZXN0aW5hdGlvbiddID0gJ1VybCBkZSBEZXN0aW5vIGRlIEVubGFjZSc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3NldCddID0gJyZpcXVlc3Q7Q2hlcXVlYXIgcG9yIERlZmVjdG8/JzsKJGxhbmdbJ3RpdGxlXzI0X2hvdXInXSA9ICcmaXF1ZXN0O1VzYW1vcyByZWxvaiBkZSAyNC1ob3Jhcz8nOwokbGFuZ1sndGl0bGVfYmVmb3JlX25vb24nXSA9ICdhbSc7CiRsYW5nWyd0aXRsZV9hZnRlcl9ub29uJ10gPSAncG0nOwokbGFuZ1sndGl0bGVfc21hcnR5X2V2YWwnXSA9ICcmaXF1ZXN0O1Byb2Nlc2Ftb3Mgc21hcnR5IHRhZ3MgZGVudHJvIGRlIGNhbXBvcz8nOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfcm93cyddID0gJ0ZpbGFzIChub3RhOiBlc3RvIHB1ZWRlIHNlciBzb2JyZXNjcml0byBwb3IgQ1NTKSc7CiRsYW5nWyd0aXRsZV90ZXh0YXJlYV9jb2xzJ10gPSAnQ29sdW1uYXMgKG5vdGE6IGVzdG8gcHVlZGUgc2VyIHNvYnJlc2NyaXRvIHBvciBDU1MpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbWFpbiddID0gJ0RldGFsbGVzIGRlIEZvcm11bGFyaW8gUHJpbmNpcGFsJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcm5hbWUnXSA9ICdNb3N0cmFyIGVsIE5vbWJyZSBkZWwgVXN1YXJpbz8nOwokbGFuZ1sndGl0bGVfc2hvd191c2VyZmlyc3RuYW1lJ10gPSAnTW9zdHJhciBlbCBQcmltZXIgTm9tYnJlIGRlbCBVc3VhcmlvPyc7CiRsYW5nWyd0aXRsZV9zaG93X3VzZXJsYXN0bmFtZSddID0gJ01vc3RyYXIgZWwgQXBlbGxpZG8gZGVsIFVzdWFyaW8/JzsKJGxhbmdbJ3RpdGxlX3Jlc3RyaWN0X3RvX2dyb3VwJ10gPSAnUmVzdHJpbmdpciBsaXN0YSBkZSB1c3VhcmlvcyBhIHVzdWFyaW9zIGRlIHVuIGdydXBvIGVzcGVjaWZpY28nOwokbGFuZ1sncmVzdHJpY3RlZF90b19ncm91cCddID0gJ1NvbG8gZW4gZWwgZ3J1cG8gJXMnOwokbGFuZ1sndGl0bGVfc2hvd190b191c2VyJ10gPSAnTW9zdHJhciBhbCB1c3VhcmlvPyc7CiRsYW5nWydoZWxwX2xlYXZlZW1wdHknXSA9ICdFc3RlIGNhbXBvIHB1ZWRlIGRlamFyc2UgdmFjJmlhY3V0ZTtvJzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVzX2Zvcl90ZW1wbGF0ZSddID0gJ1ZhcmlhYmxlcyBwYXJhIFBsYW50aWxsYSc7CiRsYW5nWydoZWxwX3ZhcmlhYmxlc19mb3JfY29tcHV0YXRpb24nXSA9ICdWYXJpYWJsZXMgRGlzcG9uaWJsZXMnOwokbGFuZ1snaGVscF9waHBfdmFyaWFibGVfbmFtZSddID0gJ1ZhcmlhYmxlIFBIUCc7CiRsYW5nWydoZWxwX3N1Ym1pc3Npb25fZGF0ZSddID0gJ0ZlY2hhIGRlIEVudiZpYWN1dGU7byc7CiRsYW5nWydoZWxwX3NlcnZlcl9uYW1lJ10gPSAnU3Ugc2Vydmlkb3InOwokbGFuZ1snaGVscF9zdWJfc291cmNlX2lwJ10gPSAnRGlyZWNjaSZvYWN1dGU7biBJUCBkZSBsYSBwZXJzb25hIHF1ZSB1c2EgZWwgZm9ybXVsYXJpbyc7CiRsYW5nWydoZWxwX3N1Yl91cmwnXSA9ICdVUkwgZGUgbGEgcCZhYWN1dGU7Z2luYSBxdWUgY29udGllbmUgZWwgZm9ybXVsYXJpbyc7CiRsYW5nWydoZWxwX2ZiX3ZlcnNpb24nXSA9ICdWZXJzaSZvYWN1dGU7biBGb3JtQnVpbGRlciAnOwokbGFuZ1snaGVscF90YWInXSA9ICdTJmlhY3V0ZTttYm9sbyBkZSB0YWJ1bGFjaSZvYWN1dGU7bic7CiRsYW5nWydoZWxwX290aGVyX2ZpZWxkcyddID0gJ05vbWJyZXMgZGUgY2FtcG8gYWx0ZXJuYWRvcyBzZSBwdWVkZW4gdXNhciBlbiBmb3JtYSBpbnRlcmNhbWJpYWJsZSAoZXNwZWNpYWxtZW50ZSAmdWFjdXRlO3RpbCBzaSBTbWFydHkgc2UgYXRhc2NhIGNvbiBjYXJhY3RlcmVzIGZ1ZXJhIGRlbCByYW5nbyBBU0NJSSAzMi0xMjYpLiA8YnIgLz5PdHJvcyBjYW1wb3MgZXN0YXImYWFjdXRlO24gZGlzcG9uaWJsZXMgYXMmaWFjdXRlOyBjb21vIGxvcyBhZ3JlZ3VlIGFsIGZvcm11bGFyaW8uJzsKJGxhbmdbJ2hlbHBfYXJyYXlfZmllbGRzJ10gPSAnQSBsb3MgY2FtcG9zIHF1ZSB0aWVuZW4gdmFsb3JlcyBtJnVhY3V0ZTtsdGlwbGVzIHNlIHB1ZWRlIHRhbWJpJmVhY3V0ZTtuIGxsZWdhciBhIGVsbG9zIHYmaWFjdXRlO2EgZWwgdmFsb3Igc21hcnR5IGRlICRmaWVsZG5hbWVfYXJyYXkgIG8gICRmbGRfI19hcnJheS4nOwokbGFuZ1snaGVscF9kYXRlX2Zvcm1hdCddID0gJ1ZlYSA8YSBocmVmPSJodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwIiB0YXJnZXQ9X05FVz5lbCBNYW51YWwgUEhQPC9hPiBwYXJhIGF5dWRhIGRlIGZvcm1hdG9zLic7CiRsYW5nWydoZWxwX3ZhcmlhYmxlX25hbWUnXSA9ICdWYXJpYWJsZSAnOwokbGFuZ1snaGVscF9mb3JtX2ZpZWxkJ10gPSAnQ2FtcG8gUmVwcmVzZW50YWRvJzsKJGxhbmdbJ2xpbmtfYmFja190b19mb3JtJ10gPSAnJmxhcXVvOyBWb2x2ZXIgYWwgRm9ybSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX3RlbXBsYXRlJ10gPSAnQ3JlYXIgUGxhbnRpbGxhIGRlIEVqZW1wbG8nOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9odG1sX3RlbXBsYXRlJ10gPSAnQ3JlYXIgUGxhbnRpbGxhIGRlIEVqZW1wbG8gSFRNTCc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2hlYWRlcl90ZW1wbGF0ZSddID0gJ0NyZWFyIFBsYW50aWxsYSBjb24gRW5jYWJlemFkbyBkZSBNdWVzdHJhJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaGVhZGVyJ10gPSAnQ3JlYXIgRW5jYWJlemFkbyBkZSBFamVtcGxvJzsKJGxhbmdbJ2hlbHBfdGFiX3N5bWJvbCddID0gJ3VuIGNhcmFjdGVyIHRhYic7CiRsYW5nWyd0aXRsZV9maWxlX3RlbXBsYXRlJ10gPSAnUGxhbnRpbGxhIHBhcmEgYXJjaGl2byBkZSBzYWxpZGEgZGUgdW5hIGwmaWFjdXRlO25lYSc7CiRsYW5nWyd0aXRsZV9maWxlX2hlYWRlciddID0gJ1BsYW50aWxsYSBwYXJhIGVsIGVuY2FiZXphZG8gZGUgYXJjaGl2byBkZSBzYWxpZGEnOwokbGFuZ1sndGl0bGVfY29uZmlybWF0aW9uX3VybCddID0gJ1VSTCBkb25kZSBoYWNlciBjbGljayBwYXJhIGNvbmZpcm1hciBlbCBmb3JtdWxhcmlvJzsKJGxhbmdbJ3RpdGxlX3ZhbHVlJ10gPSAnVmFsb3IgKHZlYSBsYSBzb2xhcGEgQXZhbnphZG8gc2kgdXN0ZWQgdXNhIHRhZ3Mgc21hcnR5JzsKJGxhbmdbJ3RpdGxlX2RhdGVfZm9ybWF0J10gPSAnRm9ybWF0byBkZSBGZWNoYSAoZXN0JmFhY3V0ZTtuZGFyIDxhIGhyZWY9Imh0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24uZGF0ZS5waHAiPkZvcm1hdG9zIGRlIEZlY2hhIFBIUDwvYT4pJzsKJGxhbmdbJ3RpdGxlX3VzZV93eXNpd3lnJ10gPSAnVXNhciBlZGl0b3IgV1lTSVdZRyBwYXJhICZBYWN1dGU7cmVhIGRlIHRleHRvICgmaXF1ZXN0O3Mmb2FjdXRlO2xvIHBhcmEgQWRtaW4/KSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYWN0aW9ucyddID0gJ0NvbXBvcnRhbWllbnRvIGRlbCBGb3JtdWxhcmlvIGRlIEVudiZpYWN1dGU7byc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfbGFiZWxzJ10gPSAnRXRpcXVldGFzIGRlIEJvdCZvYWN1dGU7bmVzIGRlIEVudiZpYWN1dGU7byc7CiRsYW5nWyd0aXRsZV9zb3J0YWJsZV9maWVsZCddID0gJ0NhbXBvIE9yZGVuYWJsZSAjJXMnOwokbGFuZ1sndGl0bGVfc3VibWl0X2hlbHAnXSA9ICdFc3RhIHAmYWFjdXRlO2dpbmEgbGUgcGVybWl0ZSBhZGFwdGFyIGEgc3UgZ3VzdG8gZWwgRW52JmlhY3V0ZTtvIGRlbCBGb3JtdWxhcmlvLiBObyBkZXRlcm1pbmEgcXVlIGhhciZhYWN1dGU7IGVsIENvbnN0cnVjdG9yIGRlIEZvcm11bGFyaW9zIGNvbiBsYSBkYXRhIGVudmlhZGEuIEVzdG8gJnVhY3V0ZTtsdGltbyBsbyBwdWVkZSBlc3RhYmxlY2VyIGFncmVnYW5kbyBjYW1wb3MgZGUgICZxdW90O0Rpc3Bvc2ljaSZvYWN1dGU7biZxdW90OyBhIHN1IGZvcm11bGFyaW8uJzsKJGxhbmdbJ3RpdGxlX3N0YXJ0X3llYXInXSA9ICdDb21pZW56YSByYW5nbyBkZSBhJm50aWxkZTtvJzsKJGxhbmdbJ3RpdGxlX2VuZF95ZWFyJ10gPSAnRmluIHJhbmdvIGRlIGEmbnRpbGRlO28nOwokbGFuZ1sndGl0bGVfZGVmYXVsdF95ZWFyJ10gPSAnQSZudGlsZGU7byBwb3IgRGVmZWN0byc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3llYXJfaGVscCddID0gJyhQb25lciBhIC0xIHBhcmEgcXVlIGVsIGEmbnRpbGRlO28gcG9yIGRlZmVjdG8gc2VhIGVsIGFjdHVhbCknOwokbGFuZ1sndGl0bGVfc3VibWl0X2FjdGlvbiddID0gJ0x1ZWdvIHF1ZSBlbCBmb3JtdWxhcmlvIHNlYSBlbnZpYWRvJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9yZXNwb25zZSddID0gJ1Jlc3B1ZXN0YSBhIG1vc3RyYXInOwokbGFuZ1snZGlzcGxheV90ZXh0J10gPSAnTW9zdHJhciAmcXVvdDtQbGFudGlsbGEgZGUgRW52aWFkbyZxdW90Oyc7CiRsYW5nWydyZWRpcmVjdF90b19wYWdlJ10gPSAnUmVkaXJpZ2lyIGEgcCZhYWN1dGU7Z2luYSBkZWwgc2l0aW8nOwokbGFuZ1sndGl0bGVfc3VibWl0X3Jlc3BvbnNlX2hlbHAnXSA9ICdFc3RhIHBsYW50aWxsYSBlcyBwYXJhIHNlciBtb3N0cmFkYSBhbCB1c3VhcmlvIHVuYSB2ZXogZW52aWFkbyBlbCBmb3JtdWxhcmlvLiBFc3RhIHBsYW50aWxsYSBubyBhZmVjdGEgYSBsb3MgZW1haWxzIGdlbmVyYWRvcyB1IG90cmFzIGRpc3Bvc2ljaW9uZXMgcGFyYSBlbCBmb3JtdWxhcmlvIC0tIHB1ZWRlIGNvbmZpZ3VyYXIgYSBlc3RhcyAmdWFjdXRlO2x0aW1hcyBwbGFudGlsbGFzIChkb25kZSBzZWEgYXByb3BpYWRvKSBlbiBsYSBzb2xhcGEgJnF1b3Q7YXZhbnphZG8mcXVvdDsgcGFyYSBsb3MgY2FtcG9zIHF1ZSB0aWVuZW4gbGEgZGlzcG9uaWJpbGlkYWQuJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX3BhZ2UnXSA9ICdQJmFhY3V0ZTtnaW5hIERlc3Rpbm8nOwokbGFuZ1sndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzJ10gPSAnUmVxdWVyaXIgTm9tYnJlIGRlIENhbXBvcyc7CiRsYW5nWyd0aXRsZV9yZXF1aXJlX2ZpZWxkbmFtZXNfbG9uZyddID0gJyZpcXVlc3Q7U2UgcmVxdWllcmUgcXVlIGxvcyBjYW1wb3MgdGVuZ2FuIG5vbWJyZT8nOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXMnXSA9ICdSZXF1ZXJpciBOb21icmUgZGUgQ2FtcG9zICZVYWN1dGU7bmljb3MnOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXNfbG9uZyddID0gJyZpcXVlc3Q7U2UgcmVxdWllcmUgcXVlIGxvcyBub21icmVzIGRlIGNhbXBvcyBzZWFuICZ1YWN1dGU7bmljb3M/JzsKJGxhbmdbJ3RpdGxlX3Jlb3JkZXJfZm9ybSddID0gJ1Jlb3JkZW5hciBDYW1wb3MnOwokbGFuZ1sndGl0bGVfbG9hZF90ZW1wbGF0ZSddID0gJ0NhcmdhciBwbGFudGlsbGEnOwokbGFuZ1sndGl0bGVfYWRkX2J1dHRvbl90ZXh0J10gPSAnQWdyZWdhciB0ZXh0byBkZSBCb3Qmb2FjdXRlO24nOwokbGFuZ1sndGl0bGVfZGVsX2J1dHRvbl90ZXh0J10gPSAnRWxpbWluYXIgdGV4dG8gZGUgQm90Jm9hY3V0ZTtuJzsKJGxhbmdbJ3RpdGxlX3N0cmluZ19vcl9udW1iZXJfZXZhbCddID0gJ0ludGVycHJldGFyIGxhcyB2YXJpYWJsZXMgY29tbyBzaSBmdWVyYW4gbiZ1YWN1dGU7bWVyb3MgbyBmcmFzZXMnOwokbGFuZ1sndGl0bGVfb3JkZXInXSA9ICdPcmRlbiBkZSBJbnRlcnByZXRhY2kmb2FjdXRlO24nOwokbGFuZ1sndGl0bGVfb3JkZXJfaGVscCddID0gJ1NpIGV4aXN0ZSBtJmFhY3V0ZTtzIGRlIHVuIENhbXBvIENvbXB1dGFkbywgZWwgb3JkZW4gZGUgbG9zIGMmYWFjdXRlO2xjdWxvcyBpciZhYWN1dGU7IGRlc2RlIGFxdWVsbG9zIGRlIG4mdWFjdXRlO21lcm8gZGUgb3JkZW4gbSZhYWN1dGU7cyBiYWpvIGEgbG9zIGRlIG4mdWFjdXRlO21lcm8gZGUgb3JkZW4gbSZhYWN1dGU7cyBhbHRvJzsKJGxhbmdbJ3RpdGxlX2NvbXB1dGVfdmFsdWUnXSA9ICdWYWxvciBhIGNvbXB1dGFyJzsKJGxhbmdbJ3RpdGxlX3N0cmluZyddID0gJ0ZyYXNlJzsKJGxhbmdbJ3RpdGxlX251bWVyaWMnXSA9ICdOdW0mZWFjdXRlO3JpY28nOwokbGFuZ1sndGl0bGVfaW5saW5lX2Zvcm0nXSA9ICcmaXF1ZXN0O01vc3RyYXIgZWwgZm9ybXVsYXJpbyBpbmxpbmU/JzsKJGxhbmdbJ3RpdGxlX2lubGluZV9mb3JtX2hlbHAnXSA9ICdJbmxpbmUgc2lnbmlmaWNhIHF1ZSBjdWFscXVpZXIgcmVzdWx0YWRvIGRlbCBmb3JtdWxhcmlvIHJlZW1wbGF6YSBlbCB0YWcge2Ntc19tb2R1bGV9LCBub24taW5saW5lIHJlZW1wbGF6YSBlbCB0YWcge2NvbnRlbnR9Lic7CiRsYW5nWyd0aXRsZV9maWVsZF9kZWZhdWx0X3ZhbHVlJ10gPSAnVmFsb3IgcG9yIGRlZmVjdG8gcGFyYSBlbCBjYW1wbyc7CiRsYW5nWyd0aXRsZV9jbGVhcl9kZWZhdWx0J10gPSAnJmlxdWVzdDtMaW1waWFyIHBvciBkZWZlY3RvIGFsIHNlbGVjY2lvbmFyPyc7CiRsYW5nWyd0aXRsZV9jbGVhcl9kZWZhdWx0X2hlbHAnXSA9ICdTZWxlY2Npb25lIGVzdG8gcGFyYSBsaW1waWFyIGVsIHZhbG9yIHBvciBkZWZlY3RvIGN1YW5kbyB1biB1c3VhcmlvIHNlbGVjY2lvbmUgZXN0ZSBjYW1wbyc7CiRsYW5nWyd0aXRsZV9yZW1vdmVfZmlsZV9mcm9tX3NlcnZlciddID0gJ0JvcnJhciBhcmNoaXZvIHN1YmlkbyBkZXNwdWVzIGRlIHByb2Nlc2FyIChkaXNwb3NpY2lvbmVzIGRlIGVtYWlsKSc7CiRsYW5nWyd0aXRsZV9maWVsZF9qYXZhc2NyaXB0J10gPSAnSmF2YXNjcmlwdCBwYXJhIGVsIGNhbXBvJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2phdmFzY3JpcHRfbG9uZyddID0gJ01ha2UgdGhpcyB0aGUgY29tcGxldGUgSmF2YXNjcmlwdCBjYWxsLCBpbmNsdWRpbmcgdGhlIGV2ZW50IHlvdSB3YW50IHRvIHRyYXAsIGUuZy4sIG9uY2xpY2s9JnF1b3Q7eW91cmZuKCkmcXVvdDsnOwokbGFuZ1sndGl0bGVfc3VibWl0X2phdmFzY3JpcHQnXSA9ICdKYXZhc2NyaXB0IGRlIEVudmlvIGRlIEZvcm1hJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9qYXZhc2NyaXB0X2xvbmcnXSA9ICdNYWtlIHRoaXMgdGhlIGNvbXBsZXRlIEphdmFzY3JpcHQgY2FsbCwgaW5jbHVkaW5nIHRoZSBldmVudCB5b3Ugd2FudCB0byB0cmFwLCBlLmcuLCBvbmNsaWNrPSZxdW90O3lvdXJmbigpJnF1b3Q7LjxiciAvPlRoaXMgd2lsbCBwcm9iYWJseSBub3Qgd29yayB3ZWxsIGlmIHlvdSB1c2UgdGhlICZxdW90O3NhZmV0eSBzY3JpcHQmcXVvdDsgb3B0aW9uIGFib3ZlLic7CiRsYW5nWydlbWFpbF9mcm9tX2FkZHJfaGVscCddID0gJ0RvIG5vdCBqdXN0IHBpY2sgYSByYW5kb20gYWRkcmVzcyBoZXJlIC0tIG1hbnkgSVNQcyB3aWxsPGJyIC8+bm90IGRlbGl2ZXIgdGhlIG1haWwgaWYgeW91IGFyZSB1c2luZyBhIGRpZmZlcmVudCBkb21haW4gbmFtZSB0aGFuIHlvdXIgYWN0dWFsPGJyIC8+aG9zdCBuYW1lIChpLmUuLCB1c2Ugc29tZXRoaW5nIGxpa2UgbmFtZUAlcyknOwokbGFuZ1sndGl0bGVfc3dpdGNoX2FkdmFuY2VkJ10gPSAnTmVjZXNpdGEgbWFzIHRpcG9zIGRlIGFyY2hpdm9zPyc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYmFzaWMnXSA9ICdEZW1hc2lhZG9zIHRpcG9zIGRlIGFyY2hpdm9zPyAnOwokbGFuZ1sndGl0bGVfc3dpdGNoX2FkdmFuY2VkX2xpbmsnXSA9ICdDYW1iaWFyIGEgTW9kbyBBdmFuemFkbyc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYmFzaWNfbGluayddID0gJ0NhbWJpYXIgYSBNb2RvIFNpbXBsZSc7CiRsYW5nWyd0aXRsZV9maWxlX3Jvb3QnXSA9ICdEaXJlY3RvcmlvIHBhcmEgZ3VhcmFyIGVsIGFyY2hpdm8nOwokbGFuZ1sndGl0bGVfZmlsZV9yb290X2hlbHAnXSA9ICdUaGlzIG5lZWRzIHRvIGJlIGEgZGlyZWN0b3J5IHRoYXQgeW91ciB3ZWIgc2VydmVyIGhhcyBwZXJtaXNzaW9ucyB0byB3cml0ZSBpbi48YnIgLz5DaG1vZCBpdCA3NzcgaWYgeW91IGhhdmUgcHJvYmxlbXMvZG91YnRzLjxiciAvPkFsc28sIGNoZWNrIHRvIHNlZSB0aGF0IHlvdSBkbyBub3QgaGF2ZSBQSFAgZGlyZWN0b3J5IHJlc3RyaWN0aW9ucy4nOwokbGFuZ1sndGl0bGVfbmV3bGluZV9yZXBsYWNlbWVudCddID0gJ1NpbWJvbG8gZGUgcmVlbXBsYXpvIHBhcmEgcmV0b3Juby9udWV2YSBsaW5lYSc7CiRsYW5nWyd0aXRsZV9uZXdsaW5lX3JlcGxhY2VtZW50X2hlbHAnXSA9ICdEZWphciB2YWNpbyBwYXJhIHBlcm1pdGlyIGRlc3BsaWVndWUgZGUgcmV0b3Juby9udWV2YXMgbGluZWFzICc7CiRsYW5nWyd0aXRsZV9zZW5kX3VzZXJjb3B5J10gPSAnRW52aWFyIHVuYSBjb3BpYSBkZWwgZW52aW8gYWwgdXN1YXJpbz8nOwokbGFuZ1sndGl0bGVfc2VuZF91c2VyY29weV9sYWJlbCddID0gJ0V0aXF1ZXJhIHBhcmEgbGEgY2FqYSBkZSB0aWxkYXIgKGVsZWNjaSZvYWN1dGU7biBkZWwgdXN1YXJpbyknOwokbGFuZ1sndGl0bGVfc2VuZF9tZV9hX2NvcHknXSA9ICdFbnZpYXJtZSB1bmEgY29waWEgZGUgbGEgZm9ybWEnOwokbGFuZ1snb3B0aW9uX25ldmVyJ10gPSAnTnVuY2EnOwokbGFuZ1snb3B0aW9uX3VzZXJfY2hvaWNlJ10gPSAnRGFyIG9wY2kmb2FjdXRlO24gYWwgdXN1YXJpbyAoY2FqYSBkZSB0aWxkYXIpJzsKJGxhbmdbJ29wdGlvbl9hbHdheXMnXSA9ICdTaWVtcHJlJzsKJGxhbmdbJ2Vycm9yX2NhdGFsb2dlcl9tb2R1bGVfbm90X2F2YWlsYWJsZSddID0gJzxzdHJvbmc+RWwgbW9kdWxvIENhdGFsb2dlciBubyBwYXJlY2UgZXN0YXIgaW5zdGFsYWRvL2FjdGl2by48L3N0cm9uZz4nOwokbGFuZ1snd2FybmluZyddID0gJ0FEVkVSVEVOQ0lBISc7CiRsYW5nWydkZWZhdWx0X3RlbXBsYXRlJ10gPSAnUGxhbnRpbGxhIHBvciBEZWZlY3RvJzsKJGxhbmdbJ3RhYmxlX2xlZnRfdGVtcGxhdGUnXSA9ICdQbGFudGlsbGEgZGUgVGFibGEsIFQmaWFjdXRlO3R1bG9zIGEgbGEgaXpxdWllcmRhJzsKJGxhbmdbJ3RhYmxlX3RvcF90ZW1wbGF0ZSddID0gJ1BsYW50aWxsYSBkZSBUYWJsYSwgVCZpYWN1dGU7dHVsb3MgYWwgdG9wZSc7CiRsYW5nWydmb3JtX3RlbXBsYXRlX25hbWUnXSA9ICdQbGFudGlsbGEgZGUgJXMnOwokbGFuZ1sndGVtcGxhdGVfYXJlX3lvdV9zdXJlJ10gPSAnJmlxdWVzdDtFc3QmYWFjdXRlOyBzZWd1cm8gcXVlIHF1aWVyZSBzb2JyZSBlc2NyaWJpciBzdSBwbGFudGlsbGEgY29uIGxhIHBsYW50aWxsYSBzZWxlY2Npb25hZGE/IChBJnVhY3V0ZTtuIGN1YW5kbyB1c3RlZCBkaWdhIE9LLCBuZWNlc2l0YXImYWFjdXRlOyBndWFyZGFyIGxvcyBjYW1iaW9zKSc7CiRsYW5nWyd0aXRsZV9iYWRfZnVuY3Rpb24nXSA9ICdFcnJvciBhbCBjYWxjdWxhciAmcXVvdDslcyZxdW90Oy4nOwokbGFuZ1snbm9fcmVmZXJyZXJfaW5mbyddID0gJ05vIGhheSBpbmZvIGRpc3BvbmlibGUgZGUgSFRUUF9SRUZFUkVSIChwcm9iYWJsZW1lbnRlIGRlYmlkbyBhbCB1c28gZGUgbGEgVmFsaWRhY2kmb2FjdXRlO24gZGVsICBFbWFpbCBkZSBVc3VhcmlvKSc7CiRsYW5nWyd2YWxpZGF0aW9uX3BhcmFtX2Vycm9yJ10gPSAnRXJyb3IgZGUgUGFyJmFhY3V0ZTttZXRybyBkZSBWYWxpZGFjaSZvYWN1dGU7bi4gJmlleGNsO1BvciBmYXZvciBhc2VnJnVhY3V0ZTtyZXNlIHF1ZSBoYSBjb3BpYWRvIGVsIFVSTCBkZSBzdSBkaXJlY2NpJm9hY3V0ZTtuIGVtYWlsIGNvcnJlY3RhbWVudGUhJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVzcG9uc2VfZXJyb3InXSA9ICdFcnJvciBlbiBSZXNwdWVzdGEgZGUgVmFsaWRhY2kmb2FjdXRlO24uICZpZXhjbDtQb3IgZmF2b3IgYXNlZyZ1YWN1dGU7cmVzZSBxdWUgaGEgY29waWFkbyBlbCBVUkwgZGUgc3UgZGlyZWNjaSZvYWN1dGU7biBlbWFpbCBjb3JyZWN0YW1lbnRlISc7CiRsYW5nWyd2YWxpZGF0aW9uX25vX2ZpZWxkX2Vycm9yJ10gPSAnRXJyb3IgZW4gUmVzcHVlc3RhIGRlIFZhbGlkYWNpJm9hY3V0ZTtuLiAmaWV4Y2w7Tm8gaGF5IGNhbXBvIGRlIHZhbGlkYWNpJm9hY3V0ZTtuIGRlIGVtYWlsIGVuIGVzdGUgZm9ybXVsYXJpbyEnOwokbGFuZ1sndXBncmFkZTAzdG8wNCddID0gJ0xhIHBsYW50aWxsYSBkZWwgZm9ybXVsYXJpbyBmdWUgcHVlc3RhIGFsIGQmaWFjdXRlO2EgYXV0b20mYWFjdXRlO3RpY2FtZW50ZSBjb21vIHBhcnRlIGRlbCBhY3R1YWxpemFkbyBkZSBsYSB2ZXJzaSZvYWN1dGU7biAwLjMgYSBsYSB2ZXJzaSZvYWN1dGU7biAwLjQuIFVzdGVkIGRlYmVyJmFhY3V0ZTsgaGFjZXIgYWxndW5vcyBhanVzdGVzLiBTaSBlc3QmYWFjdXRlOyB1dGlsaXphbmRvIGVsIGZvcm11bGFyaW8gcG9yIGRlZmVjdG8sIHNpbXBsZW1lbnRlIHJlbXBsYWNlIGVzdGEgcGxhbnRpbGxhIGNvbiAmcXVvdDtkZWZhdWx0JnF1b3Q7IHVzYW5kbyBlbCBkZXNwbGVnYWJsZSBkZSBhcnJpYmEuJzsKJGxhbmdbJ2FkbWluZGVzYyddID0gJ0FncmVndWUsIGVkaXRlIHkgYWRtaW5pc3RyZSBGb3JtdWxhcmlvcyBpbnRlcmFjdGl2b3MnOwokbGFuZ1snb3BlcmF0b3JzX2hlbHAnXSA9ICdTaSB1c3RlZCB1dGlsaXphIGV2YWx1YWNpJm9hY3V0ZTtuIGRlIFN0cmluZywgbGEgJnVhY3V0ZTtuaWNhIG9wZXJhY2kmb2FjdXRlO24gZGlzcG9uaWJsZSBlcyBjb25jYXRlbmFjaSZvYWN1dGU7biAoKyksIG1pZW50cmFzIHF1ZSBzaSB1c2EgZXZhbHVhY2kmb2FjdXRlO24gbnVtJmVhY3V0ZTtyaWNhIHVzdGVkIHRpZW5lIGMmYWFjdXRlO2xjdWxvcyBtYXRlbSZhYWN1dGU7dGljb3MgYiZhYWN1dGU7c2ljb3MgeSBtdXkgc2ltcGxlcyAoLCArLCAtLCAqLCAvLCApLic7CiRsYW5nWydkYXRlX2phbnVhcnknXSA9ICdFbmVybyc7CiRsYW5nWydkYXRlX2ZlYnJ1YXJ5J10gPSAnRmVicmVybyc7CiRsYW5nWydkYXRlX21hcmNoJ10gPSAnTWFyem8nOwokbGFuZ1snZGF0ZV9hcHJpbCddID0gJ0FicmlsJzsKJGxhbmdbJ2RhdGVfbWF5J10gPSAnTWF5byc7CiRsYW5nWydkYXRlX2p1bmUnXSA9ICdKdW5pbyc7CiRsYW5nWydkYXRlX2p1bHknXSA9ICdKdWxpbyc7CiRsYW5nWydkYXRlX2F1Z3VzdCddID0gJ0Fnb3N0byc7CiRsYW5nWydkYXRlX3NlcHRlbWJlciddID0gJ1NlcHRpZW1icmUnOwokbGFuZ1snZGF0ZV9vY3RvYmVyJ10gPSAnT2N0dWJyZSc7CiRsYW5nWydkYXRlX25vdmVtYmVyJ10gPSAnTm92aWVtYnJlJzsKJGxhbmdbJ2RhdGVfZGVjZW1iZXInXSA9ICdEaWNpZW1icmUnOwokbGFuZ1snc3VibWlzc2lvbl9lcnJvciddID0gJyZpZXhjbDtQZXJkJm9hY3V0ZTtuISBTZSBwcmVzZW50Jm9hY3V0ZTsgdW4gZXJyb3IgZW4gZWwgbWFuZWpvIGRlbCBlbnYmaWFjdXRlO28gZGUgc3UgZm9ybXVsYXJpby4nOwokbGFuZ1snc3VibWl0X2Vycm9yJ10gPSAnRXJyb3IgZGUgZW52JmlhY3V0ZTtvIGRlbCBDb25zdHJ1Y3RvciBkZSBGb3JtdWxhcmlvczogJXMnOwokbGFuZ1sndXBsb2Fkc19lcnJvciddID0gJ0Vycm9yIGNvbWV0aWRvIHBvciBhcmNoaXZvIGFsIG0mb2FjdXRlO2R1bG8gZGUgc3ViaWRhczogJXMnOwokbGFuZ1snbm91cGxvYWRzX2Vycm9yJ10gPSAnTm8gc2UgcHVkbyBoYWxsYXIgZWwgbSZvYWN1dGU7ZHVsbyBkZSBzdWJpZGFzJzsKJGxhbmdbJ3VwbG9hZF9hdHRhY2hfZXJyb3InXSA9ICdTdWJpci9BZGp1bnRvLCBlcnJvciBlbiBhcmNoaXZvICVzIChub21icmVfdG1wOiAlcywgZGVsIHRpcG8gJXMpJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3JfZmlsZV9sb2NrJ10gPSAnRXJyb3IuIE5vIHNlIHB1ZWRlIG9idGVuZXIgYmxvcXVlbyBkZSBhcmNoaXZvLic7CiRsYW5nWyd1bmNoZWNrZWRfYnlfZGVmYXVsdCddID0gJ1ByZWRldGVybWluYWRvOiBzaW4gdGlsZGFyJzsKJGxhbmdbJ2NoZWNrZWRfYnlfZGVmYXVsdCddID0gJ1ByZWRldGVybWluYWRvOiB0aWxkYWRvJzsKJGxhbmdbJ2VtYWlsX2RlZmF1bHRfdGVtcGxhdGUnXSA9ICdFbnYmaWFjdXRlO28gZGVsIENvbnN0cnVjdG9yIGRlIEZvcm11bGFyaW9zJzsKJGxhbmdbJ2VtYWlsX3RlbXBsYXRlX25vdF9zZXQnXSA9ICc8YnIvPiZpZXhjbDtMYSBwbGFudGlsbGEgZGUgZW1haWwgdG9kYXYmaWFjdXRlO2Egbm8gc2UgY29uZmlndXImb2FjdXRlOyEnOwokbGFuZ1snbWlzc2luZ19jbXNfbWFpbGVyJ10gPSAnQ29uc3RydWN0b3IgZGUgRm9ybXVsYXJpb3M6ICZpZXhjbDtObyBzZSBlbmN1ZW50cmEgZWwgbSZvYWN1dGU7ZHVsbyByZXF1ZXJpZG8gQ01TTWFpbGVyISc7CiRsYW5nWyd1c2VyX2FwcHJvdmVkX3N1Ym1pc3Npb24nXSA9ICdFbnYmaWFjdXRlO28gZGUgdXN1YXJpbyBhcHJvYmFkbyAlcyBkZXNkZSAlcyc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J10gPSAnQWNvbnRlY2ltaWVudG8gZGlzcGFyYWRvIGN1YW5kbyB1biBmb3JtdWxhcmlvIGRlbCBDb25zdHJ1Y3RvciBkZSBGb3JtdWxhcmlvcyBlcyBlbnZpYWRvJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddID0gJ0Fjb250ZWNpbWllbnRvIGRpc3BhcmFkbyBzaSBoYXkgdW4gZXJyb3IgY3VhbmRvIHVuIGZvcm11bGFyaW8gZGVsIENvbnN0cnVjdG9yIGRlIEZvcm11bGFyaW9zIGVzIGVudmlhZG8nOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXSA9ICdBY29udGVjaW1pZW50byBkaXNwYXJhZG8gY3VhbmRvIHVuIGZvcm11bGFyaW8gZGVsIENvbnN0cnVjdG9yIGRlIEZvcm11bGFyaW9zIGVzIG1vc3RyYWRvJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXSA9ICc8cD5BY29udGVjaW1pZW50byBkaXNwYXJhZG8gY3VhbmRvIHVuIGZvcm11bGFyaW8gZGVsIENvbnN0cnVjdG9yIGRlIEZvcm11bGFyaW9zIGVzIGVudmlhZG8uPC9wPg0KPGg0PlBhciZhYWN1dGU7bWV0cm9zPC9oND4NCjx1bD4NCjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBFbCBub21icmUgZGVsIGZvcm11bGFyaW8gKHN0cmluZyk8L2xpPg0KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBpZCBpbnRlcm5vIGRlbCBmb3JtdWxhcmlvIChpbnQpPC9saT4NCjxsaT48ZW0+dmFsdWVfPG5hbWU+PC9lbT4gLSBQcm92ZWUgdW4gdmFsb3IgcG9yIGRlZmVjdG8gYSB1biBjYW1wbyBjb24gZWwgbm9tYnJlIGVzcGVjaWZpY2Fkby48L2xpPg0KPC91bD4gJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddID0gJzxwPkFjb250ZWNpbWllbnRvIGRpc3BhcmFkbyBzaSBoYXkgdW4gZXJyb3IgY3VhbmRvIHVuIGZvcm11bGFyaW8gZGVsIENvbnN0cnVjdG9yIGRlIEZvcm11bGFyaW9zIGVzIGVudmlhZG88L3A+DQo8aDQ+UGFyJmFhY3V0ZTttZXRyb3M8L2g0Pg0KPHVsPg0KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIEVsIG5vbWJyZSBkZWwgZm9ybXVsYXJpbyAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIGlkIGludGVybm8gZGVsIGZvcm11bGFyaW8gKGludCk8L2xpPg0KPGxpPjxlbT5lcnJvcjwvZW0+IC0gVW5hIGxpc3RhIGRlIHRvZG9zIGxvcyBlcnJvcmVzIGNvbm9jaWRvcyAoc3RyaW5nKTwvbGk+DQo8L3VsPiAnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXSA9ICc8cD5BY29udGVjaW1pZW50byBkaXNwYXJhZG8gY3VhbmRvIHVuIGZvcm11bGFyaW8gZGVsIENvbnN0cnVjdG9yIGRlIEZvcm11bGFyaW9zIGVzIG1vc3RyYWRvPC9wPg0KPGg0PlBhciZhYWN1dGU7bWV0cm9zPC9oND4NCjx1bD4NCjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBFbCBub21icmUgZGVsIGZvcm11bGFyaW8gKHN0cmluZyk8L2xpPg0KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBpZCBpbnRlcm5vIGRlbCBmb3JtdWxhcmlvIChpbnQpPC9saT4NCjwvdWw+ICc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfcmVzcG9uc2VfaWQnXSA9ICdJRCBkZSByZXNwdWVzdGEuIFVzYWRvIHBvciBlbCBFeHBsb3JhZG9yIGRlIEZvcm11bGFyaW9zJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19wYXNzZWRfZnJvbV90YWcnXSA9ICdWYWxvciBwb3IgZGVmZWN0byBkZSBjYW1wbzsgdmVyIGF5dWRhIGRlbCBtJm9hY3V0ZTtkdWxvJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19maWVsZF9pZCddID0gJ0lEIGRlIGNhbXBvIHBhcmEgb3BlcmFjaW9uZXMgaW50ZXJuYXMnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2Zvcm1fbmFtZSddID0gJ05vbWJyZSBkZSBGb3JtdWxhcmlvJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19mb3JtX2lkJ10gPSAnSUQgZGUgRm9ybXVsYXJpbyBwYXJhIG9wZXJhY2lvbmVzIGludGVybmFzJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19nZW5lcmFsJ10gPSAnUGFyJmFhY3V0ZTttZXRyb3MgZ2VuZXJhbGVzIHBhcmEgb3BlcmFjaW9uZXMgaW50ZXJuYXMnOwokbGFuZ1sndGVtcGxhdGVfdmFyaWFibGVfaGVscCddID0gJzxoMz5WYXJpYWJsZXMgZGUgUGxhbnRpbGxhIGRlIEZvcm11bGFyaW88L2gzPg0KPHA+VXN0ZWQgcHVlZGUgZWRpdGFyIGEgbGEgcGxhbnRpbGxhIHBhcmEgaGFjZXIgcXVlIGVsIGxheW91dCBkZWwgZm9ybXVsYXJpbyBzZSB2ZWEgZGUgbGEgZm9ybWEgcXVlIGEgdXN0ZWQgbSZhYWN1dGU7cyBndXN0ZS4NCiAgIFBhcmEgcXVlIGVsIGZvcm11bGFyaW8gZnVuY2lvbmUsIHVzdGVkIGRlYmUgc2llbXByZSBpbmNsdWlyIGxhcyB0YWdzIHskZmJfaGlkZGVufSB5IHskc3VibWl0fS48L3A+DQoNCjxwPlVzdGVkIHB1ZWRlIGxsZWdhciBoYXN0YSBsb3MgY2FtcG9zIGRlIHN1IGZvcm11bGFyaW8sIGJpZW4gdXNhbmRvIGVsIGFycmF5IGRlICRmaWVsZHMgbyBkaXJlY3RhbWVudGUgaW5ncmVzYXIgdXRpbGl6YW5kbyBsb3Mgbm9tYnJlcyBkZSBsb3MgY2FtcG9zIChwLmVqLiwgeyRteWZpZWxkLT5pbnB1dH0gKTwvcD4NCg0KDQo8cD5DYWRhIGNhbXBvIHRpZW5lIGxvcyBzaWd1aWVudGVzIGF0cmlidXRvczo8L3A+DQo8dGFibGU+DQo8dHI+PHRoPkNhbXBvPC90aD48dGg+VmFsb3I8L3RoPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5kaXNwbGF5PC90ZD48dGQ+MSBzaSBlbCBjYW1wbyBkZWJlIHNlciBtb3N0cmFkbywgMCBkZSBvdHJhIGZvcm1hPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+cmVxdWlyZWQ8L3RkPjx0ZD4xIHNpIGVsIGNhbXBvIGRlYmUgc2VyIG1vc3RyYWRvLCAwIGRlIG90cmEgZm9ybWE8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5yZXF1aXJlZF9zeW1ib2w8L3RkPjx0ZD5lbCBzJmlhY3V0ZTttYm9sbyBwYXJhIGNhbXBvcyByZXF1ZXJpZG9zPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+Y3NzX2NsYXNzPC90ZD4NCjx0ZD5sYSBjbGFzZSBDU1MgZXNwZWNpZmljYWRhIHBhcmEgZXN0ZSBjYW1wbzwvdGQ+DQo8L3RyPg0KPHRyPjx0ZD5maWVsZC0+dmFsaWQ8L3RkPg0KPHRkPjEgc2kgZWwgY2FtcG8gaGEgcGFzYWRvIGxhIHZhbGlkYWNpJm9hY3V0ZTtuLCAwIGRlIG90cmEgZm9ybWE8L3RkPg0KPC90cj4NCjx0cj48dGQ+ZmllbGQtPmVycm9yPC90ZD4NCjx0ZD5UZXh0byBkZWwgcHJvYmxlbWEgZGUgdmFsaWRhY2kmb2FjdXRlO24sIGVuIGVsIGNhc28gcXVlIGVzdGUgY2FtcG8gbm8gc2VhIHZhbGlkYWRvPC90ZD4NCjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5oaWRlX25hbWU8L3RkPg0KPHRkPjEgc2kgZWwgbm9tYnJlIGRlbCBjYW1wbyBkZWJlIHNlciBvY3VsdGFkbywgMCBkZSBvdHJhIGZvcm1hIDwvdGQ+DQo8L3RyPg0KPHRyPjx0ZD5maWVsZC0+aGFzX2xhYmVsPC90ZD4NCjx0ZD4xIHNpIGVsIHRpcG8gZGUgY2FtcG8gdGllbmUgdW5hIGV0aXF1ZXRhPC90ZD4NCjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5uZWVkc19kaXY8L3RkPg0KPHRkPjEgc2kgZWwgY2FtcG8gbmVjZXNpdGEgc2VyIGVudnVlbHRvIHBvciB1bmEgRElWIChvIGZpbGEgZGUgdGFibGEsIHNpIGVzdGUgZXMgbGEgY2FuY2kmb2FjdXRlO24gcXVlIHVzdGVkIGJhaWxhKTwvdGQ+DQo8L3RyPg0KPHRyPjx0ZD5maWVsZC0+bmFtZTwvdGQ+DQo8dGQ+ZWwgbm9tYnJlIGRlbCBjYW1wbzwvdGQ+DQo8L3RyPg0KPHRyPjx0ZD5maWVsZC0+aW5wdXQ8L3RkPg0KPHRkPmVsIGNvbnRyb2wgZGUgZW50cmFkYSBkZSBjYW1wbyAocC5lai4sIGVsIGNhbXBvIGRlIGVudHJhZGEgZW4gc2kgbWlzbW8pPC90ZD4NCjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5vcDwvdGQ+DQo8dGQ+dW4gYm90Jm9hY3V0ZTtuIGRlIGNvbnRyb2wgYXNvY2lhZG8gYWwgY2FtcG8gc2kgZXMgYXBsaWNhYmxlIChwLmVqLiwgZWwgYm90Jm9hY3V0ZTtuIGVsaW1pbmFyIHBhcmEgZW50cmFkYXMgZGUgdGV4dG8gZXhwYW5kaWJsZXMpPC90ZD4NCjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5pbnB1dF9pZDwvdGQ+PHRkPnRoZSBJRCBvZiB0aGUgZmllbGQmIzAzOTtzIGlucHV0ICh1c2VmdWwgZm9yIDxsYWJlbCBmb3I9JnF1b3Q7JnF1b3Q7Pik8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT50eXBlPC90ZD4NCjx0ZD5lbCB0aXBvIGRlIGRhdG9zIGRlbCBjYW1wbzwvdGQ+DQo8L3RyPg0KDQo8dHI+PHRkPmZpZWxkLT5tdWx0aXBsZV9wYXJ0czwvdGQ+DQo8dGQ+MSBzaSBlbCBjYW1wby0+ZW50cmFkYSBlcyBlbiByZWFsaWRhZCB1bmEgY29sZWNjaSZvYWN1dGU7biBkZSBjb250cm9sZXM8L3RkPg0KPC90cj4NCjx0cj48dGQ+ZmllbGQtPmxhYmVsX3BhcnRzPC90ZD4NCjx0ZD4xIHNpIGxhIGNvbGVjY2kmb2FjdXRlO24gZGUgY29udHJvbGVzIHRpZW5lIGV0aXF1ZXRhcyBzZXBhcmFkYXMgcGFyYSBjYWRhIGNvbnRyb2w8L3RkPg0KPC90cj4NCjwvdGFibGU+DQoNCjxwPkVuIGFsZ3Vub3MgY2FzbywgY2FtcG8tPmVudHJhZGEgZXMgZW4gcmVsaWRhZCB1biBhcnJheSBkZSBvYmpldG9zIG0mYWFjdXRlO3MgcXVlIHVuYSBlbnRyYWRhLiBFc3RvIHBhc2EsIHBvciBlamVtcGxvLCBlbiBHcnVwb3MgZGUgQ2FqYXMgZGUgVGlsZGUgbyBHcnVwb3MgZGUgQm90b25lcyBkZSBSYWRpby4gUGFyYSBlbGxvcywgdXN0ZWQgcHVlZGUgaGFjZXIgdW5hIGl0ZXJhY2kmb2FjdXRlO24gYSB0cmF2ZXMgZGUgY2FtcG8tPmVudHJhZGEtPm5vbWJyZSB5IGNhbXBvLT5lbnRyYWRhLT5lbnRyYWRhcy48L3A+DQoNCjxwPkFkZGl0aW9uYWwgc21hcnR5IHZhcmlhYmxlcyB0aGF0IHlvdSBjYW4gdXNlIGluY2x1ZGU6PC9wPg0KPHRhYmxlPg0KPHRyPjx0aD5WYXJpYWJsZTwvdGg+DQo8dGg+VmFsb3I8L3RoPg0KPC90cj4NCjx0cj48dGQ+dG90YWxfcGFnZXM8L3RkPg0KPHRkPm4mdWFjdXRlO21lcm9zIGRlIHAmYWFjdXRlO2dpbmFzIHBhcmEgZm9ybXVsYXJpb3MgbXVsdGlwJmFhY3V0ZTtnaW5hczwvdGQ+DQo8L3RyPg0KPHRyPjx0ZD50aGlzX3BhZ2U8L3RkPg0KPHRkPm4mdWFjdXRlO21lcm8gcGFyYSBsYSBjb3JyaWVudGUgcCZhYWN1dGU7Z2luYSBwYXJhIGZvcm11bGFyaW9zIG11bHRpcCZhYWN1dGU7Z2luYXMgPC90ZD4NCjwvdHI+DQo8dHI+PHRkPnRpdGxlX3BhZ2VfeF9vZl95PC90ZD4NCjx0ZD5tdWVzdHJhIGEgJnF1b3Q7cCZhYWN1dGU7Z2luYSB4IGRlIHkmcXVvdDsgcGFyYSBmb3JtdWxhcmlvcyBtdWx0aXAmYWFjdXRlO2dpbmFzPC90ZD4NCjwvdHI+DQo8dHI+PHRkPmNzc19jbGFzczwvdGQ+DQo8dGQ+Q2xhc2UgQ1NTIHBhcmEgZWwgZm9ybXVsYXJpbzwvdGQ+DQo8L3RyPg0KPHRyPjx0ZD5mb3JtX25hbWU8L3RkPg0KPHRkPk5vbWJyZSBkZWwgZm9ybXVsYXJpbzwvdGQ+DQo8L3RyPg0KPHRyPjx0ZD5mb3JtX2lkPC90ZD4NCjx0ZD5JRCBkZWwgZm9ybXVsYXJpbyBlbiBsYSBiYXNlIGRlIGRhdG9zPC90ZD4NCjwvdHI+DQo8dHI+PHRkPnByZXY8L3RkPg0KPHRkPkJvdCZvYWN1dGU7biAmcXVvdDtWb2x2ZXImcXVvdDsgcGFyYSBmb3JtdWxhcmlvcyBtdWx0aXBhcnRlczwvdGQ+DQo8L3RyPg0KPHRyPjx0ZD5zdWJtaXQ8L3RkPg0KPHRkPkJvdG9uZXMgJnF1b3Q7Q29udGludWFyJnF1b3Q7IG8gJnF1b3Q7RW52aWFyJnF1b3Q7IHBhcmEgZm9ybXVsYXJpb3MgbXVsdGlwYXJ0ZXMsIHNlIGFqdXN0YSBhdXRvbSZhYWN1dGU7dGljYW1lbnRlPC90ZD4NCjwvdHI+DQo8L3RhYmxlPg0KPHA+Tm8gc2UgcGFyYSBxdWUgcXVpZXJlIHVzdGVkIGFsZ3Vub3MgZGUgZXNvcywgcGVybyBhbGwmaWFjdXRlOyBlc3QmYWFjdXRlO24uLi48L3A+JzsKJGxhbmdbJ3Bvc3RfaW5zdGFsbCddID0gJzxwPlRlbmdhIHBvciBzZWd1cm8gZW4gYWN0aXZhciBlbCBwZXJtaXNvICZxdW90O01vZGlmaWNhciBGb3JtdWxhcmlvcyZxdW90OyBwYXJhIGFxdWVsbG9zIHVzdWFyaW9zIG8gZ3J1cG9zIGRlIHVzdWFyaW9zIHF1ZSBhZG1pbmlzdHJhciZhYWN1dGU7biBsb3MgZm9ybXVsYXJpb3MgZGUgY29udGFjdG8uIFRhbWJpJmVhY3V0ZTtuLCBzaSB1c3RlZCB2YSBhIGVudmlhciBlbCByZXN1bHRhZG8gZGUgbG9zIGZvcm11bGFyaW9zIHBvciBlbWFpbCwgaGFnYSB1bmEgYWN0dWFsaXphY2kmb2FjdXRlO24gZGUgbGEgQ29uZmlndXJhY2kmb2FjdXRlO24gZW4gZm9ybWEgYXByb3BpYWRhLjwvcD4NCjxwPlBvciBmYXZvciB0ZW5nYSBlbiBjdWVudGEgcXVlIHVuIGZvcm11bGFyaW8gZGUgY29udGFjdG8gbm8gZGViZSBlc3RhciBhY3Rpdm8gKHAuZWouLCBlbiB1c28gcG9yIGVsIHAmdWFjdXRlO2JsaWNvKSBtaWVudHJhcyB1c3RlZCBlc3QmYWFjdXRlOyBlbiBlbCBwcm9jZXNvIGRlIGVkaXRhcmxvLiBVc3RlZCBkZWJlIGNyZWFyIGVsIGZvcm11bGFyaW8sIHkgbHVlZ28gY29sb2NhciBlbCB0YWcgY29ycmVzcG9uZGllbnRlIGVuIHVuYSBwJmFhY3V0ZTtnaW5hIGRlIGNvbnRlbmlkbyBhY3RpdmEgcyZvYWN1dGU7bG8gY3VhbmRvIGhheWEgdGVybWluYWRvIGRlIGVkaXRhcmxvLiBEZSBvdHJhIGZvcm1hLCBwdWVkZSBvYnRlbmVyIHJlc3VsdGFkb3MgY29uIGVycm9yZXMuPC9wPg0KPHA+QWRlbSZhYWN1dGU7cywgZXN0YSB2ZXJzaSZvYWN1dGU7biBubyBzb3BvcnRhIGVsIGVkaXRhZG8gcGFyYWxlbG8gZGUgbG9zIGZvcm11bGFyaW9zLiBQb3IgZmF2b3IgaW5zdHJ1eWEgYSBsb3MgYWRtaW5pc3RyYWRvcmVzIHBhcmEgcXVlIHRlbmdhbiBlbCBjdWlkYWRvIGRlIGVkaXRhciBlbiBmb3JtYSBleGNsdXNpdmEgdW4gZm9ybXVsYXJpbywgZXZpdGFuZG8gY29pbmNpZGlyIGVuIGxhIHRhcmVhIGNvbiBvdHJvIGFkbWluaXN0cmFkb3IuPC9wPic7CiRsYW5nWydoZWxwJ10gPSAnPGgzPldoeWF0IERvZXMgVGhpcyBEbz88L2gzPg0KPHA+VGhlIEZvcm0gQnVpbGRlciBNb2R1bGUgYWxsb3dzIHlvdSB0byBjcmVhdGUgZmVlZGJhY2sgZm9ybXMgKGluIGZhY3QsIGl0JiMwMzk7cyBhIHJlcGxhY2VtZW50IG9mIHRoZSBvcmlnaW5hbCBGZWVkYmFjayBGb3JtIG1vZHVsZSksIHdpdGggdGhlIGFkZGVkIHBvd2VyIG9mIGRhdGFiYXNlIHN0b3JhZ2UuIFdpdGggaXRzIGNvbXBhbmlvbiBtb2R1bGUgRm9ybSBCcm93c2VyLCB5b3UgY2FuIHVzZSBpdCB0byBjcmVhdGUgc2ltcGxlIGRhdGFiYXNlIGFwcGxpY2F0aW9ucy48L3A+DQo8cD5UaGUgZm9ybXMgY3JlYXRlZCB1c2luZyB0aGUgRm9ybSBCdWlsZGVyIG1heSBiZSBpbnNlcnRlZA0KaW50byB0ZW1wbGF0ZXMgYW5kL29yIGNvbnRlbnQgcGFnZXMuIEZvcm1zIG1heSBjb250YWluIG1hbnkga2luZHMgb2YgaW5wdXRzLCBhbmQgbWF5IGhhdmUNCnZhbGlkYXRpb24gYXBwbGllZCB0byB0aGVzZSBpbnB1dHMuIFRoZSByZXN1bHRzIG9mIHRoZXNlIGZvcm1zIG1heSBiZSBoYW5kbGVkIGluIGEgdmFyaWV0eSBvZiB3YXlzLjwvcD4NCg0KPGgzPkhvdyBEbyBJIFVzZSBpdD88L2gzPg0KPFA+SW5zdGFsbCBpdCwgYW5kIHBva2UgYXJvdW5kIHRoZSBtZW51cy4gUGxheSB3aXRoIGl0LiBUcnkgY3JlYXRpbmcgZm9ybXMsIGFuZCBhZGRpbmcgdGhlbSB0byB5b3VyIGNvbnRlbnQuDQpJZiB5b3UgZ2V0IHN0dWNrLCBjaGF0IHdpdGggbWUgb24gdGhlICNjbXMgSVJDIGNoYW5uZWwsIHBvc3QgdG8gdGhlIGZvcnVtLCBzZW5kIG1lIGVtYWlsLCBvciwgaWYgeW91JiMwMzk7cmUNCnJlYWxseSBkZXNwZXJhdGUsIHJlYWQgdGhlIHJlc3Qgb2YgdGhpcyBwYWdlLjwvUD4NCg0KPGgzPkhvdyBEbyBJIENyZWF0ZSBhIEZvcm08L2gzPg0KPHA+SW4gdGhlIENNUyBBZG1pbiBNZW51LCB5b3Ugc2hvdWxkIGdldCBhIG5ldyBtZW51IGl0ZW0gY2FsbGVkIEZvcm1CdWlsZGVyLiBDbGljayBvbiB0aGlzLiBPbiB0aGUgcGFnZQ0KdGhhdCBnZXRzIHNob3duLCB0aGVyZSBhcmUgb3B0aW9ucyAoYXQgdGhlIGJvdHRvbSBvZiB0aGUgbGlzdCBvZiBGb3JtcykgdG8gQWRkIGEgTmV3IEZvcm0gb3IgTW9kaWZ5DQpDb25maWd1cmF0aW9uLjwvcD4NCg0KPGgzPkFkZGluZyBhIEZvcm0gdG8gYSBQYWdlPC9oMz4NCjxwPkluIHRoZSBtYWluIEZvcm1CdWlsZGVyIGFkbWluIHBhZ2UsIHlvdSBjYW4gc2VlIGFuIGV4YW1wbGUgb2YgdGhlIHRhZyB1c2VkIHRvIGRpc3BsYXkgZWFjaCBmb3JtLiBJdCBsb29rcw0Kc29tZXRoaW5nIGxpa2Uge2Ntc19tb2R1bGUgbW9kdWxlPSYjMDM5O0Zvcm1CdWlsZGVyJiMwMzk7IGZvcm09JiMwMzk7c2FtcGxlX2Zvcm0mIzAzOTt9PC9wPg0KPHA+QnkgY29weWluZyB0aGlzIHRhZyBpbnRvIHRoZSBjb250ZW50IG9mIGEgcGFnZSwgb3IgaW50byBhIHRlbXBsYXRlLCB3aWxsIGNhdXNlIHRoYXQgZm9ybSB0byBiZSBkaXNwbGF5ZWQuDQpJbiB0aGVvcnksIHlvdSBjYW4gaGF2ZSBtdWx0aXBsZSBmb3JtcyBvbiBhIHBhZ2UgaWYgeW91IHJlYWxseSB3YW50IHRvLiBCZSBjYXJlZnVsIHdoZW4gcGFzdGluZyB0aGUgdGFnDQppbnRvIGEgcGFnZSYjMDM5O3MgY29udGVudCBpZiB5b3UgdXNlIGEgV1lTSVdZRyBlZGl0b3Igc3VjaCBhcyBUaW55TUNFLCBGQ0tFZGl0LCBvciBIVE1MQXJlYS4gVGhlc2UgZWRpdG9ycyBtYXkgc3RlYWx0aGlseQ0KY2hhbmdlIHRoZSBxdW90ZSBtYXJrcyAoJnF1b3Q7KSBpbnRvIEhUTUwgZW50aXRpZXMgKCZhbXA7cXVvdDspLCBhbmQgdGhlIGZvcm1zIHdpbGwgbm90IHNob3cgdXAuIFRyeSB1c2luZw0Kc2luZ2xlIHF1b3RlcyAoJiMwMzk7KSBvciBlZGl0aW5nIHRoZSBIVE1MIGRpcmVjdGx5LjwvcD4NCg0KPGgzPldvcmtpbmcgd2l0aCBGb3JtczwvaDM+DQo8cD5CeSBjbGlja2luZyBvbiBhIEZvcm0mIzAzOTtzIG5hbWUsIHlvdSBlbnRlciB0aGUgRm9ybSBFZGl0IHBhZ2UuIFRoZXJlIGFyZSBzZXZlcmFsIHRhYnMsIHdoaWNoIGFyZSBkZXNjcmliZWQgYmVsb3c6PC9wPg0KPGg0Pk1haW48L2g0Pg0KPHA+VGhpcyBpcyB0aGUgbWFpbiBwbGFjZSB5b3UmIzAzOTtsbCB3b3JrIG9uIHlvdXIgZm9ybS4gSGVyZSwgeW91IGdpdmUgaXQgYSBuYW1lLCBhbiBhbGlhcyAod2hpY2ggaXMgdXNlZCB0byBpZGVudGlmeSBpdCBmb3IgcGxhY2luZyBpdCBpbiBhIHBhZ2Ugb3IgdGVtcGxhdGUpLCBhbmQsIG9wdGlvbmFsbHksIGEgQ1NTIGNsYXNzIHdpdGggd2hpY2ggdG8gd3JhcCB0aGUgd2hvbGUgdGhpbmcuPC9wPg0KPHA+QmVsb3cgdGhpcywgaWYgeW91IGhhdmUgaXQgZW5hYmxlZCwgaXMgdGhlICZxdW90O2Zhc3QgZmllbGQgYWRkZXImcXVvdDsgcHVsbGRvd24sIHRoYXQgbGV0cyB5b3UgcXVpY2tseSBhZGQgYSBmaWVsZCB0byB0aGUgZW5kIG9mIHlvdXIgZm9ybSBieSBzZWxlY3RpbmcgdGhlIGZpZWxkIHR5cGUuPC9wPg0KPHA+QmVsb3cgdGhpcyBpcyB0aGUgbGlzdCBvZiBmaWVsZHMgdGhhdCBtYWtlIHVwIHlvdXIgZm9ybS4gTW9yZSBkZXRhaWwgb24gdGhpcyBpcyBkZXNjcmliZWQgYmVsb3cuPC9wPg0KPGg0PkZvcm0gU3VibWlzc2lvbjwvaDQ+DQo8cD5XaGVuIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZCwgeW91IGNhbiBlaXRoZXIgcmVkaXJlY3QgdGhlIHVzZXIgdG8gYW5vdGhlciBwYWdlIG9mIHlvdXIgc2l0ZSwgb3IgeW91IGNhbiBwcmVzZW50IHRoZSB1c2VyIHNvbWUgbWVzc2FnZSAod2hpY2ggY2FuIGNvbnRhaW4gYW55IG9mIHRoZSB1c2VyJiMwMzk7cyBmb3JtIGVudHJpZXMsIG9yIGp1c3Qgc3RhdGljIHRleHQpLiBJbiB0aGlzIHRhYiwgeW91IHNlbGVjdCB3aGljaCBvZiB0aGVzZSBhcHByb2FjaGVzIHlvdSB3aXNoIHRvIHVzZSwgYW5kLCBpZiB5b3UgY2hvc2UgcmVkaXJlY3Rpb24sIGl0IGFsbG93cyB5b3UgdG8gcGljayB0aGUgcGFnZSB0byByZWRpcmVjdCB1c2VycyB0byBhZnRlciBhIHN1Y2Nlc3NmdWwgZm9ybSBzdWJtaXNzaW9uLjwvcD4NCjxwPkFsc28gb24gdGhpcyBwYWdlLCB5b3UgY2FuIHNwZWNpZnkgdGhlIGxhYmVscyBvZiB2YXJpb3VzIHN1Ym1pc3Npb24gYnV0dG9ucyAoJnF1b3Q7UHJldmlvdXMmcXVvdDssICZxdW90O25leHQmcXVvdDssICZxdW90O3N1Ym1pdCZxdW90OykuIFlvdSBjYW4gYWxzbyBvcHQgdG8gaGF2ZSBzb21lIEphdmFzY3JpcHQgYWRkZWQgdG8gdGhlIGxhc3QgcGFnZSBvZiBhIGZvcm0gdGhhdCB3aWxsIHByZXZlbnQgbXVsdGlwbGUgc3VibWlzc2lvbnMgKHVzZWZ1bCBvbiBzbG93IHNlcnZlcnMpLjwvcD4NCjxoND5Gb3JtIERpc3BsYXkgT3B0aW9uczwvaDQ+DQo8cD5UaGlzIHRhYiBhbGxvd3MgZm9yIG90aGVyIGZvcm0gY3VzdG9taXphdGlvbnMsIGxpa2UgdGhlIHN5bWJvbCB0byBzaG93IGZvciByZXF1aXJlZCBmaWVsZHMuPC9wPg0KPGg0PkNhcHRjaGEgU2V0dGluZ3M8L2g0Pg0KPHA+SWYgeW91IGhhdmUgaW5zdGFsbGVkIHRoZSBDYXB0Y2hhIG1vZHVsZSwgdGhpcyB0YWIgbGV0cyB5b3UgY29uZmlndXJlIHRoZSBDYXB0Y2hhIHNldHRpbmdzIGZvciB5b3VyIGZvcm0uPC9wPg0KPGg0PkZvcm0gVGVtcGxhdGU8L2g0Pg0KPHA+VGhpcyBpcyB3aGVyZSB5b3UgZG8geW91ciBjdXN0b21pemF0aW9uIHdvcmsgb2YgeW91ciBmb3JtJiMwMzk7cyBTbWFydHkgVGVtcGxhdGUuIFNlZSB0aGUgc2VjdGlvbiBjYWxsZWQgRm9ybSBUZW1wbGF0ZSBWYXJpYWJsZXMgYmVsb3cuPC9wPg0KPHA+VGhlIGZvcm0gc2hvdWxkIGRlZmF1bHQgdG8gYSBDdXN0b20gdGVtcGxhdGUgdGhhdCBkb2N1bWVudHMgdGhlIFNtYXJ0eSB0YWdzIGF2YWlsYWJsZSB0byB5b3UuPC9wPg0KPHA+VW5sZXNzIHlvdSYjMDM5O3JlIGEgU21hcnR5IGV4cGVydCwgeW91IHByb2JhYmx5IGRvbiYjMDM5O3Qgd2FudCB0byBtZXNzIGFyb3VuZCB3aXRoIHRoaXMuIElmIHlvdSBhcmUgYSBTbWFydHkgZXhwZXJ0LCB0aGlzIGlzIHdoZXJlIHlvdSBjYW4gdW5sZWFzaCB5b3VyIG1hZ2ljLjwvcD4NCjxoND5TdWJtaXNzaW9uIFRlbXBsYXRlPC9oND4NCjxwPklmLCBpbiB0aGUgRm9ybSBTdWJtaXNzaW9uIHRhYiwgeW91IHNlbGVjdGVkICYjMDM5O0Rpc3BsYXkgJnF1b3Q7U3VibWlzc2lvbiBUZW1wbGF0ZSZxdW90OywgdGhpcyBpcyB3aGVyZSB5b3UgY2FuIGNyZWF0ZSB0aGF0IHRlbXBsYXRlLiBUaGVyZSBpcyBhIGRpc3BsYXkgb2Ygd2hpY2ggc21hcnR5IHZhcmlhYmxlcyBhcmUgYXZhaWxhYmxlIHRvIHlvdSwgYW5kIGEgYnV0dG9uIHRvIGdlbmVyYXRlIGEgc2FtcGxlIHRlbXBsYXRlLjwvcD4NCjxwPklmIHlvdSYjMDM5O3JlIGEgU21hcnR5IGV4cGVydCwgeW91IGNhbiBkbyBhbGwgbWFubmVyIG9mIGNyZWF0aXZlIGFuZCBwb3dlcmZ1bCB0aGluZ3MgaGVyZS4gSWYgeW91JiMwMzk7cmUgbm90IGEgU21hcnR5IGV4cGVydCwgeW91IG1pZ2h0IGp1c3Qgd2FudCB0byB1c2UgdGhlIGRlZmF1bHQuDQo8L3A+DQoNCjxoMz5BZGRpbmcgRmllbGRzIHRvIHlvdXIgRm9ybTwvaDM+DQo8cD5UaGUgdHlwZXMgb2YgZmllbGRzIHRoYXQgYXJlIGN1cnJlbnRseSBzdXBwb3J0ZWQgZml0IGludG8gZm91ciBncm91cHM6IHN0YW5kYXJkIGlucHV0IGZpZWxkcywgZGlzcGxheSBjb250cm9sIGZpZWxkcywgZW1haWwtc3BlY2lmaWMgZmllbGRzLCBhbmQgZm9ybSByZXN1bHQgaGFuZGxpbmcgZmllbGRzIChhbHNvIGNhbGxlZCBGb3JtIERpc3Bvc2l0aW9ucyBpbiBwbGFjZXMpOjwvcD4NCjx1bD4NCjxsaT5TdGFuZGFyZCBJbnB1dCBGaWVsZHMgLSB0aGVzZSBhcmUgaW5wdXRzIHRoYXQgYWxsb3cgZW50cnkgb2YgdHlwaWNhbCBmb3JtIGVsZW1lbnRzOyB0ZXh0IGlucHV0cywgcmFkaW8gYnV0dG9ucywgZXRjLjwvbGk+DQo8bGk+RGlzcGxheSBDb250cm9sIEZpZWxkcyAtIHRoZXNlIGlucHV0IGNvbnRyb2wgaG93IHRoZSB1c2VyIHdpbGwgc2VlIHRoZSBkaXNwbGF5IG9mIHRoZSBmb3JtOyBwYWdlIGJyZWFrcywgc3RhdGljIHRleHQsIGV0Yy48L2xpPg0KPGxpPkVtYWlsLXNwZWNpZmljIEZpZWxkcyAtIHNvbWUgZm9ybXMgZ2VuZXJhdGUgZW1haWwsIGFuZCBlbWFpbC1zcGVjaWZpYyBmaWVsZHMgY2FuIGFsdGVyIGF0dHJpYnV0ZXMgb2YgdGhlIGVtYWlscyBzZW50LjwvbGk+DQo8bGk+Rm9ybSBEaXNwb3NpdGlvbnMgLSBUaGVzZSBkZXRlcm1pbmUgd2hhdCBoYXBwZW5zIHdoZW4gdGhlIHVzZXINCnN1Ym1pdHMgdGhlIGZvcm07IGZvciBlYWNoIHJlc3VsdCBoYW5kbGluZyBmaWVsZCwgc29tZSBtZXRob2Qgb2YgdHJhbnNtaXR0aW5nLCBzYXZpbmcsIG9yIGVtYWlsaW5nIHRoZQ0KZm9ybSBjb250ZW50cyB0YWtlcyBwbGFjZS4gQSBmb3JtIG1heSBoYXZlIG11bHRpcGxlIGZvcm0gZGlzcG9zaXRpb25zLjwvbGk+DQo8L3VsPg0KPHA+Rm9ybSBmaWVsZHMgYXJlIGFzc2lnbmVkIG5hbWVzLiBUaGVzZSBuYW1lcyBpZGVudGlmeSB0aGUgZmllbGQsIG5vdCBvbmx5IG9uIHRoZSBzY3JlZW4gYXMgbGFiZWxzIGZvciB0aGUgdXNlciwNCmJ1dCBpbiB0aGUgZGF0YSB3aGVuIGl0JiMwMzk7cyBzdWJtaXR0ZWQgc28geW91IGtub3cgd2hhdCB0aGUgdXNlciBpcyByZXNwb25kaW5nIHRvLiBQaHJhc2luZyB0aGUgbmFtZSBsaWtlIGEgcXVlc3Rpb24NCmlzIGEgaGFuZHkgd2F5IG9mIG1ha2luZyBpdCBjbGVhciB0byB0aGUgdXNlciB3aGF0IGlzIGV4cGVjdGVkLiBTaW1pbGFybHksIG1hbnkgZmllbGRzIGhhdmUgYm90aCBOYW1lcyBhbmQgVmFsdWVzLg0KVGhlIE5hbWVzIGFyZSB3aGF0IGdldHMgc2hvd24gdG8gdGhlIHVzZXI7IHRoZSBWYWx1ZSBpcyB3aGF0IGdldHMgc2F2ZWQgb3IgdHJhbnNtaXR0ZWQgd2hlbiB0aGUgdXNlciBzdWJtaXRzDQp0aGUgZm9ybS4gVGhlIFZhbHVlcyBhcmUgbmV2ZXIgc2VlbiBieSB0aGUgdXNlciwgbm9yIGFyZSB0aGV5IHZpc2libGUgaW4gdGhlIEhUTUwsIHNvIGl0JiMwMzk7cyBzYWZlIHRvIHVzZSBmb3INCmVtYWlsIGFkZHJlc3NlcyBhbmQgc3VjaC48L3A+DQo8cD5Tb21lIGZpZWxkcyBjYW4gaGF2ZSBtdWx0aXBsZSB2YWx1ZXMsIG9yIG11bHRpcGxlIG5hbWUvdmFsdWUgcGFpcnMuIFdoZW4geW91IGZpcnN0IGNyZWF0ZSBzdWNoIGEgZmllbGQsDQp0aGVyZSBtYXkgbm90IGJlIHN1ZmZpY2llbnQgaW5wdXRzIGZvciB5b3UgdG8gc3BlY2lmeSBhbGwgdGhlIHZhbHVlcyB5b3Ugd2FudC4gVG8gZ2V0IG1vcmUgc3BhY2UgZm9yIGlucHV0dGluZw0KdGhlc2UgdmFsdWVzLCB1c2UgdGhlIGJ1dHRvbnMgYXQgdGhlIGJvdHRvbSBvZiB0aGUgcGFnZSBmb3IgYWRkaW5nIG9wdGlvbnMuPC9wPg0KPHA+RmllbGRzIGNhbiBiZSBhc3NpZ25lZCB2YWxpZGF0aW9uIHJ1bGVzLCB3aGljaCB2YXJ5IGFjY29yZGluZyB0byB0aGUgdHlwZSBvZiB0aGUgZmllbGQuIFRoZXNlIHJ1bGVzIGhlbHANCmVuc3VyZSB0aGF0IHRoZSB1c2VyIGVudGVycyB2YWxpZCBkYXRhLiBUaGV5IG1heSBhbHNvIGJlDQpzZXBhcmF0ZWx5IG1hcmtlZCAmcXVvdDtSZXF1aXJlZCZxdW90Oywgd2hpY2ggd2lsbCBmb3JjZSB0aGUgdXNlciB0byBlbnRlciBhIHJlc3BvbnNlLjwvcD4NCjxwPkZpZWxkcyBhbHNvIG1heSBiZSBhc3NpZ25lZCBhIENTUyBjbGFzcy4gVGhpcyBzaW1wbHkgd3JhcHMgdGhlIGlucHV0IGluIGEgZGl2IHdpdGggdGhhdCBjbGFzcywgc28gYXMgdG8gYWxsb3cNCmN1c3RvbWl6ZWQgbGF5b3V0cy4gVG8gdXNlIHRoaXMgZWZmZWN0aXZlbHksIHlvdSBtYXkgbmVlZCB0byAmcXVvdDt2aWV3IHNvdXJjZSZxdW90OyBvbiB0aGUgZ2VuZXJhdGVkIGZvcm0sIGFuZCB0aGVuDQp3cml0ZSB5b3VyIENTUy48L3A+DQo8dWw+DQo8bGk+U3RhbmRhcmQgSW5wdXRzDQo8dWw+PGxpPlRleHQgSW5wdXQuIFRoaXMgaXMgYSBzdGFuZGFyZCB0ZXh0IGZpZWxkLiBZb3UgY2FuIGxpbWl0IHRoZSBsZW5ndGgsIGFuZCBhcHBseSB2YXJpb3VzIHZhbGlkYXRpb24NCmZ1bmN0aW9ucyB0byB0aGUgZmllbGQuPC9saT4NCjxsaT5UZXh0IEFyZWEuIFRoaXMgaXMgYSBiaWcsIGZyZWUtZm9ybSB0ZXh0IGlucHV0IGZpZWxkLjwvbGk+DQo8bGk+Q2hlY2tib3guIFRoaXMgaXMgYSBzdGFuZGFyZCBjaGVjayBib3guPC9saT4NCjxsaT5DaGVja2JveCBHcm91cC4gVGhpcyBpcyBhIGNvbGxlY3Rpb24gb2YgY2hlY2tib3hlcy4gVGhlIG9ubHkgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoaXMgaW5wdXQgYW5kIGENCmNvbGxlY3Rpb24gb2YgQ2hlY2tib3ggaW5wdXRzIGlzIHRoYXQgdGhleSBhcmUgcHJlc2VudGVkIGFzIGEgZ3JvdXAsIHdpdGggb25lIG5hbWUsIGFuZCBjYW4gaGF2ZSBhIHZhbGlkYXRpb24gZnVuY3Rpb24gcmVxdWlyaW5nIHRoYXQgeW91IGNoZWNrIG9uZSBvciBtb3JlIG9mIHRoZSBib3hlcyBpbiB0aGUgZ3JvdXAuPC9saT4NCjxsaT5SYWRpbyBHcm91cC4gVGhpcyBpcyBhIGNvbGxlY3Rpb24gb2YgcmFkaW8gYnV0dG9ucy4gT25seSBvbmUgb2YgdGhlIGdyb3VwIG1heSBiZSBzZWxlY3RlZCBieSB0aGUgdXNlci48L2xpPg0KPGxpPlB1bGxkb3duLiBUaGlzIGlzIGEgc3RhbmRhcmQgcHVsbGRvd24gbWVudS4gSXQmIzAzOTtzIHJlYWxseSBjb25jZXB0dWFsbHkgdGhlIHNhbWUgdGhpbmcgYXMgYSByYWRpbyBidXR0b24NCmdyb3VwLCBidXQgaXMgYmV0dGVyIHdoZW4gdGhlcmUgYXJlIGEgbGFyZ2UgbnVtYmVyIG9mIG9wdGlvbnMuPC9saT4NCjxsaT5NdWx0aXNlbGVjdC4gVGhpcyBpcyBhIG11bHRpLXNlbGVjdCBmaWVsZC4gSXQmIzAzOTtzIHJlYWxseSBjb25jZXB0dWFsbHkgdGhlIHNhbWUgdGhpbmcgYXMgYSBjaGVja2JveCBidXR0b24NCmdyb3VwLCBidXQgaXMgYmV0dGVyIHdoZW4gdGhlcmUgYXJlIGEgbGFyZ2UgbnVtYmVyIG9mIG9wdGlvbnMsIGFzIHlvdSBjYW4gbGltaXQgdGhlIG51bWJlciBkaXNwbGF5ZWQgb24gdGhlIHNjcmVlbiBhdCBhbnkgb25lIHRpbWUuPC9saT4NCjxsaT5TdGF0ZS4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIFN0YXRlcyBvZiB0aGUgVS5TLjwvbGk+DQo8bGk+Q291bnRyaWVzLiBUaGlzIGlzIGEgcHVsbGRvd24gbGlzdGluZyB0aGUgQ291bnRyaWVzIG9mIHRoZSB3b3JsZCAoYXMgb2YgSnVseSAyMDA1KS48L2xpPg0KPGxpPkRhdGUgUGlja2VyLiBUaGlzIGlzIGEgdHJpcGxlIHB1bGxkb3duIGFsbG93aW5nIHRoZSB1c2VyIHRvIHNlbGVjdCBhIGRhdGUuPC9saT4NCjxsaT5UaW1lIFBpY2tlci4gVGhpcyBpcyBhIHNldCBvZiBwdWxsZG93bnMgYWxsb3dpbmcgdGhlIHVzZXIgdG8gc2VsZWN0IGEgdGltZSAodXNpbmcgMTIgb3IgMjQgaG91ciBjbG9jaykuPC9saT4NCjxsaT5GaWxlIFVwbG9hZC4gVGhpcyBpcyBhIGZpbGUgdXBsb2FkIGZpZWxkLjwvbGk+DQo8bGk+TGluayAoVXNlciBFbnRlcmVkKS4gVGhpcyBjcmVhdGVzIGEgZG91YmxlIGlucHV0IGZpZWxkIGZvciBnZXR0aW5nIGEgbGluayBVUkwgYW5kIGxpbmsgdGl0bGUuPC9saT4NCjxsaT5UZXh0IEZpZWxkIChNdWx0aXBsZSkuIFRoaXMgZmllbGQgY3JlYXRlcyBvbmUgb3IgbW9yZSB0ZXh0IGlucHV0cyB3aXRoIGFkZCBhbmQgZGVsZXRlIGJ1dHRvbnMsIGVmZmVjdGl2ZWx5IGdpdmluZyB0aGUgZW5kIHVzZXIgYSB3YXkgb2YgY3JlYXRpbmcgdmFyaWFibGUtbGVuZ3RoIGxpc3RzLjwvbGk+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+PGxpPiBGaXJzdCBzdGVwIGlzIHRvIGNoZWNrIHlvdSYjMDM5O3JlIHJ1bm5pbmcgQ01TIDEuMSBvciBsYXRlci48L2xpPg0KPGxpPiBTZWNvbmQgc3RlcCBpcyB0byByZWFkIGFuZCB1bmRlcnN0YW5kIHRoZSBjYXZlYXQgYWJvdXQgV1lTSVdZRyBlZGl0b3JzIHVwIGluIHRoZQ0Kc2VjdGlvbiA8ZW0+QWRkaW5nIGEgRm9ybSB0byBhIFBhZ2U8L2VtPi48L2xpPg0KPGxpPiBJZiB5b3UmIzAzOTtyZSBtaXNzaW5nIGZpZWxkcyBpbiBhbiBlbWFpbCB0aGF0IGdldHMgZ2VuZXJhdGVkLCBjaGVjayB0aGUgZGlzcG9zaXRpb24gZmllbGQmIzAzOTtzIHRlbXBsYXRlLCBhbmQgbWFrZSBzdXJlIHlvdSYjMDM5O3JlIHNwZWNpZnlpbmcgdGhlIG1pc3NpbmcgZmllbGRzLiBTZWVtcyBvYnZpb3VzLCBidXQgaXQmIzAzOTtzIGFuIGVhc3kgbWlzdGFrZSB0byBtYWtlLjwvbGk+DQo8bGk+VW5jaGVjayB0aGUgJnF1b3Q7SGlkZSBFcnJvcnMmcXVvdDsgY2hlY2tib3ggaW4gdGhlIGdsb2JhbCBvcHRpb25zLCBhbmQgc2VlIHdoYXQgbWVzc2FnZSBnZXRzIGRpc3BsYXllZCB3aGVuIHlvdSBzdWJtaXQgeW91ciBmb3JtLjwvbGk+DQo8bGk+IEp1c3QgbWVzcyBhcm91bmQgYW5kIHRyeSBjbGlja2luZyBvbiBsaW5rcyBhbmQgaWNvbnMgYW5kIHN0dWZmLiBTZWUgd2hhdCBoYXBwZW5zLjwvbGk+DQo8bGk+IExhc3QgcmVzcG9ydCBpcyB0byBlbWFpbCBtZSBvciBjYXRjaCBtZSBvbiBJUkMgYW5kIHdlIGNhbiBnbyBmcm9tIHRoZXJlLjwvbGk+DQo8L29sPiANCjxwPlRoaXMgaXMgbm8gbG9uZ2VyIGEgcGFydGljdWxhcmx5IGVhcmx5IHZlcnNpb24sIGJ1dCBpdCBpcyBwcm9iYWJseSBzdGlsbCBidWdneS4gV2hpbGUgSSYjMDM5O3ZlIGRvbmUgYWxsIEkgY2FuDQp0byBtYWtlIHN1cmUgbm8gZWdyZWdpb3VzIGJ1Z3MgaGF2ZSBjcmVwdCBpbiwgSSBoYXZlIHRvIGFkbWl0IHRoYXQgZHVyaW5nIGVhcmx5IHRlc3RpbmcsIHRoaXMgcHJvZ3JhbQ0KcmV2ZWFsZWQgc2V2ZW4gY29ja3JvYWNoZXMsIHR3byBlYXJ3aWdzLCBhIHNtYWxsIGZhbWlseSBvZiBhcGhpZHMsIGFuZCBhIHdhbGtpbmctc3RpY2sgaW5zZWN0LiBJdCBhbHNvDQphdGUgdGhlIG5laWdoYm9yJiMwMzk7cyBuYXN0eSBsaXR0bGUgeWFwIGRvZywgZm9yIHdoaWNoIEkgd2FzIGluYXBwcm9wcmlhdGVseSBncmF0ZWZ1bC48L3A+DQo8cD5UaGUgZmluYWwgcmVsZWFzZSB3aWxsIGluY2x1ZGUgYnVnIGZpeGVzLCBkb2N1bWVudGF0aW9uLCBhbmQgdW5jb25kaXRpb25hbCBsb3ZlLjwvcD4NCjxoMz5TdXBwb3J0PC9oMz4NCjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4NCjx1bD4NCjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlLCBGQVFzLCBvciB0byBmaWxlIGEgQnVnIFJlcG9ydCwgcGxlYXNlIHZpc2l0IHRoZSBDTVMgTWFkZSBTaW1wbGUgIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmciPkRldmVsb3BlciBGb3JnZTwvYT4uPC9saT4NCjxsaT5UbyBvYnRhaW4gY29tbWVyY2lhbCBzdXBwb3J0LCBwbGVhc2Ugc2VuZCBhbiBlbWFpbCB0byB0aGUgYXV0aG9yIGF0IDxhIGhyZWY9Im1haWx0bzpzamdAY21zbW9kdWxlcy5jb20iPjxzamdAY21zbW9kdWxlcy5jb20+PC9hPi48L2xpPg0KPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnIj5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi48L2xpPg0KPGxpPlRoZSBhdXRob3IgY2FuIG9mdGVuIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXMiPkNNUyBJUkMgQ2hhbm5lbDwvYT4uPC9saT4NCjxsaT5MYXN0bHksIHlvdSBtYXkgaGF2ZSBzb21lIHN1Y2Nlc3MgZW1haWxpbmcgdGhlIGF1dGhvciBkaXJlY3RseSBhbmQgZ3JvdmVsbGluZyBmb3IgZnJlZSBzdXBwb3J0LjwvbGk+DQo8L3VsPg0KPHA+QXMgcGVyIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgYXMtaXMuIFBsZWFzZSByZWFkIHRoZSB0ZXh0DQpvZiB0aGUgbGljZW5zZSBmb3IgdGhlIGZ1bGwgZGlzY2xhaW1lci48L3A+DQo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4NCjxwPkNvcHlyaWdodCAmY29weTsgMjAwNywgU2FtdWVsIEdvbGRzdGVpbiA8YSBocmVmPSJtYWlsdG86c2pnQGNtc21vZHVsZXMuY29tIj48c2pnQGNtc21vZHVsZXMuY29tPjwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4NCjxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+JzsKJGxhbmdbJ2NoYW5nZWxvZyddID0gJzx1bD4NCjxsaT5WZXJzaW9uIDAuNC40LiAyNiBTZXB0IDA3LiBCdWdmaXhlcyBmb3IgcmFkaW8gYnV0dG9uIGdyb3VwcywgZml4IGZvciB2YWxpZGF0aW9uIG9mIERpc3Bvc2l0aW9uRGVsaXZlclRvRW1haWxBZGRyZXNzRmllbGQuPC9saT4NCjxsaT5WZXJzaW9uIDAuNC4zLiAxOCBTZXB0IDA3LiBCdWdmaXhlcyBmb3IgcHVsbGRvd25zIHVzaW5nIG51bWJlcnMsIG9wdGlvbiB0byBpbmxpbmUgZm9ybSwgZml4ZXMgZm9yIHRhYmxlLWxheW91dHMgcHJvdmlkZWQgYnkgQXAgTXV0aHUsIGZpeCBmb3IgcmVxdWlyYWJpbGl0eSBvZiBEaXNwb3NpdGlvbnMuPC9saT4NCjxsaT5WZXJzaW9uIDAuNC4yLiAxNCBTZXB0IDA3LiBCdWdmaXhlcyBmb3IgWE1MIGV4cG9ydCwgUmFkaW9CdXR0b24gR3JvdXAgc3VibWlzc2lvbiwgYW5kIEhUTUwgbGFiZWxzLjwvbGk+DQo8bGk+VmVyc2lvbiAwLjQuMS4gQnVnZml4ZXMgZm9yIEZpbGUgRGlzcG9zaXRpb24gVHlwZXMuPC9saT4NCjxsaT5WZXJzaW9uIDAuNA0KCTx1bD4NCgkJPGxpPlVwcGVkIG1pbmltdW0gQ01TIHZlcnNpb24gdG8gMS4xPC9saT4NCgkJPGxpPk51bWVyb3VzIEJ1ZyBmaXhlczsgdG9vIG1hbnkgdG8gZW51bWVyYXRlIGhlcmU8L2xpPg0KCQk8bGk+TWFzc2l2ZSByZWppZ2dlcmluZyBvZiBjb2RlIHRvIHdvcmsgd2l0aCBDTVMgTVMgMS4xIHBhcmFtZXRlciBzYW5pdGl6aW5nIHJlZ2ltZTwvbGk+DQoJCTxsaT5BZGRlZCBmaWVsZCB0eXBlczogJnF1b3Q7VGV4dEZpZWxkIChNdWx0aXBsZSkmcXVvdDsgYW5kICZxdW90O0NvbXB1dGVkIEZpZWxkJnF1b3Q7PC9saT4NCgkJPGxpPkFkZGVkIGRpc3Bvc2l0aW9uczogJnF1b3Q7U2F2ZSBSZXN1bHRzIHRvIEZpbGUgQmFzZWQgb24gUHVsbGRvd24mcXVvdDsgYW5kICZxdW90O1NhdmUgUmVzdWx0cyB0byBGaWxlKHMpIEJhc2VkIG9uIE11bHRpcGxlIFNlbGVjdGlvbnMmcXVvdDsoQ2FsZ3V5KTwvbGk+DQoJCTxsaT5BZGRlZCBuZWF0LW8gQUpBWC15IHRlbXBsYXRlLWNvcHlpbmcgZm9yIEZvcm0gVGVtcGxhdGVzLCBnYXZlIHZlcnNpb25zIG9mIG9sZCB0YWJsZS1iYXNlZCB0ZW1wbGF0ZXMgdG8gc29vdGhlIHRoZSByYWdpbmcgbWFzc2VzLjwvbGk+DQoJCTxsaT5BZGRlZCBhYmlsaXR5IHRvIHBhc3MgZGVmYXVsdCB2YWx1ZXMgdG8gZm9ybSBlbGVtZW50cyBmcm9tIG1vZHVsZSB0YWcgdXNpbmcgdmFsdWVfRklFTEROQU1FPSZxdW90O3ZhbHVlJnF1b3Q7IHN5bnRheCAoQ2FsZ3V5KTwvbGk+DQoJCTxsaT5BZGRlZCBvcHRpb24gdG8gZGlzcGxheSBmaWVsZCBpZHMgaW4gYWRtaW4gKENhbGd1eSk8L2xpPg0KCTwvdWw+DQo8L2xpPg0KPGxpPlZlcnNpb24gMC4zDQogICA8dWw+DQogICAgICA8bGk+QWRkZWQgQ2FwdGNoYSBtb2R1bGUgc3VwcG9ydC48L2xpPg0KICAgICAgPGxpPlJld29ya2VkIGxhYmVsaW5nIG9mIGZvcm0gZWxlbWVudHMgdG8gYmUgWEhUTUwgY29tcGxpYW50PC9saT4NCiAgICAgIDxsaT5BZGRlZCBQYXVsIE5vb25lJiMwMzk7cyBuZXcsIGltcHJvdmVkIGNvbnRhY3QgZm9ybSB0ZW1wbGF0ZXM8L2xpPg0KICAgICAgPGxpPkltcGxlbWVudGF0aW9uIG9mIEVtYWlsIFN1YmplY3QgRmllbGQ8L2xpPg0KICAgICAgPGxpPkFkZGVkIGFkbWluLXNwZWNpZmlhYmxlIHZhbHVlcyB0byBoaWRkZW4gZmllbGQgdHlwZSwgd2hpY2ggbWF5IGNvbnRhaW4gcGFyc2FibGUgc21hcnR5IHRhZ3M8L2xpPg0KICAgICAgPGxpPlRleHQgQXJlYSBGaWVsZCBub3cgYWxsb3dzIHNwZWNpZmljYXRpb24gb2Ygcm93cyBhbmQgY29scyBpbiB0aGUgYWRtaW4sIGluc3RlYWQgb2YgQ1NTPC9saT4NCiAgICAgIDxsaT5BZGRlZCBEcmFnJiMwMzk7biYjMDM5O0Ryb3AgcmVvcmRlcmluZyBvZiBmb3JtIGZpZWxkcy48L2xpPg0KICAgICAgPGxpPkFkZGVkIG5vbi1ibGFuayBmaWVsZCBuYW1lIGFuZCB1bmlxdWUgZmllbGQgbmFtZSBnbG9iYWwgY29uZmlndXJhdGlvbiBvcHRpb25zIGFuZCB2YWxpZGF0aW9uPC9saT4NCiAgICAgIDxsaT5JbXBsZW1lbnRlZCB0ZW1wbGF0ZWQgZGlzcGxheSBvZiBmb3JtIHJlc3VsdHMgdXBvbiBzdWJtaXNzaW9uIGluIGFkZGl0aW9uIHRvIHBhZ2UgcmVkaXJlY3Rpbmc8L2xpPg0KICAgICAgPGxpPjwvbGk+DQogICA8L3VsPg0KPC9saT4NCjxsaT5WZXJzaW9uIDAuMi40IC0gMDkgTWF5IDIwMDcNCiAgIDxwPkJpZyByZWxlYXNlOjx1bD4NCiAgIDxsaT5BZGRlZCAmcXVvdDtFbWFpbCBGb3JtIHRvIFVzZXItU3VwcGxpZWQgQWRkcmVzcyZxdW90OyBkaXNwb3NpdGlvbi48L2xpPg0KICAgPGxpPkFkZGVkICZxdW90O1RpbWVQaWNrZXImcXVvdDsgZmllbGQgdHlwZS4gU3BsaXQgJnF1b3Q7TGluayZxdW90OyBmaWVsZCBpbnRvIGEgJnF1b3Q7VXNlci1zdXBwbGllZCBMaW5rJnF1b3Q7IGZpZWxkIGFuZCBhICZxdW90O1N0YXRpYyBMaW5rJnF1b3Q7IGZpZWxkLjwvbGk+DQogICA8bGk+QWRkZWQgSFRNTCBlbWFpbCBvcHRpb24gYW5kIGF1dG8tdGVtcGxhdGVzIGZvciBhbGwgZW1haWwgZGlzcG9zaXRpb25zLjwvbGk+DQogICA8bGk+QWRkZWQgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcy48L2xpPg0KICAgPGxpPkFkZGVkIFhNTC1iYXNlZCBpbXBvcnQgYW5kIGV4cG9ydCBvZiBmb3Jtcy48L2xpPg0KICAgPC91bD4NCiAgIDwvcD4NCjwvbGk+DQo8bGk+VmVyc2lvbiAwLjIuMw0KICAgPHA+QWRkIHRoZSBhYmlsaXR5IHRvIGNhbGwgYSBzZWxlY3RhYmxlIHVzZXIgZGVmaW5lZCB0YWcgdXBvbiBkaXNwb3NpdGlvbiBvZiB0aGUgZm9ybS48L3A+DQo8L2xpPg0KPGxpPlZlcnNpb24gMC4yLjINCiAgIDxwPk1hbnkgdGhhbmtzIHRvIFV0dGVyIERlc2lnbiBmb3Igc3BvbnNvcmluZyBzb21lIGNoYW5nZXMgYW5kIGJ1Z2ZpeGVzLCB3aGljaCBpbmNsdWRlOg0KICAgPHVsPg0KICAgICAgPGxpPkFkZGVkIGZpbGUgdXBsb2FkIGNhcGFiaWxpdGllcyB0byB0aGUgZW1haWwgZGlzcG9zaXRpb248L2xpPg0KICAgICAgPGxpPkFkZCBQYWdlU2V0U3RhcnQgYW5kIFBhZ2VTZXRFbmQgZmllbGQgdHlwZXMNCiAgICAgIDxwPlRoZXNlIGZpZWxkIHR5cGVzIGFsbG93IHlvdSB0byBjcmVhdGUgZmllbGRzZXRzIGluIHlvdXIgZm9ybSwgYW5kIG9yZ2FuaXNlDQogICAgICB5b3VyIGZpZWxkcyBsb2dpY2FsbHkgZm9yIHRoZSB1c2VyLiAgWW91IGNhbiBldmVuIG5lc3QgZmllbGRzZXRzLCBhbmQNCiAgICAgIGFzc29jaWF0ZSBhIHN0eWxlIHdpdGggdGhlbSBhcHByb3ByaWF0ZWx5LiAgVGhlIGRlZmF1bHQgdGVtcGxhdGUgd2FzIGNoYW5nZWQNCiAgICAgIHRvIHByZXZlbnQgaXQgZnJvbSB3cmFwcGluZyBhIGRpdiBhcm91bmQgdGhlc2UgdHlwZXMgb2YgZmllbGRzLg0KICAgICAgPC9wPg0KICAgICAgPC9saT4NCiAgICAgIDxsaT5GaXhlZCBhIHByb2JsZW0gd2l0aCBEQVRFVElNRSBmaWVsZHMgb24gaW5zdGFsbA0KICAgICAgPHA+VGhpcyBzb2x2ZXMgYSBwcm9ibGVtIHdoZW4gb24gaW5zdGFsbCB0aGUgcmVzcG9uc2UgdGFibGUgd291bGQgc29tZXRpbWVzIG5vdCBnZXQgY3JlYXRlZCB3aGVuIHVzaW5nIGFkb2RiIGxpdGU8L2xpPg0KICAgICAgPC9saT4NCiAgIDwvdWw+DQogICA8L3A+DQo8L2xpPg0KPGxpPlZlcnNpb24gMC4yIC0gMTQgTm92ZW1iZXIgMjAwNi4gQ2FsZ3V5ICZhbXA7IHRzdyYjMDM5O3MgYnVnIGZpeGVzIGZvciBmaWVsZCByZS1vcmRlcmluZyBhbmQgY3VzdG9tIHRlbXBsYXRlcy4gQWRkaXRpb25hbCBidWcgZml4ZXMgZm9yIGZpZWxkIGxhYmVscy48L2xpPg0KPGxpPlZlcnNpb24gMC4xIC0gOCBKdWx5IDIwMDYuIEluaXRpYWwgUmVsZWFzZTwvbGk+DQo8L3VsPg0KJzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuMzg3NDg1MDc0OTU0Nzc3NjAwMC4xMjE0ODY2ODU2LjEyMjI4ODM4MzAuMTIyMjg4NTg4My4xNDcnOwokbGFuZ1sndXRteiddID0gJzE1Njg2MTM1My4xMjIyODE5NTY5LjE0NC4xNS51dG1jY249KG9yZ2FuaWMpfHV0bWNzcj1nb29nbGV8dXRtY3RyPWNtc21zIHByZXR0eSB1cmxzfHV0bWNtZD1vcmdhbmljJzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwokbGFuZ1sndXRtYiddID0gJzE1Njg2MTM1My4xLjEwLjEyMjI4ODU4ODMnOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/et_EE.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ1Zvcm1pIEVoaXRhamEnOwokbGFuZ1snZmllbGRfdHlwZV8nXSA9ICdWJmF1bWw7bGphIFQmdXVtbDsmdXVtbDtwIE0mYXVtbDsmYXVtbDtyYW1hdGEnOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0RmllbGQnXSA9ICdUZWtzdGlzaXNlbmQnOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0QXJlYUZpZWxkJ10gPSAnVGVrc3RpdiZhdW1sO2xpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hGaWVsZCddID0gJ0xpbm51a2UnOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEdyb3VwRmllbGQnXSA9ICdMaW5udWtlc3RlIEdydXBwJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUHVsbGRvd25GaWVsZCddID0gJ1ZhbGlrbWVuJnV1bWw7JnV1bWw7JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTXVsdGlzZWxlY3RGaWVsZCddID0gJ011bHRpdmFsaWsnOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0ZVBpY2tlckZpZWxkJ10gPSAnVVNBIE9zYXJpaWtpZGUgVmFsaWsnOwokbGFuZ1snZmllbGRfdHlwZV9Db3VudHJ5UGlja2VyRmllbGQnXSA9ICdSaWlnaSBWYWxpayc7CiRsYW5nWydmaWVsZF90eXBlX0RhdGVQaWNrZXJGaWVsZCddID0gJ0t1dXAmYXVtbDtldmEgVmFsaWsnOwokbGFuZ1snZmllbGRfdHlwZV9SYWRpb0dyb3VwRmllbGQnXSA9ICdSYWFkaW9udXBwdWRlIEdydXBwJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EaXJlY3RvciddID0gJypTYWFkYSB0dWxlbXVzZWQgRS1tYWlsaWdhIFZhbGlrbWVuJnV1bWw7JnV1bWw7IHAmb3RpbGRlO2hqYWwnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsJ10gPSAnKlNhYWRhIHR1bGVtdXNlZCBFLW1haWxpZ2EgQWFkcmVzc2koZGUpbGUnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsQ29uZmlybWF0aW9uJ10gPSAnKlZhbGlkZWVyaSBFLW1haWxpIHRlZWwnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZpbGUnXSA9ICcqU2FsdmVzdGEgdHVsZW11c2VkIEZhaWxpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EYXRhYmFzZSddID0gJypTYWx2ZXN0YSB0dWxlbXVzZWQgQW5kbWViYWFzaSc7CiRsYW5nWydmaWVsZF90eXBlX1BhZ2VCcmVha0ZpZWxkJ10gPSAnLUomYXVtbDtyZ21pbmUgbGVodCc7CiRsYW5nWydmaWVsZF90eXBlX0ZpbGVVcGxvYWRGaWVsZCddID0gJ0ZhaWxpICZVdW1sO2xlc2xhYWRpbWluZSc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbEFkZHJlc3NGaWVsZCddID0gJ0UtbWFpbGkgJnF1b3Q7QWFkcmVzc2lsdCZxdW90OyBWJmF1bWw7bGknOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxOYW1lRmllbGQnXSA9ICdFLW1haWxpICZxdW90O0tlbGxlbHQmcXVvdDsgViZhdW1sO2xpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3RhdGljVGV4dEZpZWxkJ10gPSAnLVN0YWF0aWxpbmUgdGVrc3QnOwokbGFuZ1sndmFsaWRhdGlvbl9ub25lJ10gPSAnRWkgdmFsaWRlZXJpdGEnOwokbGFuZ1sndmFsaWRhdGlvbl9udW1lcmljJ10gPSAnQXJ2JzsKJGxhbmdbJ3ZhbGlkYXRpb25faW50ZWdlciddID0gJ1QmYXVtbDtpc2Fydic7CiRsYW5nWyd2YWxpZGF0aW9uX2VtYWlsX2FkZHJlc3MnXSA9ICdFLW1haWxpIEFhZHJlc3MnOwokbGFuZ1sndmFsaWRhdGlvbl9tdXN0X2NoZWNrJ10gPSAnTGlubnVrZSBOJm90aWxkZTt1dHVkJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbWF0Y2gnXSA9ICdNYXRjaCBSZWd1bGFyIEV4cHJlc3Npb24nOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9ub21hdGNoJ10gPSAnRG9lc24mIzAzOTt0IG1hdGNoIFJlZ3VsYXIgRXhwcmVzc2lvbic7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV92YWx1ZSddID0gJ1BhbHVuIHQmYXVtbDtpZGEgbGFodGVyICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX251bWJlciddID0gJ1BhbHVuIHNpc2VzdGEgbGFodHJpc3NlICZxdW90OyVzJnF1b3Q7IGFydic7CiRsYW5nWydwbGVhc2VfZW50ZXJfdmFsaWQnXSA9ICdQYWx1biB0JmF1bWw7aWRhIGxhaHRlciAmcXVvdDslcyZxdW90OyBrb3JyZWt0c2VsdCc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5faW50ZWdlciddID0gJ1BhbHVuIHNpc2VzdGEgbGFodHJpc3NlICZxdW90OyVzJnF1b3Q7IHQmYXVtbDtpc2Fydic7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5fZW1haWwnXSA9ICdQYWx1biBzaXNlc3RhIGxhaHRyaXNzZSAmcXVvdDslcyZxdW90OyBrb3JyZWt0bmUgZS1tYWlsaSBhYWRyZXNzJzsKJGxhbmdbJ25vdF92YWxpZF9lbWFpbCddID0gJyZxdW90OyVzJnF1b3Q7IGVpIG9sZSBrb3JyZWt0bmUgZS1tYWlsaSBhYWRyZXNzISc7CiRsYW5nWydwbGVhc2VfZW50ZXJfbm9fbG9uZ2VyJ10gPSAnUGFsdW4gc2lzZXN0YSB2JmF1bWw7JmF1bWw7cnR1cywgbWlzIGVpIG9sZSBwaWtlbSBrdWkgJXMgdCZhdW1sO2hlbSZhdW1sO3JraSc7CiRsYW5nWyd0aXRsZV9saXN0X2RlbGltaXRlciddID0gJ1QmYXVtbDtoZW0mYXVtbDtyaywgbWlkYSBrYXN1dGFqYSBlcmFsZGFqYW5hIHR1bGVtdXN0ZXMsIG1pbGxlcyBvbiByb2hrZW0ga3VpICZ1dW1sO2tzIHYmYXVtbDsmYXVtbDtydHVzJzsKJGxhbmdbJ3lvdV9uZWVkX3Blcm1pc3Npb24nXSA9ICdTZWxsZSBmdW5rdHNpb29uaSBqYW9rcyBvbiBzdWwgdmFqYSAmcXVvdDslcyZxdW90OyAmb3RpbGRlO2lndXNpJzsKJGxhbmdbJ2xhY2twZXJtaXNzaW9uJ10gPSAnVmFiYW5kdXN0ISBTZWxsZWxlIHNla3RzaW9vbmlsZSBsaWdpIHAmYXVtbDsmYXVtbDtzZW1pc2VrcyBlaSBvbGUgc3VsIHBpaXNhdmFsdCAmb3RpbGRlO2lndXNpLic7CiRsYW5nWydmaWVsZF9vcmRlcl91cGRhdGVkJ10gPSAnViZhdW1sO2xqYWRlIGomYXVtbDtyamVrb3JkIHV1ZW5kYXR1ZC4nOwokbGFuZ1snZm9ybV9kZWxldGVkJ10gPSAnVm9ybSBrdXN0dXRhdHVkLic7CiRsYW5nWydmaWVsZF9kZWxldGVkJ10gPSAnViZhdW1sO2xpIGt1c3R1dGF0dWQuJzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb25fdXBkYXRlZCddID0gJ0tvbmZpZ3VyYXRzaW9vbiBVdWVuZGF0dWQuJzsKJGxhbmdbJ3lvdV9tdXN0X2NoZWNrJ10gPSAnSiZhdW1sO3RrYW1pc2VrcyBwZWFkIHRlZ2VtYSBsaW5udWtlc2UgJnF1b3Q7JXMmcXVvdDsga2FzdGkuJzsKJGxhbmdbJ211c3Rfc3BlY2lmeV9vbmVfZGVzdGluYXRpb24nXSA9ICdTYSBwZWFkIHNpc2VzdGFtYSB2JmF1bWw7aGVtYWx0ICZ1dW1sO2hlIHNpaHRhYWRyZXNzaSEnOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9mb3JtJ10gPSAnT2xlZCBraW5kZWwsIGV0IHNvb3ZpZCBrdXN0dXRhZGEgJXMgdm9ybWk/JzsKJGxhbmdbJ2FyZV95b3Vfc3VyZV9kZWxldGVfZmllbGQnXSA9ICdPbGVkIGtpbmRlbCwgZXQgc29vdmlkIGt1c3R1dGFkYSAlcyB2JmF1bWw7bGphPyc7CiRsYW5nWydub3RpY2Vfc2VsZWN0X3R5cGUnXSA9ICdMYWllbmRhdHVkIHNlYWRlZCBlaSBvbGUgc2FhZGF2YWwgbmlpa2F1YSwga3VuaSBwb2xlIG0mYXVtbDsmYXVtbDtyYXR1ZCB2JmF1bWw7bGphIHQmdXVtbDsmdXVtbDtwaS4nOwokbGFuZ1snZmllbGRfbmFtZV9pbl91c2UnXSA9ICdWJmF1bWw7bGphIG5pbWkgJnF1b3Q7JXMmcXVvdDsgb24ganViYSBrYXN1dHVzZWwuIFBhbHVuIGthc3V0YSB1bmlrYWFsc2VpZCB2JmF1bWw7bGphIG5pbWVzaWQuJzsKJGxhbmdbJ2FiYnJldmlhdGlvbl9sZW5ndGgnXSA9ICdQaWtrdXM6ICVzJzsKJGxhbmdbJ2JveGVzJ10gPSAnJXMga2FzdGknOwokbGFuZ1snb3B0aW9ucyddID0gJyVzIHZhbGlrdXQnOwokbGFuZ1sndGV4dF9sZW5ndGgnXSA9ICclcyB0JmF1bWw7aGVtJmF1bWw7cmtpLic7CiRsYW5nWydvcmRlciddID0gJ0omYXVtbDtyamVrb3JkJzsKJGxhbmdbJ3Vuc3BlY2lmaWVkJ10gPSAnW20mYXVtbDsmYXVtbDtyYW1hdGFdJzsKJGxhbmdbJ2FkZGVkJ10gPSAnbGlzYXR1ZCc7CiRsYW5nWyd1cGRhdGVkJ10gPSAndXVlbmRhdHVkJzsKJGxhbmdbJ3NlbGVjdF9vbmUnXSA9ICdWYWxpICZVdW1sO2tzJzsKJGxhbmdbJ3NlbGVjdF90eXBlJ10gPSAnVmFsaSBUJnV1bWw7JnV1bWw7cCc7CiRsYW5nWyd0byddID0gJ0tlbGxlbGUnOwokbGFuZ1sncmVjaXBpZW50cyddID0gJ3NhYWphZCc7CiRsYW5nWydkZXN0aW5hdGlvbl9jb3VudCddID0gJyVzIHNpaHRhYWRyZXNzaSc7CiRsYW5nWydzYXZlJ10gPSAnU2FsdmVzdGEnOwokbGFuZ1snYWRkJ10gPSAnTGlzYSc7CiRsYW5nWyd1cGRhdGUnXSA9ICdVdWVuZGEnOwokbGFuZ1snc2F2ZV9hbmRfY29udGludWUnXSA9ICdTYWx2ZXN0YSBqYSBKJmF1bWw7dGthIFRvaW1ldGFtaXN0JzsKJGxhbmdbJ2luZm9ybWF0aW9uJ10gPSAnSW5mb3JtYXRzaW9vbic7CiRsYW5nWydhdXRvbWF0aWMnXSA9ICdBdXRvbWFhdG5lJzsKJGxhbmdbJ2Zvcm1zJ10gPSAnVm9ybWlkJzsKJGxhbmdbJ2Zvcm0nXSA9ICclcyBWb3JtJzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb24nXSA9ICdLb25maWd1cmF0c2lvb24nOwokbGFuZ1sndGFiX21haW4nXSA9ICdQZWFtaW5lJzsKJGxhbmdbJ3RhYl9hZGRpdGlvbmFsJ10gPSAnVm9ybWkgU2VhZGVkJzsKJGxhbmdbJ3RhYl9hZHZhbmNlZCddID0gJ0xhaWVuZGF0dWQgU2VhZGVkJzsKJGxhbmdbJ3RhYl90YWJsZWxheW91dCddID0gJ1RhYmVsaXAmb3RpbGRlO2hpc2UgSyZ1dW1sO2xqZW5kdXNlIFZhbGlrdWQnOwokbGFuZ1sndGFiX3RlbXBsYXRlbGF5b3V0J10gPSAnTWFsbGlwJm90aWxkZTtoaXNlIEsmdXVtbDtsamVuZHVzZSBWYWxpa3VkJzsKJGxhbmdbJ2ZpZWxkX3JlcXVpcmVtZW50X3VwZGF0ZWQnXSA9ICdWJmF1bWw7bGphICYjMDM5O2tvaHVzdHVzbGlrJiMwMzk7IHN0YWF0dXMgdXVlbmRhdHVkLic7CiRsYW5nWydtYXhpbXVtX3NpemUnXSA9ICdNYXguIFN1dXJ1cyc7CiRsYW5nWydwZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ0xhaWVuZHVzZWQnOwokbGFuZ1sncGVybWl0dGVkX2ZpbGV0eXBlcyddID0gJ0x1YmF0dWQgZmFpbGl0JnV1bWw7JnV1bWw7YmlkJzsKJGxhbmdbJ2ZpbGVfdG9vX2xhcmdlJ10gPSAnJlV1bWw7bGVzIGxhZXR1ZCBmYWlsIG9uIGxpaWdhIHN1dXIhIE1ha3NpbWFhbG5lIHN1dXJ1cyBvbjonOwokbGFuZ1snaWxsZWdhbF9maWxlX3R5cGUnXSA9ICdTZWRhIHQmdXVtbDsmdXVtbDtwaSBmYWlsaSBlaSBvbGUgbHViYXR1ZCAmdXVtbDtsZXMgbGFhZGlkYS4gUGFsdW4ga29udHJvbGxpLCBldCBmYWlsaSBsYWllbmQgb24ga29ycmVrdG5lLic7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vb2R1bCBlZW1hbGRhdHVkLic7CiRsYW5nWydpbnN0YWxsZWQnXSA9ICdNb29kdWxpIHZlcnNpb29uICVzIGluc3RhbGxlZXJpdHVkLic7CiRsYW5nWyd1cGdyYWRlZCddID0gJ01vb2R1bCB1dWVuZGF0dWQgdmVyc2lvb25pbGUgJXMuJzsKJGxhbmdbJ2J1dHRvbl9wcmV2aW91cyddID0gJ1RhZ2FzaS4uLic7CiRsYW5nWydidXR0b25fc3VibWl0J10gPSAnU2FhZGEgVm9ybSc7CiRsYW5nWydidXR0b25fY29udGludWUnXSA9ICdKJmF1bWw7dGthLi4uJzsKJGxhbmdbJ3ZhbHVlX2NoZWNrZWQnXSA9ICdNJmF1bWw7cmdpdHVkJzsKJGxhbmdbJ3ZhbHVlX3VuY2hlY2tlZCddID0gJ00mYXVtbDtya2ltYXRhJzsKJGxhbmdbJ2FkZF9vcHRpb25zJ10gPSAnTGlzYSBWZWVsIFZhbGlrdWlkJzsKJGxhbmdbJ2RlbGV0ZV9vcHRpb25zJ10gPSAnS3VzdHV0YSBNJmF1bWw7cmdpdHVkIFZhbGlrdWQnOwokbGFuZ1snYWRkX2NoZWNrYm94ZXMnXSA9ICdMaXNhIFZlZWwgTGlubnVrZXNpJzsKJGxhbmdbJ2RlbGV0ZV9jaGVja2JveGVzJ10gPSAnS3VzdHV0YSBNJmF1bWw7cmdpdHVkIExpbm51a2VzZWQnOwokbGFuZ1snYWRkX2FkZHJlc3MnXSA9ICdMaXNhIFZlZWwgJlV1bWw7a3MgQWFkcmVzcyc7CiRsYW5nWydkZWxldGVfYWRkcmVzcyddID0gJ0t1c3R1dGEgTSZhdW1sO3JnaXR1ZCBBYWRyZXNzaWQnOwokbGFuZ1snYWRkX2Rlc3RpbmF0aW9uJ10gPSAnTGlzYSBTaWh0YWFkcmVzcyc7CiRsYW5nWydkZWxldGVfZGVzdGluYXRpb24nXSA9ICdLdXN0dXRhIE0mYXVtbDtyZ2l0dWQgU2lodGFhZHJlc3NpZCc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX2xlbmd0aCddID0gJ01ha3NpbWFhbG5lIFBpa2t1cyc7CiRsYW5nWyd0aXRsZV9jaGVja2JveF9sYWJlbCddID0gJ1ZhbGlrdSBwZWFsa2lyaSc7CiRsYW5nWyd0aXRsZV9jaGVja2VkX3ZhbHVlJ10gPSAnViZhdW1sOyZhdW1sO3J0dXMgbSZhdW1sO3JnaXR1bmEnOwokbGFuZ1sndGl0bGVfdW5jaGVja2VkX3ZhbHVlJ10gPSAnViZhdW1sOyZhdW1sO3J0dXMgbSZhdW1sO3JraW1hdGEnOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfZGV0YWlscyddID0gJ0xpbm51a2VzdGUgR3J1cGkgRGV0YWlsaWQnOwokbGFuZ1sndGl0bGVfZGVsZXRlJ10gPSAnS3VzdHV0YT8nOwokbGFuZ1sndGl0bGVfc2VsZWN0X29uZV9tZXNzYWdlJ10gPSAnJnF1b3Q7VmFsaSAmVXVtbDtrcyZxdW90OyBUZWtzdCc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fc3ViamVjdCddID0gJ1ZhbGlrdSBOaW1pJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X2NvdW50cnknXSA9ICdBbGduZSBWYWxpayc7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9zdGF0ZSddID0gJ0FsZ25lIFZhbGlrJzsKJGxhbmdbJ3RpdGxlX29wdGlvbl9uYW1lJ10gPSAnVmFsaWt1IE5pbWknOwokbGFuZ1sndGl0bGVfb3B0aW9uX3ZhbHVlJ10gPSAnViZhdW1sOyZhdW1sO3J0dXMnOwokbGFuZ1sndGl0bGVfcHVsbGRvd25fZGV0YWlscyddID0gJ1ZhbGlrbWVuJnV1bWw7JnV1bWw7IFZhbGlrdWQnOwokbGFuZ1sndGl0bGVfbXVsdGlzZWxlY3RfZGV0YWlscyddID0gJ011bHRpdmFsaWt1IFZhbGlrdWQnOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fYWRkcmVzcyddID0gJ1NpaHRhYWRyZXNzJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fbmFtZSddID0gJ0UtbWFpbGkgJnF1b3Q7S2VsbGVsdCZxdW90OyB2JmF1bWw7bGknOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9lbWFpbF9yZWdleCddID0gJ0thc3V0YSBsJm90aWxkZTt0dmEgZS1tYWlsaSB2YWxpZGVlcmltaXN0JzsKJGxhbmdbJ3RpdGxlX3JlbGF4ZWRfcmVnZXhfbG9uZyddID0gJ0thc3V0YSBsJm90aWxkZTt0dmEgZS1tYWlsaSB2YWxpZGVlcmltaXN0IChudC4sIGx1YmEgJnF1b3Q7eEB5JnF1b3Q7IHNlbGxlIGFzZW1lbCwgZXQgbiZvdGlsZGU7dWRhICZxdW90O3hAeS50bGQmcXVvdDspJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fYWRkcmVzcyddID0gJ0UtbWFpbGkgJnF1b3Q7QWFkcmVzc2lsdCZxdW90OyB2JmF1bWw7bGknOwokbGFuZ1sndGl0bGVfZW1haWxfZW5jb2RpbmcnXSA9ICdFLW1haWxpIGtvZGVlcmluZyc7CiRsYW5nWyd0aXRsZV9kaXJlY3Rvcl9kZXRhaWxzJ10gPSAnVmFsaWttZW4mdXVtbDsmdXVtbDsgcCZvdGlsZGU7aGlzZSBFLW1haWxlcmkgRGV0YWlsaWQnOwokbGFuZ1sndGl0bGVfZmlsZV9uYW1lJ10gPSAnRmFpbGluaW1pJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX3N1YmplY3QnXSA9ICdFLW1haWxpIFRlZW1hJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmFtZSddID0gJ1Zvcm1pIE5pbWknOwokbGFuZ1sndGl0bGVfZm9ybV9zdGF0dXMnXSA9ICdWb3JtaSBTdGFhdHVzJzsKJGxhbmdbJ3RpdGxlX3JlYWR5X2Zvcl9kZXBsb3ltZW50J10gPSAnVmFsbWlzIGF2YWxkYW1pc2Vrcyc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkxJ10gPSAnRWkgb2xlIHZhbG1pcyc7CiRsYW5nWyd0aXRsZV9yZWRpcmVjdF9wYWdlJ10gPSAnTGVodCwga3VodSBzdXVuYXRhIHBlYWxlIHZvcm1pIHNhYXRtaXN0JzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTInXSA9ICdQYWx1biBsaXNhIHZvcm1pbGUgdiZhdW1sO2xpLCBldCBrYXN1dGFqYSBzaXNlc3R1c2kgayZhdW1sO3NpdGxldGFrcy4nOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5X2xpbmsnXSA9ICdrYXN1dGEgc2VkYSBvdHNldGVlZCc7CiRsYW5nWyd0aXRsZV9mb3JtX2FsaWFzJ10gPSAnVm9ybWkgQWxpYXMnOwokbGFuZ1sndGl0bGVfZm9ybV9maWVsZHMnXSA9ICdWb3JtaSBWJmF1bWw7bGphZCc7CiRsYW5nWyd0aXRsZV9maWVsZF9uYW1lJ10gPSAnViZhdW1sO2xqYSBOaW1pJzsKJGxhbmdbJ3RpdGxlX3JhZGlvZ3JvdXBfZGV0YWlscyddID0gJ1JhYWRpb251cHB1ZGUgR3J1cGkgRGV0YWlsaWQnOwokbGFuZ1sndGl0bGVfZmllbGRfdHlwZSddID0gJ1YmYXVtbDtsamEgVCZ1dW1sOyZ1dW1sO3AnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MyddID0gJ2xvb21ha3Mgdm9ybWkgayZhdW1sO3NpdGxlbWlzZSB2JmF1bWw7bGkuJzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZm9ybSddID0gJ0xpc2EgVXVzIFZvcm0nOwokbGFuZ1sndGl0bGVfc2hvd192ZXJzaW9uJ10gPSAnTiZhdW1sO2l0YSBWb3JtaSBFaGl0YWphIFZlcnNpb29uaT8nOwokbGFuZ1sndGl0bGVfc2hvd192ZXJzaW9uX2xvbmcnXSA9ICdTZWUgc2lzYWxkYWIgc2ludSBWb3JtaSBFaGl0YWphIGluc3RhbGxlZXJpdHVkIHZlcnNpb29uaSBrb21tZW50YWFyaWRlcywgZXQgYWlkYXRhIHZpZ2FkZSBvdHNpbWlzZWwuJzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZmllbGQnXSA9ICdMaXNhIFV1cyBWJmF1bWw7bGknOwokbGFuZ1sndGl0bGVfZm9ybV9zdWJtaXRfYnV0dG9uJ10gPSAnVm9ybWkgU2FhdG1pc251cHUgVGVrc3QnOwokbGFuZ1sndGl0bGVfZm9ybV9uZXh0X2J1dHRvbiddID0gJ1Zvcm1pICZxdW90O0omYXVtbDtyZ21pbmUmcXVvdDsgLSBudXB1IHRla3N0IChrYXN1dGF0YWtzZSBtaXRtZWxlaGVrJnV1bWw7bGplbGlzZSB2b3JtaSBwdWh1bCknOwokbGFuZ1sndGl0bGVfZm9ybV9wcmV2X2J1dHRvbiddID0gJ1Zvcm1pICZxdW90O0VlbG1pbmUmcXVvdDsgLSBudXB1IHRla3N0IChrYXN1dGF0YWtzZSBtaXRtZWxlaGVrJnV1bWw7bGplbGlzZSB2b3JtaSBwdWh1bCknOwokbGFuZ1sndGl0bGVfZmllbGRfdmFsaWRhdGlvbiddID0gJ1YmYXVtbDtsamEgVmFsaWRlZXJtaW5lJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fY3NzX2NsYXNzJ10gPSAnVm9ybWkgQ1NTIGtsYXNzJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2Nzc19jbGFzcyddID0gJ1YmYXVtbDtsamEgQ1NTIGtsYXNzJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcmVxdWlyZWRfc3ltYm9sJ10gPSAnUyZ1dW1sO21ib2wsIG1pbGxlZ2EgbSZhdW1sO3JraWRhIGtvaHVzdHVzbGlrdWQgdiZhdW1sO2xqYWQnOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWQnXSA9ICdLb2h1c3R1c2xpayc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9sb25nJ10gPSAnVCZhdW1sO2l0bWluZSBrb2h1c3R1c2xpayc7CiRsYW5nWyd0aXRsZV9oaWRlX2xhYmVsJ10gPSAnUGVpZGEgUGVhbGtpcmknOwokbGFuZ1sndGl0bGVfaGlkZV9sYWJlbF9sb25nJ10gPSAnUGVpZGEgdiZhdW1sO2xqYSBuaW1pIHZvcm1pbCc7CiRsYW5nWyd0aXRsZV90ZXh0J10gPSAnS3V2YXRhdiBzdGFhdGlsaW5lIHRla3N0JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlZ2V4J10gPSAnVmFsaWRlZXJpbWlzZSBSZWdleCc7CiRsYW5nWyd0aXRsZV9saW5lc190b19zaG93J10gPSAnS3V2YXRhdiByaWRhZGUgYXJ2JzsKJGxhbmdbJ25vX2RlZmF1bHQnXSA9ICdQdXVkdWInOwokbGFuZ1sncmVkaXJlY3RfYWZ0ZXJfYXBwcm92YWwnXSA9ICdMZWhrdCwgbWlsbGVsZSBzdXVuYXRhIHAmYXVtbDtyYXN0IG4mb3RpbGRlO3Vzb2xla3Uga2lubml0YW1pc3QuJzsKJGxhbmdbJ3RpdGxlX3JlZ2V4X2hlbHAnXSA9ICdUaGlzIHJlZ3VsYXIgZXhwcmVzc2lvbiB3aWxsIG9ubHkgYmUgdXNlZCBpZiAmcXVvdDt2YWxpZGF0aW9uIHR5cGUmcXVvdDsgaXMgc2V0IHRvIGEgcmVnZXgtcmVsYXRlZCBvcHRpb24uIEluY2x1ZGUgYSBmdWxsIFBlcmwtc3R5bGUgcmVnZXgsIGluY2x1ZGluZyB0aGUgc3RhcnQvc3RvcCBzbGFzaGVzIGFuZCBmbGFncyAoZS5nLiwgJnF1b3Q7L2ltYWdlXC4oXGQrKS9pJnF1b3Q7KSc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9hYmJyZXYnXSA9ICdLb2h1c3QuJzsKJGxhbmdbJ3RpdGxlX3RpdGxlX3Bvc2l0aW9uJ10gPSAnViZhdW1sO2xqYSBUaWl0bGkgQXN1a29odCAobWl0dGUtQ1NTIGsmdXVtbDtsamVuZHVzZSBwdWh1bCknOwokbGFuZ1sndGl0bGVfdGFibGVfbGF5b3V0X2xlZnQnXSA9ICdUaWl0ZWwgVmFzYWt1bCc7CiRsYW5nWyd0aXRsZV90YWJsZV9sYXlvdXRfYWJvdmUnXSA9ICdUaWl0ZWwgJlV1bWw7bGV2YWwnOwokbGFuZ1sndGl0bGVfaGlkZV9lcnJvcnMnXSA9ICdQZWlkYSBWZWFkJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fZGlzcGxheXR5cGUnXSA9ICdWb3JtaSBLdXZhbWlzZSBWaWlzJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzX2xvbmcnXSA9ICcmQXVtbDtyYSBuJmF1bWw7aXRhIGthc3V0YWphdGVsZSB2ZWF0ZWF0ZWlkJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX3RlbXBsYXRlJ10gPSAnRS1tYWlsaSBNYWxsJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZSddID0gJ01ha3NpbWFhbG5lICZ1dW1sO2xlc2xhZXRhdmEgZmFpbGkgc3V1cnVzIChraWxvYmFpdGlkZXMpJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zJ10gPSAnTHViYXR1ZCBMYWllbmR1c2VkJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zX2xvbmcnXSA9ICdTaXNlc3RhIGtvbWFkZWdhIGVyYWxkYXR1ZCBuaW1la2lyaSwgaiZhdW1sO3RhIHYmYXVtbDtsamEgcHVua3RpZCAobi50LiwgJnF1b3Q7anBnLGdpZixqcGVnJnF1b3Q7KS4gVCZ1dW1sO2hpa3VpZCBpZ25vcmVlcml0YWtzZS4gSiZhdW1sO3R0ZXMgc2VsbGUgdiZhdW1sO2xqYSB0JnV1bWw7aGpha3MgZWkga2VodGkgJnV1bWw7aHRlZ2kgcGlpcmFuZ3V0Lic7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zJ10gPSAnTiZhdW1sO2l0YSBwaWlyYW5ndWlkPyc7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zX2xvbmcnXSA9ICdEaXNwbGF5IGFueSBzaXplIGFuZCBleHRlbnNpb24gcmVzdHJpY3Rpb25zIHdpdGggdGhlIHVwbG9hZCBmaWVsZD8nOwokbGFuZ1sndGl0bGVfZm9ybV90ZW1wbGF0ZSddID0gJ1Zvcm1pIFZhYXRlIGphb2tzIGthc3V0YXRhdiBNYWxsJzsKJGxhbmdbJ3RpdGxlX3BhZ2VfeF9vZl95J10gPSAnTGVodDogJXMga29ra3UgbGVodGk6ICVzJzsKJGxhbmdbJ3RpdGxlX25vX2FkdmFuY2VkX29wdGlvbnMnXSA9ICdWJmF1bWw7bGphbCBlaSBvbGUgbGFpZW5kYXR1ZCBzZWFkZWlkJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdW5zcGVjaWZpZWQnXSA9ICdUJmF1bWw7aXRtYXRhIHYmYXVtbDtsamFkZSB0ZWtzdCc7CiRsYW5nWyd0aXRsZV9lbmFibGVfZmFzdGFkZF9sb25nJ10gPSAnTHViYSBrYXN1dGFkYSBLaWlydmFsaWt1ZCB2b3JtaWRlIGVoaXRhbWlzZWw/JzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9mYXN0YWRkJ10gPSAnTHViYSBrYXN1dGFkYSBLaWlydmFsaWt1aWQ/JzsKJGxhbmdbJ3RpdGxlX2Zhc3RhZGQnXSA9ICdLaWlydmFsaWsnOwokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX3RlbXBsYXRlJ10gPSAnTWFsbGkgTXV1dHVqYWQnOwokbGFuZ1snaGVscF9zdWJtaXNzaW9uX2RhdGUnXSA9ICdTYWFkZXR1ZCc7CiRsYW5nWydoZWxwX3NlcnZlcl9uYW1lJ10gPSAnU2ludSBzZXJ2ZXInOwokbGFuZ1snaGVscF9zdWJfc291cmNlX2lwJ10gPSAnSVAgYWRkcmVzcyBvZiBwZXJzb24gdXNpbmcgZm9ybSc7CiRsYW5nWydoZWxwX3N1Yl91cmwnXSA9ICdVUkwgb2YgcGFnZSBjb250YWluaW5nIGZvcm0nOwokbGFuZ1snaGVscF9vdGhlcl9maWVsZHMnXSA9ICdPdGhlciBmaWVsZHMgd2lsbCBiZSBhdmFpbGFibGUgYXMgeW91IGFkZCB0aGVtIHRvIHRoZSBmb3JtLic7CiRsYW5nWydoZWxwX2RhdGVfZm9ybWF0J10gPSAnU2VlIDxhIGhyZWY9JnF1b3Q7aHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5kYXRlLnBocCZxdW90OyB0YXJnZXQ9X05FVz50aGUgUEhQIE1hbnVhbDwvYT4gZm9yIGZvcm1hdHRpbmcgaGVscC4nOwokbGFuZ1snaGVscF92YXJpYWJsZV9uYW1lJ10gPSAnTXV1dHVqYSc7CiRsYW5nWydoZWxwX2Zvcm1fZmllbGQnXSA9ICdWYXN0YXYgViZhdW1sO2xpJzsKJGxhbmdbJ2xpbmtfYmFja190b19mb3JtJ10gPSAnJmxhcXVvOyBCYWNrIHRvIEZvcm0nOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV90ZW1wbGF0ZSddID0gJ0xvbyBOJmF1bWw7aWRpc21hbGwnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9oZWFkZXInXSA9ICdMb28gTiZhdW1sO2lkaXNwJmF1bWw7aXMnOwokbGFuZ1snaGVscF90YWJfc3ltYm9sJ10gPSAnYSB0YWIgY2hhcmFjdGVyJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfdGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSBmb3Igb25lIGxpbmUgb2Ygb3V0cHV0IGZpbGUnOwokbGFuZ1sndGl0bGVfZmlsZV9oZWFkZXInXSA9ICdUZW1wbGF0ZSBmb3IgdGhlIGhlYWRlciBvZiBvdXRwdXQgZmlsZSc7CiRsYW5nWyd0aXRsZV9jb25maXJtYXRpb25fdXJsJ10gPSAnVVJMIHRvIGNsaWNrIGZvciBmb3JtIGNvbmZpcm1hdGlvbic7CiRsYW5nWydub19yZWZlcnJlcl9pbmZvJ10gPSAnTm8gSFRUUF9SRUZFUkVSIGluZm8gYXZhaWxhYmxlIChwcm9iYWJseSBkdWUgdG8gdXNlIG9mIFVzZXIgRW1haWwgVmFsaWRhdGlvbiknOwokbGFuZ1sndmFsaWRhdGlvbl9wYXJhbV9lcnJvciddID0gJ1ZhbGlkYXRpb24gUGFyYW1ldGVyIEVycm9yLiBQbGVhc2UgbWFrZSBzdXJlIHlvdSBjb3B5IHRoZSBVUkwgZnJvbSB5b3VyIGVtYWlsIGNvcnJlY3RseSEnOwokbGFuZ1sndmFsaWRhdGlvbl9yZXNwb25zZV9lcnJvciddID0gJ1ZhbGlkYXRpb24gUmVwc29uc2UgRXJyb3IuIFBsZWFzZSBtYWtlIHN1cmUgeW91IGNvcHkgdGhlIFVSTCBmcm9tIHlvdXIgZW1haWwgY29ycmVjdGx5ISc7CiRsYW5nWyd2YWxpZGF0aW9uX25vX2ZpZWxkX2Vycm9yJ10gPSAnVmFsaWRhdGlvbiBSZXBzb25zZSBFcnJvci4gTm8gZW1haWwgdmFsaWRhdGlvbiBmaWVsZCBpbiB0aGlzIGZvcm0hJzsKJGxhbmdbJ3RpdGxlX2RhdGVfZm9ybWF0J10gPSAnRGF0ZSBGb3JtYXQgKHN0YW5kYXJkIDxhIGhyZWY9JnF1b3Q7aHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5kYXRlLnBocCZxdW90Oz5QSFAgRGF0ZSBGb3JtYXRzPC9hPiknOwokbGFuZ1sndGl0bGVfdXNlX3d5c2l3eWcnXSA9ICdLYXN1dGEgdGVrc3RpdiZhdW1sO2xqYWwgV1lTSVdZRy10b2ltZXRhamF0Pyc7CiRsYW5nWydkaXNwdHlwZV90YWJsZSddID0gJ1RhYmVsL0NTUyc7CiRsYW5nWydkaXNwdHlwZV9jc3MnXSA9ICdBaW51bHQgQ1NTJzsKJGxhbmdbJ2Rpc3B0eXBlX3RlbXBsYXRlJ10gPSAnTWFsbCc7CiRsYW5nWydhZG1pbmRlc2MnXSA9ICdBZGQsIGVkaXQgYW5kIG1hbmFnZSBpbnRlcmFjdGl2ZSBGb3Jtcyc7CiRsYW5nWydkYXRlX2phbnVhcnknXSA9ICdKYWFudWFyJzsKJGxhbmdbJ2RhdGVfZmVicnVhcnknXSA9ICdWZWVicnVhcic7CiRsYW5nWydkYXRlX21hcmNoJ10gPSAnTSZhdW1sO3J0cyc7CiRsYW5nWydkYXRlX2FwcmlsJ10gPSAnQXByaWxsJzsKJGxhbmdbJ2RhdGVfbWF5J10gPSAnTWFpJzsKJGxhbmdbJ2RhdGVfanVuZSddID0gJ0p1dW5pJzsKJGxhbmdbJ2RhdGVfanVseSddID0gJ0p1dWxpJzsKJGxhbmdbJ2RhdGVfYXVndXN0J10gPSAnQXVndXN0JzsKJGxhbmdbJ2RhdGVfc2VwdGVtYmVyJ10gPSAnU2VwdGVtYmVyJzsKJGxhbmdbJ2RhdGVfb2N0b2JlciddID0gJ09rdG9vYmVyJzsKJGxhbmdbJ2RhdGVfbm92ZW1iZXInXSA9ICdOb3ZlbWJlcic7CiRsYW5nWydkYXRlX2RlY2VtYmVyJ10gPSAnRGV0c2VtYmVyJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3InXSA9ICdTb3JyeSEgVGhlcmUgd2FzIGFuIGVycm9yIGhhbmRsaW5nIHlvdXIgZm9ybSBzdWJtaXNzaW9uLic7CiRsYW5nWydzdWJtaXRfZXJyb3InXSA9ICdGb3JtQnVpbGRlciBzdWJtaXQgZXJyb3I6ICVzJzsKJGxhbmdbJ3VwbG9hZF9hdHRhY2hfZXJyb3InXSA9ICdVcGxvYWQvQXR0YWNobWVudCBlcnJvciBvbiBmaWxlICVzICh0bXBfbmFtZTogJXMsIG9mIHR5cGUgJXMpJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3JfZmlsZV9sb2NrJ10gPSAnRXJyb3IuIFVuYWJsZSB0byBvYnRhaW4gbG9jayBmb3IgZmlsZS4nOwokbGFuZ1snZW1haWxfZGVmYXVsdF90ZW1wbGF0ZSddID0gJ0Zvcm1CdWlsZGVyIFN1Ym1pc3Npb24NCic7CiRsYW5nWydlbWFpbF90ZW1wbGF0ZV9ub3Rfc2V0J10gPSAnPGJyLz5FbWFpbCBUZW1wbGF0ZSBub3QgeWV0IHNldCEnOwokbGFuZ1snbWlzc2luZ19jbXNfbWFpbGVyJ10gPSAnRm9ybUJ1aWxkZXI6IENhbm5vdCBmaW5kIHJlcXVpcmVkIG1vZHVsZSBDTVNNYWlsZXIhJzsKJGxhbmdbJ3VzZXJfYXBwcm92ZWRfc3VibWlzc2lvbiddID0gJ1VzZXIgYXBwcm92ZWQgc3VibWlzc2lvbiAlcyBmcm9tICVzJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXSA9ICdFdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddID0gJ0V2ZW50IHRyaWdnZXJlZCBpZiB0aGVyZSBpcyBhbiBlcnJvciB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXSA9ICdFdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgZGlzcGxheWVkJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXSA9ICc8cD5FdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkLjwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBUaGUgZm9ybSBuYW1lIChzdHJpbmcpPC9saT4NCjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gVGhlIGludGVybmFsIGZvcm0gaWQgKGludCk8L2xpPg0KPC91bD4gJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddID0gJzxwPkV2ZW50IHRyaWdnZXJlZCBpZiB0aGVyZSBpcyBhbiBlcnJvciB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQ8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gVGhlIGZvcm0gbmFtZSAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4NCjxsaT48ZW0+ZXJyb3I8L2VtPiAtIEEgbGlzdCBvZiBhbGwga25vd24gZXJyb3JzIChzdHJpbmcpPC9saT4NCjwvdWw+ICc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtRGlzcGxheSddID0gJzxwPkV2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBkaXNwbGF5ZWQ8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gVGhlIGZvcm0gbmFtZSAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4NCjwvdWw+ICc7CiRsYW5nWydwb3N0X2luc3RhbGwnXSA9ICc8cD5NYWtlIHN1cmUgdG8gc2V0IHRoZSAmcXVvdDtNb2RpZnkgRm9ybXMmcXVvdDsgcGVybWlzc2lvbnMNCm9uIHVzZXJzIHdobyB3aWxsIGJlIGFkbWluaXN0ZXJpbmcgZmVlZGJhY2sgZm9ybXMuIEFsc28sIGlmIHlvdSYjMDM5O2xsIGJlIGVtYWlsaW5nIGZvcm0NCnJlc3VsdHMsIGJlIHN1cmUgdG8gdXBkYXRlIHRoZSBDb25maWd1cmF0aW9uIGFwcHJvcHJpYXRlbHkuPC9wPg0KPHA+UGxlYXNlIGJlIGF3YXJlIHRoYXQgYSBmZWVkYmFjayBmb3JtIHNob3VsZCBub3QgYmUgYWN0aXZlIChlLmcuLCB1c2FibGUgYnkgdGhlIHB1YmxpYykgd2hpbGUNCnlvdSBhcmUgc3RpbGwgZWRpdGluZyB0aGUgZm9ybS4gWW91IHNob3VsZCBjcmVhdGUgdGhlIGZvcm0sIGFuZCBwbGFjZSB0aGUgdGFnIGludG8gYW4gYWN0aXZlDQpjb250ZW50IHBhZ2Ugb25seSB3aGVuIHlvdSBoYXZlIGZpbmlzaGVkIGVkaXRpbmcuIE90aGVyd2lzZSwgZXJyb25lb3VzIHJlc3VsdHMgY291bGQgYmUgcmV0dXJuZWQuPC9wPg0KPHA+QWRkaXRpb25hbGx5LCB0aGlzIHZlcnNpb24gZG9lcyBub3Qgc3VwcG9ydCBwYXJhbGxlbCBlZGl0aW5nIG9mIGZvcm1zLiBQbGVhc2UgdGFrZSBjYXJlIHRoYXQNCm9ubHkgb25lIGFkbWluIGlzIGVkaXRpbmcgYSBnaXZlbiBmb3JtIGF0IGEgZ2l2ZW4gdGltZS48L3A+JzsKJGxhbmdbJ2hlbHAnXSA9ICc8aDM+V2hhdCBEb2VzIFRoaXMgRG8/PC9oMz4NCjxwPlRoZSBGb3JtIEJ1aWxkZXIgTW9kdWxlIGFsbG93cyB5b3UgdG8gY3JlYXRlIGZlZWRiYWNrIGZvcm1zIChpbiBmYWN0LCBpdCYjMDM5O3MgYSByZXBsYWNlbWVudCBvZiB0aGUgb3JpZ2luYWwgRmVlZGJhY2sgRm9ybSBtb2R1bGUpLCB3aXRoIHRoZSBhZGRlZCBwb3dlciBvZiBkYXRhYmFzZSBzdG9yYWdlLiBXaXRoIGl0cyBjb21wYW5pb24gbW9kdWxlIEZvcm0gQnJvd3NlciwgeW91IGNhbiB1c2UgaXQgdG8gY3JlYXRlIHNpbXBsZSBkYXRhYmFzZSBhcHBsaWNhdGlvbnMuPC9wPg0KPHA+VGhlIGZvcm1zIGNyZWF0ZWQgdXNpbmcgdGhlIEZvcm0gQnVpbGRlciBtYXkgYmUgaW5zZXJ0ZWQNCmludG8gdGVtcGxhdGVzIGFuZC9vciBjb250ZW50IHBhZ2VzLiBGb3JtcyBtYXkgY29udGFpbiBtYW55IGtpbmRzIG9mIGlucHV0cywgYW5kIG1heSBoYXZlDQp2YWxpZGF0aW9uIGFwcGxpZWQgdG8gdGhlc2UgaW5wdXRzLiBUaGUgcmVzdWx0cyBvZiB0aGVzZSBmb3JtcyBtYXkgYmUgaGFuZGxlZCBpbiBhIHZhcmlldHkgb2Ygd2F5cy48L3A+DQoNCjxoMz5Ib3cgRG8gSSBVc2UgaXQ/PC9oMz4NCjxQPkluc3RhbGwgaXQsIGFuZCBwb2tlIGFyb3VuZCB0aGUgbWVudXMuIFBsYXkgd2l0aCBpdC4gVHJ5IGNyZWF0aW5nIGZvcm1zLCBhbmQgYWRkaW5nIHRoZW0gdG8geW91ciBjb250ZW50Lg0KSWYgeW91IGdldCBzdHVjaywgY2hhdCB3aXRoIG1lIG9uIHRoZSAjY21zIElSQyBjaGFubmVsLCBwb3N0IHRvIHRoZSBmb3J1bSwgc2VuZCBtZSBlbWFpbCwgb3IsIGlmIHlvdSYjMDM5O3JlDQpyZWFsbHkgZGVzcGVyYXRlLCByZWFkIHRoZSByZXN0IG9mIHRoaXMgcGFnZS48L1A+DQoNCjxoMz5Ib3cgRG8gSSBDcmVhdGUgYSBGb3JtPC9oMz4NCjxwPkluIHRoZSBDTVMgQWRtaW4gTWVudSwgeW91IHNob3VsZCBnZXQgYSBuZXcgbWVudSBpdGVtIGNhbGxlZCBGb3JtQnVpbGRlci4gQ2xpY2sgb24gdGhpcy4gT24gdGhlIHBhZ2UNCnRoYXQgZ2V0cyBzaG93biwgdGhlcmUgYXJlIG9wdGlvbnMgKGF0IHRoZSBib3R0b20gb2YgdGhlIGxpc3Qgb2YgRm9ybXMpIHRvIEFkZCBhIE5ldyBGb3JtIG9yIE1vZGlmeQ0KQ29uZmlndXJhdGlvbi48L3A+DQoNCjxoMz5BZGRpbmcgYSBGb3JtIHRvIGEgUGFnZTwvaDM+DQo8cD5JbiB0aGUgbWFpbiBGb3JtQnVpbGRlciBhZG1pbiBwYWdlLCB5b3UgY2FuIHNlZSBhbiBleGFtcGxlIG9mIHRoZSB0YWcgdXNlZCB0byBkaXNwbGF5IGVhY2ggZm9ybS4gSXQgbG9va3MNCnNvbWV0aGluZyBsaWtlIHtjbXNfbW9kdWxlIG1vZHVsZT0mIzAzOTtGb3JtQnVpbGRlciYjMDM5OyBmb3JtPSYjMDM5O3NhbXBsZV9mb3JtJiMwMzk7fTwvcD4NCjxwPkJ5IGNvcHlpbmcgdGhpcyB0YWcgaW50byB0aGUgY29udGVudCBvZiBhIHBhZ2UsIG9yIGludG8gYSB0ZW1wbGF0ZSwgd2lsbCBjYXVzZSB0aGF0IGZvcm0gdG8gYmUgZGlzcGxheWVkLg0KSW4gdGhlb3J5LCB5b3UgY2FuIGhhdmUgbXVsdGlwbGUgZm9ybXMgb24gYSBwYWdlIGlmIHlvdSByZWFsbHkgd2FudCB0by4gQmUgY2FyZWZ1bCB3aGVuIHBhc3RpbmcgdGhlIHRhZw0KaW50byBhIHBhZ2UmIzAzOTtzIGNvbnRlbnQgaWYgeW91IHVzZSBhIFdZU0lXWUcgZWRpdG9yIHN1Y2ggYXMgVGlueU1DRSBvciBIVE1MQXJlYS4gVGhlc2UgZWRpdG9ycyBtYXkgc3RlYWx0aGlseQ0KY2hhbmdlIHRoZSBxdW90ZSBtYXJrcyAoJnF1b3Q7KSBpbnRvIEhUTUwgZW50aXRpZXMgKCZhbXA7cXVvdDspLCBhbmQgdGhlIGZvcm1zIHdpbGwgbm90IHNob3cgdXAuIFRyeSB1c2luZw0Kc2luZ2xlIHF1b3RlcyAoJiMwMzk7KSBvciBlZGl0aW5nIHRoZSBIVE1MIGRpcmVjdGx5Lg0KDQo8aDM+V29ya2luZyB3aXRoIEZvcm1zPC9oMz4NCjxwPkJ5IGNsaWNraW5nIG9uIGEgRm9ybSYjMDM5O3MgbmFtZSwgeW91IGVudGVyIHRoZSBGb3JtIEVkaXQgcGFnZS4gVGhlcmUgYXJlIHNldmVyYWwgdGFicywgd2hpY2ggYXJlIGRlc2NyaWJlZCBiZWxvdzo8L3A+DQo8aDQ+TWFpbjwvaDQ+DQo8cD5UaGlzIGlzIHRoZSBtYWluIHBsYWNlIHlvdSYjMDM5O2xsIHdvcmsgb24geW91ciBmb3JtLiBIZXJlLCB5b3UgZ2l2ZSBpdCBhIG5hbWUsIGFuIGFsaWFzICh3aGljaCBpcyB1c2VkIHRvIGlkZW50aWZ5IGl0IGZvciBwbGFjaW5nIGl0IGluIGEgcGFnZSBvciB0ZW1wbGF0ZSksIGFuZCwgb3B0aW9uYWxseSwgYSBDU1MgY2xhc3Mgd2l0aCB3aGljaCB0byB3cmFwIHRoZSB3aG9sZSB0aGluZy4gWW91IGFsc28gc2VsZWN0IHRoZSBkaXNwbGF5IHR5cGUuIFlvdXIgY2hvaWNlcyBhcmU6PC9wPg0KPHVsPg0KPGxpPlRhYmxlL0NTUy4gVGhlIGZvcm0gaXMgY3JlYXRlZCB1c2luZyBIVE1MIHRhYmxlcy4gSWYgeW91IGRvbiYjMDM5O3Qga25vdyB3aGF0IHRvIGNob29zZSwgdGhpcyBpcyB0aGUgZWFzaWVzdCBvcHRpb24sIGFuZCB3aWxsIHByb2JhYmx5IGRvIG1vc3Qgb2Ygd2hhdCB5b3Ugd2FudC4gWW91IGNhbiBzdGlsbCB1c2UgQ1NTIHRvIHN0eWxlIHRoZSBmb3JtIGlmIHlvdSB3YW50LjwvbGk+DQo8bGk+UHVyZSBDU1MuIFRoZSBmb3JtIGlzIGNyZWF0ZWQsIHdpdGggYWxsIHRoZSBmaWVsZHMgd3JhcHBlZCBpbiA8ZGl2PiB0YWdzLiBZb3UgY2FuIHRoZW4gc3R5bGUgdGhlIGZvcm0gYXMgeW91IHNlZSBmaXQuPC9saT4NCjxsaT5DdXN0b20gVGVtcGxhdGUuIEJhc2ljYWxseSwgeW91IGdldCBhIHNtYXJ0eSB0ZW1wbGF0ZSwgYSBidW5jaCBvZiB2YXJpYWJsZXMsIGFuZCB5b3UmIzAzOTtyZSBvbiB5b3VyIG93bi4gWW91IGhhdmUgdGhlIHBvd2VyIHRvIGNyZWF0ZSB3aGF0ZXZlciB5b3Ugd2FudC48L2xpPg0KPC91bD4NCjxwPkJlbG93IHRoaXMsIGlmIHlvdSBoYXZlIGl0IGVuYWJsZWQsIGlzIHRoZSAmcXVvdDtmYXN0IGZpZWxkIGFkZGVyJnF1b3Q7IHB1bGxkb3duLCB0aGF0IGxldHMgeW91IHF1aWNrbHkgYWRkIGEgZmllbGQgdG8gdGhlIGVuZCBvZiB5b3VyIGZvcm0gYnkgc2VsZWN0aW5nIHRoZSBmaWVsZCB0eXBlLjwvcD4NCjxwPkJlbG93IHRoaXMgaXMgdGhlIGxpc3Qgb2YgZmllbGRzIHRoYXQgbWFrZSB1cCB5b3VyIGZvcm0uIE1vcmUgZGV0YWlsIG9uIHRoaXMgaXMgZGVzY3JpYmVkIGJlbG93LjwvcD4NCjxoND5Gb3JtIFNldHRpbmdzPC9oND4NCjxwPkZvcm0gU2V0dGluZ3MgYWxsb3dzIHlvdSB0byBjdXN0b21pemUgYSBsb3Qgb2YgdGhlIG1lc3NhZ2VzIGFuZCB0ZXh0IGluIHRoZSBjb250cm9scyBmb3IgeW91ciBmb3JtLiBJdCBhbHNvIGFsbG93cyB5b3UgdG8gcGljayBhIHBhZ2UgdG8gcmVkaXJlY3QgdXNlcnMgdG8gYWZ0ZXIgYSBzdWNjZXNzZnVsIGZvcm0gc3VibWlzc2lvbi48L3A+DQo8aDQ+VGFibGUtYmFzZWQgTGF5b3V0IE9wdGlvbnM8L2g0Pg0KPHA+VGFibGUtbGF5b3V0cyBoYXZlIGdvdHRlbiBzaW1wbGVyLCBzbyB5b3VyIG9ubHkgb3B0aW9uIGhlcmUgaXMgdGhlIHBvc2l0aW9uIG9mIHRoZSBmaWVsZCBuYW1lcyByZWxhdGl2ZSB0byB0aGUgaW5wdXRzLiBJZiB5b3UmIzAzOTtyZSB1c2luZyBhIFRhYmxlL0NTUyBsYXlvdXQsIHlvdSBjYW4gdXNlIHRoaXMgdGFiIHRvIHNlbGVjdCB0aGUgZmllbGQgbmFtZSBwb3NpdGlvbnMuPC9wPg0KPGg0PlRlbXBsYXRlIExheW91dCBPcHRpb25zPC9oND4NCjxwPlRoaXMgaXMgd2hlcmUgeW91IGRvIHlvdXIgY3VzdG9taXphdGlvbiB3b3JrIGlmIHlvdXIgZm9ybSB1c2VzIGEgQ3VzdG9tIFRlbXBsYXRlLjwvcD4NCjxwPlRoZSBmb3JtIHNob3VsZCBkZWZhdWx0IHRvIGEgYSBDdXN0b20gdGVtcGxhdGUgdGhhdCBkb2N1bWVudHMgdGhlIHNtYXJ0eSB0YWdzIGF2YWlsYWJsZSB0byB5b3UuIFVubGVzcyB5b3UmIzAzOTtyZSBhIHNtYXJ0eSBleHBlcnQsIHlvdSBwcm9iYWJseSBkb24mIzAzOTt0IHdhbnQgdG8gbWVzcyBhcm91bmQgd2l0aCB0aGlzLiBJZiB5b3UgYXJlIGEgc21hcnR5IGV4cGVydCwgdGhpcyBpcyB3aGVyZSB5b3UgY2FuIHVubGVhc2ggeW91ciBtYWdpYy48L3A+DQo8aDM+QWRkaW5nIEZpZWxkcyB0byB5b3VyIEZvcm08L2gzPg0KPHA+VGhlIHR5cGVzIG9mIGZpZWxkcyB0aGF0IGFyZSBjdXJyZW50bHkgc3VwcG9ydGVkIGZpdCBpbnRvIGZvdXIgZ3JvdXBzOiBzdGFuZGFyZCBpbnB1dCBmaWVsZHMsIGRpc3BsYXkgY29udHJvbCBmaWVsZHMsIGVtYWlsLXNwZWNpZmljIGZpZWxkcywgYW5kIGZvcm0gcmVzdWx0IGhhbmRsaW5nIGZpZWxkcyAoYWxzbyBjYWxsZWQgRm9ybSBEaXNwb3NpdGlvbnMgaW4gcGxhY2VzKTo8L3A+DQo8dWw+DQo8bGk+U3RhbmRhcmQgSW5wdXQgRmllbGRzIC0gdGhlc2UgYXJlIGlucHV0cyB0aGF0IGFsbG93IGVudHJ5IG9mIHR5cGljYWwgZm9ybSBlbGVtZW50czsgdGV4dCBpbnB1dHMsIHJhZGlvIGJ1dHRvbnMsIGV0Yy48L2xpPg0KPGxpPkRpc3BsYXkgQ29udHJvbCBGaWVsZHMgLSB0aGVzZSBpbnB1dCBjb250cm9sIGhvdyB0aGUgdXNlciB3aWxsIHNlZSB0aGUgZGlzcGxheSBvZiB0aGUgZm9ybTsgcGFnZSBicmVha3MsIHN0YXRpYyB0ZXh0LCBldGMuPC9saT4NCjxsaT5FbWFpbC1zcGVjaWZpYyBGaWVsZHMgLSBzb21lIGZvcm1zIGdlbmVyYXRlIGVtYWlsLCBhbmQgZW1haWwtc3BlY2lmaWMgZmllbGRzIGNhbiBhbHRlciBhdHRyaWJ1dGVzIG9mIHRoZSBlbWFpbHMgc2VudC48L2xpPg0KPGxpPkZvcm0gRGlzcG9zaXRpb25zIC0gVGhlc2UgZGV0ZXJtaW5lIHdoYXQgaGFwcGVucyB3aGVuIHRoZSB1c2VyDQpzdWJtaXRzIHRoZSBmb3JtOyBmb3IgZWFjaCByZXN1bHQgaGFuZGxpbmcgZmllbGQsIHNvbWUgbWV0aG9kIG9mIHRyYW5zbWl0dGluZywgc2F2aW5nLCBvciBlbWFpbGluZyB0aGUNCmZvcm0gY29udGVudHMgdGFrZXMgcGxhY2UuIEEgZm9ybSBtYXkgaGF2ZSBtdWx0aXBsZSBmb3JtIGRpc3Bvc2l0aW9ucy48L2xpPg0KPC91bD4NCjxwPkZvcm0gZmllbGRzIGFyZSBhc3NpZ25lZCBuYW1lcy4gVGhlc2UgbmFtZXMgaWRlbnRpZnkgdGhlIGZpZWxkLCBub3Qgb25seSBvbiB0aGUgc2NyZWVuIGFzIGxhYmVscyBmb3IgdGhlIHVzZXIsDQpidXQgaW4gdGhlIGRhdGEgd2hlbiBpdCYjMDM5O3Mgc3VibWl0dGVkIHNvIHlvdSBrbm93IHdoYXQgdGhlIHVzZXIgaXMgcmVzcG9uZGluZyB0by4gUGhyYXNpbmcgdGhlIG5hbWUgbGlrZSBhIHF1ZXN0aW9uDQppcyBhIGhhbmR5IHdheSBvZiBtYWtpbmcgaXQgY2xlYXIgdG8gdGhlIHVzZXIgd2hhdCBpcyBleHBlY3RlZC4gU2ltaWxhcmx5LCBtYW55IGZpZWxkcyBoYXZlIGJvdGggTmFtZXMgYW5kIFZhbHVlcy4NClRoZSBOYW1lcyBhcmUgd2hhdCBnZXRzIHNob3duIHRvIHRoZSB1c2VyOyB0aGUgVmFsdWUgaXMgd2hhdCBnZXRzIHNhdmVkIG9yIHRyYW5zbWl0dGVkIHdoZW4gdGhlIHVzZXIgc3VibWl0cw0KdGhlIGZvcm0uIFRoZSBWYWx1ZXMgYXJlIG5ldmVyIHNlZW4gYnkgdGhlIHVzZXIsIG5vciBhcmUgdGhleSB2aXNpYmxlIGluIHRoZSBIVE1MLCBzbyBpdCYjMDM5O3Mgc2FmZSB0byB1c2UgZm9yDQplbWFpbCBhZGRyZXNzZXMgYW5kIHN1Y2guPC9wPg0KPHA+U29tZSBmaWVsZHMgY2FuIGhhdmUgbXVsdGlwbGUgdmFsdWVzLCBvciBtdWx0aXBsZSBuYW1lL3ZhbHVlIHBhaXJzLiBXaGVuIHlvdSBmaXJzdCBjcmVhdGUgc3VjaCBhIGZpZWxkLA0KdGhlcmUgbWF5IG5vdCBiZSBzdWZmaWNpZW50IGlucHV0cyBmb3IgeW91IHRvIHNwZWNpZnkgYWxsIHRoZSB2YWx1ZXMgeW91IHdhbnQuIFRvIGdldCBtb3JlIHNwYWNlIGZvciBpbnB1dHRpbmcNCnRoZXNlIHZhbHVlcywgdXNlIHRoZSBidXR0b25zIGF0IHRoZSBib3R0b20gb2YgdGhlIHBhZ2UgZm9yIGFkZGluZyBvcHRpb25zLjwvcD4NCjxwPkZpZWxkcyBjYW4gYmUgYXNzaWduZWQgdmFsaWRhdGlvbiBydWxlcywgd2hpY2ggdmFyeSBhY2NvcmRpbmcgdG8gdGhlIHR5cGUgb2YgdGhlIGZpZWxkLiBUaGVzZSBydWxlcyBoZWxwDQplbnN1cmUgdGhhdCB0aGUgdXNlciBlbnRlcnMgdmFsaWQgZGF0YS4gVGhleSBtYXkgYWxzbyBiZQ0Kc2VwYXJhdGVseSBtYXJrZWQgJnF1b3Q7UmVxdWlyZWQmcXVvdDssIHdoaWNoIHdpbGwgZm9yY2UgdGhlIHVzZXIgdG8gZW50ZXIgYSByZXNwb25zZS48L3A+DQo8cD5GaWVsZHMgYWxzbyBtYXkgYmUgYXNzaWduZWQgYSBDU1MgY2xhc3MuIFRoaXMgc2ltcGx5IHdyYXBzIHRoZSBpbnB1dCBpbiBhIGRpdiB3aXRoIHRoYXQgY2xhc3MsIHNvIGFzIHRvIGFsbG93DQpjdXN0b21pemVkIGxheW91dHMuIFRvIHVzZSB0aGlzIGVmZmVjdGl2ZWx5LCB5b3UgbWF5IG5lZWQgdG8gJnF1b3Q7dmlldyBzb3VyY2UmcXVvdDsgb24gdGhlIGdlbmVyYXRlZCBmb3JtLCBhbmQgdGhlbg0Kd3JpdGUgeW91ciBDU1MuPC9wPg0KPHVsPg0KPGxpPlN0YW5kYXJkIElucHV0cw0KPHVsPjxsaT5UZXh0IElucHV0LiBUaGlzIGlzIGEgc3RhbmRhcmQgdGV4dCBmaWVsZC4gWW91IGNhbiBsaW1pdCB0aGUgbGVuZ3RoLCBhbmQgYXBwbHkgdmFyaW91cyB2YWxpZGF0aW9uDQpmdW5jdGlvbnMgdG8gdGhlIGZpZWxkLjwvbGk+DQo8bGk+VGV4dCBBcmVhLiBUaGlzIGlzIGEgYmlnLCBmcmVlLWZvcm0gdGV4dCBpbnB1dCBmaWVsZC48L2xpPg0KPGxpPkNoZWNrYm94LiBUaGlzIGlzIGEgc3RhbmRhcmQgY2hlY2sgYm94LjwvbGk+DQo8bGk+Q2hlY2tib3ggR3JvdXAuIFRoaXMgaXMgYSBjb2xsZWN0aW9uIG9mIGNoZWNrYm94ZXMuIFRoZSBvbmx5IGRpZmZlcmVuY2UgYmV0d2VlbiB0aGlzIGlucHV0IGFuZCBhDQpjb2xsZWN0aW9uIG9mIENoZWNrYm94IGlucHV0cyBpcyB0aGF0IHRoZXkgYXJlIHByZXNlbnRlZCBhcyBhIGdyb3VwLCB3aXRoIG9uZSBuYW1lLCBhbmQgY2FuIGhhdmUgYSB2YWxpZGF0aW9uIGZ1bmN0aW9uIHJlcXVpcmluZyB0aGF0IHlvdSBjaGVjayBvbmUgb3IgbW9yZSBvZiB0aGUgYm94ZXMgaW4gdGhlIGdyb3VwLjwvbGk+DQo8bGk+UmFkaW8gR3JvdXAuIFRoaXMgaXMgYSBjb2xsZWN0aW9uIG9mIHJhZGlvIGJ1dHRvbnMuIE9ubHkgb25lIG9mIHRoZSBncm91cCBtYXkgYmUgc2VsZWN0ZWQgYnkgdGhlIHVzZXIuPC9saT4NCjxsaT5QdWxsZG93bi4gVGhpcyBpcyBhIHN0YW5kYXJkIHB1bGxkb3duIG1lbnUuIEl0JiMwMzk7cyByZWFsbHkgY29uY2VwdHVhbGx5IHRoZSBzYW1lIHRoaW5nIGFzIGEgcmFkaW8gYnV0dG9uDQpncm91cCwgYnV0IGlzIGJldHRlciB3aGVuIHRoZXJlIGFyZSBhIGxhcmdlIG51bWJlciBvZiBvcHRpb25zLjwvbGk+DQo8bGk+TXVsdGlzZWxlY3QuIFRoaXMgaXMgYSBtdWx0aS1zZWxlY3QgZmllbGQuIEl0JiMwMzk7cyByZWFsbHkgY29uY2VwdHVhbGx5IHRoZSBzYW1lIHRoaW5nIGFzIGEgY2hlY2tib3ggYnV0dG9uDQpncm91cCwgYnV0IGlzIGJldHRlciB3aGVuIHRoZXJlIGFyZSBhIGxhcmdlIG51bWJlciBvZiBvcHRpb25zLCBhcyB5b3UgY2FuIGxpbWl0IHRoZSBudW1iZXIgZGlzcGxheWVkIG9uIHRoZSBzY3JlZW4gYXQgYW55IG9uZSB0aW1lLjwvbGk+DQo8bGk+U3RhdGUuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBTdGF0ZXMgb2YgdGhlIFUuUy48L2xpPg0KPGxpPkNvdW50cmllcy4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIENvdW50cmllcyBvZiB0aGUgd29ybGQgKGFzIG9mIEp1bHkgMjAwNSkuPC9saT4NCjxsaT5EYXRlIFBpY2tlci4gVGhpcyBpcyBhIHRyaXBsZSBwdWxsZG93biBhbGxvd2luZyB0aGUgdXNlciB0byBzZWxlY3QgYSBkYXRlLjwvbGk+DQo8L3VsPjwvbGk+DQoNCjxsaT5FbWFpbC1zcGVjaWZpYyBJbnB1dHMNCjx1bD48bGk+RW1haWwgRnJvbSBBZGRyZXNzIEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIHRoZWlyIGVtYWlsIGFkZHJlc3MuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBhZGRyZXNzIGluIHRoZSAmcXVvdDtGcm9tJnF1b3Q7IGZpZWxkLjwvbGk+DQo8bGk+RW1haWwgRnJvbSBOYW1lIEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIHRoZWlyIG5hbWUuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBuYW1lIGluIHRoZSAmcXVvdDtGcm9tJnF1b3Q7IGZpZWxkLjwvbGk+DQo8L3VsPjwvbGk+DQoNCjxsaT5EaXNwbGF5IENvbnRyb2wgRmllbGRzPHVsPg0KPGxpPi1QYWdlIEJyZWFrLiBUaGlzIGFsbG93cyB5b3UgdG8gc3BsaXQgeW91ciBmZWVkYmFjayBmb3JtIGludG8gbXVsdGlwbGUgcGFnZXMuIEVhY2ggcGFnZSBpcw0KaW5kZXBlbmRlbnRseSB2YWxpZGF0ZWQuIFRoaXMgaXMgZ29vZCBmb3IgYXBwbGljYXRpb25zIGxpa2Ugb25saW5lIHN1cnZleXMuPC9saT4NCjxsaT4tU3RhdGljIFRleHQuIFRoaXMgYWxsb3dzIHlvdSB0byBwdXQgdGV4dCBvciBhIGxhYmVsIGluIHRoZSBtaWRkbGUgb2YgeW91ciBmb3JtLiBUaGlzIGlzIHVzZWZ1bCBmb3IgZ2l2aW5nIGFkZGl0aW9uYWwgaGVscCB0ZXh0LCBlc3BlY2lhbGx5IGlmIHlvdSYjMDM5O3JlIG5vdCB1c2luZyBhIEN1c3RvbSBUZW1wbGF0ZSB0byByZW5kZXIgeW91ciBmb3JtLjwvbGk+DQo8L3VsPjwvbGk+DQoNCjxsaT5Gb3JtIEhhbmRsaW5nIElucHV0cyAoRGlzcG9zaXRpb25zKQ0KPHVsPjxsaT4qRW1haWwgUmVzdWx0cyBCYXNlZCBvbiBQdWxsZG93bi4gVGhpcyBpcyB1c2VmdWwgZm9yIHdlYiBzaXRlcyB3aGVyZSBjb21tZW50cyBnZXQgcm91dGVkIGJhc2VkIG9uIHRoZWlyIHN1YmplY3QgbWF0dGVyLCBlLmcuLCBidWdzIGdldCBzZW50IHRvIG9uZSBwZXJzb24sIG1hcmtldGluZyBxdWVzdGlvbnMgdG8gYW5vdGhlciBwZXJzb24sIHNhbGVzIHJlcXVlc3RzIHRvIHNvbWVvbmUgZWxzZSwgZXRjLiBUaGUgcHVsbGRvd24gaXMgcG9wdWxhdGVkIHdpdGggdGhlIHN1YmplY3RzLCBhbmQgZWFjaCBnZXRzIGRpcmVjdGVkIHRvIGEgc3BlY2lmaWMgZW1haWwgYWRkcmVzcy4gWW91IHNldCB1cCB0aGVzZSBtYXBwaW5ncyBpbiB0aGUgd2hlbiB5b3UgY3JlYXRlIG9yIGVkaXQgYSBmaWVsZCBvZiB0aGlzIHR5cGUuIElmIHlvdSB1c2Ugb25lIG9mIHRoZXNlICZxdW90O0RpcmVjdG9yJnF1b3Q7IHB1bGxkb3ducywgdGhlIHVzZXIgbXVzdCBtYWtlIGEgc2VsZWN0aW9uIGluIG9yZGVyIHRvIHN1Ym1pdCB0aGUNCmZvcm0uIFRoaXMgaW5wdXQgaXMgcGFydCBvZiB0aGUgZm9ybSB0aGUgdXNlciBzZWVzLCBhbHRob3VnaCB0aGUgZW1haWwgYWRkcmVzc2VzIGFyZSBub3QgbWFkZSB2aXNpYmxlIG5vcg0KYXJlIHRoZXkgZW1iZWRkZWQgaW4gdGhlIEhUTUwuPC9saT4NCjxsaT4qRW1haWwgUmVzdWx0cyB0byBzZXQgQWRkcmVzcyhlcykuIFRoaXMgc2ltcGx5IHNlbmRzIHRoZSBmb3JtIHJlc3VsdHMgdG8gb25lIG9yIG1vcmUgZW1haWwgYWRkcmVzc2VzIHRoYXQgeW91IGVudGVyIHdoZW4geW91IGNyZWF0ZSBvciBlZGl0IHRoaXMgdHlwZSBvZiBmaWVsZC4gVGhpcyBmaWVsZCBhbmQgaXRzIG5hbWUgYXJlIG5vdCB2aXNpYmxlIGluIHRoZQ0KZm9ybSB0aGF0IHRoZSB1c2VyIHNlZXMuIFRoZSBlbWFpbCBhZGRyZXNzZXMgYXJlIG5vdCBtYWRlIHZpc2libGUgbm9yDQphcmUgdGhleSBlbWJlZGRlZCBpbiB0aGUgSFRNTC48L2xpPg0KPGxpPipTdG9yZSBSZXN1bHRzIGluIERhdGFiYXNlLiBUaGlzIHdpbGwgc3RvcmUgdGhlIGZvcm0gY29udGVudHMgaW4gYW4gaW50ZXJuYWwgZGF0YWJhc2UuIFlvdSB3aWxsIGFsd2F5cyB1c2UgdGhpcyBkaXNwb3NpdGlvbiBpZiB5b3UgdXNlIHRoZSBmb3JtIHdpdGggRm9ybUJyb3dzZXIuPC9saT4NCjxsaT4qVmFsaWRhdGUgdmlhIEVtYWlsLiBUaGlzIGlzIGEgc3RyYW5nZSBhbmQgcG93ZXJmdWwgZmllbGQuIEl0IHByb3ZpZGVzIHRoZSB1c2VyIGEgbWFuZGF0b3J5IGlucHV0IGZvciB0aGVpciBlbWFpbCBhZGRyZXNzLiBPbmNlIHRoZXkgc3VibWl0IHRoZWlyIGZvcm0sIHRoZSBzdGFuZGFyZCBmb3JtIGRpc3Bvc2l0aW9ucyBhcmUgbm90IHBlcmZvcm1lZCAtLSByYXRoZXIsIGl0IHNlbmQgdGhlIHVzZXIgYW4gZW1haWwgd2l0aCBhIHNwZWNpYWwgY29kZWQgbGluay4gSWYgdGhleSBjbGljayBvbiB0aGUgbGluaywgdGhlIG90aGVyIGZvcm0gaXMgY29uc2lkZXJlZCAmcXVvdDthcHByb3ZlZCwmcXVvdDsgYW5kIHRoZSBvdGhlciBkaXNwb3NpdGlvbnMgYXJlIGFsbCBwZXJmb3JtZWQuPC9saT4NCjxsaT4qV3JpdGUgUmVzdWx0cyB0byBGbGF0IEZpbGUuIFRoaXMgdGFrZXMgdGhlIGZvcm0gcmVzdWx0cyBhbmQgd3JpdGVzIHRoZW0gaW50byBhIHRleHQgZmlsZS4gWW91IG1heQ0Kc2VsZWN0IHRoZSBuYW1lIG9mIHRoZSBmaWxlLCBhbmQgc2V0IGl0cyBmb3JtYXQuIFRoZXNlIGZpbGVzIGFyZSB3cml0dGVuIHRvIHRoZSAmcXVvdDtvdXRwdXQmcXVvdDsgZGlyZWN0b3J5IHVuZGVyIHRoZQ0KbW9kdWxlJiMwMzk7cyBpbnN0YWxsYXRpb24gZGlyZWN0b3J5LCBhc3N1bWluZyB0aGUgd2ViIHNlcnZlciBoYXMgcGVybWlzc2lvbiB0byB3cml0ZSB0aGVyZS4NCjwvdWw+PC9saT48L2xpPjwvdWw+DQoNCjxoMz5FbWFpbCBhbmQgRmxhdCBGaWxlIFRlbXBsYXRlczwvaDM+DQo8cD5NYW4gZGlzcG9zaXRpb24gdHlwZXMgYWxsb3cgeW91IHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZvciB0aGUgZW1haWwgdGhhdCBpcyBnZW5lcmF0ZWQsIG9yIGZvciB0aGUgd2F5IHRoZSByZXN1bHRzIGFyZSB3cml0dGVuIHRvIGEgZmlsZS4gSWYgeW91IG9wdCBub3QgdG8gY3JlYXRlIGEgdGVtcGxhdGUsIHRoZSBGb3JtQnVpbGRlciB3aWxsIHVzZSBpdCYjMDM5O3Mgb3duIGJlc3QgZ3Vlc3MsIHdoaWNoIG1heSBvciBtYXkgbm90IHdvcmsgb3V0IHRvIHlvdXIgbGlraW5nLiBZb3UgY2FuIGFsd2F5cyBjbGljayBvbiB0aGUgJnF1b3Q7Q3JlYXRlIFNhbXBsZSBUZW1wbGF0ZSZxdW90OyBhbmQgdGhlbiBjdXN0b21pemUgdGhlIHJlc3VsdHMuPC9wPg0KPHA+Tm90ZSB0aGF0IG9uY2UgeW91JiMwMzk7dmUgY2hhbmdlZCBhIHRlbXBsYXRlLCBpdCB3aWxsIG5vIGxvbmdlciBhdXRvbWF0aWNhbGx5IGFkZCBuZXcgZmllbGRzLiBGb3IgdGhpcyByZWFzb24sIGl0JiMwMzk7cyB1c3VhbGx5IGJlc3QgdG8gY3JlYXRlIHlvdXIgdGVtcGxhdGVzIGFzIHRoZSBsYXN0IHN0ZXAgb2YgY3JlYXRpbmcgeW91ciBmb3JtLjwvcD4NCg0KPGgzPktub3duIElzc3VlczwvaDM+DQo8dWw+DQo8bGk+U29tZSBmaWVsZCB0eXBlcyBmcm9tIEZlZWRiYWNrRm9ybXMgYXJlIG5vdCBpbXBsZW1lbnRlZCBpbiBGb3JtQnVpbGRlci4gSWYgdGhlcmUgaXMgZGVtYW5kIGZvciB0aGVtLCB0aGV5IHdpbGwgYmUgYWRkZWQuPC9saT4NCjxsaT5Gb3JtQnVpbGRlciBpcyBub3QgeWV0IGludGVncmF0ZWQgd2l0aCBGcm9udEVuZCBVc2Vycy4gSXQgd2lsbCBiZS48L2xpPg0KPGxpPkZvcm1CdWlsZGVyIGNhbm5vdCB5ZXQgYmUgaW5saW5lZC4gVGhhdCBzaG91bGQgYmUgYSBzaW1wbGUgdXBncmFkZSBkb3duIHRoZSBsaW5lLjwvbGk+DQo8bGk+Rm9ybUJ1aWxkZXIgZG9lcyBub3QgeWV0IHN1cHBvcnQgcHJldHR5IHVybHMsIGFsdGhvdWdoIHRoYXQgc2hvdWxkbiYjMDM5O3QgbWF0dGVyIHNpbmNlIHRoZSB1c2VyIHNpZGUgaXMgcHJldHR5IHNpbXBsZS48L2xpPg0KPC91bD4NCg0KPGgzPlRyb3VibGVzaG9vdGluZzwvaDM+DQo8b2w+PGxpPiBGaXJzdCBzdGVwIGlzIHRvIGNoZWNrIHlvdSYjMDM5O3JlIHJ1bm5pbmcgQ01TIDEuMC1zdm4gb3IgbGF0ZXIuPC9saT4NCjxsaT4gU2Vjb25kIHN0ZXAgaXMgdG8gcmVhZCBhbmQgdW5kZXJzdGFuZCB0aGUgY2F2ZWF0IGFib3V0IFdZU0lXWUcgZWRpdG9ycyB1cCBpbiB0aGUNCnNlY3Rpb24gPGVtPkFkZGluZyBhIEZvcm0gdG8gYSBQYWdlPC9lbT4uPC9saT4NCjxsaT4gSWYgeW91JiMwMzk7cmUgbWlzc2luZyBmaWVsZHMgaW4gYW4gZW1haWwgdGhhdCBnZXRzIGdlbmVyYXRlZCwgY2hlY2sgdGhlIGRpc3Bvc2l0aW9uIGZpZWxkJiMwMzk7cyB0ZW1wbGF0ZSwgYW5kIG1ha2Ugc3VyZSB5b3UmIzAzOTtyZSBzcGVjaWZ5aW5nIHRoZSBtaXNzaW5nIGZpZWxkcy4gU2VlbXMgb2J2aW91cywgYnV0IGl0JiMwMzk7cyBhbiBlYXN5IG1pc3Rha2UgdG8gbWFrZS48L2xpPg0KPGxpPiBKdXN0IG1lc3MgYXJvdW5kIGFuZCB0cnkgY2xpY2tpbmcgb24gbGlua3MgYW5kIGljb25zIGFuZCBzdHVmZi4gU2VlIHdoYXQgaGFwcGVucy48L2xpPg0KPGxpPiBMYXN0IHJlc3BvcnQgaXMgdG8gZW1haWwgbWUgb3IgY2F0Y2ggbWUgb24gSVJDIGFuZCB3ZSBjYW4gZ28gZnJvbSB0aGVyZS48L2xpPg0KPC9vbD4gDQo8cD5UaGlzIGlzIGEgZmFpcmx5IGVhcmx5IHZlcnNpb24sIGlmIG5vdCBhIHJhbmsgYmV0YSByZWxlYXNlLCBhbmQgaXQgaXMgcHJvYmFibHkgc3RpbGwgYnVnZ3kuIFdoaWxlIEkmIzAzOTt2ZSBkb25lIGFsbCBJIGNhbg0KdG8gbWFrZSBzdXJlIG5vIGVncmVnaW91cyBidWdzIGhhdmUgY3JlcHQgaW4sIEkgaGF2ZSB0byBhZG1pdCB0aGF0IGR1cmluZyB0ZXN0aW5nLCB0aGlzIHByb2dyYW0NCnJldmVhbGVkIHNldmVuIGNvY2tyb2FjaGVzLCB0d28gZWFyd2lncywgYSBzbWFsbCBmYW1pbHkgb2YgYXBoaWRzLCBhbmQgYSB3YWxraW5nLXN0aWNrIGluc2VjdC4gSXQgYWxzbw0KYXRlIHRoZSBuZWlnaGJvciYjMDM5O3MgbmFzdHkgbGl0dGxlIHlhcCBkb2csIGZvciB3aGljaCBJIHdhcyBpbmFwcHJvcHJpYXRlbHkgZ3JhdGVmdWwuPC9wPg0KPHA+VGhlIGZpbmFsIHJlbGVhc2Ugd2lsbCBpbmNsdWRlIGJ1ZyBmaXhlcywgZG9jdW1lbnRhdGlvbiwgYW5kIHVuY29uZGl0aW9uYWwgbG92ZS48L3A+DQo8aDM+U3VwcG9ydDwvaDM+DQo8cD5UaGlzIG1vZHVsZSBkb2VzIG5vdCBpbmNsdWRlIGNvbW1lcmNpYWwgc3VwcG9ydC4gSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+DQo8dWw+DQo8bGk+Rm9yIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIG1vZHVsZSwgRkFRcywgb3IgdG8gZmlsZSBhIEJ1ZyBSZXBvcnQsIHBsZWFzZSB2aXNpdCB0aGUgQ01TIE1hZGUgU2ltcGxlICA8YSBocmVmPSZxdW90O2h0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcmcXVvdDs+RGV2ZWxvcGVyIEZvcmdlPC9hPi48L2xpPg0KPGxpPlRvIG9idGFpbiBjb21tZXJjaWFsIHN1cHBvcnQsIHBsZWFzZSBzZW5kIGFuIGVtYWlsIHRvIHRoZSBhdXRob3IgYXQgPGEgaHJlZj0mcXVvdDttYWlsdG86c2pnQGNtc21vZHVsZXMuY29tJnF1b3Q7PjxzamdAY21zbW9kdWxlcy5jb20+PC9hPi48L2xpPg0KPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0mcXVvdDtodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmcmcXVvdDs+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uPC9saT4NCjxsaT5UaGUgYXV0aG9yIGNhbiBvZnRlbiBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0mcXVvdDtpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXMmcXVvdDs+Q01TIElSQyBDaGFubmVsPC9hPi48L2xpPg0KPGxpPkxhc3RseSwgeW91IG1heSBoYXZlIHNvbWUgc3VjY2VzcyBlbWFpbGluZyB0aGUgYXV0aG9yIGRpcmVjdGx5IGFuZCBncm92ZWxsaW5nIGZvciBmcmVlIHN1cHBvcnQuPC9saT4gIA0KPC91bD4NCjxwPkFzIHBlciB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkIGFzLWlzLiBQbGVhc2UgcmVhZCB0aGUgdGV4dA0Kb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuPC9wPg0KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+DQo8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMDYsIFNhbXVlbCBHb2xkc3RlaW4gPGEgaHJlZj0mcXVvdDttYWlsdG86c2pnQGNtc21vZHVsZXMuY29tJnF1b3Q7PjxzamdAY21zbW9kdWxlcy5jb20+PC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPg0KPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9JnF1b3Q7aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMJnF1b3Q7PkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+JzsKJGxhbmdbJ2NoYW5nZWxvZyddID0gJwkJICAgIDx1bD4NCgkJICAgIDxsaT5WZXJzaW9vbiAwLjEgLSA4IEp1bHkgMjAwNi4gRXNtYW5lIHYmYXVtbDtsamFsYXNlPC9saT4NCgkJJzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuMTUyNjMzMjA1My4xMTU3MTIxNjE4LjExNTc4OTY3NjMuMTE1ODE2MzIxMS43JzsKJGxhbmdbJ3V0bXonXSA9ICcxNTY4NjEzNTMuMTE1NzEyMTYxOC4xLjEudXRtY2NuPShkaXJlY3QpfHV0bWNzcj0oZGlyZWN0KXx1dG1jbWQ9KG5vbmUpJzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/fi_FI.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0xvbWFrZXJha2VudGFqYSc7CiRsYW5nWydmaWVsZF90eXBlXyddID0gJ0tlbnQmYXVtbDtuIHR5eXBwaSZhdW1sOyBlaSBvbGUgYXNldGV0dHUnOwokbGFuZ1snZmllbGRfdHlwZV9DYXRhbG9nZXJJdGVtc0ZpZWxkJ10gPSAnVmFsaXRzZSB5a3NpIHRhaSB1c2VhbXBpYSBrYXRhbG9naWtvaGRlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmllbGRzZXRFbmQnXSA9ICctIEtlbnR0JmF1bWw7cnlobSZhdW1sO24gKGZpZWxkc2V0KSBhbGt1JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmllbGRzZXRTdGFydCddID0gJy0gS2VudHQmYXVtbDtyeWhtJmF1bWw7biAoZmllbGRzZXQpIGxvcHB1JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkJ10gPSAnVGVrc3Rpa2VudHQmYXVtbDsnOwokbGFuZ1snZmllbGRfdHlwZV9QYXNzd29yZEZpZWxkJ10gPSAnU2FsYXNhbmEnOwokbGFuZ1snZmllbGRfdHlwZV9QYXNzd29yZEFnYWluRmllbGQnXSA9ICdTYWxhc2FuYSB1dWRlbGxlZW4gKHZhcm1lbm51cyknOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0RmllbGRFeHBhbmRhYmxlJ10gPSAnVGVrc3Rpa2VudHQmYXVtbDsgKHVzZWl0YSknOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0QXJlYUZpZWxkJ10gPSAnVGVrc3RpYWx1ZSc7CiRsYW5nWydmaWVsZF90eXBlX0J1dHRvbkZpZWxkJ10gPSAnUGFpbmlrZSc7CiRsYW5nWydmaWVsZF90eXBlX0NoZWNrYm94RmllbGQnXSA9ICdWYWxpbnRhbGFhdGlra28nOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEdyb3VwRmllbGQnXSA9ICdWYWxpbnRhbGFhdGlra29yeWhtJmF1bWw7JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUHVsbGRvd25GaWVsZCddID0gJ0FsYXN2ZXRvdmFsaWtrbyc7CiRsYW5nWydmaWVsZF90eXBlX1llYXJQdWxsRG93bkZpZWxkJ10gPSAnVnVvc2lhbGFzdmV0b3ZhbGlra28nOwokbGFuZ1snZmllbGRfdHlwZV9NdWx0aXNlbGVjdEZpZWxkJ10gPSAnTW9uaXZhbGludGEnOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0ZVBpY2tlckZpZWxkJ10gPSAnT3NhdmFsdGlvdmFsaWtrbyAoVVNBKSc7CiRsYW5nWydmaWVsZF90eXBlX1Byb3ZpbmNlUGlja2VyRmllbGQnXSA9ICdLYW5hZGFuIHByb3ZpbnNzaXQgLXZhbGlra28nOwokbGFuZ1snZmllbGRfdHlwZV9Db3VudHJ5UGlja2VyRmllbGQnXSA9ICdNYWF2YWxpbnRhJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGF0ZVBpY2tlckZpZWxkJ10gPSAnUCZhdW1sO2l2JmF1bWw7eXN2YWxpbnRhJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGltZVBpY2tlckZpZWxkJ10gPSAnQWlrYXZhbGludGEnOwokbGFuZ1snZmllbGRfdHlwZV9SYWRpb0dyb3VwRmllbGQnXSA9ICdWYWxpbnRhcGFsbG9yeWhtJmF1bWw7JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EaXJlY3RvciddID0gJyogTCZhdW1sO2hldCZhdW1sOyB2YXN0YXVrc2V0IGFsYXN2ZXRvdmFsaWtvbiBtdWthaXNlc3RpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25GaWxlRGlyZWN0b3InXSA9ICcqIFRhbGxlbm5hIHZhc3RhdWtzZXQgYWxhc3ZldG92YWxpa29uIG11a2Fpc2VzdGknOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbk11bHRpc2VsZWN0RmlsZURpcmVjdG9yJ10gPSAnKiBUYWxsZW5uYSB2YXN0YXVrc2V0IHVzZWlzaWluIHRpZWRvc3RvaWhpbiBlcmkgdmFsaW50b2plbiBtdWthaXNlc3RpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25QYWdlUmVkaXJlY3RvciddID0gJyogT2hqYWEgc2l2dWxsZSBhbGFzdmV0b3ZhbGlrb24gbXVrYWFuJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbCddID0gJyogTCZhdW1sO2hldCZhdW1sOyB2YXN0YXVrc2V0IGFzZXRldHR1aWhpbiBzJmF1bWw7aGsmb3VtbDtwb3N0aW9zb2l0dGVpc2lpbic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxDb25maXJtYXRpb24nXSA9ICcqIFRhcmtpc3RhcyZhdW1sO2hrJm91bWw7cG9zdGlvc29pdGUnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZyb21FbWFpbEFkZHJlc3NGaWVsZCddID0gJyogUyZhdW1sO2hrJm91bWw7cG9zdGkgJnF1b3Q7UyZhdW1sO2hrJm91bWw7cG9zdGlvc29pdHRlZXN0YSZxdW90OyBrZW50JmF1bWw7c3QmYXVtbDssIGphIGwmYXVtbDtoZXQmYXVtbDsga29waW9pJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25GaWxlJ10gPSAnKiBUYWxsZW5uYSB2YXN0YXVrc2V0IHRpZWRvc3Rvb24nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRhdGFiYXNlJ10gPSAnKiBUYWxsZW5uYSB2YXN0YXVrc2V0IHRpZXRva2FudGFhbic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRm9ybUJyb3dzZXInXSA9ICcqIFRhbGxlbm5hIHR1bG9rc2V0IEZvcm1Ccm93c2VyIHYuMyBtb2R1dWxpbGxlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Vc2VyVGFnJ10gPSAnKiBLdXRzdSBrJmF1bWw7eXR0JmF1bWw7aiZhdW1sO24gbSZhdW1sOyZhdW1sO3JpdHRlbGVtJmF1bWw7JmF1bWw7IHRhZ2lhIGxvbWFra2VlbiB0dWxva3NpbGxhJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Gb3JtJ10gPSAnKiBMJmF1bWw7aGV0JmF1bWw7IHZhcGFhdmFsaW50YWlzZWVuIGxvbWFrZSB0b2ltaW50b29uJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EZWxpdmVyVG9FbWFpbEFkZHJlc3NGaWVsZCddID0gJyogTCZhdW1sO2hldCZhdW1sOyBrJmF1bWw7eXR0JmF1bWw7aiZhdW1sO24gbSZhdW1sOyZhdW1sO3JpdHRlbGVtJmF1bWw7JmF1bWw7biBzJmF1bWw7aGsmb3VtbDtwb3N0aW9zb2l0dGVlc2Vlbic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxTaXRlQWRtaW4nXSA9ICcqIEwmYXVtbDtoZXQmYXVtbDsgcyZhdW1sO2hrJm91bWw7cG9zdGkgQ01TOm4geWxsJmF1bWw7cGl0b2smYXVtbDt5dHQmYXVtbDtqJmF1bWw7bGxlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUGFnZUJyZWFrRmllbGQnXSA9ICctIFNpdnVudmFpaHRvJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmlsZVVwbG9hZEZpZWxkJ10gPSAnVGllZG9zdG9uIGxhdGF1cyc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbEFkZHJlc3NGaWVsZCddID0gJ1MmYXVtbDtoayZvdW1sO3Bvc3RpbiAmcXVvdDtMJmF1bWw7aGV0dCZhdW1sO2omYXVtbDsmcXVvdDsga2VudHQmYXVtbDsnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxBZGRyZXNzQWdhaW5GaWVsZCddID0gJ1MmYXVtbDtoayZvdW1sO3Bvc3RpbiAmcXVvdDtMJmF1bWw7aGV0dCZhdW1sO2omYXVtbDsmcXVvdDsga2VudHQmYXVtbDsgdXVkZWxsZWVuJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsTmFtZUZpZWxkJ10gPSAnUyZhdW1sO2hrJm91bWw7cG9zdGluICZxdW90O05pbWkmcXVvdDsga2VudHQmYXVtbDsmcXVvdDsnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxTdWJqZWN0RmllbGQnXSA9ICdTJmF1bWw7aGsmb3VtbDtwb3N0aW4gJnF1b3Q7QWloZSZxdW90OyBrZW50dCZhdW1sOyc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRpY1RleHRGaWVsZCddID0gJy0gS2lpbnRlJmF1bWw7IHRla3N0aSc7CiRsYW5nWydmaWVsZF90eXBlX1N5c3RlbUxpbmtGaWVsZCddID0gJy0gS2lpbnRlJmF1bWw7IGxpbmtraSc7CiRsYW5nWydmaWVsZF90eXBlX0xpbmtGaWVsZCddID0gJ0xpbmtraSAoSyZhdW1sO3l0dCZhdW1sO2omYXVtbDtuIHN5Jm91bWw7dHQmYXVtbDttJmF1bWw7KSc7CiRsYW5nWydmaWVsZF90eXBlX0hpZGRlbkZpZWxkJ10gPSAnLSBQaWlsb3RldHR1IGtlbnR0JmF1bWw7JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ29tcHV0ZWRGaWVsZCddID0gJy0gTGFza2V0dHUga2VudHQmYXVtbDsnOwokbGFuZ1snZmllbGRfdHlwZV9VbmlxdWVJbnRlZ2VyRmllbGQnXSA9ICctIFlrc2lsJm91bWw7aXYmYXVtbDsga29rb25haXNsdWt1IChzYXJqYW51bWVybyknOwokbGFuZ1snZmllbGRfdHlwZV9Vc2VyVGFnRmllbGQnXSA9ICctIEsmYXVtbDt5dHQmYXVtbDtqJmF1bWw7biBtJmF1bWw7JmF1bWw7cml0dGVsZW0mYXVtbDsgdGFnaWt1dHN1JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ29tcGFueURpcmVjdG9yeUZpZWxkJ10gPSAnWXJpdHlzaGFrZW1pc3RvbiBrZW50dCZhdW1sOyc7CiRsYW5nWydmaWVsZF90eXBlX01vZHVsZUludGVyZmFjZUZpZWxkJ10gPSAnLSBNb2R1dWxpbiBsaWl0dHltJmF1bWw7biBrZW50dCZhdW1sOyc7CiRsYW5nWyd2YWxpZGF0aW9uX25vbmUnXSA9ICdFaSB0YXJraXN0dXN0YSc7CiRsYW5nWyd2YWxpZGF0aW9uX251bWVyaWMnXSA9ICdOdW1lZXJpbmVuJzsKJGxhbmdbJ3ZhbGlkYXRpb25faW50ZWdlciddID0gJ0tva29uYWlzbHVrdSc7CiRsYW5nWyd2YWxpZGF0aW9uX2VtYWlsX2FkZHJlc3MnXSA9ICdTJmF1bWw7aGsmb3VtbDtwb3N0aW9zb2l0ZSc7CiRsYW5nWyd2YWxpZGF0aW9uX3VzcGhvbmUnXSA9ICdQdWhlbGlubnVtZXJvIChVUyknOwokbGFuZ1sndmFsaWRhdGlvbl9tdXN0X2NoZWNrJ10gPSAnVmFsaW50YSB2YWFkaXRhYW4nOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9tYXRjaCddID0gJ1Rhcmtpc3RhIHMmYXVtbDsmYXVtbDtubiZvdW1sO25tdWthaXNlbGxhIGxhdXNla2tlZWxsYSc7CiRsYW5nWyd2YWxpZGF0aW9uX3JlZ2V4X25vbWF0Y2gnXSA9ICdLZW50JmF1bWw7biBhcnZvIGVpIG9sZSBtJmF1bWw7JmF1bWw7cml0dGVseW4gbXVrYWluZW4nOwokbGFuZ1sncmVxdWlyZWRfZmllbGRfbWlzc2luZyddID0gJ1ZhYWRpdHVzdGEga2VudCZhdW1sO3N0JmF1bWw7IHB1dXR0dXUgYXJ2byc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV92YWx1ZSddID0gJ09sZSBoeXYmYXVtbDsgamEgYW5uYSBhcnZvIGtlbnR0JmF1bWw7JmF1bWw7biAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV9udW1iZXInXSA9ICdTeSZvdW1sO3QmYXVtbDsgbnVtZXJvIGtlbnR0JmF1bWw7JmF1bWw7biAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfdmFsaWQnXSA9ICdBcnZvIGVpIG9sZSBzYWxsaXR0dSBrZW50JmF1bWw7c3MmYXVtbDsgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FuX2ludGVnZXInXSA9ICdTeSZvdW1sO3QmYXVtbDsga29rb25haXNsdWt1IGtlbnR0JmF1bWw7JmF1bWw7biAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5fZW1haWwnXSA9ICdTeSZvdW1sO3QmYXVtbDsgcyZhdW1sO2hrJm91bWw7cG9zdGlvc29pdGUga2VudHQmYXVtbDsmYXVtbDtuICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ2VtYWlsX2FkZHJlc3NfZG9lc19ub3RfbWF0Y2gnXSA9ICdTJmF1bWw7aGsmb3VtbDtwb3N0aW9zb2l0dGVlbiBhcnZvIGVpIHZhc3RhYSBhcnZvYSBrZW50JmF1bWw7c3MmYXVtbDsgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfcGhvbmUnXSA9ICdTeSZvdW1sO3QmYXVtbDsgcHVoZWxpbm51bWVybyBrZW50dCZhdW1sOyZhdW1sO24gJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2xvZ2luJ10gPSAnT2xlIGh5diZhdW1sOyBqYSBraXJqYXVkdSBzaXMmYXVtbDtsbGUgayZhdW1sO3l0dCZhdW1sO2VuIHQmYXVtbDt0JmF1bWw7IGxvbWFrZXR0YSc7CiRsYW5nWydub3RfdmFsaWRfZW1haWwnXSA9ICcmcXVvdDslcyZxdW90OyBlaSBuJmF1bWw7eXQmYXVtbDsgb2xldmFuIHMmYXVtbDtoayZvdW1sO3Bvc3Rpb3NvaXRlJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9ub19sb25nZXInXSA9ICdLZW50JmF1bWw7biBtYWtzaW1pcGl0dXVzIG9uICVzIG1lcmtraSZhdW1sOyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYXRfbGVhc3QnXSA9ICdBbm5hIGFydm8sIGpva2Egb24gdiZhdW1sO2hpbnQmYXVtbDsmYXVtbDtuICVzIG1lcmtraSZhdW1sOyc7CiRsYW5nWyd0aXRsZV9saXN0X2RlbGltaXRlciddID0gJ0Vyb3Rpbm1lcmtraSBrZW50aWxsZSwgam90a2EgcGFsYXV0dGF2YXQgZW5lbW0mYXVtbDtuIGt1aW4geWhkZW4gYXJ2b24nOwokbGFuZ1sneW91X25lZWRfcGVybWlzc2lvbiddID0gJ1RhcnZpdHNldCAmcXVvdDslcyZxdW90OyBvaWtldWRldCBrJmF1bWw7eXR0JmF1bWw7JmF1bWw7a3Nlc2kgdCZhdW1sO3QmYXVtbDsgdG9pbWludG9hJzsKJGxhbmdbJ2xhY2twZXJtaXNzaW9uJ10gPSAnU2ludWxsYSBlaSBvbGUgdGFydml0dGF2aWEgb2lrZXVrc2lhJzsKJGxhbmdbJ2ZpZWxkX29yZGVyX3VwZGF0ZWQnXSA9ICdLZW50dGllbiBqJmF1bWw7cmplc3R5cyBwJmF1bWw7aXZpdGV0dHknOwokbGFuZ1snZm9ybV9kZWxldGVkJ10gPSAnTG9tYWtlIHBvaXN0ZXR0dSc7CiRsYW5nWydmaWVsZF9kZWxldGVkJ10gPSAnS2VudHQmYXVtbDsgcG9pc3RldHR1JzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb25fdXBkYXRlZCddID0gJ0FzZXR1a3NldCBwJmF1bWw7aXZpdGV0dHknOwokbGFuZ1sneW91X211c3RfY2hlY2snXSA9ICdTaW51biB0YXJ2aXRzZWUgdmFsaXRhICZxdW90OyVzJnF1b3Q7IGphdGthYWtzZXNpJzsKJGxhbmdbJ211c3Rfc3BlY2lmeV9vbmVfZGVzdGluYXRpb24nXSA9ICdWJmF1bWw7aGludCZhdW1sOyZhdW1sO24geWtzaSBrb2hkZSB0YXJ2aXRhYW4nOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9mb3JtJ10gPSAnSGFsdWF0a28gdmFybWFzdGkgcG9pc3RhYSBsb21ha2tlZW4gJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9maWVsZCddID0gJ0hhbHVhdGtvIHZhcm1hc3RpIHBvaXN0YWEga2VudCZhdW1sO24gJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1snbm90aWNlX3NlbGVjdF90eXBlJ10gPSAnTGlzJmF1bWw7YXNldHVrc2V0IGVpdiZhdW1sO3Qgb2xlIHZhbGl0dGF2aXNzYSBlbm5lbiBrZW50JmF1bWw7biB0eXlwaW4gdmFsaW50YWEnOwokbGFuZ1snZmllbGRfbmFtZV9pbl91c2UnXSA9ICdLZW50JmF1bWw7biBuaW1pICZxdW90OyVzJnF1b3Q7IG9uIGpvIGsmYXVtbDt5dCZvdW1sO3NzJmF1bWw7Lic7CiRsYW5nWydmaWVsZF9ub19uYW1lJ10gPSAnS2VudCZhdW1sO2xsJmF1bWw7IHR1bGVlIG9sbGEgbmltaSc7CiRsYW5nWydhbm9ueW1vdXMnXSA9ICdUdW50ZW1hdG9uJzsKJGxhbmdbJ2FiYnJldmlhdGlvbl9sZW5ndGgnXSA9ICdwaXR1dXM6ICVzJzsKJGxhbmdbJ2JveGVzJ10gPSAnJXMgbGFhdGlra29hJzsKJGxhbmdbJ29wdGlvbnMnXSA9ICclcyB2YWxpbnRhYSc7CiRsYW5nWyd0ZXh0X2xlbmd0aCddID0gJyVzIG1lcmtraSZhdW1sOy4nOwokbGFuZ1snb3JkZXInXSA9ICdKJmF1bWw7cmplc3R5cyc7CiRsYW5nWyd1bnNwZWNpZmllZCddID0gJ1tlaSBhbm5ldHR1XSc7CiRsYW5nWydhZGRlZCddID0gJ2xpcyZhdW1sO3R0eSc7CiRsYW5nWyd1cGRhdGVkJ10gPSAncCZhdW1sO2l2aXRldHR5JzsKJGxhbmdbJ3NvcnRfb3B0aW9ucyddID0gJ0omYXVtbDtyamVzdHlzIGFzZXR1a3NldCB0dWxvc3RlZXNzYSc7CiRsYW5nWydzZWxlY3Rfb25lJ10gPSAnVmFsaXRzZSB5a3NpJzsKJGxhbmdbJ3NlbGVjdF90eXBlJ10gPSAnVmFsaXRzZSB0eXlwcGknOwokbGFuZ1sndG8nXSA9ICdWYXN0YWFub3R0YWphJzsKJGxhbmdbJ3llcyddID0gJ0t5bGwmYXVtbDsnOwokbGFuZ1snbm8nXSA9ICdFaSc7CiRsYW5nWydyZWNpcGllbnRzJ10gPSAndmFzdGFhbm90dGFqYXQnOwokbGFuZ1snZmlsZV9jb3VudCddID0gJyVzIG1haGRvbGxpc3RhIHRpZWRvc3RvYSc7CiRsYW5nWydkZXN0aW5hdGlvbl9jb3VudCddID0gJyVzIG0mYXVtbDsmYXVtbDtyJmF1bWw7bnAmYXVtbDsmYXVtbDt0JmF1bWw7JzsKJGxhbmdbJ3NhdmUnXSA9ICdUYWxsZW5uYSc7CiRsYW5nWydhZGQnXSA9ICdMaXMmYXVtbDsmYXVtbDsnOwokbGFuZ1sndXBkYXRlJ10gPSAnUCZhdW1sO2l2aXQmYXVtbDsnOwokbGFuZ1snc2F2ZV9hbmRfY29udGludWUnXSA9ICdUYWxsZW5uYSBqYSBqYXRrYSBtdW9ra2F1c3RhJzsKJGxhbmdbJ2luZm9ybWF0aW9uJ10gPSAnVGllZG90JzsKJGxhbmdbJ2F1dG9tYXRpYyddID0gJ0F1dG9tYWF0dGluZW4nOwokbGFuZ1snZm9ybXMnXSA9ICdMb21ha2tlZXQnOwokbGFuZ1snZm9ybSddID0gJ0xvbWFrZSAlcyc7CiRsYW5nWydjb25maWd1cmF0aW9uJ10gPSAnQXNldHVrc2V0JzsKJGxhbmdbJ2ZpZWxkX3JlcXVpcmVtZW50X3VwZGF0ZWQnXSA9ICdLZW50JmF1bWw7biAmcXVvdDt2YWFkaXR0dSZxdW90OyB0aWxhIHAmYXVtbDtpdml0ZXR0eSc7CiRsYW5nWydtYXhpbXVtX3NpemUnXSA9ICdNYWtzaW1pa29rbyc7CiRsYW5nWydwZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ1AmYXVtbDsmYXVtbDt0dGVldCc7CiRsYW5nWydwZXJtaXR0ZWRfZmlsZXR5cGVzJ10gPSAnU2FsbGl0dXQgdGllZG9zdG90eXlwaXQnOwokbGFuZ1snZmlsZV90b29fbGFyZ2UnXSA9ICdMJmF1bWw7aGV0ZXR0eSB0aWVkb3N0byBvbiBsaWlhbiBzdXVyaS4gU3V1cmluIHNhbGxpdHR1IGtva28gb246JzsKJGxhbmdbJ2lsbGVnYWxfZmlsZV90eXBlJ10gPSAnVGllZG9zdG9uIHR5eXBwaSZhdW1sOyBlaSBvbGUgc2FsbGl0dHUuIFRhcmtpc3RhIHRpZWRvc3RvbiB0eXlwcGkuJzsKJGxhbmdbJ3VwbG9hZCddID0gJ0xhdGFhJzsKJGxhbmdbJ2Zvcm1faW1wb3J0ZWQnXSA9ICdMb21ha2UgdHVvdHUnOwokbGFuZ1snZm9ybV9pbXBvcnRfZmFpbGVkJ10gPSAnTG9tYWtrZWVuIHR1b250aSBlcCZhdW1sO29ubmlzdHVpLiBYTUwtdGllZG9zdG9uIG11b2Rvc3NhIG9saSB2aXJoZS4nOwokbGFuZ1sncm93cyddID0gJyVzIHJpdmkmYXVtbDsnOwokbGFuZ1snY29scyddID0gJyVzIHNhcmFrZXR0YSc7CiRsYW5nWycxMl9ob3VyJ10gPSAnMTItdHVubmluIGtlbGxvJzsKJGxhbmdbJzI0X2hvdXInXSA9ICcyNC10dW5uaW4ga2VsbG8nOwokbGFuZ1snaG91ciddID0gJ1R1bnRpJzsKJGxhbmdbJ21pbiddID0gJ01pbnV1dHRpJzsKJGxhbmdbJ21lcmlkJ10gPSAnTWVyaWRpYWFuaSc7CiRsYW5nWydkYXRlX3JhbmdlJ10gPSAnQWx1ZTogJXMgLSAlcyc7CiRsYW5nWyd0aGFua3MnXSA9ICdLaWl0b3MuIExvbWFrZSBvbiB0YWxsZW5uZXR0dSc7CiRsYW5nWydlZGl0J10gPSAnTXVva2thYSc7CiRsYW5nWydkZWxldGUnXSA9ICdQb2lzdGEnOwokbGFuZ1snZGF5J10gPSAnUCZhdW1sO2l2JmF1bWw7JzsKJGxhbmdbJ21vbiddID0gJ0t1dWthdXNpJzsKJGxhbmdbJ3llYXInXSA9ICdWdW9zaSc7CiRsYW5nWydub25lJ10gPSAnKGVpIG1pdCZhdW1sOyZhdW1sO24pJzsKJGxhbmdbJ2NzcyddID0gJ0NTUyc7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHV1bGluIGFzZW5udXMgcG9pc3RldHR1JzsKJGxhbmdbJ2luc3RhbGxlZCddID0gJ01vZHV1bGluIHZlcnNpbyAlcyBhc2VubmV0dHUuJzsKJGxhbmdbJ3VwZ3JhZGVkJ10gPSAnTW9kdXVsaSBwJmF1bWw7aXZpdGV0dHkgdmVyc2lvb24gJXMuJzsKJGxhbmdbJ2J1dHRvbl9wcmV2aW91cyddID0gJ1Rha2Fpc2luLi4uJzsKJGxhbmdbJ2J1dHRvbl9zdWJtaXQnXSA9ICdMJmF1bWw7aGV0JmF1bWw7IGxvbWFrZSc7CiRsYW5nWydidXR0b25fY29udGludWUnXSA9ICdKYXRrYSc7CiRsYW5nWyd2YWx1ZV9jaGVja2VkJ10gPSAnVmFsaXR0dSc7CiRsYW5nWyd2YWx1ZV91bmNoZWNrZWQnXSA9ICdFaSB2YWxpdHR1JzsKJGxhbmdbJ3RhYl9tYWluJ10gPSAnUCZhdW1sOyZhdW1sO3NpdnUnOwokbGFuZ1sndGFiX3N5bWJvbCddID0gJ0xvbWFra2VlbiB0dWxvc3R1c2FzZXR1a3NldCc7CiRsYW5nWyd0YWJfc3VibWl0J10gPSAnTG9tYWtrZWVuIGwmYXVtbDtoZXR5cyc7CiRsYW5nWyd0YWJfY2FwdGNoYSddID0gJ0NhcHRjaGEtYXNldHVrc2V0JzsKJGxhbmdbJ3RhYl9hZHZhbmNlZCddID0gJ0xpcyZhdW1sO2FzZXR1a3NldCc7CiRsYW5nWyd0YWJfdGVtcGxhdGVsYXlvdXQnXSA9ICdMb21ha2tlZW4gbWFsbGknOwokbGFuZ1sndGFiX3N1Ym1pc3Npb250ZW1wbGF0ZSddID0gJ0wmYXVtbDtoZXR5c21hbGxpJzsKJGxhbmdbJ3RhYl91ZHQnXSA9ICdVRFQtaW50ZWdyYWF0aW8nOwokbGFuZ1snY2FudXNlX3NtYXJ0eSddID0gJzxlbT5UJmF1bWw7c3MmYXVtbDsga2VudCZhdW1sO3NzJmF1bWw7IHZvaXQgayZhdW1sO3l0dCZhdW1sOyZhdW1sOyBzbWFydHktbXV1dHR1amlhPC9lbT4nOwokbGFuZ1snYWRkX29wdGlvbnMnXSA9ICdMaXMmYXVtbDsmYXVtbDsgdmFsaW50b2phJzsKJGxhbmdbJ2RlbGV0ZV9vcHRpb25zJ10gPSAnUG9pc3RhIHZhbGl0dXQgdmFsaW5uYXQnOwokbGFuZ1snYWRkX2NoZWNrYm94ZXMnXSA9ICdMaXMmYXVtbDsmYXVtbDsgdmFsaW50YWxhYXRpa29pdGEnOwokbGFuZ1snZGVsZXRlX2NoZWNrYm94ZXMnXSA9ICdQb2lzdGEgdmFsaXR1dCB2YWxpbnRhbGFhdGlrb3QnOwokbGFuZ1snYWRkX2FkZHJlc3MnXSA9ICdMaXMmYXVtbDsmYXVtbDsgdXVzaSBvc29pdGUnOwokbGFuZ1snZGVsZXRlX2FkZHJlc3MnXSA9ICdQb2lzdGEgdmFsaXR1dCBvc29pdHRlZXQnOwokbGFuZ1snYWRkX2Rlc3RpbmF0aW9uJ10gPSAnTGlzJmF1bWw7JmF1bWw7IHV1c2kga29oZGUnOwokbGFuZ1snZGVsZXRlX2Rlc3RpbmF0aW9uJ10gPSAnUG9pc3RhIHZhbGl0dXQga29odGVldCc7CiRsYW5nWydzdXNwZWN0ZWRfc3BhbSddID0gJ0lQLW9zb2l0dGVlc3Rhc2kgb24gdHVsbHV0IGxpaWFuIG1vbnRhIHMmYXVtbDtoayZvdW1sO3Bvc3RpYS4gUm9za2Fwb3N0aXR1bm5pc3R1cyBvbiBlc3QmYXVtbDtueXQgbCZhdW1sO2hldHlrc2V0Lic7CiRsYW5nWydzdXNwZWN0ZWRfc3BhbV9sb2cnXSA9ICdNYWhkb2xsaW5lbiByb3NrYXBvc3RpIElQLW9zb2l0dGVlc3RhICVzIGVzdGV0dHkuJzsKJGxhbmdbJ3Jlb3JkZXInXSA9ICdVdWRlbGxlZW5qJmF1bWw7cmplc3QmYXVtbDsga2VudHRpJmF1bWw7JzsKJGxhbmdbJ2NhbmNlbCddID0gJ1BlcnUnOwokbGFuZ1sndmFsdWVfc2V0J10gPSAnQXJ2bzogJXMnOwokbGFuZ1snaGVscF9jYXRhbG9nZXJfYXR0cmlidXRlX2ZpZWxkcyddID0gJ0FsbGEgb24gbGlzdGF0dHVuYSBhdHRyaWJ1dXR0ZWphLCBqb3RrYSBvdmF0IGsmYXVtbDt5dCZvdW1sO3NzJmF1bWw7IEthdGFsb29naW1vZHV1aXNzYS48YnIgLz5Wb2l0IG15Jm91bWw7cyB2YWlodG9laHRvaXNlc3RpIGFudGFhIHNhbGxpdHR1amEgYXJ2b2plbiBsYWFqdXVrc2lhLCBhcnZvamEgdGFpIHVzZWl0YSBhcnZvamEsIGpvaWxsYSBzdW9kYXRldGFhbiBsaXN0YSBrb2h0ZWlzdGEsIGpvdGthIGsmYXVtbDt5dHQmYXVtbDtqJmF1bWw7bGxlIG4mYXVtbDt5dGV0JmF1bWw7JmF1bWw7bi48YnIvPg0KPGJyLz4NCjxzdHJvbmc+QXJ2b2plbiBsYWFqdXVkZXQ6PC9zdHJvbmc+PGJyLz4NCkxhYWp1dWRldCB2b2l2YXQgb2xsYSBtJmF1bWw7JmF1bWw7cml0ZWx0eWx0JmF1bWw7IG1pbmltaS0gamEgbWFrc2ltaWFydm9qZW4gbXVrYWFuIHQmYXVtbDtsbCZhdW1sOyBzeW50YWtzaWxsYTogJnF1b3Q7cmFuZ2U6IG1pbmFydm8gdG8gbWF4YXJ2byZxdW90Ozxici8+DQo8YnIvPg0KPHN0cm9uZz5Vc2VhbXBpIGFydm86PC9zdHJvbmc+PGJyLz4NCk0mYXVtbDsmYXVtbDtyaXRlbGwmYXVtbDtrc2VzaSB1c2VhbW1hbiBhcnZvbiBhdHR0cmlidXV0aWxsZSwgayZhdW1sO3l0JmF1bWw7IHN5bnRha3NpYSAmcXVvdDttdWx0aTogYXJ2bzF8YXJ2bzJ8YXJ2bzMmcXVvdDs8YnIvPg0KPGJyLz4NCjxzdHJvbmc+UGlpbG90ZXR0dWplbiBrZW50dGllbiBhcnZvdDwvc3Ryb25nPjxici8+DQpNJmF1bWw7JmF1bWw7cml0ZWxsJmF1bWw7a3NpIGFydm9uIHBpaWxvdGV0dXN0YSBrZW50JmF1bWw7c3QmYXVtbDssIGsmYXVtbDt5dCZhdW1sOyBzeW50YWtzaWEgeyRmbGRfaWR9PGJyLz4NCjxici8+JzsKJGxhbmdbJ2hlbHBfbmFtZV9yZWdleCddID0gJ1MmYXVtbDsmYXVtbDtubiZvdW1sO2xsaW5lbiBtdXV0dHVqYSwgam9rYSBzYWxsaWkga2F0YWxvZ2lrb2h0ZWVkZW4gc3VvZGF0dGFtaXNlbiBuaW1lbiBtdWthYW4nOwokbGFuZ1snaGVscF9maWVsZF9oZWlnaHQnXSA9ICdNb25pdmFsaW50YWtlbnQmYXVtbDtuIGtvcmtldXMnOwokbGFuZ1sndGl0bGVfbmFtZV9yZWdleCddID0gJ0thdGFsb2dpa29odGVlbiBuaW1lbiBzJmF1bWw7JmF1bWw7bm4mb3VtbDtsbGluZW4gbXV1dHR1amEnOwokbGFuZ1sndGl0bGVfZmllbGRfaGVpZ2h0J10gPSAnS2VudCZhdW1sO24ga29ya2V1cyc7CiRsYW5nWyd0aXRsZV9maWxlX3BhdGgnXSA9ICdUYWxsZW5udXNrYW5zaW8gdGllZG9zdG9pbGxlJzsKJGxhbmdbJ3RpdGxlX3VkdF9uYW1lJ10gPSAnSyZhdW1sO3l0dCZhdW1sO2omYXVtbDtuIG0mYXVtbDsmYXVtbDtyaXR0ZWxlbSZhdW1sOyB0YWdpJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZHNfZGVzdHBhZ2UnXSA9ICdTaXZ1LCBqb2xsZSBwYWxhdGFhbiBsJmF1bWw7aGV0eXNsaW5rZWlzdCZhdW1sOyc7CiRsYW5nWyd0aXRsZV91cGxvYWRtb2R1bGVfc3VtbWFyeSddID0gJ0wmYXVtbDtoZXRldHR5IGxvbWFrZXJha2VudGFqYW4ga2F1dHRhJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZHNfY2F0ZWdvcnknXSA9ICdMJmF1bWw7aGV0eWtzZW4ga2F0ZWdvcmlhJzsKJGxhbmdbJ3RpdGxlX3NlbmR0b191cGxvYWRzJ10gPSAnTCZhdW1sO2hldCZhdW1sOyB0JmF1bWw7bSZhdW1sOyB0aWVkb3N0byBsJmF1bWw7aGV0eXNtb2R1dWxpbGxlJzsKJGxhbmdbJ3RpdGxlX2xlZ2VuZCddID0gJ1NlbGl0ZSc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX2xlbmd0aCddID0gJ01ha3NpbWlwaXR1dXMnOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfbGFiZWwnXSA9ICdWYWxpbnRhbGFhdGlrb24gb3RzaWtrbyc7CiRsYW5nWyd0aXRsZV9yYWRpb19sYWJlbCddID0gJ1ZhbGludGFwYWxsb24gb3RzaWtrbyc7CiRsYW5nWyd0aXRsZV9jaGVja2VkX3ZhbHVlJ10gPSAnQXJ2byB2YWxpdHR1bmEnOwokbGFuZ1sndGl0bGVfdW5jaGVja2VkX3ZhbHVlJ10gPSAnQXJ2byB2YWxpdHNlbWF0dG9tYW5hJzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2RldGFpbHMnXSA9ICdWYWxpbnRhbGFhdGlra29yeWhtJmF1bWw7biB0aWVkb3QnOwokbGFuZ1sndGl0bGVfZGVsZXRlJ10gPSAnUG9pc3RhPyc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rfb25lX21lc3NhZ2UnXSA9ICcmcXVvdDtWYWxpdHNlIHlrc2kmcXVvdDsgdGVrc3RpJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl92YWx1ZSddID0gJ1ZhbGlubmFuIGFydm8nOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX2Rpc3BsYXluYW1lJ10gPSAnVmFsaW5uYW4gbiZhdW1sO3l0ZXR0JmF1bWw7diZhdW1sOyBuaW1pJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl9zdWJqZWN0J10gPSAnVmFsaW5uYW4gb3RzaWtrbyc7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9jb3VudHJ5J10gPSAnT2xldHVzdmFsaW50YSc7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9zdGF0ZSddID0gJ09sZXR1c3ZhbGludGEnOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfcHJvdmluY2UnXSA9ICdPbGV0dXN2YWxpbnRhJzsKJGxhbmdbJ3RpdGxlX29wdGlvbl9uYW1lJ10gPSAnVmFsaW5uYW4gbmltaSc7CiRsYW5nWyd0aXRsZV9vcHRpb25fdmFsdWUnXSA9ICdMJmF1bWw7aGV0ZXR0eSBhcnZvJzsKJGxhbmdbJ3RpdGxlX3B1bGxkb3duX2RldGFpbHMnXSA9ICdBbGFzdmV0b3ZhbGlrb24gdmFsaW5uYXQnOwokbGFuZ1sndGl0bGVfbXVsdGlzZWxlY3RfZGV0YWlscyddID0gJ01vbml2YWxpbm5hbiB2YWlodG9laGRvdCc7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9hZGRyZXNzJ10gPSAnVmFzdGFhbm90dGFqYW4gcyZhdW1sO2hrJm91bWw7cG9zdGlvc29pdGUnOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fZmlsZW5hbWUnXSA9ICdLb2hkZXRpZWRvc3RvbiBuaW1pJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fbmFtZSddID0gJyZxdW90O05pbWkmcXVvdDsgcyZhdW1sO2hrJm91bWw7cG9zdGlpbic7CiRsYW5nWyd0aXRsZV9yZWxheGVkX2VtYWlsX3JlZ2V4J10gPSAnSyZhdW1sO3l0JmF1bWw7IGwmb3VtbDt5cyZhdW1sOyZhdW1sOyBzJmF1bWw7aGsmb3VtbDtwb3N0aW9zb2l0dGVlbiB0YXJraXN0dXN0YSc7CiRsYW5nWyd0aXRsZV9yZWxheGVkX3JlZ2V4X2xvbmcnXSA9ICdLJmF1bWw7eXQmYXVtbDsgbCZvdW1sO3lzJmF1bWw7JmF1bWw7IHMmYXVtbDtoayZvdW1sO3Bvc3Rpb3NvaXR0ZWVuIHRhcmtpc3R1c3RhIChlc2ltZXJraWtzaSBzYWxsaSAmcXVvdDt4QHkmcXVvdDssIHNlbiBzaWphYW4gZXR0JmF1bWw7IHZhYWRpdGFhbiZxdW90O3hAeS50bGQmcXVvdDspJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fYWRkcmVzcyddID0gJyZxdW90O0wmYXVtbDtoZXR0JmF1bWw7aiZhdW1sO24gb3NvaXRlJnF1b3Q7IHMmYXVtbDtoayZvdW1sO3Bvc3RpaW4nOwokbGFuZ1sndGl0bGVfZW1haWxfZW5jb2RpbmcnXSA9ICdTJmF1bWw7aGsmb3VtbDtwb3N0aW4gbWVya2lzdCZvdW1sO2tvb2RhdXMnOwokbGFuZ1sndGl0bGVfZGlyZWN0b3JfZGV0YWlscyddID0gJ0FsYXN2ZXRvdmFsaWtrb29uIHBlcnVzdHV2YXQgbCZhdW1sO2hldHQmYXVtbDtqJmF1bWw7biB0aWVkb3QnOwokbGFuZ1sndGl0bGVfZmlsZV9uYW1lJ10gPSAnVGllZG9zdG9uaW1pJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX3N1YmplY3QnXSA9ICdTJmF1bWw7aGsmb3VtbDtwb3N0aW4gYWloZSc7CiRsYW5nWyd0aXRsZV9mb3JtX25hbWUnXSA9ICdMb21ha2tlZW4gbmltaSc7CiRsYW5nWyd0aXRsZV9mb3JtX3N0YXR1cyddID0gJ0xvbWFra2VlbiB0aWxhJzsKJGxhbmdbJ3RpdGxlX3JlYWR5X2Zvcl9kZXBsb3ltZW50J10gPSAnVmFsbWlzIGsmYXVtbDt5dGV0dCZhdW1sO3YmYXVtbDtrc2knOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MSddID0gJ0VpIHZhbG1pcyc7CiRsYW5nWyd0aXRsZV9yZWRpcmVjdF9wYWdlJ10gPSAnU2l2dSwgam9sbGUgbCZhdW1sO2hldHlrc2VuIGomYXVtbDtsa2VlbiBzaWlycnl0JmF1bWw7JmF1bWw7bic7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkyJ10gPSAnTGlzJmF1bWw7JmF1bWw7IGxvbWFra2Vlc2VlbiBrZW50dCZhdW1sOywgam90dGEgayZhdW1sO3l0dCZhdW1sO2omYXVtbDtuIGFudGFtYSB0aWV0byBrJmF1bWw7c2l0ZWxsJmF1bWw7JmF1bWw7bi4gVm9pdCc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHlfbGluayddID0gJ2smYXVtbDt5dHQmYXVtbDsmYXVtbDsgdCZhdW1sO3QmYXVtbDsgb2lrb3BvbGt1YSc7CiRsYW5nWyd0aXRsZV9mb3JtX2FsaWFzJ10gPSAnTG9tYWtrZWVuIGFsaWFzJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2FsaWFzX3Nob3J0J10gPSAnQWxpYXMnOwokbGFuZ1sndGl0bGVfZm9ybV9maWVsZHMnXSA9ICdMb21ha2tlZW4ga2VudCZhdW1sO3QnOwokbGFuZ1sndGl0bGVfZmllbGRfaWQnXSA9ICdLZW50JmF1bWw7biB0dW5uaXN0ZSc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkYWxpYXNlcyddID0gJ04mYXVtbDt5dCZhdW1sOyBrZW50dGllbiBhbGlha3NldCc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkYWxpYXNlc19sb25nJ10gPSAnVCZhdW1sO20mYXVtbDtuIGtsaWtrYWFtaW5lbiBuJmF1bWw7eXR0JmF1bWw7JmF1bWw7IGtlbnR0aWVuIGFsaWFrc2V0LCBrdW4gbGlzJmF1bWw7dCZhdW1sOyZhdW1sO24gdGFpIG11b2thdGFhbiBsb21ha2V0dGEnOwokbGFuZ1sndGl0bGVfZmllbGRfbmFtZSddID0gJ0tlbnQmYXVtbDtuIG5pbWknOwokbGFuZ1sndGl0bGVfZmllbGRfYWxpYXMnXSA9ICdLZW50JmF1bWw7biBhbGlhcyBqYSBET00gaWQgKENTUyBpZCkgYXR0cmlidXV0dGknOwokbGFuZ1sndGl0bGVfcmFkaW9ncm91cF9kZXRhaWxzJ10gPSAnVmFsaW50YXJ5aG0mYXVtbDtuIHRpZWRvdCc7CiRsYW5nWyd0aXRsZV9maWVsZF90eXBlJ10gPSAnS2VudCZhdW1sO24gdHl5cHBpJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTMnXSA9ICdsdW9kYWtzZXNpIGxvbWFra2VlbiBrJmF1bWw7c2l0dGVseWtlbnQmYXVtbDtuJzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZm9ybSddID0gJ0xpcyZhdW1sOyZhdW1sOyB1dXNpIGxvbWFrZSc7CiRsYW5nWyd0aXRsZV9zaG93X3ZlcnNpb24nXSA9ICdOJmF1bWw7eXQmYXVtbDsgbG9tYWtlLWVkaXRvcmluIHZlcnNpbz8nOwokbGFuZ1sndGl0bGVfc2hvd192ZXJzaW9uX2xvbmcnXSA9ICdUJmF1bWw7bSZhdW1sOyBsaWl0dCZhdW1sOyZhdW1sOyBhc2VubmV0dHVuYSBvbGV2YW4gTG9tYWtlcmFrZW50YWphbiB2ZXJzaW9uIGtvbW1lbnR0aWluIHZpcmhlaWRlbiBldHNpbWlzZW4gaGVscG90dGFtaXNla3NpJzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZmllbGQnXSA9ICdMaXMmYXVtbDsmYXVtbDsgdXVzaSBrZW50dCZhdW1sOyc7CiRsYW5nWyd0aXRsZV9mb3JtX3N1Ym1pdF9idXR0b24nXSA9ICdMb21ha2tlZW4gTCZhdW1sO2hldCZhdW1sOy1wYWluaWtrZWVuIHRla3N0aSc7CiRsYW5nWyd0aXRsZV9idXR0b25fdGV4dCddID0gJ1BhaW5pa2tlZW4gdGVrc3RpJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5J10gPSAnTGlzJmF1bWw7JmF1bWw7IGxvbWFra2VlbiBMJmF1bWw7aGV0JmF1bWw7LXBhaW5pa2tlZXNlZW4gSmF2YVNjcmlwdC1rb29kaSwgam9rYSBhdXR0YWEgZXN0JmF1bWw7bSZhdW1sOyZhdW1sO24gdXNlYW1tYXQgbCZhdW1sO2hldHlrc2V0Pyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eV9oZWxwJ10gPSAnTGlzJmF1bWw7JmF1bWw7IHR1cnZha29vZGknOwokbGFuZ1sndGl0bGVfZm9ybV9uZXh0X2J1dHRvbiddID0gJ0xvbWFra2VlbiBTZXVyYWF2YS1wYWluaWtrZWVuIHRla3N0aSAoSyZhdW1sO3l0ZXQmYXVtbDsmYXVtbDtuIHZhaW4gbW9uaXNpdnVpc2lsbGEgbG9tYWtrZWlsbGEpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcHJldl9idXR0b24nXSA9ICdMb21ha2tlZW4gRWRlbGxpbmVuLXBhaW5pa2tlZW4gdGVrc3RpIChLJmF1bWw7eXRldCZhdW1sOyZhdW1sO24gdmFpbiBtb25pc2l2dWlzaWxsYSBsb21ha2tlaWxsYSknOwokbGFuZ1sndGl0bGVfZmllbGRfdmFsaWRhdGlvbiddID0gJ0tlbnQmYXVtbDtuIHRhcmtpc3R1cyc7CiRsYW5nWyd0aXRsZV9maWVsZF90b192YWxpZGF0ZSddID0gJ1Rhcmtpc3RldHRhdmEga2VudHQmYXVtbDsnOwokbGFuZ1sndGl0bGVfZmllbGRfY3NzX2lkJ10gPSAnQ1NTLWlkIHQmYXVtbDtsbGUga2VudCZhdW1sO2xsZSc7CiRsYW5nWyd0aXRsZV9mb3JtX2Nzc19jbGFzcyddID0gJ0xvbWFra2VlbiBDU1MtbHVva2thJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2Nzc19jbGFzcyddID0gJ0tlbnQmYXVtbDtuIENTUy1sdW9ra2EnOwokbGFuZ1sndGl0bGVfZm9ybV9wcmVkaXNwbGF5X3VkdCddID0gJ0smYXVtbDt5dHQmYXVtbDtqJmF1bWw7biBtJmF1bWw7JmF1bWw7cml0dGVsZW0mYXVtbDsgdGFnaSwgam90YSBrdXRzdXRhYW4gZW5uZW4ga3VpbiBsb21ha2UgbiZhdW1sO3l0ZXQmYXVtbDsmYXVtbDtuIGVuc2ltbSZhdW1sO2luZW4ga2VycmFuIChrdXRzdXRhYW4gdmFpbiBrZXJyYW4pJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcHJlZGlzcGxheV9lYWNoX3VkdCddID0gJ0smYXVtbDt5dHQmYXVtbDtqJmF1bWw7biBtJmF1bWw7JmF1bWw7cml0dGVsZW0mYXVtbDsgdGFnaSwgam90YSBrdXRzdXRhYW4gZW5uZW4ga3VpbiBsb21ha2UgbiZhdW1sO3l0ZXQmYXVtbDsmYXVtbDtuIGVuc2ltbSZhdW1sO2luZW4ga2VycmFuIChrdXRzdXRhYW4gam9rYWlzZWxsYSBtb25pc2l2dWlzZW4gbG9tYWtrZWVuIHNpdnVsbGEpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdmFsaWRhdGVfdWR0J10gPSAnSyZhdW1sO3l0dCZhdW1sO2omYXVtbDtuIG0mYXVtbDsmYXVtbDtyaXR0ZWxlbSZhdW1sOyB0YWdpLCBqb3RhIGt1dHN1dGFhbiBsb21ha2tlZW4gdGFya2lzdHVrc2Vzc2EnOwokbGFuZ1sndGl0bGVfZm9ybV9yZXF1aXJlZF9zeW1ib2wnXSA9ICdWYWFkaXR0dWplbiBrZW50dGllbiBzeW1ib2xpJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkJ10gPSAnVmFhZGl0YWFuJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2xvbmcnXSA9ICdWYWFkaXRhYW4gdmFzdGF1cyB0JmF1bWw7aCZhdW1sO24ga2VudHQmYXVtbDsmYXVtbDtuJzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWwnXSA9ICdQaWlsb3RhIG90c2lra28nOwokbGFuZ1sndGl0bGVfaGlkZV9sYWJlbF9sb25nJ10gPSAnUGlpbG90YSBrZW50JmF1bWw7biBuaW1pIGxvbWFra2VlbGxhJzsKJGxhbmdbJ3RpdGxlX3RleHQnXSA9ICdOJmF1bWw7eXRldHQmYXVtbDt2JmF1bWw7IGtpaW50ZSZhdW1sOyB0ZWtzdGknOwokbGFuZ1sndGl0bGVfZmllbGRfcmVnZXgnXSA9ICdLJmF1bWw7eXRldHQmYXVtbDt2JmF1bWw7IHMmYXVtbDsmYXVtbDtubiZvdW1sO25tdWthaW5lbiBsYXVzZWtlJzsKJGxhbmdbJ3RpdGxlX2xpbmVzX3RvX3Nob3cnXSA9ICdLdWlua2EgbW9udGEgcml2aSZhdW1sOyBuJmF1bWw7eXRldCZhdW1sOyZhdW1sO24nOwokbGFuZ1sndGl0bGVfcmVhZF9vbmx5J10gPSAnVmFpbiBsdWt1JzsKJGxhbmdbJ25vX2RlZmF1bHQnXSA9ICdFaSBvbGV0dXN0YSc7CiRsYW5nWydyZWRpcmVjdF9hZnRlcl9hcHByb3ZhbCddID0gJ1NpdnUsIGpvbGxlIHNpaXJyeXQmYXVtbDsmYXVtbDtuIGh5diZhdW1sO2tzeW5uJmF1bWw7biBqJmF1bWw7bGtlZW4nOwokbGFuZ1sndGl0bGVfcmVnZXhfaGVscCddID0gJ1QmYXVtbDt0JmF1bWw7IHMmYXVtbDsmYXVtbDtubiZvdW1sO2xsaXN0JmF1bWw7IG11dXR0dWphYSBrJmF1bWw7eXRldCZhdW1sOyZhdW1sO24sIGpvcyB0YXJraXN0dXN0eXlwcGluJmF1bWw7IG9uIHJlZ2V4aWluIGxpaXR0eXYmYXVtbDsgdmFsaW50YS4gU2lzJmF1bWw7bHQmYXVtbDsmYXVtbDsga29rbyBQZXJsLXR5eWxpc2VuIHJlZ2V4aW4sIG11a2FhbiBsdWtpZW4gYWxvaXR1cy9weXMmYXVtbDt5dHlzIHZpbm92aWl2YXQgamEgbGlwdXQgKGVzaW0uICZxdW90Oy9pbWFnZVwuKFxkKykvaSZxdW90OyknOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWRfYWJicmV2J10gPSAnUGFrb2xsaW5lbic7CiRsYW5nWyd0aXRsZV9oaWRlX2Vycm9ycyddID0gJ1BpaWxvdGEgdmlyaGVldCc7CiRsYW5nWyd0aXRsZV9mb3JtX2Rpc3BsYXl0eXBlJ10gPSAnTG9tYWtrZWVuIG4mYXVtbDt5dCZvdW1sO24gdHl5cHBpJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzX2xvbmcnXSA9ICdFc3QmYXVtbDsga2Fpa2tpZW4gZGVidWcgdmllc3RpZW4gbiZhdW1sO3l0dCZhdW1sO21pbmVuJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX3RlbXBsYXRlJ10gPSAnRW1haWwgcG9oamEnOwokbGFuZ1sndGl0bGVfbWF4aW11bV9zaXplJ10gPSAnU2lpcnJldHQmYXVtbDt2JmF1bWw7biB0aWVkb3N0b24gbWFrc2ltaWtva28gKGtpbG90YXZ1aW5hKSc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX3NpemVfbG9uZyddID0gJ1RpZWRvc3RvbiBtYWtzaW1pa29rb29uIHZhaWt1dHRhYSB0JmF1bWw7bSZhdW1sO24gbSZhdW1sOyZhdW1sO3JpdHlrc2VuIGxpcyZhdW1sO2tzaSBwaHAtdHVsa2luIGphIHdlYi1wYWx2ZWxpbWVuIGFzZXR1a3Npc3NhIG9sZXZhdCByYWpvaXR1a3NldC4nOwokbGFuZ1sndGl0bGVfcGVybWl0dGVkX2V4dGVuc2lvbnMnXSA9ICdTYWxsaXR1dCB0aWVkb3N0b3AmYXVtbDsmYXVtbDt0dGVldCc7CiRsYW5nWyd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9uc19sb25nJ10gPSAnU3kmb3VtbDt0JmF1bWw7IHBpbGt1aWxsYSBlcm90ZXR0dSBsaXN0YSBwJmF1bWw7JmF1bWw7dHRlaXN0JmF1bWw7LCBpbG1hbiBwaXN0ZXR0JmF1bWw7IChlc2ltLiAmcXVvdDtqcGcsZ2lmLGpwZWcmcXVvdDspLiBWJmF1bWw7bGlseSZvdW1sO250ZWomYXVtbDsgZWkgaHVvbWlvaWRhLiBKb3MgaiZhdW1sO3QmYXVtbDt0IHQmYXVtbDttJmF1bWw7biB0eWhqJmF1bWw7a3NpLCByYWpvaXR1c3RhIGVpIG9sZS4nOwokbGFuZ1sndGl0bGVfc2hvd19saW1pdGF0aW9ucyddID0gJ04mYXVtbDt5dCZhdW1sOyByYWpvaXR1a3NldCc7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zX2xvbmcnXSA9ICdOJmF1bWw7eXQmYXVtbDsga2VudCZhdW1sO2xsZSBtJmF1bWw7JmF1bWw7cml0ZWxseXQga29rby0gamEgdGllZG9zdG90eXlwcGlyYWpvaXR1a3NldD8nOwokbGFuZ1sndGl0bGVfZm9ybV90ZW1wbGF0ZSddID0gJ0xvbWFra2VlbiBuJmF1bWw7eXR0JmF1bWw7bWlzZWVuIGsmYXVtbDt5dGV0dCZhdW1sO3YmYXVtbDsgbWFsbGknOwokbGFuZ1sndGl0bGVfcGFnZV94X29mX3knXSA9ICdTaXZ1ICVzIC8gJXMnOwokbGFuZ1sndGl0bGVfbm9fYWR2YW5jZWRfb3B0aW9ucyddID0gJ0tlbnQmYXVtbDtsbGUgZWkgb2xlIGxpcyZhdW1sO2FzZXR1a3NpYSc7CiRsYW5nWyd0aXRsZV9mb3JtX3Vuc3BlY2lmaWVkJ10gPSAnVGVrc3RpLCBqb2thIG4mYXVtbDt5dGV0JmF1bWw7JmF1bWw7biBtJmF1bWw7JmF1bWw7cml0dGVsZW0mYXVtbDt0dCZvdW1sO21pbGxlIGtlbnR0aWVuIGFydm9pbGxlJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9mYXN0YWRkX2xvbmcnXSA9ICdBa3Rpdm9pIGtlbnR0aWVuIHBpa2FsaXMmYXVtbDt5cyBsb21ha2tlaXNpaW4gcHVkb3R1c3ZhbGlrb3N0YT8nOwokbGFuZ1sndGl0bGVfZW5hYmxlX2Zhc3RhZGQnXSA9ICdBa3Rpdm9pIGtlbnR0aWVuIHBpa2FsaXMmYXVtbDt5cz8nOwokbGFuZ1sndGl0bGVfZmFzdGFkZCddID0gJ1Bpa2FsaXMmYXVtbDt5cyc7CiRsYW5nWyd0aXRsZV9lbmFibGVfYW50aXNwYW1fbG9uZyddID0gJ1QmYXVtbDttJmF1bWw7IHZhbGludGEgc2FsbGlpIG1ha3NpbWlzc2FhbiAxMCBzJmF1bWw7aGsmb3VtbDtwb3N0aWEgc2FtYXN0YSBJUC1vc29pdHRlc3RhIHR1bm5pc3NhJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9hbnRpc3BhbSddID0gJ0FrdGl2b2kgcm9za2Fwb3N0aWVzdG90Pyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkaWRzJ10gPSAnTiZhdW1sO3l0JmF1bWw7IGtlbnR0aWVuIGlkOnQnOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGlkc19sb25nJ10gPSAnVCZhdW1sO20mYXVtbDtuIGtsaWtrYWFtaW5lbiBzYWxsaWkga2VudHRpZW4gdHVubmlzdGVpZGVuIG4mYXVtbDt5dHQmYXVtbDttaXNlbiwga3VuIGx1b2RhYW4gdGFpIG11b2thdGFhbiBsb21ha2V0dGEnOwokbGFuZ1sndGl0bGVfeG1sX3RvX3VwbG9hZCddID0gJ0wmYXVtbDtoZXQmYXVtbDsgbG9tYWtlIFhNTC10aWVkb3N0b3N0YSc7CiRsYW5nWyd0aXRsZV94bWxfdXBsb2FkX2Zvcm1uYW1lJ10gPSAnSyZhdW1sO3l0JmF1bWw7IHQmYXVtbDt0JmF1bWw7IGxvbWFra2VlbiBuaW1lJmF1bWw7JzsKJGxhbmdbJ3RpdGxlX2ltcG9ydF9sZWdlbmQnXSA9ICdYTUwgRm9ybSAtdHVvbnRpJzsKJGxhbmdbJ3RpdGxlX3htbF91cGxvYWRfZm9ybWFsaWFzJ10gPSAnSyZhdW1sO3l0JmF1bWw7IHQmYXVtbDt0JmF1bWw7IGxvbWFra2VlbiBhbGlhc3RhJzsKJGxhbmdbJ3RpdGxlX2h0bWxfZW1haWwnXSA9ICdMdW8gSFRNTC1tdW90b2luZW4gcyZhdW1sO2hrJm91bWw7cG9zdGk/JzsKJGxhbmdbJ3RpdGxlX2xpbmtfYXV0b3BvcHVsYXRlJ10gPSAnVCZhdW1sO3l0JmF1bWw7IGF1dG9tYWF0dGlzZXN0aSc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZV9oZWxwJ10gPSAnVCZhdW1sO3l0JmF1bWw7IGF1dG9tYWF0dGlzZXN0aSBVUkwtb3NvaXR0ZWVsbGEsIGpvc3NhIGxvbWFrZSBzaWphaXRzZWU/ICh0JmF1bWw7bSZhdW1sOyB5bGlraXJqb2l0dGFhIHNpdnVzdG9uIHNpdnVsaW5ra2kgLWFzZXR1a3NlbiBhbGFwdW9sZWxsYSknOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9saW5rJ10gPSAnT2xldHVzIFVSTC1saW5ra2knOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9saW5rX3RpdGxlJ10gPSAnT2xldHVzIHRla3N0aSBsaW5raWxsZSc7CiRsYW5nWyd0aXRsZV9saW5rX3RvX3NpdGVwYWdlJ10gPSAnTGlua2tpIHNpdnVzdG9uIHNpdnV1bic7CiRsYW5nWyd0aXRsZV9jYXB0Y2hhX25vdF9pbnN0YWxsZWQnXSA9ICdWb2l0IGsmYXVtbDt5dHQmYXVtbDsmYXVtbDsgPGEgaHJlZj0iaHR0cDovL3d3dy53aWtpcGVkaWEub3JnL3dpa2kvQ2FwdGNoYSIgdGFyZ2V0PSJfbmV3Ij4mcXVvdDtDYXB0Y2hhYSZxdW90OzwvYT4gc3VvamF0YWtzZXNpIGxvbWFra2VpZGVuIGwmYXVtbDtoZXR0JmF1bWw7bWlzZW4sIGpvcyBhc2VubmF0IENhcHRjaGEtbW9kdXVsaW4uIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvY2FwdGNoYS8iPkxpcyZhdW1sO3RpZXRvYSBDYXB0Y2hhLXByb2pla3Rpc3RhPC9hPi4nOwokbGFuZ1sndGl0bGVfdXNlX2NhcHRjaGEnXSA9ICdLJmF1bWw7eXRldCZhdW1sOyZhdW1sO25rJm91bWw7IENhcHRjaGEtc3VvamF1c3RhIHRpZWRvc3RvamVuIHNpaXJyb3NzYT8nOwokbGFuZ1sndGl0bGVfdXNlX2NhcHRjaGFfaGVscCddID0gJ1ZhbGl0c2UsIGpvcyBoYWx1YXQgc3VvamF0YSBsb21ha2tlZW4gPGEgaHJlZj0iaHR0cDovL3d3dy53aWtpcGVkaWEub3JnL3dpa2kvQ2FwdGNoYSIgdGFyZ2V0PSJfbmV3Ij5DYXB0Y2hhbGxhPC9hPi4nOwokbGFuZ1sndGl0bGVfdXNlcl9jYXB0Y2hhJ10gPSAnT2xlIGh5diZhdW1sOyBqYSBraXJqb2l0YSBhbGFwdW9sZWxsYSBvbGV2YXQga2lyamFpbWV0LiBWYXJtaXN0YW1tZSB0JmF1bWw7bSZhdW1sO24gYXZ1bGxhLCBldHRldCBvbGUgcm9za2Fwb3N0aXJvYm90dGkuJzsKJGxhbmdbJ3RpdGxlX3VzZXJfY2FwdGNoYV9lcnJvciddID0gJ0NhcHRjaGEgdGVrc3RpIG9saSB2aXJoZWVsbGluZW4nOwokbGFuZ1snd3JvbmdfY2FwdGNoYSddID0gJ0NhcHRjaGEgZWkgb2xsdXQgb2lrZWluLic7CiRsYW5nWyd0aXRsZV90aXRsZV91c2VyX2NhcHRjaGEnXSA9ICdBdnVzdGV0ZWtzdGkgQ2FwdGNoYWxsZSc7CiRsYW5nWyd0aXRsZV9kb250X3N1Ym1pdF91bmNoZWNrZWQnXSA9ICcmQXVtbDtsJmF1bWw7IGwmYXVtbDtoZXQmYXVtbDsgYXJ2b2phIHZhbGludGFsYWF0aWtvaWxsZSwgam9pdGEgZWkgb2xlIHZhbGl0dHUnOwokbGFuZ1sndGl0bGVfZG9udF9zdWJtaXRfdW5jaGVja2VkX2hlbHAnXSA9ICdWYWxpdHNlIHQmYXVtbDttJmF1bWw7LCBqb3MgaGFsdWF0IGV0dCZhdW1sOyBhaW5vYXN0YWFuIHZhbGl0dXQgdmFsaW50YWxhYXRpa290IHBhbGF1dHRhdmF0IGFydm9uLic7CiRsYW5nWydsaW5rX2xhYmVsJ10gPSAnTGlua2luIHRla3N0aSc7CiRsYW5nWydsaW5rX2Rlc3RpbmF0aW9uJ10gPSAnTGlua2luIGtvaGRlb3NvaXRlJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfc2V0J10gPSAnT2xldHVrc2VuYSB2YWxpdHR1Pyc7CiRsYW5nWyd0aXRsZV8yNF9ob3VyJ10gPSAnSyZhdW1sO3l0JmF1bWw7IDI0LXR1bm5pbiBrZWxsb2E/JzsKJGxhbmdbJ3RpdGxlX2JlZm9yZV9ub29uJ10gPSAnQU0nOwokbGFuZ1sndGl0bGVfYWZ0ZXJfbm9vbiddID0gJ1BNJzsKJGxhbmdbJ3RpdGxlX3NtYXJ0eV9ldmFsJ10gPSAnSyZhdW1sO3NpdHRlbGUgc21hcnR5dGFnaXQga2VudCZhdW1sO3NzJmF1bWw7Pyc7CiRsYW5nWyd0aXRsZV90ZXh0YXJlYV9yb3dzJ10gPSAnUml2aSZhdW1sOyAoaHVvbWFhOiB2b2l0IHlsaWtpcmpvaXR0YWEgdCZhdW1sO20mYXVtbDtuIENTUzpsbCZhdW1sOyknOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfY29scyddID0gJ1NhcmFrZXR0YSAoaHVvbWFhOiB2b2l0IHlsaWtpcmpvaXR0YWEgdCZhdW1sO20mYXVtbDtuIENTUzpsbCZhdW1sOyknOwokbGFuZ1sndGl0bGVfZm9ybV9tYWluJ10gPSAnTG9tYWtrZWVuIHBlcnVzdGllZG90JzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfYmxhbmsnXSA9ICdPbGV0dWtzZW5hIHR5aGomYXVtbDsnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9ibGFua19oZWxwJ10gPSAnT2xldHVrc2VuYSB0eWhqJmF1bWw7IChvdGEgdmFsaW50YSBwb2lzLCBqb3MgaGFsdWF0IGV0dCZhdW1sOyBvbGV0dWtzZW5hIG9uIHQmYXVtbDttJmF1bWw7IHAmYXVtbDtpdiZhdW1sOyknOwokbGFuZ1sndGl0bGVfc2hvd191c2VybmFtZSddID0gJ04mYXVtbDt5dCZhdW1sOyBrJmF1bWw7eXR0JmF1bWw7aiZhdW1sO3R1bm51cz8nOwokbGFuZ1sndGl0bGVfc2hvd191c2VyZmlyc3RuYW1lJ10gPSAnTiZhdW1sO3l0JmF1bWw7IGsmYXVtbDt5dHQmYXVtbDtqJmF1bWw7biBldHVuaW1pPyc7CiRsYW5nWyd0aXRsZV9zaG93X3VzZXJsYXN0bmFtZSddID0gJ04mYXVtbDt5dCZhdW1sOyBrJmF1bWw7eXR0JmF1bWw7aiZhdW1sO24gc3VrdW5pbWk/JzsKJGxhbmdbJ3RpdGxlX3Jlc3RyaWN0X3RvX2dyb3VwJ10gPSAnUmFqb2l0YSBrJmF1bWw7eXR0JmF1bWw7aiZhdW1sO2xpc3RhIHZhaW4gdGlldHluIHJ5aG0mYXVtbDtuIGomYXVtbDtzZW5paW4nOwokbGFuZ1sndGl0bGVfZW5jcnlwdF9kYXRhYmFzZV9kYXRhJ10gPSAnU3VvamFhIHRpZXRva2FudGFhbiB0YWxsZW5uZXR1dCB0aWVkb3QnOwokbGFuZ1sndGl0bGVfY3J5cHRfY2VydCddID0gJ1N1b2phdHVuIHRpZWRvbiBzZXJ0aWZpa2FhdHRpJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRpb25fa2V5ZmlsZSddID0gJ1NhbGFpbmVuIGxhdXNlIHRhaSBwb2xrdSB0aWVkb3N0b29uLCBqb3NzYSBvbiBzYWxhaW5lbiBsYXVzZS4gKEpvcyBrJmF1bWw7eXQmYXVtbDt0IE9wZW5TU0w6JmF1bWw7JmF1bWw7LCB0JmF1bWw7bSZhdW1sOyBvbiBzYWxhaW5lbiBsYXVzZSB5a3NpdHlpc2VsbGUgYXZhaW1lbGxlKSc7CiRsYW5nWyd0aXRsZV9lbmNyeXB0X3NvcnRmaWVsZHMnXSA9ICdTZWtvaXRhIGphb3R0ZWx1a2VudCZhdW1sO3QnOwokbGFuZ1sndGl0bGVfcHJpdmF0ZV9rZXknXSA9ICdZa3NpdHlpbmVuIGF2YWluLCBqb3RhIGsmYXVtbDt5dGV0JmF1bWw7JmF1bWw7biB0aWVkb24gc3VvamFhbWlzZWVuJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRfc29ydGZpZWxkc19oZWxwJ10gPSAnVCZhdW1sO20mYXVtbDsgc2Vrb2l0dGFhIGphb3R0ZWx1a2VudCZhdW1sO3QsIG11dHRhIGomYXVtbDt0dCZhdW1sOyZhdW1sOyBlbnNpbW0mYXVtbDtpc2V0IGtpcmphaW1ldCBzdW9qYWFtYXR0YS4gS3J5cHRvbG9naWFuIGthbm5hbHRhLCB0JmF1bWw7bSZhdW1sOyBsdW8gdGlldG90dXJ2YS1hdWtvbiwgbXV0dGEgb24gdXNlaW1taWxsZSBrJmF1bWw7eXR0JmF1bWw7aiZhdW1sO2xsZSBoeXYmYXVtbDtrc3l0dCZhdW1sO3YmYXVtbDsgcmF0a2Fpc3UgdHVydmFsbGlzdXVkZW4gamEgdGlldG9qZW4gaiZhdW1sO3JqZXN0JmF1bWw7bWlzZW4gbWFoZG9sbGlzdXVkZW4gdiZhdW1sO2xpbGwmYXVtbDsuIFRpZXRvamVuIGomYXVtbDtyamVzdGVseXN0JmF1bWw7IHR1bGVlIGxpa2lhcnZvaXN0YSwgbXV0dGEgc2lsdGkgc3VodGVlbGxpc2VuIHBhaWtrYW5zYSBwaXQmYXVtbDt2JmF1bWw7JmF1bWw7LiBKb3MgZXQgayZhdW1sO3l0JmF1bWw7IHQmYXVtbDt0JmF1bWw7IGFzZXR1c3RhLCBqJmF1bWw7cmplc3R5c2tlbnQmYXVtbDt0IHRhbGxlbm5ldGFhbiB0YXZhbGxpc2VuYSB0ZWtzdGluJmF1bWw7Lic7CiRsYW5nWyd0aXRsZV9lbmNyeXB0aW9uX2Z1bmN0aW9ucyddID0gJ1ZhcmFzdG9uIHN1b2phdXMgZWkgb2xlIHNhYXRhdmlsbGEnOwokbGFuZ1sndGl0bGVfaW5zdGFsbF9jcnlwdG8nXSA9ICdBc2VubmEgT3BlblNTTCBtb2R1dWxpIHRhaSBtY3J5cHQgdHVraSwgam9zIGhhbHVhdCBsYWl0dGFhIHRpZXRva2FubmFuIHN1b2phdWtzZW4gcCZhdW1sOyZhdW1sO2xsZS4nOwokbGFuZ1sndGl0bGVfaW5zdGFsbF9jdXJsJ10gPSAnVGFya2lzdGEsIGV0dCZhdW1sOyBzaW51bGxhIG9uIENVUkwtdHVraSBha3RpaXZpc2VuYSBQSFAtYXNlbm51a3Nlc3NhLiBLYXRzbyBodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Jvb2suY3VybC5waHAnOwokbGFuZ1sndGl0bGVfbWxlX3ZlcnNpb24nXSA9ICdBamEgTUxFLXRpbGFzc2EnOwokbGFuZ1sndGl0bGVfbWxlX3ZlcnNpb25fbG9uZyddID0gJ011dXR0YWEgamEgdHVrZWUgQ01TTVMgTXVsdGktTGFuZ3VhZ2UgRWRpdGlvbiBydW5rb2EuICZBdW1sO2wmYXVtbDsgdmFsaXRzZSB0JmF1bWw7dCZhdW1sOywgam9zIGV0IGsmYXVtbDt5dCZhdW1sOyBNTEUtdmVyc2lvdGEuJzsKJGxhbmdbJ3RpdGxlX2Vuc3VyZV9jZXJ0X2tleV9tYXRjaCddID0gJ1Zhcm1pc3RhLCBldHQmYXVtbDsgdmFsaXRzZXQgeWtzaXR5aXNlbiBhdmFpbWVuLCBqb2thIG9uIHNvcGl2YSBzZXJ0aWZpa2FhdGlsbGUsIGpvdGEgayZhdW1sO3l0JmF1bWw7dCB0aWV0b2plbiBzdW9qYWFtaXNlZW4uJzsKJGxhbmdbJ2Nob29zZV9jcnlwdCddID0gJ1N1b2phdXNraXJqYXN0byc7CiRsYW5nWyd0aXRsZV9lbmNyeXB0X2RhdGFiYXNlX2xvbmcnXSA9ICdWYWxpdHNlIHQmYXVtbDttJmF1bWw7LCBqb3MgaGFsdWF0IHN1b2phdGEgdGFsbGVubmV0dW4gdGllZG9uLiBUJmF1bWw7bSZhdW1sOyB0ZWtlZSBoYWtrZXJpZW4gdmFpa2VhbW1ha3NpIChtdXR0YSBlaSBtYWhkb3R0b21ha3NpKSBuJmF1bWw7aGQmYXVtbDsgdGlldG9qYS4nOwokbGFuZ1snY2hvb3NlX2NyeXB0X2xvbmcnXSA9ICdBbGxhIG9sZXZhdCBhc2V0dWtzZXQgcCZhdW1sO3RldiZhdW1sO3QgYWlub2FzdGFhbiwgam9zIGsmYXVtbDt5dCZhdW1sO3QgT3BlblNTTC1zdW9qYXVza2lyamFzdG9hLic7CiRsYW5nWyd0aXRsZV9jcnlwdF9saWInXSA9ICdTdW9qYXVza2lyamFzdG8nOwokbGFuZ1snb3BlbnNzbCddID0gJ09wZW5TU0wta2lyamFzdG8nOwokbGFuZ1snbWNyeXB0J10gPSAnUEhQOm4gbWNyeXB0LWtpcmphc3RvJzsKJGxhbmdbJ3RpdGxlX2ZldV9iaW5kaW5nJ10gPSAnU2l2dXN0b24gayZhdW1sO3l0dCZhdW1sO2omYXVtbDtzaWRvcyc7CiRsYW5nWyd0aXRsZV9pbnN0YWxsX2ZldSddID0gJ0FzZW5uYSBGcm9udGVuZCBVc2VyIC1tb2R1dWxpLCBqb3MgaGFsdWF0IHloZGlzdCZhdW1sOyZhdW1sOyBsb21ha2tlZW4gamEgc2VuIHRpZWRvdCB0aWV0dHl5biBrJmF1bWw7eXR0JmF1bWw7aiZhdW1sOyZhdW1sO24uJzsKJGxhbmdbJ3RpdGxlX2ZldV9iaW5kX2hlbHAnXSA9ICdBc2V0YSBwJmF1bWw7JmF1bWw7bGxlLCBqb3MgaGFsdWF0IGx1a2l0YSBwJmF1bWw7JmF1bWw7c3luIHQmYXVtbDtoJmF1bWw7biBsb21ha2tlZXNlZW4gYWlub2FzdGFhbiBzaXMmYXVtbDtsbGUga2lyamF1dHVuZWlsbGUgayZhdW1sO3l0dCZhdW1sO2ppbGxlLic7CiRsYW5nWyd0aXRsZV9lbmNyeXB0aW9uJ10gPSAnU3VvamF1cyc7CiRsYW5nWyd0aXRsZV9leHBvcnRfZm9ybV90b191ZHQnXSA9ICdFeHBvcnQgZm9ybSByZWZlcmVuY2UgdG8gVURUIGFzICRwYXJhbXNbJiMwMzk7Rk9STSYjMDM5O10/IChkbyBub3QgZG8gdGhpcyBpZiB5b3UgYXJlIGdvaW5nIHRvIHByaW50X3IoJHBhcmFtcykgKSc7CiRsYW5nWyd0aXRsZV91cmxfaGVscCddID0gJ0tva28gdXJsLW9zb2l0ZSwgbXVrYWFuIGx1a2llbiBwcm90b2tvbGxhIGphIHBvbGt1IChlc2ltLiBodHRwOi8vbXlob3N0LmNvbS9mb3JtX2hhbmRsZXIuY2dpKSc7CiRsYW5nWyd0aXRsZV91cmwnXSA9ICdMb21ha2tlZW4gbCZhdW1sO2hldHlrc2VuIFVSTC1vc29pdGUnOwokbGFuZ1sndGl0bGVfbWV0aG9kJ10gPSAnTG9tYWtrZWVuIHRhcGEnOwokbGFuZ1sndGl0bGVfbWFwc190byddID0gJ01hcCBmaWVsZCAmcXVvdDslcyZxdW90OyB0byBmb3JtIHN1Ym1pc3Npb24gdmFyaWFibGUnOwokbGFuZ1sndGl0bGVfYWRkaXRpb25hbCddID0gJ0xpcyZhdW1sO2wmYXVtbDtoZXR5cyc7CiRsYW5nWyd0aXRsZV9hZGRpdGlvbmFsX2hlbHAnXSA9ICdNaXQmYXVtbDsgdGFoYW5zYSBsJmF1bWw7aGV0eWtzZWVuIGxpcyZhdW1sO3R0JmF1bWw7diZhdW1sOyZhdW1sOyB0aWV0b2EsIHVybC1rb29kYXR1c3NhIG11b2Rvc3NhIChlc2ltLiAmcXVvdDt1c2VyPXN0ZXZlK2pvYnMmYW1wO2VtcGxveWVlX251bWJlcj0xKSc7CiRsYW5nWyd0aXRsZV9pbmNsdWRlX2luX3N1Ym1pc3Npb24nXSA9ICdTaXMmYXVtbDtsbHl0JmF1bWw7IGtlbnR0JmF1bWw7IGwmYXVtbDtoZXR5a3NlZW4nOwokbGFuZ1sndGl0bGVfZGF0YV9zdG9yZWRfaW5fZmJyJ10gPSAnVGllZG90IHRhbGxlbm5ldGFhbiBYTUwtbXVvZG9zc2EgW1BSRUZJWF1fbW9kdWxlX2ZiX2Zyb21icm93c2VyIHRpZXRva2FudGF0YXVsdXVuLic7CiRsYW5nWydlcnJvcl9oYXNfbm9fZmJfZmllbGQnXSA9ICdWaXJoZSEgSm9rbyBsb21ha2tlZWxsYSBlaSBvbGUgZm9ybV9idWlsZGVyIG0mYXVtbDsmYXVtbDtyZXR0JmF1bWw7LCB0YWkgc2VuIGxhdGFhbWluZW4gZXAmYXVtbDtvbm5pc3R1aSAobWFoZG9sbGluZW4gbXVpc3Rpb25nZWxtYT8pJzsKJGxhbmdbJ3Jlc3RyaWN0ZWRfdG9fZ3JvdXAnXSA9ICdWYWluIHJ5aG0mYXVtbDtzcyZhdW1sOyAlcyc7CiRsYW5nWyd0aXRsZV9zaG93X3RvX3VzZXInXSA9ICdOJmF1bWw7eXQmYXVtbDsgayZhdW1sO3l0dCZhdW1sO2omYXVtbDtsbGU/JzsKJGxhbmdbJ2hlbHBfbGVhdmVlbXB0eSddID0gJ0tlbnR0JmF1bWw7IHZvaWRhYW4gaiZhdW1sO3R0JmF1bWw7JmF1bWw7IHR5aGomYXVtbDtrc2knOwokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX3RlbXBsYXRlJ10gPSAnUG9oamFuIG11dXR0dWphdCc7CiRsYW5nWydoZWxwX3ZhcmlhYmxlc19mb3JfY29tcHV0YXRpb24nXSA9ICdTYWF0YXZpbGxhIG9sZXZhdCBtdXV0dHVqYXQnOwokbGFuZ1snaGVscF9waHBfdmFyaWFibGVfbmFtZSddID0gJ1BIUC1tdXV0dHVqYSc7CiRsYW5nWydoZWxwX3N1Ym1pc3Npb25fZGF0ZSddID0gJ0wmYXVtbDtoZXR5c3B2bSc7CiRsYW5nWydoZWxwX3NlcnZlcl9uYW1lJ10gPSAnUGFsdmVsaW1lc2knOwokbGFuZ1snaGVscF9zdWJfc291cmNlX2lwJ10gPSAnTG9tYWtrZWVuIGsmYXVtbDt5dHQmYXVtbDtqJmF1bWw7biBJUC1vc29pdGUnOwokbGFuZ1snaGVscF9zdWJfdXJsJ10gPSAnTG9tYWtlc2l2dW4gdXJsLW9zb2l0ZSc7CiRsYW5nWydoZWxwX2ZiX3ZlcnNpb24nXSA9ICdMb21ha2VyYWtlbnRhamFuIHZlcnNpbyc7CiRsYW5nWydoZWxwX3RhYiddID0gJ1NhcmthaW5tZXJra2knOwokbGFuZ1snaGVscF9vdGhlcl9maWVsZHMnXSA9ICdWYWlodG9laHRvaXNpYSBrZW50dGllbiBuaW1pJmF1bWw7IHZvaWRhYW4gayZhdW1sO3l0dCZhdW1sOyZhdW1sOyByaXN0aWluIChrJmF1bWw7eXQmYXVtbDtubiZvdW1sO2xsaXN0JmF1bWw7IGVyaXR5aXNlc3RpLCBqb3MgU21hcnR5IHR1a2VodGlpIG1lcmtrZWloaW4sIGpvdGthIG92YXQgQVNDSUkgMzItMTI2Om4gdWxrb3B1b2xlbGxhKS4gPGJyIC8+TXV1dCBrZW50JmF1bWw7dCBvdmF0IGsmYXVtbDt5dGV0dCZhdW1sO3Zpc3MmYXVtbDssIGt1biBsaXMmYXVtbDsmYXVtbDt0IG5paXQmYXVtbDsgbG9tYWtrZWVzZWVuLic7CiRsYW5nWydoZWxwX2FycmF5X2ZpZWxkcyddID0gJ0omYXVtbDtsbGVlbiB1dXNpIHRhcGEsIGpvbGxhIHZvaWRhYW4gcCZhdW1sOyZhdW1sO3N0JmF1bWw7IGsmYXVtbDtzaWtzaSBrZW50dGllbiBhcnZvaWhpbiwgdHl5bGlpbiAkZmllbGRuYW1lX29iaiwgJGFsaWFzX29iaiwgb3IgJGZsZF8jX29iaiwgbWlzcyZhdW1sOyBqb2thaW5lbiBrZW50dCZhdW1sOyBvbiBvYmpla3RpIHNpcyZhdW1sO2x0JmF1bWw7ZW46PGJyIC8+PHRhYmxlPg0KPHRyPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+bmFtZTwvdGQ+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz5GaWVsZCBOYW1lPC90ZD48L3RyPg0KPHRyPjx0ZD50eXBlPC90ZD48dGQ+RmllbGQgVHlwZTwvdGQ+PC90cj4NCjx0cj48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7PmlkPC90ZD48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7PkludGVybmFsIEZpZWxkIElEPC90ZD48L3RyPg0KPHRyPjx0ZD52YWx1ZTwvdGQ+PHRkPkh1bWFuLXJlYWRhYmxlIFZhbHVlPC90ZD48L3RyPg0KPHRyPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+dmFsdWVBcnJheTwvdGQ+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz5BcnJheSBvZiBmaWVsZCB2YWx1ZShzKTwvdGQ+PC90cj48L3RhYmxlPjxlbT5lLmcuPC9lbT4sIHlvdSBjb3VsZCB1c2UgJnF1b3Q7eyRmbGRfMV9vYmotPm5hbWV9ID0geyRmbGRfMV9vYmotPnZhbHVlfSc7CiRsYW5nWydoZWxwX2RhdGVfZm9ybWF0J10gPSAnS2F0c28gPGEgaHJlZj0iaHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5kYXRlLnBocCIgdGFyZ2V0PV9ORVc+UEhQOm4gbWFudWFhbGlzdGE8L2E+IG9oamVpdGEgbXVvdG9pbHV1bi4nOwokbGFuZ1snaGVscF92YXJpYWJsZV9uYW1lJ10gPSAnTXV1dHR1amEnOwokbGFuZ1snaGVscF9mb3JtX2ZpZWxkJ10gPSAnVXVkZWxsZWVubiZhdW1sO3l0ZXR0JmF1bWw7diZhdW1sOyBrZW50dCZhdW1sOyc7CiRsYW5nWydsaW5rX2JhY2tfdG9fZm9ybSddID0gJyZsYXF1bzsgVGFrYWlzaW4gbG9tYWtrZWVzZWVuJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfdGVtcGxhdGUnXSA9ICdMdW8gZXNpbWVya2tpcG9oamEnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9odG1sX3RlbXBsYXRlJ10gPSAnTHVvIEhUTUwtcG9oamFuIGVzaW1lcmtraSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2hlYWRlcl90ZW1wbGF0ZSddID0gJ0x1byB5bCZhdW1sO3R1bm5pc3RlcG9oamFuIGVzaW1lcmtraSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2Zvb3Rlcl90ZW1wbGF0ZSddID0gJ0x1byBhbGF0dW5uaXN0ZXBvaGphbiBlc2ltZXJra2knOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9oZWFkZXInXSA9ICdMdW8geWwmYXVtbDt0dW5uaXN0ZWVuIGVzaW1lcmtraSc7CiRsYW5nWydoZWxwX3RhYl9zeW1ib2wnXSA9ICdzYXJha2VuJmF1bWw7cHAmYXVtbDtpbic7CiRsYW5nWyd0aXRsZV9maWxlX3RlbXBsYXRlJ10gPSAnUG9oamEsIGpvdGEgayZhdW1sO3l0ZXQmYXVtbDsmYXVtbDtuIHR1bG9zdGV0dGF2YW4gdGllZG9zdG9uIHlrc2l0dCZhdW1sO2lzZXNzJmF1bWw7IHJpdmlzcyZhdW1sOyc7CiRsYW5nWyd0aXRsZV9maWxlX2hlYWRlciddID0gJ1BvaGphLCBqb3RhIGsmYXVtbDt5dGV0JmF1bWw7JmF1bWw7biB0dWxvc3RldHRhdmFuIHRpZWRvc3RvbiB5bCZhdW1sO3R1bm5pc3RlZXNzYSc7CiRsYW5nWyd0aXRsZV9maWxlX2Zvb3RlciddID0gJ1BvaGphLCBqb3RhIGsmYXVtbDt5dGV0JmF1bWw7JmF1bWw7biB0dWxvc3RldHRhdmFuIHRpZWRvc3RvbiBhbGF0dW5uaXN0ZWVzc2EnOwokbGFuZ1sndGl0bGVfY29uZmlybWF0aW9uX3VybCddID0gJ1VybC1vc29pdGUsIGpvdGEga2xpa2F0YWFuIGxvbWFra2VlbiB2YWh2aXN0YW1pc2Vrc2knOwokbGFuZ1sndGl0bGVfdmFsdWUnXSA9ICdBcnZvIChrYXRzbyBNb25pcHVvbGluZW4gdiZhdW1sO2xpbGVodGksIGpvcyBrJmF1bWw7eXQmYXVtbDt0IHNtYXJ0eXRhZ2VqYSknOwokbGFuZ1sndGl0bGVfZGF0ZV9mb3JtYXQnXSA9ICdQJmF1bWw7aXYmYXVtbDttJmF1bWw7JmF1bWw7ciZhdW1sO24gbXVvdG8gKG9sZXR1cyA8YSBocmVmPSJodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwIj5QSFA6biBwJmF1bWw7aXYmYXVtbDttJmF1bWw7JmF1bWw7ciZhdW1sO24gbXVvZG90PC9hPiknOwokbGFuZ1sndGl0bGVfdXNlX3d5c2l3eWcnXSA9ICdLJmF1bWw7eXQmYXVtbDsgV1lTSVdZRy1lZGl0b3JpYSB0ZWtzdGlrZW50aXNzJmF1bWw7IChhaW5vYXN0YWFuIHlsbCZhdW1sO3BpdG8tb3Npb3NzYSk/JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9hY3Rpb25zJ10gPSAnTG9tYWtrZWVuIGwmYXVtbDtoZXR0JmF1bWw7bWlzZW4gayZhdW1sO3l0dCZhdW1sO3l0eW1pbmVuJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9sYWJlbHMnXSA9ICdMJmF1bWw7aGV0eXNwYWluaWtrZWlkZW4gb3RzaWtvdCc7CiRsYW5nWyd0aXRsZV9zb3J0YWJsZV9maWVsZCddID0gJ0omYXVtbDtyamVzdGVsdCZhdW1sO3YmYXVtbDsga2VudHQmYXVtbDsgIyVzJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9oZWxwJ10gPSAnVCZhdW1sO20mYXVtbDsgc2l2dSBzYWxsaWkgc2ludW4gbXVva2F0YSBsb21ha2tlZW4gbCZhdW1sO2hldHQmYXVtbDttaXN0JmF1bWw7LiBTZSBlaSBtJmF1bWw7JmF1bWw7cml0dGVsZSBtaXQmYXVtbDsgbCZhdW1sO2hldGV0eWlsbGUgdGllZG9pbGxlIHRlaGQmYXVtbDsmYXVtbDtuLiBWb2l0IG0mYXVtbDsmYXVtbDtyaXRlbGwmYXVtbDsgc2VuIGxpcyZhdW1sOyZhdW1sO20mYXVtbDtsbCZhdW1sOyBsb21ha2tlZXNlZW4gayZhdW1sO3NpdHRlbHlrZW50dGkmYXVtbDsuJzsKJGxhbmdbJ3RpdGxlX3N0YXJ0X3llYXInXSA9ICdWdW9zaWpha3NvbiBhbGt1JzsKJGxhbmdbJ3RpdGxlX2VuZF95ZWFyJ10gPSAnVnVvc2lqYWtzb24gbG9wcHUnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF95ZWFyJ10gPSAnT2xldHVzdnVvc2knOwokbGFuZ1sndGl0bGVfZGVmYXVsdF95ZWFyX2hlbHAnXSA9ICcoQXNldGEgYXJ2b2tzaSAtMSwgam9zIG9sZXR1a3NlbmEgb24ga3VsdXZhIHZ1b3NpKSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYWN0aW9uJ10gPSAnTG9tYWtrZWVuIGwmYXVtbDtoZXR0JmF1bWw7bWlzZW4gaiZhdW1sO2xrZWVuJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9yZXNwb25zZSddID0gJ04mYXVtbDt5dGV0dCZhdW1sO3YmYXVtbDsgdmFzdGF1cyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfZGF0ZSddID0gJ0wmYXVtbDtoZXRldHR5JzsKJGxhbmdbJ3RpdGxlX2FwcHJvdmFsX2RhdGUnXSA9ICdIeXYmYXVtbDtrc3ltaXNwdm0gKHlsbCZhdW1sO3BpdCZhdW1sO2omYXVtbDspJzsKJGxhbmdbJ3RpdGxlX3VzZXJfYXBwcm92ZWQnXSA9ICdIeXYmYXVtbDtrc3ltaXNwdm0gKGwmYXVtbDtoZXR0JmF1bWw7aiZhdW1sOyknOwokbGFuZ1snZGlzcGxheV90ZXh0J10gPSAnTiZhdW1sO3l0JmF1bWw7ICZxdW90O0wmYXVtbDtoZXR5c3BvaGphJnF1b3Q7JzsKJGxhbmdbJ3JlZGlyZWN0X3RvX3BhZ2UnXSA9ICdPaGphYSBzaXZ1c3RvbiBzaXZ1bGxlJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9yZXNwb25zZV9oZWxwJ10gPSAnVCZhdW1sO3QmYXVtbDsgcG9oamFhIGsmYXVtbDt5dGV0JmF1bWw7JmF1bWw7biwga3VuIG4mYXVtbDt5dGV0JmF1bWw7JmF1bWw7biBzaXZ1IGsmYXVtbDt5dHQmYXVtbDtqJmF1bWw7bGxlIGxvbWFra2VlbiBsJmF1bWw7aGV0dCZhdW1sO21pc2VuIGomYXVtbDtsa2Vlbi4gVCZhdW1sO20mYXVtbDsgZWkgdmFpa3V0YSBsdW90dWloaW4gcyZhdW1sO2hrJm91bWw7cG9zdGVpaGluIHRhaSBsb21ha2tlZW4gayZhdW1sO3NpdHRlbHl5biAtLSBhc2V0YXQgbmUgcG9oamF0IChzaWVsbCZhdW1sOyBtaXNzJmF1bWw7IHRhcnBlZWxsaXN0YSkgJnF1b3Q7TW9uaXB1b2xpbmVuJnF1b3Q7IHYmYXVtbDtsaWxlaGRlc3MmYXVtbDsgbmlpc3MmYXVtbDsgayZhdW1sO3NpdHRlbHlrZW50aXNzJmF1bWw7Lic7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9wYWdlJ10gPSAnS29oZGVzaXZ1JzsKJGxhbmdbJ3RpdGxlX3JlcXVpcmVfZmllbGRuYW1lcyddID0gJ1ZhYWRpIGtlbnR0aWVuIG5pbWV0JzsKJGxhbmdbJ3RpdGxlX3JlcXVpcmVfZmllbGRuYW1lc19sb25nJ10gPSAnVmFhZGl0YWFua28ga2VudGlsbGUgbmltaT8nOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXMnXSA9ICdWYWFkaSB5a3NpbCZvdW1sO2xsaXNldCBrZW50dCZhdW1sO25pbWV0JzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWVsZG5hbWVzX2xvbmcnXSA9ICdWYWFkaXRhYW5rbyBrZW50aWxsZSB5a3NpbCZvdW1sO2xsaXNldCBuaW1ldD8nOwokbGFuZ1sndGl0bGVfcmVvcmRlcl9mb3JtJ10gPSAnVXVkZWxsZWVuaiZhdW1sO3JqZXN0JmF1bWw7IGtlbnQmYXVtbDt0JzsKJGxhbmdbJ3RpdGxlX2xvYWRfdGVtcGxhdGUnXSA9ICdMYXRhYSBwb2hqYSc7CiRsYW5nWyd0aXRsZV9hZGRfYnV0dG9uX3RleHQnXSA9ICdMaXMmYXVtbDsmYXVtbDsgcGFpbmlra2VlbiB0ZWtzdGknOwokbGFuZ1sndGl0bGVfZGVsX2J1dHRvbl90ZXh0J10gPSAnUG9pc3RhIHBhaW5pa2tlZW4gdGVrc3RpJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2hlbHB0ZXh0J10gPSAnVCZhdW1sO20mYXVtbDtuIGtlbnQmYXVtbDtuIGthbnNzYSBuJmF1bWw7eXRldHQmYXVtbDt2JmF1bWw7IG9oamV0ZWtzdGknOwokbGFuZ1sndGl0bGVfc3RyaW5nX29yX251bWJlcl9ldmFsJ10gPSAnVHVsa2l0c2UgYXJ2b3Qgam9rbyBudW1lcm9pa3NpIHRhaSBtZXJra2lqb25vaWtzaSc7CiRsYW5nWyd0aXRsZV9vcmRlciddID0gJ1R1bGtpbnRhaiZhdW1sO3JqZXN0eXMnOwokbGFuZ1sndGl0bGVfb3JkZXJfaGVscCddID0gJ0pvcyBsYXNrZXR0YXZpYSBrZW50dGkmYXVtbDsgb24gZW5lbW0mYXVtbDtuIGt1aW4geWtzaSwgbmUgbGFza2V0YWFuIGFsZW1tYXN0YSBqJmF1bWw7cmplc3R5c251bWVyb3N0YSBpc29pbXBhYW4nOwokbGFuZ1sndGl0bGVfY29tcHV0ZV92YWx1ZSddID0gJ0xhc2tldHRhdmEgYXJ2byc7CiRsYW5nWyd0aXRsZV9zdHJpbmcnXSA9ICdNZXJra2lqb25vJzsKJGxhbmdbJ3RpdGxlX251bWVyaWMnXSA9ICdOdW1lZXJpbmVuJzsKJGxhbmdbJ3RpdGxlX2lubGluZV9mb3JtJ10gPSAnTiZhdW1sO3l0JmF1bWw7IGxvbWFrZSBzaWpvaXRldHR1bmE/JzsKJGxhbmdbJ3RpdGxlX2lubGluZV9mb3JtX2hlbHAnXSA9ICdTaWpvaXRldHR1IHRhcmtvaXR0YWEsIGV0dCZhdW1sOyBsb21ha2tlZW4gamF0a28ga29ydmFhIHtjbXNfbW9kdWxlfSB0YWdpbiwgc2lqb2l0dGFtYXRvbiBrb3J2YWEge2NvbnRlbnR9IHRhZ2luLic7CiRsYW5nWyd0aXRsZV9maWVsZF9kZWZhdWx0X3ZhbHVlJ10gPSAnS2VudCZhdW1sO24gb2xldHVzYXJ2byc7CiRsYW5nWyd0aXRsZV9jbGVhcl9kZWZhdWx0J10gPSAnVHloamVubiZhdW1sOyBvbGV0dXNhcnZvdD8nOwokbGFuZ1sndGl0bGVfY2xlYXJfZGVmYXVsdF9oZWxwJ10gPSAnVmFsaXRzZSB0JmF1bWw7bSZhdW1sOywgam9zIGhhbHVhdCB0eWhqZW50JmF1bWw7JmF1bWw7IG9sZXR1c2Fydm90IGtlbnRpc3QmYXVtbDssIGt1biBrJmF1bWw7eXR0JmF1bWw7aiZhdW1sOyBrbGlra2FhIG5paWhpbi4gS29za2EgdCZhdW1sO20mYXVtbDsgayZhdW1sO3l0dCZhdW1sOyZhdW1sOyBKYXZhU2NyaXB0aSZhdW1sOyB2ZXJ0YWFtaXNlZW4sIHNlIGVpIHRvaW1pLCBqb3MgbGFpdGF0IGxhaW5hdXNtZXJra2VqJmF1bWw7ICgmIzAzOTspIG9sZXR1c3Rla3N0aWlzaS4gTXV1dCBKYXZhU2NyaXB0aW4ga2Fuc3NhIGVwJmF1bWw7eWh0ZWVuc29waXZhdCBtZXJraXQgdm9pdmF0IG15Jm91bWw7cyB0dW90dGFhIG9uZ2VsbWlhLic7CiRsYW5nWyd0aXRsZV9yZW1vdmVfZmlsZV9mcm9tX3NlcnZlciddID0gJ1BvaXN0YSBsJmF1bWw7aGV0ZXR0eSB0aWVkb3N0byBwYWx2ZWxpbWVsdGEgayZhdW1sO3NpdHRlbHluIGomYXVtbDtsa2VlbiAocyZhdW1sO2hrJm91bWw7cG9zdGluIGomYXVtbDtyamVzdGVseSknOwokbGFuZ1sndGl0bGVfZmllbGRfamF2YXNjcmlwdCddID0gJ0tlbnQmYXVtbDtuIEphdmFTY3JpcHQnOwokbGFuZ1sndGl0bGVfZmllbGRfamF2YXNjcmlwdF9sb25nJ10gPSAnVGVlIHQmYXVtbDtzdCZhdW1sOyBrb2tvIEphdmFTY3JpcHQga3V0c3UsIG11a2FhbiBsdWtpZW4gdGFwYWh0dW1hbiwgam9ua2EgaGFsdWF0IG5hcGF0YSwgZXNpbS4gb25jbGljaz0mcXVvdDt5b3VyZm4oKSZxdW90Oyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfamF2YXNjcmlwdCddID0gJ0xvbWFra2VlbiBsJmF1bWw7aGV0eWtzZW4gSmF2YVNjcmlwdCc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfamF2YXNjcmlwdF9sb25nJ10gPSAnVGVlIHQmYXVtbDtzdCZhdW1sOyBrb2tvIEphdmFTY3JpcHQga3V0c3UsIG11a2FhbiBsdWtpZW4gdGFwYWh0dW1hbiwgam9ua2EgaGFsdWF0IG5hcGF0YSwgZXNpbS4gb25jbGljaz0mcXVvdDt5b3VyZm4oKSZxdW90Oy48YnIgLz5UJmF1bWw7bSZhdW1sOyBlaSB0b2Rlbm4mYXVtbDtrJm91bWw7aXNlc3RpIHRvaW1pLCBqb3MgayZhdW1sO3l0JmF1bWw7dCAmcXVvdDt0dXJ2YXNjcmlwdGkmcXVvdDsgYXNldHVzdGEgeWwmYXVtbDtwdW9sZWxsYS4nOwokbGFuZ1snZW1haWxfZnJvbV9hZGRyX2hlbHAnXSA9ICcmQXVtbDtsJmF1bWw7IHZhbGl0c2UgdmFpbiBzYXR0dW1hbnZhcmFpc3RhIG9zb2l0ZXR0YSB0JmF1bWw7aCZhdW1sO24gLS0gbW9uZXQgcGFsdmVsdW50YXJqb2FqYXQgZWl2JmF1bWw7dCBsJmF1bWw7aGV0JmF1bWw7IHMmYXVtbDtoayZvdW1sO3Bvc3RpYSwgam9zIG11dXN0YSBrdWluIG9tYXN0YSBkb21haW5vc29pdHRlZXN0YSAoZWxpIGVzaW1lcmtpa3NpIG5pbWlAJXMpJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9hZHZhbmNlZCddID0gJ1RhcnZpdHNldGtvIGxpcyZhdW1sOyZhdW1sOyBrZW50dCZhdW1sO3R5eXBwZWomYXVtbDs/JzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9iYXNpYyddID0gJ0xpaWFuIG1vbnRhIHNla29pdHRhdmFhIGtlbnR0JmF1bWw7dHl5cHBpJmF1bWw7Pyc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYWR2YW5jZWRfbGluayddID0gJ1ZhaWhkYSBlZGlzdHluZWVzZWVuIHRpbGFuJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9iYXNpY19saW5rJ10gPSAnVmFpaGRhIHBlcnVzdGlsYWFuJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcm9vdCddID0gJ0hha2VtaXN0bywgam9ob24gdGllZG9zdG8gdGFsbGVubmV0YWFuJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcm9vdF9oZWxwJ10gPSAnVCZhdW1sO20mYXVtbDtuIHQmYXVtbDt5dHl5IG9sbGEgaGFrZW1pc3RvLCBqb2hvbiBwYWx2ZWxpbWVsbGEgdm9pZGFhbiBraXJqb2l0dGFhPGJyIC8+QXNldGEgQ0hNT0QgNzc3LCBqb3Mgc2ludWxsYSBvbiBvbmdlbG1pYS48YnIgLz5UYXJraXN0YSBteSZvdW1sO3MsIGV0dCZhdW1sOyBzaW51bGxhIGVpIG9sZSBQSFA6biBoYWtlbWlzdG9yYWpvaXR1a3NpYS4nOwokbGFuZ1sndGl0bGVfbmV3bGluZV9yZXBsYWNlbWVudCddID0gJ1V1ZGV0IHJpdml0IGphIHJpdmludmFpaGRvdCBrb3J2YWF2YSBtZXJra2knOwokbGFuZ1sndGl0bGVfbmV3bGluZV9yZXBsYWNlbWVudF9oZWxwJ10gPSAnSiZhdW1sO3QmYXVtbDsgdHloaiZhdW1sO2tzaSwgam9zIHNhbGxpdCB1dWRldCByaXZpdCBqYSByaXZpbnZhaWhkb3QgdHVsb3N0ZWVzc2EnOwokbGFuZ1sndGl0bGVfc2VuZF91c2VyY29weSddID0gJ0wmYXVtbDtoZXQmYXVtbDsgayZhdW1sO3l0dCZhdW1sO2omYXVtbDtsbGUga29waW9pIHZpZXN0aXN0JmF1bWw7Pyc7CiRsYW5nWyd0aXRsZV9zZW5kX3VzZXJjb3B5X2xhYmVsJ10gPSAnT3RzaWtrbyB2YWxpbnRhcnV1ZHVsbGUgKGpvcyBrJmF1bWw7eXR0JmF1bWw7aiZhdW1sO24gdmFsaXRzZW1hKSc7CiRsYW5nWyd0aXRsZV9zZW5kX21lX2FfY29weSddID0gJ0wmYXVtbDtoZXQmYXVtbDsgbWludWxsZSBrb3Bpb2kgbG9tYWtrZWVzdGEnOwokbGFuZ1sndGl0bGVfYWxsb3dfc3ViamVjdF9vdmVycmlkZSddID0gJ1NhbGxpIGFpaGVlbiBrb3J2YWFtaW5lbic7CiRsYW5nWyd0aXRsZV9hbGxvd19zdWJqZWN0X292ZXJyaWRlX2xvbmcnXSA9ICdTYWxsaSAmIzAzOTtFbWFpbCAmcXVvdDtTdWJqZWN0JnF1b3Q7IEZpZWxkcyYjMDM5OyBrb3J2YXRhIHB1ZG90dXN2YWxpa29uIGFpaGUuJzsKJGxhbmdbJ3RpdGxlX2Rpc3BsYXlfbGVuZ3RoJ10gPSAnTiZhdW1sO3l0ZXR0JmF1bWw7diZhdW1sOyBwaXR1dXMnOwokbGFuZ1sndGl0bGVfbWluaW11bV9sZW5ndGgnXSA9ICdWYXN0YXVrc2VuIG1pbmltaXBpdHV1cyc7CiRsYW5nWyd0aXRsZV9oaWRlJ10gPSAnUGlpbG90YSBzeSZvdW1sO3RlJzsKJGxhbmdbJ3RpdGxlX2hpZGVfaGVscCddID0gJ04mYXVtbDt5dCZhdW1sOyBzeW1ib2xpdCB0YXZhbGxpc3RlbiBtZXJra2llbiBzaWphc3RhIHNhbGFzYW5vamVuIGtvaGRhbGxhPyc7CiRsYW5nWydwYXNzd29yZF9kb2VzX25vdF9tYXRjaCddID0gJ1NhbGFzYW5hIGVpIHZhc3RhYSAlcyc7CiRsYW5nWydiYWNrX3RvcCddID0gJ1Rha2Fpc2luIExvbWFrZXJha2VudGFqYW4gcCZhdW1sOyZhdW1sO3NpdnVsbGUnOwokbGFuZ1sndGl0bGVfaGVhZGVyc190b19tb2RpZnknXSA9ICdNaXRrJmF1bWw7IHMmYXVtbDtoayZvdW1sO3Bvc3RpbiBvdHNha2tlZXQgdCZhdW1sO20mYXVtbDtuIHN5Jm91bWw7dHRlZW4gcGl0JmF1bWw7aXNpIHQmYXVtbDt5dHQmYXVtbDsmYXVtbDs/JzsKJGxhbmdbJ3RpdGxlX2JsYW5rX2ludmFsaWQnXSA9ICcmQXVtbDtsJmF1bWw7IHNhbGxpIHBlbGtraSZhdW1sOyB2JmF1bWw7bGlseSZvdW1sO250ZWomYXVtbDsgdmFzdGF1a3Nlc3NhJzsKJGxhbmdbJ3RpdGxlX2JsYW5rX2ludmFsaWRfbG9uZyddID0gJ0pvcyBrZW50dCZhdW1sOyBvbiBwYWtvbGxpbmVuLCB0JmF1bWw7bSZhdW1sO24gdmFsaXRzZW1pbmVuIHZhYXRpaSwgZXR0JmF1bWw7IGsmYXVtbDt5dHQmYXVtbDtqJmF1bWw7dCBraXJqb2l0dGF2YXQga2lyamFpbWlhIHRhaSBudW1lcm9pdGEsIGVpdiZhdW1sO3RrJmF1bWw7IGFpbm9hc3RhYW4gdiZhdW1sO2xpbHkmb3VtbDtudGVqJmF1bWw7JzsKJGxhbmdbJ2Vycm9yX0NvbXBhbnlEaXJlY3RvcnlfbW9kdWxlX25vdF9hdmFpbGFibGUnXSA9ICdZcml0eXNoYWtlbWlzdG8tbW9kdXVsaSBlaSBvbGUgc2FhdGF2aWxsYSEnOwokbGFuZ1snb3B0aW9uX25ldmVyJ10gPSAnRWkga29za2Fhbic7CiRsYW5nWydvcHRpb25fdXNlcl9jaG9pY2UnXSA9ICdBbm5hIGsmYXVtbDt5dHQmYXVtbDtqJmF1bWw7biB2YWxpdGEgKHZhbGludGFydXV0dSknOwokbGFuZ1snb3B0aW9uX2Fsd2F5cyddID0gJ0FpbmEnOwokbGFuZ1snb3B0aW9uX2Zyb20nXSA9ICcmcXVvdDtGcm9tJnF1b3Q7IHMmYXVtbDtoayZvdW1sO3Bvc3Rpb3NvaXRlJzsKJGxhbmdbJ29wdGlvbl9yZXBseSddID0gJyZxdW90O1JlcGx5LVRvJnF1b3Q7IHMmYXVtbDtoayZvdW1sO3Bvc3Rpb3NvaXRlJzsKJGxhbmdbJ29wdGlvbl9ib3RoJ10gPSAnU2VrJmF1bWw7ICZxdW90O0Zyb20mcXVvdDsgZXR0JmF1bWw7ICZxdW90O1JlcGx5LVRvJnF1b3Q7IHMmYXVtbDtoayZvdW1sO3Bvc3Rpb3NvaXR0ZWV0JzsKJGxhbmdbJ29wdGlvbl9kcm9wZG93biddID0gJ1B1ZG90dXN2YWxpa2tvJzsKJGxhbmdbJ29wdGlvbl9zZWxlY3RsaXN0X3NpbmdsZSddID0gJ1ZhbGludGFsaXN0YSAoeWtzaSknOwokbGFuZ1snb3B0aW9uX3NlbGVjdGxpc3RfbXVsdGlwbGUnXSA9ICdWYWxpbnRhbGlzdGEgKHVzZWFtcGkpJzsKJGxhbmdbJ29wdGlvbl9yYWRpb2dyb3VwJ10gPSAnVmFsaW50YXBhbGxvcnlobSZhdW1sOyc7CiRsYW5nWyd0aXRsZV9jb21wYW55X2ZpZWxkX25vdGUnXSA9ICdIdW9tYWE6IFR1bG9zdHVzIG9uIG11b2Rvc3NhPGJyLz4mcXVvdDtjb21wYW55IG5hbWUmcXVvdDs9PiZxdW90O3ZhbHVlJnF1b3Q7JzsKJGxhbmdbJ3RpdGxlX3BpY2tfY2F0ZWdvcmllcyddID0gJ1ZhbGl0c2Uga2F0ZWdvcmlhICh1c2VhbXBpKSc7CiRsYW5nWyd0aXRsZV9waWNrX2ZpZWxkZGVmJ10gPSAnSGFlIGtlbnQmYXVtbDtuIG0mYXVtbDsmYXVtbDtyaXR5a3NlbiBhcnZvICh5a3NpdHQmYXVtbDtpbmVuKSA8ZW0+dmFwYWFlaHRvaW5lbjwvZW0+JzsKJGxhbmdbJ3RpdGxlX2Nob29zZV91c2VyX2lucHV0J10gPSAnVmFsaXRzZSBrJmF1bWw7eXR0JmF1bWw7aiZhdW1sO24gc3kmb3VtbDt0dCZhdW1sO20mYXVtbDsgdGlldG8nOwokbGFuZ1sndGl0bGVfc2VlX2Fsc29fdWR0J10gPSAnKEthdHNvIG15Jm91bWw7cyBMb21ha2tlZW4gbCZhdW1sO2hldHlzIC12JmF1bWw7bGlsZWh0ZSZhdW1sOywgam9zIGhhbHVhdCBhc2V0dGFhIFVEVDpuIGxvbWFra2VlbiB0YXJraXN0dWtzZWxsZSknOwokbGFuZ1sndGl0bGVfeWVhcl9lbmRfbWVzc2FnZSddID0gJ1AmYXVtbDsmYXVtbDt0dHltaXN2dW9zaSc7CiRsYW5nWyd0aXRsZV9maWVsZF9sb2dpYyddID0gJ1NtYXJ0eXRhZ2kgdGFpIGxvZ2lpa2thLCBqb2thIGwmYXVtbDtoZXRldCZhdW1sOyZhdW1sO24gdCZhdW1sO20mYXVtbDtuIGtlbnQmYXVtbDtuIG11a2FuYSc7CiRsYW5nWyd0aXRsZV9maWVsZF9sb2dpY19sb25nJ10gPSAnVm9pIHNtYXJ0eWRhdGEsIGphdmFzY3JpcHQgdGFpIG11dSBkYXRhLCBqb25rYSBoYWx1YXQgbCZhdW1sO2hldHQmYXVtbDsmYXVtbDsgdCZhdW1sO20mYXVtbDtuIGtlbnQmYXVtbDtuIG11a2FuYS48YnIgLz5NZW5lZSBzbWFydHlyYWtlbnRhamFuIGwmYXVtbDtwaSwgam90ZW4gbXVpc3RhIGsmYXVtbDt5dHQmYXVtbDsmYXVtbDsge2xpdGVyYWx9ey9saXRlcmFsfSB0YWdlamEgPHNjcmlwdD48L3NjcmlwdD4ga2Fuc3NhLic7CiRsYW5nWyd0aXRsZV9maWVsZF9pbmNsdWRlbGFiZWxzJ10gPSAnTGlzJmF1bWw7JmF1bWw7IG90c2lrb3QnOwokbGFuZ1sndGl0bGVfZmllbGRfaW5jbHVkZWxhYmVsc19oZWxwJ10gPSAnVCZhdW1sO20mYXVtbDtuIGFzZXR0YW1pbmVuIHAmYXVtbDsmYXVtbDtsbGUgbGlpdHQmYXVtbDsmYXVtbDsgb3RzaWtvdCB0dWxvc3R1a3NlZW4uIGVzaW1lcmtpa3NpIC0gbGFiZWw6IHZhbHVlLGxhYmVsMjogdmFsdWUyJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3NpYmxpbmdzJ10gPSAnTGlua2l0JmF1bWw7IHQmYXVtbDttJmF1bWw7IGtlbnR0JmF1bWw7IHNlbiBzaXNhcnVrc2lpbic7CiRsYW5nWyd0aXRsZV9maWVsZF9zaWJsaW5nc19oZWxwJ10gPSAnUHVkb3R1c3ZhbGlra28ga2Fpa2lzdGEgdCZhdW1sO20mYXVtbDtuIGtlbnQmYXVtbDtuIHNpc2FydWtzaXN0YSBqYSBzYWxsaWkgc2ludW4gbGlua2l0dCZhdW1sOyZhdW1sOyB0JmF1bWw7bSZhdW1sO24ga2VudCZhdW1sO24gam9ob25raW4gc2VuIHNpc2FydWtzZWVuLiBNYWhkb2xsaXN0YWEgbXkmb3VtbDtzIGtlbnQmYXVtbDtuIGhhbGxpbm5hbiB2YWxpdHR1amVuIHNpc2FydXN0ZW4ga29udHJvbGxlaWxsYS4nOwokbGFuZ1sndGl0bGVfZmllbGRfaGlkZWJ1dHRvbnMnXSA9ICdQaWlsb3RhIGhhbGxpbnRhcGFpbmlra2VldCc7CiRsYW5nWyd0aXRsZV9maWVsZF9oaWRlYnV0dG9uc19oZWxwJ10gPSAnUGlpbG90dGFhIGp1bGtpc3RlbiBzaXZ1amVuIGhhbGxpbnRhcGFpbmlra2VldCB0JmF1bWw7bHQmYXVtbDsga2VudCZhdW1sO2x0JmF1bWw7Lic7CiRsYW5nWydlcnJvcl91c2VydGFnX2Rpc3Bvc2l0aW9uJ10gPSAnSyZhdW1sO3l0dCZhdW1sO2omYXVtbDtuIG0mYXVtbDsmYXVtbDtyaXR0ZWxlbSZhdW1sOyB0YWdpIHBhbGF1dHRpIHZpcmhlZW4nOwokbGFuZ1snZXJyb3JfdXNlcnRhZyddID0gJ0smYXVtbDt5dHQmYXVtbDtqJmF1bWw7biBtJmF1bWw7JmF1bWw7cml0dGVsZW0mYXVtbDsgdGFnaSAlcyBwYWxhdXR0aSB2aXJoZWVuLic7CiRsYW5nWydlcnJvcl9jYXRhbG9nZXJfbW9kdWxlX25vdF9hdmFpbGFibGUnXSA9ICc8c3Ryb25nPkthdGFsb29naW1vZHV1bGlhIGVpIG9sZSBhc2VubmV0dHUgdGFpIHNlIGVpIG9sZSBha3RpaXZpc2VuYS48L3N0cm9uZz4nOwokbGFuZ1snd2FybmluZyddID0gJ1ZBUk9JVFVTISc7CiRsYW5nWydkZWZhdWx0X3RlbXBsYXRlJ10gPSAnT2xldHVzcG9oamEnOwokbGFuZ1sndGFibGVfbGVmdF90ZW1wbGF0ZSddID0gJ1RhdWx1a2tvcG9oamEsIG90c2lra28gdmFzZW1tYWxsYSc7CiRsYW5nWyd0YWJsZV90b3BfdGVtcGxhdGUnXSA9ICdUYXVsdWtrb3BvaGphLCBvdHNpa2tvIHlsJmF1bWw7cHVvbGVsbGEnOwokbGFuZ1snZm9ybV90ZW1wbGF0ZV9uYW1lJ10gPSAnU2l2dXBvaGphICVzJzsKJGxhbmdbJ3RlbXBsYXRlX2FyZV95b3Vfc3VyZSddID0gJ09sZXRrbyB2YXJtYSwgZXR0JmF1bWw7IGhhbHVhdCBrb3J2YXRhIHNpdnVwb2hqYW4gdmFsaXR1bGxhIHBvaGphbGxhPyAoVmFpa2thIHZhbGl0c2V0IE9LLCBzaW51biB0JmF1bWw7eXR5eSBzaWx0aSB0YWxsZW50YWEgbXV1dG9rc2V0KSc7CiRsYW5nWyd0aXRsZV9iYWRfZnVuY3Rpb24nXSA9ICdWaXJoZSBsYXNrZXR0YWVzc2EgJnF1b3Q7JXMmcXVvdDsuJzsKJGxhbmdbJ25vX3JlZmVycmVyX2luZm8nXSA9ICdIVFRQX1JFRkVSRVIgdGlldG9hIGVpIG9sZSBzYWF0YXZpbGxhIChsdXVsdGF2YXN0aSBqb2h0dXUgayZhdW1sO3l0dCZhdW1sO2omYXVtbDtuIHMmYXVtbDtoayZvdW1sO3Bvc3RpbiB0YXJraXN0dWtzZXN0YSknOwokbGFuZ1sndmFsaWRhdGlvbl9wYXJhbV9lcnJvciddID0gJ1Rhcmtpc3R1c3BhcmFtZXRyaW4gdmlyaGUuIFRhcmtpc3RhLCBldHQmYXVtbDsga29waW9pdCB1cmwtb3NvaXR0ZWVuIHMmYXVtbDtoayZvdW1sO3Bvc3Rpc3Rhc2kgb2lrZWluISc7CiRsYW5nWyd2YWxpZGF0aW9uX3Jlc3BvbnNlX2Vycm9yJ10gPSAnVGFya2lzdHVzdmlyaGUuIFRhcmtpc3RhLCBldHQmYXVtbDsga29waW9pdCB1cmwtb3NvaXR0ZWVuIHMmYXVtbDtoayZvdW1sO3Bvc3Rpc3Rhc2kgb2lrZWluISc7CiRsYW5nWyd2YWxpZGF0aW9uX25vX2ZpZWxkX2Vycm9yJ10gPSAnVGFya2lzdHVzdmlyaGUuIFQmYXVtbDtzcyZhdW1sOyBsb21ha2tlZXNzYSBlaSBvbGUgcyZhdW1sO2hrJm91bWw7cG9zdGluIHRhcmtpc3R1c2tlbnR0JmF1bWw7JmF1bWw7ISc7CiRsYW5nWyd1cGdyYWRlMDN0bzA0J10gPSAnTG9tYWtrZWVuIHBvaGphIHAmYXVtbDtpdml0ZXR0aWluIGF1dG9tYWF0dGlzZXN0aSB2ZXJzaW9zdGEgMC4zIHZlcnNpb29uIDAuNCBwJmF1bWw7aXZpdHlrc2VuIG9zYW5hLiBTaW51biB0YXJ2aXRzZWUgZWhrJmF1bWw7IHRlaGQmYXVtbDsga29yamF1a3NpYS4gSm9zIGsmYXVtbDt5dCZhdW1sO3Qgb2xldHVzbG9tYWtldHRhLCB5a3NpbmtlcnRhaXNlc3RpIGtvcnZhYSBwb2hqYSAmcXVvdDtvbGV0dWtzZWxsYSZxdW90OyB5bCZhdW1sO3B1b2xlbGxhIG9sZXZhc3NhIHB1ZG90dXN2YWxpa29zc2EuJzsKJGxhbmdbJ2FkbWluZGVzYyddID0gJ0xpcyZhdW1sOyZhdW1sOywgbXVva2thYSBqYSBoYWxsaW5ub2kgaW50ZXJha3RpaXZpYSBsb21ha2tlaXRhLic7CiRsYW5nWydvcGVyYXRvcnNfaGVscCddID0gJ0pvcyBrJmF1bWw7eXQmYXVtbDt0IG1lcmtraWpvbm9qZW4gdGFya2lzdHVzdGEsIGFpbm9hIHRvaW1lbnBpZGUgc2FhdGF2aWxsYSBvbiBsaXMmYXVtbDt5cyAoKyksIGpvcyB0YWFzIGsmYXVtbDt5dCZhdW1sO3QgbnVtZWVyaXN0YSB0YXJraXN0dXN0YSwgdm9pdCBrJmF1bWw7eXR0JmF1bWw7JmF1bWw7IHlrc2lua2VydGFpc3RhIG1hdGVtYXRpaWtrYWEgKCwgKywgLSwgKiwgLywgKS4nOwokbGFuZ1snaGVscF9tb2R1bGVfaW50ZXJmYWNlJ10gPSAnSyZhdW1sO3l0ZXQmYXVtbDsmYXVtbDtuIG1vZHV1bGlrJmF1bWw7eXR0Jm91bWw7bGlpdHR5bSZhdW1sOyZhdW1sOyc7CiRsYW5nWydoZWxwX21vZHVsZV9pbnRlcmZhY2VfbG9uZyddID0gJzxiPlRoaXMgZmllbGQgaXMgdXNlZCBhcyBhIGdhdGV3YXkgdG8gb3RoZXIgbW9kdWxlcyE8L2I+DQpVc2UgaXQgYnkgY3JlYXRpbmcgeW91ciBmb3JtIGVsZW1lbnRzIGluIHRoZSB0ZW1wbGF0ZXMgb2YgdGhlIG90aGVyIG1vZHVsZShzKSB5b3Ugd2lzaCB0byBpbmNvcnBvcmF0ZSwgYW5kIHVzaW5nIHRoZSA8c3Ryb25nPnskRkJpZH08L3N0cm9uZz4gdG8gdGllIGl0IGJhY2sgdG8gRm9ybUJ1aWxkZXIuIEZvciBleGFtcGxlLCB0byBpbmNsdWRlIGZvcm0gb3B0aW9ucyBiYXNlZCBvbiB0aGUgUHJvZHVjdHMgbW9kdWxlLCBjcmVhdGUgdGhlIGZvbGxvd2luZyB0ZW1wbGF0ZSBpbiBQcm9kdWN0czo8YnIvPg0KPHByZT4NCntmb3JlYWNoIGZyb209JGl0ZW1zIGl0ZW09ZW50cnl9DQoJe2Fzc2lnbiB2YXI9TURhdGEgdmFsdWU9JiMwMzk7JiMwMzk7fQ0KCXthc3NpZ24gdmFyPUNkIHZhbHVlPSYjMDM5OyYjMDM5O30NCgkJe2ZvcmVhY2ggZnJvbT0kRkJ2YWx1ZSBpdGVtPU1EYXRhfQ0KCQkJe2Fzc2lnbiB2YXI9TURhdGEgdmFsdWU9JiMwMzk7OjomIzAzOTt8ZXhwbG9kZTokTURhdGF9DQoJCQl7aWYgJE1EYXRhWzFdPT0kZW50cnktPmlkfQ0KCQkJCXthc3NpZ24gdmFyPUNkIHZhbHVlPSYjMDM5OyBjaGVja2VkPSZxdW90O2NoZWNrZWQmcXVvdDsmIzAzOTt9DQoJCQl7L2lmfQ0KCQl7L2ZvcmVhY2h9DQoJPGRpdiBjbGFzcz0mcXVvdDtQcm9kdWN0RGlyZWN0b3J5SXRlbSZxdW90Oz4NCgkJPGlucHV0IHR5cGU9JnF1b3Q7Y2hlY2tib3gmcXVvdDsgdmFsdWU9JnF1b3Q7eyRlbnRyeS0+cHJpY2V9Ojp7JGVudHJ5LT5pZH0mcXVvdDsgbmFtZT0mcXVvdDt7JEZCaWR9W10mcXVvdDsgeyRDZH0gLz57JGVudHJ5LT5wcm9kdWN0X25hbWV9ICh7JGVudHJ5LT53ZWlnaHR9eyR3ZWlnaHRfdW5pdHN9KSAmcG91bmQ7eyRlbnRyeS0+cHJpY2V9ICAgIA0KCTwvZGl2Pg0Key9mb3JlYWNofQ0KPC9wcmU+DQo8YnIvPg0Kd2hlcmUgaW4gdGhlIGlucHV0IGJlbG93IHlvdSBwdXQgc29tZXRoaW5nIGxpa2UgPHN0cm9uZz57UHJvZHVjdHMgY2F0ZWdvcnk9JnF1b3Q7Y2F0JnF1b3Q7IHN1bW1hcnl0ZW1wbGF0ZT0mcXVvdDtZb3VyX0ZCX3RlbXBsYXRlJnF1b3Q7fTwvc3Ryb25nPic7CiRsYW5nWyd0aXRsZV9hZGRfdGFnJ10gPSAnTGlzJmF1bWw7JmF1bWw7IHRhZ2lzaSc7CiRsYW5nWydkYXRlX2phbnVhcnknXSA9ICd0YW1taWt1dSc7CiRsYW5nWydkYXRlX2ZlYnJ1YXJ5J10gPSAnaGVsbWlrdXUnOwokbGFuZ1snZGF0ZV9tYXJjaCddID0gJ21hYWxpc2t1dSc7CiRsYW5nWydkYXRlX2FwcmlsJ10gPSAnaHVodGlrdXUnOwokbGFuZ1snZGF0ZV9tYXknXSA9ICd0b3Vrb2t1dSc7CiRsYW5nWydkYXRlX2p1bmUnXSA9ICdrZXMmYXVtbDtrdXUnOwokbGFuZ1snZGF0ZV9qdWx5J10gPSAnaGVpbiZhdW1sO2t1dSc7CiRsYW5nWydkYXRlX2F1Z3VzdCddID0gJ2Vsb2t1dSc7CiRsYW5nWydkYXRlX3NlcHRlbWJlciddID0gJ3N5eXNrdXUnOwokbGFuZ1snZGF0ZV9vY3RvYmVyJ10gPSAnbG9rYWt1dSc7CiRsYW5nWydkYXRlX25vdmVtYmVyJ10gPSAnbWFycmFza3V1JzsKJGxhbmdbJ2RhdGVfZGVjZW1iZXInXSA9ICdqb3VsdWt1dSc7CiRsYW5nWydzdWJtaXNzaW9uX2Vycm9yJ10gPSAnTG9tYWtrZWVuIGwmYXVtbDtoZXR5a3Nlc3MmYXVtbDsgdGFwYWh0dWkgdmlyaGUuJzsKJGxhbmdbJ3N1Ym1pdF9lcnJvciddID0gJ0Zvcm1CdWlsZGVyaW4gbCZhdW1sO2hldHlzdmlyaGU6ICVzJzsKJGxhbmdbJ3VwbG9hZHNfZXJyb3InXSA9ICdWaXJoZSB0aWVkb3N0b24gYW50YW1pc2Vzc2EgbCZhdW1sO2hldHlzbW9kdXVsaWxsZTogJXMnOwokbGFuZ1snbm91cGxvYWRzX2Vycm9yJ10gPSAnTCZhdW1sO2hldHlzbW9kdXVsaWEgZWkgbCZvdW1sO3l0eW55dCc7CiRsYW5nWyd1cGxvYWRfYXR0YWNoX2Vycm9yJ10gPSAnVGFwYWh0dWkgdmlyaGUgbCZhdW1sO2hldGV0dCZhdW1sO2VzcyZhdW1sOyB0YWkgbGlpdGV0dCZhdW1sO2VzcyZhdW1sOyB0aWVkb3N0b2EgJXMgKHRtcF9uYW1lOiAlcywgdHl5cHBpICVzKSc7CiRsYW5nWydzdWJtaXNzaW9uX2Vycm9yX2ZpbGVfbG9jayddID0gJ1ZpcmhlLiBUaWVkb3N0b2EgZWkgdm9pZGEgbHVraXRhLic7CiRsYW5nWyd1bmNoZWNrZWRfYnlfZGVmYXVsdCddID0gJ09sZXR1czogdmFsaXRzZW1hdHRhJzsKJGxhbmdbJ2NoZWNrZWRfYnlfZGVmYXVsdCddID0gJ09sZXR1czogdmFsaXR0dSc7CiRsYW5nWydlbWFpbF9kZWZhdWx0X3RlbXBsYXRlJ10gPSAnRm9ybUJ1aWxkZXJpbiBsJmF1bWw7aGV0eXMnOwokbGFuZ1snZW1haWxfdGVtcGxhdGVfbm90X3NldCddID0gJzxici8+UyZhdW1sO2hrJm91bWw7cG9zdGlwb2hqYWEgZWkgb2xlIGFzZXRldHR1ISc7CiRsYW5nWydtaXNzaW5nX2Ntc19tYWlsZXInXSA9ICdMb21ha2VyYWtlbnRhamFyOiBWYWFkaXR0dWEgbW9kdXVsaWEgQ01TTWFpbGVyIGVpIGwmb3VtbDt5ZHkhJzsKJGxhbmdbJ3VzZXJfYXBwcm92ZWRfc3VibWlzc2lvbiddID0gJ0smYXVtbDt5dHQmYXVtbDtqJmF1bWw7biBoeXYmYXVtbDtrc3ltJmF1bWw7IGwmYXVtbDtoZXR5cyAlcyAlcyc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J10gPSAnVGFwYWh0dW1hLCBqb3RhIGt1dHN1dGFhbiwga3VuIExvbWFrZXJha2VudGFqYW4gbG9tYWtlIGwmYXVtbDtoZXRldCZhdW1sOyZhdW1sO24nOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdEVycm9yJ10gPSAnVGFwYWh0dW1hLCBqb3RhIGt1dHN1dGFhbiwga3VuIHRhcGFodHV1IHZpcmhlIExvbWFrZXJha2VudGFqYW4gbG9tYWtrZWVuIGwmYXVtbDtoZXR0JmF1bWw7bWlzZXNzJmF1bWw7JzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1EaXNwbGF5J10gPSAnVGFwYWh0dW1hLCBqb3RhIGt1dHN1dGFhbiwga3VuIExvbWFrZXJha2VudGFqYW4gbG9tYWtlIG4mYXVtbDt5dGV0JmF1bWw7JmF1bWw7bic7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J10gPSAnPHA+VGFwYWh0dW1hLCBqb3RhIGt1dHN1dGFhbiwga3VuIExvbWFrZXJha2VudGFqYW4gbG9tYWtlIGwmYXVtbDtoZXRldCZhdW1sOyZhdW1sO24uPC9wPg0KPGg0PlBhcmFtZXRyaXQ8L2g0Pg0KPHVsPg0KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIExvbWFra2VlbiBuaW1pIChzdHJpbmcpPC9saT4NCjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gU2lzJmF1bWw7aW5lbiBsb21ha2tlZW4gdHVubmlzdGUgKGludCk8L2xpPg0KPGxpPjxlbT52YWx1ZV88bmFtZT48L2VtPiAtIEFubmEgb2xldHVzYXJ2byBrZW50JmF1bWw7bGxlLCBqb2xsYSBvbiBtJmF1bWw7JmF1bWw7cml0ZWx0eSBuaW1pLjwvbGk+DQo8L3VsPiAnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdEVycm9yJ10gPSAnPHA+VGFwYWh0dW1hLCBqb3RhIGt1dHN1dGFhbiwga3VuIExvbWFrZXJha2VudGFqYW4gbG9tYWtrZWVuIGwmYXVtbDtoZXR0JmF1bWw7bWlzZXNzJmF1bWw7IHRhcGFodHV1IHZpcmhlPC9wPg0KPGg0PlBhcmFtZXRyaXQ8L2g0Pg0KPHVsPg0KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIExvbWFra2VlbiBuaW1pIChzdHJpbmcpPC9saT4NCjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gU2lzJmF1bWw7aW5lbiBsb21ha2tlZW4gdHVubmlzdGUgKGludCk8L2xpPg0KPGxpPjxlbT5lcnJvcjwvZW0+IC0gTGlzdGEgdHVubmV0dWlzdGEgdmlyaGVpc3QmYXVtbDsgKHN0cmluZyk8L2xpPg0KPC91bD4gJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1EaXNwbGF5J10gPSAnPHA+VGFwYWh0dW1hLCBqb3RhIGt1dHN1dGFhbiwga3VuIExvbWFrZXJha2VudGFqYW4gbG9tYWtlIG4mYXVtbDt5dGV0JmF1bWw7JmF1bWw7bjwvcD4NCjxoND5QYXJhbWV0cml0PC9oND4NCjx1bD4NCjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBMb21ha2tlZW4gbmltaSAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFNpcyZhdW1sO2luZW4gbG9tYWtrZWVuIHR1bm5pc3RlIChpbnQpPC9saT4NCjwvdWw+ICc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfcmVzcG9uc2VfaWQnXSA9ICdWYXN0YXVzdHVubmlzdGUuIFQmYXVtbDt0JmF1bWw7IGsmYXVtbDt5dHQmYXVtbDsmYXVtbDsgRm9ybUJyb3dzZXInOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX3Bhc3NlZF9mcm9tX3RhZyddID0gJ0tlbnR0aWVuIG9sZXR1c2Fydm90OyBrYXRzbyBsaXMmYXVtbDt0aWV0b2EgbW9kdXVsaW4gb2hqZWlzdGEnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2ZpZWxkX2lkJ10gPSAnS2VudCZhdW1sO24gdHVubmlzdGUgc2lzJmF1bWw7aXNpbGxlIHRvaW1pbm5vaWxsZSc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZm9ybV9uYW1lJ10gPSAnTG9tYWtrZWVuIG5pbWknOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2Zvcm1faWQnXSA9ICdMb21ha2tlZW4gdHVubmlzdGUgc2lzJmF1bWw7aXNpbGxlIHRvaW1pbm5vaWxsZSc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZ2VuZXJhbCddID0gJ1lsZWlzZXQgcGFyYW1ldHJpdCBzaXMmYXVtbDtpc2lsbGUgdG9pbWlubm9pbGxlJzsKJGxhbmdbJ3RlbXBsYXRlX3ZhcmlhYmxlX2hlbHAnXSA9ICc8aDM+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+Rm9yIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIG1vZHVsZSwgRkFRcywgb3IgdG8gZmlsZSBhIEJ1ZyBSZXBvcnQsIHBsZWFzZSB2aXNpdCB0aGUgQ01TIE1hZGUgU2ltcGxlICA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnIj5EZXZlbG9wZXIgRm9yZ2U8L2E+LjwvbGk+DQo8bGk+VG8gb2J0YWluIGNvbW1lcmNpYWwgc3VwcG9ydCwgcGxlYXNlIHNlbmQgYW4gZW1haWwgdG8gdGhlIGF1dGhvciBhdCA8YSBocmVmPSJtYWlsdG86c2pnQGNtc21vZHVsZXMuY29tIj48c2pnQGNtc21vZHVsZXMuY29tPjwvYT4uPC9saT4NCjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyI+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uPC9saT4NCjxsaT5UaGUgYXV0aG9yIGNhbiBvZnRlbiBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaXJjOi8vaXJjLmZyZWVub2RlLm5ldC8jY21zIj5DTVMgSVJDIENoYW5uZWw8L2E+LjwvbGk+DQo8bGk+TGFzdGx5LCB5b3UgbWF5IGhhdmUgc29tZSBzdWNjZXNzIGVtYWlsaW5nIHRoZSBhdXRob3IgZGlyZWN0bHkgYW5kIGdyb3ZlbGxpbmcgZm9yIGZyZWUgc3VwcG9ydC48L2xpPg0KPC91bD4NCjxwPkFzIHBlciB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkIGFzLWlzLiBQbGVhc2UgcmVhZCB0aGUgdGV4dA0Kb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuPC9wPg0KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+DQo8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMDcsIFNhbXVlbCBHb2xkc3RlaW4gPGEgaHJlZj0ibWFpbHRvOnNqZ0BjbXNtb2R1bGVzLmNvbSI+PHNqZ0BjbXNtb2R1bGVzLmNvbT48L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+DQo8cD5UaGlzIG1vZHVsZSBoYXMgYmVlbiByZWxlYXNlZCB1bmRlciB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5HTlUgUHVibGljIExpY2Vuc2U8L2E+LiBZb3UgbXVzdCBhZ3JlZSB0byB0aGlzIGxpY2Vuc2UgYmVmb3JlIHVzaW5nIHRoZSBtb2R1bGUuPC9wPic7CiRsYW5nWydxY2EnXSA9ICdQMC00MTgwNTUzODgtMTI2OTg1MzEzNzkxMSc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEyNzQ0MzA3MzkuMjIuMi51dG1jY249KHJlZmVycmFsKXx1dG1jc3I9Zm9ydW0uY21zbWFkZXNpbXBsZS5vcmd8dXRtY2N0PS9pbmRleC5waHAvYm9hcmQsMTUuMC5odG1sfHV0bWNtZD1yZWZlcnJhbCc7CiRsYW5nWyd1dG1hJ10gPSAnMTU2ODYxMzUzLjIxMjE4NjQzNDMuMTI2OTg1MzEzOC4xMjc0NDMwNzM5LjEyNzQ0MzU3NDYuMjMnOwokbGFuZ1sndXRtYyddID0gJzE1Njg2MTM1Myc7CiRsYW5nWyd1dG1iJ10gPSAnMTU2ODYxMzUzLjEuMTAuMTI3NDQzNTc0Nic7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lang/ext/fr_FR.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0Zvcm0gQnVpbGRlciAnOwokbGFuZ1snZmllbGRfdHlwZV8nXSA9ICdUeXBlIGRlIGNoYW1wIG5vbiByZW5zZWlnbiZlYWN1dGU7JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2F0YWxvZ2VySXRlbXNGaWVsZCddID0gJ1MmZWFjdXRlO2xlY3Rpb25uZXIgdW4gKG91IHBsdXNpZXVycykgaXRlbXMgZGUgQ2F0YWxvZ2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmllbGRzZXRFbmQnXSA9ICctRmluIGRlIGNoYW1wIHJlbnNlaWduJmVhY3V0ZTsnOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldFN0YXJ0J10gPSAnLUQmZWFjdXRlO2J1dCBkZSBjaGFtcCByZW5zZWlnbiZlYWN1dGU7JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkJ10gPSAnTGlnbmUgZGUgdGV4dGUgc2ltcGxlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfSFRNTDVOdW1iZXJGaWVsZCddID0gJ05vbWJyZSBkJiMwMzk7ZW50ciZlYWN1dGU7ZSBIVE1MNSc7CiRsYW5nWydmaWVsZF90eXBlX0hUTUw1RW1haWxGaWVsZCddID0gJ0VudHImZWFjdXRlO2UgRW1haWwgSFRNTDUnOwokbGFuZ1snZmllbGRfdHlwZV9IVE1MNVVSTEZpZWxkJ10gPSAnRW50ciZlYWN1dGU7ZSBVUkwgSFRNTDUnOwokbGFuZ1snZmllbGRfdHlwZV9QYXNzd29yZEZpZWxkJ10gPSAnTW90IGRlIHBhc3NlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUGFzc3dvcmRBZ2FpbkZpZWxkJ10gPSAnTW90IGRlIHBhc3NlICgmYWdyYXZlOyBub3V2ZWF1IHBvdXIgdiZlYWN1dGU7cmlmaWNhdGlvbiknOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0RmllbGRFeHBhbmRhYmxlJ10gPSAnTGlnbmVzIGRlIHRleHRlIG11bHRpcGxlcyc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRBcmVhRmllbGQnXSA9ICdab25lIGRlIHRleHRlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQnV0dG9uRmllbGQnXSA9ICdCb3V0b24nOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEZpZWxkJ10gPSAnQm8maWNpcmM7dGUgJmFncmF2ZTsgY29jaGVyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hHcm91cEZpZWxkJ10gPSAnR3JvdXBlIGRlIGJvJmljaXJjO3RlcyAmYWdyYXZlOyBjb2NoZXInOwokbGFuZ1snZmllbGRfdHlwZV9QdWxsZG93bkZpZWxkJ10gPSAnTWVudSBkJmVhY3V0ZTtyb3VsYW50JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfWWVhclB1bGxEb3duRmllbGQnXSA9ICdNZW51IGQmZWFjdXRlO3JvdWxhbnQgYW5uJmVhY3V0ZTtlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTXVsdGlzZWxlY3RGaWVsZCddID0gJ1MmZWFjdXRlO2xlY3Rpb24gbXVsdGlwbGUnOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0ZVBpY2tlckZpZWxkJ10gPSAnUyZlYWN1dGU7bGVjdGlvbm5lciB1biAmZWFjdXRlO3RhdCBkZXMgVVNBJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUHJvdmluY2VQaWNrZXJGaWVsZCddID0gJ1MmZWFjdXRlO2xlY3Rpb25uZXIgdW5lIFByb3ZpbmNlIGR1IENhbmFkYSc7CiRsYW5nWydmaWVsZF90eXBlX0NvdW50cnlQaWNrZXJGaWVsZCddID0gJ1MmZWFjdXRlO2xlY3Rpb25uZXIgdW4gcGF5cyc7CiRsYW5nWydmaWVsZF90eXBlX0RhdGVQaWNrZXJGaWVsZCddID0gJ1MmZWFjdXRlO2xlY3Rpb25uZXIgdW5lIGRhdGUnOwokbGFuZ1snZmllbGRfdHlwZV9UaW1lUGlja2VyRmllbGQnXSA9ICdTJmVhY3V0ZTtsZWN0aW9ubmVyIHVuZSBoZXVyZSc7CiRsYW5nWydmaWVsZF90eXBlX1JhZGlvR3JvdXBGaWVsZCddID0gJ0dyb3VwZSBkZSBib3V0b25zIHJhZGlvJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EaXJlY3RvciddID0gJypBZHJlc3NlciBwYXIgbWFpbCBsZXMgciZlYWN1dGU7c3VsdGF0cyBhcHImZWdyYXZlO3MgY2hvaXggcGFyIG1lbnUgZCZlYWN1dGU7cm91bGFudCc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRmlsZURpcmVjdG9yJ10gPSAnKlNhdXZlZ2FyZGVyIGxlcyByJmVhY3V0ZTtzdWx0YXRzIHZlcnMgdW4gZmljaGllciBhcHImZWdyYXZlO3MgY2hvaXggcGFyIG1lbnUgZCZlYWN1dGU7cm91bGFudCc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uTXVsdGlzZWxlY3RGaWxlRGlyZWN0b3InXSA9ICcqU2F1dmVnYXJkZXIgZW4gZmljaGllcihzKSBsZXMgciZlYWN1dGU7c3VsdGF0cyBkZXMgcyZlYWN1dGU7bGVjdGlvbnMgbXVsdGlwbGVzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25QYWdlUmVkaXJlY3RvciddID0gJypSZWRpcmlnZXIgdmVycyBsYSBwYWdlICZhZ3JhdmU7IHBhcnRpciBkJiMwMzk7dW4gbWVudSBkJmVhY3V0ZTtyb3VsYW50JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbCddID0gJypFbnZveWVyIHBhciBtYWlsIGxlcyByJmVhY3V0ZTtzdWx0YXRzIGF1eCBhZHJlc3NlcyBmb3Vybmllcyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxDb25maXJtYXRpb24nXSA9ICcqVmFsaWRhdGlvbiB2aWEgYWRyZXNzZSBtYWlsJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Gcm9tRW1haWxBZGRyZXNzRmllbGQnXSA9ICcqTWFpbCBjaGFtcCAmcXVvdDtGcm9tIEFkZHJlc3MmcXVvdDssIGV0IGVudm9pZSBjb3BpZSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRmlsZSddID0gJyomRWFjdXRlO2NyaXJlIGxlcyByJmVhY3V0ZTtzdWx0YXRzIGRhbnMgdW4gZmljaGllcic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGF0YWJhc2UnXSA9ICcqU3RvY2tlciBsZXMgciZlYWN1dGU7c3VsdGF0cyBkYW5zIGxhIGJhc2UgZGUgZG9ubiZlYWN1dGU7ZXMnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZvcm1Ccm93c2VyJ10gPSAnKlN0b2NrZXIgbGVzIHImZWFjdXRlO3N1bHRhdHMgcG91ciBsZSBtb2R1bGUgRm9ybUJyb3dzZXIgdjAuMyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uVXNlclRhZyddID0gJypBcHBlbGVyIHVuZSBiYWxpc2UgdXRpbGlzYXRldXIgYXZlYyBsZSBmb3JtdWxhaXJlIHImZWFjdXRlO3N1bHRhdHMnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZvcm0nXSA9ICcqU291bWV0dHJlICZhZ3JhdmU7IHVuZSBxdWVsY29ucXVlIGZvcm1lIGQmIzAzOTthY3Rpb24nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRlbGl2ZXJUb0VtYWlsQWRkcmVzc0ZpZWxkJ10gPSAnKkVudm95ZXIgcGFyIG1haWwgYXV4IHV0aWxpc2F0ZXVycyBheWFudCBmb3VybmkgdW5lIGFkcmVzc2UnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsU2l0ZUFkbWluJ10gPSAnKk1haWwgdmVycyBsJiMwMzk7YWRtaW5pc3RyYXRldXIgZHUgQ01TJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUGFnZUJyZWFrRmllbGQnXSA9ICctU2F1dCBkZSBwYWdlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmlsZVVwbG9hZEZpZWxkJ10gPSAnRmljaGllciAmYWdyYXZlOyBlbnZveWVyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsQWRkcmVzc0ZpZWxkJ10gPSAnQ2hhbXAgZHUgbWFpbCAmcXVvdDtGcm9tIEFkcmVzc2UmcXVvdDsnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxBZGRyZXNzQWdhaW5GaWVsZCddID0gJ0NoYW1wIGR1IG1haWwgJnF1b3Q7RnJvbSBBZHJlc3NlJnF1b3Q7ICZhZ3JhdmU7IG5vdXZlYXUnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxOYW1lRmllbGQnXSA9ICdDaGFtcCBkdSBtYWlsICZxdW90O0Zyb20gTm9tJnF1b3Q7JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsU3ViamVjdEZpZWxkJ10gPSAnQ2hhbXAgZHUgbWFpbCAmcXVvdDtTdWpldCZxdW90Oyc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRpY1RleHRGaWVsZCddID0gJy1UZXh0ZSBzdGF0aXF1ZSc7CiRsYW5nWydmaWVsZF90eXBlX1N5c3RlbUxpbmtGaWVsZCddID0gJy1MaWVuIHN0YXRpcXVlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTGlua0ZpZWxkJ10gPSAnTGllbiAodXRpbGlzYXRldXIgY29ubnUpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfSGlkZGVuRmllbGQnXSA9ICctQ2hhbXAgY2FjaCZlYWN1dGU7JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ29tcHV0ZWRGaWVsZCddID0gJy1DaGFtcCBjYWxjdWwmZWFjdXRlOyc7CiRsYW5nWydmaWVsZF90eXBlX1VuaXF1ZUludGVnZXJGaWVsZCddID0gJy1FbnRpZXIgdW5pcXVlIChTJmVhY3V0ZTtyaWUpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVXNlclRhZ0ZpZWxkJ10gPSAnLUFwcGVsZXIgdW5lIGJhbGlzZSB1dGlsaXNhdGV1cic7CiRsYW5nWydmaWVsZF90eXBlX0NvbXBhbnlEaXJlY3RvcnlGaWVsZCddID0gJ0NoYW1wIENvbXBhbnkgRGlyZWN0b3J5JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTW9kdWxlSW50ZXJmYWNlRmllbGQnXSA9ICctQ2hhbXAgTW9kdWxlIEludGVyZmFjZSc7CiRsYW5nWyd2YWxpZGF0aW9uX25vbmUnXSA9ICdTYW5zIFZhbGlkYXRpb24nOwokbGFuZ1sndmFsaWRhdGlvbl9udW1lcmljJ10gPSAnTnVtJmVhY3V0ZTtyaXF1ZSc7CiRsYW5nWyd2YWxpZGF0aW9uX2ludGVnZXInXSA9ICdFbnRpZXInOwokbGFuZ1sndmFsaWRhdGlvbl9lbWFpbF9hZGRyZXNzJ10gPSAnQWRyZXNzZSBtYWlsJzsKJGxhbmdbJ3ZhbGlkYXRpb25fdXNwaG9uZSddID0gJ051bSZlYWN1dGU7cm8gZGUgdCZlYWN1dGU7bCZlYWN1dGU7cGhvbmUgKFVTKSc7CiRsYW5nWyd2YWxpZGF0aW9uX211c3RfY2hlY2snXSA9ICdEb2l0ICZlY2lyYzt0cmUgdiZlYWN1dGU7cmlmaSZlYWN1dGU7JzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbWF0Y2gnXSA9ICdWYWxpZGVyIGwmIzAzOTtleHByZXNzaW9uIHJlZ3VsaSZlZ3JhdmU7cmUnOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9ub21hdGNoJ10gPSAnTmUgcGFzIHZhbGlkZXIgbCYjMDM5O2V4cHJlc3Npb24gcmVndWxpJmVncmF2ZTtyZSc7CiRsYW5nWydyZXF1aXJlZF9maWVsZF9taXNzaW5nJ10gPSAnVW4gY2hhbXAgb2JsaWdhdG9pcmUgbiYjMDM5O2EgcGFzICZlYWN1dGU7dCZlYWN1dGU7IHJlbXBsaSc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV92YWx1ZSddID0gJ1ZldWlsbGV6IGVudHJlciB1bmUgdmFsZXVyIHBvdXIgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfbnVtYmVyJ10gPSAnVmV1aWxsZXogZW50cmVyIHVuIG5vbWJyZSBwb3VyICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl92YWxpZCddID0gJ1ZldWlsbGV6IGVudHJlciB1bmUgdmFsZXVyIGNvcnJlY3RlIHBvdXIgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FuX2ludGVnZXInXSA9ICdWZXVpbGxleiBlbnRyZXIgdW5lIHZhbGV1ciBlbnRpJmVncmF2ZTtyZSBwb3VyICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hbl9lbWFpbCddID0gJ1ZldWlsbGV6IGVudHJlciB1bmUgYWRyZXNzZSBtYWlsIHZhbGlkZSBwb3VyICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ2VtYWlsX2FkZHJlc3NfZG9lc19ub3RfbWF0Y2gnXSA9ICdMJiMwMzk7YWRyZXNzZSBtYWlsIG5lIGNvcnJlc3BvbmQgcGFzICZhZ3JhdmU7IGxhIHZhbGV1ciBkZSAmcXVvdDslIHMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfcGhvbmUnXSA9ICdWZXVpbGxleiBlbnRyZXIgdW4gbnVtJmVhY3V0ZTtybyBkZSB0JmVhY3V0ZTtsJmVhY3V0ZTtwaG9uZSB2YWxpZGUgcG91ciAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfbG9naW4nXSA9ICdNZXJjaSBkZSB2b3VzIGNvbm5lY3RleiBhdmVjIGNlIGZvcm11bGFpcmUnOwokbGFuZ1snbm90X3ZhbGlkX2VtYWlsJ10gPSAnJnF1b3Q7JXMmcXVvdDsgbmUgc2VtYmxlIHBhcyAmZWNpcmM7dHJlIHVuZSBhZHJlc3NlIG1haWwgdmFsaWRlICEnOwokbGFuZ1sncGxlYXNlX2VudGVyX25vX2xvbmdlciddID0gJ1ZldWlsbGV6IGVudHJlciB1bmUgdmFsZXVyIGF5YW50IG1vaW5zIGRlICVzIGNhcmFjdCZlZ3JhdmU7cmVzJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hdF9sZWFzdCddID0gJ1ZldWlsbGV6IGVudHJlciB1bmUgdmFsZXVyIGF1IG1pbmltdW0gZGUgJSBzIGNhcmFjdCZlZ3JhdmU7cmVzJzsKJGxhbmdbJ3RpdGxlX2xpc3RfZGVsaW1pdGVyJ10gPSAnQ2FyYWN0JmVncmF2ZTtyZSB1dGlsaXMmZWFjdXRlOyBjb21tZSAmcXVvdDtzJmVhY3V0ZTtwYXJhdGV1ciZxdW90OyBkYW5zIGxlcyBmb3JtdWxhaXJlcyByZSZjY2VkaWw7dXMgY29udGVuYW50IHBsdXMgZCYjMDM5O3VuZSB2YWxldXImbmJzcDsnOwokbGFuZ1sneW91X25lZWRfcGVybWlzc2lvbiddID0gJ0lsIHZvdXMgZmF1dCBsYSBwZXJtaXNzaW9uICZxdW90OyVzJnF1b3Q7IHBvdXIgZXgmZWFjdXRlO2N1dGVyIGNldHRlIG9wJmVhY3V0ZTtyYXRpb24uJzsKJGxhbmdbJ2xhY2twZXJtaXNzaW9uJ10gPSAnRCZlYWN1dGU7c29sJmVhY3V0ZTsgISBWb3VzIG4mIzAzOTthdmV6IHBhcyBsZXMgZHJvaXRzIHN1ZmZpc2FudHMgcG91ciBhY2MmZWFjdXRlO2RlciAmYWdyYXZlOyBjZXR0ZSBzZWN0aW9uLic7CiRsYW5nWydmaWVsZF9vcmRlcl91cGRhdGVkJ10gPSAnT3JkcmUgZGVzIGNoYW1wcyBtaXMgJmFncmF2ZTsgam91ci4nOwokbGFuZ1snZm9ybV9kZWxldGVkJ10gPSAnRm9ybXVsYWlyZSBzdXBwcmltJmVhY3V0ZTsuJzsKJGxhbmdbJ2ZpZWxkX2RlbGV0ZWQnXSA9ICdDaGFtcCBzdXBwcmltJmVhY3V0ZTsuJzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb25fdXBkYXRlZCddID0gJ0NvbmZpZ3VyYXRpb24gbWlzZSAmYWdyYXZlOyBqb3VyLic7CiRsYW5nWyd5b3VfbXVzdF9jaGVjayddID0gJ1YmZWFjdXRlO3JpZmlleiAmcXVvdDslcyZxdW90OyBwb3VyIHBvdXZvaXIgY29udGludWVyLic7CiRsYW5nWydtdXN0X3NwZWNpZnlfb25lX2Rlc3RpbmF0aW9uJ10gPSAnVm91cyBkZXZleiBwciZlYWN1dGU7Y2lzZXIgYXUgbW9pbnMgdW5lIGFkcmVzc2UgZGUgZGVzdGluYXRpb24gISc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2Zvcm0nXSA9ICdWb3VsZXotdm91cyB2cmFpbWVudCBzdXBwcmltZXIgbGUgZm9ybXVsYWlyZSAlcyA/JzsKJGxhbmdbJ2FyZV95b3Vfc3VyZV9kZWxldGVfZmllbGQnXSA9ICdWb3VsZXotdm91cyB2cmFpbWVudCBzdXBwcmltZXIgbGUgY2hhbXAgJXMgPyc7CiRsYW5nWydub3RpY2Vfc2VsZWN0X3R5cGUnXSA9ICdMZXMgb3B0aW9ucyBhdmFuYyZlYWN1dGU7ZXMgbmUgc2Vyb250IGRpc3BvbmlibGVzIHF1ZSBsb3JzcXVlIHF1JiMwMzk7dW4gdHlwZSBkZSBjaGFtcCBhdXJhICZlYWN1dGU7dCZlYWN1dGU7IGNob2lzaS4nOwokbGFuZ1snZmllbGRfbmFtZV9pbl91c2UnXSA9ICdJbCBleGlzdGUgZCZlYWN1dGU7aiZhZ3JhdmU7IHVuIGNoYW1wICZxdW90OyVzJnF1b3Q7IHV0aWxpcyZlYWN1dGU7LiBVdGlsaXNleiBkZXMgbm9tcyBkZSBjaGFtcCB1bmlxdWVzIG91IGQmZWFjdXRlO3NhY3RpdmV6IGNldHRlIGZvbmN0aW9uIGRhbnMgbGEgY29uZmlndXJhdGlvbiBkZSBGb3JtIEJ1aWxkZXIuJzsKJGxhbmdbJ2ZpZWxkX25vX25hbWUnXSA9ICdUb3VzIGxlcyBjaGFtcHMgZG9pdmVudCAmZWNpcmM7dHJlIG5vbW0mZWFjdXRlO3MsIHNpbm9uIGQmZWFjdXRlO3NhY3RpdmV6IGNldHRlIGZvbmN0aW9uIGRhbnMgbGEgY29uZmlndXJhdGlvbiBkZSBGb3JtIEJ1aWxkZXIuJzsKJGxhbmdbJ2Fub255bW91cyddID0gJ0Fub255bWUnOwokbGFuZ1snYWJicmV2aWF0aW9uX2xlbmd0aCddID0gJ0xvbmd1ZXVyIDogJXMnOwokbGFuZ1snYm94ZXMnXSA9ICclcyBibyZpY2lyYzt0ZXMnOwokbGFuZ1snb3B0aW9ucyddID0gJyVzIG9wdGlvbnMgJzsKJGxhbmdbJ3RleHRfbGVuZ3RoJ10gPSAnJXMgY2FyYWN0JmVncmF2ZTtyZXMuJzsKJGxhbmdbJ29yZGVyJ10gPSAnT3JkcmUnOwokbGFuZ1sndW5zcGVjaWZpZWQnXSA9ICdbbm9uIHNwJmVhY3V0ZTtjaWZpJmVhY3V0ZTtdJzsKJGxhbmdbJ2FkZGVkJ10gPSAnYWpvdXQmZWFjdXRlOyc7CiRsYW5nWyd1cGRhdGVkJ10gPSAnbWlzICZhZ3JhdmU7IGpvdXInOwokbGFuZ1snc29ydF9vcHRpb25zJ10gPSAnVHJpZXIgbGVzIG9wdGlvbnMgJmFncmF2ZTsgbCYjMDM5O2V4JmVhY3V0ZTtjdXRpb24mbmJzcDsnOwokbGFuZ1snc2VsZWN0X29uZSddID0gJ1MmZWFjdXRlO2xlY3Rpb25uZXotZW4gdW4nOwokbGFuZ1snc2VsZWN0X3R5cGUnXSA9ICdTJmVhY3V0ZTtsZWN0aW9ubmV6IGxlIHR5cGUnOwokbGFuZ1sndG8nXSA9ICdQb3VyJzsKJGxhbmdbJ3llcyddID0gJ091aSc7CiRsYW5nWydubyddID0gJ05vbic7CiRsYW5nWydyZWNpcGllbnRzJ10gPSAnZGVzdGluYXRhaXJlcyc7CiRsYW5nWydmaWxlX2NvdW50J10gPSAnJXMgZmljaGllcnMgcG9zc2libGVzJzsKJGxhbmdbJ2Rlc3RpbmF0aW9uX2NvdW50J10gPSAnJXMgZGVzdGluYXRpb25zICc7CiRsYW5nWydzYXZlJ10gPSAnU2F1dmVnYXJkZXInOwokbGFuZ1snYWRkJ10gPSAnQWpvdXRlcic7CiRsYW5nWyd1cGRhdGUnXSA9ICdNaXNlICZhZ3JhdmU7IGpvdXInOwokbGFuZ1snc2F2ZV9hbmRfY29udGludWUnXSA9ICdTYXV2ZWdhcmRlciBldCBjb250aW51ZXIgbCYjMDM5OyZlYWN1dGU7ZGl0aW9uJzsKJGxhbmdbJ2luZm9ybWF0aW9uJ10gPSAnSW5mb3JtYXRpb24gJzsKJGxhbmdbJ2F1dG9tYXRpYyddID0gJ0F1dG9tYXRpcXVlJzsKJGxhbmdbJ2Zvcm1zJ10gPSAnRm9ybXVsYWlyZXMnOwokbGFuZ1snZm9ybSddID0gJ0Zvcm11bGFpcmUgJXMnOwokbGFuZ1snY29uZmlndXJhdGlvbiddID0gJ0NvbmZpZ3VyYXRpb24gJzsKJGxhbmdbJ2ZpZWxkX3JlcXVpcmVtZW50X3VwZGF0ZWQnXSA9ICdDaGFtcCByZXF1aXMgbWlzICZhZ3JhdmU7IGpvdXIuJzsKJGxhbmdbJ21heGltdW1fc2l6ZSddID0gJ1RhaWxsZSBNYXhpbXVtJzsKJGxhbmdbJ3Blcm1pdHRlZF9leHRlbnNpb25zJ10gPSAnRXh0ZW5zaW9ucyAnOwokbGFuZ1sncGVybWl0dGVkX2ZpbGV0eXBlcyddID0gJ1R5cGVzIGRlIGZpY2hpZXIgYXV0b3JpcyZlYWN1dGU7cyc7CiRsYW5nWydmaWxlX3Rvb19sYXJnZSddID0gJ0ZpY2hpZXIgZW52b3kmZWFjdXRlOyB0cm9wIGxvdXJkICEgTGEgdGFpbGxlIG1heGltdW0gZXN0IGRlIDombmJzcDsnOwokbGFuZ1snaWxsZWdhbF9maWxlX3R5cGUnXSA9ICdDZSB0eXBlIGRlIGZpY2hpZXIgbiYjMDM5O2VzdCBwYXMgYWNjZXB0JmVhY3V0ZTsuIFZldWlsbGV6IHYmZWFjdXRlO3JpZmllciBsJiMwMzk7ZXh0ZW5zaW9uIGRlIHZvdHJlIGZpY2hpZXIuJzsKJGxhbmdbJ3VwbG9hZCddID0gJ0Vudm9pJzsKJGxhbmdbJ2Zvcm1faW1wb3J0ZWQnXSA9ICdGb3JtdWxhaXJlIEltcG9ydCZlYWN1dGU7Lic7CiRsYW5nWydmb3JtX2ltcG9ydF9mYWlsZWQnXSA9ICdMJiMwMzk7aW1wb3J0YXRpb24gZHUgZm9ybXVsYWlyZSBhICZlYWN1dGU7Y2hvdSZlYWN1dGU7ICEgSWwgeSBhIHVuIHByb2JsJmVncmF2ZTttZSBhdmVjIGxlIGZvcm1hdCBkdSBmaWNoaWVyIFhNTC4nOwokbGFuZ1sncm93cyddID0gJyVzIGxpZ25lcyc7CiRsYW5nWydjb2xzJ10gPSAnJXMgY29sb25uZXMnOwokbGFuZ1snMTJfaG91ciddID0gJ1N1ciAxMiBoZXVyZXMnOwokbGFuZ1snMjRfaG91ciddID0gJ1N1ciAyNCBoZXVyZXMnOwokbGFuZ1snaG91ciddID0gJ0hldXJlJzsKJGxhbmdbJ21pbiddID0gJ01pbnV0ZSAnOwokbGFuZ1snbWVyaWQnXSA9ICdNJmVhY3V0ZTtyaWRpZW4nOwokbGFuZ1snZGF0ZV9yYW5nZSddID0gJ09yZHJlIDogJXMgLSAlcyc7CiRsYW5nWyd0aGFua3MnXSA9ICdNZXJjaSAhIFZvdHJlIGZvcm11bGFpcmUgYSAmZWFjdXRlO3QmZWFjdXRlOyByZSZjY2VkaWw7dS4nOwokbGFuZ1snZWRpdCddID0gJ0VkaXRlcic7CiRsYW5nWydkZWxldGUnXSA9ICdTdXBwcmltZXInOwokbGFuZ1snZGF5J10gPSAnSm91cic7CiRsYW5nWydtb24nXSA9ICdNb2lzJzsKJGxhbmdbJ3llYXInXSA9ICdBbm4mZWFjdXRlO2UnOwokbGFuZ1snbm9uZSddID0gJyhBdWN1biknOwokbGFuZ1snY3NzJ10gPSAnQ1NTICc7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHVsZSBkJmVhY3V0ZTtzaW5zdGFsbCZlYWN1dGU7Lic7CiRsYW5nWydpbnN0YWxsZWQnXSA9ICdNb2R1bGUgdmVyc2lvbiAlcyBpbnN0YWxsJmVhY3V0ZTtlLic7CiRsYW5nWyd1cGdyYWRlZCddID0gJ01vZHVsZSBtaXMgJmFncmF2ZTsgam91ciAmYWdyYXZlOyBsYSB2ZXJzaW9uICVzLic7CiRsYW5nWydidXR0b25fcHJldmlvdXMnXSA9ICdSZXRvdXIuLi4nOwokbGFuZ1snYnV0dG9uX3N1Ym1pdCddID0gJ0Vudm95ZXInOwokbGFuZ1snYnV0dG9uX2NvbnRpbnVlJ10gPSAnU3VpdmFudC4uLic7CiRsYW5nWyd2YWx1ZV9jaGVja2VkJ10gPSAnViZlYWN1dGU7cmlmaSZlYWN1dGU7JzsKJGxhbmdbJ3ZhbHVlX3VuY2hlY2tlZCddID0gJ05vbiB2JmVhY3V0ZTtyaWZpJmVhY3V0ZTsnOwokbGFuZ1sndGFiX21haW4nXSA9ICdQcmluY2lwYWwnOwokbGFuZ1sndGFiX3N5bWJvbCddID0gJ1BhcmFtJmVncmF2ZTt0cmVzIGQmIzAzOTthZmZpY2hhZ2UgZHUgRm9ybXVsYWlyZSc7CiRsYW5nWyd0YWJfc3VibWl0J10gPSAnRW52b2kgZHUgRm9ybXVsYWlyZSc7CiRsYW5nWyd0YWJfY2FwdGNoYSddID0gJ09wdGlvbnMgQ2FwdGNoYSAnOwokbGFuZ1sndGFiX2FkdmFuY2VkJ10gPSAnT3B0aW9ucyBhdmFuYyZlYWN1dGU7ZXMnOwokbGFuZ1sndGFiX3RlbXBsYXRlbGF5b3V0J10gPSAnR2FiYXJpdCBkdSBGb3JtdWxhaXJlJzsKJGxhbmdbJ3RhYl9zdWJtaXNzaW9udGVtcGxhdGUnXSA9ICdHYWJhcml0IGRlIGwmIzAzOTtlbnZvaSc7CiRsYW5nWyd0YWJfdWR0J10gPSAnSW50ZWdyYXRpb24gYmFsaXNlIHV0aWxpc2F0ZXVyJzsKJGxhbmdbJ2NhbnVzZV9zbWFydHknXSA9ICc8ZW0+TGVzIHZhcmlhYmxlcyBTbWFydHkgc29udCBhY3RpdmVzIGRhbnMgY2UgY2hhbXAuPC9lbT4nOwokbGFuZ1snYWRkX29wdGlvbnMnXSA9ICdBam91dGVyIHBsdXMgZCYjMDM5O29wdGlvbnMnOwokbGFuZ1snZGVsZXRlX29wdGlvbnMnXSA9ICdTdXBwcmltZXIgbGVzIG9wdGlvbnMgcyZlYWN1dGU7bGVjdGlvbm4mZWFjdXRlO2VzJzsKJGxhbmdbJ2FkZF9jaGVja2JveGVzJ10gPSAnQWpvdXRlciBkJiMwMzk7YXV0cmVzIGJvJmljaXJjO3RlcyBkZSB2JmVhY3V0ZTtyaWZpY2F0aW9uJzsKJGxhbmdbJ2RlbGV0ZV9jaGVja2JveGVzJ10gPSAnU3VwcHJpbWVyIGxlcyBibyZpY2lyYzt0ZXMgZGUgdiZlYWN1dGU7cmlmaWNhdGlvbiBzJmVhY3V0ZTtsZWN0aW9ubiZlYWN1dGU7ZXMnOwokbGFuZ1snYWRkX2FkZHJlc3MnXSA9ICdBam91dGVyIGQmIzAzOTthdXRyZXMgYWRyZXNzZXMgbWFpbCc7CiRsYW5nWydkZWxldGVfYWRkcmVzcyddID0gJ1N1cHByaW1lciBsZXMgYWRyZXNzZXMgbWFpbCBzJmVhY3V0ZTtsZWN0aW9ubiZlYWN1dGU7ZXMnOwokbGFuZ1snYWRkX2Rlc3RpbmF0aW9uJ10gPSAnQWpvdXRlciBkJiMwMzk7YXV0cmVzIGRlc3RpbmF0aW9ucyc7CiRsYW5nWydkZWxldGVfZGVzdGluYXRpb24nXSA9ICdTdXBwcmltZXIgbGVzIGRlc3RpbmF0aW9ucyBzJmVhY3V0ZTtsZWN0aW9ubiZlYWN1dGU7ZXMnOwokbGFuZ1snc3VzcGVjdGVkX3NwYW0nXSA9ICdUcm9wIGRlIG1haWxzIHNvbnQgZyZlYWN1dGU7biZlYWN1dGU7ciZlYWN1dGU7cyAmYWdyYXZlOyBwYXJ0aXIgZGUgdm90cmUgYWRyZXNzZSBJUCAhIExlIHN5c3QmZWdyYXZlO21lIGFudGktc3BhbSBhICZlYWN1dGU7dCZlYWN1dGU7IGFjdGl2JmVhY3V0ZTsgZXQgbGVzIGFkbWluaXN0cmF0ZXVycyBkdSBzaXRlIGVuIG9udCAmZWFjdXRlO3QmZWFjdXRlOyBpbmZvcm0mZWFjdXRlO3MuJzsKJGxhbmdbJ3N1c3BlY3RlZF9zcGFtX2xvZyddID0gJ0RlIHBvc3NpYmxlcyBzcGFtcyBwcm92ZW5hbnQgZGUgbCYjMDM5O0lQICVzIG9udCAmZWFjdXRlO3QmZWFjdXRlOyBzdG9wcCZlYWN1dGU7cy4nOwokbGFuZ1sncmVvcmRlciddID0gJ1ImZWFjdXRlO29yZ2FuaXNlciBsZXMgY2hhbXBzJzsKJGxhbmdbJ2NhbmNlbCddID0gJ0FubnVsJmVhY3V0ZTsnOwokbGFuZ1sndmFsdWVfc2V0J10gPSAnVmFsZXVyIGRvbm4mZWFjdXRlO2UgOiAlcyc7CiRsYW5nWydoZWxwX2NhdGFsb2dlcl9hdHRyaWJ1dGVfZmllbGRzJ10gPSAnQmVsb3cgaXMgYSBsaXN0IG9mIHRoZSBhdHRyaWJ1dGVzIGF2YWlsYWJsZSBmcm9tIHRoZSBDYXRhbG9nZXIgbW9kdWxlLjxici8+WW91IGNhbiBvcHRpb25hbGx5IHNwZWNpZnkgdmFsaWQgcmFuZ2VzLCB2YWx1ZXMsIG9yIG51bWVyb3VzIHZhbHVlcyB0byBiZSB1c2VkIGluIGZpbHRlcmluZyB0aGUgbGlzdCBvZiBpdGVtcyB0aGF0IGlzIGRpc3BsYXllZCB0byB0aGUgdXNlci48YnIvPg0KPGJyLz4NCjxzdHJvbmc+UmFuZ2VzOjwvc3Ryb25nPjxici8+DQpSYW5nZXMgY2FuIGJlIHNwZWNpZmllZCBieSBzaWduaWZ5aW5nIGEgbWluaW11bSBhbmQgbWF4aW11bSB2YWx1ZSB1c2luZyB0aGlzIHN5bnRheDogJnF1b3Q7cmFuZ2U6IG1pbnZhbHVlIHRvIG1heHZhbHVlJnF1b3Q7PGJyLz4NCjxici8+DQo8c3Ryb25nPk11bHRpcGxlIFZhbHVlczo8L3N0cm9uZz48YnIvPg0KVG8gc3BlY2lmeSBtdWx0aXBsZSB2YWx1ZXMgZm9yIGFuIGF0dHJpYnV0ZSB1c2UgdGhlIHN5bnRheCAmcXVvdDttdWx0aTogdmFsdWUxfHZhbHVlMnx2YWx1ZTMmcXVvdDs8YnIvPg0KPGJyLz4NCjxzdHJvbmc+VmFsdWVzIGZyb20gaGlkZGVuIGZpZWxkczwvc3Ryb25nPjxici8+DQpUbyBzcGVjaWZ5IGEgdmFsdWUgZnJvbSBhIGhpZGRlbiBmaWVsZCB1c2UgdGhlIHN5bnRheCB7JGZsZF9pZH08YnIvPg0KPGJyLz4nOwokbGFuZ1snaGVscF9uYW1lX3JlZ2V4J10gPSAnVW5lIGV4cHJlc3Npb24gcmVndWxpJmVncmF2ZTtyZSBwb3VyIGZpbHRyZXIgcGFyIG5vbSBsZXMgaXRlbXMgZGUgQ2F0YWxvZ2VyJzsKJGxhbmdbJ2hlbHBfZmllbGRfaGVpZ2h0J10gPSAnTGEgaGF1dGV1ciBkdSBjaGFtcCBtdWx0aXBsZSc7CiRsYW5nWyd0aXRsZV9uYW1lX3JlZ2V4J10gPSAnTm9tIGRlIGwmIzAzOTtleHByZXNzaW9uIHJlZ3VsaSZlZ3JhdmU7cmUgcG91ciBDYXRhbG9nZXInOwokbGFuZ1sndGl0bGVfZmllbGRfaGVpZ2h0J10gPSAnSGF1dGV1ciBkdSBjaGFtcCc7CiRsYW5nWyd0aXRsZV9maWxlX3BhdGgnXSA9ICdEb3NzaWVyIGRlIGRlc3RpbmF0aW9uIHBvdXIgbGVzIGZpY2hpZXJzIGNyJmVhY3V0ZTtlcyZuYnNwOyc7CiRsYW5nWyd0aXRsZV91ZHRfbmFtZSddID0gJ0JhbGlzZSB1dGlsaXNhdGV1ciZuYnNwOyc7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2Rlc3RwYWdlJ10gPSAnUGFnZSBkZSByZXRvdXIgcG91ciBsZXMgbGllbnMgZCYjMDM5O3VwbG9hZHMgKGVudm9pcyknOwokbGFuZ1sndGl0bGVfdXBsb2FkbW9kdWxlX3N1bW1hcnknXSA9ICdFbnZveSZlYWN1dGU7IGF2ZWMgZm9ybWJ1aWxkZXInOwokbGFuZ1sndGl0bGVfdXBsb2Fkc19jYXRlZ29yeSddID0gJ0NhdCZlYWN1dGU7Z29yaWUgZCYjMDM5O1VwbG9hZHMgKGVudm9pcyknOwokbGFuZ1sndGl0bGVfc2VuZHRvX3VwbG9hZHMnXSA9ICdFbnZveWVyIGNlIGZpY2hpZXIgYXUgbW9kdWxlIGQmIzAzOTt1cGxvYWQnOwokbGFuZ1sndGl0bGVfbGVnZW5kJ10gPSAnTCZlYWN1dGU7Z2VuZGUmbmJzcDsnOwokbGFuZ1sndGl0bGVfbWF4aW11bV9sZW5ndGgnXSA9ICdMb25ndWV1ciBtYXhpbXVtJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2xhYmVsJ10gPSAnSW50aXR1bCZlYWN1dGU7IGRlIGxhICBib2l0ZSZuYnNwOyc7CiRsYW5nWyd0aXRsZV9yYWRpb19sYWJlbCddID0gJ0ludGl0dWwmZWFjdXRlOyBkdSBib3V0b24gcmFkaW8nOwokbGFuZ1sndGl0bGVfY2hlY2tlZF92YWx1ZSddID0gJ1ZhbGV1ciB2JmVhY3V0ZTtyaWZpJmVhY3V0ZTtlJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX3VuY2hlY2tlZF92YWx1ZSddID0gJ1ZhbGV1ciBub24tdiZlYWN1dGU7cmlmaSZlYWN1dGU7ZSZuYnNwOyc7CiRsYW5nWyd0aXRsZV9jaGVja2JveF9kZXRhaWxzJ10gPSAnRCZlYWN1dGU7dGFpbHMgZGVzIGdyb3VwZXMgZGVzIGJvaXRlcyBkZSB2JmVhY3V0ZTtyaWZpY2F0aW9ucyZuYnNwOyc7CiRsYW5nWyd0aXRsZV9kZWxldGUnXSA9ICdTdXBwcmltZXIgPyc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rfb25lX21lc3NhZ2UnXSA9ICdUZXh0ZSBwZXJzb25uYWxpc2FibGUgJnF1b3Q7cyZlYWN1dGU7bGVjdGlvbiZxdW90OyZuYnNwOyc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fdmFsdWUnXSA9ICdWYWxldXIgcyZlYWN1dGU7bGVjdGlvbm4mZWFjdXRlO2UnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX2Rpc3BsYXluYW1lJ10gPSAnTm9tIGQmIzAzOTthZmZpY2hhZ2UgcyZlYWN1dGU7bGVjdGlvbm4mZWFjdXRlOyZuYnNwOyc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fc3ViamVjdCddID0gJ1N1amV0IHMmZWFjdXRlO2xlY3Rpb25uJmVhY3V0ZTsnOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfY291bnRyeSddID0gJ1MmZWFjdXRlO2xlY3Rpb24gcGFyIGQmZWFjdXRlO2ZhdXQmbmJzcDsnOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfc3RhdGUnXSA9ICdTJmVhY3V0ZTtsZWN0aW9uIHBhciBkJmVhY3V0ZTtmYXV0Jm5ic3A7JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X3Byb3ZpbmNlJ10gPSAnUyZlYWN1dGU7bGVjdGlvbiBwYXIgZCZlYWN1dGU7ZmF1dCZuYnNwOyc7CiRsYW5nWyd0aXRsZV9vcHRpb25fbmFtZSddID0gJ05vbSBkZSBsJiMwMzk7b3B0aW9uJzsKJGxhbmdbJ3RpdGxlX29wdGlvbl92YWx1ZSddID0gJ1ZhbGV1ciBzb3VtaXNlJzsKJGxhbmdbJ3RpdGxlX3B1bGxkb3duX2RldGFpbHMnXSA9ICdPcHRpb25zIHBhciBtZW51IGQmZWFjdXRlO3JvdWxhbnQmbmJzcDsnOwokbGFuZ1sndGl0bGVfbXVsdGlzZWxlY3RfZGV0YWlscyddID0gJ09wdGlvbnMgZGUgUyZlYWN1dGU7bGVjdGlvbiBtdWx0aXBsZSZuYnNwOyc7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9hZGRyZXNzJ10gPSAnQWRyZXNzZSBtYWlsIGRlIGRlc3RpbmF0aW9uJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2ZpbGVuYW1lJ10gPSAnTm9tIGR1IGZpY2hpZXIgZGUgZGVzdGluYXRpb24mbmJzcDsnOwokbGFuZ1sndGl0bGVfZW1haWxfZnJvbV9uYW1lJ10gPSAnJnF1b3Q7RnJvbSBOb20mcXVvdDsgcG91ciBsZSBtYWlsJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX3JlbGF4ZWRfZW1haWxfcmVnZXgnXSA9ICdWYWxpZGF0aW9uIGFkcmVzc2UgbWFpbCBwbHVzIHNvdXBsZSZuYnNwOyc7CiRsYW5nWyd0aXRsZV9yZWxheGVkX3JlZ2V4X2xvbmcnXSA9ICdBdXRvcmlzZXIgbGVzIGFkcmVzc2VzIG1haWwgc2FucyBleHRlbnNpb24gKGMuYS5kIDogYWNjZXB0ZXIgJnF1b3Q7bm9tQGRvbWFpbmUmcXVvdDsgJmFncmF2ZTsgbGEgcGxhY2UgZGUgJnF1b3Q7bm9tQGRvbWFpbmUuY29tJnF1b3Q7IHJlcXVpcyBwYXIgZCZlYWN1dGU7ZmF1dCknOwokbGFuZ1sndGl0bGVfZW1haWxfZnJvbV9hZGRyZXNzJ10gPSAnJnF1b3Q7RnJvbSBBZHJlc3NlJnF1b3Q7IHBvdXIgTWFpbCBkZSBsJiMwMzk7ZXhwJmVhY3V0ZTtkaXRldXImbmJzcDsnOwokbGFuZ1sndGl0bGVfZW1haWxfZW5jb2RpbmcnXSA9ICdFbmNvZGFnZSBkZXMgY2FyYWN0JmVncmF2ZTtyZXMgZHUgbWFpbCZuYnNwOyc7CiRsYW5nWyd0aXRsZV9kaXJlY3Rvcl9kZXRhaWxzJ10gPSAnTWVudSBkJmVhY3V0ZTtyb3VsYW50IGJhcyZlYWN1dGU7IHN1ciBsZXMgZCZlYWN1dGU7dGFpbHMgZGUgbCYjMDM5O2VtYWlsJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX2ZpbGVfbmFtZSddID0gJ05vbSBkdSBmaWNoaWVyJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX2VtYWlsX3N1YmplY3QnXSA9ICdMaWduZSBkdSBzdWpldCBkYW5zIGxlIG1haWwmbmJzcDsnOwokbGFuZ1sndGl0bGVfZm9ybV9uYW1lJ10gPSAnTm9tIGR1IEZvcm11bGFpcmUmbmJzcDsnOwokbGFuZ1sndGl0bGVfZm9ybV9zdGF0dXMnXSA9ICdTdGF0dXQgZHUgRm9ybXVsYWlyZSZuYnNwOyc7CiRsYW5nWyd0aXRsZV9yZWFkeV9mb3JfZGVwbG95bWVudCddID0gJ1ByJmVjaXJjO3QgJmFncmF2ZTsgJmVjaXJjO3RyZSBkJmVhY3V0ZTtwbG95JmVhY3V0ZTsnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MSddID0gJ1BhcyBwciZlY2lyYzt0JzsKJGxhbmdbJ3RpdGxlX3JlZGlyZWN0X3BhZ2UnXSA9ICdQYWdlIGRlIHJlZGlyZWN0aW9uIGFwciZlZ3JhdmU7cyBsJiMwMzk7ZW52b2kgZHUgZm9ybXVsYWlyZSZuYnNwOyc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkyJ10gPSAnQWpvdXRlciB1biBjaGFtcCBhdSBmb3JtdWxhaXJlIHBvdXIgcG91dm9pciBtb2RpZmllciBsZXMgY29udHJpYnV0aW9ucyBkZXMgdXRpbGlzYXRldXJzLic7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHlfbGluayddID0gJ1V0aWxpc2VyIGNlIHJhY2NvdXJjaSc7CiRsYW5nWyd0aXRsZV9mb3JtX2FsaWFzJ10gPSAnQWxpYXMgZHUgRm9ybXVsYWlyZSZuYnNwOyc7CiRsYW5nWyd0aXRsZV9maWVsZF9hbGlhc19zaG9ydCddID0gJ0FsaWFzICc7CiRsYW5nWyd0aXRsZV9mb3JtX2ZpZWxkcyddID0gJ0NoYW1wcyBkdSBGb3JtdWxhaXJlJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2lkJ10gPSAnSUQgZHUgY2hhbXAmbmJzcDsnOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGFsaWFzZXMnXSA9ICdNb250cmVyIGxlcyBjaGFtcHMgQWxpYXMmbmJzcDsnOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGFsaWFzZXNfbG9uZyddID0gJ0NvY2hlciBjZXR0ZSBjYXNlIG1vbnRyZXJhIGxlcyBjaGFtcHMgQWxpYXMgbG9ycyBkZSBsJiMwMzk7JmVhY3V0ZTtkaXRpb24gZGUgY2UgZm9ybXVsYWlyZSc7CiRsYW5nWyd0aXRsZV9maWVsZF9uYW1lJ10gPSAnTm9tIGRlIGNoYW1wJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2FsaWFzJ10gPSAnQWxpYXMgZHUgY2hhbXAgZXQgSWQgRE9NIChpZCBDU1MpJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX3JhZGlvZ3JvdXBfZGV0YWlscyddID0gJ0QmZWFjdXRlO3RhaWxzIGRlcyBncm91cGVzIGRlIGJvdXRvbnMgcmFkaW8mbmJzcDsnOwokbGFuZ1sndGl0bGVfZmllbGRfdHlwZSddID0gJ1R5cGUgZGUgY2hhbXAmbmJzcDsnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MyddID0gJ3BvdXIgY3ImZWFjdXRlO2VyIHVuIGZvcm11bGFpcmUgcmFwaWRlbWVudC4nOwokbGFuZ1sndGl0bGVfYWRkX25ld19mb3JtJ10gPSAnQWpvdXRlciB1biBub3V2ZWF1IGZvcm11bGFpcmUnOwokbGFuZ1sndGl0bGVfc2hvd192ZXJzaW9uJ10gPSAnTW9udHJlciBsYSB2ZXJzaW9uIGRlIEZvcm0gQnVpbGRlciA/Jm5ic3A7JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbl9sb25nJ10gPSAnQ2VsYSBpbmRpcXVlcmEgZGFucyB1biBjb21tZW50YWlyZSBsYSB2ZXJzaW9uIGluc3RhbGwmZWFjdXRlO2UgZHUgbW9kdWxlIEZvcm0gQnVpbGRlci4gUGFyZm9pcyB1dGlsZSBwb3VyIGQmZWFjdXRlO2J1Z2dlci4nOwokbGFuZ1sndGl0bGVfYWRkX25ld19maWVsZCddID0gJ0Fqb3V0ZXIgdW4gbm91dmVhdSBjaGFtcCc7CiRsYW5nWyd0aXRsZV9mb3JtX3N1Ym1pdF9idXR0b24nXSA9ICdUZXh0ZSBkdSBib3V0b24gZCYjMDM5O2Vudm9pIGR1IGZvcm11bGFpcmUmbmJzcDsnOwokbGFuZ1sndGl0bGVfYnV0dG9uX3RleHQnXSA9ICdUZXh0ZSBkdSBib3V0b24nOwokbGFuZ1sndGl0bGVfc3VibWl0X2J1dHRvbl9zYWZldHknXSA9ICdBam91dGVyIGR1IEphdmFzY3JpcHQgYXUgYm91dG9uIGQmIzAzOTtlbnZvaSBmaW5hbCBwb3VyIGFpZGVyICZhZ3JhdmU7IGxhIHByJmVhY3V0ZTt2ZW50aW9uIGRlcyBlbnZvaXMgbXVsdGlwbGVzIChzcGFtKSA/JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5X2hlbHAnXSA9ICdBam91dGVyIHVuIHNjcmlwdCBzJmVhY3V0ZTtjdXJpcyZlYWN1dGU7Jm5ic3A7JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmV4dF9idXR0b24nXSA9ICdUZXh0ZSBkdSBib3V0b24gJnF1b3Q7c3VpdmFudCZxdW90OyBkdSBmb3JtdWxhaXJlICh1dGlsaXMmZWFjdXRlOyBwb3VyIGxlcyBmb3JtdWxhaXJlcyBjb21wcmVuYW50IHBsdXNpZXVycyBwYWdlcykmbmJzcDsnOwokbGFuZ1sndGl0bGVfZm9ybV9wcmV2X2J1dHRvbiddID0gJ1RleHRlIGR1IGJvdXRvbiAmcXVvdDtwciZlYWN1dGU7YyZlYWN1dGU7ZGVudCZxdW90OyBkdSBmb3JtdWxhaXJlICh1dGlsaXMmZWFjdXRlOyBwb3VyIGxlcyBmb3JtdWxhaXJlcyBjb21wcmVuYW50IHBsdXNpZXVycyBwYWdlcykmbmJzcDsnOwokbGFuZ1sndGl0bGVfZmllbGRfdmFsaWRhdGlvbiddID0gJ1ZhbGlkYXRpb24gZHUgY2hhbXAmbmJzcDsnOwokbGFuZ1sndGl0bGVfZmllbGRfdG9fdmFsaWRhdGUnXSA9ICdDaGFtcCAmYWdyYXZlOyB2YWxpZGVyJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2Nzc19pZCddID0gJ0lkIENTUyBwb3VyIGNlIGNoYW1wJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fY3NzX2NsYXNzJ10gPSAnQ2xhc3NlIENTUyBkZSBjZSBmb3JtdWxhaXJlJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2Nzc19jbGFzcyddID0gJ0NsYXNzZSBDU1MgZGUgY2UgY2hhbXAmbmJzcDsnOwokbGFuZ1sndGl0bGVfZm9ybV9wcmVkaXNwbGF5X3VkdCddID0gJ0JhbGlzZSB1dGlsaXNhdGV1ciAmYWdyYXZlOyBhcHBlbGVyIGF2YW50IGQmIzAzOTthZmZpY2hlciBsZSBmb3JtdWxhaXJlIGxhIHByZW1pJmVncmF2ZTtyZSBmb2lzIChhcHBlbCZlYWN1dGU7ZSB1bmUgc2V1bGUgZm9pcyknOwokbGFuZ1sndGl0bGVfZm9ybV9wcmVkaXNwbGF5X2VhY2hfdWR0J10gPSAnQmFsaXNlIHV0aWxpc2F0ZXVyICZhZ3JhdmU7IGFwcGVsZXIgYXZhbnQgZCYjMDM5O2FmZmljaGVyIGxlIGZvcm11bGFpcmUgKGRlbWFuZCZlYWN1dGU7ICZhZ3JhdmU7IGNoYXF1ZSBwYWdlIHBvdXIgbGVzIGZvcm11bGFpcmVzIG11bHRpcGFnZXMpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdmFsaWRhdGVfdWR0J10gPSAnQmFsaXNlIHV0aWxpc2F0ZXVyICZhZ3JhdmU7IGFwcGVsZXIgcGVuZGFudCBsYSB2YWxpZGF0aW9uIGR1IGZvcm11bGFpcmUnOwokbGFuZ1sndGl0bGVfZm9ybV9yZXF1aXJlZF9zeW1ib2wnXSA9ICdTeW1ib2xlIGluZGlxdWFudCB1biBjaGFtcCBvYmxpZ2F0b2lyZSZuYnNwOyc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZCddID0gJ1JlcXVpcyZuYnNwOyc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9sb25nJ10gPSAnQ2UgY2hhbXAgZXhpZ2UgdW5lIHImZWFjdXRlO3BvbnNlIG9ibGlnYXRvaXJlJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWwnXSA9ICdJbnRpdHVsJmVhY3V0ZTsgY2FjaCZlYWN1dGU7Jm5ic3A7JzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWxfbG9uZyddID0gJ01hc3F1ZXIgbGUgbm9tIGRlIGNlIGNoYW1wIGRhbnMgbGUgZm9ybXVsYWlyZSc7CiRsYW5nWyd0aXRsZV90ZXh0YXJlYV9sZW5ndGgnXSA9ICdMYSBsb25ndWV1ciBtYXhpbWFsZSBkdSBjb250ZW51IGQmIzAzOTt1biBjaGFtcCAoMCBvdSB2aWRlIHBhcyBkZSBsaW1pdGUpJzsKJGxhbmdbJ3RpdGxlX3RleHQnXSA9ICdUZXh0ZSBzdGF0aXF1ZSAmYWdyYXZlOyBhZmZpY2hlciZuYnNwOyc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZWdleCddID0gJ1ZhbGlkYXRpb24gUmVnZXgmbmJzcDsnOwokbGFuZ1sndGl0bGVfbGluZXNfdG9fc2hvdyddID0gJ05vbWJyZSBkZSBsaWduZXMgJmFncmF2ZTsgYWZmaWNoZXImbmJzcDsnOwokbGFuZ1sndGl0bGVfcmVhZF9vbmx5J10gPSAnTGVjdHVyZSBzZXVsZSc7CiRsYW5nWydub19kZWZhdWx0J10gPSAnUGFzIGRlIHMmZWFjdXRlO2xlY3Rpb24gcGFyIGQmZWFjdXRlO2ZhdXQmbmJzcDsnOwokbGFuZ1sncmVkaXJlY3RfYWZ0ZXJfYXBwcm92YWwnXSA9ICdQYWdlIGRlIHJlZGlyZWN0aW9uIGFwciZlZ3JhdmU7cyBhY2NlcHRhdGlvbiZuYnNwOyc7CiRsYW5nWyd0aXRsZV9yZWdleF9oZWxwJ10gPSAnQ2V0dGUgZXhwcmVzc2lvbiByJmVhY3V0ZTtndWxpJmVncmF2ZTtyZSBzZXJhIHNldWxlbWVudCB1dGlsaXMmZWFjdXRlO2Ugc2kgJnF1b3Q7dHlwZSBkZSB2YWxpZGF0aW9uJnF1b3Q7IGVzdCBtaXMgc3VyIHVuZSBvcHRpb24gYXBwYXJlbnQmZWFjdXRlO2UgcmVnZXguIEluY2x1dCB1biBzdHlsZSBQZXJsIHJlZ2V4IGNvbXBsZXQsIGluY2x1YW50IGxlcyBzbGFzaGVzIGRlIGQmZWFjdXRlO2J1dCBldCBmaW4gYWluc2kgcXVlIGxlcyBmbGFncyAoZXhlbXBsZSA6ICZxdW90Oy9pbWFnZVwuKFxkKykvaSZxdW90OyknOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWRfYWJicmV2J10gPSAnQWN0aWYnOwokbGFuZ1sndGl0bGVfaGlkZV9lcnJvcnMnXSA9ICdDYWNoZXIgbGVzIGVycmV1cnMmbmJzcDsnOwokbGFuZ1sndGl0bGVfZm9ybV9kaXNwbGF5dHlwZSddID0gJ1R5cGUgZCYjMDM5O2FmZmljaGFnZSBkdSBmb3JtdWxhaXJlJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzX2xvbmcnXSA9ICdDYWNoZXIgYXV4IHV0aWxpc2F0ZXVycyBsJiMwMzk7YWZmaWNoYWdlIGRlcyBtZXNzYWdlcyBkJiMwMzk7ZXJyZXVyIG91IGRlIGRlYnVnYWdlLic7CiRsYW5nWyd0aXRsZV9lbWFpbF90ZW1wbGF0ZSddID0gJ0dhYmFyaXQgZHUgbWFpbCZuYnNwOyc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX3NpemUnXSA9ICdUYWlsbGUgTWF4aW11bSBwb3VyIGwmIzAzOTtlbnZvaSBkZSBmaWNoaWVyIChraWxvYnl0ZXMpJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZV9sb25nJ10gPSAnQ2V0dGUgbGltaXRhdGlvbiBlc3QgZW4gc3VzIGRlcyBsaW1pdGVzIHBocCBvdSBkZSBjZWxsZXMgZGUgbGEgY29uZmlndXJhdGlvbiBkdSBzZXJ2ZXVyIHdlYic7CiRsYW5nWyd0aXRsZV9maWxlX2Rlc3RpbmF0aW9uJ10gPSAnUiZlYWN1dGU7cGVydG9pcmUgZCYjMDM5O2VucmVnaXN0cmVybWVudCBkZXMgZmljaGllcnMmbmJzcDsnOwokbGFuZ1sndGl0bGVfcGVybWl0dGVkX2V4dGVuc2lvbnMnXSA9ICdFeHRlbnNpb25zIGF1dG9yaXMmZWFjdXRlO2VzJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zX2xvbmcnXSA9ICdFbnRyZXIgdW5lIGxpc3RlIHMmZWFjdXRlO3BhciZlYWN1dGU7ZSBwYXIgdW4gY2FyYWN0JmVncmF2ZTtyZSBhdXRyZSBxdWUgbGUgcG9pbnQsIChleGVtcGxlIDogJnF1b3Q7anBnLCBnaWYsIGpwZWcmcXVvdDspLiBMZXMgZXNwYWNlcyBzZXJvbnQgaWdub3ImZWFjdXRlO3MuIExhaXNzZXIgdmllcmdlIHNpZ25pZmllICZxdW90O2F1Y3VuZSByZXN0cmljdGlvbiZxdW90Oyc7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zJ10gPSAnQWZmaWNoZXIgbGVzIHJlc3RyaWN0aW9ucyA/Jm5ic3A7JzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnNfbG9uZyddID0gJ0FmZmljaGVyIGxlcyByZXN0cmljdGlvbnMgZGUgdGFpbGxlcyBldCBkJiMwMzk7ZXh0ZW5zaW9ucyBwb3VyIGxlIGNoYW1wIGQmIzAzOTt1cGxvYWQgPyc7CiRsYW5nWyd0aXRsZV9mb3JtX3RlbXBsYXRlJ10gPSAnR2FiYXJpdCAmYWdyYXZlOyB1dGlsaXNlciBwb3VyIGFmZmljaGVyIGxlIGZvcm11bGFpcmUmbmJzcDsnOwokbGFuZ1sndGl0bGVfcGFnZV94X29mX3knXSA9ICdQYWdlICVzIHN1ciAlcyc7CiRsYW5nWyd0aXRsZV9ub19hZHZhbmNlZF9vcHRpb25zJ10gPSAnQ2hhbXAgc2FucyBvcHRpb24gYXZhbmMmZWFjdXRlO2UuJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdW5zcGVjaWZpZWQnXSA9ICdUZXh0ZSAmYWdyYXZlOyByZW52b3llciBwb3VyIGxlcyB2YWxldXJzIGRlIGNoYW1wIG5vbiBzcCZlYWN1dGU7Y2lmaSZlYWN1dGU7ZXMmbmJzcDsnOwokbGFuZ1sndGl0bGVfZW5hYmxlX2Zhc3RhZGRfbG9uZyddID0gJ0F1dG9yaXNlciBsJiMwMzk7YWpvdXQgcmFwaWRlIGRlcyBjaGFtcHMgZGUgZm9ybXVsYWlyZSAmYWdyYXZlOyBsJiMwMzk7YWlkZSBkJiMwMzk7dW4gbWVudSBkJmVhY3V0ZTtyb3VsYW50ID8nOwokbGFuZ1sndGl0bGVfZW5hYmxlX2Zhc3RhZGQnXSA9ICdBY2MmZWdyYXZlO3MgcmFwaWRlIGF1IGZvcm11bGFpcmUgPyZuYnNwOyc7CiRsYW5nWyd0aXRsZV9mYXN0YWRkJ10gPSAnQWpvdXQgcmFwaWRlIGR1IGNoYW1wJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9hbnRpc3BhbV9sb25nJ10gPSAnQ29jaGVyIGNldHRlIGNhc2UgbGltaXRlcmEgJmFncmF2ZTsgMTAgZW1haWxzIHBhciBoZXVyZSBsYSB0cmFuc21pc3Npb24gZGVzIGZvcm11bGFpcmVzIHBvdXIgdW5lIG0mZWNpcmM7bWUgYWRyZXNzZSBJUC4nOwokbGFuZ1sndGl0bGVfZW5hYmxlX2FudGlzcGFtJ10gPSAnT3B0ZXIgcG91ciBkZXMgcmVzdHJpY3Rpb25zIGFudGktc3BhbSA/Jm5ic3A7JzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRpZHMnXSA9ICdNb250cmVyIGxlcyBJRCBkZXMgY2hhbXBzJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRpZHNfbG9uZyddID0gJ0NvY2hlciBjZXR0ZSBjYXNlIGF1dG9yaXNlcmEgbCYjMDM5O2FmZmljaGFnZSBkZXMgSUQgZGUgY2hhbXBzIHBlbmRhbnQgbCYjMDM5O2Fqb3V0IG91IGwmIzAzOTsmZWFjdXRlO2RpdGlvbiBkdSBmb3JtdWxhaXJlJzsKJGxhbmdbJ3RpdGxlX3htbF90b191cGxvYWQnXSA9ICdJbXBvcnRlciB1biBmb3JtdWxhaXJlICZhZ3JhdmU7IHBhcnRpciBkJiMwMzk7dW4gZmljaGllciBYTUwmbmJzcDsnOwokbGFuZ1sndGl0bGVfeG1sX3VwbG9hZF9mb3JtbmFtZSddID0gJ1V0aWxpc2VyIGNlIG5vbSBkZSBmb3JtdWxhaXJlJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX2ltcG9ydF9sZWdlbmQnXSA9ICdJbXBvcnRlciB1biBmb3JtdWxhaXJlIGRlIGZvcm1hdCBYTUwmbmJzcDsnOwokbGFuZ1sndGl0bGVfeG1sX3VwbG9hZF9mb3JtYWxpYXMnXSA9ICdVdGlsaXNlciBjZXQgYWxpYXMmbmJzcDsnOwokbGFuZ1sndGl0bGVfaHRtbF9lbWFpbCddID0gJ0cmZWFjdXRlO24mZWFjdXRlO3JlciB1biBtYWlsIGVuIEhUTUwgPyZuYnNwOyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZSddID0gJ1JlbXBsaXIgYXV0b21hdGlxdWVtZW50ID8mbmJzcDsnOwokbGFuZ1sndGl0bGVfbGlua19hdXRvcG9wdWxhdGVfaGVscCddID0gJ1JlbXBsaXIgYXV0b21hdGlxdWVtZW50IGF2ZWMgbCYjMDM5O1VSTCBkZSBsYSBwYWdlIGNvbnRhbnQgbGUgZm9ybXVsYWlyZSA/IChDZWNpIHImZWFjdXRlOyZlYWN1dGU7Y3JpcmEgbGUgbGllbiBkZSBsYSBwYWdlIGNpLWRlc3NvdXMpJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfbGluayddID0gJ0xpZW4gVVJMIHBhciBkJmVhY3V0ZTtmYXV0Jm5ic3A7JzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfbGlua190aXRsZSddID0gJ1RleHRlIHBhciBkJmVhY3V0ZTtmYXV0IGR1IGxpZW4mbmJzcDsnOwokbGFuZ1sndGl0bGVfbGlua190b19zaXRlcGFnZSddID0gJ0xpZW4gcG91ciBsYSBwYWdlIGR1IHNpdGUmbmJzcDsnOwokbGFuZ1sndGl0bGVfY2FwdGNoYV9ub3RfaW5zdGFsbGVkJ10gPSAnVm91cyBwb3V2ZXogdXRpbGlzZXI8YSBocmVmPSJodHRwOi8vd3d3Lndpa2lwZWRpYS5vcmcvd2lraS9DYXB0Y2hhIiB0YXJnZXQ9Il9uZXciPiZxdW90O0NhcHRjaGEmcXVvdDs8L2E+IHBvdXIgcHJvdCZlYWN1dGU7Z2VyIGwmIzAzOTtlbnZvaSBkZSB2b3MgZm9ybXVsYWlyZXMgZW4gaW5zdGFsbGFudCBsZSBtb2R1bGUgQ2FwdGNoYS4gUG91ciBwbHVzIGQmIzAzOTtpbmZvcm1hdGlvbnMsIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvY2FwdGNoYS8iPnN1aXZleiBsZSBwcm9qZXQgZHUgQ2FwdGNoYTwvYT4uJzsKJGxhbmdbJ3RpdGxlX3VzZV9jYXB0Y2hhJ10gPSAnVXRpbGlzZXIgQ2FwdGNoYSBwb3VyIHByb3QmZWFjdXRlO2dlciBsJiMwMzk7ZW52b2kgZGUgdm9zIGZvcm11bGFpcmVzID8mbmJzcDsnOwokbGFuZ1sndGl0bGVfdXNlX2NhcHRjaGFfaGVscCddID0gJ1YmZWFjdXRlO3JpZmllciBpY2kgY29tbWVudCBwcm90JmVhY3V0ZTtnZXIgdm9zIGZvcm11bGFpcmVzIGF2ZWMgPGEgaHJlZj0iaHR0cDovL3d3dy53aWtpcGVkaWEub3JnL3dpa2kvQ2FwdGNoYSIgdGFyZ2V0PSJfbmV3Ij4mcXVvdDtDYXB0Y2hhJnF1b3Q7PC9hPi4nOwokbGFuZ1sndGl0bGVfdXNlcl9jYXB0Y2hhJ10gPSAnVmV1aWxsZXogY29uZmlybWVyIHF1ZSB2b3VzIG4mIzAzOTsmZWNpcmM7dGVzIHBhcyB1biBhdXRvbWF0ZSBlbiByZWNvcGlhbnQgbGVzIGNhcmFjdCZlZ3JhdmU7cmVzIHByJmVhY3V0ZTtzZW50cyBzdXIgbCYjMDM5O2ltYWdlLic7CiRsYW5nWyd0aXRsZV91c2VyX2NhcHRjaGFfZXJyb3InXSA9ICdFY2hlYyBkZSBsYSB2JmVhY3V0ZTtyaWZpY2F0aW9uIENhcHRjaGEmbmJzcDsnOwokbGFuZ1snd3JvbmdfY2FwdGNoYSddID0gJ0xlIGNvZGUgcmVudHImZWFjdXRlOyBkaWZmJmVncmF2ZTtyZSBkZSBsJiMwMzk7aW1hZ2UuJzsKJGxhbmdbJ3RpdGxlX3RpdGxlX3VzZXJfY2FwdGNoYSddID0gJ1RleHRlIGQmIzAzOTthaWRlIGNvbmNlcm5hbnQgQ2FwdGNoYSZuYnNwOyc7CiRsYW5nWyd0aXRsZV9kb250X3N1Ym1pdF91bmNoZWNrZWQnXSA9ICdOZSBwYXMgZW52b3llciBsZXMgdmFsZXVycyBub24tY29jaCZlYWN1dGU7ZXMmbmJzcDsnOwokbGFuZ1sndGl0bGVfZG9udF9zdWJtaXRfdW5jaGVja2VkX2hlbHAnXSA9ICdDb2NoZXogY2VjaSBzaSB2b3VzIHZvdWxleiBzZXVsZW1lbnQgcXVlIGxlcyBjYXNlcyBjb2NoJmVhY3V0ZTtlcyByZXRvdXJuZW50IGRlcyB2YWxldXJzLic7CiRsYW5nWydsaW5rX2xhYmVsJ10gPSAnTGFiZWwgZHUgbGllbiZuYnNwOyc7CiRsYW5nWydsaW5rX2Rlc3RpbmF0aW9uJ10gPSAnVVJMIGRlIGRlc3RpbmF0aW9uIGR1IGxpZW4mbmJzcDsnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9zZXQnXSA9ICdTJmVhY3V0ZTtsZWN0aW9ubiZlYWN1dGU7IHBhciBkJmVhY3V0ZTtmYXV0ID8mbmJzcDsnOwokbGFuZ1sndGl0bGVfMjRfaG91ciddID0gJ0hldXJlcyBkZSAwICZhZ3JhdmU7IDI0ID8gJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX2JlZm9yZV9ub29uJ10gPSAnQU0gYXZhbnQgbWlkaSc7CiRsYW5nWyd0aXRsZV9hZnRlcl9ub29uJ10gPSAnUE0gYXByJmVncmF2ZTtzIG1pZGknOwokbGFuZ1sndGl0bGVfc21hcnR5X2V2YWwnXSA9ICdBdmVjIGRlcyBiYWxpc2VzIFNtYXJ0eSBkYW5zIGxlcyBjaGFtcHMgPyZuYnNwOyc7CiRsYW5nWyd0aXRsZV90ZXh0YXJlYV9yb3dzJ10gPSAnTGlnbmVzIChub3RlIDogcGV1dCAmZWNpcmM7dHJlIG1vZGlmaSZlYWN1dGU7IHZpYSBDU1MpJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX3RleHRhcmVhX2NvbHMnXSA9ICdDb2xvbm5lcyAobm90ZSA6IHBldXQgJmVjaXJjO3RyZSBtb2RpZmkmZWFjdXRlOyB2aWEgQ1NTKSZuYnNwOyc7CiRsYW5nWyd0aXRsZV9mb3JtX21haW4nXSA9ICdBY2N1ZWlsIC0gRCZlYWN1dGU7dGFpbHMgZHUgRm9ybXVsYWlyZSZuYnNwOyc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2JsYW5rJ10gPSAnUGFyIGQmZWFjdXRlO2ZhdXQgJmFncmF2ZTsgdmlkZSc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2JsYW5rX2hlbHAnXSA9ICdQYXIgZCZlYWN1dGU7ZmF1dCAmYWdyYXZlOyB2aWRlIChkJmVhY3V0ZTtjb2NoJmVhY3V0ZTsgcGFyIGQmZWFjdXRlO2ZhdXQgJmFncmF2ZTsgbGEgZGF0ZSBkdSBqb3VyKSc7CiRsYW5nWyd0aXRsZV9zaG93X3VzZXJuYW1lJ10gPSAnQWZmaWNoYWdlIGxvZ2luIHV0aWxpc2F0ZXVyID8mbmJzcDsnOwokbGFuZ1sndGl0bGVfc2hvd191c2VyZmlyc3RuYW1lJ10gPSAnQWZmaWNoYWdlIHByJmVhY3V0ZTtub20gdXRpbGlzYXRldXIgPyZuYnNwOyc7CiRsYW5nWyd0aXRsZV9zaG93X3VzZXJsYXN0bmFtZSddID0gJ0FmZmljaGFnZSBub20gdXRpbGlzYXRldXIgPyZuYnNwOyc7CiRsYW5nWyd0aXRsZV9yZXN0cmljdF90b19ncm91cCddID0gJ0xpc3RlIGRlcyB1dGlsaXNhdGV1cnMgcG91ciBsZSBncm91cGUgc3AmZWFjdXRlO2NpZmkmZWFjdXRlOyZuYnNwOyc7CiRsYW5nWyd0aXRsZV9lbmNyeXB0X2RhdGFiYXNlX2RhdGEnXSA9ICdEb25uJmVhY3V0ZTtlcyBjcnlwdCZlYWN1dGU7ZXMgZW5yZWdpc3RyJmVhY3V0ZTtlcyBkYW5zIGxhIGJhc2UgZGUgZG9ubiZlYWN1dGU7ZXMnOwokbGFuZ1sndGl0bGVfY3J5cHRfY2VydCddID0gJ0NlcnRpZmljYXQgZGUgY3J5cHRhZ2UgZGVzIGRvbm4mZWFjdXRlO2VzJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRpb25fa2V5ZmlsZSddID0gJ1BocmFzZSBzZWNyJmVncmF2ZTt0ZSBvdSBjaGVtaW4gdmVycyBsZSBmaWNoaWVyIGNvbnRlbmFudCBsYSBwaHJhc2UuIChTaSB2b3VzIHV0aWxpc2V6IE9wZW5TU0wsIGMmIzAzOTtlc3QgbGEgcGhyYXNlIHNlY3ImZWdyYXZlO3RlIHBvdXIgbGEgY2wmZWFjdXRlOyBwcml2JmVhY3V0ZTtlKSc7CiRsYW5nWyd0aXRsZV9lbmNyeXB0X3NvcnRmaWVsZHMnXSA9ICdIYWNoZXIgbGVzIGNoYW1wcyBkZSB0cmkgPyc7CiRsYW5nWyd0aXRsZV9wcml2YXRlX2tleSddID0gJ0NsJmVhY3V0ZTsgcHJpdiZlYWN1dGU7ZSAmYWdyYXZlOyB1dGlsaXNlciBwb3VyIGxlIGNyeXB0YWdlIGRlcyBkb25uJmVhY3V0ZTtlcyc7CiRsYW5nWyd0aXRsZV9lbmNyeXB0X3NvcnRmaWVsZHNfaGVscCddID0gJ0NlY2kgaGFjaGUgbGVzIGNoYW1wcyBkZSB0cmksIG1haXMgbGFpc3NlIGxlcyBwcmVtaSZlZ3JhdmU7cmVzIGxldHRyZXMgbm9uIGNyeXB0JmVhY3V0ZTtlcy4gQ3J5cHRvZ3JhcGhpcXVlbWVudCwgY2VsYSBjciZlYWN1dGU7ZSB1bmUgdnVsbiZlYWN1dGU7cmFiaWxpdCZlYWN1dGU7LCBtYWlzIHJlc3RlIHVuIGNvbXByb21pcyBhY2NlcHRhYmxlIHBvdXIgdW5lIG1ham9yaXQmZWFjdXRlOyBkJiMwMzk7dXRpbGlzYXRldXJzIGVudHJlIGxhIHMmZWFjdXRlO2N1cml0JmVhY3V0ZTsgZXQgbGEgcG9zc2liaWxpdCZlYWN1dGU7IGRlIHRyaWVyIGxlcyBlbnJlZ2lzdHJlbWVudHMuIExlIHRyaSBkZXZpZW50IGFwcHJveGltYXRpZiwgbWFpcyBkZW1ldXJlIGRlIHF1YWxpdCZlYWN1dGU7IGNvcnJlY3RlLiBTaSB2b3VzIG4mIzAzOTt1dGlsaXNleiBwYXMgY2V0dGUgb3B0aW9uLCBsZXMgY2hhbXBzIGRlIHRyaSBzb250IGVucmVnaXN0ciZlYWN1dGU7cyBlbiB0ZXh0ZSBicnV0Lic7CiRsYW5nWyd0aXRsZV9lbmNyeXB0aW9uX2Z1bmN0aW9ucyddID0gJ0VucmVnaXN0cmVtZW50IGNyeXB0JmVhY3V0ZTsgbm9uIGRpc3BvbmlibGUnOwokbGFuZ1sndGl0bGVfaW5zdGFsbF9jcnlwdG8nXSA9ICdNZXJjaSBkJiMwMzk7aW5zdGFsbGVyIGxlIG1vZHVsZSBPcGVuU1NMIG91IG1jcnlwdCBzaSB2b3VzIHNvdWhhaXRleiBhY3RpdmVyIGxlIGNyeXB0YWdlIGRlIGJhc2UgZGUgZG9ubiZlYWN1dGU7ZXMuJzsKJGxhbmdbJ3RpdGxlX2luc3RhbGxfY3VybCddID0gJ1YmZWFjdXRlO3JpZmlleiBxdWUgdm91cyBhdmV6IGxlcyBmb25jdGlvbnMgQ1VSTCBhY3RpdiZlYWN1dGU7cyBkYW5zIHZvdHJlIGluc3RhbGxhdGlvbiBkZSBQSFAuIFZvaXIgaHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9ib29rLmN1cmwucGhwJzsKJGxhbmdbJ3RpdGxlX21sZV92ZXJzaW9uJ10gPSAnRXgmZWFjdXRlO2N1dGVyIGVuIG1vZGUgTUxFJzsKJGxhbmdbJ3RpdGxlX21sZV92ZXJzaW9uX2xvbmcnXSA9ICdDaGFuZ2VtZW50cy9zdXBwb3J0IHBvdXIgQ01TTVMgTXVsdGlsaW5ndWUgRWRpdGlvbi4gTmUgY29jaGV6IHBhcyBjZXR0ZSBvcHRpb24gc2kgdm91cyBuJiMwMzk7dXRpbGlzZXogcGFzIGxhIHZlcnNpb24gTUxFLic7CiRsYW5nWyd0aXRsZV9lbnN1cmVfY2VydF9rZXlfbWF0Y2gnXSA9ICdBc3N1cmV6LXZvdXMgcXVlIHZvdXMgcyZlYWN1dGU7bGVjdGlvbm5leiBsYSBjbCZlYWN1dGU7IHByaXYmZWFjdXRlO2UgcXVpIGVzdCBhcHByb3ByaSZlYWN1dGU7IHBvdXIgbGUgY2VydGlmaWNhdCBxdWUgdm91cyB1dGlsaXNleiBwb3VyIGxlIGNyeXB0YWdlICEnOwokbGFuZ1snY2hvb3NlX2NyeXB0J10gPSAnQmlibGlvdGgmZWdyYXZlO3F1ZSBkZSBjcnlwdGFnZSc7CiRsYW5nWyd0aXRsZV9lbmNyeXB0X2RhdGFiYXNlX2xvbmcnXSA9ICdDb2NoZXogY2V0dGUgb3B0aW9uIHBvdXIgY3J5cHRlciBsZXMgZG9ubiZlYWN1dGU7ZXMgc3RvY2smZWFjdXRlO2VzLiBDZXR0ZSBvcHRpb24gcmVuZCBwbHVzIGRpZmZpY2lsZSAobWFpcyBwYXMgaW1wb3NzaWJsZSkgbCYjMDM5O2FmZmljaGFnZSBkZSBsJiMwMzk7aW5mb3JtYXRpb24gcG91ciBsZXMgcGlyYXRlcyBpbmZvcm1hdGlxdWVzLic7CiRsYW5nWydjaG9vc2VfY3J5cHRfbG9uZyddID0gJ0xlcyBvcHRpb25zIGNpLWRlc3NvdXMgcyYjMDM5O2FwcGxpcXVlbnQgdW5pcXVlbWVudCBzaSB2b3VzIHV0aWxpc2V6IGxhIGJpYmxpb3RoJmVncmF2ZTtxdWUgZGUgY3J5cHRhZ2UgT3BlblNTTCc7CiRsYW5nWyd0aXRsZV9jcnlwdF9saWInXSA9ICdCaWJsaW90aCZlZ3JhdmU7cXVlIGRlIGNyeXB0YWdlJzsKJGxhbmdbJ29wZW5zc2wnXSA9ICdCaWJsaW90aCZlZ3JhdmU7cXVlIE9wZW5TU0wgJzsKJGxhbmdbJ21jcnlwdCddID0gJ0JpYmxpb3RoJmVncmF2ZTtxdWUgUEhQIG1jcnlwdCAnOwokbGFuZ1sndGl0bGVfZmV1X2JpbmRpbmcnXSA9ICdJbnRlcmZhY2UgRnJvbnRlbmQgVXNlcic7CiRsYW5nWyd0aXRsZV9pbnN0YWxsX2ZldSddID0gJ01lcmNpIGQmIzAzOTtpbnN0YWxsZXIgbGUgbW9kdWxlIEZyb250ZW5kIFVzZXIgcG91ciBjb25uZWN0ZXIgdW4gZm9ybXVsYWlyZSBldCBzZXMgZG9ubiZlYWN1dGU7ZXMgJmFncmF2ZTsgdW4gdXRpbGlzYXRldXIgc3AmZWFjdXRlO2NpZmlxdWUnOwokbGFuZ1sndGl0bGVfZmV1X2JpbmRfaGVscCddID0gJ0NvY2hleiBjZXR0ZSBvcHRpb24gcG91ciB2ZXJyb3VpbGxlciBsJiMwMzk7YWNjJmVncmF2ZTtzIGRlcyBkb25uJmVhY3V0ZTtlcyAmYWdyYXZlOyBsJiMwMzk7dXRpbGlzYXRldXIgY29ubmVjdCZlYWN1dGU7IHN1ciBsZSBzaXRlLic7CiRsYW5nWyd0aXRsZV9lbmNyeXB0aW9uJ10gPSAnQ3J5cHRhZ2UnOwokbGFuZ1sndGl0bGVfZXhwb3J0X2Zvcm1fdG9fdWR0J10gPSAnRXhwb3J0ZXIgbGEgciZlYWN1dGU7ZiZlYWN1dGU7cmVuY2UgZGUgZm9ybXVsYWlyZSB2ZXJzIHVuIFVEVCBlbiB0YW50IHF1ZSAkcGFyYW1zWyYjMDM5O0ZPUk0mIzAzOTtdPyAobmUgcGFzIGZhaXJlIGNlbGEgc2kgdm91cyB1dGlsaXNleiBwcmludF9yKCRwYXJhbXMpICknOwokbGFuZ1sndGl0bGVfdXJsX2hlbHAnXSA9ICdVUkwgY29tcGwmZWdyYXZlO3RlIHkgY29tcHJpcyBsZSBwcm90b2NvbGUgZXQgbGUgY2hlbWluIChwYXIgZXhlbXBsZSwgaHR0cDovL215aG9zdC5jb20vZm9ybV9oYW5kbGVyLmNnaSknOwokbGFuZ1sndGl0bGVfdXJsJ10gPSAnVVJMIGR1IGZvcm11bGFpcmUgZGUgc291bWlzc2lvbic7CiRsYW5nWyd0aXRsZV9tZXRob2QnXSA9ICdNJmVhY3V0ZTt0aG9kZSBkdSBmb3JtdWxhaXJlJzsKJGxhbmdbJ3RpdGxlX21hcHNfdG8nXSA9ICdDYXJ0ZSBkdSBjaGFtcCAmcXVvdDslIHMmcXVvdDsgZHUgZm9ybXVsYWlyZSBkZSBzb3VtaXNzaW9uIGRlIGxhIHZhcmlhYmxlJzsKJGxhbmdbJ3RpdGxlX2FkZGl0aW9uYWwnXSA9ICdTb3VtaXNzaW9uIGFkZGl0aW9ubmVsbGUnOwokbGFuZ1sndGl0bGVfYWRkaXRpb25hbF9oZWxwJ10gPSAnVG91dCBjZSBxdWkgcGV1dCAmZWNpcmM7dHJlIGFqb3V0JmVhY3V0ZTsgJmFncmF2ZTsgbGEgY2hhcmdlIGRlIGwmIzAzOTtlbnZvaSwgc291cyBmb3JtZSBkJiMwMzk7VVJMIChwYXIgZXguLCAmcXVvdDt1c2VyPXN0ZXZlK2pvYnMmYW1wO2VtcGxveWVlX251bWJlcj0xKSc7CiRsYW5nWyd0aXRsZV9pbmNsdWRlX2luX3N1Ym1pc3Npb24nXSA9ICdJbmNsdXJlIGRhbnMgbGUgY2hhbXAgZGUgc291bWlzc2lvbic7CiRsYW5nWyd0aXRsZV9kYXRlX29yZGVyJ10gPSAnT3JkcmUgZHUgY2hhbXAgY29tcG9zYW50IGRhdGUgKHBvdXIgbCYjMDM5O2VudHImZWFjdXRlO2UpJzsKJGxhbmdbJ3RpdGxlX2RhdGFfc3RvcmVkX2luX2ZiciddID0gJ0xlcyBkb25uJmVhY3V0ZTtlcyBzZXJvbnQgc3RvY2smZWFjdXRlO2VzIGRhbnMgdW4gZm9ybWF0IFhNTCBkYW5zIGxhIHRhYmxlIGRlIGxhIGJhc2UgW3ByJmVhY3V0ZTtmaXhlXV9tb2R1bGVfZmJfZnJvbWJyb3dzZXIgJzsKJGxhbmdbJ2Vycm9yX2hhc19ub19mYl9maWVsZCddID0gJ0VycmV1ciAhIFNvaXQgbGUgZm9ybXVsYWlyZSBuZSBwb3NzJmVncmF2ZTtkZSBhdWN1biBhcnJhbmdlbWVudCBkZSBmb3JtX2J1aWxkZXIsIHNvaXQgaWwgYSAmZWFjdXRlO2Nob3UmZWFjdXRlOyAmYWdyYXZlOyBpbnN0YW5jaWVyIChlbiByYWlzb24gZGUgcHJvYmwmZWdyYXZlO21lcyBkZSBtJmVhY3V0ZTttb2lyZSA/KSc7CiRsYW5nWydoZWxwX2RhdGVfb3JkZXInXSA9ICdVdGlsaXNlciAmcXVvdDttJnF1b3Q7IGZvciBNb2lzLCAmcXVvdDtkJnF1b3Q7IG91ciBqb3VyLCBhbmQgJnF1b3Q7eSZxdW90OyBwb3VyIGFubiZlYWN1dGU7ZS4gUyZlYWN1dGU7cGFyZXogbGVzIGl0ZW1zIHBhciBkZXMgdGlyZXRzLic7CiRsYW5nWydyZXN0cmljdGVkX3RvX2dyb3VwJ10gPSAnU2V1bGVtZW50IHBvdXIgbGUgZ3JvdXBlICVzJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdG9fdXNlciddID0gJ0FmZmljaGFnZSB1dGlsaXNhdGV1ciA/Jm5ic3A7JzsKJGxhbmdbJ2hlbHBfbGVhdmVlbXB0eSddID0gJ0NlIGNoYW1wIHBldXQgJmVjaXJjO3RyZSBsYWlzcyZlYWN1dGU7IHZpZGUmbmJzcDsnOwokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX3RlbXBsYXRlJ10gPSAnVmFyaWFibGVzIHBvdXIgZ2FiYXJpdCc7CiRsYW5nWydoZWxwX3ZhcmlhYmxlc19mb3JfY29tcHV0YXRpb24nXSA9ICdWYXJpYWJsZXMgYXV0b3JpcyZlYWN1dGU7ZXMnOwokbGFuZ1snaGVscF9waHBfdmFyaWFibGVfbmFtZSddID0gJ1ZhcmlhYmxlIFBIUCAnOwokbGFuZ1snaGVscF9zdWJtaXNzaW9uX2RhdGUnXSA9ICdEYXRlIGQmIzAzOTtlbnZvaSc7CiRsYW5nWydoZWxwX3NlcnZlcl9uYW1lJ10gPSAnVm90cmUgc2VydmV1cic7CiRsYW5nWydoZWxwX3N1Yl9zb3VyY2VfaXAnXSA9ICdBZHJlc3NlIElQIGRlIGxhIHBlcnNvbm5lIHV0aWxpc2FudCBsZSBmb3JtdWxhaXJlJzsKJGxhbmdbJ2hlbHBfc3ViX3VybCddID0gJ1VSTCBkZSBsYSBwYWdlIGNvbnRlbmFudCBsZSBmb3JtdWxhaXJlJzsKJGxhbmdbJ2hlbHBfZmJfdmVyc2lvbiddID0gJ1ZlcnNpb24gZGUgRm9ybUJ1aWxkZXInOwokbGFuZ1snaGVscF90YWInXSA9ICdUYWJ1bGF0aW9uJzsKJGxhbmdbJ2hlbHBfb3RoZXJfZmllbGRzJ10gPSAnTGVzIGF1dHJlcyBub21zIGRlIGNoYW1wcyBwZXV2ZW50ICZlY2lyYzt0cmUgdXRpbGlzJmVhY3V0ZTtzIGRlIGZhJmNjZWRpbDtvbiBpbnRlcmNoYW5nZWFibGUgKHBhcnRpY3VsaSZlZ3JhdmU7cmVtZW50IHV0aWxlIHNpIFNtYXJ0eSBibG9xdWUgc3VyIGxlcyBjYXJhY3QmZWdyYXZlO3JlcyBBU0NJSSBlbiBkZWhvcnMgZGUgMzItMTI2KS4gPGJyIC8+TGVzIGF1dHJlcyBjaGFtcHMgc2Vyb250IGRpc3BvbmlibGVzIHNpIHZvdXMgbGVzIGFqb3V0ZXIgYXUgZm9ybXVsYWlyZS4nOwokbGFuZ1snaGVscF9hcnJheV9maWVsZHMnXSA9ICdVbmUgYXV0cmUgbWFuaSZlZ3JhdmU7cmUgZCYjMDM5O2FjYyZlYWN1dGU7ZGVyIGF1eCB2YWxldXJzIGRlIGNoYW1wIHBldXQgc2UgZmFpcmUgdmlhICRmaWVsZG5hbWVfb2JqLCAkYWxpYXNfb2JqLCBvciAkZmxkXyNfb2JqLCBvJnVncmF2ZTsgY2hhcXVlIGNoYW1wIGVzdCB1biBvYmpldCBjb250ZW5hbnQgOjxiciAvPjx0YWJsZT4NCjx0cj48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7Pm5hbWU8L3RkPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+RmllbGQgTmFtZTwvdGQ+PC90cj4NCjx0cj48dGQ+dHlwZTwvdGQ+PHRkPkZpZWxkIFR5cGU8L3RkPjwvdHI+DQo8dHI+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz5pZDwvdGQ+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz5JbnRlcm5hbCBGaWVsZCBJRDwvdGQ+PC90cj4NCjx0cj48dGQ+dmFsdWU8L3RkPjx0ZD5IdW1hbi1yZWFkYWJsZSBWYWx1ZTwvdGQ+PC90cj4NCjx0cj48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7PnZhbHVlQXJyYXk8L3RkPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+QXJyYXkgb2YgZmllbGQgdmFsdWUocyk8L3RkPjwvdHI+PC90YWJsZT48ZW0+cGFyIGV4ZW1wbGU8L2VtPiwgdm91cyBwb3V2ZXogdXRpbGlzZXIgJnF1b3Q7eyRmbGRfMV9vYmotPm5hbWV9ID0geyRmbGRfMV9vYmotPnZhbHVlfSc7CiRsYW5nWydoZWxwX2RhdGVfZm9ybWF0J10gPSAnQ29uc3VsdGVyIGxlIDxhIGhyZWY9Imh0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZnIvZnVuY3Rpb24uZGF0ZS5waHAiIHRhcmdldD0iX2JsYW5rIj5tYW51ZWwgUEhQPC9hPiBwb3VyIHZvdXMgYWlkZXIuJzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVfbmFtZSddID0gJ1ZhcmlhYmxlICc7CiRsYW5nWydoZWxwX2Zvcm1fZmllbGQnXSA9ICdDaGFtcCByZXByJmVhY3V0ZTtzZW50JmVhY3V0ZTsmbmJzcDsnOwokbGFuZ1snbGlua19iYWNrX3RvX2Zvcm0nXSA9ICcmbGFxdW87IFJldG91ciBhdSBGb3JtdWxhaXJlJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfdGVtcGxhdGUnXSA9ICdDciZlYWN1dGU7ZXIgdW4gbW9kJmVncmF2ZTtsZSBkZSBnYWJhcml0JzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaHRtbF90ZW1wbGF0ZSddID0gJ0NyJmVhY3V0ZTtlciB1biBtb2QmZWdyYXZlO2xlIGRlIGdhYmFyaXQgSFRNTCc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2hlYWRlcl90ZW1wbGF0ZSddID0gJ0NyJmVhY3V0ZTtlciB1biBtb2QmZWdyYXZlO2xlIGQmIzAzOTtlbnQmZWNpcmM7dGUnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9mb290ZXJfdGVtcGxhdGUnXSA9ICdDciZlYWN1dGU7ZXIgdW4gZ2FiYXJpdCBkZSBwaWVkIGRlIHBhZ2UgJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaGVhZGVyJ10gPSAnQ3ImZWFjdXRlO2VyIHVuIG1vZCZlZ3JhdmU7bGUgZCYjMDM5O2VudCZlY2lyYzt0ZSc7CiRsYW5nWydoZWxwX3RhYl9zeW1ib2wnXSA9ICd1bmUgdGFidWxhdGlvbic7CiRsYW5nWyd0aXRsZV9maWxlX3RlbXBsYXRlJ10gPSAnR2FiYXJpdCBkJiMwMzk7dW5lIGxpZ25lIHBvdXIgbGVzIGZpY2hpZXJzIGNyJmVhY3V0ZTtlcyZuYnNwOyc7CiRsYW5nWyd0aXRsZV9maWxlX2hlYWRlciddID0gJ0dhYmFyaXQgZHUgaGVhZGVyIChlbi10JmVjaXJjO3RlKSBkZXMgZmljaGllcnMgY3ImZWFjdXRlO2VzJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX2ZpbGVfZm9vdGVyJ10gPSAnR2FiYXJpdCBwb3VyIGxlIHBpZWQgZGUgcGFnZSBkdSBmaWNoaWVyIGRlIHNvcnRpJzsKJGxhbmdbJ3RpdGxlX2NvbmZpcm1hdGlvbl91cmwnXSA9ICdVUkwgJmFncmF2ZTsgc3VpdnJlIHBvdXIgY29uZmlybWVyIGxlIGZvcm11bGFpcmUmbmJzcDsnOwokbGFuZ1sndGl0bGVfdmFsdWUnXSA9ICdWYWxldXIgKHJlZ2FyZGV6IGRhbnMgb25nbGV0cyAmcXVvdDtPcHRpb25zIGF2YW5jJmVhY3V0ZTtlcyZxdW90OyBzaSB2b3VzIHV0aWxpc2V6IGRlcyBiYWxpc2VzIFNtYXJ0eSkmbmJzcDsnOwokbGFuZ1sndGl0bGVfZGF0ZV9mb3JtYXQnXSA9ICdGb3JtYXQgZCYjMDM5O2FmZmljaGFnZSBkZSBsYSAoPGEgaHJlZj0iaHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9mci9mdW5jdGlvbi5kYXRlLnBocCIgdGFyZ2V0PSJfYmxhbmsiPmRhdGUgUEhQIHN0YW5kYXJkIDwvYT4pJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX3VzZV93eXNpd3lnJ10gPSAnVXRpbGlzZXIgdW4gJmVhY3V0ZTtkaXRldXIgV1lTSVdZRyBwb3VyIGxhIHpvbmUgZGUgdGV4dGUgKGNvdCZlYWN1dGU7IGFkbWluIHNldWxlbWVudCkgPyZuYnNwOyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYWN0aW9ucyddID0gJ0NvbXBvcnRlbWVudCBsb3JzIGRlIGwmIzAzOTtlbnZvaSBkdSBGb3JtdWxhaXJlJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9sYWJlbHMnXSA9ICdMYWJlbHMgZGVzIGJvdXRvbnMgZGUgc291bWlzc2lvbic7CiRsYW5nWyd0aXRsZV9zb3J0YWJsZV9maWVsZCddID0gJ1RyaSBwYXIgY2hhbXBzICMlcyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfaGVscCddID0gJ0NldHRlIHBhZ2Ugdm91cyBwZXJtZXQgZGUgcGVyc29ubmFsaXNlciBsZSBmb3JtdWxhaXJlLiBDZWxhIG5lIGQmZWFjdXRlO2Zpbml0IHBhcyBjZSBxdWUgbGUgbW9kdWxlIEZvcm0gQnVpbGRlciBmYWl0IGRlcyBkb25uJmVhY3V0ZTtlcyByJmVhY3V0ZTtjb2x0JmVhY3V0ZTtlcy4gTGEgZGVzdGluYXRpb24gZGVzIGRvbm4mZWFjdXRlO2VzIHNlcmEgZCZlYWN1dGU7ZmluaWUgZGFucyBsZXMgY2hhbXBzICZxdW90O0Rpc3Bvc2l0aW9uJnF1b3Q7IChjb21tZW4mY2NlZGlsO2FudCBwYXIgKi4uLi4gKS4nOwokbGFuZ1sndGl0bGVfc3RhcnRfeWVhciddID0gJ0FubiZlYWN1dGU7ZSBkZSBkJmVhY3V0ZTtidXQmbmJzcDsnOwokbGFuZ1sndGl0bGVfZW5kX3llYXInXSA9ICdBbm4mZWFjdXRlO2UgZGUgZmluJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfeWVhciddID0gJ0FubiZlYWN1dGU7ZSBwYXIgZCZlYWN1dGU7ZmF1dCZuYnNwOyc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3llYXJfaGVscCddID0gJyZuYnNwOyhNZXR0cmUgLTEgcG91ciBzaWduaWZpZXIgcXVlIGwmIzAzOTthbm4mZWFjdXRlO2UgcGFyIGQmZWFjdXRlO2ZhdXQgZXN0IGwmIzAzOTthbm4mZWFjdXRlO2UgY291cmFudGUpJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9hY3Rpb24nXSA9ICdBY3Rpb24gYXByJmVncmF2ZTtzIGwmIzAzOTtlbnZvaSBkdSBmb3JtdWxhaXJlJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9yZXNwb25zZSddID0gJ1ImZWFjdXRlO3BvbnNlICZhZ3JhdmU7IGFmZmljaGVyJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9kYXRlJ10gPSAnRGF0ZSBFbnZveSZlYWN1dGU7ZSc7CiRsYW5nWyd0aXRsZV9hcHByb3ZhbF9kYXRlJ10gPSAnRGF0ZSBBcHByb3V2JmVhY3V0ZTtlIChwYXIgbCYjMDM5O2FkbWluKSc7CiRsYW5nWyd0aXRsZV91c2VyX2FwcHJvdmVkJ10gPSAnRGF0ZSBBcHByb3V2JmVhY3V0ZTtlIChwYXIgbGEgcGVyc29ubmUgcXVpIGwmIzAzOTthIHNvdW1pc2UpJzsKJGxhbmdbJ2Rpc3BsYXlfdGV4dCddID0gJ0FmZmljaGVyIHVuIHImZWFjdXRlO3N1bSZlYWN1dGU7IGR1IGZvcm11bGFpcmUgZW52b3kmZWFjdXRlOyZuYnNwOyc7CiRsYW5nWydyZWRpcmVjdF90b19wYWdlJ10gPSAnUmVkaXJpZ2VyIHZlcnMgdW5lIHBhZ2UgZHUgc2l0ZSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfcmVzcG9uc2VfaGVscCddID0gJ0NlIGdhYmFyaXQgc2VydCAmYWdyYXZlOyBsJiMwMzk7YWZmaWNoYWdlIHBvdXIgbCYjMDM5O3V0aWxpc2F0ZXVyIGFwciZlZ3JhdmU7cyBsJiMwMzk7ZW52b2kgZHUgZm9ybXVsYWlyZS4gQ2UgZ2FiYXJpdCBuJiMwMzk7YSBhdWN1biBlZmZldCBuaSBzdXIgbGVzIG1haWxzLCBuaSBzdXIgZCYjMDM5O2F1dHJlcyBmb3JtdWxhaXJlcyAtIFZvdXMgcGxhY2VyZXogY2VzIGdhYmFyaXRzIChqdWRpY2lldXNlbWVudCkgZGFucyBsJiMwMzk7b25nbGV0ICZxdW90O29wdGlvbnMgYXZhbmMmZWFjdXRlO2VzJnF1b3Q7Lic7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9wYWdlJ10gPSAnUGFnZSBkZSBkZXN0aW5hdGlvbiZuYnNwOyc7CiRsYW5nWyd0aXRsZV9yZXF1aXJlX2ZpZWxkbmFtZXMnXSA9ICdOb21tYWdlIGRlcyBjaGFtcHMgcmVxdWlzJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX3JlcXVpcmVfZmllbGRuYW1lc19sb25nJ10gPSAnTGVzIGNoYW1wcyBkb2l2ZW50IG9ibGlnYXRvaXJlbWVudCBhdm9pciB1biBub20gPyAoY2FzZSBjb2NoJmVhY3V0ZTtlID0gb3VpKSZuYnNwOyc7CiRsYW5nWyd0aXRsZV91bmlxdWVfZmllbGRuYW1lcyddID0gJ0NoYW1wcyAmYWdyYXZlOyBub20gdW5pcXVlIHJlcXVpcyZuYnNwOyc7CiRsYW5nWyd0aXRsZV91bmlxdWVfZmllbGRuYW1lc19sb25nJ10gPSAnTGVzIGNoYW1wcyBkb2l2ZW50IGF2b2lyIGRlcyBub21zIGRpZmYmZWFjdXRlO3JlbnRzIChjYXNlIGNvY2gmZWFjdXRlO2UgPSBvdWkpJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX3Jlb3JkZXJfZm9ybSddID0gJ1ImZWFjdXRlO29yZ2FuaXNlciBsZXMgY2hhbXBzJzsKJGxhbmdbJ3RpdGxlX2xvYWRfdGVtcGxhdGUnXSA9ICdDaGFyZ2VyIGxlIGdhYmFyaXQgJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX2FkZF9idXR0b25fdGV4dCddID0gJ0Fqb3V0ZXIgdW4gYm91dG9uIHRleHRlJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX2RlbF9idXR0b25fdGV4dCddID0gJ1N1cHByaW1lciB1biBib3V0b24gdGV4dGUmbmJzcDsnOwokbGFuZ1sndGl0bGVfZmllbGRfaGVscHRleHQnXSA9ICdUZXh0ZSBkJiMwMzk7YWlkZSAmYWdyYXZlOyBhZmZpY2hlciBhdmVjIGNlIGNoYW1wJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX3N0cmluZ19vcl9udW1iZXJfZXZhbCddID0gJ0ludGVycHImZWFjdXRlO3RlciBsZXMgdmFyaWFibGVzIGNvbW1lICZlYWN1dGU7dGFudCBkZXMgbm9tYnJlcyBvdSBkZXMgY2hhJmljaXJjO25lcyBkZSBjYXJhY3QmZWdyYXZlO3JlcyZuYnNwOyc7CiRsYW5nWyd0aXRsZV9vcmRlciddID0gJ09yZHJlIGQmIzAzOTtpbnRlcnByJmVhY3V0ZTt0YXRpb24mbmJzcDsnOwokbGFuZ1sndGl0bGVfb3JkZXJfaGVscCddID0gJ1NpIHBsdXMgZCYjMDM5O3VuIGNoYW1wIGRlIGNhbGN1bCBleGlzdGUsIGlscyBzZXJvbnQgY2FsY3VsJmVhY3V0ZTsgZHUgcGx1cyBwZXRpdCBhdSBwbHVzIGdyYW5kJzsKJGxhbmdbJ3RpdGxlX3N0cmluZ191bnNwYWNlZCddID0gJ0NoaW5lIChwYXMgZCYjMDM5O2VzcGFjZXMgZW50cmUgbGVzIGNoYW1wcykgPyc7CiRsYW5nWyd0aXRsZV9jb21wdXRlX3ZhbHVlJ10gPSAnVmFsZXVyIGRlIGNhbGN1bCZuYnNwOyc7CiRsYW5nWyd0aXRsZV9jb21wdXRlJ10gPSAnVXRpbGlzYXRpb24gZGUgUEhQJzsKJGxhbmdbJ3RpdGxlX3N0cmluZyddID0gJ0NoYSZpY2lyYztuZXMgZGUgY2FyYWN0JmVncmF2ZTtyZXMnOwokbGFuZ1sndGl0bGVfbnVtZXJpYyddID0gJ051bWVyaXF1ZSc7CiRsYW5nWyd0aXRsZV9pbmxpbmVfZm9ybSddID0gJ01vbnRyZXIgbGUgZm9ybXVsYWlyZSBlbiBsaWduZSA/Jm5ic3A7JzsKJGxhbmdbJ3RpdGxlX2lubGluZV9mb3JtX2hlbHAnXSA9ICdDb2NoJmVhY3V0ZTsgc2lnbmlmaWUgcXVlIGxlIGZvcm11bGFpcmUgcmVtcGxhY2UgbGEgYmFsaXNlIHtjbXNfbW9kdWxlfSwgTm9uLUNvY2gmZWFjdXRlOyByZW1wbGFjZSBsYSBiYWxpc2Uge2NvbnRlbnR9Lic7CiRsYW5nWyd0aXRsZV9maWVsZF9kZWZhdWx0X3ZhbHVlJ10gPSAnVmFsZXVyIHBhciBkJmVhY3V0ZTtmYXV0IHBvdXIgbGUgY2hhbXAmbmJzcDsnOwokbGFuZ1sndGl0bGVfY2xlYXJfZGVmYXVsdCddID0gJ0VmZmFjZXIgbGEgdmFsZXVyIHBhciBkJmVhY3V0ZTtmYXV0IHBhciB1biBjbGljID8nOwokbGFuZ1sndGl0bGVfY2xlYXJfZGVmYXVsdF9oZWxwJ10gPSAnQ29jaGVyIGNldHRlIGNhc2UgcG91ciBlZmZhY2VyIGxhIHZhbGV1ciBwYXIgZCZlYWN1dGU7ZmF1dCBxdWFuZCBsJiMwMzk7dXRpbGlzYXRldXIgY2xpcXVlcmEgY2UgY2hhbXAuIFB1aXNxdWUgY2VsYSB1dGlsaXNlIGxhIGNvbXBhcmFpc29uIGRlIGNoYSZpY2lyYztuZSBlbiBqYXZhc2NyaXB0LCBjZWxhICZlYWN1dGU7Y2hvdWVyYSBzaSB2b3VzIGlucyZlYWN1dGU7cmV6IGRlcyBiYWxpc2VzIGRlIGNpdGF0aW9uIHNpbXBsZXMgZGFucyB2b3RyZSB0ZXh0ZSBwYXIgZCZlYWN1dGU7ZmF1dC4gViZlYWN1dGU7cmlmaWVyIGxlcyBjYXJhY3QmZWdyYXZlO3JlcyB1dGlsaXMmZWFjdXRlO3MgcG91ciAmZWFjdXRlO3ZpdGVyIGxlcyBlcnJldXJzLic7CiRsYW5nWyd0aXRsZV9yZW1vdmVfZmlsZV9mcm9tX3NlcnZlciddID0gJ1N1cHByaW1lciBsZXMgZmljaGllcnMgdXBsb2FkJmVhY3V0ZTtzIGRlcHVpcyBsZSBzZXJ2ZXVyIGFwciZlYWN1dGU7cyBleCZlYWN1dGU7Y3V0aW9uIChkaXNwb3NpdGlvbnMgZW1haWwpJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2phdmFzY3JpcHQnXSA9ICdKYXZhc2NyaXB0IHBvdXIgbGUgY2hhbXAmbmJzcDsnOwokbGFuZ1sndGl0bGVfZmllbGRfamF2YXNjcmlwdF9sb25nJ10gPSAnTWV0dHJlIGxlIGNvZGUgSmF2YXNjcmlwdCwgaW5jbHV0IGxlcyAmZWFjdXRlO3YmZWdyYXZlO25lbWVudHMsIGV4IDogb25jbGljaz0mcXVvdDt5b3VyZm4oKSZxdW90Oyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfamF2YXNjcmlwdCddID0gJ0Zvcm11bGFpcmUgZGUgc291bWlzc2lvbiBKYXZhc2NyaXB0Jm5ic3A7JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9qYXZhc2NyaXB0X2xvbmcnXSA9ICdNZXR0cmUgbGUgY29kZSBKYXZhc2NyaXB0LCBlbiBpbmNsdWFudCBsJiMwMzk7JmVhY3V0ZTt2JmVncmF2ZTtuZW1lbnQgcXVlIHZvdXMgdm91bGV6IHBpJmVhY3V0ZTtnZXIsIGV4IDogb25jbGljaz0mcXVvdDt5b3VyZm4oKSZxdW90Oy48YnIgLz4gTmUgZm9uY3Rpb25uZXJhIHByb2JhYmxlbWVudCBwYXMgYmllbiBzaSB2b3VzIHV0aWxpc2V6IGwmIzAzOTtvcHRpb24gZGUgJnF1b3Q7c2NyaXB0IHMmZWFjdXRlO2N1cml0JmVhY3V0ZTsmcXVvdDsgY2ktZGVzc3VzLic7CiRsYW5nWydlbWFpbF9mcm9tX2FkZHJfaGVscCddID0gJ05lIHZvdXMgY29udGVudGV6IHBhcyBkZSBjaG9pc2lyIHVuZSBhZHJlc3NlIGFsJmVhY3V0ZTthdG9pcmUgaWNpIC0tIEJlYXVjb3VwIGRlIGZvdXJuaXNzZXVycyA8YnIgLz4gbmUgZGlzdHJpYnVlcm9udCBwYXMgbGUgY291cnJpZXIgc2kgdm91cyB1dGlsaXNleiB1biBub20gZGUgZG9tYWluZSBkaWZmJmVhY3V0ZTtyZW50IHF1ZSB2b3RyZSA8YnIgLz4gbm9tIGQmIzAzOTtoJm9jaXJjO3RlIChwYXIgZXhlbXBsZSwgdXRpbGlzZXogcXVlbHF1ZSBjaG9zZSBjb21tZSBub21AJXMpJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9hZHZhbmNlZCddID0gJ0Jlc29pbiBkZSBwbHVzIGRlIHR5cGVzIGRlIGNoYW1wcyA/ICc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYmFzaWMnXSA9ICdUcm9wIGRlIHR5cGVzIGRlIGNoYW1wIGNvbmZ1cyA/ICc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYWR2YW5jZWRfbGluayddID0gJ1Bhc3NlciBlbiBtb2RlIGF2YW5jJmVhY3V0ZTsnOwokbGFuZ1sndGl0bGVfc3dpdGNoX2Jhc2ljX2xpbmsnXSA9ICdQYXNzZXIgZW4gbW9kZSBzaW1wbGUnOwokbGFuZ1sndGl0bGVfZmlsZV9yb290J10gPSAnRG9zc2llciBkYW5zIGxlcXVlbCBsZSBmaWNoaWVyIHNlcmEgc2F1diZlYWN1dGU7JzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcm9vdF9oZWxwJ10gPSAnQ2UgZG9pdCAmZWNpcmM7dHJlIHVuIGRvc3NpZXIgZGUgdm90cmUgc2VydmV1ciBXZWIgYXZlYyBkZXMgcGVybWlzc2lvbnMgZCYjMDM5OyZlYWN1dGU7Y3JpdHVyZTxiciAvPlBhc3Nlei1sZSBlbiBDaG1vZCA3Nzcgc2kgdm91cyBhdmV6IGRlcyBwcm9ibCZlZ3JhdmU7bWVzIG91IGRvdXRlcy48YnIgLz5EZSBwbHVzLCB2JmVhY3V0ZTtyaWZpZXogcXVlIHZvdXMgbiYjMDM5O2F2ZXogcGFzIGRlIHJlc3RyaWN0aW9uIGRlIHImZWFjdXRlO3BlcnRvaXJlIFBIUC4nOwokbGFuZ1sndGl0bGVfbmV3bGluZV9yZXBsYWNlbWVudCddID0gJ05vdXZlbGxlIGxpZ25lL1JldG91ciAmYWdyYXZlOyBsYSBsaWduZSBlbiByZW1wbGFjZW1lbnQgZGUgY2FyYWN0JmVncmF2ZTtyZXMmbmJzcDsnOwokbGFuZ1sndGl0bGVfbmV3bGluZV9yZXBsYWNlbWVudF9oZWxwJ10gPSAnTGFpc3NlciB2aWVyZ2UgbGEgbGlnbmUgcG91ciBwZXJtZXR0cmUgdW5lIE5vdXZlbGxlIGxpZ25lL1JldG91ciAmYWdyYXZlOyBsYSBsaWduZSc7CiRsYW5nWyd0aXRsZV9zZW5kX3VzZXJjb3B5J10gPSAnRW52b3llciB1bmUgY29waWUgZGUgbGEgc291bWlzc2lvbiAmYWdyYXZlOyBsJiMwMzk7dXRpbGlzYXRldXIgPyZuYnNwOyc7CiRsYW5nWyd0aXRsZV9zZW5kX3VzZXJjb3B5X2xhYmVsJ10gPSAnRXRpcXVldHRlIHBvdXIgY2FzZSAmYWdyYXZlOyBjb2NoZXIgKHNpIGNob2l4IHV0aWxpc2F0ZXVyKSZuYnNwOyc7CiRsYW5nWyd0aXRsZV9zZW5kX21lX2FfY29weSddID0gJ00mIzAzOTtlbnZveWVyIHVuZSBjb3BpZSBkdSBmb3JtdWxhaXJlJzsKJGxhbmdbJ3RpdGxlX2FsbG93X3N1YmplY3Rfb3ZlcnJpZGUnXSA9ICdBdXRvcmlzZXIgcXVlIGwmIzAzOTtvYmpldCBzb2l0IGFubnVsJmVhY3V0ZTsgPyc7CiRsYW5nWyd0aXRsZV9hbGxvd19zdWJqZWN0X292ZXJyaWRlX2xvbmcnXSA9ICdBdXRvcmlzZXIgJiMwMzk7RW1haWwgJnF1b3Q7U3ViamVjdCZxdW90OyBGaWVsZHMmIzAzOTsgJmFncmF2ZTsgbCYjMDM5O2VtcG9ydGVyIHN1ciBsZSBzdWpldCBzcCZlYWN1dGU7Y2lmaSZlYWN1dGU7IGRhbnMgbGUgbWVudSBkJmVhY3V0ZTtyb3VsYW50Lic7CiRsYW5nWyd0aXRsZV9kaXNwbGF5X2xlbmd0aCddID0gJ0FmZmljaGFnZSBkZSBsYSBsb25ndWV1cic7CiRsYW5nWyd0aXRsZV9taW5pbXVtX2xlbmd0aCddID0gJ0xvbmd1ZXVyIG1pbmltdW0gcG91ciBsYSByJmVhY3V0ZTtwb25zZSc7CiRsYW5nWyd0aXRsZV9oaWRlJ10gPSAnTWFzcXVlciBsJiMwMzk7ZW50ciZlYWN1dGU7ZSc7CiRsYW5nWyd0aXRsZV9oaWRlX2hlbHAnXSA9ICdBZmZpY2hlciBsZXMgY2FyYWN0JmVncmF2ZTtyZXMgbG9yc3F1ZSBsJiMwMzk7dXRpbGlzYXRldXIgZW50cmUgdW4gbW90IGRlIHBhc3NlID8nOwokbGFuZ1sncGFzc3dvcmRfZG9lc19ub3RfbWF0Y2gnXSA9ICdMZSBtb3QgZGUgcGFzc2UgbmUgY29ycmVzcG9uZCBwYXMgJXMnOwokbGFuZ1snYmFja190b3AnXSA9ICdSZXRvdXIgJmFncmF2ZTsgbGEgcGFnZSBwcmluY2lwYWxlIEZvcm1CdWlsZGVyJzsKJGxhbmdbJ3RpdGxlX2hlYWRlcnNfdG9fbW9kaWZ5J10gPSAnUXVlbGxlcyBlbnQmZWNpcmM7dGVzIGRlIG1lc3NhZ2VyaWUgZGV2cmFpZW50IHV0aWxpc2VyIGNldHRlIGVudHImZWFjdXRlO2UgPyc7CiRsYW5nWyd0aXRsZV9ibGFua19pbnZhbGlkJ10gPSAnTiYjMDM5O2FjY2VwdGV6IHBhcyBkJiMwMzk7ZXNwYWNlIHZpZGUgY29tbWUgciZlYWN1dGU7cG9uc2UgdmFsaWRlJzsKJGxhbmdbJ3RpdGxlX2JsYW5rX2ludmFsaWRfbG9uZyddID0gJ1NpIHVuIGNoYW1wIGVzdCByZXF1aXMsIGNvY2hlciBjZWNpIG9ibGlnZXJhIGwmIzAzOTt1dGlsaXNhdGV1ciAmYWdyYXZlOyByZW1wbGlyIGF2ZWMgZGVzIGNhcmFjdCZlZ3JhdmU7cmVzIGFscGhhbnVtJmVhY3V0ZTtyaXF1ZXMsIHBhcyBqdXN0ZSBkZXMgZXNwYWNlcyAnOwokbGFuZ1sndGl0bGVfbXVzdF9zYXZlX29yZGVyJ10gPSAnVm91cyBkZXZleiBjbGlxdWVyIHN1ciB1biBkZXMgYm91dG9ucyAmbGFxdW87RW5yZWdpc3RyZXImcmFxdW87IHBvdXIgZmFpcmUgdW5lIG5vdXZlYXUgY2hhbXAgcGVybWFuZW50Lic7CiRsYW5nWyd0aXRsZV9odG1sNSddID0gJ1V0aWxpc2VyIEhUTUw1IGF1IGxpZXUgZGUgSmF2YXNjcmlwdCc7CiRsYW5nWydlcnJvcl9Db21wYW55RGlyZWN0b3J5X21vZHVsZV9ub3RfYXZhaWxhYmxlJ10gPSAnTGUgbW9kdWxlIENvbXBhbnkgRGlyZWN0b3J5IG4mIzAzOTtlc3QgcGFzIGRpc3BvbmlibGUgISc7CiRsYW5nWydvcHRpb25fbmV2ZXInXSA9ICdKYW1haXMnOwokbGFuZ1snb3B0aW9uX3VzZXJfY2hvaWNlJ10gPSAnRG9ubmUgdW4gY2hvaXggJmFncmF2ZTsgbCYjMDM5O3V0aWxpc2F0ZXVyIChjYXNlICZhZ3JhdmU7IGNvY2hlciknOwokbGFuZ1snb3B0aW9uX2Fsd2F5cyddID0gJ1RvdWpvdXJzJzsKJGxhbmdbJ29wdGlvbl9mcm9tJ10gPSAnQWRyZXNzZSBlbWFpbCBwb3VyICZxdW90O0Zyb20mcXVvdDsgKERlKSc7CiRsYW5nWydvcHRpb25fcmVwbHknXSA9ICdBZHJlc3NlIGVtYWlsIHBvdXIgJnF1b3Q7UmVwbHktVG8mcXVvdDsgKFImZWFjdXRlO3BvbmRyZSAmYWdyYXZlOyknOwokbGFuZ1snb3B0aW9uX2JvdGgnXSA9ICdBZHJlc3NlcyBlbWFpbCBwb3VyICZhZ3JhdmU7IGxhIGZvaXMgJnF1b3Q7RnJvbSZxdW90OyBldCAmcXVvdDtSZXBseS1UbyZxdW90Oyc7CiRsYW5nWydvcHRpb25fZHJvcGRvd24nXSA9ICdsaXN0LWJveCBkZSBzJmVhY3V0ZTtsZWN0aW9uJzsKJGxhbmdbJ29wdGlvbl9zZWxlY3RsaXN0X3NpbmdsZSddID0gJ0xpc3RlIHNpbXBsZSc7CiRsYW5nWydvcHRpb25fc2VsZWN0bGlzdF9tdWx0aXBsZSddID0gJ0xpc3RlIG11bHRpcGxlJzsKJGxhbmdbJ29wdGlvbl9yYWRpb2dyb3VwJ10gPSAnR3JvdXBlIGRlIGJvdXRvbnMgcmFkaW8nOwokbGFuZ1sndGl0bGVfY29tcGFueV9maWVsZF9ub3RlJ10gPSAnTm90ZSA6IGxhIHNvcnRpZSBmb3JtdWxhaXJlIHNlcmE8YnIvPiZxdW90O2NvbXBhbnkgbmFtZSZxdW90Oz0+JnF1b3Q7dmFsdWUmcXVvdDsnOwokbGFuZ1sndGl0bGVfcGlja19jYXRlZ29yaWVzJ10gPSAnQ2hvaXNpc3NleiB1bmUgY2F0JmVhY3V0ZTtnb3JpZSAobXVsdGlwbGUpJzsKJGxhbmdbJ3RpdGxlX3BpY2tfZmllbGRkZWYnXSA9ICdEb25uZSB1biBjaGFtcCBkZSBkJmVhY3V0ZTtmaW5pdGlvbiBkZSBsYSB2YWxldXIgKHVuaXF1ZSkgPGVtPm9wdGlvbjwvZW0+JzsKJGxhbmdbJ3RpdGxlX2Nob29zZV91c2VyX2lucHV0J10gPSAnQ2hvaXNpciB1bmUgZW50ciZlYWN1dGU7ZSB1dGlsaXNhdGV1ciAnOwokbGFuZ1sndGl0bGVfc2VlX2Fsc29fdWR0J10gPSAnKFZvdXMgcG91dmV6ICZlYWN1dGU7Z2FsZW1lbnQgbmF2aWd1ZXIgZGFucyBsJiMwMzk7b25nbGV0IEZvcm11bGFpcmUgZGUgc291bWlzc2lvbiBzaSB2b3VzIHNvdWhhaXRleiBkJmVhY3V0ZTtmaW5pciB1bmUgYmFsaXNlIHV0aWxpc2F0ZXVyIHBvdXIgbGUgZm9ybXVsYWlyZSBkZSB2YWxpZGF0aW9uKSc7CiRsYW5nWyd0aXRsZV95ZWFyX2VuZF9tZXNzYWdlJ10gPSAnRmluIGRlIGwmIzAzOTthbm4mZWFjdXRlO2UnOwokbGFuZ1sndGl0bGVfZmllbGRfbG9naWMnXSA9ICdEb25uJmVhY3V0ZTtlcyBvdSBiYWxpc2VzIFNtYXJ0eSBxdWkgZG9pdmVudCAmZWNpcmM7dHJlIGVudm95JmVhY3V0ZTtzIGF2ZWMgY2UgY2hhbXAmbmJzcDsnOwokbGFuZ1sndGl0bGVfZmllbGRfbG9naWNfbG9uZyddID0gJ0Rvbm4mZWFjdXRlO2VzIFNtYXJ0eSwgamF2YXNjcmlwdCwgb3UgdG91dGUgYXV0cmUgZG9ubiZlYWN1dGU7ZSBxdWUgdm91cyB2b3VsZXogZW52b3llciBhdmVjIGNlIGNoYW1wLjxiciAvPlMmIzAzOTtleCZlYWN1dGU7Y3V0ZSB2aWEgbGUgY29tcGlsZXVyIHNtYXJ0eSwgdXRpbGlzZXIgbGVzIGJhbGlzZXMge2xpdGVyYWx9ey9saXRlcmFsfSBhdmVjIDwgc2NyaXB0ID48IC9zY3JpcHQgPic7CiRsYW5nWyd0aXRsZV9maWVsZF9pbmNsdWRlbGFiZWxzJ10gPSAnSW5jbHV0IGxlcyBpbnRpdHVsJmVhY3V0ZTtzJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2luY2x1ZGVsYWJlbHNfaGVscCddID0gJ0FjdGl2ZXIgY2VjaSBpbmNsdXQgbGVzIGludGl0dWwmZWFjdXRlO3MgJmFncmF2ZTsgYXBwYXJhJmljaXJjO3RyZS4gRXhlbXBsZSAtIGxhYmVsOiB2YWx1ZSxsYWJlbDI6IHZhbHVlMic7CiRsYW5nWyd0aXRsZV9maWVsZF9zaWJsaW5ncyddID0gJ0xpZSBjZSBjaGFtcCAmYWdyYXZlOyBzb24gcGFyZW50JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3NpYmxpbmdzX2hlbHAnXSA9ICdNZW51IGQmZWFjdXRlO3JvdWxhbnQgcXVpIGxpc3RlIHRvdXMgbGVzIHBhcmVudHMgZGUgY2UgY2hhbXAgZXQgdm91cyBwZXJtZXQgZGUgbGllciBjZSBjaGFtcCBhdmVjIHVuIGRlIHNlcyBwYXJlbnRzLiBSZW5kIHBvc3NpYmxlIGRlIGNvbnRyJm9jaXJjO2xlciBjZSBjaGFtcCBhdmVjIGxlcyBjb250ciZvY2lyYztsZXMgZHUgcGFyZW50IHMmZWFjdXRlO2xlY3Rpb25uJmVhY3V0ZTsuJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2hpZGVidXR0b25zJ10gPSAnQ2FjaGUgbGVzIGJvdXRvbnMgZGUgY29udHImb2NpcmM7bGUnOwokbGFuZ1sndGl0bGVfZmllbGRfaGlkZWJ1dHRvbnNfaGVscCddID0gJ0NhY2hlIGxlcyBib3V0b25zIGRlIGNvbnRyJm9jaXJjO2xlIGRlIGNlIGNoYW1wIHN1ciBsJiMwMzk7aW50ZXJmYWNlIHB1YmxpcXVlJzsKJGxhbmdbJ3RpdGxlX25vdGUnXSA9ICdOb3RlJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX2NoYW5naW5nX3RyaWdnZXJzX3JlaW5kZXgnXSA9ICdNb2RpZmljYXRpb24gZGUgbCYjMDM5O3VuIGRlcyBjaGFtcHMgY2ktZGVzc3VzIGQmZWFjdXRlO2NsZW5jaGVyYSB1bmUgciZlYWN1dGU7LWluZGV4YXRpb24gZGUgKnRvdXMqIGxlcyBlbnJlZ2lzdHJlbWVudHMsIGNlbGEgcG91cnJhaXQgcHJlbmRyZSB1biBjZXJ0YWluIHRlbXBzLic7CiRsYW5nWydpbGxlZ2FsX2ZpbGUnXSA9ICdUZW50YXRpdmUgZGUgdCZlYWN1dGU7bCZlYWN1dGU7Y2hhcmdlbWVudCBpbGwmZWFjdXRlO2dhbCBkZSBmaWNoaWVycyBkZSB0eXBlICglcykgZGVwdWlzICVzJzsKJGxhbmdbJ3RpdGxlX3NlYXJjaGFibGUnXSA9ICdGYWlyZSBkZXMgZW5yZWdpc3RyZW1lbnRzIGFjY2Vzc2libGVzIHBvdXIgbGUgbW9kdWxlIGRlIHJlY2hlcmNoZSc7CiRsYW5nWyd0aXRsZV9zZWFyY2hhYmxlX2hlbHAnXSA9ICdFbiBjb2NoYW50LCBjZWxhIHJlbmRyYSB0b3V0ZXMgbGVzIGRvbm4mZWFjdXRlO2VzIGFjY2Vzc2libGVzIGRhbnMgbGUgbW9kdWxlIGRlIHJlY2hlcmNoZS4gTkUgUEFTIHV0aWxpc2VyIGNldHRlIG9wdGlvbiBzaSB2b3VzIGNyeXB0ZXogdm9zIGRvbm4mZWFjdXRlO2VzIC0tIExlcyBpbmZvcm1hdGlvbnMgc2Vyb250IHNvdW1pc2VzICZhZ3JhdmU7IGxhIHJlY2hlcmNoZSBzaSB2b3VzIGNyeXB0ZXogb3Ugbm9uICEnOwokbGFuZ1sndXBsb2FkZWRfb3V0c2lkZV93ZWJyb290J10gPSAnJXMgKGhvcnMgZGUgbGEgcmFjaW5lIGR1IHNpdGUgd2ViKSc7CiRsYW5nWydlcnJvcl91c2VydGFnX2Rpc3Bvc2l0aW9uJ10gPSAnTGEgYmFsaXNlIHV0aWxpc2F0ZXVyIGEgcmV0b3VybiZlYWN1dGU7IHVuZSBlcnJldXInOwokbGFuZ1snZXJyb3JfdXNlcnRhZyddID0gJ2xhIGJhbGlzZSB1dGlsaXNhdGV1ciAlcyByZXR1cm5lIHVuZSBlcnJldXIuJzsKJGxhbmdbJ2Vycm9yX2NhdGFsb2dlcl9tb2R1bGVfbm90X2F2YWlsYWJsZSddID0gJzxzdHJvbmc+TGUgbW9kdWxlIENhdGFsb2dlciBuZSBzZW1ibGUgcGFzICZlY2lyYzt0cmUgaW5zdGFsbCZlYWN1dGU7L2FjdGlmLjwvc3Ryb25nPic7CiRsYW5nWyd3YXJuaW5nJ10gPSAnQVRURU5USU9OICEnOwokbGFuZ1snZGVmYXVsdF90ZW1wbGF0ZSddID0gJ0dhYmFyaXQgcGFyIGQmZWFjdXRlO2ZhdXQnOwokbGFuZ1sndGFibGVfbGVmdF90ZW1wbGF0ZSddID0gJ0dhYmFyaXQgdGFibGVhdSwgVGl0cmVzICZhZ3JhdmU7IGdhdWNoZSc7CiRsYW5nWyd0YWJsZV90b3BfdGVtcGxhdGUnXSA9ICdHYWJhcml0IHRhYmxlYXUsIFRpdHJlcyBlbiBoYXV0JzsKJGxhbmdbJ2Zvcm1fdGVtcGxhdGVfbmFtZSddID0gJ0dhYmFyaXQgdmVuYW50IGRlICVzJzsKJGxhbmdbJ3RlbXBsYXRlX2FyZV95b3Vfc3VyZSddID0gJ1x1MDBDQXRlcy12b3VzIHNcdTAwRkJyIGRlIHZvdWxvaXIgJmVhY3V0ZTtjcmlyZSBwYXIgZGVzc3VzIHZvdHJlIGdhYmFyaXQgYXZlYyBsZSBnYWJhcml0IHMmZWFjdXRlO2xlY3Rpb25uJmVhY3V0ZTsgPyAobVx1MDBFQW1lIHNpIHZvdXMgZGl0ZXMgT0ssIHZvdXMgZGV2cmV6IHF1YW5kIG1cdTAwRUFtZSBzYXV2ZWdhcmRlciBsZSBjaGFuZ2VtZW50KSc7CiRsYW5nWyd0aXRsZV9iYWRfZnVuY3Rpb24nXSA9ICdFcnJldXIgZGUgY2FsY3VsICZxdW90OyVzJnF1b3Q7Lic7CiRsYW5nWydub19yZWZlcnJlcl9pbmZvJ10gPSAnUGFzIGQmIzAzOTtpbmZvcm1hdGlvbiBIVFRQX1JFRkVSRVIgZGlzcG9uaWJsZSAocHJvYmFibGVtZW50IGQmdWNpcmM7ICZhZ3JhdmU7IGwmIzAzOTt1c2FnZSBkZSB2YWxpZGF0aW9uIGQmIzAzOTtFbWFpbCB1dGlsaXNhdGV1ciknOwokbGFuZ1sndmFsaWRhdGlvbl9wYXJhbV9lcnJvciddID0gJ0VycmV1ciBkdSBwYXJhbSZlZ3JhdmU7dHJlIGRlIHZhbGlkYXRpb24uIFYmZWFjdXRlO3JpZmlleiBxdWUgdm91cyBhdmV6IHJlY29waSZlYWN1dGU7IGNvcnJlY3RlbWVudCBsJiMwMzk7VVJMIGRlIGwmIzAzOTtlbWFpbCAhJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVzcG9uc2VfZXJyb3InXSA9ICdFcnJldXIgZGUgciZlYWN1dGU7cG9uc2UgZGUgbGEgdmFsaWRhdGlvbi4gViZlYWN1dGU7cmlmaWV6IHF1ZSB2b3VzIGF2ZXogcmVjb3BpJmVhY3V0ZTsgY29ycmVjdGVtZW50IGwmIzAzOTtVUkwgZGUgbCYjMDM5O2VtYWlsICEnOwokbGFuZ1sndmFsaWRhdGlvbl9ub19maWVsZF9lcnJvciddID0gJ0VycmV1ciBkZSByJmVhY3V0ZTtwb25zZSBkZSBsYSB2YWxpZGF0aW9uLiBBdWN1biBjaGFtcCBkZSB2YWxpZGF0aW9uIGQmIzAzOTtlbWFpbCBkYW5zIGNlIGZvcm11bGFpcmUgISc7CiRsYW5nWyd1cGdyYWRlMDN0bzA0J10gPSAnTGUgZ2FiYXJpdCBkZSBmb3JtdWxhaXJlIGEgJmVhY3V0ZTt0JmVhY3V0ZTsgbWlzICZhZ3JhdmU7IGpvdXIgYXV0b21hdGlxdWVtZW50IGRlIGxhIHZlcnNpb24gMC4zIHZlcnMgbGEgdmVyc2lvbiAwLjQuIElsIHNlIHBldXQgcXVlIHZvdXMgYXlleiAmYWdyYXZlOyBmYWlyZSBjZXJ0YWluZXMgY29ycmVjdGlvbnMuIFNpIHZvdXMgdXRpbGlzZXogbGUgZm9ybXVsYWlyZSBwYXIgZCZlYWN1dGU7ZmF1dCwgcmVtcGxhY2V6IHNpbXBsZW1lbnQgY2UgZ2FiYXJpdCBwYXIgJnF1b3Q7ZGVmYXVsdCZxdW90OyBlbiB1dGlsaXNhbnQgbGUgbWVudSBkJmVhY3V0ZTtyb3VsYW50IGNpLWRlc3N1cy4nOwokbGFuZ1snYWRtaW5kZXNjJ10gPSAnQWpvdXQsICZlYWN1dGU7ZGl0aW9uIGV0IGdlc3Rpb24gZGUgZm9ybXVsYWlyZXMgaW50ZXJhY3RpZnMnOwokbGFuZ1snb3BlcmF0b3JzX2hlbHAnXSA9ICdTaSB2b3VzIHV0aWxpc2V6IHVuZSAmZWFjdXRlO3ZhbHVhdGlvbiBkZSBjaGEmaWNpcmM7bmUgZGUgY2FyYWN0JmVncmF2ZTtyZXMsIGxhIHNldWxlIG9wJmVhY3V0ZTtyYXRpb24gcG9zc2libGUgZXN0IGxhIGNvbmNhdCZlYWN1dGU7bmF0aW9uICgrKSwgYWxvcnMgcXVlIHNpIHZvdXMgdXRpbGlzZXogdW5lICZlYWN1dGU7dmFsdWF0aW9uIG51bSZlYWN1dGU7cmlxdWUsIHZvdXMgYXZleiBsZXMgc3ltYm9sZXMgZGUgYmFzZSAoLCArLCAtLCAqLCAvLCApLiBTaSB2b3VzIHV0aWxpc2V6IGwmIzAzOTsmZWFjdXRlO3ZhbHVhdGlvbiBwYXIgbGUgUEhQLCB2b3VzIHBvdXZleiANCnV0aWxpc2VyIG4mIzAzOTtpbXBvcnRlIHF1ZWxsZSBmb25jdGlvbiB2b3VzIHZvdWxleiwgbWFpcyB2b3VzIGF2ZXogYmVzb2luIGRlIGNpdGVyIGRlcyBjaG9zZXMgKGxhIHN1YnN0aXR1dGlvbiBzZSBwcm9kdWl0IGF2YW50IGwmIzAzOTsmZWFjdXRlO3ZhbHVhdGlvbiksIHBhciBleGVtcGxlLCBzdWJzdHIgKCYjMDM5OyRmbGRfMjImIzAzOTssMCwyKS4mIzAzOTskZmxkXzIzJiMwMzk7Lic7CiRsYW5nWydoZWxwX21vZHVsZV9pbnRlcmZhY2UnXSA9ICdVdGlsaXNlciBsZSBtb2R1bGUgZCYjMDM5O2ludGVyZmFjZSc7CiRsYW5nWydoZWxwX21vZHVsZV9pbnRlcmZhY2VfbG9uZyddID0gJzxiPkNlIGNoYW1wIGVzdCB1dGlsaXMmZWFjdXRlOyBjb21tZSB1biBwb250IHZlcnMgbGVzIGF1dHJlcyBtb2R1bGVzICE8L2I+DQpVdGlsaXNlei1sZSBlbiBjciZlYWN1dGU7YW50IHZvcyAmZWFjdXRlO2wmZWFjdXRlO21lbnRzIGRlIGZvcm11bGFpcmUgZGFucyBsZXMgZ2FiYXJpdHMgZGUocykgbCYjMDM5O2F1dHJlKHMpIG1vZHVsZShzKSBxdWUgdm91cyB2b3VsZXogaW5jb3Jwb3JlciwgZXQgdXRpbGlzZXogPHN0cm9uZz57JEZCaWR9PC9zdHJvbmc+IHBvdXIgbGUgbGllciBlbiByZXRvdXIgdmVycyBGb3JtQnVpbGRlci4gUGFyIGV4ZW1wbGUsIHBvdXIgaW5jbHVyZSBsZSBmb3JtdWxhaXJlIGQmIzAzOTtvcHRpb25zIGJhcyZlYWN1dGU7IHN1ciBsZSBtb2R1bGUgUHJvZHVjdHMsIGNyJmVhY3V0ZTtleiBsZSBnYWJhcml0IHN1aXZhbnQgZGFucyBQcm9kdWN0cyA6PGJyLz4NCjxwcmU+DQp7Zm9yZWFjaCBmcm9tPSRpdGVtcyBpdGVtPWVudHJ5fQ0KCXthc3NpZ24gdmFyPU1EYXRhIHZhbHVlPSYjMDM5OyYjMDM5O30NCgl7YXNzaWduIHZhcj1DZCB2YWx1ZT0mIzAzOTsmIzAzOTt9DQoJCXtmb3JlYWNoIGZyb209JEZCdmFsdWUgaXRlbT1NRGF0YX0NCgkJCXthc3NpZ24gdmFyPU1EYXRhIHZhbHVlPSYjMDM5Ozo6JiMwMzk7fGV4cGxvZGU6JE1EYXRhfQ0KCQkJe2lmICRNRGF0YVsxXT09JGVudHJ5LT5pZH0NCgkJCQl7YXNzaWduIHZhcj1DZCB2YWx1ZT0mIzAzOTsgY2hlY2tlZD0mcXVvdDtjaGVja2VkJnF1b3Q7JiMwMzk7fQ0KCQkJey9pZn0NCgkJey9mb3JlYWNofQ0KCTxkaXYgY2xhc3M9JnF1b3Q7UHJvZHVjdERpcmVjdG9yeUl0ZW0mcXVvdDs+DQoJCTxpbnB1dCB0eXBlPSZxdW90O2NoZWNrYm94JnF1b3Q7IHZhbHVlPSZxdW90O3skZW50cnktPnByaWNlfTo6eyRlbnRyeS0+aWR9JnF1b3Q7IG5hbWU9JnF1b3Q7eyRGQmlkfVtdJnF1b3Q7IHskQ2R9IC8+eyRlbnRyeS0+cHJvZHVjdF9uYW1lfSAoeyRlbnRyeS0+d2VpZ2h0fXskd2VpZ2h0X3VuaXRzfSkgJnBvdW5kO3skZW50cnktPnByaWNlfSAgICANCgk8L2Rpdj4NCnsvZm9yZWFjaH0NCjwvcHJlPg0KPGJyLz4NCm8mdWdyYXZlOyB2b3VzIHBvdXZleiBtZXR0cmUgZGFucyBsJiMwMzk7ZW50ciZlYWN1dGU7ZSBjaS1kZXNzb3VzIHF1ZWxxdWUgY2hvc2UgY29tbWUgPHN0cm9uZz57UHJvZHVjdHMgY2F0ZWdvcnk9JnF1b3Q7Y2F0JnF1b3Q7IHN1bW1hcnl0ZW1wbGF0ZT0mcXVvdDtZb3VyX0ZCX3RlbXBsYXRlJnF1b3Q7fTwvc3Ryb25nPic7CiRsYW5nWyd0aXRsZV9hZGRfdGFnJ10gPSAnQWpvdXRlciB2b3RyZSBiYWxpc2UnOwokbGFuZ1snZGF0ZV9qYW51YXJ5J10gPSAnSmFudmllcic7CiRsYW5nWydkYXRlX2ZlYnJ1YXJ5J10gPSAnRiZlYWN1dGU7dnJpZXInOwokbGFuZ1snZGF0ZV9tYXJjaCddID0gJ01hcnMnOwokbGFuZ1snZGF0ZV9hcHJpbCddID0gJ0F2cmlsJzsKJGxhbmdbJ2RhdGVfbWF5J10gPSAnTWFpJzsKJGxhbmdbJ2RhdGVfanVuZSddID0gJ0p1aW4nOwokbGFuZ1snZGF0ZV9qdWx5J10gPSAnSnVpbGxldCc7CiRsYW5nWydkYXRlX2F1Z3VzdCddID0gJ0FvJnVjaXJjO3QnOwokbGFuZ1snZGF0ZV9zZXB0ZW1iZXInXSA9ICdTZXB0ZW1icmUnOwokbGFuZ1snZGF0ZV9vY3RvYmVyJ10gPSAnT2N0b2JyZSc7CiRsYW5nWydkYXRlX25vdmVtYmVyJ10gPSAnTm92ZW1icmUnOwokbGFuZ1snZGF0ZV9kZWNlbWJlciddID0gJ0QmZWFjdXRlO2NlbWJyZSc7CiRsYW5nWydBRiddID0gJ0FmZ2hhbmlzdGFuJzsKJGxhbmdbJ0FYJ10gPSAnQWxhbmQgSXNsYW5kcyc7CiRsYW5nWydBTCddID0gJ0FsYmFuaWEnOwokbGFuZ1snRFonXSA9ICdBbGdlcmlhJzsKJGxhbmdbJ0FTJ10gPSAnQW1lcmljYW4gU2Ftb2EnOwokbGFuZ1snQUQnXSA9ICdBbmRvcnJhJzsKJGxhbmdbJ0FPJ10gPSAnQW5nb2xhJzsKJGxhbmdbJ0FJJ10gPSAnQW5ndWlsbGEnOwokbGFuZ1snQVEnXSA9ICdBbnRhcmN0aWNhJzsKJGxhbmdbJ0FHJ10gPSAnQW50aWd1YSBhbmQgQmFyYnVkYSc7CiRsYW5nWydBUiddID0gJ0FyZ2VudGluYSc7CiRsYW5nWydBTSddID0gJ0FybWVuaWEnOwokbGFuZ1snQVcnXSA9ICdBcnViYSc7CiRsYW5nWydBVSddID0gJ0F1c3RyYWxpYSc7CiRsYW5nWydBVCddID0gJ0F1c3RyaWEnOwokbGFuZ1snQVonXSA9ICdBemVyYmFpamFuJzsKJGxhbmdbJ0JTJ10gPSAnQmFoYW1hcyc7CiRsYW5nWydCSCddID0gJ0JhaHJhaW4nOwokbGFuZ1snQkInXSA9ICdCYXJiYWRvcyc7CiRsYW5nWydCRCddID0gJ0JhbmdsYWRlc2gnOwokbGFuZ1snQlknXSA9ICdCZWxhcnVzJzsKJGxhbmdbJ0JFJ10gPSAnQmVsZ2l1bSc7CiRsYW5nWydCWiddID0gJ0JlbGl6ZSc7CiRsYW5nWydCSiddID0gJ0JlbmluJzsKJGxhbmdbJ0JNJ10gPSAnQmVybXVkYSc7CiRsYW5nWydCVCddID0gJ0JodXRhbic7CiRsYW5nWydCVyddID0gJ0JvdHN3YW5hJzsKJGxhbmdbJ0JPJ10gPSAnQm9saXZpYSc7CiRsYW5nWydCQSddID0gJ0Jvc25pYSBhbmQgSGVyemVnb3ZpbmEnOwokbGFuZ1snQlYnXSA9ICdCb3V2ZXQgSXNsYW5kJzsKJGxhbmdbJ0JSJ10gPSAnQnJhemlsJzsKJGxhbmdbJ0lPJ10gPSAnQnJpdGlzaCBJbmRpYW4gT2NlYW4gVGVycml0b3J5JzsKJGxhbmdbJ0JOJ10gPSAnQnJ1bmVpIERhcnVzc2FsYW0nOwokbGFuZ1snQkcnXSA9ICdCdWxnYXJpYSc7CiRsYW5nWydCRiddID0gJ0J1cmtpbmEgRmFzbyc7CiRsYW5nWydCSSddID0gJ0J1cnVuZGknOwokbGFuZ1snS0gnXSA9ICdDYW1ib2RpYSc7CiRsYW5nWydDTSddID0gJ0NhbWVyb29uJzsKJGxhbmdbJ0NBJ10gPSAnQ2FuYWRhJzsKJGxhbmdbJ0NWJ10gPSAnQ2FwZSBWZXJkZSc7CiRsYW5nWydLWSddID0gJ0NheW1hbiBJc2xhbmRzJzsKJGxhbmdbJ0NGJ10gPSAnQ2VudHJhbCBBZnJpY2FuIFJlcHVibGljJzsKJGxhbmdbJ1REJ10gPSAnQ2hhZCc7CiRsYW5nWydDTCddID0gJ0NoaWxlJzsKJGxhbmdbJ0NOJ10gPSAnQ2hpbmEnOwokbGFuZ1snQ1gnXSA9ICdDaHJpc3RtYXMgSXNsYW5kJzsKJGxhbmdbJ0NDJ10gPSAnQ29jb3MgKEtlZWxpbmcpIElzbGFuZHMnOwokbGFuZ1snQ08nXSA9ICdDb2xvbWJpYSc7CiRsYW5nWydLTSddID0gJ0NvbW9yb3MnOwokbGFuZ1snQ0cnXSA9ICdDb25nbyc7CiRsYW5nWydDRCddID0gJ0NvbmdvLCAgRGVtb2NyYXRpYyBSZXB1YmxpYyc7CiRsYW5nWydDSyddID0gJ0Nvb2sgSXNsYW5kcyc7CiRsYW5nWydDUiddID0gJ0Nvc3RhIFJpY2EnOwokbGFuZ1snQ0knXSA9ICdJdm9pcmUgKEl2b3J5IENvYXN0KSc7CiRsYW5nWydIUiddID0gJ0Nyb2F0aWEgKEhydmF0c2thKSc7CiRsYW5nWydDVSddID0gJ0N1YmEnOwokbGFuZ1snQ1knXSA9ICdDeXBydXMnOwokbGFuZ1snQ1onXSA9ICdDemVjaCBSZXB1YmxpYyc7CiRsYW5nWydESyddID0gJ0Rlbm1hcmsnOwokbGFuZ1snREonXSA9ICdEamlib3V0aSc7CiRsYW5nWydETV8nXSA9ICdEb21pbmljYSc7CiRsYW5nWydETyddID0gJ0RvbWluaWNhbiBSZXB1YmxpYyc7CiRsYW5nWydUUCddID0gJ0Vhc3QgVGltb3InOwokbGFuZ1snRUMnXSA9ICdFY3VhZG9yJzsKJGxhbmdbJ0VHJ10gPSAnRWd5cHQnOwokbGFuZ1snU1YnXSA9ICdFbCBTYWx2YWRvcic7CiRsYW5nWydHUSddID0gJ0VxdWF0b3JpYWwgR3VpbmVhJzsKJGxhbmdbJ0VSJ10gPSAnRXJpdHJlYSc7CiRsYW5nWydFRSddID0gJ0VzdG9uaWEnOwokbGFuZ1snRVQnXSA9ICdFdGhpb3BpYSc7CiRsYW5nWydGSyddID0gJ0ZhbGtsYW5kIElzbGFuZHMgKE1hbHZpbmFzKSc7CiRsYW5nWydGTyddID0gJ0Zhcm9lIElzbGFuZHMnOwokbGFuZ1snRkonXSA9ICdGaWppJzsKJGxhbmdbJ0ZJJ10gPSAnRmlubGFuZCc7CiRsYW5nWydGUiddID0gJ0ZyYW5jZSc7CiRsYW5nWydGWCddID0gJ0ZyYW5jZSwgIE1ldHJvcG9saXRhbic7CiRsYW5nWydHRiddID0gJ0d1ZXJuc2V5JzsKJGxhbmdbJ1BGJ10gPSAnRnJlbmNoIFBvbHluZXNpYSc7CiRsYW5nWydURiddID0gJ0ZyZW5jaCBTb3V0aGVybiBUZXJyaXRvcmllcyc7CiRsYW5nWydNSyddID0gJ0YuWS5SLk8uTS4gKE1hY2Vkb25pYSknOwokbGFuZ1snR0EnXSA9ICdHYWJvbic7CiRsYW5nWydHTSddID0gJ0dhbWJpYSc7CiRsYW5nWydHRSddID0gJ0dlb3JnaWEnOwokbGFuZ1snREUnXSA9ICdHZXJtYW55JzsKJGxhbmdbJ0dIJ10gPSAnR2hhbmEnOwokbGFuZ1snR0knXSA9ICdHaWJyYWx0YXInOwokbGFuZ1snR0InXSA9ICdHcmVhdCBCcml0YWluIChVSyknOwokbGFuZ1snR1InXSA9ICdHcmVlY2UnOwokbGFuZ1snR0wnXSA9ICdHcmVlbmxhbmQnOwokbGFuZ1snR0QnXSA9ICdHcmVuYWRhJzsKJGxhbmdbJ0dQJ10gPSAnR3VhZGVsb3VwZSc7CiRsYW5nWydHVSddID0gJ0d1YW0nOwokbGFuZ1snR1QnXSA9ICdHdWF0ZW1hbGEnOwokbGFuZ1snR04nXSA9ICdHdWluZWEnOwokbGFuZ1snR1cnXSA9ICdHdWluZWEtQmlzc2F1JzsKJGxhbmdbJ0dZJ10gPSAnR3V5YW5hJzsKJGxhbmdbJ0hUJ10gPSAnSGFpdGknOwokbGFuZ1snSE0nXSA9ICdIZWFyZCBhbmQgTWNEb25hbGQgSXNsYW5kcyc7CiRsYW5nWydITiddID0gJ0hvbmR1cmFzJzsKJGxhbmdbJ0hLJ10gPSAnSG9uZyBLb25nJzsKJGxhbmdbJ0hVJ10gPSAnSHVuZ2FyeSc7CiRsYW5nWydJUyddID0gJ0ljZWxhbmQnOwokbGFuZ1snSU4nXSA9ICdJbmRpYSc7CiRsYW5nWydJRCddID0gJ0luZG9uZXNpYSc7CiRsYW5nWydJUiddID0gJ0lyYW4nOwokbGFuZ1snSVEnXSA9ICdJcmFxJzsKJGxhbmdbJ0lFJ10gPSAnSXJlbGFuZCc7CiRsYW5nWydJTCddID0gJ0lzcmFlbCc7CiRsYW5nWydJTSddID0gJ0lzbGUgb2YgTWFuJzsKJGxhbmdbJ0lUJ10gPSAnSXRhbHknOwokbGFuZ1snSkUnXSA9ICdKZXJzZXknOwokbGFuZ1snSk0nXSA9ICdKYW1haWNhJzsKJGxhbmdbJ0pQJ10gPSAnSmFwYW4nOwokbGFuZ1snSk8nXSA9ICdKb3JkYW4nOwokbGFuZ1snS1onXSA9ICdLYXpha2hzdGFuJzsKJGxhbmdbJ0tFJ10gPSAnS2VueWEnOwokbGFuZ1snS0knXSA9ICdLaXJpYmF0aSc7CiRsYW5nWydLUCddID0gJ0tvcmVhIChOb3J0aCknOwokbGFuZ1snS1InXSA9ICdLb3JlYSAoU291dGgpJzsKJGxhbmdbJ0tXJ10gPSAnS3V3YWl0JzsKJGxhbmdbJ0tHJ10gPSAnS3lyZ3l6c3Rhbic7CiRsYW5nWydMQSddID0gJ0xhb3MnOwokbGFuZ1snTFYnXSA9ICdMYXR2aWEnOwokbGFuZ1snTEInXSA9ICdMZWJhbm9uJzsKJGxhbmdbJ0xJJ10gPSAnTGllY2h0ZW5zdGVpbic7CiRsYW5nWydMUiddID0gJ0xpYmVyaWEnOwokbGFuZ1snTFknXSA9ICdMaWJ5YSc7CiRsYW5nWydMUyddID0gJ0xlc290aG8nOwokbGFuZ1snTFQnXSA9ICdMaXRodWFuaWEnOwokbGFuZ1snTFUnXSA9ICdMdXhlbWJvdXJnJzsKJGxhbmdbJ01PJ10gPSAnTWFjYXUnOwokbGFuZ1snTUcnXSA9ICdNYWRhZ2FzY2FyJzsKJGxhbmdbJ01XJ10gPSAnTWFsYXdpJzsKJGxhbmdbJ01ZJ10gPSAnTWFsYXlzaWEnOwokbGFuZ1snTVYnXSA9ICdNYWxkaXZlcyc7CiRsYW5nWydNTCddID0gJ01hbGknOwokbGFuZ1snTVQnXSA9ICdNYWx0YSc7CiRsYW5nWydNSCddID0gJ01hcnNoYWxsIElzbGFuZHMnOwokbGFuZ1snTVEnXSA9ICdNYXJ0aW5pcXVlJzsKJGxhbmdbJ01SJ10gPSAnTWF1cml0YW5pYSc7CiRsYW5nWydNVSddID0gJ01hdXJpdGl1cyc7CiRsYW5nWydZVCddID0gJ01heW90dGUnOwokbGFuZ1snTVgnXSA9ICdNZXhpY28nOwokbGFuZ1snRk0nXSA9ICdNaWNyb25lc2lhJzsKJGxhbmdbJ01DJ10gPSAnTW9uYWNvJzsKJGxhbmdbJ01EJ10gPSAnTW9sZG92YSc7CiRsYW5nWydNQSddID0gJ01vcm9jY28nOwokbGFuZ1snTU4nXSA9ICdNb25nb2xpYSc7CiRsYW5nWydNUyddID0gJ01vbnRzZXJyYXQnOwokbGFuZ1snTVonXSA9ICdNb3phbWJpcXVlJzsKJGxhbmdbJ01NJ10gPSAnTXlhbm1hcic7CiRsYW5nWydOQSddID0gJ05hbWliaWEnOwokbGFuZ1snTlInXSA9ICdOYXVydSc7CiRsYW5nWydOUCddID0gJ05lcGFsJzsKJGxhbmdbJ05MJ10gPSAnTmV0aGVybGFuZHMnOwokbGFuZ1snQU4nXSA9ICdOZXRoZXJsYW5kcyBBbnRpbGxlcyc7CiRsYW5nWydOVCddID0gJ05ldXRyYWwgWm9uZSc7CiRsYW5nWydOQyddID0gJ05ldyBDYWxlZG9uaWEnOwokbGFuZ1snTlonXSA9ICdOZXcgWmVhbGFuZCAoQW90ZWFyb2EpJzsKJGxhbmdbJ05JJ10gPSAnTmljYXJhZ3VhJzsKJGxhbmdbJ05FJ10gPSAnTmlnZXInOwokbGFuZ1snTkcnXSA9ICdOaWdlcmlhJzsKJGxhbmdbJ05VJ10gPSAnTml1ZSc7CiRsYW5nWydORiddID0gJ05vcmZvbGsgSXNsYW5kJzsKJGxhbmdbJ01QJ10gPSAnTm9ydGhlcm4gTWFyaWFuYSBJc2xhbmRzJzsKJGxhbmdbJ05PJ10gPSAnTm9yd2F5JzsKJGxhbmdbJ09NJ10gPSAnT21hbic7CiRsYW5nWydQSyddID0gJ1Bha2lzdGFuJzsKJGxhbmdbJ1BXJ10gPSAnUGFsYXUnOwokbGFuZ1snUFMnXSA9ICdQYWxlc3RpbmlhbiBUZXJyaXRvcnknOwokbGFuZ1snUEEnXSA9ICdQYW5hbWEnOwokbGFuZ1snUEcnXSA9ICdQYXB1YSBOZXcgR3VpbmVhJzsKJGxhbmdbJ1BZJ10gPSAnUGFyYWd1YXknOwokbGFuZ1snUEUnXSA9ICdQZXJ1JzsKJGxhbmdbJ1BIJ10gPSAnUGhpbGlwcGluZXMnOwokbGFuZ1snUE4nXSA9ICdQaXRjYWlybic7CiRsYW5nWydQTCddID0gJ1BvbGFuZCc7CiRsYW5nWydQVCddID0gJ1BvcnR1Z2FsJzsKJGxhbmdbJ1BSJ10gPSAnUHVlcnRvIFJpY28nOwokbGFuZ1snUUEnXSA9ICdRYXRhcic7CiRsYW5nWydSRSddID0gJ1JldW5pb24nOwokbGFuZ1snUk8nXSA9ICdSb21hbmlhJzsKJGxhbmdbJ1JVJ10gPSAnUnVzc2lhbiBGZWRlcmF0aW9uJzsKJGxhbmdbJ1JXJ10gPSAnUndhbmRhJzsKJGxhbmdbJ0dTJ10gPSAnUy4gR2VvcmdpYSBhbmQgUy4gU2FuZHdpY2ggSXNscy4nOwokbGFuZ1snS04nXSA9ICdTYWludCBLaXR0cyBhbmQgTmV2aXMnOwokbGFuZ1snTEMnXSA9ICdTYWludCBMdWNpYSc7CiRsYW5nWydWQyddID0gJ1NhaW50IFZpbmNlbnQgJmFtcDsgdGhlIEdyZW5hZGluZXMnOwokbGFuZ1snV1MnXSA9ICdTYW1vYSc7CiRsYW5nWydTTSddID0gJ1NhbiBNYXJpbm8nOwokbGFuZ1snU1QnXSA9ICdTYW8gVG9tZSBhbmQgUHJpbmNpcGUnOwokbGFuZ1snU0EnXSA9ICdTYXVkaSBBcmFiaWEnOwokbGFuZ1snU04nXSA9ICdTZW5lZ2FsJzsKJGxhbmdbJ1NDJ10gPSAnU2V5Y2hlbGxlcyc7CiRsYW5nWydTTCddID0gJ1NpZXJyYSBMZW9uZSc7CiRsYW5nWydTRyddID0gJ1NpbmdhcG9yZSc7CiRsYW5nWydTSSddID0gJ1Nsb3ZlbmlhJzsKJGxhbmdbJ1NLJ10gPSAnU2xvdmFrIFJlcHVibGljJzsKJGxhbmdbJ1NCJ10gPSAnU29sb21vbiBJc2xhbmRzJzsKJGxhbmdbJ1NPJ10gPSAnU29tYWxpYSc7CiRsYW5nWydaQSddID0gJ1NvdXRoIEFmcmljYSc7CiRsYW5nWydFUyddID0gJ1NwYWluJzsKJGxhbmdbJ0xLJ10gPSAnU3JpIExhbmthJzsKJGxhbmdbJ1NIJ10gPSAnU3QuIEhlbGVuYSc7CiRsYW5nWydQTSddID0gJ1N0LiBQaWVycmUgYW5kIE1pcXVlbG9uICc7CiRsYW5nWydTRCddID0gJ1N1ZGFuJzsKJGxhbmdbJ1NSJ10gPSAnU3VyaW5hbWUnOwokbGFuZ1snU0onXSA9ICdTdmFsYmFyZCAmYW1wOyBKYW4gTWF5ZW4gSXNsYW5kcyc7CiRsYW5nWydTWiddID0gJ1N3YXppbGFuZCc7CiRsYW5nWydTRSddID0gJ1N3ZWRlbic7CiRsYW5nWydDSCddID0gJ1N3aXR6ZXJsYW5kJzsKJGxhbmdbJ1NZJ10gPSAnU3lyaWEnOwokbGFuZ1snVFcnXSA9ICdUYWl3YW4nOwokbGFuZ1snVEonXSA9ICdUYWppa2lzdGFuJzsKJGxhbmdbJ1RaJ10gPSAnVGFuemFuaWEnOwokbGFuZ1snVEgnXSA9ICdUaGFpbGFuZCc7CiRsYW5nWydURyddID0gJ1RvZ28nOwokbGFuZ1snVEsnXSA9ICdUb2tlbGF1JzsKJGxhbmdbJ1RPJ10gPSAnVG9uZ2EnOwokbGFuZ1snVFQnXSA9ICdUcmluaWRhZCBhbmQgVG9iYWdvJzsKJGxhbmdbJ1ROJ10gPSAnVHVuaXNpYSc7CiRsYW5nWydUUiddID0gJ1R1cmtleSc7CiRsYW5nWydUTSddID0gJ1R1cmttZW5pc3Rhbic7CiRsYW5nWydUQyddID0gJ1R1cmtzIGFuZCBDYWljb3MgSXNsYW5kcyc7CiRsYW5nWydUViddID0gJ1R1dmFsdSc7CiRsYW5nWydVRyddID0gJ1VnYW5kYSc7CiRsYW5nWydVQSddID0gJ1VrcmFpbmUnOwokbGFuZ1snQUUnXSA9ICdVbml0ZWQgQXJhYiBFbWlyYXRlcyc7CiRsYW5nWydVSyddID0gJ1VuaXRlZCBLaW5nZG9tJzsKJGxhbmdbJ1VTJ10gPSAnVW5pdGVkIFN0YXRlcyc7CiRsYW5nWydVTSddID0gJ1VTIE1pbm9yIE91dGx5aW5nIElzbGFuZHMnOwokbGFuZ1snVVknXSA9ICdVcnVndWF5JzsKJGxhbmdbJ1VaJ10gPSAnVXpiZWtpc3Rhbic7CiRsYW5nWydWVSddID0gJ1ZhbnVhdHUnOwokbGFuZ1snVkEnXSA9ICdWYXRpY2FuIENpdHkgU3RhdGUgKEhvbHkgU2VlKSc7CiRsYW5nWydWRSddID0gJ1ZlbmV6dWVsYSc7CiRsYW5nWydWTiddID0gJ1ZpZXQgTmFtJzsKJGxhbmdbJ1ZHJ10gPSAnVmlyZ2luIElzbGFuZHMgKEJyaXRpc2gpJzsKJGxhbmdbJ1ZJJ10gPSAnVmlyZ2luIElzbGFuZHMgKFUuUy4pJzsKJGxhbmdbJ1dGJ10gPSAnV2FsbGlzIGFuZCBGdXR1bmEgSXNsYW5kcyc7CiRsYW5nWydFSCddID0gJ1dlc3Rlcm4gU2FoYXJhJzsKJGxhbmdbJ1lFJ10gPSAnWWVtZW4nOwokbGFuZ1snWVUnXSA9ICdZdWdvc2xhdmlhJzsKJGxhbmdbJ1pNJ10gPSAnWmFtYmlhJzsKJGxhbmdbJ1pXJ10gPSAnWmltYmFid2UnOwokbGFuZ1snc3VibWlzc2lvbl9lcnJvciddID0gJ0QmZWFjdXRlO3NvbCZlYWN1dGU7ICEgVW5lIGVycmV1ciBhIGVtcCZlY2lyYztjaCZlYWN1dGU7IGxhIHRyYW5zbWlzc2lvbiBkdSBmb3JtdWxhaXJlLic7CiRsYW5nWydzdWJtaXRfZXJyb3InXSA9ICdFcnJldXIgZGUgc291bWlzc2lvbiBGb3JtQnVpbGRlciA6ICVzJzsKJGxhbmdbJ3VwbG9hZHNfZXJyb3InXSA9ICdFcnJldXIgZW4gc291bWV0dGFudCB1biBmaWNoaWVyIGF1IG1vZHVsZSBkJiMwMzk7dXBsb2FkIDogJXMnOwokbGFuZ1snbm91cGxvYWRzX2Vycm9yJ10gPSAnTW9kdWxlIGQmIzAzOTt1cGxvYWQgaW50cm91dmFibGUnOwokbGFuZ1sndXBsb2FkX2F0dGFjaF9lcnJvciddID0gJ0VycmV1ciBkJiMwMzk7VXBsb2FkL0F0dGFjaGVtZW50IHN1ciBsZSBmaWNoaWVyICVzICh0bXBfbmFtZSA6ICVzLCBkZSB0eXBlICVzKSc7CiRsYW5nWydzdWJtaXNzaW9uX2Vycm9yX2ZpbGVfbG9jayddID0gJ0VycmV1ci4gSW1wb3NzaWJsZSBkJiMwMzk7b2J0ZW5pciBsZSBibG9jYWdlIGR1IGZpY2hpZXIuJzsKJGxhbmdbJ3VuY2hlY2tlZF9ieV9kZWZhdWx0J10gPSAnUGFyIGQmZWFjdXRlO2ZhdXQgOiBkJmVhY3V0ZTtjb2NoJmVhY3V0ZTsnOwokbGFuZ1snY2hlY2tlZF9ieV9kZWZhdWx0J10gPSAnUGFyIGQmZWFjdXRlO2ZhdXQgOiBjb2NoJmVhY3V0ZTsnOwokbGFuZ1snZW1haWxfZGVmYXVsdF90ZW1wbGF0ZSddID0gJ1NvdW1pc3Npb24gcGFyIEZvcm1CdWlsZGVyJzsKJGxhbmdbJ2VtYWlsX3RlbXBsYXRlX25vdF9zZXQnXSA9ICc8YnIvPkdhYmFyaXQgZHUgbWFpbCBwYXMgZW5jb3JlIGQmZWFjdXRlO2ZpbmkgISc7CiRsYW5nWydtaXNzaW5nX2Ntc19tYWlsZXInXSA9ICdGb3JtQnVpbGRlciA6IGltcG9zc2libGUgZGUgdHJvdXZlciBsZSBtb2R1bGUgQ01TTWFpbGVyIHJlcXVpcyAhJzsKJGxhbmdbJ3VzZXJfYXBwcm92ZWRfc3VibWlzc2lvbiddID0gJ1V0aWxpc2F0ZXVyIGFwcHJvdXZhbnQgbGEgc291bWlzc2lvbiAlcyBkZSAlcyc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J10gPSAnRXYmZWFjdXRlO25lbWVudCBkJmVhY3V0ZTtjbGVuY2gmZWFjdXRlOyBsb3JzcXUmIzAzOTt1biBmb3JtdWxhaXJlIEZvcm1CdWlsZGVyIGVzdCBlbnZveSZlYWN1dGU7JzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddID0gJ0V2JmVhY3V0ZTtuZW1lbnQgZCZlYWN1dGU7Y2xlbmNoJmVhY3V0ZTsgcyYjMDM5O2lsIHkgYSB1bmUgZXJyZXVyIGxvcnNxdSYjMDM5O3VuIGZvcm11bGFpcmUgRm9ybUJ1aWxkZXIgZXN0IGVudm95JmVhY3V0ZTsnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXSA9ICdFdiZlYWN1dGU7bmVtZW50IGQmZWFjdXRlO2NsZW5jaCZlYWN1dGU7IGxvcnNxdSYjMDM5O3VuIGZvcm11bGFpcmUgRm9ybUJ1aWxkZXIgZXN0IGFmZmljaCZlYWN1dGU7JzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXSA9ICc8cD5FdiZlYWN1dGU7bmVtZW50IGQmZWFjdXRlO2NsZW5jaCZlYWN1dGU7IGxvcnNxdSYjMDM5O3VuIGZvcm11bGFpcmUgRm9ybUJ1aWxkZXIgZXN0IGVudm95JmVhY3V0ZTsuPC9wPg0KPGg0PlBhcmFtJmVncmF2ZTt0cmVzPC9oND4NCjx1bD4NCjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBMZSBub20gZHUgZm9ybXVsYWlyZSAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIEwmIzAzOTtpZCBpbnRlcm5lIGR1IGZvcm11bGFpcmUgKGludCk8L2xpPg0KPGxpPjxlbT52YWx1ZV88bmFtZT48L2VtPiAtIEZvdXJuaXQgdW5lIHZhbGV1ciBwYXIgZCZlYWN1dGU7ZmF1dCAmYWdyYXZlOyB1biBjaGFtcCBhdmVjIGxlIG5vbSBwciZlYWN1dGU7Y2lzJmVhY3V0ZTsuPC9saT4NCjwvdWw+ICc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InXSA9ICc8cD5FdiZlYWN1dGU7bmVtZW50IGQmZWFjdXRlO2NsZW5jaCZlYWN1dGU7IHMmIzAzOTtpbCB5IGEgdW5lIGVycmV1ciBsb3JzcXUmIzAzOTt1biBmb3JtdWxhaXJlIEZvcm1CdWlsZGVyIGVzdCBlbnZveSZlYWN1dGU7PC9wPg0KPGg0PlBhcmFtJmVncmF2ZTt0cmVzPC9oND4NCjx1bD4NCjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBMZSBub20gZHUgZm9ybXVsYWlyZSAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIEwmIzAzOTtpZCBpbnRlcm5lIGR1IGZvcm11bGFpcmUgKGludCk8L2xpPg0KPGxpPjxlbT5lcnJvcjwvZW0+IC0gVW5lIGxpc3RlIGRlIHRvdXRlcyBsZXMgZXJyZXVycyBjb25udWVzIChzdHJpbmcpPC9saT4NCjwvdWw+ICc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtRGlzcGxheSddID0gJzxwPkV2JmVhY3V0ZTtuZW1lbnQgZCZlYWN1dGU7Y2xlbmNoJmVhY3V0ZTsgbG9yc3F1JiMwMzk7dW4gZm9ybXVsYWlyZSBGb3JtQnVpbGRlciBlc3QgYWZmaWNoJmVhY3V0ZTs8L3A+DQo8aDQ+UGFyYW0mZWdyYXZlO3RyZXM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIExlIG5vbSBkdSBmb3JtdWxhaXJlIChzdHJpbmcpPC9saT4NCjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gTCYjMDM5O2lkIGludGVybmUgZHUgZm9ybXVsYWlyZSAoaW50KTwvbGk+DQo8L3VsPiAnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX3Jlc3BvbnNlX2lkJ10gPSAnSUQuIGRlIGxhIHImZWFjdXRlO3BvbnNlIHV0aWxpcyZlYWN1dGU7ZSBwYXIgbGUgbW9kdWxlIEZvcm1Ccm93c2VyJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19wYXNzZWRfZnJvbV90YWcnXSA9ICdWYWxldXJzIGR1IGNoYW1wIHBhciBkJmVhY3V0ZTtmYXV0OyB2b2lyIGxlIG1vZHVsZSBkJiMwMzk7YWlkZSc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZmllbGRfaWQnXSA9ICdJRCBkdSBjaGFtcCBwb3VyIGxlcyBvcCZlYWN1dGU7cmF0aW9ucyBpbnRlcm5lcyc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZm9ybV9uYW1lJ10gPSAnTm9tIGR1IGZvcm11bGFpcmUnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2Zvcm1faWQnXSA9ICdJRCBkdSBmb3JtdWxhaXJlIHBvdXIgbGVzIG9wJmVhY3V0ZTtyYXRpb25zIGludGVybmVzJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19nZW5lcmFsJ10gPSAnUGFyYW0mZWdyYXZlO3RyZXMgZyZlYWN1dGU7biZlYWN1dGU7cmF1eCBwb3VyIGxlcyBvcCZlYWN1dGU7cmF0aW9ucyBpbnRlcm5lcyc7CiRsYW5nWyd0ZW1wbGF0ZV92YXJpYWJsZV9oZWxwJ10gPSAnPGgzPlZhcmlhYmxlcyBkdSBHYWJhcml0IGRlIEZvcm11bGFpcmU8L2gzPg0KPHA+Vm91cyBwb3V2ZXogbCYjMDM5OyZlYWN1dGU7ZGl0ZXIgcG91ciBxdWUgbGEgcHImZWFjdXRlO3NlbnRhdGlvbiBkZSB2b3RyZSBmb3JtdWxhaXJlIHNvaXQgY29uZm9ybWUgJmFncmF2ZTsgdm9zIHNvdWhhaXRzLg0KICAgUG91ciBxdWUgbGUgZm9ybXVsYWlyZSBmb25jdGlvbm5lLCB2b3VzIGRldnJleiB0b3Vqb3VycyBpbmNsdXJlIGxlcyB0YWdzIHskZmJfaGlkZGVufSBldCB7JHN1Ym1pdH0uPC9wPg0KDQo8cD5Wb3VzIHBvdXZleiBhY2MmZWFjdXRlO2RlciAmYWdyYXZlOyB2b3MgY2hhbXBzIGRlIGZvcm11bGFpcmUgZW4gdXRpbGlzYW50IHNvaXQgbCYjMDM5O29yZHJlICRmaWVsZHMgc29pdCBkaXJlY3RlbWVudCBwYXIgbGV1cnMgbm9tcyAoZS5nLiwgeyRteWZpZWxkLT5pbnB1dH0gKTwvcD4NCg0KDQo8cD5Wb2ljaSBsZXMgZGlmZiZlYWN1dGU7cmVudGVzIHZhbGV1cnMgYXBwbGljYWJsZXMgYXV4IGNoYW1wcyA6PC9wPg0KPHRhYmxlPg0KPHRyPjx0aD5DaGFtcDwvdGg+PHRoPlZhbGV1cjwvdGg+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmRpc3BsYXk8L3RkPjx0ZD4xIHBvdXIgYWZmaWNoZXIgbGUgY2hhbXAsIHNpbm9uIDA8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5yZXF1aXJlZDwvdGQ+PHRkPjEgc2kgbGUgY2hhbXAgZXN0IHJlcXVpcywgc2lub24gMDwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPnJlcXVpcmVkX3N5bWJvbDwvdGQ+PHRkPkxlIHN5bWJvbGUgc2lnbmFsYW50IGxlcyBjaGFtcHMgb2JsaWdhdG9pcmVzPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+Y3NzX2NsYXNzPC90ZD48dGQ+TGEgY2xhc3NlIENTUyBkZSBjZSBjaGFtcDwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPnZhbGlkPC90ZD48dGQ+MSBzaSBsZSBjaGFtcCAmZWFjdXRlO3QmZWFjdXRlOyB2YWxpZGUsIHNpbm9uIDA8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5lcnJvcjwvdGQ+PHRkPlRleHRlIHBvdXIgbGVzIHByb2JsJmVncmF2ZTttZXMgZGUgdmFsaWRhdGlvbiwgYXUgY2FzIG8mdWdyYXZlOyBsZSBjaGFtcCBuZSBzZXJhaXQgcGFzIHZhbGlkJmVhY3V0ZTs8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5oaWRlX25hbWU8L3RkPjx0ZD4xIHNpIGxlIG5vbSBkdSBjaGFtcHMgZG9pdCByZXN0ZXIgY2FjaCZlYWN1dGU7LCBzaW5vbiAwPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aGFzX2xhYmVsPC90ZD48dGQ+MSBzaSBsZSB0eXBlIGRlIGNoYW1wIGEgdW4gbGFiZWw8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5uZWVkc19kaXY8L3RkPjx0ZD4xIHNpIGxlIGNoYW1wIGRvaXQgJmVjaXJjO3RyZSBpbnQmZWFjdXRlO2dyJmVhY3V0ZTsgZGFucyB1biBESVYgKG91IGRhbnMgdW5lIGxpZ25lIGRlIHRhYmxlYXUsIHNpIGMmIzAzOTtlc3Qgdm90cmUgY2hvaXgpPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+bmFtZTwvdGQ+PHRkPkxlIG5vbSBkdSBjaGFtcDwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmhlbHB0ZXh0PC90ZD48dGQ+TGUgY2hhbXAgZGUgdGV4dGUgZCYjMDM5O2FpZGU8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5pbnB1dDwvdGQ+PHRkPkxhIHZhbGV1ciBkZSBjb250ciZvY2lyYztsZSBkdSBjaGFtcCAoZXguIDogbGEgdmFsZXVyIGR1IGNoYW1wKTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPm9wPC90ZD48dGQ+dW4gYm91dG9uIGRlIGNvbnRyJm9jaXJjO2xlIGFzc29jaSZlYWN1dGU7IGF1IGNoYW1wIHNpIGMmIzAzOTtlc3QgcG9zc2libGUgKGV4LiA6IGxlIGJvdXRvbiBzdXBwcmltZXIgcG91ciB1biBjaGFtcCB0ZXh0ZSk8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5pbnB1dF9pZDwvdGQ+PHRkPmwmIzAzOTsgSUQgZHUgY2hhbXAgKHV0aWxlIHBvdXIgdW4gbGFiZWwgZm9yPSZxdW90O2ZvbyZxdW90Oz4pPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+YWxpYXM8L3RkPjx0ZD5sJiMwMzk7YWxpYXMgc3AmZWFjdXRlO2NpZmkmZWFjdXRlOyBwb3VyIGNlIGNoYW1wPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aWQ8L3RkPjx0ZD5sJiMwMzk7aWQgaW50ZXJuZSAvIG9wYXF1ZSBxdWUgRm9ybUJ1aWxkZXIgdXRpbGlzZSBwb3VyIGNlIGNoYW1wPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+dHlwZTwvdGQ+PHRkPmxlIHR5cGUgZGUgZG9ubiZlYWN1dGU7ZXMgZHUgY2hhbXA8L3RkPjwvdHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KPHRyPjx0ZD5maWVsZC0+bXVsdGlwbGVfcGFydHM8L3RkPjx0ZD4xIHNpIGxlIGNoYW1wLT5pbnB1dCBlc3QgdW5lIGNvbGxlY3Rpb24gZGUgY29udHImb2NpcmM7bGVzPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+bGFiZWxfcGFydHM8L3RkPjx0ZD4xIHNpIGxhIGNvbGxlY3Rpb24gZGUgY29udHImb2NpcmM7bGVzIGEgZGVzIGxhYmVscyBzJmVhY3V0ZTtwYXImZWFjdXRlO3MgcG91ciBjaGFxdWUgY29udHImb2NpcmM7bGU8L3RkPjwvdHI+DQo8L3RhYmxlPg0KDQo8cD5EYW5zIGxlIGNhcyBkJiMwMzk7dW4gZm9ybXVsYWlyZSAmYWdyYXZlOyBwbHVzaWV1cnMgcGFnZXMsIHZvdXMgYXVyZXogYXVzc2kgYWNjJmVncmF2ZTtzICZhZ3JhdmU7IGxhIHZhbGV1ciBkZXMgY2hhbXBzIHByJmVhY3V0ZTtjJmVhY3V0ZTtkZW50cy4gSWxzIHNvbnQgZGFucyAkcHJldmlvdXMgYXJyYXksIG91IGFjY2Vzc2libGVzIHBhciBsZXVycyBub21zIChleC4gOiAmYW1wOyMxMjM7JG15ZmllbGQtPnZhbHVlfSApLg0KVm91cyBwb3V2ZXogYXVzc2kgdXRpbGlzZXIgU3RhdGljIFRleHQgZmllbGRzLCBjZSBxdWkgY29uc3RpdHVlIHVuZSBib25uZSBmYSZjY2VkaWw7b24gZGUgcGVyc29ubmFsaXNlciB2b3MgZm9ybXVsYWlyZXMgITwvcD4NCg0KPHA+RGFucyBjZXJ0YWlucyBjYXMsIGZpZWxkLT5pbnB1dCBlc3QgZW4gZmFpdCB1biBncm91cGUgZCYjMDM5O29iamV0cyBwbHV0Jm9jaXJjO3QgcXUmIzAzOTt1bmUgZW50ciZlYWN1dGU7ZS4gJkNjZWRpbDthIGFycml2ZSwgcGFyIGV4ZW1wbGUsIGRhbnMgQ2hlY2tCb3hHcm91cHMgb3UgUmFkaW9CdXR0b25Hcm91cHMuIERhbnMgY2UgY2FzLCB2b3VzIHBvdXZleiBsZXMgciZlYWN1dGU7cCZlYWN1dGU7dGVyIGF2ZWMgZmllbGQtPmlucHV0LT5uYW1lIGV0IGZpZWxkLT5pbnB1dC0+aW5wdXRzLjwvcD4NCiAgICANCjxwPlZvaWNpIGxlcyB2YXJpYWJsZXMgc21hcnR5IGNvbXBsJmVhY3V0ZTttZW50YWlyZXMgcXVlIHZvdXMgcG91dmV6IHV0aWxpc2VyIDo8L3A+DQo8dGFibGU+DQo8dHI+PHRoPlZhcmlhYmxlPC90aD48dGg+VmFsZXVyPC90aD48L3RyPg0KPHRyPjx0ZD50b3RhbF9wYWdlczwvdGQ+PHRkPm5vbWJyZSBkZSBwYWdlcyBwb3VyIHVuIGZvcm11bGFpcmUgbXVsdGktcGFnZXM8L3RkPjwvdHI+DQo8dHI+PHRkPnRoaXNfcGFnZTwvdGQ+PHRkPm51bSZlYWN1dGU7cm8gZGUgbGEgcGFnZSBjb3VycmFudGUgcG91ciB1biBmb3JtdWxhaXJlIG11bHRpLXBhZ2VzPC90ZD48L3RyPg0KPHRyPjx0ZD50aXRsZV9wYWdlX3hfb2ZfeTwvdGQ+PHRkPmFmZmljaGUgJnF1b3Q7cGFnZSB4IGRlIHkmcXVvdDsgcG91ciB1biBmb3JtdWxhaXJlIG11bHRpLXBhZ2VzPC90ZD48L3RyPg0KPHRyPjx0ZD5jc3NfY2xhc3M8L3RkPjx0ZD5MYSBjbGFzc2UgQ1NTIHBvdXIgbGUgZm9ybXVsYWlyZTwvdGQ+PC90cj4NCjx0cj48dGQ+Zm9ybV9uYW1lPC90ZD48dGQ+Tm9tIGR1IGZvcm11bGFpcmU8L3RkPjwvdHI+DQo8dHI+PHRkPmZvcm1faWQ8L3RkPjx0ZD5JRCBkZSBsYSBiYXNlIGRlIGRvbm4mZWFjdXRlO2VzIGR1IGZvcm11bGFpcmU8L3RkPjwvdHI+DQoNCjx0cj48dGQ+aW5fZm9ybWJyb3dzZXI8L3RkPjx0ZD4xIFNpIGxlIGZvcm11bGFpcmUgZXN0IGFmZmljaCZlYWN1dGU7ICZhZ3JhdmU7IHBhcnRpciBkZSBGb3JtQnJvd3NlcjwvdGQ+PC90cj4NCjx0cj48dGQ+aW5fYWRtaW48L3RkPjx0ZD4xIFNpIGxlIGZvcm11bGFpcmUgZXN0IHZpc3VhbGlzJmVhY3V0ZTsgZGUgbCYjMDM5O2FkbWluaXN0cmF0aW9uIGRlIEZvcm1Ccm93c2VyPC90ZD48L3RyPg0KPHRyPjx0ZD5mYnJfaWQ8L3RkPjx0ZD5JRCBkZSByZXRvdXIgc2kgbGUgZm9ybXVsYWlyZSBlc3QgYWZmaWNoJmVhY3V0ZTsgJmFncmF2ZTsgcGFydGlyIGRlIEZvcm1Ccm93c2VyPC90ZD48L3RyPg0KDQo8dHI+PHRkPnByZXY8L3RkPjx0ZD5Cb3V0b24gJnF1b3Q7UmVjdWxlciZxdW90OyBwb3VyIHVuIGZvcm11bGFpcmUgbXVsdGlwbGU8L3RkPjwvdHI+DQo8dHI+PHRkPnN1Ym1pdDwvdGQ+PHRkPkJvdXRvbiAmcXVvdDtTdWl2YW50JnF1b3Q7IG9yICZxdW90O0Vudm95ZXImcXVvdDsgIHBvdXIgdW4gZm9ybXVsYWlyZSBtdWx0aXBsZSwgYWp1c3RlciBhdXRvbWF0aXF1ZW1lbnQ8L3RkPjwvdHI+DQo8L3RhYmxlPg0KPHA+SmUgbmUgc2FpcyBwYXMgcG91cnF1b2kgdm91cyB2b3VsaWV6ICZjY2VkaWw7YSwgbWFpcyBsZXMgdm9pbCZhZ3JhdmU7Li4uPC9wPg0KJzsKJGxhbmdbJ3Bvc3RfaW5zdGFsbCddID0gJ0Zvcm1CdWlsZGVyIGVzdCBpbnN0YWxsJmVhY3V0ZTsuIE1lcmNpIGRlIGNvbnN1bHRlciBsJiMwMzk7YWlkZSBkdSBtb2R1bGUgcG91ciBsYSBkb2N1bWVudGF0aW9uLic7CiRsYW5nWydoZWxwJ10gPSAnPGgzPlF1ZSBmYWl0IGNlIG1vZHVsZSA/PC9oMz4NCjxwPkxlIG1vZHVsZSBGb3JtIEJ1aWxkZXIgdm91cyBwZXJtZXQgZGUgY3ImZWFjdXRlO2VyIGRlcyBmb3JtdWxhaXJlcyAoaWwgcyYjMDM5O2FnaXQgZW4gZmFpdCBkdSByZW1wbGEmY2NlZGlsO2FudCBkdSBtb2R1bGUgRmVlZGJhY2sgRm9ybSBkJiMwMzk7b3JpZ2luZSksIGF2ZWMgbGEgcHVpc3NhbmNlIHN1cHBsJmVhY3V0ZTttZW50YWlyZSBkdSBzdG9ja2FnZSBzdXIgYmFzZSBkZSBkb25uJmVhY3V0ZTtlcy4gQXZlYyBzb24gbW9kdWxlIGFzc29jaSZlYWN1dGU7IEZvcm0gQnJvd3Nlciwgdm91cyBwb3V2ZXogbCYjMDM5O3V0aWxpc2VyIHBvdXIgY3ImZWFjdXRlO2VyIGRlcyBhcHBsaWNhdGlvbnMgc2ltcGxlcyBkZSBiYXNlIGRlIGRvbm4mZWFjdXRlO2VzLjwvcD4NCjxwPkxlcyBmb3JtdWxhaXJlcyBjciZlYWN1dGU7JmVhY3V0ZTtzIHBhciBsZSBtb2R1bGUgRm9ybSBCdWlsZGVyIHBldXZlbnQgJmVjaXJjO3RyZSBpbnMmZWFjdXRlO3ImZWFjdXRlO3MgZGFucyBkZXMgZ2FiYXJpdHMgZXQvb3UgZGVzIHBhZ2VzIGRlIGNvbnRlbnUuIExlcyBmb3JtdWxhaXJlcyBwZXV2ZW50IGNvbnRlbmlyIGRlIG5vbWJyZXV4IHR5cGVzIGQmIzAzOTtlbnRyJmVhY3V0ZTtlcywgZXQgcGV1dmVudCBhdm9pciBkZXMgdmFsaWRhdGlvbnMgYXBwbGlxdSZlYWN1dGU7ZXMgJmFncmF2ZTsgY2VzIGVudHImZWFjdXRlO2VzLiBMZSByJmVhY3V0ZTtzdWx0YXQgZGUgY2VzIGZvcm11bGFpcmVzIHBldXZlbnQgJmVjaXJjO3RyZSBnJmVhY3V0ZTtyJmVhY3V0ZTtzIGRlIGRpZmYmZWFjdXRlO3JlbnRlcyBtYW5pJmVncmF2ZTtyZXMuPC9wPg0KDQo8aDM+Q29tbWVudCBsJiMwMzk7dXRpbGlzZXIgPzwvaDM+DQo8cD5JbnN0YWxsZXotbGUsIGV0IGZvdWluZXogZGFucyBsZXMgbWVudXMuIEpvdWV6IGF2ZWMuIEVzc2F5ZXogZGUgY3ImZWFjdXRlO2VyIGRlcyBmb3JtdWxhaXJlcywgZXQgZGUgbGVzIGFqb3V0ZXIgJmFncmF2ZTsgdm90cmUgY29udGVudS4NClNpIHZvdXMgJmVjaXJjO3RlcyBjb2luYyZlYWN1dGU7cywgdmVuZXogZGlzY3V0ZXIgYXZlYyBtb2kgc3VyIGxlIGNhbmFsICNjbXMgc3VyIElSQywgcG9zZXogdW5lIHF1ZXN0aW9uIHN1ciBsZSBmb3J1bSwgZW52b3llei1tb2kgdW4gZW1haWwsIG91LCBzaSB2b3VzICZlY2lyYzt0ZXMgdnJhaW1lbnQgZCZlYWN1dGU7c2VzcCZlYWN1dGU7ciZlYWN1dGU7LCBlc3NheWV6IGRlIGxpcmUgbGVzIGluc3RydWN0aW9ucyBzdXIgbGUgcmVzdGUgZGUgY2V0dGUgcGFnZS48L3A+DQoNCjxoMz5Db21tZW50IGNyJmVhY3V0ZTtlciB1biBmb3JtdWxhaXJlID88L2gzPg0KPHA+RGFucyBsZSBtZW51IGQmIzAzOTthZG1pbmlzdHJhdGlvbiBkdSBDTVMsIHZvdXMgZGV2cmlleiBhdm9pciB1bmUgbm91dmVsbGUgZW50ciZlYWN1dGU7ZSBhcHBlbCZlYWN1dGU7ZSBGb3JtQnVpbGRlci4gQ2xpcXVleiBkZXNzdXMuIERhbnMgbGEgcGFnZSBxdWkgcyYjMDM5O2FmZmljaGUsIGRlcyBvcHRpb25zIGFwcGFyYWlzc2VudCAoZW4gYmFzIGRlIGxhIGxpc3RlIGRlcyBmb3JtdWxhaXJlcykgcG91ciBham91dGVyIHVuIG5vdXZlYXUgZm9ybXVsYWlyZSBvdSBtb2RpZmllciBsYSBjb25maWd1cmF0aW9uLjwvcD4NCg0KPGgzPkFqb3V0ZXIgdW4gZm9ybXVsYWlyZSAmYWdyYXZlOyB1bmUgUGFnZTwvaDM+DQo8cD5EYW5zIGxhIHBhZ2UgcHJpbmNpcGFsZSBkJiMwMzk7YWRtaW5pc3RyYXRpb24gZGUgRm9ybUJ1aWxkZXIsIHZvdXMgcG91dmV6IHZvaXIgdW4gZXhlbXBsZSBkZSBiYWxpc2UgdXRpbGlzJmVhY3V0ZTsgcG91ciBhZmZpY2hlciBjaGFxdWUgZm9ybXVsYWlyZS4gJkNjZWRpbDthIHJlc3NlbWJsZSAmYWdyYXZlOyBxdWVscXVlIGNob3NlIGNvbW1lICZjY2VkaWw7YSA6IHtGb3JtQnVpbGRlciBmb3JtPSYjMDM5O3NhbXBsZV9mb3JtJiMwMzk7fTwvcD4NCjxwPkNvcGllciBjZXR0ZSBiYWxpc2UgZGFucyBsZSBjb250ZW51IGQmIzAzOTt1bmUgcGFnZSwgb3UgZGFucyB1biBnYWJhcml0LCB2ZXJyYSBsZSBmb3JtdWxhaXJlIGFmZmljaCZlYWN1dGU7Lg0KRW4gdGgmZWFjdXRlO29yaWUsIHZvdXMgcG91dmV6IGF2b2lyIGRlIG11bHRpcGxlIGZvcm11bGFpcmVzIGRhbnMgdW5lIHBhZ2Ugc2kgdm91cyB5IHRlbmV6IHZyYWltZW50LiBTb3lleiB2aWdpbGFudCBzaSB2b3VzIGNvbGxleiBsYSBiYWxpc2UgZGFucyBsYSBwYWdlIGR1IGNvbnRlbnUgJmFncmF2ZTsgbCYjMDM5O2FpZGUgZCYjMDM5OyZlYWN1dGU7ZGl0ZXVycyBXWVNJV1lHIGNvbW1lIFRpbnlNQ0UsIEZDS0VkaXQsIG91IEhUTUxBcmVhLiBDZXMgJmVhY3V0ZTtkaXRldXJzIHBvdXJyYWllbnQgZnVydGl2ZW1lbnQgY2hhbmdlciBsZSBndWlsbGVtZXQgKCZxdW90OykgZW4gZW50aXQmZWFjdXRlOyBIVE1MICgmYW1wO3F1b3Q7KSwgZXQgbGVzIGZvcm11bGFpcmVzIG5lIHMmIzAzOTthZmZpY2hlcmFpZW50IHBsdXMuIEVzc2F5ZXogZCYjMDM5O3V0aWxpc2VyIGRlcyBndWlsbGVtZXRzIHNpbXBsZXMgKCYjMDM5Oykgb3UgJmVhY3V0ZTtkaXRleiBkaXJlY3RlbWVudCBsZSBIVE1MLjwvcD4NCg0KPGgzPlRyYXZhaWxsZXIgYXZlYyBsZXMgZm9ybXVsYWlyZXM8L2gzPg0KPHA+QnkgY2xpY2tpbmcgb24gYSBGb3JtJiMwMzk7cyBuYW1lLCB5b3UgZW50ZXIgdGhlIEZvcm0gRWRpdCBwYWdlLiBUaGVyZSBhcmUgc2V2ZXJhbCB0YWJzLCB3aGljaCBhcmUgZGVzY3JpYmVkIGJlbG93OjwvcD4NCjxoND5NYWluPC9oND4NCjxwPlRoaXMgaXMgdGhlIG1haW4gcGxhY2UgeW91JiMwMzk7bGwgd29yayBvbiB5b3VyIGZvcm0uIEhlcmUsIHlvdSBnaXZlIGl0IGEgbmFtZSwgYW4gYWxpYXMgKHdoaWNoIGlzIHVzZWQgdG8gaWRlbnRpZnkgaXQgZm9yIHBsYWNpbmcgaXQgaW4gYSBwYWdlIG9yIHRlbXBsYXRlKSwgYW5kLCBvcHRpb25hbGx5LCBhIENTUyBjbGFzcyB3aXRoIHdoaWNoIHRvIHdyYXAgdGhlIHdob2xlIHRoaW5nLjwvcD4NCjxwPkJlbG93IHRoaXMsIGlmIHlvdSBoYXZlIGl0IGVuYWJsZWQsIGlzIHRoZSAmcXVvdDtmYXN0IGZpZWxkIGFkZGVyJnF1b3Q7IHB1bGxkb3duLCB0aGF0IGxldHMgeW91IHF1aWNrbHkgYWRkIGEgZmllbGQgdG8gdGhlIGVuZCBvZiB5b3VyIGZvcm0gYnkgc2VsZWN0aW5nIHRoZSBmaWVsZCB0eXBlLjwvcD4NCjxwPkJlbG93IHRoaXMgaXMgdGhlIGxpc3Qgb2YgZmllbGRzIHRoYXQgbWFrZSB1cCB5b3VyIGZvcm0uIE1vcmUgZGV0YWlsIG9uIHRoaXMgaXMgZGVzY3JpYmVkIGJlbG93LjwvcD4NCjxoND5Tb3VtaXNzaW9uIGRlcyBmb3JtdWxhaXJlczwvaDQ+DQo8cD5XaGVuIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZCwgeW91IGNhbiBlaXRoZXIgcmVkaXJlY3QgdGhlIHVzZXIgdG8gYW5vdGhlciBwYWdlIG9mIHlvdXIgc2l0ZSwgb3IgeW91IGNhbiBwcmVzZW50IHRoZSB1c2VyIHNvbWUgbWVzc2FnZSAod2hpY2ggY2FuIGNvbnRhaW4gYW55IG9mIHRoZSB1c2VyJiMwMzk7cyBmb3JtIGVudHJpZXMsIG9yIGp1c3Qgc3RhdGljIHRleHQpLiBJbiB0aGlzIHRhYiwgeW91IHNlbGVjdCB3aGljaCBvZiB0aGVzZSBhcHByb2FjaGVzIHlvdSB3aXNoIHRvIHVzZSwgYW5kLCBpZiB5b3UgY2hvc2UgcmVkaXJlY3Rpb24sIGl0IGFsbG93cyB5b3UgdG8gcGljayB0aGUgcGFnZSB0byByZWRpcmVjdCB1c2VycyB0byBhZnRlciBhIHN1Y2Nlc3NmdWwgZm9ybSBzdWJtaXNzaW9uLjwvcD4NCjxwPkFsc28gb24gdGhpcyBwYWdlLCB5b3UgY2FuIHNwZWNpZnkgdGhlIGxhYmVscyBvZiB2YXJpb3VzIHN1Ym1pc3Npb24gYnV0dG9ucyAoJnF1b3Q7UHJldmlvdXMmcXVvdDssICZxdW90O25leHQmcXVvdDssICZxdW90O3N1Ym1pdCZxdW90OykuIFlvdSBjYW4gYWxzbyBvcHQgdG8gaGF2ZSBzb21lIEphdmFzY3JpcHQgYWRkZWQgdG8gdGhlIGxhc3QgcGFnZSBvZiBhIGZvcm0gdGhhdCB3aWxsIHByZXZlbnQgbXVsdGlwbGUgc3VibWlzc2lvbnMgKHVzZWZ1bCBvbiBzbG93IHNlcnZlcnMpLjwvcD4NCjxoND5PcHRpb24gZCYjMDM5O2FmZmljaGFnZSBkdSBmb3JtdWxhaXJlPC9oND4NCjxwPlRoaXMgdGFiIGFsbG93cyBmb3Igb3RoZXIgZm9ybSBjdXN0b21pemF0aW9ucywgbGlrZSB0aGUgc3ltYm9sIHRvIHNob3cgZm9yIHJlcXVpcmVkIGZpZWxkcy48L3A+DQo8aDQ+Y29uZmlndXJhdGlvbiBDYXB0Y2hhPC9oND4NCjxwPklmIHlvdSBoYXZlIGluc3RhbGxlZCB0aGUgQ2FwdGNoYSBtb2R1bGUsIHRoaXMgdGFiIGxldHMgeW91IGNvbmZpZ3VyZSB0aGUgQ2FwdGNoYSBzZXR0aW5ncyBmb3IgeW91ciBmb3JtLjwvcD4NCjxoND5HYWJhcml0IGRlIGZvcm11bGFpcmU8L2g0Pg0KPHA+VGhpcyBpcyB3aGVyZSB5b3UgZG8geW91ciBjdXN0b21pemF0aW9uIHdvcmsgb2YgeW91ciBmb3JtJiMwMzk7cyBTbWFydHkgVGVtcGxhdGUuIFNlZSB0aGUgc2VjdGlvbiBjYWxsZWQgRm9ybSBUZW1wbGF0ZSBWYXJpYWJsZXMgYmVsb3cuPC9wPg0KPHA+VGhlIGZvcm0gc2hvdWxkIGRlZmF1bHQgdG8gYSBDdXN0b20gdGVtcGxhdGUgdGhhdCBkb2N1bWVudHMgdGhlIFNtYXJ0eSB0YWdzIGF2YWlsYWJsZSB0byB5b3UuPC9wPg0KPHA+VW5sZXNzIHlvdSYjMDM5O3JlIGEgU21hcnR5IGV4cGVydCwgeW91IHByb2JhYmx5IGRvbiYjMDM5O3Qgd2FudCB0byBtZXNzIGFyb3VuZCB3aXRoIHRoaXMuIElmIHlvdSBhcmUgYSBTbWFydHkgZXhwZXJ0LCB0aGlzIGlzIHdoZXJlIHlvdSBjYW4gdW5sZWFzaCB5b3VyIG1hZ2ljLjwvcD4NCjxoND5Tb3VtaXNzaW9uIGR1IGdhYmFyaXQ8L2g0Pg0KPHA+SWYsIGluIHRoZSBGb3JtIFN1Ym1pc3Npb24gdGFiLCB5b3Ugc2VsZWN0ZWQgJiMwMzk7RGlzcGxheSAmcXVvdDtTdWJtaXNzaW9uIFRlbXBsYXRlJnF1b3Q7LCB0aGlzIGlzIHdoZXJlIHlvdSBjYW4gY3JlYXRlIHRoYXQgdGVtcGxhdGUuIFRoZXJlIGlzIGEgZGlzcGxheSBvZiB3aGljaCBzbWFydHkgdmFyaWFibGVzIGFyZSBhdmFpbGFibGUgdG8geW91LCBhbmQgYSBidXR0b24gdG8gZ2VuZXJhdGUgYSBzYW1wbGUgdGVtcGxhdGUuPC9wPg0KPHA+SWYgeW91JiMwMzk7cmUgYSBTbWFydHkgZXhwZXJ0LCB5b3UgY2FuIGRvIGFsbCBtYW5uZXIgb2YgY3JlYXRpdmUgYW5kIHBvd2VyZnVsIHRoaW5ncyBoZXJlLiBJZiB5b3UmIzAzOTtyZSBub3QgYSBTbWFydHkgZXhwZXJ0LCB5b3UgbWlnaHQganVzdCB3YW50IHRvIHVzZSB0aGUgZGVmYXVsdC4NCjwvcD4NCg0KPGgzPkFqb3V0ZXIgZGVzIGNoYW1wcyBkYW5zIHZvdHJlIGZvcm11bGFpcmU8L2gzPg0KPHA+VGhlIHR5cGVzIG9mIGZpZWxkcyB0aGF0IGFyZSBjdXJyZW50bHkgc3VwcG9ydGVkIGZpdCBpbnRvIGZvdXIgZ3JvdXBzOiBzdGFuZGFyZCBpbnB1dCBmaWVsZHMsIGRpc3BsYXkgY29udHJvbCBmaWVsZHMsIGVtYWlsLXNwZWNpZmljIGZpZWxkcywgYW5kIGZvcm0gcmVzdWx0IGhhbmRsaW5nIGZpZWxkcyAoYWxzbyBjYWxsZWQgRm9ybSBEaXNwb3NpdGlvbnMgaW4gcGxhY2VzKTo8L3A+DQo8dWw+DQo8bGk+U3RhbmRhcmQgSW5wdXQgRmllbGRzIC0gdGhlc2UgYXJlIGlucHV0cyB0aGF0IGFsbG93IGVudHJ5IG9mIHR5cGljYWwgZm9ybSBlbGVtZW50czsgdGV4dCBpbnB1dHMsIHJhZGlvIGJ1dHRvbnMsIGV0Yy48L2xpPg0KPGxpPkRpc3BsYXkgQ29udHJvbCBGaWVsZHMgLSB0aGVzZSBpbnB1dCBjb250cm9sIGhvdyB0aGUgdXNlciB3aWxsIHNlZSB0aGUgZGlzcGxheSBvZiB0aGUgZm9ybTsgcGFnZSBicmVha3MsIHN0YXRpYyB0ZXh0LCBldGMuPC9saT4NCjxsaT5FbWFpbC1zcGVjaWZpYyBGaWVsZHMgLSBzb21lIGZvcm1zIGdlbmVyYXRlIGVtYWlsLCBhbmQgZW1haWwtc3BlY2lmaWMgZmllbGRzIGNhbiBhbHRlciBhdHRyaWJ1dGVzIG9mIHRoZSBlbWFpbHMgc2VudC48L2xpPg0KPGxpPkZvcm0gRGlzcG9zaXRpb25zIC0gVGhlc2UgZGV0ZXJtaW5lIHdoYXQgaGFwcGVucyB3aGVuIHRoZSB1c2VyDQpzdWJtaXRzIHRoZSBmb3JtOyBmb3IgZWFjaCByZXN1bHQgaGFuZGxpbmcgZmllbGQsIHNvbWUgbWV0aG9kIG9mIHRyYW5zbWl0dGluZywgc2F2aW5nLCBvciBlbWFpbGluZyB0aGUNCmZvcm0gY29udGVudHMgdGFrZXMgcGxhY2UuIEEgZm9ybSBtYXkgaGF2ZSBtdWx0aXBsZSBmb3JtIGRpc3Bvc2l0aW9ucy48L2xpPg0KPC91bD4NCjxwPkZvcm0gZmllbGRzIGFyZSBhc3NpZ25lZCBuYW1lcy4gVGhlc2UgbmFtZXMgaWRlbnRpZnkgdGhlIGZpZWxkLCBub3Qgb25seSBvbiB0aGUgc2NyZWVuIGFzIGxhYmVscyBmb3IgdGhlIHVzZXIsDQpidXQgaW4gdGhlIGRhdGEgd2hlbiBpdCYjMDM5O3Mgc3VibWl0dGVkIHNvIHlvdSBrbm93IHdoYXQgdGhlIHVzZXIgaXMgcmVzcG9uZGluZyB0by4gUGhyYXNpbmcgdGhlIG5hbWUgbGlrZSBhIHF1ZXN0aW9uDQppcyBhIGhhbmR5IHdheSBvZiBtYWtpbmcgaXQgY2xlYXIgdG8gdGhlIHVzZXIgd2hhdCBpcyBleHBlY3RlZC4gU2ltaWxhcmx5LCBtYW55IGZpZWxkcyBoYXZlIGJvdGggTmFtZXMgYW5kIFZhbHVlcy4NClRoZSBOYW1lcyBhcmUgd2hhdCBnZXRzIHNob3duIHRvIHRoZSB1c2VyOyB0aGUgVmFsdWUgaXMgd2hhdCBnZXRzIHNhdmVkIG9yIHRyYW5zbWl0dGVkIHdoZW4gdGhlIHVzZXIgc3VibWl0cw0KdGhlIGZvcm0uIFRoZSBWYWx1ZXMgYXJlIG5ldmVyIHNlZW4gYnkgdGhlIHVzZXIsIG5vciBhcmUgdGhleSB2aXNpYmxlIGluIHRoZSBIVE1MLCBzbyBpdCYjMDM5O3Mgc2FmZSB0byB1c2UgZm9yDQplbWFpbCBhZGRyZXNzZXMgYW5kIHN1Y2guPC9wPg0KPHA+U29tZSBmaWVsZHMgY2FuIGhhdmUgbXVsdGlwbGUgdmFsdWVzLCBvciBtdWx0aXBsZSBuYW1lL3ZhbHVlIHBhaXJzLiBXaGVuIHlvdSBmaXJzdCBjcmVhdGUgc3VjaCBhIGZpZWxkLA0KdGhlcmUgbWF5IG5vdCBiZSBzdWZmaWNpZW50IGlucHV0cyBmb3IgeW91IHRvIHNwZWNpZnkgYWxsIHRoZSB2YWx1ZXMgeW91IHdhbnQuIFRvIGdldCBtb3JlIHNwYWNlIGZvciBpbnB1dHRpbmcNCnRoZXNlIHZhbHVlcywgdXNlIHRoZSBidXR0b25zIGF0IHRoZSBib3R0b20gb2YgdGhlIHBhZ2UgZm9yIGFkZGluZyBvcHRpb25zLjwvcD4NCjxwPkZpZWxkcyBjYW4gYmUgYXNzaWduZWQgdmFsaWRhdGlvbiBydWxlcywgd2hpY2ggdmFyeSBhY2NvcmRpbmcgdG8gdGhlIHR5cGUgb2YgdGhlIGZpZWxkLiBUaGVzZSBydWxlcyBoZWxwDQplbnN1cmUgdGhhdCB0aGUgdXNlciBlbnRlcnMgdmFsaWQgZGF0YS4gVGhleSBtYXkgYWxzbyBiZQ0Kc2VwYXJhdGVseSBtYXJrZWQgJnF1b3Q7UmVxdWlyZWQmcXVvdDssIHdoaWNoIHdpbGwgZm9yY2UgdGhlIHVzZXIgdG8gZW50ZXIgYSByZXNwb25zZS48L3A+DQo8cD5GaWVsZHMgYWxzbyBtYXkgYmUgYXNzaWduZWQgYSBDU1MgY2xhc3MuIFRoaXMgc2ltcGx5IHdyYXBzIHRoZSBpbnB1dCBpbiBhIGRpdiB3aXRoIHRoYXQgY2xhc3MsIHNvIGFzIHRvIGFsbG93DQpjdXN0b21pemVkIGxheW91dHMuIFRvIHVzZSB0aGlzIGVmZmVjdGl2ZWx5LCB5b3UgbWF5IG5lZWQgdG8gJnF1b3Q7dmlldyBzb3VyY2UmcXVvdDsgb24gdGhlIGdlbmVyYXRlZCBmb3JtLCBhbmQgdGhlbg0Kd3JpdGUgeW91ciBDU1MuPC9wPg0KPHVsPg0KPGxpPlN0YW5kYXJkIElucHV0cw0KPHVsPjxsaT5UZXh0IElucHV0LiBUaGlzIGlzIGEgc3RhbmRhcmQgdGV4dCBmaWVsZC4gWW91IGNhbiBsaW1pdCB0aGUgbGVuZ3RoLCBhbmQgYXBwbHkgdmFyaW91cyB2YWxpZGF0aW9uDQpmdW5jdGlvbnMgdG8gdGhlIGZpZWxkLjwvbGk+DQo8bGk+VGV4dCBBcmVhLiBUaGlzIGlzIGEgYmlnLCBmcmVlLWZvcm0gdGV4dCBpbnB1dCBmaWVsZC48L2xpPg0KPGxpPkNoZWNrYm94LiBUaGlzIGlzIGEgc3RhbmRhcmQgY2hlY2sgYm94LjwvbGk+DQo8bGk+Q2hlY2tib3ggR3JvdXAuIFRoaXMgaXMgYSBjb2xsZWN0aW9uIG9mIGNoZWNrYm94ZXMuIFRoZSBvbmx5IGRpZmZlcmVuY2UgYmV0d2VlbiB0aGlzIGlucHV0IGFuZCBhDQpjb2xsZWN0aW9uIG9mIENoZWNrYm94IGlucHV0cyBpcyB0aGF0IHRoZXkgYXJlIHByZXNlbnRlZCBhcyBhIGdyb3VwLCB3aXRoIG9uZSBuYW1lLCBhbmQgY2FuIGhhdmUgYSB2YWxpZGF0aW9uIGZ1bmN0aW9uIHJlcXVpcmluZyB0aGF0IHlvdSBjaGVjayBvbmUgb3IgbW9yZSBvZiB0aGUgYm94ZXMgaW4gdGhlIGdyb3VwLjwvbGk+DQo8bGk+UmFkaW8gR3JvdXAuIFRoaXMgaXMgYSBjb2xsZWN0aW9uIG9mIHJhZGlvIGJ1dHRvbnMuIE9ubHkgb25lIG9mIHRoZSBncm91cCBtYXkgYmUgc2VsZWN0ZWQgYnkgdGhlIHVzZXIuPC9saT4NCjxsaT5QdWxsZG93bi4gVGhpcyBpcyBhIHN0YW5kYXJkIHB1bGxkb3duIG1lbnUuIEl0JiMwMzk7cyByZWFsbHkgY29uY2VwdHVhbGx5IHRoZSBzYW1lIHRoaW5nIGFzIGEgcmFkaW8gYnV0dG9uDQpncm91cCwgYnV0IGlzIGJldHRlciB3aGVuIHRoZXJlIGFyZSBhIGxhcmdlIG51bWJlciBvZiBvcHRpb25zLjwvbGk+DQo8bGk+TXVsdGlzZWxlY3QuIFRoaXMgaXMgYSBtdWx0aS1zZWxlY3QgZmllbGQuIEl0JiMwMzk7cyByZWFsbHkgY29uY2VwdHVhbGx5IHRoZSBzYW1lIHRoaW5nIGFzIGEgY2hlY2tib3ggYnV0dG9uDQpncm91cCwgYnV0IGlzIGJldHRlciB3aGVuIHRoZXJlIGFyZSBhIGxhcmdlIG51bWJlciBvZiBvcHRpb25zLCBhcyB5b3UgY2FuIGxpbWl0IHRoZSBudW1iZXIgZGlzcGxheWVkIG9uIHRoZSBzY3JlZW4gYXQgYW55IG9uZSB0aW1lLjwvbGk+DQoNCjxsaT5QYXNzd29yZC4gVGhpcyBpcyBhbiBhc3Rlcmlza2VkLW91dCB0ZXh0IGZpZWxkLCB1c2VmdWwgZm9yIHBhc3N3b3Jkcy48L2xpPg0KPGxpPlBhc3N3b3JkIEFnYWluICh2ZXJpZnkpLiBUaGlzIGlzIGEgZmllbGQgdGhhdCBtdXN0IG1hdGNoIGEgUGFzc3dvcmQgZmllbGQgZm9yIHN1Ym1pc3Npb24NCnRvIHN1Y2NlZWQuPC9saT4NCg0KPGxpPlN0YXRlLiBUaGlzIGlzIGEgcHVsbGRvd24gbGlzdGluZyB0aGUgU3RhdGVzIG9mIHRoZSBVLlMuPC9saT4NCjxsaT5DYW5hZGlhbiBQcm92aW5jZS4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIENhbmFkaWFuIFByb3ZpbmNlcyAoQ29udHJpYnV0ZWQgYnkgTm9lbCBNY0dyYW4uIFRoYW5rcyEpPC9saT4NCjxsaT5Db3VudHJpZXMuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBDb3VudHJpZXMgb2YgdGhlIHdvcmxkIChhcyBvZiBKdWx5IDIwMDUpLjwvbGk+DQo8bGk+RGF0ZSBQaWNrZXIuIFRoaXMgaXMgYSB0cmlwbGUgcHVsbGRvd24gYWxsb3dpbmcgdGhlIHVzZXIgdG8gc2VsZWN0IGEgZGF0ZS48L2xpPg0KPGxpPlRpbWUgUGlja2VyLiBUaGlzIGlzIGEgc2V0IG9mIHB1bGxkb3ducyBhbGxvd2luZyB0aGUgdXNlciB0byBzZWxlY3QgYSB0aW1lICh1c2luZyAxMiBvciAyNCBob3VyIGNsb2NrKS48L2xpPg0KPGxpPkZpbGUgVXBsb2FkLiBUaGlzIGlzIGEgZmlsZSB1cGxvYWQgZmllbGQuPC9saT4NCjxsaT5MaW5rIChVc2VyIEVudGVyZWQpLiBUaGlzIGNyZWF0ZXMgYSBkb3VibGUgaW5wdXQgZmllbGQgZm9yIGdldHRpbmcgYSBsaW5rIFVSTCBhbmQgbGluayB0aXRsZS48L2xpPg0KPGxpPlRleHQgRmllbGQgKE11bHRpcGxlKS4gVGhpcyBmaWVsZCBjcmVhdGVzIG9uZSBvciBtb3JlIHRleHQgaW5wdXRzIHdpdGggYWRkIGFuZCBkZWxldGUgYnV0dG9ucywgZWZmZWN0aXZlbHkgZ2l2aW5nIHRoZSBlbmQgdXNlciBhIHdheSBvZiBjcmVhdGluZyB2YXJpYWJsZS1sZW5ndGggbGlzdHMuPC9saT4NCjwvdWw+PC9saT4NCg0KPGxpPkVtYWlsLXNwZWNpZmljIElucHV0cw0KPHVsPjxsaT5FbWFpbCAmcXVvdDtGcm9tIEFkZHJlc3MmcXVvdDsgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgdGhlaXIgZW1haWwgYWRkcmVzcy4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIGFkZHJlc3MgaW4gdGhlICZxdW90O0Zyb20mcXVvdDsgZmllbGQuPC9saT4NCjxsaT5FbWFpbCAmcXVvdDtGcm9tIE5hbWUmcXVvdDsgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgdGhlaXIgbmFtZS4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIG5hbWUgaW4gdGhlICZxdW90O0Zyb20mcXVvdDsgZmllbGQuPC9saT4NCjxsaT5FbWFpbCBTdWJqZWN0IEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIGEgc3ViamVjdCBmb3IgdGhlaXIgZW1haWwuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBpbiB0aGUgJnF1b3Q7U3ViamVjdCZxdW90OyBmaWVsZC4gVGhpcyBtYXkgY2F1c2UgdHJvdWJsZSB3aXRoIGNlcnRhaW4gZGlzcG9zaXRpb25zIHRoYXQgd2FudCB0byBjb250cm9sIHRoZSBFbWFpbCBTdWJqZWN0LCBzbyB1c2UgaXQgd2l0aCBjYXV0aW9uLjwvbGk+DQo8L3VsPjwvbGk+DQoNCjxsaT5EaXNwbGF5IENvbnRyb2wgRmllbGRzPHVsPg0KPGxpPi1QYWdlIEJyZWFrLiBUaGlzIGFsbG93cyB5b3UgdG8gc3BsaXQgeW91ciBmZWVkYmFjayBmb3JtIGludG8gbXVsdGlwbGUgcGFnZXMuIEVhY2ggcGFnZSBpcw0KaW5kZXBlbmRlbnRseSB2YWxpZGF0ZWQuIFRoaXMgaXMgZ29vZCBmb3IgYXBwbGljYXRpb25zIGxpa2Ugb25saW5lIHN1cnZleXMuPC9saT4NCjxsaT4tRmllbGRzZXQgU3RhcnQuIENvbWJpbmVkIHdpdGggRmllbGRzZXQgRW5kLCB0aGlzIGFsbG93cyB5b3UgdG8gZ3JvdXAgdmFyaW91cyBmaWVsZHMgd2l0aGluIHlvdXIgZm9ybS4gVXNlIHRoaXMgdG8gc3RhcnQgYSBnaXZlbiBncm91cGluZy48L2xpPg0KPGxpPi1GaWVsZHNldCBFbmQuIENvbWJpbmVkIHdpdGggRmllbGRzZXQgU3RhcnQsIHRoaXMgYWxsb3dzIHlvdSB0byBncm91cCB2YXJpb3VzIGZpZWxkcyB3aXRoaW4geW91ciBmb3JtLiBVc2UgdGhpcyB0byBlbmQgYSBnaXZlbiBncm91cGluZy48L2xpPg0KPGxpPi1IaWRkZW4gRmllbGQuIFRoaXMgYWxsb3dzIHlvdSB0byBlbWJlZCBhIGhpZGRlbiBmaWVsZCBpbiB5b3VyIGZvcm0uPC9saT4NCjxsaT4tU3RhdGljIFRleHQuIFRoaXMgYWxsb3dzIHlvdSB0byBwdXQgdGV4dCBvciBhIGxhYmVsIGluIHRoZSBtaWRkbGUgb2YgeW91ciBmb3JtLiBUaGlzIGlzIHVzZWZ1bCBmb3IgZ2l2aW5nIGFkZGl0aW9uYWwgaGVscCB0ZXh0LCBlc3BlY2lhbGx5IGlmIHlvdSYjMDM5O3JlIG5vdCB1c2luZyBhIEN1c3RvbSBUZW1wbGF0ZSB0byByZW5kZXIgeW91ciBmb3JtLjwvbGk+DQo8bGk+LVN0YXRpYyBMaW5rLiBUaGlzIGFsbG93cyB5b3UgdG8gcHV0IGEgbGluayB0byBhIGdpdmVuIHBhZ2UgaW50byB5b3VyIGZvcm0uIE9wdGlvbmFsbHksIHlvdSBjYW4gaGF2ZSBpdCBhdXRvcG9wdWxhdGUgd2l0aCB0aGUgcGFnZSB3aGVyZSB0aGUgZm9ybSBpcyBlbWJlZGRlZCAodXNlZnVsIGlmIHlvdSYjMDM5O3JlIHNlbmRpbmcgcmVzdWx0cyB2aWEgZW1haWwpLjwvbGk+DQo8bGk+LUNvbXB1dGVkIEZpZWxkLiBUaGlzIGFsbG93cyB5b3UgdG8gZW1iZWQgYSBjb21wdXRlZCBmaWVsZCBpbiB5b3VyIGZvcm0uIEl0IGlzIG5vdCB2aXNpYmxlIHRvIHRoZSB1c2VyIHVudGlsIGFmdGVyIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZC4gSXQgYWxsb3dzIHlvdSB0byBkbyBzaW1wbGUgYXJpdGhtZXRpYyBvciBzdHJpbmcgY29uY2F0ZW5hdGlvbi48L2xpPg0KPGxpPi1VbmlxdWUgSW50ZWdlciAoU2VyaWFsKS4gVGhpcyBpcyBhbiBpbnRlZ2VyIHRoYXQgaW5jcmVhc2VzIGV2ZXJ5IHRpbWUgc29tZW9uZSBoaXRzIHlvdXIgZm9ybS4gWW91ciByZXN1bHRzIG1heSBub3QgYmUgc2VxdWVudGlhbCwgYnV0IHRoZXkgd2lsbCBpbmNyZWFzZSBtb25vdG9uaWNhbGx5LjwvbGk+DQo8bGk+LVVzZXIgVGFnLiBUaGlzIGNhbGxzIHRoZSBzcGVjaWZpZWQgVXNlciBEZWZpbmVkIFRhZywgYW5kIGRpc3BsYXlzIGFueXRoaW5nIGl0IHJldHVybnMuIFRoZSBVRFQgZ2V0cyBjYWxsZWQgYW55IHRpbWUgdGhlIGZpZWxkIHdvdWxkIGJlIHZpc2libGUuPC9saT4NCjwvdWw+PC9saT4NCjxsaT4tTW9kdWxlIEluY2x1ZGUgVGFnLiBUaGlzIGFsbG93cyB5b3UgdG8gZW1iZWQgb3RoZXIgbW9kdWxlIG91dHB1dCBpbnRvIHlvdXIgZm9ybSwgZS5nLiwgYSBsaXN0IG9mIHByb2R1Y3RzIGZyb20gdGhlIFByb2R1Y3RzIG1vZHVsZS48L2xpPg0KDQo8bGk+Rm9ybSBIYW5kbGluZyBJbnB1dHMgKERpc3Bvc2l0aW9ucykNCjx1bD48bGk+KkNhbGwgYSBVc2VyIERlZmluZWQgVGFnIFdpdGggdGhlIEZvcm0gUmVzdWx0cy4gVGhpcyBzdWJtaXRzIGFsbCB0aGUgZm9ybSByZXN1bHRzIHRvIHRoZSBVc2VyLURlZmluZWQgVGFnIHlvdSBzcGVjaWZ5LiBUaGUgVURUIGNhbiBoYW5kbGUgdGhlIHJlc3VsdHMgaG93ZXZlciBpdCB3YW50cy4gVmFsdWVzIGFyZSBwYXNzZWQgYXMgJHBhcmFtc1smIzAzOTtmaWVsZF9uYW1lJiMwMzk7XSwgYW5kIGFzICRwYXJhbXNbJiMwMzk7ZmllbGRfYWxpYXMmIzAzOTtdIChpZiBkZWZpbmVkKS48L2xpPg0KPGxpPipFbWFpbCBSZXN1bHRzIEJhc2VkIG9uIFB1bGxkb3duLiBUaGlzIGlzIHVzZWZ1bCBmb3Igd2ViIHNpdGVzIHdoZXJlIGNvbW1lbnRzIGdldCByb3V0ZWQgYmFzZWQgb24gdGhlaXIgc3ViamVjdCBtYXR0ZXIsIGUuZy4sIGJ1Z3MgZ2V0IHNlbnQgdG8gb25lIHBlcnNvbiwgbWFya2V0aW5nIHF1ZXN0aW9ucyB0byBhbm90aGVyIHBlcnNvbiwgc2FsZXMgcmVxdWVzdHMgdG8gc29tZW9uZSBlbHNlLCBldGMuIFRoZSBwdWxsZG93biBpcyBwb3B1bGF0ZWQgd2l0aCB0aGUgc3ViamVjdHMsIGFuZCBlYWNoIGdldHMgZGlyZWN0ZWQgdG8gYSBzcGVjaWZpYyBlbWFpbCBhZGRyZXNzLiBZb3Ugc2V0IHVwIHRoZXNlIG1hcHBpbmdzIGluIHRoZSB3aGVuIHlvdSBjcmVhdGUgb3IgZWRpdCBhIGZpZWxkIG9mIHRoaXMgdHlwZS4gSWYgeW91IHVzZSBvbmUgb2YgdGhlc2UgJnF1b3Q7RGlyZWN0b3ImcXVvdDsgcHVsbGRvd25zLCB0aGUgdXNlciBtdXN0IG1ha2UgYSBzZWxlY3Rpb24gaW4gb3JkZXIgdG8gc3VibWl0IHRoZQ0KZm9ybS4gVGhpcyBpbnB1dCBpcyBwYXJ0IG9mIHRoZSBmb3JtIHRoZSB1c2VyIHNlZXMsIGFsdGhvdWdoIHRoZSBlbWFpbCBhZGRyZXNzZXMgYXJlIG5vdCBtYWRlIHZpc2libGUgbm9yDQphcmUgdGhleSBlbWJlZGRlZCBpbiB0aGUgSFRNTC48L2xpPg0KPGxpPipFbWFpbCAmcXVvdDtGcm9tIEFkZHJlc3MmcXVvdDsgRmllbGQsIGFuZCBzZW5kIGNvcHkuIFRoaXMgd29ya3MgbGlrZSB0aGUgRW1haWwgJnF1b3Q7RnJvbSBBZGRyZXNzJnF1b3Q7IEZpZWxkIGRlc2NyaWJlZCBhYm92ZSwgYnV0IGl0IHByb3ZpZGVzIG9wdGlvbnMgZm9yIHNlbmRpbmcgYSBjb3B5IG9mIHRoZSByZXN1bHRzIHRvIHRoZSB1c2VyLjwvbGk+DQo8bGk+KkVtYWlsIFJlc3VsdHMgdG8gc2V0IEFkZHJlc3MoZXMpLiBUaGlzIHNpbXBseSBzZW5kcyB0aGUgZm9ybSByZXN1bHRzIHRvIG9uZSBvciBtb3JlIGVtYWlsIGFkZHJlc3NlcyB0aGF0IHlvdSBlbnRlciB3aGVuIHlvdSBjcmVhdGUgb3IgZWRpdCB0aGlzIHR5cGUgb2YgZmllbGQuIFRoaXMgZmllbGQgYW5kIGl0cyBuYW1lIGFyZSBub3QgdmlzaWJsZSBpbiB0aGUNCmZvcm0gdGhhdCB0aGUgdXNlciBzZWVzLiBUaGUgZW1haWwgYWRkcmVzc2VzIGFyZSBub3QgbWFkZSB2aXNpYmxlIG5vcg0KYXJlIHRoZXkgZW1iZWRkZWQgaW4gdGhlIEhUTUwuPC9saT4NCjxsaT4qRW1haWwgdG8gVXNlci1TdXBwbGllZCBBZGRyZXNzLiBUaGlzIHB1dHMgYW4gaW5wdXQgZmllbGQgaW4gdGhlIGZvcm0gZm9yIHRoZSB1c2VyIHRvIHBvcHVsYXRlIHdpdGggYW4gZW1haWwgYWRkcmVzcy4gVGhlIGZvcm0gcmVzdWx0cyBnZXQgc2VudCB0byB0aGF0IGFkZHJlc3MuIEJld2FyZSBvZiBTcGFtIGFidXNlISBBY3RpdmUgdGhlIHByaW1pdGl2ZSBhbnRpLXNwYW0gZmVhdHVyZXMgaW4gdGhlIEZvcm1CdWlsZGVyIGNvbmZpZ3VyYXRpb24gc2NyZWVuLjwvbGk+DQo8bGk+KlN0b3JlIFJlc3VsdHMgaW4gRGF0YWJhc2UuIDxzdHJvbmc+RGVwcmVjYXRlZC48L3N0cm9uZz4gVXNlIFN0b3JlIFJlc3VsdHMgZm9yIEZvcm1Ccm93c2VyIE1vZHVsZSBpbnN0ZWFkISBUaGlzIHdpbGwgc3RvcmUgdGhlIGZvcm0gY29udGVudHMgaW4gYW4gaW50ZXJuYWwgZGF0YWJhc2UuIFlvdSB3aWxsIGFsd2F5cyB1c2UgdGhpcyBkaXNwb3NpdGlvbiBpZiB5b3UgdXNlIHRoZSBmb3JtIHdpdGggRm9ybUJyb3dzZXIuPC9saT4NCjxsaT4qUmVkaXJlY3QgdG8gUGFnZSBCYXNlZCBvbiBQdWxsZG93bi4gVGhpcyBhbGxvd3MgeW91IHRvIHJlZGlyZWN0IHRoZSBmb3JtIHRvIGEgZGlmZmVyZW50IHNpdGUgcGFnZSBkZXBlbmRpbmcgb24gaXRzIHZhbHVlLiBJZiB5b3UgaGF2ZSBtdWx0aXBsZSBkaXNwb3NpdGlvbnMsIG1ha2Ugc3VyZSB0aGlzIGlzIHVzZWQgbGFzdC48L2xpPg0KPGxpPipWYWxpZGF0ZSB2aWEgRW1haWwuIFRoaXMgaXMgYSBzdHJhbmdlIGFuZCBwb3dlcmZ1bCBmaWVsZC4gSXQgcHJvdmlkZXMgdGhlIHVzZXIgYSBtYW5kYXRvcnkgaW5wdXQgZm9yIHRoZWlyIGVtYWlsIGFkZHJlc3MuIE9uY2UgdGhleSBzdWJtaXQgdGhlaXIgZm9ybSwgdGhlIHN0YW5kYXJkIGZvcm0gZGlzcG9zaXRpb25zIGFyZSBub3QgcGVyZm9ybWVkIC0tIHJhdGhlciwgaXQgc2VuZCB0aGUgdXNlciBhbiBlbWFpbCB3aXRoIGEgc3BlY2lhbCBjb2RlZCBsaW5rLiBJZiB0aGV5IGNsaWNrIG9uIHRoZSBsaW5rLCB0aGUgb3RoZXIgZm9ybSBpcyBjb25zaWRlcmVkICZxdW90O2FwcHJvdmVkLCZxdW90OyBhbmQgdGhlIG90aGVyIGRpc3Bvc2l0aW9ucyBhcmUgYWxsIHBlcmZvcm1lZC48L2xpPg0KPGxpPipXcml0ZSBSZXN1bHRzIHRvIEZsYXQgRmlsZS4gVGhpcyB0YWtlcyB0aGUgZm9ybSByZXN1bHRzIGFuZCB3cml0ZXMgdGhlbSBpbnRvIGEgdGV4dCBmaWxlLiBZb3UgbWF5DQpzZWxlY3QgdGhlIG5hbWUgb2YgdGhlIGZpbGUsIGFuZCBzZXQgaXRzIGZvcm1hdC4gVGhlc2UgZmlsZXMgYXJlIHdyaXR0ZW4gdG8gdGhlICZxdW90O291dHB1dCZxdW90OyBkaXJlY3RvcnkgdW5kZXIgdGhlDQptb2R1bGUmIzAzOTtzIGluc3RhbGxhdGlvbiBkaXJlY3RvcnksIGFzc3VtaW5nIHRoZSB3ZWIgc2VydmVyIGhhcyBwZXJtaXNzaW9uIHRvIHdyaXRlIHRoZXJlLjwvbGk+DQo8bGk+KlNhdmUgUmVzdWx0cyB0byBGaWxlIEJhc2VkIG9uIFB1bGxkb3duLiBMaWtlIHRoZSBGbGF0IEZpbGUgZGlzcG9zaXRpb24sIGV4Y2VwdCB0aGUgdmFsdWUgb2YgYSBwdWxsLWRvd24gZGV0ZXJtaW5lcyB3aGljaCBmaWxlIHJlc3VsdHMgZ2V0IHdyaXR0ZW4gdG8uPC9saT4NCjxsaT4qU2F2ZSBSZXN1bHRzIHRvIEZpbGUocykgQmFzZWQgb24gTXVsdGlwbGUgU2VsZWN0aW9ucy4gTGlrZSB0aGUgRmxhdCBGaWxlIGRpc3Bvc2l0aW9uLCBleGNlcHQgdGhlIHZhbHVlKHMpIG9mIGNoZWNrYm94ZXMgIGRldGVybWluZXMgd2hpY2ggZmlsZShzKSByZXN1bHRzIGdldCB3cml0dGVuIHRvLjwvbGk+DQo8bGk+KkVtYWlsIHRvIENNUyBBZG1pbiBVc2VyLiBQcm92aWRlcyBhIHB1bGwtZG93biBvZiBDTVMgQWRtaW4gdXNlcnMsIGFuZCBkaXJlY3RzIHRoZSByZXN1bHRzIGFzIGFuIGVtYWlsIHRvIHRoZSBzZWxlY3RlZCBhZG1pbi48L2xpPg0KPGxpPipTdG9yZSBSZXN1bHRzIGZvciBGb3JtQnJvd3NlciBNb2R1bGUgdi4wLjMuIFN0b3JlcyB0aGUgZm9ybSByZXN1bHRzIGluIGFuIFhNTCBzdHJ1Y3R1cmUgYXMgYSBzaW5nbGUgZGF0YWJhc2UgcmVjb3JkLiBUaGlzIGlzIHRoZSBvbmx5IGludGVyZmFjZSB0byBGb3JtIEJyb3dzZXIuIFNlZSBzZWN0aW9uIGJlbG93LjwvbGk+DQo8bGk+KlN1Ym1pdCB0byBhbiBhcmJpdHJhcnkgZm9ybSBhY3Rpb24uIENyYWZ0IGFuIEhUVFAgR0VUIG9yIFBPU1QsIGFuZCB0cmFuc21pdCBpdCB1c2luZyBjVVJMIHRvIHRoZSBzcGVjaWZpZWQgVVJMLiBUaGlzIGxldHMgeW91IHVzZSBGb3JtQnVpbGRlciBhcyBhIGZyb250LWVuZCB0byBhbnkgQ0dJIG9yIEZvcm0gSGFuZGxpbmcgc2NyaXB0IG91dCB0aGVyZS48L2xpPg0KDQo8L3VsPjwvbGk+PC91bD4NCg0KDQo8aDM+UGFzc2luZyBEZWZhdWx0IFZhbHVlcyB0byBGb3JtczwvaDM+DQo8cD5DYWxndXkgYWRkZWQgYSBuaWNlIGZlYXR1cmUsIHdoaWNoIGlzIHRoYXQgeW91IGNhbiBwYXNzIGRlZmF1bHQgZmllbGQgdmFsdWVzIHRvIHlvdXIgZm9ybSB2aWEgdGhlIG1vZHVsZSB0YWcuIFRoaXMgYWxsb3dzIHlvdSB0byBoYXZlDQp0aGUgc2FtZSBmb3JtIGluIG11bHRpcGxlIHBsYWNlcywgYnV0IHdpdGggZGlmZmVyZW50IGRlZmF1bHQgdmFsdWVzLiBJdCBtYXkgbm90IHdvcmsgZm9yIG1vcmUgZXhvdGljIGZpZWxkIHR5cGVzLCBidXQgZm9yIGZpZWxkcyB0aGF0IGhhdmUNCmEgc2luZ2xlIHZhbHVlLCB5b3UgY2FuIHNwZWNpZnkgbGlrZTo8L3A+DQo8cD57Rm9ybUJ1aWxkZXIgZm9ybT0mIzAzOTtteV9mb3JtJiMwMzk7IHZhbHVlXzxpPkZJRUxETkFNRTwvaT49JiMwMzk7ZGVmYXVsdF92YWx1ZSYjMDM5O308L3A+DQo8cD5UaGlzIHdpbGwgc2V0IHRoZSBmaWVsZCB3aXRoIDxpPkZJRUxETkFNRTwvaT4gdG8gJiMwMzk7ZGVmYXVsdF92YWx1ZSYjMDM5Oy48L3A+DQo8cD5UaGlzIGNhbiBiZSBwcm9ibGVtYXRpYywgYXMgc29tZXRpbWVzIGZpZWxkIG5hbWVzIGFyZSB1bndlaWxkeSBvciBjb250YWluIGNoYXJhY3RlcnMgdGhhdCBkb24mIzAzOTt0IHdvcmsgd2VsbCB3aXRoIFNtYXJ0eS4gU28gdGhlcmUgaXMgYW4NCmFsdGVybmF0aXZlIGxpa2UgdGhpczo8L3A+DQo8cD57Rm9ybUJ1aWxkZXIgZm9ybT0mIzAzOTtteV9mb3JtJiMwMzk7IHZhbHVlX2ZsZDxpPk5VTUJFUjwvaT49JiMwMzk7ZGVmYXVsdF92YWx1ZSYjMDM5O308L3A+DQo8cD5UaGF0IHVzZXMgZmllbGQgPGk+TlVNQkVSPC9pPiwgd2hlcmUgPGk+TlVNQkVSPC9pPiBpcyB0aGUgaW50ZXJuYWwgRm9ybUJ1aWxkZXIgZmllbGQgaWQuIFlvdSBtaWdodCB3b25kZXIgaG93IHlvdSBrbm93IHdoYXQgdGhhdCBpZCBpcy4gU2ltcGx5IGdvIGludG8gdGhlIEZvcm1CdWlsZGVyIGNvbmZpZ3VyYXRpb24gdGFiLA0KYW5kIGNoZWNrICZxdW90O1Nob3cgRmllbGQgSURzJnF1b3Q7PC9wPg0KDQo8aDM+RW1haWwgYW5kIEZsYXQgRmlsZSBUZW1wbGF0ZXM8L2gzPg0KPHA+TWFueSBkaXNwb3NpdGlvbiB0eXBlcyBhbGxvdyB5b3UgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZm9yIHRoZSBlbWFpbCB0aGF0IGlzIGdlbmVyYXRlZCwgb3IgZm9yIHRoZSB3YXkgdGhlIHJlc3VsdHMgYXJlIHdyaXR0ZW4gdG8gYSBmaWxlLiBJZiB5b3Ugb3B0IG5vdCB0byBjcmVhdGUgYSB0ZW1wbGF0ZSwgdGhlIEZvcm1CdWlsZGVyIHdpbGwgdXNlIGl0cyBvd24gYmVzdCBndWVzcywgd2hpY2ggbWF5IG9yIG1heSBub3Qgd29yayBvdXQgdG8geW91ciBsaWtpbmcuIFlvdSBjYW4gYWx3YXlzIGNsaWNrIG9uIHRoZSAmcXVvdDtDcmVhdGUgU2FtcGxlIFRlbXBsYXRlJnF1b3Q7IGFuZCB0aGVuIGN1c3RvbWl6ZSB0aGUgcmVzdWx0cy48L3A+DQo8cD5UbyB0aGUgcmlnaHQsIHlvdSYjMDM5O2xsIGZpbmQgYSBsZWdlbmQgd2hpY2ggbGlzdHMgYWxsIG9mIHRoZSB2YXJpYWJsZXMgdGhhdCBhcmUgYXZhaWxhYmxlIHRvIHlvdSB0byB1c2UgaW4geW91ciB0ZW1wbGF0ZS4gQXMgb2YgdmVyc2lvbiAwLjMsIHZhcmlhYmxlcyBoYXZlIHR3byBuYW1lcywgb25lIGJhc2VkIG9uIHRoZSBmaWVsZCBuYW1lLCB0aGUgb3RoZXIgYmFzZWQgb24gdGhlIGZpZWxkIElELiBJZiB5b3UgdXNlIGZpZWxkIG5hbWVzIHRoYXQgaGF2ZSBjaGFyYWN0ZXJzIG91dHNpZGUgb2YgdGhlIEFTQ0lJIDMyLTEyNiByYW5nZSwgaXQgd2lsbCBiZSBzYWZlciB0byB1c2UgdGhlIElELWJhc2VkIHZhcmlhYmxlcy4gQXMgb2YgdmVyc2lvbiAwLjUsIHZhcmlhYmxlcyBhbHNvIGhhdmUgYWxpYXNlcywgd2hpY2ggeW91IGNhbiB1c2UuPC9wPg0KPHA+PHN0cm9uZz5Ob3RlIHRoYXQgb25jZSB5b3UmIzAzOTt2ZSBjaGFuZ2VkIGEgdGVtcGxhdGUsIGl0IHdpbGwgbm8gbG9uZ2VyIGF1dG9tYXRpY2FsbHkgYWRkIG5ldyBmaWVsZHMuPC9zdHJvbmc+IEZvciB0aGlzIHJlYXNvbiwgaXQmIzAzOTtzIHVzdWFsbHkgYmVzdCB0byBjcmVhdGUgeW91ciB0ZW1wbGF0ZXMgYXMgdGhlIGxhc3Qgc3RlcCBvZiBjcmVhdGluZyB5b3VyIGZvcm0uPC9wPg0KPHA+QXMgb2YgdmVyc2lvbiAwLjIuNCwgeW91IGNhbiBvcHQgdG8gc2VuZCBhbnkgb2YgdGhlc2UgZW1haWxzIGFzIEhUTUwgZW1haWwuIFRoZXJlIHNob3VsZCBiZSBhIGNoZWNrYm94IGF0IHRoZSB0b3Agb2YgdGhlIHRlbXBsYXRlIHBhZ2UgZm9yIHRoaXMuIFRoZXJlIGlzIGFsc28gYSAmcXVvdDtDcmVhdGUgU2FtcGxlIEhUTUwgVGVtcGxhdGUmcXVvdDsgYnV0dG9uIG92ZXIgaW4gdGhlIGxlZ2VuZCBhcmVhLiBGb3IgSFRNTCBlbWFpbCwgdGhlIGVtYWlsIGJvZHkgd2lsbCBhbHNvIHByb3ZpZGUgdGhlIGRlZmF1bHQgdGV4dC1vbmx5IHZhbHVlcy48L3A+DQoNCjxoMz5Vc2Ugd2l0aCBGb3JtQnJvd3NlciB2MzwvaDM+DQo8cD5UaGVyZSBhcmUgc29tZSBzcGVjaWFsIGZlYXR1cmVzIHdoZW4gdXNpbmcgRm9ybUJ1aWxkZXIgd2l0aCBGb3JtQnJvd3Nlci4gVGhlIG5ldyBhcHByb2FjaCBzdG9yZXMgdGhlIGZvcm0gcmVzdWx0cyBpbiBYTUwsIHNvIHRoYXQgZmFyIGZld2VyDQpxdWVyaWVzIGFyZSBuZWVkZWQgdG8gcmV0cmlldmUgcmVjb3Jkcy4gVGhpcyBtZWFucyB5b3UgY2FuIHVzZSBGb3JtQnJvd3NlciB3aXRoIGh1bmRyZWRzIG9yIGV2ZW4gdGhvdXNhbmRzIG9mIHJlY29yZHMuIEl0IGFsc28gbWVhbnMgeW91DQp3aWxsIGhhdmUgdG8gY2hvb3NlIHVwIGZyb250IHdoaWNoIGZpZWxkcyB5b3Ugd2lsbCB3YW50IHRvIGJlIGFibGUgdG8gc29ydCBieS4gWW91IGNhbiBjaG9vc2UgdXAgdG8gZml2ZS4gQ2hhbmdpbmcgdGhlc2UgYWZ0ZXIgdGhlcmUgYXJlIHN1Ym1pdHRlZCByZWNvcmRzIHdpbGwgcmVzdWx0IGluIGltcHJvcGVyIHNvcnRpbmchIEEgcmUtaW5kZXggZnVuY3Rpb24gd2lsbCBiZSBhZGRlZCB0byBhIGZ1dHVyZSB2ZXJzaW9uLjwvcD4NCjxwPkluIGFkdmFuY2VkIG9wdGlvbnMsIHlvdSBjYW4gdGllIGEgZm9ybSB0byBGcm9udGVuZCBVc2Vycy4gVGhhdCBtZWFucyBlYWNoIHVzZXIgZ2V0cyBvbmUgcmVjb3JkIGZvciB0aGUgZm9ybTsgdGhleSBjYW4gY3JlYXRlIGl0DQphIHNpbmdsZSB0aW1lLCBzdWJzZXF1ZW50IHRpbWVzIHRoZXkgd2lsbCBiZSBlZGl0aW5nIHRoZWlyIHJlY29yZC4gVGhlIHJlY29yZCB3aWxsIG5vdCBiZSB2aXNpYmxlIHRvIGFueSBvdGhlciB1c2VycyAoZXhjbHVkaW5nIGFkbWlucykuDQpUaGlzIGZvcm0gc2hvdWxkIGJlIGFkZGVkIHRvIHlvdXIgcGFnZSB1c2luZyB0aGUgc3ludGF4IHtGb3JtQnVpbGRlciBhY3Rpb249JiMwMzk7ZmV1c2VyZm9ybSYjMDM5OyBmb3JtPSYjMDM5O2Zvcm1fbmFtZSYjMDM5O30uPC9wPg0KPHA+Rm9yIGdyZWF0ZXIgZGF0YSBzYWZldHksIHlvdSBjYW4gZW5jcnlwdCB0aGUgc3RvcmVkIGZvcm1zIGluIHRoZSBkYXRhYmFzZS4gWW91IGNhbiB1c2UgdGhlIGJ1aWx0LWluIG15Y3J5cHQgbGlicmFyeSBvciB0aGUgT3BlblNTTCBtb2R1bGUuDQpJbiBlaXRoZXIgY2FzZSwgZm9yIHRoZSBwYXNzcGhyYXNlLCB5b3UgY2FuIGVpdGhlciBlbnRlciB0ZXh0IGluIHRoZSBmaWVsZCBvciBhIGZpbGUgbmFtZS4gSWYgeW91IHNwZWNpZnkgYSBmaWxlIG5hbWUsIHRoZSBjb250ZW50cyBvZiB0aGF0DQpmaWxlIHdpbGwgYmUgdXNlZCBhcyB0aGUgcGFzc3BocmFzZSBmb3IgZW5jcnlwdGluZy48L3A+DQo8cD5JZiB5b3UgZW5jcnlwdCwgYmUgYXdhcmUgdGhhdCB0aGUgZmllbGRzIHlvdSB1c2UgZm9yIHNvcnRpbmcgYXJlIDxzdHJvbmc+bm90PC9zdHJvbmc+IGVuY3J5cHRlZC4gWW91IGNhbiBjaG9vc2UgdG8gaGFzaCB0aGVtOyB0aGUgY2hlYXQgaGVyZQ0KaXMgdGhhdCB0aGUgZmlyc3QgZm91ciBsZXR0ZXJzIGFyZSBsZWZ0IGludGFjdCB0byBhbGxvdyBmb3Igc29ydGluZy4gVGhlIHNvcnRpbmcgbWF5IG5vdCBiZSBwZXJmZWN0LCBhbmQgdGhpcyB3ZWFrZW5zIHRoZSBzZWN1cml0eSBzaW5jZSBpdA0KZXhwb3NlcyBzb21lIGNsZWFydGV4dCwgYnV0IGl0IGlzIGJldHRlciB0aGFuIG5vdGhpbmcuPC9wPg0KPHA+PHN0cm9uZz5ESVNDTEFJTUVSPC9zdHJvbmc+LiBUaGUgZW5jcnlwdGlvbiBvZmZlcmVkIGhlcmUgc2hvdWxkIGJlIGNvbnNpZGVyZWQganVzdCBvbmUgbW9yZSBodXJkbGUgZm9yIGEgaGFja2VyLCBub3QgYXMgYSBndWFyYW50ZWUgdGhhdA0KeW91ciBpbmZvcm1hdGlvbiB3aWxsIGJlIHNlY3VyZS4gQSBzbWFydCBoYWNrZXIgd2hvIGhhcyBmb3VuZCBzb21lIGV4cGxvaXQgdG8gdmlldyBkYXRhYmFzZSByZWNvcmRzIG1heSB3ZWxsIGJlIHNtYXJ0IGVub3VnaCB0byBnZXQgYXQNCnRoZSBtb2R1bGUgc291cmNlIGNvZGUsIGFuZCBmaW5kIHRoZWlyIHdheSB0byB0aGUgcGFzc3BocmFzZS4gVGhpcyB3aWxsIG5vdCBwcm90ZWN0IHlvdSBhZ2FpbnN0IGFuIGVuZW15IHdobyBoYXMgZnVsbCBhY2Nlc3MgdG8geW91cg0Kc2VydmVyLCBzb21lIGZhbWlsaWFyaXR5IHdpdGggUEhQLCBhbmQgdGhlIHRpbWUgdG8gcG9rZSBhcm91bmQuIDxlbT48c3Ryb25nPkRvIG5vdDwvc3Ryb25nPiB1c2UgdGhpcyB0byBwcm90ZWN0IGhpZ2gtdmFsdWUgaW5mb3JtYXRpb24gc3VjaCBhcyBmaW5hbmNpYWwgZGF0YSwNCnNlbnNpdGl2ZSBwb2xpdGljYWwgaW5mb3JtYXRpb24sIGh1bWFuIHJpZ2h0cyBkYXRhLCBvciBhbnl0aGluZyBlbHNlIHRoYXQgbWlnaHQgYmUgb2YgdmFsdWUgdG8gYSByZXByZXNzaXZlIGdvdmVybm1lbnQgb3Igb3JnYW5pemVkIGNyaW1lDQpjYXJ0ZWwuPC9lbT48L3A+DQo8aDM+VXNpbmcgd2l0aCBVc2VyIERlZmluZWQgVGFncyAoVURUcyk8L2gzPg0KPHA+U2V2ZXJhbCBvcHRpb25zIGZvciBjdXN0b21pemluZyBiZWhhdmlvciB2aWEgVURUcyBpcyBwcm92aWRlZCAodGhhbmtzIHRvIGtpbmQgY29kZSBjb250cmlidXRpb25zLCBzZWUgY3JlZGl0cykuPC9wPg0KDQo8dWw+PGxpPkNhbGwgVXNlciBEZWZpbmVkIFRhZyBXaXRoIHRoZSBGb3JtIFJlc3VsdHMuIFRoaXMgZmllbGQgdHlwZSBzdWJtaXRzIHRoZSBodW1hbi1yZWFkYWJsZSBmb3JtIHJlc3VsdHMgdG8gdGhlIFVzZXItRGVmaW5lZA0KVGFnIHlvdSBzcGVjaWZ5LiBUaGUgVURUIGNhbiBoYW5kbGUgdGhlIHJlc3VsdHMgaG93ZXZlciBpdCB3YW50cy4gVmFsdWVzIGFyZSBwYXNzZWQgYXMgJHBhcmFtc1smIzAzOTtmaWVsZF9uYW1lJiMwMzk7XSwgYW5kDQphcyAkcGFyYW1zWyYjMDM5O2ZpZWxkX2FsaWFzJiMwMzk7XSAoaWYgZGVmaW5lZCkuIEFzIHBlciBhIHN1Z2dlc3Rpb24sIGl0IGFsc28gcG9wdWxhdGVzIGFsbCBvZiB0aGUgU21hcnR5IHZhbHVlcyB0aGF0IHdvdWxkIGJlIHZpc2libGUgdG8gdGhlIFN1Ym1pc3Npb24gVGVtcGxhdGUgdG9vITwvbGk+DQo8bGk+VXNlciBUYWcgRmllbGQuIFRoaXMgY2FsbHMgdGhlIHNwZWNpZmllZCBVRFQsIGFuZCBkaXNwbGF5cyBhbnl0aGluZyBpdCByZXR1cm5zLiBUaGUgVURUIGdldHMgY2FsbGVkIGFueSB0aW1lIHRoZSBmaWVsZCB3b3VsZCBiZSB2aXNpYmxlLjwvbGk+DQo8bGk+VmFsaWRhdGlvbiBVRFQuIFNldCB0aGlzIGZvciBhIGZvcm0sIGFuZCB0aGUgVURUIHdpbGwgcmVjZWl2ZSBhbGwgb2YgdGhlIGZvcm1cJiMwMzk7cyBodW1hbi1yZWFkYWJsZSByZXN1bHRzLiBUaGUgVURUIHNob3VsZCBkbyB3aGF0ZXZlcg0KdmFsaWRhdGlvbiBpdCB3YW50cywgYW5kIHJldHVybiBhbiBhcnJheSB3aXRoIHRoZSBmaXJzdCB2YWx1ZSBiZWluZyB0cnVlIG9yIGZhbHNlIChpbmRpY2F0aW9uIHdoZXRoZXIgdGhlIGZvcm0gdmFsaWRhdGVzKSwgYW5kIHRoZSBzZWNvbmQNCnZhbHVlIGJlaW5nIGVycm9yIG1lc3NhZ2VzIChpZiBhbnkpLjwvbGk+DQo8bGk+VXNlciBkZWZpbmVkIHRhZyB0byBjYWxsIGJlZm9yZSBmb3JtIGlzIGRpc3BsYXllZCB0aGUgZmlyc3QgdGltZSAob25seSBjYWxsZWQgb25jZSkuIFRoaXMNCmlzIHNldCBpbiB0aGUgRm9ybSBBZG1pbiBpbiB0aGUgVURUIEludGVncmF0aW9uIHRhYi4gVGhlIFVEVCBnZXRzIGNhbGxlZCBvbiB0aGUgZmlyc3QgZGlzcGxheQ0Kb2YgdGhlIGZvcm0uPC9saT4NCjxsaT5Vc2VyIGRlZmluZWQgdGFnIHRvIGNhbGwgYmVmb3JlIGZvcm0gaXMgZGlzcGxheWVkIChjYWxsZWQgb24gZXZlcnkgcGFnZSBvZiBtdWx0aXBhZ2UNCmZvcm1zKS4gVGhpcyBpcyBzZXQgaW4gdGhlIEZvcm0gQWRtaW4gaW4gdGhlIFVEVCBJbnRlZ3JhdGlvbiB0YWIuIFRoZSBVRFQgZ2V0cyBjYWxsZWQNCmV2ZXJ5IHRpbWUgYW55IHBhZ2Ugb2YgdGhlIGZvcm0gaXMgZGlzcGxheWVkIChpbmNsdWRpbmcgd2hlbiB2YWxpZGF0aW9uIGZhaWxzKS48L2xpPg0KPC91bD4NCg0KPGgzPkNvbmZpZ3VyYXRpb248L2gzPg0KPHA+VGhlcmUgYXJlIHNvbWUgZ2xvYmFsIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgRm9ybUJ1aWxkZXI6PC9wPg0KPHVsPg0KPGxpPkVuYWJsZSBmYXN0IGZpZWxkIGFkZCBwdWxsZG93bi4gVGhpcyBlbmFibGVzIHRoZSBwdWxsZG93biBvbiB0aGUgRm9ybSBFZGl0IHBhZ2Ugd2hpY2ggc2F2ZXMgYSBzdGVwIGluIHRoZSBjcmVhdGlvbiBvZiBuZXcgZmllbGRzLjwvbGk+DQo8bGk+SGlkZSBFcnJvcnMuIFRoaXMgaXMgc2V0IGJ5IGRlZmF1bHQuIFVuY2hlY2tpbmcgaXQgd2lsbCBjYXVzZSBtb3JlIGRldGFpbGVkIGVycm9ycyB0byBiZSBkaXNwbGF5ZWQgaWYgdGhlcmUgYXJlIHByb2JsZW1zIHdoZW4geW91IHN1Ym1pdCB5b3VyIGZvcm0uPC9saT4NCjxsaT5SZXF1aXJlIEZpZWxkIE5hbWVzLiBUeXBpY2FsbHksIHlvdSB3aWxsIHdhbnQgZm9ybSBmaWVsZHMgdG8gYmUgbmFtZWQgc28geW91IGNhbiB0ZWxsIHdoaWNoIGlzIHdoaWNoLiBIb3dldmVyLCBpbiBzb21lIGNhc2VzLCB5b3UgbWlnaHQgd2FudCB0byBoYXZlIG5hbWVsZXNzIGZpZWxkcy4gVW5jaGVjayB0aGlzIGlmIHlvdSB3YW50IHRvIGFsbG93IG5hbWVsZXNzIGZpZWxkcy48L2xpPg0KPGxpPlVuaXF1ZSBGaWVsZCBOYW1lcy4gVHlwaWNhbGx5LCB5b3Ugd2lsbCB3YW50IGZvcm0gZmllbGRzIHRvIGhhdmUgdW5pcXVlIG5hbWVzIHNvIHlvdSBjYW4gdGVsbCB3aGljaCBpcyB3aGljaC4gVW5jaGVjayB0aGlzIGlmIHlvdSB3YW50IHRvIGFsbG93IGZpZWxkcyB0byBzaGFyZSBuYW1lcy48L2xpPg0KPGxpPlVzZSByZWxheGVkIGVtYWlsIHZhbGlkYXRpb24uIFRoaXMgdXNlcyBhIGxlc3MgcmVzdHJpY3RpdmUgcmVndWxhciBleHByZXNzaW9uIGZvciB2YWxpZGF0aW5nIGVtYWlsOyBlLmcuLCB4QHkgd2lsbCBiZSBhbGxvd2VkLCB3aGVyZSB0eXBpY2FsbHkgeEB5LnRsZCBpcyByZXF1aXJlZC48L2xpPg0KPGxpPlNob3cgRm9ybSBCdWlsZGVyIFZlcnNpb24uIERpc3BsYXlzIHRoZSB2ZXJzaW9uIG9mIEZvcm1CdWlsZGVyIHlvdSYjMDM5O3JlIHVzaW5nIGluIGEgY29tbWVudCB3aGVuIHRoZSBmb3JtIGlzIGdlbmVyYXRlZC4gVHlwaWNhbGx5IG9ubHkgdXNlZnVsIHdoZW4gZGVidWdnaW5nLjwvbGk+DQo8bGk+RW5hYmxlIHByaW1pdGl2ZSBhbnRpLXNwYW0gZmVhdHVyZXMuIFdoZW4gdHVybmVkIG9uLCB0aGlzIGFsbG93cyBhbnkgZ2l2ZW4gSVAgYWRkcmVzcyB0byBvbmx5IGdlbmVyYXRlIDEwIGVtYWlscyBwZXIgaG91ci48L2xpPg0KPGxpPlNob3cgRmllbGQgSURzLiBXaGVuIHR1cm5lZCBvbiwgRm9ybUJ1aWxkZXIgd2lsbCBkaXNwbGF5IGZpZWxkIGlkcyB3aGVuIGFkZGluZyBvciBlZGl0aW5nIGEgZm9ybS48L2xpPg0KPC91bD4NCjxoMz5TdHlsaW5nIGFuZCBDU1M8L2gzPg0KPHA+QWZ0ZXIgYSBiaXQgb2YgbmFnZ2luZyBvbiB0aGUgcGFydCBvZiBwZW9wbGUgd2hvIGFjdHVhbGx5IHJlc3BlY3Qgc3RhbmRhcmRzLCBGb3JtQnVpbGRlciBubyBsb25nZXIgZW5jb3VyYWdlcyB0cmlja3MgbGlrZSBlbWJlZGRpbmcgQ1NTIGluIA0Kc3RhdGljIHRleHQgZmllbGRzLiBJbnN0ZWFkLCBpdCBjcmVhdGVzIGEgc3R5bGVzaGVldCBjYWxsZWQgJnF1b3Q7Rm9ybUJ1aWxkZXIgRGVmYXVsdCZxdW90OyB0aGF0IHlvdSBhcmUgZW5jb3VyYWdlZCB0byBhdHRhY2ggdG8gdGhlIHBhZ2UgdGVtcGxhdGUNCnRoYXQgeW91IHVzZSBmb3IgcGFnZXMgdGhhdCBjb250YWluIHlvdXIgZm9ybS48L3A+ICANCjxwPlRoaXMgZGVmYXVsdCBDU1Mgd2FzIGdyYWNpb3VzbHkgcHJvdmlkZWQgYnkgUGF1bCBOb29uZS48L3A+DQoNCg0KPGgzPkZvcm0gVGVtcGxhdGUgVmFyaWFibGVzPC9oMz4NCjxwPllvdSBjYW4gZWRpdCBpdCB0byBtYWtlIHlvdXIgZm9ybSBsYXlvdXQgbG9vayBhbnkgd2F5IHlvdSYjMDM5O2QgbGlrZS4NCiAgIFRvIG1ha2UgdGhlIGZvcm0gd29yaywgeW91JiMwMzk7bGwgbmVlZCB0byBhbHdheXMgaW5jbHVkZSB0aGUgeyRmYl9oaWRkZW59IGFuZCB7JHN1Ym1pdH0NCiAgIHRhZ3MuPC9wPg0KDQo8cD5Zb3UgY2FuIGFjY2VzcyB5b3VyIGZvcm0gZmllbGRzIGVpdGhlciB1c2luZyB0aGUgJGZpZWxkcyBhcnJheSBvciBieSBkaXJlY3RseSBhY2Nlc3NpbmcgZmllbGRzIGJ5IHRoZWlyIG5hbWVzIChlLmcuLCB7JG15ZmllbGQtPmlucHV0fSApPC9wPg0KDQoNCjxwPkVhY2ggZmllbGQgaGFzIHRoZSBmb2xsb3dpbmcgYXR0cmlidXRlczo8L3A+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+aW5wdXRfaWQ8L3RkPjx0ZD50aGUgSUQgb2YgdGhlIGZpZWxkJiMwMzk7cyBpbnB1dCAodXNlZnVsIGZvciBsYWJlbCBmb3I9JnF1b3Q7Zm9vJnF1b3Q7KTwvdGQ+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+RHVubm8gd2h5IHlvdSYjMDM5O2Qgd2FudCBzb21lIG9mIHRob3NlLCBidXQgdGhlcmUgeW91IGdvLi4uPC9wPg0KDQo8aDM+Q3JlZGl0czwvaDM+DQo8cD5NYW55IHBlb3BsZSBoYXZlIGNvbnRyaWJ1dGVkIGNvZGUsIGJ1ZyByZXBvcnRzLCBjYXNoLCBhbmQgaWRlYXMgdG8gRm9ybUJ1aWxkZXIuIEFtb25nIHRoZW0gKGFscGhhYmV0aWNhbGx5KToNCjx1bD4NCjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmJwdGkuZXUiPkJhbHRpYyBpbnN0aXR1dGUgb2YgYWR2YW5jZWQgdGVjaG5vbG9neTwvYT4gLSBjb2RlLCBmdW5kaW5nIDwvbGk+DQo8bGk+SmVyZW15IEJhc3MgLSBjb2RlIGFuZCBzdWdnZXN0aW9uczwvbGk+DQo8bGk+QWxiZXJ0byBCZW5hdGkgLSBjb2RlPC9saT4NCjxsaT5UeWxlciBCb2VzcGZsdWcgLSBmdW5kaW5nIGFuZCBpZGVhczwvbGk+DQo8bGk+SmVmZiBCb3NjaCAtIFVEVCBWYWxpZGF0aW9uPC9saT4NCjxsaT5Sb2JlcnQgQ2FtcGJlbGwgLSBudW1lcm91cyBjb2RlIGNvbnRyaWJ1dGlvbnM8L2xpPg0KPGxpPlBpb3RyYXMgQ2ltbXBlcm1hbiAtIGNvZGU8L2xpPg0KPGxpPk51bm8gQ29zdGEgLSBzdWdnZXN0aW9uczwvbGk+DQo8bGk+UnlhbiBGb3N0ZXIgLSBjb2RlPC9saT4NCjxsaT5NYXJjIEdlbGRvbiAtIGNvZGU8L2xpPg0KPGxpPktldmluIEdyYW5kb24gLSBjb2RlPC9saT4NCjxsaT5Sb25ueSBLcmlqdCAtIGNvZGU8L2xpPg0KPGxpPlBhdWwgTm9vbmUgLSBDU1MgYW5kIGlkZWFzPC9saT4NCjxsaT5Nb3J0ZW4gUG91bHNlbiAtIGNvZGU8L2xpPg0KPGxpPlBydWUgUm93bGFuZCAtIGJ1ZyBmaXhlczwvbGk+DQo8bGk+U2ltb24gU2NoYXVmZWxiZXJnZXIgLSBjb2RlPC9saT4NCjwvdWw+DQo8cD5JIGFwb2xvZ2l6ZSBmb3IgYW55IG9taXNzaW9ucyAtIG5vdGlmeSBtZSwgYW5kIEkmIzAzOTtsbCBjb3JyZWN0IHRoZSBvbWlzc2lvbiE8L3A+DQo8aDM+TWlzY2VsbGFuZW91cyBOb3RlczwvaDM+DQo8dWw+DQo8bGk+QW55IGZpZWxkcyB0aGF0IHNlbmRzIGVtYWlsIHRvIGEgc3BlY2lmaWVkIGVtYWlsIGFkZHJlc3Mgd2lsbCBhbHNvIGFjY2VwdCBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIGVtYWlsIGFkZHJlc3Nlcy48L2xpPg0KPC91bD4NCjxoMz5Lbm93biBJc3N1ZXM8L2gzPg0KPHVsPg0KPGxpPkZvcm1CdWlsZGVyIGRvZXMgbm90IHlldCBzdXBwb3J0IHByZXR0eSBVUkxzLCBhbHRob3VnaCB0aGF0IHNob3VsZG4mIzAzOTt0IG1hdHRlciBzaW5jZSB0aGUgdXNlciBzaWRlIGlzIHByZXR0eSBzaW1wbGUuPC9saT4NCjxsaT5GaWxlVXBsb2FkIEZpZWxkcyBtYXkgbm90IHdvcmsgY29ycmVjdGx5IHdpdGggbXVsdGlwYWdlIGZvcm1zLjwvbGk+DQo8L3VsPg0KDQo8aDM+VHJvdWJsZXNob290aW5nPC9oMz4NCjxvbD48bGk+IEZpcnN0IHN0ZXAgaXMgdG8gY2hlY2sgeW91JiMwMzk7cmUgcnVubmluZyBDTVMgMS4xIG9yIGxhdGVyLjwvbGk+DQo8bGk+IFNlY29uZCBzdGVwIGlzIHRvIHJlYWQgYW5kIHVuZGVyc3RhbmQgdGhlIGNhdmVhdCBhYm91dCBXWVNJV1lHIGVkaXRvcnMgdXAgaW4gdGhlDQpzZWN0aW9uIDxlbT5BZGRpbmcgYSBGb3JtIHRvIGEgUGFnZTwvZW0+LjwvbGk+DQo8bGk+IElmIHlvdSYjMDM5O3JlIG1pc3NpbmcgZmllbGRzIGluIGFuIGVtYWlsIHRoYXQgZ2V0cyBnZW5lcmF0ZWQsIGNoZWNrIHRoZSBkaXNwb3NpdGlvbiBmaWVsZCYjMDM5O3MgdGVtcGxhdGUsIGFuZCBtYWtlIHN1cmUgeW91JiMwMzk7cmUgc3BlY2lmeWluZyB0aGUgbWlzc2luZyBmaWVsZHMuIFNlZW1zIG9idmlvdXMsIGJ1dCBpdCYjMDM5O3MgYW4gZWFzeSBtaXN0YWtlIHRvIG1ha2UuPC9saT4NCjxsaT5VbmNoZWNrIHRoZSAmcXVvdDtIaWRlIEVycm9ycyZxdW90OyBjaGVja2JveCBpbiB0aGUgZ2xvYmFsIG9wdGlvbnMsIGFuZCBzZWUgd2hhdCBtZXNzYWdlIGdldHMgZGlzcGxheWVkIHdoZW4geW91IHN1Ym1pdCB5b3VyIGZvcm0uPC9saT4NCjxsaT4gSnVzdCBtZXNzIGFyb3VuZCBhbmQgdHJ5IGNsaWNraW5nIG9uIGxpbmtzIGFuZCBpY29ucyBhbmQgc3R1ZmYuIFNlZSB3aGF0IGhhcHBlbnMuPC9saT4NCjxsaT4gTWFrZSBzdXJlIHlvdSBjYW4gc3VjY2Vzc2Z1bGx5IHNlbmQgZW1haWwgdmlhIHRoZSB0ZXN0IGluIHRoZSBDTVNNYWlsZXIgTW9kdWxlLiBJdCYjMDM5O3Mgc2ltcGx5IGFtYXppbmcgaG93IG1hbnkgcHJvYmxlbXMgYm9pbCBkb3duIHRvIGEgbWlzY29uZmlndXJlZCBDTVNNYWlsZXIuPC9saT4NCjxsaT4gTGFzdCByZXNwb3J0IGlzIHRvIGVtYWlsIG1lIG9yIGNhdGNoIG1lIG9uIElSQyBhbmQgd2UgY2FuIGdvIGZyb20gdGhlcmUuPC9saT4NCjwvb2w+IA0KPHA+VGhpcyBpcyBubyBsb25nZXIgYSBwYXJ0aWN1bGFybHkgZWFybHkgdmVyc2lvbiwgYnV0IGl0IGlzIHByb2JhYmx5IHN0aWxsIGJ1Z2d5LiBXaGlsZSBJJiMwMzk7dmUgZG9uZSBhbGwgSSBjYW4NCnRvIG1ha2Ugc3VyZSBubyBlZ3JlZ2lvdXMgYnVncyBoYXZlIGNyZXB0IGluLCBJIGhhdmUgdG8gYWRtaXQgdGhhdCBkdXJpbmcgZWFybHkgdGVzdGluZywgdGhpcyBwcm9ncmFtDQpyZXZlYWxlZCBzZXZlbiBjb2Nrcm9hY2hlcywgdHdvIGVhcndpZ3MsIGEgc21hbGwgZmFtaWx5IG9mIGFwaGlkcywgYW5kIGEgd2Fsa2luZy1zdGljayBpbnNlY3QuIEl0IGFsc28NCmF0ZSB0aGUgbmVpZ2hib3ImIzAzOTtzIG5hc3R5IGxpdHRsZSB5YXAgZG9nLCBmb3Igd2hpY2ggSSB3YXMgaW5hcHByb3ByaWF0ZWx5IGdyYXRlZnVsLjwvcD4NCjxwPlRoZSBmaW5hbCByZWxlYXNlIHdpbGwgaW5jbHVkZSBidWcgZml4ZXMsIGRvY3VtZW50YXRpb24sIGFuZCB1bmNvbmRpdGlvbmFsIGxvdmUuPC9wPg0KPGgzPlN1cHBvcnQ8L2gzPg0KPHA+Q2UgbW9kdWxlIG5lIGNvbnRpZW50IGF1Y3VuIHN1cHBvcnQgY29tbWVyY2lhbC4gQ2VwZW5kYW50LCBjZXMgcmVzc291cmNlcyBzb250IGRpc3BvbmlibGVzIHBvdXIgdm91cyBhaWRlciA6PC9wPg0KPHVsPg0KPGxpPlBvdXIgbGEgZGVybmkmZWdyYXZlO3JlIHZlcnNpb24gZGUgY2UgbW9kdWxlLCBsZXMgRkFRcywgb3UgcG91ciBhbm5vbmNlciB1biBidWcsIHZldWlsbGV6IHZpc2l0ZXIgbGUgc2l0ZSBDTVMgTWFkZSBTaW1wbGUgIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmciPkRldmVsb3BlciBGb3JnZTwvYT4uPC9saT4NCjxsaT5wb3VyIG9idGVuaXIgdW4gc3VwcG9ydCBjb21tZXJjaWFsLCBtZXJjaSBkZSBjb250YWN0ZXIgbCYjMDM5O2F1dGV1ciBwYXIgbWFpbCA8YSBocmVmPSJtYWlsdG86c2pnQGNtc21vZHVsZXMuY29tIj5zamdAY21zbW9kdWxlcy5jb208L2E+LjwvbGk+DQo8bGk+RGVzIGRpc2N1c3Npb25zIGNvbXBsJmVhY3V0ZTttZW50YWlyZXMgcmVsYXRpdmVzICZhZ3JhdmU7IGNlIG1vZHVsZSBwZXV2ZW50IGF1c3NpICZlY2lyYzt0cmUgdHJvdXYmZWFjdXRlO2VzIHN1ciBsZXMgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnIj5Gb3J1bXMgQ01TIE1hZGUgU2ltcGxlPC9hPi48L2xpPg0KPGxpPkwmIzAzOTthdXRldXIsZXN0IHNvdXZlbnQgc3VyIElSQyBzdXIgY2FuYWwgPGEgaHJlZj0iaXJjOi8vaXJjLmZyZWVub2RlLm5ldC8jY21zIj5DTVMgSVJDIENoYW5uZWw8L2E+LjwvbGk+DQo8bGk+RXQgZW5maW4sIHZvdXMgcG91dmV6IHJlbmNvbnRyZXIgdW4gY2VydGFpbiBzdWNjJmVncmF2ZTtzIGVuIGVudm95YW50IHVuIGVtYWlsIGRpcmVjdGVtZW50ICZhZ3JhdmU7IGwmIzAzOTthdXRldXIuPC9saT4NCjxsaT5Eb25hdGlvbnMgYXJlIGdvb2QgbW90aXZhdG9ycywgdG9vLiBLZWVwIGluIG1pbmQgdGhhdCB0aGUgZG9sbGFyIGlzIHdlYWssIGFuZCBpZiB5b3UgYXJlIG5vdCBpbiB0aGUgVVMsIHlvdXIgZG9uYXRpb24gZ2V0cyBtYWduaWZpZWQuPC9saT4NCjwvdWw+DQo8cD5LZWVwIGluIG1pbmQgdGhhdCB0aGUgYXV0aG9yIGhhcyBwdXQgPGVtPmh1bmRyZWRzIGFuZCBodW5kcmVkcyBvZiBob3VyczwvZW0+IGludG8gdGhlIGRldmVsb3BtZW50IG9mIHRoaXMgbW9kdWxlLg0KUGxlYXNlIHRha2UgdGhlIHRpbWUgdG8gcmVhZCB0aGUgZG9jdW1lbnRhdGlvbiBiZWZvcmUgc2VuZGluZyBxdWVzdGlvbnMuIEVpdGhlciB0aGF0LCBvciBzZW5kIHlvdXIgcXVlc3Rpb25zIHdyaXR0ZW4gb24NCmZpbmFuY2lhbGx5IG5lZ290aWFibGUgaW5zdHJ1bWVudHMgKGkuZS4sIGNoZWNrcyBvciBjYXNoKS4gQW0gSSBzb3VuZGluZyBsaWtlIGEgYnJva2VuIHJlY29yZD8gRG8geW91IGtpZHMgdGhlc2UgZGF5cw0KZXZlbiBrbm93IHdoYXQgYSBicm9rZW4gcmVjb3JkIGlzPyBJIHdvdWxkIHNheSBza2lwcGluZyBDRCwgYnV0IHlvdSBtaWdodCBub3Qga25vdyB3aGF0IHRoYXQgaXMgZWl0aGVyLiBMaWtlIGENCnNhbXBsZSB0aGF0IGdvdCBzdHVjayBvbiBsb29wPyBEYW1uLCBJIGFtIGdldHRpbmcgb2xkLiBTbyBpcyB0aGlzIHBhcmFncmFwaC4gVGltZSB0byBtb3ZlIG9uLCBoZXJlLjwvcD48Zm9ybSBhY3Rpb249JnF1b3Q7aHR0cHM6Ly93d3cucGF5cGFsLmNvbS9jZ2ktYmluL3dlYnNjciZxdW90OyBtZXRob2Q9JnF1b3Q7cG9zdCZxdW90Oz4NCjxpbnB1dCB0eXBlPSZxdW90O2hpZGRlbiZxdW90OyBuYW1lPSZxdW90O2NtZCZxdW90OyB2YWx1ZT0mcXVvdDtfcy14Y2xpY2smcXVvdDs+DQo8aW5wdXQgdHlwZT0mcXVvdDtpbWFnZSZxdW90OyBzcmM9JnF1b3Q7aHR0cHM6Ly93d3cucGF5cGFsLmNvbS9lbl9VUy9pL2J0bi9idG5fZG9uYXRlQ0NfTEcuZ2lmJnF1b3Q7IGJvcmRlcj0mcXVvdDswJnF1b3Q7IG5hbWU9JnF1b3Q7c3VibWl0JnF1b3Q7IGFsdD0mcXVvdDtQYXlQYWwgLSBUaGUgc2FmZXIsIGVhc2llciB3YXkgdG8gcGF5IG9ubGluZSEmcXVvdDs+DQo8aW1nIGFsdD0mcXVvdDsmcXVvdDsgYm9yZGVyPSZxdW90OzAmcXVvdDsgc3JjPSZxdW90O2h0dHBzOi8vd3d3LnBheXBhbC5jb20vZW5fVVMvaS9zY3IvcGl4ZWwuZ2lmJnF1b3Q7IHdpZHRoPSZxdW90OzEmcXVvdDsgaGVpZ2h0PSZxdW90OzEmcXVvdDs+DQo8aW5wdXQgdHlwZT0mcXVvdDtoaWRkZW4mcXVvdDsgbmFtZT0mcXVvdDtlbmNyeXB0ZWQmcXVvdDsgdmFsdWU9JnF1b3Q7LS0tLS1CRUdJTiBQS0NTNy0tLS0tTUlJSFR3WUpLb1pJaHZjTkFRY0VvSUlIUURDQ0J6d0NBUUV4Z2dFd01JSUJMQUlCQURDQmxEQ0JqakVMTUFrR0ExVUVCaE1DVlZNeEN6QUpCZ05WQkFnVEFrTkJNUll3RkFZRFZRUUhFdzFOYjNWdWRHRnBiaUJXYVdWM01SUXdFZ1lEVlFRS0V3dFFZWGxRWVd3Z1NXNWpMakVUTUJFR0ExVUVDeFFLYkdsMlpWOWpaWEowY3pFUk1BOEdBMVVFQXhRSWJHbDJaVjloY0dreEhEQWFCZ2txaGtpRzl3MEJDUUVXRFhKbFFIQmhlWEJoYkM1amIyMENBUUF3RFFZSktvWklodmNOQVFFQkJRQUVnWUFJTm5CV2IvWE00bG12TEdIbDlSZDFjdkw1dHJxUmhjNytGb0dINUx0b2ZRaVZyZ0ZTdmg3aDFvamc1U3pUeGJndGkzMlpGMC91Y3VxL09RU0QrVnp1dUFGMXY2d1ZydHlPZUNQRUF3OGo4MURKT1hWakpIc0lZMm12aW9yUGpvbExRa0ZudjEyeVJUcHVGV0ZuNFpYZTUrdm5DalhxQnkwRUUvYWh6RU1NbnpFTE1Ba0dCU3NPQXdJYUJRQXdnY3dHQ1NxR1NJYjNEUUVIQVRBVUJnZ3Foa2lHOXcwREJ3UUljS05Od09QRm93dUFnYWl2Uzd2MGoyWEZ5UTlkcjhuaTlHOTVlRTdZcW9nR2xLOXd1U3BsbE9nOWxucnV2bkVRcXNtUm1RbnRoUXFXQ1RiWnpHMitJRXRlTTRJVXN4RXVHVHJ3OHBaQ1UyNFRORGNrbktVeDlVejN2U3hPaDNndTk1eUp5RHdvZU12YUVBMjRiczE0UUViSmJoTmpZNld4SHo5K2kvbFZBREJqeUFPRFlNdXphbERrdmR1dndlR05aazlsWUxSUkNvUFBOaWxHMVBmNnc4N0JIcGtTTThXUTFMQzkrUldkWGZaY20rZWdnZ09ITUlJRGd6Q0NBdXlnQXdJQkFnSUJBREFOQmdrcWhraUc5dzBCQVFVRkFEQ0JqakVMTUFrR0ExVUVCaE1DVlZNeEN6QUpCZ05WQkFnVEFrTkJNUll3RkFZRFZRUUhFdzFOYjNWdWRHRnBiaUJXYVdWM01SUXdFZ1lEVlFRS0V3dFFZWGxRWVd3Z1NXNWpMakVUTUJFR0ExVUVDeFFLYkdsMlpWOWpaWEowY3pFUk1BOEdBMVVFQXhRSWJHbDJaVjloY0dreEhEQWFCZ2txaGtpRzl3MEJDUUVXRFhKbFFIQmhlWEJoYkM1amIyMHdIaGNOTURRd01qRXpNVEF4TXpFMVdoY05NelV3TWpFek1UQXhNekUxV2pDQmpqRUxNQWtHQTFVRUJoTUNWVk14Q3pBSkJnTlZCQWdUQWtOQk1SWXdGQVlEVlFRSEV3MU5iM1Z1ZEdGcGJpQldhV1YzTVJRd0VnWURWUVFLRXd0UVlYbFFZV3dnU1c1akxqRVRNQkVHQTFVRUN4UUtiR2wyWlY5alpYSjBjekVSTUE4R0ExVUVBeFFJYkdsMlpWOWhjR2t4SERBYUJna3Foa2lHOXcwQkNRRVdEWEpsUUhCaGVYQmhiQzVqYjIwd2daOHdEUVlKS29aSWh2Y05BUUVCQlFBRGdZMEFNSUdKQW9HQkFNRkhUdDM4Uk14TFhKeU8yU21TK05kbDcyVDdvS0o0dTR1dys2YXdudEFMV2gwM1Bld21JSnV6YkFMU2NzVFM0c1pvUzFmS2NpQkdvaDExZ0lmSHp5bHZrZE5lL2hKbDY2L1JHcXJqNXJGYjA4c0FBQk5UekRUaXFxTnBKZUJzWXMvYzJhaUdvenB0WDJSbG5Ca3RIK1NVTnBBYWpXNzI0TnYyV3ZoaWY2c0ZBZ01CQUFHamdlNHdnZXN3SFFZRFZSME9CQllFRkphZmZMdkdieGU5V1Q5UzF3b2I3QkRXWkpSck1JRzdCZ05WSFNNRWdiTXdnYkNBRkphZmZMdkdieGU5V1Q5UzF3b2I3QkRXWkpScm9ZR1VwSUdSTUlHT01Rc3dDUVlEVlFRR0V3SlZVekVMTUFrR0ExVUVDQk1DUTBFeEZqQVVCZ05WQkFjVERVMXZkVzUwWVdsdUlGWnBaWGN4RkRBU0JnTlZCQW9UQzFCaGVWQmhiQ0JKYm1NdU1STXdFUVlEVlFRTEZBcHNhWFpsWDJObGNuUnpNUkV3RHdZRFZRUURGQWhzYVhabFgyRndhVEVjTUJvR0NTcUdTSWIzRFFFSkFSWU5jbVZBY0dGNWNHRnNMbU52YllJQkFEQU1CZ05WSFJNRUJUQURBUUgvTUEwR0NTcUdTSWIzRFFFQkJRVUFBNEdCQUlGZk9sYWFnRnJsNzEranE2T0tpZGJXRlNFK1E0RnFST3ZkZ0lPTnRoKzhrU0svL1kvNGlodUU0WW12em41Y2VFM1MvaUJTUVFNanl2YitzMlRXYlFZRHdjcDEyOU9QSWJEOWVwZHI0dEpPVU5pU29qdzdCSHdZUmlQaDU4UzF4R2xGZ0hGWHdyRUJiM2RnTmJNVWErdTRxZWN0c01BWHBWSG5EOXdJeWZtSE1ZSUJtakNDQVpZQ0FRRXdnWlF3Z1k0eEN6QUpCZ05WQkFZVEFsVlRNUXN3Q1FZRFZRUUlFd0pEUVRFV01CUUdBMVVFQnhNTlRXOTFiblJoYVc0Z1ZtbGxkekVVTUJJR0ExVUVDaE1MVUdGNVVHRnNJRWx1WXk0eEV6QVJCZ05WQkFzVUNteHBkbVZmWTJWeWRITXhFVEFQQmdOVkJBTVVDR3hwZG1WZllYQnBNUnd3R2dZSktvWklodmNOQVFrQkZnMXlaVUJ3WVhsd1lXd3VZMjl0QWdFQU1Ba0dCU3NPQXdJYUJRQ2dYVEFZQmdrcWhraUc5dzBCQ1FNeEN3WUpLb1pJaHZjTkFRY0JNQndHQ1NxR1NJYjNEUUVKQlRFUEZ3MHdPREEzTURFd016VTVNemxhTUNNR0NTcUdTSWIzRFFFSkJERVdCQlFNMExWMzBmTFhjSDlNNWRNbXVUQkxuc0ZRNGpBTkJna3Foa2lHOXcwQkFRRUZBQVNCZ0JFejJYcU1NcUZidVVoaitMMTI4Q3cydThTaE9LUXR0cktyL2hpMFdSZWVuSERZQmlIT1N0bDYzUnY3NlEybXBkNDUzUnZDajVtcTdkUnR1UkI2cGZIR1JEa1VYNk4xK09PSW9JZnJvQlpJQVROaHo5Q0VId0VGa05qWWcwRUdNQUcramNiQWoxREpqUjczY3hiYU5yWFdQeEEraGlRaEhsQXJyWkE3ckZWNS0tLS0tRU5EIFBLQ1M3LS0tLS0NCiZxdW90Oz4gDQo8L2Zvcm0+DQo8cD5BcyBwZXIgdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCBhcy1pcy4gUGxlYXNlIHJlYWQgdGhlIHRleHQNCm9mIHRoZSBsaWNlbnNlIGZvciB0aGUgZnVsbCBkaXNjbGFpbWVyLjwvcD4NCjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPg0KPHA+Q29weXJpZ2h0ICZhbXA7Y29weTsgMjAwOSwgU2FtdWVsIEdvbGRzdGVpbiA8YSBocmVmPSJtYWlsdG86c2pnQGNtc21vZHVsZXMuY29tIj4mYW1wO2x0O3NqZ0BjbXNtb2R1bGVzLmNvbSZhbXA7Z3Q7PC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPg0KPHA+Q2UgbW9kdWxlIGVzdCBkaXN0cmlidSZlYWN1dGU7IHNvdXMgbGEgbGljZW5jZSA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFZvdXMgZGV2ZXogYWdyJmVhY3V0ZTtlciBhdXggdGVybWVzIGRlIGNldHRlIGxpY2VuY2UgcG91ciBwb3V2b2lyIHV0aWxpc2VyIGNlIG1vZHVsZS48L3A+JzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuMTE5ODM1NTgzLjEyNzk4MjczNTUuMTI3OTgyNzM1NS4xMjc5ODI3MzU1LjEnOwokbGFuZ1sndXRtYyddID0gJzE1Njg2MTM1Myc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEyNzk4MjczNTUuMS4xLnV0bWNjbj0oZGlyZWN0KXx1dG1jc3I9KGRpcmVjdCl8dXRtY21kPShub25lKSc7CiRsYW5nWyd1dG1iJ10gPSAnMTU2ODYxMzUzJzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/hu_HU.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0Zvcm0gc3plcmtlc3p0xZEnOwokbGFuZ1snZmllbGRfdHlwZV8nXSA9ICdBIG1lesWRIHQmaWFjdXRlO3B1c2EgbmluY3MgYmUmYWFjdXRlO2xsJmlhY3V0ZTt0dmEnOwokbGFuZ1snZmllbGRfdHlwZV9DYXRhbG9nZXJJdGVtc0ZpZWxkJ10gPSAnU2VsZWN0IG9uZSAob3IgbW9yZSkgY2F0YWxvZ2VyIGl0ZW1zJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmllbGRzZXRFbmQnXSA9ICctRmllbGRzZXQgRW5kJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmllbGRzZXRTdGFydCddID0gJy1GaWVsZHNldCBTdGFydCc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRGaWVsZCddID0gJ1RleHQgSW5wdXQnOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0RmllbGRFeHBhbmRhYmxlJ10gPSAnVGV4dCBJbnB1dCAoTXVsdGlwbGUpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEFyZWFGaWVsZCddID0gJ1RleHQgQXJlYSc7CiRsYW5nWydmaWVsZF90eXBlX0NoZWNrYm94RmllbGQnXSA9ICdDaGVjayBCb3gnOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEdyb3VwRmllbGQnXSA9ICdDaGVjayBCb3ggR3JvdXAnOwokbGFuZ1snZmllbGRfdHlwZV9QdWxsZG93bkZpZWxkJ10gPSAnUHVsbGRvd24nOwokbGFuZ1snZmllbGRfdHlwZV9NdWx0aXNlbGVjdEZpZWxkJ10gPSAnTXVsdGlzZWxlY3QnOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0ZVBpY2tlckZpZWxkJ10gPSAnVS5TLiBTdGF0ZSBQaWNrZXInOwokbGFuZ1snZmllbGRfdHlwZV9Qcm92aW5jZVBpY2tlckZpZWxkJ10gPSAnQ2FuYWRpYW4gUHJvdmluY2UgUGlja2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ291bnRyeVBpY2tlckZpZWxkJ10gPSAnQ291bnRyeSBQaWNrZXInOwokbGFuZ1snZmllbGRfdHlwZV9EYXRlUGlja2VyRmllbGQnXSA9ICdEYXRlIFBpY2tlcic7CiRsYW5nWydmaWVsZF90eXBlX1RpbWVQaWNrZXJGaWVsZCddID0gJ1RpbWUgUGlja2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUmFkaW9Hcm91cEZpZWxkJ10gPSAnUmFkaW8gQnV0dG9uIEdyb3VwJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EaXJlY3RvciddID0gJypFbWFpbCBSZXN1bHRzIEJhc2VkIG9uIFB1bGxkb3duJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25GaWxlRGlyZWN0b3InXSA9ICcqU2F2ZSBSZXN1bHRzIHRvIEZpbGUgQmFzZWQgb24gUHVsbGRvd24nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbk11bHRpc2VsZWN0RmlsZURpcmVjdG9yJ10gPSAnKlNhdmUgUmVzdWx0cyB0byBGaWxlKHMpIEJhc2VkIG9uIE11bHRpcGxlIFNlbGVjdGlvbnMnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvblBhZ2VSZWRpcmVjdG9yJ10gPSAnKlJlZGlyZWN0IHRvIFBhZ2UgQmFzZWQgb24gUHVsbGRvd24nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsJ10gPSAnKkVtYWlsIFJlc3VsdHMgdG8gc2V0IEFkZHJlc3MoZXMpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbENvbmZpcm1hdGlvbiddID0gJypWYWxpZGF0ZS12aWEtRW1haWwgQWRkcmVzcyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRnJvbUVtYWlsQWRkcmVzc0ZpZWxkJ10gPSAnKkVtYWlsICZxdW90O0Zyb20gQWRkcmVzcyZxdW90OyBGaWVsZCwgYW5kIHNlbmQgY29weSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRmlsZSddID0gJypXcml0ZSBSZXN1bHRzIHRvIEZsYXQgRmlsZSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGF0YWJhc2UnXSA9ICcqU3RvcmUgUmVzdWx0cyBpbiBEYXRhYmFzZSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRm9ybUJyb3dzZXInXSA9ICcqU3RvcmUgUmVzdWx0cyBmb3IgRm9ybUJyb3dzZXIgTW9kdWxlIHYuMyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uVXNlclRhZyddID0gJypDYWxsIEEgVXNlciBEZWZpbmVkIFRhZyBXaXRoIHRoZSBGb3JtIFJlc3VsdHMnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRlbGl2ZXJUb0VtYWlsQWRkcmVzc0ZpZWxkJ10gPSAnKkVtYWlsIHRvIFVzZXItU3VwcGxpZWQgRW1haWwgQWRkcmVzcyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxTaXRlQWRtaW4nXSA9ICcqRW1haWwgdG8gQ01TIEFkbWluIFVzZXInOwokbGFuZ1snZmllbGRfdHlwZV9QYWdlQnJlYWtGaWVsZCddID0gJy1QYWdlIEJyZWFrJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmlsZVVwbG9hZEZpZWxkJ10gPSAnRmlsZSBVcGxvYWQnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxBZGRyZXNzRmllbGQnXSA9ICdFbWFpbCAmcXVvdDtGcm9tIEFkZHJlc3MmcXVvdDsgRmllbGQnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxBZGRyZXNzQWdhaW5GaWVsZCddID0gJ0VtYWlsICZxdW90O0Zyb20gQWRkcmVzcyZxdW90OyBBZ2FpbiBGaWVsZCc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbE5hbWVGaWVsZCddID0gJ0VtYWlsICZxdW90O0Zyb20gTmFtZSZxdW90OyBGaWVsZCc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbFN1YmplY3RGaWVsZCddID0gJ0VtYWlsICZxdW90O1N1YmplY3QmcXVvdDsgRmllbGQnOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0aWNUZXh0RmllbGQnXSA9ICctU3RhdGljIFRleHQnOwokbGFuZ1snZmllbGRfdHlwZV9TeXN0ZW1MaW5rRmllbGQnXSA9ICctU3RhdGljIExpbmsnOwokbGFuZ1snZmllbGRfdHlwZV9MaW5rRmllbGQnXSA9ICdMaW5rIChVc2VyLWVudGVyZWQpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfSGlkZGVuRmllbGQnXSA9ICctSGlkZGVuIEZpZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ29tcHV0ZWRGaWVsZCddID0gJy1Db21wdXRlZCBGaWVsZCc7CiRsYW5nWydmaWVsZF90eXBlX1VuaXF1ZUludGVnZXJGaWVsZCddID0gJy1VbmlxdWUgSW50ZWdlciAoU2VyaWFsKSc7CiRsYW5nWyd2YWxpZGF0aW9uX25vbmUnXSA9ICdObyBWYWxpZGF0aW9uJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbnVtZXJpYyddID0gJ051bWVyaWMnOwokbGFuZ1sndmFsaWRhdGlvbl9pbnRlZ2VyJ10gPSAnSW50ZWdlcic7CiRsYW5nWyd2YWxpZGF0aW9uX2VtYWlsX2FkZHJlc3MnXSA9ICdFbWFpbCBBZGRyZXNzJzsKJGxhbmdbJ3ZhbGlkYXRpb25fdXNwaG9uZSddID0gJ1Bob25lIE51bWJlciAoVVMpJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbXVzdF9jaGVjayddID0gJ011c3QgQmUgQ2hlY2tlZCc7CiRsYW5nWyd2YWxpZGF0aW9uX3JlZ2V4X21hdGNoJ10gPSAnTWF0Y2ggUmVndWxhciBFeHByZXNzaW9uJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbm9tYXRjaCddID0gJ0RvZXNuJiMwMzk7dCBtYXRjaCBSZWd1bGFyIEV4cHJlc3Npb24nOwokbGFuZ1sncmVxdWlyZWRfZmllbGRfbWlzc2luZyddID0gJ0EgdmFsdWUgd2FzIG5vdCBzdXBwbGllZCBmb3IgYSByZXF1aXJlZCBmaWVsZCc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV92YWx1ZSddID0gJ0smZWFjdXRlO3JqJnV1bWw7aywgdCZvdW1sO2x0c2Uga2kgYXogYWwmYWFjdXRlO2JiaSBtZXrFkSAmZWFjdXRlO3J0JmVhY3V0ZTtrJmVhY3V0ZTt0OiAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV9udW1iZXInXSA9ICdQbGVhc2UgZW50ZXIgYSBudW1iZXIgZm9yICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl92YWxpZCddID0gJ1BsZWFzZSBlbnRlciBhIHZhbGlkIGVudHJ5IGZvciAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5faW50ZWdlciddID0gJ1BsZWFzZSBlbnRlciBhbiBpbnRlZ2VyIHZhbHVlIGZvciAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5fZW1haWwnXSA9ICdQbGVhc2UgZW50ZXIgYSB2YWxpZCBlbWFpbCBhZGRyZXNzIGZvciAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydlbWFpbF9hZGRyZXNzX2RvZXNfbm90X21hdGNoJ10gPSAnRW1haWwgYWRkcmVzcyBkb2VzIG5vdCBtYXRjaCB2YWx1ZSBpbiAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV9waG9uZSddID0gJ1BsZWFzZSBlbnRlciBhIHZhbGlkIHBob25lIG51bWJlciBmb3IgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1snbm90X3ZhbGlkX2VtYWlsJ10gPSAnJnF1b3Q7JXMmcXVvdDsgZG9lcyBub3QgYXBwZWFyIHRvIGJlIGEgdmFsaWQgZW1haWwgYWRkcmVzcyEnOwokbGFuZ1sncGxlYXNlX2VudGVyX25vX2xvbmdlciddID0gJ1BsZWFzZSBlbnRlciBhIHZhbHVlIHRoYXQgaXMgbm8gbG9uZ2VyIHRoYW4gJXMgY2hhcmFjdGVycyc7CiRsYW5nWyd0aXRsZV9saXN0X2RlbGltaXRlciddID0gJ0NoYXJhY3RlciB0byB1c2UgYXMgZGVsaW1pdGVyIGluIHJlc3VsdHMgdGhhdCByZXR1cm4gbW9yZSB0aGFuIG9uZSB2YWx1ZSc7CiRsYW5nWyd5b3VfbmVlZF9wZXJtaXNzaW9uJ10gPSAnWW91IG5lZWQgdGhlICZxdW90OyVzJnF1b3Q7IHBlcm1pc3Npb24gdG8gcGVyZm9ybSB0aGF0IG9wZXJhdGlvbi4nOwokbGFuZ1snbGFja3Blcm1pc3Npb24nXSA9ICdTb3JyeSEgWW91IGRvbiYjMDM5O3QgaGF2ZSBhZGVxdWF0ZSBwcml2aWxlZ2VzIHRvIGFjY2VzcyB0aGlzIHNlY3Rpb24uJzsKJGxhbmdbJ2ZpZWxkX29yZGVyX3VwZGF0ZWQnXSA9ICdBIG1lesWRc29yZW5kZXQgZnJpc3MmaWFjdXRlO3RldHQmdXVtbDtrLic7CiRsYW5nWydmb3JtX2RlbGV0ZWQnXSA9ICdBIGZvcm1vdCB0Jm91bWw7ciZvdW1sO2x0JnV1bWw7ay4nOwokbGFuZ1snZmllbGRfZGVsZXRlZCddID0gJ0EgbWV6xZF0IHQmb3VtbDtyJm91bWw7bHQmdXVtbDtrLic7CiRsYW5nWydjb25maWd1cmF0aW9uX3VwZGF0ZWQnXSA9ICdBIGtvbmZpZ3VyJmFhY3V0ZTtjaSZvYWN1dGU7dCBmcmlzcyZpYWN1dGU7dGV0dCZ1dW1sO2suJzsKJGxhbmdbJ3lvdV9tdXN0X2NoZWNrJ10gPSAnWW91IG11c3QgY2hlY2sgJnF1b3Q7JXMmcXVvdDsgaW4gb3JkZXIgdG8gY29udGludWUuJzsKJGxhbmdbJ211c3Rfc3BlY2lmeV9vbmVfZGVzdGluYXRpb24nXSA9ICdZb3UgbmVlZCB0byBzcGVjaWZ5IGF0IGxlYXN0IG9uZSBkZXN0aW5hdGlvbiBhZGRyZXNzISc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2Zvcm0nXSA9ICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoZSBmb3JtICVzPyc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2ZpZWxkJ10gPSAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGUgZmllbGQgJXM/JzsKJGxhbmdbJ25vdGljZV9zZWxlY3RfdHlwZSddID0gJ0FkdmFuY2VkIG9wdGlvbnMgYXJlIG5vdCBhdmFpbGFibGUgdW50aWwgdGhlIGZpZWxkIHR5cGUgaGFzIGJlZW4gc2V0Lic7CiRsYW5nWydmaWVsZF9uYW1lX2luX3VzZSddID0gJ1RoZSBmaWVsZCBuYW1lICZxdW90OyVzJnF1b3Q7IGlzIGFscmVhZHkgaW4gdXNlLiBQbGVhc2UgdXNlIHVuaXF1ZSBmaWVsZCBuYW1lcywgb3IgZGlzYWJsZSB1bmlxdWUgZmllbGQgbmFtZXMgaW4gdGhlIEZvcm0gQnVpbGRlciBjb25maWd1cmF0aW9uLic7CiRsYW5nWydmaWVsZF9ub19uYW1lJ10gPSAnRmllbGRzIG11c3QgYmUgbmFtZWQsIHVubGVzcyB5b3UgZGlzYWJsZSB0aGlzIGluIHRoZSBGb3JtIEJ1aWxkZXIgY29uZmlndXJhdGlvbi4nOwokbGFuZ1snYW5vbnltb3VzJ10gPSAnQW5vbnltb3VzJzsKJGxhbmdbJ2FiYnJldmlhdGlvbl9sZW5ndGgnXSA9ICdMZW46ICVzJzsKJGxhbmdbJ2JveGVzJ10gPSAnJXMgYm94ZXMnOwokbGFuZ1snb3B0aW9ucyddID0gJyVzIG9wdGlvbnMnOwokbGFuZ1sndGV4dF9sZW5ndGgnXSA9ICclcyBjaGFycy4nOwokbGFuZ1snb3JkZXInXSA9ICdTb3JyZW5kJzsKJGxhbmdbJ3Vuc3BlY2lmaWVkJ10gPSAnW25pbmNzIG1lZ2FkdmFdJzsKJGxhbmdbJ2FkZGVkJ10gPSAnaG96eiZhYWN1dGU7YWR2YSc7CiRsYW5nWyd1cGRhdGVkJ10gPSAnZnJpc3MmaWFjdXRlO3R2ZSc7CiRsYW5nWydzb3J0X29wdGlvbnMnXSA9ICdTb3J0IG9wdGlvbnMgb24gb3V0cHV0JzsKJGxhbmdbJ3NlbGVjdF9vbmUnXSA9ICdLJmVhY3V0ZTtyaiZ1dW1sO2ssIHYmYWFjdXRlO2xhc3N6b24nOwokbGFuZ1snc2VsZWN0X3R5cGUnXSA9ICdTZWxlY3QgVHlwZSc7CiRsYW5nWyd0byddID0gJ1RvJzsKJGxhbmdbJ3llcyddID0gJ0lnZW4nOwokbGFuZ1snbm8nXSA9ICdOZW0nOwokbGFuZ1sncmVjaXBpZW50cyddID0gJ2MmaWFjdXRlO216ZXR0ZWsnOwokbGFuZ1snZmlsZV9jb3VudCddID0gJyVzIHBvc3NpYmxlIGZpbGVzJzsKJGxhbmdbJ2Rlc3RpbmF0aW9uX2NvdW50J10gPSAnJXMgZGVzdGluYXRpb25zJzsKJGxhbmdbJ3NhdmUnXSA9ICdNZW50JmVhY3V0ZTtzJzsKJGxhbmdbJ2FkZCddID0gJ0hvenomYWFjdXRlO2FkJmFhY3V0ZTtzJzsKJGxhbmdbJ3VwZGF0ZSddID0gJ0ZyaXNzJmlhY3V0ZTt0JmVhY3V0ZTtzJzsKJGxhbmdbJ3NhdmVfYW5kX2NvbnRpbnVlJ10gPSAnTWVudCZlYWN1dGU7cyAmZWFjdXRlO3MgYSBzemVya2VzenQmZWFjdXRlO3MgZm9seXRhdCZhYWN1dGU7c2EnOwokbGFuZ1snaW5mb3JtYXRpb24nXSA9ICdJbmZvcm0mYWFjdXRlO2NpJm9hY3V0ZTsnOwokbGFuZ1snYXV0b21hdGljJ10gPSAnQXV0b21hdGlrdXMnOwokbGFuZ1snZm9ybXMnXSA9ICdGb3Jtb2snOwokbGFuZ1snZm9ybSddID0gJ0Zvcm0gJXMnOwokbGFuZ1snY29uZmlndXJhdGlvbiddID0gJ0tvbmZpZ3VyJmFhY3V0ZTtjaSZvYWN1dGU7JzsKJGxhbmdbJ2ZpZWxkX3JlcXVpcmVtZW50X3VwZGF0ZWQnXSA9ICdBIG1lesWRIGsmb3VtbDt0ZWxlesWRcyZlYWN1dGU7Z2kgJmFhY3V0ZTtsbGFwb3QmYWFjdXRlO3QgZnJpc3MmaWFjdXRlO3RldHQmdXVtbDtrLic7CiRsYW5nWydtYXhpbXVtX3NpemUnXSA9ICdNYXguIG0mZWFjdXRlO3JldCc7CiRsYW5nWydwZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ0tpdGVyamVzenQmZWFjdXRlO3Nlayc7CiRsYW5nWydwZXJtaXR0ZWRfZmlsZXR5cGVzJ10gPSAnTWVnZW5nZWRldHQgZiZhYWN1dGU7amwgdCZpYWN1dGU7cHVzb2snOwokbGFuZ1snZmlsZV90b29fbGFyZ2UnXSA9ICdVcGxvYWRlZCBmaWxlIGlzIHRvbyBsYXJnZSEgTWF4aW11bSBzaXplIGlzOic7CiRsYW5nWydpbGxlZ2FsX2ZpbGVfdHlwZSddID0gJ1RoaXMgdHlwZSBvZiBmaWxlIG1heSBub3QgYmUgdXBsb2FkZWQuIFBsZWFzZSBjaGVjayB0aGF0IHRoZSBleHRlbnNpb24gaXMgY29ycmVjdC4nOwokbGFuZ1sndXBsb2FkJ10gPSAnRmVsdCZvdW1sO2x0JmVhY3V0ZTtzJzsKJGxhbmdbJ2Zvcm1faW1wb3J0ZWQnXSA9ICdBIGZvcm1vdCBpbXBvcnQmYWFjdXRlO2x0dWsuJzsKJGxhbmdbJ2Zvcm1faW1wb3J0X2ZhaWxlZCddID0gJ0Zvcm0gaW1wb3J0IGZhaWxlZCEgVGhlcmUgd2FzIGEgcHJvYmxlbSB3aXRoIHRoZSBmb3JtYXQgb2YgdGhlIFhNTCBmaWxlLic7CiRsYW5nWydyb3dzJ10gPSAnJXMgc29yJzsKJGxhbmdbJ2NvbHMnXSA9ICclcyBvc3psb3AnOwokbGFuZ1snMTJfaG91ciddID0gJzEyICZvYWN1dGU7ciZhYWN1dGU7cyAmb2FjdXRlO3JhJzsKJGxhbmdbJzI0X2hvdXInXSA9ICcyNCAmb2FjdXRlO3ImYWFjdXRlO3MgJm9hY3V0ZTtyYSc7CiRsYW5nWydob3VyJ10gPSAnJk9hY3V0ZTtyYSc7CiRsYW5nWydtaW4nXSA9ICdQZXJjJzsKJGxhbmdbJ21lcmlkJ10gPSAnTWVyaWRpYW4nOwokbGFuZ1snZGF0ZV9yYW5nZSddID0gJ1RhcnRvbSZhYWN1dGU7bnk6ICVzIC0gJXMnOwokbGFuZ1sndGhhbmtzJ10gPSAnSyZvdW1sO3N6Jm91bWw7bmomdXVtbDtrISBWJmFhY3V0ZTtsYXN6YWl0IHRvdiZhYWN1dGU7YmImaWFjdXRlO3RvdHR1ay4nOwokbGFuZ1snZWRpdCddID0gJ1N6ZXJrZXN6dCc7CiRsYW5nWydkZWxldGUnXSA9ICdUJm91bWw7cmwmZWFjdXRlO3MnOwokbGFuZ1snZGF5J10gPSAnTmFwJzsKJGxhbmdbJ21vbiddID0gJ0gmb2FjdXRlO25hcCc7CiRsYW5nWyd5ZWFyJ10gPSAnJkVhY3V0ZTt2JzsKJGxhbmdbJ25vbmUnXSA9ICcoJnV1bWw7cmVzKSc7CiRsYW5nWydjc3MnXSA9ICdDU1MnOwokbGFuZ1sndW5pbnN0YWxsZWQnXSA9ICdNb2R1bGUgdW5pbnN0YWxsZWQuJzsKJGxhbmdbJ2luc3RhbGxlZCddID0gJ01vZHVsZSB2ZXJzaW9uICVzIGluc3RhbGxlZC4nOwokbGFuZ1sndXBncmFkZWQnXSA9ICdNb2R1bGUgdXBncmFkZWQgdG8gdmVyc2lvbiAlcy4nOwokbGFuZ1snYnV0dG9uX3ByZXZpb3VzJ10gPSAnVmlzc3phLi4uJzsKJGxhbmdbJ2J1dHRvbl9zdWJtaXQnXSA9ICdFbGsmdXVtbDtsZCc7CiRsYW5nWydidXR0b25fY29udGludWUnXSA9ICdUb3YmYWFjdXRlO2JiLi4uJzsKJGxhbmdbJ3ZhbHVlX2NoZWNrZWQnXSA9ICdDaGVja2VkJzsKJGxhbmdbJ3ZhbHVlX3VuY2hlY2tlZCddID0gJ1VuY2hlY2tlZCc7CiRsYW5nWyd0YWJfbWFpbiddID0gJ01haW4nOwokbGFuZ1sndGFiX3N5bWJvbCddID0gJ0Zvcm0gRGlzcGxheSBTZXR0aW5ncyc7CiRsYW5nWyd0YWJfc3VibWl0J10gPSAnRm9ybSBTdWJtaXNzaW9uJzsKJGxhbmdbJ3RhYl9jYXB0Y2hhJ10gPSAnQ2FwdGNoYSBTZXR0aW5ncyc7CiRsYW5nWyd0YWJfYWR2YW5jZWQnXSA9ICdBZHZhbmNlZCBTZXR0aW5ncyc7CiRsYW5nWyd0YWJfdGVtcGxhdGVsYXlvdXQnXSA9ICdGb3JtIFRlbXBsYXRlJzsKJGxhbmdbJ3RhYl9zdWJtaXNzaW9udGVtcGxhdGUnXSA9ICdTdWJtaXNzaW9uIFRlbXBsYXRlJzsKJGxhbmdbJ2NhbnVzZV9zbWFydHknXSA9ICc8ZW0+U21hcnR5IHZhcmlhYmxlcyBhcmUgdmFsaWQgaW4gdGhpcyBmaWVsZC48L2VtPic7CiRsYW5nWydhZGRfb3B0aW9ucyddID0gJ0FkZCBNb3JlIE9wdGlvbnMnOwokbGFuZ1snZGVsZXRlX29wdGlvbnMnXSA9ICdEZWxldGUgTWFya2VkIE9wdGlvbnMnOwokbGFuZ1snYWRkX2NoZWNrYm94ZXMnXSA9ICdBZGQgTW9yZSBDaGVja2JveGVzJzsKJGxhbmdbJ2RlbGV0ZV9jaGVja2JveGVzJ10gPSAnRGVsZXRlIE1hcmtlZCBDaGVja2JveGVzJzsKJGxhbmdbJ2FkZF9hZGRyZXNzJ10gPSAnQWRkIEFub3RoZXIgQWRkcmVzcyc7CiRsYW5nWydkZWxldGVfYWRkcmVzcyddID0gJ0RlbGV0ZSBNYXJrZWQgQWRkcmVzc2VzJzsKJGxhbmdbJ2FkZF9kZXN0aW5hdGlvbiddID0gJyZVYWN1dGU7amFiYiBjJmVhY3V0ZTtsIGhvenomYWFjdXRlO2FkJmFhY3V0ZTtzYSc7CiRsYW5nWydkZWxldGVfZGVzdGluYXRpb24nXSA9ICdLaWplbCZvdW1sO2x0IGMmZWFjdXRlO2xvayB0Jm91bWw7cmwmZWFjdXRlO3NlJzsKJGxhbmdbJ3N1c3BlY3RlZF9zcGFtJ10gPSAnVG9vIG1hbnkgZW1haWxzIGdlbmVyYXRlZCBmcm9tIHlvdXIgSVAgYWRkcmVzcy4gQW50aS1TcGFtIGNvZGUgaGFzIHByZXZlbnRlZCBkZWxpdmVyeS4nOwokbGFuZ1snc3VzcGVjdGVkX3NwYW1fbG9nJ10gPSAnQXogYWwmYWFjdXRlO2JiaSBJUCBjJmlhY3V0ZTttZXQgc3BhbS1neWFuJnVhY3V0ZTsgbWlhdHQgYmxva2tvbHR1azogJXMnOwokbGFuZ1sncmVvcmRlciddID0gJ01lesWRayAmYWFjdXRlO3RyZW5kZXomZWFjdXRlO3NlJzsKJGxhbmdbJ2NhbmNlbCddID0gJ00mZWFjdXRlO2dzZW0nOwokbGFuZ1sndmFsdWVfc2V0J10gPSAnQmUmYWFjdXRlO2xsJmlhY3V0ZTt0b3R0ICZlYWN1dGU7cnQmZWFjdXRlO2s6ICVzJzsKJGxhbmdbJ2hlbHBfY2F0YWxvZ2VyX2F0dHJpYnV0ZV9maWVsZHMnXSA9ICdCZWxvdyBpcyBhIGxpc3Qgb2YgdGhlIGF0dHJpYnV0ZXMgYXZhaWxhYmxlIGZyb20gdGhlIENhdGFsb2dlciBtb2R1bGUuPGJyLz5Zb3UgY2FuIG9wdGlvbmFsbHkgc3BlY2lmeSB2YWxpZCByYW5nZXMsIHZhbHVlcywgb3IgbnVtZXJvdXMgdmFsdWVzIHRvIGJlIHVzZWQgaW4gZmlsdGVyaW5nIHRoZSBsaXN0IG9mIGl0ZW1zIHRoYXQgaXMgZGlzcGxheWVkIHRvIHRoZSB1c2VyLjxici8+DQo8YnIvPg0KPHN0cm9uZz5SYW5nZXM6PC9zdHJvbmc+PGJyLz4NClJhbmdlcyBjYW4gYmUgc3BlY2lmaWVkIGJ5IHNpZ25pZnlpbmcgYSBtaW5pbXVtIGFuZCBtYXhpbXVtIHZhbHVlIHVzaW5nIHRoaXMgc3ludGF4OiAmcXVvdDtyYW5nZTogbWludmFsdWUgdG8gbWF4dmFsdWUmcXVvdDs8YnIvPg0KPGJyLz4NCjxzdHJvbmc+TXVsdGlwbGUgVmFsdWVzOjwvc3Ryb25nPjxici8+DQpUbyBzcGVjaWZ5IG11bHRpcGxlIHZhbHVlcyBmb3IgYW4gYXR0cmlidXRlIHVzZSB0aGUgc3ludGF4ICZxdW90O211bHRpOiB2YWx1ZTF8dmFsdWUyfHZhbHVlMyZxdW90Ozxici8+DQo8YnIvPg0KPHN0cm9uZz5WYWx1ZXMgZnJvbSBoaWRkZW4gZmllbGRzPC9zdHJvbmc+PGJyLz4NClRvIHNwZWNpZnkgYSB2YWx1ZSBmcm9tIGEgaGlkZGVuIGZpZWxkIHVzZSB0aGUgc3ludGF4IHskZmxkX2lkfTxici8+DQo8YnIvPic7CiRsYW5nWydoZWxwX25hbWVfcmVnZXgnXSA9ICdBIHJlZ3VsYXIgZXhwcmVzc2lvbiB0byBhbGxvdyBmaWx0ZXJpbmcgY2F0YWxvZ2VyIGl0ZW1zIGJ5IG5hbWUnOwokbGFuZ1snaGVscF9maWVsZF9oZWlnaHQnXSA9ICdUaGUgaGVpZ2h0IG9mIHRoZSBtdWx0aXNlbGVjdCBmaWVsZCc7CiRsYW5nWyd0aXRsZV9uYW1lX3JlZ2V4J10gPSAnQ2F0YWxvZ2VyIEl0ZW0gTmFtZSBSZWd1bGFyIEV4cHJlc3Npb24nOwokbGFuZ1sndGl0bGVfZmllbGRfaGVpZ2h0J10gPSAnRmllbGQgSGVpZ2h0JzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcGF0aCddID0gJ0Rlc3RpbmF0aW9uIERpcmVjdG9yeSBmb3Igb3V0cHV0IGZpbGVzJzsKJGxhbmdbJ3RpdGxlX3VkdF9uYW1lJ10gPSAnVXNlciBEZWZpbmVkIFRhZyc7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2Rlc3RwYWdlJ10gPSAnUGFnZSB0byByZXR1cm4gdG8gd2l0aCB1cGxvYWRzIGxpbmsnOwokbGFuZ1sndGl0bGVfdXBsb2FkbW9kdWxlX3N1bW1hcnknXSA9ICdTdWJtaXR0ZWQgd2l0aCBmb3JtYnVpbGRlcic7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2NhdGVnb3J5J10gPSAnVXBsb2FkcyBjYXRlZ29yeSc7CiRsYW5nWyd0aXRsZV9zZW5kdG9fdXBsb2FkcyddID0gJ1NlbmQgdGhpcyBmaWxlIHRvIHRoZSB1cGxvYWRzIG1vZHVsZSc7CiRsYW5nWyd0aXRsZV9sZWdlbmQnXSA9ICdMZWdlbmQnOwokbGFuZ1sndGl0bGVfbWF4aW11bV9sZW5ndGgnXSA9ICdNYXhpbXVtIExlbmd0aCc7CiRsYW5nWyd0aXRsZV9jaGVja2JveF9sYWJlbCddID0gJ0NoZWNrYm94IGxhYmVsJzsKJGxhbmdbJ3RpdGxlX3JhZGlvX2xhYmVsJ10gPSAnUmFkaW8gQnV0dG9uIGxhYmVsJzsKJGxhbmdbJ3RpdGxlX2NoZWNrZWRfdmFsdWUnXSA9ICdWYWx1ZSB3aGVuIGNoZWNrZWQnOwokbGFuZ1sndGl0bGVfdW5jaGVja2VkX3ZhbHVlJ10gPSAnVmFsdWUgd2hlbiBub3QgY2hlY2tlZC4nOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfZGV0YWlscyddID0gJ0NoZWNrYm94IEdyb3VwIERldGFpbHMnOwokbGFuZ1sndGl0bGVfZGVsZXRlJ10gPSAnRGVsZXRlPyc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rfb25lX21lc3NhZ2UnXSA9ICdBICZxdW90O0smZWFjdXRlO3JqJnV1bWw7aywgdiZhYWN1dGU7bGFzc3pvbiZxdW90OyBzeiZvdW1sO3ZlZ2UnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX3ZhbHVlJ10gPSAnU2VsZWN0aW9uIFZhbHVlJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl9kaXNwbGF5bmFtZSddID0gJ1NlbGVjdGlvbiBEaXNwbGF5IE5hbWUnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX3N1YmplY3QnXSA9ICdTZWxlY3Rpb24gU3ViamVjdCc7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9jb3VudHJ5J10gPSAnRGVmYXVsdCBTZWxlY3Rpb24nOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfc3RhdGUnXSA9ICdEZWZhdWx0IFNlbGVjdGlvbic7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9wcm92aW5jZSddID0gJ0RlZmF1bHQgU2VsZWN0aW9uJzsKJGxhbmdbJ3RpdGxlX29wdGlvbl9uYW1lJ10gPSAnT3B0aW9uIE5hbWUnOwokbGFuZ1sndGl0bGVfb3B0aW9uX3ZhbHVlJ10gPSAnVmFsdWUgU3VibWl0dGVkJzsKJGxhbmdbJ3RpdGxlX3B1bGxkb3duX2RldGFpbHMnXSA9ICdQdWxsZG93biBPcHRpb25zJzsKJGxhbmdbJ3RpdGxlX211bHRpc2VsZWN0X2RldGFpbHMnXSA9ICdNdWx0aXNlbGVjdCBPcHRpb25zJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2FkZHJlc3MnXSA9ICdEZXN0aW5hdGlvbiBFbWFpbCBBZGRyZXNzJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2ZpbGVuYW1lJ10gPSAnRGVzdGluYXRpb24gRmlsZSBOYW1lJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fbmFtZSddID0gJyZxdW90O0Zyb20gbmFtZSZxdW90OyBmb3IgZW1haWwnOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9lbWFpbF9yZWdleCddID0gJ1VzZSByZWxheGVkIGVtYWlsIHZhbGlkYXRpb24nOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9yZWdleF9sb25nJ10gPSAnVXNlIHJlbGF4ZWQgZW1haWwgYWRkcmVzcyB2YWxpZGF0aW9uIChlLmcuLCBhbGxvdyAmcXVvdDt4QHkmcXVvdDsgaW5zdGVhZCBvZiByZXF1aXJpbmcgJnF1b3Q7eEB5LnRsZCZxdW90OyknOwokbGFuZ1sndGl0bGVfZW1haWxfZnJvbV9hZGRyZXNzJ10gPSAnJnF1b3Q7RnJvbSBhZGRyZXNzJnF1b3Q7IGZvciBlbWFpbCc7CiRsYW5nWyd0aXRsZV9lbWFpbF9lbmNvZGluZyddID0gJ0VtYWlsIGNoYXJhY3RlciBzZXQgZW5jb2RpbmcnOwokbGFuZ1sndGl0bGVfZGlyZWN0b3JfZGV0YWlscyddID0gJ1B1bGxkb3duLWJhc2VkIEVtYWlsZXIgRGV0YWlscyc7CiRsYW5nWyd0aXRsZV9maWxlX25hbWUnXSA9ICdGaWxlIE5hbWUnOwokbGFuZ1sndGl0bGVfZW1haWxfc3ViamVjdCddID0gJ0VtYWlsIFN1YmplY3QgTGluZSc7CiRsYW5nWyd0aXRsZV9mb3JtX25hbWUnXSA9ICdGb3JtIE5hbWUnOwokbGFuZ1sndGl0bGVfZm9ybV9zdGF0dXMnXSA9ICdGb3JtIFN0YXR1cyc7CiRsYW5nWyd0aXRsZV9yZWFkeV9mb3JfZGVwbG95bWVudCddID0gJ1JlYWR5IGZvciBEZXBsb3ltZW50JzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTEnXSA9ICdOb3QgUmVhZHknOwokbGFuZ1sndGl0bGVfcmVkaXJlY3RfcGFnZSddID0gJ1BhZ2UgdG8gcmVkaXJlY3QgdG8gYWZ0ZXIgZm9ybSBzdWJtaXNzaW9uJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTInXSA9ICdQbGVhc2UgYWRkIGEgZmllbGQgdG8gdGhlIGZvcm0gc28gdGhhdCB0aGUgdXNlciYjMDM5O3MgaW5wdXQgZ2V0cyBoYW5kbGVkLiBZb3UgY2FuJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeV9saW5rJ10gPSAndXNlIHRoaXMgc2hvcnRjdXQnOwokbGFuZ1sndGl0bGVfZm9ybV9hbGlhcyddID0gJ0Zvcm0gQWxpYXMnOwokbGFuZ1sndGl0bGVfZm9ybV9maWVsZHMnXSA9ICdGb3JtIEZpZWxkcyc7CiRsYW5nWyd0aXRsZV9maWVsZF9pZCddID0gJ0ZpZWxkIElkJzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRhbGlhc2VzJ10gPSAnU2hvdyBGaWVsZCBBbGlhc2VzJzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRhbGlhc2VzX2xvbmcnXSA9ICdDbGlja2luZyB0aGlzIHdpbGwgZGlzcGxheSBmaWVsZCBhbGlhc2VzIHdoZW4gYWRkaW5nIG9yIGVkaXRpbmcgYSBmb3JtJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX25hbWUnXSA9ICdGaWVsZCBOYW1lJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2FsaWFzJ10gPSAnRmllbGQgQWxpYXMnOwokbGFuZ1sndGl0bGVfcmFkaW9ncm91cF9kZXRhaWxzJ10gPSAnUmFkaW8gQnV0dG9uIEdyb3VwIERldGFpbHMnOwokbGFuZ1sndGl0bGVfZmllbGRfdHlwZSddID0gJ0ZpZWxkIFR5cGUnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MyddID0gJ3RvIGNyZWF0ZSBhIGZvcm0gaGFuZGxpbmcgZmllbGQuJzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZm9ybSddID0gJ0FkZCBOZXcgRm9ybSc7CiRsYW5nWyd0aXRsZV9zaG93X3ZlcnNpb24nXSA9ICdTaG93IEZvcm0gQnVpbGRlciBWZXJzaW9uPyc7CiRsYW5nWyd0aXRsZV9zaG93X3ZlcnNpb25fbG9uZyddID0gJ1RoaXMgd2lsbCBlbWJlZCB5b3VyIGluc3RhbGxlZCB2ZXJzaW9uIG51bWJlciBvZiBGb3JtIEJ1aWxkZXIgbW9kdWxlIGluIGEgY29tbWVudCwgdG8gYWlkIGluIGRlYnVnZ2luZyc7CiRsYW5nWyd0aXRsZV9hZGRfbmV3X2ZpZWxkJ10gPSAnQWRkIE5ldyBGaWVsZCc7CiRsYW5nWyd0aXRsZV9mb3JtX3N1Ym1pdF9idXR0b24nXSA9ICdGb3JtIFN1Ym1pdCBCdXR0b24gVGV4dCc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eSddID0gJ0FkZCBKYXZhc2NyaXB0IHRvIGZpbmFsIFN1Ym1pdCBCdXR0b24gdGhhdCB3aWxsIGhlbHAgcHJldmVudCBtdWx0aXBsZSBzdWJtaXNzaW9ucz8nOwokbGFuZ1sndGl0bGVfc3VibWl0X2J1dHRvbl9zYWZldHlfaGVscCddID0gJ0FkZCBzYWZldHkgc2NyaXB0JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmV4dF9idXR0b24nXSA9ICdGb3JtICZxdW90O05leHQmcXVvdDsgQnV0dG9uIFRleHQgKHVzZWQgZm9yIG11bHRpcGFnZSBmb3JtcyknOwokbGFuZ1sndGl0bGVfZm9ybV9wcmV2X2J1dHRvbiddID0gJ0Zvcm0gJnF1b3Q7UHJldmlvdXMmcXVvdDsgQnV0dG9uIFRleHQgKHVzZWQgZm9yIG11bHRpcGFnZSBmb3JtcyknOwokbGFuZ1sndGl0bGVfZmllbGRfdmFsaWRhdGlvbiddID0gJ0ZpZWxkIFZhbGlkYXRpb24nOwokbGFuZ1sndGl0bGVfZmllbGRfdG9fdmFsaWRhdGUnXSA9ICdGaWVsZCB0byBWYWxpZGF0ZSc7CiRsYW5nWyd0aXRsZV9mb3JtX2Nzc19jbGFzcyddID0gJ0NTUyBDbGFzcyBmb3IgdGhpcyBmb3JtJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2Nzc19jbGFzcyddID0gJ0NTUyBDbGFzcyBmb3IgdGhpcyBmaWVsZCc7CiRsYW5nWyd0aXRsZV9mb3JtX3ByZWRpc3BsYXlfdWR0J10gPSAnVXNlciBkZWZpbmVkIHRhZyB0byBjYWxsIGJlZm9yZSBmb3JtIGlzIGRpc3BsYXllZCc7CiRsYW5nWyd0aXRsZV9mb3JtX3JlcXVpcmVkX3N5bWJvbCddID0gJ1N5bWJvbCB0byBtYXJrIHJlcXVpcmVkIEZpZWxkcyc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZCddID0gJ1JlcXVpcmVkJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2xvbmcnXSA9ICdSZXF1aXJlIGEgcmVzcG9uc2UgZm9yIHRoaXMgRmllbGQnOwokbGFuZ1sndGl0bGVfaGlkZV9sYWJlbCddID0gJ0hpZGUgTGFiZWwnOwokbGFuZ1sndGl0bGVfaGlkZV9sYWJlbF9sb25nJ10gPSAnSGlkZSB0aGlzIGZpZWxkJiMwMzk7cyBuYW1lIG9uIEZvcm0nOwokbGFuZ1sndGl0bGVfdGV4dCddID0gJ1N0YXRpYyB0ZXh0IHRvIGRpc3BsYXknOwokbGFuZ1sndGl0bGVfZmllbGRfcmVnZXgnXSA9ICdWYWxpZGF0aW9uIFJlZ2V4JzsKJGxhbmdbJ3RpdGxlX2xpbmVzX3RvX3Nob3cnXSA9ICdOdW1iZXIgb2YgTGluZXMgdG8gZGlzcGxheSc7CiRsYW5nWydub19kZWZhdWx0J10gPSAnTm8gRGVmYXVsdCc7CiRsYW5nWydyZWRpcmVjdF9hZnRlcl9hcHByb3ZhbCddID0gJ1BhZ2UgdG8gcmVkaXJlY3QgYWZ0ZXIgYXBwcm92YWwnOwokbGFuZ1sndGl0bGVfcmVnZXhfaGVscCddID0gJ1RoaXMgcmVndWxhciBleHByZXNzaW9uIHdpbGwgb25seSBiZSB1c2VkIGlmICZxdW90O3ZhbGlkYXRpb24gdHlwZSZxdW90OyBpcyBzZXQgdG8gYSByZWdleC1yZWxhdGVkIG9wdGlvbi4gSW5jbHVkZSBhIGZ1bGwgUGVybC1zdHlsZSByZWdleCwgaW5jbHVkaW5nIHRoZSBzdGFydC9zdG9wIHNsYXNoZXMgYW5kIGZsYWdzIChlLmcuLCAmcXVvdDsvaW1hZ2VcLihcZCspL2kmcXVvdDspJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2FiYnJldiddID0gJ1JlcSYjMDM5O2QnOwokbGFuZ1sndGl0bGVfaGlkZV9lcnJvcnMnXSA9ICdIaWRlIEVycm9ycyc7CiRsYW5nWyd0aXRsZV9mb3JtX2Rpc3BsYXl0eXBlJ10gPSAnRm9ybSBEaXNwbGF5IFR5cGUnOwokbGFuZ1sndGl0bGVfaGlkZV9lcnJvcnNfbG9uZyddID0gJ1ByZXZlbnQgZGVidWcgLyBlcnJvciBtZXNzYWdlcyBmcm9tIGJlaW5nIHNlZW4gYnkgdXNlcnMuJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX3RlbXBsYXRlJ10gPSAnRW1haWwgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfbWF4aW11bV9zaXplJ10gPSAnTWF4aW11bSB1cGxvYWQgZmlsZSBzaXplIChraWxvYnl0ZXMpJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZV9sb25nJ10gPSAnVGhpcyBsaW1pdGF0aW9uIGlzIGluIGFkZGl0aW9uIHRvIGFueSBsaW1pdHMgc2V0IGJ5IHRoZSBwaHAgb3Igd2ViIHNlcnZlciBjb25maWd1cmF0aW9uJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zJ10gPSAnUGVybWl0dGVkIEV4dGVuc2lvbnMnOwokbGFuZ1sndGl0bGVfcGVybWl0dGVkX2V4dGVuc2lvbnNfbG9uZyddID0gJ0VudGVyIGEgY29tbWEtc2VwYXJhdGVkIGxpc3QsIGV4Y2x1ZGluZyB0aGUgZG90IChlLmcuLCAmcXVvdDtqcGcsZ2lmLGpwZWcmcXVvdDspLiBTcGFjZXMgd2lsbCBiZSBpZ25vcmVkLiBMZWF2aW5nIHRoaXMgYmxhbmsgbWVhbnMgdGhlcmUgd2lsbCBiZSBubyByZXN0cmljdGlvbnMuJzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnMnXSA9ICdEaXNwbGF5IHJlc3RyaWN0aW9ucz8nOwokbGFuZ1sndGl0bGVfc2hvd19saW1pdGF0aW9uc19sb25nJ10gPSAnRGlzcGxheSBhbnkgc2l6ZSBhbmQgZXh0ZW5zaW9uIHJlc3RyaWN0aW9ucyB3aXRoIHRoZSB1cGxvYWQgZmllbGQ/JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSB0byB1c2UgdG8gRGlzcGxheSBGb3JtJzsKJGxhbmdbJ3RpdGxlX3BhZ2VfeF9vZl95J10gPSAnUGFnZSAlcyBvZiAlcyc7CiRsYW5nWyd0aXRsZV9ub19hZHZhbmNlZF9vcHRpb25zJ10gPSAnRmllbGQgaGFzIG5vIGFkdmFuY2VkIG9wdGlvbnMuJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdW5zcGVjaWZpZWQnXSA9ICdUZXh0IHRvIHJldHVybiBmb3IgdW5zcGVjaWZpZWQgZmllbGQgdmFsdWVzJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9mYXN0YWRkX2xvbmcnXSA9ICdFbmFibGUgZmFzdCBmaWVsZCBhZGRpbmcgcHVsbGRvd24gZm9yIGZvcm1zPyc7CiRsYW5nWyd0aXRsZV9lbmFibGVfZmFzdGFkZCddID0gJ0VuYWJsZSBmYXN0IGZpZWxkIGFkZCBwdWxsZG93bj8nOwokbGFuZ1sndGl0bGVfZmFzdGFkZCddID0gJ0Zhc3QgZmllbGQgYWRkZXInOwokbGFuZ1sndGl0bGVfZW5hYmxlX2FudGlzcGFtX2xvbmcnXSA9ICdDbGlja2luZyB0aGlzIHdpbGwgb25seSBhbGxvdyAxMCBlbWFpbHMgdG8gYmUgdHJpZ2dlcmVkIGZyb20gYSBnaXZlbiBJUCBhZGRyZXNzIChwZXIgaG91cikuJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9hbnRpc3BhbSddID0gJ0VuYWJsZSBwcmltaXRpdmUgYW50aS1zcGFtIGZlYXR1cmVzPyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkaWRzJ10gPSAnU2hvdyBGaWVsZCBJRHMnOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGlkc19sb25nJ10gPSAnQ2xpY2tpbmcgdGhpcyB3aWxsIGFsbG93IGRpc3BsYXlpbmcgZmllbGQgaWRzIHdoZW4gYWRkaW5nIG9yIGVkaXRpbmcgYSBmb3JtJzsKJGxhbmdbJ3RpdGxlX3htbF90b191cGxvYWQnXSA9ICdVcGxvYWQgZm9ybSBmcm9tIFhNTCBmaWxlJzsKJGxhbmdbJ3RpdGxlX3htbF91cGxvYWRfZm9ybW5hbWUnXSA9ICdVc2UgdGhpcyBmb3JtIG5hbWUnOwokbGFuZ1sndGl0bGVfaW1wb3J0X2xlZ2VuZCddID0gJ1hNTCBGb3JtIEltcG9ydCc7CiRsYW5nWyd0aXRsZV94bWxfdXBsb2FkX2Zvcm1hbGlhcyddID0gJ1VzZSB0aGlzIGZvcm0gYWxpYXMnOwokbGFuZ1sndGl0bGVfaHRtbF9lbWFpbCddID0gJ0dlbmVyYXRlIEhUTUwgZW1haWw/JzsKJGxhbmdbJ3RpdGxlX2xpbmtfYXV0b3BvcHVsYXRlJ10gPSAnQXV0b21hdGljYWxseSBwb3B1bGF0ZT8nOwokbGFuZ1sndGl0bGVfbGlua19hdXRvcG9wdWxhdGVfaGVscCddID0gJ0F1dG9tYXRpY2FsbHkgcG9wdWxhdGUgd2l0aCB0aGUgVVJMIG9mIHRoZSBwYWdlIGNvbnRhaW5pbmcgdGhlIGZvcm0/ICh0aGlzIG92ZXJyaWRlcyBzaXRlIHBhZ2UgbGluayBvcHRpb24gYmVsb3cpJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfbGluayddID0gJ0RlZmF1bHQgbGluayBVUkwnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9saW5rX3RpdGxlJ10gPSAnRGVmYXVsdCBsaW5rIHRleHQnOwokbGFuZ1sndGl0bGVfbGlua190b19zaXRlcGFnZSddID0gJ0xpbmsgdG8gc2l0ZSBwYWdlJzsKJGxhbmdbJ3RpdGxlX2NhcHRjaGFfbm90X2luc3RhbGxlZCddID0gJ1lvdSBjYW4gdXNlIDxhIGhyZWY9Imh0dHA6Ly93d3cud2lraXBlZGlhLm9yZy93aWtpL0NhcHRjaGEiIHRhcmdldD0iX25ldyI+JnF1b3Q7Q2FwdGNoYSZxdW90OzwvYT4gdG8gcHJvdGVjdCBmb3JtIHN1Ym1pc3Npb25zIGlmIHlvdSBpbnN0YWxsIHRoZSBDYXB0Y2hhIG1vZHVsZS4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvY2FwdGNoYS8iPmNoZWNrIHRoZSBDYXB0Y2hhIHByb2plY3Q8L2E+Lic7CiRsYW5nWyd0aXRsZV91c2VfY2FwdGNoYSddID0gJ1VzZSBDYXB0Y2hhIHRvIHByb3RlY3QgZm9ybSBzdWJtaXNzaW9ucz8nOwokbGFuZ1sndGl0bGVfdXNlX2NhcHRjaGFfaGVscCddID0gJ0NoZWNrIGhlcmUgdG8gcHJvdGVjdCB5b3VyIGZvcm0gd2l0aCBhIDxhIGhyZWY9Imh0dHA6Ly93d3cud2lraXBlZGlhLm9yZy93aWtpL0NhcHRjaGEiIHRhcmdldD0iX25ldyI+JnF1b3Q7Q2FwdGNoYSZxdW90OzwvYT4uJzsKJGxhbmdbJ3RpdGxlX3VzZXJfY2FwdGNoYSddID0gJ1BsZWFzZSBjb25maXJtIHRoYXQgeW91IGFyZSBub3QgYSBzY3JpcHQgYnkgZW50ZXJpbmcgdGhlIGxldHRlcnMgZnJvbSB0aGUgaW1hZ2UuJzsKJGxhbmdbJ3RpdGxlX3VzZXJfY2FwdGNoYV9lcnJvciddID0gJ0ZhaWxlZCB0ZXh0IGZvciBDYXB0Y2hhJzsKJGxhbmdbJ3dyb25nX2NhcHRjaGEnXSA9ICdDYXB0Y2hhIHdhcyBub3QgY29ycmVjdC4nOwokbGFuZ1sndGl0bGVfdGl0bGVfdXNlcl9jYXB0Y2hhJ10gPSAnSGVscCB0ZXh0IGZvciBDYXB0Y2hhJzsKJGxhbmdbJ3RpdGxlX2RvbnRfc3VibWl0X3VuY2hlY2tlZCddID0gJ0RvbiYjMDM5O3Qgc3VibWl0IHZhbHVlcyBmb3IgdW5jaGVja2VkIGJveGVzJzsKJGxhbmdbJ3RpdGxlX2RvbnRfc3VibWl0X3VuY2hlY2tlZF9oZWxwJ10gPSAnQ2hlY2sgdGhpcyBpZiB5b3Ugb25seSB3YW50IGNoZWNrZWQgYm94ZXMgdG8gcmV0dXJuIHZhbHVlcy4nOwokbGFuZ1snbGlua19sYWJlbCddID0gJ0xpbmsgTGFiZWwnOwokbGFuZ1snbGlua19kZXN0aW5hdGlvbiddID0gJ0xpbmsgRGVzdGluYXRpb24gVVJMJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfc2V0J10gPSAnQ2hlY2tlZCBieSBEZWZhdWx0Pyc7CiRsYW5nWyd0aXRsZV8yNF9ob3VyJ10gPSAnVXNlIDI0LWhvdXIgY2xvY2s/JzsKJGxhbmdbJ3RpdGxlX2JlZm9yZV9ub29uJ10gPSAnZGUuJzsKJGxhbmdbJ3RpdGxlX2FmdGVyX25vb24nXSA9ICdkdS4nOwokbGFuZ1sndGl0bGVfc21hcnR5X2V2YWwnXSA9ICdQcm9jZXNzIHNtYXJ0eSB0YWdzIHdpdGhpbiBmaWVsZD8nOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfcm93cyddID0gJ1Jvd3MgKG5vdGU6IHRoaXMgbWF5IGJlIG92ZXJyaWRkZW4gYnkgQ1NTKSc7CiRsYW5nWyd0aXRsZV90ZXh0YXJlYV9jb2xzJ10gPSAnQ29sdW1ucyAobm90ZTogdGhpcyBtYXkgYmUgb3ZlcnJpZGRlbiBieSBDU1MpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbWFpbiddID0gJ01haW4gRm9ybSBEZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcm5hbWUnXSA9ICdEaXNwbGF5IFVzZXImIzAzOTtzIGxvZ2luIG5hbWU/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcmZpcnN0bmFtZSddID0gJ0Rpc3BsYXkgVXNlciYjMDM5O3MgZmlyc3QgbmFtZT8nOwokbGFuZ1sndGl0bGVfc2hvd191c2VybGFzdG5hbWUnXSA9ICdEaXNwbGF5IFVzZXImIzAzOTtzIGxhc3QgbmFtZT8nOwokbGFuZ1sndGl0bGVfcmVzdHJpY3RfdG9fZ3JvdXAnXSA9ICdSZXN0cmljdCB1c2VyIGxpc3QgdG8gdXNlcnMgaW4gc3BlY2lmaWVkIGdyb3VwJzsKJGxhbmdbJ3Jlc3RyaWN0ZWRfdG9fZ3JvdXAnXSA9ICdPbmx5IGluIGdyb3VwICVzJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdG9fdXNlciddID0gJ0Rpc3BsYXkgdG8gdXNlcj8nOwokbGFuZ1snaGVscF9sZWF2ZWVtcHR5J10gPSAnVGhpcyBmaWVsZCBtYXkgYmUgbGVmdCBlbXB0eSc7CiRsYW5nWydoZWxwX3ZhcmlhYmxlc19mb3JfdGVtcGxhdGUnXSA9ICdWYXJpYWJsZXMgRm9yIFRlbXBsYXRlJzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVzX2Zvcl9jb21wdXRhdGlvbiddID0gJ1ZhcmlhYmxlcyBBdmFpbGFibGUnOwokbGFuZ1snaGVscF9waHBfdmFyaWFibGVfbmFtZSddID0gJ1BIUCB2YXJpYWJsZSc7CiRsYW5nWydoZWxwX3N1Ym1pc3Npb25fZGF0ZSddID0gJ0RhdGUgb2YgU3VibWlzc2lvbic7CiRsYW5nWydoZWxwX3NlcnZlcl9uYW1lJ10gPSAnWW91ciBzZXJ2ZXInOwokbGFuZ1snaGVscF9zdWJfc291cmNlX2lwJ10gPSAnSVAgYWRkcmVzcyBvZiBwZXJzb24gdXNpbmcgZm9ybSc7CiRsYW5nWydoZWxwX3N1Yl91cmwnXSA9ICdVUkwgb2YgcGFnZSBjb250YWluaW5nIGZvcm0nOwokbGFuZ1snaGVscF9mYl92ZXJzaW9uJ10gPSAnRm9ybUJ1aWxkZXIgdmVyc2lvbic7CiRsYW5nWydoZWxwX3RhYiddID0gJ1RhYiBDaGFyYWN0ZXInOwokbGFuZ1snaGVscF9vdGhlcl9maWVsZHMnXSA9ICdBbHRlcm5hdGUgZmllbGQgbmFtZXMgY2FuIGJlIHVzZWQgaW50ZXJjaGFuZ2VhYmx5IChlc3BlY2lhbGx5IHVzZWZ1bCBpZiBTbWFydHkgaXMgY2hva2luZyBvbiBjaGFyYWN0ZXJzIG91dHNpZGUgb2YgQVNDSUkgMzItMTI2KS4gPGJyIC8+T3RoZXIgZmllbGRzIHdpbGwgYmUgYXZhaWxhYmxlIGFzIHlvdSBhZGQgdGhlbSB0byB0aGUgZm9ybS4nOwokbGFuZ1snaGVscF9hcnJheV9maWVsZHMnXSA9ICdZZXQgYW5vdGhlciB3YXkgb2YgYWNjZXNzaW5nIGZpZWxkIHZhbHVlcyBpcyB2aWEgJGZpZWxkbmFtZV9vYmosICRhbGlhc19vYmosIG9yICRmbGRfI19vYmosIHdoZXJlIGVhY2ggZmllbGQgaXMgYW4gb2JqZWN0IGNvbnRhaW5naW5nOjxiciAvPjx0YWJsZT4NCjx0cj48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7Pm5hbWU8L3RkPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+RmllbGQgTmFtZTwvdGQ+PC90cj4NCjx0cj48dGQ+dHlwZTwvdGQ+PHRkPkZpZWxkIFR5cGU8L3RkPjwvdHI+DQo8dHI+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz5pZDwvdGQ+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz5JbnRlcm5hbCBGaWVsZCBJRDwvdGQ+PC90cj4NCjx0cj48dGQ+dmFsdWU8L3RkPjx0ZD5IdW1hbi1yZWFkYWJsZSBWYWx1ZTwvdGQ+PC90cj4NCjx0cj48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7PnZhbHVlQXJyYXk8L3RkPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+QXJyYXkgb2YgZmllbGQgdmFsdWUocyk8L3RkPjwvdHI+PC90YWJsZT48ZW0+ZS5nLjwvZW0+LCB5b3UgY291bGQgdXNlICZxdW90O3skZmxkXzFfb2JqLT5uYW1lfSA9IHskZmxkXzFfb2JqLT52YWx1ZX0nOwokbGFuZ1snaGVscF9kYXRlX2Zvcm1hdCddID0gJ1NlZSA8YSBocmVmPSJodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwIiB0YXJnZXQ9X05FVz50aGUgUEhQIE1hbnVhbDwvYT4gZm9yIGZvcm1hdHRpbmcgaGVscC4nOwokbGFuZ1snaGVscF92YXJpYWJsZV9uYW1lJ10gPSAnVmFyaWFibGUnOwokbGFuZ1snaGVscF9mb3JtX2ZpZWxkJ10gPSAnRmllbGQgUmVwcmVzZW50ZWQnOwokbGFuZ1snbGlua19iYWNrX3RvX2Zvcm0nXSA9ICcmbGFxdW87IEJhY2sgdG8gRm9ybSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX3RlbXBsYXRlJ10gPSAnQ3JlYXRlIFNhbXBsZSBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2h0bWxfdGVtcGxhdGUnXSA9ICdDcmVhdGUgU2FtcGxlIEhUTUwgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9oZWFkZXJfdGVtcGxhdGUnXSA9ICdDcmVhdGUgU2FtcGxlIEhlYWRlciBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2hlYWRlciddID0gJ0NyZWF0ZSBTYW1wbGUgSGVhZGVyJzsKJGxhbmdbJ2hlbHBfdGFiX3N5bWJvbCddID0gJ2EgdGFiIGNoYXJhY3Rlcic7CiRsYW5nWyd0aXRsZV9maWxlX3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgZm9yIG9uZSBsaW5lIG9mIG91dHB1dCBmaWxlJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfaGVhZGVyJ10gPSAnVGVtcGxhdGUgZm9yIHRoZSBoZWFkZXIgb2Ygb3V0cHV0IGZpbGUnOwokbGFuZ1sndGl0bGVfY29uZmlybWF0aW9uX3VybCddID0gJ1VSTCB0byBjbGljayBmb3IgZm9ybSBjb25maXJtYXRpb24nOwokbGFuZ1sndGl0bGVfdmFsdWUnXSA9ICdWYWx1ZSAoc2VlIEFkdmFuY2VkIFRhYiBpZiB5b3UgdXNlIFNtYXJ0eSB0YWdzKSc7CiRsYW5nWyd0aXRsZV9kYXRlX2Zvcm1hdCddID0gJ0RhdGUgRm9ybWF0IChzdGFuZGFyZCA8YSBocmVmPSJodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwIj5QSFAgRGF0ZSBGb3JtYXRzPC9hPiknOwokbGFuZ1sndGl0bGVfdXNlX3d5c2l3eWcnXSA9ICdVc2UgV1lTSVdZRyBlZGl0b3IgZm9yIHRleHQgQXJlYSAoQWRtaW4gc2lkZSBvbmx5KT8nOwokbGFuZ1sndGl0bGVfc3VibWl0X2FjdGlvbnMnXSA9ICdGb3JtIFN1Ym1pc3Npb24gQmVoYXZpb3InOwokbGFuZ1sndGl0bGVfc3VibWl0X2xhYmVscyddID0gJ1N1Ym1pc3Npb24gQnV0dG9uIExhYmVscyc7CiRsYW5nWyd0aXRsZV9zb3J0YWJsZV9maWVsZCddID0gJ1NvcnRhYmxlIEZpZWxkICMlcyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfaGVscCddID0gJ1RoaXMgcGFnZSBsZXRzIHlvdSBjdXN0b21pemUgRm9ybSBTdWJtaXNzaW9uLiBJdCBkb2VzbiYjMDM5O3QgZGV0ZXJtaW5lIHdoYXQgdGhlIEZvcm0gQnVpbGRlciBkb2VzIHdpdGggdGhlIHN1Ym1pdHRlZCBkYXRhLiBZb3UgY2FuIHNldCB0aGF0IHVwIGJ5IGFkZGluZyAmcXVvdDtEaXNwb3NpdGlvbiZxdW90OyBmaWVsZHMgdG8geW91ciBmb3JtLic7CiRsYW5nWyd0aXRsZV9zdGFydF95ZWFyJ10gPSAnWWVhciByYW5nZSBzdGFydCc7CiRsYW5nWyd0aXRsZV9lbmRfeWVhciddID0gJ1llYXIgcmFuZ2UgZW5kJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfeWVhciddID0gJ0RlZmF1bHQgWWVhcic7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3llYXJfaGVscCddID0gJyhTZXQgdG8gLTEgZm9yIGRlZmF1bHQgeWVhciB0byBiZSB0aGUgY3VycmVudCB5ZWFyKSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYWN0aW9uJ10gPSAnQWZ0ZXIgZm9ybSBpcyBzdWJtaXR0ZWQnOwokbGFuZ1sndGl0bGVfc3VibWl0X3Jlc3BvbnNlJ10gPSAnUmVzcG9uc2UgdG8gZGlzcGxheSc7CiRsYW5nWydkaXNwbGF5X3RleHQnXSA9ICdEaXNwbGF5ICZxdW90O1N1Ym1pc3Npb24gVGVtcGxhdGUmcXVvdDsnOwokbGFuZ1sncmVkaXJlY3RfdG9fcGFnZSddID0gJ1JlZGlyZWN0IHRvIHNpdGUgcGFnZSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfcmVzcG9uc2VfaGVscCddID0gJ1RoaXMgdGVtcGxhdGUgaXMgZm9yIGRpc3BsYXkgdG8gdGhlIHVzZXIgYWZ0ZXIgdGhlIGZvcm0gaXMgc3VibWl0dGVkLiBUaGlzIHRlbXBsYXRlIGRvZXMgbm90IGVmZmVjdCBlbWFpbHMgZ2VuZXJhdGVkIG9yIG90aGVyIGZvcm0gZGlzcG9zaXRpb25zIC0tIHlvdSBzZXQgdGhvc2UgdGVtcGxhdGVzICh3aGVyZSBhcHByb3ByaWF0ZSkgaW4gdGhlICZxdW90O2FkdmFuY2VkJnF1b3Q7IHRhYiBmb3IgdGhvc2UgZGlzcG9zaXRpb24gZmllbGRzLic7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9wYWdlJ10gPSAnRGVzdGluYXRpb24gUGFnZSc7CiRsYW5nWyd0aXRsZV9yZXF1aXJlX2ZpZWxkbmFtZXMnXSA9ICdSZXF1aXJlIEZpZWxkbmFtZXMnOwokbGFuZ1sndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzX2xvbmcnXSA9ICdSZXF1aXJlIGZpZWxkcyB0byBoYXZlIGEgbmFtZT8nOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXMnXSA9ICdSZXF1aXJlIFVuaXF1ZSBGaWVsZG5hbWVzJzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWVsZG5hbWVzX2xvbmcnXSA9ICdSZXF1aXJlIGZpZWxkcyB0byBoYXZlIHVuaXF1ZSBuYW1lcz8nOwokbGFuZ1sndGl0bGVfcmVvcmRlcl9mb3JtJ10gPSAnUmVvcmRlciBGaWVsZHMnOwokbGFuZ1sndGl0bGVfbG9hZF90ZW1wbGF0ZSddID0gJ0xvYWQgdGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfYWRkX2J1dHRvbl90ZXh0J10gPSAnQWRkIEJ1dHRvbiB0ZXh0JzsKJGxhbmdbJ3RpdGxlX2RlbF9idXR0b25fdGV4dCddID0gJ0RlbGV0ZSBCdXR0b24gdGV4dCc7CiRsYW5nWyd0aXRsZV9zdHJpbmdfb3JfbnVtYmVyX2V2YWwnXSA9ICdJbnRlcnByZXQgdmFyaWFibGVzIGFzIGJlaW5nIG51bWJlcnMgb3Igc3RyaW5ncyc7CiRsYW5nWyd0aXRsZV9vcmRlciddID0gJ0ludGVycHJldGF0aW9uIE9yZGVyJzsKJGxhbmdbJ3RpdGxlX29yZGVyX2hlbHAnXSA9ICdJZiBtb3JlIHRoYW4gb25lIENvbXB1dGVkIEZpZWxkIGV4aXN0cywgdGhleSB3aWxsIGJlIGNvbXB1dGVkIGZyb20gbG93ZXN0IG9yZGVyIG51bWJlciB0byBoaWdoZXN0IG9yZGVyIG51bWJlcic7CiRsYW5nWyd0aXRsZV9jb21wdXRlX3ZhbHVlJ10gPSAnVmFsdWUgdG8gY29tcHV0ZSc7CiRsYW5nWyd0aXRsZV9zdHJpbmcnXSA9ICdTeiZvdW1sO3ZlZyc7CiRsYW5nWyd0aXRsZV9udW1lcmljJ10gPSAnTnVtZXJpa3VzJzsKJGxhbmdbJ3RpdGxlX2lubGluZV9mb3JtJ10gPSAnRGlzcGxheSBmb3JtIGlubGluZT8nOwokbGFuZ1sndGl0bGVfaW5saW5lX2Zvcm1faGVscCddID0gJ0lubGluZSBtZWFucyBhbnkgZm9ybSBmb2xsb3d1cCByZXBsYWNlcyB0aGUge2Ntc19tb2R1bGV9IHRhZywgbm9uLWlubGluZSByZXBsYWNlcyB0aGUge2NvbnRlbnR9IHRhZy4nOwokbGFuZ1sndGl0bGVfZmllbGRfZGVmYXVsdF92YWx1ZSddID0gJ0RlZmF1bHQgdmFsdWUgZm9yIGZpZWxkJzsKJGxhbmdbJ3RpdGxlX2NsZWFyX2RlZmF1bHQnXSA9ICdDbGVhciBkZWZhdWx0IG9uIGNsaWNrPyc7CiRsYW5nWyd0aXRsZV9jbGVhcl9kZWZhdWx0X2hlbHAnXSA9ICdDaGVjayB0aGlzIHRvIGNsZWFyIHRoZSBkZWZhdWx0IHZhbHVlIHdoZW4gdGhlIHVzZXIgY2xpY2tzIHRoaXMgZmllbGQuIFNpbmNlIHRoaXMgdXNlcyBhIGphdmFzY3JpcHQgc3RyaW5nIGNvbXBhcmUsIGl0IHdpbGwgZmFpbCBpZiB5b3UgcHV0IHNpbmdsZSBxdW90ZXMgaW4geW91ciBkZWZhdWx0IHRleHQuIE90aGVyIHVuLWphdmFzY3JpcHQtZnJpZW5kbHkgY2hhcmFjdGVycyBtYXkgYWxzbyBjYXVzZSBpdCB0byBmYWlsLic7CiRsYW5nWyd0aXRsZV9yZW1vdmVfZmlsZV9mcm9tX3NlcnZlciddID0gJ0RlbGV0ZSB1cGxvYWRlZCBmaWxlIGZyb20gc2VydmVyIGFmdGVyIHByb2Nlc3NpbmcgKGVtYWlsIGRpc3Bvc2l0aW9ucyknOwokbGFuZ1sndGl0bGVfZmllbGRfamF2YXNjcmlwdCddID0gJ0phdmFzY3JpcHQgZm9yIGZpZWxkJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2phdmFzY3JpcHRfbG9uZyddID0gJ01ha2UgdGhpcyB0aGUgY29tcGxldGUgSmF2YXNjcmlwdCBjYWxsLCBpbmNsdWRpbmcgdGhlIGV2ZW50IHlvdSB3YW50IHRvIHRyYXAsIGUuZy4sIG9uY2xpY2s9JnF1b3Q7eW91cmZuKCkmcXVvdDsnOwokbGFuZ1sndGl0bGVfc3VibWl0X2phdmFzY3JpcHQnXSA9ICdGb3JtIFN1Ym1pc3Npb24gSmF2YXNjcmlwdCc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfamF2YXNjcmlwdF9sb25nJ10gPSAnTWFrZSB0aGlzIHRoZSBjb21wbGV0ZSBKYXZhc2NyaXB0IGNhbGwsIGluY2x1ZGluZyB0aGUgZXZlbnQgeW91IHdhbnQgdG8gdHJhcCwgZS5nLiwgb25jbGljaz0mcXVvdDt5b3VyZm4oKSZxdW90Oy48YnIgLz5UaGlzIHdpbGwgcHJvYmFibHkgbm90IHdvcmsgd2VsbCBpZiB5b3UgdXNlIHRoZSAmcXVvdDtzYWZldHkgc2NyaXB0JnF1b3Q7IG9wdGlvbiBhYm92ZS4nOwokbGFuZ1snZW1haWxfZnJvbV9hZGRyX2hlbHAnXSA9ICdEbyBub3QganVzdCBwaWNrIGEgcmFuZG9tIGFkZHJlc3MgaGVyZSAtLSBtYW55IElTUHMgd2lsbDxiciAvPm5vdCBkZWxpdmVyIHRoZSBtYWlsIGlmIHlvdSBhcmUgdXNpbmcgYSBkaWZmZXJlbnQgZG9tYWluIG5hbWUgdGhhbiB5b3VyIGFjdHVhbDxiciAvPmhvc3QgbmFtZSAoaS5lLiwgdXNlIHNvbWV0aGluZyBsaWtlIG5hbWVAJXMpJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9hZHZhbmNlZCddID0gJ05lZWQgbW9yZSBmaWVsZCB0eXBlcz8gJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9iYXNpYyddID0gJ1RvbyBtYW55IGNvbmZ1c2luZyBmaWVsZCB0eXBlcz8gJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9hZHZhbmNlZF9saW5rJ10gPSAnU3dpdGNoIHRvIEFkdmFuY2VkIE1vZGUnOwokbGFuZ1sndGl0bGVfc3dpdGNoX2Jhc2ljX2xpbmsnXSA9ICdTd2l0Y2ggdG8gU2ltcGxlIE1vZGUnOwokbGFuZ1sndGl0bGVfZmlsZV9yb290J10gPSAnRGlyZWN0b3J5IHRvIHNhdmUgZmlsZSBpbic7CiRsYW5nWyd0aXRsZV9maWxlX3Jvb3RfaGVscCddID0gJ1RoaXMgbmVlZHMgdG8gYmUgYSBkaXJlY3RvcnkgdGhhdCB5b3VyIHdlYiBzZXJ2ZXIgaGFzIHBlcm1pc3Npb25zIHRvIHdyaXRlIGluLjxiciAvPkNobW9kIGl0IDc3NyBpZiB5b3UgaGF2ZSBwcm9ibGVtcy9kb3VidHMuPGJyIC8+QWxzbywgY2hlY2sgdG8gc2VlIHRoYXQgeW91IGRvIG5vdCBoYXZlIFBIUCBkaXJlY3RvcnkgcmVzdHJpY3Rpb25zLic7CiRsYW5nWyd0aXRsZV9uZXdsaW5lX3JlcGxhY2VtZW50J10gPSAnTmV3bGluZS9DYXJyaWFnZSBSZXR1cm4gcmVwbGFjZW1lbnQgY2hhcmFjdGVyJzsKJGxhbmdbJ3RpdGxlX25ld2xpbmVfcmVwbGFjZW1lbnRfaGVscCddID0gJ0xlYXZlIGJsYW5rIHRvIGFsbG93IG5ld2xpbmVzIGFuZCBjYXJyaWFnZSByZXR1cm5zIGluIG91dHB1dCc7CiRsYW5nWyd0aXRsZV9zZW5kX3VzZXJjb3B5J10gPSAnU2VuZCBVc2VyIGEgQ29weSBvZiBTdWJtaXNzaW9uPyc7CiRsYW5nWyd0aXRsZV9zZW5kX3VzZXJjb3B5X2xhYmVsJ10gPSAnTGFiZWwgZm9yIENoZWNrYm94IChpZiB1c2VyIGNob2ljZSknOwokbGFuZ1sndGl0bGVfc2VuZF9tZV9hX2NvcHknXSA9ICdTZW5kIG1lIGEgY29weSBvZiBmb3JtJzsKJGxhbmdbJ3RpdGxlX2FsbG93X3N1YmplY3Rfb3ZlcnJpZGUnXSA9ICdBbGxvdyBzdWJqZWN0IHRvIGJlIG92ZXJyaWRkZW4/JzsKJGxhbmdbJ3RpdGxlX2FsbG93X3N1YmplY3Rfb3ZlcnJpZGVfbG9uZyddID0gJ0FsbG93ICYjMDM5O0VtYWlsICZxdW90O1N1YmplY3QmcXVvdDsgRmllbGRzJiMwMzk7IHRvIG92ZXJyaWRlIHRoZSBzdWJqZWN0IHNwZWNpZmllZCBpbiB0aGUgcHVsbGRvd24uJzsKJGxhbmdbJ29wdGlvbl9uZXZlciddID0gJ05ldmVyJzsKJGxhbmdbJ29wdGlvbl91c2VyX2Nob2ljZSddID0gJ0dpdmUgdXNlciBhIGNob2ljZSAoY2hlY2tib3gpJzsKJGxhbmdbJ29wdGlvbl9hbHdheXMnXSA9ICdBbHdheXMnOwokbGFuZ1snZXJyb3JfdXNlcnRhZ19kaXNwb3NpdGlvbiddID0gJ1VzZXIgZGVmaW5lZCB0YWcgcmV0dXJuZWQgYW4gZXJyb3InOwokbGFuZ1snZXJyb3JfY2F0YWxvZ2VyX21vZHVsZV9ub3RfYXZhaWxhYmxlJ10gPSAnPHN0cm9uZz5DYXRhbG9nZXIgbW9kdWxlIGRvZXMgbm90IHNlZW0gdG8gYmUgaW5zdGFsbGVkL2FjdGl2ZS48L3N0cm9uZz4nOwokbGFuZ1snd2FybmluZyddID0gJ1dBUk5JTkchJzsKJGxhbmdbJ2RlZmF1bHRfdGVtcGxhdGUnXSA9ICdEZWZhdWx0IFRlbXBsYXRlJzsKJGxhbmdbJ3RhYmxlX2xlZnRfdGVtcGxhdGUnXSA9ICdUYWJsZSBUZW1wbGF0ZSwgVGl0bGVzIG9uIGxlZnQnOwokbGFuZ1sndGFibGVfdG9wX3RlbXBsYXRlJ10gPSAnVGFibGUgVGVtcGxhdGUsIFRpdGxlIG9uIHRvcCc7CiRsYW5nWydmb3JtX3RlbXBsYXRlX25hbWUnXSA9ICdUZW1wbGF0ZSBmcm9tICVzJzsKJGxhbmdbJ3RlbXBsYXRlX2FyZV95b3Vfc3VyZSddID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBvdmVyd3JpdGUgeW91ciB0ZW1wbGF0ZSB3aXRoIHRoZSBzZWxlY3RlZCB0ZW1wbGF0ZT8gKEV2ZW4gaWYgeW91IHNheSBPSywgeW91IHdpbGwgc3RpbGwgbmVlZCB0byBzYXZlIHRoZSBjaGFuZ2UpJzsKJGxhbmdbJ3RpdGxlX2JhZF9mdW5jdGlvbiddID0gJ0Vycm9yIHdoZW4gY29tcHV0aW5nICZxdW90OyVzJnF1b3Q7Lic7CiRsYW5nWydub19yZWZlcnJlcl9pbmZvJ10gPSAnTm8gSFRUUF9SRUZFUkVSIGluZm8gYXZhaWxhYmxlIChwcm9iYWJseSBkdWUgdG8gdXNlIG9mIFVzZXIgRW1haWwgVmFsaWRhdGlvbiknOwokbGFuZ1sndmFsaWRhdGlvbl9wYXJhbV9lcnJvciddID0gJ1ZhbGlkYXRpb24gUGFyYW1ldGVyIEVycm9yLiBQbGVhc2UgbWFrZSBzdXJlIHlvdSBjb3B5IHRoZSBVUkwgZnJvbSB5b3VyIGVtYWlsIGNvcnJlY3RseSEnOwokbGFuZ1sndmFsaWRhdGlvbl9yZXNwb25zZV9lcnJvciddID0gJ1ZhbGlkYXRpb24gUmVwc29uc2UgRXJyb3IuIFBsZWFzZSBtYWtlIHN1cmUgeW91IGNvcHkgdGhlIFVSTCBmcm9tIHlvdXIgZW1haWwgY29ycmVjdGx5ISc7CiRsYW5nWyd2YWxpZGF0aW9uX25vX2ZpZWxkX2Vycm9yJ10gPSAnVmFsaWRhdGlvbiBSZXBzb25zZSBFcnJvci4gTm8gZW1haWwgdmFsaWRhdGlvbiBmaWVsZCBpbiB0aGlzIGZvcm0hJzsKJGxhbmdbJ3VwZ3JhZGUwM3RvMDQnXSA9ICdGb3JtIFRlbXBsYXRlIHdhcyB1cGRhdGVkIGF1dG9tYXRpY2FsbHkgYXMgcGFydCBvZiB0aGUgdmVyc2lvbiAwLjMgdG8gdmVyc2lvbiAwLjQgdXBncmFkZS4gWW91IG1heSBuZWVkIHRvIG1ha2Ugc29tZSBmaXhlcy4gSWYgeW91JiMwMzk7cmUgdXNpbmcgdGhlIGRlZmF1bHQgZm9ybSwgc2ltcGx5IHJlcGxhY2UgdGhpcyB0ZW1wbGF0ZSB3aXRoICZxdW90O2RlZmF1bHQmcXVvdDsgdXNpbmcgdGhlIHB1bGxkb3duIGFib3ZlLic7CiRsYW5nWydhZG1pbmRlc2MnXSA9ICdBZGQsIGVkaXQgYW5kIG1hbmFnZSBpbnRlcmFjdGl2ZSBGb3Jtcyc7CiRsYW5nWydvcGVyYXRvcnNfaGVscCddID0gJ0lmIHlvdSB1c2UgU3RyaW5nIGV2YWx1YXRpb24sIHRoZSBvbmx5IG9wZXJhdGlvbiBhdmFpbGFibGUgaXMgY29uY2F0ZW5hdGlvbiAoKyksIHdoaWxlIGlmIHlvdSB1c2UgTnVtYmVyIGV2YWx1YXRpb24geW91IGhhdmUgYmFzaWMsIHZlcnkgc2ltcGxlIG1hdGggKCwgKywgLSwgKiwgLywgKS4nOwokbGFuZ1snZGF0ZV9qYW51YXJ5J10gPSAnSmFudWFyeSc7CiRsYW5nWydkYXRlX2ZlYnJ1YXJ5J10gPSAnRmVicnVhcnknOwokbGFuZ1snZGF0ZV9tYXJjaCddID0gJ01hcmNoJzsKJGxhbmdbJ2RhdGVfYXByaWwnXSA9ICdBcHJpbCc7CiRsYW5nWydkYXRlX21heSddID0gJ01heSc7CiRsYW5nWydkYXRlX2p1bmUnXSA9ICdKdW5lJzsKJGxhbmdbJ2RhdGVfanVseSddID0gJ0p1bHknOwokbGFuZ1snZGF0ZV9hdWd1c3QnXSA9ICdBdWd1c3QnOwokbGFuZ1snZGF0ZV9zZXB0ZW1iZXInXSA9ICdTZXB0ZW1iZXInOwokbGFuZ1snZGF0ZV9vY3RvYmVyJ10gPSAnT2N0b2Jlcic7CiRsYW5nWydkYXRlX25vdmVtYmVyJ10gPSAnTm92ZW1iZXInOwokbGFuZ1snZGF0ZV9kZWNlbWJlciddID0gJ0RlY2VtYmVyJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3InXSA9ICdTb3JyeSEgVGhlcmUgd2FzIGFuIGVycm9yIGhhbmRsaW5nIHlvdXIgZm9ybSBzdWJtaXNzaW9uLic7CiRsYW5nWydzdWJtaXRfZXJyb3InXSA9ICdGb3JtQnVpbGRlciBzdWJtaXQgZXJyb3I6ICVzJzsKJGxhbmdbJ3VwbG9hZHNfZXJyb3InXSA9ICdFcnJvciBjb21taXR0aW5nIGZpbGUgdG8gdGhlIHVwbG9hZHMgbW9kdWxlOiAlcyc7CiRsYW5nWydub3VwbG9hZHNfZXJyb3InXSA9ICdDb3VsZCBub3QgZmluZCB0aGUgdXBsb2FkcyBtb2R1bGUnOwokbGFuZ1sndXBsb2FkX2F0dGFjaF9lcnJvciddID0gJ1VwbG9hZC9BdHRhY2htZW50IGVycm9yIG9uIGZpbGUgJXMgKHRtcF9uYW1lOiAlcywgb2YgdHlwZSAlcyknOwokbGFuZ1snc3VibWlzc2lvbl9lcnJvcl9maWxlX2xvY2snXSA9ICdFcnJvci4gVW5hYmxlIHRvIG9idGFpbiBsb2NrIGZvciBmaWxlLic7CiRsYW5nWyd1bmNoZWNrZWRfYnlfZGVmYXVsdCddID0gJ0RlZmF1bHQ6IHVuY2hlY2tlZCc7CiRsYW5nWydjaGVja2VkX2J5X2RlZmF1bHQnXSA9ICdEZWZhdWx0OiBjaGVja2VkJzsKJGxhbmdbJ2VtYWlsX2RlZmF1bHRfdGVtcGxhdGUnXSA9ICdGb3JtQnVpbGRlciBTdWJtaXNzaW9uJzsKJGxhbmdbJ2VtYWlsX3RlbXBsYXRlX25vdF9zZXQnXSA9ICc8YnIvPkVtYWlsIFRlbXBsYXRlIG5vdCB5ZXQgc2V0ISc7CiRsYW5nWydtaXNzaW5nX2Ntc19tYWlsZXInXSA9ICdGb3JtQnVpbGRlcjogQ2Fubm90IGZpbmQgcmVxdWlyZWQgbW9kdWxlIENNU01haWxlciEnOwokbGFuZ1sndXNlcl9hcHByb3ZlZF9zdWJtaXNzaW9uJ10gPSAnVXNlciBhcHByb3ZlZCBzdWJtaXNzaW9uICVzIGZyb20gJXMnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdCddID0gJ0V2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdEVycm9yJ10gPSAnRXZlbnQgdHJpZ2dlcmVkIGlmIHRoZXJlIGlzIGFuIGVycm9yIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZCc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtRGlzcGxheSddID0gJ0V2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBkaXNwbGF5ZWQnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdCddID0gJzxwPkV2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQuPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIFRoZSBmb3JtIG5hbWUgKHN0cmluZyk8L2xpPg0KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBUaGUgaW50ZXJuYWwgZm9ybSBpZCAoaW50KTwvbGk+DQo8bGk+PGVtPnZhbHVlXzxuYW1lPjwvZW0+IC0gU3VwcGx5IGEgZGVmYXVsdCB2YWx1ZSB0byBhIGZpZWxkIHdpdGggdGhlIHNwZWNpZmllZCBuYW1lLjwvbGk+DQo8L3VsPiAnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdEVycm9yJ10gPSAnPHA+RXZlbnQgdHJpZ2dlcmVkIGlmIHRoZXJlIGlzIGFuIGVycm9yIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZDwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBUaGUgZm9ybSBuYW1lIChzdHJpbmcpPC9saT4NCjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gVGhlIGludGVybmFsIGZvcm0gaWQgKGludCk8L2xpPg0KPGxpPjxlbT5lcnJvcjwvZW0+IC0gQSBsaXN0IG9mIGFsbCBrbm93biBlcnJvcnMgKHN0cmluZyk8L2xpPg0KPC91bD4gJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1EaXNwbGF5J10gPSAnPHA+RXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIGRpc3BsYXllZDwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBUaGUgZm9ybSBuYW1lIChzdHJpbmcpPC9saT4NCjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gVGhlIGludGVybmFsIGZvcm0gaWQgKGludCk8L2xpPg0KPC91bD4gJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19yZXNwb25zZV9pZCddID0gJ1Jlc3BvbnNlIElELiBVc2VkIGJ5IEZvcm1Ccm93c2VyJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19wYXNzZWRfZnJvbV90YWcnXSA9ICdEZWZhdWx0IGZpZWxkIHZhbHVlczsgc2VlIG1vZHVsZSBoZWxwJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19maWVsZF9pZCddID0gJ0ZpZWxkIElEIGZvciBpbnRlcm5hbCBvcGVyYXRpb25zJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19mb3JtX25hbWUnXSA9ICdGb3JtIE5hbWUnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2Zvcm1faWQnXSA9ICdGb3JtIElEIGZvciBpbnRlcm5hbCBvcGVyYXRpb25zJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19nZW5lcmFsJ10gPSAnR2VuZXJhbCBwYXJhbWV0ZXJzIGZvciBpbnRlcm5hbCBvcGVyYXRpb25zJzsKJGxhbmdbJ3RlbXBsYXRlX3ZhcmlhYmxlX2hlbHAnXSA9ICc8aDM+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+PHRkPnRoZSBJRCBvZiB0aGUgZmllbGQmIzAzOTtzIGlucHV0ICh1c2VmdWwgZm9yIGxhYmVsIGZvcj0mcXVvdDtmb28mcXVvdDspPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+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+DQonOwokbGFuZ1sncG9zdF9pbnN0YWxsJ10gPSAnPGJyIC8+TWFrZSBzdXJlIHRvIHNldCB0aGUgJnF1b3Q7TW9kaWZ5IEZvcm1zJnF1b3Q7IHBlcm1pc3Npb25zDQpvbiB1c2VycyB3aG8gd2lsbCBiZSBhZG1pbmlzdGVyaW5nIGZlZWRiYWNrIGZvcm1zLiBBbHNvLCBpZiB5b3UmIzAzOTtsbCBiZSBlbWFpbGluZyBmb3JtDQpyZXN1bHRzLCBiZSBzdXJlIHRvIHVwZGF0ZSB0aGUgQ29uZmlndXJhdGlvbiBhcHByb3ByaWF0ZWx5LjxiciAvPg0KUGxlYXNlIGJlIGF3YXJlIHRoYXQgYSBmZWVkYmFjayBmb3JtIHNob3VsZCBub3QgYmUgYWN0aXZlIChlLmcuLCB1c2FibGUgYnkgdGhlIHB1YmxpYykgd2hpbGUNCnlvdSBhcmUgc3RpbGwgZWRpdGluZyB0aGUgZm9ybS4gWW91IHNob3VsZCBjcmVhdGUgdGhlIGZvcm0sIGFuZCBwbGFjZSB0aGUgdGFnIGludG8gYW4gYWN0aXZlDQpjb250ZW50IHBhZ2Ugb25seSB3aGVuIHlvdSBoYXZlIGZpbmlzaGVkIGVkaXRpbmcuIE90aGVyd2lzZSwgZXJyb25lb3VzIHJlc3VsdHMgY291bGQgYmUgcmV0dXJuZWQuPGJyIC8+DQpBZGRpdGlvbmFsbHksIHRoaXMgdmVyc2lvbiBkb2VzIG5vdCBzdXBwb3J0IHBhcmFsbGVsIGVkaXRpbmcgb2YgZm9ybXMuIFBsZWFzZSB0YWtlIGNhcmUgdGhhdA0Kb25seSBvbmUgYWRtaW4gaXMgZWRpdGluZyBhIGdpdmVuIGZvcm0gYXQgYSBnaXZlbiB0aW1lLic7CiRsYW5nWydoZWxwJ10gPSAnPGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+DQo8cD5UaGUgRm9ybSBCdWlsZGVyIE1vZHVsZSBhbGxvd3MgeW91IHRvIGNyZWF0ZSBmZWVkYmFjayBmb3JtcyAoaW4gZmFjdCwgaXQmIzAzOTtzIGEgcmVwbGFjZW1lbnQgb2YgdGhlIG9yaWdpbmFsIEZlZWRiYWNrIEZvcm0gbW9kdWxlKSwgd2l0aCB0aGUgYWRkZWQgcG93ZXIgb2YgZGF0YWJhc2Ugc3RvcmFnZS4gV2l0aCBpdHMgY29tcGFuaW9uIG1vZHVsZSBGb3JtIEJyb3dzZXIsIHlvdSBjYW4gdXNlIGl0IHRvIGNyZWF0ZSBzaW1wbGUgZGF0YWJhc2UgYXBwbGljYXRpb25zLjwvcD4NCjxwPlRoZSBmb3JtcyBjcmVhdGVkIHVzaW5nIHRoZSBGb3JtIEJ1aWxkZXIgbWF5IGJlIGluc2VydGVkDQppbnRvIHRlbXBsYXRlcyBhbmQvb3IgY29udGVudCBwYWdlcy4gRm9ybXMgbWF5IGNvbnRhaW4gbWFueSBraW5kcyBvZiBpbnB1dHMsIGFuZCBtYXkgaGF2ZQ0KdmFsaWRhdGlvbiBhcHBsaWVkIHRvIHRoZXNlIGlucHV0cy4gVGhlIHJlc3VsdHMgb2YgdGhlc2UgZm9ybXMgbWF5IGJlIGhhbmRsZWQgaW4gYSB2YXJpZXR5IG9mIHdheXMuPC9wPg0KDQo8aDM+SG93IERvIEkgVXNlIGl0PzwvaDM+DQo8UD5JbnN0YWxsIGl0LCBhbmQgcG9rZSBhcm91bmQgdGhlIG1lbnVzLiBQbGF5IHdpdGggaXQuIFRyeSBjcmVhdGluZyBmb3JtcywgYW5kIGFkZGluZyB0aGVtIHRvIHlvdXIgY29udGVudC4NCklmIHlvdSBnZXQgc3R1Y2ssIGNoYXQgd2l0aCBtZSBvbiB0aGUgI2NtcyBJUkMgY2hhbm5lbCwgcG9zdCB0byB0aGUgZm9ydW0sIHNlbmQgbWUgZW1haWwsIG9yLCBpZiB5b3UmIzAzOTtyZQ0KcmVhbGx5IGRlc3BlcmF0ZSwgdHJ5IHJlYWRpbmcgdGhlIGluc3RydWN0aW9ucyBvbiB0aGUgcmVzdCBvZiB0aGlzIHBhZ2UuPC9QPg0KDQo8aDM+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+UHVsbGRvd24uIFRoaXMgaXMgYSBzdGFuZGFyZCBwdWxsZG93biBtZW51LiBJdCYjMDM5O3MgcmVhbGx5IGNvbmNlcHR1YWxseSB0aGUgc2FtZSB0aGluZyBhcyBhIHJhZGlvIGJ1dHRvbg0KZ3JvdXAsIGJ1dCBpcyBiZXR0ZXIgd2hlbiB0aGVyZSBhcmUgYSBsYXJnZSBudW1iZXIgb2Ygb3B0aW9ucy48L2xpPg0KPGxpPk11bHRpc2VsZWN0LiBUaGlzIGlzIGEgbXVsdGktc2VsZWN0IGZpZWxkLiBJdCYjMDM5O3MgcmVhbGx5IGNvbmNlcHR1YWxseSB0aGUgc2FtZSB0aGluZyBhcyBhIGNoZWNrYm94IGJ1dHRvbg0KZ3JvdXAsIGJ1dCBpcyBiZXR0ZXIgd2hlbiB0aGVyZSBhcmUgYSBsYXJnZSBudW1iZXIgb2Ygb3B0aW9ucywgYXMgeW91IGNhbiBsaW1pdCB0aGUgbnVtYmVyIGRpc3BsYXllZCBvbiB0aGUgc2NyZWVuIGF0IGFueSBvbmUgdGltZS48L2xpPg0KPGxpPlN0YXRlLiBUaGlzIGlzIGEgcHVsbGRvd24gbGlzdGluZyB0aGUgU3RhdGVzIG9mIHRoZSBVLlMuPC9saT4NCjxsaT5DYW5hZGlhbiBQcm92aW5jZS4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIENhbmFkaWFuIFByb3ZpbmNlcyAoQ29udHJpYnV0ZWQgYnkgTm9lbCBNY0dyYW4uIFRoYW5rcyEpPC9saT4NCjxsaT5Db3VudHJpZXMuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBDb3VudHJpZXMgb2YgdGhlIHdvcmxkIChhcyBvZiBKdWx5IDIwMDUpLjwvbGk+DQo8bGk+RGF0ZSBQaWNrZXIuIFRoaXMgaXMgYSB0cmlwbGUgcHVsbGRvd24gYWxsb3dpbmcgdGhlIHVzZXIgdG8gc2VsZWN0IGEgZGF0ZS48L2xpPg0KPGxpPlRpbWUgUGlja2VyLiBUaGlzIGlzIGEgc2V0IG9mIHB1bGxkb3ducyBhbGxvd2luZyB0aGUgdXNlciB0byBzZWxlY3QgYSB0aW1lICh1c2luZyAxMiBvciAyNCBob3VyIGNsb2NrKS48L2xpPg0KPGxpPkZpbGUgVXBsb2FkLiBUaGlzIGlzIGEgZmlsZSB1cGxvYWQgZmllbGQuPC9saT4NCjxsaT5MaW5rIChVc2VyIEVudGVyZWQpLiBUaGlzIGNyZWF0ZXMgYSBkb3VibGUgaW5wdXQgZmllbGQgZm9yIGdldHRpbmcgYSBsaW5rIFVSTCBhbmQgbGluayB0aXRsZS48L2xpPg0KPGxpPlRleHQgRmllbGQgKE11bHRpcGxlKS4gVGhpcyBmaWVsZCBjcmVhdGVzIG9uZSBvciBtb3JlIHRleHQgaW5wdXRzIHdpdGggYWRkIGFuZCBkZWxldGUgYnV0dG9ucywgZWZmZWN0aXZlbHkgZ2l2aW5nIHRoZSBlbmQgdXNlciBhIHdheSBvZiBjcmVhdGluZyB2YXJpYWJsZS1sZW5ndGggbGlzdHMuPC9saT4NCjwvdWw+PC9saT4NCg0KPGxpPkVtYWlsLXNwZWNpZmljIElucHV0cw0KPHVsPjxsaT5FbWFpbCAmcXVvdDtGcm9tIEFkZHJlc3MmcXVvdDsgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgdGhlaXIgZW1haWwgYWRkcmVzcy4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIGFkZHJlc3MgaW4gdGhlICZxdW90O0Zyb20mcXVvdDsgZmllbGQuPC9saT4NCjxsaT5FbWFpbCAmcXVvdDtGcm9tIE5hbWUmcXVvdDsgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgdGhlaXIgbmFtZS4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIG5hbWUgaW4gdGhlICZxdW90O0Zyb20mcXVvdDsgZmllbGQuPC9saT4NCjxsaT5FbWFpbCBTdWJqZWN0IEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIGEgc3ViamVjdCBmb3IgdGhlaXIgZW1haWwuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBpbiB0aGUgJnF1b3Q7U3ViamVjdCZxdW90OyBmaWVsZC4gVGhpcyBtYXkgY2F1c2UgdHJvdWJsZSB3aXRoIGNlcnRhaW4gZGlzcG9zaXRpb25zIHRoYXQgd2FudCB0byBjb250cm9sIHRoZSBFbWFpbCBTdWJqZWN0LCBzbyB1c2UgaXQgd2l0aCBjYXV0aW9uLjwvbGk+DQo8L3VsPjwvbGk+DQoNCjxsaT5EaXNwbGF5IENvbnRyb2wgRmllbGRzPHVsPg0KPGxpPi1QYWdlIEJyZWFrLiBUaGlzIGFsbG93cyB5b3UgdG8gc3BsaXQgeW91ciBmZWVkYmFjayBmb3JtIGludG8gbXVsdGlwbGUgcGFnZXMuIEVhY2ggcGFnZSBpcw0KaW5kZXBlbmRlbnRseSB2YWxpZGF0ZWQuIFRoaXMgaXMgZ29vZCBmb3IgYXBwbGljYXRpb25zIGxpa2Ugb25saW5lIHN1cnZleXMuPC9saT4NCjxsaT4tRmllbGRzZXQgU3RhcnQuIENvbWJpbmVkIHdpdGggRmllbGRzZXQgRW5kLCB0aGlzIGFsbG93cyB5b3UgdG8gZ3JvdXAgdmFyaW91cyBmaWVsZHMgd2l0aGluIHlvdXIgZm9ybS4gVXNlIHRoaXMgdG8gc3RhcnQgYSBnaXZlbiBncm91cGluZy48L2xpPg0KPGxpPi1GaWVsZHNldCBFbmQuIENvbWJpbmVkIHdpdGggRmllbGRzZXQgU3RhcnQsIHRoaXMgYWxsb3dzIHlvdSB0byBncm91cCB2YXJpb3VzIGZpZWxkcyB3aXRoaW4geW91ciBmb3JtLiBVc2UgdGhpcyB0byBlbmQgYSBnaXZlbiBncm91cGluZy48L2xpPg0KPGxpPi1IaWRkZW4gRmllbGQuIFRoaXMgYWxsb3dzIHlvdSB0byBlbWJlZCBhIGhpZGRlbiBmaWVsZCBpbiB5b3VyIGZvcm0uPC9saT4NCjxsaT4tU3RhdGljIFRleHQuIFRoaXMgYWxsb3dzIHlvdSB0byBwdXQgdGV4dCBvciBhIGxhYmVsIGluIHRoZSBtaWRkbGUgb2YgeW91ciBmb3JtLiBUaGlzIGlzIHVzZWZ1bCBmb3IgZ2l2aW5nIGFkZGl0aW9uYWwgaGVscCB0ZXh0LCBlc3BlY2lhbGx5IGlmIHlvdSYjMDM5O3JlIG5vdCB1c2luZyBhIEN1c3RvbSBUZW1wbGF0ZSB0byByZW5kZXIgeW91ciBmb3JtLjwvbGk+DQo8bGk+LVN0YXRpYyBMaW5rLiBUaGlzIGFsbG93cyB5b3UgdG8gcHV0IGEgbGluayB0byBhIGdpdmVuIHBhZ2UgaW50byB5b3VyIGZvcm0uIE9wdGlvbmFsbHksIHlvdSBjYW4gaGF2ZSBpdCBhdXRvcG9wdWxhdGUgd2l0aCB0aGUgcGFnZSB3aGVyZSB0aGUgZm9ybSBpcyBlbWJlZGRlZCAodXNlZnVsIGlmIHlvdSYjMDM5O3JlIHNlbmRpbmcgcmVzdWx0cyB2aWEgZW1haWwpLjwvbGk+DQo8bGk+LUNvbXB1dGVkIEZpZWxkLiBUaGlzIGFsbG93cyB5b3UgdG8gZW1iZWQgYSBjb21wdXRlZCBmaWVsZCBpbiB5b3VyIGZvcm0uIEl0IGlzIG5vdCB2aXNpYmxlIHRvIHRoZSB1c2VyIHVudGlsIGFmdGVyIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZC4gSXQgYWxsb3dzIHlvdSB0byBkbyBzaW1wbGUgYXJpdGhtZXRpYyBvciBzdHJpbmcgY29uY2F0ZW5hdGlvbi48L2xpPg0KPGxpPi1VbmlxdWUgSW50ZWdlciAoU2VyaWFsKS4gVGhpcyBpcyBhbiBpbnRlZ2VyIHRoYXQgaW5jcmVhc2VzIGV2ZXJ5IHRpbWUgc29tZW9uZSBoaXRzIHlvdXIgZm9ybS4gWW91ciByZXN1bHRzIG1heSBub3QgYmUgc2VxdWVudGlhbCwgYnV0IHRoZXkgd2lsbCBpbmNyZWFzZSBtb25vdG9uaWNhbGx5LjwvbGk+DQo8L3VsPjwvbGk+DQoNCjxsaT5Gb3JtIEhhbmRsaW5nIElucHV0cyAoRGlzcG9zaXRpb25zKQ0KPHVsPjxsaT4qQ2FsbCBhIFVzZXIgRGVmaW5lZCBUYWcgV2l0aCB0aGUgRm9ybSBSZXN1bHRzLiBUaGlzIHN1Ym1pdHMgYWxsIHRoZSBmb3JtIHJlc3VsdHMgdG8gdGhlIFVzZXItRGVmaW5lZCBUYWcgeW91IHNwZWNpZnkuIFRoZSBVRFQgY2FuIGhhbmRsZSB0aGUgcmVzdWx0cyBob3dldmVyIGl0IHdhbnRzLiBWYWx1ZXMgYXJlIHBhc3NlZCBhcyAkcGFyYW1bJiMwMzk7ZmllbGRfbmFtZSYjMDM5O10uPC9saT4NCjxsaT4qRW1haWwgUmVzdWx0cyBCYXNlZCBvbiBQdWxsZG93bi4gVGhpcyBpcyB1c2VmdWwgZm9yIHdlYiBzaXRlcyB3aGVyZSBjb21tZW50cyBnZXQgcm91dGVkIGJhc2VkIG9uIHRoZWlyIHN1YmplY3QgbWF0dGVyLCBlLmcuLCBidWdzIGdldCBzZW50IHRvIG9uZSBwZXJzb24sIG1hcmtldGluZyBxdWVzdGlvbnMgdG8gYW5vdGhlciBwZXJzb24sIHNhbGVzIHJlcXVlc3RzIHRvIHNvbWVvbmUgZWxzZSwgZXRjLiBUaGUgcHVsbGRvd24gaXMgcG9wdWxhdGVkIHdpdGggdGhlIHN1YmplY3RzLCBhbmQgZWFjaCBnZXRzIGRpcmVjdGVkIHRvIGEgc3BlY2lmaWMgZW1haWwgYWRkcmVzcy4gWW91IHNldCB1cCB0aGVzZSBtYXBwaW5ncyBpbiB0aGUgd2hlbiB5b3UgY3JlYXRlIG9yIGVkaXQgYSBmaWVsZCBvZiB0aGlzIHR5cGUuIElmIHlvdSB1c2Ugb25lIG9mIHRoZXNlICZxdW90O0RpcmVjdG9yJnF1b3Q7IHB1bGxkb3ducywgdGhlIHVzZXIgbXVzdCBtYWtlIGEgc2VsZWN0aW9uIGluIG9yZGVyIHRvIHN1Ym1pdCB0aGUNCmZvcm0uIFRoaXMgaW5wdXQgaXMgcGFydCBvZiB0aGUgZm9ybSB0aGUgdXNlciBzZWVzLCBhbHRob3VnaCB0aGUgZW1haWwgYWRkcmVzc2VzIGFyZSBub3QgbWFkZSB2aXNpYmxlIG5vcg0KYXJlIHRoZXkgZW1iZWRkZWQgaW4gdGhlIEhUTUwuPC9saT4NCjxsaT4qRW1haWwgJnF1b3Q7RnJvbSBBZGRyZXNzJnF1b3Q7IEZpZWxkLCBhbmQgc2VuZCBjb3B5LiBUaGlzIHdvcmtzIGxpa2UgdGhlIEVtYWlsICZxdW90O0Zyb20gQWRkcmVzcyZxdW90OyBGaWVsZCBkZXNjcmliZWQgYWJvdmUsIGJ1dCBpdCBwcm92aWRlcyBvcHRpb25zIGZvciBzZW5kaW5nIGEgY29weSBvZiB0aGUgcmVzdWx0cyB0byB0aGUgdXNlci48L2xpPg0KPGxpPipFbWFpbCBSZXN1bHRzIHRvIHNldCBBZGRyZXNzKGVzKS4gVGhpcyBzaW1wbHkgc2VuZHMgdGhlIGZvcm0gcmVzdWx0cyB0byBvbmUgb3IgbW9yZSBlbWFpbCBhZGRyZXNzZXMgdGhhdCB5b3UgZW50ZXIgd2hlbiB5b3UgY3JlYXRlIG9yIGVkaXQgdGhpcyB0eXBlIG9mIGZpZWxkLiBUaGlzIGZpZWxkIGFuZCBpdHMgbmFtZSBhcmUgbm90IHZpc2libGUgaW4gdGhlDQpmb3JtIHRoYXQgdGhlIHVzZXIgc2Vlcy4gVGhlIGVtYWlsIGFkZHJlc3NlcyBhcmUgbm90IG1hZGUgdmlzaWJsZSBub3INCmFyZSB0aGV5IGVtYmVkZGVkIGluIHRoZSBIVE1MLjwvbGk+DQo8bGk+KkVtYWlsIHRvIFVzZXItU3VwcGxpZWQgQWRkcmVzcy4gVGhpcyBwdXRzIGFuIGlucHV0IGZpZWxkIGluIHRoZSBmb3JtIGZvciB0aGUgdXNlciB0byBwb3B1bGF0ZSB3aXRoIGFuIGVtYWlsIGFkZHJlc3MuIFRoZSBmb3JtIHJlc3VsdHMgZ2V0IHNlbnQgdG8gdGhhdCBhZGRyZXNzLiBCZXdhcmUgb2YgU3BhbSBhYnVzZSEgQWN0aXZlIHRoZSBwcmltaXRpdmUgYW50aS1zcGFtIGZlYXR1cmVzIGluIHRoZSBGb3JtQnVpbGRlciBjb25maWd1cmF0aW9uIHNjcmVlbi48L2xpPg0KPGxpPipTdG9yZSBSZXN1bHRzIGluIERhdGFiYXNlLiBUaGlzIHdpbGwgc3RvcmUgdGhlIGZvcm0gY29udGVudHMgaW4gYW4gaW50ZXJuYWwgZGF0YWJhc2UuIFlvdSB3aWxsIGFsd2F5cyB1c2UgdGhpcyBkaXNwb3NpdGlvbiBpZiB5b3UgdXNlIHRoZSBmb3JtIHdpdGggRm9ybUJyb3dzZXIuPC9saT4NCjxsaT4qUmVkaXJlY3QgdG8gUGFnZSBCYXNlZCBvbiBQdWxsZG93bi4gVGhpcyBhbGxvd3MgeW91IHRvIHJlZGlyZWN0IHRoZSBmb3JtIHRvIGEgZGlmZmVyZW50IHNpdGUgcGFnZSBkZXBlbmRpbmcgb24gaXRzIHZhbHVlLiBJZiB5b3UgaGF2ZSBtdWx0aXBsZSBkaXNwb3NpdGlvbnMsIG1ha2Ugc3VyZSB0aGlzIGlzIHVzZWQgbGFzdC48L2xpPg0KPGxpPipWYWxpZGF0ZSB2aWEgRW1haWwuIFRoaXMgaXMgYSBzdHJhbmdlIGFuZCBwb3dlcmZ1bCBmaWVsZC4gSXQgcHJvdmlkZXMgdGhlIHVzZXIgYSBtYW5kYXRvcnkgaW5wdXQgZm9yIHRoZWlyIGVtYWlsIGFkZHJlc3MuIE9uY2UgdGhleSBzdWJtaXQgdGhlaXIgZm9ybSwgdGhlIHN0YW5kYXJkIGZvcm0gZGlzcG9zaXRpb25zIGFyZSBub3QgcGVyZm9ybWVkIC0tIHJhdGhlciwgaXQgc2VuZCB0aGUgdXNlciBhbiBlbWFpbCB3aXRoIGEgc3BlY2lhbCBjb2RlZCBsaW5rLiBJZiB0aGV5IGNsaWNrIG9uIHRoZSBsaW5rLCB0aGUgb3RoZXIgZm9ybSBpcyBjb25zaWRlcmVkICZxdW90O2FwcHJvdmVkLCZxdW90OyBhbmQgdGhlIG90aGVyIGRpc3Bvc2l0aW9ucyBhcmUgYWxsIHBlcmZvcm1lZC48L2xpPg0KPGxpPipXcml0ZSBSZXN1bHRzIHRvIEZsYXQgRmlsZS4gVGhpcyB0YWtlcyB0aGUgZm9ybSByZXN1bHRzIGFuZCB3cml0ZXMgdGhlbSBpbnRvIGEgdGV4dCBmaWxlLiBZb3UgbWF5DQpzZWxlY3QgdGhlIG5hbWUgb2YgdGhlIGZpbGUsIGFuZCBzZXQgaXRzIGZvcm1hdC4gVGhlc2UgZmlsZXMgYXJlIHdyaXR0ZW4gdG8gdGhlICZxdW90O291dHB1dCZxdW90OyBkaXJlY3RvcnkgdW5kZXIgdGhlDQptb2R1bGUmIzAzOTtzIGluc3RhbGxhdGlvbiBkaXJlY3RvcnksIGFzc3VtaW5nIHRoZSB3ZWIgc2VydmVyIGhhcyBwZXJtaXNzaW9uIHRvIHdyaXRlIHRoZXJlLjwvbGk+DQo8bGk+KlNhdmUgUmVzdWx0cyB0byBGaWxlIEJhc2VkIG9uIFB1bGxkb3duLiBMaWtlIHRoZSBGbGF0IEZpbGUgZGlzcG9zaXRpb24sIGV4Y2VwdCB0aGUgdmFsdWUgb2YgYSBwdWxsLWRvd24gZGV0ZXJtaW5lcyB3aGljaCBmaWxlIHJlc3VsdHMgZ2V0IHdyaXR0ZW4gdG8uPC9saT4NCjxsaT4qU2F2ZSBSZXN1bHRzIHRvIEZpbGUocykgQmFzZWQgb24gTXVsdGlwbGUgU2VsZWN0aW9ucy4gTGlrZSB0aGUgRmxhdCBGaWxlIGRpc3Bvc2l0aW9uLCBleGNlcHQgdGhlIHZhbHVlKHMpIG9mIGNoZWNrYm94ZXMgIGRldGVybWluZXMgd2hpY2ggZmlsZShzKSByZXN1bHRzIGdldCB3cml0dGVuIHRvLjwvbGk+DQo8bGk+KkVtYWlsIHRvIENNUyBBZG1pbiBVc2VyLiBQcm92aWRlcyBhIHB1bGwtZG93biBvZiBDTVMgQWRtaW4gdXNlcnMsIGFuZCBkaXJlY3RzIHRoZSByZXN1bHRzIGFzIGFuIGVtYWlsIHRvIHRoZSBzZWxlY3RlZCBhZG1pbi48L2xpPg0KPGxpPipTdG9yZSBSZXN1bHRzIGZvciBGb3JtQnJvd3NlciBNb2R1bGUgdi4zLiBTdG9yZXMgdGhlIGZvcm0gcmVzdWx0cyBpbiBhbiBYTUwgc3RydWN0dXJlIGFzIGEgc2luZ2xlIGRhdGFiYXNlIHJlY29yZC4gVGhpcyB3aWxsIGJlY29tZSB0aGUgaW50ZXJmYWNlIHRvIEZvcm0gQnJvd3NlciBpbiB0aGUgbmV4dCByZWxlYXNlLjwvbGk+DQoNCjwvdWw+PC9saT48L2xpPjwvdWw+DQoNCg0KPGgzPlBhc3NpbmcgRGVmYXVsdCBWYWx1ZXMgdG8gRm9ybXM8L2gzPg0KPHA+Q2FsZ3V5IGFkZGVkIGEgbmljZSBmZWF0dXJlLCB3aGljaCBpcyB0aGF0IHlvdSBjYW4gcGFzcyBkZWZhdWx0IGZpZWxkIHZhbHVlcyB0byB5b3VyIGZvcm0gdmlhIHRoZSBtb2R1bGUgdGFnLiBUaGlzIGFsbG93cyB5b3UgdG8gaGF2ZQ0KdGhlIHNhbWUgZm9ybSBpbiBtdWx0aXBsZSBwbGFjZXMsIGJ1dCB3aXRoIGRpZmZlcmVudCBkZWZhdWx0IHZhbHVlcy4gSXQgbWF5IG5vdCB3b3JrIGZvciBtb3JlIGV4b3RpYyBmaWVsZCB0eXBlcywgYnV0IGZvciBmaWVsZHMgdGhhdCBoYXZlDQphIHNpbmdsZSB2YWx1ZSwgeW91IGNhbiBzcGVjaWZ5IGxpa2U6PC9wPg0KPHA+e2Ntc19tb2R1bGUgbW9kdWxlPSYjMDM5O0Zvcm1CdWlsZGVyJiMwMzk7IGZvcm09JiMwMzk7bXlfZm9ybSYjMDM5OyB2YWx1ZV88aT5GSUVMRE5BTUU8L2k+PSYjMDM5O2RlZmF1bHRfdmFsdWUmIzAzOTt9PC9wPg0KPHA+VGhpcyB3aWxsIHNldCB0aGUgZmllbGQgd2l0aCA8aT5GSUVMRE5BTUU8L2k+IHRvICYjMDM5O2RlZmF1bHRfdmFsdWUmIzAzOTsuPC9wPg0KPHA+VGhpcyBjYW4gYmUgcHJvYmxlbWF0aWMsIGFzIHNvbWV0aW1lcyBmaWVsZCBuYW1lcyBhcmUgdW53ZWlsZHkgb3IgY29udGFpbiBjaGFyYWN0ZXJzIHRoYXQgZG9uJiMwMzk7dCB3b3JrIHdlbGwgd2l0aCBTbWFydHkuIFNvIHRoZXJlIGlzIGFuDQphbHRlcm5hdGl2ZSBsaWtlIHRoaXM6PC9wPg0KPHA+e2Ntc19tb2R1bGUgbW9kdWxlPSYjMDM5O0Zvcm1CdWlsZGVyJiMwMzk7IGZvcm09JiMwMzk7bXlfZm9ybSYjMDM5OyB2YWx1ZV9mbGQ8aT5OVU1CRVI8L2k+PSYjMDM5O2RlZmF1bHRfdmFsdWUmIzAzOTt9PC9wPg0KPHA+VGhhdCB1c2VzIGZpZWxkIDxpPk5VTUJFUjwvaT4sIHdoZXJlIDxpPk5VTUJFUjwvaT4gaXMgdGhlIGludGVybmFsIEZvcm1CdWlsZGVyIGZpZWxkIGlkLiBZb3UgbWlnaHQgd29uZGVyIGhvdyB5b3Uga25vdyB3aGF0IHRoYXQgaWQgaXMuIFNpbXBseSBnbyBpbnRvIHRoZSBGb3JtQnVpbGRlciBjb25maWd1cmF0aW9uIHRhYiwNCmFuZCBjaGVjayAmcXVvdDtTaG93IEZpZWxkIElEcyZxdW90OzwvcD4NCg0KPGgzPkVtYWlsIGFuZCBGbGF0IEZpbGUgVGVtcGxhdGVzPC9oMz4NCjxwPk1hbnkgZGlzcG9zaXRpb24gdHlwZXMgYWxsb3cgeW91IHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZvciB0aGUgZW1haWwgdGhhdCBpcyBnZW5lcmF0ZWQsIG9yIGZvciB0aGUgd2F5IHRoZSByZXN1bHRzIGFyZSB3cml0dGVuIHRvIGEgZmlsZS4gSWYgeW91IG9wdCBub3QgdG8gY3JlYXRlIGEgdGVtcGxhdGUsIHRoZSBGb3JtQnVpbGRlciB3aWxsIHVzZSBpdCYjMDM5O3Mgb3duIGJlc3QgZ3Vlc3MsIHdoaWNoIG1heSBvciBtYXkgbm90IHdvcmsgb3V0IHRvIHlvdXIgbGlraW5nLiBZb3UgY2FuIGFsd2F5cyBjbGljayBvbiB0aGUgJnF1b3Q7Q3JlYXRlIFNhbXBsZSBUZW1wbGF0ZSZxdW90OyBhbmQgdGhlbiBjdXN0b21pemUgdGhlIHJlc3VsdHMuPC9wPg0KPHA+VG8gdGhlIHJpZ2h0LCB5b3UmIzAzOTtsbCBmaW5kIGEgbGVnZW5kIHdoaWNoIGxpc3RzIGFsbCBvZiB0aGUgdmFyaWFibGVzIHRoYXQgYXJlIGF2YWlsYWJsZSB0byB5b3UgdG8gdXNlIGluIHlvdXIgdGVtcGxhdGUuIEFzIG9mIHZlcnNpb24gMC4zLCB2YXJpYWJsZXMgaGF2ZSB0d28gbmFtZXMsIG9uZSBiYXNlZCBvbiB0aGUgZmllbGQgbmFtZSwgdGhlIG90aGVyIGJhc2VkIG9uIHRoZSBmaWVsZCBJRC4gSWYgeW91IHVzZSBmaWVsZCBuYW1lcyB0aGF0IGhhdmUgY2hhcmFjdGVycyBvdXRzaWRlIG9mIHRoZSBBU0NJSSAzMi0xMjYgcmFuZ2UsIGl0IHdpbGwgYmUgc2FmZXIgdG8gdXNlIHRoZSBJRC1iYXNlZCB2YXJpYWJsZXMuPC9wPg0KPHA+PHN0cm9uZz5Ob3RlIHRoYXQgb25jZSB5b3UmIzAzOTt2ZSBjaGFuZ2VkIGEgdGVtcGxhdGUsIGl0IHdpbGwgbm8gbG9uZ2VyIGF1dG9tYXRpY2FsbHkgYWRkIG5ldyBmaWVsZHMuPC9zdHJvbmc+IEZvciB0aGlzIHJlYXNvbiwgaXQmIzAzOTtzIHVzdWFsbHkgYmVzdCB0byBjcmVhdGUgeW91ciB0ZW1wbGF0ZXMgYXMgdGhlIGxhc3Qgc3RlcCBvZiBjcmVhdGluZyB5b3VyIGZvcm0uPC9wPg0KPHA+QXMgb2YgdmVyc2lvbiAwLjIuNCwgeW91IGNhbiBvcHQgdG8gc2VuZCBhbnkgb2YgdGhlc2UgZW1haWxzIGFzIEhUTUwgZW1haWwuIFRoZXJlIHNob3VsZCBiZSBhIGNoZWNrYm94IGF0IHRoZSB0b3Agb2YgdGhlIHRlbXBsYXRlIHBhZ2UgZm9yIHRoaXMuIFRoZXJlIGlzIGFsc28gYSAmcXVvdDtDcmVhdGUgU2FtcGxlIEhUTUwgVGVtcGxhdGUmcXVvdDsgYnV0dG9uIG92ZXIgaW4gdGhlIGxlZ2VuZCBhcmVhLiBGb3IgSFRNTCBlbWFpbCwgdGhlIGVtYWlsIGJvZHkgd2lsbCBhbHNvIHByb3ZpZGUgdGhlIGRlZmF1bHQgdGV4dC1vbmx5IHZhbHVlcy48L3A+DQoNCjxoMz5Db25maWd1cmF0aW9uPC9oMz4NCjxwPlRoZXJlIGFyZSBzb21lIGdsb2JhbCBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIEZvcm1CdWlsZGVyOjwvcD4NCjx1bD4NCjxsaT5FbmFibGUgZmFzdCBmaWVsZCBhZGQgcHVsbGRvd24uIFRoaXMgZW5hYmxlcyB0aGUgcHVsbGRvd24gb24gdGhlIEZvcm0gRWRpdCBwYWdlIHdoaWNoIHNhdmVzIGEgc3RlcCBpbiB0aGUgY3JlYXRpb24gb2YgbmV3IGZpZWxkcy48L2xpPg0KPGxpPkhpZGUgRXJyb3JzLiBUaGlzIGlzIHNldCBieSBkZWZhdWx0LiBVbmNoZWNraW5nIGl0IHdpbGwgY2F1c2UgbW9yZSBkZXRhaWxlZCBlcnJvcnMgdG8gYmUgZGlzcGxheWVkIGlmIHRoZXJlIGFyZSBwcm9ibGVtcyB3aGVuIHlvdSBzdWJtaXQgeW91ciBmb3JtLjwvbGk+DQo8bGk+UmVxdWlyZSBGaWVsZCBOYW1lcy4gVHlwaWNhbGx5LCB5b3Ugd2lsbCB3YW50IGZvcm0gZmllbGRzIHRvIGJlIG5hbWVkIHNvIHlvdSBjYW4gdGVsbCB3aGljaCBpcyB3aGljaC4gSG93ZXZlciwgaW4gc29tZSBjYXNlcywgeW91IG1pZ2h0IHdhbnQgdG8gaGF2ZSBuYW1lbGVzcyBmaWVsZHMuIFVuY2hlY2sgdGhpcyBpZiB5b3Ugd2FudCB0byBhbGxvdyBuYW1lbGVzcyBmaWVsZHMuPC9saT4NCjxsaT5VbmlxdWUgRmllbGQgTmFtZXMuIFR5cGljYWxseSwgeW91IHdpbGwgd2FudCBmb3JtIGZpZWxkcyB0byBoYXZlIHVuaXF1ZSBuYW1lcyBzbyB5b3UgY2FuIHRlbGwgd2hpY2ggaXMgd2hpY2guIFVuY2hlY2sgdGhpcyBpZiB5b3Ugd2FudCB0byBhbGxvdyBmaWVsZHMgdG8gc2hhcmUgbmFtZXMuPC9saT4NCjxsaT5Vc2UgcmVsYXhlZCBlbWFpbCB2YWxpZGF0aW9uLiBUaGlzIHVzZXMgYSBsZXNzIHJlc3RyaWN0aXZlIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgdmFsaWRhdGluZyBlbWFpbDsgZS5nLiwgeEB5IHdpbGwgYmUgYWxsb3dlZCwgd2hlcmUgdHlwaWNhbGx5IHhAeS50bGQgaXMgcmVxdWlyZWQuPC9saT4NCjxsaT5TaG93IEZvcm0gQnVpbGRlciBWZXJzaW9uLiBEaXNwbGF5cyB0aGUgdmVyc2lvbiBvZiBGb3JtQnVpbGRlciB5b3UmIzAzOTtyZSB1c2luZyBpbiBhIGNvbW1lbnQgd2hlbiB0aGUgZm9ybSBpcyBnZW5lcmF0ZWQuIFR5cGljYWxseSBvbmx5IHVzZWZ1bCB3aGVuIGRlYnVnZ2luZy48L2xpPg0KPGxpPkVuYWJsZSBwcmltaXRpdmUgYW50aS1zcGFtIGZlYXR1cmVzLiBXaGVuIHR1cm5lZCBvbiwgdGhpcyBhbGxvd3MgYW55IGdpdmVuIElQIGFkZHJlc3MgdG8gb25seSBnZW5lcmF0ZSAxMCBlbWFpbHMgcGVyIGhvdXIuPC9saT4NCjxsaT5TaG93IEZpZWxkIElEcy4gV2hlbiB0dXJuZWQgb24sIEZvcm1CdWlsZGVyIHdpbGwgZGlzcGxheSBmaWVsZCBpZHMgd2hlbiBhZGRpbmcgb3IgZWRpdGluZyBhIGZvcm0uPC9saT4NCjwvdWw+DQo8aDM+U3R5bGluZyBhbmQgQ1NTPC9oMz4NCjxwPkFmdGVyIGEgYml0IG9mIG5hZ2dpbmcgb24gdGhlIHBhcnQgb2YgcGVvcGxlIHdobyBhY3R1YWxseSByZXNwZWN0IHN0YW5kYXJkcywgRm9ybUJ1aWxkZXIgbm8gbG9uZ2VyIGVuY291cmFnZXMgdHJpY2tzIGxpa2UgZW1iZWRkaW5nIENTUyBpbiANCnN0YXRpYyB0ZXh0IGZpZWxkcy4gSW5zdGVhZCwgaXQgY3JlYXRlcyBhIHN0eWxlc2hlZXQgY2FsbGVkICZxdW90O0Zvcm1CdWlsZGVyIERlZmF1bHQmcXVvdDsgdGhhdCB5b3UgYXJlIGVuY291cmFnZWQgdG8gYXR0YWNoIHRvIHRoZSBwYWdlIHRlbXBsYXRlDQp0aGF0IHlvdSB1c2UgZm9yIHBhZ2VzIHRoYXQgY29udGFpbiB5b3VyIGZvcm0uPC9wPiAgDQo8cD5UaGlzIGRlZmF1bHQgQ1NTIHdhcyBncmFjaW91c2x5IHByb3ZpZGVkIGJ5IFBhdWwgTm9vbmUuPC9wPg0KDQoNCjxoMz5Gb3JtIFRlbXBsYXRlIFZhcmlhYmxlczwvaDM+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+dGhlIElEIG9mIHRoZSBmaWVsZCYjMDM5O3MgaW5wdXQgKHVzZWZ1bCBmb3IgbGFiZWwgZm9yPSZxdW90O2ZvbyZxdW90Oyk8L3RkPjwvdHI+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+S25vd24gSXNzdWVzPC9oMz4NCjx1bD4NCjxsaT5Gb3JtQnVpbGRlciBpcyBub3QgeWV0IGludGVncmF0ZWQgd2l0aCBGcm9udEVuZCBVc2Vycy4gSXQgd2lsbCBiZS48L2xpPg0KPGxpPkZvcm1CdWlsZGVyIGRvZXMgbm90IHlldCBzdXBwb3J0IHByZXR0eSB1cmxzLCBhbHRob3VnaCB0aGF0IHNob3VsZG4mIzAzOTt0IG1hdHRlciBzaW5jZSB0aGUgdXNlciBzaWRlIGlzIHByZXR0eSBzaW1wbGUuPC9saT4NCjxsaT5GaWxlVXBsb2FkIEZpZWxkcyBtYXkgbm90IHdvcmsgY29ycmVjdGx5IHdpdGggbXVsdGlwYWdlIGZvcm1zLjwvbGk+DQo8L3VsPg0KDQo8aDM+VHJvdWJsZXNob290aW5nPC9oMz4NCjxvbD48bGk+IEZpcnN0IHN0ZXAgaXMgdG8gY2hlY2sgeW91JiMwMzk7cmUgcnVubmluZyBDTVMgMS4xIG9yIGxhdGVyLjwvbGk+DQo8bGk+IFNlY29uZCBzdGVwIGlzIHRvIHJlYWQgYW5kIHVuZGVyc3RhbmQgdGhlIGNhdmVhdCBhYm91dCBXWVNJV1lHIGVkaXRvcnMgdXAgaW4gdGhlDQpzZWN0aW9uIDxlbT5BZGRpbmcgYSBGb3JtIHRvIGEgUGFnZTwvZW0+LjwvbGk+DQo8bGk+IElmIHlvdSYjMDM5O3JlIG1pc3NpbmcgZmllbGRzIGluIGFuIGVtYWlsIHRoYXQgZ2V0cyBnZW5lcmF0ZWQsIGNoZWNrIHRoZSBkaXNwb3NpdGlvbiBmaWVsZCYjMDM5O3MgdGVtcGxhdGUsIGFuZCBtYWtlIHN1cmUgeW91JiMwMzk7cmUgc3BlY2lmeWluZyB0aGUgbWlzc2luZyBmaWVsZHMuIFNlZW1zIG9idmlvdXMsIGJ1dCBpdCYjMDM5O3MgYW4gZWFzeSBtaXN0YWtlIHRvIG1ha2UuPC9saT4NCjxsaT5VbmNoZWNrIHRoZSAmcXVvdDtIaWRlIEVycm9ycyZxdW90OyBjaGVja2JveCBpbiB0aGUgZ2xvYmFsIG9wdGlvbnMsIGFuZCBzZWUgd2hhdCBtZXNzYWdlIGdldHMgZGlzcGxheWVkIHdoZW4geW91IHN1Ym1pdCB5b3VyIGZvcm0uPC9saT4NCjxsaT4gSnVzdCBtZXNzIGFyb3VuZCBhbmQgdHJ5IGNsaWNraW5nIG9uIGxpbmtzIGFuZCBpY29ucyBhbmQgc3R1ZmYuIFNlZSB3aGF0IGhhcHBlbnMuPC9saT4NCjxsaT4gTWFrZSBzdXJlIHlvdSBjYW4gc3VjY2Vzc2Z1bGx5IHNlbmQgZW1haWwgdmlhIHRoZSB0ZXN0IGluIHRoZSBDTVNNYWlsZXIgTW9kdWxlLiBJdCYjMDM5O3Mgc2ltcGx5IGFtYXppbmcgaG93IG1hbnkgcHJvYmxlbXMgYm9pbCBkb3duIHRvIGEgbWlzY29uZmlndXJlZCBDTVNNYWlsZXIuPC9saT4NCjxsaT4gTGFzdCByZXNwb3J0IGlzIHRvIGVtYWlsIG1lIG9yIGNhdGNoIG1lIG9uIElSQyBhbmQgd2UgY2FuIGdvIGZyb20gdGhlcmUuPC9saT4NCjwvb2w+IA0KPHA+VGhpcyBpcyBubyBsb25nZXIgYSBwYXJ0aWN1bGFybHkgZWFybHkgdmVyc2lvbiwgYnV0IGl0IGlzIHByb2JhYmx5IHN0aWxsIGJ1Z2d5LiBXaGlsZSBJJiMwMzk7dmUgZG9uZSBhbGwgSSBjYW4NCnRvIG1ha2Ugc3VyZSBubyBlZ3JlZ2lvdXMgYnVncyBoYXZlIGNyZXB0IGluLCBJIGhhdmUgdG8gYWRtaXQgdGhhdCBkdXJpbmcgZWFybHkgdGVzdGluZywgdGhpcyBwcm9ncmFtDQpyZXZlYWxlZCBzZXZlbiBjb2Nrcm9hY2hlcywgdHdvIGVhcndpZ3MsIGEgc21hbGwgZmFtaWx5IG9mIGFwaGlkcywgYW5kIGEgd2Fsa2luZy1zdGljayBpbnNlY3QuIEl0IGFsc28NCmF0ZSB0aGUgbmVpZ2hib3ImIzAzOTtzIG5hc3R5IGxpdHRsZSB5YXAgZG9nLCBmb3Igd2hpY2ggSSB3YXMgaW5hcHByb3ByaWF0ZWx5IGdyYXRlZnVsLjwvcD4NCjxwPlRoZSBmaW5hbCByZWxlYXNlIHdpbGwgaW5jbHVkZSBidWcgZml4ZXMsIGRvY3VtZW50YXRpb24sIGFuZCB1bmNvbmRpdGlvbmFsIGxvdmUuPC9wPg0KPGgzPlN1cHBvcnQ8L2gzPg0KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPg0KPHVsPg0KPGxpPkZvciB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBtb2R1bGUsIEZBUXMsIG9yIHRvIGZpbGUgYSBCdWcgUmVwb3J0LCBwbGVhc2UgdmlzaXQgdGhlIENNUyBNYWRlIFNpbXBsZSAgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZyI+RGV2ZWxvcGVyIEZvcmdlPC9hPi48L2xpPg0KPGxpPlRvIG9idGFpbiBjb21tZXJjaWFsIHN1cHBvcnQsIHBsZWFzZSBzZW5kIGFuIGVtYWlsIHRvIHRoZSBhdXRob3IgYXQgPGEgaHJlZj0ibWFpbHRvOnNqZ0BjbXNtb2R1bGVzLmNvbSI+PHNqZ0BjbXNtb2R1bGVzLmNvbT48L2E+LjwvbGk+DQo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LjwvbGk+DQo8bGk+VGhlIGF1dGhvciBjYW4gb2Z0ZW4gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9ImlyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2NtcyI+Q01TIElSQyBDaGFubmVsPC9hPi48L2xpPg0KPGxpPkxhc3RseSwgeW91IG1heSBoYXZlIHNvbWUgc3VjY2VzcyBlbWFpbGluZyB0aGUgYXV0aG9yIGRpcmVjdGx5IGFuZCBncm92ZWxsaW5nIGZvciBmcmVlIHN1cHBvcnQuPC9saT4NCjxsaT5Eb25hdGlvbnMgYXJlIGdvb2QgbW90aXZhdG9ycywgdG9vLiBLZWVwIGluIG1pbmQgdGhhdCB0aGUgZG9sbGFyIGlzIHdlYWssIGFuZCBpZiB5b3UgYXJlIG5vdCBpbiB0aGUgVVMsIHlvdXIgZG9uYXRpb24gZ2V0cyBtYWduaWZpZWQuPC9saT4NCjwvdWw+DQo8cD5LZWVwIGluIG1pbmQgdGhhdCB0aGUgYXV0aG9yIGhhcyBwdXQgaHVuZHJlZHMgYW5kIGh1bmRyZWRzIG9mIGhvdXJzIGludG8gdGhlIGRldmVsb3BtZW50IG9mIHRoaXMgbW9kdWxlLiBQbGVhc2UgdGFrZSB0aGUgdGltZSB0byByZWFkIHRoZSBkb2N1bWVudGF0aW9uIGJlZm9yZSBzZW5kaW5nIHF1ZXN0aW9ucy4gRWl0aGVyIHRoYXQsIG9yIHNlbmQgeW91ciBxdWVzdGlvbnMgd3JpdHRlbiBvbiBmaW5hbmNpYWxseSBuZWdvdGlhYmxlIGluc3RydW1lbnRzIChpLmUuLCBjaGVja3Mgb3IgY2FzaCkuIEFtIEkgc291bmRpbmcgbGlrZSBhIGJyb2tlbiByZWNvcmQ/IERvIHlvdSBraWRzIHRoZXNlIGRheXMgZXZlbiBrbm93IHdoYXQgYSBicm9rZW4gcmVjb3JkIGlzPyBJIHdvdWxkIHNheSBza2lwcGluZyBDRCwgYnV0IHlvdSBtaWdodCBub3Qga25vdyB3aGF0IHRoYXQgaXMgZWl0aGVyLiBMaWtlIGEgc2FtcGxlIHRoYXQgZ290IHN0dWNrIG9uIGxvb3A/IERhbW4sIEkgYW0gZ2V0dGluZyBvbGQuIFNvIGlzIHRoaXMgcGFyYWdyYXBoLiBUaW1lIHRvIG1vdmUgb24sIGhlcmUuPC9wPg0KPHA+QXMgcGVyIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgYXMtaXMuIFBsZWFzZSByZWFkIHRoZSB0ZXh0DQpvZiB0aGUgbGljZW5zZSBmb3IgdGhlIGZ1bGwgZGlzY2xhaW1lci48L3A+DQo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4NCjxwPkNvcHlyaWdodCAmY29weTsgMjAwOCwgU2FtdWVsIEdvbGRzdGVpbiA8YSBocmVmPSJtYWlsdG86c2pnQGNtc21vZHVsZXMuY29tIj48c2pnQGNtc21vZHVsZXMuY29tPjwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4NCjxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+JzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuMTUzMzYwNTk1OS4xMjI0NzQyNTQ0LjEyMjczNTAyOTkuMTIyNzQyMjg5MS40JzsKJGxhbmdbJ3V0bXonXSA9ICcxNTY4NjEzNTMuMTIyNDc0MjU0Ni4xLjEudXRtY3NyPShkaXJlY3QpfHV0bWNjbj0oZGlyZWN0KXx1dG1jbWQ9KG5vbmUpJzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/it_IT.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0Zvcm0gQnVpbGRlcic7CiRsYW5nWydmaWVsZF90eXBlXyddID0gJ1RpcG8gZGVsIGNhbXBvIG5vbiBzZXR0YXRvJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2F0YWxvZ2VySXRlbXNGaWVsZCddID0gJ1NlbGV6aW9uYSB1bm8gKG8gcGkmdWdyYXZlOykgaXRlbSBkaSBjYXRhbG9nZXInOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldEVuZCddID0gJy1GaW5lIEdydXBwbyBDYW1waSc7CiRsYW5nWydmaWVsZF90eXBlX0ZpZWxkc2V0U3RhcnQnXSA9ICctSW5pemlvIEdydXBwbyBDYW1waSc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRGaWVsZCddID0gJ0lucHV0IHRlc3R1YWxlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkRXhwYW5kYWJsZSddID0gJ0lucHV0IFRlc3R1YWxlIChNdWx0aXBsbyknOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0QXJlYUZpZWxkJ10gPSAnQXJlYSBkaSBUZXN0byc7CiRsYW5nWydmaWVsZF90eXBlX0NoZWNrYm94RmllbGQnXSA9ICdDaGVjayBCb3gnOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEdyb3VwRmllbGQnXSA9ICdHcnVwcG8gZGkgQ2hlY2sgQm94JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUHVsbGRvd25GaWVsZCddID0gJ01lbnUgYSB0ZW5kaW5hJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTXVsdGlzZWxlY3RGaWVsZCddID0gJ011bHRpc2VsZXppb25lJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3RhdGVQaWNrZXJGaWVsZCddID0gJ1NlbGV6aW9uZSBTdGF0aSBVLlMuQS4nOwokbGFuZ1snZmllbGRfdHlwZV9Qcm92aW5jZVBpY2tlckZpZWxkJ10gPSAnU2VsZXppb25lIHByb3ZpbmNpZSBDYW5hZGVzaSc7CiRsYW5nWydmaWVsZF90eXBlX0NvdW50cnlQaWNrZXJGaWVsZCddID0gJ1NlbGV6aW9uZSBOYXppb25lJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGF0ZVBpY2tlckZpZWxkJ10gPSAnU2VsZXppb25lIERhdGEnOwokbGFuZ1snZmllbGRfdHlwZV9UaW1lUGlja2VyRmllbGQnXSA9ICdTZWxlemlvbmUgT3JhJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUmFkaW9Hcm91cEZpZWxkJ10gPSAnR3J1cHBvIGRpIFJhZGlvIEJ1dHRvbic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGlyZWN0b3InXSA9ICcqSW52aWEgcGVyIEVtYWlsIGkgUmlzdWx0YXRpIGluIGJhc2UgYWwgbWVudSBhIHRlbmRpbmEnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZpbGVEaXJlY3RvciddID0gJypTYWx2YSBpIHJpc3VsdGF0aSBpbiBiYXNlIGFsIG1lbnUgYSB0ZW5kaW5hJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25NdWx0aXNlbGVjdEZpbGVEaXJlY3RvciddID0gJypTYWx2YSBpIHJpc3VsdGF0aSBpbiB1biBmaWxlIGluIGJhc2UgYWwgbWVudSBhIHRlbmRpbmEnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvblBhZ2VSZWRpcmVjdG9yJ10gPSAnKlJlZGlyZXppb25hIGxhIHBhZ2luYSBtb2RpZmljYW5kbyBsYSBzZWxlemlvbmUgZGVsIG1lbnUgYSB0ZW5kaW5hJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbCddID0gJypJbnZpYSBwZXIgRW1haWwgaSByaXN1bHRhdGkgcGVyIGltcG9zdGFyZSBsJiMwMzk7aW5kaXJpenpvL2knOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsQ29uZmlybWF0aW9uJ10gPSAnKlZhbGlkYSB0cmFtaXRlIGluZGlyaXp6byBFbWFpbCc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRnJvbUVtYWlsQWRkcmVzc0ZpZWxkJ10gPSAnKkVtYWlsICZxdW90O0Zyb20gQWRkcmVzcyZxdW90OyBGaWVsZCwgYW5kIHNlbmQgY29weSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRmlsZSddID0gJypTY3JpdmkgaSByaXN1bHRhdGkgaW4gdW4gZmlsZSBzZW1wbGljZSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGF0YWJhc2UnXSA9ICcqTWVtb3JpenphIGkgcmlzdWx0YXRpIG5lbCBEYXRhYmFzZSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRm9ybUJyb3dzZXInXSA9ICcqTWVtb3JpenphIGkgcmlzdWx0YXRpIHBlciBpbCBtb2R1bG8gRm9ybUJyb3dzZXInOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvblVzZXJUYWcnXSA9ICcqSW52b2NhIHVuIFRhZyBkZWZpbml0byBkYWxsJiMwMzk7dXRlbnRlIGNvbiBpIHJpc3VsdGF0aSBkZWwgbW9kdWxvJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EZWxpdmVyVG9FbWFpbEFkZHJlc3NGaWVsZCddID0gJypJbnZpYSBwZXIgZW1haWwgYWxsJiMwMzk7aW5kaXJpenpvIGZvcm5pdG8gZGFsbCYjMDM5O3V0ZW50ZSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxTaXRlQWRtaW4nXSA9ICcqRW1haWwgYWxsJiMwMzk7YWRtaW4gZGVsIENNUyc7CiRsYW5nWydmaWVsZF90eXBlX1BhZ2VCcmVha0ZpZWxkJ10gPSAnLUludGVycnV6aW9uZSBkaSBwYWdpbmEnOwokbGFuZ1snZmllbGRfdHlwZV9GaWxlVXBsb2FkRmllbGQnXSA9ICdDYXJpY2EgRmlsZSc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbEFkZHJlc3NGaWVsZCddID0gJ0ludmlhIHBlciBFbWFpbCBpbCBjYW1wbyAmcXVvdDtGcm9tIEFkZHJlc3MmcXVvdDsnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxBZGRyZXNzQWdhaW5GaWVsZCddID0gJ0ludmlhIHBlciBFbWFpbCBpbCBjYW1wbyAmcXVvdDtGcm9tIEFkZHJlc3MmcXVvdDsgZGkgbnVvdm8nOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxOYW1lRmllbGQnXSA9ICdJbnZpYSBwZXIgRW1haWwgaWwgY2FtcG8gJnF1b3Q7RnJvbSBOYW1lJnF1b3Q7JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsU3ViamVjdEZpZWxkJ10gPSAnSW52aWEgcGVyIEVtYWlsIGlsIGNhbXBvICZxdW90O1N1YmplY3QmcXVvdDsnOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0aWNUZXh0RmllbGQnXSA9ICctVGVzdG8gU3RhdGljbyc7CiRsYW5nWydmaWVsZF90eXBlX1N5c3RlbUxpbmtGaWVsZCddID0gJy1MaW5rIFN0YXRpY28nOwokbGFuZ1snZmllbGRfdHlwZV9MaW5rRmllbGQnXSA9ICdMaW5rIChpbnNlcml0byBkYWxsJiMwMzk7dXRlbnRlKSc7CiRsYW5nWydmaWVsZF90eXBlX0hpZGRlbkZpZWxkJ10gPSAnLUNhbXBvIE5hc2Nvc3RvJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ29tcHV0ZWRGaWVsZCddID0gJy1DYW1wbyBDb21waWxhdG8nOwokbGFuZ1snZmllbGRfdHlwZV9VbmlxdWVJbnRlZ2VyRmllbGQnXSA9ICctSW50ZXJvIFVuaWNvIChTZXJpYWxlKSc7CiRsYW5nWyd2YWxpZGF0aW9uX25vbmUnXSA9ICdOZXNzdW5hIHZhbGlkYXppb25lJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbnVtZXJpYyddID0gJ051bWVyaWNvJzsKJGxhbmdbJ3ZhbGlkYXRpb25faW50ZWdlciddID0gJ0ludGVybyc7CiRsYW5nWyd2YWxpZGF0aW9uX2VtYWlsX2FkZHJlc3MnXSA9ICdJbmRpcml6em8gRW1haWwnOwokbGFuZ1sndmFsaWRhdGlvbl91c3Bob25lJ10gPSAnTnVtZXJvIHRlbGVmb25pY28gKFVTKSc7CiRsYW5nWyd2YWxpZGF0aW9uX211c3RfY2hlY2snXSA9ICdEZXZlIGVzc2VyZSBzcHVudGF0byc7CiRsYW5nWyd2YWxpZGF0aW9uX3JlZ2V4X21hdGNoJ10gPSAnQ29pbmNpZGUgY29uIHVuJiMwMzk7RXNwcmVzc2lvbmUgUmVnb2xhcmUnOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9ub21hdGNoJ10gPSAnTm9uIGNvaW5jaWRlIGNvbiB1biYjMDM5O0VzcHJlc3Npb25lIFJlZ29sYXJlJzsKJGxhbmdbJ3JlcXVpcmVkX2ZpZWxkX21pc3NpbmcnXSA9ICdVbiB2YWxvcmUgbm9uICZlZ3JhdmU7IHN0YXRvIGluc2VyaXRvIHBlciB1biBjYW1wbyByaWNoaWVzdG8nOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfdmFsdWUnXSA9ICdJbnNlcmlyZSB1biB2YWxvcmUgcGVyICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX251bWJlciddID0gJ0luc2VyaXJlIHVuIG51bWVybyBwZXIgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX3ZhbGlkJ10gPSAnSW5zZXJpcmUgdW4gdmFsb3JlIHZhbGlkbyBwZXIgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FuX2ludGVnZXInXSA9ICdJbnNlcmlyZSB1biB2YWxvcmUgaW50ZXJvIHBlciAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5fZW1haWwnXSA9ICdJbnNlcmlyZSB1biBpbmRpcml6em8gZW1haWwgdmFsaWRvIHBlciAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydlbWFpbF9hZGRyZXNzX2RvZXNfbm90X21hdGNoJ10gPSAnSW5kaXJpenpvIEVtYWlsIG5vbiBjb2luY2lkZSBjb24gdmFsb3JlIGluICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX3Bob25lJ10gPSAnSW5zZXJpcmUgdW4gbnVtZXJvIGRpIHRlbGVmb25vIHZhbGlkbyBwZXIgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1snbm90X3ZhbGlkX2VtYWlsJ10gPSAnJnF1b3Q7JXMmcXVvdDsgbm9uIHNlbWJyYSBlc3NlcmUgdW4gaW5kaXJpenpvIGVtYWlsIHZhbGlkbyEnOwokbGFuZ1sncGxlYXNlX2VudGVyX25vX2xvbmdlciddID0gJ0luc2VyaXJlIHVuIHZhbG9yZSBsdW5nbyBub24gcGkmdWdyYXZlOyBkaSAlcyBjYXJhdHRlcmknOwokbGFuZ1sndGl0bGVfbGlzdF9kZWxpbWl0ZXInXSA9ICdDYXJhdHRlcmUgZGEgdXNhcmUgY29tZSBkZWxpbWl0YXRvcmUgbmVpIHJpc3VsdGF0aSBjaGUgcml0b3JuYW5vIGNvbiBwaSZ1Z3JhdmU7IGRpIHVuIHZhbG9yZSc7CiRsYW5nWyd5b3VfbmVlZF9wZXJtaXNzaW9uJ10gPSAnQXZldGUgYmlzb2dubyBkZWwgcGVybWVzc28gJnF1b3Q7JXMmcXVvdDsgcGVyIGVzZWd1aXJlIHF1ZXN0YSBvcGVyYXppb25lLic7CiRsYW5nWydsYWNrcGVybWlzc2lvbiddID0gJ1NwaWFjZW50ZSEgTm9uIGF2ZXRlIGkgcHJpdmlsZWdpIG5lY2Vzc2FyaSBwZXIgYWNjZWRlcmUgYSBxdWVzdGEgc2V6aW9uZS4nOwokbGFuZ1snZmllbGRfb3JkZXJfdXBkYXRlZCddID0gJ09yZGluZSBkZWkgY2FtcGkgYWdnaW9ybmF0by4nOwokbGFuZ1snZm9ybV9kZWxldGVkJ10gPSAnRm9ybSBjYW5jZWxsYXRvLic7CiRsYW5nWydmaWVsZF9kZWxldGVkJ10gPSAnQ2FtcG8gY2FuY2VsbGF0by4nOwokbGFuZ1snY29uZmlndXJhdGlvbl91cGRhdGVkJ10gPSAnQ29uZmlndXJhemlvbmUgYWdnaW9ybmF0YS4nOwokbGFuZ1sneW91X211c3RfY2hlY2snXSA9ICdEb3ZldGUgc2VsZXppb25hcmUgJnF1b3Q7JXMmcXVvdDsgcGVyIGNvbnRpbnVhcmUuJzsKJGxhbmdbJ211c3Rfc3BlY2lmeV9vbmVfZGVzdGluYXRpb24nXSA9ICdEb3ZldGUgc3BlY2lmaWNhcmUgYWxtZW5vIHVuIGluZGlyaXp6byBkaSBkZXN0aW5hemlvbmUhJzsKJGxhbmdbJ2FyZV95b3Vfc3VyZV9kZWxldGVfZm9ybSddID0gJ1NpZXRlIHNpY3VyaSBkaSB2b2xlciBjYW5jZWxsYXJlIGlsIGZvcm0gJXM/JzsKJGxhbmdbJ2FyZV95b3Vfc3VyZV9kZWxldGVfZmllbGQnXSA9ICdTaWV0ZSBzaWN1cmkgZGkgdm9sZXIgY2FuY2VsbGFyZSBpbCBjYW1wbyAlcz8nOwokbGFuZ1snbm90aWNlX3NlbGVjdF90eXBlJ10gPSAnT3B6aW9uaSBhdmFuemF0ZSBub24gc29ubyBkaXNwb25pYmlsaSBmaW5vIGFsbGEgc2NlbHRhIGRlbCB0aXBvIGRpIGNhbXBvLic7CiRsYW5nWydmaWVsZF9uYW1lX2luX3VzZSddID0gJ0lsIG5vbWUgZGVsIGNhbXBvICZxdW90OyVzJnF1b3Q7ICZlZ3JhdmU7IGdpJmFncmF2ZTsgaW4gdXNvLiBTaSBwcmVnYSBkaSB1c2FyZSBub21pIGRlaSBjYW1waSB1bml2b2NpLCBvIGRpc2FiaWxpdGFyZSBub21pIGRlaSBjYW1waSB1bml2b2NpIG5lbGxhIGNvbmZpZ3VyYXppb25lIGRpIEZvcm0gQnVpbGRlci4nOwokbGFuZ1snZmllbGRfbm9fbmFtZSddID0gJ0kgY2FtcGkgZGV2b25vIGF2ZXJlIHVuIG5vbWUsIGEgbWVubyBkaSBkaXNhYmlsaXRhcmUgbCYjMDM5O29wemlvbmUgbmVsbGEgY29uZmlndXJhemlvbmUgZGkgRm9ybSBCdWlsZGVyLic7CiRsYW5nWydhbm9ueW1vdXMnXSA9ICdBbm9uaW1vJzsKJGxhbmdbJ2FiYnJldmlhdGlvbl9sZW5ndGgnXSA9ICdMdW5naGV6emE6ICVzJzsKJGxhbmdbJ2JveGVzJ10gPSAnJXMgY2FzZWxsZSc7CiRsYW5nWydvcHRpb25zJ10gPSAnJSBvcHppb25pJzsKJGxhbmdbJ3RleHRfbGVuZ3RoJ10gPSAnJSBjYXJhdHRlcmkuJzsKJGxhbmdbJ29yZGVyJ10gPSAnT3JkaW5lJzsKJGxhbmdbJ3Vuc3BlY2lmaWVkJ10gPSAnW25vbiBzcGVjaWZpY2F0b10nOwokbGFuZ1snYWRkZWQnXSA9ICdhZ2dpdW50byc7CiRsYW5nWyd1cGRhdGVkJ10gPSAnYWdnaW9ybmF0byc7CiRsYW5nWydzb3J0X29wdGlvbnMnXSA9ICdPcmRpbmEgbGUgb3B6aW9uaSBuZWxsJiMwMzk7b3V0cHV0JzsKJGxhbmdbJ3NlbGVjdF9vbmUnXSA9ICdTZWxlemlvbmFyZSB1bm8nOwokbGFuZ1snc2VsZWN0X3R5cGUnXSA9ICdTZWxlemlvbmFyZSB0aXBvJzsKJGxhbmdbJ3RvJ10gPSAnQSc7CiRsYW5nWyd5ZXMnXSA9ICdTJmlncmF2ZTsnOwokbGFuZ1snbm8nXSA9ICdObyc7CiRsYW5nWydyZWNpcGllbnRzJ10gPSAnZGVzdGluYXRhcmknOwokbGFuZ1snZmlsZV9jb3VudCddID0gJyUgcG9zc2liaWxpIGZpbGUnOwokbGFuZ1snZGVzdGluYXRpb25fY291bnQnXSA9ICclcyBkZXN0aW5hemlvbmknOwokbGFuZ1snc2F2ZSddID0gJ1NhbHZhJzsKJGxhbmdbJ2FkZCddID0gJ0FnZ2l1bmdpJzsKJGxhbmdbJ3VwZGF0ZSddID0gJ0FnZ2lvcm5hJzsKJGxhbmdbJ3NhdmVfYW5kX2NvbnRpbnVlJ10gPSAnU2FsdmEgZSBjb250aW51YSBjb24gbGEgbW9kaWZpY2EnOwokbGFuZ1snaW5mb3JtYXRpb24nXSA9ICdJbmZvcm1hemlvbmUnOwokbGFuZ1snYXV0b21hdGljJ10gPSAnQXV0b21hdGljbyc7CiRsYW5nWydmb3JtcyddID0gJ01vZHVsaSc7CiRsYW5nWydmb3JtJ10gPSAnTW9kdWxvICVzJzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb24nXSA9ICdDb25maWd1cmF6aW9uZSc7CiRsYW5nWydmaWVsZF9yZXF1aXJlbWVudF91cGRhdGVkJ10gPSAnU3RhdG8gZGVsIGNhbXBvIHJpY2hpZXN0byBhZ2dpb3JuYXRvLic7CiRsYW5nWydtYXhpbXVtX3NpemUnXSA9ICdEaW1lbnNpb25lIG1hc3NpbWEnOwokbGFuZ1sncGVybWl0dGVkX2V4dGVuc2lvbnMnXSA9ICdFc3RlbnNpb25pJzsKJGxhbmdbJ3Blcm1pdHRlZF9maWxldHlwZXMnXSA9ICdUaXBpIGRpIGZpbGUgcGVybWVzc2knOwokbGFuZ1snZmlsZV90b29fbGFyZ2UnXSA9ICdJbCBmaWxlIGNhcmljYXRvICZlZ3JhdmU7IHRyb3BwbyBncmFuZGUhIExhIGRpbWVuc2lvbmUgbWFzc2ltYSAmZWdyYXZlOzonOwokbGFuZ1snaWxsZWdhbF9maWxlX3R5cGUnXSA9ICdRdWVzdG8gdGlwbyBkaSBmaWxlIG5vbiBwdSZvZ3JhdmU7IGVzc2VyZSBjYXJpY2F0by4gU2kgcHJlZ2EgZGkgdmVyaWZpY2FyZSBjaGUgbCYjMDM5O2VzdGVuc2lvbmUgc2lhIGNvcnJldHRhLic7CiRsYW5nWyd1cGxvYWQnXSA9ICdDYXJpY2EnOwokbGFuZ1snZm9ybV9pbXBvcnRlZCddID0gJ0Zvcm0gSW1wb3J0YXRvLic7CiRsYW5nWydmb3JtX2ltcG9ydF9mYWlsZWQnXSA9ICdJbXBvcnRhemlvbmUgZGVsIEZvcm0gZmFsbGl0YSEgQyYjMDM5OyZlZ3JhdmU7IHVuIHByb2JsZW1hIGNvbiBpbCBmb3JtYXRvIGRlbCBmaWxlIFhNTC4nOwokbGFuZ1sncm93cyddID0gJyVzIHJpZ2hlJzsKJGxhbmdbJ2NvbHMnXSA9ICclcyBjb2xvbm5lJzsKJGxhbmdbJzEyX2hvdXInXSA9ICdGb3JtYXRvIDEyIG9yZSc7CiRsYW5nWycyNF9ob3VyJ10gPSAnRm9ybWF0byAyNCBvcmUnOwokbGFuZ1snaG91ciddID0gJ09yZSc7CiRsYW5nWydtaW4nXSA9ICdNaW51dGknOwokbGFuZ1snbWVyaWQnXSA9ICdNZXJpZGlhbm8nOwokbGFuZ1snZGF0ZV9yYW5nZSddID0gJ0dhbW1hIFZhbG9yaTogJXMgLSAlcyc7CiRsYW5nWyd0aGFua3MnXSA9ICdHcmF6aWUhIElsIHZvc3RybyBpbnNlcmltZW50byAmZWdyYXZlOyBzdGF0byByaWNldnV0by4nOwokbGFuZ1snZWRpdCddID0gJ01vZGlmaWNhJzsKJGxhbmdbJ2RlbGV0ZSddID0gJ0VsaW1pbmEnOwokbGFuZ1snZGF5J10gPSAnR2lvcm5vJzsKJGxhbmdbJ21vbiddID0gJ01lc2UnOwokbGFuZ1sneWVhciddID0gJ0Fubm8nOwokbGFuZ1snbm9uZSddID0gJyhuZXNzdW5vKSc7CiRsYW5nWydjc3MnXSA9ICdTdGlsaSBDU1MnOwokbGFuZ1sndW5pbnN0YWxsZWQnXSA9ICdNb2R1bG8gZGlzaW5zdGFsbGF0by4nOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnVmVyc2lvbmUgbW9kdWxvICVzIGluc3RhbGxhdGEuJzsKJGxhbmdbJ3VwZ3JhZGVkJ10gPSAnTW9kdWxvIGFnZ2lvcm5hdG8gYWxsYSB2ZXJzaW9uZSAlcy4nOwokbGFuZ1snYnV0dG9uX3ByZXZpb3VzJ10gPSAnSW5kaWV0cm8uLi4nOwokbGFuZ1snYnV0dG9uX3N1Ym1pdCddID0gJ0ludmlhIEZvcm0nOwokbGFuZ1snYnV0dG9uX2NvbnRpbnVlJ10gPSAnQ29udGludWEuLi4nOwokbGFuZ1sndmFsdWVfY2hlY2tlZCddID0gJ1NlbGV6aW9uYXRvJzsKJGxhbmdbJ3ZhbHVlX3VuY2hlY2tlZCddID0gJ0Rlc2VsZXppb25hdG8nOwokbGFuZ1sndGFiX21haW4nXSA9ICdQcmluY2lwYWxlJzsKJGxhbmdbJ3RhYl9zeW1ib2wnXSA9ICdJbXBvc3RhemlvbmkgZGkgdmlzdWFsaXp6YXppb25lIGRlbCBGb3JtJzsKJGxhbmdbJ3RhYl9zdWJtaXQnXSA9ICdJbnZpbyBkZWwgRm9ybSc7CiRsYW5nWyd0YWJfY2FwdGNoYSddID0gJ0ltcG9zdGF6aW9uaSBDYXB0Y2hhJzsKJGxhbmdbJ3RhYl9hZHZhbmNlZCddID0gJ0ltcG9zdGF6aW9uaSBBdmFuemF0ZSc7CiRsYW5nWyd0YWJfdGVtcGxhdGVsYXlvdXQnXSA9ICdNb2RlbGxvIEZvcm0nOwokbGFuZ1sndGFiX3N1Ym1pc3Npb250ZW1wbGF0ZSddID0gJ01vZGVsbG8gcGVyIGwmIzAzOTtpbnZpbyc7CiRsYW5nWydjYW51c2Vfc21hcnR5J10gPSAnPGVtPlZhcmlhYmlsaSBzbWFydHkgc29ubyB2YWxpZGUgaW4gcXVlc3RvIGNhbXBvLjxlbT4nOwokbGFuZ1snYWRkX29wdGlvbnMnXSA9ICdBZ2dpdW5nZXJlIHBpJnVncmF2ZTsgb3B6aW9uaSc7CiRsYW5nWydkZWxldGVfb3B0aW9ucyddID0gJ0NhbmNlbGxhcmUgbGUgb3B6aW9uaSBzZWxlemlvbmF0ZSc7CiRsYW5nWydhZGRfY2hlY2tib3hlcyddID0gJ0FnZ2l1bmdlcmUgcGkmdWdyYXZlOyBDYXNlbGxlIGEgc3B1bnRhJzsKJGxhbmdbJ2RlbGV0ZV9jaGVja2JveGVzJ10gPSAnRWxpbWluYXJlIGxlIENhc2VsbGUgc2VsZXppb25hdGUnOwokbGFuZ1snYWRkX2FkZHJlc3MnXSA9ICdBZ2dpdW5nZXJlIGFsdHJvIEluZGlyaXp6byc7CiRsYW5nWydkZWxldGVfYWRkcmVzcyddID0gJ0NhbmNlbGxhcmUgZ2xpIEluZGlyaXp6aSBzZWxlemlvbmF0aSc7CiRsYW5nWydhZGRfZGVzdGluYXRpb24nXSA9ICdBZ2dpdW5nZXJlIGFsdHJvIERlc3RpbmF0YXJpbyc7CiRsYW5nWydkZWxldGVfZGVzdGluYXRpb24nXSA9ICdDYW5jZWxsYXJlIGkgRGVzdGluYXRhcmkgc2VsZXppb25hdGknOwokbGFuZ1snc3VzcGVjdGVkX3NwYW0nXSA9ICdUcm9wcGUgbWFpbCBnZW5lcmF0ZSBkYWwgVm9zdHJvIGluZGlyaXp6byBJUC4gSWwgY29kaWNlIEFudGktU3BhbSBoYSBpbXBlZGl0byBsYSBzcGVkaXppb25lLic7CiRsYW5nWydzdXNwZWN0ZWRfc3BhbV9sb2cnXSA9ICdGZXJtYXRvIHVuIHNvc3BldHRvIHNwYW0gZGFsbCYjMDM5O2luZGlyaXp6byBJUCAlcyAuJzsKJGxhbmdbJ3Jlb3JkZXInXSA9ICdSaW9yZGluYSBjYW1waSc7CiRsYW5nWydjYW5jZWwnXSA9ICdDYW5jZWxsYSc7CiRsYW5nWyd2YWx1ZV9zZXQnXSA9ICdWYWxvcmUgc2V0dGF0bzogJXMnOwokbGFuZ1snaGVscF9jYXRhbG9nZXJfYXR0cmlidXRlX2ZpZWxkcyddID0gJ0JlbG93IGlzIGEgbGlzdCBvZiB0aGUgYXR0cmlidXRlcyBhdmFpbGFibGUgZnJvbSB0aGUgQ2F0YWxvZ2VyIG1vZHVsZS48YnIvPllvdSBjYW4gb3B0aW9uYWxseSBzcGVjaWZ5IHZhbGlkIHJhbmdlcywgdmFsdWVzLCBvciBudW1lcm91cyB2YWx1ZXMgdG8gYmUgdXNlZCBpbiBmaWx0ZXJpbmcgdGhlIGxpc3Qgb2YgaXRlbXMgdGhhdCBpcyBkaXNwbGF5ZWQgdG8gdGhlIHVzZXIuPGJyLz4NCjxici8+DQo8c3Ryb25nPlJhbmdlczo8L3N0cm9uZz48YnIvPg0KUmFuZ2VzIGNhbiBiZSBzcGVjaWZpZWQgYnkgc2lnbmlmeWluZyBhIG1pbmltdW0gYW5kIG1heGltdW0gdmFsdWUgdXNpbmcgdGhpcyBzeW50YXg6ICZxdW90O3JhbmdlOiBtaW52YWx1ZSB0byBtYXh2YWx1ZSZxdW90Ozxici8+DQo8YnIvPg0KPHN0cm9uZz5NdWx0aXBsZSBWYWx1ZXM6PC9zdHJvbmc+PGJyLz4NClRvIHNwZWNpZnkgbXVsdGlwbGUgdmFsdWVzIGZvciBhbiBhdHRyaWJ1dGUgdXNlIHRoZSBzeW50YXggJnF1b3Q7bXVsdGk6IHZhbHVlMXx2YWx1ZTJ8dmFsdWUzJnF1b3Q7PGJyLz4NCjxici8+DQo8c3Ryb25nPlZhbHVlcyBmcm9tIGhpZGRlbiBmaWVsZHM8L3N0cm9uZz48YnIvPg0KVG8gc3BlY2lmeSBhIHZhbHVlIGZyb20gYSBoaWRkZW4gZmllbGQgdXNlIHRoZSBzeW50YXggeyRmbGRfaWR9PGJyLz4NCjxici8+JzsKJGxhbmdbJ2hlbHBfbmFtZV9yZWdleCddID0gJ1VuYSBlc3ByZXNzaW9uZSByZWdvbGFyZSBwZXIgcGVybWV0dGVyZSBpbCBmaWx0cmFnZ2lvIGRlZ2xpIEl0ZW0gZGkgQ2F0YWxvZ2VyIHBlciBub21lJzsKJGxhbmdbJ2hlbHBfZmllbGRfaGVpZ2h0J10gPSAnTGEgYWx0ZXp6YSBkZWwgY2FtcG8gbXVsdGlzZWxlY3QnOwokbGFuZ1sndGl0bGVfbmFtZV9yZWdleCddID0gJ0VzcHJlc3Npb25lIHJlZ29sYXJlIGRlZ2xpIEl0ZW0gbmFtZSBkaSBDYXRhbG9nZXInOwokbGFuZ1sndGl0bGVfZmllbGRfaGVpZ2h0J10gPSAnQ2FtcG8gQWx0ZXp6YSc7CiRsYW5nWyd0aXRsZV9maWxlX3BhdGgnXSA9ICdDYXJ0ZWxsYSBkaSBkZXN0aW5hemlvbmUgcGVyIGkgZmlsZSBkaSB1c2NpdGEnOwokbGFuZ1sndGl0bGVfdWR0X25hbWUnXSA9ICdUYWcgRGVmaW5pdG8gZGFsbCYjMDM5O1V0ZW50ZSc7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2Rlc3RwYWdlJ10gPSAnUGFnaW5hIGRpIHJpdG9ybm8gY29uIGlsIGxpbmsgZGkgdXBsb2FkJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZG1vZHVsZV9zdW1tYXJ5J10gPSAnSW52aWF0byBjb24gRm9ybUJ1aWRlcic7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2NhdGVnb3J5J10gPSAnQ2F0ZWdvcmlhIGRpIFVwbG9hZCc7CiRsYW5nWyd0aXRsZV9zZW5kdG9fdXBsb2FkcyddID0gJ0ludmlhIHF1ZXN0byBmaWxlIGFsIG1vZHVsbyBkaSB1cGxvYWQnOwokbGFuZ1sndGl0bGVfbGVnZW5kJ10gPSAnTGVnZW5kYSc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX2xlbmd0aCddID0gJ01hc3NpbWEgbHVuZ2hlenphJzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2xhYmVsJ10gPSAnRXRpY2hldHRhIGRlbCBDaGVja2JveCc7CiRsYW5nWyd0aXRsZV9yYWRpb19sYWJlbCddID0gJ0V0aWNoZXR0YSBkZWwgUmFkaW8gQnV0dG9uJzsKJGxhbmdbJ3RpdGxlX2NoZWNrZWRfdmFsdWUnXSA9ICdWYWxvcmUgcXVhbmRvIHNlbGV6aW9uYXRvJzsKJGxhbmdbJ3RpdGxlX3VuY2hlY2tlZF92YWx1ZSddID0gJ1ZhbG9yZSBxdWFuZG8gbm9uIHNlbGV6aW9uYXRvLic7CiRsYW5nWyd0aXRsZV9jaGVja2JveF9kZXRhaWxzJ10gPSAnRGV0dGFnbGkgZGVsIEdydXBwbyBkaSBDaGVja2JveCc7CiRsYW5nWyd0aXRsZV9kZWxldGUnXSA9ICdFbGltaW5hcmU/JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9vbmVfbWVzc2FnZSddID0gJ1Rlc3RvICZxdW90O1NlbGV6aW9uYXJlIFVubyZxdW90Oyc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fdmFsdWUnXSA9ICdWYWxvcmUgc2VsZXppb25hdG8nOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX2Rpc3BsYXluYW1lJ10gPSAnU2VsZXppb25hIGlsIG5vbWUgZGEgdmlzdWFsaXp6YXJlJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl9zdWJqZWN0J10gPSAnU2VsZXppb25lIE9nZ2V0dG8nOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfY291bnRyeSddID0gJ1NlbGV6aW9uZSBwcmVkZWZpbml0YSc7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9zdGF0ZSddID0gJ1NlbGV6aW9uZSBwcmVkZWZpbml0YSc7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9wcm92aW5jZSddID0gJ1NlbGV6aW9uZSBwcmVkZWZpbml0YSc7CiRsYW5nWyd0aXRsZV9vcHRpb25fbmFtZSddID0gJ05vbWUgb3B6aW9uZSc7CiRsYW5nWyd0aXRsZV9vcHRpb25fdmFsdWUnXSA9ICdWYWxvcmUgaW52aWF0byc7CiRsYW5nWyd0aXRsZV9wdWxsZG93bl9kZXRhaWxzJ10gPSAnT3B6aW9uaSBQdWxsZG93bic7CiRsYW5nWyd0aXRsZV9tdWx0aXNlbGVjdF9kZXRhaWxzJ10gPSAnT3B6aW9uaSBNdWx0aXNlbGVjdCc7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9hZGRyZXNzJ10gPSAnSW5kaXJpenpvIGVtYWlsIGRpIGRlc3RpbmF6aW9uZSc7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9maWxlbmFtZSddID0gJ05vbWUgZmlsZSBkZXN0aW5hemlvbmUnOwokbGFuZ1sndGl0bGVfZW1haWxfZnJvbV9uYW1lJ10gPSAnJnF1b3Q7RnJvbSBuYW1lJnF1b3Q7IGZvciBlbWFpbCc7CiRsYW5nWyd0aXRsZV9yZWxheGVkX2VtYWlsX3JlZ2V4J10gPSAnVXNhIHVuYSB2YWxpZGF6aW9uZSBzZW1wbGljZSBkaSBlbWFpbCc7CiRsYW5nWyd0aXRsZV9yZWxheGVkX3JlZ2V4X2xvbmcnXSA9ICdVc2EgdW5hIHZhbGlkYXppb25lIHNlbXBsaWNlIGRpIGVtYWlsIChlcy4sIHBlcm1ldHRlICZxdW90O3hAeSZxdW90OyBpbnZlY2UgZGkgcmljaGllZGVyZSAmcXVvdDt4QHkudGxkJnF1b3Q7KSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9mcm9tX2FkZHJlc3MnXSA9ICcmcXVvdDtJbmRpcml6em8gRnJvbSZxdW90OyBwZXIgZW1haWwnOwokbGFuZ1sndGl0bGVfZW1haWxfZW5jb2RpbmcnXSA9ICdJbnNpZW1lIGRpIGNhcmF0dGVyaSBkaSBlbmNvZGluZyBwZXIgZW1haWwnOwokbGFuZ1sndGl0bGVfZGlyZWN0b3JfZGV0YWlscyddID0gJ1RlbmRpbmEgZGVpIGRldHRhZ2xpIGRlZ2xpIEVtYWlsZXInOwokbGFuZ1sndGl0bGVfZmlsZV9uYW1lJ10gPSAnTm9tZSBGaWxlJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX3N1YmplY3QnXSA9ICdPZ2dldHRvIGRlbGxhIEVtYWlsJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmFtZSddID0gJ05vbWUgRm9ybSc7CiRsYW5nWyd0aXRsZV9mb3JtX3N0YXR1cyddID0gJ1N0YXRvIGRlbCBGb3JtJzsKJGxhbmdbJ3RpdGxlX3JlYWR5X2Zvcl9kZXBsb3ltZW50J10gPSAnUHJvbnRvIHBlciBEZXBsb3ltZW50JzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTEnXSA9ICdOb24gcHJvbnRvJzsKJGxhbmdbJ3RpdGxlX3JlZGlyZWN0X3BhZ2UnXSA9ICdQYWdpIGRhIHJpZGlyaWdlcmUgZG9wbyB1biBmb3JtIHN1Ym1pc3Npb24nOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MiddID0gJ1BsZWFzZSBhZGQgYSBmaWVsZCB0byB0aGUgZm9ybSBzbyB0aGF0IHRoZSB1c2VyJiMwMzk7cyBpbnB1dCBnZXRzIGhhbmRsZWQuIFlvdSBjYW4nOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5X2xpbmsnXSA9ICd1c2EgcXVlc3RhIHNjb3JjaWF0b2lhJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fYWxpYXMnXSA9ICdGb3JtIEFsaWFzJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fZmllbGRzJ10gPSAnQ2FtcGkgRm9ybSc7CiRsYW5nWyd0aXRsZV9maWVsZF9pZCddID0gJ0lkIGNhbXBvJzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRhbGlhc2VzJ10gPSAnTW9zdHJhIENhbXBpIEFsaWFzZXMnOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGFsaWFzZXNfbG9uZyddID0gJ0NsaWNrIHN1IHF1ZXN0byB2aXN1YWxpenphIGNhbXBpIGFsaWFzZXMgcXVhbmRvIGFnZ2l1bmdpIG8gbW9kaWZpY2hpIHVuIGZvcm0nOwokbGFuZ1sndGl0bGVfZmllbGRfbmFtZSddID0gJ05vbWUgY2FtcG8nOwokbGFuZ1sndGl0bGVfZmllbGRfYWxpYXMnXSA9ICdDYW1wbyBBbGlhcyc7CiRsYW5nWyd0aXRsZV9yYWRpb2dyb3VwX2RldGFpbHMnXSA9ICdEZXR0YWdsaW8gZGVsIGdydXBwbyBSYWRpbyBCdXR0b24nOwokbGFuZ1sndGl0bGVfZmllbGRfdHlwZSddID0gJ1RpcG8gY2FtcG8nOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MyddID0gJ2NyZWEgdW4gY2FtcG8gcGVyIHRlbmVyZSBpbCBmb3JtLic7CiRsYW5nWyd0aXRsZV9hZGRfbmV3X2Zvcm0nXSA9ICdBZ2dpdW5nZXJlIG51b3ZvIEZvcm0nOwokbGFuZ1sndGl0bGVfc2hvd192ZXJzaW9uJ10gPSAnTW9zdHJhIGxhIHZlcnNpb25lIGRpIEZvcm0gQnVpbGRlcj8nOwokbGFuZ1sndGl0bGVfc2hvd192ZXJzaW9uX2xvbmcnXSA9ICdRdWVzdG8gaW5zZXJpc2NlIGxhIHZlcnNpb25lIGluc3RhbGxhdGEgZGkgRm9ybSBCdWlsZGVyIGluIHVuIGNvbW1lbnRvIHBlciBhaXV0YXJlIGlsIGRlYnVnJzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZmllbGQnXSA9ICdBZ2dpdW5nZXJlIG51b3ZvIGNhbXBvJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fc3VibWl0X2J1dHRvbiddID0gJ1Rlc3RvIGRlbCBib3R0b25lIGRpIEludmlvIGRlbCBGb3JtJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5J10gPSAnQWdnaXVuZ28gY29kaWNlIEphdmFzY3JpcHQgYWwgYm90dG9uZSBkaSBJbnZpbyBwZXIgZXZpdGFyZSBlcnJvcmkgZGkgaW52aWkgbXVsdGlwbGk/JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5X2hlbHAnXSA9ICdBZ2dpdW5nZSBzY3JpcHQgaW4gbW9kbyBzaWN1cm8nOwokbGFuZ1sndGl0bGVfZm9ybV9uZXh0X2J1dHRvbiddID0gJ0Zvcm0gJnF1b3Q7TmV4dCZxdW90OyBCdXR0b24gVGV4dCAodXNlZCBmb3IgbXVsdGlwYWdlIGZvcm1zKSc7CiRsYW5nWyd0aXRsZV9mb3JtX3ByZXZfYnV0dG9uJ10gPSAnRm9ybSAmcXVvdDtQcmV2aW91cyZxdW90OyBCdXR0b24gVGV4dCAodXNlZCBmb3IgbXVsdGlwYWdlIGZvcm1zKSc7CiRsYW5nWyd0aXRsZV9maWVsZF92YWxpZGF0aW9uJ10gPSAnVmFsaWRhemlvbmUgQ2FtcG8nOwokbGFuZ1sndGl0bGVfZmllbGRfdG9fdmFsaWRhdGUnXSA9ICdDYW1wbyBkYSB2YWxpZGFyZSc7CiRsYW5nWyd0aXRsZV9maWVsZF9jc3NfaWQnXSA9ICdJRCBDU1MgIHBlciBxdWVzdG8gY2FtcG8nOwokbGFuZ1sndGl0bGVfZm9ybV9jc3NfY2xhc3MnXSA9ICdTdGlsZSBDU1MgcGVyIHF1ZXN0byBGb3JtJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2Nzc19jbGFzcyddID0gJ1N0aWxlIENTUyBwZXIgcXVlc3RvIENhbXBvJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcHJlZGlzcGxheV91ZHQnXSA9ICdVc2VyIERlZmluZWQgVGFnIGRhIGNoaWFtYXJlIFBSSU1BIGNoZSBpbCBmb3JtIHZlbmdhIHZpc3VhbGl6emF0byc7CiRsYW5nWyd0aXRsZV9mb3JtX3JlcXVpcmVkX3N5bWJvbCddID0gJ1NpbWJvbG8gcGVyIG1hcmNhcmUgaWwgQ2FtcG8gcmljaGllc3RvJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkJ10gPSAnUmljaGllc3RvJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2xvbmcnXSA9ICdSaWNoaWVkZSB1bmEgcmlzcG9zdGEgcGVyIHF1ZXN0byBDYW1wbyc7CiRsYW5nWyd0aXRsZV9oaWRlX2xhYmVsJ10gPSAnRXRpY2hldHRhIG5hc2Nvc3RhJzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWxfbG9uZyddID0gJ05hc2NvbmRlIGlsIG5vbWUgZGVsIENhbXBvIG5lbCBGb3JtJzsKJGxhbmdbJ3RpdGxlX3RleHQnXSA9ICdUZXN0byBzdGF0aWNvIGRhIHZpc3VhbGl6emFyZSc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZWdleCddID0gJ1JlZ2V4IGRpIHZhbGlkYXppb25lJzsKJGxhbmdbJ3RpdGxlX2xpbmVzX3RvX3Nob3cnXSA9ICdOdW1lcm8gZGkgbGluZWUgZGEgdmlzdWFsaXp6YXJlJzsKJGxhbmdbJ25vX2RlZmF1bHQnXSA9ICdOZXNzdW4gRGVmYXVsdCc7CiRsYW5nWydyZWRpcmVjdF9hZnRlcl9hcHByb3ZhbCddID0gJ1BhZ2luYSBkb3ZlIHJlZGlyaWdlcmUgZG9wbyBsJiMwMzk7YXBwcm92YXppb25lJzsKJGxhbmdbJ3RpdGxlX3JlZ2V4X2hlbHAnXSA9ICdRdWVzdGEgZXNwcmVzc2lvbmUgcmVnb2xhcmUgc2FyJmFncmF2ZTsgdXRpbGl6emF0YSBzb2xvIHNlICZxdW90O3ZhbGlkYXRpb24gdHlwZSZxdW90OyBpcyBjb25maWd1cmF0byBjb24gbCYjMDM5O29wemlvbmUgcmVnZXgtcmVsYXRlZC4gSW5jbHVkZSB1biByZWdleCBzdGlsZSBQZXJsLCBpbmNsdXNvIGFuY2hlIGxlIGJhcnJlIHN0YXJ0L3N0b3AgZSBmbGFncyAoZXMuLCAmcXVvdDsvaW1hZ2VcLihcZCspL2kmcXVvdDspJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2FiYnJldiddID0gJ1JpY2hpZXN0byc7CiRsYW5nWyd0aXRsZV9oaWRlX2Vycm9ycyddID0gJ05vc2NvbmRpIGdsaSBFcnJvcmknOwokbGFuZ1sndGl0bGVfZm9ybV9kaXNwbGF5dHlwZSddID0gJ1RpcG8gZGkgRm9ybSBkYSB2aXN1YWxpenphcmUnOwokbGFuZ1sndGl0bGVfaGlkZV9lcnJvcnNfbG9uZyddID0gJ1ByZXZpZW5lIGkgbWVzc2FnZ2kgZGkgZGVidWcgLyBlcnJvcmUgZGEgZXNzZXJlIHZpc2liaWxpIGFsbCYjMDM5O3V0ZW50ZS4nOwokbGFuZ1sndGl0bGVfZW1haWxfdGVtcGxhdGUnXSA9ICdNb2RlbGxvIEVtYWlsJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZSddID0gJ0RpbWVuc2lvbmUgbWFzc2ltYSBkZWwgZmlsZSBkaSB1cGxvYWQgKGtpbG9ieXRlcyknOwokbGFuZ1sndGl0bGVfbWF4aW11bV9zaXplX2xvbmcnXSA9ICdRdWVzdGEgbGltaXRhemlvbmUgc2kgYWdnaXVuZ2UgYSBxdWFsc2lhc2kgbGltaXRlIGRlbGxhIGNvbmZpZ3VyYXppb25lIGRpIHBocCBvIGRlbCB3ZWIgc2VydmVyJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zJ10gPSAnRXN0ZW5zaW9uaSBwZXJtZXNzZSc7CiRsYW5nWyd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9uc19sb25nJ10gPSAnSW5zZXJpcmUgdW5hIGxpc3RhIHNlcGFyYXRhIGRhIHZpcmdvbGUsIGVzY2x1ZGVuZG8gaSBwdW50aSAoZXMuLCAmcXVvdDtqcGcsZ2lmLGpwZWcmcXVvdDspLiBHbGkgc3Bhemkgc2FyYW5ubyBpZ25vcmF0aS4gTGFzY2lhbmRvIHZ1b3RvIHNpZ25pZmljYSBjaGUgbm9uIGNpIHNhcmFubm8gcmVzdHJpemlvbmkuJzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnMnXSA9ICdWaXN1YWxpenphemlvbmUgcmlzdHJldHRhPyc7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zX2xvbmcnXSA9ICdWaXN1YWxpenphcmUgcXVhbHNpYXNpIHJlc3RyaXppb25lIGRlbGxlIGRpbWVuc2lvbmUgZSBlc3RlbnNpb25lIGNvbiBpbCBjYW1wbyB1cGxvYWQ/JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSB1c2F0byBwZXIgaWwgRm9ybSBkaSB2aXN1YWxpenphemlvbmUnOwokbGFuZ1sndGl0bGVfcGFnZV94X29mX3knXSA9ICdQYWdpbmEgJXMgZGkgJXMnOwokbGFuZ1sndGl0bGVfbm9fYWR2YW5jZWRfb3B0aW9ucyddID0gJ0lsIGNhbXBvIG5vbiBoYSBvcHppb25pIGF2YW56YXRlLic7CiRsYW5nWyd0aXRsZV9mb3JtX3Vuc3BlY2lmaWVkJ10gPSAnVGVzdG8gZGkgcml0b3JubyBwZXIgdW4gdmFsb3JlIGRpIGNhbXBvIG5vbiBzcGVjaWZpY2F0byc7CiRsYW5nWyd0aXRsZV9lbmFibGVfZmFzdGFkZF9sb25nJ10gPSAnQWJpbGl0byBsJiMwMzk7YWRkaXppb25lIHZlbG9jZSBkZWxsZSB0ZW5kaW5lIGRlaSBGb3JtPyc7CiRsYW5nWyd0aXRsZV9lbmFibGVfZmFzdGFkZCddID0gJ0FiaWxpdG8gbCYjMDM5O2FkZGl6aW9uZSB2ZWxvY2UgZGVsbGEgdGVuZGluZT8nOwokbGFuZ1sndGl0bGVfZmFzdGFkZCddID0gJ0Zhc3QgZmllbGQgYWRkZXInOwokbGFuZ1sndGl0bGVfZW5hYmxlX2FudGlzcGFtX2xvbmcnXSA9ICdTZWxlemlvbmFuZG8gcXVlc3RvIHBlcm1ldHRlciZhZ3JhdmU7IHNvbG8gMTAgZW1haWxzIGRpIGVzc2VyZSBhdHRpdmF0ZSBkYSB1biBkYXRvIGluZGlyaXp6byBJUCAocGVyIG9yYSkuJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9hbnRpc3BhbSddID0gJ0FiaWxpdG8gcHJpbWl0aXZlIGRlZ2xpIGFudGktc3BhbT8nOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGlkcyddID0gJ01vc3RyYSBJRCBkZWkgY2FtcGknOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGlkc19sb25nJ10gPSAnQ2xpY2tpbmcgdGhpcyB3aWxsIGFsbG93IGRpc3BsYXlpbmcgZmllbGQgaWRzIHdoZW4gYWRkaW5nIG9yIGVkaXRpbmcgYSBmb3JtJzsKJGxhbmdbJ3RpdGxlX3htbF90b191cGxvYWQnXSA9ICdVcGxvYWQgZGEgZmlsZSBYTUwnOwokbGFuZ1sndGl0bGVfeG1sX3VwbG9hZF9mb3JtbmFtZSddID0gJ1VzYSBxdWVzdG8gbm9tZSBGb3JtJzsKJGxhbmdbJ3RpdGxlX2ltcG9ydF9sZWdlbmQnXSA9ICdYTUwgRm9ybSBwZXIgSW1wb3J0YXJlJzsKJGxhbmdbJ3RpdGxlX3htbF91cGxvYWRfZm9ybWFsaWFzJ10gPSAnVXNhIHF1ZXN0byBGb3JtIEFsaWFzJzsKJGxhbmdbJ3RpdGxlX2h0bWxfZW1haWwnXSA9ICdHZW5lcm8gZW1haWwgZGkgdGlwbyBIVE1MPyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZSddID0gJ1BvcG9sYXJlIGF1dG9tYXRpY2FtZW50ZT8nOwokbGFuZ1sndGl0bGVfbGlua19hdXRvcG9wdWxhdGVfaGVscCddID0gJ0F1dG9tYXRpY2FsbHkgcG9wdWxhdGUgd2l0aCB0aGUgVVJMIG9mIHRoZSBwYWdlIGNvbnRhaW5pbmcgdGhlIGZvcm0/ICh0aGlzIG92ZXJyaWRlcyBzaXRlIHBhZ2UgbGluayBvcHRpb24gYmVsb3cpJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfbGluayddID0gJ0luZGlyaXp6byBVUkwgcHJlZGVmaW5pdG8gZGVpIGxpbmsnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9saW5rX3RpdGxlJ10gPSAnVGVzdG8gcHJlZGVmaW5pdG8gZGVpIGxpbmsnOwokbGFuZ1sndGl0bGVfbGlua190b19zaXRlcGFnZSddID0gJ0xpbmsgYWQgdW5hIHBhZ2luYSBkZWwgc2l0byc7CiRsYW5nWyd0aXRsZV9jYXB0Y2hhX25vdF9pbnN0YWxsZWQnXSA9ICdZb3UgY2FuIHVzZSA8YSBocmVmPSJodHRwOi8vd3d3Lndpa2lwZWRpYS5vcmcvd2lraS9DYXB0Y2hhIiB0YXJnZXQ9Il9uZXciPiZxdW90O0NhcHRjaGEmcXVvdDs8L2E+IHRvIHByb3RlY3QgZm9ybSBzdWJtaXNzaW9ucyBpZiB5b3UgaW5zdGFsbCB0aGUgQ2FwdGNoYSBtb2R1bGUuIEZvciBtb3JlIGluZm9ybWF0aW9uLCA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2NhcHRjaGEvIj5jaGVjayB0aGUgQ2FwdGNoYSBwcm9qZWN0PC9hPi4nOwokbGFuZ1sndGl0bGVfdXNlX2NhcHRjaGEnXSA9ICdVc2EgQ2FwdGNoYSBwZXIgcHJvdGVnZ2VyZSBsJiMwMzk7aW52aW8gZGVpIGZvcm0/JzsKJGxhbmdbJ3RpdGxlX3VzZV9jYXB0Y2hhX2hlbHAnXSA9ICdDaGVjayBoZXJlIHRvIHByb3RlY3QgeW91ciBmb3JtIHdpdGggYSA8YSBocmVmPSJodHRwOi8vd3d3Lndpa2lwZWRpYS5vcmcvd2lraS9DYXB0Y2hhIiB0YXJnZXQ9Il9uZXciPiZxdW90O0NhcHRjaGEmcXVvdDs8L2E+Lic7CiRsYW5nWyd0aXRsZV91c2VyX2NhcHRjaGEnXSA9ICdQbGVhc2UgY29uZmlybSB0aGF0IHlvdSBhcmUgbm90IGEgc2NyaXB0IGJ5IGVudGVyaW5nIHRoZSBsZXR0ZXJzIGZyb20gdGhlIGltYWdlLic7CiRsYW5nWyd0aXRsZV91c2VyX2NhcHRjaGFfZXJyb3InXSA9ICdUZXN0byBmYWxsaXRvIHBlciBDYXB0Y2hhJzsKJGxhbmdbJ3dyb25nX2NhcHRjaGEnXSA9ICdDYXB0Y2hhIG5vbiBlcmEgY29ycmV0dG8uJzsKJGxhbmdbJ3RpdGxlX3RpdGxlX3VzZXJfY2FwdGNoYSddID0gJ1Rlc3RvIGRpIGFpdXRvIHBlciBDYXB0Y2hhJzsKJGxhbmdbJ3RpdGxlX2RvbnRfc3VibWl0X3VuY2hlY2tlZCddID0gJ0RvbiYjMDM5O3Qgc3VibWl0IHZhbHVlcyBmb3IgdW5jaGVja2VkIGJveGVzJzsKJGxhbmdbJ3RpdGxlX2RvbnRfc3VibWl0X3VuY2hlY2tlZF9oZWxwJ10gPSAnQ2hlY2sgdGhpcyBpZiB5b3Ugb25seSB3YW50IGNoZWNrZWQgYm94ZXMgdG8gcmV0dXJuIHZhbHVlcy4nOwokbGFuZ1snbGlua19sYWJlbCddID0gJ0V0aWNoZXR0YSBwZXIgTGluayc7CiRsYW5nWydsaW5rX2Rlc3RpbmF0aW9uJ10gPSAnTGluayBEZXN0aW5hdGlvbiBVUkwnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9zZXQnXSA9ICdDaGVja2VkIGJ5IERlZmF1bHQ/JzsKJGxhbmdbJ3RpdGxlXzI0X2hvdXInXSA9ICdVdGlsaXp6byBmb3JtYXRvIDI0LW9yZT8nOwokbGFuZ1sndGl0bGVfYmVmb3JlX25vb24nXSA9ICdBTSc7CiRsYW5nWyd0aXRsZV9hZnRlcl9ub29uJ10gPSAnUE0nOwokbGFuZ1sndGl0bGVfc21hcnR5X2V2YWwnXSA9ICdQcm9jZXNzIHNtYXJ0eSB0YWdzIHdpdGhpbiBmaWVsZD8nOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfcm93cyddID0gJ1JpZ2hlIChub3RhOiBwdSZvZ3JhdmU7IGVzc2VyZSBzb3ZyYXNjcml0dG8gdmlhIFN0aWxlIENTUyknOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfY29scyddID0gJ0NvbG9ubmUgKG5vdGE6IHB1Jm9ncmF2ZTsgZXNzZXJlIHNvdnJhc2NyaXR0byB2aWEgU3RpbGUgQ1NTKSc7CiRsYW5nWyd0aXRsZV9mb3JtX21haW4nXSA9ICdNYWluIEZvcm0gRGV0YWlscyc7CiRsYW5nWyd0aXRsZV9zaG93X3VzZXJuYW1lJ10gPSAnRGlzcGxheSBsb2dpbiBuYW1lIGFzIHdlbGwgYXMgRmlyc3QgTmFtZS9MYXN0IE5hbWU/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcmZpcnN0bmFtZSddID0gJ0Rpc3BsYXkgVXNlciYjMDM5O3MgZmlyc3QgbmFtZT8nOwokbGFuZ1sndGl0bGVfc2hvd191c2VybGFzdG5hbWUnXSA9ICdEaXNwbGF5IFVzZXImIzAzOTtzIGxhc3QgbmFtZT8nOwokbGFuZ1sndGl0bGVfcmVzdHJpY3RfdG9fZ3JvdXAnXSA9ICdSZXN0cmljdCB1c2VyIGxpc3QgdG8gdXNlcnMgaW4gc3BlY2lmaWVkIGdyb3VwJzsKJGxhbmdbJ3Jlc3RyaWN0ZWRfdG9fZ3JvdXAnXSA9ICdTb2xvIGluIGdydXBwbyAlcyc7CiRsYW5nWyd0aXRsZV9zaG93X3RvX3VzZXInXSA9ICdEaXNwbGF5IHRvIHVzZXI/JzsKJGxhbmdbJ2hlbHBfbGVhdmVlbXB0eSddID0gJ1F1ZXN0byBjYW1wbyBwdSZvZ3JhdmU7IGVzc2VyZSBsYXNjaWF0byB2dW90byc7CiRsYW5nWydoZWxwX3ZhcmlhYmxlc19mb3JfdGVtcGxhdGUnXSA9ICdWYXJpYWJpbGkgcGVyIFRlbXBsYXRlJzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVzX2Zvcl9jb21wdXRhdGlvbiddID0gJ1ZhcmlhYmlsaSB1dGlsaXp6YWJpbGknOwokbGFuZ1snaGVscF9waHBfdmFyaWFibGVfbmFtZSddID0gJ3ZhcmlhYmlsZSBQSFAnOwokbGFuZ1snaGVscF9zdWJtaXNzaW9uX2RhdGUnXSA9ICdEYXRhIGRpIEludmlvJzsKJGxhbmdbJ2hlbHBfc2VydmVyX25hbWUnXSA9ICdWb3N0cm8gc2VydmVyJzsKJGxhbmdbJ2hlbHBfc3ViX3NvdXJjZV9pcCddID0gJ0luZGlyaXp6byBJUCBkZWxsYSBwZXJzb25hIGNoZSBzdGEgdXNhbmRvIGlsIGZvcm0nOwokbGFuZ1snaGVscF9zdWJfdXJsJ10gPSAnVVJMIG9mIHBhZ2UgY29udGFpbmluZyBmb3JtJzsKJGxhbmdbJ2hlbHBfZmJfdmVyc2lvbiddID0gJ1ZlcnNpb25lIEZvcm1CdWlsZGVyJzsKJGxhbmdbJ2hlbHBfdGFiJ10gPSAnQ2FyYXR0ZXJlIFRhYnVsYXRvcmUnOwokbGFuZ1snaGVscF9vdGhlcl9maWVsZHMnXSA9ICdBbHRlcm5hdGUgZmllbGQgbmFtZXMgY2FuIGJlIHVzZWQgaW50ZXJjaGFuZ2VhYmx5IChlc3BlY2lhbGx5IHVzZWZ1bCBpZiBTbWFydHkgaXMgY2hva2luZyBvbiBjaGFyYWN0ZXJzIG91dHNpZGUgb2YgQVNDSUkgMzItMTI2KS4gPGJyIC8+T3RoZXIgZmllbGRzIHdpbGwgYmUgYXZhaWxhYmxlIGFzIHlvdSBhZGQgdGhlbSB0byB0aGUgZm9ybS4nOwokbGFuZ1snaGVscF9hcnJheV9maWVsZHMnXSA9ICdZZXQgYW5vdGhlciB3YXkgb2YgYWNjZXNzaW5nIGZpZWxkIHZhbHVlcyBpcyB2aWEgJGZpZWxkbmFtZV9vYmosICRhbGlhc19vYmosIG9yICRmbGRfI19vYmosIHdoZXJlIGVhY2ggZmllbGQgaXMgYW4gb2JqZWN0IGNvbnRhaW5naW5nOjxiciAvPjx0YWJsZT4NCjx0cj48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7Pm5hbWU8L3RkPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+RmllbGQgTmFtZTwvdGQ+PC90cj4NCjx0cj48dGQ+dHlwZTwvdGQ+PHRkPkZpZWxkIFR5cGU8L3RkPjwvdHI+DQo8dHI+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz5pZDwvdGQ+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz5JbnRlcm5hbCBGaWVsZCBJRDwvdGQ+PC90cj4NCjx0cj48dGQ+dmFsdWU8L3RkPjx0ZD5IdW1hbi1yZWFkYWJsZSBWYWx1ZTwvdGQ+PC90cj4NCjx0cj48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7PnZhbHVlQXJyYXk8L3RkPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+QXJyYXkgb2YgZmllbGQgdmFsdWUocyk8L3RkPjwvdHI+PC90YWJsZT48ZW0+ZS5nLjwvZW0+LCB5b3UgY291bGQgdXNlICZxdW90O3skZmxkXzFfb2JqLT5uYW1lfSA9IHskZmxkXzFfb2JqLT52YWx1ZX0nOwokbGFuZ1snaGVscF9kYXRlX2Zvcm1hdCddID0gJ1ZlZGVyZSBpbCAgPGEgaHJlZj0iaHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5kYXRlLnBocCIgdGFyZ2V0PV9ORVc+TWFudWFsZSBQSFA8L2E+IHBlciB1biBhaXV0byBzdWxsYSBmb3JtYXR0YXppb25lLic7CiRsYW5nWydoZWxwX3ZhcmlhYmxlX25hbWUnXSA9ICdWYXJpYWJpbGUnOwokbGFuZ1snaGVscF9mb3JtX2ZpZWxkJ10gPSAnRmllbGQgUmVwcmVzZW50ZWQnOwokbGFuZ1snbGlua19iYWNrX3RvX2Zvcm0nXSA9ICcmbGFxdW87IEluZGlldHJvIGFsIEZvcm0nOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV90ZW1wbGF0ZSddID0gJ0NyZWF0ZSBTYW1wbGUgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9odG1sX3RlbXBsYXRlJ10gPSAnQ3JlYXRlIFNhbXBsZSBIVE1MIFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaGVhZGVyX3RlbXBsYXRlJ10gPSAnQ3JlYXRlIFNhbXBsZSBIZWFkZXIgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9oZWFkZXInXSA9ICdDcmVhdGUgU2FtcGxlIEhlYWRlcic7CiRsYW5nWydoZWxwX3RhYl9zeW1ib2wnXSA9ICd1biBjYXJhdHRlcmUgdGFidWxhdG9yZSc7CiRsYW5nWyd0aXRsZV9maWxlX3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgZm9yIG9uZSBsaW5lIG9mIG91dHB1dCBmaWxlJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfaGVhZGVyJ10gPSAnVGVtcGxhdGUgZm9yIHRoZSBoZWFkZXIgb2Ygb3V0cHV0IGZpbGUnOwokbGFuZ1sndGl0bGVfY29uZmlybWF0aW9uX3VybCddID0gJ1VSTCB0byBjbGljayBmb3IgZm9ybSBjb25maXJtYXRpb24nOwokbGFuZ1sndGl0bGVfdmFsdWUnXSA9ICdWYWx1ZSAoc2VlIEFkdmFuY2VkIFRhYiBpZiB5b3UgdXNlIFNtYXJ0eSB0YWdzKSc7CiRsYW5nWyd0aXRsZV9kYXRlX2Zvcm1hdCddID0gJ0RhdGUgRm9ybWF0IChzdGFuZGFyZCA8YSBocmVmPSJodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwIj5QSFAgRGF0ZSBGb3JtYXRzPC9hPiknOwokbGFuZ1sndGl0bGVfdXNlX3d5c2l3eWcnXSA9ICdVc2UgV1lTSVdZRyBlZGl0b3IgZm9yIHRleHQgQXJlYSAoQWRtaW4gc2lkZSBvbmx5KT8nOwokbGFuZ1sndGl0bGVfc3VibWl0X2FjdGlvbnMnXSA9ICdGb3JtIFN1Ym1pc3Npb24gQmVoYXZpb3InOwokbGFuZ1sndGl0bGVfc3VibWl0X2xhYmVscyddID0gJ1N1Ym1pc3Npb24gQnV0dG9uIExhYmVscyc7CiRsYW5nWyd0aXRsZV9zb3J0YWJsZV9maWVsZCddID0gJ1NvcnRhYmxlIEZpZWxkICMlcyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfaGVscCddID0gJ1RoaXMgcGFnZSBsZXRzIHlvdSBjdXN0b21pemUgRm9ybSBTdWJtaXNzaW9uLiBJdCBkb2VzbiYjMDM5O3QgZGV0ZXJtaW5lIHdoYXQgdGhlIEZvcm0gQnVpbGRlciBkb2VzIHdpdGggdGhlIHN1Ym1pdHRlZCBkYXRhLiBZb3UgY2FuIHNldCB0aGF0IHVwIGJ5IGFkZGluZyAmcXVvdDtEaXNwb3NpdGlvbiZxdW90OyBmaWVsZHMgdG8geW91ciBmb3JtLic7CiRsYW5nWyd0aXRsZV9zdGFydF95ZWFyJ10gPSAnUGFydGVuemEgZGVsbCYjMDM5O2ludGVydmFsbG8gQW5ubyc7CiRsYW5nWyd0aXRsZV9lbmRfeWVhciddID0gJ0ZpbmUgZGVsbCYjMDM5O2ludGVydmFsbG8gQW5ubyc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3llYXInXSA9ICdBbm5vIHByZWRlZmluaXRvJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfeWVhcl9oZWxwJ10gPSAnKFNldHRhIGEgLTEgYWZmaW5jaCZlZ3JhdmU7IGwmIzAzOTthbm5vIHByZWRlZmluaXRvIHNpYSBxdWVsbG8gY29ycmVudGUpJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9hY3Rpb24nXSA9ICdEb3BvIGNoZSBpbCBmb3JtICZlZ3JhdmU7IGludmlhdG8nOwokbGFuZ1sndGl0bGVfc3VibWl0X3Jlc3BvbnNlJ10gPSAnUmlzdWx0YXRvIGRhIHZpc3VhbGl6emFyZSc7CiRsYW5nWydkaXNwbGF5X3RleHQnXSA9ICdNb3N0cmEgJnF1b3Q7U3VibWlzc2lvbiBUZW1wbGF0ZSZxdW90Oyc7CiRsYW5nWydyZWRpcmVjdF90b19wYWdlJ10gPSAnUmVkaXJpZ2UgYWQgdW5hIHBhZ2luYSBkZWwgc2l0byc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfcmVzcG9uc2VfaGVscCddID0gJ1RoaXMgdGVtcGxhdGUgaXMgZm9yIGRpc3BsYXkgdG8gdGhlIHVzZXIgYWZ0ZXIgdGhlIGZvcm0gaXMgc3VibWl0dGVkLiBUaGlzIHRlbXBsYXRlIGRvZXMgbm90IGVmZmVjdCBlbWFpbHMgZ2VuZXJhdGVkIG9yIG90aGVyIGZvcm0gZGlzcG9zaXRpb25zIC0tIHlvdSBzZXQgdGhvc2UgdGVtcGxhdGVzICh3aGVyZSBhcHByb3ByaWF0ZSkgaW4gdGhlICZxdW90O2FkdmFuY2VkJnF1b3Q7IHRhYiBmb3IgdGhvc2UgZGlzcG9zaXRpb24gZmllbGRzLic7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9wYWdlJ10gPSAnUGFnaW5hIGRpIGRlc3RpbmF6aW9uZSc7CiRsYW5nWyd0aXRsZV9yZXF1aXJlX2ZpZWxkbmFtZXMnXSA9ICdOb21lIGRlbCBjYW1wbyByaWNoaWVzdG8nOwokbGFuZ1sndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzX2xvbmcnXSA9ICdSaWNoaWVkaSBjaGUgaSBjYW1iaSBhYmJpYW5vIHVuIG5vbWU/JzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWVsZG5hbWVzJ10gPSAnUmljaGllZGkgbm9taSBkZWkgY2FtcGkgdW5pdm9jaSc7CiRsYW5nWyd0aXRsZV91bmlxdWVfZmllbGRuYW1lc19sb25nJ10gPSAnSSBjYW1waSByaWNoaWVzdGkgaGFubm8gdW4gbm9tZSB1bml2b2NvPyc7CiRsYW5nWyd0aXRsZV9yZW9yZGVyX2Zvcm0nXSA9ICdSaW9yZGluYSBpIGNhbXBpJzsKJGxhbmdbJ3RpdGxlX2xvYWRfdGVtcGxhdGUnXSA9ICdDYXJpY2EgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfYWRkX2J1dHRvbl90ZXh0J10gPSAnQWdnaXVuZ2VyZSB1biBib3R0b25lIHRlc3R1YWxlJzsKJGxhbmdbJ3RpdGxlX2RlbF9idXR0b25fdGV4dCddID0gJ1Rlc3RvIGRlbCBib3R0b25lIGRpIENhbmNlbGxhemlvbmUnOwokbGFuZ1sndGl0bGVfc3RyaW5nX29yX251bWJlcl9ldmFsJ10gPSAnSW50ZXJwcmV0IHZhcmlhYmxlcyBhcyBiZWluZyBudW1iZXJzIG9yIHN0cmluZ3MnOwokbGFuZ1sndGl0bGVfb3JkZXInXSA9ICdJbnRlcnByZXRhdGlvbiBPcmRlcic7CiRsYW5nWyd0aXRsZV9vcmRlcl9oZWxwJ10gPSAnSWYgbW9yZSB0aGFuIG9uZSBDb21wdXRlZCBGaWVsZCBleGlzdHMsIHRoZXkgd2lsbCBiZSBjb21wdXRlZCBmcm9tIGxvd2VzdCBvcmRlciBudW1iZXIgdG8gaGlnaGVzdCBvcmRlciBudW1iZXInOwokbGFuZ1sndGl0bGVfY29tcHV0ZV92YWx1ZSddID0gJ1ZhbHVyZSBkYSBjYWxjb2xhcmUnOwokbGFuZ1sndGl0bGVfc3RyaW5nJ10gPSAnU3RyaW5nYSc7CiRsYW5nWyd0aXRsZV9udW1lcmljJ10gPSAnTnVtZXJpY28nOwokbGFuZ1sndGl0bGVfaW5saW5lX2Zvcm0nXSA9ICdNb3N0cmEgaWwgZm9ybSBpbmxpbmU/JzsKJGxhbmdbJ3RpdGxlX2lubGluZV9mb3JtX2hlbHAnXSA9ICdJbmxpbmUgc2lnbmlmaWNhIEZvcm0gY2hlIHJpcG9zaXppb25hbm8gaWwgdGFnIHtjbXNfbW9kdWxlfSwgbm9uLWlubGluZSByaXBvc2l6aW9uYW5vIGlsIHRhZyB7Y29udGVudH0uJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2RlZmF1bHRfdmFsdWUnXSA9ICdWYWxvcmUgcHJlZGVmaW5pdG8gcGVyIGlsIENhbXBvJzsKJGxhbmdbJ3RpdGxlX2NsZWFyX2RlZmF1bHQnXSA9ICdDbGVhciBkZWZhdWx0IG9uIGNsaWNrPyc7CiRsYW5nWyd0aXRsZV9jbGVhcl9kZWZhdWx0X2hlbHAnXSA9ICdDaGVjayB0aGlzIHRvIGNsZWFyIHRoZSBkZWZhdWx0IHZhbHVlIHdoZW4gdGhlIHVzZXIgY2xpY2tzIHRoaXMgZmllbGQuIFNpbmNlIHRoaXMgdXNlcyBhIGphdmFzY3JpcHQgc3RyaW5nIGNvbXBhcmUsIGl0IHdpbGwgZmFpbCBpZiB5b3UgcHV0IHNpbmdsZSBxdW90ZXMgaW4geW91ciBkZWZhdWx0IHRleHQuIE90aGVyIHVuLWphdmFzY3JpcHQtZnJpZW5kbHkgY2hhcmFjdGVycyBtYXkgYWxzbyBjYXVzZSBpdCB0byBmYWlsLic7CiRsYW5nWyd0aXRsZV9yZW1vdmVfZmlsZV9mcm9tX3NlcnZlciddID0gJ0RlbGV0ZSB1cGxvYWRlZCBmaWxlIGZyb20gc2VydmVyIGFmdGVyIHByb2Nlc3NpbmcgKGVtYWlsIGRpc3Bvc2l0aW9ucyknOwokbGFuZ1sndGl0bGVfZmllbGRfamF2YXNjcmlwdCddID0gJ0phdmFzY3JpcHQgcGVyIGNhbXBvJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2phdmFzY3JpcHRfbG9uZyddID0gJ01ha2UgdGhpcyB0aGUgY29tcGxldGUgSmF2YXNjcmlwdCBjYWxsLCBpbmNsdWRpbmcgdGhlIGV2ZW50IHlvdSB3YW50IHRvIHRyYXAsIGUuZy4sIG9uY2xpY2s9JnF1b3Q7eW91cmZuKCkmcXVvdDsnOwokbGFuZ1sndGl0bGVfc3VibWl0X2phdmFzY3JpcHQnXSA9ICdGb3JtIFN1Ym1pc3Npb24gSmF2YXNjcmlwdCc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfamF2YXNjcmlwdF9sb25nJ10gPSAnTWFrZSB0aGlzIHRoZSBjb21wbGV0ZSBKYXZhc2NyaXB0IGNhbGwsIGluY2x1ZGluZyB0aGUgZXZlbnQgeW91IHdhbnQgdG8gdHJhcCwgZS5nLiwgb25jbGljaz0mcXVvdDt5b3VyZm4oKSZxdW90Oy48YnIgLz5UaGlzIHdpbGwgcHJvYmFibHkgbm90IHdvcmsgd2VsbCBpZiB5b3UgdXNlIHRoZSAmcXVvdDtzYWZldHkgc2NyaXB0JnF1b3Q7IG9wdGlvbiBhYm92ZS4nOwokbGFuZ1snZW1haWxfZnJvbV9hZGRyX2hlbHAnXSA9ICdEbyBub3QganVzdCBwaWNrIGEgcmFuZG9tIGFkZHJlc3MgaGVyZSAtLSBtYW55IElTUHMgd2lsbDxiciAvPm5vdCBkZWxpdmVyIHRoZSBtYWlsIGlmIHlvdSBhcmUgdXNpbmcgYSBkaWZmZXJlbnQgZG9tYWluIG5hbWUgdGhhbiB5b3VyIGFjdHVhbDxiciAvPmhvc3QgbmFtZSAoaS5lLiwgdXNlIHNvbWV0aGluZyBsaWtlIG5hbWVAJXMpJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9hZHZhbmNlZCddID0gJ05lZWQgbW9yZSBmaWVsZCB0eXBlcz8gJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9iYXNpYyddID0gJ1RvbyBtYW55IGNvbmZ1c2luZyBmaWVsZCB0eXBlcz8gJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9hZHZhbmNlZF9saW5rJ10gPSAnQ29tbXV0YSBhbCBtb2RvIEF2YW56YXRvJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9iYXNpY19saW5rJ10gPSAnQ29tbXV0YSBhbCBtb2RvIFNlbXBsaWNlJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcm9vdCddID0gJ0RpcmVjdG9yeSB0byBzYXZlIGZpbGUgaW4nOwokbGFuZ1sndGl0bGVfZmlsZV9yb290X2hlbHAnXSA9ICdUaGlzIG5lZWRzIHRvIGJlIGEgZGlyZWN0b3J5IHRoYXQgeW91ciB3ZWIgc2VydmVyIGhhcyBwZXJtaXNzaW9ucyB0byB3cml0ZSBpbi48YnIgLz5DaG1vZCBpdCA3NzcgaWYgeW91IGhhdmUgcHJvYmxlbXMvZG91YnRzLjxiciAvPkFsc28sIGNoZWNrIHRvIHNlZSB0aGF0IHlvdSBkbyBub3QgaGF2ZSBQSFAgZGlyZWN0b3J5IHJlc3RyaWN0aW9ucy4nOwokbGFuZ1sndGl0bGVfbmV3bGluZV9yZXBsYWNlbWVudCddID0gJ05ld2xpbmUvQ2FycmlhZ2UgUmV0dXJuIHJlcGxhY2VtZW50IGNoYXJhY3Rlcic7CiRsYW5nWyd0aXRsZV9uZXdsaW5lX3JlcGxhY2VtZW50X2hlbHAnXSA9ICdMZWF2ZSBibGFuayB0byBhbGxvdyBuZXdsaW5lcyBhbmQgY2FycmlhZ2UgcmV0dXJucyBpbiBvdXRwdXQnOwokbGFuZ1sndGl0bGVfc2VuZF91c2VyY29weSddID0gJ1NlbmQgVXNlciBhIENvcHkgb2YgU3VibWlzc2lvbj8nOwokbGFuZ1sndGl0bGVfc2VuZF91c2VyY29weV9sYWJlbCddID0gJ0xhYmVsIGZvciBDaGVja2JveCAoaWYgdXNlciBjaG9pY2UpJzsKJGxhbmdbJ3RpdGxlX3NlbmRfbWVfYV9jb3B5J10gPSAnU2VuZCBtZSBhIGNvcHkgb2YgZm9ybSc7CiRsYW5nWyd0aXRsZV9hbGxvd19zdWJqZWN0X292ZXJyaWRlJ10gPSAnQWxsb3cgc3ViamVjdCB0byBiZSBvdmVycmlkZGVuPyc7CiRsYW5nWyd0aXRsZV9hbGxvd19zdWJqZWN0X292ZXJyaWRlX2xvbmcnXSA9ICdBbGxvdyAmIzAzOTtFbWFpbCAmcXVvdDtTdWJqZWN0JnF1b3Q7IEZpZWxkcyYjMDM5OyB0byBvdmVycmlkZSB0aGUgc3ViamVjdCBzcGVjaWZpZWQgaW4gdGhlIHB1bGxkb3duLic7CiRsYW5nWydvcHRpb25fbmV2ZXInXSA9ICdOZXZlcic7CiRsYW5nWydvcHRpb25fdXNlcl9jaG9pY2UnXSA9ICdHaXZlIHVzZXIgYSBjaG9pY2UgKGNoZWNrYm94KSc7CiRsYW5nWydvcHRpb25fYWx3YXlzJ10gPSAnQWx3YXlzJzsKJGxhbmdbJ2Vycm9yX3VzZXJ0YWdfZGlzcG9zaXRpb24nXSA9ICdVc2VyIGRlZmluZWQgdGFnIHJldHVybmVkIGFuIGVycm9yJzsKJGxhbmdbJ2Vycm9yX2NhdGFsb2dlcl9tb2R1bGVfbm90X2F2YWlsYWJsZSddID0gJzxzdHJvbmc+Q2F0YWxvZ2VyIG1vZHVsZSBkb2VzIG5vdCBzZWVtIHRvIGJlIGluc3RhbGxlZC9hY3RpdmUuPC9zdHJvbmc+JzsKJGxhbmdbJ3dhcm5pbmcnXSA9ICdXQVJOSU5HISc7CiRsYW5nWydkZWZhdWx0X3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgcHJlZGVmaW5pdG8nOwokbGFuZ1sndGFibGVfbGVmdF90ZW1wbGF0ZSddID0gJ1RlbXBsYXRlIGNvbiB0YWJlbGxlLCBUaXRvbGkgc3VsbGEgc2luaXN0cmEnOwokbGFuZ1sndGFibGVfdG9wX3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgY29uIHRhYmVsbGUsIFRpdG9sbyBpbiB0ZXN0YSc7CiRsYW5nWydmb3JtX3RlbXBsYXRlX25hbWUnXSA9ICdUZW1wbGF0ZSBkYSAlcyc7CiRsYW5nWyd0ZW1wbGF0ZV9hcmVfeW91X3N1cmUnXSA9ICdTaWV0ZSBzaWN1cmkgZGkgdm9sZXIgc292cmFzY3JpdmVyZSBpbCB2b3N0cm8gTW9kZWxsbyBjb24gcXVlbGxvIHNlbGV6aW9uYXRvPyAoQW5jaGUgZGljZW5kbyBTJmlncmF2ZTssIGRvdmV0ZSBzYWx2YXJlIGlsIGNhbWJpYW1lbnRvKSc7CiRsYW5nWyd0aXRsZV9iYWRfZnVuY3Rpb24nXSA9ICdFcnJvciB3aGVuIGNvbXB1dGluZyAmcXVvdDslcyZxdW90Oy4nOwokbGFuZ1snbm9fcmVmZXJyZXJfaW5mbyddID0gJ05lc3N1bmEgaW5mb3JtYXppb25lIEhUVFBfUkVGRVJFUiB1dGlsaXp6YWJpbGUgKHByb2JhYmlsbWVudGUgZG92dXRhIGFsbCYjMDM5O3VzbyBkZWxsYSBWYWxpZGF6aW9uZSBFbWFpbCBVdGFudGUpJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcGFyYW1fZXJyb3InXSA9ICdFcnJvcmUgZGkgdmFsaWRhemlvbmUgUGFyYW1ldHJvLiBTaSBwcmVnYSBkaSBjb250cm9sbGFyZSBsJiMwMzk7ZXNhdHRlenphIGRlbGxhIGNvcGlhIGRlbGwmIzAzOTtpbmRpcml6em8gVVJMIGRhbGxhIHZvc3RyYSBlbWFpbCEnOwokbGFuZ1sndmFsaWRhdGlvbl9yZXNwb25zZV9lcnJvciddID0gJ0Vycm9yZSBkaSB2YWxpZGF6aW9uZSBuZWxsYSByaXNwb3N0YS4gU2kgcHJlZ2EgZGkgY29udHJvbGxhcmUgbCYjMDM5O2VzYXR0ZXp6YSBkZWxsYSBjb3BpYSBkZWxsJiMwMzk7aW5kaXJpenpvIFVSTCBkYWxsYSB2b3N0cmEgZW1haWwhJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbm9fZmllbGRfZXJyb3InXSA9ICdFcnJvcmUgZGkgdmFsaWRhemlvbmUgbmVsbGEgcmlzcG9zdGEuIE5lc3N1biBjYW1wbyBlbWFpbCB2YWxpZGF0byBpbiBxdWVzdG8gZm9ybSEnOwokbGFuZ1sndXBncmFkZTAzdG8wNCddID0gJ0Zvcm0gVGVtcGxhdGUgJmVncmF2ZTsgc3RhdG8gYWdnaW9ybmF0byBhdXRvbWF0aWNhbWVudGUgZGFsbGEgdmVyc2lvbmUgMC4zIGFsbGEgdmVyc2lvbmUgMC40LiBEb3ZldGUgcGVyJm9ncmF2ZTsgZWZmZXR0dWFyZSBhbGN1bmkgZml4LiBTZSBzdGF0ZSB1c2FuZG8gaWwgRm9ybSBkaSBkZWZhdWx0LCByaXBvc2l6aW9uYXRlIHF1ZXN0byBUZW1wbGF0ZSBjb24gJnF1b3Q7ZGVmYXVsdCZxdW90OyB1c2FuZG8gbGEgdGVuZGluYSBzZWd1ZW50ZS4nOwokbGFuZ1snYWRtaW5kZXNjJ10gPSAnQWdnaXVuZ2VyZSwgbW9kaWZpY2FyZSBlIGdlc3RpcmUgZm9ybSBpbnRlcmF0dGl2aSc7CiRsYW5nWydvcGVyYXRvcnNfaGVscCddID0gJ1NlIHN0YXRlIHVzYW5kbyBsYSB2YWx1dGF6aW9uZSBTdHJpbmdhLCBsYSBzb2xhIG9wZXJhemlvbmUgdXRpbGl6emFiaWxlICZlZ3JhdmU7IGxhIGNvbmNhdGVuYXppb25lICgrKSwgbWVudGUgc2UgdXNhdGUgbGEgdmFsdXRhemlvbmUgTnVtZXJvIGF2ZXRlIHVuIHNlbXBsaWNlIG9wZXJhemlvbmUgbWF0ZW1hdGljYSAoKywgLSwgKiwgLyknOwokbGFuZ1snZGF0ZV9qYW51YXJ5J10gPSAnR2VubmFpbyc7CiRsYW5nWydkYXRlX2ZlYnJ1YXJ5J10gPSAnRmViYnJhaW8nOwokbGFuZ1snZGF0ZV9tYXJjaCddID0gJ01hcnpvJzsKJGxhbmdbJ2RhdGVfYXByaWwnXSA9ICdBcHJpbGUnOwokbGFuZ1snZGF0ZV9tYXknXSA9ICdNYWdnaW8nOwokbGFuZ1snZGF0ZV9qdW5lJ10gPSAnR2l1Z25vJzsKJGxhbmdbJ2RhdGVfanVseSddID0gJ0x1Z2xpbyc7CiRsYW5nWydkYXRlX2F1Z3VzdCddID0gJ0Fnb3N0byc7CiRsYW5nWydkYXRlX3NlcHRlbWJlciddID0gJ1NldHRlbWJyZSc7CiRsYW5nWydkYXRlX29jdG9iZXInXSA9ICdPdHRvYnJlJzsKJGxhbmdbJ2RhdGVfbm92ZW1iZXInXSA9ICdOb3ZlbWJyZSc7CiRsYW5nWydkYXRlX2RlY2VtYmVyJ10gPSAnRGljZW1icmUnOwokbGFuZ1snc3VibWlzc2lvbl9lcnJvciddID0gJ1NwaWFjZW50ZSEgQyYjMDM5OyZlZ3JhdmU7IHN0YXRvIHVuIGVycm9yZSBuZWxsJiMwMzk7aW52aW8gZGVsIGZvcm0uJzsKJGxhbmdbJ3N1Ym1pdF9lcnJvciddID0gJ0Zvcm1CdWlsZGVyIGVycm9yZSBkaSBpbnZpbzogJXMnOwokbGFuZ1sndXBsb2Fkc19lcnJvciddID0gJ0Vycm9yZSBuZWwgZmlsZSBwYXNzYXRvIGFsIG1vZHVsbyBVcGxvYWRzOiAlcyc7CiRsYW5nWydub3VwbG9hZHNfZXJyb3InXSA9ICdOb24gdHJvdm8gaWwgbW9kdWxvIFVwbG9hZHMnOwokbGFuZ1sndXBsb2FkX2F0dGFjaF9lcnJvciddID0gJ0Vycm9yZSBuZWwgVXBsb2FkL0FsbGVnYXRvIHN1bCBmaWxlICVzICh0bXBfbmFtZTogJXMsIGRpIHRpcG8gJXMpJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3JfZmlsZV9sb2NrJ10gPSAnRXJyb3JlLiBOb24gcmllc2NvIGFkIG90dGVuZXJlIHVuIGxvY2sgcGVyIGlsIGZpbGUuJzsKJGxhbmdbJ3VuY2hlY2tlZF9ieV9kZWZhdWx0J10gPSAnUHJlZGVmaW5pdG86IG5vbiBtYXJjYXRvJzsKJGxhbmdbJ2NoZWNrZWRfYnlfZGVmYXVsdCddID0gJ1ByZWRlZmluaXRvOiBtYXJjYXRvJzsKJGxhbmdbJ2VtYWlsX2RlZmF1bHRfdGVtcGxhdGUnXSA9ICdGb3JtQnVpbGRlciBTdWJtaXNzaW9uJzsKJGxhbmdbJ2VtYWlsX3RlbXBsYXRlX25vdF9zZXQnXSA9ICc8YnIgLz5Nb2RlbGxvIHBlciBFbWFpbCBub24gYW5jb3JhIHNldHRhdG8hJzsKJGxhbmdbJ21pc3NpbmdfY21zX21haWxlciddID0gJ0Zvcm1CdWlsZGVyOiBub24gcG9zc28gdHJvdmFyZSBpbCBtb2R1bG8gcmljaGllc3RvIENNU01haWxlciEnOwokbGFuZ1sndXNlcl9hcHByb3ZlZF9zdWJtaXNzaW9uJ10gPSAnVXNlciBhcHByb3ZlZCBzdWJtaXNzaW9uICVzIGZyb20gJXMnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdCddID0gJ0V2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdEVycm9yJ10gPSAnRXZlbnQgdHJpZ2dlcmVkIGlmIHRoZXJlIGlzIGFuIGVycm9yIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZCc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtRGlzcGxheSddID0gJ0V2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBkaXNwbGF5ZWQnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdCddID0gJzxwPkV2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQuPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIFRoZSBmb3JtIG5hbWUgKHN0cmluZyk8L2xpPg0KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBUaGUgaW50ZXJuYWwgZm9ybSBpZCAoaW50KTwvbGk+DQo8bGk+PGVtPnZhbHVlXzxuYW1lPjwvZW0+IC0gU3VwcGx5IGEgZGVmYXVsdCB2YWx1ZSB0byBhIGZpZWxkIHdpdGggdGhlIHNwZWNpZmllZCBuYW1lLjwvbGk+DQo8L3VsPiAnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdEVycm9yJ10gPSAnPHA+RXZlbnQgdHJpZ2dlcmVkIGlmIHRoZXJlIGlzIGFuIGVycm9yIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZDwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBUaGUgZm9ybSBuYW1lIChzdHJpbmcpPC9saT4NCjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gVGhlIGludGVybmFsIGZvcm0gaWQgKGludCk8L2xpPg0KPGxpPjxlbT5lcnJvcjwvZW0+IC0gQSBsaXN0IG9mIGFsbCBrbm93biBlcnJvcnMgKHN0cmluZyk8L2xpPg0KPC91bD4gJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1EaXNwbGF5J10gPSAnPHA+RXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIGRpc3BsYXllZDwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBUaGUgZm9ybSBuYW1lIChzdHJpbmcpPC9saT4NCjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gVGhlIGludGVybmFsIGZvcm0gaWQgKGludCk8L2xpPg0KPC91bD4gJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19yZXNwb25zZV9pZCddID0gJ1Jpc3Bvc3RhIElELiBVc2F0YSBkYSBGb3JtQnJvd3Nlcic7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfcGFzc2VkX2Zyb21fdGFnJ10gPSAnRGVmYXVsdCBmaWVsZCB2YWx1ZXM7IHNlZSBtb2R1bGUgaGVscCc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZmllbGRfaWQnXSA9ICdDYW1wbyBJRCBwZXIgb3BlcmF6aW9uaSBpbnRlcm5lJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19mb3JtX25hbWUnXSA9ICdOb21lIEZvcm0nOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2Zvcm1faWQnXSA9ICdGb3JtIElEIHBlciBvcGVyYXppb25pIGludGVybmUnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2dlbmVyYWwnXSA9ICdHZW5lcmFsIHBhcmFtZXRlcnMgZm9yIGludGVybmFsIG9wZXJhdGlvbnMnOwokbGFuZ1sndGVtcGxhdGVfdmFyaWFibGVfaGVscCddID0gJzxoMz5Gb3JtIFRlbXBsYXRlIFZhcmlhYmxlczwvaDM+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+RHVubm8gd2h5IHlvdSYjMDM5O2Qgd2FudCBzb21lIG9mIHRob3NlLCBidXQgdGhlcmUgeW91IGdvLi4uPC9wPic7CiRsYW5nWydwb3N0X2luc3RhbGwnXSA9ICc8cD5Fc3NlcmUgc2ljdXJpIGRpIHNldHRhcmUgaSBwZXJtZXNzaSAmcXVvdDtNb2RpZnkgRm9ybXMmcXVvdDsgcGVyIGdsaSB1dGVudGkgY2hlIGFtbWluaXN0cmFubyBpIGZvcm1zLiBTZSB2b2xldGUgZXNzZXJlIGF2dmlzYXRpIHZpYSBlbWFpbCBkZWdsaSBpbnNlcmltZW50aSwgYWdnaW9ybmFyZSBpbiBtYW5pZXJhIGFwcHJvcHJpYXRhIGxhIENvbmZpZ3VyYXppb25lLjwvcD4NCjxwPlNpIHByZWdhIGRpIHByZXN0YXJlIGF0dGVuemlvbmUgY2hlIHVuIGZvcm0gZGkgZmVlZGJhY2sgbm9uIGRvdnJlYmJlIGVzc2VyZSBhdHRpdm8gKGNpbyZlZ3JhdmU7IHB1YmJsaWNvKSBtZW50cmUgbW9kaWZpY2F0ZSBpbCBmb3JtLiBEb3ZyZXN0ZSBjcmVhcmUgaWwgZm9ybSBlIHBvaSBwb3NpemlvbmFyZSBpbCB0YWcgbmVsbGEgcGFnaW5hIHF1YW5kbyB0ZXJtaW5hdG8uIEFsdHJpbWVudGkgcG9zc29ubyB0b3JuYXJlIGRlaSByaXN1bHRhdGkgZXJyYXRpLjwvcD4NCjxwPkluIGFnZ2l1bnRhLCBxdWVzdGEgdmVyc2lvbmUgbm9uIHN1cHBvcnRhIGxlIG1vZGlmaWNoZSBpbiBwYXJhbGxlbG8gZGVpIGZvcm1zLiBTaSBwcmVnYSBxdWluZGkgY2hlIHNvbG8gdW4gYWRtaW4gYWxsYSB2b2x0YSBtb2RpZmljaGkgdW4gZGF0byBmb3JtLjwvcD4nOwokbGFuZ1snaGVscCddID0gJzxoMz5XaGF0IERvZXMgVGhpcyBEbz88L2gzPg0KPHA+VGhlIEZvcm0gQnVpbGRlciBNb2R1bGUgYWxsb3dzIHlvdSB0byBjcmVhdGUgZmVlZGJhY2sgZm9ybXMgKGluIGZhY3QsIGl0JiMwMzk7cyBhIHJlcGxhY2VtZW50IG9mIHRoZSBvcmlnaW5hbCBGZWVkYmFjayBGb3JtIG1vZHVsZSksIHdpdGggdGhlIGFkZGVkIHBvd2VyIG9mIGRhdGFiYXNlIHN0b3JhZ2UuIFdpdGggaXRzIGNvbXBhbmlvbiBtb2R1bGUgRm9ybSBCcm93c2VyLCB5b3UgY2FuIHVzZSBpdCB0byBjcmVhdGUgc2ltcGxlIGRhdGFiYXNlIGFwcGxpY2F0aW9ucy48L3A+DQo8cD5UaGUgZm9ybXMgY3JlYXRlZCB1c2luZyB0aGUgRm9ybSBCdWlsZGVyIG1heSBiZSBpbnNlcnRlZA0KaW50byB0ZW1wbGF0ZXMgYW5kL29yIGNvbnRlbnQgcGFnZXMuIEZvcm1zIG1heSBjb250YWluIG1hbnkga2luZHMgb2YgaW5wdXRzLCBhbmQgbWF5IGhhdmUNCnZhbGlkYXRpb24gYXBwbGllZCB0byB0aGVzZSBpbnB1dHMuIFRoZSByZXN1bHRzIG9mIHRoZXNlIGZvcm1zIG1heSBiZSBoYW5kbGVkIGluIGEgdmFyaWV0eSBvZiB3YXlzLjwvcD4NCg0KPGgzPkhvdyBEbyBJIFVzZSBpdD88L2gzPg0KPFA+SW5zdGFsbCBpdCwgYW5kIHBva2UgYXJvdW5kIHRoZSBtZW51cy4gUGxheSB3aXRoIGl0LiBUcnkgY3JlYXRpbmcgZm9ybXMsIGFuZCBhZGRpbmcgdGhlbSB0byB5b3VyIGNvbnRlbnQuDQpJZiB5b3UgZ2V0IHN0dWNrLCBjaGF0IHdpdGggbWUgb24gdGhlICNjbXMgSVJDIGNoYW5uZWwsIHBvc3QgdG8gdGhlIGZvcnVtLCBzZW5kIG1lIGVtYWlsLCBvciwgaWYgeW91JiMwMzk7cmUNCnJlYWxseSBkZXNwZXJhdGUsIHJlYWQgdGhlIHJlc3Qgb2YgdGhpcyBwYWdlLjwvUD4NCg0KPGgzPkhvdyBEbyBJIENyZWF0ZSBhIEZvcm08L2gzPg0KPHA+SW4gdGhlIENNUyBBZG1pbiBNZW51LCB5b3Ugc2hvdWxkIGdldCBhIG5ldyBtZW51IGl0ZW0gY2FsbGVkIEZvcm1CdWlsZGVyLiBDbGljayBvbiB0aGlzLiBPbiB0aGUgcGFnZQ0KdGhhdCBnZXRzIHNob3duLCB0aGVyZSBhcmUgb3B0aW9ucyAoYXQgdGhlIGJvdHRvbSBvZiB0aGUgbGlzdCBvZiBGb3JtcykgdG8gQWRkIGEgTmV3IEZvcm0gb3IgTW9kaWZ5DQpDb25maWd1cmF0aW9uLjwvcD4NCg0KPGgzPkFkZGluZyBhIEZvcm0gdG8gYSBQYWdlPC9oMz4NCjxwPkluIHRoZSBtYWluIEZvcm1CdWlsZGVyIGFkbWluIHBhZ2UsIHlvdSBjYW4gc2VlIGFuIGV4YW1wbGUgb2YgdGhlIHRhZyB1c2VkIHRvIGRpc3BsYXkgZWFjaCBmb3JtLiBJdCBsb29rcw0Kc29tZXRoaW5nIGxpa2Uge2Ntc19tb2R1bGUgbW9kdWxlPSYjMDM5O0Zvcm1CdWlsZGVyJiMwMzk7IGZvcm09JiMwMzk7c2FtcGxlX2Zvcm0mIzAzOTt9PC9wPg0KPHA+QnkgY29weWluZyB0aGlzIHRhZyBpbnRvIHRoZSBjb250ZW50IG9mIGEgcGFnZSwgb3IgaW50byBhIHRlbXBsYXRlLCB3aWxsIGNhdXNlIHRoYXQgZm9ybSB0byBiZSBkaXNwbGF5ZWQuDQpJbiB0aGVvcnksIHlvdSBjYW4gaGF2ZSBtdWx0aXBsZSBmb3JtcyBvbiBhIHBhZ2UgaWYgeW91IHJlYWxseSB3YW50IHRvLiBCZSBjYXJlZnVsIHdoZW4gcGFzdGluZyB0aGUgdGFnDQppbnRvIGEgcGFnZSYjMDM5O3MgY29udGVudCBpZiB5b3UgdXNlIGEgV1lTSVdZRyBlZGl0b3Igc3VjaCBhcyBUaW55TUNFLCBGQ0tFZGl0LCBvciBIVE1MQXJlYS4gVGhlc2UgZWRpdG9ycyBtYXkgc3RlYWx0aGlseQ0KY2hhbmdlIHRoZSBxdW90ZSBtYXJrcyAoJnF1b3Q7KSBpbnRvIEhUTUwgZW50aXRpZXMgKCZhbXA7cXVvdDspLCBhbmQgdGhlIGZvcm1zIHdpbGwgbm90IHNob3cgdXAuIFRyeSB1c2luZw0Kc2luZ2xlIHF1b3RlcyAoJiMwMzk7KSBvciBlZGl0aW5nIHRoZSBIVE1MIGRpcmVjdGx5Lg0KDQo8aDM+V29ya2luZyB3aXRoIEZvcm1zPC9oMz4NCjxwPkJ5IGNsaWNraW5nIG9uIGEgRm9ybSYjMDM5O3MgbmFtZSwgeW91IGVudGVyIHRoZSBGb3JtIEVkaXQgcGFnZS4gVGhlcmUgYXJlIHNldmVyYWwgdGFicywgd2hpY2ggYXJlIGRlc2NyaWJlZCBiZWxvdzo8L3A+DQo8aDQ+TWFpbjwvaDQ+DQo8cD5UaGlzIGlzIHRoZSBtYWluIHBsYWNlIHlvdSYjMDM5O2xsIHdvcmsgb24geW91ciBmb3JtLiBIZXJlLCB5b3UgZ2l2ZSBpdCBhIG5hbWUsIGFuIGFsaWFzICh3aGljaCBpcyB1c2VkIHRvIGlkZW50aWZ5IGl0IGZvciBwbGFjaW5nIGl0IGluIGEgcGFnZSBvciB0ZW1wbGF0ZSksIGFuZCwgb3B0aW9uYWxseSwgYSBDU1MgY2xhc3Mgd2l0aCB3aGljaCB0byB3cmFwIHRoZSB3aG9sZSB0aGluZy48L3A+DQo8cD5CZWxvdyB0aGlzLCBpZiB5b3UgaGF2ZSBpdCBlbmFibGVkLCBpcyB0aGUgJnF1b3Q7ZmFzdCBmaWVsZCBhZGRlciZxdW90OyBwdWxsZG93biwgdGhhdCBsZXRzIHlvdSBxdWlja2x5IGFkZCBhIGZpZWxkIHRvIHRoZSBlbmQgb2YgeW91ciBmb3JtIGJ5IHNlbGVjdGluZyB0aGUgZmllbGQgdHlwZS48L3A+DQo8cD5CZWxvdyB0aGlzIGlzIHRoZSBsaXN0IG9mIGZpZWxkcyB0aGF0IG1ha2UgdXAgeW91ciBmb3JtLiBNb3JlIGRldGFpbCBvbiB0aGlzIGlzIGRlc2NyaWJlZCBiZWxvdy48L3A+DQo8aDQ+Rm9ybSBTdWJtaXNzaW9uPC9oND4NCjxwPldoZW4gdGhlIGZvcm0gaXMgc3VibWl0dGVkLCB5b3UgY2FuIGVpdGhlciByZWRpcmVjdCB0aGUgdXNlciB0byBhbm90aGVyIHBhZ2Ugb2YgeW91ciBzaXRlLCBvciB5b3UgY2FuIHByZXNlbnQgdGhlIHVzZXIgc29tZSBtZXNzYWdlICh3aGljaCBjYW4gY29udGFpbiBhbnkgb2YgdGhlIHVzZXImIzAzOTtzIGZvcm0gZW50cmllcywgb3IganVzdCBzdGF0aWMgdGV4dCkuIEluIHRoaXMgdGFiLCB5b3Ugc2VsZWN0IHdoaWNoIG9mIHRoZXNlIGFwcHJvYWNoZXMgeW91IHdpc2ggdG8gdXNlLCBhbmQsIGlmIHlvdSBjaG9zZSByZWRpcmVjdGlvbiwgaXQgYWxsb3dzIHlvdSB0byBwaWNrIHRoZSBwYWdlIHRvIHJlZGlyZWN0IHVzZXJzIHRvIGFmdGVyIGEgc3VjY2Vzc2Z1bCBmb3JtIHN1Ym1pc3Npb24uPC9wPg0KPHA+QWxzbyBvbiB0aGlzIHBhZ2UsIHlvdSBjYW4gc3BlY2lmeSB0aGUgbGFiZWxzIG9mIHZhcmlvdXMgc3VibWlzc2lvbiBidXR0b25zICgmcXVvdDtQcmV2aW91cyZxdW90OywgJnF1b3Q7bmV4dCZxdW90OywgJnF1b3Q7c3VibWl0JnF1b3Q7KS4gWW91IGNhbiBhbHNvIG9wdCB0byBoYXZlIHNvbWUgSmF2YXNjcmlwdCBhZGRlZCB0byB0aGUgbGFzdCBwYWdlIG9mIGEgZm9ybSB0aGF0IHdpbGwgcHJldmVudCBtdWx0aXBsZSBzdWJtaXNzaW9ucyAodXNlZnVsIG9uIHNsb3cgc2VydmVycykuPC9wPg0KPGg0PkZvcm0gRGlzcGxheSBPcHRpb25zPC9oND4NCjxwPlRoaXMgdGFiIGFsbG93cyBmb3Igb3RoZXIgZm9ybSBjdXN0b21pemF0aW9ucywgbGlrZSB0aGUgc3ltYm9sIHRvIHNob3cgZm9yIHJlcXVpcmVkIGZpZWxkcy48L3A+DQo8aDQ+Q2FwdGNoYSBTZXR0aW5nczwvaDQ+DQo8cD5JZiB5b3UgaGF2ZSBpbnN0YWxsZWQgdGhlIENhcHRjaGEgbW9kdWxlLCB0aGlzIHRhYiBsZXRzIHlvdSBjb25maWd1cmUgdGhlIENhcHRjaGEgc2V0dGluZ3MgZm9yIHlvdXIgZm9ybS48L3A+DQo8aDQ+Rm9ybSBUZW1wbGF0ZTwvaDQ+DQo8cD5UaGlzIGlzIHdoZXJlIHlvdSBkbyB5b3VyIGN1c3RvbWl6YXRpb24gd29yayBvZiB5b3VyIGZvcm0mIzAzOTtzIFNtYXJ0eSBUZW1wbGF0ZS4gU2VlIHRoZSBzZWN0aW9uIGNhbGxlZCBGb3JtIFRlbXBsYXRlIFZhcmlhYmxlcyBiZWxvdy48L3A+DQo8cD5UaGUgZm9ybSBzaG91bGQgZGVmYXVsdCB0byBhIEN1c3RvbSB0ZW1wbGF0ZSB0aGF0IGRvY3VtZW50cyB0aGUgU21hcnR5IHRhZ3MgYXZhaWxhYmxlIHRvIHlvdS48L3A+DQo8cD5Vbmxlc3MgeW91JiMwMzk7cmUgYSBTbWFydHkgZXhwZXJ0LCB5b3UgcHJvYmFibHkgZG9uJiMwMzk7dCB3YW50IHRvIG1lc3MgYXJvdW5kIHdpdGggdGhpcy4gSWYgeW91IGFyZSBhIFNtYXJ0eSBleHBlcnQsIHRoaXMgaXMgd2hlcmUgeW91IGNhbiB1bmxlYXNoIHlvdXIgbWFnaWMuPC9wPg0KPGg0PlN1Ym1pc3Npb24gVGVtcGxhdGU8L2g0Pg0KPHA+SWYsIGluIHRoZSBGb3JtIFN1Ym1pc3Npb24gdGFiLCB5b3Ugc2VsZWN0ZWQgJiMwMzk7RGlzcGxheSAmcXVvdDtTdWJtaXNzaW9uIFRlbXBsYXRlJnF1b3Q7LCB0aGlzIGlzIHdoZXJlIHlvdSBjYW4gY3JlYXRlIHRoYXQgdGVtcGxhdGUuIFRoZXJlIGlzIGEgZGlzcGxheSBvZiB3aGljaCBzbWFydHkgdmFyaWFibGVzIGFyZSBhdmFpbGFibGUgdG8geW91LCBhbmQgYSBidXR0b24gdG8gZ2VuZXJhdGUgYSBzYW1wbGUgdGVtcGxhdGUuPC9wPg0KPHA+SWYgeW91JiMwMzk7cmUgYSBTbWFydHkgZXhwZXJ0LCB5b3UgY2FuIGRvIGFsbCBtYW5uZXIgb2YgY3JlYXRpdmUgYW5kIHBvd2VyZnVsIHRoaW5ncyBoZXJlLiBJZiB5b3UmIzAzOTtyZSBub3QgYSBTbWFydHkgZXhwZXJ0LCB5b3UgbWlnaHQganVzdCB3YW50IHRvIHVzZSB0aGUgZGVmYXVsdC4NCjwvcD4NCjxoMz5BZGRpbmcgRmllbGRzIHRvIHlvdXIgRm9ybTwvaDM+DQo8cD5UaGUgdHlwZXMgb2YgZmllbGRzIHRoYXQgYXJlIGN1cnJlbnRseSBzdXBwb3J0ZWQgZml0IGludG8gZm91ciBncm91cHM6IHN0YW5kYXJkIGlucHV0IGZpZWxkcywgZGlzcGxheSBjb250cm9sIGZpZWxkcywgZW1haWwtc3BlY2lmaWMgZmllbGRzLCBhbmQgZm9ybSByZXN1bHQgaGFuZGxpbmcgZmllbGRzIChhbHNvIGNhbGxlZCBGb3JtIERpc3Bvc2l0aW9ucyBpbiBwbGFjZXMpOjwvcD4NCjx1bD4NCjxsaT5TdGFuZGFyZCBJbnB1dCBGaWVsZHMgLSB0aGVzZSBhcmUgaW5wdXRzIHRoYXQgYWxsb3cgZW50cnkgb2YgdHlwaWNhbCBmb3JtIGVsZW1lbnRzOyB0ZXh0IGlucHV0cywgcmFkaW8gYnV0dG9ucywgZXRjLjwvbGk+DQo8bGk+RGlzcGxheSBDb250cm9sIEZpZWxkcyAtIHRoZXNlIGlucHV0IGNvbnRyb2wgaG93IHRoZSB1c2VyIHdpbGwgc2VlIHRoZSBkaXNwbGF5IG9mIHRoZSBmb3JtOyBwYWdlIGJyZWFrcywgc3RhdGljIHRleHQsIGV0Yy48L2xpPg0KPGxpPkVtYWlsLXNwZWNpZmljIEZpZWxkcyAtIHNvbWUgZm9ybXMgZ2VuZXJhdGUgZW1haWwsIGFuZCBlbWFpbC1zcGVjaWZpYyBmaWVsZHMgY2FuIGFsdGVyIGF0dHJpYnV0ZXMgb2YgdGhlIGVtYWlscyBzZW50LjwvbGk+DQo8bGk+Rm9ybSBEaXNwb3NpdGlvbnMgLSBUaGVzZSBkZXRlcm1pbmUgd2hhdCBoYXBwZW5zIHdoZW4gdGhlIHVzZXINCnN1Ym1pdHMgdGhlIGZvcm07IGZvciBlYWNoIHJlc3VsdCBoYW5kbGluZyBmaWVsZCwgc29tZSBtZXRob2Qgb2YgdHJhbnNtaXR0aW5nLCBzYXZpbmcsIG9yIGVtYWlsaW5nIHRoZQ0KZm9ybSBjb250ZW50cyB0YWtlcyBwbGFjZS4gQSBmb3JtIG1heSBoYXZlIG11bHRpcGxlIGZvcm0gZGlzcG9zaXRpb25zLjwvbGk+DQo8L3VsPg0KPHA+Rm9ybSBmaWVsZHMgYXJlIGFzc2lnbmVkIG5hbWVzLiBUaGVzZSBuYW1lcyBpZGVudGlmeSB0aGUgZmllbGQsIG5vdCBvbmx5IG9uIHRoZSBzY3JlZW4gYXMgbGFiZWxzIGZvciB0aGUgdXNlciwNCmJ1dCBpbiB0aGUgZGF0YSB3aGVuIGl0JiMwMzk7cyBzdWJtaXR0ZWQgc28geW91IGtub3cgd2hhdCB0aGUgdXNlciBpcyByZXNwb25kaW5nIHRvLiBQaHJhc2luZyB0aGUgbmFtZSBsaWtlIGEgcXVlc3Rpb24NCmlzIGEgaGFuZHkgd2F5IG9mIG1ha2luZyBpdCBjbGVhciB0byB0aGUgdXNlciB3aGF0IGlzIGV4cGVjdGVkLiBTaW1pbGFybHksIG1hbnkgZmllbGRzIGhhdmUgYm90aCBOYW1lcyBhbmQgVmFsdWVzLg0KVGhlIE5hbWVzIGFyZSB3aGF0IGdldHMgc2hvd24gdG8gdGhlIHVzZXI7IHRoZSBWYWx1ZSBpcyB3aGF0IGdldHMgc2F2ZWQgb3IgdHJhbnNtaXR0ZWQgd2hlbiB0aGUgdXNlciBzdWJtaXRzDQp0aGUgZm9ybS4gVGhlIFZhbHVlcyBhcmUgbmV2ZXIgc2VlbiBieSB0aGUgdXNlciwgbm9yIGFyZSB0aGV5IHZpc2libGUgaW4gdGhlIEhUTUwsIHNvIGl0JiMwMzk7cyBzYWZlIHRvIHVzZSBmb3INCmVtYWlsIGFkZHJlc3NlcyBhbmQgc3VjaC48L3A+DQo8cD5Tb21lIGZpZWxkcyBjYW4gaGF2ZSBtdWx0aXBsZSB2YWx1ZXMsIG9yIG11bHRpcGxlIG5hbWUvdmFsdWUgcGFpcnMuIFdoZW4geW91IGZpcnN0IGNyZWF0ZSBzdWNoIGEgZmllbGQsDQp0aGVyZSBtYXkgbm90IGJlIHN1ZmZpY2llbnQgaW5wdXRzIGZvciB5b3UgdG8gc3BlY2lmeSBhbGwgdGhlIHZhbHVlcyB5b3Ugd2FudC4gVG8gZ2V0IG1vcmUgc3BhY2UgZm9yIGlucHV0dGluZw0KdGhlc2UgdmFsdWVzLCB1c2UgdGhlIGJ1dHRvbnMgYXQgdGhlIGJvdHRvbSBvZiB0aGUgcGFnZSBmb3IgYWRkaW5nIG9wdGlvbnMuPC9wPg0KPHA+RmllbGRzIGNhbiBiZSBhc3NpZ25lZCB2YWxpZGF0aW9uIHJ1bGVzLCB3aGljaCB2YXJ5IGFjY29yZGluZyB0byB0aGUgdHlwZSBvZiB0aGUgZmllbGQuIFRoZXNlIHJ1bGVzIGhlbHANCmVuc3VyZSB0aGF0IHRoZSB1c2VyIGVudGVycyB2YWxpZCBkYXRhLiBUaGV5IG1heSBhbHNvIGJlDQpzZXBhcmF0ZWx5IG1hcmtlZCAmcXVvdDtSZXF1aXJlZCZxdW90Oywgd2hpY2ggd2lsbCBmb3JjZSB0aGUgdXNlciB0byBlbnRlciBhIHJlc3BvbnNlLjwvcD4NCjxwPkZpZWxkcyBhbHNvIG1heSBiZSBhc3NpZ25lZCBhIENTUyBjbGFzcy4gVGhpcyBzaW1wbHkgd3JhcHMgdGhlIGlucHV0IGluIGEgZGl2IHdpdGggdGhhdCBjbGFzcywgc28gYXMgdG8gYWxsb3cNCmN1c3RvbWl6ZWQgbGF5b3V0cy4gVG8gdXNlIHRoaXMgZWZmZWN0aXZlbHksIHlvdSBtYXkgbmVlZCB0byAmcXVvdDt2aWV3IHNvdXJjZSZxdW90OyBvbiB0aGUgZ2VuZXJhdGVkIGZvcm0sIGFuZCB0aGVuDQp3cml0ZSB5b3VyIENTUy48L3A+DQo8dWw+DQo8bGk+U3RhbmRhcmQgSW5wdXRzDQo8dWw+PGxpPlRleHQgSW5wdXQuIFRoaXMgaXMgYSBzdGFuZGFyZCB0ZXh0IGZpZWxkLiBZb3UgY2FuIGxpbWl0IHRoZSBsZW5ndGgsIGFuZCBhcHBseSB2YXJpb3VzIHZhbGlkYXRpb24NCmZ1bmN0aW9ucyB0byB0aGUgZmllbGQuPC9saT4NCjxsaT5UZXh0IEFyZWEuIFRoaXMgaXMgYSBiaWcsIGZyZWUtZm9ybSB0ZXh0IGlucHV0IGZpZWxkLjwvbGk+DQo8bGk+Q2hlY2tib3guIFRoaXMgaXMgYSBzdGFuZGFyZCBjaGVjayBib3guPC9saT4NCjxsaT5DaGVja2JveCBHcm91cC4gVGhpcyBpcyBhIGNvbGxlY3Rpb24gb2YgY2hlY2tib3hlcy4gVGhlIG9ubHkgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoaXMgaW5wdXQgYW5kIGENCmNvbGxlY3Rpb24gb2YgQ2hlY2tib3ggaW5wdXRzIGlzIHRoYXQgdGhleSBhcmUgcHJlc2VudGVkIGFzIGEgZ3JvdXAsIHdpdGggb25lIG5hbWUsIGFuZCBjYW4gaGF2ZSBhIHZhbGlkYXRpb24gZnVuY3Rpb24gcmVxdWlyaW5nIHRoYXQgeW91IGNoZWNrIG9uZSBvciBtb3JlIG9mIHRoZSBib3hlcyBpbiB0aGUgZ3JvdXAuPC9saT4NCjxsaT5SYWRpbyBHcm91cC4gVGhpcyBpcyBhIGNvbGxlY3Rpb24gb2YgcmFkaW8gYnV0dG9ucy4gT25seSBvbmUgb2YgdGhlIGdyb3VwIG1heSBiZSBzZWxlY3RlZCBieSB0aGUgdXNlci48L2xpPg0KPGxpPlB1bGxkb3duLiBUaGlzIGlzIGEgc3RhbmRhcmQgcHVsbGRvd24gbWVudS4gSXQmIzAzOTtzIHJlYWxseSBjb25jZXB0dWFsbHkgdGhlIHNhbWUgdGhpbmcgYXMgYSByYWRpbyBidXR0b24NCmdyb3VwLCBidXQgaXMgYmV0dGVyIHdoZW4gdGhlcmUgYXJlIGEgbGFyZ2UgbnVtYmVyIG9mIG9wdGlvbnMuPC9saT4NCjxsaT5NdWx0aXNlbGVjdC4gVGhpcyBpcyBhIG11bHRpLXNlbGVjdCBmaWVsZC4gSXQmIzAzOTtzIHJlYWxseSBjb25jZXB0dWFsbHkgdGhlIHNhbWUgdGhpbmcgYXMgYSBjaGVja2JveCBidXR0b24NCmdyb3VwLCBidXQgaXMgYmV0dGVyIHdoZW4gdGhlcmUgYXJlIGEgbGFyZ2UgbnVtYmVyIG9mIG9wdGlvbnMsIGFzIHlvdSBjYW4gbGltaXQgdGhlIG51bWJlciBkaXNwbGF5ZWQgb24gdGhlIHNjcmVlbiBhdCBhbnkgb25lIHRpbWUuPC9saT4NCjxsaT5TdGF0ZS4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIFN0YXRlcyBvZiB0aGUgVS5TLjwvbGk+DQo8bGk+Q291bnRyaWVzLiBUaGlzIGlzIGEgcHVsbGRvd24gbGlzdGluZyB0aGUgQ291bnRyaWVzIG9mIHRoZSB3b3JsZCAoYXMgb2YgSnVseSAyMDA1KS48L2xpPg0KPGxpPkRhdGUgUGlja2VyLiBUaGlzIGlzIGEgdHJpcGxlIHB1bGxkb3duIGFsbG93aW5nIHRoZSB1c2VyIHRvIHNlbGVjdCBhIGRhdGUuPC9saT4NCjxsaT5UaW1lIFBpY2tlci4gVGhpcyBpcyBhIHNldCBvZiBwdWxsZG93bnMgYWxsb3dpbmcgdGhlIHVzZXIgdG8gc2VsZWN0IGEgdGltZSAodXNpbmcgMTIgb3IgMjQgaG91ciBjbG9jaykuPC9saT4NCjxsaT5GaWxlIFVwbG9hZC4gVGhpcyBpcyBhIGZpbGUgdXBsb2FkIGZpZWxkLjwvbGk+DQo8bGk+TGluayAoVXNlciBFbnRlcmVkKS4gVGhpcyBjcmVhdGVzIGEgZG91YmxlIGlucHV0IGZpZWxkIGZvciBnZXR0aW5nIGEgbGluayBVUkwgYW5kIGxpbmsgdGl0bGUuPC9saT4NCjwvdWw+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+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPg0KPHVsPg0KPGxpPkZvciB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBtb2R1bGUsIEZBUXMsIG9yIHRvIGZpbGUgYSBCdWcgUmVwb3J0LCBwbGVhc2UgdmlzaXQgdGhlIENNUyBNYWRlIFNpbXBsZSAgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZyI+RGV2ZWxvcGVyIEZvcmdlPC9hPi48L2xpPg0KPGxpPlRvIG9idGFpbiBjb21tZXJjaWFsIHN1cHBvcnQsIHBsZWFzZSBzZW5kIGFuIGVtYWlsIHRvIHRoZSBhdXRob3IgYXQgPGEgaHJlZj0ibWFpbHRvOnNqZ0BjbXNtb2R1bGVzLmNvbSI+JmFtcDtsdDtzamdAY21zbW9kdWxlcy5jb20mYW1wO2d0OzwvYT4uPC9saT4NCjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyI+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uPC9saT4NCjxsaT5UaGUgYXV0aG9yIGNhbiBvZnRlbiBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaXJjOi8vaXJjLmZyZWVub2RlLm5ldC8jY21zIj5DTVMgSVJDIENoYW5uZWw8L2E+LjwvbGk+DQo8bGk+TGFzdGx5LCB5b3UgbWF5IGhhdmUgc29tZSBzdWNjZXNzIGVtYWlsaW5nIHRoZSBhdXRob3IgZGlyZWN0bHkgYW5kIGdyb3ZlbGxpbmcgZm9yIGZyZWUgc3VwcG9ydC48L2xpPg0KPC91bD4NCjxwPkFzIHBlciB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkIGFzLWlzLiBQbGVhc2UgcmVhZCB0aGUgdGV4dA0Kb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuPC9wPg0KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+DQo8cD5Db3B5cmlnaHQgJmFtcDtjb3B5OyAyMDA3LCBTYW11ZWwgR29sZHN0ZWluIDxhIGhyZWY9Im1haWx0bzpzamdAY21zbW9kdWxlcy5jb20iPiZhbXA7bHQ7c2pnQGNtc21vZHVsZXMuY29tJmFtcDtndDs8L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+DQo8cD5UaGlzIG1vZHVsZSBoYXMgYmVlbiByZWxlYXNlZCB1bmRlciB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5HTlUgUHVibGljIExpY2Vuc2U8L2E+LiBZb3UgbXVzdCBhZ3JlZSB0byB0aGlzIGxpY2Vuc2UgYmVmb3JlIHVzaW5nIHRoZSBtb2R1bGUuPC9wPic7CiRsYW5nWyd1dG1hJ10gPSAnMTU2ODYxMzUzLjU2ODcyNzkzNy4xMjM2MzQwMTcxLjEyMzYzNDAxNzEuMTIzNjM0MDE3MS4xJzsKJGxhbmdbJ3V0bWInXSA9ICcxNTY4NjEzNTMnOwokbGFuZ1sndXRtYyddID0gJzE1Njg2MTM1Myc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEyMzYzNDAxNzEuMS4xLnV0bWNjbj0ocmVmZXJyYWwpfHV0bWNzcj1kZXYuY21zbWFkZXNpbXBsZS5vcmd8dXRtY2N0PS98dXRtY21kPXJlZmVycmFsJzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/ja_JP.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0Zvcm0gQnVpbGRlcic7CiRsYW5nWydmaWVsZF90eXBlXyddID0gJ0ZpZWxkIFR5cGUgTm90IFNldCc7CiRsYW5nWydmaWVsZF90eXBlX0NhdGFsb2dlckl0ZW1zRmllbGQnXSA9ICdTZWxlY3Qgb25lIChvciBtb3JlKSBjYXRhbG9nZXIgaXRlbXMnOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldEVuZCddID0gJy1GaWVsZHNldCBFbmQnOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldFN0YXJ0J10gPSAnLUZpZWxkc2V0IFN0YXJ0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkJ10gPSAn44OG44Kt44K544OIJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkRXhwYW5kYWJsZSddID0gJ+ODhuOCreOCueODiCAo6KSH5pWwKSc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRBcmVhRmllbGQnXSA9ICfjg4bjgq3jgrnjg4jjgqjjg6rjgqInOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEZpZWxkJ10gPSAn44OB44Kn44OD44Kv44Oc44OD44Kv44K5JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hHcm91cEZpZWxkJ10gPSAn44OB44Kn44OD44Kv44Oc44OD44Kv44K544O744Kw44Or44O844OXJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUHVsbGRvd25GaWVsZCddID0gJ+ODl+ODq+ODgOOCpuODsyc7CiRsYW5nWydmaWVsZF90eXBlX011bHRpc2VsZWN0RmllbGQnXSA9ICfopIfmlbDpgbjmip4nOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0ZVBpY2tlckZpZWxkJ10gPSAnVS5TLiBTdGF0ZSBQaWNrZXInOwokbGFuZ1snZmllbGRfdHlwZV9Qcm92aW5jZVBpY2tlckZpZWxkJ10gPSAnQ2FuYWRpYW4gUHJvdmluY2UgUGlja2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ291bnRyeVBpY2tlckZpZWxkJ10gPSAnQ291bnRyeSBQaWNrZXInOwokbGFuZ1snZmllbGRfdHlwZV9EYXRlUGlja2VyRmllbGQnXSA9ICdEYXRlIFBpY2tlcic7CiRsYW5nWydmaWVsZF90eXBlX1RpbWVQaWNrZXJGaWVsZCddID0gJ1RpbWUgUGlja2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUmFkaW9Hcm91cEZpZWxkJ10gPSAnUmFkaW8gQnV0dG9uIEdyb3VwJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EaXJlY3RvciddID0gJypFbWFpbCBSZXN1bHRzIEJhc2VkIG9uIFB1bGxkb3duJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25GaWxlRGlyZWN0b3InXSA9ICcqU2F2ZSBSZXN1bHRzIHRvIEZpbGUgQmFzZWQgb24gUHVsbGRvd24nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbk11bHRpc2VsZWN0RmlsZURpcmVjdG9yJ10gPSAnKlNhdmUgUmVzdWx0cyB0byBGaWxlKHMpIEJhc2VkIG9uIE11bHRpcGxlIFNlbGVjdGlvbnMnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvblBhZ2VSZWRpcmVjdG9yJ10gPSAnKlJlZGlyZWN0IHRvIFBhZ2UgQmFzZWQgb24gUHVsbGRvd24nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsJ10gPSAnKkVtYWlsIFJlc3VsdHMgdG8gc2V0IEFkZHJlc3MoZXMpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbENvbmZpcm1hdGlvbiddID0gJypWYWxpZGF0ZS12aWEtRW1haWwgQWRkcmVzcyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRmlsZSddID0gJypXcml0ZSBSZXN1bHRzIHRvIEZsYXQgRmlsZSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGF0YWJhc2UnXSA9ICcqU3RvcmUgUmVzdWx0cyBpbiBEYXRhYmFzZSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRm9ybUJyb3dzZXInXSA9ICcqU3RvcmUgUmVzdWx0cyBmb3IgRm9ybUJyb3dzZXIgTW9kdWxlIHYuMyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uVXNlclRhZyddID0gJypDYWxsIEEgVXNlciBEZWZpbmVkIFRhZyBXaXRoIHRoZSBGb3JtIFJlc3VsdHMnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRlbGl2ZXJUb0VtYWlsQWRkcmVzc0ZpZWxkJ10gPSAnKkVtYWlsIHRvIFVzZXItU3VwcGxpZWQgRW1haWwgQWRkcmVzcyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxTaXRlQWRtaW4nXSA9ICcqQ01TIEFkbWluIFVzZXLjgbjjg6Hjg7zjg6vjgZnjgosnOwokbGFuZ1snZmllbGRfdHlwZV9QYWdlQnJlYWtGaWVsZCddID0gJy1QYWdlIEJyZWFrJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmlsZVVwbG9hZEZpZWxkJ10gPSAn44OV44Kh44Kk44Or44Ki44OD44OX44Ot44O844OJJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsQWRkcmVzc0ZpZWxkJ10gPSAn44Oh44O844Or44GuICJGcm9tIEFkZHJlc3MiIOmgheebric7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbE5hbWVGaWVsZCddID0gJ+ODoeODvOODq+OBriAiRnJvbSBOYW1lIiDpoIXnm64nOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxTdWJqZWN0RmllbGQnXSA9ICfjg6Hjg7zjg6vjga4gIlN1YmplY3QiIOmgheebric7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRpY1RleHRGaWVsZCddID0gJy0g6Z2Z55qE44OG44Kt44K544OIJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3lzdGVtTGlua0ZpZWxkJ10gPSAnLSDpnZnnmoTjg6rjg7Pjgq8nOwokbGFuZ1snZmllbGRfdHlwZV9MaW5rRmllbGQnXSA9ICfjg6rjg7Pjgq8gKFVzZXItZW50ZXJlZCknOwokbGFuZ1snZmllbGRfdHlwZV9IaWRkZW5GaWVsZCddID0gJy0g6Z2e6KGo56S66aCF55uuJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ29tcHV0ZWRGaWVsZCddID0gJy0gQ29tcHV0ZWQgRmllbGQnOwokbGFuZ1snZmllbGRfdHlwZV9VbmlxdWVJbnRlZ2VyRmllbGQnXSA9ICctVW5pcXVlIEludGVnZXIgKFNlcmlhbCknOwokbGFuZ1sndmFsaWRhdGlvbl9ub25lJ10gPSAn5YWl5Yqb44OB44Kn44OD44Kv44Gq44GXJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbnVtZXJpYyddID0gJ+aVsOWApCc7CiRsYW5nWyd2YWxpZGF0aW9uX2ludGVnZXInXSA9ICdJbnRlZ2VyJzsKJGxhbmdbJ3ZhbGlkYXRpb25fZW1haWxfYWRkcmVzcyddID0gJ+ODoeODvOODq+OCouODieODrOOCuSc7CiRsYW5nWyd2YWxpZGF0aW9uX3VzcGhvbmUnXSA9ICfpm7voqbHnlarlj7cgKFVTKSc7CiRsYW5nWyd2YWxpZGF0aW9uX211c3RfY2hlY2snXSA9ICflv4XpoIjjg4Hjgqfjg4Pjgq8nOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9tYXRjaCddID0gJ01hdGNoIFJlZ3VsYXIgRXhwcmVzc2lvbic7CiRsYW5nWyd2YWxpZGF0aW9uX3JlZ2V4X25vbWF0Y2gnXSA9ICdEb2VzblwndCBtYXRjaCBSZWd1bGFyIEV4cHJlc3Npb24nOwokbGFuZ1sncmVxdWlyZWRfZmllbGRfbWlzc2luZyddID0gJ0EgdmFsdWUgd2FzIG5vdCBzdXBwbGllZCBmb3IgYSByZXF1aXJlZCBmaWVsZCc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV92YWx1ZSddID0gJ1BsZWFzZSBlbnRlciBhIHZhbHVlIGZvciAiJXMiJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX251bWJlciddID0gJ1BsZWFzZSBlbnRlciBhIG51bWJlciBmb3IgIiVzIic7CiRsYW5nWydwbGVhc2VfZW50ZXJfdmFsaWQnXSA9ICdQbGVhc2UgZW50ZXIgYSB2YWxpZCBlbnRyeSBmb3IgIiVzIic7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5faW50ZWdlciddID0gJ1BsZWFzZSBlbnRlciBhbiBpbnRlZ2VyIHZhbHVlIGZvciAiJXMiJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hbl9lbWFpbCddID0gJ1BsZWFzZSBlbnRlciBhIHZhbGlkIGVtYWlsIGFkZHJlc3MgZm9yICIlcyInOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfcGhvbmUnXSA9ICdQbGVhc2UgZW50ZXIgYSB2YWxpZCBwaG9uZSBudW1iZXIgZm9yICIlcyInOwokbGFuZ1snbm90X3ZhbGlkX2VtYWlsJ10gPSAnIiVzIiBkb2VzIG5vdCBhcHBlYXIgdG8gYmUgYSB2YWxpZCBlbWFpbCBhZGRyZXNzISc7CiRsYW5nWydwbGVhc2VfZW50ZXJfbm9fbG9uZ2VyJ10gPSAnUGxlYXNlIGVudGVyIGEgdmFsdWUgdGhhdCBpcyBubyBsb25nZXIgdGhhbiAlcyBjaGFyYWN0ZXJzJzsKJGxhbmdbJ3RpdGxlX2xpc3RfZGVsaW1pdGVyJ10gPSAnQ2hhcmFjdGVyIHRvIHVzZSBhcyBkZWxpbWl0ZXIgaW4gcmVzdWx0cyB0aGF0IHJldHVybiBtb3JlIHRoYW4gb25lIHZhbHVlJzsKJGxhbmdbJ3lvdV9uZWVkX3Blcm1pc3Npb24nXSA9ICdZb3UgbmVlZCB0aGUgIiVzIiBwZXJtaXNzaW9uIHRvIHBlcmZvcm0gdGhhdCBvcGVyYXRpb24uJzsKJGxhbmdbJ2xhY2twZXJtaXNzaW9uJ10gPSAnU29ycnkhIFlvdSBkb25cJ3QgaGF2ZSBhZGVxdWF0ZSBwcml2aWxlZ2VzIHRvIGFjY2VzcyB0aGlzIHNlY3Rpb24uJzsKJGxhbmdbJ2ZpZWxkX29yZGVyX3VwZGF0ZWQnXSA9ICdGaWVsZCBvcmRlciB1cGRhdGVkLic7CiRsYW5nWydmb3JtX2RlbGV0ZWQnXSA9ICfjg5Xjgqnjg7zjg6DjgpLliYrpmaTjgZfjgb7jgZfjgZ/jgIInOwokbGFuZ1snZmllbGRfZGVsZXRlZCddID0gJ+mgheebruOCkuWJiumZpOOBl+OBvuOBl+OBn+OAgic7CiRsYW5nWydjb25maWd1cmF0aW9uX3VwZGF0ZWQnXSA9ICfoqK3lrprmg4XloLHjgpLmm7TmlrDjgZfjgb7jgZfjgZ/jgIInOwokbGFuZ1sneW91X211c3RfY2hlY2snXSA9ICdZb3UgbXVzdCBjaGVjayAiJXMiIGluIG9yZGVyIHRvIGNvbnRpbnVlLic7CiRsYW5nWydtdXN0X3NwZWNpZnlfb25lX2Rlc3RpbmF0aW9uJ10gPSAnWW91IG5lZWQgdG8gc3BlY2lmeSBhdCBsZWFzdCBvbmUgZGVzdGluYXRpb24gYWRkcmVzcyEnOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9mb3JtJ10gPSAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGUgZm9ybSAlcz8nOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9maWVsZCddID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgdGhlIGZpZWxkICVzPyc7CiRsYW5nWydub3RpY2Vfc2VsZWN0X3R5cGUnXSA9ICdBZHZhbmNlZCBvcHRpb25zIGFyZSBub3QgYXZhaWxhYmxlIHVudGlsIHRoZSBmaWVsZCB0eXBlIGhhcyBiZWVuIHNldC4nOwokbGFuZ1snZmllbGRfbmFtZV9pbl91c2UnXSA9ICdUaGUgZmllbGQgbmFtZSAiJXMiIGlzIGFscmVhZHkgaW4gdXNlLiBQbGVhc2UgdXNlIHVuaXF1ZSBmaWVsZCBuYW1lcywgb3IgZGlzYWJsZSB1bmlxdWUgZmllbGQgbmFtZXMgaW4gdGhlIEZvcm0gQnVpbGRlciBjb25maWd1cmF0aW9uLic7CiRsYW5nWydmaWVsZF9ub19uYW1lJ10gPSAnRmllbGRzIG11c3QgYmUgbmFtZWQsIHVubGVzcyB5b3UgZGlzYWJsZSB0aGlzIGluIHRoZSBGb3JtIEJ1aWxkZXIgY29uZmlndXJhdGlvbi4nOwokbGFuZ1snYW5vbnltb3VzJ10gPSAnQW5vbnltb3VzJzsKJGxhbmdbJ2FiYnJldmlhdGlvbl9sZW5ndGgnXSA9ICfplbfjgZU6ICVzJzsKJGxhbmdbJ2JveGVzJ10gPSAnJXMgYm94ZXMnOwokbGFuZ1snb3B0aW9ucyddID0gJyVzIG9wdGlvbnMnOwokbGFuZ1sndGV4dF9sZW5ndGgnXSA9ICclcyBjaGFycy4nOwokbGFuZ1snb3JkZXInXSA9ICdPcmRlcic7CiRsYW5nWyd1bnNwZWNpZmllZCddID0gJ1t1bnNwZWNpZmllZF0nOwokbGFuZ1snYWRkZWQnXSA9ICfov73liqDjgZfjgb7jgZfjgZ/jgIInOwokbGFuZ1sndXBkYXRlZCddID0gJ+abtOaWsOOBl+OBvuOBl+OBn+OAgic7CiRsYW5nWydzb3J0X29wdGlvbnMnXSA9ICdTb3J0IG9wdGlvbnMgb24gb3V0cHV0JzsKJGxhbmdbJ3NlbGVjdF9vbmUnXSA9ICfjgbLjgajjgaTjgpLpgbjmip4nOwokbGFuZ1snc2VsZWN0X3R5cGUnXSA9ICdTZWxlY3QgVHlwZSc7CiRsYW5nWyd0byddID0gJ1RvJzsKJGxhbmdbJ3llcyddID0gJ+OBr+OBhCc7CiRsYW5nWydubyddID0gJ+OBhOOBhOOBiCc7CiRsYW5nWydyZWNpcGllbnRzJ10gPSAncmVjaXBpZW50cyc7CiRsYW5nWydmaWxlX2NvdW50J10gPSAnJXMgcG9zc2libGUgZmlsZXMnOwokbGFuZ1snZGVzdGluYXRpb25fY291bnQnXSA9ICclcyBkZXN0aW5hdGlvbnMnOwokbGFuZ1snc2F2ZSddID0gJ+S/neWtmCc7CiRsYW5nWydhZGQnXSA9ICfov73liqAnOwokbGFuZ1sndXBkYXRlJ10gPSAn5pu05pawJzsKJGxhbmdbJ3NhdmVfYW5kX2NvbnRpbnVlJ10gPSAn5L+d5a2Y44GX44CB57eo6ZuG44KS57aa44GR44KLJzsKJGxhbmdbJ2luZm9ybWF0aW9uJ10gPSAn5oOF5aCxJzsKJGxhbmdbJ2F1dG9tYXRpYyddID0gJ0F1dG9tYXRpYyc7CiRsYW5nWydmb3JtcyddID0gJ0Zvcm1zJzsKJGxhbmdbJ2Zvcm0nXSA9ICdGb3JtICVzJzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb24nXSA9ICfoqK3lrprmg4XloLEnOwokbGFuZ1snZmllbGRfcmVxdWlyZW1lbnRfdXBkYXRlZCddID0gJ0ZpZWxkIHJlcXVpcmVkIHN0YXRlIHVwZGF0ZWQuJzsKJGxhbmdbJ21heGltdW1fc2l6ZSddID0gJ+acgOWkp+OCteOCpOOCuic7CiRsYW5nWydwZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ0V4dGVuc2lvbnMnOwokbGFuZ1sncGVybWl0dGVkX2ZpbGV0eXBlcyddID0gJ0FsbG93ZWQgZmlsZSB0eXBlcyc7CiRsYW5nWydmaWxlX3Rvb19sYXJnZSddID0gJ1VwbG9hZGVkIGZpbGUgaXMgdG9vIGxhcmdlISBNYXhpbXVtIHNpemUgaXM6JzsKJGxhbmdbJ2lsbGVnYWxfZmlsZV90eXBlJ10gPSAnVGhpcyB0eXBlIG9mIGZpbGUgbWF5IG5vdCBiZSB1cGxvYWRlZC4gUGxlYXNlIGNoZWNrIHRoYXQgdGhlIGV4dGVuc2lvbiBpcyBjb3JyZWN0Lic7CiRsYW5nWyd1cGxvYWQnXSA9ICfjgqLjg4Pjg5fjg63jg7zjg4knOwokbGFuZ1snZm9ybV9pbXBvcnRlZCddID0gJ0Zvcm0gSW1wb3J0ZWQuJzsKJGxhbmdbJ2Zvcm1faW1wb3J0X2ZhaWxlZCddID0gJ0Zvcm0gaW1wb3J0IGZhaWxlZCEgVGhlcmUgd2FzIGEgcHJvYmxlbSB3aXRoIHRoZSBmb3JtYXQgb2YgdGhlIFhNTCBmaWxlLic7CiRsYW5nWydyb3dzJ10gPSAnJXMg6KGMJzsKJGxhbmdbJ2NvbHMnXSA9ICclcyDliJcnOwokbGFuZ1snMTJfaG91ciddID0gJzEy5pmC6ZaT6KGo56S6JzsKJGxhbmdbJzI0X2hvdXInXSA9ICcyNOaZgumWk+ihqOekuic7CiRsYW5nWydob3VyJ10gPSAn5pmCJzsKJGxhbmdbJ21pbiddID0gJ+WIhic7CiRsYW5nWydtZXJpZCddID0gJ01lcmlkaWFuJzsKJGxhbmdbJ2RhdGVfcmFuZ2UnXSA9ICfnr4Tlm7I6ICVzIC0gJXMnOwokbGFuZ1sndGhhbmtzJ10gPSAnVGhhbmtzISBZb3VyIHN1Ym1pc3Npb25zIGhhdmUgYmVlbiByZWNlaXZlZC4nOwokbGFuZ1snZWRpdCddID0gJ+e3qOmbhic7CiRsYW5nWydkZWxldGUnXSA9ICfliYrpmaQnOwokbGFuZ1snZGF5J10gPSAn5pelJzsKJGxhbmdbJ21vbiddID0gJ+aciCc7CiRsYW5nWyd5ZWFyJ10gPSAn5b+1JzsKJGxhbmdbJ25vbmUnXSA9ICco44Gq44GXKSc7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ+ODouOCuOODpeODvOODq+OCkuOCouODs+OCpOODs+OCueODiOODvOODq+OBl+OBvuOBl+OBn+OAgic7CiRsYW5nWydpbnN0YWxsZWQnXSA9ICdNb2R1bGUgdmVyc2lvbiAlcyBpbnN0YWxsZWQuJzsKJGxhbmdbJ3VwZ3JhZGVkJ10gPSAnTW9kdWxlIHVwZ3JhZGVkIHRvIHZlcnNpb24gJXMuJzsKJGxhbmdbJ2J1dHRvbl9wcmV2aW91cyddID0gJ+aIu+OCiy4uLic7CiRsYW5nWydidXR0b25fc3VibWl0J10gPSAnU3VibWl0IEZvcm0nOwokbGFuZ1snYnV0dG9uX2NvbnRpbnVlJ10gPSAn57aa44GR44KLLi4uJzsKJGxhbmdbJ3ZhbHVlX2NoZWNrZWQnXSA9ICfjg4Hjgqfjg4Pjgq8nOwokbGFuZ1sndmFsdWVfdW5jaGVja2VkJ10gPSAn6Z2e44OB44Kn44OD44KvJzsKJGxhbmdbJ3RhYl9tYWluJ10gPSAn44Oh44Kk44OzJzsKJGxhbmdbJ3RhYl9zeW1ib2wnXSA9ICfjg5Xjgqnjg7zjg6Djga7ooajnpLroqK3lrponOwokbGFuZ1sndGFiX3N1Ym1pdCddID0gJ0Zvcm0gU3VibWlzc2lvbic7CiRsYW5nWyd0YWJfY2FwdGNoYSddID0gJ0NhcHRjaGHoqK3lrponOwokbGFuZ1sndGFiX2FkdmFuY2VkJ10gPSAnQWR2YW5jZWQgU2V0dGluZ3MnOwokbGFuZ1sndGFiX3RlbXBsYXRlbGF5b3V0J10gPSAn44OV44Kp44O844Og44O744OG44Oz44OX44Os44O844OIJzsKJGxhbmdbJ3RhYl9zdWJtaXNzaW9udGVtcGxhdGUnXSA9ICdTdWJtaXNzaW9uIFRlbXBsYXRlJzsKJGxhbmdbJ2NhbnVzZV9zbWFydHknXSA9ICc8ZW0+U21hcnR5IHZhcmlhYmxlcyBhcmUgdmFsaWQgaW4gdGhpcyBmaWVsZC48L2VtPic7CiRsYW5nWydhZGRfb3B0aW9ucyddID0gJ+OCquODl+OCt+ODp+ODs+OCkui/veWKoCc7CiRsYW5nWydkZWxldGVfb3B0aW9ucyddID0gJ+mBuOaKnuOBl+OBn+OCquODl+OCt+ODp+ODs+OCkuWJiumZpCc7CiRsYW5nWydhZGRfY2hlY2tib3hlcyddID0gJ+ODgeOCp+ODg+OCr+ODnOODg+OCr+OCueOCkui/veWKoCc7CiRsYW5nWydkZWxldGVfY2hlY2tib3hlcyddID0gJ+mBuOaKnuOBl+OBn+ODgeOCp+ODg+OCr+ODnOODg+OCr+OCueOCkuWJiumZpCc7CiRsYW5nWydhZGRfYWRkcmVzcyddID0gJ0FkZCBBbm90aGVyIEFkZHJlc3MnOwokbGFuZ1snZGVsZXRlX2FkZHJlc3MnXSA9ICdEZWxldGUgTWFya2VkIEFkZHJlc3Nlcyc7CiRsYW5nWydhZGRfZGVzdGluYXRpb24nXSA9ICdBZGQgQW5vdGhlciBEZXN0aW5hdGlvbic7CiRsYW5nWydkZWxldGVfZGVzdGluYXRpb24nXSA9ICdEZWxldGUgTWFya2VkIERlc3RpbmF0aW9ucyc7CiRsYW5nWydzdXNwZWN0ZWRfc3BhbSddID0gJ1RvbyBtYW55IGVtYWlscyBnZW5lcmF0ZWQgZnJvbSB5b3VyIElQIGFkZHJlc3MuIEFudGktU3BhbSBjb2RlIGhhcyBwcmV2ZW50ZWQgZGVsaXZlcnkuJzsKJGxhbmdbJ3N1c3BlY3RlZF9zcGFtX2xvZyddID0gJ1N1c3BlY3RlZCBzcGFtIGZyb20gSVAgJXMgc3RvcHBlZC4nOwokbGFuZ1sncmVvcmRlciddID0gJ1Jlb3JkZXIgRmllbGRzJzsKJGxhbmdbJ2NhbmNlbCddID0gJ+OCreODo+ODs+OCu+ODqyc7CiRsYW5nWyd2YWx1ZV9zZXQnXSA9ICdWYWx1ZSBzZXQ6ICVzJzsKJGxhbmdbJ2hlbHBfY2F0YWxvZ2VyX2F0dHJpYnV0ZV9maWVsZHMnXSA9ICdCZWxvdyBpcyBhIGxpc3Qgb2YgdGhlIGF0dHJpYnV0ZXMgYXZhaWxhYmxlIGZyb20gdGhlIENhdGFsb2dlciBtb2R1bGUuPGJyLz5Zb3UgY2FuIG9wdGlvbmFsbHkgc3BlY2lmeSB2YWxpZCByYW5nZXMsIHZhbHVlcywgb3IgbnVtZXJvdXMgdmFsdWVzIHRvIGJlIHVzZWQgaW4gZmlsdGVyaW5nIHRoZSBsaXN0IG9mIGl0ZW1zIHRoYXQgaXMgZGlzcGxheWVkIHRvIHRoZSB1c2VyLjxici8+DQo8YnIvPg0KPHN0cm9uZz5SYW5nZXM6PC9zdHJvbmc+PGJyLz4NClJhbmdlcyBjYW4gYmUgc3BlY2lmaWVkIGJ5IHNpZ25pZnlpbmcgYSBtaW5pbXVtIGFuZCBtYXhpbXVtIHZhbHVlIHVzaW5nIHRoaXMgc3ludGF4OiAicmFuZ2U6IG1pbnZhbHVlIHRvIG1heHZhbHVlIjxici8+DQo8YnIvPg0KPHN0cm9uZz5NdWx0aXBsZSBWYWx1ZXM6PC9zdHJvbmc+PGJyLz4NClRvIHNwZWNpZnkgbXVsdGlwbGUgdmFsdWVzIGZvciBhbiBhdHRyaWJ1dGUgdXNlIHRoZSBzeW50YXggIm11bHRpOiB2YWx1ZTF8dmFsdWUyfHZhbHVlMyI8YnIvPg0KPGJyLz4NCjxzdHJvbmc+VmFsdWVzIGZyb20gaGlkZGVuIGZpZWxkczwvc3Ryb25nPjxici8+DQpUbyBzcGVjaWZ5IGEgdmFsdWUgZnJvbSBhIGhpZGRlbiBmaWVsZCB1c2UgdGhlIHN5bnRheCB7JGZsZF9pZH08YnIvPg0KPGJyLz4nOwokbGFuZ1snaGVscF9uYW1lX3JlZ2V4J10gPSAnQSByZWd1bGFyIGV4cHJlc3Npb24gdG8gYWxsb3cgZmlsdGVyaW5nIGNhdGFsb2dlciBpdGVtcyBieSBuYW1lJzsKJGxhbmdbJ2hlbHBfZmllbGRfaGVpZ2h0J10gPSAnVGhlIGhlaWdodCBvZiB0aGUgbXVsdGlzZWxlY3QgZmllbGQnOwokbGFuZ1sndGl0bGVfbmFtZV9yZWdleCddID0gJ0NhdGFsb2dlciBJdGVtIE5hbWUgUmVndWxhciBFeHByZXNzaW9uJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2hlaWdodCddID0gJ+mgheebruOBrumrmOOBlSc7CiRsYW5nWyd0aXRsZV9maWxlX3BhdGgnXSA9ICdEZXN0aW5hdGlvbiBEaXJlY3RvcnkgZm9yIG91dHB1dCBmaWxlcyc7CiRsYW5nWyd0aXRsZV91ZHRfbmFtZSddID0gJ+ODpuODvOOCtuWumue+qeOCv+OCsCc7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2Rlc3RwYWdlJ10gPSAnUGFnZSB0byByZXR1cm4gdG8gd2l0aCB1cGxvYWRzIGxpbmsnOwokbGFuZ1sndGl0bGVfdXBsb2FkbW9kdWxlX3N1bW1hcnknXSA9ICdTdWJtaXR0ZWQgd2l0aCBmb3JtYnVpbGRlcic7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2NhdGVnb3J5J10gPSAn44Kr44OG44K044Oq44Gu44Ki44OD44OX44Ot44O844OJJzsKJGxhbmdbJ3RpdGxlX3NlbmR0b191cGxvYWRzJ10gPSAnU2VuZCB0aGlzIGZpbGUgdG8gdGhlIHVwbG9hZHMgbW9kdWxlJzsKJGxhbmdbJ3RpdGxlX2xlZ2VuZCddID0gJ0xlZ2VuZCc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX2xlbmd0aCddID0gJ+acgOWkp+mVtyc7CiRsYW5nWyd0aXRsZV9jaGVja2JveF9sYWJlbCddID0gJ+ODgeOCp+ODg+OCr+ODnOODg+OCr+OCueODu+ODqeODmeODqyc7CiRsYW5nWyd0aXRsZV9yYWRpb19sYWJlbCddID0gJ+ODqeOCuOOCquODnOOCv+ODs+ODu+ODqeODmeODqyc7CiRsYW5nWyd0aXRsZV9jaGVja2VkX3ZhbHVlJ10gPSAnVmFsdWUgd2hlbiBjaGVja2VkJzsKJGxhbmdbJ3RpdGxlX3VuY2hlY2tlZF92YWx1ZSddID0gJ1ZhbHVlIHdoZW4gbm90IGNoZWNrZWQuJzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2RldGFpbHMnXSA9ICdDaGVja2JveCBHcm91cCBEZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX2RlbGV0ZSddID0gJ+WJiumZpOOBl+OBvuOBmeOBi++8nyc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rfb25lX21lc3NhZ2UnXSA9ICciU2VsZWN0IE9uZSIgVGV4dCc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fdmFsdWUnXSA9ICdTZWxlY3Rpb24gVmFsdWUnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX2Rpc3BsYXluYW1lJ10gPSAnU2VsZWN0aW9uIERpc3BsYXkgTmFtZSc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fc3ViamVjdCddID0gJ1NlbGVjdGlvbiBTdWJqZWN0JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X2NvdW50cnknXSA9ICdEZWZhdWx0IFNlbGVjdGlvbic7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9zdGF0ZSddID0gJ0RlZmF1bHQgU2VsZWN0aW9uJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X3Byb3ZpbmNlJ10gPSAnRGVmYXVsdCBTZWxlY3Rpb24nOwokbGFuZ1sndGl0bGVfb3B0aW9uX25hbWUnXSA9ICdPcHRpb24gTmFtZSc7CiRsYW5nWyd0aXRsZV9vcHRpb25fdmFsdWUnXSA9ICdWYWx1ZSBTdWJtaXR0ZWQnOwokbGFuZ1sndGl0bGVfcHVsbGRvd25fZGV0YWlscyddID0gJ1B1bGxkb3duIE9wdGlvbnMnOwokbGFuZ1sndGl0bGVfbXVsdGlzZWxlY3RfZGV0YWlscyddID0gJ011bHRpc2VsZWN0IE9wdGlvbnMnOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fYWRkcmVzcyddID0gJ0Rlc3RpbmF0aW9uIEVtYWlsIEFkZHJlc3MnOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fZmlsZW5hbWUnXSA9ICdEZXN0aW5hdGlvbiBGaWxlIE5hbWUnOwokbGFuZ1sndGl0bGVfZW1haWxfZnJvbV9uYW1lJ10gPSAnIkZyb20gbmFtZSIgZm9yIGVtYWlsJzsKJGxhbmdbJ3RpdGxlX3JlbGF4ZWRfZW1haWxfcmVnZXgnXSA9ICdVc2UgcmVsYXhlZCBlbWFpbCB2YWxpZGF0aW9uJzsKJGxhbmdbJ3RpdGxlX3JlbGF4ZWRfcmVnZXhfbG9uZyddID0gJ1VzZSByZWxheGVkIGVtYWlsIGFkZHJlc3MgdmFsaWRhdGlvbiAoZS5nLiwgYWxsb3cgInhAeSIgaW5zdGVhZCBvZiByZXF1aXJpbmcgInhAeS50bGQiKSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9mcm9tX2FkZHJlc3MnXSA9ICfjg6Hjg7zjg6vjga4iRnJvbSBhZGRyZXNzIic7CiRsYW5nWyd0aXRsZV9lbWFpbF9lbmNvZGluZyddID0gJ0VtYWlsIGNoYXJhY3RlciBzZXQgZW5jb2RpbmcnOwokbGFuZ1sndGl0bGVfZGlyZWN0b3JfZGV0YWlscyddID0gJ1B1bGxkb3duLWJhc2VkIEVtYWlsZXIgRGV0YWlscyc7CiRsYW5nWyd0aXRsZV9maWxlX25hbWUnXSA9ICfjg5XjgqHjgqTjg6vlkI0nOwokbGFuZ1sndGl0bGVfZW1haWxfc3ViamVjdCddID0gJ+ODoeODvOODq+OCteODluOCuOOCp+OCr+ODiOWQjSc7CiRsYW5nWyd0aXRsZV9mb3JtX25hbWUnXSA9ICfjg5Xjgqnjg7zjg6DlkI0nOwokbGFuZ1sndGl0bGVfZm9ybV9zdGF0dXMnXSA9ICfjg5Xjgqnjg7zjg6Djgrnjg4bjg7zjgr/jgrknOwokbGFuZ1sndGl0bGVfcmVhZHlfZm9yX2RlcGxveW1lbnQnXSA9ICfjg4fjg5fjg63jgqTjgafjgY3jgb7jgZnjgIInOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MSddID0gJ+ODh+ODl+ODreOCpOOBp+OBjeOBvuOBm+OCk+OAgic7CiRsYW5nWyd0aXRsZV9yZWRpcmVjdF9wYWdlJ10gPSAnUGFnZSB0byByZWRpcmVjdCB0byBhZnRlciBmb3JtIHN1Ym1pc3Npb24nOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MiddID0gJ1BsZWFzZSBhZGQgYSBmaWVsZCB0byB0aGUgZm9ybSBzbyB0aGF0IHRoZSB1c2VyXCdzIGlucHV0IGdldHMgaGFuZGxlZC4gWW91IGNhbic7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHlfbGluayddID0gJ3VzZSB0aGlzIHNob3J0Y3V0JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fYWxpYXMnXSA9ICfjg5Xjgqnjg7zjg6DjgqjjgqTjg6rjgqLjgrknOwokbGFuZ1sndGl0bGVfZm9ybV9maWVsZHMnXSA9ICfjg5Xjgqnjg7zjg6DpoIXnm64nOwokbGFuZ1sndGl0bGVfZmllbGRfaWQnXSA9ICfpoIXnm65JRCc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkYWxpYXNlcyddID0gJ1Nob3cgRmllbGQgQWxpYXNlcyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkYWxpYXNlc19sb25nJ10gPSAnQ2xpY2tpbmcgdGhpcyB3aWxsIGRpc3BsYXkgZmllbGQgYWxpYXNlcyB3aGVuIGFkZGluZyBvciBlZGl0aW5nIGEgZm9ybSc7CiRsYW5nWyd0aXRsZV9maWVsZF9uYW1lJ10gPSAn6aCF55uu5ZCNJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2FsaWFzJ10gPSAn6aCF55uu44Ko44Kk44Oq44Ki44K5JzsKJGxhbmdbJ3RpdGxlX3JhZGlvZ3JvdXBfZGV0YWlscyddID0gJ1JhZGlvIEJ1dHRvbiBHcm91cCBEZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3R5cGUnXSA9ICfpoIXnm67lnosnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MyddID0gJ3RvIGNyZWF0ZSBhIGZvcm0gaGFuZGxpbmcgZmllbGQuJzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZm9ybSddID0gJ+ODleOCqeODvOODoOOBrui/veWKoCc7CiRsYW5nWyd0aXRsZV9zaG93X3ZlcnNpb24nXSA9ICdTaG93IEZvcm0gQnVpbGRlciBWZXJzaW9uPyc7CiRsYW5nWyd0aXRsZV9zaG93X3ZlcnNpb25fbG9uZyddID0gJ1RoaXMgd2lsbCBlbWJlZCB5b3VyIGluc3RhbGxlZCB2ZXJzaW9uIG51bWJlciBvZiBGb3JtIEJ1aWxkZXIgbW9kdWxlIGluIGEgY29tbWVudCwgdG8gYWlkIGluIGRlYnVnZ2luZyc7CiRsYW5nWyd0aXRsZV9hZGRfbmV3X2ZpZWxkJ10gPSAn6aCF55uu44Gu6L+95YqgJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fc3VibWl0X2J1dHRvbiddID0gJ0Zvcm0gU3VibWl0IEJ1dHRvbiBUZXh0JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5J10gPSAnQWRkIEphdmFzY3JpcHQgdG8gZmluYWwgU3VibWl0IEJ1dHRvbiB0aGF0IHdpbGwgaGVscCBwcmV2ZW50IG11bHRpcGxlIHN1Ym1pc3Npb25zPyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eV9oZWxwJ10gPSAnQWRkIHNhZmV0eSBzY3JpcHQnOwokbGFuZ1sndGl0bGVfZm9ybV9uZXh0X2J1dHRvbiddID0gJ0Zvcm0gIk5leHQiIEJ1dHRvbiBUZXh0ICh1c2VkIGZvciBtdWx0aXBhZ2UgZm9ybXMpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcHJldl9idXR0b24nXSA9ICdGb3JtICJQcmV2aW91cyIgQnV0dG9uIFRleHQgKHVzZWQgZm9yIG11bHRpcGFnZSBmb3JtcyknOwokbGFuZ1sndGl0bGVfZmllbGRfdmFsaWRhdGlvbiddID0gJ+mgheebruOBruWFpeWKm+ODgeOCp+ODg+OCryc7CiRsYW5nWyd0aXRsZV9mb3JtX2Nzc19jbGFzcyddID0gJ0NTUyBDbGFzcyBmb3IgdGhpcyBmb3JtJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2Nzc19jbGFzcyddID0gJ0NTUyBDbGFzcyBmb3IgdGhpcyBmaWVsZCc7CiRsYW5nWyd0aXRsZV9mb3JtX3JlcXVpcmVkX3N5bWJvbCddID0gJ1N5bWJvbCB0byBtYXJrIHJlcXVpcmVkIEZpZWxkcyc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZCddID0gJ+W/hemgiCc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9sb25nJ10gPSAnUmVxdWlyZSBhIHJlc3BvbnNlIGZvciB0aGlzIEZpZWxkJzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWwnXSA9ICfpnZ7ooajnpLrjg6njg5njg6snOwokbGFuZ1sndGl0bGVfaGlkZV9sYWJlbF9sb25nJ10gPSAnSGlkZSB0aGlzIGZpZWxkXCdzIG5hbWUgb24gRm9ybSc7CiRsYW5nWyd0aXRsZV90ZXh0J10gPSAnU3RhdGljIHRleHQgdG8gZGlzcGxheSc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZWdleCddID0gJ1ZhbGlkYXRpb24gUmVnZXgnOwokbGFuZ1sndGl0bGVfbGluZXNfdG9fc2hvdyddID0gJ+ihjOeVquWPt+OCkuihqOekuic7CiRsYW5nWydub19kZWZhdWx0J10gPSAnTm8gRGVmYXVsdCc7CiRsYW5nWydyZWRpcmVjdF9hZnRlcl9hcHByb3ZhbCddID0gJ1BhZ2UgdG8gcmVkaXJlY3QgYWZ0ZXIgYXBwcm92YWwnOwokbGFuZ1sndGl0bGVfcmVnZXhfaGVscCddID0gJ1RoaXMgcmVndWxhciBleHByZXNzaW9uIHdpbGwgb25seSBiZSB1c2VkIGlmICJ2YWxpZGF0aW9uIHR5cGUiIGlzIHNldCB0byBhIHJlZ2V4LXJlbGF0ZWQgb3B0aW9uLiBJbmNsdWRlIGEgZnVsbCBQZXJsLXN0eWxlIHJlZ2V4LCBpbmNsdWRpbmcgdGhlIHN0YXJ0L3N0b3Agc2xhc2hlcyBhbmQgZmxhZ3MgKGUuZy4sICIvaW1hZ2VcXC4oXFxkKykvaSIpJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2FiYnJldiddID0gJ1JlcVwnZCc7CiRsYW5nWyd0aXRsZV9oaWRlX2Vycm9ycyddID0gJ+OCqOODqeODvOOCkumdnuihqOekuic7CiRsYW5nWyd0aXRsZV9mb3JtX2Rpc3BsYXl0eXBlJ10gPSAnRm9ybSBEaXNwbGF5IFR5cGUnOwokbGFuZ1sndGl0bGVfaGlkZV9lcnJvcnNfbG9uZyddID0gJ1ByZXZlbnQgZGVidWcgLyBlcnJvciBtZXNzYWdlcyBmcm9tIGJlaW5nIHNlZW4gYnkgdXNlcnMuJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX3RlbXBsYXRlJ10gPSAn44Oh44O844Or44OG44Oz44OX44Os44O844OIJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZSddID0gJ01heGltdW0gdXBsb2FkIGZpbGUgc2l6ZSAoa2lsb2J5dGVzKSc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX3NpemVfbG9uZyddID0gJ1RoaXMgbGltaXRhdGlvbiBpcyBpbiBhZGRpdGlvbiB0byBhbnkgbGltaXRzIHNldCBieSB0aGUgcGhwIG9yIHdlYiBzZXJ2ZXIgY29uZmlndXJhdGlvbic7CiRsYW5nWyd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ1Blcm1pdHRlZCBFeHRlbnNpb25zJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zX2xvbmcnXSA9ICdFbnRlciBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0LCBleGNsdWRpbmcgdGhlIGRvdCAoZS5nLiwgImpwZyxnaWYsanBlZyIpLiBTcGFjZXMgd2lsbCBiZSBpZ25vcmVkLiBMZWF2aW5nIHRoaXMgYmxhbmsgbWVhbnMgdGhlcmUgd2lsbCBiZSBubyByZXN0cmljdGlvbnMuJzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnMnXSA9ICdEaXNwbGF5IHJlc3RyaWN0aW9ucz8nOwokbGFuZ1sndGl0bGVfc2hvd19saW1pdGF0aW9uc19sb25nJ10gPSAnRGlzcGxheSBhbnkgc2l6ZSBhbmQgZXh0ZW5zaW9uIHJlc3RyaWN0aW9ucyB3aXRoIHRoZSB1cGxvYWQgZmllbGQ/JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSB0byB1c2UgdG8gRGlzcGxheSBGb3JtJzsKJGxhbmdbJ3RpdGxlX3BhZ2VfeF9vZl95J10gPSAnUGFnZSAlcyBvZiAlcyc7CiRsYW5nWyd0aXRsZV9ub19hZHZhbmNlZF9vcHRpb25zJ10gPSAnRmllbGQgaGFzIG5vIGFkdmFuY2VkIG9wdGlvbnMuJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdW5zcGVjaWZpZWQnXSA9ICdUZXh0IHRvIHJldHVybiBmb3IgdW5zcGVjaWZpZWQgZmllbGQgdmFsdWVzJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9mYXN0YWRkX2xvbmcnXSA9ICdFbmFibGUgZmFzdCBmaWVsZCBhZGRpbmcgcHVsbGRvd24gZm9yIGZvcm1zPyc7CiRsYW5nWyd0aXRsZV9lbmFibGVfZmFzdGFkZCddID0gJ0VuYWJsZSBmYXN0IGZpZWxkIGFkZCBwdWxsZG93bj8nOwokbGFuZ1sndGl0bGVfZmFzdGFkZCddID0gJ0Zhc3QgZmllbGQgYWRkZXInOwokbGFuZ1sndGl0bGVfZW5hYmxlX2FudGlzcGFtX2xvbmcnXSA9ICdDbGlja2luZyB0aGlzIHdpbGwgb25seSBhbGxvdyAxMCBlbWFpbHMgdG8gYmUgdHJpZ2dlcmVkIGZyb20gYSBnaXZlbiBJUCBhZGRyZXNzIChwZXIgaG91cikuJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9hbnRpc3BhbSddID0gJ0VuYWJsZSBwcmltaXRpdmUgYW50aS1zcGFtIGZlYXR1cmVzPyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkaWRzJ10gPSAn6aCF55uuSUTjgpLopovjgosnOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGlkc19sb25nJ10gPSAnQ2xpY2tpbmcgdGhpcyB3aWxsIGFsbG93IGRpc3BsYXlpbmcgZmllbGQgaWRzIHdoZW4gYWRkaW5nIG9yIGVkaXRpbmcgYSBmb3JtJzsKJGxhbmdbJ3RpdGxlX3htbF90b191cGxvYWQnXSA9ICdVcGxvYWQgZm9ybSBmcm9tIFhNTCBmaWxlJzsKJGxhbmdbJ3RpdGxlX3htbF91cGxvYWRfZm9ybW5hbWUnXSA9ICdVc2UgdGhpcyBmb3JtIG5hbWUnOwokbGFuZ1sndGl0bGVfaW1wb3J0X2xlZ2VuZCddID0gJ1hNTOODleOCqeODvOODoOOBruOCpOODs+ODneODvOODiCc7CiRsYW5nWyd0aXRsZV94bWxfdXBsb2FkX2Zvcm1hbGlhcyddID0gJ1VzZSB0aGlzIGZvcm0gYWxpYXMnOwokbGFuZ1sndGl0bGVfaHRtbF9lbWFpbCddID0gJ0hUTUzjg6Hjg7zjg6vjgpLkvZzmiJDjgZfjgb7jgZnjgYvvvJ8nOwokbGFuZ1sndGl0bGVfbGlua19hdXRvcG9wdWxhdGUnXSA9ICdBdXRvbWF0aWNhbGx5IHBvcHVsYXRlPyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZV9oZWxwJ10gPSAnQXV0b21hdGljYWxseSBwb3B1bGF0ZSB3aXRoIHRoZSBVUkwgb2YgdGhlIHBhZ2UgY29udGFpbmluZyB0aGUgZm9ybT8gKHRoaXMgb3ZlcnJpZGVzIHNpdGUgcGFnZSBsaW5rIG9wdGlvbiBiZWxvdyknOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9saW5rJ10gPSAn44OH44OV44Kp44Or44OI44Oq44Oz44KvVVJMJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfbGlua190aXRsZSddID0gJ+ODh+ODleOCqeODq+ODiOODquODs+OCr+ODhuOCreOCueODiCc7CiRsYW5nWyd0aXRsZV9saW5rX3RvX3NpdGVwYWdlJ10gPSAnTGluayB0byBzaXRlIHBhZ2UnOwokbGFuZ1sndGl0bGVfY2FwdGNoYV9ub3RfaW5zdGFsbGVkJ10gPSAnWW91IGNhbiB1c2UgPGEgaHJlZj0iaHR0cDovL3d3dy53aWtpcGVkaWEub3JnL3dpa2kvQ2FwdGNoYSIgdGFyZ2V0PSJfbmV3Ij4iQ2FwdGNoYSI8L2E+IHRvIHByb3RlY3QgZm9ybSBzdWJtaXNzaW9ucyBpZiB5b3UgaW5zdGFsbCB0aGUgQ2FwdGNoYSBtb2R1bGUuIEZvciBtb3JlIGluZm9ybWF0aW9uLCA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2NhcHRjaGEvIj5jaGVjayB0aGUgQ2FwdGNoYSBwcm9qZWN0PC9hPi4nOwokbGFuZ1sndGl0bGVfdXNlX2NhcHRjaGEnXSA9ICdVc2UgQ2FwdGNoYSB0byBwcm90ZWN0IGZvcm0gc3VibWlzc2lvbnM/JzsKJGxhbmdbJ3RpdGxlX3VzZV9jYXB0Y2hhX2hlbHAnXSA9ICdDaGVjayBoZXJlIHRvIHByb3RlY3QgeW91ciBmb3JtIHdpdGggYSA8YSBocmVmPSJodHRwOi8vd3d3Lndpa2lwZWRpYS5vcmcvd2lraS9DYXB0Y2hhIiB0YXJnZXQ9Il9uZXciPiJDYXB0Y2hhIjwvYT4uJzsKJGxhbmdbJ3RpdGxlX3VzZXJfY2FwdGNoYSddID0gJ1BsZWFzZSBjb25maXJtIHRoYXQgeW91IGFyZSBub3QgYSBzY3JpcHQgYnkgZW50ZXJpbmcgdGhlIGxldHRlcnMgZnJvbSB0aGUgaW1hZ2UuJzsKJGxhbmdbJ3RpdGxlX3VzZXJfY2FwdGNoYV9lcnJvciddID0gJ0ZhaWxlZCB0ZXh0IGZvciBDYXB0Y2hhJzsKJGxhbmdbJ3dyb25nX2NhcHRjaGEnXSA9ICdDYXB0Y2hhIOOBr+WIqeeUqOOBp+OBjeOBvuOBm+OCk+OAgic7CiRsYW5nWyd0aXRsZV90aXRsZV91c2VyX2NhcHRjaGEnXSA9ICdIZWxwIHRleHQgZm9yIENhcHRjaGEnOwokbGFuZ1sndGl0bGVfZG9udF9zdWJtaXRfdW5jaGVja2VkJ10gPSAnRG9uXCd0IHN1Ym1pdCB2YWx1ZXMgZm9yIHVuY2hlY2tlZCBib3hlcyc7CiRsYW5nWyd0aXRsZV9kb250X3N1Ym1pdF91bmNoZWNrZWRfaGVscCddID0gJ0NoZWNrIHRoaXMgaWYgeW91IG9ubHkgd2FudCBjaGVja2VkIGJveGVzIHRvIHJldHVybiB2YWx1ZXMuJzsKJGxhbmdbJ2xpbmtfbGFiZWwnXSA9ICfjg6rjg7Pjgq/jg6njg5njg6snOwokbGFuZ1snbGlua19kZXN0aW5hdGlvbiddID0gJ0xpbmsgRGVzdGluYXRpb24gVVJMJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfc2V0J10gPSAnQ2hlY2tlZCBieSBEZWZhdWx0Pyc7CiRsYW5nWyd0aXRsZV8yNF9ob3VyJ10gPSAnVXNlIDI0LWhvdXIgY2xvY2s/JzsKJGxhbmdbJ3RpdGxlX2JlZm9yZV9ub29uJ10gPSAn5Y2I5YmNJzsKJGxhbmdbJ3RpdGxlX2FmdGVyX25vb24nXSA9ICfljYjlvownOwokbGFuZ1sndGl0bGVfc21hcnR5X2V2YWwnXSA9ICdQcm9jZXNzIHNtYXJ0eSB0YWdzIHdpdGhpbiBmaWVsZD8nOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfcm93cyddID0gJ1Jvd3MgKG5vdGU6IHRoaXMgbWF5IGJlIG92ZXJyaWRkZW4gYnkgQ1NTKSc7CiRsYW5nWyd0aXRsZV90ZXh0YXJlYV9jb2xzJ10gPSAnQ29sdW1ucyAobm90ZTogdGhpcyBtYXkgYmUgb3ZlcnJpZGRlbiBieSBDU1MpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbWFpbiddID0gJ01haW4gRm9ybSBEZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcm5hbWUnXSA9ICdEaXNwbGF5IFVzZXJcJ3MgbG9naW4gbmFtZT8nOwokbGFuZ1sndGl0bGVfc2hvd191c2VyZmlyc3RuYW1lJ10gPSAnRGlzcGxheSBVc2VyXCdzIGZpcnN0IG5hbWU/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcmxhc3RuYW1lJ10gPSAnRGlzcGxheSBVc2VyXCdzIGxhc3QgbmFtZT8nOwokbGFuZ1sndGl0bGVfcmVzdHJpY3RfdG9fZ3JvdXAnXSA9ICdSZXN0cmljdCB1c2VyIGxpc3QgdG8gdXNlcnMgaW4gc3BlY2lmaWVkIGdyb3VwJzsKJGxhbmdbJ3Jlc3RyaWN0ZWRfdG9fZ3JvdXAnXSA9ICdPbmx5IGluIGdyb3VwICVzJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdG9fdXNlciddID0gJ0Rpc3BsYXkgdG8gdXNlcj8nOwokbGFuZ1snaGVscF9sZWF2ZWVtcHR5J10gPSAnVGhpcyBmaWVsZCBtYXkgYmUgbGVmdCBlbXB0eSc7CiRsYW5nWydoZWxwX3ZhcmlhYmxlc19mb3JfdGVtcGxhdGUnXSA9ICdWYXJpYWJsZXMgRm9yIFRlbXBsYXRlJzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVzX2Zvcl9jb21wdXRhdGlvbiddID0gJ1ZhcmlhYmxlcyBBdmFpbGFibGUnOwokbGFuZ1snaGVscF9waHBfdmFyaWFibGVfbmFtZSddID0gJ1BIUCB2YXJpYWJsZSc7CiRsYW5nWydoZWxwX3N1Ym1pc3Npb25fZGF0ZSddID0gJ0RhdGUgb2YgU3VibWlzc2lvbic7CiRsYW5nWydoZWxwX3NlcnZlcl9uYW1lJ10gPSAnWW91ciBzZXJ2ZXInOwokbGFuZ1snaGVscF9zdWJfc291cmNlX2lwJ10gPSAnSVAgYWRkcmVzcyBvZiBwZXJzb24gdXNpbmcgZm9ybSc7CiRsYW5nWydoZWxwX3N1Yl91cmwnXSA9ICdVUkwgb2YgcGFnZSBjb250YWluaW5nIGZvcm0nOwokbGFuZ1snaGVscF9mYl92ZXJzaW9uJ10gPSAnRm9ybUJ1aWxkZXIgdmVyc2lvbic7CiRsYW5nWydoZWxwX3RhYiddID0gJ1RhYiBDaGFyYWN0ZXInOwokbGFuZ1snaGVscF9vdGhlcl9maWVsZHMnXSA9ICdBbHRlcm5hdGUgZmllbGQgbmFtZXMgY2FuIGJlIHVzZWQgaW50ZXJjaGFuZ2VhYmx5IChlc3BlY2lhbGx5IHVzZWZ1bCBpZiBTbWFydHkgaXMgY2hva2luZyBvbiBjaGFyYWN0ZXJzIG91dHNpZGUgb2YgQVNDSUkgMzItMTI2KS4gPGJyIC8+T3RoZXIgZmllbGRzIHdpbGwgYmUgYXZhaWxhYmxlIGFzIHlvdSBhZGQgdGhlbSB0byB0aGUgZm9ybS4nOwokbGFuZ1snaGVscF9hcnJheV9maWVsZHMnXSA9ICdZZXQgYW5vdGhlciB3YXkgb2YgYWNjZXNzaW5nIGZpZWxkIHZhbHVlcyBpcyB2aWEgJGZpZWxkbmFtZV9vYmosICRhbGlhc19vYmosIG9yICRmbGRfI19vYmosIHdoZXJlIGVhY2ggZmllbGQgaXMgYW4gb2JqZWN0IGNvbnRhaW5naW5nOjxiciAvPjx0YWJsZT4NCjx0cj48dGQgY2xhc3M9Im9kZCI+bmFtZTwvdGQ+PHRkIGNsYXNzPSJvZGQiPkZpZWxkIE5hbWU8L3RkPjwvdHI+DQo8dHI+PHRkPnR5cGU8L3RkPjx0ZD5GaWVsZCBUeXBlPC90ZD48L3RyPg0KPHRyPjx0ZCBjbGFzcz0ib2RkIj5pZDwvdGQ+PHRkIGNsYXNzPSJvZGQiPkludGVybmFsIEZpZWxkIElEPC90ZD48L3RyPg0KPHRyPjx0ZD52YWx1ZTwvdGQ+PHRkPkh1bWFuLXJlYWRhYmxlIFZhbHVlPC90ZD48L3RyPg0KPHRyPjx0ZCBjbGFzcz0ib2RkIj52YWx1ZUFycmF5PC90ZD48dGQgY2xhc3M9Im9kZCI+QXJyYXkgb2YgZmllbGQgdmFsdWUocyk8L3RkPjwvdHI+PC90YWJsZT48ZW0+ZS5nLjwvZW0+LCB5b3UgY291bGQgdXNlICJ7JGZsZF8xX29iai0+bmFtZX0gPSB7JGZsZF8xX29iai0+dmFsdWV9JzsKJGxhbmdbJ2hlbHBfZGF0ZV9mb3JtYXQnXSA9ICdTZWUgPGEgaHJlZj0iaHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5kYXRlLnBocCIgdGFyZ2V0PV9ORVc+dGhlIFBIUCBNYW51YWw8L2E+IGZvciBmb3JtYXR0aW5nIGhlbHAuJzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVfbmFtZSddID0gJ1ZhcmlhYmxlJzsKJGxhbmdbJ2hlbHBfZm9ybV9maWVsZCddID0gJ0ZpZWxkIFJlcHJlc2VudGVkJzsKJGxhbmdbJ2xpbmtfYmFja190b19mb3JtJ10gPSAnwqsg44OV44Kp44O844Og44G45oi744KLJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfdGVtcGxhdGUnXSA9ICfjgrXjg7Pjg5fjg6vjg4bjg7Pjg5fjg6zjg7zjg4jjga7kvZzmiJAnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9odG1sX3RlbXBsYXRlJ10gPSAn44K144Oz44OX44OrSFRNTOODhuODs+ODl+ODrOODvOODiOOBruS9nOaIkCc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2hlYWRlciddID0gJ+OCteODs+ODl+ODq+ODmOODg+ODgOOBruS9nOaIkCc7CiRsYW5nWydoZWxwX3RhYl9zeW1ib2wnXSA9ICdhIHRhYiBjaGFyYWN0ZXInOwokbGFuZ1sndGl0bGVfZmlsZV90ZW1wbGF0ZSddID0gJ1RlbXBsYXRlIGZvciBvbmUgbGluZSBvZiBvdXRwdXQgZmlsZSc7CiRsYW5nWyd0aXRsZV9maWxlX2hlYWRlciddID0gJ1RlbXBsYXRlIGZvciB0aGUgaGVhZGVyIG9mIG91dHB1dCBmaWxlJzsKJGxhbmdbJ3RpdGxlX2NvbmZpcm1hdGlvbl91cmwnXSA9ICdVUkwgdG8gY2xpY2sgZm9yIGZvcm0gY29uZmlybWF0aW9uJzsKJGxhbmdbJ3RpdGxlX3ZhbHVlJ10gPSAnVmFsdWUgKHNlZSBBZHZhbmNlZCBUYWIgaWYgeW91IHVzZSBTbWFydHkgdGFncyknOwokbGFuZ1sndGl0bGVfZGF0ZV9mb3JtYXQnXSA9ICfml6Xku5jlnosgKHN0YW5kYXJkIDxhIGhyZWY9Imh0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24uZGF0ZS5waHAiPlBIUCBEYXRlIEZvcm1hdHM8L2E+KSc7CiRsYW5nWyd0aXRsZV91c2Vfd3lzaXd5ZyddID0gJ1VzZSBXWVNJV1lHIGVkaXRvciBmb3IgdGV4dCBBcmVhIChBZG1pbiBzaWRlIG9ubHkpPyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYWN0aW9ucyddID0gJ0Zvcm0gU3VibWlzc2lvbiBCZWhhdmlvcic7CiRsYW5nWyd0aXRsZV9zdWJtaXRfbGFiZWxzJ10gPSAnU3VibWlzc2lvbiBCdXR0b24gTGFiZWxzJzsKJGxhbmdbJ3RpdGxlX3NvcnRhYmxlX2ZpZWxkJ10gPSAnU29ydGFibGUgRmllbGQgIyVzJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9oZWxwJ10gPSAnVGhpcyBwYWdlIGxldHMgeW91IGN1c3RvbWl6ZSBGb3JtIFN1Ym1pc3Npb24uIEl0IGRvZXNuXCd0IGRldGVybWluZSB3aGF0IHRoZSBGb3JtIEJ1aWxkZXIgZG9lcyB3aXRoIHRoZSBzdWJtaXR0ZWQgZGF0YS4gWW91IGNhbiBzZXQgdGhhdCB1cCBieSBhZGRpbmcgIkRpc3Bvc2l0aW9uIiBmaWVsZHMgdG8geW91ciBmb3JtLic7CiRsYW5nWyd0aXRsZV9zdGFydF95ZWFyJ10gPSAn5bm044Gu5aeL44G+44KKJzsKJGxhbmdbJ3RpdGxlX2VuZF95ZWFyJ10gPSAn5bm044Gu57WC44KP44KKJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfeWVhciddID0gJ+ODh+ODleOCqeODq+ODiOW5tCc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3llYXJfaGVscCddID0gJyhTZXQgdG8gLTEgZm9yIGRlZmF1bHQgeWVhciB0byBiZSB0aGUgY3VycmVudCB5ZWFyKSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYWN0aW9uJ10gPSAnQWZ0ZXIgZm9ybSBpcyBzdWJtaXR0ZWQnOwokbGFuZ1sndGl0bGVfc3VibWl0X3Jlc3BvbnNlJ10gPSAnUmVzcG9uc2UgdG8gZGlzcGxheSc7CiRsYW5nWydkaXNwbGF5X3RleHQnXSA9ICdEaXNwbGF5ICJTdWJtaXNzaW9uIFRlbXBsYXRlIic7CiRsYW5nWydyZWRpcmVjdF90b19wYWdlJ10gPSAn44K144Kk44OI44G444Oq44OA44Kk44Os44Kv44OI44GZ44KLJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9yZXNwb25zZV9oZWxwJ10gPSAnVGhpcyB0ZW1wbGF0ZSBpcyBmb3IgZGlzcGxheSB0byB0aGUgdXNlciBhZnRlciB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQuIFRoaXMgdGVtcGxhdGUgZG9lcyBub3QgZWZmZWN0IGVtYWlscyBnZW5lcmF0ZWQgb3Igb3RoZXIgZm9ybSBkaXNwb3NpdGlvbnMgLS0geW91IHNldCB0aG9zZSB0ZW1wbGF0ZXMgKHdoZXJlIGFwcHJvcHJpYXRlKSBpbiB0aGUgImFkdmFuY2VkIiB0YWIgZm9yIHRob3NlIGRpc3Bvc2l0aW9uIGZpZWxkcy4nOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fcGFnZSddID0gJ0Rlc3RpbmF0aW9uIFBhZ2UnOwokbGFuZ1sndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzJ10gPSAn5b+F6aCI5YWl5Yqb44Gu6aCF55uu5ZCNJzsKJGxhbmdbJ3RpdGxlX3JlcXVpcmVfZmllbGRuYW1lc19sb25nJ10gPSAnUmVxdWlyZSBmaWVsZHMgdG8gaGF2ZSBhIG5hbWU/JzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWVsZG5hbWVzJ10gPSAn5b+F6aCI5YWl5Yqb44CB5LiA5oSP44Gu6aCF55uu5ZCNJzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWVsZG5hbWVzX2xvbmcnXSA9ICdSZXF1aXJlIGZpZWxkcyB0byBoYXZlIHVuaXF1ZSBuYW1lcz8nOwokbGFuZ1sndGl0bGVfcmVvcmRlcl9mb3JtJ10gPSAnUmVvcmRlciBGaWVsZHMnOwokbGFuZ1sndGl0bGVfbG9hZF90ZW1wbGF0ZSddID0gJ+ODhuODs+ODl+ODrOODvOODiOOBruiqreOBv+i+vOOBvyc7CiRsYW5nWyd0aXRsZV9hZGRfYnV0dG9uX3RleHQnXSA9ICdBZGQgQnV0dG9uIHRleHQnOwokbGFuZ1sndGl0bGVfZGVsX2J1dHRvbl90ZXh0J10gPSAnRGVsZXRlIEJ1dHRvbiB0ZXh0JzsKJGxhbmdbJ3RpdGxlX3N0cmluZ19vcl9udW1iZXJfZXZhbCddID0gJ0ludGVycHJldCB2YXJpYWJsZXMgYXMgYmVpbmcgbnVtYmVycyBvciBzdHJpbmdzJzsKJGxhbmdbJ3RpdGxlX29yZGVyJ10gPSAnSW50ZXJwcmV0YXRpb24gT3JkZXInOwokbGFuZ1sndGl0bGVfb3JkZXJfaGVscCddID0gJ0lmIG1vcmUgdGhhbiBvbmUgQ29tcHV0ZWQgRmllbGQgZXhpc3RzLCB0aGV5IHdpbGwgYmUgY29tcHV0ZWQgZnJvbSBsb3dlc3Qgb3JkZXIgbnVtYmVyIHRvIGhpZ2hlc3Qgb3JkZXIgbnVtYmVyJzsKJGxhbmdbJ3RpdGxlX2NvbXB1dGVfdmFsdWUnXSA9ICdWYWx1ZSB0byBjb21wdXRlJzsKJGxhbmdbJ3RpdGxlX3N0cmluZyddID0gJ+aWh+Wtl+WIlyc7CiRsYW5nWyd0aXRsZV9udW1lcmljJ10gPSAn5pWw5YCkJzsKJGxhbmdbJ3RpdGxlX2lubGluZV9mb3JtJ10gPSAnRGlzcGxheSBmb3JtIGlubGluZT8nOwokbGFuZ1sndGl0bGVfaW5saW5lX2Zvcm1faGVscCddID0gJ0lubGluZSBtZWFucyBhbnkgZm9ybSBmb2xsb3d1cCByZXBsYWNlcyB0aGUge2Ntc19tb2R1bGV9IHRhZywgbm9uLWlubGluZSByZXBsYWNlcyB0aGUge2NvbnRlbnR9IHRhZy4nOwokbGFuZ1sndGl0bGVfZmllbGRfZGVmYXVsdF92YWx1ZSddID0gJ0RlZmF1bHQgdmFsdWUgZm9yIGZpZWxkJzsKJGxhbmdbJ3RpdGxlX2NsZWFyX2RlZmF1bHQnXSA9ICdDbGVhciBkZWZhdWx0IG9uIGNsaWNrPyc7CiRsYW5nWyd0aXRsZV9jbGVhcl9kZWZhdWx0X2hlbHAnXSA9ICdDaGVjayB0aGlzIHRvIGNsZWFyIHRoZSBkZWZhdWx0IHZhbHVlIHdoZW4gdGhlIHVzZXIgY2xpY2tzIHRoaXMgZmllbGQuIFNpbmNlIHRoaXMgdXNlcyBhIGphdmFzY3JpcHQgc3RyaW5nIGNvbXBhcmUsIGl0IHdpbGwgZmFpbCBpZiB5b3UgcHV0IHNpbmdsZSBxdW90ZXMgaW4geW91ciBkZWZhdWx0IHRleHQuIE90aGVyIHVuLWphdmFzY3JpcHQtZnJpZW5kbHkgY2hhcmFjdGVycyBtYXkgYWxzbyBjYXVzZSBpdCB0byBmYWlsLic7CiRsYW5nWyd0aXRsZV9yZW1vdmVfZmlsZV9mcm9tX3NlcnZlciddID0gJ0RlbGV0ZSB1cGxvYWRlZCBmaWxlIGZyb20gc2VydmVyIGFmdGVyIHByb2Nlc3NpbmcgKGVtYWlsIGRpc3Bvc2l0aW9ucyknOwokbGFuZ1sndGl0bGVfZmllbGRfamF2YXNjcmlwdCddID0gJ0phdmFzY3JpcHQgZm9yIGZpZWxkJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2phdmFzY3JpcHRfbG9uZyddID0gJ01ha2UgdGhpcyB0aGUgY29tcGxldGUgSmF2YXNjcmlwdCBjYWxsLCBpbmNsdWRpbmcgdGhlIGV2ZW50IHlvdSB3YW50IHRvIHRyYXAsIGUuZy4sIG9uY2xpY2s9InlvdXJmbigpIic7CiRsYW5nWyd0aXRsZV9zdWJtaXRfamF2YXNjcmlwdCddID0gJ0Zvcm0gU3VibWlzc2lvbiBKYXZhc2NyaXB0JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9qYXZhc2NyaXB0X2xvbmcnXSA9ICdNYWtlIHRoaXMgdGhlIGNvbXBsZXRlIEphdmFzY3JpcHQgY2FsbCwgaW5jbHVkaW5nIHRoZSBldmVudCB5b3Ugd2FudCB0byB0cmFwLCBlLmcuLCBvbmNsaWNrPSJ5b3VyZm4oKSIuPGJyIC8+VGhpcyB3aWxsIHByb2JhYmx5IG5vdCB3b3JrIHdlbGwgaWYgeW91IHVzZSB0aGUgInNhZmV0eSBzY3JpcHQiIG9wdGlvbiBhYm92ZS4nOwokbGFuZ1snZGVmYXVsdF90ZW1wbGF0ZSddID0gJ+ODh+ODleOCqeODq+ODiOODhuODs+ODl+ODrOODvOODiCc7CiRsYW5nWyd0YWJsZV9sZWZ0X3RlbXBsYXRlJ10gPSAnVGFibGUgVGVtcGxhdGUsIFRpdGxlcyBvbiBsZWZ0JzsKJGxhbmdbJ3RhYmxlX3RvcF90ZW1wbGF0ZSddID0gJ1RhYmxlIFRlbXBsYXRlLCBUaXRsZSBvbiB0b3AnOwokbGFuZ1snZm9ybV90ZW1wbGF0ZV9uYW1lJ10gPSAn44OG44Oz44OX44Os44O844OI44OV44Kp44O844OgICVzJzsKJGxhbmdbJ3RlbXBsYXRlX2FyZV95b3Vfc3VyZSddID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBvdmVyd3JpdGUgeW91ciB0ZW1wbGF0ZSB3aXRoIHRoZSBzZWxlY3RlZCB0ZW1wbGF0ZT8gKEV2ZW4gaWYgeW91IHNheSBPSywgeW91IHdpbGwgc3RpbGwgbmVlZCB0byBzYXZlIHRoZSBjaGFuZ2UpJzsKJGxhbmdbJ3RpdGxlX2JhZF9mdW5jdGlvbiddID0gJ0Vycm9yIHdoZW4gY29tcHV0aW5nICIlcyIuJzsKJGxhbmdbJ25vX3JlZmVycmVyX2luZm8nXSA9ICdObyBIVFRQX1JFRkVSRVIgaW5mbyBhdmFpbGFibGUgKHByb2JhYmx5IGR1ZSB0byB1c2Ugb2YgVXNlciBFbWFpbCBWYWxpZGF0aW9uKSc7CiRsYW5nWyd2YWxpZGF0aW9uX3BhcmFtX2Vycm9yJ10gPSAnVmFsaWRhdGlvbiBQYXJhbWV0ZXIgRXJyb3IuIFBsZWFzZSBtYWtlIHN1cmUgeW91IGNvcHkgdGhlIFVSTCBmcm9tIHlvdXIgZW1haWwgY29ycmVjdGx5ISc7CiRsYW5nWyd2YWxpZGF0aW9uX3Jlc3BvbnNlX2Vycm9yJ10gPSAnVmFsaWRhdGlvbiBSZXBzb25zZSBFcnJvci4gUGxlYXNlIG1ha2Ugc3VyZSB5b3UgY29weSB0aGUgVVJMIGZyb20geW91ciBlbWFpbCBjb3JyZWN0bHkhJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbm9fZmllbGRfZXJyb3InXSA9ICdWYWxpZGF0aW9uIFJlcHNvbnNlIEVycm9yLiBObyBlbWFpbCB2YWxpZGF0aW9uIGZpZWxkIGluIHRoaXMgZm9ybSEnOwokbGFuZ1sndXBncmFkZTAzdG8wNCddID0gJ0Zvcm0gVGVtcGxhdGUgd2FzIHVwZGF0ZWQgYXV0b21hdGljYWxseSBhcyBwYXJ0IG9mIHRoZSB2ZXJzaW9uIDAuMyB0byB2ZXJzaW9uIDAuNCB1cGdyYWRlLiBZb3UgbWF5IG5lZWQgdG8gbWFrZSBzb21lIGZpeGVzLiBJZiB5b3VcJ3JlIHVzaW5nIHRoZSBkZWZhdWx0IGZvcm0sIHNpbXBseSByZXBsYWNlIHRoaXMgdGVtcGxhdGUgd2l0aCAiZGVmYXVsdCIgdXNpbmcgdGhlIHB1bGxkb3duIGFib3ZlLic7CiRsYW5nWydhZG1pbmRlc2MnXSA9ICdBZGQsIGVkaXQgYW5kIG1hbmFnZSBpbnRlcmFjdGl2ZSBGb3Jtcyc7CiRsYW5nWydvcGVyYXRvcnNfaGVscCddID0gJ0lmIHlvdSB1c2UgU3RyaW5nIGV2YWx1YXRpb24sIHRoZSBvbmx5IG9wZXJhdGlvbiBhdmFpbGFibGUgaXMgY29uY2F0ZW5hdGlvbiAoKyksIHdoaWxlIGlmIHlvdSB1c2UgTnVtYmVyIGV2YWx1YXRpb24geW91IGhhdmUgYmFzaWMsIHZlcnkgc2ltcGxlIG1hdGggKCwgKywgLSwgKiwgLywgKS4nOwokbGFuZ1snZGF0ZV9qYW51YXJ5J10gPSAnMeaciCc7CiRsYW5nWydkYXRlX2ZlYnJ1YXJ5J10gPSAnMuaciCc7CiRsYW5nWydkYXRlX21hcmNoJ10gPSAnM+aciCc7CiRsYW5nWydkYXRlX2FwcmlsJ10gPSAnNOaciCc7CiRsYW5nWydkYXRlX21heSddID0gJzXmnIgnOwokbGFuZ1snZGF0ZV9qdW5lJ10gPSAnNuaciCc7CiRsYW5nWydkYXRlX2p1bHknXSA9ICc35pyIJzsKJGxhbmdbJ2RhdGVfYXVndXN0J10gPSAnOOaciCc7CiRsYW5nWydkYXRlX3NlcHRlbWJlciddID0gJznmnIgnOwokbGFuZ1snZGF0ZV9vY3RvYmVyJ10gPSAnMTDmnIgnOwokbGFuZ1snZGF0ZV9ub3ZlbWJlciddID0gJzEx5pyIJzsKJGxhbmdbJ2RhdGVfZGVjZW1iZXInXSA9ICcxMuaciCc7CiRsYW5nWydzdWJtaXNzaW9uX2Vycm9yJ10gPSAnU29ycnkhIFRoZXJlIHdhcyBhbiBlcnJvciBoYW5kbGluZyB5b3VyIGZvcm0gc3VibWlzc2lvbi4nOwokbGFuZ1snc3VibWl0X2Vycm9yJ10gPSAnRm9ybUJ1aWxkZXIgc3VibWl0IGVycm9yOiAlcyc7CiRsYW5nWyd1cGxvYWRzX2Vycm9yJ10gPSAnRXJyb3IgY29tbWl0dGluZyBmaWxlIHRvIHRoZSB1cGxvYWRzIG1vZHVsZTogJXMnOwokbGFuZ1snbm91cGxvYWRzX2Vycm9yJ10gPSAnQ291bGQgbm90IGZpbmQgdGhlIHVwbG9hZHMgbW9kdWxlJzsKJGxhbmdbJ3VwbG9hZF9hdHRhY2hfZXJyb3InXSA9ICdVcGxvYWQvQXR0YWNobWVudCBlcnJvciBvbiBmaWxlICVzICh0bXBfbmFtZTogJXMsIG9mIHR5cGUgJXMpJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3JfZmlsZV9sb2NrJ10gPSAnRXJyb3IuIFVuYWJsZSB0byBvYnRhaW4gbG9jayBmb3IgZmlsZS4nOwokbGFuZ1sndW5jaGVja2VkX2J5X2RlZmF1bHQnXSA9ICfjg4fjg5Xjgqnjg6vjg4g6IOmdnuODgeOCp+ODg+OCryc7CiRsYW5nWydjaGVja2VkX2J5X2RlZmF1bHQnXSA9ICfjg4fjg5Xjgqnjg6vjg4g6IOODgeOCp+ODg+OCryc7CiRsYW5nWydlbWFpbF9kZWZhdWx0X3RlbXBsYXRlJ10gPSAnRm9ybUJ1aWxkZXIgU3VibWlzc2lvbic7CiRsYW5nWydlbWFpbF90ZW1wbGF0ZV9ub3Rfc2V0J10gPSAnPGJyLz5FbWFpbCBUZW1wbGF0ZSBub3QgeWV0IHNldCEnOwokbGFuZ1snbWlzc2luZ19jbXNfbWFpbGVyJ10gPSAnRm9ybUJ1aWxkZXI6IENhbm5vdCBmaW5kIHJlcXVpcmVkIG1vZHVsZSBDTVNNYWlsZXIhJzsKJGxhbmdbJ3VzZXJfYXBwcm92ZWRfc3VibWlzc2lvbiddID0gJ1VzZXIgYXBwcm92ZWQgc3VibWlzc2lvbiAlcyBmcm9tICVzJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXSA9ICdFdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddID0gJ0V2ZW50IHRyaWdnZXJlZCBpZiB0aGVyZSBpcyBhbiBlcnJvciB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXSA9ICdFdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgZGlzcGxheWVkJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXSA9ICc8cD5FdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkLjwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBUaGUgZm9ybSBuYW1lIChzdHJpbmcpPC9saT4NCjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gVGhlIGludGVybmFsIGZvcm0gaWQgKGludCk8L2xpPg0KPGxpPjxlbT52YWx1ZV88bmFtZT48L2VtPiAtIFN1cHBseSBhIGRlZmF1bHQgdmFsdWUgdG8gYSBmaWVsZCB3aXRoIHRoZSBzcGVjaWZpZWQgbmFtZS48L2xpPg0KPC91bD4gJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddID0gJzxwPkV2ZW50IHRyaWdnZXJlZCBpZiB0aGVyZSBpcyBhbiBlcnJvciB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQ8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gVGhlIGZvcm0gbmFtZSAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4NCjxsaT48ZW0+ZXJyb3I8L2VtPiAtIEEgbGlzdCBvZiBhbGwga25vd24gZXJyb3JzIChzdHJpbmcpPC9saT4NCjwvdWw+ICc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtRGlzcGxheSddID0gJzxwPkV2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBkaXNwbGF5ZWQ8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gVGhlIGZvcm0gbmFtZSAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4NCjwvdWw+ICc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfcmVzcG9uc2VfaWQnXSA9ICdSZXNwb25zZSBJRC4gVXNlZCBieSBGb3JtQnJvd3Nlcic7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfcGFzc2VkX2Zyb21fdGFnJ10gPSAnRGVmYXVsdCBmaWVsZCB2YWx1ZXM7IHNlZSBtb2R1bGUgaGVscCc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZmllbGRfaWQnXSA9ICdGaWVsZCBJRCBmb3IgaW50ZXJuYWwgb3BlcmF0aW9ucyc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZm9ybV9uYW1lJ10gPSAn44OV44Kp44O844Og5ZCNJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19mb3JtX2lkJ10gPSAnRm9ybSBJRCBmb3IgaW50ZXJuYWwgb3BlcmF0aW9ucyc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZ2VuZXJhbCddID0gJ0dlbmVyYWwgcGFyYW1ldGVycyBmb3IgaW50ZXJuYWwgb3BlcmF0aW9ucyc7CiRsYW5nWyd0ZW1wbGF0ZV92YXJpYWJsZV9oZWxwJ10gPSAnPGgzPkZvcm0gVGVtcGxhdGUgVmFyaWFibGVzPC9oMz4NCjxwPllvdSBjYW4gZWRpdCBpdCB0byBtYWtlIHlvdXIgZm9ybSBsYXlvdXQgbG9vayBhbnkgd2F5IHlvdVwnZCBsaWtlLg0KICAgVG8gbWFrZSB0aGUgZm9ybSB3b3JrLCB5b3VcJ2xsIG5lZWQgdG8gYWx3YXlzIGluY2x1ZGUgdGhlIHskZmJfaGlkZGVufSBhbmQgeyRzdWJtaXR9DQogICB0YWdzLjwvcD4NCg0KPHA+WW91IGNhbiBhY2Nlc3MgeW91ciBmb3JtIGZpZWxkcyBlaXRoZXIgdXNpbmcgdGhlICRmaWVsZHMgYXJyYXkgb3IgYnkgZGlyZWN0bHkgYWNjZXNzaW5nIGZpZWxkcyBieSB0aGVpciBuYW1lcyAoZS5nLiwgeyRteWZpZWxkLT5pbnB1dH0gKTwvcD4NCg0KDQo8cD5FYWNoIGZpZWxkIGhhcyB0aGUgZm9sbG93aW5nIGF0dHJpYnV0ZXM6PC9wPg0KPHRhYmxlPg0KPHRyPjx0aD5GaWVsZDwvdGg+PHRoPlZhbHVlPC90aD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+ZGlzcGxheTwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIHNob3VsZCBiZSBkaXNwbGF5ZWQsIDAgb3RoZXJ3aXNlPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+cmVxdWlyZWQ8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBpcyByZXF1aXJlZCwgMCBvdGhlcndpc2U8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5yZXF1aXJlZF9zeW1ib2w8L3RkPjx0ZD50aGUgc3ltYm9sIGZvciByZXF1aXJlZCBmaWVsZHM8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5jc3NfY2xhc3M8L3RkPjx0ZD50aGUgQ1NTIGNsYXNzIHNwZWNpZmllZCBmb3IgdGhpcyBmaWVsZDwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPnZhbGlkPC90ZD48dGQ+MSBpZiB0aGlzIGZpZWxkIGhhcyBwYXNzZWQgdmFsaWRhdGlvbiwgMCBvdGhlcndpc2U8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5lcnJvcjwvdGQ+PHRkPlRleHQgb2YgdGhlIHZhbGlkYXRpb24gcHJvYmxlbSwgaW4gdGhlIGV2ZW50IHRoYXQgdGhpcyBmaWVsZCBkaWQgbm90IHZhbGlkYXRlPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aGlkZV9uYW1lPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgbmFtZSBzaG91bGQgYmUgaGlkZGVuLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmhhc19sYWJlbDwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIHR5cGUgaGFzIGEgbGFiZWw8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5uZWVkc19kaXY8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBuZWVkcyB0byBiZSB3cmFwcGVkIGluIGEgRElWIChvciB0YWJsZSByb3csIGlmIHRoYXRcJ3MgdGhlIHdheSB5b3Ugc3dpbmcpPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+bmFtZTwvdGQ+PHRkPnRoZSBmaWVsZFwncyBuYW1lPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aW5wdXQ8L3RkPjx0ZD50aGUgZmllbGRcJ3MgaW5wdXQgY29udHJvbCAoZS5nLiwgdGhlIGlucHV0IGZpZWxkIGl0c2VsZik8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5vcDwvdGQ+PHRkPmEgY29udHJvbCBidXR0b24gYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWVsZCBpZiBhcHBsaWNhYmxlIChlLmcuLCB0aGUgZGVsZXRlIGJ1dHRvbiBmb3IgZXhwYW5kYWJsZSB0ZXh0IGlucHV0KTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmlucHV0X2lkPC90ZD48dGQ+dGhlIElEIG9mIHRoZSBmaWVsZFwncyBpbnB1dCAodXNlZnVsIGZvciA8bGFiZWwgZm9yPSIiPik8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT50eXBlPC90ZD48dGQ+dGhlIGZpZWxkXCdzIGRhdGEgdHlwZTwvdGQ+PC90cj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQo8dHI+PHRkPmZpZWxkLT5tdWx0aXBsZV9wYXJ0czwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkLT5pbnB1dCBpcyBhY3R1YWxseSBhIGNvbGxlY3Rpb24gb2YgY29udHJvbHM8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5sYWJlbF9wYXJ0czwvdGQ+PHRkPjEgaWYgdGhlIGNvbGxlY3Rpb24gb2YgY29udHJvbHMgaGFzIHNlcGFyYXRlIGxhYmVscyBmb3IgZWFjaCBjb250cm9sPC90ZD48L3RyPg0KPC90YWJsZT4NCg0KPHA+SW4gY2VydGFpbiBjYXNlcywgZmllbGQtPmlucHV0IGlzIGFjdHVhbGx5IGFuIGFycmF5IG9mIG9iamVjdHMgcmF0aGVyIHRoYW4gYW4gaW5wdXQuIFRoaXMgaGFwcGVucywgZm9yIGV4YW1wbGUsIGluIENoZWNrQm94R3JvdXBzIG9yIFJhZGlvQnV0dG9uR3JvdXBzLiBGb3IgdGhlbSwgeW91IGNhbiBpdGVyYXRlIHRocm91Z2ggZmllbGQtPmlucHV0LT5uYW1lIGFuZCBmaWVsZC0+aW5wdXQtPmlucHV0cy48L3A+DQogICAgDQo8cD5BZGRpdGlvbmFsIHNtYXJ0eSB2YXJpYWJsZXMgdGhhdCB5b3UgY2FuIHVzZSBpbmNsdWRlOjwvcD4NCjx0YWJsZT4NCjx0cj48dGg+VmFyaWFibGU8L3RoPjx0aD5WYWx1ZTwvdGg+PC90cj4NCjx0cj48dGQ+dG90YWxfcGFnZXM8L3RkPjx0ZD5udW1iZXIgb2YgcGFnZXMgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPnRoaXNfcGFnZTwvdGQ+PHRkPm51bWJlciBmbyB0aGUgY3VycmVudCBwYWdlIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD50aXRsZV9wYWdlX3hfb2ZfeTwvdGQ+PHRkPmRpc3BsYXlzICJwYWdlIHggb2YgeSIgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPmNzc19jbGFzczwvdGQ+PHRkPkNTUyBDbGFzcyBmb3IgdGhlIGZvcm08L3RkPjwvdHI+DQo8dHI+PHRkPmZvcm1fbmFtZTwvdGQ+PHRkPkZvcm0gbmFtZTwvdGQ+PC90cj4NCjx0cj48dGQ+Zm9ybV9pZDwvdGQ+PHRkPkZvcm0gZGF0YWJhc2UgSUQ8L3RkPjwvdHI+DQo8dHI+PHRkPnByZXY8L3RkPjx0ZD4iQmFjayIgYnV0dG9uIGZvciBtdWx0aXBhcnQgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPnN1Ym1pdDwvdGQ+PHRkPiJDb250aW51ZSIgb3IgIlN1Ym1pdCIgYnV0dG9uIGZvciBtdWx0aXBhcnQgZm9ybXMsIGFkanVzdHMgYXV0b21hdGljYWxseTwvdGQ+PC90cj4NCjwvdGFibGU+DQo8cD5EdW5ubyB3aHkgeW91XCdkIHdhbnQgc29tZSBvZiB0aG9zZSwgYnV0IHRoZXJlIHlvdSBnby4uLjwvcD4NCic7CiRsYW5nWydwb3N0X2luc3RhbGwnXSA9ICc8cD5NYWtlIHN1cmUgdG8gc2V0IHRoZSAiTW9kaWZ5IEZvcm1zIiBwZXJtaXNzaW9ucw0Kb24gdXNlcnMgd2hvIHdpbGwgYmUgYWRtaW5pc3RlcmluZyBmZWVkYmFjayBmb3Jtcy4gQWxzbywgaWYgeW91XCdsbCBiZSBlbWFpbGluZyBmb3JtDQpyZXN1bHRzLCBiZSBzdXJlIHRvIHVwZGF0ZSB0aGUgQ29uZmlndXJhdGlvbiBhcHByb3ByaWF0ZWx5LjwvcD4NCjxwPlBsZWFzZSBiZSBhd2FyZSB0aGF0IGEgZmVlZGJhY2sgZm9ybSBzaG91bGQgbm90IGJlIGFjdGl2ZSAoZS5nLiwgdXNhYmxlIGJ5IHRoZSBwdWJsaWMpIHdoaWxlDQp5b3UgYXJlIHN0aWxsIGVkaXRpbmcgdGhlIGZvcm0uIFlvdSBzaG91bGQgY3JlYXRlIHRoZSBmb3JtLCBhbmQgcGxhY2UgdGhlIHRhZyBpbnRvIGFuIGFjdGl2ZQ0KY29udGVudCBwYWdlIG9ubHkgd2hlbiB5b3UgaGF2ZSBmaW5pc2hlZCBlZGl0aW5nLiBPdGhlcndpc2UsIGVycm9uZW91cyByZXN1bHRzIGNvdWxkIGJlIHJldHVybmVkLjwvcD4NCjxwPkFkZGl0aW9uYWxseSwgdGhpcyB2ZXJzaW9uIGRvZXMgbm90IHN1cHBvcnQgcGFyYWxsZWwgZWRpdGluZyBvZiBmb3Jtcy4gUGxlYXNlIHRha2UgY2FyZSB0aGF0DQpvbmx5IG9uZSBhZG1pbiBpcyBlZGl0aW5nIGEgZ2l2ZW4gZm9ybSBhdCBhIGdpdmVuIHRpbWUuPC9wPic7CiRsYW5nWydoZWxwJ10gPSAnPGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+DQo8cD5UaGUgRm9ybSBCdWlsZGVyIE1vZHVsZSBhbGxvd3MgeW91IHRvIGNyZWF0ZSBmZWVkYmFjayBmb3JtcyAoaW4gZmFjdCwgaXRcJ3MgYSByZXBsYWNlbWVudCBvZiB0aGUgb3JpZ2luYWwgRmVlZGJhY2sgRm9ybSBtb2R1bGUpLCB3aXRoIHRoZSBhZGRlZCBwb3dlciBvZiBkYXRhYmFzZSBzdG9yYWdlLiBXaXRoIGl0cyBjb21wYW5pb24gbW9kdWxlIEZvcm0gQnJvd3NlciwgeW91IGNhbiB1c2UgaXQgdG8gY3JlYXRlIHNpbXBsZSBkYXRhYmFzZSBhcHBsaWNhdGlvbnMuPC9wPg0KPHA+VGhlIGZvcm1zIGNyZWF0ZWQgdXNpbmcgdGhlIEZvcm0gQnVpbGRlciBtYXkgYmUgaW5zZXJ0ZWQNCmludG8gdGVtcGxhdGVzIGFuZC9vciBjb250ZW50IHBhZ2VzLiBGb3JtcyBtYXkgY29udGFpbiBtYW55IGtpbmRzIG9mIGlucHV0cywgYW5kIG1heSBoYXZlDQp2YWxpZGF0aW9uIGFwcGxpZWQgdG8gdGhlc2UgaW5wdXRzLiBUaGUgcmVzdWx0cyBvZiB0aGVzZSBmb3JtcyBtYXkgYmUgaGFuZGxlZCBpbiBhIHZhcmlldHkgb2Ygd2F5cy48L3A+DQoNCjxoMz5Ib3cgRG8gSSBVc2UgaXQ/PC9oMz4NCjxQPkluc3RhbGwgaXQsIGFuZCBwb2tlIGFyb3VuZCB0aGUgbWVudXMuIFBsYXkgd2l0aCBpdC4gVHJ5IGNyZWF0aW5nIGZvcm1zLCBhbmQgYWRkaW5nIHRoZW0gdG8geW91ciBjb250ZW50Lg0KSWYgeW91IGdldCBzdHVjaywgY2hhdCB3aXRoIG1lIG9uIHRoZSAjY21zIElSQyBjaGFubmVsLCBwb3N0IHRvIHRoZSBmb3J1bSwgc2VuZCBtZSBlbWFpbCwgb3IsIGlmIHlvdVwncmUNCnJlYWxseSBkZXNwZXJhdGUsIHRyeSByZWFkaW5nIHRoZSBpbnN0cnVjdGlvbnMgb24gdGhlIHJlc3Qgb2YgdGhpcyBwYWdlLjwvUD4NCg0KPGgzPkhvdyBEbyBJIENyZWF0ZSBhIEZvcm08L2gzPg0KPHA+SW4gdGhlIENNUyBBZG1pbiBNZW51LCB5b3Ugc2hvdWxkIGdldCBhIG5ldyBtZW51IGl0ZW0gY2FsbGVkIEZvcm1CdWlsZGVyLiBDbGljayBvbiB0aGlzLiBPbiB0aGUgcGFnZQ0KdGhhdCBnZXRzIHNob3duLCB0aGVyZSBhcmUgb3B0aW9ucyAoYXQgdGhlIGJvdHRvbSBvZiB0aGUgbGlzdCBvZiBGb3JtcykgdG8gQWRkIGEgTmV3IEZvcm0gb3IgTW9kaWZ5DQpDb25maWd1cmF0aW9uLjwvcD4NCg0KPGgzPkFkZGluZyBhIEZvcm0gdG8gYSBQYWdlPC9oMz4NCjxwPkluIHRoZSBtYWluIEZvcm1CdWlsZGVyIGFkbWluIHBhZ2UsIHlvdSBjYW4gc2VlIGFuIGV4YW1wbGUgb2YgdGhlIHRhZyB1c2VkIHRvIGRpc3BsYXkgZWFjaCBmb3JtLiBJdCBsb29rcw0Kc29tZXRoaW5nIGxpa2Uge2Ntc19tb2R1bGUgbW9kdWxlPVwnRm9ybUJ1aWxkZXJcJyBmb3JtPVwnc2FtcGxlX2Zvcm1cJ308L3A+DQo8cD5CeSBjb3B5aW5nIHRoaXMgdGFnIGludG8gdGhlIGNvbnRlbnQgb2YgYSBwYWdlLCBvciBpbnRvIGEgdGVtcGxhdGUsIHdpbGwgY2F1c2UgdGhhdCBmb3JtIHRvIGJlIGRpc3BsYXllZC4NCkluIHRoZW9yeSwgeW91IGNhbiBoYXZlIG11bHRpcGxlIGZvcm1zIG9uIGEgcGFnZSBpZiB5b3UgcmVhbGx5IHdhbnQgdG8uIEJlIGNhcmVmdWwgd2hlbiBwYXN0aW5nIHRoZSB0YWcNCmludG8gYSBwYWdlXCdzIGNvbnRlbnQgaWYgeW91IHVzZSBhIFdZU0lXWUcgZWRpdG9yIHN1Y2ggYXMgVGlueU1DRSwgRkNLRWRpdCwgb3IgSFRNTEFyZWEuIFRoZXNlIGVkaXRvcnMgbWF5IHN0ZWFsdGhpbHkNCmNoYW5nZSB0aGUgcXVvdGUgbWFya3MgKCIpIGludG8gSFRNTCBlbnRpdGllcyAoJnF1b3Q7KSwgYW5kIHRoZSBmb3JtcyB3aWxsIG5vdCBzaG93IHVwLiBUcnkgdXNpbmcNCnNpbmdsZSBxdW90ZXMgKFwnKSBvciBlZGl0aW5nIHRoZSBIVE1MIGRpcmVjdGx5LjwvcD4NCg0KPGgzPldvcmtpbmcgd2l0aCBGb3JtczwvaDM+DQo8cD5CeSBjbGlja2luZyBvbiBhIEZvcm1cJ3MgbmFtZSwgeW91IGVudGVyIHRoZSBGb3JtIEVkaXQgcGFnZS4gVGhlcmUgYXJlIHNldmVyYWwgdGFicywgd2hpY2ggYXJlIGRlc2NyaWJlZCBiZWxvdzo8L3A+DQo8aDQ+TWFpbjwvaDQ+DQo8cD5UaGlzIGlzIHRoZSBtYWluIHBsYWNlIHlvdVwnbGwgd29yayBvbiB5b3VyIGZvcm0uIEhlcmUsIHlvdSBnaXZlIGl0IGEgbmFtZSwgYW4gYWxpYXMgKHdoaWNoIGlzIHVzZWQgdG8gaWRlbnRpZnkgaXQgZm9yIHBsYWNpbmcgaXQgaW4gYSBwYWdlIG9yIHRlbXBsYXRlKSwgYW5kLCBvcHRpb25hbGx5LCBhIENTUyBjbGFzcyB3aXRoIHdoaWNoIHRvIHdyYXAgdGhlIHdob2xlIHRoaW5nLjwvcD4NCjxwPkJlbG93IHRoaXMsIGlmIHlvdSBoYXZlIGl0IGVuYWJsZWQsIGlzIHRoZSAiZmFzdCBmaWVsZCBhZGRlciIgcHVsbGRvd24sIHRoYXQgbGV0cyB5b3UgcXVpY2tseSBhZGQgYSBmaWVsZCB0byB0aGUgZW5kIG9mIHlvdXIgZm9ybSBieSBzZWxlY3RpbmcgdGhlIGZpZWxkIHR5cGUuPC9wPg0KPHA+QmVsb3cgdGhpcyBpcyB0aGUgbGlzdCBvZiBmaWVsZHMgdGhhdCBtYWtlIHVwIHlvdXIgZm9ybS4gTW9yZSBkZXRhaWwgb24gdGhpcyBpcyBkZXNjcmliZWQgYmVsb3cuPC9wPg0KPGg0PkZvcm0gU3VibWlzc2lvbjwvaDQ+DQo8cD5XaGVuIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZCwgeW91IGNhbiBlaXRoZXIgcmVkaXJlY3QgdGhlIHVzZXIgdG8gYW5vdGhlciBwYWdlIG9mIHlvdXIgc2l0ZSwgb3IgeW91IGNhbiBwcmVzZW50IHRoZSB1c2VyIHNvbWUgbWVzc2FnZSAod2hpY2ggY2FuIGNvbnRhaW4gYW55IG9mIHRoZSB1c2VyXCdzIGZvcm0gZW50cmllcywgb3IganVzdCBzdGF0aWMgdGV4dCkuIEluIHRoaXMgdGFiLCB5b3Ugc2VsZWN0IHdoaWNoIG9mIHRoZXNlIGFwcHJvYWNoZXMgeW91IHdpc2ggdG8gdXNlLCBhbmQsIGlmIHlvdSBjaG9zZSByZWRpcmVjdGlvbiwgaXQgYWxsb3dzIHlvdSB0byBwaWNrIHRoZSBwYWdlIHRvIHJlZGlyZWN0IHVzZXJzIHRvIGFmdGVyIGEgc3VjY2Vzc2Z1bCBmb3JtIHN1Ym1pc3Npb24uPC9wPg0KPHA+QWxzbyBvbiB0aGlzIHBhZ2UsIHlvdSBjYW4gc3BlY2lmeSB0aGUgbGFiZWxzIG9mIHZhcmlvdXMgc3VibWlzc2lvbiBidXR0b25zICgiUHJldmlvdXMiLCAibmV4dCIsICJzdWJtaXQiKS4gWW91IGNhbiBhbHNvIG9wdCB0byBoYXZlIHNvbWUgSmF2YXNjcmlwdCBhZGRlZCB0byB0aGUgbGFzdCBwYWdlIG9mIGEgZm9ybSB0aGF0IHdpbGwgcHJldmVudCBtdWx0aXBsZSBzdWJtaXNzaW9ucyAodXNlZnVsIG9uIHNsb3cgc2VydmVycykuPC9wPg0KPGg0PkZvcm0gRGlzcGxheSBPcHRpb25zPC9oND4NCjxwPlRoaXMgdGFiIGFsbG93cyBmb3Igb3RoZXIgZm9ybSBjdXN0b21pemF0aW9ucywgbGlrZSB0aGUgc3ltYm9sIHRvIHNob3cgZm9yIHJlcXVpcmVkIGZpZWxkcy48L3A+DQo8aDQ+Q2FwdGNoYSBTZXR0aW5nczwvaDQ+DQo8cD5JZiB5b3UgaGF2ZSBpbnN0YWxsZWQgdGhlIENhcHRjaGEgbW9kdWxlLCB0aGlzIHRhYiBsZXRzIHlvdSBjb25maWd1cmUgdGhlIENhcHRjaGEgc2V0dGluZ3MgZm9yIHlvdXIgZm9ybS48L3A+DQo8aDQ+Rm9ybSBUZW1wbGF0ZTwvaDQ+DQo8cD5UaGlzIGlzIHdoZXJlIHlvdSBkbyB5b3VyIGN1c3RvbWl6YXRpb24gd29yayBvZiB5b3VyIGZvcm1cJ3MgU21hcnR5IFRlbXBsYXRlLiBTZWUgdGhlIHNlY3Rpb24gY2FsbGVkIEZvcm0gVGVtcGxhdGUgVmFyaWFibGVzIGJlbG93LjwvcD4NCjxwPlRoZSBmb3JtIHNob3VsZCBkZWZhdWx0IHRvIGEgQ3VzdG9tIHRlbXBsYXRlIHRoYXQgZG9jdW1lbnRzIHRoZSBTbWFydHkgdGFncyBhdmFpbGFibGUgdG8geW91LjwvcD4NCjxwPlVubGVzcyB5b3VcJ3JlIGEgU21hcnR5IGV4cGVydCwgeW91IHByb2JhYmx5IGRvblwndCB3YW50IHRvIG1lc3MgYXJvdW5kIHdpdGggdGhpcy4gSWYgeW91IGFyZSBhIFNtYXJ0eSBleHBlcnQsIHRoaXMgaXMgd2hlcmUgeW91IGNhbiB1bmxlYXNoIHlvdXIgbWFnaWMuPC9wPg0KPGg0PlN1Ym1pc3Npb24gVGVtcGxhdGU8L2g0Pg0KPHA+SWYsIGluIHRoZSBGb3JtIFN1Ym1pc3Npb24gdGFiLCB5b3Ugc2VsZWN0ZWQgXCdEaXNwbGF5ICJTdWJtaXNzaW9uIFRlbXBsYXRlIiwgdGhpcyBpcyB3aGVyZSB5b3UgY2FuIGNyZWF0ZSB0aGF0IHRlbXBsYXRlLiBUaGVyZSBpcyBhIGRpc3BsYXkgb2Ygd2hpY2ggc21hcnR5IHZhcmlhYmxlcyBhcmUgYXZhaWxhYmxlIHRvIHlvdSwgYW5kIGEgYnV0dG9uIHRvIGdlbmVyYXRlIGEgc2FtcGxlIHRlbXBsYXRlLjwvcD4NCjxwPklmIHlvdVwncmUgYSBTbWFydHkgZXhwZXJ0LCB5b3UgY2FuIGRvIGFsbCBtYW5uZXIgb2YgY3JlYXRpdmUgYW5kIHBvd2VyZnVsIHRoaW5ncyBoZXJlLiBJZiB5b3VcJ3JlIG5vdCBhIFNtYXJ0eSBleHBlcnQsIHlvdSBtaWdodCBqdXN0IHdhbnQgdG8gdXNlIHRoZSBkZWZhdWx0Lg0KPC9wPg0KDQo8aDM+QWRkaW5nIEZpZWxkcyB0byB5b3VyIEZvcm08L2gzPg0KPHA+VGhlIHR5cGVzIG9mIGZpZWxkcyB0aGF0IGFyZSBjdXJyZW50bHkgc3VwcG9ydGVkIGZpdCBpbnRvIGZvdXIgZ3JvdXBzOiBzdGFuZGFyZCBpbnB1dCBmaWVsZHMsIGRpc3BsYXkgY29udHJvbCBmaWVsZHMsIGVtYWlsLXNwZWNpZmljIGZpZWxkcywgYW5kIGZvcm0gcmVzdWx0IGhhbmRsaW5nIGZpZWxkcyAoYWxzbyBjYWxsZWQgRm9ybSBEaXNwb3NpdGlvbnMgaW4gcGxhY2VzKTo8L3A+DQo8dWw+DQo8bGk+U3RhbmRhcmQgSW5wdXQgRmllbGRzIC0gdGhlc2UgYXJlIGlucHV0cyB0aGF0IGFsbG93IGVudHJ5IG9mIHR5cGljYWwgZm9ybSBlbGVtZW50czsgdGV4dCBpbnB1dHMsIHJhZGlvIGJ1dHRvbnMsIGV0Yy48L2xpPg0KPGxpPkRpc3BsYXkgQ29udHJvbCBGaWVsZHMgLSB0aGVzZSBpbnB1dCBjb250cm9sIGhvdyB0aGUgdXNlciB3aWxsIHNlZSB0aGUgZGlzcGxheSBvZiB0aGUgZm9ybTsgcGFnZSBicmVha3MsIHN0YXRpYyB0ZXh0LCBldGMuPC9saT4NCjxsaT5FbWFpbC1zcGVjaWZpYyBGaWVsZHMgLSBzb21lIGZvcm1zIGdlbmVyYXRlIGVtYWlsLCBhbmQgZW1haWwtc3BlY2lmaWMgZmllbGRzIGNhbiBhbHRlciBhdHRyaWJ1dGVzIG9mIHRoZSBlbWFpbHMgc2VudC48L2xpPg0KPGxpPkZvcm0gRGlzcG9zaXRpb25zIC0gVGhlc2UgZGV0ZXJtaW5lIHdoYXQgaGFwcGVucyB3aGVuIHRoZSB1c2VyDQpzdWJtaXRzIHRoZSBmb3JtOyBmb3IgZWFjaCByZXN1bHQgaGFuZGxpbmcgZmllbGQsIHNvbWUgbWV0aG9kIG9mIHRyYW5zbWl0dGluZywgc2F2aW5nLCBvciBlbWFpbGluZyB0aGUNCmZvcm0gY29udGVudHMgdGFrZXMgcGxhY2UuIEEgZm9ybSBtYXkgaGF2ZSBtdWx0aXBsZSBmb3JtIGRpc3Bvc2l0aW9ucy48L2xpPg0KPC91bD4NCjxwPkZvcm0gZmllbGRzIGFyZSBhc3NpZ25lZCBuYW1lcy4gVGhlc2UgbmFtZXMgaWRlbnRpZnkgdGhlIGZpZWxkLCBub3Qgb25seSBvbiB0aGUgc2NyZWVuIGFzIGxhYmVscyBmb3IgdGhlIHVzZXIsDQpidXQgaW4gdGhlIGRhdGEgd2hlbiBpdFwncyBzdWJtaXR0ZWQgc28geW91IGtub3cgd2hhdCB0aGUgdXNlciBpcyByZXNwb25kaW5nIHRvLiBQaHJhc2luZyB0aGUgbmFtZSBsaWtlIGEgcXVlc3Rpb24NCmlzIGEgaGFuZHkgd2F5IG9mIG1ha2luZyBpdCBjbGVhciB0byB0aGUgdXNlciB3aGF0IGlzIGV4cGVjdGVkLiBTaW1pbGFybHksIG1hbnkgZmllbGRzIGhhdmUgYm90aCBOYW1lcyBhbmQgVmFsdWVzLg0KVGhlIE5hbWVzIGFyZSB3aGF0IGdldHMgc2hvd24gdG8gdGhlIHVzZXI7IHRoZSBWYWx1ZSBpcyB3aGF0IGdldHMgc2F2ZWQgb3IgdHJhbnNtaXR0ZWQgd2hlbiB0aGUgdXNlciBzdWJtaXRzDQp0aGUgZm9ybS4gVGhlIFZhbHVlcyBhcmUgbmV2ZXIgc2VlbiBieSB0aGUgdXNlciwgbm9yIGFyZSB0aGV5IHZpc2libGUgaW4gdGhlIEhUTUwsIHNvIGl0XCdzIHNhZmUgdG8gdXNlIGZvcg0KZW1haWwgYWRkcmVzc2VzIGFuZCBzdWNoLjwvcD4NCjxwPlNvbWUgZmllbGRzIGNhbiBoYXZlIG11bHRpcGxlIHZhbHVlcywgb3IgbXVsdGlwbGUgbmFtZS92YWx1ZSBwYWlycy4gV2hlbiB5b3UgZmlyc3QgY3JlYXRlIHN1Y2ggYSBmaWVsZCwNCnRoZXJlIG1heSBub3QgYmUgc3VmZmljaWVudCBpbnB1dHMgZm9yIHlvdSB0byBzcGVjaWZ5IGFsbCB0aGUgdmFsdWVzIHlvdSB3YW50LiBUbyBnZXQgbW9yZSBzcGFjZSBmb3IgaW5wdXR0aW5nDQp0aGVzZSB2YWx1ZXMsIHVzZSB0aGUgYnV0dG9ucyBhdCB0aGUgYm90dG9tIG9mIHRoZSBwYWdlIGZvciBhZGRpbmcgb3B0aW9ucy48L3A+DQo8cD5GaWVsZHMgY2FuIGJlIGFzc2lnbmVkIHZhbGlkYXRpb24gcnVsZXMsIHdoaWNoIHZhcnkgYWNjb3JkaW5nIHRvIHRoZSB0eXBlIG9mIHRoZSBmaWVsZC4gVGhlc2UgcnVsZXMgaGVscA0KZW5zdXJlIHRoYXQgdGhlIHVzZXIgZW50ZXJzIHZhbGlkIGRhdGEuIFRoZXkgbWF5IGFsc28gYmUNCnNlcGFyYXRlbHkgbWFya2VkICJSZXF1aXJlZCIsIHdoaWNoIHdpbGwgZm9yY2UgdGhlIHVzZXIgdG8gZW50ZXIgYSByZXNwb25zZS48L3A+DQo8cD5GaWVsZHMgYWxzbyBtYXkgYmUgYXNzaWduZWQgYSBDU1MgY2xhc3MuIFRoaXMgc2ltcGx5IHdyYXBzIHRoZSBpbnB1dCBpbiBhIGRpdiB3aXRoIHRoYXQgY2xhc3MsIHNvIGFzIHRvIGFsbG93DQpjdXN0b21pemVkIGxheW91dHMuIFRvIHVzZSB0aGlzIGVmZmVjdGl2ZWx5LCB5b3UgbWF5IG5lZWQgdG8gInZpZXcgc291cmNlIiBvbiB0aGUgZ2VuZXJhdGVkIGZvcm0sIGFuZCB0aGVuDQp3cml0ZSB5b3VyIENTUy48L3A+DQo8dWw+DQo8bGk+U3RhbmRhcmQgSW5wdXRzDQo8dWw+PGxpPlRleHQgSW5wdXQuIFRoaXMgaXMgYSBzdGFuZGFyZCB0ZXh0IGZpZWxkLiBZb3UgY2FuIGxpbWl0IHRoZSBsZW5ndGgsIGFuZCBhcHBseSB2YXJpb3VzIHZhbGlkYXRpb24NCmZ1bmN0aW9ucyB0byB0aGUgZmllbGQuPC9saT4NCjxsaT5UZXh0IEFyZWEuIFRoaXMgaXMgYSBiaWcsIGZyZWUtZm9ybSB0ZXh0IGlucHV0IGZpZWxkLjwvbGk+DQo8bGk+Q2hlY2tib3guIFRoaXMgaXMgYSBzdGFuZGFyZCBjaGVjayBib3guPC9saT4NCjxsaT5DaGVja2JveCBHcm91cC4gVGhpcyBpcyBhIGNvbGxlY3Rpb24gb2YgY2hlY2tib3hlcy4gVGhlIG9ubHkgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoaXMgaW5wdXQgYW5kIGENCmNvbGxlY3Rpb24gb2YgQ2hlY2tib3ggaW5wdXRzIGlzIHRoYXQgdGhleSBhcmUgcHJlc2VudGVkIGFzIGEgZ3JvdXAsIHdpdGggb25lIG5hbWUsIGFuZCBjYW4gaGF2ZSBhIHZhbGlkYXRpb24gZnVuY3Rpb24gcmVxdWlyaW5nIHRoYXQgeW91IGNoZWNrIG9uZSBvciBtb3JlIG9mIHRoZSBib3hlcyBpbiB0aGUgZ3JvdXAuPC9saT4NCjxsaT5SYWRpbyBHcm91cC4gVGhpcyBpcyBhIGNvbGxlY3Rpb24gb2YgcmFkaW8gYnV0dG9ucy4gT25seSBvbmUgb2YgdGhlIGdyb3VwIG1heSBiZSBzZWxlY3RlZCBieSB0aGUgdXNlci48L2xpPg0KPGxpPlB1bGxkb3duLiBUaGlzIGlzIGEgc3RhbmRhcmQgcHVsbGRvd24gbWVudS4gSXRcJ3MgcmVhbGx5IGNvbmNlcHR1YWxseSB0aGUgc2FtZSB0aGluZyBhcyBhIHJhZGlvIGJ1dHRvbg0KZ3JvdXAsIGJ1dCBpcyBiZXR0ZXIgd2hlbiB0aGVyZSBhcmUgYSBsYXJnZSBudW1iZXIgb2Ygb3B0aW9ucy48L2xpPg0KPGxpPk11bHRpc2VsZWN0LiBUaGlzIGlzIGEgbXVsdGktc2VsZWN0IGZpZWxkLiBJdFwncyByZWFsbHkgY29uY2VwdHVhbGx5IHRoZSBzYW1lIHRoaW5nIGFzIGEgY2hlY2tib3ggYnV0dG9uDQpncm91cCwgYnV0IGlzIGJldHRlciB3aGVuIHRoZXJlIGFyZSBhIGxhcmdlIG51bWJlciBvZiBvcHRpb25zLCBhcyB5b3UgY2FuIGxpbWl0IHRoZSBudW1iZXIgZGlzcGxheWVkIG9uIHRoZSBzY3JlZW4gYXQgYW55IG9uZSB0aW1lLjwvbGk+DQo8bGk+U3RhdGUuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBTdGF0ZXMgb2YgdGhlIFUuUy48L2xpPg0KPGxpPkNhbmFkaWFuIFByb3ZpbmNlLiBUaGlzIGlzIGEgcHVsbGRvd24gbGlzdGluZyB0aGUgQ2FuYWRpYW4gUHJvdmluY2VzIChDb250cmlidXRlZCBieSBOb2VsIE1jR3Jhbi4gVGhhbmtzISk8L2xpPg0KPGxpPkNvdW50cmllcy4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIENvdW50cmllcyBvZiB0aGUgd29ybGQgKGFzIG9mIEp1bHkgMjAwNSkuPC9saT4NCjxsaT5EYXRlIFBpY2tlci4gVGhpcyBpcyBhIHRyaXBsZSBwdWxsZG93biBhbGxvd2luZyB0aGUgdXNlciB0byBzZWxlY3QgYSBkYXRlLjwvbGk+DQo8bGk+VGltZSBQaWNrZXIuIFRoaXMgaXMgYSBzZXQgb2YgcHVsbGRvd25zIGFsbG93aW5nIHRoZSB1c2VyIHRvIHNlbGVjdCBhIHRpbWUgKHVzaW5nIDEyIG9yIDI0IGhvdXIgY2xvY2spLjwvbGk+DQo8bGk+RmlsZSBVcGxvYWQuIFRoaXMgaXMgYSBmaWxlIHVwbG9hZCBmaWVsZC48L2xpPg0KPGxpPkxpbmsgKFVzZXIgRW50ZXJlZCkuIFRoaXMgY3JlYXRlcyBhIGRvdWJsZSBpbnB1dCBmaWVsZCBmb3IgZ2V0dGluZyBhIGxpbmsgVVJMIGFuZCBsaW5rIHRpdGxlLjwvbGk+DQo8bGk+VGV4dCBGaWVsZCAoTXVsdGlwbGUpLiBUaGlzIGZpZWxkIGNyZWF0ZXMgb25lIG9yIG1vcmUgdGV4dCBpbnB1dHMgd2l0aCBhZGQgYW5kIGRlbGV0ZSBidXR0b25zLCBlZmZlY3RpdmVseSBnaXZpbmcgdGhlIGVuZCB1c2VyIGEgd2F5IG9mIGNyZWF0aW5nIHZhcmlhYmxlLWxlbmd0aCBsaXN0cy48L2xpPg0KPC91bD48L2xpPg0KDQo8bGk+RW1haWwtc3BlY2lmaWMgSW5wdXRzDQo8dWw+PGxpPkVtYWlsIEZyb20gQWRkcmVzcyBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSB0aGVpciBlbWFpbCBhZGRyZXNzLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgYWRkcmVzcyBpbiB0aGUgIkZyb20iIGZpZWxkLjwvbGk+DQo8bGk+RW1haWwgRnJvbSBOYW1lIEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIHRoZWlyIG5hbWUuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBuYW1lIGluIHRoZSAiRnJvbSIgZmllbGQuPC9saT4NCjxsaT5FbWFpbCBTdWJqZWN0IEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIGEgc3ViamVjdCBmb3IgdGhlaXIgZW1haWwuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBpbiB0aGUgIlN1YmplY3QiIGZpZWxkLiBUaGlzIG1heSBjYXVzZSB0cm91YmxlIHdpdGggY2VydGFpbiBkaXNwb3NpdGlvbnMgdGhhdCB3YW50IHRvIGNvbnRyb2wgdGhlIEVtYWlsIFN1YmplY3QsIHNvIHVzZSBpdCB3aXRoIGNhdXRpb24uPC9saT4NCjwvdWw+PC9saT4NCg0KPGxpPkRpc3BsYXkgQ29udHJvbCBGaWVsZHM8dWw+DQo8bGk+LVBhZ2UgQnJlYWsuIFRoaXMgYWxsb3dzIHlvdSB0byBzcGxpdCB5b3VyIGZlZWRiYWNrIGZvcm0gaW50byBtdWx0aXBsZSBwYWdlcy4gRWFjaCBwYWdlIGlzDQppbmRlcGVuZGVudGx5IHZhbGlkYXRlZC4gVGhpcyBpcyBnb29kIGZvciBhcHBsaWNhdGlvbnMgbGlrZSBvbmxpbmUgc3VydmV5cy48L2xpPg0KPGxpPi1GaWVsZHNldCBTdGFydC4gQ29tYmluZWQgd2l0aCBGaWVsZHNldCBFbmQsIHRoaXMgYWxsb3dzIHlvdSB0byBncm91cCB2YXJpb3VzIGZpZWxkcyB3aXRoaW4geW91ciBmb3JtLiBVc2UgdGhpcyB0byBzdGFydCBhIGdpdmVuIGdyb3VwaW5nLjwvbGk+DQo8bGk+LUZpZWxkc2V0IEVuZC4gQ29tYmluZWQgd2l0aCBGaWVsZHNldCBTdGFydCwgdGhpcyBhbGxvd3MgeW91IHRvIGdyb3VwIHZhcmlvdXMgZmllbGRzIHdpdGhpbiB5b3VyIGZvcm0uIFVzZSB0aGlzIHRvIGVuZCBhIGdpdmVuIGdyb3VwaW5nLjwvbGk+DQo8bGk+LUhpZGRlbiBGaWVsZC4gVGhpcyBhbGxvd3MgeW91IHRvIGVtYmVkIGEgaGlkZGVuIGZpZWxkIGluIHlvdXIgZm9ybS48L2xpPg0KPGxpPi1TdGF0aWMgVGV4dC4gVGhpcyBhbGxvd3MgeW91IHRvIHB1dCB0ZXh0IG9yIGEgbGFiZWwgaW4gdGhlIG1pZGRsZSBvZiB5b3VyIGZvcm0uIFRoaXMgaXMgdXNlZnVsIGZvciBnaXZpbmcgYWRkaXRpb25hbCBoZWxwIHRleHQsIGVzcGVjaWFsbHkgaWYgeW91XCdyZSBub3QgdXNpbmcgYSBDdXN0b20gVGVtcGxhdGUgdG8gcmVuZGVyIHlvdXIgZm9ybS48L2xpPg0KPGxpPi1TdGF0aWMgTGluay4gVGhpcyBhbGxvd3MgeW91IHRvIHB1dCBhIGxpbmsgdG8gYSBnaXZlbiBwYWdlIGludG8geW91ciBmb3JtLiBPcHRpb25hbGx5LCB5b3UgY2FuIGhhdmUgaXQgYXV0b3BvcHVsYXRlIHdpdGggdGhlIHBhZ2Ugd2hlcmUgdGhlIGZvcm0gaXMgZW1iZWRkZWQgKHVzZWZ1bCBpZiB5b3VcJ3JlIHNlbmRpbmcgcmVzdWx0cyB2aWEgZW1haWwpLjwvbGk+DQo8bGk+LUNvbXB1dGVkIEZpZWxkLiBUaGlzIGFsbG93cyB5b3UgdG8gZW1iZWQgYSBjb21wdXRlZCBmaWVsZCBpbiB5b3VyIGZvcm0uIEl0IGlzIG5vdCB2aXNpYmxlIHRvIHRoZSB1c2VyIHVudGlsIGFmdGVyIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZC4gSXQgYWxsb3dzIHlvdSB0byBkbyBzaW1wbGUgYXJpdGhtZXRpYyBvciBzdHJpbmcgY29uY2F0ZW5hdGlvbi48L2xpPg0KPGxpPi1VbmlxdWUgSW50ZWdlciAoU2VyaWFsKS4gVGhpcyBpcyBhbiBpbnRlZ2VyIHRoYXQgaW5jcmVhc2VzIGV2ZXJ5IHRpbWUgc29tZW9uZSBoaXRzIHlvdXIgZm9ybS4gWW91ciByZXN1bHRzIG1heSBub3QgYmUgc2VxdWVudGlhbCwgYnV0IHRoZXkgd2lsbCBpbmNyZWFzZSBtb25vdG9uaWNhbGx5LjwvbGk+DQo8L3VsPjwvbGk+DQoNCjxsaT5Gb3JtIEhhbmRsaW5nIElucHV0cyAoRGlzcG9zaXRpb25zKQ0KPHVsPjxsaT4qQ2FsbCBhIFVzZXIgRGVmaW5lZCBUYWcgV2l0aCB0aGUgRm9ybSBSZXN1bHRzLiBUaGlzIHN1Ym1pdHMgYWxsIHRoZSBmb3JtIHJlc3VsdHMgdG8gdGhlIFVzZXItRGVmaW5lZCBUYWcgeW91IHNwZWNpZnkuIFRoZSBVRFQgY2FuIGhhbmRsZSB0aGUgcmVzdWx0cyBob3dldmVyIGl0IHdhbnRzLiBWYWx1ZXMgYXJlIHBhc3NlZCBhcyAkcGFyYW1bXCdmaWVsZF9uYW1lXCddLjwvbGk+DQo8bGk+KkVtYWlsIFJlc3VsdHMgQmFzZWQgb24gUHVsbGRvd24uIFRoaXMgaXMgdXNlZnVsIGZvciB3ZWIgc2l0ZXMgd2hlcmUgY29tbWVudHMgZ2V0IHJvdXRlZCBiYXNlZCBvbiB0aGVpciBzdWJqZWN0IG1hdHRlciwgZS5nLiwgYnVncyBnZXQgc2VudCB0byBvbmUgcGVyc29uLCBtYXJrZXRpbmcgcXVlc3Rpb25zIHRvIGFub3RoZXIgcGVyc29uLCBzYWxlcyByZXF1ZXN0cyB0byBzb21lb25lIGVsc2UsIGV0Yy4gVGhlIHB1bGxkb3duIGlzIHBvcHVsYXRlZCB3aXRoIHRoZSBzdWJqZWN0cywgYW5kIGVhY2ggZ2V0cyBkaXJlY3RlZCB0byBhIHNwZWNpZmljIGVtYWlsIGFkZHJlc3MuIFlvdSBzZXQgdXAgdGhlc2UgbWFwcGluZ3MgaW4gdGhlIHdoZW4geW91IGNyZWF0ZSBvciBlZGl0IGEgZmllbGQgb2YgdGhpcyB0eXBlLiBJZiB5b3UgdXNlIG9uZSBvZiB0aGVzZSAiRGlyZWN0b3IiIHB1bGxkb3ducywgdGhlIHVzZXIgbXVzdCBtYWtlIGEgc2VsZWN0aW9uIGluIG9yZGVyIHRvIHN1Ym1pdCB0aGUNCmZvcm0uIFRoaXMgaW5wdXQgaXMgcGFydCBvZiB0aGUgZm9ybSB0aGUgdXNlciBzZWVzLCBhbHRob3VnaCB0aGUgZW1haWwgYWRkcmVzc2VzIGFyZSBub3QgbWFkZSB2aXNpYmxlIG5vcg0KYXJlIHRoZXkgZW1iZWRkZWQgaW4gdGhlIEhUTUwuPC9saT4NCjxsaT4qRW1haWwgUmVzdWx0cyB0byBzZXQgQWRkcmVzcyhlcykuIFRoaXMgc2ltcGx5IHNlbmRzIHRoZSBmb3JtIHJlc3VsdHMgdG8gb25lIG9yIG1vcmUgZW1haWwgYWRkcmVzc2VzIHRoYXQgeW91IGVudGVyIHdoZW4geW91IGNyZWF0ZSBvciBlZGl0IHRoaXMgdHlwZSBvZiBmaWVsZC4gVGhpcyBmaWVsZCBhbmQgaXRzIG5hbWUgYXJlIG5vdCB2aXNpYmxlIGluIHRoZQ0KZm9ybSB0aGF0IHRoZSB1c2VyIHNlZXMuIFRoZSBlbWFpbCBhZGRyZXNzZXMgYXJlIG5vdCBtYWRlIHZpc2libGUgbm9yDQphcmUgdGhleSBlbWJlZGRlZCBpbiB0aGUgSFRNTC48L2xpPg0KPGxpPipFbWFpbCB0byBVc2VyLVN1cHBsaWVkIEFkZHJlc3MuIFRoaXMgcHV0cyBhbiBpbnB1dCBmaWVsZCBpbiB0aGUgZm9ybSBmb3IgdGhlIHVzZXIgdG8gcG9wdWxhdGUgd2l0aCBhbiBlbWFpbCBhZGRyZXNzLiBUaGUgZm9ybSByZXN1bHRzIGdldCBzZW50IHRvIHRoYXQgYWRkcmVzcy4gQmV3YXJlIG9mIFNwYW0gYWJ1c2UhIEFjdGl2ZSB0aGUgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcyBpbiB0aGUgRm9ybUJ1aWxkZXIgY29uZmlndXJhdGlvbiBzY3JlZW4uPC9saT4NCjxsaT4qU3RvcmUgUmVzdWx0cyBpbiBEYXRhYmFzZS4gVGhpcyB3aWxsIHN0b3JlIHRoZSBmb3JtIGNvbnRlbnRzIGluIGFuIGludGVybmFsIGRhdGFiYXNlLiBZb3Ugd2lsbCBhbHdheXMgdXNlIHRoaXMgZGlzcG9zaXRpb24gaWYgeW91IHVzZSB0aGUgZm9ybSB3aXRoIEZvcm1Ccm93c2VyLjwvbGk+DQo8bGk+KlJlZGlyZWN0IHRvIFBhZ2UgQmFzZWQgb24gUHVsbGRvd24uIFRoaXMgYWxsb3dzIHlvdSB0byByZWRpcmVjdCB0aGUgZm9ybSB0byBhIGRpZmZlcmVudCBzaXRlIHBhZ2UgZGVwZW5kaW5nIG9uIGl0cyB2YWx1ZS4gSWYgeW91IGhhdmUgbXVsdGlwbGUgZGlzcG9zaXRpb25zLCBtYWtlIHN1cmUgdGhpcyBpcyB1c2VkIGxhc3QuPC9saT4NCjxsaT4qVmFsaWRhdGUgdmlhIEVtYWlsLiBUaGlzIGlzIGEgc3RyYW5nZSBhbmQgcG93ZXJmdWwgZmllbGQuIEl0IHByb3ZpZGVzIHRoZSB1c2VyIGEgbWFuZGF0b3J5IGlucHV0IGZvciB0aGVpciBlbWFpbCBhZGRyZXNzLiBPbmNlIHRoZXkgc3VibWl0IHRoZWlyIGZvcm0sIHRoZSBzdGFuZGFyZCBmb3JtIGRpc3Bvc2l0aW9ucyBhcmUgbm90IHBlcmZvcm1lZCAtLSByYXRoZXIsIGl0IHNlbmQgdGhlIHVzZXIgYW4gZW1haWwgd2l0aCBhIHNwZWNpYWwgY29kZWQgbGluay4gSWYgdGhleSBjbGljayBvbiB0aGUgbGluaywgdGhlIG90aGVyIGZvcm0gaXMgY29uc2lkZXJlZCAiYXBwcm92ZWQsIiBhbmQgdGhlIG90aGVyIGRpc3Bvc2l0aW9ucyBhcmUgYWxsIHBlcmZvcm1lZC48L2xpPg0KPGxpPipXcml0ZSBSZXN1bHRzIHRvIEZsYXQgRmlsZS4gVGhpcyB0YWtlcyB0aGUgZm9ybSByZXN1bHRzIGFuZCB3cml0ZXMgdGhlbSBpbnRvIGEgdGV4dCBmaWxlLiBZb3UgbWF5DQpzZWxlY3QgdGhlIG5hbWUgb2YgdGhlIGZpbGUsIGFuZCBzZXQgaXRzIGZvcm1hdC4gVGhlc2UgZmlsZXMgYXJlIHdyaXR0ZW4gdG8gdGhlICJvdXRwdXQiIGRpcmVjdG9yeSB1bmRlciB0aGUNCm1vZHVsZVwncyBpbnN0YWxsYXRpb24gZGlyZWN0b3J5LCBhc3N1bWluZyB0aGUgd2ViIHNlcnZlciBoYXMgcGVybWlzc2lvbiB0byB3cml0ZSB0aGVyZS48L2xpPg0KPGxpPipTYXZlIFJlc3VsdHMgdG8gRmlsZSBCYXNlZCBvbiBQdWxsZG93bi4gTGlrZSB0aGUgRmxhdCBGaWxlIGRpc3Bvc2l0aW9uLCBleGNlcHQgdGhlIHZhbHVlIG9mIGEgcHVsbC1kb3duIGRldGVybWluZXMgd2hpY2ggZmlsZSByZXN1bHRzIGdldCB3cml0dGVuIHRvLjwvbGk+DQo8bGk+KlNhdmUgUmVzdWx0cyB0byBGaWxlKHMpIEJhc2VkIG9uIE11bHRpcGxlIFNlbGVjdGlvbnMuIExpa2UgdGhlIEZsYXQgRmlsZSBkaXNwb3NpdGlvbiwgZXhjZXB0IHRoZSB2YWx1ZShzKSBvZiBjaGVja2JveGVzICBkZXRlcm1pbmVzIHdoaWNoIGZpbGUocykgcmVzdWx0cyBnZXQgd3JpdHRlbiB0by48L2xpPg0KPGxpPipFbWFpbCB0byBDTVMgQWRtaW4gVXNlci4gUHJvdmlkZXMgYSBwdWxsLWRvd24gb2YgQ01TIEFkbWluIHVzZXJzLCBhbmQgZGlyZWN0cyB0aGUgcmVzdWx0cyBhcyBhbiBlbWFpbCB0byB0aGUgc2VsZWN0ZWQgYWRtaW4uPC9saT4NCjxsaT4qU3RvcmUgUmVzdWx0cyBmb3IgRm9ybUJyb3dzZXIgTW9kdWxlIHYuMy4gU3RvcmVzIHRoZSBmb3JtIHJlc3VsdHMgaW4gYW4gWE1MIHN0cnVjdHVyZSBhcyBhIHNpbmdsZSBkYXRhYmFzZSByZWNvcmQuIFRoaXMgd2lsbCBiZWNvbWUgdGhlIGludGVyZmFjZSB0byBGb3JtIEJyb3dzZXIgaW4gdGhlIG5leHQgcmVsZWFzZS48L2xpPg0KDQo8L3VsPjwvbGk+PC9saT48L3VsPg0KDQoNCjxoMz5QYXNzaW5nIERlZmF1bHQgVmFsdWVzIHRvIEZvcm1zPC9oMz4NCjxwPkNhbGd1eSBhZGRlZCBhIG5pY2UgZmVhdHVyZSwgd2hpY2ggaXMgdGhhdCB5b3UgY2FuIHBhc3MgZGVmYXVsdCBmaWVsZCB2YWx1ZXMgdG8geW91ciBmb3JtIHZpYSB0aGUgbW9kdWxlIHRhZy4gVGhpcyBhbGxvd3MgeW91IHRvIGhhdmUNCnRoZSBzYW1lIGZvcm0gaW4gbXVsdGlwbGUgcGxhY2VzLCBidXQgd2l0aCBkaWZmZXJlbnQgZGVmYXVsdCB2YWx1ZXMuIEl0IG1heSBub3Qgd29yayBmb3IgbW9yZSBleG90aWMgZmllbGQgdHlwZXMsIGJ1dCBmb3IgZmllbGRzIHRoYXQgaGF2ZQ0KYSBzaW5nbGUgdmFsdWUsIHlvdSBjYW4gc3BlY2lmeSBsaWtlOjwvcD4NCjxwPntjbXNfbW9kdWxlIG1vZHVsZT1cJ0Zvcm1CdWlsZGVyXCcgZm9ybT1cJ215X2Zvcm1cJyB2YWx1ZV88aT5GSUVMRE5BTUU8L2k+PVwnZGVmYXVsdF92YWx1ZVwnfTwvcD4NCjxwPlRoaXMgd2lsbCBzZXQgdGhlIGZpZWxkIHdpdGggPGk+RklFTEROQU1FPC9pPiB0byBcJ2RlZmF1bHRfdmFsdWVcJy48L3A+DQo8cD5UaGlzIGNhbiBiZSBwcm9ibGVtYXRpYywgYXMgc29tZXRpbWVzIGZpZWxkIG5hbWVzIGFyZSB1bndlaWxkeSBvciBjb250YWluIGNoYXJhY3RlcnMgdGhhdCBkb25cJ3Qgd29yayB3ZWxsIHdpdGggU21hcnR5LiBTbyB0aGVyZSBpcyBhbg0KYWx0ZXJuYXRpdmUgbGlrZSB0aGlzOjwvcD4NCjxwPntjbXNfbW9kdWxlIG1vZHVsZT1cJ0Zvcm1CdWlsZGVyXCcgZm9ybT1cJ215X2Zvcm1cJyB2YWx1ZV9mbGQ8aT5OVU1CRVI8L2k+PVwnZGVmYXVsdF92YWx1ZVwnfTwvcD4NCjxwPlRoYXQgdXNlcyBmaWVsZCA8aT5OVU1CRVI8L2k+LCB3aGVyZSA8aT5OVU1CRVI8L2k+IGlzIHRoZSBpbnRlcm5hbCBGb3JtQnVpbGRlciBmaWVsZCBpZC4gWW91IG1pZ2h0IHdvbmRlciBob3cgeW91IGtub3cgd2hhdCB0aGF0IGlkIGlzLiBTaW1wbHkgZ28gaW50byB0aGUgRm9ybUJ1aWxkZXIgY29uZmlndXJhdGlvbiB0YWIsDQphbmQgY2hlY2sgIlNob3cgRmllbGQgSURzIjwvcD4NCg0KPGgzPkVtYWlsIGFuZCBGbGF0IEZpbGUgVGVtcGxhdGVzPC9oMz4NCjxwPk1hbnkgZGlzcG9zaXRpb24gdHlwZXMgYWxsb3cgeW91IHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZvciB0aGUgZW1haWwgdGhhdCBpcyBnZW5lcmF0ZWQsIG9yIGZvciB0aGUgd2F5IHRoZSByZXN1bHRzIGFyZSB3cml0dGVuIHRvIGEgZmlsZS4gSWYgeW91IG9wdCBub3QgdG8gY3JlYXRlIGEgdGVtcGxhdGUsIHRoZSBGb3JtQnVpbGRlciB3aWxsIHVzZSBpdFwncyBvd24gYmVzdCBndWVzcywgd2hpY2ggbWF5IG9yIG1heSBub3Qgd29yayBvdXQgdG8geW91ciBsaWtpbmcuIFlvdSBjYW4gYWx3YXlzIGNsaWNrIG9uIHRoZSAiQ3JlYXRlIFNhbXBsZSBUZW1wbGF0ZSIgYW5kIHRoZW4gY3VzdG9taXplIHRoZSByZXN1bHRzLjwvcD4NCjxwPlRvIHRoZSByaWdodCwgeW91XCdsbCBmaW5kIGEgbGVnZW5kIHdoaWNoIGxpc3RzIGFsbCBvZiB0aGUgdmFyaWFibGVzIHRoYXQgYXJlIGF2YWlsYWJsZSB0byB5b3UgdG8gdXNlIGluIHlvdXIgdGVtcGxhdGUuIEFzIG9mIHZlcnNpb24gMC4zLCB2YXJpYWJsZXMgaGF2ZSB0d28gbmFtZXMsIG9uZSBiYXNlZCBvbiB0aGUgZmllbGQgbmFtZSwgdGhlIG90aGVyIGJhc2VkIG9uIHRoZSBmaWVsZCBJRC4gSWYgeW91IHVzZSBmaWVsZCBuYW1lcyB0aGF0IGhhdmUgY2hhcmFjdGVycyBvdXRzaWRlIG9mIHRoZSBBU0NJSSAzMi0xMjYgcmFuZ2UsIGl0IHdpbGwgYmUgc2FmZXIgdG8gdXNlIHRoZSBJRC1iYXNlZCB2YXJpYWJsZXMuPC9wPg0KPHA+PHN0cm9uZz5Ob3RlIHRoYXQgb25jZSB5b3VcJ3ZlIGNoYW5nZWQgYSB0ZW1wbGF0ZSwgaXQgd2lsbCBubyBsb25nZXIgYXV0b21hdGljYWxseSBhZGQgbmV3IGZpZWxkcy48L3N0cm9uZz4gRm9yIHRoaXMgcmVhc29uLCBpdFwncyB1c3VhbGx5IGJlc3QgdG8gY3JlYXRlIHlvdXIgdGVtcGxhdGVzIGFzIHRoZSBsYXN0IHN0ZXAgb2YgY3JlYXRpbmcgeW91ciBmb3JtLjwvcD4NCjxwPkFzIG9mIHZlcnNpb24gMC4yLjQsIHlvdSBjYW4gb3B0IHRvIHNlbmQgYW55IG9mIHRoZXNlIGVtYWlscyBhcyBIVE1MIGVtYWlsLiBUaGVyZSBzaG91bGQgYmUgYSBjaGVja2JveCBhdCB0aGUgdG9wIG9mIHRoZSB0ZW1wbGF0ZSBwYWdlIGZvciB0aGlzLiBUaGVyZSBpcyBhbHNvIGEgIkNyZWF0ZSBTYW1wbGUgSFRNTCBUZW1wbGF0ZSIgYnV0dG9uIG92ZXIgaW4gdGhlIGxlZ2VuZCBhcmVhLiBGb3IgSFRNTCBlbWFpbCwgdGhlIGVtYWlsIGJvZHkgd2lsbCBhbHNvIHByb3ZpZGUgdGhlIGRlZmF1bHQgdGV4dC1vbmx5IHZhbHVlcy48L3A+DQoNCjxoMz5Db25maWd1cmF0aW9uPC9oMz4NCjxwPlRoZXJlIGFyZSBzb21lIGdsb2JhbCBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIEZvcm1CdWlsZGVyOjwvcD4NCjx1bD4NCjxsaT5FbmFibGUgZmFzdCBmaWVsZCBhZGQgcHVsbGRvd24uIFRoaXMgZW5hYmxlcyB0aGUgcHVsbGRvd24gb24gdGhlIEZvcm0gRWRpdCBwYWdlIHdoaWNoIHNhdmVzIGEgc3RlcCBpbiB0aGUgY3JlYXRpb24gb2YgbmV3IGZpZWxkcy48L2xpPg0KPGxpPkhpZGUgRXJyb3JzLiBUaGlzIGlzIHNldCBieSBkZWZhdWx0LiBVbmNoZWNraW5nIGl0IHdpbGwgY2F1c2UgbW9yZSBkZXRhaWxlZCBlcnJvcnMgdG8gYmUgZGlzcGxheWVkIGlmIHRoZXJlIGFyZSBwcm9ibGVtcyB3aGVuIHlvdSBzdWJtaXQgeW91ciBmb3JtLjwvbGk+DQo8bGk+UmVxdWlyZSBGaWVsZCBOYW1lcy4gVHlwaWNhbGx5LCB5b3Ugd2lsbCB3YW50IGZvcm0gZmllbGRzIHRvIGJlIG5hbWVkIHNvIHlvdSBjYW4gdGVsbCB3aGljaCBpcyB3aGljaC4gSG93ZXZlciwgaW4gc29tZSBjYXNlcywgeW91IG1pZ2h0IHdhbnQgdG8gaGF2ZSBuYW1lbGVzcyBmaWVsZHMuIFVuY2hlY2sgdGhpcyBpZiB5b3Ugd2FudCB0byBhbGxvdyBuYW1lbGVzcyBmaWVsZHMuPC9saT4NCjxsaT5VbmlxdWUgRmllbGQgTmFtZXMuIFR5cGljYWxseSwgeW91IHdpbGwgd2FudCBmb3JtIGZpZWxkcyB0byBoYXZlIHVuaXF1ZSBuYW1lcyBzbyB5b3UgY2FuIHRlbGwgd2hpY2ggaXMgd2hpY2guIFVuY2hlY2sgdGhpcyBpZiB5b3Ugd2FudCB0byBhbGxvdyBmaWVsZHMgdG8gc2hhcmUgbmFtZXMuPC9saT4NCjxsaT5Vc2UgcmVsYXhlZCBlbWFpbCB2YWxpZGF0aW9uLiBUaGlzIHVzZXMgYSBsZXNzIHJlc3RyaWN0aXZlIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgdmFsaWRhdGluZyBlbWFpbDsgZS5nLiwgeEB5IHdpbGwgYmUgYWxsb3dlZCwgd2hlcmUgdHlwaWNhbGx5IHhAeS50bGQgaXMgcmVxdWlyZWQuPC9saT4NCjxsaT5TaG93IEZvcm0gQnVpbGRlciBWZXJzaW9uLiBEaXNwbGF5cyB0aGUgdmVyc2lvbiBvZiBGb3JtQnVpbGRlciB5b3VcJ3JlIHVzaW5nIGluIGEgY29tbWVudCB3aGVuIHRoZSBmb3JtIGlzIGdlbmVyYXRlZC4gVHlwaWNhbGx5IG9ubHkgdXNlZnVsIHdoZW4gZGVidWdnaW5nLjwvbGk+DQo8bGk+RW5hYmxlIHByaW1pdGl2ZSBhbnRpLXNwYW0gZmVhdHVyZXMuIFdoZW4gdHVybmVkIG9uLCB0aGlzIGFsbG93cyBhbnkgZ2l2ZW4gSVAgYWRkcmVzcyB0byBvbmx5IGdlbmVyYXRlIDEwIGVtYWlscyBwZXIgaG91ci48L2xpPg0KPGxpPlNob3cgRmllbGQgSURzLiBXaGVuIHR1cm5lZCBvbiwgRm9ybUJ1aWxkZXIgd2lsbCBkaXNwbGF5IGZpZWxkIGlkcyB3aGVuIGFkZGluZyBvciBlZGl0aW5nIGEgZm9ybS48L2xpPg0KPC91bD4NCjxoMz5TdHlsaW5nIGFuZCBDU1M8L2gzPg0KPHA+UGF1bCBOb29uZSBncmFjaW91c2x5IHByb3ZpZGVzIHVzIGFsbCB3aXRoIGEgcHJldHR5IGdvb2Qgc3RhbmRhcmQgQ1NTIHRoYXQgeW91IGNhbiB1c2UgZm9yIGZvcm1zOjwvcD4NCjxwcmU+DQoJLyogU2FtcGxlIEZvcm1CdWlsZGVyIENTUyBiYXNlICovDQoJZm9ybSB7bWFyZ2luLXRvcDowfQ0KCWZvcm0sIHRkLCB0aCwgbGkgeyBmb250LXNpemU6IDEwMCV9DQoJZm9ybSBkaXYge21hcmdpbi1ib3R0b206MH0NCglmaWVsZHNldCBkaXYgew0KCQltYXJnaW4tYm90dG9tOjAuNWVtOw0KCQltYXJnaW4tbGVmdDoxZW07DQoJfQ0KCWZpZWxkc2V0IGRpdiBkaXYgew0KCQltYXJnaW4tdG9wOjAuNWVtOw0KCQltYXJnaW4tbGVmdDoxZW0NCgl9DQoJZmllbGRzZXQgew0KCQltYXJnaW4tYm90dG9tOjFlbTsNCgkJYm9yZGVyOjFweCBzb2xpZCAjRjYwOw0KCQlwYWRkaW5nOjAuNWVtDQoJfQ0KCWZpZWxkc2V0IGxhYmVsIHsNCgkJd2lkdGg6YXV0bzsNCgl9DQoJbGVnZW5kIHsNCgkJY29sb3I6I0ZGRjsNCgkJYmFja2dyb3VuZDojRjYwOw0KCQlmb250LXN0eWxlOml0YWxpYzsNCgkJZm9udC1zaXplOjEuMmVtOw0KCQltYXJnaW4tYm90dG9tOjAuNWVtOw0KCQlwYWRkaW5nOjAuMmVtOw0KCQl3aWR0aDphdXRvOw0KCQlib3JkZXI6MXB4IHNvbGlkICNDQ0MNCgl9DQoJdGV4dGFyZWEgew0KCQltYXJnaW46IDAuNWVtIDA7DQoJCXdpZHRoOjk4JTsNCgkJaGVpZ2h0OiA2ZW0NCgl9DQoNCgkvKiBBcHBseSB0aGlzIGNsYXNzIHRvIHRleHQvc2VsZWN0IGlucHV0IGZpZWxkcyB3aXRoIHNob3J0ZXIgbGFiZWxzDQoJCXRvIGhlbHAgYWxpZ25tZW50ICovDQoJLnNob3J0LWxhYmVsIGxhYmVsIHtmbG9hdDpsZWZ0OyB3aWR0aDoxMGVtfQ0KCS5zaG9ydC1sYWJlbCBmaWVsZHNldCBkaXYgaW5wdXQsDQoJLnNob3J0LWxhYmVsIGZpZWxkc2V0IGRpdiBzZWxlY3Qge3dpZHRoOjE2ZW19DQoNCgkvKiBQcmV0dHkgdXAgeW91ciBDYXB0Y2hhIGltYWdlIG91dHB1dCAqLw0KCS5jYXB0Y2hhIHsNCgkJbWFyZ2luOjAuNWVtIDA7DQoJCXdpZHRoOjIwMHB4Ow0KCQl0ZXh0LWFsaWduOmNlbnRlcg0KCX0NCgkuY2FwdGNoYSBpbWcge2JvcmRlcjoxcHggc29saWQgI0Y2MDsgbWFyZ2luLWJvdHRvbTowLjVlbX0NCgkuY2FwdGNoYSBpbnB1dCB7d2lkdGg6MTk2cHg7IG1hcmdpbi10b3A6MC41ZW19DQoNCgkvKiBKdXN0IGEgYml0IG1vcmUgcm9vbSBmb3IgdGhlIFN1Ym1pdCBidXR0b24gKi8NCgkuc3VibWl0IHttYXJnaW4tdG9wOjAuNWVtfQ0KPC9wcmU+DQoNCjxoMz5Gb3JtIFRlbXBsYXRlIFZhcmlhYmxlczwvaDM+DQoNCjxoMz5Gb3JtIFRlbXBsYXRlIFZhcmlhYmxlczwvaDM+DQo8cD5Zb3UgY2FuIGVkaXQgaXQgdG8gbWFrZSB5b3VyIGZvcm0gbGF5b3V0IGxvb2sgYW55IHdheSB5b3VcJ2QgbGlrZS4NCiAgIFRvIG1ha2UgdGhlIGZvcm0gd29yaywgeW91XCdsbCBuZWVkIHRvIGFsd2F5cyBpbmNsdWRlIHRoZSB7JGZiX2hpZGRlbn0gYW5kIHskc3VibWl0fQ0KICAgdGFncy48L3A+DQoNCjxwPllvdSBjYW4gYWNjZXNzIHlvdXIgZm9ybSBmaWVsZHMgZWl0aGVyIHVzaW5nIHRoZSAkZmllbGRzIGFycmF5IG9yIGJ5IGRpcmVjdGx5IGFjY2Vzc2luZyBmaWVsZHMgYnkgdGhlaXIgbmFtZXMgKGUuZy4sIHskbXlmaWVsZC0+aW5wdXR9ICk8L3A+DQoNCg0KPHA+RWFjaCBmaWVsZCBoYXMgdGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzOjwvcD4NCjx0YWJsZT4NCjx0cj48dGg+RmllbGQ8L3RoPjx0aD5WYWx1ZTwvdGg+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmRpc3BsYXk8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBzaG91bGQgYmUgZGlzcGxheWVkLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPnJlcXVpcmVkPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgaXMgcmVxdWlyZWQsIDAgb3RoZXJ3aXNlPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+cmVxdWlyZWRfc3ltYm9sPC90ZD48dGQ+dGhlIHN5bWJvbCBmb3IgcmVxdWlyZWQgZmllbGRzPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+Y3NzX2NsYXNzPC90ZD48dGQ+dGhlIENTUyBjbGFzcyBzcGVjaWZpZWQgZm9yIHRoaXMgZmllbGQ8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT52YWxpZDwvdGQ+PHRkPjEgaWYgdGhpcyBmaWVsZCBoYXMgcGFzc2VkIHZhbGlkYXRpb24sIDAgb3RoZXJ3aXNlPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+ZXJyb3I8L3RkPjx0ZD5UZXh0IG9mIHRoZSB2YWxpZGF0aW9uIHByb2JsZW0sIGluIHRoZSBldmVudCB0aGF0IHRoaXMgZmllbGQgZGlkIG5vdCB2YWxpZGF0ZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmhpZGVfbmFtZTwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIG5hbWUgc2hvdWxkIGJlIGhpZGRlbiwgMCBvdGhlcndpc2U8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5oYXNfbGFiZWw8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCB0eXBlIGhhcyBhIGxhYmVsPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+bmVlZHNfZGl2PC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgbmVlZHMgdG8gYmUgd3JhcHBlZCBpbiBhIERJViAob3IgdGFibGUgcm93LCBpZiB0aGF0XCdzIHRoZSB3YXkgeW91IHN3aW5nKTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPm5hbWU8L3RkPjx0ZD50aGUgZmllbGRcJ3MgbmFtZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmlucHV0PC90ZD48dGQ+dGhlIGZpZWxkXCdzIGlucHV0IGNvbnRyb2wgKGUuZy4sIHRoZSBpbnB1dCBmaWVsZCBpdHNlbGYpPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+b3A8L3RkPjx0ZD5hIGNvbnRyb2wgYnV0dG9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgZmllbGQgaWYgYXBwbGljYWJsZSAoZS5nLiwgdGhlIGRlbGV0ZSBidXR0b24gZm9yIGV4cGFuZGFibGUgdGV4dCBpbnB1dCk8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5pbnB1dF9pZDwvdGQ+PHRkPnRoZSBJRCBvZiB0aGUgZmllbGRcJ3MgaW5wdXQgKHVzZWZ1bCBmb3IgPGxhYmVsIGZvcj0iIj4pPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+dHlwZTwvdGQ+PHRkPnRoZSBmaWVsZFwncyBkYXRhIHR5cGU8L3RkPjwvdHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KPHRyPjx0ZD5maWVsZC0+bXVsdGlwbGVfcGFydHM8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYSBjb2xsZWN0aW9uIG9mIGNvbnRyb2xzPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+bGFiZWxfcGFydHM8L3RkPjx0ZD4xIGlmIHRoZSBjb2xsZWN0aW9uIG9mIGNvbnRyb2xzIGhhcyBzZXBhcmF0ZSBsYWJlbHMgZm9yIGVhY2ggY29udHJvbDwvdGQ+PC90cj4NCjwvdGFibGU+DQoNCjxwPkluIGNlcnRhaW4gY2FzZXMsIGZpZWxkLT5pbnB1dCBpcyBhY3R1YWxseSBhbiBhcnJheSBvZiBvYmplY3RzIHJhdGhlciB0aGFuIGFuIGlucHV0LiBUaGlzIGhhcHBlbnMsIGZvciBleGFtcGxlLCBpbiBDaGVja0JveEdyb3VwcyBvciBSYWRpb0J1dHRvbkdyb3Vwcy4gRm9yIHRoZW0sIHlvdSBjYW4gaXRlcmF0ZSB0aHJvdWdoIGZpZWxkLT5pbnB1dC0+bmFtZSBhbmQgZmllbGQtPmlucHV0LT5pbnB1dHMuPC9wPg0KICAgIA0KPHA+QWRkaXRpb25hbCBzbWFydHkgdmFyaWFibGVzIHRoYXQgeW91IGNhbiB1c2UgaW5jbHVkZTo8L3A+DQo8dGFibGU+DQo8dHI+PHRoPlZhcmlhYmxlPC90aD48dGg+VmFsdWU8L3RoPjwvdHI+DQo8dHI+PHRkPnRvdGFsX3BhZ2VzPC90ZD48dGQ+bnVtYmVyIG9mIHBhZ2VzIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD50aGlzX3BhZ2U8L3RkPjx0ZD5udW1iZXIgZm8gdGhlIGN1cnJlbnQgcGFnZSBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+dGl0bGVfcGFnZV94X29mX3k8L3RkPjx0ZD5kaXNwbGF5cyAicGFnZSB4IG9mIHkiIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD5jc3NfY2xhc3M8L3RkPjx0ZD5DU1MgQ2xhc3MgZm9yIHRoZSBmb3JtPC90ZD48L3RyPg0KPHRyPjx0ZD5mb3JtX25hbWU8L3RkPjx0ZD5Gb3JtIG5hbWU8L3RkPjwvdHI+DQo8dHI+PHRkPmZvcm1faWQ8L3RkPjx0ZD5Gb3JtIGRhdGFiYXNlIElEPC90ZD48L3RyPg0KPHRyPjx0ZD5wcmV2PC90ZD48dGQ+IkJhY2siIGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD5zdWJtaXQ8L3RkPjx0ZD4iQ29udGludWUiIG9yICJTdWJtaXQiIGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zLCBhZGp1c3RzIGF1dG9tYXRpY2FsbHk8L3RkPjwvdHI+DQo8L3RhYmxlPg0KPHA+RHVubm8gd2h5IHlvdVwnZCB3YW50IHNvbWUgb2YgdGhvc2UsIGJ1dCB0aGVyZSB5b3UgZ28uLi48L3A+DQoNCg0KPGgzPktub3duIElzc3VlczwvaDM+DQo8dWw+DQo8bGk+Rm9ybUJ1aWxkZXIgaXMgbm90IHlldCBpbnRlZ3JhdGVkIHdpdGggRnJvbnRFbmQgVXNlcnMuIEl0IHdpbGwgYmUuPC9saT4NCjxsaT5Gb3JtQnVpbGRlciBkb2VzIG5vdCB5ZXQgc3VwcG9ydCBwcmV0dHkgdXJscywgYWx0aG91Z2ggdGhhdCBzaG91bGRuXCd0IG1hdHRlciBzaW5jZSB0aGUgdXNlciBzaWRlIGlzIHByZXR0eSBzaW1wbGUuPC9saT4NCjxsaT5GaWxlVXBsb2FkIEZpZWxkcyBtYXkgbm90IHdvcmsgY29ycmVjdGx5IHdpdGggbXVsdGlwYWdlIGZvcm1zLjwvbGk+DQo8L3VsPg0KDQo8aDM+VHJvdWJsZXNob290aW5nPC9oMz4NCjxvbD48bGk+IEZpcnN0IHN0ZXAgaXMgdG8gY2hlY2sgeW91XCdyZSBydW5uaW5nIENNUyAxLjEgb3IgbGF0ZXIuPC9saT4NCjxsaT4gU2Vjb25kIHN0ZXAgaXMgdG8gcmVhZCBhbmQgdW5kZXJzdGFuZCB0aGUgY2F2ZWF0IGFib3V0IFdZU0lXWUcgZWRpdG9ycyB1cCBpbiB0aGUNCnNlY3Rpb24gPGVtPkFkZGluZyBhIEZvcm0gdG8gYSBQYWdlPC9lbT4uPC9saT4NCjxsaT4gSWYgeW91XCdyZSBtaXNzaW5nIGZpZWxkcyBpbiBhbiBlbWFpbCB0aGF0IGdldHMgZ2VuZXJhdGVkLCBjaGVjayB0aGUgZGlzcG9zaXRpb24gZmllbGRcJ3MgdGVtcGxhdGUsIGFuZCBtYWtlIHN1cmUgeW91XCdyZSBzcGVjaWZ5aW5nIHRoZSBtaXNzaW5nIGZpZWxkcy4gU2VlbXMgb2J2aW91cywgYnV0IGl0XCdzIGFuIGVhc3kgbWlzdGFrZSB0byBtYWtlLjwvbGk+DQo8bGk+VW5jaGVjayB0aGUgIkhpZGUgRXJyb3JzIiBjaGVja2JveCBpbiB0aGUgZ2xvYmFsIG9wdGlvbnMsIGFuZCBzZWUgd2hhdCBtZXNzYWdlIGdldHMgZGlzcGxheWVkIHdoZW4geW91IHN1Ym1pdCB5b3VyIGZvcm0uPC9saT4NCjxsaT4gSnVzdCBtZXNzIGFyb3VuZCBhbmQgdHJ5IGNsaWNraW5nIG9uIGxpbmtzIGFuZCBpY29ucyBhbmQgc3R1ZmYuIFNlZSB3aGF0IGhhcHBlbnMuPC9saT4NCjxsaT4gTGFzdCByZXNwb3J0IGlzIHRvIGVtYWlsIG1lIG9yIGNhdGNoIG1lIG9uIElSQyBhbmQgd2UgY2FuIGdvIGZyb20gdGhlcmUuPC9saT4NCjwvb2w+IA0KPHA+VGhpcyBpcyBubyBsb25nZXIgYSBwYXJ0aWN1bGFybHkgZWFybHkgdmVyc2lvbiwgYnV0IGl0IGlzIHByb2JhYmx5IHN0aWxsIGJ1Z2d5LiBXaGlsZSBJXCd2ZSBkb25lIGFsbCBJIGNhbg0KdG8gbWFrZSBzdXJlIG5vIGVncmVnaW91cyBidWdzIGhhdmUgY3JlcHQgaW4sIEkgaGF2ZSB0byBhZG1pdCB0aGF0IGR1cmluZyBlYXJseSB0ZXN0aW5nLCB0aGlzIHByb2dyYW0NCnJldmVhbGVkIHNldmVuIGNvY2tyb2FjaGVzLCB0d28gZWFyd2lncywgYSBzbWFsbCBmYW1pbHkgb2YgYXBoaWRzLCBhbmQgYSB3YWxraW5nLXN0aWNrIGluc2VjdC4gSXQgYWxzbw0KYXRlIHRoZSBuZWlnaGJvclwncyBuYXN0eSBsaXR0bGUgeWFwIGRvZywgZm9yIHdoaWNoIEkgd2FzIGluYXBwcm9wcmlhdGVseSBncmF0ZWZ1bC48L3A+DQo8cD5UaGUgZmluYWwgcmVsZWFzZSB3aWxsIGluY2x1ZGUgYnVnIGZpeGVzLCBkb2N1bWVudGF0aW9uLCBhbmQgdW5jb25kaXRpb25hbCBsb3ZlLjwvcD4NCjxoMz5TdXBwb3J0PC9oMz4NCjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4NCjx1bD4NCjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlLCBGQVFzLCBvciB0byBmaWxlIGEgQnVnIFJlcG9ydCwgcGxlYXNlIHZpc2l0IHRoZSBDTVMgTWFkZSBTaW1wbGUgIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmciPkRldmVsb3BlciBGb3JnZTwvYT4uPC9saT4NCjxsaT5UbyBvYnRhaW4gY29tbWVyY2lhbCBzdXBwb3J0LCBwbGVhc2Ugc2VuZCBhbiBlbWFpbCB0byB0aGUgYXV0aG9yIGF0IDxhIGhyZWY9Im1haWx0bzpzamdAY21zbW9kdWxlcy5jb20iPjxzamdAY21zbW9kdWxlcy5jb20+PC9hPi48L2xpPg0KPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnIj5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi48L2xpPg0KPGxpPlRoZSBhdXRob3IgY2FuIG9mdGVuIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXMiPkNNUyBJUkMgQ2hhbm5lbDwvYT4uPC9saT4NCjxsaT5MYXN0bHksIHlvdSBtYXkgaGF2ZSBzb21lIHN1Y2Nlc3MgZW1haWxpbmcgdGhlIGF1dGhvciBkaXJlY3RseSBhbmQgZ3JvdmVsbGluZyBmb3IgZnJlZSBzdXBwb3J0LjwvbGk+DQo8L3VsPg0KPHA+S2VlcCBpbiBtaW5kIHRoYXQgdGhlIGF1dGhvciBoYXMgcHV0IGh1bmRyZWRzIG9mIGhvdXJzIGludG8gdGhlIGRldmVsb3BtZW50IG9mIHRoaXMgbW9kdWxlLiBQbGVhc2UgdGFrZSB0aGUgdGltZSB0byByZWFkIHRoZSBkb2N1bWVudGF0aW9uIGJlZm9yZSBzZW5kaW5nIHF1ZXN0aW9ucy4gRWl0aGVyIHRoYXQsIG9yIHdyaXRlIHlvdXIgcXVlc3Rpb25zIG9uIGZpbmFuY2lhbGx5IG5lZ290aWFibGUgaW5zdHJ1bWVudHMgKGkuZS4sIGNhc2gpLjwvcD4NCjxwPkFzIHBlciB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkIGFzLWlzLiBQbGVhc2UgcmVhZCB0aGUgdGV4dA0Kb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuPC9wPg0KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+DQo8cD5Db3B5cmlnaHQgwqkgMjAwOCwgU2FtdWVsIEdvbGRzdGVpbiA8YSBocmVmPSJtYWlsdG86c2pnQGNtc21vZHVsZXMuY29tIj48c2pnQGNtc21vZHVsZXMuY29tPjwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4NCjxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+JzsKJGxhbmdbJ2NoYW5nZWxvZyddID0gJzx1bD4NCjxsaT5WZXJzaW9uIDAuNS4zLiAyNiBNYXkgMDguIEJ1Z2ZpeGVzIHRvIHByZXZpb3VzIHNldCBvZiBidWdmaXhlcy4gTm93IHJlYWR5IGZvciBtYWpvciB1cGdyYWRlcyBmb3IgMC42LjwvbGk+DQo8bGk+VmVyc2lvbiAwLjUuMi4gMjUgTWF5IDA4LiBCdWdmaXhlcy4gUmVsZWFzZSBpbiBwcmVwYXJhdGlvbiBmb3Igc3Vic3RhbnRpYWwgcmV3b3JraW5nIGZvciAwLjY8L2xpPg0KPGxpPlZlcnNpb24gMC41LjEuIDMwIEFwcmlsIDA4LiBCdWdmaXhlcywgcmV3cm90ZSBzb21lIG9mIHRoZSBGaWxlIFVwbG9hZCBjb2RlIHRvIHByZXZlbnQgd2hpdGUgc2NyZWVuIG9mIGFubm95YW5jZS48L2xpPg0KPGxpPlZlcnNpb24gMC41LiAxOSBBcHJpbCAwOC4gQnVnZml4ZXMsIHN1cHBvcnQgZm9yIEZvcm1Ccm93c2VyIGZpeGVzIGFuZCBmZWF0dXJlcywgZGlzcG9zaXRpb24gdHlwZSBmb3IgdXBjb21pbmcgRm9ybUJyb3dzZXIgdmVyc2lvbi48L2xpPg0KPGxpPlZlcnNpb24gMC40LjQuIDI2IFNlcHQgMDcuIEJ1Z2ZpeGVzIGZvciByYWRpbyBidXR0b24gZ3JvdXBzLCBmaXggZm9yIHZhbGlkYXRpb24gb2YgRGlzcG9zaXRpb25EZWxpdmVyVG9FbWFpbEFkZHJlc3NGaWVsZC48L2xpPg0KPGxpPlZlcnNpb24gMC40LjMuIDE4IFNlcHQgMDcuIEJ1Z2ZpeGVzIGZvciBwdWxsZG93bnMgdXNpbmcgbnVtYmVycywgb3B0aW9uIHRvIGlubGluZSBmb3JtLCBmaXhlcyBmb3IgdGFibGUtbGF5b3V0cyBwcm92aWRlZCBieSBBcCBNdXRodSwgZml4IGZvciByZXF1aXJhYmlsaXR5IG9mIERpc3Bvc2l0aW9ucy48L2xpPg0KPGxpPlZlcnNpb24gMC40LjIuIDE0IFNlcHQgMDcuIEJ1Z2ZpeGVzIGZvciBYTUwgZXhwb3J0LCBSYWRpb0J1dHRvbiBHcm91cCBzdWJtaXNzaW9uLCBhbmQgSFRNTCBsYWJlbHMuPC9saT4NCjxsaT5WZXJzaW9uIDAuNC4xLiBCdWdmaXhlcyBmb3IgRmlsZSBEaXNwb3NpdGlvbiBUeXBlcy48L2xpPg0KPGxpPlZlcnNpb24gMC40DQoJPHVsPg0KCQk8bGk+VXBwZWQgbWluaW11bSBDTVMgdmVyc2lvbiB0byAxLjE8L2xpPg0KCQk8bGk+TnVtZXJvdXMgQnVnIGZpeGVzOyB0b28gbWFueSB0byBlbnVtZXJhdGUgaGVyZTwvbGk+DQoJCTxsaT5NYXNzaXZlIHJlamlnZ2VyaW5nIG9mIGNvZGUgdG8gd29yayB3aXRoIENNUyBNUyAxLjEgcGFyYW1ldGVyIHNhbml0aXppbmcgcmVnaW1lPC9saT4NCgkJPGxpPkFkZGVkIGZpZWxkIHR5cGVzOiAiVGV4dEZpZWxkIChNdWx0aXBsZSkiIGFuZCAiQ29tcHV0ZWQgRmllbGQiPC9saT4NCgkJPGxpPkFkZGVkIGRpc3Bvc2l0aW9uczogIlNhdmUgUmVzdWx0cyB0byBGaWxlIEJhc2VkIG9uIFB1bGxkb3duIiBhbmQgIlNhdmUgUmVzdWx0cyB0byBGaWxlKHMpIEJhc2VkIG9uIE11bHRpcGxlIFNlbGVjdGlvbnMiKENhbGd1eSk8L2xpPg0KCQk8bGk+QWRkZWQgbmVhdC1vIEFKQVgteSB0ZW1wbGF0ZS1jb3B5aW5nIGZvciBGb3JtIFRlbXBsYXRlcywgZ2F2ZSB2ZXJzaW9ucyBvZiBvbGQgdGFibGUtYmFzZWQgdGVtcGxhdGVzIHRvIHNvb3RoZSB0aGUgcmFnaW5nIG1hc3Nlcy48L2xpPg0KCQk8bGk+QWRkZWQgYWJpbGl0eSB0byBwYXNzIGRlZmF1bHQgdmFsdWVzIHRvIGZvcm0gZWxlbWVudHMgZnJvbSBtb2R1bGUgdGFnIHVzaW5nIHZhbHVlX0ZJRUxETkFNRT0idmFsdWUiIHN5bnRheCAoQ2FsZ3V5KTwvbGk+DQoJCTxsaT5BZGRlZCBvcHRpb24gdG8gZGlzcGxheSBmaWVsZCBpZHMgaW4gYWRtaW4gKENhbGd1eSk8L2xpPg0KCTwvdWw+DQo8L2xpPg0KPGxpPlZlcnNpb24gMC4zDQogICA8dWw+DQogICAgICA8bGk+QWRkZWQgQ2FwdGNoYSBtb2R1bGUgc3VwcG9ydC48L2xpPg0KICAgICAgPGxpPlJld29ya2VkIGxhYmVsaW5nIG9mIGZvcm0gZWxlbWVudHMgdG8gYmUgWEhUTUwgY29tcGxpYW50PC9saT4NCiAgICAgIDxsaT5BZGRlZCBQYXVsIE5vb25lXCdzIG5ldywgaW1wcm92ZWQgY29udGFjdCBmb3JtIHRlbXBsYXRlczwvbGk+DQogICAgICA8bGk+SW1wbGVtZW50YXRpb24gb2YgRW1haWwgU3ViamVjdCBGaWVsZDwvbGk+DQogICAgICA8bGk+QWRkZWQgYWRtaW4tc3BlY2lmaWFibGUgdmFsdWVzIHRvIGhpZGRlbiBmaWVsZCB0eXBlLCB3aGljaCBtYXkgY29udGFpbiBwYXJzYWJsZSBzbWFydHkgdGFnczwvbGk+DQogICAgICA8bGk+VGV4dCBBcmVhIEZpZWxkIG5vdyBhbGxvd3Mgc3BlY2lmaWNhdGlvbiBvZiByb3dzIGFuZCBjb2xzIGluIHRoZSBhZG1pbiwgaW5zdGVhZCBvZiBDU1M8L2xpPg0KICAgICAgPGxpPkFkZGVkIERyYWdcJ25cJ0Ryb3AgcmVvcmRlcmluZyBvZiBmb3JtIGZpZWxkcy48L2xpPg0KICAgICAgPGxpPkFkZGVkIG5vbi1ibGFuayBmaWVsZCBuYW1lIGFuZCB1bmlxdWUgZmllbGQgbmFtZSBnbG9iYWwgY29uZmlndXJhdGlvbiBvcHRpb25zIGFuZCB2YWxpZGF0aW9uPC9saT4NCiAgICAgIDxsaT5JbXBsZW1lbnRlZCB0ZW1wbGF0ZWQgZGlzcGxheSBvZiBmb3JtIHJlc3VsdHMgdXBvbiBzdWJtaXNzaW9uIGluIGFkZGl0aW9uIHRvIHBhZ2UgcmVkaXJlY3Rpbmc8L2xpPg0KICAgICAgPGxpPjwvbGk+DQogICA8L3VsPg0KPC9saT4NCjxsaT5WZXJzaW9uIDAuMi40IC0gMDkgTWF5IDIwMDcNCiAgIDxwPkJpZyByZWxlYXNlOjx1bD4NCiAgIDxsaT5BZGRlZCAiRW1haWwgRm9ybSB0byBVc2VyLVN1cHBsaWVkIEFkZHJlc3MiIGRpc3Bvc2l0aW9uLjwvbGk+DQogICA8bGk+QWRkZWQgIlRpbWVQaWNrZXIiIGZpZWxkIHR5cGUuIFNwbGl0ICJMaW5rIiBmaWVsZCBpbnRvIGEgIlVzZXItc3VwcGxpZWQgTGluayIgZmllbGQgYW5kIGEgIlN0YXRpYyBMaW5rIiBmaWVsZC48L2xpPg0KICAgPGxpPkFkZGVkIEhUTUwgZW1haWwgb3B0aW9uIGFuZCBhdXRvLXRlbXBsYXRlcyBmb3IgYWxsIGVtYWlsIGRpc3Bvc2l0aW9ucy48L2xpPg0KICAgPGxpPkFkZGVkIHByaW1pdGl2ZSBhbnRpLXNwYW0gZmVhdHVyZXMuPC9saT4NCiAgIDxsaT5BZGRlZCBYTUwtYmFzZWQgaW1wb3J0IGFuZCBleHBvcnQgb2YgZm9ybXMuPC9saT4NCiAgIDwvdWw+DQogICA8L3A+DQo8L2xpPg0KPGxpPlZlcnNpb24gMC4yLjMNCiAgIDxwPkFkZCB0aGUgYWJpbGl0eSB0byBjYWxsIGEgc2VsZWN0YWJsZSB1c2VyIGRlZmluZWQgdGFnIHVwb24gZGlzcG9zaXRpb24gb2YgdGhlIGZvcm0uPC9wPg0KPC9saT4NCjxsaT5WZXJzaW9uIDAuMi4yDQogICA8cD5NYW55IHRoYW5rcyB0byBVdHRlciBEZXNpZ24gZm9yIHNwb25zb3Jpbmcgc29tZSBjaGFuZ2VzIGFuZCBidWdmaXhlcywgd2hpY2ggaW5jbHVkZToNCiAgIDx1bD4NCiAgICAgIDxsaT5BZGRlZCBmaWxlIHVwbG9hZCBjYXBhYmlsaXRpZXMgdG8gdGhlIGVtYWlsIGRpc3Bvc2l0aW9uPC9saT4NCiAgICAgIDxsaT5BZGQgUGFnZVNldFN0YXJ0IGFuZCBQYWdlU2V0RW5kIGZpZWxkIHR5cGVzDQogICAgICA8cD5UaGVzZSBmaWVsZCB0eXBlcyBhbGxvdyB5b3UgdG8gY3JlYXRlIGZpZWxkc2V0cyBpbiB5b3VyIGZvcm0sIGFuZCBvcmdhbmlzZQ0KICAgICAgeW91ciBmaWVsZHMgbG9naWNhbGx5IGZvciB0aGUgdXNlci4gIFlvdSBjYW4gZXZlbiBuZXN0IGZpZWxkc2V0cywgYW5kDQogICAgICBhc3NvY2lhdGUgYSBzdHlsZSB3aXRoIHRoZW0gYXBwcm9wcmlhdGVseS4gIFRoZSBkZWZhdWx0IHRlbXBsYXRlIHdhcyBjaGFuZ2VkDQogICAgICB0byBwcmV2ZW50IGl0IGZyb20gd3JhcHBpbmcgYSBkaXYgYXJvdW5kIHRoZXNlIHR5cGVzIG9mIGZpZWxkcy4NCiAgICAgIDwvcD4NCiAgICAgIDwvbGk+DQogICAgICA8bGk+Rml4ZWQgYSBwcm9ibGVtIHdpdGggREFURVRJTUUgZmllbGRzIG9uIGluc3RhbGwNCiAgICAgIDxwPlRoaXMgc29sdmVzIGEgcHJvYmxlbSB3aGVuIG9uIGluc3RhbGwgdGhlIHJlc3BvbnNlIHRhYmxlIHdvdWxkIHNvbWV0aW1lcyBub3QgZ2V0IGNyZWF0ZWQgd2hlbiB1c2luZyBhZG9kYiBsaXRlPC9saT4NCiAgICAgIDwvbGk+DQogICA8L3VsPg0KICAgPC9wPg0KPC9saT4NCjxsaT5WZXJzaW9uIDAuMiAtIDE0IE5vdmVtYmVyIDIwMDYuIENhbGd1eSAmIHRzd1wncyBidWcgZml4ZXMgZm9yIGZpZWxkIHJlLW9yZGVyaW5nIGFuZCBjdXN0b20gdGVtcGxhdGVzLiBBZGRpdGlvbmFsIGJ1ZyBmaXhlcyBmb3IgZmllbGQgbGFiZWxzLjwvbGk+DQo8bGk+VmVyc2lvbiAwLjEgLSA4IEp1bHkgMjAwNi4gSW5pdGlhbCBSZWxlYXNlPC9saT4NCjwvdWw+DQonOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My4xMTkzNzU2OTY5LjExOTk2OTgyNzYuMTIxMzMxODcyMS4xMjEzMzIyOTM4LjYnOwokbGFuZ1sndXRteiddID0gJzE1Njg2MTM1My4xMjEzMzIyOTM4LjYuNC51dG1jY249KHJlZmVycmFsKXx1dG1jc3I9ZGV2LmNtc21hZGVzaW1wbGUub3JnfHV0bWNjdD0vfHV0bWNtZD1yZWZlcnJhbCc7CiRsYW5nWyd1dG1iJ10gPSAnMTU2ODYxMzUzJzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/lt_LT.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0Zvcm1vcyc7CiRsYW5nWydmaWVsZF90eXBlXyddID0gJ0xhdWtlbGlvIHRpcGFzIG5lbnVzdGF0eXRhcyc7CiRsYW5nWydmaWVsZF90eXBlX0NhdGFsb2dlckl0ZW1zRmllbGQnXSA9ICdTZWxlY3Qgb25lIChvciBtb3JlKSBjYXRhbG9nZXIgaXRlbXMnOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldEVuZCddID0gJy1GaWVsZHNldCBwYWJhaWdhJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmllbGRzZXRTdGFydCddID0gJy1GaWVsZHNldCBwcmFkemlhJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkJ10gPSAnVGV4dCBJbnB1dCc7CiRsYW5nWydmaWVsZF90eXBlX1Bhc3N3b3JkRmllbGQnXSA9ICdQYXNzd29yZCc7CiRsYW5nWydmaWVsZF90eXBlX1Bhc3N3b3JkQWdhaW5GaWVsZCddID0gJ1Bhc3N3b3JkIEFnYWluICh2ZXJpZnkpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkRXhwYW5kYWJsZSddID0gJ1RleHQgSW5wdXQgKE11bHRpcGxlKSc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRBcmVhRmllbGQnXSA9ICdUZXh0IEFyZWEnOwokbGFuZ1snZmllbGRfdHlwZV9CdXR0b25GaWVsZCddID0gJ0J1dHRvbic7CiRsYW5nWydmaWVsZF90eXBlX0NoZWNrYm94RmllbGQnXSA9ICdDaGVjayBCb3gnOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEdyb3VwRmllbGQnXSA9ICdDaGVjayBCb3ggR3JvdXAnOwokbGFuZ1snZmllbGRfdHlwZV9QdWxsZG93bkZpZWxkJ10gPSAnUHVsbGRvd24nOwokbGFuZ1snZmllbGRfdHlwZV9NdWx0aXNlbGVjdEZpZWxkJ10gPSAnTXVsdGlzZWxlY3QnOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0ZVBpY2tlckZpZWxkJ10gPSAnSkFWIHZhbHN0aWrFsyBwYXNpcmlua2ltYXMnOwokbGFuZ1snZmllbGRfdHlwZV9Qcm92aW5jZVBpY2tlckZpZWxkJ10gPSAnQ2FuYWRpYW4gUHJvdmluY2UgUGlja2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ291bnRyeVBpY2tlckZpZWxkJ10gPSAnJlNjYXJvbjthbGllcyBwYXNpcmlua2ltYXMnOwokbGFuZ1snZmllbGRfdHlwZV9EYXRlUGlja2VyRmllbGQnXSA9ICdEYXRvcyBwYXNpcmlua2ltYXMnOwokbGFuZ1snZmllbGRfdHlwZV9UaW1lUGlja2VyRmllbGQnXSA9ICdMYWlrbyBwYXNpcmlua2ltYXMnOwokbGFuZ1snZmllbGRfdHlwZV9SYWRpb0dyb3VwRmllbGQnXSA9ICdSYWRpbyBCdXR0b24gR3JvdXAnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRpcmVjdG9yJ10gPSAnKkVtYWlsIFJlc3VsdHMgQmFzZWQgb24gUHVsbGRvd24nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZpbGVEaXJlY3RvciddID0gJypTYXZlIFJlc3VsdHMgdG8gRmlsZSBCYXNlZCBvbiBQdWxsZG93bic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uTXVsdGlzZWxlY3RGaWxlRGlyZWN0b3InXSA9ICcqU2F2ZSBSZXN1bHRzIHRvIEZpbGUocykgQmFzZWQgb24gTXVsdGlwbGUgU2VsZWN0aW9ucyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uUGFnZVJlZGlyZWN0b3InXSA9ICcqUmVkaXJlY3QgdG8gUGFnZSBCYXNlZCBvbiBQdWxsZG93bic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWwnXSA9ICcqRW1haWwgUmVzdWx0cyB0byBzZXQgQWRkcmVzcyhlcyknOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsQ29uZmlybWF0aW9uJ10gPSAnKlZhbGlkYXRlLXZpYS1FbWFpbCBBZGRyZXNzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Gcm9tRW1haWxBZGRyZXNzRmllbGQnXSA9ICcqRW1haWwgJnF1b3Q7RnJvbSBBZGRyZXNzJnF1b3Q7IEZpZWxkLCBhbmQgc2VuZCBjb3B5JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25GaWxlJ10gPSAnKldyaXRlIFJlc3VsdHMgdG8gRmxhdCBGaWxlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EYXRhYmFzZSddID0gJypTdG9yZSBSZXN1bHRzIGluIERhdGFiYXNlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Gb3JtQnJvd3NlciddID0gJypTdG9yZSBSZXN1bHRzIGZvciBGb3JtQnJvd3NlciBNb2R1bGUgdi4zJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Vc2VyVGFnJ10gPSAnKkNhbGwgQSBVc2VyIERlZmluZWQgVGFnIFdpdGggdGhlIEZvcm0gUmVzdWx0cyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGVsaXZlclRvRW1haWxBZGRyZXNzRmllbGQnXSA9ICcqRW1haWwgdG8gVXNlci1TdXBwbGllZCBFbWFpbCBBZGRyZXNzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbFNpdGVBZG1pbiddID0gJypFbWFpbCB0byBDTVMgQWRtaW4gVXNlcic7CiRsYW5nWydmaWVsZF90eXBlX1BhZ2VCcmVha0ZpZWxkJ10gPSAnLVB1c2xhcGlvIHRyxatraXMnOwokbGFuZ1snZmllbGRfdHlwZV9GaWxlVXBsb2FkRmllbGQnXSA9ICdCeWxvcyBhdHNpdW50aW1hcyc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbEFkZHJlc3NGaWVsZCddID0gJ0VsIHBhJnNjYXJvbjt0byAmcXVvdDtOdW8gQWRyZXNhcyZxdW90OyBsYXVrZWxpcyc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbEFkZHJlc3NBZ2FpbkZpZWxkJ10gPSAnRW1haWwgJnF1b3Q7RnJvbSBBZGRyZXNzJnF1b3Q7IEFnYWluIEZpZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsTmFtZUZpZWxkJ10gPSAnRWwgcGEmc2Nhcm9uO3RvICZxdW90O051byBWYXJkYXMmcXVvdDsgbGF1a2VsaXMnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxTdWJqZWN0RmllbGQnXSA9ICdFbC4gcGEmc2Nhcm9uO3RvICZxdW90O1RlbWEmcXVvdDsgbGF1a2VsaXMnOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0aWNUZXh0RmllbGQnXSA9ICctU3RhdGluaXMgdGVrc3Rhcyc7CiRsYW5nWydmaWVsZF90eXBlX1N5c3RlbUxpbmtGaWVsZCddID0gJy1TdGF0aW7ElyBudW9yb2RhJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTGlua0ZpZWxkJ10gPSAnTnVvcm9kYSAoxK52ZWRhIGxhbmt5dG9qYXMpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfSGlkZGVuRmllbGQnXSA9ICdQYXNsxJdwdGFzIGxhdWthcyc7CiRsYW5nWydmaWVsZF90eXBlX0NvbXB1dGVkRmllbGQnXSA9ICctQ29tcHV0ZWQgRmllbGQnOwokbGFuZ1snZmllbGRfdHlwZV9VbmlxdWVJbnRlZ2VyRmllbGQnXSA9ICctVW5pcXVlIEludGVnZXIgKFNlcmlhbCknOwokbGFuZ1sndmFsaWRhdGlvbl9ub25lJ10gPSAnTmV0aWtyaW50aSc7CiRsYW5nWyd2YWxpZGF0aW9uX251bWVyaWMnXSA9ICdOdW1lcmljJzsKJGxhbmdbJ3ZhbGlkYXRpb25faW50ZWdlciddID0gJ1N2ZWlrYXMgc2thacSNaXVzJzsKJGxhbmdbJ3ZhbGlkYXRpb25fZW1haWxfYWRkcmVzcyddID0gJ0VsIHBhJnNjYXJvbjt0byBhZHJlc2FzJzsKJGxhbmdbJ3ZhbGlkYXRpb25fdXNwaG9uZSddID0gJ1RlbC4gbnIuIChVUyknOwokbGFuZ1sndmFsaWRhdGlvbl9tdXN0X2NoZWNrJ10gPSAnVHVyaSBixat0IHBhxb55bcSXdGFzJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbWF0Y2gnXSA9ICdNYXRjaCBSZWd1bGFyIEV4cHJlc3Npb24nOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9ub21hdGNoJ10gPSAnRG9lc24mIzAzOTt0IG1hdGNoIFJlZ3VsYXIgRXhwcmVzc2lvbic7CiRsYW5nWydyZXF1aXJlZF9maWVsZF9taXNzaW5nJ10gPSAnUHJpdmFsb21hbSBsYXVrdWkgbmVidXZvIHN1dGVpa3RhIHZlcnTElyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV92YWx1ZSddID0gJ1ByYSZzY2Fyb247b21lIMSvdmVzdGkgICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX251bWJlciddID0gJ1ByYSZzY2Fyb247b21lIMSvdmVzdGkgc2thacSNacWzICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl92YWxpZCddID0gJ1ByYSZzY2Fyb247b21lIMSvdmVzdGkgZ2FsaW9qYW7EjWnEhSByZWlrJnNjYXJvbjttxJkgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FuX2ludGVnZXInXSA9ICdQcmEmc2Nhcm9uO29tZSDEr3Zlc3RpIHN2ZWlrxIUgc2thacSNacWzIGxhdWtlbHlqZSAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5fZW1haWwnXSA9ICdQcmEmc2Nhcm9uO29tZSDEr3Zlc3RpIGdhbGlvamFudMSvIGVsIHBhJnNjYXJvbjt0byBhZHJlc8SFJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1snZW1haWxfYWRkcmVzc19kb2VzX25vdF9tYXRjaCddID0gJ0VtYWlsIGFkZHJlc3MgZG9lcyBub3QgbWF0Y2ggdmFsdWUgaW4gJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfcGhvbmUnXSA9ICdQcmEmc2Nhcm9uO29tLCDEr3Zlc2tpdGUgdGVpc2luZ8SFIHRlbGVmb25vIG51bWVyxK8gJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1snbm90X3ZhbGlkX2VtYWlsJ10gPSAnJnF1b3Q7JXMmcXVvdDsgbmVwYW5hJnNjYXJvbjt1cyDEryBnYWxpb2phbnTEryBlbCBwYSZzY2Fyb247dG8gYWRyZXPEhSEnOwokbGFuZ1sncGxlYXNlX2VudGVyX25vX2xvbmdlciddID0gJ1ByYSZzY2Fyb247b21lIMSvdmVzdGkgbmVkYXVnaWF1IGthaXAgICVzIHNpbWJvbGnFsyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYXRfbGVhc3QnXSA9ICdQbGVhc2UgZW50ZXIgYSB2YWx1ZSB0aGF0IGlzIGF0IGxlYXN0ICVzIGNoYXJhY3RlcnMnOwokbGFuZ1sndGl0bGVfbGlzdF9kZWxpbWl0ZXInXSA9ICdDaGFyYWN0ZXIgdG8gdXNlIGFzIGRlbGltaXRlciBpbiByZXN1bHRzIHRoYXQgcmV0dXJuIG1vcmUgdGhhbiBvbmUgdmFsdWUnOwokbGFuZ1sneW91X25lZWRfcGVybWlzc2lvbiddID0gJ1lvdSBuZWVkIHRoZSAmcXVvdDslcyZxdW90OyBwZXJtaXNzaW9uIHRvIHBlcmZvcm0gdGhhdCBvcGVyYXRpb24uJzsKJGxhbmdbJ2xhY2twZXJtaXNzaW9uJ10gPSAnU29ycnkhIFlvdSBkb24mIzAzOTt0IGhhdmUgYWRlcXVhdGUgcHJpdmlsZWdlcyB0byBhY2Nlc3MgdGhpcyBzZWN0aW9uLic7CiRsYW5nWydmaWVsZF9vcmRlcl91cGRhdGVkJ10gPSAnTGF1a2VsacWzIHR2YXJrYSBhdG5hdWppbnRhLic7CiRsYW5nWydmb3JtX2RlbGV0ZWQnXSA9ICdGb3JtYSBwYSZzY2Fyb247YWxpbnRhLic7CiRsYW5nWydmaWVsZF9kZWxldGVkJ10gPSAnTGF1a2VsaXMgcGEmc2Nhcm9uO2FsaW50YXMuJzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb25fdXBkYXRlZCddID0gJ051c3RhdHltYWkgYXRuYXVqaW50aS4nOwokbGFuZ1sneW91X211c3RfY2hlY2snXSA9ICdUdXJpdGUgcGHFvnltxJd0aSAmcXVvdDslcyZxdW90OyBqZWkgbm9yaXRlIHTEmXN0aSc7CiRsYW5nWydtdXN0X3NwZWNpZnlfb25lX2Rlc3RpbmF0aW9uJ10gPSAnWW91IG5lZWQgdG8gc3BlY2lmeSBhdCBsZWFzdCBvbmUgZGVzdGluYXRpb24gYWRkcmVzcyEnOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9mb3JtJ10gPSAnQXIgasWrcyDEr3NpdGlraW7EmXMsIGthZCBub3JpdGUgaSZzY2Fyb247dHJpbnRpIGZvcm3EhSAlcz8nOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9maWVsZCddID0gJ0FyIGrFq3MgxK9zaXRpa2luxJlzLCBrYWQgbm9yaXRlIGkmc2Nhcm9uO3RyaW50aSBsYWlrZWzEryAlcz8nOwokbGFuZ1snbm90aWNlX3NlbGVjdF90eXBlJ10gPSAnQWR2YW5jZWQgb3B0aW9ucyBhcmUgbm90IGF2YWlsYWJsZSB1bnRpbCB0aGUgZmllbGQgdHlwZSBoYXMgYmVlbiBzZXQuJzsKJGxhbmdbJ2ZpZWxkX25hbWVfaW5fdXNlJ10gPSAnVGhlIGZpZWxkIG5hbWUgJnF1b3Q7JXMmcXVvdDsgaXMgYWxyZWFkeSBpbiB1c2UuIFBsZWFzZSB1c2UgdW5pcXVlIGZpZWxkIG5hbWVzLic7CiRsYW5nWydmaWVsZF9ub19uYW1lJ10gPSAnRmllbGRzIG11c3QgYmUgbmFtZWQsIHVubGVzcyB5b3UgZGlzYWJsZSB0aGlzIGluIHRoZSBGb3JtIEJ1aWxkZXIgY29uZmlndXJhdGlvbi4nOwokbGFuZ1snYW5vbnltb3VzJ10gPSAnQW5vbmltYXMnOwokbGFuZ1snYWJicmV2aWF0aW9uX2xlbmd0aCddID0gJ0xlbjogJXMnOwokbGFuZ1snYm94ZXMnXSA9ICclcyBib3hlcyc7CiRsYW5nWydvcHRpb25zJ10gPSAnJXMgb3B0aW9ucyc7CiRsYW5nWyd0ZXh0X2xlbmd0aCddID0gJyVzIGNoYXJzLic7CiRsYW5nWydvcmRlciddID0gJ09yZGVyJzsKJGxhbmdbJ3Vuc3BlY2lmaWVkJ10gPSAnW25lbnVyb2R5dGFdJzsKJGxhbmdbJ2FkZGVkJ10gPSAncHJpZMSXdGEnOwokbGFuZ1sndXBkYXRlZCddID0gJ2F0bmF1amludGEnOwokbGFuZ1snc29ydF9vcHRpb25zJ10gPSAnU29ydCBvcHRpb25zIG9uIG91dHB1dCc7CiRsYW5nWydzZWxlY3Rfb25lJ10gPSAnUGFzaXJpbmtpdGUgdmllbsSFJzsKJGxhbmdbJ3NlbGVjdF90eXBlJ10gPSAnUGFzaXJpbmtpdGUgdGlwxIUnOwokbGFuZ1sndG8nXSA9ICdLYW0nOwokbGFuZ1sneWVzJ10gPSAnVGFpcCc7CiRsYW5nWydubyddID0gJ05lJzsKJGxhbmdbJ3JlY2lwaWVudHMnXSA9ICdyZWNpcGllbnRzJzsKJGxhbmdbJ2ZpbGVfY291bnQnXSA9ICclcyBwb3NzaWJsZSBmaWxlcyc7CiRsYW5nWydkZXN0aW5hdGlvbl9jb3VudCddID0gJyVzIGRlc3RpbmF0aW9ucyc7CiRsYW5nWydzYXZlJ10gPSAnU2F1Z290aSc7CiRsYW5nWydhZGQnXSA9ICdQcmlkxJd0aSc7CiRsYW5nWyd1cGRhdGUnXSA9ICdBdG5hdWppbnRpJzsKJGxhbmdbJ3NhdmVfYW5kX2NvbnRpbnVlJ10gPSAnU2F1Z290aSBpciB0xJlzdGkgcmVkYWdhdmltxIUnOwokbGFuZ1snaW5mb3JtYXRpb24nXSA9ICdJbmZvcm1hY2lqYSc7CiRsYW5nWydhdXRvbWF0aWMnXSA9ICdBdXRvbWF0aWMnOwokbGFuZ1snZm9ybXMnXSA9ICdGb3Jtb3MnOwokbGFuZ1snZm9ybSddID0gJyVzIGZvcm1hJzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb24nXSA9ICdLb25maWfFq3JhY2lqYSc7CiRsYW5nWydmaWVsZF9yZXF1aXJlbWVudF91cGRhdGVkJ10gPSAnRmllbGQgcmVxdWlyZWQgc3RhdGUgdXBkYXRlZC4nOwokbGFuZ1snbWF4aW11bV9zaXplJ10gPSAnTWF4LiBkeWRpcyc7CiRsYW5nWydwZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ1BsxJd0aW5pYWknOwokbGFuZ1sncGVybWl0dGVkX2ZpbGV0eXBlcyddID0gJ2xlaWTFvmlhbWkgYnlsxbMgdGlwYWknOwokbGFuZ1snZmlsZV90b29fbGFyZ2UnXSA9ICfErmtlbHRhIGJ5bGEgeXJhIHBlciBkaWRlbMSXLiBNYWtzaW1hbHVzIGR5ZGlzIHlyYTonOwokbGFuZ1snaWxsZWdhbF9maWxlX3R5cGUnXSA9ICdUaGlzIHR5cGUgb2YgZmlsZSBtYXkgbm90IGJlIHVwbG9hZGVkLiBQbGVhc2UgY2hlY2sgdGhhdCB0aGUgZXh0ZW5zaW9uIGlzIGNvcnJlY3QuJzsKJGxhbmdbJ3VwbG9hZCddID0gJ8Sua2VsdGknOwokbGFuZ1snZm9ybV9pbXBvcnRlZCddID0gJ0Zvcm1hIGltcG9ydHVvdGEnOwokbGFuZ1snZm9ybV9pbXBvcnRfZmFpbGVkJ10gPSAnRm9ybSBpbXBvcnQgZmFpbGVkISBUaGVyZSB3YXMgYSBwcm9ibGVtIHdpdGggdGhlIGZvcm1hdCBvZiB0aGUgWE1MIGZpbGUuJzsKJGxhbmdbJ3Jvd3MnXSA9ICclcyBlaWx1xI1pxbMnOwokbGFuZ1snY29scyddID0gJyVzIHN0dWxwZWxpxbMnOwokbGFuZ1snMTJfaG91ciddID0gJzEyLW9zIHZhbGFuZMWzIGxhaWtyb2Rpcyc7CiRsYW5nWycyNF9ob3VyJ10gPSAnMjQtacWzIHZhbGFuZMWzIGxhaWtyb2Rpcyc7CiRsYW5nWydob3VyJ10gPSAnVmFsYW5kYSc7CiRsYW5nWydtaW4nXSA9ICdNaW51dMSXJzsKJGxhbmdbJ21lcmlkJ10gPSAnTWVyaWRpYW4nOwokbGFuZ1snZGF0ZV9yYW5nZSddID0gJ1J1b8W+YXM6ICVzIC0gJXMnOwokbGFuZ1sndGhhbmtzJ10gPSAnQcSNacWrISBKxatzxbMgcGF0ZWlraW1hcyBidXZvIGdhdXRhcy4nOwokbGFuZ1snZWRpdCddID0gJ1JlZGFndW90aSc7CiRsYW5nWydkZWxldGUnXSA9ICdUcmludGknOwokbGFuZ1snZGF5J10gPSAnRGllbmEnOwokbGFuZ1snbW9uJ10gPSAnTcSXbnVvJzsKJGxhbmdbJ3llYXInXSA9ICdNZXRhaSc7CiRsYW5nWydub25lJ10gPSAnKG5vbmUpJzsKJGxhbmdbJ2NzcyddID0gJ0NTUyc7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHVsaXMgaW5zdGFsaXVvdGFzJzsKJGxhbmdbJ2luc3RhbGxlZCddID0gJ01vZHVsaW8gJXMgdmVyc2lqYSBpbnN0YWxpdW90YS4nOwokbGFuZ1sndXBncmFkZWQnXSA9ICdNb2R1bGlzIGF0bmF1amludGFzIGlraSAlcyB2ZXJzaWpvcy4nOwokbGFuZ1snYnV0dG9uX3ByZXZpb3VzJ10gPSAnQXRnYWwuLi4nOwokbGFuZ1snYnV0dG9uX3N1Ym1pdCddID0gJ1BhdGVpa3RpIGZvcm3EhSc7CiRsYW5nWydidXR0b25fY29udGludWUnXSA9ICdUxJlzdGkuLi4nOwokbGFuZ1sndmFsdWVfY2hlY2tlZCddID0gJ1Bhxb55bcSXdGEnOwokbGFuZ1sndmFsdWVfdW5jaGVja2VkJ10gPSAnTmVwYcW+eW3El3RhJzsKJGxhbmdbJ3RhYl9tYWluJ10gPSAnUGFncmluZGluaXMnOwokbGFuZ1sndGFiX3N5bWJvbCddID0gJ0Zvcm1vcyByb2R5bW8gbnVzdGF0eW1haSc7CiRsYW5nWyd0YWJfc3VibWl0J10gPSAnRm9ybW9zIHBhdGVpa2ltYXMnOwokbGFuZ1sndGFiX2NhcHRjaGEnXSA9ICdDYXB0Y2hhIG51c3RhdHltYWknOwokbGFuZ1sndGFiX2FkdmFuY2VkJ10gPSAnUGFwaWxkb21pIFNudXN0YXR5bWFpJzsKJGxhbmdbJ3RhYl90ZW1wbGF0ZWxheW91dCddID0gJ1RlbXBsYXRlIExheW91dCBPcHRpb25zJzsKJGxhbmdbJ3RhYl9zdWJtaXNzaW9udGVtcGxhdGUnXSA9ICdQYXRlaWtpbW8gJnNjYXJvbjthYmxvbmFzJzsKJGxhbmdbJ2NhbnVzZV9zbWFydHknXSA9ICc8ZW0+U21hcnR5IHZhcmlhYmxlcyBhcmUgdmFsaWQgaW4gdGhpcyBmaWVsZC48L2VtPic7CiRsYW5nWydhZGRfb3B0aW9ucyddID0gJ1ByaWTEl3RpIGRhdWdpYXUgcGFzaXJpbmtpbcWzJzsKJGxhbmdbJ2RlbGV0ZV9vcHRpb25zJ10gPSAnVHJpbnRpIHBhxb55bcSXdHVzIHBhc2lyaW5raW11cyc7CiRsYW5nWydhZGRfY2hlY2tib3hlcyddID0gJ1ByaWTEl3RpIGRhdWdpYXUgQ2hlY2tib3ggbGF1a8WzJzsKJGxhbmdbJ2RlbGV0ZV9jaGVja2JveGVzJ10gPSAnSSZzY2Fyb247dHJpbnRpIHBhxb55bcSXdHVzIENoZWNrYm94IGxhdWt1cyc7CiRsYW5nWydhZGRfYWRkcmVzcyddID0gJ1ByaWTEl3RpIGtpdMSFIGFkcmVzxIUnOwokbGFuZ1snZGVsZXRlX2FkZHJlc3MnXSA9ICdJJnNjYXJvbjt0cmludGkgcGHFvnltxJd0dXMgYWRyZXN1cyc7CiRsYW5nWydhZGRfZGVzdGluYXRpb24nXSA9ICdQcmlkxJd0aSBraXTEhSBwYXNreXJpbW8gdmlldMSFJzsKJGxhbmdbJ2RlbGV0ZV9kZXN0aW5hdGlvbiddID0gJ0kmc2Nhcm9uO3RyaW50aSBwYcW+eW3El3RhcyBwYXNreXJpbW8gdmlldGFzJzsKJGxhbmdbJ3N1c3BlY3RlZF9zcGFtJ10gPSAnVG9vIG1hbnkgZW1haWxzIGdlbmVyYXRlZCBmcm9tIHlvdXIgSVAgYWRkcmVzcy4gQW50aS1TcGFtIGNvZGUgaGFzIHByZXZlbnRlZCBkZWxpdmVyeS4nOwokbGFuZ1snc3VzcGVjdGVkX3NwYW1fbG9nJ10gPSAnU3VzcGVjdGVkIHNwYW0gZnJvbSBJUCAlcyBzdG9wcGVkLic7CiRsYW5nWydyZW9yZGVyJ10gPSAnUGFrZWlzdGkgbGF1a8WzIGVpbGkmc2Nhcm9uO2t1bcSFJzsKJGxhbmdbJ2NhbmNlbCddID0gJ0F0JnNjYXJvbjthdWt0aSc7CiRsYW5nWyd2YWx1ZV9zZXQnXSA9ICdOdXN0YXR5dGEgdmVydMSXOiAlcyc7CiRsYW5nWydoZWxwX2NhdGFsb2dlcl9hdHRyaWJ1dGVfZmllbGRzJ10gPSAnQmVsb3cgaXMgYSBsaXN0IG9mIHRoZSBhdHRyaWJ1dGVzIGF2YWlsYWJsZSBmcm9tIHRoZSBDYXRhbG9nZXIgbW9kdWxlLjxici8+WW91IGNhbiBvcHRpb25hbGx5IHNwZWNpZnkgdmFsaWQgcmFuZ2VzLCB2YWx1ZXMsIG9yIG51bWVyb3VzIHZhbHVlcyB0byBiZSB1c2VkIGluIGZpbHRlcmluZyB0aGUgbGlzdCBvZiBpdGVtcyB0aGF0IGlzIGRpc3BsYXllZCB0byB0aGUgdXNlci48YnIvPg0KPGJyLz4NCjxzdHJvbmc+UmFuZ2VzOjwvc3Ryb25nPjxici8+DQpSYW5nZXMgY2FuIGJlIHNwZWNpZmllZCBieSBzaWduaWZ5aW5nIGEgbWluaW11bSBhbmQgbWF4aW11bSB2YWx1ZSB1c2luZyB0aGlzIHN5bnRheDogJnF1b3Q7cmFuZ2U6IG1pbnZhbHVlIHRvIG1heHZhbHVlJnF1b3Q7PGJyLz4NCjxici8+DQo8c3Ryb25nPk11bHRpcGxlIFZhbHVlczo8L3N0cm9uZz48YnIvPg0KVG8gc3BlY2lmeSBtdWx0aXBsZSB2YWx1ZXMgZm9yIGFuIGF0dHJpYnV0ZSB1c2UgdGhlIHN5bnRheCAmcXVvdDttdWx0aTogdmFsdWUxfHZhbHVlMnx2YWx1ZTMmcXVvdDs8YnIvPg0KPGJyLz4NCjxzdHJvbmc+VmFsdWVzIGZyb20gaGlkZGVuIGZpZWxkczwvc3Ryb25nPjxici8+DQpUbyBzcGVjaWZ5IGEgdmFsdWUgZnJvbSBhIGhpZGRlbiBmaWVsZCB1c2UgdGhlIHN5bnRheCB7JGZsZF9pZH08YnIvPg0KPGJyLz4nOwokbGFuZ1snaGVscF9uYW1lX3JlZ2V4J10gPSAnQSByZWd1bGFyIGV4cHJlc3Npb24gdG8gYWxsb3cgZmlsdGVyaW5nIGNhdGFsb2dlciBpdGVtcyBieSBuYW1lJzsKJGxhbmdbJ2hlbHBfZmllbGRfaGVpZ2h0J10gPSAnVGhlIGhlaWdodCBvZiB0aGUgbXVsdGlzZWxlY3QgZmllbGQnOwokbGFuZ1sndGl0bGVfbmFtZV9yZWdleCddID0gJ0NhdGFsb2dlciBJdGVtIE5hbWUgUmVndWxhciBFeHByZXNzaW9uJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2hlaWdodCddID0gJ0xhdWtvIGF1ayZzY2Fyb247dGlzJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcGF0aCddID0gJ0Rlc3RpbmF0aW9uIERpcmVjdG9yeSBmb3Igb3V0cHV0IGZpbGVzJzsKJGxhbmdbJ3RpdGxlX3VkdF9uYW1lJ10gPSAnVXNlciBEZWZpbmVkIFRhZyc7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2Rlc3RwYWdlJ10gPSAnUGFnZSB0byByZXR1cm4gdG8gd2l0aCB1cGxvYWRzIGxpbmsnOwokbGFuZ1sndGl0bGVfdXBsb2FkbW9kdWxlX3N1bW1hcnknXSA9ICdQYXRlaWt0YSBuYXVkb2phbnQgZm9yYmJ1aWxkZXInOwokbGFuZ1sndGl0bGVfdXBsb2Fkc19jYXRlZ29yeSddID0gJ8Sua8SXbGltxbMga2F0ZWdvcmlqYSc7CiRsYW5nWyd0aXRsZV9zZW5kdG9fdXBsb2FkcyddID0gJ1NpxbNzdGkgJnNjYXJvbjvEryAgZmFpbMSFIMSvIHVwbG9hZHMgbW9kdWzEryc7CiRsYW5nWyd0aXRsZV9sZWdlbmQnXSA9ICdMZWdlbmRhJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fbGVuZ3RoJ10gPSAnRGlkxb5pYXVzaWFzIGlsZ2lzJzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2xhYmVsJ10gPSAnQ2hlY2tib3ggZXRpa2V0xJcnOwokbGFuZ1sndGl0bGVfcmFkaW9fbGFiZWwnXSA9ICdSYWRpbyBCdXR0b24gZXRpa2V0xJcnOwokbGFuZ1sndGl0bGVfY2hlY2tlZF92YWx1ZSddID0gJ1ZlcnTElyBrYWkgcGHFvnltxJd0YSc7CiRsYW5nWyd0aXRsZV91bmNoZWNrZWRfdmFsdWUnXSA9ICdWZXJ0xJcga2FpIG5lcGHFvnltxJd0YSc7CiRsYW5nWyd0aXRsZV9jaGVja2JveF9kZXRhaWxzJ10gPSAnQ2hlY2tib3ggR3JvdXAgRGV0YWlscyc7CiRsYW5nWyd0aXRsZV9kZWxldGUnXSA9ICdJJnNjYXJvbjt0cmludGk/JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9vbmVfbWVzc2FnZSddID0gJyZxdW90O1Bhc2lyaW5rdGkgdmllbsSFJnF1b3Q7IHRla3N0YXMnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX3ZhbHVlJ10gPSAnU2VsZWN0aW9uIFZhbHVlJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl9kaXNwbGF5bmFtZSddID0gJ1NlbGVjdGlvbiBEaXNwbGF5IE5hbWUnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX3N1YmplY3QnXSA9ICdTZWxlY3Rpb24gU3ViamVjdCc7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9jb3VudHJ5J10gPSAnRGVmYXVsdCBTZWxlY3Rpb24nOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfc3RhdGUnXSA9ICdEZWZhdWx0IFNlbGVjdGlvbic7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9wcm92aW5jZSddID0gJ0RlZmF1bHQgU2VsZWN0aW9uJzsKJGxhbmdbJ3RpdGxlX29wdGlvbl9uYW1lJ10gPSAnT3B0aW9uIE5hbWUnOwokbGFuZ1sndGl0bGVfb3B0aW9uX3ZhbHVlJ10gPSAnVmFsdWUgU3VibWl0dGVkJzsKJGxhbmdbJ3RpdGxlX3B1bGxkb3duX2RldGFpbHMnXSA9ICdQdWxsZG93biBPcHRpb25zJzsKJGxhbmdbJ3RpdGxlX211bHRpc2VsZWN0X2RldGFpbHMnXSA9ICdNdWx0aXNlbGVjdCBPcHRpb25zJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2FkZHJlc3MnXSA9ICdEZXN0aW5hdGlvbiBFbWFpbCBBZGRyZXNzJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2ZpbGVuYW1lJ10gPSAnRGVzdGluYXRpb24gRmlsZSBOYW1lJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fbmFtZSddID0gJyZxdW90O0Zyb20gbmFtZSZxdW90OyBmb3IgZW1haWwnOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9lbWFpbF9yZWdleCddID0gJ05hdWRvdGkgc3VwYXByYXN0aW50xIUgZS4gcGEmc2Nhcm9uO3RvIGFkcmVzbyB0aWtyaW5pbcSFJzsKJGxhbmdbJ3RpdGxlX3JlbGF4ZWRfcmVnZXhfbG9uZyddID0gJ1VzZSByZWxheGVkIGVtYWlsIGFkZHJlc3MgdmFsaWRhdGlvbiAoZS5nLiwgYWxsb3cgJnF1b3Q7eEB5JnF1b3Q7IGluc3RlYWQgb2YgcmVxdWlyaW5nICZxdW90O3hAeS50bGQmcXVvdDspJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fYWRkcmVzcyddID0gJyZxdW90O0Zyb20gYWRkcmVzcyZxdW90OyBmb3IgZW1haWwnOwokbGFuZ1sndGl0bGVfZW1haWxfZW5jb2RpbmcnXSA9ICdFbWFpbCBjaGFyYWN0ZXIgc2V0IGVuY29kaW5nJzsKJGxhbmdbJ3RpdGxlX2RpcmVjdG9yX2RldGFpbHMnXSA9ICdQdWxsZG93bi1iYXNlZCBFbWFpbGVyIERldGFpbHMnOwokbGFuZ1sndGl0bGVfZmlsZV9uYW1lJ10gPSAnRmFpbG8gcGF2YWRpbmltYXMnOwokbGFuZ1sndGl0bGVfZW1haWxfc3ViamVjdCddID0gJ0UuIHBhJnNjYXJvbjt0byB0ZW1vcyBsaW5pamEnOwokbGFuZ1sndGl0bGVfZm9ybV9uYW1lJ10gPSAnRm9ybW9zIHBhdmFkaW5pbWFzJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fc3RhdHVzJ10gPSAnRm9ybW9zIGLFq3NlbmEnOwokbGFuZ1sndGl0bGVfcmVhZHlfZm9yX2RlcGxveW1lbnQnXSA9ICdSZWFkeSBmb3IgRGVwbG95bWVudCc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkxJ10gPSAnTmVwYXJlbmd0YSc7CiRsYW5nWyd0aXRsZV9yZWRpcmVjdF9wYWdlJ10gPSAnUGFnZSB0byByZWRpcmVjdCB0byBhZnRlciBmb3JtIHN1Ym1pc3Npb24nOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MiddID0gJ1BsZWFzZSBhZGQgYSBmaWVsZCB0byB0aGUgZm9ybSBzbyB0aGF0IHRoZSB1c2VyJiMwMzk7cyBpbnB1dCBnZXRzIGhhbmRsZWQuIFlvdSBjYW4nOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5X2xpbmsnXSA9ICdudWRvdGkgJnNjYXJvbjvEryB0cnVtcGluxK8nOwokbGFuZ1sndGl0bGVfZm9ybV9hbGlhcyddID0gJ0Zvcm1vcyBhbGlhc2FzJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fZmllbGRzJ10gPSAnRm9ybW9zIGxhdWthaSc7CiRsYW5nWyd0aXRsZV9maWVsZF9pZCddID0gJ0xhdWtvIElkJzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRhbGlhc2VzJ10gPSAnUm9keXRpIGZvcm1vcyBhbGlhc3VzJzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRhbGlhc2VzX2xvbmcnXSA9ICdDbGlja2luZyB0aGlzIHdpbGwgZGlzcGxheSBmaWVsZCBhbGlhc2VzIHdoZW4gYWRkaW5nIG9yIGVkaXRpbmcgYSBmb3JtJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX25hbWUnXSA9ICdMYXVrbyBwYXZhZGluaW1hcyc7CiRsYW5nWyd0aXRsZV9maWVsZF9hbGlhcyddID0gJ0xhdWtvIGFsaWFzYXMnOwokbGFuZ1sndGl0bGVfcmFkaW9ncm91cF9kZXRhaWxzJ10gPSAnUmFkaW8gQnV0dG9uIEdyb3VwIERldGFpbHMnOwokbGFuZ1sndGl0bGVfZmllbGRfdHlwZSddID0gJ0xhdWtvIHRpcGFzJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTMnXSA9ICd0byBjcmVhdGUgYSBmb3JtIGhhbmRsaW5nIGZpZWxkLic7CiRsYW5nWyd0aXRsZV9hZGRfbmV3X2Zvcm0nXSA9ICdQcmlkxJd0aSBuYXVqxIUgZm9ybcSFJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbiddID0gJ1JvZHl0aSAmcXVvdDtGb3JtxbMga8WrcmltbyZxdW90OyB2ZXJzaWrEhSA/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbl9sb25nJ10gPSAnVGhpcyB3aWxsIGVtYmVkIHlvdXIgaW5zdGFsbGVkIHZlcnNpb24gbnVtYmVyIG9mIEZvcm0gQnVpbGRlciBtb2R1bGUgaW4gYSBjb21tZW50LCB0byBhaWQgaW4gZGVidWdnaW5nJzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZmllbGQnXSA9ICdQcmlkxJd0aSBuYWrEhSBsYXVrZWzEryc7CiRsYW5nWyd0aXRsZV9mb3JtX3N1Ym1pdF9idXR0b24nXSA9ICdGb3Jtb3MgcGF0ZWlraW1vIG15Z3R1a28gdGVrc3Rhcyc7CiRsYW5nWyd0aXRsZV9idXR0b25fdGV4dCddID0gJ015Z3R1a28gdGVrc3Rhcyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eSddID0gJ0FkZCBKYXZhc2NyaXB0IHRvIFN1Ym1pdCBCdXR0b24gdG8gcHJldmVudCBtdWx0aXBsZSBzdWJtaXNzaW9ucz8nOwokbGFuZ1sndGl0bGVfc3VibWl0X2J1dHRvbl9zYWZldHlfaGVscCddID0gJ1ByaWTEl3RpIHNhdWd1bW8gc2tyaXB0xIUnOwokbGFuZ1sndGl0bGVfZm9ybV9uZXh0X2J1dHRvbiddID0gJ0Zvcm0gJnF1b3Q7TmV4dCZxdW90OyBCdXR0b24gVGV4dCAodXNlZCBmb3IgbXVsdGlwYWdlIGZvcm1zKSc7CiRsYW5nWyd0aXRsZV9mb3JtX3ByZXZfYnV0dG9uJ10gPSAnRm9ybSAmcXVvdDtQcmV2aW91cyZxdW90OyBCdXR0b24gVGV4dCAodXNlZCBmb3IgbXVsdGlwYWdlIGZvcm1zKSc7CiRsYW5nWyd0aXRsZV9maWVsZF92YWxpZGF0aW9uJ10gPSAnTGF1a28gdGlrcmluaW1hcyc7CiRsYW5nWyd0aXRsZV9maWVsZF90b192YWxpZGF0ZSddID0gJ0xhdWthcyBwYXRpa3JpbmltdWknOwokbGFuZ1sndGl0bGVfZmllbGRfY3NzX2lkJ10gPSAnQ1NTIElEICZzY2Fyb247aWFtIGxhdWt1aSc7CiRsYW5nWyd0aXRsZV9mb3JtX2Nzc19jbGFzcyddID0gJ0NTUyBrbGFzxJcgJnNjYXJvbjtpYWkgZm9ybWFpJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2Nzc19jbGFzcyddID0gJ0NTUyBrbGFzxJcgJnNjYXJvbjtpYW0gbGF1a3VpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcHJlZGlzcGxheV91ZHQnXSA9ICdVc2VyIGRlZmluZWQgdGFnIHRvIGNhbGwgYmVmb3JlIGZvcm0gaXMgZGlzcGxheWVkJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcmVxdWlyZWRfc3ltYm9sJ10gPSAnU2ltYm9saXMgcHJpdmFsb23FsyBsYXVrxbMgxb55bcSXamltdWknOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWQnXSA9ICdQcml2YWxvbWFzJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2xvbmcnXSA9ICdQcml2YWxvbWFzIGxhdWthcyc7CiRsYW5nWyd0aXRsZV9oaWRlX2xhYmVsJ10gPSAnU2zEl3B0aSBldGlrZXTEmSc7CiRsYW5nWyd0aXRsZV9oaWRlX2xhYmVsX2xvbmcnXSA9ICdIaWRlIHRoaXMgZmllbGQmIzAzOTtzIG5hbWUgb24gRm9ybSc7CiRsYW5nWyd0aXRsZV90ZXh0J10gPSAnU3RhdGluaXMgdGVrc3Rhcyc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZWdleCddID0gJ1Rpa3JpbmltbyBSZWdleCc7CiRsYW5nWyd0aXRsZV9saW5lc190b19zaG93J10gPSAnUm9kb23FsyBsaW5pasWzIHNrYWnEjWl1cyc7CiRsYW5nWyd0aXRsZV9yZWFkX29ubHknXSA9ICdUaWsgc2thaXR5bXVpJzsKJGxhbmdbJ25vX2RlZmF1bHQnXSA9ICdObyBEZWZhdWx0JzsKJGxhbmdbJ3JlZGlyZWN0X2FmdGVyX2FwcHJvdmFsJ10gPSAnUGFnZSB0byByZWRpcmVjdCBhZnRlciBhcHByb3ZhbCc7CiRsYW5nWyd0aXRsZV9yZWdleF9oZWxwJ10gPSAnVGhpcyByZWd1bGFyIGV4cHJlc3Npb24gd2lsbCBvbmx5IGJlIHVzZWQgaWYgJnF1b3Q7dmFsaWRhdGlvbiB0eXBlJnF1b3Q7IGlzIHNldCB0byBhIHJlZ2V4LXJlbGF0ZWQgb3B0aW9uLiBJbmNsdWRlIGEgZnVsbCBQZXJsLXN0eWxlIHJlZ2V4LCBpbmNsdWRpbmcgdGhlIHN0YXJ0L3N0b3Agc2xhc2hlcyBhbmQgZmxhZ3MgKGUuZy4sICZxdW90Oy9pbWFnZVwuKFxkKykvaSZxdW90OyknOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWRfYWJicmV2J10gPSAnUHJpdmFsb21hcyc7CiRsYW5nWyd0aXRsZV9oaWRlX2Vycm9ycyddID0gJ1NsxJdwdGkga2xhaWRhcyc7CiRsYW5nWyd0aXRsZV9mb3JtX2Rpc3BsYXl0eXBlJ10gPSAnRm9ybW9zIHJvZHltbyB0aXBhcyc7CiRsYW5nWyd0aXRsZV9oaWRlX2Vycm9yc19sb25nJ10gPSAnUHJldmVudCBkZWJ1ZyAvIGVycm9yIG1lc3NhZ2VzIGZyb20gYmVpbmcgc2VlbiBieSB1c2Vycy4nOwokbGFuZ1sndGl0bGVfZW1haWxfdGVtcGxhdGUnXSA9ICdFLiBsYWkmc2Nhcm9uO2tvICZzY2Fyb247YWJsb25hcyc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX3NpemUnXSA9ICdNYWtzaW1hbHVzIMSva2VsaWFtbyBmYWlsbyBkeWRpcyAoa2lsb2J5dGVzKSc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX3NpemVfbG9uZyddID0gJ1RoaXMgbGltaXRhdGlvbiBpcyBpbiBhZGRpdGlvbiB0byBhbnkgbGltaXRzIHNldCBieSB0aGUgcGhwIG9yIHdlYiBzZXJ2ZXIgY29uZmlndXJhdGlvbic7CiRsYW5nWyd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ1Blcm1pdHRlZCBFeHRlbnNpb25zJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zX2xvbmcnXSA9ICdFbnRlciBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0LCBleGNsdWRpbmcgdGhlIGRvdCAoZS5nLiwgJnF1b3Q7anBnLGdpZixqcGVnJnF1b3Q7KS4gU3BhY2VzIHdpbGwgYmUgaWdub3JlZC4gTGVhdmluZyB0aGlzIGJsYW5rIG1lYW5zIHRoZXJlIHdpbGwgYmUgbm8gcmVzdHJpY3Rpb25zLic7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zJ10gPSAnRGlzcGxheSByZXN0cmljdGlvbnM/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnNfbG9uZyddID0gJ0Rpc3BsYXkgYW55IHNpemUgYW5kIGV4dGVuc2lvbiByZXN0cmljdGlvbnMgd2l0aCB0aGUgdXBsb2FkIGZpZWxkPyc7CiRsYW5nWyd0aXRsZV9mb3JtX3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgdG8gdXNlIHRvIERpc3BsYXkgRm9ybSc7CiRsYW5nWyd0aXRsZV9wYWdlX3hfb2ZfeSddID0gJ1B1c2xhcGlzICVzIGkmc2Nhcm9uOyAlcyc7CiRsYW5nWyd0aXRsZV9ub19hZHZhbmNlZF9vcHRpb25zJ10gPSAnRmllbGQgaGFzIG5vIGFkdmFuY2VkIG9wdGlvbnMuJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdW5zcGVjaWZpZWQnXSA9ICdUZXh0IHRvIHJldHVybiBmb3IgdW5zcGVjaWZpZWQgZmllbGQgdmFsdWVzJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9mYXN0YWRkX2xvbmcnXSA9ICdFbmFibGUgZmFzdCBmaWVsZCBhZGRpbmcgcHVsbGRvd24gZm9yIGZvcm1zPyc7CiRsYW5nWyd0aXRsZV9lbmFibGVfZmFzdGFkZCddID0gJ0VuYWJsZSBmYXN0IGZpZWxkIGFkZCBwdWxsZG93bj8nOwokbGFuZ1sndGl0bGVfZmFzdGFkZCddID0gJ0Zhc3QgZmllbGQgYWRkZXInOwokbGFuZ1sndGl0bGVfZW5hYmxlX2FudGlzcGFtX2xvbmcnXSA9ICdDbGlja2luZyB0aGlzIHdpbGwgb25seSBhbGxvdyAxMCBlbWFpbHMgdG8gYmUgdHJpZ2dlcmVkIGZyb20gYSBnaXZlbiBJUCBhZGRyZXNzIChwZXIgaG91cikuJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9hbnRpc3BhbSddID0gJ0VuYWJsZSBwcmltaXRpdmUgYW50aS1zcGFtIGZlYXR1cmVzPyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkaWRzJ10gPSAnUm9keXRpIGxhdWvFsyBJRCc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkaWRzX2xvbmcnXSA9ICdDbGlja2luZyB0aGlzIHdpbGwgYWxsb3cgZGlzcGxheWluZyBmaWVsZCBpZHMgd2hlbiBhZGRpbmcgb3IgZWRpdGluZyBhIGZvcm0nOwokbGFuZ1sndGl0bGVfeG1sX3RvX3VwbG9hZCddID0gJ1VwbG9hZCBmb3JtIGZyb20gWE1MIGZpbGUnOwokbGFuZ1sndGl0bGVfeG1sX3VwbG9hZF9mb3JtbmFtZSddID0gJ1VzZSB0aGlzIGZvcm0gbmFtZSc7CiRsYW5nWyd0aXRsZV9pbXBvcnRfbGVnZW5kJ10gPSAnWE1MIEZvcm0gSW1wb3J0JzsKJGxhbmdbJ3RpdGxlX3htbF91cGxvYWRfZm9ybWFsaWFzJ10gPSAnVXNlIHRoaXMgZm9ybSBhbGlhcyc7CiRsYW5nWyd0aXRsZV9odG1sX2VtYWlsJ10gPSAnR2VuZXJhdGUgSFRNTCBlbWFpbD8nOwokbGFuZ1sndGl0bGVfbGlua19hdXRvcG9wdWxhdGUnXSA9ICdBdXRvbWF0aWNhbGx5IHBvcHVsYXRlPyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZV9oZWxwJ10gPSAnQXV0b21hdGljYWxseSBwb3B1bGF0ZSB3aXRoIHRoZSBVUkwgb2YgdGhlIHBhZ2UgY29udGFpbmluZyB0aGUgZm9ybT8gKHRoaXMgb3ZlcnJpZGVzIHNpdGUgcGFnZSBsaW5rIG9wdGlvbiBiZWxvdyknOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9saW5rJ10gPSAnRGVmYXVsdCBsaW5rIFVSTCc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2xpbmtfdGl0bGUnXSA9ICdEZWZhdWx0IGxpbmsgdGV4dCc7CiRsYW5nWyd0aXRsZV9saW5rX3RvX3NpdGVwYWdlJ10gPSAnTGluayB0byBzaXRlIHBhZ2UnOwokbGFuZ1sndGl0bGVfY2FwdGNoYV9ub3RfaW5zdGFsbGVkJ10gPSAnWW91IGNhbiB1c2UgPGEgaHJlZj0iaHR0cDovL3d3dy53aWtpcGVkaWEub3JnL3dpa2kvQ2FwdGNoYSIgdGFyZ2V0PSJfbmV3Ij4mcXVvdDtDYXB0Y2hhJnF1b3Q7PC9hPiB0byBwcm90ZWN0IGZvcm0gc3VibWlzc2lvbnMgaWYgeW91IGluc3RhbGwgdGhlIENhcHRjaGEgbW9kdWxlLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9jYXB0Y2hhLyI+Y2hlY2sgdGhlIENhcHRjaGEgcHJvamVjdDwvYT4uJzsKJGxhbmdbJ3RpdGxlX3VzZV9jYXB0Y2hhJ10gPSAnVXNlIENhcHRjaGEgdG8gcHJvdGVjdCBmb3JtIHN1Ym1pc3Npb25zPyc7CiRsYW5nWyd0aXRsZV91c2VfY2FwdGNoYV9oZWxwJ10gPSAnQ2hlY2sgaGVyZSB0byBwcm90ZWN0IHlvdXIgZm9ybSB3aXRoIGEgPGEgaHJlZj0iaHR0cDovL3d3dy53aWtpcGVkaWEub3JnL3dpa2kvQ2FwdGNoYSIgdGFyZ2V0PSJfbmV3Ij4mcXVvdDtDYXB0Y2hhJnF1b3Q7PC9hPi4nOwokbGFuZ1sndGl0bGVfdXNlcl9jYXB0Y2hhJ10gPSAnxK52ZXNraXRlIHJhaWTEl3MgaSZzY2Fyb247IHBhdmVpa3NsaXVrby4nOwokbGFuZ1sndGl0bGVfdXNlcl9jYXB0Y2hhX2Vycm9yJ10gPSAnRmFpbGVkIHRleHQgZm9yIENhcHRjaGEnOwokbGFuZ1snd3JvbmdfY2FwdGNoYSddID0gJ0NhcHRjaGEgd2FzIG5vdCBjb3JyZWN0Lic7CiRsYW5nWyd0aXRsZV90aXRsZV91c2VyX2NhcHRjaGEnXSA9ICdIZWxwIHRleHQgZm9yIENhcHRjaGEnOwokbGFuZ1sndGl0bGVfZG9udF9zdWJtaXRfdW5jaGVja2VkJ10gPSAnRG9uJiMwMzk7dCBzdWJtaXQgdmFsdWVzIGZvciB1bmNoZWNrZWQgYm94ZXMnOwokbGFuZ1sndGl0bGVfZG9udF9zdWJtaXRfdW5jaGVja2VkX2hlbHAnXSA9ICdDaGVjayB0aGlzIGlmIHlvdSBvbmx5IHdhbnQgY2hlY2tlZCBib3hlcyB0byByZXR1cm4gdmFsdWVzLic7CiRsYW5nWydsaW5rX2xhYmVsJ10gPSAnTGluayBMYWJlbCc7CiRsYW5nWydsaW5rX2Rlc3RpbmF0aW9uJ10gPSAnTGluayBEZXN0aW5hdGlvbiBVUkwnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9zZXQnXSA9ICdDaGVja2VkIGJ5IERlZmF1bHQ/JzsKJGxhbmdbJ3RpdGxlXzI0X2hvdXInXSA9ICdVc2UgMjQtaG91ciBjbG9jaz8nOwokbGFuZ1sndGl0bGVfYmVmb3JlX25vb24nXSA9ICdBTSc7CiRsYW5nWyd0aXRsZV9hZnRlcl9ub29uJ10gPSAnUE0nOwokbGFuZ1sndGl0bGVfc21hcnR5X2V2YWwnXSA9ICdQcm9jZXNzIHNtYXJ0eSB0YWdzIHdpdGhpbiBmaWVsZD8nOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfcm93cyddID0gJ1Jvd3MgKG5vdGU6IHRoaXMgbWF5IGJlIG92ZXJyaWRkZW4gYnkgQ1NTKSc7CiRsYW5nWyd0aXRsZV90ZXh0YXJlYV9jb2xzJ10gPSAnQ29sdW1ucyAobm90ZTogdGhpcyBtYXkgYmUgb3ZlcnJpZGRlbiBieSBDU1MpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbWFpbiddID0gJ01haW4gRm9ybSBEZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfYmxhbmsnXSA9ICdEZWZhdWx0IHRvIGJsYW5rJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfYmxhbmtfaGVscCddID0gJ0RlZmF1bHQgdG8gYmxhbmsgKHVuY2hlY2sgdG8gZGVmYXVsdCB0byB0b2RheSYjMDM5O3MgZGF0ZSknOwokbGFuZ1sndGl0bGVfc2hvd191c2VybmFtZSddID0gJ0Rpc3BsYXkgVXNlciYjMDM5O3MgbG9naW4gbmFtZT8nOwokbGFuZ1sndGl0bGVfc2hvd191c2VyZmlyc3RuYW1lJ10gPSAnRGlzcGxheSBVc2VyJiMwMzk7cyBmaXJzdCBuYW1lPyc7CiRsYW5nWyd0aXRsZV9zaG93X3VzZXJsYXN0bmFtZSddID0gJ0Rpc3BsYXkgVXNlciYjMDM5O3MgbGFzdCBuYW1lPyc7CiRsYW5nWyd0aXRsZV9yZXN0cmljdF90b19ncm91cCddID0gJ1Jlc3RyaWN0IHVzZXIgbGlzdCB0byB1c2VycyBpbiBzcGVjaWZpZWQgZ3JvdXAnOwokbGFuZ1sndGl0bGVfZW5jcnlwdF9kYXRhYmFzZV9kYXRhJ10gPSAnRW5jcnlwdCBkYXRhIHN0b3JlZCBpbiBkYXRhYmFzZSc7CiRsYW5nWyd0aXRsZV9jcnlwdF9jZXJ0J10gPSAnQ2VydGlmaWNhdGUgZm9yIGVuY3J5cHRpbmcgZGF0YSc7CiRsYW5nWyd0aXRsZV9lbmNyeXB0aW9uX2tleWZpbGUnXSA9ICdQYXNzcGhyYXNlIG9yIHBhdGggdG8gZmlsZSBjb250YWluaW5nIHBhc3NwaHJhc2UgZm9yIHByaXZhdGUga2V5JzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRfc29ydGZpZWxkcyddID0gJ0hhc2ggc29ydCBmaWVsZHM/JzsKJGxhbmdbJ3RpdGxlX3ByaXZhdGVfa2V5J10gPSAnUHJpdmF0ZSBLZXkgdG8gdXNlIGZvciBlbmNyeXB0aW5nIGRhdGEnOwokbGFuZ1sndGl0bGVfZW5jcnlwdF9zb3J0ZmllbGRzX2hlbHAnXSA9ICdUaGlzIGhhc2hlcyB0aGUgc29ydCBmaWVsZHMsIGJ1dCBsZWF2ZXMgdGhlIGZpcnN0IGZldyBsZXR0ZXJzIHVuZW5jcnlwdGVkLiBDcnlwdG9ncmFwaGljYWxseSwgdGhpcyBjcmVhdGVzIGEgdnVsbmVyYWJpbGl0eSwgYnV0IGZvciBtb3N0IHVzZXJzIGl0IGlzIGFuIGFjY2VwdGFibGUgdHJhZGVvZmYgYmV0d2VlbiBzZWN1cml0eSBhbmQgdGhlIGFiaWxpdHkgdG8gc29ydCByZWNvcmRzLiBTb3J0aW5nIGJlY29tZXMgYXBwcm94aW1hdGUsIGJ1dCB3aWxsIHJlbWFpbiBwcmV0dHkgZ29vZC4gSWYgeW91IGRvIG5vdCB1c2UgdGhpcyBvcHRpb24sIHNvcnQgZmllbGRzIGFyZSBzdG9yZWQgaW4gcGxhaW50ZXh0Lic7CiRsYW5nWyd0aXRsZV9lbmNyeXB0aW9uX2Z1bmN0aW9ucyddID0gJ1N0b3JhZ2UgRW5jcnlwdGlvbiBVbmF2YWlsYWJsZSc7CiRsYW5nWyd0aXRsZV9pbnN0YWxsX2NyeXB0byddID0gJ1BsZWFzZSBpbnN0YWxsIHRoZSBPcGVuU1NMIG1vZHVsZSBvciBtY3J5cHQgc3VwcG9ydCBpZiB5b3Ugd291bGQgbGlrZSB0byBlbmFibGUgZGF0YWJhc2UgZW5jcnlwdGlvbi4nOwokbGFuZ1sndGl0bGVfbWxlX3ZlcnNpb24nXSA9ICdSdW4gaW4gTUxFIE1vZGUnOwokbGFuZ1sndGl0bGVfbWxlX3ZlcnNpb25fbG9uZyddID0gJ0NoYW5nZXMvc3VwcG9ydCBmb3IgQ01TTVMgTXVsdGktTGFuZ3VhZ2UgRWRpdGlvbiBmb3JrLiBEbyBub3QgY2hlY2sgdGhpcyBpZiB5b3UgYXJlIG5vdCBydW5uaW5nIHRoZSBNTEUgdmVyc2lvbi4nOwokbGFuZ1sndGl0bGVfZW5zdXJlX2NlcnRfa2V5X21hdGNoJ10gPSAnRW5zdXJlIHRoYXQgeW91IHNlbGVjdCB0aGUgcHJpdmF0ZSBrZXkgdGhhdCBpcyBhcHByb3ByaWF0ZSBmb3IgdGhlIGNlcnRpZmljYXRlIHlvdSBhcmUgdXNpbmcgZm9yIGVuY3J5cHRpb24hJzsKJGxhbmdbJ2Nob29zZV9jcnlwdCddID0gJ0VuY3J5cHRpb24gTGlicmFyeSc7CiRsYW5nWyd0aXRsZV9lbmNyeXB0X2RhdGFiYXNlX2xvbmcnXSA9ICdDaGVjayB0aGlzIHRvIGVuY3J5cHQgdGhlIHN0b3JlZCBkYXRhLiBUaGlzIG1ha2VzIGl0IG1vcmUgZGlmZmljdWx0IChidXQgbm90IGltcG9zc2libGUpIGZvciBoYWNrZXJzIHRvIHZpZXcgdGhlIGluZm9ybWF0aW9uLic7CiRsYW5nWydjaG9vc2VfY3J5cHRfbG9uZyddID0gJ1RoZSBvcHRpb25zIGJlbG93IG9ubHkgYXBwbHkgaWYgeW91IGFyZSB1c2luZyB0aGUgT3BlblNTTCBFbmNyeXB0aW9uIGxpYnJhcnknOwokbGFuZ1sndGl0bGVfY3J5cHRfbGliJ10gPSAnRW5jcnlwdGlvbiBMaWJyYXJ5JzsKJGxhbmdbJ29wZW5zc2wnXSA9ICdPcGVuU1NMIExpYnJhcnknOwokbGFuZ1snbWNyeXB0J10gPSAnUEhQIG1jcnlwdCBMaWJyYXJ5JzsKJGxhbmdbJ3RpdGxlX2ZldV9iaW5kaW5nJ10gPSAnRnJvbnRlbmQgVXNlciBiaW5kaW5nJzsKJGxhbmdbJ3RpdGxlX2luc3RhbGxfZmV1J10gPSAnUGxlYXNlIGluc3RhbGwgdGhlIEZyb250ZW5kIFVzZXIgbW9kdWxlIHRvIGNvbm5lY3QgYSBmb3JtIGFuZCBpdHMgZGF0YSB0byBhIHNwZWNpZmljIHVzZXInOwokbGFuZ1sndGl0bGVfZmV1X2JpbmRfaGVscCddID0gJ0NoZWNrIHRoaXMgdG8gbG9jayBmcm9udC1lbmQgYWNjZXNzIHRvIHRoaXMgZm9ybSYjMDM5O3MgZGF0YSB0byB0aGUgbG9nZ2VkLWluIGZyb250LWVuZCB1c2VyLic7CiRsYW5nWyd0aXRsZV9lbmNyeXB0aW9uJ10gPSAnRW5jcnlwdGlvbic7CiRsYW5nWyd0aXRsZV9leHBvcnRfZm9ybV90b191ZHQnXSA9ICdFeHBvcnQgZm9ybSByZWZlcmVuY2UgdG8gVURUIGFzICRwYXJhbXNbJiMwMzk7Rk9STSYjMDM5O10/JzsKJGxhbmdbJ3Jlc3RyaWN0ZWRfdG9fZ3JvdXAnXSA9ICdUaWsgJXMgZ3J1cMSXamUnOwokbGFuZ1sndGl0bGVfc2hvd190b191c2VyJ10gPSAnUm9keXRpIG5hdWRvdG9qxIU/JzsKJGxhbmdbJ2hlbHBfbGVhdmVlbXB0eSddID0gJyZTY2Fyb247aXMgbGF1a2FzIGdhbGkgYsWrdGkgdHUmc2Nhcm9uO8SNaWFzJzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVzX2Zvcl90ZW1wbGF0ZSddID0gJ1ZhcmlhYmxlcyBGb3IgVGVtcGxhdGUnOwokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX2NvbXB1dGF0aW9uJ10gPSAnVmFyaWFibGVzIEF2YWlsYWJsZSc7CiRsYW5nWydoZWxwX3BocF92YXJpYWJsZV9uYW1lJ10gPSAnUEhQIGtpbnRhbWFzaXMnOwokbGFuZ1snaGVscF9zdWJtaXNzaW9uX2RhdGUnXSA9ICdQYXRlaWtpbW8gZGF0YSc7CiRsYW5nWydoZWxwX3NlcnZlcl9uYW1lJ10gPSAnSsWrc8WzIHNlcnZlcmlzJzsKJGxhbmdbJ2hlbHBfc3ViX3NvdXJjZV9pcCddID0gJ0lQIGFkZHJlc3Mgb2YgcGVyc29uIHVzaW5nIGZvcm0nOwokbGFuZ1snaGVscF9zdWJfdXJsJ10gPSAnVVJMIG9mIHBhZ2UgY29udGFpbmluZyBmb3JtJzsKJGxhbmdbJ2hlbHBfZmJfdmVyc2lvbiddID0gJ0Zvcm1CdWlsZGVyIHZlcnNpamEnOwokbGFuZ1snaGVscF90YWInXSA9ICdUYWIgQ2hhcmFjdGVyJzsKJGxhbmdbJ2hlbHBfb3RoZXJfZmllbGRzJ10gPSAnT3RoZXIgZmllbGRzIHdpbGwgYmUgYXZhaWxhYmxlIGFzIHlvdSBhZGQgdGhlbSB0byB0aGUgZm9ybS4nOwokbGFuZ1snaGVscF9hcnJheV9maWVsZHMnXSA9ICdZZXQgYW5vdGhlciB3YXkgb2YgYWNjZXNzaW5nIGZpZWxkIHZhbHVlcyBpcyB2aWEgJGZpZWxkbmFtZV9vYmosICRhbGlhc19vYmosIG9yICRmbGRfI19vYmosIHdoZXJlIGVhY2ggZmllbGQgaXMgYW4gb2JqZWN0IGNvbnRhaW5naW5nOjxiciAvPjx0YWJsZT4NCjx0cj48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7Pm5hbWU8L3RkPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+RmllbGQgTmFtZTwvdGQ+PC90cj4NCjx0cj48dGQ+dHlwZTwvdGQ+PHRkPkZpZWxkIFR5cGU8L3RkPjwvdHI+DQo8dHI+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz5pZDwvdGQ+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz5JbnRlcm5hbCBGaWVsZCBJRDwvdGQ+PC90cj4NCjx0cj48dGQ+dmFsdWU8L3RkPjx0ZD5IdW1hbi1yZWFkYWJsZSBWYWx1ZTwvdGQ+PC90cj4NCjx0cj48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7PnZhbHVlQXJyYXk8L3RkPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+QXJyYXkgb2YgZmllbGQgdmFsdWUocyk8L3RkPjwvdHI+PC90YWJsZT48ZW0+ZS5nLjwvZW0+LCB5b3UgY291bGQgdXNlICZxdW90O3skZmxkXzFfb2JqLT5uYW1lfSA9IHskZmxkXzFfb2JqLT52YWx1ZX0nOwokbGFuZ1snaGVscF9kYXRlX2Zvcm1hdCddID0gJ1NlZSA8YSBocmVmPSJodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwIiB0YXJnZXQ9X05FVz50aGUgUEhQIE1hbnVhbDwvYT4gZm9yIGZvcm1hdHRpbmcgaGVscC4nOwokbGFuZ1snaGVscF92YXJpYWJsZV9uYW1lJ10gPSAnS2ludGFtYXNpcyc7CiRsYW5nWydoZWxwX2Zvcm1fZmllbGQnXSA9ICdGaWVsZCBSZXByZXNlbnRlZCc7CiRsYW5nWydsaW5rX2JhY2tfdG9fZm9ybSddID0gJyZsYXF1bzsgQmFjayB0byBGb3JtJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfdGVtcGxhdGUnXSA9ICdDcmVhdGUgU2FtcGxlIFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaHRtbF90ZW1wbGF0ZSddID0gJ0NyZWF0ZSBTYW1wbGUgSFRNTC1FbWFpbCBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2hlYWRlcl90ZW1wbGF0ZSddID0gJ0NyZWF0ZSBTYW1wbGUgSGVhZGVyIFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaGVhZGVyJ10gPSAnQ3JlYXRlIFNhbXBsZSBIZWFkZXInOwokbGFuZ1snaGVscF90YWJfc3ltYm9sJ10gPSAnYSB0YWIgY2hhcmFjdGVyJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfdGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSBmb3Igb25lIGxpbmUgb2Ygb3V0cHV0IGZpbGUnOwokbGFuZ1sndGl0bGVfZmlsZV9oZWFkZXInXSA9ICdUZW1wbGF0ZSBmb3IgdGhlIGhlYWRlciBvZiBvdXRwdXQgZmlsZSc7CiRsYW5nWyd0aXRsZV9jb25maXJtYXRpb25fdXJsJ10gPSAnVVJMIHRvIGNsaWNrIGZvciBmb3JtIGNvbmZpcm1hdGlvbic7CiRsYW5nWyd0aXRsZV92YWx1ZSddID0gJ1ZhbHVlIChzZWUgQWR2YW5jZWQgVGFiIGlmIHlvdSB1c2UgU21hcnR5IHRhZ3MpJzsKJGxhbmdbJ3RpdGxlX2RhdGVfZm9ybWF0J10gPSAnRGF0ZSBGb3JtYXQgKHN0YW5kYXJkIDxhIGhyZWY9Imh0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24uZGF0ZS5waHAiPlBIUCBEYXRlIEZvcm1hdHM8L2E+KSc7CiRsYW5nWyd0aXRsZV91c2Vfd3lzaXd5ZyddID0gJ1VzZSBXWVNJV1lHIGVkaXRvciBmb3IgdGV4dCBBcmVhPyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYWN0aW9ucyddID0gJ0Zvcm0gU3VibWlzc2lvbiBCZWhhdmlvcic7CiRsYW5nWyd0aXRsZV9zdWJtaXRfbGFiZWxzJ10gPSAnU3VibWlzc2lvbiBCdXR0b24gTGFiZWxzJzsKJGxhbmdbJ3RpdGxlX3NvcnRhYmxlX2ZpZWxkJ10gPSAnU29ydGFibGUgRmllbGQgIyVzJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9oZWxwJ10gPSAnVGhpcyBwYWdlIGxldHMgeW91IGN1c3RvbWl6ZSBGb3JtIFN1Ym1pc3Npb24uIEl0IGRvZXNuJiMwMzk7dCBkZXRlcm1pbmUgd2hhdCB0aGUgRm9ybSBCdWlsZGVyIGRvZXMgd2l0aCB0aGUgc3VibWl0dGVkIGRhdGEuIFlvdSBjYW4gc2V0IHRoYXQgdXAgYnkgYWRkaW5nICZxdW90O0Rpc3Bvc2l0aW9uJnF1b3Q7IGZpZWxkcyB0byB5b3VyIGZvcm0uJzsKJGxhbmdbJ3RpdGxlX3N0YXJ0X3llYXInXSA9ICdZZWFyIHJhbmdlIHN0YXJ0JzsKJGxhbmdbJ3RpdGxlX2VuZF95ZWFyJ10gPSAnWWVhciByYW5nZSBlbmQnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF95ZWFyJ10gPSAnTnVtYXR5dGkgbWV0YWknOwokbGFuZ1sndGl0bGVfZGVmYXVsdF95ZWFyX2hlbHAnXSA9ICcoU2V0IHRvIC0xIGZvciBkZWZhdWx0IHllYXIgdG8gYmUgdGhlIGN1cnJlbnQgeWVhciknOwokbGFuZ1sndGl0bGVfc3VibWl0X2FjdGlvbiddID0gJ0FmdGVyIGZvcm0gaXMgc3VibWl0dGVkJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9yZXNwb25zZSddID0gJ1Jlc3BvbnNlIHRvIGRpc3BsYXknOwokbGFuZ1snZGlzcGxheV90ZXh0J10gPSAnRGlzcGxheSAmcXVvdDtTdWJtaXNzaW9uIFRlbXBsYXRlJnF1b3Q7JzsKJGxhbmdbJ3JlZGlyZWN0X3RvX3BhZ2UnXSA9ICdOdWtyZWlwdGkgxK8gc3ZldGFpbsSXcyBwdXNsYXDEryc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfcmVzcG9uc2VfaGVscCddID0gJ1RoaXMgdGVtcGxhdGUgaXMgZm9yIGRpc3BsYXkgdG8gdGhlIHVzZXIgYWZ0ZXIgdGhlIGZvcm0gaXMgc3VibWl0dGVkLiBUaGlzIHRlbXBsYXRlIGRvZXMgbm90IGVmZmVjdCBlbWFpbHMgZ2VuZXJhdGVkIG9yIG90aGVyIGZvcm0gZGlzcG9zaXRpb25zIC0tIHlvdSBzZXQgdGhvc2UgdGVtcGxhdGVzICh3aGVyZSBhcHByb3ByaWF0ZSkgaW4gdGhlICZxdW90O2FkdmFuY2VkJnF1b3Q7IHRhYiBmb3IgdGhvc2UgZGlzcG9zaXRpb24gZmllbGRzLic7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9wYWdlJ10gPSAnRGVzdGluYXRpb24gUGFnZSc7CiRsYW5nWyd0aXRsZV9yZXF1aXJlX2ZpZWxkbmFtZXMnXSA9ICdSZXF1aXJlIEZpZWxkbmFtZXMnOwokbGFuZ1sndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzX2xvbmcnXSA9ICdSZXF1aXJlIGZpZWxkcyB0byBoYXZlIGEgbmFtZT8nOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXMnXSA9ICdSZXF1aXJlIFVuaXF1ZSBGaWVsZG5hbWVzJzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWVsZG5hbWVzX2xvbmcnXSA9ICdSZXF1aXJlIGZpZWxkcyB0byBoYXZlIHVuaXF1ZSBuYW1lcz8nOwokbGFuZ1sndGl0bGVfcmVvcmRlcl9mb3JtJ10gPSAnUmVvcmRlciBGaWVsZHMnOwokbGFuZ1sndGl0bGVfbG9hZF90ZW1wbGF0ZSddID0gJ0xvYWQgdGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfYWRkX2J1dHRvbl90ZXh0J10gPSAnQWRkIEJ1dHRvbiB0ZXh0JzsKJGxhbmdbJ3RpdGxlX2RlbF9idXR0b25fdGV4dCddID0gJ0RlbGV0ZSBCdXR0b24gdGV4dCc7CiRsYW5nWyd0aXRsZV9maWVsZF9oZWxwdGV4dCddID0gJ0hlbHAtdGV4dCB0byBkaXNwbGF5IHdpdGggdGhpcyBmaWVsZCc7CiRsYW5nWyd0aXRsZV9zdHJpbmdfb3JfbnVtYmVyX2V2YWwnXSA9ICdJbnRlcnByZXQgdmFyaWFibGVzIGFzIGJlaW5nIG51bWJlcnMgb3Igc3RyaW5ncyc7CiRsYW5nWyd0aXRsZV9vcmRlciddID0gJ0ludGVycHJldGF0aW9uIE9yZGVyJzsKJGxhbmdbJ3RpdGxlX29yZGVyX2hlbHAnXSA9ICdJZiBtb3JlIHRoYW4gb25lIENvbXB1dGVkIEZpZWxkIGV4aXN0cywgdGhleSB3aWxsIGJlIGNvbXB1dGVkIGZyb20gbG93ZXN0IG9yZGVyIG51bWJlciB0byBoaWdoZXN0IG9yZGVyIG51bWJlcic7CiRsYW5nWyd0aXRsZV9jb21wdXRlX3ZhbHVlJ10gPSAnVmFsdWUgdG8gY29tcHV0ZSc7CiRsYW5nWyd0aXRsZV9zdHJpbmcnXSA9ICdFaWx1dMSXJzsKJGxhbmdbJ3RpdGxlX251bWVyaWMnXSA9ICdTa2FpxI1pdXMnOwokbGFuZ1sndGl0bGVfaW5saW5lX2Zvcm0nXSA9ICdEaXNwbGF5IGZvcm0gaW5saW5lPyc7CiRsYW5nWyd0aXRsZV9pbmxpbmVfZm9ybV9oZWxwJ10gPSAnSW5saW5lIG1lYW5zIGFueSBmb3JtIGZvbGxvd3VwIHJlcGxhY2VzIHRoZSB7Y21zX21vZHVsZX0gdGFnLCBub24taW5saW5lIHJlcGxhY2VzIHRoZSB7Y29udGVudH0gdGFnLic7CiRsYW5nWyd0aXRsZV9maWVsZF9kZWZhdWx0X3ZhbHVlJ10gPSAnTnVtYXR5dGEgbGF1a28gdmVydMSXJzsKJGxhbmdbJ3RpdGxlX2NsZWFyX2RlZmF1bHQnXSA9ICdDbGVhciBkZWZhdWx0IG9uIGNsaWNrPyc7CiRsYW5nWyd0aXRsZV9jbGVhcl9kZWZhdWx0X2hlbHAnXSA9ICdDaGVjayB0aGlzIHRvIGNsZWFyIHRoZSBkZWZhdWx0IHZhbHVlIHdoZW4gdGhlIHVzZXIgY2xpY2tzIHRoaXMgZmllbGQuIFNpbmNlIHRoaXMgdXNlcyBhIGphdmFzY3JpcHQgc3RyaW5nIGNvbXBhcmUsIGl0IHdpbGwgZmFpbCBpZiB5b3UgcHV0IHNpbmdsZSBxdW90ZXMgaW4geW91ciBkZWZhdWx0IHRleHQuIE90aGVyIHVuLWphdmFzY3JpcHQtZnJpZW5kbHkgY2hhcmFjdGVycyBtYXkgYWxzbyBjYXVzZSBpdCB0byBmYWlsLic7CiRsYW5nWyd0aXRsZV9yZW1vdmVfZmlsZV9mcm9tX3NlcnZlciddID0gJ0RlbGV0ZSB1cGxvYWRlZCBmaWxlIGZyb20gc2VydmVyIGFmdGVyIHByb2Nlc3NpbmcgKGVtYWlsIGRpc3Bvc2l0aW9ucyknOwokbGFuZ1sndGl0bGVfZmllbGRfamF2YXNjcmlwdCddID0gJ0phdmFzY3JpcHQgZm9yIGZpZWxkJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2phdmFzY3JpcHRfbG9uZyddID0gJ01ha2UgdGhpcyB0aGUgY29tcGxldGUgSmF2YXNjcmlwdCBjYWxsLCBpbmNsdWRpbmcgdGhlIGV2ZW50IHlvdSB3YW50IHRvIHRyYXAsIGUuZy4sIG9uY2xpY2s9JnF1b3Q7eW91cmZuKCkmcXVvdDsnOwokbGFuZ1sndGl0bGVfc3VibWl0X2phdmFzY3JpcHQnXSA9ICdGb3JtIFN1Ym1pc3Npb24gSmF2YXNjcmlwdCc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfamF2YXNjcmlwdF9sb25nJ10gPSAnTWFrZSB0aGlzIHRoZSBjb21wbGV0ZSBKYXZhc2NyaXB0IGNhbGwsIGluY2x1ZGluZyB0aGUgZXZlbnQgeW91IHdhbnQgdG8gdHJhcCwgZS5nLiwgb25jbGljaz0mcXVvdDt5b3VyZm4oKSZxdW90Oy48YnIgLz5UaGlzIHdpbGwgcHJvYmFibHkgbm90IHdvcmsgd2VsbCBpZiB5b3UgdXNlIHRoZSAmcXVvdDtzYWZldHkgc2NyaXB0JnF1b3Q7IG9wdGlvbiBhYm92ZS4nOwokbGFuZ1snZW1haWxfZnJvbV9hZGRyX2hlbHAnXSA9ICdEbyBub3QganVzdCBwaWNrIGEgcmFuZG9tIGFkZHJlc3MgaGVyZSAtLSBtYW55IElTUHMgd2lsbDxiciAvPm5vdCBkZWxpdmVyIHRoZSBtYWlsIGlmIHlvdSBhcmUgdXNpbmcgYSBkaWZmZXJlbnQgZG9tYWluIG5hbWUgdGhhbiB5b3VyIGFjdHVhbDxiciAvPmhvc3QgbmFtZSAoaS5lLiwgdXNlIHNvbWV0aGluZyBsaWtlIG5hbWVAJXMpJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9hZHZhbmNlZCddID0gJ1JlaWtpYSBkYXVnaWF1IGxhdWvFsyB0aXDFsz8gJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9iYXNpYyddID0gJ1BlcmRhdWcgbGF1a8WzIHRpcMWzPyAnOwokbGFuZ1sndGl0bGVfc3dpdGNoX2FkdmFuY2VkX2xpbmsnXSA9ICdQZXJqdW5ndGkgxK8gaSZzY2Fyb247cGzEl3N0aW7EmSBtb2TEhSc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYmFzaWNfbGluayddID0gJ1Blcmp1bmd0aSDEryBwYXByYXN0xIUgbW9kxIUnOwokbGFuZ1sndGl0bGVfZmlsZV9yb290J10gPSAnRGlyZWN0b3J5IHRvIHNhdmUgZmlsZSBpbic7CiRsYW5nWyd0aXRsZV9maWxlX3Jvb3RfaGVscCddID0gJ1RoaXMgbmVlZHMgdG8gYmUgYSBkaXJlY3RvcnkgdGhhdCB5b3VyIHdlYiBzZXJ2ZXIgaGFzIHBlcm1pc3Npb25zIHRvIHdyaXRlIGluLjxiciAvPkNobW9kIGl0IDc3NyBpZiB5b3UgaGF2ZSBwcm9ibGVtcy9kb3VidHMuPGJyIC8+QWxzbywgY2hlY2sgdG8gc2VlIHRoYXQgeW91IGRvIG5vdCBoYXZlIFBIUCBkaXJlY3RvcnkgcmVzdHJpY3Rpb25zLic7CiRsYW5nWyd0aXRsZV9uZXdsaW5lX3JlcGxhY2VtZW50J10gPSAnTmV3bGluZS9DYXJyaWFnZSBSZXR1cm4gcmVwbGFjZW1lbnQgY2hhcmFjdGVyJzsKJGxhbmdbJ3RpdGxlX25ld2xpbmVfcmVwbGFjZW1lbnRfaGVscCddID0gJ0xlYXZlIGJsYW5rIHRvIGFsbG93IG5ld2xpbmVzIGFuZCBjYXJyaWFnZSByZXR1cm5zIGluIG91dHB1dCc7CiRsYW5nWyd0aXRsZV9zZW5kX3VzZXJjb3B5J10gPSAnU2VuZCBVc2VyIGEgQ29weSBvZiBTdWJtaXNzaW9uPyc7CiRsYW5nWyd0aXRsZV9zZW5kX3VzZXJjb3B5X2xhYmVsJ10gPSAnTGFiZWwgZm9yIENoZWNrYm94IChpZiB1c2VyIGNob2ljZSknOwokbGFuZ1sndGl0bGVfc2VuZF9tZV9hX2NvcHknXSA9ICdTacWzc3RpIGZvcm1vcyBrb3BpasSFIG1hbic7CiRsYW5nWyd0aXRsZV9hbGxvd19zdWJqZWN0X292ZXJyaWRlJ10gPSAnQWxsb3cgc3ViamVjdCB0byBiZSBvdmVycmlkZGVuPyc7CiRsYW5nWyd0aXRsZV9hbGxvd19zdWJqZWN0X292ZXJyaWRlX2xvbmcnXSA9ICdBbGxvdyAmIzAzOTtFbWFpbCAmcXVvdDtTdWJqZWN0JnF1b3Q7IEZpZWxkcyYjMDM5OyB0byBvdmVycmlkZSB0aGUgc3ViamVjdCBzcGVjaWZpZWQgaW4gdGhlIHB1bGxkb3duLic7CiRsYW5nWyd0aXRsZV9kaXNwbGF5X2xlbmd0aCddID0gJ0Rpc3BsYXkgbGVuZ3RoJzsKJGxhbmdbJ3RpdGxlX21pbmltdW1fbGVuZ3RoJ10gPSAnTWluaW11bSByZXNwb25zZSBsZW5ndGgnOwokbGFuZ1sndGl0bGVfaGlkZSddID0gJ0hpZGUgaW5wdXQnOwokbGFuZ1sndGl0bGVfaGlkZV9oZWxwJ10gPSAnU2hvdyBzeW1ib2xzIHJhdGhlciBwbGFpbiB0ZXh0IHdoZW4gdXNlciBlbnRlcnMgcGFzc3dvcmQ/JzsKJGxhbmdbJ3Bhc3N3b3JkX2RvZXNfbm90X21hdGNoJ10gPSAnUGFzc3dvcmQgZG9lcyBub3QgbWF0Y2ggJXMnOwokbGFuZ1snJ10gPSAnJzsKJGxhbmdbJ29wdGlvbl9uZXZlciddID0gJ05pZWthZGEnOwokbGFuZ1snb3B0aW9uX3VzZXJfY2hvaWNlJ10gPSAnR2l2ZSB1c2VyIGEgY2hvaWNlIChjaGVja2JveCknOwokbGFuZ1snb3B0aW9uX2Fsd2F5cyddID0gJ1Zpc2FkYSc7CiRsYW5nWydlcnJvcl91c2VydGFnX2Rpc3Bvc2l0aW9uJ10gPSAnVXNlciBkZWZpbmVkIHRhZyByZXR1cm5lZCBhbiBlcnJvcic7CiRsYW5nWydlcnJvcl9jYXRhbG9nZXJfbW9kdWxlX25vdF9hdmFpbGFibGUnXSA9ICc8c3Ryb25nPkNhdGFsb2dlciBtb2R1bGUgZG9lcyBub3Qgc2VlbSB0byBiZSBpbnN0YWxsZWQvYWN0aXZlLjwvc3Ryb25nPic7CiRsYW5nWyd3YXJuaW5nJ10gPSAnRMSWTUVTSU8hJzsKJGxhbmdbJ2RlZmF1bHRfdGVtcGxhdGUnXSA9ICdOdW1hdHl0YXMgJnNjYXJvbjthYmxvbmFzJzsKJGxhbmdbJ3RhYmxlX2xlZnRfdGVtcGxhdGUnXSA9ICdUYWJsZSBUZW1wbGF0ZSwgVGl0bGVzIG9uIGxlZnQnOwokbGFuZ1sndGFibGVfdG9wX3RlbXBsYXRlJ10gPSAnVGFibGUgVGVtcGxhdGUsIFRpdGxlIG9uIHRvcCc7CiRsYW5nWydmb3JtX3RlbXBsYXRlX25hbWUnXSA9ICcmU2Nhcm9uO2FibG9uYXMgaSZzY2Fyb247ICVzJzsKJGxhbmdbJ3RlbXBsYXRlX2FyZV95b3Vfc3VyZSddID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBvdmVyd3JpdGUgeW91ciB0ZW1wbGF0ZSB3aXRoIHRoZSBzZWxlY3RlZCB0ZW1wbGF0ZT8gKEV2ZW4gaWYgeW91IHNheSBPSywgeW91IHdpbGwgc3RpbGwgbmVlZCB0byBzYXZlIHRoZSBjaGFuZ2UpJzsKJGxhbmdbJ3RpdGxlX2JhZF9mdW5jdGlvbiddID0gJ0Vycm9yIHdoZW4gY29tcHV0aW5nICZxdW90OyVzJnF1b3Q7Lic7CiRsYW5nWydub19yZWZlcnJlcl9pbmZvJ10gPSAnTm8gSFRUUF9SRUZFUkVSIGluZm8gYXZhaWxhYmxlIChwcm9iYWJseSBkdWUgdG8gdXNlIG9mIFVzZXIgRW1haWwgVmFsaWRhdGlvbiknOwokbGFuZ1sndmFsaWRhdGlvbl9wYXJhbV9lcnJvciddID0gJ1ZhbGlkYXRpb24gUGFyYW1ldGVyIEVycm9yLiBQbGVhc2UgbWFrZSBzdXJlIHlvdSBjb3B5IHRoZSBVUkwgZnJvbSB5b3VyIGVtYWlsIGNvcnJlY3RseSEnOwokbGFuZ1sndmFsaWRhdGlvbl9yZXNwb25zZV9lcnJvciddID0gJ1ZhbGlkYXRpb24gUmVwc29uc2UgRXJyb3IuIFBsZWFzZSBtYWtlIHN1cmUgeW91IGNvcHkgdGhlIFVSTCBmcm9tIHlvdXIgZW1haWwgY29ycmVjdGx5ISc7CiRsYW5nWyd2YWxpZGF0aW9uX25vX2ZpZWxkX2Vycm9yJ10gPSAnVmFsaWRhdGlvbiBSZXBzb25zZSBFcnJvci4gTm8gZW1haWwgdmFsaWRhdGlvbiBmaWVsZCBpbiB0aGlzIGZvcm0hJzsKJGxhbmdbJ3VwZ3JhZGUwM3RvMDQnXSA9ICdGb3JtIFRlbXBsYXRlIHdhcyB1cGRhdGVkIGF1dG9tYXRpY2FsbHkgYXMgcGFydCBvZiB0aGUgdmVyc2lvbiAwLjMgdG8gdmVyc2lvbiAwLjQgdXBncmFkZS4gWW91IG1heSBuZWVkIHRvIG1ha2Ugc29tZSBmaXhlcy4gSWYgeW91JiMwMzk7cmUgdXNpbmcgdGhlIGRlZmF1bHQgZm9ybSwgc2ltcGx5IHJlcGxhY2UgdGhpcyB0ZW1wbGF0ZSB3aXRoICZxdW90O2RlZmF1bHQmcXVvdDsgdXNpbmcgdGhlIHB1bGxkb3duIGFib3ZlLic7CiRsYW5nWydhZG1pbmRlc2MnXSA9ICdBZGQsIGVkaXQgYW5kIG1hbmFnZSBpbnRlcmFjdGl2ZSBGb3Jtcyc7CiRsYW5nWydvcGVyYXRvcnNfaGVscCddID0gJ0lmIHlvdSB1c2UgU3RyaW5nIGV2YWx1YXRpb24sIHRoZSBvbmx5IG9wZXJhdGlvbiBhdmFpbGFibGUgaXMgY29uY2F0ZW5hdGlvbiAoKyksIHdoaWxlIGlmIHlvdSB1c2UgTnVtYmVyIGV2YWx1YXRpb24geW91IGhhdmUgYmFzaWMsIHZlcnkgc2ltcGxlIG1hdGggKCwgKywgLSwgKiwgLywgKS4nOwokbGFuZ1snZGF0ZV9qYW51YXJ5J10gPSAnU2F1c2lzJzsKJGxhbmdbJ2RhdGVfZmVicnVhcnknXSA9ICdWYXNhcmlzJzsKJGxhbmdbJ2RhdGVfbWFyY2gnXSA9ICdLb3Zhcyc7CiRsYW5nWydkYXRlX2FwcmlsJ10gPSAnQmFsYW5kaXMnOwokbGFuZ1snZGF0ZV9tYXknXSA9ICdHZWd1xb7Elyc7CiRsYW5nWydkYXRlX2p1bmUnXSA9ICdCaXLFvmVsaXMnOwokbGFuZ1snZGF0ZV9qdWx5J10gPSAnTGllcGEnOwokbGFuZ1snZGF0ZV9hdWd1c3QnXSA9ICdSdWdwasWrdGlzJzsKJGxhbmdbJ2RhdGVfc2VwdGVtYmVyJ10gPSAnUnVnc8SXamlzJzsKJGxhbmdbJ2RhdGVfb2N0b2JlciddID0gJ1NwYWxpcyc7CiRsYW5nWydkYXRlX25vdmVtYmVyJ10gPSAnTGFwa3JpdGlzJzsKJGxhbmdbJ2RhdGVfZGVjZW1iZXInXSA9ICdHcnVvZGlzJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3InXSA9ICdEZWphISDErnZ5a28ga2xhaWRhIHBhdGVpa2lhbnQgasWrc8WzIGF0c2FreW11cy4nOwokbGFuZ1snc3VibWl0X2Vycm9yJ10gPSAnRm9ybUJ1aWxkZXIgc3VibWl0IGVycm9yOiAlcyc7CiRsYW5nWyd1cGxvYWRzX2Vycm9yJ10gPSAnRXJyb3IgY29tbWl0dGluZyBmaWxlIHRvIHRoZSB1cGxvYWRzIG1vZHVsZTogJXMnOwokbGFuZ1snbm91cGxvYWRzX2Vycm9yJ10gPSAnQ291bGQgbm90IGZpbmQgdGhlIHVwbG9hZHMgbW9kdWxlJzsKJGxhbmdbJ3VwbG9hZF9hdHRhY2hfZXJyb3InXSA9ICdVcGxvYWQvQXR0YWNobWVudCBlcnJvciBvbiBmaWxlICVzICh0bXBfbmFtZTogJXMsIG9mIHR5cGUgJXMpJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3JfZmlsZV9sb2NrJ10gPSAnRXJyb3IuIFVuYWJsZSB0byBvYnRhaW4gbG9jayBmb3IgZmlsZS4nOwokbGFuZ1sndW5jaGVja2VkX2J5X2RlZmF1bHQnXSA9ICdEZWZhdWx0OiB1bmNoZWNrZWQnOwokbGFuZ1snY2hlY2tlZF9ieV9kZWZhdWx0J10gPSAnRGVmYXVsdDogY2hlY2tlZCc7CiRsYW5nWydlbWFpbF9kZWZhdWx0X3RlbXBsYXRlJ10gPSAnRm9ybUJ1aWxkZXIgU3VibWlzc2lvbic7CiRsYW5nWydlbWFpbF90ZW1wbGF0ZV9ub3Rfc2V0J10gPSAnPGJyLz5FbWFpbCBUZW1wbGF0ZSBub3QgeWV0IHNldCEnOwokbGFuZ1snbWlzc2luZ19jbXNfbWFpbGVyJ10gPSAnRm9ybUJ1aWxkZXI6IENhbm5vdCBmaW5kIHJlcXVpcmVkIG1vZHVsZSBDTVNNYWlsZXIhJzsKJGxhbmdbJ3VzZXJfYXBwcm92ZWRfc3VibWlzc2lvbiddID0gJ1VzZXIgYXBwcm92ZWQgc3VibWlzc2lvbiAlcyBmcm9tICVzJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXSA9ICdFdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddID0gJ0V2ZW50IHRyaWdnZXJlZCBpZiB0aGVyZSBpcyBhbiBlcnJvciB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXSA9ICdFdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgZGlzcGxheWVkJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXSA9ICc8cD5FdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkLjwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBUaGUgZm9ybSBuYW1lIChzdHJpbmcpPC9saT4NCjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gVGhlIGludGVybmFsIGZvcm0gaWQgKGludCk8L2xpPg0KPGxpPjxlbT52YWx1ZV88bmFtZT48L2VtPiAtIFN1cHBseSBhIGRlZmF1bHQgdmFsdWUgdG8gYSBmaWVsZCB3aXRoIHRoZSBzcGVjaWZpZWQgbmFtZS48L2xpPg0KPC91bD4gJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddID0gJzxwPkV2ZW50IHRyaWdnZXJlZCBpZiB0aGVyZSBpcyBhbiBlcnJvciB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQ8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gVGhlIGZvcm0gbmFtZSAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4NCjxsaT48ZW0+ZXJyb3I8L2VtPiAtIEEgbGlzdCBvZiBhbGwga25vd24gZXJyb3JzIChzdHJpbmcpPC9saT4NCjwvdWw+ICc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtRGlzcGxheSddID0gJzxwPkV2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBkaXNwbGF5ZWQ8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gVGhlIGZvcm0gbmFtZSAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4NCjwvdWw+ICc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfcmVzcG9uc2VfaWQnXSA9ICdSZXNwb25zZSBJRC4gVXNlZCBieSBGb3JtQnJvd3Nlcic7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfcGFzc2VkX2Zyb21fdGFnJ10gPSAnRGVmYXVsdCBmaWVsZCB2YWx1ZXM7IHNlZSBtb2R1bGUgaGVscCc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZmllbGRfaWQnXSA9ICdGaWVsZCBJRCBmb3IgaW50ZXJuYWwgb3BlcmF0aW9ucyc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZm9ybV9uYW1lJ10gPSAnRm9ybW9zIHBhdmFkaW5pbWFzJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19mb3JtX2lkJ10gPSAnRm9ybSBJRCBmb3IgaW50ZXJuYWwgb3BlcmF0aW9ucyc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZ2VuZXJhbCddID0gJ0dlbmVyYWwgcGFyYW1ldGVycyBmb3IgaW50ZXJuYWwgb3BlcmF0aW9ucyc7CiRsYW5nWyd0ZW1wbGF0ZV92YXJpYWJsZV9oZWxwJ10gPSAnPGgzPkZvcm0gVGVtcGxhdGUgVmFyaWFibGVzPC9oMz4NCjxwPllvdSBjYW4gZWRpdCBpdCB0byBtYWtlIHlvdXIgZm9ybSBsYXlvdXQgbG9vayBhbnkgd2F5IHlvdSYjMDM5O2QgbGlrZS4NCiAgIFRvIG1ha2UgdGhlIGZvcm0gd29yaywgeW91JiMwMzk7bGwgbmVlZCB0byBhbHdheXMgaW5jbHVkZSB0aGUgeyRmYl9oaWRkZW59IGFuZCB7JHN1Ym1pdH0NCiAgIHRhZ3MuPC9wPg0KDQo8cD5Zb3UgY2FuIGFjY2VzcyB5b3VyIGZvcm0gZmllbGRzIGVpdGhlciB1c2luZyB0aGUgJGZpZWxkcyBhcnJheSBvciBieSBkaXJlY3RseSBhY2Nlc3NpbmcgZmllbGRzIGJ5IHRoZWlyIG5hbWVzIChlLmcuLCB7JG15ZmllbGQtPmlucHV0fSApPC9wPg0KDQoNCjxwPkVhY2ggZmllbGQgaGFzIHRoZSBmb2xsb3dpbmcgYXR0cmlidXRlczo8L3A+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+DQo8cD5CeSBjb3B5aW5nIHRoaXMgdGFnIGludG8gdGhlIGNvbnRlbnQgb2YgYSBwYWdlLCBvciBpbnRvIGEgdGVtcGxhdGUsIHdpbGwgY2F1c2UgdGhhdCBmb3JtIHRvIGJlIGRpc3BsYXllZC4NCkluIHRoZW9yeSwgeW91IGNhbiBoYXZlIG11bHRpcGxlIGZvcm1zIG9uIGEgcGFnZSBpZiB5b3UgcmVhbGx5IHdhbnQgdG8uIEJlIGNhcmVmdWwgd2hlbiBwYXN0aW5nIHRoZSB0YWcNCmludG8gYSBwYWdlJiMwMzk7cyBjb250ZW50IGlmIHlvdSB1c2UgYSBXWVNJV1lHIGVkaXRvciBzdWNoIGFzIFRpbnlNQ0Ugb3IgSFRNTEFyZWEuIFRoZXNlIGVkaXRvcnMgbWF5IHN0ZWFsdGhpbHkNCmNoYW5nZSB0aGUgcXVvdGUgbWFya3MgKCZxdW90OykgaW50byBIVE1MIGVudGl0aWVzICgmYW1wO3F1b3Q7KSwgYW5kIHRoZSBmb3JtcyB3aWxsIG5vdCBzaG93IHVwLiBUcnkgdXNpbmcNCnNpbmdsZSBxdW90ZXMgKCYjMDM5Oykgb3IgZWRpdGluZyB0aGUgSFRNTCBkaXJlY3RseS4NCg0KPGgzPldvcmtpbmcgd2l0aCBGb3JtczwvaDM+DQo8cD5CeSBjbGlja2luZyBvbiBhIEZvcm0mIzAzOTtzIG5hbWUsIHlvdSBlbnRlciB0aGUgRm9ybSBFZGl0IHBhZ2UuIFRoZXJlIGFyZSBzZXZlcmFsIHRhYnMsIHdoaWNoIGFyZSBkZXNjcmliZWQgYmVsb3c6PC9wPg0KPGg0Pk1haW48L2g0Pg0KPHA+VGhpcyBpcyB0aGUgbWFpbiBwbGFjZSB5b3UmIzAzOTtsbCB3b3JrIG9uIHlvdXIgZm9ybS4gSGVyZSwgeW91IGdpdmUgaXQgYSBuYW1lLCBhbiBhbGlhcyAod2hpY2ggaXMgdXNlZCB0byBpZGVudGlmeSBpdCBmb3IgcGxhY2luZyBpdCBpbiBhIHBhZ2Ugb3IgdGVtcGxhdGUpLCBhbmQsIG9wdGlvbmFsbHksIGEgQ1NTIGNsYXNzIHdpdGggd2hpY2ggdG8gd3JhcCB0aGUgd2hvbGUgdGhpbmcuIFlvdSBhbHNvIHNlbGVjdCB0aGUgZGlzcGxheSB0eXBlLiBZb3VyIGNob2ljZXMgYXJlOjwvcD4NCjx1bD4NCjxsaT5UYWJsZS9DU1MuIFRoZSBmb3JtIGlzIGNyZWF0ZWQgdXNpbmcgSFRNTCB0YWJsZXMuIElmIHlvdSBkb24mIzAzOTt0IGtub3cgd2hhdCB0byBjaG9vc2UsIHRoaXMgaXMgdGhlIGVhc2llc3Qgb3B0aW9uLCBhbmQgd2lsbCBwcm9iYWJseSBkbyBtb3N0IG9mIHdoYXQgeW91IHdhbnQuIFlvdSBjYW4gc3RpbGwgdXNlIENTUyB0byBzdHlsZSB0aGUgZm9ybSBpZiB5b3Ugd2FudC48L2xpPg0KPGxpPlB1cmUgQ1NTLiBUaGUgZm9ybSBpcyBjcmVhdGVkLCB3aXRoIGFsbCB0aGUgZmllbGRzIHdyYXBwZWQgaW4gPGRpdj4gdGFncy4gWW91IGNhbiB0aGVuIHN0eWxlIHRoZSBmb3JtIGFzIHlvdSBzZWUgZml0LjwvbGk+DQo8bGk+Q3VzdG9tIFRlbXBsYXRlLiBCYXNpY2FsbHksIHlvdSBnZXQgYSBzbWFydHkgdGVtcGxhdGUsIGEgYnVuY2ggb2YgdmFyaWFibGVzLCBhbmQgeW91JiMwMzk7cmUgb24geW91ciBvd24uIFlvdSBoYXZlIHRoZSBwb3dlciB0byBjcmVhdGUgd2hhdGV2ZXIgeW91IHdhbnQuPC9saT4NCjwvdWw+DQo8cD5CZWxvdyB0aGlzLCBpZiB5b3UgaGF2ZSBpdCBlbmFibGVkLCBpcyB0aGUgJnF1b3Q7ZmFzdCBmaWVsZCBhZGRlciZxdW90OyBwdWxsZG93biwgdGhhdCBsZXRzIHlvdSBxdWlja2x5IGFkZCBhIGZpZWxkIHRvIHRoZSBlbmQgb2YgeW91ciBmb3JtIGJ5IHNlbGVjdGluZyB0aGUgZmllbGQgdHlwZS48L3A+DQo8cD5CZWxvdyB0aGlzIGlzIHRoZSBsaXN0IG9mIGZpZWxkcyB0aGF0IG1ha2UgdXAgeW91ciBmb3JtLiBNb3JlIGRldGFpbCBvbiB0aGlzIGlzIGRlc2NyaWJlZCBiZWxvdy48L3A+DQo8aDQ+Rm9ybSBTZXR0aW5nczwvaDQ+DQo8cD5Gb3JtIFNldHRpbmdzIGFsbG93cyB5b3UgdG8gY3VzdG9taXplIGEgbG90IG9mIHRoZSBtZXNzYWdlcyBhbmQgdGV4dCBpbiB0aGUgY29udHJvbHMgZm9yIHlvdXIgZm9ybS4gSXQgYWxzbyBhbGxvd3MgeW91IHRvIHBpY2sgYSBwYWdlIHRvIHJlZGlyZWN0IHVzZXJzIHRvIGFmdGVyIGEgc3VjY2Vzc2Z1bCBmb3JtIHN1Ym1pc3Npb24uPC9wPg0KPGg0PlRhYmxlLWJhc2VkIExheW91dCBPcHRpb25zPC9oND4NCjxwPlRhYmxlLWxheW91dHMgaGF2ZSBnb3R0ZW4gc2ltcGxlciwgc28geW91ciBvbmx5IG9wdGlvbiBoZXJlIGlzIHRoZSBwb3NpdGlvbiBvZiB0aGUgZmllbGQgbmFtZXMgcmVsYXRpdmUgdG8gdGhlIGlucHV0cy4gSWYgeW91JiMwMzk7cmUgdXNpbmcgYSBUYWJsZS9DU1MgbGF5b3V0LCB5b3UgY2FuIHVzZSB0aGlzIHRhYiB0byBzZWxlY3QgdGhlIGZpZWxkIG5hbWUgcG9zaXRpb25zLjwvcD4NCjxoND5UZW1wbGF0ZSBMYXlvdXQgT3B0aW9uczwvaDQ+DQo8cD5UaGlzIGlzIHdoZXJlIHlvdSBkbyB5b3VyIGN1c3RvbWl6YXRpb24gd29yayBpZiB5b3VyIGZvcm0gdXNlcyBhIEN1c3RvbSBUZW1wbGF0ZS48L3A+DQo8cD5UaGUgZm9ybSBzaG91bGQgZGVmYXVsdCB0byBhIGEgQ3VzdG9tIHRlbXBsYXRlIHRoYXQgZG9jdW1lbnRzIHRoZSBzbWFydHkgdGFncyBhdmFpbGFibGUgdG8geW91LiBVbmxlc3MgeW91JiMwMzk7cmUgYSBzbWFydHkgZXhwZXJ0LCB5b3UgcHJvYmFibHkgZG9uJiMwMzk7dCB3YW50IHRvIG1lc3MgYXJvdW5kIHdpdGggdGhpcy4gSWYgeW91IGFyZSBhIHNtYXJ0eSBleHBlcnQsIHRoaXMgaXMgd2hlcmUgeW91IGNhbiB1bmxlYXNoIHlvdXIgbWFnaWMuPC9wPg0KPGgzPkFkZGluZyBGaWVsZHMgdG8geW91ciBGb3JtPC9oMz4NCjxwPlRoZSB0eXBlcyBvZiBmaWVsZHMgdGhhdCBhcmUgY3VycmVudGx5IHN1cHBvcnRlZCBmaXQgaW50byBmb3VyIGdyb3Vwczogc3RhbmRhcmQgaW5wdXQgZmllbGRzLCBkaXNwbGF5IGNvbnRyb2wgZmllbGRzLCBlbWFpbC1zcGVjaWZpYyBmaWVsZHMsIGFuZCBmb3JtIHJlc3VsdCBoYW5kbGluZyBmaWVsZHMgKGFsc28gY2FsbGVkIEZvcm0gRGlzcG9zaXRpb25zIGluIHBsYWNlcyk6PC9wPg0KPHVsPg0KPGxpPlN0YW5kYXJkIElucHV0IEZpZWxkcyAtIHRoZXNlIGFyZSBpbnB1dHMgdGhhdCBhbGxvdyBlbnRyeSBvZiB0eXBpY2FsIGZvcm0gZWxlbWVudHM7IHRleHQgaW5wdXRzLCByYWRpbyBidXR0b25zLCBldGMuPC9saT4NCjxsaT5EaXNwbGF5IENvbnRyb2wgRmllbGRzIC0gdGhlc2UgaW5wdXQgY29udHJvbCBob3cgdGhlIHVzZXIgd2lsbCBzZWUgdGhlIGRpc3BsYXkgb2YgdGhlIGZvcm07IHBhZ2UgYnJlYWtzLCBzdGF0aWMgdGV4dCwgZXRjLjwvbGk+DQo8bGk+RW1haWwtc3BlY2lmaWMgRmllbGRzIC0gc29tZSBmb3JtcyBnZW5lcmF0ZSBlbWFpbCwgYW5kIGVtYWlsLXNwZWNpZmljIGZpZWxkcyBjYW4gYWx0ZXIgYXR0cmlidXRlcyBvZiB0aGUgZW1haWxzIHNlbnQuPC9saT4NCjxsaT5Gb3JtIERpc3Bvc2l0aW9ucyAtIFRoZXNlIGRldGVybWluZSB3aGF0IGhhcHBlbnMgd2hlbiB0aGUgdXNlcg0Kc3VibWl0cyB0aGUgZm9ybTsgZm9yIGVhY2ggcmVzdWx0IGhhbmRsaW5nIGZpZWxkLCBzb21lIG1ldGhvZCBvZiB0cmFuc21pdHRpbmcsIHNhdmluZywgb3IgZW1haWxpbmcgdGhlDQpmb3JtIGNvbnRlbnRzIHRha2VzIHBsYWNlLiBBIGZvcm0gbWF5IGhhdmUgbXVsdGlwbGUgZm9ybSBkaXNwb3NpdGlvbnMuPC9saT4NCjwvdWw+DQo8cD5Gb3JtIGZpZWxkcyBhcmUgYXNzaWduZWQgbmFtZXMuIFRoZXNlIG5hbWVzIGlkZW50aWZ5IHRoZSBmaWVsZCwgbm90IG9ubHkgb24gdGhlIHNjcmVlbiBhcyBsYWJlbHMgZm9yIHRoZSB1c2VyLA0KYnV0IGluIHRoZSBkYXRhIHdoZW4gaXQmIzAzOTtzIHN1Ym1pdHRlZCBzbyB5b3Uga25vdyB3aGF0IHRoZSB1c2VyIGlzIHJlc3BvbmRpbmcgdG8uIFBocmFzaW5nIHRoZSBuYW1lIGxpa2UgYSBxdWVzdGlvbg0KaXMgYSBoYW5keSB3YXkgb2YgbWFraW5nIGl0IGNsZWFyIHRvIHRoZSB1c2VyIHdoYXQgaXMgZXhwZWN0ZWQuIFNpbWlsYXJseSwgbWFueSBmaWVsZHMgaGF2ZSBib3RoIE5hbWVzIGFuZCBWYWx1ZXMuDQpUaGUgTmFtZXMgYXJlIHdoYXQgZ2V0cyBzaG93biB0byB0aGUgdXNlcjsgdGhlIFZhbHVlIGlzIHdoYXQgZ2V0cyBzYXZlZCBvciB0cmFuc21pdHRlZCB3aGVuIHRoZSB1c2VyIHN1Ym1pdHMNCnRoZSBmb3JtLiBUaGUgVmFsdWVzIGFyZSBuZXZlciBzZWVuIGJ5IHRoZSB1c2VyLCBub3IgYXJlIHRoZXkgdmlzaWJsZSBpbiB0aGUgSFRNTCwgc28gaXQmIzAzOTtzIHNhZmUgdG8gdXNlIGZvcg0KZW1haWwgYWRkcmVzc2VzIGFuZCBzdWNoLjwvcD4NCjxwPlNvbWUgZmllbGRzIGNhbiBoYXZlIG11bHRpcGxlIHZhbHVlcywgb3IgbXVsdGlwbGUgbmFtZS92YWx1ZSBwYWlycy4gV2hlbiB5b3UgZmlyc3QgY3JlYXRlIHN1Y2ggYSBmaWVsZCwNCnRoZXJlIG1heSBub3QgYmUgc3VmZmljaWVudCBpbnB1dHMgZm9yIHlvdSB0byBzcGVjaWZ5IGFsbCB0aGUgdmFsdWVzIHlvdSB3YW50LiBUbyBnZXQgbW9yZSBzcGFjZSBmb3IgaW5wdXR0aW5nDQp0aGVzZSB2YWx1ZXMsIHVzZSB0aGUgYnV0dG9ucyBhdCB0aGUgYm90dG9tIG9mIHRoZSBwYWdlIGZvciBhZGRpbmcgb3B0aW9ucy48L3A+DQo8cD5GaWVsZHMgY2FuIGJlIGFzc2lnbmVkIHZhbGlkYXRpb24gcnVsZXMsIHdoaWNoIHZhcnkgYWNjb3JkaW5nIHRvIHRoZSB0eXBlIG9mIHRoZSBmaWVsZC4gVGhlc2UgcnVsZXMgaGVscA0KZW5zdXJlIHRoYXQgdGhlIHVzZXIgZW50ZXJzIHZhbGlkIGRhdGEuIFRoZXkgbWF5IGFsc28gYmUNCnNlcGFyYXRlbHkgbWFya2VkICZxdW90O1JlcXVpcmVkJnF1b3Q7LCB3aGljaCB3aWxsIGZvcmNlIHRoZSB1c2VyIHRvIGVudGVyIGEgcmVzcG9uc2UuPC9wPg0KPHA+RmllbGRzIGFsc28gbWF5IGJlIGFzc2lnbmVkIGEgQ1NTIGNsYXNzLiBUaGlzIHNpbXBseSB3cmFwcyB0aGUgaW5wdXQgaW4gYSBkaXYgd2l0aCB0aGF0IGNsYXNzLCBzbyBhcyB0byBhbGxvdw0KY3VzdG9taXplZCBsYXlvdXRzLiBUbyB1c2UgdGhpcyBlZmZlY3RpdmVseSwgeW91IG1heSBuZWVkIHRvICZxdW90O3ZpZXcgc291cmNlJnF1b3Q7IG9uIHRoZSBnZW5lcmF0ZWQgZm9ybSwgYW5kIHRoZW4NCndyaXRlIHlvdXIgQ1NTLjwvcD4NCjx1bD4NCjxsaT5TdGFuZGFyZCBJbnB1dHMNCjx1bD48bGk+VGV4dCBJbnB1dC4gVGhpcyBpcyBhIHN0YW5kYXJkIHRleHQgZmllbGQuIFlvdSBjYW4gbGltaXQgdGhlIGxlbmd0aCwgYW5kIGFwcGx5IHZhcmlvdXMgdmFsaWRhdGlvbg0KZnVuY3Rpb25zIHRvIHRoZSBmaWVsZC48L2xpPg0KPGxpPlRleHQgQXJlYS4gVGhpcyBpcyBhIGJpZywgZnJlZS1mb3JtIHRleHQgaW5wdXQgZmllbGQuPC9saT4NCjxsaT5DaGVja2JveC4gVGhpcyBpcyBhIHN0YW5kYXJkIGNoZWNrIGJveC48L2xpPg0KPGxpPkNoZWNrYm94IEdyb3VwLiBUaGlzIGlzIGEgY29sbGVjdGlvbiBvZiBjaGVja2JveGVzLiBUaGUgb25seSBkaWZmZXJlbmNlIGJldHdlZW4gdGhpcyBpbnB1dCBhbmQgYQ0KY29sbGVjdGlvbiBvZiBDaGVja2JveCBpbnB1dHMgaXMgdGhhdCB0aGV5IGFyZSBwcmVzZW50ZWQgYXMgYSBncm91cCwgd2l0aCBvbmUgbmFtZSwgYW5kIGNhbiBoYXZlIGEgdmFsaWRhdGlvbiBmdW5jdGlvbiByZXF1aXJpbmcgdGhhdCB5b3UgY2hlY2sgb25lIG9yIG1vcmUgb2YgdGhlIGJveGVzIGluIHRoZSBncm91cC48L2xpPg0KPGxpPlJhZGlvIEdyb3VwLiBUaGlzIGlzIGEgY29sbGVjdGlvbiBvZiByYWRpbyBidXR0b25zLiBPbmx5IG9uZSBvZiB0aGUgZ3JvdXAgbWF5IGJlIHNlbGVjdGVkIGJ5IHRoZSB1c2VyLjwvbGk+DQo8bGk+UHVsbGRvd24uIFRoaXMgaXMgYSBzdGFuZGFyZCBwdWxsZG93biBtZW51LiBJdCYjMDM5O3MgcmVhbGx5IGNvbmNlcHR1YWxseSB0aGUgc2FtZSB0aGluZyBhcyBhIHJhZGlvIGJ1dHRvbg0KZ3JvdXAsIGJ1dCBpcyBiZXR0ZXIgd2hlbiB0aGVyZSBhcmUgYSBsYXJnZSBudW1iZXIgb2Ygb3B0aW9ucy48L2xpPg0KPGxpPk11bHRpc2VsZWN0LiBUaGlzIGlzIGEgbXVsdGktc2VsZWN0IGZpZWxkLiBJdCYjMDM5O3MgcmVhbGx5IGNvbmNlcHR1YWxseSB0aGUgc2FtZSB0aGluZyBhcyBhIGNoZWNrYm94IGJ1dHRvbg0KZ3JvdXAsIGJ1dCBpcyBiZXR0ZXIgd2hlbiB0aGVyZSBhcmUgYSBsYXJnZSBudW1iZXIgb2Ygb3B0aW9ucywgYXMgeW91IGNhbiBsaW1pdCB0aGUgbnVtYmVyIGRpc3BsYXllZCBvbiB0aGUgc2NyZWVuIGF0IGFueSBvbmUgdGltZS48L2xpPg0KPGxpPlN0YXRlLiBUaGlzIGlzIGEgcHVsbGRvd24gbGlzdGluZyB0aGUgU3RhdGVzIG9mIHRoZSBVLlMuPC9saT4NCjxsaT5Db3VudHJpZXMuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBDb3VudHJpZXMgb2YgdGhlIHdvcmxkIChhcyBvZiBKdWx5IDIwMDUpLjwvbGk+DQo8bGk+RGF0ZSBQaWNrZXIuIFRoaXMgaXMgYSB0cmlwbGUgcHVsbGRvd24gYWxsb3dpbmcgdGhlIHVzZXIgdG8gc2VsZWN0IGEgZGF0ZS48L2xpPg0KPGxpPlRpbWUgUGlja2VyLiBUaGlzIGlzIGEgc2V0IG9mIHB1bGxkb3ducyBhbGxvd2luZyB0aGUgdXNlciB0byBzZWxlY3QgYSB0aW1lICh1c2luZyAxMiBvciAyNCBob3VyIGNsb2NrKS48L2xpPg0KPGxpPkhpZGRlbiBGaWVsZC4gVGhpcyBhbGxvd3MgeW91IHRvIGVtYmVkIGEgaGlkZGVuIGZpZWxkIGluIHlvdXIgZm9ybS48L2xpPg0KPGxpPkZpbGUgVXBsb2FkLiBUaGlzIGlzIGEgZmlsZSB1cGxvYWQgZmllbGQuPC9saT4NCjxsaT5MaW5rIChVc2VyIEVudGVyZWQpLiBUaGlzIGNyZWF0ZXMgYSBkb3VibGUgaW5wdXQgZmllbGQgZm9yIGdldHRpbmcgYSBsaW5rIFVSTCBhbmQgbGluayB0aXRsZS48L2xpPg0KPC91bD48L2xpPg0KDQo8bGk+RW1haWwtc3BlY2lmaWMgSW5wdXRzDQo8dWw+PGxpPkVtYWlsIEZyb20gQWRkcmVzcyBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSB0aGVpciBlbWFpbCBhZGRyZXNzLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgYWRkcmVzcyBpbiB0aGUgJnF1b3Q7RnJvbSZxdW90OyBmaWVsZC48L2xpPg0KPGxpPkVtYWlsIEZyb20gTmFtZSBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSB0aGVpciBuYW1lLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgbmFtZSBpbiB0aGUgJnF1b3Q7RnJvbSZxdW90OyBmaWVsZC48L2xpPg0KPC91bD48L2xpPg0KDQo8bGk+RGlzcGxheSBDb250cm9sIEZpZWxkczx1bD4NCjxsaT4tUGFnZSBCcmVhay4gVGhpcyBhbGxvd3MgeW91IHRvIHNwbGl0IHlvdXIgZmVlZGJhY2sgZm9ybSBpbnRvIG11bHRpcGxlIHBhZ2VzLiBFYWNoIHBhZ2UgaXMNCmluZGVwZW5kZW50bHkgdmFsaWRhdGVkLiBUaGlzIGlzIGdvb2QgZm9yIGFwcGxpY2F0aW9ucyBsaWtlIG9ubGluZSBzdXJ2ZXlzLjwvbGk+DQo8bGk+LUZpZWxkc2V0IFN0YXJ0LiBDb21iaW5lZCB3aXRoIEZpZWxkc2V0IEVuZCwgdGhpcyBhbGxvd3MgeW91IHRvIGdyb3VwIHZhcmlvdXMgZmllbGRzIHdpdGhpbiB5b3VyIGZvcm0uIFVzZSB0aGlzIHRvIHN0YXJ0IGEgZ2l2ZW4gZ3JvdXBpbmcuPC9saT4NCjxsaT4tRmllbGRzZXQgRW5kLiBDb21iaW5lZCB3aXRoIEZpZWxkc2V0IFN0YXJ0LCB0aGlzIGFsbG93cyB5b3UgdG8gZ3JvdXAgdmFyaW91cyBmaWVsZHMgd2l0aGluIHlvdXIgZm9ybS4gVXNlIHRoaXMgdG8gZW5kIGEgZ2l2ZW4gZ3JvdXBpbmcuPC9saT4NCjxsaT4tU3RhdGljIFRleHQuIFRoaXMgYWxsb3dzIHlvdSB0byBwdXQgdGV4dCBvciBhIGxhYmVsIGluIHRoZSBtaWRkbGUgb2YgeW91ciBmb3JtLiBUaGlzIGlzIHVzZWZ1bCBmb3IgZ2l2aW5nIGFkZGl0aW9uYWwgaGVscCB0ZXh0LCBlc3BlY2lhbGx5IGlmIHlvdSYjMDM5O3JlIG5vdCB1c2luZyBhIEN1c3RvbSBUZW1wbGF0ZSB0byByZW5kZXIgeW91ciBmb3JtLjwvbGk+DQo8bGk+LVN0YXRpYyBMaW5rLiBUaGlzIGFsbG93cyB5b3UgdG8gcHV0IGEgbGluayB0byBhIGdpdmVuIHBhZ2UgaW50byB5b3VyIGZvcm0uIE9wdGlvbmFsbHksIHlvdSBjYW4gaGF2ZSBpdCBhdXRvcG9wdWxhdGUgd2l0aCB0aGUgcGFnZSB3aGVyZSB0aGUgZm9ybSBpcyBlbWJlZGRlZCAodXNlZnVsIGlmIHlvdVwmIzAzOTtyZSBzZW5kaW5nIHJlc3VsdHMgdmlhIGVtYWlsKS48L2xpPg0KPC91bD48L2xpPg0KDQo8bGk+Rm9ybSBIYW5kbGluZyBJbnB1dHMgKERpc3Bvc2l0aW9ucykNCjxsaT4qQ2FsbCBhIFVzZXIgRGVmaW5lZCBUYWcgV2l0aCB0aGUgRm9ybSBSZXN1bHRzLiBUaGlzIHN1Ym1pdHMgYWxsIHRoZSBmb3JtIHJlc3VsdHMgdG8gdGhlIFVzZXItRGVmaW5lZCBUYWcgeW91IHNwZWNpZnkuIFRoZSBVRFQgY2FuIGhhbmRsZSB0aGUgcmVzdWx0cyBob3dldmVyIGl0IHdhbnRzLjwvbGk+DQo8dWw+PGxpPipFbWFpbCBSZXN1bHRzIEJhc2VkIG9uIFB1bGxkb3duLiBUaGlzIGlzIHVzZWZ1bCBmb3Igd2ViIHNpdGVzIHdoZXJlIGNvbW1lbnRzIGdldCByb3V0ZWQgYmFzZWQgb24gdGhlaXIgc3ViamVjdCBtYXR0ZXIsIGUuZy4sIGJ1Z3MgZ2V0IHNlbnQgdG8gb25lIHBlcnNvbiwgbWFya2V0aW5nIHF1ZXN0aW9ucyB0byBhbm90aGVyIHBlcnNvbiwgc2FsZXMgcmVxdWVzdHMgdG8gc29tZW9uZSBlbHNlLCBldGMuIFRoZSBwdWxsZG93biBpcyBwb3B1bGF0ZWQgd2l0aCB0aGUgc3ViamVjdHMsIGFuZCBlYWNoIGdldHMgZGlyZWN0ZWQgdG8gYSBzcGVjaWZpYyBlbWFpbCBhZGRyZXNzLiBZb3Ugc2V0IHVwIHRoZXNlIG1hcHBpbmdzIGluIHRoZSB3aGVuIHlvdSBjcmVhdGUgb3IgZWRpdCBhIGZpZWxkIG9mIHRoaXMgdHlwZS4gSWYgeW91IHVzZSBvbmUgb2YgdGhlc2UgJnF1b3Q7RGlyZWN0b3ImcXVvdDsgcHVsbGRvd25zLCB0aGUgdXNlciBtdXN0IG1ha2UgYSBzZWxlY3Rpb24gaW4gb3JkZXIgdG8gc3VibWl0IHRoZQ0KZm9ybS4gVGhpcyBpbnB1dCBpcyBwYXJ0IG9mIHRoZSBmb3JtIHRoZSB1c2VyIHNlZXMsIGFsdGhvdWdoIHRoZSBlbWFpbCBhZGRyZXNzZXMgYXJlIG5vdCBtYWRlIHZpc2libGUgbm9yDQphcmUgdGhleSBlbWJlZGRlZCBpbiB0aGUgSFRNTC48L2xpPg0KPGxpPipFbWFpbCBSZXN1bHRzIHRvIHNldCBBZGRyZXNzKGVzKS4gVGhpcyBzaW1wbHkgc2VuZHMgdGhlIGZvcm0gcmVzdWx0cyB0byBvbmUgb3IgbW9yZSBlbWFpbCBhZGRyZXNzZXMgdGhhdCB5b3UgZW50ZXIgd2hlbiB5b3UgY3JlYXRlIG9yIGVkaXQgdGhpcyB0eXBlIG9mIGZpZWxkLiBUaGlzIGZpZWxkIGFuZCBpdHMgbmFtZSBhcmUgbm90IHZpc2libGUgaW4gdGhlDQpmb3JtIHRoYXQgdGhlIHVzZXIgc2Vlcy4gVGhlIGVtYWlsIGFkZHJlc3NlcyBhcmUgbm90IG1hZGUgdmlzaWJsZSBub3INCmFyZSB0aGV5IGVtYmVkZGVkIGluIHRoZSBIVE1MLjwvbGk+DQo8bGk+KkVtYWlsIHRvIFVzZXItU3VwcGxpZWQgQWRkcmVzcy4gVGhpcyBwdXRzIGFuIGlucHV0IGZpZWxkIGluIHRoZSBmb3JtIGZvciB0aGUgdXNlciB0byBwb3B1bGF0ZSB3aXRoIGFuIGVtYWlsIGFkZHJlc3MuIFRoZSBmb3JtIHJlc3VsdHMgZ2V0IHNlbnQgdG8gdGhhdCBhZGRyZXNzLiBCZXdhcmUgb2YgU3BhbSBhYnVzZSEgQWN0aXZlIHRoZSBwcmltaXRpdmUgYW50aS1zcGFtIGZlYXR1cmVzIGluIHRoZSBGb3JtQnVpbGRlciBjb25maWd1cmF0aW9uIHNjcmVlbi48L2xpPg0KPGxpPipTdG9yZSBSZXN1bHRzIGluIERhdGFiYXNlLiBUaGlzIHdpbGwgc3RvcmUgdGhlIGZvcm0gY29udGVudHMgaW4gYW4gaW50ZXJuYWwgZGF0YWJhc2UuIFlvdSB3aWxsIGFsd2F5cyB1c2UgdGhpcyBkaXNwb3NpdGlvbiBpZiB5b3UgdXNlIHRoZSBmb3JtIHdpdGggRm9ybUJyb3dzZXIuPC9saT4NCjxsaT4qVmFsaWRhdGUgdmlhIEVtYWlsLiBUaGlzIGlzIGEgc3RyYW5nZSBhbmQgcG93ZXJmdWwgZmllbGQuIEl0IHByb3ZpZGVzIHRoZSB1c2VyIGEgbWFuZGF0b3J5IGlucHV0IGZvciB0aGVpciBlbWFpbCBhZGRyZXNzLiBPbmNlIHRoZXkgc3VibWl0IHRoZWlyIGZvcm0sIHRoZSBzdGFuZGFyZCBmb3JtIGRpc3Bvc2l0aW9ucyBhcmUgbm90IHBlcmZvcm1lZCAtLSByYXRoZXIsIGl0IHNlbmQgdGhlIHVzZXIgYW4gZW1haWwgd2l0aCBhIHNwZWNpYWwgY29kZWQgbGluay4gSWYgdGhleSBjbGljayBvbiB0aGUgbGluaywgdGhlIG90aGVyIGZvcm0gaXMgY29uc2lkZXJlZCAmcXVvdDthcHByb3ZlZCwmcXVvdDsgYW5kIHRoZSBvdGhlciBkaXNwb3NpdGlvbnMgYXJlIGFsbCBwZXJmb3JtZWQuPC9saT4NCjxsaT4qV3JpdGUgUmVzdWx0cyB0byBGbGF0IEZpbGUuIFRoaXMgdGFrZXMgdGhlIGZvcm0gcmVzdWx0cyBhbmQgd3JpdGVzIHRoZW0gaW50byBhIHRleHQgZmlsZS4gWW91IG1heQ0Kc2VsZWN0IHRoZSBuYW1lIG9mIHRoZSBmaWxlLCBhbmQgc2V0IGl0cyBmb3JtYXQuIFRoZXNlIGZpbGVzIGFyZSB3cml0dGVuIHRvIHRoZSAmcXVvdDtvdXRwdXQmcXVvdDsgZGlyZWN0b3J5IHVuZGVyIHRoZQ0KbW9kdWxlJiMwMzk7cyBpbnN0YWxsYXRpb24gZGlyZWN0b3J5LCBhc3N1bWluZyB0aGUgd2ViIHNlcnZlciBoYXMgcGVybWlzc2lvbiB0byB3cml0ZSB0aGVyZS48L2xpPg0KPC91bD48L2xpPjwvbGk+PC91bD4NCg0KPGgzPkVtYWlsIGFuZCBGbGF0IEZpbGUgVGVtcGxhdGVzPC9oMz4NCjxwPk1hbnkgZGlzcG9zaXRpb24gdHlwZXMgYWxsb3cgeW91IHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZvciB0aGUgZW1haWwgdGhhdCBpcyBnZW5lcmF0ZWQsIG9yIGZvciB0aGUgd2F5IHRoZSByZXN1bHRzIGFyZSB3cml0dGVuIHRvIGEgZmlsZS4gSWYgeW91IG9wdCBub3QgdG8gY3JlYXRlIGEgdGVtcGxhdGUsIHRoZSBGb3JtQnVpbGRlciB3aWxsIHVzZSBpdCYjMDM5O3Mgb3duIGJlc3QgZ3Vlc3MsIHdoaWNoIG1heSBvciBtYXkgbm90IHdvcmsgb3V0IHRvIHlvdXIgbGlraW5nLiBZb3UgY2FuIGFsd2F5cyBjbGljayBvbiB0aGUgJnF1b3Q7Q3JlYXRlIFNhbXBsZSBUZW1wbGF0ZSZxdW90OyBhbmQgdGhlbiBjdXN0b21pemUgdGhlIHJlc3VsdHMuPC9wPg0KPHA+Tm90ZSB0aGF0IG9uY2UgeW91JiMwMzk7dmUgY2hhbmdlZCBhIHRlbXBsYXRlLCBpdCB3aWxsIG5vIGxvbmdlciBhdXRvbWF0aWNhbGx5IGFkZCBuZXcgZmllbGRzLiBGb3IgdGhpcyByZWFzb24sIGl0JiMwMzk7cyB1c3VhbGx5IGJlc3QgdG8gY3JlYXRlIHlvdXIgdGVtcGxhdGVzIGFzIHRoZSBsYXN0IHN0ZXAgb2YgY3JlYXRpbmcgeW91ciBmb3JtLjwvcD4NCg0KPGgzPktub3duIElzc3VlczwvaDM+DQo8dWw+DQo8bGk+Rm9ybUJ1aWxkZXIgaXMgbm90IHlldCBpbnRlZ3JhdGVkIHdpdGggRnJvbnRFbmQgVXNlcnMuIEl0IHdpbGwgYmUuPC9saT4NCjxsaT5Gb3JtQnVpbGRlciBjYW5ub3QgeWV0IGJlIGlubGluZWQuIFRoYXQgc2hvdWxkIGJlIGEgc2ltcGxlIHVwZ3JhZGUgZG93biB0aGUgbGluZS48L2xpPg0KPGxpPkZvcm1CdWlsZGVyIGRvZXMgbm90IHlldCBzdXBwb3J0IHByZXR0eSB1cmxzLCBhbHRob3VnaCB0aGF0IHNob3VsZG4mIzAzOTt0IG1hdHRlciBzaW5jZSB0aGUgdXNlciBzaWRlIGlzIHByZXR0eSBzaW1wbGUuPC9saT4NCjwvdWw+DQoNCjxoMz5Ucm91Ymxlc2hvb3Rpbmc8L2gzPg0KPG9sPjxsaT4gRmlyc3Qgc3RlcCBpcyB0byBjaGVjayB5b3UmIzAzOTtyZSBydW5uaW5nIENNUyAxLjAtc3ZuIG9yIGxhdGVyLjwvbGk+DQo8bGk+IFNlY29uZCBzdGVwIGlzIHRvIHJlYWQgYW5kIHVuZGVyc3RhbmQgdGhlIGNhdmVhdCBhYm91dCBXWVNJV1lHIGVkaXRvcnMgdXAgaW4gdGhlDQpzZWN0aW9uIDxlbT5BZGRpbmcgYSBGb3JtIHRvIGEgUGFnZTwvZW0+LjwvbGk+DQo8bGk+IElmIHlvdSYjMDM5O3JlIG1pc3NpbmcgZmllbGRzIGluIGFuIGVtYWlsIHRoYXQgZ2V0cyBnZW5lcmF0ZWQsIGNoZWNrIHRoZSBkaXNwb3NpdGlvbiBmaWVsZCYjMDM5O3MgdGVtcGxhdGUsIGFuZCBtYWtlIHN1cmUgeW91JiMwMzk7cmUgc3BlY2lmeWluZyB0aGUgbWlzc2luZyBmaWVsZHMuIFNlZW1zIG9idmlvdXMsIGJ1dCBpdCYjMDM5O3MgYW4gZWFzeSBtaXN0YWtlIHRvIG1ha2UuPC9saT4NCjxsaT4gSnVzdCBtZXNzIGFyb3VuZCBhbmQgdHJ5IGNsaWNraW5nIG9uIGxpbmtzIGFuZCBpY29ucyBhbmQgc3R1ZmYuIFNlZSB3aGF0IGhhcHBlbnMuPC9saT4NCjxsaT4gTGFzdCByZXNwb3J0IGlzIHRvIGVtYWlsIG1lIG9yIGNhdGNoIG1lIG9uIElSQyBhbmQgd2UgY2FuIGdvIGZyb20gdGhlcmUuPC9saT4NCjwvb2w+IA0KPHA+VGhpcyBpcyBhIGZhaXJseSBlYXJseSB2ZXJzaW9uLCBpZiBub3QgYSByYW5rIGJldGEgcmVsZWFzZSwgYW5kIGl0IGlzIHByb2JhYmx5IHN0aWxsIGJ1Z2d5LiBXaGlsZSBJJiMwMzk7dmUgZG9uZSBhbGwgSSBjYW4NCnRvIG1ha2Ugc3VyZSBubyBlZ3JlZ2lvdXMgYnVncyBoYXZlIGNyZXB0IGluLCBJIGhhdmUgdG8gYWRtaXQgdGhhdCBkdXJpbmcgdGVzdGluZywgdGhpcyBwcm9ncmFtDQpyZXZlYWxlZCBzZXZlbiBjb2Nrcm9hY2hlcywgdHdvIGVhcndpZ3MsIGEgc21hbGwgZmFtaWx5IG9mIGFwaGlkcywgYW5kIGEgd2Fsa2luZy1zdGljayBpbnNlY3QuIEl0IGFsc28NCmF0ZSB0aGUgbmVpZ2hib3ImIzAzOTtzIG5hc3R5IGxpdHRsZSB5YXAgZG9nLCBmb3Igd2hpY2ggSSB3YXMgaW5hcHByb3ByaWF0ZWx5IGdyYXRlZnVsLjwvcD4NCjxwPlRoZSBmaW5hbCByZWxlYXNlIHdpbGwgaW5jbHVkZSBidWcgZml4ZXMsIGRvY3VtZW50YXRpb24sIGFuZCB1bmNvbmRpdGlvbmFsIGxvdmUuPC9wPg0KPGgzPlN1cHBvcnQ8L2gzPg0KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPg0KPHVsPg0KPGxpPkZvciB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBtb2R1bGUsIEZBUXMsIG9yIHRvIGZpbGUgYSBCdWcgUmVwb3J0LCBwbGVhc2UgdmlzaXQgdGhlIENNUyBNYWRlIFNpbXBsZSAgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZyI+RGV2ZWxvcGVyIEZvcmdlPC9hPi48L2xpPg0KPGxpPlRvIG9idGFpbiBjb21tZXJjaWFsIHN1cHBvcnQsIHBsZWFzZSBzZW5kIGFuIGVtYWlsIHRvIHRoZSBhdXRob3IgYXQgPGEgaHJlZj0ibWFpbHRvOnNqZ0BjbXNtb2R1bGVzLmNvbSI+PHNqZ0BjbXNtb2R1bGVzLmNvbT48L2E+LjwvbGk+DQo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LjwvbGk+DQo8bGk+VGhlIGF1dGhvciBjYW4gb2Z0ZW4gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9ImlyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2NtcyI+Q01TIElSQyBDaGFubmVsPC9hPi48L2xpPg0KPGxpPkxhc3RseSwgeW91IG1heSBoYXZlIHNvbWUgc3VjY2VzcyBlbWFpbGluZyB0aGUgYXV0aG9yIGRpcmVjdGx5IGFuZCBncm92ZWxsaW5nIGZvciBmcmVlIHN1cHBvcnQuPC9saT4NCjwvdWw+DQo8cD5BcyBwZXIgdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCBhcy1pcy4gUGxlYXNlIHJlYWQgdGhlIHRleHQNCm9mIHRoZSBsaWNlbnNlIGZvciB0aGUgZnVsbCBkaXNjbGFpbWVyLjwvcD4NCjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPg0KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDA3LCBTYW11ZWwgR29sZHN0ZWluIDxhIGhyZWY9Im1haWx0bzpzamdAY21zbW9kdWxlcy5jb20iPjxzamdAY21zbW9kdWxlcy5jb20+PC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPg0KPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCI+R05VIFB1YmxpYyBMaWNlbnNlPC9hPi4gWW91IG11c3QgYWdyZWUgdG8gdGhpcyBsaWNlbnNlIGJlZm9yZSB1c2luZyB0aGUgbW9kdWxlLjwvcD4nOwokbGFuZ1sncWNhJ10gPSAnUDAtNTAzNTYxNjE4LTEyNTM2MzI5MDgyMjQnOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My41Nzk1NjY3MzQuMTI1MzgzMTQwMi4xMjU3MDk2NzcwLjEyNTc3ODU0MDMuMTQnOwokbGFuZ1sndXRteiddID0gJzE1Njg2MTM1My4xMjU3Nzg1NDAzLjE0LjEzLnV0bWNjbj0ocmVmZXJyYWwpfHV0bWNzcj1mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZ3x1dG1jY3Q9L2luZGV4LnBocC90b3BpYywzODg3NS4wL3RvcGljc2Vlbi5odG1sfHV0bWNtZD1yZWZlcnJhbCc7CiRsYW5nWyd1dG1iJ10gPSAnMTU2ODYxMzUzJzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/nb_NO.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ1NramVtYSBCeWdnZXInOwokbGFuZ1snZmllbGRfdHlwZV8nXSA9ICdGZWx0dHlwZSBpa2tlIHNhdHQnOwokbGFuZ1snZmllbGRfdHlwZV9DYXRhbG9nZXJJdGVtc0ZpZWxkJ10gPSAnVmVsZyBlbiAoZWxsZXIgZmxlcmUpIGNhdGFsb2dlciBhcnRpa2xlcic7CiRsYW5nWydmaWVsZF90eXBlX0ZpZWxkc2V0RW5kJ10gPSAnRmVsdGdydXBwZSBTbHV0dCc7CiRsYW5nWydmaWVsZF90eXBlX0ZpZWxkc2V0U3RhcnQnXSA9ICdGZWx0Z3J1cHBlIFN0YXJ0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkJ10gPSAnVGVrc3QgaW5uc2tyaXZpbmcnOwokbGFuZ1snZmllbGRfdHlwZV9IVE1MNU51bWJlckZpZWxkJ10gPSAnSFRNTDUgQW50YWxsIElucHV0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfSFRNTDVFbWFpbEZpZWxkJ10gPSAnSFRNTDUgRS1wb3N0IElucHV0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfSFRNTDVVUkxGaWVsZCddID0gJ0hUTUw1IFVSTCBJbnB1dCAnOwokbGFuZ1snZmllbGRfdHlwZV9QYXNzd29yZEZpZWxkJ10gPSAnUGFzc29yZCc7CiRsYW5nWydmaWVsZF90eXBlX1Bhc3N3b3JkQWdhaW5GaWVsZCddID0gJ0dqZW50YSBwYXNzb3JkICh2ZXJpZmlzZXIpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkRXhwYW5kYWJsZSddID0gJ1Rla3N0IGlubnNrcml2aW5nIChGbGVyZSknOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0QXJlYUZpZWxkJ10gPSAnVGVrc3RvbXImYXJpbmc7ZGUnOwokbGFuZ1snZmllbGRfdHlwZV9CdXR0b25GaWVsZCddID0gJ0tuYXBwJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hGaWVsZCddID0gJ0F2a3J5c25pbmdzYm9rcyc7CiRsYW5nWydmaWVsZF90eXBlX0NoZWNrYm94R3JvdXBGaWVsZCddID0gJ0F2a3J5c25pbmdzYm9rcyBncnVwcGUnOwokbGFuZ1snZmllbGRfdHlwZV9QdWxsZG93bkZpZWxkJ10gPSAnTmVkdHJla2snOwokbGFuZ1snZmllbGRfdHlwZV9ZZWFyUHVsbERvd25GaWVsZCddID0gJyZBcmluZztyIG5lZHRyZWtrJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTXVsdGlzZWxlY3RGaWVsZCddID0gJ011bHRpdmFsZyc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRlUGlja2VyRmllbGQnXSA9ICdBbWVyaWthbnNrIHN0YXQgdmVsZ2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUHJvdmluY2VQaWNrZXJGaWVsZCddID0gJ0thbmFkaXNrIHByb3ZpbnMgdmVsZ2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ291bnRyeVBpY2tlckZpZWxkJ10gPSAnTGFuZCB2ZWxnZXInOwokbGFuZ1snZmllbGRfdHlwZV9EYXRlUGlja2VyRmllbGQnXSA9ICdEYXRvIHZlbGdlcic7CiRsYW5nWydmaWVsZF90eXBlX1RpbWVQaWNrZXJGaWVsZCddID0gJ1RpZHMtdmVsZ2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUmFkaW9Hcm91cEZpZWxkJ10gPSAnUmFkaW9rbmFwcCBncnVwcGUnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRpcmVjdG9yJ10gPSAnKlNlbmRlIHJlc3VsdGF0ZXIgdmlhIGVwb3N0IGJhc2VydCBwJmFyaW5nOyBOZWR0cmVrayc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRmlsZURpcmVjdG9yJ10gPSAnKkxhZ3JlIHJlc3VsdGF0ZXQgdGlsIGZpbCBCYXNlcnQgcCZhcmluZzsgbmVkdHJla2snOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbk11bHRpc2VsZWN0RmlsZURpcmVjdG9yJ10gPSAnKkxhZ3JlIHJlc3VsdGF0ZXQgdGlsIGZpbChlcikgQkFzZXJ0IHAmYXJpbmc7IEZsZXJlIFZhbGcnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvblBhZ2VSZWRpcmVjdG9yJ10gPSAnKk9tZGlyaWdlciB0aWwgU2lkZSBCYXNlcnQgcCZhcmluZzsgTmVkdHJla2snOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsJ10gPSAnKlNlbmRlIHJlc3VsdGF0ZXIgdmlhIGVwb3N0IHRpbCBiZXN0ZW10ZSBhZHJlc3Nlcic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxDb25maXJtYXRpb24nXSA9ICcqVmFsaWRlcmluZy1tZWQtZXBvc3RhZHJlc3NlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Gcm9tRW1haWxBZGRyZXNzRmllbGQnXSA9ICcqRXBvc3QgZnJhIGFkcmVzc2UmcXVvdDsgZmVsdCwgb2cgc2VuZCBrb3BpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25GaWxlJ10gPSAnKlNrcml2IHJlc3VsdGF0ZXIgdGlsIGZsYXQgZmlsJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EYXRhYmFzZSddID0gJypMYWdyZSByZXN1bHRhdGVyIGkgZGF0YWJhc2VuJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Gb3JtQnJvd3NlciddID0gJypMYWdyZSByZXN1bHRhdGVyIGZvciBGb3JtQnJvd3NlciBtb2R1bGVuIHYuMyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uVXNlclRhZyddID0gJypLYWxsIG9wcCBlbiBCcnVrZXJkZWZpbmVydCBUYWdnIG1lZCBza2plbWEgcmVzdWx0YXRlbmUnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZvcm0nXSA9ICcqIFNlbmQgdGlsIGVuIHZpbGsmYXJpbmc7cmxpZyBza2plbWFoYW5kbGluZyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGVsaXZlclRvRW1haWxBZGRyZXNzRmllbGQnXSA9ICcqRXBvc3QgdGlsIEJydWtlci1PcHBnaXR0IEVwb3N0YWRyZXNzZSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxTaXRlQWRtaW4nXSA9ICcqRXBvc3QgdGlsIENNUyBBZG1pbiBicnVrZXInOwokbGFuZ1snZmllbGRfdHlwZV9QYWdlQnJlYWtGaWVsZCddID0gJy1TaWRlc2tpZnQnOwokbGFuZ1snZmllbGRfdHlwZV9GaWxlVXBsb2FkRmllbGQnXSA9ICdGaWwgb3BwbGFzdGluZyc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbEFkZHJlc3NGaWVsZCddID0gJ0Vwb3N0ICZxdW90O0ZyYSBhZHJlc3NlJnF1b3Q7IGZlbHQnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxBZGRyZXNzQWdhaW5GaWVsZCddID0gJ0Vwb3N0ICZxdW90O0ZyYSBhZHJlc3NlJnF1b3Q7IElnamVuIEZlbHQnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxOYW1lRmllbGQnXSA9ICdFcG9zdCAmcXVvdDtGcmEgbmF2biZxdW90OyBmZWx0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsU3ViamVjdEZpZWxkJ10gPSAnRXBvc3QgJnF1b3Q7RW1uZSZxdW90OyBmZWx0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3RhdGljVGV4dEZpZWxkJ10gPSAnLVN0YXRpc2sgdGVrc3QnOwokbGFuZ1snZmllbGRfdHlwZV9TeXN0ZW1MaW5rRmllbGQnXSA9ICctU3RhdGlzayBsZW5rZSc7CiRsYW5nWydmaWVsZF90eXBlX0xpbmtGaWVsZCddID0gJ0xlbmtlIChCcnVrZXItb3BwZ2l0dCknOwokbGFuZ1snZmllbGRfdHlwZV9IaWRkZW5GaWVsZCddID0gJy1Ta2p1bHQgRmVsdCc7CiRsYW5nWydmaWVsZF90eXBlX0NvbXB1dGVkRmllbGQnXSA9ICctQmVyZWduZXQgZmVsdCc7CiRsYW5nWydmaWVsZF90eXBlX1VuaXF1ZUludGVnZXJGaWVsZCddID0gJy1VbmlrIEludGVnZXIgKFNlcmllbGwpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVXNlclRhZ0ZpZWxkJ10gPSAnLUJydWtlciBEZWZpbmVydCBUYWdnKFVEVCkga2FsbCc7CiRsYW5nWydmaWVsZF90eXBlX0NvbXBhbnlEaXJlY3RvcnlGaWVsZCddID0gJ0NvbXBhbnkgRGlyZWN0b3J5IGZlbHQnOwokbGFuZ1snZmllbGRfdHlwZV9Nb2R1bGVJbnRlcmZhY2VGaWVsZCddID0gJy1Nb2R1bCBncmVuc2Vzbml0dHNmZWx0JzsKJGxhbmdbJ3ZhbGlkYXRpb25fbm9uZSddID0gJ0luZ2VuIHZhbGlkZXJpbmcnOwokbGFuZ1sndmFsaWRhdGlvbl9udW1lcmljJ10gPSAnTnVtZXJpc2snOwokbGFuZ1sndmFsaWRhdGlvbl9pbnRlZ2VyJ10gPSAnSW50ZWdlciAnOwokbGFuZ1sndmFsaWRhdGlvbl9lbWFpbF9hZGRyZXNzJ10gPSAnRXBvc3RhZHJlc3NlJzsKJGxhbmdbJ3ZhbGlkYXRpb25fdXNwaG9uZSddID0gJ1RlbGVmb25udW1tZXIgKFVTKSc7CiRsYW5nWyd2YWxpZGF0aW9uX211c3RfY2hlY2snXSA9ICdNJmFyaW5nOyBhdmtyeXNzZXMnOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9tYXRjaCddID0gJ1NhbXN2YXJlciB2YW5saWcgdXR0cnlrayc7CiRsYW5nWyd2YWxpZGF0aW9uX3JlZ2V4X25vbWF0Y2gnXSA9ICdTYW1zdmFyZXIgaWtrZSBtZWQgdmFubGlnIHV0dHJ5a2snOwokbGFuZ1sncmVxdWlyZWRfZmllbGRfbWlzc2luZyddID0gJ0VuIHZlcmRpIGVyIGlra2Ugb3BwZ2l0dCBmb3IgZXQgJiMwMzk7biZvc2xhc2g7ZHZlbmRpZyYjMDM5Oy1mZWx0JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX3ZhbHVlJ10gPSAnVmVubmxpZ3N0IHNrcml2IGlubiBlbiB2ZXJkaSBmb3IgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfbnVtYmVyJ10gPSAnVmVubmxpZ3N0IHNrcml2IGlubiBldCB0YWxsIGZvciAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfdmFsaWQnXSA9ICdWZW5ubGlnc3Qgc2tyaXYgaW5uIGVuIGd5bGRpZyB2ZXJkaSBmb3IgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FuX2ludGVnZXInXSA9ICdWZW5ubGdpc3Qgc2tyaXYgaW5uIGVuIGludGVnZXIgdmVyZGkgZm9yICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hbl9lbWFpbCddID0gJ1Zlbm5saWdzdCBza3JpdiBpbm4gZW4gZ3lsZGlnIGVwb3N0YWRyZXNzZSBmb3IgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1snZW1haWxfYWRkcmVzc19kb2VzX25vdF9tYXRjaCddID0gJ0Vwb3N0YWRyZXNzZW4gZXIgaWtrZSBsaWsgdmVyZGllbiBzYXR0IGkgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfcGhvbmUnXSA9ICdWZW5ubGlnc3Qgb3BwZ2kgZXQgZ3lsZGlnIFVTIHRlbGVmb25udW1tZXIgZm9yJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2xvZ2luJ10gPSAnVmVubmxpZ3N0IGxvZ2cgaW5uIGZvciAmYXJpbmc7IGJlbnl0dGUgZGV0dGUgc2tqZW1hJzsKJGxhbmdbJ25vdF92YWxpZF9lbWFpbCddID0gJyZxdW90OyVzJnF1b3Q7IHNlciBpa2tlIHV0IHRpbCAmYXJpbmc7IHYmYWVsaWc7cmUgZW4gZ3lsZGlnIGVwb3N0YWRyZXNzZSEnOwokbGFuZ1sncGxlYXNlX2VudGVyX25vX2xvbmdlciddID0gJ1Zlbm5saWdzdCBvcHBnaSBlbiB2ZXJkaSBzb20gaWtrZSBlciBsZW5ncmUgZW5uICVzIGJva3N0YXZlcic7CiRsYW5nWydwbGVhc2VfZW50ZXJfYXRfbGVhc3QnXSA9ICdWZW5ubGlnc3Qgb3BwZ2kgZW4gdmVyZGkgc29tIGJlc3QmYXJpbmc7ciBhdiBtaW5zdCAlcyBib2tzdGF2ZXInOwokbGFuZ1sndGl0bGVfbGlzdF9kZWxpbWl0ZXInXSA9ICdUZWduICZhcmluZzsgYnJ1a2Ugc29tIGF2ZGVsZXIgaSByZXN1bHRhdGVyIHNvbSBoYXIgZmxlcmUgdmVyZGllcic7CiRsYW5nWyd5b3VfbmVlZF9wZXJtaXNzaW9uJ10gPSAnRHUgdHJlbmdlciAmcXVvdDslcyZxdW90OyByZXR0aWdoZXRlbiBmb3Iga3VubmUgdXRmJm9zbGFzaDtyZSBkZW4gaGFuZGxpbmdlbi4nOwokbGFuZ1snbGFja3Blcm1pc3Npb24nXSA9ICdCZWtsYWdlciEgRHUgaGFyIGlra2Ugbm9rIHJldHRpZ2hldGVyIGZvciAmYXJpbmc7IGYmYXJpbmc7IGFkZ2FuZyB0aWwgZGVuIGF2ZGVsaW5nZW4uJzsKJGxhbmdbJ2ZpZWxkX29yZGVyX3VwZGF0ZWQnXSA9ICdGZWx0IHJla2tlZiZvc2xhc2g7bGdlIG9wcGRhdGVydC4nOwokbGFuZ1snZm9ybV9kZWxldGVkJ10gPSAnU2tqZW1hIHNsZXR0ZXQuJzsKJGxhbmdbJ2ZpZWxkX2RlbGV0ZWQnXSA9ICdGZWx0IHNsZXR0ZXQnOwokbGFuZ1snY29uZmlndXJhdGlvbl91cGRhdGVkJ10gPSAnS29uZmlndXJhc2pvbiBvcHBkYXRlcnQuJzsKJGxhbmdbJ3lvdV9tdXN0X2NoZWNrJ10gPSAnRHUgbSZhcmluZzsga3J5c3NlIGF2ICZxdW90OyVzJnF1b3Q7IGZvciAmYXJpbmc7IGZvcnRzZXR0ZS4nOwokbGFuZ1snbXVzdF9zcGVjaWZ5X29uZV9kZXN0aW5hdGlvbiddID0gJ0R1IG0mYXJpbmc7IG9wcGdpIGkgZGV0IG1pbnN0ZSBlbiBtJmFyaW5nO2wtYWRyZXNzZSEnOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9mb3JtJ10gPSAnRXIgZHUgc2lra2VyIHAmYXJpbmc7IGR1IHZpbCBzbGV0dGUgc2tqZW1hZXQgJXM/JzsKJGxhbmdbJ2FyZV95b3Vfc3VyZV9kZWxldGVfZmllbGQnXSA9ICdFciBkdSBzaWtrZXIgcCZhcmluZzsgZHUgdmlsIHNsZXR0ZSBmZWx0ZXQgJXM/JzsKJGxhbmdbJ25vdGljZV9zZWxlY3RfdHlwZSddID0gJ0F2YW5zZXJ0ZSB2YWxnIGVyIGlra2UgdGlsZ2plbmdlbGlnIGYmb3NsYXNoO3IgZmVsdC10eXBlIGhhciBibGl0dCBzYXR0Lic7CiRsYW5nWydmaWVsZF9uYW1lX2luX3VzZSddID0gJ0ZlbHQgbmF2bmV0ICZxdW90OyVzJnF1b3Q7IGVyIGFsbGVyZWRlIGkgYnJ1ay4gVmVubmxpZ3N0IGJydWsgdW5pa2UgZmVsdG5hdm4sIGVsbGVyIHNsJmFyaW5nOyBhdiBrcmF2ZXQgdGlsIHVuaWtlIGZlbHRuYXZuIGkgU2tqZW1hYnlnZ2VyIGtvbmZpZ3VyYXNqb25lbi4nOwokbGFuZ1snZmllbGRfbm9fbmFtZSddID0gJ0ZlbHRlciBNJkFyaW5nOyBuYXZuZXMsIG9tIGR1IGlra2Ugc2wmYXJpbmc7ciBhdiBkZXR0ZSBpIEZvcm0gQnVpbGRlciBrb25maWd1cmFzam9uZW4uJzsKJGxhbmdbJ2Fub255bW91cyddID0gJ0Fub255bSc7CiRsYW5nWydhYmJyZXZpYXRpb25fbGVuZ3RoJ10gPSAnTGVuZ2RlOiAlcyc7CiRsYW5nWydib3hlcyddID0gJyVzIGJva3Nlcic7CiRsYW5nWydvcHRpb25zJ10gPSAnJXMgdmFsZyc7CiRsYW5nWyd0ZXh0X2xlbmd0aCddID0gJyVzIGJva3N0YXZlcic7CiRsYW5nWydvcmRlciddID0gJ1Jla2tlZiZvc2xhc2g7bGdlJzsKJGxhbmdbJ3Vuc3BlY2lmaWVkJ10gPSAnW3VzcGVzaWZpc2VydF0nOwokbGFuZ1snYWRkZWQnXSA9ICdMYWd0IHRpbCc7CiRsYW5nWyd1cGRhdGVkJ10gPSAnT3BwZGF0ZXJ0JzsKJGxhbmdbJ3NvcnRfb3B0aW9ucyddID0gJ1NvcnRlcmluZ3NtdWxpZ2hldGVyIGZvciB1dGRhdGEnOwokbGFuZ1snc2VsZWN0X29uZSddID0gJ1ZlbGcgZW4nOwokbGFuZ1snc2VsZWN0X3R5cGUnXSA9ICdWZWxnIHR5cGUnOwokbGFuZ1sndG8nXSA9ICdUaWwnOwokbGFuZ1sneWVzJ10gPSAnSmEnOwokbGFuZ1snbm8nXSA9ICdOZWknOwokbGFuZ1sncmVjaXBpZW50cyddID0gJ21vdHRha2VyZSc7CiRsYW5nWydmaWxlX2NvdW50J10gPSAnJXMgbXVsaWdlIGZpbGVyJzsKJGxhbmdbJ2Rlc3RpbmF0aW9uX2NvdW50J10gPSAnJXMgbSZhcmluZztsJzsKJGxhbmdbJ3NhdmUnXSA9ICdMYWdyZSc7CiRsYW5nWydhZGQnXSA9ICdMYWdnIHRpbCc7CiRsYW5nWyd1cGRhdGUnXSA9ICdPcHBkYXRlcic7CiRsYW5nWydzYXZlX2FuZF9jb250aW51ZSddID0gJ0xhZ3JlIG9nIGZvcnRzZXR0IHJlZGlnZXJpbmcnOwokbGFuZ1snaW5mb3JtYXRpb24nXSA9ICdJbmZvcm1hc2pvbic7CiRsYW5nWydhdXRvbWF0aWMnXSA9ICdBdXRvbWF0aXNrJzsKJGxhbmdbJ2Zvcm1zJ10gPSAnU2tqZW1hJzsKJGxhbmdbJ2Zvcm0nXSA9ICdTa2plbWEgJXMnOwokbGFuZ1snY29uZmlndXJhdGlvbiddID0gJ0tvbmZpZ3VyYXNqb24nOwokbGFuZ1snZmllbGRfcmVxdWlyZW1lbnRfdXBkYXRlZCddID0gJ0ZlbHQgbiZvc2xhc2g7ZHZlbmRpZy1zdGF0dXMgb3BwZGF0ZXJ0JzsKJGxhbmdbJ21heGltdW1fc2l6ZSddID0gJ01ha3MuIHN0Jm9zbGFzaDtycmVsc2UnOwokbGFuZ1sncGVybWl0dGVkX2V4dGVuc2lvbnMnXSA9ICdGaWxlbmRlbHNlcic7CiRsYW5nWydwZXJtaXR0ZWRfZmlsZXR5cGVzJ10gPSAnTG92bGlnZSBmaWx0eXBlcic7CiRsYW5nWydmaWxlX3Rvb19sYXJnZSddID0gJ09wcGxhc3RldCBmaWwgZXIgZm9yIHN0b3IhIE1ha3NpbXVtIHN0Jm9zbGFzaDtycmVsc2UgZXI6JzsKJGxhbmdbJ2lsbGVnYWxfZmlsZV90eXBlJ10gPSAnRGVubmUgdHlwZSBmaWwgdmlsIGlra2UgYmxpIGxhc3RldCBvcHAuIFZlbm5saWdzdCBzamVrayBhdCBmaWxlbmRlbHNlbiBlciBrb3JyZWt0Lic7CiRsYW5nWyd1cGxvYWQnXSA9ICdMYXN0IG9wcCc7CiRsYW5nWydmb3JtX2ltcG9ydGVkJ10gPSAnU2tqZW1hIGltcG9ydGVydC4nOwokbGFuZ1snZm9ybV9pbXBvcnRfZmFpbGVkJ10gPSAnU2tqZW1hIGltcG9ydCBmZWlsZXQhIERldCBvcHBzdG9kIGV0IHByb2JsZW0gbWVkIGZvcm1hdHRldCBwJmFyaW5nOyBYTUwgZmlsZW4uJzsKJGxhbmdbJ3Jvd3MnXSA9ICclcyByYWRlcic7CiRsYW5nWydjb2xzJ10gPSAnJXMga29sb25uZXInOwokbGFuZ1snMTJfaG91ciddID0gJzEyLXRpbWVycyBrbG9ra2UnOwokbGFuZ1snMjRfaG91ciddID0gJzI0LXRpbWVycyBrbG9ra2UnOwokbGFuZ1snaG91ciddID0gJ1RpbWUnOwokbGFuZ1snbWluJ10gPSAnTWludXR0JzsKJGxhbmdbJ21lcmlkJ10gPSAnTWVyaWRpYW4oQU0vUE0pJzsKJGxhbmdbJ2RhdGVfcmFuZ2UnXSA9ICdJbnRlcnZhbGw6ICVzIC0gJXMnOwokbGFuZ1sndGhhbmtzJ10gPSAnVGFrayEgRGluIGlubnNlbmRpbmcgaGFyIGJsaXR0IG1vdHRhdHQuJzsKJGxhbmdbJ2VkaXQnXSA9ICdSZWRpZ2VyJzsKJGxhbmdbJ2RlbGV0ZSddID0gJ1NsZXR0JzsKJGxhbmdbJ2RheSddID0gJ0RhZyc7CiRsYW5nWydtb24nXSA9ICdNJmFyaW5nO25lZCc7CiRsYW5nWyd5ZWFyJ10gPSAnJkFyaW5nO3InOwokbGFuZ1snbm9uZSddID0gJyhpbmdlbiknOwokbGFuZ1snY3NzJ10gPSAnU3RpbGFyayAoQ1NTKSc7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHVsIGF2aW5zdGFsbGVydC4nOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnTW9kdWwgdmVyc2pvbiAlcyBpbnN0YWxsZXJ0Lic7CiRsYW5nWyd1cGdyYWRlZCddID0gJ01vZHVsIG9wcGdyYWRlcnQgdGlsIHZlcnNqb24gJXMuJzsKJGxhbmdbJ2J1dHRvbl9wcmV2aW91cyddID0gJ1RpbGJha2UuLi4nOwokbGFuZ1snYnV0dG9uX3N1Ym1pdCddID0gJ1NlbmQgc2tqZW1hJzsKJGxhbmdbJ2J1dHRvbl9jb250aW51ZSddID0gJ0ZvcnRzZXR0Li4uJzsKJGxhbmdbJ3ZhbHVlX2NoZWNrZWQnXSA9ICdBdmtyeXNzZXQnOwokbGFuZ1sndmFsdWVfdW5jaGVja2VkJ10gPSAnSWtrZSBhdmtyeXNzZXQnOwokbGFuZ1sndGFiX21haW4nXSA9ICdIb3ZlZCc7CiRsYW5nWyd0YWJfc3ltYm9sJ10gPSAnU2tqZW1hdmlzbmluZ3MgaW5uc3RpbGxpbmdlcic7CiRsYW5nWyd0YWJfc3VibWl0J10gPSAnU2tqZW1hIGlubnNlbmRpbmcnOwokbGFuZ1sndGFiX2NhcHRjaGEnXSA9ICdDYXB0Y2hhIGlubnN0aWxsaW5nZXInOwokbGFuZ1sndGFiX2FkdmFuY2VkJ10gPSAnQXZhbnNlcnRlIGlubnN0aWxsaW5nZXInOwokbGFuZ1sndGFiX3RlbXBsYXRlbGF5b3V0J10gPSAnTWFsIGxheW91dCB2YWxnJzsKJGxhbmdbJ3RhYl9zdWJtaXNzaW9udGVtcGxhdGUnXSA9ICdJbm5zZW5kaW5ncyBtYWwnOwokbGFuZ1sndGFiX3VkdCddID0gJ1VEVCBpbnRlZ3Jhc2pvbic7CiRsYW5nWydjYW51c2Vfc21hcnR5J10gPSAnPGVtPlNtYXJ0eSB2YXJpYWJsZXIgZXIgZ3lsZGlnZSBpIGRldHRlIGZlbHRldC48ZW0+JzsKJGxhbmdbJ2FkZF9vcHRpb25zJ10gPSAnTGVnZyB0aWwgZmxlcmUgdmFsZyc7CiRsYW5nWydkZWxldGVfb3B0aW9ucyddID0gJ1NsZXR0IG1hcmtlcnRlIHZhbGcnOwokbGFuZ1snYWRkX2NoZWNrYm94ZXMnXSA9ICdMZWdnIHRpbCBmbGVyZSBhdmtyeXNuaW5nc2Jva3Nlcic7CiRsYW5nWydkZWxldGVfY2hlY2tib3hlcyddID0gJ1NsZXR0IG1hcmtlcnRlIGF2a3J5c25pbmdzYm9rc2VyJzsKJGxhbmdbJ2FkZF9hZGRyZXNzJ10gPSAnTGVnZyB0aWwgYW5uZW4gYWRyZXNzZSc7CiRsYW5nWydkZWxldGVfYWRkcmVzcyddID0gJ1NsZXR0IG1hcmtlcnQgYWRyZXNzZSc7CiRsYW5nWydhZGRfZGVzdGluYXRpb24nXSA9ICdMZWdnIHRpbCBhbm5ldCBtJmFyaW5nO2wnOwokbGFuZ1snZGVsZXRlX2Rlc3RpbmF0aW9uJ10gPSAnU2xldHQgbWFya2VydGUgbSZhcmluZztsJzsKJGxhbmdbJ3N1c3BlY3RlZF9zcGFtJ10gPSAnRm9yIG1hbmdlIGUtcG9zdGVyIGVyIGJsaXR0IGdlbmVyZXJ0IGZyYSBkaW4gSVAtYWRyZXNzZS4gQW50aS1TcGFtIGtvZGUgaGFyIHN0b3BwZXQgbGV2ZXJpbmdlbi4nOwokbGFuZ1snc3VzcGVjdGVkX3NwYW1fbG9nJ10gPSAnTWlzdGVua2VsaWcgc3BhbSBmcmEgSVAgJXMgYmxlIHN0b3BwZXQuJzsKJGxhbmdbJ3Jlb3JkZXInXSA9ICdPbXNvcnRlciBmZWx0ZXInOwokbGFuZ1snY2FuY2VsJ10gPSAnQXZicnl0JzsKJGxhbmdbJ3ZhbHVlX3NldCddID0gJ1ZlcmRpIHNhdHQ6ICVzJzsKJGxhbmdbJ2hlbHBfY2F0YWxvZ2VyX2F0dHJpYnV0ZV9maWVsZHMnXSA9ICdOZWRlbmZvciBlciBlbiBsaXN0ZSBtZWQgYXRyaWJ1dHRlbmUgc29tIGVyIHRpbGdqZW5nZWxpZ2UgZnJhIENhdGFsb2dlciBtb2R1bGVuLjxici8+DQpEdSBrYW4gdmFsZ2ZyaXR0IHNwZXNpZmlzZXJlIGd5bGRpZ2UgdXR2YWxnLCB2ZXJkaWVyIGVsbGVyIGZsZXJlIHZlcmRpZXIgc29tIHNrYWwgYmVueXR0ZXMgZm9yICZhcmluZzsgZmlsdHJlcmUgbGlzdGVuIG1lZCBlbmhldGVyIHNvbSB2aXNlcyB0aWwgYnJ1a2VyZW4uPGJyLz4NCjxici8+DQo8c3Ryb25nPlV0dmFsZzo8L3N0cm9uZz48YnIvPg0KVXR2YWxnKFJhbmdlcykga2FuIHNwZXNpZmlzZXJlcyB2ZWQgJmFyaW5nOyBpbXBsaXNlcmUgZW4gbWluaW11bSBvZyBtYWtzaW11bSB2ZXJkaSB2ZWQgJmFyaW5nOyBiZW55dHRlIGRlbm5lIHN5bnRha3NlbjogJnF1b3Q7cmFuZ2U6IG1pbnZhbHVlIHRvIG1heHZhbHVlJnF1b3Q7PGJyLz4NCjxici8+DQo8c3Ryb25nPkZsZXJlIHZlcmRpZXI6PC9zdHJvbmc+PGJyLz4NCkZvciAmYXJpbmc7IHNwZXNpZmlzZXJlIGZsZXJlIHZlcmRpZXIgZm9yIGVuIGF0cmlidXR0IGJlbnl0dGVyIGR1IHN5bnRha3NlbiAmcXVvdDttdWx0aTogdmFsdWUxfHZhbHVlMnx2YWx1ZTMmcXVvdDs8YnIvPg0KPGJyLz4NCjxzdHJvbmc+VmVyZGllciBmcmEgc2tqdWx0ZSBmZWx0PC9zdHJvbmc+PGJyLz4NCkZvciAmYXJpbmc7IHNwZXNpZmlzZXJlIGVuIHZlcmRpIGZyYSBldCBza2p1bHQgZmVsdCBiZW55dHRlciBkdSBzeW50YWtzZW4geyRmbGRfaWR9PGJyLz4NCjxici8+JzsKJGxhbmdbJ2hlbHBfbmFtZV9yZWdleCddID0gJ0VuIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgJmFyaW5nOyB0aWxsYXRlIGZpbHRyZXJpbmcgYXYgY2F0YWxvZ2VyIGFydGlrbGVyIGV0dGVyIG5hdm4nOwokbGFuZ1snaGVscF9maWVsZF9oZWlnaHQnXSA9ICdIJm9zbGFzaDt5ZGUgcCZhcmluZzsgZmxlcnZhbGdzIGZlbHRldCc7CiRsYW5nWyd0aXRsZV9uYW1lX3JlZ2V4J10gPSAnQ2F0YWxvZ2VyIEl0ZW0gTmFtZSB2YW5saWcgdXR0cnlrayc7CiRsYW5nWyd0aXRsZV9maWVsZF9oZWlnaHQnXSA9ICdGZWx0IGgmb3NsYXNoO3lkZSc7CiRsYW5nWyd0aXRsZV9maWxlX3BhdGgnXSA9ICdNJmFyaW5nO2xrYXRhbG9nIGZvciB1dHNlbmRpbmcgYXYgZmlsZXInOwokbGFuZ1sndGl0bGVfdWR0X25hbWUnXSA9ICdCcnVrZXJkZWZpbmVydCBUYWdnJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZHNfZGVzdHBhZ2UnXSA9ICdTaWRlICZhcmluZzsgcmV0dXJuZXJlIHRpbCBtZWQgb3BwbGFzdGluZ3MgbGVua2VuJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZG1vZHVsZV9zdW1tYXJ5J10gPSAnSW5uc2VuZHQgbWVkIFNramVtYUJ5Z2dlcic7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2NhdGVnb3J5J10gPSAnT3BwbGFzdGluZ3MgS2F0ZWdvcmknOwokbGFuZ1sndGl0bGVfc2VuZHRvX3VwbG9hZHMnXSA9ICdTZW5kIGRlbm5lIGZpbGVuIHRpbCBvcHBsYXN0aW5ncyBtb2R1bGVuJzsKJGxhbmdbJ3RpdGxlX2xlZ2VuZCddID0gJ0ZlbHRncnVwcGV0aXR0ZWwnOwokbGFuZ1sndGl0bGVfbWF4aW11bV9sZW5ndGgnXSA9ICdNYWtzaW11bSBsZW5nZGUnOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfbGFiZWwnXSA9ICdBdmtyeXNuaW5nc2Jva3MgZXRpa2V0dCc7CiRsYW5nWyd0aXRsZV9yYWRpb19sYWJlbCddID0gJ1JhZGlva25hcHAgZXRpa2V0dCc7CiRsYW5nWyd0aXRsZV9jaGVja2VkX3ZhbHVlJ10gPSAnVmVyZGkgbiZhcmluZztyIGF2a3J5c3NldCc7CiRsYW5nWyd0aXRsZV91bmNoZWNrZWRfdmFsdWUnXSA9ICdWZXJkaSBuJmFyaW5nO3IgaWtrZSBhdmtyeXNzZXQnOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfZGV0YWlscyddID0gJ0F2a3J5c25pbmdzYm9rcyBncnVwcGUgZGV0YWxqZXInOwokbGFuZ1sndGl0bGVfZGVsZXRlJ10gPSAnU2xldHQ/JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9vbmVfbWVzc2FnZSddID0gJyZxdW90O1ZlbGcgJmVhY3V0ZTtuJnF1b3Q7IFRleHQnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX3ZhbHVlJ10gPSAnVXR2YWxnIHZlcmRpJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl9kaXNwbGF5bmFtZSddID0gJ1V0dmFsZyBWaXNuaW5ncyBOYXZuJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl9zdWJqZWN0J10gPSAnVXR2YWxnIGVtbmUnOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfY291bnRyeSddID0gJ1N0YW5kYXJkIHV0dmFsZyc7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9zdGF0ZSddID0gJ1N0YW5kYXJkIHV0dmFsZyc7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9wcm92aW5jZSddID0gJ1N0YW5kYXJkIHV0dmFsZyc7CiRsYW5nWyd0aXRsZV9vcHRpb25fbmFtZSddID0gJ1ZhbGcgbmF2bic7CiRsYW5nWyd0aXRsZV9vcHRpb25fdmFsdWUnXSA9ICdWZXJkaSBzZW5kdCc7CiRsYW5nWyd0aXRsZV9wdWxsZG93bl9kZXRhaWxzJ10gPSAnTmVkdHJla2tzIHZhbGcnOwokbGFuZ1sndGl0bGVfbXVsdGlzZWxlY3RfZGV0YWlscyddID0gJ0ZsZXJ2YWxnIHZhbGcnOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fYWRkcmVzcyddID0gJ00mYXJpbmc7bCBlcG9zdGFkcmVzc2UnOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fZmlsZW5hbWUnXSA9ICdNJmFyaW5nO2wgRmlsbmF2bic7CiRsYW5nWyd0aXRsZV9lbWFpbF9mcm9tX25hbWUnXSA9ICcmcXVvdDtGcmEgbmF2biZxdW90OyBmb3IgZXBvc3QnOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9lbWFpbF9yZWdleCddID0gJ0JydWsgZW5rZWwgZXBvc3QgdmVyaWZpc2VyaW5nJzsKJGxhbmdbJ3RpdGxlX3JlbGF4ZWRfcmVnZXhfbG9uZyddID0gJ0JydWsgZW5rZWwgZXBvc3RhZHJlc3NlIHZlcmlmaXNlcmluZyAoZi5la3MuIHRpbGxhdCAmcXVvdDt4QHkmcXVvdDsgaXN0ZWRldCBmb3IgJmFyaW5nOyBrcmV2ZSAmcXVvdDt4QHkudGxkJnF1b3Q7KSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9mcm9tX2FkZHJlc3MnXSA9ICcmcXVvdDtGcmEgYWRyZXNzZSZxdW90OyBmb3IgZXBvc3QnOwokbGFuZ1sndGl0bGVfZW1haWxfZW5jb2RpbmcnXSA9ICdFcG9zdCB0ZWduc2V0dCBrb2RpbmcnOwokbGFuZ1sndGl0bGVfZGlyZWN0b3JfZGV0YWlscyddID0gJ05lZHRyZWtrLWJhc2VydGUgZXBvc3QgZGV0YWxqZXInOwokbGFuZ1sndGl0bGVfZmlsZV9uYW1lJ10gPSAnRmlsbmF2bic7CiRsYW5nWyd0aXRsZV9lbWFpbF9zdWJqZWN0J10gPSAnRXBvc3QgRW1uZSBsaW5qZSc7CiRsYW5nWyd0aXRsZV9mb3JtX25hbWUnXSA9ICdGcmEgbmF2bic7CiRsYW5nWyd0aXRsZV9mb3JtX3N0YXR1cyddID0gJ1NramVtYSBzdGF0dXMnOwokbGFuZ1sndGl0bGVfcmVhZHlfZm9yX2RlcGxveW1lbnQnXSA9ICdGZXJkaWcgZm9yIGFudmVuZGVsc2UnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MSddID0gJ0lra2UgZmVyZGlnJzsKJGxhbmdbJ3RpdGxlX3JlZGlyZWN0X3BhZ2UnXSA9ICdTaWRlICZhcmluZzsgdmlkZXJlc2VuZGUgdGlsIGV0dGVyIHNramVtYSBzZW5kdCc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkyJ10gPSAnVmVubmxpZ3N0IGxlZ2cgdGlsIGV0IGZlbHQgdGlsIHNramVtYWV0IHMmYXJpbmc7IGJydWtlcmVucyBpbm5za3JpdmluZyBibGlyIGJlaGFuZGxldC4gRHUga2FuICc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHlfbGluayddID0gJ2JydWsgZGVubmUgc25hcnZlaWVuJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fYWxpYXMnXSA9ICdTa2plbWEgYWxpYXMnOwokbGFuZ1sndGl0bGVfZmllbGRfYWxpYXNfc2hvcnQnXSA9ICdBbGlhcyAnOwokbGFuZ1sndGl0bGVfZm9ybV9maWVsZHMnXSA9ICdTa2plbWFmZWx0ZXInOwokbGFuZ1sndGl0bGVfZmllbGRfaWQnXSA9ICdGaWVsdCBJZCc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkYWxpYXNlcyddID0gJ1ZpcyBmZWx0IGFsaWFzZXInOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGFsaWFzZXNfbG9uZyddID0gJyZBcmluZzsgdmVsZ2UgZGV0dGUgdmlsIHZpc2UgZmVsdCBhbGlhc2VyIG4mYXJpbmc7ciBlbiBsZWdnZXIgdGlsIGVsbGVyIHJlZGlnZXJlciBldCBza2plbWEnOwokbGFuZ1sndGl0bGVfZmllbGRfbmFtZSddID0gJ0ZlbHQgbmF2bic7CiRsYW5nWyd0aXRsZV9maWVsZF9hbGlhcyddID0gJ0ZlbHQgYWxpYXMnOwokbGFuZ1sndGl0bGVfcmFkaW9ncm91cF9kZXRhaWxzJ10gPSAnUmFkaW9rbmFwcCBncnVwcGUgZGV0YWxqZXInOwokbGFuZ1sndGl0bGVfZmllbGRfdHlwZSddID0gJ0ZlbHQgdHlwZSc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkzJ10gPSAnZm9yICZhcmluZzsgbGFnZSBldCBza2plbWEgYmVoYW5kbGluZyBmZWx0JzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZm9ybSddID0gJ0xlZ2cgdGlsIG55dHQgc2tqZW1hJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbiddID0gJ1ZpcyBTa2plbWEgQnlnZ2VyIHZlcnNqb24/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbl9sb25nJ10gPSAnRGV0dGUgdmlsIGlubmthcHNsZSBkaXR0IHZlcnNqb25zbnVtbWVyIGZvciBTa2plbWEgYnlnZ2VyIG1vZHVsZW4gaSBlbiBrb21tZW50YXIsIGZvciAmYXJpbmc7IGhqZWxwZSBpIGZlaWxzJm9zbGFzaDtraW5nJzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZmllbGQnXSA9ICdMZWdnIHRpbCBueXR0IGZlbHQnOwokbGFuZ1sndGl0bGVfZm9ybV9zdWJtaXRfYnV0dG9uJ10gPSAnU2tqZW1hICZxdW90O1NlbmQmcXVvdDsgdGVrc3QgZm9yIGtuYXBwJzsKJGxhbmdbJ3RpdGxlX2J1dHRvbl90ZXh0J10gPSAnVGVrc3QgZm9yIGtuYXBwJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5J10gPSAnTGVnZyB0aWwgZXR0IEphdmFzY3JpcHQgdGlsIFV0ZiZvc2xhc2g7ciBrbmFwcGVuIGZvciAmYXJpbmc7IHVubmcmYXJpbmc7IGdqZW50YXR0ZSBpbm5zZW5kaW5nZXI/JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5X2hlbHAnXSA9ICdMZWdnIHRpbCBTaWtrZXJoZXRzIHNjcmlwdCc7CiRsYW5nWyd0aXRsZV9mb3JtX25leHRfYnV0dG9uJ10gPSAnU2tqZW1hICZxdW90O05lc3RlJnF1b3Q7IHRla3N0IGZvciBrbmFwcCAoYnJ1a3QgcCZhcmluZzsgZmxlcnNpZGVycyBza2plbWFlciknOwokbGFuZ1sndGl0bGVfZm9ybV9wcmV2X2J1dHRvbiddID0gJ1NramVtYSAmcXVvdDtGb3JyaWdlJnF1b3Q7IHRla3N0IGZvciBrbmFwcCAoYnJ1a3QgcCZhcmluZzsgZmxlcnNpZGVycyBza2plbWFlciknOwokbGFuZ1sndGl0bGVfZmllbGRfdmFsaWRhdGlvbiddID0gJ0ZlbHRzamVrayc7CiRsYW5nWyd0aXRsZV9maWVsZF90b192YWxpZGF0ZSddID0gJ0ZlbHQgJmFyaW5nOyBzamVra2UnOwokbGFuZ1sndGl0bGVfZmllbGRfY3NzX2lkJ10gPSAnQ1NTIGlkIGZvciBkZXR0ZSBmZWx0ZXQnOwokbGFuZ1sndGl0bGVfZm9ybV9jc3NfY2xhc3MnXSA9ICdDU1Mga2xhc3NlIGZvciBkZXR0ZSBza2plbWEnOwokbGFuZ1sndGl0bGVfZmllbGRfY3NzX2NsYXNzJ10gPSAnQ1NTIGtsYXNzZSBmb3IgZGV0dGUgZmVsdCc7CiRsYW5nWyd0aXRsZV9mb3JtX3ByZWRpc3BsYXlfdWR0J10gPSAnQnJ1a2VyIGRlZmluZXJ0IHRhZ2coVXNlciBEZWZpbmVkIFRhZy9VRFQpICZhcmluZzsga2FsbGUgZiZvc2xhc2g7ciBza2plbWFldCB2aXNlcyBmJm9zbGFzaDtyc3RlIGdhbmcgKGthbGxlcyBrdW4gZW4gZ2FuZyknOwokbGFuZ1sndGl0bGVfZm9ybV9wcmVkaXNwbGF5X2VhY2hfdWR0J10gPSAnQnJ1a2VyIERlZmluZXJ0ZSBUYWdnKFVEVCkgJmFyaW5nOyBrYWxsZSBvcHAgZiZvc2xhc2g7ciBza2plbWEgdmlzZXMgKGJsaXIga2FsbHQgb3BwIGZvciBodmVyIHNpZGUgZm9yIGZsZXJzaWRlLXNramVtYWVyKSc7CiRsYW5nWyd0aXRsZV9mb3JtX3ZhbGlkYXRlX3VkdCddID0gJ0JydWtlcmRlZmluZXJ0IHRhZ2coVURUKSAmYXJpbmc7IGthbGxlIG9wcCB1bmRlciBza2plbWEgdmFsaWRlcmluZyc7CiRsYW5nWyd0aXRsZV9mb3JtX3JlcXVpcmVkX3N5bWJvbCddID0gJ1N5bWJvbCBmb3IgJmFyaW5nOyBtZXJrZSBuJm9zbGFzaDtkdmVuZGlnZSBmZWx0JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkJ10gPSAnTiZvc2xhc2g7ZHZlbmRpZyc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9sb25nJ10gPSAnS3JldiBlbiByZXNwb25zIGZvciBkZXR0ZSBmZWx0JzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWwnXSA9ICdTa2p1bCBldGlrZXR0JzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWxfbG9uZyddID0gJ1NranVsIGRldHRlIGZlbHRldHMgbmF2biBwJmFyaW5nOyBza2plbWFldCc7CiRsYW5nWyd0aXRsZV90ZXh0YXJlYV9sZW5ndGgnXSA9ICdNYWtzaW1hbCBsZW5nZGUgcCZhcmluZzsgZmVsdGlubmhvbGQgKDAgZWxsZXIgYmxhbmsgYmV0eXIgaW5nZW4gZ3JlbnNlKSc7CiRsYW5nWyd0aXRsZV90ZXh0J10gPSAnU3RhdGlzayB0ZWtzdCAmYXJpbmc7IHZpc2UnOwokbGFuZ1sndGl0bGVfZmllbGRfcmVnZXgnXSA9ICcoUmVnZXgpIHNqZWtrJzsKJGxhbmdbJ3RpdGxlX2xpbmVzX3RvX3Nob3cnXSA9ICdBbnRhbGwgbGluamVyICZhcmluZzsgdmlzZSc7CiRsYW5nWyd0aXRsZV9yZWFkX29ubHknXSA9ICdTa3JpdmViZXNreXR0ZXQnOwokbGFuZ1snbm9fZGVmYXVsdCddID0gJ0luZ2VuIHN0YW5kYXJkJzsKJGxhbmdbJ3JlZGlyZWN0X2FmdGVyX2FwcHJvdmFsJ10gPSAnU2lkZSAmYXJpbmc7IHZpZGVyZXNlbmRlIHRpbCBldHRlciBnb2RramVubmluZyc7CiRsYW5nWyd0aXRsZV9yZWdleF9oZWxwJ10gPSAnRGV0dGUgdmFubGlnZSB1dHRyeWtrZXQgdmlsIGJhcmUgYmxpIGJydWt0IG9tICZxdW90O3ZhbGlkZXJpbmdzIHR5cGUmcXVvdDsgZXIgc2F0dCB0aWwgcmVnZXgtcmVsYXRlcnQgdmFsZy4gSW5rbHVkZXIgZnVsbCBQZXJsLXN0aWwgcmVnZXgsIGlua2x1ZGVydCBzdGFydC9zdG9wcCBzbGFzaGVyIG9nIGZsYWdnIChmLmVrcy4gJnF1b3Q7L2ltYWdlXC4oXGQrKS9pJnF1b3Q7KSc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9hYmJyZXYnXSA9ICdPYmxpZy4nOwokbGFuZ1sndGl0bGVfaGlkZV9lcnJvcnMnXSA9ICdTa2p1bCBmZWlsJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fZGlzcGxheXR5cGUnXSA9ICdTa2plbWEgdmlzbmluZ3MgdHlwZSc7CiRsYW5nWyd0aXRsZV9oaWRlX2Vycm9yc19sb25nJ10gPSAnSGluZHJlIGZlaWxzJm9zbGFzaDtraW5nIC8gZmVpbC1tZWxkaW5nZXIgZnJhICZhcmluZzsgdmlzZXMgdGlsIGJydWtlcmVuLic7CiRsYW5nWyd0aXRsZV9lbWFpbF90ZW1wbGF0ZSddID0gJ0Vwb3N0IG1hbCc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX3NpemUnXSA9ICdNYWtzaW11bSBvcHBsYXN0aW5nIGZpbHN0Jm9zbGFzaDtycmVsc2UgKGtpbG9ieXRlcyknOwokbGFuZ1sndGl0bGVfbWF4aW11bV9zaXplX2xvbmcnXSA9ICdEZW5uZSBiZWdyZW5zbmluZyBlciBldCB0aWxsZWdnIHRpbCBlbmh2ZXIgZ3JlbnNlIHNhdHQgYXYgcGhwIGVsbGVyIHdlYnNlcnZlciBrb25maWd1cmFzam9uZW4nOwokbGFuZ1sndGl0bGVfZmlsZV9kZXN0aW5hdGlvbiddID0gJ0thdGFsb2cgaHZvciBmaWxlciBza2FsIGxhZ3Jlcyc7CiRsYW5nWyd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ0dvZGtqZW50ZSBmaWxlbmRlbHNlcic7CiRsYW5nWyd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9uc19sb25nJ10gPSAnU2tyaXYgZW4ga29tbWEtc2VwYXJlcnQgbGlzdGUsIHV0ZWxhdHQgcHVua3R1bSAoZi5la3MuICZxdW90O2pwZyxnaWYsanBlZyZxdW90OykuIE1lbGxvbXJvbSB2aWwgYmxpIGlnbm9yZXJ0LiAmQXJpbmc7IGxhIGRldHRlIHYmYWVsaWc7cmUgdG9tdCB2aWwgc2kgaW5nZW4gcmVzdHJpa3Nqb25lci4nOwokbGFuZ1sndGl0bGVfc2hvd19saW1pdGF0aW9ucyddID0gJ1ZpcyByZXN0cmlrc2pvbmVyPyc7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zX2xvbmcnXSA9ICdWaXMgc3Qmb3NsYXNoO3JyZWxzZSBlbGxlciBmaWxlbmRlbHNlLXJlc3RyaWtzam9uZXIgcCZhcmluZzsgb3BwbGFzdGluZ3NmZWx0ZXQ/JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdGVtcGxhdGUnXSA9ICdNYWwgJmFyaW5nOyBicnVrZSBmb3IgJmFyaW5nOyB2aXNlIHNramVtYSc7CiRsYW5nWyd0aXRsZV9wYWdlX3hfb2ZfeSddID0gJ1NpZGUgJXMgYXYgJXMnOwokbGFuZ1sndGl0bGVfbm9fYWR2YW5jZWRfb3B0aW9ucyddID0gJ0ZlbHRldCBoYXIgaW5nZW4gYXZhbnNlcnRlIHZhbGcuJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdW5zcGVjaWZpZWQnXSA9ICdUZWtzdCAmYXJpbmc7IHZpc2UgZm9yIHVzcGVzaWZpc2VydGUgZmVsdCB2ZXJkaWVyJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9mYXN0YWRkX2xvbmcnXSA9ICdNdWxpZ2dqJm9zbGFzaDtyIHJhc2sgZmVsdC10aWxsZWdnaW5nIG1lZCBuZWR0cmVrayBmb3Igc2tqZW1hZXI/JzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9mYXN0YWRkJ10gPSAnTXVsaWdnaiZvc2xhc2g7ciBuZWR0cmVrayBmb3IgaHVydGlnIHRpbGxlZ2dpbmcgYXYgZmVsdGVyPyc7CiRsYW5nWyd0aXRsZV9mYXN0YWRkJ10gPSAnSHVydGlnLXRpbGxlZ2cgYXYgZmVsdGVyJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9hbnRpc3BhbV9sb25nJ10gPSAnJkFyaW5nOyBoYWtlIGF2IGRldHRlIHZpbCBrdW4gdGlsbGF0ZSBhdCAxMCBlLXBvc3RlciAmYXJpbmc7IGJsaXIgZ2VuZXJlcnQgZnJhIGVuIGdpdHQgSVAgYWRyZXNzZSAocHIgdGltZSkuJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9hbnRpc3BhbSddID0gJ1NsJmFyaW5nOyBwJmFyaW5nOyBwcmltaXRpdmUgYW50aXNwYW0gZWdlbnNrYXBlcj8nOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGlkcyddID0gJ1ZpcyBGZWx0IElEZXInOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGlkc19sb25nJ10gPSAnJkFyaW5nOyBoYWtlIGF2IGRldHRlIHZpbCB0aWxsYXRlIHZpc25pbmcgYXYgZmVsdCBpZGVyIHVuZGVyIG9wcHJldHRlbHNlIGVsbGVyIHJlZGlnZXJpbmcgYXYgZXQgc2tqZW1hJzsKJGxhbmdbJ3RpdGxlX3htbF90b191cGxvYWQnXSA9ICdMYXN0IG9wcCBza2plbWEgc29tIFhNTCBmaWwnOwokbGFuZ1sndGl0bGVfeG1sX3VwbG9hZF9mb3JtbmFtZSddID0gJ0Jlbnl0dCBkZXR0ZSBza2plbWFuYXZuZXQnOwokbGFuZ1sndGl0bGVfaW1wb3J0X2xlZ2VuZCddID0gJ1hNTCBTa2plbWEgaW1wb3J0JzsKJGxhbmdbJ3RpdGxlX3htbF91cGxvYWRfZm9ybWFsaWFzJ10gPSAnQmVueXR0IGRldHRlIHNramVtYSBhbGlhc2V0JzsKJGxhbmdbJ3RpdGxlX2h0bWxfZW1haWwnXSA9ICdHZW5lcmVyIEhUTUwgZXBvc3Q/JzsKJGxhbmdbJ3RpdGxlX2xpbmtfYXV0b3BvcHVsYXRlJ10gPSAnRnlsbCB1dCBhdXRvbWF0aXNrPyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZV9oZWxwJ10gPSAnRnlsbCB1dCBhdXRvbWF0aXNrIG1lZCBVUkwmIzAzOTtlbiB0aWwgc2lkZW4gc29tIGlubmVob2xkZXIgc2tqZW1hZXQ/IChkZXR0ZSBvdmVyc3R5cmVyIExlbmtlIHRpbCBuZXR0c3RlZCBzaWRlIHZhbGdldCBuZWRlbmZvciknOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9saW5rJ10gPSAnU3RhbmRhcmQgbGVua2UgVVJMJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfbGlua190aXRsZSddID0gJ1N0YW5kYXJkIGxlbmtlIHRla3N0JzsKJGxhbmdbJ3RpdGxlX2xpbmtfdG9fc2l0ZXBhZ2UnXSA9ICdMZW5rZSB0aWwgbmV0dHN0ZWQgc2lkZSc7CiRsYW5nWyd0aXRsZV9jYXB0Y2hhX25vdF9pbnN0YWxsZWQnXSA9ICdEdSBrYW4gYmVueXR0ZSA8YSBocmVmPSJodHRwOi8vd3d3Lndpa2lwZWRpYS5vcmcvd2lraS9DYXB0Y2hhIiB0YXJnZXQ9Il9uZXciPiZxdW90O0NhcHRjaGEmcXVvdDs8L2E+IGZvciAmYXJpbmc7IGJlc2t5dHRlIHNramVtYSBpbm5zZW5kaW5nZXIgb20gZHUgaW5zdGFsbGVyZXIgQ2FwdGNoYSBtb2R1bGVuLiBGb3IgbWVyZSBpbmZvcm1hc2pvbiwgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9jYXB0Y2hhLyI+Y2hlY2sgdGhlIENhcHRjaGEgcHJvamVjdDwvYT4uJzsKJGxhbmdbJ3RpdGxlX3VzZV9jYXB0Y2hhJ10gPSAnQnJ1a2UgQ2FwdGNoYSBmb3IgJmFyaW5nOyBiZXNreXR0ZSBza2plbWEgaW5uc2VuZGluZ2VyPyc7CiRsYW5nWyd0aXRsZV91c2VfY2FwdGNoYV9oZWxwJ10gPSAnSGFrIGF2IGhlciBmb3IgJmFyaW5nOyBiZXNreXR0ZSBkaXR0IHNramVtYSBtZWQgZW4gPGEgaHJlZj0iaHR0cDovL3d3dy53aWtpcGVkaWEub3JnL3dpa2kvQ2FwdGNoYSIgdGFyZ2V0PSJfbmV3Ij4mcXVvdDtDYXB0Y2hhJnF1b3Q7PC9hPi4nOwokbGFuZ1sndGl0bGVfdXNlcl9jYXB0Y2hhJ10gPSAnVmVubmxpZ3N0IGJla3JlZnQgYXQgZHUgaWtrZSBlciBldCBza3JpcHQgdmVkICZhcmluZzsgc2tyaXZlIGlubiBib2tzdGF2ZW5lIGZyYSBiaWxkZXQuJzsKJGxhbmdbJ3RpdGxlX3VzZXJfY2FwdGNoYV9lcnJvciddID0gJ0ZlaWwgdGVrc3QgZm9yIENhcHRjaGEnOwokbGFuZ1snd3JvbmdfY2FwdGNoYSddID0gJ0NhcHRjaGEgdGVrc3RlbiBibGUgaWtrZSBrb3JyZWt0IGlubnNrcmV2ZXQuJzsKJGxhbmdbJ3RpdGxlX3RpdGxlX3VzZXJfY2FwdGNoYSddID0gJ0hqZWxwZXRla3N0IGZvciBDYXB0Y2hhJzsKJGxhbmdbJ3RpdGxlX2RvbnRfc3VibWl0X3VuY2hlY2tlZCddID0gJ0lra2Ugc2VuZCB2ZXJkaWVyIGZvciBpa2tlLWF2a3J5c3NlZGUgYm9rc2VyJzsKJGxhbmdbJ3RpdGxlX2RvbnRfc3VibWl0X3VuY2hlY2tlZF9oZWxwJ10gPSAnSGFrIGF2IGRlbm5lIG9tIGR1IGt1biB2aWwgYXQgYXZrcnlzc2VkZSBib2tzZXIgc2thbCBnaSB2ZXJkaWVyLic7CiRsYW5nWydsaW5rX2xhYmVsJ10gPSAnTGVua2UgZXRpa2V0dCc7CiRsYW5nWydsaW5rX2Rlc3RpbmF0aW9uJ10gPSAnTGVua2UgbSZhcmluZztsIFVSTCc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3NldCddID0gJ0F2a3J5c3NldCBzb20gc3RhbmRhcmQ/JzsKJGxhbmdbJ3RpdGxlXzI0X2hvdXInXSA9ICdCZW55dHQgMjQtdGltZXJzIGtsb2trZT8nOwokbGFuZ1sndGl0bGVfYmVmb3JlX25vb24nXSA9ICdBTSAnOwokbGFuZ1sndGl0bGVfYWZ0ZXJfbm9vbiddID0gJ1BNICc7CiRsYW5nWyd0aXRsZV9zbWFydHlfZXZhbCddID0gJ1Byb3Nlc3NlciBzbWFydHkgdGFnZ2VyIGlubmkgZmVsdGVyPyc7CiRsYW5nWyd0aXRsZV90ZXh0YXJlYV9yb3dzJ10gPSAnUmFkZXIgKG1lcms6IGRldHRlIGthbiBibGkgb3ZlcnN0eXJ0IGF2IENTUyknOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfY29scyddID0gJ0tvbG9ubmVyIChtZXJrOiBkZXR0ZSBrYW4gYmxpIG92ZXJzdHlydCBhdiBDU1MpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbWFpbiddID0gJ0hvdmVkIFNramVtYSBEZXRhbGplcic7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2JsYW5rJ10gPSAnU3RhbmRhcmQgZXIgYmxhbmsnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9ibGFua19oZWxwJ10gPSAnU3RhbmRhcmQgZXIgYmxhbmsgKGZqZXJuIGF2aGFraW5nIGZvciAmYXJpbmc7IGJlbnl0dGUgZGFnZW5zIGRhdG8gc29tIHN0YW5kYXJkKSc7CiRsYW5nWyd0aXRsZV9zaG93X3VzZXJuYW1lJ10gPSAnVmlzIElubmxvZ2dpbmdzbmF2bihsb2dpbiBuYW1lKT8nOwokbGFuZ1sndGl0bGVfc2hvd191c2VyZmlyc3RuYW1lJ10gPSAnVmlzIGJydWtlcmVucyBmb3JuYXZuPyc7CiRsYW5nWyd0aXRsZV9zaG93X3VzZXJsYXN0bmFtZSddID0gJ1ZpcyBicnVrZXJlbnMgZXR0ZXJuYXZuPyc7CiRsYW5nWyd0aXRsZV9yZXN0cmljdF90b19ncm91cCddID0gJ0JlZ3JlbnMgYnJ1a2VybGlzdGVuIHRpbCBicnVrZXJlIGkgZW4gc3Blc2lmaWsgZ3J1cHBlJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRfZGF0YWJhc2VfZGF0YSddID0gJ0tyeXB0ZXIgZGF0YSBsYWdyZXQgaSBkYXRhYmFzZW4nOwokbGFuZ1sndGl0bGVfY3J5cHRfY2VydCddID0gJ1NlcnRpZmlrYXQgZm9yIGtyeXBldGVyaW5nIGF2IGRhdGEnOwokbGFuZ1sndGl0bGVfZW5jcnlwdGlvbl9rZXlmaWxlJ10gPSAnUGFzc29yZGZyYXNlIGVsbGVyIHN0aSB0aWwgZmlsIHNvbSBpbm5laG9sZGVyIHBhc3NvcmRmcmFzZS4gKE9tIE9wZW5TU0wgYmVueXR0ZXMgZXIgZGV0dGUgcGFzc29yZGZyYXNlbiBmb3IgcHJpdmF0biZvc2xhc2g7a2tlbGVuKSc7CiRsYW5nWyd0aXRsZV9lbmNyeXB0X3NvcnRmaWVsZHMnXSA9ICdTbGFkZCBzb3J0ZXJpbmdzZmVsdGVyPyc7CiRsYW5nWyd0aXRsZV9wcml2YXRlX2tleSddID0gJ1ByaXZhdG4mb3NsYXNoO2trZWwgJmFyaW5nOyBiZW55dHRlIGZvciAmYXJpbmc7IGtyeXB0ZXJlIGRhdGEnOwokbGFuZ1sndGl0bGVfZW5jcnlwdF9zb3J0ZmllbGRzX2hlbHAnXSA9ICdEZXR0ZSBzbGFkZGVyIHNvcnRlcmluZ3NmZWx0ZW5lLCBtZW4gbGFyIGRlIGYmb3NsYXNoO3JzdGUgZiZhcmluZzsgYm9rc3RhdmVuZSB2JmFlbGlnO3JlIHVrcnlwdGVydGUsIGRldHRlIGdpciBlbiBzJmFyaW5nO3JiYXJoZXQsIG1lbiBmb3IgZGUgZmxlc3RlIGJydWtlcmUgZXIgZGV0dGUgZW4gYWtzZXB0YWJlbCBtaWRkZWx2ZWkgbWVsbG9tIHNpa2tlcmhldCBvZyBtdWxpZ2hldGVuIHRpbCAmYXJpbmc7IHNvcnRlcmUgcG9zdGVyLiBTb3J0ZXJpbmdlbiBibGlyIHMmYXJpbmc7bm4gb210cmVudCwgbWVuIGZvcmJsaXIgZ2Fuc2tlIGdvZC4gT20gZHUgaWtrZSBiZW55dHRlciBkZXR0ZSB2YWxnZXQgcyZhcmluZzsgdmlsIHNvcnRlcmluZ3NmZWx0ZXIgYmxpIGxhZ3JldCBpIGtsYXJ0ZWtzdC4nOwokbGFuZ1sndGl0bGVfZW5jcnlwdGlvbl9mdW5jdGlvbnMnXSA9ICdMYWdyaW5nc2tyeXB0ZXJpbmcgaWtrZSB0aWxnamVuZ2VsaWcnOwokbGFuZ1sndGl0bGVfaW5zdGFsbF9jcnlwdG8nXSA9ICdWZW5ubGlnc3QgaW5zdGFsbGVyIE9wZW5TU0wgbW9kdWxlbiBlbGxlciBtY3J5cHQtc3Qmb3NsYXNoO3R0ZSBvbSBkdSAmb3NsYXNoO25za2VyICZhcmluZzsgYmVueXR0ZSBkYXRhYmFzZWtyeXB0ZXJpbmcuJzsKJGxhbmdbJ3RpdGxlX2luc3RhbGxfY3VybCddID0gJ0tvbnRyb2xsZXIgYXQgZHUgaGFyIENVUkwgc3Qmb3NsYXNoO3R0ZSBha3RpdiBpIGRpbiBQSFAgaW5zdGFsbGFzam9uLiBTZSBodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Jvb2suY3VybC5waHAnOwokbGFuZ1sndGl0bGVfbWxlX3ZlcnNpb24nXSA9ICdLaiZvc2xhc2g7ciBpIE1MRS1tb2R1cyc7CiRsYW5nWyd0aXRsZV9tbGVfdmVyc2lvbl9sb25nJ10gPSAnRW5kcmluZ2VyL3N0Jm9zbGFzaDt0dGUgZm9yIENNU01TIE11bHRpLUxhbmd1YWdlIEVkaXRpb24gZm9yay4gSWtrZSBoYWsgYXYgZm9yIGRldHRlIG9tIGR1IGlra2Uga2omb3NsYXNoO3JlciBNTEUgdmVyc2pvbmVuLic7CiRsYW5nWyd0aXRsZV9lbnN1cmVfY2VydF9rZXlfbWF0Y2gnXSA9ICdWJmFlbGlnO3Igc2lra2VyIHAmYXJpbmc7IGF0IGR1IHZlbGdlciBkZW4gcHJpdmF0ZSBuJm9zbGFzaDtra2VsZW4gc29tIHRpbGgmb3NsYXNoO3JlciBzZXJ0aWZpa2F0ZXQgZHUgYmVueXR0ZXIgZm9yIGtyeXB0ZXJpbmdlbiEnOwokbGFuZ1snY2hvb3NlX2NyeXB0J10gPSAnS3J5cHRlcmluZ3NiaWJsaW90ZWsnOwokbGFuZ1sndGl0bGVfZW5jcnlwdF9kYXRhYmFzZV9sb25nJ10gPSAnSGFrIGF2IGRlbm5lIGZvciAmYXJpbmc7IGtyeXB0ZXJlIGRlIGxhZ3JlZGUgZGF0YS4gRGV0dGUgZ2omb3NsYXNoO3IgZGV0IG1lciB2YW5za2VsaWcgKG1lbiBpa2tlIHVtdWxpZykgZm9yIGhhY2tlcmUgJmFyaW5nOyBsZXNlIGluZm9ybWFzam9uZW4uJzsKJGxhbmdbJ2Nob29zZV9jcnlwdF9sb25nJ10gPSAnVmFsZ2VuZSBuZWRlbmZvciBlciBrdW4gZ3lsZGlnZSBvbSBkdSBiZW55dHRlciBPcGVuU1NMIEVuY3J5cHRpb24gYmlibGlvdGVrZXQnOwokbGFuZ1sndGl0bGVfY3J5cHRfbGliJ10gPSAnS3J5cHRlcmluZ3NiaWJsaW90ZWsnOwokbGFuZ1snb3BlbnNzbCddID0gJ09wZW5TU0wgYmlibGlvdGVrJzsKJGxhbmdbJ21jcnlwdCddID0gJ1BIUCBtY3J5cHQgYmlibGlvdGVrJzsKJGxhbmdbJ3RpdGxlX2ZldV9iaW5kaW5nJ10gPSAnRnJvbnRlbmQgVXNlciB0aWxrb2JsaW5nJzsKJGxhbmdbJ3RpdGxlX2luc3RhbGxfZmV1J10gPSAnVmVubmxpZ3N0IGluc3RhbGxlciBGcm9udGVuZCBVc2VyIG1vZHVsZW4gZm9yICZhcmluZzsga29ibGUgZXQgc2tqZW1hIG9nIGRldHMgZGF0YSB0aWwgZW4gc3Blc2lmaWsgYnJ1a2VyJzsKJGxhbmdbJ3RpdGxlX2ZldV9iaW5kX2hlbHAnXSA9ICdIYWsgYXYgZGVubmUgZm9yICZhcmluZzsgbCZhcmluZztzZSBmcm9udC1lbmQgdGlsZ2FuZyB0aWwgZGF0YSBpIGRldHRlIHNramVtYSB0aWwgZGVuIGlubmxvZ2dlZGUgZnJvbnQtZW5kIGJydWtlcmVuLic7CiRsYW5nWyd0aXRsZV9lbmNyeXB0aW9uJ10gPSAnS3J5cHRlcmluZyc7CiRsYW5nWyd0aXRsZV9leHBvcnRfZm9ybV90b191ZHQnXSA9ICdFa3Nwb3J0ZXJlIHNramVtYXJlZmZlcmFuc2UgdGlsIFVEVCBzb20gJHBhcmFtc1smIzAzOTtGT1JNJiMwMzk7XT8gKGlra2UgZ2omb3NsYXNoO3IgZGV0dGUgb20gZHUgc2thbCBraiZvc2xhc2g7cmUgIHByaW50X3IoJHBhcmFtcykgKSc7CiRsYW5nWyd0aXRsZV91cmxfaGVscCddID0gJ0hlbGUgbmV0dGFkcmVzc2VuLCBpbmtsdWRlcnQgcHJvdG9rb2xsZW4gb2cgYmFuZSAoZi5la3MsIGh0dHA6Ly9teWhvc3QuY29tL2Zvcm1faGFuZGxlci5jZ2kpJzsKJGxhbmdbJ3RpdGxlX3VybCddID0gJ1NramVtYWlubnNlbmRpbmdzIFVSTCc7CiRsYW5nWyd0aXRsZV9tZXRob2QnXSA9ICdTa2plbWEgbWV0b2RlJzsKJGxhbmdbJ3RpdGxlX21hcHNfdG8nXSA9ICdLb2JsZSBmZWx0ZXQgJnF1b3Q7JXMmcXVvdDsgdGlsIHNramVtYWlubnNlbmRpbmdzIHZhcmlhYmVsZW4nOwokbGFuZ1sndGl0bGVfYWRkaXRpb25hbCddID0gJ1l0dGVybGlnZXJlIGlubnNlbmRpbmcnOwokbGFuZ1sndGl0bGVfYWRkaXRpb25hbF9oZWxwJ10gPSAnTm9lICZhcmluZzsgYmxpIGxhZ3QgdGlsIGlubnNlbmRpbmdzIHBheWxvYWQgaSBVUkwta29kZXQgZm9ybSAoRWtzZW1wZWwgJnF1b3Q7dXNlcj1zdGV2ZStqb2JzJmFtcDtlbXBsb3llZV9udW1iZXI9MSknOwokbGFuZ1sndGl0bGVfaW5jbHVkZV9pbl9zdWJtaXNzaW9uJ10gPSAnSW5rbHVkZXIgZmVsdGV0IGkgaW5uc2VuZGluZ2VuJzsKJGxhbmdbJ3RpdGxlX2RhdGVfb3JkZXInXSA9ICdSZWtrZWYmb3NsYXNoO2xnZSBmb3IgZGF0byBrb21wb25lbnQtZmVsdGV0IChmb3IgaW5uc2tyaXZpbmcpJzsKJGxhbmdbJ3RpdGxlX2RhdGFfc3RvcmVkX2luX2ZiciddID0gJ0RhdGEgdmlsIGJsaSBsYWdyZXQgaSBldCBYTUwgZm9ybWF0IGkgW1BSRUZJWF1fbW9kdWxlX2ZiX2Zyb21icm93c2VyIGRhdGFiYXNlIHRhYmVsbGVuLic7CiRsYW5nWydlcnJvcl9oYXNfbm9fZmJfZmllbGQnXSA9ICdGZWlsISBFbnRlbiBza2plbWFldCBoYXIgaW5nZW4gZm9ybV9idWlsZGVyIGRpc3Bvc2lzam9uLCBlbGxlciBkZXQgZmVpbGV0IGkgbGFzdGluZyAocGdhIG1pbm5lIHByb2JsZW1lcj8pJzsKJGxhbmdbJ2hlbHBfZGF0ZV9vcmRlciddID0gJ0Jlbnl0dCAmcXVvdDttJnF1b3Q7IGZvciBtJmFyaW5nO25lZCwgJnF1b3Q7ZCZxdW90OyBmb3IgZGFnLCBvZyAmcXVvdDt5JnF1b3Q7IGZvciAmYXJpbmc7ci4gU2tpbGwgZWxlbWVudGVuZSBtZWQgYmluZGVzdHJlay4nOwokbGFuZ1sncmVzdHJpY3RlZF90b19ncm91cCddID0gJ0t1biBpIGdydXBwZSAlcyc7CiRsYW5nWyd0aXRsZV9zaG93X3RvX3VzZXInXSA9ICdWaXMgdGlsIGJydWtlcj8nOwokbGFuZ1snaGVscF9sZWF2ZWVtcHR5J10gPSAnRGV0dGUgZmVsdGV0IGthbiBkdSBsYSB2JmFlbGlnO3JlIGJsYW5rdCc7CiRsYW5nWydoZWxwX3ZhcmlhYmxlc19mb3JfdGVtcGxhdGUnXSA9ICdWYXJpYWJsZXIgZm9yIG1hbCc7CiRsYW5nWydoZWxwX3ZhcmlhYmxlc19mb3JfY29tcHV0YXRpb24nXSA9ICdUaWxnamVuZ2VsaWdlIHZhcmlhYmxlcic7CiRsYW5nWydoZWxwX3BocF92YXJpYWJsZV9uYW1lJ10gPSAnUEhQIHZhcmlhYmVsJzsKJGxhbmdbJ2hlbHBfc3VibWlzc2lvbl9kYXRlJ10gPSAnRGF0byBmb3IgaW5ubGV2ZXJpbmcnOwokbGFuZ1snaGVscF9zZXJ2ZXJfbmFtZSddID0gJ0RpbiBzZXJ2ZXInOwokbGFuZ1snaGVscF9zdWJfc291cmNlX2lwJ10gPSAnSVAgYWRyZXNzZSB0aWwgcGVyc29uZW4gc29tIGJydWtlciBza2plbWFldCc7CiRsYW5nWydoZWxwX3N1Yl91cmwnXSA9ICdMaW5rIHRpbCBzaWRlbiBzb20gaW5uZWhvbGRlciBza2plbWFldCc7CiRsYW5nWydoZWxwX2ZiX3ZlcnNpb24nXSA9ICdGb3JtQnVpbGRlciB2ZXJzam9uJzsKJGxhbmdbJ2hlbHBfdGFiJ10gPSAnVGFidWxhciB0ZWduJzsKJGxhbmdbJ2hlbHBfb3RoZXJfZmllbGRzJ10gPSAnQWx0ZW5hdGl2ZSBmZWx0bmF2biBrYW4gYmVueXR0ZXMgdXRieXR0YmFydCAoc3Blc2llbHQgbnl0dGlnIG9tIFNtYXJ0eSBwcm90ZXN0ZXJlciBwJmFyaW5nOyBib2tzdGF2ZXIgdXRlbmZvciBBU0NJSSAzMi0xMjYpLiA8YnIgLz5BbmRyZSBmZWx0IHZpbCBibGkgdGlsZ2plbmdlbGlnZSBuJmFyaW5nO3IgZHUgbGVnZ2VyIGRlbSB0aWwgc2tqZW1hZXQuJzsKJGxhbmdbJ2hlbHBfYXJyYXlfZmllbGRzJ10gPSAnWWV0IGFub3RoZXIgd2F5IG9mIGFjY2Vzc2luZyBmaWVsZCB2YWx1ZXMgaXMgdmlhICRmaWVsZG5hbWVfb2JqLCAkYWxpYXNfb2JqLCBvciAkZmxkXyNfb2JqLCB3aGVyZSBlYWNoIGZpZWxkIGlzIGFuIG9iamVjdCBjb250YWluaW5nOjxiciAvPjx0YWJsZT4NCjx0cj48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7Pm5hbWU8L3RkPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+RmllbGQgTmFtZTwvdGQ+PC90cj4NCjx0cj48dGQ+dHlwZTwvdGQ+PHRkPkZpZWxkIFR5cGU8L3RkPjwvdHI+DQo8dHI+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz5pZDwvdGQ+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz5JbnRlcm5hbCBGaWVsZCBJRDwvdGQ+PC90cj4NCjx0cj48dGQ+dmFsdWU8L3RkPjx0ZD5IdW1hbi1yZWFkYWJsZSBWYWx1ZTwvdGQ+PC90cj4NCjx0cj48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7PnZhbHVlQXJyYXk8L3RkPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+QXJyYXkgb2YgZmllbGQgdmFsdWUocyk8L3RkPjwvdHI+PC90YWJsZT48ZW0+ZS5nLjwvZW0+LCB5b3UgY291bGQgdXNlICZxdW90O3skZmxkXzFfb2JqLT5uYW1lfSA9IHskZmxkXzFfb2JqLT52YWx1ZX0nOwokbGFuZ1snaGVscF9kYXRlX2Zvcm1hdCddID0gJ1NlIDxhIGhyZWY9JiMwMzk7aHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5kYXRlLnBocCYjMDM5OyB0YXJnZXQ9X05FVz50aGUgUEhQIE1hbnVhbDwvYT4gZm9yIGZvcm1hdGVyaW5ncyBoamVscC4nOwokbGFuZ1snaGVscF92YXJpYWJsZV9uYW1lJ10gPSAnVmFyaWFiZWwnOwokbGFuZ1snaGVscF9mb3JtX2ZpZWxkJ10gPSAnRmVsdCByZXByZXNlbnRlcnQnOwokbGFuZ1snbGlua19iYWNrX3RvX2Zvcm0nXSA9ICcmbGFxdW87IFRpbGJha2UgdGlsIHNramVtYSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX3RlbXBsYXRlJ10gPSAnTGFnIGVrc2VtcGVsbWFsJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaHRtbF90ZW1wbGF0ZSddID0gJ09wcHJldHQgRWtzZW1wZWwgSFRNTC1lcG9zdCBtYWwnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9oZWFkZXJfdGVtcGxhdGUnXSA9ICdPcHByZXR0IEVrc2VtcGVsIEhlYWRlciBtYWwnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9mb290ZXJfdGVtcGxhdGUnXSA9ICdPcHByZXR0IEVrc2VtcGVsIEZvb3RlciBtYWwnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9oZWFkZXInXSA9ICdMYWcgZWtzZW1wZWwgb3ZlcnNrcmlmdCc7CiRsYW5nWydoZWxwX3RhYl9zeW1ib2wnXSA9ICdldCB0YWJ1bGF0b3IgdGVnbic7CiRsYW5nWyd0aXRsZV9maWxlX3RlbXBsYXRlJ10gPSAnTWFsIGZvciAmZWFjdXRlO24gbGluamUgYXYgdXRkYXRhIGZpbGVuJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfaGVhZGVyJ10gPSAnTWFsIGZvciBob2RldCBwJmFyaW5nOyB1dGRhdGEgZmlsZW4nOwokbGFuZ1sndGl0bGVfZmlsZV9mb290ZXInXSA9ICdNYWwgZm9yIGJ1bm50ZWtzdGVuIHAmYXJpbmc7IHV0ZGF0YSBmaWxlbic7CiRsYW5nWyd0aXRsZV9jb25maXJtYXRpb25fdXJsJ10gPSAnTGluayAmYXJpbmc7IGtsaWtrZSBmb3Igc2tqZW1hIGJla3JlZnRlbHNlJzsKJGxhbmdbJ3RpdGxlX3ZhbHVlJ10gPSAnVmVyZGkgKHNlIEF2YW5zZXJ0IGZsaWtlbiBvbSBkdSBiZW55dHRlciBTbWFydHkgdGFnZ2VyKSc7CiRsYW5nWyd0aXRsZV9kYXRlX2Zvcm1hdCddID0gJ0RhdG8gZm9ybWF0IChzdGFuZGFyZCA8YSBocmVmPSJodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwIj5QSFAgRGF0ZSBGb3JtYXRzPC9hPiknOwokbGFuZ1sndGl0bGVfdXNlX3d5c2l3eWcnXSA9ICdCcnVrZSBXWVNJV1lHIHJlZGlnZXJlciBmb3IgdGVrc3Qgb21yJmFyaW5nO2RldD8nOwokbGFuZ1sndGl0bGVfc3VibWl0X2FjdGlvbnMnXSA9ICdPcHBmJm9zbGFzaDtyc2VsIGZvciBTa2plbWEgSW5uc2VuZGluZyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfbGFiZWxzJ10gPSAnRXRpa2V0dCBmb3IgSW5uc2VuZGluZ3NrbmFwcGVuJzsKJGxhbmdbJ3RpdGxlX3NvcnRhYmxlX2ZpZWxkJ10gPSAnU29ydGVyYmFydCBmZWx0ICMlcyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfaGVscCddID0gJ0Rlbm5lIHNpZGVuIGxhciBkZWcgdGlscGFzc2UgU2tqZW1hIElubnNlbmRpbmcuIERldCBiZXN0ZW1tZXIgaWtrZSBodmEgU2tqZW1hIEJ5Z2dlciBnaiZvc2xhc2g7ciBtZWQgZGUgaW5uc2VuZHRlIGRhdGEuIERldHRlIGthbiBkdSBzZXR0ZSBvcHAgdmVkICZhcmluZzsgbGVnZ2UgdGlsICZxdW90O0Rpc3Bvc2lzam9uJnF1b3Q7KGdlbXl0dCkgZmVsdGVyIHRpbCBkaXR0IHNramVtYS4nOwokbGFuZ1sndGl0bGVfc3RhcnRfeWVhciddID0gJyZBcmluZztyc2ludGVydmFsbCBzdGFydCc7CiRsYW5nWyd0aXRsZV9lbmRfeWVhciddID0gJyZBcmluZztyc2ludGVydmFsbCBzbHV0dCc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3llYXInXSA9ICdTdGFuZGFyZCAmYXJpbmc7cic7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3llYXJfaGVscCddID0gJyhTZXR0IHRpbCAtMSBmb3IgYXQgc3RhbmRhcmQgJmFyaW5nO3Igc2thbCBibGkgbiZhcmluZzt2JmFlbGlnO3JlbmRlICZhcmluZztyKSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYWN0aW9uJ10gPSAnRXR0ZXIgc2tqZW1hZXQgZXIgc2VuZHQnOwokbGFuZ1sndGl0bGVfc3VibWl0X3Jlc3BvbnNlJ10gPSAnUmVzcG9ucyBzb20gc2thbCB2aXNlcyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfZGF0ZSddID0gJ0RhdG8gaW5uc2VuZHQnOwokbGFuZ1sndGl0bGVfYXBwcm92YWxfZGF0ZSddID0gJ0RhdG8gZ29ka2plbnQgKGF2IGFkbWluKSc7CiRsYW5nWyd0aXRsZV91c2VyX2FwcHJvdmVkJ10gPSAnRGF0byBnb2RramVudCAoYXYgaW5uc2VuZGVyKSc7CiRsYW5nWydkaXNwbGF5X3RleHQnXSA9ICdWaXMgJnF1b3Q7SW5uc2VuZGluZ3MgbWFsJnF1b3Q7JzsKJGxhbmdbJ3JlZGlyZWN0X3RvX3BhZ2UnXSA9ICdPbWRpcmlnZXIgdGlsIG5ldHRzaWRlJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9yZXNwb25zZV9oZWxwJ10gPSAnRGVubmUgbWFsZW4gZXIgZm9yIGRldCBzb20gc2thbCB2aXNlcyB0aWwgYnJ1a2VyZW4gZXR0ZXIgZXQgc2tqZW1hIGVyIGlubnNlbmR0LiBEZW5uZSBtYWxlbiBoYXIgaW5nZW4gdmlya25pbmcgcCZhcmluZzsgZXBvc3Qgc29tIGdlbmVyZXJlcyBlbGxlciBhbmRyZSBza2plbWFnZW15dHRlciAgLS0gZHUgc2V0dGVyIGRlIG1hbGVuZSAoaHZvciBkZXQgZXIgcmVsZXZhbnQpIGkgJnF1b3Q7YXZhbnNlcnQmcXVvdDsgZmxpa2VuIHAmYXJpbmc7IGRpc3NlIGdlbXl0dGVuZXMgZmVsdGVyLic7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9wYWdlJ10gPSAnTSZhcmluZztsIFNpZGUnOwokbGFuZ1sndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzJ10gPSAnS3JldiBGZWx0bmF2bic7CiRsYW5nWyd0aXRsZV9yZXF1aXJlX2ZpZWxkbmFtZXNfbG9uZyddID0gJ0tyZXYgYXQgZmVsdGVyIHNrYWwgaGEgZXR0IG5hdm4/JzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWVsZG5hbWVzJ10gPSAnS3JldiB1bmlrZSBmZWxuYXZuJzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWVsZG5hbWVzX2xvbmcnXSA9ICdLcmV2IGF0IGZlbHRlciBza2FsIGhhIHVuaWtlIGZlbHRuYXZuPyc7CiRsYW5nWyd0aXRsZV9yZW9yZGVyX2Zvcm0nXSA9ICdPbXNvcnRlciBmZWx0ZXInOwokbGFuZ1sndGl0bGVfbG9hZF90ZW1wbGF0ZSddID0gJ0xhc3QgbWFsJzsKJGxhbmdbJ3RpdGxlX2FkZF9idXR0b25fdGV4dCddID0gJ0xlZ2cgdGlsIEtuYXBwIHRla3N0JzsKJGxhbmdbJ3RpdGxlX2RlbF9idXR0b25fdGV4dCddID0gJ1NsZXR0IEtuYXBwIHRla3N0JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2hlbHB0ZXh0J10gPSAnSGplbHBldGVrc3QgJmFyaW5nOyB2aXNlIGZvciBkZXR0ZSBmZWx0ZXQnOwokbGFuZ1sndGl0bGVfc3RyaW5nX29yX251bWJlcl9ldmFsJ10gPSAnRm9ydG9sayB2YXJpYWJsZXIgdGlsICZhcmluZzsgdiZhZWxpZztyZSBudW1tZXIgZWxsZXIgc3RyZW5nZXInOwokbGFuZ1sndGl0bGVfb3JkZXInXSA9ICdUb2xrbmluZ3NyZWtrZXJmJm9zbGFzaDtsZ2UnOwokbGFuZ1sndGl0bGVfb3JkZXJfaGVscCddID0gJ09tIG1lciBlbm4gZXQgQmVyZWduZXQgZmVsdCBla3Npc3RlcmVyLCB2aWwgZGUgYmxpIGJlcmVnbmV0IGZyYSBkZXQgbGF2ZXN0ZSByZWtrZWYmb3NsYXNoO2xnZW51bW1lcmV0IHRpbCBkZXQgaCZvc2xhc2g7eWVzdGUgcmVra2VmJm9zbGFzaDtsZ2VudW1tZXJldCc7CiRsYW5nWyd0aXRsZV9zdHJpbmdfdW5zcGFjZWQnXSA9ICdTdHJlbmcgKGluZ2VuIG1lbGxvbXJvbSBtZWxsb20gZmVsdGVyKT8nOwokbGFuZ1sndGl0bGVfY29tcHV0ZV92YWx1ZSddID0gJ1ZlcmRpICZhcmluZzsgYmVyZWduZSc7CiRsYW5nWyd0aXRsZV9jb21wdXRlJ10gPSAnQmVyZWduZWRlL1BIUCc7CiRsYW5nWyd0aXRsZV9zdHJpbmcnXSA9ICdTdHJlbmcnOwokbGFuZ1sndGl0bGVfbnVtZXJpYyddID0gJ051bW1lcmlzayc7CiRsYW5nWyd0aXRsZV9pbmxpbmVfZm9ybSddID0gJ1ZpcyBza2plbWEgaW5saW5lPyc7CiRsYW5nWyd0aXRsZV9pbmxpbmVfZm9ybV9oZWxwJ10gPSAnTWVkIElubGluZSBtZW5lcyBhdCBlbmh2ZXIgb3BwZiZvc2xhc2g7bGdpbmcgZXJzdGF0dGVyIHtjbXNfbW9kdWxlfSB0YWdnZW4sIG5vbi1pbmxpbmUgZXJzdGF0dGVyIHtjb250ZW50fSB0YWdnZW4uJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2RlZmF1bHRfdmFsdWUnXSA9ICdTdGFuZGFyZCB2ZXJkaSBmb3IgZmVsdCc7CiRsYW5nWyd0aXRsZV9jbGVhcl9kZWZhdWx0J10gPSAndCZvc2xhc2g7bSBzdGFuZGFyZCB2ZWQga2xpa2s/JzsKJGxhbmdbJ3RpdGxlX2NsZWFyX2RlZmF1bHRfaGVscCddID0gJ0hhayBhdiBkZW5uZSBvbSBkdSB2aWwgYXQgc3RhbmRhcmQgdmVyZGkgc2thbCBmamVybmVzIG4mYXJpbmc7ciBicnVrZXJlbiBrbGlra2VyIGkgZGV0dGUgZmVsdGV0LiBTaWRlbiBkZXR0ZSBiZW55dHRlciBlbiBqYXZhc2tyaXB0IHN0cmluZyBzYW1tZW5saWduaW5nIHZpbCBkZXR0ZSBmZWlsZSBvbSBkdSBzZXR0ZXIgZW5rbGUgYW5mJm9zbGFzaDtyc2Vsc3RlZ24gaSBkaW4gc3RhbmRhcmR0ZWtzdC4gQW5kcmUgaWtrZS1qYXZhc2tyaXB0IGVnbmVkZSB0ZWduIGthbiBvZ3MmYXJpbmc7IGYmYXJpbmc7IGRldHRlIHRpbCAmYXJpbmc7IGZlaWxlLic7CiRsYW5nWyd0aXRsZV9yZW1vdmVfZmlsZV9mcm9tX3NlcnZlciddID0gJ1NsZXR0IG9wcGxhc3RlZGUgZmlsZXIgZnJhIHNlcnZlcmVuIGV0dGVyIHByb3Nlc3NlcmluZyAoZXBvc3QgZGlzcG9zaXNqb25lciknOwokbGFuZ1sndGl0bGVfZmllbGRfamF2YXNjcmlwdCddID0gJ0phdmFzY3JpcHQgZm9yIGZlbHQnOwokbGFuZ1sndGl0bGVfZmllbGRfamF2YXNjcmlwdF9sb25nJ10gPSAnR2omb3NsYXNoO3IgZGV0dGUgdGlsIGRldCBmdWxsc3RlbmRpZ2UgamF2YXNrcmlmcHRrYWxsZXQsIGlua2x1ZGVydCBoZW5kZWxzZW4gZHUgdmlsIGZhbmdlLCBmLmVrcy4sIG9uY2xpY2s9JnF1b3Q7eW91cmZuKCkmcXVvdDsnOwokbGFuZ1sndGl0bGVfc3VibWl0X2phdmFzY3JpcHQnXSA9ICdTa2plbWFpbm5zZW5kaW5ncyBqYXZhc2tyaXB0JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9qYXZhc2NyaXB0X2xvbmcnXSA9ICdHaiZvc2xhc2g7ciBkZXR0ZSB0aWwgZGV0IGZ1bGxzdGVuZGlnZSBqYXZhc2tyaWZwdGthbGxldCwgaW5rbHVkZXJ0IGhlbmRlbHNlbiBkdSB2aWwgZmFuZ2UsIGYuZWtzLiwgb25jbGljaz0mcXVvdDt5b3VyZm4oKSZxdW90Oy48YnIgLz5EZXR0ZSB2aWwgdHJvbGlnIGlra2UgZnVuZ2VyZSBnb2R0IG9tIGR1IGJlbnl0dGVyICZxdW90O1Npa2tlaGV0c2tyaXB0JnF1b3Q7IG9wc2pvbmVuIG92ZW5mb3IuJzsKJGxhbmdbJ2VtYWlsX2Zyb21fYWRkcl9oZWxwJ10gPSAnSWtrZSBzZXR0IGVuIHRpbGZlbGRpZyBhZHJlc3NlIGhlciAtLSBtYW5nZSBJU1BlciB2aWxsPGJyIC8+aWtrZSBsZXZlcmUgZXBvc3RlbiBvbSBkdSBiZW55dHRlciBldCBhbm5ldCBkb21lbmVuYXZuIGVubiBkaXR0IGZha3Rpc2tlPGJyIC8+dmVydHNuYXZuIChmLmVrcy4gYmVueXR0IG5vZSBzb20gbmFtZUAlcyknOwokbGFuZ1sndGl0bGVfc3dpdGNoX2FkdmFuY2VkJ10gPSAnQmVob3YgZm9yIGZsZXJlIHRlbHR0eXBlcj8gJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9iYXNpYyddID0gJ0ZvciBtYW5nZSBmb3J2aXJyZW5kZSBmZWx0dHlwZXI/ICc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYWR2YW5jZWRfbGluayddID0gJ0J5dHQgdGlsIGF2YW5zZXJ0IG1vZHVzJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9iYXNpY19saW5rJ10gPSAnQnl0dCB0aWwgZW5rZWwgbW9kdXMnOwokbGFuZ1sndGl0bGVfZmlsZV9yb290J10gPSAnS2F0YWxvZyAmYXJpbmc7IGxhZ3JlIGZpbGVuIGknOwokbGFuZ1sndGl0bGVfZmlsZV9yb290X2hlbHAnXSA9ICdEZXR0ZSBtJmFyaW5nOyB2JmFlbGlnO3JlIGVuIGthdGFsb2cgc29tIGRpbiB3ZWJzZXJ2ZXIgaGFyIHJldHRpZ2hldCB0aWwgJmFyaW5nOyBza3JpdmUgaS48YnIgLz5DaG1vZCBkZW4gdGlsIDc3NyBvbSBkdSBoYXIgcHJvYmxlbWVyL3R2aWxlci48YnIgLz5PZywgc2UgZXR0ZXIgYXQgZHUgaWtrZSBoYXIgUEhQIGthdGFsb2cgcmVzdHJpa3Nqb25lci4nOwokbGFuZ1sndGl0bGVfbmV3bGluZV9yZXBsYWNlbWVudCddID0gJ055IGxpbmplL0xpbmplc2tpZnQoTmV3bGluZS9DYXJyaWFnZSBSZXR1cm4pIGVyc3RhdG5pbmdzdGVnbic7CiRsYW5nWyd0aXRsZV9uZXdsaW5lX3JlcGxhY2VtZW50X2hlbHAnXSA9ICdMYSBkZXR0ZSB2JmFlbGlnO3JlIGJsYW5rdCBmb3IgJmFyaW5nOyB0aWxsYXRlIE55IGxpbmplL0xpbmplc2tpZnQgaSByZXN1bHRhdHZpc25pbmdlbic7CiRsYW5nWyd0aXRsZV9zZW5kX3VzZXJjb3B5J10gPSAnU2VuZCBicnVraWVyZW4gZW4ga29waSBhdiBpbm5zZW5kaW5nZW4/JzsKJGxhbmdbJ3RpdGxlX3NlbmRfdXNlcmNvcHlfbGFiZWwnXSA9ICdFdGlrZXR0IGZvciBhdmtyeXNzbmluZ3Nib2tzIChvbSBicnVrZXJlbiB2ZWxnZXIpJzsKJGxhbmdbJ3RpdGxlX3NlbmRfbWVfYV9jb3B5J10gPSAnU2VuZCBtZWcgZW4ga29waSBhdiBza2plbWFldCc7CiRsYW5nWyd0aXRsZV9hbGxvd19zdWJqZWN0X292ZXJyaWRlJ10gPSAnVGlsbGF0IEVtbmUoc3ViamVjdCkgJmFyaW5nOyBibGkgb3ZlcnN0eXJ0Pyc7CiRsYW5nWyd0aXRsZV9hbGxvd19zdWJqZWN0X292ZXJyaWRlX2xvbmcnXSA9ICdUaWxsYXQgJiMwMzk7RXBvc3QgJnF1b3Q7U3ViamVjdCZxdW90OyBmZWx0ZXImIzAzOTsgJmFyaW5nOyBvdmVyc3R5cmUgRW1uZShzdWJqZWN0KSBzcGVzaWZpc2VydCBpIG5ldHJla2tzdmFsZ2V0Lic7CiRsYW5nWyd0aXRsZV9kaXNwbGF5X2xlbmd0aCddID0gJ0xlbmdkZSAmYXJpbmc7IHZpc2UnOwokbGFuZ1sndGl0bGVfbWluaW11bV9sZW5ndGgnXSA9ICdNaW5pbXVtIGxlbmdkZSBwJmFyaW5nOyBzdmFyJzsKJGxhbmdbJ3RpdGxlX2hpZGUnXSA9ICdTa2p1bCBpbm5kYXRhJzsKJGxhbmdbJ3RpdGxlX2hpZGVfaGVscCddID0gJ1ZpcyBzeW1ib2xlciBpIHN0ZWRldCBmb3IgdGVrc3QgbiZhcmluZztyIGJydWtlciBza3JpdmVyIHBhc3NvcmQ/JzsKJGxhbmdbJ3Bhc3N3b3JkX2RvZXNfbm90X21hdGNoJ10gPSAnUGFzc29yZCBzYW1zdmFyZXIgaWtrZSBtZWQgJXMnOwokbGFuZ1snYmFja190b3AnXSA9ICdUaWxiYWtlIHRpbCBGb3JtQnVpbGRlciBob3ZlZHNpZGVuJzsKJGxhbmdbJ3RpdGxlX2hlYWRlcnNfdG9fbW9kaWZ5J10gPSAnSHZpbGtlIGUtcG9zdCBob2RlciBiJm9zbGFzaDtyIGRldHRlIGlubmRhdGFmZWx0IGZ5bGxlIHV0Pyc7CiRsYW5nWyd0aXRsZV9ibGFua19pbnZhbGlkJ10gPSAnSWtrZSBnb2R0YSBtZWxsb21yb20gc29tIGd5bGRpZyBzdmFyJzsKJGxhbmdbJ3RpdGxlX2JsYW5rX2ludmFsaWRfbG9uZyddID0gJ09tIGV0IGZlbHQgZXIgcCZhcmluZztrcmV2ZCwgdmlsIGF2a3J5c3NpbmcgYXYgZGV0dGUgdmFsZyBrcmV2ZSBhdCBmb2xrIHNrcml2ZXIgaW5uIGFsZmFudW1tZXJpc2tlIGJva3N0YXZlciBvZyBpa2tlIGJhcmUgbWVsbG9tcm9tJzsKJGxhbmdbJ3RpdGxlX211c3Rfc2F2ZV9vcmRlciddID0gJ0R1IG0mYXJpbmc7IGtsaWtrZSBlbiBhdiAmcXVvdDtsYWdyZSZxdW90Oy1rbmFwcGVuZSBmb3IgJmFyaW5nOyBnaiZvc2xhc2g7cmUgZGluIG55ZSBmZWx0cmVra2VmJm9zbGFzaDtsZ2UgcGVybWFuZW50Lic7CiRsYW5nWyd0aXRsZV9odG1sNSddID0gJ0JydWsgSFRNTDUgcGxhc3Nob2xkZXJ0ZWtzdCBpIHN0ZWRldCBmb3IgSmF2YXNjcmlwdCc7CiRsYW5nWydlcnJvcl9Db21wYW55RGlyZWN0b3J5X21vZHVsZV9ub3RfYXZhaWxhYmxlJ10gPSAnQ29tcGFueSBEaXJlY3RvcnkgbW9kdWxlbiBlciBpa2tlIHRpbGdqZW5nZWxpZyEnOwokbGFuZ1snb3B0aW9uX25ldmVyJ10gPSAnQWxkcmknOwokbGFuZ1snb3B0aW9uX3VzZXJfY2hvaWNlJ10gPSAnR2kgYnJ1a2VyZW4gZXQgdmFsZyAoYXZrcnlzc25pbmdzYm9rcyknOwokbGFuZ1snb3B0aW9uX2Fsd2F5cyddID0gJ0FsbHRpZCc7CiRsYW5nWydvcHRpb25fZnJvbSddID0gJyZxdW90O0ZyYSZxdW90OyBlLXBvc3RhZHJlc3NlJzsKJGxhbmdbJ29wdGlvbl9yZXBseSddID0gJyZxdW90O1N2YXItdGlsJnF1b3Q7IGUtcG9zdGFkcmVzc2UnOwokbGFuZ1snb3B0aW9uX2JvdGgnXSA9ICdCJmFyaW5nO2RlICZxdW90O0ZyYSZxdW90OyBvZyAmcXVvdDtTdmFyLXRpbCZxdW90OyBlLXBvc3RhZHJlc3NlbmUnOwokbGFuZ1snb3B0aW9uX2Ryb3Bkb3duJ10gPSAnTmVkdHJla2snOwokbGFuZ1snb3B0aW9uX3NlbGVjdGxpc3Rfc2luZ2xlJ10gPSAnVmFsZ2xpc3RlIChlbmtlbHQpJzsKJGxhbmdbJ29wdGlvbl9zZWxlY3RsaXN0X211bHRpcGxlJ10gPSAnVmFsZ2xpc3RlIChmbGVyZSknOwokbGFuZ1snb3B0aW9uX3JhZGlvZ3JvdXAnXSA9ICdSYWRpb2tuYXBwZ3J1cHBlJzsKJGxhbmdbJ3RpdGxlX2NvbXBhbnlfZmllbGRfbm90ZSddID0gJ01lcms6IFV0ZGF0YSB2aWwgdiZhZWxpZztyZSBwJmFyaW5nOyBmb3JtZW48YnIvPiZxdW90O2Zpcm1hbmF2biZxdW90Oz0+JnF1b3Q7dmVyZGkmcXVvdDsnOwokbGFuZ1sndGl0bGVfcGlja19jYXRlZ29yaWVzJ10gPSAnVmVsZyBlbiBrYXRlZ29yaSAoZmxlcmUpJzsKJGxhbmdbJ3RpdGxlX3BpY2tfZmllbGRkZWYnXSA9ICdWZWxnIGV0IGZlbHQgRGVmaW5pc2pvbnN2ZXJkaSAoZW5rZWwpIDxlbT52YWxnZnJpdHQ8L2VtPic7CiRsYW5nWyd0aXRsZV9jaG9vc2VfdXNlcl9pbnB1dCddID0gJ1ZlbGcgYnJ1a2VyLWlubmRhdGEnOwokbGFuZ1sndGl0bGVfc2VlX2Fsc29fdWR0J10gPSAnKFRhIG9ncyZhcmluZzsgZW4gdGl0dCBwJmFyaW5nOyBTa2plbWFpbm5zZW5kaW5nc2ZhbmVuIG9tIGR1ICZvc2xhc2g7bnNrZXIgJmFyaW5nOyBzZXR0ZSBlbiBVRFQgZm9yIHNramVtYXZhbGlkZXJpbmcpJzsKJGxhbmdbJ3RpdGxlX3llYXJfZW5kX21lc3NhZ2UnXSA9ICdTbHV0dCAmYXJpbmc7cic7CiRsYW5nWyd0aXRsZV9maWVsZF9sb2dpYyddID0gJ1NtYXJ0eSBkYXRhIGVsbGVyIGxvZ2lrayBzb20gZXIgbWVudCBmb3IgJmFyaW5nOyBibGkgc2VuZHQgbWVkIGRldHRlIGZlbHRldCc7CiRsYW5nWyd0aXRsZV9maWVsZF9sb2dpY19sb25nJ10gPSAnS2FuIHYmYWVsaWc7cmUgc21hcnR5ZGF0YSwgamF2YXNrcmlwdCBlbGxlciBub2UgYW5uZW4gZGF0YSBkdSB2aWwgc2VuZGUgc2FtbWVuIG1lZCBkZXR0ZSBmZWx0ZXQuPGJyIC8+RyZhcmluZztyIGdqZW5ub20gc21hcnR5IGtvbXBpbGVyZXJlbiwgcyZhcmluZzsgaHVzayAmYXJpbmc7IGJlbnl0dGV7bGl0ZXJhbH17L2xpdGVyYWx9IHRhZ2dlciBzYW1tZW4gbWVkIDxzY3JpcHQ+PC9zY3JpcHQ+JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2luY2x1ZGVsYWJlbHMnXSA9ICdJbmtsdWRlciBldGlrZXR0ZXInOwokbGFuZ1sndGl0bGVfZmllbGRfaW5jbHVkZWxhYmVsc19oZWxwJ10gPSAnJkFyaW5nOyBha3RpdmVyZSBkZXR0ZSBpbmtsdWRlcmVyIGV0aWtldHRlciBpIHV0ZGF0YS4gRWtzZW1wZWwgLSBldGlrZXR0OiB2ZXJkaSxldGlrZXR0MjogdmVyZGkyJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3NpYmxpbmdzJ10gPSAnTGVuayBkZXR0ZSBmZWx0IHRpbCBkZXRzIGV0dGVyZiZvc2xhc2g7bGdlcic7CiRsYW5nWyd0aXRsZV9maWVsZF9zaWJsaW5nc19oZWxwJ10gPSAnTmVkdHJla2tzbGlzdGUgbGlzdGVyIGFsbGUgZXR0ZXJmJm9zbGFzaDtsZ2VyZSBhdiBkZXR0ZSBmZWx0IG9nIHRpbGxhdGVyIGRlZyAmYXJpbmc7IGxlbmtlIGRldHRlIGZlbHRldCB0aWwgZW4gYXYgZGV0cyBldHRlcmYmb3NsYXNoO2xnZXJlLiBEZXR0ZSBnaiZvc2xhc2g7ciBkZXQgbXVsaWcgJmFyaW5nOyBrb250cm9sbGVyZSBkZXR0ZSBmZWx0ZXQgbWVkIHZhbGd0ZSBldHRlcmYmb3NsYXNoO2xnZXIga29udHJvbGxlci4nOwokbGFuZ1sndGl0bGVfZmllbGRfaGlkZWJ1dHRvbnMnXSA9ICdTa2p1bCBrb250cm9sbGtuYXBwZXInOwokbGFuZ1sndGl0bGVfZmllbGRfaGlkZWJ1dHRvbnNfaGVscCddID0gJ1NranVsZXIga29udHJvbGxrbmFwcGVyIGZvciBkZXR0ZSBmZWx0IHAmYXJpbmc7IGZyb25lbmQnOwokbGFuZ1sndGl0bGVfbm90ZSddID0gJ01lcmsnOwokbGFuZ1sndGl0bGVfY2hhbmdpbmdfdHJpZ2dlcnNfcmVpbmRleCddID0gJyZBcmluZzsgZW5kcmUgbm9lbiBhdiBkZSBvdmVubmV2bnRlIGZlbHRlbmUgdmlsIHV0bCZvc2xhc2g7c2UgZW4gUmVpbmRleCBhdiAmIzAzOTthbGxlJiMwMzk7IGxhZ3JlZGUgcG9zdGVyLCBzJmFyaW5nOyBkZXR0ZSBrYW4gdGEgZW4gc3R1bmQuJzsKJGxhbmdbJ2lsbGVnYWxfZmlsZSddID0gJ0ZvcnMmb3NsYXNoO2t0ZSBvcHBsYXN0aW5nIGF2IHVsb3ZsaWcgZmlsdHlwZSAoJXMpIGZyYSAlcyc7CiRsYW5nWyd0aXRsZV9zZWFyY2hhYmxlJ10gPSAnR2omb3NsYXNoO3IgcG9zdGVyIHRpbGdqZW5nZWxpZyBmb3IgcyZvc2xhc2g7a2Vtb2R1bGVuJzsKJGxhbmdbJ3RpdGxlX3NlYXJjaGFibGVfaGVscCddID0gJ0hha2UgYXYgZGV0dGUgdmlsIGdqJm9zbGFzaDtyZSBhbGxlIGlubnNlbmR0ZSBkYXRhIHRpbGdqZW5nZWxpZyBmb3IgcyZvc2xhc2g7a2Vtb2R1bGVuLiBJS0tFIEJSVUsgZGVubmUgaHZpcyBkdSBrcnlwdGVyZXIgZGluZSBkYXRhIC0tIGluZm9ybWFzam9uZW4gYmxpciB0aWxnamVuZ2VsaWcgZm9yIHMmb3NsYXNoO2sgb20gZGVuIGVyIGtyeXB0ZXJ0IGVsbGVyIGlra2UhJzsKJGxhbmdbJ3VwbG9hZGVkX291dHNpZGVfd2Vicm9vdCddID0gJyVzICh1dGVuZm9yIHdlYiByb3QpJzsKJGxhbmdbJ2Vycm9yX3VzZXJ0YWdfZGlzcG9zaXRpb24nXSA9ICdCcnVrZXIgZGVmaW5lcnQgdGFnZyhVc2VyIERlZmluZWQgVGFnL1VEVCkgcmV0dXJuZXJ0ZSBlbiBmZWlsJzsKJGxhbmdbJ2Vycm9yX3VzZXJ0YWcnXSA9ICdCcnVrZXIgZGVmaW5lcnQgdGFnZyhVc2VyIERlZmluZWQgVGFnL1VEVCkgJXMgcmV0dXJuZXJ0ZSBlbiBmZWlsLic7CiRsYW5nWydlcnJvcl9jYXRhbG9nZXJfbW9kdWxlX25vdF9hdmFpbGFibGUnXSA9ICc8c3Ryb25nPkNhdGFsb2dlciBtb2R1bGVuIHNlciBpa2tlIHV0IHRpbCAmYXJpbmc7IHYmYWVsaWc7cmUgaW5zdGFsbGVydC9ha3Rpdi48L3N0cm9uZz4nOwokbGFuZ1snd2FybmluZyddID0gJ0FEVkFSU0VMISc7CiRsYW5nWydkZWZhdWx0X3RlbXBsYXRlJ10gPSAnU3RhbmRhcmQgbWFsJzsKJGxhbmdbJ3RhYmxlX2xlZnRfdGVtcGxhdGUnXSA9ICdUYWJlbGwgbWFsLCBFdGlrZXR0IHRpbCB2ZW5zdHJlJzsKJGxhbmdbJ3RhYmxlX3RvcF90ZW1wbGF0ZSddID0gJ1RhYmVsbCBtYWwsIEV0aWtldHQgb3ZlcmZvcic7CiRsYW5nWydmb3JtX3RlbXBsYXRlX25hbWUnXSA9ICdNYWwgZnJhICVzJzsKJGxhbmdbJ3RlbXBsYXRlX2FyZV95b3Vfc3VyZSddID0gJ0VyIGR1IHNpa2tlciBwJmFyaW5nOyBhdCBkdSB2aWwgb3ZlcnNrcml2ZSBkaW4gbWFsIG1lZCBkZW4gdmFsZ3RlIG1hbGVuPyAoU2VsdiBvbSBkdSBzdmFyZXIgT0ssIHZpbCBkdSBmb3J0c2F0dCBtJmFyaW5nO3R0ZSBsYWdyZSBlbmRyaW5nZW4pJzsKJGxhbmdbJ3RpdGxlX2JhZF9mdW5jdGlvbiddID0gJ0ZlaWwgdW5kZXIgYmVyZWduaW5nICZxdW90OyVzJnF1b3Q7Lic7CiRsYW5nWydub19yZWZlcnJlcl9pbmZvJ10gPSAnSW5nZW4gSFRUUF9SRUZFUkVSIGluZm9ybWFzam9uIHRpbGdqZW5nZWxpZyc7CiRsYW5nWyd2YWxpZGF0aW9uX3BhcmFtX2Vycm9yJ10gPSAnR3lsZGlnaGV0c3NqZWtrIFBhcmFtZXRlciBmZWlsLiBWZW5ubGlnc3Qgc2pla2sgYXQgZHUga29waWVydGUgbGlua2VuIGZyYSBkaW4gZXBvc3Qga29ycmVrdCEnOwokbGFuZ1sndmFsaWRhdGlvbl9yZXNwb25zZV9lcnJvciddID0gJ0d5bGRpZ2hldHNzamVrayBSZXNwb25zIGZlaWwuIFZlbm5saWdzdCBzamVrayBhdCBkdSBrb3BpZXJ0ZSBsaW5rZW4gZnJhIGRpbiBlcG9zdCBrb3JyZWt0ISc7CiRsYW5nWyd2YWxpZGF0aW9uX25vX2ZpZWxkX2Vycm9yJ10gPSAnR3lsZGlnaGV0c3NqZWtrIFJlc3BvbnMgZmVpbC4gSW5nZW4gZXBvc3Qtc2pla2sgZmVsdCBpIGRldHRlIHNramVtYSc7CiRsYW5nWyd1cGdyYWRlMDN0bzA0J10gPSAnU2tqZW1hIG1hbGVuIGJsZSBvcHBkYXRlcnQgYXV0b21hZ2lzayBzb20gZGVsIGF2IG9wcGdyYWRlcmluZyBmcmEgdmVyc2pvbiAwLjMgdGlsIHZlcnNqb24gMC40LiBEdSB0cmVuZ2VyIGthbnNramUgJmFyaW5nOyBnaiZvc2xhc2g7cmUgbm9lbiBtYW51ZWxsZSBmaWtzZXIuIE9tIGR1IGJlbnl0dGVyIHN0YW5kYXJkc2tqZW1hZXQsIGthbiBkdSBlbmtlbHQgYnl0dGUgZGV0IG1lZCAmcXVvdDtkZWZhdWx0JnF1b3Q7IHZlZCAmYXJpbmc7IGJlbnl0dGUgbmVkdHJla2ttZW55ZW4gb3ZlbmZvci4nOwokbGFuZ1snYWRtaW5kZXNjJ10gPSAnTGVnZyB0aWwsIHJlZGlnZXIgb2cgaCZhcmluZztuZHRlciBpbnRlcmFrdGl2ZSBza2plbWFlcic7CiRsYW5nWydvcGVyYXRvcnNfaGVscCddID0gJ0h2aXMgZHUgYnJ1a2VyIFN0cmluZyBldmFsdWVyaW5nLCB2aWwgZGVuIGVuZXN0ZSBvcGVyYXNqb25lbiBzb20gZXIgdGlsZ2plbmdlbGlnIHYmYWVsaWc7cmUgc2FtbWVuc2V0bmluZyAoKykuIEh2aXMgZHUgYmVueXR0ZXIgTnVtbWVyKE51bWJlcikgZXZhbHVlcmluZyBzJmFyaW5nOyBoYXIgZHUgZGUgaGVsdCBlbmtsZSBtYXRlbWF0aXNrZSAoLCssIC0sICosIC8sKS4gSHZpcyBkdSBicnVrZXIgQmVyZWduZWRlL1BIUCBldmFsdWVyaW5nLCBrYW4gZHUNCmJydWtlIGRlIGZ1bmtzam9uZW5lIGR1IHZpbCwgbWVuIGR1IG0mYXJpbmc7IHNpdGVyZSB0aW5nIChzdWJzdGl0dXNqb24gc2tqZXIgZiZvc2xhc2g7ciBldmFsdWVyaW5nKSwgZm9yIGVrc2VtcGVsIHN1YnN0cigmIzAzOTskZmxkXzIyJiMwMzk7LDAsMikuJiMwMzk7JGZsZF8yMyYjMDM5Oy4nOwokbGFuZ1snaGVscF9tb2R1bGVfaW50ZXJmYWNlJ10gPSAnQmVueXR0ZSBtb2R1bGdyZW5zZXNuaXR0JzsKJGxhbmdbJ2hlbHBfbW9kdWxlX2ludGVyZmFjZV9sb25nJ10gPSAnPGI+RGV0dGUgZmVsdGV0IGJydWtlcyBzb20gZW4gaW5uZ2FuZ3Nwb3J0IHRpbCBhbmRyZSBtb2R1bGVyITwvYj4NCkJlbnl0dCBkZXQgdmVkICZhcmluZzsgb3BwcmV0dGUgZGluZSBza2plbWFlbGVtZW50ZXIgaSBtYWxlbmUgaSBhbmRyZSBtb2R1bGVyIGR1ICZvc2xhc2g7bnNrZXIgJmFyaW5nOyBpbm5sZW1tZSwgb2cgYmVueXR0IDxzdHJvbmc+eyRGQmlkfTwvc3Ryb25nPiBmb3IgJmFyaW5nOyBrb2JsZSBkZXR0ZSB0aWxiYWtlIHRpbCBGb3JtQnVpbGRlci4gRi5la3MuIGZvciAmYXJpbmc7IGlua2x1ZGVyZSBza2plbWEgYWx0ZXJuYXRpdmVyIGJhc2VydCBwJmFyaW5nOyBQcm9kdWN0cyBtb2R1bGVuLCBvcHByZXR0IGYmb3NsYXNoO2xnZW5kZSBtYWwgaSBQcm9kdWN0czo8YnIvPg0KPHByZT4NCntmb3JlYWNoIGZyb209JGl0ZW1zIGl0ZW09ZW50cnl9DQoJe2Fzc2lnbiB2YXI9TURhdGEgdmFsdWU9JiMwMzk7JiMwMzk7fQ0KCXthc3NpZ24gdmFyPUNkIHZhbHVlPSYjMDM5OyYjMDM5O30NCgkJe2ZvcmVhY2ggZnJvbT0kRkJ2YWx1ZSBpdGVtPU1EYXRhfQ0KCQkJe2Fzc2lnbiB2YXI9TURhdGEgdmFsdWU9JiMwMzk7OjomIzAzOTt8ZXhwbG9kZTokTURhdGF9DQoJCQl7aWYgJE1EYXRhWzFdPT0kZW50cnktPmlkfQ0KCQkJCXthc3NpZ24gdmFyPUNkIHZhbHVlPSYjMDM5OyBjaGVja2VkPSZxdW90O2NoZWNrZWQmcXVvdDsmIzAzOTt9DQoJCQl7L2lmfQ0KCQl7L2ZvcmVhY2h9DQoJPGRpdiBjbGFzcz0mcXVvdDtQcm9kdWN0RGlyZWN0b3J5SXRlbSZxdW90Oz4NCgkJPGlucHV0IHR5cGU9JnF1b3Q7Y2hlY2tib3gmcXVvdDsgdmFsdWU9JnF1b3Q7eyRlbnRyeS0+cHJpY2V9Ojp7JGVudHJ5LT5pZH0mcXVvdDsgbmFtZT0mcXVvdDt7JEZCaWR9W10mcXVvdDsgeyRDZH0gLz57JGVudHJ5LT5wcm9kdWN0X25hbWV9ICh7JGVudHJ5LT53ZWlnaHR9eyR3ZWlnaHRfdW5pdHN9KSAmcG91bmQ7eyRlbnRyeS0+cHJpY2V9ICAgIA0KCTwvZGl2Pg0Key9mb3JlYWNofQ0KPC9wcmU+DQo8YnIvPg0KaHZvciBkdSBpIGlubmRhdGEgbmVkZW5mb3Igc2V0dGVyIGlubiBub2Ugc2xpa3Qgc29tICA8c3Ryb25nPntQcm9kdWN0cyBjYXRlZ29yeT0mcXVvdDtjYXQmcXVvdDsgc3VtbWFyeXRlbXBsYXRlPSZxdW90O1lvdXJfRkJfdGVtcGxhdGUmcXVvdDt9PC9zdHJvbmc+JzsKJGxhbmdbJ3RpdGxlX2FkZF90YWcnXSA9ICdTZXR0IGlubiBkaW4gdGFnZyc7CiRsYW5nWydkYXRlX2phbnVhcnknXSA9ICdKYW51YXInOwokbGFuZ1snZGF0ZV9mZWJydWFyeSddID0gJ0ZlYnJ1YXInOwokbGFuZ1snZGF0ZV9tYXJjaCddID0gJ01hcnMnOwokbGFuZ1snZGF0ZV9hcHJpbCddID0gJ0FwcmlsICc7CiRsYW5nWydkYXRlX21heSddID0gJ01haSc7CiRsYW5nWydkYXRlX2p1bmUnXSA9ICdKdW5pJzsKJGxhbmdbJ2RhdGVfanVseSddID0gJ0p1bGknOwokbGFuZ1snZGF0ZV9hdWd1c3QnXSA9ICdBdWd1c3QgJzsKJGxhbmdbJ2RhdGVfc2VwdGVtYmVyJ10gPSAnU2VwdGVtYmVyICc7CiRsYW5nWydkYXRlX29jdG9iZXInXSA9ICdPa3RvYmVyJzsKJGxhbmdbJ2RhdGVfbm92ZW1iZXInXSA9ICdOb3ZlbWJlciAnOwokbGFuZ1snZGF0ZV9kZWNlbWJlciddID0gJ0Rlc2VtYmVyJzsKJGxhbmdbJ0FGJ10gPSAnQWZnaGFuaXN0YW4gJzsKJGxhbmdbJ0FYJ10gPSAnJkFyaW5nO2xhbmQnOwokbGFuZ1snQUwnXSA9ICdBbGJhbmlhICc7CiRsYW5nWydEWiddID0gJ0FsZ2VyaWUnOwokbGFuZ1snQVMnXSA9ICdBbWVyaWthbnNrIFNhbW9hJzsKJGxhbmdbJ0FEJ10gPSAnQW5kb3JyYSAnOwokbGFuZ1snQU8nXSA9ICdBbmdvbGEgJzsKJGxhbmdbJ0FJJ10gPSAnQW5ndWlsbGEgJzsKJGxhbmdbJ0FRJ10gPSAnQW50YXJrdGlzJzsKJGxhbmdbJ0FHJ10gPSAnQW50aWd1YSBvZyBCYXJidWRhJzsKJGxhbmdbJ0FSJ10gPSAnQXJnZW50aW5hICc7CiRsYW5nWydBTSddID0gJ0FybWVuaWEgJzsKJGxhbmdbJ0FXJ10gPSAnQXJ1YmEgJzsKJGxhbmdbJ0FVJ10gPSAnQXVzdHJhbGlhICc7CiRsYW5nWydBVCddID0gJyZPc2xhc2g7c3RlcmlrZSc7CiRsYW5nWydBWiddID0gJ0F6ZXJiYWlqYW4gJzsKJGxhbmdbJ0JTJ10gPSAnQmFoYW1hcyAnOwokbGFuZ1snQkgnXSA9ICdCYWhyYWluICc7CiRsYW5nWydCQiddID0gJ0JhcmJhZG9zICc7CiRsYW5nWydCRCddID0gJ0JhbmdsYWRlc2ggJzsKJGxhbmdbJ0JZJ10gPSAnQmVsYXJ1cyAnOwokbGFuZ1snQkUnXSA9ICdCZWxnaWEnOwokbGFuZ1snQlonXSA9ICdCZWxpemUgJzsKJGxhbmdbJ0JKJ10gPSAnQmVuaW4gJzsKJGxhbmdbJ0JNJ10gPSAnQmVybXVkYSAnOwokbGFuZ1snQlQnXSA9ICdCaHV0YW4gJzsKJGxhbmdbJ0JXJ10gPSAnQm90c3dhbmEgJzsKJGxhbmdbJ0JPJ10gPSAnQm9saXZpYSAnOwokbGFuZ1snQkEnXSA9ICdCb3NuaWEgb2cgSGVyemVnb3ZpbmEnOwokbGFuZ1snQlYnXSA9ICdCb3V2ZXQgSXNsYW5kICc7CiRsYW5nWydCUiddID0gJ0JyYXNpbCc7CiRsYW5nWydJTyddID0gJ0JyaXRpc2ggSW5kaWFuIE9jZWFuIFRlcnJpdG9yeSAnOwokbGFuZ1snQk4nXSA9ICdCcnVuZWkgRGFydXNzYWxhbSAnOwokbGFuZ1snQkcnXSA9ICdCdWxnYXJpYSAnOwokbGFuZ1snQkYnXSA9ICdCdXJraW5hIEZhc28gJzsKJGxhbmdbJ0JJJ10gPSAnQnVydW5kaSAnOwokbGFuZ1snS0gnXSA9ICdDYW1ib2RpYSAnOwokbGFuZ1snQ00nXSA9ICdDYW1lcm9vbiAnOwokbGFuZ1snQ0EnXSA9ICdDYW5hZGEgJzsKJGxhbmdbJ0NWJ10gPSAnQ2FwZSBWZXJkZSAnOwokbGFuZ1snS1knXSA9ICdDYXltYW4gSXNsYW5kcyAnOwokbGFuZ1snQ0YnXSA9ICdTZW50cmFsIEFmcmlrYW5za2UgUmVwdWJsaWtrJzsKJGxhbmdbJ1REJ10gPSAnQ2hhZCAnOwokbGFuZ1snQ0wnXSA9ICdDaGlsZSAnOwokbGFuZ1snQ04nXSA9ICdLaW5hJzsKJGxhbmdbJ0NYJ10gPSAnQ2hyaXN0bWFzIElzbGFuZCAnOwokbGFuZ1snQ0MnXSA9ICdDb2NvcyAoS2VlbGluZykgSXNsYW5kcyAnOwokbGFuZ1snQ08nXSA9ICdDb2xvbWJpYSAnOwokbGFuZ1snS00nXSA9ICdDb21vcm9zICc7CiRsYW5nWydDRyddID0gJ0tvbmdvJzsKJGxhbmdbJ0NEJ10gPSAnS29uZ28sICBEZW1vY3JhdGljIFJlcHVibGljJzsKJGxhbmdbJ0NLJ10gPSAnQ29vayBJc2xhbmRzICc7CiRsYW5nWydDUiddID0gJ0Nvc3RhIFJpY2EgJzsKJGxhbmdbJ0NJJ10gPSAnSXZvaXJlIChJdm9yeSBDb2FzdCkgJzsKJGxhbmdbJ0hSJ10gPSAnS3JvYXRpYSAoSHJ2YXRza2EpJzsKJGxhbmdbJ0NVJ10gPSAnQ3ViYSAnOwokbGFuZ1snQ1knXSA9ICdDeXBydXMgJzsKJGxhbmdbJ0NaJ10gPSAnQ3plY2ggUmVwdWJsaWMgJzsKJGxhbmdbJ0RLJ10gPSAnRGFubWFyayc7CiRsYW5nWydESiddID0gJ0RqaWJvdXRpICc7CiRsYW5nWydETSddID0gJ0RvbWluaWNhICc7CiRsYW5nWydETyddID0gJ0RvbWluaWthbnNrZSBSZXB1Ymxpa2snOwokbGFuZ1snVFAnXSA9ICcmT3NsYXNoO3N0IFRpbW9yJzsKJGxhbmdbJ0VDJ10gPSAnRWN1YWRvciAnOwokbGFuZ1snRUcnXSA9ICdFZ3lwdCAnOwokbGFuZ1snU1YnXSA9ICdFbCBTYWx2YWRvciAnOwokbGFuZ1snR1EnXSA9ICdFcXVhdG9yaWFsIEd1aW5lYSAnOwokbGFuZ1snRVInXSA9ICdFcml0cmVhICc7CiRsYW5nWydFRSddID0gJ0VzdG9uaWEgJzsKJGxhbmdbJ0VUJ10gPSAnRXRoaW9waWEgJzsKJGxhbmdbJ0ZLJ10gPSAnRmFsa2xhbmRzJm9zbGFzaDt5ZW5lIChNYWx2aW5hcyknOwokbGFuZ1snRk8nXSA9ICdGYXJvZSBJc2xhbmRzICc7CiRsYW5nWydGSiddID0gJ0ZpamkgJzsKJGxhbmdbJ0ZJJ10gPSAnRmlubGFuZCAnOwokbGFuZ1snRlInXSA9ICdGcmFua3Jpa2UnOwokbGFuZ1snRlgnXSA9ICdGcmFua3Jpa2UsICBNZXRyb3BvbGl0YW4nOwokbGFuZ1snR0YnXSA9ICdHdWVybnNleSAnOwokbGFuZ1snUEYnXSA9ICdGcmFuc2sgUG9seW5lc2lhJzsKJGxhbmdbJ1RGJ10gPSAnRnJhbnNrIFNvdXRoZXJuIFRlcnJpdG9yaWVzJzsKJGxhbmdbJ01LJ10gPSAnRi5ZLlIuTy5NLiAoTWFjZWRvbmlhKSAnOwokbGFuZ1snR0EnXSA9ICdHYWJvbiAnOwokbGFuZ1snR00nXSA9ICdHYW1iaWEgJzsKJGxhbmdbJ0dFJ10gPSAnR2VvcmdpYSAnOwokbGFuZ1snREUnXSA9ICdUeXNrbGFuZCc7CiRsYW5nWydHSCddID0gJ0doYW5hICc7CiRsYW5nWydHSSddID0gJ0dpYnJhbHRhciAnOwokbGFuZ1snR0InXSA9ICdTdG9yYnJpdGFubmlhIChVSyknOwokbGFuZ1snR1InXSA9ICdIZWxsYXMnOwokbGFuZ1snR0wnXSA9ICdHciZvc2xhc2g7bm5sYW5kJzsKJGxhbmdbJ0dEJ10gPSAnR3JlbmFkYSAnOwokbGFuZ1snR1AnXSA9ICdHdWFkZWxvdXBlICc7CiRsYW5nWydHVSddID0gJ0d1YW0gJzsKJGxhbmdbJ0dUJ10gPSAnR3VhdGVtYWxhICc7CiRsYW5nWydHTiddID0gJ0d1aW5lYSAnOwokbGFuZ1snR1cnXSA9ICdHdWluZWEtQmlzc2F1ICc7CiRsYW5nWydHWSddID0gJ0d1eWFuYSAnOwokbGFuZ1snSFQnXSA9ICdIYWl0aSAnOwokbGFuZ1snSE0nXSA9ICdIZWFyZCBhbmQgTWNEb25hbGQgJk9zbGFzaDt5ZW5lJzsKJGxhbmdbJ0hOJ10gPSAnSG9uZHVyYXMgJzsKJGxhbmdbJ0hLJ10gPSAnSG9uZyBLb25nICc7CiRsYW5nWydIVSddID0gJ1VuZ2Fybic7CiRsYW5nWydJUyddID0gJ0lzbGFuZCc7CiRsYW5nWydJTiddID0gJ0luZGlhICc7CiRsYW5nWydJRCddID0gJ0luZG9uZXNpYSAnOwokbGFuZ1snSVInXSA9ICdJcmFuICc7CiRsYW5nWydJUSddID0gJ0lyYWsnOwokbGFuZ1snSUUnXSA9ICdJcmxhbmQnOwokbGFuZ1snSUwnXSA9ICdJc3JhZWwgJzsKJGxhbmdbJ0lNJ10gPSAnSXNsZSBvZiBNYW4gJzsKJGxhbmdbJ0lUJ10gPSAnSXRhbGlhJzsKJGxhbmdbJ0pFJ10gPSAnSmVyc2V5ICc7CiRsYW5nWydKTSddID0gJ0phbWFpY2EgJzsKJGxhbmdbJ0pQJ10gPSAnSmFwYW4gJzsKJGxhbmdbJ0pPJ10gPSAnSm9yZGFuICc7CiRsYW5nWydLWiddID0gJ0themFraHN0YW4gJzsKJGxhbmdbJ0tFJ10gPSAnS2VueWEgJzsKJGxhbmdbJ0tJJ10gPSAnS2lyaWJhdGkgJzsKJGxhbmdbJ0tQJ10gPSAnS29yZWEgKE5vcmQpJzsKJGxhbmdbJ0tSJ10gPSAnS29yZWEgKFN5ZCkgJzsKJGxhbmdbJ0tXJ10gPSAnS3V3YWl0ICc7CiRsYW5nWydLRyddID0gJ0t5cmd5enN0YW4gJzsKJGxhbmdbJ0xBJ10gPSAnTGFvcyAnOwokbGFuZ1snTFYnXSA9ICdMYXR2aWEgJzsKJGxhbmdbJ0xCJ10gPSAnTGliYW5vbic7CiRsYW5nWydMSSddID0gJ0xpZWNodGVuc3RlaW4gJzsKJGxhbmdbJ0xSJ10gPSAnTGliZXJpYSAnOwokbGFuZ1snTFknXSA9ICdMaWJ5YSAnOwokbGFuZ1snTFMnXSA9ICdMZXNvdGhvICc7CiRsYW5nWydMVCddID0gJ0xpdGF1ZW4nOwokbGFuZ1snTFUnXSA9ICdMdXhlbWJvdXJnICc7CiRsYW5nWydNTyddID0gJ01hY2F1ICc7CiRsYW5nWydNRyddID0gJ01hZGFnYXNjYXIgJzsKJGxhbmdbJ01XJ10gPSAnTWFsYXdpICc7CiRsYW5nWydNWSddID0gJ01hbGF5c2lhICc7CiRsYW5nWydNViddID0gJ01hbGRpdmVuZSc7CiRsYW5nWydNTCddID0gJ01hbGkgJzsKJGxhbmdbJ01UJ10gPSAnTWFsdGEgJzsKJGxhbmdbJ01IJ10gPSAnTWFyc2hhbGwgSXNsYW5kcyAnOwokbGFuZ1snTVEnXSA9ICdNYXJ0aW5pcXVlICc7CiRsYW5nWydNUiddID0gJ01hdXJpdGFuaWEgJzsKJGxhbmdbJ01VJ10gPSAnTWF1cml0aXVzICc7CiRsYW5nWydZVCddID0gJ01heW90dGUgJzsKJGxhbmdbJ01YJ10gPSAnTWV4aWNvICc7CiRsYW5nWydGTSddID0gJ01pY3JvbmVzaWEgJzsKJGxhbmdbJ01DJ10gPSAnTW9uYWNvICc7CiRsYW5nWydNRCddID0gJ01vbGRvdmlhJzsKJGxhbmdbJ01BJ10gPSAnTW9yb2NjbyAnOwokbGFuZ1snTU4nXSA9ICdNb25nb2xpYSAnOwokbGFuZ1snTVMnXSA9ICdNb250c2VycmF0ICc7CiRsYW5nWydNWiddID0gJ01vemFtYmlxdWUgJzsKJGxhbmdbJ01NJ10gPSAnTXlhbm1hciAnOwokbGFuZ1snTkEnXSA9ICdOYW1pYmlhICc7CiRsYW5nWydOUiddID0gJ05hdXJ1ICc7CiRsYW5nWydOUCddID0gJ05lcGFsICc7CiRsYW5nWydOTCddID0gJ05lZGVybGFuZCc7CiRsYW5nWydBTiddID0gJ05ldGhlcmxhbmRza2UgQW50aWxsZW5lJzsKJGxhbmdbJ05UJ10gPSAnTmV1dHJhbCBab25lICc7CiRsYW5nWydOQyddID0gJ05ldyBDYWxlZG9uaWEgJzsKJGxhbmdbJ05aJ10gPSAnTmV3IFplYWxhbmQgKEFvdGVhcm9hKSAnOwokbGFuZ1snTkknXSA9ICdOaWNhcmFndWEgJzsKJGxhbmdbJ05FJ10gPSAnTmlnZXIgJzsKJGxhbmdbJ05HJ10gPSAnTmlnZXJpYSAnOwokbGFuZ1snTlUnXSA9ICdOaXVlICc7CiRsYW5nWydORiddID0gJ05vcmZvbGsgSXNsYW5kICc7CiRsYW5nWydNUCddID0gJ05vcnRoZXJuIE1hcmlhbmEgSXNsYW5kcyAnOwokbGFuZ1snTk8nXSA9ICdOb3JnZSc7CiRsYW5nWydPTSddID0gJ09tYW4gJzsKJGxhbmdbJ1BLJ10gPSAnUGFraXN0YW4gJzsKJGxhbmdbJ1BXJ10gPSAnUGFsYXUgJzsKJGxhbmdbJ1BTJ10gPSAnUGFsZXN0aW5zayB0ZXJyaXRvcml1bSc7CiRsYW5nWydQQSddID0gJ1BhbmFtYSAnOwokbGFuZ1snUEcnXSA9ICdQYXB1YSBOZXcgR3VpbmVhICc7CiRsYW5nWydQWSddID0gJ1BhcmFndWF5ICc7CiRsYW5nWydQRSddID0gJ1BlcnUgJzsKJGxhbmdbJ1BIJ10gPSAnUGhpbGlwcGluZW5lJzsKJGxhbmdbJ1BOJ10gPSAnUGl0Y2Fpcm4gJzsKJGxhbmdbJ1BMJ10gPSAnUG9sZW4nOwokbGFuZ1snUFQnXSA9ICdQb3J0dWdhbCAnOwokbGFuZ1snUFInXSA9ICdQdWVydG8gUmljbyAnOwokbGFuZ1snUUEnXSA9ICdRYXRhciAnOwokbGFuZ1snUkUnXSA9ICdSZXVuaW9uICc7CiRsYW5nWydSTyddID0gJ1JvbWFuaWEgJzsKJGxhbmdbJ1JVJ10gPSAnUnVzc2lhbiBGZWRlcmF0aW9uICc7CiRsYW5nWydSVyddID0gJ1J3YW5kYSAnOwokbGFuZ1snR1MnXSA9ICdTLiBHZW9yZ2lhIGFuZCBTLiBTYW5kd2ljaCBJc2xzLiAnOwokbGFuZ1snS04nXSA9ICdTYWludCBLaXR0cyBhbmQgTmV2aXMgJzsKJGxhbmdbJ0xDJ10gPSAnU2FpbnQgTHVjaWEgJzsKJGxhbmdbJ1ZDJ10gPSAnU2FpbnQgVmluY2VudCAmYW1wOyB0aGUgR3JlbmFkaW5lcyAnOwokbGFuZ1snV1MnXSA9ICdTYW1vYSAnOwokbGFuZ1snU00nXSA9ICdTYW4gTWFyaW5vICc7CiRsYW5nWydTVCddID0gJ1NhbyBUb21lIGFuZCBQcmluY2lwZSAnOwokbGFuZ1snU0EnXSA9ICdTYXVkaSBBcmFiaWEgJzsKJGxhbmdbJ1NOJ10gPSAnU2VuZWdhbCAnOwokbGFuZ1snU0MnXSA9ICdTZXljaGVsbGVzICc7CiRsYW5nWydTTCddID0gJ1NpZXJyYSBMZW9uZSAnOwokbGFuZ1snU0cnXSA9ICdTaW5nYXBvcmUgJzsKJGxhbmdbJ1NJJ10gPSAnU2xvdmVuaWEgJzsKJGxhbmdbJ1NLJ10gPSAnU2xvdmFrIFJlcHVibGljICc7CiRsYW5nWydTQiddID0gJ1NvbG9tb24gSXNsYW5kcyAnOwokbGFuZ1snU08nXSA9ICdTb21hbGlhICc7CiRsYW5nWydaQSddID0gJ1N5ZC1BZnJpY2EnOwokbGFuZ1snRVMnXSA9ICdTcGFuaWEnOwokbGFuZ1snTEsnXSA9ICdTcmkgTGFua2EgJzsKJGxhbmdbJ1NIJ10gPSAnU3QuIEhlbGVuYSAnOwokbGFuZ1snUE0nXSA9ICdTdC4gUGllcnJlIGFuZCBNaXF1ZWxvbiAgJzsKJGxhbmdbJ1NEJ10gPSAnU3VkYW4gJzsKJGxhbmdbJ1NSJ10gPSAnU3VyaW5hbWUgJzsKJGxhbmdbJ1NKJ10gPSAnU3ZhbGJhcmQgJmFtcDsgSmFuIE1heWVuICZvc2xhc2g7eWVuZSc7CiRsYW5nWydTWiddID0gJ1N3YXppbGFuZCAnOwokbGFuZ1snU0UnXSA9ICdTdmVyaWdlJzsKJGxhbmdbJ0NIJ10gPSAnU3ZlaXRzJzsKJGxhbmdbJ1NZJ10gPSAnU3lyaWEgJzsKJGxhbmdbJ1RXJ10gPSAnVGFpd2FuICc7CiRsYW5nWydUSiddID0gJ1RhamlraXN0YW4gJzsKJGxhbmdbJ1RaJ10gPSAnVGFuemFuaWEgJzsKJGxhbmdbJ1RIJ10gPSAnVGhhaWxhbmQgJzsKJGxhbmdbJ1RHJ10gPSAnVG9nbyAnOwokbGFuZ1snVEsnXSA9ICdUb2tlbGF1ICc7CiRsYW5nWydUTyddID0gJ1RvbmdhICc7CiRsYW5nWydUVCddID0gJ1RyaW5pZGFkIGFuZCBUb2JhZ28gJzsKJGxhbmdbJ1ROJ10gPSAnVHVuaXNpYSAnOwokbGFuZ1snVFInXSA9ICdUeXJraWEnOwokbGFuZ1snVE0nXSA9ICdUdXJrbWVuaXN0YW4gJzsKJGxhbmdbJ1RDJ10gPSAnVHVya3MgYW5kIENhaWNvcyBJc2xhbmRzICc7CiRsYW5nWydUViddID0gJ1R1dmFsdSAnOwokbGFuZ1snVUcnXSA9ICdVZ2FuZGEgJzsKJGxhbmdbJ1VBJ10gPSAnVWtyYWluYSc7CiRsYW5nWydBRSddID0gJ1VuaXRlZCBBcmFiIEVtaXJhdGVzICc7CiRsYW5nWydVSyddID0gJ1N0b3Jicml0YW5uaWEnOwokbGFuZ1snVVMnXSA9ICdGb3JlbnRlIFN0YXRlciBBbWVyaWNhJzsKJGxhbmdbJ1VNJ10gPSAnVVMgTWlub3IgT3V0bHlpbmcgSXNsYW5kcyAnOwokbGFuZ1snVVknXSA9ICdVcnVndWF5ICc7CiRsYW5nWydVWiddID0gJ1V6YmVraXN0YW4gJzsKJGxhbmdbJ1ZVJ10gPSAnVmFudWF0dSAnOwokbGFuZ1snVkEnXSA9ICdWYXRpY2FuIENpdHkgU3RhdGUgKEhvbHkgU2VlKSAnOwokbGFuZ1snVkUnXSA9ICdWZW5lenVlbGEgJzsKJGxhbmdbJ1ZOJ10gPSAnVmlldG5hbSc7CiRsYW5nWydWRyddID0gJ1ZpcmdpbiBJc2xhbmRzIChCcml0aXNoKSAnOwokbGFuZ1snVkknXSA9ICdWaXJnaW4gSXNsYW5kcyAoVS5TLikgJzsKJGxhbmdbJ1dGJ10gPSAnV2FsbGlzIGFuZCBGdXR1bmEgSXNsYW5kcyAnOwokbGFuZ1snRUgnXSA9ICdXZXN0ZXJuIFNhaGFyYSAnOwokbGFuZ1snWUUnXSA9ICdZZW1lbiAnOwokbGFuZ1snWVUnXSA9ICdZdWdvc2xhdmlhICc7CiRsYW5nWydaTSddID0gJ1phbWJpYSAnOwokbGFuZ1snWlcnXSA9ICdaaW1iYWJ3ZSAnOwokbGFuZ1snc3VibWlzc2lvbl9lcnJvciddID0gJ0Jla2xhZ2VyISBEZXQgc2tqZWRkZSBlbiBmZWlsIHVuZGVyIGJlaGFuZGxpbmcgYXYgZGluIHNramVtYSBpbm5zZW5kaW5nLic7CiRsYW5nWydzdWJtaXRfZXJyb3InXSA9ICdTa2plbWFCeWdnZXIgU2VuZGVmZWlsOiAlcyc7CiRsYW5nWyd1cGxvYWRzX2Vycm9yJ10gPSAnRmVpbCB2ZWQgb3ZlcmYmb3NsYXNoO3JpbmcgYXYgZmlsYSB0aWwgb3BwbGFzdGluZ3Ntb2R1bGVuOiAlcyc7CiRsYW5nWydub3VwbG9hZHNfZXJyb3InXSA9ICdLdW5uZSBpa2tlIGZpbm5lIE9wcGxhc3RpbmdzbW9kdWxlbic7CiRsYW5nWyd1cGxvYWRfYXR0YWNoX2Vycm9yJ10gPSAnT3BwbGFzdGluZy9WZWRsZWdnIGZlaWwgcCZhcmluZzsgZmlsICVzICh0ZW1wX25hdm46ICVzLCBhdiB0eXBlICVzKSc7CiRsYW5nWydzdWJtaXNzaW9uX2Vycm9yX2ZpbGVfbG9jayddID0gJ0ZlaWwuIFVtdWxpZyAmYXJpbmc7IGVydmVydmUgbCZhcmluZztzIGZvciBmaWxlbi4nOwokbGFuZ1sndW5jaGVja2VkX2J5X2RlZmF1bHQnXSA9ICdTdGFuZGFyZDogaWtrZSBhdmhha2V0JzsKJGxhbmdbJ2NoZWNrZWRfYnlfZGVmYXVsdCddID0gJ1N0YW5kYXJkOiBhdmhha2V0JzsKJGxhbmdbJ2VtYWlsX2RlZmF1bHRfdGVtcGxhdGUnXSA9ICdTa2plbWFCeWdnZXIgaW5uc2VuZGluZyc7CiRsYW5nWydlbWFpbF90ZW1wbGF0ZV9ub3Rfc2V0J10gPSAnPGJyLz5FcG9zdCBtYWwgZW5uJmFyaW5nOyAmYXJpbmc7aWtrZSBhbmdpdHQhJzsKJGxhbmdbJ21pc3NpbmdfY21zX21haWxlciddID0gJ1NramVtYUJ5Z2dlcjogS2FuIGlra2UgZmlubmUgbiZvc2xhc2g7ZHZlbmRpZyBtb2R1bCBDTVNNYWlsZXIhJzsKJGxhbmdbJ3VzZXJfYXBwcm92ZWRfc3VibWlzc2lvbiddID0gJ0JydWtlciBnb2RramVudCBzZW5kaW5nICVzIGZyYSAlcyc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J10gPSAnSGVuZGVsc2Ugc2F0dCBpIGdhbmcgbiZhcmluZztyIGV0IFNramVtYUJ5Z2dlciBza2plbWEgYmxpciBpbm5sZXZlcnQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdEVycm9yJ10gPSAnSGVuZGVsc2Ugc2F0dCBpIGdhbmcgb20gZGV0IHNramVyIGVuIGZlaWwgbiZhcmluZztyIGV0IFNramVtYUJ5Z2dlciBza2plbWEgYmxpciBpbm5sZXZlcnQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXSA9ICdIZW5kZWxzZSBzYXR0IGkgZ2FuZyBuJmFyaW5nO3IgZXQgU2tqZW1hQnlnZ2VyIHNramVtYSBibHJpIHZpc3QnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdCddID0gJzxwPkhlbmRlbHNlIHNhdHQgaSBnYW5nIG4mYXJpbmc7ciBldCBTa2plbWFfQnlnZ2VyIHNramVtYSBibGlyIHNlbmR0LjwvcD4NCjxoND5QYXJhbWV0ZXJlPC9oND4NCjx1bD4NCjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBTa2plbWEgbmF2bmV0IChzdHJpbmcpPC9saT4NCjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gRGVuIGludGVybmUgU2tqZW1hIGlkIChpbnQpPC9saT4NCjxsaT48ZW0+dmFsdWVfJmFtcDtsdDtuYW1lJmFtcDtndDs8L2VtPiAtIFRpbGYmb3NsYXNoO3IgZW4gc3RhbmRhcmQgdmVyZGkgdGlsIGV0IGZlbHQgbWVkIGRldCBvcGdpdHRlIG5hdm5ldC48L2xpPg0KPC91bD4gJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddID0gJzxwPkhlbmRlbHNlIHNhdHQgaSBnYW5nIG9tIGRldCBza2plciBlbiBmZWlsIG4mYXJpbmc7ciBldCBTa2plbWFCeWdnZXIgc2tqZW1hIGJsaXIgc2VuZHQ8L3A+DQo8aDQ+UGFyYW1ldGVyZTwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gU2tqZW1hIG5hdm5ldCAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIERlbiBpbnRlcm5lIHNramVtYSBpZCAoaW50KTwvbGk+DQo8bGk+PGVtPmVycm9yPC9lbT4gLSBFbiBsaXN0ZSBtZWQgYWxsZSBramVudGUgZmVpbCAoc3RyaW5nKTwvbGk+DQo8L3VsPiAnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXSA9ICc8cD5IZW5kZWxzZSBzYXR0IGkgZ2FuZyBuJmFyaW5nO3IgZXQgU2tqZW1hQnlnZ2VyIHNramVtYSBibHJpIHZpc3Q8L3A+DQo8aDQ+UGFyYW1ldGVyZTwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gU2tqZW1hIG5hdm5ldCAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIERlbiBpbnRlcm5lIHNramVtYSBpZCAoaW50KTwvbGk+DQo8L3VsPiAnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX3Jlc3BvbnNlX2lkJ10gPSAnUmVzcG9uc2UgSUQuIEJydWt0IGF2IFNramVtYVV0Zm9yc2tlcihGb3JtQnJvd3NlciknOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX3Bhc3NlZF9mcm9tX3RhZyddID0gJ1N0YW5kYXJkIGZlbHZlcmRpZXIgLSBzZSBtb2R1bGhlbHAgZm9yIGluZm8nOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2ZpZWxkX2lkJ10gPSAnRmVsdCBJRCBmb3IgaW50ZXJuZSBvcGVyYXNqb25lcic7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZm9ybV9uYW1lJ10gPSAnU2tqZW1hbmF2bic7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZm9ybV9pZCddID0gJ1NramVtYSBJRCBmb3IgaW50ZXJuZSBvcGVyYXNqb25lcic7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZ2VuZXJhbCddID0gJ0dlbmVyZWxsZSBwYXJhbWV0cmUgZm9yIGludGVybmUgb3BlcmFzam9uZXInOwokbGFuZ1sndGVtcGxhdGVfdmFyaWFibGVfaGVscCddID0gJzxoMz5Gb3JtIFRlbXBsYXRlIFZhcmlhYmxlczwvaDM+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+PHRkPmZpZWxkLT5oZWxwdGV4dDwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgaGVscCB0ZXh0PC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aW5wdXQ8L3RkPjx0ZD50aGUgZmllbGQmIzAzOTtzIGlucHV0IGNvbnRyb2wgKGUuZy4sIHRoZSBpbnB1dCBmaWVsZCBpdHNlbGYpPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+b3A8L3RkPjx0ZD5hIGNvbnRyb2wgYnV0dG9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgZmllbGQgaWYgYXBwbGljYWJsZSAoZS5nLiwgdGhlIGRlbGV0ZSBidXR0b24gZm9yIGV4cGFuZGFibGUgdGV4dCBpbnB1dCk8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5pbnB1dF9pZDwvdGQ+PHRkPnRoZSBJRCBvZiB0aGUgZmllbGQmIzAzOTtzIGlucHV0ICh1c2VmdWwgZm9yIGxhYmVsIGZvcj0mcXVvdDtmb28mcXVvdDspPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+YWxpYXM8L3RkPjx0ZD50aGUgYWxpYXMgc3BlY2lmaWVkIGZvciB0aGlzIGZpZWxkPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aWQ8L3RkPjx0ZD50aGUgaW50ZXJuYWwgLyBvcGFxdWUgaWQgRm9ybUJ1aWxkZXIgdXNlcyBmb3IgdGhpcyBmaWVsZDwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPnR5cGU8L3RkPjx0ZD50aGUgZmllbGQmIzAzOTtzIGRhdGEgdHlwZTwvdGQ+PC90cj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQo8dHI+PHRkPmZpZWxkLT5tdWx0aXBsZV9wYXJ0czwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkLT5pbnB1dCBpcyBhY3R1YWxseSBhIGNvbGxlY3Rpb24gb2YgY29udHJvbHM8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5sYWJlbF9wYXJ0czwvdGQ+PHRkPjEgaWYgdGhlIGNvbGxlY3Rpb24gb2YgY29udHJvbHMgaGFzIHNlcGFyYXRlIGxhYmVscyBmb3IgZWFjaCBjb250cm9sPC90ZD48L3RyPg0KPC90YWJsZT4NCg0KPHA+SW4gdGhlIGNhc2Ugb2YgYSBtdWx0aXBhZ2UgZm9ybSwgeW91IHdpbGwgYWxzbyBoYXZlIGFjY2VzcyB0byB0aGUgdmFsdWUgb2YgcHJldmlvdXMgZmllbGRzLiBUaGV5DQphcmUgaW4gdGhlICRwcmV2aW91cyBhcnJheSwgb3IgYWNjZXNzaWJsZSBieSB0aGVpciBuYW1lcyAoZS5nLiwgJmFtcDsjMTIzOyRteWZpZWxkLT52YWx1ZX0gKS4NCllvdSBjYW4gdXNlIHRoaXMgaW4gU3RhdGljIFRleHQgZmllbGRzIGFzIHdlbGwsIHdoaWNoIGlzIGEgbmljZSB3YXkgdG8gcGVyc29uYWxpemUgZm9ybXMhPC9wPg0KDQo8cD5JbiBjZXJ0YWluIGNhc2VzLCBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYW4gYXJyYXkgb2Ygb2JqZWN0cyByYXRoZXIgdGhhbiBhbiBpbnB1dC4gVGhpcyBoYXBwZW5zLCBmb3IgZXhhbXBsZSwgaW4gQ2hlY2tCb3hHcm91cHMgb3IgUmFkaW9CdXR0b25Hcm91cHMuIEZvciB0aGVtLCB5b3UgY2FuIGl0ZXJhdGUgdGhyb3VnaCBmaWVsZC0+aW5wdXQtPm5hbWUgYW5kIGZpZWxkLT5pbnB1dC0+aW5wdXRzLjwvcD4NCiAgICANCjxwPkFkZGl0aW9uYWwgc21hcnR5IHZhcmlhYmxlcyB0aGF0IHlvdSBjYW4gdXNlIGluY2x1ZGU6PC9wPg0KPHRhYmxlPg0KPHRyPjx0aD5WYXJpYWJsZTwvdGg+PHRoPlZhbHVlPC90aD48L3RyPg0KPHRyPjx0ZD50b3RhbF9wYWdlczwvdGQ+PHRkPm51bWJlciBvZiBwYWdlcyBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+dGhpc19wYWdlPC90ZD48dGQ+bnVtYmVyIGZvIHRoZSBjdXJyZW50IHBhZ2UgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPnRpdGxlX3BhZ2VfeF9vZl95PC90ZD48dGQ+ZGlzcGxheXMgJnF1b3Q7cGFnZSB4IG9mIHkmcXVvdDsgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPmNzc19jbGFzczwvdGQ+PHRkPkNTUyBDbGFzcyBmb3IgdGhlIGZvcm08L3RkPjwvdHI+DQo8dHI+PHRkPmZvcm1fbmFtZTwvdGQ+PHRkPkZvcm0gbmFtZTwvdGQ+PC90cj4NCjx0cj48dGQ+Zm9ybV9pZDwvdGQ+PHRkPkZvcm0gZGF0YWJhc2UgSUQ8L3RkPjwvdHI+DQo8dHI+PHRkPmluX2Zvcm1icm93c2VyPC90ZD48dGQ+MSBpZiBmb3JtIGlzIGJlaW5nIHZpZXdlZCBmcm9tIEZvcm1Ccm93c2VyPC90ZD48L3RyPg0KPHRyPjx0ZD5pbl9hZG1pbjwvdGQ+PHRkPjEgaWYgZm9ybSBpcyBiZWluZyB2aWV3ZWQgdmlhIEZvcm1Ccm93c2VyIGFkbWluPC90ZD48L3RyPg0KPHRyPjx0ZD5mYnJfaWQ8L3RkPjx0ZD5SZXNwb25zZSBJRCBpZiBmb3JtIGlzIGJlaW5nIHZpZXdlZCBmcm9tIEZvcm1Ccm93c2VyPC90ZD48L3RyPg0KPHRyPjx0ZD5wcmV2PC90ZD48dGQ+JnF1b3Q7QmFjayZxdW90OyBidXR0b24gZm9yIG11bHRpcGFydCBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+c3VibWl0PC90ZD48dGQ+JnF1b3Q7Q29udGludWUmcXVvdDsgb3IgJnF1b3Q7U3VibWl0JnF1b3Q7IGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zLCBhZGp1c3RzIGF1dG9tYXRpY2FsbHk8L3RkPjwvdHI+DQo8L3RhYmxlPg0KPHA+RHVubm8gd2h5IHlvdSYjMDM5O2Qgd2FudCBzb21lIG9mIHRob3NlLCBidXQgdGhlcmUgeW91IGdvLi4uPC9wPic7CiRsYW5nWydwb3N0X2luc3RhbGwnXSA9ICdGb3JtQnVpbGRlciBpbnN0YWxsZXJ0LiBWZW5ubGlnc3Qgc2pla2sgaSBtb2R1bGVucyBIamVscC1zaWRlIGZvciBkb2t1bWVudGFzam9uLic7CiRsYW5nWydoZWxwJ10gPSAnPGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+DQo8cD5UaGUgRm9ybSBCdWlsZGVyIE1vZHVsZSBhbGxvd3MgeW91IHRvIGNyZWF0ZSBmb3JtcyAoaW4gZmFjdCwgaXQmIzAzOTtzIGEgcmVwbGFjZW1lbnQgb2YgdGhlIG9yaWdpbmFsIEZlZWRiYWNrIEZvcm0gbW9kdWxlKSwgd2l0aA0KdGhlIGFkZGVkIHBvd2VyIG9mIGRhdGFiYXNlIHN0b3JhZ2UuIFdpdGggaXRzIGNvbXBhbmlvbiBtb2R1bGUgRm9ybSBCcm93c2VyLCB5b3UgY2FuIHVzZSBpdCB0byBjcmVhdGUgc2ltcGxlIGRhdGFiYXNlIGFwcGxpY2F0aW9ucy48L3A+DQo8cD5UaGUgZm9ybXMgY3JlYXRlZCB1c2luZyB0aGUgRm9ybSBCdWlsZGVyIG1heSBiZSBpbnNlcnRlZA0KaW50byB0ZW1wbGF0ZXMgYW5kL29yIGNvbnRlbnQgcGFnZXMuIEZvcm1zIG1heSBjb250YWluIG1hbnkga2luZHMgb2YgaW5wdXRzLCBhbmQgbWF5IGhhdmUNCnZhbGlkYXRpb24gYXBwbGllZCB0byB0aGVzZSBpbnB1dHMuIFRoZSByZXN1bHRzIG9mIHRoZXNlIGZvcm1zIG1heSBiZSBoYW5kbGVkIGluIGEgdmFyaWV0eSBvZiB3YXlzLjwvcD4NCg0KPGgzPkhvdyBEbyBJIFVzZSBpdD88L2gzPg0KPFA+SW5zdGFsbCBpdCwgYW5kIHBva2UgYXJvdW5kIHRoZSBtZW51cy4gUGxheSB3aXRoIGl0LiBUcnkgY3JlYXRpbmcgZm9ybXMsIGFuZCBhZGRpbmcgdGhlbSB0byB5b3VyIGNvbnRlbnQuDQpJZiB5b3UgZ2V0IHN0dWNrLCBjaGF0IHdpdGggbWUgb24gdGhlICNjbXMgSVJDIGNoYW5uZWwsIHBvc3QgdG8gdGhlIGZvcnVtLCBzZW5kIG1lIGVtYWlsLCBvciwgaWYgeW91JiMwMzk7cmUNCnJlYWxseSBkZXNwZXJhdGUsIHRyeSByZWFkaW5nIHRoZSBpbnN0cnVjdGlvbnMgb24gdGhlIHJlc3Qgb2YgdGhpcyBwYWdlLjwvUD4NCg0KPGgzPkhvdyBEbyBJIENyZWF0ZSBhIEZvcm08L2gzPg0KPHA+SW4gdGhlIENNUyBBZG1pbiBNZW51LCB5b3Ugc2hvdWxkIGdldCBhIG5ldyBtZW51IGl0ZW0gY2FsbGVkIEZvcm1CdWlsZGVyLiBDbGljayBvbiB0aGlzLiBPbiB0aGUgcGFnZQ0KdGhhdCBnZXRzIHNob3duLCB0aGVyZSBhcmUgb3B0aW9ucyAoYXQgdGhlIGJvdHRvbSBvZiB0aGUgbGlzdCBvZiBGb3JtcykgdG8gQWRkIGEgTmV3IEZvcm0gb3IgTW9kaWZ5DQpDb25maWd1cmF0aW9uLjwvcD4NCg0KPGgzPkFkZGluZyBhIEZvcm0gdG8gYSBQYWdlPC9oMz4NCjxwPkluIHRoZSBtYWluIEZvcm1CdWlsZGVyIGFkbWluIHBhZ2UsIHlvdSBjYW4gc2VlIGFuIGV4YW1wbGUgb2YgdGhlIHRhZyB1c2VkIHRvIGRpc3BsYXkgZWFjaCBmb3JtLiBJdCBsb29rcw0Kc29tZXRoaW5nIGxpa2Uge0Zvcm1CdWlsZGVyIGZvcm09JiMwMzk7c2FtcGxlX2Zvcm0mIzAzOTt9PC9wPg0KPHA+QnkgY29weWluZyB0aGlzIHRhZyBpbnRvIHRoZSBjb250ZW50IG9mIGEgcGFnZSwgb3IgaW50byBhIHRlbXBsYXRlLCB3aWxsIGNhdXNlIHRoYXQgZm9ybSB0byBiZSBkaXNwbGF5ZWQuDQpJbiB0aGVvcnksIHlvdSBjYW4gaGF2ZSBtdWx0aXBsZSBmb3JtcyBvbiBhIHBhZ2UgaWYgeW91IHJlYWxseSB3YW50IHRvLiBCZSBjYXJlZnVsIHdoZW4gcGFzdGluZyB0aGUgdGFnDQppbnRvIGEgcGFnZSYjMDM5O3MgY29udGVudCBpZiB5b3UgdXNlIGEgV1lTSVdZRyBlZGl0b3Igc3VjaCBhcyBUaW55TUNFLCBGQ0tFZGl0LCBvciBIVE1MQXJlYS4gVGhlc2UgZWRpdG9ycyBtYXkgc3RlYWx0aGlseQ0KY2hhbmdlIHRoZSBxdW90ZSBtYXJrcyAoJnF1b3Q7KSBpbnRvIEhUTUwgZW50aXRpZXMgKCZhbXA7YW1wO3F1b3Q7KSwgYW5kIHRoZSBmb3JtcyB3aWxsIG5vdCBzaG93IHVwLiBUcnkgdXNpbmcNCnNpbmdsZSBxdW90ZXMgKCYjMDM5Oykgb3IgZWRpdGluZyB0aGUgSFRNTCBkaXJlY3RseS48L3A+DQoNCjxoMz5Xb3JraW5nIHdpdGggRm9ybXM8L2gzPg0KPHA+QnkgY2xpY2tpbmcgb24gYSBGb3JtJiMwMzk7cyBuYW1lLCB5b3UgZW50ZXIgdGhlIEZvcm0gRWRpdCBwYWdlLiBUaGVyZSBhcmUgc2V2ZXJhbCB0YWJzLCB3aGljaCBhcmUgZGVzY3JpYmVkIGJlbG93OjwvcD4NCjxoND5NYWluPC9oND4NCjxwPlRoaXMgaXMgdGhlIG1haW4gcGxhY2UgeW91JiMwMzk7bGwgd29yayBvbiB5b3VyIGZvcm0uIEhlcmUsIHlvdSBnaXZlIGl0IGEgbmFtZSwgYW4gYWxpYXMgKHdoaWNoIGlzIHVzZWQgdG8gaWRlbnRpZnkgaXQgZm9yIHBsYWNpbmcgaXQgaW4gYSBwYWdlIG9yIHRlbXBsYXRlKSwgYW5kLCBvcHRpb25hbGx5LCBhIENTUyBjbGFzcyB3aXRoIHdoaWNoIHRvIHdyYXAgdGhlIHdob2xlIHRoaW5nLjwvcD4NCjxwPkJlbG93IHRoaXMsIGlmIHlvdSBoYXZlIGl0IGVuYWJsZWQsIGlzIHRoZSAmcXVvdDtmYXN0IGZpZWxkIGFkZGVyJnF1b3Q7IHB1bGxkb3duLCB0aGF0IGxldHMgeW91IHF1aWNrbHkgYWRkIGEgZmllbGQgdG8gdGhlIGVuZCBvZiB5b3VyIGZvcm0gYnkgc2VsZWN0aW5nIHRoZSBmaWVsZCB0eXBlLjwvcD4NCjxwPkJlbG93IHRoaXMgaXMgdGhlIGxpc3Qgb2YgZmllbGRzIHRoYXQgbWFrZSB1cCB5b3VyIGZvcm0uIE1vcmUgZGV0YWlsIG9uIHRoaXMgaXMgZGVzY3JpYmVkIGJlbG93LjwvcD4NCjxoND5Gb3JtIFN1Ym1pc3Npb248L2g0Pg0KPHA+V2hlbiB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQsIHlvdSBjYW4gZWl0aGVyIHJlZGlyZWN0IHRoZSB1c2VyIHRvIGFub3RoZXIgcGFnZSBvZiB5b3VyIHNpdGUsIG9yIHlvdSBjYW4gcHJlc2VudCB0aGUgdXNlciBzb21lIG1lc3NhZ2UgKHdoaWNoIGNhbiBjb250YWluIGFueSBvZiB0aGUgdXNlciYjMDM5O3MgZm9ybSBlbnRyaWVzLCBvciBqdXN0IHN0YXRpYyB0ZXh0KS4gSW4gdGhpcyB0YWIsIHlvdSBzZWxlY3Qgd2hpY2ggb2YgdGhlc2UgYXBwcm9hY2hlcyB5b3Ugd2lzaCB0byB1c2UsIGFuZCwgaWYgeW91IGNob3NlIHJlZGlyZWN0aW9uLCBpdCBhbGxvd3MgeW91IHRvIHBpY2sgdGhlIHBhZ2UgdG8gcmVkaXJlY3QgdXNlcnMgdG8gYWZ0ZXIgYSBzdWNjZXNzZnVsIGZvcm0gc3VibWlzc2lvbi48L3A+DQo8cD5BbHNvIG9uIHRoaXMgcGFnZSwgeW91IGNhbiBzcGVjaWZ5IHRoZSBsYWJlbHMgb2YgdmFyaW91cyBzdWJtaXNzaW9uIGJ1dHRvbnMgKCZxdW90O1ByZXZpb3VzJnF1b3Q7LCAmcXVvdDtuZXh0JnF1b3Q7LCAmcXVvdDtzdWJtaXQmcXVvdDspLiBZb3UgY2FuIGFsc28gb3B0IHRvIGhhdmUgc29tZSBKYXZhc2NyaXB0IGFkZGVkIHRvIHRoZSBsYXN0IHBhZ2Ugb2YgYSBmb3JtIHRoYXQgd2lsbCBwcmV2ZW50IG11bHRpcGxlIHN1Ym1pc3Npb25zICh1c2VmdWwgb24gc2xvdyBzZXJ2ZXJzKS48L3A+DQo8aDQ+Rm9ybSBEaXNwbGF5IE9wdGlvbnM8L2g0Pg0KPHA+VGhpcyB0YWIgYWxsb3dzIGZvciBvdGhlciBmb3JtIGN1c3RvbWl6YXRpb25zLCBsaWtlIHRoZSBzeW1ib2wgdG8gc2hvdyBmb3IgcmVxdWlyZWQgZmllbGRzLjwvcD4NCjxoND5DYXB0Y2hhIFNldHRpbmdzPC9oND4NCjxwPklmIHlvdSBoYXZlIGluc3RhbGxlZCB0aGUgQ2FwdGNoYSBtb2R1bGUsIHRoaXMgdGFiIGxldHMgeW91IGNvbmZpZ3VyZSB0aGUgQ2FwdGNoYSBzZXR0aW5ncyBmb3IgeW91ciBmb3JtLjwvcD4NCjxoND5Gb3JtIFRlbXBsYXRlPC9oND4NCjxwPlRoaXMgaXMgd2hlcmUgeW91IGRvIHlvdXIgY3VzdG9taXphdGlvbiB3b3JrIG9mIHlvdXIgZm9ybSYjMDM5O3MgU21hcnR5IFRlbXBsYXRlLiBTZWUgdGhlIHNlY3Rpb24gY2FsbGVkIEZvcm0gVGVtcGxhdGUgVmFyaWFibGVzIGJlbG93LjwvcD4NCjxwPlRoZSBmb3JtIHNob3VsZCBkZWZhdWx0IHRvIGEgQ3VzdG9tIHRlbXBsYXRlIHRoYXQgZG9jdW1lbnRzIHRoZSBTbWFydHkgdGFncyBhdmFpbGFibGUgdG8geW91LjwvcD4NCjxwPlVubGVzcyB5b3UmIzAzOTtyZSBhIFNtYXJ0eSBleHBlcnQsIHlvdSBwcm9iYWJseSBkb24mIzAzOTt0IHdhbnQgdG8gbWVzcyBhcm91bmQgd2l0aCB0aGlzLiBJZiB5b3UgYXJlIGEgU21hcnR5IGV4cGVydCwgdGhpcyBpcyB3aGVyZSB5b3UgY2FuIHVubGVhc2ggeW91ciBtYWdpYy48L3A+DQo8aDQ+U3VibWlzc2lvbiBUZW1wbGF0ZTwvaDQ+DQo8cD5JZiwgaW4gdGhlIEZvcm0gU3VibWlzc2lvbiB0YWIsIHlvdSBzZWxlY3RlZCAmIzAzOTtEaXNwbGF5ICZxdW90O1N1Ym1pc3Npb24gVGVtcGxhdGUmcXVvdDssIHRoaXMgaXMgd2hlcmUgeW91IGNhbiBjcmVhdGUgdGhhdCB0ZW1wbGF0ZS4gVGhlcmUgaXMgYSBkaXNwbGF5IG9mIHdoaWNoIHNtYXJ0eSB2YXJpYWJsZXMgYXJlIGF2YWlsYWJsZSB0byB5b3UsIGFuZCBhIGJ1dHRvbiB0byBnZW5lcmF0ZSBhIHNhbXBsZSB0ZW1wbGF0ZS48L3A+DQo8cD5JZiB5b3UmIzAzOTtyZSBhIFNtYXJ0eSBleHBlcnQsIHlvdSBjYW4gZG8gYWxsIG1hbm5lciBvZiBjcmVhdGl2ZSBhbmQgcG93ZXJmdWwgdGhpbmdzIGhlcmUuIElmIHlvdSYjMDM5O3JlIG5vdCBhIFNtYXJ0eSBleHBlcnQsIHlvdSBtaWdodCBqdXN0IHdhbnQgdG8gdXNlIHRoZSBkZWZhdWx0Lg0KPC9wPg0KDQo8aDM+QWRkaW5nIEZpZWxkcyB0byB5b3VyIEZvcm08L2gzPg0KPHA+VGhlIHR5cGVzIG9mIGZpZWxkcyB0aGF0IGFyZSBjdXJyZW50bHkgc3VwcG9ydGVkIGZpdCBpbnRvIGZvdXIgZ3JvdXBzOiBzdGFuZGFyZCBpbnB1dCBmaWVsZHMsIGRpc3BsYXkgY29udHJvbCBmaWVsZHMsIGVtYWlsLXNwZWNpZmljIGZpZWxkcywgYW5kIGZvcm0gcmVzdWx0IGhhbmRsaW5nIGZpZWxkcyAoYWxzbyBjYWxsZWQgRm9ybSBEaXNwb3NpdGlvbnMgaW4gcGxhY2VzKTo8L3A+DQo8dWw+DQo8bGk+U3RhbmRhcmQgSW5wdXQgRmllbGRzIC0gdGhlc2UgYXJlIGlucHV0cyB0aGF0IGFsbG93IGVudHJ5IG9mIHR5cGljYWwgZm9ybSBlbGVtZW50czsgdGV4dCBpbnB1dHMsIHJhZGlvIGJ1dHRvbnMsIGV0Yy48L2xpPg0KPGxpPkRpc3BsYXkgQ29udHJvbCBGaWVsZHMgLSB0aGVzZSBpbnB1dCBjb250cm9sIGhvdyB0aGUgdXNlciB3aWxsIHNlZSB0aGUgZGlzcGxheSBvZiB0aGUgZm9ybTsgcGFnZSBicmVha3MsIHN0YXRpYyB0ZXh0LCBldGMuPC9saT4NCjxsaT5FbWFpbC1zcGVjaWZpYyBGaWVsZHMgLSBzb21lIGZvcm1zIGdlbmVyYXRlIGVtYWlsLCBhbmQgZW1haWwtc3BlY2lmaWMgZmllbGRzIGNhbiBhbHRlciBhdHRyaWJ1dGVzIG9mIHRoZSBlbWFpbHMgc2VudC48L2xpPg0KPGxpPkZvcm0gRGlzcG9zaXRpb25zIC0gVGhlc2UgZGV0ZXJtaW5lIHdoYXQgaGFwcGVucyB3aGVuIHRoZSB1c2VyDQpzdWJtaXRzIHRoZSBmb3JtOyBmb3IgZWFjaCByZXN1bHQgaGFuZGxpbmcgZmllbGQsIHNvbWUgbWV0aG9kIG9mIHRyYW5zbWl0dGluZywgc2F2aW5nLCBvciBlbWFpbGluZyB0aGUNCmZvcm0gY29udGVudHMgdGFrZXMgcGxhY2UuIEEgZm9ybSBtYXkgaGF2ZSBtdWx0aXBsZSBmb3JtIGRpc3Bvc2l0aW9ucy48L2xpPg0KPC91bD4NCjxwPkZvcm0gZmllbGRzIGFyZSBhc3NpZ25lZCBuYW1lcy4gVGhlc2UgbmFtZXMgaWRlbnRpZnkgdGhlIGZpZWxkLCBub3Qgb25seSBvbiB0aGUgc2NyZWVuIGFzIGxhYmVscyBmb3IgdGhlIHVzZXIsDQpidXQgaW4gdGhlIGRhdGEgd2hlbiBpdCYjMDM5O3Mgc3VibWl0dGVkIHNvIHlvdSBrbm93IHdoYXQgdGhlIHVzZXIgaXMgcmVzcG9uZGluZyB0by4gUGhyYXNpbmcgdGhlIG5hbWUgbGlrZSBhIHF1ZXN0aW9uDQppcyBhIGhhbmR5IHdheSBvZiBtYWtpbmcgaXQgY2xlYXIgdG8gdGhlIHVzZXIgd2hhdCBpcyBleHBlY3RlZC4gU2ltaWxhcmx5LCBtYW55IGZpZWxkcyBoYXZlIGJvdGggTmFtZXMgYW5kIFZhbHVlcy4NClRoZSBOYW1lcyBhcmUgd2hhdCBnZXRzIHNob3duIHRvIHRoZSB1c2VyOyB0aGUgVmFsdWUgaXMgd2hhdCBnZXRzIHNhdmVkIG9yIHRyYW5zbWl0dGVkIHdoZW4gdGhlIHVzZXIgc3VibWl0cw0KdGhlIGZvcm0uIFRoZSBWYWx1ZXMgYXJlIG5ldmVyIHNlZW4gYnkgdGhlIHVzZXIsIG5vciBhcmUgdGhleSB2aXNpYmxlIGluIHRoZSBIVE1MLCBzbyBpdCYjMDM5O3Mgc2FmZSB0byB1c2UgZm9yDQplbWFpbCBhZGRyZXNzZXMgYW5kIHN1Y2guPC9wPg0KPHA+U29tZSBmaWVsZHMgY2FuIGhhdmUgbXVsdGlwbGUgdmFsdWVzLCBvciBtdWx0aXBsZSBuYW1lL3ZhbHVlIHBhaXJzLiBXaGVuIHlvdSBmaXJzdCBjcmVhdGUgc3VjaCBhIGZpZWxkLA0KdGhlcmUgbWF5IG5vdCBiZSBzdWZmaWNpZW50IGlucHV0cyBmb3IgeW91IHRvIHNwZWNpZnkgYWxsIHRoZSB2YWx1ZXMgeW91IHdhbnQuIFRvIGdldCBtb3JlIHNwYWNlIGZvciBpbnB1dHRpbmcNCnRoZXNlIHZhbHVlcywgdXNlIHRoZSBidXR0b25zIGF0IHRoZSBib3R0b20gb2YgdGhlIHBhZ2UgZm9yIGFkZGluZyBvcHRpb25zLjwvcD4NCjxwPkZpZWxkcyBjYW4gYmUgYXNzaWduZWQgdmFsaWRhdGlvbiBydWxlcywgd2hpY2ggdmFyeSBhY2NvcmRpbmcgdG8gdGhlIHR5cGUgb2YgdGhlIGZpZWxkLiBUaGVzZSBydWxlcyBoZWxwDQplbnN1cmUgdGhhdCB0aGUgdXNlciBlbnRlcnMgdmFsaWQgZGF0YS4gVGhleSBtYXkgYWxzbyBiZQ0Kc2VwYXJhdGVseSBtYXJrZWQgJnF1b3Q7UmVxdWlyZWQmcXVvdDssIHdoaWNoIHdpbGwgZm9yY2UgdGhlIHVzZXIgdG8gZW50ZXIgYSByZXNwb25zZS48L3A+DQo8cD5GaWVsZHMgYWxzbyBtYXkgYmUgYXNzaWduZWQgYSBDU1MgY2xhc3MuIFRoaXMgc2ltcGx5IHdyYXBzIHRoZSBpbnB1dCBpbiBhIGRpdiB3aXRoIHRoYXQgY2xhc3MsIHNvIGFzIHRvIGFsbG93DQpjdXN0b21pemVkIGxheW91dHMuIFRvIHVzZSB0aGlzIGVmZmVjdGl2ZWx5LCB5b3UgbWF5IG5lZWQgdG8gJnF1b3Q7dmlldyBzb3VyY2UmcXVvdDsgb24gdGhlIGdlbmVyYXRlZCBmb3JtLCBhbmQgdGhlbg0Kd3JpdGUgeW91ciBDU1MuPC9wPg0KPHVsPg0KPGxpPlN0YW5kYXJkIElucHV0cw0KPHVsPjxsaT5UZXh0IElucHV0LiBUaGlzIGlzIGEgc3RhbmRhcmQgdGV4dCBmaWVsZC4gWW91IGNhbiBsaW1pdCB0aGUgbGVuZ3RoLCBhbmQgYXBwbHkgdmFyaW91cyB2YWxpZGF0aW9uDQpmdW5jdGlvbnMgdG8gdGhlIGZpZWxkLjwvbGk+DQo8bGk+VGV4dCBBcmVhLiBUaGlzIGlzIGEgYmlnLCBmcmVlLWZvcm0gdGV4dCBpbnB1dCBmaWVsZC48L2xpPg0KPGxpPkNoZWNrYm94LiBUaGlzIGlzIGEgc3RhbmRhcmQgY2hlY2sgYm94LjwvbGk+DQo8bGk+QnV0dG9uLiBUaGlzIGRvZW5zJiMwMzk7dCBkbyBhbnl0aGluZywgYnV0IHlvdSBjYW4gaG9vayBpdCBpbnRvIHNvbWUgSmF2YXNjcmlwdC48L2xpPg0KPGxpPkNoZWNrYm94IEdyb3VwLiBUaGlzIGlzIGEgY29sbGVjdGlvbiBvZiBjaGVja2JveGVzLiBUaGUgb25seSBkaWZmZXJlbmNlIGJldHdlZW4gdGhpcyBpbnB1dCBhbmQgYQ0KY29sbGVjdGlvbiBvZiBDaGVja2JveCBpbnB1dHMgaXMgdGhhdCB0aGV5IGFyZSBwcmVzZW50ZWQgYXMgYSBncm91cCwgd2l0aCBvbmUgbmFtZSwgYW5kIGNhbiBoYXZlIGEgdmFsaWRhdGlvbiBmdW5jdGlvbiByZXF1aXJpbmcgdGhhdCB5b3UgY2hlY2sgb25lIG9yIG1vcmUgb2YgdGhlIGJveGVzIGluIHRoZSBncm91cC48L2xpPg0KPGxpPlJhZGlvIEdyb3VwLiBUaGlzIGlzIGEgY29sbGVjdGlvbiBvZiByYWRpbyBidXR0b25zLiBPbmx5IG9uZSBvZiB0aGUgZ3JvdXAgbWF5IGJlIHNlbGVjdGVkIGJ5IHRoZSB1c2VyLjwvbGk+DQo8bGk+UHVsbGRvd24uIFRoaXMgaXMgYSBzdGFuZGFyZCBwdWxsZG93biBtZW51LiBJdCYjMDM5O3MgcmVhbGx5IGNvbmNlcHR1YWxseSB0aGUgc2FtZSB0aGluZyBhcyBhIHJhZGlvIGJ1dHRvbg0KZ3JvdXAsIGJ1dCBpcyBiZXR0ZXIgd2hlbiB0aGVyZSBhcmUgYSBsYXJnZSBudW1iZXIgb2Ygb3B0aW9ucy48L2xpPg0KPGxpPk11bHRpc2VsZWN0LiBUaGlzIGlzIGEgbXVsdGktc2VsZWN0IGZpZWxkLiBJdCYjMDM5O3MgcmVhbGx5IGNvbmNlcHR1YWxseSB0aGUgc2FtZSB0aGluZyBhcyBhIGNoZWNrYm94IGJ1dHRvbg0KZ3JvdXAsIGJ1dCBpcyBiZXR0ZXIgd2hlbiB0aGVyZSBhcmUgYSBsYXJnZSBudW1iZXIgb2Ygb3B0aW9ucywgYXMgeW91IGNhbiBsaW1pdCB0aGUgbnVtYmVyIGRpc3BsYXllZCBvbiB0aGUgc2NyZWVuIGF0IGFueSBvbmUgdGltZS48L2xpPg0KPGxpPlBhc3N3b3JkLiBUaGlzIGlzIGFuIGFzdGVyaXNrZWQtb3V0IHRleHQgZmllbGQsIHVzZWZ1bCBmb3IgcGFzc3dvcmRzLjwvbGk+DQo8bGk+UGFzc3dvcmQgQWdhaW4gKHZlcmlmeSkuIFRoaXMgaXMgYSBmaWVsZCB0aGF0IG11c3QgbWF0Y2ggYSBQYXNzd29yZCBmaWVsZCBmb3Igc3VibWlzc2lvbg0KdG8gc3VjY2VlZC48L2xpPg0KPGxpPlN0YXRlLiBUaGlzIGlzIGEgcHVsbGRvd24gbGlzdGluZyB0aGUgU3RhdGVzIG9mIHRoZSBVLlMuPC9saT4NCjxsaT5DYW5hZGlhbiBQcm92aW5jZS4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIENhbmFkaWFuIFByb3ZpbmNlcyAoQ29udHJpYnV0ZWQgYnkgTm9lbCBNY0dyYW4uIFRoYW5rcyEpPC9saT4NCjxsaT5Db3VudHJpZXMuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBDb3VudHJpZXMgb2YgdGhlIHdvcmxkIChhcyBvZiBKdWx5IDIwMDUpLjwvbGk+DQo8bGk+RGF0ZSBQaWNrZXIuIFRoaXMgaXMgYSB0cmlwbGUgcHVsbGRvd24gYWxsb3dpbmcgdGhlIHVzZXIgdG8gc2VsZWN0IGEgZGF0ZS48L2xpPg0KPGxpPlRpbWUgUGlja2VyLiBUaGlzIGlzIGEgc2V0IG9mIHB1bGxkb3ducyBhbGxvd2luZyB0aGUgdXNlciB0byBzZWxlY3QgYSB0aW1lICh1c2luZyAxMiBvciAyNCBob3VyIGNsb2NrKS48L2xpPg0KPGxpPkZpbGUgVXBsb2FkLiBUaGlzIGlzIGEgZmlsZSB1cGxvYWQgZmllbGQuPC9saT4NCjxsaT5MaW5rIChVc2VyIEVudGVyZWQpLiBUaGlzIGNyZWF0ZXMgYSBkb3VibGUgaW5wdXQgZmllbGQgZm9yIGdldHRpbmcgYSBsaW5rIFVSTCBhbmQgbGluayB0aXRsZS48L2xpPg0KPGxpPlRleHQgRmllbGQgKE11bHRpcGxlKS4gVGhpcyBmaWVsZCBjcmVhdGVzIG9uZSBvciBtb3JlIHRleHQgaW5wdXRzIHdpdGggYWRkIGFuZCBkZWxldGUgYnV0dG9ucywgZWZmZWN0aXZlbHkgZ2l2aW5nIHRoZSBlbmQgdXNlciBhIHdheSBvZiBjcmVhdGluZyB2YXJpYWJsZS1sZW5ndGggbGlzdHMuPC9saT4NCjwvdWw+PC9saT4NCg0KPGxpPkVtYWlsLXNwZWNpZmljIElucHV0cw0KPHVsPjxsaT5FbWFpbCAmcXVvdDtGcm9tIEFkZHJlc3MmcXVvdDsgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgdGhlaXIgZW1haWwgYWRkcmVzcy4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIGFkZHJlc3MgaW4gdGhlICZxdW90O0Zyb20mcXVvdDsgZmllbGQuPC9saT4NCjxsaT5FbWFpbCAmcXVvdDtGcm9tIE5hbWUmcXVvdDsgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgdGhlaXIgbmFtZS4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIG5hbWUgaW4gdGhlICZxdW90O0Zyb20mcXVvdDsgZmllbGQuPC9saT4NCjxsaT5FbWFpbCBTdWJqZWN0IEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIGEgc3ViamVjdCBmb3IgdGhlaXIgZW1haWwuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBpbiB0aGUgJnF1b3Q7U3ViamVjdCZxdW90OyBmaWVsZC4gVGhpcyBtYXkgY2F1c2UgdHJvdWJsZSB3aXRoIGNlcnRhaW4gZGlzcG9zaXRpb25zIHRoYXQgd2FudCB0byBjb250cm9sIHRoZSBFbWFpbCBTdWJqZWN0LCBzbyB1c2UgaXQgd2l0aCBjYXV0aW9uLjwvbGk+DQo8L3VsPjwvbGk+DQoNCjxsaT5EaXNwbGF5IENvbnRyb2wgRmllbGRzPHVsPg0KPGxpPi1QYWdlIEJyZWFrLiBUaGlzIGFsbG93cyB5b3UgdG8gc3BsaXQgeW91ciBmZWVkYmFjayBmb3JtIGludG8gbXVsdGlwbGUgcGFnZXMuIEVhY2ggcGFnZSBpcw0KaW5kZXBlbmRlbnRseSB2YWxpZGF0ZWQuIFRoaXMgaXMgZ29vZCBmb3IgYXBwbGljYXRpb25zIGxpa2Ugb25saW5lIHN1cnZleXMuPC9saT4NCjxsaT4tRmllbGRzZXQgU3RhcnQuIENvbWJpbmVkIHdpdGggRmllbGRzZXQgRW5kLCB0aGlzIGFsbG93cyB5b3UgdG8gZ3JvdXAgdmFyaW91cyBmaWVsZHMgd2l0aGluIHlvdXIgZm9ybS4gVXNlIHRoaXMgdG8gc3RhcnQgYSBnaXZlbiBncm91cGluZy48L2xpPg0KPGxpPi1GaWVsZHNldCBFbmQuIENvbWJpbmVkIHdpdGggRmllbGRzZXQgU3RhcnQsIHRoaXMgYWxsb3dzIHlvdSB0byBncm91cCB2YXJpb3VzIGZpZWxkcyB3aXRoaW4geW91ciBmb3JtLiBVc2UgdGhpcyB0byBlbmQgYSBnaXZlbiBncm91cGluZy48L2xpPg0KPGxpPi1IaWRkZW4gRmllbGQuIFRoaXMgYWxsb3dzIHlvdSB0byBlbWJlZCBhIGhpZGRlbiBmaWVsZCBpbiB5b3VyIGZvcm0uPC9saT4NCjxsaT4tU3RhdGljIFRleHQuIFRoaXMgYWxsb3dzIHlvdSB0byBwdXQgdGV4dCBvciBhIGxhYmVsIGluIHRoZSBtaWRkbGUgb2YgeW91ciBmb3JtLiBUaGlzIGlzIHVzZWZ1bCBmb3IgZ2l2aW5nIGFkZGl0aW9uYWwgaGVscCB0ZXh0LCBlc3BlY2lhbGx5IGlmIHlvdSYjMDM5O3JlIG5vdCB1c2luZyBhIEN1c3RvbSBUZW1wbGF0ZSB0byByZW5kZXIgeW91ciBmb3JtLjwvbGk+DQo8bGk+LVN0YXRpYyBMaW5rLiBUaGlzIGFsbG93cyB5b3UgdG8gcHV0IGEgbGluayB0byBhIGdpdmVuIHBhZ2UgaW50byB5b3VyIGZvcm0uIE9wdGlvbmFsbHksIHlvdSBjYW4gaGF2ZSBpdCBhdXRvcG9wdWxhdGUgd2l0aCB0aGUgcGFnZSB3aGVyZSB0aGUgZm9ybSBpcyBlbWJlZGRlZCAodXNlZnVsIGlmIHlvdSYjMDM5O3JlIHNlbmRpbmcgcmVzdWx0cyB2aWEgZW1haWwpLjwvbGk+DQo8bGk+LUNvbXB1dGVkIEZpZWxkLiBUaGlzIGFsbG93cyB5b3UgdG8gZW1iZWQgYSBjb21wdXRlZCBmaWVsZCBpbiB5b3VyIGZvcm0uIEl0IGlzIG5vdCB2aXNpYmxlIHRvIHRoZSB1c2VyIHVudGlsIGFmdGVyIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZC4gSXQgYWxsb3dzIHlvdSB0byBkbyBzaW1wbGUgYXJpdGhtZXRpYyBvciBzdHJpbmcgY29uY2F0ZW5hdGlvbi48L2xpPg0KPGxpPi1VbmlxdWUgSW50ZWdlciAoU2VyaWFsKS4gVGhpcyBpcyBhbiBpbnRlZ2VyIHRoYXQgaW5jcmVhc2VzIGV2ZXJ5IHRpbWUgc29tZW9uZSBoaXRzIHlvdXIgZm9ybS4gWW91ciByZXN1bHRzIG1heSBub3QgYmUgc2VxdWVudGlhbCwgYnV0IHRoZXkgd2lsbCBpbmNyZWFzZSBtb25vdG9uaWNhbGx5LjwvbGk+DQo8bGk+LVVzZXIgVGFnLiBUaGlzIGNhbGxzIHRoZSBzcGVjaWZpZWQgVXNlciBEZWZpbmVkIFRhZywgYW5kIGRpc3BsYXlzIGFueXRoaW5nIGl0IHJldHVybnMuIFRoZSBVRFQgZ2V0cyBjYWxsZWQgYW55IHRpbWUgdGhlIGZpZWxkIHdvdWxkIGJlIHZpc2libGUuPC9saT4NCjwvdWw+PC9saT4NCjxsaT4tTW9kdWxlIEluY2x1ZGUgVGFnLiBUaGlzIGFsbG93cyB5b3UgdG8gZW1iZWQgb3RoZXIgbW9kdWxlIG91dHB1dCBpbnRvIHlvdXIgZm9ybSwgZS5nLiwgYSBsaXN0IG9mIHByb2R1Y3RzIGZyb20gdGhlIFByb2R1Y3RzIG1vZHVsZS48L2xpPg0KDQo8bGk+Rm9ybSBIYW5kbGluZyBJbnB1dHMgKERpc3Bvc2l0aW9ucykNCjx1bD48bGk+KkNhbGwgYSBVc2VyIERlZmluZWQgVGFnIFdpdGggdGhlIEZvcm0gUmVzdWx0cy4gVGhpcyBzdWJtaXRzIGFsbCB0aGUgZm9ybSByZXN1bHRzIHRvIHRoZSBVc2VyLURlZmluZWQgVGFnIHlvdSBzcGVjaWZ5LiBUaGUgVURUIGNhbiBoYW5kbGUgdGhlIHJlc3VsdHMgaG93ZXZlciBpdCB3YW50cy4gVmFsdWVzIGFyZSBwYXNzZWQgYXMgJHBhcmFtc1smIzAzOTtmaWVsZF9uYW1lJiMwMzk7XSwgYW5kIGFzICRwYXJhbXNbJiMwMzk7ZmllbGRfYWxpYXMmIzAzOTtdIChpZiBkZWZpbmVkKS48L2xpPg0KPGxpPipFbWFpbCBSZXN1bHRzIEJhc2VkIG9uIFB1bGxkb3duLiBUaGlzIGlzIHVzZWZ1bCBmb3Igd2ViIHNpdGVzIHdoZXJlIGNvbW1lbnRzIGdldCByb3V0ZWQgYmFzZWQgb24gdGhlaXIgc3ViamVjdCBtYXR0ZXIsIGUuZy4sIGJ1Z3MgZ2V0IHNlbnQgdG8gb25lIHBlcnNvbiwgbWFya2V0aW5nIHF1ZXN0aW9ucyB0byBhbm90aGVyIHBlcnNvbiwgc2FsZXMgcmVxdWVzdHMgdG8gc29tZW9uZSBlbHNlLCBldGMuIFRoZSBwdWxsZG93biBpcyBwb3B1bGF0ZWQgd2l0aCB0aGUgc3ViamVjdHMsIGFuZCBlYWNoIGdldHMgZGlyZWN0ZWQgdG8gYSBzcGVjaWZpYyBlbWFpbCBhZGRyZXNzLiBZb3Ugc2V0IHVwIHRoZXNlIG1hcHBpbmdzIGluIHRoZSB3aGVuIHlvdSBjcmVhdGUgb3IgZWRpdCBhIGZpZWxkIG9mIHRoaXMgdHlwZS4gSWYgeW91IHVzZSBvbmUgb2YgdGhlc2UgJnF1b3Q7RGlyZWN0b3ImcXVvdDsgcHVsbGRvd25zLCB0aGUgdXNlciBtdXN0IG1ha2UgYSBzZWxlY3Rpb24gaW4gb3JkZXIgdG8gc3VibWl0IHRoZQ0KZm9ybS4gVGhpcyBpbnB1dCBpcyBwYXJ0IG9mIHRoZSBmb3JtIHRoZSB1c2VyIHNlZXMsIGFsdGhvdWdoIHRoZSBlbWFpbCBhZGRyZXNzZXMgYXJlIG5vdCBtYWRlIHZpc2libGUgbm9yDQphcmUgdGhleSBlbWJlZGRlZCBpbiB0aGUgSFRNTC48L2xpPg0KPGxpPipFbWFpbCAmcXVvdDtGcm9tIEFkZHJlc3MmcXVvdDsgRmllbGQsIGFuZCBzZW5kIGNvcHkuIFRoaXMgd29ya3MgbGlrZSB0aGUgRW1haWwgJnF1b3Q7RnJvbSBBZGRyZXNzJnF1b3Q7IEZpZWxkIGRlc2NyaWJlZCBhYm92ZSwgYnV0IGl0IHByb3ZpZGVzIG9wdGlvbnMgZm9yIHNlbmRpbmcgYSBjb3B5IG9mIHRoZSByZXN1bHRzIHRvIHRoZSB1c2VyLjwvbGk+DQo8bGk+KkVtYWlsIFJlc3VsdHMgdG8gc2V0IEFkZHJlc3MoZXMpLiBUaGlzIHNpbXBseSBzZW5kcyB0aGUgZm9ybSByZXN1bHRzIHRvIG9uZSBvciBtb3JlIGVtYWlsIGFkZHJlc3NlcyB0aGF0IHlvdSBlbnRlciB3aGVuIHlvdSBjcmVhdGUgb3IgZWRpdCB0aGlzIHR5cGUgb2YgZmllbGQuIFRoaXMgZmllbGQgYW5kIGl0cyBuYW1lIGFyZSBub3QgdmlzaWJsZSBpbiB0aGUNCmZvcm0gdGhhdCB0aGUgdXNlciBzZWVzLiBUaGUgZW1haWwgYWRkcmVzc2VzIGFyZSBub3QgbWFkZSB2aXNpYmxlIG5vcg0KYXJlIHRoZXkgZW1iZWRkZWQgaW4gdGhlIEhUTUwuPC9saT4NCjxsaT4qRW1haWwgdG8gVXNlci1TdXBwbGllZCBBZGRyZXNzLiBUaGlzIHB1dHMgYW4gaW5wdXQgZmllbGQgaW4gdGhlIGZvcm0gZm9yIHRoZSB1c2VyIHRvIHBvcHVsYXRlIHdpdGggYW4gZW1haWwgYWRkcmVzcy4gVGhlIGZvcm0gcmVzdWx0cyBnZXQgc2VudCB0byB0aGF0IGFkZHJlc3MuIEJld2FyZSBvZiBTcGFtIGFidXNlISBBY3RpdmUgdGhlIHByaW1pdGl2ZSBhbnRpLXNwYW0gZmVhdHVyZXMgaW4gdGhlIEZvcm1CdWlsZGVyIGNvbmZpZ3VyYXRpb24gc2NyZWVuLjwvbGk+DQo8bGk+KlN0b3JlIFJlc3VsdHMgaW4gRGF0YWJhc2UuIDxzdHJvbmc+RGVwcmVjYXRlZC48L3N0cm9uZz4gVXNlIFN0b3JlIFJlc3VsdHMgZm9yIEZvcm1Ccm93c2VyIE1vZHVsZSBpbnN0ZWFkISBUaGlzIHdpbGwgc3RvcmUgdGhlIGZvcm0gY29udGVudHMgaW4gYW4gaW50ZXJuYWwgZGF0YWJhc2UuIFlvdSB3aWxsIGFsd2F5cyB1c2UgdGhpcyBkaXNwb3NpdGlvbiBpZiB5b3UgdXNlIHRoZSBmb3JtIHdpdGggRm9ybUJyb3dzZXIuPC9saT4NCjxsaT4qUmVkaXJlY3QgdG8gUGFnZSBCYXNlZCBvbiBQdWxsZG93bi4gVGhpcyBhbGxvd3MgeW91IHRvIHJlZGlyZWN0IHRoZSBmb3JtIHRvIGEgZGlmZmVyZW50IHNpdGUgcGFnZSBkZXBlbmRpbmcgb24gaXRzIHZhbHVlLiBJZiB5b3UgaGF2ZSBtdWx0aXBsZSBkaXNwb3NpdGlvbnMsIG1ha2Ugc3VyZSB0aGlzIGlzIHVzZWQgbGFzdC48L2xpPg0KPGxpPipWYWxpZGF0ZSB2aWEgRW1haWwuIFRoaXMgaXMgYSBzdHJhbmdlIGFuZCBwb3dlcmZ1bCBmaWVsZC4gSXQgcHJvdmlkZXMgdGhlIHVzZXIgYSBtYW5kYXRvcnkgaW5wdXQgZm9yIHRoZWlyIGVtYWlsIGFkZHJlc3MuIE9uY2UgdGhleSBzdWJtaXQgdGhlaXIgZm9ybSwgdGhlIHN0YW5kYXJkIGZvcm0gZGlzcG9zaXRpb25zIGFyZSBub3QgcGVyZm9ybWVkIC0tIHJhdGhlciwgaXQgc2VuZCB0aGUgdXNlciBhbiBlbWFpbCB3aXRoIGEgc3BlY2lhbCBjb2RlZCBsaW5rLiBJZiB0aGV5IGNsaWNrIG9uIHRoZSBsaW5rLCB0aGUgb3RoZXIgZm9ybSBpcyBjb25zaWRlcmVkICZxdW90O2FwcHJvdmVkLCZxdW90OyBhbmQgdGhlIG90aGVyIGRpc3Bvc2l0aW9ucyBhcmUgYWxsIHBlcmZvcm1lZC48L2xpPg0KPGxpPipXcml0ZSBSZXN1bHRzIHRvIEZsYXQgRmlsZS4gVGhpcyB0YWtlcyB0aGUgZm9ybSByZXN1bHRzIGFuZCB3cml0ZXMgdGhlbSBpbnRvIGEgdGV4dCBmaWxlLiBZb3UgbWF5DQpzZWxlY3QgdGhlIG5hbWUgb2YgdGhlIGZpbGUsIGFuZCBzZXQgaXRzIGZvcm1hdC4gVGhlc2UgZmlsZXMgYXJlIHdyaXR0ZW4gdG8gdGhlICZxdW90O291dHB1dCZxdW90OyBkaXJlY3RvcnkgdW5kZXIgdGhlDQptb2R1bGUmIzAzOTtzIGluc3RhbGxhdGlvbiBkaXJlY3RvcnksIGFzc3VtaW5nIHRoZSB3ZWIgc2VydmVyIGhhcyBwZXJtaXNzaW9uIHRvIHdyaXRlIHRoZXJlLjwvbGk+DQo8bGk+KlNhdmUgUmVzdWx0cyB0byBGaWxlIEJhc2VkIG9uIFB1bGxkb3duLiBMaWtlIHRoZSBGbGF0IEZpbGUgZGlzcG9zaXRpb24sIGV4Y2VwdCB0aGUgdmFsdWUgb2YgYSBwdWxsLWRvd24gZGV0ZXJtaW5lcyB3aGljaCBmaWxlIHJlc3VsdHMgZ2V0IHdyaXR0ZW4gdG8uPC9saT4NCjxsaT4qU2F2ZSBSZXN1bHRzIHRvIEZpbGUocykgQmFzZWQgb24gTXVsdGlwbGUgU2VsZWN0aW9ucy4gTGlrZSB0aGUgRmxhdCBGaWxlIGRpc3Bvc2l0aW9uLCBleGNlcHQgdGhlIHZhbHVlKHMpIG9mIGNoZWNrYm94ZXMgIGRldGVybWluZXMgd2hpY2ggZmlsZShzKSByZXN1bHRzIGdldCB3cml0dGVuIHRvLjwvbGk+DQo8bGk+KkVtYWlsIHRvIENNUyBBZG1pbiBVc2VyLiBQcm92aWRlcyBhIHB1bGwtZG93biBvZiBDTVMgQWRtaW4gdXNlcnMsIGFuZCBkaXJlY3RzIHRoZSByZXN1bHRzIGFzIGFuIGVtYWlsIHRvIHRoZSBzZWxlY3RlZCBhZG1pbi48L2xpPg0KPGxpPipTdG9yZSBSZXN1bHRzIGZvciBGb3JtQnJvd3NlciBNb2R1bGUgdi4wLjMuIFN0b3JlcyB0aGUgZm9ybSByZXN1bHRzIGluIGFuIFhNTCBzdHJ1Y3R1cmUgYXMgYSBzaW5nbGUgZGF0YWJhc2UgcmVjb3JkLiBUaGlzIGlzIHRoZSBvbmx5IGludGVyZmFjZSB0byBGb3JtIEJyb3dzZXIuIFNlZSBzZWN0aW9uIGJlbG93LjwvbGk+DQo8bGk+KlN1Ym1pdCB0byBhbiBhcmJpdHJhcnkgZm9ybSBhY3Rpb24uIENyYWZ0IGFuIEhUVFAgR0VUIG9yIFBPU1QsIGFuZCB0cmFuc21pdCBpdCB1c2luZyBjVVJMIHRvIHRoZSBzcGVjaWZpZWQgVVJMLiBUaGlzIGxldHMgeW91IHVzZSBGb3JtQnVpbGRlciBhcyBhIGZyb250LWVuZCB0byBhbnkgQ0dJIG9yIEZvcm0gSGFuZGxpbmcgc2NyaXB0IG91dCB0aGVyZS48L2xpPg0KDQo8L3VsPjwvbGk+PC9saT48L3VsPg0KDQo8aDM+UGFzc2luZyBEZWZhdWx0IFZhbHVlcyB0byBGb3JtczwvaDM+DQo8cD5DYWxndXkgYWRkZWQgYSBuaWNlIGZlYXR1cmUsIHdoaWNoIGlzIHRoYXQgeW91IGNhbiBwYXNzIGRlZmF1bHQgZmllbGQgdmFsdWVzIHRvIHlvdXIgZm9ybSB2aWEgdGhlIG1vZHVsZSB0YWcuIFRoaXMgYWxsb3dzIHlvdSB0byBoYXZlDQp0aGUgc2FtZSBmb3JtIGluIG11bHRpcGxlIHBsYWNlcywgYnV0IHdpdGggZGlmZmVyZW50IGRlZmF1bHQgdmFsdWVzLiBJdCBtYXkgbm90IHdvcmsgZm9yIG1vcmUgZXhvdGljIGZpZWxkIHR5cGVzLCBidXQgZm9yIGZpZWxkcyB0aGF0IGhhdmUNCmEgc2luZ2xlIHZhbHVlLCB5b3UgY2FuIHNwZWNpZnkgbGlrZTo8L3A+DQo8cD57Rm9ybUJ1aWxkZXIgZm9ybT0mIzAzOTtteV9mb3JtJiMwMzk7IHZhbHVlXzxpPkZJRUxETkFNRTwvaT49JiMwMzk7ZGVmYXVsdF92YWx1ZSYjMDM5O308L3A+DQo8cD5UaGlzIHdpbGwgc2V0IHRoZSBmaWVsZCB3aXRoIDxpPkZJRUxETkFNRTwvaT4gdG8gJiMwMzk7ZGVmYXVsdF92YWx1ZSYjMDM5Oy48L3A+DQo8cD5UaGlzIGNhbiBiZSBwcm9ibGVtYXRpYywgYXMgc29tZXRpbWVzIGZpZWxkIG5hbWVzIGFyZSB1bndpZWxkeSBvciBjb250YWluIGNoYXJhY3RlcnMgdGhhdCBkb24mIzAzOTt0IHdvcmsgd2VsbCB3aXRoIFNtYXJ0eS4gU28gdGhlcmUgaXMgYW4NCmFsdGVybmF0aXZlIGxpa2UgdGhpczo8L3A+DQo8cD57Rm9ybUJ1aWxkZXIgZm9ybT0mIzAzOTtteV9mb3JtJiMwMzk7IHZhbHVlX2ZsZDxpPk5VTUJFUjwvaT49JiMwMzk7ZGVmYXVsdF92YWx1ZSYjMDM5O308L3A+DQo8cD5UaGF0IHVzZXMgZmllbGQgPGk+TlVNQkVSPC9pPiwgd2hlcmUgPGk+TlVNQkVSPC9pPiBpcyB0aGUgaW50ZXJuYWwgRm9ybUJ1aWxkZXIgZmllbGQgaWQuIFlvdSBtaWdodCB3b25kZXIgaG93IHlvdSBrbm93IHdoYXQgdGhhdCBpZCBpcy4gU2ltcGx5IGdvIGludG8gdGhlIEZvcm1CdWlsZGVyIGNvbmZpZ3VyYXRpb24gdGFiLA0KYW5kIGNoZWNrICZxdW90O1Nob3cgRmllbGQgSURzJnF1b3Q7PC9wPg0KDQo8aDM+RW1haWwgYW5kIEZsYXQgRmlsZSBUZW1wbGF0ZXM8L2gzPg0KPHA+TWFueSBkaXNwb3NpdGlvbiB0eXBlcyBhbGxvdyB5b3UgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZm9yIHRoZSBlbWFpbCB0aGF0IGlzIGdlbmVyYXRlZCwgb3IgZm9yIHRoZSB3YXkgdGhlIHJlc3VsdHMgYXJlIHdyaXR0ZW4gdG8gYSBmaWxlLiBJZiB5b3Ugb3B0IG5vdCB0byBjcmVhdGUgYSB0ZW1wbGF0ZSwgdGhlIEZvcm1CdWlsZGVyIHdpbGwgdXNlIGl0cyBvd24gYmVzdCBndWVzcywgd2hpY2ggbWF5IG9yIG1heSBub3Qgd29yayBvdXQgdG8geW91ciBsaWtpbmcuIFlvdSBjYW4gYWx3YXlzIGNsaWNrIG9uIHRoZSAmcXVvdDtDcmVhdGUgU2FtcGxlIFRlbXBsYXRlJnF1b3Q7IGFuZCB0aGVuIGN1c3RvbWl6ZSB0aGUgcmVzdWx0cy48L3A+DQo8cD5UbyB0aGUgcmlnaHQsIHlvdSYjMDM5O2xsIGZpbmQgYSBsZWdlbmQgd2hpY2ggbGlzdHMgYWxsIG9mIHRoZSB2YXJpYWJsZXMgdGhhdCBhcmUgYXZhaWxhYmxlIHRvIHlvdSB0byB1c2UgaW4geW91ciB0ZW1wbGF0ZS4gQXMgb2YgdmVyc2lvbiAwLjMsIHZhcmlhYmxlcyBoYXZlIHR3byBuYW1lcywgb25lIGJhc2VkIG9uIHRoZSBmaWVsZCBuYW1lLCB0aGUgb3RoZXIgYmFzZWQgb24gdGhlIGZpZWxkIElELiBJZiB5b3UgdXNlIGZpZWxkIG5hbWVzIHRoYXQgaGF2ZSBjaGFyYWN0ZXJzIG91dHNpZGUgb2YgdGhlIEFTQ0lJIDMyLTEyNiByYW5nZSwgaXQgd2lsbCBiZSBzYWZlciB0byB1c2UgdGhlIElELWJhc2VkIHZhcmlhYmxlcy4gQXMgb2YgdmVyc2lvbiAwLjUsIHZhcmlhYmxlcyBhbHNvIGhhdmUgYWxpYXNlcywgd2hpY2ggeW91IGNhbiB1c2UuPC9wPg0KPHA+PHN0cm9uZz5Ob3RlIHRoYXQgb25jZSB5b3UmIzAzOTt2ZSBjaGFuZ2VkIGEgdGVtcGxhdGUsIGl0IHdpbGwgbm8gbG9uZ2VyIGF1dG9tYXRpY2FsbHkgYWRkIG5ldyBmaWVsZHMuPC9zdHJvbmc+IEZvciB0aGlzIHJlYXNvbiwgaXQmIzAzOTtzIHVzdWFsbHkgYmVzdCB0byBjcmVhdGUgeW91ciB0ZW1wbGF0ZXMgYXMgdGhlIGxhc3Qgc3RlcCBvZiBjcmVhdGluZyB5b3VyIGZvcm0uPC9wPg0KPHA+QXMgb2YgdmVyc2lvbiAwLjIuNCwgeW91IGNhbiBvcHQgdG8gc2VuZCBhbnkgb2YgdGhlc2UgZW1haWxzIGFzIEhUTUwgZW1haWwuIFRoZXJlIHNob3VsZCBiZSBhIGNoZWNrYm94IGF0IHRoZSB0b3Agb2YgdGhlIHRlbXBsYXRlIHBhZ2UgZm9yIHRoaXMuIFRoZXJlIGlzIGFsc28gYSAmcXVvdDtDcmVhdGUgU2FtcGxlIEhUTUwgVGVtcGxhdGUmcXVvdDsgYnV0dG9uIG92ZXIgaW4gdGhlIGxlZ2VuZCBhcmVhLiBGb3IgSFRNTCBlbWFpbCwgdGhlIGVtYWlsIGJvZHkgd2lsbCBhbHNvIHByb3ZpZGUgdGhlIGRlZmF1bHQgdGV4dC1vbmx5IHZhbHVlcy48L3A+DQoNCjxoMz5Vc2Ugd2l0aCBGb3JtQnJvd3NlciB2MzwvaDM+DQo8cD5UaGVyZSBhcmUgc29tZSBzcGVjaWFsIGZlYXR1cmVzIHdoZW4gdXNpbmcgRm9ybUJ1aWxkZXIgd2l0aCBGb3JtQnJvd3Nlci4gVGhlIG5ldyBhcHByb2FjaCBzdG9yZXMgdGhlIGZvcm0gcmVzdWx0cyBpbiBYTUwsIHNvIHRoYXQgZmFyIGZld2VyDQpxdWVyaWVzIGFyZSBuZWVkZWQgdG8gcmV0cmlldmUgcmVjb3Jkcy4gVGhpcyBtZWFucyB5b3UgY2FuIHVzZSBGb3JtQnJvd3NlciB3aXRoIGh1bmRyZWRzIG9yIGV2ZW4gdGhvdXNhbmRzIG9mIHJlY29yZHMuIEl0IGFsc28gbWVhbnMgeW91DQp3aWxsIGhhdmUgdG8gY2hvb3NlIHVwIGZyb250IHdoaWNoIGZpZWxkcyB5b3Ugd2lsbCB3YW50IHRvIGJlIGFibGUgdG8gc29ydCBieS4gWW91IGNhbiBjaG9vc2UgdXAgdG8gZml2ZS4gQ2hhbmdpbmcgdGhlc2UgYWZ0ZXIgdGhlcmUgYXJlIHN1Ym1pdHRlZCByZWNvcmRzIHdpbGwgcmVzdWx0IGluIGltcHJvcGVyIHNvcnRpbmchIEEgcmUtaW5kZXggZnVuY3Rpb24gd2lsbCBiZSBhZGRlZCB0byBhIGZ1dHVyZSB2ZXJzaW9uLjwvcD4NCjxwPkluIGFkdmFuY2VkIG9wdGlvbnMsIHlvdSBjYW4gdGllIGEgZm9ybSB0byBGcm9udGVuZCBVc2Vycy4gVGhhdCBtZWFucyBlYWNoIHVzZXIgZ2V0cyBvbmUgcmVjb3JkIGZvciB0aGUgZm9ybTsgdGhleSBjYW4gY3JlYXRlIGl0DQphIHNpbmdsZSB0aW1lLCBzdWJzZXF1ZW50IHRpbWVzIHRoZXkgd2lsbCBiZSBlZGl0aW5nIHRoZWlyIHJlY29yZC4gVGhlIHJlY29yZCB3aWxsIG5vdCBiZSB2aXNpYmxlIHRvIGFueSBvdGhlciB1c2VycyAoZXhjbHVkaW5nIGFkbWlucykuDQpUaGlzIGZvcm0gc2hvdWxkIGJlIGFkZGVkIHRvIHlvdXIgcGFnZSB1c2luZyB0aGUgc3ludGF4IHtGb3JtQnVpbGRlciBhY3Rpb249JiMwMzk7ZmV1c2VyZm9ybSYjMDM5OyBmb3JtPSYjMDM5O2Zvcm1fbmFtZSYjMDM5O30uPC9wPg0KPHA+Rm9yIGdyZWF0ZXIgZGF0YSBzYWZldHksIHlvdSBjYW4gZW5jcnlwdCB0aGUgc3RvcmVkIGZvcm1zIGluIHRoZSBkYXRhYmFzZS4gWW91IGNhbiB1c2UgdGhlIGJ1aWx0LWluIG15Y3J5cHQgbGlicmFyeSBvciB0aGUgT3BlblNTTCBtb2R1bGUuDQpJbiBlaXRoZXIgY2FzZSwgZm9yIHRoZSBwYXNzcGhyYXNlLCB5b3UgY2FuIGVpdGhlciBlbnRlciB0ZXh0IGluIHRoZSBmaWVsZCBvciBhIGZpbGUgbmFtZS4gSWYgeW91IHNwZWNpZnkgYSBmaWxlIG5hbWUsIHRoZSBjb250ZW50cyBvZiB0aGF0DQpmaWxlIHdpbGwgYmUgdXNlZCBhcyB0aGUgcGFzc3BocmFzZSBmb3IgZW5jcnlwdGluZy48L3A+DQo8cD5JZiB5b3UgZW5jcnlwdCwgYmUgYXdhcmUgdGhhdCB0aGUgZmllbGRzIHlvdSB1c2UgZm9yIHNvcnRpbmcgYXJlIDxzdHJvbmc+bm90PC9zdHJvbmc+IGVuY3J5cHRlZC4gWW91IGNhbiBjaG9vc2UgdG8gaGFzaCB0aGVtOyB0aGUgY2hlYXQgaGVyZQ0KaXMgdGhhdCB0aGUgZmlyc3QgZm91ciBsZXR0ZXJzIGFyZSBsZWZ0IGludGFjdCB0byBhbGxvdyBmb3Igc29ydGluZy4gVGhlIHNvcnRpbmcgbWF5IG5vdCBiZSBwZXJmZWN0LCBhbmQgdGhpcyB3ZWFrZW5zIHRoZSBzZWN1cml0eSBzaW5jZSBpdA0KZXhwb3NlcyBzb21lIGNsZWFydGV4dCwgYnV0IGl0IGlzIGJldHRlciB0aGFuIG5vdGhpbmcuPC9wPg0KPHA+PHN0cm9uZz5ESVNDTEFJTUVSPC9zdHJvbmc+LiBUaGUgZW5jcnlwdGlvbiBvZmZlcmVkIGhlcmUgc2hvdWxkIGJlIGNvbnNpZGVyZWQganVzdCBvbmUgbW9yZSBodXJkbGUgZm9yIGEgaGFja2VyLCBub3QgYXMgYSBndWFyYW50ZWUgdGhhdA0KeW91ciBpbmZvcm1hdGlvbiB3aWxsIGJlIHNlY3VyZS4gQSBzbWFydCBoYWNrZXIgd2hvIGhhcyBmb3VuZCBzb21lIGV4cGxvaXQgdG8gdmlldyBkYXRhYmFzZSByZWNvcmRzIG1heSB3ZWxsIGJlIHNtYXJ0IGVub3VnaCB0byBnZXQgYXQNCnRoZSBtb2R1bGUgc291cmNlIGNvZGUsIGFuZCBmaW5kIHRoZWlyIHdheSB0byB0aGUgcGFzc3BocmFzZS4gVGhpcyB3aWxsIG5vdCBwcm90ZWN0IHlvdSBhZ2FpbnN0IGFuIGVuZW15IHdobyBoYXMgZnVsbCBhY2Nlc3MgdG8geW91cg0Kc2VydmVyLCBzb21lIGZhbWlsaWFyaXR5IHdpdGggUEhQLCBhbmQgdGhlIHRpbWUgdG8gcG9rZSBhcm91bmQuIDxlbT48c3Ryb25nPkRvIG5vdDwvc3Ryb25nPiB1c2UgdGhpcyB0byBwcm90ZWN0IGhpZ2gtdmFsdWUgaW5mb3JtYXRpb24gc3VjaCBhcyBmaW5hbmNpYWwgZGF0YSwNCnNlbnNpdGl2ZSBwb2xpdGljYWwgaW5mb3JtYXRpb24sIGh1bWFuIHJpZ2h0cyBkYXRhLCBvciBhbnl0aGluZyBlbHNlIHRoYXQgbWlnaHQgYmUgb2YgdmFsdWUgdG8gYSByZXByZXNzaXZlIGdvdmVybm1lbnQgb3Igb3JnYW5pemVkIGNyaW1lDQpjYXJ0ZWwuPC9lbT48L3A+DQo8aDM+VXNpbmcgd2l0aCBVc2VyIERlZmluZWQgVGFncyAoVURUcyk8L2gzPg0KPHA+U2V2ZXJhbCBvcHRpb25zIGZvciBjdXN0b21pemluZyBiZWhhdmlvciB2aWEgVURUcyBpcyBwcm92aWRlZCAodGhhbmtzIHRvIGtpbmQgY29kZSBjb250cmlidXRpb25zLCBzZWUgY3JlZGl0cykuPC9wPg0KDQo8dWw+PGxpPkNhbGwgVXNlciBEZWZpbmVkIFRhZyBXaXRoIHRoZSBGb3JtIFJlc3VsdHMuIFRoaXMgZmllbGQgdHlwZSBzdWJtaXRzIHRoZSBodW1hbi1yZWFkYWJsZSBmb3JtIHJlc3VsdHMgdG8gdGhlIFVzZXItRGVmaW5lZA0KVGFnIHlvdSBzcGVjaWZ5LiBUaGUgVURUIGNhbiBoYW5kbGUgdGhlIHJlc3VsdHMgaG93ZXZlciBpdCB3YW50cy4gVmFsdWVzIGFyZSBwYXNzZWQgYXMgJHBhcmFtc1smIzAzOTtmaWVsZF9uYW1lJiMwMzk7XSwgYW5kDQphcyAkcGFyYW1zWyYjMDM5O2ZpZWxkX2FsaWFzJiMwMzk7XSAoaWYgZGVmaW5lZCkuIEFzIHBlciBhIHN1Z2dlc3Rpb24sIGl0IGFsc28gcG9wdWxhdGVzIGFsbCBvZiB0aGUgU21hcnR5IHZhbHVlcyB0aGF0IHdvdWxkIGJlIHZpc2libGUgdG8gdGhlIFN1Ym1pc3Npb24gVGVtcGxhdGUgdG9vITwvbGk+DQo8bGk+VXNlciBUYWcgRmllbGQuIFRoaXMgY2FsbHMgdGhlIHNwZWNpZmllZCBVRFQsIGFuZCBkaXNwbGF5cyBhbnl0aGluZyBpdCByZXR1cm5zLiBUaGUgVURUIGdldHMgY2FsbGVkIGFueSB0aW1lIHRoZSBmaWVsZCB3b3VsZCBiZSB2aXNpYmxlLjwvbGk+DQo8bGk+VmFsaWRhdGlvbiBVRFQuIFNldCB0aGlzIGZvciBhIGZvcm0sIGFuZCB0aGUgVURUIHdpbGwgcmVjZWl2ZSBhbGwgb2YgdGhlIGZvcm1cJiMwMzk7cyBodW1hbi1yZWFkYWJsZSByZXN1bHRzLiBUaGUgVURUIHNob3VsZCBkbyB3aGF0ZXZlcg0KdmFsaWRhdGlvbiBpdCB3YW50cywgYW5kIHJldHVybiBhbiBhcnJheSB3aXRoIHRoZSBmaXJzdCB2YWx1ZSBiZWluZyB0cnVlIG9yIGZhbHNlIChpbmRpY2F0aW9uIHdoZXRoZXIgdGhlIGZvcm0gdmFsaWRhdGVzKSwgYW5kIHRoZSBzZWNvbmQNCnZhbHVlIGJlaW5nIGVycm9yIG1lc3NhZ2VzIChpZiBhbnkpLjwvbGk+DQo8bGk+VXNlciBkZWZpbmVkIHRhZyB0byBjYWxsIGJlZm9yZSBmb3JtIGlzIGRpc3BsYXllZCB0aGUgZmlyc3QgdGltZSAob25seSBjYWxsZWQgb25jZSkuIFRoaXMNCmlzIHNldCBpbiB0aGUgRm9ybSBBZG1pbiBpbiB0aGUgVURUIEludGVncmF0aW9uIHRhYi4gVGhlIFVEVCBnZXRzIGNhbGxlZCBvbiB0aGUgZmlyc3QgZGlzcGxheQ0Kb2YgdGhlIGZvcm0uPC9saT4NCjxsaT5Vc2VyIGRlZmluZWQgdGFnIHRvIGNhbGwgYmVmb3JlIGZvcm0gaXMgZGlzcGxheWVkIChjYWxsZWQgb24gZXZlcnkgcGFnZSBvZiBtdWx0aXBhZ2UNCmZvcm1zKS4gVGhpcyBpcyBzZXQgaW4gdGhlIEZvcm0gQWRtaW4gaW4gdGhlIFVEVCBJbnRlZ3JhdGlvbiB0YWIuIFRoZSBVRFQgZ2V0cyBjYWxsZWQNCmV2ZXJ5IHRpbWUgYW55IHBhZ2Ugb2YgdGhlIGZvcm0gaXMgZGlzcGxheWVkIChpbmNsdWRpbmcgd2hlbiB2YWxpZGF0aW9uIGZhaWxzKS48L2xpPg0KPC91bD4NCjxoMz5Db25maWd1cmF0aW9uPC9oMz4NCjxwPlRoZXJlIGFyZSBzb21lIGdsb2JhbCBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIEZvcm1CdWlsZGVyOjwvcD4NCjx1bD4NCjxsaT5FbmFibGUgZmFzdCBmaWVsZCBhZGQgcHVsbGRvd24uIFRoaXMgZW5hYmxlcyB0aGUgcHVsbGRvd24gb24gdGhlIEZvcm0gRWRpdCBwYWdlIHdoaWNoIHNhdmVzIGEgc3RlcCBpbiB0aGUgY3JlYXRpb24gb2YgbmV3IGZpZWxkcy48L2xpPg0KPGxpPlJ1biBpbiBNTEUgTW9kZS4gVGhpcyBjaGFuZ2VzIHNvbWUgcXVlcmllcyBhZ2FpbnN0IHRoZSBjb250ZW50IHRhYmxlIHRvIHRyeSB0byBwcmV2ZW50IHVnbHkgY3Jhc2hlcyB1bmRlciB0aGUgTUxFIGZvcmsuIENoZWNraW5nIHRoaXMgd2lsbCBjYXVzZSB1Z2x5IGNyYXNoZXMgaWYgeW91IGFyZSBOT1QgcnVubmluZyB0aGUgTUxFIGZvcmsuPC9saT4NCjxsaT5IaWRlIEVycm9ycy4gVGhpcyBpcyBubyBsb25nZXIgc2V0IGJ5IGRlZmF1bHQuIENoZWNraW5nIGl0IHdpbGwgaGlkZSB0aGUgbW9yZSBkZXRhaWxlZCBlcnJvcnMgdGhhdCB3b3VsZCBiZSBkaXNwbGF5ZWQgaWYgdGhlcmUgYXJlIHByb2JsZW1zIHdoZW4geW91IHN1Ym1pdCB5b3VyIGZvcm0uPC9saT4NCjxsaT5SZXF1aXJlIEZpZWxkIE5hbWVzLiBUeXBpY2FsbHksIHlvdSB3aWxsIHdhbnQgZm9ybSBmaWVsZHMgdG8gYmUgbmFtZWQgc28geW91IGNhbiB0ZWxsIHdoaWNoIGlzIHdoaWNoLiBIb3dldmVyLCBpbiBzb21lIGNhc2VzLCB5b3UgbWlnaHQgd2FudCB0byBoYXZlIG5hbWVsZXNzIGZpZWxkcy4gVW5jaGVjayB0aGlzIGlmIHlvdSB3YW50IHRvIGFsbG93IG5hbWVsZXNzIGZpZWxkcy48L2xpPg0KPGxpPlVuaXF1ZSBGaWVsZCBOYW1lcy4gVHlwaWNhbGx5LCB5b3Ugd2lsbCB3YW50IGZvcm0gZmllbGRzIHRvIGhhdmUgdW5pcXVlIG5hbWVzIHNvIHlvdSBjYW4gdGVsbCB3aGljaCBpcyB3aGljaC4gVW5jaGVjayB0aGlzIGlmIHlvdSB3YW50IHRvIGFsbG93IGZpZWxkcyB0byBzaGFyZSBuYW1lcy48L2xpPg0KPGxpPlVzZSByZWxheGVkIGVtYWlsIHZhbGlkYXRpb24uIFRoaXMgdXNlcyBhIGxlc3MgcmVzdHJpY3RpdmUgcmVndWxhciBleHByZXNzaW9uIGZvciB2YWxpZGF0aW5nIGVtYWlsOyBlLmcuLCB4QHkgd2lsbCBiZSBhbGxvd2VkLCB3aGVyZSB0eXBpY2FsbHkgeEB5LnRsZCBpcyByZXF1aXJlZC48L2xpPg0KPGxpPlNob3cgRm9ybSBCdWlsZGVyIFZlcnNpb24uIERpc3BsYXlzIHRoZSB2ZXJzaW9uIG9mIEZvcm1CdWlsZGVyIHlvdSYjMDM5O3JlIHVzaW5nIGluIGEgY29tbWVudCB3aGVuIHRoZSBmb3JtIGlzIGdlbmVyYXRlZC4gVHlwaWNhbGx5IG9ubHkgdXNlZnVsIHdoZW4gZGVidWdnaW5nLjwvbGk+DQo8bGk+RW5hYmxlIHByaW1pdGl2ZSBhbnRpLXNwYW0gZmVhdHVyZXMuIFdoZW4gdHVybmVkIG9uLCB0aGlzIGFsbG93cyBhbnkgZ2l2ZW4gSVAgYWRkcmVzcyB0byBvbmx5IGdlbmVyYXRlIDEwIGVtYWlscyBwZXIgaG91ci48L2xpPg0KPGxpPlNob3cgRmllbGQgSURzLiBXaGVuIHR1cm5lZCBvbiwgRm9ybUJ1aWxkZXIgd2lsbCBkaXNwbGF5IGZpZWxkIGlkcyB3aGVuIGFkZGluZyBvciBlZGl0aW5nIGEgZm9ybS48L2xpPg0KPC91bD4NCjxoMz5TdHlsaW5nIGFuZCBDU1M8L2gzPg0KPHA+QWZ0ZXIgYSBiaXQgb2YgbmFnZ2luZyBvbiB0aGUgcGFydCBvZiBwZW9wbGUgd2hvIGFjdHVhbGx5IHJlc3BlY3Qgc3RhbmRhcmRzLCBGb3JtQnVpbGRlciBubyBsb25nZXIgZW5jb3VyYWdlcyB0cmlja3MgbGlrZSBlbWJlZGRpbmcgQ1NTIGluIA0Kc3RhdGljIHRleHQgZmllbGRzLiBJbnN0ZWFkLCBpdCBjcmVhdGVzIGEgc3R5bGVzaGVldCBjYWxsZWQgJnF1b3Q7Rm9ybUJ1aWxkZXIgRGVmYXVsdCZxdW90OyB0aGF0IHlvdSBhcmUgZW5jb3VyYWdlZCB0byBhdHRhY2ggdG8gdGhlIHBhZ2UgdGVtcGxhdGUNCnRoYXQgeW91IHVzZSBmb3IgcGFnZXMgdGhhdCBjb250YWluIHlvdXIgZm9ybS48L3A+ICANCjxwPlRoaXMgZGVmYXVsdCBDU1Mgd2FzIGdyYWNpb3VzbHkgcHJvdmlkZWQgYnkgUGF1bCBOb29uZS48L3A+DQoNCg0KPGgzPkZvcm0gVGVtcGxhdGUgVmFyaWFibGVzPC9oMz4NCjxwPllvdSBjYW4gZWRpdCBpdCB0byBtYWtlIHlvdXIgZm9ybSBsYXlvdXQgbG9vayBhbnkgd2F5IHlvdSYjMDM5O2QgbGlrZS4NCiAgIFRvIG1ha2UgdGhlIGZvcm0gd29yaywgeW91JiMwMzk7bGwgbmVlZCB0byBhbHdheXMgaW5jbHVkZSB0aGUgJmFtcDsjMTIzOyRmYl9oaWRkZW59IGFuZCAmYW1wOyMxMjM7JHN1Ym1pdH0NCiAgIHRhZ3MuPC9wPg0KDQo8cD5Zb3UgY2FuIGFjY2VzcyB5b3VyIGZvcm0gZmllbGRzIGVpdGhlciB1c2luZyB0aGUgJGZpZWxkcyBhcnJheSBvciBieSBkaXJlY3RseSBhY2Nlc3NpbmcgZmllbGRzIGJ5IHRoZWlyIG5hbWVzIChlLmcuLCAmYW1wOyMxMjM7JG15ZmllbGQtPmlucHV0fSApPC9wPg0KDQoNCjxwPkVhY2ggZmllbGQgaGFzIHRoZSBmb2xsb3dpbmcgYXR0cmlidXRlczo8L3A+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+ZmllbGQtPmhlbHB0ZXh0PC90ZD48dGQ+dGhlIGZpZWxkJiMwMzk7cyBoZWxwIHRleHQ8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5pbnB1dDwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgaW5wdXQgY29udHJvbCAoZS5nLiwgdGhlIGlucHV0IGZpZWxkIGl0c2VsZik8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5vcDwvdGQ+PHRkPmEgY29udHJvbCBidXR0b24gYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWVsZCBpZiBhcHBsaWNhYmxlIChlLmcuLCB0aGUgZGVsZXRlIGJ1dHRvbiBmb3IgZXhwYW5kYWJsZSB0ZXh0IGlucHV0KTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmlucHV0X2lkPC90ZD48dGQ+dGhlIElEIG9mIHRoZSBmaWVsZCYjMDM5O3MgaW5wdXQgKHVzZWZ1bCBmb3IgbGFiZWwgZm9yPSZxdW90O2ZvbyZxdW90Oyk8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5hbGlhczwvdGQ+PHRkPnRoZSBhbGlhcyBzcGVjaWZpZWQgZm9yIHRoaXMgZmllbGQ8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5pZDwvdGQ+PHRkPnRoZSBpbnRlcm5hbCAvIG9wYXF1ZSBpZCBGb3JtQnVpbGRlciB1c2VzIGZvciB0aGlzIGZpZWxkPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+dHlwZTwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgZGF0YSB0eXBlPC90ZD48L3RyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCjx0cj48dGQ+ZmllbGQtPm11bHRpcGxlX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQtPmlucHV0IGlzIGFjdHVhbGx5IGEgY29sbGVjdGlvbiBvZiBjb250cm9sczwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmxhYmVsX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgY29sbGVjdGlvbiBvZiBjb250cm9scyBoYXMgc2VwYXJhdGUgbGFiZWxzIGZvciBlYWNoIGNvbnRyb2w8L3RkPjwvdHI+DQo8L3RhYmxlPg0KDQo8cD5JbiB0aGUgY2FzZSBvZiBhIG11bHRpcGFnZSBmb3JtLCB5b3Ugd2lsbCBhbHNvIGhhdmUgYWNjZXNzIHRvIHRoZSB2YWx1ZSBvZiBwcmV2aW91cyBmaWVsZHMuIFRoZXkNCmFyZSBpbiB0aGUgJHByZXZpb3VzIGFycmF5LCBvciBhY2Nlc3NpYmxlIGJ5IHRoZWlyIG5hbWVzIChlLmcuLCAmYW1wOyMxMjM7JG15ZmllbGQtPnZhbHVlfSApLg0KWW91IGNhbiB1c2UgdGhpcyBpbiBTdGF0aWMgVGV4dCBmaWVsZHMgYXMgd2VsbCwgd2hpY2ggaXMgYSBuaWNlIHdheSB0byBwZXJzb25hbGl6ZSBmb3JtcyE8L3A+DQoNCjxwPkluIGNlcnRhaW4gY2FzZXMsIGZpZWxkLT5pbnB1dCBpcyBhY3R1YWxseSBhbiBhcnJheSBvZiBvYmplY3RzIHJhdGhlciB0aGFuIGFuIGlucHV0LiBUaGlzIGhhcHBlbnMsIGZvciBleGFtcGxlLCBpbiBDaGVja0JveEdyb3VwcyBvciBSYWRpb0J1dHRvbkdyb3Vwcy4gRm9yIHRoZW0sIHlvdSBjYW4gaXRlcmF0ZSB0aHJvdWdoIGZpZWxkLT5pbnB1dC0+bmFtZSBhbmQgZmllbGQtPmlucHV0LT5pbnB1dHMuPC9wPg0KICAgIA0KPHA+QWRkaXRpb25hbCBzbWFydHkgdmFyaWFibGVzIHRoYXQgeW91IGNhbiB1c2UgaW5jbHVkZTo8L3A+DQo8dGFibGU+DQo8dHI+PHRoPlZhcmlhYmxlPC90aD48dGg+VmFsdWU8L3RoPjwvdHI+DQo8dHI+PHRkPnRvdGFsX3BhZ2VzPC90ZD48dGQ+bnVtYmVyIG9mIHBhZ2VzIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD50aGlzX3BhZ2U8L3RkPjx0ZD5udW1iZXIgZm8gdGhlIGN1cnJlbnQgcGFnZSBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+dGl0bGVfcGFnZV94X29mX3k8L3RkPjx0ZD5kaXNwbGF5cyAmcXVvdDtwYWdlIHggb2YgeSZxdW90OyBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+Y3NzX2NsYXNzPC90ZD48dGQ+Q1NTIENsYXNzIGZvciB0aGUgZm9ybTwvdGQ+PC90cj4NCjx0cj48dGQ+Zm9ybV9uYW1lPC90ZD48dGQ+Rm9ybSBuYW1lPC90ZD48L3RyPg0KPHRyPjx0ZD5mb3JtX2lkPC90ZD48dGQ+Rm9ybSBkYXRhYmFzZSBJRDwvdGQ+PC90cj4NCjx0cj48dGQ+aW5fZm9ybWJyb3dzZXI8L3RkPjx0ZD4xIGlmIGZvcm0gaXMgYmVpbmcgdmlld2VkIGZyb20gRm9ybUJyb3dzZXI8L3RkPjwvdHI+DQo8dHI+PHRkPmluX2FkbWluPC90ZD48dGQ+MSBpZiBmb3JtIGlzIGJlaW5nIHZpZXdlZCB2aWEgRm9ybUJyb3dzZXIgYWRtaW48L3RkPjwvdHI+DQo8dHI+PHRkPmZicl9pZDwvdGQ+PHRkPlJlc3BvbnNlIElEIGlmIGZvcm0gaXMgYmVpbmcgdmlld2VkIGZyb20gRm9ybUJyb3dzZXI8L3RkPjwvdHI+DQo8dHI+PHRkPnByZXY8L3RkPjx0ZD4mcXVvdDtCYWNrJnF1b3Q7IGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD5zdWJtaXQ8L3RkPjx0ZD4mcXVvdDtDb250aW51ZSZxdW90OyBvciAmcXVvdDtTdWJtaXQmcXVvdDsgYnV0dG9uIGZvciBtdWx0aXBhcnQgZm9ybXMsIGFkanVzdHMgYXV0b21hdGljYWxseTwvdGQ+PC90cj4NCjwvdGFibGU+DQo8cD5EdW5ubyB3aHkgeW91JiMwMzk7ZCB3YW50IHNvbWUgb2YgdGhvc2UsIGJ1dCB0aGVyZSB5b3UgZ28uLi48L3A+DQoNCjxoMz5DcmVkaXRzPC9oMz4NCjxwPk1hbnkgcGVvcGxlIGhhdmUgY29udHJpYnV0ZWQgY29kZSwgYnVnIHJlcG9ydHMsIGNhc2gsIGFuZCBpZGVhcyB0byBGb3JtQnVpbGRlci4gQW1vbmcgdGhlbSAoYWxwaGFiZXRpY2FsbHkpOg0KPHVsPg0KPGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuYnB0aS5ldSI+QmFsdGljIGluc3RpdHV0ZSBvZiBhZHZhbmNlZCB0ZWNobm9sb2d5PC9hPiAtIGNvZGUsIGZ1bmRpbmcgPC9saT4NCjxsaT5KZXJlbXkgQmFzcyAtIGNvZGUgYW5kIHN1Z2dlc3Rpb25zPC9saT4NCjxsaT5BbGJlcnRvIEJlbmF0aSAtIGNvZGU8L2xpPg0KPGxpPlR5bGVyIEJvZXNwZmx1ZyAtIGZ1bmRpbmcgYW5kIGlkZWFzPC9saT4NCjxsaT5KZWZmIEJvc2NoIC0gVURUIFZhbGlkYXRpb248L2xpPg0KPGxpPlJvYmVydCBDYW1wYmVsbCAtIG51bWVyb3VzIGNvZGUgY29udHJpYnV0aW9uczwvbGk+DQo8bGk+UGlvdHJhcyBDaW1tcGVybWFuIC0gY29kZTwvbGk+DQo8bGk+TnVubyBDb3N0YSAtIHN1Z2dlc3Rpb25zPC9saT4NCjxsaT5SeWFuIEZvc3RlciAtIGNvZGU8L2xpPg0KPGxpPk1hcmMgR2VsZG9uIC0gY29kZTwvbGk+DQo8bGk+S2V2aW4gR3JhbmRvbiAtIGNvZGU8L2xpPg0KPGxpPlJvbm55IEtyaWp0IC0gY29kZTwvbGk+DQo8bGk+UGF1bCBOb29uZSAtIENTUyBhbmQgaWRlYXM8L2xpPg0KPGxpPk1vcnRlbiBQb3Vsc2VuIC0gY29kZTwvbGk+DQo8bGk+UHJ1ZSBSb3dsYW5kIC0gYnVnIGZpeGVzPC9saT4NCjxsaT5TaW1vbiBTY2hhdWZlbGJlcmdlciAtIGNvZGU8L2xpPg0KPC91bD4NCjxwPkkgYXBvbG9naXplIGZvciBhbnkgb21pc3Npb25zIC0gbm90aWZ5IG1lLCBhbmQgSSYjMDM5O2xsIGNvcnJlY3QgdGhlIG9taXNzaW9uITwvcD4NCjxoMz5NaXNjZWxsYW5lb3VzIE5vdGVzPC9oMz4NCjx1bD4NCjxsaT5BbnkgZmllbGRzIHRoYXQgc2VuZHMgZW1haWwgdG8gYSBzcGVjaWZpZWQgZW1haWwgYWRkcmVzcyB3aWxsIGFsc28gYWNjZXB0IGEgY29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgZW1haWwgYWRkcmVzc2VzLjwvbGk+DQo8L3VsPg0KPGgzPktub3duIElzc3VlczwvaDM+DQo8dWw+DQo8bGk+Rm9ybUJ1aWxkZXIgZG9lcyBub3QgeWV0IHN1cHBvcnQgcHJldHR5IFVSTHMsIGFsdGhvdWdoIHRoYXQgc2hvdWxkbiYjMDM5O3QgbWF0dGVyIHNpbmNlIHRoZSB1c2VyIHNpZGUgaXMgcHJldHR5IHNpbXBsZS48L2xpPg0KPGxpPkZpbGVVcGxvYWQgRmllbGRzIG1heSBub3Qgd29yayBjb3JyZWN0bHkgd2l0aCBtdWx0aXBhZ2UgZm9ybXMuPC9saT4NCjwvdWw+DQoNCjxoMz5Ucm91Ymxlc2hvb3Rpbmc8L2gzPg0KPG9sPg0KPGxpPkZvcm1CdWlsZGVyL0Zvcm1Ccm93c2VyIDxzdHJvbmc+cmVxdWlyZXM8L3N0cm9uZz4gUEhQIDUgb3IgbGF0ZXIgdG8gZnVuY3Rpb24gY29ycmVjdGx5LjwvbGk+DQo8bGk+Rmlyc3Qgc3RlcCBpcyB0byBjaGVjayB5b3UmIzAzOTtyZSBydW5uaW5nIENNUyAxLjYgb3IgbGF0ZXIuPC9saT4NCjxsaT5TZWNvbmQgc3RlcCBpcyB0byByZWFkIGFuZCB1bmRlcnN0YW5kIHRoZSBjYXZlYXQgYWJvdXQgV1lTSVdZRyBlZGl0b3JzIHVwIGluIHRoZQ0Kc2VjdGlvbiA8ZW0+QWRkaW5nIGEgRm9ybSB0byBhIFBhZ2U8L2VtPi48L2xpPg0KPGxpPiBJZiB5b3UmIzAzOTtyZSBtaXNzaW5nIGZpZWxkcyBpbiBhbiBlbWFpbCB0aGF0IGdldHMgZ2VuZXJhdGVkLCBjaGVjayB0aGUgZGlzcG9zaXRpb24gZmllbGQmIzAzOTtzIHRlbXBsYXRlLCBhbmQgbWFrZSBzdXJlIHlvdSYjMDM5O3JlIHNwZWNpZnlpbmcgdGhlIG1pc3NpbmcgZmllbGRzLiBTZWVtcyBvYnZpb3VzLCBidXQgaXQmIzAzOTtzIGFuIGVhc3kgbWlzdGFrZSB0byBtYWtlLjwvbGk+DQo8bGk+VW5jaGVjayB0aGUgJnF1b3Q7SGlkZSBFcnJvcnMmcXVvdDsgY2hlY2tib3ggaW4gdGhlIGdsb2JhbCBvcHRpb25zLCBhbmQgc2VlIHdoYXQgbWVzc2FnZSBnZXRzIGRpc3BsYXllZCB3aGVuIHlvdSBzdWJtaXQgeW91ciBmb3JtLjwvbGk+DQo8bGk+IEp1c3QgbWVzcyBhcm91bmQgYW5kIHRyeSBjbGlja2luZyBvbiBsaW5rcyBhbmQgaWNvbnMgYW5kIHN0dWZmLiBTZWUgd2hhdCBoYXBwZW5zLjwvbGk+DQo8bGk+IE1ha2Ugc3VyZSB5b3UgY2FuIHN1Y2Nlc3NmdWxseSBzZW5kIGVtYWlsIHZpYSB0aGUgdGVzdCBpbiB0aGUgQ01TTWFpbGVyIE1vZHVsZS4gSXQmIzAzOTtzIHNpbXBseSBhbWF6aW5nIGhvdyBtYW55IHByb2JsZW1zIGJvaWwgZG93biB0byBhIG1pc2NvbmZpZ3VyZWQgQ01TTWFpbGVyLjwvbGk+DQo8bGk+IExhc3QgcmVzcG9ydCBpcyB0byBlbWFpbCBtZSBvciBjYXRjaCBtZSBvbiBJUkMgYW5kIHdlIGNhbiBnbyBmcm9tIHRoZXJlLjwvbGk+DQo8L29sPiANCjxwPlRoaXMgaXMgbm8gbG9uZ2VyIGEgcGFydGljdWxhcmx5IGVhcmx5IHZlcnNpb24sIGJ1dCBpdCBpcyBwcm9iYWJseSBzdGlsbCBidWdneS4gV2hpbGUgSSYjMDM5O3ZlIGRvbmUgYWxsIEkgY2FuDQp0byBtYWtlIHN1cmUgbm8gZWdyZWdpb3VzIGJ1Z3MgaGF2ZSBjcmVwdCBpbiwgSSBoYXZlIHRvIGFkbWl0IHRoYXQgZHVyaW5nIGVhcmx5IHRlc3RpbmcsIHRoaXMgcHJvZ3JhbQ0KcmV2ZWFsZWQgc2V2ZW4gY29ja3JvYWNoZXMsIHR3byBlYXJ3aWdzLCBhIHNtYWxsIGZhbWlseSBvZiBhcGhpZHMsIGFuZCBhIHdhbGtpbmctc3RpY2sgaW5zZWN0LiBJdCBhbHNvDQphdGUgdGhlIG5laWdoYm9yJiMwMzk7cyBuYXN0eSBsaXR0bGUgeWFwIGRvZywgZm9yIHdoaWNoIEkgd2FzIGluYXBwcm9wcmlhdGVseSBncmF0ZWZ1bC48L3A+DQo8cD5UaGUgZmluYWwgcmVsZWFzZSB3aWxsIGluY2x1ZGUgYnVnIGZpeGVzLCBkb2N1bWVudGF0aW9uLCBhbmQgdW5jb25kaXRpb25hbCBsb3ZlLjwvcD4NCjxoMz5TdXBwb3J0PC9oMz4NCjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4NCjx1bD4NCjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlLCBGQVFzLCBvciB0byBmaWxlIGEgQnVnIFJlcG9ydCwgcGxlYXNlIHZpc2l0IHRoZSBDTVMgTWFkZSBTaW1wbGUgIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmciPkRldmVsb3BlciBGb3JnZTwvYT4uPC9saT4NCjxsaT5UbyBvYnRhaW4gY29tbWVyY2lhbCBzdXBwb3J0LCBwbGVhc2Ugc2VuZCBhbiBlbWFpbCB0byB0aGUgYXV0aG9yIGF0IDxhIGhyZWY9Im1haWx0bzpzamdAY21zbW9kdWxlcy5jb20iPiZhbXA7bHQ7c2pnQGNtc21vZHVsZXMuY29tJmFtcDtndDs8L2E+LjwvbGk+DQo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LjwvbGk+DQo8bGk+VGhlIGF1dGhvciBjYW4gb2Z0ZW4gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9ImlyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2NtcyI+Q01TIElSQyBDaGFubmVsPC9hPi48L2xpPg0KPGxpPkxhc3RseSwgeW91IG1heSBoYXZlIHNvbWUgc3VjY2VzcyBlbWFpbGluZyB0aGUgYXV0aG9yIGRpcmVjdGx5IGFuZCBncm92ZWxsaW5nIGZvciBmcmVlIHN1cHBvcnQuPC9saT4NCjxsaT5Eb25hdGlvbnMgYXJlIGdvb2QgbW90aXZhdG9ycywgdG9vLiBLZWVwIGluIG1pbmQgdGhhdCB0aGUgZG9sbGFyIGlzIHdlYWssIGFuZCBpZiB5b3UgYXJlIG5vdCBpbiB0aGUgVVMsIHlvdXIgZG9uYXRpb24gZ2V0cyBtYWduaWZpZWQuPC9saT4NCjwvdWw+DQo8cD5LZWVwIGluIG1pbmQgdGhhdCB0aGUgYXV0aG9yIGhhcyBwdXQgPGVtPmh1bmRyZWRzIGFuZCBodW5kcmVkcyBvZiBob3VyczwvZW0+IGludG8gdGhlIGRldmVsb3BtZW50IG9mIHRoaXMgbW9kdWxlLg0KUGxlYXNlIHRha2UgdGhlIHRpbWUgdG8gcmVhZCB0aGUgZG9jdW1lbnRhdGlvbiBiZWZvcmUgc2VuZGluZyBxdWVzdGlvbnMuIEVpdGhlciB0aGF0LCBvciBzZW5kIHlvdXIgcXVlc3Rpb25zIHdyaXR0ZW4gb24NCmZpbmFuY2lhbGx5IG5lZ290aWFibGUgaW5zdHJ1bWVudHMgKGkuZS4sIGNoZWNrcyBvciBjYXNoKS4gQW0gSSBzb3VuZGluZyBsaWtlIGEgYnJva2VuIHJlY29yZD8gRG8geW91IGtpZHMgdGhlc2UgZGF5cw0KZXZlbiBrbm93IHdoYXQgYSBicm9rZW4gcmVjb3JkIGlzPyBJIHdvdWxkIHNheSBza2lwcGluZyBDRCwgYnV0IHlvdSBtaWdodCBub3Qga25vdyB3aGF0IHRoYXQgaXMgZWl0aGVyLiBMaWtlIGENCnNhbXBsZSB0aGF0IGdvdCBzdHVjayBvbiBsb29wPyBEYW1uLCBJIGFtIGdldHRpbmcgb2xkLiBTbyBpcyB0aGlzIHBhcmFncmFwaC4gVGltZSB0byBtb3ZlIG9uLCBoZXJlLjwvcD48Zm9ybSBhY3Rpb249JnF1b3Q7aHR0cHM6Ly93d3cucGF5cGFsLmNvbS9jZ2ktYmluL3dlYnNjciZxdW90OyBtZXRob2Q9JnF1b3Q7cG9zdCZxdW90Oz4NCjxpbnB1dCB0eXBlPSZxdW90O2hpZGRlbiZxdW90OyBuYW1lPSZxdW90O2NtZCZxdW90OyB2YWx1ZT0mcXVvdDtfcy14Y2xpY2smcXVvdDs+DQo8aW5wdXQgdHlwZT0mcXVvdDtpbWFnZSZxdW90OyBzcmM9JnF1b3Q7aHR0cHM6Ly93d3cucGF5cGFsLmNvbS9lbl9VUy9pL2J0bi9idG5fZG9uYXRlQ0NfTEcuZ2lmJnF1b3Q7IGJvcmRlcj0mcXVvdDswJnF1b3Q7IG5hbWU9JnF1b3Q7c3VibWl0JnF1b3Q7IGFsdD0mcXVvdDtQYXlQYWwgLSBUaGUgc2FmZXIsIGVhc2llciB3YXkgdG8gcGF5IG9ubGluZSEmcXVvdDs+DQo8aW1nIGFsdD0mcXVvdDsmcXVvdDsgYm9yZGVyPSZxdW90OzAmcXVvdDsgc3JjPSZxdW90O2h0dHBzOi8vd3d3LnBheXBhbC5jb20vZW5fVVMvaS9zY3IvcGl4ZWwuZ2lmJnF1b3Q7IHdpZHRoPSZxdW90OzEmcXVvdDsgaGVpZ2h0PSZxdW90OzEmcXVvdDs+DQo8aW5wdXQgdHlwZT0mcXVvdDtoaWRkZW4mcXVvdDsgbmFtZT0mcXVvdDtlbmNyeXB0ZWQmcXVvdDsgdmFsdWU9JnF1b3Q7LS0tLS1CRUdJTiBQS0NTNy0tLS0tTUlJSFR3WUpLb1pJaHZjTkFRY0VvSUlIUURDQ0J6d0NBUUV4Z2dFd01JSUJMQUlCQURDQmxEQ0JqakVMTUFrR0ExVUVCaE1DVlZNeEN6QUpCZ05WQkFnVEFrTkJNUll3RkFZRFZRUUhFdzFOYjNWdWRHRnBiaUJXYVdWM01SUXdFZ1lEVlFRS0V3dFFZWGxRWVd3Z1NXNWpMakVUTUJFR0ExVUVDeFFLYkdsMlpWOWpaWEowY3pFUk1BOEdBMVVFQXhRSWJHbDJaVjloY0dreEhEQWFCZ2txaGtpRzl3MEJDUUVXRFhKbFFIQmhlWEJoYkM1amIyMENBUUF3RFFZSktvWklodmNOQVFFQkJRQUVnWUFJTm5CV2IvWE00bG12TEdIbDlSZDFjdkw1dHJxUmhjNytGb0dINUx0b2ZRaVZyZ0ZTdmg3aDFvamc1U3pUeGJndGkzMlpGMC91Y3VxL09RU0QrVnp1dUFGMXY2d1ZydHlPZUNQRUF3OGo4MURKT1hWakpIc0lZMm12aW9yUGpvbExRa0ZudjEyeVJUcHVGV0ZuNFpYZTUrdm5DalhxQnkwRUUvYWh6RU1NbnpFTE1Ba0dCU3NPQXdJYUJRQXdnY3dHQ1NxR1NJYjNEUUVIQVRBVUJnZ3Foa2lHOXcwREJ3UUljS05Od09QRm93dUFnYWl2Uzd2MGoyWEZ5UTlkcjhuaTlHOTVlRTdZcW9nR2xLOXd1U3BsbE9nOWxucnV2bkVRcXNtUm1RbnRoUXFXQ1RiWnpHMitJRXRlTTRJVXN4RXVHVHJ3OHBaQ1UyNFRORGNrbktVeDlVejN2U3hPaDNndTk1eUp5RHdvZU12YUVBMjRiczE0UUViSmJoTmpZNld4SHo5K2kvbFZBREJqeUFPRFlNdXphbERrdmR1dndlR05aazlsWUxSUkNvUFBOaWxHMVBmNnc4N0JIcGtTTThXUTFMQzkrUldkWGZaY20rZWdnZ09ITUlJRGd6Q0NBdXlnQXdJQkFnSUJBREFOQmdrcWhraUc5dzBCQVFVRkFEQ0JqakVMTUFrR0ExVUVCaE1DVlZNeEN6QUpCZ05WQkFnVEFrTkJNUll3RkFZRFZRUUhFdzFOYjNWdWRHRnBiaUJXYVdWM01SUXdFZ1lEVlFRS0V3dFFZWGxRWVd3Z1NXNWpMakVUTUJFR0ExVUVDeFFLYkdsMlpWOWpaWEowY3pFUk1BOEdBMVVFQXhRSWJHbDJaVjloY0dreEhEQWFCZ2txaGtpRzl3MEJDUUVXRFhKbFFIQmhlWEJoYkM1amIyMHdIaGNOTURRd01qRXpNVEF4TXpFMVdoY05NelV3TWpFek1UQXhNekUxV2pDQmpqRUxNQWtHQTFVRUJoTUNWVk14Q3pBSkJnTlZCQWdUQWtOQk1SWXdGQVlEVlFRSEV3MU5iM1Z1ZEdGcGJpQldhV1YzTVJRd0VnWURWUVFLRXd0UVlYbFFZV3dnU1c1akxqRVRNQkVHQTFVRUN4UUtiR2wyWlY5alpYSjBjekVSTUE4R0ExVUVBeFFJYkdsMlpWOWhjR2t4SERBYUJna3Foa2lHOXcwQkNRRVdEWEpsUUhCaGVYQmhiQzVqYjIwd2daOHdEUVlKS29aSWh2Y05BUUVCQlFBRGdZMEFNSUdKQW9HQkFNRkhUdDM4Uk14TFhKeU8yU21TK05kbDcyVDdvS0o0dTR1dys2YXdudEFMV2gwM1Bld21JSnV6YkFMU2NzVFM0c1pvUzFmS2NpQkdvaDExZ0lmSHp5bHZrZE5lL2hKbDY2L1JHcXJqNXJGYjA4c0FBQk5UekRUaXFxTnBKZUJzWXMvYzJhaUdvenB0WDJSbG5Ca3RIK1NVTnBBYWpXNzI0TnYyV3ZoaWY2c0ZBZ01CQUFHamdlNHdnZXN3SFFZRFZSME9CQllFRkphZmZMdkdieGU5V1Q5UzF3b2I3QkRXWkpSck1JRzdCZ05WSFNNRWdiTXdnYkNBRkphZmZMdkdieGU5V1Q5UzF3b2I3QkRXWkpScm9ZR1VwSUdSTUlHT01Rc3dDUVlEVlFRR0V3SlZVekVMTUFrR0ExVUVDQk1DUTBFeEZqQVVCZ05WQkFjVERVMXZkVzUwWVdsdUlGWnBaWGN4RkRBU0JnTlZCQW9UQzFCaGVWQmhiQ0JKYm1NdU1STXdFUVlEVlFRTEZBcHNhWFpsWDJObGNuUnpNUkV3RHdZRFZRUURGQWhzYVhabFgyRndhVEVjTUJvR0NTcUdTSWIzRFFFSkFSWU5jbVZBY0dGNWNHRnNMbU52YllJQkFEQU1CZ05WSFJNRUJUQURBUUgvTUEwR0NTcUdTSWIzRFFFQkJRVUFBNEdCQUlGZk9sYWFnRnJsNzEranE2T0tpZGJXRlNFK1E0RnFST3ZkZ0lPTnRoKzhrU0svL1kvNGlodUU0WW12em41Y2VFM1MvaUJTUVFNanl2YitzMlRXYlFZRHdjcDEyOU9QSWJEOWVwZHI0dEpPVU5pU29qdzdCSHdZUmlQaDU4UzF4R2xGZ0hGWHdyRUJiM2RnTmJNVWErdTRxZWN0c01BWHBWSG5EOXdJeWZtSE1ZSUJtakNDQVpZQ0FRRXdnWlF3Z1k0eEN6QUpCZ05WQkFZVEFsVlRNUXN3Q1FZRFZRUUlFd0pEUVRFV01CUUdBMVVFQnhNTlRXOTFiblJoYVc0Z1ZtbGxkekVVTUJJR0ExVUVDaE1MVUdGNVVHRnNJRWx1WXk0eEV6QVJCZ05WQkFzVUNteHBkbVZmWTJWeWRITXhFVEFQQmdOVkJBTVVDR3hwZG1WZllYQnBNUnd3R2dZSktvWklodmNOQVFrQkZnMXlaVUJ3WVhsd1lXd3VZMjl0QWdFQU1Ba0dCU3NPQXdJYUJRQ2dYVEFZQmdrcWhraUc5dzBCQ1FNeEN3WUpLb1pJaHZjTkFRY0JNQndHQ1NxR1NJYjNEUUVKQlRFUEZ3MHdPREEzTURFd016VTVNemxhTUNNR0NTcUdTSWIzRFFFSkJERVdCQlFNMExWMzBmTFhjSDlNNWRNbXVUQkxuc0ZRNGpBTkJna3Foa2lHOXcwQkFRRUZBQVNCZ0JFejJYcU1NcUZidVVoaitMMTI4Q3cydThTaE9LUXR0cktyL2hpMFdSZWVuSERZQmlIT1N0bDYzUnY3NlEybXBkNDUzUnZDajVtcTdkUnR1UkI2cGZIR1JEa1VYNk4xK09PSW9JZnJvQlpJQVROaHo5Q0VId0VGa05qWWcwRUdNQUcramNiQWoxREpqUjczY3hiYU5yWFdQeEEraGlRaEhsQXJyWkE3ckZWNS0tLS0tRU5EIFBLQ1M3LS0tLS0NCiZxdW90Oz4NCjwvZm9ybT48cD5BcyBwZXIgdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCBhcy1pcy4gUGxlYXNlIHJlYWQgdGhlIHRleHQNCm9mIHRoZSBsaWNlbnNlIGZvciB0aGUgZnVsbCBkaXNjbGFpbWVyLjwvcD4NCjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPg0KPHA+Q29weXJpZ2h0ICZhbXA7Y29weTsgMjAwOSwgU2FtdWVsIEdvbGRzdGVpbiA8YSBocmVmPSJtYWlsdG86c2pnQGNtc21vZHVsZXMuY29tIj4mYW1wO2x0O3NqZ0BjbXNtb2R1bGVzLmNvbSZhbXA7Z3Q7PC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPg0KPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCI+R05VIFB1YmxpYyBMaWNlbnNlPC9hPi4gWW91IG11c3QgYWdyZWUgdG8gdGhpcyBsaWNlbnNlIGJlZm9yZSB1c2luZyB0aGUgbW9kdWxlLjwvcD4nOwokbGFuZ1sndXRteiddID0gJzE1Njg2MTM1My4xMjc5OTIyMjgyLjMwMzkuNzAudXRtY3NyPWZvcnVtLmNtc21hZGVzaW1wbGUub3JnfHV0bWNjbj0ocmVmZXJyYWwpfHV0bWNtZD1yZWZlcnJhbHx1dG1jY3Q9L2luZGV4LnBocCc7CiRsYW5nWyd1dG1hJ10gPSAnMTU2ODYxMzUzLjE3OTA1MjYyMzA4NDExMDEwMC4xMjEwNDIzNTc3LjEyODA4NzI3NDQuMTI4MDk0NDg3MS4zMDk5JzsKJGxhbmdbJ3FjYSddID0gJzEyMTA5NzE2OTAtMjczMDgwNzMtODE5NTI4MzInOwokbGFuZ1sndXRtYiddID0gJzE1Njg2MTM1My4yLjEwLjEyODA5NDQ4NzEnOwokbGFuZ1sndXRtYyddID0gJzE1Njg2MTM1Myc7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lang/ext/nl_NL.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0Zvcm0gQnVpbGRlciAnOwokbGFuZ1snZmllbGRfdHlwZV8nXSA9ICdWZWxkdHlwZSBuaWV0IGluZ2VzdGVsZCc7CiRsYW5nWydmaWVsZF90eXBlX0NhdGFsb2dlckl0ZW1zRmllbGQnXSA9ICdTZWxlY3RlZXIgZWVuIChvZiBtZWVyKSBjYXRhbG9nZXIgaXRlbXMnOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldEVuZCddID0gJy0gVmVsZCBlaW5kZSc7CiRsYW5nWydmaWVsZF90eXBlX0ZpZWxkc2V0U3RhcnQnXSA9ICctIFZlbGQgc3RhcnQnOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0RmllbGQnXSA9ICdUZWtzdGludm9lcic7CiRsYW5nWydmaWVsZF90eXBlX0hUTUw1TnVtYmVyRmllbGQnXSA9ICdIVE1MNSBHZXRhbCBJbnB1dCc7CiRsYW5nWydmaWVsZF90eXBlX0hUTUw1RW1haWxGaWVsZCddID0gJ0hUTUw1IEUtbWFpbCBJbnB1dCc7CiRsYW5nWydmaWVsZF90eXBlX0hUTUw1VVJMRmllbGQnXSA9ICdIVE1MNSBVcmwgSW5wdXQnOwokbGFuZ1snZmllbGRfdHlwZV9QYXNzd29yZEZpZWxkJ10gPSAnV2FjaHR3b29yZCc7CiRsYW5nWydmaWVsZF90eXBlX1Bhc3N3b3JkQWdhaW5GaWVsZCddID0gJ05vZ21hYWxzIHdhY2h0d29vcmQgKHRlciBjb250cm9sZSknOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0RmllbGRFeHBhbmRhYmxlJ10gPSAnVGVrc3RpbnZvZXIgKG1lZXJkZXJlKSc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRBcmVhRmllbGQnXSA9ICdUZWtzdHZlbGQnOwokbGFuZ1snZmllbGRfdHlwZV9CdXR0b25GaWVsZCddID0gJ1RvZXRzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hGaWVsZCddID0gJ1NlbGVjdGlldmFrJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hHcm91cEZpZWxkJ10gPSAnU2VsZWN0aWV2YWstZ3JvZXAnOwokbGFuZ1snZmllbGRfdHlwZV9QdWxsZG93bkZpZWxkJ10gPSAnS2V1emVsaWpzdCc7CiRsYW5nWydmaWVsZF90eXBlX1llYXJQdWxsRG93bkZpZWxkJ10gPSAnSmFhciBQdWxsZG93bic7CiRsYW5nWydmaWVsZF90eXBlX011bHRpc2VsZWN0RmllbGQnXSA9ICdNZWVya2V1emUnOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0ZVBpY2tlckZpZWxkJ10gPSAnVS5TLiBTdGF0ZW4ta2llemVyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUHJvdmluY2VQaWNrZXJGaWVsZCddID0gJ0NhbmFkZXNlIFByb3ZpbmNpZS1raWV6ZXInOwokbGFuZ1snZmllbGRfdHlwZV9Db3VudHJ5UGlja2VyRmllbGQnXSA9ICdMYW5kZW5raWV6ZXInOwokbGFuZ1snZmllbGRfdHlwZV9EYXRlUGlja2VyRmllbGQnXSA9ICdEYXR1bWtpZXplcic7CiRsYW5nWydmaWVsZF90eXBlX1RpbWVQaWNrZXJGaWVsZCddID0gJ1RpamRraWV6ZXInOwokbGFuZ1snZmllbGRfdHlwZV9SYWRpb0dyb3VwRmllbGQnXSA9ICdTZWxlY3RpZXJvbmRqZXMtZ3JvZXAnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRpcmVjdG9yJ10gPSAnKkUtbWFpbCByZXN1bHRhdGVuIGdlYmFzZWVyZCBvcCBrZXV6ZWxpanN0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25GaWxlRGlyZWN0b3InXSA9ICcqQmV3YWFyIHJlc3VsdGF0ZW4gaW4gZWVuIGJlc3RhbmQgZ2ViYXNlZXJkIG9wIGtldXplbGlqc3QnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbk11bHRpc2VsZWN0RmlsZURpcmVjdG9yJ10gPSAnKkJld2FhciByZXN1bHRhdGVuIGluIGJlc3RhbmRlbiBnZWJhc2VlcmQgb3AgbWVlci1rZXV6ZWxpanN0ZW4nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvblBhZ2VSZWRpcmVjdG9yJ10gPSAnKlJlZGlyZWN0IG5hYXIgcGFnaW5hIGdlYmFzZWVyZCBvcCBrZXV6ZWxpanN0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbCddID0gJypFLW1haWwgcmVzdWx0YXRlbiBuYWFyIGluZ2VzdGVsZGUgYWRyZXMoc2VuKSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxDb25maXJtYXRpb24nXSA9ICcqVmFsaWRlZXItdmlhLW1haWxhZHJlcyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRnJvbUVtYWlsQWRkcmVzc0ZpZWxkJ10gPSAnKkUtbWFpbCAmcXVvdDtWYW4gQWRyZXMmcXVvdDsgVmVsZCwgdmVyemVuZCBlZW4ga29waWUnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZpbGUnXSA9ICcqU2NocmlqZiByZXN1bHRhdGVuIG5hYXIgYmVzdGFuZCc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGF0YWJhc2UnXSA9ICcqUmVzdWx0YXRlbiBvcHNsYWFuIGluIGRhdGFiYXNlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Gb3JtQnJvd3NlciddID0gJypTbGEgcmVzdWx0YXRlbiBvcCB2b29yIEZvcm1Ccm93c2VyIE1vZHVsZSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uVXNlclRhZyddID0gJypTdGFydCBlZW4gZ2VicnVpa2VyZ2VkZWZpbmllZXJkZSB0YWcgbWV0IGRlIGZvcm11bGllciByZXN1bHRhdGVuJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Gb3JtJ10gPSAnKlZlcnN0dXVyIG5hYXIgZWVuIHdpbGxla2V1cmlnZSBmb3JtdWxpZXJhY3RpZSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGVsaXZlclRvRW1haWxBZGRyZXNzRmllbGQnXSA9ICcqRS1tYWlsIG5hYXIgaGV0IG9wZ2VnZXZlbiBlLW1haWxhZHJlcyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxTaXRlQWRtaW4nXSA9ICcqRS1tYWlsIG5hYXIgQ01TIEFkbWluIEdlYnJ1aWtlcic7CiRsYW5nWydmaWVsZF90eXBlX1BhZ2VCcmVha0ZpZWxkJ10gPSAnLSBQYWdpbmFzY2hlaWRpbmcnOwokbGFuZ1snZmllbGRfdHlwZV9GaWxlVXBsb2FkRmllbGQnXSA9ICdCZXN0YW5kIFVwbG9hZCc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbEFkZHJlc3NGaWVsZCddID0gJyZxdW90O1ZhbiBBZHJlcyZxdW90OyBlLW1haWx2ZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsQWRkcmVzc0FnYWluRmllbGQnXSA9ICdFLW1haWwgJnF1b3Q7VmFuIEFkcmVzJnF1b3Q7IEhlcmhhbGluZ3N2ZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsTmFtZUZpZWxkJ10gPSAnJnF1b3Q7VmFuIE5hYW0mcXVvdDsgZS1tYWlsdmVsZCc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbFN1YmplY3RGaWVsZCddID0gJyZxdW90O09uZGVyd2VycCZxdW90OyBlLW1haWx2ZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3RhdGljVGV4dEZpZWxkJ10gPSAnLSBTdGF0aXNjaGUgVGVrc3QnOwokbGFuZ1snZmllbGRfdHlwZV9TeXN0ZW1MaW5rRmllbGQnXSA9ICctIFN0YXRpc2NoZSBsaW5rJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTGlua0ZpZWxkJ10gPSAnLSBMaW5rIChpbmdldm9lcmQgZG9vciBnZWJydWlrZXIpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfSGlkZGVuRmllbGQnXSA9ICctIFZlcmJvcmdlbiB2ZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ29tcHV0ZWRGaWVsZCddID0gJy0gQmVyZWtlbmQgdmVsZCc7CiRsYW5nWydmaWVsZF90eXBlX1VuaXF1ZUludGVnZXJGaWVsZCddID0gJy0gVW5pZWsgR2V0YWwgKFNlcmllbnVtbWVyKSc7CiRsYW5nWydmaWVsZF90eXBlX1VzZXJUYWdGaWVsZCddID0gJy0gQWFucm9lcCBHZWJydWlrZXJzZ2VkZWZpbmllZXJkZSBUYWcgKFVEVCknOwokbGFuZ1snZmllbGRfdHlwZV9Db21wYW55RGlyZWN0b3J5RmllbGQnXSA9ICdDb21wYW55IERpcmVjdG9yeSBWZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTW9kdWxlSW50ZXJmYWNlRmllbGQnXSA9ICctIE1vZHVsZSBJbnRlcmZhY2UgVmVsZCc7CiRsYW5nWyd2YWxpZGF0aW9uX25vbmUnXSA9ICdHZWVuIHZhbGlkYXRpZSc7CiRsYW5nWyd2YWxpZGF0aW9uX251bWVyaWMnXSA9ICdOdW1lcmllayc7CiRsYW5nWyd2YWxpZGF0aW9uX2ludGVnZXInXSA9ICdHZWhlZWwgZ2V0YWwnOwokbGFuZ1sndmFsaWRhdGlvbl9lbWFpbF9hZGRyZXNzJ10gPSAnRS1tYWlsYWRyZXMnOwokbGFuZ1sndmFsaWRhdGlvbl91c3Bob25lJ10gPSAnVGVsZWZvb25udW1tZXIgKFVTKSc7CiRsYW5nWyd2YWxpZGF0aW9uX211c3RfY2hlY2snXSA9ICdNb2V0IGFhbmdldmlua3Qgd29yZGVuJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbWF0Y2gnXSA9ICdNb2V0IHZvbGRvZW4gYWFuIGVlbiByZWd1bGllcmUgZXhwcmVzc2llJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbm9tYXRjaCddID0gJ1ZvbGRvZXQgbmlldCBhYW4gZGUgcmVndWxpZXJlIGV4cHJlc3NpZSc7CiRsYW5nWydyZXF1aXJlZF9maWVsZF9taXNzaW5nJ10gPSAnRWVuIHdhYXJkZSBvbnRicmVla3Qgdm9vciBkaXQgdmVycGxpY2h0ZSB2ZWxkJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX3ZhbHVlJ10gPSAnVm9lciBlZW4gd2FhcmRlIGluIHZvb3IgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfbnVtYmVyJ10gPSAnVm9lciBlZW4gbnVtbWVyIGluIGJpaiAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfdmFsaWQnXSA9ICdWb2VyIGVlbiBnZWxkaWdlIHdhYXJkZSBpbiBiaWogJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FuX2ludGVnZXInXSA9ICdWb2VyIGVlbiBnZXRhbCBpbiBiaWogJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FuX2VtYWlsJ10gPSAnVm9lciBlZW4gZ2VsZGlnIGUtbWFpbGFkcmVzIGluIGJpaiAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydlbWFpbF9hZGRyZXNzX2RvZXNfbm90X21hdGNoJ10gPSAnRS1tYWlsYWRyZXMga29tdCBuaWV0IG92ZXJlZW4gbWV0IGRlIHdhYXJkZSAlcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV9waG9uZSddID0gJ1ZvZXIgZWVuIGdlbGRpZyB0ZWxlZm9vbm51bW1lciBpcyB2b29yICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9sb2dpbiddID0gJ1dpbHQgdSB6aWNoIGFsc3R1YmxpZWZ0IGFhbm1lbGRlbiBvbSBkaXQgZm9ybXVsaWVyIHRlIGdlYnJ1aWtlbic7CiRsYW5nWydub3RfdmFsaWRfZW1haWwnXSA9ICcmcXVvdDslcyZxdW90OyBpcyBnZWVuIGdlbGRpZyBlLW1haWxhZHJlcy4nOwokbGFuZ1sncGxlYXNlX2VudGVyX25vX2xvbmdlciddID0gJ1ZvZXIgZWVuIHdhYXJkZSBpbiBkaWUgbmlldCBsYW5nZXIgaXMgZGFuICVzIHRla2Vucyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYXRfbGVhc3QnXSA9ICdWb2VyIGVlbiB3YWFyZGUgaW4sIG1ldCBtaW5pbWFhbCAlcyBrYXJha3RlcnMnOwokbGFuZ1sndGl0bGVfbGlzdF9kZWxpbWl0ZXInXSA9ICdUZWtlbiBvbSB0ZSBnZWJydWlrZW4gYWxzIHNjaGVpZGluZyBiaWogcmVzdWx0YXRlbiBkaWUgbWVlciBkYW4gJmVhY3V0ZTsmZWFjdXRlO24gd2FhcmRlIHRlcnVnZ2V2ZW4nOwokbGFuZ1sneW91X25lZWRfcGVybWlzc2lvbiddID0gJ0hldCAmcXVvdDslcyZxdW90Oy1yZWNodCBpcyB2ZXJlaXN0IHZvb3IgZGllIGJld2Vya2luZy4nOwokbGFuZ1snbGFja3Blcm1pc3Npb24nXSA9ICdTb3JyeSEgVSBoZWVmdCBvbnZvbGRvZW5kZSByZWNodGVuIG9tIGRlemUgc2VjdGllIHRlIGJlbmFkZXJlbi4nOwokbGFuZ1snZmllbGRfb3JkZXJfdXBkYXRlZCddID0gJ1ZlbGR2b2xnb3JkZSBiaWpnZXdlcmt0Lic7CiRsYW5nWydmb3JtX2RlbGV0ZWQnXSA9ICdGb3JtdWxpZXIgdmVyd2lqZGVyZC4nOwokbGFuZ1snZmllbGRfZGVsZXRlZCddID0gJ1ZlbGQgdmVyd2lqZGVyZC4nOwokbGFuZ1snY29uZmlndXJhdGlvbl91cGRhdGVkJ10gPSAnQ29uZmlndXJhdGllIGJpamdld2Vya3QuJzsKJGxhbmdbJ3lvdV9tdXN0X2NoZWNrJ10gPSAnJnF1b3Q7JXMmcXVvdDsgbW9ldCBnZXNlbGVjdGVlcmQgemlqbiBvbSBkb29yIHRlIGt1bm5lbiBnYWFuLic7CiRsYW5nWydtdXN0X3NwZWNpZnlfb25lX2Rlc3RpbmF0aW9uJ10gPSAnRXIgbW9ldCB0ZW5taW5zdGUgJmVhY3V0ZTsmZWFjdXRlO24gYmVzdGVtbWluZ3NhZHJlcyB3b3JkZW4gb3BnZWdldmVuLic7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2Zvcm0nXSA9ICdIZXQgZm9ybXVsaWVyICVzIHZlcndpamRlcmVuPyc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2ZpZWxkJ10gPSAnSGV0IHZlbGQgJXMgdmVyd2lqZGVyZW4/JzsKJGxhbmdbJ25vdGljZV9zZWxlY3RfdHlwZSddID0gJ0dlYXZhbmNlZXJkZSBvcHRpZXMgemlqbiBuaWV0IGJlc2NoaWtiYWFyIHZvb3JkYXQgaGV0IHZlbGR0eXBlIGluZ2VzdGVsZCBpcy4nOwokbGFuZ1snZmllbGRfbmFtZV9pbl91c2UnXSA9ICdEZSB2ZWxkbmFhbSAmcXVvdDslcyZxdW90OyBpcyBhbCBpbiBnZWJydWlrLiBHZWJydWlrIHVuaWVrZSB2ZWxkbmFtZW4gb2Ygc2NoYWtlbCB1bmlla2UgdmVsZG5hbWVuIHVpdCBpbiBkZSBGb3JtIEJ1aWxkZXItY29uZmlndXJhdGllLic7CiRsYW5nWydmaWVsZF9ub19uYW1lJ10gPSAnVmVsZGVuIG1vZXRlbiBlZW4gbmFhbSBoZWJiZW4sIGJlaGFsdmUgYWxzIGRlemUgdWl0Z2VzY2hha2VsZCB6aWpuIGluIGRlIEZvcm0gQnVpbGRlci1jb25maWd1cmF0aWUuJzsKJGxhbmdbJ2Fub255bW91cyddID0gJ0Fub25pZW0nOwokbGFuZ1snYWJicmV2aWF0aW9uX2xlbmd0aCddID0gJ0xlbmd0ZTogJXMnOwokbGFuZ1snYm94ZXMnXSA9ICclcyB2YWtrZW4nOwokbGFuZ1snb3B0aW9ucyddID0gJyVzIG9wdGllcyc7CiRsYW5nWyd0ZXh0X2xlbmd0aCddID0gJyVzIHRla2Vucyc7CiRsYW5nWydvcmRlciddID0gJ1ZvbGdvcmRlJzsKJGxhbmdbJ3Vuc3BlY2lmaWVkJ10gPSAnW25pZXQgb3BnZWdldmVuXSc7CiRsYW5nWydhZGRlZCddID0gJ3RvZWdldm9lZ2QnOwokbGFuZ1sndXBkYXRlZCddID0gJ2Jpamdld2Vya3QnOwokbGFuZ1snc29ydF9vcHRpb25zJ10gPSAnU29ydGVlcm9wdGllcyB2YW4gZGUgdWl0dm9lcic7CiRsYW5nWydzZWxlY3Rfb25lJ10gPSAnU2VsZWN0ZWVyICZlYWN1dGU7JmVhY3V0ZTtuJzsKJGxhbmdbJ3NlbGVjdF90eXBlJ10gPSAnU2VsZWN0ZWVyIFR5cGUnOwokbGFuZ1sndG8nXSA9ICdBYW4nOwokbGFuZ1sneWVzJ10gPSAnSmEnOwokbGFuZ1snbm8nXSA9ICdOZWUnOwokbGFuZ1sncmVjaXBpZW50cyddID0gJ29udHZhbmdlcnMnOwokbGFuZ1snZmlsZV9jb3VudCddID0gJyVzIG1vZ2VsaWprZSBiZXN0YW5kZW4nOwokbGFuZ1snZGVzdGluYXRpb25fY291bnQnXSA9ICclcyBiZXN0ZW1taW5nZW4nOwokbGFuZ1snc2F2ZSddID0gJ09wc2xhYW4nOwokbGFuZ1snYWRkJ10gPSAnVG9ldm9lZ2VuJzsKJGxhbmdbJ3VwZGF0ZSddID0gJ0Jpandlcmtlbic7CiRsYW5nWydzYXZlX2FuZF9jb250aW51ZSddID0gJ09wc2xhYW4gZW4gZG9vcmdhYW4gbWV0IHdpanppZ2VuJzsKJGxhbmdbJ2luZm9ybWF0aW9uJ10gPSAnSW5mb3JtYXRpZSc7CiRsYW5nWydhdXRvbWF0aWMnXSA9ICdBdXRvbWF0aXNjaCc7CiRsYW5nWydmb3JtcyddID0gJ0Zvcm11bGllcmVuJzsKJGxhbmdbJ2Zvcm0nXSA9ICdGb3JtdWxpZXIgJXMnOwokbGFuZ1snY29uZmlndXJhdGlvbiddID0gJ0NvbmZpZ3VyYXRpZSc7CiRsYW5nWydmaWVsZF9yZXF1aXJlbWVudF91cGRhdGVkJ10gPSAnVmVsZCB2ZXJwbGljaHRlIHRvZXN0YW5kIGJpamdld2Vya3QuJzsKJGxhbmdbJ21heGltdW1fc2l6ZSddID0gJ01heC4gZ3Jvb3R0ZSc7CiRsYW5nWydwZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ1VpdGJyZWlkaW5nZW4nOwokbGFuZ1sncGVybWl0dGVkX2ZpbGV0eXBlcyddID0gJ1RvZWdlc3RhbmUgYmVzdGFuZHN0eXBlcyc7CiRsYW5nWydmaWxlX3Rvb19sYXJnZSddID0gJ0dlJnV1bWw7cGxvYWQgYmVzdGFuZCBpcyB0ZSBncm9vdC4gRGUgbWF4aW1hbGUgZ3Jvb3R0ZSBpczonOwokbGFuZ1snaWxsZWdhbF9maWxlX3R5cGUnXSA9ICdEaXQgdHlwZSBiZXN0YW5kIG1hZyBuaWV0IHdvcmRlbiBnZSZ1dW1sO3Bsb2FkLiBDb250cm9sZWVyIGRlIGJlc3RhbmRzZXh0ZW5zaWUuJzsKJGxhbmdbJ3VwbG9hZCddID0gJ1VwbG9hZCAnOwokbGFuZ1snZm9ybV9pbXBvcnRlZCddID0gJ0Zvcm11bGllciBnZSZpdW1sO21wb3J0ZWVyZC4nOwokbGFuZ1snZm9ybV9pbXBvcnRfZmFpbGVkJ10gPSAnRm9ybXVsaWVyIGltcG9ydCBtaXNsdWt0ISBFciB3YXMgZWVuIHByb2JsZWVtIG1ldCBkZSBvcG1hYWsgdmFuIGhldCBYTUwtYmVzdGFuZC4nOwokbGFuZ1sncm93cyddID0gJyVzIHJpamVuJzsKJGxhbmdbJ2NvbHMnXSA9ICclcyBrb2xvbW1lbic7CiRsYW5nWycxMl9ob3VyJ10gPSAnMTItdXVycyBrbG9rJzsKJGxhbmdbJzI0X2hvdXInXSA9ICcyNC11dXJzIGtsb2snOwokbGFuZ1snaG91ciddID0gJ3V1cic7CiRsYW5nWydtaW4nXSA9ICdtaW51dXQnOwokbGFuZ1snbWVyaWQnXSA9ICdtZXJpZGlhYW4nOwokbGFuZ1snZGF0ZV9yYW5nZSddID0gJ1ZlcnphbWVsaW5nOiAlcyAtICVzJzsKJGxhbmdbJ3RoYW5rcyddID0gJ0JlZGFua3QuIFV3IGJlcmljaHQgaXMgb250dmFuZ2VuLic7CiRsYW5nWydlZGl0J10gPSAnQmV3ZXJrZW4nOwokbGFuZ1snZGVsZXRlJ10gPSAnVmVyd2lqZGVyZW4nOwokbGFuZ1snZGF5J10gPSAnZGFnJzsKJGxhbmdbJ21vbiddID0gJ21hYW5kJzsKJGxhbmdbJ3llYXInXSA9ICdqYWFyJzsKJGxhbmdbJ25vbmUnXSA9ICcoZ2VlbiknOwokbGFuZ1snY3NzJ10gPSAnQ1NTICc7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHVsZSBnZWRlJml1bWw7bnN0YWxlZXJkLic7CiRsYW5nWydpbnN0YWxsZWQnXSA9ICdNb2R1bGV2ZXJzaWUgJXMgZ2UmaXVtbDtuc3RhbGxlZXJkLic7CiRsYW5nWyd1cGdyYWRlZCddID0gJ01vZHVsZSBiaWpnZXdlcmt0IG5hYXIgdmVyc2llICVzLic7CiRsYW5nWydidXR0b25fcHJldmlvdXMnXSA9ICdUZXJ1Zy4uLic7CiRsYW5nWydidXR0b25fc3VibWl0J10gPSAnVmVyc3R1cmVuJzsKJGxhbmdbJ2J1dHRvbl9jb250aW51ZSddID0gJ1ZlcmRlci4uLic7CiRsYW5nWyd2YWx1ZV9jaGVja2VkJ10gPSAnR2VzZWxlY3RlZXJkJzsKJGxhbmdbJ3ZhbHVlX3VuY2hlY2tlZCddID0gJ05pZXQgZ2VzZWxlY3RlZXJkJzsKJGxhbmdbJ3RhYl9tYWluJ10gPSAnU3RhcnQnOwokbGFuZ1sndGFiX3N5bWJvbCddID0gJ0Zvcm11bGllcndlZXJnYXZlaW5zdGVsbGluZ2VuJzsKJGxhbmdbJ3RhYl9zdWJtaXQnXSA9ICdGb3JtdWxpZXJ2ZXJ6ZW5kaW5nJzsKJGxhbmdbJ3RhYl9jYXB0Y2hhJ10gPSAnQ2FwdGNoYS1pbnN0ZWxsaW5nZW4nOwokbGFuZ1sndGFiX2FkdmFuY2VkJ10gPSAnR2VhdmFuY2VlcmRlIGluc3RlbGxpbmdlbic7CiRsYW5nWyd0YWJfdGVtcGxhdGVsYXlvdXQnXSA9ICdGb3JtdWxpZXJzamFibG9vbic7CiRsYW5nWyd0YWJfc3VibWlzc2lvbnRlbXBsYXRlJ10gPSAnVmVyemVuZHNqYWJsb29uJzsKJGxhbmdbJ3RhYl91ZHQnXSA9ICdVRFQgSW50ZWdyYXRpZSc7CiRsYW5nWydjYW51c2Vfc21hcnR5J10gPSAnPGVtPlNtYXJ0eS12YXJpYWJlbGVuIG1vZ2VuIGluIGRpdCB2ZWxkIGdlYnJ1aWt0IHdvcmRlbi48L2VtPic7CiRsYW5nWydhZGRfb3B0aW9ucyddID0gJ01lZXIgb3B0aWVzIHRvZXZvZWdlbic7CiRsYW5nWydkZWxldGVfb3B0aW9ucyddID0gJ1ZlcndpamRlcmVuIGdlbWFya2VlcmRlIG9wdGllcyc7CiRsYW5nWydhZGRfY2hlY2tib3hlcyddID0gJ1ZvZWcgbWVlciBzZWxlY3RpZXZha2tlbiB0b2UnOwokbGFuZ1snZGVsZXRlX2NoZWNrYm94ZXMnXSA9ICdWZXJ3aWpkZXIgZ2VtYXJrZWVyZGUgc2VsZWN0aWV2YWtrZW4nOwokbGFuZ1snYWRkX2FkZHJlc3MnXSA9ICdWb2xnZW5kIGFkcmVzIHRvZXZvZWdlbic7CiRsYW5nWydkZWxldGVfYWRkcmVzcyddID0gJ1ZlcndpamRlciBnZW1hcmtlZXJkZSBhZHJlc3Nlbic7CiRsYW5nWydhZGRfZGVzdGluYXRpb24nXSA9ICdWb2xnZW5kZSBiZXN0ZW1taW5nIHRvZXZvZWdlbic7CiRsYW5nWydkZWxldGVfZGVzdGluYXRpb24nXSA9ICdWZXJ3aWpkZXIgZ2VtYXJrZWVyZGUgYmVzdGVtbWluZ2VuJzsKJGxhbmdbJ3N1c3BlY3RlZF9zcGFtJ10gPSAnVGUgdmVlbCBlLW1haWxzIHZlcnpvbmRlbiB2YW5hZiB1dyBJUC1hZHJlcy4gQW50aS1zcGFtIG1lY2hhbmlzbWUgYmxva2tlZXJ0IGRlIHZlcnplbmRpbmcuJzsKJGxhbmdbJ3N1c3BlY3RlZF9zcGFtX2xvZyddID0gJ1ZlcmRhY2h0ZSBzcGFtIHZhbiBJUCAlcyBnZWJsb2trZWVyZC4nOwokbGFuZ1sncmVvcmRlciddID0gJ0hlcnNjaGlrIHZlbGRlbic7CiRsYW5nWydjYW5jZWwnXSA9ICdBbm51bGVyZW4nOwokbGFuZ1sndmFsdWVfc2V0J10gPSAnSW5nZXN0ZWxkZSB3YWFyZGU6ICVzJzsKJGxhbmdbJ2hlbHBfY2F0YWxvZ2VyX2F0dHJpYnV0ZV9maWVsZHMnXSA9ICdIaWVyb25kZXIgc3RhYXQgZWVuIGxpanN0IG1ldCBhdHRyaWJ1dGVuIGRpZSBiZXNjaGlrYmFhciB6aWpuIHZhbnVpdCBkZSBDYXRhbG9nZXIgbW9kdWxlLjxici8+CQ0KVSBrdW50IGV2ZW50dWVlbCBnZWxkaWcgcmVla3Nlbiwgd2FhcmRlbiwgb2YgZWVuIGdyb290IGFhbnRhbCB3YWFyZGVuIHNwZWNpZmljZXJlbiBkaWUgd29yZGVuIGdlYnJ1aWt0IGJpaiBoZXQgZmlsdGVyZW4gdmFuIGRlIGxpanN0IHZhbiBvYmplY3RlbiBkaWUgd29yZGVuIHdlZXJnZWdldmVuIGFhbiBkZSBnZWJydWlrZXIuIDxici8+DQo8YnIvPg0KPHN0cm9uZz5SZWVrc2VuOjwvc3Ryb25nPjxici8+DQpSZWVrc2VuIGt1bm5lbiB3b3JkZW4gb3BnZWdldmVuIGRvb3IgZWVuIG1pbmltYWxlIGVuIG1heGltYWxlIHdhYXJkZSB2YW4gaGV0IGdlYnJ1aWsgdmFuIGRlemUgc3ludGF4OiAmcXVvdDtyYW5nZTogbWludmFsdWUgdG8gbWF4dmFsdWUmcXVvdDs8YnIvPg0KPGJyLz4NCjxzdHJvbmc+VmVyc2NoaWxsZW5kZSB3YWFyZGVuOjwvc3Ryb25nPjxici8+DQpPbSBlZW4gd2FhcmRlIHRlIHNwZWNpZmljZXJlbiB2b29yIGVlbiBhdHJpYnV1dCwga3VuIGplIGRlIHN5bnRhYyAmcXVvdDttdWx0aTogdmFsdWUxfHZhbHVlMnx2YWx1ZTMmcXVvdDsgZ2VicnVpa2VuLjxici8+DQo8YnIvPg0KPHN0cm9uZz5XYWFyZGVuIGluIHZlcmJvcmdlbiB2ZWxkZW48L3N0cm9uZz48YnIvPg0KT20gZWVuIHdhYXJkZW4gdG9lIHRlIGtlbm5lbiBhYW4gZWVuIHZlcmJvcmdlbiB2ZWxkLCBnZWJydWlrdCB1IGRlIHN5bnRheCB7JGZsZF9pZH08YnIvPg0KPGJyLz4nOwokbGFuZ1snaGVscF9uYW1lX3JlZ2V4J10gPSAnRWVuIHJlZ3VsaWVyZSBleHByZXNzaWUgb20gZGUgY2F0YWxvZ2VyIGl0ZW1zIHRlIHNvcnRlcmVuIG9wIG5hYW0nOwokbGFuZ1snaGVscF9maWVsZF9oZWlnaHQnXSA9ICdEZSBob29ndGUgdmFuIGhldCBtdWx0aXNlbGVjdCB2ZWxkJzsKJGxhbmdbJ3RpdGxlX25hbWVfcmVnZXgnXSA9ICdDYXRhbG9nZXIgSXRlbSBOYWFtIFJlZ3VsaWVyZSBFeHByZXNzaWUnOwokbGFuZ1sndGl0bGVfZmllbGRfaGVpZ2h0J10gPSAnVmVsZCBob29ndGUnOwokbGFuZ1sndGl0bGVfZmlsZV9wYXRoJ10gPSAnQmVzdGVtbWluZ3NtYXAgdm9vciB1aXR2b2VyYmVzdGFuZGVuJzsKJGxhbmdbJ3RpdGxlX3VkdF9uYW1lJ10gPSAnR2VicnVpa2VyZ2VkZWZpbmVlcmRlIHRhZyAoVURUKSc7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2Rlc3RwYWdlJ10gPSAnUGFnaW5hIG9tIG5hYXIgdGVydWcgdGUga2VyZW4gbWV0IHVwbG9hZHMgbGluayc7CiRsYW5nWyd0aXRsZV91cGxvYWRtb2R1bGVfc3VtbWFyeSddID0gJ1ZlcnpvbmRlbiBtZXQgRm9ybSBCdWlsZGVyJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZHNfY2F0ZWdvcnknXSA9ICdVcGxvYWRzLWNhdGVnb3JpZSc7CiRsYW5nWyd0aXRsZV9zZW5kdG9fdXBsb2FkcyddID0gJ1N0dXVyIGRpdCBiZXN0YW5kIG5hYXIgZGUgdXBsb2FkLW1vZHVsZSc7CiRsYW5nWyd0aXRsZV9sZWdlbmQnXSA9ICdMZWdlbmRhJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fbGVuZ3RoJ10gPSAnTWF4aW11bSBsZW5ndGUnOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfbGFiZWwnXSA9ICdTZWxlY3RpZXZha2xhYmVsJzsKJGxhbmdbJ3RpdGxlX3JhZGlvX2xhYmVsJ10gPSAnU2VsZWN0aWVyb25kamVsYWJlbCc7CiRsYW5nWyd0aXRsZV9jaGVja2VkX3ZhbHVlJ10gPSAnV2FhcmRlIGluZGllbiBnZXNlbGVjdGVlcmQnOwokbGFuZ1sndGl0bGVfdW5jaGVja2VkX3ZhbHVlJ10gPSAnV2FhcmRlIGluZGllbiBuaWV0IGdlc2VsZWN0ZWVyZCc7CiRsYW5nWyd0aXRsZV9jaGVja2JveF9kZXRhaWxzJ10gPSAnU2VsZWN0aWV2YWstZ3JvZXBkZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX2RlbGV0ZSddID0gJ1ZlcndpamRlcmVuPyc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rfb25lX21lc3NhZ2UnXSA9ICcmcXVvdDtTZWxlY3RlZXIgJmVhY3V0ZTsmZWFjdXRlO24mcXVvdDsgdGVrc3Q6JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl92YWx1ZSddID0gJ1NlbGVjdGlld2FhcmRlJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl9kaXNwbGF5bmFtZSddID0gJ1NlbGVjdGlld2VlcmdhdmVuYWFtJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl9zdWJqZWN0J10gPSAnU2VsZWN0aWVvbmRlcndlcnAnOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfY291bnRyeSddID0gJ1N0YW5kYWFyZHNlbGVjdGllJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X3N0YXRlJ10gPSAnU3RhbmRhYXJkc2VsZWN0aWUnOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfcHJvdmluY2UnXSA9ICdTdGFuZGFhcmRzZWxlY3RpZSc7CiRsYW5nWyd0aXRsZV9vcHRpb25fbmFtZSddID0gJ09wdGllbmFhbSc7CiRsYW5nWyd0aXRsZV9vcHRpb25fdmFsdWUnXSA9ICdWZXJzdHV1cmRlIHdhYXJkZSc7CiRsYW5nWyd0aXRsZV9wdWxsZG93bl9kZXRhaWxzJ10gPSAnS2V1emVsaWpzdG9wdGllcyc7CiRsYW5nWyd0aXRsZV9tdWx0aXNlbGVjdF9kZXRhaWxzJ10gPSAnTWVlcmtldXplb3B0aWVzJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2FkZHJlc3MnXSA9ICdCZXN0ZW1taW5ncyBlLW1haWxhZHJlcyc7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9maWxlbmFtZSddID0gJ0Jlc3RlbW1pbmdzYmVzdGFuZHNuYWFtJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fbmFtZSddID0gJyZxdW90O1ZhbiBOYWFtJnF1b3Q7IHZvb3IgZS1tYWlsJzsKJGxhbmdbJ3RpdGxlX3JlbGF4ZWRfZW1haWxfcmVnZXgnXSA9ICdHZWJydWlrIGVlbnZvdWRpZ2UgZS1tYWlsdmFsaWRhdGllJzsKJGxhbmdbJ3RpdGxlX3JlbGF4ZWRfcmVnZXhfbG9uZyddID0gJ0dlYnJ1aWsgZWVudm91ZGlnZSBlLW1haWx2YWxpZGF0aWUgKHN0YSBiaWp2b29yYmVlbGQgJnF1b3Q7eEB5JnF1b3Q7IHRvZSBpLnAudi4gJnF1b3Q7eEB5LnRsZCZxdW90OyknOwokbGFuZ1sndGl0bGVfZW1haWxfZnJvbV9hZGRyZXNzJ10gPSAnJnF1b3Q7VmFuIGFkcmVzJnF1b3Q7IHZvb3IgZS1tYWlsJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2VuY29kaW5nJ10gPSAnRS1tYWlsIGthcmFrdGVyc2V0IGVuY29kZXJpbmcnOwokbGFuZ1sndGl0bGVfZGlyZWN0b3JfZGV0YWlscyddID0gJ0tldXplbGlqc3RnZWJhc2VlcmRlIGUtbWFpbGRldGFpbHMnOwokbGFuZ1sndGl0bGVfZmlsZV9uYW1lJ10gPSAnQmVzdGFuZHNuYWFtJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX3N1YmplY3QnXSA9ICdFLW1haWwgb25kZXJ3ZXJwcmVnZWwnOwokbGFuZ1sndGl0bGVfZm9ybV9uYW1lJ10gPSAnRm9ybXVsaWVybmFhbSc7CiRsYW5nWyd0aXRsZV9mb3JtX3N0YXR1cyddID0gJ0Zvcm11bGllcnN0YXR1cyc7CiRsYW5nWyd0aXRsZV9yZWFkeV9mb3JfZGVwbG95bWVudCddID0gJ0dlcmVlZCB2b29yIGdlYnJ1aWsnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MSddID0gJ05pZXQgZ2VyZWVkJzsKJGxhbmdbJ3RpdGxlX3JlZGlyZWN0X3BhZ2UnXSA9ICdQYWdpbmEgb20gdGUgdG9uZW4gbmEgdmVyemVuZGluZyB2YW4gaGV0IGZvcm11bGllcic7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkyJ10gPSAnVm9lZyBlZW4gdmVsZCB0b2Ugem9kYXQgZGUgaW52b2VyIHZhbiBkZSBnZWJydWlrZXIgdmVyd2Vya3Qga2FuIHdvcmRlbi4gVSBrdW50JzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeV9saW5rJ10gPSAnZGV6ZSBzbmVsa29wcGVsaW5nIGdlYnJ1aWtlbic7CiRsYW5nWyd0aXRsZV9mb3JtX2FsaWFzJ10gPSAnRm9ybXVsaWVyYWxpYXMnOwokbGFuZ1sndGl0bGVfZmllbGRfYWxpYXNfc2hvcnQnXSA9ICdBbGlhcyAnOwokbGFuZ1sndGl0bGVfZm9ybV9maWVsZHMnXSA9ICdGb3JtdWxpZXJ2ZWxkZW4nOwokbGFuZ1sndGl0bGVfZmllbGRfaWQnXSA9ICdWZWxkLUlkJzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRhbGlhc2VzJ10gPSAnVG9vbiB2ZWxkLWFsaWFzc2VuJzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRhbGlhc2VzX2xvbmcnXSA9ICdEZXplIHNlbGVjdGVyZW4gem9yZ3Qgdm9vciBoZXQgdG9uZW4gdmFuIHZlbGQtYWxpYXNzZW4gdGlqZGVucyB0b2V2b2VnZW4gb2Ygd2lqemlnZW4gdmFuIGVlbiBmb3JtdWxpZXInOwokbGFuZ1sndGl0bGVfZmllbGRfbmFtZSddID0gJ1ZlbGRuYWFtJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2FsaWFzJ10gPSAnVmVsZC1hbGlhcyc7CiRsYW5nWyd0aXRsZV9yYWRpb2dyb3VwX2RldGFpbHMnXSA9ICdTZWxlY3RpZXJvbmRqZS1ncm9lcHNkZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3R5cGUnXSA9ICdWZWxkdHlwZSc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkzJ10gPSAnb20gZWVuIGZvcm11bGllcnZlcndlcmtpbmdzdmVsZCB0ZSBtYWtlbi4nOwokbGFuZ1sndGl0bGVfYWRkX25ld19mb3JtJ10gPSAnTmlldXcgZm9ybXVsaWVyIHRvZXZvZWdlbic7CiRsYW5nWyd0aXRsZV9zaG93X3ZlcnNpb24nXSA9ICdGb3JtQnVpbGRlciB2ZXJzaWUgdG9uZW4/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbl9sb25nJ10gPSAnRGl0IHZvZWd0IGhldCB2ZXJzaWVudW1tZXIgdmFuIGRlIGdlJml1bWw7bnN0YWxsZWVyZGUgRm9ybUJ1aWxkZXItbW9kdWxlIGFscyBjb21tZW50YWFyIHRvZSwgb20gdGUgaGVscGVuIGJpaiBkZWJ1Z2dlbi4nOwokbGFuZ1sndGl0bGVfYWRkX25ld19maWVsZCddID0gJ05pZXV3IHZlbGQgdG9ldm9lZ2VuJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fc3VibWl0X2J1dHRvbiddID0gJ0Zvcm11bGllcnZlcnplbmRrbm9wdGVrc3QnOwokbGFuZ1sndGl0bGVfYnV0dG9uX3RleHQnXSA9ICdUb2V0cyB0ZWtzdCc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eSddID0gJ0phdmFzY3JpcHQgYWFuIHZlcnplbmRrbm9wIHRvZXZvZWdlbiBvbSBtZWVyZGVyZSB2ZXJ6ZW5kaW5nZW4gdGUgdm9vcmtvbWVuPyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eV9oZWxwJ10gPSAnVmVpbGlnaGVpZHNzY3JpcHQgdG9ldm9lZ2VuJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmV4dF9idXR0b24nXSA9ICdGb3JtdWxpZXIgJnF1b3Q7Vm9sZ2VuZGUmcXVvdDsga25vcHRla3N0IChnZWJydWlrdCBiaWogZm9ybXVsaWVyZW4gdmFuIG1lZXJkZXJlIHBhZ2luYSYjMDM5O3MpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcHJldl9idXR0b24nXSA9ICdGb3JtdWxpZXIgJnF1b3Q7Vm9yaWdlJnF1b3Q7IGtub3B0ZWtzdCAoZ2VicnVpa3QgYmlqIGZvcm11bGllcmVuIHZhbiBtZWVyZGVyZSBwYWdpbmEmIzAzOTtzKSc7CiRsYW5nWyd0aXRsZV9maWVsZF92YWxpZGF0aW9uJ10gPSAnVmVsZHZhbGlkYXRpZSc7CiRsYW5nWyd0aXRsZV9maWVsZF90b192YWxpZGF0ZSddID0gJ1ZlbGQgb20gdGUgdmFsaWRlcmVuJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2Nzc19pZCddID0gJ0NTUyBpZCB2b29yIGRpdCB2ZWxkJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fY3NzX2NsYXNzJ10gPSAnQ1NTLWtsYXNzZSB2b29yIGRpdCBmb3JtdWxpZXInOwokbGFuZ1sndGl0bGVfZmllbGRfY3NzX2NsYXNzJ10gPSAnQ1NTLWtsYXNzZSB2b29yIGRpdCB2ZWxkJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcHJlZGlzcGxheV91ZHQnXSA9ICdFZW4gdGFnIGRpZSB3b3JkdCBhYW5nZXJvZXBlbiB2b29yZGF0IGhldCBmb3JtdWxpZXIgemljaHRiYWFyIHdvcmR0JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcHJlZGlzcGxheV9lYWNoX3VkdCddID0gJ0VlbiB0YWcgZGllIHdvcmR0IGFhbmdlcm9lcGVuIHZvb3JkYXQgaGV0IGZvcm11bGllciB3b3JkdCBnZXRvb25kICh3b3JkdCBhYW5nZXJvZXBlbiBvcCBlbGtlIHBhZ2luYSB2YW4gZWVuIG11bHRpcGFnZSBmb3JtdWxpZXIpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdmFsaWRhdGVfdWR0J10gPSAnQWFuIHRlIHJvZXBlbiB0YWcgdGlqZGVucyBmb3JtdWxpZXIgdmFsaWRhdGllJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcmVxdWlyZWRfc3ltYm9sJ10gPSAnU3ltYm9vbCBvbSB2ZXJlaXN0ZSB2ZWxkZW4gdGUgbWFya2VyZW4nOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWQnXSA9ICdWZXJlaXN0JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2xvbmcnXSA9ICdWZXJlaXN0IGVlbiBhbnR3b29yZCB2b29yIGRpdCB2ZWxkJzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWwnXSA9ICdWZXJiZXJnIExhYmVsJzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWxfbG9uZyddID0gJ1ZlcmJlcmcgdmVsZG5hYW0gb3AgZm9ybXVsaWVyJzsKJGxhbmdbJ3RpdGxlX3RleHRhcmVhX2xlbmd0aCddID0gJ01heGltYWxlIGxlbmd0ZSB2YW4gZGUgdmVsZGluaG91ZCAoMCBvZiBsZWVnIGJldGVrZW50IGdlZW4gbGltaWV0KSc7CiRsYW5nWyd0aXRsZV90ZXh0J10gPSAnU3RhdGlzY2hlIHRla3N0IG9tIHdlZXIgdGUgZ2V2ZW4nOwokbGFuZ1sndGl0bGVfZmllbGRfcmVnZXgnXSA9ICdWYWxpZGF0aWUgUmVnZXgnOwokbGFuZ1sndGl0bGVfbGluZXNfdG9fc2hvdyddID0gJ0FhbnRhbCB3ZWVyZ2VnZXZlbiByZWdlbHMnOwokbGFuZ1sndGl0bGVfcmVhZF9vbmx5J10gPSAnQWxsZWVuIGxlemVuJzsKJGxhbmdbJ25vX2RlZmF1bHQnXSA9ICdHZWVuIHN0YW5kYWFyZCc7CiRsYW5nWydyZWRpcmVjdF9hZnRlcl9hcHByb3ZhbCddID0gJ1Rvb24gZGV6ZSBwYWdpbmEgbmEgZ29lZGtldXJpbmcnOwokbGFuZ1sndGl0bGVfcmVnZXhfaGVscCddID0gJ0RlemUgcmVndWxpZXJlIGV4cHJlc3NpZSB6YWwgYWxsZWVuIGdlYnJ1aWt0IHdvcmRlbiBhbHMgJnF1b3Q7dmFsaWRhdGlldHlwZSZxdW90OyBpbmdlc3RlbGQgaXMgb3AgZWVuIHJlZ2V4LWdlcmVsYXRlZXJkZSBvcHRpZS4gQmV2YXQgZWVuIHZvbGxlZGlnZSBQZXJsLWFjaHRpZ2UgcmVnZXgsIGluY2x1c2llZiBkZSBzdGFydC9zdG9wIHNsYXNoZXMgZW4gdmxhZ2dlbiAoYi52LiwgJnF1b3Q7L2ltYWdlXC4oXGQrKS9pJnF1b3Q7KSc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9hYmJyZXYnXSA9ICdWZXJwbGljaHQnOwokbGFuZ1sndGl0bGVfaGlkZV9lcnJvcnMnXSA9ICdWZXJiZXJnIEZvdXRlbic7CiRsYW5nWyd0aXRsZV9mb3JtX2Rpc3BsYXl0eXBlJ10gPSAnRm9ybXVsaWVyd2VlcmdhdmV0eXBlJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzX2xvbmcnXSA9ICdWb29ya29tIGRlYnVnLSAvIGZvdXRtZWxkaW5nZW4gdm9vciBnZWJydWlrZXJzLic7CiRsYW5nWyd0aXRsZV9lbWFpbF90ZW1wbGF0ZSddID0gJ0UtbWFpbHNqYWJsb29uJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZSddID0gJ01heGltYWxlIHVwbG9hZCBiZXN0YW5kc2dyb290dGUgKGtpbG9ieXRlcyknOwokbGFuZ1sndGl0bGVfbWF4aW11bV9zaXplX2xvbmcnXSA9ICdEZXplIGJlZ3JlbnppbmcgaXMgZWVuIHRvZXZvZWdpbmcgb3AgZGUgYmVncmVuemluZ2VuIGRpZSB6aWpuIGluZ2VzdGVsZCBpbiBkZSBQSFAtIG9mIHdlYnNlcnZlcmNvbmZpZ3VyYXRpZS4nOwokbGFuZ1sndGl0bGVfZmlsZV9kZXN0aW5hdGlvbiddID0gJ1NlcnZlcm1hcCBvbSBiZXN0YW5kZW4gaW4gb3AgdGUgc2xhYW4nOwokbGFuZ1sndGl0bGVfcGVybWl0dGVkX2V4dGVuc2lvbnMnXSA9ICdUb2VnZXN0YW5lIGV4dGVuc2llcyc7CiRsYW5nWyd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9uc19sb25nJ10gPSAnVm9lciBlZW4ga29tbWEgZ2VzY2hlaWRlbiBsaWpzdCBpbiwgem9uZGVyIGRlIHB1bnQgKGIudi4sICZxdW90O2pwZyxnaWYsanBlZyZxdW90OykuIFNwYXRpZXMgd29yZGVuIG92ZXJnZXNsYWdlbi4gTGVlZyBsYXRlbiBiZXRla2VudCBkYXQgZXIgZ2VlbiBiZXBlcmtpbmdlbiB6aWpuLic7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zJ10gPSAnQmVwZXJraW5nZW4gd2VlcmdldmVuPyc7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zX2xvbmcnXSA9ICdHcm9vdHRlLSBlbiBleHRlbnNpZWJlcGVya2luZ2VuIHRvbmVuIGJpaiBoZXQgdXBsb2FkIHZlbGQ/JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdGVtcGxhdGUnXSA9ICdTamFibG9vbiB2b29yIHdlZXJnYXZlZm9ybXVsaWVyJzsKJGxhbmdbJ3RpdGxlX3BhZ2VfeF9vZl95J10gPSAnUGFnaW5hICVzIHZhbiAlcyc7CiRsYW5nWyd0aXRsZV9ub19hZHZhbmNlZF9vcHRpb25zJ10gPSAnVmVsZCBoZWVmdCBnZWVuIGdlYXZhbmNlZXJkZSBvcHRpZXMuJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdW5zcGVjaWZpZWQnXSA9ICdHZXRvb25kZSB0ZWtzdCBiaWogb25nZXNwZWNpZmljZWVyZGUgdmVsZHdhYXJkZW4nOwokbGFuZ1sndGl0bGVfZW5hYmxlX2Zhc3RhZGRfbG9uZyddID0gJ1NuZWwtdmVsZC10b2V2b2VnZW4gdWl0a2xhcG1lbnUgaW5zY2hha2VsZW4gdm9vciBmb3JtdWxpZXJlbj8nOwokbGFuZ1sndGl0bGVfZW5hYmxlX2Zhc3RhZGQnXSA9ICdTbmVsLXZlbGQtdG9ldm9lZ2VuIHVpdGtsYXBtZW51IGluc2NoYWtlbGVuPyc7CiRsYW5nWyd0aXRsZV9mYXN0YWRkJ10gPSAnU25lbC12ZWxkLXRvZXZvZWdlcic7CiRsYW5nWyd0aXRsZV9lbmFibGVfYW50aXNwYW1fbG9uZyddID0gJ0RpdCBhYW5rbGlra2VuIHphbCBzbGVjaHRzIDEwIGUtbWFpbHMgdG9lc3RhYW4gdmFudWl0IGVlbiBnZWdldmVucyBJUC1hZHJlcyAocGVyIHV1cikuJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9hbnRpc3BhbSddID0gJ1ByaW1pdGlldmUgYW50aS1zcGFtIGZ1bmN0aW9uYWxpdGVpdCBpbnNjaGFrZWxlbj8nOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGlkcyddID0gJ1Rvb24gdmVsZC1pZCYjMDM5O3MnOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGlkc19sb25nJ10gPSAnRGl0IGFhbmtsaWtrZW4gbWFha3QgaGV0IHRvbmVuIHZhbiB2ZWxkLWlkJiMwMzk7cyBtb2dlbGlqayB0aWpkZW5zIHRvZXZvZWdlbiBlbiB3aWp6aWdlbiB2YW4gZWVuIGZvcm11bGllcic7CiRsYW5nWyd0aXRsZV94bWxfdG9fdXBsb2FkJ10gPSAnVXBsb2FkIGZvcm11bGllciB2YW51aXQgZWVuIFhNTC1iZXN0YW5kJzsKJGxhbmdbJ3RpdGxlX3htbF91cGxvYWRfZm9ybW5hbWUnXSA9ICdHZWJydWlrIGRlemUgZm9ybXVsaWVybmFhbSc7CiRsYW5nWyd0aXRsZV9pbXBvcnRfbGVnZW5kJ10gPSAnWE1MLWZvcm11bGllcmltcG9ydCc7CiRsYW5nWyd0aXRsZV94bWxfdXBsb2FkX2Zvcm1hbGlhcyddID0gJ0dlYnJ1aWsgZGV6ZSBmb3JtdWxpZXJhbGlhcyc7CiRsYW5nWyd0aXRsZV9odG1sX2VtYWlsJ10gPSAnR2VuZXJlZXIgSFRNTCBlLW1haWw/JzsKJGxhbmdbJ3RpdGxlX2xpbmtfYXV0b3BvcHVsYXRlJ10gPSAnQXV0b21hdGlzY2ggbGFkZW4/JzsKJGxhbmdbJ3RpdGxlX2xpbmtfYXV0b3BvcHVsYXRlX2hlbHAnXSA9ICdBdXRvbWF0aXNjaCBsYWRlbiBtZXQgZGUgVVJMIHZhbiBkZSBwYWdpbmEgbWV0IGhldCBmb3JtdWxpZXI/IChkaXQgb3ZlcnNjaHJpamZ0IGRlIHBhZ2luYWxpbmstb3B0aWUgaGllcm9uZGVyKSc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2xpbmsnXSA9ICdTdGFuZGFhcmQgbGluayBVUkwnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9saW5rX3RpdGxlJ10gPSAnU3RhbmRhYXJkIGxpbmsgdGVrc3QnOwokbGFuZ1sndGl0bGVfbGlua190b19zaXRlcGFnZSddID0gJ0xpbmsgbmFhciBkZSBzaXRlcGFnaW5hJzsKJGxhbmdbJ3RpdGxlX2NhcHRjaGFfbm90X2luc3RhbGxlZCddID0gJ1Uga3VudCBnZWJydWlrIG1ha2VuIHZhbiA8YSBocmVmPSJodHRwOi8vbmwud2lraXBlZGlhLm9yZy93aWtpL0NhcHRjaGEiIHRhcmdldD0iX25ldyI+JnF1b3Q7Q2FwdGNoYSZxdW90OzwvYT4gb20gdmVyemVuZGluZ2VuIHRlIGJldmVpbGlnZW4gZG9vciBkZSBDYXB0Y2hhLW1vZHVsZSB0ZSBpbnN0YWxsZXJlbi4gVm9vciBtZWVyIGluZm9ybWF0aWUsIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvY2FwdGNoYS8iPnppZSBoZXQgQ2FwdGNoYS1wcm9qZWN0PC9hPi4nOwokbGFuZ1sndGl0bGVfdXNlX2NhcHRjaGEnXSA9ICdDYXB0Y2hhIGdlYnJ1aWtlbiBvbSBkZSBmb3JtdWxpZXJ2ZXJ6ZW5kaW5nZW4gdGUgYmVzY2hlcm1lbj8nOwokbGFuZ1sndGl0bGVfdXNlX2NhcHRjaGFfaGVscCddID0gJ1ZpbmsgYWFuIG9tIHV3IGZvcm11bGllciB0ZSBiZXNjaGVybWVuIG1ldCBlZW4gPGEgaHJlZj0iaHR0cDovL25sLndpa2lwZWRpYS5vcmcvd2lraS9DYXB0Y2hhIiB0YXJnZXQ9Il9uZXciPiZxdW90O0NhcHRjaGEmcXVvdDs8L2E+Lic7CiRsYW5nWyd0aXRsZV91c2VyX2NhcHRjaGEnXSA9ICdCZXZlc3RpZyBkYXQgdSBnZWVuIHNjcmlwdCBiZW50IGRvb3IgZGUga2FyYWt0ZXJzIGluIGhldCBwbGFhdGplIGluIHRlIHZvZXJlbi4nOwokbGFuZ1sndGl0bGVfdXNlcl9jYXB0Y2hhX2Vycm9yJ10gPSAnVmVya2VlcmRlIHRla3N0IHZvb3IgQ2FwdGNoYSc7CiRsYW5nWyd3cm9uZ19jYXB0Y2hhJ10gPSAnQ2FwdGNoYSB3YXMgbmlldCBnb2VkLic7CiRsYW5nWyd0aXRsZV90aXRsZV91c2VyX2NhcHRjaGEnXSA9ICdIdWxwdGVrc3Qgdm9vciBDYXB0Y2hhJzsKJGxhbmdbJ3RpdGxlX2RvbnRfc3VibWl0X3VuY2hlY2tlZCddID0gJ1ZlcnN0dXVyIGdlZW4gd2FhcmRlcyB2b29yIG5pZXQtZ2VzZWxlY3RlZXJkZSB2ZWxkZW4nOwokbGFuZ1sndGl0bGVfZG9udF9zdWJtaXRfdW5jaGVja2VkX2hlbHAnXSA9ICdTZWxlY3RlZXIgZGV6ZSBhbHMgZW5rZWwgd2FhcmRlcyB2ZXJzdHV1cmQgbW9ldGVuIHdvcmRlbiB2b29yIGdlc2VsZWN0ZWVyZGUgdmVsZGVuJzsKJGxhbmdbJ2xpbmtfbGFiZWwnXSA9ICdMaW5rbGFiZWwnOwokbGFuZ1snbGlua19kZXN0aW5hdGlvbiddID0gJ0xpbmsgZG9lbCBVUkwnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9zZXQnXSA9ICdTdGFuZGFhcmQgZ2VzZWxlY3RlZXJkPyc7CiRsYW5nWyd0aXRsZV8yNF9ob3VyJ10gPSAnR2VicnVpayAyNC11dXJzIHRpamQ/JzsKJGxhbmdbJ3RpdGxlX2JlZm9yZV9ub29uJ10gPSAnQU0gJzsKJGxhbmdbJ3RpdGxlX2FmdGVyX25vb24nXSA9ICdQTSAnOwokbGFuZ1sndGl0bGVfc21hcnR5X2V2YWwnXSA9ICdWb2VyIHNtYXJ0eSB0YWdzIHVpdCBpbiBoZXQgdmVsZD8nOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfcm93cyddID0gJ1JpamVuIChsZXQgb3A6IGRpdCBrYW4gd29yZGVuIG92ZXJzY2hyZXZlbiBkb29yIENTUyknOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfY29scyddID0gJ0tvbG9tbWVuIChsZXQgb3A6IGRpdCBrYW4gd29yZGVuIG92ZXJzY2hyZXZlbiBkb29yIENTUyknOwokbGFuZ1sndGl0bGVfZm9ybV9tYWluJ10gPSAnSG9vZmRmb3JtdWxpZXJkZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfYmxhbmsnXSA9ICdTdGFuZGFhcmQgbmFhciBsZWVnJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfYmxhbmtfaGVscCddID0gJ1N0YW5kYWFyZCBuYWFyIGxlZWcgKFZpbmtqZSB3ZWdoYWxlbiBvbSBzdGFuZGFhcmQgZGUgaHVpZGlnZSBkYXR1bSB0ZSBrcmlqZ2VuKSc7CiRsYW5nWyd0aXRsZV9zaG93X3VzZXJuYW1lJ10gPSAnVG9vbiB6b3dlbCBkZSBsb2dpbi1uYWFtIGFscyBkZSB2b29yLSBlbiBhY2h0ZXJuYWFtPyc7CiRsYW5nWyd0aXRsZV9zaG93X3VzZXJmaXJzdG5hbWUnXSA9ICdUb29uIGdlYnJ1aWtlcnMgdm9vcm5hYW0/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcmxhc3RuYW1lJ10gPSAnVG9vbiBnZWJydWlrZXJzIGFjaHRlcm5hYW0/JzsKJGxhbmdbJ3RpdGxlX3Jlc3RyaWN0X3RvX2dyb3VwJ10gPSAnQmVwZXJrIGdlYnJ1aWtlcnNsaWpzdCB0b3QgZ2VicnVpa2VycyBpbiBzcGVjaWZpZWtlIGdyb2VwJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRfZGF0YWJhc2VfZGF0YSddID0gJ0VuY3J5cHQgZGF0YSBvcGdlc2xhZ2VuIGluIGRhdGFiYXNlJzsKJGxhbmdbJ3RpdGxlX2NyeXB0X2NlcnQnXSA9ICdDZXJ0aWZpY2FhdCB2b29yIGRhdGEgZW5jcnlwdGllJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRpb25fa2V5ZmlsZSddID0gJ0tleSBCZXN0YW5kIHZvb3IgZW5jcnlwdGllJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRfc29ydGZpZWxkcyddID0gJ0hhc2ggc29ydCBmaWVsZHM/JzsKJGxhbmdbJ3RpdGxlX3ByaXZhdGVfa2V5J10gPSAnR2VoZWltZSBzbGV1dGVsIHZvb3IgZGF0YSBlbmNyeXB0aWUnOwokbGFuZ1sndGl0bGVfZW5jcnlwdF9zb3J0ZmllbGRzX2hlbHAnXSA9ICdUaGlzIGhhc2hlcyB0aGUgc29ydCBmaWVsZHMsIGJ1dCBsZWF2ZXMgdGhlIGZpcnN0IGZldyBsZXR0ZXJzIHVuZW5jcnlwdGVkLiBDcnlwdG9ncmFwaGljYWxseSwgdGhpcyBjcmVhdGVzIGEgdnVsbmVyYWJpbGl0eSwgYnV0IGZvciBtb3N0IHVzZXJzIGl0IGlzIGFuIGFjY2VwdGFibGUgdHJhZGVvZmYgYmV0d2VlbiBzZWN1cml0eSBhbmQgdGhlIGFiaWxpdHkgdG8gc29ydCByZWNvcmRzLiBTb3J0aW5nIGJlY29tZXMgYXBwcm94aW1hdGUsIGJ1dCB3aWxsIHJlbWFpbiBwcmV0dHkgZ29vZC4gSWYgeW91IGRvIG5vdCB1c2UgdGhpcyBvcHRpb24sIHNvcnQgZmllbGRzIGFyZSBzdG9yZWQgaW4gcGxhaW50ZXh0Lic7CiRsYW5nWyd0aXRsZV9lbmNyeXB0aW9uX2Z1bmN0aW9ucyddID0gJ0JldmVpbGlnZGUgZGF0YW9wc2xhZyBuaWV0IGJlc2NoaWtiYWFyJzsKJGxhbmdbJ3RpdGxlX2luc3RhbGxfY3J5cHRvJ10gPSAnSW5zdGFsbGVlciBkZSBPcGVuU1NMIG1vZHVsZSBvZiBtY3J5cHQgc3VwcG9ydCBhbHMgdSBkZSBkYXRhYmFzZSBlbmNyeXB0aWUgd2lsdCBpbnNjaGFrZWxlbi4nOwokbGFuZ1sndGl0bGVfaW5zdGFsbF9jdXJsJ10gPSAnQWxzdHVibGllZnQgY29udHJvbGVlciBvZiB1IENVUkwgc3VwcG9ydCBhY3RpZWYgaXMgaW4gdXcgUEhQIGluc3RhbGxhdGllLiBMZWVzIGh0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vYm9vay5jdXJsLnBocCc7CiRsYW5nWyd0aXRsZV9tbGVfdmVyc2lvbiddID0gJ1VpdHZvZXJlbiBpbiBkZSBNTEUgTW9kdXMnOwokbGFuZ1sndGl0bGVfbWxlX3ZlcnNpb25fbG9uZyddID0gJ1dpanppZy9zdXBwb3J0IHZvb3IgQ01TTVMgTXVsdGktTGFuZ3VhZ2UgRWRpdGllLiBHZWJydWlrIGRlemUgb3B0aWUgbmlldCBpbiBkZSBnYW5nYmFyZSBjbXNtcyB2ZXJzaWUuJzsKJGxhbmdbJ3RpdGxlX2Vuc3VyZV9jZXJ0X2tleV9tYXRjaCddID0gJ1pvcmcgZXJ2b29yIGRhdCB1dyBnZWhlaW1lIHNsZXV0ZWwgZ2VzY2hpa3QgaXMgdm9vciBoZXQgY2VydGlmaWNhYXQgZGF0IHUgZ2VicnVpa3Qgdm9vciBlbmNyeXB0aWUhJzsKJGxhbmdbJ2Nob29zZV9jcnlwdCddID0gJ0VuY3J5cHRpZSBCaWJsaW90aGVlayc7CiRsYW5nWyd0aXRsZV9lbmNyeXB0X2RhdGFiYXNlX2xvbmcnXSA9ICdWaW5rIGRpdCBhYW4gYWxzIHUgZGUgb3BnZXNsYWdlbiBkYXRhIHdpbHQgZW5jcnlwdGVuLiBEaXQgbWFha3QgaGV0IG1vZWlsaWprZXIgKG1hYXIgbmlldCBvbm1vZ2VsaWprKSB2b29yIGhhY2tlcnMgb20gZGUgaW5mb3JtYXRpZSB0ZSBiZWtpamtlbi4nOwokbGFuZ1snY2hvb3NlX2NyeXB0X2xvbmcnXSA9ICdEZSBvbmRlcnN0YWFuZGUgb3B0aWVzIHppam4gYWxsZWVuIHZhbiB0b2VwYXNzaW5nIGFscyB1IE9wZW5TU0wgRW5jcnlwdGllIEJpYmxpb3RoZWVrIGdlYnJ1aWt0JzsKJGxhbmdbJ3RpdGxlX2NyeXB0X2xpYiddID0gJ0VuY3J5cHRpZSBCaWJsaW90aGVlayc7CiRsYW5nWydvcGVuc3NsJ10gPSAnT3BlblNTTCBCaWJsaW90aGVlayc7CiRsYW5nWydtY3J5cHQnXSA9ICdQSFAgbWNyeXB0IEJpYmxpb3RoZWVrJzsKJGxhbmdbJ3RpdGxlX2ZldV9iaW5kaW5nJ10gPSAnRnJvbnRlbmQgVXNlciB2ZXJiaW5kaW5nJzsKJGxhbmdbJ3RpdGxlX2luc3RhbGxfZmV1J10gPSAnSW5zdGFsbGVlciBkZSBGcm9udEVuZFVzZXIgbW9kdWxlIG9tIGhldCBmb3JtdWxpZXIsIG1ldCBiaWpiZWhvcmVuZGUgZGF0YSB0ZSB2ZXJiaW5kZW4gbWV0IGVlbiBzcGVjaWZpZWtlIGdlYnJ1aWtlcic7CiRsYW5nWyd0aXRsZV9mZXVfYmluZF9oZWxwJ10gPSAnQ2hlY2sgdGhpcyB0byBsb2NrIGZyb250LWVuZCBhY2Nlc3MgdG8gdGhpcyBmb3JtJiMwMzk7cyBkYXRhIHRvIHRoZSBsb2dnZWQtaW4gZnJvbnQtZW5kIHVzZXIuJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRpb24nXSA9ICdFbmNyeXB0aWUnOwokbGFuZ1sndGl0bGVfZXhwb3J0X2Zvcm1fdG9fdWR0J10gPSAnRXhwb3J0ZWVyIGZvcm11bGllciByZWZlcmVudGllIG5hYXIgZWVuIFVEVCBhbHMgJHBhcmFtc1smIzAzOTtGT1JNJiMwMzk7XT8nOwokbGFuZ1sndGl0bGVfdXJsX2hlbHAnXSA9ICdHZWhlbGUgVVJMLCBpbmNsdXNpZWYgcHJvdG9jb2wgZW4gcGFkIChlLmcuLCBodHRwOi8vbXlob3N0LmNvbS9mb3JtX2hhbmRsZXIuY2dpKSc7CiRsYW5nWyd0aXRsZV91cmwnXSA9ICdGb3JtdWxpZXIgdmVyemVuZCB1cmwnOwokbGFuZ1sndGl0bGVfbWV0aG9kJ10gPSAnRm9ybXVsaWVyIG1ldGhvZGUnOwokbGFuZ1sndGl0bGVfbWFwc190byddID0gJ01hcCBmaWVsZCAmcXVvdDslcyZxdW90OyB0byBmb3JtIHN1Ym1pc3Npb24gdmFyaWFibGUnOwokbGFuZ1sndGl0bGVfYWRkaXRpb25hbCddID0gJ0JpamtvbWVuZGUgYWFudnJhYWcnOwokbGFuZ1sndGl0bGVfYWRkaXRpb25hbF9oZWxwJ10gPSAnQW55dGhpbmcgdG8gYmUgYXBwZW5kZWQgdG8gdGhlIHN1Ym1pc3Npb24gcGF5bG9hZCwgaW4gVVJMLWVuY29kZWQgZm9ybSAoLmUuZywgJnF1b3Q7dXNlcj1zdGV2ZStqb2JzJmFtcDtlbXBsb3llZV9udW1iZXI9MSknOwokbGFuZ1sndGl0bGVfaW5jbHVkZV9pbl9zdWJtaXNzaW9uJ10gPSAnR2VicnVpayB2ZWxkIHRpamRlbnMgaGV0IHZlcnN0dXJlbic7CiRsYW5nWyd0aXRsZV9kYXRlX29yZGVyJ10gPSAnRGF0ZSBjb21wb25lbnQgZmllbGQgb3JkZXIgKGZvciBpbnB1dCknOwokbGFuZ1sndGl0bGVfZGF0YV9zdG9yZWRfaW5fZmJyJ10gPSAnRGF0YSB3b3JkdCBvcGdlc2xhZ2VuIGluIGVlbiBYTUwgZm9ybWF0IGluIGRlIFtQUkVGSVhdX21vZHVsZV9mYl9mcm9tYnJvd3NlciBkYXRhYmFzZSB0YWJlbC4nOwokbGFuZ1snZXJyb3JfaGFzX25vX2ZiX2ZpZWxkJ10gPSAnRm91dCEgT2YgaGV0IGZvcm11bGllciBoZWVmdCBnZWVuIGZvcm1fYnVpbGRlciBkaXNwb3NpdGllLCBvZiBoZXQgaXMgbWlzbHVrdCB0ZSBpbnN0YW50aWVyZW4gKGFscyBnZXZvbGcgdmFuIGdlaGV1Z2VucHJvYmxlbWVuPykuJzsKJGxhbmdbJ2hlbHBfZGF0ZV9vcmRlciddID0gJ1VzZSAmcXVvdDttJnF1b3Q7IGZvciBNb250aCwgJnF1b3Q7ZCZxdW90OyBmb3IgRGF5LCBhbmQgJnF1b3Q7eSZxdW90OyBmb3IgWWVhci4gU2VwYXJhdGUgdGhlIGl0ZW1zIGJ5IGh5cGhlbnMuJzsKJGxhbmdbJ3Jlc3RyaWN0ZWRfdG9fZ3JvdXAnXSA9ICdBbGxlZW4gaW4gZ3JvZXAgJXMnOwokbGFuZ1sndGl0bGVfc2hvd190b191c2VyJ10gPSAnVG9vbiBhYW4gZ2VicnVpa2VyPyc7CiRsYW5nWydoZWxwX2xlYXZlZW1wdHknXSA9ICdEaXQgdmVsZCBtYWcgbGVlZyBnZWxhdGVuIHdvcmRlbic7CiRsYW5nWydoZWxwX3ZhcmlhYmxlc19mb3JfdGVtcGxhdGUnXSA9ICdWYXJpYWJlbGVuIHZvb3Igc2phYmxvb24nOwokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX2NvbXB1dGF0aW9uJ10gPSAnVmFyaWFiZWxlbiBiZXNjaGlrYmFhcic7CiRsYW5nWydoZWxwX3BocF92YXJpYWJsZV9uYW1lJ10gPSAnUEhQIHZhcmlhYmVsZSc7CiRsYW5nWydoZWxwX3N1Ym1pc3Npb25fZGF0ZSddID0gJ0RhdHVtIHZhbiB2ZXJ6ZW5kaW5nJzsKJGxhbmdbJ2hlbHBfc2VydmVyX25hbWUnXSA9ICdTZXJ2ZXInOwokbGFuZ1snaGVscF9zdWJfc291cmNlX2lwJ10gPSAnSVAgYWRyZXMnOwokbGFuZ1snaGVscF9zdWJfdXJsJ10gPSAnVVJMIHZhbiBkZSBwYWdpbmEnOwokbGFuZ1snaGVscF9mYl92ZXJzaW9uJ10gPSAnRm9ybUJ1aWxkZXIgdmVyc2llJzsKJGxhbmdbJ2hlbHBfdGFiJ10gPSAnVGFiIGthcmFrdGVyJzsKJGxhbmdbJ2hlbHBfb3RoZXJfZmllbGRzJ10gPSAnQW5kZXJlIHZlbGRlbiB6aWpuIGJlc2NoaWtiYWFyIG5hZGF0IHplIHppam4gdG9lZ2V2b2VnZCc7CiRsYW5nWydoZWxwX2FycmF5X2ZpZWxkcyddID0gJ1lldCBhbm90aGVyIHdheSBvZiBhY2Nlc3NpbmcgZmllbGQgdmFsdWVzIGlzIHZpYSAkZmllbGRuYW1lX29iaiwgJGFsaWFzX29iaiwgb3IgJGZsZF8jX29iaiwgd2hlcmUgZWFjaCBmaWVsZCBpcyBhbiBvYmplY3QgY29udGFpbmdpbmc6PGJyIC8+PHRhYmxlPg0KPHRyPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+bmFtZTwvdGQ+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz5GaWVsZCBOYW1lPC90ZD48L3RyPg0KPHRyPjx0ZD50eXBlPC90ZD48dGQ+RmllbGQgVHlwZTwvdGQ+PC90cj4NCjx0cj48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7PmlkPC90ZD48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7PkludGVybmFsIEZpZWxkIElEPC90ZD48L3RyPg0KPHRyPjx0ZD52YWx1ZTwvdGQ+PHRkPkh1bWFuLXJlYWRhYmxlIFZhbHVlPC90ZD48L3RyPg0KPHRyPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+dmFsdWVBcnJheTwvdGQ+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz5BcnJheSBvZiBmaWVsZCB2YWx1ZShzKTwvdGQ+PC90cj48L3RhYmxlPjxlbT5lLmcuPC9lbT4sIHlvdSBjb3VsZCB1c2UgJnF1b3Q7eyRmbGRfMV9vYmotPm5hbWV9ID0geyRmbGRfMV9vYmotPnZhbHVlfSc7CiRsYW5nWydoZWxwX2RhdGVfZm9ybWF0J10gPSAnQmVraWprIDxhIGhyZWY9Imh0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24uZGF0ZS5waHAiIHRhcmdldD1fTkVXPmRlIFBIUCBoYW5kbGVpZGluZzwvYT4gdm9vciBpbmZvcm1hdGllIG92ZXIgaGV0IGZvcm1hdC4nOwokbGFuZ1snaGVscF92YXJpYWJsZV9uYW1lJ10gPSAnVmFyaWFiZWxlJzsKJGxhbmdbJ2hlbHBfZm9ybV9maWVsZCddID0gJ0dlcmVwcmVzZW50ZWVyZCBWZWxkJzsKJGxhbmdbJ2xpbmtfYmFja190b19mb3JtJ10gPSAnJmxhcXVvOyBUZXJ1ZyBuYWFyIGhldCBmb3JtdWxpZXInOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV90ZW1wbGF0ZSddID0gJ1Zvb3JiZWVsZHNqYWJsb29uIGdlbmVyZXJlbic7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2h0bWxfdGVtcGxhdGUnXSA9ICdDcmUmZXVtbDtlciB2b29yYmVlbGQgSFRNTCBzamFibG9vbic7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2hlYWRlcl90ZW1wbGF0ZSddID0gJ0NyZSZldW1sO2VyIGVlbiB2b29yYmVlbGQgSGVhZGVyIHNqYWJsb29uJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfZm9vdGVyX3RlbXBsYXRlJ10gPSAnQ3JlJmV1bWw7ZXIgZWVuIHZvb3JiZWVsZCBGb290ZXIgc2phYmxvb24nOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9oZWFkZXInXSA9ICdWb29yYmVlbGRrb3ByZWdlbCBnZW5lcmVyZW4nOwokbGFuZ1snaGVscF90YWJfc3ltYm9sJ10gPSAnZWVuIHRhYi10ZWtlbic7CiRsYW5nWyd0aXRsZV9maWxlX3RlbXBsYXRlJ10gPSAnU2phYmxvb24gdm9vciBlZW4gZW5rZWxlIHJlZ2VsIHZhbiBkZSB1aXRnYWFuZGUgbWFpbCc7CiRsYW5nWyd0aXRsZV9maWxlX2hlYWRlciddID0gJ1NqYWJsb29uIHZvb3IgZGUga29wcmVnZWwgdmFuIGRlIHVpdGdhYW5kZSBtYWlsJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfZm9vdGVyJ10gPSAnU2phYmxvb24gdm9vciBkZSBmb290ZXIgdmFuIGRlIHVpdGdhYW5kZSBtYWlsJzsKJGxhbmdbJ3RpdGxlX2NvbmZpcm1hdGlvbl91cmwnXSA9ICdVUkwgb20gdGUga2xpa2tlbiB2b29yIGZvcm11bGllcnZhbGlkYXRpZSc7CiRsYW5nWyd0aXRsZV92YWx1ZSddID0gJ1dhYXJkZSAoemllIEdlYXZhbmNlZXJkIHRhYmJsYWQgYWxzIHUgU21hcnR5IHRhZ3MgZ2VicnVpa3QpJzsKJGxhbmdbJ3RpdGxlX2RhdGVfZm9ybWF0J10gPSAnRGF0dW0gZm9ybWFhdCAoc3RhbmRhYXJkIDxhIGhyZWY9Imh0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24uZGF0ZS5waHAiPlBIUC1kYXR1bWZvcm1hdGVuPC9hPiknOwokbGFuZ1sndGl0bGVfdXNlX3d5c2l3eWcnXSA9ICdHZWJydWlrIFdZU0lXWUcgZWRpdG9yIHZvb3IgdGVrc3R2ZWxkIChhbGxlZW4gdm9vciBhZG1pbik/JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9hY3Rpb25zJ10gPSAnRm9ybXVsaWVydmVyemVuZGdlZHJhZyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfbGFiZWxzJ10gPSAnVmVyemVuZGtub3BsYWJlbHMnOwokbGFuZ1sndGl0bGVfc29ydGFibGVfZmllbGQnXSA9ICdTb3J0ZWVydmVsZCAjJXMnOwokbGFuZ1sndGl0bGVfc3VibWl0X2hlbHAnXSA9ICdEZXplIHBhZ2luYSBtYWFrdCBhYW5wYXNzZW4gdmFuIEZvcm11bGllcnZlcnplbmRpbmcgbW9nZWxpamsuIEhldCBiZXBhYWx0IG5pZXQgd2F0IEZvcm0gQnVpbGRlciBtZXQgZGUgdmVyem9uZGVuIGRhdGEgZG9ldC4gRGl0IGt1bnQgdSBpbnN0ZWxsZW4gZG9vciAmcXVvdDtEaXNwb3NpdGlvbiZxdW90OyB2ZWxkZW4gdG9lIHRlIHZvZWdlbiBhYW4gaGV0IGZvcm11bGllciAnOwokbGFuZ1sndGl0bGVfc3RhcnRfeWVhciddID0gJ0JlZ2luIGphYXJyZWVrcyc7CiRsYW5nWyd0aXRsZV9lbmRfeWVhciddID0gJ0VpbmRlIGphYXJyZWVrcyc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3llYXInXSA9ICdTdGFuZGFhcmRqYWFyJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfeWVhcl9oZWxwJ10gPSAnKFN0ZWwgb3AgLTEgaW4gdm9vciBoZXQgc3RhbmRhYXJkamFhciBoZXQgaHVpZGlnZSBqYWFyIHRlIG1ha2VuKSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYWN0aW9uJ10gPSAnTmEgaGV0IGZvcm11bGllciB2ZXJ6b25kZW4gaXMnOwokbGFuZ1sndGl0bGVfc3VibWl0X3Jlc3BvbnNlJ10gPSAnUmVhY3RpZSBvbSB0ZSB0b25lbic7CiRsYW5nWyd0aXRsZV9zdWJtaXRfZGF0ZSddID0gJ1ZlcnplbmRkYXR1bSc7CiRsYW5nWyd0aXRsZV9hcHByb3ZhbF9kYXRlJ10gPSAnRGF0dW0gZ2VhY2NvcmRlZXJkIChkb29yIGFkbWluKSc7CiRsYW5nWyd0aXRsZV91c2VyX2FwcHJvdmVkJ10gPSAnRGF0dW0gZ2VhY2NvcmRlZXJkIChkb29yIHZlcnplbmRlciknOwokbGFuZ1snZGlzcGxheV90ZXh0J10gPSAnVG9vbiAmcXVvdDtWZXJ6ZW5kc2phYmxvb24mcXVvdDsnOwokbGFuZ1sncmVkaXJlY3RfdG9fcGFnZSddID0gJ1ZlcndpanMgZG9vciBuYWFyIHdlYnBhZ2luYSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfcmVzcG9uc2VfaGVscCddID0gJ0RlemUgc2phYmxvb24gaXMgb20gdGUgdG9uZW4gYWFuIGRlIGdlYnJ1aWtlciBuYWRhdCBoZXQgZm9ybXVsaWVyIHZlcnN0dXVyZCBpcy4gSGV0IGhlZWZ0IGdlZW4gZWZmZWN0IG9wIGRlIGFhbmdlbWFha3QgZS1tYWlscyBvZiBhbmRlcmUgZm9ybXVsaWVycmVnZWxzIC0tIGRpZSBrdW50IHUgaW5zdGVsbGVuIGluIHNqYWJsb25lbiAoaW5kaWVuIHZhbiB0b2VwYXNzaW5nKSBpbiBoZXQgJnF1b3Q7Z2VhdmFuY2VlcmQmcXVvdDsgdGFiYmxhZCB2b29yIGRlIHJlZ2VsdmVsZGVuLic7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9wYWdlJ10gPSAnQmVzdGVtbWluZ3NwYWdpbmEnOwokbGFuZ1sndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzJ10gPSAnVmVycGxpY2h0ZSB2ZWxkbmFtZW4nOwokbGFuZ1sndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzX2xvbmcnXSA9ICdWZXJwbGljaHQgdmVsZGVuIG9tIGVlbiBuYWFtIHRlIGhlYmJlbj8nOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXMnXSA9ICdWZXJwbGljaHQgdW5pZWtlIHZlbGRuYW1lbic7CiRsYW5nWyd0aXRsZV91bmlxdWVfZmllbGRuYW1lc19sb25nJ10gPSAnVmVycGxpY2h0IHZlbGRlbiBvbSBlZW4gdW5pZWtlIG5hYW0gdGUgaGViYmVuPyc7CiRsYW5nWyd0aXRsZV9yZW9yZGVyX2Zvcm0nXSA9ICdIZXJzY2hpayB2ZWxkZW4nOwokbGFuZ1sndGl0bGVfbG9hZF90ZW1wbGF0ZSddID0gJ0xhYWQgc2phYmxvb24nOwokbGFuZ1sndGl0bGVfYWRkX2J1dHRvbl90ZXh0J10gPSAnVm9lZyBrbm9wdGVrc3QgdG9lJzsKJGxhbmdbJ3RpdGxlX2RlbF9idXR0b25fdGV4dCddID0gJ1ZlcndpamRlciBrbm9wdGVrc3QnOwokbGFuZ1sndGl0bGVfZmllbGRfaGVscHRleHQnXSA9ICdIZWxwLXRla3N0IG9tIHRlIHRvbmVuIGJpaiBkaXQgdmVsZCc7CiRsYW5nWyd0aXRsZV9zdHJpbmdfb3JfbnVtYmVyX2V2YWwnXSA9ICdJbnRlcnByZXRlZXIgdmFyaWFiZWxlbiBhbHMgbnVtbWVycyBvZiBzdHJpbmdzJzsKJGxhbmdbJ3RpdGxlX29yZGVyJ10gPSAnSW50ZXJwcmV0YXRpZSB2b2xnb3JkZSc7CiRsYW5nWyd0aXRsZV9vcmRlcl9oZWxwJ10gPSAnQWxzIGVyIG1lZXIgZGFuIGVlbiBiZXJla2VuZCB2ZWxkIGJlc3RhYXQsIGRhbiB6dWxsZW4gZGUgd29yZGVuIGJlcmVrZW5kIHZhbiBoZXQgbGFhZ3N0ZSByYW5nbnVtbWVyIHRvdCBoZXQgaG9vZ3N0ZSByYW5nbnVtbWVyJzsKJGxhbmdbJ3RpdGxlX3N0cmluZ191bnNwYWNlZCddID0gJ1N0cmluZyAobm8gc3BhY2VzIGJldHdlZW4gZmllbGRzKT8nOwokbGFuZ1sndGl0bGVfY29tcHV0ZV92YWx1ZSddID0gJ1dhYXJkZSBvbSB0ZSBiZXJla2VuZW4nOwokbGFuZ1sndGl0bGVfY29tcHV0ZSddID0gJ0NvbXB1dGVkL1BIUCc7CiRsYW5nWyd0aXRsZV9zdHJpbmcnXSA9ICdTdHJpbmcgJzsKJGxhbmdbJ3RpdGxlX251bWVyaWMnXSA9ICdOdW1lcmllayc7CiRsYW5nWyd0aXRsZV9pbmxpbmVfZm9ybSddID0gJ1Rvb24gaGV0IGZvcm11bGllciBpbmxpbmU/JzsKJGxhbmdbJ3RpdGxlX2lubGluZV9mb3JtX2hlbHAnXSA9ICdJbmxpbmUgYmV0ZWtlbnQgZGF0IGllZGVyIGZvcm11bGllcnZlcnZvbGdhY3RpZSBkZSB7Y21zX21vZHVsZX0gdGFnICBpbiBkZSBwYWdpbmEgdmVydmFuZ3QsIG5vbi1pbmxpbmUgdmVydmFuZ3QgZGUgZ2VoZWxlIHtjb250ZW50fSB0YWcuJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2RlZmF1bHRfdmFsdWUnXSA9ICdTdGFuZGFhcmR3YWFyZGUgdm9vciB2ZWxkJzsKJGxhbmdbJ3RpdGxlX2NsZWFyX2RlZmF1bHQnXSA9ICdMZWVnIHN0YW5kYWFyZHdhYXJkZSBtZXQgZWVuIGtsaWs/JzsKJGxhbmdbJ3RpdGxlX2NsZWFyX2RlZmF1bHRfaGVscCddID0gJ1ZpbmsgYWFuIG9tIGRlIHN0YW5kYWFyZHdhYXJkZSB0ZSB2ZXJ3aWpkZXJlbiBhbHMgZWVuIGdlYnJ1aWtlciBvcCBkaXQgdmVsZCBrbGlrdC4nOwokbGFuZ1sndGl0bGVfcmVtb3ZlX2ZpbGVfZnJvbV9zZXJ2ZXInXSA9ICdWZXJ3aWpkZXIgaGV0IGdlJnV1bWw7cGxvYWRlIGJlc3RhbmQgdmFuIGRlIHNlcnZlciBuYSBoZXQgcHJvY2VzJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2phdmFzY3JpcHQnXSA9ICdKYXZhc2NyaXB0IHZvb3IgdmVsZCc7CiRsYW5nWyd0aXRsZV9maWVsZF9qYXZhc2NyaXB0X2xvbmcnXSA9ICdNYWtlIHRoaXMgdGhlIGNvbXBsZXRlIEphdmFzY3JpcHQgY2FsbCwgaW5jbHVkaW5nIHRoZSBldmVudCB5b3Ugd2FudCB0byB0cmFwLCBlLmcuLCBvbmNsaWNrPSZxdW90O3lvdXJmbigpJnF1b3Q7JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9qYXZhc2NyaXB0J10gPSAnRm9ybXVsaWVyIGluZGllbmVuIEphdmFzY3JpcHQnOwokbGFuZ1sndGl0bGVfc3VibWl0X2phdmFzY3JpcHRfbG9uZyddID0gJ01ha2UgdGhpcyB0aGUgY29tcGxldGUgSmF2YXNjcmlwdCBjYWxsLCBpbmNsdWRpbmcgdGhlIGV2ZW50IHlvdSB3YW50IHRvIHRyYXAsIGUuZy4sIG9uY2xpY2s9JnF1b3Q7eW91cmZuKCkmcXVvdDsuPGJyIC8+VGhpcyB3aWxsIHByb2JhYmx5IG5vdCB3b3JrIHdlbGwgaWYgeW91IHVzZSB0aGUgJnF1b3Q7c2FmZXR5IHNjcmlwdCZxdW90OyBvcHRpb24gYWJvdmUuJzsKJGxhbmdbJ2VtYWlsX2Zyb21fYWRkcl9oZWxwJ10gPSAnS2llcyBoaWVyIG5pZXQgem9tYWFyIGVlbiB3aWxsZWtldXJpZyBtYWlsIGFkcmVzIC0tIHZlZWwgSVNQcyB6dWxsZW48YnIgLz5nZWdlbmVyZWVyZGUgbWFpbHRqZXMgbmlldCBhZmxldmVyZW4gYmlqIGVlbiBtYWlsYWRyZXMgZGllIG5pZXQgZGV6ZWxmZGUgaXMgYWxzIGhldCBlaWdlbiBkb21laW5uYWFtPGJyIC8+KGJpanYuIGdlYnJ1aWsgaWV0cyB6b2FscyBuYWFtQCVzKSc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYWR2YW5jZWQnXSA9ICdNZWVyIHZlbGR0eXBlcyBub2RpZz8nOwokbGFuZ1sndGl0bGVfc3dpdGNoX2Jhc2ljJ10gPSAnVGV2ZWVsIHZlcndhcnJlbmRlIHZlbGR0eXBlcz8gJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9hZHZhbmNlZF9saW5rJ10gPSAnR2EgbmFhciBkZSBnZWF2YW5jZWVyZGUgbW9kdXMnOwokbGFuZ1sndGl0bGVfc3dpdGNoX2Jhc2ljX2xpbmsnXSA9ICdHYSBuYWFyIGRlIHNpbXBlbGUgbW9kdXMnOwokbGFuZ1sndGl0bGVfZmlsZV9yb290J10gPSAnTWFwIHZvb3IgaGV0IG9wc2xhYW4gdmFuIGJlc3RhbmRlbic7CiRsYW5nWyd0aXRsZV9maWxlX3Jvb3RfaGVscCddID0gJ0RpdCBtb2V0IGVlbiBtYXAgemlqbiBvcCB1dyB3ZWJzZXJ2ZXIgbWV0IHNjaHJpamZyZWNodGVuLjxiciAvPkNobW9kIGhldCBuYWFyIDc3NyBhbHMgdSBwcm9ibGVtZW4gb2YgdHdpamZlbHMgaGVlZnQuPGJyIC8+Q29udHJvbGVlciBvb2sgb2YgZXIgZ2VlbiBzcHJha2UgaXMgdmFuICYjMDM5O1BIUCBkaXJlY3RvcnkgcmVzdHJpY3RpZXMmIzAzOTsuJzsKJGxhbmdbJ3RpdGxlX25ld2xpbmVfcmVwbGFjZW1lbnQnXSA9ICdOaWV1d2UgcmVnZWwgdmVydmFuZ2luZ3NrYXJha3Rlcic7CiRsYW5nWyd0aXRsZV9uZXdsaW5lX3JlcGxhY2VtZW50X2hlbHAnXSA9ICdMZWVnIGxhdGVuIG9tICYjMDM5O25pZXV3ZSByZWdlbCYjMDM5OyB0b2UgdGUgc3RhYW4nOwokbGFuZ1sndGl0bGVfc2VuZF91c2VyY29weSddID0gJ1ZlcnplbmQgZ2VicnVpa2VyIGVlbiBrb3BpZSc7CiRsYW5nWyd0aXRsZV9zZW5kX3VzZXJjb3B5X2xhYmVsJ10gPSAnTGFiZWwgdm9vciBoZXQgdmlua3Zha2plIChrZXV6ZSB2b29yIGRlIGdlYnJ1aWtlciknOwokbGFuZ1sndGl0bGVfc2VuZF9tZV9hX2NvcHknXSA9ICdWZXJ6ZW5kIG1paiBlZW4ga29waWUgdmFuIGhldCBmb3JtJzsKJGxhbmdbJ3RpdGxlX2FsbG93X3N1YmplY3Rfb3ZlcnJpZGUnXSA9ICdUb2VzdGFhbiBkYXQgaGV0IE9uZGVyd2VycCB3b3JkdCBvdmVyc2NocmV2ZW4/JzsKJGxhbmdbJ3RpdGxlX2FsbG93X3N1YmplY3Rfb3ZlcnJpZGVfbG9uZyddID0gJ1N0YSB0b2UgZGF0IGhldCB2ZWxkICYjMDM5O0UtbWFpbCBPbmRlcndlcnAmIzAzOTsgd29yZHQgb3ZlcnNjaHJldmVuIGRvb3IgaGV0IG9uZGVyd2VycCBnZXNwZWNpZmljZWVyZCBpbiBkZSBwdWxsZG93bi4nOwokbGFuZ1sndGl0bGVfZGlzcGxheV9sZW5ndGgnXSA9ICdTY2hlcm0gbGVuZ3RlJzsKJGxhbmdbJ3RpdGxlX21pbmltdW1fbGVuZ3RoJ10gPSAnTWluaW1hbGUgcmVhY3RpZSBsZW5ndGUnOwokbGFuZ1sndGl0bGVfaGlkZSddID0gJ1ZlcmJlcmcgaW5wdXQnOwokbGFuZ1sndGl0bGVfaGlkZV9oZWxwJ10gPSAnTGFhdCBzeW1ib2xlbiB6aWVuIGFscyBlZW4gZ2VicnVpa2VyIHppam4gd2FjaHR3b29yZCBpbnZvZXJkLCBpbiBwbGFhdHMgdmFuIGRlIGRhYWR3ZXJrZWxsaWprZSB0ZWtzdC4nOwokbGFuZ1sncGFzc3dvcmRfZG9lc19ub3RfbWF0Y2gnXSA9ICdXYWNodHdvb3JkIHZvbGRvZXQgbmlldCBhYW4gJXMnOwokbGFuZ1snYmFja190b3AnXSA9ICdUZXJ1ZyBuYWFyIEZvcm1CdWlsZGVyIFN0YXJ0IFBhZ2luYSc7CiRsYW5nWyd0aXRsZV9oZWFkZXJzX3RvX21vZGlmeSddID0gJ1dlbGtlIGUtbWFpbCBoZWFkZXJzIG1vZXQgZGV6ZSBpbnB1dCBiZXZhdHRlbj8nOwokbGFuZ1sndGl0bGVfYmxhbmtfaW52YWxpZCddID0gJ1N0YSBnZWVuIGxlZ2UgcmVhY3RpZXMgKHNwYXRpZXMpIHRvZS4nOwokbGFuZ1sndGl0bGVfYmxhbmtfaW52YWxpZF9sb25nJ10gPSAnQWxzIGVlbiB2ZWxkIHZlcnBsaWNodCBpcywgZGFuIHphbCBoZXQgYWFudmlua2VuIHZhbiBkaXQgdmFramUgbWVuc2VuIHZlcnBsaWNodGVuIGFsZmFudW1lcmlla2Uga2FyYWt0ZXJzIGluIHRlIHZ1bGxlbiwgbmlldCBhbGxlZW4gc3BhdGllcyc7CiRsYW5nWyd0aXRsZV9tdXN0X3NhdmVfb3JkZXInXSA9ICdZb3UgbXVzdCBjbGljayBvbmUgb2YgdGhlICZxdW90O3NhdmUmcXVvdDsgYnV0dG9ucyB0byBtYWtlIHlvdXIgbmV3IGZpZWxkIG9yZGVyIHBlcm1hbmVudC4nOwokbGFuZ1sndGl0bGVfaHRtbDUnXSA9ICdVc2UgSFRNTDUgcGxhY2Vob2xkZXIgdGV4dCBpbnN0ZWFkIG9mIEphdmFzY3JpcHQnOwokbGFuZ1snZXJyb3JfQ29tcGFueURpcmVjdG9yeV9tb2R1bGVfbm90X2F2YWlsYWJsZSddID0gJ0RlIENvbXBhbnkgRGlyZWN0b3J5IG1vZHVsZSBpcyBuaWV0IGFhbndlemlnISc7CiRsYW5nWydvcHRpb25fbmV2ZXInXSA9ICdOb29pdCc7CiRsYW5nWydvcHRpb25fdXNlcl9jaG9pY2UnXSA9ICdLZXV6ZSB2YW4gZ2VicnVpa2VyICh2aW5rdmFramUpJzsKJGxhbmdbJ29wdGlvbl9hbHdheXMnXSA9ICdBbHRpamQnOwokbGFuZ1snb3B0aW9uX2Zyb20nXSA9ICcmcXVvdDtWYW4mcXVvdDsgZS1tYWlsIGFkcmVzJzsKJGxhbmdbJ29wdGlvbl9yZXBseSddID0gJyZxdW90O0JlYW50d29vcmQgbmFhciZxdW90OyBlLW1haWwgYWRyZXMnOwokbGFuZ1snb3B0aW9uX2JvdGgnXSA9ICdab3dlbCAmcXVvdDtWYW4mcXVvdDsgYWxzICZxdW90O0JlYW50d29vcmQgbmFhciZxdW90OyBlLW1haWwgYWRyZXNzZW4nOwokbGFuZ1snb3B0aW9uX2Ryb3Bkb3duJ10gPSAnRHJvcGRvd24gJzsKJGxhbmdbJ29wdGlvbl9zZWxlY3RsaXN0X3NpbmdsZSddID0gJ1NlbGVjdGllIExpanN0IChlbmtlbHZvdWRpZyknOwokbGFuZ1snb3B0aW9uX3NlbGVjdGxpc3RfbXVsdGlwbGUnXSA9ICdTZWxlY3RpZSBMaWpzdCAobWVlcnZvdWRpZyknOwokbGFuZ1snb3B0aW9uX3JhZGlvZ3JvdXAnXSA9ICdSYWRpbyBHcm9lcCc7CiRsYW5nWyd0aXRsZV9jb21wYW55X2ZpZWxkX25vdGUnXSA9ICdOb3RlOiBPdXRwdXQgd2lsbCBiZSBpbiB0aGUgZm9ybSBvZjxici8+JnF1b3Q7Y29tcGFueSBuYW1lJnF1b3Q7PT4mcXVvdDt2YWx1ZSZxdW90Oyc7CiRsYW5nWyd0aXRsZV9waWNrX2NhdGVnb3JpZXMnXSA9ICdLaWVzIGVlbiBjYXRlZ29yaWUgKG1lZXJkZXJlKSc7CiRsYW5nWyd0aXRsZV9waWNrX2ZpZWxkZGVmJ10gPSAnUHVsbCBhIGZpZWxkIERlZmluaXRpb24mIzAzOTtzIHZhbHVlIChzaW5nbGUpIDxlbT5vcHRpb25hbDwvZW0+JzsKJGxhbmdbJ3RpdGxlX2Nob29zZV91c2VyX2lucHV0J10gPSAnS2llcyBHZWJydWlrZXJzIEludm9lcic7CiRsYW5nWyd0aXRsZV9zZWVfYWxzb191ZHQnXSA9ICcoS2lqayBvb2sgZXZlbiBvbmRlciBkZSBGb3JtdWxpZXJ2ZXJ6ZW5kaW5nIHRhYiBhbHMgdSBlZW4gVURUIHdpbHQgZ2VicnVpa2VuIHZvb3IgZGUgZm9ybXVsaWVyIHZhbGlkYXRpZSknOwokbGFuZ1sndGl0bGVfeWVhcl9lbmRfbWVzc2FnZSddID0gJ0VpbmRqYWFyJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2xvZ2ljJ10gPSAnU21hcnR5IGRhdGEgb3IgbG9naWMgdGhhdCBpcyBtZWFudCB0byBiZSBzZW50IHdpdGggdGhpcyBmaWVsZCc7CiRsYW5nWyd0aXRsZV9maWVsZF9sb2dpY19sb25nJ10gPSAnQ2FuIGJlIHNtYXJ0eSBkYXRhLCBqYXZhc2NyaXB0LCBvciBzb21lIG90aGVyIGRhdGEgeW91IHdhbiYjMDM5O3QgdG8gc2VudCBhbG9uZyB3aXRoIHRoaXMgZmllbGQuPGJyIC8+R29lcyB0aHJvdWdoIHRoZSBTbWFydHkgY29tcGlsZXIsIHNvIHJlbWVtYmVyIHVzZSB7bGl0ZXJhbH17L2xpdGVyYWx9IHRhZ3Mgd2l0aCA8c2NyaXB0Pjwvc2NyaXB0Pic7CiRsYW5nWyd0aXRsZV9maWVsZF9pbmNsdWRlbGFiZWxzJ10gPSAnSW5jbHVkZSBsYWJlbHMnOwokbGFuZ1sndGl0bGVfZmllbGRfaW5jbHVkZWxhYmVsc19oZWxwJ10gPSAnRW5hYmxpbmcgdGhpcyBpbmNsdWRlcyBsYWJlbHMgdG8gb3V0cHV0LiBleGFtcGxlIC0gbGFiZWw6IHZhbHVlLGxhYmVsMjogdmFsdWUyJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3NpYmxpbmdzJ10gPSAnTGluayB0aGlzIGZpZWxkIHRvIGl0JiMwMzk7cyBzaWJsaW5nJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3NpYmxpbmdzX2hlbHAnXSA9ICdEcm9wZG93biBsaXN0cyBhbGwgc2libGluZ3Mgb2YgdGhpcyBmaWVsZCBhbmQgYWxsb3dzIHlvdSB0byBsaW5rIHRoaXMgZmllbGQgdG8gb25lIG9mIGl0JiMwMzk7cyBzaWJsaW5nLiBNYWtlcyBwb3NzaWJsZSBjb250cm9sbGluZyB0aGlzIGZpZWxkIHdpdGggc2VsZWN0ZWQgc2libGluZyBjb250cm9scy4nOwokbGFuZ1sndGl0bGVfZmllbGRfaGlkZWJ1dHRvbnMnXSA9ICdIaWRlIGNvbnRyb2wgYnV0dG9ucyc7CiRsYW5nWyd0aXRsZV9maWVsZF9oaWRlYnV0dG9uc19oZWxwJ10gPSAnSGlkZXMgZnJvbnRlbmQgY29udHJvbCBidXR0b25zIG9mIHRoaXMgZmllbGQuJzsKJGxhbmdbJ3RpdGxlX25vdGUnXSA9ICdPcG1lcmtpbmcnOwokbGFuZ1sndGl0bGVfY2hhbmdpbmdfdHJpZ2dlcnNfcmVpbmRleCddID0gJ0NoYW5naW5nIGFueSBvZiB0aGUgYWJvdmUgZmllbGRzIHdpbGwgdHJpZ2dlciBhIHJlaW5kZXggb2YgKmFsbCogc2F2ZWQgcmVjb3Jkcywgc28gaXQgY291bGQgdGFrZSBhIHdoaWxlLic7CiRsYW5nWydpbGxlZ2FsX2ZpbGUnXSA9ICdBdHRlbXB0ZWQgdXBsb2FkIG9mIGlsbGVnYWwgZmlsZSB0eXBlICglcykgZnJvbSAlcyc7CiRsYW5nWyd0aXRsZV9zZWFyY2hhYmxlJ10gPSAnTWFrZSByZWNvcmRzIGFjY2Vzc2libGUgdG8gU2VhcmNoIE1vZHVsZSc7CiRsYW5nWyd0aXRsZV9zZWFyY2hhYmxlX2hlbHAnXSA9ICdDaGVja2luZyB0aGlzIHdpbGwgbWFrZSBhbGwgc3VibWl0dGVkIGRhdGEgYWNjZXNzaWJsZSB0byB0aGUgU2VhcmNoIE1vZHVsZS4gRE8gTk9UIHVzZSB0aGlzIGlmIHlvdSBlbmNyeXB0IHlvdXIgZGF0YSAtLSB0aGUgaW5mb3JtYXRpb24gZ2V0cyBleHBvc2VkIHRvIHNlYXJjaCB3aGV0aGVyIG9yIG5vdCBpdCBpcyBlbmNyeXB0ZWQhJzsKJGxhbmdbJ3VwbG9hZGVkX291dHNpZGVfd2Vicm9vdCddID0gJyVzIChvdXRzaWRlIHdlYiByb290KSc7CiRsYW5nWydlcnJvcl91c2VydGFnX2Rpc3Bvc2l0aW9uJ10gPSAnVWl0IHRlIHZvZXJlbiBVc2VyIERlZmluZWQgVGFnIG5hIGVlbiBmb3V0JzsKJGxhbmdbJ2Vycm9yX3VzZXJ0YWcnXSA9ICdHZWJydWlrZXJzZ2VkZWZpbmllZXJkZSB0YWcgJXMgZ2VlZnQgZWVuIGZvdXQgYWFuLic7CiRsYW5nWydlcnJvcl9jYXRhbG9nZXJfbW9kdWxlX25vdF9hdmFpbGFibGUnXSA9ICc8c3Ryb25nPkRlIENhdGFsb2dlciBtb2R1bGUgaXMgbmlldCBnZSZpdW1sO25zdGFsbGVlcmQvYWN0aWVmLjwvc3Ryb25nPic7CiRsYW5nWyd3YXJuaW5nJ10gPSAnV0FBUlNDSFVXSU5HISc7CiRsYW5nWydkZWZhdWx0X3RlbXBsYXRlJ10gPSAnU3RhbmRhYXJkc2phYmxvb24nOwokbGFuZ1sndGFibGVfbGVmdF90ZW1wbGF0ZSddID0gJ1RhYmVsc2phYmxvb24sIHRpdGVsIGxpbmtzJzsKJGxhbmdbJ3RhYmxlX3RvcF90ZW1wbGF0ZSddID0gJ1RhYmVsc2phYmxvb24sIHRpdGVsIGJvdmVuJzsKJGxhbmdbJ2Zvcm1fdGVtcGxhdGVfbmFtZSddID0gJ1NqYWJsb29uIHZhbiAlcyc7CiRsYW5nWyd0ZW1wbGF0ZV9hcmVfeW91X3N1cmUnXSA9ICdXZWV0IHUgemVrZXIgZGF0IHUgZGUgc2phYmxvb24gd2lsdCBvdmVyc2NocmlqdmVuIG1ldCBoZXQgZ2VzZWxlY3RlZXJkZSBzamFibG9vbj88YnIgLz4oWmVsZnMgYWxzIHUgT0sgYWFuZ2VlZnQsIHp1bHQgdSBkZSB2ZXJhbmRlcmluZ2VuIGVlcnN0IG1vZXRlbiBvcHNsYWFuKSc7CiRsYW5nWyd0aXRsZV9iYWRfZnVuY3Rpb24nXSA9ICdGb3V0IGJpaiBoZXQgYmVyZWtlbmVuIHZhbiAmcXVvdDslcyZxdW90Oy4nOwokbGFuZ1snbm9fcmVmZXJyZXJfaW5mbyddID0gJ0dlZW4gSFRUUF9SRUZFUkVSIGluZm9ybWF0aWUgYmVzY2hpa2JhYXIgKHdhYXJzY2hpam5pamsgZG9vciBoZXQgZ2VicnVpayB2YW4gRS1tYWlsIEdlYnJ1aWtlciBWYWxpZGF0aWUpJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcGFyYW1fZXJyb3InXSA9ICdWYWxpZGF0aWUtcGFyYW1ldGVyLWZvdXQuIFpvcmcgZXJ2b29yIGRhdCBkZSBVUkwgdmFuIHV3IGVtYWlsIGNvcnJlY3QgZ2Vrb3BpZWVyZCB3b3JkdCEnOwokbGFuZ1sndmFsaWRhdGlvbl9yZXNwb25zZV9lcnJvciddID0gJ1ZhbGlkYXRpZS1yZWFjdGllLWZvdXQuIFpvcmcgZXJ2b29yIGRhdCBkZSBVUkwgdmFuIHV3IGVtYWlsIGNvcnJlY3QgZ2Vrb3BpZWVyZCB3b3JkdCEnOwokbGFuZ1sndmFsaWRhdGlvbl9ub19maWVsZF9lcnJvciddID0gJ1ZhbGlkYXRpb24tcmVhY3RpZS1mb3V0LiBHZWVuIGVtYWlsdmFsaWRhdGlldmVsZGVuIGluIGRpdCBmb3JtdWxpZXIhJzsKJGxhbmdbJ3VwZ3JhZGUwM3RvMDQnXSA9ICdGb3JtdWxpZXJzamFibG9vbiBpcyBhdXRvbWF0aXNjaCBiaWpnZXdlcmt0IGFscyBvbmRlcmRlZWwgdmFuIGRlIHVwZ3JhZGUgdmFuIHZlcnNpZSAwLjMgbmFhciB2ZXJzaWUgMC40LiBNb2dlbGlqayBtb2V0IHUgZWVuIGFhbnRhbCB6YWtlbiBoZXJzdGVsbGVuLiBBbHMgdSBoZXQgc3RhbmRhYXJkc2phYmxvb24gZ2VicnVpa3QsIHZlcnZhbmcgZGV6ZSBzamFibG9vbiBkYW4gbWV0IGRlIHN0YW5kYWFyZCwgZG9vciBkZSBib3ZlbnN0YWFuZGUga2V1emVsaWpzdCB0ZSBnZWJydWlrZW4uJzsKJGxhbmdbJ2FkbWluZGVzYyddID0gJ0JlaGVlciB2YW4gaW50ZXJhY3RpZXZlIHdlYmZvcm11bGllcmVuJzsKJGxhbmdbJ29wZXJhdG9yc19oZWxwJ10gPSAnQWxzIHUgc3RyaW5nLWV2YWx1YXRpZSBnZWJydWlrdCwgaXMgZGUgZW5pZ2UgYmVzY2hpa2JhcmUgb3BlcmF0b3IgKCspLCB0ZXJ3aWpsIGJpaiBoZXQgZ2VicnVpayB2YW4gbnVtbWVyLWV2YWx1YXRpZSBlZW52b3VkaWdlIHdpc2t1bmRpZ2UgYmV3ZXJraW5nZW4gbW9nZWxpamsgemlqbiAoLCArLCAtLCAqLCAvLCApLic7CiRsYW5nWydoZWxwX21vZHVsZV9pbnRlcmZhY2UnXSA9ICdHZWJydWlrIE1vZHVsZSBJbnRlcmZhY2UnOwokbGFuZ1snaGVscF9tb2R1bGVfaW50ZXJmYWNlX2xvbmcnXSA9ICc8Yj5UaGlzIGZpZWxkIGlzIHVzZWQgYXMgYSBnYXRld2F5IHRvIG90aGVyIG1vZHVsZXMhPC9iPiANClVzZSBpdCBieSBjcmVhdGluZyB5b3VyIGZvcm0gZWxlbWVudHMgaW4gdGhlIHRlbXBsYXRlcyBvZiB0aGUgb3RoZXIgbW9kdWxlKHMpIHlvdSB3aXNoIHRvIGluY29ycG9yYXRlLCBhbmQgdXNpbmcgdGhlIDxzdHJvbmc+eyRGQmlkfTwvc3Ryb25nPiB0byB0aWUgaXQgYmFjayB0byBGb3JtQnVpbGRlci4gRm9yIGV4YW1wbGUsIHRvIGluY2x1ZGUgZm9ybSBvcHRpb25zIGJhc2VkIG9uIHRoZSBQcm9kdWN0cyBtb2R1bGUsIGNyZWF0ZSB0aGUgZm9sbG93aW5nIHRlbXBsYXRlIGluIFByb2R1Y3RzOjxici8+DQo8cHJlPg0Ke2ZvcmVhY2ggZnJvbT0kaXRlbXMgaXRlbT1lbnRyeX0NCgl7YXNzaWduIHZhcj1NRGF0YSB2YWx1ZT0mIzAzOTsmIzAzOTt9DQoJe2Fzc2lnbiB2YXI9Q2QgdmFsdWU9JiMwMzk7JiMwMzk7fQ0KCQl7Zm9yZWFjaCBmcm9tPSRGQnZhbHVlIGl0ZW09TURhdGF9DQoJCQl7YXNzaWduIHZhcj1NRGF0YSB2YWx1ZT0mIzAzOTs6OiYjMDM5O3xleHBsb2RlOiRNRGF0YX0NCgkJCXtpZiAkTURhdGFbMV09PSRlbnRyeS0+aWR9DQoJCQkJe2Fzc2lnbiB2YXI9Q2QgdmFsdWU9JiMwMzk7IGNoZWNrZWQ9JnF1b3Q7Y2hlY2tlZCZxdW90OyYjMDM5O30NCgkJCXsvaWZ9DQoJCXsvZm9yZWFjaH0NCgk8ZGl2IGNsYXNzPSZxdW90O1Byb2R1Y3REaXJlY3RvcnlJdGVtJnF1b3Q7Pg0KCQk8aW5wdXQgdHlwZT0mcXVvdDtjaGVja2JveCZxdW90OyB2YWx1ZT0mcXVvdDt7JGVudHJ5LT5wcmljZX06OnskZW50cnktPmlkfSZxdW90OyBuYW1lPSZxdW90O3skRkJpZH1bXSZxdW90OyB7JENkfSAvPnskZW50cnktPnByb2R1Y3RfbmFtZX0gKHskZW50cnktPndlaWdodH17JHdlaWdodF91bml0c30pICZwb3VuZDt7JGVudHJ5LT5wcmljZX0gICAgDQoJPC9kaXY+DQp7L2ZvcmVhY2h9DQo8L3ByZT4NCjxici8+DQp3aGVyZSBpbiB0aGUgaW5wdXQgYmVsb3cgeW91IHB1dCBzb21ldGhpbmcgbGlrZSA8c3Ryb25nPntQcm9kdWN0cyBjYXRlZ29yeT0mcXVvdDtjYXQmcXVvdDsgc3VtbWFyeXRlbXBsYXRlPSZxdW90O1lvdXJfRkJfdGVtcGxhdGUmcXVvdDt9PC9zdHJvbmc+JzsKJGxhbmdbJ3RpdGxlX2FkZF90YWcnXSA9ICdVdyB0YWcgdG9ldm9lZ2VuJzsKJGxhbmdbJ2RhdGVfamFudWFyeSddID0gJ2phbnVhcmknOwokbGFuZ1snZGF0ZV9mZWJydWFyeSddID0gJ2ZlYnJ1YXJpJzsKJGxhbmdbJ2RhdGVfbWFyY2gnXSA9ICdtYWFydCc7CiRsYW5nWydkYXRlX2FwcmlsJ10gPSAnYXByaWwnOwokbGFuZ1snZGF0ZV9tYXknXSA9ICdtZWknOwokbGFuZ1snZGF0ZV9qdW5lJ10gPSAnanVuaSc7CiRsYW5nWydkYXRlX2p1bHknXSA9ICdqdWxpJzsKJGxhbmdbJ2RhdGVfYXVndXN0J10gPSAnYXVndXN0dXMnOwokbGFuZ1snZGF0ZV9zZXB0ZW1iZXInXSA9ICdzZXB0ZW1iZXInOwokbGFuZ1snZGF0ZV9vY3RvYmVyJ10gPSAnb2t0b2Jlcic7CiRsYW5nWydkYXRlX25vdmVtYmVyJ10gPSAnbm92ZW1iZXInOwokbGFuZ1snZGF0ZV9kZWNlbWJlciddID0gJ2RlY2VtYmVyJzsKJGxhbmdbJ0FGJ10gPSAnQWZnaGFuaXN0YW4nOwokbGFuZ1snQVgnXSA9ICdBbGFuZCBJc2xhbmRzJzsKJGxhbmdbJ0FMJ10gPSAnQWxiYW5pYSc7CiRsYW5nWydEWiddID0gJ0FsZ2VyaWEnOwokbGFuZ1snQVMnXSA9ICdBbWVyaWNhbiBTYW1vYSc7CiRsYW5nWydBRCddID0gJ0FuZG9ycmEnOwokbGFuZ1snQU8nXSA9ICdBbmdvbGEnOwokbGFuZ1snQUknXSA9ICdBbmd1aWxsYSc7CiRsYW5nWydBUSddID0gJ0FudGFyY3RpY2EnOwokbGFuZ1snQUcnXSA9ICdBbnRpZ3VhIGFuZCBCYXJidWRhJzsKJGxhbmdbJ0FSJ10gPSAnQXJnZW50aW5hJzsKJGxhbmdbJ0FNJ10gPSAnQXJtZW5pYSc7CiRsYW5nWydBVyddID0gJ0FydWJhJzsKJGxhbmdbJ0FVJ10gPSAnQXVzdHJhbGlhJzsKJGxhbmdbJ0FUJ10gPSAnQXVzdHJpYSc7CiRsYW5nWydBWiddID0gJ0F6ZXJiYWlqYW4nOwokbGFuZ1snQlMnXSA9ICdCYWhhbWFzJzsKJGxhbmdbJ0JIJ10gPSAnQmFocmFpbic7CiRsYW5nWydCQiddID0gJ0JhcmJhZG9zJzsKJGxhbmdbJ0JEJ10gPSAnQmFuZ2xhZGVzaCc7CiRsYW5nWydCWSddID0gJ0JlbGFydXMnOwokbGFuZ1snQkUnXSA9ICdCZWxnaXVtJzsKJGxhbmdbJ0JaJ10gPSAnQmVsaXplJzsKJGxhbmdbJ0JKJ10gPSAnQmVuaW4nOwokbGFuZ1snQk0nXSA9ICdCZXJtdWRhJzsKJGxhbmdbJ0JUJ10gPSAnQmh1dGFuJzsKJGxhbmdbJ0JXJ10gPSAnQm90c3dhbmEnOwokbGFuZ1snQk8nXSA9ICdCb2xpdmlhJzsKJGxhbmdbJ0JBJ10gPSAnQm9zbmlhIGFuZCBIZXJ6ZWdvdmluYSc7CiRsYW5nWydCViddID0gJ0JvdXZldCBJc2xhbmQnOwokbGFuZ1snQlInXSA9ICdCcmF6aWwnOwokbGFuZ1snSU8nXSA9ICdCcml0aXNoIEluZGlhbiBPY2VhbiBUZXJyaXRvcnknOwokbGFuZ1snQk4nXSA9ICdCcnVuZWkgRGFydXNzYWxhbSc7CiRsYW5nWydCRyddID0gJ0J1bGdhcmlhJzsKJGxhbmdbJ0JGJ10gPSAnQnVya2luYSBGYXNvJzsKJGxhbmdbJ0JJJ10gPSAnQnVydW5kaSc7CiRsYW5nWydLSCddID0gJ0NhbWJvZGlhJzsKJGxhbmdbJ0NNJ10gPSAnQ2FtZXJvb24nOwokbGFuZ1snQ0EnXSA9ICdDYW5hZGEnOwokbGFuZ1snQ1YnXSA9ICdDYXBlIFZlcmRlJzsKJGxhbmdbJ0tZJ10gPSAnQ2F5bWFuIElzbGFuZHMnOwokbGFuZ1snQ0YnXSA9ICdDZW50cmFsIEFmcmljYW4gUmVwdWJsaWMnOwokbGFuZ1snVEQnXSA9ICdDaGFkJzsKJGxhbmdbJ0NMJ10gPSAnQ2hpbGUnOwokbGFuZ1snQ04nXSA9ICdDaGluYSc7CiRsYW5nWydDWCddID0gJ0NocmlzdG1hcyBJc2xhbmQnOwokbGFuZ1snQ0MnXSA9ICdDb2NvcyAoS2VlbGluZykgSXNsYW5kcyc7CiRsYW5nWydDTyddID0gJ0NvbG9tYmlhJzsKJGxhbmdbJ0tNJ10gPSAnQ29tb3Jvcyc7CiRsYW5nWydDRyddID0gJ0NvbmdvJzsKJGxhbmdbJ0NEJ10gPSAnQ29uZ28sICBEZW1vY3JhdGljIFJlcHVibGljJzsKJGxhbmdbJ0NLJ10gPSAnQ29vayBJc2xhbmRzJzsKJGxhbmdbJ0NSJ10gPSAnQ29zdGEgUmljYSc7CiRsYW5nWydDSSddID0gJ0l2b2lyZSAoSXZvcnkgQ29hc3QpJzsKJGxhbmdbJ0hSJ10gPSAnQ3JvYXRpYSAoSHJ2YXRza2EpJzsKJGxhbmdbJ0NVJ10gPSAnQ3ViYSc7CiRsYW5nWydDWSddID0gJ0N5cHJ1cyc7CiRsYW5nWydDWiddID0gJ0N6ZWNoIFJlcHVibGljJzsKJGxhbmdbJ0RLJ10gPSAnRGVubWFyayc7CiRsYW5nWydESiddID0gJ0RqaWJvdXRpJzsKJGxhbmdbJ0RNXyddID0gJ0RvbWluaWNhJzsKJGxhbmdbJ0RPJ10gPSAnRG9taW5pY2FuIFJlcHVibGljJzsKJGxhbmdbJ1RQJ10gPSAnRWFzdCBUaW1vcic7CiRsYW5nWydFQyddID0gJ0VjdWFkb3InOwokbGFuZ1snRUcnXSA9ICdFZ3lwdCc7CiRsYW5nWydTViddID0gJ0VsIFNhbHZhZG9yJzsKJGxhbmdbJ0dRJ10gPSAnRXF1YXRvcmlhbCBHdWluZWEnOwokbGFuZ1snRVInXSA9ICdFcml0cmVhJzsKJGxhbmdbJ0VFJ10gPSAnRXN0b25pYSc7CiRsYW5nWydFVCddID0gJ0V0aGlvcGlhJzsKJGxhbmdbJ0ZLJ10gPSAnRmFsa2xhbmQgSXNsYW5kcyAoTWFsdmluYXMpJzsKJGxhbmdbJ0ZPJ10gPSAnRmFyb2UgSXNsYW5kcyc7CiRsYW5nWydGSiddID0gJ0ZpamknOwokbGFuZ1snRkknXSA9ICdGaW5sYW5kJzsKJGxhbmdbJ0ZSJ10gPSAnRnJhbmNlJzsKJGxhbmdbJ0ZYJ10gPSAnRnJhbmNlLCAgTWV0cm9wb2xpdGFuJzsKJGxhbmdbJ0dGJ10gPSAnR3Vlcm5zZXknOwokbGFuZ1snUEYnXSA9ICdGcmVuY2ggUG9seW5lc2lhJzsKJGxhbmdbJ1RGJ10gPSAnRnJlbmNoIFNvdXRoZXJuIFRlcnJpdG9yaWVzJzsKJGxhbmdbJ01LJ10gPSAnRi5ZLlIuTy5NLiAoTWFjZWRvbmlhKSc7CiRsYW5nWydHQSddID0gJ0dhYm9uJzsKJGxhbmdbJ0dNJ10gPSAnR2FtYmlhJzsKJGxhbmdbJ0dFJ10gPSAnR2VvcmdpYSc7CiRsYW5nWydERSddID0gJ0dlcm1hbnknOwokbGFuZ1snR0gnXSA9ICdHaGFuYSc7CiRsYW5nWydHSSddID0gJ0dpYnJhbHRhcic7CiRsYW5nWydHQiddID0gJ0dyZWF0IEJyaXRhaW4gKFVLKSc7CiRsYW5nWydHUiddID0gJ0dyZWVjZSc7CiRsYW5nWydHTCddID0gJ0dyZWVubGFuZCc7CiRsYW5nWydHRCddID0gJ0dyZW5hZGEnOwokbGFuZ1snR1AnXSA9ICdHdWFkZWxvdXBlJzsKJGxhbmdbJ0dVJ10gPSAnR3VhbSc7CiRsYW5nWydHVCddID0gJ0d1YXRlbWFsYSc7CiRsYW5nWydHTiddID0gJ0d1aW5lYSc7CiRsYW5nWydHVyddID0gJ0d1aW5lYS1CaXNzYXUnOwokbGFuZ1snR1knXSA9ICdHdXlhbmEnOwokbGFuZ1snSFQnXSA9ICdIYWl0aSc7CiRsYW5nWydITSddID0gJ0hlYXJkIGFuZCBNY0RvbmFsZCBJc2xhbmRzJzsKJGxhbmdbJ0hOJ10gPSAnSG9uZHVyYXMnOwokbGFuZ1snSEsnXSA9ICdIb25nIEtvbmcnOwokbGFuZ1snSFUnXSA9ICdIdW5nYXJ5JzsKJGxhbmdbJ0lTJ10gPSAnSWNlbGFuZCc7CiRsYW5nWydJTiddID0gJ0luZGlhJzsKJGxhbmdbJ0lEJ10gPSAnSW5kb25lc2lhJzsKJGxhbmdbJ0lSJ10gPSAnSXJhbic7CiRsYW5nWydJUSddID0gJ0lyYXEnOwokbGFuZ1snSUUnXSA9ICdJcmVsYW5kJzsKJGxhbmdbJ0lMJ10gPSAnSXNyYWVsJzsKJGxhbmdbJ0lNJ10gPSAnSXNsZSBvZiBNYW4nOwokbGFuZ1snSVQnXSA9ICdJdGFseSc7CiRsYW5nWydKRSddID0gJ0plcnNleSc7CiRsYW5nWydKTSddID0gJ0phbWFpY2EnOwokbGFuZ1snSlAnXSA9ICdKYXBhbic7CiRsYW5nWydKTyddID0gJ0pvcmRhbic7CiRsYW5nWydLWiddID0gJ0themFraHN0YW4nOwokbGFuZ1snS0UnXSA9ICdLZW55YSc7CiRsYW5nWydLSSddID0gJ0tpcmliYXRpJzsKJGxhbmdbJ0tQJ10gPSAnS29yZWEgKE5vcnRoKSc7CiRsYW5nWydLUiddID0gJ0tvcmVhIChTb3V0aCknOwokbGFuZ1snS1cnXSA9ICdLdXdhaXQnOwokbGFuZ1snS0cnXSA9ICdLeXJneXpzdGFuJzsKJGxhbmdbJ0xBJ10gPSAnTGFvcyc7CiRsYW5nWydMViddID0gJ0xhdHZpYSc7CiRsYW5nWydMQiddID0gJ0xlYmFub24nOwokbGFuZ1snTEknXSA9ICdMaWVjaHRlbnN0ZWluJzsKJGxhbmdbJ0xSJ10gPSAnTGliZXJpYSc7CiRsYW5nWydMWSddID0gJ0xpYnlhJzsKJGxhbmdbJ0xTJ10gPSAnTGVzb3Robyc7CiRsYW5nWydMVCddID0gJ0xpdGh1YW5pYSc7CiRsYW5nWydMVSddID0gJ0x1eGVtYm91cmcnOwokbGFuZ1snTU8nXSA9ICdNYWNhdSc7CiRsYW5nWydNRyddID0gJ01hZGFnYXNjYXInOwokbGFuZ1snTVcnXSA9ICdNYWxhd2knOwokbGFuZ1snTVknXSA9ICdNYWxheXNpYSc7CiRsYW5nWydNViddID0gJ01hbGRpdmVzJzsKJGxhbmdbJ01MJ10gPSAnTWFsaSc7CiRsYW5nWydNVCddID0gJ01hbHRhJzsKJGxhbmdbJ01IJ10gPSAnTWFyc2hhbGwgSXNsYW5kcyc7CiRsYW5nWydNUSddID0gJ01hcnRpbmlxdWUnOwokbGFuZ1snTVInXSA9ICdNYXVyaXRhbmlhJzsKJGxhbmdbJ01VJ10gPSAnTWF1cml0aXVzJzsKJGxhbmdbJ1lUJ10gPSAnTWF5b3R0ZSc7CiRsYW5nWydNWCddID0gJ01leGljbyc7CiRsYW5nWydGTSddID0gJ01pY3JvbmVzaWEnOwokbGFuZ1snTUMnXSA9ICdNb25hY28nOwokbGFuZ1snTUQnXSA9ICdNb2xkb3ZhJzsKJGxhbmdbJ01BJ10gPSAnTW9yb2Njbyc7CiRsYW5nWydNTiddID0gJ01vbmdvbGlhJzsKJGxhbmdbJ01TJ10gPSAnTW9udHNlcnJhdCc7CiRsYW5nWydNWiddID0gJ01vemFtYmlxdWUnOwokbGFuZ1snTU0nXSA9ICdNeWFubWFyJzsKJGxhbmdbJ05BJ10gPSAnTmFtaWJpYSc7CiRsYW5nWydOUiddID0gJ05hdXJ1JzsKJGxhbmdbJ05QJ10gPSAnTmVwYWwnOwokbGFuZ1snTkwnXSA9ICdOZXRoZXJsYW5kcyc7CiRsYW5nWydBTiddID0gJ05ldGhlcmxhbmRzIEFudGlsbGVzJzsKJGxhbmdbJ05UJ10gPSAnTmV1dHJhbCBab25lJzsKJGxhbmdbJ05DJ10gPSAnTmV3IENhbGVkb25pYSc7CiRsYW5nWydOWiddID0gJ05ldyBaZWFsYW5kIChBb3RlYXJvYSknOwokbGFuZ1snTkknXSA9ICdOaWNhcmFndWEnOwokbGFuZ1snTkUnXSA9ICdOaWdlcic7CiRsYW5nWydORyddID0gJ05pZ2VyaWEnOwokbGFuZ1snTlUnXSA9ICdOaXVlJzsKJGxhbmdbJ05GJ10gPSAnTm9yZm9sayBJc2xhbmQnOwokbGFuZ1snTVAnXSA9ICdOb3J0aGVybiBNYXJpYW5hIElzbGFuZHMnOwokbGFuZ1snTk8nXSA9ICdOb3J3YXknOwokbGFuZ1snT00nXSA9ICdPbWFuJzsKJGxhbmdbJ1BLJ10gPSAnUGFraXN0YW4nOwokbGFuZ1snUFcnXSA9ICdQYWxhdSc7CiRsYW5nWydQUyddID0gJ1BhbGVzdGluaWFuIFRlcnJpdG9yeSc7CiRsYW5nWydQQSddID0gJ1BhbmFtYSc7CiRsYW5nWydQRyddID0gJ1BhcHVhIE5ldyBHdWluZWEnOwokbGFuZ1snUFknXSA9ICdQYXJhZ3VheSc7CiRsYW5nWydQRSddID0gJ1BlcnUnOwokbGFuZ1snUEgnXSA9ICdQaGlsaXBwaW5lcyc7CiRsYW5nWydQTiddID0gJ1BpdGNhaXJuJzsKJGxhbmdbJ1BMJ10gPSAnUG9sYW5kJzsKJGxhbmdbJ1BUJ10gPSAnUG9ydHVnYWwnOwokbGFuZ1snUFInXSA9ICdQdWVydG8gUmljbyc7CiRsYW5nWydRQSddID0gJ1FhdGFyJzsKJGxhbmdbJ1JFJ10gPSAnUmV1bmlvbic7CiRsYW5nWydSTyddID0gJ1JvbWFuaWEnOwokbGFuZ1snUlUnXSA9ICdSdXNzaWFuIEZlZGVyYXRpb24nOwokbGFuZ1snUlcnXSA9ICdSd2FuZGEnOwokbGFuZ1snR1MnXSA9ICdTLiBHZW9yZ2lhIGFuZCBTLiBTYW5kd2ljaCBJc2xzLic7CiRsYW5nWydLTiddID0gJ1NhaW50IEtpdHRzIGFuZCBOZXZpcyc7CiRsYW5nWydMQyddID0gJ1NhaW50IEx1Y2lhJzsKJGxhbmdbJ1ZDJ10gPSAnU2FpbnQgVmluY2VudCAmYW1wOyB0aGUgR3JlbmFkaW5lcyc7CiRsYW5nWydXUyddID0gJ1NhbW9hJzsKJGxhbmdbJ1NNJ10gPSAnU2FuIE1hcmlubyc7CiRsYW5nWydTVCddID0gJ1NhbyBUb21lIGFuZCBQcmluY2lwZSc7CiRsYW5nWydTQSddID0gJ1NhdWRpIEFyYWJpYSc7CiRsYW5nWydTTiddID0gJ1NlbmVnYWwnOwokbGFuZ1snU0MnXSA9ICdTZXljaGVsbGVzJzsKJGxhbmdbJ1NMJ10gPSAnU2llcnJhIExlb25lJzsKJGxhbmdbJ1NHJ10gPSAnU2luZ2Fwb3JlJzsKJGxhbmdbJ1NJJ10gPSAnU2xvdmVuaWEnOwokbGFuZ1snU0snXSA9ICdTbG92YWsgUmVwdWJsaWMnOwokbGFuZ1snU0InXSA9ICdTb2xvbW9uIElzbGFuZHMnOwokbGFuZ1snU08nXSA9ICdTb21hbGlhJzsKJGxhbmdbJ1pBJ10gPSAnU291dGggQWZyaWNhJzsKJGxhbmdbJ0VTJ10gPSAnU3BhaW4nOwokbGFuZ1snTEsnXSA9ICdTcmkgTGFua2EnOwokbGFuZ1snU0gnXSA9ICdTdC4gSGVsZW5hJzsKJGxhbmdbJ1BNJ10gPSAnU3QuIFBpZXJyZSBhbmQgTWlxdWVsb24gJzsKJGxhbmdbJ1NEJ10gPSAnU3VkYW4nOwokbGFuZ1snU1InXSA9ICdTdXJpbmFtZSc7CiRsYW5nWydTSiddID0gJ1N2YWxiYXJkICZhbXA7IEphbiBNYXllbiBJc2xhbmRzJzsKJGxhbmdbJ1NaJ10gPSAnU3dhemlsYW5kJzsKJGxhbmdbJ1NFJ10gPSAnU3dlZGVuJzsKJGxhbmdbJ0NIJ10gPSAnU3dpdHplcmxhbmQnOwokbGFuZ1snU1knXSA9ICdTeXJpYSc7CiRsYW5nWydUVyddID0gJ1RhaXdhbic7CiRsYW5nWydUSiddID0gJ1RhamlraXN0YW4nOwokbGFuZ1snVFonXSA9ICdUYW56YW5pYSc7CiRsYW5nWydUSCddID0gJ1RoYWlsYW5kJzsKJGxhbmdbJ1RHJ10gPSAnVG9nbyc7CiRsYW5nWydUSyddID0gJ1Rva2VsYXUnOwokbGFuZ1snVE8nXSA9ICdUb25nYSc7CiRsYW5nWydUVCddID0gJ1RyaW5pZGFkIGFuZCBUb2JhZ28nOwokbGFuZ1snVE4nXSA9ICdUdW5pc2lhJzsKJGxhbmdbJ1RSJ10gPSAnVHVya2V5JzsKJGxhbmdbJ1RNJ10gPSAnVHVya21lbmlzdGFuJzsKJGxhbmdbJ1RDJ10gPSAnVHVya3MgYW5kIENhaWNvcyBJc2xhbmRzJzsKJGxhbmdbJ1RWJ10gPSAnVHV2YWx1JzsKJGxhbmdbJ1VHJ10gPSAnVWdhbmRhJzsKJGxhbmdbJ1VBJ10gPSAnVWtyYWluZSc7CiRsYW5nWydBRSddID0gJ1VuaXRlZCBBcmFiIEVtaXJhdGVzJzsKJGxhbmdbJ1VLJ10gPSAnVW5pdGVkIEtpbmdkb20nOwokbGFuZ1snVVMnXSA9ICdVbml0ZWQgU3RhdGVzJzsKJGxhbmdbJ1VNJ10gPSAnVVMgTWlub3IgT3V0bHlpbmcgSXNsYW5kcyc7CiRsYW5nWydVWSddID0gJ1VydWd1YXknOwokbGFuZ1snVVonXSA9ICdVemJla2lzdGFuJzsKJGxhbmdbJ1ZVJ10gPSAnVmFudWF0dSc7CiRsYW5nWydWQSddID0gJ1ZhdGljYW4gQ2l0eSBTdGF0ZSAoSG9seSBTZWUpJzsKJGxhbmdbJ1ZFJ10gPSAnVmVuZXp1ZWxhJzsKJGxhbmdbJ1ZOJ10gPSAnVmlldCBOYW0nOwokbGFuZ1snVkcnXSA9ICdWaXJnaW4gSXNsYW5kcyAoQnJpdGlzaCknOwokbGFuZ1snVkknXSA9ICdWaXJnaW4gSXNsYW5kcyAoVS5TLiknOwokbGFuZ1snV0YnXSA9ICdXYWxsaXMgYW5kIEZ1dHVuYSBJc2xhbmRzJzsKJGxhbmdbJ0VIJ10gPSAnV2VzdGVybiBTYWhhcmEnOwokbGFuZ1snWUUnXSA9ICdZZW1lbic7CiRsYW5nWydZVSddID0gJ1l1Z29zbGF2aWEnOwokbGFuZ1snWk0nXSA9ICdaYW1iaWEnOwokbGFuZ1snWlcnXSA9ICdaaW1iYWJ3ZSc7CiRsYW5nWydzdWJtaXNzaW9uX2Vycm9yJ10gPSAnU29ycnkhIEVyIGlzIGVlbiBmb3V0IG9wZ2V0cmVkZW4gdGlqZGVucyBkZSBmb3JtdWxpZXJ2ZXJ3ZXJraW5nLic7CiRsYW5nWydzdWJtaXRfZXJyb3InXSA9ICdGb3JtIEJ1aWxkZXIgdmVyemVuZGluZ3Nmb3V0OiAlcyc7CiRsYW5nWyd1cGxvYWRzX2Vycm9yJ10gPSAnRm91dCBiaWogaGV0IHZlcnN0dXJlbiB2YW4gaGV0IGJlc3RhbmQgbmFhciBkZSB1cGxvYWRtb2R1bGU6ICVzJzsKJGxhbmdbJ25vdXBsb2Fkc19lcnJvciddID0gJ0RlIFVwbG9hZG1vZHVsZSBrb24gbmlldCB3b3JkZW4gZ2V2b25kZW4nOwokbGFuZ1sndXBsb2FkX2F0dGFjaF9lcnJvciddID0gJ1VwbG9hZC9CaWpsYWdlIGZvdXQgYmlqIGJlc3RhbmQgJXMgKHRtcF9uYW1lOiAlcywgdHlwZSAlcyknOwokbGFuZ1snc3VibWlzc2lvbl9lcnJvcl9maWxlX2xvY2snXSA9ICdGb3V0LiBLYW4gZ2VlbiBsb2NrIHZvb3IgYmVzdGFuZCBrcmlqZ2VuLic7CiRsYW5nWyd1bmNoZWNrZWRfYnlfZGVmYXVsdCddID0gJ1N0YW5kYWFyZDogbmlldC1nZXNlbGVjdGVlcmQnOwokbGFuZ1snY2hlY2tlZF9ieV9kZWZhdWx0J10gPSAnU3RhbmRhYXJkOiBnZXNlbGVjdGVlcmQnOwokbGFuZ1snZW1haWxfZGVmYXVsdF90ZW1wbGF0ZSddID0gJ0Zvcm0gQnVpbGRlciBWZXJ6ZW5kaW5nJzsKJGxhbmdbJ2VtYWlsX3RlbXBsYXRlX25vdF9zZXQnXSA9ICc8YnIgLz5FLW1haWxzamFibG9vbiBub2cgbmlldCBpbmdlc3RlbGQhJzsKJGxhbmdbJ21pc3NpbmdfY21zX21haWxlciddID0gJ0Zvcm0gQnVpbGRlcjogS2FuIGRlIHZlcmVpc3RlIENNU01haWxlciBtb2R1bGUgbmlldCB2aW5kZW4hJzsKJGxhbmdbJ3VzZXJfYXBwcm92ZWRfc3VibWlzc2lvbiddID0gJ0dlYnJ1aWtlciBnb2VkZ2VrZXVyZGUgdmVyemVuZGluZyAlcyB2YW4gJXMnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdCddID0gJ0VlbiB0YWcgZGllIHdvcmR0IGFhbmdlcm9lcGVuIGFscyBlZW4gRm9ybSBCdWlsZGVyLWZvcm11bGllciB2ZXJ6b25kZW4gd29yZHQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdEVycm9yJ10gPSAnRWVuIHRhZyBkaWUgd29yZHQgYWFuZ2Vyb2VwZW4gYWxzIGVlbiBmb3V0IG9wdHJlZWR0IGJpaiBoZXQgdmVyemVuZGVuIHZhbiBlZW4gRm9ybSBCdWlsZGVyLWZvcm11bGllcic7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtRGlzcGxheSddID0gJ0VlbiB0YWcgZGllIHdvcmR0IGFhbmdlcm9lcGVuIGFscyBlZW4gRm9ybSBCdWlsZGVyLWZvcm11bGllciB3b3JkdCBnZXRvb25kJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXSA9ICc8cD5FZW4gZ2ViZXVydGVuaXMgZGllIHdvcmR0IGFhbmdlcm9lcGVuIGFscyBlZW4gRm9ybSBCdWlsZGVyLWZvcm11bGllciB2ZXJ6b25kZW4gd29yZHQuPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIEZvcm11bGllcm5hYW0gKHN0cmluZyk8L2xpPg0KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBJbnRlcm4gZm9ybXVsaWVyIElEIChpbnQpPC9saT4NCjwvdWw+ICc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InXSA9ICc8cD5FZW4gZ2ViZXVydGVuaXMgZGllIHdvcmR0IGFhbmdlcm9lcGVuIGFscyBlZW4gZm91dCBvcHRyZWVkdCBiaWogaGV0IHZlcnplbmRlbiB2YW4gZWVuIEZvcm0gQnVpbGRlci1mb3JtdWxpZXI8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gRm9ybXVsaWVybmFhbSAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIEludGVybiBmb3JtdWxpZXIgSUQgKGludCk8L2xpPg0KPGxpPjxlbT5lcnJvcjwvZW0+IC0gRWVuIGxpanN0IHZhbiBhbGxlIGJla2VuZGUgZm91dGVuIChzdHJpbmcpPC9saT4NCjwvdWw+ICc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtRGlzcGxheSddID0gJzxwPkVlbiBnZWJldXJ0ZW5pcyBkaWUgd29yZHQgYWFuZ2Vyb2VwZW4gYWxzIGVlbiBGb3JtIEJ1aWxkZXItZm9ybXVsaWVyIHdvcmR0IGdldG9vbmQ8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gRm9ybXVsaWVybmFhbSAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIEludGVybiBmb3JtdWxpZXIgSUQgKGludCk8L2xpPg0KPC91bD4gJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19yZXNwb25zZV9pZCddID0gJ1JlYWN0aWUtSUQuIEdlYnJ1aWt0IGRvb3IgRm9ybUJyb3dzZXInOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX3Bhc3NlZF9mcm9tX3RhZyddID0gJ1N0YW5kYWFyZCB2ZWxkd2FhcmRlbjsgemllIG1vZHVsZWh1bHAnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2ZpZWxkX2lkJ10gPSAnVmVsZC1JRCB2b29yIGludGVybmUgb3BlcmF0aWVzJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19mb3JtX25hbWUnXSA9ICdGb3JtdWxpZXJuYWFtJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19mb3JtX2lkJ10gPSAnRm9ybXVsaWVyLUlEIHZvb3IgaW50ZXJuZSBvcGVyYXRpZSc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZ2VuZXJhbCddID0gJ0FsZ2VtZW5lIHBhcmFtZXRlcnMgdm9vciBpbnRlcm5lIG9wZXJhdGllcyc7CiRsYW5nWyd0ZW1wbGF0ZV92YXJpYWJsZV9oZWxwJ10gPSAnPGgzPkZvcm0gVGVtcGxhdGUgVmFyaWFibGVzPC9oMz4NCjxwPllvdSBjYW4gZWRpdCBpdCB0byBtYWtlIHlvdXIgZm9ybSBsYXlvdXQgbG9vayBhbnkgd2F5IHlvdSYjMDM5O2QgbGlrZS4NCiAgIFRvIG1ha2UgdGhlIGZvcm0gd29yaywgeW91JiMwMzk7bGwgbmVlZCB0byBhbHdheXMgaW5jbHVkZSB0aGUgJmFtcDsjMTIzOyRmYl9oaWRkZW59IGFuZCAmYW1wOyMxMjM7JHN1Ym1pdH0NCiAgIHRhZ3MuPC9wPg0KDQo8cD5Zb3UgY2FuIGFjY2VzcyB5b3VyIGZvcm0gZmllbGRzIGVpdGhlciB1c2luZyB0aGUgJGZpZWxkcyBhcnJheSBvciBieSBkaXJlY3RseSBhY2Nlc3NpbmcgZmllbGRzIGJ5IHRoZWlyIG5hbWVzIChlLmcuLCAmYW1wOyMxMjM7JG15ZmllbGQtPmlucHV0fSApPC9wPg0KDQoNCjxwPkVhY2ggZmllbGQgaGFzIHRoZSBmb2xsb3dpbmcgYXR0cmlidXRlczo8L3A+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+ZmllbGQtPmhlbHB0ZXh0PC90ZD48dGQ+dGhlIGZpZWxkJiMwMzk7cyBoZWxwIHRleHQ8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5pbnB1dDwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgaW5wdXQgY29udHJvbCAoZS5nLiwgdGhlIGlucHV0IGZpZWxkIGl0c2VsZik8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5vcDwvdGQ+PHRkPmEgY29udHJvbCBidXR0b24gYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWVsZCBpZiBhcHBsaWNhYmxlIChlLmcuLCB0aGUgZGVsZXRlIGJ1dHRvbiBmb3IgZXhwYW5kYWJsZSB0ZXh0IGlucHV0KTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmlucHV0X2lkPC90ZD48dGQ+dGhlIElEIG9mIHRoZSBmaWVsZCYjMDM5O3MgaW5wdXQgKHVzZWZ1bCBmb3IgbGFiZWwgZm9yPSZxdW90O2ZvbyZxdW90Oyk8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT50eXBlPC90ZD48dGQ+dGhlIGZpZWxkJiMwMzk7cyBkYXRhIHR5cGU8L3RkPjwvdHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KPHRyPjx0ZD5maWVsZC0+bXVsdGlwbGVfcGFydHM8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYSBjb2xsZWN0aW9uIG9mIGNvbnRyb2xzPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+bGFiZWxfcGFydHM8L3RkPjx0ZD4xIGlmIHRoZSBjb2xsZWN0aW9uIG9mIGNvbnRyb2xzIGhhcyBzZXBhcmF0ZSBsYWJlbHMgZm9yIGVhY2ggY29udHJvbDwvdGQ+PC90cj4NCjwvdGFibGU+DQoNCjxwPkluIHRoZSBjYXNlIG9mIGEgbXVsdGlwYWdlIGZvcm0sIHlvdSB3aWxsIGFsc28gaGF2ZSBhY2Nlc3MgdG8gdGhlIHZhbHVlIG9mIHByZXZpb3VzIGZpZWxkcy4gVGhleQ0KYXJlIGluIHRoZSAkcHJldmlvdXMgYXJyYXksIG9yIGFjY2Vzc2libGUgYnkgdGhlaXIgbmFtZXMgKGUuZy4sICZhbXA7IzEyMzskbXlmaWVsZC0+dmFsdWV9ICkuDQpZb3UgY2FuIHVzZSB0aGlzIGluIFN0YXRpYyBUZXh0IGZpZWxkcyBhcyB3ZWxsLCB3aGljaCBpcyBhIG5pY2Ugd2F5IHRvIHBlcnNvbmFsaXplIGZvcm1zITwvcD4NCg0KPHA+SW4gY2VydGFpbiBjYXNlcywgZmllbGQtPmlucHV0IGlzIGFjdHVhbGx5IGFuIGFycmF5IG9mIG9iamVjdHMgcmF0aGVyIHRoYW4gYW4gaW5wdXQuIFRoaXMgaGFwcGVucywgZm9yIGV4YW1wbGUsIGluIENoZWNrQm94R3JvdXBzIG9yIFJhZGlvQnV0dG9uR3JvdXBzLiBGb3IgdGhlbSwgeW91IGNhbiBpdGVyYXRlIHRocm91Z2ggZmllbGQtPmlucHV0LT5uYW1lIGFuZCBmaWVsZC0+aW5wdXQtPmlucHV0cy48L3A+DQogICAgDQo8cD5BZGRpdGlvbmFsIHNtYXJ0eSB2YXJpYWJsZXMgdGhhdCB5b3UgY2FuIHVzZSBpbmNsdWRlOjwvcD4NCjx0YWJsZT4NCjx0cj48dGg+VmFyaWFibGU8L3RoPjx0aD5WYWx1ZTwvdGg+PC90cj4NCjx0cj48dGQ+dG90YWxfcGFnZXM8L3RkPjx0ZD5udW1iZXIgb2YgcGFnZXMgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPnRoaXNfcGFnZTwvdGQ+PHRkPm51bWJlciBmbyB0aGUgY3VycmVudCBwYWdlIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD50aXRsZV9wYWdlX3hfb2ZfeTwvdGQ+PHRkPmRpc3BsYXlzICZxdW90O3BhZ2UgeCBvZiB5JnF1b3Q7IGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD5jc3NfY2xhc3M8L3RkPjx0ZD5DU1MgQ2xhc3MgZm9yIHRoZSBmb3JtPC90ZD48L3RyPg0KPHRyPjx0ZD5mb3JtX25hbWU8L3RkPjx0ZD5Gb3JtIG5hbWU8L3RkPjwvdHI+DQo8dHI+PHRkPmZvcm1faWQ8L3RkPjx0ZD5Gb3JtIGRhdGFiYXNlIElEPC90ZD48L3RyPg0KPHRyPjx0ZD5wcmV2PC90ZD48dGQ+JnF1b3Q7QmFjayZxdW90OyBidXR0b24gZm9yIG11bHRpcGFydCBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+c3VibWl0PC90ZD48dGQ+JnF1b3Q7Q29udGludWUmcXVvdDsgb3IgJnF1b3Q7U3VibWl0JnF1b3Q7IGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zLCBhZGp1c3RzIGF1dG9tYXRpY2FsbHk8L3RkPjwvdHI+DQo8L3RhYmxlPg0KPHA+RHVubm8gd2h5IHlvdSYjMDM5O2Qgd2FudCBzb21lIG9mIHRob3NlLCBidXQgdGhlcmUgeW91IGdvLi4uPC9wPg0KJzsKJGxhbmdbJ3Bvc3RfaW5zdGFsbCddID0gJ0RlIG1vZHVsZSBGb3JtQnVpbGRlciBpcyBnZSZpdW1sO25zdGFsbGVlcmQuIFJhYWRwbGVlZyBkZSBIZWxwIHBhZ2luYSB2b29yIG1lZXIgaW5mb3JtYXRpZS4nOwokbGFuZ1snaGVscCddID0gJzxoMz5XaGF0IERvZXMgVGhpcyBEbz88L2gzPg0KPHA+VGhlIEZvcm0gQnVpbGRlciBNb2R1bGUgYWxsb3dzIHlvdSB0byBjcmVhdGUgZm9ybXMgKGluIGZhY3QsIGl0JiMwMzk7cyBhIHJlcGxhY2VtZW50IG9mIHRoZSBvcmlnaW5hbCBGZWVkYmFjayBGb3JtIG1vZHVsZSksIHdpdGgNCnRoZSBhZGRlZCBwb3dlciBvZiBkYXRhYmFzZSBzdG9yYWdlLiBXaXRoIGl0cyBjb21wYW5pb24gbW9kdWxlIEZvcm0gQnJvd3NlciwgeW91IGNhbiB1c2UgaXQgdG8gY3JlYXRlIHNpbXBsZSBkYXRhYmFzZSBhcHBsaWNhdGlvbnMuPC9wPg0KPHA+VGhlIGZvcm1zIGNyZWF0ZWQgdXNpbmcgdGhlIEZvcm0gQnVpbGRlciBtYXkgYmUgaW5zZXJ0ZWQNCmludG8gdGVtcGxhdGVzIGFuZC9vciBjb250ZW50IHBhZ2VzLiBGb3JtcyBtYXkgY29udGFpbiBtYW55IGtpbmRzIG9mIGlucHV0cywgYW5kIG1heSBoYXZlDQp2YWxpZGF0aW9uIGFwcGxpZWQgdG8gdGhlc2UgaW5wdXRzLiBUaGUgcmVzdWx0cyBvZiB0aGVzZSBmb3JtcyBtYXkgYmUgaGFuZGxlZCBpbiBhIHZhcmlldHkgb2Ygd2F5cy48L3A+DQoNCjxoMz5Ib3cgRG8gSSBVc2UgaXQ/PC9oMz4NCjxQPkluc3RhbGwgaXQsIGFuZCBwb2tlIGFyb3VuZCB0aGUgbWVudXMuIFBsYXkgd2l0aCBpdC4gVHJ5IGNyZWF0aW5nIGZvcm1zLCBhbmQgYWRkaW5nIHRoZW0gdG8geW91ciBjb250ZW50Lg0KSWYgeW91IGdldCBzdHVjaywgY2hhdCB3aXRoIG1lIG9uIHRoZSAjY21zIElSQyBjaGFubmVsLCBwb3N0IHRvIHRoZSBmb3J1bSwgc2VuZCBtZSBlbWFpbCwgb3IsIGlmIHlvdSYjMDM5O3JlDQpyZWFsbHkgZGVzcGVyYXRlLCB0cnkgcmVhZGluZyB0aGUgaW5zdHJ1Y3Rpb25zIG9uIHRoZSByZXN0IG9mIHRoaXMgcGFnZS48L1A+DQoNCjxoMz5Ib3cgRG8gSSBDcmVhdGUgYSBGb3JtPC9oMz4NCjxwPkluIHRoZSBDTVMgQWRtaW4gTWVudSwgeW91IHNob3VsZCBnZXQgYSBuZXcgbWVudSBpdGVtIGNhbGxlZCBGb3JtQnVpbGRlci4gQ2xpY2sgb24gdGhpcy4gT24gdGhlIHBhZ2UNCnRoYXQgZ2V0cyBzaG93biwgdGhlcmUgYXJlIG9wdGlvbnMgKGF0IHRoZSBib3R0b20gb2YgdGhlIGxpc3Qgb2YgRm9ybXMpIHRvIEFkZCBhIE5ldyBGb3JtIG9yIE1vZGlmeQ0KQ29uZmlndXJhdGlvbi48L3A+DQoNCjxoMz5BZGRpbmcgYSBGb3JtIHRvIGEgUGFnZTwvaDM+DQo8cD5JbiB0aGUgbWFpbiBGb3JtQnVpbGRlciBhZG1pbiBwYWdlLCB5b3UgY2FuIHNlZSBhbiBleGFtcGxlIG9mIHRoZSB0YWcgdXNlZCB0byBkaXNwbGF5IGVhY2ggZm9ybS4gSXQgbG9va3MNCnNvbWV0aGluZyBsaWtlIHtGb3JtQnVpbGRlciBmb3JtPSYjMDM5O3NhbXBsZV9mb3JtJiMwMzk7fTwvcD4NCjxwPkJ5IGNvcHlpbmcgdGhpcyB0YWcgaW50byB0aGUgY29udGVudCBvZiBhIHBhZ2UsIG9yIGludG8gYSB0ZW1wbGF0ZSwgd2lsbCBjYXVzZSB0aGF0IGZvcm0gdG8gYmUgZGlzcGxheWVkLg0KSW4gdGhlb3J5LCB5b3UgY2FuIGhhdmUgbXVsdGlwbGUgZm9ybXMgb24gYSBwYWdlIGlmIHlvdSByZWFsbHkgd2FudCB0by4gQmUgY2FyZWZ1bCB3aGVuIHBhc3RpbmcgdGhlIHRhZw0KaW50byBhIHBhZ2UmIzAzOTtzIGNvbnRlbnQgaWYgeW91IHVzZSBhIFdZU0lXWUcgZWRpdG9yIHN1Y2ggYXMgVGlueU1DRSwgRkNLRWRpdCwgb3IgSFRNTEFyZWEuIFRoZXNlIGVkaXRvcnMgbWF5IHN0ZWFsdGhpbHkNCmNoYW5nZSB0aGUgcXVvdGUgbWFya3MgKCZxdW90OykgaW50byBIVE1MIGVudGl0aWVzICgmYW1wO2FtcDtxdW90OyksIGFuZCB0aGUgZm9ybXMgd2lsbCBub3Qgc2hvdyB1cC4gVHJ5IHVzaW5nDQpzaW5nbGUgcXVvdGVzICgmIzAzOTspIG9yIGVkaXRpbmcgdGhlIEhUTUwgZGlyZWN0bHkuPC9wPg0KDQo8aDM+V29ya2luZyB3aXRoIEZvcm1zPC9oMz4NCjxwPkJ5IGNsaWNraW5nIG9uIGEgRm9ybSYjMDM5O3MgbmFtZSwgeW91IGVudGVyIHRoZSBGb3JtIEVkaXQgcGFnZS4gVGhlcmUgYXJlIHNldmVyYWwgdGFicywgd2hpY2ggYXJlIGRlc2NyaWJlZCBiZWxvdzo8L3A+DQo8aDQ+TWFpbjwvaDQ+DQo8cD5UaGlzIGlzIHRoZSBtYWluIHBsYWNlIHlvdSYjMDM5O2xsIHdvcmsgb24geW91ciBmb3JtLiBIZXJlLCB5b3UgZ2l2ZSBpdCBhIG5hbWUsIGFuIGFsaWFzICh3aGljaCBpcyB1c2VkIHRvIGlkZW50aWZ5IGl0IGZvciBwbGFjaW5nIGl0IGluIGEgcGFnZSBvciB0ZW1wbGF0ZSksIGFuZCwgb3B0aW9uYWxseSwgYSBDU1MgY2xhc3Mgd2l0aCB3aGljaCB0byB3cmFwIHRoZSB3aG9sZSB0aGluZy48L3A+DQo8cD5CZWxvdyB0aGlzLCBpZiB5b3UgaGF2ZSBpdCBlbmFibGVkLCBpcyB0aGUgJnF1b3Q7ZmFzdCBmaWVsZCBhZGRlciZxdW90OyBwdWxsZG93biwgdGhhdCBsZXRzIHlvdSBxdWlja2x5IGFkZCBhIGZpZWxkIHRvIHRoZSBlbmQgb2YgeW91ciBmb3JtIGJ5IHNlbGVjdGluZyB0aGUgZmllbGQgdHlwZS48L3A+DQo8cD5CZWxvdyB0aGlzIGlzIHRoZSBsaXN0IG9mIGZpZWxkcyB0aGF0IG1ha2UgdXAgeW91ciBmb3JtLiBNb3JlIGRldGFpbCBvbiB0aGlzIGlzIGRlc2NyaWJlZCBiZWxvdy48L3A+DQo8aDQ+Rm9ybSBTdWJtaXNzaW9uPC9oND4NCjxwPldoZW4gdGhlIGZvcm0gaXMgc3VibWl0dGVkLCB5b3UgY2FuIGVpdGhlciByZWRpcmVjdCB0aGUgdXNlciB0byBhbm90aGVyIHBhZ2Ugb2YgeW91ciBzaXRlLCBvciB5b3UgY2FuIHByZXNlbnQgdGhlIHVzZXIgc29tZSBtZXNzYWdlICh3aGljaCBjYW4gY29udGFpbiBhbnkgb2YgdGhlIHVzZXImIzAzOTtzIGZvcm0gZW50cmllcywgb3IganVzdCBzdGF0aWMgdGV4dCkuIEluIHRoaXMgdGFiLCB5b3Ugc2VsZWN0IHdoaWNoIG9mIHRoZXNlIGFwcHJvYWNoZXMgeW91IHdpc2ggdG8gdXNlLCBhbmQsIGlmIHlvdSBjaG9zZSByZWRpcmVjdGlvbiwgaXQgYWxsb3dzIHlvdSB0byBwaWNrIHRoZSBwYWdlIHRvIHJlZGlyZWN0IHVzZXJzIHRvIGFmdGVyIGEgc3VjY2Vzc2Z1bCBmb3JtIHN1Ym1pc3Npb24uPC9wPg0KPHA+QWxzbyBvbiB0aGlzIHBhZ2UsIHlvdSBjYW4gc3BlY2lmeSB0aGUgbGFiZWxzIG9mIHZhcmlvdXMgc3VibWlzc2lvbiBidXR0b25zICgmcXVvdDtQcmV2aW91cyZxdW90OywgJnF1b3Q7bmV4dCZxdW90OywgJnF1b3Q7c3VibWl0JnF1b3Q7KS4gWW91IGNhbiBhbHNvIG9wdCB0byBoYXZlIHNvbWUgSmF2YXNjcmlwdCBhZGRlZCB0byB0aGUgbGFzdCBwYWdlIG9mIGEgZm9ybSB0aGF0IHdpbGwgcHJldmVudCBtdWx0aXBsZSBzdWJtaXNzaW9ucyAodXNlZnVsIG9uIHNsb3cgc2VydmVycykuPC9wPg0KPGg0PkZvcm0gRGlzcGxheSBPcHRpb25zPC9oND4NCjxwPlRoaXMgdGFiIGFsbG93cyBmb3Igb3RoZXIgZm9ybSBjdXN0b21pemF0aW9ucywgbGlrZSB0aGUgc3ltYm9sIHRvIHNob3cgZm9yIHJlcXVpcmVkIGZpZWxkcy48L3A+DQo8aDQ+Q2FwdGNoYSBTZXR0aW5nczwvaDQ+DQo8cD5JZiB5b3UgaGF2ZSBpbnN0YWxsZWQgdGhlIENhcHRjaGEgbW9kdWxlLCB0aGlzIHRhYiBsZXRzIHlvdSBjb25maWd1cmUgdGhlIENhcHRjaGEgc2V0dGluZ3MgZm9yIHlvdXIgZm9ybS48L3A+DQo8aDQ+Rm9ybSBUZW1wbGF0ZTwvaDQ+DQo8cD5UaGlzIGlzIHdoZXJlIHlvdSBkbyB5b3VyIGN1c3RvbWl6YXRpb24gd29yayBvZiB5b3VyIGZvcm0mIzAzOTtzIFNtYXJ0eSBUZW1wbGF0ZS4gU2VlIHRoZSBzZWN0aW9uIGNhbGxlZCBGb3JtIFRlbXBsYXRlIFZhcmlhYmxlcyBiZWxvdy48L3A+DQo8cD5UaGUgZm9ybSBzaG91bGQgZGVmYXVsdCB0byBhIEN1c3RvbSB0ZW1wbGF0ZSB0aGF0IGRvY3VtZW50cyB0aGUgU21hcnR5IHRhZ3MgYXZhaWxhYmxlIHRvIHlvdS48L3A+DQo8cD5Vbmxlc3MgeW91JiMwMzk7cmUgYSBTbWFydHkgZXhwZXJ0LCB5b3UgcHJvYmFibHkgZG9uJiMwMzk7dCB3YW50IHRvIG1lc3MgYXJvdW5kIHdpdGggdGhpcy4gSWYgeW91IGFyZSBhIFNtYXJ0eSBleHBlcnQsIHRoaXMgaXMgd2hlcmUgeW91IGNhbiB1bmxlYXNoIHlvdXIgbWFnaWMuPC9wPg0KPGg0PlN1Ym1pc3Npb24gVGVtcGxhdGU8L2g0Pg0KPHA+SWYsIGluIHRoZSBGb3JtIFN1Ym1pc3Npb24gdGFiLCB5b3Ugc2VsZWN0ZWQgJiMwMzk7RGlzcGxheSAmcXVvdDtTdWJtaXNzaW9uIFRlbXBsYXRlJnF1b3Q7LCB0aGlzIGlzIHdoZXJlIHlvdSBjYW4gY3JlYXRlIHRoYXQgdGVtcGxhdGUuIFRoZXJlIGlzIGEgZGlzcGxheSBvZiB3aGljaCBzbWFydHkgdmFyaWFibGVzIGFyZSBhdmFpbGFibGUgdG8geW91LCBhbmQgYSBidXR0b24gdG8gZ2VuZXJhdGUgYSBzYW1wbGUgdGVtcGxhdGUuPC9wPg0KPHA+SWYgeW91JiMwMzk7cmUgYSBTbWFydHkgZXhwZXJ0LCB5b3UgY2FuIGRvIGFsbCBtYW5uZXIgb2YgY3JlYXRpdmUgYW5kIHBvd2VyZnVsIHRoaW5ncyBoZXJlLiBJZiB5b3UmIzAzOTtyZSBub3QgYSBTbWFydHkgZXhwZXJ0LCB5b3UgbWlnaHQganVzdCB3YW50IHRvIHVzZSB0aGUgZGVmYXVsdC4NCjwvcD4NCg0KPGgzPkFkZGluZyBGaWVsZHMgdG8geW91ciBGb3JtPC9oMz4NCjxwPlRoZSB0eXBlcyBvZiBmaWVsZHMgdGhhdCBhcmUgY3VycmVudGx5IHN1cHBvcnRlZCBmaXQgaW50byBmb3VyIGdyb3Vwczogc3RhbmRhcmQgaW5wdXQgZmllbGRzLCBkaXNwbGF5IGNvbnRyb2wgZmllbGRzLCBlbWFpbC1zcGVjaWZpYyBmaWVsZHMsIGFuZCBmb3JtIHJlc3VsdCBoYW5kbGluZyBmaWVsZHMgKGFsc28gY2FsbGVkIEZvcm0gRGlzcG9zaXRpb25zIGluIHBsYWNlcyk6PC9wPg0KPHVsPg0KPGxpPlN0YW5kYXJkIElucHV0IEZpZWxkcyAtIHRoZXNlIGFyZSBpbnB1dHMgdGhhdCBhbGxvdyBlbnRyeSBvZiB0eXBpY2FsIGZvcm0gZWxlbWVudHM7IHRleHQgaW5wdXRzLCByYWRpbyBidXR0b25zLCBldGMuPC9saT4NCjxsaT5EaXNwbGF5IENvbnRyb2wgRmllbGRzIC0gdGhlc2UgaW5wdXQgY29udHJvbCBob3cgdGhlIHVzZXIgd2lsbCBzZWUgdGhlIGRpc3BsYXkgb2YgdGhlIGZvcm07IHBhZ2UgYnJlYWtzLCBzdGF0aWMgdGV4dCwgZXRjLjwvbGk+DQo8bGk+RW1haWwtc3BlY2lmaWMgRmllbGRzIC0gc29tZSBmb3JtcyBnZW5lcmF0ZSBlbWFpbCwgYW5kIGVtYWlsLXNwZWNpZmljIGZpZWxkcyBjYW4gYWx0ZXIgYXR0cmlidXRlcyBvZiB0aGUgZW1haWxzIHNlbnQuPC9saT4NCjxsaT5Gb3JtIERpc3Bvc2l0aW9ucyAtIFRoZXNlIGRldGVybWluZSB3aGF0IGhhcHBlbnMgd2hlbiB0aGUgdXNlcg0Kc3VibWl0cyB0aGUgZm9ybTsgZm9yIGVhY2ggcmVzdWx0IGhhbmRsaW5nIGZpZWxkLCBzb21lIG1ldGhvZCBvZiB0cmFuc21pdHRpbmcsIHNhdmluZywgb3IgZW1haWxpbmcgdGhlDQpmb3JtIGNvbnRlbnRzIHRha2VzIHBsYWNlLiBBIGZvcm0gbWF5IGhhdmUgbXVsdGlwbGUgZm9ybSBkaXNwb3NpdGlvbnMuPC9saT4NCjwvdWw+DQo8cD5Gb3JtIGZpZWxkcyBhcmUgYXNzaWduZWQgbmFtZXMuIFRoZXNlIG5hbWVzIGlkZW50aWZ5IHRoZSBmaWVsZCwgbm90IG9ubHkgb24gdGhlIHNjcmVlbiBhcyBsYWJlbHMgZm9yIHRoZSB1c2VyLA0KYnV0IGluIHRoZSBkYXRhIHdoZW4gaXQmIzAzOTtzIHN1Ym1pdHRlZCBzbyB5b3Uga25vdyB3aGF0IHRoZSB1c2VyIGlzIHJlc3BvbmRpbmcgdG8uIFBocmFzaW5nIHRoZSBuYW1lIGxpa2UgYSBxdWVzdGlvbg0KaXMgYSBoYW5keSB3YXkgb2YgbWFraW5nIGl0IGNsZWFyIHRvIHRoZSB1c2VyIHdoYXQgaXMgZXhwZWN0ZWQuIFNpbWlsYXJseSwgbWFueSBmaWVsZHMgaGF2ZSBib3RoIE5hbWVzIGFuZCBWYWx1ZXMuDQpUaGUgTmFtZXMgYXJlIHdoYXQgZ2V0cyBzaG93biB0byB0aGUgdXNlcjsgdGhlIFZhbHVlIGlzIHdoYXQgZ2V0cyBzYXZlZCBvciB0cmFuc21pdHRlZCB3aGVuIHRoZSB1c2VyIHN1Ym1pdHMNCnRoZSBmb3JtLiBUaGUgVmFsdWVzIGFyZSBuZXZlciBzZWVuIGJ5IHRoZSB1c2VyLCBub3IgYXJlIHRoZXkgdmlzaWJsZSBpbiB0aGUgSFRNTCwgc28gaXQmIzAzOTtzIHNhZmUgdG8gdXNlIGZvcg0KZW1haWwgYWRkcmVzc2VzIGFuZCBzdWNoLjwvcD4NCjxwPlNvbWUgZmllbGRzIGNhbiBoYXZlIG11bHRpcGxlIHZhbHVlcywgb3IgbXVsdGlwbGUgbmFtZS92YWx1ZSBwYWlycy4gV2hlbiB5b3UgZmlyc3QgY3JlYXRlIHN1Y2ggYSBmaWVsZCwNCnRoZXJlIG1heSBub3QgYmUgc3VmZmljaWVudCBpbnB1dHMgZm9yIHlvdSB0byBzcGVjaWZ5IGFsbCB0aGUgdmFsdWVzIHlvdSB3YW50LiBUbyBnZXQgbW9yZSBzcGFjZSBmb3IgaW5wdXR0aW5nDQp0aGVzZSB2YWx1ZXMsIHVzZSB0aGUgYnV0dG9ucyBhdCB0aGUgYm90dG9tIG9mIHRoZSBwYWdlIGZvciBhZGRpbmcgb3B0aW9ucy48L3A+DQo8cD5GaWVsZHMgY2FuIGJlIGFzc2lnbmVkIHZhbGlkYXRpb24gcnVsZXMsIHdoaWNoIHZhcnkgYWNjb3JkaW5nIHRvIHRoZSB0eXBlIG9mIHRoZSBmaWVsZC4gVGhlc2UgcnVsZXMgaGVscA0KZW5zdXJlIHRoYXQgdGhlIHVzZXIgZW50ZXJzIHZhbGlkIGRhdGEuIFRoZXkgbWF5IGFsc28gYmUNCnNlcGFyYXRlbHkgbWFya2VkICZxdW90O1JlcXVpcmVkJnF1b3Q7LCB3aGljaCB3aWxsIGZvcmNlIHRoZSB1c2VyIHRvIGVudGVyIGEgcmVzcG9uc2UuPC9wPg0KPHA+RmllbGRzIGFsc28gbWF5IGJlIGFzc2lnbmVkIGEgQ1NTIGNsYXNzLiBUaGlzIHNpbXBseSB3cmFwcyB0aGUgaW5wdXQgaW4gYSBkaXYgd2l0aCB0aGF0IGNsYXNzLCBzbyBhcyB0byBhbGxvdw0KY3VzdG9taXplZCBsYXlvdXRzLiBUbyB1c2UgdGhpcyBlZmZlY3RpdmVseSwgeW91IG1heSBuZWVkIHRvICZxdW90O3ZpZXcgc291cmNlJnF1b3Q7IG9uIHRoZSBnZW5lcmF0ZWQgZm9ybSwgYW5kIHRoZW4NCndyaXRlIHlvdXIgQ1NTLjwvcD4NCjx1bD4NCjxsaT5TdGFuZGFyZCBJbnB1dHMNCjx1bD48bGk+VGV4dCBJbnB1dC4gVGhpcyBpcyBhIHN0YW5kYXJkIHRleHQgZmllbGQuIFlvdSBjYW4gbGltaXQgdGhlIGxlbmd0aCwgYW5kIGFwcGx5IHZhcmlvdXMgdmFsaWRhdGlvbg0KZnVuY3Rpb25zIHRvIHRoZSBmaWVsZC48L2xpPg0KPGxpPlRleHQgQXJlYS4gVGhpcyBpcyBhIGJpZywgZnJlZS1mb3JtIHRleHQgaW5wdXQgZmllbGQuPC9saT4NCjxsaT5DaGVja2JveC4gVGhpcyBpcyBhIHN0YW5kYXJkIGNoZWNrIGJveC48L2xpPg0KPGxpPkJ1dHRvbi4gVGhpcyBkb2VucyYjMDM5O3QgZG8gYW55dGhpbmcsIGJ1dCB5b3UgY2FuIGhvb2sgaXQgaW50byBzb21lIEphdmFzY3JpcHQuPC9saT4NCjxsaT5DaGVja2JveCBHcm91cC4gVGhpcyBpcyBhIGNvbGxlY3Rpb24gb2YgY2hlY2tib3hlcy4gVGhlIG9ubHkgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoaXMgaW5wdXQgYW5kIGENCmNvbGxlY3Rpb24gb2YgQ2hlY2tib3ggaW5wdXRzIGlzIHRoYXQgdGhleSBhcmUgcHJlc2VudGVkIGFzIGEgZ3JvdXAsIHdpdGggb25lIG5hbWUsIGFuZCBjYW4gaGF2ZSBhIHZhbGlkYXRpb24gZnVuY3Rpb24gcmVxdWlyaW5nIHRoYXQgeW91IGNoZWNrIG9uZSBvciBtb3JlIG9mIHRoZSBib3hlcyBpbiB0aGUgZ3JvdXAuPC9saT4NCjxsaT5SYWRpbyBHcm91cC4gVGhpcyBpcyBhIGNvbGxlY3Rpb24gb2YgcmFkaW8gYnV0dG9ucy4gT25seSBvbmUgb2YgdGhlIGdyb3VwIG1heSBiZSBzZWxlY3RlZCBieSB0aGUgdXNlci48L2xpPg0KPGxpPlB1bGxkb3duLiBUaGlzIGlzIGEgc3RhbmRhcmQgcHVsbGRvd24gbWVudS4gSXQmIzAzOTtzIHJlYWxseSBjb25jZXB0dWFsbHkgdGhlIHNhbWUgdGhpbmcgYXMgYSByYWRpbyBidXR0b24NCmdyb3VwLCBidXQgaXMgYmV0dGVyIHdoZW4gdGhlcmUgYXJlIGEgbGFyZ2UgbnVtYmVyIG9mIG9wdGlvbnMuPC9saT4NCjxsaT5NdWx0aXNlbGVjdC4gVGhpcyBpcyBhIG11bHRpLXNlbGVjdCBmaWVsZC4gSXQmIzAzOTtzIHJlYWxseSBjb25jZXB0dWFsbHkgdGhlIHNhbWUgdGhpbmcgYXMgYSBjaGVja2JveCBidXR0b24NCmdyb3VwLCBidXQgaXMgYmV0dGVyIHdoZW4gdGhlcmUgYXJlIGEgbGFyZ2UgbnVtYmVyIG9mIG9wdGlvbnMsIGFzIHlvdSBjYW4gbGltaXQgdGhlIG51bWJlciBkaXNwbGF5ZWQgb24gdGhlIHNjcmVlbiBhdCBhbnkgb25lIHRpbWUuPC9saT4NCjxsaT5QYXNzd29yZC4gVGhpcyBpcyBhbiBhc3Rlcmlza2VkLW91dCB0ZXh0IGZpZWxkLCB1c2VmdWwgZm9yIHBhc3N3b3Jkcy48L2xpPg0KPGxpPlBhc3N3b3JkIEFnYWluICh2ZXJpZnkpLiBUaGlzIGlzIGEgZmllbGQgdGhhdCBtdXN0IG1hdGNoIGEgUGFzc3dvcmQgZmllbGQgZm9yIHN1Ym1pc3Npb24NCnRvIHN1Y2NlZWQuPC9saT4NCjxsaT5TdGF0ZS4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIFN0YXRlcyBvZiB0aGUgVS5TLjwvbGk+DQo8bGk+Q2FuYWRpYW4gUHJvdmluY2UuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBDYW5hZGlhbiBQcm92aW5jZXMgKENvbnRyaWJ1dGVkIGJ5IE5vZWwgTWNHcmFuLiBUaGFua3MhKTwvbGk+DQo8bGk+Q291bnRyaWVzLiBUaGlzIGlzIGEgcHVsbGRvd24gbGlzdGluZyB0aGUgQ291bnRyaWVzIG9mIHRoZSB3b3JsZCAoYXMgb2YgSnVseSAyMDA1KS48L2xpPg0KPGxpPkRhdGUgUGlja2VyLiBUaGlzIGlzIGEgdHJpcGxlIHB1bGxkb3duIGFsbG93aW5nIHRoZSB1c2VyIHRvIHNlbGVjdCBhIGRhdGUuPC9saT4NCjxsaT5UaW1lIFBpY2tlci4gVGhpcyBpcyBhIHNldCBvZiBwdWxsZG93bnMgYWxsb3dpbmcgdGhlIHVzZXIgdG8gc2VsZWN0IGEgdGltZSAodXNpbmcgMTIgb3IgMjQgaG91ciBjbG9jaykuPC9saT4NCjxsaT5GaWxlIFVwbG9hZC4gVGhpcyBpcyBhIGZpbGUgdXBsb2FkIGZpZWxkLjwvbGk+DQo8bGk+TGluayAoVXNlciBFbnRlcmVkKS4gVGhpcyBjcmVhdGVzIGEgZG91YmxlIGlucHV0IGZpZWxkIGZvciBnZXR0aW5nIGEgbGluayBVUkwgYW5kIGxpbmsgdGl0bGUuPC9saT4NCjxsaT5UZXh0IEZpZWxkIChNdWx0aXBsZSkuIFRoaXMgZmllbGQgY3JlYXRlcyBvbmUgb3IgbW9yZSB0ZXh0IGlucHV0cyB3aXRoIGFkZCBhbmQgZGVsZXRlIGJ1dHRvbnMsIGVmZmVjdGl2ZWx5IGdpdmluZyB0aGUgZW5kIHVzZXIgYSB3YXkgb2YgY3JlYXRpbmcgdmFyaWFibGUtbGVuZ3RoIGxpc3RzLjwvbGk+DQo8L3VsPjwvbGk+DQoNCjxsaT5FbWFpbC1zcGVjaWZpYyBJbnB1dHMNCjx1bD48bGk+RW1haWwgJnF1b3Q7RnJvbSBBZGRyZXNzJnF1b3Q7IEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIHRoZWlyIGVtYWlsIGFkZHJlc3MuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBhZGRyZXNzIGluIHRoZSAmcXVvdDtGcm9tJnF1b3Q7IGZpZWxkLjwvbGk+DQo8bGk+RW1haWwgJnF1b3Q7RnJvbSBOYW1lJnF1b3Q7IEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIHRoZWlyIG5hbWUuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBuYW1lIGluIHRoZSAmcXVvdDtGcm9tJnF1b3Q7IGZpZWxkLjwvbGk+DQo8bGk+RW1haWwgU3ViamVjdCBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSBhIHN1YmplY3QgZm9yIHRoZWlyIGVtYWlsLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgaW4gdGhlICZxdW90O1N1YmplY3QmcXVvdDsgZmllbGQuIFRoaXMgbWF5IGNhdXNlIHRyb3VibGUgd2l0aCBjZXJ0YWluIGRpc3Bvc2l0aW9ucyB0aGF0IHdhbnQgdG8gY29udHJvbCB0aGUgRW1haWwgU3ViamVjdCwgc28gdXNlIGl0IHdpdGggY2F1dGlvbi48L2xpPg0KPC91bD48L2xpPg0KDQo8bGk+RGlzcGxheSBDb250cm9sIEZpZWxkczx1bD4NCjxsaT4tUGFnZSBCcmVhay4gVGhpcyBhbGxvd3MgeW91IHRvIHNwbGl0IHlvdXIgZmVlZGJhY2sgZm9ybSBpbnRvIG11bHRpcGxlIHBhZ2VzLiBFYWNoIHBhZ2UgaXMNCmluZGVwZW5kZW50bHkgdmFsaWRhdGVkLiBUaGlzIGlzIGdvb2QgZm9yIGFwcGxpY2F0aW9ucyBsaWtlIG9ubGluZSBzdXJ2ZXlzLjwvbGk+DQo8bGk+LUZpZWxkc2V0IFN0YXJ0LiBDb21iaW5lZCB3aXRoIEZpZWxkc2V0IEVuZCwgdGhpcyBhbGxvd3MgeW91IHRvIGdyb3VwIHZhcmlvdXMgZmllbGRzIHdpdGhpbiB5b3VyIGZvcm0uIFVzZSB0aGlzIHRvIHN0YXJ0IGEgZ2l2ZW4gZ3JvdXBpbmcuPC9saT4NCjxsaT4tRmllbGRzZXQgRW5kLiBDb21iaW5lZCB3aXRoIEZpZWxkc2V0IFN0YXJ0LCB0aGlzIGFsbG93cyB5b3UgdG8gZ3JvdXAgdmFyaW91cyBmaWVsZHMgd2l0aGluIHlvdXIgZm9ybS4gVXNlIHRoaXMgdG8gZW5kIGEgZ2l2ZW4gZ3JvdXBpbmcuPC9saT4NCjxsaT4tSGlkZGVuIEZpZWxkLiBUaGlzIGFsbG93cyB5b3UgdG8gZW1iZWQgYSBoaWRkZW4gZmllbGQgaW4geW91ciBmb3JtLjwvbGk+DQo8bGk+LVN0YXRpYyBUZXh0LiBUaGlzIGFsbG93cyB5b3UgdG8gcHV0IHRleHQgb3IgYSBsYWJlbCBpbiB0aGUgbWlkZGxlIG9mIHlvdXIgZm9ybS4gVGhpcyBpcyB1c2VmdWwgZm9yIGdpdmluZyBhZGRpdGlvbmFsIGhlbHAgdGV4dCwgZXNwZWNpYWxseSBpZiB5b3UmIzAzOTtyZSBub3QgdXNpbmcgYSBDdXN0b20gVGVtcGxhdGUgdG8gcmVuZGVyIHlvdXIgZm9ybS48L2xpPg0KPGxpPi1TdGF0aWMgTGluay4gVGhpcyBhbGxvd3MgeW91IHRvIHB1dCBhIGxpbmsgdG8gYSBnaXZlbiBwYWdlIGludG8geW91ciBmb3JtLiBPcHRpb25hbGx5LCB5b3UgY2FuIGhhdmUgaXQgYXV0b3BvcHVsYXRlIHdpdGggdGhlIHBhZ2Ugd2hlcmUgdGhlIGZvcm0gaXMgZW1iZWRkZWQgKHVzZWZ1bCBpZiB5b3UmIzAzOTtyZSBzZW5kaW5nIHJlc3VsdHMgdmlhIGVtYWlsKS48L2xpPg0KPGxpPi1Db21wdXRlZCBGaWVsZC4gVGhpcyBhbGxvd3MgeW91IHRvIGVtYmVkIGEgY29tcHV0ZWQgZmllbGQgaW4geW91ciBmb3JtLiBJdCBpcyBub3QgdmlzaWJsZSB0byB0aGUgdXNlciB1bnRpbCBhZnRlciB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQuIEl0IGFsbG93cyB5b3UgdG8gZG8gc2ltcGxlIGFyaXRobWV0aWMgb3Igc3RyaW5nIGNvbmNhdGVuYXRpb24uPC9saT4NCjxsaT4tVW5pcXVlIEludGVnZXIgKFNlcmlhbCkuIFRoaXMgaXMgYW4gaW50ZWdlciB0aGF0IGluY3JlYXNlcyBldmVyeSB0aW1lIHNvbWVvbmUgaGl0cyB5b3VyIGZvcm0uIFlvdXIgcmVzdWx0cyBtYXkgbm90IGJlIHNlcXVlbnRpYWwsIGJ1dCB0aGV5IHdpbGwgaW5jcmVhc2UgbW9ub3RvbmljYWxseS48L2xpPg0KPGxpPi1Vc2VyIFRhZy4gVGhpcyBjYWxscyB0aGUgc3BlY2lmaWVkIFVzZXIgRGVmaW5lZCBUYWcsIGFuZCBkaXNwbGF5cyBhbnl0aGluZyBpdCByZXR1cm5zLiBUaGUgVURUIGdldHMgY2FsbGVkIGFueSB0aW1lIHRoZSBmaWVsZCB3b3VsZCBiZSB2aXNpYmxlLjwvbGk+DQo8L3VsPjwvbGk+DQoNCjxsaT5Gb3JtIEhhbmRsaW5nIElucHV0cyAoRGlzcG9zaXRpb25zKQ0KPHVsPjxsaT4qQ2FsbCBhIFVzZXIgRGVmaW5lZCBUYWcgV2l0aCB0aGUgRm9ybSBSZXN1bHRzLiBUaGlzIHN1Ym1pdHMgYWxsIHRoZSBmb3JtIHJlc3VsdHMgdG8gdGhlIFVzZXItRGVmaW5lZCBUYWcgeW91IHNwZWNpZnkuIFRoZSBVRFQgY2FuIGhhbmRsZSB0aGUgcmVzdWx0cyBob3dldmVyIGl0IHdhbnRzLiBWYWx1ZXMgYXJlIHBhc3NlZCBhcyAkcGFyYW1zWyYjMDM5O2ZpZWxkX25hbWUmIzAzOTtdLCBhbmQgYXMgJHBhcmFtc1smIzAzOTtmaWVsZF9hbGlhcyYjMDM5O10gKGlmIGRlZmluZWQpLjwvbGk+DQo8bGk+KkVtYWlsIFJlc3VsdHMgQmFzZWQgb24gUHVsbGRvd24uIFRoaXMgaXMgdXNlZnVsIGZvciB3ZWIgc2l0ZXMgd2hlcmUgY29tbWVudHMgZ2V0IHJvdXRlZCBiYXNlZCBvbiB0aGVpciBzdWJqZWN0IG1hdHRlciwgZS5nLiwgYnVncyBnZXQgc2VudCB0byBvbmUgcGVyc29uLCBtYXJrZXRpbmcgcXVlc3Rpb25zIHRvIGFub3RoZXIgcGVyc29uLCBzYWxlcyByZXF1ZXN0cyB0byBzb21lb25lIGVsc2UsIGV0Yy4gVGhlIHB1bGxkb3duIGlzIHBvcHVsYXRlZCB3aXRoIHRoZSBzdWJqZWN0cywgYW5kIGVhY2ggZ2V0cyBkaXJlY3RlZCB0byBhIHNwZWNpZmljIGVtYWlsIGFkZHJlc3MuIFlvdSBzZXQgdXAgdGhlc2UgbWFwcGluZ3MgaW4gdGhlIHdoZW4geW91IGNyZWF0ZSBvciBlZGl0IGEgZmllbGQgb2YgdGhpcyB0eXBlLiBJZiB5b3UgdXNlIG9uZSBvZiB0aGVzZSAmcXVvdDtEaXJlY3RvciZxdW90OyBwdWxsZG93bnMsIHRoZSB1c2VyIG11c3QgbWFrZSBhIHNlbGVjdGlvbiBpbiBvcmRlciB0byBzdWJtaXQgdGhlDQpmb3JtLiBUaGlzIGlucHV0IGlzIHBhcnQgb2YgdGhlIGZvcm0gdGhlIHVzZXIgc2VlcywgYWx0aG91Z2ggdGhlIGVtYWlsIGFkZHJlc3NlcyBhcmUgbm90IG1hZGUgdmlzaWJsZSBub3INCmFyZSB0aGV5IGVtYmVkZGVkIGluIHRoZSBIVE1MLjwvbGk+DQo8bGk+KkVtYWlsICZxdW90O0Zyb20gQWRkcmVzcyZxdW90OyBGaWVsZCwgYW5kIHNlbmQgY29weS4gVGhpcyB3b3JrcyBsaWtlIHRoZSBFbWFpbCAmcXVvdDtGcm9tIEFkZHJlc3MmcXVvdDsgRmllbGQgZGVzY3JpYmVkIGFib3ZlLCBidXQgaXQgcHJvdmlkZXMgb3B0aW9ucyBmb3Igc2VuZGluZyBhIGNvcHkgb2YgdGhlIHJlc3VsdHMgdG8gdGhlIHVzZXIuPC9saT4NCjxsaT4qRW1haWwgUmVzdWx0cyB0byBzZXQgQWRkcmVzcyhlcykuIFRoaXMgc2ltcGx5IHNlbmRzIHRoZSBmb3JtIHJlc3VsdHMgdG8gb25lIG9yIG1vcmUgZW1haWwgYWRkcmVzc2VzIHRoYXQgeW91IGVudGVyIHdoZW4geW91IGNyZWF0ZSBvciBlZGl0IHRoaXMgdHlwZSBvZiBmaWVsZC4gVGhpcyBmaWVsZCBhbmQgaXRzIG5hbWUgYXJlIG5vdCB2aXNpYmxlIGluIHRoZQ0KZm9ybSB0aGF0IHRoZSB1c2VyIHNlZXMuIFRoZSBlbWFpbCBhZGRyZXNzZXMgYXJlIG5vdCBtYWRlIHZpc2libGUgbm9yDQphcmUgdGhleSBlbWJlZGRlZCBpbiB0aGUgSFRNTC48L2xpPg0KPGxpPipFbWFpbCB0byBVc2VyLVN1cHBsaWVkIEFkZHJlc3MuIFRoaXMgcHV0cyBhbiBpbnB1dCBmaWVsZCBpbiB0aGUgZm9ybSBmb3IgdGhlIHVzZXIgdG8gcG9wdWxhdGUgd2l0aCBhbiBlbWFpbCBhZGRyZXNzLiBUaGUgZm9ybSByZXN1bHRzIGdldCBzZW50IHRvIHRoYXQgYWRkcmVzcy4gQmV3YXJlIG9mIFNwYW0gYWJ1c2UhIEFjdGl2ZSB0aGUgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcyBpbiB0aGUgRm9ybUJ1aWxkZXIgY29uZmlndXJhdGlvbiBzY3JlZW4uPC9saT4NCjxsaT4qU3RvcmUgUmVzdWx0cyBpbiBEYXRhYmFzZS4gPHN0cm9uZz5EZXByZWNhdGVkLjwvc3Ryb25nPiBVc2UgU3RvcmUgUmVzdWx0cyBmb3IgRm9ybUJyb3dzZXIgTW9kdWxlIGluc3RlYWQhIFRoaXMgd2lsbCBzdG9yZSB0aGUgZm9ybSBjb250ZW50cyBpbiBhbiBpbnRlcm5hbCBkYXRhYmFzZS4gWW91IHdpbGwgYWx3YXlzIHVzZSB0aGlzIGRpc3Bvc2l0aW9uIGlmIHlvdSB1c2UgdGhlIGZvcm0gd2l0aCBGb3JtQnJvd3Nlci48L2xpPg0KPGxpPipSZWRpcmVjdCB0byBQYWdlIEJhc2VkIG9uIFB1bGxkb3duLiBUaGlzIGFsbG93cyB5b3UgdG8gcmVkaXJlY3QgdGhlIGZvcm0gdG8gYSBkaWZmZXJlbnQgc2l0ZSBwYWdlIGRlcGVuZGluZyBvbiBpdHMgdmFsdWUuIElmIHlvdSBoYXZlIG11bHRpcGxlIGRpc3Bvc2l0aW9ucywgbWFrZSBzdXJlIHRoaXMgaXMgdXNlZCBsYXN0LjwvbGk+DQo8bGk+KlZhbGlkYXRlIHZpYSBFbWFpbC4gVGhpcyBpcyBhIHN0cmFuZ2UgYW5kIHBvd2VyZnVsIGZpZWxkLiBJdCBwcm92aWRlcyB0aGUgdXNlciBhIG1hbmRhdG9yeSBpbnB1dCBmb3IgdGhlaXIgZW1haWwgYWRkcmVzcy4gT25jZSB0aGV5IHN1Ym1pdCB0aGVpciBmb3JtLCB0aGUgc3RhbmRhcmQgZm9ybSBkaXNwb3NpdGlvbnMgYXJlIG5vdCBwZXJmb3JtZWQgLS0gcmF0aGVyLCBpdCBzZW5kIHRoZSB1c2VyIGFuIGVtYWlsIHdpdGggYSBzcGVjaWFsIGNvZGVkIGxpbmsuIElmIHRoZXkgY2xpY2sgb24gdGhlIGxpbmssIHRoZSBvdGhlciBmb3JtIGlzIGNvbnNpZGVyZWQgJnF1b3Q7YXBwcm92ZWQsJnF1b3Q7IGFuZCB0aGUgb3RoZXIgZGlzcG9zaXRpb25zIGFyZSBhbGwgcGVyZm9ybWVkLjwvbGk+DQo8bGk+KldyaXRlIFJlc3VsdHMgdG8gRmxhdCBGaWxlLiBUaGlzIHRha2VzIHRoZSBmb3JtIHJlc3VsdHMgYW5kIHdyaXRlcyB0aGVtIGludG8gYSB0ZXh0IGZpbGUuIFlvdSBtYXkNCnNlbGVjdCB0aGUgbmFtZSBvZiB0aGUgZmlsZSwgYW5kIHNldCBpdHMgZm9ybWF0LiBUaGVzZSBmaWxlcyBhcmUgd3JpdHRlbiB0byB0aGUgJnF1b3Q7b3V0cHV0JnF1b3Q7IGRpcmVjdG9yeSB1bmRlciB0aGUNCm1vZHVsZSYjMDM5O3MgaW5zdGFsbGF0aW9uIGRpcmVjdG9yeSwgYXNzdW1pbmcgdGhlIHdlYiBzZXJ2ZXIgaGFzIHBlcm1pc3Npb24gdG8gd3JpdGUgdGhlcmUuPC9saT4NCjxsaT4qU2F2ZSBSZXN1bHRzIHRvIEZpbGUgQmFzZWQgb24gUHVsbGRvd24uIExpa2UgdGhlIEZsYXQgRmlsZSBkaXNwb3NpdGlvbiwgZXhjZXB0IHRoZSB2YWx1ZSBvZiBhIHB1bGwtZG93biBkZXRlcm1pbmVzIHdoaWNoIGZpbGUgcmVzdWx0cyBnZXQgd3JpdHRlbiB0by48L2xpPg0KPGxpPipTYXZlIFJlc3VsdHMgdG8gRmlsZShzKSBCYXNlZCBvbiBNdWx0aXBsZSBTZWxlY3Rpb25zLiBMaWtlIHRoZSBGbGF0IEZpbGUgZGlzcG9zaXRpb24sIGV4Y2VwdCB0aGUgdmFsdWUocykgb2YgY2hlY2tib3hlcyAgZGV0ZXJtaW5lcyB3aGljaCBmaWxlKHMpIHJlc3VsdHMgZ2V0IHdyaXR0ZW4gdG8uPC9saT4NCjxsaT4qRW1haWwgdG8gQ01TIEFkbWluIFVzZXIuIFByb3ZpZGVzIGEgcHVsbC1kb3duIG9mIENNUyBBZG1pbiB1c2VycywgYW5kIGRpcmVjdHMgdGhlIHJlc3VsdHMgYXMgYW4gZW1haWwgdG8gdGhlIHNlbGVjdGVkIGFkbWluLjwvbGk+DQo8bGk+KlN0b3JlIFJlc3VsdHMgZm9yIEZvcm1Ccm93c2VyIE1vZHVsZSB2LjAuMy4gU3RvcmVzIHRoZSBmb3JtIHJlc3VsdHMgaW4gYW4gWE1MIHN0cnVjdHVyZSBhcyBhIHNpbmdsZSBkYXRhYmFzZSByZWNvcmQuIFRoaXMgaXMgdGhlIG9ubHkgaW50ZXJmYWNlIHRvIEZvcm0gQnJvd3Nlci4gU2VlIHNlY3Rpb24gYmVsb3cuPC9saT4NCjxsaT4qU3VibWl0IHRvIGFuIGFyYml0cmFyeSBmb3JtIGFjdGlvbi4gQ3JhZnQgYW4gSFRUUCBHRVQgb3IgUE9TVCwgYW5kIHRyYW5zbWl0IGl0IHVzaW5nIGNVUkwgdG8gdGhlIHNwZWNpZmllZCBVUkwuIFRoaXMgbGV0cyB5b3UgdXNlIEZvcm1CdWlsZGVyIGFzIGEgZnJvbnQtZW5kIHRvIGFueSBDR0kgb3IgRm9ybSBIYW5kbGluZyBzY3JpcHQgb3V0IHRoZXJlLjwvbGk+DQoNCjwvdWw+PC9saT48L2xpPjwvdWw+DQoNCjxoMz5QYXNzaW5nIERlZmF1bHQgVmFsdWVzIHRvIEZvcm1zPC9oMz4NCjxwPkNhbGd1eSBhZGRlZCBhIG5pY2UgZmVhdHVyZSwgd2hpY2ggaXMgdGhhdCB5b3UgY2FuIHBhc3MgZGVmYXVsdCBmaWVsZCB2YWx1ZXMgdG8geW91ciBmb3JtIHZpYSB0aGUgbW9kdWxlIHRhZy4gVGhpcyBhbGxvd3MgeW91IHRvIGhhdmUNCnRoZSBzYW1lIGZvcm0gaW4gbXVsdGlwbGUgcGxhY2VzLCBidXQgd2l0aCBkaWZmZXJlbnQgZGVmYXVsdCB2YWx1ZXMuIEl0IG1heSBub3Qgd29yayBmb3IgbW9yZSBleG90aWMgZmllbGQgdHlwZXMsIGJ1dCBmb3IgZmllbGRzIHRoYXQgaGF2ZQ0KYSBzaW5nbGUgdmFsdWUsIHlvdSBjYW4gc3BlY2lmeSBsaWtlOjwvcD4NCjxwPntGb3JtQnVpbGRlciBmb3JtPSYjMDM5O215X2Zvcm0mIzAzOTsgdmFsdWVfPGk+RklFTEROQU1FPC9pPj0mIzAzOTtkZWZhdWx0X3ZhbHVlJiMwMzk7fTwvcD4NCjxwPlRoaXMgd2lsbCBzZXQgdGhlIGZpZWxkIHdpdGggPGk+RklFTEROQU1FPC9pPiB0byAmIzAzOTtkZWZhdWx0X3ZhbHVlJiMwMzk7LjwvcD4NCjxwPlRoaXMgY2FuIGJlIHByb2JsZW1hdGljLCBhcyBzb21ldGltZXMgZmllbGQgbmFtZXMgYXJlIHVud2llbGR5IG9yIGNvbnRhaW4gY2hhcmFjdGVycyB0aGF0IGRvbiYjMDM5O3Qgd29yayB3ZWxsIHdpdGggU21hcnR5LiBTbyB0aGVyZSBpcyBhbg0KYWx0ZXJuYXRpdmUgbGlrZSB0aGlzOjwvcD4NCjxwPntGb3JtQnVpbGRlciBmb3JtPSYjMDM5O215X2Zvcm0mIzAzOTsgdmFsdWVfZmxkPGk+TlVNQkVSPC9pPj0mIzAzOTtkZWZhdWx0X3ZhbHVlJiMwMzk7fTwvcD4NCjxwPlRoYXQgdXNlcyBmaWVsZCA8aT5OVU1CRVI8L2k+LCB3aGVyZSA8aT5OVU1CRVI8L2k+IGlzIHRoZSBpbnRlcm5hbCBGb3JtQnVpbGRlciBmaWVsZCBpZC4gWW91IG1pZ2h0IHdvbmRlciBob3cgeW91IGtub3cgd2hhdCB0aGF0IGlkIGlzLiBTaW1wbHkgZ28gaW50byB0aGUgRm9ybUJ1aWxkZXIgY29uZmlndXJhdGlvbiB0YWIsDQphbmQgY2hlY2sgJnF1b3Q7U2hvdyBGaWVsZCBJRHMmcXVvdDs8L3A+DQoNCjxoMz5FbWFpbCBhbmQgRmxhdCBGaWxlIFRlbXBsYXRlczwvaDM+DQo8cD5NYW55IGRpc3Bvc2l0aW9uIHR5cGVzIGFsbG93IHlvdSB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmb3IgdGhlIGVtYWlsIHRoYXQgaXMgZ2VuZXJhdGVkLCBvciBmb3IgdGhlIHdheSB0aGUgcmVzdWx0cyBhcmUgd3JpdHRlbiB0byBhIGZpbGUuIElmIHlvdSBvcHQgbm90IHRvIGNyZWF0ZSBhIHRlbXBsYXRlLCB0aGUgRm9ybUJ1aWxkZXIgd2lsbCB1c2UgaXRzIG93biBiZXN0IGd1ZXNzLCB3aGljaCBtYXkgb3IgbWF5IG5vdCB3b3JrIG91dCB0byB5b3VyIGxpa2luZy4gWW91IGNhbiBhbHdheXMgY2xpY2sgb24gdGhlICZxdW90O0NyZWF0ZSBTYW1wbGUgVGVtcGxhdGUmcXVvdDsgYW5kIHRoZW4gY3VzdG9taXplIHRoZSByZXN1bHRzLjwvcD4NCjxwPlRvIHRoZSByaWdodCwgeW91JiMwMzk7bGwgZmluZCBhIGxlZ2VuZCB3aGljaCBsaXN0cyBhbGwgb2YgdGhlIHZhcmlhYmxlcyB0aGF0IGFyZSBhdmFpbGFibGUgdG8geW91IHRvIHVzZSBpbiB5b3VyIHRlbXBsYXRlLiBBcyBvZiB2ZXJzaW9uIDAuMywgdmFyaWFibGVzIGhhdmUgdHdvIG5hbWVzLCBvbmUgYmFzZWQgb24gdGhlIGZpZWxkIG5hbWUsIHRoZSBvdGhlciBiYXNlZCBvbiB0aGUgZmllbGQgSUQuIElmIHlvdSB1c2UgZmllbGQgbmFtZXMgdGhhdCBoYXZlIGNoYXJhY3RlcnMgb3V0c2lkZSBvZiB0aGUgQVNDSUkgMzItMTI2IHJhbmdlLCBpdCB3aWxsIGJlIHNhZmVyIHRvIHVzZSB0aGUgSUQtYmFzZWQgdmFyaWFibGVzLiBBcyBvZiB2ZXJzaW9uIDAuNSwgdmFyaWFibGVzIGFsc28gaGF2ZSBhbGlhc2VzLCB3aGNpaCB5b3UgY2FuIHVzZS48L3A+DQo8cD48c3Ryb25nPk5vdGUgdGhhdCBvbmNlIHlvdSYjMDM5O3ZlIGNoYW5nZWQgYSB0ZW1wbGF0ZSwgaXQgd2lsbCBubyBsb25nZXIgYXV0b21hdGljYWxseSBhZGQgbmV3IGZpZWxkcy48L3N0cm9uZz4gRm9yIHRoaXMgcmVhc29uLCBpdCYjMDM5O3MgdXN1YWxseSBiZXN0IHRvIGNyZWF0ZSB5b3VyIHRlbXBsYXRlcyBhcyB0aGUgbGFzdCBzdGVwIG9mIGNyZWF0aW5nIHlvdXIgZm9ybS48L3A+DQo8cD5BcyBvZiB2ZXJzaW9uIDAuMi40LCB5b3UgY2FuIG9wdCB0byBzZW5kIGFueSBvZiB0aGVzZSBlbWFpbHMgYXMgSFRNTCBlbWFpbC4gVGhlcmUgc2hvdWxkIGJlIGEgY2hlY2tib3ggYXQgdGhlIHRvcCBvZiB0aGUgdGVtcGxhdGUgcGFnZSBmb3IgdGhpcy4gVGhlcmUgaXMgYWxzbyBhICZxdW90O0NyZWF0ZSBTYW1wbGUgSFRNTCBUZW1wbGF0ZSZxdW90OyBidXR0b24gb3ZlciBpbiB0aGUgbGVnZW5kIGFyZWEuIEZvciBIVE1MIGVtYWlsLCB0aGUgZW1haWwgYm9keSB3aWxsIGFsc28gcHJvdmlkZSB0aGUgZGVmYXVsdCB0ZXh0LW9ubHkgdmFsdWVzLjwvcD4NCg0KPGgzPlVzZSB3aXRoIEZvcm1Ccm93c2VyIHYzPC9oMz4NCjxwPlRoZXJlIGFyZSBzb21lIHNwZWNpYWwgZmVhdHVyZXMgd2hlbiB1c2luZyBGb3JtQnVpbGRlciB3aXRoIEZvcm1Ccm93c2VyLiBUaGUgbmV3IGFwcHJvYWNoIHN0b3JlcyB0aGUgZm9ybSByZXN1bHRzIGluIFhNTCwgc28gdGhhdCBmYXIgZmV3ZXINCnF1ZXJpZXMgYXJlIG5lZWRlZCB0byByZXRyaWV2ZSByZWNvcmRzLiBUaGlzIG1lYW5zIHlvdSBjYW4gdXNlIEZvcm1Ccm93c2VyIHdpdGggaHVuZHJlZHMgb3IgZXZlbiB0aG91c2FuZHMgb2YgcmVjb3Jkcy4gSXQgYWxzbyBtZWFucyB5b3UNCndpbGwgaGF2ZSB0byBjaG9vc2UgdXAgZnJvbnQgd2hpY2ggZmllbGRzIHlvdSB3aWxsIHdhbnQgdG8gYmUgYWJsZSB0byBzb3J0IGJ5LiBZb3UgY2FuIGNob29zZSB1cCB0byBmaXZlLiBDaGFuZ2luZyB0aGVzZSBhZnRlciB0aGVyZSBhcmUgc3VibWl0dGVkIHJlY29yZHMgd2lsbCByZXN1bHQgaW4gaW1wcm9wZXIgc29ydGluZyEgQSByZS1pbmRleCBmdW5jdGlvbiB3aWxsIGJlIGFkZGVkIHRvIGEgZnV0dXJlIHZlcnNpb24uPC9wPg0KPHA+SW4gYWR2YW5jZWQgb3B0aW9ucywgeW91IGNhbiB0aWUgYSBmb3JtIHRvIEZyb250ZW5kIFVzZXJzLiBUaGF0IG1lYW5zIGVhY2ggdXNlciBnZXRzIG9uZSByZWNvcmQgZm9yIHRoZSBmb3JtOyB0aGV5IGNhbiBjcmVhdGUgaXQNCmEgc2luZ2xlIHRpbWUsIHN1YnNlcXVlbnQgdGltZXMgdGhleSB3aWxsIGJlIGVkaXRpbmcgdGhlaXIgcmVjb3JkLiBUaGUgcmVjb3JkIHdpbGwgbm90IGJlIHZpc2libGUgdG8gYW55IG90aGVyIHVzZXJzIChleGNsdWRpbmcgYWRtaW5zKS4NClRoaXMgZm9ybSBzaG91bGQgYmUgYWRkZWQgdG8geW91ciBwYWdlIHVzaW5nIHRoZSBzeW50YXgge0Zvcm1CdWlsZGVyIGFjdGlvbj0mIzAzOTtmZXVzZXJmb3JtJiMwMzk7IGZvcm09JiMwMzk7Zm9ybV9uYW1lJiMwMzk7fS48L3A+DQo8cD5Gb3IgZ3JlYXRlciBkYXRhIHNhZmV0eSwgeW91IGNhbiBlbmNyeXB0IHRoZSBzdG9yZWQgZm9ybXMgaW4gdGhlIGRhdGFiYXNlLiBZb3UgY2FuIHVzZSB0aGUgYnVpbHQtaW4gbXljcnlwdCBsaWJyYXJ5IG9yIHRoZSBPcGVuU1NMIG1vZHVsZS4NCkluIGVpdGhlciBjYXNlLCBmb3IgdGhlIHBhc3NwaHJhc2UsIHlvdSBjYW4gZWl0aGVyIGVudGVyIHRleHQgaW4gdGhlIGZpZWxkIG9yIGEgZmlsZSBuYW1lLiBJZiB5b3Ugc3BlY2lmeSBhIGZpbGUgbmFtZSwgdGhlIGNvbnRlbnRzIG9mIHRoYXQNCmZpbGUgd2lsbCBiZSB1c2VkIGFzIHRoZSBwYXNzcGhyYXNlIGZvciBlbmNyeXB0aW5nLjwvcD4NCjxwPklmIHlvdSBlbmNyeXB0LCBiZSBhd2FyZSB0aGF0IHRoZSBmaWVsZHMgeW91IHVzZSBmb3Igc29ydGluZyBhcmUgPHN0cm9uZz5ub3Q8L3N0cm9uZz4gZW5jcnlwdGVkLiBZb3UgY2FuIGNob29zZSB0byBoYXNoIHRoZW07IHRoZSBjaGVhdCBoZXJlDQppcyB0aGF0IHRoZSBmaXJzdCBmb3VyIGxldHRlcnMgYXJlIGxlZnQgaW50YWN0IHRvIGFsbG93IGZvciBzb3J0aW5nLiBUaGUgc29ydGluZyBtYXkgbm90IGJlIHBlcmZlY3QsIGFuZCB0aGlzIHdlYWtlbnMgdGhlIHNlY3VyaXR5IHNpbmNlIGl0DQpleHBvc2VzIHNvbWUgY2xlYXJ0ZXh0LCBidXQgaXQgaXMgYmV0dGVyIHRoYW4gbm90aGluZy48L3A+DQo8cD48c3Ryb25nPkRJU0NMQUlNRVI8L3N0cm9uZz4uIFRoZSBlbmNyeXB0aW9uIG9mZmVyZWQgaGVyZSBzaG91bGQgYmUgY29uc2lkZXJlZCBqdXN0IG9uZSBtb3JlIGh1cmRsZSBmb3IgYSBoYWNrZXIsIG5vdCBhcyBhIGd1YXJhbnRlZSB0aGF0DQp5b3VyIGluZm9ybWF0aW9uIHdpbGwgYmUgc2VjdXJlLiBBIHNtYXJ0IGhhY2tlciB3aG8gaGFzIGZvdW5kIHNvbWUgZXhwbG9pdCB0byB2aWV3IGRhdGFiYXNlIHJlY29yZHMgbWF5IHdlbGwgYmUgc21hcnQgZW5vdWdoIHRvIGdldCBhdA0KdGhlIG1vZHVsZSBzb3VyY2UgY29kZSwgYW5kIGZpbmQgdGhlaXIgd2F5IHRvIHRoZSBwYXNzcGhyYXNlLiBUaGlzIHdpbGwgbm90IHByb3RlY3QgeW91IGFnYWluc3QgYW4gZW5lbXkgd2hvIGhhcyBmdWxsIGFjY2VzcyB0byB5b3VyDQpzZXJ2ZXIsIHNvbWUgZmFtaWxpYXJpdHkgd2l0aCBQSFAsIGFuZCB0aGUgdGltZSB0byBwb2tlIGFyb3VuZC4gPGVtPjxzdHJvbmc+RG8gbm90PC9zdHJvbmc+IHVzZSB0aGlzIHRvIHByb3RlY3QgaGlnaC12YWx1ZSBpbmZvcm1hdGlvbiBzdWNoIGFzIGZpbmFuY2lhbCBkYXRhLA0Kc2Vuc2l0aXZlIHBvbGl0aWNhbCBpbmZvcm1hdGlvbiwgaHVtYW4gcmlnaHRzIGRhdGEsIG9yIGFueXRoaW5nIGVsc2UgdGhhdCBtaWdodCBiZSBvZiB2YWx1ZSB0byBhIHJlcHJlc3NpdmUgZ292ZXJubWVudCBvciBvcmdhbml6ZWQgY3JpbWUNCmNhcnRlbC48L2VtPjwvcD4NCjxoMz5Vc2luZyB3aXRoIFVzZXIgRGVmaW5lZCBUYWdzIChVRFRzKTwvaDM+DQo8cD5TZXZlcmFsIG9wdGlvbnMgZm9yIGN1c3RvbWl6aW5nIGJlaGF2aW9yIHZpYSBVRFRzIGlzIHByb3ZpZGVkICh0aGFua3MgdG8ga2luZCBjb2RlIGNvbnRyaWJ1dGlvbnMsIHNlZSBjcmVkaXRzKS48L3A+DQoNCjx1bD48bGk+Q2FsbCBVc2VyIERlZmluZWQgVGFnIFdpdGggdGhlIEZvcm0gUmVzdWx0cy4gVGhpcyBmaWVsZCB0eXBlIHN1Ym1pdHMgdGhlIGh1bWFuLXJlYWRhYmxlIGZvcm0gcmVzdWx0cyB0byB0aGUgVXNlci1EZWZpbmVkDQpUYWcgeW91IHNwZWNpZnkuIFRoZSBVRFQgY2FuIGhhbmRsZSB0aGUgcmVzdWx0cyBob3dldmVyIGl0IHdhbnRzLiBWYWx1ZXMgYXJlIHBhc3NlZCBhcyAkcGFyYW1zWyYjMDM5O2ZpZWxkX25hbWUmIzAzOTtdLCBhbmQNCmFzICRwYXJhbXNbJiMwMzk7ZmllbGRfYWxpYXMmIzAzOTtdIChpZiBkZWZpbmVkKS48L2xpPg0KPGxpPlVzZXIgVGFnIEZpZWxkLiBUaGlzIGNhbGxzIHRoZSBzcGVjaWZpZWQgVURULCBhbmQgZGlzcGxheXMgYW55dGhpbmcgaXQgcmV0dXJucy4gVGhlIFVEVCBnZXRzIGNhbGxlZCBhbnkgdGltZSB0aGUgZmllbGQgd291bGQgYmUgdmlzaWJsZS48L2xpPg0KPGxpPlZhbGlkYXRpb24gVURULiBTZXQgdGhpcyBmb3IgYSBmb3JtLCBhbmQgdGhlIFVEVCB3aWxsIHJlY2VpdmUgYWxsIG9mIHRoZSBmb3JtXCYjMDM5O3MgaHVtYW4tcmVhZGFibGUgcmVzdWx0cy4gVGhlIFVEVCBzaG91bGQgZG8gd2hhdGV2ZXINCnZhbGlkYXRpb24gaXQgd2FudHMsIGFuZCByZXR1cm4gYW4gYXJyYXkgd2l0aCB0aGUgZmlyc3QgdmFsdWUgYmVpbmcgdHJ1ZSBvciBmYWxzZSAoaW5kaWNhdGlvbiB3aGV0aGVyIHRoZSBmb3JtIHZhbGlkYXRlcyksIGFuZCB0aGUgc2Vjb25kDQp2YWx1ZSBiZWluZyBlcnJvciBtZXNzYWdlcyAoaWYgYW55KS48L2xpPg0KPGxpPlVzZXIgZGVmaW5lZCB0YWcgdG8gY2FsbCBiZWZvcmUgZm9ybSBpcyBkaXNwbGF5ZWQgdGhlIGZpcnN0IHRpbWUgKG9ubHkgY2FsbGVkIG9uY2UpLiBUaGlzDQppcyBzZXQgaW4gdGhlIEZvcm0gQWRtaW4gaW4gdGhlIFVEVCBJbnRlZ3JhdGlvbiB0YWIuIFRoZSBVRFQgZ2V0cyBjYWxsZWQgb24gdGhlIGZpcnN0IGRpc3BsYXkNCm9mIHRoZSBmb3JtLjwvbGk+DQo8bGk+VXNlciBkZWZpbmVkIHRhZyB0byBjYWxsIGJlZm9yZSBmb3JtIGlzIGRpc3BsYXllZCAoY2FsbGVkIG9uIGV2ZXJ5IHBhZ2Ugb2YgbXVsdGlwYWdlDQpmb3JtcykuIFRoaXMgaXMgc2V0IGluIHRoZSBGb3JtIEFkbWluIGluIHRoZSBVRFQgSW50ZWdyYXRpb24gdGFiLiBUaGUgVURUIGdldHMgY2FsbGVkDQpldmVyeSB0aW1lIGFueSBwYWdlIG9mIHRoZSBmb3JtIGlzIGRpc3BsYXllZCAoaW5jbHVkaW5nIHdoZW4gdmFsaWRhdGlvbiBmYWlscykuPC9saT4NCjwvdWw+DQo8aDM+Q29uZmlndXJhdGlvbjwvaDM+DQo8cD5UaGVyZSBhcmUgc29tZSBnbG9iYWwgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBGb3JtQnVpbGRlcjo8L3A+DQo8dWw+DQo8bGk+RW5hYmxlIGZhc3QgZmllbGQgYWRkIHB1bGxkb3duLiBUaGlzIGVuYWJsZXMgdGhlIHB1bGxkb3duIG9uIHRoZSBGb3JtIEVkaXQgcGFnZSB3aGljaCBzYXZlcyBhIHN0ZXAgaW4gdGhlIGNyZWF0aW9uIG9mIG5ldyBmaWVsZHMuPC9saT4NCjxsaT5SdW4gaW4gTUxFIE1vZGUuIFRoaXMgY2hhbmdlcyBzb21lIHF1ZXJpZXMgYWdhaW5zdCB0aGUgY29udGVudCB0YWJsZSB0byB0cnkgdG8gcHJldmVudCB1Z2x5IGNyYXNoZXMgdW5kZXIgdGhlIE1MRSBmb3JrLiBDaGVja2luZyB0aGlzIHdpbGwgY2F1c2UgdWdseSBjcmFzaGVzIGlmIHlvdSBhcmUgTk9UIHJ1bm5pbmcgdGhlIE1MRSBmb3JrLjwvbGk+DQo8bGk+SGlkZSBFcnJvcnMuIFRoaXMgaXMgbm8gbG9uZ2VyIHNldCBieSBkZWZhdWx0LiBDaGVja2luZyBpdCB3aWxsIGhpZGUgdGhlIG1vcmUgZGV0YWlsZWQgZXJyb3JzIHRoYXQgd291bGQgYmUgZGlzcGxheWVkIGlmIHRoZXJlIGFyZSBwcm9ibGVtcyB3aGVuIHlvdSBzdWJtaXQgeW91ciBmb3JtLjwvbGk+DQo8bGk+UmVxdWlyZSBGaWVsZCBOYW1lcy4gVHlwaWNhbGx5LCB5b3Ugd2lsbCB3YW50IGZvcm0gZmllbGRzIHRvIGJlIG5hbWVkIHNvIHlvdSBjYW4gdGVsbCB3aGljaCBpcyB3aGljaC4gSG93ZXZlciwgaW4gc29tZSBjYXNlcywgeW91IG1pZ2h0IHdhbnQgdG8gaGF2ZSBuYW1lbGVzcyBmaWVsZHMuIFVuY2hlY2sgdGhpcyBpZiB5b3Ugd2FudCB0byBhbGxvdyBuYW1lbGVzcyBmaWVsZHMuPC9saT4NCjxsaT5VbmlxdWUgRmllbGQgTmFtZXMuIFR5cGljYWxseSwgeW91IHdpbGwgd2FudCBmb3JtIGZpZWxkcyB0byBoYXZlIHVuaXF1ZSBuYW1lcyBzbyB5b3UgY2FuIHRlbGwgd2hpY2ggaXMgd2hpY2guIFVuY2hlY2sgdGhpcyBpZiB5b3Ugd2FudCB0byBhbGxvdyBmaWVsZHMgdG8gc2hhcmUgbmFtZXMuPC9saT4NCjxsaT5Vc2UgcmVsYXhlZCBlbWFpbCB2YWxpZGF0aW9uLiBUaGlzIHVzZXMgYSBsZXNzIHJlc3RyaWN0aXZlIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgdmFsaWRhdGluZyBlbWFpbDsgZS5nLiwgeEB5IHdpbGwgYmUgYWxsb3dlZCwgd2hlcmUgdHlwaWNhbGx5IHhAeS50bGQgaXMgcmVxdWlyZWQuPC9saT4NCjxsaT5TaG93IEZvcm0gQnVpbGRlciBWZXJzaW9uLiBEaXNwbGF5cyB0aGUgdmVyc2lvbiBvZiBGb3JtQnVpbGRlciB5b3UmIzAzOTtyZSB1c2luZyBpbiBhIGNvbW1lbnQgd2hlbiB0aGUgZm9ybSBpcyBnZW5lcmF0ZWQuIFR5cGljYWxseSBvbmx5IHVzZWZ1bCB3aGVuIGRlYnVnZ2luZy48L2xpPg0KPGxpPkVuYWJsZSBwcmltaXRpdmUgYW50aS1zcGFtIGZlYXR1cmVzLiBXaGVuIHR1cm5lZCBvbiwgdGhpcyBhbGxvd3MgYW55IGdpdmVuIElQIGFkZHJlc3MgdG8gb25seSBnZW5lcmF0ZSAxMCBlbWFpbHMgcGVyIGhvdXIuPC9saT4NCjxsaT5TaG93IEZpZWxkIElEcy4gV2hlbiB0dXJuZWQgb24sIEZvcm1CdWlsZGVyIHdpbGwgZGlzcGxheSBmaWVsZCBpZHMgd2hlbiBhZGRpbmcgb3IgZWRpdGluZyBhIGZvcm0uPC9saT4NCjwvdWw+DQo8aDM+U3R5bGluZyBhbmQgQ1NTPC9oMz4NCjxwPkFmdGVyIGEgYml0IG9mIG5hZ2dpbmcgb24gdGhlIHBhcnQgb2YgcGVvcGxlIHdobyBhY3R1YWxseSByZXNwZWN0IHN0YW5kYXJkcywgRm9ybUJ1aWxkZXIgbm8gbG9uZ2VyIGVuY291cmFnZXMgdHJpY2tzIGxpa2UgZW1iZWRkaW5nIENTUyBpbiANCnN0YXRpYyB0ZXh0IGZpZWxkcy4gSW5zdGVhZCwgaXQgY3JlYXRlcyBhIHN0eWxlc2hlZXQgY2FsbGVkICZxdW90O0Zvcm1CdWlsZGVyIERlZmF1bHQmcXVvdDsgdGhhdCB5b3UgYXJlIGVuY291cmFnZWQgdG8gYXR0YWNoIHRvIHRoZSBwYWdlIHRlbXBsYXRlDQp0aGF0IHlvdSB1c2UgZm9yIHBhZ2VzIHRoYXQgY29udGFpbiB5b3VyIGZvcm0uPC9wPiAgDQo8cD5UaGlzIGRlZmF1bHQgQ1NTIHdhcyBncmFjaW91c2x5IHByb3ZpZGVkIGJ5IFBhdWwgTm9vbmUuPC9wPg0KDQoNCjxoMz5Gb3JtIFRlbXBsYXRlIFZhcmlhYmxlczwvaDM+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+PHRkPmZpZWxkLT5oZWxwdGV4dDwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgaGVscCB0ZXh0PC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aW5wdXQ8L3RkPjx0ZD50aGUgZmllbGQmIzAzOTtzIGlucHV0IGNvbnRyb2wgKGUuZy4sIHRoZSBpbnB1dCBmaWVsZCBpdHNlbGYpPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+b3A8L3RkPjx0ZD5hIGNvbnRyb2wgYnV0dG9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgZmllbGQgaWYgYXBwbGljYWJsZSAoZS5nLiwgdGhlIGRlbGV0ZSBidXR0b24gZm9yIGV4cGFuZGFibGUgdGV4dCBpbnB1dCk8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5pbnB1dF9pZDwvdGQ+PHRkPnRoZSBJRCBvZiB0aGUgZmllbGQmIzAzOTtzIGlucHV0ICh1c2VmdWwgZm9yIGxhYmVsIGZvcj0mcXVvdDtmb28mcXVvdDspPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+dHlwZTwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgZGF0YSB0eXBlPC90ZD48L3RyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCjx0cj48dGQ+ZmllbGQtPm11bHRpcGxlX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQtPmlucHV0IGlzIGFjdHVhbGx5IGEgY29sbGVjdGlvbiBvZiBjb250cm9sczwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmxhYmVsX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgY29sbGVjdGlvbiBvZiBjb250cm9scyBoYXMgc2VwYXJhdGUgbGFiZWxzIGZvciBlYWNoIGNvbnRyb2w8L3RkPjwvdHI+DQo8L3RhYmxlPg0KDQo8cD5JbiB0aGUgY2FzZSBvZiBhIG11bHRpcGFnZSBmb3JtLCB5b3Ugd2lsbCBhbHNvIGhhdmUgYWNjZXNzIHRvIHRoZSB2YWx1ZSBvZiBwcmV2aW91cyBmaWVsZHMuIFRoZXkNCmFyZSBpbiB0aGUgJHByZXZpb3VzIGFycmF5LCBvciBhY2Nlc3NpYmxlIGJ5IHRoZWlyIG5hbWVzIChlLmcuLCAmYW1wOyMxMjM7JG15ZmllbGQtPnZhbHVlfSApLg0KWW91IGNhbiB1c2UgdGhpcyBpbiBTdGF0aWMgVGV4dCBmaWVsZHMgYXMgd2VsbCwgd2hpY2ggaXMgYSBuaWNlIHdheSB0byBwZXJzb25hbGl6ZSBmb3JtcyE8L3A+DQoNCjxwPkluIGNlcnRhaW4gY2FzZXMsIGZpZWxkLT5pbnB1dCBpcyBhY3R1YWxseSBhbiBhcnJheSBvZiBvYmplY3RzIHJhdGhlciB0aGFuIGFuIGlucHV0LiBUaGlzIGhhcHBlbnMsIGZvciBleGFtcGxlLCBpbiBDaGVja0JveEdyb3VwcyBvciBSYWRpb0J1dHRvbkdyb3Vwcy4gRm9yIHRoZW0sIHlvdSBjYW4gaXRlcmF0ZSB0aHJvdWdoIGZpZWxkLT5pbnB1dC0+bmFtZSBhbmQgZmllbGQtPmlucHV0LT5pbnB1dHMuPC9wPg0KICAgIA0KPHA+QWRkaXRpb25hbCBzbWFydHkgdmFyaWFibGVzIHRoYXQgeW91IGNhbiB1c2UgaW5jbHVkZTo8L3A+DQo8dGFibGU+DQo8dHI+PHRoPlZhcmlhYmxlPC90aD48dGg+VmFsdWU8L3RoPjwvdHI+DQo8dHI+PHRkPnRvdGFsX3BhZ2VzPC90ZD48dGQ+bnVtYmVyIG9mIHBhZ2VzIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD50aGlzX3BhZ2U8L3RkPjx0ZD5udW1iZXIgZm8gdGhlIGN1cnJlbnQgcGFnZSBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+dGl0bGVfcGFnZV94X29mX3k8L3RkPjx0ZD5kaXNwbGF5cyAmcXVvdDtwYWdlIHggb2YgeSZxdW90OyBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+Y3NzX2NsYXNzPC90ZD48dGQ+Q1NTIENsYXNzIGZvciB0aGUgZm9ybTwvdGQ+PC90cj4NCjx0cj48dGQ+Zm9ybV9uYW1lPC90ZD48dGQ+Rm9ybSBuYW1lPC90ZD48L3RyPg0KPHRyPjx0ZD5mb3JtX2lkPC90ZD48dGQ+Rm9ybSBkYXRhYmFzZSBJRDwvdGQ+PC90cj4NCjx0cj48dGQ+aW5fZm9ybWJyb3dzZXI8L3RkPjx0ZD4xIGlmIGZvcm0gaXMgYmVpbmcgdmlld2VkIGZyb20gRm9ybUJyb3dzZXI8L3RkPjwvdHI+DQo8dHI+PHRkPmluX2FkbWluPC90ZD48dGQ+MSBpZiBmb3JtIGlzIGJlaW5nIHZpZXdlZCB2aWEgRm9ybUJyb3dzZXIgYWRtaW48L3RkPjwvdHI+DQo8dHI+PHRkPmZicl9pZDwvdGQ+PHRkPlJlc3BvbnNlIElEIGlmIGZvcm0gaXMgYmVpbmcgdmlld2VkIGZyb20gRm9ybUJyb3dzZXI8L3RkPjwvdHI+DQo8dHI+PHRkPnByZXY8L3RkPjx0ZD4mcXVvdDtCYWNrJnF1b3Q7IGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD5zdWJtaXQ8L3RkPjx0ZD4mcXVvdDtDb250aW51ZSZxdW90OyBvciAmcXVvdDtTdWJtaXQmcXVvdDsgYnV0dG9uIGZvciBtdWx0aXBhcnQgZm9ybXMsIGFkanVzdHMgYXV0b21hdGljYWxseTwvdGQ+PC90cj4NCjwvdGFibGU+DQo8cD5EdW5ubyB3aHkgeW91JiMwMzk7ZCB3YW50IHNvbWUgb2YgdGhvc2UsIGJ1dCB0aGVyZSB5b3UgZ28uLi48L3A+DQoNCjxoMz5DcmVkaXRzPC9oMz4NCjxwPk1hbnkgcGVvcGxlIGhhdmUgY29udHJpYnV0ZWQgY29kZSwgYnVnIHJlcG9ydHMsIGNhc2gsIGFuZCBpZGVhcyB0byBGb3JtQnJvd3Nlci4gQW1vbmcgdGhlbToNCjx1bD4NCjxsaT5Sb2JlcnQgQ2FtcGJlbGwgLSBudW1lcm91cyBjb2RlIGNvbnRyaWJ1dGlvbnM8L2xpPg0KPGxpPlR5bGVyIEJvZXNwZmx1ZyAtIGZ1bmRpbmcgYW5kIGlkZWFzPC9saT4NCjxsaT5QYXVsIE5vb25lIC0gQ1NTIGFuZCBpZGVhczwvbGk+DQo8bGk+SmVmZiBCb3NjaCAtIFVEVCBWYWxpZGF0aW9uPC9saT4NCjxsaT5OdW5vIENvc3RhIC0gc3VnZ2VzdGlvbnM8L2xpPg0KPGxpPkFsYmVydG8gQmVuYXRpIC0gY29kZTwvbGk+DQo8bGk+TW9ydGVuIFBvdWxzZW4gLSBjb2RlPC9saT4NCjxsaT5NYXJjIEdlbGRvbiAtIGNvZGU8L2xpPg0KPGxpPktldmluIEdyYW5kb24gLSBjb2RlPC9saT4NCjxsaT5TaW1vbiBTY2hhdWZlbGJlcmdlciAtIGNvZGU8L2xpPg0KPGxpPlJvbm55IEtyaWp0IC0gY29kZTwvbGk+DQo8L3VsPg0KPHA+SSBhcG9sb2dpemUgZm9yIGFueSBvbWlzc2lvbnMgLSBub3RpZnkgbWUsIGFuZCBJJiMwMzk7bGwgY29ycmVjdCB0aGUgb21pc3Npb24hPC9wPg0KPGgzPk1pc2NlbGxhbmVvdXMgTm90ZXM8L2gzPg0KPHVsPg0KPGxpPkFueSBmaWVsZHMgdGhhdCBzZW5kcyBlbWFpbCB0byBhIHNwZWNpZmllZCBlbWFpbCBhZGRyZXNzIHdpbGwgYWxzbyBhY2NlcHQgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBlbWFpbCBhZGRyZXNzZXMuPC9saT4NCjwvdWw+DQo8aDM+S25vd24gSXNzdWVzPC9oMz4NCjx1bD4NCjxsaT5Gb3JtQnVpbGRlciBkb2VzIG5vdCB5ZXQgc3VwcG9ydCBwcmV0dHkgVVJMcywgYWx0aG91Z2ggdGhhdCBzaG91bGRuJiMwMzk7dCBtYXR0ZXIgc2luY2UgdGhlIHVzZXIgc2lkZSBpcyBwcmV0dHkgc2ltcGxlLjwvbGk+DQo8bGk+RmlsZVVwbG9hZCBGaWVsZHMgbWF5IG5vdCB3b3JrIGNvcnJlY3RseSB3aXRoIG11bHRpcGFnZSBmb3Jtcy48L2xpPg0KPC91bD4NCg0KPGgzPlRyb3VibGVzaG9vdGluZzwvaDM+DQo8b2w+DQo8bGk+Rm9ybUJ1aWxkZXIvRm9ybUJyb3dzZXIgPHN0cm9uZz5yZXF1aXJlczwvc3Ryb25nPiBQSFAgNSBvciBsYXRlciB0byBmdW5jdGlvbiBjb3JyZWN0bHkuPC9saT4NCjxsaT5GaXJzdCBzdGVwIGlzIHRvIGNoZWNrIHlvdSYjMDM5O3JlIHJ1bm5pbmcgQ01TIDEuNiBvciBsYXRlci48L2xpPg0KPGxpPlNlY29uZCBzdGVwIGlzIHRvIHJlYWQgYW5kIHVuZGVyc3RhbmQgdGhlIGNhdmVhdCBhYm91dCBXWVNJV1lHIGVkaXRvcnMgdXAgaW4gdGhlDQpzZWN0aW9uIDxlbT5BZGRpbmcgYSBGb3JtIHRvIGEgUGFnZTwvZW0+LjwvbGk+DQo8bGk+IElmIHlvdSYjMDM5O3JlIG1pc3NpbmcgZmllbGRzIGluIGFuIGVtYWlsIHRoYXQgZ2V0cyBnZW5lcmF0ZWQsIGNoZWNrIHRoZSBkaXNwb3NpdGlvbiBmaWVsZCYjMDM5O3MgdGVtcGxhdGUsIGFuZCBtYWtlIHN1cmUgeW91JiMwMzk7cmUgc3BlY2lmeWluZyB0aGUgbWlzc2luZyBmaWVsZHMuIFNlZW1zIG9idmlvdXMsIGJ1dCBpdCYjMDM5O3MgYW4gZWFzeSBtaXN0YWtlIHRvIG1ha2UuPC9saT4NCjxsaT5VbmNoZWNrIHRoZSAmcXVvdDtIaWRlIEVycm9ycyZxdW90OyBjaGVja2JveCBpbiB0aGUgZ2xvYmFsIG9wdGlvbnMsIGFuZCBzZWUgd2hhdCBtZXNzYWdlIGdldHMgZGlzcGxheWVkIHdoZW4geW91IHN1Ym1pdCB5b3VyIGZvcm0uPC9saT4NCjxsaT4gSnVzdCBtZXNzIGFyb3VuZCBhbmQgdHJ5IGNsaWNraW5nIG9uIGxpbmtzIGFuZCBpY29ucyBhbmQgc3R1ZmYuIFNlZSB3aGF0IGhhcHBlbnMuPC9saT4NCjxsaT4gTWFrZSBzdXJlIHlvdSBjYW4gc3VjY2Vzc2Z1bGx5IHNlbmQgZW1haWwgdmlhIHRoZSB0ZXN0IGluIHRoZSBDTVNNYWlsZXIgTW9kdWxlLiBJdCYjMDM5O3Mgc2ltcGx5IGFtYXppbmcgaG93IG1hbnkgcHJvYmxlbXMgYm9pbCBkb3duIHRvIGEgbWlzY29uZmlndXJlZCBDTVNNYWlsZXIuPC9saT4NCjxsaT4gTGFzdCByZXNwb3J0IGlzIHRvIGVtYWlsIG1lIG9yIGNhdGNoIG1lIG9uIElSQyBhbmQgd2UgY2FuIGdvIGZyb20gdGhlcmUuPC9saT4NCjwvb2w+IA0KPHA+VGhpcyBpcyBubyBsb25nZXIgYSBwYXJ0aWN1bGFybHkgZWFybHkgdmVyc2lvbiwgYnV0IGl0IGlzIHByb2JhYmx5IHN0aWxsIGJ1Z2d5LiBXaGlsZSBJJiMwMzk7dmUgZG9uZSBhbGwgSSBjYW4NCnRvIG1ha2Ugc3VyZSBubyBlZ3JlZ2lvdXMgYnVncyBoYXZlIGNyZXB0IGluLCBJIGhhdmUgdG8gYWRtaXQgdGhhdCBkdXJpbmcgZWFybHkgdGVzdGluZywgdGhpcyBwcm9ncmFtDQpyZXZlYWxlZCBzZXZlbiBjb2Nrcm9hY2hlcywgdHdvIGVhcndpZ3MsIGEgc21hbGwgZmFtaWx5IG9mIGFwaGlkcywgYW5kIGEgd2Fsa2luZy1zdGljayBpbnNlY3QuIEl0IGFsc28NCmF0ZSB0aGUgbmVpZ2hib3ImIzAzOTtzIG5hc3R5IGxpdHRsZSB5YXAgZG9nLCBmb3Igd2hpY2ggSSB3YXMgaW5hcHByb3ByaWF0ZWx5IGdyYXRlZnVsLjwvcD4NCjxwPlRoZSBmaW5hbCByZWxlYXNlIHdpbGwgaW5jbHVkZSBidWcgZml4ZXMsIGRvY3VtZW50YXRpb24sIGFuZCB1bmNvbmRpdGlvbmFsIGxvdmUuPC9wPg0KPGgzPlN1cHBvcnQ8L2gzPg0KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPg0KPHVsPg0KPGxpPkZvciB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBtb2R1bGUsIEZBUXMsIG9yIHRvIGZpbGUgYSBCdWcgUmVwb3J0LCBwbGVhc2UgdmlzaXQgdGhlIENNUyBNYWRlIFNpbXBsZSAgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZyI+RGV2ZWxvcGVyIEZvcmdlPC9hPi48L2xpPg0KPGxpPlRvIG9idGFpbiBjb21tZXJjaWFsIHN1cHBvcnQsIHBsZWFzZSBzZW5kIGFuIGVtYWlsIHRvIHRoZSBhdXRob3IgYXQgPGEgaHJlZj0ibWFpbHRvOnNqZ0BjbXNtb2R1bGVzLmNvbSI+JmFtcDtsdDtzamdAY21zbW9kdWxlcy5jb20mYW1wO2d0OzwvYT4uPC9saT4NCjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyI+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uPC9saT4NCjxsaT5UaGUgYXV0aG9yIGNhbiBvZnRlbiBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaXJjOi8vaXJjLmZyZWVub2RlLm5ldC8jY21zIj5DTVMgSVJDIENoYW5uZWw8L2E+LjwvbGk+DQo8bGk+TGFzdGx5LCB5b3UgbWF5IGhhdmUgc29tZSBzdWNjZXNzIGVtYWlsaW5nIHRoZSBhdXRob3IgZGlyZWN0bHkgYW5kIGdyb3ZlbGxpbmcgZm9yIGZyZWUgc3VwcG9ydC48L2xpPg0KPGxpPkRvbmF0aW9ucyBhcmUgZ29vZCBtb3RpdmF0b3JzLCB0b28uIEtlZXAgaW4gbWluZCB0aGF0IHRoZSBkb2xsYXIgaXMgd2VhaywgYW5kIGlmIHlvdSBhcmUgbm90IGluIHRoZSBVUywgeW91ciBkb25hdGlvbiBnZXRzIG1hZ25pZmllZC48L2xpPg0KPC91bD4NCjxwPktlZXAgaW4gbWluZCB0aGF0IHRoZSBhdXRob3IgaGFzIHB1dCA8ZW0+aHVuZHJlZHMgYW5kIGh1bmRyZWRzIG9mIGhvdXJzPC9lbT4gaW50byB0aGUgZGV2ZWxvcG1lbnQgb2YgdGhpcyBtb2R1bGUuDQpQbGVhc2UgdGFrZSB0aGUgdGltZSB0byByZWFkIHRoZSBkb2N1bWVudGF0aW9uIGJlZm9yZSBzZW5kaW5nIHF1ZXN0aW9ucy4gRWl0aGVyIHRoYXQsIG9yIHNlbmQgeW91ciBxdWVzdGlvbnMgd3JpdHRlbiBvbg0KZmluYW5jaWFsbHkgbmVnb3RpYWJsZSBpbnN0cnVtZW50cyAoaS5lLiwgY2hlY2tzIG9yIGNhc2gpLiBBbSBJIHNvdW5kaW5nIGxpa2UgYSBicm9rZW4gcmVjb3JkPyBEbyB5b3Uga2lkcyB0aGVzZSBkYXlzDQpldmVuIGtub3cgd2hhdCBhIGJyb2tlbiByZWNvcmQgaXM/IEkgd291bGQgc2F5IHNraXBwaW5nIENELCBidXQgeW91IG1pZ2h0IG5vdCBrbm93IHdoYXQgdGhhdCBpcyBlaXRoZXIuIExpa2UgYQ0Kc2FtcGxlIHRoYXQgZ290IHN0dWNrIG9uIGxvb3A/IERhbW4sIEkgYW0gZ2V0dGluZyBvbGQuIFNvIGlzIHRoaXMgcGFyYWdyYXBoLiBUaW1lIHRvIG1vdmUgb24sIGhlcmUuPC9wPjxmb3JtIGFjdGlvbj0mcXVvdDtodHRwczovL3d3dy5wYXlwYWwuY29tL2NnaS1iaW4vd2Vic2NyJnF1b3Q7IG1ldGhvZD0mcXVvdDtwb3N0JnF1b3Q7Pg0KPGlucHV0IHR5cGU9JnF1b3Q7aGlkZGVuJnF1b3Q7IG5hbWU9JnF1b3Q7Y21kJnF1b3Q7IHZhbHVlPSZxdW90O19zLXhjbGljayZxdW90Oz4NCjxpbnB1dCB0eXBlPSZxdW90O2ltYWdlJnF1b3Q7IHNyYz0mcXVvdDtodHRwczovL3d3dy5wYXlwYWwuY29tL2VuX1VTL2kvYnRuL2J0bl9kb25hdGVDQ19MRy5naWYmcXVvdDsgYm9yZGVyPSZxdW90OzAmcXVvdDsgbmFtZT0mcXVvdDtzdWJtaXQmcXVvdDsgYWx0PSZxdW90O1BheVBhbCAtIFRoZSBzYWZlciwgZWFzaWVyIHdheSB0byBwYXkgb25saW5lISZxdW90Oz4NCjxpbWcgYWx0PSZxdW90OyZxdW90OyBib3JkZXI9JnF1b3Q7MCZxdW90OyBzcmM9JnF1b3Q7aHR0cHM6Ly93d3cucGF5cGFsLmNvbS9lbl9VUy9pL3Njci9waXhlbC5naWYmcXVvdDsgd2lkdGg9JnF1b3Q7MSZxdW90OyBoZWlnaHQ9JnF1b3Q7MSZxdW90Oz4NCjxpbnB1dCB0eXBlPSZxdW90O2hpZGRlbiZxdW90OyBuYW1lPSZxdW90O2VuY3J5cHRlZCZxdW90OyB2YWx1ZT0mcXVvdDstLS0tLUJFR0lOIFBLQ1M3LS0tLS1NSUlIVHdZSktvWklodmNOQVFjRW9JSUhRRENDQnp3Q0FRRXhnZ0V3TUlJQkxBSUJBRENCbERDQmpqRUxNQWtHQTFVRUJoTUNWVk14Q3pBSkJnTlZCQWdUQWtOQk1SWXdGQVlEVlFRSEV3MU5iM1Z1ZEdGcGJpQldhV1YzTVJRd0VnWURWUVFLRXd0UVlYbFFZV3dnU1c1akxqRVRNQkVHQTFVRUN4UUtiR2wyWlY5alpYSjBjekVSTUE4R0ExVUVBeFFJYkdsMlpWOWhjR2t4SERBYUJna3Foa2lHOXcwQkNRRVdEWEpsUUhCaGVYQmhiQzVqYjIwQ0FRQXdEUVlKS29aSWh2Y05BUUVCQlFBRWdZQUlObkJXYi9YTTRsbXZMR0hsOVJkMWN2TDV0cnFSaGM3K0ZvR0g1THRvZlFpVnJnRlN2aDdoMW9qZzVTelR4Ymd0aTMyWkYwL3VjdXEvT1FTRCtWenV1QUYxdjZ3VnJ0eU9lQ1BFQXc4ajgxREpPWFZqSkhzSVkybXZpb3JQam9sTFFrRm52MTJ5UlRwdUZXRm40WlhlNSt2bkNqWHFCeTBFRS9haHpFTU1uekVMTUFrR0JTc09Bd0lhQlFBd2djd0dDU3FHU0liM0RRRUhBVEFVQmdncWhraUc5dzBEQndRSWNLTk53T1BGb3d1QWdhaXZTN3YwajJYRnlROWRyOG5pOUc5NWVFN1lxb2dHbEs5d3VTcGxsT2c5bG5ydXZuRVFxc21SbVFudGhRcVdDVGJaekcyK0lFdGVNNElVc3hFdUdUcnc4cFpDVTI0VE5EY2tuS1V4OVV6M3ZTeE9oM2d1OTV5SnlEd29lTXZhRUEyNGJzMTRRRWJKYmhOalk2V3hIejkraS9sVkFEQmp5QU9EWU11emFsRGt2ZHV2d2VHTlprOWxZTFJSQ29QUE5pbEcxUGY2dzg3Qkhwa1NNOFdRMUxDOStSV2RYZlpjbStlZ2dnT0hNSUlEZ3pDQ0F1eWdBd0lCQWdJQkFEQU5CZ2txaGtpRzl3MEJBUVVGQURDQmpqRUxNQWtHQTFVRUJoTUNWVk14Q3pBSkJnTlZCQWdUQWtOQk1SWXdGQVlEVlFRSEV3MU5iM1Z1ZEdGcGJpQldhV1YzTVJRd0VnWURWUVFLRXd0UVlYbFFZV3dnU1c1akxqRVRNQkVHQTFVRUN4UUtiR2wyWlY5alpYSjBjekVSTUE4R0ExVUVBeFFJYkdsMlpWOWhjR2t4SERBYUJna3Foa2lHOXcwQkNRRVdEWEpsUUhCaGVYQmhiQzVqYjIwd0hoY05NRFF3TWpFek1UQXhNekUxV2hjTk16VXdNakV6TVRBeE16RTFXakNCampFTE1Ba0dBMVVFQmhNQ1ZWTXhDekFKQmdOVkJBZ1RBa05CTVJZd0ZBWURWUVFIRXcxTmIzVnVkR0ZwYmlCV2FXVjNNUlF3RWdZRFZRUUtFd3RRWVhsUVlXd2dTVzVqTGpFVE1CRUdBMVVFQ3hRS2JHbDJaVjlqWlhKMGN6RVJNQThHQTFVRUF4UUliR2wyWlY5aGNHa3hIREFhQmdrcWhraUc5dzBCQ1FFV0RYSmxRSEJoZVhCaGJDNWpiMjB3Z1o4d0RRWUpLb1pJaHZjTkFRRUJCUUFEZ1kwQU1JR0pBb0dCQU1GSFR0MzhSTXhMWEp5TzJTbVMrTmRsNzJUN29LSjR1NHV3KzZhd250QUxXaDAzUGV3bUlKdXpiQUxTY3NUUzRzWm9TMWZLY2lCR29oMTFnSWZIenlsdmtkTmUvaEpsNjYvUkdxcmo1ckZiMDhzQUFCTlR6RFRpcXFOcEplQnNZcy9jMmFpR296cHRYMlJsbkJrdEgrU1VOcEFhalc3MjROdjJXdmhpZjZzRkFnTUJBQUdqZ2U0d2dlc3dIUVlEVlIwT0JCWUVGSmFmZkx2R2J4ZTlXVDlTMXdvYjdCRFdaSlJyTUlHN0JnTlZIU01FZ2JNd2diQ0FGSmFmZkx2R2J4ZTlXVDlTMXdvYjdCRFdaSlJyb1lHVXBJR1JNSUdPTVFzd0NRWURWUVFHRXdKVlV6RUxNQWtHQTFVRUNCTUNRMEV4RmpBVUJnTlZCQWNURFUxdmRXNTBZV2x1SUZacFpYY3hGREFTQmdOVkJBb1RDMUJoZVZCaGJDQkpibU11TVJNd0VRWURWUVFMRkFwc2FYWmxYMk5sY25Sek1SRXdEd1lEVlFRREZBaHNhWFpsWDJGd2FURWNNQm9HQ1NxR1NJYjNEUUVKQVJZTmNtVkFjR0Y1Y0dGc0xtTnZiWUlCQURBTUJnTlZIUk1FQlRBREFRSC9NQTBHQ1NxR1NJYjNEUUVCQlFVQUE0R0JBSUZmT2xhYWdGcmw3MStqcTZPS2lkYldGU0UrUTRGcVJPdmRnSU9OdGgrOGtTSy8vWS80aWh1RTRZbXZ6bjVjZUUzUy9pQlNRUU1qeXZiK3MyVFdiUVlEd2NwMTI5T1BJYkQ5ZXBkcjR0Sk9VTmlTb2p3N0JId1lSaVBoNThTMXhHbEZnSEZYd3JFQmIzZGdOYk1VYSt1NHFlY3RzTUFYcFZIbkQ5d0l5Zm1ITVlJQm1qQ0NBWllDQVFFd2daUXdnWTR4Q3pBSkJnTlZCQVlUQWxWVE1Rc3dDUVlEVlFRSUV3SkRRVEVXTUJRR0ExVUVCeE1OVFc5MWJuUmhhVzRnVm1sbGR6RVVNQklHQTFVRUNoTUxVR0Y1VUdGc0lFbHVZeTR4RXpBUkJnTlZCQXNVQ214cGRtVmZZMlZ5ZEhNeEVUQVBCZ05WQkFNVUNHeHBkbVZmWVhCcE1Sd3dHZ1lKS29aSWh2Y05BUWtCRmcxeVpVQndZWGx3WVd3dVkyOXRBZ0VBTUFrR0JTc09Bd0lhQlFDZ1hUQVlCZ2txaGtpRzl3MEJDUU14Q3dZSktvWklodmNOQVFjQk1Cd0dDU3FHU0liM0RRRUpCVEVQRncwd09EQTNNREV3TXpVNU16bGFNQ01HQ1NxR1NJYjNEUUVKQkRFV0JCUU0wTFYzMGZMWGNIOU01ZE1tdVRCTG5zRlE0akFOQmdrcWhraUc5dzBCQVFFRkFBU0JnQkV6MlhxTU1xRmJ1VWhqK0wxMjhDdzJ1OFNoT0tRdHRyS3IvaGkwV1JlZW5IRFlCaUhPU3RsNjNSdjc2UTJtcGQ0NTNSdkNqNW1xN2RSdHVSQjZwZkhHUkRrVVg2TjErT09Jb0lmcm9CWklBVE5oejlDRUh3RUZrTmpZZzBFR01BRytqY2JBajFESmpSNzNjeGJhTnJYV1B4QStoaVFoSGxBcnJaQTdyRlY1LS0tLS1FTkQgUEtDUzctLS0tLQ0KJnF1b3Q7Pg0KPC9mb3JtPjxwPkFzIHBlciB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkIGFzLWlzLiBQbGVhc2UgcmVhZCB0aGUgdGV4dA0Kb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuPC9wPg0KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+DQo8cD5Db3B5cmlnaHQgKEMpIDIwMDksIFNhbXVlbCBHb2xkc3RlaW4gPGEgaHJlZj0ibWFpbHRvOnNqZ0BjbXNtb2R1bGVzLmNvbSI+PHNqZ0BjbXNtb2R1bGVzLmNvbT48L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+DQo8cD5UaGlzIG1vZHVsZSBoYXMgYmVlbiByZWxlYXNlZCB1bmRlciB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5HTlUgUHVibGljIExpY2Vuc2U8L2E+LiBZb3UgbXVzdCBhZ3JlZSB0byB0aGlzIGxpY2Vuc2UgYmVmb3JlIHVzaW5nIHRoZSBtb2R1bGUuPC9wPic7CiRsYW5nWyd1dG1hJ10gPSAnMTU2ODYxMzUzLjE3Mzg4OTYwMzkuMTI3ODg0MDAwMC4xMjgwMzA1MjM4LjEyODAzMjE2ODAuNTQnOwokbGFuZ1sndXRteiddID0gJzE1Njg2MTM1My4xMjgwMjE4OTk1LjQ4LjUudXRtY3NyPWZvcnVtLmNtc21hZGVzaW1wbGUub3JnfHV0bWNjbj0ocmVmZXJyYWwpfHV0bWNtZD1yZWZlcnJhbHx1dG1jY3Q9L2luZGV4LnBocC9ib2FyZCwxMy4wLmh0bWwnOwokbGFuZ1sncWNhJ10gPSAnUDAtODU0Mzg3MDQzLTEyNzg4NDAwMDA5MTcnOwokbGFuZ1sndXRtYiddID0gJzE1Njg2MTM1My42LjEwLjEyODAzMjE2ODAnOwokbGFuZ1sndXRtYyddID0gJzE1Njg2MTM1Myc7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lang/ext/pl_PL.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0tyZWF0b3IgZm9ybXVsYXJ6eSc7CiRsYW5nWydmaWVsZF90eXBlXyddID0gJ1R5cCBwb2xhIG5pZSB6b3N0YcWCIHVzdGF3aW9ueSc7CiRsYW5nWydmaWVsZF90eXBlX0NhdGFsb2dlckl0ZW1zRmllbGQnXSA9ICdXeWJpZXJ6IGplZGVuIGx1YiB3acSZY2VqIHdwaXMmb2FjdXRlO3cgbW9kdcWCdSBDYXRhbG9nZXInOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldEVuZCddID0gJy1Lb25pZWMgcG9sYSc7CiRsYW5nWydmaWVsZF90eXBlX0ZpZWxkc2V0U3RhcnQnXSA9ICctUG9jesSFdGVrIHBvbGEnOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0RmllbGQnXSA9ICdQb2xlIHRla3N0b3dlZ28gd3Byb3dhZHphbmlhIChUZXh0IElucHV0KSc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRGaWVsZEV4cGFuZGFibGUnXSA9ICdQb2xlIHRla3N0b3dlZ28gd3Byb3dhZHphbmlhICh3aWVsb2tyb3RuZSknOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0QXJlYUZpZWxkJ10gPSAnUG9sZSB0ZWtzdG93ZSAodGV4dCBhcmVhKSc7CiRsYW5nWydmaWVsZF90eXBlX0NoZWNrYm94RmllbGQnXSA9ICdDaGVja2JveCc7CiRsYW5nWydmaWVsZF90eXBlX0NoZWNrYm94R3JvdXBGaWVsZCddID0gJ0dydXBhIGNoZWNrYm94Jm9hY3V0ZTt3JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUHVsbGRvd25GaWVsZCddID0gJ0xpc3RhIHJvendpamFsbmEnOwokbGFuZ1snZmllbGRfdHlwZV9NdWx0aXNlbGVjdEZpZWxkJ10gPSAnTGlzdGEgd2llbG9rcm90bmVnbyB3eWJvcnUnOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0ZVBpY2tlckZpZWxkJ10gPSAnS29udHJvbGthIHd5Ym9ydSBzdGFuJm9hY3V0ZTt3IFVTQSc7CiRsYW5nWydmaWVsZF90eXBlX1Byb3ZpbmNlUGlja2VyRmllbGQnXSA9ICdLb250cm9sa2Egd3lib3J1IHJlZ2lvbiZvYWN1dGU7dyBLYW5hZHknOwokbGFuZ1snZmllbGRfdHlwZV9Db3VudHJ5UGlja2VyRmllbGQnXSA9ICdLb250cm9sa2Egd3lib3J1IGtyYWp1JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGF0ZVBpY2tlckZpZWxkJ10gPSAnS29udHJvbGthIHd5Ym9ydSBkYXR5JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGltZVBpY2tlckZpZWxkJ10gPSAnS29udHJvbGthIHd5Ym9ydSBjemFzdSc7CiRsYW5nWydmaWVsZF90eXBlX1JhZGlvR3JvdXBGaWVsZCddID0gJ0dydXBhIHJhZGlvYnV0dG9uJm9hY3V0ZTt3JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EaXJlY3RvciddID0gJypXeXN5xYJhaiB3eW5pa2kgZW1haWxlbSB3eWJyYW55bSB6IGxpc3R5JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25GaWxlRGlyZWN0b3InXSA9ICcqWmFwaXN6IHd5bmlraSBkbyBwbGlrdSB3eWJpZXJhbmVnbyB6IGxpc3R5JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25NdWx0aXNlbGVjdEZpbGVEaXJlY3RvciddID0gJypaYXBpc3ogd3luaWtpIGRvIHBsaWt1KCZvYWN1dGU7dykgd3liaWVyYW5lZ28geiBsaXN0eSB3aWVsb2tydG9uZWdvIHd5Ym9ydSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uUGFnZVJlZGlyZWN0b3InXSA9ICcqUHJ6ZWtpZXJ1aiBkbyBzdHJvbnkgd3licmFuZWogeiBsaXN0eSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWwnXSA9ICcqV3nFm2xpaiB3eW5pa2kgcG9kIGVtYWlsKGUpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbENvbmZpcm1hdGlvbiddID0gJypBZHJlcyBXYWxpZGFjamktcHJ6ZXotZW1haWwnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZpbGUnXSA9ICcqWmFwaXN6IHd5bmlraSBkbyB6d3lrxYJlZ28gcGxpa3UnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRhdGFiYXNlJ10gPSAnKlphcGlzeiB3eW5pa2kgZG8gYmF6eSBkYW55Y2gnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZvcm1Ccm93c2VyJ10gPSAnKlphcGlzeiB3eW5payB3IGZvcm1hY2llIHpnb2RueW0geiBtb2R1xYJlbSBGb3JtQnJvd3NlciB2LjMnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvblVzZXJUYWcnXSA9ICcqV3l3b8WCYWogem5hY3puaWsgdcW8eXRrb3duaWthIHogd3luaWthbWkgZm9ybXVsYXJ6YSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGVsaXZlclRvRW1haWxBZGRyZXNzRmllbGQnXSA9ICcqV3nFm2xpaiB3eW5pa2kgbmEgZW1haWwgcG9kYW55IHByemV6IHXFvHl0a293bmlrYSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxTaXRlQWRtaW4nXSA9ICcqV3nFm2xpaiB3eW5payBkbyBhZG1pbmlzdHJhdG9yYSBDTVMnOwokbGFuZ1snZmllbGRfdHlwZV9QYWdlQnJlYWtGaWVsZCddID0gJy1Lb25pZWMgc3Ryb255JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmlsZVVwbG9hZEZpZWxkJ10gPSAnV2dyeXdhbmllIHBsaWt1JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsQWRkcmVzc0ZpZWxkJ10gPSAnUG9sZSB3IGVtYWlsdSAmcXVvdDtBZHJlcyBvZCZxdW90Oyc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbE5hbWVGaWVsZCddID0gJ1BvbGUgdyBlbWFpbHUgJnF1b3Q7T2QmcXVvdDsnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxTdWJqZWN0RmllbGQnXSA9ICdQb2xlIHcgZW1haWx1ICZxdW90O1R5dHXFgiZxdW90Oyc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRpY1RleHRGaWVsZCddID0gJy1UZWtzdCBzdGF0eWN6bnknOwokbGFuZ1snZmllbGRfdHlwZV9TeXN0ZW1MaW5rRmllbGQnXSA9ICctTGluayBzdGF0eWN6bnknOwokbGFuZ1snZmllbGRfdHlwZV9MaW5rRmllbGQnXSA9ICdMaW5rICh3cHJvd2Fkem9ueSBwcnpleiB1xbx5dGtvd25pa2EpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfSGlkZGVuRmllbGQnXSA9ICctUG9sZSB1a3J5dGUnOwokbGFuZ1snZmllbGRfdHlwZV9Db21wdXRlZEZpZWxkJ10gPSAnLVBvbGUgb2JsaWN6ZW5pb3dlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVW5pcXVlSW50ZWdlckZpZWxkJ10gPSAnLVVuaWthbG55IGlkZW50eWZpa2F0b3IgKG51bWVyIHNlcnlqbnkpJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbm9uZSddID0gJ0JleiB3YWxpZGFjamknOwokbGFuZ1sndmFsaWRhdGlvbl9udW1lcmljJ10gPSAnTnVtZXJ5Y3puZSc7CiRsYW5nWyd2YWxpZGF0aW9uX2ludGVnZXInXSA9ICdQZcWCbm8tbGljemJvd2UgKGludGVnZXIpJzsKJGxhbmdbJ3ZhbGlkYXRpb25fZW1haWxfYWRkcmVzcyddID0gJ0FkcmVzIGVtYWlsJzsKJGxhbmdbJ3ZhbGlkYXRpb25fdXNwaG9uZSddID0gJ051bWVyIHRlbGVmb25pY3pueSAoZm9ybWF0IFVTQSknOwokbGFuZ1sndmFsaWRhdGlvbl9tdXN0X2NoZWNrJ10gPSAnTXVzaSB6b3N0YcSHIHphem5hY3pvbmUnOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9tYXRjaCddID0gJ1NwcmF3ZHphaiBwb3ByYXdub8WbxIcgeiB3eXJhxbxlbmllbSByZWd1bGFybnltJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbm9tYXRjaCddID0gJ05pZSBzcGXFgm5pYSB3YXJ1bmsmb2FjdXRlO3cgb2tyZcWbbG9ueWNoIHByemV6IHBvZGFuZSB3eXJhxbxlbmllIHJlZ3VsYXJuZSc7CiRsYW5nWydyZXF1aXJlZF9maWVsZF9taXNzaW5nJ10gPSAnV2FydG/Fm8SHIGRsYSB3eW1hZ2FuZWdvIHBvbGEgbmllIHpvc3RhxYJhIHBvZGFuYSc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV92YWx1ZSddID0gJ1dwcm93YWTFuiB3YXJ0b8WbxIcgZGxhIHBvbGEgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfbnVtYmVyJ10gPSAnV3Byb3dhZMW6IGxpY3pixJkgdyBwb2x1ICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl92YWxpZCddID0gJ1dwcm93YWTFuiBwb3ByYXduxIUgd2FydG/Fm8SHIHcgcG9sdSAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5faW50ZWdlciddID0gJ1dwcm93YWTFuiB3YXJ0b8WbxIcgcGXFgm5vLWxpY3pib3fEhSB3IHBvbHUgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FuX2VtYWlsJ10gPSAnV3Byb3dhZMW6IHBvcHJhd255IGVtYWlsIHcgcG9sdSAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV9waG9uZSddID0gJ1dwcm93YWTFuiBwb3ByYXdueSBudW1lciB0ZWxlZm9uaWN6bnljaCB3IHBvbHUgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1snbm90X3ZhbGlkX2VtYWlsJ10gPSAnJnF1b3Q7JXMmcXVvdDsgbmllIHd5ZGFqZSBzacSZIHBvcHJhd255bSBhZHJlc2VtIGVtYWlsISc7CiRsYW5nWydwbGVhc2VfZW50ZXJfbm9fbG9uZ2VyJ10gPSAnV3Byb3dhZMW6IHdhcnRvxZvEhyBuaWUgZMWCdcW8c3rEhSBuacW8ICVzIHpuYWsmb2FjdXRlO3cnOwokbGFuZ1sndGl0bGVfbGlzdF9kZWxpbWl0ZXInXSA9ICdabmFrIHXFvHl3YW55IGpha28gc2VwYXJhdG9yIHcgd3luaWthY2ggZGFqxIVjeWNoIHdpxJljZWogbmnFvCBqZWRuxIUgd2FydG/Fm8SHJzsKJGxhbmdbJ3lvdV9uZWVkX3Blcm1pc3Npb24nXSA9ICdQb3RyemVidWplc3ogdXByYXduaWVuaWUgJnF1b3Q7JXMmcXVvdDsgYnkgd3lrb25hxIcgdMSZIG9wZXJhY2rEmSc7CiRsYW5nWydsYWNrcGVybWlzc2lvbiddID0gJ1NvcnJ5ISBOaWUgbWFzeiBvZHBvd2llZG5pY2ggdXByYXduaWXFhCBieSBrb3J6eXN0YcSHIHogdGVqIHNla2NqaS4nOwokbGFuZ1snZmllbGRfb3JkZXJfdXBkYXRlZCddID0gJ0tvbGVqbm/Fm8SHIHAmb2FjdXRlO2wgemFrdHVhbGl6b3dhbmEnOwokbGFuZ1snZm9ybV9kZWxldGVkJ10gPSAnRm9ybXVsYXJ6IHpvc3RhxYIgdXN1bmnEmXR5JzsKJGxhbmdbJ2ZpZWxkX2RlbGV0ZWQnXSA9ICdQb2xlIHpvc3RhxYJvIHVzdW5pxJl0ZSc7CiRsYW5nWydjb25maWd1cmF0aW9uX3VwZGF0ZWQnXSA9ICdLb25maWd1cmFjamEgemFwaXNhbmEuJzsKJGxhbmdbJ3lvdV9tdXN0X2NoZWNrJ10gPSAnTXVzaXN6IHphem5hY3p5xIcgJnF1b3Q7JXMmcXVvdDsgYnkgcHJ6ZWrFm8SHIGRhbGVqJzsKJGxhbmdbJ211c3Rfc3BlY2lmeV9vbmVfZGVzdGluYXRpb24nXSA9ICdNdXNpc3ogcG9kYcSHIGNvIG5ham1uaWVqIGplZGVuIGFkcmVzIGRvY2Vsb3d5ISc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2Zvcm0nXSA9ICdOYSBwZXdubyBjaGNlc3ogdXN1bsSFxIcgZm9ybXVsYXJ6ICVzPyc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2ZpZWxkJ10gPSAnTmEgcGV3bm8gY2hjZXN6IHVzdW7EhcSHIHBvbGUgJXM/JzsKJGxhbmdbJ25vdGljZV9zZWxlY3RfdHlwZSddID0gJ09wY2plIHphYXdhbnNvd2FuZSBuaWUgc8SFIGRvc3TEmXBuZSwgZG9wJm9hY3V0ZTtraSBuaWUgdXN0YXdpc3ogdHlwdSBwb2xhJzsKJGxhbmdbJ2ZpZWxkX25hbWVfaW5fdXNlJ10gPSAnTmF6d2EgcG9sYSAmcXVvdDslcyZxdW90OyBqdcW8IGplc3QgdyBzeXN0ZW1pZS4gVcW8eXdhaiBuaWVwb3d0YXJ6YWxueWNoIG5hencgYWxibyB3ecWCxIVjeiBvZHBvd2llZG5pxIUgb3BjasSZIHcga29uZmlndXJhY2ppIG1vZHXFgnUuJzsKJGxhbmdbJ2ZpZWxkX25vX25hbWUnXSA9ICdQb2xhIG11c3rEhSBtaWXEhyBuYXp3xJksIGRvcCZvYWN1dGU7a2kgbmllIHd5xYLEhWN6eXN6IHRlaiBvcGNqaSB6IGtvbmZpZ3VyYWNqaSBtb2R1xYJ1Lic7CiRsYW5nWydhbm9ueW1vdXMnXSA9ICdBbm9uaW0nOwokbGFuZ1snYWJicmV2aWF0aW9uX2xlbmd0aCddID0gJ0TFgjogJXMnOwokbGFuZ1snYm94ZXMnXSA9ICclcyBib2tzJm9hY3V0ZTt3JzsKJGxhbmdbJ29wdGlvbnMnXSA9ICclcyBvcGNqaSc7CiRsYW5nWyd0ZXh0X2xlbmd0aCddID0gJyVzIHpuYWsmb2FjdXRlO3cnOwokbGFuZ1snb3JkZXInXSA9ICdLb2xlam5vxZvEhyc7CiRsYW5nWyd1bnNwZWNpZmllZCddID0gJ1tuaWV6bmFuZV0nOwokbGFuZ1snYWRkZWQnXSA9ICdkb2Rhbm8nOwokbGFuZ1sndXBkYXRlZCddID0gJ3pha3R1YWxpem93YW5vJzsKJGxhbmdbJ3NvcnRfb3B0aW9ucyddID0gJ09wY2plIHNvcnRvd2FuaWEgd3lqxZtjaWEnOwokbGFuZ1snc2VsZWN0X29uZSddID0gJ1d5YmllcnogamVkbm8nOwokbGFuZ1snc2VsZWN0X3R5cGUnXSA9ICdXeWJpZXJ6IHR5cCc7CiRsYW5nWyd0byddID0gJ0RvJzsKJGxhbmdbJ3llcyddID0gJ1Rhayc7CiRsYW5nWydubyddID0gJ05pZSc7CiRsYW5nWydyZWNpcGllbnRzJ10gPSAnb2RiaW9yY3knOwokbGFuZ1snZmlsZV9jb3VudCddID0gJyVzIG1vxbxsaXd5Y2ggcGxpayZvYWN1dGU7dyc7CiRsYW5nWydkZXN0aW5hdGlvbl9jb3VudCddID0gJyVzIGNlbCZvYWN1dGU7dyc7CiRsYW5nWydzYXZlJ10gPSAnWmFwaXN6JzsKJGxhbmdbJ2FkZCddID0gJ0RvZGFqJzsKJGxhbmdbJ3VwZGF0ZSddID0gJ0FrdHVhbGl6dWonOwokbGFuZ1snc2F2ZV9hbmRfY29udGludWUnXSA9ICdaYXBpc3ogaSBrb250eW51dWogZWR5Y2rEmSc7CiRsYW5nWydpbmZvcm1hdGlvbiddID0gJ0luZm9ybWFjamUnOwokbGFuZ1snYXV0b21hdGljJ10gPSAnQXV0b21hdHljem5pZSc7CiRsYW5nWydmb3JtcyddID0gJ0Zvcm11bGFyemUnOwokbGFuZ1snZm9ybSddID0gJ0Zvcm11bGFyeiAlcyc7CiRsYW5nWydjb25maWd1cmF0aW9uJ10gPSAnS29uZmlndXJhY2phJzsKJGxhbmdbJ2ZpZWxkX3JlcXVpcmVtZW50X3VwZGF0ZWQnXSA9ICdTdGF0dXMgd3ltYWdhbG5vxZtjaSBwb2xhIHpvc3RhxYIgemFrdHVhbGl6b3dhbnkuJzsKJGxhbmdbJ21heGltdW1fc2l6ZSddID0gJ01ha3N5bWFsbnkgcm96bWlhcic7CiRsYW5nWydwZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ1JvenJ6ZXN6ZW5pYSc7CiRsYW5nWydwZXJtaXR0ZWRfZmlsZXR5cGVzJ10gPSAnRG96d29sb25lIHR5cHkgcGxpayZvYWN1dGU7dyc7CiRsYW5nWydmaWxlX3Rvb19sYXJnZSddID0gJ1dncnl3YW55IHBsaWsgamVzdCB6YSBkdcW8eSEgTWFrc3ltYWxueSByb3ptaWFyIHRvOic7CiRsYW5nWydpbGxlZ2FsX2ZpbGVfdHlwZSddID0gJ1BsaWtpIHRlZ28gdHlwdSAodGVnbyByb3pzemVyemVuaWEpIG5pZSBtb2fEhSBiecSHIHdncnl3YW5lIGRvIG5hc3plZ28gc3lzdGVtdS4gU3ByYXdkxbosIGN6eSByb3pzemVyemVuaWUgamVzdCBwcmF3aWTFgm93ZS4nOwokbGFuZ1sndXBsb2FkJ10gPSAnV2dyeXdhbmllJzsKJGxhbmdbJ2Zvcm1faW1wb3J0ZWQnXSA9ICdGb3JtdWxhcnogemFpbXBvcnRvd2FueS4nOwokbGFuZ1snZm9ybV9pbXBvcnRfZmFpbGVkJ10gPSAnSW1wb3J0IGZvcm11bGFyemEgc2nEmSBuaWUgcG93aSZvYWN1dGU7ZMWCISBCecWCIHByb2JsZW0geiBmb3JtYXRlbSBwbGlrdSBYTUwuJzsKJGxhbmdbJ3Jvd3MnXSA9ICclcyB3aWVyc3p5JzsKJGxhbmdbJ2NvbHMnXSA9ICclcyBrb2x1bW4nOwokbGFuZ1snMTJfaG91ciddID0gJzEyLWdvZHppbm55IHplZ2FyJzsKJGxhbmdbJzI0X2hvdXInXSA9ICcyNC1nb2R6aW5ueSB6ZWdhcic7CiRsYW5nWydob3VyJ10gPSAnR29kemluYSc7CiRsYW5nWydtaW4nXSA9ICdNaW51dGEnOwokbGFuZ1snbWVyaWQnXSA9ICdQb8WCdWRuaWsnOwokbGFuZ1snZGF0ZV9yYW5nZSddID0gJ1pha3JlczogJXMgLSAlcyc7CiRsYW5nWyd0aGFua3MnXSA9ICdEemnEmWtpISBUd29qYSB3eXN5xYJrYSB6b3N0YcWCYSBvdHJ6eW1hbmEuJzsKJGxhbmdbJ2VkaXQnXSA9ICdFZHl0dWonOwokbGFuZ1snZGVsZXRlJ10gPSAnS2FzdWonOwokbGFuZ1snZGF5J10gPSAnRHppZcWEJzsKJGxhbmdbJ21vbiddID0gJ01pZXNpxIVjJzsKJGxhbmdbJ3llYXInXSA9ICdSb2snOwokbGFuZ1snbm9uZSddID0gJyhicmFrKSc7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHXFgiBvZGluc3RhbG93YW55JzsKJGxhbmdbJ2luc3RhbGxlZCddID0gJ01vZHXFgiB3IHdlcnNqaSAlcyB6b3N0YcWCIHphaW5zdGFsb3dhbnkuJzsKJGxhbmdbJ3VwZ3JhZGVkJ10gPSAnTW9kdcWCIHpha3R1YWxpem93YW5vIGRvIHdlcnNqaSAlcy4nOwokbGFuZ1snYnV0dG9uX3ByZXZpb3VzJ10gPSAnUG93ciZvYWN1dGU7dC4uLic7CiRsYW5nWydidXR0b25fc3VibWl0J10gPSAnV3nFm2xpaiBmb3JtdWxhcnonOwokbGFuZ1snYnV0dG9uX2NvbnRpbnVlJ10gPSAnS29udHludXVqLi4uJzsKJGxhbmdbJ3ZhbHVlX2NoZWNrZWQnXSA9ICdaYXpuYWN6b255JzsKJGxhbmdbJ3ZhbHVlX3VuY2hlY2tlZCddID0gJ09kem5hY3pvbnknOwokbGFuZ1sndGFiX21haW4nXSA9ICdHxYImb2FjdXRlO3duYSc7CiRsYW5nWyd0YWJfc3ltYm9sJ10gPSAnVXN0YXdpZW5pYSB3ecWbd2lldGxlbmlhIGZvcm11bGFyemEnOwokbGFuZ1sndGFiX3N1Ym1pdCddID0gJ1d5c8WCYW5pZSBmb3JtdWxhcnphJzsKJGxhbmdbJ3RhYl9jYXB0Y2hhJ10gPSAnVXN0YXdpZW5pYSBDYXB0Y2hhJzsKJGxhbmdbJ3RhYl9hZHZhbmNlZCddID0gJ1VzdGF3aWVuaWEgWmFhd2Fuc293YW5lJzsKJGxhbmdbJ3RhYl90ZW1wbGF0ZWxheW91dCddID0gJ1N6YWJsb24gZm9ybXVsYXJ6YSc7CiRsYW5nWyd0YWJfc3VibWlzc2lvbnRlbXBsYXRlJ10gPSAnU3phYmxvbiB3eXPFgmFuaWEnOwokbGFuZ1snY2FudXNlX3NtYXJ0eSddID0gJzxlbT5abWllbm5lIHNtYXJ0eSBzxIUgdyB0eW0gcG9sdSBkb3p3b2xvbmUhPC9lbT4nOwokbGFuZ1snYWRkX29wdGlvbnMnXSA9ICdEb2RhaiB3acSZY2VqIG9wY2ppJzsKJGxhbmdbJ2RlbGV0ZV9vcHRpb25zJ10gPSAnU2thc3VqIHphem5hY3pvbmUgb3BjamUnOwokbGFuZ1snYWRkX2NoZWNrYm94ZXMnXSA9ICdEb2RhaiB3acSZY2VqIGNoZWNrYm94LSZvYWN1dGU7dyc7CiRsYW5nWydkZWxldGVfY2hlY2tib3hlcyddID0gJ1NrYXN1aiB6YXpuYWN6b25lIGNoZWNrYm94LXknOwokbGFuZ1snYWRkX2FkZHJlc3MnXSA9ICdEb2RhaiBrb2xlam55IGFkcmVzJzsKJGxhbmdbJ2RlbGV0ZV9hZGRyZXNzJ10gPSAnU2thc3VqIHphem5hY3pvbmUgYWRyZXN5JzsKJGxhbmdbJ2FkZF9kZXN0aW5hdGlvbiddID0gJ0RvZGFqIGtvbGVqbmVnbyBhZHJlc2F0YSAoY2VsKSc7CiRsYW5nWydkZWxldGVfZGVzdGluYXRpb24nXSA9ICdTa2FzdWogd3licmFueWNoIGFkcmVzYXQmb2FjdXRlO3cgKGNlbGUpJzsKJGxhbmdbJ3N1c3BlY3RlZF9zcGFtJ10gPSAnWmEgZHXFvG8gZW1haWxpIHpvc3RhxYJvIHd5Z2VuZXJvd2FueWNoIHogdHdvamVnbyBhZHJlc3UgSVAuIFN5c3RlbSBhbnR5LXNwYW1vd3kganXFvCBuaWUgYsSZZHppZSBuaWMgb2QgY2llYmllIGRvc3RhcmN6YcWCLic7CiRsYW5nWydzdXNwZWN0ZWRfc3BhbV9sb2cnXSA9ICdQb2RlanJ6YW55IHNwYW0geiBhZHJlc3UgSVAgJXMgLSB6b3N0YcWCIHphdHJ6eW1hbnkuJzsKJGxhbmdbJ3Jlb3JkZXInXSA9ICdabWllxYQga29sZWpub8WbxIcgcCZvYWN1dGU7bCc7CiRsYW5nWydjYW5jZWwnXSA9ICdBbnVsdWonOwokbGFuZ1sndmFsdWVfc2V0J10gPSAnV2FydG/Fm8SHIHVzdGF3aW9uYTogJXMnOwokbGFuZ1snaGVscF9jYXRhbG9nZXJfYXR0cmlidXRlX2ZpZWxkcyddID0gJ0JlbG93IGlzIGEgbGlzdCBvZiB0aGUgYXR0cmlidXRlcyBhdmFpbGFibGUgZnJvbSB0aGUgQ2F0YWxvZ2VyIG1vZHVsZS48YnIvPllvdSBjYW4gb3B0aW9uYWxseSBzcGVjaWZ5IHZhbGlkIHJhbmdlcywgdmFsdWVzLCBvciBudW1lcm91cyB2YWx1ZXMgdG8gYmUgdXNlZCBpbiBmaWx0ZXJpbmcgdGhlIGxpc3Qgb2YgaXRlbXMgdGhhdCBpcyBkaXNwbGF5ZWQgdG8gdGhlIHVzZXIuPGJyLz4NCjxici8+DQo8c3Ryb25nPlJhbmdlczo8L3N0cm9uZz48YnIvPg0KUmFuZ2VzIGNhbiBiZSBzcGVjaWZpZWQgYnkgc2lnbmlmeWluZyBhIG1pbmltdW0gYW5kIG1heGltdW0gdmFsdWUgdXNpbmcgdGhpcyBzeW50YXg6ICZxdW90O3JhbmdlOiBtaW52YWx1ZSB0byBtYXh2YWx1ZSZxdW90Ozxici8+DQo8YnIvPg0KPHN0cm9uZz5NdWx0aXBsZSBWYWx1ZXM6PC9zdHJvbmc+PGJyLz4NClRvIHNwZWNpZnkgbXVsdGlwbGUgdmFsdWVzIGZvciBhbiBhdHRyaWJ1dGUgdXNlIHRoZSBzeW50YXggJnF1b3Q7bXVsdGk6IHZhbHVlMXx2YWx1ZTJ8dmFsdWUzJnF1b3Q7PGJyLz4NCjxici8+DQo8c3Ryb25nPlZhbHVlcyBmcm9tIGhpZGRlbiBmaWVsZHM8L3N0cm9uZz48YnIvPg0KVG8gc3BlY2lmeSBhIHZhbHVlIGZyb20gYSBoaWRkZW4gZmllbGQgdXNlIHRoZSBzeW50YXggeyRmbGRfaWR9PGJyLz4NCjxici8+JzsKJGxhbmdbJ2hlbHBfbmFtZV9yZWdleCddID0gJ1d5cmHFvGVuaWUgcmVndWxhcm5lIHBvendhbGEgZmlsdHJvd2HEhyB3cGlzeSBtb2R1xYJ1IENhdGFsb2dlciBwbyBuYXp3aWUnOwokbGFuZ1snaGVscF9maWVsZF9oZWlnaHQnXSA9ICdXeXNva2/Fm2MgbGlzdHkgd2llbG9rcm90bmVnbyB3eWJvcnUnOwokbGFuZ1sndGl0bGVfbmFtZV9yZWdleCddID0gJ1d5cmHFvGVuaWUgcmVndWxhcm5lIGRsYSBuYXp3IHdwaXMmb2FjdXRlO3cgbW9kdcWCdSBDYXRhbG9nZXInOwokbGFuZ1sndGl0bGVfZmllbGRfaGVpZ2h0J10gPSAnV3lzb2tvxZvEhyBwb2xhJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcGF0aCddID0gJ0RvY2Vsb3d5IGthdGFsb2cgZGxhIHBsaWsmb2FjdXRlO3cgd3l0d2FyemFueWNoIHByemV6IG1vZHXFgjonOwokbGFuZ1sndGl0bGVfdWR0X25hbWUnXSA9ICdabmFjem5payB1xbx5dGtvd25pa2EnOwokbGFuZ1sndGl0bGVfdXBsb2Fkc19kZXN0cGFnZSddID0gJ1N0cm9uYSBwb3dyb3R1IHogbGlua2llbSBwbyB1cGxvYWR6aWUnOwokbGFuZ1sndGl0bGVfdXBsb2FkbW9kdWxlX3N1bW1hcnknXSA9ICdXeXPFgmFubyB6IG1vZHXFgnUgRm9ybUJ1aWxkZXInOwokbGFuZ1sndGl0bGVfdXBsb2Fkc19jYXRlZ29yeSddID0gJ0thdGVnb3JpYSB1cGxvYWR1JzsKJGxhbmdbJ3RpdGxlX3NlbmR0b191cGxvYWRzJ10gPSAnV3nFm2xpaiBwbGlrIGRvIG1vZHXFgnUgVXBsb2Fkcyc7CiRsYW5nWyd0aXRsZV9sZWdlbmQnXSA9ICdMZWdlbmRhJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fbGVuZ3RoJ10gPSAnRMWCdWdvxZvEhyBtYWtzeW1hbG5hJzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2xhYmVsJ10gPSAnRXR5a2lldGEgY2hlY2tib3hhJzsKJGxhbmdbJ3RpdGxlX3JhZGlvX2xhYmVsJ10gPSAnRXR5a2lldGEgcmFkaW9idXR0b25hJzsKJGxhbmdbJ3RpdGxlX2NoZWNrZWRfdmFsdWUnXSA9ICdXYXJ0b8WbxIcgZ2R5IHphem5hY3pvbm8nOwokbGFuZ1sndGl0bGVfdW5jaGVja2VkX3ZhbHVlJ10gPSAnV2FydG/Fm8SHIGdkeSBuaWV6YXpuYWN6b25vJzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2RldGFpbHMnXSA9ICdTemN6ZWcmb2FjdXRlO8WCeSBncnVweSBjaGVja2JveCZvYWN1dGU7dyc7CiRsYW5nWyd0aXRsZV9kZWxldGUnXSA9ICdTa2Fzb3dhxIcnOwokbGFuZ1sndGl0bGVfc2VsZWN0X29uZV9tZXNzYWdlJ10gPSAnVGVrc3QgZGxhIG9wY2ppICZxdW90O1d5YmllcnogamVkZW4mcXVvdDsnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX3ZhbHVlJ10gPSAnV2FydG/Fm8SHIHphem5hY3plbmlhJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl9kaXNwbGF5bmFtZSddID0gJ05hendhIHdhcnRvxZtjaSB6YXpuYWN6ZW5pYSc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fc3ViamVjdCddID0gJ1RlbWF0IHphem5hY3plbmlhJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X2NvdW50cnknXSA9ICdEb215xZtsbmUgemF6bmFjemVuaWUnOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfc3RhdGUnXSA9ICdEb215xZtsbmUgemF6bmFjemVuaWUnOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfcHJvdmluY2UnXSA9ICdEb215xZtsbmUgemF6bmFjemVuaWUnOwokbGFuZ1sndGl0bGVfb3B0aW9uX25hbWUnXSA9ICdOYXp3YSBvcGNqaSc7CiRsYW5nWyd0aXRsZV9vcHRpb25fdmFsdWUnXSA9ICdXeXN5xYJhbmEgd2FydG/Fm8SHJzsKJGxhbmdbJ3RpdGxlX3B1bGxkb3duX2RldGFpbHMnXSA9ICdPcGNqZSBsaXN0eSByb3p3aWphbG5laic7CiRsYW5nWyd0aXRsZV9tdWx0aXNlbGVjdF9kZXRhaWxzJ10gPSAnT3BjamUgbGlzdHkgd2llbG9rcm90bmVnbyB3eWJvcnUnOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fYWRkcmVzcyddID0gJ0RvY2Vsb3d5IGFkcmVzIGUtbWFpbCc7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9maWxlbmFtZSddID0gJ0RvY2Vsb3dhIG5hendhIHBsaWt1JzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fbmFtZSddID0gJ1BvbGUgJnF1b3Q7T2QmcXVvdDsgZGxhIGUtbWFpbGEnOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9lbWFpbF9yZWdleCddID0gJ1XFvHl3YWogdXByb3N6Y3pvbsSFIHdhbGlkYWNqxJkgZW1haWxhJzsKJGxhbmdbJ3RpdGxlX3JlbGF4ZWRfcmVnZXhfbG9uZyddID0gJ1XFvHl3YWogc3p5YmvEhSB3YWxpZGFjasSZIGRsYSBwb2xhIGVtYWlsIChucC4sIHBvencmb2FjdXRlO2wgbmEgd3Bpc2FuaWUgJnF1b3Q7eEB5JnF1b3Q7IHphbWlhc3Qgc3ByYXdkemFuaWEgc2vFgmFkbmkgdHlwdSAmcXVvdDt4QHkudGxkJnF1b3Q7KSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9mcm9tX2FkZHJlc3MnXSA9ICcmcXVvdDtBZHJlcyBvZCZxdW90OyBkbGEgZW1haWxhJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2VuY29kaW5nJ10gPSAnS29kb3dhbmllIHpuYWsmb2FjdXRlO3cgZGxhIGVtYWlsYSc7CiRsYW5nWyd0aXRsZV9kaXJlY3Rvcl9kZXRhaWxzJ10gPSAnU3pjemVnJm9hY3V0ZTvFgnkgbGlzdHkgcm96d2lqYWxuZWogZGxhIGVtYWlsYSc7CiRsYW5nWyd0aXRsZV9maWxlX25hbWUnXSA9ICdOYXp3YSBwbGlrdSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9zdWJqZWN0J10gPSAnTGluaWEgdHl0dcWCdSBlbWFpbGEnOwokbGFuZ1sndGl0bGVfZm9ybV9uYW1lJ10gPSAnTmF6d2EgZm9ybXVsYXJ6YSc7CiRsYW5nWyd0aXRsZV9mb3JtX3N0YXR1cyddID0gJ1N0YXR1cyBmb3JtdWxhcnphJzsKJGxhbmdbJ3RpdGxlX3JlYWR5X2Zvcl9kZXBsb3ltZW50J10gPSAnR290b3d5IGRvIHdkcm/FvGVuaWEnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MSddID0gJ05pZWdvdG93eSc7CiRsYW5nWyd0aXRsZV9yZWRpcmVjdF9wYWdlJ10gPSAnU3Ryb25hIHByemVraWVyb3dhbmlhIHBvIHd5c8WCYW5pdSBmb3JtdWxhcnphJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTInXSA9ICdEb2RhaiBwb2xlIG9ic8WCdWdpIGZvcm11bGFyemEsIG9rcmXFm2xhasSFY2UgemFwaXN5d2FuaWUgd3Byb3dhZHpvbnljaCBkYW55Y2guIE1vxbxlc3onOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5X2xpbmsnXSA9ICd1xbx5d2FqIHRlZ28gc2tyJm9hY3V0ZTt0dSc7CiRsYW5nWyd0aXRsZV9mb3JtX2FsaWFzJ10gPSAnQWxpYXMgZm9ybXVsYXJ6YSc7CiRsYW5nWyd0aXRsZV9mb3JtX2ZpZWxkcyddID0gJ1BvbGEgZm9ybXVsYXJ6YSc7CiRsYW5nWyd0aXRsZV9maWVsZF9pZCddID0gJ0lEIHBvbGEnOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGFsaWFzZXMnXSA9ICdQb2thxbwgYWxpYXN5IHAmb2FjdXRlO2wnOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGFsaWFzZXNfbG9uZyddID0gJ1phem5hY3plbmllIHRlZ28gcG9sYSBzcG93b2R1amUsIMW8ZSBhbGlhc3kgcCZvYWN1dGU7bCBixJlkxIUgcG9rYXp5d2FuZSBwb2RjemFzIGRvZGF3YW5pYSBsdWIgZWR5Y2ppIGZvcm11bGFyemEnOwokbGFuZ1sndGl0bGVfZmllbGRfbmFtZSddID0gJ05hendhIHBvbGEnOwokbGFuZ1sndGl0bGVfZmllbGRfYWxpYXMnXSA9ICdBbGlhcyBwb2xhJzsKJGxhbmdbJ3RpdGxlX3JhZGlvZ3JvdXBfZGV0YWlscyddID0gJ1N6Y3plZyZvYWN1dGU7bHkgZ3J1cHkgcmFkaW9idXR0b24mb2FjdXRlO3cnOwokbGFuZ1sndGl0bGVfZmllbGRfdHlwZSddID0gJ1R5cCBwb2xhJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTMnXSA9ICdieSBzdHdvcnp5xIcgcG9sZSBvYnPFgnVnaSBmb3JtdWxhcnphLic7CiRsYW5nWyd0aXRsZV9hZGRfbmV3X2Zvcm0nXSA9ICdEb2RhaiBub3d5IGZvcm11bGFyeic7CiRsYW5nWyd0aXRsZV9zaG93X3ZlcnNpb24nXSA9ICdQb2thenVqIHdlcnNqxJkgbW9kdcWCdSBLcmVhdG9yYSBGb3JtdWxhcnp5Pyc7CiRsYW5nWyd0aXRsZV9zaG93X3ZlcnNpb25fbG9uZyddID0gJ1RhIG9wY2phIHdzdGF3aSBudW1lciB3ZXJzamkgbW9kdcWCdSBLcmVhdG9yYSBGb3JtdWxhcnp5IChGb3JtIEJ1aWxkZXIpIGpha28ga29tZW50YXJ6IHcgdHJlxZtjaSBzdHJvbnksIGNvIHXFgmF0d2kgZGVidWdvd2FuaWUgaSBhbmFsaXrEmSBzeXN0ZW11Lic7CiRsYW5nWyd0aXRsZV9hZGRfbmV3X2ZpZWxkJ10gPSAnRG9kYWogbm93ZSBwb2xlJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fc3VibWl0X2J1dHRvbiddID0gJ1Rla3N0IHByenljaXNrdSB3eXPFgmFuaWEgZm9ybXVsYXJ6YSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eSddID0gJ0RvZGHEhyBza3J5cHQgSmF2YXNjcmlwdCBkbyBvc3RhdGVjem5lZ28gcHJ6eWNpc2t1IHd5c3nFgmFuaWEgZm9ybXVsYXJ6YSwgYnkgdW5pZW1vxbxsaXdpxIcgd2llbG9rcm90bmUgamVnbyBuYWNpxZtuacSZY2llPyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eV9oZWxwJ10gPSAnRG9kYWogc2tyeXB0IGJlenBpZWN6ZcWEc3R3YSc7CiRsYW5nWyd0aXRsZV9mb3JtX25leHRfYnV0dG9uJ10gPSAnVGVrc3QgcHJ6eWNpc2t1ICZxdW90O05hc3TEmXBuYSBzdHJvbmEmcXVvdDsgKHXFvHl3YW55IHByenkgd2llbG9zdHJvbmljb3d5Y2ggZm9ybXVsYXJ6YWNoKSc7CiRsYW5nWyd0aXRsZV9mb3JtX3ByZXZfYnV0dG9uJ10gPSAnVGVrc3QgcHJ6eWNpc2t1ICZxdW90O1BvcHJ6ZWRuaWEgc3Ryb25hJnF1b3Q7ICh1xbx5d2FueSBwcnp5IHdpZWxvc3Ryb25pY293eWNoIGZvcm11bGFyemFjaCknOwokbGFuZ1sndGl0bGVfZmllbGRfdmFsaWRhdGlvbiddID0gJ1dhbGlkYWNqYSBwb2xhJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fY3NzX2NsYXNzJ10gPSAnS2xhc2EgQ1NTIGRsYSB0ZWdvIGZvcm11bGFyemEnOwokbGFuZ1sndGl0bGVfZmllbGRfY3NzX2NsYXNzJ10gPSAnS2xhc2EgQ1NTIGRsYSB0ZWdvIHBvbGEnOwokbGFuZ1sndGl0bGVfZm9ybV9yZXF1aXJlZF9zeW1ib2wnXSA9ICdabmFrIG96bmFjemFqxIVjeSBwb2xlIHd5bWFnYW5lJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkJ10gPSAnV3ltYWdhbmUnOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWRfbG9uZyddID0gJ1d5bWFnYWogd3lwZcWCbmllbmlhIHRlZ28gcG9sYSc7CiRsYW5nWyd0aXRsZV9oaWRlX2xhYmVsJ10gPSAnVWtyeWogZXR5a2lldMSZJzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWxfbG9uZyddID0gJ1VrcnlqIG5henfEmSB0ZWdvIHBvbGEgdyB3aWRva3UgZm9ybXVsYXJ6YSc7CiRsYW5nWyd0aXRsZV90ZXh0J10gPSAnU3RhdHljem55IHRla3N0IGRvIHd5xZt3aWV0bGVuaWEnOwokbGFuZ1sndGl0bGVfZmllbGRfcmVnZXgnXSA9ICdSZWdleCAocmVndcWCa2EpIGRvIHdhbGlkYWNqaSc7CiRsYW5nWyd0aXRsZV9saW5lc190b19zaG93J10gPSAnTGlzdGEgbGluaWkgZG8gd3nFm3dpZXRsZW5pYSc7CiRsYW5nWydub19kZWZhdWx0J10gPSAnQmV6IHdhcnRvxZtjaSBkb215xZtsbnknOwokbGFuZ1sncmVkaXJlY3RfYWZ0ZXJfYXBwcm92YWwnXSA9ICdTdHJvbmEgcHJ6ZWtpZXJvd2FuaWEgcG8gemF0d2llcmR6ZW5pdSc7CiRsYW5nWyd0aXRsZV9yZWdleF9oZWxwJ10gPSAnVGhpcyByZWd1bGFyIGV4cHJlc3Npb24gd2lsbCBvbmx5IGJlIHVzZWQgaWYgJnF1b3Q7dmFsaWRhdGlvbiB0eXBlJnF1b3Q7IGlzIHNldCB0byBhIHJlZ2V4LXJlbGF0ZWQgb3B0aW9uLiBJbmNsdWRlIGEgZnVsbCBQZXJsLXN0eWxlIHJlZ2V4LCBpbmNsdWRpbmcgdGhlIHN0YXJ0L3N0b3Agc2xhc2hlcyBhbmQgZmxhZ3MgKGUuZy4sICZxdW90Oy9pbWFnZVwuKFxkKykvaSZxdW90OyknOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWRfYWJicmV2J10gPSAnV3ltYWdhbmUnOwokbGFuZ1sndGl0bGVfaGlkZV9lcnJvcnMnXSA9ICdVa3J5aiBixYLEmWR5JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fZGlzcGxheXR5cGUnXSA9ICdUeXAgd3nFm3dpZXRsYW5pYSBmb3JtdWxhcnphJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzX2xvbmcnXSA9ICdVc3RhdyB3aWFkb21vxZtjaSBvIGLFgsSZZGFjaCBpIGR6aWHFgmFuaXUgc3lzdGVtdSAoZGVidWcpIG5pZXdpZG9jem5lIGRsYSB1xbx5dGtvd25payZvYWN1dGU7dyc7CiRsYW5nWyd0aXRsZV9lbWFpbF90ZW1wbGF0ZSddID0gJ1N6YWJsb24gZW1haWxhJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZSddID0gJ01ha3N5bWFsbnkgcm96bWlhciBwbGlrdSB3Z3J5d2FuZWdvIChraWxvYmFqdHkpJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZV9sb25nJ10gPSAnVGVuIGxpbWl0IGplc3QgZG9kYXRrb3d5bSBsaW1pdGVtIC0gbmEgcGV3bm8gVHcmb2FjdXRlO2ogc2Vyd2VyIGx1YiBqxJl6eWsgUEhQIG1hIHN3b2plIHfFgmFzbmUgb2dyYW5pY3plbmlhLic7CiRsYW5nWyd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ0RvendvbG9uZSByb3pzemVyemVuaWEnOwokbGFuZ1sndGl0bGVfcGVybWl0dGVkX2V4dGVuc2lvbnNfbG9uZyddID0gJ1dwaXN6IGxpc3TEmSByb3pzemVyemXFhCBwbyBwcnplY2lua3UsIGJleiBrcm9wZWsgKG5wLiwgJnF1b3Q7anBnLGdpZixqcGVnJnF1b3Q7KS4gU3BhY2plIGLEmWTEhSBpZ25vcm93YW5lLiBQb3pvc3Rhd2lhasSFYyB0byBwb2xlIHB1c3RlIC0gbmllIGLEmWR6aWUgb2dyYW5pY3plxYQgdyBzeXN0ZW1pZSEnOwokbGFuZ1sndGl0bGVfc2hvd19saW1pdGF0aW9ucyddID0gJ1d5xZt3aWV0bGHEhyBkb3p3b2xvbmUgcm96c3plcnplbmlhPyc7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zX2xvbmcnXSA9ICdXecWbd2lldGwga2HFvGRlIG9ncmFuaWN6ZW5pZSByb3ptaWFydSBpIHJvenN6ZXJ6ZW5pYSBwcnp5IHBvbGFjaCB3Z3J5d2FuaWEgcGxpayZvYWN1dGU7dz8nOwokbGFuZ1sndGl0bGVfZm9ybV90ZW1wbGF0ZSddID0gJ1N6YWJsb24gZG8gdcW8eWNpYSBwcnp5IFd5xZt3aWV0bGFuaXUgZm9ybXVsYXJ6YSc7CiRsYW5nWyd0aXRsZV9wYWdlX3hfb2ZfeSddID0gJ1N0cm9uYSAlcyB6ICVzJzsKJGxhbmdbJ3RpdGxlX25vX2FkdmFuY2VkX29wdGlvbnMnXSA9ICdUbyBwb2xlIG5pZSBtYSBvcGNqaSB6YWF3YW5zb3dhbnljaCc7CiRsYW5nWyd0aXRsZV9mb3JtX3Vuc3BlY2lmaWVkJ10gPSAnVGVrc3QgaW5mb3JtYWNqaSBwcnp5IG5pZXdwaXNhbmVqIHdhcnRvxZtjaSBwb2xhJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9mYXN0YWRkX2xvbmcnXSA9ICdMaXN0YSBuYWQgZm9ybXVsYXJ6ZW0sIHVzcHJhd25pYWrEhWNhIGRvZGF3YW5pZSBub3d5Y2ggcCZvYWN1dGU7bC4nOwokbGFuZ1sndGl0bGVfZW5hYmxlX2Zhc3RhZGQnXSA9ICdXxYLEhWN6IGxpc3TEmSBzenlia2llZ28gd3liaWVyYW5pYSBub3dlZ28gcG9sYSBkbGEgZm9ybXVsYXJ6eT8nOwokbGFuZ1sndGl0bGVfZmFzdGFkZCddID0gJ1N6eWJraSBrcmVhdG9yIG5vd3ljaCBwJm9hY3V0ZTtsJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9hbnRpc3BhbV9sb25nJ10gPSAnWmF6bmFjemFqxIVjIHTEmSBvcGNqxJkgcG96d29saXN6IG5hIHd5c8WCYW5pZSB0eWxrbyAxMCBlbWFpbGkgeiBqZWRuZWdvIGFkcmVzdSBJUCAtIHcgY2nEhWd1IGplZG5laiBnb2R6aW55Lic7CiRsYW5nWyd0aXRsZV9lbmFibGVfYW50aXNwYW0nXSA9ICdXxYLEhWN6IHByeW1pdHl3bmUgb3BjamUgYW50eS1zcGFtb3dlPyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkaWRzJ10gPSAnUG9rYXogSUQgcCZvYWN1dGU7bCc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkaWRzX2xvbmcnXSA9ICdaYXpuYWN6YWrEhWMgdMSZIG9wY2rEmSB3ecWbd2lldGxpIG51bWVyIElEIGdkeSBkb2RhamVzeiBsdWIgZWR5dHVqZXN6IGZvcm11bGFyeic7CiRsYW5nWyd0aXRsZV94bWxfdG9fdXBsb2FkJ10gPSAnV2dyYWogZm9ybXVsYXJ6IHogcGxpa3UgWE1MJzsKJGxhbmdbJ3RpdGxlX3htbF91cGxvYWRfZm9ybW5hbWUnXSA9ICdVxbx5d2FqIHRlaiBuYXp3eSBmb3JtdWxhcnphJzsKJGxhbmdbJ3RpdGxlX2ltcG9ydF9sZWdlbmQnXSA9ICdJbXBvcnQgZm9ybXVsYXJ6YSBYTUwnOwokbGFuZ1sndGl0bGVfeG1sX3VwbG9hZF9mb3JtYWxpYXMnXSA9ICdVxbx5d2FqIHRlZ28gYWxpYXN1IGZvcm11bGFyemEnOwokbGFuZ1sndGl0bGVfaHRtbF9lbWFpbCddID0gJ0dlbmVydWogZW1haWwgZm9ybWF0dSBIVE1MPyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZSddID0gJ1d5cGXFgm5pYcSHIGF1dG9tYXR5Y3puaWU/JzsKJGxhbmdbJ3RpdGxlX2xpbmtfYXV0b3BvcHVsYXRlX2hlbHAnXSA9ICdBdXRvbWF0eWN6bmllIGxpbmt1amUgZG8gc3Ryb255IG5hIGt0Jm9hY3V0ZTtyZWogamVzdCBmb3JtdWxhcnogKHRhIG9wY2phIG5hZHBpc3VqZSBwb25pxbxzesSFKSc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2xpbmsnXSA9ICdEdW55xZtsbnkgVVJMIGxpbmt1JzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfbGlua190aXRsZSddID0gJ0RvbXnFm2xueSB0ZWtzdCBsaW5rdSc7CiRsYW5nWyd0aXRsZV9saW5rX3RvX3NpdGVwYWdlJ10gPSAnTGluayBkbyBzdHJvbnknOwokbGFuZ1sndGl0bGVfY2FwdGNoYV9ub3RfaW5zdGFsbGVkJ10gPSAnTW/FvGVzeiB1xbx5xIcgPGEgaHJlZj0iaHR0cDovL3d3dy53aWtpcGVkaWEub3JnL3dpa2kvQ2FwdGNoYSIgdGFyZ2V0PSJfbmV3Ij4mcXVvdDtDYXB0Y2hhJnF1b3Q7PC9hPiBkbyB6YWJlenBpZWN6bmlhIGZvcm11bGFyemEgcG8gemFpbnN0YWxvd2FuaWEgbW9kdcWCdSBDYXB0Y2hhLiBXacSZY2VqIGluZm9ybWFjamkgbW/FvGVzeiB6bmFsZcW6xIcgbmEgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9jYXB0Y2hhLyI+c3Ryb25pZSBwcm9qZWt0dTwvYT4uJzsKJGxhbmdbJ3RpdGxlX3VzZV9jYXB0Y2hhJ10gPSAnVcW8ecSHIENhcHRjaGEgZG8gemViZXpwaWVjemVuaWEgZm9ybXVsYXJ6YT8nOwokbGFuZ1sndGl0bGVfdXNlX2NhcHRjaGFfaGVscCddID0gJ1phem5hY3ogdMSZIG9wY2rEmSBhYnkgdcW8eXdhxIcgPGEgaHJlZj0iaHR0cDovL3d3dy53aWtpcGVkaWEub3JnL3dpa2kvQ2FwdGNoYSIgdGFyZ2V0PSJfbmV3Ij4mcXVvdDtDYXB0Y2hhJnF1b3Q7PC9hPi4nOwokbGFuZ1sndGl0bGVfdXNlcl9jYXB0Y2hhJ10gPSAnV3Bpc3ogdGVrc3QgeiBvYnJhemthIHcgdG8gcG9sZSAod2llbGtvxZvEhyBsaXRlciBtYSB6bmFjemVuaWUpJzsKJGxhbmdbJ3RpdGxlX3VzZXJfY2FwdGNoYV9lcnJvciddID0gJ0tvbXVuaWthdCBnZHkga29kIENhcHRjaGEgamVzdCBuaWVwb3ByYXdueSc7CiRsYW5nWyd3cm9uZ19jYXB0Y2hhJ10gPSAnPHVsPjxsaT5UZWtzdCB6IG9icmF6a2EgamVzdCBuaWVwb3ByYXdueS48L2w+PC91bD4nOwokbGFuZ1sndGl0bGVfdGl0bGVfdXNlcl9jYXB0Y2hhJ10gPSAndGVrc3QgcG9tb2N5IHd5xZt3aWV0bGFueSB3IGZvcm11bGFyenUnOwokbGFuZ1sndGl0bGVfZG9udF9zdWJtaXRfdW5jaGVja2VkJ10gPSAnTmllIHphcGlzdWogem1pZW5ueWNoIGRsYSBuaWV6YXpuYWN6b255Y2ggY2hlY2tib3gmb2FjdXRlO3cnOwokbGFuZ1sndGl0bGVfZG9udF9zdWJtaXRfdW5jaGVja2VkX2hlbHAnXSA9ICdaYXpuYWN6IHRvIHBvbGUgamXFm2xpIGNoY2VzeiBhYnkgdHlsa28gemF6bmFjem9uZSBjaGVja2JveHkgendyYWNhxYJ5IHdhcnRvxZtjaSc7CiRsYW5nWydsaW5rX2xhYmVsJ10gPSAnRXR5a2lldGEgbGlua3UnOwokbGFuZ1snbGlua19kZXN0aW5hdGlvbiddID0gJ0RvY2Vsb3d5IFVSTCBsaW5rdSc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3NldCddID0gJ1phem5hY3pvbnkgZG9tecWbbG5pZT8nOwokbGFuZ1sndGl0bGVfMjRfaG91ciddID0gJ1XFvHl3YWogemVnYXJhIDI0LWdvZHppbm5lZ28/JzsKJGxhbmdbJ3RpdGxlX2JlZm9yZV9ub29uJ10gPSAnQU0nOwokbGFuZ1sndGl0bGVfYWZ0ZXJfbm9vbiddID0gJ1BNJzsKJGxhbmdbJ3RpdGxlX3NtYXJ0eV9ldmFsJ10gPSAnUHJ6ZXR3YXJ6YcSHIHRhZ2kgU21hcnR5IHcgdHltIHBvbHUnOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfcm93cyddID0gJ1dpZXJzemUgKG1vxbxlIGJ5xIcgbmFkcGlzYW5lIHByemV6IHN0eWxlIENTUyknOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfY29scyddID0gJ0tvbHVtbnkgKG1vxbxlIGJ5xIcgbmFkcGlzYW5lIHByemV6IHN0eWxlIENTUyknOwokbGFuZ1sndGl0bGVfZm9ybV9tYWluJ10gPSAnU3pjemVnJm9hY3V0ZTvFgnkgZ8WCb3duZSBmb3JtdWxhcnphJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcm5hbWUnXSA9ICdXecWbd2lldGxhxIcgbmF6d8SZIHXFvHl0a293bmlrYT8nOwokbGFuZ1sndGl0bGVfc2hvd191c2VyZmlyc3RuYW1lJ10gPSAnV3nFm3dpZXRsYcSHIGltacSZIHXFvHl0a293bmlrYT8nOwokbGFuZ1sndGl0bGVfc2hvd191c2VybGFzdG5hbWUnXSA9ICdXecWbd2lldGxhxIcgbmF6d2lza28gdcW8eXRrb3duaWthPyc7CiRsYW5nWyd0aXRsZV9yZXN0cmljdF90b19ncm91cCddID0gJ0xpbWl0dWogbGlzdMSZIHXFvHl0a293bmlrJm9hY3V0ZTt3IGRvIGN6xYJvbmsmb2FjdXRlO3cgbmFzdMSZcHVqxIVjeWNoIGdydXAnOwokbGFuZ1sncmVzdHJpY3RlZF90b19ncm91cCddID0gJ1R5bGtvIHcgZ3J1cGllICVzJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdG9fdXNlciddID0gJ1d5xZt3aWV0bGnEhyB1xbx5dGtvd25pa293aT8nOwokbGFuZ1snaGVscF9sZWF2ZWVtcHR5J10gPSAnVG8gcG9sZSBtb8W8ZSBieWMgcHVzdGUnOwokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX3RlbXBsYXRlJ10gPSAnWm1pZW5uZSBkbGEgc3phYmxvbnUnOwokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX2NvbXB1dGF0aW9uJ10gPSAnRG9zdGVwbmUgem1pZW5uZSc7CiRsYW5nWydoZWxwX3BocF92YXJpYWJsZV9uYW1lJ10gPSAnWm1pZW5uYSBQSFAnOwokbGFuZ1snaGVscF9zdWJtaXNzaW9uX2RhdGUnXSA9ICdEYXRhIHd5c8WCYW5pYSc7CiRsYW5nWydoZWxwX3NlcnZlcl9uYW1lJ10gPSAnVHcmb2FjdXRlO2ogc2VydmVyJzsKJGxhbmdbJ2hlbHBfc3ViX3NvdXJjZV9pcCddID0gJ0FkcmVzIElQIHXFvHl0a293bmlrYSwgdyBjemFzaWUgd3lzecWCYW5pYSBmb3JtdWxhcnphJzsKJGxhbmdbJ2hlbHBfc3ViX3VybCddID0gJ1VSTCBzdHJvbnkgemF3aWVyYWrEhWNlaiBmb3JtdWxhcnonOwokbGFuZ1snaGVscF9mYl92ZXJzaW9uJ10gPSAnV2Vyc2phIG1vZHXFgnUgRm9ybUJ1aWxkZXInOwokbGFuZ1snaGVscF90YWInXSA9ICdabmFrIHRhYnVsYWNqaSc7CiRsYW5nWydoZWxwX290aGVyX2ZpZWxkcyddID0gJ0FsdGVybmF0eXduZSBuYXp3eSBwJm9hY3V0ZTtsIGZvcm11bGFyemEgbW9nxIUgYnnEhyB1xbx5d2FuZSB6YW1pZW5uaWUgeiBub3JtYWxueW1pIG5hendhbWkuIEplc3QgdG8gc3pjemVnJm9hY3V0ZTtsbmllIHByenlkYXRuZSBwcnp5IHV6eXdhbml1IHRhZyZvYWN1dGU7dyBTbWFydHkgKGdkecW8IHRlbiBtYSBwcm9ibGVteSB6IG9ic8WCdWfEhSB6bmFrJm9hY3V0ZTt3IEFTQ0lJIHNwb3phIHpha3Jlc3UgMzItMTI2KS4gPGJyIC8+SW5uZSBwb2xhIGLEmWTEhSBkb3N0ZXBuZSBnZHkgZG9kYXN6IGplIGRvIGZvcm11bGFyemEuJzsKJGxhbmdbJ2hlbHBfYXJyYXlfZmllbGRzJ10gPSAnQWJ5IHV6eXNrYcSHIGRvc3TEmXAgZG8gd2FydG/Fm2NpIHAmb2FjdXRlO2wgZm9ybXVsYXJ6YSBtb8W8ZXN6IHXFvHnEhyBub3RhY2ppICRmaWVsZG5hbWVfb2JqLCAkYWxpYXNfb2JqLCBvciAkZmxkXyNfb2JqLCBnZHppZSBrYcW8ZGUgcG9sZSBqZXN0IG9iaWVrdGVtIHphd2llcmFqxIVjeW06PGJyIC8+PHRhYmxlPg0KPHRyPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+bmFtZTwvdGQ+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz5OYXp3YSBwb2xhPC90ZD48L3RyPg0KPHRyPjx0ZD50eXBlPC90ZD48dGQ+VHlwIHBvbGE8L3RkPjwvdHI+DQo8dHI+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz5pZDwvdGQ+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz5XZXduxJl0cnpuZSBJRCBwb2xhPC90ZD48L3RyPg0KPHRyPjx0ZD52YWx1ZTwvdGQ+PHRkPldhcnRvxZvEhyBjenl0ZWxuxIUgZGxhIGN6xYJvd2lla2E8L3RkPjwvdHI+DQo8dHI+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz52YWx1ZUFycmF5PC90ZD48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7PlRhYmxpY2Egd2FydG/Fm2NpIHBvbGE8L3RkPjwvdHI+PC90YWJsZT4NCjxlbT5OYSBwcnp5a8WCYWQ6PC9lbT4sIG1vxbxlc3ogdcW8ecSHICZxdW90O3skZmxkXzFfb2JqLT5uYW1lfSA9IHskZmxkXzFfb2JqLT52YWx1ZX0nOwokbGFuZ1snaGVscF9kYXRlX2Zvcm1hdCddID0gJ1NwcmF3ZMW6IDxhIGhyZWY9Imh0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24uZGF0ZS5waHAiIHRhcmdldD1fTkVXPmRva3VtZW50YWNqaSBQSFA8L2E+IGFieSB1enlza2HEhyBwb21vYy4nOwokbGFuZ1snaGVscF92YXJpYWJsZV9uYW1lJ10gPSAnWm1pZW5uYSc7CiRsYW5nWydoZWxwX2Zvcm1fZmllbGQnXSA9ICdQb2xlIHJlcHJlemVudG93YW5lJzsKJGxhbmdbJ2xpbmtfYmFja190b19mb3JtJ10gPSAnJmxhcXVvOyBXciZvYWN1dGU7xIcgZG8gZm9ybXVsYXJ6YSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX3RlbXBsYXRlJ10gPSAnU3R3Jm9hY3V0ZTtyeiBwcnp5a8WCYWRvd3kgc3phYmxvbic7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2h0bWxfdGVtcGxhdGUnXSA9ICdTdHcmb2FjdXRlO3J6IHByenlrxYJhZG93eSBzemFibG9uIEhUTUwnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9oZWFkZXJfdGVtcGxhdGUnXSA9ICdTdHcmb2FjdXRlO3J6IHByenlrxYJhZG93eSBzemFibG9uIG5hZ8WCJm9hY3V0ZTt3a2EnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9oZWFkZXInXSA9ICdTdHcmb2FjdXRlO3J6IHByenlrxYJhZG93eSBuYWfFgiZvYWN1dGU7d2VrJzsKJGxhbmdbJ2hlbHBfdGFiX3N5bWJvbCddID0gJ3puYWsgdGFidWxhY2ppJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfdGVtcGxhdGUnXSA9ICdTemFibG9uIGplZG5laiBsaW5paSBwbGlrdSB3eW5pa293ZWdvJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfaGVhZGVyJ10gPSAnU3phYmxvbiBuYWfFgiZvYWN1dGU7d2thIHBsaWt1IHd5bmlrb3dlZ28nOwokbGFuZ1sndGl0bGVfY29uZmlybWF0aW9uX3VybCddID0gJ1VSTCBkbyBrbGlrbm1pxJljaWEgYWJ5IHBvdHdpZXJkemnEhyBmb3JtdWxhcnonOwokbGFuZ1sndGl0bGVfdmFsdWUnXSA9ICdXYXJ0b8WbxIcgKHpvYmFjeiB6YWvFgmFka8SZIFphYXdhbnNvd2FuZSwgamXFm2xpIGNoY2VzeiB1ennEhyB0YWcmb2FjdXRlO3cgU21hcnR5KSc7CiRsYW5nWyd0aXRsZV9kYXRlX2Zvcm1hdCddID0gJ0Zvcm1hdCBkYXR5ICg8YSBocmVmPSJodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwIj5mb3JtYXR5IGRhdHkgdyBQSFA8L2E+KSc7CiRsYW5nWyd0aXRsZV91c2Vfd3lzaXd5ZyddID0gJ1XFvHl3YcSHIGVkeXRvcmEgV1lTSVdZRyBkbGEgcCZvYWN1dGU7bCB0ZWtzdG93eWNoICh0eWxrbyB3IEFkbWluaWUpPyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYWN0aW9ucyddID0gJ1BvIHd5c8WCYW5pdSBmb3JtdWxhcnphJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9sYWJlbHMnXSA9ICdQcnp5Y2lza2kgYWtjamkgZm9ybXVsYXJ6YSc7CiRsYW5nWyd0aXRsZV9zb3J0YWJsZV9maWVsZCddID0gJ1BvbGUgc29ydHVqxIVjZSAjJXMnOwokbGFuZ1sndGl0bGVfc3VibWl0X2hlbHAnXSA9ICdUaGlzIHBhZ2UgbGV0cyB5b3UgY3VzdG9taXplIEZvcm0gU3VibWlzc2lvbi4gSXQgZG9lc24mIzAzOTt0IGRldGVybWluZSB3aGF0IHRoZSBGb3JtIEJ1aWxkZXIgZG9lcyB3aXRoIHRoZSBzdWJtaXR0ZWQgZGF0YS4gWW91IGNhbiBzZXQgdGhhdCB1cCBieSBhZGRpbmcgJnF1b3Q7RGlzcG9zaXRpb24mcXVvdDsgZmllbGRzIHRvIHlvdXIgZm9ybS4nOwokbGFuZ1sndGl0bGVfc3RhcnRfeWVhciddID0gJ1N0YXJ0IHpha3Jlc3UgbGF0JzsKJGxhbmdbJ3RpdGxlX2VuZF95ZWFyJ10gPSAnS29uaWVjIHpha3Jlc3UgbGF0JzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfeWVhciddID0gJ0RvbXnFm2xueSByb2snOwokbGFuZ1sndGl0bGVfZGVmYXVsdF95ZWFyX2hlbHAnXSA9ICcoVXN0YXcgamFrbyAtMSBieSBkb215xZtsbnltIGJ5xYIgb2JlY255IHJvayknOwokbGFuZ1sndGl0bGVfc3VibWl0X2FjdGlvbiddID0gJ1BvIHd5c8WCYW5pdSBmb3JtdWxhcnphJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9yZXNwb25zZSddID0gJ09kcG93aWVkxbogZG8gd3nFm3dpZXRsZW5pYSc7CiRsYW5nWydkaXNwbGF5X3RleHQnXSA9ICdXecWbd2lldGwgc3phYmxvbiB3eXN5xYJhbmlhJzsKJGxhbmdbJ3JlZGlyZWN0X3RvX3BhZ2UnXSA9ICdQcnpla2llcnVqIGRvIHN0cm9ueSBzZXJ3aXN1JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9yZXNwb25zZV9oZWxwJ10gPSAnVGhpcyB0ZW1wbGF0ZSBpcyBmb3IgZGlzcGxheSB0byB0aGUgdXNlciBhZnRlciB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQuIFRoaXMgdGVtcGxhdGUgZG9lcyBub3QgZWZmZWN0IGVtYWlscyBnZW5lcmF0ZWQgb3Igb3RoZXIgZm9ybSBkaXNwb3NpdGlvbnMgLS0geW91IHNldCB0aG9zZSB0ZW1wbGF0ZXMgKHdoZXJlIGFwcHJvcHJpYXRlKSBpbiB0aGUgJnF1b3Q7YWR2YW5jZWQmcXVvdDsgdGFiIGZvciB0aG9zZSBkaXNwb3NpdGlvbiBmaWVsZHMuJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX3BhZ2UnXSA9ICdEb2NlbG93YSBzdHJvbmEnOwokbGFuZ1sndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzJ10gPSAnTmF6d3kgcCZvYWN1dGU7bCBzxIUgd3ltYWdhbmUnOwokbGFuZ1sndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzX2xvbmcnXSA9ICdXeW1hZ2FqLCDFvGVieSBrYcW8ZSBwb2xlIG1pYcWCbyBzd29qxIUgbmF6d8SZPyc7CiRsYW5nWyd0aXRsZV91bmlxdWVfZmllbGRuYW1lcyddID0gJ1d5bWFnYWogdW5pa2FsbnljaCBuYXp3IHAmb2FjdXRlO2wnOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXNfbG9uZyddID0gJ1d5bWFnYWosIMW8ZWJ5IHdzenlzdGtpZSBuYXp3eSBwJm9hY3V0ZTtsIGJ5xYJ5IHVuaWthbG5lIChyJm9hY3V0ZTvFvG5pxYJ5IHNpxJkgb2Qgc2llYmllKT8nOwokbGFuZ1sndGl0bGVfcmVvcmRlcl9mb3JtJ10gPSAnUHJ6ZWdydXB1aiBwb2xhJzsKJGxhbmdbJ3RpdGxlX2xvYWRfdGVtcGxhdGUnXSA9ICdaYcWCYWR1aiBzemFibG9uJzsKJGxhbmdbJ3RpdGxlX2FkZF9idXR0b25fdGV4dCddID0gJ1Rla3N0IHByenljaXNrdSAmcXVvdDtEb2RhaiZxdW90Oyc7CiRsYW5nWyd0aXRsZV9kZWxfYnV0dG9uX3RleHQnXSA9ICdUZWtzdCBwcnp5Y2lza3UgJnF1b3Q7U2thc3VqJnF1b3Q7JzsKJGxhbmdbJ3RpdGxlX3N0cmluZ19vcl9udW1iZXJfZXZhbCddID0gJ0ludGVycHJldHVqIHptaWVubmUgamFrbyBudW1lcnkgbHViIMWCYcWEY3VjaHkgem5ha293ZSAoc3RyaW5naSknOwokbGFuZ1sndGl0bGVfb3JkZXInXSA9ICdQb3J6xIVkZWsgaW50ZXJwcmV0b3dhbmlhJzsKJGxhbmdbJ3RpdGxlX29yZGVyX2hlbHAnXSA9ICdKZcW8ZWxpIGlzdG5pZWplIHdpxJljZWogbmnFvCBqZWRubyBwb2xlIG9ibGljemVuaW93ZSwgc8SFIG9uZSBwcnpldHdhcnphbmUgb2QgbmFqbW5pZWpzemVnbyBkbyBuYWp3acSZa3N6ZWdvIG51bWVydSB3IGtvbGVqbm/Fm2NpJzsKJGxhbmdbJ3RpdGxlX2NvbXB1dGVfdmFsdWUnXSA9ICdXYXJ0b8WbxIcgZG8gb2JsaWN6ZW5pYSc7CiRsYW5nWyd0aXRsZV9zdHJpbmcnXSA9ICfFgWHFhGN1Y2ggem5ha293eSAoc3RyaW5nKSc7CiRsYW5nWyd0aXRsZV9udW1lcmljJ10gPSAnTnVtZXJ5Y3puZSc7CiRsYW5nWyd0aXRsZV9pbmxpbmVfZm9ybSddID0gJ1d5xZt3aWV0bGFqIGZvcm11bGFyeiB3IHRyZcWbY2kgc3Ryb255IChpbmxpbmUpPyc7CiRsYW5nWyd0aXRsZV9pbmxpbmVfZm9ybV9oZWxwJ10gPSAnV3nFm3dpZXRsYW5pZSB3IHRyZcWbY2kgb3puYWN6YSwgxbxlIGZvcm11bGFyeiB6YXN0xJlwdWplIHpuYWN6bmlrIHtjbXNfbW9kdWxlfSwgYmV6IHRlZ28gdXN0YXdpZW5pYSBmb3JtdWxhcnogemFzdMSFcGkgKHtjb250ZW50fSkuJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2RlZmF1bHRfdmFsdWUnXSA9ICdXYXJ0b8WbxIcgZG9tecWbbG5hIGRsYSBwb2xhJzsKJGxhbmdbJ3RpdGxlX2NsZWFyX2RlZmF1bHQnXSA9ICdXeWN6ecWbY2nEhyB3YXJ0b8WbxIcgZG9tecWbbG7EhSBwbyBrbGlrbmnEmWNpdT8nOwokbGFuZ1sndGl0bGVfY2xlYXJfZGVmYXVsdF9oZWxwJ10gPSAnWmF6bmFjeiB0xJkgb3BjasSZIGJ5IHNpbG5payB3eWthc293YcWCIGRvbXnFm2xuxIUgd2FydG/Fm8SHIGtpZWR5IHXFvHl0a293bmlrIG5hY2nFm25pZSBuYSB0byBwb2xlIHcgZm9ybXVsYXJ6dSc7CiRsYW5nWyd0aXRsZV9yZW1vdmVfZmlsZV9mcm9tX3NlcnZlciddID0gJ1NrYXN1aiBwbGlrIHogc2Vyd2VyYSBwbyBwcnpldHdvcnplbml1ICh3eXPFgmFuaXUgbWFpbGEpJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2phdmFzY3JpcHQnXSA9ICdKYXZhc2NyaXB0IGRsYSB0ZWdvIHBvbGEnOwokbGFuZ1sndGl0bGVfZmllbGRfamF2YXNjcmlwdF9sb25nJ10gPSAnVcW8eWogcGXFgm5lZ28gd3l3b8WCYW5pYSBKYXZhc2NyaXB0LHfFgsSFY3phasSFYyB3eWRhcnplbmllLCBrdCZvYWN1dGU7cmUgY2hjZXN6IMWbbGVkemnEhyAsIG5wLiBvbmNsaWNrPSZxdW90O3lvdXJmbigpJnF1b3Q7JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9qYXZhc2NyaXB0J10gPSAnSmF2YXNjcmlwdCBkbGEgd3lzecWCYW5pYSBmb3JtdWxhcnphJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9qYXZhc2NyaXB0X2xvbmcnXSA9ICdNYWtlIHRoaXMgdGhlIGNvbXBsZXRlIEphdmFzY3JpcHQgY2FsbCwgaW5jbHVkaW5nIHRoZSBldmVudCB5b3Ugd2FudCB0byB0cmFwLCBlLmcuLCBvbmNsaWNrPSZxdW90O3lvdXJmbigpJnF1b3Q7LjxiciAvPlRoaXMgd2lsbCBwcm9iYWJseSBub3Qgd29yayB3ZWxsIGlmIHlvdSB1c2UgdGhlICZxdW90O3NhZmV0eSBzY3JpcHQmcXVvdDsgb3B0aW9uIGFib3ZlLic7CiRsYW5nWydlbWFpbF9mcm9tX2FkZHJfaGVscCddID0gJ05pZSB3eWJpZXJhaiB0dXRhaiBkb3dvbG5lZ28gYWRyZXN1LSB3aWVsdSBkb3N0YXdjJm9hY3V0ZTt3IGludGVybmV0b3d5Y2ggbmllIGRvc3RhcmN6eTxiciAvPndpYWRvbW/Fm2NpIGplxZtsaSB1xbx5amVzeiBkb21lbnkgaW5uZWogbmnFvCBUd29qYSB3xYJhc25hPGJyIC8+KHXFvHlqIG5hIHByemvFgmFkICBhZG1pbkAlcyknOwokbGFuZ1sndGl0bGVfc3dpdGNoX2FkdmFuY2VkJ10gPSAnUG90enJlYnVqZXN6IG5vd2VnbyB0eXB1IHBvbGE/ICc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYmFzaWMnXSA9ICdaYSBkdcW8byB0eXAmb2FjdXRlO3cgcCZvYWN1dGU7bD8gJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9hZHZhbmNlZF9saW5rJ10gPSAnUHJ6ZcWCxIVjeiB3IFRyeWIgWmFhd2Fuc293YW55JzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9iYXNpY19saW5rJ10gPSAnUHJ6ZcWCxIVjeiB3IFRyeWIgUHJvc3R5JzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcm9vdCddID0gJ0thdGFsb2cgZ2R6aWUgemFwaXNhbnkgYsSZZHppZSBwbGlrJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcm9vdF9oZWxwJ10gPSAnVG8gbXVzaSBiecSHIGthdGFsb2cgeiBwcmF3YW1pIHphcGlzdSBkbGEgc2Vyd2VyYS48YnIgLz5KZcWbbGkgbWFzeiB3xIV0cGxpd2/Fm2NpIHVzdGF3IG1hc2vEmSA3NzcuPGJyIC8+U3ByYXdkxbogdGFrxbxlIGN6eSBuaWUgbWFzeiB1c3Rhd2lvbnljaCByZXNydHlrY2ppIHphcGlzdSB3IGthdGFsb2dhY2ggdyBrb25maWd1cmFjamkgUEhQLic7CiRsYW5nWydlcnJvcl9jYXRhbG9nZXJfbW9kdWxlX25vdF9hdmFpbGFibGUnXSA9ICc8c3Ryb25nPk1vZHXFgiBDYXRhbG9nZXIgamVzdCBuaWV6YWluc3RhbG93YW55IGx1YiB3ecWCxIVjem9ueS48L3N0cm9uZz4nOwokbGFuZ1snd2FybmluZyddID0gJ1VXQUdBISc7CiRsYW5nWydkZWZhdWx0X3RlbXBsYXRlJ10gPSAnU3phYmxvbiBkb215xZtsbnknOwokbGFuZ1sndGFibGVfbGVmdF90ZW1wbGF0ZSddID0gJ1N6YWJsb24gdGFiZWxraSwgdHl0dcWCeSBwbyBsZXdlaic7CiRsYW5nWyd0YWJsZV90b3BfdGVtcGxhdGUnXSA9ICdTemFibG9uIHRhYmVsa2ksIHR5dHXFgiBuYSBnJm9hY3V0ZTtyemUnOwokbGFuZ1snZm9ybV90ZW1wbGF0ZV9uYW1lJ10gPSAnU3phYmxvbiB6ICVzJzsKJGxhbmdbJ3RlbXBsYXRlX2FyZV95b3Vfc3VyZSddID0gJ0N6eSBuYXBld25vIGNoY2VzeiBuYWRwaXNhxIcgc3cmb2FjdXRlO2ogc3phYmxvbiB3eWJyYW55bSBzemFibG9uZW0/IChOYXdldCBqZcWbbGkgbmFjacWbbmllc3ogT0ssIGLEmWR6aWVzeiBtdXNpYcWCIHphcGlzYWMgem1pYW55KSc7CiRsYW5nWyd0aXRsZV9iYWRfZnVuY3Rpb24nXSA9ICdCxYLEhWQgcHJ6eSBvYmxpY3phbml1IHdhcnRvxZtjaSAmcXVvdDslcyZxdW90Oy4nOwokbGFuZ1snbm9fcmVmZXJyZXJfaW5mbyddID0gJ0JyYWsgaW5mb3JtYWNqaSBvIEhUVFBfUkVGRVJFUic7CiRsYW5nWyd2YWxpZGF0aW9uX3BhcmFtX2Vycm9yJ10gPSAnQsWCxIVkIHdhbGlkYWNqaSEgVXBld25paiBzacSZLCDFvGUgc2tvcGlvd2HFgmXFmyBwb3ByYXduaWUgYWRyZXMgeiB3aWFkb21vxZtjaSEnOwokbGFuZ1sndmFsaWRhdGlvbl9yZXNwb25zZV9lcnJvciddID0gJ0LFgsSFZCB3YWxpZGFjamkhIFVwZXduaWogc2nEmSwgxbxlIHNrb3Bpb3dhxYJlxZsgcG9wcmF3bmllIGFkcmVzIHogd2lhZG9tb8WbY2khJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbm9fZmllbGRfZXJyb3InXSA9ICdCxYLEhWQgd2FsaWRhY2ppISBCcmFrIHBvbGEgZS1tYWlsIHcgZm9ybXVsYXJ6dSEnOwokbGFuZ1sndXBncmFkZTAzdG8wNCddID0gJ0Zvcm0gVGVtcGxhdGUgd2FzIHVwZGF0ZWQgYXV0b21hdGljYWxseSBhcyBwYXJ0IG9mIHRoZSB2ZXJzaW9uIDAuMyB0byB2ZXJzaW9uIDAuNCB1cGdyYWRlLiBZb3UgbWF5IG5lZWQgdG8gbWFrZSBzb21lIGZpeGVzLiBJZiB5b3UmIzAzOTtyZSB1c2luZyB0aGUgZGVmYXVsdCBmb3JtLCBzaW1wbHkgcmVwbGFjZSB0aGlzIHRlbXBsYXRlIHdpdGggJnF1b3Q7ZGVmYXVsdCZxdW90OyB1c2luZyB0aGUgcHVsbGRvd24gYWJvdmUuJzsKJGxhbmdbJ2FkbWluZGVzYyddID0gJ0RvZGF3YWosIGVkeXR1aiBpIHphcnrEhWR6YWogaW50ZXJha3R5d255bWkgZm9ybXVsYXJ6YW1pJzsKJGxhbmdbJ29wZXJhdG9yc19oZWxwJ10gPSAnSmXFvGVsaSB1xbx5d2FzeiBld2FsdWFjamkgY2nEhWcmb2FjdXRlO3csIGplZHluxIUgb3BlcmFjasSFIGplc3QgxYLEhWN6ZW5pZSAoKyksIGplxZtsaSB6YcWbIHXFvHl3YXN6IGV3YWx1YWNqaSBudW1lcnljem5laiBtb8W8ZXN6IHNrb3J6eXN0YWMgeiBwb2RzdGF3b3d5Y2ggZHppYcWCYcWEIG1hdGVtYXR5Y3pueWNoICgrLCAtLCAqLCAvKS4nOwokbGFuZ1snZGF0ZV9qYW51YXJ5J10gPSAnU3R5Y3plxYQnOwokbGFuZ1snZGF0ZV9mZWJydWFyeSddID0gJ0x1dHknOwokbGFuZ1snZGF0ZV9tYXJjaCddID0gJ01hcnplYyc7CiRsYW5nWydkYXRlX2FwcmlsJ10gPSAnS3dpZWNpZcWEJzsKJGxhbmdbJ2RhdGVfbWF5J10gPSAnTWFqJzsKJGxhbmdbJ2RhdGVfanVuZSddID0gJ0N6ZXJ3aWVjJzsKJGxhbmdbJ2RhdGVfanVseSddID0gJ0xpcGllYyc7CiRsYW5nWydkYXRlX2F1Z3VzdCddID0gJ1NpZXJwaWXFhCc7CiRsYW5nWydkYXRlX3NlcHRlbWJlciddID0gJ1dyemVzaWXFhCc7CiRsYW5nWydkYXRlX29jdG9iZXInXSA9ICdQYcW6ZHppZXJuaWsnOwokbGFuZ1snZGF0ZV9ub3ZlbWJlciddID0gJ0xpc3RvcGFkJzsKJGxhbmdbJ2RhdGVfZGVjZW1iZXInXSA9ICdHcnVkemllxYQnOwokbGFuZ1snc3VibWlzc2lvbl9lcnJvciddID0gJ1d5c3TEhXBpxYIgYsWCxIVkIHBvZGN6YXMgcHJ6ZXR3YXJ6YW5pYSBmb3JtdWxhcnphLic7CiRsYW5nWydzdWJtaXRfZXJyb3InXSA9ICdCxYLEhWQgcG9kY3phcyB3eXN5xYJhbmlhOiAlcyc7CiRsYW5nWyd1cGxvYWRzX2Vycm9yJ10gPSAnQsWCxIVkIHBvZGN6YXMgemFwaXN1IHBsaWt1IGRvIG1vZHXFgnUgVXBsb2FkczogJXMnOwokbGFuZ1snbm91cGxvYWRzX2Vycm9yJ10gPSAnTmllIHpuYWxlemlvbm8gbW9kdcWCdSBVcGxvYWRzJzsKJGxhbmdbJ3VwbG9hZF9hdHRhY2hfZXJyb3InXSA9ICdXeXN0xIVwacWCIGLFgsSFZCBwb2RjemFzIHByemV0d2FyemFuaWEgcGxpa3UgJXMgKG5hendhIHR5bWN6YXNvd2E6ICVzLCB0eXAgJXMpJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3JfZmlsZV9sb2NrJ10gPSAnQsWCxIVkOiBOaWUgbW/FvG5hIHV6eXNrYcSHIHd5xYLEhWN6bmVnbyBkb3N0xJlwdSBkbyBwbGlrdS4nOwokbGFuZ1sndW5jaGVja2VkX2J5X2RlZmF1bHQnXSA9ICdEaW15xZtsbmllOiBvZHpuYWN6aW55JzsKJGxhbmdbJ2NoZWNrZWRfYnlfZGVmYXVsdCddID0gJ0RpbXnFm2xuaWU6IHphem5hY3ppbnknOwokbGFuZ1snZW1haWxfZGVmYXVsdF90ZW1wbGF0ZSddID0gJ1d5bmlrIHd5c8WCYW5pYSBmb3JtdWxhcnphJzsKJGxhbmdbJ2VtYWlsX3RlbXBsYXRlX25vdF9zZXQnXSA9ICc8YnIvPlN6YWJsb24gZW1haWxhIGplc3pjemUgbmllIGplc3QgdXN0YXdpb255ISc7CiRsYW5nWydtaXNzaW5nX2Ntc19tYWlsZXInXSA9ICdGb3JtQnVpbGRlcjogQnJhayB3eW1hZ2FuZWdvIG1vZHXFgnUgQ01TTWFpbGVyISc7CiRsYW5nWyd1c2VyX2FwcHJvdmVkX3N1Ym1pc3Npb24nXSA9ICdVxbx5dGtvd25payB6YWFrY2VwdG93YcWCICVzIG9kICVzJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXSA9ICdXeWRhcnplbmllIGdlbmVyb3dhbmUgZ2R5IGZvcm11bGFyeiBqZXN0IHd5c3nFgmFueSc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InXSA9ICdXeWRhcnplbmllIGdlbmVyb3dhbmUgZ2R5IHd5c3TEhXBpIGLFgsSFZCBwb2RjemFzIHd5c3nFgmFuaWEgZm9ybXVsYXJ6YSc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtRGlzcGxheSddID0gJ1d5ZGFyemVuaWUgZ2VuZXJvd2FuZSBnZHkgZm9ybXVsYXJ6IGplc3Qgd3nFm3dpZXRsYW55JzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXSA9ICc8cD5FdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkLjwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBUaGUgZm9ybSBuYW1lIChzdHJpbmcpPC9saT4NCjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gVGhlIGludGVybmFsIGZvcm0gaWQgKGludCk8L2xpPg0KPGxpPjxlbT52YWx1ZV88bmFtZT48L2VtPiAtIFN1cHBseSBhIGRlZmF1bHQgdmFsdWUgdG8gYSBmaWVsZCB3aXRoIHRoZSBzcGVjaWZpZWQgbmFtZS48L2xpPg0KPC91bD4gJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddID0gJzxwPkV2ZW50IHRyaWdnZXJlZCBpZiB0aGVyZSBpcyBhbiBlcnJvciB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQ8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gVGhlIGZvcm0gbmFtZSAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4NCjxsaT48ZW0+ZXJyb3I8L2VtPiAtIEEgbGlzdCBvZiBhbGwga25vd24gZXJyb3JzIChzdHJpbmcpPC9saT4NCjwvdWw+ICc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtRGlzcGxheSddID0gJzxwPkV2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBkaXNwbGF5ZWQ8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gVGhlIGZvcm0gbmFtZSAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4NCjwvdWw+ICc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfcmVzcG9uc2VfaWQnXSA9ICdJRCBvZHBvd2llZHppLiBVxbx5d2FuZSBwcnpleiBtb2R1xYIgRm9ybUJyb3dzZXInOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX3Bhc3NlZF9mcm9tX3RhZyddID0gJ0RvbXnFm2xuZSB3YXJ0b8WbY2kgcG9sYSAoc3ByYXdkxbogdyBwb21vY3kgbW9kdcWCdSknOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2ZpZWxkX2lkJ10gPSAnSUQgcG9sYSBkbGEgd2V3bsSZdHJ6bnljaCBvcGVyYWNqaSc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZm9ybV9uYW1lJ10gPSAnTmF6d2EgZm9ybXVsYXJ6YSc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZm9ybV9pZCddID0gJ0lEIGZvcm11bGFyemEgZGxhIHdld27EmXRyem55Y2ggb3BlcmFjamknOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2dlbmVyYWwnXSA9ICdPZyZvYWN1dGU7bG5lIHBhcmFtZXRyeSBkbGEgd2V3bsSZdHJ6bnljaCBvcGVyYWNqaSc7CiRsYW5nWyd0ZW1wbGF0ZV92YXJpYWJsZV9oZWxwJ10gPSAnPGgzPkZvcm0gVGVtcGxhdGUgVmFyaWFibGVzPC9oMz4NCjxwPllvdSBjYW4gZWRpdCBpdCB0byBtYWtlIHlvdXIgZm9ybSBsYXlvdXQgbG9vayBhbnkgd2F5IHlvdSYjMDM5O2QgbGlrZS4NCiAgIFRvIG1ha2UgdGhlIGZvcm0gd29yaywgeW91JiMwMzk7bGwgbmVlZCB0byBhbHdheXMgaW5jbHVkZSB0aGUgeyRmYl9oaWRkZW59IGFuZCB7JHN1Ym1pdH0NCiAgIHRhZ3MuPC9wPg0KDQo8cD5Zb3UgY2FuIGFjY2VzcyB5b3VyIGZvcm0gZmllbGRzIGVpdGhlciB1c2luZyB0aGUgJGZpZWxkcyBhcnJheSBvciBieSBkaXJlY3RseSBhY2Nlc3NpbmcgZmllbGRzIGJ5IHRoZWlyIG5hbWVzIChlLmcuLCB7JG15ZmllbGQtPmlucHV0fSApPC9wPg0KDQoNCjxwPkVhY2ggZmllbGQgaGFzIHRoZSBmb2xsb3dpbmcgYXR0cmlidXRlczo8L3A+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+JzsKJGxhbmdbJ3Bvc3RfaW5zdGFsbCddID0gJzxwPk1ha2Ugc3VyZSB0byBzZXQgdGhlICZxdW90O01vZGlmeSBGb3JtcyZxdW90OyBwZXJtaXNzaW9ucw0Kb24gdXNlcnMgd2hvIHdpbGwgYmUgYWRtaW5pc3RlcmluZyBmZWVkYmFjayBmb3Jtcy4gQWxzbywgaWYgeW91JiMwMzk7bGwgYmUgZW1haWxpbmcgZm9ybQ0KcmVzdWx0cywgYmUgc3VyZSB0byB1cGRhdGUgdGhlIENvbmZpZ3VyYXRpb24gYXBwcm9wcmlhdGVseS48L3A+DQo8cD5QbGVhc2UgYmUgYXdhcmUgdGhhdCBhIGZlZWRiYWNrIGZvcm0gc2hvdWxkIG5vdCBiZSBhY3RpdmUgKGUuZy4sIHVzYWJsZSBieSB0aGUgcHVibGljKSB3aGlsZQ0KeW91IGFyZSBzdGlsbCBlZGl0aW5nIHRoZSBmb3JtLiBZb3Ugc2hvdWxkIGNyZWF0ZSB0aGUgZm9ybSwgYW5kIHBsYWNlIHRoZSB0YWcgaW50byBhbiBhY3RpdmUNCmNvbnRlbnQgcGFnZSBvbmx5IHdoZW4geW91IGhhdmUgZmluaXNoZWQgZWRpdGluZy4gT3RoZXJ3aXNlLCBlcnJvbmVvdXMgcmVzdWx0cyBjb3VsZCBiZSByZXR1cm5lZC48L3A+DQo8cD5BZGRpdGlvbmFsbHksIHRoaXMgdmVyc2lvbiBkb2VzIG5vdCBzdXBwb3J0IHBhcmFsbGVsIGVkaXRpbmcgb2YgZm9ybXMuIFBsZWFzZSB0YWtlIGNhcmUgdGhhdA0Kb25seSBvbmUgYWRtaW4gaXMgZWRpdGluZyBhIGdpdmVuIGZvcm0gYXQgYSBnaXZlbiB0aW1lLjwvcD4nOwokbGFuZ1snaGVscCddID0gJzxoMz5XaGF0IERvZXMgVGhpcyBEbz88L2gzPg0KPHA+VGhlIEZvcm0gQnVpbGRlciBNb2R1bGUgYWxsb3dzIHlvdSB0byBjcmVhdGUgZmVlZGJhY2sgZm9ybXMgKGluIGZhY3QsIGl0JiMwMzk7cyBhIHJlcGxhY2VtZW50IG9mIHRoZSBvcmlnaW5hbCBGZWVkYmFjayBGb3JtIG1vZHVsZSksIHdpdGggdGhlIGFkZGVkIHBvd2VyIG9mIGRhdGFiYXNlIHN0b3JhZ2UuIFdpdGggaXRzIGNvbXBhbmlvbiBtb2R1bGUgRm9ybSBCcm93c2VyLCB5b3UgY2FuIHVzZSBpdCB0byBjcmVhdGUgc2ltcGxlIGRhdGFiYXNlIGFwcGxpY2F0aW9ucy48L3A+DQo8cD5UaGUgZm9ybXMgY3JlYXRlZCB1c2luZyB0aGUgRm9ybSBCdWlsZGVyIG1heSBiZSBpbnNlcnRlZA0KaW50byB0ZW1wbGF0ZXMgYW5kL29yIGNvbnRlbnQgcGFnZXMuIEZvcm1zIG1heSBjb250YWluIG1hbnkga2luZHMgb2YgaW5wdXRzLCBhbmQgbWF5IGhhdmUNCnZhbGlkYXRpb24gYXBwbGllZCB0byB0aGVzZSBpbnB1dHMuIFRoZSByZXN1bHRzIG9mIHRoZXNlIGZvcm1zIG1heSBiZSBoYW5kbGVkIGluIGEgdmFyaWV0eSBvZiB3YXlzLjwvcD4NCg0KPGgzPkhvdyBEbyBJIFVzZSBpdD88L2gzPg0KPFA+SW5zdGFsbCBpdCwgYW5kIHBva2UgYXJvdW5kIHRoZSBtZW51cy4gUGxheSB3aXRoIGl0LiBUcnkgY3JlYXRpbmcgZm9ybXMsIGFuZCBhZGRpbmcgdGhlbSB0byB5b3VyIGNvbnRlbnQuDQpJZiB5b3UgZ2V0IHN0dWNrLCBjaGF0IHdpdGggbWUgb24gdGhlICNjbXMgSVJDIGNoYW5uZWwsIHBvc3QgdG8gdGhlIGZvcnVtLCBzZW5kIG1lIGVtYWlsLCBvciwgaWYgeW91JiMwMzk7cmUNCnJlYWxseSBkZXNwZXJhdGUsIHRyeSByZWFkaW5nIHRoZSBpbnN0cnVjdGlvbnMgb24gdGhlIHJlc3Qgb2YgdGhpcyBwYWdlLjwvUD4NCg0KPGgzPkhvdyBEbyBJIENyZWF0ZSBhIEZvcm08L2gzPg0KPHA+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+U3RhdGUuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBTdGF0ZXMgb2YgdGhlIFUuUy48L2xpPg0KPGxpPkNhbmFkaWFuIFByb3ZpbmNlLiBUaGlzIGlzIGEgcHVsbGRvd24gbGlzdGluZyB0aGUgQ2FuYWRpYW4gUHJvdmluY2VzIChDb250cmlidXRlZCBieSBOb2VsIE1jR3Jhbi4gVGhhbmtzISk8L2xpPg0KPGxpPkNvdW50cmllcy4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIENvdW50cmllcyBvZiB0aGUgd29ybGQgKGFzIG9mIEp1bHkgMjAwNSkuPC9saT4NCjxsaT5EYXRlIFBpY2tlci4gVGhpcyBpcyBhIHRyaXBsZSBwdWxsZG93biBhbGxvd2luZyB0aGUgdXNlciB0byBzZWxlY3QgYSBkYXRlLjwvbGk+DQo8bGk+VGltZSBQaWNrZXIuIFRoaXMgaXMgYSBzZXQgb2YgcHVsbGRvd25zIGFsbG93aW5nIHRoZSB1c2VyIHRvIHNlbGVjdCBhIHRpbWUgKHVzaW5nIDEyIG9yIDI0IGhvdXIgY2xvY2spLjwvbGk+DQo8bGk+RmlsZSBVcGxvYWQuIFRoaXMgaXMgYSBmaWxlIHVwbG9hZCBmaWVsZC48L2xpPg0KPGxpPkxpbmsgKFVzZXIgRW50ZXJlZCkuIFRoaXMgY3JlYXRlcyBhIGRvdWJsZSBpbnB1dCBmaWVsZCBmb3IgZ2V0dGluZyBhIGxpbmsgVVJMIGFuZCBsaW5rIHRpdGxlLjwvbGk+DQo8bGk+VGV4dCBGaWVsZCAoTXVsdGlwbGUpLiBUaGlzIGZpZWxkIGNyZWF0ZXMgb25lIG9yIG1vcmUgdGV4dCBpbnB1dHMgd2l0aCBhZGQgYW5kIGRlbGV0ZSBidXR0b25zLCBlZmZlY3RpdmVseSBnaXZpbmcgdGhlIGVuZCB1c2VyIGEgd2F5IG9mIGNyZWF0aW5nIHZhcmlhYmxlLWxlbmd0aCBsaXN0cy48L2xpPg0KPC91bD48L2xpPg0KDQo8bGk+RW1haWwtc3BlY2lmaWMgSW5wdXRzDQo8dWw+PGxpPkVtYWlsIEZyb20gQWRkcmVzcyBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSB0aGVpciBlbWFpbCBhZGRyZXNzLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgYWRkcmVzcyBpbiB0aGUgJnF1b3Q7RnJvbSZxdW90OyBmaWVsZC48L2xpPg0KPGxpPkVtYWlsIEZyb20gTmFtZSBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSB0aGVpciBuYW1lLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgbmFtZSBpbiB0aGUgJnF1b3Q7RnJvbSZxdW90OyBmaWVsZC48L2xpPg0KPGxpPkVtYWlsIFN1YmplY3QgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgYSBzdWJqZWN0IGZvciB0aGVpciBlbWFpbC4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIGluIHRoZSAmcXVvdDtTdWJqZWN0JnF1b3Q7IGZpZWxkLiBUaGlzIG1heSBjYXVzZSB0cm91YmxlIHdpdGggY2VydGFpbiBkaXNwb3NpdGlvbnMgdGhhdCB3YW50IHRvIGNvbnRyb2wgdGhlIEVtYWlsIFN1YmplY3QsIHNvIHVzZSBpdCB3aXRoIGNhdXRpb24uPC9saT4NCjwvdWw+PC9saT4NCg0KPGxpPkRpc3BsYXkgQ29udHJvbCBGaWVsZHM8dWw+DQo8bGk+LVBhZ2UgQnJlYWsuIFRoaXMgYWxsb3dzIHlvdSB0byBzcGxpdCB5b3VyIGZlZWRiYWNrIGZvcm0gaW50byBtdWx0aXBsZSBwYWdlcy4gRWFjaCBwYWdlIGlzDQppbmRlcGVuZGVudGx5IHZhbGlkYXRlZC4gVGhpcyBpcyBnb29kIGZvciBhcHBsaWNhdGlvbnMgbGlrZSBvbmxpbmUgc3VydmV5cy48L2xpPg0KPGxpPi1GaWVsZHNldCBTdGFydC4gQ29tYmluZWQgd2l0aCBGaWVsZHNldCBFbmQsIHRoaXMgYWxsb3dzIHlvdSB0byBncm91cCB2YXJpb3VzIGZpZWxkcyB3aXRoaW4geW91ciBmb3JtLiBVc2UgdGhpcyB0byBzdGFydCBhIGdpdmVuIGdyb3VwaW5nLjwvbGk+DQo8bGk+LUZpZWxkc2V0IEVuZC4gQ29tYmluZWQgd2l0aCBGaWVsZHNldCBTdGFydCwgdGhpcyBhbGxvd3MgeW91IHRvIGdyb3VwIHZhcmlvdXMgZmllbGRzIHdpdGhpbiB5b3VyIGZvcm0uIFVzZSB0aGlzIHRvIGVuZCBhIGdpdmVuIGdyb3VwaW5nLjwvbGk+DQo8bGk+LUhpZGRlbiBGaWVsZC4gVGhpcyBhbGxvd3MgeW91IHRvIGVtYmVkIGEgaGlkZGVuIGZpZWxkIGluIHlvdXIgZm9ybS48L2xpPg0KPGxpPi1TdGF0aWMgVGV4dC4gVGhpcyBhbGxvd3MgeW91IHRvIHB1dCB0ZXh0IG9yIGEgbGFiZWwgaW4gdGhlIG1pZGRsZSBvZiB5b3VyIGZvcm0uIFRoaXMgaXMgdXNlZnVsIGZvciBnaXZpbmcgYWRkaXRpb25hbCBoZWxwIHRleHQsIGVzcGVjaWFsbHkgaWYgeW91JiMwMzk7cmUgbm90IHVzaW5nIGEgQ3VzdG9tIFRlbXBsYXRlIHRvIHJlbmRlciB5b3VyIGZvcm0uPC9saT4NCjxsaT4tU3RhdGljIExpbmsuIFRoaXMgYWxsb3dzIHlvdSB0byBwdXQgYSBsaW5rIHRvIGEgZ2l2ZW4gcGFnZSBpbnRvIHlvdXIgZm9ybS4gT3B0aW9uYWxseSwgeW91IGNhbiBoYXZlIGl0IGF1dG9wb3B1bGF0ZSB3aXRoIHRoZSBwYWdlIHdoZXJlIHRoZSBmb3JtIGlzIGVtYmVkZGVkICh1c2VmdWwgaWYgeW91JiMwMzk7cmUgc2VuZGluZyByZXN1bHRzIHZpYSBlbWFpbCkuPC9saT4NCjxsaT4tQ29tcHV0ZWQgRmllbGQuIFRoaXMgYWxsb3dzIHlvdSB0byBlbWJlZCBhIGNvbXB1dGVkIGZpZWxkIGluIHlvdXIgZm9ybS4gSXQgaXMgbm90IHZpc2libGUgdG8gdGhlIHVzZXIgdW50aWwgYWZ0ZXIgdGhlIGZvcm0gaXMgc3VibWl0dGVkLiBJdCBhbGxvd3MgeW91IHRvIGRvIHNpbXBsZSBhcml0aG1ldGljIG9yIHN0cmluZyBjb25jYXRlbmF0aW9uLjwvbGk+DQo8bGk+LVVuaXF1ZSBJbnRlZ2VyIChTZXJpYWwpLiBUaGlzIGlzIGFuIGludGVnZXIgdGhhdCBpbmNyZWFzZXMgZXZlcnkgdGltZSBzb21lb25lIGhpdHMgeW91ciBmb3JtLiBZb3VyIHJlc3VsdHMgbWF5IG5vdCBiZSBzZXF1ZW50aWFsLCBidXQgdGhleSB3aWxsIGluY3JlYXNlIG1vbm90b25pY2FsbHkuPC9saT4NCjwvdWw+PC9saT4NCg0KPGxpPkZvcm0gSGFuZGxpbmcgSW5wdXRzIChEaXNwb3NpdGlvbnMpDQo8dWw+PGxpPipDYWxsIGEgVXNlciBEZWZpbmVkIFRhZyBXaXRoIHRoZSBGb3JtIFJlc3VsdHMuIFRoaXMgc3VibWl0cyBhbGwgdGhlIGZvcm0gcmVzdWx0cyB0byB0aGUgVXNlci1EZWZpbmVkIFRhZyB5b3Ugc3BlY2lmeS4gVGhlIFVEVCBjYW4gaGFuZGxlIHRoZSByZXN1bHRzIGhvd2V2ZXIgaXQgd2FudHMuIFZhbHVlcyBhcmUgcGFzc2VkIGFzICRwYXJhbVsmIzAzOTtmaWVsZF9uYW1lJiMwMzk7XS48L2xpPg0KPGxpPipFbWFpbCBSZXN1bHRzIEJhc2VkIG9uIFB1bGxkb3duLiBUaGlzIGlzIHVzZWZ1bCBmb3Igd2ViIHNpdGVzIHdoZXJlIGNvbW1lbnRzIGdldCByb3V0ZWQgYmFzZWQgb24gdGhlaXIgc3ViamVjdCBtYXR0ZXIsIGUuZy4sIGJ1Z3MgZ2V0IHNlbnQgdG8gb25lIHBlcnNvbiwgbWFya2V0aW5nIHF1ZXN0aW9ucyB0byBhbm90aGVyIHBlcnNvbiwgc2FsZXMgcmVxdWVzdHMgdG8gc29tZW9uZSBlbHNlLCBldGMuIFRoZSBwdWxsZG93biBpcyBwb3B1bGF0ZWQgd2l0aCB0aGUgc3ViamVjdHMsIGFuZCBlYWNoIGdldHMgZGlyZWN0ZWQgdG8gYSBzcGVjaWZpYyBlbWFpbCBhZGRyZXNzLiBZb3Ugc2V0IHVwIHRoZXNlIG1hcHBpbmdzIGluIHRoZSB3aGVuIHlvdSBjcmVhdGUgb3IgZWRpdCBhIGZpZWxkIG9mIHRoaXMgdHlwZS4gSWYgeW91IHVzZSBvbmUgb2YgdGhlc2UgJnF1b3Q7RGlyZWN0b3ImcXVvdDsgcHVsbGRvd25zLCB0aGUgdXNlciBtdXN0IG1ha2UgYSBzZWxlY3Rpb24gaW4gb3JkZXIgdG8gc3VibWl0IHRoZQ0KZm9ybS4gVGhpcyBpbnB1dCBpcyBwYXJ0IG9mIHRoZSBmb3JtIHRoZSB1c2VyIHNlZXMsIGFsdGhvdWdoIHRoZSBlbWFpbCBhZGRyZXNzZXMgYXJlIG5vdCBtYWRlIHZpc2libGUgbm9yDQphcmUgdGhleSBlbWJlZGRlZCBpbiB0aGUgSFRNTC48L2xpPg0KPGxpPipFbWFpbCBSZXN1bHRzIHRvIHNldCBBZGRyZXNzKGVzKS4gVGhpcyBzaW1wbHkgc2VuZHMgdGhlIGZvcm0gcmVzdWx0cyB0byBvbmUgb3IgbW9yZSBlbWFpbCBhZGRyZXNzZXMgdGhhdCB5b3UgZW50ZXIgd2hlbiB5b3UgY3JlYXRlIG9yIGVkaXQgdGhpcyB0eXBlIG9mIGZpZWxkLiBUaGlzIGZpZWxkIGFuZCBpdHMgbmFtZSBhcmUgbm90IHZpc2libGUgaW4gdGhlDQpmb3JtIHRoYXQgdGhlIHVzZXIgc2Vlcy4gVGhlIGVtYWlsIGFkZHJlc3NlcyBhcmUgbm90IG1hZGUgdmlzaWJsZSBub3INCmFyZSB0aGV5IGVtYmVkZGVkIGluIHRoZSBIVE1MLjwvbGk+DQo8bGk+KkVtYWlsIHRvIFVzZXItU3VwcGxpZWQgQWRkcmVzcy4gVGhpcyBwdXRzIGFuIGlucHV0IGZpZWxkIGluIHRoZSBmb3JtIGZvciB0aGUgdXNlciB0byBwb3B1bGF0ZSB3aXRoIGFuIGVtYWlsIGFkZHJlc3MuIFRoZSBmb3JtIHJlc3VsdHMgZ2V0IHNlbnQgdG8gdGhhdCBhZGRyZXNzLiBCZXdhcmUgb2YgU3BhbSBhYnVzZSEgQWN0aXZlIHRoZSBwcmltaXRpdmUgYW50aS1zcGFtIGZlYXR1cmVzIGluIHRoZSBGb3JtQnVpbGRlciBjb25maWd1cmF0aW9uIHNjcmVlbi48L2xpPg0KPGxpPipTdG9yZSBSZXN1bHRzIGluIERhdGFiYXNlLiBUaGlzIHdpbGwgc3RvcmUgdGhlIGZvcm0gY29udGVudHMgaW4gYW4gaW50ZXJuYWwgZGF0YWJhc2UuIFlvdSB3aWxsIGFsd2F5cyB1c2UgdGhpcyBkaXNwb3NpdGlvbiBpZiB5b3UgdXNlIHRoZSBmb3JtIHdpdGggRm9ybUJyb3dzZXIuPC9saT4NCjxsaT4qUmVkaXJlY3QgdG8gUGFnZSBCYXNlZCBvbiBQdWxsZG93bi4gVGhpcyBhbGxvd3MgeW91IHRvIHJlZGlyZWN0IHRoZSBmb3JtIHRvIGEgZGlmZmVyZW50IHNpdGUgcGFnZSBkZXBlbmRpbmcgb24gaXRzIHZhbHVlLiBJZiB5b3UgaGF2ZSBtdWx0aXBsZSBkaXNwb3NpdGlvbnMsIG1ha2Ugc3VyZSB0aGlzIGlzIHVzZWQgbGFzdC48L2xpPg0KPGxpPipWYWxpZGF0ZSB2aWEgRW1haWwuIFRoaXMgaXMgYSBzdHJhbmdlIGFuZCBwb3dlcmZ1bCBmaWVsZC4gSXQgcHJvdmlkZXMgdGhlIHVzZXIgYSBtYW5kYXRvcnkgaW5wdXQgZm9yIHRoZWlyIGVtYWlsIGFkZHJlc3MuIE9uY2UgdGhleSBzdWJtaXQgdGhlaXIgZm9ybSwgdGhlIHN0YW5kYXJkIGZvcm0gZGlzcG9zaXRpb25zIGFyZSBub3QgcGVyZm9ybWVkIC0tIHJhdGhlciwgaXQgc2VuZCB0aGUgdXNlciBhbiBlbWFpbCB3aXRoIGEgc3BlY2lhbCBjb2RlZCBsaW5rLiBJZiB0aGV5IGNsaWNrIG9uIHRoZSBsaW5rLCB0aGUgb3RoZXIgZm9ybSBpcyBjb25zaWRlcmVkICZxdW90O2FwcHJvdmVkLCZxdW90OyBhbmQgdGhlIG90aGVyIGRpc3Bvc2l0aW9ucyBhcmUgYWxsIHBlcmZvcm1lZC48L2xpPg0KPGxpPipXcml0ZSBSZXN1bHRzIHRvIEZsYXQgRmlsZS4gVGhpcyB0YWtlcyB0aGUgZm9ybSByZXN1bHRzIGFuZCB3cml0ZXMgdGhlbSBpbnRvIGEgdGV4dCBmaWxlLiBZb3UgbWF5DQpzZWxlY3QgdGhlIG5hbWUgb2YgdGhlIGZpbGUsIGFuZCBzZXQgaXRzIGZvcm1hdC4gVGhlc2UgZmlsZXMgYXJlIHdyaXR0ZW4gdG8gdGhlICZxdW90O291dHB1dCZxdW90OyBkaXJlY3RvcnkgdW5kZXIgdGhlDQptb2R1bGUmIzAzOTtzIGluc3RhbGxhdGlvbiBkaXJlY3RvcnksIGFzc3VtaW5nIHRoZSB3ZWIgc2VydmVyIGhhcyBwZXJtaXNzaW9uIHRvIHdyaXRlIHRoZXJlLjwvbGk+DQo8bGk+KlNhdmUgUmVzdWx0cyB0byBGaWxlIEJhc2VkIG9uIFB1bGxkb3duLiBMaWtlIHRoZSBGbGF0IEZpbGUgZGlzcG9zaXRpb24sIGV4Y2VwdCB0aGUgdmFsdWUgb2YgYSBwdWxsLWRvd24gZGV0ZXJtaW5lcyB3aGljaCBmaWxlIHJlc3VsdHMgZ2V0IHdyaXR0ZW4gdG8uPC9saT4NCjxsaT4qU2F2ZSBSZXN1bHRzIHRvIEZpbGUocykgQmFzZWQgb24gTXVsdGlwbGUgU2VsZWN0aW9ucy4gTGlrZSB0aGUgRmxhdCBGaWxlIGRpc3Bvc2l0aW9uLCBleGNlcHQgdGhlIHZhbHVlKHMpIG9mIGNoZWNrYm94ZXMgIGRldGVybWluZXMgd2hpY2ggZmlsZShzKSByZXN1bHRzIGdldCB3cml0dGVuIHRvLjwvbGk+DQo8bGk+KkVtYWlsIHRvIENNUyBBZG1pbiBVc2VyLiBQcm92aWRlcyBhIHB1bGwtZG93biBvZiBDTVMgQWRtaW4gdXNlcnMsIGFuZCBkaXJlY3RzIHRoZSByZXN1bHRzIGFzIGFuIGVtYWlsIHRvIHRoZSBzZWxlY3RlZCBhZG1pbi48L2xpPg0KPGxpPipTdG9yZSBSZXN1bHRzIGZvciBGb3JtQnJvd3NlciBNb2R1bGUgdi4zLiBTdG9yZXMgdGhlIGZvcm0gcmVzdWx0cyBpbiBhbiBYTUwgc3RydWN0dXJlIGFzIGEgc2luZ2xlIGRhdGFiYXNlIHJlY29yZC4gVGhpcyB3aWxsIGJlY29tZSB0aGUgaW50ZXJmYWNlIHRvIEZvcm0gQnJvd3NlciBpbiB0aGUgbmV4dCByZWxlYXNlLjwvbGk+DQoNCjwvdWw+PC9saT48L2xpPjwvdWw+DQoNCg0KPGgzPlBhc3NpbmcgRGVmYXVsdCBWYWx1ZXMgdG8gRm9ybXM8L2gzPg0KPHA+Q2FsZ3V5IGFkZGVkIGEgbmljZSBmZWF0dXJlLCB3aGljaCBpcyB0aGF0IHlvdSBjYW4gcGFzcyBkZWZhdWx0IGZpZWxkIHZhbHVlcyB0byB5b3VyIGZvcm0gdmlhIHRoZSBtb2R1bGUgdGFnLiBUaGlzIGFsbG93cyB5b3UgdG8gaGF2ZQ0KdGhlIHNhbWUgZm9ybSBpbiBtdWx0aXBsZSBwbGFjZXMsIGJ1dCB3aXRoIGRpZmZlcmVudCBkZWZhdWx0IHZhbHVlcy4gSXQgbWF5IG5vdCB3b3JrIGZvciBtb3JlIGV4b3RpYyBmaWVsZCB0eXBlcywgYnV0IGZvciBmaWVsZHMgdGhhdCBoYXZlDQphIHNpbmdsZSB2YWx1ZSwgeW91IGNhbiBzcGVjaWZ5IGxpa2U6PC9wPg0KPHA+e2Ntc19tb2R1bGUgbW9kdWxlPSYjMDM5O0Zvcm1CdWlsZGVyJiMwMzk7IGZvcm09JiMwMzk7bXlfZm9ybSYjMDM5OyB2YWx1ZV88aT5GSUVMRE5BTUU8L2k+PSYjMDM5O2RlZmF1bHRfdmFsdWUmIzAzOTt9PC9wPg0KPHA+VGhpcyB3aWxsIHNldCB0aGUgZmllbGQgd2l0aCA8aT5GSUVMRE5BTUU8L2k+IHRvICYjMDM5O2RlZmF1bHRfdmFsdWUmIzAzOTsuPC9wPg0KPHA+VGhpcyBjYW4gYmUgcHJvYmxlbWF0aWMsIGFzIHNvbWV0aW1lcyBmaWVsZCBuYW1lcyBhcmUgdW53ZWlsZHkgb3IgY29udGFpbiBjaGFyYWN0ZXJzIHRoYXQgZG9uJiMwMzk7dCB3b3JrIHdlbGwgd2l0aCBTbWFydHkuIFNvIHRoZXJlIGlzIGFuDQphbHRlcm5hdGl2ZSBsaWtlIHRoaXM6PC9wPg0KPHA+e2Ntc19tb2R1bGUgbW9kdWxlPSYjMDM5O0Zvcm1CdWlsZGVyJiMwMzk7IGZvcm09JiMwMzk7bXlfZm9ybSYjMDM5OyB2YWx1ZV9mbGQ8aT5OVU1CRVI8L2k+PSYjMDM5O2RlZmF1bHRfdmFsdWUmIzAzOTt9PC9wPg0KPHA+VGhhdCB1c2VzIGZpZWxkIDxpPk5VTUJFUjwvaT4sIHdoZXJlIDxpPk5VTUJFUjwvaT4gaXMgdGhlIGludGVybmFsIEZvcm1CdWlsZGVyIGZpZWxkIGlkLiBZb3UgbWlnaHQgd29uZGVyIGhvdyB5b3Uga25vdyB3aGF0IHRoYXQgaWQgaXMuIFNpbXBseSBnbyBpbnRvIHRoZSBGb3JtQnVpbGRlciBjb25maWd1cmF0aW9uIHRhYiwNCmFuZCBjaGVjayAmcXVvdDtTaG93IEZpZWxkIElEcyZxdW90OzwvcD4NCg0KPGgzPkVtYWlsIGFuZCBGbGF0IEZpbGUgVGVtcGxhdGVzPC9oMz4NCjxwPk1hbnkgZGlzcG9zaXRpb24gdHlwZXMgYWxsb3cgeW91IHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZvciB0aGUgZW1haWwgdGhhdCBpcyBnZW5lcmF0ZWQsIG9yIGZvciB0aGUgd2F5IHRoZSByZXN1bHRzIGFyZSB3cml0dGVuIHRvIGEgZmlsZS4gSWYgeW91IG9wdCBub3QgdG8gY3JlYXRlIGEgdGVtcGxhdGUsIHRoZSBGb3JtQnVpbGRlciB3aWxsIHVzZSBpdCYjMDM5O3Mgb3duIGJlc3QgZ3Vlc3MsIHdoaWNoIG1heSBvciBtYXkgbm90IHdvcmsgb3V0IHRvIHlvdXIgbGlraW5nLiBZb3UgY2FuIGFsd2F5cyBjbGljayBvbiB0aGUgJnF1b3Q7Q3JlYXRlIFNhbXBsZSBUZW1wbGF0ZSZxdW90OyBhbmQgdGhlbiBjdXN0b21pemUgdGhlIHJlc3VsdHMuPC9wPg0KPHA+VG8gdGhlIHJpZ2h0LCB5b3UmIzAzOTtsbCBmaW5kIGEgbGVnZW5kIHdoaWNoIGxpc3RzIGFsbCBvZiB0aGUgdmFyaWFibGVzIHRoYXQgYXJlIGF2YWlsYWJsZSB0byB5b3UgdG8gdXNlIGluIHlvdXIgdGVtcGxhdGUuIEFzIG9mIHZlcnNpb24gMC4zLCB2YXJpYWJsZXMgaGF2ZSB0d28gbmFtZXMsIG9uZSBiYXNlZCBvbiB0aGUgZmllbGQgbmFtZSwgdGhlIG90aGVyIGJhc2VkIG9uIHRoZSBmaWVsZCBJRC4gSWYgeW91IHVzZSBmaWVsZCBuYW1lcyB0aGF0IGhhdmUgY2hhcmFjdGVycyBvdXRzaWRlIG9mIHRoZSBBU0NJSSAzMi0xMjYgcmFuZ2UsIGl0IHdpbGwgYmUgc2FmZXIgdG8gdXNlIHRoZSBJRC1iYXNlZCB2YXJpYWJsZXMuPC9wPg0KPHA+PHN0cm9uZz5Ob3RlIHRoYXQgb25jZSB5b3UmIzAzOTt2ZSBjaGFuZ2VkIGEgdGVtcGxhdGUsIGl0IHdpbGwgbm8gbG9uZ2VyIGF1dG9tYXRpY2FsbHkgYWRkIG5ldyBmaWVsZHMuPC9zdHJvbmc+IEZvciB0aGlzIHJlYXNvbiwgaXQmIzAzOTtzIHVzdWFsbHkgYmVzdCB0byBjcmVhdGUgeW91ciB0ZW1wbGF0ZXMgYXMgdGhlIGxhc3Qgc3RlcCBvZiBjcmVhdGluZyB5b3VyIGZvcm0uPC9wPg0KPHA+QXMgb2YgdmVyc2lvbiAwLjIuNCwgeW91IGNhbiBvcHQgdG8gc2VuZCBhbnkgb2YgdGhlc2UgZW1haWxzIGFzIEhUTUwgZW1haWwuIFRoZXJlIHNob3VsZCBiZSBhIGNoZWNrYm94IGF0IHRoZSB0b3Agb2YgdGhlIHRlbXBsYXRlIHBhZ2UgZm9yIHRoaXMuIFRoZXJlIGlzIGFsc28gYSAmcXVvdDtDcmVhdGUgU2FtcGxlIEhUTUwgVGVtcGxhdGUmcXVvdDsgYnV0dG9uIG92ZXIgaW4gdGhlIGxlZ2VuZCBhcmVhLiBGb3IgSFRNTCBlbWFpbCwgdGhlIGVtYWlsIGJvZHkgd2lsbCBhbHNvIHByb3ZpZGUgdGhlIGRlZmF1bHQgdGV4dC1vbmx5IHZhbHVlcy48L3A+DQoNCjxoMz5Db25maWd1cmF0aW9uPC9oMz4NCjxwPlRoZXJlIGFyZSBzb21lIGdsb2JhbCBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIEZvcm1CdWlsZGVyOjwvcD4NCjx1bD4NCjxsaT5FbmFibGUgZmFzdCBmaWVsZCBhZGQgcHVsbGRvd24uIFRoaXMgZW5hYmxlcyB0aGUgcHVsbGRvd24gb24gdGhlIEZvcm0gRWRpdCBwYWdlIHdoaWNoIHNhdmVzIGEgc3RlcCBpbiB0aGUgY3JlYXRpb24gb2YgbmV3IGZpZWxkcy48L2xpPg0KPGxpPkhpZGUgRXJyb3JzLiBUaGlzIGlzIHNldCBieSBkZWZhdWx0LiBVbmNoZWNraW5nIGl0IHdpbGwgY2F1c2UgbW9yZSBkZXRhaWxlZCBlcnJvcnMgdG8gYmUgZGlzcGxheWVkIGlmIHRoZXJlIGFyZSBwcm9ibGVtcyB3aGVuIHlvdSBzdWJtaXQgeW91ciBmb3JtLjwvbGk+DQo8bGk+UmVxdWlyZSBGaWVsZCBOYW1lcy4gVHlwaWNhbGx5LCB5b3Ugd2lsbCB3YW50IGZvcm0gZmllbGRzIHRvIGJlIG5hbWVkIHNvIHlvdSBjYW4gdGVsbCB3aGljaCBpcyB3aGljaC4gSG93ZXZlciwgaW4gc29tZSBjYXNlcywgeW91IG1pZ2h0IHdhbnQgdG8gaGF2ZSBuYW1lbGVzcyBmaWVsZHMuIFVuY2hlY2sgdGhpcyBpZiB5b3Ugd2FudCB0byBhbGxvdyBuYW1lbGVzcyBmaWVsZHMuPC9saT4NCjxsaT5VbmlxdWUgRmllbGQgTmFtZXMuIFR5cGljYWxseSwgeW91IHdpbGwgd2FudCBmb3JtIGZpZWxkcyB0byBoYXZlIHVuaXF1ZSBuYW1lcyBzbyB5b3UgY2FuIHRlbGwgd2hpY2ggaXMgd2hpY2guIFVuY2hlY2sgdGhpcyBpZiB5b3Ugd2FudCB0byBhbGxvdyBmaWVsZHMgdG8gc2hhcmUgbmFtZXMuPC9saT4NCjxsaT5Vc2UgcmVsYXhlZCBlbWFpbCB2YWxpZGF0aW9uLiBUaGlzIHVzZXMgYSBsZXNzIHJlc3RyaWN0aXZlIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgdmFsaWRhdGluZyBlbWFpbDsgZS5nLiwgeEB5IHdpbGwgYmUgYWxsb3dlZCwgd2hlcmUgdHlwaWNhbGx5IHhAeS50bGQgaXMgcmVxdWlyZWQuPC9saT4NCjxsaT5TaG93IEZvcm0gQnVpbGRlciBWZXJzaW9uLiBEaXNwbGF5cyB0aGUgdmVyc2lvbiBvZiBGb3JtQnVpbGRlciB5b3UmIzAzOTtyZSB1c2luZyBpbiBhIGNvbW1lbnQgd2hlbiB0aGUgZm9ybSBpcyBnZW5lcmF0ZWQuIFR5cGljYWxseSBvbmx5IHVzZWZ1bCB3aGVuIGRlYnVnZ2luZy48L2xpPg0KPGxpPkVuYWJsZSBwcmltaXRpdmUgYW50aS1zcGFtIGZlYXR1cmVzLiBXaGVuIHR1cm5lZCBvbiwgdGhpcyBhbGxvd3MgYW55IGdpdmVuIElQIGFkZHJlc3MgdG8gb25seSBnZW5lcmF0ZSAxMCBlbWFpbHMgcGVyIGhvdXIuPC9saT4NCjxsaT5TaG93IEZpZWxkIElEcy4gV2hlbiB0dXJuZWQgb24sIEZvcm1CdWlsZGVyIHdpbGwgZGlzcGxheSBmaWVsZCBpZHMgd2hlbiBhZGRpbmcgb3IgZWRpdGluZyBhIGZvcm0uPC9saT4NCjwvdWw+DQo8aDM+U3R5bGluZyBhbmQgQ1NTPC9oMz4NCjxwPlBhdWwgTm9vbmUgZ3JhY2lvdXNseSBwcm92aWRlcyB1cyBhbGwgd2l0aCBhIHByZXR0eSBnb29kIHN0YW5kYXJkIENTUyB0aGF0IHlvdSBjYW4gdXNlIGZvciBmb3Jtczo8L3A+DQo8cHJlPg0KCS8qIFNhbXBsZSBGb3JtQnVpbGRlciBDU1MgYmFzZSAqLw0KCWZvcm0ge21hcmdpbi10b3A6MH0NCglmb3JtLCB0ZCwgdGgsIGxpIHsgZm9udC1zaXplOiAxMDAlfQ0KCWZvcm0gZGl2IHttYXJnaW4tYm90dG9tOjB9DQoJZmllbGRzZXQgZGl2IHsNCgkJbWFyZ2luLWJvdHRvbTowLjVlbTsNCgkJbWFyZ2luLWxlZnQ6MWVtOw0KCX0NCglmaWVsZHNldCBkaXYgZGl2IHsNCgkJbWFyZ2luLXRvcDowLjVlbTsNCgkJbWFyZ2luLWxlZnQ6MWVtDQoJfQ0KCWZpZWxkc2V0IHsNCgkJbWFyZ2luLWJvdHRvbToxZW07DQoJCWJvcmRlcjoxcHggc29saWQgI0Y2MDsNCgkJcGFkZGluZzowLjVlbQ0KCX0NCglmaWVsZHNldCBsYWJlbCB7DQoJCXdpZHRoOmF1dG87DQoJfQ0KCWxlZ2VuZCB7DQoJCWNvbG9yOiNGRkY7DQoJCWJhY2tncm91bmQ6I0Y2MDsNCgkJZm9udC1zdHlsZTppdGFsaWM7DQoJCWZvbnQtc2l6ZToxLjJlbTsNCgkJbWFyZ2luLWJvdHRvbTowLjVlbTsNCgkJcGFkZGluZzowLjJlbTsNCgkJd2lkdGg6YXV0bzsNCgkJYm9yZGVyOjFweCBzb2xpZCAjQ0NDDQoJfQ0KCXRleHRhcmVhIHsNCgkJbWFyZ2luOiAwLjVlbSAwOw0KCQl3aWR0aDo5OCU7DQoJCWhlaWdodDogNmVtDQoJfQ0KDQoJLyogQXBwbHkgdGhpcyBjbGFzcyB0byB0ZXh0L3NlbGVjdCBpbnB1dCBmaWVsZHMgd2l0aCBzaG9ydGVyIGxhYmVscw0KCQl0byBoZWxwIGFsaWdubWVudCAqLw0KCS5zaG9ydC1sYWJlbCBsYWJlbCB7ZmxvYXQ6bGVmdDsgd2lkdGg6MTBlbX0NCgkuc2hvcnQtbGFiZWwgZmllbGRzZXQgZGl2IGlucHV0LA0KCS5zaG9ydC1sYWJlbCBmaWVsZHNldCBkaXYgc2VsZWN0IHt3aWR0aDoxNmVtfQ0KDQoJLyogUHJldHR5IHVwIHlvdXIgQ2FwdGNoYSBpbWFnZSBvdXRwdXQgKi8NCgkuY2FwdGNoYSB7DQoJCW1hcmdpbjowLjVlbSAwOw0KCQl3aWR0aDoyMDBweDsNCgkJdGV4dC1hbGlnbjpjZW50ZXINCgl9DQoJLmNhcHRjaGEgaW1nIHtib3JkZXI6MXB4IHNvbGlkICNGNjA7IG1hcmdpbi1ib3R0b206MC41ZW19DQoJLmNhcHRjaGEgaW5wdXQge3dpZHRoOjE5NnB4OyBtYXJnaW4tdG9wOjAuNWVtfQ0KDQoJLyogSnVzdCBhIGJpdCBtb3JlIHJvb20gZm9yIHRoZSBTdWJtaXQgYnV0dG9uICovDQoJLnN1Ym1pdCB7bWFyZ2luLXRvcDowLjVlbX0NCjwvcHJlPg0KDQo8aDM+Rm9ybSBUZW1wbGF0ZSBWYXJpYWJsZXM8L2gzPg0KDQo8aDM+Rm9ybSBUZW1wbGF0ZSBWYXJpYWJsZXM8L2gzPg0KPHA+WW91IGNhbiBlZGl0IGl0IHRvIG1ha2UgeW91ciBmb3JtIGxheW91dCBsb29rIGFueSB3YXkgeW91JiMwMzk7ZCBsaWtlLg0KICAgVG8gbWFrZSB0aGUgZm9ybSB3b3JrLCB5b3UmIzAzOTtsbCBuZWVkIHRvIGFsd2F5cyBpbmNsdWRlIHRoZSAmYW1wOyMxMjM7JGZiX2hpZGRlbn0gYW5kICZhbXA7IzEyMzskc3VibWl0fQ0KICAgdGFncy48L3A+DQoNCjxwPllvdSBjYW4gYWNjZXNzIHlvdXIgZm9ybSBmaWVsZHMgZWl0aGVyIHVzaW5nIHRoZSAkZmllbGRzIGFycmF5IG9yIGJ5IGRpcmVjdGx5IGFjY2Vzc2luZyBmaWVsZHMgYnkgdGhlaXIgbmFtZXMgKGUuZy4sICZhbXA7IzEyMzskbXlmaWVsZC0+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+PHRkPnRoZSBJRCBvZiB0aGUgZmllbGQmIzAzOTtzIGlucHV0ICh1c2VmdWwgZm9yIGxhYmVsIGZvcj0mcXVvdDtmb28mcXVvdDspPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+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+Rm9ybUJ1aWxkZXIgaXMgbm90IHlldCBpbnRlZ3JhdGVkIHdpdGggRnJvbnRFbmQgVXNlcnMuIEl0IHdpbGwgYmUuPC9saT4NCjxsaT5Gb3JtQnVpbGRlciBkb2VzIG5vdCB5ZXQgc3VwcG9ydCBwcmV0dHkgdXJscywgYWx0aG91Z2ggdGhhdCBzaG91bGRuJiMwMzk7dCBtYXR0ZXIgc2luY2UgdGhlIHVzZXIgc2lkZSBpcyBwcmV0dHkgc2ltcGxlLjwvbGk+DQo8bGk+RmlsZVVwbG9hZCBGaWVsZHMgbWF5IG5vdCB3b3JrIGNvcnJlY3RseSB3aXRoIG11bHRpcGFnZSBmb3Jtcy48L2xpPg0KPC91bD4NCg0KPGgzPlRyb3VibGVzaG9vdGluZzwvaDM+DQo8b2w+PGxpPiBGaXJzdCBzdGVwIGlzIHRvIGNoZWNrIHlvdSYjMDM5O3JlIHJ1bm5pbmcgQ01TIDEuMSBvciBsYXRlci48L2xpPg0KPGxpPiBTZWNvbmQgc3RlcCBpcyB0byByZWFkIGFuZCB1bmRlcnN0YW5kIHRoZSBjYXZlYXQgYWJvdXQgV1lTSVdZRyBlZGl0b3JzIHVwIGluIHRoZQ0Kc2VjdGlvbiA8ZW0+QWRkaW5nIGEgRm9ybSB0byBhIFBhZ2U8L2VtPi48L2xpPg0KPGxpPiBJZiB5b3UmIzAzOTtyZSBtaXNzaW5nIGZpZWxkcyBpbiBhbiBlbWFpbCB0aGF0IGdldHMgZ2VuZXJhdGVkLCBjaGVjayB0aGUgZGlzcG9zaXRpb24gZmllbGQmIzAzOTtzIHRlbXBsYXRlLCBhbmQgbWFrZSBzdXJlIHlvdSYjMDM5O3JlIHNwZWNpZnlpbmcgdGhlIG1pc3NpbmcgZmllbGRzLiBTZWVtcyBvYnZpb3VzLCBidXQgaXQmIzAzOTtzIGFuIGVhc3kgbWlzdGFrZSB0byBtYWtlLjwvbGk+DQo8bGk+VW5jaGVjayB0aGUgJnF1b3Q7SGlkZSBFcnJvcnMmcXVvdDsgY2hlY2tib3ggaW4gdGhlIGdsb2JhbCBvcHRpb25zLCBhbmQgc2VlIHdoYXQgbWVzc2FnZSBnZXRzIGRpc3BsYXllZCB3aGVuIHlvdSBzdWJtaXQgeW91ciBmb3JtLjwvbGk+DQo8bGk+IEp1c3QgbWVzcyBhcm91bmQgYW5kIHRyeSBjbGlja2luZyBvbiBsaW5rcyBhbmQgaWNvbnMgYW5kIHN0dWZmLiBTZWUgd2hhdCBoYXBwZW5zLjwvbGk+DQo8bGk+IExhc3QgcmVzcG9ydCBpcyB0byBlbWFpbCBtZSBvciBjYXRjaCBtZSBvbiBJUkMgYW5kIHdlIGNhbiBnbyBmcm9tIHRoZXJlLjwvbGk+DQo8L29sPiANCjxwPlRoaXMgaXMgbm8gbG9uZ2VyIGEgcGFydGljdWxhcmx5IGVhcmx5IHZlcnNpb24sIGJ1dCBpdCBpcyBwcm9iYWJseSBzdGlsbCBidWdneS4gV2hpbGUgSSYjMDM5O3ZlIGRvbmUgYWxsIEkgY2FuDQp0byBtYWtlIHN1cmUgbm8gZWdyZWdpb3VzIGJ1Z3MgaGF2ZSBjcmVwdCBpbiwgSSBoYXZlIHRvIGFkbWl0IHRoYXQgZHVyaW5nIGVhcmx5IHRlc3RpbmcsIHRoaXMgcHJvZ3JhbQ0KcmV2ZWFsZWQgc2V2ZW4gY29ja3JvYWNoZXMsIHR3byBlYXJ3aWdzLCBhIHNtYWxsIGZhbWlseSBvZiBhcGhpZHMsIGFuZCBhIHdhbGtpbmctc3RpY2sgaW5zZWN0LiBJdCBhbHNvDQphdGUgdGhlIG5laWdoYm9yJiMwMzk7cyBuYXN0eSBsaXR0bGUgeWFwIGRvZywgZm9yIHdoaWNoIEkgd2FzIGluYXBwcm9wcmlhdGVseSBncmF0ZWZ1bC48L3A+DQo8cD5UaGUgZmluYWwgcmVsZWFzZSB3aWxsIGluY2x1ZGUgYnVnIGZpeGVzLCBkb2N1bWVudGF0aW9uLCBhbmQgdW5jb25kaXRpb25hbCBsb3ZlLjwvcD4NCjxoMz5TdXBwb3J0PC9oMz4NCjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4NCjx1bD4NCjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlLCBGQVFzLCBvciB0byBmaWxlIGEgQnVnIFJlcG9ydCwgcGxlYXNlIHZpc2l0IHRoZSBDTVMgTWFkZSBTaW1wbGUgIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmciPkRldmVsb3BlciBGb3JnZTwvYT4uPC9saT4NCjxsaT5UbyBvYnRhaW4gY29tbWVyY2lhbCBzdXBwb3J0LCBwbGVhc2Ugc2VuZCBhbiBlbWFpbCB0byB0aGUgYXV0aG9yIGF0IDxhIGhyZWY9Im1haWx0bzpzamdAY21zbW9kdWxlcy5jb20iPiZhbXA7bHQ7c2pnQGNtc21vZHVsZXMuY29tJmFtcDtndDs8L2E+LjwvbGk+DQo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LjwvbGk+DQo8bGk+VGhlIGF1dGhvciBjYW4gb2Z0ZW4gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9ImlyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2NtcyI+Q01TIElSQyBDaGFubmVsPC9hPi48L2xpPg0KPGxpPkxhc3RseSwgeW91IG1heSBoYXZlIHNvbWUgc3VjY2VzcyBlbWFpbGluZyB0aGUgYXV0aG9yIGRpcmVjdGx5IGFuZCBncm92ZWxsaW5nIGZvciBmcmVlIHN1cHBvcnQuPC9saT4NCjwvdWw+DQo8cD5LZWVwIGluIG1pbmQgdGhhdCB0aGUgYXV0aG9yIGhhcyBwdXQgaHVuZHJlZHMgb2YgaG91cnMgaW50byB0aGUgZGV2ZWxvcG1lbnQgb2YgdGhpcyBtb2R1bGUuIFBsZWFzZSB0YWtlIHRoZSB0aW1lIHRvIHJlYWQgdGhlIGRvY3VtZW50YXRpb24gYmVmb3JlIHNlbmRpbmcgcXVlc3Rpb25zLiBFaXRoZXIgdGhhdCwgb3Igd3JpdGUgeW91ciBxdWVzdGlvbnMgb24gZmluYW5jaWFsbHkgbmVnb3RpYWJsZSBpbnN0cnVtZW50cyAoaS5lLiwgY2FzaCkuPC9wPg0KPHA+QXMgcGVyIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgYXMtaXMuIFBsZWFzZSByZWFkIHRoZSB0ZXh0DQpvZiB0aGUgbGljZW5zZSBmb3IgdGhlIGZ1bGwgZGlzY2xhaW1lci48L3A+DQo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4NCjxwPkNvcHlyaWdodCAmYW1wO2NvcHk7IDIwMDgsIFNhbXVlbCBHb2xkc3RlaW4gPGEgaHJlZj0ibWFpbHRvOnNqZ0BjbXNtb2R1bGVzLmNvbSI+JmFtcDtsdDtzamdAY21zbW9kdWxlcy5jb20mYW1wO2d0OzwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4NCjxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+JzsKJGxhbmdbJ2NoYW5nZWxvZyddID0gJzx1bD4NCjxsaT5WZXJzaW9uIDAuNS4zLiAyNiBNYXkgMDguIEJ1Z2ZpeGVzIHRvIHByZXZpb3VzIHNldCBvZiBidWdmaXhlcy4gTm93IHJlYWR5IGZvciBtYWpvciB1cGdyYWRlcyBmb3IgMC42LjwvbGk+DQo8bGk+VmVyc2lvbiAwLjUuMi4gMjUgTWF5IDA4LiBCdWdmaXhlcy4gUmVsZWFzZSBpbiBwcmVwYXJhdGlvbiBmb3Igc3Vic3RhbnRpYWwgcmV3b3JraW5nIGZvciAwLjY8L2xpPg0KPGxpPlZlcnNpb24gMC41LjEuIDMwIEFwcmlsIDA4LiBCdWdmaXhlcywgcmV3cm90ZSBzb21lIG9mIHRoZSBGaWxlIFVwbG9hZCBjb2RlIHRvIHByZXZlbnQgd2hpdGUgc2NyZWVuIG9mIGFubm95YW5jZS48L2xpPg0KPGxpPlZlcnNpb24gMC41LiAxOSBBcHJpbCAwOC4gQnVnZml4ZXMsIHN1cHBvcnQgZm9yIEZvcm1Ccm93c2VyIGZpeGVzIGFuZCBmZWF0dXJlcywgZGlzcG9zaXRpb24gdHlwZSBmb3IgdXBjb21pbmcgRm9ybUJyb3dzZXIgdmVyc2lvbi48L2xpPg0KPGxpPlZlcnNpb24gMC40LjQuIDI2IFNlcHQgMDcuIEJ1Z2ZpeGVzIGZvciByYWRpbyBidXR0b24gZ3JvdXBzLCBmaXggZm9yIHZhbGlkYXRpb24gb2YgRGlzcG9zaXRpb25EZWxpdmVyVG9FbWFpbEFkZHJlc3NGaWVsZC48L2xpPg0KPGxpPlZlcnNpb24gMC40LjMuIDE4IFNlcHQgMDcuIEJ1Z2ZpeGVzIGZvciBwdWxsZG93bnMgdXNpbmcgbnVtYmVycywgb3B0aW9uIHRvIGlubGluZSBmb3JtLCBmaXhlcyBmb3IgdGFibGUtbGF5b3V0cyBwcm92aWRlZCBieSBBcCBNdXRodSwgZml4IGZvciByZXF1aXJhYmlsaXR5IG9mIERpc3Bvc2l0aW9ucy48L2xpPg0KPGxpPlZlcnNpb24gMC40LjIuIDE0IFNlcHQgMDcuIEJ1Z2ZpeGVzIGZvciBYTUwgZXhwb3J0LCBSYWRpb0J1dHRvbiBHcm91cCBzdWJtaXNzaW9uLCBhbmQgSFRNTCBsYWJlbHMuPC9saT4NCjxsaT5WZXJzaW9uIDAuNC4xLiBCdWdmaXhlcyBmb3IgRmlsZSBEaXNwb3NpdGlvbiBUeXBlcy48L2xpPg0KPGxpPlZlcnNpb24gMC40DQoJPHVsPg0KCQk8bGk+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+DQo8L3VsPg0KJzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuMjM1OTE0NTQ5Nzg3ODY3NjUwMC4xMjEzMjAwMjc4LjEyMTkwNTg2NTkuMTIxOTA2Mjc0MS44OCc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEyMTkwNTg2NTkuODcuMTYudXRtY2NuPShyZWZlcnJhbCl8dXRtY3NyPWRldi5jbXNtYWRlc2ltcGxlLm9yZ3x1dG1jY3Q9L3x1dG1jbWQ9cmVmZXJyYWwnOwokbGFuZ1sndXRtYyddID0gJzE1Njg2MTM1Myc7CiRsYW5nWyd1dG1iJ10gPSAnMTU2ODYxMzUzJzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/pt_PT.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0Zvcm0gQnVpbGRlcic7CiRsYW5nWydmaWVsZF90eXBlXyddID0gJ0ZpZWxkIFR5cGUgTm90IFNldCc7CiRsYW5nWydmaWVsZF90eXBlX0ZpZWxkc2V0RW5kJ10gPSAnLUZpZWxkc2V0IEVuZCc7CiRsYW5nWydmaWVsZF90eXBlX0ZpZWxkc2V0U3RhcnQnXSA9ICctRmllbGRzZXQgU3RhcnQnOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0RmllbGQnXSA9ICdUZXh0IElucHV0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkRXhwYW5kYWJsZSddID0gJ1RleHQgSW5wdXQgKE11bHRpcGxlKSc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRBcmVhRmllbGQnXSA9ICdUZXh0IEFyZWEnOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEZpZWxkJ10gPSAnQ2hlY2sgQm94JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hHcm91cEZpZWxkJ10gPSAnQ2hlY2sgQm94IEdyb3VwJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUHVsbGRvd25GaWVsZCddID0gJ1B1bGxkb3duJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTXVsdGlzZWxlY3RGaWVsZCddID0gJ011bHRpc2VsZWN0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3RhdGVQaWNrZXJGaWVsZCddID0gJ1UuUy4gU3RhdGUgUGlja2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUHJvdmluY2VQaWNrZXJGaWVsZCddID0gJ0NhbmFkaWFuIFByb3ZpbmNlIFBpY2tlcic7CiRsYW5nWydmaWVsZF90eXBlX0NvdW50cnlQaWNrZXJGaWVsZCddID0gJ0NvdW50cnkgUGlja2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGF0ZVBpY2tlckZpZWxkJ10gPSAnRGF0ZSBQaWNrZXInOwokbGFuZ1snZmllbGRfdHlwZV9UaW1lUGlja2VyRmllbGQnXSA9ICdUaW1lIFBpY2tlcic7CiRsYW5nWydmaWVsZF90eXBlX1JhZGlvR3JvdXBGaWVsZCddID0gJ1JhZGlvIEJ1dHRvbiBHcm91cCc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGlyZWN0b3InXSA9ICcqRW1haWwgUmVzdWx0cyBCYXNlZCBvbiBQdWxsZG93bic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRmlsZURpcmVjdG9yJ10gPSAnKlNhdmUgUmVzdWx0cyB0byBGaWxlIEJhc2VkIG9uIFB1bGxkb3duJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25NdWx0aXNlbGVjdEZpbGVEaXJlY3RvciddID0gJypTYXZlIFJlc3VsdHMgdG8gRmlsZShzKSBCYXNlZCBvbiBNdWx0aXBsZSBTZWxlY3Rpb25zJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25QYWdlUmVkaXJlY3RvciddID0gJypSZWRpcmVjdCB0byBQYWdlIEJhc2VkIG9uIFB1bGxkb3duJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbCddID0gJypFbWFpbCBSZXN1bHRzIHRvIHNldCBBZGRyZXNzKGVzKSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxDb25maXJtYXRpb24nXSA9ICcqVmFsaWRhdGUtdmlhLUVtYWlsIEFkZHJlc3MnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZpbGUnXSA9ICcqV3JpdGUgUmVzdWx0cyB0byBGbGF0IEZpbGUnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRhdGFiYXNlJ10gPSAnKlN0b3JlIFJlc3VsdHMgaW4gRGF0YWJhc2UnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZvcm1Ccm93c2VyJ10gPSAnKlN0b3JlIFJlc3VsdHMgZm9yIEZvcm1Ccm93c2VyIE1vZHVsZSB2LjMnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvblVzZXJUYWcnXSA9ICcqQ2FsbCBBIFVzZXIgRGVmaW5lZCBUYWcgV2l0aCB0aGUgRm9ybSBSZXN1bHRzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EZWxpdmVyVG9FbWFpbEFkZHJlc3NGaWVsZCddID0gJypFbWFpbCB0byBVc2VyLVN1cHBsaWVkIEVtYWlsIEFkZHJlc3MnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsU2l0ZUFkbWluJ10gPSAnKkVtYWlsIHRvIENNUyBBZG1pbiBVc2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUGFnZUJyZWFrRmllbGQnXSA9ICctUGFnZSBCcmVhayc7CiRsYW5nWydmaWVsZF90eXBlX0ZpbGVVcGxvYWRGaWVsZCddID0gJ0ZpbGUgVXBsb2FkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsQWRkcmVzc0ZpZWxkJ10gPSAnRW1haWwgJnF1b3Q7RnJvbSBBZGRyZXNzJnF1b3Q7IEZpZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsTmFtZUZpZWxkJ10gPSAnRW1haWwgJnF1b3Q7RnJvbSBOYW1lJnF1b3Q7IEZpZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsU3ViamVjdEZpZWxkJ10gPSAnRW1haWwgJnF1b3Q7U3ViamVjdCZxdW90OyBGaWVsZCc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRpY1RleHRGaWVsZCddID0gJy1TdGF0aWMgVGV4dCc7CiRsYW5nWydmaWVsZF90eXBlX1N5c3RlbUxpbmtGaWVsZCddID0gJy1TdGF0aWMgTGluayc7CiRsYW5nWydmaWVsZF90eXBlX0xpbmtGaWVsZCddID0gJ0xpbmsgKFVzZXItZW50ZXJlZCknOwokbGFuZ1snZmllbGRfdHlwZV9IaWRkZW5GaWVsZCddID0gJy1IaWRkZW4gRmllbGQnOwokbGFuZ1snZmllbGRfdHlwZV9Db21wdXRlZEZpZWxkJ10gPSAnLUNvbXB1dGVkIEZpZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVW5pcXVlSW50ZWdlckZpZWxkJ10gPSAnLVVuaXF1ZSBJbnRlZ2VyIChTZXJpYWwpJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbm9uZSddID0gJ05vIFZhbGlkYXRpb24nOwokbGFuZ1sndmFsaWRhdGlvbl9udW1lcmljJ10gPSAnTnVtZXJpYyc7CiRsYW5nWyd2YWxpZGF0aW9uX2ludGVnZXInXSA9ICdJbnRlZ2VyJzsKJGxhbmdbJ3ZhbGlkYXRpb25fZW1haWxfYWRkcmVzcyddID0gJ0VtYWlsIEFkZHJlc3MnOwokbGFuZ1sndmFsaWRhdGlvbl91c3Bob25lJ10gPSAnUGhvbmUgTnVtYmVyIChVUyknOwokbGFuZ1sndmFsaWRhdGlvbl9tdXN0X2NoZWNrJ10gPSAnTXVzdCBCZSBDaGVja2VkJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbWF0Y2gnXSA9ICdNYXRjaCBSZWd1bGFyIEV4cHJlc3Npb24nOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9ub21hdGNoJ10gPSAnRG9lc24mIzAzOTt0IG1hdGNoIFJlZ3VsYXIgRXhwcmVzc2lvbic7CiRsYW5nWydyZXF1aXJlZF9maWVsZF9taXNzaW5nJ10gPSAnQSB2YWx1ZSB3YXMgbm90IHN1cHBsaWVkIGZvciBhIHJlcXVpcmVkIGZpZWxkJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX3ZhbHVlJ10gPSAnRGlnaXRlIHVtIHZhbG9yIHBhcmEgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfbnVtYmVyJ10gPSAnRGlnaXRlIHVtIG51bWVybyBwYXJhICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl92YWxpZCddID0gJ0RpZ2l0ZSB1bWEgZW50cmFkYSB2JmFhY3V0ZTtsaWRhIHBhcmEgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FuX2ludGVnZXInXSA9ICdQbGVhc2UgZW50ZXIgYW4gaW50ZWdlciB2YWx1ZSBmb3IgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FuX2VtYWlsJ10gPSAnRGlnaXRlIHVtIEUtbWFpbCB2JmFhY3V0ZTtsaWRvIHBhcmEgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfcGhvbmUnXSA9ICdEaWdpdGUgdW0gTnVtZXJvIGRlIFRlbGVmb25lIHYmYWFjdXRlO2xpZG8gcGFyYSAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydub3RfdmFsaWRfZW1haWwnXSA9ICcmcXVvdDslcyZxdW90OyBuJmF0aWxkZTtvIHBhcmVjZSBzZXIgdW0gRS1tYWlsIHYmYWFjdXRlO2xpZG8hJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9ub19sb25nZXInXSA9ICdEaWdpdGUgdW0gdmFsb3IgcXVlIG4mYXRpbGRlO28gc2VqYSBtYWlzIGRvIHF1ZSAlcyBjYXJhY3RlcmVzJzsKJGxhbmdbJ3RpdGxlX2xpc3RfZGVsaW1pdGVyJ10gPSAnQ2hhcmFjdGVyIHRvIHVzZSBhcyBkZWxpbWl0ZXIgaW4gcmVzdWx0cyB0aGF0IHJldHVybiBtb3JlIHRoYW4gb25lIHZhbHVlJzsKJGxhbmdbJ3lvdV9uZWVkX3Blcm1pc3Npb24nXSA9ICdZb3UgbmVlZCB0aGUgJnF1b3Q7JXMmcXVvdDsgcGVybWlzc2lvbiB0byBwZXJmb3JtIHRoYXQgb3BlcmF0aW9uLic7CiRsYW5nWydsYWNrcGVybWlzc2lvbiddID0gJ1NvcnJ5ISBZb3UgZG9uJiMwMzk7dCBoYXZlIGFkZXF1YXRlIHByaXZpbGVnZXMgdG8gYWNjZXNzIHRoaXMgc2VjdGlvbi4nOwokbGFuZ1snZmllbGRfb3JkZXJfdXBkYXRlZCddID0gJ0ZpZWxkIG9yZGVyIHVwZGF0ZWQuJzsKJGxhbmdbJ2Zvcm1fZGVsZXRlZCddID0gJ0Zvcm0gZGVsZXRlZC4nOwokbGFuZ1snZmllbGRfZGVsZXRlZCddID0gJ0ZpZWxkIGRlbGV0ZWQuJzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb25fdXBkYXRlZCddID0gJ0NvbmZpZ3VyYXRpb24gVXBkYXRlZC4nOwokbGFuZ1sneW91X211c3RfY2hlY2snXSA9ICdZb3UgbXVzdCBjaGVjayAmcXVvdDslcyZxdW90OyBpbiBvcmRlciB0byBjb250aW51ZS4nOwokbGFuZ1snbXVzdF9zcGVjaWZ5X29uZV9kZXN0aW5hdGlvbiddID0gJ1lvdSBuZWVkIHRvIHNwZWNpZnkgYXQgbGVhc3Qgb25lIGRlc3RpbmF0aW9uIGFkZHJlc3MhJzsKJGxhbmdbJ2FyZV95b3Vfc3VyZV9kZWxldGVfZm9ybSddID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgdGhlIGZvcm0gJXM/JzsKJGxhbmdbJ2FyZV95b3Vfc3VyZV9kZWxldGVfZmllbGQnXSA9ICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoZSBmaWVsZCAlcz8nOwokbGFuZ1snbm90aWNlX3NlbGVjdF90eXBlJ10gPSAnQWR2YW5jZWQgb3B0aW9ucyBhcmUgbm90IGF2YWlsYWJsZSB1bnRpbCB0aGUgZmllbGQgdHlwZSBoYXMgYmVlbiBzZXQuJzsKJGxhbmdbJ2ZpZWxkX25hbWVfaW5fdXNlJ10gPSAnVGhlIGZpZWxkIG5hbWUgJnF1b3Q7JXMmcXVvdDsgaXMgYWxyZWFkeSBpbiB1c2UuIFBsZWFzZSB1c2UgdW5pcXVlIGZpZWxkIG5hbWVzLCBvciBkaXNhYmxlIHVuaXF1ZSBmaWVsZCBuYW1lcyBpbiB0aGUgRm9ybSBCdWlsZGVyIGNvbmZpZ3VyYXRpb24uJzsKJGxhbmdbJ2ZpZWxkX25vX25hbWUnXSA9ICdGaWVsZHMgbXVzdCBiZSBuYW1lZCwgdW5sZXNzIHlvdSBkaXNhYmxlIHRoaXMgaW4gdGhlIEZvcm0gQnVpbGRlciBjb25maWd1cmF0aW9uLic7CiRsYW5nWydhbm9ueW1vdXMnXSA9ICdBbm9ueW1vdXMnOwokbGFuZ1snYWJicmV2aWF0aW9uX2xlbmd0aCddID0gJ0xlbjogJXMnOwokbGFuZ1snYm94ZXMnXSA9ICclcyBib3hlcyc7CiRsYW5nWydvcHRpb25zJ10gPSAnJXMgb3B0aW9ucyc7CiRsYW5nWyd0ZXh0X2xlbmd0aCddID0gJyVzIGNoYXJzLic7CiRsYW5nWydvcmRlciddID0gJ09yZGVyJzsKJGxhbmdbJ3Vuc3BlY2lmaWVkJ10gPSAnW3Vuc3BlY2lmaWVkXSc7CiRsYW5nWydhZGRlZCddID0gJ2FkZGVkJzsKJGxhbmdbJ3VwZGF0ZWQnXSA9ICd1cGRhdGVkJzsKJGxhbmdbJ3NvcnRfb3B0aW9ucyddID0gJ1NvcnQgb3B0aW9ucyBvbiBvdXRwdXQnOwokbGFuZ1snc2VsZWN0X29uZSddID0gJ1NlbGVjdCBPbmUnOwokbGFuZ1snc2VsZWN0X3R5cGUnXSA9ICdTZWxlY3QgVHlwZSc7CiRsYW5nWyd0byddID0gJ1RvJzsKJGxhbmdbJ3llcyddID0gJ1llcyc7CiRsYW5nWydubyddID0gJ05vJzsKJGxhbmdbJ3JlY2lwaWVudHMnXSA9ICdyZWNpcGllbnRzJzsKJGxhbmdbJ2ZpbGVfY291bnQnXSA9ICclcyBwb3NzaWJsZSBmaWxlcyc7CiRsYW5nWydkZXN0aW5hdGlvbl9jb3VudCddID0gJyVzIGRlc3RpbmF0aW9ucyc7CiRsYW5nWydzYXZlJ10gPSAnU2F2ZSc7CiRsYW5nWydhZGQnXSA9ICdBZGQnOwokbGFuZ1sndXBkYXRlJ10gPSAnVXBkYXRlJzsKJGxhbmdbJ3NhdmVfYW5kX2NvbnRpbnVlJ10gPSAnU2F2ZSBhbmQgQ29udGludWUgRWRpdGluZyc7CiRsYW5nWydpbmZvcm1hdGlvbiddID0gJ0luZm9ybWF0aW9uJzsKJGxhbmdbJ2F1dG9tYXRpYyddID0gJ0F1dG9tYXRpYyc7CiRsYW5nWydmb3JtcyddID0gJ0Zvcm1zJzsKJGxhbmdbJ2Zvcm0nXSA9ICdGb3JtICVzJzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb24nXSA9ICdDb25maWd1cmF0aW9uJzsKJGxhbmdbJ2ZpZWxkX3JlcXVpcmVtZW50X3VwZGF0ZWQnXSA9ICdGaWVsZCByZXF1aXJlZCBzdGF0ZSB1cGRhdGVkLic7CiRsYW5nWydtYXhpbXVtX3NpemUnXSA9ICdNYXguIFNpemUnOwokbGFuZ1sncGVybWl0dGVkX2V4dGVuc2lvbnMnXSA9ICdFeHRlbnNpb25zJzsKJGxhbmdbJ3Blcm1pdHRlZF9maWxldHlwZXMnXSA9ICdBbGxvd2VkIGZpbGUgdHlwZXMnOwokbGFuZ1snZmlsZV90b29fbGFyZ2UnXSA9ICdVcGxvYWRlZCBmaWxlIGlzIHRvbyBsYXJnZSEgTWF4aW11bSBzaXplIGlzOic7CiRsYW5nWydpbGxlZ2FsX2ZpbGVfdHlwZSddID0gJ1RoaXMgdHlwZSBvZiBmaWxlIG1heSBub3QgYmUgdXBsb2FkZWQuIFBsZWFzZSBjaGVjayB0aGF0IHRoZSBleHRlbnNpb24gaXMgY29ycmVjdC4nOwokbGFuZ1sndXBsb2FkJ10gPSAnVXBsb2FkJzsKJGxhbmdbJ2Zvcm1faW1wb3J0ZWQnXSA9ICdGb3JtIEltcG9ydGVkLic7CiRsYW5nWydmb3JtX2ltcG9ydF9mYWlsZWQnXSA9ICdGb3JtIGltcG9ydCBmYWlsZWQhIFRoZXJlIHdhcyBhIHByb2JsZW0gd2l0aCB0aGUgZm9ybWF0IG9mIHRoZSBYTUwgZmlsZS4nOwokbGFuZ1sncm93cyddID0gJyVzIHJvd3MnOwokbGFuZ1snY29scyddID0gJyVzIGNvbHMnOwokbGFuZ1snMTJfaG91ciddID0gJzEyIEhvdXIgQ2xvY2snOwokbGFuZ1snMjRfaG91ciddID0gJzI0IEhvdXIgQ2xvY2snOwokbGFuZ1snaG91ciddID0gJ0hvdXInOwokbGFuZ1snbWluJ10gPSAnTWludXRlJzsKJGxhbmdbJ21lcmlkJ10gPSAnTWVyaWRpYW4nOwokbGFuZ1snZGF0ZV9yYW5nZSddID0gJ1JhbmdlOiAlcyAtICVzJzsKJGxhbmdbJ3RoYW5rcyddID0gJ1RoYW5rcyEgWW91ciBzdWJtaXNzaW9ucyBoYXZlIGJlZW4gcmVjZWl2ZWQuJzsKJGxhbmdbJ2VkaXQnXSA9ICdFZGl0JzsKJGxhbmdbJ2RlbGV0ZSddID0gJ0RlbGV0ZSc7CiRsYW5nWydkYXknXSA9ICdEYXknOwokbGFuZ1snbW9uJ10gPSAnTW9udGgnOwokbGFuZ1sneWVhciddID0gJ1llYXInOwokbGFuZ1snbm9uZSddID0gJyhub25lKSc7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHVsZSB1bmluc3RhbGxlZC4nOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnTW9kdWxlIHZlcnNpb24gJXMgaW5zdGFsbGVkLic7CiRsYW5nWyd1cGdyYWRlZCddID0gJ01vZHVsZSB1cGdyYWRlZCB0byB2ZXJzaW9uICVzLic7CiRsYW5nWydidXR0b25fcHJldmlvdXMnXSA9ICdCYWNrLi4uJzsKJGxhbmdbJ2J1dHRvbl9zdWJtaXQnXSA9ICdTdWJtaXQgRm9ybSc7CiRsYW5nWydidXR0b25fY29udGludWUnXSA9ICdDb250aW51ZS4uLic7CiRsYW5nWyd2YWx1ZV9jaGVja2VkJ10gPSAnQ2hlY2tlZCc7CiRsYW5nWyd2YWx1ZV91bmNoZWNrZWQnXSA9ICdVbmNoZWNrZWQnOwokbGFuZ1sndGFiX21haW4nXSA9ICdNYWluJzsKJGxhbmdbJ3RhYl9zeW1ib2wnXSA9ICdGb3JtIERpc3BsYXkgU2V0dGluZ3MnOwokbGFuZ1sndGFiX3N1Ym1pdCddID0gJ0Zvcm0gU3VibWlzc2lvbic7CiRsYW5nWyd0YWJfY2FwdGNoYSddID0gJ0NhcHRjaGEgU2V0dGluZ3MnOwokbGFuZ1sndGFiX2FkdmFuY2VkJ10gPSAnQWR2YW5jZWQgU2V0dGluZ3MnOwokbGFuZ1sndGFiX3RlbXBsYXRlbGF5b3V0J10gPSAnRm9ybSBUZW1wbGF0ZSc7CiRsYW5nWyd0YWJfc3VibWlzc2lvbnRlbXBsYXRlJ10gPSAnU3VibWlzc2lvbiBUZW1wbGF0ZSc7CiRsYW5nWydjYW51c2Vfc21hcnR5J10gPSAnPGVtPlNtYXJ0eSB2YXJpYWJsZXMgYXJlIHZhbGlkIGluIHRoaXMgZmllbGQuPC9lbT4nOwokbGFuZ1snYWRkX29wdGlvbnMnXSA9ICdBZGQgTW9yZSBPcHRpb25zJzsKJGxhbmdbJ2RlbGV0ZV9vcHRpb25zJ10gPSAnRGVsZXRlIE1hcmtlZCBPcHRpb25zJzsKJGxhbmdbJ2FkZF9jaGVja2JveGVzJ10gPSAnQWRkIE1vcmUgQ2hlY2tib3hlcyc7CiRsYW5nWydkZWxldGVfY2hlY2tib3hlcyddID0gJ0RlbGV0ZSBNYXJrZWQgQ2hlY2tib3hlcyc7CiRsYW5nWydhZGRfYWRkcmVzcyddID0gJ0FkZCBBbm90aGVyIEFkZHJlc3MnOwokbGFuZ1snZGVsZXRlX2FkZHJlc3MnXSA9ICdEZWxldGUgTWFya2VkIEFkZHJlc3Nlcyc7CiRsYW5nWydhZGRfZGVzdGluYXRpb24nXSA9ICdBZGQgQW5vdGhlciBEZXN0aW5hdGlvbic7CiRsYW5nWydkZWxldGVfZGVzdGluYXRpb24nXSA9ICdEZWxldGUgTWFya2VkIERlc3RpbmF0aW9ucyc7CiRsYW5nWydzdXNwZWN0ZWRfc3BhbSddID0gJ1RvbyBtYW55IGVtYWlscyBnZW5lcmF0ZWQgZnJvbSB5b3VyIElQIGFkZHJlc3MuIEFudGktU3BhbSBjb2RlIGhhcyBwcmV2ZW50ZWQgZGVsaXZlcnkuJzsKJGxhbmdbJ3N1c3BlY3RlZF9zcGFtX2xvZyddID0gJ1N1c3BlY3RlZCBzcGFtIGZyb20gSVAgJXMgc3RvcHBlZC4nOwokbGFuZ1sncmVvcmRlciddID0gJ1Jlb3JkZXIgRmllbGRzJzsKJGxhbmdbJ2NhbmNlbCddID0gJ0NhbmNlbCc7CiRsYW5nWyd2YWx1ZV9zZXQnXSA9ICdWYWx1ZSBzZXQ6ICVzJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcGF0aCddID0gJ0Rlc3RpbmF0aW9uIERpcmVjdG9yeSBmb3Igb3V0cHV0IGZpbGVzJzsKJGxhbmdbJ3RpdGxlX3VkdF9uYW1lJ10gPSAnVXNlciBEZWZpbmVkIFRhZyc7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2Rlc3RwYWdlJ10gPSAnUGFnZSB0byByZXR1cm4gdG8gd2l0aCB1cGxvYWRzIGxpbmsnOwokbGFuZ1sndGl0bGVfdXBsb2FkbW9kdWxlX3N1bW1hcnknXSA9ICdTdWJtaXR0ZWQgd2l0aCBmb3JtYnVpbGRlcic7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2NhdGVnb3J5J10gPSAnVXBsb2FkcyBjYXRlZ29yeSc7CiRsYW5nWyd0aXRsZV9zZW5kdG9fdXBsb2FkcyddID0gJ1NlbmQgdGhpcyBmaWxlIHRvIHRoZSB1cGxvYWRzIG1vZHVsZSc7CiRsYW5nWyd0aXRsZV9sZWdlbmQnXSA9ICdMZWdlbmQnOwokbGFuZ1sndGl0bGVfbWF4aW11bV9sZW5ndGgnXSA9ICdNYXhpbXVtIExlbmd0aCc7CiRsYW5nWyd0aXRsZV9jaGVja2JveF9sYWJlbCddID0gJ0NoZWNrYm94IGxhYmVsJzsKJGxhbmdbJ3RpdGxlX3JhZGlvX2xhYmVsJ10gPSAnUmFkaW8gQnV0dG9uIGxhYmVsJzsKJGxhbmdbJ3RpdGxlX2NoZWNrZWRfdmFsdWUnXSA9ICdWYWx1ZSB3aGVuIGNoZWNrZWQnOwokbGFuZ1sndGl0bGVfdW5jaGVja2VkX3ZhbHVlJ10gPSAnVmFsdWUgd2hlbiBub3QgY2hlY2tlZC4nOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfZGV0YWlscyddID0gJ0NoZWNrYm94IEdyb3VwIERldGFpbHMnOwokbGFuZ1sndGl0bGVfZGVsZXRlJ10gPSAnRGVsZXRlPyc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rfb25lX21lc3NhZ2UnXSA9ICcmcXVvdDtTZWxlY3QgT25lJnF1b3Q7IFRleHQnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX3ZhbHVlJ10gPSAnU2VsZWN0aW9uIFZhbHVlJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl9kaXNwbGF5bmFtZSddID0gJ1NlbGVjdGlvbiBEaXNwbGF5IE5hbWUnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX3N1YmplY3QnXSA9ICdTZWxlY3Rpb24gU3ViamVjdCc7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9jb3VudHJ5J10gPSAnRGVmYXVsdCBTZWxlY3Rpb24nOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfc3RhdGUnXSA9ICdEZWZhdWx0IFNlbGVjdGlvbic7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9wcm92aW5jZSddID0gJ0RlZmF1bHQgU2VsZWN0aW9uJzsKJGxhbmdbJ3RpdGxlX29wdGlvbl9uYW1lJ10gPSAnT3B0aW9uIE5hbWUnOwokbGFuZ1sndGl0bGVfb3B0aW9uX3ZhbHVlJ10gPSAnVmFsdWUgU3VibWl0dGVkJzsKJGxhbmdbJ3RpdGxlX3B1bGxkb3duX2RldGFpbHMnXSA9ICdQdWxsZG93biBPcHRpb25zJzsKJGxhbmdbJ3RpdGxlX211bHRpc2VsZWN0X2RldGFpbHMnXSA9ICdNdWx0aXNlbGVjdCBPcHRpb25zJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2FkZHJlc3MnXSA9ICdEZXN0aW5hdGlvbiBFbWFpbCBBZGRyZXNzJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2ZpbGVuYW1lJ10gPSAnRGVzdGluYXRpb24gRmlsZSBOYW1lJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fbmFtZSddID0gJyZxdW90O0Zyb20gbmFtZSZxdW90OyBmb3IgZW1haWwnOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9lbWFpbF9yZWdleCddID0gJ1VzZSByZWxheGVkIGVtYWlsIHZhbGlkYXRpb24nOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9yZWdleF9sb25nJ10gPSAnVXNlIHJlbGF4ZWQgZW1haWwgYWRkcmVzcyB2YWxpZGF0aW9uIChlLmcuLCBhbGxvdyAmcXVvdDt4QHkmcXVvdDsgaW5zdGVhZCBvZiByZXF1aXJpbmcgJnF1b3Q7eEB5LnRsZCZxdW90OyknOwokbGFuZ1sndGl0bGVfZW1haWxfZnJvbV9hZGRyZXNzJ10gPSAnJnF1b3Q7RnJvbSBhZGRyZXNzJnF1b3Q7IGZvciBlbWFpbCc7CiRsYW5nWyd0aXRsZV9lbWFpbF9lbmNvZGluZyddID0gJ0VtYWlsIGNoYXJhY3RlciBzZXQgZW5jb2RpbmcnOwokbGFuZ1sndGl0bGVfZGlyZWN0b3JfZGV0YWlscyddID0gJ1B1bGxkb3duLWJhc2VkIEVtYWlsZXIgRGV0YWlscyc7CiRsYW5nWyd0aXRsZV9maWxlX25hbWUnXSA9ICdGaWxlIE5hbWUnOwokbGFuZ1sndGl0bGVfZW1haWxfc3ViamVjdCddID0gJ0VtYWlsIFN1YmplY3QgTGluZSc7CiRsYW5nWyd0aXRsZV9mb3JtX25hbWUnXSA9ICdGb3JtIE5hbWUnOwokbGFuZ1sndGl0bGVfZm9ybV9zdGF0dXMnXSA9ICdGb3JtIFN0YXR1cyc7CiRsYW5nWyd0aXRsZV9yZWFkeV9mb3JfZGVwbG95bWVudCddID0gJ1JlYWR5IGZvciBEZXBsb3ltZW50JzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTEnXSA9ICdOb3QgUmVhZHknOwokbGFuZ1sndGl0bGVfcmVkaXJlY3RfcGFnZSddID0gJ1BhZ2UgdG8gcmVkaXJlY3QgdG8gYWZ0ZXIgZm9ybSBzdWJtaXNzaW9uJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTInXSA9ICdQbGVhc2UgYWRkIGEgZmllbGQgdG8gdGhlIGZvcm0gc28gdGhhdCB0aGUgdXNlciYjMDM5O3MgaW5wdXQgZ2V0cyBoYW5kbGVkLiBZb3UgY2FuJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeV9saW5rJ10gPSAndXNlIHRoaXMgc2hvcnRjdXQnOwokbGFuZ1sndGl0bGVfZm9ybV9hbGlhcyddID0gJ0Zvcm0gQWxpYXMnOwokbGFuZ1sndGl0bGVfZm9ybV9maWVsZHMnXSA9ICdGb3JtIEZpZWxkcyc7CiRsYW5nWyd0aXRsZV9maWVsZF9pZCddID0gJ0ZpZWxkIElkJzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRhbGlhc2VzJ10gPSAnU2hvdyBGaWVsZCBBbGlhc2VzJzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRhbGlhc2VzX2xvbmcnXSA9ICdDbGlja2luZyB0aGlzIHdpbGwgZGlzcGxheSBmaWVsZCBhbGlhc2VzIHdoZW4gYWRkaW5nIG9yIGVkaXRpbmcgYSBmb3JtJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX25hbWUnXSA9ICdGaWVsZCBOYW1lJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2FsaWFzJ10gPSAnRmllbGQgQWxpYXMnOwokbGFuZ1sndGl0bGVfcmFkaW9ncm91cF9kZXRhaWxzJ10gPSAnUmFkaW8gQnV0dG9uIEdyb3VwIERldGFpbHMnOwokbGFuZ1sndGl0bGVfZmllbGRfdHlwZSddID0gJ0ZpZWxkIFR5cGUnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MyddID0gJ3RvIGNyZWF0ZSBhIGZvcm0gaGFuZGxpbmcgZmllbGQuJzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZm9ybSddID0gJ0FkZCBOZXcgRm9ybSc7CiRsYW5nWyd0aXRsZV9zaG93X3ZlcnNpb24nXSA9ICdTaG93IEZvcm0gQnVpbGRlciBWZXJzaW9uPyc7CiRsYW5nWyd0aXRsZV9zaG93X3ZlcnNpb25fbG9uZyddID0gJ1RoaXMgd2lsbCBlbWJlZCB5b3VyIGluc3RhbGxlZCB2ZXJzaW9uIG51bWJlciBvZiBGb3JtIEJ1aWxkZXIgbW9kdWxlIGluIGEgY29tbWVudCwgdG8gYWlkIGluIGRlYnVnZ2luZyc7CiRsYW5nWyd0aXRsZV9hZGRfbmV3X2ZpZWxkJ10gPSAnQWRkIE5ldyBGaWVsZCc7CiRsYW5nWyd0aXRsZV9mb3JtX3N1Ym1pdF9idXR0b24nXSA9ICdGb3JtIFN1Ym1pdCBCdXR0b24gVGV4dCc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eSddID0gJ0FkZCBKYXZhc2NyaXB0IHRvIGZpbmFsIFN1Ym1pdCBCdXR0b24gdGhhdCB3aWxsIGhlbHAgcHJldmVudCBtdWx0aXBsZSBzdWJtaXNzaW9ucz8nOwokbGFuZ1sndGl0bGVfc3VibWl0X2J1dHRvbl9zYWZldHlfaGVscCddID0gJ0FkZCBzYWZldHkgc2NyaXB0JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmV4dF9idXR0b24nXSA9ICdGb3JtICZxdW90O05leHQmcXVvdDsgQnV0dG9uIFRleHQgKHVzZWQgZm9yIG11bHRpcGFnZSBmb3JtcyknOwokbGFuZ1sndGl0bGVfZm9ybV9wcmV2X2J1dHRvbiddID0gJ0Zvcm0gJnF1b3Q7UHJldmlvdXMmcXVvdDsgQnV0dG9uIFRleHQgKHVzZWQgZm9yIG11bHRpcGFnZSBmb3JtcyknOwokbGFuZ1sndGl0bGVfZmllbGRfdmFsaWRhdGlvbiddID0gJ0ZpZWxkIFZhbGlkYXRpb24nOwokbGFuZ1sndGl0bGVfZm9ybV9jc3NfY2xhc3MnXSA9ICdDU1MgQ2xhc3MgZm9yIHRoaXMgZm9ybSc7CiRsYW5nWyd0aXRsZV9maWVsZF9jc3NfY2xhc3MnXSA9ICdDU1MgQ2xhc3MgZm9yIHRoaXMgZmllbGQnOwokbGFuZ1sndGl0bGVfZm9ybV9yZXF1aXJlZF9zeW1ib2wnXSA9ICdTeW1ib2wgdG8gbWFyayByZXF1aXJlZCBGaWVsZHMnOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWQnXSA9ICdSZXF1aXJlZCc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9sb25nJ10gPSAnUmVxdWlyZSBhIHJlc3BvbnNlIGZvciB0aGlzIEZpZWxkJzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWwnXSA9ICdIaWRlIExhYmVsJzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWxfbG9uZyddID0gJ0hpZGUgdGhpcyBmaWVsZCYjMDM5O3MgbmFtZSBvbiBGb3JtJzsKJGxhbmdbJ3RpdGxlX3RleHQnXSA9ICdTdGF0aWMgdGV4dCB0byBkaXNwbGF5JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlZ2V4J10gPSAnVmFsaWRhdGlvbiBSZWdleCc7CiRsYW5nWyd0aXRsZV9saW5lc190b19zaG93J10gPSAnTnVtYmVyIG9mIExpbmVzIHRvIGRpc3BsYXknOwokbGFuZ1snbm9fZGVmYXVsdCddID0gJ05vIERlZmF1bHQnOwokbGFuZ1sncmVkaXJlY3RfYWZ0ZXJfYXBwcm92YWwnXSA9ICdQYWdlIHRvIHJlZGlyZWN0IGFmdGVyIGFwcHJvdmFsJzsKJGxhbmdbJ3RpdGxlX3JlZ2V4X2hlbHAnXSA9ICdUaGlzIHJlZ3VsYXIgZXhwcmVzc2lvbiB3aWxsIG9ubHkgYmUgdXNlZCBpZiAmcXVvdDt2YWxpZGF0aW9uIHR5cGUmcXVvdDsgaXMgc2V0IHRvIGEgcmVnZXgtcmVsYXRlZCBvcHRpb24uIEluY2x1ZGUgYSBmdWxsIFBlcmwtc3R5bGUgcmVnZXgsIGluY2x1ZGluZyB0aGUgc3RhcnQvc3RvcCBzbGFzaGVzIGFuZCBmbGFncyAoZS5nLiwgJnF1b3Q7L2ltYWdlXC4oXGQrKS9pJnF1b3Q7KSc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9hYmJyZXYnXSA9ICdSZXEmIzAzOTtkJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzJ10gPSAnSGlkZSBFcnJvcnMnOwokbGFuZ1sndGl0bGVfZm9ybV9kaXNwbGF5dHlwZSddID0gJ0Zvcm0gRGlzcGxheSBUeXBlJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzX2xvbmcnXSA9ICdQcmV2ZW50IGRlYnVnIC8gZXJyb3IgbWVzc2FnZXMgZnJvbSBiZWluZyBzZWVuIGJ5IHVzZXJzLic7CiRsYW5nWyd0aXRsZV9lbWFpbF90ZW1wbGF0ZSddID0gJ0VtYWlsIFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZSddID0gJ01heGltdW0gdXBsb2FkIGZpbGUgc2l6ZSAoa2lsb2J5dGVzKSc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX3NpemVfbG9uZyddID0gJ1RoaXMgbGltaXRhdGlvbiBpcyBpbiBhZGRpdGlvbiB0byBhbnkgbGltaXRzIHNldCBieSB0aGUgcGhwIG9yIHdlYiBzZXJ2ZXIgY29uZmlndXJhdGlvbic7CiRsYW5nWyd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ1Blcm1pdHRlZCBFeHRlbnNpb25zJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zX2xvbmcnXSA9ICdFbnRlciBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0LCBleGNsdWRpbmcgdGhlIGRvdCAoZS5nLiwgJnF1b3Q7anBnLGdpZixqcGVnJnF1b3Q7KS4gU3BhY2VzIHdpbGwgYmUgaWdub3JlZC4gTGVhdmluZyB0aGlzIGJsYW5rIG1lYW5zIHRoZXJlIHdpbGwgYmUgbm8gcmVzdHJpY3Rpb25zLic7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zJ10gPSAnRGlzcGxheSByZXN0cmljdGlvbnM/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnNfbG9uZyddID0gJ0Rpc3BsYXkgYW55IHNpemUgYW5kIGV4dGVuc2lvbiByZXN0cmljdGlvbnMgd2l0aCB0aGUgdXBsb2FkIGZpZWxkPyc7CiRsYW5nWyd0aXRsZV9mb3JtX3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgdG8gdXNlIHRvIERpc3BsYXkgRm9ybSc7CiRsYW5nWyd0aXRsZV9wYWdlX3hfb2ZfeSddID0gJ1BhZ2UgJXMgb2YgJXMnOwokbGFuZ1sndGl0bGVfbm9fYWR2YW5jZWRfb3B0aW9ucyddID0gJ0ZpZWxkIGhhcyBubyBhZHZhbmNlZCBvcHRpb25zLic7CiRsYW5nWyd0aXRsZV9mb3JtX3Vuc3BlY2lmaWVkJ10gPSAnVGV4dCB0byByZXR1cm4gZm9yIHVuc3BlY2lmaWVkIGZpZWxkIHZhbHVlcyc7CiRsYW5nWyd0aXRsZV9lbmFibGVfZmFzdGFkZF9sb25nJ10gPSAnRW5hYmxlIGZhc3QgZmllbGQgYWRkaW5nIHB1bGxkb3duIGZvciBmb3Jtcz8nOwokbGFuZ1sndGl0bGVfZW5hYmxlX2Zhc3RhZGQnXSA9ICdFbmFibGUgZmFzdCBmaWVsZCBhZGQgcHVsbGRvd24/JzsKJGxhbmdbJ3RpdGxlX2Zhc3RhZGQnXSA9ICdGYXN0IGZpZWxkIGFkZGVyJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9hbnRpc3BhbV9sb25nJ10gPSAnQ2xpY2tpbmcgdGhpcyB3aWxsIG9ubHkgYWxsb3cgMTAgZW1haWxzIHRvIGJlIHRyaWdnZXJlZCBmcm9tIGEgZ2l2ZW4gSVAgYWRkcmVzcyAocGVyIGhvdXIpLic7CiRsYW5nWyd0aXRsZV9lbmFibGVfYW50aXNwYW0nXSA9ICdFbmFibGUgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcz8nOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGlkcyddID0gJ1Nob3cgRmllbGQgSURzJzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRpZHNfbG9uZyddID0gJ0NsaWNraW5nIHRoaXMgd2lsbCBhbGxvdyBkaXNwbGF5aW5nIGZpZWxkIGlkcyB3aGVuIGFkZGluZyBvciBlZGl0aW5nIGEgZm9ybSc7CiRsYW5nWyd0aXRsZV94bWxfdG9fdXBsb2FkJ10gPSAnVXBsb2FkIGZvcm0gZnJvbSBYTUwgZmlsZSc7CiRsYW5nWyd0aXRsZV94bWxfdXBsb2FkX2Zvcm1uYW1lJ10gPSAnVXNlIHRoaXMgZm9ybSBuYW1lJzsKJGxhbmdbJ3RpdGxlX2ltcG9ydF9sZWdlbmQnXSA9ICdYTUwgRm9ybSBJbXBvcnQnOwokbGFuZ1sndGl0bGVfeG1sX3VwbG9hZF9mb3JtYWxpYXMnXSA9ICdVc2UgdGhpcyBmb3JtIGFsaWFzJzsKJGxhbmdbJ3RpdGxlX2h0bWxfZW1haWwnXSA9ICdHZW5lcmF0ZSBIVE1MIGVtYWlsPyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZSddID0gJ0F1dG9tYXRpY2FsbHkgcG9wdWxhdGU/JzsKJGxhbmdbJ3RpdGxlX2xpbmtfYXV0b3BvcHVsYXRlX2hlbHAnXSA9ICdBdXRvbWF0aWNhbGx5IHBvcHVsYXRlIHdpdGggdGhlIFVSTCBvZiB0aGUgcGFnZSBjb250YWluaW5nIHRoZSBmb3JtPyAodGhpcyBvdmVycmlkZXMgc2l0ZSBwYWdlIGxpbmsgb3B0aW9uIGJlbG93KSc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2xpbmsnXSA9ICdEZWZhdWx0IGxpbmsgVVJMJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfbGlua190aXRsZSddID0gJ0RlZmF1bHQgbGluayB0ZXh0JzsKJGxhbmdbJ3RpdGxlX2xpbmtfdG9fc2l0ZXBhZ2UnXSA9ICdMaW5rIHRvIHNpdGUgcGFnZSc7CiRsYW5nWyd0aXRsZV9jYXB0Y2hhX25vdF9pbnN0YWxsZWQnXSA9ICdZb3UgY2FuIHVzZSA8YSBocmVmPSZxdW90O2h0dHA6Ly93d3cud2lraXBlZGlhLm9yZy93aWtpL0NhcHRjaGEmcXVvdDsgdGFyZ2V0PSZxdW90O19uZXcmcXVvdDs+JnF1b3Q7Q2FwdGNoYSZxdW90OzwvYT4gdG8gcHJvdGVjdCBmb3JtIHN1Ym1pc3Npb25zIGlmIHlvdSBpbnN0YWxsIHRoZSBDYXB0Y2hhIG1vZHVsZS4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIDxhIGhyZWY9JnF1b3Q7aHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9jYXB0Y2hhLyZxdW90Oz5jaGVjayB0aGUgQ2FwdGNoYSBwcm9qZWN0PC9hPi4nOwokbGFuZ1sndGl0bGVfdXNlX2NhcHRjaGEnXSA9ICdVc2UgQ2FwdGNoYSB0byBwcm90ZWN0IGZvcm0gc3VibWlzc2lvbnM/JzsKJGxhbmdbJ3RpdGxlX3VzZV9jYXB0Y2hhX2hlbHAnXSA9ICdDaGVjayBoZXJlIHRvIHByb3RlY3QgeW91ciBmb3JtIHdpdGggYSA8YSBocmVmPSZxdW90O2h0dHA6Ly93d3cud2lraXBlZGlhLm9yZy93aWtpL0NhcHRjaGEmcXVvdDsgdGFyZ2V0PSZxdW90O19uZXcmcXVvdDs+JnF1b3Q7Q2FwdGNoYSZxdW90OzwvYT4uJzsKJGxhbmdbJ3RpdGxlX3VzZXJfY2FwdGNoYSddID0gJ1BsZWFzZSBjb25maXJtIHRoYXQgeW91IGFyZSBub3QgYSBzY3JpcHQgYnkgZW50ZXJpbmcgdGhlIGxldHRlcnMgZnJvbSB0aGUgaW1hZ2UuJzsKJGxhbmdbJ3RpdGxlX3VzZXJfY2FwdGNoYV9lcnJvciddID0gJ0ZhaWxlZCB0ZXh0IGZvciBDYXB0Y2hhJzsKJGxhbmdbJ3dyb25nX2NhcHRjaGEnXSA9ICdDYXB0Y2hhIHdhcyBub3QgY29ycmVjdC4nOwokbGFuZ1sndGl0bGVfdGl0bGVfdXNlcl9jYXB0Y2hhJ10gPSAnSGVscCB0ZXh0IGZvciBDYXB0Y2hhJzsKJGxhbmdbJ3RpdGxlX2RvbnRfc3VibWl0X3VuY2hlY2tlZCddID0gJ0RvbiYjMDM5O3Qgc3VibWl0IHZhbHVlcyBmb3IgdW5jaGVja2VkIGJveGVzJzsKJGxhbmdbJ3RpdGxlX2RvbnRfc3VibWl0X3VuY2hlY2tlZF9oZWxwJ10gPSAnQ2hlY2sgdGhpcyBpZiB5b3Ugb25seSB3YW50IGNoZWNrZWQgYm94ZXMgdG8gcmV0dXJuIHZhbHVlcy4nOwokbGFuZ1snbGlua19sYWJlbCddID0gJ0xpbmsgTGFiZWwnOwokbGFuZ1snbGlua19kZXN0aW5hdGlvbiddID0gJ0xpbmsgRGVzdGluYXRpb24gVVJMJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfc2V0J10gPSAnQ2hlY2tlZCBieSBEZWZhdWx0Pyc7CiRsYW5nWyd0aXRsZV8yNF9ob3VyJ10gPSAnVXNlIDI0LWhvdXIgY2xvY2s/JzsKJGxhbmdbJ3RpdGxlX2JlZm9yZV9ub29uJ10gPSAnQU0nOwokbGFuZ1sndGl0bGVfYWZ0ZXJfbm9vbiddID0gJ1BNJzsKJGxhbmdbJ3RpdGxlX3NtYXJ0eV9ldmFsJ10gPSAnUHJvY2VzcyBzbWFydHkgdGFncyB3aXRoaW4gZmllbGQ/JzsKJGxhbmdbJ3RpdGxlX3RleHRhcmVhX3Jvd3MnXSA9ICdSb3dzIChub3RlOiB0aGlzIG1heSBiZSBvdmVycmlkZGVuIGJ5IENTUyknOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfY29scyddID0gJ0NvbHVtbnMgKG5vdGU6IHRoaXMgbWF5IGJlIG92ZXJyaWRkZW4gYnkgQ1NTKSc7CiRsYW5nWyd0aXRsZV9mb3JtX21haW4nXSA9ICdNYWluIEZvcm0gRGV0YWlscyc7CiRsYW5nWyd0aXRsZV9zaG93X3VzZXJuYW1lJ10gPSAnRGlzcGxheSBVc2VyJiMwMzk7cyBsb2dpbiBuYW1lPyc7CiRsYW5nWyd0aXRsZV9zaG93X3VzZXJmaXJzdG5hbWUnXSA9ICdEaXNwbGF5IFVzZXImIzAzOTtzIGZpcnN0IG5hbWU/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcmxhc3RuYW1lJ10gPSAnRGlzcGxheSBVc2VyJiMwMzk7cyBsYXN0IG5hbWU/JzsKJGxhbmdbJ3RpdGxlX3Jlc3RyaWN0X3RvX2dyb3VwJ10gPSAnUmVzdHJpY3QgdXNlciBsaXN0IHRvIHVzZXJzIGluIHNwZWNpZmllZCBncm91cCc7CiRsYW5nWydyZXN0cmljdGVkX3RvX2dyb3VwJ10gPSAnT25seSBpbiBncm91cCAlcyc7CiRsYW5nWyd0aXRsZV9zaG93X3RvX3VzZXInXSA9ICdEaXNwbGF5IHRvIHVzZXI/JzsKJGxhbmdbJ2hlbHBfbGVhdmVlbXB0eSddID0gJ1RoaXMgZmllbGQgbWF5IGJlIGxlZnQgZW1wdHknOwokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX3RlbXBsYXRlJ10gPSAnVmFyaWFibGVzIEZvciBUZW1wbGF0ZSc7CiRsYW5nWydoZWxwX3ZhcmlhYmxlc19mb3JfY29tcHV0YXRpb24nXSA9ICdWYXJpYWJsZXMgQXZhaWxhYmxlJzsKJGxhbmdbJ2hlbHBfcGhwX3ZhcmlhYmxlX25hbWUnXSA9ICdQSFAgdmFyaWFibGUnOwokbGFuZ1snaGVscF9zdWJtaXNzaW9uX2RhdGUnXSA9ICdEYXRlIG9mIFN1Ym1pc3Npb24nOwokbGFuZ1snaGVscF9zZXJ2ZXJfbmFtZSddID0gJ1lvdXIgc2VydmVyJzsKJGxhbmdbJ2hlbHBfc3ViX3NvdXJjZV9pcCddID0gJ0lQIGFkZHJlc3Mgb2YgcGVyc29uIHVzaW5nIGZvcm0nOwokbGFuZ1snaGVscF9zdWJfdXJsJ10gPSAnVVJMIG9mIHBhZ2UgY29udGFpbmluZyBmb3JtJzsKJGxhbmdbJ2hlbHBfZmJfdmVyc2lvbiddID0gJ0Zvcm1CdWlsZGVyIHZlcnNpb24nOwokbGFuZ1snaGVscF90YWInXSA9ICdUYWIgQ2hhcmFjdGVyJzsKJGxhbmdbJ2hlbHBfb3RoZXJfZmllbGRzJ10gPSAnQWx0ZXJuYXRlIGZpZWxkIG5hbWVzIGNhbiBiZSB1c2VkIGludGVyY2hhbmdlYWJseSAoZXNwZWNpYWxseSB1c2VmdWwgaWYgU21hcnR5IGlzIGNob2tpbmcgb24gY2hhcmFjdGVycyBvdXRzaWRlIG9mIEFTQ0lJIDMyLTEyNikuIDxiciAvPk90aGVyIGZpZWxkcyB3aWxsIGJlIGF2YWlsYWJsZSBhcyB5b3UgYWRkIHRoZW0gdG8gdGhlIGZvcm0uJzsKJGxhbmdbJ2hlbHBfYXJyYXlfZmllbGRzJ10gPSAnRmllbGRzIHRoYXQgaGF2ZSBtdWx0aXBsZSB2YWx1ZXMgbWF5IGFsc28gYmUgYWNjZXNzZWQgdmlhIHRoZSBzbWFydHkgdmFsdWUgb2YgJGZpZWxkbmFtZV9hcnJheSBvciAkZmxkXyNfYXJyYXkuJzsKJGxhbmdbJ2hlbHBfZGF0ZV9mb3JtYXQnXSA9ICdTZWUgPGEgaHJlZj0mcXVvdDtodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwJnF1b3Q7IHRhcmdldD1fTkVXPnRoZSBQSFAgTWFudWFsPC9hPiBmb3IgZm9ybWF0dGluZyBoZWxwLic7CiRsYW5nWydoZWxwX3ZhcmlhYmxlX25hbWUnXSA9ICdWYXJpYWJsZSc7CiRsYW5nWydoZWxwX2Zvcm1fZmllbGQnXSA9ICdGaWVsZCBSZXByZXNlbnRlZCc7CiRsYW5nWydsaW5rX2JhY2tfdG9fZm9ybSddID0gJyZsYXF1bzsgQmFjayB0byBGb3JtJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfdGVtcGxhdGUnXSA9ICdDcmVhdGUgU2FtcGxlIFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaHRtbF90ZW1wbGF0ZSddID0gJ0NyZWF0ZSBTYW1wbGUgSFRNTCBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2hlYWRlciddID0gJ0NyZWF0ZSBTYW1wbGUgSGVhZGVyJzsKJGxhbmdbJ2hlbHBfdGFiX3N5bWJvbCddID0gJ2EgdGFiIGNoYXJhY3Rlcic7CiRsYW5nWyd0aXRsZV9maWxlX3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgZm9yIG9uZSBsaW5lIG9mIG91dHB1dCBmaWxlJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfaGVhZGVyJ10gPSAnVGVtcGxhdGUgZm9yIHRoZSBoZWFkZXIgb2Ygb3V0cHV0IGZpbGUnOwokbGFuZ1sndGl0bGVfY29uZmlybWF0aW9uX3VybCddID0gJ1VSTCB0byBjbGljayBmb3IgZm9ybSBjb25maXJtYXRpb24nOwokbGFuZ1sndGl0bGVfdmFsdWUnXSA9ICdWYWx1ZSAoc2VlIEFkdmFuY2VkIFRhYiBpZiB5b3UgdXNlIFNtYXJ0eSB0YWdzKSc7CiRsYW5nWyd0aXRsZV9kYXRlX2Zvcm1hdCddID0gJ0RhdGUgRm9ybWF0IChzdGFuZGFyZCA8YSBocmVmPSZxdW90O2h0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24uZGF0ZS5waHAmcXVvdDs+UEhQIERhdGUgRm9ybWF0czwvYT4pJzsKJGxhbmdbJ3RpdGxlX3VzZV93eXNpd3lnJ10gPSAnVXNlIFdZU0lXWUcgZWRpdG9yIGZvciB0ZXh0IEFyZWEgKEFkbWluIHNpZGUgb25seSk/JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9hY3Rpb25zJ10gPSAnRm9ybSBTdWJtaXNzaW9uIEJlaGF2aW9yJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9sYWJlbHMnXSA9ICdTdWJtaXNzaW9uIEJ1dHRvbiBMYWJlbHMnOwokbGFuZ1sndGl0bGVfc29ydGFibGVfZmllbGQnXSA9ICdTb3J0YWJsZSBGaWVsZCAjJXMnOwokbGFuZ1sndGl0bGVfc3VibWl0X2hlbHAnXSA9ICdUaGlzIHBhZ2UgbGV0cyB5b3UgY3VzdG9taXplIEZvcm0gU3VibWlzc2lvbi4gSXQgZG9lc24mIzAzOTt0IGRldGVybWluZSB3aGF0IHRoZSBGb3JtIEJ1aWxkZXIgZG9lcyB3aXRoIHRoZSBzdWJtaXR0ZWQgZGF0YS4gWW91IGNhbiBzZXQgdGhhdCB1cCBieSBhZGRpbmcgJnF1b3Q7RGlzcG9zaXRpb24mcXVvdDsgZmllbGRzIHRvIHlvdXIgZm9ybS4nOwokbGFuZ1sndGl0bGVfc3RhcnRfeWVhciddID0gJ1llYXIgcmFuZ2Ugc3RhcnQnOwokbGFuZ1sndGl0bGVfZW5kX3llYXInXSA9ICdZZWFyIHJhbmdlIGVuZCc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3llYXInXSA9ICdEZWZhdWx0IFllYXInOwokbGFuZ1sndGl0bGVfZGVmYXVsdF95ZWFyX2hlbHAnXSA9ICcoU2V0IHRvIC0xIGZvciBkZWZhdWx0IHllYXIgdG8gYmUgdGhlIGN1cnJlbnQgeWVhciknOwokbGFuZ1sndGl0bGVfc3VibWl0X2FjdGlvbiddID0gJ0FmdGVyIGZvcm0gaXMgc3VibWl0dGVkJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9yZXNwb25zZSddID0gJ1Jlc3BvbnNlIHRvIGRpc3BsYXknOwokbGFuZ1snZGlzcGxheV90ZXh0J10gPSAnRGlzcGxheSAmcXVvdDtTdWJtaXNzaW9uIFRlbXBsYXRlJnF1b3Q7JzsKJGxhbmdbJ3JlZGlyZWN0X3RvX3BhZ2UnXSA9ICdSZWRpcmVjdCB0byBzaXRlIHBhZ2UnOwokbGFuZ1sndGl0bGVfc3VibWl0X3Jlc3BvbnNlX2hlbHAnXSA9ICdUaGlzIHRlbXBsYXRlIGlzIGZvciBkaXNwbGF5IHRvIHRoZSB1c2VyIGFmdGVyIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZC4gVGhpcyB0ZW1wbGF0ZSBkb2VzIG5vdCBlZmZlY3QgZW1haWxzIGdlbmVyYXRlZCBvciBvdGhlciBmb3JtIGRpc3Bvc2l0aW9ucyAtLSB5b3Ugc2V0IHRob3NlIHRlbXBsYXRlcyAod2hlcmUgYXBwcm9wcmlhdGUpIGluIHRoZSAmcXVvdDthZHZhbmNlZCZxdW90OyB0YWIgZm9yIHRob3NlIGRpc3Bvc2l0aW9uIGZpZWxkcy4nOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fcGFnZSddID0gJ0Rlc3RpbmF0aW9uIFBhZ2UnOwokbGFuZ1sndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzJ10gPSAnUmVxdWlyZSBGaWVsZG5hbWVzJzsKJGxhbmdbJ3RpdGxlX3JlcXVpcmVfZmllbGRuYW1lc19sb25nJ10gPSAnUmVxdWlyZSBmaWVsZHMgdG8gaGF2ZSBhIG5hbWU/JzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWVsZG5hbWVzJ10gPSAnUmVxdWlyZSBVbmlxdWUgRmllbGRuYW1lcyc7CiRsYW5nWyd0aXRsZV91bmlxdWVfZmllbGRuYW1lc19sb25nJ10gPSAnUmVxdWlyZSBmaWVsZHMgdG8gaGF2ZSB1bmlxdWUgbmFtZXM/JzsKJGxhbmdbJ3RpdGxlX3Jlb3JkZXJfZm9ybSddID0gJ1Jlb3JkZXIgRmllbGRzJzsKJGxhbmdbJ3RpdGxlX2xvYWRfdGVtcGxhdGUnXSA9ICdMb2FkIHRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2FkZF9idXR0b25fdGV4dCddID0gJ0FkZCBCdXR0b24gdGV4dCc7CiRsYW5nWyd0aXRsZV9kZWxfYnV0dG9uX3RleHQnXSA9ICdEZWxldGUgQnV0dG9uIHRleHQnOwokbGFuZ1sndGl0bGVfc3RyaW5nX29yX251bWJlcl9ldmFsJ10gPSAnSW50ZXJwcmV0IHZhcmlhYmxlcyBhcyBiZWluZyBudW1iZXJzIG9yIHN0cmluZ3MnOwokbGFuZ1sndGl0bGVfb3JkZXInXSA9ICdJbnRlcnByZXRhdGlvbiBPcmRlcic7CiRsYW5nWyd0aXRsZV9vcmRlcl9oZWxwJ10gPSAnSWYgbW9yZSB0aGFuIG9uZSBDb21wdXRlZCBGaWVsZCBleGlzdHMsIHRoZXkgd2lsbCBiZSBjb21wdXRlZCBmcm9tIGxvd2VzdCBvcmRlciBudW1iZXIgdG8gaGlnaGVzdCBvcmRlciBudW1iZXInOwokbGFuZ1sndGl0bGVfY29tcHV0ZV92YWx1ZSddID0gJ1ZhbHVlIHRvIGNvbXB1dGUnOwokbGFuZ1sndGl0bGVfc3RyaW5nJ10gPSAnU3RyaW5nJzsKJGxhbmdbJ3RpdGxlX251bWVyaWMnXSA9ICdOdW1lcmljJzsKJGxhbmdbJ3RpdGxlX2lubGluZV9mb3JtJ10gPSAnRGlzcGxheSBmb3JtIGlubGluZT8nOwokbGFuZ1sndGl0bGVfaW5saW5lX2Zvcm1faGVscCddID0gJ0lubGluZSBtZWFucyBhbnkgZm9ybSBmb2xsb3d1cCByZXBsYWNlcyB0aGUge2Ntc19tb2R1bGV9IHRhZywgbm9uLWlubGluZSByZXBsYWNlcyB0aGUge2NvbnRlbnR9IHRhZy4nOwokbGFuZ1sndGl0bGVfZmllbGRfZGVmYXVsdF92YWx1ZSddID0gJ0RlZmF1bHQgdmFsdWUgZm9yIGZpZWxkJzsKJGxhbmdbJ3RpdGxlX2NsZWFyX2RlZmF1bHQnXSA9ICdDbGVhciBkZWZhdWx0IG9uIGNsaWNrPyc7CiRsYW5nWyd0aXRsZV9jbGVhcl9kZWZhdWx0X2hlbHAnXSA9ICdDaGVjayB0aGlzIHRvIGNsZWFyIHRoZSBkZWZhdWx0IHZhbHVlIHdoZW4gdGhlIHVzZXIgY2xpY2tzIHRoaXMgZmllbGQuIFNpbmNlIHRoaXMgdXNlcyBhIGphdmFzY3JpcHQgc3RyaW5nIGNvbXBhcmUsIGl0IHdpbGwgZmFpbCBpZiB5b3UgcHV0IHNpbmdsZSBxdW90ZXMgaW4geW91ciBkZWZhdWx0IHRleHQuIE90aGVyIHVuLWphdmFzY3JpcHQtZnJpZW5kbHkgY2hhcmFjdGVycyBtYXkgYWxzbyBjYXVzZSBpdCB0byBmYWlsLic7CiRsYW5nWydkZWZhdWx0X3RlbXBsYXRlJ10gPSAnRGVmYXVsdCBUZW1wbGF0ZSc7CiRsYW5nWyd0YWJsZV9sZWZ0X3RlbXBsYXRlJ10gPSAnVGFibGUgVGVtcGxhdGUsIFRpdGxlcyBvbiBsZWZ0JzsKJGxhbmdbJ3RhYmxlX3RvcF90ZW1wbGF0ZSddID0gJ1RhYmxlIFRlbXBsYXRlLCBUaXRsZSBvbiB0b3AnOwokbGFuZ1snZm9ybV90ZW1wbGF0ZV9uYW1lJ10gPSAnVGVtcGxhdGUgZnJvbSAlcyc7CiRsYW5nWyd0ZW1wbGF0ZV9hcmVfeW91X3N1cmUnXSA9ICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gb3ZlcndyaXRlIHlvdXIgdGVtcGxhdGUgd2l0aCB0aGUgc2VsZWN0ZWQgdGVtcGxhdGU/IChFdmVuIGlmIHlvdSBzYXkgT0ssIHlvdSB3aWxsIHN0aWxsIG5lZWQgdG8gc2F2ZSB0aGUgY2hhbmdlKSc7CiRsYW5nWyd0aXRsZV9iYWRfZnVuY3Rpb24nXSA9ICdFcnJvciB3aGVuIGNvbXB1dGluZyAmcXVvdDslcyZxdW90Oy4nOwokbGFuZ1snbm9fcmVmZXJyZXJfaW5mbyddID0gJ05vIEhUVFBfUkVGRVJFUiBpbmZvIGF2YWlsYWJsZSAocHJvYmFibHkgZHVlIHRvIHVzZSBvZiBVc2VyIEVtYWlsIFZhbGlkYXRpb24pJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcGFyYW1fZXJyb3InXSA9ICdWYWxpZGF0aW9uIFBhcmFtZXRlciBFcnJvci4gUGxlYXNlIG1ha2Ugc3VyZSB5b3UgY29weSB0aGUgVVJMIGZyb20geW91ciBlbWFpbCBjb3JyZWN0bHkhJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVzcG9uc2VfZXJyb3InXSA9ICdWYWxpZGF0aW9uIFJlcHNvbnNlIEVycm9yLiBQbGVhc2UgbWFrZSBzdXJlIHlvdSBjb3B5IHRoZSBVUkwgZnJvbSB5b3VyIGVtYWlsIGNvcnJlY3RseSEnOwokbGFuZ1sndmFsaWRhdGlvbl9ub19maWVsZF9lcnJvciddID0gJ1ZhbGlkYXRpb24gUmVwc29uc2UgRXJyb3IuIE5vIGVtYWlsIHZhbGlkYXRpb24gZmllbGQgaW4gdGhpcyBmb3JtISc7CiRsYW5nWyd1cGdyYWRlMDN0bzA0J10gPSAnRm9ybSBUZW1wbGF0ZSB3YXMgdXBkYXRlZCBhdXRvbWF0aWNhbGx5IGFzIHBhcnQgb2YgdGhlIHZlcnNpb24gMC4zIHRvIHZlcnNpb24gMC40IHVwZ3JhZGUuIFlvdSBtYXkgbmVlZCB0byBtYWtlIHNvbWUgZml4ZXMuIElmIHlvdSYjMDM5O3JlIHVzaW5nIHRoZSBkZWZhdWx0IGZvcm0sIHNpbXBseSByZXBsYWNlIHRoaXMgdGVtcGxhdGUgd2l0aCAmcXVvdDtkZWZhdWx0JnF1b3Q7IHVzaW5nIHRoZSBwdWxsZG93biBhYm92ZS4nOwokbGFuZ1snYWRtaW5kZXNjJ10gPSAnQWRkLCBlZGl0IGFuZCBtYW5hZ2UgaW50ZXJhY3RpdmUgRm9ybXMnOwokbGFuZ1snb3BlcmF0b3JzX2hlbHAnXSA9ICdJZiB5b3UgdXNlIFN0cmluZyBldmFsdWF0aW9uLCB0aGUgb25seSBvcGVyYXRpb24gYXZhaWxhYmxlIGlzIGNvbmNhdGVuYXRpb24gKCspLCB3aGlsZSBpZiB5b3UgdXNlIE51bWJlciBldmFsdWF0aW9uIHlvdSBoYXZlIGJhc2ljLCB2ZXJ5IHNpbXBsZSBtYXRoICgsICssIC0sICosIC8sICkuJzsKJGxhbmdbJ2RhdGVfamFudWFyeSddID0gJ0phbnVhcnknOwokbGFuZ1snZGF0ZV9mZWJydWFyeSddID0gJ0ZlYnJ1YXJ5JzsKJGxhbmdbJ2RhdGVfbWFyY2gnXSA9ICdNYXJjaCc7CiRsYW5nWydkYXRlX2FwcmlsJ10gPSAnQXByaWwnOwokbGFuZ1snZGF0ZV9tYXknXSA9ICdNYXknOwokbGFuZ1snZGF0ZV9qdW5lJ10gPSAnSnVuZSc7CiRsYW5nWydkYXRlX2p1bHknXSA9ICdKdWx5JzsKJGxhbmdbJ2RhdGVfYXVndXN0J10gPSAnQXVndXN0JzsKJGxhbmdbJ2RhdGVfc2VwdGVtYmVyJ10gPSAnU2VwdGVtYmVyJzsKJGxhbmdbJ2RhdGVfb2N0b2JlciddID0gJ09jdG9iZXInOwokbGFuZ1snZGF0ZV9ub3ZlbWJlciddID0gJ05vdmVtYmVyJzsKJGxhbmdbJ2RhdGVfZGVjZW1iZXInXSA9ICdEZWNlbWJlcic7CiRsYW5nWydzdWJtaXNzaW9uX2Vycm9yJ10gPSAnRGVzY3VscGUhIEhvdXZlIHVtIGVycm8gZGUgbWFuaXB1bGEmY2NlZGlsOyZhdGlsZGU7byBubyBzZXUgZm9ybXVsJmFhY3V0ZTtyaW8uJzsKJGxhbmdbJ3N1Ym1pdF9lcnJvciddID0gJ0Zvcm1CdWlsZGVyIHN1Ym1pdCBlcnJvcjogJXMnOwokbGFuZ1sndXBsb2Fkc19lcnJvciddID0gJ0Vycm9yIGNvbW1pdHRpbmcgZmlsZSB0byB0aGUgdXBsb2FkcyBtb2R1bGU6ICVzJzsKJGxhbmdbJ25vdXBsb2Fkc19lcnJvciddID0gJ0NvdWxkIG5vdCBmaW5kIHRoZSB1cGxvYWRzIG1vZHVsZSc7CiRsYW5nWyd1cGxvYWRfYXR0YWNoX2Vycm9yJ10gPSAnVXBsb2FkL0F0dGFjaG1lbnQgZXJyb3Igb24gZmlsZSAlcyAodG1wX25hbWU6ICVzLCBvZiB0eXBlICVzKSc7CiRsYW5nWydzdWJtaXNzaW9uX2Vycm9yX2ZpbGVfbG9jayddID0gJ0Vycm9yLiBVbmFibGUgdG8gb2J0YWluIGxvY2sgZm9yIGZpbGUuJzsKJGxhbmdbJ3VuY2hlY2tlZF9ieV9kZWZhdWx0J10gPSAnRGVmYXVsdDogdW5jaGVja2VkJzsKJGxhbmdbJ2NoZWNrZWRfYnlfZGVmYXVsdCddID0gJ0RlZmF1bHQ6IGNoZWNrZWQnOwokbGFuZ1snZW1haWxfZGVmYXVsdF90ZW1wbGF0ZSddID0gJ0Zvcm1CdWlsZGVyIFN1Ym1pc3Npb24nOwokbGFuZ1snZW1haWxfdGVtcGxhdGVfbm90X3NldCddID0gJzxici8+RW1haWwgVGVtcGxhdGUgbm90IHlldCBzZXQhJzsKJGxhbmdbJ21pc3NpbmdfY21zX21haWxlciddID0gJ0Zvcm1CdWlsZGVyOiBDYW5ub3QgZmluZCByZXF1aXJlZCBtb2R1bGUgQ01TTWFpbGVyISc7CiRsYW5nWyd1c2VyX2FwcHJvdmVkX3N1Ym1pc3Npb24nXSA9ICdVc2VyIGFwcHJvdmVkIHN1Ym1pc3Npb24gJXMgZnJvbSAlcyc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J10gPSAnRXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZCc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InXSA9ICdFdmVudCB0cmlnZ2VyZWQgaWYgdGhlcmUgaXMgYW4gZXJyb3Igd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1EaXNwbGF5J10gPSAnRXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIGRpc3BsYXllZCc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J10gPSAnPHA+RXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZC48L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gVGhlIGZvcm0gbmFtZSAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4NCjxsaT48ZW0+dmFsdWVfPG5hbWU+PC9lbT4gLSBTdXBwbHkgYSBkZWZhdWx0IHZhbHVlIHRvIGEgZmllbGQgd2l0aCB0aGUgc3BlY2lmaWVkIG5hbWUuPC9saT4NCjwvdWw+ICc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InXSA9ICc8cD5FdmVudCB0cmlnZ2VyZWQgaWYgdGhlcmUgaXMgYW4gZXJyb3Igd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIFRoZSBmb3JtIG5hbWUgKHN0cmluZyk8L2xpPg0KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBUaGUgaW50ZXJuYWwgZm9ybSBpZCAoaW50KTwvbGk+DQo8bGk+PGVtPmVycm9yPC9lbT4gLSBBIGxpc3Qgb2YgYWxsIGtub3duIGVycm9ycyAoc3RyaW5nKTwvbGk+DQo8L3VsPiAnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXSA9ICc8cD5FdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgZGlzcGxheWVkPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIFRoZSBmb3JtIG5hbWUgKHN0cmluZyk8L2xpPg0KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBUaGUgaW50ZXJuYWwgZm9ybSBpZCAoaW50KTwvbGk+DQo8L3VsPiAnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX3Jlc3BvbnNlX2lkJ10gPSAnUmVzcG9uc2UgSUQuIFVzZWQgYnkgRm9ybUJyb3dzZXInOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX3Bhc3NlZF9mcm9tX3RhZyddID0gJ0RlZmF1bHQgZmllbGQgdmFsdWVzOyBzZWUgbW9kdWxlIGhlbHAnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2ZpZWxkX2lkJ10gPSAnRmllbGQgSUQgZm9yIGludGVybmFsIG9wZXJhdGlvbnMnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2Zvcm1fbmFtZSddID0gJ0Zvcm0gTmFtZSc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZm9ybV9pZCddID0gJ0Zvcm0gSUQgZm9yIGludGVybmFsIG9wZXJhdGlvbnMnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2dlbmVyYWwnXSA9ICdHZW5lcmFsIHBhcmFtZXRlcnMgZm9yIGludGVybmFsIG9wZXJhdGlvbnMnOwokbGFuZ1sndGVtcGxhdGVfdmFyaWFibGVfaGVscCddID0gJzxoMz5Gb3JtIFRlbXBsYXRlIFZhcmlhYmxlczwvaDM+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+RHVubm8gd2h5IHlvdSYjMDM5O2Qgd2FudCBzb21lIG9mIHRob3NlLCBidXQgdGhlcmUgeW91IGdvLi4uPC9wPg0KJzsKJGxhbmdbJ3Bvc3RfaW5zdGFsbCddID0gJzxwPk1ha2Ugc3VyZSB0byBzZXQgdGhlICZxdW90O01vZGlmeSBGb3JtcyZxdW90OyBwZXJtaXNzaW9ucw0Kb24gdXNlcnMgd2hvIHdpbGwgYmUgYWRtaW5pc3RlcmluZyBmZWVkYmFjayBmb3Jtcy4gQWxzbywgaWYgeW91JiMwMzk7bGwgYmUgZW1haWxpbmcgZm9ybQ0KcmVzdWx0cywgYmUgc3VyZSB0byB1cGRhdGUgdGhlIENvbmZpZ3VyYXRpb24gYXBwcm9wcmlhdGVseS48L3A+DQo8cD5QbGVhc2UgYmUgYXdhcmUgdGhhdCBhIGZlZWRiYWNrIGZvcm0gc2hvdWxkIG5vdCBiZSBhY3RpdmUgKGUuZy4sIHVzYWJsZSBieSB0aGUgcHVibGljKSB3aGlsZQ0KeW91IGFyZSBzdGlsbCBlZGl0aW5nIHRoZSBmb3JtLiBZb3Ugc2hvdWxkIGNyZWF0ZSB0aGUgZm9ybSwgYW5kIHBsYWNlIHRoZSB0YWcgaW50byBhbiBhY3RpdmUNCmNvbnRlbnQgcGFnZSBvbmx5IHdoZW4geW91IGhhdmUgZmluaXNoZWQgZWRpdGluZy4gT3RoZXJ3aXNlLCBlcnJvbmVvdXMgcmVzdWx0cyBjb3VsZCBiZSByZXR1cm5lZC48L3A+DQo8cD5BZGRpdGlvbmFsbHksIHRoaXMgdmVyc2lvbiBkb2VzIG5vdCBzdXBwb3J0IHBhcmFsbGVsIGVkaXRpbmcgb2YgZm9ybXMuIFBsZWFzZSB0YWtlIGNhcmUgdGhhdA0Kb25seSBvbmUgYWRtaW4gaXMgZWRpdGluZyBhIGdpdmVuIGZvcm0gYXQgYSBnaXZlbiB0aW1lLjwvcD4nOwokbGFuZ1snaGVscCddID0gJzxoMz5XaGF0IERvZXMgVGhpcyBEbz88L2gzPg0KPHA+VGhlIEZvcm0gQnVpbGRlciBNb2R1bGUgYWxsb3dzIHlvdSB0byBjcmVhdGUgZmVlZGJhY2sgZm9ybXMgKGluIGZhY3QsIGl0JiMwMzk7cyBhIHJlcGxhY2VtZW50IG9mIHRoZSBvcmlnaW5hbCBGZWVkYmFjayBGb3JtIG1vZHVsZSksIHdpdGggdGhlIGFkZGVkIHBvd2VyIG9mIGRhdGFiYXNlIHN0b3JhZ2UuIFdpdGggaXRzIGNvbXBhbmlvbiBtb2R1bGUgRm9ybSBCcm93c2VyLCB5b3UgY2FuIHVzZSBpdCB0byBjcmVhdGUgc2ltcGxlIGRhdGFiYXNlIGFwcGxpY2F0aW9ucy48L3A+DQo8cD5UaGUgZm9ybXMgY3JlYXRlZCB1c2luZyB0aGUgRm9ybSBCdWlsZGVyIG1heSBiZSBpbnNlcnRlZA0KaW50byB0ZW1wbGF0ZXMgYW5kL29yIGNvbnRlbnQgcGFnZXMuIEZvcm1zIG1heSBjb250YWluIG1hbnkga2luZHMgb2YgaW5wdXRzLCBhbmQgbWF5IGhhdmUNCnZhbGlkYXRpb24gYXBwbGllZCB0byB0aGVzZSBpbnB1dHMuIFRoZSByZXN1bHRzIG9mIHRoZXNlIGZvcm1zIG1heSBiZSBoYW5kbGVkIGluIGEgdmFyaWV0eSBvZiB3YXlzLjwvcD4NCg0KPGgzPkhvdyBEbyBJIFVzZSBpdD88L2gzPg0KPFA+SW5zdGFsbCBpdCwgYW5kIHBva2UgYXJvdW5kIHRoZSBtZW51cy4gUGxheSB3aXRoIGl0LiBUcnkgY3JlYXRpbmcgZm9ybXMsIGFuZCBhZGRpbmcgdGhlbSB0byB5b3VyIGNvbnRlbnQuDQpJZiB5b3UgZ2V0IHN0dWNrLCBjaGF0IHdpdGggbWUgb24gdGhlICNjbXMgSVJDIGNoYW5uZWwsIHBvc3QgdG8gdGhlIGZvcnVtLCBzZW5kIG1lIGVtYWlsLCBvciwgaWYgeW91JiMwMzk7cmUNCnJlYWxseSBkZXNwZXJhdGUsIHRyeSByZWFkaW5nIHRoZSBpbnN0cnVjdGlvbnMgb24gdGhlIHJlc3Qgb2YgdGhpcyBwYWdlLjwvUD4NCg0KPGgzPkhvdyBEbyBJIENyZWF0ZSBhIEZvcm08L2gzPg0KPHA+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+U3RhdGUuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBTdGF0ZXMgb2YgdGhlIFUuUy48L2xpPg0KPGxpPkNhbmFkaWFuIFByb3ZpbmNlLiBUaGlzIGlzIGEgcHVsbGRvd24gbGlzdGluZyB0aGUgQ2FuYWRpYW4gUHJvdmluY2VzIChDb250cmlidXRlZCBieSBOb2VsIE1jR3Jhbi4gVGhhbmtzISk8L2xpPg0KPGxpPkNvdW50cmllcy4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIENvdW50cmllcyBvZiB0aGUgd29ybGQgKGFzIG9mIEp1bHkgMjAwNSkuPC9saT4NCjxsaT5EYXRlIFBpY2tlci4gVGhpcyBpcyBhIHRyaXBsZSBwdWxsZG93biBhbGxvd2luZyB0aGUgdXNlciB0byBzZWxlY3QgYSBkYXRlLjwvbGk+DQo8bGk+VGltZSBQaWNrZXIuIFRoaXMgaXMgYSBzZXQgb2YgcHVsbGRvd25zIGFsbG93aW5nIHRoZSB1c2VyIHRvIHNlbGVjdCBhIHRpbWUgKHVzaW5nIDEyIG9yIDI0IGhvdXIgY2xvY2spLjwvbGk+DQo8bGk+RmlsZSBVcGxvYWQuIFRoaXMgaXMgYSBmaWxlIHVwbG9hZCBmaWVsZC48L2xpPg0KPGxpPkxpbmsgKFVzZXIgRW50ZXJlZCkuIFRoaXMgY3JlYXRlcyBhIGRvdWJsZSBpbnB1dCBmaWVsZCBmb3IgZ2V0dGluZyBhIGxpbmsgVVJMIGFuZCBsaW5rIHRpdGxlLjwvbGk+DQo8bGk+VGV4dCBGaWVsZCAoTXVsdGlwbGUpLiBUaGlzIGZpZWxkIGNyZWF0ZXMgb25lIG9yIG1vcmUgdGV4dCBpbnB1dHMgd2l0aCBhZGQgYW5kIGRlbGV0ZSBidXR0b25zLCBlZmZlY3RpdmVseSBnaXZpbmcgdGhlIGVuZCB1c2VyIGEgd2F5IG9mIGNyZWF0aW5nIHZhcmlhYmxlLWxlbmd0aCBsaXN0cy48L2xpPg0KPC91bD48L2xpPg0KDQo8bGk+RW1haWwtc3BlY2lmaWMgSW5wdXRzDQo8dWw+PGxpPkVtYWlsIEZyb20gQWRkcmVzcyBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSB0aGVpciBlbWFpbCBhZGRyZXNzLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgYWRkcmVzcyBpbiB0aGUgJnF1b3Q7RnJvbSZxdW90OyBmaWVsZC48L2xpPg0KPGxpPkVtYWlsIEZyb20gTmFtZSBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSB0aGVpciBuYW1lLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgbmFtZSBpbiB0aGUgJnF1b3Q7RnJvbSZxdW90OyBmaWVsZC48L2xpPg0KPGxpPkVtYWlsIFN1YmplY3QgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgYSBzdWJqZWN0IGZvciB0aGVpciBlbWFpbC4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIGluIHRoZSAmcXVvdDtTdWJqZWN0JnF1b3Q7IGZpZWxkLiBUaGlzIG1heSBjYXVzZSB0cm91YmxlIHdpdGggY2VydGFpbiBkaXNwb3NpdGlvbnMgdGhhdCB3YW50IHRvIGNvbnRyb2wgdGhlIEVtYWlsIFN1YmplY3QsIHNvIHVzZSBpdCB3aXRoIGNhdXRpb24uPC9saT4NCjwvdWw+PC9saT4NCg0KPGxpPkRpc3BsYXkgQ29udHJvbCBGaWVsZHM8dWw+DQo8bGk+LVBhZ2UgQnJlYWsuIFRoaXMgYWxsb3dzIHlvdSB0byBzcGxpdCB5b3VyIGZlZWRiYWNrIGZvcm0gaW50byBtdWx0aXBsZSBwYWdlcy4gRWFjaCBwYWdlIGlzDQppbmRlcGVuZGVudGx5IHZhbGlkYXRlZC4gVGhpcyBpcyBnb29kIGZvciBhcHBsaWNhdGlvbnMgbGlrZSBvbmxpbmUgc3VydmV5cy48L2xpPg0KPGxpPi1GaWVsZHNldCBTdGFydC4gQ29tYmluZWQgd2l0aCBGaWVsZHNldCBFbmQsIHRoaXMgYWxsb3dzIHlvdSB0byBncm91cCB2YXJpb3VzIGZpZWxkcyB3aXRoaW4geW91ciBmb3JtLiBVc2UgdGhpcyB0byBzdGFydCBhIGdpdmVuIGdyb3VwaW5nLjwvbGk+DQo8bGk+LUZpZWxkc2V0IEVuZC4gQ29tYmluZWQgd2l0aCBGaWVsZHNldCBTdGFydCwgdGhpcyBhbGxvd3MgeW91IHRvIGdyb3VwIHZhcmlvdXMgZmllbGRzIHdpdGhpbiB5b3VyIGZvcm0uIFVzZSB0aGlzIHRvIGVuZCBhIGdpdmVuIGdyb3VwaW5nLjwvbGk+DQo8bGk+LUhpZGRlbiBGaWVsZC4gVGhpcyBhbGxvd3MgeW91IHRvIGVtYmVkIGEgaGlkZGVuIGZpZWxkIGluIHlvdXIgZm9ybS48L2xpPg0KPGxpPi1TdGF0aWMgVGV4dC4gVGhpcyBhbGxvd3MgeW91IHRvIHB1dCB0ZXh0IG9yIGEgbGFiZWwgaW4gdGhlIG1pZGRsZSBvZiB5b3VyIGZvcm0uIFRoaXMgaXMgdXNlZnVsIGZvciBnaXZpbmcgYWRkaXRpb25hbCBoZWxwIHRleHQsIGVzcGVjaWFsbHkgaWYgeW91JiMwMzk7cmUgbm90IHVzaW5nIGEgQ3VzdG9tIFRlbXBsYXRlIHRvIHJlbmRlciB5b3VyIGZvcm0uPC9saT4NCjxsaT4tU3RhdGljIExpbmsuIFRoaXMgYWxsb3dzIHlvdSB0byBwdXQgYSBsaW5rIHRvIGEgZ2l2ZW4gcGFnZSBpbnRvIHlvdXIgZm9ybS4gT3B0aW9uYWxseSwgeW91IGNhbiBoYXZlIGl0IGF1dG9wb3B1bGF0ZSB3aXRoIHRoZSBwYWdlIHdoZXJlIHRoZSBmb3JtIGlzIGVtYmVkZGVkICh1c2VmdWwgaWYgeW91JiMwMzk7cmUgc2VuZGluZyByZXN1bHRzIHZpYSBlbWFpbCkuPC9saT4NCjxsaT4tQ29tcHV0ZWQgRmllbGQuIFRoaXMgYWxsb3dzIHlvdSB0byBlbWJlZCBhIGNvbXB1dGVkIGZpZWxkIGluIHlvdXIgZm9ybS4gSXQgaXMgbm90IHZpc2libGUgdG8gdGhlIHVzZXIgdW50aWwgYWZ0ZXIgdGhlIGZvcm0gaXMgc3VibWl0dGVkLiBJdCBhbGxvd3MgeW91IHRvIGRvIHNpbXBsZSBhcml0aG1ldGljIG9yIHN0cmluZyBjb25jYXRlbmF0aW9uLjwvbGk+DQo8bGk+LVVuaXF1ZSBJbnRlZ2VyIChTZXJpYWwpLiBUaGlzIGlzIGFuIGludGVnZXIgdGhhdCBpbmNyZWFzZXMgZXZlcnkgdGltZSBzb21lb25lIGhpdHMgeW91ciBmb3JtLiBZb3VyIHJlc3VsdHMgbWF5IG5vdCBiZSBzZXF1ZW50aWFsLCBidXQgdGhleSB3aWxsIGluY3JlYXNlIG1vbm90b25pY2FsbHkuPC9saT4NCjwvdWw+PC9saT4NCg0KPGxpPkZvcm0gSGFuZGxpbmcgSW5wdXRzIChEaXNwb3NpdGlvbnMpDQo8dWw+PGxpPipDYWxsIGEgVXNlciBEZWZpbmVkIFRhZyBXaXRoIHRoZSBGb3JtIFJlc3VsdHMuIFRoaXMgc3VibWl0cyBhbGwgdGhlIGZvcm0gcmVzdWx0cyB0byB0aGUgVXNlci1EZWZpbmVkIFRhZyB5b3Ugc3BlY2lmeS4gVGhlIFVEVCBjYW4gaGFuZGxlIHRoZSByZXN1bHRzIGhvd2V2ZXIgaXQgd2FudHMuIFZhbHVlcyBhcmUgcGFzc2VkIGFzICRwYXJhbVsmIzAzOTtmaWVsZF9uYW1lJiMwMzk7XS48L2xpPg0KPGxpPipFbWFpbCBSZXN1bHRzIEJhc2VkIG9uIFB1bGxkb3duLiBUaGlzIGlzIHVzZWZ1bCBmb3Igd2ViIHNpdGVzIHdoZXJlIGNvbW1lbnRzIGdldCByb3V0ZWQgYmFzZWQgb24gdGhlaXIgc3ViamVjdCBtYXR0ZXIsIGUuZy4sIGJ1Z3MgZ2V0IHNlbnQgdG8gb25lIHBlcnNvbiwgbWFya2V0aW5nIHF1ZXN0aW9ucyB0byBhbm90aGVyIHBlcnNvbiwgc2FsZXMgcmVxdWVzdHMgdG8gc29tZW9uZSBlbHNlLCBldGMuIFRoZSBwdWxsZG93biBpcyBwb3B1bGF0ZWQgd2l0aCB0aGUgc3ViamVjdHMsIGFuZCBlYWNoIGdldHMgZGlyZWN0ZWQgdG8gYSBzcGVjaWZpYyBlbWFpbCBhZGRyZXNzLiBZb3Ugc2V0IHVwIHRoZXNlIG1hcHBpbmdzIGluIHRoZSB3aGVuIHlvdSBjcmVhdGUgb3IgZWRpdCBhIGZpZWxkIG9mIHRoaXMgdHlwZS4gSWYgeW91IHVzZSBvbmUgb2YgdGhlc2UgJnF1b3Q7RGlyZWN0b3ImcXVvdDsgcHVsbGRvd25zLCB0aGUgdXNlciBtdXN0IG1ha2UgYSBzZWxlY3Rpb24gaW4gb3JkZXIgdG8gc3VibWl0IHRoZQ0KZm9ybS4gVGhpcyBpbnB1dCBpcyBwYXJ0IG9mIHRoZSBmb3JtIHRoZSB1c2VyIHNlZXMsIGFsdGhvdWdoIHRoZSBlbWFpbCBhZGRyZXNzZXMgYXJlIG5vdCBtYWRlIHZpc2libGUgbm9yDQphcmUgdGhleSBlbWJlZGRlZCBpbiB0aGUgSFRNTC48L2xpPg0KPGxpPipFbWFpbCBSZXN1bHRzIHRvIHNldCBBZGRyZXNzKGVzKS4gVGhpcyBzaW1wbHkgc2VuZHMgdGhlIGZvcm0gcmVzdWx0cyB0byBvbmUgb3IgbW9yZSBlbWFpbCBhZGRyZXNzZXMgdGhhdCB5b3UgZW50ZXIgd2hlbiB5b3UgY3JlYXRlIG9yIGVkaXQgdGhpcyB0eXBlIG9mIGZpZWxkLiBUaGlzIGZpZWxkIGFuZCBpdHMgbmFtZSBhcmUgbm90IHZpc2libGUgaW4gdGhlDQpmb3JtIHRoYXQgdGhlIHVzZXIgc2Vlcy4gVGhlIGVtYWlsIGFkZHJlc3NlcyBhcmUgbm90IG1hZGUgdmlzaWJsZSBub3INCmFyZSB0aGV5IGVtYmVkZGVkIGluIHRoZSBIVE1MLjwvbGk+DQo8bGk+KkVtYWlsIHRvIFVzZXItU3VwcGxpZWQgQWRkcmVzcy4gVGhpcyBwdXRzIGFuIGlucHV0IGZpZWxkIGluIHRoZSBmb3JtIGZvciB0aGUgdXNlciB0byBwb3B1bGF0ZSB3aXRoIGFuIGVtYWlsIGFkZHJlc3MuIFRoZSBmb3JtIHJlc3VsdHMgZ2V0IHNlbnQgdG8gdGhhdCBhZGRyZXNzLiBCZXdhcmUgb2YgU3BhbSBhYnVzZSEgQWN0aXZlIHRoZSBwcmltaXRpdmUgYW50aS1zcGFtIGZlYXR1cmVzIGluIHRoZSBGb3JtQnVpbGRlciBjb25maWd1cmF0aW9uIHNjcmVlbi48L2xpPg0KPGxpPipTdG9yZSBSZXN1bHRzIGluIERhdGFiYXNlLiBUaGlzIHdpbGwgc3RvcmUgdGhlIGZvcm0gY29udGVudHMgaW4gYW4gaW50ZXJuYWwgZGF0YWJhc2UuIFlvdSB3aWxsIGFsd2F5cyB1c2UgdGhpcyBkaXNwb3NpdGlvbiBpZiB5b3UgdXNlIHRoZSBmb3JtIHdpdGggRm9ybUJyb3dzZXIuPC9saT4NCjxsaT4qUmVkaXJlY3QgdG8gUGFnZSBCYXNlZCBvbiBQdWxsZG93bi4gVGhpcyBhbGxvd3MgeW91IHRvIHJlZGlyZWN0IHRoZSBmb3JtIHRvIGEgZGlmZmVyZW50IHNpdGUgcGFnZSBkZXBlbmRpbmcgb24gaXRzIHZhbHVlLiBJZiB5b3UgaGF2ZSBtdWx0aXBsZSBkaXNwb3NpdGlvbnMsIG1ha2Ugc3VyZSB0aGlzIGlzIHVzZWQgbGFzdC48L2xpPg0KPGxpPipWYWxpZGF0ZSB2aWEgRW1haWwuIFRoaXMgaXMgYSBzdHJhbmdlIGFuZCBwb3dlcmZ1bCBmaWVsZC4gSXQgcHJvdmlkZXMgdGhlIHVzZXIgYSBtYW5kYXRvcnkgaW5wdXQgZm9yIHRoZWlyIGVtYWlsIGFkZHJlc3MuIE9uY2UgdGhleSBzdWJtaXQgdGhlaXIgZm9ybSwgdGhlIHN0YW5kYXJkIGZvcm0gZGlzcG9zaXRpb25zIGFyZSBub3QgcGVyZm9ybWVkIC0tIHJhdGhlciwgaXQgc2VuZCB0aGUgdXNlciBhbiBlbWFpbCB3aXRoIGEgc3BlY2lhbCBjb2RlZCBsaW5rLiBJZiB0aGV5IGNsaWNrIG9uIHRoZSBsaW5rLCB0aGUgb3RoZXIgZm9ybSBpcyBjb25zaWRlcmVkICZxdW90O2FwcHJvdmVkLCZxdW90OyBhbmQgdGhlIG90aGVyIGRpc3Bvc2l0aW9ucyBhcmUgYWxsIHBlcmZvcm1lZC48L2xpPg0KPGxpPipXcml0ZSBSZXN1bHRzIHRvIEZsYXQgRmlsZS4gVGhpcyB0YWtlcyB0aGUgZm9ybSByZXN1bHRzIGFuZCB3cml0ZXMgdGhlbSBpbnRvIGEgdGV4dCBmaWxlLiBZb3UgbWF5DQpzZWxlY3QgdGhlIG5hbWUgb2YgdGhlIGZpbGUsIGFuZCBzZXQgaXRzIGZvcm1hdC4gVGhlc2UgZmlsZXMgYXJlIHdyaXR0ZW4gdG8gdGhlICZxdW90O291dHB1dCZxdW90OyBkaXJlY3RvcnkgdW5kZXIgdGhlDQptb2R1bGUmIzAzOTtzIGluc3RhbGxhdGlvbiBkaXJlY3RvcnksIGFzc3VtaW5nIHRoZSB3ZWIgc2VydmVyIGhhcyBwZXJtaXNzaW9uIHRvIHdyaXRlIHRoZXJlLjwvbGk+DQo8bGk+KlNhdmUgUmVzdWx0cyB0byBGaWxlIEJhc2VkIG9uIFB1bGxkb3duLiBMaWtlIHRoZSBGbGF0IEZpbGUgZGlzcG9zaXRpb24sIGV4Y2VwdCB0aGUgdmFsdWUgb2YgYSBwdWxsLWRvd24gZGV0ZXJtaW5lcyB3aGljaCBmaWxlIHJlc3VsdHMgZ2V0IHdyaXR0ZW4gdG8uPC9saT4NCjxsaT4qU2F2ZSBSZXN1bHRzIHRvIEZpbGUocykgQmFzZWQgb24gTXVsdGlwbGUgU2VsZWN0aW9ucy4gTGlrZSB0aGUgRmxhdCBGaWxlIGRpc3Bvc2l0aW9uLCBleGNlcHQgdGhlIHZhbHVlKHMpIG9mIGNoZWNrYm94ZXMgIGRldGVybWluZXMgd2hpY2ggZmlsZShzKSByZXN1bHRzIGdldCB3cml0dGVuIHRvLjwvbGk+DQo8bGk+KkVtYWlsIHRvIENNUyBBZG1pbiBVc2VyLiBQcm92aWRlcyBhIHB1bGwtZG93biBvZiBDTVMgQWRtaW4gdXNlcnMsIGFuZCBkaXJlY3RzIHRoZSByZXN1bHRzIGFzIGFuIGVtYWlsIHRvIHRoZSBzZWxlY3RlZCBhZG1pbi48L2xpPg0KPGxpPipTdG9yZSBSZXN1bHRzIGZvciBGb3JtQnJvd3NlciBNb2R1bGUgdi4zLiBTdG9yZXMgdGhlIGZvcm0gcmVzdWx0cyBpbiBhbiBYTUwgc3RydWN0dXJlIGFzIGEgc2luZ2xlIGRhdGFiYXNlIHJlY29yZC4gVGhpcyB3aWxsIGJlY29tZSB0aGUgaW50ZXJmYWNlIHRvIEZvcm0gQnJvd3NlciBpbiB0aGUgbmV4dCByZWxlYXNlLjwvbGk+DQoNCjwvdWw+PC9saT48L2xpPjwvdWw+DQoNCg0KPGgzPlBhc3NpbmcgRGVmYXVsdCBWYWx1ZXMgdG8gRm9ybXM8L2gzPg0KPHA+Q2FsZ3V5IGFkZGVkIGEgbmljZSBmZWF0dXJlLCB3aGljaCBpcyB0aGF0IHlvdSBjYW4gcGFzcyBkZWZhdWx0IGZpZWxkIHZhbHVlcyB0byB5b3VyIGZvcm0gdmlhIHRoZSBtb2R1bGUgdGFnLiBUaGlzIGFsbG93cyB5b3UgdG8gaGF2ZQ0KdGhlIHNhbWUgZm9ybSBpbiBtdWx0aXBsZSBwbGFjZXMsIGJ1dCB3aXRoIGRpZmZlcmVudCBkZWZhdWx0IHZhbHVlcy4gSXQgbWF5IG5vdCB3b3JrIGZvciBtb3JlIGV4b3RpYyBmaWVsZCB0eXBlcywgYnV0IGZvciBmaWVsZHMgdGhhdCBoYXZlDQphIHNpbmdsZSB2YWx1ZSwgeW91IGNhbiBzcGVjaWZ5IGxpa2U6PC9wPg0KPHA+e2Ntc19tb2R1bGUgbW9kdWxlPSYjMDM5O0Zvcm1CdWlsZGVyJiMwMzk7IGZvcm09JiMwMzk7bXlfZm9ybSYjMDM5OyB2YWx1ZV88aT5GSUVMRE5BTUU8L2k+PSYjMDM5O2RlZmF1bHRfdmFsdWUmIzAzOTt9PC9wPg0KPHA+VGhpcyB3aWxsIHNldCB0aGUgZmllbGQgd2l0aCA8aT5GSUVMRE5BTUU8L2k+IHRvICYjMDM5O2RlZmF1bHRfdmFsdWUmIzAzOTsuPC9wPg0KPHA+VGhpcyBjYW4gYmUgcHJvYmxlbWF0aWMsIGFzIHNvbWV0aW1lcyBmaWVsZCBuYW1lcyBhcmUgdW53ZWlsZHkgb3IgY29udGFpbiBjaGFyYWN0ZXJzIHRoYXQgZG9uJiMwMzk7dCB3b3JrIHdlbGwgd2l0aCBTbWFydHkuIFNvIHRoZXJlIGlzIGFuDQphbHRlcm5hdGl2ZSBsaWtlIHRoaXM6PC9wPg0KPHA+e2Ntc19tb2R1bGUgbW9kdWxlPSYjMDM5O0Zvcm1CdWlsZGVyJiMwMzk7IGZvcm09JiMwMzk7bXlfZm9ybSYjMDM5OyB2YWx1ZV9mbGQ8aT5OVU1CRVI8L2k+PSYjMDM5O2RlZmF1bHRfdmFsdWUmIzAzOTt9PC9wPg0KPHA+VGhhdCB1c2VzIGZpZWxkIDxpPk5VTUJFUjwvaT4sIHdoZXJlIDxpPk5VTUJFUjwvaT4gaXMgdGhlIGludGVybmFsIEZvcm1CdWlsZGVyIGZpZWxkIGlkLiBZb3UgbWlnaHQgd29uZGVyIGhvdyB5b3Uga25vdyB3aGF0IHRoYXQgaWQgaXMuIFNpbXBseSBnbyBpbnRvIHRoZSBGb3JtQnVpbGRlciBjb25maWd1cmF0aW9uIHRhYiwNCmFuZCBjaGVjayAmcXVvdDtTaG93IEZpZWxkIElEcyZxdW90OzwvcD4NCg0KPGgzPkVtYWlsIGFuZCBGbGF0IEZpbGUgVGVtcGxhdGVzPC9oMz4NCjxwPk1hbnkgZGlzcG9zaXRpb24gdHlwZXMgYWxsb3cgeW91IHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZvciB0aGUgZW1haWwgdGhhdCBpcyBnZW5lcmF0ZWQsIG9yIGZvciB0aGUgd2F5IHRoZSByZXN1bHRzIGFyZSB3cml0dGVuIHRvIGEgZmlsZS4gSWYgeW91IG9wdCBub3QgdG8gY3JlYXRlIGEgdGVtcGxhdGUsIHRoZSBGb3JtQnVpbGRlciB3aWxsIHVzZSBpdCYjMDM5O3Mgb3duIGJlc3QgZ3Vlc3MsIHdoaWNoIG1heSBvciBtYXkgbm90IHdvcmsgb3V0IHRvIHlvdXIgbGlraW5nLiBZb3UgY2FuIGFsd2F5cyBjbGljayBvbiB0aGUgJnF1b3Q7Q3JlYXRlIFNhbXBsZSBUZW1wbGF0ZSZxdW90OyBhbmQgdGhlbiBjdXN0b21pemUgdGhlIHJlc3VsdHMuPC9wPg0KPHA+VG8gdGhlIHJpZ2h0LCB5b3UmIzAzOTtsbCBmaW5kIGEgbGVnZW5kIHdoaWNoIGxpc3RzIGFsbCBvZiB0aGUgdmFyaWFibGVzIHRoYXQgYXJlIGF2YWlsYWJsZSB0byB5b3UgdG8gdXNlIGluIHlvdXIgdGVtcGxhdGUuIEFzIG9mIHZlcnNpb24gMC4zLCB2YXJpYWJsZXMgaGF2ZSB0d28gbmFtZXMsIG9uZSBiYXNlZCBvbiB0aGUgZmllbGQgbmFtZSwgdGhlIG90aGVyIGJhc2VkIG9uIHRoZSBmaWVsZCBJRC4gSWYgeW91IHVzZSBmaWVsZCBuYW1lcyB0aGF0IGhhdmUgY2hhcmFjdGVycyBvdXRzaWRlIG9mIHRoZSBBU0NJSSAzMi0xMjYgcmFuZ2UsIGl0IHdpbGwgYmUgc2FmZXIgdG8gdXNlIHRoZSBJRC1iYXNlZCB2YXJpYWJsZXMuPC9wPg0KPHA+PHN0cm9uZz5Ob3RlIHRoYXQgb25jZSB5b3UmIzAzOTt2ZSBjaGFuZ2VkIGEgdGVtcGxhdGUsIGl0IHdpbGwgbm8gbG9uZ2VyIGF1dG9tYXRpY2FsbHkgYWRkIG5ldyBmaWVsZHMuPC9zdHJvbmc+IEZvciB0aGlzIHJlYXNvbiwgaXQmIzAzOTtzIHVzdWFsbHkgYmVzdCB0byBjcmVhdGUgeW91ciB0ZW1wbGF0ZXMgYXMgdGhlIGxhc3Qgc3RlcCBvZiBjcmVhdGluZyB5b3VyIGZvcm0uPC9wPg0KPHA+QXMgb2YgdmVyc2lvbiAwLjIuNCwgeW91IGNhbiBvcHQgdG8gc2VuZCBhbnkgb2YgdGhlc2UgZW1haWxzIGFzIEhUTUwgZW1haWwuIFRoZXJlIHNob3VsZCBiZSBhIGNoZWNrYm94IGF0IHRoZSB0b3Agb2YgdGhlIHRlbXBsYXRlIHBhZ2UgZm9yIHRoaXMuIFRoZXJlIGlzIGFsc28gYSAmcXVvdDtDcmVhdGUgU2FtcGxlIEhUTUwgVGVtcGxhdGUmcXVvdDsgYnV0dG9uIG92ZXIgaW4gdGhlIGxlZ2VuZCBhcmVhLiBGb3IgSFRNTCBlbWFpbCwgdGhlIGVtYWlsIGJvZHkgd2lsbCBhbHNvIHByb3ZpZGUgdGhlIGRlZmF1bHQgdGV4dC1vbmx5IHZhbHVlcy48L3A+DQoNCjxoMz5Db25maWd1cmF0aW9uPC9oMz4NCjxwPlRoZXJlIGFyZSBzb21lIGdsb2JhbCBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIEZvcm1CdWlsZGVyOjwvcD4NCjx1bD4NCjxsaT5FbmFibGUgZmFzdCBmaWVsZCBhZGQgcHVsbGRvd24uIFRoaXMgZW5hYmxlcyB0aGUgcHVsbGRvd24gb24gdGhlIEZvcm0gRWRpdCBwYWdlIHdoaWNoIHNhdmVzIGEgc3RlcCBpbiB0aGUgY3JlYXRpb24gb2YgbmV3IGZpZWxkcy48L2xpPg0KPGxpPkhpZGUgRXJyb3JzLiBUaGlzIGlzIHNldCBieSBkZWZhdWx0LiBVbmNoZWNraW5nIGl0IHdpbGwgY2F1c2UgbW9yZSBkZXRhaWxlZCBlcnJvcnMgdG8gYmUgZGlzcGxheWVkIGlmIHRoZXJlIGFyZSBwcm9ibGVtcyB3aGVuIHlvdSBzdWJtaXQgeW91ciBmb3JtLjwvbGk+DQo8bGk+UmVxdWlyZSBGaWVsZCBOYW1lcy4gVHlwaWNhbGx5LCB5b3Ugd2lsbCB3YW50IGZvcm0gZmllbGRzIHRvIGJlIG5hbWVkIHNvIHlvdSBjYW4gdGVsbCB3aGljaCBpcyB3aGljaC4gSG93ZXZlciwgaW4gc29tZSBjYXNlcywgeW91IG1pZ2h0IHdhbnQgdG8gaGF2ZSBuYW1lbGVzcyBmaWVsZHMuIFVuY2hlY2sgdGhpcyBpZiB5b3Ugd2FudCB0byBhbGxvdyBuYW1lbGVzcyBmaWVsZHMuPC9saT4NCjxsaT5VbmlxdWUgRmllbGQgTmFtZXMuIFR5cGljYWxseSwgeW91IHdpbGwgd2FudCBmb3JtIGZpZWxkcyB0byBoYXZlIHVuaXF1ZSBuYW1lcyBzbyB5b3UgY2FuIHRlbGwgd2hpY2ggaXMgd2hpY2guIFVuY2hlY2sgdGhpcyBpZiB5b3Ugd2FudCB0byBhbGxvdyBmaWVsZHMgdG8gc2hhcmUgbmFtZXMuPC9saT4NCjxsaT5Vc2UgcmVsYXhlZCBlbWFpbCB2YWxpZGF0aW9uLiBUaGlzIHVzZXMgYSBsZXNzIHJlc3RyaWN0aXZlIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgdmFsaWRhdGluZyBlbWFpbDsgZS5nLiwgeEB5IHdpbGwgYmUgYWxsb3dlZCwgd2hlcmUgdHlwaWNhbGx5IHhAeS50bGQgaXMgcmVxdWlyZWQuPC9saT4NCjxsaT5TaG93IEZvcm0gQnVpbGRlciBWZXJzaW9uLiBEaXNwbGF5cyB0aGUgdmVyc2lvbiBvZiBGb3JtQnVpbGRlciB5b3UmIzAzOTtyZSB1c2luZyBpbiBhIGNvbW1lbnQgd2hlbiB0aGUgZm9ybSBpcyBnZW5lcmF0ZWQuIFR5cGljYWxseSBvbmx5IHVzZWZ1bCB3aGVuIGRlYnVnZ2luZy48L2xpPg0KPGxpPkVuYWJsZSBwcmltaXRpdmUgYW50aS1zcGFtIGZlYXR1cmVzLiBXaGVuIHR1cm5lZCBvbiwgdGhpcyBhbGxvd3MgYW55IGdpdmVuIElQIGFkZHJlc3MgdG8gb25seSBnZW5lcmF0ZSAxMCBlbWFpbHMgcGVyIGhvdXIuPC9saT4NCjxsaT5TaG93IEZpZWxkIElEcy4gV2hlbiB0dXJuZWQgb24sIEZvcm1CdWlsZGVyIHdpbGwgZGlzcGxheSBmaWVsZCBpZHMgd2hlbiBhZGRpbmcgb3IgZWRpdGluZyBhIGZvcm0uPC9saT4NCjwvdWw+DQo8aDM+U3R5bGluZyBhbmQgQ1NTPC9oMz4NCjxwPlBhdWwgTm9vbmUgZ3JhY2lvdXNseSBwcm92aWRlcyB1cyBhbGwgd2l0aCBhIHByZXR0eSBnb29kIHN0YW5kYXJkIENTUyB0aGF0IHlvdSBjYW4gdXNlIGZvciBmb3Jtczo8L3A+DQo8cHJlPg0KCS8qIFNhbXBsZSBGb3JtQnVpbGRlciBDU1MgYmFzZSAqLw0KCWZvcm0ge21hcmdpbi10b3A6MH0NCglmb3JtLCB0ZCwgdGgsIGxpIHsgZm9udC1zaXplOiAxMDAlfQ0KCWZvcm0gZGl2IHttYXJnaW4tYm90dG9tOjB9DQoJZmllbGRzZXQgZGl2IHsNCgkJbWFyZ2luLWJvdHRvbTowLjVlbTsNCgkJbWFyZ2luLWxlZnQ6MWVtOw0KCX0NCglmaWVsZHNldCBkaXYgZGl2IHsNCgkJbWFyZ2luLXRvcDowLjVlbTsNCgkJbWFyZ2luLWxlZnQ6MWVtDQoJfQ0KCWZpZWxkc2V0IHsNCgkJbWFyZ2luLWJvdHRvbToxZW07DQoJCWJvcmRlcjoxcHggc29saWQgI0Y2MDsNCgkJcGFkZGluZzowLjVlbQ0KCX0NCglmaWVsZHNldCBsYWJlbCB7DQoJCXdpZHRoOmF1dG87DQoJfQ0KCWxlZ2VuZCB7DQoJCWNvbG9yOiNGRkY7DQoJCWJhY2tncm91bmQ6I0Y2MDsNCgkJZm9udC1zdHlsZTppdGFsaWM7DQoJCWZvbnQtc2l6ZToxLjJlbTsNCgkJbWFyZ2luLWJvdHRvbTowLjVlbTsNCgkJcGFkZGluZzowLjJlbTsNCgkJd2lkdGg6YXV0bzsNCgkJYm9yZGVyOjFweCBzb2xpZCAjQ0NDDQoJfQ0KCXRleHRhcmVhIHsNCgkJbWFyZ2luOiAwLjVlbSAwOw0KCQl3aWR0aDo5OCU7DQoJCWhlaWdodDogNmVtDQoJfQ0KDQoJLyogQXBwbHkgdGhpcyBjbGFzcyB0byB0ZXh0L3NlbGVjdCBpbnB1dCBmaWVsZHMgd2l0aCBzaG9ydGVyIGxhYmVscw0KCQl0byBoZWxwIGFsaWdubWVudCAqLw0KCS5zaG9ydC1sYWJlbCBsYWJlbCB7ZmxvYXQ6bGVmdDsgd2lkdGg6MTBlbX0NCgkuc2hvcnQtbGFiZWwgZmllbGRzZXQgZGl2IGlucHV0LA0KCS5zaG9ydC1sYWJlbCBmaWVsZHNldCBkaXYgc2VsZWN0IHt3aWR0aDoxNmVtfQ0KDQoJLyogUHJldHR5IHVwIHlvdXIgQ2FwdGNoYSBpbWFnZSBvdXRwdXQgKi8NCgkuY2FwdGNoYSB7DQoJCW1hcmdpbjowLjVlbSAwOw0KCQl3aWR0aDoyMDBweDsNCgkJdGV4dC1hbGlnbjpjZW50ZXINCgl9DQoJLmNhcHRjaGEgaW1nIHtib3JkZXI6MXB4IHNvbGlkICNGNjA7IG1hcmdpbi1ib3R0b206MC41ZW19DQoJLmNhcHRjaGEgaW5wdXQge3dpZHRoOjE5NnB4OyBtYXJnaW4tdG9wOjAuNWVtfQ0KDQoJLyogSnVzdCBhIGJpdCBtb3JlIHJvb20gZm9yIHRoZSBTdWJtaXQgYnV0dG9uICovDQoJLnN1Ym1pdCB7bWFyZ2luLXRvcDowLjVlbX0NCjwvcHJlPg0KDQo8aDM+Rm9ybSBUZW1wbGF0ZSBWYXJpYWJsZXM8L2gzPg0KDQo8aDM+Rm9ybSBUZW1wbGF0ZSBWYXJpYWJsZXM8L2gzPg0KPHA+WW91IGNhbiBlZGl0IGl0IHRvIG1ha2UgeW91ciBmb3JtIGxheW91dCBsb29rIGFueSB3YXkgeW91JiMwMzk7ZCBsaWtlLg0KICAgVG8gbWFrZSB0aGUgZm9ybSB3b3JrLCB5b3UmIzAzOTtsbCBuZWVkIHRvIGFsd2F5cyBpbmNsdWRlIHRoZSAmYW1wOyMxMjM7JGZiX2hpZGRlbn0gYW5kICZhbXA7IzEyMzskc3VibWl0fQ0KICAgdGFncy48L3A+DQoNCjxwPllvdSBjYW4gYWNjZXNzIHlvdXIgZm9ybSBmaWVsZHMgZWl0aGVyIHVzaW5nIHRoZSAkZmllbGRzIGFycmF5IG9yIGJ5IGRpcmVjdGx5IGFjY2Vzc2luZyBmaWVsZHMgYnkgdGhlaXIgbmFtZXMgKGUuZy4sICZhbXA7IzEyMzskbXlmaWVsZC0+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+S25vd24gSXNzdWVzPC9oMz4NCjx1bD4NCjxsaT5Gb3JtQnVpbGRlciBpcyBub3QgeWV0IGludGVncmF0ZWQgd2l0aCBGcm9udEVuZCBVc2Vycy4gSXQgd2lsbCBiZS48L2xpPg0KPGxpPkZvcm1CdWlsZGVyIGRvZXMgbm90IHlldCBzdXBwb3J0IHByZXR0eSB1cmxzLCBhbHRob3VnaCB0aGF0IHNob3VsZG4mIzAzOTt0IG1hdHRlciBzaW5jZSB0aGUgdXNlciBzaWRlIGlzIHByZXR0eSBzaW1wbGUuPC9saT4NCjwvdWw+DQoNCjxoMz5Ucm91Ymxlc2hvb3Rpbmc8L2gzPg0KPG9sPjxsaT4gRmlyc3Qgc3RlcCBpcyB0byBjaGVjayB5b3UmIzAzOTtyZSBydW5uaW5nIENNUyAxLjEgb3IgbGF0ZXIuPC9saT4NCjxsaT4gU2Vjb25kIHN0ZXAgaXMgdG8gcmVhZCBhbmQgdW5kZXJzdGFuZCB0aGUgY2F2ZWF0IGFib3V0IFdZU0lXWUcgZWRpdG9ycyB1cCBpbiB0aGUNCnNlY3Rpb24gPGVtPkFkZGluZyBhIEZvcm0gdG8gYSBQYWdlPC9lbT4uPC9saT4NCjxsaT4gSWYgeW91JiMwMzk7cmUgbWlzc2luZyBmaWVsZHMgaW4gYW4gZW1haWwgdGhhdCBnZXRzIGdlbmVyYXRlZCwgY2hlY2sgdGhlIGRpc3Bvc2l0aW9uIGZpZWxkJiMwMzk7cyB0ZW1wbGF0ZSwgYW5kIG1ha2Ugc3VyZSB5b3UmIzAzOTtyZSBzcGVjaWZ5aW5nIHRoZSBtaXNzaW5nIGZpZWxkcy4gU2VlbXMgb2J2aW91cywgYnV0IGl0JiMwMzk7cyBhbiBlYXN5IG1pc3Rha2UgdG8gbWFrZS48L2xpPg0KPGxpPlVuY2hlY2sgdGhlICZxdW90O0hpZGUgRXJyb3JzJnF1b3Q7IGNoZWNrYm94IGluIHRoZSBnbG9iYWwgb3B0aW9ucywgYW5kIHNlZSB3aGF0IG1lc3NhZ2UgZ2V0cyBkaXNwbGF5ZWQgd2hlbiB5b3Ugc3VibWl0IHlvdXIgZm9ybS48L2xpPg0KPGxpPiBKdXN0IG1lc3MgYXJvdW5kIGFuZCB0cnkgY2xpY2tpbmcgb24gbGlua3MgYW5kIGljb25zIGFuZCBzdHVmZi4gU2VlIHdoYXQgaGFwcGVucy48L2xpPg0KPGxpPiBMYXN0IHJlc3BvcnQgaXMgdG8gZW1haWwgbWUgb3IgY2F0Y2ggbWUgb24gSVJDIGFuZCB3ZSBjYW4gZ28gZnJvbSB0aGVyZS48L2xpPg0KPC9vbD4gDQo8cD5UaGlzIGlzIG5vIGxvbmdlciBhIHBhcnRpY3VsYXJseSBlYXJseSB2ZXJzaW9uLCBidXQgaXQgaXMgcHJvYmFibHkgc3RpbGwgYnVnZ3kuIFdoaWxlIEkmIzAzOTt2ZSBkb25lIGFsbCBJIGNhbg0KdG8gbWFrZSBzdXJlIG5vIGVncmVnaW91cyBidWdzIGhhdmUgY3JlcHQgaW4sIEkgaGF2ZSB0byBhZG1pdCB0aGF0IGR1cmluZyBlYXJseSB0ZXN0aW5nLCB0aGlzIHByb2dyYW0NCnJldmVhbGVkIHNldmVuIGNvY2tyb2FjaGVzLCB0d28gZWFyd2lncywgYSBzbWFsbCBmYW1pbHkgb2YgYXBoaWRzLCBhbmQgYSB3YWxraW5nLXN0aWNrIGluc2VjdC4gSXQgYWxzbw0KYXRlIHRoZSBuZWlnaGJvciYjMDM5O3MgbmFzdHkgbGl0dGxlIHlhcCBkb2csIGZvciB3aGljaCBJIHdhcyBpbmFwcHJvcHJpYXRlbHkgZ3JhdGVmdWwuPC9wPg0KPHA+VGhlIGZpbmFsIHJlbGVhc2Ugd2lsbCBpbmNsdWRlIGJ1ZyBmaXhlcywgZG9jdW1lbnRhdGlvbiwgYW5kIHVuY29uZGl0aW9uYWwgbG92ZS48L3A+DQo8aDM+U3VwcG9ydDwvaDM+DQo8cD5UaGlzIG1vZHVsZSBkb2VzIG5vdCBpbmNsdWRlIGNvbW1lcmNpYWwgc3VwcG9ydC4gSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+DQo8dWw+DQo8bGk+Rm9yIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIG1vZHVsZSwgRkFRcywgb3IgdG8gZmlsZSBhIEJ1ZyBSZXBvcnQsIHBsZWFzZSB2aXNpdCB0aGUgQ01TIE1hZGUgU2ltcGxlICA8YSBocmVmPSZxdW90O2h0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcmcXVvdDs+RGV2ZWxvcGVyIEZvcmdlPC9hPi48L2xpPg0KPGxpPlRvIG9idGFpbiBjb21tZXJjaWFsIHN1cHBvcnQsIHBsZWFzZSBzZW5kIGFuIGVtYWlsIHRvIHRoZSBhdXRob3IgYXQgPGEgaHJlZj0mcXVvdDttYWlsdG86c2pnQGNtc21vZHVsZXMuY29tJnF1b3Q7PiZhbXA7bHQ7c2pnQGNtc21vZHVsZXMuY29tJmFtcDtndDs8L2E+LjwvbGk+DQo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSZxdW90O2h0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyZxdW90Oz5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi48L2xpPg0KPGxpPlRoZSBhdXRob3IgY2FuIG9mdGVuIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSZxdW90O2lyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2NtcyZxdW90Oz5DTVMgSVJDIENoYW5uZWw8L2E+LjwvbGk+DQo8bGk+TGFzdGx5LCB5b3UgbWF5IGhhdmUgc29tZSBzdWNjZXNzIGVtYWlsaW5nIHRoZSBhdXRob3IgZGlyZWN0bHkgYW5kIGdyb3ZlbGxpbmcgZm9yIGZyZWUgc3VwcG9ydC48L2xpPg0KPC91bD4NCjxwPktlZXAgaW4gbWluZCB0aGF0IHRoZSBhdXRob3IgaGFzIHB1dCBodW5kcmVkcyBvZiBob3VycyBpbnRvIHRoZSBkZXZlbG9wbWVudCBvZiB0aGlzIG1vZHVsZS4gUGxlYXNlIHRha2UgdGhlIHRpbWUgdG8gcmVhZCB0aGUgZG9jdW1lbnRhdGlvbiBiZWZvcmUgc2VuZGluZyBxdWVzdGlvbnMuIEVpdGhlciB0aGF0LCBvciB3cml0ZSB5b3VyIHF1ZXN0aW9ucyBvbiBmaW5hbmNpYWxseSBuZWdvdGlhYmxlIGluc3RydW1lbnRzIChpLmUuLCBjYXNoKS48L3A+DQo8cD5BcyBwZXIgdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCBhcy1pcy4gUGxlYXNlIHJlYWQgdGhlIHRleHQNCm9mIHRoZSBsaWNlbnNlIGZvciB0aGUgZnVsbCBkaXNjbGFpbWVyLjwvcD4NCjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPg0KPHA+Q29weXJpZ2h0ICZhbXA7Y29weTsgMjAwOCwgU2FtdWVsIEdvbGRzdGVpbiA8YSBocmVmPSZxdW90O21haWx0bzpzamdAY21zbW9kdWxlcy5jb20mcXVvdDs+JmFtcDtsdDtzamdAY21zbW9kdWxlcy5jb20mYW1wO2d0OzwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4NCjxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSZxdW90O2h0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCZxdW90Oz5HTlUgUHVibGljIExpY2Vuc2U8L2E+LiBZb3UgbXVzdCBhZ3JlZSB0byB0aGlzIGxpY2Vuc2UgYmVmb3JlIHVzaW5nIHRoZSBtb2R1bGUuPC9wPic7CiRsYW5nWydjaGFuZ2Vsb2cnXSA9ICcNCjx1bD4NCjxsaT5WZXJzaW9uIDAuNS4gMTkgQXByaWwgMDguIEJ1Z2ZpeGVzLCBzdXBwb3J0IGZvciBGb3JtQnJvd3NlciBmaXhlcyBhbmQgZmVhdHVyZXMsIGRpc3Bvc2l0aW9uIHR5cGUgZm9yIHVwY29taW5nIEZvcm1Ccm93c2VyIHZlcnNpb24uPC9saT4NCjxsaT5WZXJzaW9uIDAuNC40LiAyNiBTZXB0IDA3LiBCdWdmaXhlcyBmb3IgcmFkaW8gYnV0dG9uIGdyb3VwcywgZml4IGZvciB2YWxpZGF0aW9uIG9mIERpc3Bvc2l0aW9uRGVsaXZlclRvRW1haWxBZGRyZXNzRmllbGQuPC9saT4NCjxsaT5WZXJzaW9uIDAuNC4zLiAxOCBTZXB0IDA3LiBCdWdmaXhlcyBmb3IgcHVsbGRvd25zIHVzaW5nIG51bWJlcnMsIG9wdGlvbiB0byBpbmxpbmUgZm9ybSwgZml4ZXMgZm9yIHRhYmxlLWxheW91dHMgcHJvdmlkZWQgYnkgQXAgTXV0aHUsIGZpeCBmb3IgcmVxdWlyYWJpbGl0eSBvZiBEaXNwb3NpdGlvbnMuPC9saT4NCjxsaT5WZXJzaW9uIDAuNC4yLiAxNCBTZXB0IDA3LiBCdWdmaXhlcyBmb3IgWE1MIGV4cG9ydCwgUmFkaW9CdXR0b24gR3JvdXAgc3VibWlzc2lvbiwgYW5kIEhUTUwgbGFiZWxzLjwvbGk+DQo8bGk+VmVyc2lvbiAwLjQuMS4gQnVnZml4ZXMgZm9yIEZpbGUgRGlzcG9zaXRpb24gVHlwZXMuPC9saT4NCjxsaT5WZXJzaW9uIDAuNA0KCTx1bD4NCgkJPGxpPlVwcGVkIG1pbmltdW0gQ01TIHZlcnNpb24gdG8gMS4xPC9saT4NCgkJPGxpPk51bWVyb3VzIEJ1ZyBmaXhlczsgdG9vIG1hbnkgdG8gZW51bWVyYXRlIGhlcmU8L2xpPg0KCQk8bGk+TWFzc2l2ZSByZWppZ2dlcmluZyBvZiBjb2RlIHRvIHdvcmsgd2l0aCBDTVMgTVMgMS4xIHBhcmFtZXRlciBzYW5pdGl6aW5nIHJlZ2ltZTwvbGk+DQoJCTxsaT5BZGRlZCBmaWVsZCB0eXBlczogJnF1b3Q7VGV4dEZpZWxkIChNdWx0aXBsZSkmcXVvdDsgYW5kICZxdW90O0NvbXB1dGVkIEZpZWxkJnF1b3Q7PC9saT4NCgkJPGxpPkFkZGVkIGRpc3Bvc2l0aW9uczogJnF1b3Q7U2F2ZSBSZXN1bHRzIHRvIEZpbGUgQmFzZWQgb24gUHVsbGRvd24mcXVvdDsgYW5kICZxdW90O1NhdmUgUmVzdWx0cyB0byBGaWxlKHMpIEJhc2VkIG9uIE11bHRpcGxlIFNlbGVjdGlvbnMmcXVvdDsoQ2FsZ3V5KTwvbGk+DQoJCTxsaT5BZGRlZCBuZWF0LW8gQUpBWC15IHRlbXBsYXRlLWNvcHlpbmcgZm9yIEZvcm0gVGVtcGxhdGVzLCBnYXZlIHZlcnNpb25zIG9mIG9sZCB0YWJsZS1iYXNlZCB0ZW1wbGF0ZXMgdG8gc29vdGhlIHRoZSByYWdpbmcgbWFzc2VzLjwvbGk+DQoJCTxsaT5BZGRlZCBhYmlsaXR5IHRvIHBhc3MgZGVmYXVsdCB2YWx1ZXMgdG8gZm9ybSBlbGVtZW50cyBmcm9tIG1vZHVsZSB0YWcgdXNpbmcgdmFsdWVfRklFTEROQU1FPSZxdW90O3ZhbHVlJnF1b3Q7IHN5bnRheCAoQ2FsZ3V5KTwvbGk+DQoJCTxsaT5BZGRlZCBvcHRpb24gdG8gZGlzcGxheSBmaWVsZCBpZHMgaW4gYWRtaW4gKENhbGd1eSk8L2xpPg0KCTwvdWw+DQo8L2xpPg0KPGxpPlZlcnNpb24gMC4zDQogICA8dWw+DQogICAgICA8bGk+QWRkZWQgQ2FwdGNoYSBtb2R1bGUgc3VwcG9ydC48L2xpPg0KICAgICAgPGxpPlJld29ya2VkIGxhYmVsaW5nIG9mIGZvcm0gZWxlbWVudHMgdG8gYmUgWEhUTUwgY29tcGxpYW50PC9saT4NCiAgICAgIDxsaT5BZGRlZCBQYXVsIE5vb25lJiMwMzk7cyBuZXcsIGltcHJvdmVkIGNvbnRhY3QgZm9ybSB0ZW1wbGF0ZXM8L2xpPg0KICAgICAgPGxpPkltcGxlbWVudGF0aW9uIG9mIEVtYWlsIFN1YmplY3QgRmllbGQ8L2xpPg0KICAgICAgPGxpPkFkZGVkIGFkbWluLXNwZWNpZmlhYmxlIHZhbHVlcyB0byBoaWRkZW4gZmllbGQgdHlwZSwgd2hpY2ggbWF5IGNvbnRhaW4gcGFyc2FibGUgc21hcnR5IHRhZ3M8L2xpPg0KICAgICAgPGxpPlRleHQgQXJlYSBGaWVsZCBub3cgYWxsb3dzIHNwZWNpZmljYXRpb24gb2Ygcm93cyBhbmQgY29scyBpbiB0aGUgYWRtaW4sIGluc3RlYWQgb2YgQ1NTPC9saT4NCiAgICAgIDxsaT5BZGRlZCBEcmFnJiMwMzk7biYjMDM5O0Ryb3AgcmVvcmRlcmluZyBvZiBmb3JtIGZpZWxkcy48L2xpPg0KICAgICAgPGxpPkFkZGVkIG5vbi1ibGFuayBmaWVsZCBuYW1lIGFuZCB1bmlxdWUgZmllbGQgbmFtZSBnbG9iYWwgY29uZmlndXJhdGlvbiBvcHRpb25zIGFuZCB2YWxpZGF0aW9uPC9saT4NCiAgICAgIDxsaT5JbXBsZW1lbnRlZCB0ZW1wbGF0ZWQgZGlzcGxheSBvZiBmb3JtIHJlc3VsdHMgdXBvbiBzdWJtaXNzaW9uIGluIGFkZGl0aW9uIHRvIHBhZ2UgcmVkaXJlY3Rpbmc8L2xpPg0KICAgICAgPGxpPjwvbGk+DQogICA8L3VsPg0KPC9saT4NCjxsaT5WZXJzaW9uIDAuMi40IC0gMDkgTWF5IDIwMDcNCiAgIDxwPkJpZyByZWxlYXNlOjx1bD4NCiAgIDxsaT5BZGRlZCAmcXVvdDtFbWFpbCBGb3JtIHRvIFVzZXItU3VwcGxpZWQgQWRkcmVzcyZxdW90OyBkaXNwb3NpdGlvbi48L2xpPg0KICAgPGxpPkFkZGVkICZxdW90O1RpbWVQaWNrZXImcXVvdDsgZmllbGQgdHlwZS4gU3BsaXQgJnF1b3Q7TGluayZxdW90OyBmaWVsZCBpbnRvIGEgJnF1b3Q7VXNlci1zdXBwbGllZCBMaW5rJnF1b3Q7IGZpZWxkIGFuZCBhICZxdW90O1N0YXRpYyBMaW5rJnF1b3Q7IGZpZWxkLjwvbGk+DQogICA8bGk+QWRkZWQgSFRNTCBlbWFpbCBvcHRpb24gYW5kIGF1dG8tdGVtcGxhdGVzIGZvciBhbGwgZW1haWwgZGlzcG9zaXRpb25zLjwvbGk+DQogICA8bGk+QWRkZWQgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcy48L2xpPg0KICAgPGxpPkFkZGVkIFhNTC1iYXNlZCBpbXBvcnQgYW5kIGV4cG9ydCBvZiBmb3Jtcy48L2xpPg0KICAgPC91bD4NCiAgIDwvcD4NCjwvbGk+DQo8bGk+VmVyc2lvbiAwLjIuMw0KICAgPHA+QWRkIHRoZSBhYmlsaXR5IHRvIGNhbGwgYSBzZWxlY3RhYmxlIHVzZXIgZGVmaW5lZCB0YWcgdXBvbiBkaXNwb3NpdGlvbiBvZiB0aGUgZm9ybS48L3A+DQo8L2xpPg0KPGxpPlZlcnNpb24gMC4yLjINCiAgIDxwPk1hbnkgdGhhbmtzIHRvIFV0dGVyIERlc2lnbiBmb3Igc3BvbnNvcmluZyBzb21lIGNoYW5nZXMgYW5kIGJ1Z2ZpeGVzLCB3aGljaCBpbmNsdWRlOg0KICAgPHVsPg0KICAgICAgPGxpPkFkZGVkIGZpbGUgdXBsb2FkIGNhcGFiaWxpdGllcyB0byB0aGUgZW1haWwgZGlzcG9zaXRpb248L2xpPg0KICAgICAgPGxpPkFkZCBQYWdlU2V0U3RhcnQgYW5kIFBhZ2VTZXRFbmQgZmllbGQgdHlwZXMNCiAgICAgIDxwPlRoZXNlIGZpZWxkIHR5cGVzIGFsbG93IHlvdSB0byBjcmVhdGUgZmllbGRzZXRzIGluIHlvdXIgZm9ybSwgYW5kIG9yZ2FuaXNlDQogICAgICB5b3VyIGZpZWxkcyBsb2dpY2FsbHkgZm9yIHRoZSB1c2VyLiAgWW91IGNhbiBldmVuIG5lc3QgZmllbGRzZXRzLCBhbmQNCiAgICAgIGFzc29jaWF0ZSBhIHN0eWxlIHdpdGggdGhlbSBhcHByb3ByaWF0ZWx5LiAgVGhlIGRlZmF1bHQgdGVtcGxhdGUgd2FzIGNoYW5nZWQNCiAgICAgIHRvIHByZXZlbnQgaXQgZnJvbSB3cmFwcGluZyBhIGRpdiBhcm91bmQgdGhlc2UgdHlwZXMgb2YgZmllbGRzLg0KICAgICAgPC9wPg0KICAgICAgPC9saT4NCiAgICAgIDxsaT5GaXhlZCBhIHByb2JsZW0gd2l0aCBEQVRFVElNRSBmaWVsZHMgb24gaW5zdGFsbA0KICAgICAgPHA+VGhpcyBzb2x2ZXMgYSBwcm9ibGVtIHdoZW4gb24gaW5zdGFsbCB0aGUgcmVzcG9uc2UgdGFibGUgd291bGQgc29tZXRpbWVzIG5vdCBnZXQgY3JlYXRlZCB3aGVuIHVzaW5nIGFkb2RiIGxpdGU8L2xpPg0KICAgICAgPC9saT4NCiAgIDwvdWw+DQogICA8L3A+DQo8L2xpPg0KPGxpPlZlcnNpb24gMC4yIC0gMTQgTm92ZW1iZXIgMjAwNi4gQ2FsZ3V5ICZhbXA7YW1wOyB0c3cmIzAzOTtzIGJ1ZyBmaXhlcyBmb3IgZmllbGQgcmUtb3JkZXJpbmcgYW5kIGN1c3RvbSB0ZW1wbGF0ZXMuIEFkZGl0aW9uYWwgYnVnIGZpeGVzIGZvciBmaWVsZCBsYWJlbHMuPC9saT4NCjxsaT5WZXJzaW9uIDAuMSAtIDggSnVseSAyMDA2LiBJbml0aWFsIFJlbGVhc2U8L2xpPg0KPC91bD4nOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My43MTk3NzU4MjQuMTIwODk1MjAxMS4xMjA5MjM1NDE4LjEyMDk0NjY1MDcuMTAnOwokbGFuZ1sndXRteiddID0gJzE1Njg2MTM1My4xMjA5MjEzMDQ2LjcuMy51dG1jc3I9Y21zbWFkZXNpbXBsZS5vcmd8dXRtY2NuPShyZWZlcnJhbCl8dXRtY21kPXJlZmVycmFsfHV0bWNjdD0vJzsKJGxhbmdbJ3V0bWInXSA9ICcxNTY4NjEzNTMnOwokbGFuZ1sndXRtYyddID0gJzE1Njg2MTM1Myc7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lang/ext/ru_RU.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ9Ca0L7QvdGB0YLRgNGD0LrRgtC+0YAg0YTQvtGA0LwnOwokbGFuZ1snZmllbGRfdHlwZV8nXSA9ICfQndC1INGD0LrQsNC30LDQvSDRgtC40L8g0L/QvtC70Y8nOwokbGFuZ1snZmllbGRfdHlwZV9DYXRhbG9nZXJJdGVtc0ZpZWxkJ10gPSAn0JLRi9Cx0LXRgNC40YLQtSDQvtC00L3RgyDQuNC70Lgg0LHQvtC70LXQtSDQv9C+0LfQuNGG0LjRjiDQuNC3INC60LDRgtCw0LvQvtCz0LAnOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldEVuZCddID0gJ9Ca0L7QvdC10YYg0LPRgNGD0L/Qv9GLINC/0L7Qu9C10LkgKGZpZWxkc2V0KSc7CiRsYW5nWydmaWVsZF90eXBlX0ZpZWxkc2V0U3RhcnQnXSA9ICfQndCw0YfQsNC70L4g0LPRgNGD0L/Qv9GLINC/0L7Qu9C10LkgKGZpZWxkc2V0KSc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRGaWVsZCddID0gJ9Ci0LXQutGB0YLQvtCy0L7QtSDQv9C+0LvQtSAoaW5wdXQpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkRXhwYW5kYWJsZSddID0gJ9Ci0LXQutGB0YLQvtCy0L7QtSDQv9C+0LvQtSAo0L3QtdGB0LrQvtC70YzQutC+INGI0YLRg9C6KSc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRBcmVhRmllbGQnXSA9ICfQotC10LrRgdGC0L7QstC+0LUg0L7QutC90L4gKHRleHRhcmVhKSc7CiRsYW5nWydmaWVsZF90eXBlX0NoZWNrYm94RmllbGQnXSA9ICfQk9Cw0LvQvtGH0LrQsCAoY2hlY2tib3gpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hHcm91cEZpZWxkJ10gPSAn0J3QtdGB0LrQvtC70YzQutC+INCz0LDQu9C+0YfQtdC6IChjaGVja2JveCBncm91cCknOwokbGFuZ1snZmllbGRfdHlwZV9QdWxsZG93bkZpZWxkJ10gPSAn0JLRi9C/0LDQtNCw0Y7RidC40Lkg0YHQv9C40YHQvtC6JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTXVsdGlzZWxlY3RGaWVsZCddID0gJ9Cc0L3QvtC20LXRgdGC0LLQtdC90L3Ri9C5INCy0YvQsdC+0YAnOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0ZVBpY2tlckZpZWxkJ10gPSAn0JLRi9Cx0L7RgCDRiNGC0LDRgtC+0LIg0KHQqNCQJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUHJvdmluY2VQaWNrZXJGaWVsZCddID0gJ9CS0YvQsdC+0YAg0LrQsNC90LDQtNGB0LrQvtC5INC/0YDQvtCy0LjQvdGG0LjQuCc7CiRsYW5nWydmaWVsZF90eXBlX0NvdW50cnlQaWNrZXJGaWVsZCddID0gJ9CS0YvQsdC+0YAg0YHRgtGA0LDQvdGLJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGF0ZVBpY2tlckZpZWxkJ10gPSAn0JLRi9Cx0L7RgCDQtNCw0YLRiyc7CiRsYW5nWydmaWVsZF90eXBlX1RpbWVQaWNrZXJGaWVsZCddID0gJ9CS0YvQsdC+0YAg0LLRgNC10LzQtdC90LgnOwokbGFuZ1snZmllbGRfdHlwZV9SYWRpb0dyb3VwRmllbGQnXSA9ICfQk9GA0YPQv9C/0LAg0YDQsNC00LjQvtC60L3QvtC/0L7Quic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGlyZWN0b3InXSA9ICcqRW1haWwgUmVzdWx0cyBCYXNlZCBvbiBQdWxsZG93bic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRmlsZURpcmVjdG9yJ10gPSAnKlNhdmUgUmVzdWx0cyB0byBGaWxlIEJhc2VkIG9uIFB1bGxkb3duJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25NdWx0aXNlbGVjdEZpbGVEaXJlY3RvciddID0gJypTYXZlIFJlc3VsdHMgdG8gRmlsZShzKSBCYXNlZCBvbiBNdWx0aXBsZSBTZWxlY3Rpb25zJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25QYWdlUmVkaXJlY3RvciddID0gJypSZWRpcmVjdCB0byBQYWdlIEJhc2VkIG9uIFB1bGxkb3duJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbCddID0gJyrQntGC0L/RgNCw0LLQuNGC0Ywg0YDQtdC30YPQu9GM0YLQsNGCINC90LAg0YPQutCw0LfQsNC90L3Ri9C1IGUtbWFpbCDQsNC00YDQtdGB0LAnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsQ29uZmlybWF0aW9uJ10gPSAnKlZhbGlkYXRlLXZpYS1FbWFpbCBBZGRyZXNzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Gcm9tRW1haWxBZGRyZXNzRmllbGQnXSA9ICcqRW1haWwgIkZyb20gQWRkcmVzcyIgRmllbGQsIGFuZCBzZW5kIGNvcHknOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZpbGUnXSA9ICcq0JfQsNC/0LjRgdCw0YLRjCDRgNC10LfRg9C70YzRgtCw0YLRiyDQsiDRhNCw0LnQuyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGF0YWJhc2UnXSA9ICcq0JfQsNC/0LjRgdCw0YLRjCDRgNC10LfRg9C70YzRgtCw0YLRiyDQsiDQsdCw0LfRgyDQtNCw0L3QvdGL0YUnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZvcm1Ccm93c2VyJ10gPSAnKtCX0LDQv9C40YHQsNGC0Ywg0YDQtdC30YPQu9GM0YLQsNGC0Ysg0LIg0YTQvtGA0LzQsNGC0LUgRm9ybUJyb3dzZXIgTW9kdWxlIHYuMyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uVXNlclRhZyddID0gJyrQktGL0LfQstCw0YLRjCDRgtC10LMg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPINGBINGA0LXQt9GD0LvRjNGC0LDRgtCw0LzQuCDRhNC+0YDQvNGLINCyINC60LDRh9C10YHRgtCy0LUg0L/QsNGA0LDQvNC10YLRgNC+0LInOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRlbGl2ZXJUb0VtYWlsQWRkcmVzc0ZpZWxkJ10gPSAnKtCe0YLQv9GA0LDQstC40YLRjCDQv9C+INCw0LTRgNC10YHRgywg0YPQutCw0LfQsNC90L3QvtC80YMg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C10LwnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsU2l0ZUFkbWluJ10gPSAnKtCe0YLQv9GA0LDQstC40YLRjCDQsNC00LzQuNC90LjRgdGC0YDQsNGC0L7RgNGDIENNUyc7CiRsYW5nWydmaWVsZF90eXBlX1BhZ2VCcmVha0ZpZWxkJ10gPSAnLdCg0LDQt9GA0YvQsiDRgdGC0YDQsNC90LjRhtGLJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmlsZVVwbG9hZEZpZWxkJ10gPSAn0JfQsNCz0YDRg9C30LrQsCDRhNCw0LnQu9CwJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsQWRkcmVzc0ZpZWxkJ10gPSAn0J/QvtGH0YLQvtCy0L7QtSDQv9C+0LvQtSAiRS1tYWlsINC+0YLQv9GA0LDQstC40YLQtdC70Y8iJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsQWRkcmVzc0FnYWluRmllbGQnXSA9ICfQn9C+0YfRgtC+0LLQvtC1INC/0L7Qu9C1ICJFLW1haWwg0L7RgtC/0YDQsNCy0LjRgtC10LvRjyIgLSDQv9C+0LLRgtC+0YAnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxOYW1lRmllbGQnXSA9ICfQn9C+0YfRgtC+0LLQvtC1INC/0L7Qu9C1ICLQmNC80Y8g0L7RgtC/0YDQsNCy0LjRgtC10LvRjyInOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxTdWJqZWN0RmllbGQnXSA9ICfQn9C+0YfRgtC+0LLQvtC1INC/0L7Qu9C1ICLQotC10LzQsCInOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0aWNUZXh0RmllbGQnXSA9ICct0KHRgtCw0YLQuNGH0LXRgdC60LjQuSDRgtC10LrRgdGCJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3lzdGVtTGlua0ZpZWxkJ10gPSAnLdCh0YLQsNGC0LjRh9C10YHQutCw0Y8g0YHRgdGL0LvQutCwJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTGlua0ZpZWxkJ10gPSAn0KHRgdGL0LvQutCwICjQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8pJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfSGlkZGVuRmllbGQnXSA9ICct0KHQutGA0YvRgtC+0LUg0L/QvtC70LUnOwokbGFuZ1snZmllbGRfdHlwZV9Db21wdXRlZEZpZWxkJ10gPSAnLdCS0YvRh9C40YHQu9C10L3QvdC+0LUg0L/QvtC70LUnOwokbGFuZ1snZmllbGRfdHlwZV9VbmlxdWVJbnRlZ2VyRmllbGQnXSA9ICct0J3QtSDQv9C+0LLRgtC+0YDRj9GO0YnQtdC10YHRjyDRhtC10LvQvtC1INGH0LjRgdC70L4gKHNlcmlhbCknOwokbGFuZ1sndmFsaWRhdGlvbl9ub25lJ10gPSAn0J3QtdGCINC/0YDQvtCy0LXRgNC60LgnOwokbGFuZ1sndmFsaWRhdGlvbl9udW1lcmljJ10gPSAn0KfQuNGB0LvQvic7CiRsYW5nWyd2YWxpZGF0aW9uX2ludGVnZXInXSA9ICfQptC10LvQvtC1INGH0LjRgdC70L4nOwokbGFuZ1sndmFsaWRhdGlvbl9lbWFpbF9hZGRyZXNzJ10gPSAn0JDQtNGA0LXRgSBlLW1haWwnOwokbGFuZ1sndmFsaWRhdGlvbl91c3Bob25lJ10gPSAn0J3QvtC80LXRgCDRgtC10LvQtdGE0L7QvdCwICjQodCo0JApJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbXVzdF9jaGVjayddID0gJ9CU0L7Qu9C20L3QsCDQsdGL0YLRjCDQv9GA0L7RgdGC0LDQstC70LXQvdCwINCz0LDQu9C+0YfQutCwJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbWF0Y2gnXSA9ICfQlNC+0LvQttC90L4g0L/QvtC00YXQvtC00LjRgtGMINC/0L7QtCDRgNC10LPRg9C70Y/RgNC90L7QtSDQstGL0YDQsNC20LXQvdC40LUnOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9ub21hdGNoJ10gPSAn0J3QtSDQtNC+0LvQttC90L4g0L/QvtC00YXQvtC00LjRgtGMINC/0L7QtCDRgNC10LPRg9C70Y/RgNC90L7QtSDQstGL0YDQsNC20LXQvdC40LUnOwokbGFuZ1sncmVxdWlyZWRfZmllbGRfbWlzc2luZyddID0gJ9Ce0LHRj9C30LDRgtC10LvRjNC90L7QtSDQv9C+0LvQtSDRhNC+0YDQvNGLINC90LUg0LHRi9C70L4g0LfQsNC/0L7Qu9C90LXQvdC+JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX3ZhbHVlJ10gPSAn0J/QvtC20LDQu9GD0LnRgdGC0LAsINC30LDQv9C+0LvQvdC40YLQtSDQv9C+0LvQtSAiJXMiJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX251bWJlciddID0gJ9Cf0L7QttCw0LvRg9C50YHRgtCwLCDQstCy0LXQtNC40YLQtSDRh9C40YHQu9C+INC00LvRjyDQv9C+0LvRjyAiJXMiJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl92YWxpZCddID0gJ9Cf0L7QttCw0LvRg9C50YHRgtCwLCDQutC+0YDRgNC10LrRgtC90L4g0LfQsNC/0L7Qu9C90LjRgtC1INC/0L7Qu9C1ICIlcyInOwokbGFuZ1sncGxlYXNlX2VudGVyX2FuX2ludGVnZXInXSA9ICfQn9C+0LbQsNC70YPQudGB0YLQsCwg0LLQstC10LTQuNGC0LUg0YbQtdC70L7QtSDRh9C40YHQu9C+INC00LvRjyDQv9C+0LvRjyAiJXMiJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hbl9lbWFpbCddID0gJ9CS0LLQtdC00LjRgtC1INC60L7RgNGA0LXQutGC0L3Ri9C5IGUtbWFpbCDQsNC00YDQtdGBINCyINC/0L7Qu9C1ICIlcyInOwokbGFuZ1snZW1haWxfYWRkcmVzc19kb2VzX25vdF9tYXRjaCddID0gJ9CS0LLQtdC00LXQvdC90YvQuSBlLW1haWwg0LDQtNGA0LXRgSDQvdC1INGB0L7QstC/0LDQtNCw0LXRgiDRgSDQv9C+0LvQtdC8ICIlcyInOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfcGhvbmUnXSA9ICfQn9C+0LbQsNC70YPQudGB0YLQsCwg0LLQstC10LTQuNGC0LUg0LIg0L/QvtC70LUgIiVzIiDQutC+0YDRgNC10LrRgtC90YvQuSDQvdC+0LzQtdGAINGC0LXQu9C10YTQvtC90LAnOwokbGFuZ1snbm90X3ZhbGlkX2VtYWlsJ10gPSAn0JDQtNGA0LXRgSwg0LLQstC10LTQtdC90L3Ri9C5INCyINC/0L7Qu9C1ICIlcyIg0L3QtSDRj9Cy0LvRj9C10YLRgdGPINC60L7RgNGA0LXQutGC0L3Ri9C8IGUtbWFpbCDQsNC00YDQtdGB0L7QvCEnOwokbGFuZ1sncGxlYXNlX2VudGVyX25vX2xvbmdlciddID0gJ9Cf0L7QttCw0LvRg9C50YHRgtCwLCDQstCy0LXQtNC40YLQtSDQt9C90LDRh9C10L3QuNC1INC90LUg0L/RgNC10LLRi9GI0LDRjtGJ0LXQtSAlcyDRgdC40LzQstC+0LvQvtCyJzsKJGxhbmdbJ3RpdGxlX2xpc3RfZGVsaW1pdGVyJ10gPSAnQ2hhcmFjdGVyIHRvIHVzZSBhcyBkZWxpbWl0ZXIgaW4gcmVzdWx0cyB0aGF0IHJldHVybiBtb3JlIHRoYW4gb25lIHZhbHVlJzsKJGxhbmdbJ3lvdV9uZWVkX3Blcm1pc3Npb24nXSA9ICfQktCw0Lwg0L3Rg9C20L3RiyDQv9GA0LDQstCwICIlcyIsINGH0YLQvtCx0Ysg0LLRi9C/0L7Qu9C90LjRgtGMINGN0YLQviDQtNC10LnRgdGC0LLQuNC1Lic7CiRsYW5nWydsYWNrcGVybWlzc2lvbiddID0gJ9CY0LfQstC40L3QuNGC0LUsINC90L4g0YMg0LLQsNGBINC90LXRgiDQv9GA0LDQsiDQtNC+0YHRgtGD0L/QsCDQuiDRjdGC0L7QuSDRh9Cw0YHRgtC4INGB0LDQudGC0LAuJzsKJGxhbmdbJ2ZpZWxkX29yZGVyX3VwZGF0ZWQnXSA9ICfQn9C+0YDRj9C00L7QuiDQv9C+0LvQtdC5INC+0LHQvdC+0LLQu9C10L0uJzsKJGxhbmdbJ2Zvcm1fZGVsZXRlZCddID0gJ9Ck0L7RgNC80LAg0YPQtNCw0LvQtdC90LAuJzsKJGxhbmdbJ2ZpZWxkX2RlbGV0ZWQnXSA9ICfQn9C+0LvQtSDRg9C00LDQu9C10L3Qvi4nOwokbGFuZ1snY29uZmlndXJhdGlvbl91cGRhdGVkJ10gPSAn0JrQvtC90YTQuNCz0YPRgNCw0YbQuNGPINC+0LHQvdC+0LLQu9C10L3QsC4nOwokbGFuZ1sneW91X211c3RfY2hlY2snXSA9ICdZb3UgbXVzdCBjaGVjayAiJXMiIGluIG9yZGVyIHRvIGNvbnRpbnVlLic7CiRsYW5nWydtdXN0X3NwZWNpZnlfb25lX2Rlc3RpbmF0aW9uJ10gPSAn0JLQsNC8INC90LXQvtCx0YXQvtC00LjQvNC+INGD0LrQsNC30LDRgtGMINC60LDQuiDQvNC40L3QuNC80YPQvCDQvtC00LjQvSDQsNC00YDQtdGBINC90LDQt9C90LDRh9C10L3QuNGPISc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2Zvcm0nXSA9ICfQktGLINGD0LLQtdGA0LXQvdGLLCDRh9GC0L4g0YXQvtGC0LjRgtC1INGD0LTQsNC70LjRgtGMINGE0L7RgNC80YMgJXM/JzsKJGxhbmdbJ2FyZV95b3Vfc3VyZV9kZWxldGVfZmllbGQnXSA9ICfQktGLINGD0LLQtdGA0LXQvdGLLCDRh9GC0L4g0YXQvtGC0LjRgtC1INGD0LTQsNC70LjRgtGMINC/0L7Qu9C1ICVzPyc7CiRsYW5nWydub3RpY2Vfc2VsZWN0X3R5cGUnXSA9ICfQn9C+0LrQsCDQvdC1INGD0LrQsNC30LDQvSDRgtC40L8g0L/QvtC70Y8sINC00L7Qv9C+0LvQvdC40YLQtdC70YzQvdGL0LUg0L3QsNGB0YLRgNC+0LnQutC4INC90LUg0L7RgtC+0LHRgNCw0LbQsNGO0YLRgdGPLic7CiRsYW5nWydmaWVsZF9uYW1lX2luX3VzZSddID0gJ1RoZSBmaWVsZCBuYW1lICIlcyIgaXMgYWxyZWFkeSBpbiB1c2UuIFBsZWFzZSB1c2UgdW5pcXVlIGZpZWxkIG5hbWVzLCBvciBkaXNhYmxlIHVuaXF1ZSBmaWVsZCBuYW1lcyBpbiB0aGUgRm9ybSBCdWlsZGVyIGNvbmZpZ3VyYXRpb24uJzsKJGxhbmdbJ2ZpZWxkX25vX25hbWUnXSA9ICfQmtCw0LbQtNC+0LzRgyDQv9C+0LvRjiDQtNC+0LvQttC90L4g0LHRi9GC0Ywg0L/RgNC40YHQstC+0LXQvdC+INC40LzRjywg0LXRgdC70Lgg0YLQvtC70YzQutC+INGN0YLQviDQvdC1INC+0YLQutC70Y7Rh9C10L3QviDQsiDQvdCw0YHRgtGA0L7QudC60LDRhSDQmtC+0L3RgdGC0YDRg9C60YLQvtGA0LAg0YTQvtGA0LwuJzsKJGxhbmdbJ2Fub255bW91cyddID0gJ9CQ0L3QvtC90LjQvNC90L4nOwokbGFuZ1snYWJicmV2aWF0aW9uX2xlbmd0aCddID0gJ9CU0LvQuNC90LA6ICVzJzsKJGxhbmdbJ2JveGVzJ10gPSAnJXMgYm94ZXMnOwokbGFuZ1snb3B0aW9ucyddID0gJyVzINC+0L/RhtC40LknOwokbGFuZ1sndGV4dF9sZW5ndGgnXSA9ICclcyDRgdC40LzQstC+0LvQvtCyLic7CiRsYW5nWydvcmRlciddID0gJ9Cf0L7RgNGP0LTQvtC6JzsKJGxhbmdbJ3Vuc3BlY2lmaWVkJ10gPSAnW9C90LUg0YPQutCw0LfQsNC90L5dJzsKJGxhbmdbJ2FkZGVkJ10gPSAn0LTQvtCx0LDQstC70LXQvdC+JzsKJGxhbmdbJ3VwZGF0ZWQnXSA9ICfQvtCx0L3QvtCy0LvQtdC90L4nOwokbGFuZ1snc29ydF9vcHRpb25zJ10gPSAn0KHQvtGA0YLQuNGA0L7QstCw0YLRjCDQvdCw0YHRgtGA0L7QudC60Lgg0L/RgNC4INCy0YvQstC+0LTQtSc7CiRsYW5nWydzZWxlY3Rfb25lJ10gPSAn0JLRi9Cx0LXRgNC40YLQtSDQvtC00LjQvSDQuNC3INC/0YDQtdC00LvQsNCz0LDQtdC80YvRhSDQstCw0YDQuNCw0L3RgtC+0LInOwokbGFuZ1snc2VsZWN0X3R5cGUnXSA9ICfQktGL0LHQtdGA0LjRgtC1INGC0LjQvyc7CiRsYW5nWyd0byddID0gJ9Ca0L7QvNGDJzsKJGxhbmdbJ3llcyddID0gJ9CU0LAnOwokbGFuZ1snbm8nXSA9ICfQndC10YInOwokbGFuZ1sncmVjaXBpZW50cyddID0gJ9C/0L7Qu9GD0YfQsNGC0LXQu9C4JzsKJGxhbmdbJ2ZpbGVfY291bnQnXSA9ICclcyBwb3NzaWJsZSBmaWxlcyc7CiRsYW5nWydkZXN0aW5hdGlvbl9jb3VudCddID0gJyVzIGRlc3RpbmF0aW9ucyc7CiRsYW5nWydzYXZlJ10gPSAn0KHQvtGF0YDQsNC90LjRgtGMJzsKJGxhbmdbJ2FkZCddID0gJ9CU0L7QsdCw0LLQuNGC0YwnOwokbGFuZ1sndXBkYXRlJ10gPSAn0J7QsdC90L7QstC40YLRjCc7CiRsYW5nWydzYXZlX2FuZF9jb250aW51ZSddID0gJ9Ch0L7RhdGA0LDQvdC40YLRjCDQuCDQv9GA0L7QtNC+0LvQttC40YLRjCDRgNC10LTQsNC60YLQuNGA0L7QstCw0L3QuNC1JzsKJGxhbmdbJ2luZm9ybWF0aW9uJ10gPSAn0JjQvdGE0L7RgNC80LDRhtC40Y8nOwokbGFuZ1snYXV0b21hdGljJ10gPSAn0JDQstGC0L7QvNCw0YLQuNGH0LXRgdC60LgnOwokbGFuZ1snZm9ybXMnXSA9ICfQpNC+0YDQvNGLJzsKJGxhbmdbJ2Zvcm0nXSA9ICfQpNC+0YDQvNCwICIlcyInOwokbGFuZ1snY29uZmlndXJhdGlvbiddID0gJ9Ca0L7QvdGE0LjQs9GD0YDQsNGG0LjRjyc7CiRsYW5nWydmaWVsZF9yZXF1aXJlbWVudF91cGRhdGVkJ10gPSAnRmllbGQgcmVxdWlyZWQgc3RhdGUgdXBkYXRlZC4nOwokbGFuZ1snbWF4aW11bV9zaXplJ10gPSAn0JzQsNC60YEuINGA0LDQt9C80LXRgCc7CiRsYW5nWydwZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ9Cg0LDRgdGI0LjRgNC10L3QuNGPJzsKJGxhbmdbJ3Blcm1pdHRlZF9maWxldHlwZXMnXSA9ICfQoNCw0LfRgNC10YjQtdC90L3Ri9C1INGC0LjQv9GLINGE0LDQudC70L7Qsic7CiRsYW5nWydmaWxlX3Rvb19sYXJnZSddID0gJ9CX0LDQutCw0YfQsNC90L3Ri9C5INGE0LDQudC7INGB0LvQuNGI0LrQvtC8INCy0LXQu9C40LohINCc0LDQutGB0LjQvNCw0LvRjNC90YvQuSDQtNC+0L/Rg9GB0YLQuNC80YvQuSDRgNCw0LfQvNC10YA6JzsKJGxhbmdbJ2lsbGVnYWxfZmlsZV90eXBlJ10gPSAn0JfQsNC60LDRh9C60LAg0YTQsNC50LvQvtCyINGN0YLQvtCz0L4g0YLQuNC/0LAg0LfQsNC/0YDQtdGJ0LXQvdCwLiDQn9C+0LbQsNC70YPQudGB0YLQsCwg0L/RgNC+0LLQtdGA0YzRgtC1LCDRh9GC0L4g0LTQsNC70Lgg0YTQsNC50LvRgyDQutC+0YDRgNC10LrRgtC90L7QtSDRgNCw0YHRiNC40YDQtdC90LjQtS4nOwokbGFuZ1sndXBsb2FkJ10gPSAn0JfQsNC60LDRh9Cw0YLRjCc7CiRsYW5nWydmb3JtX2ltcG9ydGVkJ10gPSAn0KTQvtGA0LzQsCDQuNC80L/QvtGA0YLQuNGA0L7QstCw0L3QsC4nOwokbGFuZ1snZm9ybV9pbXBvcnRfZmFpbGVkJ10gPSAn0KTQvtGA0LzQsCDQvdC1INCx0YvQu9CwINC40LzQv9C+0YDRgtC40YDQvtCy0LDQvdCwISDQpNC+0YDQvNCw0YIgWE1MLdGE0LDQudC70LAg0L3QtdC60L7RgNGA0LXQutGC0L3Ri9C5Lic7CiRsYW5nWydyb3dzJ10gPSAnJXMg0YHRgtGA0L7Quic7CiRsYW5nWydjb2xzJ10gPSAnJXMg0LrQvtC70L7QvdC+0LonOwokbGFuZ1snMTJfaG91ciddID0gJzEyLdGH0LDRgdC+0LLRi9C1INGH0LDRgdGLJzsKJGxhbmdbJzI0X2hvdXInXSA9ICcyNC3Rh9Cw0YHQvtCy0YvQtSDRh9Cw0YHRiyc7CiRsYW5nWydob3VyJ10gPSAn0KfQsNGBJzsKJGxhbmdbJ21pbiddID0gJ9Cc0LjQvdGD0YLQsCc7CiRsYW5nWydtZXJpZCddID0gJ9Cc0LXRgNC40LTQuNCw0L0nOwokbGFuZ1snZGF0ZV9yYW5nZSddID0gJ9CY0L3RgtC10YDQstCw0Ls6ICVzIC0gJXMnOwokbGFuZ1sndGhhbmtzJ10gPSAn0KHQv9Cw0YHQuNCx0L4hINCS0LDRiCDQt9Cw0L/RgNC+0YEg0LHRi9C7INC/0L7Qu9GD0YfQtdC9Lic7CiRsYW5nWydlZGl0J10gPSAn0KDQtdC00LDQutGC0LjRgNC+0LLQsNGC0YwnOwokbGFuZ1snZGVsZXRlJ10gPSAn0KPQtNCw0LvQuNGC0YwnOwokbGFuZ1snZGF5J10gPSAn0JTQtdC90YwnOwokbGFuZ1snbW9uJ10gPSAn0JzQtdGB0Y/Rhic7CiRsYW5nWyd5ZWFyJ10gPSAn0JPQvtC0JzsKJGxhbmdbJ25vbmUnXSA9ICco0L3QtdGCKSc7CiRsYW5nWydjc3MnXSA9ICfQoVNTJzsKJGxhbmdbJ3VuaW5zdGFsbGVkJ10gPSAn0JzQvtC00YPQu9GMINGD0LTQsNC70LXQvS4nOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAn0JzQvtC00YPQu9GMINCy0LXRgNGB0LjQuCAlcyDRg9GB0YLQsNC90L7QstC70LXQvS4nOwokbGFuZ1sndXBncmFkZWQnXSA9ICfQnNC+0LTRg9C70Ywg0L7QsdC90L7QstC70LXQvSDQtNC+INCy0LXRgNGB0LjQuCAlcy4nOwokbGFuZ1snYnV0dG9uX3ByZXZpb3VzJ10gPSAn0J3QsNC30LDQtC4uLic7CiRsYW5nWydidXR0b25fc3VibWl0J10gPSAn0J7RgtC/0YDQsNCy0LjRgtGMJzsKJGxhbmdbJ2J1dHRvbl9jb250aW51ZSddID0gJ9CU0LDQu9C10LUuLi4nOwokbGFuZ1sndmFsdWVfY2hlY2tlZCddID0gJ9Cf0YDQvtGB0YLQsNCy0LvQtdC90LAg0LPQsNC70L7Rh9C60LAnOwokbGFuZ1sndmFsdWVfdW5jaGVja2VkJ10gPSAn0J3QtSDQv9GA0L7RgdGC0LDQstC70LXQvdCwINCz0LDQu9C+0YfQutCwJzsKJGxhbmdbJ3RhYl9tYWluJ10gPSAn0J7RgdC90L7QstC90YvQtSDQvdCw0YHRgtGA0L7QudC60LgnOwokbGFuZ1sndGFiX3N5bWJvbCddID0gJ9Cd0LDRgdGC0YDQvtC50LrQuCDQvtGC0L7QsdGA0LDQttC10L3QuNGPINGE0L7RgNC80YsnOwokbGFuZ1sndGFiX3N1Ym1pdCddID0gJ9Cd0LDRgdGC0YDQvtC50LrQuCDQvtGC0L/RgNCw0LLQutC4INGE0L7RgNC80YsnOwokbGFuZ1sndGFiX2NhcHRjaGEnXSA9ICfQndCw0YHRgtGA0L7QudC60LggQ2FwdGNoYSc7CiRsYW5nWyd0YWJfYWR2YW5jZWQnXSA9ICfQlNC+0L/QvtC70L3QuNGC0LXQu9GM0L3Ri9C1INC90LDRgdGC0YDQvtC50LrQuCc7CiRsYW5nWyd0YWJfdGVtcGxhdGVsYXlvdXQnXSA9ICfQqNCw0LHQu9C+0L0g0YTQvtGA0LzRiyc7CiRsYW5nWyd0YWJfc3VibWlzc2lvbnRlbXBsYXRlJ10gPSAn0KjQsNCx0LvQvtC9INC+0YLQv9GA0LDQstC60Lgg0YTQvtGA0LzRiyc7CiRsYW5nWydjYW51c2Vfc21hcnR5J10gPSAnPGVtPtCSINGN0YLQvtC8INC/0L7Qu9C1INC80L7QttC90L4g0LjRgdC/0L7Qu9GM0LfQvtCy0LDRgtGMINC/0LXRgNC10LzQtdC90L3Ri9C1IFNtYXJ0eS48L2VtPic7CiRsYW5nWydhZGRfb3B0aW9ucyddID0gJ9CU0L7QsdCw0LLQuNGC0Ywg0LXRidGRINC+0L/RhtC40LknOwokbGFuZ1snZGVsZXRlX29wdGlvbnMnXSA9ICfQo9C00LDQu9C40YLRjCDQvtGC0LzQtdGH0LXQvdC90YvQtSDQvtC/0YbQuNC4JzsKJGxhbmdbJ2FkZF9jaGVja2JveGVzJ10gPSAn0JTQvtCx0LDQstC40YLRjCDQtdGJ0ZEg0LPQsNC70L7Rh9C10LonOwokbGFuZ1snZGVsZXRlX2NoZWNrYm94ZXMnXSA9ICfQo9C00LDQu9C40YLRjCDQvtGC0LzQtdGH0LXQvdC90YvQtSDQs9Cw0LvQvtGH0LrQuCc7CiRsYW5nWydhZGRfYWRkcmVzcyddID0gJ9CU0L7QsdCw0LLQuNGC0Ywg0LTRgNGD0LPQvtC5INCw0LTRgNC10YEnOwokbGFuZ1snZGVsZXRlX2FkZHJlc3MnXSA9ICfQo9C00LDQu9C40YLRjCDQvtGC0LzQtdGH0LXQvdC90YvQtSDQsNC00YDQtdGB0LAnOwokbGFuZ1snYWRkX2Rlc3RpbmF0aW9uJ10gPSAnQWRkIEFub3RoZXIgRGVzdGluYXRpb24nOwokbGFuZ1snZGVsZXRlX2Rlc3RpbmF0aW9uJ10gPSAnRGVsZXRlIE1hcmtlZCBEZXN0aW5hdGlvbnMnOwokbGFuZ1snc3VzcGVjdGVkX3NwYW0nXSA9ICfQoSDQktCw0YjQtdCz0L4gSVAt0LDQtNGA0LXRgdCwINC/0L7RgdGC0YPQv9Cw0LXRgiDRgdC70LjRiNC60L7QvCDQvNC90L7Qs9C+INC30LDQv9GA0L7RgdC+0LIuINCh0LjRgdGC0LXQvNCwINC30LDRidC40YLRiyDQvtGCINGB0L/QsNC80LAg0LfQsNCx0LvQvtC60LjRgNC+0LLQsNC70LAg0L7RgtC/0YDQsNCy0LrRgyDRhNC+0YDQvNGLLic7CiRsYW5nWydzdXNwZWN0ZWRfc3BhbV9sb2cnXSA9ICfQn9GA0LXQtNC/0L7Qu9Cw0LPQsNC10LzRi9C5INGB0L/QsNC8INGBIElQLdCw0LTRgNC10YHQsCAlcyDQvtGB0YLQsNC90L7QstC70LXQvS4nOwokbGFuZ1sncmVvcmRlciddID0gJ9Cf0L7QvNC10L3Rj9GC0Ywg0L/QvtGA0Y/QtNC+0Log0L/QvtC70LXQuSc7CiRsYW5nWydjYW5jZWwnXSA9ICfQntGC0LzQtdC90LAnOwokbGFuZ1sndmFsdWVfc2V0J10gPSAn0KPQutCw0LfQsNC90L3QvtC1INC30L3QsNGH0LXQvdC40LU6ICVzJzsKJGxhbmdbJ2hlbHBfY2F0YWxvZ2VyX2F0dHJpYnV0ZV9maWVsZHMnXSA9ICdCZWxvdyBpcyBhIGxpc3Qgb2YgdGhlIGF0dHJpYnV0ZXMgYXZhaWxhYmxlIGZyb20gdGhlIENhdGFsb2dlciBtb2R1bGUuPGJyLz5Zb3UgY2FuIG9wdGlvbmFsbHkgc3BlY2lmeSB2YWxpZCByYW5nZXMsIHZhbHVlcywgb3IgbnVtZXJvdXMgdmFsdWVzIHRvIGJlIHVzZWQgaW4gZmlsdGVyaW5nIHRoZSBsaXN0IG9mIGl0ZW1zIHRoYXQgaXMgZGlzcGxheWVkIHRvIHRoZSB1c2VyLjxici8+DQo8YnIvPg0KPHN0cm9uZz5SYW5nZXM6PC9zdHJvbmc+PGJyLz4NClJhbmdlcyBjYW4gYmUgc3BlY2lmaWVkIGJ5IHNpZ25pZnlpbmcgYSBtaW5pbXVtIGFuZCBtYXhpbXVtIHZhbHVlIHVzaW5nIHRoaXMgc3ludGF4OiAicmFuZ2U6IG1pbnZhbHVlIHRvIG1heHZhbHVlIjxici8+DQo8YnIvPg0KPHN0cm9uZz5NdWx0aXBsZSBWYWx1ZXM6PC9zdHJvbmc+PGJyLz4NClRvIHNwZWNpZnkgbXVsdGlwbGUgdmFsdWVzIGZvciBhbiBhdHRyaWJ1dGUgdXNlIHRoZSBzeW50YXggIm11bHRpOiB2YWx1ZTF8dmFsdWUyfHZhbHVlMyI8YnIvPg0KPGJyLz4NCjxzdHJvbmc+VmFsdWVzIGZyb20gaGlkZGVuIGZpZWxkczwvc3Ryb25nPjxici8+DQpUbyBzcGVjaWZ5IGEgdmFsdWUgZnJvbSBhIGhpZGRlbiBmaWVsZCB1c2UgdGhlIHN5bnRheCB7JGZsZF9pZH08YnIvPg0KPGJyLz4nOwokbGFuZ1snaGVscF9uYW1lX3JlZ2V4J10gPSAnQSByZWd1bGFyIGV4cHJlc3Npb24gdG8gYWxsb3cgZmlsdGVyaW5nIGNhdGFsb2dlciBpdGVtcyBieSBuYW1lJzsKJGxhbmdbJ2hlbHBfZmllbGRfaGVpZ2h0J10gPSAnVGhlIGhlaWdodCBvZiB0aGUgbXVsdGlzZWxlY3QgZmllbGQnOwokbGFuZ1sndGl0bGVfbmFtZV9yZWdleCddID0gJ0NhdGFsb2dlciBJdGVtIE5hbWUgUmVndWxhciBFeHByZXNzaW9uJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2hlaWdodCddID0gJ9CS0YvRgdC+0YLQsCDQv9C+0LvRjyc7CiRsYW5nWyd0aXRsZV9maWxlX3BhdGgnXSA9ICdEZXN0aW5hdGlvbiBEaXJlY3RvcnkgZm9yIG91dHB1dCBmaWxlcyc7CiRsYW5nWyd0aXRsZV91ZHRfbmFtZSddID0gJ9Ci0LXQsyDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8nOwokbGFuZ1sndGl0bGVfdXBsb2Fkc19kZXN0cGFnZSddID0gJ1BhZ2UgdG8gcmV0dXJuIHRvIHdpdGggdXBsb2FkcyBsaW5rJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZG1vZHVsZV9zdW1tYXJ5J10gPSAnU3VibWl0dGVkIHdpdGggZm9ybWJ1aWxkZXInOwokbGFuZ1sndGl0bGVfdXBsb2Fkc19jYXRlZ29yeSddID0gJ1VwbG9hZHMgY2F0ZWdvcnknOwokbGFuZ1sndGl0bGVfc2VuZHRvX3VwbG9hZHMnXSA9ICdTZW5kIHRoaXMgZmlsZSB0byB0aGUgdXBsb2FkcyBtb2R1bGUnOwokbGFuZ1sndGl0bGVfbGVnZW5kJ10gPSAnTGVnZW5kJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fbGVuZ3RoJ10gPSAn0JzQsNC60YHQuNC80LDQu9GM0L3QsNGPINC00LvQuNC90LAnOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfbGFiZWwnXSA9ICdDaGVja2JveCBsYWJlbCc7CiRsYW5nWyd0aXRsZV9yYWRpb19sYWJlbCddID0gJ1JhZGlvIEJ1dHRvbiBsYWJlbCc7CiRsYW5nWyd0aXRsZV9jaGVja2VkX3ZhbHVlJ10gPSAnVmFsdWUgd2hlbiBjaGVja2VkJzsKJGxhbmdbJ3RpdGxlX3VuY2hlY2tlZF92YWx1ZSddID0gJ1ZhbHVlIHdoZW4gbm90IGNoZWNrZWQuJzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2RldGFpbHMnXSA9ICdDaGVja2JveCBHcm91cCBEZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX2RlbGV0ZSddID0gJ9Cj0LTQsNC70LjRgtGMPyc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rfb25lX21lc3NhZ2UnXSA9ICciU2VsZWN0IE9uZSIgVGV4dCc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fdmFsdWUnXSA9ICdTZWxlY3Rpb24gVmFsdWUnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX2Rpc3BsYXluYW1lJ10gPSAnU2VsZWN0aW9uIERpc3BsYXkgTmFtZSc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fc3ViamVjdCddID0gJ1NlbGVjdGlvbiBTdWJqZWN0JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X2NvdW50cnknXSA9ICdEZWZhdWx0IFNlbGVjdGlvbic7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9zdGF0ZSddID0gJ0RlZmF1bHQgU2VsZWN0aW9uJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X3Byb3ZpbmNlJ10gPSAnRGVmYXVsdCBTZWxlY3Rpb24nOwokbGFuZ1sndGl0bGVfb3B0aW9uX25hbWUnXSA9ICdPcHRpb24gTmFtZSc7CiRsYW5nWyd0aXRsZV9vcHRpb25fdmFsdWUnXSA9ICdWYWx1ZSBTdWJtaXR0ZWQnOwokbGFuZ1sndGl0bGVfcHVsbGRvd25fZGV0YWlscyddID0gJ1B1bGxkb3duIE9wdGlvbnMnOwokbGFuZ1sndGl0bGVfbXVsdGlzZWxlY3RfZGV0YWlscyddID0gJ011bHRpc2VsZWN0IE9wdGlvbnMnOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fYWRkcmVzcyddID0gJ0Rlc3RpbmF0aW9uIEVtYWlsIEFkZHJlc3MnOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fZmlsZW5hbWUnXSA9ICdEZXN0aW5hdGlvbiBGaWxlIE5hbWUnOwokbGFuZ1sndGl0bGVfZW1haWxfZnJvbV9uYW1lJ10gPSAnIkZyb20gbmFtZSIgZm9yIGVtYWlsJzsKJGxhbmdbJ3RpdGxlX3JlbGF4ZWRfZW1haWxfcmVnZXgnXSA9ICdVc2UgcmVsYXhlZCBlbWFpbCB2YWxpZGF0aW9uJzsKJGxhbmdbJ3RpdGxlX3JlbGF4ZWRfcmVnZXhfbG9uZyddID0gJ1VzZSByZWxheGVkIGVtYWlsIGFkZHJlc3MgdmFsaWRhdGlvbiAoZS5nLiwgYWxsb3cgInhAeSIgaW5zdGVhZCBvZiByZXF1aXJpbmcgInhAeS50bGQiKSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9mcm9tX2FkZHJlc3MnXSA9ICciRnJvbSBhZGRyZXNzIiBmb3IgZW1haWwnOwokbGFuZ1sndGl0bGVfZW1haWxfZW5jb2RpbmcnXSA9ICdFbWFpbCBjaGFyYWN0ZXIgc2V0IGVuY29kaW5nJzsKJGxhbmdbJ3RpdGxlX2RpcmVjdG9yX2RldGFpbHMnXSA9ICdQdWxsZG93bi1iYXNlZCBFbWFpbGVyIERldGFpbHMnOwokbGFuZ1sndGl0bGVfZmlsZV9uYW1lJ10gPSAn0JjQvNGPINGE0LDQudC70LAnOwokbGFuZ1sndGl0bGVfZW1haWxfc3ViamVjdCddID0gJ0VtYWlsIFN1YmplY3QgTGluZSc7CiRsYW5nWyd0aXRsZV9mb3JtX25hbWUnXSA9ICdGb3JtIE5hbWUnOwokbGFuZ1sndGl0bGVfZm9ybV9zdGF0dXMnXSA9ICdGb3JtIFN0YXR1cyc7CiRsYW5nWyd0aXRsZV9yZWFkeV9mb3JfZGVwbG95bWVudCddID0gJ9CT0L7RgtC+0LLQsCDQuiDQuNGB0L/QvtC70YzQt9C+0LLQsNC90LjRjic7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkxJ10gPSAn0J3QtSDQs9C+0YLQvtCy0LAnOwokbGFuZ1sndGl0bGVfcmVkaXJlY3RfcGFnZSddID0gJ1BhZ2UgdG8gcmVkaXJlY3QgdG8gYWZ0ZXIgZm9ybSBzdWJtaXNzaW9uJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTInXSA9ICdQbGVhc2UgYWRkIGEgZmllbGQgdG8gdGhlIGZvcm0gc28gdGhhdCB0aGUgdXNlclwncyBpbnB1dCBnZXRzIGhhbmRsZWQuIFlvdSBjYW4nOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5X2xpbmsnXSA9ICd1c2UgdGhpcyBzaG9ydGN1dCc7CiRsYW5nWyd0aXRsZV9mb3JtX2FsaWFzJ10gPSAnRm9ybSBBbGlhcyc7CiRsYW5nWyd0aXRsZV9mb3JtX2ZpZWxkcyddID0gJ9Cf0L7Qu9GPINGE0L7RgNC80YsnOwokbGFuZ1sndGl0bGVfZmllbGRfaWQnXSA9ICdGaWVsZCBJZCc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkYWxpYXNlcyddID0gJ1Nob3cgRmllbGQgQWxpYXNlcyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkYWxpYXNlc19sb25nJ10gPSAnQ2xpY2tpbmcgdGhpcyB3aWxsIGRpc3BsYXkgZmllbGQgYWxpYXNlcyB3aGVuIGFkZGluZyBvciBlZGl0aW5nIGEgZm9ybSc7CiRsYW5nWyd0aXRsZV9maWVsZF9uYW1lJ10gPSAn0JjQvNGPINC/0L7Qu9GPJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2FsaWFzJ10gPSAnRmllbGQgQWxpYXMnOwokbGFuZ1sndGl0bGVfcmFkaW9ncm91cF9kZXRhaWxzJ10gPSAnUmFkaW8gQnV0dG9uIEdyb3VwIERldGFpbHMnOwokbGFuZ1sndGl0bGVfZmllbGRfdHlwZSddID0gJ9Ci0LjQvyDQv9C+0LvRjyc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkzJ10gPSAndG8gY3JlYXRlIGEgZm9ybSBoYW5kbGluZyBmaWVsZC4nOwokbGFuZ1sndGl0bGVfYWRkX25ld19mb3JtJ10gPSAn0JTQvtCx0LDQstC40YLRjCDQvdC+0LLRg9GOINGE0L7RgNC80YMnOwokbGFuZ1sndGl0bGVfc2hvd192ZXJzaW9uJ10gPSAnU2hvdyBGb3JtIEJ1aWxkZXIgVmVyc2lvbj8nOwokbGFuZ1sndGl0bGVfc2hvd192ZXJzaW9uX2xvbmcnXSA9ICdUaGlzIHdpbGwgZW1iZWQgeW91ciBpbnN0YWxsZWQgdmVyc2lvbiBudW1iZXIgb2YgRm9ybSBCdWlsZGVyIG1vZHVsZSBpbiBhIGNvbW1lbnQsIHRvIGFpZCBpbiBkZWJ1Z2dpbmcnOwokbGFuZ1sndGl0bGVfYWRkX25ld19maWVsZCddID0gJ9CU0L7QsdCw0LLQuNGC0Ywg0L3QvtCy0L7QtSDQv9C+0LvQtSc7CiRsYW5nWyd0aXRsZV9mb3JtX3N1Ym1pdF9idXR0b24nXSA9ICdGb3JtIFN1Ym1pdCBCdXR0b24gVGV4dCc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eSddID0gJ0FkZCBKYXZhc2NyaXB0IHRvIFN1Ym1pdCBCdXR0b24gdG8gcHJldmVudCBtdWx0aXBsZSBzdWJtaXNzaW9ucz8nOwokbGFuZ1sndGl0bGVfc3VibWl0X2J1dHRvbl9zYWZldHlfaGVscCddID0gJ0FkZCBzYWZldHkgc2NyaXB0JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmV4dF9idXR0b24nXSA9ICdGb3JtICJOZXh0IiBCdXR0b24gVGV4dCAodXNlZCBmb3IgbXVsdGlwYWdlIGZvcm1zKSc7CiRsYW5nWyd0aXRsZV9mb3JtX3ByZXZfYnV0dG9uJ10gPSAnRm9ybSAiUHJldmlvdXMiIEJ1dHRvbiBUZXh0ICh1c2VkIGZvciBtdWx0aXBhZ2UgZm9ybXMpJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3ZhbGlkYXRpb24nXSA9ICdGaWVsZCBWYWxpZGF0aW9uJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3RvX3ZhbGlkYXRlJ10gPSAnRmllbGQgdG8gVmFsaWRhdGUnOwokbGFuZ1sndGl0bGVfZmllbGRfY3NzX2lkJ10gPSAnQ1NTIGlkIGZvciB0aGlzIGZpZWxkJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fY3NzX2NsYXNzJ10gPSAnQ1NTIENsYXNzIGZvciB0aGlzIGZvcm0nOwokbGFuZ1sndGl0bGVfZmllbGRfY3NzX2NsYXNzJ10gPSAnQ1NTIENsYXNzIGZvciB0aGlzIGZpZWxkJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcHJlZGlzcGxheV91ZHQnXSA9ICdVc2VyIGRlZmluZWQgdGFnIHRvIGNhbGwgYmVmb3JlIGZvcm0gaXMgZGlzcGxheWVkJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcmVxdWlyZWRfc3ltYm9sJ10gPSAnU3ltYm9sIHRvIG1hcmsgcmVxdWlyZWQgRmllbGRzJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkJ10gPSAnUmVxdWlyZWQnOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWRfbG9uZyddID0gJ1JlcXVpcmUgYSByZXNwb25zZSBmb3IgdGhpcyBGaWVsZCc7CiRsYW5nWyd0aXRsZV9oaWRlX2xhYmVsJ10gPSAnSGlkZSBMYWJlbCc7CiRsYW5nWyd0aXRsZV9oaWRlX2xhYmVsX2xvbmcnXSA9ICdIaWRlIHRoaXMgZmllbGRcJ3MgbmFtZSBvbiBGb3JtJzsKJGxhbmdbJ3RpdGxlX3RleHQnXSA9ICdTdGF0aWMgdGV4dCB0byBkaXNwbGF5JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlZ2V4J10gPSAnVmFsaWRhdGlvbiBSZWdleCc7CiRsYW5nWyd0aXRsZV9saW5lc190b19zaG93J10gPSAnTnVtYmVyIG9mIExpbmVzIHRvIGRpc3BsYXknOwokbGFuZ1snbm9fZGVmYXVsdCddID0gJ05vIERlZmF1bHQnOwokbGFuZ1sncmVkaXJlY3RfYWZ0ZXJfYXBwcm92YWwnXSA9ICdQYWdlIHRvIHJlZGlyZWN0IGFmdGVyIGFwcHJvdmFsJzsKJGxhbmdbJ3RpdGxlX3JlZ2V4X2hlbHAnXSA9ICdUaGlzIHJlZ3VsYXIgZXhwcmVzc2lvbiB3aWxsIG9ubHkgYmUgdXNlZCBpZiAidmFsaWRhdGlvbiB0eXBlIiBpcyBzZXQgdG8gYSByZWdleC1yZWxhdGVkIG9wdGlvbi4gSW5jbHVkZSBhIGZ1bGwgUGVybC1zdHlsZSByZWdleCwgaW5jbHVkaW5nIHRoZSBzdGFydC9zdG9wIHNsYXNoZXMgYW5kIGZsYWdzIChlLmcuLCAiL2ltYWdlXFwuKFxcZCspL2kiKSc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9hYmJyZXYnXSA9ICdSZXFcJ2QnOwokbGFuZ1sndGl0bGVfaGlkZV9lcnJvcnMnXSA9ICdIaWRlIEVycm9ycyc7CiRsYW5nWyd0aXRsZV9mb3JtX2Rpc3BsYXl0eXBlJ10gPSAnRm9ybSBEaXNwbGF5IFR5cGUnOwokbGFuZ1sndGl0bGVfaGlkZV9lcnJvcnNfbG9uZyddID0gJ1ByZXZlbnQgZGVidWcgLyBlcnJvciBtZXNzYWdlcyBmcm9tIGJlaW5nIHNlZW4gYnkgdXNlcnMuJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX3RlbXBsYXRlJ10gPSAnRW1haWwgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfbWF4aW11bV9zaXplJ10gPSAnTWF4aW11bSB1cGxvYWQgZmlsZSBzaXplIChraWxvYnl0ZXMpJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZV9sb25nJ10gPSAnVGhpcyBsaW1pdGF0aW9uIGlzIGluIGFkZGl0aW9uIHRvIGFueSBsaW1pdHMgc2V0IGJ5IHRoZSBwaHAgb3Igd2ViIHNlcnZlciBjb25maWd1cmF0aW9uJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zJ10gPSAn0KDQsNC30YDQtdGI0LXQvdC90YvQtSDRgNCw0YHRiNC40YDQtdC90LjRjyc7CiRsYW5nWyd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9uc19sb25nJ10gPSAnRW50ZXIgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCwgZXhjbHVkaW5nIHRoZSBkb3QgKGUuZy4sICJqcGcsZ2lmLGpwZWciKS4gU3BhY2VzIHdpbGwgYmUgaWdub3JlZC4gTGVhdmluZyB0aGlzIGJsYW5rIG1lYW5zIHRoZXJlIHdpbGwgYmUgbm8gcmVzdHJpY3Rpb25zLic7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zJ10gPSAnRGlzcGxheSByZXN0cmljdGlvbnM/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnNfbG9uZyddID0gJ0Rpc3BsYXkgYW55IHNpemUgYW5kIGV4dGVuc2lvbiByZXN0cmljdGlvbnMgd2l0aCB0aGUgdXBsb2FkIGZpZWxkPyc7CiRsYW5nWyd0aXRsZV9mb3JtX3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgdG8gdXNlIHRvIERpc3BsYXkgRm9ybSc7CiRsYW5nWyd0aXRsZV9wYWdlX3hfb2ZfeSddID0gJ1BhZ2UgJXMgb2YgJXMnOwokbGFuZ1sndGl0bGVfbm9fYWR2YW5jZWRfb3B0aW9ucyddID0gJ0ZpZWxkIGhhcyBubyBhZHZhbmNlZCBvcHRpb25zLic7CiRsYW5nWyd0aXRsZV9mb3JtX3Vuc3BlY2lmaWVkJ10gPSAnVGV4dCB0byByZXR1cm4gZm9yIHVuc3BlY2lmaWVkIGZpZWxkIHZhbHVlcyc7CiRsYW5nWyd0aXRsZV9lbmFibGVfZmFzdGFkZF9sb25nJ10gPSAnRW5hYmxlIGZhc3QgZmllbGQgYWRkaW5nIHB1bGxkb3duIGZvciBmb3Jtcz8nOwokbGFuZ1sndGl0bGVfZW5hYmxlX2Zhc3RhZGQnXSA9ICdFbmFibGUgZmFzdCBmaWVsZCBhZGQgcHVsbGRvd24/JzsKJGxhbmdbJ3RpdGxlX2Zhc3RhZGQnXSA9ICdGYXN0IGZpZWxkIGFkZGVyJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9hbnRpc3BhbV9sb25nJ10gPSAnQ2xpY2tpbmcgdGhpcyB3aWxsIG9ubHkgYWxsb3cgMTAgZW1haWxzIHRvIGJlIHRyaWdnZXJlZCBmcm9tIGEgZ2l2ZW4gSVAgYWRkcmVzcyAocGVyIGhvdXIpLic7CiRsYW5nWyd0aXRsZV9lbmFibGVfYW50aXNwYW0nXSA9ICdFbmFibGUgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcz8nOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGlkcyddID0gJ1Nob3cgRmllbGQgSURzJzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRpZHNfbG9uZyddID0gJ0NsaWNraW5nIHRoaXMgd2lsbCBhbGxvdyBkaXNwbGF5aW5nIGZpZWxkIGlkcyB3aGVuIGFkZGluZyBvciBlZGl0aW5nIGEgZm9ybSc7CiRsYW5nWyd0aXRsZV94bWxfdG9fdXBsb2FkJ10gPSAnVXBsb2FkIGZvcm0gZnJvbSBYTUwgZmlsZSc7CiRsYW5nWyd0aXRsZV94bWxfdXBsb2FkX2Zvcm1uYW1lJ10gPSAnVXNlIHRoaXMgZm9ybSBuYW1lJzsKJGxhbmdbJ3RpdGxlX2ltcG9ydF9sZWdlbmQnXSA9ICdYTUwgRm9ybSBJbXBvcnQnOwokbGFuZ1sndGl0bGVfeG1sX3VwbG9hZF9mb3JtYWxpYXMnXSA9ICdVc2UgdGhpcyBmb3JtIGFsaWFzJzsKJGxhbmdbJ3RpdGxlX2h0bWxfZW1haWwnXSA9ICdHZW5lcmF0ZSBIVE1MIGVtYWlsPyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZSddID0gJ0F1dG9tYXRpY2FsbHkgcG9wdWxhdGU/JzsKJGxhbmdbJ3RpdGxlX2xpbmtfYXV0b3BvcHVsYXRlX2hlbHAnXSA9ICdBdXRvbWF0aWNhbGx5IHBvcHVsYXRlIHdpdGggdGhlIFVSTCBvZiB0aGUgcGFnZSBjb250YWluaW5nIHRoZSBmb3JtPyAodGhpcyBvdmVycmlkZXMgc2l0ZSBwYWdlIGxpbmsgb3B0aW9uIGJlbG93KSc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2xpbmsnXSA9ICdEZWZhdWx0IGxpbmsgVVJMJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfbGlua190aXRsZSddID0gJ0RlZmF1bHQgbGluayB0ZXh0JzsKJGxhbmdbJ3RpdGxlX2xpbmtfdG9fc2l0ZXBhZ2UnXSA9ICdMaW5rIHRvIHNpdGUgcGFnZSc7CiRsYW5nWyd0aXRsZV9jYXB0Y2hhX25vdF9pbnN0YWxsZWQnXSA9ICdZb3UgY2FuIHVzZSA8YSBocmVmPSJodHRwOi8vd3d3Lndpa2lwZWRpYS5vcmcvd2lraS9DYXB0Y2hhIiB0YXJnZXQ9Il9uZXciPiJDYXB0Y2hhIjwvYT4gdG8gcHJvdGVjdCBmb3JtIHN1Ym1pc3Npb25zIGlmIHlvdSBpbnN0YWxsIHRoZSBDYXB0Y2hhIG1vZHVsZS4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvY2FwdGNoYS8iPmNoZWNrIHRoZSBDYXB0Y2hhIHByb2plY3Q8L2E+Lic7CiRsYW5nWyd0aXRsZV91c2VfY2FwdGNoYSddID0gJ1VzZSBDYXB0Y2hhIHRvIHByb3RlY3QgZm9ybSBzdWJtaXNzaW9ucz8nOwokbGFuZ1sndGl0bGVfdXNlX2NhcHRjaGFfaGVscCddID0gJ0NoZWNrIGhlcmUgdG8gcHJvdGVjdCB5b3VyIGZvcm0gd2l0aCBhIDxhIGhyZWY9Imh0dHA6Ly93d3cud2lraXBlZGlhLm9yZy93aWtpL0NhcHRjaGEiIHRhcmdldD0iX25ldyI+IkNhcHRjaGEiPC9hPi4nOwokbGFuZ1sndGl0bGVfdXNlcl9jYXB0Y2hhJ10gPSAnUGxlYXNlIGNvbmZpcm0gdGhhdCB5b3UgYXJlIG5vdCBhIHNjcmlwdCBieSBlbnRlcmluZyB0aGUgbGV0dGVycyBmcm9tIHRoZSBpbWFnZS4nOwokbGFuZ1sndGl0bGVfdXNlcl9jYXB0Y2hhX2Vycm9yJ10gPSAnRmFpbGVkIHRleHQgZm9yIENhcHRjaGEnOwokbGFuZ1snd3JvbmdfY2FwdGNoYSddID0gJ0NhcHRjaGEgd2FzIG5vdCBjb3JyZWN0Lic7CiRsYW5nWyd0aXRsZV90aXRsZV91c2VyX2NhcHRjaGEnXSA9ICdIZWxwIHRleHQgZm9yIENhcHRjaGEnOwokbGFuZ1sndGl0bGVfZG9udF9zdWJtaXRfdW5jaGVja2VkJ10gPSAnRG9uXCd0IHN1Ym1pdCB2YWx1ZXMgZm9yIHVuY2hlY2tlZCBib3hlcyc7CiRsYW5nWyd0aXRsZV9kb250X3N1Ym1pdF91bmNoZWNrZWRfaGVscCddID0gJ0NoZWNrIHRoaXMgaWYgeW91IG9ubHkgd2FudCBjaGVja2VkIGJveGVzIHRvIHJldHVybiB2YWx1ZXMuJzsKJGxhbmdbJ2xpbmtfbGFiZWwnXSA9ICdMaW5rIExhYmVsJzsKJGxhbmdbJ2xpbmtfZGVzdGluYXRpb24nXSA9ICdMaW5rIERlc3RpbmF0aW9uIFVSTCc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3NldCddID0gJ0NoZWNrZWQgYnkgRGVmYXVsdD8nOwokbGFuZ1sndGl0bGVfMjRfaG91ciddID0gJ1VzZSAyNC1ob3VyIGNsb2NrPyc7CiRsYW5nWyd0aXRsZV9iZWZvcmVfbm9vbiddID0gJ0FNJzsKJGxhbmdbJ3RpdGxlX2FmdGVyX25vb24nXSA9ICdQTSc7CiRsYW5nWyd0aXRsZV9zbWFydHlfZXZhbCddID0gJ1Byb2Nlc3Mgc21hcnR5IHRhZ3Mgd2l0aGluIGZpZWxkPyc7CiRsYW5nWyd0aXRsZV90ZXh0YXJlYV9yb3dzJ10gPSAnUm93cyAobm90ZTogdGhpcyBtYXkgYmUgb3ZlcnJpZGRlbiBieSBDU1MpJzsKJGxhbmdbJ3RpdGxlX3RleHRhcmVhX2NvbHMnXSA9ICdDb2x1bW5zIChub3RlOiB0aGlzIG1heSBiZSBvdmVycmlkZGVuIGJ5IENTUyknOwokbGFuZ1sndGl0bGVfZm9ybV9tYWluJ10gPSAnTWFpbiBGb3JtIERldGFpbHMnOwokbGFuZ1sndGl0bGVfc2hvd191c2VybmFtZSddID0gJ0Rpc3BsYXkgVXNlclwncyBsb2dpbiBuYW1lPyc7CiRsYW5nWyd0aXRsZV9zaG93X3VzZXJmaXJzdG5hbWUnXSA9ICdEaXNwbGF5IFVzZXJcJ3MgZmlyc3QgbmFtZT8nOwokbGFuZ1sndGl0bGVfc2hvd191c2VybGFzdG5hbWUnXSA9ICdEaXNwbGF5IFVzZXJcJ3MgbGFzdCBuYW1lPyc7CiRsYW5nWyd0aXRsZV9yZXN0cmljdF90b19ncm91cCddID0gJ1Jlc3RyaWN0IHVzZXIgbGlzdCB0byB1c2VycyBpbiBzcGVjaWZpZWQgZ3JvdXAnOwokbGFuZ1sncmVzdHJpY3RlZF90b19ncm91cCddID0gJ09ubHkgaW4gZ3JvdXAgJXMnOwokbGFuZ1sndGl0bGVfc2hvd190b191c2VyJ10gPSAnRGlzcGxheSB0byB1c2VyPyc7CiRsYW5nWydoZWxwX2xlYXZlZW1wdHknXSA9ICdUaGlzIGZpZWxkIG1heSBiZSBsZWZ0IGVtcHR5JzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVzX2Zvcl90ZW1wbGF0ZSddID0gJ1ZhcmlhYmxlcyBGb3IgVGVtcGxhdGUnOwokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX2NvbXB1dGF0aW9uJ10gPSAnVmFyaWFibGVzIEF2YWlsYWJsZSc7CiRsYW5nWydoZWxwX3BocF92YXJpYWJsZV9uYW1lJ10gPSAnUEhQIHZhcmlhYmxlJzsKJGxhbmdbJ2hlbHBfc3VibWlzc2lvbl9kYXRlJ10gPSAnRGF0ZSBvZiBTdWJtaXNzaW9uJzsKJGxhbmdbJ2hlbHBfc2VydmVyX25hbWUnXSA9ICdZb3VyIHNlcnZlcic7CiRsYW5nWydoZWxwX3N1Yl9zb3VyY2VfaXAnXSA9ICdJUCBhZGRyZXNzIG9mIHBlcnNvbiB1c2luZyBmb3JtJzsKJGxhbmdbJ2hlbHBfc3ViX3VybCddID0gJ1VSTCBvZiBwYWdlIGNvbnRhaW5pbmcgZm9ybSc7CiRsYW5nWydoZWxwX2ZiX3ZlcnNpb24nXSA9ICdGb3JtQnVpbGRlciB2ZXJzaW9uJzsKJGxhbmdbJ2hlbHBfdGFiJ10gPSAnVGFiIENoYXJhY3Rlcic7CiRsYW5nWydoZWxwX290aGVyX2ZpZWxkcyddID0gJ0FsdGVybmF0ZSBmaWVsZCBuYW1lcyBjYW4gYmUgdXNlZCBpbnRlcmNoYW5nZWFibHkgKGVzcGVjaWFsbHkgdXNlZnVsIGlmIFNtYXJ0eSBpcyBjaG9raW5nIG9uIGNoYXJhY3RlcnMgb3V0c2lkZSBvZiBBU0NJSSAzMi0xMjYpLiA8YnIgLz5PdGhlciBmaWVsZHMgd2lsbCBiZSBhdmFpbGFibGUgYXMgeW91IGFkZCB0aGVtIHRvIHRoZSBmb3JtLic7CiRsYW5nWydoZWxwX2FycmF5X2ZpZWxkcyddID0gJ1lldCBhbm90aGVyIHdheSBvZiBhY2Nlc3NpbmcgZmllbGQgdmFsdWVzIGlzIHZpYSAkZmllbGRuYW1lX29iaiwgJGFsaWFzX29iaiwgb3IgJGZsZF8jX29iaiwgd2hlcmUgZWFjaCBmaWVsZCBpcyBhbiBvYmplY3QgY29udGFpbmdpbmc6PGJyIC8+PHRhYmxlPg0KPHRyPjx0ZCBjbGFzcz0ib2RkIj5uYW1lPC90ZD48dGQgY2xhc3M9Im9kZCI+RmllbGQgTmFtZTwvdGQ+PC90cj4NCjx0cj48dGQ+dHlwZTwvdGQ+PHRkPkZpZWxkIFR5cGU8L3RkPjwvdHI+DQo8dHI+PHRkIGNsYXNzPSJvZGQiPmlkPC90ZD48dGQgY2xhc3M9Im9kZCI+SW50ZXJuYWwgRmllbGQgSUQ8L3RkPjwvdHI+DQo8dHI+PHRkPnZhbHVlPC90ZD48dGQ+SHVtYW4tcmVhZGFibGUgVmFsdWU8L3RkPjwvdHI+DQo8dHI+PHRkIGNsYXNzPSJvZGQiPnZhbHVlQXJyYXk8L3RkPjx0ZCBjbGFzcz0ib2RkIj5BcnJheSBvZiBmaWVsZCB2YWx1ZShzKTwvdGQ+PC90cj48L3RhYmxlPjxlbT5lLmcuPC9lbT4sIHlvdSBjb3VsZCB1c2UgInskZmxkXzFfb2JqLT5uYW1lfSA9IHskZmxkXzFfb2JqLT52YWx1ZX0nOwokbGFuZ1snaGVscF9kYXRlX2Zvcm1hdCddID0gJ1NlZSA8YSBocmVmPSJodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwIiB0YXJnZXQ9X05FVz50aGUgUEhQIE1hbnVhbDwvYT4gZm9yIGZvcm1hdHRpbmcgaGVscC4nOwokbGFuZ1snaGVscF92YXJpYWJsZV9uYW1lJ10gPSAnVmFyaWFibGUnOwokbGFuZ1snaGVscF9mb3JtX2ZpZWxkJ10gPSAnRmllbGQgUmVwcmVzZW50ZWQnOwokbGFuZ1snbGlua19iYWNrX3RvX2Zvcm0nXSA9ICfCqyDQndCw0LfQsNC0INC6INGE0L7RgNC80LUnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV90ZW1wbGF0ZSddID0gJ0NyZWF0ZSBTYW1wbGUgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9odG1sX3RlbXBsYXRlJ10gPSAnQ3JlYXRlIFNhbXBsZSBIVE1MIFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaGVhZGVyX3RlbXBsYXRlJ10gPSAnQ3JlYXRlIFNhbXBsZSBIZWFkZXIgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9oZWFkZXInXSA9ICdDcmVhdGUgU2FtcGxlIEhlYWRlcic7CiRsYW5nWydoZWxwX3RhYl9zeW1ib2wnXSA9ICdhIHRhYiBjaGFyYWN0ZXInOwokbGFuZ1sndGl0bGVfZmlsZV90ZW1wbGF0ZSddID0gJ1RlbXBsYXRlIGZvciBvbmUgbGluZSBvZiBvdXRwdXQgZmlsZSc7CiRsYW5nWyd0aXRsZV9maWxlX2hlYWRlciddID0gJ1RlbXBsYXRlIGZvciB0aGUgaGVhZGVyIG9mIG91dHB1dCBmaWxlJzsKJGxhbmdbJ3RpdGxlX2NvbmZpcm1hdGlvbl91cmwnXSA9ICdVUkwgdG8gY2xpY2sgZm9yIGZvcm0gY29uZmlybWF0aW9uJzsKJGxhbmdbJ3RpdGxlX3ZhbHVlJ10gPSAnVmFsdWUgKHNlZSBBZHZhbmNlZCBUYWIgaWYgeW91IHVzZSBTbWFydHkgdGFncyknOwokbGFuZ1sndGl0bGVfZGF0ZV9mb3JtYXQnXSA9ICdEYXRlIEZvcm1hdCAoc3RhbmRhcmQgPGEgaHJlZj0iaHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5kYXRlLnBocCI+UEhQIERhdGUgRm9ybWF0czwvYT4pJzsKJGxhbmdbJ3RpdGxlX3VzZV93eXNpd3lnJ10gPSAnVXNlIFdZU0lXWUcgZWRpdG9yIGZvciB0ZXh0IEFyZWEgKEFkbWluIHNpZGUgb25seSk/JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9hY3Rpb25zJ10gPSAnRm9ybSBTdWJtaXNzaW9uIEJlaGF2aW9yJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9sYWJlbHMnXSA9ICdTdWJtaXNzaW9uIEJ1dHRvbiBMYWJlbHMnOwokbGFuZ1sndGl0bGVfc29ydGFibGVfZmllbGQnXSA9ICdTb3J0YWJsZSBGaWVsZCAjJXMnOwokbGFuZ1sndGl0bGVfc3VibWl0X2hlbHAnXSA9ICdUaGlzIHBhZ2UgbGV0cyB5b3UgY3VzdG9taXplIEZvcm0gU3VibWlzc2lvbi4gSXQgZG9lc25cJ3QgZGV0ZXJtaW5lIHdoYXQgdGhlIEZvcm0gQnVpbGRlciBkb2VzIHdpdGggdGhlIHN1Ym1pdHRlZCBkYXRhLiBZb3UgY2FuIHNldCB0aGF0IHVwIGJ5IGFkZGluZyAiRGlzcG9zaXRpb24iIGZpZWxkcyB0byB5b3VyIGZvcm0uJzsKJGxhbmdbJ3RpdGxlX3N0YXJ0X3llYXInXSA9ICdZZWFyIHJhbmdlIHN0YXJ0JzsKJGxhbmdbJ3RpdGxlX2VuZF95ZWFyJ10gPSAnWWVhciByYW5nZSBlbmQnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF95ZWFyJ10gPSAnRGVmYXVsdCBZZWFyJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfeWVhcl9oZWxwJ10gPSAnKFNldCB0byAtMSBmb3IgZGVmYXVsdCB5ZWFyIHRvIGJlIHRoZSBjdXJyZW50IHllYXIpJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9hY3Rpb24nXSA9ICdBZnRlciBmb3JtIGlzIHN1Ym1pdHRlZCc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfcmVzcG9uc2UnXSA9ICdSZXNwb25zZSB0byBkaXNwbGF5JzsKJGxhbmdbJ2Rpc3BsYXlfdGV4dCddID0gJ0Rpc3BsYXkgIlN1Ym1pc3Npb24gVGVtcGxhdGUiJzsKJGxhbmdbJ3JlZGlyZWN0X3RvX3BhZ2UnXSA9ICdSZWRpcmVjdCB0byBzaXRlIHBhZ2UnOwokbGFuZ1sndGl0bGVfc3VibWl0X3Jlc3BvbnNlX2hlbHAnXSA9ICdUaGlzIHRlbXBsYXRlIGlzIGZvciBkaXNwbGF5IHRvIHRoZSB1c2VyIGFmdGVyIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZC4gVGhpcyB0ZW1wbGF0ZSBkb2VzIG5vdCBlZmZlY3QgZW1haWxzIGdlbmVyYXRlZCBvciBvdGhlciBmb3JtIGRpc3Bvc2l0aW9ucyAtLSB5b3Ugc2V0IHRob3NlIHRlbXBsYXRlcyAod2hlcmUgYXBwcm9wcmlhdGUpIGluIHRoZSAiYWR2YW5jZWQiIHRhYiBmb3IgdGhvc2UgZGlzcG9zaXRpb24gZmllbGRzLic7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9wYWdlJ10gPSAnRGVzdGluYXRpb24gUGFnZSc7CiRsYW5nWyd0aXRsZV9yZXF1aXJlX2ZpZWxkbmFtZXMnXSA9ICdSZXF1aXJlIEZpZWxkbmFtZXMnOwokbGFuZ1sndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzX2xvbmcnXSA9ICdSZXF1aXJlIGZpZWxkcyB0byBoYXZlIGEgbmFtZT8nOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXMnXSA9ICdSZXF1aXJlIFVuaXF1ZSBGaWVsZG5hbWVzJzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWVsZG5hbWVzX2xvbmcnXSA9ICdSZXF1aXJlIGZpZWxkcyB0byBoYXZlIHVuaXF1ZSBuYW1lcz8nOwokbGFuZ1sndGl0bGVfcmVvcmRlcl9mb3JtJ10gPSAnUmVvcmRlciBGaWVsZHMnOwokbGFuZ1sndGl0bGVfbG9hZF90ZW1wbGF0ZSddID0gJ0xvYWQgdGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfYWRkX2J1dHRvbl90ZXh0J10gPSAnQWRkIEJ1dHRvbiB0ZXh0JzsKJGxhbmdbJ3RpdGxlX2RlbF9idXR0b25fdGV4dCddID0gJ0RlbGV0ZSBCdXR0b24gdGV4dCc7CiRsYW5nWyd0aXRsZV9zdHJpbmdfb3JfbnVtYmVyX2V2YWwnXSA9ICdJbnRlcnByZXQgdmFyaWFibGVzIGFzIGJlaW5nIG51bWJlcnMgb3Igc3RyaW5ncyc7CiRsYW5nWyd0aXRsZV9vcmRlciddID0gJ0ludGVycHJldGF0aW9uIE9yZGVyJzsKJGxhbmdbJ3RpdGxlX29yZGVyX2hlbHAnXSA9ICdJZiBtb3JlIHRoYW4gb25lIENvbXB1dGVkIEZpZWxkIGV4aXN0cywgdGhleSB3aWxsIGJlIGNvbXB1dGVkIGZyb20gbG93ZXN0IG9yZGVyIG51bWJlciB0byBoaWdoZXN0IG9yZGVyIG51bWJlcic7CiRsYW5nWyd0aXRsZV9jb21wdXRlX3ZhbHVlJ10gPSAnVmFsdWUgdG8gY29tcHV0ZSc7CiRsYW5nWyd0aXRsZV9zdHJpbmcnXSA9ICdTdHJpbmcnOwokbGFuZ1sndGl0bGVfbnVtZXJpYyddID0gJ051bWVyaWMnOwokbGFuZ1sndGl0bGVfaW5saW5lX2Zvcm0nXSA9ICdEaXNwbGF5IGZvcm0gaW5saW5lPyc7CiRsYW5nWyd0aXRsZV9pbmxpbmVfZm9ybV9oZWxwJ10gPSAnSW5saW5lIG1lYW5zIGFueSBmb3JtIGZvbGxvd3VwIHJlcGxhY2VzIHRoZSB7Y21zX21vZHVsZX0gdGFnLCBub24taW5saW5lIHJlcGxhY2VzIHRoZSB7Y29udGVudH0gdGFnLic7CiRsYW5nWyd0aXRsZV9maWVsZF9kZWZhdWx0X3ZhbHVlJ10gPSAnRGVmYXVsdCB2YWx1ZSBmb3IgZmllbGQnOwokbGFuZ1sndGl0bGVfY2xlYXJfZGVmYXVsdCddID0gJ0NsZWFyIGRlZmF1bHQgb24gY2xpY2s/JzsKJGxhbmdbJ3RpdGxlX2NsZWFyX2RlZmF1bHRfaGVscCddID0gJ0NoZWNrIHRoaXMgdG8gY2xlYXIgdGhlIGRlZmF1bHQgdmFsdWUgd2hlbiB0aGUgdXNlciBjbGlja3MgdGhpcyBmaWVsZC4gU2luY2UgdGhpcyB1c2VzIGEgamF2YXNjcmlwdCBzdHJpbmcgY29tcGFyZSwgaXQgd2lsbCBmYWlsIGlmIHlvdSBwdXQgc2luZ2xlIHF1b3RlcyBpbiB5b3VyIGRlZmF1bHQgdGV4dC4gT3RoZXIgdW4tamF2YXNjcmlwdC1mcmllbmRseSBjaGFyYWN0ZXJzIG1heSBhbHNvIGNhdXNlIGl0IHRvIGZhaWwuJzsKJGxhbmdbJ3RpdGxlX3JlbW92ZV9maWxlX2Zyb21fc2VydmVyJ10gPSAnRGVsZXRlIHVwbG9hZGVkIGZpbGUgZnJvbSBzZXJ2ZXIgYWZ0ZXIgcHJvY2Vzc2luZyAoZW1haWwgZGlzcG9zaXRpb25zKSc7CiRsYW5nWyd0aXRsZV9maWVsZF9qYXZhc2NyaXB0J10gPSAnSmF2YXNjcmlwdCBmb3IgZmllbGQnOwokbGFuZ1sndGl0bGVfZmllbGRfamF2YXNjcmlwdF9sb25nJ10gPSAnTWFrZSB0aGlzIHRoZSBjb21wbGV0ZSBKYXZhc2NyaXB0IGNhbGwsIGluY2x1ZGluZyB0aGUgZXZlbnQgeW91IHdhbnQgdG8gdHJhcCwgZS5nLiwgb25jbGljaz0ieW91cmZuKCkiJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9qYXZhc2NyaXB0J10gPSAnRm9ybSBTdWJtaXNzaW9uIEphdmFzY3JpcHQnOwokbGFuZ1sndGl0bGVfc3VibWl0X2phdmFzY3JpcHRfbG9uZyddID0gJ01ha2UgdGhpcyB0aGUgY29tcGxldGUgSmF2YXNjcmlwdCBjYWxsLCBpbmNsdWRpbmcgdGhlIGV2ZW50IHlvdSB3YW50IHRvIHRyYXAsIGUuZy4sIG9uY2xpY2s9InlvdXJmbigpIi48YnIgLz5UaGlzIHdpbGwgcHJvYmFibHkgbm90IHdvcmsgd2VsbCBpZiB5b3UgdXNlIHRoZSAic2FmZXR5IHNjcmlwdCIgb3B0aW9uIGFib3ZlLic7CiRsYW5nWydlbWFpbF9mcm9tX2FkZHJfaGVscCddID0gJ0RvIG5vdCBqdXN0IHBpY2sgYSByYW5kb20gYWRkcmVzcyBoZXJlIC0tIG1hbnkgSVNQcyB3aWxsPGJyIC8+bm90IGRlbGl2ZXIgdGhlIG1haWwgaWYgeW91IGFyZSB1c2luZyBhIGRpZmZlcmVudCBkb21haW4gbmFtZSB0aGFuIHlvdXIgYWN0dWFsPGJyIC8+aG9zdCBuYW1lIChpLmUuLCB1c2Ugc29tZXRoaW5nIGxpa2UgbmFtZUAlcyknOwokbGFuZ1sndGl0bGVfc3dpdGNoX2FkdmFuY2VkJ10gPSAnTmVlZCBtb3JlIGZpZWxkIHR5cGVzPyAnOwokbGFuZ1sndGl0bGVfc3dpdGNoX2Jhc2ljJ10gPSAnVG9vIG1hbnkgY29uZnVzaW5nIGZpZWxkIHR5cGVzPyAnOwokbGFuZ1sndGl0bGVfc3dpdGNoX2FkdmFuY2VkX2xpbmsnXSA9ICdTd2l0Y2ggdG8gQWR2YW5jZWQgTW9kZSc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYmFzaWNfbGluayddID0gJ1N3aXRjaCB0byBTaW1wbGUgTW9kZSc7CiRsYW5nWyd0aXRsZV9maWxlX3Jvb3QnXSA9ICdEaXJlY3RvcnkgdG8gc2F2ZSBmaWxlIGluJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcm9vdF9oZWxwJ10gPSAnVGhpcyBuZWVkcyB0byBiZSBhIGRpcmVjdG9yeSB0aGF0IHlvdXIgd2ViIHNlcnZlciBoYXMgcGVybWlzc2lvbnMgdG8gd3JpdGUgaW4uPGJyIC8+Q2htb2QgaXQgNzc3IGlmIHlvdSBoYXZlIHByb2JsZW1zL2RvdWJ0cy48YnIgLz5BbHNvLCBjaGVjayB0byBzZWUgdGhhdCB5b3UgZG8gbm90IGhhdmUgUEhQIGRpcmVjdG9yeSByZXN0cmljdGlvbnMuJzsKJGxhbmdbJ3RpdGxlX25ld2xpbmVfcmVwbGFjZW1lbnQnXSA9ICdOZXdsaW5lL0NhcnJpYWdlIFJldHVybiByZXBsYWNlbWVudCBjaGFyYWN0ZXInOwokbGFuZ1sndGl0bGVfbmV3bGluZV9yZXBsYWNlbWVudF9oZWxwJ10gPSAnTGVhdmUgYmxhbmsgdG8gYWxsb3cgbmV3bGluZXMgYW5kIGNhcnJpYWdlIHJldHVybnMgaW4gb3V0cHV0JzsKJGxhbmdbJ3RpdGxlX3NlbmRfdXNlcmNvcHknXSA9ICdTZW5kIFVzZXIgYSBDb3B5IG9mIFN1Ym1pc3Npb24/JzsKJGxhbmdbJ3RpdGxlX3NlbmRfdXNlcmNvcHlfbGFiZWwnXSA9ICdMYWJlbCBmb3IgQ2hlY2tib3ggKGlmIHVzZXIgY2hvaWNlKSc7CiRsYW5nWyd0aXRsZV9zZW5kX21lX2FfY29weSddID0gJ1NlbmQgbWUgYSBjb3B5IG9mIGZvcm0nOwokbGFuZ1sndGl0bGVfYWxsb3dfc3ViamVjdF9vdmVycmlkZSddID0gJ0FsbG93IHN1YmplY3QgdG8gYmUgb3ZlcnJpZGRlbj8nOwokbGFuZ1sndGl0bGVfYWxsb3dfc3ViamVjdF9vdmVycmlkZV9sb25nJ10gPSAnQWxsb3cgXCdFbWFpbCAiU3ViamVjdCIgRmllbGRzXCcgdG8gb3ZlcnJpZGUgdGhlIHN1YmplY3Qgc3BlY2lmaWVkIGluIHRoZSBwdWxsZG93bi4nOwokbGFuZ1snb3B0aW9uX25ldmVyJ10gPSAnTmV2ZXInOwokbGFuZ1snb3B0aW9uX3VzZXJfY2hvaWNlJ10gPSAnR2l2ZSB1c2VyIGEgY2hvaWNlIChjaGVja2JveCknOwokbGFuZ1snb3B0aW9uX2Fsd2F5cyddID0gJ0Fsd2F5cyc7CiRsYW5nWydlcnJvcl91c2VydGFnX2Rpc3Bvc2l0aW9uJ10gPSAnVXNlciBkZWZpbmVkIHRhZyByZXR1cm5lZCBhbiBlcnJvcic7CiRsYW5nWydlcnJvcl9jYXRhbG9nZXJfbW9kdWxlX25vdF9hdmFpbGFibGUnXSA9ICc8c3Ryb25nPkNhdGFsb2dlciBtb2R1bGUgZG9lcyBub3Qgc2VlbSB0byBiZSBpbnN0YWxsZWQvYWN0aXZlLjwvc3Ryb25nPic7CiRsYW5nWyd3YXJuaW5nJ10gPSAnV0FSTklORyEnOwokbGFuZ1snZGVmYXVsdF90ZW1wbGF0ZSddID0gJ0RlZmF1bHQgVGVtcGxhdGUnOwokbGFuZ1sndGFibGVfbGVmdF90ZW1wbGF0ZSddID0gJ1RhYmxlIFRlbXBsYXRlLCBUaXRsZXMgb24gbGVmdCc7CiRsYW5nWyd0YWJsZV90b3BfdGVtcGxhdGUnXSA9ICdUYWJsZSBUZW1wbGF0ZSwgVGl0bGUgb24gdG9wJzsKJGxhbmdbJ2Zvcm1fdGVtcGxhdGVfbmFtZSddID0gJ1RlbXBsYXRlIGZyb20gJXMnOwokbGFuZ1sndGVtcGxhdGVfYXJlX3lvdV9zdXJlJ10gPSAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIG92ZXJ3cml0ZSB5b3VyIHRlbXBsYXRlIHdpdGggdGhlIHNlbGVjdGVkIHRlbXBsYXRlPyAoRXZlbiBpZiB5b3Ugc2F5IE9LLCB5b3Ugd2lsbCBzdGlsbCBuZWVkIHRvIHNhdmUgdGhlIGNoYW5nZSknOwokbGFuZ1sndGl0bGVfYmFkX2Z1bmN0aW9uJ10gPSAnRXJyb3Igd2hlbiBjb21wdXRpbmcgIiVzIi4nOwokbGFuZ1snbm9fcmVmZXJyZXJfaW5mbyddID0gJ05vIEhUVFBfUkVGRVJFUiBpbmZvIGF2YWlsYWJsZSAocHJvYmFibHkgZHVlIHRvIHVzZSBvZiBVc2VyIEVtYWlsIFZhbGlkYXRpb24pJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcGFyYW1fZXJyb3InXSA9ICdWYWxpZGF0aW9uIFBhcmFtZXRlciBFcnJvci4gUGxlYXNlIG1ha2Ugc3VyZSB5b3UgY29weSB0aGUgVVJMIGZyb20geW91ciBlbWFpbCBjb3JyZWN0bHkhJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVzcG9uc2VfZXJyb3InXSA9ICdWYWxpZGF0aW9uIFJlcHNvbnNlIEVycm9yLiBQbGVhc2UgbWFrZSBzdXJlIHlvdSBjb3B5IHRoZSBVUkwgZnJvbSB5b3VyIGVtYWlsIGNvcnJlY3RseSEnOwokbGFuZ1sndmFsaWRhdGlvbl9ub19maWVsZF9lcnJvciddID0gJ1ZhbGlkYXRpb24gUmVwc29uc2UgRXJyb3IuIE5vIGVtYWlsIHZhbGlkYXRpb24gZmllbGQgaW4gdGhpcyBmb3JtISc7CiRsYW5nWyd1cGdyYWRlMDN0bzA0J10gPSAnRm9ybSBUZW1wbGF0ZSB3YXMgdXBkYXRlZCBhdXRvbWF0aWNhbGx5IGFzIHBhcnQgb2YgdGhlIHZlcnNpb24gMC4zIHRvIHZlcnNpb24gMC40IHVwZ3JhZGUuIFlvdSBtYXkgbmVlZCB0byBtYWtlIHNvbWUgZml4ZXMuIElmIHlvdVwncmUgdXNpbmcgdGhlIGRlZmF1bHQgZm9ybSwgc2ltcGx5IHJlcGxhY2UgdGhpcyB0ZW1wbGF0ZSB3aXRoICJkZWZhdWx0IiB1c2luZyB0aGUgcHVsbGRvd24gYWJvdmUuJzsKJGxhbmdbJ2FkbWluZGVzYyddID0gJ0FkZCwgZWRpdCBhbmQgbWFuYWdlIGludGVyYWN0aXZlIEZvcm1zJzsKJGxhbmdbJ29wZXJhdG9yc19oZWxwJ10gPSAnSWYgeW91IHVzZSBTdHJpbmcgZXZhbHVhdGlvbiwgdGhlIG9ubHkgb3BlcmF0aW9uIGF2YWlsYWJsZSBpcyBjb25jYXRlbmF0aW9uICgrKSwgd2hpbGUgaWYgeW91IHVzZSBOdW1iZXIgZXZhbHVhdGlvbiB5b3UgaGF2ZSBiYXNpYywgdmVyeSBzaW1wbGUgbWF0aCAoLCArLCAtLCAqLCAvLCApLic7CiRsYW5nWydkYXRlX2phbnVhcnknXSA9ICfRj9C90LLQsNGA0YwnOwokbGFuZ1snZGF0ZV9mZWJydWFyeSddID0gJ9GE0LXQstGA0LDQu9GMJzsKJGxhbmdbJ2RhdGVfbWFyY2gnXSA9ICfQvNCw0YDRgic7CiRsYW5nWydkYXRlX2FwcmlsJ10gPSAn0LDQv9GA0LXQu9GMJzsKJGxhbmdbJ2RhdGVfbWF5J10gPSAn0LzQsNC5JzsKJGxhbmdbJ2RhdGVfanVuZSddID0gJ9C40Y7QvdGMJzsKJGxhbmdbJ2RhdGVfanVseSddID0gJ9C40Y7Qu9GMJzsKJGxhbmdbJ2RhdGVfYXVndXN0J10gPSAn0LDQstCz0YPRgdGCJzsKJGxhbmdbJ2RhdGVfc2VwdGVtYmVyJ10gPSAn0YHQtdC90YLRj9Cx0YDRjCc7CiRsYW5nWydkYXRlX29jdG9iZXInXSA9ICfQvtC60YLRj9Cx0YDRjCc7CiRsYW5nWydkYXRlX25vdmVtYmVyJ10gPSAn0L3QvtGP0LHRgNGMJzsKJGxhbmdbJ2RhdGVfZGVjZW1iZXInXSA9ICfQtNC10LrQsNCx0YDRjCc7CiRsYW5nWydzdWJtaXNzaW9uX2Vycm9yJ10gPSAnU29ycnkhIFRoZXJlIHdhcyBhbiBlcnJvciBoYW5kbGluZyB5b3VyIGZvcm0gc3VibWlzc2lvbi4nOwokbGFuZ1snc3VibWl0X2Vycm9yJ10gPSAnRm9ybUJ1aWxkZXIgc3VibWl0IGVycm9yOiAlcyc7CiRsYW5nWyd1cGxvYWRzX2Vycm9yJ10gPSAnRXJyb3IgY29tbWl0dGluZyBmaWxlIHRvIHRoZSB1cGxvYWRzIG1vZHVsZTogJXMnOwokbGFuZ1snbm91cGxvYWRzX2Vycm9yJ10gPSAnQ291bGQgbm90IGZpbmQgdGhlIHVwbG9hZHMgbW9kdWxlJzsKJGxhbmdbJ3VwbG9hZF9hdHRhY2hfZXJyb3InXSA9ICdVcGxvYWQvQXR0YWNobWVudCBlcnJvciBvbiBmaWxlICVzICh0bXBfbmFtZTogJXMsIG9mIHR5cGUgJXMpJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3JfZmlsZV9sb2NrJ10gPSAnRXJyb3IuIFVuYWJsZSB0byBvYnRhaW4gbG9jayBmb3IgZmlsZS4nOwokbGFuZ1sndW5jaGVja2VkX2J5X2RlZmF1bHQnXSA9ICdEZWZhdWx0OiB1bmNoZWNrZWQnOwokbGFuZ1snY2hlY2tlZF9ieV9kZWZhdWx0J10gPSAnRGVmYXVsdDogY2hlY2tlZCc7CiRsYW5nWydlbWFpbF9kZWZhdWx0X3RlbXBsYXRlJ10gPSAnRm9ybUJ1aWxkZXIgU3VibWlzc2lvbic7CiRsYW5nWydlbWFpbF90ZW1wbGF0ZV9ub3Rfc2V0J10gPSAnPGJyLz5FbWFpbCBUZW1wbGF0ZSBub3QgeWV0IHNldCEnOwokbGFuZ1snbWlzc2luZ19jbXNfbWFpbGVyJ10gPSAnRm9ybUJ1aWxkZXI6IENhbm5vdCBmaW5kIHJlcXVpcmVkIG1vZHVsZSBDTVNNYWlsZXIhJzsKJGxhbmdbJ3VzZXJfYXBwcm92ZWRfc3VibWlzc2lvbiddID0gJ1VzZXIgYXBwcm92ZWQgc3VibWlzc2lvbiAlcyBmcm9tICVzJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXSA9ICdFdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddID0gJ0V2ZW50IHRyaWdnZXJlZCBpZiB0aGVyZSBpcyBhbiBlcnJvciB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXSA9ICdFdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgZGlzcGxheWVkJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXSA9ICc8cD5FdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkLjwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBUaGUgZm9ybSBuYW1lIChzdHJpbmcpPC9saT4NCjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gVGhlIGludGVybmFsIGZvcm0gaWQgKGludCk8L2xpPg0KPGxpPjxlbT52YWx1ZV8mbHQ7bmFtZSZndDs8L2VtPiAtIFN1cHBseSBhIGRlZmF1bHQgdmFsdWUgdG8gYSBmaWVsZCB3aXRoIHRoZSBzcGVjaWZpZWQgbmFtZS48L2xpPg0KPC91bD4nOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdEVycm9yJ10gPSAnPHA+RXZlbnQgdHJpZ2dlcmVkIGlmIHRoZXJlIGlzIGFuIGVycm9yIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZDwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBUaGUgZm9ybSBuYW1lIChzdHJpbmcpPC9saT4NCjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gVGhlIGludGVybmFsIGZvcm0gaWQgKGludCk8L2xpPg0KPGxpPjxlbT5lcnJvcjwvZW0+IC0gQSBsaXN0IG9mIGFsbCBrbm93biBlcnJvcnMgKHN0cmluZyk8L2xpPg0KPC91bD4nOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXSA9ICc8cD5FdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgZGlzcGxheWVkPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIFRoZSBmb3JtIG5hbWUgKHN0cmluZyk8L2xpPg0KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBUaGUgaW50ZXJuYWwgZm9ybSBpZCAoaW50KTwvbGk+DQo8L3VsPic7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfcmVzcG9uc2VfaWQnXSA9ICdSZXNwb25zZSBJRC4gVXNlZCBieSBGb3JtQnJvd3Nlcic7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfcGFzc2VkX2Zyb21fdGFnJ10gPSAnRGVmYXVsdCBmaWVsZCB2YWx1ZXM7IHNlZSBtb2R1bGUgaGVscCc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZmllbGRfaWQnXSA9ICdGaWVsZCBJRCBmb3IgaW50ZXJuYWwgb3BlcmF0aW9ucyc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZm9ybV9uYW1lJ10gPSAnRm9ybSBOYW1lJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19mb3JtX2lkJ10gPSAnRm9ybSBJRCBmb3IgaW50ZXJuYWwgb3BlcmF0aW9ucyc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZ2VuZXJhbCddID0gJ0dlbmVyYWwgcGFyYW1ldGVycyBmb3IgaW50ZXJuYWwgb3BlcmF0aW9ucyc7CiRsYW5nWyd0ZW1wbGF0ZV92YXJpYWJsZV9oZWxwJ10gPSAnPGgzPkZvcm0gVGVtcGxhdGUgVmFyaWFibGVzPC9oMz4NCjxwPllvdSBjYW4gZWRpdCBpdCB0byBtYWtlIHlvdXIgZm9ybSBsYXlvdXQgbG9vayBhbnkgd2F5IHlvdVwnZCBsaWtlLg0KICAgVG8gbWFrZSB0aGUgZm9ybSB3b3JrLCB5b3VcJ2xsIG5lZWQgdG8gYWx3YXlzIGluY2x1ZGUgdGhlICYjMTIzOyRmYl9oaWRkZW59IGFuZCAmIzEyMzskc3VibWl0fQ0KICAgdGFncy48L3A+DQoNCjxwPllvdSBjYW4gYWNjZXNzIHlvdXIgZm9ybSBmaWVsZHMgZWl0aGVyIHVzaW5nIHRoZSAkZmllbGRzIGFycmF5IG9yIGJ5IGRpcmVjdGx5IGFjY2Vzc2luZyBmaWVsZHMgYnkgdGhlaXIgbmFtZXMgKGUuZy4sICYjMTIzOyRteWZpZWxkLT5pbnB1dH0gKTwvcD4NCg0KDQo8cD5FYWNoIGZpZWxkIGhhcyB0aGUgZm9sbG93aW5nIGF0dHJpYnV0ZXM6PC9wPg0KPHRhYmxlPg0KPHRyPjx0aD5GaWVsZDwvdGg+PHRoPlZhbHVlPC90aD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+ZGlzcGxheTwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIHNob3VsZCBiZSBkaXNwbGF5ZWQsIDAgb3RoZXJ3aXNlPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+cmVxdWlyZWQ8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBpcyByZXF1aXJlZCwgMCBvdGhlcndpc2U8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5yZXF1aXJlZF9zeW1ib2w8L3RkPjx0ZD50aGUgc3ltYm9sIGZvciByZXF1aXJlZCBmaWVsZHM8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5jc3NfY2xhc3M8L3RkPjx0ZD50aGUgQ1NTIGNsYXNzIHNwZWNpZmllZCBmb3IgdGhpcyBmaWVsZDwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPnZhbGlkPC90ZD48dGQ+MSBpZiB0aGlzIGZpZWxkIGhhcyBwYXNzZWQgdmFsaWRhdGlvbiwgMCBvdGhlcndpc2U8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5lcnJvcjwvdGQ+PHRkPlRleHQgb2YgdGhlIHZhbGlkYXRpb24gcHJvYmxlbSwgaW4gdGhlIGV2ZW50IHRoYXQgdGhpcyBmaWVsZCBkaWQgbm90IHZhbGlkYXRlPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aGlkZV9uYW1lPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgbmFtZSBzaG91bGQgYmUgaGlkZGVuLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmhhc19sYWJlbDwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIHR5cGUgaGFzIGEgbGFiZWw8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5uZWVkc19kaXY8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBuZWVkcyB0byBiZSB3cmFwcGVkIGluIGEgRElWIChvciB0YWJsZSByb3csIGlmIHRoYXRcJ3MgdGhlIHdheSB5b3Ugc3dpbmcpPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+bmFtZTwvdGQ+PHRkPnRoZSBmaWVsZFwncyBuYW1lPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aW5wdXQ8L3RkPjx0ZD50aGUgZmllbGRcJ3MgaW5wdXQgY29udHJvbCAoZS5nLiwgdGhlIGlucHV0IGZpZWxkIGl0c2VsZik8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5vcDwvdGQ+PHRkPmEgY29udHJvbCBidXR0b24gYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWVsZCBpZiBhcHBsaWNhYmxlIChlLmcuLCB0aGUgZGVsZXRlIGJ1dHRvbiBmb3IgZXhwYW5kYWJsZSB0ZXh0IGlucHV0KTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmlucHV0X2lkPC90ZD48dGQ+dGhlIElEIG9mIHRoZSBmaWVsZFwncyBpbnB1dCAodXNlZnVsIGZvciBsYWJlbCBmb3I9ImZvbyIpPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+dHlwZTwvdGQ+PHRkPnRoZSBmaWVsZFwncyBkYXRhIHR5cGU8L3RkPjwvdHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KPHRyPjx0ZD5maWVsZC0+bXVsdGlwbGVfcGFydHM8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYSBjb2xsZWN0aW9uIG9mIGNvbnRyb2xzPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+bGFiZWxfcGFydHM8L3RkPjx0ZD4xIGlmIHRoZSBjb2xsZWN0aW9uIG9mIGNvbnRyb2xzIGhhcyBzZXBhcmF0ZSBsYWJlbHMgZm9yIGVhY2ggY29udHJvbDwvdGQ+PC90cj4NCjwvdGFibGU+DQoNCjxwPkluIGNlcnRhaW4gY2FzZXMsIGZpZWxkLT5pbnB1dCBpcyBhY3R1YWxseSBhbiBhcnJheSBvZiBvYmplY3RzIHJhdGhlciB0aGFuIGFuIGlucHV0LiBUaGlzIGhhcHBlbnMsIGZvciBleGFtcGxlLCBpbiBDaGVja0JveEdyb3VwcyBvciBSYWRpb0J1dHRvbkdyb3Vwcy4gRm9yIHRoZW0sIHlvdSBjYW4gaXRlcmF0ZSB0aHJvdWdoIGZpZWxkLT5pbnB1dC0+bmFtZSBhbmQgZmllbGQtPmlucHV0LT5pbnB1dHMuPC9wPg0KICAgIA0KPHA+QWRkaXRpb25hbCBzbWFydHkgdmFyaWFibGVzIHRoYXQgeW91IGNhbiB1c2UgaW5jbHVkZTo8L3A+DQo8dGFibGU+DQo8dHI+PHRoPlZhcmlhYmxlPC90aD48dGg+VmFsdWU8L3RoPjwvdHI+DQo8dHI+PHRkPnRvdGFsX3BhZ2VzPC90ZD48dGQ+bnVtYmVyIG9mIHBhZ2VzIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD50aGlzX3BhZ2U8L3RkPjx0ZD5udW1iZXIgZm8gdGhlIGN1cnJlbnQgcGFnZSBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+dGl0bGVfcGFnZV94X29mX3k8L3RkPjx0ZD5kaXNwbGF5cyAicGFnZSB4IG9mIHkiIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD5jc3NfY2xhc3M8L3RkPjx0ZD5DU1MgQ2xhc3MgZm9yIHRoZSBmb3JtPC90ZD48L3RyPg0KPHRyPjx0ZD5mb3JtX25hbWU8L3RkPjx0ZD5Gb3JtIG5hbWU8L3RkPjwvdHI+DQo8dHI+PHRkPmZvcm1faWQ8L3RkPjx0ZD5Gb3JtIGRhdGFiYXNlIElEPC90ZD48L3RyPg0KPHRyPjx0ZD5wcmV2PC90ZD48dGQ+IkJhY2siIGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD5zdWJtaXQ8L3RkPjx0ZD4iQ29udGludWUiIG9yICJTdWJtaXQiIGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zLCBhZGp1c3RzIGF1dG9tYXRpY2FsbHk8L3RkPjwvdHI+DQo8L3RhYmxlPg0KPHA+RHVubm8gd2h5IHlvdVwnZCB3YW50IHNvbWUgb2YgdGhvc2UsIGJ1dCB0aGVyZSB5b3UgZ28uLi48L3A+JzsKJGxhbmdbJ3Bvc3RfaW5zdGFsbCddID0gJzxiciAvPk1ha2Ugc3VyZSB0byBzZXQgdGhlICJNb2RpZnkgRm9ybXMiIHBlcm1pc3Npb25zDQpvbiB1c2VycyB3aG8gd2lsbCBiZSBhZG1pbmlzdGVyaW5nIGZlZWRiYWNrIGZvcm1zLiBBbHNvLCBpZiB5b3VcJ2xsIGJlIGVtYWlsaW5nIGZvcm0NCnJlc3VsdHMsIGJlIHN1cmUgdG8gdXBkYXRlIHRoZSBDb25maWd1cmF0aW9uIGFwcHJvcHJpYXRlbHkuPGJyIC8+DQpQbGVhc2UgYmUgYXdhcmUgdGhhdCBhIGZlZWRiYWNrIGZvcm0gc2hvdWxkIG5vdCBiZSBhY3RpdmUgKGUuZy4sIHVzYWJsZSBieSB0aGUgcHVibGljKSB3aGlsZQ0KeW91IGFyZSBzdGlsbCBlZGl0aW5nIHRoZSBmb3JtLiBZb3Ugc2hvdWxkIGNyZWF0ZSB0aGUgZm9ybSwgYW5kIHBsYWNlIHRoZSB0YWcgaW50byBhbiBhY3RpdmUNCmNvbnRlbnQgcGFnZSBvbmx5IHdoZW4geW91IGhhdmUgZmluaXNoZWQgZWRpdGluZy4gT3RoZXJ3aXNlLCBlcnJvbmVvdXMgcmVzdWx0cyBjb3VsZCBiZSByZXR1cm5lZC48YnIgLz4NCkFkZGl0aW9uYWxseSwgdGhpcyB2ZXJzaW9uIGRvZXMgbm90IHN1cHBvcnQgcGFyYWxsZWwgZWRpdGluZyBvZiBmb3Jtcy4gUGxlYXNlIHRha2UgY2FyZSB0aGF0DQpvbmx5IG9uZSBhZG1pbiBpcyBlZGl0aW5nIGEgZ2l2ZW4gZm9ybSBhdCBhIGdpdmVuIHRpbWUuJzsKJGxhbmdbJ2hlbHAnXSA9ICc8aDM+V2hhdCBEb2VzIFRoaXMgRG8/PC9oMz4NCjxwPlRoZSBGb3JtIEJ1aWxkZXIgTW9kdWxlIGFsbG93cyB5b3UgdG8gY3JlYXRlIGZlZWRiYWNrIGZvcm1zIChpbiBmYWN0LCBpdFwncyBhIHJlcGxhY2VtZW50IG9mIHRoZSBvcmlnaW5hbCBGZWVkYmFjayBGb3JtIG1vZHVsZSksIHdpdGggdGhlIGFkZGVkIHBvd2VyIG9mIGRhdGFiYXNlIHN0b3JhZ2UuIFdpdGggaXRzIGNvbXBhbmlvbiBtb2R1bGUgRm9ybSBCcm93c2VyLCB5b3UgY2FuIHVzZSBpdCB0byBjcmVhdGUgc2ltcGxlIGRhdGFiYXNlIGFwcGxpY2F0aW9ucy48L3A+DQo8cD5UaGUgZm9ybXMgY3JlYXRlZCB1c2luZyB0aGUgRm9ybSBCdWlsZGVyIG1heSBiZSBpbnNlcnRlZA0KaW50byB0ZW1wbGF0ZXMgYW5kL29yIGNvbnRlbnQgcGFnZXMuIEZvcm1zIG1heSBjb250YWluIG1hbnkga2luZHMgb2YgaW5wdXRzLCBhbmQgbWF5IGhhdmUNCnZhbGlkYXRpb24gYXBwbGllZCB0byB0aGVzZSBpbnB1dHMuIFRoZSByZXN1bHRzIG9mIHRoZXNlIGZvcm1zIG1heSBiZSBoYW5kbGVkIGluIGEgdmFyaWV0eSBvZiB3YXlzLjwvcD4NCg0KPGgzPkhvdyBEbyBJIFVzZSBpdD88L2gzPg0KPFA+SW5zdGFsbCBpdCwgYW5kIHBva2UgYXJvdW5kIHRoZSBtZW51cy4gUGxheSB3aXRoIGl0LiBUcnkgY3JlYXRpbmcgZm9ybXMsIGFuZCBhZGRpbmcgdGhlbSB0byB5b3VyIGNvbnRlbnQuDQpJZiB5b3UgZ2V0IHN0dWNrLCBjaGF0IHdpdGggbWUgb24gdGhlICNjbXMgSVJDIGNoYW5uZWwsIHBvc3QgdG8gdGhlIGZvcnVtLCBzZW5kIG1lIGVtYWlsLCBvciwgaWYgeW91XCdyZQ0KcmVhbGx5IGRlc3BlcmF0ZSwgdHJ5IHJlYWRpbmcgdGhlIGluc3RydWN0aW9ucyBvbiB0aGUgcmVzdCBvZiB0aGlzIHBhZ2UuPC9QPg0KDQo8aDM+SG93IERvIEkgQ3JlYXRlIGEgRm9ybTwvaDM+DQo8cD5JbiB0aGUgQ01TIEFkbWluIE1lbnUsIHlvdSBzaG91bGQgZ2V0IGEgbmV3IG1lbnUgaXRlbSBjYWxsZWQgRm9ybUJ1aWxkZXIuIENsaWNrIG9uIHRoaXMuIE9uIHRoZSBwYWdlDQp0aGF0IGdldHMgc2hvd24sIHRoZXJlIGFyZSBvcHRpb25zIChhdCB0aGUgYm90dG9tIG9mIHRoZSBsaXN0IG9mIEZvcm1zKSB0byBBZGQgYSBOZXcgRm9ybSBvciBNb2RpZnkNCkNvbmZpZ3VyYXRpb24uPC9wPg0KDQo8aDM+QWRkaW5nIGEgRm9ybSB0byBhIFBhZ2U8L2gzPg0KPHA+SW4gdGhlIG1haW4gRm9ybUJ1aWxkZXIgYWRtaW4gcGFnZSwgeW91IGNhbiBzZWUgYW4gZXhhbXBsZSBvZiB0aGUgdGFnIHVzZWQgdG8gZGlzcGxheSBlYWNoIGZvcm0uIEl0IGxvb2tzDQpzb21ldGhpbmcgbGlrZSB7Y21zX21vZHVsZSBtb2R1bGU9XCdGb3JtQnVpbGRlclwnIGZvcm09XCdzYW1wbGVfZm9ybVwnfTwvcD4NCjxwPkJ5IGNvcHlpbmcgdGhpcyB0YWcgaW50byB0aGUgY29udGVudCBvZiBhIHBhZ2UsIG9yIGludG8gYSB0ZW1wbGF0ZSwgd2lsbCBjYXVzZSB0aGF0IGZvcm0gdG8gYmUgZGlzcGxheWVkLg0KSW4gdGhlb3J5LCB5b3UgY2FuIGhhdmUgbXVsdGlwbGUgZm9ybXMgb24gYSBwYWdlIGlmIHlvdSByZWFsbHkgd2FudCB0by4gQmUgY2FyZWZ1bCB3aGVuIHBhc3RpbmcgdGhlIHRhZw0KaW50byBhIHBhZ2VcJ3MgY29udGVudCBpZiB5b3UgdXNlIGEgV1lTSVdZRyBlZGl0b3Igc3VjaCBhcyBUaW55TUNFLCBGQ0tFZGl0LCBvciBIVE1MQXJlYS4gVGhlc2UgZWRpdG9ycyBtYXkgc3RlYWx0aGlseQ0KY2hhbmdlIHRoZSBxdW90ZSBtYXJrcyAoIikgaW50byBIVE1MIGVudGl0aWVzICgmYW1wO3F1b3Q7KSwgYW5kIHRoZSBmb3JtcyB3aWxsIG5vdCBzaG93IHVwLiBUcnkgdXNpbmcNCnNpbmdsZSBxdW90ZXMgKFwnKSBvciBlZGl0aW5nIHRoZSBIVE1MIGRpcmVjdGx5LjwvcD4NCg0KPGgzPldvcmtpbmcgd2l0aCBGb3JtczwvaDM+DQo8cD5CeSBjbGlja2luZyBvbiBhIEZvcm1cJ3MgbmFtZSwgeW91IGVudGVyIHRoZSBGb3JtIEVkaXQgcGFnZS4gVGhlcmUgYXJlIHNldmVyYWwgdGFicywgd2hpY2ggYXJlIGRlc2NyaWJlZCBiZWxvdzo8L3A+DQo8aDQ+TWFpbjwvaDQ+DQo8cD5UaGlzIGlzIHRoZSBtYWluIHBsYWNlIHlvdVwnbGwgd29yayBvbiB5b3VyIGZvcm0uIEhlcmUsIHlvdSBnaXZlIGl0IGEgbmFtZSwgYW4gYWxpYXMgKHdoaWNoIGlzIHVzZWQgdG8gaWRlbnRpZnkgaXQgZm9yIHBsYWNpbmcgaXQgaW4gYSBwYWdlIG9yIHRlbXBsYXRlKSwgYW5kLCBvcHRpb25hbGx5LCBhIENTUyBjbGFzcyB3aXRoIHdoaWNoIHRvIHdyYXAgdGhlIHdob2xlIHRoaW5nLjwvcD4NCjxwPkJlbG93IHRoaXMsIGlmIHlvdSBoYXZlIGl0IGVuYWJsZWQsIGlzIHRoZSAiZmFzdCBmaWVsZCBhZGRlciIgcHVsbGRvd24sIHRoYXQgbGV0cyB5b3UgcXVpY2tseSBhZGQgYSBmaWVsZCB0byB0aGUgZW5kIG9mIHlvdXIgZm9ybSBieSBzZWxlY3RpbmcgdGhlIGZpZWxkIHR5cGUuPC9wPg0KPHA+QmVsb3cgdGhpcyBpcyB0aGUgbGlzdCBvZiBmaWVsZHMgdGhhdCBtYWtlIHVwIHlvdXIgZm9ybS4gTW9yZSBkZXRhaWwgb24gdGhpcyBpcyBkZXNjcmliZWQgYmVsb3cuPC9wPg0KPGg0PkZvcm0gU3VibWlzc2lvbjwvaDQ+DQo8cD5XaGVuIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZCwgeW91IGNhbiBlaXRoZXIgcmVkaXJlY3QgdGhlIHVzZXIgdG8gYW5vdGhlciBwYWdlIG9mIHlvdXIgc2l0ZSwgb3IgeW91IGNhbiBwcmVzZW50IHRoZSB1c2VyIHNvbWUgbWVzc2FnZSAod2hpY2ggY2FuIGNvbnRhaW4gYW55IG9mIHRoZSB1c2VyXCdzIGZvcm0gZW50cmllcywgb3IganVzdCBzdGF0aWMgdGV4dCkuIEluIHRoaXMgdGFiLCB5b3Ugc2VsZWN0IHdoaWNoIG9mIHRoZXNlIGFwcHJvYWNoZXMgeW91IHdpc2ggdG8gdXNlLCBhbmQsIGlmIHlvdSBjaG9zZSByZWRpcmVjdGlvbiwgaXQgYWxsb3dzIHlvdSB0byBwaWNrIHRoZSBwYWdlIHRvIHJlZGlyZWN0IHVzZXJzIHRvIGFmdGVyIGEgc3VjY2Vzc2Z1bCBmb3JtIHN1Ym1pc3Npb24uPC9wPg0KPHA+QWxzbyBvbiB0aGlzIHBhZ2UsIHlvdSBjYW4gc3BlY2lmeSB0aGUgbGFiZWxzIG9mIHZhcmlvdXMgc3VibWlzc2lvbiBidXR0b25zICgiUHJldmlvdXMiLCAibmV4dCIsICJzdWJtaXQiKS4gWW91IGNhbiBhbHNvIG9wdCB0byBoYXZlIHNvbWUgSmF2YXNjcmlwdCBhZGRlZCB0byB0aGUgbGFzdCBwYWdlIG9mIGEgZm9ybSB0aGF0IHdpbGwgcHJldmVudCBtdWx0aXBsZSBzdWJtaXNzaW9ucyAodXNlZnVsIG9uIHNsb3cgc2VydmVycykuPC9wPg0KPGg0PkZvcm0gRGlzcGxheSBPcHRpb25zPC9oND4NCjxwPlRoaXMgdGFiIGFsbG93cyBmb3Igb3RoZXIgZm9ybSBjdXN0b21pemF0aW9ucywgbGlrZSB0aGUgc3ltYm9sIHRvIHNob3cgZm9yIHJlcXVpcmVkIGZpZWxkcy48L3A+DQo8aDQ+Q2FwdGNoYSBTZXR0aW5nczwvaDQ+DQo8cD5JZiB5b3UgaGF2ZSBpbnN0YWxsZWQgdGhlIENhcHRjaGEgbW9kdWxlLCB0aGlzIHRhYiBsZXRzIHlvdSBjb25maWd1cmUgdGhlIENhcHRjaGEgc2V0dGluZ3MgZm9yIHlvdXIgZm9ybS48L3A+DQo8aDQ+Rm9ybSBUZW1wbGF0ZTwvaDQ+DQo8cD5UaGlzIGlzIHdoZXJlIHlvdSBkbyB5b3VyIGN1c3RvbWl6YXRpb24gd29yayBvZiB5b3VyIGZvcm1cJ3MgU21hcnR5IFRlbXBsYXRlLiBTZWUgdGhlIHNlY3Rpb24gY2FsbGVkIEZvcm0gVGVtcGxhdGUgVmFyaWFibGVzIGJlbG93LjwvcD4NCjxwPlRoZSBmb3JtIHNob3VsZCBkZWZhdWx0IHRvIGEgQ3VzdG9tIHRlbXBsYXRlIHRoYXQgZG9jdW1lbnRzIHRoZSBTbWFydHkgdGFncyBhdmFpbGFibGUgdG8geW91LjwvcD4NCjxwPlVubGVzcyB5b3VcJ3JlIGEgU21hcnR5IGV4cGVydCwgeW91IHByb2JhYmx5IGRvblwndCB3YW50IHRvIG1lc3MgYXJvdW5kIHdpdGggdGhpcy4gSWYgeW91IGFyZSBhIFNtYXJ0eSBleHBlcnQsIHRoaXMgaXMgd2hlcmUgeW91IGNhbiB1bmxlYXNoIHlvdXIgbWFnaWMuPC9wPg0KPGg0PlN1Ym1pc3Npb24gVGVtcGxhdGU8L2g0Pg0KPHA+SWYsIGluIHRoZSBGb3JtIFN1Ym1pc3Npb24gdGFiLCB5b3Ugc2VsZWN0ZWQgXCdEaXNwbGF5ICJTdWJtaXNzaW9uIFRlbXBsYXRlIiwgdGhpcyBpcyB3aGVyZSB5b3UgY2FuIGNyZWF0ZSB0aGF0IHRlbXBsYXRlLiBUaGVyZSBpcyBhIGRpc3BsYXkgb2Ygd2hpY2ggc21hcnR5IHZhcmlhYmxlcyBhcmUgYXZhaWxhYmxlIHRvIHlvdSwgYW5kIGEgYnV0dG9uIHRvIGdlbmVyYXRlIGEgc2FtcGxlIHRlbXBsYXRlLjwvcD4NCjxwPklmIHlvdVwncmUgYSBTbWFydHkgZXhwZXJ0LCB5b3UgY2FuIGRvIGFsbCBtYW5uZXIgb2YgY3JlYXRpdmUgYW5kIHBvd2VyZnVsIHRoaW5ncyBoZXJlLiBJZiB5b3VcJ3JlIG5vdCBhIFNtYXJ0eSBleHBlcnQsIHlvdSBtaWdodCBqdXN0IHdhbnQgdG8gdXNlIHRoZSBkZWZhdWx0Lg0KPC9wPg0KDQo8aDM+QWRkaW5nIEZpZWxkcyB0byB5b3VyIEZvcm08L2gzPg0KPHA+VGhlIHR5cGVzIG9mIGZpZWxkcyB0aGF0IGFyZSBjdXJyZW50bHkgc3VwcG9ydGVkIGZpdCBpbnRvIGZvdXIgZ3JvdXBzOiBzdGFuZGFyZCBpbnB1dCBmaWVsZHMsIGRpc3BsYXkgY29udHJvbCBmaWVsZHMsIGVtYWlsLXNwZWNpZmljIGZpZWxkcywgYW5kIGZvcm0gcmVzdWx0IGhhbmRsaW5nIGZpZWxkcyAoYWxzbyBjYWxsZWQgRm9ybSBEaXNwb3NpdGlvbnMgaW4gcGxhY2VzKTo8L3A+DQo8dWw+DQo8bGk+U3RhbmRhcmQgSW5wdXQgRmllbGRzIC0gdGhlc2UgYXJlIGlucHV0cyB0aGF0IGFsbG93IGVudHJ5IG9mIHR5cGljYWwgZm9ybSBlbGVtZW50czsgdGV4dCBpbnB1dHMsIHJhZGlvIGJ1dHRvbnMsIGV0Yy48L2xpPg0KPGxpPkRpc3BsYXkgQ29udHJvbCBGaWVsZHMgLSB0aGVzZSBpbnB1dCBjb250cm9sIGhvdyB0aGUgdXNlciB3aWxsIHNlZSB0aGUgZGlzcGxheSBvZiB0aGUgZm9ybTsgcGFnZSBicmVha3MsIHN0YXRpYyB0ZXh0LCBldGMuPC9saT4NCjxsaT5FbWFpbC1zcGVjaWZpYyBGaWVsZHMgLSBzb21lIGZvcm1zIGdlbmVyYXRlIGVtYWlsLCBhbmQgZW1haWwtc3BlY2lmaWMgZmllbGRzIGNhbiBhbHRlciBhdHRyaWJ1dGVzIG9mIHRoZSBlbWFpbHMgc2VudC48L2xpPg0KPGxpPkZvcm0gRGlzcG9zaXRpb25zIC0gVGhlc2UgZGV0ZXJtaW5lIHdoYXQgaGFwcGVucyB3aGVuIHRoZSB1c2VyDQpzdWJtaXRzIHRoZSBmb3JtOyBmb3IgZWFjaCByZXN1bHQgaGFuZGxpbmcgZmllbGQsIHNvbWUgbWV0aG9kIG9mIHRyYW5zbWl0dGluZywgc2F2aW5nLCBvciBlbWFpbGluZyB0aGUNCmZvcm0gY29udGVudHMgdGFrZXMgcGxhY2UuIEEgZm9ybSBtYXkgaGF2ZSBtdWx0aXBsZSBmb3JtIGRpc3Bvc2l0aW9ucy48L2xpPg0KPC91bD4NCjxwPkZvcm0gZmllbGRzIGFyZSBhc3NpZ25lZCBuYW1lcy4gVGhlc2UgbmFtZXMgaWRlbnRpZnkgdGhlIGZpZWxkLCBub3Qgb25seSBvbiB0aGUgc2NyZWVuIGFzIGxhYmVscyBmb3IgdGhlIHVzZXIsDQpidXQgaW4gdGhlIGRhdGEgd2hlbiBpdFwncyBzdWJtaXR0ZWQgc28geW91IGtub3cgd2hhdCB0aGUgdXNlciBpcyByZXNwb25kaW5nIHRvLiBQaHJhc2luZyB0aGUgbmFtZSBsaWtlIGEgcXVlc3Rpb24NCmlzIGEgaGFuZHkgd2F5IG9mIG1ha2luZyBpdCBjbGVhciB0byB0aGUgdXNlciB3aGF0IGlzIGV4cGVjdGVkLiBTaW1pbGFybHksIG1hbnkgZmllbGRzIGhhdmUgYm90aCBOYW1lcyBhbmQgVmFsdWVzLg0KVGhlIE5hbWVzIGFyZSB3aGF0IGdldHMgc2hvd24gdG8gdGhlIHVzZXI7IHRoZSBWYWx1ZSBpcyB3aGF0IGdldHMgc2F2ZWQgb3IgdHJhbnNtaXR0ZWQgd2hlbiB0aGUgdXNlciBzdWJtaXRzDQp0aGUgZm9ybS4gVGhlIFZhbHVlcyBhcmUgbmV2ZXIgc2VlbiBieSB0aGUgdXNlciwgbm9yIGFyZSB0aGV5IHZpc2libGUgaW4gdGhlIEhUTUwsIHNvIGl0XCdzIHNhZmUgdG8gdXNlIGZvcg0KZW1haWwgYWRkcmVzc2VzIGFuZCBzdWNoLjwvcD4NCjxwPlNvbWUgZmllbGRzIGNhbiBoYXZlIG11bHRpcGxlIHZhbHVlcywgb3IgbXVsdGlwbGUgbmFtZS92YWx1ZSBwYWlycy4gV2hlbiB5b3UgZmlyc3QgY3JlYXRlIHN1Y2ggYSBmaWVsZCwNCnRoZXJlIG1heSBub3QgYmUgc3VmZmljaWVudCBpbnB1dHMgZm9yIHlvdSB0byBzcGVjaWZ5IGFsbCB0aGUgdmFsdWVzIHlvdSB3YW50LiBUbyBnZXQgbW9yZSBzcGFjZSBmb3IgaW5wdXR0aW5nDQp0aGVzZSB2YWx1ZXMsIHVzZSB0aGUgYnV0dG9ucyBhdCB0aGUgYm90dG9tIG9mIHRoZSBwYWdlIGZvciBhZGRpbmcgb3B0aW9ucy48L3A+DQo8cD5GaWVsZHMgY2FuIGJlIGFzc2lnbmVkIHZhbGlkYXRpb24gcnVsZXMsIHdoaWNoIHZhcnkgYWNjb3JkaW5nIHRvIHRoZSB0eXBlIG9mIHRoZSBmaWVsZC4gVGhlc2UgcnVsZXMgaGVscA0KZW5zdXJlIHRoYXQgdGhlIHVzZXIgZW50ZXJzIHZhbGlkIGRhdGEuIFRoZXkgbWF5IGFsc28gYmUNCnNlcGFyYXRlbHkgbWFya2VkICJSZXF1aXJlZCIsIHdoaWNoIHdpbGwgZm9yY2UgdGhlIHVzZXIgdG8gZW50ZXIgYSByZXNwb25zZS48L3A+DQo8cD5GaWVsZHMgYWxzbyBtYXkgYmUgYXNzaWduZWQgYSBDU1MgY2xhc3MuIFRoaXMgc2ltcGx5IHdyYXBzIHRoZSBpbnB1dCBpbiBhIGRpdiB3aXRoIHRoYXQgY2xhc3MsIHNvIGFzIHRvIGFsbG93DQpjdXN0b21pemVkIGxheW91dHMuIFRvIHVzZSB0aGlzIGVmZmVjdGl2ZWx5LCB5b3UgbWF5IG5lZWQgdG8gInZpZXcgc291cmNlIiBvbiB0aGUgZ2VuZXJhdGVkIGZvcm0sIGFuZCB0aGVuDQp3cml0ZSB5b3VyIENTUy48L3A+DQo8dWw+DQo8bGk+U3RhbmRhcmQgSW5wdXRzDQo8dWw+PGxpPlRleHQgSW5wdXQuIFRoaXMgaXMgYSBzdGFuZGFyZCB0ZXh0IGZpZWxkLiBZb3UgY2FuIGxpbWl0IHRoZSBsZW5ndGgsIGFuZCBhcHBseSB2YXJpb3VzIHZhbGlkYXRpb24NCmZ1bmN0aW9ucyB0byB0aGUgZmllbGQuPC9saT4NCjxsaT5UZXh0IEFyZWEuIFRoaXMgaXMgYSBiaWcsIGZyZWUtZm9ybSB0ZXh0IGlucHV0IGZpZWxkLjwvbGk+DQo8bGk+Q2hlY2tib3guIFRoaXMgaXMgYSBzdGFuZGFyZCBjaGVjayBib3guPC9saT4NCjxsaT5DaGVja2JveCBHcm91cC4gVGhpcyBpcyBhIGNvbGxlY3Rpb24gb2YgY2hlY2tib3hlcy4gVGhlIG9ubHkgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoaXMgaW5wdXQgYW5kIGENCmNvbGxlY3Rpb24gb2YgQ2hlY2tib3ggaW5wdXRzIGlzIHRoYXQgdGhleSBhcmUgcHJlc2VudGVkIGFzIGEgZ3JvdXAsIHdpdGggb25lIG5hbWUsIGFuZCBjYW4gaGF2ZSBhIHZhbGlkYXRpb24gZnVuY3Rpb24gcmVxdWlyaW5nIHRoYXQgeW91IGNoZWNrIG9uZSBvciBtb3JlIG9mIHRoZSBib3hlcyBpbiB0aGUgZ3JvdXAuPC9saT4NCjxsaT5SYWRpbyBHcm91cC4gVGhpcyBpcyBhIGNvbGxlY3Rpb24gb2YgcmFkaW8gYnV0dG9ucy4gT25seSBvbmUgb2YgdGhlIGdyb3VwIG1heSBiZSBzZWxlY3RlZCBieSB0aGUgdXNlci48L2xpPg0KPGxpPlB1bGxkb3duLiBUaGlzIGlzIGEgc3RhbmRhcmQgcHVsbGRvd24gbWVudS4gSXRcJ3MgcmVhbGx5IGNvbmNlcHR1YWxseSB0aGUgc2FtZSB0aGluZyBhcyBhIHJhZGlvIGJ1dHRvbg0KZ3JvdXAsIGJ1dCBpcyBiZXR0ZXIgd2hlbiB0aGVyZSBhcmUgYSBsYXJnZSBudW1iZXIgb2Ygb3B0aW9ucy48L2xpPg0KPGxpPk11bHRpc2VsZWN0LiBUaGlzIGlzIGEgbXVsdGktc2VsZWN0IGZpZWxkLiBJdFwncyByZWFsbHkgY29uY2VwdHVhbGx5IHRoZSBzYW1lIHRoaW5nIGFzIGEgY2hlY2tib3ggYnV0dG9uDQpncm91cCwgYnV0IGlzIGJldHRlciB3aGVuIHRoZXJlIGFyZSBhIGxhcmdlIG51bWJlciBvZiBvcHRpb25zLCBhcyB5b3UgY2FuIGxpbWl0IHRoZSBudW1iZXIgZGlzcGxheWVkIG9uIHRoZSBzY3JlZW4gYXQgYW55IG9uZSB0aW1lLjwvbGk+DQo8bGk+U3RhdGUuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBTdGF0ZXMgb2YgdGhlIFUuUy48L2xpPg0KPGxpPkNhbmFkaWFuIFByb3ZpbmNlLiBUaGlzIGlzIGEgcHVsbGRvd24gbGlzdGluZyB0aGUgQ2FuYWRpYW4gUHJvdmluY2VzIChDb250cmlidXRlZCBieSBOb2VsIE1jR3Jhbi4gVGhhbmtzISk8L2xpPg0KPGxpPkNvdW50cmllcy4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIENvdW50cmllcyBvZiB0aGUgd29ybGQgKGFzIG9mIEp1bHkgMjAwNSkuPC9saT4NCjxsaT5EYXRlIFBpY2tlci4gVGhpcyBpcyBhIHRyaXBsZSBwdWxsZG93biBhbGxvd2luZyB0aGUgdXNlciB0byBzZWxlY3QgYSBkYXRlLjwvbGk+DQo8bGk+VGltZSBQaWNrZXIuIFRoaXMgaXMgYSBzZXQgb2YgcHVsbGRvd25zIGFsbG93aW5nIHRoZSB1c2VyIHRvIHNlbGVjdCBhIHRpbWUgKHVzaW5nIDEyIG9yIDI0IGhvdXIgY2xvY2spLjwvbGk+DQo8bGk+RmlsZSBVcGxvYWQuIFRoaXMgaXMgYSBmaWxlIHVwbG9hZCBmaWVsZC48L2xpPg0KPGxpPkxpbmsgKFVzZXIgRW50ZXJlZCkuIFRoaXMgY3JlYXRlcyBhIGRvdWJsZSBpbnB1dCBmaWVsZCBmb3IgZ2V0dGluZyBhIGxpbmsgVVJMIGFuZCBsaW5rIHRpdGxlLjwvbGk+DQo8bGk+VGV4dCBGaWVsZCAoTXVsdGlwbGUpLiBUaGlzIGZpZWxkIGNyZWF0ZXMgb25lIG9yIG1vcmUgdGV4dCBpbnB1dHMgd2l0aCBhZGQgYW5kIGRlbGV0ZSBidXR0b25zLCBlZmZlY3RpdmVseSBnaXZpbmcgdGhlIGVuZCB1c2VyIGEgd2F5IG9mIGNyZWF0aW5nIHZhcmlhYmxlLWxlbmd0aCBsaXN0cy48L2xpPg0KPC91bD48L2xpPg0KDQo8bGk+RW1haWwtc3BlY2lmaWMgSW5wdXRzDQo8dWw+PGxpPkVtYWlsICJGcm9tIEFkZHJlc3MiIEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIHRoZWlyIGVtYWlsIGFkZHJlc3MuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBhZGRyZXNzIGluIHRoZSAiRnJvbSIgZmllbGQuPC9saT4NCjxsaT5FbWFpbCAiRnJvbSBOYW1lIiBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSB0aGVpciBuYW1lLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgbmFtZSBpbiB0aGUgIkZyb20iIGZpZWxkLjwvbGk+DQo8bGk+RW1haWwgU3ViamVjdCBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSBhIHN1YmplY3QgZm9yIHRoZWlyIGVtYWlsLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgaW4gdGhlICJTdWJqZWN0IiBmaWVsZC4gVGhpcyBtYXkgY2F1c2UgdHJvdWJsZSB3aXRoIGNlcnRhaW4gZGlzcG9zaXRpb25zIHRoYXQgd2FudCB0byBjb250cm9sIHRoZSBFbWFpbCBTdWJqZWN0LCBzbyB1c2UgaXQgd2l0aCBjYXV0aW9uLjwvbGk+DQo8L3VsPjwvbGk+DQoNCjxsaT5EaXNwbGF5IENvbnRyb2wgRmllbGRzPHVsPg0KPGxpPi1QYWdlIEJyZWFrLiBUaGlzIGFsbG93cyB5b3UgdG8gc3BsaXQgeW91ciBmZWVkYmFjayBmb3JtIGludG8gbXVsdGlwbGUgcGFnZXMuIEVhY2ggcGFnZSBpcw0KaW5kZXBlbmRlbnRseSB2YWxpZGF0ZWQuIFRoaXMgaXMgZ29vZCBmb3IgYXBwbGljYXRpb25zIGxpa2Ugb25saW5lIHN1cnZleXMuPC9saT4NCjxsaT4tRmllbGRzZXQgU3RhcnQuIENvbWJpbmVkIHdpdGggRmllbGRzZXQgRW5kLCB0aGlzIGFsbG93cyB5b3UgdG8gZ3JvdXAgdmFyaW91cyBmaWVsZHMgd2l0aGluIHlvdXIgZm9ybS4gVXNlIHRoaXMgdG8gc3RhcnQgYSBnaXZlbiBncm91cGluZy48L2xpPg0KPGxpPi1GaWVsZHNldCBFbmQuIENvbWJpbmVkIHdpdGggRmllbGRzZXQgU3RhcnQsIHRoaXMgYWxsb3dzIHlvdSB0byBncm91cCB2YXJpb3VzIGZpZWxkcyB3aXRoaW4geW91ciBmb3JtLiBVc2UgdGhpcyB0byBlbmQgYSBnaXZlbiBncm91cGluZy48L2xpPg0KPGxpPi1IaWRkZW4gRmllbGQuIFRoaXMgYWxsb3dzIHlvdSB0byBlbWJlZCBhIGhpZGRlbiBmaWVsZCBpbiB5b3VyIGZvcm0uPC9saT4NCjxsaT4tU3RhdGljIFRleHQuIFRoaXMgYWxsb3dzIHlvdSB0byBwdXQgdGV4dCBvciBhIGxhYmVsIGluIHRoZSBtaWRkbGUgb2YgeW91ciBmb3JtLiBUaGlzIGlzIHVzZWZ1bCBmb3IgZ2l2aW5nIGFkZGl0aW9uYWwgaGVscCB0ZXh0LCBlc3BlY2lhbGx5IGlmIHlvdVwncmUgbm90IHVzaW5nIGEgQ3VzdG9tIFRlbXBsYXRlIHRvIHJlbmRlciB5b3VyIGZvcm0uPC9saT4NCjxsaT4tU3RhdGljIExpbmsuIFRoaXMgYWxsb3dzIHlvdSB0byBwdXQgYSBsaW5rIHRvIGEgZ2l2ZW4gcGFnZSBpbnRvIHlvdXIgZm9ybS4gT3B0aW9uYWxseSwgeW91IGNhbiBoYXZlIGl0IGF1dG9wb3B1bGF0ZSB3aXRoIHRoZSBwYWdlIHdoZXJlIHRoZSBmb3JtIGlzIGVtYmVkZGVkICh1c2VmdWwgaWYgeW91XCdyZSBzZW5kaW5nIHJlc3VsdHMgdmlhIGVtYWlsKS48L2xpPg0KPGxpPi1Db21wdXRlZCBGaWVsZC4gVGhpcyBhbGxvd3MgeW91IHRvIGVtYmVkIGEgY29tcHV0ZWQgZmllbGQgaW4geW91ciBmb3JtLiBJdCBpcyBub3QgdmlzaWJsZSB0byB0aGUgdXNlciB1bnRpbCBhZnRlciB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQuIEl0IGFsbG93cyB5b3UgdG8gZG8gc2ltcGxlIGFyaXRobWV0aWMgb3Igc3RyaW5nIGNvbmNhdGVuYXRpb24uPC9saT4NCjxsaT4tVW5pcXVlIEludGVnZXIgKFNlcmlhbCkuIFRoaXMgaXMgYW4gaW50ZWdlciB0aGF0IGluY3JlYXNlcyBldmVyeSB0aW1lIHNvbWVvbmUgaGl0cyB5b3VyIGZvcm0uIFlvdXIgcmVzdWx0cyBtYXkgbm90IGJlIHNlcXVlbnRpYWwsIGJ1dCB0aGV5IHdpbGwgaW5jcmVhc2UgbW9ub3RvbmljYWxseS48L2xpPg0KPC91bD48L2xpPg0KDQo8bGk+Rm9ybSBIYW5kbGluZyBJbnB1dHMgKERpc3Bvc2l0aW9ucykNCjx1bD48bGk+KkNhbGwgYSBVc2VyIERlZmluZWQgVGFnIFdpdGggdGhlIEZvcm0gUmVzdWx0cy4gVGhpcyBzdWJtaXRzIGFsbCB0aGUgZm9ybSByZXN1bHRzIHRvIHRoZSBVc2VyLURlZmluZWQgVGFnIHlvdSBzcGVjaWZ5LiBUaGUgVURUIGNhbiBoYW5kbGUgdGhlIHJlc3VsdHMgaG93ZXZlciBpdCB3YW50cy4gVmFsdWVzIGFyZSBwYXNzZWQgYXMgJHBhcmFtW1wnZmllbGRfbmFtZVwnXS48L2xpPg0KPGxpPipFbWFpbCBSZXN1bHRzIEJhc2VkIG9uIFB1bGxkb3duLiBUaGlzIGlzIHVzZWZ1bCBmb3Igd2ViIHNpdGVzIHdoZXJlIGNvbW1lbnRzIGdldCByb3V0ZWQgYmFzZWQgb24gdGhlaXIgc3ViamVjdCBtYXR0ZXIsIGUuZy4sIGJ1Z3MgZ2V0IHNlbnQgdG8gb25lIHBlcnNvbiwgbWFya2V0aW5nIHF1ZXN0aW9ucyB0byBhbm90aGVyIHBlcnNvbiwgc2FsZXMgcmVxdWVzdHMgdG8gc29tZW9uZSBlbHNlLCBldGMuIFRoZSBwdWxsZG93biBpcyBwb3B1bGF0ZWQgd2l0aCB0aGUgc3ViamVjdHMsIGFuZCBlYWNoIGdldHMgZGlyZWN0ZWQgdG8gYSBzcGVjaWZpYyBlbWFpbCBhZGRyZXNzLiBZb3Ugc2V0IHVwIHRoZXNlIG1hcHBpbmdzIGluIHRoZSB3aGVuIHlvdSBjcmVhdGUgb3IgZWRpdCBhIGZpZWxkIG9mIHRoaXMgdHlwZS4gSWYgeW91IHVzZSBvbmUgb2YgdGhlc2UgIkRpcmVjdG9yIiBwdWxsZG93bnMsIHRoZSB1c2VyIG11c3QgbWFrZSBhIHNlbGVjdGlvbiBpbiBvcmRlciB0byBzdWJtaXQgdGhlDQpmb3JtLiBUaGlzIGlucHV0IGlzIHBhcnQgb2YgdGhlIGZvcm0gdGhlIHVzZXIgc2VlcywgYWx0aG91Z2ggdGhlIGVtYWlsIGFkZHJlc3NlcyBhcmUgbm90IG1hZGUgdmlzaWJsZSBub3INCmFyZSB0aGV5IGVtYmVkZGVkIGluIHRoZSBIVE1MLjwvbGk+DQo8bGk+KkVtYWlsICJGcm9tIEFkZHJlc3MiIEZpZWxkLCBhbmQgc2VuZCBjb3B5LiBUaGlzIHdvcmtzIGxpa2UgdGhlIEVtYWlsICJGcm9tIEFkZHJlc3MiIEZpZWxkIGRlc2NyaWJlZCBhYm92ZSwgYnV0IGl0IHByb3ZpZGVzIG9wdGlvbnMgZm9yIHNlbmRpbmcgYSBjb3B5IG9mIHRoZSByZXN1bHRzIHRvIHRoZSB1c2VyLjwvbGk+DQo8bGk+KkVtYWlsIFJlc3VsdHMgdG8gc2V0IEFkZHJlc3MoZXMpLiBUaGlzIHNpbXBseSBzZW5kcyB0aGUgZm9ybSByZXN1bHRzIHRvIG9uZSBvciBtb3JlIGVtYWlsIGFkZHJlc3NlcyB0aGF0IHlvdSBlbnRlciB3aGVuIHlvdSBjcmVhdGUgb3IgZWRpdCB0aGlzIHR5cGUgb2YgZmllbGQuIFRoaXMgZmllbGQgYW5kIGl0cyBuYW1lIGFyZSBub3QgdmlzaWJsZSBpbiB0aGUNCmZvcm0gdGhhdCB0aGUgdXNlciBzZWVzLiBUaGUgZW1haWwgYWRkcmVzc2VzIGFyZSBub3QgbWFkZSB2aXNpYmxlIG5vcg0KYXJlIHRoZXkgZW1iZWRkZWQgaW4gdGhlIEhUTUwuPC9saT4NCjxsaT4qRW1haWwgdG8gVXNlci1TdXBwbGllZCBBZGRyZXNzLiBUaGlzIHB1dHMgYW4gaW5wdXQgZmllbGQgaW4gdGhlIGZvcm0gZm9yIHRoZSB1c2VyIHRvIHBvcHVsYXRlIHdpdGggYW4gZW1haWwgYWRkcmVzcy4gVGhlIGZvcm0gcmVzdWx0cyBnZXQgc2VudCB0byB0aGF0IGFkZHJlc3MuIEJld2FyZSBvZiBTcGFtIGFidXNlISBBY3RpdmUgdGhlIHByaW1pdGl2ZSBhbnRpLXNwYW0gZmVhdHVyZXMgaW4gdGhlIEZvcm1CdWlsZGVyIGNvbmZpZ3VyYXRpb24gc2NyZWVuLjwvbGk+DQo8bGk+KlN0b3JlIFJlc3VsdHMgaW4gRGF0YWJhc2UuIFRoaXMgd2lsbCBzdG9yZSB0aGUgZm9ybSBjb250ZW50cyBpbiBhbiBpbnRlcm5hbCBkYXRhYmFzZS4gWW91IHdpbGwgYWx3YXlzIHVzZSB0aGlzIGRpc3Bvc2l0aW9uIGlmIHlvdSB1c2UgdGhlIGZvcm0gd2l0aCBGb3JtQnJvd3Nlci48L2xpPg0KPGxpPipSZWRpcmVjdCB0byBQYWdlIEJhc2VkIG9uIFB1bGxkb3duLiBUaGlzIGFsbG93cyB5b3UgdG8gcmVkaXJlY3QgdGhlIGZvcm0gdG8gYSBkaWZmZXJlbnQgc2l0ZSBwYWdlIGRlcGVuZGluZyBvbiBpdHMgdmFsdWUuIElmIHlvdSBoYXZlIG11bHRpcGxlIGRpc3Bvc2l0aW9ucywgbWFrZSBzdXJlIHRoaXMgaXMgdXNlZCBsYXN0LjwvbGk+DQo8bGk+KlZhbGlkYXRlIHZpYSBFbWFpbC4gVGhpcyBpcyBhIHN0cmFuZ2UgYW5kIHBvd2VyZnVsIGZpZWxkLiBJdCBwcm92aWRlcyB0aGUgdXNlciBhIG1hbmRhdG9yeSBpbnB1dCBmb3IgdGhlaXIgZW1haWwgYWRkcmVzcy4gT25jZSB0aGV5IHN1Ym1pdCB0aGVpciBmb3JtLCB0aGUgc3RhbmRhcmQgZm9ybSBkaXNwb3NpdGlvbnMgYXJlIG5vdCBwZXJmb3JtZWQgLS0gcmF0aGVyLCBpdCBzZW5kIHRoZSB1c2VyIGFuIGVtYWlsIHdpdGggYSBzcGVjaWFsIGNvZGVkIGxpbmsuIElmIHRoZXkgY2xpY2sgb24gdGhlIGxpbmssIHRoZSBvdGhlciBmb3JtIGlzIGNvbnNpZGVyZWQgImFwcHJvdmVkLCIgYW5kIHRoZSBvdGhlciBkaXNwb3NpdGlvbnMgYXJlIGFsbCBwZXJmb3JtZWQuPC9saT4NCjxsaT4qV3JpdGUgUmVzdWx0cyB0byBGbGF0IEZpbGUuIFRoaXMgdGFrZXMgdGhlIGZvcm0gcmVzdWx0cyBhbmQgd3JpdGVzIHRoZW0gaW50byBhIHRleHQgZmlsZS4gWW91IG1heQ0Kc2VsZWN0IHRoZSBuYW1lIG9mIHRoZSBmaWxlLCBhbmQgc2V0IGl0cyBmb3JtYXQuIFRoZXNlIGZpbGVzIGFyZSB3cml0dGVuIHRvIHRoZSAib3V0cHV0IiBkaXJlY3RvcnkgdW5kZXIgdGhlDQptb2R1bGVcJ3MgaW5zdGFsbGF0aW9uIGRpcmVjdG9yeSwgYXNzdW1pbmcgdGhlIHdlYiBzZXJ2ZXIgaGFzIHBlcm1pc3Npb24gdG8gd3JpdGUgdGhlcmUuPC9saT4NCjxsaT4qU2F2ZSBSZXN1bHRzIHRvIEZpbGUgQmFzZWQgb24gUHVsbGRvd24uIExpa2UgdGhlIEZsYXQgRmlsZSBkaXNwb3NpdGlvbiwgZXhjZXB0IHRoZSB2YWx1ZSBvZiBhIHB1bGwtZG93biBkZXRlcm1pbmVzIHdoaWNoIGZpbGUgcmVzdWx0cyBnZXQgd3JpdHRlbiB0by48L2xpPg0KPGxpPipTYXZlIFJlc3VsdHMgdG8gRmlsZShzKSBCYXNlZCBvbiBNdWx0aXBsZSBTZWxlY3Rpb25zLiBMaWtlIHRoZSBGbGF0IEZpbGUgZGlzcG9zaXRpb24sIGV4Y2VwdCB0aGUgdmFsdWUocykgb2YgY2hlY2tib3hlcyAgZGV0ZXJtaW5lcyB3aGljaCBmaWxlKHMpIHJlc3VsdHMgZ2V0IHdyaXR0ZW4gdG8uPC9saT4NCjxsaT4qRW1haWwgdG8gQ01TIEFkbWluIFVzZXIuIFByb3ZpZGVzIGEgcHVsbC1kb3duIG9mIENNUyBBZG1pbiB1c2VycywgYW5kIGRpcmVjdHMgdGhlIHJlc3VsdHMgYXMgYW4gZW1haWwgdG8gdGhlIHNlbGVjdGVkIGFkbWluLjwvbGk+DQo8bGk+KlN0b3JlIFJlc3VsdHMgZm9yIEZvcm1Ccm93c2VyIE1vZHVsZSB2LjMuIFN0b3JlcyB0aGUgZm9ybSByZXN1bHRzIGluIGFuIFhNTCBzdHJ1Y3R1cmUgYXMgYSBzaW5nbGUgZGF0YWJhc2UgcmVjb3JkLiBUaGlzIHdpbGwgYmVjb21lIHRoZSBpbnRlcmZhY2UgdG8gRm9ybSBCcm93c2VyIGluIHRoZSBuZXh0IHJlbGVhc2UuPC9saT4NCg0KPC91bD48L2xpPjwvbGk+PC91bD4NCg0KDQo8aDM+UGFzc2luZyBEZWZhdWx0IFZhbHVlcyB0byBGb3JtczwvaDM+DQo8cD5DYWxndXkgYWRkZWQgYSBuaWNlIGZlYXR1cmUsIHdoaWNoIGlzIHRoYXQgeW91IGNhbiBwYXNzIGRlZmF1bHQgZmllbGQgdmFsdWVzIHRvIHlvdXIgZm9ybSB2aWEgdGhlIG1vZHVsZSB0YWcuIFRoaXMgYWxsb3dzIHlvdSB0byBoYXZlDQp0aGUgc2FtZSBmb3JtIGluIG11bHRpcGxlIHBsYWNlcywgYnV0IHdpdGggZGlmZmVyZW50IGRlZmF1bHQgdmFsdWVzLiBJdCBtYXkgbm90IHdvcmsgZm9yIG1vcmUgZXhvdGljIGZpZWxkIHR5cGVzLCBidXQgZm9yIGZpZWxkcyB0aGF0IGhhdmUNCmEgc2luZ2xlIHZhbHVlLCB5b3UgY2FuIHNwZWNpZnkgbGlrZTo8L3A+DQo8cD57Y21zX21vZHVsZSBtb2R1bGU9XCdGb3JtQnVpbGRlclwnIGZvcm09XCdteV9mb3JtXCcgdmFsdWVfPGk+RklFTEROQU1FPC9pPj1cJ2RlZmF1bHRfdmFsdWVcJ308L3A+DQo8cD5UaGlzIHdpbGwgc2V0IHRoZSBmaWVsZCB3aXRoIDxpPkZJRUxETkFNRTwvaT4gdG8gXCdkZWZhdWx0X3ZhbHVlXCcuPC9wPg0KPHA+VGhpcyBjYW4gYmUgcHJvYmxlbWF0aWMsIGFzIHNvbWV0aW1lcyBmaWVsZCBuYW1lcyBhcmUgdW53ZWlsZHkgb3IgY29udGFpbiBjaGFyYWN0ZXJzIHRoYXQgZG9uXCd0IHdvcmsgd2VsbCB3aXRoIFNtYXJ0eS4gU28gdGhlcmUgaXMgYW4NCmFsdGVybmF0aXZlIGxpa2UgdGhpczo8L3A+DQo8cD57Y21zX21vZHVsZSBtb2R1bGU9XCdGb3JtQnVpbGRlclwnIGZvcm09XCdteV9mb3JtXCcgdmFsdWVfZmxkPGk+TlVNQkVSPC9pPj1cJ2RlZmF1bHRfdmFsdWVcJ308L3A+DQo8cD5UaGF0IHVzZXMgZmllbGQgPGk+TlVNQkVSPC9pPiwgd2hlcmUgPGk+TlVNQkVSPC9pPiBpcyB0aGUgaW50ZXJuYWwgRm9ybUJ1aWxkZXIgZmllbGQgaWQuIFlvdSBtaWdodCB3b25kZXIgaG93IHlvdSBrbm93IHdoYXQgdGhhdCBpZCBpcy4gU2ltcGx5IGdvIGludG8gdGhlIEZvcm1CdWlsZGVyIGNvbmZpZ3VyYXRpb24gdGFiLA0KYW5kIGNoZWNrICJTaG93IEZpZWxkIElEcyI8L3A+DQoNCjxoMz5FbWFpbCBhbmQgRmxhdCBGaWxlIFRlbXBsYXRlczwvaDM+DQo8cD5NYW55IGRpc3Bvc2l0aW9uIHR5cGVzIGFsbG93IHlvdSB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmb3IgdGhlIGVtYWlsIHRoYXQgaXMgZ2VuZXJhdGVkLCBvciBmb3IgdGhlIHdheSB0aGUgcmVzdWx0cyBhcmUgd3JpdHRlbiB0byBhIGZpbGUuIElmIHlvdSBvcHQgbm90IHRvIGNyZWF0ZSBhIHRlbXBsYXRlLCB0aGUgRm9ybUJ1aWxkZXIgd2lsbCB1c2UgaXRcJ3Mgb3duIGJlc3QgZ3Vlc3MsIHdoaWNoIG1heSBvciBtYXkgbm90IHdvcmsgb3V0IHRvIHlvdXIgbGlraW5nLiBZb3UgY2FuIGFsd2F5cyBjbGljayBvbiB0aGUgIkNyZWF0ZSBTYW1wbGUgVGVtcGxhdGUiIGFuZCB0aGVuIGN1c3RvbWl6ZSB0aGUgcmVzdWx0cy48L3A+DQo8cD5UbyB0aGUgcmlnaHQsIHlvdVwnbGwgZmluZCBhIGxlZ2VuZCB3aGljaCBsaXN0cyBhbGwgb2YgdGhlIHZhcmlhYmxlcyB0aGF0IGFyZSBhdmFpbGFibGUgdG8geW91IHRvIHVzZSBpbiB5b3VyIHRlbXBsYXRlLiBBcyBvZiB2ZXJzaW9uIDAuMywgdmFyaWFibGVzIGhhdmUgdHdvIG5hbWVzLCBvbmUgYmFzZWQgb24gdGhlIGZpZWxkIG5hbWUsIHRoZSBvdGhlciBiYXNlZCBvbiB0aGUgZmllbGQgSUQuIElmIHlvdSB1c2UgZmllbGQgbmFtZXMgdGhhdCBoYXZlIGNoYXJhY3RlcnMgb3V0c2lkZSBvZiB0aGUgQVNDSUkgMzItMTI2IHJhbmdlLCBpdCB3aWxsIGJlIHNhZmVyIHRvIHVzZSB0aGUgSUQtYmFzZWQgdmFyaWFibGVzLjwvcD4NCjxwPjxzdHJvbmc+Tm90ZSB0aGF0IG9uY2UgeW91XCd2ZSBjaGFuZ2VkIGEgdGVtcGxhdGUsIGl0IHdpbGwgbm8gbG9uZ2VyIGF1dG9tYXRpY2FsbHkgYWRkIG5ldyBmaWVsZHMuPC9zdHJvbmc+IEZvciB0aGlzIHJlYXNvbiwgaXRcJ3MgdXN1YWxseSBiZXN0IHRvIGNyZWF0ZSB5b3VyIHRlbXBsYXRlcyBhcyB0aGUgbGFzdCBzdGVwIG9mIGNyZWF0aW5nIHlvdXIgZm9ybS48L3A+DQo8cD5BcyBvZiB2ZXJzaW9uIDAuMi40LCB5b3UgY2FuIG9wdCB0byBzZW5kIGFueSBvZiB0aGVzZSBlbWFpbHMgYXMgSFRNTCBlbWFpbC4gVGhlcmUgc2hvdWxkIGJlIGEgY2hlY2tib3ggYXQgdGhlIHRvcCBvZiB0aGUgdGVtcGxhdGUgcGFnZSBmb3IgdGhpcy4gVGhlcmUgaXMgYWxzbyBhICJDcmVhdGUgU2FtcGxlIEhUTUwgVGVtcGxhdGUiIGJ1dHRvbiBvdmVyIGluIHRoZSBsZWdlbmQgYXJlYS4gRm9yIEhUTUwgZW1haWwsIHRoZSBlbWFpbCBib2R5IHdpbGwgYWxzbyBwcm92aWRlIHRoZSBkZWZhdWx0IHRleHQtb25seSB2YWx1ZXMuPC9wPg0KDQo8aDM+Q29uZmlndXJhdGlvbjwvaDM+DQo8cD5UaGVyZSBhcmUgc29tZSBnbG9iYWwgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBGb3JtQnVpbGRlcjo8L3A+DQo8dWw+DQo8bGk+RW5hYmxlIGZhc3QgZmllbGQgYWRkIHB1bGxkb3duLiBUaGlzIGVuYWJsZXMgdGhlIHB1bGxkb3duIG9uIHRoZSBGb3JtIEVkaXQgcGFnZSB3aGljaCBzYXZlcyBhIHN0ZXAgaW4gdGhlIGNyZWF0aW9uIG9mIG5ldyBmaWVsZHMuPC9saT4NCjxsaT5IaWRlIEVycm9ycy4gVGhpcyBpcyBzZXQgYnkgZGVmYXVsdC4gVW5jaGVja2luZyBpdCB3aWxsIGNhdXNlIG1vcmUgZGV0YWlsZWQgZXJyb3JzIHRvIGJlIGRpc3BsYXllZCBpZiB0aGVyZSBhcmUgcHJvYmxlbXMgd2hlbiB5b3Ugc3VibWl0IHlvdXIgZm9ybS48L2xpPg0KPGxpPlJlcXVpcmUgRmllbGQgTmFtZXMuIFR5cGljYWxseSwgeW91IHdpbGwgd2FudCBmb3JtIGZpZWxkcyB0byBiZSBuYW1lZCBzbyB5b3UgY2FuIHRlbGwgd2hpY2ggaXMgd2hpY2guIEhvd2V2ZXIsIGluIHNvbWUgY2FzZXMsIHlvdSBtaWdodCB3YW50IHRvIGhhdmUgbmFtZWxlc3MgZmllbGRzLiBVbmNoZWNrIHRoaXMgaWYgeW91IHdhbnQgdG8gYWxsb3cgbmFtZWxlc3MgZmllbGRzLjwvbGk+DQo8bGk+VW5pcXVlIEZpZWxkIE5hbWVzLiBUeXBpY2FsbHksIHlvdSB3aWxsIHdhbnQgZm9ybSBmaWVsZHMgdG8gaGF2ZSB1bmlxdWUgbmFtZXMgc28geW91IGNhbiB0ZWxsIHdoaWNoIGlzIHdoaWNoLiBVbmNoZWNrIHRoaXMgaWYgeW91IHdhbnQgdG8gYWxsb3cgZmllbGRzIHRvIHNoYXJlIG5hbWVzLjwvbGk+DQo8bGk+VXNlIHJlbGF4ZWQgZW1haWwgdmFsaWRhdGlvbi4gVGhpcyB1c2VzIGEgbGVzcyByZXN0cmljdGl2ZSByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHZhbGlkYXRpbmcgZW1haWw7IGUuZy4sIHhAeSB3aWxsIGJlIGFsbG93ZWQsIHdoZXJlIHR5cGljYWxseSB4QHkudGxkIGlzIHJlcXVpcmVkLjwvbGk+DQo8bGk+U2hvdyBGb3JtIEJ1aWxkZXIgVmVyc2lvbi4gRGlzcGxheXMgdGhlIHZlcnNpb24gb2YgRm9ybUJ1aWxkZXIgeW91XCdyZSB1c2luZyBpbiBhIGNvbW1lbnQgd2hlbiB0aGUgZm9ybSBpcyBnZW5lcmF0ZWQuIFR5cGljYWxseSBvbmx5IHVzZWZ1bCB3aGVuIGRlYnVnZ2luZy48L2xpPg0KPGxpPkVuYWJsZSBwcmltaXRpdmUgYW50aS1zcGFtIGZlYXR1cmVzLiBXaGVuIHR1cm5lZCBvbiwgdGhpcyBhbGxvd3MgYW55IGdpdmVuIElQIGFkZHJlc3MgdG8gb25seSBnZW5lcmF0ZSAxMCBlbWFpbHMgcGVyIGhvdXIuPC9saT4NCjxsaT5TaG93IEZpZWxkIElEcy4gV2hlbiB0dXJuZWQgb24sIEZvcm1CdWlsZGVyIHdpbGwgZGlzcGxheSBmaWVsZCBpZHMgd2hlbiBhZGRpbmcgb3IgZWRpdGluZyBhIGZvcm0uPC9saT4NCjwvdWw+DQo8aDM+U3R5bGluZyBhbmQgQ1NTPC9oMz4NCjxwPkFmdGVyIGEgYml0IG9mIG5hZ2dpbmcgb24gdGhlIHBhcnQgb2YgcGVvcGxlIHdobyBhY3R1YWxseSByZXNwZWN0IHN0YW5kYXJkcywgRm9ybUJ1aWxkZXIgbm8gbG9uZ2VyIGVuY291cmFnZXMgdHJpY2tzIGxpa2UgZW1iZWRkaW5nIENTUyBpbiANCnN0YXRpYyB0ZXh0IGZpZWxkcy4gSW5zdGVhZCwgaXQgY3JlYXRlcyBhIHN0eWxlc2hlZXQgY2FsbGVkICJGb3JtQnVpbGRlciBEZWZhdWx0IiB0aGF0IHlvdSBhcmUgZW5jb3VyYWdlZCB0byBhdHRhY2ggdG8gdGhlIHBhZ2UgdGVtcGxhdGUNCnRoYXQgeW91IHVzZSBmb3IgcGFnZXMgdGhhdCBjb250YWluIHlvdXIgZm9ybS48L3A+ICANCjxwPlRoaXMgZGVmYXVsdCBDU1Mgd2FzIGdyYWNpb3VzbHkgcHJvdmlkZWQgYnkgUGF1bCBOb29uZS48L3A+DQoNCg0KPGgzPkZvcm0gVGVtcGxhdGUgVmFyaWFibGVzPC9oMz4NCjxwPllvdSBjYW4gZWRpdCBpdCB0byBtYWtlIHlvdXIgZm9ybSBsYXlvdXQgbG9vayBhbnkgd2F5IHlvdVwnZCBsaWtlLg0KICAgVG8gbWFrZSB0aGUgZm9ybSB3b3JrLCB5b3VcJ2xsIG5lZWQgdG8gYWx3YXlzIGluY2x1ZGUgdGhlICYjMTIzOyRmYl9oaWRkZW59IGFuZCAmIzEyMzskc3VibWl0fQ0KICAgdGFncy48L3A+DQoNCjxwPllvdSBjYW4gYWNjZXNzIHlvdXIgZm9ybSBmaWVsZHMgZWl0aGVyIHVzaW5nIHRoZSAkZmllbGRzIGFycmF5IG9yIGJ5IGRpcmVjdGx5IGFjY2Vzc2luZyBmaWVsZHMgYnkgdGhlaXIgbmFtZXMgKGUuZy4sICYjMTIzOyRteWZpZWxkLT5pbnB1dH0gKTwvcD4NCg0KDQo8cD5FYWNoIGZpZWxkIGhhcyB0aGUgZm9sbG93aW5nIGF0dHJpYnV0ZXM6PC9wPg0KPHRhYmxlPg0KPHRyPjx0aD5GaWVsZDwvdGg+PHRoPlZhbHVlPC90aD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+ZGlzcGxheTwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIHNob3VsZCBiZSBkaXNwbGF5ZWQsIDAgb3RoZXJ3aXNlPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+cmVxdWlyZWQ8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBpcyByZXF1aXJlZCwgMCBvdGhlcndpc2U8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5yZXF1aXJlZF9zeW1ib2w8L3RkPjx0ZD50aGUgc3ltYm9sIGZvciByZXF1aXJlZCBmaWVsZHM8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5jc3NfY2xhc3M8L3RkPjx0ZD50aGUgQ1NTIGNsYXNzIHNwZWNpZmllZCBmb3IgdGhpcyBmaWVsZDwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPnZhbGlkPC90ZD48dGQ+MSBpZiB0aGlzIGZpZWxkIGhhcyBwYXNzZWQgdmFsaWRhdGlvbiwgMCBvdGhlcndpc2U8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5lcnJvcjwvdGQ+PHRkPlRleHQgb2YgdGhlIHZhbGlkYXRpb24gcHJvYmxlbSwgaW4gdGhlIGV2ZW50IHRoYXQgdGhpcyBmaWVsZCBkaWQgbm90IHZhbGlkYXRlPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aGlkZV9uYW1lPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgbmFtZSBzaG91bGQgYmUgaGlkZGVuLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmhhc19sYWJlbDwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIHR5cGUgaGFzIGEgbGFiZWw8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5uZWVkc19kaXY8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBuZWVkcyB0byBiZSB3cmFwcGVkIGluIGEgRElWIChvciB0YWJsZSByb3csIGlmIHRoYXRcJ3MgdGhlIHdheSB5b3Ugc3dpbmcpPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+bmFtZTwvdGQ+PHRkPnRoZSBmaWVsZFwncyBuYW1lPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aW5wdXQ8L3RkPjx0ZD50aGUgZmllbGRcJ3MgaW5wdXQgY29udHJvbCAoZS5nLiwgdGhlIGlucHV0IGZpZWxkIGl0c2VsZik8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5vcDwvdGQ+PHRkPmEgY29udHJvbCBidXR0b24gYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWVsZCBpZiBhcHBsaWNhYmxlIChlLmcuLCB0aGUgZGVsZXRlIGJ1dHRvbiBmb3IgZXhwYW5kYWJsZSB0ZXh0IGlucHV0KTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmlucHV0X2lkPC90ZD48dGQ+dGhlIElEIG9mIHRoZSBmaWVsZFwncyBpbnB1dCAodXNlZnVsIGZvciBsYWJlbCBmb3I9ImZvbyIpPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+dHlwZTwvdGQ+PHRkPnRoZSBmaWVsZFwncyBkYXRhIHR5cGU8L3RkPjwvdHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KPHRyPjx0ZD5maWVsZC0+bXVsdGlwbGVfcGFydHM8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYSBjb2xsZWN0aW9uIG9mIGNvbnRyb2xzPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+bGFiZWxfcGFydHM8L3RkPjx0ZD4xIGlmIHRoZSBjb2xsZWN0aW9uIG9mIGNvbnRyb2xzIGhhcyBzZXBhcmF0ZSBsYWJlbHMgZm9yIGVhY2ggY29udHJvbDwvdGQ+PC90cj4NCjwvdGFibGU+DQoNCjxwPkluIGNlcnRhaW4gY2FzZXMsIGZpZWxkLT5pbnB1dCBpcyBhY3R1YWxseSBhbiBhcnJheSBvZiBvYmplY3RzIHJhdGhlciB0aGFuIGFuIGlucHV0LiBUaGlzIGhhcHBlbnMsIGZvciBleGFtcGxlLCBpbiBDaGVja0JveEdyb3VwcyBvciBSYWRpb0J1dHRvbkdyb3Vwcy4gRm9yIHRoZW0sIHlvdSBjYW4gaXRlcmF0ZSB0aHJvdWdoIGZpZWxkLT5pbnB1dC0+bmFtZSBhbmQgZmllbGQtPmlucHV0LT5pbnB1dHMuPC9wPg0KICAgIA0KPHA+QWRkaXRpb25hbCBzbWFydHkgdmFyaWFibGVzIHRoYXQgeW91IGNhbiB1c2UgaW5jbHVkZTo8L3A+DQo8dGFibGU+DQo8dHI+PHRoPlZhcmlhYmxlPC90aD48dGg+VmFsdWU8L3RoPjwvdHI+DQo8dHI+PHRkPnRvdGFsX3BhZ2VzPC90ZD48dGQ+bnVtYmVyIG9mIHBhZ2VzIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD50aGlzX3BhZ2U8L3RkPjx0ZD5udW1iZXIgZm8gdGhlIGN1cnJlbnQgcGFnZSBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+dGl0bGVfcGFnZV94X29mX3k8L3RkPjx0ZD5kaXNwbGF5cyAicGFnZSB4IG9mIHkiIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD5jc3NfY2xhc3M8L3RkPjx0ZD5DU1MgQ2xhc3MgZm9yIHRoZSBmb3JtPC90ZD48L3RyPg0KPHRyPjx0ZD5mb3JtX25hbWU8L3RkPjx0ZD5Gb3JtIG5hbWU8L3RkPjwvdHI+DQo8dHI+PHRkPmZvcm1faWQ8L3RkPjx0ZD5Gb3JtIGRhdGFiYXNlIElEPC90ZD48L3RyPg0KPHRyPjx0ZD5wcmV2PC90ZD48dGQ+IkJhY2siIGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD5zdWJtaXQ8L3RkPjx0ZD4iQ29udGludWUiIG9yICJTdWJtaXQiIGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zLCBhZGp1c3RzIGF1dG9tYXRpY2FsbHk8L3RkPjwvdHI+DQo8L3RhYmxlPg0KPHA+RHVubm8gd2h5IHlvdVwnZCB3YW50IHNvbWUgb2YgdGhvc2UsIGJ1dCB0aGVyZSB5b3UgZ28uLi48L3A+DQoNCg0KPGgzPktub3duIElzc3VlczwvaDM+DQo8dWw+DQo8bGk+Rm9ybUJ1aWxkZXIgaXMgbm90IHlldCBpbnRlZ3JhdGVkIHdpdGggRnJvbnRFbmQgVXNlcnMuIEl0IHdpbGwgYmUuPC9saT4NCjxsaT5Gb3JtQnVpbGRlciBkb2VzIG5vdCB5ZXQgc3VwcG9ydCBwcmV0dHkgdXJscywgYWx0aG91Z2ggdGhhdCBzaG91bGRuXCd0IG1hdHRlciBzaW5jZSB0aGUgdXNlciBzaWRlIGlzIHByZXR0eSBzaW1wbGUuPC9saT4NCjxsaT5GaWxlVXBsb2FkIEZpZWxkcyBtYXkgbm90IHdvcmsgY29ycmVjdGx5IHdpdGggbXVsdGlwYWdlIGZvcm1zLjwvbGk+DQo8L3VsPg0KDQo8aDM+VHJvdWJsZXNob290aW5nPC9oMz4NCjxvbD48bGk+IEZpcnN0IHN0ZXAgaXMgdG8gY2hlY2sgeW91XCdyZSBydW5uaW5nIENNUyAxLjEgb3IgbGF0ZXIuPC9saT4NCjxsaT4gU2Vjb25kIHN0ZXAgaXMgdG8gcmVhZCBhbmQgdW5kZXJzdGFuZCB0aGUgY2F2ZWF0IGFib3V0IFdZU0lXWUcgZWRpdG9ycyB1cCBpbiB0aGUNCnNlY3Rpb24gPGVtPkFkZGluZyBhIEZvcm0gdG8gYSBQYWdlPC9lbT4uPC9saT4NCjxsaT4gSWYgeW91XCdyZSBtaXNzaW5nIGZpZWxkcyBpbiBhbiBlbWFpbCB0aGF0IGdldHMgZ2VuZXJhdGVkLCBjaGVjayB0aGUgZGlzcG9zaXRpb24gZmllbGRcJ3MgdGVtcGxhdGUsIGFuZCBtYWtlIHN1cmUgeW91XCdyZSBzcGVjaWZ5aW5nIHRoZSBtaXNzaW5nIGZpZWxkcy4gU2VlbXMgb2J2aW91cywgYnV0IGl0XCdzIGFuIGVhc3kgbWlzdGFrZSB0byBtYWtlLjwvbGk+DQo8bGk+VW5jaGVjayB0aGUgIkhpZGUgRXJyb3JzIiBjaGVja2JveCBpbiB0aGUgZ2xvYmFsIG9wdGlvbnMsIGFuZCBzZWUgd2hhdCBtZXNzYWdlIGdldHMgZGlzcGxheWVkIHdoZW4geW91IHN1Ym1pdCB5b3VyIGZvcm0uPC9saT4NCjxsaT4gSnVzdCBtZXNzIGFyb3VuZCBhbmQgdHJ5IGNsaWNraW5nIG9uIGxpbmtzIGFuZCBpY29ucyBhbmQgc3R1ZmYuIFNlZSB3aGF0IGhhcHBlbnMuPC9saT4NCjxsaT4gTWFrZSBzdXJlIHlvdSBjYW4gc3VjY2Vzc2Z1bGx5IHNlbmQgZW1haWwgdmlhIHRoZSB0ZXN0IGluIHRoZSBDTVNNYWlsZXIgTW9kdWxlLiBJdFwncyBzaW1wbHkgYW1hemluZyBob3cgbWFueSBwcm9ibGVtcyBib2lsIGRvd24gdG8gYSBtaXNjb25maWd1cmVkIENNU01haWxlci48L2xpPg0KPGxpPiBMYXN0IHJlc3BvcnQgaXMgdG8gZW1haWwgbWUgb3IgY2F0Y2ggbWUgb24gSVJDIGFuZCB3ZSBjYW4gZ28gZnJvbSB0aGVyZS48L2xpPg0KPC9vbD4gDQo8cD5UaGlzIGlzIG5vIGxvbmdlciBhIHBhcnRpY3VsYXJseSBlYXJseSB2ZXJzaW9uLCBidXQgaXQgaXMgcHJvYmFibHkgc3RpbGwgYnVnZ3kuIFdoaWxlIElcJ3ZlIGRvbmUgYWxsIEkgY2FuDQp0byBtYWtlIHN1cmUgbm8gZWdyZWdpb3VzIGJ1Z3MgaGF2ZSBjcmVwdCBpbiwgSSBoYXZlIHRvIGFkbWl0IHRoYXQgZHVyaW5nIGVhcmx5IHRlc3RpbmcsIHRoaXMgcHJvZ3JhbQ0KcmV2ZWFsZWQgc2V2ZW4gY29ja3JvYWNoZXMsIHR3byBlYXJ3aWdzLCBhIHNtYWxsIGZhbWlseSBvZiBhcGhpZHMsIGFuZCBhIHdhbGtpbmctc3RpY2sgaW5zZWN0LiBJdCBhbHNvDQphdGUgdGhlIG5laWdoYm9yXCdzIG5hc3R5IGxpdHRsZSB5YXAgZG9nLCBmb3Igd2hpY2ggSSB3YXMgaW5hcHByb3ByaWF0ZWx5IGdyYXRlZnVsLjwvcD4NCjxwPlRoZSBmaW5hbCByZWxlYXNlIHdpbGwgaW5jbHVkZSBidWcgZml4ZXMsIGRvY3VtZW50YXRpb24sIGFuZCB1bmNvbmRpdGlvbmFsIGxvdmUuPC9wPg0KPGgzPlN1cHBvcnQ8L2gzPg0KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPg0KPHVsPg0KPGxpPkZvciB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBtb2R1bGUsIEZBUXMsIG9yIHRvIGZpbGUgYSBCdWcgUmVwb3J0LCBwbGVhc2UgdmlzaXQgdGhlIENNUyBNYWRlIFNpbXBsZSAgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZyI+RGV2ZWxvcGVyIEZvcmdlPC9hPi48L2xpPg0KPGxpPlRvIG9idGFpbiBjb21tZXJjaWFsIHN1cHBvcnQsIHBsZWFzZSBzZW5kIGFuIGVtYWlsIHRvIHRoZSBhdXRob3IgYXQgPGEgaHJlZj0ibWFpbHRvOnNqZ0BjbXNtb2R1bGVzLmNvbSI+Jmx0O3NqZ0BjbXNtb2R1bGVzLmNvbSZndDs8L2E+LjwvbGk+DQo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LjwvbGk+DQo8bGk+VGhlIGF1dGhvciBjYW4gb2Z0ZW4gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9ImlyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2NtcyI+Q01TIElSQyBDaGFubmVsPC9hPi48L2xpPg0KPGxpPkxhc3RseSwgeW91IG1heSBoYXZlIHNvbWUgc3VjY2VzcyBlbWFpbGluZyB0aGUgYXV0aG9yIGRpcmVjdGx5IGFuZCBncm92ZWxsaW5nIGZvciBmcmVlIHN1cHBvcnQuPC9saT4NCjxsaT5Eb25hdGlvbnMgYXJlIGdvb2QgbW90aXZhdG9ycywgdG9vLiBLZWVwIGluIG1pbmQgdGhhdCB0aGUgZG9sbGFyIGlzIHdlYWssIGFuZCBpZiB5b3UgYXJlIG5vdCBpbiB0aGUgVVMsIHlvdXIgZG9uYXRpb24gZ2V0cyBtYWduaWZpZWQuPC9saT4NCjwvdWw+DQo8cD5LZWVwIGluIG1pbmQgdGhhdCB0aGUgYXV0aG9yIGhhcyBwdXQgaHVuZHJlZHMgYW5kIGh1bmRyZWRzIG9mIGhvdXJzIGludG8gdGhlIGRldmVsb3BtZW50IG9mIHRoaXMgbW9kdWxlLiBQbGVhc2UgdGFrZSB0aGUgdGltZSB0byByZWFkIHRoZSBkb2N1bWVudGF0aW9uIGJlZm9yZSBzZW5kaW5nIHF1ZXN0aW9ucy4gRWl0aGVyIHRoYXQsIG9yIHNlbmQgeW91ciBxdWVzdGlvbnMgd3JpdHRlbiBvbiBmaW5hbmNpYWxseSBuZWdvdGlhYmxlIGluc3RydW1lbnRzIChpLmUuLCBjaGVja3Mgb3IgY2FzaCkuIEFtIEkgc291bmRpbmcgbGlrZSBhIGJyb2tlbiByZWNvcmQ/IERvIHlvdSBraWRzIHRoZXNlIGRheXMgZXZlbiBrbm93IHdoYXQgYSBicm9rZW4gcmVjb3JkIGlzPyBJIHdvdWxkIHNheSBza2lwcGluZyBDRCwgYnV0IHlvdSBtaWdodCBub3Qga25vdyB3aGF0IHRoYXQgaXMgZWl0aGVyLiBMaWtlIGEgc2FtcGxlIHRoYXQgZ290IHN0dWNrIG9uIGxvb3A/IERhbW4sIEkgYW0gZ2V0dGluZyBvbGQuIFNvIGlzIHRoaXMgcGFyYWdyYXBoLiBUaW1lIHRvIG1vdmUgb24sIGhlcmUuPC9wPg0KPHA+QXMgcGVyIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgYXMtaXMuIFBsZWFzZSByZWFkIHRoZSB0ZXh0DQpvZiB0aGUgbGljZW5zZSBmb3IgdGhlIGZ1bGwgZGlzY2xhaW1lci48L3A+DQo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4NCjxwPkNvcHlyaWdodCAmY29weTsgMjAwOCwgU2FtdWVsIEdvbGRzdGVpbiA8YSBocmVmPSJtYWlsdG86c2pnQGNtc21vZHVsZXMuY29tIj4mbHQ7c2pnQGNtc21vZHVsZXMuY29tJmd0OzwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4NCjxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+JzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuNDM5NjE3MzQ3ODExNDA1NDAwMC4xMjEyNzQ3MDQzLjEyMzQwOTUwNTMuMTIzNDA5NjkzOC4xNDMnOwokbGFuZ1sndXRteiddID0gJzE1Njg2MTM1My4xMjMzNDE2MzEwLjEzOS41Ni51dG1jc3I9Zm9ydW0uY21zbWFkZXNpbXBsZS5vcmd8dXRtY2NuPShyZWZlcnJhbCl8dXRtY21kPXJlZmVycmFsfHV0bWNjdD0vaW5kZXgucGhwL3RvcGljLDI3MjE3LjMwLmh0bWwnOwokbGFuZ1sndXRtYyddID0gJzE1Njg2MTM1Myc7CiRsYW5nWyd1dG1iJ10gPSAnMTU2ODYxMzUzJzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/sk_SK.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0Zvcm11bCZhYWN1dGU7cmUnOwokbGFuZ1snZmllbGRfdHlwZV8nXSA9ICdUeXAgcG/EvmEgbmVib2wgZGVmaW5vdmFuJnlhY3V0ZTsnOwokbGFuZ1snZmllbGRfdHlwZV9DYXRhbG9nZXJJdGVtc0ZpZWxkJ10gPSAnVnlicmHFpSBqZWRlbiBhbGVibyB2aWFjZXJvIHBvbG/FvmllayBrYXRhbCZvYWN1dGU7Z3UgKGNhdGFsb2dlciknOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldEVuZCddID0gJ0tvbmllYyBwcmUgem5hxI1rdSBGaWVsZHNldCc7CiRsYW5nWydmaWVsZF90eXBlX0ZpZWxkc2V0U3RhcnQnXSA9ICdaYcSNaWF0b2sgcHJlIHpuYcSNa3UgRmllbGRzZXQgJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkJ10gPSAnVGV4dG92JmVhY3V0ZTsgcG9sZSc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRGaWVsZEV4cGFuZGFibGUnXSA9ICdUZXh0b3YmZWFjdXRlOyBwb2xlICh2aWFjbiZhYWN1dGU7c29ibiZlYWN1dGU7KSc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRBcmVhRmllbGQnXSA9ICdUZXh0b3YmZWFjdXRlOyBvYmxhc8WlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hGaWVsZCddID0gJ1phJnNjYXJvbjtrcnQmYWFjdXRlO3ZhY2llIHBvbGUnOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEdyb3VwRmllbGQnXSA9ICdTa3VwaW5hIHphJnNjYXJvbjtrcnQmYWFjdXRlO3ZhJmlhY3V0ZTtjaCBwb2wmaWFjdXRlO8SNb2snOwokbGFuZ1snZmllbGRfdHlwZV9QdWxsZG93bkZpZWxkJ10gPSAnViZ5YWN1dGU7YmVyb3YmZWFjdXRlOyBwb2xlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTXVsdGlzZWxlY3RGaWVsZCddID0gJ1ZpYWN2JnlhY3V0ZTtiZXJvdiZlYWN1dGU7IHBvbGUnOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0ZVBpY2tlckZpZWxkJ10gPSAnViZ5YWN1dGU7YmVyb3YmZWFjdXRlOyBwb2xlIHByZSAmc2Nhcm9uO3QmYWFjdXRlO3R5JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUHJvdmluY2VQaWNrZXJGaWVsZCddID0gJ1YmeWFjdXRlO2Jlcm92JmVhY3V0ZTsgcG9sZSBwcmUgcHJvdmluY2llIHYgS2FuYWRlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ291bnRyeVBpY2tlckZpZWxkJ10gPSAnViZ5YWN1dGU7YmVyb3YmZWFjdXRlOyBwb2xlIHByZSBVU0EgJnNjYXJvbjt0JmFhY3V0ZTt0eSc7CiRsYW5nWydmaWVsZF90eXBlX0RhdGVQaWNrZXJGaWVsZCddID0gJ1YmeWFjdXRlO2Jlcm92JmVhY3V0ZTsgcG9sZSBwcmUgZCZhYWN1dGU7dHVtJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGltZVBpY2tlckZpZWxkJ10gPSAnViZ5YWN1dGU7YmVyb3YmZWFjdXRlOyBwb2xlIHByZSDEjWFzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUmFkaW9Hcm91cEZpZWxkJ10gPSAnU2t1cGluYSByYWRpbyBwb2xpxI1vayc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGlyZWN0b3InXSA9ICcqWmFzaWVsYW5pZSBuYSBlLW1haWx5IG5hIHomYWFjdXRlO2tsYWRlIHYmeWFjdXRlO2Jlcm92JmVhY3V0ZTtobyBwb8S+YSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRmlsZURpcmVjdG9yJ10gPSAnKlVrbGFkYW5pZSBkbyBzJnVhY3V0ZTtib3JhIG5hIHomYWFjdXRlO2tsYWRlIHYmeWFjdXRlO2Jlcm92JmVhY3V0ZTtobyBwb8S+YSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uTXVsdGlzZWxlY3RGaWxlRGlyZWN0b3InXSA9ICcqVWtsYWRhbmllIGRvIHMmdWFjdXRlO2Jvcm92IG5hIHomYWFjdXRlO2tsYWRlIHZpYWNuJmFhY3V0ZTtzb2JuJmVhY3V0ZTtobyB2JnlhY3V0ZTtiZXJvdiZlYWN1dGU7aG8gcG/EvmEnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvblBhZ2VSZWRpcmVjdG9yJ10gPSAnKlN0ciZhYWN1dGU7bmthIHByZSBwcmVzbWVyb3ZhbmlhIG5hIHomYWFjdXRlO2tsYWRlIHYmeWFjdXRlO2Jlcm92JmVhY3V0ZTtobyBwb8S+YSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWwnXSA9ICcqWmFzaWVsYW5pZSBuYSB2eWJyYW4mZWFjdXRlOyBlLW1haWxvdiZlYWN1dGU7IGFkcmVzeSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxDb25maXJtYXRpb24nXSA9ICcqVmFsaWRhdGUtdmlhLUVtYWlsIEFkZHJlc3MnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZyb21FbWFpbEFkZHJlc3NGaWVsZCddID0gJypQb2xlICAmcXVvdDt6IGUtbWFpbHUmcXVvdDsgcHJlIG9kcG92ZWQsIGEgemFzbGFuaWUgayZvYWN1dGU7cGllIHXFviZpYWN1dGU7dmF0ZcS+b3ZpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25GaWxlJ10gPSAnKlVsb8W+acWlIGZvcm11bCZhYWN1dGU7ciBkbyBzJnVhY3V0ZTtib3JhJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EYXRhYmFzZSddID0gJypVbG/FvmnFpSBmb3JtdWwmYWFjdXRlO3IgZG8gREInOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZvcm1Ccm93c2VyJ10gPSAnKlVsb8W+acWlIGZvcm11bCZhYWN1dGU7ciBwcmUgbW9kdWwgcHJlaGxpYWRhxI1hIGZvcm11bCZhYWN1dGU7cm92IHYmZWFjdXRlO3J6aWUgLjMnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvblVzZXJUYWcnXSA9ICcqWmF2b2xhxaUgdcW+JmlhY3V0ZTt2YXRlxL5zayZ5YWN1dGU7IHRhZyBwbyBkb2tvbsSNZW4maWFjdXRlOyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGVsaXZlclRvRW1haWxBZGRyZXNzRmllbGQnXSA9ICcqUG9sZSBwcmUgZS1tYWlsLCBuYSBrdG9yJnlhY3V0ZTsgYnVkZSB6JmFhY3V0ZTtyb3ZlxYggemFzbGFuJnlhY3V0ZTsgZS1tYWlsJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbFNpdGVBZG1pbiddID0gJypFLW1haWwgcHJlIGFkbWluaXN0ciZhYWN1dGU7dG9yYSBDTVMnOwokbGFuZ1snZmllbGRfdHlwZV9QYWdlQnJlYWtGaWVsZCddID0gJy16YWxvbWVuaWUnOwokbGFuZ1snZmllbGRfdHlwZV9GaWxlVXBsb2FkRmllbGQnXSA9ICdOYWhyYXRpZSBzJnVhY3V0ZTtib3JhJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsQWRkcmVzc0ZpZWxkJ10gPSAnRW1haWwgJnF1b3Q7RnJvbSBBZGRyZXNzJnF1b3Q7IEZpZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsQWRkcmVzc0FnYWluRmllbGQnXSA9ICdQb2xlICAmcXVvdDt6IGUtbWFpbHUmcXVvdDsgcHJlIG9wYWtvdmFuJmVhY3V0ZTsgemFkYW5pZSAnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxOYW1lRmllbGQnXSA9ICdFbWFpbCAmcXVvdDtGcm9tIE5hbWUmcXVvdDsgRmllbGQnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxTdWJqZWN0RmllbGQnXSA9ICdFbWFpbCAmcXVvdDtTdWJqZWN0JnF1b3Q7IEZpZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3RhdGljVGV4dEZpZWxkJ10gPSAnLVRleHQnOwokbGFuZ1snZmllbGRfdHlwZV9TeXN0ZW1MaW5rRmllbGQnXSA9ICctT2RrYXonOwokbGFuZ1snZmllbGRfdHlwZV9MaW5rRmllbGQnXSA9ICdPZGtheiB2bG/FvmVuJnlhY3V0ZTsgdcW+JmlhY3V0ZTt2YXRlxL5vbSc7CiRsYW5nWydmaWVsZF90eXBlX0hpZGRlbkZpZWxkJ10gPSAnLVNrcnl0JmVhY3V0ZTsgcG9sZSc7CiRsYW5nWydmaWVsZF90eXBlX0NvbXB1dGVkRmllbGQnXSA9ICctUG9yb3ZuJmFhY3V0ZTt2YW5pZSc7CiRsYW5nWydmaWVsZF90eXBlX1VuaXF1ZUludGVnZXJGaWVsZCddID0gJy1VbmlrJmFhY3V0ZTt0bnkgcmXFpWF6ZWMnOwokbGFuZ1sndmFsaWRhdGlvbl9ub25lJ10gPSAnQmV6IGtvbnRyb2x5JzsKJGxhbmdbJ3ZhbGlkYXRpb25fbnVtZXJpYyddID0gJ8SMJmlhY3V0ZTtzbG8nOwokbGFuZ1sndmFsaWRhdGlvbl9pbnRlZ2VyJ10gPSAnQ2Vsb8SNJmlhY3V0ZTtzbGVuJmFhY3V0ZTsgaG9kbm90YSc7CiRsYW5nWyd2YWxpZGF0aW9uX2VtYWlsX2FkZHJlc3MnXSA9ICdFLW1haWxvdiZhYWN1dGU7IGFkcmVzYSc7CiRsYW5nWyd2YWxpZGF0aW9uX3VzcGhvbmUnXSA9ICdUZWxlZiZvYWN1dGU7bm5lIMSNJmlhY3V0ZTtzbGUgKHByZSBVU0EpJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbXVzdF9jaGVjayddID0gJ011cyZpYWN1dGU7IGJ5xaUgIHphZGFuJmVhY3V0ZTsnOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9tYXRjaCddID0gJ1JlZ3VsJmFhY3V0ZTtybnkgdiZ5YWN1dGU7cmF6JzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbm9tYXRjaCddID0gJ1pob2RhICBzIHJlZ3VsJmFhY3V0ZTtybnltIHYmeWFjdXRlO3Jhem9tJzsKJGxhbmdbJ3JlcXVpcmVkX2ZpZWxkX21pc3NpbmcnXSA9ICdOZWJvbGEgdm/FvmVuYSBwb8W+YWRvdmFuJmFhY3V0ZTsgaG9kbm90YSc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV92YWx1ZSddID0gJ1Byb3MmaWFjdXRlO20sIHZsb8W+dGUgaG9kbm90dSBwcmUgICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX251bWJlciddID0gJ1Byb3MmaWFjdXRlO20sIHZsb8W+dGUgxI0maWFjdXRlO3NlbG4mdWFjdXRlOyBob2Rub3R1IHByZSAgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX3ZhbGlkJ10gPSAnUHJvcyZpYWN1dGU7bSwgdmxvxb50ZSBzcHImYWFjdXRlO3ZudSBob2Rub3R1IHByZSAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5faW50ZWdlciddID0gJ1Byb3MmaWFjdXRlO20sIHZsb8W+dGUgY2Vsb8SNJmlhY3V0ZTtzZWxuJnVhY3V0ZTsgaG9kbm90dSBwcmUgICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hbl9lbWFpbCddID0gJ1Byb3MmaWFjdXRlO20sIHZsb8W+dGUgc3ByJmFhY3V0ZTt2bnkgdHZhciBlLW1haWxvdmVqIGFkcmVzeSBwcmUgICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ2VtYWlsX2FkZHJlc3NfZG9lc19ub3RfbWF0Y2gnXSA9ICdOZWJvbCB6YWRhbiZ5YWN1dGU7IG9ic2FoIHByZSBlLW1haWxvdiZ1YWN1dGU7IGFkcmVzdSAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV9waG9uZSddID0gJ1Byb3MmaWFjdXRlO20sIHZsb8W+dGUgc3ByJmFhY3V0ZTt2bnkgdHZhciBwcmUgdGVsZWYmb2FjdXRlO25uZSDEjSZpYWN1dGU7c2xvICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ25vdF92YWxpZF9lbWFpbCddID0gJyZxdW90OyVzJnF1b3Q7IG5pZSBqZSBzcHImYWFjdXRlO3ZueSB0dmFyIGUtbWFpbG92ZWogYWRyZXN5JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9ub19sb25nZXInXSA9ICdQcm9zJmlhY3V0ZTttLCB2bG/FvnRlIG9ic2FoIGtyYXQmc2Nhcm9uOyZpYWN1dGU7IGFrbyAlcyB6bmFrb3YnOwokbGFuZ1sndGl0bGVfbGlzdF9kZWxpbWl0ZXInXSA9ICdabmFrIHNsJnVhY3V0ZTvFvmlhY2kgYWtvIHNlcGFyJmFhY3V0ZTt0b3IgcHJpIHZpYWNlciZ5YWN1dGU7Y2ggaG9kbm90JmFhY3V0ZTtjaCc7CiRsYW5nWyd5b3VfbmVlZF9wZXJtaXNzaW9uJ10gPSAnWW91IG5lZWQgdGhlICZxdW90OyVzJnF1b3Q7IHBlcm1pc3Npb24gdG8gcGVyZm9ybSB0aGF0IG9wZXJhdGlvbi4nOwokbGFuZ1snbGFja3Blcm1pc3Npb24nXSA9ICdTb3JyeSEgWW91IGRvbiYjMDM5O3QgaGF2ZSBhZGVxdWF0ZSBwcml2aWxlZ2VzIHRvIGFjY2VzcyB0aGlzIHNlY3Rpb24uJzsKJGxhbmdbJ2ZpZWxkX29yZGVyX3VwZGF0ZWQnXSA9ICdQb2xlIHByZSB0cmllZGVuaWUgYWt0dWFsaXpvdmFuJmVhY3V0ZTsnOwokbGFuZ1snZm9ybV9kZWxldGVkJ10gPSAnRm9ybXVsJmFhY3V0ZTtyIG9kc3RyJmFhY3V0ZTtuZW4meWFjdXRlOyc7CiRsYW5nWydmaWVsZF9kZWxldGVkJ10gPSAnUG9sZSBvZHN0ciZhYWN1dGU7bmVuJmVhY3V0ZTsnOwokbGFuZ1snY29uZmlndXJhdGlvbl91cGRhdGVkJ10gPSAnTmFzdGF2ZW5pYSBha3R1YWxpem92YW4mZWFjdXRlOyc7CiRsYW5nWyd5b3VfbXVzdF9jaGVjayddID0gJ011c2l0ZSB2eWJyYcWlICZxdW90OyVzJnF1b3Q7IHByZSAgcG9rcmHEjW92YW5pZSc7CiRsYW5nWydtdXN0X3NwZWNpZnlfb25lX2Rlc3RpbmF0aW9uJ10gPSAnTXVzJmlhY3V0ZTt0ZSB6YWRhxaUgYXNwb8WIIGplZG51IGNpZcS+b3YmdWFjdXRlOyBhZHJlc3UnOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9mb3JtJ10gPSAnTmFvemFqIGNoY2V0ZSBvZHN0ciZhYWN1dGU7bmnFpSBmb3JtdWwmYWFjdXRlO3IgJXM/JzsKJGxhbmdbJ2FyZV95b3Vfc3VyZV9kZWxldGVfZmllbGQnXSA9ICdOYW96YWogY2hjZXRlIG9kc3RyJmFhY3V0ZTtuacWlIHBvbGUgJXM/JzsKJGxhbmdbJ25vdGljZV9zZWxlY3RfdHlwZSddID0gJ1JveiZzY2Fyb247JmlhY3V0ZTtyZW4mZWFjdXRlOyB2bGFzbm9zdGkgbmllIHMmdWFjdXRlOyBkb3N0dXBuJmVhY3V0ZTsgcG9raWHEviBuZWJ1ZGUgemFkYW4meWFjdXRlOyB0eXAgcG/EvmEuJzsKJGxhbmdbJ2ZpZWxkX25hbWVfaW5fdXNlJ10gPSAnTiZhYWN1dGU7em92IHBvxL5hICZxdW90OyVzJnF1b3Q7IHXFviBleGlzdHVqZS4gUHJvcyZpYWN1dGU7bSBwb3XFvml0ZSB1bmlrJmFhY3V0ZTt0bnkgbiZhYWN1dGU7em92LCBhbGVibyB2IG5hc3RhdmVuaWFjaCBkZWFrdGl2dWp0ZSB2b8S+YnUgcHJlIHVuaWsmYWFjdXRlO3RuJmVhY3V0ZTsgbiZhYWN1dGU7enZ5IHBvbCZpYWN1dGU7Lic7CiRsYW5nWydmaWVsZF9ub19uYW1lJ10gPSAnUG9sZSBtdXMmaWFjdXRlOyBtYcWlIG4mYWFjdXRlO3pvdic7CiRsYW5nWydhbm9ueW1vdXMnXSA9ICdBbm9ueW0nOwokbGFuZ1snYWJicmV2aWF0aW9uX2xlbmd0aCddID0gJ0xlbjogJXMnOwokbGFuZ1snYm94ZXMnXSA9ICclcyBib3hlcyc7CiRsYW5nWydvcHRpb25zJ10gPSAnJXMgdm/EvmJ5JzsKJGxhbmdbJ3RleHRfbGVuZ3RoJ10gPSAnJXMgem5ha292JzsKJGxhbmdbJ29yZGVyJ10gPSAnUG9yYWRpZSc7CiRsYW5nWyd1bnNwZWNpZmllZCddID0gJ25lemFkYW4mZWFjdXRlOyc7CiRsYW5nWydhZGRlZCddID0gJ3ByaWRhbiZlYWN1dGU7JzsKJGxhbmdbJ3VwZGF0ZWQnXSA9ICdha3R1YWxpem92YW4mZWFjdXRlOyc7CiRsYW5nWydzb3J0X29wdGlvbnMnXSA9ICdUcmllxaUgaG9kbm90eSBuYSB2JnlhY3V0ZTtzdHVwZSc7CiRsYW5nWydzZWxlY3Rfb25lJ10gPSAnVnlicmHFpSc7CiRsYW5nWydzZWxlY3RfdHlwZSddID0gJ1Z5YnJhxaUgdHlwJzsKJGxhbmdbJ3RvJ10gPSAnRG8nOwokbGFuZ1sneWVzJ10gPSAnJkFhY3V0ZTtubyc7CiRsYW5nWydubyddID0gJ05pZSc7CiRsYW5nWydyZWNpcGllbnRzJ10gPSAncHImaWFjdXRlO2ppbWF0ZWxpYSc7CiRsYW5nWydmaWxlX2NvdW50J10gPSAnJXMgIHBvdm9sZW4mZWFjdXRlOyBzJnVhY3V0ZTtib3J5JzsKJGxhbmdbJ2Rlc3RpbmF0aW9uX2NvdW50J10gPSAnJXMgY2llbGUnOwokbGFuZ1snc2F2ZSddID0gJ1Vsb8W+acWlJzsKJGxhbmdbJ2FkZCddID0gJ1ByaWRhxaUnOwokbGFuZ1sndXBkYXRlJ10gPSAnQWt0dWFsaXpvdmHFpSc7CiRsYW5nWydzYXZlX2FuZF9jb250aW51ZSddID0gJ1Vsb8W+acWlIGEgcG9rcmHEjW92YcWlIHYgJnVhY3V0ZTtwcmF2JmFhY3V0ZTtjaCc7CiRsYW5nWydpbmZvcm1hdGlvbiddID0gJ0luZm9ybSZhYWN1dGU7Y2lhJzsKJGxhbmdbJ2F1dG9tYXRpYyddID0gJ0F1dG9tYXRpY2t5JzsKJGxhbmdbJ2Zvcm1zJ10gPSAnRm9ybXVsJmFhY3V0ZTtyZSc7CiRsYW5nWydmb3JtJ10gPSAnRm9ybXVsJmFhY3V0ZTtyICVzJzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb24nXSA9ICdLb25maWd1ciZhYWN1dGU7Y2lhJzsKJGxhbmdbJ2ZpZWxkX3JlcXVpcmVtZW50X3VwZGF0ZWQnXSA9ICdQb2xlIHMgdnnFvmFkbm92YW4maWFjdXRlO20gYWt0dWFsaXpvdmFuJmVhY3V0ZTsnOwokbGFuZ1snbWF4aW11bV9zaXplJ10gPSAnTWF4LiB2ZcS+a29zxaUnOwokbGFuZ1sncGVybWl0dGVkX2V4dGVuc2lvbnMnXSA9ICdSb3omc2Nhcm9uOyZpYWN1dGU7cmVuaWEnOwokbGFuZ1sncGVybWl0dGVkX2ZpbGV0eXBlcyddID0gJ1Bvdm9sZW4mZWFjdXRlOyB0eXB5IHMmdWFjdXRlO2Jvcm92JzsKJGxhbmdbJ2ZpbGVfdG9vX2xhcmdlJ10gPSAnTmFociZhYWN1dGU7dmFuJnlhY3V0ZTsgcyZ1YWN1dGU7Ym9yIGplIHByJmlhY3V0ZTtsaSZzY2Fyb247IHZlxL5rJnlhY3V0ZTshIFBvdm9sZW4mYWFjdXRlOyBqZSBtYXhpbSZhYWN1dGU7bG5hIHZlxL5rb3PFpTonOwokbGFuZ1snaWxsZWdhbF9maWxlX3R5cGUnXSA9ICdUeXAgcyZ1YWN1dGU7Ym9ydSBhc2kgbmVtJm9jaXJjO8W+ZSBiecWlIG5haHJhbiZ5YWN1dGU7IG5hIHNlcnZlci4gUHJvcyZpYWN1dGU7bSBza29udHJvbHVqdGUgxI1pIGplIHRlbnRvIHR5cCBwb3ZvbGVuJnlhY3V0ZTsnOwokbGFuZ1sndXBsb2FkJ10gPSAnTmFocmHFpSc7CiRsYW5nWydmb3JtX2ltcG9ydGVkJ10gPSAnRm9ybXVsJmFhY3V0ZTtyIG5haW1wb3J0b3ZhbiZ5YWN1dGU7Lic7CiRsYW5nWydmb3JtX2ltcG9ydF9mYWlsZWQnXSA9ICdJbXBvcnQgZm9ybXVsJmFhY3V0ZTtyYSB6bHloYWxvISBQcm9ibCZlYWN1dGU7bSBzIHBhcnNvdmFuJmlhY3V0ZTttIFhNTC4nOwokbGFuZ1sncm93cyddID0gJyVzIHJpYWRrb3YnOwokbGFuZ1snY29scyddID0gJyVzIHN0xLpwY292JzsKJGxhbmdbJzEyX2hvdXInXSA9ICcxMiBob2Rpbm92JnlhY3V0ZTsgY2FzJzsKJGxhbmdbJzI0X2hvdXInXSA9ICcyNCBob2Rpbm92JnlhY3V0ZTsgxI1hYyc7CiRsYW5nWydob3VyJ10gPSAnSG9kaW5hJzsKJGxhbmdbJ21pbiddID0gJ01pbiZ1YWN1dGU7dGEnOwokbGFuZ1snbWVyaWQnXSA9ICdNZXJpZGlhbic7CiRsYW5nWydkYXRlX3JhbmdlJ10gPSAnSG9kbm90ZW5pZTogJXMgLSAlcyc7CiRsYW5nWyd0aGFua3MnXSA9ICdWxI9ha2EhIFYmYWFjdXRlOyZzY2Fyb247IGZvcm11bCZhYWN1dGU7ciBib2wgb2Rvc2xhbiZ5YWN1dGU7JzsKJGxhbmdbJ2VkaXQnXSA9ICdVcHJhdmnFpSc7CiRsYW5nWydkZWxldGUnXSA9ICdPZHN0ciZhYWN1dGU7bmnFpSc7CiRsYW5nWydkYXknXSA9ICdEZcWIJzsKJGxhbmdbJ21vbiddID0gJ01lc2lhYyc7CiRsYW5nWyd5ZWFyJ10gPSAnUm9rJzsKJGxhbmdbJ25vbmUnXSA9ICcoxb5pYWRueSknOwokbGFuZ1snY3NzJ10gPSAnQ1NTJzsKJGxhbmdbJ3VuaW5zdGFsbGVkJ10gPSAnTW9kdWwgb2RpbiZzY2Fyb247dGFsb3ZhbiZ5YWN1dGU7Lic7CiRsYW5nWydpbnN0YWxsZWQnXSA9ICdNb2R1bCB2ZXJ6aWEgJXMgbmFpbiZzY2Fyb247dGFsb3ZhbiZ5YWN1dGU7Lic7CiRsYW5nWyd1cGdyYWRlZCddID0gJ01vZHVsIGFrdHVhbGl6b3ZhbiZ5YWN1dGU7IG5hIHZlcnppdSAlcy4nOwokbGFuZ1snYnV0dG9uX3ByZXZpb3VzJ10gPSAnU3AmYXVtbDvFpSc7CiRsYW5nWydidXR0b25fc3VibWl0J10gPSAnT2Rvc2xhxaUnOwokbGFuZ1snYnV0dG9uX2NvbnRpbnVlJ10gPSAnUG9rcmHEjW92YcWlLi4uJzsKJGxhbmdbJ3ZhbHVlX2NoZWNrZWQnXSA9ICdPem5hxI1pxaUnOwokbGFuZ1sndmFsdWVfdW5jaGVja2VkJ10gPSAnT2R6bmHEjWnFpSc7CiRsYW5nWyd0YWJfbWFpbiddID0gJ0hsYXZuJmVhY3V0ZTsnOwokbGFuZ1sndGFiX3N5bWJvbCddID0gJ05hc3RhdmVuaWEgZm9ybXVsJmFhY3V0ZTtyYSc7CiRsYW5nWyd0YWJfc3VibWl0J10gPSAnT2Rvc2xhbmllIGZvcm11bCZhYWN1dGU7cmEnOwokbGFuZ1sndGFiX2NhcHRjaGEnXSA9ICdOYXN0YXZlbmlhIHByZSBDYXB0Y2hhJzsKJGxhbmdbJ3RhYl9hZHZhbmNlZCddID0gJ1JveiZzY2Fyb247JmlhY3V0ZTtyZW4mZWFjdXRlOyBuYXN0YXZlbmlhJzsKJGxhbmdbJ3RhYl90ZW1wbGF0ZWxheW91dCddID0gJyZTY2Fyb247YWJsJm9hY3V0ZTtuYSc7CiRsYW5nWyd0YWJfc3VibWlzc2lvbnRlbXBsYXRlJ10gPSAnJlNjYXJvbjthYmwmb2FjdXRlO25hIHBvIG9kb3NsYW4maWFjdXRlOyc7CiRsYW5nWydjYW51c2Vfc21hcnR5J10gPSAnPGVtPlNtYXJ0eSBwcmVtZW5uJmVhY3V0ZTsgc3UgcG92b2xlbiZlYWN1dGU7IHYgdG9tdG8gcG9saS48L2VtPic7CiRsYW5nWydhZGRfb3B0aW9ucyddID0gJ1ByaWRhxaUgdmlhYyBtb8W+bm9zdCZpYWN1dGU7JzsKJGxhbmdbJ2RlbGV0ZV9vcHRpb25zJ10gPSAnT2RzdHImYWFjdXRlO25pxaUgdnl6bmHEjWVuJmVhY3V0ZTsnOwokbGFuZ1snYWRkX2NoZWNrYm94ZXMnXSA9ICdQcmlkYcWlIHphJnNjYXJvbjtrcnQmYWFjdXRlO3ZhY2llIHBvbGUnOwokbGFuZ1snZGVsZXRlX2NoZWNrYm94ZXMnXSA9ICdPZHN0ciZhYWN1dGU7bmnFpSB2eWJyYW4mZWFjdXRlOyc7CiRsYW5nWydhZGRfYWRkcmVzcyddID0gJ1ByaWRhxaUgZS1tYWlsb3YmdWFjdXRlOyBhZHJlc3UnOwokbGFuZ1snZGVsZXRlX2FkZHJlc3MnXSA9ICdPZHN0ciZhYWN1dGU7bmnFpSB2eWJyYW4mZWFjdXRlOyc7CiRsYW5nWydhZGRfZGVzdGluYXRpb24nXSA9ICdQcmlkYcWlIGNpZcS+JzsKJGxhbmdbJ2RlbGV0ZV9kZXN0aW5hdGlvbiddID0gJ29kc3RyJmFhY3V0ZTtuacWlIHZ5YnJhbiZlYWN1dGU7JzsKJGxhbmdbJ3N1c3BlY3RlZF9zcGFtJ10gPSAnUHImaWFjdXRlO2xpJnNjYXJvbjsgdmXEvmEgZS1tYWlsb3YgZ2VuZXJvdmFuJnlhY3V0ZTtjaCB6IHZhJnNjYXJvbjtlaiBJUCBhZHJlc3kuIEFudGktU3BhbSBrJm9hY3V0ZTtkIG1hIHphYnImYWFjdXRlO25pxaUgZG9ydcSNZW5pdSc7CiRsYW5nWydzdXNwZWN0ZWRfc3BhbV9sb2cnXSA9ICdQb2RvenJlbmllIG5hIHNwYW0geiBhIElQICVzIHphc3RhdmVuJnlhY3V0ZTsuJzsKJGxhbmdbJ3Jlb3JkZXInXSA9ICdQcmVyb3pkZWxpxaUgcG9saWEnOwokbGFuZ1snY2FuY2VsJ10gPSAnWnJ1JnNjYXJvbjtpxaUnOwokbGFuZ1sndmFsdWVfc2V0J10gPSAnU3Rhbm92acWlIGhvZG5vdHU6ICVzJzsKJGxhbmdbJ2hlbHBfY2F0YWxvZ2VyX2F0dHJpYnV0ZV9maWVsZHMnXSA9ICdCZWxvdyBpcyBhIGxpc3Qgb2YgdGhlIGF0dHJpYnV0ZXMgYXZhaWxhYmxlIGZyb20gdGhlIENhdGFsb2dlciBtb2R1bGUuPGJyLz5Zb3UgY2FuIG9wdGlvbmFsbHkgc3BlY2lmeSB2YWxpZCByYW5nZXMsIHZhbHVlcywgb3IgbnVtZXJvdXMgdmFsdWVzIHRvIGJlIHVzZWQgaW4gZmlsdGVyaW5nIHRoZSBsaXN0IG9mIGl0ZW1zIHRoYXQgaXMgZGlzcGxheWVkIHRvIHRoZSB1c2VyLjxici8+DQo8YnIvPg0KPHN0cm9uZz5SYW5nZXM6PC9zdHJvbmc+PGJyLz4NClJhbmdlcyBjYW4gYmUgc3BlY2lmaWVkIGJ5IHNpZ25pZnlpbmcgYSBtaW5pbXVtIGFuZCBtYXhpbXVtIHZhbHVlIHVzaW5nIHRoaXMgc3ludGF4OiAmcXVvdDtyYW5nZTogbWludmFsdWUgdG8gbWF4dmFsdWUmcXVvdDs8YnIvPg0KPGJyLz4NCjxzdHJvbmc+TXVsdGlwbGUgVmFsdWVzOjwvc3Ryb25nPjxici8+DQpUbyBzcGVjaWZ5IG11bHRpcGxlIHZhbHVlcyBmb3IgYW4gYXR0cmlidXRlIHVzZSB0aGUgc3ludGF4ICZxdW90O211bHRpOiB2YWx1ZTF8dmFsdWUyfHZhbHVlMyZxdW90Ozxici8+DQo8YnIvPg0KPHN0cm9uZz5WYWx1ZXMgZnJvbSBoaWRkZW4gZmllbGRzPC9zdHJvbmc+PGJyLz4NClRvIHNwZWNpZnkgYSB2YWx1ZSBmcm9tIGEgaGlkZGVuIGZpZWxkIHVzZSB0aGUgc3ludGF4IHskZmxkX2lkfTxici8+DQo8YnIvPic7CiRsYW5nWydoZWxwX25hbWVfcmVnZXgnXSA9ICdSZWd1bCZhYWN1dGU7cm55IHYmeWFjdXRlO3Jhxb4gcG92b2wmaWFjdXRlOyBmaWx0cm92YcWlIGthdGFsJm9hY3V0ZTtnIChjYXRhbG9nZXIpIHBvbW9jb3UgbiZhYWN1dGU7enZ1JzsKJGxhbmdbJ2hlbHBfZmllbGRfaGVpZ2h0J10gPSAnViZ5YWN1dGU7JnNjYXJvbjtrYSB2aWFjbiZhYWN1dGU7c29ibiZlYWN1dGU7aG8gdiZ5YWN1dGU7YmVyb3YmZWFjdXRlO2hvIHBvxL5hJzsKJGxhbmdbJ3RpdGxlX25hbWVfcmVnZXgnXSA9ICdSZWd1bCZhYWN1dGU7cm55IHYmeWFjdXRlO3JheiBwcmUgcG9sb8W+a3Uga2F0YWwmb2FjdXRlO2d1IChDYXRhbG9nZXIpJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2hlaWdodCddID0gJ1YmeWFjdXRlOyZzY2Fyb247a2EgcG/EvmEnOwokbGFuZ1sndGl0bGVfZmlsZV9wYXRoJ10gPSAnQ2llxL5vdiZhYWN1dGU7IGFkcmVzYSBwcmUgcyZ1YWN1dGU7Ym9yeSBuYSB2JnlhY3V0ZTtzdHVwZSc7CiRsYW5nWyd0aXRsZV91ZHRfbmFtZSddID0gJ1XFviZpYWN1dGU7dmF0ZcS+c2vFiHkgdCZhYWN1dGU7Zyc7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2Rlc3RwYWdlJ10gPSAnU3RyJmFhY3V0ZTtua2EgcHJlIG4mYWFjdXRlO3ZyYXQgcyBvZGthem9tIHByZSBzJnVhY3V0ZTtib3InOwokbGFuZ1sndGl0bGVfdXBsb2FkbW9kdWxlX3N1bW1hcnknXSA9ICdPZG9zbGFuJmVhY3V0ZTsgcG9tb2NvdSBtb2R1bHUgRm9ybXVsJmFhY3V0ZTtyYSc7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2NhdGVnb3J5J10gPSAnS2F0ZWcmb2FjdXRlO3JpYSBVcGxvYWQgbW9kdWx1JzsKJGxhbmdbJ3RpdGxlX3NlbmR0b191cGxvYWRzJ10gPSAnUyZ1YWN1dGU7Ym9yIG9kb3NsYcWlIGRvIG1vZHVsdSBVcGxvYWRzJzsKJGxhbmdbJ3RpdGxlX2xlZ2VuZCddID0gJ0xlZ2VuZGEnOwokbGFuZ1sndGl0bGVfbWF4aW11bV9sZW5ndGgnXSA9ICdNYXhpbSZhYWN1dGU7bG5hIGTEusW+a2EnOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfbGFiZWwnXSA9ICdMYWJlbCAocG9waXNvaykgemEmc2Nhcm9uO2tydCZhYWN1dGU7dmFjaWVobyBwb8S+YSc7CiRsYW5nWyd0aXRsZV9yYWRpb19sYWJlbCddID0gJ0xhYmVsIChwb3Bpc29rKSByJmFhY3V0ZTtkaW8gdGxhxI0maWFjdXRlO3RrYSc7CiRsYW5nWyd0aXRsZV9jaGVja2VkX3ZhbHVlJ10gPSAnSG9kbm90YSBwcmkgdiZ5YWN1dGU7YmVyZSc7CiRsYW5nWyd0aXRsZV91bmNoZWNrZWRfdmFsdWUnXSA9ICdIb2Rub3RhIGJleiB2JnlhY3V0ZTtiZXJ1JzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2RldGFpbHMnXSA9ICdOYXN0YXZlbmlhIHByZSBza3VwaW51IHphJnNjYXJvbjtydCZhYWN1dGU7dmFjJmlhY3V0ZTtjaCBwb2wmaWFjdXRlOyc7CiRsYW5nWyd0aXRsZV9kZWxldGUnXSA9ICdPZHN0ciZhYWN1dGU7bmnFpT8nOwokbGFuZ1sndGl0bGVfc2VsZWN0X29uZV9tZXNzYWdlJ10gPSAnJnF1b3Q7VGV4dCBwcnYmZWFjdXRlO2hvIHBvxL5hJnF1b3Q7ICc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fdmFsdWUnXSA9ICdIb2Rub3RhIHYmeWFjdXRlO2JlcnUnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX2Rpc3BsYXluYW1lJ10gPSAnTiZhYWN1dGU7em92IHYmeWFjdXRlO2JlcnUnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX3N1YmplY3QnXSA9ICdQcmVkbWV0IHByZSB2JnlhY3V0ZTtiZXInOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfY291bnRyeSddID0gJ1ByZWRuYXN0YXZlbiZ5YWN1dGU7IHYmeWFjdXRlO2Jlcic7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9zdGF0ZSddID0gJ1ByZWRuYXN0YXZlbiZ5YWN1dGU7IHYmeWFjdXRlO2Jlcic7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9wcm92aW5jZSddID0gJ1ByZWRuYXN0YXZlbiZ5YWN1dGU7IHYmeWFjdXRlO2Jlcic7CiRsYW5nWyd0aXRsZV9vcHRpb25fbmFtZSddID0gJ04mYWFjdXRlO3pvdiB2b8S+YnknOwokbGFuZ1sndGl0bGVfb3B0aW9uX3ZhbHVlJ10gPSAnT2Rvc2xhbiZhYWN1dGU7IGhvZG5vdGEnOwokbGFuZ1sndGl0bGVfcHVsbGRvd25fZGV0YWlscyddID0gJ05hc3RhdmVuaWEgcHJlIHYmeWFjdXRlO2Jlcm92JmVhY3V0ZTsgcG9sZSc7CiRsYW5nWyd0aXRsZV9tdWx0aXNlbGVjdF9kZXRhaWxzJ10gPSAnTmFzdGF2ZW5pYSBwcmUgdmlhY24mYWFjdXRlO3Nvdm4mZWFjdXRlOyB2JnlhY3V0ZTtiZXJvdiZlYWN1dGU7IHBvbGUgJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2FkZHJlc3MnXSA9ICdDaWXEvm92JmFhY3V0ZTsgZS1tYWlsb3YmYWFjdXRlOyBhZHJlc2EnOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fZmlsZW5hbWUnXSA9ICdDaWXEvm92JnlhY3V0ZTsgbiZhYWN1dGU7em92IHMmdWFjdXRlO2JvcnUnOwokbGFuZ1sndGl0bGVfZW1haWxfZnJvbV9uYW1lJ10gPSAnJnF1b3Q7RnJvbSBuYW1lJnF1b3Q7IGZvciBlbWFpbCc7CiRsYW5nWyd0aXRsZV9yZWxheGVkX2VtYWlsX3JlZ2V4J10gPSAnUG91xb5pIGplZG5vZHVjaCZ1YWN1dGU7IGtvbnRyb2x1IGUtbWFpbG92ZWogYWRyZXN5JzsKJGxhbmdbJ3RpdGxlX3JlbGF4ZWRfcmVnZXhfbG9uZyddID0gJ1BvdcW+aWplIGplZG5vZHVjaCZzY2Fyb247aXUga29udHJvbHUgZS1tYWlsb3ZlaiBhZHJlc3kgIChuYXByLiBwb3ZvbCZpYWN1dGU7IGUtbWFpbCB2IHR2YXJlICAmcXVvdDt4QHkmcXVvdDsgbmFtaWVzdG8gcG/FvmFkb3ZuJmVhY3V0ZTtobyB4QHkudGxkKSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9mcm9tX2FkZHJlc3MnXSA9ICcmcXVvdDtaIGFkcmVzeSZxdW90OyBwcmUgZS1tYWlsJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2VuY29kaW5nJ10gPSAnWm5ha292JmFhY3V0ZTsgc2FkYSBwcmUgZS1tYWlsJzsKJGxhbmdbJ3RpdGxlX2RpcmVjdG9yX2RldGFpbHMnXSA9ICdWJnlhY3V0ZTtiZXJvdiZlYWN1dGU7IHBvbGUgcHJlIHphc2xhbmllIGRldGFpbHUgZm9ybXVsJmFhY3V0ZTtyYSc7CiRsYW5nWyd0aXRsZV9maWxlX25hbWUnXSA9ICdOJmFhY3V0ZTt6b3YgcG/EvmEnOwokbGFuZ1sndGl0bGVfZW1haWxfc3ViamVjdCddID0gJ1ByZWRtZXQgZS1tYWlsdSc7CiRsYW5nWyd0aXRsZV9mb3JtX25hbWUnXSA9ICdOJmFhY3V0ZTt6b3YgZm9ybXVsJmFhY3V0ZTtyYSc7CiRsYW5nWyd0aXRsZV9mb3JtX3N0YXR1cyddID0gJ1N0YXYgZm9ybXVsJmFhY3V0ZTtyYSc7CiRsYW5nWyd0aXRsZV9yZWFkeV9mb3JfZGVwbG95bWVudCddID0gJ1ByaXByYXZlbiZ5YWN1dGU7IHByZSBuYXNhZGVuaWUnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MSddID0gJ05pZSBqZSBwcmlwcmF2ZW4meWFjdXRlOyc7CiRsYW5nWyd0aXRsZV9yZWRpcmVjdF9wYWdlJ10gPSAnUHJlc21lcm92YcWlIG5hIHN0ciZhYWN1dGU7bmt1IHBvIG9kb3NsYW4maWFjdXRlOyBmb3JtdWwmYWFjdXRlO3JhJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTInXSA9ICdQbGVhc2UgYWRkIGEgZmllbGQgdG8gdGhlIGZvcm0gc28gdGhhdCB0aGUgdXNlciYjMDM5O3MgaW5wdXQgZ2V0cyBoYW5kbGVkLiBZb3UgY2FuJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeV9saW5rJ10gPSAncG91xb5pIHQmdWFjdXRlO3RvIGtsJmFhY3V0ZTt2ZXNvdiZ1YWN1dGU7IHNrcmF0a3UnOwokbGFuZ1sndGl0bGVfZm9ybV9hbGlhcyddID0gJ0FsaWFzIGZvcm11bCZhYWN1dGU7cmEnOwokbGFuZ1sndGl0bGVfZm9ybV9maWVsZHMnXSA9ICdQb2xpYSBmb3JtdWwmYWFjdXRlO3JhJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2lkJ10gPSAnSUQgZm9ybXVsJmFhY3V0ZTtyYSc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkYWxpYXNlcyddID0gJ1VrJmFhY3V0ZTvFviBwb2xlIGFsaWFzdSc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkYWxpYXNlc19sb25nJ10gPSAnS2xpa251dCZpYWN1dGU7bSB6b2JyYXomaWFjdXRlO3RlIGFsaWFzeSBwb2wmaWFjdXRlOyBwcmkgcHJpZCZhYWN1dGU7dmFuJmlhY3V0ZTsgYWxlYm8gZWRpdCZhYWN1dGU7Y2lpIGZvcm11bCZhYWN1dGU7cmEnOwokbGFuZ1sndGl0bGVfZmllbGRfbmFtZSddID0gJ04mYWFjdXRlO3pvdiBwb8S+YSc7CiRsYW5nWyd0aXRsZV9maWVsZF9hbGlhcyddID0gJ0FsaWFzIHBvxL5hJzsKJGxhbmdbJ3RpdGxlX3JhZGlvZ3JvdXBfZGV0YWlscyddID0gJ05hc3RhdmVuaWEgc2t1cGlueSByJmFhY3V0ZTtkaW8gdGxhxI0maWFjdXRlO3Rvayc7CiRsYW5nWyd0aXRsZV9maWVsZF90eXBlJ10gPSAnVHlwIHBvxL5hJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTMnXSA9ICdwcmUgdnl0dm9yZW5pZSBmb3JtdWwmYWFjdXRlO3JvdiZlYWN1dGU7aG8gcG/EvmEnOwokbGFuZ1sndGl0bGVfYWRkX25ld19mb3JtJ10gPSAnUHJpZGHFpSBub3YmeWFjdXRlOyBmb3JtdWwmYWFjdXRlO3InOwokbGFuZ1sndGl0bGVfc2hvd192ZXJzaW9uJ10gPSAnVWsmYWFjdXRlO3phxaUgdmVyc2l1IG1vZHVsdSBwcmUgZm9ybXVsJmFhY3V0ZTtyZT8nOwokbGFuZ1sndGl0bGVfc2hvd192ZXJzaW9uX2xvbmcnXSA9ICdUaGlzIHdpbGwgZW1iZWQgeW91ciBpbnN0YWxsZWQgdmVyc2lvbiBudW1iZXIgb2YgRm9ybSBCdWlsZGVyIG1vZHVsZSBpbiBhIGNvbW1lbnQsIHRvIGFpZCBpbiBkZWJ1Z2dpbmcnOwokbGFuZ1sndGl0bGVfYWRkX25ld19maWVsZCddID0gJ1ByaWRhxaUgbm92JmVhY3V0ZTsgcG9sZSc7CiRsYW5nWyd0aXRsZV9mb3JtX3N1Ym1pdF9idXR0b24nXSA9ICdUZXh0IHRsYcSNJmlhY3V0ZTt0a2EgcHJlIG9kb3NpZWxhbmllJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5J10gPSAnUHJpZGHFpSBqYXZhc2NyaXB0IHByaSBvZG9zaWVsYW4maWFjdXRlOyBuYSBvY2hyYW51IHByZWQgdmlhY24mYWFjdXRlO3NvYm4mZWFjdXRlO211IG9kc2xhbml1IGZvcm11bCZhYWN1dGU7cmE/JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5X2hlbHAnXSA9ICdQcmlkYcWlIGJlenBlxI1ub3N0biZ5YWN1dGU7IHNjcmlwdCc7CiRsYW5nWyd0aXRsZV9mb3JtX25leHRfYnV0dG9uJ10gPSAnRm9ybSAmcXVvdDtOZXh0JnF1b3Q7IEJ1dHRvbiBUZXh0ICh1c2VkIGZvciBtdWx0aXBhZ2UgZm9ybXMpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcHJldl9idXR0b24nXSA9ICdGb3JtICZxdW90O1ByZXZpb3VzJnF1b3Q7IEJ1dHRvbiBUZXh0ICh1c2VkIGZvciBtdWx0aXBhZ2UgZm9ybXMpJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3ZhbGlkYXRpb24nXSA9ICdLb250cm9sYSBwb8S+YSc7CiRsYW5nWyd0aXRsZV9maWVsZF90b192YWxpZGF0ZSddID0gJ1BvbGUgcHJlIGtvbnRyb2x1JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2Nzc19pZCddID0gJ0NTUyBpZCBmb3IgdGhpcyBmaWVsZCc7CiRsYW5nWyd0aXRsZV9mb3JtX2Nzc19jbGFzcyddID0gJ0NTUyB0cmllZGEgcHJlIHRlbnRvIGZvcm11bCZhYWN1dGU7cic7CiRsYW5nWyd0aXRsZV9maWVsZF9jc3NfY2xhc3MnXSA9ICdDU1MgdHJpZWRhIHByZSB0b3RvIHBvbGUnOwokbGFuZ1sndGl0bGVfZm9ybV9wcmVkaXNwbGF5X3VkdCddID0gJ1VzZXIgZGVmaW5lZCB0YWcgdG8gY2FsbCBiZWZvcmUgZm9ybSBpcyBkaXNwbGF5ZWQnOwokbGFuZ1sndGl0bGVfZm9ybV9yZXF1aXJlZF9zeW1ib2wnXSA9ICdabmFrIHByZSBvem5hxI1lbmllIHBvdmlubiZ5YWN1dGU7Y2ggcG9sJmlhY3V0ZTsnOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWQnXSA9ICdQb3Zpbm4mZWFjdXRlOyc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9sb25nJ10gPSAnVnnFvmFkb3ZhxaUga29udHJvbHUgdG9odG8gcG/EvmEnOwokbGFuZ1sndGl0bGVfaGlkZV9sYWJlbCddID0gJ1NrcnnFpSBwb3Bpc29rIChsYWJlbCknOwokbGFuZ1sndGl0bGVfaGlkZV9sYWJlbF9sb25nJ10gPSAnSGlkZSB0aGlzIGZpZWxkJiMwMzk7cyBuYW1lIG9uIEZvcm0nOwokbGFuZ1sndGl0bGVfdGV4dCddID0gJ1RleHQgcHJlIHpvYnJhemVuaWUnOwokbGFuZ1sndGl0bGVfZmllbGRfcmVnZXgnXSA9ICdSZWd1bCZhYWN1dGU7cm55IHYmeWFjdXRlO3JheiBwcmUga29udHJvbHUnOwokbGFuZ1sndGl0bGVfbGluZXNfdG9fc2hvdyddID0gJ1BvxI1ldCB6b2JyYXplbiZ5YWN1dGU7Y2ggcmlhZGtvdic7CiRsYW5nWydub19kZWZhdWx0J10gPSAnQmV6IHByZWRuYXN0YXZlbmlhJzsKJGxhbmdbJ3JlZGlyZWN0X2FmdGVyX2FwcHJvdmFsJ10gPSAnU3RyJmFhY3V0ZTtua2EgcHJlIHByZXNtZXJvdmFuaWUgcG8gc2NodiZhYWN1dGU7bGVuJmlhY3V0ZTsnOwokbGFuZ1sndGl0bGVfcmVnZXhfaGVscCddID0gJ1RoaXMgcmVndWxhciBleHByZXNzaW9uIHdpbGwgb25seSBiZSB1c2VkIGlmICZxdW90O3ZhbGlkYXRpb24gdHlwZSZxdW90OyBpcyBzZXQgdG8gYSByZWdleC1yZWxhdGVkIG9wdGlvbi4gSW5jbHVkZSBhIGZ1bGwgUGVybC1zdHlsZSByZWdleCwgaW5jbHVkaW5nIHRoZSBzdGFydC9zdG9wIHNsYXNoZXMgYW5kIGZsYWdzIChlLmcuLCAmcXVvdDsvaW1hZ2VcLihcZCspL2kmcXVvdDspJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2FiYnJldiddID0gJ1JlcSYjMDM5O2QnOwokbGFuZ1sndGl0bGVfaGlkZV9lcnJvcnMnXSA9ICdTa3J5xaUgY2h5YnknOwokbGFuZ1sndGl0bGVfZm9ybV9kaXNwbGF5dHlwZSddID0gJ1R5cCBwcmUgem9icmF6ZW5pZSBmb3JtdWwmYWFjdXRlO3JhJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzX2xvbmcnXSA9ICdQcmV2ZW50IGRlYnVnIC8gZXJyb3IgbWVzc2FnZXMgZnJvbSBiZWluZyBzZWVuIGJ5IHVzZXJzLic7CiRsYW5nWyd0aXRsZV9lbWFpbF90ZW1wbGF0ZSddID0gJyZTY2Fyb247YWJsJm9hY3V0ZTtuYSBlLW1hbHUnOwokbGFuZ1sndGl0bGVfbWF4aW11bV9zaXplJ10gPSAnTWF4aW0mYWFjdXRlO2xuYSB2ZcS+a29zxaUgbmFociZhYWN1dGU7dmFuJmVhY3V0ZTtobyBzJnVhY3V0ZTtib3J1IChraWxvYnl0ZXMpJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZV9sb25nJ10gPSAnVGhpcyBsaW1pdGF0aW9uIGlzIGluIGFkZGl0aW9uIHRvIGFueSBsaW1pdHMgc2V0IGJ5IHRoZSBwaHAgb3Igd2ViIHNlcnZlciBjb25maWd1cmF0aW9uJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zJ10gPSAnUG92b2xlbiZlYWN1dGU7IHJveiZzY2Fyb247JmlhY3V0ZTtyZW5pYSc7CiRsYW5nWyd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9uc19sb25nJ10gPSAnRW50ZXIgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCwgZXhjbHVkaW5nIHRoZSBkb3QgKGUuZy4sICZxdW90O2pwZyxnaWYsanBlZyZxdW90OykuIFNwYWNlcyB3aWxsIGJlIGlnbm9yZWQuIExlYXZpbmcgdGhpcyBibGFuayBtZWFucyB0aGVyZSB3aWxsIGJlIG5vIHJlc3RyaWN0aW9ucy4nOwokbGFuZ1sndGl0bGVfc2hvd19saW1pdGF0aW9ucyddID0gJ0Rpc3BsYXkgcmVzdHJpY3Rpb25zPyc7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zX2xvbmcnXSA9ICdEaXNwbGF5IGFueSBzaXplIGFuZCBleHRlbnNpb24gcmVzdHJpY3Rpb25zIHdpdGggdGhlIHVwbG9hZCBmaWVsZD8nOwokbGFuZ1sndGl0bGVfZm9ybV90ZW1wbGF0ZSddID0gJ1NhYmwmb2FjdXRlO25hIHByZSB6b2JyYXplbmllIGZvcm11bCZhYWN1dGU7cmEnOwokbGFuZ1sndGl0bGVfcGFnZV94X29mX3knXSA9ICdTdHJhbmEgJXMgeiAlcyc7CiRsYW5nWyd0aXRsZV9ub19hZHZhbmNlZF9vcHRpb25zJ10gPSAnUG9sZSBuZW0mYWFjdXRlOyByb8W+JmlhY3V0ZTtyZW4mZWFjdXRlOyBuYXN0YXZlbmlhJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdW5zcGVjaWZpZWQnXSA9ICdUZXh0IHRvIHJldHVybiBmb3IgdW5zcGVjaWZpZWQgZmllbGQgdmFsdWVzJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9mYXN0YWRkX2xvbmcnXSA9ICdFbmFibGUgZmFzdCBmaWVsZCBhZGRpbmcgcHVsbGRvd24gZm9yIGZvcm1zPyc7CiRsYW5nWyd0aXRsZV9lbmFibGVfZmFzdGFkZCddID0gJ0VuYWJsZSBmYXN0IGZpZWxkIGFkZCBwdWxsZG93bj8nOwokbGFuZ1sndGl0bGVfZmFzdGFkZCddID0gJ1ImeWFjdXRlO2NobGUgcHJpZCZhYWN1dGU7dmFuaWUgcG9sJmlhY3V0ZTsnOwokbGFuZ1sndGl0bGVfZW5hYmxlX2FudGlzcGFtX2xvbmcnXSA9ICdDbGlja2luZyB0aGlzIHdpbGwgb25seSBhbGxvdyAxMCBlbWFpbHMgdG8gYmUgdHJpZ2dlcmVkIGZyb20gYSBnaXZlbiBJUCBhZGRyZXNzIChwZXIgaG91cikuJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9hbnRpc3BhbSddID0gJ1phcG4mdWFjdXRlO8WlIGplZG5vdHVjaHkgYW50aS1zcGFtIGZpbHRlcj8nOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGlkcyddID0gJ1VrJmFhY3V0ZTt6YcWlIElExI1rYSBwb2wmaWFjdXRlOyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkaWRzX2xvbmcnXSA9ICdDbGlja2luZyB0aGlzIHdpbGwgYWxsb3cgZGlzcGxheWluZyBmaWVsZCBpZHMgd2hlbiBhZGRpbmcgb3IgZWRpdGluZyBhIGZvcm0nOwokbGFuZ1sndGl0bGVfeG1sX3RvX3VwbG9hZCddID0gJ05haHJhxaUgZm9ybXVsJmFhY3V0ZTtyIHogWE1MIHMmdWFjdXRlO2JvcnUnOwokbGFuZ1sndGl0bGVfeG1sX3VwbG9hZF9mb3JtbmFtZSddID0gJ1BvdcW+acWlIHRlbnRvIG4mYWFjdXRlO3pvdiBmb3JtdWwmYWFjdXRlO3JhJzsKJGxhbmdbJ3RpdGxlX2ltcG9ydF9sZWdlbmQnXSA9ICdYTUwgaW1wb3J0IGZvcm11bCZhYWN1dGU7cmEnOwokbGFuZ1sndGl0bGVfeG1sX3VwbG9hZF9mb3JtYWxpYXMnXSA9ICdQb3XFvmnFpSB0ZW50byBhbGlhcyBmb3JtdWwmYWFjdXRlO3JhJzsKJGxhbmdbJ3RpdGxlX2h0bWxfZW1haWwnXSA9ICdHZW5lcm92YcWlIEhUTUwgZS1tYWlsPyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZSddID0gJ0F1dG9tYXRpY2FsbHkgcG9wdWxhdGU/JzsKJGxhbmdbJ3RpdGxlX2xpbmtfYXV0b3BvcHVsYXRlX2hlbHAnXSA9ICdBdXRvbWF0aWNhbGx5IHBvcHVsYXRlIHdpdGggdGhlIFVSTCBvZiB0aGUgcGFnZSBjb250YWluaW5nIHRoZSBmb3JtPyAodGhpcyBvdmVycmlkZXMgc2l0ZSBwYWdlIGxpbmsgb3B0aW9uIGJlbG93KSc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2xpbmsnXSA9ICdQcmVkbmFzdGF2ZW4mYWFjdXRlOyBVUkwnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9saW5rX3RpdGxlJ10gPSAnUHJlZG5hc3RhdmVuJnlhY3V0ZTsgb2RrYXogdGV4dHUnOwokbGFuZ1sndGl0bGVfbGlua190b19zaXRlcGFnZSddID0gJ09ka2F6IG5hIHN0ciZhYWN1dGU7bmt1JzsKJGxhbmdbJ3RpdGxlX2NhcHRjaGFfbm90X2luc3RhbGxlZCddID0gJ1lvdSBjYW4gdXNlIDxhIGhyZWY9Imh0dHA6Ly93d3cud2lraXBlZGlhLm9yZy93aWtpL0NhcHRjaGEiIHRhcmdldD0iX25ldyI+JnF1b3Q7Q2FwdGNoYSZxdW90OzwvYT4gdG8gcHJvdGVjdCBmb3JtIHN1Ym1pc3Npb25zIGlmIHlvdSBpbnN0YWxsIHRoZSBDYXB0Y2hhIG1vZHVsZS4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvY2FwdGNoYS8iPmNoZWNrIHRoZSBDYXB0Y2hhIHByb2plY3Q8L2E+Lic7CiRsYW5nWyd0aXRsZV91c2VfY2FwdGNoYSddID0gJ1BvdcW+acWlIENhcHRjaGEgb2NoYW51IHByZWQgc3BhbW9tPyc7CiRsYW5nWyd0aXRsZV91c2VfY2FwdGNoYV9oZWxwJ10gPSAnUG96cmllxaUgaW5mb3JtJmFhY3V0ZTtjaWUgbyA8YSBocmVmPSJodHRwOi8vd3d3Lndpa2lwZWRpYS5vcmcvd2lraS9DYXB0Y2hhIiB0YXJnZXQ9Il9uZXciPiZxdW90O0NhcHRjaGEmcXVvdDs8L2E+Lic7CiRsYW5nWyd0aXRsZV91c2VyX2NhcHRjaGEnXSA9ICdQbGVhc2UgY29uZmlybSB0aGF0IHlvdSBhcmUgbm90IGEgc2NyaXB0IGJ5IGVudGVyaW5nIHRoZSBsZXR0ZXJzIGZyb20gdGhlIGltYWdlLic7CiRsYW5nWyd0aXRsZV91c2VyX2NhcHRjaGFfZXJyb3InXSA9ICdGYWlsZWQgdGV4dCBmb3IgQ2FwdGNoYSc7CiRsYW5nWyd3cm9uZ19jYXB0Y2hhJ10gPSAnQ2FwdGNoYSBuZWJvbGEgb3AmaWFjdXRlO3NhbiZhYWN1dGU7IHNwciZhYWN1dGU7dm5lJzsKJGxhbmdbJ3RpdGxlX3RpdGxlX3VzZXJfY2FwdGNoYSddID0gJ0hlbHAgdGV4dCBmb3IgQ2FwdGNoYSc7CiRsYW5nWyd0aXRsZV9kb250X3N1Ym1pdF91bmNoZWNrZWQnXSA9ICdEb24mIzAzOTt0IHN1Ym1pdCB2YWx1ZXMgZm9yIHVuY2hlY2tlZCBib3hlcyc7CiRsYW5nWyd0aXRsZV9kb250X3N1Ym1pdF91bmNoZWNrZWRfaGVscCddID0gJ0NoZWNrIHRoaXMgaWYgeW91IG9ubHkgd2FudCBjaGVja2VkIGJveGVzIHRvIHJldHVybiB2YWx1ZXMuJzsKJGxhbmdbJ2xpbmtfbGFiZWwnXSA9ICdPZGtheiBwcmUgcG9waXMnOwokbGFuZ1snbGlua19kZXN0aW5hdGlvbiddID0gJ0xpbmsgRGVzdGluYXRpb24gVVJMJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfc2V0J10gPSAnQ2hlY2tlZCBieSBEZWZhdWx0Pyc7CiRsYW5nWyd0aXRsZV8yNF9ob3VyJ10gPSAnUG91xb5pxaUgMjRob2Rpbm92JnlhY3V0ZTsgxI1hcz8nOwokbGFuZ1sndGl0bGVfYmVmb3JlX25vb24nXSA9ICdBTSc7CiRsYW5nWyd0aXRsZV9hZnRlcl9ub29uJ10gPSAnUE0nOwokbGFuZ1sndGl0bGVfc21hcnR5X2V2YWwnXSA9ICdQcm9jZXNzIHNtYXJ0eSB0YWdzIHdpdGhpbiBmaWVsZD8nOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfcm93cyddID0gJ1JpYWRreSAocG96bmFta2E6bSZvY2lyYzvFvmV0ZSBtZW5pxaUgYWogcG9tb2NvdSBDU1MpJzsKJGxhbmdbJ3RpdGxlX3RleHRhcmVhX2NvbHMnXSA9ICdTdMS6cGNlICAocG96biZhYWN1dGU7bWthOiBtJm9jaXJjO8W+ZXRlIG1lbmnFpSBhaiBwb21vY291IENTUyknOwokbGFuZ1sndGl0bGVfZm9ybV9tYWluJ10gPSAnTWFpbiBGb3JtIERldGFpbHMnOwokbGFuZ1sndGl0bGVfc2hvd191c2VybmFtZSddID0gJ0Rpc3BsYXkgVXNlciYjMDM5O3MgbG9naW4gbmFtZT8nOwokbGFuZ1sndGl0bGVfc2hvd191c2VyZmlyc3RuYW1lJ10gPSAnRGlzcGxheSBVc2VyJiMwMzk7cyBmaXJzdCBuYW1lPyc7CiRsYW5nWyd0aXRsZV9zaG93X3VzZXJsYXN0bmFtZSddID0gJ0Rpc3BsYXkgVXNlciYjMDM5O3MgbGFzdCBuYW1lPyc7CiRsYW5nWyd0aXRsZV9yZXN0cmljdF90b19ncm91cCddID0gJ1Jlc3RyaWN0IHVzZXIgbGlzdCB0byB1c2VycyBpbiBzcGVjaWZpZWQgZ3JvdXAnOwokbGFuZ1sncmVzdHJpY3RlZF90b19ncm91cCddID0gJ09ubHkgaW4gZ3JvdXAgJXMnOwokbGFuZ1sndGl0bGVfc2hvd190b191c2VyJ10gPSAnWm9icmF6acWlIHXFviZpYWN1dGU7dmF0ZcS+b3ZpPyc7CiRsYW5nWydoZWxwX2xlYXZlZW1wdHknXSA9ICdUb3RvIHBvbGUgbSZvY2lyYzvFvmUgYnnFpSBwciZhYWN1dGU7emRuZSc7CiRsYW5nWydoZWxwX3ZhcmlhYmxlc19mb3JfdGVtcGxhdGUnXSA9ICdQcmVtZW5uZSBwcmUgJnNjYXJvbjthYmwmb2FjdXRlO251JzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVzX2Zvcl9jb21wdXRhdGlvbiddID0gJ0Rvc3R1cG4mZWFjdXRlOyBwcmVtZW5uJmVhY3V0ZTsnOwokbGFuZ1snaGVscF9waHBfdmFyaWFibGVfbmFtZSddID0gJ1BIUCBwcmVtZW5uJmVhY3V0ZTsnOwokbGFuZ1snaGVscF9zdWJtaXNzaW9uX2RhdGUnXSA9ICdEJmFhY3V0ZTt0dW0gb2Rvc2xhbmlhJzsKJGxhbmdbJ2hlbHBfc2VydmVyX25hbWUnXSA9ICdWJmFhY3V0ZTsmc2Nhcm9uOyBzZXJ2ZXInOwokbGFuZ1snaGVscF9zdWJfc291cmNlX2lwJ10gPSAnSVAgYWRyZXNhIG9kb3NpZWxhdGXEvmEnOwokbGFuZ1snaGVscF9zdWJfdXJsJ10gPSAnVVJMIHN0ciZhYWN1dGU7bmt5IG9ic2FodWomdWFjdXRlO2NlaiBmb3JtdWwmYWFjdXRlO3InOwokbGFuZ1snaGVscF9mYl92ZXJzaW9uJ10gPSAnVmVyemlhIG1vZHVsdSBmb3JtdWwmYWFjdXRlO3JhJzsKJGxhbmdbJ2hlbHBfdGFiJ10gPSAnWm5ha292JmFhY3V0ZTsgc2FkYSc7CiRsYW5nWydoZWxwX290aGVyX2ZpZWxkcyddID0gJ0FsdGVybmF0ZSBmaWVsZCBuYW1lcyBjYW4gYmUgdXNlZCBpbnRlcmNoYW5nZWFibHkgKGVzcGVjaWFsbHkgdXNlZnVsIGlmIFNtYXJ0eSBpcyBjaG9raW5nIG9uIGNoYXJhY3RlcnMgb3V0c2lkZSBvZiBBU0NJSSAzMi0xMjYpLiA8YnIgLz5PdGhlciBmaWVsZHMgd2lsbCBiZSBhdmFpbGFibGUgYXMgeW91IGFkZCB0aGVtIHRvIHRoZSBmb3JtLic7CiRsYW5nWydoZWxwX2FycmF5X2ZpZWxkcyddID0gJ1lldCBhbm90aGVyIHdheSBvZiBhY2Nlc3NpbmcgZmllbGQgdmFsdWVzIGlzIHZpYSAkZmllbGRuYW1lX29iaiwgJGFsaWFzX29iaiwgb3IgJGZsZF8jX29iaiwgd2hlcmUgZWFjaCBmaWVsZCBpcyBhbiBvYmplY3QgY29udGFpbmdpbmc6PGJyIC8+PHRhYmxlPg0KPHRyPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+bmFtZTwvdGQ+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz5GaWVsZCBOYW1lPC90ZD48L3RyPg0KPHRyPjx0ZD50eXBlPC90ZD48dGQ+RmllbGQgVHlwZTwvdGQ+PC90cj4NCjx0cj48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7PmlkPC90ZD48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7PkludGVybmFsIEZpZWxkIElEPC90ZD48L3RyPg0KPHRyPjx0ZD52YWx1ZTwvdGQ+PHRkPkh1bWFuLXJlYWRhYmxlIFZhbHVlPC90ZD48L3RyPg0KPHRyPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+dmFsdWVBcnJheTwvdGQ+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz5BcnJheSBvZiBmaWVsZCB2YWx1ZShzKTwvdGQ+PC90cj48L3RhYmxlPjxlbT5lLmcuPC9lbT4sIHlvdSBjb3VsZCB1c2UgJnF1b3Q7eyRmbGRfMV9vYmotPm5hbWV9ID0geyRmbGRfMV9vYmotPnZhbHVlfSc7CiRsYW5nWydoZWxwX2RhdGVfZm9ybWF0J10gPSAnU2VlIDxhIGhyZWY9Imh0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24uZGF0ZS5waHAiIHRhcmdldD1fTkVXPnRoZSBQSFAgTWFudWFsPC9hPiBmb3IgZm9ybWF0dGluZyBoZWxwLic7CiRsYW5nWydoZWxwX3ZhcmlhYmxlX25hbWUnXSA9ICdQcmVtZW5uJmFhY3V0ZTsnOwokbGFuZ1snaGVscF9mb3JtX2ZpZWxkJ10gPSAnRmllbGQgUmVwcmVzZW50ZWQnOwokbGFuZ1snbGlua19iYWNrX3RvX2Zvcm0nXSA9ICcmbGFxdW87IEJhY2sgdG8gRm9ybSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX3RlbXBsYXRlJ10gPSAnVnl0dm9yacWlIHVrJmFhY3V0ZTvFvmt1ICZzY2Fyb247YWJsJm9hY3V0ZTtueSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2h0bWxfdGVtcGxhdGUnXSA9ICdWeXR2b3JpxaUgdWsmYWFjdXRlO8W+a3UgSFRNTCAmc2Nhcm9uO2FibCZvYWN1dGU7bnknOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9oZWFkZXJfdGVtcGxhdGUnXSA9ICdWeXR2b3JpxaUgdWsmYWFjdXRlO8W+a3UgaGxhdmnEjWt5ICZzY2Fyb247YWJsJm9hY3V0ZTtueSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2hlYWRlciddID0gJ1Z5dHZvcmnFpSB1ayZhYWN1dGU7xb5rdSBobGF2acSNa3knOwokbGFuZ1snaGVscF90YWJfc3ltYm9sJ10gPSAnem5ha292JmFhY3V0ZTsgc2FkYSc7CiRsYW5nWyd0aXRsZV9maWxlX3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgZm9yIG9uZSBsaW5lIG9mIG91dHB1dCBmaWxlJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfaGVhZGVyJ10gPSAnVGVtcGxhdGUgZm9yIHRoZSBoZWFkZXIgb2Ygb3V0cHV0IGZpbGUnOwokbGFuZ1sndGl0bGVfY29uZmlybWF0aW9uX3VybCddID0gJ1VSTCB0byBjbGljayBmb3IgZm9ybSBjb25maXJtYXRpb24nOwokbGFuZ1sndGl0bGVfdmFsdWUnXSA9ICdWYWx1ZSAoc2VlIEFkdmFuY2VkIFRhYiBpZiB5b3UgdXNlIFNtYXJ0eSB0YWdzKSc7CiRsYW5nWyd0aXRsZV9kYXRlX2Zvcm1hdCddID0gJ0RhdGUgRm9ybWF0IChzdGFuZGFyZCA8YSBocmVmPSJodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwIj5QSFAgRGF0ZSBGb3JtYXRzPC9hPiknOwokbGFuZ1sndGl0bGVfdXNlX3d5c2l3eWcnXSA9ICdVc2UgV1lTSVdZRyBlZGl0b3IgZm9yIHRleHQgQXJlYSAoQWRtaW4gc2lkZSBvbmx5KT8nOwokbGFuZ1sndGl0bGVfc3VibWl0X2FjdGlvbnMnXSA9ICdGb3JtIFN1Ym1pc3Npb24gQmVoYXZpb3InOwokbGFuZ1sndGl0bGVfc3VibWl0X2xhYmVscyddID0gJ1N1Ym1pc3Npb24gQnV0dG9uIExhYmVscyc7CiRsYW5nWyd0aXRsZV9zb3J0YWJsZV9maWVsZCddID0gJ1BvbGlhIHByZSB0cmllZGVuaWUgIyVzJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9oZWxwJ10gPSAnVGhpcyBwYWdlIGxldHMgeW91IGN1c3RvbWl6ZSBGb3JtIFN1Ym1pc3Npb24uIEl0IGRvZXNuJiMwMzk7dCBkZXRlcm1pbmUgd2hhdCB0aGUgRm9ybSBCdWlsZGVyIGRvZXMgd2l0aCB0aGUgc3VibWl0dGVkIGRhdGEuIFlvdSBjYW4gc2V0IHRoYXQgdXAgYnkgYWRkaW5nICZxdW90O0Rpc3Bvc2l0aW9uJnF1b3Q7IGZpZWxkcyB0byB5b3VyIGZvcm0uJzsKJGxhbmdbJ3RpdGxlX3N0YXJ0X3llYXInXSA9ICdZZWFyIHJhbmdlIHN0YXJ0JzsKJGxhbmdbJ3RpdGxlX2VuZF95ZWFyJ10gPSAnWWVhciByYW5nZSBlbmQnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF95ZWFyJ10gPSAnUHJlZG5hc3RhdmVuJnlhY3V0ZTsgcm9rJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfeWVhcl9oZWxwJ10gPSAnKFNldCB0byAtMSBmb3IgZGVmYXVsdCB5ZWFyIHRvIGJlIHRoZSBjdXJyZW50IHllYXIpJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9hY3Rpb24nXSA9ICdBZnRlciBmb3JtIGlzIHN1Ym1pdHRlZCc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfcmVzcG9uc2UnXSA9ICdSZXNwb25zZSB0byBkaXNwbGF5JzsKJGxhbmdbJ2Rpc3BsYXlfdGV4dCddID0gJ1pvYnJhemnFpSAmcXVvdDsmc2Nhcm9uO2FibCZvYWN1dGU7bnUgcG8gb2Rvc2xhbiZpYWN1dGU7JnF1b3Q7JzsKJGxhbmdbJ3JlZGlyZWN0X3RvX3BhZ2UnXSA9ICdQcmVzbWVyb3ZhxaUgbmEgc3RyJmFhY3V0ZTtua3UnOwokbGFuZ1sndGl0bGVfc3VibWl0X3Jlc3BvbnNlX2hlbHAnXSA9ICdUaGlzIHRlbXBsYXRlIGlzIGZvciBkaXNwbGF5IHRvIHRoZSB1c2VyIGFmdGVyIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZC4gVGhpcyB0ZW1wbGF0ZSBkb2VzIG5vdCBlZmZlY3QgZW1haWxzIGdlbmVyYXRlZCBvciBvdGhlciBmb3JtIGRpc3Bvc2l0aW9ucyAtLSB5b3Ugc2V0IHRob3NlIHRlbXBsYXRlcyAod2hlcmUgYXBwcm9wcmlhdGUpIGluIHRoZSAmcXVvdDthZHZhbmNlZCZxdW90OyB0YWIgZm9yIHRob3NlIGRpc3Bvc2l0aW9uIGZpZWxkcy4nOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fcGFnZSddID0gJ0NpZcS+b3YmYWFjdXRlOyBzdHImYWFjdXRlO25rYSc7CiRsYW5nWyd0aXRsZV9yZXF1aXJlX2ZpZWxkbmFtZXMnXSA9ICdQb3Zpbm4mZWFjdXRlOyBuJmFhY3V0ZTt6dnkgcG9sJmlhY3V0ZTsnOwokbGFuZ1sndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzX2xvbmcnXSA9ICdWecW+YWRvdmHFpSB6YWQmYWFjdXRlO3ZhbmllIG4mYWFjdXRlO3p2b3YgcHJlIHBvbGlhJzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWVsZG5hbWVzJ10gPSAnVnnFvmFkb3ZhxaUgdW5payZhYWN1dGU7dG5lIG4mYWFjdXRlO3p2eSBwcmUgcG9saWEnOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXNfbG9uZyddID0gJ1Z5xb5pYWRvdmHFpSB1bmlrJmFhY3V0ZTt0bmUgbiZhYWN1dGU7enZ5JzsKJGxhbmdbJ3RpdGxlX3Jlb3JkZXJfZm9ybSddID0gJ1ByZWgmYWFjdXRlO2R6YcWlIHBvbGlhJzsKJGxhbmdbJ3RpdGxlX2xvYWRfdGVtcGxhdGUnXSA9ICdOYWhyYcWlICZzY2Fyb247YWJsJm9hY3V0ZTtudSc7CiRsYW5nWyd0aXRsZV9hZGRfYnV0dG9uX3RleHQnXSA9ICdQcmlkYcWlIHRleHQgdGxhxI0maWFjdXRlO3RrYSc7CiRsYW5nWyd0aXRsZV9kZWxfYnV0dG9uX3RleHQnXSA9ICdvZHN0ciZhYWN1dGU7bmnFpSB0ZXh0IHRyYcSNJmlhY3V0ZTt0a2EnOwokbGFuZ1sndGl0bGVfc3RyaW5nX29yX251bWJlcl9ldmFsJ10gPSAnSW50ZXJwcmV0IHZhcmlhYmxlcyBhcyBiZWluZyBudW1iZXJzIG9yIHN0cmluZ3MnOwokbGFuZ1sndGl0bGVfb3JkZXInXSA9ICdJbnRlcnByZXRhdGlvbiBPcmRlcic7CiRsYW5nWyd0aXRsZV9vcmRlcl9oZWxwJ10gPSAnSWYgbW9yZSB0aGFuIG9uZSBDb21wdXRlZCBGaWVsZCBleGlzdHMsIHRoZXkgd2lsbCBiZSBjb21wdXRlZCBmcm9tIGxvd2VzdCBvcmRlciBudW1iZXIgdG8gaGlnaGVzdCBvcmRlciBudW1iZXInOwokbGFuZ1sndGl0bGVfY29tcHV0ZV92YWx1ZSddID0gJ0hvZG5vdGEgcHJlIHBvcm92bmFuaWUnOwokbGFuZ1sndGl0bGVfc3RyaW5nJ10gPSAnUmXFpWF6ZWMnOwokbGFuZ1sndGl0bGVfbnVtZXJpYyddID0gJ8SMJmlhY3V0ZTtzbG8nOwokbGFuZ1sndGl0bGVfaW5saW5lX2Zvcm0nXSA9ICdab2JyYXpvdmHFpSBwcmlhbW8gdiBvYnNhaHUgKGlubGluZSknOwokbGFuZ1sndGl0bGVfaW5saW5lX2Zvcm1faGVscCddID0gJ0lubGluZSBtZWFucyBhbnkgZm9ybSBmb2xsb3d1cCByZXBsYWNlcyB0aGUge2Ntc19tb2R1bGV9IHRhZywgbm9uLWlubGluZSByZXBsYWNlcyB0aGUge2NvbnRlbnR9IHRhZy4nOwokbGFuZ1sndGl0bGVfZmllbGRfZGVmYXVsdF92YWx1ZSddID0gJ1ByZWRuYXN0YXZlbiZhYWN1dGU7IGhvZG5vdGEgcHJlcG9sZSc7CiRsYW5nWyd0aXRsZV9jbGVhcl9kZWZhdWx0J10gPSAnVnnEjWlzdGnFpSBwbyBrbGlrbnV0JmlhY3V0ZTs/JzsKJGxhbmdbJ3RpdGxlX2NsZWFyX2RlZmF1bHRfaGVscCddID0gJ0NoZWNrIHRoaXMgdG8gY2xlYXIgdGhlIGRlZmF1bHQgdmFsdWUgd2hlbiB0aGUgdXNlciBjbGlja3MgdGhpcyBmaWVsZC4gU2luY2UgdGhpcyB1c2VzIGEgamF2YXNjcmlwdCBzdHJpbmcgY29tcGFyZSwgaXQgd2lsbCBmYWlsIGlmIHlvdSBwdXQgc2luZ2xlIHF1b3RlcyBpbiB5b3VyIGRlZmF1bHQgdGV4dC4gT3RoZXIgdW4tamF2YXNjcmlwdC1mcmllbmRseSBjaGFyYWN0ZXJzIG1heSBhbHNvIGNhdXNlIGl0IHRvIGZhaWwuJzsKJGxhbmdbJ3RpdGxlX3JlbW92ZV9maWxlX2Zyb21fc2VydmVyJ10gPSAnRGVsZXRlIHVwbG9hZGVkIGZpbGUgZnJvbSBzZXJ2ZXIgYWZ0ZXIgcHJvY2Vzc2luZyAoZW1haWwgZGlzcG9zaXRpb25zKSc7CiRsYW5nWyd0aXRsZV9maWVsZF9qYXZhc2NyaXB0J10gPSAnSmF2YXNjcmlwdCBwcmUgcG9sZSc7CiRsYW5nWyd0aXRsZV9maWVsZF9qYXZhc2NyaXB0X2xvbmcnXSA9ICdNYWtlIHRoaXMgdGhlIGNvbXBsZXRlIEphdmFzY3JpcHQgY2FsbCwgaW5jbHVkaW5nIHRoZSBldmVudCB5b3Ugd2FudCB0byB0cmFwLCBlLmcuLCBvbmNsaWNrPSZxdW90O3lvdXJmbigpJnF1b3Q7JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9qYXZhc2NyaXB0J10gPSAnSmF2YXNjcmlwdCBwbyBvZG9zbGFuJmlhY3V0ZTsgZm9ybWwmYWFjdXRlO3JhJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9qYXZhc2NyaXB0X2xvbmcnXSA9ICdNYWtlIHRoaXMgdGhlIGNvbXBsZXRlIEphdmFzY3JpcHQgY2FsbCwgaW5jbHVkaW5nIHRoZSBldmVudCB5b3Ugd2FudCB0byB0cmFwLCBlLmcuLCBvbmNsaWNrPSZxdW90O3lvdXJmbigpJnF1b3Q7LjxiciAvPlRoaXMgd2lsbCBwcm9iYWJseSBub3Qgd29yayB3ZWxsIGlmIHlvdSB1c2UgdGhlICZxdW90O3NhZmV0eSBzY3JpcHQmcXVvdDsgb3B0aW9uIGFib3ZlLic7CiRsYW5nWydlbWFpbF9mcm9tX2FkZHJfaGVscCddID0gJ0RvIG5vdCBqdXN0IHBpY2sgYSByYW5kb20gYWRkcmVzcyBoZXJlIC0tIG1hbnkgSVNQcyB3aWxsPGJyIC8+bm90IGRlbGl2ZXIgdGhlIG1haWwgaWYgeW91IGFyZSB1c2luZyBhIGRpZmZlcmVudCBkb21haW4gbmFtZSB0aGFuIHlvdXIgYWN0dWFsPGJyIC8+aG9zdCBuYW1lIChpLmUuLCB1c2Ugc29tZXRoaW5nIGxpa2UgbmFtZUAlcyknOwokbGFuZ1sndGl0bGVfc3dpdGNoX2FkdmFuY2VkJ10gPSAnVmlhYyB0eXBvdiBwb2wmaWFjdXRlOz8gJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9iYXNpYyddID0gJ1RvbyBtYW55IGNvbmZ1c2luZyBmaWVsZCB0eXBlcz8gJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9hZHZhbmNlZF9saW5rJ10gPSAnUHJlcG4mdWFjdXRlO8WlIGRvIHJvesSNJmlhY3V0ZTtyZW4mZWFjdXRlO2hvIG0mb2FjdXRlO2R1JzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9iYXNpY19saW5rJ10gPSAnUHJlcG4mdWFjdXRlO8WlIGRvIGplZG5vZHVjaCZlYWN1dGU7aG8gbSZvYWN1dGU7ZHUnOwokbGFuZ1sndGl0bGVfZmlsZV9yb290J10gPSAnRGlyZWN0b3J5IHRvIHNhdmUgZmlsZSBpbic7CiRsYW5nWyd0aXRsZV9maWxlX3Jvb3RfaGVscCddID0gJ1RoaXMgbmVlZHMgdG8gYmUgYSBkaXJlY3RvcnkgdGhhdCB5b3VyIHdlYiBzZXJ2ZXIgaGFzIHBlcm1pc3Npb25zIHRvIHdyaXRlIGluLjxiciAvPkNobW9kIGl0IDc3NyBpZiB5b3UgaGF2ZSBwcm9ibGVtcy9kb3VidHMuPGJyIC8+QWxzbywgY2hlY2sgdG8gc2VlIHRoYXQgeW91IGRvIG5vdCBoYXZlIFBIUCBkaXJlY3RvcnkgcmVzdHJpY3Rpb25zLic7CiRsYW5nWyd0aXRsZV9uZXdsaW5lX3JlcGxhY2VtZW50J10gPSAnTmV3bGluZS9DYXJyaWFnZSBSZXR1cm4gcmVwbGFjZW1lbnQgY2hhcmFjdGVyJzsKJGxhbmdbJ3RpdGxlX25ld2xpbmVfcmVwbGFjZW1lbnRfaGVscCddID0gJ0xlYXZlIGJsYW5rIHRvIGFsbG93IG5ld2xpbmVzIGFuZCBjYXJyaWFnZSByZXR1cm5zIGluIG91dHB1dCc7CiRsYW5nWyd0aXRsZV9zZW5kX3VzZXJjb3B5J10gPSAnU2VuZCBVc2VyIGEgQ29weSBvZiBTdWJtaXNzaW9uPyc7CiRsYW5nWyd0aXRsZV9zZW5kX3VzZXJjb3B5X2xhYmVsJ10gPSAnTGFiZWwgZm9yIENoZWNrYm94IChpZiB1c2VyIGNob2ljZSknOwokbGFuZ1sndGl0bGVfc2VuZF9tZV9hX2NvcHknXSA9ICdTZW5kIG1lIGEgY29weSBvZiBmb3JtJzsKJGxhbmdbJ3RpdGxlX2FsbG93X3N1YmplY3Rfb3ZlcnJpZGUnXSA9ICdBbGxvdyBzdWJqZWN0IHRvIGJlIG92ZXJyaWRkZW4/JzsKJGxhbmdbJ3RpdGxlX2FsbG93X3N1YmplY3Rfb3ZlcnJpZGVfbG9uZyddID0gJ0FsbG93ICYjMDM5O0VtYWlsICZxdW90O1N1YmplY3QmcXVvdDsgRmllbGRzJiMwMzk7IHRvIG92ZXJyaWRlIHRoZSBzdWJqZWN0IHNwZWNpZmllZCBpbiB0aGUgcHVsbGRvd24uJzsKJGxhbmdbJ29wdGlvbl9uZXZlciddID0gJ05ldmVyJzsKJGxhbmdbJ29wdGlvbl91c2VyX2Nob2ljZSddID0gJ0dpdmUgdXNlciBhIGNob2ljZSAoY2hlY2tib3gpJzsKJGxhbmdbJ29wdGlvbl9hbHdheXMnXSA9ICdBbHdheXMnOwokbGFuZ1snZXJyb3JfdXNlcnRhZ19kaXNwb3NpdGlvbiddID0gJ1VzZXIgZGVmaW5lZCB0YWcgcmV0dXJuZWQgYW4gZXJyb3InOwokbGFuZ1snZXJyb3JfY2F0YWxvZ2VyX21vZHVsZV9ub3RfYXZhaWxhYmxlJ10gPSAnPHN0cm9uZz5DYXRhbG9nZXIgbW9kdWxlIGRvZXMgbm90IHNlZW0gdG8gYmUgaW5zdGFsbGVkL2FjdGl2ZS48L3N0cm9uZz4nOwokbGFuZ1snd2FybmluZyddID0gJ1Vwb3pvcm5lbmllISc7CiRsYW5nWydkZWZhdWx0X3RlbXBsYXRlJ10gPSAnUHJlZG5hc3RhdmVuJmFhY3V0ZTsgJnNjYXJvbjthYmwmb2FjdXRlO25hJzsKJGxhbmdbJ3RhYmxlX2xlZnRfdGVtcGxhdGUnXSA9ICdUYWJ1xL5rYSwgcG9waXNvayBrIHBvbGkgdsS+YXZvJzsKJGxhbmdbJ3RhYmxlX3RvcF90ZW1wbGF0ZSddID0gJ1RhYnXEvmthLCBwb3Bpc29rIGsgcG/EvnUgbmFkJzsKJGxhbmdbJ2Zvcm1fdGVtcGxhdGVfbmFtZSddID0gJyZTY2Fyb247YWJsJm9hY3V0ZTtuYSB6ICVzJzsKJGxhbmdbJ3RlbXBsYXRlX2FyZV95b3Vfc3VyZSddID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBvdmVyd3JpdGUgeW91ciB0ZW1wbGF0ZSB3aXRoIHRoZSBzZWxlY3RlZCB0ZW1wbGF0ZT8gKEV2ZW4gaWYgeW91IHNheSBPSywgeW91IHdpbGwgc3RpbGwgbmVlZCB0byBzYXZlIHRoZSBjaGFuZ2UpJzsKJGxhbmdbJ3RpdGxlX2JhZF9mdW5jdGlvbiddID0gJ0Vycm9yIHdoZW4gY29tcHV0aW5nICZxdW90OyVzJnF1b3Q7Lic7CiRsYW5nWydub19yZWZlcnJlcl9pbmZvJ10gPSAnTm8gSFRUUF9SRUZFUkVSIGluZm8gYXZhaWxhYmxlIChwcm9iYWJseSBkdWUgdG8gdXNlIG9mIFVzZXIgRW1haWwgVmFsaWRhdGlvbiknOwokbGFuZ1sndmFsaWRhdGlvbl9wYXJhbV9lcnJvciddID0gJ1ZhbGlkYXRpb24gUGFyYW1ldGVyIEVycm9yLiBQbGVhc2UgbWFrZSBzdXJlIHlvdSBjb3B5IHRoZSBVUkwgZnJvbSB5b3VyIGVtYWlsIGNvcnJlY3RseSEnOwokbGFuZ1sndmFsaWRhdGlvbl9yZXNwb25zZV9lcnJvciddID0gJ1ZhbGlkYXRpb24gUmVwc29uc2UgRXJyb3IuIFBsZWFzZSBtYWtlIHN1cmUgeW91IGNvcHkgdGhlIFVSTCBmcm9tIHlvdXIgZW1haWwgY29ycmVjdGx5ISc7CiRsYW5nWyd2YWxpZGF0aW9uX25vX2ZpZWxkX2Vycm9yJ10gPSAnVmFsaWRhdGlvbiBSZXBzb25zZSBFcnJvci4gTm8gZW1haWwgdmFsaWRhdGlvbiBmaWVsZCBpbiB0aGlzIGZvcm0hJzsKJGxhbmdbJ3VwZ3JhZGUwM3RvMDQnXSA9ICdGb3JtIFRlbXBsYXRlIHdhcyB1cGRhdGVkIGF1dG9tYXRpY2FsbHkgYXMgcGFydCBvZiB0aGUgdmVyc2lvbiAwLjMgdG8gdmVyc2lvbiAwLjQgdXBncmFkZS4gWW91IG1heSBuZWVkIHRvIG1ha2Ugc29tZSBmaXhlcy4gSWYgeW91JiMwMzk7cmUgdXNpbmcgdGhlIGRlZmF1bHQgZm9ybSwgc2ltcGx5IHJlcGxhY2UgdGhpcyB0ZW1wbGF0ZSB3aXRoICZxdW90O2RlZmF1bHQmcXVvdDsgdXNpbmcgdGhlIHB1bGxkb3duIGFib3ZlLic7CiRsYW5nWydhZG1pbmRlc2MnXSA9ICdBZGQsIGVkaXQgYW5kIG1hbmFnZSBpbnRlcmFjdGl2ZSBGb3Jtcyc7CiRsYW5nWydvcGVyYXRvcnNfaGVscCddID0gJ0lmIHlvdSB1c2UgU3RyaW5nIGV2YWx1YXRpb24sIHRoZSBvbmx5IG9wZXJhdGlvbiBhdmFpbGFibGUgaXMgY29uY2F0ZW5hdGlvbiAoKyksIHdoaWxlIGlmIHlvdSB1c2UgTnVtYmVyIGV2YWx1YXRpb24geW91IGhhdmUgYmFzaWMsIHZlcnkgc2ltcGxlIG1hdGggKCwgKywgLSwgKiwgLywgKS4nOwokbGFuZ1snZGF0ZV9qYW51YXJ5J10gPSAnSmFudSZhYWN1dGU7cic7CiRsYW5nWydkYXRlX2ZlYnJ1YXJ5J10gPSAnRmVicnUmYWFjdXRlO3InOwokbGFuZ1snZGF0ZV9tYXJjaCddID0gJ01hcmVjJzsKJGxhbmdbJ2RhdGVfYXByaWwnXSA9ICdBcHImaWFjdXRlO2wnOwokbGFuZ1snZGF0ZV9tYXknXSA9ICdNJmFhY3V0ZTtqJzsKJGxhbmdbJ2RhdGVfanVuZSddID0gJ0omdWFjdXRlO24nOwokbGFuZ1snZGF0ZV9qdWx5J10gPSAnSiZ1YWN1dGU7bCc7CiRsYW5nWydkYXRlX2F1Z3VzdCddID0gJ0F1Z3VzdCc7CiRsYW5nWydkYXRlX3NlcHRlbWJlciddID0gJ1NlcHRlbWJlcic7CiRsYW5nWydkYXRlX29jdG9iZXInXSA9ICdPa3Qmb2FjdXRlO2Jlcic7CiRsYW5nWydkYXRlX25vdmVtYmVyJ10gPSAnTm92ZW1iZXInOwokbGFuZ1snZGF0ZV9kZWNlbWJlciddID0gJ0RlY2VtYmVyJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3InXSA9ICdQcmVwJmFhY3V0ZTvEjXRlISBOYXN0YWxhIGNoeWJhIHByaSBvZG9zaWVsYW4maWFjdXRlOyBmb3JtdWwmYWFjdXRlO3JhJzsKJGxhbmdbJ3N1Ym1pdF9lcnJvciddID0gJ0Zvcm1CdWlsZGVyIHN1Ym1pdCBlcnJvcjogJXMnOwokbGFuZ1sndXBsb2Fkc19lcnJvciddID0gJ0Vycm9yIGNvbW1pdHRpbmcgZmlsZSB0byB0aGUgdXBsb2FkcyBtb2R1bGU6ICVzJzsKJGxhbmdbJ25vdXBsb2Fkc19lcnJvciddID0gJ0NvdWxkIG5vdCBmaW5kIHRoZSB1cGxvYWRzIG1vZHVsZSc7CiRsYW5nWyd1cGxvYWRfYXR0YWNoX2Vycm9yJ10gPSAnVXBsb2FkL0F0dGFjaG1lbnQgZXJyb3Igb24gZmlsZSAlcyAodG1wX25hbWU6ICVzLCBvZiB0eXBlICVzKSc7CiRsYW5nWydzdWJtaXNzaW9uX2Vycm9yX2ZpbGVfbG9jayddID0gJ0Vycm9yLiBVbmFibGUgdG8gb2J0YWluIGxvY2sgZm9yIGZpbGUuJzsKJGxhbmdbJ3VuY2hlY2tlZF9ieV9kZWZhdWx0J10gPSAnUHJlZG5hc3RhdmVuJmVhY3V0ZTs6IG5lemEmc2Nhcm9uO2tydG51dCZlYWN1dGU7JzsKJGxhbmdbJ2NoZWNrZWRfYnlfZGVmYXVsdCddID0gJ1ByZWRuYXN0YXZlbiZlYWN1dGU7OiB6YSZzY2Fyb247a3JhdG51dCZlYWN1dGU7JzsKJGxhbmdbJ2VtYWlsX2RlZmF1bHRfdGVtcGxhdGUnXSA9ICdPZG9zbGllbGFuaWUgZm9ybXVsJmFhY3V0ZTtyYSc7CiRsYW5nWydlbWFpbF90ZW1wbGF0ZV9ub3Rfc2V0J10gPSAnPGJyLz5FLW1haWxvdiZhYWN1dGU7ICZzY2Fyb247YWJsJm9hY3V0ZTtuYSB6YXRpYcS+IG5lcG91xb5pdCZhYWN1dGU7JzsKJGxhbmdbJ21pc3NpbmdfY21zX21haWxlciddID0gJ0Zvcm1CdWlsZGVyOiBDYW5ub3QgZmluZCByZXF1aXJlZCBtb2R1bGUgQ01TTWFpbGVyISc7CiRsYW5nWyd1c2VyX2FwcHJvdmVkX3N1Ym1pc3Npb24nXSA9ICdVc2VyIGFwcHJvdmVkIHN1Ym1pc3Npb24gJXMgZnJvbSAlcyc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J10gPSAnRXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZCc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InXSA9ICdFdmVudCB0cmlnZ2VyZWQgaWYgdGhlcmUgaXMgYW4gZXJyb3Igd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1EaXNwbGF5J10gPSAnRXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIGRpc3BsYXllZCc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J10gPSAnPHA+RXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZC48L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gVGhlIGZvcm0gbmFtZSAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4NCjxsaT48ZW0+dmFsdWVfPG5hbWU+PC9lbT4gLSBTdXBwbHkgYSBkZWZhdWx0IHZhbHVlIHRvIGEgZmllbGQgd2l0aCB0aGUgc3BlY2lmaWVkIG5hbWUuPC9saT4NCjwvdWw+ICc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InXSA9ICc8cD5FdmVudCB0cmlnZ2VyZWQgaWYgdGhlcmUgaXMgYW4gZXJyb3Igd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIFRoZSBmb3JtIG5hbWUgKHN0cmluZyk8L2xpPg0KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBUaGUgaW50ZXJuYWwgZm9ybSBpZCAoaW50KTwvbGk+DQo8bGk+PGVtPmVycm9yPC9lbT4gLSBBIGxpc3Qgb2YgYWxsIGtub3duIGVycm9ycyAoc3RyaW5nKTwvbGk+DQo8L3VsPiAnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXSA9ICc8cD5FdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgZGlzcGxheWVkPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIFRoZSBmb3JtIG5hbWUgKHN0cmluZyk8L2xpPg0KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBUaGUgaW50ZXJuYWwgZm9ybSBpZCAoaW50KTwvbGk+DQo8L3VsPiAnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX3Jlc3BvbnNlX2lkJ10gPSAnUmVzcG9uc2UgSUQuIFVzZWQgYnkgRm9ybUJyb3dzZXInOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX3Bhc3NlZF9mcm9tX3RhZyddID0gJ0RlZmF1bHQgZmllbGQgdmFsdWVzOyBzZWUgbW9kdWxlIGhlbHAnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2ZpZWxkX2lkJ10gPSAnRmllbGQgSUQgZm9yIGludGVybmFsIG9wZXJhdGlvbnMnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2Zvcm1fbmFtZSddID0gJ04mYWFjdXRlO3pvdiBmb3JtdWwmYWFjdXRlO3JhJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19mb3JtX2lkJ10gPSAnRm9ybSBJRCBmb3IgaW50ZXJuYWwgb3BlcmF0aW9ucyc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZ2VuZXJhbCddID0gJ0dlbmVyYWwgcGFyYW1ldGVycyBmb3IgaW50ZXJuYWwgb3BlcmF0aW9ucyc7CiRsYW5nWyd0ZW1wbGF0ZV92YXJpYWJsZV9oZWxwJ10gPSAnPGgzPkZvcm0gVGVtcGxhdGUgVmFyaWFibGVzPC9oMz4NCjxwPllvdSBjYW4gZWRpdCBpdCB0byBtYWtlIHlvdXIgZm9ybSBsYXlvdXQgbG9vayBhbnkgd2F5IHlvdSYjMDM5O2QgbGlrZS4NCiAgIFRvIG1ha2UgdGhlIGZvcm0gd29yaywgeW91JiMwMzk7bGwgbmVlZCB0byBhbHdheXMgaW5jbHVkZSB0aGUgeyRmYl9oaWRkZW59IGFuZCB7JHN1Ym1pdH0NCiAgIHRhZ3MuPC9wPg0KDQo8cD5Zb3UgY2FuIGFjY2VzcyB5b3VyIGZvcm0gZmllbGRzIGVpdGhlciB1c2luZyB0aGUgJGZpZWxkcyBhcnJheSBvciBieSBkaXJlY3RseSBhY2Nlc3NpbmcgZmllbGRzIGJ5IHRoZWlyIG5hbWVzIChlLmcuLCB7JG15ZmllbGQtPmlucHV0fSApPC9wPg0KDQoNCjxwPkVhY2ggZmllbGQgaGFzIHRoZSBmb2xsb3dpbmcgYXR0cmlidXRlczo8L3A+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+DQo8UD5JbnN0YWxsIGl0LCBhbmQgcG9rZSBhcm91bmQgdGhlIG1lbnVzLiBQbGF5IHdpdGggaXQuIFRyeSBjcmVhdGluZyBmb3JtcywgYW5kIGFkZGluZyB0aGVtIHRvIHlvdXIgY29udGVudC4NCklmIHlvdSBnZXQgc3R1Y2ssIGNoYXQgd2l0aCBtZSBvbiB0aGUgI2NtcyBJUkMgY2hhbm5lbCwgcG9zdCB0byB0aGUgZm9ydW0sIHNlbmQgbWUgZW1haWwsIG9yLCBpZiB5b3UmIzAzOTtyZQ0KcmVhbGx5IGRlc3BlcmF0ZSwgdHJ5IHJlYWRpbmcgdGhlIGluc3RydWN0aW9ucyBvbiB0aGUgcmVzdCBvZiB0aGlzIHBhZ2UuPC9QPg0KDQo8aDM+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+UHVsbGRvd24uIFRoaXMgaXMgYSBzdGFuZGFyZCBwdWxsZG93biBtZW51LiBJdCYjMDM5O3MgcmVhbGx5IGNvbmNlcHR1YWxseSB0aGUgc2FtZSB0aGluZyBhcyBhIHJhZGlvIGJ1dHRvbg0KZ3JvdXAsIGJ1dCBpcyBiZXR0ZXIgd2hlbiB0aGVyZSBhcmUgYSBsYXJnZSBudW1iZXIgb2Ygb3B0aW9ucy48L2xpPg0KPGxpPk11bHRpc2VsZWN0LiBUaGlzIGlzIGEgbXVsdGktc2VsZWN0IGZpZWxkLiBJdCYjMDM5O3MgcmVhbGx5IGNvbmNlcHR1YWxseSB0aGUgc2FtZSB0aGluZyBhcyBhIGNoZWNrYm94IGJ1dHRvbg0KZ3JvdXAsIGJ1dCBpcyBiZXR0ZXIgd2hlbiB0aGVyZSBhcmUgYSBsYXJnZSBudW1iZXIgb2Ygb3B0aW9ucywgYXMgeW91IGNhbiBsaW1pdCB0aGUgbnVtYmVyIGRpc3BsYXllZCBvbiB0aGUgc2NyZWVuIGF0IGFueSBvbmUgdGltZS48L2xpPg0KPGxpPlN0YXRlLiBUaGlzIGlzIGEgcHVsbGRvd24gbGlzdGluZyB0aGUgU3RhdGVzIG9mIHRoZSBVLlMuPC9saT4NCjxsaT5DYW5hZGlhbiBQcm92aW5jZS4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIENhbmFkaWFuIFByb3ZpbmNlcyAoQ29udHJpYnV0ZWQgYnkgTm9lbCBNY0dyYW4uIFRoYW5rcyEpPC9saT4NCjxsaT5Db3VudHJpZXMuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBDb3VudHJpZXMgb2YgdGhlIHdvcmxkIChhcyBvZiBKdWx5IDIwMDUpLjwvbGk+DQo8bGk+RGF0ZSBQaWNrZXIuIFRoaXMgaXMgYSB0cmlwbGUgcHVsbGRvd24gYWxsb3dpbmcgdGhlIHVzZXIgdG8gc2VsZWN0IGEgZGF0ZS48L2xpPg0KPGxpPlRpbWUgUGlja2VyLiBUaGlzIGlzIGEgc2V0IG9mIHB1bGxkb3ducyBhbGxvd2luZyB0aGUgdXNlciB0byBzZWxlY3QgYSB0aW1lICh1c2luZyAxMiBvciAyNCBob3VyIGNsb2NrKS48L2xpPg0KPGxpPkZpbGUgVXBsb2FkLiBUaGlzIGlzIGEgZmlsZSB1cGxvYWQgZmllbGQuPC9saT4NCjxsaT5MaW5rIChVc2VyIEVudGVyZWQpLiBUaGlzIGNyZWF0ZXMgYSBkb3VibGUgaW5wdXQgZmllbGQgZm9yIGdldHRpbmcgYSBsaW5rIFVSTCBhbmQgbGluayB0aXRsZS48L2xpPg0KPGxpPlRleHQgRmllbGQgKE11bHRpcGxlKS4gVGhpcyBmaWVsZCBjcmVhdGVzIG9uZSBvciBtb3JlIHRleHQgaW5wdXRzIHdpdGggYWRkIGFuZCBkZWxldGUgYnV0dG9ucywgZWZmZWN0aXZlbHkgZ2l2aW5nIHRoZSBlbmQgdXNlciBhIHdheSBvZiBjcmVhdGluZyB2YXJpYWJsZS1sZW5ndGggbGlzdHMuPC9saT4NCjwvdWw+PC9saT4NCg0KPGxpPkVtYWlsLXNwZWNpZmljIElucHV0cw0KPHVsPjxsaT5FbWFpbCBGcm9tIEFkZHJlc3MgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgdGhlaXIgZW1haWwgYWRkcmVzcy4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIGFkZHJlc3MgaW4gdGhlICZxdW90O0Zyb20mcXVvdDsgZmllbGQuPC9saT4NCjxsaT5FbWFpbCBGcm9tIE5hbWUgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgdGhlaXIgbmFtZS4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIG5hbWUgaW4gdGhlICZxdW90O0Zyb20mcXVvdDsgZmllbGQuPC9saT4NCjxsaT5FbWFpbCBTdWJqZWN0IEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIGEgc3ViamVjdCBmb3IgdGhlaXIgZW1haWwuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBpbiB0aGUgJnF1b3Q7U3ViamVjdCZxdW90OyBmaWVsZC4gVGhpcyBtYXkgY2F1c2UgdHJvdWJsZSB3aXRoIGNlcnRhaW4gZGlzcG9zaXRpb25zIHRoYXQgd2FudCB0byBjb250cm9sIHRoZSBFbWFpbCBTdWJqZWN0LCBzbyB1c2UgaXQgd2l0aCBjYXV0aW9uLjwvbGk+DQo8L3VsPjwvbGk+DQoNCjxsaT5EaXNwbGF5IENvbnRyb2wgRmllbGRzPHVsPg0KPGxpPi1QYWdlIEJyZWFrLiBUaGlzIGFsbG93cyB5b3UgdG8gc3BsaXQgeW91ciBmZWVkYmFjayBmb3JtIGludG8gbXVsdGlwbGUgcGFnZXMuIEVhY2ggcGFnZSBpcw0KaW5kZXBlbmRlbnRseSB2YWxpZGF0ZWQuIFRoaXMgaXMgZ29vZCBmb3IgYXBwbGljYXRpb25zIGxpa2Ugb25saW5lIHN1cnZleXMuPC9saT4NCjxsaT4tRmllbGRzZXQgU3RhcnQuIENvbWJpbmVkIHdpdGggRmllbGRzZXQgRW5kLCB0aGlzIGFsbG93cyB5b3UgdG8gZ3JvdXAgdmFyaW91cyBmaWVsZHMgd2l0aGluIHlvdXIgZm9ybS4gVXNlIHRoaXMgdG8gc3RhcnQgYSBnaXZlbiBncm91cGluZy48L2xpPg0KPGxpPi1GaWVsZHNldCBFbmQuIENvbWJpbmVkIHdpdGggRmllbGRzZXQgU3RhcnQsIHRoaXMgYWxsb3dzIHlvdSB0byBncm91cCB2YXJpb3VzIGZpZWxkcyB3aXRoaW4geW91ciBmb3JtLiBVc2UgdGhpcyB0byBlbmQgYSBnaXZlbiBncm91cGluZy48L2xpPg0KPGxpPi1IaWRkZW4gRmllbGQuIFRoaXMgYWxsb3dzIHlvdSB0byBlbWJlZCBhIGhpZGRlbiBmaWVsZCBpbiB5b3VyIGZvcm0uPC9saT4NCjxsaT4tU3RhdGljIFRleHQuIFRoaXMgYWxsb3dzIHlvdSB0byBwdXQgdGV4dCBvciBhIGxhYmVsIGluIHRoZSBtaWRkbGUgb2YgeW91ciBmb3JtLiBUaGlzIGlzIHVzZWZ1bCBmb3IgZ2l2aW5nIGFkZGl0aW9uYWwgaGVscCB0ZXh0LCBlc3BlY2lhbGx5IGlmIHlvdSYjMDM5O3JlIG5vdCB1c2luZyBhIEN1c3RvbSBUZW1wbGF0ZSB0byByZW5kZXIgeW91ciBmb3JtLjwvbGk+DQo8bGk+LVN0YXRpYyBMaW5rLiBUaGlzIGFsbG93cyB5b3UgdG8gcHV0IGEgbGluayB0byBhIGdpdmVuIHBhZ2UgaW50byB5b3VyIGZvcm0uIE9wdGlvbmFsbHksIHlvdSBjYW4gaGF2ZSBpdCBhdXRvcG9wdWxhdGUgd2l0aCB0aGUgcGFnZSB3aGVyZSB0aGUgZm9ybSBpcyBlbWJlZGRlZCAodXNlZnVsIGlmIHlvdSYjMDM5O3JlIHNlbmRpbmcgcmVzdWx0cyB2aWEgZW1haWwpLjwvbGk+DQo8bGk+LUNvbXB1dGVkIEZpZWxkLiBUaGlzIGFsbG93cyB5b3UgdG8gZW1iZWQgYSBjb21wdXRlZCBmaWVsZCBpbiB5b3VyIGZvcm0uIEl0IGlzIG5vdCB2aXNpYmxlIHRvIHRoZSB1c2VyIHVudGlsIGFmdGVyIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZC4gSXQgYWxsb3dzIHlvdSB0byBkbyBzaW1wbGUgYXJpdGhtZXRpYyBvciBzdHJpbmcgY29uY2F0ZW5hdGlvbi48L2xpPg0KPGxpPi1VbmlxdWUgSW50ZWdlciAoU2VyaWFsKS4gVGhpcyBpcyBhbiBpbnRlZ2VyIHRoYXQgaW5jcmVhc2VzIGV2ZXJ5IHRpbWUgc29tZW9uZSBoaXRzIHlvdXIgZm9ybS4gWW91ciByZXN1bHRzIG1heSBub3QgYmUgc2VxdWVudGlhbCwgYnV0IHRoZXkgd2lsbCBpbmNyZWFzZSBtb25vdG9uaWNhbGx5LjwvbGk+DQo8L3VsPjwvbGk+DQoNCjxsaT5Gb3JtIEhhbmRsaW5nIElucHV0cyAoRGlzcG9zaXRpb25zKQ0KPHVsPjxsaT4qQ2FsbCBhIFVzZXIgRGVmaW5lZCBUYWcgV2l0aCB0aGUgRm9ybSBSZXN1bHRzLiBUaGlzIHN1Ym1pdHMgYWxsIHRoZSBmb3JtIHJlc3VsdHMgdG8gdGhlIFVzZXItRGVmaW5lZCBUYWcgeW91IHNwZWNpZnkuIFRoZSBVRFQgY2FuIGhhbmRsZSB0aGUgcmVzdWx0cyBob3dldmVyIGl0IHdhbnRzLiBWYWx1ZXMgYXJlIHBhc3NlZCBhcyAkcGFyYW1bJiMwMzk7ZmllbGRfbmFtZSYjMDM5O10uPC9saT4NCjxsaT4qRW1haWwgUmVzdWx0cyBCYXNlZCBvbiBQdWxsZG93bi4gVGhpcyBpcyB1c2VmdWwgZm9yIHdlYiBzaXRlcyB3aGVyZSBjb21tZW50cyBnZXQgcm91dGVkIGJhc2VkIG9uIHRoZWlyIHN1YmplY3QgbWF0dGVyLCBlLmcuLCBidWdzIGdldCBzZW50IHRvIG9uZSBwZXJzb24sIG1hcmtldGluZyBxdWVzdGlvbnMgdG8gYW5vdGhlciBwZXJzb24sIHNhbGVzIHJlcXVlc3RzIHRvIHNvbWVvbmUgZWxzZSwgZXRjLiBUaGUgcHVsbGRvd24gaXMgcG9wdWxhdGVkIHdpdGggdGhlIHN1YmplY3RzLCBhbmQgZWFjaCBnZXRzIGRpcmVjdGVkIHRvIGEgc3BlY2lmaWMgZW1haWwgYWRkcmVzcy4gWW91IHNldCB1cCB0aGVzZSBtYXBwaW5ncyBpbiB0aGUgd2hlbiB5b3UgY3JlYXRlIG9yIGVkaXQgYSBmaWVsZCBvZiB0aGlzIHR5cGUuIElmIHlvdSB1c2Ugb25lIG9mIHRoZXNlICZxdW90O0RpcmVjdG9yJnF1b3Q7IHB1bGxkb3ducywgdGhlIHVzZXIgbXVzdCBtYWtlIGEgc2VsZWN0aW9uIGluIG9yZGVyIHRvIHN1Ym1pdCB0aGUNCmZvcm0uIFRoaXMgaW5wdXQgaXMgcGFydCBvZiB0aGUgZm9ybSB0aGUgdXNlciBzZWVzLCBhbHRob3VnaCB0aGUgZW1haWwgYWRkcmVzc2VzIGFyZSBub3QgbWFkZSB2aXNpYmxlIG5vcg0KYXJlIHRoZXkgZW1iZWRkZWQgaW4gdGhlIEhUTUwuPC9saT4NCjxsaT4qRW1haWwgUmVzdWx0cyB0byBzZXQgQWRkcmVzcyhlcykuIFRoaXMgc2ltcGx5IHNlbmRzIHRoZSBmb3JtIHJlc3VsdHMgdG8gb25lIG9yIG1vcmUgZW1haWwgYWRkcmVzc2VzIHRoYXQgeW91IGVudGVyIHdoZW4geW91IGNyZWF0ZSBvciBlZGl0IHRoaXMgdHlwZSBvZiBmaWVsZC4gVGhpcyBmaWVsZCBhbmQgaXRzIG5hbWUgYXJlIG5vdCB2aXNpYmxlIGluIHRoZQ0KZm9ybSB0aGF0IHRoZSB1c2VyIHNlZXMuIFRoZSBlbWFpbCBhZGRyZXNzZXMgYXJlIG5vdCBtYWRlIHZpc2libGUgbm9yDQphcmUgdGhleSBlbWJlZGRlZCBpbiB0aGUgSFRNTC48L2xpPg0KPGxpPipFbWFpbCB0byBVc2VyLVN1cHBsaWVkIEFkZHJlc3MuIFRoaXMgcHV0cyBhbiBpbnB1dCBmaWVsZCBpbiB0aGUgZm9ybSBmb3IgdGhlIHVzZXIgdG8gcG9wdWxhdGUgd2l0aCBhbiBlbWFpbCBhZGRyZXNzLiBUaGUgZm9ybSByZXN1bHRzIGdldCBzZW50IHRvIHRoYXQgYWRkcmVzcy4gQmV3YXJlIG9mIFNwYW0gYWJ1c2UhIEFjdGl2ZSB0aGUgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcyBpbiB0aGUgRm9ybUJ1aWxkZXIgY29uZmlndXJhdGlvbiBzY3JlZW4uPC9saT4NCjxsaT4qU3RvcmUgUmVzdWx0cyBpbiBEYXRhYmFzZS4gVGhpcyB3aWxsIHN0b3JlIHRoZSBmb3JtIGNvbnRlbnRzIGluIGFuIGludGVybmFsIGRhdGFiYXNlLiBZb3Ugd2lsbCBhbHdheXMgdXNlIHRoaXMgZGlzcG9zaXRpb24gaWYgeW91IHVzZSB0aGUgZm9ybSB3aXRoIEZvcm1Ccm93c2VyLjwvbGk+DQo8bGk+KlJlZGlyZWN0IHRvIFBhZ2UgQmFzZWQgb24gUHVsbGRvd24uIFRoaXMgYWxsb3dzIHlvdSB0byByZWRpcmVjdCB0aGUgZm9ybSB0byBhIGRpZmZlcmVudCBzaXRlIHBhZ2UgZGVwZW5kaW5nIG9uIGl0cyB2YWx1ZS4gSWYgeW91IGhhdmUgbXVsdGlwbGUgZGlzcG9zaXRpb25zLCBtYWtlIHN1cmUgdGhpcyBpcyB1c2VkIGxhc3QuPC9saT4NCjxsaT4qVmFsaWRhdGUgdmlhIEVtYWlsLiBUaGlzIGlzIGEgc3RyYW5nZSBhbmQgcG93ZXJmdWwgZmllbGQuIEl0IHByb3ZpZGVzIHRoZSB1c2VyIGEgbWFuZGF0b3J5IGlucHV0IGZvciB0aGVpciBlbWFpbCBhZGRyZXNzLiBPbmNlIHRoZXkgc3VibWl0IHRoZWlyIGZvcm0sIHRoZSBzdGFuZGFyZCBmb3JtIGRpc3Bvc2l0aW9ucyBhcmUgbm90IHBlcmZvcm1lZCAtLSByYXRoZXIsIGl0IHNlbmQgdGhlIHVzZXIgYW4gZW1haWwgd2l0aCBhIHNwZWNpYWwgY29kZWQgbGluay4gSWYgdGhleSBjbGljayBvbiB0aGUgbGluaywgdGhlIG90aGVyIGZvcm0gaXMgY29uc2lkZXJlZCAmcXVvdDthcHByb3ZlZCwmcXVvdDsgYW5kIHRoZSBvdGhlciBkaXNwb3NpdGlvbnMgYXJlIGFsbCBwZXJmb3JtZWQuPC9saT4NCjxsaT4qV3JpdGUgUmVzdWx0cyB0byBGbGF0IEZpbGUuIFRoaXMgdGFrZXMgdGhlIGZvcm0gcmVzdWx0cyBhbmQgd3JpdGVzIHRoZW0gaW50byBhIHRleHQgZmlsZS4gWW91IG1heQ0Kc2VsZWN0IHRoZSBuYW1lIG9mIHRoZSBmaWxlLCBhbmQgc2V0IGl0cyBmb3JtYXQuIFRoZXNlIGZpbGVzIGFyZSB3cml0dGVuIHRvIHRoZSAmcXVvdDtvdXRwdXQmcXVvdDsgZGlyZWN0b3J5IHVuZGVyIHRoZQ0KbW9kdWxlJiMwMzk7cyBpbnN0YWxsYXRpb24gZGlyZWN0b3J5LCBhc3N1bWluZyB0aGUgd2ViIHNlcnZlciBoYXMgcGVybWlzc2lvbiB0byB3cml0ZSB0aGVyZS48L2xpPg0KPGxpPipTYXZlIFJlc3VsdHMgdG8gRmlsZSBCYXNlZCBvbiBQdWxsZG93bi4gTGlrZSB0aGUgRmxhdCBGaWxlIGRpc3Bvc2l0aW9uLCBleGNlcHQgdGhlIHZhbHVlIG9mIGEgcHVsbC1kb3duIGRldGVybWluZXMgd2hpY2ggZmlsZSByZXN1bHRzIGdldCB3cml0dGVuIHRvLjwvbGk+DQo8bGk+KlNhdmUgUmVzdWx0cyB0byBGaWxlKHMpIEJhc2VkIG9uIE11bHRpcGxlIFNlbGVjdGlvbnMuIExpa2UgdGhlIEZsYXQgRmlsZSBkaXNwb3NpdGlvbiwgZXhjZXB0IHRoZSB2YWx1ZShzKSBvZiBjaGVja2JveGVzICBkZXRlcm1pbmVzIHdoaWNoIGZpbGUocykgcmVzdWx0cyBnZXQgd3JpdHRlbiB0by48L2xpPg0KPGxpPipFbWFpbCB0byBDTVMgQWRtaW4gVXNlci4gUHJvdmlkZXMgYSBwdWxsLWRvd24gb2YgQ01TIEFkbWluIHVzZXJzLCBhbmQgZGlyZWN0cyB0aGUgcmVzdWx0cyBhcyBhbiBlbWFpbCB0byB0aGUgc2VsZWN0ZWQgYWRtaW4uPC9saT4NCjxsaT4qU3RvcmUgUmVzdWx0cyBmb3IgRm9ybUJyb3dzZXIgTW9kdWxlIHYuMy4gU3RvcmVzIHRoZSBmb3JtIHJlc3VsdHMgaW4gYW4gWE1MIHN0cnVjdHVyZSBhcyBhIHNpbmdsZSBkYXRhYmFzZSByZWNvcmQuIFRoaXMgd2lsbCBiZWNvbWUgdGhlIGludGVyZmFjZSB0byBGb3JtIEJyb3dzZXIgaW4gdGhlIG5leHQgcmVsZWFzZS48L2xpPg0KDQo8L3VsPjwvbGk+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+Rm9ybUJ1aWxkZXIgaXMgbm90IHlldCBpbnRlZ3JhdGVkIHdpdGggRnJvbnRFbmQgVXNlcnMuIEl0IHdpbGwgYmUuPC9saT4NCjxsaT5Gb3JtQnVpbGRlciBkb2VzIG5vdCB5ZXQgc3VwcG9ydCBwcmV0dHkgdXJscywgYWx0aG91Z2ggdGhhdCBzaG91bGRuJiMwMzk7dCBtYXR0ZXIgc2luY2UgdGhlIHVzZXIgc2lkZSBpcyBwcmV0dHkgc2ltcGxlLjwvbGk+DQo8bGk+RmlsZVVwbG9hZCBGaWVsZHMgbWF5IG5vdCB3b3JrIGNvcnJlY3RseSB3aXRoIG11bHRpcGFnZSBmb3Jtcy48L2xpPg0KPC91bD4NCg0KPGgzPlRyb3VibGVzaG9vdGluZzwvaDM+DQo8b2w+PGxpPiBGaXJzdCBzdGVwIGlzIHRvIGNoZWNrIHlvdSYjMDM5O3JlIHJ1bm5pbmcgQ01TIDEuMSBvciBsYXRlci48L2xpPg0KPGxpPiBTZWNvbmQgc3RlcCBpcyB0byByZWFkIGFuZCB1bmRlcnN0YW5kIHRoZSBjYXZlYXQgYWJvdXQgV1lTSVdZRyBlZGl0b3JzIHVwIGluIHRoZQ0Kc2VjdGlvbiA8ZW0+QWRkaW5nIGEgRm9ybSB0byBhIFBhZ2U8L2VtPi48L2xpPg0KPGxpPiBJZiB5b3UmIzAzOTtyZSBtaXNzaW5nIGZpZWxkcyBpbiBhbiBlbWFpbCB0aGF0IGdldHMgZ2VuZXJhdGVkLCBjaGVjayB0aGUgZGlzcG9zaXRpb24gZmllbGQmIzAzOTtzIHRlbXBsYXRlLCBhbmQgbWFrZSBzdXJlIHlvdSYjMDM5O3JlIHNwZWNpZnlpbmcgdGhlIG1pc3NpbmcgZmllbGRzLiBTZWVtcyBvYnZpb3VzLCBidXQgaXQmIzAzOTtzIGFuIGVhc3kgbWlzdGFrZSB0byBtYWtlLjwvbGk+DQo8bGk+VW5jaGVjayB0aGUgJnF1b3Q7SGlkZSBFcnJvcnMmcXVvdDsgY2hlY2tib3ggaW4gdGhlIGdsb2JhbCBvcHRpb25zLCBhbmQgc2VlIHdoYXQgbWVzc2FnZSBnZXRzIGRpc3BsYXllZCB3aGVuIHlvdSBzdWJtaXQgeW91ciBmb3JtLjwvbGk+DQo8bGk+IEp1c3QgbWVzcyBhcm91bmQgYW5kIHRyeSBjbGlja2luZyBvbiBsaW5rcyBhbmQgaWNvbnMgYW5kIHN0dWZmLiBTZWUgd2hhdCBoYXBwZW5zLjwvbGk+DQo8bGk+IExhc3QgcmVzcG9ydCBpcyB0byBlbWFpbCBtZSBvciBjYXRjaCBtZSBvbiBJUkMgYW5kIHdlIGNhbiBnbyBmcm9tIHRoZXJlLjwvbGk+DQo8L29sPiANCjxwPlRoaXMgaXMgbm8gbG9uZ2VyIGEgcGFydGljdWxhcmx5IGVhcmx5IHZlcnNpb24sIGJ1dCBpdCBpcyBwcm9iYWJseSBzdGlsbCBidWdneS4gV2hpbGUgSSYjMDM5O3ZlIGRvbmUgYWxsIEkgY2FuDQp0byBtYWtlIHN1cmUgbm8gZWdyZWdpb3VzIGJ1Z3MgaGF2ZSBjcmVwdCBpbiwgSSBoYXZlIHRvIGFkbWl0IHRoYXQgZHVyaW5nIGVhcmx5IHRlc3RpbmcsIHRoaXMgcHJvZ3JhbQ0KcmV2ZWFsZWQgc2V2ZW4gY29ja3JvYWNoZXMsIHR3byBlYXJ3aWdzLCBhIHNtYWxsIGZhbWlseSBvZiBhcGhpZHMsIGFuZCBhIHdhbGtpbmctc3RpY2sgaW5zZWN0LiBJdCBhbHNvDQphdGUgdGhlIG5laWdoYm9yJiMwMzk7cyBuYXN0eSBsaXR0bGUgeWFwIGRvZywgZm9yIHdoaWNoIEkgd2FzIGluYXBwcm9wcmlhdGVseSBncmF0ZWZ1bC48L3A+DQo8cD5UaGUgZmluYWwgcmVsZWFzZSB3aWxsIGluY2x1ZGUgYnVnIGZpeGVzLCBkb2N1bWVudGF0aW9uLCBhbmQgdW5jb25kaXRpb25hbCBsb3ZlLjwvcD4NCjxoMz5TdXBwb3J0PC9oMz4NCjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4NCjx1bD4NCjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlLCBGQVFzLCBvciB0byBmaWxlIGEgQnVnIFJlcG9ydCwgcGxlYXNlIHZpc2l0IHRoZSBDTVMgTWFkZSBTaW1wbGUgIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmciPkRldmVsb3BlciBGb3JnZTwvYT4uPC9saT4NCjxsaT5UbyBvYnRhaW4gY29tbWVyY2lhbCBzdXBwb3J0LCBwbGVhc2Ugc2VuZCBhbiBlbWFpbCB0byB0aGUgYXV0aG9yIGF0IDxhIGhyZWY9Im1haWx0bzpzamdAY21zbW9kdWxlcy5jb20iPjxzamdAY21zbW9kdWxlcy5jb20+PC9hPi48L2xpPg0KPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnIj5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi48L2xpPg0KPGxpPlRoZSBhdXRob3IgY2FuIG9mdGVuIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXMiPkNNUyBJUkMgQ2hhbm5lbDwvYT4uPC9saT4NCjxsaT5MYXN0bHksIHlvdSBtYXkgaGF2ZSBzb21lIHN1Y2Nlc3MgZW1haWxpbmcgdGhlIGF1dGhvciBkaXJlY3RseSBhbmQgZ3JvdmVsbGluZyBmb3IgZnJlZSBzdXBwb3J0LjwvbGk+DQo8L3VsPg0KPHA+S2VlcCBpbiBtaW5kIHRoYXQgdGhlIGF1dGhvciBoYXMgcHV0IGh1bmRyZWRzIG9mIGhvdXJzIGludG8gdGhlIGRldmVsb3BtZW50IG9mIHRoaXMgbW9kdWxlLiBQbGVhc2UgdGFrZSB0aGUgdGltZSB0byByZWFkIHRoZSBkb2N1bWVudGF0aW9uIGJlZm9yZSBzZW5kaW5nIHF1ZXN0aW9ucy4gRWl0aGVyIHRoYXQsIG9yIHdyaXRlIHlvdXIgcXVlc3Rpb25zIG9uIGZpbmFuY2lhbGx5IG5lZ290aWFibGUgaW5zdHJ1bWVudHMgKGkuZS4sIGNhc2gpLjwvcD4NCjxwPkFzIHBlciB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkIGFzLWlzLiBQbGVhc2UgcmVhZCB0aGUgdGV4dA0Kb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuPC9wPg0KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+DQo8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMDgsIFNhbXVlbCBHb2xkc3RlaW4gPGEgaHJlZj0ibWFpbHRvOnNqZ0BjbXNtb2R1bGVzLmNvbSI+PHNqZ0BjbXNtb2R1bGVzLmNvbT48L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+DQo8cD5UaGlzIG1vZHVsZSBoYXMgYmVlbiByZWxlYXNlZCB1bmRlciB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5HTlUgUHVibGljIExpY2Vuc2U8L2E+LiBZb3UgbXVzdCBhZ3JlZSB0byB0aGlzIGxpY2Vuc2UgYmVmb3JlIHVzaW5nIHRoZSBtb2R1bGUuPC9wPic7CiRsYW5nWyd1dG1hJ10gPSAnMTU2ODYxMzUzLjI1MDczNzQwMzE4OTk0NjIwMDAuMTIxNDIzMzEzMS4xMjQzODQ5NDI1LjEyNDM4NzMxMTMuMjknOwokbGFuZ1sndXRteiddID0gJzE1Njg2MTM1My4xMjQzODQ5NDI1LjI4LjEwLnV0bWNzcj1kZXYuY21zbWFkZXNpbXBsZS5vcmd8dXRtY2NuPShyZWZlcnJhbCl8dXRtY21kPXJlZmVycmFsfHV0bWNjdD0vJzsKJGxhbmdbJ3V0bWInXSA9ICcxNTY4NjEzNTMnOwokbGFuZ1sndXRtYyddID0gJzE1Njg2MTM1Myc7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lang/ext/sl_SI.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0Zvcm0gQnVpbGRlcic7CiRsYW5nWydmaWVsZF90eXBlXyddID0gJ0ZpZWxkIFR5cGUgTm90IFNldCc7CiRsYW5nWydmaWVsZF90eXBlX0NhdGFsb2dlckl0ZW1zRmllbGQnXSA9ICdTZWxlY3Qgb25lIChvciBtb3JlKSBjYXRhbG9nZXIgaXRlbXMnOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldEVuZCddID0gJy1GaWVsZHNldCBFbmQnOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldFN0YXJ0J10gPSAnLUZpZWxkc2V0IFN0YXJ0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkJ10gPSAnVGV4dCBJbnB1dCc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRGaWVsZEV4cGFuZGFibGUnXSA9ICdUZXh0IElucHV0IChNdWx0aXBsZSknOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0QXJlYUZpZWxkJ10gPSAnVGV4dCBBcmVhJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hGaWVsZCddID0gJ0NoZWNrIEJveCc7CiRsYW5nWydmaWVsZF90eXBlX0NoZWNrYm94R3JvdXBGaWVsZCddID0gJ0NoZWNrIEJveCBHcm91cCc7CiRsYW5nWydmaWVsZF90eXBlX1B1bGxkb3duRmllbGQnXSA9ICdQdWxsZG93bic7CiRsYW5nWydmaWVsZF90eXBlX011bHRpc2VsZWN0RmllbGQnXSA9ICdNdWx0aXNlbGVjdCc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRlUGlja2VyRmllbGQnXSA9ICdVLlMuIFN0YXRlIFBpY2tlcic7CiRsYW5nWydmaWVsZF90eXBlX1Byb3ZpbmNlUGlja2VyRmllbGQnXSA9ICdDYW5hZGlhbiBQcm92aW5jZSBQaWNrZXInOwokbGFuZ1snZmllbGRfdHlwZV9Db3VudHJ5UGlja2VyRmllbGQnXSA9ICdDb3VudHJ5IFBpY2tlcic7CiRsYW5nWydmaWVsZF90eXBlX0RhdGVQaWNrZXJGaWVsZCddID0gJ0RhdGUgUGlja2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGltZVBpY2tlckZpZWxkJ10gPSAnVGltZSBQaWNrZXInOwokbGFuZ1snZmllbGRfdHlwZV9SYWRpb0dyb3VwRmllbGQnXSA9ICdSYWRpbyBCdXR0b24gR3JvdXAnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRpcmVjdG9yJ10gPSAnKkVtYWlsIFJlc3VsdHMgQmFzZWQgb24gUHVsbGRvd24nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZpbGVEaXJlY3RvciddID0gJypTYXZlIFJlc3VsdHMgdG8gRmlsZSBCYXNlZCBvbiBQdWxsZG93bic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uTXVsdGlzZWxlY3RGaWxlRGlyZWN0b3InXSA9ICcqU2F2ZSBSZXN1bHRzIHRvIEZpbGUocykgQmFzZWQgb24gTXVsdGlwbGUgU2VsZWN0aW9ucyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uUGFnZVJlZGlyZWN0b3InXSA9ICcqUmVkaXJlY3QgdG8gUGFnZSBCYXNlZCBvbiBQdWxsZG93bic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWwnXSA9ICcqRW1haWwgUmVzdWx0cyB0byBzZXQgQWRkcmVzcyhlcyknOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsQ29uZmlybWF0aW9uJ10gPSAnKlZhbGlkYXRlLXZpYS1FbWFpbCBBZGRyZXNzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Gcm9tRW1haWxBZGRyZXNzRmllbGQnXSA9ICcqRW1haWwgJnF1b3Q7RnJvbSBBZGRyZXNzJnF1b3Q7IEZpZWxkLCBhbmQgc2VuZCBjb3B5JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25GaWxlJ10gPSAnKldyaXRlIFJlc3VsdHMgdG8gRmxhdCBGaWxlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EYXRhYmFzZSddID0gJypTdG9yZSBSZXN1bHRzIGluIERhdGFiYXNlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Gb3JtQnJvd3NlciddID0gJypTdG9yZSBSZXN1bHRzIGZvciBGb3JtQnJvd3NlciBNb2R1bGUgdi4zJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Vc2VyVGFnJ10gPSAnKkNhbGwgQSBVc2VyIERlZmluZWQgVGFnIFdpdGggdGhlIEZvcm0gUmVzdWx0cyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGVsaXZlclRvRW1haWxBZGRyZXNzRmllbGQnXSA9ICcqRW1haWwgdG8gVXNlci1TdXBwbGllZCBFbWFpbCBBZGRyZXNzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbFNpdGVBZG1pbiddID0gJypFbWFpbCB0byBDTVMgQWRtaW4gVXNlcic7CiRsYW5nWydmaWVsZF90eXBlX1BhZ2VCcmVha0ZpZWxkJ10gPSAnLVBhZ2UgQnJlYWsnOwokbGFuZ1snZmllbGRfdHlwZV9GaWxlVXBsb2FkRmllbGQnXSA9ICdGaWxlIFVwbG9hZCc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbEFkZHJlc3NGaWVsZCddID0gJ0VtYWlsICZxdW90O0Zyb20gQWRkcmVzcyZxdW90OyBGaWVsZCc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbEFkZHJlc3NBZ2FpbkZpZWxkJ10gPSAnRW1haWwgJnF1b3Q7RnJvbSBBZGRyZXNzJnF1b3Q7IEFnYWluIEZpZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsTmFtZUZpZWxkJ10gPSAnRW1haWwgJnF1b3Q7RnJvbSBOYW1lJnF1b3Q7IEZpZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsU3ViamVjdEZpZWxkJ10gPSAnRW1haWwgJnF1b3Q7U3ViamVjdCZxdW90OyBGaWVsZCc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRpY1RleHRGaWVsZCddID0gJy1TdGF0aWMgVGV4dCc7CiRsYW5nWydmaWVsZF90eXBlX1N5c3RlbUxpbmtGaWVsZCddID0gJy1TdGF0aWMgTGluayc7CiRsYW5nWydmaWVsZF90eXBlX0xpbmtGaWVsZCddID0gJ0xpbmsgKFVzZXItZW50ZXJlZCknOwokbGFuZ1snZmllbGRfdHlwZV9IaWRkZW5GaWVsZCddID0gJy1IaWRkZW4gRmllbGQnOwokbGFuZ1snZmllbGRfdHlwZV9Db21wdXRlZEZpZWxkJ10gPSAnLUNvbXB1dGVkIEZpZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVW5pcXVlSW50ZWdlckZpZWxkJ10gPSAnLVVuaXF1ZSBJbnRlZ2VyIChTZXJpYWwpJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbm9uZSddID0gJ05vIFZhbGlkYXRpb24nOwokbGFuZ1sndmFsaWRhdGlvbl9udW1lcmljJ10gPSAnTnVtZXJpYyc7CiRsYW5nWyd2YWxpZGF0aW9uX2ludGVnZXInXSA9ICdJbnRlZ2VyJzsKJGxhbmdbJ3ZhbGlkYXRpb25fZW1haWxfYWRkcmVzcyddID0gJ0VtYWlsIEFkZHJlc3MnOwokbGFuZ1sndmFsaWRhdGlvbl91c3Bob25lJ10gPSAnUGhvbmUgTnVtYmVyIChVUyknOwokbGFuZ1sndmFsaWRhdGlvbl9tdXN0X2NoZWNrJ10gPSAnTXVzdCBCZSBDaGVja2VkJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbWF0Y2gnXSA9ICdNYXRjaCBSZWd1bGFyIEV4cHJlc3Npb24nOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9ub21hdGNoJ10gPSAnTmkgcHJhdmlsbm8gaXpwb2xuamVuJzsKJGxhbmdbJ3JlcXVpcmVkX2ZpZWxkX21pc3NpbmcnXSA9ICdBIHZhbHVlIHdhcyBub3Qgc3VwcGxpZWQgZm9yIGEgcmVxdWlyZWQgZmllbGQnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfdmFsdWUnXSA9ICdQcm9zaW1vLCBpenBvbG5pdGUgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfbnVtYmVyJ10gPSAnUHJvc2ltbywgdnBpJnNjYXJvbjtpdGUgJnNjYXJvbjt0ZXZpbGtvICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl92YWxpZCddID0gJ1Byb3NpbW8sIHZwaSZzY2Fyb247aXRlIHZlbGphdmVuIHphcGlzICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hbl9pbnRlZ2VyJ10gPSAnUHJvc2ltbywgdnBpJnNjYXJvbjtpdGUgJnNjYXJvbjt0ZXZpbGtvICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hbl9lbWFpbCddID0gJ1Byb3NpbW8sIHZwaSZzY2Fyb247aXRlIHZlbGphdmVuIEUtcG8mc2Nhcm9uO3RuaSBuYXNsb3YgdiBwb2xqdSAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydlbWFpbF9hZGRyZXNzX2RvZXNfbm90X21hdGNoJ10gPSAnRS1tYWlsIG5hc2xvdiBzZSBuZSB1amVtYSB6ICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX3Bob25lJ10gPSAnUHJvc2ltbywgdnBpJnNjYXJvbjtpdGUgdmVsamF2bm8gdGVsZWZvbnNrbyAmc2Nhcm9uO3Rldmlsa28gdiBwb2xqdSAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydub3RfdmFsaWRfZW1haWwnXSA9ICcmcXVvdDslcyZxdW90OyBuaSB2ZWxqYXZlbiBFLXBvJnNjYXJvbjt0bmkgbmFzbG92JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9ub19sb25nZXInXSA9ICdQbGVhc2UgZW50ZXIgYSB2YWx1ZSB0aGF0IGlzIG5vIGxvbmdlciB0aGFuICVzIGNoYXJhY3RlcnMnOwokbGFuZ1sndGl0bGVfbGlzdF9kZWxpbWl0ZXInXSA9ICdDaGFyYWN0ZXIgdG8gdXNlIGFzIGRlbGltaXRlciBpbiByZXN1bHRzIHRoYXQgcmV0dXJuIG1vcmUgdGhhbiBvbmUgdmFsdWUnOwokbGFuZ1sneW91X25lZWRfcGVybWlzc2lvbiddID0gJ1lvdSBuZWVkIHRoZSAmcXVvdDslcyZxdW90OyBwZXJtaXNzaW9uIHRvIHBlcmZvcm0gdGhhdCBvcGVyYXRpb24uJzsKJGxhbmdbJ2xhY2twZXJtaXNzaW9uJ10gPSAnU29ycnkhIFlvdSBkb24mIzAzOTt0IGhhdmUgYWRlcXVhdGUgcHJpdmlsZWdlcyB0byBhY2Nlc3MgdGhpcyBzZWN0aW9uLic7CiRsYW5nWydmaWVsZF9vcmRlcl91cGRhdGVkJ10gPSAnRmllbGQgb3JkZXIgdXBkYXRlZC4nOwokbGFuZ1snZm9ybV9kZWxldGVkJ10gPSAnRm9ybSBkZWxldGVkLic7CiRsYW5nWydmaWVsZF9kZWxldGVkJ10gPSAnRmllbGQgZGVsZXRlZC4nOwokbGFuZ1snY29uZmlndXJhdGlvbl91cGRhdGVkJ10gPSAnQ29uZmlndXJhdGlvbiBVcGRhdGVkLic7CiRsYW5nWyd5b3VfbXVzdF9jaGVjayddID0gJ1lvdSBtdXN0IGNoZWNrICZxdW90OyVzJnF1b3Q7IGluIG9yZGVyIHRvIGNvbnRpbnVlLic7CiRsYW5nWydtdXN0X3NwZWNpZnlfb25lX2Rlc3RpbmF0aW9uJ10gPSAnWW91IG5lZWQgdG8gc3BlY2lmeSBhdCBsZWFzdCBvbmUgZGVzdGluYXRpb24gYWRkcmVzcyEnOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9mb3JtJ10gPSAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGUgZm9ybSAlcz8nOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9maWVsZCddID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgdGhlIGZpZWxkICVzPyc7CiRsYW5nWydub3RpY2Vfc2VsZWN0X3R5cGUnXSA9ICdBZHZhbmNlZCBvcHRpb25zIGFyZSBub3QgYXZhaWxhYmxlIHVudGlsIHRoZSBmaWVsZCB0eXBlIGhhcyBiZWVuIHNldC4nOwokbGFuZ1snZmllbGRfbmFtZV9pbl91c2UnXSA9ICdUaGUgZmllbGQgbmFtZSAmcXVvdDslcyZxdW90OyBpcyBhbHJlYWR5IGluIHVzZS4gUGxlYXNlIHVzZSB1bmlxdWUgZmllbGQgbmFtZXMsIG9yIGRpc2FibGUgdW5pcXVlIGZpZWxkIG5hbWVzIGluIHRoZSBGb3JtIEJ1aWxkZXIgY29uZmlndXJhdGlvbi4nOwokbGFuZ1snZmllbGRfbm9fbmFtZSddID0gJ0ZpZWxkcyBtdXN0IGJlIG5hbWVkLCB1bmxlc3MgeW91IGRpc2FibGUgdGhpcyBpbiB0aGUgRm9ybSBCdWlsZGVyIGNvbmZpZ3VyYXRpb24uJzsKJGxhbmdbJ2Fub255bW91cyddID0gJ0Fub255bW91cyc7CiRsYW5nWydhYmJyZXZpYXRpb25fbGVuZ3RoJ10gPSAnTGVuOiAlcyc7CiRsYW5nWydib3hlcyddID0gJyVzIGJveGVzJzsKJGxhbmdbJ29wdGlvbnMnXSA9ICclcyBvcHRpb25zJzsKJGxhbmdbJ3RleHRfbGVuZ3RoJ10gPSAnJXMgY2hhcnMuJzsKJGxhbmdbJ29yZGVyJ10gPSAnT3JkZXInOwokbGFuZ1sndW5zcGVjaWZpZWQnXSA9ICdbdW5zcGVjaWZpZWRdJzsKJGxhbmdbJ2FkZGVkJ10gPSAnYWRkZWQnOwokbGFuZ1sndXBkYXRlZCddID0gJ3VwZGF0ZWQnOwokbGFuZ1snc29ydF9vcHRpb25zJ10gPSAnU29ydCBvcHRpb25zIG9uIG91dHB1dCc7CiRsYW5nWydzZWxlY3Rfb25lJ10gPSAnU2VsZWN0IE9uZSc7CiRsYW5nWydzZWxlY3RfdHlwZSddID0gJ1NlbGVjdCBUeXBlJzsKJGxhbmdbJ3RvJ10gPSAnVG8nOwokbGFuZ1sneWVzJ10gPSAnWWVzJzsKJGxhbmdbJ25vJ10gPSAnTm8nOwokbGFuZ1sncmVjaXBpZW50cyddID0gJ3JlY2lwaWVudHMnOwokbGFuZ1snZmlsZV9jb3VudCddID0gJyVzIHBvc3NpYmxlIGZpbGVzJzsKJGxhbmdbJ2Rlc3RpbmF0aW9uX2NvdW50J10gPSAnJXMgZGVzdGluYXRpb25zJzsKJGxhbmdbJ3NhdmUnXSA9ICdTYXZlJzsKJGxhbmdbJ2FkZCddID0gJ0FkZCc7CiRsYW5nWyd1cGRhdGUnXSA9ICdVcGRhdGUnOwokbGFuZ1snc2F2ZV9hbmRfY29udGludWUnXSA9ICdTYXZlIGFuZCBDb250aW51ZSBFZGl0aW5nJzsKJGxhbmdbJ2luZm9ybWF0aW9uJ10gPSAnSW5mb3JtYXRpb24nOwokbGFuZ1snYXV0b21hdGljJ10gPSAnQXV0b21hdGljJzsKJGxhbmdbJ2Zvcm1zJ10gPSAnRm9ybXMnOwokbGFuZ1snZm9ybSddID0gJ0Zvcm0gJXMnOwokbGFuZ1snY29uZmlndXJhdGlvbiddID0gJ0NvbmZpZ3VyYXRpb24nOwokbGFuZ1snZmllbGRfcmVxdWlyZW1lbnRfdXBkYXRlZCddID0gJ0ZpZWxkIHJlcXVpcmVkIHN0YXRlIHVwZGF0ZWQuJzsKJGxhbmdbJ21heGltdW1fc2l6ZSddID0gJ01heC4gU2l6ZSc7CiRsYW5nWydwZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ0V4dGVuc2lvbnMnOwokbGFuZ1sncGVybWl0dGVkX2ZpbGV0eXBlcyddID0gJ0FsbG93ZWQgZmlsZSB0eXBlcyc7CiRsYW5nWydmaWxlX3Rvb19sYXJnZSddID0gJ1VwbG9hZGVkIGZpbGUgaXMgdG9vIGxhcmdlISBNYXhpbXVtIHNpemUgaXM6JzsKJGxhbmdbJ2lsbGVnYWxfZmlsZV90eXBlJ10gPSAnVGhpcyB0eXBlIG9mIGZpbGUgbWF5IG5vdCBiZSB1cGxvYWRlZC4gUGxlYXNlIGNoZWNrIHRoYXQgdGhlIGV4dGVuc2lvbiBpcyBjb3JyZWN0Lic7CiRsYW5nWyd1cGxvYWQnXSA9ICdVcGxvYWQnOwokbGFuZ1snZm9ybV9pbXBvcnRlZCddID0gJ0Zvcm0gSW1wb3J0ZWQuJzsKJGxhbmdbJ2Zvcm1faW1wb3J0X2ZhaWxlZCddID0gJ0Zvcm0gaW1wb3J0IGZhaWxlZCEgVGhlcmUgd2FzIGEgcHJvYmxlbSB3aXRoIHRoZSBmb3JtYXQgb2YgdGhlIFhNTCBmaWxlLic7CiRsYW5nWydyb3dzJ10gPSAnJXMgcm93cyc7CiRsYW5nWydjb2xzJ10gPSAnJXMgY29scyc7CiRsYW5nWycxMl9ob3VyJ10gPSAnMTIgSG91ciBDbG9jayc7CiRsYW5nWycyNF9ob3VyJ10gPSAnMjQgSG91ciBDbG9jayc7CiRsYW5nWydob3VyJ10gPSAnSG91cic7CiRsYW5nWydtaW4nXSA9ICdNaW51dGUnOwokbGFuZ1snbWVyaWQnXSA9ICdNZXJpZGlhbic7CiRsYW5nWydkYXRlX3JhbmdlJ10gPSAnUmFuZ2U6ICVzIC0gJXMnOwokbGFuZ1sndGhhbmtzJ10gPSAnVGhhbmtzISBZb3VyIHN1Ym1pc3Npb25zIGhhdmUgYmVlbiByZWNlaXZlZC4nOwokbGFuZ1snZWRpdCddID0gJ0VkaXQnOwokbGFuZ1snZGVsZXRlJ10gPSAnRGVsZXRlJzsKJGxhbmdbJ2RheSddID0gJ0RheSc7CiRsYW5nWydtb24nXSA9ICdNb250aCc7CiRsYW5nWyd5ZWFyJ10gPSAnWWVhcic7CiRsYW5nWydub25lJ10gPSAnKG5vbmUpJzsKJGxhbmdbJ2NzcyddID0gJ0NTUyc7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHVsZSB1bmluc3RhbGxlZC4nOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnTW9kdWxlIHZlcnNpb24gJXMgaW5zdGFsbGVkLic7CiRsYW5nWyd1cGdyYWRlZCddID0gJ01vZHVsZSB1cGdyYWRlZCB0byB2ZXJzaW9uICVzLic7CiRsYW5nWydidXR0b25fcHJldmlvdXMnXSA9ICdCYWNrLi4uJzsKJGxhbmdbJ2J1dHRvbl9zdWJtaXQnXSA9ICdTdWJtaXQgRm9ybSc7CiRsYW5nWydidXR0b25fY29udGludWUnXSA9ICdDb250aW51ZS4uLic7CiRsYW5nWyd2YWx1ZV9jaGVja2VkJ10gPSAnQ2hlY2tlZCc7CiRsYW5nWyd2YWx1ZV91bmNoZWNrZWQnXSA9ICdVbmNoZWNrZWQnOwokbGFuZ1sndGFiX21haW4nXSA9ICdNYWluJzsKJGxhbmdbJ3RhYl9zeW1ib2wnXSA9ICdGb3JtIERpc3BsYXkgU2V0dGluZ3MnOwokbGFuZ1sndGFiX3N1Ym1pdCddID0gJ0Zvcm0gU3VibWlzc2lvbic7CiRsYW5nWyd0YWJfY2FwdGNoYSddID0gJ0NhcHRjaGEgU2V0dGluZ3MnOwokbGFuZ1sndGFiX2FkdmFuY2VkJ10gPSAnQWR2YW5jZWQgU2V0dGluZ3MnOwokbGFuZ1sndGFiX3RlbXBsYXRlbGF5b3V0J10gPSAnRm9ybSBUZW1wbGF0ZSc7CiRsYW5nWyd0YWJfc3VibWlzc2lvbnRlbXBsYXRlJ10gPSAnU3VibWlzc2lvbiBUZW1wbGF0ZSc7CiRsYW5nWydjYW51c2Vfc21hcnR5J10gPSAnPGVtPlNtYXJ0eSB2YXJpYWJsZXMgYXJlIHZhbGlkIGluIHRoaXMgZmllbGQuPC9lbT4nOwokbGFuZ1snYWRkX29wdGlvbnMnXSA9ICdBZGQgTW9yZSBPcHRpb25zJzsKJGxhbmdbJ2RlbGV0ZV9vcHRpb25zJ10gPSAnRGVsZXRlIE1hcmtlZCBPcHRpb25zJzsKJGxhbmdbJ2FkZF9jaGVja2JveGVzJ10gPSAnQWRkIE1vcmUgQ2hlY2tib3hlcyc7CiRsYW5nWydkZWxldGVfY2hlY2tib3hlcyddID0gJ0RlbGV0ZSBNYXJrZWQgQ2hlY2tib3hlcyc7CiRsYW5nWydhZGRfYWRkcmVzcyddID0gJ0FkZCBBbm90aGVyIEFkZHJlc3MnOwokbGFuZ1snZGVsZXRlX2FkZHJlc3MnXSA9ICdEZWxldGUgTWFya2VkIEFkZHJlc3Nlcyc7CiRsYW5nWydhZGRfZGVzdGluYXRpb24nXSA9ICdBZGQgQW5vdGhlciBEZXN0aW5hdGlvbic7CiRsYW5nWydkZWxldGVfZGVzdGluYXRpb24nXSA9ICdEZWxldGUgTWFya2VkIERlc3RpbmF0aW9ucyc7CiRsYW5nWydzdXNwZWN0ZWRfc3BhbSddID0gJ1RvbyBtYW55IGVtYWlscyBnZW5lcmF0ZWQgZnJvbSB5b3VyIElQIGFkZHJlc3MuIEFudGktU3BhbSBjb2RlIGhhcyBwcmV2ZW50ZWQgZGVsaXZlcnkuJzsKJGxhbmdbJ3N1c3BlY3RlZF9zcGFtX2xvZyddID0gJ1N1c3BlY3RlZCBzcGFtIGZyb20gSVAgJXMgc3RvcHBlZC4nOwokbGFuZ1sncmVvcmRlciddID0gJ1Jlb3JkZXIgRmllbGRzJzsKJGxhbmdbJ2NhbmNlbCddID0gJ0NhbmNlbCc7CiRsYW5nWyd2YWx1ZV9zZXQnXSA9ICdWYWx1ZSBzZXQ6ICVzJzsKJGxhbmdbJ2hlbHBfY2F0YWxvZ2VyX2F0dHJpYnV0ZV9maWVsZHMnXSA9ICdCZWxvdyBpcyBhIGxpc3Qgb2YgdGhlIGF0dHJpYnV0ZXMgYXZhaWxhYmxlIGZyb20gdGhlIENhdGFsb2dlciBtb2R1bGUuPGJyLz5Zb3UgY2FuIG9wdGlvbmFsbHkgc3BlY2lmeSB2YWxpZCByYW5nZXMsIHZhbHVlcywgb3IgbnVtZXJvdXMgdmFsdWVzIHRvIGJlIHVzZWQgaW4gZmlsdGVyaW5nIHRoZSBsaXN0IG9mIGl0ZW1zIHRoYXQgaXMgZGlzcGxheWVkIHRvIHRoZSB1c2VyLjxici8+DQo8YnIvPg0KPHN0cm9uZz5SYW5nZXM6PC9zdHJvbmc+PGJyLz4NClJhbmdlcyBjYW4gYmUgc3BlY2lmaWVkIGJ5IHNpZ25pZnlpbmcgYSBtaW5pbXVtIGFuZCBtYXhpbXVtIHZhbHVlIHVzaW5nIHRoaXMgc3ludGF4OiAmcXVvdDtyYW5nZTogbWludmFsdWUgdG8gbWF4dmFsdWUmcXVvdDs8YnIvPg0KPGJyLz4NCjxzdHJvbmc+TXVsdGlwbGUgVmFsdWVzOjwvc3Ryb25nPjxici8+DQpUbyBzcGVjaWZ5IG11bHRpcGxlIHZhbHVlcyBmb3IgYW4gYXR0cmlidXRlIHVzZSB0aGUgc3ludGF4ICZxdW90O211bHRpOiB2YWx1ZTF8dmFsdWUyfHZhbHVlMyZxdW90Ozxici8+DQo8YnIvPg0KPHN0cm9uZz5WYWx1ZXMgZnJvbSBoaWRkZW4gZmllbGRzPC9zdHJvbmc+PGJyLz4NClRvIHNwZWNpZnkgYSB2YWx1ZSBmcm9tIGEgaGlkZGVuIGZpZWxkIHVzZSB0aGUgc3ludGF4IHskZmxkX2lkfTxici8+DQo8YnIvPic7CiRsYW5nWydoZWxwX25hbWVfcmVnZXgnXSA9ICdBIHJlZ3VsYXIgZXhwcmVzc2lvbiB0byBhbGxvdyBmaWx0ZXJpbmcgY2F0YWxvZ2VyIGl0ZW1zIGJ5IG5hbWUnOwokbGFuZ1snaGVscF9maWVsZF9oZWlnaHQnXSA9ICdUaGUgaGVpZ2h0IG9mIHRoZSBtdWx0aXNlbGVjdCBmaWVsZCc7CiRsYW5nWyd0aXRsZV9uYW1lX3JlZ2V4J10gPSAnQ2F0YWxvZ2VyIEl0ZW0gTmFtZSBSZWd1bGFyIEV4cHJlc3Npb24nOwokbGFuZ1sndGl0bGVfZmllbGRfaGVpZ2h0J10gPSAnRmllbGQgSGVpZ2h0JzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcGF0aCddID0gJ0Rlc3RpbmF0aW9uIERpcmVjdG9yeSBmb3Igb3V0cHV0IGZpbGVzJzsKJGxhbmdbJ3RpdGxlX3VkdF9uYW1lJ10gPSAnVXNlciBEZWZpbmVkIFRhZyc7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2Rlc3RwYWdlJ10gPSAnUGFnZSB0byByZXR1cm4gdG8gd2l0aCB1cGxvYWRzIGxpbmsnOwokbGFuZ1sndGl0bGVfdXBsb2FkbW9kdWxlX3N1bW1hcnknXSA9ICdTdWJtaXR0ZWQgd2l0aCBmb3JtYnVpbGRlcic7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2NhdGVnb3J5J10gPSAnVXBsb2FkcyBjYXRlZ29yeSc7CiRsYW5nWyd0aXRsZV9zZW5kdG9fdXBsb2FkcyddID0gJ1NlbmQgdGhpcyBmaWxlIHRvIHRoZSB1cGxvYWRzIG1vZHVsZSc7CiRsYW5nWyd0aXRsZV9sZWdlbmQnXSA9ICdMZWdlbmQnOwokbGFuZ1sndGl0bGVfbWF4aW11bV9sZW5ndGgnXSA9ICdNYXhpbXVtIExlbmd0aCc7CiRsYW5nWyd0aXRsZV9jaGVja2JveF9sYWJlbCddID0gJ0NoZWNrYm94IGxhYmVsJzsKJGxhbmdbJ3RpdGxlX3JhZGlvX2xhYmVsJ10gPSAnUmFkaW8gQnV0dG9uIGxhYmVsJzsKJGxhbmdbJ3RpdGxlX2NoZWNrZWRfdmFsdWUnXSA9ICdWYWx1ZSB3aGVuIGNoZWNrZWQnOwokbGFuZ1sndGl0bGVfdW5jaGVja2VkX3ZhbHVlJ10gPSAnVmFsdWUgd2hlbiBub3QgY2hlY2tlZC4nOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfZGV0YWlscyddID0gJ0NoZWNrYm94IEdyb3VwIERldGFpbHMnOwokbGFuZ1sndGl0bGVfZGVsZXRlJ10gPSAnRGVsZXRlPyc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rfb25lX21lc3NhZ2UnXSA9ICcmcXVvdDtTZWxlY3QgT25lJnF1b3Q7IFRleHQnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX3ZhbHVlJ10gPSAnU2VsZWN0aW9uIFZhbHVlJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl9kaXNwbGF5bmFtZSddID0gJ1NlbGVjdGlvbiBEaXNwbGF5IE5hbWUnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX3N1YmplY3QnXSA9ICdTZWxlY3Rpb24gU3ViamVjdCc7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9jb3VudHJ5J10gPSAnRGVmYXVsdCBTZWxlY3Rpb24nOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfc3RhdGUnXSA9ICdEZWZhdWx0IFNlbGVjdGlvbic7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9wcm92aW5jZSddID0gJ0RlZmF1bHQgU2VsZWN0aW9uJzsKJGxhbmdbJ3RpdGxlX29wdGlvbl9uYW1lJ10gPSAnT3B0aW9uIE5hbWUnOwokbGFuZ1sndGl0bGVfb3B0aW9uX3ZhbHVlJ10gPSAnVmFsdWUgU3VibWl0dGVkJzsKJGxhbmdbJ3RpdGxlX3B1bGxkb3duX2RldGFpbHMnXSA9ICdQdWxsZG93biBPcHRpb25zJzsKJGxhbmdbJ3RpdGxlX211bHRpc2VsZWN0X2RldGFpbHMnXSA9ICdNdWx0aXNlbGVjdCBPcHRpb25zJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2FkZHJlc3MnXSA9ICdEZXN0aW5hdGlvbiBFbWFpbCBBZGRyZXNzJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2ZpbGVuYW1lJ10gPSAnRGVzdGluYXRpb24gRmlsZSBOYW1lJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fbmFtZSddID0gJyZxdW90O0Zyb20gbmFtZSZxdW90OyBmb3IgZW1haWwnOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9lbWFpbF9yZWdleCddID0gJ1VzZSByZWxheGVkIGVtYWlsIHZhbGlkYXRpb24nOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9yZWdleF9sb25nJ10gPSAnVXNlIHJlbGF4ZWQgZW1haWwgYWRkcmVzcyB2YWxpZGF0aW9uIChlLmcuLCBhbGxvdyAmcXVvdDt4QHkmcXVvdDsgaW5zdGVhZCBvZiByZXF1aXJpbmcgJnF1b3Q7eEB5LnRsZCZxdW90OyknOwokbGFuZ1sndGl0bGVfZW1haWxfZnJvbV9hZGRyZXNzJ10gPSAnJnF1b3Q7RnJvbSBhZGRyZXNzJnF1b3Q7IGZvciBlbWFpbCc7CiRsYW5nWyd0aXRsZV9lbWFpbF9lbmNvZGluZyddID0gJ0VtYWlsIGNoYXJhY3RlciBzZXQgZW5jb2RpbmcnOwokbGFuZ1sndGl0bGVfZGlyZWN0b3JfZGV0YWlscyddID0gJ1B1bGxkb3duLWJhc2VkIEVtYWlsZXIgRGV0YWlscyc7CiRsYW5nWyd0aXRsZV9maWxlX25hbWUnXSA9ICdGaWxlIE5hbWUnOwokbGFuZ1sndGl0bGVfZW1haWxfc3ViamVjdCddID0gJ0VtYWlsIFN1YmplY3QgTGluZSc7CiRsYW5nWyd0aXRsZV9mb3JtX25hbWUnXSA9ICdGb3JtIE5hbWUnOwokbGFuZ1sndGl0bGVfZm9ybV9zdGF0dXMnXSA9ICdGb3JtIFN0YXR1cyc7CiRsYW5nWyd0aXRsZV9yZWFkeV9mb3JfZGVwbG95bWVudCddID0gJ1JlYWR5IGZvciBEZXBsb3ltZW50JzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTEnXSA9ICdOb3QgUmVhZHknOwokbGFuZ1sndGl0bGVfcmVkaXJlY3RfcGFnZSddID0gJ1BhZ2UgdG8gcmVkaXJlY3QgdG8gYWZ0ZXIgZm9ybSBzdWJtaXNzaW9uJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTInXSA9ICdQbGVhc2UgYWRkIGEgZmllbGQgdG8gdGhlIGZvcm0gc28gdGhhdCB0aGUgdXNlciYjMDM5O3MgaW5wdXQgZ2V0cyBoYW5kbGVkLiBZb3UgY2FuJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeV9saW5rJ10gPSAndXNlIHRoaXMgc2hvcnRjdXQnOwokbGFuZ1sndGl0bGVfZm9ybV9hbGlhcyddID0gJ0Zvcm0gQWxpYXMnOwokbGFuZ1sndGl0bGVfZm9ybV9maWVsZHMnXSA9ICdGb3JtIEZpZWxkcyc7CiRsYW5nWyd0aXRsZV9maWVsZF9pZCddID0gJ0ZpZWxkIElkJzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRhbGlhc2VzJ10gPSAnU2hvdyBGaWVsZCBBbGlhc2VzJzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRhbGlhc2VzX2xvbmcnXSA9ICdDbGlja2luZyB0aGlzIHdpbGwgZGlzcGxheSBmaWVsZCBhbGlhc2VzIHdoZW4gYWRkaW5nIG9yIGVkaXRpbmcgYSBmb3JtJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX25hbWUnXSA9ICdGaWVsZCBOYW1lJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2FsaWFzJ10gPSAnRmllbGQgQWxpYXMnOwokbGFuZ1sndGl0bGVfcmFkaW9ncm91cF9kZXRhaWxzJ10gPSAnUmFkaW8gQnV0dG9uIEdyb3VwIERldGFpbHMnOwokbGFuZ1sndGl0bGVfZmllbGRfdHlwZSddID0gJ0ZpZWxkIFR5cGUnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MyddID0gJ3RvIGNyZWF0ZSBhIGZvcm0gaGFuZGxpbmcgZmllbGQuJzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZm9ybSddID0gJ0FkZCBOZXcgRm9ybSc7CiRsYW5nWyd0aXRsZV9zaG93X3ZlcnNpb24nXSA9ICdTaG93IEZvcm0gQnVpbGRlciBWZXJzaW9uPyc7CiRsYW5nWyd0aXRsZV9zaG93X3ZlcnNpb25fbG9uZyddID0gJ1RoaXMgd2lsbCBlbWJlZCB5b3VyIGluc3RhbGxlZCB2ZXJzaW9uIG51bWJlciBvZiBGb3JtIEJ1aWxkZXIgbW9kdWxlIGluIGEgY29tbWVudCwgdG8gYWlkIGluIGRlYnVnZ2luZyc7CiRsYW5nWyd0aXRsZV9hZGRfbmV3X2ZpZWxkJ10gPSAnQWRkIE5ldyBGaWVsZCc7CiRsYW5nWyd0aXRsZV9mb3JtX3N1Ym1pdF9idXR0b24nXSA9ICdGb3JtIFN1Ym1pdCBCdXR0b24gVGV4dCc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eSddID0gJ0FkZCBKYXZhc2NyaXB0IHRvIGZpbmFsIFN1Ym1pdCBCdXR0b24gdGhhdCB3aWxsIGhlbHAgcHJldmVudCBtdWx0aXBsZSBzdWJtaXNzaW9ucz8nOwokbGFuZ1sndGl0bGVfc3VibWl0X2J1dHRvbl9zYWZldHlfaGVscCddID0gJ0FkZCBzYWZldHkgc2NyaXB0JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmV4dF9idXR0b24nXSA9ICdGb3JtICZxdW90O05leHQmcXVvdDsgQnV0dG9uIFRleHQgKHVzZWQgZm9yIG11bHRpcGFnZSBmb3JtcyknOwokbGFuZ1sndGl0bGVfZm9ybV9wcmV2X2J1dHRvbiddID0gJ0Zvcm0gJnF1b3Q7UHJldmlvdXMmcXVvdDsgQnV0dG9uIFRleHQgKHVzZWQgZm9yIG11bHRpcGFnZSBmb3JtcyknOwokbGFuZ1sndGl0bGVfZmllbGRfdmFsaWRhdGlvbiddID0gJ0ZpZWxkIFZhbGlkYXRpb24nOwokbGFuZ1sndGl0bGVfZmllbGRfdG9fdmFsaWRhdGUnXSA9ICdGaWVsZCB0byBWYWxpZGF0ZSc7CiRsYW5nWyd0aXRsZV9maWVsZF9jc3NfaWQnXSA9ICdDU1MgaWQgZm9yIHRoaXMgZmllbGQnOwokbGFuZ1sndGl0bGVfZm9ybV9jc3NfY2xhc3MnXSA9ICdDU1MgQ2xhc3MgZm9yIHRoaXMgZm9ybSc7CiRsYW5nWyd0aXRsZV9maWVsZF9jc3NfY2xhc3MnXSA9ICdDU1MgQ2xhc3MgZm9yIHRoaXMgZmllbGQnOwokbGFuZ1sndGl0bGVfZm9ybV9wcmVkaXNwbGF5X3VkdCddID0gJ1VzZXIgZGVmaW5lZCB0YWcgdG8gY2FsbCBiZWZvcmUgZm9ybSBpcyBkaXNwbGF5ZWQnOwokbGFuZ1sndGl0bGVfZm9ybV9yZXF1aXJlZF9zeW1ib2wnXSA9ICdTeW1ib2wgdG8gbWFyayByZXF1aXJlZCBGaWVsZHMnOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWQnXSA9ICdSZXF1aXJlZCc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9sb25nJ10gPSAnUmVxdWlyZSBhIHJlc3BvbnNlIGZvciB0aGlzIEZpZWxkJzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWwnXSA9ICdIaWRlIExhYmVsJzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWxfbG9uZyddID0gJ0hpZGUgdGhpcyBmaWVsZCYjMDM5O3MgbmFtZSBvbiBGb3JtJzsKJGxhbmdbJ3RpdGxlX3RleHQnXSA9ICdTdGF0aWMgdGV4dCB0byBkaXNwbGF5JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlZ2V4J10gPSAnVmFsaWRhdGlvbiBSZWdleCc7CiRsYW5nWyd0aXRsZV9saW5lc190b19zaG93J10gPSAnTnVtYmVyIG9mIExpbmVzIHRvIGRpc3BsYXknOwokbGFuZ1snbm9fZGVmYXVsdCddID0gJ05vIERlZmF1bHQnOwokbGFuZ1sncmVkaXJlY3RfYWZ0ZXJfYXBwcm92YWwnXSA9ICdQYWdlIHRvIHJlZGlyZWN0IGFmdGVyIGFwcHJvdmFsJzsKJGxhbmdbJ3RpdGxlX3JlZ2V4X2hlbHAnXSA9ICdUaGlzIHJlZ3VsYXIgZXhwcmVzc2lvbiB3aWxsIG9ubHkgYmUgdXNlZCBpZiAmcXVvdDt2YWxpZGF0aW9uIHR5cGUmcXVvdDsgaXMgc2V0IHRvIGEgcmVnZXgtcmVsYXRlZCBvcHRpb24uIEluY2x1ZGUgYSBmdWxsIFBlcmwtc3R5bGUgcmVnZXgsIGluY2x1ZGluZyB0aGUgc3RhcnQvc3RvcCBzbGFzaGVzIGFuZCBmbGFncyAoZS5nLiwgJnF1b3Q7L2ltYWdlXC4oXGQrKS9pJnF1b3Q7KSc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9hYmJyZXYnXSA9ICdSZXEmIzAzOTtkJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzJ10gPSAnSGlkZSBFcnJvcnMnOwokbGFuZ1sndGl0bGVfZm9ybV9kaXNwbGF5dHlwZSddID0gJ0Zvcm0gRGlzcGxheSBUeXBlJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzX2xvbmcnXSA9ICdQcmV2ZW50IGRlYnVnIC8gZXJyb3IgbWVzc2FnZXMgZnJvbSBiZWluZyBzZWVuIGJ5IHVzZXJzLic7CiRsYW5nWyd0aXRsZV9lbWFpbF90ZW1wbGF0ZSddID0gJ0VtYWlsIFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZSddID0gJ01heGltdW0gdXBsb2FkIGZpbGUgc2l6ZSAoa2lsb2J5dGVzKSc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX3NpemVfbG9uZyddID0gJ1RoaXMgbGltaXRhdGlvbiBpcyBpbiBhZGRpdGlvbiB0byBhbnkgbGltaXRzIHNldCBieSB0aGUgcGhwIG9yIHdlYiBzZXJ2ZXIgY29uZmlndXJhdGlvbic7CiRsYW5nWyd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ1Blcm1pdHRlZCBFeHRlbnNpb25zJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zX2xvbmcnXSA9ICdFbnRlciBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0LCBleGNsdWRpbmcgdGhlIGRvdCAoZS5nLiwgJnF1b3Q7anBnLGdpZixqcGVnJnF1b3Q7KS4gU3BhY2VzIHdpbGwgYmUgaWdub3JlZC4gTGVhdmluZyB0aGlzIGJsYW5rIG1lYW5zIHRoZXJlIHdpbGwgYmUgbm8gcmVzdHJpY3Rpb25zLic7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zJ10gPSAnRGlzcGxheSByZXN0cmljdGlvbnM/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnNfbG9uZyddID0gJ0Rpc3BsYXkgYW55IHNpemUgYW5kIGV4dGVuc2lvbiByZXN0cmljdGlvbnMgd2l0aCB0aGUgdXBsb2FkIGZpZWxkPyc7CiRsYW5nWyd0aXRsZV9mb3JtX3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgdG8gdXNlIHRvIERpc3BsYXkgRm9ybSc7CiRsYW5nWyd0aXRsZV9wYWdlX3hfb2ZfeSddID0gJ1N0cmFuICVzIG9kICVzJzsKJGxhbmdbJ3RpdGxlX25vX2FkdmFuY2VkX29wdGlvbnMnXSA9ICdGaWVsZCBoYXMgbm8gYWR2YW5jZWQgb3B0aW9ucy4nOwokbGFuZ1sndGl0bGVfZm9ybV91bnNwZWNpZmllZCddID0gJ1RleHQgdG8gcmV0dXJuIGZvciB1bnNwZWNpZmllZCBmaWVsZCB2YWx1ZXMnOwokbGFuZ1sndGl0bGVfZW5hYmxlX2Zhc3RhZGRfbG9uZyddID0gJ0VuYWJsZSBmYXN0IGZpZWxkIGFkZGluZyBwdWxsZG93biBmb3IgZm9ybXM/JzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9mYXN0YWRkJ10gPSAnRW5hYmxlIGZhc3QgZmllbGQgYWRkIHB1bGxkb3duPyc7CiRsYW5nWyd0aXRsZV9mYXN0YWRkJ10gPSAnRmFzdCBmaWVsZCBhZGRlcic7CiRsYW5nWyd0aXRsZV9lbmFibGVfYW50aXNwYW1fbG9uZyddID0gJ0NsaWNraW5nIHRoaXMgd2lsbCBvbmx5IGFsbG93IDEwIGVtYWlscyB0byBiZSB0cmlnZ2VyZWQgZnJvbSBhIGdpdmVuIElQIGFkZHJlc3MgKHBlciBob3VyKS4nOwokbGFuZ1sndGl0bGVfZW5hYmxlX2FudGlzcGFtJ10gPSAnRW5hYmxlIHByaW1pdGl2ZSBhbnRpLXNwYW0gZmVhdHVyZXM/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRpZHMnXSA9ICdTaG93IEZpZWxkIElEcyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkaWRzX2xvbmcnXSA9ICdDbGlja2luZyB0aGlzIHdpbGwgYWxsb3cgZGlzcGxheWluZyBmaWVsZCBpZHMgd2hlbiBhZGRpbmcgb3IgZWRpdGluZyBhIGZvcm0nOwokbGFuZ1sndGl0bGVfeG1sX3RvX3VwbG9hZCddID0gJ1VwbG9hZCBmb3JtIGZyb20gWE1MIGZpbGUnOwokbGFuZ1sndGl0bGVfeG1sX3VwbG9hZF9mb3JtbmFtZSddID0gJ1VzZSB0aGlzIGZvcm0gbmFtZSc7CiRsYW5nWyd0aXRsZV9pbXBvcnRfbGVnZW5kJ10gPSAnWE1MIEZvcm0gSW1wb3J0JzsKJGxhbmdbJ3RpdGxlX3htbF91cGxvYWRfZm9ybWFsaWFzJ10gPSAnVXNlIHRoaXMgZm9ybSBhbGlhcyc7CiRsYW5nWyd0aXRsZV9odG1sX2VtYWlsJ10gPSAnR2VuZXJhdGUgSFRNTCBlbWFpbD8nOwokbGFuZ1sndGl0bGVfbGlua19hdXRvcG9wdWxhdGUnXSA9ICdBdXRvbWF0aWNhbGx5IHBvcHVsYXRlPyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZV9oZWxwJ10gPSAnQXV0b21hdGljYWxseSBwb3B1bGF0ZSB3aXRoIHRoZSBVUkwgb2YgdGhlIHBhZ2UgY29udGFpbmluZyB0aGUgZm9ybT8gKHRoaXMgb3ZlcnJpZGVzIHNpdGUgcGFnZSBsaW5rIG9wdGlvbiBiZWxvdyknOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9saW5rJ10gPSAnRGVmYXVsdCBsaW5rIFVSTCc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2xpbmtfdGl0bGUnXSA9ICdEZWZhdWx0IGxpbmsgdGV4dCc7CiRsYW5nWyd0aXRsZV9saW5rX3RvX3NpdGVwYWdlJ10gPSAnTGluayB0byBzaXRlIHBhZ2UnOwokbGFuZ1sndGl0bGVfY2FwdGNoYV9ub3RfaW5zdGFsbGVkJ10gPSAnWW91IGNhbiB1c2UgPGEgaHJlZj0iaHR0cDovL3d3dy53aWtpcGVkaWEub3JnL3dpa2kvQ2FwdGNoYSIgdGFyZ2V0PSJfbmV3Ij4mcXVvdDtDYXB0Y2hhJnF1b3Q7PC9hPiB0byBwcm90ZWN0IGZvcm0gc3VibWlzc2lvbnMgaWYgeW91IGluc3RhbGwgdGhlIENhcHRjaGEgbW9kdWxlLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9jYXB0Y2hhLyI+Y2hlY2sgdGhlIENhcHRjaGEgcHJvamVjdDwvYT4uJzsKJGxhbmdbJ3RpdGxlX3VzZV9jYXB0Y2hhJ10gPSAnVXNlIENhcHRjaGEgdG8gcHJvdGVjdCBmb3JtIHN1Ym1pc3Npb25zPyc7CiRsYW5nWyd0aXRsZV91c2VfY2FwdGNoYV9oZWxwJ10gPSAnQ2hlY2sgaGVyZSB0byBwcm90ZWN0IHlvdXIgZm9ybSB3aXRoIGEgPGEgaHJlZj0iaHR0cDovL3d3dy53aWtpcGVkaWEub3JnL3dpa2kvQ2FwdGNoYSIgdGFyZ2V0PSJfbmV3Ij4mcXVvdDtDYXB0Y2hhJnF1b3Q7PC9hPi4nOwokbGFuZ1sndGl0bGVfdXNlcl9jYXB0Y2hhJ10gPSAnUGxlYXNlIGNvbmZpcm0gdGhhdCB5b3UgYXJlIG5vdCBhIHNjcmlwdCBieSBlbnRlcmluZyB0aGUgbGV0dGVycyBmcm9tIHRoZSBpbWFnZS4nOwokbGFuZ1sndGl0bGVfdXNlcl9jYXB0Y2hhX2Vycm9yJ10gPSAnRmFpbGVkIHRleHQgZm9yIENhcHRjaGEnOwokbGFuZ1snd3JvbmdfY2FwdGNoYSddID0gJ0NhcHRjaGEgd2FzIG5vdCBjb3JyZWN0Lic7CiRsYW5nWyd0aXRsZV90aXRsZV91c2VyX2NhcHRjaGEnXSA9ICdIZWxwIHRleHQgZm9yIENhcHRjaGEnOwokbGFuZ1sndGl0bGVfZG9udF9zdWJtaXRfdW5jaGVja2VkJ10gPSAnRG9uJiMwMzk7dCBzdWJtaXQgdmFsdWVzIGZvciB1bmNoZWNrZWQgYm94ZXMnOwokbGFuZ1sndGl0bGVfZG9udF9zdWJtaXRfdW5jaGVja2VkX2hlbHAnXSA9ICdDaGVjayB0aGlzIGlmIHlvdSBvbmx5IHdhbnQgY2hlY2tlZCBib3hlcyB0byByZXR1cm4gdmFsdWVzLic7CiRsYW5nWydsaW5rX2xhYmVsJ10gPSAnTGluayBMYWJlbCc7CiRsYW5nWydsaW5rX2Rlc3RpbmF0aW9uJ10gPSAnTGluayBEZXN0aW5hdGlvbiBVUkwnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9zZXQnXSA9ICdDaGVja2VkIGJ5IERlZmF1bHQ/JzsKJGxhbmdbJ3RpdGxlXzI0X2hvdXInXSA9ICdVc2UgMjQtaG91ciBjbG9jaz8nOwokbGFuZ1sndGl0bGVfYmVmb3JlX25vb24nXSA9ICdBTSc7CiRsYW5nWyd0aXRsZV9hZnRlcl9ub29uJ10gPSAnUE0nOwokbGFuZ1sndGl0bGVfc21hcnR5X2V2YWwnXSA9ICdQcm9jZXNzIHNtYXJ0eSB0YWdzIHdpdGhpbiBmaWVsZD8nOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfcm93cyddID0gJ1Jvd3MgKG5vdGU6IHRoaXMgbWF5IGJlIG92ZXJyaWRkZW4gYnkgQ1NTKSc7CiRsYW5nWyd0aXRsZV90ZXh0YXJlYV9jb2xzJ10gPSAnQ29sdW1ucyAobm90ZTogdGhpcyBtYXkgYmUgb3ZlcnJpZGRlbiBieSBDU1MpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbWFpbiddID0gJ01haW4gRm9ybSBEZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcm5hbWUnXSA9ICdEaXNwbGF5IFVzZXImIzAzOTtzIGxvZ2luIG5hbWU/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcmZpcnN0bmFtZSddID0gJ0Rpc3BsYXkgVXNlciYjMDM5O3MgZmlyc3QgbmFtZT8nOwokbGFuZ1sndGl0bGVfc2hvd191c2VybGFzdG5hbWUnXSA9ICdEaXNwbGF5IFVzZXImIzAzOTtzIGxhc3QgbmFtZT8nOwokbGFuZ1sndGl0bGVfcmVzdHJpY3RfdG9fZ3JvdXAnXSA9ICdSZXN0cmljdCB1c2VyIGxpc3QgdG8gdXNlcnMgaW4gc3BlY2lmaWVkIGdyb3VwJzsKJGxhbmdbJ3Jlc3RyaWN0ZWRfdG9fZ3JvdXAnXSA9ICdPbmx5IGluIGdyb3VwICVzJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdG9fdXNlciddID0gJ0Rpc3BsYXkgdG8gdXNlcj8nOwokbGFuZ1snaGVscF9sZWF2ZWVtcHR5J10gPSAnVGhpcyBmaWVsZCBtYXkgYmUgbGVmdCBlbXB0eSc7CiRsYW5nWydoZWxwX3ZhcmlhYmxlc19mb3JfdGVtcGxhdGUnXSA9ICdWYXJpYWJsZXMgRm9yIFRlbXBsYXRlJzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVzX2Zvcl9jb21wdXRhdGlvbiddID0gJ1ZhcmlhYmxlcyBBdmFpbGFibGUnOwokbGFuZ1snaGVscF9waHBfdmFyaWFibGVfbmFtZSddID0gJ1BIUCB2YXJpYWJsZSc7CiRsYW5nWydoZWxwX3N1Ym1pc3Npb25fZGF0ZSddID0gJ0RhdGUgb2YgU3VibWlzc2lvbic7CiRsYW5nWydoZWxwX3NlcnZlcl9uYW1lJ10gPSAnWW91ciBzZXJ2ZXInOwokbGFuZ1snaGVscF9zdWJfc291cmNlX2lwJ10gPSAnSVAgYWRkcmVzcyBvZiBwZXJzb24gdXNpbmcgZm9ybSc7CiRsYW5nWydoZWxwX3N1Yl91cmwnXSA9ICdVUkwgb2YgcGFnZSBjb250YWluaW5nIGZvcm0nOwokbGFuZ1snaGVscF9mYl92ZXJzaW9uJ10gPSAnRm9ybUJ1aWxkZXIgdmVyc2lvbic7CiRsYW5nWydoZWxwX3RhYiddID0gJ1RhYiBDaGFyYWN0ZXInOwokbGFuZ1snaGVscF9vdGhlcl9maWVsZHMnXSA9ICdBbHRlcm5hdGUgZmllbGQgbmFtZXMgY2FuIGJlIHVzZWQgaW50ZXJjaGFuZ2VhYmx5IChlc3BlY2lhbGx5IHVzZWZ1bCBpZiBTbWFydHkgaXMgY2hva2luZyBvbiBjaGFyYWN0ZXJzIG91dHNpZGUgb2YgQVNDSUkgMzItMTI2KS4gPGJyIC8+T3RoZXIgZmllbGRzIHdpbGwgYmUgYXZhaWxhYmxlIGFzIHlvdSBhZGQgdGhlbSB0byB0aGUgZm9ybS4nOwokbGFuZ1snaGVscF9hcnJheV9maWVsZHMnXSA9ICdZZXQgYW5vdGhlciB3YXkgb2YgYWNjZXNzaW5nIGZpZWxkIHZhbHVlcyBpcyB2aWEgJGZpZWxkbmFtZV9vYmosICRhbGlhc19vYmosIG9yICRmbGRfI19vYmosIHdoZXJlIGVhY2ggZmllbGQgaXMgYW4gb2JqZWN0IGNvbnRhaW5naW5nOjxiciAvPjx0YWJsZT4NCjx0cj48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7Pm5hbWU8L3RkPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+RmllbGQgTmFtZTwvdGQ+PC90cj4NCjx0cj48dGQ+dHlwZTwvdGQ+PHRkPkZpZWxkIFR5cGU8L3RkPjwvdHI+DQo8dHI+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz5pZDwvdGQ+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz5JbnRlcm5hbCBGaWVsZCBJRDwvdGQ+PC90cj4NCjx0cj48dGQ+dmFsdWU8L3RkPjx0ZD5IdW1hbi1yZWFkYWJsZSBWYWx1ZTwvdGQ+PC90cj4NCjx0cj48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7PnZhbHVlQXJyYXk8L3RkPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+QXJyYXkgb2YgZmllbGQgdmFsdWUocyk8L3RkPjwvdHI+PC90YWJsZT48ZW0+ZS5nLjwvZW0+LCB5b3UgY291bGQgdXNlICZxdW90O3skZmxkXzFfb2JqLT5uYW1lfSA9IHskZmxkXzFfb2JqLT52YWx1ZX0nOwokbGFuZ1snaGVscF9kYXRlX2Zvcm1hdCddID0gJ1NlZSA8YSBocmVmPSJodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwIiB0YXJnZXQ9X05FVz50aGUgUEhQIE1hbnVhbDwvYT4gZm9yIGZvcm1hdHRpbmcgaGVscC4nOwokbGFuZ1snaGVscF92YXJpYWJsZV9uYW1lJ10gPSAnVmFyaWFibGUnOwokbGFuZ1snaGVscF9mb3JtX2ZpZWxkJ10gPSAnRmllbGQgUmVwcmVzZW50ZWQnOwokbGFuZ1snbGlua19iYWNrX3RvX2Zvcm0nXSA9ICcmbGFxdW87IEJhY2sgdG8gRm9ybSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX3RlbXBsYXRlJ10gPSAnQ3JlYXRlIFNhbXBsZSBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2h0bWxfdGVtcGxhdGUnXSA9ICdDcmVhdGUgU2FtcGxlIEhUTUwgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9oZWFkZXJfdGVtcGxhdGUnXSA9ICdDcmVhdGUgU2FtcGxlIEhlYWRlciBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2hlYWRlciddID0gJ0NyZWF0ZSBTYW1wbGUgSGVhZGVyJzsKJGxhbmdbJ2hlbHBfdGFiX3N5bWJvbCddID0gJ2EgdGFiIGNoYXJhY3Rlcic7CiRsYW5nWyd0aXRsZV9maWxlX3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgZm9yIG9uZSBsaW5lIG9mIG91dHB1dCBmaWxlJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfaGVhZGVyJ10gPSAnVGVtcGxhdGUgZm9yIHRoZSBoZWFkZXIgb2Ygb3V0cHV0IGZpbGUnOwokbGFuZ1sndGl0bGVfY29uZmlybWF0aW9uX3VybCddID0gJ1VSTCB0byBjbGljayBmb3IgZm9ybSBjb25maXJtYXRpb24nOwokbGFuZ1sndGl0bGVfdmFsdWUnXSA9ICdWYWx1ZSAoc2VlIEFkdmFuY2VkIFRhYiBpZiB5b3UgdXNlIFNtYXJ0eSB0YWdzKSc7CiRsYW5nWyd0aXRsZV9kYXRlX2Zvcm1hdCddID0gJ0RhdGUgRm9ybWF0IChzdGFuZGFyZCA8YSBocmVmPSJodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwIj5QSFAgRGF0ZSBGb3JtYXRzPC9hPiknOwokbGFuZ1sndGl0bGVfdXNlX3d5c2l3eWcnXSA9ICdVc2UgV1lTSVdZRyBlZGl0b3IgZm9yIHRleHQgQXJlYSAoQWRtaW4gc2lkZSBvbmx5KT8nOwokbGFuZ1sndGl0bGVfc3VibWl0X2FjdGlvbnMnXSA9ICdGb3JtIFN1Ym1pc3Npb24gQmVoYXZpb3InOwokbGFuZ1sndGl0bGVfc3VibWl0X2xhYmVscyddID0gJ1N1Ym1pc3Npb24gQnV0dG9uIExhYmVscyc7CiRsYW5nWyd0aXRsZV9zb3J0YWJsZV9maWVsZCddID0gJ1NvcnRhYmxlIEZpZWxkICMlcyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfaGVscCddID0gJ1RoaXMgcGFnZSBsZXRzIHlvdSBjdXN0b21pemUgRm9ybSBTdWJtaXNzaW9uLiBJdCBkb2VzbiYjMDM5O3QgZGV0ZXJtaW5lIHdoYXQgdGhlIEZvcm0gQnVpbGRlciBkb2VzIHdpdGggdGhlIHN1Ym1pdHRlZCBkYXRhLiBZb3UgY2FuIHNldCB0aGF0IHVwIGJ5IGFkZGluZyAmcXVvdDtEaXNwb3NpdGlvbiZxdW90OyBmaWVsZHMgdG8geW91ciBmb3JtLic7CiRsYW5nWyd0aXRsZV9zdGFydF95ZWFyJ10gPSAnWWVhciByYW5nZSBzdGFydCc7CiRsYW5nWyd0aXRsZV9lbmRfeWVhciddID0gJ1llYXIgcmFuZ2UgZW5kJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfeWVhciddID0gJ0RlZmF1bHQgWWVhcic7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3llYXJfaGVscCddID0gJyhTZXQgdG8gLTEgZm9yIGRlZmF1bHQgeWVhciB0byBiZSB0aGUgY3VycmVudCB5ZWFyKSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYWN0aW9uJ10gPSAnQWZ0ZXIgZm9ybSBpcyBzdWJtaXR0ZWQnOwokbGFuZ1sndGl0bGVfc3VibWl0X3Jlc3BvbnNlJ10gPSAnUmVzcG9uc2UgdG8gZGlzcGxheSc7CiRsYW5nWydkaXNwbGF5X3RleHQnXSA9ICdEaXNwbGF5ICZxdW90O1N1Ym1pc3Npb24gVGVtcGxhdGUmcXVvdDsnOwokbGFuZ1sncmVkaXJlY3RfdG9fcGFnZSddID0gJ1JlZGlyZWN0IHRvIHNpdGUgcGFnZSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfcmVzcG9uc2VfaGVscCddID0gJ1RoaXMgdGVtcGxhdGUgaXMgZm9yIGRpc3BsYXkgdG8gdGhlIHVzZXIgYWZ0ZXIgdGhlIGZvcm0gaXMgc3VibWl0dGVkLiBUaGlzIHRlbXBsYXRlIGRvZXMgbm90IGVmZmVjdCBlbWFpbHMgZ2VuZXJhdGVkIG9yIG90aGVyIGZvcm0gZGlzcG9zaXRpb25zIC0tIHlvdSBzZXQgdGhvc2UgdGVtcGxhdGVzICh3aGVyZSBhcHByb3ByaWF0ZSkgaW4gdGhlICZxdW90O2FkdmFuY2VkJnF1b3Q7IHRhYiBmb3IgdGhvc2UgZGlzcG9zaXRpb24gZmllbGRzLic7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9wYWdlJ10gPSAnRGVzdGluYXRpb24gUGFnZSc7CiRsYW5nWyd0aXRsZV9yZXF1aXJlX2ZpZWxkbmFtZXMnXSA9ICdSZXF1aXJlIEZpZWxkbmFtZXMnOwokbGFuZ1sndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzX2xvbmcnXSA9ICdSZXF1aXJlIGZpZWxkcyB0byBoYXZlIGEgbmFtZT8nOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXMnXSA9ICdSZXF1aXJlIFVuaXF1ZSBGaWVsZG5hbWVzJzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWVsZG5hbWVzX2xvbmcnXSA9ICdSZXF1aXJlIGZpZWxkcyB0byBoYXZlIHVuaXF1ZSBuYW1lcz8nOwokbGFuZ1sndGl0bGVfcmVvcmRlcl9mb3JtJ10gPSAnUmVvcmRlciBGaWVsZHMnOwokbGFuZ1sndGl0bGVfbG9hZF90ZW1wbGF0ZSddID0gJ0xvYWQgdGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfYWRkX2J1dHRvbl90ZXh0J10gPSAnQWRkIEJ1dHRvbiB0ZXh0JzsKJGxhbmdbJ3RpdGxlX2RlbF9idXR0b25fdGV4dCddID0gJ0RlbGV0ZSBCdXR0b24gdGV4dCc7CiRsYW5nWyd0aXRsZV9zdHJpbmdfb3JfbnVtYmVyX2V2YWwnXSA9ICdJbnRlcnByZXQgdmFyaWFibGVzIGFzIGJlaW5nIG51bWJlcnMgb3Igc3RyaW5ncyc7CiRsYW5nWyd0aXRsZV9vcmRlciddID0gJ0ludGVycHJldGF0aW9uIE9yZGVyJzsKJGxhbmdbJ3RpdGxlX29yZGVyX2hlbHAnXSA9ICdJZiBtb3JlIHRoYW4gb25lIENvbXB1dGVkIEZpZWxkIGV4aXN0cywgdGhleSB3aWxsIGJlIGNvbXB1dGVkIGZyb20gbG93ZXN0IG9yZGVyIG51bWJlciB0byBoaWdoZXN0IG9yZGVyIG51bWJlcic7CiRsYW5nWyd0aXRsZV9jb21wdXRlX3ZhbHVlJ10gPSAnVmFsdWUgdG8gY29tcHV0ZSc7CiRsYW5nWyd0aXRsZV9zdHJpbmcnXSA9ICdTdHJpbmcnOwokbGFuZ1sndGl0bGVfbnVtZXJpYyddID0gJ051bWVyaWMnOwokbGFuZ1sndGl0bGVfaW5saW5lX2Zvcm0nXSA9ICdEaXNwbGF5IGZvcm0gaW5saW5lPyc7CiRsYW5nWyd0aXRsZV9pbmxpbmVfZm9ybV9oZWxwJ10gPSAnSW5saW5lIG1lYW5zIGFueSBmb3JtIGZvbGxvd3VwIHJlcGxhY2VzIHRoZSB7Y21zX21vZHVsZX0gdGFnLCBub24taW5saW5lIHJlcGxhY2VzIHRoZSB7Y29udGVudH0gdGFnLic7CiRsYW5nWyd0aXRsZV9maWVsZF9kZWZhdWx0X3ZhbHVlJ10gPSAnRGVmYXVsdCB2YWx1ZSBmb3IgZmllbGQnOwokbGFuZ1sndGl0bGVfY2xlYXJfZGVmYXVsdCddID0gJ0NsZWFyIGRlZmF1bHQgb24gY2xpY2s/JzsKJGxhbmdbJ3RpdGxlX2NsZWFyX2RlZmF1bHRfaGVscCddID0gJ0NoZWNrIHRoaXMgdG8gY2xlYXIgdGhlIGRlZmF1bHQgdmFsdWUgd2hlbiB0aGUgdXNlciBjbGlja3MgdGhpcyBmaWVsZC4gU2luY2UgdGhpcyB1c2VzIGEgamF2YXNjcmlwdCBzdHJpbmcgY29tcGFyZSwgaXQgd2lsbCBmYWlsIGlmIHlvdSBwdXQgc2luZ2xlIHF1b3RlcyBpbiB5b3VyIGRlZmF1bHQgdGV4dC4gT3RoZXIgdW4tamF2YXNjcmlwdC1mcmllbmRseSBjaGFyYWN0ZXJzIG1heSBhbHNvIGNhdXNlIGl0IHRvIGZhaWwuJzsKJGxhbmdbJ3RpdGxlX3JlbW92ZV9maWxlX2Zyb21fc2VydmVyJ10gPSAnRGVsZXRlIHVwbG9hZGVkIGZpbGUgZnJvbSBzZXJ2ZXIgYWZ0ZXIgcHJvY2Vzc2luZyAoZW1haWwgZGlzcG9zaXRpb25zKSc7CiRsYW5nWyd0aXRsZV9maWVsZF9qYXZhc2NyaXB0J10gPSAnSmF2YXNjcmlwdCBmb3IgZmllbGQnOwokbGFuZ1sndGl0bGVfZmllbGRfamF2YXNjcmlwdF9sb25nJ10gPSAnTWFrZSB0aGlzIHRoZSBjb21wbGV0ZSBKYXZhc2NyaXB0IGNhbGwsIGluY2x1ZGluZyB0aGUgZXZlbnQgeW91IHdhbnQgdG8gdHJhcCwgZS5nLiwgb25jbGljaz0mcXVvdDt5b3VyZm4oKSZxdW90Oyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfamF2YXNjcmlwdCddID0gJ0Zvcm0gU3VibWlzc2lvbiBKYXZhc2NyaXB0JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9qYXZhc2NyaXB0X2xvbmcnXSA9ICdNYWtlIHRoaXMgdGhlIGNvbXBsZXRlIEphdmFzY3JpcHQgY2FsbCwgaW5jbHVkaW5nIHRoZSBldmVudCB5b3Ugd2FudCB0byB0cmFwLCBlLmcuLCBvbmNsaWNrPSZxdW90O3lvdXJmbigpJnF1b3Q7LjxiciAvPlRoaXMgd2lsbCBwcm9iYWJseSBub3Qgd29yayB3ZWxsIGlmIHlvdSB1c2UgdGhlICZxdW90O3NhZmV0eSBzY3JpcHQmcXVvdDsgb3B0aW9uIGFib3ZlLic7CiRsYW5nWydlbWFpbF9mcm9tX2FkZHJfaGVscCddID0gJ0RvIG5vdCBqdXN0IHBpY2sgYSByYW5kb20gYWRkcmVzcyBoZXJlIC0tIG1hbnkgSVNQcyB3aWxsPGJyIC8+bm90IGRlbGl2ZXIgdGhlIG1haWwgaWYgeW91IGFyZSB1c2luZyBhIGRpZmZlcmVudCBkb21haW4gbmFtZSB0aGFuIHlvdXIgYWN0dWFsPGJyIC8+aG9zdCBuYW1lIChpLmUuLCB1c2Ugc29tZXRoaW5nIGxpa2UgbmFtZUAlcyknOwokbGFuZ1sndGl0bGVfc3dpdGNoX2FkdmFuY2VkJ10gPSAnTmVlZCBtb3JlIGZpZWxkIHR5cGVzPyAnOwokbGFuZ1sndGl0bGVfc3dpdGNoX2Jhc2ljJ10gPSAnVG9vIG1hbnkgY29uZnVzaW5nIGZpZWxkIHR5cGVzPyAnOwokbGFuZ1sndGl0bGVfc3dpdGNoX2FkdmFuY2VkX2xpbmsnXSA9ICdTd2l0Y2ggdG8gQWR2YW5jZWQgTW9kZSc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYmFzaWNfbGluayddID0gJ1N3aXRjaCB0byBTaW1wbGUgTW9kZSc7CiRsYW5nWyd0aXRsZV9maWxlX3Jvb3QnXSA9ICdEaXJlY3RvcnkgdG8gc2F2ZSBmaWxlIGluJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcm9vdF9oZWxwJ10gPSAnVGhpcyBuZWVkcyB0byBiZSBhIGRpcmVjdG9yeSB0aGF0IHlvdXIgd2ViIHNlcnZlciBoYXMgcGVybWlzc2lvbnMgdG8gd3JpdGUgaW4uPGJyIC8+Q2htb2QgaXQgNzc3IGlmIHlvdSBoYXZlIHByb2JsZW1zL2RvdWJ0cy48YnIgLz5BbHNvLCBjaGVjayB0byBzZWUgdGhhdCB5b3UgZG8gbm90IGhhdmUgUEhQIGRpcmVjdG9yeSByZXN0cmljdGlvbnMuJzsKJGxhbmdbJ3RpdGxlX25ld2xpbmVfcmVwbGFjZW1lbnQnXSA9ICdOZXdsaW5lL0NhcnJpYWdlIFJldHVybiByZXBsYWNlbWVudCBjaGFyYWN0ZXInOwokbGFuZ1sndGl0bGVfbmV3bGluZV9yZXBsYWNlbWVudF9oZWxwJ10gPSAnTGVhdmUgYmxhbmsgdG8gYWxsb3cgbmV3bGluZXMgYW5kIGNhcnJpYWdlIHJldHVybnMgaW4gb3V0cHV0JzsKJGxhbmdbJ3RpdGxlX3NlbmRfdXNlcmNvcHknXSA9ICdTZW5kIFVzZXIgYSBDb3B5IG9mIFN1Ym1pc3Npb24/JzsKJGxhbmdbJ3RpdGxlX3NlbmRfdXNlcmNvcHlfbGFiZWwnXSA9ICdMYWJlbCBmb3IgQ2hlY2tib3ggKGlmIHVzZXIgY2hvaWNlKSc7CiRsYW5nWyd0aXRsZV9zZW5kX21lX2FfY29weSddID0gJ1NlbmQgbWUgYSBjb3B5IG9mIGZvcm0nOwokbGFuZ1sndGl0bGVfYWxsb3dfc3ViamVjdF9vdmVycmlkZSddID0gJ0FsbG93IHN1YmplY3QgdG8gYmUgb3ZlcnJpZGRlbj8nOwokbGFuZ1sndGl0bGVfYWxsb3dfc3ViamVjdF9vdmVycmlkZV9sb25nJ10gPSAnQWxsb3cgJiMwMzk7RW1haWwgJnF1b3Q7U3ViamVjdCZxdW90OyBGaWVsZHMmIzAzOTsgdG8gb3ZlcnJpZGUgdGhlIHN1YmplY3Qgc3BlY2lmaWVkIGluIHRoZSBwdWxsZG93bi4nOwokbGFuZ1snb3B0aW9uX25ldmVyJ10gPSAnTmV2ZXInOwokbGFuZ1snb3B0aW9uX3VzZXJfY2hvaWNlJ10gPSAnR2l2ZSB1c2VyIGEgY2hvaWNlIChjaGVja2JveCknOwokbGFuZ1snb3B0aW9uX2Fsd2F5cyddID0gJ0Fsd2F5cyc7CiRsYW5nWydlcnJvcl91c2VydGFnX2Rpc3Bvc2l0aW9uJ10gPSAnVXNlciBkZWZpbmVkIHRhZyByZXR1cm5lZCBhbiBlcnJvcic7CiRsYW5nWydlcnJvcl9jYXRhbG9nZXJfbW9kdWxlX25vdF9hdmFpbGFibGUnXSA9ICc8c3Ryb25nPkNhdGFsb2dlciBtb2R1bGUgZG9lcyBub3Qgc2VlbSB0byBiZSBpbnN0YWxsZWQvYWN0aXZlLjwvc3Ryb25nPic7CiRsYW5nWyd3YXJuaW5nJ10gPSAnV0FSTklORyEnOwokbGFuZ1snZGVmYXVsdF90ZW1wbGF0ZSddID0gJ0RlZmF1bHQgVGVtcGxhdGUnOwokbGFuZ1sndGFibGVfbGVmdF90ZW1wbGF0ZSddID0gJ1RhYmxlIFRlbXBsYXRlLCBUaXRsZXMgb24gbGVmdCc7CiRsYW5nWyd0YWJsZV90b3BfdGVtcGxhdGUnXSA9ICdUYWJsZSBUZW1wbGF0ZSwgVGl0bGUgb24gdG9wJzsKJGxhbmdbJ2Zvcm1fdGVtcGxhdGVfbmFtZSddID0gJ1RlbXBsYXRlIGZyb20gJXMnOwokbGFuZ1sndGVtcGxhdGVfYXJlX3lvdV9zdXJlJ10gPSAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIG92ZXJ3cml0ZSB5b3VyIHRlbXBsYXRlIHdpdGggdGhlIHNlbGVjdGVkIHRlbXBsYXRlPyAoRXZlbiBpZiB5b3Ugc2F5IE9LLCB5b3Ugd2lsbCBzdGlsbCBuZWVkIHRvIHNhdmUgdGhlIGNoYW5nZSknOwokbGFuZ1sndGl0bGVfYmFkX2Z1bmN0aW9uJ10gPSAnRXJyb3Igd2hlbiBjb21wdXRpbmcgJnF1b3Q7JXMmcXVvdDsuJzsKJGxhbmdbJ25vX3JlZmVycmVyX2luZm8nXSA9ICdObyBIVFRQX1JFRkVSRVIgaW5mbyBhdmFpbGFibGUgKHByb2JhYmx5IGR1ZSB0byB1c2Ugb2YgVXNlciBFbWFpbCBWYWxpZGF0aW9uKSc7CiRsYW5nWyd2YWxpZGF0aW9uX3BhcmFtX2Vycm9yJ10gPSAnVmFsaWRhdGlvbiBQYXJhbWV0ZXIgRXJyb3IuIFBsZWFzZSBtYWtlIHN1cmUgeW91IGNvcHkgdGhlIFVSTCBmcm9tIHlvdXIgZW1haWwgY29ycmVjdGx5ISc7CiRsYW5nWyd2YWxpZGF0aW9uX3Jlc3BvbnNlX2Vycm9yJ10gPSAnVmFsaWRhdGlvbiBSZXBzb25zZSBFcnJvci4gUGxlYXNlIG1ha2Ugc3VyZSB5b3UgY29weSB0aGUgVVJMIGZyb20geW91ciBlbWFpbCBjb3JyZWN0bHkhJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbm9fZmllbGRfZXJyb3InXSA9ICdWYWxpZGF0aW9uIFJlcHNvbnNlIEVycm9yLiBObyBlbWFpbCB2YWxpZGF0aW9uIGZpZWxkIGluIHRoaXMgZm9ybSEnOwokbGFuZ1sndXBncmFkZTAzdG8wNCddID0gJ0Zvcm0gVGVtcGxhdGUgd2FzIHVwZGF0ZWQgYXV0b21hdGljYWxseSBhcyBwYXJ0IG9mIHRoZSB2ZXJzaW9uIDAuMyB0byB2ZXJzaW9uIDAuNCB1cGdyYWRlLiBZb3UgbWF5IG5lZWQgdG8gbWFrZSBzb21lIGZpeGVzLiBJZiB5b3UmIzAzOTtyZSB1c2luZyB0aGUgZGVmYXVsdCBmb3JtLCBzaW1wbHkgcmVwbGFjZSB0aGlzIHRlbXBsYXRlIHdpdGggJnF1b3Q7ZGVmYXVsdCZxdW90OyB1c2luZyB0aGUgcHVsbGRvd24gYWJvdmUuJzsKJGxhbmdbJ2FkbWluZGVzYyddID0gJ0FkZCwgZWRpdCBhbmQgbWFuYWdlIGludGVyYWN0aXZlIEZvcm1zJzsKJGxhbmdbJ29wZXJhdG9yc19oZWxwJ10gPSAnSWYgeW91IHVzZSBTdHJpbmcgZXZhbHVhdGlvbiwgdGhlIG9ubHkgb3BlcmF0aW9uIGF2YWlsYWJsZSBpcyBjb25jYXRlbmF0aW9uICgrKSwgd2hpbGUgaWYgeW91IHVzZSBOdW1iZXIgZXZhbHVhdGlvbiB5b3UgaGF2ZSBiYXNpYywgdmVyeSBzaW1wbGUgbWF0aCAoLCArLCAtLCAqLCAvLCApLic7CiRsYW5nWydkYXRlX2phbnVhcnknXSA9ICdKYW51YXJ5JzsKJGxhbmdbJ2RhdGVfZmVicnVhcnknXSA9ICdGZWJydWFyeSc7CiRsYW5nWydkYXRlX21hcmNoJ10gPSAnTWFyY2gnOwokbGFuZ1snZGF0ZV9hcHJpbCddID0gJ0FwcmlsJzsKJGxhbmdbJ2RhdGVfbWF5J10gPSAnTWF5JzsKJGxhbmdbJ2RhdGVfanVuZSddID0gJ0p1bmUnOwokbGFuZ1snZGF0ZV9qdWx5J10gPSAnSnVseSc7CiRsYW5nWydkYXRlX2F1Z3VzdCddID0gJ0F1Z3VzdCc7CiRsYW5nWydkYXRlX3NlcHRlbWJlciddID0gJ1NlcHRlbWJlcic7CiRsYW5nWydkYXRlX29jdG9iZXInXSA9ICdPY3RvYmVyJzsKJGxhbmdbJ2RhdGVfbm92ZW1iZXInXSA9ICdOb3ZlbWJlcic7CiRsYW5nWydkYXRlX2RlY2VtYmVyJ10gPSAnRGVjZW1iZXInOwokbGFuZ1snc3VibWlzc2lvbl9lcnJvciddID0gJ1NvcnJ5ISBUaGVyZSB3YXMgYW4gZXJyb3IgaGFuZGxpbmcgeW91ciBmb3JtIHN1Ym1pc3Npb24uJzsKJGxhbmdbJ3N1Ym1pdF9lcnJvciddID0gJ0Zvcm1CdWlsZGVyIHN1Ym1pdCBlcnJvcjogJXMnOwokbGFuZ1sndXBsb2Fkc19lcnJvciddID0gJ0Vycm9yIGNvbW1pdHRpbmcgZmlsZSB0byB0aGUgdXBsb2FkcyBtb2R1bGU6ICVzJzsKJGxhbmdbJ25vdXBsb2Fkc19lcnJvciddID0gJ0NvdWxkIG5vdCBmaW5kIHRoZSB1cGxvYWRzIG1vZHVsZSc7CiRsYW5nWyd1cGxvYWRfYXR0YWNoX2Vycm9yJ10gPSAnVXBsb2FkL0F0dGFjaG1lbnQgZXJyb3Igb24gZmlsZSAlcyAodG1wX25hbWU6ICVzLCBvZiB0eXBlICVzKSc7CiRsYW5nWydzdWJtaXNzaW9uX2Vycm9yX2ZpbGVfbG9jayddID0gJ0Vycm9yLiBVbmFibGUgdG8gb2J0YWluIGxvY2sgZm9yIGZpbGUuJzsKJGxhbmdbJ3VuY2hlY2tlZF9ieV9kZWZhdWx0J10gPSAnRGVmYXVsdDogdW5jaGVja2VkJzsKJGxhbmdbJ2NoZWNrZWRfYnlfZGVmYXVsdCddID0gJ0RlZmF1bHQ6IGNoZWNrZWQnOwokbGFuZ1snZW1haWxfZGVmYXVsdF90ZW1wbGF0ZSddID0gJ0Zvcm1CdWlsZGVyIFN1Ym1pc3Npb24nOwokbGFuZ1snZW1haWxfdGVtcGxhdGVfbm90X3NldCddID0gJzxici8+RW1haWwgVGVtcGxhdGUgbm90IHlldCBzZXQhJzsKJGxhbmdbJ21pc3NpbmdfY21zX21haWxlciddID0gJ0Zvcm1CdWlsZGVyOiBDYW5ub3QgZmluZCByZXF1aXJlZCBtb2R1bGUgQ01TTWFpbGVyISc7CiRsYW5nWyd1c2VyX2FwcHJvdmVkX3N1Ym1pc3Npb24nXSA9ICdVc2VyIGFwcHJvdmVkIHN1Ym1pc3Npb24gJXMgZnJvbSAlcyc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J10gPSAnRXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZCc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InXSA9ICdFdmVudCB0cmlnZ2VyZWQgaWYgdGhlcmUgaXMgYW4gZXJyb3Igd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1EaXNwbGF5J10gPSAnRXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIGRpc3BsYXllZCc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J10gPSAnPHA+RXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZC48L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gVGhlIGZvcm0gbmFtZSAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4NCjxsaT48ZW0+dmFsdWVfPG5hbWU+PC9lbT4gLSBTdXBwbHkgYSBkZWZhdWx0IHZhbHVlIHRvIGEgZmllbGQgd2l0aCB0aGUgc3BlY2lmaWVkIG5hbWUuPC9saT4NCjwvdWw+ICc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InXSA9ICc8cD5FdmVudCB0cmlnZ2VyZWQgaWYgdGhlcmUgaXMgYW4gZXJyb3Igd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIFRoZSBmb3JtIG5hbWUgKHN0cmluZyk8L2xpPg0KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBUaGUgaW50ZXJuYWwgZm9ybSBpZCAoaW50KTwvbGk+DQo8bGk+PGVtPmVycm9yPC9lbT4gLSBBIGxpc3Qgb2YgYWxsIGtub3duIGVycm9ycyAoc3RyaW5nKTwvbGk+DQo8L3VsPiAnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXSA9ICc8cD5FdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgZGlzcGxheWVkPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIFRoZSBmb3JtIG5hbWUgKHN0cmluZyk8L2xpPg0KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBUaGUgaW50ZXJuYWwgZm9ybSBpZCAoaW50KTwvbGk+DQo8L3VsPiAnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX3Jlc3BvbnNlX2lkJ10gPSAnUmVzcG9uc2UgSUQuIFVzZWQgYnkgRm9ybUJyb3dzZXInOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX3Bhc3NlZF9mcm9tX3RhZyddID0gJ0RlZmF1bHQgZmllbGQgdmFsdWVzOyBzZWUgbW9kdWxlIGhlbHAnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2ZpZWxkX2lkJ10gPSAnRmllbGQgSUQgZm9yIGludGVybmFsIG9wZXJhdGlvbnMnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2Zvcm1fbmFtZSddID0gJ0Zvcm0gTmFtZSc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZm9ybV9pZCddID0gJ0Zvcm0gSUQgZm9yIGludGVybmFsIG9wZXJhdGlvbnMnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2dlbmVyYWwnXSA9ICdHZW5lcmFsIHBhcmFtZXRlcnMgZm9yIGludGVybmFsIG9wZXJhdGlvbnMnOwokbGFuZ1sndGVtcGxhdGVfdmFyaWFibGVfaGVscCddID0gJzxoMz5Gb3JtIFRlbXBsYXRlIFZhcmlhYmxlczwvaDM+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+dGhlIElEIG9mIHRoZSBmaWVsZCYjMDM5O3MgaW5wdXQgKHVzZWZ1bCBmb3IgbGFiZWwgZm9yPSZxdW90O2ZvbyZxdW90Oyk8L3RkPjwvdHI+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+PHRkPiZxdW90O0NvbnRpbnVlJnF1b3Q7IG9yICZxdW90O1N1Ym1pdCZxdW90OyBidXR0b24gZm9yIG11bHRpcGFydCBmb3JtcywgYWRqdXN0cyBhdXRvbWF0aWNhbGx5PC90ZD48L3RyPg0KPC90YWJsZT4NCjxwPkR1bm5vIHdoeSB5b3UmIzAzOTtkIHdhbnQgc29tZSBvZiB0aG9zZSwgYnV0IHRoZXJlIHlvdSBnby4uLjwvcD4NCic7CiRsYW5nWydwb3N0X2luc3RhbGwnXSA9ICc8YnIgLz5NYWtlIHN1cmUgdG8gc2V0IHRoZSAmcXVvdDtNb2RpZnkgRm9ybXMmcXVvdDsgcGVybWlzc2lvbnMNCm9uIHVzZXJzIHdobyB3aWxsIGJlIGFkbWluaXN0ZXJpbmcgZmVlZGJhY2sgZm9ybXMuIEFsc28sIGlmIHlvdSYjMDM5O2xsIGJlIGVtYWlsaW5nIGZvcm0NCnJlc3VsdHMsIGJlIHN1cmUgdG8gdXBkYXRlIHRoZSBDb25maWd1cmF0aW9uIGFwcHJvcHJpYXRlbHkuPGJyIC8+DQpQbGVhc2UgYmUgYXdhcmUgdGhhdCBhIGZlZWRiYWNrIGZvcm0gc2hvdWxkIG5vdCBiZSBhY3RpdmUgKGUuZy4sIHVzYWJsZSBieSB0aGUgcHVibGljKSB3aGlsZQ0KeW91IGFyZSBzdGlsbCBlZGl0aW5nIHRoZSBmb3JtLiBZb3Ugc2hvdWxkIGNyZWF0ZSB0aGUgZm9ybSwgYW5kIHBsYWNlIHRoZSB0YWcgaW50byBhbiBhY3RpdmUNCmNvbnRlbnQgcGFnZSBvbmx5IHdoZW4geW91IGhhdmUgZmluaXNoZWQgZWRpdGluZy4gT3RoZXJ3aXNlLCBlcnJvbmVvdXMgcmVzdWx0cyBjb3VsZCBiZSByZXR1cm5lZC48YnIgLz4NCkFkZGl0aW9uYWxseSwgdGhpcyB2ZXJzaW9uIGRvZXMgbm90IHN1cHBvcnQgcGFyYWxsZWwgZWRpdGluZyBvZiBmb3Jtcy4gUGxlYXNlIHRha2UgY2FyZSB0aGF0DQpvbmx5IG9uZSBhZG1pbiBpcyBlZGl0aW5nIGEgZ2l2ZW4gZm9ybSBhdCBhIGdpdmVuIHRpbWUuJzsKJGxhbmdbJ2hlbHAnXSA9ICc8aDM+V2hhdCBEb2VzIFRoaXMgRG8/PC9oMz4NCjxwPlRoZSBGb3JtIEJ1aWxkZXIgTW9kdWxlIGFsbG93cyB5b3UgdG8gY3JlYXRlIGZlZWRiYWNrIGZvcm1zIChpbiBmYWN0LCBpdCYjMDM5O3MgYSByZXBsYWNlbWVudCBvZiB0aGUgb3JpZ2luYWwgRmVlZGJhY2sgRm9ybSBtb2R1bGUpLCB3aXRoIHRoZSBhZGRlZCBwb3dlciBvZiBkYXRhYmFzZSBzdG9yYWdlLiBXaXRoIGl0cyBjb21wYW5pb24gbW9kdWxlIEZvcm0gQnJvd3NlciwgeW91IGNhbiB1c2UgaXQgdG8gY3JlYXRlIHNpbXBsZSBkYXRhYmFzZSBhcHBsaWNhdGlvbnMuPC9wPg0KPHA+VGhlIGZvcm1zIGNyZWF0ZWQgdXNpbmcgdGhlIEZvcm0gQnVpbGRlciBtYXkgYmUgaW5zZXJ0ZWQNCmludG8gdGVtcGxhdGVzIGFuZC9vciBjb250ZW50IHBhZ2VzLiBGb3JtcyBtYXkgY29udGFpbiBtYW55IGtpbmRzIG9mIGlucHV0cywgYW5kIG1heSBoYXZlDQp2YWxpZGF0aW9uIGFwcGxpZWQgdG8gdGhlc2UgaW5wdXRzLiBUaGUgcmVzdWx0cyBvZiB0aGVzZSBmb3JtcyBtYXkgYmUgaGFuZGxlZCBpbiBhIHZhcmlldHkgb2Ygd2F5cy48L3A+DQoNCjxoMz5Ib3cgRG8gSSBVc2UgaXQ/PC9oMz4NCjxQPkluc3RhbGwgaXQsIGFuZCBwb2tlIGFyb3VuZCB0aGUgbWVudXMuIFBsYXkgd2l0aCBpdC4gVHJ5IGNyZWF0aW5nIGZvcm1zLCBhbmQgYWRkaW5nIHRoZW0gdG8geW91ciBjb250ZW50Lg0KSWYgeW91IGdldCBzdHVjaywgY2hhdCB3aXRoIG1lIG9uIHRoZSAjY21zIElSQyBjaGFubmVsLCBwb3N0IHRvIHRoZSBmb3J1bSwgc2VuZCBtZSBlbWFpbCwgb3IsIGlmIHlvdSYjMDM5O3JlDQpyZWFsbHkgZGVzcGVyYXRlLCB0cnkgcmVhZGluZyB0aGUgaW5zdHJ1Y3Rpb25zIG9uIHRoZSByZXN0IG9mIHRoaXMgcGFnZS48L1A+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+U3RhdGUuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBTdGF0ZXMgb2YgdGhlIFUuUy48L2xpPg0KPGxpPkNhbmFkaWFuIFByb3ZpbmNlLiBUaGlzIGlzIGEgcHVsbGRvd24gbGlzdGluZyB0aGUgQ2FuYWRpYW4gUHJvdmluY2VzIChDb250cmlidXRlZCBieSBOb2VsIE1jR3Jhbi4gVGhhbmtzISk8L2xpPg0KPGxpPkNvdW50cmllcy4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIENvdW50cmllcyBvZiB0aGUgd29ybGQgKGFzIG9mIEp1bHkgMjAwNSkuPC9saT4NCjxsaT5EYXRlIFBpY2tlci4gVGhpcyBpcyBhIHRyaXBsZSBwdWxsZG93biBhbGxvd2luZyB0aGUgdXNlciB0byBzZWxlY3QgYSBkYXRlLjwvbGk+DQo8bGk+VGltZSBQaWNrZXIuIFRoaXMgaXMgYSBzZXQgb2YgcHVsbGRvd25zIGFsbG93aW5nIHRoZSB1c2VyIHRvIHNlbGVjdCBhIHRpbWUgKHVzaW5nIDEyIG9yIDI0IGhvdXIgY2xvY2spLjwvbGk+DQo8bGk+RmlsZSBVcGxvYWQuIFRoaXMgaXMgYSBmaWxlIHVwbG9hZCBmaWVsZC48L2xpPg0KPGxpPkxpbmsgKFVzZXIgRW50ZXJlZCkuIFRoaXMgY3JlYXRlcyBhIGRvdWJsZSBpbnB1dCBmaWVsZCBmb3IgZ2V0dGluZyBhIGxpbmsgVVJMIGFuZCBsaW5rIHRpdGxlLjwvbGk+DQo8bGk+VGV4dCBGaWVsZCAoTXVsdGlwbGUpLiBUaGlzIGZpZWxkIGNyZWF0ZXMgb25lIG9yIG1vcmUgdGV4dCBpbnB1dHMgd2l0aCBhZGQgYW5kIGRlbGV0ZSBidXR0b25zLCBlZmZlY3RpdmVseSBnaXZpbmcgdGhlIGVuZCB1c2VyIGEgd2F5IG9mIGNyZWF0aW5nIHZhcmlhYmxlLWxlbmd0aCBsaXN0cy48L2xpPg0KPC91bD48L2xpPg0KDQo8bGk+RW1haWwtc3BlY2lmaWMgSW5wdXRzDQo8dWw+PGxpPkVtYWlsICZxdW90O0Zyb20gQWRkcmVzcyZxdW90OyBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSB0aGVpciBlbWFpbCBhZGRyZXNzLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgYWRkcmVzcyBpbiB0aGUgJnF1b3Q7RnJvbSZxdW90OyBmaWVsZC48L2xpPg0KPGxpPkVtYWlsICZxdW90O0Zyb20gTmFtZSZxdW90OyBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSB0aGVpciBuYW1lLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgbmFtZSBpbiB0aGUgJnF1b3Q7RnJvbSZxdW90OyBmaWVsZC48L2xpPg0KPGxpPkVtYWlsIFN1YmplY3QgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgYSBzdWJqZWN0IGZvciB0aGVpciBlbWFpbC4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIGluIHRoZSAmcXVvdDtTdWJqZWN0JnF1b3Q7IGZpZWxkLiBUaGlzIG1heSBjYXVzZSB0cm91YmxlIHdpdGggY2VydGFpbiBkaXNwb3NpdGlvbnMgdGhhdCB3YW50IHRvIGNvbnRyb2wgdGhlIEVtYWlsIFN1YmplY3QsIHNvIHVzZSBpdCB3aXRoIGNhdXRpb24uPC9saT4NCjwvdWw+PC9saT4NCg0KPGxpPkRpc3BsYXkgQ29udHJvbCBGaWVsZHM8dWw+DQo8bGk+LVBhZ2UgQnJlYWsuIFRoaXMgYWxsb3dzIHlvdSB0byBzcGxpdCB5b3VyIGZlZWRiYWNrIGZvcm0gaW50byBtdWx0aXBsZSBwYWdlcy4gRWFjaCBwYWdlIGlzDQppbmRlcGVuZGVudGx5IHZhbGlkYXRlZC4gVGhpcyBpcyBnb29kIGZvciBhcHBsaWNhdGlvbnMgbGlrZSBvbmxpbmUgc3VydmV5cy48L2xpPg0KPGxpPi1GaWVsZHNldCBTdGFydC4gQ29tYmluZWQgd2l0aCBGaWVsZHNldCBFbmQsIHRoaXMgYWxsb3dzIHlvdSB0byBncm91cCB2YXJpb3VzIGZpZWxkcyB3aXRoaW4geW91ciBmb3JtLiBVc2UgdGhpcyB0byBzdGFydCBhIGdpdmVuIGdyb3VwaW5nLjwvbGk+DQo8bGk+LUZpZWxkc2V0IEVuZC4gQ29tYmluZWQgd2l0aCBGaWVsZHNldCBTdGFydCwgdGhpcyBhbGxvd3MgeW91IHRvIGdyb3VwIHZhcmlvdXMgZmllbGRzIHdpdGhpbiB5b3VyIGZvcm0uIFVzZSB0aGlzIHRvIGVuZCBhIGdpdmVuIGdyb3VwaW5nLjwvbGk+DQo8bGk+LUhpZGRlbiBGaWVsZC4gVGhpcyBhbGxvd3MgeW91IHRvIGVtYmVkIGEgaGlkZGVuIGZpZWxkIGluIHlvdXIgZm9ybS48L2xpPg0KPGxpPi1TdGF0aWMgVGV4dC4gVGhpcyBhbGxvd3MgeW91IHRvIHB1dCB0ZXh0IG9yIGEgbGFiZWwgaW4gdGhlIG1pZGRsZSBvZiB5b3VyIGZvcm0uIFRoaXMgaXMgdXNlZnVsIGZvciBnaXZpbmcgYWRkaXRpb25hbCBoZWxwIHRleHQsIGVzcGVjaWFsbHkgaWYgeW91JiMwMzk7cmUgbm90IHVzaW5nIGEgQ3VzdG9tIFRlbXBsYXRlIHRvIHJlbmRlciB5b3VyIGZvcm0uPC9saT4NCjxsaT4tU3RhdGljIExpbmsuIFRoaXMgYWxsb3dzIHlvdSB0byBwdXQgYSBsaW5rIHRvIGEgZ2l2ZW4gcGFnZSBpbnRvIHlvdXIgZm9ybS4gT3B0aW9uYWxseSwgeW91IGNhbiBoYXZlIGl0IGF1dG9wb3B1bGF0ZSB3aXRoIHRoZSBwYWdlIHdoZXJlIHRoZSBmb3JtIGlzIGVtYmVkZGVkICh1c2VmdWwgaWYgeW91JiMwMzk7cmUgc2VuZGluZyByZXN1bHRzIHZpYSBlbWFpbCkuPC9saT4NCjxsaT4tQ29tcHV0ZWQgRmllbGQuIFRoaXMgYWxsb3dzIHlvdSB0byBlbWJlZCBhIGNvbXB1dGVkIGZpZWxkIGluIHlvdXIgZm9ybS4gSXQgaXMgbm90IHZpc2libGUgdG8gdGhlIHVzZXIgdW50aWwgYWZ0ZXIgdGhlIGZvcm0gaXMgc3VibWl0dGVkLiBJdCBhbGxvd3MgeW91IHRvIGRvIHNpbXBsZSBhcml0aG1ldGljIG9yIHN0cmluZyBjb25jYXRlbmF0aW9uLjwvbGk+DQo8bGk+LVVuaXF1ZSBJbnRlZ2VyIChTZXJpYWwpLiBUaGlzIGlzIGFuIGludGVnZXIgdGhhdCBpbmNyZWFzZXMgZXZlcnkgdGltZSBzb21lb25lIGhpdHMgeW91ciBmb3JtLiBZb3VyIHJlc3VsdHMgbWF5IG5vdCBiZSBzZXF1ZW50aWFsLCBidXQgdGhleSB3aWxsIGluY3JlYXNlIG1vbm90b25pY2FsbHkuPC9saT4NCjwvdWw+PC9saT4NCg0KPGxpPkZvcm0gSGFuZGxpbmcgSW5wdXRzIChEaXNwb3NpdGlvbnMpDQo8dWw+PGxpPipDYWxsIGEgVXNlciBEZWZpbmVkIFRhZyBXaXRoIHRoZSBGb3JtIFJlc3VsdHMuIFRoaXMgc3VibWl0cyBhbGwgdGhlIGZvcm0gcmVzdWx0cyB0byB0aGUgVXNlci1EZWZpbmVkIFRhZyB5b3Ugc3BlY2lmeS4gVGhlIFVEVCBjYW4gaGFuZGxlIHRoZSByZXN1bHRzIGhvd2V2ZXIgaXQgd2FudHMuIFZhbHVlcyBhcmUgcGFzc2VkIGFzICRwYXJhbVsmIzAzOTtmaWVsZF9uYW1lJiMwMzk7XS48L2xpPg0KPGxpPipFbWFpbCBSZXN1bHRzIEJhc2VkIG9uIFB1bGxkb3duLiBUaGlzIGlzIHVzZWZ1bCBmb3Igd2ViIHNpdGVzIHdoZXJlIGNvbW1lbnRzIGdldCByb3V0ZWQgYmFzZWQgb24gdGhlaXIgc3ViamVjdCBtYXR0ZXIsIGUuZy4sIGJ1Z3MgZ2V0IHNlbnQgdG8gb25lIHBlcnNvbiwgbWFya2V0aW5nIHF1ZXN0aW9ucyB0byBhbm90aGVyIHBlcnNvbiwgc2FsZXMgcmVxdWVzdHMgdG8gc29tZW9uZSBlbHNlLCBldGMuIFRoZSBwdWxsZG93biBpcyBwb3B1bGF0ZWQgd2l0aCB0aGUgc3ViamVjdHMsIGFuZCBlYWNoIGdldHMgZGlyZWN0ZWQgdG8gYSBzcGVjaWZpYyBlbWFpbCBhZGRyZXNzLiBZb3Ugc2V0IHVwIHRoZXNlIG1hcHBpbmdzIGluIHRoZSB3aGVuIHlvdSBjcmVhdGUgb3IgZWRpdCBhIGZpZWxkIG9mIHRoaXMgdHlwZS4gSWYgeW91IHVzZSBvbmUgb2YgdGhlc2UgJnF1b3Q7RGlyZWN0b3ImcXVvdDsgcHVsbGRvd25zLCB0aGUgdXNlciBtdXN0IG1ha2UgYSBzZWxlY3Rpb24gaW4gb3JkZXIgdG8gc3VibWl0IHRoZQ0KZm9ybS4gVGhpcyBpbnB1dCBpcyBwYXJ0IG9mIHRoZSBmb3JtIHRoZSB1c2VyIHNlZXMsIGFsdGhvdWdoIHRoZSBlbWFpbCBhZGRyZXNzZXMgYXJlIG5vdCBtYWRlIHZpc2libGUgbm9yDQphcmUgdGhleSBlbWJlZGRlZCBpbiB0aGUgSFRNTC48L2xpPg0KPGxpPipFbWFpbCAmcXVvdDtGcm9tIEFkZHJlc3MmcXVvdDsgRmllbGQsIGFuZCBzZW5kIGNvcHkuIFRoaXMgd29ya3MgbGlrZSB0aGUgRW1haWwgJnF1b3Q7RnJvbSBBZGRyZXNzJnF1b3Q7IEZpZWxkIGRlc2NyaWJlZCBhYm92ZSwgYnV0IGl0IHByb3ZpZGVzIG9wdGlvbnMgZm9yIHNlbmRpbmcgYSBjb3B5IG9mIHRoZSByZXN1bHRzIHRvIHRoZSB1c2VyLjwvbGk+DQo8bGk+KkVtYWlsIFJlc3VsdHMgdG8gc2V0IEFkZHJlc3MoZXMpLiBUaGlzIHNpbXBseSBzZW5kcyB0aGUgZm9ybSByZXN1bHRzIHRvIG9uZSBvciBtb3JlIGVtYWlsIGFkZHJlc3NlcyB0aGF0IHlvdSBlbnRlciB3aGVuIHlvdSBjcmVhdGUgb3IgZWRpdCB0aGlzIHR5cGUgb2YgZmllbGQuIFRoaXMgZmllbGQgYW5kIGl0cyBuYW1lIGFyZSBub3QgdmlzaWJsZSBpbiB0aGUNCmZvcm0gdGhhdCB0aGUgdXNlciBzZWVzLiBUaGUgZW1haWwgYWRkcmVzc2VzIGFyZSBub3QgbWFkZSB2aXNpYmxlIG5vcg0KYXJlIHRoZXkgZW1iZWRkZWQgaW4gdGhlIEhUTUwuPC9saT4NCjxsaT4qRW1haWwgdG8gVXNlci1TdXBwbGllZCBBZGRyZXNzLiBUaGlzIHB1dHMgYW4gaW5wdXQgZmllbGQgaW4gdGhlIGZvcm0gZm9yIHRoZSB1c2VyIHRvIHBvcHVsYXRlIHdpdGggYW4gZW1haWwgYWRkcmVzcy4gVGhlIGZvcm0gcmVzdWx0cyBnZXQgc2VudCB0byB0aGF0IGFkZHJlc3MuIEJld2FyZSBvZiBTcGFtIGFidXNlISBBY3RpdmUgdGhlIHByaW1pdGl2ZSBhbnRpLXNwYW0gZmVhdHVyZXMgaW4gdGhlIEZvcm1CdWlsZGVyIGNvbmZpZ3VyYXRpb24gc2NyZWVuLjwvbGk+DQo8bGk+KlN0b3JlIFJlc3VsdHMgaW4gRGF0YWJhc2UuIFRoaXMgd2lsbCBzdG9yZSB0aGUgZm9ybSBjb250ZW50cyBpbiBhbiBpbnRlcm5hbCBkYXRhYmFzZS4gWW91IHdpbGwgYWx3YXlzIHVzZSB0aGlzIGRpc3Bvc2l0aW9uIGlmIHlvdSB1c2UgdGhlIGZvcm0gd2l0aCBGb3JtQnJvd3Nlci48L2xpPg0KPGxpPipSZWRpcmVjdCB0byBQYWdlIEJhc2VkIG9uIFB1bGxkb3duLiBUaGlzIGFsbG93cyB5b3UgdG8gcmVkaXJlY3QgdGhlIGZvcm0gdG8gYSBkaWZmZXJlbnQgc2l0ZSBwYWdlIGRlcGVuZGluZyBvbiBpdHMgdmFsdWUuIElmIHlvdSBoYXZlIG11bHRpcGxlIGRpc3Bvc2l0aW9ucywgbWFrZSBzdXJlIHRoaXMgaXMgdXNlZCBsYXN0LjwvbGk+DQo8bGk+KlZhbGlkYXRlIHZpYSBFbWFpbC4gVGhpcyBpcyBhIHN0cmFuZ2UgYW5kIHBvd2VyZnVsIGZpZWxkLiBJdCBwcm92aWRlcyB0aGUgdXNlciBhIG1hbmRhdG9yeSBpbnB1dCBmb3IgdGhlaXIgZW1haWwgYWRkcmVzcy4gT25jZSB0aGV5IHN1Ym1pdCB0aGVpciBmb3JtLCB0aGUgc3RhbmRhcmQgZm9ybSBkaXNwb3NpdGlvbnMgYXJlIG5vdCBwZXJmb3JtZWQgLS0gcmF0aGVyLCBpdCBzZW5kIHRoZSB1c2VyIGFuIGVtYWlsIHdpdGggYSBzcGVjaWFsIGNvZGVkIGxpbmsuIElmIHRoZXkgY2xpY2sgb24gdGhlIGxpbmssIHRoZSBvdGhlciBmb3JtIGlzIGNvbnNpZGVyZWQgJnF1b3Q7YXBwcm92ZWQsJnF1b3Q7IGFuZCB0aGUgb3RoZXIgZGlzcG9zaXRpb25zIGFyZSBhbGwgcGVyZm9ybWVkLjwvbGk+DQo8bGk+KldyaXRlIFJlc3VsdHMgdG8gRmxhdCBGaWxlLiBUaGlzIHRha2VzIHRoZSBmb3JtIHJlc3VsdHMgYW5kIHdyaXRlcyB0aGVtIGludG8gYSB0ZXh0IGZpbGUuIFlvdSBtYXkNCnNlbGVjdCB0aGUgbmFtZSBvZiB0aGUgZmlsZSwgYW5kIHNldCBpdHMgZm9ybWF0LiBUaGVzZSBmaWxlcyBhcmUgd3JpdHRlbiB0byB0aGUgJnF1b3Q7b3V0cHV0JnF1b3Q7IGRpcmVjdG9yeSB1bmRlciB0aGUNCm1vZHVsZSYjMDM5O3MgaW5zdGFsbGF0aW9uIGRpcmVjdG9yeSwgYXNzdW1pbmcgdGhlIHdlYiBzZXJ2ZXIgaGFzIHBlcm1pc3Npb24gdG8gd3JpdGUgdGhlcmUuPC9saT4NCjxsaT4qU2F2ZSBSZXN1bHRzIHRvIEZpbGUgQmFzZWQgb24gUHVsbGRvd24uIExpa2UgdGhlIEZsYXQgRmlsZSBkaXNwb3NpdGlvbiwgZXhjZXB0IHRoZSB2YWx1ZSBvZiBhIHB1bGwtZG93biBkZXRlcm1pbmVzIHdoaWNoIGZpbGUgcmVzdWx0cyBnZXQgd3JpdHRlbiB0by48L2xpPg0KPGxpPipTYXZlIFJlc3VsdHMgdG8gRmlsZShzKSBCYXNlZCBvbiBNdWx0aXBsZSBTZWxlY3Rpb25zLiBMaWtlIHRoZSBGbGF0IEZpbGUgZGlzcG9zaXRpb24sIGV4Y2VwdCB0aGUgdmFsdWUocykgb2YgY2hlY2tib3hlcyAgZGV0ZXJtaW5lcyB3aGljaCBmaWxlKHMpIHJlc3VsdHMgZ2V0IHdyaXR0ZW4gdG8uPC9saT4NCjxsaT4qRW1haWwgdG8gQ01TIEFkbWluIFVzZXIuIFByb3ZpZGVzIGEgcHVsbC1kb3duIG9mIENNUyBBZG1pbiB1c2VycywgYW5kIGRpcmVjdHMgdGhlIHJlc3VsdHMgYXMgYW4gZW1haWwgdG8gdGhlIHNlbGVjdGVkIGFkbWluLjwvbGk+DQo8bGk+KlN0b3JlIFJlc3VsdHMgZm9yIEZvcm1Ccm93c2VyIE1vZHVsZSB2LjMuIFN0b3JlcyB0aGUgZm9ybSByZXN1bHRzIGluIGFuIFhNTCBzdHJ1Y3R1cmUgYXMgYSBzaW5nbGUgZGF0YWJhc2UgcmVjb3JkLiBUaGlzIHdpbGwgYmVjb21lIHRoZSBpbnRlcmZhY2UgdG8gRm9ybSBCcm93c2VyIGluIHRoZSBuZXh0IHJlbGVhc2UuPC9saT4NCg0KPC91bD48L2xpPjwvbGk+PC91bD4NCg0KDQo8aDM+UGFzc2luZyBEZWZhdWx0IFZhbHVlcyB0byBGb3JtczwvaDM+DQo8cD5DYWxndXkgYWRkZWQgYSBuaWNlIGZlYXR1cmUsIHdoaWNoIGlzIHRoYXQgeW91IGNhbiBwYXNzIGRlZmF1bHQgZmllbGQgdmFsdWVzIHRvIHlvdXIgZm9ybSB2aWEgdGhlIG1vZHVsZSB0YWcuIFRoaXMgYWxsb3dzIHlvdSB0byBoYXZlDQp0aGUgc2FtZSBmb3JtIGluIG11bHRpcGxlIHBsYWNlcywgYnV0IHdpdGggZGlmZmVyZW50IGRlZmF1bHQgdmFsdWVzLiBJdCBtYXkgbm90IHdvcmsgZm9yIG1vcmUgZXhvdGljIGZpZWxkIHR5cGVzLCBidXQgZm9yIGZpZWxkcyB0aGF0IGhhdmUNCmEgc2luZ2xlIHZhbHVlLCB5b3UgY2FuIHNwZWNpZnkgbGlrZTo8L3A+DQo8cD57Y21zX21vZHVsZSBtb2R1bGU9JiMwMzk7Rm9ybUJ1aWxkZXImIzAzOTsgZm9ybT0mIzAzOTtteV9mb3JtJiMwMzk7IHZhbHVlXzxpPkZJRUxETkFNRTwvaT49JiMwMzk7ZGVmYXVsdF92YWx1ZSYjMDM5O308L3A+DQo8cD5UaGlzIHdpbGwgc2V0IHRoZSBmaWVsZCB3aXRoIDxpPkZJRUxETkFNRTwvaT4gdG8gJiMwMzk7ZGVmYXVsdF92YWx1ZSYjMDM5Oy48L3A+DQo8cD5UaGlzIGNhbiBiZSBwcm9ibGVtYXRpYywgYXMgc29tZXRpbWVzIGZpZWxkIG5hbWVzIGFyZSB1bndlaWxkeSBvciBjb250YWluIGNoYXJhY3RlcnMgdGhhdCBkb24mIzAzOTt0IHdvcmsgd2VsbCB3aXRoIFNtYXJ0eS4gU28gdGhlcmUgaXMgYW4NCmFsdGVybmF0aXZlIGxpa2UgdGhpczo8L3A+DQo8cD57Y21zX21vZHVsZSBtb2R1bGU9JiMwMzk7Rm9ybUJ1aWxkZXImIzAzOTsgZm9ybT0mIzAzOTtteV9mb3JtJiMwMzk7IHZhbHVlX2ZsZDxpPk5VTUJFUjwvaT49JiMwMzk7ZGVmYXVsdF92YWx1ZSYjMDM5O308L3A+DQo8cD5UaGF0IHVzZXMgZmllbGQgPGk+TlVNQkVSPC9pPiwgd2hlcmUgPGk+TlVNQkVSPC9pPiBpcyB0aGUgaW50ZXJuYWwgRm9ybUJ1aWxkZXIgZmllbGQgaWQuIFlvdSBtaWdodCB3b25kZXIgaG93IHlvdSBrbm93IHdoYXQgdGhhdCBpZCBpcy4gU2ltcGx5IGdvIGludG8gdGhlIEZvcm1CdWlsZGVyIGNvbmZpZ3VyYXRpb24gdGFiLA0KYW5kIGNoZWNrICZxdW90O1Nob3cgRmllbGQgSURzJnF1b3Q7PC9wPg0KDQo8aDM+RW1haWwgYW5kIEZsYXQgRmlsZSBUZW1wbGF0ZXM8L2gzPg0KPHA+TWFueSBkaXNwb3NpdGlvbiB0eXBlcyBhbGxvdyB5b3UgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZm9yIHRoZSBlbWFpbCB0aGF0IGlzIGdlbmVyYXRlZCwgb3IgZm9yIHRoZSB3YXkgdGhlIHJlc3VsdHMgYXJlIHdyaXR0ZW4gdG8gYSBmaWxlLiBJZiB5b3Ugb3B0IG5vdCB0byBjcmVhdGUgYSB0ZW1wbGF0ZSwgdGhlIEZvcm1CdWlsZGVyIHdpbGwgdXNlIGl0JiMwMzk7cyBvd24gYmVzdCBndWVzcywgd2hpY2ggbWF5IG9yIG1heSBub3Qgd29yayBvdXQgdG8geW91ciBsaWtpbmcuIFlvdSBjYW4gYWx3YXlzIGNsaWNrIG9uIHRoZSAmcXVvdDtDcmVhdGUgU2FtcGxlIFRlbXBsYXRlJnF1b3Q7IGFuZCB0aGVuIGN1c3RvbWl6ZSB0aGUgcmVzdWx0cy48L3A+DQo8cD5UbyB0aGUgcmlnaHQsIHlvdSYjMDM5O2xsIGZpbmQgYSBsZWdlbmQgd2hpY2ggbGlzdHMgYWxsIG9mIHRoZSB2YXJpYWJsZXMgdGhhdCBhcmUgYXZhaWxhYmxlIHRvIHlvdSB0byB1c2UgaW4geW91ciB0ZW1wbGF0ZS4gQXMgb2YgdmVyc2lvbiAwLjMsIHZhcmlhYmxlcyBoYXZlIHR3byBuYW1lcywgb25lIGJhc2VkIG9uIHRoZSBmaWVsZCBuYW1lLCB0aGUgb3RoZXIgYmFzZWQgb24gdGhlIGZpZWxkIElELiBJZiB5b3UgdXNlIGZpZWxkIG5hbWVzIHRoYXQgaGF2ZSBjaGFyYWN0ZXJzIG91dHNpZGUgb2YgdGhlIEFTQ0lJIDMyLTEyNiByYW5nZSwgaXQgd2lsbCBiZSBzYWZlciB0byB1c2UgdGhlIElELWJhc2VkIHZhcmlhYmxlcy48L3A+DQo8cD48c3Ryb25nPk5vdGUgdGhhdCBvbmNlIHlvdSYjMDM5O3ZlIGNoYW5nZWQgYSB0ZW1wbGF0ZSwgaXQgd2lsbCBubyBsb25nZXIgYXV0b21hdGljYWxseSBhZGQgbmV3IGZpZWxkcy48L3N0cm9uZz4gRm9yIHRoaXMgcmVhc29uLCBpdCYjMDM5O3MgdXN1YWxseSBiZXN0IHRvIGNyZWF0ZSB5b3VyIHRlbXBsYXRlcyBhcyB0aGUgbGFzdCBzdGVwIG9mIGNyZWF0aW5nIHlvdXIgZm9ybS48L3A+DQo8cD5BcyBvZiB2ZXJzaW9uIDAuMi40LCB5b3UgY2FuIG9wdCB0byBzZW5kIGFueSBvZiB0aGVzZSBlbWFpbHMgYXMgSFRNTCBlbWFpbC4gVGhlcmUgc2hvdWxkIGJlIGEgY2hlY2tib3ggYXQgdGhlIHRvcCBvZiB0aGUgdGVtcGxhdGUgcGFnZSBmb3IgdGhpcy4gVGhlcmUgaXMgYWxzbyBhICZxdW90O0NyZWF0ZSBTYW1wbGUgSFRNTCBUZW1wbGF0ZSZxdW90OyBidXR0b24gb3ZlciBpbiB0aGUgbGVnZW5kIGFyZWEuIEZvciBIVE1MIGVtYWlsLCB0aGUgZW1haWwgYm9keSB3aWxsIGFsc28gcHJvdmlkZSB0aGUgZGVmYXVsdCB0ZXh0LW9ubHkgdmFsdWVzLjwvcD4NCg0KPGgzPkNvbmZpZ3VyYXRpb248L2gzPg0KPHA+VGhlcmUgYXJlIHNvbWUgZ2xvYmFsIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgRm9ybUJ1aWxkZXI6PC9wPg0KPHVsPg0KPGxpPkVuYWJsZSBmYXN0IGZpZWxkIGFkZCBwdWxsZG93bi4gVGhpcyBlbmFibGVzIHRoZSBwdWxsZG93biBvbiB0aGUgRm9ybSBFZGl0IHBhZ2Ugd2hpY2ggc2F2ZXMgYSBzdGVwIGluIHRoZSBjcmVhdGlvbiBvZiBuZXcgZmllbGRzLjwvbGk+DQo8bGk+SGlkZSBFcnJvcnMuIFRoaXMgaXMgc2V0IGJ5IGRlZmF1bHQuIFVuY2hlY2tpbmcgaXQgd2lsbCBjYXVzZSBtb3JlIGRldGFpbGVkIGVycm9ycyB0byBiZSBkaXNwbGF5ZWQgaWYgdGhlcmUgYXJlIHByb2JsZW1zIHdoZW4geW91IHN1Ym1pdCB5b3VyIGZvcm0uPC9saT4NCjxsaT5SZXF1aXJlIEZpZWxkIE5hbWVzLiBUeXBpY2FsbHksIHlvdSB3aWxsIHdhbnQgZm9ybSBmaWVsZHMgdG8gYmUgbmFtZWQgc28geW91IGNhbiB0ZWxsIHdoaWNoIGlzIHdoaWNoLiBIb3dldmVyLCBpbiBzb21lIGNhc2VzLCB5b3UgbWlnaHQgd2FudCB0byBoYXZlIG5hbWVsZXNzIGZpZWxkcy4gVW5jaGVjayB0aGlzIGlmIHlvdSB3YW50IHRvIGFsbG93IG5hbWVsZXNzIGZpZWxkcy48L2xpPg0KPGxpPlVuaXF1ZSBGaWVsZCBOYW1lcy4gVHlwaWNhbGx5LCB5b3Ugd2lsbCB3YW50IGZvcm0gZmllbGRzIHRvIGhhdmUgdW5pcXVlIG5hbWVzIHNvIHlvdSBjYW4gdGVsbCB3aGljaCBpcyB3aGljaC4gVW5jaGVjayB0aGlzIGlmIHlvdSB3YW50IHRvIGFsbG93IGZpZWxkcyB0byBzaGFyZSBuYW1lcy48L2xpPg0KPGxpPlVzZSByZWxheGVkIGVtYWlsIHZhbGlkYXRpb24uIFRoaXMgdXNlcyBhIGxlc3MgcmVzdHJpY3RpdmUgcmVndWxhciBleHByZXNzaW9uIGZvciB2YWxpZGF0aW5nIGVtYWlsOyBlLmcuLCB4QHkgd2lsbCBiZSBhbGxvd2VkLCB3aGVyZSB0eXBpY2FsbHkgeEB5LnRsZCBpcyByZXF1aXJlZC48L2xpPg0KPGxpPlNob3cgRm9ybSBCdWlsZGVyIFZlcnNpb24uIERpc3BsYXlzIHRoZSB2ZXJzaW9uIG9mIEZvcm1CdWlsZGVyIHlvdSYjMDM5O3JlIHVzaW5nIGluIGEgY29tbWVudCB3aGVuIHRoZSBmb3JtIGlzIGdlbmVyYXRlZC4gVHlwaWNhbGx5IG9ubHkgdXNlZnVsIHdoZW4gZGVidWdnaW5nLjwvbGk+DQo8bGk+RW5hYmxlIHByaW1pdGl2ZSBhbnRpLXNwYW0gZmVhdHVyZXMuIFdoZW4gdHVybmVkIG9uLCB0aGlzIGFsbG93cyBhbnkgZ2l2ZW4gSVAgYWRkcmVzcyB0byBvbmx5IGdlbmVyYXRlIDEwIGVtYWlscyBwZXIgaG91ci48L2xpPg0KPGxpPlNob3cgRmllbGQgSURzLiBXaGVuIHR1cm5lZCBvbiwgRm9ybUJ1aWxkZXIgd2lsbCBkaXNwbGF5IGZpZWxkIGlkcyB3aGVuIGFkZGluZyBvciBlZGl0aW5nIGEgZm9ybS48L2xpPg0KPC91bD4NCjxoMz5TdHlsaW5nIGFuZCBDU1M8L2gzPg0KPHA+QWZ0ZXIgYSBiaXQgb2YgbmFnZ2luZyBvbiB0aGUgcGFydCBvZiBwZW9wbGUgd2hvIGFjdHVhbGx5IHJlc3BlY3Qgc3RhbmRhcmRzLCBGb3JtQnVpbGRlciBubyBsb25nZXIgZW5jb3VyYWdlcyB0cmlja3MgbGlrZSBlbWJlZGRpbmcgQ1NTIGluIA0Kc3RhdGljIHRleHQgZmllbGRzLiBJbnN0ZWFkLCBpdCBjcmVhdGVzIGEgc3R5bGVzaGVldCBjYWxsZWQgJnF1b3Q7Rm9ybUJ1aWxkZXIgRGVmYXVsdCZxdW90OyB0aGF0IHlvdSBhcmUgZW5jb3VyYWdlZCB0byBhdHRhY2ggdG8gdGhlIHBhZ2UgdGVtcGxhdGUNCnRoYXQgeW91IHVzZSBmb3IgcGFnZXMgdGhhdCBjb250YWluIHlvdXIgZm9ybS48L3A+ICANCjxwPlRoaXMgZGVmYXVsdCBDU1Mgd2FzIGdyYWNpb3VzbHkgcHJvdmlkZWQgYnkgUGF1bCBOb29uZS48L3A+DQoNCg0KPGgzPkZvcm0gVGVtcGxhdGUgVmFyaWFibGVzPC9oMz4NCjxwPllvdSBjYW4gZWRpdCBpdCB0byBtYWtlIHlvdXIgZm9ybSBsYXlvdXQgbG9vayBhbnkgd2F5IHlvdSYjMDM5O2QgbGlrZS4NCiAgIFRvIG1ha2UgdGhlIGZvcm0gd29yaywgeW91JiMwMzk7bGwgbmVlZCB0byBhbHdheXMgaW5jbHVkZSB0aGUgeyRmYl9oaWRkZW59IGFuZCB7JHN1Ym1pdH0NCiAgIHRhZ3MuPC9wPg0KDQo8cD5Zb3UgY2FuIGFjY2VzcyB5b3VyIGZvcm0gZmllbGRzIGVpdGhlciB1c2luZyB0aGUgJGZpZWxkcyBhcnJheSBvciBieSBkaXJlY3RseSBhY2Nlc3NpbmcgZmllbGRzIGJ5IHRoZWlyIG5hbWVzIChlLmcuLCB7JG15ZmllbGQtPmlucHV0fSApPC9wPg0KDQoNCjxwPkVhY2ggZmllbGQgaGFzIHRoZSBmb2xsb3dpbmcgYXR0cmlidXRlczo8L3A+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+aW5wdXRfaWQ8L3RkPjx0ZD50aGUgSUQgb2YgdGhlIGZpZWxkJiMwMzk7cyBpbnB1dCAodXNlZnVsIGZvciBsYWJlbCBmb3I9JnF1b3Q7Zm9vJnF1b3Q7KTwvdGQ+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+Rm9ybUJ1aWxkZXIgZG9lcyBub3QgeWV0IHN1cHBvcnQgcHJldHR5IHVybHMsIGFsdGhvdWdoIHRoYXQgc2hvdWxkbiYjMDM5O3QgbWF0dGVyIHNpbmNlIHRoZSB1c2VyIHNpZGUgaXMgcHJldHR5IHNpbXBsZS48L2xpPg0KPGxpPkZpbGVVcGxvYWQgRmllbGRzIG1heSBub3Qgd29yayBjb3JyZWN0bHkgd2l0aCBtdWx0aXBhZ2UgZm9ybXMuPC9saT4NCjwvdWw+DQoNCjxoMz5Ucm91Ymxlc2hvb3Rpbmc8L2gzPg0KPG9sPjxsaT4gRmlyc3Qgc3RlcCBpcyB0byBjaGVjayB5b3UmIzAzOTtyZSBydW5uaW5nIENNUyAxLjEgb3IgbGF0ZXIuPC9saT4NCjxsaT4gU2Vjb25kIHN0ZXAgaXMgdG8gcmVhZCBhbmQgdW5kZXJzdGFuZCB0aGUgY2F2ZWF0IGFib3V0IFdZU0lXWUcgZWRpdG9ycyB1cCBpbiB0aGUNCnNlY3Rpb24gPGVtPkFkZGluZyBhIEZvcm0gdG8gYSBQYWdlPC9lbT4uPC9saT4NCjxsaT4gSWYgeW91JiMwMzk7cmUgbWlzc2luZyBmaWVsZHMgaW4gYW4gZW1haWwgdGhhdCBnZXRzIGdlbmVyYXRlZCwgY2hlY2sgdGhlIGRpc3Bvc2l0aW9uIGZpZWxkJiMwMzk7cyB0ZW1wbGF0ZSwgYW5kIG1ha2Ugc3VyZSB5b3UmIzAzOTtyZSBzcGVjaWZ5aW5nIHRoZSBtaXNzaW5nIGZpZWxkcy4gU2VlbXMgb2J2aW91cywgYnV0IGl0JiMwMzk7cyBhbiBlYXN5IG1pc3Rha2UgdG8gbWFrZS48L2xpPg0KPGxpPlVuY2hlY2sgdGhlICZxdW90O0hpZGUgRXJyb3JzJnF1b3Q7IGNoZWNrYm94IGluIHRoZSBnbG9iYWwgb3B0aW9ucywgYW5kIHNlZSB3aGF0IG1lc3NhZ2UgZ2V0cyBkaXNwbGF5ZWQgd2hlbiB5b3Ugc3VibWl0IHlvdXIgZm9ybS48L2xpPg0KPGxpPiBKdXN0IG1lc3MgYXJvdW5kIGFuZCB0cnkgY2xpY2tpbmcgb24gbGlua3MgYW5kIGljb25zIGFuZCBzdHVmZi4gU2VlIHdoYXQgaGFwcGVucy48L2xpPg0KPGxpPiBNYWtlIHN1cmUgeW91IGNhbiBzdWNjZXNzZnVsbHkgc2VuZCBlbWFpbCB2aWEgdGhlIHRlc3QgaW4gdGhlIENNU01haWxlciBNb2R1bGUuIEl0JiMwMzk7cyBzaW1wbHkgYW1hemluZyBob3cgbWFueSBwcm9ibGVtcyBib2lsIGRvd24gdG8gYSBtaXNjb25maWd1cmVkIENNU01haWxlci48L2xpPg0KPGxpPiBMYXN0IHJlc3BvcnQgaXMgdG8gZW1haWwgbWUgb3IgY2F0Y2ggbWUgb24gSVJDIGFuZCB3ZSBjYW4gZ28gZnJvbSB0aGVyZS48L2xpPg0KPC9vbD4gDQo8cD5UaGlzIGlzIG5vIGxvbmdlciBhIHBhcnRpY3VsYXJseSBlYXJseSB2ZXJzaW9uLCBidXQgaXQgaXMgcHJvYmFibHkgc3RpbGwgYnVnZ3kuIFdoaWxlIEkmIzAzOTt2ZSBkb25lIGFsbCBJIGNhbg0KdG8gbWFrZSBzdXJlIG5vIGVncmVnaW91cyBidWdzIGhhdmUgY3JlcHQgaW4sIEkgaGF2ZSB0byBhZG1pdCB0aGF0IGR1cmluZyBlYXJseSB0ZXN0aW5nLCB0aGlzIHByb2dyYW0NCnJldmVhbGVkIHNldmVuIGNvY2tyb2FjaGVzLCB0d28gZWFyd2lncywgYSBzbWFsbCBmYW1pbHkgb2YgYXBoaWRzLCBhbmQgYSB3YWxraW5nLXN0aWNrIGluc2VjdC4gSXQgYWxzbw0KYXRlIHRoZSBuZWlnaGJvciYjMDM5O3MgbmFzdHkgbGl0dGxlIHlhcCBkb2csIGZvciB3aGljaCBJIHdhcyBpbmFwcHJvcHJpYXRlbHkgZ3JhdGVmdWwuPC9wPg0KPHA+VGhlIGZpbmFsIHJlbGVhc2Ugd2lsbCBpbmNsdWRlIGJ1ZyBmaXhlcywgZG9jdW1lbnRhdGlvbiwgYW5kIHVuY29uZGl0aW9uYWwgbG92ZS48L3A+DQo8aDM+U3VwcG9ydDwvaDM+DQo8cD5UaGlzIG1vZHVsZSBkb2VzIG5vdCBpbmNsdWRlIGNvbW1lcmNpYWwgc3VwcG9ydC4gSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+DQo8dWw+DQo8bGk+Rm9yIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIG1vZHVsZSwgRkFRcywgb3IgdG8gZmlsZSBhIEJ1ZyBSZXBvcnQsIHBsZWFzZSB2aXNpdCB0aGUgQ01TIE1hZGUgU2ltcGxlICA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnIj5EZXZlbG9wZXIgRm9yZ2U8L2E+LjwvbGk+DQo8bGk+VG8gb2J0YWluIGNvbW1lcmNpYWwgc3VwcG9ydCwgcGxlYXNlIHNlbmQgYW4gZW1haWwgdG8gdGhlIGF1dGhvciBhdCA8YSBocmVmPSJtYWlsdG86c2pnQGNtc21vZHVsZXMuY29tIj48c2pnQGNtc21vZHVsZXMuY29tPjwvYT4uPC9saT4NCjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyI+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uPC9saT4NCjxsaT5UaGUgYXV0aG9yIGNhbiBvZnRlbiBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaXJjOi8vaXJjLmZyZWVub2RlLm5ldC8jY21zIj5DTVMgSVJDIENoYW5uZWw8L2E+LjwvbGk+DQo8bGk+TGFzdGx5LCB5b3UgbWF5IGhhdmUgc29tZSBzdWNjZXNzIGVtYWlsaW5nIHRoZSBhdXRob3IgZGlyZWN0bHkgYW5kIGdyb3ZlbGxpbmcgZm9yIGZyZWUgc3VwcG9ydC48L2xpPg0KPGxpPkRvbmF0aW9ucyBhcmUgZ29vZCBtb3RpdmF0b3JzLCB0b28uIEtlZXAgaW4gbWluZCB0aGF0IHRoZSBkb2xsYXIgaXMgd2VhaywgYW5kIGlmIHlvdSBhcmUgbm90IGluIHRoZSBVUywgeW91ciBkb25hdGlvbiBnZXRzIG1hZ25pZmllZC48L2xpPg0KPC91bD4NCjxwPktlZXAgaW4gbWluZCB0aGF0IHRoZSBhdXRob3IgaGFzIHB1dCBodW5kcmVkcyBhbmQgaHVuZHJlZHMgb2YgaG91cnMgaW50byB0aGUgZGV2ZWxvcG1lbnQgb2YgdGhpcyBtb2R1bGUuIFBsZWFzZSB0YWtlIHRoZSB0aW1lIHRvIHJlYWQgdGhlIGRvY3VtZW50YXRpb24gYmVmb3JlIHNlbmRpbmcgcXVlc3Rpb25zLiBFaXRoZXIgdGhhdCwgb3Igc2VuZCB5b3VyIHF1ZXN0aW9ucyB3cml0dGVuIG9uIGZpbmFuY2lhbGx5IG5lZ290aWFibGUgaW5zdHJ1bWVudHMgKGkuZS4sIGNoZWNrcyBvciBjYXNoKS4gQW0gSSBzb3VuZGluZyBsaWtlIGEgYnJva2VuIHJlY29yZD8gRG8geW91IGtpZHMgdGhlc2UgZGF5cyBldmVuIGtub3cgd2hhdCBhIGJyb2tlbiByZWNvcmQgaXM/IEkgd291bGQgc2F5IHNraXBwaW5nIENELCBidXQgeW91IG1pZ2h0IG5vdCBrbm93IHdoYXQgdGhhdCBpcyBlaXRoZXIuIExpa2UgYSBzYW1wbGUgdGhhdCBnb3Qgc3R1Y2sgb24gbG9vcD8gRGFtbiwgSSBhbSBnZXR0aW5nIG9sZC4gU28gaXMgdGhpcyBwYXJhZ3JhcGguIFRpbWUgdG8gbW92ZSBvbiwgaGVyZS48L3A+DQo8cD5BcyBwZXIgdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCBhcy1pcy4gUGxlYXNlIHJlYWQgdGhlIHRleHQNCm9mIHRoZSBsaWNlbnNlIGZvciB0aGUgZnVsbCBkaXNjbGFpbWVyLjwvcD4NCjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPg0KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDA4LCBTYW11ZWwgR29sZHN0ZWluIDxhIGhyZWY9Im1haWx0bzpzamdAY21zbW9kdWxlcy5jb20iPjxzamdAY21zbW9kdWxlcy5jb20+PC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPg0KPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCI+R05VIFB1YmxpYyBMaWNlbnNlPC9hPi4gWW91IG11c3QgYWdyZWUgdG8gdGhpcyBsaWNlbnNlIGJlZm9yZSB1c2luZyB0aGUgbW9kdWxlLjwvcD4nOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My45NDY1NjY0OTMzMDQ5Mjk3MDAuMTIzNjE3OTA5OS4xMjM2ODUwMzEzLjEyMzY4NjE1MTIuNic7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEyMzY4NjE1MTIuNi41LnV0bWNjbj0ocmVmZXJyYWwpfHV0bWNzcj1qdXBpdGVyLnNpbnVzaWtzLm5ldHx1dG1jY3Q9L2FkbWluL2FkZHRlbXBsYXRlLnBocHx1dG1jbWQ9cmVmZXJyYWwnOwokbGFuZ1sndXRtYyddID0gJzE1Njg2MTM1Myc7CiRsYW5nWyd1dG1iJ10gPSAnMTU2ODYxMzUzJzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/sv_SE.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0Zvcm11bCZhdW1sO3JieWdnYXJlbiAoRm9ybSBCdWlsZGVyKSc7CiRsYW5nWydmaWVsZF90eXBlXyddID0gJ0YmYXVtbDtsdHR5cCBpbnRlIHZhbGQnOwokbGFuZ1snZmllbGRfdHlwZV9DYXRhbG9nZXJJdGVtc0ZpZWxkJ10gPSAnViZhdW1sO2xqIGVuIChlbGxlciBmbGVyKSBrYXRhbG9nIG9iamVjdCc7CiRsYW5nWydmaWVsZF90eXBlX0ZpZWxkc2V0RW5kJ10gPSAnLVNsdXQgcCZhcmluZzsgZ3J1cHBydXRhIChmaWVsZHNldCknOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldFN0YXJ0J10gPSAnLVN0YXJ0IHAmYXJpbmc7IGdydXBwcnV0YSAoZmllbGRzZXQpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkJ10gPSAnSW5tYXRuaW5nc2YmYXVtbDtsdCAodGV4dCBpbnB1dCknOwokbGFuZ1snZmllbGRfdHlwZV9QYXNzd29yZEZpZWxkJ10gPSAnTCZvdW1sO3Nlbm9yZCc7CiRsYW5nWydmaWVsZF90eXBlX1Bhc3N3b3JkQWdhaW5GaWVsZCddID0gJ0wmb3VtbDtzZW5vcmQgaWdlbic7CiRsYW5nWydmaWVsZF90eXBlX1RleHRGaWVsZEV4cGFuZGFibGUnXSA9ICdJbm1hdG5pbmdzZiZhdW1sO2x0IChmbGVyYSknOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0QXJlYUZpZWxkJ10gPSAnVGV4dHJ1dGEgKHRleHRhcmVhKSc7CiRsYW5nWydmaWVsZF90eXBlX0J1dHRvbkZpZWxkJ10gPSAnS25hcHAnOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEZpZWxkJ10gPSAnS3J5c3NydXRhIChjaGVjayBib3gpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hHcm91cEZpZWxkJ10gPSAnS3J5c3NydXRlZ3J1cHAgKGNoZWNrIGJveCBncm91cCknOwokbGFuZ1snZmllbGRfdHlwZV9QdWxsZG93bkZpZWxkJ10gPSAnUnVsbGdhcmRpbnNtZW55JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfWWVhclB1bGxEb3duRmllbGQnXSA9ICcmQXJpbmc7ciBSdWxsZ2FyZGluc21lbnknOwokbGFuZ1snZmllbGRfdHlwZV9NdWx0aXNlbGVjdEZpZWxkJ10gPSAnTXVsdGl2JmF1bWw7bGphcmUnOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0ZVBpY2tlckZpZWxkJ10gPSAnViZhdW1sO2xqYXJlIGYmb3VtbDtyIGFtZXJpa2Fuc2sgc3RhdCc7CiRsYW5nWydmaWVsZF90eXBlX1Byb3ZpbmNlUGlja2VyRmllbGQnXSA9ICdLYW5hZGVuc2lzayBQcm92aW5zIFYmYXVtbDtsamFyZSc7CiRsYW5nWydmaWVsZF90eXBlX0NvdW50cnlQaWNrZXJGaWVsZCddID0gJ0xhbmR2JmF1bWw7bGphcmUnOwokbGFuZ1snZmllbGRfdHlwZV9EYXRlUGlja2VyRmllbGQnXSA9ICdEYXR1bXYmYXVtbDtsamFyZSc7CiRsYW5nWydmaWVsZF90eXBlX1RpbWVQaWNrZXJGaWVsZCddID0gJ1RpZHYmYXVtbDtsamFyZSc7CiRsYW5nWydmaWVsZF90eXBlX1JhZGlvR3JvdXBGaWVsZCddID0gJ0FsdGVybmF0aXZrbmFwcGdydXBwJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EaXJlY3RvciddID0gJypFLXBvc3RhIHJlc3VsdGF0IGJhc2VyYWRlIHAmYXJpbmc7IHZhbCBpIHJ1bGxnYXJkaW5zbWVueSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRmlsZURpcmVjdG9yJ10gPSAnKlNwYXJhIHJlc3VsdGF0IHRpbGwgZmlsIGJhc2VyYWRlIHAmYXJpbmc7IHZhbCBpIHJ1bGxnYXJkaW5zbWVueSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uTXVsdGlzZWxlY3RGaWxlRGlyZWN0b3InXSA9ICcqU3BhcmEgcmVzdWx0YXQgdGlsbCBmaWwoZXIpIGJhc2VyYWRlIHAmYXJpbmc7IGZsZXJhIHZhbCc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uUGFnZVJlZGlyZWN0b3InXSA9ICcqT21kaXJpZ2VyYSB0aWxsIHNpZGEgYmFzZXJhdCBwJmFyaW5nOyB2YWwgaSBydWxsZ2FyZGluc21lbnknOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsJ10gPSAnKkUtcG9zdGEgcmVzdWx0YXRldCB0aWxsIGJlc3QmYXVtbDttZCBhZHJlc3MvYmVzdCZhdW1sO21kYSBhZHJlc3Nlcic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxDb25maXJtYXRpb24nXSA9ICcqQWRyZXNzIGYmb3VtbDtyIHZlcmlmaWVyYS12aWEtZXBvc3QnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZyb21FbWFpbEFkZHJlc3NGaWVsZCddID0gJ0UtcG9zdGYmYXVtbDtsdCBmJm91bWw7ciAmcXVvdDtGciZhcmluZztuLWFkcmVzc2VuJnF1b3Q7LCBvY2ggc2tpY2thIGVuIGtvcGlhJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25GaWxlJ10gPSAnKlNrcml2IHJlc3VsdGF0IHRpbGwgdmFubGlnIGZpbCc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGF0YWJhc2UnXSA9ICcqU3BhcmEgcmVzdWx0YXQgaSBkYXRhYmFzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Gb3JtQnJvd3NlciddID0gJypTcGFyYSByZXN1bHRhdGV0IGYmb3VtbDtyIEZvcm1Ccm93c2VyIE1vZHVsZSB2LjMnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvblVzZXJUYWcnXSA9ICcqQW5yb3AgdGlsbCBlbiBhbnYmYXVtbDtuZGFyZGVmaW5pZXJhZCB0YWdnIG1lZCBmb3JtdWwmYXVtbDtycmVzdWx0YXQnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZvcm0nXSA9ICcqU3VibWl0IHRvIGFuIGFyYml0cmFyeSBmb3JtIGFjdGlvbic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGVsaXZlclRvRW1haWxBZGRyZXNzRmllbGQnXSA9ICcqRS1wb3N0YSB0aWxsIGVuIGF2IGFudiZhdW1sO25kYXJlbiBhbmdpdmVuIGUtcG9zdGFkcmVzcyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxTaXRlQWRtaW4nXSA9ICcqRS1wb3N0YSB0aWxsIENNUyBBZG1pbiBVc2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUGFnZUJyZWFrRmllbGQnXSA9ICctU2lkYnJ5dG5pbmcnOwokbGFuZ1snZmllbGRfdHlwZV9GaWxlVXBsb2FkRmllbGQnXSA9ICdGaWx1cHBsYWRkbmluZyc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbEFkZHJlc3NGaWVsZCddID0gJ0UtcG9zdGYmYXVtbDtsdCBmJm91bWw7ciAmcXVvdDtGciZhcmluZztuLWFkcmVzc2VuJnF1b3Q7JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsQWRkcmVzc0FnYWluRmllbGQnXSA9ICdFLXBvc3RmJmF1bWw7bHQgZiZvdW1sO3IgJnF1b3Q7RnImYXJpbmc7bi1hZHJlc3NlbiZxdW90OyBpZ2VuIGYmYXVtbDtsdCc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbE5hbWVGaWVsZCddID0gJ0UtcG9zdGYmYXVtbDtsdCBmJm91bWw7ciAmcXVvdDtGciZhcmluZztuLW5hbW5ldCZxdW90Oyc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbFN1YmplY3RGaWVsZCddID0gJ0UtcG9zdGYmYXVtbDtsdCBmJm91bWw7ciAmcXVvdDsmQXVtbDttbmUmcXVvdDsnOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0aWNUZXh0RmllbGQnXSA9ICctU3RhdGlzayB0ZXh0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3lzdGVtTGlua0ZpZWxkJ10gPSAnLVN0YXRpc2sgbCZhdW1sO25rJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTGlua0ZpZWxkJ10gPSAnTCZhdW1sO25rIChhbnYmYXVtbDtuZGFyY2VudHJlcmFkKSc7CiRsYW5nWydmaWVsZF90eXBlX0hpZGRlbkZpZWxkJ10gPSAnLWcmb3VtbDttdCBmJmF1bWw7bHQnOwokbGFuZ1snZmllbGRfdHlwZV9Db21wdXRlZEZpZWxkJ10gPSAnLWJlciZhdW1sO2tuYXQgZiZhdW1sO2x0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVW5pcXVlSW50ZWdlckZpZWxkJ10gPSAnLSBVbmlrdCBoZWx0YWwgKFNlcmllKSc7CiRsYW5nWydmaWVsZF90eXBlX1VzZXJUYWdGaWVsZCddID0gJy1BbnYmYXVtbDtuZGFyIERlZmluaWVyYXQgVGFnIEFucm9wJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ29tcGFueURpcmVjdG9yeUZpZWxkJ10gPSAnRiZvdW1sO3JldGFnc2thdGFsb2cgZiZhdW1sO2x0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTW9kdWxlSW50ZXJmYWNlRmllbGQnXSA9ICctTW9kdWxnciZhdW1sO25zc25pdHRzIGYmYXVtbDtsdCc7CiRsYW5nWyd2YWxpZGF0aW9uX25vbmUnXSA9ICdJbmdlbiB2ZXJpZmllcmluZyc7CiRsYW5nWyd2YWxpZGF0aW9uX251bWVyaWMnXSA9ICdOdW1lcmlzayc7CiRsYW5nWyd2YWxpZGF0aW9uX2ludGVnZXInXSA9ICdIZWx0YWwnOwokbGFuZ1sndmFsaWRhdGlvbl9lbWFpbF9hZGRyZXNzJ10gPSAnRS1wb3N0YWRyZXNzJzsKJGxhbmdbJ3ZhbGlkYXRpb25fdXNwaG9uZSddID0gJ1RlbGVmb25udW1tZXIgKFVTKSc7CiRsYW5nWyd2YWxpZGF0aW9uX211c3RfY2hlY2snXSA9ICdNJmFyaW5nO3N0ZSB2YXJhIGlrcnlzc2FkJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbWF0Y2gnXSA9ICdNYXRjaGEgcmVndWxqJmF1bWw7cnV0dHJ5Y2snOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9ub21hdGNoJ10gPSAnTWF0Y2hhIGludGUgcmVndWxqJmF1bWw7cnV0dHJ5Y2snOwokbGFuZ1sncmVxdWlyZWRfZmllbGRfbWlzc2luZyddID0gJ0luZ2V0IHYmYXVtbDtyZGUgYW5nYXZzIGYmb3VtbDtyIGV0dCBmJmF1bWw7bHQgc29tICZhdW1sO3Igb2JsaWdhdG9yaXNrdCc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV92YWx1ZSddID0gJ0FuZ2UgZXR0IHYmYXVtbDtyZGUgZiZvdW1sO3IgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfbnVtYmVyJ10gPSAnQW5nZSBldHQgdGFsIGYmb3VtbDtyICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl92YWxpZCddID0gJ0FuZ2UgZXR0IGdpbHRpZ3QgdiZhdW1sO3JkZSBmJm91bWw7ciAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5faW50ZWdlciddID0gJ0FuZ2UgZXR0IGhlbHRhbHN2JmF1bWw7cmRlIGYmb3VtbDtyICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hbl9lbWFpbCddID0gJ0FuZ2UgZW4gZ2lsdGlnIGUtcG9zdGFkcmVzcyBmJm91bWw7ciAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydlbWFpbF9hZGRyZXNzX2RvZXNfbm90X21hdGNoJ10gPSAnRS1wb3N0YWRyZXNzZW4gbWF0Y2hhciBpbnRlIHYmYXVtbDtyZGV0IGkgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfcGhvbmUnXSA9ICdWJmF1bWw7bmxpZ2VuIGZ5bGwgaSBldHQgZ29kayZhdW1sO250IHRlbGVmb25udW1tZXIgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2xvZ2luJ10gPSAnViZhdW1sO25saWdlbiBsb2dnYSBpbiBmJm91bWw7ciBhdHQgYW52JmF1bWw7bmRhIGZvcm11bCZhdW1sO3JldCc7CiRsYW5nWydub3RfdmFsaWRfZW1haWwnXSA9ICcmcXVvdDslcyZxdW90OyB2ZXJrYXIgaW50ZSB2YXJhIGVuIGdpbHRpZyBlLXBvc3RhZHJlc3MhJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9ub19sb25nZXInXSA9ICdBbmdlIGV0dCB2JmF1bWw7cmRlIHNvbSBpbnRlICZhdW1sO3IgbCZhdW1sO25ncmUgJmF1bWw7biAlcyB0ZWNrZW4nOwokbGFuZ1sncGxlYXNlX2VudGVyX2F0X2xlYXN0J10gPSAnVmFyIHYmYXVtbDtubGlnIGFuZ2UgZXR0IHYmYXVtbDtyZGUgc29tICZhdW1sO3IgbWluc3QgJXMgdGVja2VuJzsKJGxhbmdbJ3RpdGxlX2xpc3RfZGVsaW1pdGVyJ10gPSAnVGVja2VuIGF0dCBhbnYmYXVtbDtuZGEgc29tIGF2Z3ImYXVtbDtuc2FyZSBpIHJlc3VsdGF0IHNvbSByZXR1cm5lcmFyIG1lciAmYXVtbDtuIGV0dCB2JmF1bWw7cmRlJzsKJGxhbmdbJ3lvdV9uZWVkX3Blcm1pc3Npb24nXSA9ICdEdSBiZWgmb3VtbDt2ZXIgciZhdW1sO3R0aWdoZXRlbiAmcXVvdDslcyZxdW90OyBmJm91bWw7ciBhdHQgdXRmJm91bWw7cmEgZGVuICZhcmluZzt0ZyZhdW1sO3JkZW4uJzsKJGxhbmdbJ2xhY2twZXJtaXNzaW9uJ10gPSAnVHl2JmF1bWw7cnIhIER1IGhhciBpbnRlIHRpbGxyJmF1bWw7Y2tsaWdhIHImYXVtbDt0dGlnaGV0ZXIgZiZvdW1sO3IgYXR0IGtvbW1hICZhcmluZzt0IGRlbiBoJmF1bWw7ciBzZWt0aW9uZW4uJzsKJGxhbmdbJ2ZpZWxkX29yZGVyX3VwZGF0ZWQnXSA9ICdGJmF1bWw7bHRvcmRuaW5nZW4gdXBwZGF0ZXJhZC4nOwokbGFuZ1snZm9ybV9kZWxldGVkJ10gPSAnRm9ybXVsJmF1bWw7ciBib3J0dGFnZXQuJzsKJGxhbmdbJ2ZpZWxkX2RlbGV0ZWQnXSA9ICdGJmF1bWw7bHQgYm9ydHRhZ2V0Lic7CiRsYW5nWydjb25maWd1cmF0aW9uX3VwZGF0ZWQnXSA9ICdLb25maWd1cmF0aW9uIHVwcGRhdGVyYWQuJzsKJGxhbmdbJ3lvdV9tdXN0X2NoZWNrJ10gPSAnRHUgbSZhcmluZztzdGUga3J5c3NhIGkgJnF1b3Q7JXMmcXVvdDsgZiZvdW1sO3IgYXR0IGZvcnRzJmF1bWw7dHRhJzsKJGxhbmdbJ211c3Rfc3BlY2lmeV9vbmVfZGVzdGluYXRpb24nXSA9ICdEdSBtJmFyaW5nO3N0ZSBhbmdlICZhcmluZzt0bWluc3RvbmUgZW4gbW90dGFnYXJhZHJlc3MhJzsKJGxhbmdbJ2FyZV95b3Vfc3VyZV9kZWxldGVfZm9ybSddID0gJyZBdW1sO3IgZHUgcyZhdW1sO2tlciBwJmFyaW5nOyBhdHQgZHUgdmlsbCB0YSBib3J0IGZvcm11bCZhdW1sO3JldCAlcz8nOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9maWVsZCddID0gJyZBdW1sO3IgZHUgcyZhdW1sO2tlciBwJmFyaW5nOyBhdHQgZHUgdmlsbCB0YSBib3J0IGYmYXVtbDtsdGV0ICVzPyc7CiRsYW5nWydub3RpY2Vfc2VsZWN0X3R5cGUnXSA9ICdBdmFuY2VyYWRlIGluc3QmYXVtbDtsbG5pbmdhciAmYXVtbDtyIGludGUgdGlsbGcmYXVtbDtuZ2xpZ2EgZiZvdW1sO3JyJmF1bWw7biBmJmF1bWw7bHR0eXBlbiBoYXIgYW5nZXR0cy4nOwokbGFuZ1snZmllbGRfbmFtZV9pbl91c2UnXSA9ICdGJmF1bWw7bHRuYW1uZXQgJnF1b3Q7JXMmcXVvdDsgYW52JmF1bWw7bmRzIHJlZGFuLiBWJmF1bWw7bmxpZ2VuIGFudiZhdW1sO25kIHVuaWthIGYmYXVtbDtsdG5hbW4gZWxsZXIgYXZtYXJrZXJhIHVuaWthIGYmYXVtbDtsdG5hbW4gaSBrb25maWd1cmF0aW9uZW4gZiZvdW1sO3IgRm9ybXVsJmF1bWw7cmJ5Z2dhcmVuLic7CiRsYW5nWydmaWVsZF9ub19uYW1lJ10gPSAnRiZhdW1sO2x0IG0mYXJpbmc7c3RlIGhhIGV0dCBuYW1uLCBzJmFyaW5nO3ZpZGEgZHUgaW50ZSBhdm1hcmtlcmFyIGRldHRhIGkgRm9ybXVsJmF1bWw7cmJ5Z2dhcmVucyBrb25maWd1cmF0aW9uLic7CiRsYW5nWydhbm9ueW1vdXMnXSA9ICdBbm9ueW0nOwokbGFuZ1snYWJicmV2aWF0aW9uX2xlbmd0aCddID0gJ0wmYXVtbDtuZ2Q6ICVzJzsKJGxhbmdbJ2JveGVzJ10gPSAnJXMgcnV0b3InOwokbGFuZ1snb3B0aW9ucyddID0gJyVzIHZhbCc7CiRsYW5nWyd0ZXh0X2xlbmd0aCddID0gJyUgdGVja2VuLic7CiRsYW5nWydvcmRlciddID0gJ09yZG5pbmcnOwokbGFuZ1sndW5zcGVjaWZpZWQnXSA9ICdbb3NwZWNpZmljZXJhdF0nOwokbGFuZ1snYWRkZWQnXSA9ICd0aWxsYWdkJzsKJGxhbmdbJ3VwZGF0ZWQnXSA9ICd1cHBkYXRlcmFkJzsKJGxhbmdbJ3NvcnRfb3B0aW9ucyddID0gJ1NvcnRlcmluZ3N2YWwgdmlkIG91dHB1dC91dG1hdG5pbmcnOwokbGFuZ1snc2VsZWN0X29uZSddID0gJ1YmYXVtbDtsaiBFbic7CiRsYW5nWydzZWxlY3RfdHlwZSddID0gJ1YmYXVtbDtsaiBUeXAnOwokbGFuZ1sndG8nXSA9ICdUaWxsJzsKJGxhbmdbJ3llcyddID0gJ0phJzsKJGxhbmdbJ25vJ10gPSAnTmVqJzsKJGxhbmdbJ3JlY2lwaWVudHMnXSA9ICdtb3R0YWdhcmUnOwokbGFuZ1snZmlsZV9jb3VudCddID0gJyVzIG0mb3VtbDtqbGlnYSBmaWxlcic7CiRsYW5nWydkZXN0aW5hdGlvbl9jb3VudCddID0gJyVzIGRlc3RpbmF0aW9uZXInOwokbGFuZ1snc2F2ZSddID0gJ1NwYXJhJzsKJGxhbmdbJ2FkZCddID0gJ0wmYXVtbDtnZyB0aWxsJzsKJGxhbmdbJ3VwZGF0ZSddID0gJ1VwcGRhdGVyYSc7CiRsYW5nWydzYXZlX2FuZF9jb250aW51ZSddID0gJ1NwYXJhIG9jaCBmb3J0cyZhdW1sO3R0IHJlZGlnZXJhJzsKJGxhbmdbJ2luZm9ybWF0aW9uJ10gPSAnSW5mb3JtYXRpb24nOwokbGFuZ1snYXV0b21hdGljJ10gPSAnQXV0b21hdGlzayc7CiRsYW5nWydmb3JtcyddID0gJ0Zvcm11bCZhdW1sO3InOwokbGFuZ1snZm9ybSddID0gJ0Zvcm11bCZhdW1sO3IgJXMnOwokbGFuZ1snY29uZmlndXJhdGlvbiddID0gJ0tvbmZpZ3VyYXRpb24nOwokbGFuZ1snZmllbGRfcmVxdWlyZW1lbnRfdXBkYXRlZCddID0gJ1N0YXR1cyBmJm91bWw7ciBvYmxpZ2F0b3Jpc2t0IGYmYXVtbDtsdCB1cHBkYXRlcmFkJzsKJGxhbmdbJ21heGltdW1fc2l6ZSddID0gJ01heHN0b3JsZWsnOwokbGFuZ1sncGVybWl0dGVkX2V4dGVuc2lvbnMnXSA9ICdGaWwmYXVtbDtuZGVsc2VyJzsKJGxhbmdbJ3Blcm1pdHRlZF9maWxldHlwZXMnXSA9ICdUaWxsJmFyaW5nO3RuYSBmaWx0eXBlcic7CiRsYW5nWydmaWxlX3Rvb19sYXJnZSddID0gJ0RlbiB1cHBsYWRkYWRlIGZpbGVuICZvdW1sO3IgZiZvdW1sO3Igc3RvciEgTWF4aW1hbCBzdG9ybGVrICZhdW1sO3I6JzsKJGxhbmdbJ2lsbGVnYWxfZmlsZV90eXBlJ10gPSAnRGVuIGgmYXVtbDtyIGZpbHR5cGVuIGthbiBpbnRlIGxhZGRhcyB1cHAuIEtvbnRyb2xsZXJhIGF0dCBmaWwmYXVtbDtuZGVsc2VuICZhdW1sO3Iga29ycmVrdC4nOwokbGFuZ1sndXBsb2FkJ10gPSAnTGFkZGEgdXBwJzsKJGxhbmdbJ2Zvcm1faW1wb3J0ZWQnXSA9ICdGb3JtdWwmYXVtbDtyIGltcG9ydGVyYXQuJzsKJGxhbmdbJ2Zvcm1faW1wb3J0X2ZhaWxlZCddID0gJ0ltcG9ydCBhdiBmb3JtdWwmYXVtbDtyIG1pc3NseWNrYWRlcyEgRGV0IHZhciBwcm9ibGVtIG1lZCBYTUwtZmlsZW5zIGZvcm1hdC4nOwokbGFuZ1sncm93cyddID0gJyVzIHJhZGVyJzsKJGxhbmdbJ2NvbHMnXSA9ICclcyBrb2x1bW5lcic7CiRsYW5nWycxMl9ob3VyJ10gPSAnMTItdGltbWFyc2tsb2NrYSc7CiRsYW5nWycyNF9ob3VyJ10gPSAnMjQtdGltbWFyc2tsb2NrYSc7CiRsYW5nWydob3VyJ10gPSAnVGltbWUnOwokbGFuZ1snbWluJ10gPSAnTWludXQnOwokbGFuZ1snbWVyaWQnXSA9ICdNZXJpZGlhbic7CiRsYW5nWydkYXRlX3JhbmdlJ10gPSAnUiZhdW1sO2NrdmlkZDogJXMgLSAlcyc7CiRsYW5nWyd0aGFua3MnXSA9ICdUYWNrISBEaXR0IGZvcm11bCZhdW1sO3IgaGFyIHNraWNrYXRzLic7CiRsYW5nWydlZGl0J10gPSAnUmVkaWdlcmEnOwokbGFuZ1snZGVsZXRlJ10gPSAnVGEgYm9ydCc7CiRsYW5nWydkYXknXSA9ICdEYWcnOwokbGFuZ1snbW9uJ10gPSAnTSZhcmluZztuYWQnOwokbGFuZ1sneWVhciddID0gJyZBcmluZztyJzsKJGxhbmdbJ25vbmUnXSA9ICcoaW5nZW4pJzsKJGxhbmdbJ2NzcyddID0gJ0NTUyc7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHVsZW4gYXZpbnN0YWxsZXJhZC4nOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnTW9kdWx2ZXJzaW9uICVzIGluc3RhbGxlcmFkLic7CiRsYW5nWyd1cGdyYWRlZCddID0gJ01vZHVsZW4gdXBwZ3JhZGVyYWQgdGlsbCB2ZXJzaW9uICVzLic7CiRsYW5nWydidXR0b25fcHJldmlvdXMnXSA9ICdUaWxsYmFrYS4uLic7CiRsYW5nWydidXR0b25fc3VibWl0J10gPSAnU2tpY2thIGZvcm11bCZhdW1sO3InOwokbGFuZ1snYnV0dG9uX2NvbnRpbnVlJ10gPSAnRm9ydHMmYXVtbDt0dC4uLic7CiRsYW5nWyd2YWx1ZV9jaGVja2VkJ10gPSAnSWtyeXNzYWQnOwokbGFuZ1sndmFsdWVfdW5jaGVja2VkJ10gPSAnRWogaWtyeXNzYWQnOwokbGFuZ1sndGFiX21haW4nXSA9ICdIdXZ1ZC0nOwokbGFuZ1sndGFiX3N5bWJvbCddID0gJ0luc3QmYXVtbDtsbG5pbmdhciBmJm91bWw7ciBmb3JtdWwmYXVtbDtydmlzbmluZyc7CiRsYW5nWyd0YWJfc3VibWl0J10gPSAnU2tpY2thdCBmb3JtdWwmYXVtbDtyJzsKJGxhbmdbJ3RhYl9jYXB0Y2hhJ10gPSAnSW5zdCZhdW1sO2xsbmluZ2FyIGYmb3VtbDtyIENhcHRjaGEnOwokbGFuZ1sndGFiX2FkdmFuY2VkJ10gPSAnQXZhbmNlcmFkZSBpbnN0JmF1bWw7bGxuaW5nYXInOwokbGFuZ1sndGFiX3RlbXBsYXRlbGF5b3V0J10gPSAnRm9ybXVsJmF1bWw7cm1hbGwnOwokbGFuZ1sndGFiX3N1Ym1pc3Npb250ZW1wbGF0ZSddID0gJ1NraWNrYS1tYWxsJzsKJGxhbmdbJ3RhYl91ZHQnXSA9ICdVRFQgSW50ZWdyYXRpb24nOwokbGFuZ1snY2FudXNlX3NtYXJ0eSddID0gJzxlbT5TbWFydHktdmFyaWFibGVyICZhdW1sO3IgaW50ZSB0aWxsJmFyaW5nO3RuYSBpIGRldCBoJmF1bWw7ciBmJmF1bWw7bHRldC48L2VtPic7CiRsYW5nWydhZGRfb3B0aW9ucyddID0gJ0wmYXVtbDtnZyB0aWxsIGZsZXIgdmFsJzsKJGxhbmdbJ2RlbGV0ZV9vcHRpb25zJ10gPSAnVGEgYm9ydCBtYXJrZXJhZGUgdmFsJzsKJGxhbmdbJ2FkZF9jaGVja2JveGVzJ10gPSAnTCZhdW1sO2dnIHRpbGwgZmxlciBrcnlzc3J1dG9yJzsKJGxhbmdbJ2RlbGV0ZV9jaGVja2JveGVzJ10gPSAnVGEgYm9ydCBtYXJrZXJhZGUga3J5c3NydXRvcic7CiRsYW5nWydhZGRfYWRkcmVzcyddID0gJ0wmYXVtbDtnZyB0aWxsIGVuIGFkcmVzcyc7CiRsYW5nWydkZWxldGVfYWRkcmVzcyddID0gJ1RhIGJvcnQgbWFya2VyYWRlIGFkcmVzc2VyJzsKJGxhbmdbJ2FkZF9kZXN0aW5hdGlvbiddID0gJ0wmYXVtbDtnZyB0aWxsIG1vdHRhZ2FyZSc7CiRsYW5nWydkZWxldGVfZGVzdGluYXRpb24nXSA9ICdUYSBib3J0IG1hcmtlcmFkZSBtb3R0YWdhcmUnOwokbGFuZ1snc3VzcGVjdGVkX3NwYW0nXSA9ICdGJm91bWw7ciBtJmFyaW5nO25nYSBlLXBvc3RtZWRkZWxhbmRlbiBnZW5lcmVyYWRlcyBmciZhcmluZztuIGRpbiBJUC1hZHJlc3MuIEFudGktc2tyJmF1bWw7cHBvc3Qta29kIGhhciBmJm91bWw7cmhpbmRyYXQgYXR0IGRlIGxldmVyZXJhdHMuJzsKJGxhbmdbJ3N1c3BlY3RlZF9zcGFtX2xvZyddID0gJ01pc3N0JmF1bWw7bmt0IHNrciZhdW1sO3Bwb3N0IGZyJmFyaW5nO24gSVAtYWRyZXNzZW4gJXMgc3RvcHBhZGVzLic7CiRsYW5nWydyZW9yZGVyJ10gPSAnJkF1bWw7bmRyYSBmJmF1bWw7bHRvcmRuaW5nJzsKJGxhbmdbJ2NhbmNlbCddID0gJyZBcmluZztuZ3JhJzsKJGxhbmdbJ3ZhbHVlX3NldCddID0gJ1YmYXVtbDtyZGV1cHBzJmF1bWw7dHRuaW5nOiAlcyc7CiRsYW5nWydoZWxwX2NhdGFsb2dlcl9hdHRyaWJ1dGVfZmllbGRzJ10gPSAnQmVsb3cgaXMgYSBsaXN0IG9mIHRoZSBhdHRyaWJ1dGVzIGF2YWlsYWJsZSBmcm9tIHRoZSBDYXRhbG9nZXIgbW9kdWxlLjxici8+WW91IGNhbiBvcHRpb25hbGx5IHNwZWNpZnkgdmFsaWQgcmFuZ2VzLCB2YWx1ZXMsIG9yIG51bWVyb3VzIHZhbHVlcyB0byBiZSB1c2VkIGluIGZpbHRlcmluZyB0aGUgbGlzdCBvZiBpdGVtcyB0aGF0IGlzIGRpc3BsYXllZCB0byB0aGUgdXNlci48YnIvPg0KPGJyLz4NCjxzdHJvbmc+UmFuZ2VzOjwvc3Ryb25nPjxici8+DQpSYW5nZXMgY2FuIGJlIHNwZWNpZmllZCBieSBzaWduaWZ5aW5nIGEgbWluaW11bSBhbmQgbWF4aW11bSB2YWx1ZSB1c2luZyB0aGlzIHN5bnRheDogJnF1b3Q7cmFuZ2U6IG1pbnZhbHVlIHRvIG1heHZhbHVlJnF1b3Q7PGJyLz4NCjxici8+DQo8c3Ryb25nPk11bHRpcGxlIFZhbHVlczo8L3N0cm9uZz48YnIvPg0KVG8gc3BlY2lmeSBtdWx0aXBsZSB2YWx1ZXMgZm9yIGFuIGF0dHJpYnV0ZSB1c2UgdGhlIHN5bnRheCAmcXVvdDttdWx0aTogdmFsdWUxfHZhbHVlMnx2YWx1ZTMmcXVvdDs8YnIvPg0KPGJyLz4NCjxzdHJvbmc+VmFsdWVzIGZyb20gaGlkZGVuIGZpZWxkczwvc3Ryb25nPjxici8+DQpUbyBzcGVjaWZ5IGEgdmFsdWUgZnJvbSBhIGhpZGRlbiBmaWVsZCB1c2UgdGhlIHN5bnRheCB7JGZsZF9pZH08YnIvPg0KPGJyLz4nOwokbGFuZ1snaGVscF9uYW1lX3JlZ2V4J10gPSAnRXR0IHZhbmxpZ3QgdXR0cnljayBmJm91bWw7ciBhdHQgdGlsbCZhcmluZzt0YSBmaWx0cmVyaW5nIGF2IGthdGFsb2dlciBnZW5vbSBuYW1uJzsKJGxhbmdbJ2hlbHBfZmllbGRfaGVpZ2h0J10gPSAnSCZvdW1sO2pkZW4gcCZhcmluZzsgZmxlcnZhbHNmJmF1bWw7bHRldCc7CiRsYW5nWyd0aXRsZV9uYW1lX3JlZ2V4J10gPSAnQ2F0YWxvZ2VyIEl0ZW0gTmFtZSBSZWd1bGFyIEV4cHJlc3Npb24nOwokbGFuZ1sndGl0bGVfZmllbGRfaGVpZ2h0J10gPSAnRiZhdW1sO2x0ZXRzIGgmb3VtbDtqZCc7CiRsYW5nWyd0aXRsZV9maWxlX3BhdGgnXSA9ICdNJmFyaW5nO2xtYXBwIGYmb3VtbDtyIGZpbGVyJzsKJGxhbmdbJ3RpdGxlX3VkdF9uYW1lJ10gPSAnQW52JmF1bWw7bmRhcmRlZmluaWVyYWQgdGFnZyc7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2Rlc3RwYWdlJ10gPSAnU2lkYSBhdHQgJmFyaW5nO3RlcnYmYXVtbDtuZGEgdGlsbCBtZWQgdXBwbGFkZG5pbmdzbCZhdW1sO25rJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZG1vZHVsZV9zdW1tYXJ5J10gPSAnU2tpY2thdCBtZWQgZm9ybXVsJmF1bWw7cmJ5Z2dhcmVuJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZHNfY2F0ZWdvcnknXSA9ICdVcHBsYWRkbmluZ3NrYXRlZ29yaSc7CiRsYW5nWyd0aXRsZV9zZW5kdG9fdXBsb2FkcyddID0gJ1NraWNrYSBkZW5uYSBmaWwgdGlsbCB1cHBsYWRkbmluZ3Ntb2R1bGVuLic7CiRsYW5nWyd0aXRsZV9sZWdlbmQnXSA9ICdGJm91bWw7cmtsYXJpbmcnOwokbGFuZ1sndGl0bGVfbWF4aW11bV9sZW5ndGgnXSA9ICdNYXhsJmF1bWw7bmdkJzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2xhYmVsJ10gPSAnRXRpa2V0dCBmJm91bWw7ciBrcnlzc3J5dGEnOwokbGFuZ1sndGl0bGVfcmFkaW9fbGFiZWwnXSA9ICdFdGlrZXR0IGYmb3VtbDtyIGFsdGVybmF0aXZrbmFwcCc7CiRsYW5nWyd0aXRsZV9jaGVja2VkX3ZhbHVlJ10gPSAnViZhdW1sO3JkZSBvbSBpa3J5c3NhZCc7CiRsYW5nWyd0aXRsZV91bmNoZWNrZWRfdmFsdWUnXSA9ICdWJmF1bWw7cmRlIG9tIGVqIGlrcnlzc2FkJzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2RldGFpbHMnXSA9ICdEZXRhbGplciBmJm91bWw7ciBrcnlzc3J1dGVncnVwcCc7CiRsYW5nWyd0aXRsZV9kZWxldGUnXSA9ICdUYSBib3J0Pyc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rfb25lX21lc3NhZ2UnXSA9ICdUZXh0IGYmb3VtbDtyICZxdW90O1YmYXVtbDtsaiBFbiZxdW90Oyc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fdmFsdWUnXSA9ICdWJmF1bWw7cmRlIGYmb3VtbDtyIHVydmFsJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl9kaXNwbGF5bmFtZSddID0gJ05hbW4gZiZvdW1sO3IgdXJ2YWxzdmlzbmluZyc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fc3ViamVjdCddID0gJyZBdW1sO21uZSBmJm91bWw7ciB1cnZhbCc7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9jb3VudHJ5J10gPSAnU3RhbmRhcmR1cnZhbCc7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9zdGF0ZSddID0gJ1N0YW5kYXJkdXJ2YWwnOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfcHJvdmluY2UnXSA9ICdTdGFuZGFyZHVydmFsJzsKJGxhbmdbJ3RpdGxlX29wdGlvbl9uYW1lJ10gPSAnTmFtbiBmJm91bWw7ciBhbHRlcm5hdGl2JzsKJGxhbmdbJ3RpdGxlX29wdGlvbl92YWx1ZSddID0gJ1YmYXVtbDtyZGV0IHNraWNrYXQnOwokbGFuZ1sndGl0bGVfcHVsbGRvd25fZGV0YWlscyddID0gJ0FsdGVybmF0aXYgaSBydWxsZ2FyZGluc21lbnknOwokbGFuZ1sndGl0bGVfbXVsdGlzZWxlY3RfZGV0YWlscyddID0gJ011bHRpdmFsLWFsdGVybmF0aXYnOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fYWRkcmVzcyddID0gJ01vdHRhZ2FyZW5zIGUtcG9zdGFkcmVzcyc7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9maWxlbmFtZSddID0gJ05hbW4gcCZhcmluZzsgbSZhcmluZztsZmlsJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fbmFtZSddID0gJyZxdW90O0ZyJmFyaW5nO24tbmFtbiZxdW90OyBmJm91bWw7ciBlLXBvc3QnOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9lbWFpbF9yZWdleCddID0gJ0FudiZhdW1sO25kIGVua2VsIGUtcG9zdHZlcmlmaWVyaW5nJzsKJGxhbmdbJ3RpdGxlX3JlbGF4ZWRfcmVnZXhfbG9uZyddID0gJ0FudiZhdW1sO25kIGVua2VsIGUtcG9zdGFkcmVzc3ZlcmlmaWVyaW5nICh0LmV4LiB0aWxsJmFyaW5nO3QgJnF1b3Q7eEB5JnF1b3Q7IGlzdCZhdW1sO2xsZXQgZiZvdW1sO3IgYXR0IGtyJmF1bWw7dmEgJnF1b3Q7eEB5LnNlJnF1b3Q7KSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9mcm9tX2FkZHJlc3MnXSA9ICcmcXVvdDtGciZhcmluZztuLWFkcmVzcyZxdW90OyBmJm91bWw7ciBlLXBvc3QnOwokbGFuZ1sndGl0bGVfZW1haWxfZW5jb2RpbmcnXSA9ICdFLXBvc3R0ZWNrZW5rb2RuaW5nJzsKJGxhbmdbJ3RpdGxlX2RpcmVjdG9yX2RldGFpbHMnXSA9ICdSdWxsZ2FyZGluc21lbnliYXNlcmFkZSBlLXBvc3RkZXRhbGplcic7CiRsYW5nWyd0aXRsZV9maWxlX25hbWUnXSA9ICdGaWxuYW1uJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX3N1YmplY3QnXSA9ICcmQXVtbDttbmVzcmFkIGYmb3VtbDtyIGUtcG9zdCc7CiRsYW5nWyd0aXRsZV9mb3JtX25hbWUnXSA9ICdGb3JtdWwmYXVtbDtybmFtbic7CiRsYW5nWyd0aXRsZV9mb3JtX3N0YXR1cyddID0gJ0Zvcm11bCZhdW1sO3JzdGF0dXMnOwokbGFuZ1sndGl0bGVfcmVhZHlfZm9yX2RlcGxveW1lbnQnXSA9ICdGJmF1bWw7cmRpZyBhdHQgYW52JmF1bWw7bmRhcyc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkxJ10gPSAnRWogZiZhdW1sO3JkaWcnOwokbGFuZ1sndGl0bGVfcmVkaXJlY3RfcGFnZSddID0gJ1NpZGEgYXR0IG9tZGlyaWdlcmEgdGlsbCBlZnRlciBhdHQgZm9ybXVsJmF1bWw7cmV0IHNraWNrYXRzJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTInXSA9ICdWJmF1bWw7bmxpZ2EgbCZhdW1sO2dnIHRpbGwgZXR0IGYmYXVtbDtsdCB0aWxsIGZvcm11bCZhdW1sO3JldCBzJmFyaW5nOyBhdHQgYW52JmF1bWw7bmRhcmVucyBpbm1hdG5pbmcga2FuIGhhbnRlcmFzLiBEdSBrYW4nOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5X2xpbmsnXSA9ICdhbnYmYXVtbDtuZCBkZW5uYSBnZW52JmF1bWw7Z2VuJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fYWxpYXMnXSA9ICdBbGlhcyBmJm91bWw7ciBmb3JtdWwmYXVtbDtyJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2FsaWFzX3Nob3J0J10gPSAnQWxpYXMnOwokbGFuZ1sndGl0bGVfZm9ybV9maWVsZHMnXSA9ICdGb3JtdWwmYXVtbDtyZiZhdW1sO2x0JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2lkJ10gPSAnRiZhdW1sO2x0LUlEJzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRhbGlhc2VzJ10gPSAnVmlzYSBmJmF1bWw7bHRlbnMgYWxpYXMnOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGFsaWFzZXNfbG9uZyddID0gJ09tIGR1IGtsaWNrYXIgaCZhdW1sO3Iga29tbWVyIGYmYXVtbDtsdGFsaWFzIGF0dCB2aXNhcyBuJmF1bWw7ciBkdSBsJmF1bWw7Z2dlciB0aWxsIGVsbGVyIHJlZGlnZXJhciBldHQgZm9ybXVsJmF1bWw7cic7CiRsYW5nWyd0aXRsZV9maWVsZF9uYW1lJ10gPSAnRiZhdW1sO2x0bmFtbic7CiRsYW5nWyd0aXRsZV9maWVsZF9hbGlhcyddID0gJ0YmYXVtbDtsdGFsaWFzJzsKJGxhbmdbJ3RpdGxlX3JhZGlvZ3JvdXBfZGV0YWlscyddID0gJ0RldGFsamVyIGYmb3VtbDtyIGFsdGVybmF0aXZrbmFwcGdydXBwJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3R5cGUnXSA9ICdGJmF1bWw7bHR0eXAnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MyddID0gJ2Ymb3VtbDtyIGF0dCBza2FwYSBldHQgZm9ybXVsJmF1bWw7cmhhbnRlcmluZ3NmJmF1bWw7bHQnOwokbGFuZ1sndGl0bGVfYWRkX25ld19mb3JtJ10gPSAnTCZhdW1sO2dnIHRpbGwgbnl0dCBmb3JtdWwmYXVtbDtyJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbiddID0gJ1Zpc2EgRm9ybXVsJmF1bWw7cmJ5Z2dhcmVucyB2ZXJzaW9uPyc7CiRsYW5nWyd0aXRsZV9zaG93X3ZlcnNpb25fbG9uZyddID0gJ0RldHRhIGtvbW1lciBhdHQgbCZhdW1sO2dnYSB0aWxsIHZlcnNpb25zbnVtcmV0IGYmb3VtbDtyIGRlbiB2ZXJzaW9uIGF2IEZvcm11bCZhdW1sO3JieWdnYXJtb2R1bGVuIHNvbSBkdSBoYXIgaW5zdGFsbGVyYWQgaSBlbiBrb21tZW50YXIsIGYmb3VtbDtyIGF0dCBoaiZhdW1sO2xwYSB0aWxsIG1lZCBmZWxzJm91bWw7a25pbmcuJzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZmllbGQnXSA9ICdMJmF1bWw7Z2cgdGlsbCBueXR0IGYmYXVtbDtsdCc7CiRsYW5nWyd0aXRsZV9mb3JtX3N1Ym1pdF9idXR0b24nXSA9ICdUZXh0IGYmb3VtbDtyIGZvcm11bCZhdW1sO3JldHMgc2tpY2thLWtuYXBwJzsKJGxhbmdbJ3RpdGxlX2J1dHRvbl90ZXh0J10gPSAnS25hcHAgdGV4dCc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eSddID0gJ0wmYXVtbDtnZ2EgdGlsbCBKYXZhc2NyaXB0IGYmb3VtbDtyIGRlbiBzaXN0YSBza2lja2Eta25hcHBlbiBmJm91bWw7ciBhdHQgZiZvdW1sO3JoaW5kcmEgYXR0IGZvcm11bCZhdW1sO3JldCBza2lja2FzIGZsZXJhIGcmYXJpbmc7bmdlcj8nOwokbGFuZ1sndGl0bGVfc3VibWl0X2J1dHRvbl9zYWZldHlfaGVscCddID0gJ0wmYXVtbDtnZyB0aWxsIHMmYXVtbDtrZXJoZXRzc2NyaXB0JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmV4dF9idXR0b24nXSA9ICdUZXh0IGYmb3VtbDtyICZxdW90O04mYXVtbDtzdGEta25hcHBlbiZxdW90OyBpIGZvcm11bCZhdW1sO3JldCAoYW52JmF1bWw7bmRzIGYmb3VtbDtyIGZvcm11bCZhdW1sO3IgbWVkIGZsZXJhIHNpZG9yKSc7CiRsYW5nWyd0aXRsZV9mb3JtX3ByZXZfYnV0dG9uJ10gPSAnVGV4dCBmJm91bWw7ciAmcXVvdDtGJm91bWw7cmVnJmFyaW5nO2VuZGUta25hcHBlbiZxdW90OyBpIGZvcm11bCZhdW1sO3JldCAoYW52JmF1bWw7bmRzIGYmb3VtbDtyIGZvcm11bCZhdW1sO3IgbWVkIGZsZXJhIHNpZG9yKSc7CiRsYW5nWyd0aXRsZV9maWVsZF92YWxpZGF0aW9uJ10gPSAnRiZhdW1sO2x0dmVyaWZpZXJpbmcnOwokbGFuZ1sndGl0bGVfZmllbGRfdG9fdmFsaWRhdGUnXSA9ICdGJmF1bWw7bHQgZiZvdW1sO3IgdmFsaWRlcmluZyc7CiRsYW5nWyd0aXRsZV9maWVsZF9jc3NfaWQnXSA9ICdDU1MgaWQgZiZvdW1sO3IgZGV0dGEgZiZhdW1sO2x0JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fY3NzX2NsYXNzJ10gPSAnQ1NTLWtsYXNzIGYmb3VtbDtyIGRldHRhIGZvcm11bCZhdW1sO3InOwokbGFuZ1sndGl0bGVfZmllbGRfY3NzX2NsYXNzJ10gPSAnQ1NTLWtsYXNzIGYmb3VtbDtyIGRldHRhIGYmYXVtbDtsdCc7CiRsYW5nWyd0aXRsZV9mb3JtX3ByZWRpc3BsYXlfdWR0J10gPSAnQW52JmF1bWw7bmRhcmRlZmluaWVyYWQgdGFnIGF0dCBsJmF1bWw7c2EgaW4gZiZvdW1sO3JlIGZvcm11bCZhdW1sO3JldCB2aXNhcyc7CiRsYW5nWyd0aXRsZV9mb3JtX3ByZWRpc3BsYXlfZWFjaF91ZHQnXSA9ICdBbnYmYXVtbDtuZGFyZGVmaW5pZXJhZCB0YWcgYXR0IGFucm9wYSBpbm5hbiBmb3JtdWwmYXVtbDtyIHZpc2FzIChhbnJvcGFkIHAmYXJpbmc7IHZhcmplIHNpZGEgc29tIGluZyZhcmluZztyIGkgZXR0IGZvcm11bCZhdW1sO3IgbWVkIGZsZXJhIHNpZG9yKSc7CiRsYW5nWyd0aXRsZV9mb3JtX3ZhbGlkYXRlX3VkdCddID0gJ0FudiZhdW1sO25kYXJkZWZpbmllcmFkIHRhZyBhdHQgYW5yb3BhIHVuZGVyIGZvcm11bCZhdW1sO3IgdmFsaWRhdGlvbic7CiRsYW5nWyd0aXRsZV9mb3JtX3JlcXVpcmVkX3N5bWJvbCddID0gJ1N5bWJvbCBmJm91bWw7ciBhdHQgbWFya2VyYSBvYmxpZ2F0b3Jpc2thIGYmYXVtbDtsdCc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZCddID0gJ09ibGlnYXRvcmlza3QnOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWRfbG9uZyddID0gJ0cmb3VtbDtyIGRldHRhIGYmYXVtbDtsdCBvYmxpZ2F0b3Jpc2t0JzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWwnXSA9ICdHJm91bWw7bSBldGlrZXR0JzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWxfbG9uZyddID0gJ0cmb3VtbDttIGRldHRhIGYmYXVtbDtsdHMgbmFtbiBwJmFyaW5nOyBmb3JtdWwmYXVtbDtyZXQnOwokbGFuZ1sndGl0bGVfdGV4dCddID0gJ1N0YXRpc2sgdGV4dCBhdHQgdmlzYSc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZWdleCddID0gJ1JlZ3VsaiZhdW1sO3J1dHRyeWNrIGYmb3VtbDtyIHZlcmlmaWVyaW5nJzsKJGxhbmdbJ3RpdGxlX2xpbmVzX3RvX3Nob3cnXSA9ICdBbnRhbCByYWRlciBhdHQgdmlzYSc7CiRsYW5nWyd0aXRsZV9yZWFkX29ubHknXSA9ICdSZWFkIE9ubHknOwokbGFuZ1snbm9fZGVmYXVsdCddID0gJ0luZ2V0IHN0YW5kYXJkdmFsJzsKJGxhbmdbJ3JlZGlyZWN0X2FmdGVyX2FwcHJvdmFsJ10gPSAnU2lkYSBhdHQgb21kaXJpZ2VyYSB0aWxsIGVmdGVyIGdvZGsmYXVtbDtubmFuZGUnOwokbGFuZ1sndGl0bGVfcmVnZXhfaGVscCddID0gJ0RldHRhIHJlZ3VsaiZhdW1sO3J1dHRyeWNrIGFudiZhdW1sO25kcyBiYXJhIG9tICZxdW90O3ZlcmlmaWVyaW5nc3R5cGVuJnF1b3Q7ICZhdW1sO3Igc2F0dCB0aWxsIGV0dCByZWd1bGomYXVtbDtydXR0cnljay1yZWxhdGVyYXQgYWx0ZXJuYXRpdi4gSW5rbHVkZXJhIGV0dCBmdWxsdCByZWd1bGomYXVtbDtydXR0cnljayBpIFBlcmwtc3RpbCwgaW5rbHVzaXZlIHN0YXJ0L3N0b3Atc25lZHN0cmVja2VuIG9jaCAtZmxhZ2dvcm5hICh0LmV4LiAmcXVvdDsvaW1hZ2VcLihcZCspL2kmcXVvdDspJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2FiYnJldiddID0gJ09ibGlnLic7CiRsYW5nWyd0aXRsZV9oaWRlX2Vycm9ycyddID0gJ0cmb3VtbDttIGZlbCc7CiRsYW5nWyd0aXRsZV9mb3JtX2Rpc3BsYXl0eXBlJ10gPSAnRm9ybXVsJmF1bWw7cnZpc25pbmdzdHlwJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzX2xvbmcnXSA9ICdGJm91bWw7cmhpbmRyYSBmZWxzJm91bWw7a25pbmdzLSBvY2ggZmVsbWVkZGVsYW5kZW4gZnImYXJpbmc7biBhdHQgdmlzYXMgZiZvdW1sO3IgYW5kcmEgYW52JmF1bWw7bmRhcmUuJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX3RlbXBsYXRlJ10gPSAnRS1wb3N0bWFsbCc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX3NpemUnXSA9ICdNYXhpbWFsIGZpbHN0b3JsZWsgZiZvdW1sO3IgdXBwbGFkZG5pbmcgKGtpbG9ieXRlKSc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX3NpemVfbG9uZyddID0gJ0Rlbm5hIGJlZ3ImYXVtbDtuc25pbmcgJmF1bWw7ciB1dCZvdW1sO3ZlciBhbmRyYSBiZWdyJmF1bWw7bnNuaW5nYXIgc29tICZhdW1sO3Igc2F0dGEgYXYgcGhwLSBlbGxlciB3ZWJic2VydmVyaW5zdCZhdW1sO2xsbmluZ2FyLic7CiRsYW5nWyd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ1RpbGwmYXJpbmc7dG5hIGZpbCZhdW1sO25kZWxzZXInOwokbGFuZ1sndGl0bGVfcGVybWl0dGVkX2V4dGVuc2lvbnNfbG9uZyddID0gJ1Nrcml2IGVuIGtvbW1hLXNlcGFyYXJhZCBsaXN0YSwgdXRhbiBwdW5rdCAodC5leC4gJnF1b3Q7anBnLGdpZixqcGVnJnF1b3Q7KS4gTWVsbGFuc2xhZyBpZ25vcmVyYXMuIE9tIGR1IGwmYXVtbDttbmFyIGRldHRhIGYmYXVtbDtsdGV0IGJsYW5rdCBpbm5lYiZhdW1sO3IgZGV0IGF0dCBkZXQgaW50ZSBrb21tZXIgYXR0IGZpbm5hcyBuJmFyaW5nO2dyYSByZXN0cmlrdGlvbmVyLic7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zJ10gPSAnVmlzYSByZXN0cmlrdGlvbmVyPyc7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zX2xvbmcnXSA9ICdWaXNhIGFsbGEgc3Rvcmxla3MtIG9jaCBmaWwmYXVtbDtuZGVsc2VyZXN0cmlrdGlvbmVyIGYmb3VtbDtyIHVwcGxhZGRuaW5nc2YmYXVtbDtsdGV0Pyc7CiRsYW5nWyd0aXRsZV9mb3JtX3RlbXBsYXRlJ10gPSAnTWFsbCBhdHQgYW52JmF1bWw7bmRhIGYmb3VtbDtyIFZpc2EgRm9ybXVsJmF1bWw7cic7CiRsYW5nWyd0aXRsZV9wYWdlX3hfb2ZfeSddID0gJ1NpZGEgJXMgYXYgJXMnOwokbGFuZ1sndGl0bGVfbm9fYWR2YW5jZWRfb3B0aW9ucyddID0gJ0YmYXVtbDtsdGV0IGhhciBpbmdhIGF2YW5jZXJhZGUgaW5zdCZhdW1sO2xsbmluZ2FyJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdW5zcGVjaWZpZWQnXSA9ICdUZXh0IGF0dCByZXR1cm5lcmEgZiZvdW1sO3Igb3NwZWNpZmljZXJhZGUgZiZhdW1sO2x0diZhdW1sO3JkZW4nOwokbGFuZ1sndGl0bGVfZW5hYmxlX2Zhc3RhZGRfbG9uZyddID0gJ00mb3VtbDtqbGlnZyZvdW1sO3IgcnVsbGdhcmRpbnNtZW55IGYmb3VtbDtyIHNuYWJiLXRpbGwmYXVtbDtnZyBhdmwgZiZhdW1sO2x0IGYmb3VtbDtyIGZvcm11bCZhdW1sO3I/JzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9mYXN0YWRkJ10gPSAnTSZvdW1sO2psaWdnJm91bWw7ciBydWxsZ2FyZGluc21lbnkgZiZvdW1sO3Igc25hYmItdGlsbCZhdW1sO2dnPyc7CiRsYW5nWyd0aXRsZV9mYXN0YWRkJ10gPSAnU25hYmItdGlsbCZhdW1sO2dnIGF2IGYmYXVtbDtsdCc7CiRsYW5nWyd0aXRsZV9lbmFibGVfYW50aXNwYW1fbG9uZyddID0gJ04mYXVtbDtyIGRlbm5hIGtsaWNrYXMgcCZhcmluZzsgdGlsbCZhcmluZzt0cyBlbmRhc3QgMTAgZS1wb3N0bWVkZGVsYW5kZW4gYXR0IGdlbmVyZXJhcyBmciZhcmluZztuIGVuIGdpdmVuIElQLWFkcmVzcyAocGVyIHRpbW1lKSc7CiRsYW5nWyd0aXRsZV9lbmFibGVfYW50aXNwYW0nXSA9ICdUaWxsJmFyaW5nO3QgcHJpbWl0aXZhIGFudGktc2tyJmF1bWw7cHBvc3RlZ2Vuc2thcGVyPyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkaWRzJ10gPSAnVmlzYSBmJmF1bWw7bHQtSUQmIzAzOTtuJzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRpZHNfbG9uZyddID0gJ04mYXVtbDtyIGRlbm5hIGtsaWNrYXMgdGlsbCZhcmluZzt0cyBmJmF1bWw7bHQtSUQmIzAzOTtuIGF0dCB2aXNhcyBuJmF1bWw7ciBtYW4gbCZhdW1sO2dnZXIgdGlsbCBlbGxlciByZWRpZ2VyYXIgZXR0IGZvcm11bCZhdW1sO3InOwokbGFuZ1sndGl0bGVfeG1sX3RvX3VwbG9hZCddID0gJ0xhZGRhIHVwcCBmb3JtdWwmYXVtbDtyIGZyJmFyaW5nO24gWE1MLWZpbCc7CiRsYW5nWyd0aXRsZV94bWxfdXBsb2FkX2Zvcm1uYW1lJ10gPSAnQW52JmF1bWw7bmQgZGV0dGEgZm9ybXVsJmF1bWw7cm5hbW4nOwokbGFuZ1sndGl0bGVfaW1wb3J0X2xlZ2VuZCddID0gJ1hNTC1pbXBvcnQgYXYgZm9ybXVsJmF1bWw7cic7CiRsYW5nWyd0aXRsZV94bWxfdXBsb2FkX2Zvcm1hbGlhcyddID0gJ0FudiZhdW1sO25kIGRldHRhIGZvcm11bCZhdW1sO3JhbGlhcyc7CiRsYW5nWyd0aXRsZV9odG1sX2VtYWlsJ10gPSAnR2VuZXJlcmEgSFRNTC1lcG9zdG1lZGRlbGFuZGVuPyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZSddID0gJ0Z5bGwgaSBhdXRvbWF0aXNrdD8nOwokbGFuZ1sndGl0bGVfbGlua19hdXRvcG9wdWxhdGVfaGVscCddID0gJ0Z5bGwgaSBVUkwtYWRyZXNzIGYmb3VtbDtyIHNpZGFuIGQmYXVtbDtyIGZvcm11bCZhdW1sO3JldCBmaW5ucyBhdXRvbWF0aXNrdD8gKGRldHRhICZhcmluZztzaWRvcyZhdW1sO3R0ZXIgYWx0ZXJuYXRpdmV0IHNhanRzaWRlbCZhdW1sO25rIG5lZGFuKSc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2xpbmsnXSA9ICdTdGFuZGFyZC1VUkwtYWRyZXNzIGYmb3VtbDtyIGwmYXVtbDtuayc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2xpbmtfdGl0bGUnXSA9ICdTdGFuZGFyZHRleHQgZiZvdW1sO3IgbCZhdW1sO25rJzsKJGxhbmdbJ3RpdGxlX2xpbmtfdG9fc2l0ZXBhZ2UnXSA9ICdMJmF1bWw7bmsgdGlsbCBzYWp0LXNpZGFuJzsKJGxhbmdbJ3RpdGxlX2NhcHRjaGFfbm90X2luc3RhbGxlZCddID0gJ1lvdSBjYW4gdXNlIDxhIGhyZWY9Imh0dHA6Ly93d3cud2lraXBlZGlhLm9yZy93aWtpL0NhcHRjaGEiIHRhcmdldD0iX25ldyI+JnF1b3Q7Q2FwdGNoYSZxdW90OzwvYT4gdG8gcHJvdGVjdCBmb3JtIHN1Ym1pc3Npb25zIGlmIHlvdSBpbnN0YWxsIHRoZSBDYXB0Y2hhIG1vZHVsZS4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvY2FwdGNoYS8iPmNoZWNrIHRoZSBDYXB0Y2hhIHByb2plY3Q8L2E+Lic7CiRsYW5nWyd0aXRsZV91c2VfY2FwdGNoYSddID0gJ0FudiZhdW1sO25kIENhcHRjaGEgZiZvdW1sO3IgYXR0IGYmb3VtbDtyZWJ5Z2dhIG8mb3VtbDtuc2thdCBmb3JtdWwmYXVtbDtyZGF0YT8nOwokbGFuZ1sndGl0bGVfdXNlX2NhcHRjaGFfaGVscCddID0gJ0NoZWNrIGhlcmUgdG8gcHJvdGVjdCB5b3VyIGZvcm0gd2l0aCBhIDxhIGhyZWY9Imh0dHA6Ly93d3cud2lraXBlZGlhLm9yZy93aWtpL0NhcHRjaGEiIHRhcmdldD0iX25ldyI+JnF1b3Q7Q2FwdGNoYSZxdW90OzwvYT4uJzsKJGxhbmdbJ3RpdGxlX3VzZXJfY2FwdGNoYSddID0gJ0Jla3ImYXVtbDtmdGEgYXR0IGR1IGludGUgJmF1bWw7ciBldHQgc2NyaXB0IGdlbm9tIGF0dCBtYXRhIGluIHRleHRlbiBpIGJpbGRlbic7CiRsYW5nWyd0aXRsZV91c2VyX2NhcHRjaGFfZXJyb3InXSA9ICdDYXB0Y2hhLXRleHRlbiBtaXNzbHlja2FkZXMnOwokbGFuZ1snd3JvbmdfY2FwdGNoYSddID0gJ0NhcHRjaGEtdGV4dGVuIHZhciBpbnRlIHImYXVtbDt0dCc7CiRsYW5nWyd0aXRsZV90aXRsZV91c2VyX2NhcHRjaGEnXSA9ICdIaiZhdW1sO2xwdGV4dCBmJm91bWw7ciBDYXB0Y2hhJzsKJGxhbmdbJ3RpdGxlX2RvbnRfc3VibWl0X3VuY2hlY2tlZCddID0gJ0RvbiYjMDM5O3Qgc3VibWl0IHZhbHVlcyBmb3IgdW5jaGVja2VkIGJveGVzJzsKJGxhbmdbJ3RpdGxlX2RvbnRfc3VibWl0X3VuY2hlY2tlZF9oZWxwJ10gPSAnS2xpY2thIGgmYXVtbDtyIG9tIGR1IGJhcmEgdmlsbCBoYSBmJm91bWw7cmtyeXNzYWRlIHJ1dG9ycyB2JmF1bWw7cmRlbi4nOwokbGFuZ1snbGlua19sYWJlbCddID0gJ0wmYXVtbDtua3RldGlrZXR0JzsKJGxhbmdbJ2xpbmtfZGVzdGluYXRpb24nXSA9ICdVUkwnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9zZXQnXSA9ICdJa3J5c3NhZCBzb20gc3RhbmRhcmQ/JzsKJGxhbmdbJ3RpdGxlXzI0X2hvdXInXSA9ICdBbnYmYXVtbDtuZCAyNC10aW1tYXJzIHRpZHNhbmdpdmVsc2U/JzsKJGxhbmdbJ3RpdGxlX2JlZm9yZV9ub29uJ10gPSAnRU0nOwokbGFuZ1sndGl0bGVfYWZ0ZXJfbm9vbiddID0gJ0ZNJzsKJGxhbmdbJ3RpdGxlX3NtYXJ0eV9ldmFsJ10gPSAnQmVoYW5kbGEgc21hcnR5LXRhZzphciBpIGYmYXVtbDtsdD8nOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfcm93cyddID0gJ1JhZGVyIChOb3RlcmEgYXR0IGRldHRhIGthbiAmb3VtbDt2ZXJza3JpZGFzIGF2IENTUyknOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfY29scyddID0gJ0tvbHVtbmVyIChOb3RlcmEgYXR0IGRldHRhIGthbiAmb3VtbDt2ZXJza3JpZGFzIGF2IENTUyknOwokbGFuZ1sndGl0bGVfZm9ybV9tYWluJ10gPSAnRGV0YWxqZXIgZiZvdW1sO3IgaHV2dWRmb3JtdWwmYXVtbDtyJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfYmxhbmsnXSA9ICdEZWZhdWx0IHRvIGJsYW5rJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfYmxhbmtfaGVscCddID0gJ0RlZmF1bHQgdG8gYmxhbmsgKHVuY2hlY2sgdG8gZGVmYXVsdCB0byB0b2RheSYjMDM5O3MgZGF0ZSknOwokbGFuZ1sndGl0bGVfc2hvd191c2VybmFtZSddID0gJ0Rpc3BsYXkgVXNlciYjMDM5O3MgbG9naW4gbmFtZT8nOwokbGFuZ1sndGl0bGVfc2hvd191c2VyZmlyc3RuYW1lJ10gPSAnRGlzcGxheSBVc2VyJiMwMzk7cyBmaXJzdCBuYW1lPyc7CiRsYW5nWyd0aXRsZV9zaG93X3VzZXJsYXN0bmFtZSddID0gJ0Rpc3BsYXkgVXNlciYjMDM5O3MgbGFzdCBuYW1lPyc7CiRsYW5nWyd0aXRsZV9yZXN0cmljdF90b19ncm91cCddID0gJ0JlZ3ImYXVtbDtuc2EgYW52JmF1bWw7bmRhcmxpc3RhbiB0aWxsIGFudiZhdW1sO25kYXJlIGkgdmlzcyBncnVwcCc7CiRsYW5nWyd0aXRsZV9lbmNyeXB0X2RhdGFiYXNlX2RhdGEnXSA9ICdLcnlwdGVyYSBsYWdyYWQgZGF0YSBpIGRhdGFiYXNlbic7CiRsYW5nWyd0aXRsZV9jcnlwdF9jZXJ0J10gPSAnQ2VydGlmaWthdCBmJm91bWw7ciBrcnlwdGVyaW5nIGF2IGRhdGEnOwokbGFuZ1sndGl0bGVfZW5jcnlwdGlvbl9rZXlmaWxlJ10gPSAnUGFzc3BocmFzZSBvciBwYXRoIHRvIGZpbGUgY29udGFpbmluZyBwYXNzcGhyYXNlLiAoSWYgdXNpbmcgT3BlblNTTCwgdGhpcyBpcyB0aGUgcGFzc3BocmFzZSBmb3IgdGhlIHByaXZhdGUga2V5KSc7CiRsYW5nWyd0aXRsZV9lbmNyeXB0X3NvcnRmaWVsZHMnXSA9ICdIYXNoIHNvcnQgZmllbGRzPyc7CiRsYW5nWyd0aXRsZV9wcml2YXRlX2tleSddID0gJ1ByaXZhdCBueWNrZWwgZiZvdW1sO3Iga3J5cHRlcmluZyBhdiBkYXRhJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRfc29ydGZpZWxkc19oZWxwJ10gPSAnVGhpcyBoYXNoZXMgdGhlIHNvcnQgZmllbGRzLCBidXQgbGVhdmVzIHRoZSBmaXJzdCBmZXcgbGV0dGVycyB1bmVuY3J5cHRlZC4gQ3J5cHRvZ3JhcGhpY2FsbHksIHRoaXMgY3JlYXRlcyBhIHZ1bG5lcmFiaWxpdHksIGJ1dCBmb3IgbW9zdCB1c2VycyBpdCBpcyBhbiBhY2NlcHRhYmxlIHRyYWRlb2ZmIGJldHdlZW4gc2VjdXJpdHkgYW5kIHRoZSBhYmlsaXR5IHRvIHNvcnQgcmVjb3Jkcy4gU29ydGluZyBiZWNvbWVzIGFwcHJveGltYXRlLCBidXQgd2lsbCByZW1haW4gcHJldHR5IGdvb2QuIElmIHlvdSBkbyBub3QgdXNlIHRoaXMgb3B0aW9uLCBzb3J0IGZpZWxkcyBhcmUgc3RvcmVkIGluIHBsYWludGV4dC4nOwokbGFuZ1sndGl0bGVfZW5jcnlwdGlvbl9mdW5jdGlvbnMnXSA9ICdMYWdyaW5nc2tyeXB0ZXJpbmcgb3RpbGxnJmF1bWw7bmdsaWcnOwokbGFuZ1sndGl0bGVfaW5zdGFsbF9jcnlwdG8nXSA9ICdWYXIgdiZhdW1sO25saWcgaW5zdGFsbGVyYSBPcGVuU1NMIG1vZHVsZW4gZWxsZXIgbWNyeXB0IHN0Jm91bWw7ZCBvbSBkdSB2aWxsIG0mb3VtbDtqbGlnZyZvdW1sO3JhIGRhdGFiYXNrcnlwdGVyaW5nJzsKJGxhbmdbJ3RpdGxlX2luc3RhbGxfY3VybCddID0gJ0tvbnRyb2xsZXJhIGF0dCBkdSBoYXIgc3Qmb3VtbDtkIGYmb3VtbDtyIENVUkwgYWt0aXZlcmF0IGkgZGluIFBIUCBpbnN0YWxsYXRpb24uIFNlIGh0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vYm9vay5jdXJsLnBocCc7CiRsYW5nWyd0aXRsZV9tbGVfdmVyc2lvbiddID0gJ0smb3VtbDtyIGkgTUxFIGwmYXVtbDtnZSc7CiRsYW5nWyd0aXRsZV9tbGVfdmVyc2lvbl9sb25nJ10gPSAnQ2hhbmdlcy9zdXBwb3J0IGZvciBDTVNNUyBNdWx0aS1MYW5ndWFnZSBFZGl0aW9uIGZvcmsuIERvIG5vdCBjaGVjayB0aGlzIGlmIHlvdSBhcmUgbm90IHJ1bm5pbmcgdGhlIE1MRSB2ZXJzaW9uLic7CiRsYW5nWyd0aXRsZV9lbnN1cmVfY2VydF9rZXlfbWF0Y2gnXSA9ICdFbnN1cmUgdGhhdCB5b3Ugc2VsZWN0IHRoZSBwcml2YXRlIGtleSB0aGF0IGlzIGFwcHJvcHJpYXRlIGZvciB0aGUgY2VydGlmaWNhdGUgeW91IGFyZSB1c2luZyBmb3IgZW5jcnlwdGlvbiEnOwokbGFuZ1snY2hvb3NlX2NyeXB0J10gPSAnS3J5cHRlcmluZ3MgYmlibGlvdGVrJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRfZGF0YWJhc2VfbG9uZyddID0gJ0NoZWNrIHRoaXMgdG8gZW5jcnlwdCB0aGUgc3RvcmVkIGRhdGEuIFRoaXMgbWFrZXMgaXQgbW9yZSBkaWZmaWN1bHQgKGJ1dCBub3QgaW1wb3NzaWJsZSkgZm9yIGhhY2tlcnMgdG8gdmlldyB0aGUgaW5mb3JtYXRpb24uJzsKJGxhbmdbJ2Nob29zZV9jcnlwdF9sb25nJ10gPSAnVGhlIG9wdGlvbnMgYmVsb3cgb25seSBhcHBseSBpZiB5b3UgYXJlIHVzaW5nIHRoZSBPcGVuU1NMIEVuY3J5cHRpb24gbGlicmFyeSc7CiRsYW5nWyd0aXRsZV9jcnlwdF9saWInXSA9ICdLcnlwdGVyaW5ncyBiaWJsaW90ZWsnOwokbGFuZ1snb3BlbnNzbCddID0gJ09wZW5TU0wgTGlicmFyeSc7CiRsYW5nWydtY3J5cHQnXSA9ICdQSFAgbWNyeXB0IExpYnJhcnknOwokbGFuZ1sndGl0bGVfZmV1X2JpbmRpbmcnXSA9ICdGcm9udGVuZCBVc2VyIGJpbmRpbmcnOwokbGFuZ1sndGl0bGVfaW5zdGFsbF9mZXUnXSA9ICdWYXIgdiZhdW1sO25saWcgaW5zdGFsbGVyYSBGcm9udGVuZCBVc2VyIG1vZHVsZW4gZiZvdW1sO3IgYXR0IGtvcHBsYSBldHQgZm9ybXVsJmF1bWw7ciBvY2ggZGVzcyBkYXRhIHRpbGwgZW4gc3BlY2lmaWsgYW52JmF1bWw7bmRhcmUnOwokbGFuZ1sndGl0bGVfZmV1X2JpbmRfaGVscCddID0gJ0NoZWNrIHRoaXMgdG8gbG9jayBmcm9udC1lbmQgYWNjZXNzIHRvIHRoaXMgZm9ybSYjMDM5O3MgZGF0YSB0byB0aGUgbG9nZ2VkLWluIGZyb250LWVuZCB1c2VyLic7CiRsYW5nWyd0aXRsZV9lbmNyeXB0aW9uJ10gPSAnS3J5cHRlcmluZyc7CiRsYW5nWyd0aXRsZV9leHBvcnRfZm9ybV90b191ZHQnXSA9ICdFeHBvcnQgZm9ybSByZWZlcmVuY2UgdG8gVURUIGFzICRwYXJhbXNbJiMwMzk7Rk9STSYjMDM5O10/JzsKJGxhbmdbJ3RpdGxlX3VybF9oZWxwJ10gPSAnRW50aXJlIFVSTCwgaW5jbHVkaW5nIHByb3RvY29sIGFuZCBwYXRoIChlLmcuLCBodHRwOi8vbXlob3N0LmNvbS9mb3JtX2hhbmRsZXIuY2dpKSc7CiRsYW5nWyd0aXRsZV91cmwnXSA9ICdGb3JtIHN1Ym1pc3Npb24gVVJMJzsKJGxhbmdbJ3RpdGxlX21ldGhvZCddID0gJ0Zvcm0gbWV0aG9kJzsKJGxhbmdbJ3RpdGxlX21hcHNfdG8nXSA9ICdNYXAgZmllbGQgJnF1b3Q7JXMmcXVvdDsgdG8gZm9ybSBzdWJtaXNzaW9uIHZhcmlhYmxlJzsKJGxhbmdbJ3RpdGxlX2FkZGl0aW9uYWwnXSA9ICdBZGRpdGlvbmFsIHN1Ym1pc3Npb24nOwokbGFuZ1sndGl0bGVfYWRkaXRpb25hbF9oZWxwJ10gPSAnQW55dGhpbmcgdG8gYmUgYXBwZW5kZWQgdG8gdGhlIHN1Ym1pc3Npb24gcGF5bG9hZCwgaW4gVVJMLWVuY29kZWQgZm9ybSAoLmUuZywgJnF1b3Q7dXNlcj1zdGV2ZStqb2JzJmFtcDtlbXBsb3llZV9udW1iZXI9MSknOwokbGFuZ1sndGl0bGVfaW5jbHVkZV9pbl9zdWJtaXNzaW9uJ10gPSAnSW5jbHVkZSBmaWVsZCBpbiBTdWJtaXNzaW9uJzsKJGxhbmdbJ3RpdGxlX2RhdGFfc3RvcmVkX2luX2ZiciddID0gJ0RhdGEgd2lsbCBiZSBzdG9yZWQgaW4gYW4gWE1MIGZvcm1hdCBpbiB0aGUgW1BSRUZJWF1fbW9kdWxlX2ZiX2Zyb21icm93c2VyIGRhdGFiYXNlIHRhYmxlLic7CiRsYW5nWydlcnJvcl9oYXNfbm9fZmJfZmllbGQnXSA9ICdFcnJvciEgRWl0aGVyIHRoZSBmb3JtIGhhcyBubyBmb3JtX2J1aWxkZXIgZGlzcG9zaXRpb24sIG9yIGl0IGZhaWxlZCB0byBpbnN0YW50aWF0ZSAoZHVlIHRvIG1lbW9yeSBpc3N1ZXM/KSc7CiRsYW5nWydyZXN0cmljdGVkX3RvX2dyb3VwJ10gPSAnRW5kYXN0IGkgZ3J1cHAgJXMnOwokbGFuZ1sndGl0bGVfc2hvd190b191c2VyJ10gPSAnVmlzYSBmJm91bWw7ciBhbnYmYXVtbDtuZGFyZT8nOwokbGFuZ1snaGVscF9sZWF2ZWVtcHR5J10gPSAnRGV0IGgmYXVtbDtyIGYmYXVtbDtsdGV0IGthbiBsJmF1bWw7bW5hcyB0b210JzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVzX2Zvcl90ZW1wbGF0ZSddID0gJ1ZhcmlhYmxlciBmJm91bWw7ciBtYWxsJzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVzX2Zvcl9jb21wdXRhdGlvbiddID0gJ1RpbGxnJmF1bWw7bmdsaWdhIHZhcmlhYmxlcic7CiRsYW5nWydoZWxwX3BocF92YXJpYWJsZV9uYW1lJ10gPSAnUEhQLXZhcmlhYmVsJzsKJGxhbmdbJ2hlbHBfc3VibWlzc2lvbl9kYXRlJ10gPSAnSW5za2lja2F0IGRhdHVtJzsKJGxhbmdbJ2hlbHBfc2VydmVyX25hbWUnXSA9ICdEaW4gc2VydmVyJzsKJGxhbmdbJ2hlbHBfc3ViX3NvdXJjZV9pcCddID0gJ0lQLWFkcmVzcyBmJm91bWw7ciBwZXJzb25lbiBzb20gYW52JmF1bWw7bnQgZm9ybXVsJmF1bWw7cmV0JzsKJGxhbmdbJ2hlbHBfc3ViX3VybCddID0gJ1VSTCBmJm91bWw7ciBzaWRhbiBzb20gaW5uZWgmYXJpbmc7bGxlciBmb3JtdWwmYXVtbDtyJzsKJGxhbmdbJ2hlbHBfZmJfdmVyc2lvbiddID0gJ0Zvcm1CdWlsZGVyIFZlcnNpb24nOwokbGFuZ1snaGVscF90YWInXSA9ICdUYWIgQ2hhcmFjdGVyJzsKJGxhbmdbJ2hlbHBfb3RoZXJfZmllbGRzJ10gPSAnQWx0ZXJuYXRpdmEgZiZhdW1sO2x0bmFtbiBrYW4gYW52JmF1bWw7bmRhcyB1dGJ5dGJhcnQgKHMmYXVtbDtyc2tpbHQgYW52JmF1bWw7bmRiYXJ0IG9tIFNtYXJ0eSBpbnRlIGdpbGxhciB0ZWNrZW4gdXRhbmYmb3VtbDtyIEFTQ0lJIDMyLTEyNikgPGJyIC8+QW5kcmEgZiZhdW1sO2x0IGJsaXIgdGlsbGcmYXVtbDtuZ2xpZ2EgZWZ0ZXJoYW5kIHNvbSBkdSBsJmF1bWw7Z2dlciB0aWxsIGRlbSB0aWxsIGZvcm11bCZhdW1sO3JldC4nOwokbGFuZ1snaGVscF9hcnJheV9maWVsZHMnXSA9ICdGJmF1bWw7bHQgc29tIGhhciBmbGVyYSB2JmF1bWw7cmRlbiBrYW4gb2NrcyZhcmluZzsga29tbWFzICZhcmluZzt0IHZpYSBzbWFydHl2JmF1bWw7cmRlbmEgJGZpZWxkbmFtZV9hcnJheSBlbGxlciAkZmxkXyNfYXJyYXkuJzsKJGxhbmdbJ2hlbHBfZGF0ZV9mb3JtYXQnXSA9ICdTZSA8YSBocmVmPSJodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwIiB0YXJnZXQ9X05FVz5waHAtbWFudWFsZW48L2E+IGYmb3VtbDtyIGhqJmF1bWw7bHAgbWVkIGZvcm1hdHRlcmluZy4uJzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVfbmFtZSddID0gJ1ZhcmlhYmVsJzsKJGxhbmdbJ2hlbHBfZm9ybV9maWVsZCddID0gJ1JlcHJlc2VudGVyYWRlIGYmYXVtbDtsdCc7CiRsYW5nWydsaW5rX2JhY2tfdG9fZm9ybSddID0gJyZsYXF1bzsgVGlsbGJha2EgdGlsbCBmb3JtdWwmYXVtbDtyJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfdGVtcGxhdGUnXSA9ICdTa2FwYSBwcm92bWFsbCc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2h0bWxfdGVtcGxhdGUnXSA9ICdTa2FwYSBwcm92bWFsbCBmJm91bWw7ciBIVE1MJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaGVhZGVyX3RlbXBsYXRlJ10gPSAnU2thcGEgUHJvdm1hbGwgZiZvdW1sO3IgSGVhZGVybic7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2hlYWRlciddID0gJ1NrYXBhIHJ1YnJpayAoaGVhZGVyKSc7CiRsYW5nWydoZWxwX3RhYl9zeW1ib2wnXSA9ICdldHQgdGFidWxhdG9yLXRlY2tlbic7CiRsYW5nWyd0aXRsZV9maWxlX3RlbXBsYXRlJ10gPSAnTWFsbCBmJm91bWw7ciBlbiByYWQgaSB1dGRhdGFmaWwnOwokbGFuZ1sndGl0bGVfZmlsZV9oZWFkZXInXSA9ICdNYWxsIGYmb3VtbDtyIGh1dnVkIHAmYXJpbmc7IHV0ZmlsJzsKJGxhbmdbJ3RpdGxlX2NvbmZpcm1hdGlvbl91cmwnXSA9ICdVUkwgYXR0IGtsaWNrYSBmJm91bWw7ciBmb3JtdWwmYXVtbDtyYmVrciZhdW1sO2Z0ZWxzZSc7CiRsYW5nWyd0aXRsZV92YWx1ZSddID0gJ1YmYXVtbDtyZGUgKHNlIGZsaWtlbiBBdmFuY2VyYXQgb20gZHUgYW52JmF1bWw7bmRlciBTbWFydHktdGFnYXIpJzsKJGxhbmdbJ3RpdGxlX2RhdGVfZm9ybWF0J10gPSAnRGF0dW1mb3JtYXQgKHZhbmxpZ2E8YSBocmVmPSJodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwIj5waHAtZGF0dW1mb3JtYXQ8L2E+KSc7CiRsYW5nWyd0aXRsZV91c2Vfd3lzaXd5ZyddID0gJ0FudiZhdW1sO25kIFdZU0lXWUctcmVkaWdlcmFyZSBmJm91bWw7ciB0ZXh0cnV0YW4gKGVuYmFydCBhZG1pbnNpZGFuKT8nOwokbGFuZ1sndGl0bGVfc3VibWl0X2FjdGlvbnMnXSA9ICdGb3JtIFN1Ym1pc3Npb24gQmVoYXZpb3InOwokbGFuZ1sndGl0bGVfc3VibWl0X2xhYmVscyddID0gJ1N1Ym1pc3Npb24gQnV0dG9uIExhYmVscyc7CiRsYW5nWyd0aXRsZV9zb3J0YWJsZV9maWVsZCddID0gJ1NvcnRhYmxlIEZpZWxkICMlcyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfaGVscCddID0gJ1RoaXMgcGFnZSBsZXRzIHlvdSBjdXN0b21pemUgRm9ybSBTdWJtaXNzaW9uLiBJdCBkb2VzbiYjMDM5O3QgZGV0ZXJtaW5lIHdoYXQgdGhlIEZvcm0gQnVpbGRlciBkb2VzIHdpdGggdGhlIHN1Ym1pdHRlZCBkYXRhLiBZb3UgY2FuIHNldCB0aGF0IHVwIGJ5IGFkZGluZyAmcXVvdDtEaXNwb3NpdGlvbiZxdW90OyBmaWVsZHMgdG8geW91ciBmb3JtLic7CiRsYW5nWyd0aXRsZV9zdGFydF95ZWFyJ10gPSAnU3RhcnQgcCZhcmluZzsgJmFyaW5nO3JvbWYmYXJpbmc7bmcnOwokbGFuZ1sndGl0bGVfZW5kX3llYXInXSA9ICdTbHV0IHAmYXJpbmc7ICZhcmluZztyb21mJmFyaW5nO25nJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfeWVhciddID0gJ1N0YW5kYXJkICZBcmluZztyJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfeWVhcl9oZWxwJ10gPSAnKFMmYXVtbDt0dCB0aWxsIC0xIGYmb3VtbDtyIGF0dCBzdGFuZGFyZCZhcmluZztyIHNrYSB2YXJhIG51dmFyYW5kZSAmYXJpbmc7ciknOwokbGFuZ1sndGl0bGVfc3VibWl0X2FjdGlvbiddID0gJ0VmdGVyIGF0dCBmb3JtdWwmYXVtbDtyZXQgbCZhdW1sO21uYXRzIGluJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9yZXNwb25zZSddID0gJ1Jlc3BvbnNlIHRvIGRpc3BsYXknOwokbGFuZ1sndGl0bGVfc3VibWl0X2RhdGUnXSA9ICdEYXRlIFN1Ym1pdHRlZCc7CiRsYW5nWyd0aXRsZV9hcHByb3ZhbF9kYXRlJ10gPSAnRGF0dW0gR29kayZhdW1sO25kIChhdiBhZG1pbiknOwokbGFuZ1sndGl0bGVfdXNlcl9hcHByb3ZlZCddID0gJ0RhdGUgQXBwcm92ZWQgKGJ5IHN1Ym1pdHRlciknOwokbGFuZ1snZGlzcGxheV90ZXh0J10gPSAnRGlzcGxheSAmcXVvdDtTdWJtaXNzaW9uIFRlbXBsYXRlJnF1b3Q7JzsKJGxhbmdbJ3JlZGlyZWN0X3RvX3BhZ2UnXSA9ICdTa2lja2EgdGlsbCBzaWRhJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9yZXNwb25zZV9oZWxwJ10gPSAnVGhpcyB0ZW1wbGF0ZSBpcyBmb3IgZGlzcGxheSB0byB0aGUgdXNlciBhZnRlciB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQuIFRoaXMgdGVtcGxhdGUgZG9lcyBub3QgZWZmZWN0IGVtYWlscyBnZW5lcmF0ZWQgb3Igb3RoZXIgZm9ybSBkaXNwb3NpdGlvbnMgLS0geW91IHNldCB0aG9zZSB0ZW1wbGF0ZXMgKHdoZXJlIGFwcHJvcHJpYXRlKSBpbiB0aGUgJnF1b3Q7YWR2YW5jZWQmcXVvdDsgdGFiIGZvciB0aG9zZSBkaXNwb3NpdGlvbiBmaWVsZHMuJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX3BhZ2UnXSA9ICdEZXN0aW5hdGlvbnNzaWRhJzsKJGxhbmdbJ3RpdGxlX3JlcXVpcmVfZmllbGRuYW1lcyddID0gJ0tyJmF1bWw7dmVyIGYmYXVtbDtsdG5hbW4nOwokbGFuZ1sndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzX2xvbmcnXSA9ICdLciZhdW1sO3YgYXR0IGYmYXVtbDtsdCBoYXIgZXR0IG5hbW4/JzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWVsZG5hbWVzJ10gPSAnS3ImYXVtbDt2IHVuaWthIGYmYXVtbDtsdG5hbW4nOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXNfbG9uZyddID0gJ0tyJmF1bWw7diBhdHQgZiZhdW1sO2x0IGhhciB1bmlrYSBuYW1uPyc7CiRsYW5nWyd0aXRsZV9yZW9yZGVyX2Zvcm0nXSA9ICdPbWdydXBwZXJhIGYmYXVtbDtsdCc7CiRsYW5nWyd0aXRsZV9sb2FkX3RlbXBsYXRlJ10gPSAnTGFkZGEgbWFsbCc7CiRsYW5nWyd0aXRsZV9hZGRfYnV0dG9uX3RleHQnXSA9ICdMJmF1bWw7dHQnOwokbGFuZ1sndGl0bGVfZGVsX2J1dHRvbl90ZXh0J10gPSAnUmFkZXJhIGtuYXBwdGV4dCc7CiRsYW5nWyd0aXRsZV9maWVsZF9oZWxwdGV4dCddID0gJ0hqJmF1bWw7bHAtdGV4dCBhdHQgdmlzYXMgbWVkIGRldCBoJmF1bWw7ciBmJmF1bWw7bHRldCc7CiRsYW5nWyd0aXRsZV9zdHJpbmdfb3JfbnVtYmVyX2V2YWwnXSA9ICdJbnRlcnByZXQgdmFyaWFibGVzIGFzIGJlaW5nIG51bWJlcnMgb3Igc3RyaW5ncyc7CiRsYW5nWyd0aXRsZV9vcmRlciddID0gJ0ludGVycHJldGF0aW9uIE9yZGVyJzsKJGxhbmdbJ3RpdGxlX29yZGVyX2hlbHAnXSA9ICdJZiBtb3JlIHRoYW4gb25lIENvbXB1dGVkIEZpZWxkIGV4aXN0cywgdGhleSB3aWxsIGJlIGNvbXB1dGVkIGZyb20gbG93ZXN0IG9yZGVyIG51bWJlciB0byBoaWdoZXN0IG9yZGVyIG51bWJlcic7CiRsYW5nWyd0aXRsZV9jb21wdXRlX3ZhbHVlJ10gPSAnVmFsdWUgdG8gY29tcHV0ZSc7CiRsYW5nWyd0aXRsZV9zdHJpbmcnXSA9ICdTdHImYXVtbDtuZyc7CiRsYW5nWyd0aXRsZV9udW1lcmljJ10gPSAnTnVtZXJpc2snOwokbGFuZ1sndGl0bGVfaW5saW5lX2Zvcm0nXSA9ICdEaXNwbGF5IGZvcm0gaW5saW5lPyc7CiRsYW5nWyd0aXRsZV9pbmxpbmVfZm9ybV9oZWxwJ10gPSAnSW5saW5lIG1lYW5zIGFueSBmb3JtIGZvbGxvd3VwIHJlcGxhY2VzIHRoZSB7Y21zX21vZHVsZX0gdGFnLCBub24taW5saW5lIHJlcGxhY2VzIHRoZSB7Y29udGVudH0gdGFnLic7CiRsYW5nWyd0aXRsZV9maWVsZF9kZWZhdWx0X3ZhbHVlJ10gPSAnU3RhbmRhcmR2JmF1bWw7cmRlIGYmb3VtbDtyIGYmYXVtbDtsdCc7CiRsYW5nWyd0aXRsZV9jbGVhcl9kZWZhdWx0J10gPSAnQ2xlYXIgZGVmYXVsdCBvbiBjbGljaz8nOwokbGFuZ1sndGl0bGVfY2xlYXJfZGVmYXVsdF9oZWxwJ10gPSAnQ2hlY2sgdGhpcyB0byBjbGVhciB0aGUgZGVmYXVsdCB2YWx1ZSB3aGVuIHRoZSB1c2VyIGNsaWNrcyB0aGlzIGZpZWxkLiBTaW5jZSB0aGlzIHVzZXMgYSBqYXZhc2NyaXB0IHN0cmluZyBjb21wYXJlLCBpdCB3aWxsIGZhaWwgaWYgeW91IHB1dCBzaW5nbGUgcXVvdGVzIGluIHlvdXIgZGVmYXVsdCB0ZXh0LiBPdGhlciB1bi1qYXZhc2NyaXB0LWZyaWVuZGx5IGNoYXJhY3RlcnMgbWF5IGFsc28gY2F1c2UgaXQgdG8gZmFpbC4nOwokbGFuZ1sndGl0bGVfcmVtb3ZlX2ZpbGVfZnJvbV9zZXJ2ZXInXSA9ICdEZWxldGUgdXBsb2FkZWQgZmlsZSBmcm9tIHNlcnZlciBhZnRlciBwcm9jZXNzaW5nIChlbWFpbCBkaXNwb3NpdGlvbnMpJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2phdmFzY3JpcHQnXSA9ICdKYXZhc2NyaXB0IGYmb3VtbDtyIGYmYXVtbDtsdCc7CiRsYW5nWyd0aXRsZV9maWVsZF9qYXZhc2NyaXB0X2xvbmcnXSA9ICdNYWtlIHRoaXMgdGhlIGNvbXBsZXRlIEphdmFzY3JpcHQgY2FsbCwgaW5jbHVkaW5nIHRoZSBldmVudCB5b3Ugd2FudCB0byB0cmFwLCBlLmcuLCBvbmNsaWNrPSZxdW90O3lvdXJmbigpJnF1b3Q7JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9qYXZhc2NyaXB0J10gPSAnRm9ybSBTdWJtaXNzaW9uIEphdmFzY3JpcHQnOwokbGFuZ1sndGl0bGVfc3VibWl0X2phdmFzY3JpcHRfbG9uZyddID0gJ01ha2UgdGhpcyB0aGUgY29tcGxldGUgSmF2YXNjcmlwdCBjYWxsLCBpbmNsdWRpbmcgdGhlIGV2ZW50IHlvdSB3YW50IHRvIHRyYXAsIGUuZy4sIG9uY2xpY2s9JnF1b3Q7eW91cmZuKCkmcXVvdDsuPGJyIC8+VGhpcyB3aWxsIHByb2JhYmx5IG5vdCB3b3JrIHdlbGwgaWYgeW91IHVzZSB0aGUgJnF1b3Q7c2FmZXR5IHNjcmlwdCZxdW90OyBvcHRpb24gYWJvdmUuJzsKJGxhbmdbJ2VtYWlsX2Zyb21fYWRkcl9oZWxwJ10gPSAnViZhdW1sO2xqIGludGUgYmFyYSBlbiBzbHVtcGFydGFkIGFkcmVzcyBoJmF1bWw7ciAtLSBtJmFyaW5nO25nYSBJU1BzIGtvbW1lciA8YnIgLz4gaW50ZSBhdHQgbGV2ZXJlcmEgbWFpbGV0IG9tIGR1IGFudiZhdW1sO25kZXIgZW4gYW5uYW4gZG9tJmF1bWw7biAmYXVtbDtuIGRpdHQgdmVya2xpZ2EgPGJyIC8+IGhvc3QgKGQudi5zLiwgYW52JmF1bWw7bmQgbiZhcmluZztnb3Qgc29tIG5hbW5AJXMpJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9hZHZhbmNlZCddID0gJ0JlaCZvdW1sO3ZlciBkdSBmbGVyIGYmYXVtbDtsdHR5cGVyPyAnOwokbGFuZ1sndGl0bGVfc3dpdGNoX2Jhc2ljJ10gPSAnRiZvdW1sO3IgbSZhcmluZztuZ2EgZiZvdW1sO3J2aXJyYW5kZSBmJmF1bWw7bHR0eXBlcj8nOwokbGFuZ1sndGl0bGVfc3dpdGNoX2FkdmFuY2VkX2xpbmsnXSA9ICdTa2lmdGEgdGlsbCBhdmFuY2VyYXQgbCZhdW1sO2dlJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9iYXNpY19saW5rJ10gPSAnU2tpZnRhIHRpbGwgYXZhbmNlcmF0IGwmYXVtbDtnZSc7CiRsYW5nWyd0aXRsZV9maWxlX3Jvb3QnXSA9ICdGb2xkZXIgZiZvdW1sO3IgYXR0IHNwYXJhIGZpbGVyIGknOwokbGFuZ1sndGl0bGVfZmlsZV9yb290X2hlbHAnXSA9ICdUaGlzIG5lZWRzIHRvIGJlIGEgZGlyZWN0b3J5IHRoYXQgeW91ciB3ZWIgc2VydmVyIGhhcyBwZXJtaXNzaW9ucyB0byB3cml0ZSBpbi48YnIgLz5DaG1vZCBpdCA3NzcgaWYgeW91IGhhdmUgcHJvYmxlbXMvZG91YnRzLjxiciAvPkFsc28sIGNoZWNrIHRvIHNlZSB0aGF0IHlvdSBkbyBub3QgaGF2ZSBQSFAgZGlyZWN0b3J5IHJlc3RyaWN0aW9ucy4nOwokbGFuZ1sndGl0bGVfbmV3bGluZV9yZXBsYWNlbWVudCddID0gJ05ld2xpbmUvQ2FycmlhZ2UgUmV0dXJuIHJlcGxhY2VtZW50IGNoYXJhY3Rlcic7CiRsYW5nWyd0aXRsZV9uZXdsaW5lX3JlcGxhY2VtZW50X2hlbHAnXSA9ICdMZWF2ZSBibGFuayB0byBhbGxvdyBuZXdsaW5lcyBhbmQgY2FycmlhZ2UgcmV0dXJucyBpbiBvdXRwdXQnOwokbGFuZ1sndGl0bGVfc2VuZF91c2VyY29weSddID0gJ1NlbmQgVXNlciBhIENvcHkgb2YgU3VibWlzc2lvbj8nOwokbGFuZ1sndGl0bGVfc2VuZF91c2VyY29weV9sYWJlbCddID0gJ0xhYmVsIGZvciBDaGVja2JveCAoaWYgdXNlciBjaG9pY2UpJzsKJGxhbmdbJ3RpdGxlX3NlbmRfbWVfYV9jb3B5J10gPSAnU2tpY2thIG1pZyBlbiBrb3BpYSBhdiBmb3JtdWwmYXVtbDtyZXQnOwokbGFuZ1sndGl0bGVfYWxsb3dfc3ViamVjdF9vdmVycmlkZSddID0gJ0FsbG93IHN1YmplY3QgdG8gYmUgb3ZlcnJpZGRlbj8nOwokbGFuZ1sndGl0bGVfYWxsb3dfc3ViamVjdF9vdmVycmlkZV9sb25nJ10gPSAnQWxsb3cgJiMwMzk7RW1haWwgJnF1b3Q7U3ViamVjdCZxdW90OyBGaWVsZHMmIzAzOTsgdG8gb3ZlcnJpZGUgdGhlIHN1YmplY3Qgc3BlY2lmaWVkIGluIHRoZSBwdWxsZG93bi4nOwokbGFuZ1sndGl0bGVfZGlzcGxheV9sZW5ndGgnXSA9ICdEaXNwbGF5IGxlbmd0aCc7CiRsYW5nWyd0aXRsZV9taW5pbXVtX2xlbmd0aCddID0gJ01pbmltdW0gcmVzcG9uc2UgbGVuZ3RoJzsKJGxhbmdbJ3RpdGxlX2hpZGUnXSA9ICdIaWRlIGlucHV0JzsKJGxhbmdbJ3RpdGxlX2hpZGVfaGVscCddID0gJ1Nob3cgc3ltYm9scyByYXRoZXIgcGxhaW4gdGV4dCB3aGVuIHVzZXIgZW50ZXJzIHBhc3N3b3JkPyc7CiRsYW5nWydwYXNzd29yZF9kb2VzX25vdF9tYXRjaCddID0gJ0wmb3VtbDtzZW5vcmQgbWF0Y2hhciBpbnRlICVzJzsKJGxhbmdbJ2JhY2tfdG9wJ10gPSAnQmFjayB0byBGb3JtQnVpbGRlciBNYWluIFBhZ2UnOwokbGFuZ1sndGl0bGVfaGVhZGVyc190b19tb2RpZnknXSA9ICdXaGljaCBlbWFpbCBoZWFkZXJzIHNob3VsZCB0aGlzIGlucHV0IHBvcHVsYXRlPyc7CiRsYW5nWyd0aXRsZV9ibGFua19pbnZhbGlkJ10gPSAnRG8gbm90IGFjY2VwdCBibGFuayBzcGFjZSBhcyB2YWxpZCByZXNwb25zZSc7CiRsYW5nWyd0aXRsZV9ibGFua19pbnZhbGlkX2xvbmcnXSA9ICdJZiBhIGZpZWxkIGlzIHJlcXVpcmVkLCBjaGVja2luZyB0aGlzIHdpbGwgcmVxdWlyZSB0aGF0IHBlb3BsZSBwdXQgaW4gc29tZSBhbHBoYW51bWVyaWMgY2hhcmFjdGVycywgbm90IGp1c3Qgc3BhY2VzJzsKJGxhbmdbJ2Vycm9yX0NvbXBhbnlEaXJlY3RvcnlfbW9kdWxlX25vdF9hdmFpbGFibGUnXSA9ICdDb21wYW55IERpcmVjdG9yeSBtb2R1bGUgaXMgbm90IGF2YWlsYWJsZSEnOwokbGFuZ1snb3B0aW9uX25ldmVyJ10gPSAnQWxkcmlnJzsKJGxhbmdbJ29wdGlvbl91c2VyX2Nob2ljZSddID0gJ0dlIGJlcyZvdW1sO2thcmVuIGV0dCB2YWwgKGNoZWNrYm94KSc7CiRsYW5nWydvcHRpb25fYWx3YXlzJ10gPSAnQWxsdGlkJzsKJGxhbmdbJ29wdGlvbl9mcm9tJ10gPSAnJnF1b3Q7RnJvbSZxdW90OyBlbWFpbCBhZGRyZXNzJzsKJGxhbmdbJ29wdGlvbl9yZXBseSddID0gJyZxdW90O1JlcGx5LVRvJnF1b3Q7IGVtYWlsIGFkZHJlc3MnOwokbGFuZ1snb3B0aW9uX2JvdGgnXSA9ICdCb3RoICZxdW90O0Zyb20mcXVvdDsgYW5kICZxdW90O1JlcGx5LVRvJnF1b3Q7IGVtYWlsIGFkZHJlc3Nlcyc7CiRsYW5nWydvcHRpb25fZHJvcGRvd24nXSA9ICdEcm9wZG93bic7CiRsYW5nWydvcHRpb25fc2VsZWN0bGlzdF9zaW5nbGUnXSA9ICdTZWxlY3QgTGlzdCAoc2luZ2xlKSc7CiRsYW5nWydvcHRpb25fc2VsZWN0bGlzdF9tdWx0aXBsZSddID0gJ1NlbGVjdCBMaXN0IChtdWx0aXBsZSknOwokbGFuZ1snb3B0aW9uX3JhZGlvZ3JvdXAnXSA9ICdSYWRpbyBHcm91cCc7CiRsYW5nWyd0aXRsZV9jb21wYW55X2ZpZWxkX25vdGUnXSA9ICdOb3RlOiBPdXRwdXQgd2lsbCBiZSBpbiB0aGUgZm9ybSBvZjxici8+JnF1b3Q7Y29tcGFueSBuYW1lJnF1b3Q7PT4mcXVvdDt2YWx1ZSZxdW90Oyc7CiRsYW5nWyd0aXRsZV9waWNrX2NhdGVnb3JpZXMnXSA9ICdQaWNrIGEgY2F0ZWdvcnkgKG11bHRpcGxlKSc7CiRsYW5nWyd0aXRsZV9waWNrX2ZpZWxkZGVmJ10gPSAnUHVsbCBhIGZpZWxkIERlZmluaXRpb24mIzAzOTtzIHZhbHVlIChzaW5nbGUpIDxlbT5vcHRpb25hbDwvZW0+JzsKJGxhbmdbJ3RpdGxlX2Nob29zZV91c2VyX2lucHV0J10gPSAnQ2hvb3NlIFVzZXIgaW5wdXQnOwokbGFuZ1sndGl0bGVfc2VlX2Fsc29fdWR0J10gPSAnKEFsc28gdGFrZSBhIGxvb2sgYXQgdGhlIEZvcm0gU3VibWlzc2lvbiB0YWIgaWYgeW91IHdhbnQgdG8gc2V0IGEgVURUIGZvciBmb3JtIHZhbGlkYXRpb24pJzsKJGxhbmdbJ3RpdGxlX3llYXJfZW5kX21lc3NhZ2UnXSA9ICdFbmQgeWVhcic7CiRsYW5nWydlcnJvcl91c2VydGFnX2Rpc3Bvc2l0aW9uJ10gPSAnVXNlciBkZWZpbmVkIHRhZyByZXR1cm5lZCBhbiBlcnJvcic7CiRsYW5nWydlcnJvcl91c2VydGFnJ10gPSAnVXNlciBkZWZpbmVkIHRhZyAlcyByZXR1cm5lZCBhbiBlcnJvci4nOwokbGFuZ1snZXJyb3JfY2F0YWxvZ2VyX21vZHVsZV9ub3RfYXZhaWxhYmxlJ10gPSAnPHN0cm9uZz5DYXRhbG9nZXIgbW9kdWxlbiBkb2VzIG5vdCBzZWVtIHRvIGJlIGluc3RhbGxlZC9hY3RpdmUuPC9zdHJvbmc+JzsKJGxhbmdbJ3dhcm5pbmcnXSA9ICdWQVJOSU5HISc7CiRsYW5nWydkZWZhdWx0X3RlbXBsYXRlJ10gPSAnRiZvdW1sO3J2YWxkIG1hbGwnOwokbGFuZ1sndGFibGVfbGVmdF90ZW1wbGF0ZSddID0gJ1RhYmVsbG1hbGwsIHRpdGxhciB0aWxsIHYmYXVtbDtuc3Rlcic7CiRsYW5nWyd0YWJsZV90b3BfdGVtcGxhdGUnXSA9ICdUYWJlbGxtYWxsLCB0aXRsYXIgJm91bWw7dmVyIGYmYXVtbDtsdCc7CiRsYW5nWydmb3JtX3RlbXBsYXRlX25hbWUnXSA9ICdNYWxsIGZyJmFyaW5nO24gJXMnOwokbGFuZ1sndGVtcGxhdGVfYXJlX3lvdV9zdXJlJ10gPSAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIG92ZXJ3cml0ZSB5b3VyIHRlbXBsYXRlIHdpdGggdGhlIHNlbGVjdGVkIHRlbXBsYXRlPyAoRXZlbiBpZiB5b3Ugc2F5IE9LLCB5b3Ugd2lsbCBzdGlsbCBuZWVkIHRvIHNhdmUgdGhlIGNoYW5nZSknOwokbGFuZ1sndGl0bGVfYmFkX2Z1bmN0aW9uJ10gPSAnRXJyb3Igd2hlbiBjb21wdXRpbmcgJnF1b3Q7JXMmcXVvdDsuJzsKJGxhbmdbJ25vX3JlZmVycmVyX2luZm8nXSA9ICdObyBIVFRQX1JFRkVSRVIgaW5mbyBhdmFpbGFibGUgKHByb2JhYmx5IGR1ZSB0byB1c2Ugb2YgVXNlciBFbWFpbCBWYWxpZGF0aW9uKSc7CiRsYW5nWyd2YWxpZGF0aW9uX3BhcmFtX2Vycm9yJ10gPSAnVmFsaWRhdGlvbiBQYXJhbWV0ZXIgRXJyb3IuIFBsZWFzZSBtYWtlIHN1cmUgeW91IGNvcHkgdGhlIFVSTCBmcm9tIHlvdXIgZW1haWwgY29ycmVjdGx5ISc7CiRsYW5nWyd2YWxpZGF0aW9uX3Jlc3BvbnNlX2Vycm9yJ10gPSAnVmFsaWRhdGlvbiBSZXBzb25zZSBFcnJvci4gUGxlYXNlIG1ha2Ugc3VyZSB5b3UgY29weSB0aGUgVVJMIGZyb20geW91ciBlbWFpbCBjb3JyZWN0bHkhJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbm9fZmllbGRfZXJyb3InXSA9ICdWYWxpZGF0aW9uIFJlcHNvbnNlIEVycm9yLiBObyBlbWFpbCB2YWxpZGF0aW9uIGZpZWxkIGluIHRoaXMgZm9ybSEnOwokbGFuZ1sndXBncmFkZTAzdG8wNCddID0gJ0Zvcm0gVGVtcGxhdGUgd2FzIHVwZGF0ZWQgYXV0b21hdGljYWxseSBhcyBwYXJ0IG9mIHRoZSB2ZXJzaW9uIDAuMyB0byB2ZXJzaW9uIDAuNCB1cGdyYWRlLiBZb3UgbWF5IG5lZWQgdG8gbWFrZSBzb21lIGZpeGVzLiBJZiB5b3UmIzAzOTtyZSB1c2luZyB0aGUgZGVmYXVsdCBmb3JtLCBzaW1wbHkgcmVwbGFjZSB0aGlzIHRlbXBsYXRlIHdpdGggJnF1b3Q7ZGVmYXVsdCZxdW90OyB1c2luZyB0aGUgcHVsbGRvd24gYWJvdmUuJzsKJGxhbmdbJ2FkbWluZGVzYyddID0gJ0FkZCwgZWRpdCBhbmQgbWFuYWdlIGludGVyYWN0aXZlIEZvcm1zJzsKJGxhbmdbJ29wZXJhdG9yc19oZWxwJ10gPSAnSWYgeW91IHVzZSBTdHJpbmcgZXZhbHVhdGlvbiwgdGhlIG9ubHkgb3BlcmF0aW9uIGF2YWlsYWJsZSBpcyBjb25jYXRlbmF0aW9uICgrKSwgd2hpbGUgaWYgeW91IHVzZSBOdW1iZXIgZXZhbHVhdGlvbiB5b3UgaGF2ZSBiYXNpYywgdmVyeSBzaW1wbGUgbWF0aCAoLCArLCAtLCAqLCAvLCApLic7CiRsYW5nWydoZWxwX21vZHVsZV9pbnRlcmZhY2UnXSA9ICdVc2luZyBNb2R1bGUgSW50ZXJmYWNlJzsKJGxhbmdbJ2hlbHBfbW9kdWxlX2ludGVyZmFjZV9sb25nJ10gPSAnPGI+VGhpcyBmaWVsZCBpcyB1c2VkIGFzIGEgZ2F0ZXdheSB0byBvdGhlciBtb2R1bGVzITwvYj4NClVzZSBpdCBieSBjcmVhdGluZyB5b3VyIGZvcm0gZWxlbWVudHMgaW4gdGhlIHRlbXBsYXRlcyBvZiB0aGUgb3RoZXIgbW9kdWxlKHMpIHlvdSB3aXNoIHRvIGluY29ycG9yYXRlLCBhbmQgdXNpbmcgdGhlIDxzdHJvbmc+eyRGQmlkfTwvc3Ryb25nPiB0byB0aWUgaXQgYmFjayB0byBGb3JtQnVpbGRlci4gRm9yIGV4YW1wbGUsIHRvIGluY2x1ZGUgZm9ybSBvcHRpb25zIGJhc2VkIG9uIHRoZSBQcm9kdWN0cyBtb2R1bGUsIGNyZWF0ZSB0aGUgZm9sbG93aW5nIHRlbXBsYXRlIGluIFByb2R1Y3RzOjxici8+DQo8cHJlPg0Ke2ZvcmVhY2ggZnJvbT0kaXRlbXMgaXRlbT1lbnRyeX0NCgl7YXNzaWduIHZhcj1NRGF0YSB2YWx1ZT0mIzAzOTsmIzAzOTt9DQoJe2Fzc2lnbiB2YXI9Q2QgdmFsdWU9JiMwMzk7JiMwMzk7fQ0KCQl7Zm9yZWFjaCBmcm9tPSRGQnZhbHVlIGl0ZW09TURhdGF9DQoJCQl7YXNzaWduIHZhcj1NRGF0YSB2YWx1ZT0mIzAzOTs6OiYjMDM5O3xleHBsb2RlOiRNRGF0YX0NCgkJCXtpZiAkTURhdGFbMV09PSRlbnRyeS0+aWR9DQoJCQkJe2Fzc2lnbiB2YXI9Q2QgdmFsdWU9JiMwMzk7IGNoZWNrZWQ9JnF1b3Q7Y2hlY2tlZCZxdW90OyYjMDM5O30NCgkJCXsvaWZ9DQoJCXsvZm9yZWFjaH0NCgk8ZGl2IGNsYXNzPSZxdW90O1Byb2R1Y3REaXJlY3RvcnlJdGVtJnF1b3Q7Pg0KCQk8aW5wdXQgdHlwZT0mcXVvdDtjaGVja2JveCZxdW90OyB2YWx1ZT0mcXVvdDt7JGVudHJ5LT5wcmljZX06OnskZW50cnktPmlkfSZxdW90OyBuYW1lPSZxdW90O3skRkJpZH1bXSZxdW90OyB7JENkfSAvPnskZW50cnktPnByb2R1Y3RfbmFtZX0gKHskZW50cnktPndlaWdodH17JHdlaWdodF91bml0c30pICZwb3VuZDt7JGVudHJ5LT5wcmljZX0gICAgDQoJPC9kaXY+DQp7L2ZvcmVhY2h9DQo8L3ByZT4NCjxici8+DQp3aGVyZSBpbiB0aGUgaW5wdXQgYmVsb3cgeW91IHB1dCBzb21ldGhpbmcgbGlrZSA8c3Ryb25nPntQcm9kdWN0cyBjYXRlZ29yeT0mcXVvdDtjYXQmcXVvdDsgc3VtbWFyeXRlbXBsYXRlPSZxdW90O1lvdXJfRkJfdGVtcGxhdGUmcXVvdDt9PC9zdHJvbmc+JzsKJGxhbmdbJ3RpdGxlX2FkZF90YWcnXSA9ICdMJmF1bWw7Z2cgdGlsbCBkaW4gdGFnJzsKJGxhbmdbJ2RhdGVfamFudWFyeSddID0gJ0phbnVhcmknOwokbGFuZ1snZGF0ZV9mZWJydWFyeSddID0gJ0ZlYnJ1YXJpJzsKJGxhbmdbJ2RhdGVfbWFyY2gnXSA9ICdNYXJzJzsKJGxhbmdbJ2RhdGVfYXByaWwnXSA9ICdBcHJpbCc7CiRsYW5nWydkYXRlX21heSddID0gJ01haic7CiRsYW5nWydkYXRlX2p1bmUnXSA9ICdKdW5pJzsKJGxhbmdbJ2RhdGVfanVseSddID0gJ0p1bGknOwokbGFuZ1snZGF0ZV9hdWd1c3QnXSA9ICdBdWd1c3RpJzsKJGxhbmdbJ2RhdGVfc2VwdGVtYmVyJ10gPSAnU2VwdGVtYmVyJzsKJGxhbmdbJ2RhdGVfb2N0b2JlciddID0gJ09rdG9iZXInOwokbGFuZ1snZGF0ZV9ub3ZlbWJlciddID0gJ05vdmVtYmVyJzsKJGxhbmdbJ2RhdGVfZGVjZW1iZXInXSA9ICdEZWNlbWJlcic7CiRsYW5nWydzdWJtaXNzaW9uX2Vycm9yJ10gPSAnTGVkc2VuISBEZXQgdXBwc3RvZCBldHQgZmVsIGQmYXJpbmc7IGRpdHQgZm9ybXVsJmF1bWw7ciBoYW50ZXJhZGVzJzsKJGxhbmdbJ3N1Ym1pdF9lcnJvciddID0gJ0Zvcm1CdWlsZGVyIHN1Ym1pdCBlcnJvcjogJXMnOwokbGFuZ1sndXBsb2Fkc19lcnJvciddID0gJ0Vycm9yIGNvbW1pdHRpbmcgZmlsZSB0byB0aGUgdXBsb2FkcyBtb2R1bGU6ICVzJzsKJGxhbmdbJ25vdXBsb2Fkc19lcnJvciddID0gJ0t1bmRlIGludGUgaGl0dGEgbW9kdWxlbiBVcGxvYWRzJzsKJGxhbmdbJ3VwbG9hZF9hdHRhY2hfZXJyb3InXSA9ICdVcHBsYWRkbmluZ3MvQmlmb2duaW5nc2ZlbCBmJm91bWw7ciBmaWwgJXMgKHRtcF9uYW1lOiAlcywgYXYgdHlwZW4gJXMpJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3JfZmlsZV9sb2NrJ10gPSAnRXR0IGZlbCBoYXIgdXBwc3QmYXJpbmc7dHQhIEt1bmRlIGludGUgb3JkbmEgbCZhcmluZztzbmluZyBwJmFyaW5nOyBmaWxlbi4nOwokbGFuZ1sndW5jaGVja2VkX2J5X2RlZmF1bHQnXSA9ICdTdGFuZGFyZDogb21hcmtlcmFkJzsKJGxhbmdbJ2NoZWNrZWRfYnlfZGVmYXVsdCddID0gJ1N0YW5kYXJkOiBtYXJrZXJhZCc7CiRsYW5nWydlbWFpbF9kZWZhdWx0X3RlbXBsYXRlJ10gPSAnRm9ybUJ1aWxkZXIgU3VibWlzc2lvbic7CiRsYW5nWydlbWFpbF90ZW1wbGF0ZV9ub3Rfc2V0J10gPSAnPGJyLz5JbmdlbiBlcG9zdG1hbGwgJmF1bWw7ciB0aWxsc2F0dCEnOwokbGFuZ1snbWlzc2luZ19jbXNfbWFpbGVyJ10gPSAnRm9ybUJ1aWxkZXI6IENhbm5vdCBmaW5kIHJlcXVpcmVkIG1vZHVsZSBDTVNNYWlsZXIhJzsKJGxhbmdbJ3VzZXJfYXBwcm92ZWRfc3VibWlzc2lvbiddID0gJ1VzZXIgYXBwcm92ZWQgc3VibWlzc2lvbiAlcyBmcm9tICVzJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXSA9ICdFdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddID0gJ0V2ZW50IHRyaWdnZXJlZCBpZiB0aGVyZSBpcyBhbiBlcnJvciB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXSA9ICdFdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgZGlzcGxheWVkJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXSA9ICc8cD5FdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkLjwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBUaGUgZm9ybSBuYW1lIChzdHJpbmcpPC9saT4NCjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gVGhlIGludGVybmFsIGZvcm0gaWQgKGludCk8L2xpPg0KPGxpPjxlbT52YWx1ZV88bmFtZT48L2VtPiAtIFN1cHBseSBhIGRlZmF1bHQgdmFsdWUgdG8gYSBmaWVsZCB3aXRoIHRoZSBzcGVjaWZpZWQgbmFtZS48L2xpPg0KPC91bD4gJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddID0gJzxwPkV2ZW50IHRyaWdnZXJlZCBpZiB0aGVyZSBpcyBhbiBlcnJvciB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQ8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gVGhlIGZvcm0gbmFtZSAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4NCjxsaT48ZW0+ZXJyb3I8L2VtPiAtIEEgbGlzdCBvZiBhbGwga25vd24gZXJyb3JzIChzdHJpbmcpPC9saT4NCjwvdWw+ICc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtRGlzcGxheSddID0gJzxwPkV2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBkaXNwbGF5ZWQ8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gVGhlIGZvcm0gbmFtZSAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4NCjwvdWw+ICc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfcmVzcG9uc2VfaWQnXSA9ICdSZXNwb25zSUQuIEFudiZhdW1sO25kcyBhdiBGb3JtQnJvd3Nlcic7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfcGFzc2VkX2Zyb21fdGFnJ10gPSAnRiZvdW1sO3J2YWxkYSBmJmF1bWw7bHR2JmF1bWw7cmRlbjsgc2UgaGomYXVtbDtscGVuIGYmb3VtbDtyIGRlbiBoJmF1bWw7ciBtb2R1bGVuJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19maWVsZF9pZCddID0gJ0YmYXVtbDtsdElEIGYmb3VtbDtyIGludGVybiBoYW50ZXJpbmcnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2Zvcm1fbmFtZSddID0gJ0Zvcm11bCZhdW1sO3JzbmFtbic7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZm9ybV9pZCddID0gJ0Zvcm11bCZhdW1sO3JzSUQgZiZvdW1sO3IgaW50ZXJuIGhhbnRlcmluZyc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZ2VuZXJhbCddID0gJ0FsbG0mYXVtbDtuYSBwYXJhbWV0cmFyIGYmb3VtbDtyIGludGVybiBoYW50ZXJpbmcnOwokbGFuZ1sndGVtcGxhdGVfdmFyaWFibGVfaGVscCddID0gJzxoMz5Gb3JtIFRlbXBsYXRlIFZhcmlhYmxlczwvaDM+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+RHVubm8gd2h5IHlvdSYjMDM5O2Qgd2FudCBzb21lIG9mIHRob3NlLCBidXQgdGhlcmUgeW91IGdvLi4uPC9wPg0KJzsKJGxhbmdbJ3Bvc3RfaW5zdGFsbCddID0gJzxwPk1ha2Ugc3VyZSB0byBzZXQgdGhlICZxdW90O01vZGlmeSBGb3JtcyZxdW90OyBwZXJtaXNzaW9ucw0Kb24gdXNlcnMgd2hvIHdpbGwgYmUgYWRtaW5pc3RlcmluZyBmZWVkYmFjayBmb3Jtcy4gQWxzbywgaWYgeW91JiMwMzk7bGwgYmUgZW1haWxpbmcgZm9ybQ0KcmVzdWx0cywgYmUgc3VyZSB0byB1cGRhdGUgdGhlIENvbmZpZ3VyYXRpb24gYXBwcm9wcmlhdGVseS48L3A+DQo8cD5QbGVhc2UgYmUgYXdhcmUgdGhhdCBhIGZlZWRiYWNrIGZvcm0gc2hvdWxkIG5vdCBiZSBhY3RpdmUgKGUuZy4sIHVzYWJsZSBieSB0aGUgcHVibGljKSB3aGlsZQ0KeW91IGFyZSBzdGlsbCBlZGl0aW5nIHRoZSBmb3JtLiBZb3Ugc2hvdWxkIGNyZWF0ZSB0aGUgZm9ybSwgYW5kIHBsYWNlIHRoZSB0YWcgaW50byBhbiBhY3RpdmUNCmNvbnRlbnQgcGFnZSBvbmx5IHdoZW4geW91IGhhdmUgZmluaXNoZWQgZWRpdGluZy4gT3RoZXJ3aXNlLCBlcnJvbmVvdXMgcmVzdWx0cyBjb3VsZCBiZSByZXR1cm5lZC48L3A+DQo8cD5BZGRpdGlvbmFsbHksIHRoaXMgdmVyc2lvbiBkb2VzIG5vdCBzdXBwb3J0IHBhcmFsbGVsIGVkaXRpbmcgb2YgZm9ybXMuIFBsZWFzZSB0YWtlIGNhcmUgdGhhdA0Kb25seSBvbmUgYWRtaW4gaXMgZWRpdGluZyBhIGdpdmVuIGZvcm0gYXQgYSBnaXZlbiB0aW1lLjwvcD4nOwokbGFuZ1snaGVscCddID0gJzxoMz5XaGF0IERvZXMgVGhpcyBEbz88L2gzPg0KPHA+VGhlIEZvcm0gQnVpbGRlciBNb2R1bGUgYWxsb3dzIHlvdSB0byBjcmVhdGUgZmVlZGJhY2sgZm9ybXMgKGluIGZhY3QsIGl0JiMwMzk7cyBhIHJlcGxhY2VtZW50IG9mIHRoZSBvcmlnaW5hbCBGZWVkYmFjayBGb3JtIG1vZHVsZSksIHdpdGggdGhlIGFkZGVkIHBvd2VyIG9mIGRhdGFiYXNlIHN0b3JhZ2UuIFdpdGggaXRzIGNvbXBhbmlvbiBtb2R1bGUgRm9ybSBCcm93c2VyLCB5b3UgY2FuIHVzZSBpdCB0byBjcmVhdGUgc2ltcGxlIGRhdGFiYXNlIGFwcGxpY2F0aW9ucy48L3A+DQo8cD5UaGUgZm9ybXMgY3JlYXRlZCB1c2luZyB0aGUgRm9ybSBCdWlsZGVyIG1heSBiZSBpbnNlcnRlZA0KaW50byB0ZW1wbGF0ZXMgYW5kL29yIGNvbnRlbnQgcGFnZXMuIEZvcm1zIG1heSBjb250YWluIG1hbnkga2luZHMgb2YgaW5wdXRzLCBhbmQgbWF5IGhhdmUNCnZhbGlkYXRpb24gYXBwbGllZCB0byB0aGVzZSBpbnB1dHMuIFRoZSByZXN1bHRzIG9mIHRoZXNlIGZvcm1zIG1heSBiZSBoYW5kbGVkIGluIGEgdmFyaWV0eSBvZiB3YXlzLjwvcD4NCg0KPGgzPkhvdyBEbyBJIFVzZSBpdD88L2gzPg0KPFA+SW5zdGFsbCBpdCwgYW5kIHBva2UgYXJvdW5kIHRoZSBtZW51cy4gUGxheSB3aXRoIGl0LiBUcnkgY3JlYXRpbmcgZm9ybXMsIGFuZCBhZGRpbmcgdGhlbSB0byB5b3VyIGNvbnRlbnQuDQpJZiB5b3UgZ2V0IHN0dWNrLCBjaGF0IHdpdGggbWUgb24gdGhlICNjbXMgSVJDIGNoYW5uZWwsIHBvc3QgdG8gdGhlIGZvcnVtLCBzZW5kIG1lIGVtYWlsLCBvciwgaWYgeW91JiMwMzk7cmUNCnJlYWxseSBkZXNwZXJhdGUsIHRyeSByZWFkaW5nIHRoZSBpbnN0cnVjdGlvbnMgb24gdGhlIHJlc3Qgb2YgdGhpcyBwYWdlLjwvUD4NCg0KPGgzPkhvdyBEbyBJIENyZWF0ZSBhIEZvcm08L2gzPg0KPHA+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+U3RhdGUuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBTdGF0ZXMgb2YgdGhlIFUuUy48L2xpPg0KPGxpPkNhbmFkaWFuIFByb3ZpbmNlLiBUaGlzIGlzIGEgcHVsbGRvd24gbGlzdGluZyB0aGUgQ2FuYWRpYW4gUHJvdmluY2VzIChDb250cmlidXRlZCBieSBOb2VsIE1jR3Jhbi4gVGhhbmtzISk8L2xpPg0KPGxpPkNvdW50cmllcy4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIENvdW50cmllcyBvZiB0aGUgd29ybGQgKGFzIG9mIEp1bHkgMjAwNSkuPC9saT4NCjxsaT5EYXRlIFBpY2tlci4gVGhpcyBpcyBhIHRyaXBsZSBwdWxsZG93biBhbGxvd2luZyB0aGUgdXNlciB0byBzZWxlY3QgYSBkYXRlLjwvbGk+DQo8bGk+VGltZSBQaWNrZXIuIFRoaXMgaXMgYSBzZXQgb2YgcHVsbGRvd25zIGFsbG93aW5nIHRoZSB1c2VyIHRvIHNlbGVjdCBhIHRpbWUgKHVzaW5nIDEyIG9yIDI0IGhvdXIgY2xvY2spLjwvbGk+DQo8bGk+RmlsZSBVcGxvYWQuIFRoaXMgaXMgYSBmaWxlIHVwbG9hZCBmaWVsZC48L2xpPg0KPGxpPkxpbmsgKFVzZXIgRW50ZXJlZCkuIFRoaXMgY3JlYXRlcyBhIGRvdWJsZSBpbnB1dCBmaWVsZCBmb3IgZ2V0dGluZyBhIGxpbmsgVVJMIGFuZCBsaW5rIHRpdGxlLjwvbGk+DQo8bGk+VGV4dCBGaWVsZCAoTXVsdGlwbGUpLiBUaGlzIGZpZWxkIGNyZWF0ZXMgb25lIG9yIG1vcmUgdGV4dCBpbnB1dHMgd2l0aCBhZGQgYW5kIGRlbGV0ZSBidXR0b25zLCBlZmZlY3RpdmVseSBnaXZpbmcgdGhlIGVuZCB1c2VyIGEgd2F5IG9mIGNyZWF0aW5nIHZhcmlhYmxlLWxlbmd0aCBsaXN0cy48L2xpPg0KPC91bD48L2xpPg0KDQo8bGk+RW1haWwtc3BlY2lmaWMgSW5wdXRzDQo8dWw+PGxpPkVtYWlsIEZyb20gQWRkcmVzcyBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSB0aGVpciBlbWFpbCBhZGRyZXNzLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgYWRkcmVzcyBpbiB0aGUgJnF1b3Q7RnJvbSZxdW90OyBmaWVsZC48L2xpPg0KPGxpPkVtYWlsIEZyb20gTmFtZSBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSB0aGVpciBuYW1lLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgbmFtZSBpbiB0aGUgJnF1b3Q7RnJvbSZxdW90OyBmaWVsZC48L2xpPg0KPGxpPkVtYWlsIFN1YmplY3QgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgYSBzdWJqZWN0IGZvciB0aGVpciBlbWFpbC4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIGluIHRoZSAmcXVvdDtTdWJqZWN0JnF1b3Q7IGZpZWxkLiBUaGlzIG1heSBjYXVzZSB0cm91YmxlIHdpdGggY2VydGFpbiBkaXNwb3NpdGlvbnMgdGhhdCB3YW50IHRvIGNvbnRyb2wgdGhlIEVtYWlsIFN1YmplY3QsIHNvIHVzZSBpdCB3aXRoIGNhdXRpb24uPC9saT4NCjwvdWw+PC9saT4NCg0KPGxpPkRpc3BsYXkgQ29udHJvbCBGaWVsZHM8dWw+DQo8bGk+LVBhZ2UgQnJlYWsuIFRoaXMgYWxsb3dzIHlvdSB0byBzcGxpdCB5b3VyIGZlZWRiYWNrIGZvcm0gaW50byBtdWx0aXBsZSBwYWdlcy4gRWFjaCBwYWdlIGlzDQppbmRlcGVuZGVudGx5IHZhbGlkYXRlZC4gVGhpcyBpcyBnb29kIGZvciBhcHBsaWNhdGlvbnMgbGlrZSBvbmxpbmUgc3VydmV5cy48L2xpPg0KPGxpPi1GaWVsZHNldCBTdGFydC4gQ29tYmluZWQgd2l0aCBGaWVsZHNldCBFbmQsIHRoaXMgYWxsb3dzIHlvdSB0byBncm91cCB2YXJpb3VzIGZpZWxkcyB3aXRoaW4geW91ciBmb3JtLiBVc2UgdGhpcyB0byBzdGFydCBhIGdpdmVuIGdyb3VwaW5nLjwvbGk+DQo8bGk+LUZpZWxkc2V0IEVuZC4gQ29tYmluZWQgd2l0aCBGaWVsZHNldCBTdGFydCwgdGhpcyBhbGxvd3MgeW91IHRvIGdyb3VwIHZhcmlvdXMgZmllbGRzIHdpdGhpbiB5b3VyIGZvcm0uIFVzZSB0aGlzIHRvIGVuZCBhIGdpdmVuIGdyb3VwaW5nLjwvbGk+DQo8bGk+LUhpZGRlbiBGaWVsZC4gVGhpcyBhbGxvd3MgeW91IHRvIGVtYmVkIGEgaGlkZGVuIGZpZWxkIGluIHlvdXIgZm9ybS48L2xpPg0KPGxpPi1TdGF0aWMgVGV4dC4gVGhpcyBhbGxvd3MgeW91IHRvIHB1dCB0ZXh0IG9yIGEgbGFiZWwgaW4gdGhlIG1pZGRsZSBvZiB5b3VyIGZvcm0uIFRoaXMgaXMgdXNlZnVsIGZvciBnaXZpbmcgYWRkaXRpb25hbCBoZWxwIHRleHQsIGVzcGVjaWFsbHkgaWYgeW91JiMwMzk7cmUgbm90IHVzaW5nIGEgQ3VzdG9tIFRlbXBsYXRlIHRvIHJlbmRlciB5b3VyIGZvcm0uPC9saT4NCjxsaT4tU3RhdGljIExpbmsuIFRoaXMgYWxsb3dzIHlvdSB0byBwdXQgYSBsaW5rIHRvIGEgZ2l2ZW4gcGFnZSBpbnRvIHlvdXIgZm9ybS4gT3B0aW9uYWxseSwgeW91IGNhbiBoYXZlIGl0IGF1dG9wb3B1bGF0ZSB3aXRoIHRoZSBwYWdlIHdoZXJlIHRoZSBmb3JtIGlzIGVtYmVkZGVkICh1c2VmdWwgaWYgeW91JiMwMzk7cmUgc2VuZGluZyByZXN1bHRzIHZpYSBlbWFpbCkuPC9saT4NCjxsaT4tQ29tcHV0ZWQgRmllbGQuIFRoaXMgYWxsb3dzIHlvdSB0byBlbWJlZCBhIGNvbXB1dGVkIGZpZWxkIGluIHlvdXIgZm9ybS4gSXQgaXMgbm90IHZpc2libGUgdG8gdGhlIHVzZXIgdW50aWwgYWZ0ZXIgdGhlIGZvcm0gaXMgc3VibWl0dGVkLiBJdCBhbGxvd3MgeW91IHRvIGRvIHNpbXBsZSBhcml0aG1ldGljIG9yIHN0cmluZyBjb25jYXRlbmF0aW9uLjwvbGk+DQo8bGk+LVVuaXF1ZSBJbnRlZ2VyIChTZXJpYWwpLiBUaGlzIGlzIGFuIGludGVnZXIgdGhhdCBpbmNyZWFzZXMgZXZlcnkgdGltZSBzb21lb25lIGhpdHMgeW91ciBmb3JtLiBZb3VyIHJlc3VsdHMgbWF5IG5vdCBiZSBzZXF1ZW50aWFsLCBidXQgdGhleSB3aWxsIGluY3JlYXNlIG1vbm90b25pY2FsbHkuPC9saT4NCjwvdWw+PC9saT4NCg0KPGxpPkZvcm0gSGFuZGxpbmcgSW5wdXRzIChEaXNwb3NpdGlvbnMpDQo8dWw+PGxpPipDYWxsIGEgVXNlciBEZWZpbmVkIFRhZyBXaXRoIHRoZSBGb3JtIFJlc3VsdHMuIFRoaXMgc3VibWl0cyBhbGwgdGhlIGZvcm0gcmVzdWx0cyB0byB0aGUgVXNlci1EZWZpbmVkIFRhZyB5b3Ugc3BlY2lmeS4gVGhlIFVEVCBjYW4gaGFuZGxlIHRoZSByZXN1bHRzIGhvd2V2ZXIgaXQgd2FudHMuIFZhbHVlcyBhcmUgcGFzc2VkIGFzICRwYXJhbVsmIzAzOTtmaWVsZF9uYW1lJiMwMzk7XS48L2xpPg0KPGxpPipFbWFpbCBSZXN1bHRzIEJhc2VkIG9uIFB1bGxkb3duLiBUaGlzIGlzIHVzZWZ1bCBmb3Igd2ViIHNpdGVzIHdoZXJlIGNvbW1lbnRzIGdldCByb3V0ZWQgYmFzZWQgb24gdGhlaXIgc3ViamVjdCBtYXR0ZXIsIGUuZy4sIGJ1Z3MgZ2V0IHNlbnQgdG8gb25lIHBlcnNvbiwgbWFya2V0aW5nIHF1ZXN0aW9ucyB0byBhbm90aGVyIHBlcnNvbiwgc2FsZXMgcmVxdWVzdHMgdG8gc29tZW9uZSBlbHNlLCBldGMuIFRoZSBwdWxsZG93biBpcyBwb3B1bGF0ZWQgd2l0aCB0aGUgc3ViamVjdHMsIGFuZCBlYWNoIGdldHMgZGlyZWN0ZWQgdG8gYSBzcGVjaWZpYyBlbWFpbCBhZGRyZXNzLiBZb3Ugc2V0IHVwIHRoZXNlIG1hcHBpbmdzIGluIHRoZSB3aGVuIHlvdSBjcmVhdGUgb3IgZWRpdCBhIGZpZWxkIG9mIHRoaXMgdHlwZS4gSWYgeW91IHVzZSBvbmUgb2YgdGhlc2UgJnF1b3Q7RGlyZWN0b3ImcXVvdDsgcHVsbGRvd25zLCB0aGUgdXNlciBtdXN0IG1ha2UgYSBzZWxlY3Rpb24gaW4gb3JkZXIgdG8gc3VibWl0IHRoZQ0KZm9ybS4gVGhpcyBpbnB1dCBpcyBwYXJ0IG9mIHRoZSBmb3JtIHRoZSB1c2VyIHNlZXMsIGFsdGhvdWdoIHRoZSBlbWFpbCBhZGRyZXNzZXMgYXJlIG5vdCBtYWRlIHZpc2libGUgbm9yDQphcmUgdGhleSBlbWJlZGRlZCBpbiB0aGUgSFRNTC48L2xpPg0KPGxpPipFbWFpbCBSZXN1bHRzIHRvIHNldCBBZGRyZXNzKGVzKS4gVGhpcyBzaW1wbHkgc2VuZHMgdGhlIGZvcm0gcmVzdWx0cyB0byBvbmUgb3IgbW9yZSBlbWFpbCBhZGRyZXNzZXMgdGhhdCB5b3UgZW50ZXIgd2hlbiB5b3UgY3JlYXRlIG9yIGVkaXQgdGhpcyB0eXBlIG9mIGZpZWxkLiBUaGlzIGZpZWxkIGFuZCBpdHMgbmFtZSBhcmUgbm90IHZpc2libGUgaW4gdGhlDQpmb3JtIHRoYXQgdGhlIHVzZXIgc2Vlcy4gVGhlIGVtYWlsIGFkZHJlc3NlcyBhcmUgbm90IG1hZGUgdmlzaWJsZSBub3INCmFyZSB0aGV5IGVtYmVkZGVkIGluIHRoZSBIVE1MLjwvbGk+DQo8bGk+KkVtYWlsIHRvIFVzZXItU3VwcGxpZWQgQWRkcmVzcy4gVGhpcyBwdXRzIGFuIGlucHV0IGZpZWxkIGluIHRoZSBmb3JtIGZvciB0aGUgdXNlciB0byBwb3B1bGF0ZSB3aXRoIGFuIGVtYWlsIGFkZHJlc3MuIFRoZSBmb3JtIHJlc3VsdHMgZ2V0IHNlbnQgdG8gdGhhdCBhZGRyZXNzLiBCZXdhcmUgb2YgU3BhbSBhYnVzZSEgQWN0aXZlIHRoZSBwcmltaXRpdmUgYW50aS1zcGFtIGZlYXR1cmVzIGluIHRoZSBGb3JtQnVpbGRlciBjb25maWd1cmF0aW9uIHNjcmVlbi48L2xpPg0KPGxpPipTdG9yZSBSZXN1bHRzIGluIERhdGFiYXNlLiBUaGlzIHdpbGwgc3RvcmUgdGhlIGZvcm0gY29udGVudHMgaW4gYW4gaW50ZXJuYWwgZGF0YWJhc2UuIFlvdSB3aWxsIGFsd2F5cyB1c2UgdGhpcyBkaXNwb3NpdGlvbiBpZiB5b3UgdXNlIHRoZSBmb3JtIHdpdGggRm9ybUJyb3dzZXIuPC9saT4NCjxsaT4qUmVkaXJlY3QgdG8gUGFnZSBCYXNlZCBvbiBQdWxsZG93bi4gVGhpcyBhbGxvd3MgeW91IHRvIHJlZGlyZWN0IHRoZSBmb3JtIHRvIGEgZGlmZmVyZW50IHNpdGUgcGFnZSBkZXBlbmRpbmcgb24gaXRzIHZhbHVlLiBJZiB5b3UgaGF2ZSBtdWx0aXBsZSBkaXNwb3NpdGlvbnMsIG1ha2Ugc3VyZSB0aGlzIGlzIHVzZWQgbGFzdC48L2xpPg0KPGxpPipWYWxpZGF0ZSB2aWEgRW1haWwuIFRoaXMgaXMgYSBzdHJhbmdlIGFuZCBwb3dlcmZ1bCBmaWVsZC4gSXQgcHJvdmlkZXMgdGhlIHVzZXIgYSBtYW5kYXRvcnkgaW5wdXQgZm9yIHRoZWlyIGVtYWlsIGFkZHJlc3MuIE9uY2UgdGhleSBzdWJtaXQgdGhlaXIgZm9ybSwgdGhlIHN0YW5kYXJkIGZvcm0gZGlzcG9zaXRpb25zIGFyZSBub3QgcGVyZm9ybWVkIC0tIHJhdGhlciwgaXQgc2VuZCB0aGUgdXNlciBhbiBlbWFpbCB3aXRoIGEgc3BlY2lhbCBjb2RlZCBsaW5rLiBJZiB0aGV5IGNsaWNrIG9uIHRoZSBsaW5rLCB0aGUgb3RoZXIgZm9ybSBpcyBjb25zaWRlcmVkICZxdW90O2FwcHJvdmVkLCZxdW90OyBhbmQgdGhlIG90aGVyIGRpc3Bvc2l0aW9ucyBhcmUgYWxsIHBlcmZvcm1lZC48L2xpPg0KPGxpPipXcml0ZSBSZXN1bHRzIHRvIEZsYXQgRmlsZS4gVGhpcyB0YWtlcyB0aGUgZm9ybSByZXN1bHRzIGFuZCB3cml0ZXMgdGhlbSBpbnRvIGEgdGV4dCBmaWxlLiBZb3UgbWF5DQpzZWxlY3QgdGhlIG5hbWUgb2YgdGhlIGZpbGUsIGFuZCBzZXQgaXRzIGZvcm1hdC4gVGhlc2UgZmlsZXMgYXJlIHdyaXR0ZW4gdG8gdGhlICZxdW90O291dHB1dCZxdW90OyBkaXJlY3RvcnkgdW5kZXIgdGhlDQptb2R1bGUmIzAzOTtzIGluc3RhbGxhdGlvbiBkaXJlY3RvcnksIGFzc3VtaW5nIHRoZSB3ZWIgc2VydmVyIGhhcyBwZXJtaXNzaW9uIHRvIHdyaXRlIHRoZXJlLjwvbGk+DQo8bGk+KlNhdmUgUmVzdWx0cyB0byBGaWxlIEJhc2VkIG9uIFB1bGxkb3duLiBMaWtlIHRoZSBGbGF0IEZpbGUgZGlzcG9zaXRpb24sIGV4Y2VwdCB0aGUgdmFsdWUgb2YgYSBwdWxsLWRvd24gZGV0ZXJtaW5lcyB3aGljaCBmaWxlIHJlc3VsdHMgZ2V0IHdyaXR0ZW4gdG8uPC9saT4NCjxsaT4qU2F2ZSBSZXN1bHRzIHRvIEZpbGUocykgQmFzZWQgb24gTXVsdGlwbGUgU2VsZWN0aW9ucy4gTGlrZSB0aGUgRmxhdCBGaWxlIGRpc3Bvc2l0aW9uLCBleGNlcHQgdGhlIHZhbHVlKHMpIG9mIGNoZWNrYm94ZXMgIGRldGVybWluZXMgd2hpY2ggZmlsZShzKSByZXN1bHRzIGdldCB3cml0dGVuIHRvLjwvbGk+DQo8bGk+KkVtYWlsIHRvIENNUyBBZG1pbiBVc2VyLiBQcm92aWRlcyBhIHB1bGwtZG93biBvZiBDTVMgQWRtaW4gdXNlcnMsIGFuZCBkaXJlY3RzIHRoZSByZXN1bHRzIGFzIGFuIGVtYWlsIHRvIHRoZSBzZWxlY3RlZCBhZG1pbi48L2xpPg0KPGxpPipTdG9yZSBSZXN1bHRzIGZvciBGb3JtQnJvd3NlciBNb2R1bGUgdi4zLiBTdG9yZXMgdGhlIGZvcm0gcmVzdWx0cyBpbiBhbiBYTUwgc3RydWN0dXJlIGFzIGEgc2luZ2xlIGRhdGFiYXNlIHJlY29yZC4gVGhpcyB3aWxsIGJlY29tZSB0aGUgaW50ZXJmYWNlIHRvIEZvcm0gQnJvd3NlciBpbiB0aGUgbmV4dCByZWxlYXNlLjwvbGk+DQoNCjwvdWw+PC9saT48L2xpPjwvdWw+DQoNCg0KPGgzPlBhc3NpbmcgRGVmYXVsdCBWYWx1ZXMgdG8gRm9ybXM8L2gzPg0KPHA+Q2FsZ3V5IGFkZGVkIGEgbmljZSBmZWF0dXJlLCB3aGljaCBpcyB0aGF0IHlvdSBjYW4gcGFzcyBkZWZhdWx0IGZpZWxkIHZhbHVlcyB0byB5b3VyIGZvcm0gdmlhIHRoZSBtb2R1bGUgdGFnLiBUaGlzIGFsbG93cyB5b3UgdG8gaGF2ZQ0KdGhlIHNhbWUgZm9ybSBpbiBtdWx0aXBsZSBwbGFjZXMsIGJ1dCB3aXRoIGRpZmZlcmVudCBkZWZhdWx0IHZhbHVlcy4gSXQgbWF5IG5vdCB3b3JrIGZvciBtb3JlIGV4b3RpYyBmaWVsZCB0eXBlcywgYnV0IGZvciBmaWVsZHMgdGhhdCBoYXZlDQphIHNpbmdsZSB2YWx1ZSwgeW91IGNhbiBzcGVjaWZ5IGxpa2U6PC9wPg0KPHA+e2Ntc19tb2R1bGUgbW9kdWxlPSYjMDM5O0Zvcm1CdWlsZGVyJiMwMzk7IGZvcm09JiMwMzk7bXlfZm9ybSYjMDM5OyB2YWx1ZV88aT5GSUVMRE5BTUU8L2k+PSYjMDM5O2RlZmF1bHRfdmFsdWUmIzAzOTt9PC9wPg0KPHA+VGhpcyB3aWxsIHNldCB0aGUgZmllbGQgd2l0aCA8aT5GSUVMRE5BTUU8L2k+IHRvICYjMDM5O2RlZmF1bHRfdmFsdWUmIzAzOTsuPC9wPg0KPHA+VGhpcyBjYW4gYmUgcHJvYmxlbWF0aWMsIGFzIHNvbWV0aW1lcyBmaWVsZCBuYW1lcyBhcmUgdW53ZWlsZHkgb3IgY29udGFpbiBjaGFyYWN0ZXJzIHRoYXQgZG9uJiMwMzk7dCB3b3JrIHdlbGwgd2l0aCBTbWFydHkuIFNvIHRoZXJlIGlzIGFuDQphbHRlcm5hdGl2ZSBsaWtlIHRoaXM6PC9wPg0KPHA+e2Ntc19tb2R1bGUgbW9kdWxlPSYjMDM5O0Zvcm1CdWlsZGVyJiMwMzk7IGZvcm09JiMwMzk7bXlfZm9ybSYjMDM5OyB2YWx1ZV9mbGQ8aT5OVU1CRVI8L2k+PSYjMDM5O2RlZmF1bHRfdmFsdWUmIzAzOTt9PC9wPg0KPHA+VGhhdCB1c2VzIGZpZWxkIDxpPk5VTUJFUjwvaT4sIHdoZXJlIDxpPk5VTUJFUjwvaT4gaXMgdGhlIGludGVybmFsIEZvcm1CdWlsZGVyIGZpZWxkIGlkLiBZb3UgbWlnaHQgd29uZGVyIGhvdyB5b3Uga25vdyB3aGF0IHRoYXQgaWQgaXMuIFNpbXBseSBnbyBpbnRvIHRoZSBGb3JtQnVpbGRlciBjb25maWd1cmF0aW9uIHRhYiwNCmFuZCBjaGVjayAmcXVvdDtTaG93IEZpZWxkIElEcyZxdW90OzwvcD4NCg0KPGgzPkVtYWlsIGFuZCBGbGF0IEZpbGUgVGVtcGxhdGVzPC9oMz4NCjxwPk1hbnkgZGlzcG9zaXRpb24gdHlwZXMgYWxsb3cgeW91IHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZvciB0aGUgZW1haWwgdGhhdCBpcyBnZW5lcmF0ZWQsIG9yIGZvciB0aGUgd2F5IHRoZSByZXN1bHRzIGFyZSB3cml0dGVuIHRvIGEgZmlsZS4gSWYgeW91IG9wdCBub3QgdG8gY3JlYXRlIGEgdGVtcGxhdGUsIHRoZSBGb3JtQnVpbGRlciB3aWxsIHVzZSBpdCYjMDM5O3Mgb3duIGJlc3QgZ3Vlc3MsIHdoaWNoIG1heSBvciBtYXkgbm90IHdvcmsgb3V0IHRvIHlvdXIgbGlraW5nLiBZb3UgY2FuIGFsd2F5cyBjbGljayBvbiB0aGUgJnF1b3Q7Q3JlYXRlIFNhbXBsZSBUZW1wbGF0ZSZxdW90OyBhbmQgdGhlbiBjdXN0b21pemUgdGhlIHJlc3VsdHMuPC9wPg0KPHA+VG8gdGhlIHJpZ2h0LCB5b3UmIzAzOTtsbCBmaW5kIGEgbGVnZW5kIHdoaWNoIGxpc3RzIGFsbCBvZiB0aGUgdmFyaWFibGVzIHRoYXQgYXJlIGF2YWlsYWJsZSB0byB5b3UgdG8gdXNlIGluIHlvdXIgdGVtcGxhdGUuIEFzIG9mIHZlcnNpb24gMC4zLCB2YXJpYWJsZXMgaGF2ZSB0d28gbmFtZXMsIG9uZSBiYXNlZCBvbiB0aGUgZmllbGQgbmFtZSwgdGhlIG90aGVyIGJhc2VkIG9uIHRoZSBmaWVsZCBJRC4gSWYgeW91IHVzZSBmaWVsZCBuYW1lcyB0aGF0IGhhdmUgY2hhcmFjdGVycyBvdXRzaWRlIG9mIHRoZSBBU0NJSSAzMi0xMjYgcmFuZ2UsIGl0IHdpbGwgYmUgc2FmZXIgdG8gdXNlIHRoZSBJRC1iYXNlZCB2YXJpYWJsZXMuPC9wPg0KPHA+PHN0cm9uZz5Ob3RlIHRoYXQgb25jZSB5b3UmIzAzOTt2ZSBjaGFuZ2VkIGEgdGVtcGxhdGUsIGl0IHdpbGwgbm8gbG9uZ2VyIGF1dG9tYXRpY2FsbHkgYWRkIG5ldyBmaWVsZHMuPC9zdHJvbmc+IEZvciB0aGlzIHJlYXNvbiwgaXQmIzAzOTtzIHVzdWFsbHkgYmVzdCB0byBjcmVhdGUgeW91ciB0ZW1wbGF0ZXMgYXMgdGhlIGxhc3Qgc3RlcCBvZiBjcmVhdGluZyB5b3VyIGZvcm0uPC9wPg0KPHA+QXMgb2YgdmVyc2lvbiAwLjIuNCwgeW91IGNhbiBvcHQgdG8gc2VuZCBhbnkgb2YgdGhlc2UgZW1haWxzIGFzIEhUTUwgZW1haWwuIFRoZXJlIHNob3VsZCBiZSBhIGNoZWNrYm94IGF0IHRoZSB0b3Agb2YgdGhlIHRlbXBsYXRlIHBhZ2UgZm9yIHRoaXMuIFRoZXJlIGlzIGFsc28gYSAmcXVvdDtDcmVhdGUgU2FtcGxlIEhUTUwgVGVtcGxhdGUmcXVvdDsgYnV0dG9uIG92ZXIgaW4gdGhlIGxlZ2VuZCBhcmVhLiBGb3IgSFRNTCBlbWFpbCwgdGhlIGVtYWlsIGJvZHkgd2lsbCBhbHNvIHByb3ZpZGUgdGhlIGRlZmF1bHQgdGV4dC1vbmx5IHZhbHVlcy48L3A+DQoNCjxoMz5Db25maWd1cmF0aW9uPC9oMz4NCjxwPlRoZXJlIGFyZSBzb21lIGdsb2JhbCBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIEZvcm1CdWlsZGVyOjwvcD4NCjx1bD4NCjxsaT5FbmFibGUgZmFzdCBmaWVsZCBhZGQgcHVsbGRvd24uIFRoaXMgZW5hYmxlcyB0aGUgcHVsbGRvd24gb24gdGhlIEZvcm0gRWRpdCBwYWdlIHdoaWNoIHNhdmVzIGEgc3RlcCBpbiB0aGUgY3JlYXRpb24gb2YgbmV3IGZpZWxkcy48L2xpPg0KPGxpPkhpZGUgRXJyb3JzLiBUaGlzIGlzIHNldCBieSBkZWZhdWx0LiBVbmNoZWNraW5nIGl0IHdpbGwgY2F1c2UgbW9yZSBkZXRhaWxlZCBlcnJvcnMgdG8gYmUgZGlzcGxheWVkIGlmIHRoZXJlIGFyZSBwcm9ibGVtcyB3aGVuIHlvdSBzdWJtaXQgeW91ciBmb3JtLjwvbGk+DQo8bGk+UmVxdWlyZSBGaWVsZCBOYW1lcy4gVHlwaWNhbGx5LCB5b3Ugd2lsbCB3YW50IGZvcm0gZmllbGRzIHRvIGJlIG5hbWVkIHNvIHlvdSBjYW4gdGVsbCB3aGljaCBpcyB3aGljaC4gSG93ZXZlciwgaW4gc29tZSBjYXNlcywgeW91IG1pZ2h0IHdhbnQgdG8gaGF2ZSBuYW1lbGVzcyBmaWVsZHMuIFVuY2hlY2sgdGhpcyBpZiB5b3Ugd2FudCB0byBhbGxvdyBuYW1lbGVzcyBmaWVsZHMuPC9saT4NCjxsaT5VbmlxdWUgRmllbGQgTmFtZXMuIFR5cGljYWxseSwgeW91IHdpbGwgd2FudCBmb3JtIGZpZWxkcyB0byBoYXZlIHVuaXF1ZSBuYW1lcyBzbyB5b3UgY2FuIHRlbGwgd2hpY2ggaXMgd2hpY2guIFVuY2hlY2sgdGhpcyBpZiB5b3Ugd2FudCB0byBhbGxvdyBmaWVsZHMgdG8gc2hhcmUgbmFtZXMuPC9saT4NCjxsaT5Vc2UgcmVsYXhlZCBlbWFpbCB2YWxpZGF0aW9uLiBUaGlzIHVzZXMgYSBsZXNzIHJlc3RyaWN0aXZlIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgdmFsaWRhdGluZyBlbWFpbDsgZS5nLiwgeEB5IHdpbGwgYmUgYWxsb3dlZCwgd2hlcmUgdHlwaWNhbGx5IHhAeS50bGQgaXMgcmVxdWlyZWQuPC9saT4NCjxsaT5TaG93IEZvcm0gQnVpbGRlciBWZXJzaW9uLiBEaXNwbGF5cyB0aGUgdmVyc2lvbiBvZiBGb3JtQnVpbGRlciB5b3UmIzAzOTtyZSB1c2luZyBpbiBhIGNvbW1lbnQgd2hlbiB0aGUgZm9ybSBpcyBnZW5lcmF0ZWQuIFR5cGljYWxseSBvbmx5IHVzZWZ1bCB3aGVuIGRlYnVnZ2luZy48L2xpPg0KPGxpPkVuYWJsZSBwcmltaXRpdmUgYW50aS1zcGFtIGZlYXR1cmVzLiBXaGVuIHR1cm5lZCBvbiwgdGhpcyBhbGxvd3MgYW55IGdpdmVuIElQIGFkZHJlc3MgdG8gb25seSBnZW5lcmF0ZSAxMCBlbWFpbHMgcGVyIGhvdXIuPC9saT4NCjxsaT5TaG93IEZpZWxkIElEcy4gV2hlbiB0dXJuZWQgb24sIEZvcm1CdWlsZGVyIHdpbGwgZGlzcGxheSBmaWVsZCBpZHMgd2hlbiBhZGRpbmcgb3IgZWRpdGluZyBhIGZvcm0uPC9saT4NCjwvdWw+DQo8aDM+U3R5bGluZyBhbmQgQ1NTPC9oMz4NCjxwPlBhdWwgTm9vbmUgZ3JhY2lvdXNseSBwcm92aWRlcyB1cyBhbGwgd2l0aCBhIHByZXR0eSBnb29kIHN0YW5kYXJkIENTUyB0aGF0IHlvdSBjYW4gdXNlIGZvciBmb3Jtczo8L3A+DQo8cHJlPg0KCS8qIFNhbXBsZSBGb3JtQnVpbGRlciBDU1MgYmFzZSAqLw0KCWZvcm0ge21hcmdpbi10b3A6MH0NCglmb3JtLCB0ZCwgdGgsIGxpIHsgZm9udC1zaXplOiAxMDAlfQ0KCWZvcm0gZGl2IHttYXJnaW4tYm90dG9tOjB9DQoJZmllbGRzZXQgZGl2IHsNCgkJbWFyZ2luLWJvdHRvbTowLjVlbTsNCgkJbWFyZ2luLWxlZnQ6MWVtOw0KCX0NCglmaWVsZHNldCBkaXYgZGl2IHsNCgkJbWFyZ2luLXRvcDowLjVlbTsNCgkJbWFyZ2luLWxlZnQ6MWVtDQoJfQ0KCWZpZWxkc2V0IHsNCgkJbWFyZ2luLWJvdHRvbToxZW07DQoJCWJvcmRlcjoxcHggc29saWQgI0Y2MDsNCgkJcGFkZGluZzowLjVlbQ0KCX0NCglmaWVsZHNldCBsYWJlbCB7DQoJCXdpZHRoOmF1dG87DQoJfQ0KCWxlZ2VuZCB7DQoJCWNvbG9yOiNGRkY7DQoJCWJhY2tncm91bmQ6I0Y2MDsNCgkJZm9udC1zdHlsZTppdGFsaWM7DQoJCWZvbnQtc2l6ZToxLjJlbTsNCgkJbWFyZ2luLWJvdHRvbTowLjVlbTsNCgkJcGFkZGluZzowLjJlbTsNCgkJd2lkdGg6YXV0bzsNCgkJYm9yZGVyOjFweCBzb2xpZCAjQ0NDDQoJfQ0KCXRleHRhcmVhIHsNCgkJbWFyZ2luOiAwLjVlbSAwOw0KCQl3aWR0aDo5OCU7DQoJCWhlaWdodDogNmVtDQoJfQ0KDQoJLyogQXBwbHkgdGhpcyBjbGFzcyB0byB0ZXh0L3NlbGVjdCBpbnB1dCBmaWVsZHMgd2l0aCBzaG9ydGVyIGxhYmVscw0KCQl0byBoZWxwIGFsaWdubWVudCAqLw0KCS5zaG9ydC1sYWJlbCBsYWJlbCB7ZmxvYXQ6bGVmdDsgd2lkdGg6MTBlbX0NCgkuc2hvcnQtbGFiZWwgZmllbGRzZXQgZGl2IGlucHV0LA0KCS5zaG9ydC1sYWJlbCBmaWVsZHNldCBkaXYgc2VsZWN0IHt3aWR0aDoxNmVtfQ0KDQoJLyogUHJldHR5IHVwIHlvdXIgQ2FwdGNoYSBpbWFnZSBvdXRwdXQgKi8NCgkuY2FwdGNoYSB7DQoJCW1hcmdpbjowLjVlbSAwOw0KCQl3aWR0aDoyMDBweDsNCgkJdGV4dC1hbGlnbjpjZW50ZXINCgl9DQoJLmNhcHRjaGEgaW1nIHtib3JkZXI6MXB4IHNvbGlkICNGNjA7IG1hcmdpbi1ib3R0b206MC41ZW19DQoJLmNhcHRjaGEgaW5wdXQge3dpZHRoOjE5NnB4OyBtYXJnaW4tdG9wOjAuNWVtfQ0KDQoJLyogSnVzdCBhIGJpdCBtb3JlIHJvb20gZm9yIHRoZSBTdWJtaXQgYnV0dG9uICovDQoJLnN1Ym1pdCB7bWFyZ2luLXRvcDowLjVlbX0NCjwvcHJlPg0KDQo8aDM+Rm9ybSBUZW1wbGF0ZSBWYXJpYWJsZXM8L2gzPg0KDQo8aDM+Rm9ybSBUZW1wbGF0ZSBWYXJpYWJsZXM8L2gzPg0KPHA+WW91IGNhbiBlZGl0IGl0IHRvIG1ha2UgeW91ciBmb3JtIGxheW91dCBsb29rIGFueSB3YXkgeW91JiMwMzk7ZCBsaWtlLg0KICAgVG8gbWFrZSB0aGUgZm9ybSB3b3JrLCB5b3UmIzAzOTtsbCBuZWVkIHRvIGFsd2F5cyBpbmNsdWRlIHRoZSAmYW1wOyMxMjM7JGZiX2hpZGRlbn0gYW5kICZhbXA7IzEyMzskc3VibWl0fQ0KICAgdGFncy48L3A+DQoNCjxwPllvdSBjYW4gYWNjZXNzIHlvdXIgZm9ybSBmaWVsZHMgZWl0aGVyIHVzaW5nIHRoZSAkZmllbGRzIGFycmF5IG9yIGJ5IGRpcmVjdGx5IGFjY2Vzc2luZyBmaWVsZHMgYnkgdGhlaXIgbmFtZXMgKGUuZy4sICZhbXA7IzEyMzskbXlmaWVsZC0+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+PHRkPnRoZSBJRCBvZiB0aGUgZmllbGQmIzAzOTtzIGlucHV0ICh1c2VmdWwgZm9yIGxhYmVsIGZvcj0mcXVvdDtmb28mcXVvdDspPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+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+Rm9ybUJ1aWxkZXIgaXMgbm90IHlldCBpbnRlZ3JhdGVkIHdpdGggRnJvbnRFbmQgVXNlcnMuIEl0IHdpbGwgYmUuPC9saT4NCjxsaT5Gb3JtQnVpbGRlciBkb2VzIG5vdCB5ZXQgc3VwcG9ydCBwcmV0dHkgdXJscywgYWx0aG91Z2ggdGhhdCBzaG91bGRuJiMwMzk7dCBtYXR0ZXIgc2luY2UgdGhlIHVzZXIgc2lkZSBpcyBwcmV0dHkgc2ltcGxlLjwvbGk+DQo8bGk+RmlsZVVwbG9hZCBGaWVsZHMgbWF5IG5vdCB3b3JrIGNvcnJlY3RseSB3aXRoIG11bHRpcGFnZSBmb3Jtcy48L2xpPg0KPC91bD4NCg0KPGgzPlRyb3VibGVzaG9vdGluZzwvaDM+DQo8b2w+PGxpPiBGaXJzdCBzdGVwIGlzIHRvIGNoZWNrIHlvdSYjMDM5O3JlIHJ1bm5pbmcgQ01TIDEuMSBvciBsYXRlci48L2xpPg0KPGxpPiBTZWNvbmQgc3RlcCBpcyB0byByZWFkIGFuZCB1bmRlcnN0YW5kIHRoZSBjYXZlYXQgYWJvdXQgV1lTSVdZRyBlZGl0b3JzIHVwIGluIHRoZQ0Kc2VjdGlvbiA8ZW0+QWRkaW5nIGEgRm9ybSB0byBhIFBhZ2U8L2VtPi48L2xpPg0KPGxpPiBJZiB5b3UmIzAzOTtyZSBtaXNzaW5nIGZpZWxkcyBpbiBhbiBlbWFpbCB0aGF0IGdldHMgZ2VuZXJhdGVkLCBjaGVjayB0aGUgZGlzcG9zaXRpb24gZmllbGQmIzAzOTtzIHRlbXBsYXRlLCBhbmQgbWFrZSBzdXJlIHlvdSYjMDM5O3JlIHNwZWNpZnlpbmcgdGhlIG1pc3NpbmcgZmllbGRzLiBTZWVtcyBvYnZpb3VzLCBidXQgaXQmIzAzOTtzIGFuIGVhc3kgbWlzdGFrZSB0byBtYWtlLjwvbGk+DQo8bGk+VW5jaGVjayB0aGUgJnF1b3Q7SGlkZSBFcnJvcnMmcXVvdDsgY2hlY2tib3ggaW4gdGhlIGdsb2JhbCBvcHRpb25zLCBhbmQgc2VlIHdoYXQgbWVzc2FnZSBnZXRzIGRpc3BsYXllZCB3aGVuIHlvdSBzdWJtaXQgeW91ciBmb3JtLjwvbGk+DQo8bGk+IEp1c3QgbWVzcyBhcm91bmQgYW5kIHRyeSBjbGlja2luZyBvbiBsaW5rcyBhbmQgaWNvbnMgYW5kIHN0dWZmLiBTZWUgd2hhdCBoYXBwZW5zLjwvbGk+DQo8bGk+IExhc3QgcmVzcG9ydCBpcyB0byBlbWFpbCBtZSBvciBjYXRjaCBtZSBvbiBJUkMgYW5kIHdlIGNhbiBnbyBmcm9tIHRoZXJlLjwvbGk+DQo8L29sPiANCjxwPlRoaXMgaXMgbm8gbG9uZ2VyIGEgcGFydGljdWxhcmx5IGVhcmx5IHZlcnNpb24sIGJ1dCBpdCBpcyBwcm9iYWJseSBzdGlsbCBidWdneS4gV2hpbGUgSSYjMDM5O3ZlIGRvbmUgYWxsIEkgY2FuDQp0byBtYWtlIHN1cmUgbm8gZWdyZWdpb3VzIGJ1Z3MgaGF2ZSBjcmVwdCBpbiwgSSBoYXZlIHRvIGFkbWl0IHRoYXQgZHVyaW5nIGVhcmx5IHRlc3RpbmcsIHRoaXMgcHJvZ3JhbQ0KcmV2ZWFsZWQgc2V2ZW4gY29ja3JvYWNoZXMsIHR3byBlYXJ3aWdzLCBhIHNtYWxsIGZhbWlseSBvZiBhcGhpZHMsIGFuZCBhIHdhbGtpbmctc3RpY2sgaW5zZWN0LiBJdCBhbHNvDQphdGUgdGhlIG5laWdoYm9yJiMwMzk7cyBuYXN0eSBsaXR0bGUgeWFwIGRvZywgZm9yIHdoaWNoIEkgd2FzIGluYXBwcm9wcmlhdGVseSBncmF0ZWZ1bC48L3A+DQo8cD5UaGUgZmluYWwgcmVsZWFzZSB3aWxsIGluY2x1ZGUgYnVnIGZpeGVzLCBkb2N1bWVudGF0aW9uLCBhbmQgdW5jb25kaXRpb25hbCBsb3ZlLjwvcD4NCjxoMz5TdXBwb3J0PC9oMz4NCjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4NCjx1bD4NCjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlLCBGQVFzLCBvciB0byBmaWxlIGEgQnVnIFJlcG9ydCwgcGxlYXNlIHZpc2l0IHRoZSBDTVMgTWFkZSBTaW1wbGUgIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmciPkRldmVsb3BlciBGb3JnZTwvYT4uPC9saT4NCjxsaT5UbyBvYnRhaW4gY29tbWVyY2lhbCBzdXBwb3J0LCBwbGVhc2Ugc2VuZCBhbiBlbWFpbCB0byB0aGUgYXV0aG9yIGF0IDxhIGhyZWY9Im1haWx0bzpzamdAY21zbW9kdWxlcy5jb20iPiZhbXA7bHQ7c2pnQGNtc21vZHVsZXMuY29tJmFtcDtndDs8L2E+LjwvbGk+DQo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LjwvbGk+DQo8bGk+VGhlIGF1dGhvciBjYW4gb2Z0ZW4gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9ImlyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2NtcyI+Q01TIElSQyBDaGFubmVsPC9hPi48L2xpPg0KPGxpPkxhc3RseSwgeW91IG1heSBoYXZlIHNvbWUgc3VjY2VzcyBlbWFpbGluZyB0aGUgYXV0aG9yIGRpcmVjdGx5IGFuZCBncm92ZWxsaW5nIGZvciBmcmVlIHN1cHBvcnQuPC9saT4NCjxsaT5Eb25hdGlvbnMgYXJlIGdvb2QgbW90aXZhdG9ycywgdG9vLiBLZWVwIGluIG1pbmQgdGhhdCB0aGUgZG9sbGFyIGlzIHdlYWssIGFuZCBpZiB5b3UgYXJlIG5vdCBpbiB0aGUgVVMsIHlvdXIgZG9uYXRpb24gZ2V0cyBtYWduaWZpZWQuPC9saT4NCjwvdWw+DQo8cD5LZWVwIGluIG1pbmQgdGhhdCB0aGUgYXV0aG9yIGhhcyBwdXQgaHVuZHJlZHMgYW5kIGh1bmRyZWRzIG9mIGhvdXJzIGludG8gdGhlIGRldmVsb3BtZW50IG9mIHRoaXMgbW9kdWxlLiBQbGVhc2UgdGFrZSB0aGUgdGltZSB0byByZWFkIHRoZSBkb2N1bWVudGF0aW9uIGJlZm9yZSBzZW5kaW5nIHF1ZXN0aW9ucy4gRWl0aGVyIHRoYXQsIG9yIHNlbmQgeW91ciBxdWVzdGlvbnMgd3JpdHRlbiBvbiBmaW5hbmNpYWxseSBuZWdvdGlhYmxlIGluc3RydW1lbnRzIChpLmUuLCBjaGVja3Mgb3IgY2FzaCkuIEFtIEkgc291bmRpbmcgbGlrZSBhIGJyb2tlbiByZWNvcmQ/IERvIHlvdSBraWRzIHRoZXNlIGRheXMgZXZlbiBrbm93IHdoYXQgYSBicm9rZW4gcmVjb3JkIGlzPyBJIHdvdWxkIHNheSBza2lwcGluZyBDRCwgYnV0IHlvdSBtaWdodCBub3Qga25vdyB3aGF0IHRoYXQgaXMgZWl0aGVyLiBMaWtlIGEgc2FtcGxlIHRoYXQgZ290IHN0dWNrIG9uIGxvb3A/IERhbW4sIEkgYW0gZ2V0dGluZyBvbGQuIFNvIGlzIHRoaXMgcGFyYWdyYXBoLiBUaW1lIHRvIG1vdmUgb24sIGhlcmUuPC9wPg0KPHA+QXMgcGVyIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgYXMtaXMuIFBsZWFzZSByZWFkIHRoZSB0ZXh0DQpvZiB0aGUgbGljZW5zZSBmb3IgdGhlIGZ1bGwgZGlzY2xhaW1lci48L3A+DQo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4NCjxwPkNvcHlyaWdodCAmYW1wO2NvcHk7IDIwMDgsIFNhbXVlbCBHb2xkc3RlaW4gPGEgaHJlZj0ibWFpbHRvOnNqZ0BjbXNtb2R1bGVzLmNvbSI+JmFtcDtsdDtzamdAY21zbW9kdWxlcy5jb20mYW1wO2d0OzwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4NCjxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+JzsKJGxhbmdbJ3FjYSddID0gJ1AwLTI0NTc0ODA3Mi0xMjUxNTA0MTgwOTkwJzsKJGxhbmdbJ3V0bXonXSA9ICcxNTY4NjEzNTMuMTI2OTg5NDkwMy4yMi4xNS51dG1jc3I9Z29vZ2xlfHV0bWNjbj0ob3JnYW5pYyl8dXRtY21kPW9yZ2FuaWN8dXRtY3RyPW1vZHVsZXMgY21zbXMnOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My4yOTE3MjgwNzE1MzkxODU5MDAwLjEyNTE1MDQxODEuMTI2OTU0MDE0OS4xMjY5ODkxMTEzLjIyJzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwokbGFuZ1sndXRtYiddID0gJzE1Njg2MTM1My4xLjEwLjEyNjk4OTExMTMnOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/tr_TR.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0Zvcm0gQnVpbGRlcic7CiRsYW5nWydmaWVsZF90eXBlXyddID0gJ0ZpZWxkIFR5cGUgTm90IFNldCc7CiRsYW5nWydmaWVsZF90eXBlX0NhdGFsb2dlckl0ZW1zRmllbGQnXSA9ICdTZWxlY3Qgb25lIChvciBtb3JlKSBjYXRhbG9nZXIgaXRlbXMnOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldEVuZCddID0gJy1GaWVsZHNldCBFbmQnOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldFN0YXJ0J10gPSAnLUZpZWxkc2V0IFN0YXJ0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkJ10gPSAnVGV4dCBJbnB1dCc7CiRsYW5nWydmaWVsZF90eXBlX0hUTUw1TnVtYmVyRmllbGQnXSA9ICdIVE1MNSBOdW1iZXIgSW5wdXQnOwokbGFuZ1snZmllbGRfdHlwZV9IVE1MNUVtYWlsRmllbGQnXSA9ICdIVE1MNSBFbWFpbCBJbnB1dCc7CiRsYW5nWydmaWVsZF90eXBlX0hUTUw1VVJMRmllbGQnXSA9ICdIVE1MNSBVUkwgSW5wdXQnOwokbGFuZ1snZmllbGRfdHlwZV9QYXNzd29yZEZpZWxkJ10gPSAnxZ5pZnJlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUGFzc3dvcmRBZ2FpbkZpZWxkJ10gPSAnxZ5pZnJlIFRla3JhciAoZG/En3J1bGFtYSknOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0RmllbGRFeHBhbmRhYmxlJ10gPSAnVGV4dCBJbnB1dCAoTXVsdGlwbGUpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEFyZWFGaWVsZCddID0gJ1RleHQgQXJlYSc7CiRsYW5nWydmaWVsZF90eXBlX0J1dHRvbkZpZWxkJ10gPSAnQnV0b24nOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEZpZWxkJ10gPSAnQ2hlY2sgQm94JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hHcm91cEZpZWxkJ10gPSAnQ2hlY2sgQm94IEdyb3VwJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUHVsbGRvd25GaWVsZCddID0gJ1B1bGxkb3duJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfWWVhclB1bGxEb3duRmllbGQnXSA9ICdZZWFyIFB1bGxkb3duJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTXVsdGlzZWxlY3RGaWVsZCddID0gJyZDY2VkaWw7b2tsdXNlJmNjZWRpbDtpbSc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRlUGlja2VyRmllbGQnXSA9ICdVLlMuIFN0YXRlIFBpY2tlcic7CiRsYW5nWydmaWVsZF90eXBlX1Byb3ZpbmNlUGlja2VyRmllbGQnXSA9ICdDYW5hZGlhbiBQcm92aW5jZSBQaWNrZXInOwokbGFuZ1snZmllbGRfdHlwZV9Db3VudHJ5UGlja2VyRmllbGQnXSA9ICcmVXVtbDtsa2UgU2UmY2NlZGlsO2ljaSc7CiRsYW5nWydmaWVsZF90eXBlX0RhdGVQaWNrZXJGaWVsZCddID0gJ1RhcmloIFNlJmNjZWRpbDtpY2knOwokbGFuZ1snZmllbGRfdHlwZV9UaW1lUGlja2VyRmllbGQnXSA9ICdaYW1hbiBTZSZjY2VkaWw7aWNpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUmFkaW9Hcm91cEZpZWxkJ10gPSAnUmFkaW8gQnV0b24gR3J1YnUnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRpcmVjdG9yJ10gPSAnKkVtYWlsIFJlc3VsdHMgQmFzZWQgb24gUHVsbGRvd24nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZpbGVEaXJlY3RvciddID0gJypTYXZlIFJlc3VsdHMgdG8gRmlsZSBCYXNlZCBvbiBQdWxsZG93bic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uTXVsdGlzZWxlY3RGaWxlRGlyZWN0b3InXSA9ICcqU2F2ZSBSZXN1bHRzIHRvIEZpbGUocykgQmFzZWQgb24gTXVsdGlwbGUgU2VsZWN0aW9ucyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uUGFnZVJlZGlyZWN0b3InXSA9ICcqUmVkaXJlY3QgdG8gUGFnZSBCYXNlZCBvbiBQdWxsZG93bic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWwnXSA9ICcqRW1haWwgUmVzdWx0cyB0byBzZXQgQWRkcmVzcyhlcyknOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsQ29uZmlybWF0aW9uJ10gPSAnKkTEn3J1bGFtYS1FbWFpbCBBZHJlc2knOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZyb21FbWFpbEFkZHJlc3NGaWVsZCddID0gJypFbWFpbCAmcXVvdDtGcm9tIEFkZHJlc3MmcXVvdDsgRmllbGQsIGFuZCBzZW5kIGNvcHknOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZpbGUnXSA9ICcqV3JpdGUgUmVzdWx0cyB0byBGbGF0IEZpbGUnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRhdGFiYXNlJ10gPSAnKlN0b3JlIFJlc3VsdHMgaW4gRGF0YWJhc2UnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZvcm1Ccm93c2VyJ10gPSAnKlN0b3JlIFJlc3VsdHMgZm9yIEZvcm1Ccm93c2VyIE1vZHVsZSB2LjAuMyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uVXNlclRhZyddID0gJypDYWxsIEEgVXNlciBEZWZpbmVkIFRhZyBXaXRoIHRoZSBGb3JtIFJlc3VsdHMnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZvcm0nXSA9ICcqU3VibWl0IHRvIGFuIGFyYml0cmFyeSBmb3JtIGFjdGlvbic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGVsaXZlclRvRW1haWxBZGRyZXNzRmllbGQnXSA9ICcqRW1haWwgdG8gVXNlci1TdXBwbGllZCBFbWFpbCBBZGRyZXNzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbFNpdGVBZG1pbiddID0gJypFbWFpbCB0byBDTVMgQWRtaW4gVXNlcic7CiRsYW5nWydmaWVsZF90eXBlX1BhZ2VCcmVha0ZpZWxkJ10gPSAnLVNheWZhIFNvbnUnOwokbGFuZ1snZmllbGRfdHlwZV9GaWxlVXBsb2FkRmllbGQnXSA9ICdEb3N5YSBZJnV1bWw7a2xlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsQWRkcmVzc0ZpZWxkJ10gPSAnRW1haWwgJnF1b3Q7RnJvbSBBZGRyZXNzJnF1b3Q7IEZpZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsQWRkcmVzc0FnYWluRmllbGQnXSA9ICdFbWFpbCAmcXVvdDtGcm9tIEFkZHJlc3MmcXVvdDsgQWdhaW4gRmllbGQnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxOYW1lRmllbGQnXSA9ICdFbWFpbCAmcXVvdDtGcm9tIE5hbWUmcXVvdDsgRmllbGQnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxTdWJqZWN0RmllbGQnXSA9ICdFbWFpbCAmcXVvdDtTdWJqZWN0JnF1b3Q7IEZpZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3RhdGljVGV4dEZpZWxkJ10gPSAnLVN0YXRpayBZYXrEsSc7CiRsYW5nWydmaWVsZF90eXBlX1N5c3RlbUxpbmtGaWVsZCddID0gJy1TdGF0aWsgTGluayc7CiRsYW5nWydmaWVsZF90eXBlX0xpbmtGaWVsZCddID0gJ0xpbmsgKEt1bGxhbsSxY8SxLWdpcmnFn2xpKSc7CiRsYW5nWydmaWVsZF90eXBlX0hpZGRlbkZpZWxkJ10gPSAnLUhpZGRlbiBGaWVsZCc7CiRsYW5nWydmaWVsZF90eXBlX0NvbXB1dGVkRmllbGQnXSA9ICctQ29tcHV0ZWQgRmllbGQnOwokbGFuZ1snZmllbGRfdHlwZV9VbmlxdWVJbnRlZ2VyRmllbGQnXSA9ICctVW5pcXVlIEludGVnZXIgKFNlcmlhbCknOwokbGFuZ1snZmllbGRfdHlwZV9Vc2VyVGFnRmllbGQnXSA9ICctVXNlciBEZWZpbmVkIFRhZyBDYWxsJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ29tcGFueURpcmVjdG9yeUZpZWxkJ10gPSAnQ29tcGFueSBEaXJlY3RvcnkgRmllbGQnOwokbGFuZ1snZmllbGRfdHlwZV9Nb2R1bGVJbnRlcmZhY2VGaWVsZCddID0gJy1Nb2R1bGUgSW50ZXJmYWNlIEZpZWxkJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbm9uZSddID0gJ05vIFZhbGlkYXRpb24nOwokbGFuZ1sndmFsaWRhdGlvbl9udW1lcmljJ10gPSAnTnVtZXJpayc7CiRsYW5nWyd2YWxpZGF0aW9uX2ludGVnZXInXSA9ICdJbnRlZ2VyJzsKJGxhbmdbJ3ZhbGlkYXRpb25fZW1haWxfYWRkcmVzcyddID0gJ0VtYWlsIEFkcmVzaSc7CiRsYW5nWyd2YWxpZGF0aW9uX3VzcGhvbmUnXSA9ICdUZWxlZm9uIE51bWFyYXPEsSAoVVMpJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbXVzdF9jaGVjayddID0gJ011c3QgQmUgQ2hlY2tlZCc7CiRsYW5nWyd2YWxpZGF0aW9uX3JlZ2V4X21hdGNoJ10gPSAnTWF0Y2ggUmVndWxhciBFeHByZXNzaW9uJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbm9tYXRjaCddID0gJ0RvZXNuJiMwMzk7dCBtYXRjaCBSZWd1bGFyIEV4cHJlc3Npb24nOwokbGFuZ1sncmVxdWlyZWRfZmllbGRfbWlzc2luZyddID0gJ0EgdmFsdWUgd2FzIG5vdCBzdXBwbGllZCBmb3IgYSByZXF1aXJlZCBmaWVsZCc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV92YWx1ZSddID0gJ1BsZWFzZSBlbnRlciBhIHZhbHVlIGZvciAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV9udW1iZXInXSA9ICdQbGVhc2UgZW50ZXIgYSBudW1iZXIgZm9yICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl92YWxpZCddID0gJ1BsZWFzZSBlbnRlciBhIHZhbGlkIGVudHJ5IGZvciAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5faW50ZWdlciddID0gJ1BsZWFzZSBlbnRlciBhbiBpbnRlZ2VyIHZhbHVlIGZvciAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5fZW1haWwnXSA9ICdQbGVhc2UgZW50ZXIgYSB2YWxpZCBlbWFpbCBhZGRyZXNzIGZvciAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydlbWFpbF9hZGRyZXNzX2RvZXNfbm90X21hdGNoJ10gPSAnRW1haWwgYWRkcmVzcyBkb2VzIG5vdCBtYXRjaCB2YWx1ZSBpbiAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV9waG9uZSddID0gJ1BsZWFzZSBlbnRlciBhIHZhbGlkIHBob25lIG51bWJlciBmb3IgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2xvZ2luJ10gPSAnUGxlYXNlIGxvZyBpbiB0byB1c2UgdGhpcyBmb3JtJzsKJGxhbmdbJ25vdF92YWxpZF9lbWFpbCddID0gJyZxdW90OyVzJnF1b3Q7IGRvZXMgbm90IGFwcGVhciB0byBiZSBhIHZhbGlkIGVtYWlsIGFkZHJlc3MhJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9ub19sb25nZXInXSA9ICdQbGVhc2UgZW50ZXIgYSB2YWx1ZSB0aGF0IGlzIG5vIGxvbmdlciB0aGFuICVzIGNoYXJhY3RlcnMnOwokbGFuZ1sncGxlYXNlX2VudGVyX2F0X2xlYXN0J10gPSAnUGxlYXNlIGVudGVyIGEgdmFsdWUgdGhhdCBpcyBhdCBsZWFzdCAlcyBjaGFyYWN0ZXJzJzsKJGxhbmdbJ3RpdGxlX2xpc3RfZGVsaW1pdGVyJ10gPSAnQ2hhcmFjdGVyIHRvIHVzZSBhcyBkZWxpbWl0ZXIgaW4gcmVzdWx0cyB0aGF0IHJldHVybiBtb3JlIHRoYW4gb25lIHZhbHVlJzsKJGxhbmdbJ3lvdV9uZWVkX3Blcm1pc3Npb24nXSA9ICdZb3UgbmVlZCB0aGUgJnF1b3Q7JXMmcXVvdDsgcGVybWlzc2lvbiB0byBwZXJmb3JtIHRoYXQgb3BlcmF0aW9uLic7CiRsYW5nWydsYWNrcGVybWlzc2lvbiddID0gJ1NvcnJ5ISBZb3UgZG9uJiMwMzk7dCBoYXZlIGFkZXF1YXRlIHByaXZpbGVnZXMgdG8gYWNjZXNzIHRoaXMgc2VjdGlvbi4nOwokbGFuZ1snZmllbGRfb3JkZXJfdXBkYXRlZCddID0gJ0ZpZWxkIG9yZGVyIHVwZGF0ZWQuJzsKJGxhbmdbJ2Zvcm1fZGVsZXRlZCddID0gJ0Zvcm0gc2lsaW5kaS4nOwokbGFuZ1snZmllbGRfZGVsZXRlZCddID0gJ0ZpZWxkIHNpbGluZGkuJzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb25fdXBkYXRlZCddID0gJ0tvbmZpZyZ1dW1sO3Jhc3lvbiBHJnV1bWw7bmNlbGxlbmRpLic7CiRsYW5nWyd5b3VfbXVzdF9jaGVjayddID0gJ1lvdSBtdXN0IGNoZWNrICZxdW90OyVzJnF1b3Q7IGluIG9yZGVyIHRvIGNvbnRpbnVlLic7CiRsYW5nWydtdXN0X3NwZWNpZnlfb25lX2Rlc3RpbmF0aW9uJ10gPSAnWW91IG5lZWQgdG8gc3BlY2lmeSBhdCBsZWFzdCBvbmUgZGVzdGluYXRpb24gYWRkcmVzcyEnOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9mb3JtJ10gPSAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGUgZm9ybSAlcz8nOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9maWVsZCddID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgdGhlIGZpZWxkICVzPyc7CiRsYW5nWydub3RpY2Vfc2VsZWN0X3R5cGUnXSA9ICdBZHZhbmNlZCBvcHRpb25zIGFyZSBub3QgYXZhaWxhYmxlIHVudGlsIHRoZSBmaWVsZCB0eXBlIGhhcyBiZWVuIHNldC4nOwokbGFuZ1snZmllbGRfbmFtZV9pbl91c2UnXSA9ICdUaGUgZmllbGQgbmFtZSAmcXVvdDslcyZxdW90OyBpcyBhbHJlYWR5IGluIHVzZS4gUGxlYXNlIHVzZSB1bmlxdWUgZmllbGQgbmFtZXMsIG9yIGRpc2FibGUgdW5pcXVlIGZpZWxkIG5hbWVzIGluIHRoZSBGb3JtIEJ1aWxkZXIgY29uZmlndXJhdGlvbi4nOwokbGFuZ1snZmllbGRfbm9fbmFtZSddID0gJ0ZpZWxkcyBtdXN0IGJlIG5hbWVkLCB1bmxlc3MgeW91IGRpc2FibGUgdGhpcyBpbiB0aGUgRm9ybSBCdWlsZGVyIGNvbmZpZ3VyYXRpb24uJzsKJGxhbmdbJ2Fub255bW91cyddID0gJ0JpbGlubWV5ZW4nOwokbGFuZ1snYWJicmV2aWF0aW9uX2xlbmd0aCddID0gJ0xlbjogJXMnOwokbGFuZ1snYm94ZXMnXSA9ICclcyBib3hlcyc7CiRsYW5nWydvcHRpb25zJ10gPSAnJXMgb3B0aW9ucyc7CiRsYW5nWyd0ZXh0X2xlbmd0aCddID0gJyVzIGNoYXJzLic7CiRsYW5nWydvcmRlciddID0gJ09yZGVyJzsKJGxhbmdbJ3Vuc3BlY2lmaWVkJ10gPSAnW3Vuc3BlY2lmaWVkXSc7CiRsYW5nWydhZGRlZCddID0gJ2VrbGVuZGknOwokbGFuZ1sndXBkYXRlZCddID0gJ2cmdXVtbDtuY2VsbGVuZGknOwokbGFuZ1snc29ydF9vcHRpb25zJ10gPSAnU29ydCBvcHRpb25zIG9uIG91dHB1dCc7CiRsYW5nWydzZWxlY3Rfb25lJ10gPSAnU2UmY2NlZGlsO2luaXonOwokbGFuZ1snc2VsZWN0X3R5cGUnXSA9ICdTZWxlY3QgVHlwZSc7CiRsYW5nWyd0byddID0gJ1RvJzsKJGxhbmdbJ3llcyddID0gJ0V2ZXQnOwokbGFuZ1snbm8nXSA9ICdIYXnEsXInOwokbGFuZ1sncmVjaXBpZW50cyddID0gJ3JlY2lwaWVudHMnOwokbGFuZ1snZmlsZV9jb3VudCddID0gJyVzIHBvc3NpYmxlIGZpbGVzJzsKJGxhbmdbJ2Rlc3RpbmF0aW9uX2NvdW50J10gPSAnJXMgZGVzdGluYXRpb25zJzsKJGxhbmdbJ3NhdmUnXSA9ICdLYXlkZXQnOwokbGFuZ1snYWRkJ10gPSAnRWtsZSc7CiRsYW5nWyd1cGRhdGUnXSA9ICdHJnV1bWw7bmNlbGxlJzsKJGxhbmdbJ3NhdmVfYW5kX2NvbnRpbnVlJ10gPSAnU2F2ZSBhbmQgQ29udGludWUgRWRpdGluZyc7CiRsYW5nWydpbmZvcm1hdGlvbiddID0gJ0JpbGdpJzsKJGxhbmdbJ2F1dG9tYXRpYyddID0gJ090b21hdGlrJzsKJGxhbmdbJ2Zvcm1zJ10gPSAnRm9ybWxhcic7CiRsYW5nWydmb3JtJ10gPSAnRm9ybSAlcyc7CiRsYW5nWydjb25maWd1cmF0aW9uJ10gPSAnQXlhcmxhcic7CiRsYW5nWydmaWVsZF9yZXF1aXJlbWVudF91cGRhdGVkJ10gPSAnRmllbGQgcmVxdWlyZWQgc3RhdGUgdXBkYXRlZC4nOwokbGFuZ1snbWF4aW11bV9zaXplJ10gPSAnTWF4LiBTaXplJzsKJGxhbmdbJ3Blcm1pdHRlZF9leHRlbnNpb25zJ10gPSAnRXh0ZW5zaW9ucyc7CiRsYW5nWydwZXJtaXR0ZWRfZmlsZXR5cGVzJ10gPSAnxLB6aW4gdmVyaWxlbiBkb3N5YSB0aXBsZXJpJzsKJGxhbmdbJ2ZpbGVfdG9vX2xhcmdlJ10gPSAnVXBsb2FkZWQgZmlsZSBpcyB0b28gbGFyZ2UhIE1heGltdW0gc2l6ZSBpczonOwokbGFuZ1snaWxsZWdhbF9maWxlX3R5cGUnXSA9ICdUaGlzIHR5cGUgb2YgZmlsZSBtYXkgbm90IGJlIHVwbG9hZGVkLiBQbGVhc2UgY2hlY2sgdGhhdCB0aGUgZXh0ZW5zaW9uIGlzIGNvcnJlY3QuJzsKJGxhbmdbJ3VwbG9hZCddID0gJ1kmdXVtbDtrbGUnOwokbGFuZ1snZm9ybV9pbXBvcnRlZCddID0gJ0Zvcm0gSW1wb3J0ZWQuJzsKJGxhbmdbJ2Zvcm1faW1wb3J0X2ZhaWxlZCddID0gJ0Zvcm0gaW1wb3J0IGZhaWxlZCEgVGhlcmUgd2FzIGEgcHJvYmxlbSB3aXRoIHRoZSBmb3JtYXQgb2YgdGhlIFhNTCBmaWxlLic7CiRsYW5nWydyb3dzJ10gPSAnJXMgcm93cyc7CiRsYW5nWydjb2xzJ10gPSAnJXMgY29scyc7CiRsYW5nWycxMl9ob3VyJ10gPSAnMTIgU2FhdCc7CiRsYW5nWycyNF9ob3VyJ10gPSAnMjQgU2FhdCc7CiRsYW5nWydob3VyJ10gPSAnU2FhdCc7CiRsYW5nWydtaW4nXSA9ICdEYWtpa2EnOwokbGFuZ1snbWVyaWQnXSA9ICdNZXJpZGlhbic7CiRsYW5nWydkYXRlX3JhbmdlJ10gPSAnUmFuZ2U6ICVzIC0gJXMnOwokbGFuZ1sndGhhbmtzJ10gPSAnVGhhbmtzISBZb3VyIHN1Ym1pc3Npb25zIGhhdmUgYmVlbiByZWNlaXZlZC4nOwokbGFuZ1snZWRpdCddID0gJ0QmdXVtbDt6ZW5sZSc7CiRsYW5nWydkZWxldGUnXSA9ICdTaWwnOwokbGFuZ1snZGF5J10gPSAnRyZ1dW1sO24nOwokbGFuZ1snbW9uJ10gPSAnQXknOwokbGFuZ1sneWVhciddID0gJ3nEsWwnOwokbGFuZ1snbm9uZSddID0gJyh5b2spJzsKJGxhbmdbJ2NzcyddID0gJ0NTUyc7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZCZ1dW1sO2wga2FsZMSxcsSxbGTEsS4nOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnTW9kdWxlIHZlcnNpb24gJXMgaW5zdGFsbGVkLic7CiRsYW5nWyd1cGdyYWRlZCddID0gJ01vZHVsZSB1cGdyYWRlZCB0byB2ZXJzaW9uICVzLic7CiRsYW5nWydidXR0b25fcHJldmlvdXMnXSA9ICdHZXJpLi4uJzsKJGxhbmdbJ2J1dHRvbl9zdWJtaXQnXSA9ICdHJm91bWw7bmRlcic7CiRsYW5nWydidXR0b25fY29udGludWUnXSA9ICdEZXZhbS4uLic7CiRsYW5nWyd2YWx1ZV9jaGVja2VkJ10gPSAnU2UmY2NlZGlsO2lsaSc7CiRsYW5nWyd2YWx1ZV91bmNoZWNrZWQnXSA9ICdTZSZjY2VkaWw7aWxpIERlxJ9pbCc7CiRsYW5nWyd0YWJfbWFpbiddID0gJ01haW4nOwokbGFuZ1sndGFiX3N5bWJvbCddID0gJ0Zvcm0gRyZvdW1sO3ImdXVtbDtuJnV1bWw7bSBBeWFybGFyxLEnOwokbGFuZ1sndGFiX3N1Ym1pdCddID0gJ0Zvcm0gU3VibWlzc2lvbic7CiRsYW5nWyd0YWJfY2FwdGNoYSddID0gJ0NhcHRjaGEgQXlhcmxhcsSxJzsKJGxhbmdbJ3RhYl9hZHZhbmNlZCddID0gJ0dlbGnFn21pxZ8gQXlhcmxhcic7CiRsYW5nWyd0YWJfdGVtcGxhdGVsYXlvdXQnXSA9ICdGb3JtIMWeYWJsb251JzsKJGxhbmdbJ3RhYl9zdWJtaXNzaW9udGVtcGxhdGUnXSA9ICdTdWJtaXNzaW9uIFRlbXBsYXRlJzsKJGxhbmdbJ3RhYl91ZHQnXSA9ICdVRFQgRW50ZWdyYXN5b251JzsKJGxhbmdbJ2NhbnVzZV9zbWFydHknXSA9ICc8ZW0+U21hcnR5IHZhcmlhYmxlcyBhcmUgdmFsaWQgaW4gdGhpcyBmaWVsZC48L2VtPic7CiRsYW5nWydhZGRfb3B0aW9ucyddID0gJ0FkZCBNb3JlIE9wdGlvbnMnOwokbGFuZ1snZGVsZXRlX29wdGlvbnMnXSA9ICdEZWxldGUgTWFya2VkIE9wdGlvbnMnOwokbGFuZ1snYWRkX2NoZWNrYm94ZXMnXSA9ICdBZGQgTW9yZSBDaGVja2JveGVzJzsKJGxhbmdbJ2RlbGV0ZV9jaGVja2JveGVzJ10gPSAnRGVsZXRlIE1hcmtlZCBDaGVja2JveGVzJzsKJGxhbmdbJ2FkZF9hZGRyZXNzJ10gPSAnQWRkIEFub3RoZXIgQWRkcmVzcyc7CiRsYW5nWydkZWxldGVfYWRkcmVzcyddID0gJ0RlbGV0ZSBNYXJrZWQgQWRkcmVzc2VzJzsKJGxhbmdbJ2FkZF9kZXN0aW5hdGlvbiddID0gJ0FkZCBBbm90aGVyIERlc3RpbmF0aW9uJzsKJGxhbmdbJ2RlbGV0ZV9kZXN0aW5hdGlvbiddID0gJ0RlbGV0ZSBNYXJrZWQgRGVzdGluYXRpb25zJzsKJGxhbmdbJ3N1c3BlY3RlZF9zcGFtJ10gPSAnVG9vIG1hbnkgZW1haWxzIGdlbmVyYXRlZCBmcm9tIHlvdXIgSVAgYWRkcmVzcy4gQW50aS1TcGFtIGNvZGUgaGFzIHByZXZlbnRlZCBkZWxpdmVyeS4nOwokbGFuZ1snc3VzcGVjdGVkX3NwYW1fbG9nJ10gPSAnU3VzcGVjdGVkIHNwYW0gZnJvbSBJUCAlcyBzdG9wcGVkLic7CiRsYW5nWydyZW9yZGVyJ10gPSAnUmVvcmRlciBGaWVsZHMnOwokbGFuZ1snY2FuY2VsJ10gPSAnxLBwdGFsJzsKJGxhbmdbJ3ZhbHVlX3NldCddID0gJ1ZhbHVlIHNldDogJXMnOwokbGFuZ1snaGVscF9jYXRhbG9nZXJfYXR0cmlidXRlX2ZpZWxkcyddID0gJ0JlbG93IGlzIGEgbGlzdCBvZiB0aGUgYXR0cmlidXRlcyBhdmFpbGFibGUgZnJvbSB0aGUgQ2F0YWxvZ2VyIG1vZHVsZS48YnIvPllvdSBjYW4gb3B0aW9uYWxseSBzcGVjaWZ5IHZhbGlkIHJhbmdlcywgdmFsdWVzLCBvciBudW1lcm91cyB2YWx1ZXMgdG8gYmUgdXNlZCBpbiBmaWx0ZXJpbmcgdGhlIGxpc3Qgb2YgaXRlbXMgdGhhdCBpcyBkaXNwbGF5ZWQgdG8gdGhlIHVzZXIuPGJyLz4NCjxici8+DQo8c3Ryb25nPlJhbmdlczo8L3N0cm9uZz48YnIvPg0KUmFuZ2VzIGNhbiBiZSBzcGVjaWZpZWQgYnkgc2lnbmlmeWluZyBhIG1pbmltdW0gYW5kIG1heGltdW0gdmFsdWUgdXNpbmcgdGhpcyBzeW50YXg6ICZxdW90O3JhbmdlOiBtaW52YWx1ZSB0byBtYXh2YWx1ZSZxdW90Ozxici8+DQo8YnIvPg0KPHN0cm9uZz5NdWx0aXBsZSBWYWx1ZXM6PC9zdHJvbmc+PGJyLz4NClRvIHNwZWNpZnkgbXVsdGlwbGUgdmFsdWVzIGZvciBhbiBhdHRyaWJ1dGUgdXNlIHRoZSBzeW50YXggJnF1b3Q7bXVsdGk6IHZhbHVlMXx2YWx1ZTJ8dmFsdWUzJnF1b3Q7PGJyLz4NCjxici8+DQo8c3Ryb25nPlZhbHVlcyBmcm9tIGhpZGRlbiBmaWVsZHM8L3N0cm9uZz48YnIvPg0KVG8gc3BlY2lmeSBhIHZhbHVlIGZyb20gYSBoaWRkZW4gZmllbGQgdXNlIHRoZSBzeW50YXggeyRmbGRfaWR9PGJyLz4NCjxici8+JzsKJGxhbmdbJ2hlbHBfbmFtZV9yZWdleCddID0gJ0EgcmVndWxhciBleHByZXNzaW9uIHRvIGFsbG93IGZpbHRlcmluZyBjYXRhbG9nZXIgaXRlbXMgYnkgbmFtZSc7CiRsYW5nWydoZWxwX2ZpZWxkX2hlaWdodCddID0gJ1RoZSBoZWlnaHQgb2YgdGhlIG11bHRpc2VsZWN0IGZpZWxkJzsKJGxhbmdbJ3RpdGxlX25hbWVfcmVnZXgnXSA9ICdDYXRhbG9nZXIgSXRlbSBOYW1lIFJlZ3VsYXIgRXhwcmVzc2lvbic7CiRsYW5nWyd0aXRsZV9maWVsZF9oZWlnaHQnXSA9ICdGaWVsZCBIZWlnaHQnOwokbGFuZ1sndGl0bGVfZmlsZV9wYXRoJ10gPSAnRGVzdGluYXRpb24gRGlyZWN0b3J5IGZvciBvdXRwdXQgZmlsZXMnOwokbGFuZ1sndGl0bGVfdWR0X25hbWUnXSA9ICdVc2VyIERlZmluZWQgVGFnJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZHNfZGVzdHBhZ2UnXSA9ICdQYWdlIHRvIHJldHVybiB0byB3aXRoIHVwbG9hZHMgbGluayc7CiRsYW5nWyd0aXRsZV91cGxvYWRtb2R1bGVfc3VtbWFyeSddID0gJ1N1Ym1pdHRlZCB3aXRoIGZvcm1idWlsZGVyJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZHNfY2F0ZWdvcnknXSA9ICdVcGxvYWRzIGNhdGVnb3J5JzsKJGxhbmdbJ3RpdGxlX3NlbmR0b191cGxvYWRzJ10gPSAnU2VuZCB0aGlzIGZpbGUgdG8gdGhlIHVwbG9hZHMgbW9kdWxlJzsKJGxhbmdbJ3RpdGxlX2xlZ2VuZCddID0gJ0xlZ2VuZCc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX2xlbmd0aCddID0gJ01heGltdW0gTGVuZ3RoJzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2xhYmVsJ10gPSAnQ2hlY2tib3ggbGFiZWwnOwokbGFuZ1sndGl0bGVfcmFkaW9fbGFiZWwnXSA9ICdSYWRpbyBCdXR0b24gbGFiZWwnOwokbGFuZ1sndGl0bGVfY2hlY2tlZF92YWx1ZSddID0gJ1ZhbHVlIHdoZW4gY2hlY2tlZCc7CiRsYW5nWyd0aXRsZV91bmNoZWNrZWRfdmFsdWUnXSA9ICdWYWx1ZSB3aGVuIG5vdCBjaGVja2VkLic7CiRsYW5nWyd0aXRsZV9jaGVja2JveF9kZXRhaWxzJ10gPSAnQ2hlY2tib3ggR3JvdXAgRGV0YWlscyc7CiRsYW5nWyd0aXRsZV9kZWxldGUnXSA9ICdTaWw/JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9vbmVfbWVzc2FnZSddID0gJyZxdW90O1NlbGVjdCBPbmUmcXVvdDsgVGV4dCc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fdmFsdWUnXSA9ICdTZWxlY3Rpb24gVmFsdWUnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX2Rpc3BsYXluYW1lJ10gPSAnU2VsZWN0aW9uIERpc3BsYXkgTmFtZSc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fc3ViamVjdCddID0gJ1NlbGVjdGlvbiBTdWJqZWN0JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X2NvdW50cnknXSA9ICdEZWZhdWx0IFNlbGVjdGlvbic7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9zdGF0ZSddID0gJ0RlZmF1bHQgU2VsZWN0aW9uJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X3Byb3ZpbmNlJ10gPSAnRGVmYXVsdCBTZWxlY3Rpb24nOwokbGFuZ1sndGl0bGVfb3B0aW9uX25hbWUnXSA9ICdPcHRpb24gTmFtZSc7CiRsYW5nWyd0aXRsZV9vcHRpb25fdmFsdWUnXSA9ICdWYWx1ZSBTdWJtaXR0ZWQnOwokbGFuZ1sndGl0bGVfcHVsbGRvd25fZGV0YWlscyddID0gJ1B1bGxkb3duIE9wdGlvbnMnOwokbGFuZ1sndGl0bGVfbXVsdGlzZWxlY3RfZGV0YWlscyddID0gJ011bHRpc2VsZWN0IE9wdGlvbnMnOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fYWRkcmVzcyddID0gJ0Rlc3RpbmF0aW9uIEVtYWlsIEFkZHJlc3MnOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fZmlsZW5hbWUnXSA9ICdEZXN0aW5hdGlvbiBGaWxlIE5hbWUnOwokbGFuZ1sndGl0bGVfZW1haWxfZnJvbV9uYW1lJ10gPSAnJnF1b3Q7RnJvbSBuYW1lJnF1b3Q7IGZvciBlbWFpbCc7CiRsYW5nWyd0aXRsZV9yZWxheGVkX2VtYWlsX3JlZ2V4J10gPSAnVXNlIHJlbGF4ZWQgZW1haWwgdmFsaWRhdGlvbic7CiRsYW5nWyd0aXRsZV9yZWxheGVkX3JlZ2V4X2xvbmcnXSA9ICdVc2UgcmVsYXhlZCBlbWFpbCBhZGRyZXNzIHZhbGlkYXRpb24gKGUuZy4sIGFsbG93ICZxdW90O3hAeSZxdW90OyBpbnN0ZWFkIG9mIHJlcXVpcmluZyAmcXVvdDt4QHkudGxkJnF1b3Q7KSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9mcm9tX2FkZHJlc3MnXSA9ICcmcXVvdDtGcm9tIGFkZHJlc3MmcXVvdDsgZm9yIGVtYWlsJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2VuY29kaW5nJ10gPSAnRW1haWwgY2hhcmFjdGVyIHNldCBlbmNvZGluZyc7CiRsYW5nWyd0aXRsZV9kaXJlY3Rvcl9kZXRhaWxzJ10gPSAnUHVsbGRvd24tYmFzZWQgRW1haWxlciBEZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfbmFtZSddID0gJ0Rvc3lhIEFkxLEnOwokbGFuZ1sndGl0bGVfZW1haWxfc3ViamVjdCddID0gJ0VtYWlsIEtvbnUgQWxhbsSxJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmFtZSddID0gJ0Zvcm0gQWTEsSc7CiRsYW5nWyd0aXRsZV9mb3JtX3N0YXR1cyddID0gJ0Zvcm0gU3RhdCZ1dW1sO3MmdXVtbDsnOwokbGFuZ1sndGl0bGVfcmVhZHlfZm9yX2RlcGxveW1lbnQnXSA9ICdSZWFkeSBmb3IgRGVwbG95bWVudCc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkxJ10gPSAnSGF6xLFyIERlxJ9pbCc7CiRsYW5nWyd0aXRsZV9yZWRpcmVjdF9wYWdlJ10gPSAnUGFnZSB0byByZWRpcmVjdCB0byBhZnRlciBmb3JtIHN1Ym1pc3Npb24nOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MiddID0gJ1BsZWFzZSBhZGQgYSBmaWVsZCB0byB0aGUgZm9ybSBzbyB0aGF0IHRoZSB1c2VyJiMwMzk7cyBpbnB1dCBnZXRzIGhhbmRsZWQuIFlvdSBjYW4nOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5X2xpbmsnXSA9ICd1c2UgdGhpcyBzaG9ydGN1dCc7CiRsYW5nWyd0aXRsZV9mb3JtX2FsaWFzJ10gPSAnRm9ybSBBbGlhcyc7CiRsYW5nWyd0aXRsZV9maWVsZF9hbGlhc19zaG9ydCddID0gJ0FsaWFzJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fZmllbGRzJ10gPSAnRm9ybSBBbGFubGFyxLEnOwokbGFuZ1sndGl0bGVfZmllbGRfaWQnXSA9ICdGaWVsZCBJZCc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkYWxpYXNlcyddID0gJ1Nob3cgRmllbGQgQWxpYXNlcyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkYWxpYXNlc19sb25nJ10gPSAnQ2xpY2tpbmcgdGhpcyB3aWxsIGRpc3BsYXkgZmllbGQgYWxpYXNlcyB3aGVuIGFkZGluZyBvciBlZGl0aW5nIGEgZm9ybSc7CiRsYW5nWyd0aXRsZV9maWVsZF9uYW1lJ10gPSAnRmllbGQgTmFtZSc7CiRsYW5nWyd0aXRsZV9maWVsZF9hbGlhcyddID0gJ0ZpZWxkIEFsaWFzIGFuZCBET00gaWQgKENTUyBpZCkgYXR0cmlidXRlJzsKJGxhbmdbJ3RpdGxlX3JhZGlvZ3JvdXBfZGV0YWlscyddID0gJ1JhZGlvIEJ1dHRvbiBHcm91cCBEZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3R5cGUnXSA9ICdGaWVsZCBUeXBlJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTMnXSA9ICd0byBjcmVhdGUgYSBmb3JtIGhhbmRsaW5nIGZpZWxkLic7CiRsYW5nWyd0aXRsZV9hZGRfbmV3X2Zvcm0nXSA9ICdZZW5pIEZvcm0gRWtsZSc7CiRsYW5nWyd0aXRsZV9zaG93X3ZlcnNpb24nXSA9ICdTaG93IEZvcm0gQnVpbGRlciBWZXJzaW9uPyc7CiRsYW5nWyd0aXRsZV9zaG93X3ZlcnNpb25fbG9uZyddID0gJ1RoaXMgd2lsbCBlbWJlZCB5b3VyIGluc3RhbGxlZCB2ZXJzaW9uIG51bWJlciBvZiBGb3JtIEJ1aWxkZXIgbW9kdWxlIGluIGEgY29tbWVudCwgdG8gYWlkIGluIGRlYnVnZ2luZyc7CiRsYW5nWyd0aXRsZV9hZGRfbmV3X2ZpZWxkJ10gPSAnQWRkIE5ldyBGaWVsZCc7CiRsYW5nWyd0aXRsZV9mb3JtX3N1Ym1pdF9idXR0b24nXSA9ICdGb3JtIFN1Ym1pdCBCdXR0b24gVGV4dCc7CiRsYW5nWyd0aXRsZV9idXR0b25fdGV4dCddID0gJ0J1dHRvbiB0ZXh0JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5J10gPSAnQWRkIEphdmFzY3JpcHQgdG8gZmluYWwgU3VibWl0IEJ1dHRvbiB0aGF0IHdpbGwgaGVscCBwcmV2ZW50IG11bHRpcGxlIHN1Ym1pc3Npb25zPyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eV9oZWxwJ10gPSAnQWRkIHNhZmV0eSBzY3JpcHQnOwokbGFuZ1sndGl0bGVfZm9ybV9uZXh0X2J1dHRvbiddID0gJ0Zvcm0gJnF1b3Q7TmV4dCZxdW90OyBCdXR0b24gVGV4dCAodXNlZCBmb3IgbXVsdGlwYWdlIGZvcm1zKSc7CiRsYW5nWyd0aXRsZV9mb3JtX3ByZXZfYnV0dG9uJ10gPSAnRm9ybSAmcXVvdDtQcmV2aW91cyZxdW90OyBCdXR0b24gVGV4dCAodXNlZCBmb3IgbXVsdGlwYWdlIGZvcm1zKSc7CiRsYW5nWyd0aXRsZV9maWVsZF92YWxpZGF0aW9uJ10gPSAnRmllbGQgVmFsaWRhdGlvbic7CiRsYW5nWyd0aXRsZV9maWVsZF90b192YWxpZGF0ZSddID0gJ0ZpZWxkIHRvIFZhbGlkYXRlJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2Nzc19pZCddID0gJ0NTUyBpZCBmb3IgdGhpcyBmaWVsZCc7CiRsYW5nWyd0aXRsZV9mb3JtX2Nzc19jbGFzcyddID0gJ0NTUyBDbGFzcyBmb3IgdGhpcyBmb3JtJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2Nzc19jbGFzcyddID0gJ0NTUyBDbGFzcyBmb3IgdGhpcyBmaWVsZCc7CiRsYW5nWyd0aXRsZV9mb3JtX3ByZWRpc3BsYXlfdWR0J10gPSAnVXNlciBkZWZpbmVkIHRhZyB0byBjYWxsIGJlZm9yZSBmb3JtIGlzIGRpc3BsYXllZCB0aGUgZmlyc3QgdGltZSAob25seSBjYWxsZWQgb25jZSknOwokbGFuZ1sndGl0bGVfZm9ybV9wcmVkaXNwbGF5X2VhY2hfdWR0J10gPSAnVXNlciBkZWZpbmVkIHRhZyB0byBjYWxsIGJlZm9yZSBmb3JtIGlzIGRpc3BsYXllZCAoY2FsbGVkIG9uIGV2ZXJ5IHBhZ2Ugb2YgbXVsdGlwYWdlIGZvcm1zKSc7CiRsYW5nWyd0aXRsZV9mb3JtX3ZhbGlkYXRlX3VkdCddID0gJ1VzZXIgZGVmaW5lZCB0YWcgdG8gY2FsbCBkdXJpbmcgZm9ybSB2YWxpZGF0aW9uJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcmVxdWlyZWRfc3ltYm9sJ10gPSAnU3ltYm9sIHRvIG1hcmsgcmVxdWlyZWQgRmllbGRzJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkJ10gPSAnWm9ydW5sdSc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9sb25nJ10gPSAnUmVxdWlyZSBhIHJlc3BvbnNlIGZvciB0aGlzIEZpZWxkJzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWwnXSA9ICdIaWRlIExhYmVsJzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWxfbG9uZyddID0gJ0hpZGUgdGhpcyBmaWVsZCYjMDM5O3MgbmFtZSBvbiBGb3JtJzsKJGxhbmdbJ3RpdGxlX3RleHRhcmVhX2xlbmd0aCddID0gJ01heGltdW0gbGVuZ3RoIG9mIGZpZWxkIGNvbnRlbnQgKDAgb3IgYmxhbmsgbWVhbnMgbm8gbGltaXQpJzsKJGxhbmdbJ3RpdGxlX3RleHQnXSA9ICdTdGF0aWMgdGV4dCB0byBkaXNwbGF5JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlZ2V4J10gPSAnVmFsaWRhdGlvbiBSZWdleCc7CiRsYW5nWyd0aXRsZV9saW5lc190b19zaG93J10gPSAnTnVtYmVyIG9mIExpbmVzIHRvIGRpc3BsYXknOwokbGFuZ1sndGl0bGVfcmVhZF9vbmx5J10gPSAnU2FsdCBPa3VudXInOwokbGFuZ1snbm9fZGVmYXVsdCddID0gJ05vIERlZmF1bHQnOwokbGFuZ1sncmVkaXJlY3RfYWZ0ZXJfYXBwcm92YWwnXSA9ICdQYWdlIHRvIHJlZGlyZWN0IGFmdGVyIGFwcHJvdmFsJzsKJGxhbmdbJ3RpdGxlX3JlZ2V4X2hlbHAnXSA9ICdUaGlzIHJlZ3VsYXIgZXhwcmVzc2lvbiB3aWxsIG9ubHkgYmUgdXNlZCBpZiAmcXVvdDt2YWxpZGF0aW9uIHR5cGUmcXVvdDsgaXMgc2V0IHRvIGEgcmVnZXgtcmVsYXRlZCBvcHRpb24uIEluY2x1ZGUgYSBmdWxsIFBlcmwtc3R5bGUgcmVnZXgsIGluY2x1ZGluZyB0aGUgc3RhcnQvc3RvcCBzbGFzaGVzIGFuZCBmbGFncyAoZS5nLiwgJnF1b3Q7L2ltYWdlXC4oXGQrKS9pJnF1b3Q7KSc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9hYmJyZXYnXSA9ICdSZXEmIzAzOTtkJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzJ10gPSAnSGF0YWxhcsSxIEdpemxlJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fZGlzcGxheXR5cGUnXSA9ICdGb3JtIERpc3BsYXkgVHlwZSc7CiRsYW5nWyd0aXRsZV9oaWRlX2Vycm9yc19sb25nJ10gPSAnUHJldmVudCBkZWJ1ZyAvIGVycm9yIG1lc3NhZ2VzIGZyb20gYmVpbmcgc2VlbiBieSB1c2Vycy4nOwokbGFuZ1sndGl0bGVfZW1haWxfdGVtcGxhdGUnXSA9ICdFbWFpbCDFnmFibG9udSc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX3NpemUnXSA9ICdNYXhpbXVtIHVwbG9hZCBmaWxlIHNpemUgKGtpbG9ieXRlcyknOwokbGFuZ1sndGl0bGVfbWF4aW11bV9zaXplX2xvbmcnXSA9ICdUaGlzIGxpbWl0YXRpb24gaXMgaW4gYWRkaXRpb24gdG8gYW55IGxpbWl0cyBzZXQgYnkgdGhlIHBocCBvciB3ZWIgc2VydmVyIGNvbmZpZ3VyYXRpb24nOwokbGFuZ1sndGl0bGVfZmlsZV9kZXN0aW5hdGlvbiddID0gJ0RpcmVjdG9yeSB0byBzYXZlIGZpbGVzIGludG8nOwokbGFuZ1sndGl0bGVfcGVybWl0dGVkX2V4dGVuc2lvbnMnXSA9ICdQZXJtaXR0ZWQgRXh0ZW5zaW9ucyc7CiRsYW5nWyd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9uc19sb25nJ10gPSAnRW50ZXIgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCwgZXhjbHVkaW5nIHRoZSBkb3QgKGUuZy4sICZxdW90O2pwZyxnaWYsanBlZyZxdW90OykuIFNwYWNlcyB3aWxsIGJlIGlnbm9yZWQuIExlYXZpbmcgdGhpcyBibGFuayBtZWFucyB0aGVyZSB3aWxsIGJlIG5vIHJlc3RyaWN0aW9ucy4nOwokbGFuZ1sndGl0bGVfc2hvd19saW1pdGF0aW9ucyddID0gJ0Rpc3BsYXkgcmVzdHJpY3Rpb25zPyc7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zX2xvbmcnXSA9ICdEaXNwbGF5IGFueSBzaXplIGFuZCBleHRlbnNpb24gcmVzdHJpY3Rpb25zIHdpdGggdGhlIHVwbG9hZCBmaWVsZD8nOwokbGFuZ1sndGl0bGVfZm9ybV90ZW1wbGF0ZSddID0gJ1RlbXBsYXRlIHRvIHVzZSB0byBEaXNwbGF5IEZvcm0nOwokbGFuZ1sndGl0bGVfcGFnZV94X29mX3knXSA9ICdQYWdlICVzIG9mICVzJzsKJGxhbmdbJ3RpdGxlX25vX2FkdmFuY2VkX29wdGlvbnMnXSA9ICdGaWVsZCBoYXMgbm8gYWR2YW5jZWQgb3B0aW9ucy4nOwokbGFuZ1sndGl0bGVfZm9ybV91bnNwZWNpZmllZCddID0gJ1RleHQgdG8gcmV0dXJuIGZvciB1bnNwZWNpZmllZCBmaWVsZCB2YWx1ZXMnOwokbGFuZ1sndGl0bGVfZW5hYmxlX2Zhc3RhZGRfbG9uZyddID0gJ0VuYWJsZSBmYXN0IGZpZWxkIGFkZGluZyBwdWxsZG93biBmb3IgZm9ybXM/JzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9mYXN0YWRkJ10gPSAnRW5hYmxlIGZhc3QgZmllbGQgYWRkIHB1bGxkb3duPyc7CiRsYW5nWyd0aXRsZV9mYXN0YWRkJ10gPSAnSMSxemzEsSBBbGFuIEVrbGV5aWNpJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9hbnRpc3BhbV9sb25nJ10gPSAnQ2xpY2tpbmcgdGhpcyB3aWxsIG9ubHkgYWxsb3cgMTAgZW1haWxzIHRvIGJlIHRyaWdnZXJlZCBmcm9tIGEgZ2l2ZW4gSVAgYWRkcmVzcyAocGVyIGhvdXIpLic7CiRsYW5nWyd0aXRsZV9lbmFibGVfYW50aXNwYW0nXSA9ICdFbmFibGUgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcz8nOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGlkcyddID0gJ1Nob3cgRmllbGQgSURzJzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRpZHNfbG9uZyddID0gJ0NsaWNraW5nIHRoaXMgd2lsbCBhbGxvdyBkaXNwbGF5aW5nIGZpZWxkIGlkcyB3aGVuIGFkZGluZyBvciBlZGl0aW5nIGEgZm9ybSc7CiRsYW5nWyd0aXRsZV94bWxfdG9fdXBsb2FkJ10gPSAnVXBsb2FkIGZvcm0gZnJvbSBYTUwgZmlsZSc7CiRsYW5nWyd0aXRsZV94bWxfdXBsb2FkX2Zvcm1uYW1lJ10gPSAnVXNlIHRoaXMgZm9ybSBuYW1lJzsKJGxhbmdbJ3RpdGxlX2ltcG9ydF9sZWdlbmQnXSA9ICdYTUwgRm9ybSBJbXBvcnQnOwokbGFuZ1sndGl0bGVfeG1sX3VwbG9hZF9mb3JtYWxpYXMnXSA9ICdVc2UgdGhpcyBmb3JtIGFsaWFzJzsKJGxhbmdbJ3RpdGxlX2h0bWxfZW1haWwnXSA9ICdHZW5lcmF0ZSBIVE1MIGVtYWlsPyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZSddID0gJ0F1dG9tYXRpY2FsbHkgcG9wdWxhdGU/JzsKJGxhbmdbJ3RpdGxlX2xpbmtfYXV0b3BvcHVsYXRlX2hlbHAnXSA9ICdBdXRvbWF0aWNhbGx5IHBvcHVsYXRlIHdpdGggdGhlIFVSTCBvZiB0aGUgcGFnZSBjb250YWluaW5nIHRoZSBmb3JtPyAodGhpcyBvdmVycmlkZXMgc2l0ZSBwYWdlIGxpbmsgb3B0aW9uIGJlbG93KSc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2xpbmsnXSA9ICdEZWZhdWx0IGxpbmsgVVJMJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfbGlua190aXRsZSddID0gJ0RlZmF1bHQgbGluayB0ZXh0JzsKJGxhbmdbJ3RpdGxlX2xpbmtfdG9fc2l0ZXBhZ2UnXSA9ICdMaW5rIHRvIHNpdGUgcGFnZSc7CiRsYW5nWyd0aXRsZV9jYXB0Y2hhX25vdF9pbnN0YWxsZWQnXSA9ICdZb3UgY2FuIHVzZSA8YSBocmVmPSJodHRwOi8vd3d3Lndpa2lwZWRpYS5vcmcvd2lraS9DYXB0Y2hhIiB0YXJnZXQ9Il9uZXciPiZxdW90O0NhcHRjaGEmcXVvdDs8L2E+IHRvIHByb3RlY3QgZm9ybSBzdWJtaXNzaW9ucyBpZiB5b3UgaW5zdGFsbCB0aGUgQ2FwdGNoYSBtb2R1bGUuIEZvciBtb3JlIGluZm9ybWF0aW9uLCA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2NhcHRjaGEvIj5jaGVjayB0aGUgQ2FwdGNoYSBwcm9qZWN0PC9hPi4nOwokbGFuZ1sndGl0bGVfdXNlX2NhcHRjaGEnXSA9ICdVc2UgQ2FwdGNoYSB0byBwcm90ZWN0IGZvcm0gc3VibWlzc2lvbnM/JzsKJGxhbmdbJ3RpdGxlX3VzZV9jYXB0Y2hhX2hlbHAnXSA9ICdDaGVjayBoZXJlIHRvIHByb3RlY3QgeW91ciBmb3JtIHdpdGggYSA8YSBocmVmPSJodHRwOi8vd3d3Lndpa2lwZWRpYS5vcmcvd2lraS9DYXB0Y2hhIiB0YXJnZXQ9Il9uZXciPiZxdW90O0NhcHRjaGEmcXVvdDs8L2E+Lic7CiRsYW5nWyd0aXRsZV91c2VyX2NhcHRjaGEnXSA9ICdQbGVhc2UgY29uZmlybSB0aGF0IHlvdSBhcmUgbm90IGEgc2NyaXB0IGJ5IGVudGVyaW5nIHRoZSBsZXR0ZXJzIGZyb20gdGhlIGltYWdlLic7CiRsYW5nWyd0aXRsZV91c2VyX2NhcHRjaGFfZXJyb3InXSA9ICdGYWlsZWQgdGV4dCBmb3IgQ2FwdGNoYSc7CiRsYW5nWyd3cm9uZ19jYXB0Y2hhJ10gPSAnQ2FwdGNoYSB3YXMgbm90IGNvcnJlY3QuJzsKJGxhbmdbJ3RpdGxlX3RpdGxlX3VzZXJfY2FwdGNoYSddID0gJ0hlbHAgdGV4dCBmb3IgQ2FwdGNoYSc7CiRsYW5nWyd0aXRsZV9kb250X3N1Ym1pdF91bmNoZWNrZWQnXSA9ICdEb24mIzAzOTt0IHN1Ym1pdCB2YWx1ZXMgZm9yIHVuY2hlY2tlZCBib3hlcyc7CiRsYW5nWyd0aXRsZV9kb250X3N1Ym1pdF91bmNoZWNrZWRfaGVscCddID0gJ0NoZWNrIHRoaXMgaWYgeW91IG9ubHkgd2FudCBjaGVja2VkIGJveGVzIHRvIHJldHVybiB2YWx1ZXMuJzsKJGxhbmdbJ2xpbmtfbGFiZWwnXSA9ICdMaW5rIExhYmVsJzsKJGxhbmdbJ2xpbmtfZGVzdGluYXRpb24nXSA9ICdMaW5rIERlc3RpbmF0aW9uIFVSTCc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3NldCddID0gJ0NoZWNrZWQgYnkgRGVmYXVsdD8nOwokbGFuZ1sndGl0bGVfMjRfaG91ciddID0gJ1VzZSAyNC1ob3VyIGNsb2NrPyc7CiRsYW5nWyd0aXRsZV9iZWZvcmVfbm9vbiddID0gJ0FNJzsKJGxhbmdbJ3RpdGxlX2FmdGVyX25vb24nXSA9ICdQTSc7CiRsYW5nWyd0aXRsZV9zbWFydHlfZXZhbCddID0gJ1Byb2Nlc3Mgc21hcnR5IHRhZ3Mgd2l0aGluIGZpZWxkPyc7CiRsYW5nWyd0aXRsZV90ZXh0YXJlYV9yb3dzJ10gPSAnUm93cyAobm90ZTogdGhpcyBtYXkgYmUgb3ZlcnJpZGRlbiBieSBDU1MpJzsKJGxhbmdbJ3RpdGxlX3RleHRhcmVhX2NvbHMnXSA9ICdDb2x1bW5zIChub3RlOiB0aGlzIG1heSBiZSBvdmVycmlkZGVuIGJ5IENTUyknOwokbGFuZ1sndGl0bGVfZm9ybV9tYWluJ10gPSAnTWFpbiBGb3JtIERldGFpbHMnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9ibGFuayddID0gJ0RlZmF1bHQgdG8gYmxhbmsnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9ibGFua19oZWxwJ10gPSAnRGVmYXVsdCB0byBibGFuayAodW5jaGVjayB0byBkZWZhdWx0IHRvIHRvZGF5JiMwMzk7cyBkYXRlKSc7CiRsYW5nWyd0aXRsZV9zaG93X3VzZXJuYW1lJ10gPSAnRGlzcGxheSBVc2VyJiMwMzk7cyBsb2dpbiBuYW1lPyc7CiRsYW5nWyd0aXRsZV9zaG93X3VzZXJmaXJzdG5hbWUnXSA9ICdEaXNwbGF5IFVzZXImIzAzOTtzIGZpcnN0IG5hbWU/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcmxhc3RuYW1lJ10gPSAnRGlzcGxheSBVc2VyJiMwMzk7cyBsYXN0IG5hbWU/JzsKJGxhbmdbJ3RpdGxlX3Jlc3RyaWN0X3RvX2dyb3VwJ10gPSAnUmVzdHJpY3QgdXNlciBsaXN0IHRvIHVzZXJzIGluIHNwZWNpZmllZCBncm91cCc7CiRsYW5nWyd0aXRsZV9lbmNyeXB0X2RhdGFiYXNlX2RhdGEnXSA9ICdFbmNyeXB0IGRhdGEgc3RvcmVkIGluIGRhdGFiYXNlJzsKJGxhbmdbJ3RpdGxlX2NyeXB0X2NlcnQnXSA9ICdDZXJ0aWZpY2F0ZSBmb3IgZW5jcnlwdGluZyBkYXRhJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRpb25fa2V5ZmlsZSddID0gJ1Bhc3NwaHJhc2Ugb3IgcGF0aCB0byBmaWxlIGNvbnRhaW5pbmcgcGFzc3BocmFzZS4gKElmIHVzaW5nIE9wZW5TU0wsIHRoaXMgaXMgdGhlIHBhc3NwaHJhc2UgZm9yIHRoZSBwcml2YXRlIGtleSknOwokbGFuZ1sndGl0bGVfZW5jcnlwdF9zb3J0ZmllbGRzJ10gPSAnSGFzaCBzb3J0IGZpZWxkcz8nOwokbGFuZ1sndGl0bGVfcHJpdmF0ZV9rZXknXSA9ICdQcml2YXRlIEtleSB0byB1c2UgZm9yIGVuY3J5cHRpbmcgZGF0YSc7CiRsYW5nWyd0aXRsZV9lbmNyeXB0X3NvcnRmaWVsZHNfaGVscCddID0gJ1RoaXMgaGFzaGVzIHRoZSBzb3J0IGZpZWxkcywgYnV0IGxlYXZlcyB0aGUgZmlyc3QgZmV3IGxldHRlcnMgdW5lbmNyeXB0ZWQuIENyeXB0b2dyYXBoaWNhbGx5LCB0aGlzIGNyZWF0ZXMgYSB2dWxuZXJhYmlsaXR5LCBidXQgZm9yIG1vc3QgdXNlcnMgaXQgaXMgYW4gYWNjZXB0YWJsZSB0cmFkZW9mZiBiZXR3ZWVuIHNlY3VyaXR5IGFuZCB0aGUgYWJpbGl0eSB0byBzb3J0IHJlY29yZHMuIFNvcnRpbmcgYmVjb21lcyBhcHByb3hpbWF0ZSwgYnV0IHdpbGwgcmVtYWluIHByZXR0eSBnb29kLiBJZiB5b3UgZG8gbm90IHVzZSB0aGlzIG9wdGlvbiwgc29ydCBmaWVsZHMgYXJlIHN0b3JlZCBpbiBwbGFpbnRleHQuJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRpb25fZnVuY3Rpb25zJ10gPSAnU3RvcmFnZSBFbmNyeXB0aW9uIFVuYXZhaWxhYmxlJzsKJGxhbmdbJ3RpdGxlX2luc3RhbGxfY3J5cHRvJ10gPSAnUGxlYXNlIGluc3RhbGwgdGhlIE9wZW5TU0wgbW9kdWxlIG9yIG1jcnlwdCBzdXBwb3J0IGlmIHlvdSB3b3VsZCBsaWtlIHRvIGVuYWJsZSBkYXRhYmFzZSBlbmNyeXB0aW9uLic7CiRsYW5nWyd0aXRsZV9pbnN0YWxsX2N1cmwnXSA9ICdQbGVhc2UgbWFrZSBzdXJlIHlvdSBoYXZlIENVUkwgc3VwcG9ydCBhY3RpdmUgaW4geW91ciBQSFAgaW5zdGFsbC4gU2VlIGh0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vYm9vay5jdXJsLnBocCc7CiRsYW5nWyd0aXRsZV9tbGVfdmVyc2lvbiddID0gJ1J1biBpbiBNTEUgTW9kZSc7CiRsYW5nWyd0aXRsZV9tbGVfdmVyc2lvbl9sb25nJ10gPSAnQ2hhbmdlcy9zdXBwb3J0IGZvciBDTVNNUyBNdWx0aS1MYW5ndWFnZSBFZGl0aW9uIGZvcmsuIERvIG5vdCBjaGVjayB0aGlzIGlmIHlvdSBhcmUgbm90IHJ1bm5pbmcgdGhlIE1MRSB2ZXJzaW9uLic7CiRsYW5nWyd0aXRsZV9lbnN1cmVfY2VydF9rZXlfbWF0Y2gnXSA9ICdFbnN1cmUgdGhhdCB5b3Ugc2VsZWN0IHRoZSBwcml2YXRlIGtleSB0aGF0IGlzIGFwcHJvcHJpYXRlIGZvciB0aGUgY2VydGlmaWNhdGUgeW91IGFyZSB1c2luZyBmb3IgZW5jcnlwdGlvbiEnOwokbGFuZ1snY2hvb3NlX2NyeXB0J10gPSAnRW5jcnlwdGlvbiBMaWJyYXJ5JzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRfZGF0YWJhc2VfbG9uZyddID0gJ0NoZWNrIHRoaXMgdG8gZW5jcnlwdCB0aGUgc3RvcmVkIGRhdGEuIFRoaXMgbWFrZXMgaXQgbW9yZSBkaWZmaWN1bHQgKGJ1dCBub3QgaW1wb3NzaWJsZSkgZm9yIGhhY2tlcnMgdG8gdmlldyB0aGUgaW5mb3JtYXRpb24uJzsKJGxhbmdbJ2Nob29zZV9jcnlwdF9sb25nJ10gPSAnVGhlIG9wdGlvbnMgYmVsb3cgb25seSBhcHBseSBpZiB5b3UgYXJlIHVzaW5nIHRoZSBPcGVuU1NMIEVuY3J5cHRpb24gbGlicmFyeSc7CiRsYW5nWyd0aXRsZV9jcnlwdF9saWInXSA9ICdFbmNyeXB0aW9uIExpYnJhcnknOwokbGFuZ1snb3BlbnNzbCddID0gJ09wZW5TU0wgTGlicmFyeSc7CiRsYW5nWydtY3J5cHQnXSA9ICdQSFAgbWNyeXB0IExpYnJhcnknOwokbGFuZ1sndGl0bGVfZmV1X2JpbmRpbmcnXSA9ICdGcm9udGVuZCBVc2VyIGJpbmRpbmcnOwokbGFuZ1sndGl0bGVfaW5zdGFsbF9mZXUnXSA9ICdQbGVhc2UgaW5zdGFsbCB0aGUgRnJvbnRlbmQgVXNlciBtb2R1bGUgdG8gY29ubmVjdCBhIGZvcm0gYW5kIGl0cyBkYXRhIHRvIGEgc3BlY2lmaWMgdXNlcic7CiRsYW5nWyd0aXRsZV9mZXVfYmluZF9oZWxwJ10gPSAnQ2hlY2sgdGhpcyB0byBsb2NrIGZyb250LWVuZCBhY2Nlc3MgdG8gdGhpcyBmb3JtJiMwMzk7cyBkYXRhIHRvIHRoZSBsb2dnZWQtaW4gZnJvbnQtZW5kIHVzZXIuJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRpb24nXSA9ICdFbmNyeXB0aW9uJzsKJGxhbmdbJ3RpdGxlX2V4cG9ydF9mb3JtX3RvX3VkdCddID0gJ0V4cG9ydCBmb3JtIHJlZmVyZW5jZSB0byBVRFQgYXMgJHBhcmFtc1smIzAzOTtGT1JNJiMwMzk7XT8gKGRvIG5vdCBkbyB0aGlzIGlmIHlvdSBhcmUgZ29pbmcgdG8gcHJpbnRfcigkcGFyYW1zKSApJzsKJGxhbmdbJ3RpdGxlX3VybF9oZWxwJ10gPSAnRW50aXJlIFVSTCwgaW5jbHVkaW5nIHByb3RvY29sIGFuZCBwYXRoIChlLmcuLCBodHRwOi8vbXlob3N0LmNvbS9mb3JtX2hhbmRsZXIuY2dpKSc7CiRsYW5nWyd0aXRsZV91cmwnXSA9ICdGb3JtIHN1Ym1pc3Npb24gVVJMJzsKJGxhbmdbJ3RpdGxlX21ldGhvZCddID0gJ0Zvcm0gbWV0aG9kJzsKJGxhbmdbJ3RpdGxlX21hcHNfdG8nXSA9ICdNYXAgZmllbGQgJnF1b3Q7JXMmcXVvdDsgdG8gZm9ybSBzdWJtaXNzaW9uIHZhcmlhYmxlJzsKJGxhbmdbJ3RpdGxlX2FkZGl0aW9uYWwnXSA9ICdBZGRpdGlvbmFsIHN1Ym1pc3Npb24nOwokbGFuZ1sndGl0bGVfYWRkaXRpb25hbF9oZWxwJ10gPSAnQW55dGhpbmcgdG8gYmUgYXBwZW5kZWQgdG8gdGhlIHN1Ym1pc3Npb24gcGF5bG9hZCwgaW4gVVJMLWVuY29kZWQgZm9ybSAoLmUuZywgJnF1b3Q7dXNlcj1zdGV2ZStqb2JzJmFtcDtlbXBsb3llZV9udW1iZXI9MSknOwokbGFuZ1sndGl0bGVfaW5jbHVkZV9pbl9zdWJtaXNzaW9uJ10gPSAnSW5jbHVkZSBmaWVsZCBpbiBTdWJtaXNzaW9uJzsKJGxhbmdbJ3RpdGxlX2RhdGVfb3JkZXInXSA9ICdEYXRlIGNvbXBvbmVudCBmaWVsZCBvcmRlciAoZm9yIGlucHV0KSc7CiRsYW5nWyd0aXRsZV9kYXRhX3N0b3JlZF9pbl9mYnInXSA9ICdEYXRhIHdpbGwgYmUgc3RvcmVkIGluIGFuIFhNTCBmb3JtYXQgaW4gdGhlIFtQUkVGSVhdX21vZHVsZV9mYl9mcm9tYnJvd3NlciBkYXRhYmFzZSB0YWJsZS4nOwokbGFuZ1snZXJyb3JfaGFzX25vX2ZiX2ZpZWxkJ10gPSAnRXJyb3IhIEVpdGhlciB0aGUgZm9ybSBoYXMgbm8gZm9ybV9idWlsZGVyIGRpc3Bvc2l0aW9uLCBvciBpdCBmYWlsZWQgdG8gaW5zdGFudGlhdGUgKGR1ZSB0byBtZW1vcnkgaXNzdWVzPyknOwokbGFuZ1snaGVscF9kYXRlX29yZGVyJ10gPSAnVXNlICZxdW90O20mcXVvdDsgZm9yIE1vbnRoLCAmcXVvdDtkJnF1b3Q7IGZvciBEYXksIGFuZCAmcXVvdDt5JnF1b3Q7IGZvciBZZWFyLiBTZXBhcmF0ZSB0aGUgaXRlbXMgYnkgaHlwaGVucy4nOwokbGFuZ1sncmVzdHJpY3RlZF90b19ncm91cCddID0gJ09ubHkgaW4gZ3JvdXAgJXMnOwokbGFuZ1sndGl0bGVfc2hvd190b191c2VyJ10gPSAnRGlzcGxheSB0byB1c2VyPyc7CiRsYW5nWydoZWxwX2xlYXZlZW1wdHknXSA9ICdUaGlzIGZpZWxkIG1heSBiZSBsZWZ0IGVtcHR5JzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVzX2Zvcl90ZW1wbGF0ZSddID0gJ1ZhcmlhYmxlcyBGb3IgVGVtcGxhdGUnOwokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX2NvbXB1dGF0aW9uJ10gPSAnVmFyaWFibGVzIEF2YWlsYWJsZSc7CiRsYW5nWydoZWxwX3BocF92YXJpYWJsZV9uYW1lJ10gPSAnUEhQIHZhcmlhYmxlJzsKJGxhbmdbJ2hlbHBfc3VibWlzc2lvbl9kYXRlJ10gPSAnVGFyaWgnOwokbGFuZ1snaGVscF9zZXJ2ZXJfbmFtZSddID0gJ1NlcnZlcic7CiRsYW5nWydoZWxwX3N1Yl9zb3VyY2VfaXAnXSA9ICdHJm91bWw7bmRlcmNpIElQIGFkcmVzaSc7CiRsYW5nWydoZWxwX3N1Yl91cmwnXSA9ICdGb3JtdW4gZyZvdW1sO25kZXJpbGRpxJ9pIHNheWZhJzsKJGxhbmdbJ2hlbHBfZmJfdmVyc2lvbiddID0gJ0Zvcm1CdWlsZGVyIHZlcnNpeW9uJzsKJGxhbmdbJ2hlbHBfdGFiJ10gPSAnVGFiIEthcmFrdGVyaSc7CiRsYW5nWydoZWxwX290aGVyX2ZpZWxkcyddID0gJ0FsdGVybmF0ZSBmaWVsZCBuYW1lcyBjYW4gYmUgdXNlZCBpbnRlcmNoYW5nZWFibHkgKGVzcGVjaWFsbHkgdXNlZnVsIGlmIFNtYXJ0eSBpcyBjaG9raW5nIG9uIGNoYXJhY3RlcnMgb3V0c2lkZSBvZiBBU0NJSSAzMi0xMjYpLiA8YnIgLz5PdGhlciBmaWVsZHMgd2lsbCBiZSBhdmFpbGFibGUgYXMgeW91IGFkZCB0aGVtIHRvIHRoZSBmb3JtLic7CiRsYW5nWydoZWxwX2FycmF5X2ZpZWxkcyddID0gJ1lldCBhbm90aGVyIHdheSBvZiBhY2Nlc3NpbmcgZmllbGQgdmFsdWVzIGlzIHZpYSAkZmllbGRuYW1lX29iaiwgJGFsaWFzX29iaiwgb3IgJGZsZF8jX29iaiwgd2hlcmUgZWFjaCBmaWVsZCBpcyBhbiBvYmplY3QgY29udGFpbmdpbmc6PGJyIC8+PHRhYmxlPg0KPHRyPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+bmFtZTwvdGQ+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz5GaWVsZCBOYW1lPC90ZD48L3RyPg0KPHRyPjx0ZD50eXBlPC90ZD48dGQ+RmllbGQgVHlwZTwvdGQ+PC90cj4NCjx0cj48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7PmlkPC90ZD48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7PkludGVybmFsIEZpZWxkIElEPC90ZD48L3RyPg0KPHRyPjx0ZD52YWx1ZTwvdGQ+PHRkPkh1bWFuLXJlYWRhYmxlIFZhbHVlPC90ZD48L3RyPg0KPHRyPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+dmFsdWVBcnJheTwvdGQ+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz5BcnJheSBvZiBmaWVsZCB2YWx1ZShzKTwvdGQ+PC90cj48L3RhYmxlPjxlbT5lLmcuPC9lbT4sIHlvdSBjb3VsZCB1c2UgJnF1b3Q7eyRmbGRfMV9vYmotPm5hbWV9ID0geyRmbGRfMV9vYmotPnZhbHVlfSc7CiRsYW5nWydoZWxwX2RhdGVfZm9ybWF0J10gPSAnU2VlIDxhIGhyZWY9Imh0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24uZGF0ZS5waHAiIHRhcmdldD1fTkVXPnRoZSBQSFAgTWFudWFsPC9hPiBmb3IgZm9ybWF0dGluZyBoZWxwLic7CiRsYW5nWydoZWxwX3ZhcmlhYmxlX25hbWUnXSA9ICdWYXJpYWJsZSc7CiRsYW5nWydoZWxwX2Zvcm1fZmllbGQnXSA9ICdGaWVsZCBSZXByZXNlbnRlZCc7CiRsYW5nWydsaW5rX2JhY2tfdG9fZm9ybSddID0gJyZsYXF1bzsgRm9ybWEgR2VyaSBEJm91bWw7bic7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX3RlbXBsYXRlJ10gPSAnQ3JlYXRlIFNhbXBsZSBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2h0bWxfdGVtcGxhdGUnXSA9ICdDcmVhdGUgU2FtcGxlIEhUTUwgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9oZWFkZXJfdGVtcGxhdGUnXSA9ICdDcmVhdGUgU2FtcGxlIEhlYWRlciBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2Zvb3Rlcl90ZW1wbGF0ZSddID0gJ0NyZWF0ZSBTYW1wbGUgRm9vdGVyIFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaGVhZGVyJ10gPSAnQ3JlYXRlIFNhbXBsZSBIZWFkZXInOwokbGFuZ1snaGVscF90YWJfc3ltYm9sJ10gPSAnYSB0YWIgY2hhcmFjdGVyJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfdGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSBmb3Igb25lIGxpbmUgb2Ygb3V0cHV0IGZpbGUnOwokbGFuZ1sndGl0bGVfZmlsZV9oZWFkZXInXSA9ICdUZW1wbGF0ZSBmb3IgdGhlIGhlYWRlciBvZiBvdXRwdXQgZmlsZSc7CiRsYW5nWyd0aXRsZV9maWxlX2Zvb3RlciddID0gJ1RlbXBsYXRlIGZvciB0aGUgZm9vdGVyIG9mIG91dHB1dCBmaWxlJzsKJGxhbmdbJ3RpdGxlX2NvbmZpcm1hdGlvbl91cmwnXSA9ICdVUkwgdG8gY2xpY2sgZm9yIGZvcm0gY29uZmlybWF0aW9uJzsKJGxhbmdbJ3RpdGxlX3ZhbHVlJ10gPSAnVmFsdWUgKHNlZSBBZHZhbmNlZCBUYWIgaWYgeW91IHVzZSBTbWFydHkgdGFncyknOwokbGFuZ1sndGl0bGVfZGF0ZV9mb3JtYXQnXSA9ICdEYXRlIEZvcm1hdCBmb3IgZGlzcGxheSAoc3RhbmRhcmQgPGEgaHJlZj0iaHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5kYXRlLnBocCI+UEhQIERhdGUgRm9ybWF0czwvYT4pJzsKJGxhbmdbJ3RpdGxlX3VzZV93eXNpd3lnJ10gPSAnVXNlIFdZU0lXWUcgZWRpdG9yIGZvciB0ZXh0IEFyZWEgKEFkbWluIHNpZGUgb25seSk/JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9hY3Rpb25zJ10gPSAnRm9ybSBTdWJtaXNzaW9uIEJlaGF2aW9yJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9sYWJlbHMnXSA9ICdTdWJtaXNzaW9uIEJ1dHRvbiBMYWJlbHMnOwokbGFuZ1sndGl0bGVfc29ydGFibGVfZmllbGQnXSA9ICdTb3J0YWJsZSBGaWVsZCAjJXMnOwokbGFuZ1sndGl0bGVfc3VibWl0X2hlbHAnXSA9ICdUaGlzIHBhZ2UgbGV0cyB5b3UgY3VzdG9taXplIEZvcm0gU3VibWlzc2lvbi4gSXQgZG9lc24mIzAzOTt0IGRldGVybWluZSB3aGF0IHRoZSBGb3JtIEJ1aWxkZXIgZG9lcyB3aXRoIHRoZSBzdWJtaXR0ZWQgZGF0YS4gWW91IGNhbiBzZXQgdGhhdCB1cCBieSBhZGRpbmcgJnF1b3Q7RGlzcG9zaXRpb24mcXVvdDsgZmllbGRzIHRvIHlvdXIgZm9ybS4nOwokbGFuZ1sndGl0bGVfc3RhcnRfeWVhciddID0gJ1nEsWwgYXJhbMSxxJ/EsSBiYcWfbGFuZ8SxY8SxJzsKJGxhbmdbJ3RpdGxlX2VuZF95ZWFyJ10gPSAnWcSxbCBhcmFsxLHEn8SxIHNvbnUnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF95ZWFyJ10gPSAnVmFyc2F5xLFsYW4gWcSxbCc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3llYXJfaGVscCddID0gJyhTZXQgdG8gLTEgZm9yIGRlZmF1bHQgeWVhciB0byBiZSB0aGUgY3VycmVudCB5ZWFyKSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYWN0aW9uJ10gPSAnQWZ0ZXIgZm9ybSBpcyBzdWJtaXR0ZWQnOwokbGFuZ1sndGl0bGVfc3VibWl0X3Jlc3BvbnNlJ10gPSAnUmVzcG9uc2UgdG8gZGlzcGxheSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfZGF0ZSddID0gJ0RhdGUgU3VibWl0dGVkJzsKJGxhbmdbJ3RpdGxlX2FwcHJvdmFsX2RhdGUnXSA9ICdEYXRlIEFwcHJvdmVkIChieSBhZG1pbiknOwokbGFuZ1sndGl0bGVfdXNlcl9hcHByb3ZlZCddID0gJ0RhdGUgQXBwcm92ZWQgKGJ5IHN1Ym1pdHRlciknOwokbGFuZ1snZGlzcGxheV90ZXh0J10gPSAnRGlzcGxheSAmcXVvdDtTdWJtaXNzaW9uIFRlbXBsYXRlJnF1b3Q7JzsKJGxhbmdbJ3JlZGlyZWN0X3RvX3BhZ2UnXSA9ICdSZWRpcmVjdCB0byBzaXRlIHBhZ2UnOwokbGFuZ1sndGl0bGVfc3VibWl0X3Jlc3BvbnNlX2hlbHAnXSA9ICdUaGlzIHRlbXBsYXRlIGlzIGZvciBkaXNwbGF5IHRvIHRoZSB1c2VyIGFmdGVyIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZC4gVGhpcyB0ZW1wbGF0ZSBkb2VzIG5vdCBlZmZlY3QgZW1haWxzIGdlbmVyYXRlZCBvciBvdGhlciBmb3JtIGRpc3Bvc2l0aW9ucyAtLSB5b3Ugc2V0IHRob3NlIHRlbXBsYXRlcyAod2hlcmUgYXBwcm9wcmlhdGUpIGluIHRoZSAmcXVvdDthZHZhbmNlZCZxdW90OyB0YWIgZm9yIHRob3NlIGRpc3Bvc2l0aW9uIGZpZWxkcy4nOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fcGFnZSddID0gJ1kmb3VtbDtubGVuZGlyaWxlY2VrIFNheWZhJzsKJGxhbmdbJ3RpdGxlX3JlcXVpcmVfZmllbGRuYW1lcyddID0gJ1JlcXVpcmUgRmllbGRuYW1lcyc7CiRsYW5nWyd0aXRsZV9yZXF1aXJlX2ZpZWxkbmFtZXNfbG9uZyddID0gJ1JlcXVpcmUgZmllbGRzIHRvIGhhdmUgYSBuYW1lPyc7CiRsYW5nWyd0aXRsZV91bmlxdWVfZmllbGRuYW1lcyddID0gJ1JlcXVpcmUgVW5pcXVlIEZpZWxkbmFtZXMnOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXNfbG9uZyddID0gJ1JlcXVpcmUgZmllbGRzIHRvIGhhdmUgdW5pcXVlIG5hbWVzPyc7CiRsYW5nWyd0aXRsZV9yZW9yZGVyX2Zvcm0nXSA9ICdSZW9yZGVyIEZpZWxkcyc7CiRsYW5nWyd0aXRsZV9sb2FkX3RlbXBsYXRlJ10gPSAnTG9hZCB0ZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9hZGRfYnV0dG9uX3RleHQnXSA9ICdBZGQgQnV0dG9uIHRleHQnOwokbGFuZ1sndGl0bGVfZGVsX2J1dHRvbl90ZXh0J10gPSAnRGVsZXRlIEJ1dHRvbiB0ZXh0JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2hlbHB0ZXh0J10gPSAnSGVscC10ZXh0IHRvIGRpc3BsYXkgd2l0aCB0aGlzIGZpZWxkJzsKJGxhbmdbJ3RpdGxlX3N0cmluZ19vcl9udW1iZXJfZXZhbCddID0gJ0ludGVycHJldCB2YXJpYWJsZXMgYXMgYmVpbmcgbnVtYmVycyBvciBzdHJpbmdzJzsKJGxhbmdbJ3RpdGxlX29yZGVyJ10gPSAnSW50ZXJwcmV0YXRpb24gT3JkZXInOwokbGFuZ1sndGl0bGVfb3JkZXJfaGVscCddID0gJ0lmIG1vcmUgdGhhbiBvbmUgQ29tcHV0ZWQgRmllbGQgZXhpc3RzLCB0aGV5IHdpbGwgYmUgY29tcHV0ZWQgZnJvbSBsb3dlc3Qgb3JkZXIgbnVtYmVyIHRvIGhpZ2hlc3Qgb3JkZXIgbnVtYmVyJzsKJGxhbmdbJ3RpdGxlX3N0cmluZ191bnNwYWNlZCddID0gJ1N0cmluZyAobm8gc3BhY2VzIGJldHdlZW4gZmllbGRzKT8nOwokbGFuZ1sndGl0bGVfY29tcHV0ZV92YWx1ZSddID0gJ1ZhbHVlIHRvIGNvbXB1dGUnOwokbGFuZ1sndGl0bGVfY29tcHV0ZSddID0gJ0NvbXB1dGVkL1BIUCc7CiRsYW5nWyd0aXRsZV9zdHJpbmcnXSA9ICdTdHJpbmcnOwokbGFuZ1sndGl0bGVfbnVtZXJpYyddID0gJ051bWVyaWMnOwokbGFuZ1sndGl0bGVfaW5saW5lX2Zvcm0nXSA9ICdEaXNwbGF5IGZvcm0gaW5saW5lPyc7CiRsYW5nWyd0aXRsZV9pbmxpbmVfZm9ybV9oZWxwJ10gPSAnSW5saW5lIG1lYW5zIGFueSBmb3JtIGZvbGxvd3VwIHJlcGxhY2VzIHRoZSB7Rm9ybUJ1aWxkZXJ9IHRhZywgbm9uLWlubGluZSByZXBsYWNlcyB0aGUge2NvbnRlbnR9IHRhZy4nOwokbGFuZ1sndGl0bGVfZmllbGRfZGVmYXVsdF92YWx1ZSddID0gJ0RlZmF1bHQgdmFsdWUgZm9yIGZpZWxkJzsKJGxhbmdbJ3RpdGxlX2NsZWFyX2RlZmF1bHQnXSA9ICdDbGVhciBkZWZhdWx0IG9uIGNsaWNrPyc7CiRsYW5nWyd0aXRsZV9jbGVhcl9kZWZhdWx0X2hlbHAnXSA9ICdDaGVjayB0aGlzIHRvIGNsZWFyIHRoZSBkZWZhdWx0IHZhbHVlIHdoZW4gdGhlIHVzZXIgY2xpY2tzIHRoaXMgZmllbGQuIFNpbmNlIHRoaXMgdXNlcyBhIGphdmFzY3JpcHQgc3RyaW5nIGNvbXBhcmUsIGl0IHdpbGwgZmFpbCBpZiB5b3UgcHV0IHNpbmdsZSBxdW90ZXMgaW4geW91ciBkZWZhdWx0IHRleHQuIE90aGVyIHVuLWphdmFzY3JpcHQtZnJpZW5kbHkgY2hhcmFjdGVycyBtYXkgYWxzbyBjYXVzZSBpdCB0byBmYWlsLic7CiRsYW5nWyd0aXRsZV9yZW1vdmVfZmlsZV9mcm9tX3NlcnZlciddID0gJ0RlbGV0ZSB1cGxvYWRlZCBmaWxlIGZyb20gc2VydmVyIGFmdGVyIHByb2Nlc3NpbmcgKGVtYWlsIGRpc3Bvc2l0aW9ucyknOwokbGFuZ1sndGl0bGVfZmllbGRfamF2YXNjcmlwdCddID0gJ0phdmFzY3JpcHQgZm9yIGZpZWxkJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2phdmFzY3JpcHRfbG9uZyddID0gJ01ha2UgdGhpcyB0aGUgY29tcGxldGUgSmF2YXNjcmlwdCBjYWxsLCBpbmNsdWRpbmcgdGhlIGV2ZW50IHlvdSB3YW50IHRvIHRyYXAsIGUuZy4sIG9uY2xpY2s9JnF1b3Q7eW91cmZuKCkmcXVvdDsnOwokbGFuZ1sndGl0bGVfc3VibWl0X2phdmFzY3JpcHQnXSA9ICdGb3JtIFN1Ym1pc3Npb24gSmF2YXNjcmlwdCc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfamF2YXNjcmlwdF9sb25nJ10gPSAnTWFrZSB0aGlzIHRoZSBjb21wbGV0ZSBKYXZhc2NyaXB0IGNhbGwsIGluY2x1ZGluZyB0aGUgZXZlbnQgeW91IHdhbnQgdG8gdHJhcCwgZS5nLiwgb25jbGljaz0mcXVvdDt5b3VyZm4oKSZxdW90Oy48YnIgLz5UaGlzIHdpbGwgcHJvYmFibHkgbm90IHdvcmsgd2VsbCBpZiB5b3UgdXNlIHRoZSAmcXVvdDtzYWZldHkgc2NyaXB0JnF1b3Q7IG9wdGlvbiBhYm92ZS4nOwokbGFuZ1snZW1haWxfZnJvbV9hZGRyX2hlbHAnXSA9ICdEbyBub3QganVzdCBwaWNrIGEgcmFuZG9tIGFkZHJlc3MgaGVyZSAtLSBtYW55IElTUHMgd2lsbDxiciAvPm5vdCBkZWxpdmVyIHRoZSBtYWlsIGlmIHlvdSBhcmUgdXNpbmcgYSBkaWZmZXJlbnQgZG9tYWluIG5hbWUgdGhhbiB5b3VyIGFjdHVhbDxiciAvPmhvc3QgbmFtZSAoaS5lLiwgdXNlIHNvbWV0aGluZyBsaWtlIG5hbWVAJXMpJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9hZHZhbmNlZCddID0gJ05lZWQgbW9yZSBmaWVsZCB0eXBlcz8gJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9iYXNpYyddID0gJ1RvbyBtYW55IGNvbmZ1c2luZyBmaWVsZCB0eXBlcz8gJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9hZHZhbmNlZF9saW5rJ10gPSAnU3dpdGNoIHRvIEFkdmFuY2VkIE1vZGUnOwokbGFuZ1sndGl0bGVfc3dpdGNoX2Jhc2ljX2xpbmsnXSA9ICdTd2l0Y2ggdG8gU2ltcGxlIE1vZGUnOwokbGFuZ1sndGl0bGVfZmlsZV9yb290J10gPSAnRGlyZWN0b3J5IHRvIHNhdmUgZmlsZSBpbic7CiRsYW5nWyd0aXRsZV9maWxlX3Jvb3RfaGVscCddID0gJ1RoaXMgbmVlZHMgdG8gYmUgYSBkaXJlY3RvcnkgdGhhdCB5b3VyIHdlYiBzZXJ2ZXIgaGFzIHBlcm1pc3Npb25zIHRvIHdyaXRlIGluLjxiciAvPkNobW9kIGl0IDc3NyBpZiB5b3UgaGF2ZSBwcm9ibGVtcy9kb3VidHMuPGJyIC8+QWxzbywgY2hlY2sgdG8gc2VlIHRoYXQgeW91IGRvIG5vdCBoYXZlIFBIUCBkaXJlY3RvcnkgcmVzdHJpY3Rpb25zLic7CiRsYW5nWyd0aXRsZV9uZXdsaW5lX3JlcGxhY2VtZW50J10gPSAnTmV3bGluZS9DYXJyaWFnZSBSZXR1cm4gcmVwbGFjZW1lbnQgY2hhcmFjdGVyJzsKJGxhbmdbJ3RpdGxlX25ld2xpbmVfcmVwbGFjZW1lbnRfaGVscCddID0gJ0xlYXZlIGJsYW5rIHRvIGFsbG93IG5ld2xpbmVzIGFuZCBjYXJyaWFnZSByZXR1cm5zIGluIG91dHB1dCc7CiRsYW5nWyd0aXRsZV9zZW5kX3VzZXJjb3B5J10gPSAnU2VuZCBVc2VyIGEgQ29weSBvZiBTdWJtaXNzaW9uPyc7CiRsYW5nWyd0aXRsZV9zZW5kX3VzZXJjb3B5X2xhYmVsJ10gPSAnTGFiZWwgZm9yIENoZWNrYm94IChpZiB1c2VyIGNob2ljZSknOwokbGFuZ1sndGl0bGVfc2VuZF9tZV9hX2NvcHknXSA9ICdTZW5kIG1lIGEgY29weSBvZiBmb3JtJzsKJGxhbmdbJ3RpdGxlX2FsbG93X3N1YmplY3Rfb3ZlcnJpZGUnXSA9ICdBbGxvdyBzdWJqZWN0IHRvIGJlIG92ZXJyaWRkZW4/JzsKJGxhbmdbJ3RpdGxlX2FsbG93X3N1YmplY3Rfb3ZlcnJpZGVfbG9uZyddID0gJ0FsbG93ICYjMDM5O0VtYWlsICZxdW90O1N1YmplY3QmcXVvdDsgRmllbGRzJiMwMzk7IHRvIG92ZXJyaWRlIHRoZSBzdWJqZWN0IHNwZWNpZmllZCBpbiB0aGUgcHVsbGRvd24uJzsKJGxhbmdbJ3RpdGxlX2Rpc3BsYXlfbGVuZ3RoJ10gPSAnRGlzcGxheSBsZW5ndGgnOwokbGFuZ1sndGl0bGVfbWluaW11bV9sZW5ndGgnXSA9ICdNaW5pbXVtIHJlc3BvbnNlIGxlbmd0aCc7CiRsYW5nWyd0aXRsZV9oaWRlJ10gPSAnSGlkZSBpbnB1dCc7CiRsYW5nWyd0aXRsZV9oaWRlX2hlbHAnXSA9ICdTaG93IHN5bWJvbHMgcmF0aGVyIHBsYWluIHRleHQgd2hlbiB1c2VyIGVudGVycyBwYXNzd29yZD8nOwokbGFuZ1sncGFzc3dvcmRfZG9lc19ub3RfbWF0Y2gnXSA9ICdQYXNzd29yZCBkb2VzIG5vdCBtYXRjaCAlcyc7CiRsYW5nWydiYWNrX3RvcCddID0gJ0JhY2sgdG8gRm9ybUJ1aWxkZXIgTWFpbiBQYWdlJzsKJGxhbmdbJ3RpdGxlX2hlYWRlcnNfdG9fbW9kaWZ5J10gPSAnV2hpY2ggZW1haWwgaGVhZGVycyBzaG91bGQgdGhpcyBpbnB1dCBwb3B1bGF0ZT8nOwokbGFuZ1sndGl0bGVfYmxhbmtfaW52YWxpZCddID0gJ0RvIG5vdCBhY2NlcHQgYmxhbmsgc3BhY2UgYXMgdmFsaWQgcmVzcG9uc2UnOwokbGFuZ1sndGl0bGVfYmxhbmtfaW52YWxpZF9sb25nJ10gPSAnSWYgYSBmaWVsZCBpcyByZXF1aXJlZCwgY2hlY2tpbmcgdGhpcyB3aWxsIHJlcXVpcmUgdGhhdCBwZW9wbGUgcHV0IGluIHNvbWUgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMsIG5vdCBqdXN0IHNwYWNlcyc7CiRsYW5nWyd0aXRsZV9tdXN0X3NhdmVfb3JkZXInXSA9ICdZb3UgbXVzdCBjbGljayBvbmUgb2YgdGhlICZxdW90O3NhdmUmcXVvdDsgYnV0dG9ucyB0byBtYWtlIHlvdXIgbmV3IGZpZWxkIG9yZGVyIHBlcm1hbmVudC4nOwokbGFuZ1sndGl0bGVfaHRtbDUnXSA9ICdVc2UgSFRNTDUgcGxhY2Vob2xkZXIgdGV4dCBpbnN0ZWFkIG9mIEphdmFzY3JpcHQnOwokbGFuZ1snZXJyb3JfQ29tcGFueURpcmVjdG9yeV9tb2R1bGVfbm90X2F2YWlsYWJsZSddID0gJ0NvbXBhbnkgRGlyZWN0b3J5IG1vZHVsZSBpcyBub3QgYXZhaWxhYmxlISc7CiRsYW5nWydvcHRpb25fbmV2ZXInXSA9ICdBc2xhJzsKJGxhbmdbJ29wdGlvbl91c2VyX2Nob2ljZSddID0gJ0dpdmUgdXNlciBhIGNob2ljZSAoY2hlY2tib3gpJzsKJGxhbmdbJ29wdGlvbl9hbHdheXMnXSA9ICdIZXJ6YW1hbic7CiRsYW5nWydvcHRpb25fZnJvbSddID0gJyZxdW90O0Zyb20mcXVvdDsgZW1haWwgYWRkcmVzcyc7CiRsYW5nWydvcHRpb25fcmVwbHknXSA9ICcmcXVvdDtSZXBseS1UbyZxdW90OyBlbWFpbCBhZGRyZXNzJzsKJGxhbmdbJ29wdGlvbl9ib3RoJ10gPSAnQm90aCAmcXVvdDtGcm9tJnF1b3Q7IGFuZCAmcXVvdDtSZXBseS1UbyZxdW90OyBlbWFpbCBhZGRyZXNzZXMnOwokbGFuZ1snb3B0aW9uX2Ryb3Bkb3duJ10gPSAnRHJvcGRvd24nOwokbGFuZ1snb3B0aW9uX3NlbGVjdGxpc3Rfc2luZ2xlJ10gPSAnU2VsZWN0IExpc3QgKHNpbmdsZSknOwokbGFuZ1snb3B0aW9uX3NlbGVjdGxpc3RfbXVsdGlwbGUnXSA9ICdTZWxlY3QgTGlzdCAobXVsdGlwbGUpJzsKJGxhbmdbJ29wdGlvbl9yYWRpb2dyb3VwJ10gPSAnUmFkaW8gR3JvdXAnOwokbGFuZ1sndGl0bGVfY29tcGFueV9maWVsZF9ub3RlJ10gPSAnTm90ZTogT3V0cHV0IHdpbGwgYmUgaW4gdGhlIGZvcm0gb2Y8YnIvPiZxdW90O2NvbXBhbnkgbmFtZSZxdW90Oz0+JnF1b3Q7dmFsdWUmcXVvdDsnOwokbGFuZ1sndGl0bGVfcGlja19jYXRlZ29yaWVzJ10gPSAnUGljayBhIGNhdGVnb3J5IChtdWx0aXBsZSknOwokbGFuZ1sndGl0bGVfcGlja19maWVsZGRlZiddID0gJ1B1bGwgYSBmaWVsZCBEZWZpbml0aW9uJiMwMzk7cyB2YWx1ZSAoc2luZ2xlKSA8ZW0+b3B0aW9uYWw8L2VtPic7CiRsYW5nWyd0aXRsZV9jaG9vc2VfdXNlcl9pbnB1dCddID0gJ0Nob29zZSBVc2VyIGlucHV0JzsKJGxhbmdbJ3RpdGxlX3NlZV9hbHNvX3VkdCddID0gJyhBbHNvIHRha2UgYSBsb29rIGF0IHRoZSBGb3JtIFN1Ym1pc3Npb24gdGFiIGlmIHlvdSB3YW50IHRvIHNldCBhIFVEVCBmb3IgZm9ybSB2YWxpZGF0aW9uKSc7CiRsYW5nWyd0aXRsZV95ZWFyX2VuZF9tZXNzYWdlJ10gPSAnRW5kIHllYXInOwokbGFuZ1sndGl0bGVfZmllbGRfbG9naWMnXSA9ICdTbWFydHkgZGF0YSBvciBsb2dpYyB0aGF0IGlzIG1lYW50IHRvIGJlIHNlbnQgd2l0aCB0aGlzIGZpZWxkJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2xvZ2ljX2xvbmcnXSA9ICdDYW4gYmUgc21hcnR5IGRhdGEsIGphdmFzY3JpcHQsIG9yIHNvbWUgb3RoZXIgZGF0YSB5b3Ugd2FuJiMwMzk7dCB0byBzZW50IGFsb25nIHdpdGggdGhpcyBmaWVsZC48YnIgLz5Hb2VzIHRocm91Z2ggdGhlIFNtYXJ0eSBjb21waWxlciwgc28gcmVtZW1iZXIgdXNlIHtsaXRlcmFsfXsvbGl0ZXJhbH0gdGFncyB3aXRoIDxzY3JpcHQ+PC9zY3JpcHQ+JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2luY2x1ZGVsYWJlbHMnXSA9ICdJbmNsdWRlIGxhYmVscyc7CiRsYW5nWyd0aXRsZV9maWVsZF9pbmNsdWRlbGFiZWxzX2hlbHAnXSA9ICdFbmFibGluZyB0aGlzIGluY2x1ZGVzIGxhYmVscyB0byBvdXRwdXQuIGV4YW1wbGUgLSBsYWJlbDogdmFsdWUsbGFiZWwyOiB2YWx1ZTInOwokbGFuZ1sndGl0bGVfZmllbGRfc2libGluZ3MnXSA9ICdMaW5rIHRoaXMgZmllbGQgdG8gaXQmIzAzOTtzIHNpYmxpbmcnOwokbGFuZ1sndGl0bGVfZmllbGRfc2libGluZ3NfaGVscCddID0gJ0Ryb3Bkb3duIGxpc3RzIGFsbCBzaWJsaW5ncyBvZiB0aGlzIGZpZWxkIGFuZCBhbGxvd3MgeW91IHRvIGxpbmsgdGhpcyBmaWVsZCB0byBvbmUgb2YgaXQmIzAzOTtzIHNpYmxpbmcuIE1ha2VzIHBvc3NpYmxlIGNvbnRyb2xsaW5nIHRoaXMgZmllbGQgd2l0aCBzZWxlY3RlZCBzaWJsaW5nIGNvbnRyb2xzLic7CiRsYW5nWyd0aXRsZV9maWVsZF9oaWRlYnV0dG9ucyddID0gJ0hpZGUgY29udHJvbCBidXR0b25zJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2hpZGVidXR0b25zX2hlbHAnXSA9ICdIaWRlcyBmcm9udGVuZCBjb250cm9sIGJ1dHRvbnMgb2YgdGhpcyBmaWVsZC4nOwokbGFuZ1sndGl0bGVfbm90ZSddID0gJ05vdGUnOwokbGFuZ1sndGl0bGVfY2hhbmdpbmdfdHJpZ2dlcnNfcmVpbmRleCddID0gJ0NoYW5naW5nIGFueSBvZiB0aGUgYWJvdmUgZmllbGRzIHdpbGwgdHJpZ2dlciBhIHJlaW5kZXggb2YgKmFsbCogc2F2ZWQgcmVjb3Jkcywgc28gaXQgY291bGQgdGFrZSBhIHdoaWxlLic7CiRsYW5nWydpbGxlZ2FsX2ZpbGUnXSA9ICdBdHRlbXB0ZWQgdXBsb2FkIG9mIGlsbGVnYWwgZmlsZSB0eXBlICglcykgZnJvbSAlcyc7CiRsYW5nWyd0aXRsZV9zZWFyY2hhYmxlJ10gPSAnTWFrZSByZWNvcmRzIGFjY2Vzc2libGUgdG8gU2VhcmNoIE1vZHVsZSc7CiRsYW5nWyd0aXRsZV9zZWFyY2hhYmxlX2hlbHAnXSA9ICdDaGVja2luZyB0aGlzIHdpbGwgbWFrZSBhbGwgc3VibWl0dGVkIGRhdGEgYWNjZXNzaWJsZSB0byB0aGUgU2VhcmNoIE1vZHVsZS4gRE8gTk9UIHVzZSB0aGlzIGlmIHlvdSBlbmNyeXB0IHlvdXIgZGF0YSAtLSB0aGUgaW5mb3JtYXRpb24gZ2V0cyBleHBvc2VkIHRvIHNlYXJjaCB3aGV0aGVyIG9yIG5vdCBpdCBpcyBlbmNyeXB0ZWQhJzsKJGxhbmdbJ3VwbG9hZGVkX291dHNpZGVfd2Vicm9vdCddID0gJyVzIChvdXRzaWRlIHdlYiByb290KSc7CiRsYW5nWydlcnJvcl91c2VydGFnX2Rpc3Bvc2l0aW9uJ10gPSAnVXNlciBkZWZpbmVkIHRhZyByZXR1cm5lZCBhbiBlcnJvcic7CiRsYW5nWydlcnJvcl91c2VydGFnJ10gPSAnVXNlciBkZWZpbmVkIHRhZyAlcyByZXR1cm5lZCBhbiBlcnJvci4nOwokbGFuZ1snZXJyb3JfY2F0YWxvZ2VyX21vZHVsZV9ub3RfYXZhaWxhYmxlJ10gPSAnPHN0cm9uZz5DYXRhbG9nZXIgbW9kdWxlIGRvZXMgbm90IHNlZW0gdG8gYmUgaW5zdGFsbGVkL2FjdGl2ZS48L3N0cm9uZz4nOwokbGFuZ1snd2FybmluZyddID0gJ1dBUk5JTkchJzsKJGxhbmdbJ2RlZmF1bHRfdGVtcGxhdGUnXSA9ICdEZWZhdWx0IFRlbXBsYXRlJzsKJGxhbmdbJ3RhYmxlX2xlZnRfdGVtcGxhdGUnXSA9ICdUYWJsZSBUZW1wbGF0ZSwgVGl0bGVzIG9uIGxlZnQnOwokbGFuZ1sndGFibGVfdG9wX3RlbXBsYXRlJ10gPSAnVGFibGUgVGVtcGxhdGUsIFRpdGxlIG9uIHRvcCc7CiRsYW5nWydmb3JtX3RlbXBsYXRlX25hbWUnXSA9ICdUZW1wbGF0ZSBmcm9tICVzJzsKJGxhbmdbJ3RlbXBsYXRlX2FyZV95b3Vfc3VyZSddID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBvdmVyd3JpdGUgeW91ciB0ZW1wbGF0ZSB3aXRoIHRoZSBzZWxlY3RlZCB0ZW1wbGF0ZT8gKEV2ZW4gaWYgeW91IHNheSBPSywgeW91IHdpbGwgc3RpbGwgbmVlZCB0byBzYXZlIHRoZSBjaGFuZ2UpJzsKJGxhbmdbJ3RpdGxlX2JhZF9mdW5jdGlvbiddID0gJ0Vycm9yIHdoZW4gY29tcHV0aW5nICZxdW90OyVzJnF1b3Q7Lic7CiRsYW5nWydub19yZWZlcnJlcl9pbmZvJ10gPSAnTm8gSFRUUF9SRUZFUkVSIGluZm8gYXZhaWxhYmxlIChwcm9iYWJseSBkdWUgdG8gdXNlIG9mIFVzZXIgRW1haWwgVmFsaWRhdGlvbiknOwokbGFuZ1sndmFsaWRhdGlvbl9wYXJhbV9lcnJvciddID0gJ1ZhbGlkYXRpb24gUGFyYW1ldGVyIEVycm9yLiBQbGVhc2UgbWFrZSBzdXJlIHlvdSBjb3B5IHRoZSBVUkwgZnJvbSB5b3VyIGVtYWlsIGNvcnJlY3RseSEnOwokbGFuZ1sndmFsaWRhdGlvbl9yZXNwb25zZV9lcnJvciddID0gJ1ZhbGlkYXRpb24gUmVzcG9uc2UgRXJyb3IuIFBsZWFzZSBtYWtlIHN1cmUgeW91IGNvcHkgdGhlIFVSTCBmcm9tIHlvdXIgZW1haWwgY29ycmVjdGx5ISc7CiRsYW5nWyd2YWxpZGF0aW9uX25vX2ZpZWxkX2Vycm9yJ10gPSAnVmFsaWRhdGlvbiBSZXNwb25zZSBFcnJvci4gTm8gZW1haWwgdmFsaWRhdGlvbiBmaWVsZCBpbiB0aGlzIGZvcm0hJzsKJGxhbmdbJ3VwZ3JhZGUwM3RvMDQnXSA9ICdGb3JtIFRlbXBsYXRlIHdhcyB1cGRhdGVkIGF1dG9tYXRpY2FsbHkgYXMgcGFydCBvZiB0aGUgdmVyc2lvbiAwLjMgdG8gdmVyc2lvbiAwLjQgdXBncmFkZS4gWW91IG1heSBuZWVkIHRvIG1ha2Ugc29tZSBmaXhlcy4gSWYgeW91JiMwMzk7cmUgdXNpbmcgdGhlIGRlZmF1bHQgZm9ybSwgc2ltcGx5IHJlcGxhY2UgdGhpcyB0ZW1wbGF0ZSB3aXRoICZxdW90O2RlZmF1bHQmcXVvdDsgdXNpbmcgdGhlIHB1bGxkb3duIGFib3ZlLic7CiRsYW5nWydhZG1pbmRlc2MnXSA9ICdBZGQsIGVkaXQgYW5kIG1hbmFnZSBpbnRlcmFjdGl2ZSBGb3Jtcyc7CiRsYW5nWydvcGVyYXRvcnNfaGVscCddID0gJ0lmIHlvdSB1c2UgU3RyaW5nIGV2YWx1YXRpb24sIHRoZSBvbmx5IG9wZXJhdGlvbiBhdmFpbGFibGUgaXMgY29uY2F0ZW5hdGlvbiAoKykuIElmIHlvdSB1c2UgTnVtYmVyIGV2YWx1YXRpb24geW91IGhhdmUgYmFzaWMsIHZlcnkgc2ltcGxlIG1hdGggKCwgKywgLSwgKiwgLywgKS4gSWYgeW91IHVzZSBDb21wdXRlZC9QSFAgZXZhbHVhdGlvbiwgeW91IGNhbg0KdXNlIGFueSBmdW5jdGlvbiB5b3Ugd2FudCwgYnV0IHlvdSBuZWVkIHRvIHF1b3RlIHRoaW5ncyAoc3Vic3RpdHV0aW9uIG9jY3VycyBiZWZvcmUgZXZhbHVhdGlvbiksIGUuZy4sIHN1YnN0cigmIzAzOTskZmxkXzIyJiMwMzk7LDAsMikuJiMwMzk7JGZsZF8yMyYjMDM5Oy4nOwokbGFuZ1snaGVscF9tb2R1bGVfaW50ZXJmYWNlJ10gPSAnVXNpbmcgTW9kdWxlIEludGVyZmFjZSc7CiRsYW5nWydoZWxwX21vZHVsZV9pbnRlcmZhY2VfbG9uZyddID0gJzxiPlRoaXMgZmllbGQgaXMgdXNlZCBhcyBhIGdhdGV3YXkgdG8gb3RoZXIgbW9kdWxlcyE8L2I+DQpVc2UgaXQgYnkgY3JlYXRpbmcgeW91ciBmb3JtIGVsZW1lbnRzIGluIHRoZSB0ZW1wbGF0ZXMgb2YgdGhlIG90aGVyIG1vZHVsZShzKSB5b3Ugd2lzaCB0byBpbmNvcnBvcmF0ZSwgYW5kIHVzaW5nIHRoZSA8c3Ryb25nPnskRkJpZH08L3N0cm9uZz4gdG8gdGllIGl0IGJhY2sgdG8gRm9ybUJ1aWxkZXIuIEZvciBleGFtcGxlLCB0byBpbmNsdWRlIGZvcm0gb3B0aW9ucyBiYXNlZCBvbiB0aGUgUHJvZHVjdHMgbW9kdWxlLCBjcmVhdGUgdGhlIGZvbGxvd2luZyB0ZW1wbGF0ZSBpbiBQcm9kdWN0czo8YnIvPg0KPHByZT4NCntmb3JlYWNoIGZyb209JGl0ZW1zIGl0ZW09ZW50cnl9DQoJe2Fzc2lnbiB2YXI9TURhdGEgdmFsdWU9JiMwMzk7JiMwMzk7fQ0KCXthc3NpZ24gdmFyPUNkIHZhbHVlPSYjMDM5OyYjMDM5O30NCgkJe2ZvcmVhY2ggZnJvbT0kRkJ2YWx1ZSBpdGVtPU1EYXRhfQ0KCQkJe2Fzc2lnbiB2YXI9TURhdGEgdmFsdWU9JiMwMzk7OjomIzAzOTt8ZXhwbG9kZTokTURhdGF9DQoJCQl7aWYgJE1EYXRhWzFdPT0kZW50cnktPmlkfQ0KCQkJCXthc3NpZ24gdmFyPUNkIHZhbHVlPSYjMDM5OyBjaGVja2VkPSZxdW90O2NoZWNrZWQmcXVvdDsmIzAzOTt9DQoJCQl7L2lmfQ0KCQl7L2ZvcmVhY2h9DQoJPGRpdiBjbGFzcz0mcXVvdDtQcm9kdWN0RGlyZWN0b3J5SXRlbSZxdW90Oz4NCgkJPGlucHV0IHR5cGU9JnF1b3Q7Y2hlY2tib3gmcXVvdDsgdmFsdWU9JnF1b3Q7eyRlbnRyeS0+cHJpY2V9Ojp7JGVudHJ5LT5pZH0mcXVvdDsgbmFtZT0mcXVvdDt7JEZCaWR9W10mcXVvdDsgeyRDZH0gLz57JGVudHJ5LT5wcm9kdWN0X25hbWV9ICh7JGVudHJ5LT53ZWlnaHR9eyR3ZWlnaHRfdW5pdHN9KSAmcG91bmQ7eyRlbnRyeS0+cHJpY2V9ICAgIA0KCTwvZGl2Pg0Key9mb3JlYWNofQ0KPC9wcmU+DQo8YnIvPg0Kd2hlcmUgaW4gdGhlIGlucHV0IGJlbG93IHlvdSBwdXQgc29tZXRoaW5nIGxpa2UgPHN0cm9uZz57UHJvZHVjdHMgY2F0ZWdvcnk9JnF1b3Q7Y2F0JnF1b3Q7IHN1bW1hcnl0ZW1wbGF0ZT0mcXVvdDtZb3VyX0ZCX3RlbXBsYXRlJnF1b3Q7fTwvc3Ryb25nPic7CiRsYW5nWyd0aXRsZV9hZGRfdGFnJ10gPSAnQWRkIHlvdXIgdGFnJzsKJGxhbmdbJ2RhdGVfamFudWFyeSddID0gJ09jYWsnOwokbGFuZ1snZGF0ZV9mZWJydWFyeSddID0gJ8WedWJhdCc7CiRsYW5nWydkYXRlX21hcmNoJ10gPSAnTWFydCc7CiRsYW5nWydkYXRlX2FwcmlsJ10gPSAnTmlzYW4nOwokbGFuZ1snZGF0ZV9tYXknXSA9ICdNYXnEsXMnOwokbGFuZ1snZGF0ZV9qdW5lJ10gPSAnSGF6aXJhbic7CiRsYW5nWydkYXRlX2p1bHknXSA9ICdUZW1tdXonOwokbGFuZ1snZGF0ZV9hdWd1c3QnXSA9ICdBxJ91c3Rvcyc7CiRsYW5nWydkYXRlX3NlcHRlbWJlciddID0gJ0V5bCZ1dW1sO2wnOwokbGFuZ1snZGF0ZV9vY3RvYmVyJ10gPSAnRWtpbSc7CiRsYW5nWydkYXRlX25vdmVtYmVyJ10gPSAnS2FzxLFtJzsKJGxhbmdbJ2RhdGVfZGVjZW1iZXInXSA9ICdBcmFsxLFrJzsKJGxhbmdbJ0FGJ10gPSAnQWZnaGFuaXN0YW4nOwokbGFuZ1snQVgnXSA9ICdBbGFuZCBJc2xhbmRzJzsKJGxhbmdbJ0FMJ10gPSAnQWxiYW5pYSc7CiRsYW5nWydEWiddID0gJ0FsZ2VyaWEnOwokbGFuZ1snQVMnXSA9ICdBbWVyaWNhbiBTYW1vYSc7CiRsYW5nWydBRCddID0gJ0FuZG9ycmEnOwokbGFuZ1snQU8nXSA9ICdBbmdvbGEnOwokbGFuZ1snQUknXSA9ICdBbmd1aWxsYSc7CiRsYW5nWydBUSddID0gJ0FudGFyY3RpY2EnOwokbGFuZ1snQUcnXSA9ICdBbnRpZ3VhIGFuZCBCYXJidWRhJzsKJGxhbmdbJ0FSJ10gPSAnQXJnZW50aW5hJzsKJGxhbmdbJ0FNJ10gPSAnQXJtZW5pYSc7CiRsYW5nWydBVyddID0gJ0FydWJhJzsKJGxhbmdbJ0FVJ10gPSAnQXVzdHJhbGlhJzsKJGxhbmdbJ0FUJ10gPSAnQXVzdHJpYSc7CiRsYW5nWydBWiddID0gJ0F6ZXJiYWlqYW4nOwokbGFuZ1snQlMnXSA9ICdCYWhhbWFzJzsKJGxhbmdbJ0JIJ10gPSAnQmFocmFpbic7CiRsYW5nWydCQiddID0gJ0JhcmJhZG9zJzsKJGxhbmdbJ0JEJ10gPSAnQmFuZ2xhZGVzaCc7CiRsYW5nWydCWSddID0gJ0JlbGFydXMnOwokbGFuZ1snQkUnXSA9ICdCZWxnaXVtJzsKJGxhbmdbJ0JaJ10gPSAnQmVsaXplJzsKJGxhbmdbJ0JKJ10gPSAnQmVuaW4nOwokbGFuZ1snQk0nXSA9ICdCZXJtdWRhJzsKJGxhbmdbJ0JUJ10gPSAnQmh1dGFuJzsKJGxhbmdbJ0JXJ10gPSAnQm90c3dhbmEnOwokbGFuZ1snQk8nXSA9ICdCb2xpdmlhJzsKJGxhbmdbJ0JBJ10gPSAnQm9zbmlhIGFuZCBIZXJ6ZWdvdmluYSc7CiRsYW5nWydCViddID0gJ0JvdXZldCBJc2xhbmQnOwokbGFuZ1snQlInXSA9ICdCcmF6aWwnOwokbGFuZ1snSU8nXSA9ICdCcml0aXNoIEluZGlhbiBPY2VhbiBUZXJyaXRvcnknOwokbGFuZ1snQk4nXSA9ICdCcnVuZWkgRGFydXNzYWxhbSc7CiRsYW5nWydCRyddID0gJ0J1bGdhcmlhJzsKJGxhbmdbJ0JGJ10gPSAnQnVya2luYSBGYXNvJzsKJGxhbmdbJ0JJJ10gPSAnQnVydW5kaSc7CiRsYW5nWydLSCddID0gJ0NhbWJvZGlhJzsKJGxhbmdbJ0NNJ10gPSAnQ2FtZXJvb24nOwokbGFuZ1snQ0EnXSA9ICdDYW5hZGEnOwokbGFuZ1snQ1YnXSA9ICdDYXBlIFZlcmRlJzsKJGxhbmdbJ0tZJ10gPSAnQ2F5bWFuIElzbGFuZHMnOwokbGFuZ1snQ0YnXSA9ICdDZW50cmFsIEFmcmljYW4gUmVwdWJsaWMnOwokbGFuZ1snVEQnXSA9ICdDaGFkJzsKJGxhbmdbJ0NMJ10gPSAnQ2hpbGUnOwokbGFuZ1snQ04nXSA9ICdDaGluYSc7CiRsYW5nWydDWCddID0gJ0NocmlzdG1hcyBJc2xhbmQnOwokbGFuZ1snQ0MnXSA9ICdDb2NvcyAoS2VlbGluZykgSXNsYW5kcyc7CiRsYW5nWydDTyddID0gJ0NvbG9tYmlhJzsKJGxhbmdbJ0tNJ10gPSAnQ29tb3Jvcyc7CiRsYW5nWydDRyddID0gJ0NvbmdvJzsKJGxhbmdbJ0NEJ10gPSAnQ29uZ28sICBEZW1vY3JhdGljIFJlcHVibGljJzsKJGxhbmdbJ0NLJ10gPSAnQ29vayBJc2xhbmRzJzsKJGxhbmdbJ0NSJ10gPSAnQ29zdGEgUmljYSc7CiRsYW5nWydDSSddID0gJ0l2b2lyZSAoSXZvcnkgQ29hc3QpJzsKJGxhbmdbJ0hSJ10gPSAnQ3JvYXRpYSAoSHJ2YXRza2EpJzsKJGxhbmdbJ0NVJ10gPSAnQ3ViYSc7CiRsYW5nWydDWSddID0gJ0N5cHJ1cyc7CiRsYW5nWydDWiddID0gJ0N6ZWNoIFJlcHVibGljJzsKJGxhbmdbJ0RLJ10gPSAnRGVubWFyayc7CiRsYW5nWydESiddID0gJ0RqaWJvdXRpJzsKJGxhbmdbJ0RNJ10gPSAnRG9taW5pY2EnOwokbGFuZ1snRE8nXSA9ICdEb21pbmljYW4gUmVwdWJsaWMnOwokbGFuZ1snVFAnXSA9ICdFYXN0IFRpbW9yJzsKJGxhbmdbJ0VDJ10gPSAnRWN1YWRvcic7CiRsYW5nWydFRyddID0gJ0VneXB0JzsKJGxhbmdbJ1NWJ10gPSAnRWwgU2FsdmFkb3InOwokbGFuZ1snR1EnXSA9ICdFcXVhdG9yaWFsIEd1aW5lYSc7CiRsYW5nWydFUiddID0gJ0VyaXRyZWEnOwokbGFuZ1snRUUnXSA9ICdFc3RvbmlhJzsKJGxhbmdbJ0VUJ10gPSAnRXRoaW9waWEnOwokbGFuZ1snRksnXSA9ICdGYWxrbGFuZCBJc2xhbmRzIChNYWx2aW5hcyknOwokbGFuZ1snRk8nXSA9ICdGYXJvZSBJc2xhbmRzJzsKJGxhbmdbJ0ZKJ10gPSAnRmlqaSc7CiRsYW5nWydGSSddID0gJ0ZpbmxhbmQnOwokbGFuZ1snRlInXSA9ICdGcmFuY2UnOwokbGFuZ1snRlgnXSA9ICdGcmFuY2UsICBNZXRyb3BvbGl0YW4nOwokbGFuZ1snR0YnXSA9ICdHdWVybnNleSc7CiRsYW5nWydQRiddID0gJ0ZyZW5jaCBQb2x5bmVzaWEnOwokbGFuZ1snVEYnXSA9ICdGcmVuY2ggU291dGhlcm4gVGVycml0b3JpZXMnOwokbGFuZ1snTUsnXSA9ICdGLlkuUi5PLk0uIChNYWNlZG9uaWEpJzsKJGxhbmdbJ0dBJ10gPSAnR2Fib24nOwokbGFuZ1snR00nXSA9ICdHYW1iaWEnOwokbGFuZ1snR0UnXSA9ICdHZW9yZ2lhJzsKJGxhbmdbJ0RFJ10gPSAnR2VybWFueSc7CiRsYW5nWydHSCddID0gJ0doYW5hJzsKJGxhbmdbJ0dJJ10gPSAnR2licmFsdGFyJzsKJGxhbmdbJ0dCJ10gPSAnR3JlYXQgQnJpdGFpbiAoVUspJzsKJGxhbmdbJ0dSJ10gPSAnR3JlZWNlJzsKJGxhbmdbJ0dMJ10gPSAnR3JlZW5sYW5kJzsKJGxhbmdbJ0dEJ10gPSAnR3JlbmFkYSc7CiRsYW5nWydHUCddID0gJ0d1YWRlbG91cGUnOwokbGFuZ1snR1UnXSA9ICdHdWFtJzsKJGxhbmdbJ0dUJ10gPSAnR3VhdGVtYWxhJzsKJGxhbmdbJ0dOJ10gPSAnR3VpbmVhJzsKJGxhbmdbJ0dXJ10gPSAnR3VpbmVhLUJpc3NhdSc7CiRsYW5nWydHWSddID0gJ0d1eWFuYSc7CiRsYW5nWydIVCddID0gJ0hhaXRpJzsKJGxhbmdbJ0hNJ10gPSAnSGVhcmQgYW5kIE1jRG9uYWxkIElzbGFuZHMnOwokbGFuZ1snSE4nXSA9ICdIb25kdXJhcyc7CiRsYW5nWydISyddID0gJ0hvbmcgS29uZyc7CiRsYW5nWydIVSddID0gJ0h1bmdhcnknOwokbGFuZ1snSVMnXSA9ICdJY2VsYW5kJzsKJGxhbmdbJ0lOJ10gPSAnSW5kaWEnOwokbGFuZ1snSUQnXSA9ICdJbmRvbmVzaWEnOwokbGFuZ1snSVInXSA9ICdJcmFuJzsKJGxhbmdbJ0lRJ10gPSAnSXJhcSc7CiRsYW5nWydJRSddID0gJ0lyZWxhbmQnOwokbGFuZ1snSUwnXSA9ICdJc3JhZWwnOwokbGFuZ1snSU0nXSA9ICdJc2xlIG9mIE1hbic7CiRsYW5nWydJVCddID0gJ0l0YWx5JzsKJGxhbmdbJ0pFJ10gPSAnSmVyc2V5JzsKJGxhbmdbJ0pNJ10gPSAnSmFtYWljYSc7CiRsYW5nWydKUCddID0gJ0phcGFuJzsKJGxhbmdbJ0pPJ10gPSAnSm9yZGFuJzsKJGxhbmdbJ0taJ10gPSAnS2F6YWtoc3Rhbic7CiRsYW5nWydLRSddID0gJ0tlbnlhJzsKJGxhbmdbJ0tJJ10gPSAnS2lyaWJhdGknOwokbGFuZ1snS1AnXSA9ICdLb3JlYSAoTm9ydGgpJzsKJGxhbmdbJ0tSJ10gPSAnS29yZWEgKFNvdXRoKSc7CiRsYW5nWydLVyddID0gJ0t1d2FpdCc7CiRsYW5nWydLRyddID0gJ0t5cmd5enN0YW4nOwokbGFuZ1snTEEnXSA9ICdMYW9zJzsKJGxhbmdbJ0xWJ10gPSAnTGF0dmlhJzsKJGxhbmdbJ0xCJ10gPSAnTGViYW5vbic7CiRsYW5nWydMSSddID0gJ0xpZWNodGVuc3RlaW4nOwokbGFuZ1snTFInXSA9ICdMaWJlcmlhJzsKJGxhbmdbJ0xZJ10gPSAnTGlieWEnOwokbGFuZ1snTFMnXSA9ICdMZXNvdGhvJzsKJGxhbmdbJ0xUJ10gPSAnTGl0aHVhbmlhJzsKJGxhbmdbJ0xVJ10gPSAnTHV4ZW1ib3VyZyc7CiRsYW5nWydNTyddID0gJ01hY2F1JzsKJGxhbmdbJ01HJ10gPSAnTWFkYWdhc2Nhcic7CiRsYW5nWydNVyddID0gJ01hbGF3aSc7CiRsYW5nWydNWSddID0gJ01hbGF5c2lhJzsKJGxhbmdbJ01WJ10gPSAnTWFsZGl2ZXMnOwokbGFuZ1snTUwnXSA9ICdNYWxpJzsKJGxhbmdbJ01UJ10gPSAnTWFsdGEnOwokbGFuZ1snTUgnXSA9ICdNYXJzaGFsbCBJc2xhbmRzJzsKJGxhbmdbJ01RJ10gPSAnTWFydGluaXF1ZSc7CiRsYW5nWydNUiddID0gJ01hdXJpdGFuaWEnOwokbGFuZ1snTVUnXSA9ICdNYXVyaXRpdXMnOwokbGFuZ1snWVQnXSA9ICdNYXlvdHRlJzsKJGxhbmdbJ01YJ10gPSAnTWV4aWNvJzsKJGxhbmdbJ0ZNJ10gPSAnTWljcm9uZXNpYSc7CiRsYW5nWydNQyddID0gJ01vbmFjbyc7CiRsYW5nWydNRCddID0gJ01vbGRvdmEnOwokbGFuZ1snTUEnXSA9ICdNb3JvY2NvJzsKJGxhbmdbJ01OJ10gPSAnTW9uZ29saWEnOwokbGFuZ1snTVMnXSA9ICdNb250c2VycmF0JzsKJGxhbmdbJ01aJ10gPSAnTW96YW1iaXF1ZSc7CiRsYW5nWydNTSddID0gJ015YW5tYXInOwokbGFuZ1snTkEnXSA9ICdOYW1pYmlhJzsKJGxhbmdbJ05SJ10gPSAnTmF1cnUnOwokbGFuZ1snTlAnXSA9ICdOZXBhbCc7CiRsYW5nWydOTCddID0gJ05ldGhlcmxhbmRzJzsKJGxhbmdbJ0FOJ10gPSAnTmV0aGVybGFuZHMgQW50aWxsZXMnOwokbGFuZ1snTlQnXSA9ICdOZXV0cmFsIFpvbmUnOwokbGFuZ1snTkMnXSA9ICdOZXcgQ2FsZWRvbmlhJzsKJGxhbmdbJ05aJ10gPSAnTmV3IFplYWxhbmQgKEFvdGVhcm9hKSc7CiRsYW5nWydOSSddID0gJ05pY2FyYWd1YSc7CiRsYW5nWydORSddID0gJ05pZ2VyJzsKJGxhbmdbJ05HJ10gPSAnTmlnZXJpYSc7CiRsYW5nWydOVSddID0gJ05pdWUnOwokbGFuZ1snTkYnXSA9ICdOb3Jmb2xrIElzbGFuZCc7CiRsYW5nWydNUCddID0gJ05vcnRoZXJuIE1hcmlhbmEgSXNsYW5kcyc7CiRsYW5nWydOTyddID0gJ05vcndheSc7CiRsYW5nWydPTSddID0gJ09tYW4nOwokbGFuZ1snUEsnXSA9ICdQYWtpc3Rhbic7CiRsYW5nWydQVyddID0gJ1BhbGF1JzsKJGxhbmdbJ1BTJ10gPSAnUGFsZXN0aW5pYW4gVGVycml0b3J5JzsKJGxhbmdbJ1BBJ10gPSAnUGFuYW1hJzsKJGxhbmdbJ1BHJ10gPSAnUGFwdWEgTmV3IEd1aW5lYSc7CiRsYW5nWydQWSddID0gJ1BhcmFndWF5JzsKJGxhbmdbJ1BFJ10gPSAnUGVydSc7CiRsYW5nWydQSCddID0gJ1BoaWxpcHBpbmVzJzsKJGxhbmdbJ1BOJ10gPSAnUGl0Y2Fpcm4nOwokbGFuZ1snUEwnXSA9ICdQb2xhbmQnOwokbGFuZ1snUFQnXSA9ICdQb3J0dWdhbCc7CiRsYW5nWydQUiddID0gJ1B1ZXJ0byBSaWNvJzsKJGxhbmdbJ1FBJ10gPSAnUWF0YXInOwokbGFuZ1snUkUnXSA9ICdSZXVuaW9uJzsKJGxhbmdbJ1JPJ10gPSAnUm9tYW5pYSc7CiRsYW5nWydSVSddID0gJ1J1c3NpYW4gRmVkZXJhdGlvbic7CiRsYW5nWydSVyddID0gJ1J3YW5kYSc7CiRsYW5nWydHUyddID0gJ1MuIEdlb3JnaWEgYW5kIFMuIFNhbmR3aWNoIElzbHMuJzsKJGxhbmdbJ0tOJ10gPSAnU2FpbnQgS2l0dHMgYW5kIE5ldmlzJzsKJGxhbmdbJ0xDJ10gPSAnU2FpbnQgTHVjaWEnOwokbGFuZ1snVkMnXSA9ICdTYWludCBWaW5jZW50ICZhbXA7IHRoZSBHcmVuYWRpbmVzJzsKJGxhbmdbJ1dTJ10gPSAnU2Ftb2EnOwokbGFuZ1snU00nXSA9ICdTYW4gTWFyaW5vJzsKJGxhbmdbJ1NUJ10gPSAnU2FvIFRvbWUgYW5kIFByaW5jaXBlJzsKJGxhbmdbJ1NBJ10gPSAnU2F1ZGkgQXJhYmlhJzsKJGxhbmdbJ1NOJ10gPSAnU2VuZWdhbCc7CiRsYW5nWydTQyddID0gJ1NleWNoZWxsZXMnOwokbGFuZ1snU0wnXSA9ICdTaWVycmEgTGVvbmUnOwokbGFuZ1snU0cnXSA9ICdTaW5nYXBvcmUnOwokbGFuZ1snU0knXSA9ICdTbG92ZW5pYSc7CiRsYW5nWydTSyddID0gJ1Nsb3ZhayBSZXB1YmxpYyc7CiRsYW5nWydTQiddID0gJ1NvbG9tb24gSXNsYW5kcyc7CiRsYW5nWydTTyddID0gJ1NvbWFsaWEnOwokbGFuZ1snWkEnXSA9ICdTb3V0aCBBZnJpY2EnOwokbGFuZ1snRVMnXSA9ICdTcGFpbic7CiRsYW5nWydMSyddID0gJ1NyaSBMYW5rYSc7CiRsYW5nWydTSCddID0gJ1N0LiBIZWxlbmEnOwokbGFuZ1snUE0nXSA9ICdTdC4gUGllcnJlIGFuZCBNaXF1ZWxvbiAnOwokbGFuZ1snU0QnXSA9ICdTdWRhbic7CiRsYW5nWydTUiddID0gJ1N1cmluYW1lJzsKJGxhbmdbJ1NKJ10gPSAnU3ZhbGJhcmQgJmFtcDsgSmFuIE1heWVuIElzbGFuZHMnOwokbGFuZ1snU1onXSA9ICdTd2F6aWxhbmQnOwokbGFuZ1snU0UnXSA9ICdTd2VkZW4nOwokbGFuZ1snQ0gnXSA9ICdTd2l0emVybGFuZCc7CiRsYW5nWydTWSddID0gJ1N5cmlhJzsKJGxhbmdbJ1RXJ10gPSAnVGFpd2FuJzsKJGxhbmdbJ1RKJ10gPSAnVGFqaWtpc3Rhbic7CiRsYW5nWydUWiddID0gJ1RhbnphbmlhJzsKJGxhbmdbJ1RIJ10gPSAnVGhhaWxhbmQnOwokbGFuZ1snVEcnXSA9ICdUb2dvJzsKJGxhbmdbJ1RLJ10gPSAnVG9rZWxhdSc7CiRsYW5nWydUTyddID0gJ1RvbmdhJzsKJGxhbmdbJ1RUJ10gPSAnVHJpbmlkYWQgYW5kIFRvYmFnbyc7CiRsYW5nWydUTiddID0gJ1R1bmlzaWEnOwokbGFuZ1snVFInXSA9ICdUJnV1bWw7cmtpeWUnOwokbGFuZ1snVE0nXSA9ICdUdXJrbWVuaXN0YW4nOwokbGFuZ1snVEMnXSA9ICdUdXJrcyBhbmQgQ2FpY29zIElzbGFuZHMnOwokbGFuZ1snVFYnXSA9ICdUdXZhbHUnOwokbGFuZ1snVUcnXSA9ICdVZ2FuZGEnOwokbGFuZ1snVUEnXSA9ICdVa3JhaW5lJzsKJGxhbmdbJ0FFJ10gPSAnVW5pdGVkIEFyYWIgRW1pcmF0ZXMnOwokbGFuZ1snVUsnXSA9ICdVbml0ZWQgS2luZ2RvbSc7CiRsYW5nWydVUyddID0gJ1VuaXRlZCBTdGF0ZXMnOwokbGFuZ1snVU0nXSA9ICdVUyBNaW5vciBPdXRseWluZyBJc2xhbmRzJzsKJGxhbmdbJ1VZJ10gPSAnVXJ1Z3VheSc7CiRsYW5nWydVWiddID0gJ1V6YmVraXN0YW4nOwokbGFuZ1snVlUnXSA9ICdWYW51YXR1JzsKJGxhbmdbJ1ZBJ10gPSAnVmF0aWNhbiBDaXR5IFN0YXRlIChIb2x5IFNlZSknOwokbGFuZ1snVkUnXSA9ICdWZW5lenVlbGEnOwokbGFuZ1snVk4nXSA9ICdWaWV0IE5hbSc7CiRsYW5nWydWRyddID0gJ1ZpcmdpbiBJc2xhbmRzIChCcml0aXNoKSc7CiRsYW5nWydWSSddID0gJ1ZpcmdpbiBJc2xhbmRzIChVLlMuKSc7CiRsYW5nWydXRiddID0gJ1dhbGxpcyBhbmQgRnV0dW5hIElzbGFuZHMnOwokbGFuZ1snRUgnXSA9ICdXZXN0ZXJuIFNhaGFyYSc7CiRsYW5nWydZRSddID0gJ1llbWVuJzsKJGxhbmdbJ1lVJ10gPSAnWXVnb3NsYXZpYSc7CiRsYW5nWydaTSddID0gJ1phbWJpYSc7CiRsYW5nWydaVyddID0gJ1ppbWJhYndlJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3InXSA9ICdTb3JyeSEgVGhlcmUgd2FzIGFuIGVycm9yIGhhbmRsaW5nIHlvdXIgZm9ybSBzdWJtaXNzaW9uLic7CiRsYW5nWydzdWJtaXRfZXJyb3InXSA9ICdGb3JtQnVpbGRlciBzdWJtaXQgZXJyb3I6ICVzJzsKJGxhbmdbJ3VwbG9hZHNfZXJyb3InXSA9ICdFcnJvciBjb21taXR0aW5nIGZpbGUgdG8gdGhlIHVwbG9hZHMgbW9kdWxlOiAlcyc7CiRsYW5nWydub3VwbG9hZHNfZXJyb3InXSA9ICdDb3VsZCBub3QgZmluZCB0aGUgdXBsb2FkcyBtb2R1bGUnOwokbGFuZ1sndXBsb2FkX2F0dGFjaF9lcnJvciddID0gJ1VwbG9hZC9BdHRhY2htZW50IGVycm9yIG9uIGZpbGUgJXMgKHRtcF9uYW1lOiAlcywgb2YgdHlwZSAlcyknOwokbGFuZ1snc3VibWlzc2lvbl9lcnJvcl9maWxlX2xvY2snXSA9ICdFcnJvci4gVW5hYmxlIHRvIG9idGFpbiBsb2NrIGZvciBmaWxlLic7CiRsYW5nWyd1bmNoZWNrZWRfYnlfZGVmYXVsdCddID0gJ0RlZmF1bHQ6IHVuY2hlY2tlZCc7CiRsYW5nWydjaGVja2VkX2J5X2RlZmF1bHQnXSA9ICdEZWZhdWx0OiBjaGVja2VkJzsKJGxhbmdbJ2VtYWlsX2RlZmF1bHRfdGVtcGxhdGUnXSA9ICdGb3JtQnVpbGRlciBTdWJtaXNzaW9uJzsKJGxhbmdbJ2VtYWlsX3RlbXBsYXRlX25vdF9zZXQnXSA9ICc8YnIvPkVtYWlsIFRlbXBsYXRlIG5vdCB5ZXQgc2V0ISc7CiRsYW5nWydtaXNzaW5nX2Ntc19tYWlsZXInXSA9ICdGb3JtQnVpbGRlcjogQ2Fubm90IGZpbmQgcmVxdWlyZWQgbW9kdWxlIENNU01haWxlciEnOwokbGFuZ1sndXNlcl9hcHByb3ZlZF9zdWJtaXNzaW9uJ10gPSAnVXNlciBhcHByb3ZlZCBzdWJtaXNzaW9uICVzIGZyb20gJXMnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdCddID0gJ0V2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdEVycm9yJ10gPSAnRXZlbnQgdHJpZ2dlcmVkIGlmIHRoZXJlIGlzIGFuIGVycm9yIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZCc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtRGlzcGxheSddID0gJ0V2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBkaXNwbGF5ZWQnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdCddID0gJzxwPkV2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQuPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIFRoZSBmb3JtIG5hbWUgKHN0cmluZyk8L2xpPg0KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBUaGUgaW50ZXJuYWwgZm9ybSBpZCAoaW50KTwvbGk+DQo8bGk+PGVtPnZhbHVlXzxuYW1lPjwvZW0+IC0gU3VwcGx5IGEgZGVmYXVsdCB2YWx1ZSB0byBhIGZpZWxkIHdpdGggdGhlIHNwZWNpZmllZCBuYW1lLjwvbGk+DQo8L3VsPiAnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdEVycm9yJ10gPSAnPHA+RXZlbnQgdHJpZ2dlcmVkIGlmIHRoZXJlIGlzIGFuIGVycm9yIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZDwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBUaGUgZm9ybSBuYW1lIChzdHJpbmcpPC9saT4NCjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gVGhlIGludGVybmFsIGZvcm0gaWQgKGludCk8L2xpPg0KPGxpPjxlbT5lcnJvcjwvZW0+IC0gQSBsaXN0IG9mIGFsbCBrbm93biBlcnJvcnMgKHN0cmluZyk8L2xpPg0KPC91bD4gJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1EaXNwbGF5J10gPSAnPHA+RXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIGRpc3BsYXllZDwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBUaGUgZm9ybSBuYW1lIChzdHJpbmcpPC9saT4NCjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gVGhlIGludGVybmFsIGZvcm0gaWQgKGludCk8L2xpPg0KPC91bD4gJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19yZXNwb25zZV9pZCddID0gJ1Jlc3BvbnNlIElELiBVc2VkIGJ5IEZvcm1Ccm93c2VyJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19wYXNzZWRfZnJvbV90YWcnXSA9ICdEZWZhdWx0IGZpZWxkIHZhbHVlczsgc2VlIG1vZHVsZSBoZWxwJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19maWVsZF9pZCddID0gJ0ZpZWxkIElEIGZvciBpbnRlcm5hbCBvcGVyYXRpb25zJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19mb3JtX25hbWUnXSA9ICdGb3JtIEFkxLEnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2Zvcm1faWQnXSA9ICdGb3JtIElEIGZvciBpbnRlcm5hbCBvcGVyYXRpb25zJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19nZW5lcmFsJ10gPSAnR2VuZXJhbCBwYXJhbWV0ZXJzIGZvciBpbnRlcm5hbCBvcGVyYXRpb25zJzsKJGxhbmdbJ3RlbXBsYXRlX3ZhcmlhYmxlX2hlbHAnXSA9ICc8aDM+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+aGVscHRleHQ8L3RkPjx0ZD50aGUgZmllbGQmIzAzOTtzIGhlbHAgdGV4dDwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmlucHV0PC90ZD48dGQ+dGhlIGZpZWxkJiMwMzk7cyBpbnB1dCBjb250cm9sIChlLmcuLCB0aGUgaW5wdXQgZmllbGQgaXRzZWxmKTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPm9wPC90ZD48dGQ+YSBjb250cm9sIGJ1dHRvbiBhc3NvY2lhdGVkIHdpdGggdGhlIGZpZWxkIGlmIGFwcGxpY2FibGUgKGUuZy4sIHRoZSBkZWxldGUgYnV0dG9uIGZvciBleHBhbmRhYmxlIHRleHQgaW5wdXQpPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aW5wdXRfaWQ8L3RkPjx0ZD50aGUgSUQgb2YgdGhlIGZpZWxkJiMwMzk7cyBpbnB1dCAodXNlZnVsIGZvciBsYWJlbCBmb3I9JnF1b3Q7Zm9vJnF1b3Q7KTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmFsaWFzPC90ZD48dGQ+dGhlIGFsaWFzIHNwZWNpZmllZCBmb3IgdGhpcyBmaWVsZDwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmlkPC90ZD48dGQ+dGhlIGludGVybmFsIC8gb3BhcXVlIGlkIEZvcm1CdWlsZGVyIHVzZXMgZm9yIHRoaXMgZmllbGQ8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT50eXBlPC90ZD48dGQ+dGhlIGZpZWxkJiMwMzk7cyBkYXRhIHR5cGU8L3RkPjwvdHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KPHRyPjx0ZD5maWVsZC0+bXVsdGlwbGVfcGFydHM8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYSBjb2xsZWN0aW9uIG9mIGNvbnRyb2xzPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+bGFiZWxfcGFydHM8L3RkPjx0ZD4xIGlmIHRoZSBjb2xsZWN0aW9uIG9mIGNvbnRyb2xzIGhhcyBzZXBhcmF0ZSBsYWJlbHMgZm9yIGVhY2ggY29udHJvbDwvdGQ+PC90cj4NCjwvdGFibGU+DQoNCjxwPkluIHRoZSBjYXNlIG9mIGEgbXVsdGlwYWdlIGZvcm0sIHlvdSB3aWxsIGFsc28gaGF2ZSBhY2Nlc3MgdG8gdGhlIHZhbHVlIG9mIHByZXZpb3VzIGZpZWxkcy4gVGhleQ0KYXJlIGluIHRoZSAkcHJldmlvdXMgYXJyYXksIG9yIGFjY2Vzc2libGUgYnkgdGhlaXIgbmFtZXMgKGUuZy4sIHskbXlmaWVsZC0+dmFsdWV9ICkuDQpZb3UgY2FuIHVzZSB0aGlzIGluIFN0YXRpYyBUZXh0IGZpZWxkcyBhcyB3ZWxsLCB3aGljaCBpcyBhIG5pY2Ugd2F5IHRvIHBlcnNvbmFsaXplIGZvcm1zITwvcD4NCg0KPHA+SW4gY2VydGFpbiBjYXNlcywgZmllbGQtPmlucHV0IGlzIGFjdHVhbGx5IGFuIGFycmF5IG9mIG9iamVjdHMgcmF0aGVyIHRoYW4gYW4gaW5wdXQuIFRoaXMgaGFwcGVucywgZm9yIGV4YW1wbGUsIGluIENoZWNrQm94R3JvdXBzIG9yIFJhZGlvQnV0dG9uR3JvdXBzLiBGb3IgdGhlbSwgeW91IGNhbiBpdGVyYXRlIHRocm91Z2ggZmllbGQtPmlucHV0LT5uYW1lIGFuZCBmaWVsZC0+aW5wdXQtPmlucHV0cy48L3A+DQogICAgDQo8cD5BZGRpdGlvbmFsIHNtYXJ0eSB2YXJpYWJsZXMgdGhhdCB5b3UgY2FuIHVzZSBpbmNsdWRlOjwvcD4NCjx0YWJsZT4NCjx0cj48dGg+VmFyaWFibGU8L3RoPjx0aD5WYWx1ZTwvdGg+PC90cj4NCjx0cj48dGQ+dG90YWxfcGFnZXM8L3RkPjx0ZD5udW1iZXIgb2YgcGFnZXMgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPnRoaXNfcGFnZTwvdGQ+PHRkPm51bWJlciBmbyB0aGUgY3VycmVudCBwYWdlIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD50aXRsZV9wYWdlX3hfb2ZfeTwvdGQ+PHRkPmRpc3BsYXlzICZxdW90O3BhZ2UgeCBvZiB5JnF1b3Q7IGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD5jc3NfY2xhc3M8L3RkPjx0ZD5DU1MgQ2xhc3MgZm9yIHRoZSBmb3JtPC90ZD48L3RyPg0KPHRyPjx0ZD5mb3JtX25hbWU8L3RkPjx0ZD5Gb3JtIG5hbWU8L3RkPjwvdHI+DQo8dHI+PHRkPmZvcm1faWQ8L3RkPjx0ZD5Gb3JtIGRhdGFiYXNlIElEPC90ZD48L3RyPg0KPHRyPjx0ZD5pbl9mb3JtYnJvd3NlcjwvdGQ+PHRkPjEgaWYgZm9ybSBpcyBiZWluZyB2aWV3ZWQgZnJvbSBGb3JtQnJvd3NlcjwvdGQ+PC90cj4NCjx0cj48dGQ+aW5fYWRtaW48L3RkPjx0ZD4xIGlmIGZvcm0gaXMgYmVpbmcgdmlld2VkIHZpYSBGb3JtQnJvd3NlciBhZG1pbjwvdGQ+PC90cj4NCjx0cj48dGQ+ZmJyX2lkPC90ZD48dGQ+UmVzcG9uc2UgSUQgaWYgZm9ybSBpcyBiZWluZyB2aWV3ZWQgZnJvbSBGb3JtQnJvd3NlcjwvdGQ+PC90cj4NCjx0cj48dGQ+cHJldjwvdGQ+PHRkPiZxdW90O0JhY2smcXVvdDsgYnV0dG9uIGZvciBtdWx0aXBhcnQgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPnN1Ym1pdDwvdGQ+PHRkPiZxdW90O0NvbnRpbnVlJnF1b3Q7IG9yICZxdW90O1N1Ym1pdCZxdW90OyBidXR0b24gZm9yIG11bHRpcGFydCBmb3JtcywgYWRqdXN0cyBhdXRvbWF0aWNhbGx5PC90ZD48L3RyPg0KPC90YWJsZT4NCjxwPkR1bm5vIHdoeSB5b3UmIzAzOTtkIHdhbnQgc29tZSBvZiB0aG9zZSwgYnV0IHRoZXJlIHlvdSBnby4uLjwvcD4NCic7CiRsYW5nWydwb3N0X2luc3RhbGwnXSA9ICdGb3JtQnVpbGRlciBpbnN0YWxsZWQuIFBsZWFzZSBjb25zdWx0IHRoZSBtb2R1bGUmIzAzOTtzIEhlbHAgcGFnZSBmb3IgZG9jdW1lbnRhdGlvbi4nOwokbGFuZ1snaGVscCddID0gJzxoMz5XaGF0IERvZXMgVGhpcyBEbz88L2gzPg0KPHA+VGhlIEZvcm0gQnVpbGRlciBNb2R1bGUgYWxsb3dzIHlvdSB0byBjcmVhdGUgZm9ybXMgKGluIGZhY3QsIGl0JiMwMzk7cyBhIHJlcGxhY2VtZW50IG9mIHRoZSBvcmlnaW5hbCBGZWVkYmFjayBGb3JtIG1vZHVsZSksIHdpdGgNCnRoZSBhZGRlZCBwb3dlciBvZiBkYXRhYmFzZSBzdG9yYWdlLiBXaXRoIGl0cyBjb21wYW5pb24gbW9kdWxlIEZvcm0gQnJvd3NlciwgeW91IGNhbiB1c2UgaXQgdG8gY3JlYXRlIHNpbXBsZSBkYXRhYmFzZSBhcHBsaWNhdGlvbnMuPC9wPg0KPHA+VGhlIGZvcm1zIGNyZWF0ZWQgdXNpbmcgdGhlIEZvcm0gQnVpbGRlciBtYXkgYmUgaW5zZXJ0ZWQNCmludG8gdGVtcGxhdGVzIGFuZC9vciBjb250ZW50IHBhZ2VzLiBGb3JtcyBtYXkgY29udGFpbiBtYW55IGtpbmRzIG9mIGlucHV0cywgYW5kIG1heSBoYXZlDQp2YWxpZGF0aW9uIGFwcGxpZWQgdG8gdGhlc2UgaW5wdXRzLiBUaGUgcmVzdWx0cyBvZiB0aGVzZSBmb3JtcyBtYXkgYmUgaGFuZGxlZCBpbiBhIHZhcmlldHkgb2Ygd2F5cy48L3A+DQoNCjxoMz5Ib3cgRG8gSSBVc2UgaXQ/PC9oMz4NCjxQPkluc3RhbGwgaXQsIGFuZCBwb2tlIGFyb3VuZCB0aGUgbWVudXMuIFBsYXkgd2l0aCBpdC4gVHJ5IGNyZWF0aW5nIGZvcm1zLCBhbmQgYWRkaW5nIHRoZW0gdG8geW91ciBjb250ZW50Lg0KSWYgeW91IGdldCBzdHVjaywgY2hhdCB3aXRoIG1lIG9uIHRoZSAjY21zIElSQyBjaGFubmVsLCBwb3N0IHRvIHRoZSBmb3J1bSwgc2VuZCBtZSBlbWFpbCwgb3IsIGlmIHlvdSYjMDM5O3JlDQpyZWFsbHkgZGVzcGVyYXRlLCB0cnkgcmVhZGluZyB0aGUgaW5zdHJ1Y3Rpb25zIG9uIHRoZSByZXN0IG9mIHRoaXMgcGFnZS48L1A+DQoNCjxoMz5Ib3cgRG8gSSBDcmVhdGUgYSBGb3JtPC9oMz4NCjxwPkluIHRoZSBDTVMgQWRtaW4gTWVudSwgeW91IHNob3VsZCBnZXQgYSBuZXcgbWVudSBpdGVtIGNhbGxlZCBGb3JtQnVpbGRlci4gQ2xpY2sgb24gdGhpcy4gT24gdGhlIHBhZ2UNCnRoYXQgZ2V0cyBzaG93biwgdGhlcmUgYXJlIG9wdGlvbnMgKGF0IHRoZSBib3R0b20gb2YgdGhlIGxpc3Qgb2YgRm9ybXMpIHRvIEFkZCBhIE5ldyBGb3JtIG9yIE1vZGlmeQ0KQ29uZmlndXJhdGlvbi48L3A+DQoNCjxoMz5BZGRpbmcgYSBGb3JtIHRvIGEgUGFnZTwvaDM+DQo8cD5JbiB0aGUgbWFpbiBGb3JtQnVpbGRlciBhZG1pbiBwYWdlLCB5b3UgY2FuIHNlZSBhbiBleGFtcGxlIG9mIHRoZSB0YWcgdXNlZCB0byBkaXNwbGF5IGVhY2ggZm9ybS4gSXQgbG9va3MNCnNvbWV0aGluZyBsaWtlIHtGb3JtQnVpbGRlciBmb3JtPSYjMDM5O3NhbXBsZV9mb3JtJiMwMzk7fTwvcD4NCjxwPkJ5IGNvcHlpbmcgdGhpcyB0YWcgaW50byB0aGUgY29udGVudCBvZiBhIHBhZ2UsIG9yIGludG8gYSB0ZW1wbGF0ZSwgd2lsbCBjYXVzZSB0aGF0IGZvcm0gdG8gYmUgZGlzcGxheWVkLg0KSW4gdGhlb3J5LCB5b3UgY2FuIGhhdmUgbXVsdGlwbGUgZm9ybXMgb24gYSBwYWdlIGlmIHlvdSByZWFsbHkgd2FudCB0by4gQmUgY2FyZWZ1bCB3aGVuIHBhc3RpbmcgdGhlIHRhZw0KaW50byBhIHBhZ2UmIzAzOTtzIGNvbnRlbnQgaWYgeW91IHVzZSBhIFdZU0lXWUcgZWRpdG9yIHN1Y2ggYXMgVGlueU1DRSwgRkNLRWRpdCwgb3IgSFRNTEFyZWEuIFRoZXNlIGVkaXRvcnMgbWF5IHN0ZWFsdGhpbHkNCmNoYW5nZSB0aGUgcXVvdGUgbWFya3MgKCZxdW90OykgaW50byBIVE1MIGVudGl0aWVzICgmYW1wO3F1b3Q7KSwgYW5kIHRoZSBmb3JtcyB3aWxsIG5vdCBzaG93IHVwLiBUcnkgdXNpbmcNCnNpbmdsZSBxdW90ZXMgKCYjMDM5Oykgb3IgZWRpdGluZyB0aGUgSFRNTCBkaXJlY3RseS48L3A+DQoNCjxoMz5Xb3JraW5nIHdpdGggRm9ybXM8L2gzPg0KPHA+QnkgY2xpY2tpbmcgb24gYSBGb3JtJiMwMzk7cyBuYW1lLCB5b3UgZW50ZXIgdGhlIEZvcm0gRWRpdCBwYWdlLiBUaGVyZSBhcmUgc2V2ZXJhbCB0YWJzLCB3aGljaCBhcmUgZGVzY3JpYmVkIGJlbG93OjwvcD4NCjxoND5NYWluPC9oND4NCjxwPlRoaXMgaXMgdGhlIG1haW4gcGxhY2UgeW91JiMwMzk7bGwgd29yayBvbiB5b3VyIGZvcm0uIEhlcmUsIHlvdSBnaXZlIGl0IGEgbmFtZSwgYW4gYWxpYXMgKHdoaWNoIGlzIHVzZWQgdG8gaWRlbnRpZnkgaXQgZm9yIHBsYWNpbmcgaXQgaW4gYSBwYWdlIG9yIHRlbXBsYXRlKSwgYW5kLCBvcHRpb25hbGx5LCBhIENTUyBjbGFzcyB3aXRoIHdoaWNoIHRvIHdyYXAgdGhlIHdob2xlIHRoaW5nLjwvcD4NCjxwPkJlbG93IHRoaXMsIGlmIHlvdSBoYXZlIGl0IGVuYWJsZWQsIGlzIHRoZSAmcXVvdDtmYXN0IGZpZWxkIGFkZGVyJnF1b3Q7IHB1bGxkb3duLCB0aGF0IGxldHMgeW91IHF1aWNrbHkgYWRkIGEgZmllbGQgdG8gdGhlIGVuZCBvZiB5b3VyIGZvcm0gYnkgc2VsZWN0aW5nIHRoZSBmaWVsZCB0eXBlLjwvcD4NCjxwPkJlbG93IHRoaXMgaXMgdGhlIGxpc3Qgb2YgZmllbGRzIHRoYXQgbWFrZSB1cCB5b3VyIGZvcm0uIE1vcmUgZGV0YWlsIG9uIHRoaXMgaXMgZGVzY3JpYmVkIGJlbG93LjwvcD4NCjxoND5Gb3JtIFN1Ym1pc3Npb248L2g0Pg0KPHA+V2hlbiB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQsIHlvdSBjYW4gZWl0aGVyIHJlZGlyZWN0IHRoZSB1c2VyIHRvIGFub3RoZXIgcGFnZSBvZiB5b3VyIHNpdGUsIG9yIHlvdSBjYW4gcHJlc2VudCB0aGUgdXNlciBzb21lIG1lc3NhZ2UgKHdoaWNoIGNhbiBjb250YWluIGFueSBvZiB0aGUgdXNlciYjMDM5O3MgZm9ybSBlbnRyaWVzLCBvciBqdXN0IHN0YXRpYyB0ZXh0KS4gSW4gdGhpcyB0YWIsIHlvdSBzZWxlY3Qgd2hpY2ggb2YgdGhlc2UgYXBwcm9hY2hlcyB5b3Ugd2lzaCB0byB1c2UsIGFuZCwgaWYgeW91IGNob3NlIHJlZGlyZWN0aW9uLCBpdCBhbGxvd3MgeW91IHRvIHBpY2sgdGhlIHBhZ2UgdG8gcmVkaXJlY3QgdXNlcnMgdG8gYWZ0ZXIgYSBzdWNjZXNzZnVsIGZvcm0gc3VibWlzc2lvbi48L3A+DQo8cD5BbHNvIG9uIHRoaXMgcGFnZSwgeW91IGNhbiBzcGVjaWZ5IHRoZSBsYWJlbHMgb2YgdmFyaW91cyBzdWJtaXNzaW9uIGJ1dHRvbnMgKCZxdW90O1ByZXZpb3VzJnF1b3Q7LCAmcXVvdDtuZXh0JnF1b3Q7LCAmcXVvdDtzdWJtaXQmcXVvdDspLiBZb3UgY2FuIGFsc28gb3B0IHRvIGhhdmUgc29tZSBKYXZhc2NyaXB0IGFkZGVkIHRvIHRoZSBsYXN0IHBhZ2Ugb2YgYSBmb3JtIHRoYXQgd2lsbCBwcmV2ZW50IG11bHRpcGxlIHN1Ym1pc3Npb25zICh1c2VmdWwgb24gc2xvdyBzZXJ2ZXJzKS48L3A+DQo8aDQ+Rm9ybSBEaXNwbGF5IE9wdGlvbnM8L2g0Pg0KPHA+VGhpcyB0YWIgYWxsb3dzIGZvciBvdGhlciBmb3JtIGN1c3RvbWl6YXRpb25zLCBsaWtlIHRoZSBzeW1ib2wgdG8gc2hvdyBmb3IgcmVxdWlyZWQgZmllbGRzLjwvcD4NCjxoND5DYXB0Y2hhIFNldHRpbmdzPC9oND4NCjxwPklmIHlvdSBoYXZlIGluc3RhbGxlZCB0aGUgQ2FwdGNoYSBtb2R1bGUsIHRoaXMgdGFiIGxldHMgeW91IGNvbmZpZ3VyZSB0aGUgQ2FwdGNoYSBzZXR0aW5ncyBmb3IgeW91ciBmb3JtLjwvcD4NCjxoND5Gb3JtIFRlbXBsYXRlPC9oND4NCjxwPlRoaXMgaXMgd2hlcmUgeW91IGRvIHlvdXIgY3VzdG9taXphdGlvbiB3b3JrIG9mIHlvdXIgZm9ybSYjMDM5O3MgU21hcnR5IFRlbXBsYXRlLiBTZWUgdGhlIHNlY3Rpb24gY2FsbGVkIEZvcm0gVGVtcGxhdGUgVmFyaWFibGVzIGJlbG93LjwvcD4NCjxwPlRoZSBmb3JtIHNob3VsZCBkZWZhdWx0IHRvIGEgQ3VzdG9tIHRlbXBsYXRlIHRoYXQgZG9jdW1lbnRzIHRoZSBTbWFydHkgdGFncyBhdmFpbGFibGUgdG8geW91LjwvcD4NCjxwPlVubGVzcyB5b3UmIzAzOTtyZSBhIFNtYXJ0eSBleHBlcnQsIHlvdSBwcm9iYWJseSBkb24mIzAzOTt0IHdhbnQgdG8gbWVzcyBhcm91bmQgd2l0aCB0aGlzLiBJZiB5b3UgYXJlIGEgU21hcnR5IGV4cGVydCwgdGhpcyBpcyB3aGVyZSB5b3UgY2FuIHVubGVhc2ggeW91ciBtYWdpYy48L3A+DQo8aDQ+U3VibWlzc2lvbiBUZW1wbGF0ZTwvaDQ+DQo8cD5JZiwgaW4gdGhlIEZvcm0gU3VibWlzc2lvbiB0YWIsIHlvdSBzZWxlY3RlZCAmIzAzOTtEaXNwbGF5ICZxdW90O1N1Ym1pc3Npb24gVGVtcGxhdGUmcXVvdDssIHRoaXMgaXMgd2hlcmUgeW91IGNhbiBjcmVhdGUgdGhhdCB0ZW1wbGF0ZS4gVGhlcmUgaXMgYSBkaXNwbGF5IG9mIHdoaWNoIHNtYXJ0eSB2YXJpYWJsZXMgYXJlIGF2YWlsYWJsZSB0byB5b3UsIGFuZCBhIGJ1dHRvbiB0byBnZW5lcmF0ZSBhIHNhbXBsZSB0ZW1wbGF0ZS48L3A+DQo8cD5JZiB5b3UmIzAzOTtyZSBhIFNtYXJ0eSBleHBlcnQsIHlvdSBjYW4gZG8gYWxsIG1hbm5lciBvZiBjcmVhdGl2ZSBhbmQgcG93ZXJmdWwgdGhpbmdzIGhlcmUuIElmIHlvdSYjMDM5O3JlIG5vdCBhIFNtYXJ0eSBleHBlcnQsIHlvdSBtaWdodCBqdXN0IHdhbnQgdG8gdXNlIHRoZSBkZWZhdWx0Lg0KPC9wPg0KDQo8aDM+QWRkaW5nIEZpZWxkcyB0byB5b3VyIEZvcm08L2gzPg0KPHA+VGhlIHR5cGVzIG9mIGZpZWxkcyB0aGF0IGFyZSBjdXJyZW50bHkgc3VwcG9ydGVkIGZpdCBpbnRvIGZvdXIgZ3JvdXBzOiBzdGFuZGFyZCBpbnB1dCBmaWVsZHMsIGRpc3BsYXkgY29udHJvbCBmaWVsZHMsIGVtYWlsLXNwZWNpZmljIGZpZWxkcywgYW5kIGZvcm0gcmVzdWx0IGhhbmRsaW5nIGZpZWxkcyAoYWxzbyBjYWxsZWQgRm9ybSBEaXNwb3NpdGlvbnMgaW4gcGxhY2VzKTo8L3A+DQo8dWw+DQo8bGk+U3RhbmRhcmQgSW5wdXQgRmllbGRzIC0gdGhlc2UgYXJlIGlucHV0cyB0aGF0IGFsbG93IGVudHJ5IG9mIHR5cGljYWwgZm9ybSBlbGVtZW50czsgdGV4dCBpbnB1dHMsIHJhZGlvIGJ1dHRvbnMsIGV0Yy48L2xpPg0KPGxpPkRpc3BsYXkgQ29udHJvbCBGaWVsZHMgLSB0aGVzZSBpbnB1dCBjb250cm9sIGhvdyB0aGUgdXNlciB3aWxsIHNlZSB0aGUgZGlzcGxheSBvZiB0aGUgZm9ybTsgcGFnZSBicmVha3MsIHN0YXRpYyB0ZXh0LCBldGMuPC9saT4NCjxsaT5FbWFpbC1zcGVjaWZpYyBGaWVsZHMgLSBzb21lIGZvcm1zIGdlbmVyYXRlIGVtYWlsLCBhbmQgZW1haWwtc3BlY2lmaWMgZmllbGRzIGNhbiBhbHRlciBhdHRyaWJ1dGVzIG9mIHRoZSBlbWFpbHMgc2VudC48L2xpPg0KPGxpPkZvcm0gRGlzcG9zaXRpb25zIC0gVGhlc2UgZGV0ZXJtaW5lIHdoYXQgaGFwcGVucyB3aGVuIHRoZSB1c2VyDQpzdWJtaXRzIHRoZSBmb3JtOyBmb3IgZWFjaCByZXN1bHQgaGFuZGxpbmcgZmllbGQsIHNvbWUgbWV0aG9kIG9mIHRyYW5zbWl0dGluZywgc2F2aW5nLCBvciBlbWFpbGluZyB0aGUNCmZvcm0gY29udGVudHMgdGFrZXMgcGxhY2UuIEEgZm9ybSBtYXkgaGF2ZSBtdWx0aXBsZSBmb3JtIGRpc3Bvc2l0aW9ucy48L2xpPg0KPC91bD4NCjxwPkZvcm0gZmllbGRzIGFyZSBhc3NpZ25lZCBuYW1lcy4gVGhlc2UgbmFtZXMgaWRlbnRpZnkgdGhlIGZpZWxkLCBub3Qgb25seSBvbiB0aGUgc2NyZWVuIGFzIGxhYmVscyBmb3IgdGhlIHVzZXIsDQpidXQgaW4gdGhlIGRhdGEgd2hlbiBpdCYjMDM5O3Mgc3VibWl0dGVkIHNvIHlvdSBrbm93IHdoYXQgdGhlIHVzZXIgaXMgcmVzcG9uZGluZyB0by4gUGhyYXNpbmcgdGhlIG5hbWUgbGlrZSBhIHF1ZXN0aW9uDQppcyBhIGhhbmR5IHdheSBvZiBtYWtpbmcgaXQgY2xlYXIgdG8gdGhlIHVzZXIgd2hhdCBpcyBleHBlY3RlZC4gU2ltaWxhcmx5LCBtYW55IGZpZWxkcyBoYXZlIGJvdGggTmFtZXMgYW5kIFZhbHVlcy4NClRoZSBOYW1lcyBhcmUgd2hhdCBnZXRzIHNob3duIHRvIHRoZSB1c2VyOyB0aGUgVmFsdWUgaXMgd2hhdCBnZXRzIHNhdmVkIG9yIHRyYW5zbWl0dGVkIHdoZW4gdGhlIHVzZXIgc3VibWl0cw0KdGhlIGZvcm0uIFRoZSBWYWx1ZXMgYXJlIG5ldmVyIHNlZW4gYnkgdGhlIHVzZXIsIG5vciBhcmUgdGhleSB2aXNpYmxlIGluIHRoZSBIVE1MLCBzbyBpdCYjMDM5O3Mgc2FmZSB0byB1c2UgZm9yDQplbWFpbCBhZGRyZXNzZXMgYW5kIHN1Y2guPC9wPg0KPHA+U29tZSBmaWVsZHMgY2FuIGhhdmUgbXVsdGlwbGUgdmFsdWVzLCBvciBtdWx0aXBsZSBuYW1lL3ZhbHVlIHBhaXJzLiBXaGVuIHlvdSBmaXJzdCBjcmVhdGUgc3VjaCBhIGZpZWxkLA0KdGhlcmUgbWF5IG5vdCBiZSBzdWZmaWNpZW50IGlucHV0cyBmb3IgeW91IHRvIHNwZWNpZnkgYWxsIHRoZSB2YWx1ZXMgeW91IHdhbnQuIFRvIGdldCBtb3JlIHNwYWNlIGZvciBpbnB1dHRpbmcNCnRoZXNlIHZhbHVlcywgdXNlIHRoZSBidXR0b25zIGF0IHRoZSBib3R0b20gb2YgdGhlIHBhZ2UgZm9yIGFkZGluZyBvcHRpb25zLjwvcD4NCjxwPkZpZWxkcyBjYW4gYmUgYXNzaWduZWQgdmFsaWRhdGlvbiBydWxlcywgd2hpY2ggdmFyeSBhY2NvcmRpbmcgdG8gdGhlIHR5cGUgb2YgdGhlIGZpZWxkLiBUaGVzZSBydWxlcyBoZWxwDQplbnN1cmUgdGhhdCB0aGUgdXNlciBlbnRlcnMgdmFsaWQgZGF0YS4gVGhleSBtYXkgYWxzbyBiZQ0Kc2VwYXJhdGVseSBtYXJrZWQgJnF1b3Q7UmVxdWlyZWQmcXVvdDssIHdoaWNoIHdpbGwgZm9yY2UgdGhlIHVzZXIgdG8gZW50ZXIgYSByZXNwb25zZS48L3A+DQo8cD5GaWVsZHMgYWxzbyBtYXkgYmUgYXNzaWduZWQgYSBDU1MgY2xhc3MuIFRoaXMgc2ltcGx5IHdyYXBzIHRoZSBpbnB1dCBpbiBhIGRpdiB3aXRoIHRoYXQgY2xhc3MsIHNvIGFzIHRvIGFsbG93DQpjdXN0b21pemVkIGxheW91dHMuIFRvIHVzZSB0aGlzIGVmZmVjdGl2ZWx5LCB5b3UgbWF5IG5lZWQgdG8gJnF1b3Q7dmlldyBzb3VyY2UmcXVvdDsgb24gdGhlIGdlbmVyYXRlZCBmb3JtLCBhbmQgdGhlbg0Kd3JpdGUgeW91ciBDU1MuPC9wPg0KPHVsPg0KPGxpPlN0YW5kYXJkIElucHV0cw0KPHVsPjxsaT5UZXh0IElucHV0LiBUaGlzIGlzIGEgc3RhbmRhcmQgdGV4dCBmaWVsZC4gWW91IGNhbiBsaW1pdCB0aGUgbGVuZ3RoLCBhbmQgYXBwbHkgdmFyaW91cyB2YWxpZGF0aW9uDQpmdW5jdGlvbnMgdG8gdGhlIGZpZWxkLjwvbGk+DQo8bGk+VGV4dCBBcmVhLiBUaGlzIGlzIGEgYmlnLCBmcmVlLWZvcm0gdGV4dCBpbnB1dCBmaWVsZC48L2xpPg0KPGxpPkNoZWNrYm94LiBUaGlzIGlzIGEgc3RhbmRhcmQgY2hlY2sgYm94LjwvbGk+DQo8bGk+QnV0dG9uLiBUaGlzIGRvZW5zJiMwMzk7dCBkbyBhbnl0aGluZywgYnV0IHlvdSBjYW4gaG9vayBpdCBpbnRvIHNvbWUgSmF2YXNjcmlwdC48L2xpPg0KPGxpPkNoZWNrYm94IEdyb3VwLiBUaGlzIGlzIGEgY29sbGVjdGlvbiBvZiBjaGVja2JveGVzLiBUaGUgb25seSBkaWZmZXJlbmNlIGJldHdlZW4gdGhpcyBpbnB1dCBhbmQgYQ0KY29sbGVjdGlvbiBvZiBDaGVja2JveCBpbnB1dHMgaXMgdGhhdCB0aGV5IGFyZSBwcmVzZW50ZWQgYXMgYSBncm91cCwgd2l0aCBvbmUgbmFtZSwgYW5kIGNhbiBoYXZlIGEgdmFsaWRhdGlvbiBmdW5jdGlvbiByZXF1aXJpbmcgdGhhdCB5b3UgY2hlY2sgb25lIG9yIG1vcmUgb2YgdGhlIGJveGVzIGluIHRoZSBncm91cC48L2xpPg0KPGxpPlJhZGlvIEdyb3VwLiBUaGlzIGlzIGEgY29sbGVjdGlvbiBvZiByYWRpbyBidXR0b25zLiBPbmx5IG9uZSBvZiB0aGUgZ3JvdXAgbWF5IGJlIHNlbGVjdGVkIGJ5IHRoZSB1c2VyLjwvbGk+DQo8bGk+UHVsbGRvd24uIFRoaXMgaXMgYSBzdGFuZGFyZCBwdWxsZG93biBtZW51LiBJdCYjMDM5O3MgcmVhbGx5IGNvbmNlcHR1YWxseSB0aGUgc2FtZSB0aGluZyBhcyBhIHJhZGlvIGJ1dHRvbg0KZ3JvdXAsIGJ1dCBpcyBiZXR0ZXIgd2hlbiB0aGVyZSBhcmUgYSBsYXJnZSBudW1iZXIgb2Ygb3B0aW9ucy48L2xpPg0KPGxpPk11bHRpc2VsZWN0LiBUaGlzIGlzIGEgbXVsdGktc2VsZWN0IGZpZWxkLiBJdCYjMDM5O3MgcmVhbGx5IGNvbmNlcHR1YWxseSB0aGUgc2FtZSB0aGluZyBhcyBhIGNoZWNrYm94IGJ1dHRvbg0KZ3JvdXAsIGJ1dCBpcyBiZXR0ZXIgd2hlbiB0aGVyZSBhcmUgYSBsYXJnZSBudW1iZXIgb2Ygb3B0aW9ucywgYXMgeW91IGNhbiBsaW1pdCB0aGUgbnVtYmVyIGRpc3BsYXllZCBvbiB0aGUgc2NyZWVuIGF0IGFueSBvbmUgdGltZS48L2xpPg0KPGxpPlBhc3N3b3JkLiBUaGlzIGlzIGFuIGFzdGVyaXNrZWQtb3V0IHRleHQgZmllbGQsIHVzZWZ1bCBmb3IgcGFzc3dvcmRzLjwvbGk+DQo8bGk+UGFzc3dvcmQgQWdhaW4gKHZlcmlmeSkuIFRoaXMgaXMgYSBmaWVsZCB0aGF0IG11c3QgbWF0Y2ggYSBQYXNzd29yZCBmaWVsZCBmb3Igc3VibWlzc2lvbg0KdG8gc3VjY2VlZC48L2xpPg0KPGxpPlN0YXRlLiBUaGlzIGlzIGEgcHVsbGRvd24gbGlzdGluZyB0aGUgU3RhdGVzIG9mIHRoZSBVLlMuPC9saT4NCjxsaT5DYW5hZGlhbiBQcm92aW5jZS4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIENhbmFkaWFuIFByb3ZpbmNlcyAoQ29udHJpYnV0ZWQgYnkgTm9lbCBNY0dyYW4uIFRoYW5rcyEpPC9saT4NCjxsaT5Db3VudHJpZXMuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBDb3VudHJpZXMgb2YgdGhlIHdvcmxkIChhcyBvZiBKdWx5IDIwMDUpLjwvbGk+DQo8bGk+RGF0ZSBQaWNrZXIuIFRoaXMgaXMgYSB0cmlwbGUgcHVsbGRvd24gYWxsb3dpbmcgdGhlIHVzZXIgdG8gc2VsZWN0IGEgZGF0ZS48L2xpPg0KPGxpPlRpbWUgUGlja2VyLiBUaGlzIGlzIGEgc2V0IG9mIHB1bGxkb3ducyBhbGxvd2luZyB0aGUgdXNlciB0byBzZWxlY3QgYSB0aW1lICh1c2luZyAxMiBvciAyNCBob3VyIGNsb2NrKS48L2xpPg0KPGxpPkZpbGUgVXBsb2FkLiBUaGlzIGlzIGEgZmlsZSB1cGxvYWQgZmllbGQuPC9saT4NCjxsaT5MaW5rIChVc2VyIEVudGVyZWQpLiBUaGlzIGNyZWF0ZXMgYSBkb3VibGUgaW5wdXQgZmllbGQgZm9yIGdldHRpbmcgYSBsaW5rIFVSTCBhbmQgbGluayB0aXRsZS48L2xpPg0KPGxpPlRleHQgRmllbGQgKE11bHRpcGxlKS4gVGhpcyBmaWVsZCBjcmVhdGVzIG9uZSBvciBtb3JlIHRleHQgaW5wdXRzIHdpdGggYWRkIGFuZCBkZWxldGUgYnV0dG9ucywgZWZmZWN0aXZlbHkgZ2l2aW5nIHRoZSBlbmQgdXNlciBhIHdheSBvZiBjcmVhdGluZyB2YXJpYWJsZS1sZW5ndGggbGlzdHMuPC9saT4NCjwvdWw+PC9saT4NCg0KPGxpPkVtYWlsLXNwZWNpZmljIElucHV0cw0KPHVsPjxsaT5FbWFpbCAmcXVvdDtGcm9tIEFkZHJlc3MmcXVvdDsgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgdGhlaXIgZW1haWwgYWRkcmVzcy4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIGFkZHJlc3MgaW4gdGhlICZxdW90O0Zyb20mcXVvdDsgZmllbGQuPC9saT4NCjxsaT5FbWFpbCAmcXVvdDtGcm9tIE5hbWUmcXVvdDsgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgdGhlaXIgbmFtZS4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIG5hbWUgaW4gdGhlICZxdW90O0Zyb20mcXVvdDsgZmllbGQuPC9saT4NCjxsaT5FbWFpbCBTdWJqZWN0IEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIGEgc3ViamVjdCBmb3IgdGhlaXIgZW1haWwuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBpbiB0aGUgJnF1b3Q7U3ViamVjdCZxdW90OyBmaWVsZC4gVGhpcyBtYXkgY2F1c2UgdHJvdWJsZSB3aXRoIGNlcnRhaW4gZGlzcG9zaXRpb25zIHRoYXQgd2FudCB0byBjb250cm9sIHRoZSBFbWFpbCBTdWJqZWN0LCBzbyB1c2UgaXQgd2l0aCBjYXV0aW9uLjwvbGk+DQo8L3VsPjwvbGk+DQoNCjxsaT5EaXNwbGF5IENvbnRyb2wgRmllbGRzPHVsPg0KPGxpPi1QYWdlIEJyZWFrLiBUaGlzIGFsbG93cyB5b3UgdG8gc3BsaXQgeW91ciBmZWVkYmFjayBmb3JtIGludG8gbXVsdGlwbGUgcGFnZXMuIEVhY2ggcGFnZSBpcw0KaW5kZXBlbmRlbnRseSB2YWxpZGF0ZWQuIFRoaXMgaXMgZ29vZCBmb3IgYXBwbGljYXRpb25zIGxpa2Ugb25saW5lIHN1cnZleXMuPC9saT4NCjxsaT4tRmllbGRzZXQgU3RhcnQuIENvbWJpbmVkIHdpdGggRmllbGRzZXQgRW5kLCB0aGlzIGFsbG93cyB5b3UgdG8gZ3JvdXAgdmFyaW91cyBmaWVsZHMgd2l0aGluIHlvdXIgZm9ybS4gVXNlIHRoaXMgdG8gc3RhcnQgYSBnaXZlbiBncm91cGluZy48L2xpPg0KPGxpPi1GaWVsZHNldCBFbmQuIENvbWJpbmVkIHdpdGggRmllbGRzZXQgU3RhcnQsIHRoaXMgYWxsb3dzIHlvdSB0byBncm91cCB2YXJpb3VzIGZpZWxkcyB3aXRoaW4geW91ciBmb3JtLiBVc2UgdGhpcyB0byBlbmQgYSBnaXZlbiBncm91cGluZy48L2xpPg0KPGxpPi1IaWRkZW4gRmllbGQuIFRoaXMgYWxsb3dzIHlvdSB0byBlbWJlZCBhIGhpZGRlbiBmaWVsZCBpbiB5b3VyIGZvcm0uPC9saT4NCjxsaT4tU3RhdGljIFRleHQuIFRoaXMgYWxsb3dzIHlvdSB0byBwdXQgdGV4dCBvciBhIGxhYmVsIGluIHRoZSBtaWRkbGUgb2YgeW91ciBmb3JtLiBUaGlzIGlzIHVzZWZ1bCBmb3IgZ2l2aW5nIGFkZGl0aW9uYWwgaGVscCB0ZXh0LCBlc3BlY2lhbGx5IGlmIHlvdSYjMDM5O3JlIG5vdCB1c2luZyBhIEN1c3RvbSBUZW1wbGF0ZSB0byByZW5kZXIgeW91ciBmb3JtLjwvbGk+DQo8bGk+LVN0YXRpYyBMaW5rLiBUaGlzIGFsbG93cyB5b3UgdG8gcHV0IGEgbGluayB0byBhIGdpdmVuIHBhZ2UgaW50byB5b3VyIGZvcm0uIE9wdGlvbmFsbHksIHlvdSBjYW4gaGF2ZSBpdCBhdXRvcG9wdWxhdGUgd2l0aCB0aGUgcGFnZSB3aGVyZSB0aGUgZm9ybSBpcyBlbWJlZGRlZCAodXNlZnVsIGlmIHlvdSYjMDM5O3JlIHNlbmRpbmcgcmVzdWx0cyB2aWEgZW1haWwpLjwvbGk+DQo8bGk+LUNvbXB1dGVkIEZpZWxkLiBUaGlzIGFsbG93cyB5b3UgdG8gZW1iZWQgYSBjb21wdXRlZCBmaWVsZCBpbiB5b3VyIGZvcm0uIEl0IGlzIG5vdCB2aXNpYmxlIHRvIHRoZSB1c2VyIHVudGlsIGFmdGVyIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZC4gSXQgYWxsb3dzIHlvdSB0byBkbyBzaW1wbGUgYXJpdGhtZXRpYyBvciBzdHJpbmcgY29uY2F0ZW5hdGlvbi48L2xpPg0KPGxpPi1VbmlxdWUgSW50ZWdlciAoU2VyaWFsKS4gVGhpcyBpcyBhbiBpbnRlZ2VyIHRoYXQgaW5jcmVhc2VzIGV2ZXJ5IHRpbWUgc29tZW9uZSBoaXRzIHlvdXIgZm9ybS4gWW91ciByZXN1bHRzIG1heSBub3QgYmUgc2VxdWVudGlhbCwgYnV0IHRoZXkgd2lsbCBpbmNyZWFzZSBtb25vdG9uaWNhbGx5LjwvbGk+DQo8bGk+LVVzZXIgVGFnLiBUaGlzIGNhbGxzIHRoZSBzcGVjaWZpZWQgVXNlciBEZWZpbmVkIFRhZywgYW5kIGRpc3BsYXlzIGFueXRoaW5nIGl0IHJldHVybnMuIFRoZSBVRFQgZ2V0cyBjYWxsZWQgYW55IHRpbWUgdGhlIGZpZWxkIHdvdWxkIGJlIHZpc2libGUuPC9saT4NCjwvdWw+PC9saT4NCjxsaT4tTW9kdWxlIEluY2x1ZGUgVGFnLiBUaGlzIGFsbG93cyB5b3UgdG8gZW1iZWQgb3RoZXIgbW9kdWxlIG91dHB1dCBpbnRvIHlvdXIgZm9ybSwgZS5nLiwgYSBsaXN0IG9mIHByb2R1Y3RzIGZyb20gdGhlIFByb2R1Y3RzIG1vZHVsZS48L2xpPg0KDQo8bGk+Rm9ybSBIYW5kbGluZyBJbnB1dHMgKERpc3Bvc2l0aW9ucykNCjx1bD48bGk+KkNhbGwgYSBVc2VyIERlZmluZWQgVGFnIFdpdGggdGhlIEZvcm0gUmVzdWx0cy4gVGhpcyBzdWJtaXRzIGFsbCB0aGUgZm9ybSByZXN1bHRzIHRvIHRoZSBVc2VyLURlZmluZWQgVGFnIHlvdSBzcGVjaWZ5LiBUaGUgVURUIGNhbiBoYW5kbGUgdGhlIHJlc3VsdHMgaG93ZXZlciBpdCB3YW50cy4gVmFsdWVzIGFyZSBwYXNzZWQgYXMgJHBhcmFtc1smIzAzOTtmaWVsZF9uYW1lJiMwMzk7XSwgYW5kIGFzICRwYXJhbXNbJiMwMzk7ZmllbGRfYWxpYXMmIzAzOTtdIChpZiBkZWZpbmVkKS48L2xpPg0KPGxpPipFbWFpbCBSZXN1bHRzIEJhc2VkIG9uIFB1bGxkb3duLiBUaGlzIGlzIHVzZWZ1bCBmb3Igd2ViIHNpdGVzIHdoZXJlIGNvbW1lbnRzIGdldCByb3V0ZWQgYmFzZWQgb24gdGhlaXIgc3ViamVjdCBtYXR0ZXIsIGUuZy4sIGJ1Z3MgZ2V0IHNlbnQgdG8gb25lIHBlcnNvbiwgbWFya2V0aW5nIHF1ZXN0aW9ucyB0byBhbm90aGVyIHBlcnNvbiwgc2FsZXMgcmVxdWVzdHMgdG8gc29tZW9uZSBlbHNlLCBldGMuIFRoZSBwdWxsZG93biBpcyBwb3B1bGF0ZWQgd2l0aCB0aGUgc3ViamVjdHMsIGFuZCBlYWNoIGdldHMgZGlyZWN0ZWQgdG8gYSBzcGVjaWZpYyBlbWFpbCBhZGRyZXNzLiBZb3Ugc2V0IHVwIHRoZXNlIG1hcHBpbmdzIGluIHRoZSB3aGVuIHlvdSBjcmVhdGUgb3IgZWRpdCBhIGZpZWxkIG9mIHRoaXMgdHlwZS4gSWYgeW91IHVzZSBvbmUgb2YgdGhlc2UgJnF1b3Q7RGlyZWN0b3ImcXVvdDsgcHVsbGRvd25zLCB0aGUgdXNlciBtdXN0IG1ha2UgYSBzZWxlY3Rpb24gaW4gb3JkZXIgdG8gc3VibWl0IHRoZQ0KZm9ybS4gVGhpcyBpbnB1dCBpcyBwYXJ0IG9mIHRoZSBmb3JtIHRoZSB1c2VyIHNlZXMsIGFsdGhvdWdoIHRoZSBlbWFpbCBhZGRyZXNzZXMgYXJlIG5vdCBtYWRlIHZpc2libGUgbm9yDQphcmUgdGhleSBlbWJlZGRlZCBpbiB0aGUgSFRNTC48L2xpPg0KPGxpPipFbWFpbCAmcXVvdDtGcm9tIEFkZHJlc3MmcXVvdDsgRmllbGQsIGFuZCBzZW5kIGNvcHkuIFRoaXMgd29ya3MgbGlrZSB0aGUgRW1haWwgJnF1b3Q7RnJvbSBBZGRyZXNzJnF1b3Q7IEZpZWxkIGRlc2NyaWJlZCBhYm92ZSwgYnV0IGl0IHByb3ZpZGVzIG9wdGlvbnMgZm9yIHNlbmRpbmcgYSBjb3B5IG9mIHRoZSByZXN1bHRzIHRvIHRoZSB1c2VyLjwvbGk+DQo8bGk+KkVtYWlsIFJlc3VsdHMgdG8gc2V0IEFkZHJlc3MoZXMpLiBUaGlzIHNpbXBseSBzZW5kcyB0aGUgZm9ybSByZXN1bHRzIHRvIG9uZSBvciBtb3JlIGVtYWlsIGFkZHJlc3NlcyB0aGF0IHlvdSBlbnRlciB3aGVuIHlvdSBjcmVhdGUgb3IgZWRpdCB0aGlzIHR5cGUgb2YgZmllbGQuIFRoaXMgZmllbGQgYW5kIGl0cyBuYW1lIGFyZSBub3QgdmlzaWJsZSBpbiB0aGUNCmZvcm0gdGhhdCB0aGUgdXNlciBzZWVzLiBUaGUgZW1haWwgYWRkcmVzc2VzIGFyZSBub3QgbWFkZSB2aXNpYmxlIG5vcg0KYXJlIHRoZXkgZW1iZWRkZWQgaW4gdGhlIEhUTUwuPC9saT4NCjxsaT4qRW1haWwgdG8gVXNlci1TdXBwbGllZCBBZGRyZXNzLiBUaGlzIHB1dHMgYW4gaW5wdXQgZmllbGQgaW4gdGhlIGZvcm0gZm9yIHRoZSB1c2VyIHRvIHBvcHVsYXRlIHdpdGggYW4gZW1haWwgYWRkcmVzcy4gVGhlIGZvcm0gcmVzdWx0cyBnZXQgc2VudCB0byB0aGF0IGFkZHJlc3MuIEJld2FyZSBvZiBTcGFtIGFidXNlISBBY3RpdmUgdGhlIHByaW1pdGl2ZSBhbnRpLXNwYW0gZmVhdHVyZXMgaW4gdGhlIEZvcm1CdWlsZGVyIGNvbmZpZ3VyYXRpb24gc2NyZWVuLjwvbGk+DQo8bGk+KlN0b3JlIFJlc3VsdHMgaW4gRGF0YWJhc2UuIDxzdHJvbmc+RGVwcmVjYXRlZC48L3N0cm9uZz4gVXNlIFN0b3JlIFJlc3VsdHMgZm9yIEZvcm1Ccm93c2VyIE1vZHVsZSBpbnN0ZWFkISBUaGlzIHdpbGwgc3RvcmUgdGhlIGZvcm0gY29udGVudHMgaW4gYW4gaW50ZXJuYWwgZGF0YWJhc2UuIFlvdSB3aWxsIGFsd2F5cyB1c2UgdGhpcyBkaXNwb3NpdGlvbiBpZiB5b3UgdXNlIHRoZSBmb3JtIHdpdGggRm9ybUJyb3dzZXIuPC9saT4NCjxsaT4qUmVkaXJlY3QgdG8gUGFnZSBCYXNlZCBvbiBQdWxsZG93bi4gVGhpcyBhbGxvd3MgeW91IHRvIHJlZGlyZWN0IHRoZSBmb3JtIHRvIGEgZGlmZmVyZW50IHNpdGUgcGFnZSBkZXBlbmRpbmcgb24gaXRzIHZhbHVlLiBJZiB5b3UgaGF2ZSBtdWx0aXBsZSBkaXNwb3NpdGlvbnMsIG1ha2Ugc3VyZSB0aGlzIGlzIHVzZWQgbGFzdC48L2xpPg0KPGxpPipWYWxpZGF0ZSB2aWEgRW1haWwuIFRoaXMgaXMgYSBzdHJhbmdlIGFuZCBwb3dlcmZ1bCBmaWVsZC4gSXQgcHJvdmlkZXMgdGhlIHVzZXIgYSBtYW5kYXRvcnkgaW5wdXQgZm9yIHRoZWlyIGVtYWlsIGFkZHJlc3MuIE9uY2UgdGhleSBzdWJtaXQgdGhlaXIgZm9ybSwgdGhlIHN0YW5kYXJkIGZvcm0gZGlzcG9zaXRpb25zIGFyZSBub3QgcGVyZm9ybWVkIC0tIHJhdGhlciwgaXQgc2VuZCB0aGUgdXNlciBhbiBlbWFpbCB3aXRoIGEgc3BlY2lhbCBjb2RlZCBsaW5rLiBJZiB0aGV5IGNsaWNrIG9uIHRoZSBsaW5rLCB0aGUgb3RoZXIgZm9ybSBpcyBjb25zaWRlcmVkICZxdW90O2FwcHJvdmVkLCZxdW90OyBhbmQgdGhlIG90aGVyIGRpc3Bvc2l0aW9ucyBhcmUgYWxsIHBlcmZvcm1lZC48L2xpPg0KPGxpPipXcml0ZSBSZXN1bHRzIHRvIEZsYXQgRmlsZS4gVGhpcyB0YWtlcyB0aGUgZm9ybSByZXN1bHRzIGFuZCB3cml0ZXMgdGhlbSBpbnRvIGEgdGV4dCBmaWxlLiBZb3UgbWF5DQpzZWxlY3QgdGhlIG5hbWUgb2YgdGhlIGZpbGUsIGFuZCBzZXQgaXRzIGZvcm1hdC4gVGhlc2UgZmlsZXMgYXJlIHdyaXR0ZW4gdG8gdGhlICZxdW90O291dHB1dCZxdW90OyBkaXJlY3RvcnkgdW5kZXIgdGhlDQptb2R1bGUmIzAzOTtzIGluc3RhbGxhdGlvbiBkaXJlY3RvcnksIGFzc3VtaW5nIHRoZSB3ZWIgc2VydmVyIGhhcyBwZXJtaXNzaW9uIHRvIHdyaXRlIHRoZXJlLjwvbGk+DQo8bGk+KlNhdmUgUmVzdWx0cyB0byBGaWxlIEJhc2VkIG9uIFB1bGxkb3duLiBMaWtlIHRoZSBGbGF0IEZpbGUgZGlzcG9zaXRpb24sIGV4Y2VwdCB0aGUgdmFsdWUgb2YgYSBwdWxsLWRvd24gZGV0ZXJtaW5lcyB3aGljaCBmaWxlIHJlc3VsdHMgZ2V0IHdyaXR0ZW4gdG8uPC9saT4NCjxsaT4qU2F2ZSBSZXN1bHRzIHRvIEZpbGUocykgQmFzZWQgb24gTXVsdGlwbGUgU2VsZWN0aW9ucy4gTGlrZSB0aGUgRmxhdCBGaWxlIGRpc3Bvc2l0aW9uLCBleGNlcHQgdGhlIHZhbHVlKHMpIG9mIGNoZWNrYm94ZXMgIGRldGVybWluZXMgd2hpY2ggZmlsZShzKSByZXN1bHRzIGdldCB3cml0dGVuIHRvLjwvbGk+DQo8bGk+KkVtYWlsIHRvIENNUyBBZG1pbiBVc2VyLiBQcm92aWRlcyBhIHB1bGwtZG93biBvZiBDTVMgQWRtaW4gdXNlcnMsIGFuZCBkaXJlY3RzIHRoZSByZXN1bHRzIGFzIGFuIGVtYWlsIHRvIHRoZSBzZWxlY3RlZCBhZG1pbi48L2xpPg0KPGxpPipTdG9yZSBSZXN1bHRzIGZvciBGb3JtQnJvd3NlciBNb2R1bGUgdi4wLjMuIFN0b3JlcyB0aGUgZm9ybSByZXN1bHRzIGluIGFuIFhNTCBzdHJ1Y3R1cmUgYXMgYSBzaW5nbGUgZGF0YWJhc2UgcmVjb3JkLiBUaGlzIGlzIHRoZSBvbmx5IGludGVyZmFjZSB0byBGb3JtIEJyb3dzZXIuIFNlZSBzZWN0aW9uIGJlbG93LjwvbGk+DQo8bGk+KlN1Ym1pdCB0byBhbiBhcmJpdHJhcnkgZm9ybSBhY3Rpb24uIENyYWZ0IGFuIEhUVFAgR0VUIG9yIFBPU1QsIGFuZCB0cmFuc21pdCBpdCB1c2luZyBjVVJMIHRvIHRoZSBzcGVjaWZpZWQgVVJMLiBUaGlzIGxldHMgeW91IHVzZSBGb3JtQnVpbGRlciBhcyBhIGZyb250LWVuZCB0byBhbnkgQ0dJIG9yIEZvcm0gSGFuZGxpbmcgc2NyaXB0IG91dCB0aGVyZS48L2xpPg0KDQo8L3VsPjwvbGk+PC9saT48L3VsPg0KDQo8aDM+UGFzc2luZyBEZWZhdWx0IFZhbHVlcyB0byBGb3JtczwvaDM+DQo8cD5DYWxndXkgYWRkZWQgYSBuaWNlIGZlYXR1cmUsIHdoaWNoIGlzIHRoYXQgeW91IGNhbiBwYXNzIGRlZmF1bHQgZmllbGQgdmFsdWVzIHRvIHlvdXIgZm9ybSB2aWEgdGhlIG1vZHVsZSB0YWcuIFRoaXMgYWxsb3dzIHlvdSB0byBoYXZlDQp0aGUgc2FtZSBmb3JtIGluIG11bHRpcGxlIHBsYWNlcywgYnV0IHdpdGggZGlmZmVyZW50IGRlZmF1bHQgdmFsdWVzLiBJdCBtYXkgbm90IHdvcmsgZm9yIG1vcmUgZXhvdGljIGZpZWxkIHR5cGVzLCBidXQgZm9yIGZpZWxkcyB0aGF0IGhhdmUNCmEgc2luZ2xlIHZhbHVlLCB5b3UgY2FuIHNwZWNpZnkgbGlrZTo8L3A+DQo8cD57Rm9ybUJ1aWxkZXIgZm9ybT0mIzAzOTtteV9mb3JtJiMwMzk7IHZhbHVlXzxpPkZJRUxETkFNRTwvaT49JiMwMzk7ZGVmYXVsdF92YWx1ZSYjMDM5O308L3A+DQo8cD5UaGlzIHdpbGwgc2V0IHRoZSBmaWVsZCB3aXRoIDxpPkZJRUxETkFNRTwvaT4gdG8gJiMwMzk7ZGVmYXVsdF92YWx1ZSYjMDM5Oy48L3A+DQo8cD5UaGlzIGNhbiBiZSBwcm9ibGVtYXRpYywgYXMgc29tZXRpbWVzIGZpZWxkIG5hbWVzIGFyZSB1bndpZWxkeSBvciBjb250YWluIGNoYXJhY3RlcnMgdGhhdCBkb24mIzAzOTt0IHdvcmsgd2VsbCB3aXRoIFNtYXJ0eS4gU28gdGhlcmUgaXMgYW4NCmFsdGVybmF0aXZlIGxpa2UgdGhpczo8L3A+DQo8cD57Rm9ybUJ1aWxkZXIgZm9ybT0mIzAzOTtteV9mb3JtJiMwMzk7IHZhbHVlX2ZsZDxpPk5VTUJFUjwvaT49JiMwMzk7ZGVmYXVsdF92YWx1ZSYjMDM5O308L3A+DQo8cD5UaGF0IHVzZXMgZmllbGQgPGk+TlVNQkVSPC9pPiwgd2hlcmUgPGk+TlVNQkVSPC9pPiBpcyB0aGUgaW50ZXJuYWwgRm9ybUJ1aWxkZXIgZmllbGQgaWQuIFlvdSBtaWdodCB3b25kZXIgaG93IHlvdSBrbm93IHdoYXQgdGhhdCBpZCBpcy4gU2ltcGx5IGdvIGludG8gdGhlIEZvcm1CdWlsZGVyIGNvbmZpZ3VyYXRpb24gdGFiLA0KYW5kIGNoZWNrICZxdW90O1Nob3cgRmllbGQgSURzJnF1b3Q7PC9wPg0KDQo8aDM+RW1haWwgYW5kIEZsYXQgRmlsZSBUZW1wbGF0ZXM8L2gzPg0KPHA+TWFueSBkaXNwb3NpdGlvbiB0eXBlcyBhbGxvdyB5b3UgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZm9yIHRoZSBlbWFpbCB0aGF0IGlzIGdlbmVyYXRlZCwgb3IgZm9yIHRoZSB3YXkgdGhlIHJlc3VsdHMgYXJlIHdyaXR0ZW4gdG8gYSBmaWxlLiBJZiB5b3Ugb3B0IG5vdCB0byBjcmVhdGUgYSB0ZW1wbGF0ZSwgdGhlIEZvcm1CdWlsZGVyIHdpbGwgdXNlIGl0cyBvd24gYmVzdCBndWVzcywgd2hpY2ggbWF5IG9yIG1heSBub3Qgd29yayBvdXQgdG8geW91ciBsaWtpbmcuIFlvdSBjYW4gYWx3YXlzIGNsaWNrIG9uIHRoZSAmcXVvdDtDcmVhdGUgU2FtcGxlIFRlbXBsYXRlJnF1b3Q7IGFuZCB0aGVuIGN1c3RvbWl6ZSB0aGUgcmVzdWx0cy48L3A+DQo8cD5UbyB0aGUgcmlnaHQsIHlvdSYjMDM5O2xsIGZpbmQgYSBsZWdlbmQgd2hpY2ggbGlzdHMgYWxsIG9mIHRoZSB2YXJpYWJsZXMgdGhhdCBhcmUgYXZhaWxhYmxlIHRvIHlvdSB0byB1c2UgaW4geW91ciB0ZW1wbGF0ZS4gQXMgb2YgdmVyc2lvbiAwLjMsIHZhcmlhYmxlcyBoYXZlIHR3byBuYW1lcywgb25lIGJhc2VkIG9uIHRoZSBmaWVsZCBuYW1lLCB0aGUgb3RoZXIgYmFzZWQgb24gdGhlIGZpZWxkIElELiBJZiB5b3UgdXNlIGZpZWxkIG5hbWVzIHRoYXQgaGF2ZSBjaGFyYWN0ZXJzIG91dHNpZGUgb2YgdGhlIEFTQ0lJIDMyLTEyNiByYW5nZSwgaXQgd2lsbCBiZSBzYWZlciB0byB1c2UgdGhlIElELWJhc2VkIHZhcmlhYmxlcy4gQXMgb2YgdmVyc2lvbiAwLjUsIHZhcmlhYmxlcyBhbHNvIGhhdmUgYWxpYXNlcywgd2hpY2ggeW91IGNhbiB1c2UuPC9wPg0KPHA+PHN0cm9uZz5Ob3RlIHRoYXQgb25jZSB5b3UmIzAzOTt2ZSBjaGFuZ2VkIGEgdGVtcGxhdGUsIGl0IHdpbGwgbm8gbG9uZ2VyIGF1dG9tYXRpY2FsbHkgYWRkIG5ldyBmaWVsZHMuPC9zdHJvbmc+IEZvciB0aGlzIHJlYXNvbiwgaXQmIzAzOTtzIHVzdWFsbHkgYmVzdCB0byBjcmVhdGUgeW91ciB0ZW1wbGF0ZXMgYXMgdGhlIGxhc3Qgc3RlcCBvZiBjcmVhdGluZyB5b3VyIGZvcm0uPC9wPg0KPHA+QXMgb2YgdmVyc2lvbiAwLjIuNCwgeW91IGNhbiBvcHQgdG8gc2VuZCBhbnkgb2YgdGhlc2UgZW1haWxzIGFzIEhUTUwgZW1haWwuIFRoZXJlIHNob3VsZCBiZSBhIGNoZWNrYm94IGF0IHRoZSB0b3Agb2YgdGhlIHRlbXBsYXRlIHBhZ2UgZm9yIHRoaXMuIFRoZXJlIGlzIGFsc28gYSAmcXVvdDtDcmVhdGUgU2FtcGxlIEhUTUwgVGVtcGxhdGUmcXVvdDsgYnV0dG9uIG92ZXIgaW4gdGhlIGxlZ2VuZCBhcmVhLiBGb3IgSFRNTCBlbWFpbCwgdGhlIGVtYWlsIGJvZHkgd2lsbCBhbHNvIHByb3ZpZGUgdGhlIGRlZmF1bHQgdGV4dC1vbmx5IHZhbHVlcy48L3A+DQoNCjxoMz5Vc2Ugd2l0aCBGb3JtQnJvd3NlciB2MzwvaDM+DQo8cD5UaGVyZSBhcmUgc29tZSBzcGVjaWFsIGZlYXR1cmVzIHdoZW4gdXNpbmcgRm9ybUJ1aWxkZXIgd2l0aCBGb3JtQnJvd3Nlci4gVGhlIG5ldyBhcHByb2FjaCBzdG9yZXMgdGhlIGZvcm0gcmVzdWx0cyBpbiBYTUwsIHNvIHRoYXQgZmFyIGZld2VyDQpxdWVyaWVzIGFyZSBuZWVkZWQgdG8gcmV0cmlldmUgcmVjb3Jkcy4gVGhpcyBtZWFucyB5b3UgY2FuIHVzZSBGb3JtQnJvd3NlciB3aXRoIGh1bmRyZWRzIG9yIGV2ZW4gdGhvdXNhbmRzIG9mIHJlY29yZHMuIEl0IGFsc28gbWVhbnMgeW91DQp3aWxsIGhhdmUgdG8gY2hvb3NlIHVwIGZyb250IHdoaWNoIGZpZWxkcyB5b3Ugd2lsbCB3YW50IHRvIGJlIGFibGUgdG8gc29ydCBieS4gWW91IGNhbiBjaG9vc2UgdXAgdG8gZml2ZS4gQ2hhbmdpbmcgdGhlc2UgYWZ0ZXIgdGhlcmUgYXJlIHN1Ym1pdHRlZCByZWNvcmRzIHdpbGwgcmVzdWx0IGluIGltcHJvcGVyIHNvcnRpbmchIEEgcmUtaW5kZXggZnVuY3Rpb24gd2lsbCBiZSBhZGRlZCB0byBhIGZ1dHVyZSB2ZXJzaW9uLjwvcD4NCjxwPkluIGFkdmFuY2VkIG9wdGlvbnMsIHlvdSBjYW4gdGllIGEgZm9ybSB0byBGcm9udGVuZCBVc2Vycy4gVGhhdCBtZWFucyBlYWNoIHVzZXIgZ2V0cyBvbmUgcmVjb3JkIGZvciB0aGUgZm9ybTsgdGhleSBjYW4gY3JlYXRlIGl0DQphIHNpbmdsZSB0aW1lLCBzdWJzZXF1ZW50IHRpbWVzIHRoZXkgd2lsbCBiZSBlZGl0aW5nIHRoZWlyIHJlY29yZC4gVGhlIHJlY29yZCB3aWxsIG5vdCBiZSB2aXNpYmxlIHRvIGFueSBvdGhlciB1c2VycyAoZXhjbHVkaW5nIGFkbWlucykuDQpUaGlzIGZvcm0gc2hvdWxkIGJlIGFkZGVkIHRvIHlvdXIgcGFnZSB1c2luZyB0aGUgc3ludGF4IHtGb3JtQnVpbGRlciBhY3Rpb249JiMwMzk7ZmV1c2VyZm9ybSYjMDM5OyBmb3JtPSYjMDM5O2Zvcm1fbmFtZSYjMDM5O30uPC9wPg0KPHA+Rm9yIGdyZWF0ZXIgZGF0YSBzYWZldHksIHlvdSBjYW4gZW5jcnlwdCB0aGUgc3RvcmVkIGZvcm1zIGluIHRoZSBkYXRhYmFzZS4gWW91IGNhbiB1c2UgdGhlIGJ1aWx0LWluIG15Y3J5cHQgbGlicmFyeSBvciB0aGUgT3BlblNTTCBtb2R1bGUuDQpJbiBlaXRoZXIgY2FzZSwgZm9yIHRoZSBwYXNzcGhyYXNlLCB5b3UgY2FuIGVpdGhlciBlbnRlciB0ZXh0IGluIHRoZSBmaWVsZCBvciBhIGZpbGUgbmFtZS4gSWYgeW91IHNwZWNpZnkgYSBmaWxlIG5hbWUsIHRoZSBjb250ZW50cyBvZiB0aGF0DQpmaWxlIHdpbGwgYmUgdXNlZCBhcyB0aGUgcGFzc3BocmFzZSBmb3IgZW5jcnlwdGluZy48L3A+DQo8cD5JZiB5b3UgZW5jcnlwdCwgYmUgYXdhcmUgdGhhdCB0aGUgZmllbGRzIHlvdSB1c2UgZm9yIHNvcnRpbmcgYXJlIDxzdHJvbmc+bm90PC9zdHJvbmc+IGVuY3J5cHRlZC4gWW91IGNhbiBjaG9vc2UgdG8gaGFzaCB0aGVtOyB0aGUgY2hlYXQgaGVyZQ0KaXMgdGhhdCB0aGUgZmlyc3QgZm91ciBsZXR0ZXJzIGFyZSBsZWZ0IGludGFjdCB0byBhbGxvdyBmb3Igc29ydGluZy4gVGhlIHNvcnRpbmcgbWF5IG5vdCBiZSBwZXJmZWN0LCBhbmQgdGhpcyB3ZWFrZW5zIHRoZSBzZWN1cml0eSBzaW5jZSBpdA0KZXhwb3NlcyBzb21lIGNsZWFydGV4dCwgYnV0IGl0IGlzIGJldHRlciB0aGFuIG5vdGhpbmcuPC9wPg0KPHA+PHN0cm9uZz5ESVNDTEFJTUVSPC9zdHJvbmc+LiBUaGUgZW5jcnlwdGlvbiBvZmZlcmVkIGhlcmUgc2hvdWxkIGJlIGNvbnNpZGVyZWQganVzdCBvbmUgbW9yZSBodXJkbGUgZm9yIGEgaGFja2VyLCBub3QgYXMgYSBndWFyYW50ZWUgdGhhdA0KeW91ciBpbmZvcm1hdGlvbiB3aWxsIGJlIHNlY3VyZS4gQSBzbWFydCBoYWNrZXIgd2hvIGhhcyBmb3VuZCBzb21lIGV4cGxvaXQgdG8gdmlldyBkYXRhYmFzZSByZWNvcmRzIG1heSB3ZWxsIGJlIHNtYXJ0IGVub3VnaCB0byBnZXQgYXQNCnRoZSBtb2R1bGUgc291cmNlIGNvZGUsIGFuZCBmaW5kIHRoZWlyIHdheSB0byB0aGUgcGFzc3BocmFzZS4gVGhpcyB3aWxsIG5vdCBwcm90ZWN0IHlvdSBhZ2FpbnN0IGFuIGVuZW15IHdobyBoYXMgZnVsbCBhY2Nlc3MgdG8geW91cg0Kc2VydmVyLCBzb21lIGZhbWlsaWFyaXR5IHdpdGggUEhQLCBhbmQgdGhlIHRpbWUgdG8gcG9rZSBhcm91bmQuIDxlbT48c3Ryb25nPkRvIG5vdDwvc3Ryb25nPiB1c2UgdGhpcyB0byBwcm90ZWN0IGhpZ2gtdmFsdWUgaW5mb3JtYXRpb24gc3VjaCBhcyBmaW5hbmNpYWwgZGF0YSwNCnNlbnNpdGl2ZSBwb2xpdGljYWwgaW5mb3JtYXRpb24sIGh1bWFuIHJpZ2h0cyBkYXRhLCBvciBhbnl0aGluZyBlbHNlIHRoYXQgbWlnaHQgYmUgb2YgdmFsdWUgdG8gYSByZXByZXNzaXZlIGdvdmVybm1lbnQgb3Igb3JnYW5pemVkIGNyaW1lDQpjYXJ0ZWwuPC9lbT48L3A+DQo8aDM+VXNpbmcgd2l0aCBVc2VyIERlZmluZWQgVGFncyAoVURUcyk8L2gzPg0KPHA+U2V2ZXJhbCBvcHRpb25zIGZvciBjdXN0b21pemluZyBiZWhhdmlvciB2aWEgVURUcyBpcyBwcm92aWRlZCAodGhhbmtzIHRvIGtpbmQgY29kZSBjb250cmlidXRpb25zLCBzZWUgY3JlZGl0cykuPC9wPg0KDQo8dWw+PGxpPkNhbGwgVXNlciBEZWZpbmVkIFRhZyBXaXRoIHRoZSBGb3JtIFJlc3VsdHMuIFRoaXMgZmllbGQgdHlwZSBzdWJtaXRzIHRoZSBodW1hbi1yZWFkYWJsZSBmb3JtIHJlc3VsdHMgdG8gdGhlIFVzZXItRGVmaW5lZA0KVGFnIHlvdSBzcGVjaWZ5LiBUaGUgVURUIGNhbiBoYW5kbGUgdGhlIHJlc3VsdHMgaG93ZXZlciBpdCB3YW50cy4gVmFsdWVzIGFyZSBwYXNzZWQgYXMgJHBhcmFtc1smIzAzOTtmaWVsZF9uYW1lJiMwMzk7XSwgYW5kDQphcyAkcGFyYW1zWyYjMDM5O2ZpZWxkX2FsaWFzJiMwMzk7XSAoaWYgZGVmaW5lZCkuIEFzIHBlciBhIHN1Z2dlc3Rpb24sIGl0IGFsc28gcG9wdWxhdGVzIGFsbCBvZiB0aGUgU21hcnR5IHZhbHVlcyB0aGF0IHdvdWxkIGJlIHZpc2libGUgdG8gdGhlIFN1Ym1pc3Npb24gVGVtcGxhdGUgdG9vITwvbGk+DQo8bGk+VXNlciBUYWcgRmllbGQuIFRoaXMgY2FsbHMgdGhlIHNwZWNpZmllZCBVRFQsIGFuZCBkaXNwbGF5cyBhbnl0aGluZyBpdCByZXR1cm5zLiBUaGUgVURUIGdldHMgY2FsbGVkIGFueSB0aW1lIHRoZSBmaWVsZCB3b3VsZCBiZSB2aXNpYmxlLjwvbGk+DQo8bGk+VmFsaWRhdGlvbiBVRFQuIFNldCB0aGlzIGZvciBhIGZvcm0sIGFuZCB0aGUgVURUIHdpbGwgcmVjZWl2ZSBhbGwgb2YgdGhlIGZvcm1cJiMwMzk7cyBodW1hbi1yZWFkYWJsZSByZXN1bHRzLiBUaGUgVURUIHNob3VsZCBkbyB3aGF0ZXZlcg0KdmFsaWRhdGlvbiBpdCB3YW50cywgYW5kIHJldHVybiBhbiBhcnJheSB3aXRoIHRoZSBmaXJzdCB2YWx1ZSBiZWluZyB0cnVlIG9yIGZhbHNlIChpbmRpY2F0aW9uIHdoZXRoZXIgdGhlIGZvcm0gdmFsaWRhdGVzKSwgYW5kIHRoZSBzZWNvbmQNCnZhbHVlIGJlaW5nIGVycm9yIG1lc3NhZ2VzIChpZiBhbnkpLjwvbGk+DQo8bGk+VXNlciBkZWZpbmVkIHRhZyB0byBjYWxsIGJlZm9yZSBmb3JtIGlzIGRpc3BsYXllZCB0aGUgZmlyc3QgdGltZSAob25seSBjYWxsZWQgb25jZSkuIFRoaXMNCmlzIHNldCBpbiB0aGUgRm9ybSBBZG1pbiBpbiB0aGUgVURUIEludGVncmF0aW9uIHRhYi4gVGhlIFVEVCBnZXRzIGNhbGxlZCBvbiB0aGUgZmlyc3QgZGlzcGxheQ0Kb2YgdGhlIGZvcm0uPC9saT4NCjxsaT5Vc2VyIGRlZmluZWQgdGFnIHRvIGNhbGwgYmVmb3JlIGZvcm0gaXMgZGlzcGxheWVkIChjYWxsZWQgb24gZXZlcnkgcGFnZSBvZiBtdWx0aXBhZ2UNCmZvcm1zKS4gVGhpcyBpcyBzZXQgaW4gdGhlIEZvcm0gQWRtaW4gaW4gdGhlIFVEVCBJbnRlZ3JhdGlvbiB0YWIuIFRoZSBVRFQgZ2V0cyBjYWxsZWQNCmV2ZXJ5IHRpbWUgYW55IHBhZ2Ugb2YgdGhlIGZvcm0gaXMgZGlzcGxheWVkIChpbmNsdWRpbmcgd2hlbiB2YWxpZGF0aW9uIGZhaWxzKS48L2xpPg0KPC91bD4NCjxoMz5Db25maWd1cmF0aW9uPC9oMz4NCjxwPlRoZXJlIGFyZSBzb21lIGdsb2JhbCBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIEZvcm1CdWlsZGVyOjwvcD4NCjx1bD4NCjxsaT5FbmFibGUgZmFzdCBmaWVsZCBhZGQgcHVsbGRvd24uIFRoaXMgZW5hYmxlcyB0aGUgcHVsbGRvd24gb24gdGhlIEZvcm0gRWRpdCBwYWdlIHdoaWNoIHNhdmVzIGEgc3RlcCBpbiB0aGUgY3JlYXRpb24gb2YgbmV3IGZpZWxkcy48L2xpPg0KPGxpPlJ1biBpbiBNTEUgTW9kZS4gVGhpcyBjaGFuZ2VzIHNvbWUgcXVlcmllcyBhZ2FpbnN0IHRoZSBjb250ZW50IHRhYmxlIHRvIHRyeSB0byBwcmV2ZW50IHVnbHkgY3Jhc2hlcyB1bmRlciB0aGUgTUxFIGZvcmsuIENoZWNraW5nIHRoaXMgd2lsbCBjYXVzZSB1Z2x5IGNyYXNoZXMgaWYgeW91IGFyZSBOT1QgcnVubmluZyB0aGUgTUxFIGZvcmsuPC9saT4NCjxsaT5IaWRlIEVycm9ycy4gVGhpcyBpcyBubyBsb25nZXIgc2V0IGJ5IGRlZmF1bHQuIENoZWNraW5nIGl0IHdpbGwgaGlkZSB0aGUgbW9yZSBkZXRhaWxlZCBlcnJvcnMgdGhhdCB3b3VsZCBiZSBkaXNwbGF5ZWQgaWYgdGhlcmUgYXJlIHByb2JsZW1zIHdoZW4geW91IHN1Ym1pdCB5b3VyIGZvcm0uPC9saT4NCjxsaT5SZXF1aXJlIEZpZWxkIE5hbWVzLiBUeXBpY2FsbHksIHlvdSB3aWxsIHdhbnQgZm9ybSBmaWVsZHMgdG8gYmUgbmFtZWQgc28geW91IGNhbiB0ZWxsIHdoaWNoIGlzIHdoaWNoLiBIb3dldmVyLCBpbiBzb21lIGNhc2VzLCB5b3UgbWlnaHQgd2FudCB0byBoYXZlIG5hbWVsZXNzIGZpZWxkcy4gVW5jaGVjayB0aGlzIGlmIHlvdSB3YW50IHRvIGFsbG93IG5hbWVsZXNzIGZpZWxkcy48L2xpPg0KPGxpPlVuaXF1ZSBGaWVsZCBOYW1lcy4gVHlwaWNhbGx5LCB5b3Ugd2lsbCB3YW50IGZvcm0gZmllbGRzIHRvIGhhdmUgdW5pcXVlIG5hbWVzIHNvIHlvdSBjYW4gdGVsbCB3aGljaCBpcyB3aGljaC4gVW5jaGVjayB0aGlzIGlmIHlvdSB3YW50IHRvIGFsbG93IGZpZWxkcyB0byBzaGFyZSBuYW1lcy48L2xpPg0KPGxpPlVzZSByZWxheGVkIGVtYWlsIHZhbGlkYXRpb24uIFRoaXMgdXNlcyBhIGxlc3MgcmVzdHJpY3RpdmUgcmVndWxhciBleHByZXNzaW9uIGZvciB2YWxpZGF0aW5nIGVtYWlsOyBlLmcuLCB4QHkgd2lsbCBiZSBhbGxvd2VkLCB3aGVyZSB0eXBpY2FsbHkgeEB5LnRsZCBpcyByZXF1aXJlZC48L2xpPg0KPGxpPlNob3cgRm9ybSBCdWlsZGVyIFZlcnNpb24uIERpc3BsYXlzIHRoZSB2ZXJzaW9uIG9mIEZvcm1CdWlsZGVyIHlvdSYjMDM5O3JlIHVzaW5nIGluIGEgY29tbWVudCB3aGVuIHRoZSBmb3JtIGlzIGdlbmVyYXRlZC4gVHlwaWNhbGx5IG9ubHkgdXNlZnVsIHdoZW4gZGVidWdnaW5nLjwvbGk+DQo8bGk+RW5hYmxlIHByaW1pdGl2ZSBhbnRpLXNwYW0gZmVhdHVyZXMuIFdoZW4gdHVybmVkIG9uLCB0aGlzIGFsbG93cyBhbnkgZ2l2ZW4gSVAgYWRkcmVzcyB0byBvbmx5IGdlbmVyYXRlIDEwIGVtYWlscyBwZXIgaG91ci48L2xpPg0KPGxpPlNob3cgRmllbGQgSURzLiBXaGVuIHR1cm5lZCBvbiwgRm9ybUJ1aWxkZXIgd2lsbCBkaXNwbGF5IGZpZWxkIGlkcyB3aGVuIGFkZGluZyBvciBlZGl0aW5nIGEgZm9ybS48L2xpPg0KPC91bD4NCjxoMz5TdHlsaW5nIGFuZCBDU1M8L2gzPg0KPHA+QWZ0ZXIgYSBiaXQgb2YgbmFnZ2luZyBvbiB0aGUgcGFydCBvZiBwZW9wbGUgd2hvIGFjdHVhbGx5IHJlc3BlY3Qgc3RhbmRhcmRzLCBGb3JtQnVpbGRlciBubyBsb25nZXIgZW5jb3VyYWdlcyB0cmlja3MgbGlrZSBlbWJlZGRpbmcgQ1NTIGluIA0Kc3RhdGljIHRleHQgZmllbGRzLiBJbnN0ZWFkLCBpdCBjcmVhdGVzIGEgc3R5bGVzaGVldCBjYWxsZWQgJnF1b3Q7Rm9ybUJ1aWxkZXIgRGVmYXVsdCZxdW90OyB0aGF0IHlvdSBhcmUgZW5jb3VyYWdlZCB0byBhdHRhY2ggdG8gdGhlIHBhZ2UgdGVtcGxhdGUNCnRoYXQgeW91IHVzZSBmb3IgcGFnZXMgdGhhdCBjb250YWluIHlvdXIgZm9ybS48L3A+ICANCjxwPlRoaXMgZGVmYXVsdCBDU1Mgd2FzIGdyYWNpb3VzbHkgcHJvdmlkZWQgYnkgUGF1bCBOb29uZS48L3A+DQoNCg0KPGgzPkZvcm0gVGVtcGxhdGUgVmFyaWFibGVzPC9oMz4NCjxwPllvdSBjYW4gZWRpdCBpdCB0byBtYWtlIHlvdXIgZm9ybSBsYXlvdXQgbG9vayBhbnkgd2F5IHlvdSYjMDM5O2QgbGlrZS4NCiAgIFRvIG1ha2UgdGhlIGZvcm0gd29yaywgeW91JiMwMzk7bGwgbmVlZCB0byBhbHdheXMgaW5jbHVkZSB0aGUgeyRmYl9oaWRkZW59IGFuZCB7JHN1Ym1pdH0NCiAgIHRhZ3MuPC9wPg0KDQo8cD5Zb3UgY2FuIGFjY2VzcyB5b3VyIGZvcm0gZmllbGRzIGVpdGhlciB1c2luZyB0aGUgJGZpZWxkcyBhcnJheSBvciBieSBkaXJlY3RseSBhY2Nlc3NpbmcgZmllbGRzIGJ5IHRoZWlyIG5hbWVzIChlLmcuLCB7JG15ZmllbGQtPmlucHV0fSApPC9wPg0KDQoNCjxwPkVhY2ggZmllbGQgaGFzIHRoZSBmb2xsb3dpbmcgYXR0cmlidXRlczo8L3A+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+ZmllbGQtPmhlbHB0ZXh0PC90ZD48dGQ+dGhlIGZpZWxkJiMwMzk7cyBoZWxwIHRleHQ8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5pbnB1dDwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgaW5wdXQgY29udHJvbCAoZS5nLiwgdGhlIGlucHV0IGZpZWxkIGl0c2VsZik8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5vcDwvdGQ+PHRkPmEgY29udHJvbCBidXR0b24gYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWVsZCBpZiBhcHBsaWNhYmxlIChlLmcuLCB0aGUgZGVsZXRlIGJ1dHRvbiBmb3IgZXhwYW5kYWJsZSB0ZXh0IGlucHV0KTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmlucHV0X2lkPC90ZD48dGQ+dGhlIElEIG9mIHRoZSBmaWVsZCYjMDM5O3MgaW5wdXQgKHVzZWZ1bCBmb3IgbGFiZWwgZm9yPSZxdW90O2ZvbyZxdW90Oyk8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5hbGlhczwvdGQ+PHRkPnRoZSBhbGlhcyBzcGVjaWZpZWQgZm9yIHRoaXMgZmllbGQ8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5pZDwvdGQ+PHRkPnRoZSBpbnRlcm5hbCAvIG9wYXF1ZSBpZCBGb3JtQnVpbGRlciB1c2VzIGZvciB0aGlzIGZpZWxkPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+dHlwZTwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgZGF0YSB0eXBlPC90ZD48L3RyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCjx0cj48dGQ+ZmllbGQtPm11bHRpcGxlX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQtPmlucHV0IGlzIGFjdHVhbGx5IGEgY29sbGVjdGlvbiBvZiBjb250cm9sczwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmxhYmVsX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgY29sbGVjdGlvbiBvZiBjb250cm9scyBoYXMgc2VwYXJhdGUgbGFiZWxzIGZvciBlYWNoIGNvbnRyb2w8L3RkPjwvdHI+DQo8L3RhYmxlPg0KDQo8cD5JbiB0aGUgY2FzZSBvZiBhIG11bHRpcGFnZSBmb3JtLCB5b3Ugd2lsbCBhbHNvIGhhdmUgYWNjZXNzIHRvIHRoZSB2YWx1ZSBvZiBwcmV2aW91cyBmaWVsZHMuIFRoZXkNCmFyZSBpbiB0aGUgJHByZXZpb3VzIGFycmF5LCBvciBhY2Nlc3NpYmxlIGJ5IHRoZWlyIG5hbWVzIChlLmcuLCB7JG15ZmllbGQtPnZhbHVlfSApLg0KWW91IGNhbiB1c2UgdGhpcyBpbiBTdGF0aWMgVGV4dCBmaWVsZHMgYXMgd2VsbCwgd2hpY2ggaXMgYSBuaWNlIHdheSB0byBwZXJzb25hbGl6ZSBmb3JtcyE8L3A+DQoNCjxwPkluIGNlcnRhaW4gY2FzZXMsIGZpZWxkLT5pbnB1dCBpcyBhY3R1YWxseSBhbiBhcnJheSBvZiBvYmplY3RzIHJhdGhlciB0aGFuIGFuIGlucHV0LiBUaGlzIGhhcHBlbnMsIGZvciBleGFtcGxlLCBpbiBDaGVja0JveEdyb3VwcyBvciBSYWRpb0J1dHRvbkdyb3Vwcy4gRm9yIHRoZW0sIHlvdSBjYW4gaXRlcmF0ZSB0aHJvdWdoIGZpZWxkLT5pbnB1dC0+bmFtZSBhbmQgZmllbGQtPmlucHV0LT5pbnB1dHMuPC9wPg0KICAgIA0KPHA+QWRkaXRpb25hbCBzbWFydHkgdmFyaWFibGVzIHRoYXQgeW91IGNhbiB1c2UgaW5jbHVkZTo8L3A+DQo8dGFibGU+DQo8dHI+PHRoPlZhcmlhYmxlPC90aD48dGg+VmFsdWU8L3RoPjwvdHI+DQo8dHI+PHRkPnRvdGFsX3BhZ2VzPC90ZD48dGQ+bnVtYmVyIG9mIHBhZ2VzIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD50aGlzX3BhZ2U8L3RkPjx0ZD5udW1iZXIgZm8gdGhlIGN1cnJlbnQgcGFnZSBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+dGl0bGVfcGFnZV94X29mX3k8L3RkPjx0ZD5kaXNwbGF5cyAmcXVvdDtwYWdlIHggb2YgeSZxdW90OyBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+Y3NzX2NsYXNzPC90ZD48dGQ+Q1NTIENsYXNzIGZvciB0aGUgZm9ybTwvdGQ+PC90cj4NCjx0cj48dGQ+Zm9ybV9uYW1lPC90ZD48dGQ+Rm9ybSBuYW1lPC90ZD48L3RyPg0KPHRyPjx0ZD5mb3JtX2lkPC90ZD48dGQ+Rm9ybSBkYXRhYmFzZSBJRDwvdGQ+PC90cj4NCjx0cj48dGQ+aW5fZm9ybWJyb3dzZXI8L3RkPjx0ZD4xIGlmIGZvcm0gaXMgYmVpbmcgdmlld2VkIGZyb20gRm9ybUJyb3dzZXI8L3RkPjwvdHI+DQo8dHI+PHRkPmluX2FkbWluPC90ZD48dGQ+MSBpZiBmb3JtIGlzIGJlaW5nIHZpZXdlZCB2aWEgRm9ybUJyb3dzZXIgYWRtaW48L3RkPjwvdHI+DQo8dHI+PHRkPmZicl9pZDwvdGQ+PHRkPlJlc3BvbnNlIElEIGlmIGZvcm0gaXMgYmVpbmcgdmlld2VkIGZyb20gRm9ybUJyb3dzZXI8L3RkPjwvdHI+DQo8dHI+PHRkPnByZXY8L3RkPjx0ZD4mcXVvdDtCYWNrJnF1b3Q7IGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD5zdWJtaXQ8L3RkPjx0ZD4mcXVvdDtDb250aW51ZSZxdW90OyBvciAmcXVvdDtTdWJtaXQmcXVvdDsgYnV0dG9uIGZvciBtdWx0aXBhcnQgZm9ybXMsIGFkanVzdHMgYXV0b21hdGljYWxseTwvdGQ+PC90cj4NCjwvdGFibGU+DQo8cD5EdW5ubyB3aHkgeW91JiMwMzk7ZCB3YW50IHNvbWUgb2YgdGhvc2UsIGJ1dCB0aGVyZSB5b3UgZ28uLi48L3A+DQoNCjxoMz5DcmVkaXRzPC9oMz4NCjxwPk1hbnkgcGVvcGxlIGhhdmUgY29udHJpYnV0ZWQgY29kZSwgYnVnIHJlcG9ydHMsIGNhc2gsIGFuZCBpZGVhcyB0byBGb3JtQnVpbGRlci4gQW1vbmcgdGhlbSAoYWxwaGFiZXRpY2FsbHkpOg0KPHVsPg0KPGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuYnB0aS5ldSI+QmFsdGljIGluc3RpdHV0ZSBvZiBhZHZhbmNlZCB0ZWNobm9sb2d5PC9hPiAtIGNvZGUsIGZ1bmRpbmcgPC9saT4NCjxsaT5KZXJlbXkgQmFzcyAtIGNvZGUgYW5kIHN1Z2dlc3Rpb25zPC9saT4NCjxsaT5BbGJlcnRvIEJlbmF0aSAtIGNvZGU8L2xpPg0KPGxpPlR5bGVyIEJvZXNwZmx1ZyAtIGZ1bmRpbmcgYW5kIGlkZWFzPC9saT4NCjxsaT5KZWZmIEJvc2NoIC0gVURUIFZhbGlkYXRpb248L2xpPg0KPGxpPlJvYmVydCBDYW1wYmVsbCAtIG51bWVyb3VzIGNvZGUgY29udHJpYnV0aW9uczwvbGk+DQo8bGk+UGlvdHJhcyBDaW1tcGVybWFuIC0gY29kZTwvbGk+DQo8bGk+TnVubyBDb3N0YSAtIHN1Z2dlc3Rpb25zPC9saT4NCjxsaT5SeWFuIEZvc3RlciAtIGNvZGU8L2xpPg0KPGxpPk1hcmMgR2VsZG9uIC0gY29kZTwvbGk+DQo8bGk+S2V2aW4gR3JhbmRvbiAtIGNvZGU8L2xpPg0KPGxpPlJvbm55IEtyaWp0IC0gY29kZTwvbGk+DQo8bGk+UGF1bCBOb29uZSAtIENTUyBhbmQgaWRlYXM8L2xpPg0KPGxpPk1vcnRlbiBQb3Vsc2VuIC0gY29kZTwvbGk+DQo8bGk+UHJ1ZSBSb3dsYW5kIC0gYnVnIGZpeGVzPC9saT4NCjxsaT5TaW1vbiBTY2hhdWZlbGJlcmdlciAtIGNvZGU8L2xpPg0KPC91bD4NCjxwPkkgYXBvbG9naXplIGZvciBhbnkgb21pc3Npb25zIC0gbm90aWZ5IG1lLCBhbmQgSSYjMDM5O2xsIGNvcnJlY3QgdGhlIG9taXNzaW9uITwvcD4NCjxoMz5NaXNjZWxsYW5lb3VzIE5vdGVzPC9oMz4NCjx1bD4NCjxsaT5BbnkgZmllbGRzIHRoYXQgc2VuZHMgZW1haWwgdG8gYSBzcGVjaWZpZWQgZW1haWwgYWRkcmVzcyB3aWxsIGFsc28gYWNjZXB0IGEgY29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgZW1haWwgYWRkcmVzc2VzLjwvbGk+DQo8L3VsPg0KPGgzPktub3duIElzc3VlczwvaDM+DQo8dWw+DQo8bGk+Rm9ybUJ1aWxkZXIgZG9lcyBub3QgeWV0IHN1cHBvcnQgcHJldHR5IFVSTHMsIGFsdGhvdWdoIHRoYXQgc2hvdWxkbiYjMDM5O3QgbWF0dGVyIHNpbmNlIHRoZSB1c2VyIHNpZGUgaXMgcHJldHR5IHNpbXBsZS48L2xpPg0KPGxpPkZpbGVVcGxvYWQgRmllbGRzIG1heSBub3Qgd29yayBjb3JyZWN0bHkgd2l0aCBtdWx0aXBhZ2UgZm9ybXMuPC9saT4NCjwvdWw+DQoNCjxoMz5Ucm91Ymxlc2hvb3Rpbmc8L2gzPg0KPG9sPg0KPGxpPkZvcm1CdWlsZGVyL0Zvcm1Ccm93c2VyIDxzdHJvbmc+cmVxdWlyZXM8L3N0cm9uZz4gUEhQIDUgb3IgbGF0ZXIgdG8gZnVuY3Rpb24gY29ycmVjdGx5LjwvbGk+DQo8bGk+Rmlyc3Qgc3RlcCBpcyB0byBjaGVjayB5b3UmIzAzOTtyZSBydW5uaW5nIENNUyAxLjYgb3IgbGF0ZXIuPC9saT4NCjxsaT5TZWNvbmQgc3RlcCBpcyB0byByZWFkIGFuZCB1bmRlcnN0YW5kIHRoZSBjYXZlYXQgYWJvdXQgV1lTSVdZRyBlZGl0b3JzIHVwIGluIHRoZQ0Kc2VjdGlvbiA8ZW0+QWRkaW5nIGEgRm9ybSB0byBhIFBhZ2U8L2VtPi48L2xpPg0KPGxpPiBJZiB5b3UmIzAzOTtyZSBtaXNzaW5nIGZpZWxkcyBpbiBhbiBlbWFpbCB0aGF0IGdldHMgZ2VuZXJhdGVkLCBjaGVjayB0aGUgZGlzcG9zaXRpb24gZmllbGQmIzAzOTtzIHRlbXBsYXRlLCBhbmQgbWFrZSBzdXJlIHlvdSYjMDM5O3JlIHNwZWNpZnlpbmcgdGhlIG1pc3NpbmcgZmllbGRzLiBTZWVtcyBvYnZpb3VzLCBidXQgaXQmIzAzOTtzIGFuIGVhc3kgbWlzdGFrZSB0byBtYWtlLjwvbGk+DQo8bGk+VW5jaGVjayB0aGUgJnF1b3Q7SGlkZSBFcnJvcnMmcXVvdDsgY2hlY2tib3ggaW4gdGhlIGdsb2JhbCBvcHRpb25zLCBhbmQgc2VlIHdoYXQgbWVzc2FnZSBnZXRzIGRpc3BsYXllZCB3aGVuIHlvdSBzdWJtaXQgeW91ciBmb3JtLjwvbGk+DQo8bGk+IEp1c3QgbWVzcyBhcm91bmQgYW5kIHRyeSBjbGlja2luZyBvbiBsaW5rcyBhbmQgaWNvbnMgYW5kIHN0dWZmLiBTZWUgd2hhdCBoYXBwZW5zLjwvbGk+DQo8bGk+IE1ha2Ugc3VyZSB5b3UgY2FuIHN1Y2Nlc3NmdWxseSBzZW5kIGVtYWlsIHZpYSB0aGUgdGVzdCBpbiB0aGUgQ01TTWFpbGVyIE1vZHVsZS4gSXQmIzAzOTtzIHNpbXBseSBhbWF6aW5nIGhvdyBtYW55IHByb2JsZW1zIGJvaWwgZG93biB0byBhIG1pc2NvbmZpZ3VyZWQgQ01TTWFpbGVyLjwvbGk+DQo8bGk+IExhc3QgcmVzcG9ydCBpcyB0byBlbWFpbCBtZSBvciBjYXRjaCBtZSBvbiBJUkMgYW5kIHdlIGNhbiBnbyBmcm9tIHRoZXJlLjwvbGk+DQo8L29sPiANCjxwPlRoaXMgaXMgbm8gbG9uZ2VyIGEgcGFydGljdWxhcmx5IGVhcmx5IHZlcnNpb24sIGJ1dCBpdCBpcyBwcm9iYWJseSBzdGlsbCBidWdneS4gV2hpbGUgSSYjMDM5O3ZlIGRvbmUgYWxsIEkgY2FuDQp0byBtYWtlIHN1cmUgbm8gZWdyZWdpb3VzIGJ1Z3MgaGF2ZSBjcmVwdCBpbiwgSSBoYXZlIHRvIGFkbWl0IHRoYXQgZHVyaW5nIGVhcmx5IHRlc3RpbmcsIHRoaXMgcHJvZ3JhbQ0KcmV2ZWFsZWQgc2V2ZW4gY29ja3JvYWNoZXMsIHR3byBlYXJ3aWdzLCBhIHNtYWxsIGZhbWlseSBvZiBhcGhpZHMsIGFuZCBhIHdhbGtpbmctc3RpY2sgaW5zZWN0LiBJdCBhbHNvDQphdGUgdGhlIG5laWdoYm9yJiMwMzk7cyBuYXN0eSBsaXR0bGUgeWFwIGRvZywgZm9yIHdoaWNoIEkgd2FzIGluYXBwcm9wcmlhdGVseSBncmF0ZWZ1bC48L3A+DQo8cD5UaGUgZmluYWwgcmVsZWFzZSB3aWxsIGluY2x1ZGUgYnVnIGZpeGVzLCBkb2N1bWVudGF0aW9uLCBhbmQgdW5jb25kaXRpb25hbCBsb3ZlLjwvcD4NCjxoMz5TdXBwb3J0PC9oMz4NCjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4NCjx1bD4NCjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlLCBGQVFzLCBvciB0byBmaWxlIGEgQnVnIFJlcG9ydCwgcGxlYXNlIHZpc2l0IHRoZSBDTVMgTWFkZSBTaW1wbGUgIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmciPkRldmVsb3BlciBGb3JnZTwvYT4uPC9saT4NCjxsaT5UbyBvYnRhaW4gY29tbWVyY2lhbCBzdXBwb3J0LCBwbGVhc2Ugc2VuZCBhbiBlbWFpbCB0byB0aGUgYXV0aG9yIGF0IDxhIGhyZWY9Im1haWx0bzpzamdAY21zbW9kdWxlcy5jb20iPjxzamdAY21zbW9kdWxlcy5jb20+PC9hPi48L2xpPg0KPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnIj5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi48L2xpPg0KPGxpPlRoZSBhdXRob3IgY2FuIG9mdGVuIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXMiPkNNUyBJUkMgQ2hhbm5lbDwvYT4uPC9saT4NCjxsaT5MYXN0bHksIHlvdSBtYXkgaGF2ZSBzb21lIHN1Y2Nlc3MgZW1haWxpbmcgdGhlIGF1dGhvciBkaXJlY3RseSBhbmQgZ3JvdmVsbGluZyBmb3IgZnJlZSBzdXBwb3J0LjwvbGk+DQo8bGk+RG9uYXRpb25zIGFyZSBnb29kIG1vdGl2YXRvcnMsIHRvby4gS2VlcCBpbiBtaW5kIHRoYXQgdGhlIGRvbGxhciBpcyB3ZWFrLCBhbmQgaWYgeW91IGFyZSBub3QgaW4gdGhlIFVTLCB5b3VyIGRvbmF0aW9uIGdldHMgbWFnbmlmaWVkLjwvbGk+DQo8L3VsPg0KPHA+S2VlcCBpbiBtaW5kIHRoYXQgdGhlIGF1dGhvciBoYXMgcHV0IDxlbT5odW5kcmVkcyBhbmQgaHVuZHJlZHMgb2YgaG91cnM8L2VtPiBpbnRvIHRoZSBkZXZlbG9wbWVudCBvZiB0aGlzIG1vZHVsZS4NClBsZWFzZSB0YWtlIHRoZSB0aW1lIHRvIHJlYWQgdGhlIGRvY3VtZW50YXRpb24gYmVmb3JlIHNlbmRpbmcgcXVlc3Rpb25zLiBFaXRoZXIgdGhhdCwgb3Igc2VuZCB5b3VyIHF1ZXN0aW9ucyB3cml0dGVuIG9uDQpmaW5hbmNpYWxseSBuZWdvdGlhYmxlIGluc3RydW1lbnRzIChpLmUuLCBjaGVja3Mgb3IgY2FzaCkuIEFtIEkgc291bmRpbmcgbGlrZSBhIGJyb2tlbiByZWNvcmQ/IERvIHlvdSBraWRzIHRoZXNlIGRheXMNCmV2ZW4ga25vdyB3aGF0IGEgYnJva2VuIHJlY29yZCBpcz8gSSB3b3VsZCBzYXkgc2tpcHBpbmcgQ0QsIGJ1dCB5b3UgbWlnaHQgbm90IGtub3cgd2hhdCB0aGF0IGlzIGVpdGhlci4gTGlrZSBhDQpzYW1wbGUgdGhhdCBnb3Qgc3R1Y2sgb24gbG9vcD8gRGFtbiwgSSBhbSBnZXR0aW5nIG9sZC4gU28gaXMgdGhpcyBwYXJhZ3JhcGguIFRpbWUgdG8gbW92ZSBvbiwgaGVyZS48L3A+PGZvcm0gYWN0aW9uPSZxdW90O2h0dHBzOi8vd3d3LnBheXBhbC5jb20vY2dpLWJpbi93ZWJzY3ImcXVvdDsgbWV0aG9kPSZxdW90O3Bvc3QmcXVvdDs+DQo8aW5wdXQgdHlwZT0mcXVvdDtoaWRkZW4mcXVvdDsgbmFtZT0mcXVvdDtjbWQmcXVvdDsgdmFsdWU9JnF1b3Q7X3MteGNsaWNrJnF1b3Q7Pg0KPGlucHV0IHR5cGU9JnF1b3Q7aW1hZ2UmcXVvdDsgc3JjPSZxdW90O2h0dHBzOi8vd3d3LnBheXBhbC5jb20vZW5fVVMvaS9idG4vYnRuX2RvbmF0ZUNDX0xHLmdpZiZxdW90OyBib3JkZXI9JnF1b3Q7MCZxdW90OyBuYW1lPSZxdW90O3N1Ym1pdCZxdW90OyBhbHQ9JnF1b3Q7UGF5UGFsIC0gVGhlIHNhZmVyLCBlYXNpZXIgd2F5IHRvIHBheSBvbmxpbmUhJnF1b3Q7Pg0KPGltZyBhbHQ9JnF1b3Q7JnF1b3Q7IGJvcmRlcj0mcXVvdDswJnF1b3Q7IHNyYz0mcXVvdDtodHRwczovL3d3dy5wYXlwYWwuY29tL2VuX1VTL2kvc2NyL3BpeGVsLmdpZiZxdW90OyB3aWR0aD0mcXVvdDsxJnF1b3Q7IGhlaWdodD0mcXVvdDsxJnF1b3Q7Pg0KPGlucHV0IHR5cGU9JnF1b3Q7aGlkZGVuJnF1b3Q7IG5hbWU9JnF1b3Q7ZW5jcnlwdGVkJnF1b3Q7IHZhbHVlPSZxdW90Oy0tLS0tQkVHSU4gUEtDUzctLS0tLU1JSUhUd1lKS29aSWh2Y05BUWNFb0lJSFFEQ0NCendDQVFFeGdnRXdNSUlCTEFJQkFEQ0JsRENCampFTE1Ba0dBMVVFQmhNQ1ZWTXhDekFKQmdOVkJBZ1RBa05CTVJZd0ZBWURWUVFIRXcxTmIzVnVkR0ZwYmlCV2FXVjNNUlF3RWdZRFZRUUtFd3RRWVhsUVlXd2dTVzVqTGpFVE1CRUdBMVVFQ3hRS2JHbDJaVjlqWlhKMGN6RVJNQThHQTFVRUF4UUliR2wyWlY5aGNHa3hIREFhQmdrcWhraUc5dzBCQ1FFV0RYSmxRSEJoZVhCaGJDNWpiMjBDQVFBd0RRWUpLb1pJaHZjTkFRRUJCUUFFZ1lBSU5uQldiL1hNNGxtdkxHSGw5UmQxY3ZMNXRycVJoYzcrRm9HSDVMdG9mUWlWcmdGU3ZoN2gxb2pnNVN6VHhiZ3RpMzJaRjAvdWN1cS9PUVNEK1Z6dXVBRjF2NndWcnR5T2VDUEVBdzhqODFESk9YVmpKSHNJWTJtdmlvclBqb2xMUWtGbnYxMnlSVHB1RldGbjRaWGU1K3ZuQ2pYcUJ5MEVFL2FoekVNTW56RUxNQWtHQlNzT0F3SWFCUUF3Z2N3R0NTcUdTSWIzRFFFSEFUQVVCZ2dxaGtpRzl3MERCd1FJY0tOTndPUEZvd3VBZ2FpdlM3djBqMlhGeVE5ZHI4bmk5Rzk1ZUU3WXFvZ0dsSzl3dVNwbGxPZzlsbnJ1dm5FUXFzbVJtUW50aFFxV0NUYlp6RzIrSUV0ZU00SVVzeEV1R1RydzhwWkNVMjRUTkRja25LVXg5VXozdlN4T2gzZ3U5NXlKeUR3b2VNdmFFQTI0YnMxNFFFYkpiaE5qWTZXeEh6OStpL2xWQURCanlBT0RZTXV6YWxEa3ZkdXZ3ZUdOWms5bFlMUlJDb1BQTmlsRzFQZjZ3ODdCSHBrU004V1ExTEM5K1JXZFhmWmNtK2VnZ2dPSE1JSURnekNDQXV5Z0F3SUJBZ0lCQURBTkJna3Foa2lHOXcwQkFRVUZBRENCampFTE1Ba0dBMVVFQmhNQ1ZWTXhDekFKQmdOVkJBZ1RBa05CTVJZd0ZBWURWUVFIRXcxTmIzVnVkR0ZwYmlCV2FXVjNNUlF3RWdZRFZRUUtFd3RRWVhsUVlXd2dTVzVqTGpFVE1CRUdBMVVFQ3hRS2JHbDJaVjlqWlhKMGN6RVJNQThHQTFVRUF4UUliR2wyWlY5aGNHa3hIREFhQmdrcWhraUc5dzBCQ1FFV0RYSmxRSEJoZVhCaGJDNWpiMjB3SGhjTk1EUXdNakV6TVRBeE16RTFXaGNOTXpVd01qRXpNVEF4TXpFMVdqQ0JqakVMTUFrR0ExVUVCaE1DVlZNeEN6QUpCZ05WQkFnVEFrTkJNUll3RkFZRFZRUUhFdzFOYjNWdWRHRnBiaUJXYVdWM01SUXdFZ1lEVlFRS0V3dFFZWGxRWVd3Z1NXNWpMakVUTUJFR0ExVUVDeFFLYkdsMlpWOWpaWEowY3pFUk1BOEdBMVVFQXhRSWJHbDJaVjloY0dreEhEQWFCZ2txaGtpRzl3MEJDUUVXRFhKbFFIQmhlWEJoYkM1amIyMHdnWjh3RFFZSktvWklodmNOQVFFQkJRQURnWTBBTUlHSkFvR0JBTUZIVHQzOFJNeExYSnlPMlNtUytOZGw3MlQ3b0tKNHU0dXcrNmF3bnRBTFdoMDNQZXdtSUp1emJBTFNjc1RTNHNab1MxZktjaUJHb2gxMWdJZkh6eWx2a2ROZS9oSmw2Ni9SR3FyajVyRmIwOHNBQUJOVHpEVGlxcU5wSmVCc1lzL2MyYWlHb3pwdFgyUmxuQmt0SCtTVU5wQWFqVzcyNE52Mld2aGlmNnNGQWdNQkFBR2pnZTR3Z2Vzd0hRWURWUjBPQkJZRUZKYWZmTHZHYnhlOVdUOVMxd29iN0JEV1pKUnJNSUc3QmdOVkhTTUVnYk13Z2JDQUZKYWZmTHZHYnhlOVdUOVMxd29iN0JEV1pKUnJvWUdVcElHUk1JR09NUXN3Q1FZRFZRUUdFd0pWVXpFTE1Ba0dBMVVFQ0JNQ1EwRXhGakFVQmdOVkJBY1REVTF2ZFc1MFlXbHVJRlpwWlhjeEZEQVNCZ05WQkFvVEMxQmhlVkJoYkNCSmJtTXVNUk13RVFZRFZRUUxGQXBzYVhabFgyTmxjblJ6TVJFd0R3WURWUVFERkFoc2FYWmxYMkZ3YVRFY01Cb0dDU3FHU0liM0RRRUpBUllOY21WQWNHRjVjR0ZzTG1OdmJZSUJBREFNQmdOVkhSTUVCVEFEQVFIL01BMEdDU3FHU0liM0RRRUJCUVVBQTRHQkFJRmZPbGFhZ0ZybDcxK2pxNk9LaWRiV0ZTRStRNEZxUk92ZGdJT050aCs4a1NLLy9ZLzRpaHVFNFltdnpuNWNlRTNTL2lCU1FRTWp5dmIrczJUV2JRWUR3Y3AxMjlPUEliRDllcGRyNHRKT1VOaVNvanc3Qkh3WVJpUGg1OFMxeEdsRmdIRlh3ckVCYjNkZ05iTVVhK3U0cWVjdHNNQVhwVkhuRDl3SXlmbUhNWUlCbWpDQ0FaWUNBUUV3Z1pRd2dZNHhDekFKQmdOVkJBWVRBbFZUTVFzd0NRWURWUVFJRXdKRFFURVdNQlFHQTFVRUJ4TU5UVzkxYm5SaGFXNGdWbWxsZHpFVU1CSUdBMVVFQ2hNTFVHRjVVR0ZzSUVsdVl5NHhFekFSQmdOVkJBc1VDbXhwZG1WZlkyVnlkSE14RVRBUEJnTlZCQU1VQ0d4cGRtVmZZWEJwTVJ3d0dnWUpLb1pJaHZjTkFRa0JGZzF5WlVCd1lYbHdZV3d1WTI5dEFnRUFNQWtHQlNzT0F3SWFCUUNnWFRBWUJna3Foa2lHOXcwQkNRTXhDd1lKS29aSWh2Y05BUWNCTUJ3R0NTcUdTSWIzRFFFSkJURVBGdzB3T0RBM01ERXdNelU1TXpsYU1DTUdDU3FHU0liM0RRRUpCREVXQkJRTTBMVjMwZkxYY0g5TTVkTW11VEJMbnNGUTRqQU5CZ2txaGtpRzl3MEJBUUVGQUFTQmdCRXoyWHFNTXFGYnVVaGorTDEyOEN3MnU4U2hPS1F0dHJLci9oaTBXUmVlbkhEWUJpSE9TdGw2M1J2NzZRMm1wZDQ1M1J2Q2o1bXE3ZFJ0dVJCNnBmSEdSRGtVWDZOMStPT0lvSWZyb0JaSUFUTmh6OUNFSHdFRmtOallnMEVHTUFHK2pjYkFqMURKalI3M2N4YmFOclhXUHhBK2hpUWhIbEFyclpBN3JGVjUtLS0tLUVORCBQS0NTNy0tLS0tDQomcXVvdDs+DQo8L2Zvcm0+PHA+QXMgcGVyIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgYXMtaXMuIFBsZWFzZSByZWFkIHRoZSB0ZXh0DQpvZiB0aGUgbGljZW5zZSBmb3IgdGhlIGZ1bGwgZGlzY2xhaW1lci48L3A+DQo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4NCjxwPkNvcHlyaWdodCAmY29weTsgMjAwOSwgU2FtdWVsIEdvbGRzdGVpbiA8YSBocmVmPSJtYWlsdG86c2pnQGNtc21vZHVsZXMuY29tIj48c2pnQGNtc21vZHVsZXMuY29tPjwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4NCjxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+JzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuMTY2NDg5NzU2NS4xMjcyNzU5MTYzLjEyODA0OTU1ODkuMTI4MDYxNTYzOS40MSc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEyNzgzNjEyNzMuMzMuNi51dG1jc3I9ZmVlZGJ1cm5lcnx1dG1jY249RmVlZDogY21zbWFkZXNpbXBsZS9ibG9nIChDTVMgTWFkZSBTaW1wbGUpfHV0bWNtZD1mZWVkJzsKJGxhbmdbJ3FjYSddID0gJ1AwLTE5NjA3NTYzNjEtMTI3Mjc1OTE2MzM3MCc7CiRsYW5nWyd1dG1iJ10gPSAnMTU2ODYxMzUzLjEuMTAuMTI4MDYxNTYzOSc7CiRsYW5nWyd1dG1jJ10gPSAnMTU2ODYxMzUzJzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNyBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDcgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKCQkkZGIgPSAkdGhpcy0+R2V0RGIoKTsKCQkkZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCRkYik7CgkJJGZsZHMgPSAiCgkJCWZvcm1faWQgSSBLRVksCgkJCW5hbWUgQygyNTUpLAoJCQlhbGlhcyBDKDI1NSkKCQkiOwoJCSR0YWJvcHRhcnJheSA9IGFycmF5KCdteXNxbCcgPT4gJ1RZUEU9TXlJU0FNJyk7CgkJJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zvcm0nLCAkZmxkcywgJHRhYm9wdGFycmF5KTsKCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgoJCSRkYi0+Q3JlYXRlU2VxdWVuY2UoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZm9ybV9zZXEnKTsKCQkkZGItPkV4ZWN1dGUoJ2NyZWF0ZSBpbmRleCAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zvcm1faWR4IG9uICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZm9ybSAoYWxpYXMpJyk7CgkJCgkJJGZsZHMgPSAiCgkJCWZvcm1fYXR0cl9pZCBJIEtFWSwKCQkJZm9ybV9pZCBJLAoJCQluYW1lIEMoMzUpLAoJCQl2YWx1ZSBYCgkJIjsKCQkkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZm9ybV9hdHRyJywgJGZsZHMsICR0YWJvcHRhcnJheSk7CgkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKCQkkZGItPkNyZWF0ZVNlcXVlbmNlKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zvcm1fYXR0cl9zZXEnKTsKCQkkZGItPkV4ZWN1dGUoJ2NyZWF0ZSBpbmRleCAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zvcm1fYXR0cl9pZHggb24gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9mb3JtX2F0dHIgKGZvcm1faWQpJyk7CgoJCSRmbGRzID0gIgoJCQlmaWVsZF9pZCBJIEtFWSwKCQkJZm9ybV9pZCBJLAoJCQluYW1lIEMoMjU1KSwKCQkJdHlwZSBDKDUwKSwKCQkJdmFsaWRhdGlvbl90eXBlIEMoNTApLAoJCQlyZXF1aXJlZCBJMSwKCQkJaGlkZV9sYWJlbCBJMSwKCQkJb3JkZXJfYnkgSQoJCSI7CgkJJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2ZpZWxkJywgJGZsZHMsICR0YWJvcHRhcnJheSk7CgkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKCQkkZGItPkNyZWF0ZVNlcXVlbmNlKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2ZpZWxkX3NlcScpOwoJCSRkYi0+RXhlY3V0ZSgnY3JlYXRlIGluZGV4ICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGRfaWR4IG9uICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGQgKGZvcm1faWQpJyk7CgoKCQkkZmxkcyA9ICIKCQkJb3B0aW9uX2lkIEkgS0VZLAoJCQlmaWVsZF9pZCBJLAoJCQlmb3JtX2lkIEksCgkJCW5hbWUgQygyNTUpLAoJCQl2YWx1ZSBYCgkJIjsKCQkkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGRfb3B0JywgJGZsZHMsICR0YWJvcHRhcnJheSk7CgkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKCQkkZGItPkNyZWF0ZVNlcXVlbmNlKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2ZpZWxkX29wdF9zZXEnKTsKCQkkZGItPkV4ZWN1dGUoJ2NyZWF0ZSBpbmRleCAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2ZpZWxkX29wdF9pZHggb24gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9maWVsZF9vcHQgKGZpZWxkX2lkLGZvcm1faWQpJyk7CgoJCSRmbGRzID0gIgoJCQlmbG9ja19pZCBJIEtFWSwKCQkJZmxvY2sgVAoJCSI7CgoJCSRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9mbG9jaycsICRmbGRzLCAkdGFib3B0YXJyYXkpOwoJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgkJJGZsZHMgPSAiCgkJCXJlc3BfaWQgSSBLRVksCgkJCWZvcm1faWQgSSwKCQkJZmV1c2VyX2lkIEksCgkJCXVzZXJfYXBwcm92ZWQgIi5DTVNfQURPREJfRFQuIiwKCQkJc2VjcmV0X2NvZGUgQygzNSksCgkJCWFkbWluX2FwcHJvdmVkICIuQ01TX0FET0RCX0RULiIsCgkJCXN1Ym1pdHRlZCAiLkNNU19BRE9EQl9EVDsKCQkkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfcmVzcCcsICRmbGRzLCAkdGFib3B0YXJyYXkpOwoJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgkJJGZsZHMgPSAiCgkJCXJlc3BfYXR0cl9pZCBJIEtFWSwKCQkJcmVzcF9pZCBJLAoJCQluYW1lIEMoMzUpLAoJCQl2YWx1ZSBYCgkJIjsKCQkkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfcmVzcF9hdHRyJywgJGZsZHMsICR0YWJvcHRhcnJheSk7CgkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKCQkkZGItPkNyZWF0ZVNlcXVlbmNlKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX3Jlc3BfYXR0cl9zZXEnKTsKCgoJCSRkYi0+Q3JlYXRlU2VxdWVuY2UoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfcmVzcF9zZXEnKTsKCgkJJGZsZHMgPSAiCgkJCXJlc3BfdmFsX2lkIEkgS0VZLAoJCQlyZXNwX2lkIEksCgkJCWZpZWxkX2lkIEksCgkJCXZhbHVlIFgKCQkiOwoJCSRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9yZXNwX3ZhbCcsICRmbGRzLCAkdGFib3B0YXJyYXkpOwoJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgkJJGRiLT5DcmVhdGVTZXF1ZW5jZShjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9yZXNwX3ZhbF9zZXEnKTsKCgkJJGZsZHMgPSAiCgkJCXNlbnRfaWQgSSBLRVksCgkJCXNyY19pcCBDKDE2KSwKCQkJc2VudF90aW1lICIuQ01TX0FET0RCX0RUOwoJCSRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9pcF9sb2cnLCAkZmxkcywgJHRhYm9wdGFycmF5KTsKCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgoJCSRkYi0+Q3JlYXRlU2VxdWVuY2UoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfaXBfbG9nX3NlcScpOwoKCQkkZmxkcyA9ICIKCQkJCWZicl9pZCBJIEtFWSwKCQkJCWZvcm1faWQgSSwKCQkJCWluZGV4X2tleV8xIEMoODApLAoJCQkJaW5kZXhfa2V5XzIgQyg4MCksCgkJCQlpbmRleF9rZXlfMyBDKDgwKSwKCQkJCWluZGV4X2tleV80IEMoODApLAoJCQkJaW5kZXhfa2V5XzUgQyg4MCksCgkJCQlmZXVpZCBJLAoJCQkJcmVzcG9uc2UgWEwsCgkJCQl1c2VyX2FwcHJvdmVkICIuQ01TX0FET0RCX0RULiIsCgkJCQlzZWNyZXRfY29kZSBDKDM1KSwKCQkJCWFkbWluX2FwcHJvdmVkICIuQ01TX0FET0RCX0RULiIsCgkJCQlzdWJtaXR0ZWQgIi5DTVNfQURPREJfRFQ7CgkJCQkKCQkkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZm9ybWJyb3dzZXInLCAkZmxkcywgJHRhYm9wdGFycmF5KTsKCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgoJCSRkYi0+Q3JlYXRlU2VxdWVuY2UoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZm9ybWJyb3dzZXJfc2VxJyk7CgkJJGRiLT5DcmVhdGVTZXF1ZW5jZShjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl91bmlxdWVmaWVsZF9zZXEnKTsKCgkJJHRoaXMtPkNyZWF0ZVBlcm1pc3Npb24oJ01vZGlmeSBGb3JtcycsICdNb2RpZnkgRm9ybXMnKTsKCgkJJHRoaXMtPkNyZWF0ZUV2ZW50KCAnT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnICk7CgkJJHRoaXMtPkNyZWF0ZUV2ZW50KCAnT25Gb3JtQnVpbGRlckZvcm1EaXNwbGF5JyApOwoJCSR0aGlzLT5DcmVhdGVFdmVudCggJ09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InICk7CgoJCSRjc3MgPSBmaWxlX2dldF9jb250ZW50cyhjbXNfam9pbl9wYXRoKGRpcm5hbWUoX19GSUxFX18pLCAnaW5jbHVkZXMnLCdkZWZhdWx0LmNzcycpKTsKCQkkY3NzX2lkID0gJGRiLT5HZW5JRChjbXNfZGJfcHJlZml4KCkuJ2Nzc19zZXEnKTsKCQkkZGItPkV4ZWN1dGUoJ2luc2VydCBpbnRvICcuY21zX2RiX3ByZWZpeCgpLidjc3MgKGNzc19pZCwgY3NzX25hbWUsIGNzc190ZXh0LCBtZWRpYV90eXBlLCBjcmVhdGVfZGF0ZSkgdmFsdWVzICg/LD8sPyw/LD8pJywKCQkJYXJyYXkoJGNzc19pZCwnRm9ybUJ1aWxkZXIgRGVmYXVsdCBTdHlsZScsJGNzcywnc2NyZWVuJyxkYXRlKCdZLW0tZCcpKSk7CgoJCS8vaW5jbHVkZSAnaW5jbHVkZXMvRm9ybUJ1aWxkZXJTYW1wbGVEYXRhLmluYyc7CQoJCSRwYXRoID0gY21zX2pvaW5fcGF0aChkaXJuYW1lKF9fRklMRV9fKSwnaW5jbHVkZXMnKTsKCQkkZGlyPW9wZW5kaXIoJHBhdGgpOwogICAJCXdoaWxlICgkZmlsZXNwZWM9cmVhZGRpcigkZGlyKSkKICAgCQkJewogICAJCQkkcGFyYW1zID0gYXJyYXkoKTsKICAgCQkJJGFlZm9ybSA9ICcnOwogICAgICAgCQlpZiAocHJlZ19tYXRjaCgnLy54bWwkLycsJGZpbGVzcGVjKSA+IDApCiAgICAgICAJCQl7CiAgICAgICAJCQkkcGFyYW1zWydmYnJwX3htbF9maWxlJ10gPSBjbXNfam9pbl9wYXRoKCRwYXRoLCRmaWxlc3BlYyk7CiAgICAgICAJCQkkYWVmb3JtID0gbmV3IGZiRm9ybSgkdGhpcywgJHBhcmFtcywgdHJ1ZSk7CgkJCQkkcmVzID0gJGFlZm9ybS0+SW1wb3J0WE1MKCRwYXJhbXMpOwogICAgICAgCQkJfQogICAgICAgCQl9CgoJCSR0aGlzLT5BdWRpdCggMCwgJHRoaXMtPkxhbmcoJ2ZyaWVuZGx5bmFtZScpLCAkdGhpcy0+TGFuZygnaW5zdGFsbGVkJywkdGhpcy0+R2V0VmVyc2lvbigpKSk7Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCgkJJGRiID0gJHRoaXMtPkdldERiKCk7CgkJJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSgkZGIpOwoJCSRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZm9ybScpOwoJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgkJJGRiLT5Ecm9wU2VxdWVuY2UoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZm9ybV9zZXEnKTsKCgkJJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9mb3JtX2F0dHInKTsKCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgoJCSRkYi0+RHJvcFNlcXVlbmNlKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zvcm1fYXR0cl9zZXEnKTsKCgkJJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9maWVsZCcpOwoJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgkJJGRiLT5Ecm9wU2VxdWVuY2UoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGRfc2VxJyk7CgoJCSRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGRfb3B0Jyk7CgkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKCQkkZGItPkRyb3BTZXF1ZW5jZShjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9maWVsZF9vcHRfc2VxJyk7CgoJCSRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmxvY2snKTsKCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgoJCSRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfcmVzcF92YWwnKTsKCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgkJJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9yZXNwJyk7CgkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoJCSRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfcmVzcF9hdHRyJyk7CgkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKCQkkc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2lwX2xvZycpOwoJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCQkKCQkkc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zvcm1icm93c2VyJyk7CgkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoJCQoKCQkkZGItPkRyb3BTZXF1ZW5jZShjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9yZXNwX3NlcScpOwoJCSRkYi0+RHJvcFNlcXVlbmNlKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX3Jlc3BfdmFsX3NlcScpOwoJCSRkYi0+RHJvcFNlcXVlbmNlKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX3Jlc3BfYXR0cl9zZXEnKTsKCQkkZGItPkRyb3BTZXF1ZW5jZShjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9pcF9sb2dfc2VxJyk7CgkJJGRiLT5Ecm9wU2VxdWVuY2UoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZm9ybWJyb3dzZXJfc2VxJyk7CgkJJGRiLT5Ecm9wU2VxdWVuY2UoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfdW5pcXVlZmllbGRfc2VxJyk7CgoJCSR0aGlzLT5SZW1vdmVQZXJtaXNzaW9uKCdNb2RpZnkgRm9ybXMnKTsKCQkKCQkkdGhpcy0+UmVtb3ZlRXZlbnQoICdPbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdCcgKTsKCQkkdGhpcy0+UmVtb3ZlRXZlbnQoICdPbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknICk7CgkJJHRoaXMtPlJlbW92ZUV2ZW50KCAnT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvcicgKTsKCgkJJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoJ2hpZGVfZXJyb3JzJyk7CgkJJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoJ3Nob3dfdmVyc2lvbicpOwoJCSR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCdyZWxheGVkX2VtYWlsX3JlZ2V4Jyk7CgkJJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoJ2VuYWJsZV9mYXN0YWRkJyk7CgkJJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoJ2VuYWJsZV9hbnRpc3BhbScpOwoJCSR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCdyZXF1aXJlX2ZpZWxkbmFtZXMnKTsKCQkkdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgndW5pcXVlX2ZpZWxkbmFtZXMnKTsKCQkkdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgnc2hvd19maWVsZGlkcycpOwoJCSR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCdzaG93X2ZpZWxkYWxpYXNlcycpOwoJCQoJCSRkYi0+RXhlY3V0ZSgnREVMRVRFIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ2NzcyBXSEVSRSBjc3NfbmFtZSA9ID8nLCBhcnJheSgnRm9ybUJ1aWxkZXIgRGVmYXVsdCBTdHlsZScpKTsKCgkJJHRoaXMtPkF1ZGl0KCAwLCAkdGhpcy0+TGFuZygnZnJpZW5kbHluYW1lJyksICR0aGlzLT5MYW5nKCd1bmluc3RhbGxlZCcpKTsKCj8+]]></data>
	</file>
	<file>
	  <filename>/method.upgrade.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNyBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDcgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCgkJJHRoaXMtPmluaXRpYWxpemUoKTsKCQkkZGIgPSAkdGhpcy0+R2V0RGIoKTsKCQkkY3VycmVudF92ZXJzaW9uID0gJG9sZHZlcnNpb247CgkJJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSgkZGIpOwoJCSR0YWJvcHRhcnJheSA9IGFycmF5KCdteXNxbCcgPT4gJ1RZUEU9TXlJU0FNJyk7CgkJZGVidWdfZGlzcGxheSgnQ3VycmVudC12ZXJzaW9uOiAnLiRjdXJyZW50X3ZlcnNpb24pOwoJCXN3aXRjaCgkY3VycmVudF92ZXJzaW9uKQoJCXsKCQkJY2FzZSAiMC4xIjoKCQkJY2FzZSAiMC4yIjoKCQkJY2FzZSAiMC4yLjIiOgoJCQljYXNlICIwLjIuMyI6CgkJCWNhc2UgIjAuMi40IjoKCQkJCXsKCQkJCSRmbGRzID0gIgoJCQkJCXNlbnRfaWQgSSBLRVksCgkJCQkJc3JjX2lwIEMoMTYpLAoJCQkJCXNlbnRfdGltZSAiLkNNU19BRE9EQl9EVDsKCQkJCSRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9pcF9sb2cnLCAkZmxkcywgJHRhYm9wdGFycmF5KTsKCQkJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgkJCQkkZGItPkNyZWF0ZVNlcXVlbmNlKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2lwX2xvZ19zZXEnKTsKCQkJCX0KCQkJY2FzZSAiMC4zIjoKCQkJICAgewogICAgICAgICAgICAvLyByZWFkIHRoZSBvbGQgdGVtcGxhdGVzCiAgICAgICAgICAgICR0ZW1wX3RhYl9sZWZ0ID0gZmlsZV9nZXRfY29udGVudHMgKCBkaXJuYW1lKF9fRklMRV9fKS4nL3RlbXBsYXRlcy9SZW5kZXJGb3JtVGFibGVUaXRsZUxlZnQudHBsJyk7CiAgICAgICAgICAgICR0ZW1wX3RhYl90b3AgPSBmaWxlX2dldF9jb250ZW50cyAoIGRpcm5hbWUoX19GSUxFX18pLicvdGVtcGxhdGVzL1JlbmRlckZvcm1UYWJsZVRpdGxlVG9wLnRwbCcpOwogICAgICAgICAgICAkdGVtcF90YWJfY3NzID0gIGZpbGVfZ2V0X2NvbnRlbnRzICggZGlybmFtZShfX0ZJTEVfXykuJy90ZW1wbGF0ZXMvUmVuZGVyRm9ybUNTUy50cGwnKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIC8vIHRoaXMgdXBncmFkZSBzaG91bGQgaGF2ZSBhIGxvdCBtb3JlIGVycm9yIGNoZWNraW5nLCBidXQgSSdtIHRvbyBsYXp5LgogICAgICAgICAgICAvLyBUaGF0J3MgdGhlIGRvd25zaWRlIHRvIEZyZWUgc29mdHdhcmUgOigKCiAgICAgICAgICAgIC8vIHVwZGF0ZSBhbGwgZm9ybXMgdG8gdXNlIGEgQ3VzdG9tIFRlbXBsYXRlCgkgICAgICAgICAkc3FsID0gJ1NFTEVDVCBmb3JtX2lkLCB2YWx1ZSBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkuCgkgICAgICAgICAgICAgICJtb2R1bGVfZmJfZm9ybV9hdHRyIHdoZXJlIG5hbWU9J2Zvcm1fZGlzcGxheXR5cGUnIGFuZCB2YWx1ZSA8PiAndGVtcGxhdGUnIjsKICAgICAgICAgICAgJHN1YnNxbCA9ICdVUERBVEUgJy5jbXNfZGJfcHJlZml4KCkuCgkgICAgICAgICAgICAgICJtb2R1bGVfZmJfZm9ybV9hdHRyIFNFVCB2YWx1ZT0/IHdoZXJlIG5hbWU9J2Zvcm1fdGVtcGxhdGUnIGFuZCBmb3JtX2lkPT8iOwoJICAgICAgICAgJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRzcWwpOwogICAgICAgICAgICB3aGlsZSAoJGRicmVzdWx0ICYmICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgaWYgKCRyb3dbJ3ZhbHVlJ10gPT0gJ3RhYicpCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgLy8gdG9wIG9yIGxlZnQgdGl0bGU/IEFub3RoZXIgZGFtbiBxdWVyeS4KICAgICAgICAgICAgICAgICAgJHRvcGxlZnQgPSAkZGItPkdldE9uZSgnU0VMRUNUIHZhbHVlIGZyb20gJyAuIGNtc19kYl9wcmVmaXgoKS4KCSAgICAgICAgICAgICAgICAgICAgIm1vZHVsZV9mYl9mb3JtX2F0dHIgd2hlcmUgbmFtZT0ndGl0bGVfcG9zaXRpb24nIGFuZCBmb3JtX2lkPT8iLAogICAgICAgICAgICAgICAgICAgICAgIGFycmF5KCRyb3dbJ2Zvcm1faWQnXSkpOwogICAgICAgICAgICAgICAgICBpZiAoJHRvcGxlZnQgPT0gJ2xlZnQnKQogICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICRyZXMgPSAkZGItPkV4ZWN1dGUoJHN1YnNxbCxhcnJheSgkdGVtcF90YWJfbGVmdCwkcm93Wydmb3JtX2lkJ10pKTsKICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPlNldFRlbXBsYXRlKCdmYl8nLiRyb3dbJ2Zvcm1faWQnXSwkdGVtcF90YWJfbGVmdCk7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICRyZXMgPSAkZGItPkV4ZWN1dGUoJHN1YnNxbCxhcnJheSgkdGVtcF90YWJfdG9wLCRyb3dbJ2Zvcm1faWQnXSkpOwogICAgICAgICAgICAgICAgICAgICAkdGhpcy0+U2V0VGVtcGxhdGUoJ2ZiXycuJHJvd1snZm9ybV9pZCddLCR0ZW1wX3RhYl90b3ApOwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgZWxzZSBpZiAoJHJvd1sndmFsdWUnXSA9PSAnY3Nzb25seScpCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgJHJlcyA9ICRkYi0+RXhlY3V0ZSgkc3Vic3FsLGFycmF5KCR0ZW1wX3RhYl9jc3MsJHJvd1snZm9ybV9pZCddKSk7CiAgICAgICAgICAgICAgICAgICR0aGlzLT5TZXRUZW1wbGF0ZSgnZmJfJy4kcm93Wydmb3JtX2lkJ10sJHRlbXBfdGFiX2Nzcyk7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgfQogICAgICAgICAgICAkY2xlYW51cHNxbCA9ICdERUxFVEUgRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpLgoJICAgICAgICAgICAgICAgICAgICAibW9kdWxlX2ZiX2Zvcm1fYXR0ciB3aGVyZSBuYW1lPSd0aXRsZV9wb3NpdGlvbicgb3IgbmFtZT0nZm9ybV9kaXNwbGF5dHlwZSciOwogICAgICAgICAgICAkcmVzID0gJGRiLT5FeGVjdXRlKCRjbGVhbnVwc3FsKTsKICAgICAgICAgICAgfQogICAgICAgICBjYXNlICIwLjQiOgogICAgICAgICAgICB7CiAgICAgICAgICAgIC8vIHVwZ3JhZGUgdGhlIHRlbXBsYXRlcyBzbyB0aGV5IGF0IGxlYXN0IHdvcmsuCgkgICAgICAgICAkc3FsID0gJ1NFTEVDVCBmb3JtX2lkLCB2YWx1ZSBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkuCgkgICAgICAgICAgICAgICJtb2R1bGVfZmJfZm9ybV9hdHRyIHdoZXJlIG5hbWU9J2Zvcm1fdGVtcGxhdGUnIjsKICAgICAgICAgICAgJHN1YnNxbCA9ICdVUERBVEUgJy5jbXNfZGJfcHJlZml4KCkuCgkgICAgICAgICAgICAgICJtb2R1bGVfZmJfZm9ybV9hdHRyIFNFVCB2YWx1ZT0/IHdoZXJlIG5hbWU9J2Zvcm1fdGVtcGxhdGUnIGFuZCBmb3JtX2lkPT8iOwogICAgICAgICAgICAkdGVtcF9uZmggPSBmaWxlX2dldF9jb250ZW50cyAoIGRpcm5hbWUoX19GSUxFX18pLicvaW5jbHVkZXMvbmV3X2Zvcm1faGVhZGVyLnRwbCcpOwogICAgICAgICAgICAkdGVtcF9uZmYgPSBmaWxlX2dldF9jb250ZW50cyAoIGRpcm5hbWUoX19GSUxFX18pLicvaW5jbHVkZXMvbmV3X2Zvcm1fZm9vdGVyLnRwbCcpOwoJICAgICAgICAgJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRzcWwpOwoKICAgICAgICAgICAgd2hpbGUgKCRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICRmaXh0ZW1wbCA9ICR0ZW1wX25maC4ieyoiLiR0aGlzLT5MYW5nKCd1cGdyYWRlMDN0bzA0JykuIip9XG4iLiRyb3dbJ3ZhbHVlJ10uJHRlbXBfbmZmOwoKICAgICAgICAgICAgICAgJHJlcyA9ICRkYi0+RXhlY3V0ZSgkc3Vic3FsLGFycmF5KCRmaXh0ZW1wbCwkcm93Wydmb3JtX2lkJ10pKTsKICAgICAgICAgICAgICAgJHRoaXMtPlNldFRlbXBsYXRlKCdmYl8nLiRyb3dbJ2Zvcm1faWQnXSwkZml4dGVtcGwpOwogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIGZpeCByb3dzL2NvbHMgcHJvYmxlbSBmb3IgVGV4dEFyZWFzCgkgICAgICAgICAkc3FsID0gJ1NFTEVDVCBmb3JtX2lkLCBmaWVsZF9pZCwgbmFtZSwgdmFsdWUgRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpLgoJICAgICAgICAgICAgICAibW9kdWxlX2ZiX2ZpZWxkX29wdCB3aGVyZSBuYW1lPSdyb3dzJyBvciBuYW1lPSdjb2xzJyI7CiAgICAgICAgICAgICRyb3dzID0gYXJyYXkoKTsKICAgICAgICAgICAgJGNvbHMgPSBhcnJheSgpOwoJICAgICAgICAgJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRzcWwpOwogICAgICAgICAgICB3aGlsZSAoJGRicmVzdWx0ICYmICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgaWYgKCRyb3dbJ25hbWUnXSA9PSAncm93cycpCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgJGNvbHNbJHJvd1snZm9ybV9pZCddLidfJy4kcm93WydmaWVsZF9pZCddXSA9ICRyb3dbJ3ZhbHVlJ107CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICRyb3dzWyRyb3dbJ2Zvcm1faWQnXS4nXycuJHJvd1snZmllbGRfaWQnXV0gPSAkcm93Wyd2YWx1ZSddOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgJHNxbCA9ICdVUERBVEUgJy5jbXNfZGJfcHJlZml4KCkuICdtb2R1bGVfZmJfZmllbGRfb3B0IHNldCB2YWx1ZT0/IHdoZXJlIGZvcm1faWQ9PyBhbmQgZmllbGRfaWQ9PyBhbmQgbmFtZT0/JzsKICAgICAgICAgICAgZm9yZWFjaCAoJHJvd3MgYXMgJGtleT0+JHZhbCkKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAkdGhpc1JvdyA9ICR2YWw7CiAgICAgICAgICAgICAgICR0aGlzQ29sID0gJGNvbHNbJGtleV07CiAgICAgICAgICAgICAgIGxpc3QoJGZvcm1faWQsJGZpZWxkX2lkKSA9IGV4cGxvZGUoJ18nLCRrZXkpOwogICAgICAgICAgICAgICAkcmVzID0gJGRiLT5FeGVjdXRlKCRzcWwsYXJyYXkoJHRoaXNSb3csJGZvcm1faWQsJGZpZWxkX2lkLCdyb3dzJykpOwogICAgICAgICAgICAgICAkcmVzID0gJGRiLT5FeGVjdXRlKCRzcWwsYXJyYXkoJHRoaXNDb2wsJGZvcm1faWQsJGZpZWxkX2lkLCdjb2xzJykpOwogICAgICAgICAgICAgICB9CgogICAgICAgICAgICB9CgkJY2FzZSAiMC40LjEiOgoJCWNhc2UgIjAuNC4yIjoKCQljYXNlICIwLjQuMyI6CgkJY2FzZSAiMC40LjQiOgoJCQl7CgkJCSRmbGRzID0gIgoJCQkJZmJyX2lkIEkgS0VZLAoJCQkJZm9ybV9pZCBJLAoJCQkJaW5kZXhfa2V5XzEgQyg4MCksCgkJCQlpbmRleF9rZXlfMiBDKDgwKSwKCQkJCWluZGV4X2tleV8zIEMoODApLAoJCQkJaW5kZXhfa2V5XzQgQyg4MCksCgkJCQlpbmRleF9rZXlfNSBDKDgwKSwKCQkJCXJlc3BvbnNlIFgsCgkJCQl1c2VyX2FwcHJvdmVkICIuQ01TX0FET0RCX0RULiIsCgkJCQlzZWNyZXRfY29kZSBDKDM1KSwKCQkJCWFkbWluX2FwcHJvdmVkICIuQ01TX0FET0RCX0RULiIsCgkJCQlzdWJtaXR0ZWQgIi5DTVNfQURPREJfRFQ7CgkJCSRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9mb3JtYnJvd3NlcicsICRmbGRzLCAkdGFib3B0YXJyYXkpOwoJCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgoJCQkkZGItPkNyZWF0ZVNlcXVlbmNlKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX3VuaXF1ZWZpZWxkX3NlcScpOwoJCQkkZGItPkNyZWF0ZVNlcXVlbmNlKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zvcm1icm93c2VyX3NlcScpOwoJCQkJCgkJCX0KCQljYXNlICIwLjUiOgoJCWNhc2UgIjAuNS4xIjoKCQljYXNlICIwLjUuMiI6CgkJY2FzZSAiMC41LjMiOgoJCQl7CgkJCSRkYi0+RXhlY3V0ZSgnY3JlYXRlIGluZGV4ICcuY21zX2RiX3ByZWZpeCgpLgoJCQkJJ21vZHVsZV9mYl9mb3JtX2lkeCBvbiAnLmNtc19kYl9wcmVmaXgoKS4KCQkJCSdtb2R1bGVfZmJfZm9ybSAoYWxpYXMpJyk7CgkJCSRkYi0+RXhlY3V0ZSgnY3JlYXRlIGluZGV4ICcuY21zX2RiX3ByZWZpeCgpLgoJCQkJJ21vZHVsZV9mYl9mb3JtX2F0dHJfaWR4IG9uICcuY21zX2RiX3ByZWZpeCgpLgoJCQkJJ21vZHVsZV9mYl9mb3JtX2F0dHIgKGZvcm1faWQpJyk7CgkJCSRkYi0+RXhlY3V0ZSgnY3JlYXRlIGluZGV4ICcuY21zX2RiX3ByZWZpeCgpLgoJCQkJJ21vZHVsZV9mYl9maWVsZF9vcHRfaWR4IG9uICcuY21zX2RiX3ByZWZpeCgpLgoJCQkJJ21vZHVsZV9mYl9maWVsZF9vcHQgKGZpZWxkX2lkLGZvcm1faWQpJyk7CgkJCSRkYi0+RXhlY3V0ZSgnY3JlYXRlIGluZGV4ICcuY21zX2RiX3ByZWZpeCgpLgoJCQkJJ21vZHVsZV9mYl9maWVsZF9pZHggb24gJy5jbXNfZGJfcHJlZml4KCkuCgkJCQknbW9kdWxlX2ZiX2ZpZWxkIChmb3JtX2lkKScpOwoJCQkkZGItPkV4ZWN1dGUoJ2NyZWF0ZSBpbmRleCAnLmNtc19kYl9wcmVmaXgoKS4KCQkJCSdtb2R1bGVfZmJfZm9ybWJyb3dzZXJfaWR4IG9uICcuY21zX2RiX3ByZWZpeCgpLgoJCQkJCSdtb2R1bGVfZmJfZm9ybWJyb3dzZXIgKGZvcm1faWQsaW5kZXhfa2V5XzEsaW5kZXhfa2V5XzIsaW5kZXhfa2V5XzMsaW5kZXhfa2V5XzQsIGluZGV4X2tleV81KScpOwoJCQl9CgkJY2FzZSAiMC41LjQiOgoJCWNhc2UgIjAuNS41IjoKCQljYXNlICIwLjUuNiI6CgkJCXsKCQkJJGNzcyA9IGZpbGVfZ2V0X2NvbnRlbnRzKGNtc19qb2luX3BhdGgoZGlybmFtZShfX0ZJTEVfXyksICdpbmNsdWRlcycsJ2RlZmF1bHQuY3NzJykpOwoJCQkkY3NzX2lkID0gJGRiLT5HZW5JRChjbXNfZGJfcHJlZml4KCkuJ2Nzc19zZXEnKTsKCQkJJGRiLT5FeGVjdXRlKCdpbnNlcnQgaW50byAnLmNtc19kYl9wcmVmaXgoKS4nY3NzIChjc3NfaWQsIGNzc19uYW1lLCBjc3NfdGV4dCwgbWVkaWFfdHlwZSwgY3JlYXRlX2RhdGUpIHZhbHVlcyAoPyw/LD8sPyw/KScsCgkJCQkJYXJyYXkoJGNzc19pZCwnRm9ybUJ1aWxkZXIgRGVmYXVsdCBTdHlsZScsJGNzcywnc2NyZWVuJyxkYXRlKCdZLW0tZCcpKSk7CgkJCQoJCQl9CgkJY2FzZSAiMC41LjciOgoJCWNhc2UgIjAuNS44IjoKCQljYXNlICIwLjUuOSI6CgkJY2FzZSAiMC41LjEwIjoKCQljYXNlICIwLjUuMTEiOgoJCWNhc2UgIjAuNS4xMiI6CgkJY2FzZSAiMC42YjEiOgoJCWNhc2UgIjAuNmIyIjoKICAgICAgICAJJHNxbGFycmF5ID0gJGRpY3QtPkFkZENvbHVtblNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mYl9mb3JtYnJvd3NlciIsICJmZXVpZCBJIik7CiAgICAgICAgCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCQkJJHNxbGFycmF5ID0gJGRpY3QtPkFkZENvbHVtblNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mYl9mb3JtYnJvd3NlciIsICJyZXNuZXcgWEwiKTsKICAgICAgICAJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoJCQkkZGItPkV4ZWN1dGUoJ3VwZGF0ZSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zvcm1icm93c2VyIHNldCByZXNuZXc9cmVzcG9uc2UnKTsKCQkJJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BDb2x1bW5TUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZmJfZm9ybWJyb3dzZXIiLCAicmVzcG9uc2UiKTsKICAgICAgICAJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwogICAgICAgICAvLyBhZG9kYi1saXRlIGhvc2VzIGNvbHVtbiByZW5hbWVzLCBzbyB3ZSBkbyBpdCB0aGUgaGFyZCB3YXkKCQkJJHNxbGFycmF5ID0gJGRpY3QtPkFkZENvbHVtblNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mYl9mb3JtYnJvd3NlciIsICJyZXNwb25zZSBYTCIpOwogICAgICAgIAkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgkJCSRkYi0+RXhlY3V0ZSgndXBkYXRlICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZm9ybWJyb3dzZXIgc2V0IHJlc3BvbnNlPXJlc25ldycpOwoJCQkkc3FsYXJyYXkgPSAkZGljdC0+RHJvcENvbHVtblNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mYl9mb3JtYnJvd3NlciIsICJyZXNuZXciKTsKICAgICAgICAJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwogICAgICAgIAkvLyB3aGV3LiB0aGF0IHdhcyBsYW1lLgoJCSAgICRwYXRoID0gY21zX2pvaW5fcGF0aChkaXJuYW1lKF9fRklMRV9fKSwnaW5jbHVkZXMnKTsKICAgICAgIAkkcGFyYW1zWydmYnJwX3htbF9maWxlJ10gPSBjbXNfam9pbl9wYXRoKCRwYXRoLCdBZHZhbmNlZF9Db250YWN0X0Zvcm0ueG1sJyk7CiAgICAgICAJJGFlZm9ybSA9IG5ldyBmYkZvcm0oJHRoaXMsICRwYXJhbXMsIHRydWUpOwoJCSAgICRyZXMgPSAkYWVmb3JtLT5JbXBvcnRYTUwoJHBhcmFtcyk7CiAgICAgIGNhc2UgIjAuNiI6CgkgIGNhc2UgIjAuNi4xIjoKCgkJfQoJCSR0aGlzLT5BdWRpdCggMCwgJHRoaXMtPkxhbmcoJ2ZyaWVuZGx5bmFtZScpLCAkdGhpcy0+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[e2lmICRtZXNzYWdlICE9ICcnfTxkaXYgY2xhc3M9InBhZ2VtY29udGFpbmVyIj48cCBjbGFzcz0icGFnZW1lc3NhZ2UiPnskbWVzc2FnZX08L3A+PC9kaXY+ey9pZn0KeyRiYWNrdG9mb3JtX25hdn08YnIgLz4KeyRzdGFydF9mb3JtfXskZmJfaGlkZGVufXskb3B9eyR0YWJfc3RhcnR9CnskbWFpbnRhYl9zdGFydH0KCXtmb3JlYWNoIGZyb209JG1haW5MaXN0IGl0ZW09ZW50cnl9CgkJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGVudHJ5LT50aXRsZX06PC9wPgoJCQk8ZGl2IGNsYXNzPSJwYWdlaW5wdXQiPnskZW50cnktPmlucHV0fTwvZGl2PgoJCQl7aWYgJGVudHJ5LT5oZWxwICE9ICcnfXskZW50cnktPmhlbHB9ey9pZn0KCQk8L2Rpdj4KCXsvZm9yZWFjaH0KeyR0YWJfZW5kfQp7JGFkdmFuY2VkdGFiX3N0YXJ0fQoJe2ZvcmVhY2ggZnJvbT0kYWR2TGlzdCBpdGVtPWVudHJ5fQoJCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRlbnRyeS0+dGl0bGV9OjwvcD4KCQkJPGRpdiBjbGFzcz0icGFnZWlucHV0Ij57JGVudHJ5LT5pbnB1dH08L2Rpdj4KCQkJe2lmICRlbnRyeS0+aGVscCAhPSAnJ317JGVudHJ5LT5oZWxwfXsvaWZ9CgkJPC9kaXY+Cgl7L2ZvcmVhY2h9CnskdGFiX2VuZH0KeyR0YWJzX2VuZH0Ke2lmICRhZGQgIT0gJycgb3IgJGRlbCAhPSAnJ30KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij4mbmJzcDs8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRhZGR9eyRkZWx9PC9wPgoJPC9kaXY+CnsvaWZ9Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskc3VibWl0fTwvcD4KCTwvZGl2Pgp7JGVuZF9mb3JtfQo=]]></data>
	</file>
	<file>
	  <filename>/templates/AddEditForm.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmICRtZXNzYWdlICE9ICcnfTxkaXYgY2xhc3M9InBhZ2VtY29udGFpbmVyIj48cCBjbGFzcz0icGFnZW1lc3NhZ2UiPnskbWVzc2FnZX08L3A+PC9kaXY+ey9pZn0KCnskZm9ybXN0YXJ0fQp7JGZvcm1pZH17JGZiX2hpZGRlbn0KeyR0YWJfc3RhcnR9Cgp7JG1haW50YWJfc3RhcnR9CjxmaWVsZHNldCBjbGFzcz0ibW9kdWxlX2ZiX2ZpZWxkc2V0Ij48bGVnZW5kPnskdGl0bGVfZm9ybV9tYWlufTwvbGVnZW5kPgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfZm9ybV9uYW1lfTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9mb3JtX25hbWV9PC9wPgoJPC9kaXY+CntpZiAkYWRkaW5nID09IDB9Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV9mb3JtX3N0YXR1c306PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPntpZiAkaGFzZGlzcG9zaXRpb24gPT0gMX17JHRleHRfcmVhZHl9e2Vsc2V9eyRsaW5rX25vdHJlYWR5fXsvaWZ9PC9wPgoJPC9kaXY+CnsvaWZ9Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV9mb3JtX2FsaWFzfTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9mb3JtX2FsaWFzfTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfZm9ybV9jc3NfY2xhc3N9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2Zvcm1fY3NzX2NsYXNzfTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfaW5saW5lX2Zvcm19OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2lubGluZV9mb3JtfTwvcD4KCTwvZGl2Pgo8L2ZpZWxkc2V0Pgp7aWYgJGFkZGluZz09MH0KPGZpZWxkc2V0PjxsZWdlbmQ+eyR0aXRsZV9mb3JtX2ZpZWxkc308L2xlZ2VuZD4KCXtpZiAkZmFzdGFkZD09MX0KCQk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfZmFzdGFkZH08L3A+CgkJCTxkaXYgY2xhc3M9InBhZ2VpbnB1dCI+CgkJCQl7JGlucHV0X2Zhc3RhZGR9CgkJCTwvZGl2PgoJCTwvZGl2PgoJey9pZn0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX2Zvcm1fZmllbGRzfTwvcD4KCQk8ZGl2IGNsYXNzPSJwYWdlaW5wdXQiPgoJCQk8dGFibGUgY2xhc3M9Im1vZHVsZV9mYl90YWJsZSBwYWdldGFibGUiIGNlbGxwYWRkaW5nPSIwIiBjZWxsc3BhY2luZz0iMCI+CgkJCQk8dGhlYWQ+PHRyPgoJICAgICAgIAl7aWYgaXNzZXQoJHRpdGxlX2ZpZWxkX2lkKX0KICAgICAgICAgICAgICAgIDx0aCB3aWR0aD0iMjAiPnskdGl0bGVfZmllbGRfaWR9PC90aD4KCQl7L2lmfQogICAgCQkJCTx0aCB3aWR0aD0iMTIwIj57JHRpdGxlX2ZpZWxkX25hbWV9PC90aD4KICAgICAgICB7aWYgaXNzZXQoJHRpdGxlX2ZpZWxkX2FsaWFzKX0KICAgIAkJCQk8dGggd2lkdGg9IjYwIj57JHRpdGxlX2ZpZWxkX2FsaWFzfTwvdGg+CgkJey9pZn0KICAgICAgICAgICAgICAgIAk8dGggd2lkdGg9Ijg1Ij57JHRpdGxlX2ZpZWxkX3R5cGV9PC90aD4KICAgICAgICAgICAgICAgIAk8dGggd2lkdGg9IjIwIj57JHRpdGxlX2ZpZWxkX3JlcXVpcmVkX2FiYnJldn08L3RoPgogICAgICAgICAgICAgICAgCTx0aD57JHRpdGxlX2luZm9ybWF0aW9ufTwvdGg+CiAJCQkJCTx0aCB3aWR0aD0iMjAiIGNsYXNzPSJ1cGRvd24iPiZuYnNwOzwvdGg+CgkJCQkJPHRoIHdpZHRoPSIyMCIgY2xhc3M9InVwZG93biI+Jm5ic3A7PC90aD4KICAgICAgICAgICAgICAgICAgIDx0aCB3aWR0aD0iMjAiPiZuYnNwOzwvdGg+CiAgICAgICAgICAgICAgICAgICAgPHRoIHdpZHRoPSIyMCI+Jm5ic3A7PC90aD4KCQkJCQk8L3RyPgoJCQkJPC90aGVhZD4KCQkJCTx0Ym9keT4KCQkJCXtmb3JlYWNoIGZyb209JGZpZWxkcyBpdGVtPWVudHJ5fQoJCQkJCTx0ciBpZD0iZmJycF97JGVudHJ5LT5pZH0iIGNsYXNzPSJ7JGVudHJ5LT5yb3djbGFzc30iPgoJCQkJe2lmIGlzc2V0KCR0aXRsZV9maWVsZF9pZCl9CgkJCQkJPHRkPnskZW50cnktPmlkfTwvdGQ+CgkJCQl7L2lmfQoJCQkJCTx0ZD57JGVudHJ5LT5uYW1lfTwvdGQ+CgkJCQkJe2lmIGlzc2V0KCR0aXRsZV9maWVsZF9hbGlhcyl9CgkJCQkJCTx0ZD57JGVudHJ5LT5hbGlhc308L3RkPgoJCQkJCXsvaWZ9CgkJCQkJPHRkPnskZW50cnktPnR5cGV9PC90ZD4KCQkJCQk8dGQ+eyRlbnRyeS0+ZGlzcG9zaXRpb259PC90ZD4KCQkJCQk8dGQ+eyRlbnRyeS0+ZmllbGRfc3RhdHVzfTwvdGQ+CgkJCQkJPHRkIGNsYXNzPSJ1cGRvd24iPnskZW50cnktPnVwfTwvdGQ+CgkJCQkJPHRkIGNsYXNzPSJ1cGRvd24iPnskZW50cnktPmRvd259PC90ZD4KCQkJCQk8dGQ+eyRlbnRyeS0+ZWRpdGxpbmt9PC90ZD4KCQkJCQk8dGQ+eyRlbnRyeS0+ZGVsZXRlbGlua308L3RkPgoJCQkJCTwvdHI+CgkJCQl7L2ZvcmVhY2h9CgkJCQk8L3Rib2R5PgogICAgICAgICAgICA8L3RhYmxlPgoJCQk8ZGl2IGNsYXNzPSJyZW9yZGVybWVzc2FnZSBwYWdlbWNvbnRhaW5lciIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+PHAgY2xhc3M9InBhZ2VtZXNzYWdlIj57JHRpdGxlX211c3Rfc2F2ZV9vcmRlcn08L3A+PC9kaXY+CgkJCTxiciAvPgoJCQl7JGFkZF9maWVsZF9saW5rfQogICAgICAgIDwvZGl2PgogICAgIDwvZGl2Pgo8L2ZpZWxkc2V0Pgp7L2lmfQp7JHRhYl9lbmR9eyRzdWJtaXR0YWJfc3RhcnR9Cgk8ZmllbGRzZXQ+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskdGl0bGVfc3VibWl0X2hlbHB9PC9wPgoJPC9kaXY+Cgk8L2ZpZWxkc2V0Pgo8ZmllbGRzZXQgY2xhc3M9Im1vZHVsZV9mYl9maWVsZHNldCI+PGxlZ2VuZD57JHRpdGxlX3N1Ym1pdF9hY3Rpb25zfTwvbGVnZW5kPgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfZm9ybV92YWxpZGF0ZV91ZHR9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2Zvcm1fdmFsaWRhdGVfdWR0fTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfc3VibWl0X2FjdGlvbn06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfc3VibWl0X2FjdGlvbn08L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX3JlZGlyZWN0X3BhZ2V9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3JlZGlyZWN0X3BhZ2V9PC9wPgoJPC9kaXY+CjwvZmllbGRzZXQ+CjxmaWVsZHNldCBjbGFzcz0ibW9kdWxlX2ZiX2ZpZWxkc2V0Ij48bGVnZW5kPnskdGl0bGVfc3VibWl0X2xhYmVsc308L2xlZ2VuZD4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5fTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9zdWJtaXRfYnV0dG9uX3NhZmV0eX08L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX3N1Ym1pdF9qYXZhc2NyaXB0fTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9zdWJtaXRfamF2YXNjcmlwdH08L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX2Zvcm1fc3VibWl0X2J1dHRvbn06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfZm9ybV9zdWJtaXRfYnV0dG9ufTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfZm9ybV9uZXh0X2J1dHRvbn06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfZm9ybV9uZXh0X2J1dHRvbn08L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX2Zvcm1fcHJldl9idXR0b259OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2Zvcm1fcHJldl9idXR0b259PC9wPgoJPC9kaXY+CjwvZmllbGRzZXQ+CnskdGFiX2VuZH17JHN5bWJvbHRhYl9zdGFydH0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX2Zvcm1fcmVxdWlyZWRfc3ltYm9sfTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9mb3JtX3JlcXVpcmVkX3N5bWJvbH08L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX2Zvcm1fdW5zcGVjaWZpZWR9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2Zvcm1fdW5zcGVjaWZpZWR9PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV9saXN0X2RlbGltaXRlcn06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfbGlzdF9kZWxpbWl0ZXJ9PC9wPgoJPC9kaXY+CnskdGFiX2VuZH17JHVkdHRhYl9zdGFydH0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX3NlZV9hbHNvX3VkdH08L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX2Zvcm1fcHJlZGlzcGxheV91ZHR9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2Zvcm1fcHJlZGlzcGxheV91ZHR9PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV9mb3JtX3ByZWRpc3BsYXlfZWFjaF91ZHR9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2Zvcm1fcHJlZGlzcGxheV9lYWNoX3VkdH08L3A+Cgk8L2Rpdj4KeyR0YWJfZW5kfXskY2FwdGNoYXRhYl9zdGFydH0Ke2lmICRjYXB0Y2hhX2luc3RhbGxlZH0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX3VzZV9jYXB0Y2hhfTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF91c2VfY2FwdGNoYX08L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX3RpdGxlX3VzZXJfY2FwdGNoYX06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfdGl0bGVfdXNlcl9jYXB0Y2hhfTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfdXNlcl9jYXB0Y2hhX2Vycm9yfTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF90aXRsZV91c2VyX2NhcHRjaGFfZXJyb3J9PC9wPgoJPC9kaXY+CntlbHNlfQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JHRpdGxlX2luc3RhbGxfY2FwdGNoYX08L3A+Cgk8L2Rpdj4Key9pZn0KeyR0YWJfZW5kfQp7JHRlbXBsYXRldGFiX3N0YXJ0fQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfbG9hZF90ZW1wbGF0ZX06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfbG9hZF90ZW1wbGF0ZX08L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX2Zvcm1fdGVtcGxhdGV9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2Zvcm1fdGVtcGxhdGV9PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxkaXYgY2xhc3M9InBhZ2VpbnB1dCI+eyRoZWxwX3RlbXBsYXRlX3ZhcmlhYmxlc308L2Rpdj4KCTwvZGl2Pgp7JHRhYl9lbmR9Cnskc3VibWl0dGVtcGxhdGV0YWJfc3RhcnR9Cgk8ZmllbGRzZXQ+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskdGl0bGVfc3VibWl0X3Jlc3BvbnNlX2hlbHB9PC9wPgoJPC9kaXY+Cgk8L2ZpZWxkc2V0PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfc3VibWl0X3Jlc3BvbnNlfTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9zdWJtaXRfcmVzcG9uc2V9PC9wPgoJCXskaGVscF9zdWJtaXRfcmVzcG9uc2V9Cgk8L2Rpdj4KeyR0YWJfZW5kfQp7JHRhYnNfZW5kfQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPiZuYnNwOzwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JHNhdmVfYnV0dG9ufXskc3VibWl0X2J1dHRvbn08L3A+Cgk8L2Rpdj4KeyRmb3JtX2VuZH0KeyRiYWNrfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/AdminMain.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmICRtZXNzYWdlICE9ICcnfTxkaXYgY2xhc3M9InBhZ2VtY29udGFpbmVyIj48cCBjbGFzcz0icGFnZW1lc3NhZ2UiPnskbWVzc2FnZX08L3A+PC9kaXY+ey9pZn0KCnskdGFiaGVhZGVyc30KeyRzdGFydF9mb3JtdGFifQo8dGFibGUgY2VsbHNwYWNpbmc9IjAiIGNsYXNzPSJwYWdldGFibGUiIHdpZHRoPSI4MCUiPgo8dGhlYWQ+PHRyPgoJPHRoPnskdGl0bGVfZm9ybV9uYW1lfTwvdGg+Cgk8dGg+eyR0aXRsZV9mb3JtX2FsaWFzfTwvdGg+Cgk8dGggd2lkdGg9IjUwIj4mbmJzcDs8L3RoPgoJPHRoIHdpZHRoPSIzMyI+Jm5ic3A7PC90aD4KCTx0aCB3aWR0aD0iMzMiPiZuYnNwOzwvdGg+CjwvdHI+CjwvdGhlYWQ+Cgp7Zm9yZWFjaCBmcm9tPSRmb3JtcyBpdGVtPWVudHJ5fQoJPHRyIGNsYXNzPSJ7JGVudHJ5LT5yb3djbGFzc30iIG9ubW91c2VvdmVyPSJ0aGlzLmNsYXNzTmFtZT0neyRlbnRyeS0+cm93Y2xhc3N9aG92ZXInOyIgb25tb3VzZW91dD0idGhpcy5jbGFzc05hbWU9J3skZW50cnktPnJvd2NsYXNzfSc7Ij4KCQk8dGQ+eyRlbnRyeS0+bmFtZX08L3RkPgoJCTx0ZD4mIzEyMztGb3JtQnVpbGRlciBmb3JtPSd7JGVudHJ5LT51c2FnZX0nJiMxMjU7PC90ZD4KCQk8dGQ+eyRlbnRyeS0+eG1sfTwvdGQ+CgkJPHRkPnskZW50cnktPmVkaXRsaW5rfTwvdGQ+CgkJPHRkPnskZW50cnktPmRlbGV0ZWxpbmt9PC90ZD4KCTwvdHI+CnsvZm9yZWFjaH0KCjx0cj4KCTx0ZCBjb2xzcGFuPSI1Ij4mbmJzcDs8L3RkPgo8L3RyPgo8dHI+Cgk8dGQgY29sc3Bhbj0iNSI+CntpZiAkYWRkbGluayAhPSAnJ317JGFkZGxpbmt9eyRhZGRmb3JtfXsvaWZ9Cgk8L3RkPgo8L3RyPgo8L3RhYmxlPgoKPGZpZWxkc2V0Pgo8bGVnZW5kPnskbGVnZW5kX3htbF9pbXBvcnR9PC9sZWdlbmQ+Cnskc3RhcnRfeG1sZm9ybX0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV94bWxfdG9fdXBsb2FkfTo8L3A+Cgk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3htbF90b191cGxvYWR9PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV94bWxfdXBsb2FkX2Zvcm1uYW1lfTo8L3A+Cgk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3htbF91cGxvYWRfZm9ybW5hbWV9Jm5ic3A7PGVtPnskaW5mb19sZWF2ZWVtcHR5fTwvZW0+PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV94bWxfdXBsb2FkX2Zvcm1hbGlhc306PC9wPgoJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF94bWxfdXBsb2FkX2Zvcm1hbGlhc30mbmJzcDs8ZW0+eyRpbmZvX2xlYXZlZW1wdHl9PC9lbT48L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJPHAgY2xhc3M9InBhZ2V0ZXh0Ij4mbmJzcDs8L3A+Cgk8cCBjbGFzcz0icGFnZWlucHV0Ij57JHN1Ym1pdHhtbH08L3A+CjwvZGl2Pgp7JGVuZF94bWxmb3JtfQo8L2ZpZWxkc2V0Pgp7JGVuZF90YWJ9Cnskc3RhcnRfY29uZmlndGFifQoKe2lmICRtYXlfY29uZmlnID09IDF9Cnskc3RhcnRfY29uZmlnZm9ybX0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV9lbmFibGVfZmFzdGFkZH06PC9wPgoJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9lbmFibGVfZmFzdGFkZH08L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX21sZV92ZXJzaW9ufTo8L3A+Cgk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X21sZV92ZXJzaW9ufTwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+Cgk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfaGlkZV9lcnJvcnN9OjwvcD4KCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfaGlkZV9lcnJvcnN9PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV9yZXF1aXJlX2ZpZWxkbmFtZXN9OjwvcD4KCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfcmVxdWlyZV9maWVsZG5hbWVzfTwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+Cgk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXN9OjwvcD4KCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfdW5pcXVlX2ZpZWxkbmFtZXN9PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV9ibGFua19pbnZhbGlkfTo8L3A+Cgk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2JsYW5rX2ludmFsaWR9PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV9yZWxheGVkX2VtYWlsX3JlZ2V4fTo8L3A+Cgk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3JlbGF4ZWRfZW1haWxfcmVnZXh9PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV9zaG93X3ZlcnNpb259OjwvcD4KCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfc2hvd192ZXJzaW9ufTwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+Cgk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfZW5hYmxlX2FudGlzcGFtfTo8L3A+Cgk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2VuYWJsZV9hbnRpc3BhbX08L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX3Nob3dfZmllbGRpZHN9OjwvcD4KCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfc2hvd19maWVsZGlkc308L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX3Nob3dfZmllbGRhbGlhc2VzfTo8L3A+Cgk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3Nob3dfZmllbGRhbGlhc2VzfTwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+Cgk8cCBjbGFzcz0icGFnZXRleHQiPiZuYnNwOzwvcD4KCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskc3VibWl0fTwvcD4KPC9kaXY+CnskZW5kX2NvbmZpZ2Zvcm19Cgp7ZWxzZX0KCTxwPnskbm9fcGVybWlzc2lvbn08L3A+CnsvaWZ9CnskZW5kX3RhYn0KeyRlbmRfdGFic30=]]></data>
	</file>
	<file>
	  <filename>/templates/RenderFormCSS.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogU0lNUExFIENTUyBGb3JtICp9CjxkaXZ7aWYgJGNzc19jbGFzcyAhPSAnJ30gY2xhc3M9InskY3NzX2NsYXNzfSJ7L2lmfT4Ke2lmICR0b3RhbF9wYWdlcyBndCAxfTxzcGFuPnskdGl0bGVfcGFnZV94X29mX3l9PC9zcGFuPnsvaWZ9Cntmb3JlYWNoIGZyb209JGZpZWxkcyBpdGVtPWVudHJ5fQoJe2lmICRlbnRyeS0+ZGlzcGxheSA9PSAxfQoJCXtzdHJpcH0KCQl7aWYgJGVudHJ5LT5uZWVkc19kaXYgPT0gMX0KCQk8ZGl2CgkJCXtpZiAkZW50cnktPnJlcXVpcmVkID09IDEgfHwgJGVudHJ5LT5jc3NfY2xhc3MgIT0gJycgfHwgJGVudHJ5LT52YWxpZCA9PSAwfSBjbGFzcz0iCgkJCQl7aWYgJGVudHJ5LT5yZXF1aXJlZCA9PSAxfQoJCQkJCXJlcXVpcmVkCgkJCQl7L2lmfQoJCQkJe2lmICRlbnRyeS0+cmVxdWlyZWQgPT0gMSAmJiAkZW50cnktPmNzc19jbGFzcyAhPSAnJ30gey9pZn0KCQkJCXtpZiAkZW50cnktPmNzc19jbGFzcyAhPSAnJ30KCQkJCQl7JGVudHJ5LT5jc3NfY2xhc3N9CgkJCQl7L2lmfQoJCQkJe2lmICRlbnRyeS0+dmFsaWQgPT0gMH0KCQkJCQlmYl9pbnZhbGlkCgkJCQl7L2lmfQoJCQkJIgoJCQl7L2lmfQoJCT4KCQl7L2lmfQoJCXtpZiAkZW50cnktPmhpZGVfbmFtZSA9PSAwfQoJCTxsYWJlbHtpZiAkZW50cnktPm11bHRpcGxlX3BhcnRzICE9IDF9IGZvcj0ieyRlbnRyeS0+aW5wdXRfaWR9InsvaWZ9PnskZW50cnktPm5hbWV9CgkJCXtpZiAkZW50cnktPnJlcXVpcmVkX3N5bWJvbCAhPSAnJ30KCQkJCXskZW50cnktPnJlcXVpcmVkX3N5bWJvbH0KCQkJey9pZn0KCQk8L2xhYmVsPgoJCXsvaWZ9CgkJe2lmICRlbnRyeS0+bXVsdGlwbGVfcGFydHMgPT0gMX0KCQkJe3NlY3Rpb24gbmFtZT1udW1sb29wIGxvb3A9JGVudHJ5LT5pbnB1dH0KCQkJCXtpZiAkZW50cnktPmxhYmVsX3BhcnRzID09IDF9CgkJCQkJPGRpdj57JGVudHJ5LT5pbnB1dFtudW1sb29wXS0+aW5wdXR9Jm5ic3A7eyRlbnRyeS0+aW5wdXRbbnVtbG9vcF0tPm5hbWV9PC9kaXY+CgkJCQl7ZWxzZX0KCQkJCQl7JGVudHJ5LT5pbnB1dFtudW1sb29wXS0+aW5wdXR9CgkJCQl7L2lmfQoJCQkJe2lmICRlbnRyeS0+aW5wdXRbbnVtbG9vcF0tPm9wfXskZW50cnktPmlucHV0W251bWxvb3BdLT5vcH17L2lmfQoJCQl7L3NlY3Rpb259CgkJe2Vsc2V9CgkJCXtpZiAkZW50cnktPnNtYXJ0eV9ldmFsID09ICcxJ317ZXZhbCB2YXI9JGVudHJ5LT5pbnB1dH17ZWxzZX17JGVudHJ5LT5pbnB1dH17L2lmfQoJCXsvaWZ9CgkJe2lmICRlbnRyeS0+dmFsaWQgPT0gMH0gJmx0Oy0tLSB7JGVudHJ5LT5lcnJvcn17L2lmfQoJCXtpZiAkZW50cnktPm5lZWRzX2RpdiA9PSAxfQoJCQk8L2Rpdj4KCQl7L2lmfQoJCXsvc3RyaXB9Cgl7L2lmfQp7L2ZvcmVhY2h9CntpZiAkaGFzX2NhcHRjaGEgPT0gMX0KCTxkaXYgY2xhc3M9ImNhcHRjaGEiPnskZ3JhcGhpY19jYXB0Y2hhfXskdGl0bGVfY2FwdGNoYX08YnIgLz57JGlucHV0X2NhcHRjaGF9PC9kaXY+CnsvaWZ9Cgk8ZGl2IGNsYXNzPSJzdWJtaXQiPnskcHJldn17JHN1Ym1pdH08L2Rpdj4KPC9kaXY+]]></data>
	</file>
	<file>
	  <filename>/templates/RenderFormDefault.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogREVGQVVMVCBGT1JNIExBWU9VVCAvIHB1cmUgQ1NTICp9CntsaXRlcmFsfQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CmZ1bmN0aW9uIGZiaHQoaHRpZCkKCXsKCQl2YXIgZmJodGM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaHRpZCk7CgkJaWYgKGZiaHRjKQoJCQl7CgkJCWlmIChmYmh0Yy5zdHlsZS5kaXNwbGF5ID09ICdub25lJykKCQkJCXsKCQkJCWZiaHRjLnN0eWxlLmRpc3BsYXkgPSAnaW5saW5lJzsKCQkJCX0KCQkJZWxzZQoJCQkJewoJCQkJZmJodGMuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKCQkJCX0KCQkJfQp9Cjwvc2NyaXB0Pgp7L2xpdGVyYWx9CnskZmJfZm9ybV9oZWFkZXJ9CntpZiAkZmJfZm9ybV9kb25lID09IDF9Cgl7KiBUaGlzIGZpcnN0IHNlY3Rpb24gaXMgZm9yIGRpc3BsYXlpbmcgc3VibWlzc2lvbiBlcnJvcnMgKn0KCXtpZiBpc3NldCgkZmJfc3VibWlzc2lvbl9lcnJvcikgJiYgJGZiX3N1Ym1pc3Npb25fZXJyb3J9CgkJPGRpdiBjbGFzcz0iZXJyb3JfbWVzc2FnZSI+eyRmYl9zdWJtaXNzaW9uX2Vycm9yfTwvZGl2PgoJCXtpZiBpc3NldCgkZmJfc2hvd19zdWJtaXNzaW9uX2Vycm9ycykgJiYgJGZiX3Nob3dfc3VibWlzc2lvbl9lcnJvcnN9CgkJCTxkaXYgY2xhc3M9ImVycm9yIj4KCQkJPHVsPgoJCQl7Zm9yZWFjaCBmcm9tPSRmYl9zdWJtaXNzaW9uX2Vycm9yX2xpc3QgaXRlbT10aGlzRXJyfQoJCQkJPGxpPnskdGhpc0Vycn08L2xpPgoJCQl7L2ZvcmVhY2h9CgkJCTwvdWw+CgkJPC9kaXY+CgkJey9pZn0KCXsvaWZ9CntlbHNlfQoJeyogdGhpcyBzZWN0aW9uIGlzIGZvciBkaXNwbGF5aW5nIHRoZSBmb3JtICp9Cgl7KiB3ZSBzdGFydCB3aXRoIHZhbGlkYXRpb24gZXJyb3JzICp9Cgl7aWYgaXNzZXQoJGZiX2Zvcm1faGFzX3ZhbGlkYXRpb25fZXJyb3JzKSAmJiAkZmJfZm9ybV9oYXNfdmFsaWRhdGlvbl9lcnJvcnN9CgkJPGRpdiBjbGFzcz0iZXJyb3JfbWVzc2FnZSI+CgkJPHVsPgoJCXtmb3JlYWNoIGZyb209JGZiX2Zvcm1fdmFsaWRhdGlvbl9lcnJvcnMgaXRlbT10aGlzRXJyfQoJCQk8bGk+eyR0aGlzRXJyfTwvbGk+CgkJey9mb3JlYWNofQoJCTwvdWw+CgkJPC9kaXY+Cgl7L2lmfQoJe2lmIGlzc2V0KCRjYXB0Y2hhX2Vycm9yKSAmJiAkY2FwdGNoYV9lcnJvcn0KCQk8ZGl2IGNsYXNzPSJlcnJvcl9tZXNzYWdlIj57JGNhcHRjaGFfZXJyb3J9PC9kaXY+Cgl7L2lmfQoKCXsqIGFuZCBub3cgdGhlIGZvcm0gaXRzZWxmICp9Cgl7JGZiX2Zvcm1fc3RhcnR9Cgk8ZGl2PnskZmJfaGlkZGVufTwvZGl2PgoJPGRpdntpZiAkY3NzX2NsYXNzICE9ICcnfSBjbGFzcz0ieyRjc3NfY2xhc3N9InsvaWZ9PgoJe2lmICR0b3RhbF9wYWdlcyBndCAxfTxzcGFuPnskdGl0bGVfcGFnZV94X29mX3l9PC9zcGFuPnsvaWZ9Cgl7Zm9yZWFjaCBmcm9tPSRmaWVsZHMgaXRlbT1lbnRyeX0KCQl7aWYgJGVudHJ5LT5kaXNwbGF5ID09IDF9CgkJCXtzdHJpcH0KCQkJe2lmICRlbnRyeS0+bmVlZHNfZGl2ID09IDF9CgkJCQk8ZGl2CgkJCQl7aWYgJGVudHJ5LT5yZXF1aXJlZCA9PSAxIHx8ICRlbnRyeS0+Y3NzX2NsYXNzICE9ICcnIHx8ICRlbnRyeS0+dmFsaWQgPT0gMH0gY2xhc3M9IgoJCQkJCXtpZiAkZW50cnktPnJlcXVpcmVkID09IDF9cmVxdWlyZWR7L2lmfQoJCQkJCXtpZiAkZW50cnktPmNzc19jbGFzcyAhPSAnJ30geyRlbnRyeS0+Y3NzX2NsYXNzfXsvaWZ9CgkJCQkJe2lmICRlbnRyeS0+dmFsaWQgPT0gMH0gZmJfaW52YWxpZHsvaWZ9CgkJCQkJIgoJCQkJey9pZn0KCQkJCT4KCQkJey9pZn0KCQkJe2lmICRlbnRyeS0+aGlkZV9uYW1lID09IDB9CgkJCQk8bGFiZWx7aWYgJGVudHJ5LT5tdWx0aXBsZV9wYXJ0cyAhPSAxfSBmb3I9InskZW50cnktPmlucHV0X2lkfSJ7L2lmfT57JGVudHJ5LT5uYW1lfQoJCQkJe2lmICRlbnRyeS0+cmVxdWlyZWRfc3ltYm9sICE9ICcnfQoJCQkJCXskZW50cnktPnJlcXVpcmVkX3N5bWJvbH0KCQkJCXsvaWZ9CgkJCQk8L2xhYmVsPgoJCQl7L2lmfQoJCQl7aWYgJGVudHJ5LT5tdWx0aXBsZV9wYXJ0cyA9PSAxfQoJCQkJe3NlY3Rpb24gbmFtZT1udW1sb29wIGxvb3A9JGVudHJ5LT5pbnB1dH0KCQkJCQl7aWYgJGVudHJ5LT5sYWJlbF9wYXJ0cyA9PSAxfQoJCQkJCQk8ZGl2PnskZW50cnktPmlucHV0W251bWxvb3BdLT5pbnB1dH0mbmJzcDt7JGVudHJ5LT5pbnB1dFtudW1sb29wXS0+bmFtZX08L2Rpdj4KCQkJCQl7ZWxzZX0KCQkJCQkJeyRlbnRyeS0+aW5wdXRbbnVtbG9vcF0tPmlucHV0fQoJCQkJCXsvaWZ9CgkJCQkJe2lmIGlzc2V0KCRlbnRyeS0+aW5wdXRbbnVtbG9vcF0tPm9wKSAmJiAkZW50cnktPmlucHV0W251bWxvb3BdLT5vcH17JGVudHJ5LT5pbnB1dFtudW1sb29wXS0+b3B9ey9pZn0KCQkJCXsvc2VjdGlvbn0KCQkJe2Vsc2V9CgkJCQl7aWYgJGVudHJ5LT5zbWFydHlfZXZhbCA9PSAnMSd9e2V2YWwgdmFyPSRlbnRyeS0+aW5wdXR9e2Vsc2V9eyRlbnRyeS0+aW5wdXR9ey9pZn0KCQkJey9pZn0KCQkJe2lmICRlbnRyeS0+aGVscHRleHQgIT0gJyd9Jm5ic3A7PGEgaHJlZj0iamF2YXNjcmlwdDpmYmh0KCd7JGVudHJ5LT5maWVsZF9oZWxwdGV4dF9pZH0nKSI+PGltZyBzcmM9Im1vZHVsZXMvRm9ybUJ1aWxkZXIvaW1hZ2VzL2luZm8tc21hbGwuZ2lmIiBhbHQ9IkhlbHAiIC8+PC9hPgoJCQkJCTxzcGFuIGlkPSJ7JGVudHJ5LT5maWVsZF9oZWxwdGV4dF9pZH0iIHN0eWxlPSJkaXNwbGF5Om5vbmUiIGNsYXNzPSJmYnJfaGVscHRleHQiPnskZW50cnktPmhlbHB0ZXh0fTwvc3Bhbj57L2lmfQoJCQl7aWYgJGVudHJ5LT52YWxpZCA9PSAwfSAmbHQ7LS0tIHskZW50cnktPmVycm9yfXsvaWZ9CgkJCXtpZiAkZW50cnktPm5lZWRzX2RpdiA9PSAxfQoJCQkJPC9kaXY+CgkJCXsvaWZ9CgkJCXsvc3RyaXB9CgkJey9pZn0KCXsvZm9yZWFjaH0KCXtpZiAkaGFzX2NhcHRjaGEgPT0gMX0KCQk8ZGl2IGNsYXNzPSJjYXB0Y2hhIj57JGdyYXBoaWNfY2FwdGNoYX17JHRpdGxlX2NhcHRjaGF9PGJyIC8+eyRpbnB1dF9jYXB0Y2hhfTwvZGl2PgoJey9pZn0KCTxkaXYgY2xhc3M9InN1Ym1pdCI+eyRwcmV2fXskc3VibWl0fTwvZGl2PgoJPC9kaXY+Cgl7JGZiX2Zvcm1fZW5kfQp7L2lmfQp7JGZiX2Zvcm1fZm9vdGVyfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/RenderFormTableTitleLeft.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogVEFCTEUgRk9STSBMQVlPVVQgLyBGaWVsZCB0aXRsZXMgb24gTGVmdCAqfQp7KiBuZXh0IGxpbmUgc2V0cyBudW1iZXIgb2YgY29sdW1ucyBmb3IgdGhpbmdzIGxpa2UgY2hlY2tib3ggZ3JvdXBzICp9Cnthc3NpZ24gdmFyPSJjb2xzIiB2YWx1ZT0iMyJ9CntsaXRlcmFsfQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CmZ1bmN0aW9uIGZiaHQoaHRpZCkKCXsKCQl2YXIgZmJodGM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaHRpZCk7CgkJaWYgKGZiaHRjKQoJCQl7CgkJCWlmIChmYmh0Yy5zdHlsZS5kaXNwbGF5ID09ICdub25lJykKCQkJCXsKCQkJCWZiaHRjLnN0eWxlLmRpc3BsYXkgPSAnaW5saW5lJzsKCQkJCX0KCQkJZWxzZQoJCQkJewoJCQkJZmJodGMuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKCQkJCX0KCQkJfQp9Cjwvc2NyaXB0Pgp7L2xpdGVyYWx9CnskZmJfZm9ybV9oZWFkZXJ9CntpZiAkZmJfZm9ybV9kb25lID09IDF9Cgl7KiBUaGlzIGZpcnN0IHNlY3Rpb24gaXMgZm9yIGRpc3BsYXlpbmcgc3VibWlzc2lvbiBlcnJvcnMgKn0KCXtpZiAkZmJfc3VibWlzc2lvbl9lcnJvcn0KCQk8ZGl2IGNsYXNzPSJlcnJvcl9tZXNzYWdlIj57JGZiX3N1Ym1pc3Npb25fZXJyb3J9PC9kaXY+CgkJe2lmICRmYl9zaG93X3N1Ym1pc3Npb25fZXJyb3JzfQoJCQk8dGFibGUgY2xhc3M9ImVycm9yIj4KCQkJe2ZvcmVhY2ggZnJvbT0kZmJfc3VibWlzc2lvbl9lcnJvcl9saXN0IGl0ZW09dGhpc0Vycn0KCQkJCTx0cj48dGQ+eyR0aGlzRXJyfTwvdGQ+PC90cj4KCQkJey9mb3JlYWNofQoJCQk8L3RhYmxlPgoJCXsvaWZ9Cgl7L2lmfQp7ZWxzZX0KCXsqIHRoaXMgc2VjdGlvbiBpcyBmb3IgZGlzcGxheWluZyB0aGUgZm9ybSAqfQoJeyogd2Ugc3RhcnQgd2l0aCB2YWxpZGF0aW9uIGVycm9ycyAqfQoJe2lmICRmYl9mb3JtX2hhc192YWxpZGF0aW9uX2Vycm9yc30KCQk8ZGl2IGNsYXNzPSJlcnJvcl9tZXNzYWdlIj4KCQk8dWw+CgkJe2ZvcmVhY2ggZnJvbT0kZmJfZm9ybV92YWxpZGF0aW9uX2Vycm9ycyBpdGVtPXRoaXNFcnJ9CgkJCTxsaT57JHRoaXNFcnJ9PC9saT4KCQl7L2ZvcmVhY2h9CgkJPC91bD4KCQk8L2Rpdj4KCXsvaWZ9Cgl7aWYgJGNhcHRjaGFfZXJyb3J9CgkJPGRpdiBjbGFzcz0iZXJyb3JfbWVzc2FnZSI+eyRjYXB0Y2hhX2Vycm9yfTwvZGl2PgoJey9pZn0KCgl7KiBhbmQgbm93IHRoZSBmb3JtIGl0c2VsZiAqfQoJeyRmYl9mb3JtX3N0YXJ0fQoJPGRpdj57JGZiX2hpZGRlbn08L2Rpdj4KCgk8dGFibGV7aWYgJGNzc19jbGFzcyAhPSAnJ30gY2xhc3M9InskY3NzX2NsYXNzfSJ7L2lmfT4KCXtpZiAkdG90YWxfcGFnZXMgZ3QgMX08dHI+PHRkIGNvbHNwYW49IjIiPnskdGl0bGVfcGFnZV94X29mX3l9PC90ZD48L3RyPnsvaWZ9Cgl7Zm9yZWFjaCBmcm9tPSRmaWVsZHMgaXRlbT1lbnRyeX0KCQl7aWYgJGVudHJ5LT5kaXNwbGF5ID09IDEgJiYKCQkJJGVudHJ5LT50eXBlICE9ICctRmllbGRzZXQgU3RhcnQnICYmCgkJCSRlbnRyeS0+dHlwZSAhPSAnLUZpZWxkc2V0IEVuZCcgfQoJCTx0cj4KCQkJe3N0cmlwfQoJCQk8dGQgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCIKCQkJe2lmICRlbnRyeS0+cmVxdWlyZWQgPT0gMSB8fCAkZW50cnktPmNzc19jbGFzcyAhPSAnJ30gY2xhc3M9IiAKCQkJCXtpZiAkZW50cnktPnJlcXVpcmVkID09IDF9CgkJCQkJcmVxdWlyZWQKCQkJCXsvaWZ9CgkJCQl7aWYgJGVudHJ5LT5yZXF1aXJlZCA9PSAxICYmICRlbnRyeS0+Y3NzX2NsYXNzICE9ICcnfSB7L2lmfQoJCQkJe2lmICRlbnRyeS0+Y3NzX2NsYXNzICE9ICcnfQoJCQkJCXskZW50cnktPmNzc19jbGFzc30KCQkJCXsvaWZ9CgkJCQkiCgkJCXsvaWZ9CgkJCT4KCQkJe2lmICRlbnRyeS0+aGlkZV9uYW1lID09IDB9CgkJCQl7JGVudHJ5LT5uYW1lfQoJCQkJe2lmICRlbnRyeS0+cmVxdWlyZWRfc3ltYm9sICE9ICcnfQoJCQkJCXskZW50cnktPnJlcXVpcmVkX3N5bWJvbH0KCQkJCXsvaWZ9CgkJCXsvaWZ9CgkJCTwvdGQ+PHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCJ7aWYgJGVudHJ5LT5jc3NfY2xhc3MgIT0gJyd9IGNsYXNzPSJ7JGVudHJ5LT5jc3NfY2xhc3N9InsvaWZ9PgoJCQl7aWYgJGVudHJ5LT5tdWx0aXBsZV9wYXJ0cyA9PSAxfQoJCQk8dGFibGU+CgkJCQk8dHI+CgkJCQl7c2VjdGlvbiBuYW1lPW51bWxvb3AgbG9vcD0kZW50cnktPmlucHV0fQoJCQkJCTx0ZD57JGVudHJ5LT5pbnB1dFtudW1sb29wXS0+aW5wdXR9Jm5ic3A7eyRlbnRyeS0+aW5wdXRbbnVtbG9vcF0tPm5hbWV9e2lmICRlbnRyeS0+aW5wdXRbbnVtbG9vcF0tPm9wfSZuYnNwO3skZW50cnktPmlucHV0W251bWxvb3BdLT5vcH17L2lmfTwvdGQ+CgkJCQkJe2lmIG5vdCAoJHNtYXJ0eS5zZWN0aW9uLm51bWxvb3Aucm93bnVtIG1vZCAkY29scyl9CgkJCQkJCXtpZiBub3QgJHNtYXJ0eS5zZWN0aW9uLm51bWxvb3AubGFzdH0KCQkJCTwvdHI+PHRyPgoJCQkJCQl7L2lmfQoJCQkJCXsvaWZ9CgkJCQkJe2lmICRzbWFydHkuc2VjdGlvbi5udW1sb29wLmxhc3R9CgkJCQkJCXttYXRoIGVxdWF0aW9uID0gIm4gLSBhICUgbiIgbj0kY29scyBhPSRlbnRyeS0+aW5wdXR8QGNvdW50IGFzc2lnbj0iY2VsbHMifQoJCQkJCQl7aWYgJGNlbGxzIG5lICRjb2xzfQoJCQkJCQkJe3NlY3Rpb24gbmFtZT1wYWQgbG9vcD0kY2VsbHN9CgkJCQkJPHRkPiZuYnNwOzwvdGQ+CgkJCQkJCQl7L3NlY3Rpb259CgkJCQkJCXsvaWZ9CgkJCQk8L3RyPgoJCQkJCXsvaWZ9CgkJCQl7L3NlY3Rpb259CgkJCQk8L3RhYmxlPgoJCQl7ZWxzZX0KCQkJCXtpZiAkZW50cnktPnNtYXJ0eV9ldmFsID09ICcxJ317ZXZhbCB2YXI9JGVudHJ5LT5pbnB1dH17ZWxzZX17JGVudHJ5LT5pbnB1dH17L2lmfQoJCQl7L2lmfQoJCQl7aWYgJGVudHJ5LT52YWxpZCA9PSAwfSAmbHQ7LS0tIHskZW50cnktPmVycm9yfXsvaWZ9CgkJCXtpZiAkZW50cnktPmhlbHB0ZXh0ICE9ICcnfSZuYnNwOzxhIGhyZWY9ImphdmFzY3JpcHQ6ZmJodCgneyRlbnRyeS0+ZmllbGRfaGVscHRleHRfaWR9JykiPjxpbWcgc3JjPSJtb2R1bGVzL0Zvcm1CdWlsZGVyL2ltYWdlcy9pbmZvLXNtYWxsLmdpZiIgYWx0PSJIZWxwIiAvPjwvYT4KCQkJCQk8c3BhbiBpZD0ieyRlbnRyeS0+ZmllbGRfaGVscHRleHRfaWR9IiBzdHlsZT0iZGlzcGxheTpub25lIiBjbGFzcz0iZmJyX2hlbHB0ZXh0Ij57JGVudHJ5LT5oZWxwdGV4dH08L3NwYW4+ey9pZn0KCQkJCgkJCQoJCQk8L3RkPjwvdHI+CgkJCXsvc3RyaXB9CgkJey9pZn0KCXsvZm9yZWFjaH0KCXtpZiAkaGFzX2NhcHRjaGEgPT0gMX0KCQk8dHI+PHRkPnskZ3JhcGhpY19jYXB0Y2hhfTwvdGQ+PHRkPnskaW5wdXRfY2FwdGNoYX08YnIgLz57JHRpdGxlX2NhcHRjaGF9PC90ZD48L3RyPgoJey9pZn0KCQk8dHI+PHRkPnskcHJldn08L3RkPjx0ZD57JHN1Ym1pdH08L3RkPjwvdHI+Cgk8L3RhYmxlPgoJeyRmYl9mb3JtX2VuZH0Key9pZn0KeyRmYl9mb3JtX2Zvb3Rlcn0=]]></data>
	</file>
	<file>
	  <filename>/templates/RenderFormTableTitleTop.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogVEFCTEUgRk9STSBMQVlPVVQgLyBGaWVsZCB0aXRsZXMgb24gVG9wICp9CnsqIG5leHQgbGluZSBzZXRzIG51bWJlciBvZiBjb2x1bW5zIGZvciB0aGluZ3MgbGlrZSBjaGVja2JveCBncm91cHMgKn0Ke2Fzc2lnbiB2YXI9ImNvbHMiIHZhbHVlPSIzIn0Ke2xpdGVyYWx9CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KZnVuY3Rpb24gZmJodChodGlkKQoJewoJCXZhciBmYmh0Yz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChodGlkKTsKCQlpZiAoZmJodGMpCgkJCXsKCQkJaWYgKGZiaHRjLnN0eWxlLmRpc3BsYXkgPT0gJ25vbmUnKQoJCQkJewoJCQkJZmJodGMuc3R5bGUuZGlzcGxheSA9ICdpbmxpbmUnOwoJCQkJfQoJCQllbHNlCgkJCQl7CgkJCQlmYmh0Yy5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwoJCQkJfQoJCQl9Cn0KPC9zY3JpcHQ+CnsvbGl0ZXJhbH0KeyRmYl9mb3JtX2hlYWRlcn0Ke2lmICRmYl9mb3JtX2RvbmUgPT0gMX0KCXsqIFRoaXMgZmlyc3Qgc2VjdGlvbiBpcyBmb3IgZGlzcGxheWluZyBzdWJtaXNzaW9uIGVycm9ycyAqfQoJe2lmICRmYl9zdWJtaXNzaW9uX2Vycm9yfQoJCTxkaXYgY2xhc3M9ImVycm9yX21lc3NhZ2UiPnskZmJfc3VibWlzc2lvbl9lcnJvcn08L2Rpdj4KCQl7aWYgJGZiX3Nob3dfc3VibWlzc2lvbl9lcnJvcnN9CgkJCTx0YWJsZSBjbGFzcz0iZXJyb3IiPgoJCQl7Zm9yZWFjaCBmcm9tPSRmYl9zdWJtaXNzaW9uX2Vycm9yX2xpc3QgaXRlbT10aGlzRXJyfQoJCQkJPHRyPjx0ZD57JHRoaXNFcnJ9PC90ZD48L3RyPgoJCQl7L2ZvcmVhY2h9CgkJCTwvdGFibGU+CgkJey9pZn0KCXsvaWZ9CntlbHNlfQoJeyogdGhpcyBzZWN0aW9uIGlzIGZvciBkaXNwbGF5aW5nIHRoZSBmb3JtICp9Cgl7KiB3ZSBzdGFydCB3aXRoIHZhbGlkYXRpb24gZXJyb3JzICp9Cgl7aWYgJGZiX2Zvcm1faGFzX3ZhbGlkYXRpb25fZXJyb3JzfQoJCTxkaXYgY2xhc3M9ImVycm9yX21lc3NhZ2UiPgoJCTx1bD4KCQl7Zm9yZWFjaCBmcm9tPSRmYl9mb3JtX3ZhbGlkYXRpb25fZXJyb3JzIGl0ZW09dGhpc0Vycn0KCQkJPGxpPnskdGhpc0Vycn08L2xpPgoJCXsvZm9yZWFjaH0KCQk8L3VsPgoJCTwvZGl2PgoJey9pZn0KCXtpZiAkY2FwdGNoYV9lcnJvcn0KCQk8ZGl2IGNsYXNzPSJlcnJvcl9tZXNzYWdlIj57JGNhcHRjaGFfZXJyb3J9PC9kaXY+Cgl7L2lmfQoKCXsqIGFuZCBub3cgdGhlIGZvcm0gaXRzZWxmICp9Cgl7JGZiX2Zvcm1fc3RhcnR9Cgk8ZGl2PnskZmJfaGlkZGVufTwvZGl2PgoKCTx0YWJsZXtpZiAkY3NzX2NsYXNzICE9ICcnfSBjbGFzcz0ieyRjc3NfY2xhc3N9InsvaWZ9PgoJe2lmICR0b3RhbF9wYWdlcyBndCAxfTx0cj48dGQgY29sc3Bhbj0iMiI+eyR0aXRsZV9wYWdlX3hfb2ZfeX08L3RkPjwvdHI+ey9pZn0KCXtmb3JlYWNoIGZyb209JGZpZWxkcyBpdGVtPWVudHJ5fQoJCXtpZiAkZW50cnktPmRpc3BsYXkgPT0gMSAmJgoJCQkkZW50cnktPnR5cGUgIT0gJy1GaWVsZHNldCBTdGFydCcgJiYKCQkJJGVudHJ5LT50eXBlICE9ICctRmllbGRzZXQgRW5kJyB9CgkJPHRyPgoJCQl7c3RyaXB9CgkJCTx0ZCB2YWxpZ249InRvcCIKCQkJe2lmICRlbnRyeS0+cmVxdWlyZWQgPT0gMSB8fCAkZW50cnktPmNzc19jbGFzcyAhPSAnJ30gY2xhc3M9IiAKCQkJCXtpZiAkZW50cnktPnJlcXVpcmVkID09IDF9CgkJCQkJcmVxdWlyZWQKCQkJCXsvaWZ9CgkJCQl7aWYgJGVudHJ5LT5yZXF1aXJlZCA9PSAxICYmICRlbnRyeS0+Y3NzX2NsYXNzICE9ICcnfSB7L2lmfQoJCQkJe2lmICRlbnRyeS0+Y3NzX2NsYXNzICE9ICcnfQoJCQkJCXskZW50cnktPmNzc19jbGFzc30KCQkJCXsvaWZ9CgkJCQkiCgkJCXsvaWZ9CgkJCT4KCQkJe2lmICRlbnRyeS0+aGlkZV9uYW1lID09IDB9CgkJCQl7JGVudHJ5LT5uYW1lfQoJCQkJe2lmICRlbnRyeS0+cmVxdWlyZWRfc3ltYm9sICE9ICcnfQoJCQkJCXskZW50cnktPnJlcXVpcmVkX3N5bWJvbH0KCQkJCXsvaWZ9CgkJCXsvaWZ9CgkJCTwvdGQ+PC90cj48dHI+PHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCJ7aWYgJGVudHJ5LT5jc3NfY2xhc3MgIT0gJyd9IGNsYXNzPSJ7JGVudHJ5LT5jc3NfY2xhc3N9InsvaWZ9PgoJCQl7aWYgJGVudHJ5LT5tdWx0aXBsZV9wYXJ0cyA9PSAxfQoJCQk8dGFibGU+CgkJCQk8dHI+CgkJCQl7c2VjdGlvbiBuYW1lPW51bWxvb3AgbG9vcD0kZW50cnktPmlucHV0fQoJCQkJCTx0ZD57JGVudHJ5LT5pbnB1dFtudW1sb29wXS0+aW5wdXR9Jm5ic3A7eyRlbnRyeS0+aW5wdXRbbnVtbG9vcF0tPm5hbWV9e2lmICRlbnRyeS0+aW5wdXRbbnVtbG9vcF0tPm9wfSZuYnNwO3skZW50cnktPmlucHV0W251bWxvb3BdLT5vcH17L2lmfTwvdGQ+CgkJCQkJe2lmIG5vdCAoJHNtYXJ0eS5zZWN0aW9uLm51bWxvb3Aucm93bnVtIG1vZCAkY29scyl9CgkJCQkJCXtpZiBub3QgJHNtYXJ0eS5zZWN0aW9uLm51bWxvb3AubGFzdH0KCQkJCTwvdHI+PHRyPgoJCQkJCQl7L2lmfQoJCQkJCXsvaWZ9CgkJCQkJe2lmICRzbWFydHkuc2VjdGlvbi5udW1sb29wLmxhc3R9CgkJCQkJCXttYXRoIGVxdWF0aW9uID0gIm4gLSBhICUgbiIgbj0kY29scyBhPSRlbnRyeS0+aW5wdXR8QGNvdW50IGFzc2lnbj0iY2VsbHMifQoJCQkJCQl7aWYgJGNlbGxzIG5lICRjb2xzfQoJCQkJCQkJe3NlY3Rpb24gbmFtZT1wYWQgbG9vcD0kY2VsbHN9CgkJCQkJCQkJPHRkPiZuYnNwOzwvdGQ+CgkJCQkJCQl7L3NlY3Rpb259CgkJCQkJCXsvaWZ9CgkJCQk8L3RyPgoJCQkJCXsvaWZ9CgkJCQl7L3NlY3Rpb259CgkJCTwvdGFibGU+CgkJCXtlbHNlfQoJCQkJe2lmICRlbnRyeS0+c21hcnR5X2V2YWwgPT0gJzEnfXtldmFsIHZhcj0kZW50cnktPmlucHV0fXtlbHNlfXskZW50cnktPmlucHV0fXsvaWZ9CgkJCXsvaWZ9CgkJCXtpZiAkZW50cnktPnZhbGlkID09IDB9ICZsdDstLS0geyRlbnRyeS0+ZXJyb3J9ey9pZn0KCQkJe2lmICRlbnRyeS0+aGVscHRleHQgIT0gJyd9Jm5ic3A7PGEgaHJlZj0iamF2YXNjcmlwdDpmYmh0KCd7JGVudHJ5LT5maWVsZF9oZWxwdGV4dF9pZH0nKSI+PGltZyBzcmM9Im1vZHVsZXMvRm9ybUJ1aWxkZXIvaW1hZ2VzL2luZm8tc21hbGwuZ2lmIiBhbHQ9IkhlbHAiIC8+PC9hPgoJCQkJCTxzcGFuIGlkPSJ7JGVudHJ5LT5maWVsZF9oZWxwdGV4dF9pZH0iIHN0eWxlPSJkaXNwbGF5Om5vbmUiIGNsYXNzPSJmYnJfaGVscHRleHQiPnskZW50cnktPmhlbHB0ZXh0fTwvc3Bhbj57L2lmfQoJCQkKCQkJPC90ZD48L3RyPgoJCQl7L3N0cmlwfQoJCXsvaWZ9Cgl7L2ZvcmVhY2h9Cgl7aWYgJGhhc19jYXB0Y2hhID09IDF9Cgk8dHI+PHRkPnskZ3JhcGhpY19jYXB0Y2hhfTwvdGQ+PC90cj48dHI+PHRkPnskaW5wdXRfY2FwdGNoYX08YnIgLz57JHRpdGxlX2NhcHRjaGF9PC90ZD48L3RyPgoJey9pZn0KCTx0cj48dGQ+eyRwcmV2fTwvdGQ+PC90cj48dHI+PHRkPnskc3VibWl0fTwvdGQ+PC90cj4KPC90YWJsZT4KeyRmYl9mb3JtX2VuZH0Key9pZn0KeyRmYl9mb3JtX2Zvb3Rlcn0=]]></data>
	</file>
</module>
